From 513d14013bc207de2097bb3b9346ed0717c46a14 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Thu, 30 Oct 2025 10:26:50 +0100 Subject: [PATCH 01/23] Make sure all variables occuring in type annotations are quantified --- interpreter/binary/decode.ml | 1 + spectec/src/frontend/elab.ml | 959 ++++++++++++++++++++--------------- spectec/src/il/debug.ml | 1 + spectec/src/il/eval.ml | 4 + spectec/src/il/print.ml | 4 +- spectec/src/il/subst.ml | 3 +- spectec/src/il/valid.ml | 49 +- 7 files changed, 582 insertions(+), 439 deletions(-) diff --git a/interpreter/binary/decode.ml b/interpreter/binary/decode.ml index 433b092ed9..f817ff2606 100644 --- a/interpreter/binary/decode.ml +++ b/interpreter/binary/decode.ml @@ -920,6 +920,7 @@ let rec instr s = | 0xebl -> f32x4_pmax | 0xecl -> f64x2_abs | 0xedl -> f64x2_neg + | 0xeel as n -> illegal s pos (I32.to_int_u n) | 0xefl -> f64x2_sqrt | 0xf0l -> f64x2_add | 0xf1l -> f64x2_sub diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index aebf818eb6..4327acd506 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -709,21 +709,31 @@ let check_atoms phrase item list at = (* Iteration *) -let rec elab_iter env iter : Il.iter = +let rec elab_iter env iter : Il.bind list * Il.iter = match iter with - | Opt -> Il.Opt - | List -> Il.List - | List1 -> Il.List1 + | Opt -> [], Il.Opt + | List -> [], Il.List + | List1 -> [], Il.List1 | ListN (e, id_opt) -> Option.iter (fun id -> - let e' = checkpoint (elab_exp env (VarE (id, []) $ id.at) (NumT `NatT $ id.at)) in + let bs', e' = checkpoint (elab_exp env (VarE (id, []) $ id.at) (NumT `NatT $ id.at)) in (* TODO(4, rossberg): extend IL to allow arbitrary pattern exps *) match e'.it with - | Il.VarE _ -> () + | Il.VarE _ -> assert (bs' = []) | _ -> error_typ env id.at "iteration variable" (NumT `NatT $ id.at) ) id_opt; - let e' = checkpoint (elab_exp env e (NumT `NatT $ e.at)) in - Il.ListN (e', id_opt) + let bs', e' = checkpoint (elab_exp env e (NumT `NatT $ e.at)) in + bs', Il.ListN (e', id_opt) + +and elab_typiter env iter : Il.iter = + let iter = + match iter with + | List1 | ListN _ -> List + | _ -> iter + in + let bs', iter' = elab_iter env iter in + assert (bs' = []); + iter' (* Types *) @@ -734,7 +744,9 @@ and elab_typ env t : Il.typ = let id' = strip_var_suffix id in if id'.it <> id.it && as_ = [] then elab_typ env (Convert.typ_of_varid id') else let ps, _ = find "syntax type" env.typs id' in - let as', _s = elab_args `Rhs env as_ ps t.at in + let bs', as', _s = elab_args `Rhs env as_ ps t.at in + if bs' <> [] then + error t.at "illegal expression forms in type instantiation"; Il.VarT (id', as') $ t.at | BoolT -> Il.BoolT $ t.at | NumT t' -> Il.NumT t' $ t.at @@ -743,13 +755,9 @@ and elab_typ env t : Il.typ = | ParenT t1 -> elab_typ env t1 | TupT ts -> tup_typ' (List.map (elab_typ env) ts) t.at | IterT (t1, iter) -> - (match iter with - | List1 | ListN _ -> error t.at "illegal iterator in syntax type" - | _ -> - let iter' = elab_iter env iter in - let t1' = elab_typ env t1 in - Il.IterT (t1', iter') $ t.at - ) + let iter' = elab_typiter env iter in + let t1' = elab_typ env t1 in + Il.IterT (t1', iter') $ t.at | StrT _ | CaseT _ | ConT _ | RangeT _ | AtomT _ | SeqT _ | InfixT _ | BrackT _ -> error t.at "this type is only allowed in type definitions" @@ -836,7 +844,16 @@ and typ_rep env t : typ = ) (fst (List.hd ts_fes')) (List.tl ts_fes') | _ -> t -and elab_typfield env tid at ((atom, (t, prems), hints) as tf) : Il.typfield = +and elab_typfield env tid at (atom, (t, prems), hints) : Il.typfield = + let _mixop, bs', t', prems', _ = elab_typ_notation' env tid at t prems in + let hints' = elab_hints tid [] hints in + let t'' = (* TODO(4, rossberg): remove this hack *) + match t'.it with + | Il.TupT [(_, t1')] when prems' = [] -> t1' + | _ -> t' + in + (elab_atom atom tid, (bs', t'', prems'), hints') +(* assert (valid_tid tid); let env' = local_env env in let _mixop, ts', ts = elab_typ_notation env' tid t in @@ -848,7 +865,7 @@ and elab_typfield env tid at ((atom, (t, prems), hints) as tf) : Il.typfield = let prems' = List.map (Dim.annot_prem dims') (concat_map_filter_nl_list (elab_prem env') prems) in let det = Free.(diff (union (free_list det_exp es) (det_prems prems)) (bound_env env)) in - let free = Free.(diff (free_typfield tf) (union det (bound_env env))) in + let free = Free.(diff (union (free_typ t) (free_prems prems)) (union det (bound_env env))) in if free <> Free.empty then error at ("type field contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); @@ -860,15 +877,20 @@ and elab_typfield env tid at ((atom, (t, prems), hints) as tf) : Il.typfield = (!acc_bs', (if prems = [] then tup_typ' else tup_typ_bind' es') ts' t.at, prems'), elab_hints tid [] hints ) +*) -and elab_typcase env tid at ((_atom, (t, prems), hints) as tc) : Il.typcase = +and elab_typcase env tid at (_atom, (t, prems), hints) : Il.typcase = + let mixop, bs', t', prems', _ = elab_typ_notation' env tid at t prems in + let hints' = elab_hints tid [] hints in + (mixop, (bs', t', prems'), hints') +(* assert (valid_tid tid); let env' = local_env env in let mixop, ts', ts = elab_typ_notation env' tid t in let es = Convert.pats_of_typs ts in let dims = Dim.check_typdef (vars env) t prems in let dims' = Dim.Env.map (List.map (elab_iter env')) dims in - let es' = checkpoint (map_attempt Fun.id (List.map2 (elab_exp env') es ts)) in + let es' = checkpoint (map2_attempt (elab_exp env') es ts) in let es' = List.map (Dim.annot_exp dims') es' in let prems' = List.map (Dim.annot_prem dims') (concat_map_filter_nl_list (elab_prem env') prems) in @@ -890,8 +912,13 @@ and elab_typcase env tid at ((_atom, (t, prems), hints) as tc) : Il.typcase = (!acc_bs', tup_typ_bind' es' ts' at, prems'), elab_hints tid [] hints ) +*) -and elab_typcon env tid at (((t, prems), hints) as tc) : Il.typcase = +and elab_typcon env tid at ((t, prems), hints) : Il.typcase = + let mixop, bs', t', prems', _ = elab_typ_notation' env tid at t prems in + let hints' = elab_hints tid [Atom.Atom tid.it $$ tid.at % Atom.info ""] hints in + (mixop, (bs', t', prems'), hints') +(* assert (valid_tid tid); let env' = local_env env in let mixop, ts', ts = elab_typ_notation env' tid t in @@ -903,7 +930,7 @@ and elab_typcon env tid at (((t, prems), hints) as tc) : Il.typcase = let prems' = List.map (Dim.annot_prem dims') (concat_map_filter_nl_list (elab_prem env') prems) in let det = Free.(diff (union (free_list det_exp es) (det_prems prems)) (bound_env env)) in - let free = Free.(diff (free_typcon tc) (union det (bound_env env))) in + let free = Free.(diff (union (free_typ t) (free_prems prems)) (union det (bound_env env))) in if free <> Free.empty then error at ("type constraint contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); @@ -915,30 +942,64 @@ and elab_typcon env tid at (((t, prems), hints) as tc) : Il.typcase = (!acc_bs', tup_typ_bind' es' ts' at, prems'), elab_hints tid [Atom.Atom tid.it $$ tid.at % Atom.info ""] hints ) +*) and elab_typenum env tid (e1, e2o) : typ * (Il.exp -> numtyp -> Il.exp) = assert (valid_tid tid); let _e1' = elab_exp env e1 (NumT `IntT $ e1.at) in (* ensure it's <= int *) - let _, t1 = checkpoint (infer_exp env e1) in (* get precise type *) + let _bs1', _, t1 = checkpoint (infer_exp env e1) in (* get precise type *) match e2o with | None -> t1, fun eid' nt -> - let e1' = checkpoint (elab_exp env e1 (NumT nt $ e1.at)) in (* redo with overall type *) + let bs1', e1' = checkpoint (elab_exp env e1 (NumT nt $ e1.at)) in (* redo with overall type *) + if bs1' <> [] then + error e1.at "illegal expression form in range type"; Il.(CmpE (`EqOp, `BoolT, eid', e1') $$ e1'.at % (BoolT $ e1.at)) | Some e2 -> let at = Source.over_region [e1.at; e2.at] in - let _e2' = elab_exp env e2 (NumT `IntT $ e2.at) in - let _, t2 = checkpoint (infer_exp env e2) in + let _bs21', _e2' = checkpoint (elab_exp env e2 (NumT `IntT $ e2.at)) in + let _bs22, _, t2 = checkpoint (infer_exp env e2) in (if narrow_typ env t2 t1 then t1 else t2).it $ at, fun eid' nt -> - let e1' = checkpoint (elab_exp env e1 (NumT nt $ e1.at)) in - let e2' = checkpoint (elab_exp env e2 (NumT nt $ e2.at)) in + let bs1', e1' = checkpoint (elab_exp env e1 (NumT nt $ e1.at)) in + let bs2', e2' = checkpoint (elab_exp env e2 (NumT nt $ e2.at)) in + if bs1' <> [] then + error e1.at "illegal expression form in range type"; + if bs2' <> [] then + error e2.at "illegal expression form in range type"; Il.(BinE (`AndOp, `BoolT, CmpE (`GeOp, (nt :> Il.optyp), eid', e1') $$ e1'.at % (BoolT $ e1.at), CmpE (`LeOp, (nt :> Il.optyp), eid', e2') $$ e2'.at % (BoolT $ e2.at) ) $$ at % (BoolT $ at)) +and elab_typ_notation' env tid at t prems : Il.mixop * Il.bind list * Il.typ * Il.prem list * typ list = + assert (valid_tid tid); + let env' = local_env env in + let mixop, ts', ts = elab_typ_notation env' tid t in + let es = Convert.pats_of_typs ts in + let dims = Dim.check_typdef (vars env) t prems in + let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in + let bss1', es' = List.split (checkpoint (map2_attempt (elab_exp env') es ts)) in + let es' = List.map (Dim.annot_exp dims') es' in + let bss2', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in + let det = Free.(diff (union (free_list det_exp es) (det_prems prems)) (bound_env env)) in + let free = Free.(diff (union (free_typ t) (free_prems prems)) (union det (bound_env env))) in + if free <> Free.empty then +(Printf.printf "[notation] t = %s\n%!" (Print.string_of_typ t); +List.iteri (fun i e -> Printf.printf "[notation] t%d = %s\n%!" i (Print.string_of_typ e)) ts; +List.iteri (fun i e -> Printf.printf "[notation] t%d' = %s\n%!" i (Il.Print.string_of_typ e)) ts'; +List.iteri (fun i e -> Printf.printf "[notation] e%d = %s\n%!" i (Print.string_of_exp e)) es; + error at ("premise contains indeterminate variable(s) `" ^ + String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); +); + let acc_bs', (module Arg : Iter.Arg) = make_binds_iter_arg env' det dims in + let module Acc = Iter.Make(Arg) in + List.iter Acc.exp es; + Acc.prems prems; + mixop, !acc_bs' @ List.concat (bss1' @ bss2'), tup_typ_bind' es' ts' t.at, prems', ts + and elab_typ_notation env tid t : Il.mixop * Il.typ list * typ list = Debug.(log_at "el.elab_typ_notation" t.at (fun _ -> fmt "(%s) %s" tid.it (el_typ t)) @@ -953,7 +1014,9 @@ and elab_typ_notation env tid t : Il.mixop * Il.typ list * typ list = (match find "syntax type" env.typs id' with | _, Transp -> error_id id "invalid forward reference to syntax type" | ps, _ -> - let as', _s = elab_args `Rhs env as_ ps t.at in + let bs', as', _s = elab_args `Rhs env as_ ps t.at in + if bs' <> [] then + error t.at "illegal expression forms in type instantiation"; [[]; []], [Il.VarT (id', as') $ t.at], [t] ) | t' -> @@ -991,16 +1054,16 @@ and (!!!) env tid t = * - Fail (at, s) when it cannot, where s is the name of the failing construct * - raises Error.Error on fatal, unrecoverable errors *) -and infer_exp env e : (Il.exp * typ) attempt = +and infer_exp env e : (Il.bind list * Il.exp * typ) attempt = Debug.(log_at "el.infer_exp" e.at (fun _ -> fmt "%s" (el_exp e)) - (function Ok (e', t) -> fmt "%s : %s" (il_exp e') (el_typ t) | _ -> "fail") + (function Ok (bs', e', t) -> fmt "%s%s : %s" (il_binds bs') (il_exp e') (el_typ t) | _ -> "fail") ) @@ fun _ -> - let* e', t' = infer_exp' env e in + let* bs', e', t' = infer_exp' env e in let t = t' $ e.at in - Ok (e' $$ e.at % elab_typ env t, t) + Ok (bs', e' $$ e.at % elab_typ env t, t) -and infer_exp' env e : (Il.exp' * typ') attempt = +and infer_exp' env e : (Il.bind list * Il.exp' * typ') attempt = match e.it with | VarE (id, args) -> (* Args may only occur due to syntactic overloading with types *) @@ -1015,98 +1078,99 @@ and infer_exp' env e : (Il.exp' * typ') attempt = env.vars <- bind "variable" env.vars id t; Ok t else fail_infer e.at "variable" - in Ok (Il.VarE id, t.it) + in Ok ([], Il.VarE id, t.it) | AtomE _ -> fail_infer e.at "atom" | BoolE b -> - Ok (Il.BoolE b, BoolT) + Ok ([], Il.BoolE b, BoolT) | NumE (_op, n) -> - Ok (Il.NumE n, NumT (Num.to_typ n)) + Ok ([], Il.NumE n, NumT (Num.to_typ n)) | TextE s -> - Ok (Il.TextE s, TextT) + Ok ([], Il.TextE s, TextT) | CvtE (e1, nt) -> - let* e1', t1 = infer_exp env e1 in + let* bs1', e1', t1 = infer_exp env e1 in let* nt1 = as_num_typ "conversion" env Infer t1 e1.at in - let* e1'' = cast_exp "operand" env e1' t1 (NumT nt1 $ e1.at) in - Ok (Il.CvtE (e1'', nt1, nt), NumT nt) + let* bs1'', e1'' = cast_exp "operand" env e1' t1 (NumT nt1 $ e1.at) in + Ok (bs1' @ bs1'', Il.CvtE (e1'', nt1, nt), NumT nt) | UnE (op, e1) -> - let* e1', t1 = infer_exp env e1 in + let* bs1', e1', t1 = infer_exp env e1 in let* op', ot, t1', t = infer_unop env op (typ_rep env t1) e.at in - let* e1'' = cast_exp "operand" env e1' t1 t1' in + let* bs1'', e1'' = cast_exp "operand" env e1' t1 t1' in if op = `PlusMinusOp || op = `MinusPlusOp then env.pm <- true; - Ok (Il.UnE (op', ot, e1''), t.it) + Ok (bs1' @ bs1'', Il.UnE (op', ot, e1''), t.it) | BinE (e1, op, e2) -> - let* e1', t1 = infer_exp env e1 in - let* e2', t2 = infer_exp env e2 in + let* bs1', e1', t1 = infer_exp env e1 in + let* bs2', e2', t2 = infer_exp env e2 in let* op', ot, t1', t2', t = infer_binop env op (typ_rep env t1) (typ_rep env t2) e.at in - let* e1'' = cast_exp "operand" env e1' t1 t1' in - let* e2'' = cast_exp "operand" env e2' t2 t2' in - Ok (Il.BinE (op', ot, e1'', e2''), t.it) + let* bs1'', e1'' = cast_exp "operand" env e1' t1 t1' in + let* bs2'', e2'' = cast_exp "operand" env e2' t2 t2' in + Ok (bs1' @ bs1'' @ bs2' @ bs2'', Il.BinE (op', ot, e1'', e2''), t.it) | CmpE (e1, op, ({it = CmpE (e21, _, _); _} as e2)) -> - let* e1', _t1 = infer_exp env (CmpE (e1, op, e21) $ e.at) in - let* e2', _t2 = infer_exp env e2 in - Ok (Il.BinE (`AndOp, `BoolT, e1', e2'), BoolT) + let* bs1', e1', _t1 = infer_exp env (CmpE (e1, op, e21) $ e.at) in + let* bs2', e2', _t2 = infer_exp env e2 in + Ok (bs1' @ bs2', Il.BinE (`AndOp, `BoolT, e1', e2'), BoolT) | CmpE (e1, op, e2) -> (match infer_cmpop env op with | `Poly op' -> - let* e1', e2' = + let* bs', e1', e2' = choice env [ (fun env -> - let* e2', t2 = infer_exp env e2 in - let* e1' = elab_exp env e1 t2 in - Ok (e1', e2') + let* bs2', e2', t2 = infer_exp env e2 in + let* bs1', e1' = elab_exp env e1 t2 in + Ok (bs1' @ bs2', e1', e2') ); (fun env -> - let* e1', t1 = infer_exp env e1 in - let* e2' = elab_exp env e2 t1 in - Ok (e1', e2') + let* bs1', e1', t1 = infer_exp env e1 in + let* bs2', e2' = elab_exp env e2 t1 in + Ok (bs1' @ bs2', e1', e2') ); ] in - Ok (Il.CmpE (op', `BoolT, e1', e2'), BoolT) + Ok (bs', Il.CmpE (op', `BoolT, e1', e2'), BoolT) | `Over elab_cmpop' -> - let* e1', t1 = infer_exp env e1 in - let* e2', t2 = infer_exp env e2 in + let* bs1', e1', t1 = infer_exp env e1 in + let* bs2', e2', t2 = infer_exp env e2 in let* op', ot, t = elab_cmpop' (typ_rep env t1) (typ_rep env t2) e.at in - let* e1'' = cast_exp "operand" env e1' t1 t in - let* e2'' = cast_exp "operand" env e2' t2 t in - Ok (Il.CmpE (op', ot, e1'', e2''), BoolT) + let* bs1'', e1'' = cast_exp "operand" env e1' t1 t in + let* bs2'', e2'' = cast_exp "operand" env e2' t2 t in + Ok (bs1' @ bs1'' @ bs2' @ bs2'', Il.CmpE (op', ot, e1'', e2''), BoolT) ) | IdxE (e1, e2) -> - let* e1', t1 = infer_exp env e1 in + let* bs1', e1', t1 = infer_exp env e1 in let* t = as_list_typ "expression" env Infer t1 e1.at in - let* e2' = elab_exp env e2 (NumT `NatT $ e2.at) in - Ok (Il.IdxE (e1', e2'), t.it) + let* bs2', e2' = elab_exp env e2 (NumT `NatT $ e2.at) in + Ok (bs1' @ bs2', Il.IdxE (e1', e2'), t.it) | SliceE (e1, e2, e3) -> - let* e1', t1 = infer_exp env e1 in + let* bs1', e1', t1 = infer_exp env e1 in let* _t' = as_list_typ "expression" env Infer t1 e1.at in - let* e2' = elab_exp env e2 (NumT `NatT $ e2.at) in - let* e3' = elab_exp env e3 (NumT `NatT $ e3.at) in - Ok (Il.SliceE (e1', e2', e3'), t1.it) + let* bs2', e2' = elab_exp env e2 (NumT `NatT $ e2.at) in + let* bs3', e3' = elab_exp env e3 (NumT `NatT $ e3.at) in + Ok (bs1' @ bs2' @ bs3', Il.SliceE (e1', e2', e3'), t1.it) | UpdE (e1, p, e2) -> - let* e1', t1 = infer_exp env e1 in - let* p', t2 = elab_path env p t1 in - let* e2' = elab_exp env e2 t2 in - Ok (Il.UpdE (e1', p', e2'), t1.it) + let* bs1', e1', t1 = infer_exp env e1 in + let* bs', p', t2 = elab_path env p t1 in + let* bs2', e2' = elab_exp env e2 t2 in + Ok (bs1' @ bs' @ bs2', Il.UpdE (e1', p', e2'), t1.it) | ExtE (e1, p, e2) -> - let* e1', t1 = infer_exp env e1 in - let* p', t2 = elab_path env p t1 in + let* bs1', e1', t1 = infer_exp env e1 in + let* bs', p', t2 = elab_path env p t1 in let* _t21 = as_list_typ "path" env Infer t2 p.at in - let* e2' = elab_exp env e2 t2 in - Ok (Il.ExtE (e1', p', e2'), t1.it) + let* bs2', e2' = elab_exp env e2 t2 in + Ok (bs1' @ bs' @ bs2', Il.ExtE (e1', p', e2'), t1.it) | StrE _ -> fail_infer e.at "record" | DotE (e1, atom) -> - let* e1', t1 = infer_exp env e1 in + let* bs1', e1', t1 = infer_exp env e1 in let* tfs, dots1 = as_struct_typ "expression" env Infer t1 e1.at in if dots1 = Dots then error e1.at "used record type is only partially defined at this point"; +(*TODO*) let* t, prems = attempt (find_field tfs atom e1.at) t1 in let e' = Il.DotE (e1', elab_atom atom (expand_id env t1)) in let e'' = if prems = [] then e' else Il.ProjE (e' $$ e.at % elab_typ env t, 0) in - Ok (e'', t.it) + Ok (bs1', e'', t.it) | CommaE (e1, e2) -> - let* e1', t1 = infer_exp env e1 in + let* bs1', e1', t1 = infer_exp env e1 in let* tfs, dots1 = as_struct_typ "expression" env Infer t1 e1.at in if dots1 = Dots then error e1.at "used record type is only partially defined at this point"; @@ -1116,83 +1180,84 @@ and infer_exp' env e : (Il.exp' * typ') attempt = | SeqE ({it = AtomE atom; at; _} :: es2) -> let* _t2 = attempt (find_field tfs atom at) t1 in let e2 = match es2 with [e2] -> e2 | _ -> SeqE es2 $ e2.at in - let* e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t1 in - Ok (Il.CompE (e2', e1'), t1.it) + let* bs2', e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t1 in + Ok (bs1' @ bs2', Il.CompE (e2', e1'), t1.it) | _ -> error e.at "malformed comma operator" ) | CatE (e1, e2) -> - let* e1', t1 = infer_exp env e1 in + let* bs1', e1', t1 = infer_exp env e1 in let* _ = as_cat_typ "operand" env Infer t1 e1.at in - let* e2' = elab_exp env e2 t1 in - Ok ((if is_iter_typ env t1 then Il.CatE (e1', e2') else Il.CompE (e1', e2')), t1.it) + let* bs2', e2' = elab_exp env e2 t1 in + Ok (bs1' @ bs2', + (if is_iter_typ env t1 then Il.CatE (e1', e2') else Il.CompE (e1', e2')), t1.it) | MemE (e1, e2) -> choice env [ (fun env -> - let* e1', t1 = infer_exp env e1 in - let* e2' = elab_exp env e2 (IterT (t1, List) $ e2.at) in - Ok (Il.MemE (e1', e2'), BoolT) + let* bs1', e1', t1 = infer_exp env e1 in + let* bs2', e2' = elab_exp env e2 (IterT (t1, List) $ e2.at) in + Ok (bs1' @ bs2', Il.MemE (e1', e2'), BoolT) ); (fun env -> - let* e2', t2 = infer_exp env e2 in + let* bs2', e2', t2 = infer_exp env e2 in let* t1 = as_list_typ "operand" env Infer t2 e2.at in - let* e1' = elab_exp env e1 t1 in - Ok (Il.MemE (e1', e2'), BoolT) + let* bs1', e1' = elab_exp env e1 t1 in + Ok (bs1' @ bs2', Il.MemE (e1', e2'), BoolT) ); ] | LenE e1 -> - let* e1', t1 = infer_exp env e1 in + let* bs1', e1', t1 = infer_exp env e1 in let* _t11 = as_list_typ "expression" env Infer t1 e1.at in - Ok (Il.LenE e1', NumT `NatT) + Ok (bs1', Il.LenE e1', NumT `NatT) | SizeE id -> let _ = find "grammar" env.grams id in - Ok (Il.NumE (`Nat Z.zero), NumT `NatT) + Ok ([], Il.NumE (`Nat Z.zero), NumT `NatT) | ParenE e1 | ArithE e1 -> infer_exp' env e1 | TupE es -> - let* es', ts = infer_exp_list env es in - Ok (Il.TupE es', TupT ts) + let* bs', es', ts = infer_exp_list env es in + Ok (bs', Il.TupE es', TupT ts) | CallE (id, as_) -> let ps, t, _ = find "definition" env.defs id in - let as', s = elab_args `Rhs env as_ ps e.at in - Ok (Il.CallE (id, as'), (Subst.subst_typ s t).it) + let bs', as', s = elab_args `Rhs env as_ ps e.at in + Ok (bs', Il.CallE (id, as'), (Subst.subst_typ s t).it) | EpsE -> fail_infer e.at "empty sequence" | SeqE [] -> (* treat as empty tuple, not principal *) - Ok (Il.TupE [], TupT []) + Ok ([], Il.TupE [], TupT []) | SeqE es | ListE es -> (* treat as homogeneous sequence, not principal *) - let* es', ts = infer_exp_list env es in + let* bs', es', ts = infer_exp_list env es in let t = List.hd ts in if List.for_all (equiv_typ env t) (List.tl ts) then - Ok (Il.ListE es', IterT (t, List)) + Ok (bs', Il.ListE es', IterT (t, List)) else fail_infer e.at "expression sequence" | InfixE _ -> fail_infer e.at "infix expression" | BrackE _ -> fail_infer e.at "bracket expression" | IterE (e1, iter) -> - let iter' = elab_iterexp env iter in - let* e1', t1 = infer_exp env e1 in - Ok (Il.IterE (e1', iter'), IterT (t1, match iter with ListN _ -> List | _ -> iter)) + let bs', iter' = elab_iterexp env iter in + let* bs1', e1', t1 = infer_exp env e1 in + Ok (bs1' @ bs', Il.IterE (e1', iter'), IterT (t1, match iter with ListN _ -> List | _ -> iter)) | TypE (e1, t) -> let _t' = elab_typ env t in - let* e1' = elab_exp env e1 t in - Ok (e1'.it, t.it) + let* bs1', e1' = elab_exp env e1 t in + Ok (bs1', e1'.it, t.it) | HoleE _ -> error e.at "misplaced hole" | FuseE _ -> error e.at "misplaced token concatenation" | UnparenE _ -> error e.at "misplaced unparenthesize" | LatexE _ -> error e.at "misplaced latex literal" and infer_exp_list env = function - | [] -> Ok ([], []) + | [] -> Ok ([], [], []) | e::es -> - let* e', t = infer_exp env e in - let* es', ts = infer_exp_list env es in - Ok (e'::es', t::ts) + let* bs1', e', t = infer_exp env e in + let* bs2', es', ts = infer_exp_list env es in + Ok (bs1' @ bs2', e'::es', t::ts) -and elab_exp env e t : Il.exp attempt = +and elab_exp env e t : (Il.bind list * Il.exp) attempt = Debug.(log_at "el.elab_exp" e.at (fun _ -> fmt "%s : %s" (el_exp e) (el_typ t)) - (function Ok e' -> fmt "%s" (il_exp e') | _ -> "fail") + (function Ok (bs', e') -> fmt "%s%s" (il_binds bs') (il_exp e') | _ -> "fail") ) @@ fun _ -> nest e.at t ( if is_iter_typ env t then @@ -1208,9 +1273,9 @@ and elab_exp env e t : Il.exp attempt = match e.it with | VarE ({it = "_"; _}, []) | EpsE | SeqE [] -> fail_silent | _ -> - let* e' = elab_exp env e t1 in + let* bs', e' = elab_exp env e t1 in let t' = elab_typ env t in - Ok (lift_exp' e' iter $$ e.at % t') + Ok (bs', lift_exp' e' iter $$ e.at % t') ); (fun env -> elab_exp_plain env e t); ] @@ -1224,22 +1289,23 @@ and elab_exp env e t : Il.exp attempt = elab_exp_plain env e t ) -and elab_exp_plain env e t : Il.exp attempt = +and elab_exp_plain env e t : (Il.bind list * Il.exp) attempt = Debug.(log_at "el.elab_exp_plain" e.at (fun _ -> fmt "%s : %s" (el_exp e) (el_typ t)) - (function Ok e' -> fmt "%s" (il_exp e') | _ -> "fail") + (function Ok (bs', e') -> fmt "%s%s" (il_binds bs') (il_exp e') | _ -> "fail") ) @@ fun _ -> - let* e' = elab_exp_plain' env e t in + let* bs', e' = elab_exp_plain' env e t in let t' = elab_typ env t in - Ok (e' $$ e.at % t') + Ok (bs', e' $$ e.at % t') -and elab_exp_plain' env e t : Il.exp' attempt = +and elab_exp_plain' env e t : (Il.bind list * Il.exp') attempt = match e.it with | BoolE _ | NumE _ | CvtE _ | UnE _ | BinE _ | CmpE _ | IdxE _ | DotE _ | MemE _ | LenE _ | SizeE _ | CallE _ | TypE _ | HoleE _ | FuseE _ | UnparenE _ | LatexE _ -> - let* e', t' = infer_exp env e in - cast_exp' "expression" env e' t' t + let* bs1', e', t' = infer_exp env e in + let* bs2', e'' = cast_exp' "expression" env e' t' t in + Ok (bs1' @ bs2', e'') | TextE s -> let cs = try Utf8.decode s with Utf8.Utf8 -> [] in (* Allow treatment as character constant *) @@ -1248,55 +1314,57 @@ and elab_exp_plain' env e t : Il.exp' attempt = (Il.NumT `NatT $ e.at) in cast_exp' "character" env e' (NumT `NatT $ e.at) t else - let* e', t' = infer_exp env e in - cast_exp' "expression" env e' t' t + let* bs1', e', t' = infer_exp env e in + let* bs2', e'' = cast_exp' "expression" env e' t' t in + Ok (bs1' @ bs2', e'') | VarE (id, _) when id.it = "_" -> - Ok (Il.VarE id) + Ok ([], Il.VarE id) | VarE (id, _) -> choice env [ (fun env -> - let* e', t' = infer_exp env e in - cast_exp' "expression" env e' t' t + let* bs1', e', t' = infer_exp env e in + let* bs2', e'' = cast_exp' "expression" env e' t' t in + Ok (bs1' @ bs2', e'') ); (fun env -> if is_iter_typ env t && id.it <> "_" then (* Never infer an iteration type for a variable *) let* t1, iter = as_iter_typ "" env Check t e.at in - let* e' = elab_exp env e t1 in - Ok (lift_exp' e' iter) + let* bs', e' = elab_exp env e t1 in + Ok (bs', lift_exp' e' iter) else if not (bound env.vars id || bound env.gvars (strip_var_suffix id)) then let _ = () in env.vars <- bind "variable" env.vars id t; - Ok (Il.VarE id) + Ok ([], Il.VarE id) else fail_silent (* suitable error was produced by infer_exp already *) ); ] | SliceE (e1, e2, e3) -> let* _t' = as_list_typ "expression" env Check t e1.at in - let* e1' = elab_exp env e1 t in - let* e2' = elab_exp env e2 (NumT `NatT $ e2.at) in - let* e3' = elab_exp env e3 (NumT `NatT $ e3.at) in - Ok (Il.SliceE (e1', e2', e3')) + let* bs1', e1' = elab_exp env e1 t in + let* bs2', e2' = elab_exp env e2 (NumT `NatT $ e2.at) in + let* bs3', e3' = elab_exp env e3 (NumT `NatT $ e3.at) in + Ok (bs1' @ bs2' @ bs3', Il.SliceE (e1', e2', e3')) | UpdE (e1, p, e2) -> - let* e1' = elab_exp env e1 t in - let* p', t2 = elab_path env p t in - let* e2' = elab_exp env e2 t2 in - Ok (Il.UpdE (e1', p', e2')) + let* bs1', e1' = elab_exp env e1 t in + let* bs', p', t2 = elab_path env p t in + let* bs2', e2' = elab_exp env e2 t2 in + Ok (bs1' @ bs' @ bs2', Il.UpdE (e1', p', e2')) | ExtE (e1, p, e2) -> - let* e1' = elab_exp env e1 t in - let* p', t2 = elab_path env p t in + let* bs1', e1' = elab_exp env e1 t in + let* bs', p', t2 = elab_path env p t in let* _t21 = as_list_typ "path" env Check t2 p.at in - let* e2' = elab_exp env e2 t2 in - Ok (Il.ExtE (e1', p', e2')) + let* bs2', e2' = elab_exp env e2 t2 in + Ok (bs1' @ bs' @ bs2', Il.ExtE (e1', p', e2')) | StrE efs -> let* tfs, dots = as_struct_typ "record" env Check t e.at in if dots = Dots then error e.at "used record type is only partially defined at this point"; - let* efs' = elab_expfields env (expand_id env t) (filter_nl efs) tfs t e.at in - Ok (Il.StrE efs') + let* bs', efs' = elab_expfields env (expand_id env t) (filter_nl efs) tfs t e.at in + Ok (bs', Il.StrE efs') | CommaE (e1, e2) -> - let* e1' = elab_exp env e1 t in + let* bs1', e1' = elab_exp env e1 t in let* tfs, dots1 = as_struct_typ "expression" env Check t e1.at in if dots1 = Dots then error e1.at "used record type is only partially defined at this point"; @@ -1306,30 +1374,32 @@ and elab_exp_plain' env e t : Il.exp' attempt = | SeqE ({it = AtomE atom; at; _} :: es2) -> let* _t2 = attempt (find_field tfs atom at) t in let e2 = match es2 with [e2] -> e2 | _ -> SeqE es2 $ e2.at in - let* e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t in - Ok (Il.CompE (e2', e1')) + let* bs2', e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t in + Ok (bs1' @ bs2', Il.CompE (e2', e1')) | _ -> error e.at "malformed comma operator" ) | CatE (e1, e2) -> let* _ = as_cat_typ "expression" env Check t e.at in - let* e1' = elab_exp env e1 t in - let* e2' = elab_exp env e2 t in - Ok (if is_iter_typ env t then Il.CatE (e1', e2') else Il.CompE (e1', e2')) + let* bs1', e1' = elab_exp env e1 t in + let* bs2', e2' = elab_exp env e2 t in + Ok (bs1' @ bs2', + if is_iter_typ env t then Il.CatE (e1', e2') else Il.CompE (e1', e2')) | ParenE e1 | ArithE e1 -> elab_exp_plain' env e1 t | TupE es -> let* ts = as_tup_typ "tuple" env Check t e.at in - let* es' = elab_exp_list env es ts e.at in - Ok (Il.TupE es') + let* bs', es' = elab_exp_list env es ts e.at in + Ok (bs', Il.TupE es') | ListE es -> let* t1, iter = as_iter_typ "list" env Check t e.at in if iter <> List then fail_typ env e.at "list" t else let ts = List.init (List.length es) (fun _ -> t1) in - let* es' = elab_exp_list env es ts e.at in - Ok (Il.ListE es') + let* bs', es' = elab_exp_list env es ts e.at in + Ok (bs', Il.ListE es') | SeqE [] when is_empty_typ env t -> - let* e', t' = infer_exp env e in - cast_exp' "empty expression" env e' t' t + let* bs1', e', t' = infer_exp env e in + let* bs2', e'' = cast_exp' "empty expression" env e' t' t in + Ok (bs1' @ bs2', e'') | EpsE | SeqE _ when is_iter_typ env t -> let* t1, iter = as_iter_typ "" env Check t e.at in elab_exp_iter' env (unseq_exp e) (t1, iter) t e.at @@ -1343,12 +1413,12 @@ and elab_exp_plain' env e t : Il.exp' attempt = * the latter case is already captured above *) if is_notation_typ env t then let* nt = as_notation_typ "" env Check t e.at in - let* e' = elab_exp_notation env (expand_id env t) e nt t in - Ok e'.it + let* bs', e' = elab_exp_notation env (expand_id env t) e nt t in + Ok (bs', e'.it) else if is_variant_typ env t then let* tcs, _ = as_variant_typ "" env Check t e.at in - let* e' = elab_exp_variant env (expand_id env t) e tcs t e.at in - Ok e'.it + let* bs', e' = elab_exp_variant env (expand_id env t) e tcs t e.at in + Ok (bs', e'.it) else let name = match e.it with @@ -1361,106 +1431,112 @@ and elab_exp_plain' env e t : Il.exp' attempt = in fail_typ env e.at name t | IterE (e1, iter2) -> let* t1, iter = as_iter_typ "iteration" env Check t e.at in - let iter2' = elab_iterexp env iter2 in - let* e1' = elab_exp env e1 t1 in + let bs2', iter2' = elab_iterexp env iter2 in + let* bs1', e1' = elab_exp env e1 t1 in + let bs' = bs1' @ bs2' in let e' = Il.IterE (e1', iter2') in match iter2, iter with - | Opt, Opt -> Ok e' + | Opt, Opt -> Ok (bs', e') | Opt, List -> - Ok (Il.LiftE (e' $$ e.at % (Il.IterT (elab_typ env t1, Opt) $ e1.at))) + Ok (bs', Il.LiftE (e' $$ e.at % (Il.IterT (elab_typ env t1, Opt) $ e1.at))) | _, Opt -> fail_typ env e.at "iteration" t - | _, _ -> Ok e' + | _, _ -> Ok (bs', e') -and elab_exp_list env es ts at : Il.exp list attempt = +and elab_exp_list env es ts at : (Il.bind list * Il.exp list) attempt = match es, ts with - | [], [] -> Ok [] + | [], [] -> Ok ([], []) | e::es, t::ts -> - let* e' = elab_exp env e t in - let* es' = elab_exp_list env es ts at in - Ok (e'::es') + let* bs1', e' = elab_exp env e t in + let* bs2', es' = elab_exp_list env es ts at in + Ok (bs1' @ bs2', e'::es') | _, _ -> fail at "arity mismatch for expression list" -and elab_expfields env tid efs tfs t0 at : Il.expfield list attempt = +and elab_expfields env tid efs tfs t0 at : (Il.bind list * Il.expfield list) attempt = Debug.(log_in_at "el.elab_expfields" at (fun _ -> fmt "{%s} : {%s} = %s" (list el_expfield efs) (list el_typfield tfs) (el_typ t0)) ); assert (valid_tid tid); match efs, tfs with - | [], [] -> Ok [] + | [], [] -> Ok ([], []) | (atom1, e)::efs2, (atom2, (t, prems), _)::tfs2 when atom1.it = atom2.it -> - let* es', _s = elab_exp_notation' env tid e t in - let* efs2' = elab_expfields env tid efs2 tfs2 t0 at in + let* bs1', es', _s = elab_exp_notation' env tid e t in + let* bs2', efs2' = elab_expfields env tid efs2 tfs2 t0 at in let e' = (if prems = [] then tup_exp' else tup_exp_bind') es' e.at in - Ok ((elab_atom atom1 tid, e') :: efs2') + Ok (bs1' @ bs2', (elab_atom atom1 tid, e') :: efs2') | _, (atom, (t, prems), _)::tfs2 -> let atom' = string_of_atom atom in - let* e1' = + let* bs1', e1' = cast_empty ("omitted record field `" ^ atom' ^ "`") env t at (elab_typ env t) in let e' = (if prems = [] then tup_exp' else tup_exp_bind') [e1'] at in - let* efs2' = elab_expfields env tid efs tfs2 t0 at in - Ok ((elab_atom atom tid, e') :: efs2') + let* bs2', efs2' = elab_expfields env tid efs tfs2 t0 at in + Ok (bs1' @ bs2', (elab_atom atom tid, e') :: efs2') | (atom, e)::_, [] -> fail_atom e.at atom t0 "undefined or misplaced record field" -and elab_exp_iter env es (t1, iter) t at : Il.exp attempt = - let* e' = elab_exp_iter' env es (t1, iter) t at in - Ok (e' $$ at % elab_typ env t) +and elab_exp_iter env es (t1, iter) t at : (Il.bind list * Il.exp) attempt = + let* bs', e' = elab_exp_iter' env es (t1, iter) t at in + Ok (bs', e' $$ at % elab_typ env t) -and elab_exp_iter' env es (t1, iter) t at : Il.exp' attempt = +and elab_exp_iter' env es (t1, iter) t at : (Il.bind list * Il.exp') attempt = Debug.(log_at "el.elab_exp_iter" at (fun _ -> fmt "%s : %s = (%s)%s" (seq el_exp es) (el_typ t) (el_typ t1) (el_iter iter)) - (function Ok e' -> fmt "%s" (il_exp (e' $$ at % elab_typ env t)) | _ -> "fail") + (function Ok (bs', e') -> fmt "%s%s" (il_binds bs') (il_exp (e' $$ at % elab_typ env t)) | _ -> "fail") ) @@ fun _ -> match es, iter with | [], Opt -> - Ok (Il.OptE None) + Ok ([], Il.OptE None) | [e1], Opt -> - let* e1' = elab_exp env e1 t1 in - Ok (Il.OptE (Some e1')) + let* bs1', e1' = elab_exp env e1 t1 in + Ok (bs1', Il.OptE (Some e1')) | _::_::_, Opt -> fail_typ env at "expression" t | [], List -> - Ok (Il.ListE []) + Ok ([], Il.ListE []) | e1::es2, List -> - let* e1' = elab_exp env e1 t in + let* bs1', e1' = elab_exp env e1 t in let at' = Source.over_region (after_region e1.at :: List.map Source.at es2) in - let* e2' = elab_exp_iter env es2 (t1, iter) t at' in - Ok (cat_exp' e1' e2') + let* bs2', e2' = elab_exp_iter env es2 (t1, iter) t at' in + Ok (bs1' @ bs2', cat_exp' e1' e2') | _, (List1 | ListN _) -> assert false -and elab_exp_notation env tid e nt t : Il.exp attempt = +and elab_exp_notation env tid e nt t : (Il.bind list * Il.exp) attempt = (* Convert notation into applications of mixin operators *) assert (valid_tid tid); - let* es', _s = elab_exp_notation' env tid e nt in + let* bs1', es', _s = elab_exp_notation' env tid e nt in + + let mixop, bs2', t', _prems', _ = elab_typ_notation' env tid e.at nt [] in + Ok (bs1' @ bs2', Il.CaseE (mixop, Il.TupE es' $$ e.at % t') $$ e.at % elab_typ env t) +(* let mixop, ts', _ = elab_typ_notation env tid nt in assert (List.length es' = List.length ts'); Ok (Il.CaseE (mixop, tup_exp_bind' es' e.at) $$ e.at % elab_typ env t) +*) -and elab_exp_notation' env tid e t : (Il.exp list * Subst.t) attempt = +and elab_exp_notation' env tid e t : (Il.bind list * Il.exp list * Subst.t) attempt = Debug.(log_at "el.elab_exp_notation" e.at (fun _ -> fmt "%s : %s" (el_exp e) (el_typ t)) - (function Ok (es', _) -> fmt "%s" (seq il_exp es') | _ -> "fail") + (function Ok (bs', es', _) -> fmt "%s %s" (il_binds bs') (seq il_exp es') | _ -> "fail") ) @@ fun _ -> assert (valid_tid tid); match e.it, t.it with | AtomE atom, AtomT atom' -> if atom.it <> atom'.it then fail_typ env e.at "atom" t else let _ = elab_atom atom tid in - Ok ([], Subst.empty) + Ok ([], [], Subst.empty) | InfixE (e1, atom, e2), InfixT (_, atom', _) when Atom.sub atom' atom -> let e21 = ParenE (SeqE [] $ e2.at) $ e2.at in elab_exp_notation' env tid (InfixE (e1, atom', SeqE [e21; e2] $ e2.at) $ e.at) t | InfixE (e1, atom, e2), InfixT (t1, atom', t2) -> if atom.it <> atom'.it then fail_typ env e.at "infix expression" t else - let* es1', s1 = elab_exp_notation' env tid e1 t1 in - let* es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in + let* bs1', es1', s1 = elab_exp_notation' env tid e1 t1 in + let* bs2', es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in let _ = elab_atom atom tid in - Ok (es1' @ es2', Subst.union s1 s2) + Ok (bs1' @ bs2', es1' @ es2', Subst.union s1 s2) | BrackE (l, e1, r), BrackT (l', t1, r') -> if (l.it, r.it) <> (l'.it, r'.it) then fail_typ env e.at "bracket expression" t else let _ = elab_atom l tid in @@ -1468,7 +1544,7 @@ and elab_exp_notation' env tid e t : (Il.exp list * Subst.t) attempt = elab_exp_notation' env tid e1 t1 | SeqE [], SeqT [] -> - Ok ([], Subst.empty) + Ok ([], [], Subst.empty) | _, SeqT (t1::ts2) when is_iter_typ env t1 -> let* t11, iter = as_iter_typ "iteration" env Check t1 e.at in elab_exp_notation_iter env tid (unseq_exp e) (t11, iter) t1 ts2 e.at @@ -1480,29 +1556,29 @@ and elab_exp_notation' env tid e t : (Il.exp list * Subst.t) attempt = | SeqE (e1::es2), SeqT [t1] -> choice env [ (fun env -> - let* es1', s1 = elab_exp_notation' env tid (unparen_exp e1) t1 in + let* bs1', es1', s1 = elab_exp_notation' env tid (unparen_exp e1) t1 in let e2 = SeqE es2 $ Source.over_region (after_region e1.at :: List.map Source.at es2) in let t2 = SeqT [] $ Source.after_region t1.at in - let* es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in - Ok (es1' @ es2', Subst.union s1 s2) + let* bs2', es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in + Ok (bs1' @ bs2', es1' @ es2', Subst.union s1 s2) ); (fun env -> - let* e' = elab_exp env e t1 in - Ok ([e'], Subst.empty) + let* bs', e' = elab_exp env e t1 in + Ok (bs', [e'], Subst.empty) ) ] | SeqE (e1::es2), SeqT (t1::ts2) -> - let* es1', s1 = elab_exp_notation' env tid (unparen_exp e1) t1 in + let* bs1', es1', s1 = elab_exp_notation' env tid (unparen_exp e1) t1 in let e2 = SeqE es2 $ Source.over_region (after_region e1.at :: List.map Source.at es2) in let t2 = SeqT ts2 $ Source.over_region (after_region t1.at :: List.map Source.at ts2) in - let* es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in - Ok (es1' @ es2', Subst.union s1 s2) + let* bs2', es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in + Ok (bs1' @ bs2', es1' @ es2', Subst.union s1 s2) (* Trailing elements can be omitted if they can be eps *) | SeqE [], SeqT (t1::ts2) -> - let* e1' = cast_empty "omitted sequence tail" env t1 e.at (!!!env tid t1) in + let* bs1', e1' = cast_empty "omitted sequence tail" env t1 e.at (!!!env tid t1) in let t2 = SeqT ts2 $ Source.over_region (after_region t1.at :: List.map Source.at ts2) in - let* es2', s2 = elab_exp_notation' env tid e t2 in - Ok (e1' :: es2', s2) + let* bs2', es2', s2 = elab_exp_notation' env tid e t2 in + Ok (bs1' @ bs2', e1' :: es2', s2) | SeqE (e1::_), SeqT [] -> fail e1.at "expression is not empty" (* Since trailing elements can be omitted, a singleton may match a sequence *) @@ -1519,63 +1595,63 @@ and elab_exp_notation' env tid e t : (Il.exp list * Subst.t) attempt = fail_typ env e.at "expression" t | _, _ -> - let* e' = elab_exp env e t in - Ok ([e'], Subst.add_varid Subst.empty (Convert.varid_of_typ t) e) + let* bs', e' = elab_exp env e t in + Ok (bs', [e'], Subst.add_varid Subst.empty (Convert.varid_of_typ t) e) -and elab_exp_notation_iter env tid es (t1, iter) t ts at : (Il.exp list * Subst.t) attempt = +and elab_exp_notation_iter env tid es (t1, iter) t ts at : (Il.bind list * Il.exp list * Subst.t) attempt = assert (valid_tid tid); let t' = elab_typ env t in - let* e', es', s = elab_exp_notation_iter' env tid es (t1, iter) t ts t' at in - Ok (e'::es', s) + let* bs', e', es', s = elab_exp_notation_iter' env tid es (t1, iter) t ts t' at in + Ok (bs', e'::es', s) -and elab_exp_notation_iter' env tid es (t1, iter) t ts t' at : (Il.exp * Il.exp list * Subst.t) attempt = +and elab_exp_notation_iter' env tid es (t1, iter) t ts t' at : (Il.bind list * Il.exp * Il.exp list * Subst.t) attempt = Debug.(log_at "el.elab_exp_notation_iter" at (fun _ -> fmt "%s : %s = (%s)%s" (seq el_exp es) (el_typ t) (el_typ t1) (el_iter iter)) - (function Ok (e', es', _) -> fmt "%s" (seq il_exp (e'::es')) | _ -> "fail") + (function Ok (bs', e', es', _) -> fmt "%s %s" (il_binds bs') (seq il_exp (e'::es')) | _ -> "fail") ) @@ fun _ -> let tat' = Source.over_region (after_region t.at :: List.map Source.at ts) in match es, iter with | [], Opt -> - let* es', s = elab_exp_notation' env tid (SeqE [] $ at) (SeqT ts $ tat') in - Ok (Il.OptE None $$ at % t', es', s) + let* bs', es', s = elab_exp_notation' env tid (SeqE [] $ at) (SeqT ts $ tat') in + Ok (bs', Il.OptE None $$ at % t', es', s) | e1::es2, Opt -> choice env [ (fun env -> - let* es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (SeqT ts $ tat') in - Ok (Il.OptE None $$ Source.before_region e1.at % t', es', s) + let* bs', es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (SeqT ts $ tat') in + Ok (bs', Il.OptE None $$ Source.before_region e1.at % t', es', s) ); (fun env -> - let* e1' = elab_exp env e1 t in + let* bs1', e1' = elab_exp env e1 t in let at' = Source.over_region (after_region e1.at :: List.map Source.at es2) in - let* es2', s = elab_exp_notation' env tid (SeqE es2 $ at') (SeqT ts $ tat') in - Ok (e1', es2', s) + let* bs2', es2', s = elab_exp_notation' env tid (SeqE es2 $ at') (SeqT ts $ tat') in + Ok (bs1' @ bs2', e1', es2', s) ); ] | [], List -> - let* es', s = elab_exp_notation' env tid (SeqE [] $ at) (SeqT ts $ tat') in - Ok (Il.ListE [] $$ at % t', es', s) + let* bs', es', s = elab_exp_notation' env tid (SeqE [] $ at) (SeqT ts $ tat') in + Ok (bs', Il.ListE [] $$ at % t', es', s) | e1::es2, List -> choice env [ (fun env -> - let* es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (SeqT ts $ tat') in - Ok (Il.ListE [] $$ at % t', es', s) + let* bs', es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (SeqT ts $ tat') in + Ok (bs', Il.ListE [] $$ at % t', es', s) ); (fun env -> - let* e1' = elab_exp env e1 t in + let* bs1', e1' = elab_exp env e1 t in let at' = Source.over_region (after_region e1.at :: List.map Source.at es2) in - let* e2', es2', s = elab_exp_notation_iter' env tid es2 (t1, iter) t ts t' at' in - Ok (cat_exp' e1' e2' $$ Source.over_region [e1'.at; e2'.at] % t', es2', s) + let* bs2', e2', es2', s = elab_exp_notation_iter' env tid es2 (t1, iter) t ts t' at' in + Ok (bs1' @ bs2', cat_exp' e1' e2' $$ Source.over_region [e1'.at; e2'.at] % t', es2', s) ); ] | _, (List1 | ListN _) -> assert false -and elab_exp_variant env tid e cases t at : Il.exp attempt = +and elab_exp_variant env tid e cases t at : (Il.bind list * Il.exp) attempt = Debug.(log_at "el.elab_exp_variant" e.at (fun _ -> fmt "%s : %s = %s" (el_exp e) tid.it (el_typ t)) - (function Ok e' -> fmt "%s" (il_exp e') | _ -> "fail") + (function Ok (bs', e') -> fmt "%s%s" (il_binds bs') (il_exp e') | _ -> "fail") ) @@ fun _ -> assert (valid_tid tid); let* atom = @@ -1587,167 +1663,200 @@ and elab_exp_variant env tid e cases t at : Il.exp attempt = | _ -> fail_typ env at "expression" t in let* t1, _prems = attempt (find_case_sub cases atom atom.at) t in - let* es', _s = elab_exp_notation' env tid e t1 in + let* bs1', es', _s = elab_exp_notation' env tid e t1 in let t2 = expand env t $ at in let t2' = elab_typ env t2 in + + let mixop, bs2', t1', _prems', _ = elab_typ_notation' env tid e.at t1 [] in + let* bs3', e' = cast_exp "variant case" env + (Il.CaseE (mixop, Il.TupE es' $$ at % t1') $$ at % t2') t2 t in + Ok (bs1' @ bs2' @ bs3', e') +(* let mixop, ts', _ = elab_typ_notation env tid t1 in assert (List.length es' = List.length ts'); cast_exp "variant case" env (Il.CaseE (mixop, tup_exp_bind' es' at) $$ at % t2') t2 t +*) +and elab_path env p t : (Il.bind list * Il.path * typ) attempt = + let* bs', p', t' = elab_path' env p t in + Ok (bs', p' $$ p.at % elab_typ env t', t') -and elab_path env p t : (Il.path * typ) attempt = - let* p', t' = elab_path' env p t in - Ok (p' $$ p.at % elab_typ env t', t') - -and elab_path' env p t : (Il.path' * typ) attempt = +and elab_path' env p t : (Il.bind list * Il.path' * typ) attempt = match p.it with | RootP -> - Ok (Il.RootP, t) + Ok ([], Il.RootP, t) | IdxP (p1, e1) -> - let* p1', t1 = elab_path env p1 t in - let e1' = checkpoint (elab_exp env e1 (NumT `NatT $ e1.at)) in + let* bs1', p1', t1 = elab_path env p1 t in + let bs2', e1' = checkpoint (elab_exp env e1 (NumT `NatT $ e1.at)) in let* t' = as_list_typ "path" env Check t1 p1.at in - Ok (Il.IdxP (p1', e1'), t') + Ok (bs1' @ bs2', Il.IdxP (p1', e1'), t') | SliceP (p1, e1, e2) -> - let* p1', t1 = elab_path env p1 t in - let e1' = checkpoint (elab_exp env e1 (NumT `NatT $ e1.at)) in - let e2' = checkpoint (elab_exp env e2 (NumT `NatT $ e2.at)) in + let* bs', p1', t1 = elab_path env p1 t in + let bs1', e1' = checkpoint (elab_exp env e1 (NumT `NatT $ e1.at)) in + let bs2', e2' = checkpoint (elab_exp env e2 (NumT `NatT $ e2.at)) in let* _ = as_list_typ "path" env Check t1 p1.at in - Ok (Il.SliceP (p1', e1', e2'), t1) + Ok (bs' @ bs1' @ bs2', Il.SliceP (p1', e1', e2'), t1) | DotP (p1, atom) -> - let* p1', t1 = elab_path env p1 t in + let* bs1', p1', t1 = elab_path env p1 t in let* tfs, dots1 = as_struct_typ "path" env Check t1 p1.at in if dots1 = Dots then error p1.at "used record type is only partially defined at this point"; +(*TODO*) let* t', _prems = attempt (find_field tfs atom p1.at) t1 in - Ok (Il.DotP (p1', elab_atom atom (expand_id env t1)), t') + Ok (bs1', Il.DotP (p1', elab_atom atom (expand_id env t1)), t') -and cast_empty phrase env t at t' : Il.exp attempt = +and cast_empty phrase env t at t' : (Il.bind list * Il.exp) attempt = Debug.(log_at "el.elab_exp_cast_empty" at (fun _ -> fmt "%s >> (%s)" (el_typ t) (el_typ (expand_notation env t $ t.at))) - (function Ok r -> fmt "%s" (il_exp r) | _ -> "fail") + (function Ok (bs', e') -> fmt "%s%s" (il_binds bs') (il_exp e') | _ -> "fail") ) @@ fun _ -> nest at t ( match expand_notation env t with - | SeqT [] -> Ok (Il.ListE [] $$ at % t') - | IterT (_, Opt) -> Ok (Il.OptE None $$ at % t') - | IterT (_, List) -> Ok (Il.ListE [] $$ at % t') + | SeqT [] -> Ok ([], Il.ListE [] $$ at % t') + | IterT (_, Opt) -> Ok ([], Il.OptE None $$ at % t') + | IterT (_, List) -> Ok ([], Il.ListE [] $$ at % t') | VarT _ when is_iter_notation_typ env t -> (match expand_iter_notation env t with | IterT (_, iter) as t1 -> +(*TODO*) let mixop, ts', _ts = elab_typ_notation env (expand_id env t) (t1 $ t.at) in assert (List.length ts' = 1); let e1' = if iter = Opt then Il.OptE None else Il.ListE [] in - Ok (Il.CaseE (mixop, tup_exp_bind' [e1' $$ at % List.hd ts'] at) $$ at % t') + Ok ([], Il.CaseE (mixop, tup_exp_bind' [e1' $$ at % List.hd ts'] at) $$ at % t') | _ -> fail_typ env at phrase t ) | _ -> fail_typ env at phrase t ) -and cast_exp phrase env e' t1 t2 : Il.exp attempt = - let* e'' = nest e'.at t2 (cast_exp' phrase env e' t1 t2) in - Ok (e'' $$ e'.at % elab_typ env (expand_nondef env t2)) +and cast_exp phrase env e' t1 t2 : (Il.bind list * Il.exp) attempt = + let* bs', e'' = nest e'.at t2 (cast_exp' phrase env e' t1 t2) in + Ok (bs', e'' $$ e'.at % elab_typ env (expand_nondef env t2)) -and cast_exp' phrase env e' t1 t2 : Il.exp' attempt = +and cast_exp' phrase env e' t1 t2 : (Il.bind list * Il.exp') attempt = Debug.(log_at "el.elab_exp_cast" e'.at (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s)" (el_typ t1) (el_typ t2) (el_typ (expand_def env t1 $ t1.at)) (el_typ (expand_def env t2 $ t2.at)) (el_typ (expand_nondef env t2)) ) - (function Ok r -> fmt "%s" (il_exp (r $$ e'.at % elab_typ env t2)) | _ -> "fail") + (function Ok (bs', e'') -> fmt "%s%s" (il_binds bs') (il_exp (e'' $$ e'.at % elab_typ env t2)) | _ -> "fail") ) @@ fun _ -> - if equiv_typ env t1 t2 then Ok e'.it else + if equiv_typ env t1 t2 then Ok ([], e'.it) else match expand_def env t1, expand_def env t2 with | _, _ when sub_typ env t1 t2 -> let t1' = elab_typ env (expand_nondef env t1) in let t2' = elab_typ env (expand_nondef env t2) in - Ok (Il.SubE (e', t1', t2')) + Ok ([], Il.SubE (e', t1', t2')) | NumT nt1, NumT nt2 when nt1 < nt2 || lax_num && nt1 <> `RealT -> - Ok (Il.CvtE (e', nt1, nt2)) + Ok ([], Il.CvtE (e', nt1, nt2)) | TupT [], SeqT [] -> - Ok e'.it + Ok ([], e'.it) | ConT ((t11, _), _), ConT ((t21, _), _) -> choice env [ (fun env -> + (* Two ConT's with the same operator can be cast pointwise *) + let mixop1, bs1', t1', _prems1', ts1 = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in + let mixop2, bs2', _t2', _prems2', ts2 = elab_typ_notation' env (expand_id env t2) t2.at t21 [] in +(* let mixop1, ts1', ts1 = elab_typ_notation env (expand_id env t1) t11 in let mixop2, _ts2', ts2 = elab_typ_notation env (expand_id env t2) t21 in +*) if mixop1 <> mixop2 then fail_typ2 env e'.at phrase t1 t2 "" else - let e'' = Il.UncaseE (e', mixop1) $$ e'.at % tup_typ' ts1' e'.at in + let e'' = Il.UncaseE (e', mixop1) $$ e'.at % t1' in +Printf.printf "[1] %s => %s\n%!" (Debug.el_typ t1) (Debug.il_typ t1'); + let ts1' = match t1'.it with Il.TupT ets -> List.map snd ets | _ -> [t1'] in let es' = List.mapi (fun i t1I' -> Il.ProjE (e'', i) $$ e''.at % t1I') ts1' in - let* es'' = map2_attempt (fun eI' (t1I, t2I) -> + let* bss'_es'' = map2_attempt (fun eI' (t1I, t2I) -> cast_exp phrase env eI' t1I t2I) es' (List.combine ts1 ts2) in - Ok (Il.CaseE (mixop2, tup_exp_bind' es'' e'.at)) + let bss', es'' = List.split bss'_es'' in + Ok (bs1' @ bs2' @ List.concat bss', Il.CaseE (mixop2, tup_exp_bind' es'' e'.at)) ); (fun env -> + (* Two unary ConT's can be cast transitively *) Debug.(log_in_at "el.cast_exp" e'.at (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s) # backtrack 1" (el_typ t1) (el_typ t2) (el_typ (expand_def env t1 $ t1.at)) (el_typ (expand_def env t2 $ t2.at)) (el_typ (expand_nondef env t2)) ) ); + let mixop, bs', t1', _prems', ts = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in +(* let mixop, ts', ts = elab_typ_notation env (expand_id env t1) t11 in - let* t111, t111' = match ts, ts' with [t111], [t111'] -> Ok (t111, t111') | _ -> +*) + let* t111, t111' = match ts, t1'.it with [t111], Il.TupT [_, t111'] -> Ok (t111, t111') | _ -> fail_typ2 env e'.at phrase t1 t2 "" in - let e'' = Il.UncaseE (e', mixop) $$ e'.at % tup_typ' ts' e'.at in - cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 +Printf.printf "[2] %s => %s\n%!" (Debug.el_typ t1) (Debug.il_typ t1'); + let e'' = Il.UncaseE (e', mixop) $$ e'.at % t1' in + let* bs'', e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in + Ok (bs' @ bs'', e''') ); ] | ConT ((t11, _), _), t2' -> choice env [ (fun env -> - let* e'' = + let* bs', e'' = match t2' with | IterT (t21, iter) -> - let* e1' = cast_exp phrase env e' t1 t21 in + let* bs1', e1' = cast_exp phrase env e' t1 t21 in (match iter with - | Opt -> Ok (Il.OptE (Some e1')) - | List -> Ok (Il.ListE [e1']) + | Opt -> Ok (bs1', Il.OptE (Some e1')) + | List -> Ok (bs1', Il.ListE [e1']) | _ -> assert false ) | _ -> fail_silent in - Ok e'' + Ok (bs', e'') ); (fun env -> + (* A ConT can be cast to its payload *) Debug.(log_in_at "el.cast_exp" e'.at (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s) # backtrack 2" (el_typ t1) (el_typ t2) (el_typ (expand_def env t1 $ t1.at)) (el_typ (expand_def env t2 $ t2.at)) (el_typ (expand_nondef env t2)) ) ); + let mixop, bs', t1', _prems', ts = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in +(* let mixop, ts', ts = elab_typ_notation env (expand_id env t1) t11 in - let* t111, t111' = match ts, ts' with [t111], [t111'] -> Ok (t111, t111') | _ -> +*) + let* t111, t111' = match ts, t1'.it with [t111], Il.TupT [_, t111'] -> Ok (t111, t111') | _ -> fail_typ2 env e'.at phrase t1 t2 "" in - let e'' = Il.UncaseE (e', mixop) $$ e'.at % tup_typ' ts' e'.at in - cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 +Printf.printf "[3] %s => %s\n%!" (Debug.el_typ t1) (Debug.il_typ t1'); + let e'' = Il.UncaseE (e', mixop) $$ e'.at % t1' in + let* bs'', e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in + Ok (bs' @ bs'', e''') ); ] | _, ConT ((t21, _), _) -> + (* A ConT payload can be cast to the ConT *) + let mixop, bs', t', _prems', ts = elab_typ_notation' env (expand_id env t2) t2.at t21 [] in +(* let mixop, _ts', ts = elab_typ_notation env (expand_id env t2) t21 in +*) let* t211 = match ts with [t211] -> Ok t211 | _ -> fail_typ2 env e'.at phrase t1 t2 "" in - let* e1' = cast_exp phrase env e' t1 t211 in - Ok (Il.CaseE (mixop, tup_exp_bind' [e1'] e'.at)) + let* bs1', e1' = cast_exp phrase env e' t1 t211 in + Ok (bs' @ bs1', Il.CaseE (mixop, Il.TupE [e1'] $$ e'.at % t')) | RangeT _, t2' -> choice env [ (fun env -> - let* e'' = + let* bs', e'' = match t2' with | IterT (t21, iter) -> - let* e1' = cast_exp phrase env e' t1 t21 in + let* bs1', e1' = cast_exp phrase env e' t1 t21 in (match iter with - | Opt -> Ok (Il.OptE (Some e1')) - | List -> Ok (Il.ListE [e1']) + | Opt -> Ok (bs1', Il.OptE (Some e1')) + | List -> Ok (bs1', Il.ListE [e1']) | _ -> assert false ) | _ -> fail_silent in - Ok e'' + Ok (bs', e'') ); (fun env -> + (* A RangeT can be cast to its carrier type *) Debug.(log_in_at "el.cast_exp" e'.at (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s) # backtrack 3" (el_typ t1) (el_typ t2) (el_typ (expand_def env t1 $ t1.at)) (el_typ (expand_def env t2 $ t2.at)) @@ -1756,30 +1865,32 @@ and cast_exp' phrase env e' t1 t2 : Il.exp' attempt = ); let t11 = typ_rep env t1 in let t11' = elab_typ env t11 in - let e'' = Il.UncaseE (e', [[]; []]) $$ e'.at % tup_typ' [t11'] e'.at in +Printf.printf "[4] %s => %s\n%!" (Debug.el_typ t11) (Debug.il_typ t11'); + let e'' = Il.UncaseE (e', [[]; []]) $$ e'.at % t11' in let e''' = Il.ProjE (e'', 0) $$ e'.at % t11' in cast_exp' phrase env e''' t11 t2 ); ] | _, RangeT _ -> + (* A respective carrier type can be cast to RangeT *) let t21 = typ_rep env t2 in - let* e'' = cast_exp phrase env e' t1 t21 in - Ok (Il.CaseE ([[]; []], tup_exp_bind' [e''] e'.at)) + let* bs', e'' = cast_exp phrase env e' t1 t21 in + Ok (bs', Il.CaseE ([[]; []], Il.TupE [e''] $$ e'.at % elab_typ env t21)) | _, IterT (t21, Opt) -> - let* e'' = cast_exp phrase env e' t1 t21 in - Ok (Il.OptE (Some e'')) + let* bs', e'' = cast_exp phrase env e' t1 t21 in + Ok (bs', Il.OptE (Some e'')) (* TODO(3, rossberg): enable; violates invariant that all iterexps are initially empty | IterT (t11, List), IterT (t21, List) -> choice env [ (fun env -> let id = x $ e'.at in let t11' = elab_typ env t11 in - let* e'' = cast_exp phrase env (Il.VarE id $$ e'.at % t11') t11 t21 in - Ok (Il.IterE (e'', (List, [x, e']))) + let* bs', e'' = cast_exp phrase env (Il.VarE id $$ e'.at % t11') t11 t21 in + Ok (bs', Il.IterE (e'', (List, [x, e']))) ); (fun env -> - let* e'' = cast_exp phrase env e' t1 t21 in - Ok (Il.ListE [e'']) + let* bs', e'' = cast_exp phrase env e' t1 t21 in + Ok (bs', Il.ListE [e'']) ); ] *) @@ -1791,13 +1902,13 @@ and cast_exp' phrase env e' t1 t2 : Il.exp' attempt = cast_exp' phrase env e'' (IterT (t11, List) $ e'.at) t2 ); (fun env -> - let* e'' = cast_exp phrase env e' t1 t21 in - Ok (Il.ListE [e'']) + let* bs', e'' = cast_exp phrase env e' t1 t21 in + Ok (bs', Il.ListE [e'']) ); ] | _, IterT (t21, (List | List1)) -> - let* e'' = cast_exp phrase env e' t1 t21 in - Ok (Il.ListE [e'']) + let* bs', e'' = cast_exp phrase env e' t1 t21 in + Ok (bs', Il.ListE [e'']) | _, _ when is_variant_typ env t1 && is_variant_typ env t2 && not (is_iter_typ env t1) -> let cases1, dots1 = checkpoint (as_variant_typ "" env Check t1 e'.at) in let cases2, _dots2 = checkpoint (as_variant_typ "" env Check t2 e'.at) in @@ -1821,55 +1932,58 @@ and cast_exp' phrase env e' t1 t2 : Il.exp' attempt = let t21 = expand env t2 $ t2.at in let t11' = elab_typ env (expand_nondef env t1) in let t21' = elab_typ env (expand_nondef env t2) in - let* e'' = cast_exp phrase env e' t1 t11 in + let* bs1', e'' = cast_exp phrase env e' t1 t11 in let e''' = Il.SubE (e'', t11', t21') in - cast_exp' phrase env (e''' $$ e'.at % t21') t21 t2 + let* bs2', e'''' = cast_exp' phrase env (e''' $$ e'.at % t21') t21 t2 in + Ok (bs1' @ bs2', e'''') | _, _ -> fail_typ2 env e'.at phrase t1 t2 "" -and elab_iterexp env iter : Il.iterexp = - (elab_iter env iter, []) +and elab_iterexp env iter : Il.bind list * Il.iterexp = + let bs', iter' = elab_iter env iter in + (bs', (iter', [])) (* Premises *) -and elab_prem env prem : Il.prem list = +and elab_prem env prem : Il.bind list * Il.prem list = match prem.it with | VarPr (id, t) -> env.vars <- bind "variable" env.vars id t; - [] + [], [] | RulePr (id, e) -> let t, _ = find "relation" env.rels id in let mixop, _, _ = elab_typ_notation env id t in - let es', _s = checkpoint (elab_exp_notation' env id e t) in - [Il.RulePr (id, mixop, tup_exp' es' e.at) $ prem.at] + let bs', es', _s = checkpoint (elab_exp_notation' env id e t) in + bs', [Il.RulePr (id, mixop, tup_exp' es' e.at) $ prem.at] | IfPr e -> - let e' = checkpoint (elab_exp env e (BoolT $ e.at)) in - [Il.IfPr e' $ prem.at] + let bs', e' = checkpoint (elab_exp env e (BoolT $ e.at)) in + bs', [Il.IfPr e' $ prem.at] | ElsePr -> - [Il.ElsePr $ prem.at] + [], [Il.ElsePr $ prem.at] | IterPr ({it = VarPr _; at; _}, _iter) -> error at "misplaced variable premise" | IterPr (prem1, iter) -> - let iter' = elab_iterexp env iter in - let prem1' = List.hd (elab_prem env prem1) in - [Il.IterPr (prem1', iter') $ prem.at] + let bs', iter' = elab_iterexp env iter in + let bs1', prems1' = elab_prem env prem1 in + assert (List.length prems1' = 1); + bs' @ bs1', [Il.IterPr (List.hd prems1', iter') $ prem.at] (* Grammars *) -and infer_sym env g : (Il.sym * typ) attempt = +and infer_sym env g : (Il.bind list * Il.sym * typ) attempt = Debug.(log_at "el.infer_sym" g.at (fun _ -> fmt "%s" (el_sym g)) - (function Ok (g', t) -> fmt "%s : %s" (il_sym g') (el_typ t) | _ -> "fail") + (function Ok (bs', g', t) -> fmt "%s %s : %s" (il_binds bs') (il_sym g') (el_typ t) | _ -> "fail") ) @@ fun _ -> nest g.at (TupT [] $ g.at) ( match g.it with | VarG (id, as_) -> let ps, t, _gram, _prods' = find "grammar" env.grams id in - let as', s = elab_args `Rhs env as_ ps g.at in - Ok (Il.VarG (id, as') $ g.at, Subst.subst_typ s t) + let bs', as', s = elab_args `Rhs env as_ ps g.at in + Ok (bs', Il.VarG (id, as') $ g.at, Subst.subst_typ s t) | NumG (`CharOp, n) -> (* let s = try Utf8.encode [Z.to_int n] with Z.Overflow | Utf8.Utf8 -> @@ -1879,56 +1993,59 @@ and infer_sym env g : (Il.sym * typ) attempt = if n < Z.of_int 0x00 || n > Z.of_int 0x10ffff then fail g.at "unicode value out of range" else - Ok (Il.NumG (Z.to_int n) $ g.at, NumT `NatT $ g.at) + Ok ([], Il.NumG (Z.to_int n) $ g.at, NumT `NatT $ g.at) | NumG (_, n) -> if n < Z.of_int 0x00 || n > Z.of_int 0xff then fail g.at "byte value out of range" else - Ok (Il.NumG (Z.to_int n) $ g.at, NumT `NatT $ g.at) + Ok ([], Il.NumG (Z.to_int n) $ g.at, NumT `NatT $ g.at) | TextG s -> - Ok (Il.TextG s $ g.at, TextT $ g.at) + Ok ([], Il.TextG s $ g.at, TextT $ g.at) | EpsG -> - Ok (Il.EpsG $ g.at, TupT [] $ g.at) + Ok ([], Il.EpsG $ g.at, TupT [] $ g.at) | SeqG gs -> - let* gs' = elab_sym_list env (filter_nl gs) (TupT [] $ g.at) in - Ok (Il.SeqG gs' $ g.at, TupT [] $ g.at) + let* bs', gs' = elab_sym_list env (filter_nl gs) (TupT [] $ g.at) in + Ok (bs', Il.SeqG gs' $ g.at, TupT [] $ g.at) | AltG gs -> choice env [ (fun env -> - let* gs', ts = infer_sym_list env (filter_nl gs) in - if ts <> [] && List.for_all (equiv_typ env (List.hd ts)) ts then - Ok (Il.AltG gs' $ g.at, List.hd ts) + let* bs', gs', ts = infer_sym_list env (filter_nl gs) in + if bs' <> [] then + fail g.at "invalid expressions in alternative" + else if ts <> [] && List.for_all (equiv_typ env (List.hd ts)) ts then + Ok ([], Il.AltG gs' $ g.at, List.hd ts) else fail g.at "inconsistent types" ); (fun env -> (* HACK to treat singleton strings in short grammar as characters *) - let* g' = elab_sym env g (NumT `NatT $ g.at) in - Ok (g', NumT `NatT $ g.at) + let* bs', g' = elab_sym env g (NumT `NatT $ g.at) in + Ok (bs', g', NumT `NatT $ g.at) ); (fun env -> - let* g' = elab_sym env g (TupT [] $ g.at) in - Ok (g', TupT [] $ g.at) + let* bs', g' = elab_sym env g (TupT [] $ g.at) in + Ok (bs', g', TupT [] $ g.at) ) ] | RangeG (g1, g2) -> let env1 = local_env env in let env2 = local_env env in - let* g1' = elab_sym env1 g1 (NumT `NatT $ g1.at) in - let* g2' = elab_sym env2 g2 (NumT `NatT $ g2.at) in + let* bs1', g1' = elab_sym env1 g1 (NumT `NatT $ g1.at) in + let* bs2', g2' = elab_sym env2 g2 (NumT `NatT $ g2.at) in if env1.vars != env.vars then error g1.at "invalid symbol in range"; if env2.vars != env.vars then error g2.at "invalid symbol in range"; - Ok (Il.RangeG (g1', g2') $ g.at, NumT `NatT $ g.at) + Ok (bs1' @ bs2', Il.RangeG (g1', g2') $ g.at, NumT `NatT $ g.at) | ParenG g1 -> infer_sym env g1 | TupG _ -> error g.at "malformed grammar" | ArithG e -> infer_sym env (sym_of_exp e) | IterG (g1, iter) -> - let iterexp' = elab_iterexp env iter in - let* g1', t1 = infer_sym env g1 in + let bs', iterexp' = elab_iterexp env iter in + let* bs1', g1', t1 = infer_sym env g1 in Ok ( + bs1' @ bs', Il.IterG (g1', iterexp') $ g.at, IterT (t1, match iter with Opt -> Opt | _ -> List) $ g.at ) @@ -1937,37 +2054,37 @@ and infer_sym env g : (Il.sym * typ) attempt = (fun env -> (* HACK to treat singleton strings in short grammar as characters *) let t1 = NumT `NatT $ g1.at in - let* g1' = elab_sym env g1 t1 in - let* e' = elab_exp env e t1 in - Ok (Il.AttrG (e', g1') $ g.at, t1) + let* bs1', g1' = elab_sym env g1 t1 in + let* bs2', e' = elab_exp env e t1 in + Ok (bs2' @ bs1', Il.AttrG (e', g1') $ g.at, t1) ); (fun env -> - let* g1', t1 = infer_sym env g1 in - let* e' = elab_exp env e t1 in - Ok (Il.AttrG (e', g1') $ g.at, t1) + let* bs1', g1', t1 = infer_sym env g1 in + let* bs2', e' = elab_exp env e t1 in + Ok (bs1' @ bs2', Il.AttrG (e', g1') $ g.at, t1) ); ] (* - let g1', t1 = infer_sym env g1 in - let e' = checkpoint (elab_exp env e t1) in - Il.AttrG (e', g1') $ g.at, t1 + let bs1', g1', t1 = infer_sym env g1 in + let bs2', e' = checkpoint (elab_exp env e t1) in + Ok (bs1' @ bs2', Il.AttrG (e', g1') $ g.at, t1) *) | FuseG _ -> error g.at "misplaced token concatenation" | UnparenG _ -> error g.at "misplaced token unparenthesize" ) -and infer_sym_list env es : (Il.sym list * typ list) attempt = +and infer_sym_list env es : (Il.bind list * Il.sym list * typ list) attempt = match es with - | [] -> Ok ([], []) + | [] -> Ok ([], [], []) | g::gs -> - let* g', t = infer_sym env g in - let* gs', ts = infer_sym_list env gs in - Ok (g'::gs', t::ts) + let* bs1', g', t = infer_sym env g in + let* bs2', gs', ts = infer_sym_list env gs in + Ok (bs1' @ bs2', g'::gs', t::ts) -and elab_sym env g t : Il.sym attempt = +and elab_sym env g t : (Il.bind list * Il.sym) attempt = Debug.(log_at "el.elab_sym" g.at (fun _ -> fmt "%s : %s" (el_sym g) (el_typ t)) - (function Ok g' -> fmt "%s" (il_sym g') | _ -> "fail") + (function Ok (bs', g') -> fmt "%s%s" (il_binds bs') (il_sym g') | _ -> "fail") ) @@ fun _ -> nest g.at t ( match g.it with @@ -1975,38 +2092,40 @@ and elab_sym env g t : Il.sym attempt = let cs = try Utf8.decode s with Utf8.Utf8 -> [] in (* Allow treatment as character constant *) if List.length cs = 1 then - Ok (Il.NumG (List.hd cs) $ g.at) + Ok ([], Il.NumG (List.hd cs) $ g.at) else - let* g', t' = infer_sym env g in - cast_sym env g' t' t + let* bs1', g', t' = infer_sym env g in + let* bs2', g'' = cast_sym env g' t' t in + Ok (bs1' @ bs2', g'') | AltG gs -> - let* gs' = elab_sym_list env (filter_nl gs) t in - Ok (Il.AltG gs' $ g.at) + let* bs', gs' = elab_sym_list env (filter_nl gs) t in + Ok (bs', Il.AltG gs' $ g.at) | ParenG g1 -> elab_sym env g1 t | _ -> - let* g', t' = infer_sym env g in - cast_sym env g' t' t + let* bs1', g', t' = infer_sym env g in + let* bs2', g'' = cast_sym env g' t' t in + Ok (bs1' @ bs2', g'') ) -and elab_sym_list env es t : Il.sym list attempt = +and elab_sym_list env es t : (Il.bind list * Il.sym list) attempt = match es with - | [] -> Ok [] + | [] -> Ok ([], []) | g::gs -> - let* g' = elab_sym env g t in - let* gs' = elab_sym_list env gs t in - Ok (g'::gs') + let* bs1', g' = elab_sym env g t in + let* bs2', gs' = elab_sym_list env gs t in + Ok (bs1' @ bs2', g'::gs') -and cast_sym env g' t1 t2 : Il.sym attempt = +and cast_sym env g' t1 t2 : (Il.bind list * Il.sym) attempt = Debug.(log_at "el.elab_cast_sym" g'.at (fun _ -> fmt "%s : %s :> %s" (il_sym g') (el_typ t1) (el_typ t2)) - (function Ok g'' -> fmt "%s" (il_sym g'') | _ -> "fail") + (function Ok (bs', g'') -> fmt "%s%s" (il_binds bs') (il_sym g'') | _ -> "fail") ) @@ fun _ -> nest g'.at t2 ( if equiv_typ env t1 t2 then - Ok g' + Ok ([], g') else if equiv_typ env t2 (TupT [] $ t2.at) then - Ok (Il.SeqG [g'] $ g'.at) + Ok ([], Il.SeqG [g'] $ g'.at) else fail_typ2 env g'.at "symbol" t1 t2 "" ) @@ -2020,18 +2139,18 @@ and elab_prod env prod t : Il.prod list = let env' = local_env env in env'.pm <- false; let dims = Dim.check_prod (vars env) prod in - let dims' = Dim.Env.map (List.map (elab_iter env')) dims in - let g', _t = checkpoint (infer_sym env' g) in + let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in + let bs1', g', _t = checkpoint (infer_sym env' g) in let g' = Dim.annot_sym dims' g' in - let e' = + let bs2', e' = checkpoint ( if equiv_typ env' t (TupT [] $ e.at) then (* Special case: ignore unit attributes *) (* TODO(4, rossberg): introduce proper top type? *) - let* e', _t = infer_exp env' e in + let* bs', e', _t = infer_exp env' e in let t'_unit = Il.TupT [] $ e.at in let joker () = Il.VarE ("_" $ e.at) $$ e.at % t'_unit in - Ok (Il.ProjE ( + Ok (bs', Il.ProjE ( Il.TupE [ e'; Il.TupE [] $$ e.at % t'_unit ] $$ e.at % (Il.TupT [joker (), e'.note; joker (), t'_unit] $ e.at), 1 @@ -2041,8 +2160,8 @@ and elab_prod env prod t : Il.prod list = ) in let e' = Dim.annot_exp dims' e' in - let prems' = List.map (Dim.annot_prem dims') - (concat_map_filter_nl_list (elab_prem env') prems) in + let bss3', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in let det = Free.(diff (union (det_sym g) (det_prems prems)) (bound_env env)) in let free = Free.(diff (free_prod prod) (union (det_prod prod) (bound_env env'))) in if free <> Free.empty then @@ -2053,17 +2172,17 @@ and elab_prod env prod t : Il.prod list = Acc.sym g; Acc.exp e; Acc.prems prems; - let prod' = Il.ProdD (!acc_bs', g', e', prems') $ prod.at in + let prod' = Il.ProdD (!acc_bs' @ bs1' @ bs2' @ List.concat bss3', g', e', prems') $ prod.at in if not env'.pm then [prod'] else prod' :: elab_prod env Subst.(subst_prod pm_snd (Iter.clone_prod prod)) t | RangeP (g1, e1, g2, e2) -> let t = NumT `NatT $ prod.at in - let g1' = checkpoint (elab_sym env g1 t) in - let e1' = checkpoint (elab_exp env e1 t) in - let g2' = checkpoint (elab_sym env g2 t) in - let e2' = checkpoint (elab_exp env e2 t) in + let bs11', g1' = checkpoint (elab_sym env g1 t) in + let bs12', e1' = checkpoint (elab_exp env e1 t) in + let bs21', g2' = checkpoint (elab_sym env g2 t) in + let bs22', e2' = checkpoint (elab_exp env e2 t) in let c1 = match g1'.it with | Il.NumG c1 -> c1 @@ -2092,19 +2211,19 @@ and elab_prod env prod t : Il.prod list = let n = `Nat Z.(n1 + Z.of_int i) in let g' = {(if i = 0 then g1' else g2') with it = Il.NumG (c1 + i)} in let e' = {(if i = 0 then e1' else e2') with it = Il.NumE n} in - Il.ProdD ([], g', e', []) $ prod.at + Il.ProdD (bs11' @ bs12' @ bs21' @ bs22', g', e', []) $ prod.at ) | EquivP (g1, g2, prems) -> let env' = local_env env in env'.pm <- false; let dims = Dim.check_prod (vars env) prod in - let dims' = Dim.Env.map (List.map (elab_iter env')) dims in - let g1', _t1 = checkpoint (infer_sym env' g1) in + let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in + let bs1', g1', _t1 = checkpoint (infer_sym env' g1) in let g1' = Dim.annot_sym dims' g1' in - let g2', _t2 = checkpoint (infer_sym env' g2) in + let bs2', g2', _t2 = checkpoint (infer_sym env' g2) in let g2' = Dim.annot_sym dims' g2' in - let prems' = List.map (Dim.annot_prem dims') - (concat_map_filter_nl_list (elab_prem env') prems) in + let bss3', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in let det = Free.(diff (union (det_sym g1) (det_prems prems)) (bound_env env)) in let free = Free.(diff (free_prod prod) (union (det_prod prod) (bound_env env'))) in if free <> Free.empty then @@ -2115,8 +2234,8 @@ and elab_prod env prod t : Il.prod list = Acc.sym g1; Acc.sym g2; Acc.prems prems; -ignore (acc_bs', g1', g2', prems'); -[] + ignore (!acc_bs' @ bs1' @ bs2' @ List.concat bss3', g1', g2', prems'); + [] (* TODO(4, rossberg): translate equiv grammars properly *) (* let prod' = Il.ProdD (!acc_bs', g1', e', prems') $ prod.at in if not env'.pm then @@ -2206,7 +2325,7 @@ and make_binds_iter_arg env free dims : Il.bind list ref * (module Iter.Arg) = end in Arg.acc, (module Arg) -and elab_arg in_lhs env a p s : Il.arg list * Subst.subst = +and elab_arg in_lhs env a p s : Il.bind list * Il.arg list * Subst.subst = (match !(a.it), p.it with (* HACK: handle shorthands *) | ExpA e, TypP _ -> a.it := TypA (typ_of_exp e) | ExpA e, GramP _ -> a.it := GramA (sym_of_exp e) @@ -2215,8 +2334,8 @@ and elab_arg in_lhs env a p s : Il.arg list * Subst.subst = ); match !(a.it), (Subst.subst_param s p).it with | ExpA e, ExpP (id, t) -> - let e' = checkpoint (elab_exp env e t) in - [Il.ExpA e' $ a.at], Subst.add_varid s id e + let bs', e' = checkpoint (elab_exp env e t) in + bs', [Il.ExpA e' $ a.at], Subst.add_varid s id e | TypA ({it = VarT (id', []); _} as t), TypP id when in_lhs = `Lhs -> let id'' = strip_var_suffix id' in let is_prim = @@ -2227,24 +2346,24 @@ and elab_arg in_lhs env a p s : Il.arg list * Subst.subst = env.typs <- bind "syntax type" env.typs id'' ([], Opaque); if not is_prim then env.gvars <- bind "variable" env.gvars (strip_var_sub id'') (VarT (id'', []) $ id''.at); - [Il.TypA (Il.VarT (id'', []) $ t.at) $ a.at], Subst.add_typid s id t + [], [Il.TypA (Il.VarT (id'', []) $ t.at) $ a.at], Subst.add_typid s id t | TypA t, TypP _ when in_lhs = `Lhs -> error t.at "misplaced syntax type" | TypA t, TypP id -> let t' = elab_typ env t in - [Il.TypA t' $ a.at], Subst.add_typid s id t + [], [Il.TypA t' $ a.at], Subst.add_typid s id t | GramA g, GramP _ when in_lhs = `Lhs -> error g.at "misplaced grammar symbol" | GramA g, GramP (id', t) -> - let g', t' = checkpoint (infer_sym env g) in + let bs', g', t' = checkpoint (infer_sym env g) in let s' = subst_implicit env s t t' in if not (equiv_typ env t' (Subst.subst_typ s' t)) then error_typ2 env a.at "argument" t' t ""; let as' = List.map (fun (_id, t) -> Il.TypA (elab_typ env t) $ t.at) Subst.(Map.bindings s'.typid) in - as' @ [Il.GramA g' $ a.at], Subst.add_gramid s' id' g + bs', as' @ [Il.GramA g' $ a.at], Subst.add_gramid s' id' g | DefA id, DefP (id', ps', t') when in_lhs = `Lhs -> env.defs <- bind "definition" env.defs id (ps', t', []); - [Il.DefA id $ a.at], Subst.add_defid s id' id + [], [Il.DefA id $ a.at], Subst.add_defid s id' id | DefA id, DefP (id', ps', t') -> let ps, t, _ = find "definition" env.defs id in if not (Eval.equiv_functyp (to_eval_env env) (ps, t) (ps', t')) then @@ -2253,25 +2372,25 @@ and elab_arg in_lhs env a p s : Il.arg list * Subst.subst = "` but got `" ^ (spaceid "definition" id).it ^ Print.(string_of_params ps ^ " : " ^ string_of_typ ~short:true t ^ "`") ); - [Il.DefA id $ a.at], Subst.add_defid s id id' + [], [Il.DefA id $ a.at], Subst.add_defid s id id' | _, _ -> error a.at "sort mismatch for argument" -and elab_args in_lhs env as_ ps at : Il.arg list * Subst.subst = +and elab_args in_lhs env as_ ps at : Il.bind list * Il.arg list * Subst.subst = Debug.(log_at "el.elab_args" at (fun _ -> fmt "(%s) : (%s)" (list el_arg as_) (list el_param ps)) - (fun (r, _) -> fmt "(%s)" (list il_arg r)) + (fun (bs', as', _) -> fmt "%s(%s)" (il_binds bs') (list il_arg as')) ) @@ fun _ -> - elab_args' in_lhs env as_ ps [] Subst.empty at + elab_args' in_lhs env as_ ps [] [] Subst.empty at -and elab_args' in_lhs env as_ ps as' s at : Il.arg list * Subst.subst = +and elab_args' in_lhs env as_ ps bs' as' s at : Il.bind list * Il.arg list * Subst.subst = match as_, ps with - | [], [] -> List.concat (List.rev as'), s + | [], [] -> bs', List.concat (List.rev as'), s | a::_, [] -> error a.at "too many arguments" | [], _::_ -> error at "too few arguments" | a::as1, p::ps1 -> - let a', s' = elab_arg in_lhs env a p s in - elab_args' in_lhs env as1 ps1 (a'::as') s' at + let bs'', a', s' = elab_arg in_lhs env a p s in + elab_args' in_lhs env as1 ps1 (bs' @ bs'') (a'::as') s' at and subst_implicit env s t t' : Subst.subst = let free = Free.(Set.filter (fun id -> not (Map.mem id env.typs)) (free_typ t).typid) in @@ -2492,12 +2611,12 @@ let rec elab_def env d : Il.def list = let env' = local_env env in env'.pm <- false; let ps1, k1 = find "syntax type" env.typs id1 in - let as', _s = elab_args `Lhs env' as_ ps1 d.at in + let bs1', as', _s = elab_args `Lhs env' as_ ps1 d.at in let dt' = elab_typ_definition env' id1 t in let dims = Dim.check_def d in - let dims' = Dim.Env.map (List.map (elab_iter env')) dims in + let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in let bs' = infer_binds env env' dims d in - let inst' = Il.InstD (bs', List.map (Dim.annot_arg dims') as', dt') $ d.at in + let inst' = Il.InstD (bs' @ bs1', List.map (Dim.annot_arg dims') as', dt') $ d.at in let k1', closed = match k1, t.it with | Opaque, (CaseT (Dots, _, _, _) | StrT (Dots, _, _, _)) -> @@ -2594,18 +2713,18 @@ let rec elab_def env d : Il.def list = let env' = local_env env in env'.pm <- false; let dims = Dim.check_def d in - let dims' = Dim.Env.map (List.map (elab_iter env')) dims in + let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in let t, rules' = find "relation" env.rels id1 in if List.exists (fun (id, _) -> id.it = id2.it) rules' then error d.at ("duplicate rule name `" ^ id1.it ^ (if id2.it = "" then "" else "/" ^ id2.it) ^ "`"); let mixop, _, _ = elab_typ_notation env id1 t in - let es', _ = checkpoint (elab_exp_notation' env' id1 e t) in + let bs1', es', _ = checkpoint (elab_exp_notation' env' id1 e t) in let es' = List.map (Dim.annot_exp dims') es' in - let prems' = List.map (Dim.annot_prem dims') - (concat_map_filter_nl_list (elab_prem env') prems) in + let bss2', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in let bs' = infer_binds env env' dims d in - let rule' = Il.RuleD (id2, bs', mixop, tup_exp' es' e.at, prems') $ d.at in + let rule' = Il.RuleD (id2, bs' @ bs1' @ List.concat bss2', mixop, tup_exp' es' e.at, prems') $ d.at in env.rels <- rebind "relation" env.rels id1 (t, rules' @ [id2, rule']); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) | VarD (id, t, _hints) -> @@ -2631,16 +2750,16 @@ let rec elab_def env d : Il.def list = let env' = local_env env in env'.pm <- false; let dims = Dim.check_def d in - let dims' = Dim.Env.map (List.map (elab_iter env')) dims in + let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in let ps, t, clauses' = find "definition" env.defs id in - let as', s = elab_args `Lhs env' as_ ps d.at in + let bs1', as', s = elab_args `Lhs env' as_ ps d.at in let as' = List.map (Dim.annot_arg dims') as' in - let prems' = concat_map_filter_nl_list (elab_prem env') prems in - let e' = checkpoint (elab_exp env' e (Subst.subst_typ s t)) in + let bss2', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in + let bs3', e' = checkpoint (elab_exp env' e (Subst.subst_typ s t)) in let e' = Dim.annot_exp dims' e' in - let prems' = List.map (Dim.annot_prem dims') prems' in let bs' = infer_binds env env' dims d in - let clause' = Il.DefD (bs', as', e', prems') $ d.at in + let clause' = Il.DefD (bs' @ bs1' @ List.concat bss2' @ bs3', as', e', prems') $ d.at in env.defs <- rebind "definition" env.defs id (ps, t, clauses' @ [(d, clause')]); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) | SepD -> @@ -2780,10 +2899,10 @@ let elab ds : Il.script * env = let elab_exp env e t : Il.exp = let env' = local_env env in let _ = elab_typ env' t in - checkpoint (elab_exp env' e t) + snd (checkpoint (elab_exp env' e t)) let elab_rel env e id : Il.exp = let env' = local_env env in match elab_prem env' (RulePr (id, e) $ e.at) with - | [{it = Il.RulePr (_, _, e'); _}] -> e' + | _, [{it = Il.RulePr (_, _, e'); _}] -> e' | _ -> assert false diff --git a/spectec/src/il/debug.ml b/spectec/src/il/debug.ml index e3dd99fe81..c080fa080e 100644 --- a/spectec/src/il/debug.ml +++ b/spectec/src/il/debug.ml @@ -12,6 +12,7 @@ let il_deftyp = string_of_deftyp `H let il_exp = string_of_exp let il_sym = string_of_sym let il_prod = string_of_prod +let il_clause = string_of_clause let il_prem = string_of_prem let il_arg = string_of_arg let il_bind = string_of_bind diff --git a/spectec/src/il/eval.ml b/spectec/src/il/eval.ml index be9321624c..2f374036ed 100644 --- a/spectec/src/il/eval.ml +++ b/spectec/src/il/eval.ml @@ -521,6 +521,10 @@ and match_iter env s iter1 iter2 : subst option = (* Types *) and match_typ env s t1 t2 : subst option = + Debug.(log "il.match_typ" + (fun _ -> fmt "%s =: %s" (il_typ t1) (il_typ (Subst.subst_typ s t2))) + (fun r -> fmt "%s" (opt il_subst r)) + ) @@ fun _ -> match t1.it, t2.it with | _, VarT (id, []) when Subst.mem_typid s id -> match_typ env s t1 (Subst.subst_typ s t2) diff --git a/spectec/src/il/print.ml b/spectec/src/il/print.ml index 3d3a69f95f..3fb92c4a6e 100644 --- a/spectec/src/il/print.ml +++ b/spectec/src/il/print.ml @@ -106,6 +106,8 @@ and string_of_typcase (op, (bs, t, prems), _hints) = (* Expressions *) and string_of_exp e = +"{" ^ string_of_exp' e ^ " :: " ^ string_of_typ e.note ^ "}" +and string_of_exp' e = match e.it with | VarE id -> string_of_id id | BoolE b -> string_of_bool b @@ -132,7 +134,7 @@ and string_of_exp e = | CompE (e1, e2) -> string_of_exp e1 ^ " +++ " ^ string_of_exp e2 | MemE (e1, e2) -> "(" ^ string_of_exp e1 ^ " <- " ^ string_of_exp e2 ^ ")" | LenE e1 -> "|" ^ string_of_exp e1 ^ "|" - | TupE es -> "(" ^ string_of_exps ", " es ^ ")" + | TupE es -> "(" ^ string_of_exps ", " es ^ ")_" ^ string_of_typ e.note | CallE (id, as1) -> "$" ^ string_of_id id ^ string_of_args as1 | IterE (e1, iter) -> string_of_exp e1 ^ string_of_iterexp iter | ProjE (e1, i) -> string_of_exp e1 ^ "." ^ string_of_int i diff --git a/spectec/src/il/subst.ml b/spectec/src/il/subst.ml index 7e1bde0280..b159eed124 100644 --- a/spectec/src/il/subst.ml +++ b/spectec/src/il/subst.ml @@ -53,6 +53,7 @@ let remove_varids s ids' = let subst_opt subst_x s xo = Option.map (subst_x s) xo let subst_list subst_x s xs = List.map (subst_x s) xs +let subst_pair subst_x subst_y s (x, y) = subst_x s x, subst_y s y let rec subst_list_dep subst_x bound_x s = function | [] -> [], s @@ -102,7 +103,7 @@ and subst_typ s t = | Some t' -> assert (as_ = []); t'.it (* We do not support higher-order substitutions yet *) ) | BoolT | NumT _ | TextT -> t.it - | TupT ets -> TupT (fst (subst_list_dep subst_typbind Free.bound_typbind s ets)) + | TupT ets -> TupT (subst_list (subst_pair subst_exp subst_typ) s ets) | IterT (t1, iter) -> let iter', s' = subst_iter s iter in IterT (subst_typ s' t1, iter') diff --git a/spectec/src/il/valid.ml b/spectec/src/il/valid.ml index 86ef948a29..1f60fd0061 100644 --- a/spectec/src/il/valid.ml +++ b/spectec/src/il/valid.ml @@ -231,16 +231,16 @@ and valid_typcase envr (mixop, (bs, t, prems), _hints) = List.iter (valid_prem !envr') prems -and proj_tup_typ env s e ets i : typ option = - match ets, i with - | (_eI, tI)::_, 0 -> Some tI - | (eI, tI)::ets', i -> - (match Eval.match_exp env s (ProjE (e, i) $$ e.at % tI) eI with - | None -> None - | Some s' -> proj_tup_typ env s' e ets' (i - 1) - | exception Eval.Irred -> None - ) - | [], _ -> assert false +and inst_tup_typ env s e i ets : (exp * typ) list = + match ets with + | [] -> [] + | (eI, tI)::ets' -> + let eI' = Subst.subst_exp s eI in + let tI' = Subst.subst_typ s tI in + match Eval.match_exp env s (ProjE (e, i) $$ e.at % tI') eI' with + | Some s' -> (eI', tI') :: inst_tup_typ env s' e (i + 1) ets' + | None -> error e.at "tuple does not match its own type" + | exception Eval.Irred -> error e.at "tuple does not match its own type" (* Expressions *) @@ -282,8 +282,9 @@ and infer_exp (env : Env.t) e : typ = let ets = as_tup_typ "expression" env Infer t1 e1.at in if i >= List.length ets then error e.at "invalid tuple projection"; - (match proj_tup_typ env Subst.empty e1 ets i with - | Some tI -> tI + let ets' = inst_tup_typ env Subst.empty e1 0 ets in + (match List.nth_opt ets' i with + | Some (_, tI) -> tI | None -> error e.at "cannot infer type of tuple projection" ) | UncaseE (e1, op) -> @@ -325,6 +326,13 @@ and valid_exp ?(side = `Rhs) env e t = (Fun.const "ok") ) @@ fun _ -> try + (try + valid_typ env t + with exn -> + let bt = Printexc.get_raw_backtrace () in + Printf.eprintf "[valid_exp] %s : %s\n%!" (Debug.il_exp e) (Debug.il_typ t); + Printexc.raise_with_backtrace exn bt + ); match e.it with | VarE id when id.it = "_" && side = `Lhs -> () | VarE id -> @@ -423,9 +431,10 @@ try if i >= List.length ets then error e.at "invalid tuple projection"; let side' = if List.length ets > 1 then `Rhs else side in - valid_exp ~side:side' env e1 t1; - (match proj_tup_typ env Subst.empty e1 ets i with - | Some tI -> equiv_typ env tI t e.at + let ets' = inst_tup_typ env Subst.empty e1 0 ets in + valid_exp ~side:side' env e1 (TupT ets' $ t1.at); + (match List.nth_opt ets i with + | Some (_, tI) -> equiv_typ env tI t e.at | None -> error e.at "invalid tuple projection, cannot match pattern" ) | UncaseE (e1, op) -> @@ -501,6 +510,7 @@ and valid_expfield ~side env (atom1, e) (atom2, (_binds, t, _prems), _) = valid_exp ~side env e t and valid_path env p t : typ = + valid_typ env t; let t' = match p.it with | RootP -> t @@ -698,11 +708,12 @@ let valid_rule envr mixop t rule = valid_expmix ~side:`Lhs !envr' mixop' e (mixop, t) e.at; List.iter (valid_prem !envr') prems -let valid_clause envr ps t clause = +let valid_clause envr id ps t clause = Debug.(log_in "il.valid_clause" line); Debug.(log_in_at "il.valid_clause" clause.at (fun _ -> fmt ": (%s) -> %s" (il_params ps) (il_typ t)) ); +try match clause.it with | DefD (bs, as_, e, prems) -> let envr' = local_env envr in @@ -710,6 +721,10 @@ let valid_clause envr ps t clause = let s = valid_args !envr' as_ ps Subst.empty clause.at in valid_exp !envr' e (Subst.subst_typ s t); List.iter (valid_prem !envr') prems +with exn -> + let bt = Printexc.get_raw_backtrace () in + Printf.eprintf "[valid_clause] %s\n%!" (Debug.il_clause id clause); + Printexc.raise_with_backtrace exn bt let valid_prod envr ps t prod = Debug.(log_in "il.valid_prod" line); @@ -763,7 +778,7 @@ let rec valid_def envr d = let envr' = local_env envr in List.iter (valid_param envr') ps; valid_typ !envr' t; - List.iter (valid_clause envr ps t) clauses; + List.iter (valid_clause envr id ps t) clauses; envr := Env.bind_def !envr id (ps, t, clauses) | GramD (id, ps, t, prods) -> let envr' = local_env envr in From 9823ef2f11f9c224e2f6d472d00a68155876ad09 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Tue, 4 Nov 2025 10:16:12 +0100 Subject: [PATCH 02/23] Add args to CaseE, UncaseE, DotE, DotP, expfield; unify params and binds --- spectec/src/al/al_util.ml | 2 +- spectec/src/al/valid.ml | 2 +- spectec/src/backend-ast/print.ml | 49 +- spectec/src/backend-prose/gen.ml | 6 +- spectec/src/frontend/dim.ml | 25 +- spectec/src/frontend/elab.ml | 865 +++++++++++++------------ spectec/src/il/ast.ml | 125 ++-- spectec/src/il/debug.ml | 7 +- spectec/src/il/dune | 2 +- spectec/src/il/eq.ml | 44 +- spectec/src/il/eval.ml | 165 ++--- spectec/src/il/free.ml | 122 ++-- spectec/src/il/free.mli | 3 +- spectec/src/il/fresh.ml | 30 + spectec/src/il/fresh.mli | 11 + spectec/src/il/iter.ml | 34 +- spectec/src/il/print.ml | 172 ++--- spectec/src/il/print.mli | 5 +- spectec/src/il/subst.ml | 158 +++-- spectec/src/il/subst.mli | 3 +- spectec/src/il/valid.ml | 269 ++++---- spectec/src/il2al/animate.ml | 4 +- spectec/src/il2al/encode.ml | 10 +- spectec/src/il2al/free.ml | 10 +- spectec/src/il2al/il2al_util.ml | 4 +- spectec/src/il2al/il_walk.ml | 34 +- spectec/src/il2al/il_walk.mli | 2 +- spectec/src/il2al/translate.ml | 42 +- spectec/src/il2al/unify.ml | 32 +- spectec/src/middlend/sideconditions.ml | 25 +- spectec/src/middlend/sub.ml | 75 +-- spectec/src/middlend/totalize.ml | 57 +- spectec/src/middlend/unthe.ml | 47 +- 33 files changed, 1222 insertions(+), 1219 deletions(-) create mode 100644 spectec/src/il/fresh.ml create mode 100644 spectec/src/il/fresh.mli diff --git a/spectec/src/al/al_util.ml b/spectec/src/al/al_util.ml index 9d2e79495a..5d329c3483 100644 --- a/spectec/src/al/al_util.ml +++ b/spectec/src/al/al_util.ml @@ -312,7 +312,7 @@ let name_of_mixop = Mixop.name (* Il Types *) (* name for tuple type *) -let no_name = Il.Ast.VarE ("_" $ no_region) $$ no_region % (Il.Ast.TextT $ no_region) +let no_name = "_" $ no_region let varT id args = Il.Ast.VarT (id $ no_region, args) $ no_region let iterT ty iter = Il.Ast.IterT (ty, iter) $ no_region let listT ty = iterT ty Il.Ast.List diff --git a/spectec/src/al/valid.ml b/spectec/src/al/valid.ml index a6d5cc61b0..a81650d7c6 100644 --- a/spectec/src/al/valid.ml +++ b/spectec/src/al/valid.ml @@ -402,7 +402,7 @@ let check_inv_call source id indices args result_typ = | _ -> let arg2typ arg = ( match arg.it with - | ExpA exp -> (Il.Ast.VarE ("" $ no_region) $$ no_region % exp.note, exp.note) + | ExpA exp -> ("_" $ no_region, exp.note) | a -> error_valid (Printf.sprintf "wrong result argument") source (Print.string_of_arg (a $ no_region)) ) in diff --git a/spectec/src/backend-ast/print.ml b/spectec/src/backend-ast/print.ml index 3f853328d9..243f0e253e 100644 --- a/spectec/src/backend-ast/print.ml +++ b/spectec/src/backend-ast/print.ml @@ -86,14 +86,14 @@ and deftyp dt = | StructT tfs -> Node ("struct", List.map typfield tfs) | VariantT tcs -> Node ("variant", List.map typcase tcs) -and typbind (e, t) = - Node ("bind", [exp e; typ t]) +and typbind (x, t) = + Node ("bind", [id x; typ t]) -and typfield (at, (bs, t, prs), _hints) = - Node ("field", mixop [[at]] :: List.map bind bs @ typ t :: List.map prem prs) +and typfield (at, (ps, t, prs), _hints) = + Node ("field", mixop [[at]] :: List.map param ps @ typ t :: List.map prem prs) -and typcase (op, (bs, t, prs), _hints) = - Node ("case", mixop op :: List.map bind bs @ typ t :: List.map prem prs) +and typcase (op, (ps, t, prs), _hints) = + Node ("case", mixop op :: List.map param ps @ typ t :: List.map prem prs) (* Expressions *) @@ -112,7 +112,7 @@ and exp e = | UpdE (e1, p, e2) -> Node ("upd", [exp e1; path p; exp e2]) | ExtE (e1, p, e2) -> Node ("ext", [exp e1; path p; exp e2]) | StrE efs -> Node ("struct", List.map expfield efs) - | DotE (e1, at) -> Node ("dot", [exp e1; mixop [[at]]]) + | DotE (e1, at, as_) -> Node ("dot", [exp e1; mixop [[at]]] @ List.map arg as_) | CompE (e1, e2) -> Node ("comp", [exp e1; exp e2]) | MemE (e1, e2) -> Node ("mem", [exp e1; exp e2]) | LenE e1 -> Node ("len", [exp e1]) @@ -120,8 +120,8 @@ and exp e = | CallE (x, as1) -> Node ("call", id x :: List.map arg as1) | IterE (e1, it) -> Node ("iter", [exp e1] @ iterexp it) | ProjE (e1, i) -> Node ("proj", [exp e1; Atom (string_of_int i)]) - | CaseE (op, e1) -> Node ("case", [mixop op; exp e1]) - | UncaseE (e1, op) -> Node ("uncase", [exp e1; mixop op]) + | CaseE (op, as_, e1) -> Node ("case", [mixop op] @ List.map arg as_ @ [exp e1]) + | UncaseE (e1, op, as_) -> Node ("uncase", [exp e1; mixop op] @ List.map arg as_) | OptE eo -> Node ("opt", List.map exp (Option.to_list eo)) | TheE e1 -> Node ("unopt", [exp e1]) | ListE es -> Node ("list", List.map exp es) @@ -130,15 +130,15 @@ and exp e = | CvtE (e1, nt1, nt2) -> Node ("cvt", [numtyp nt1; numtyp nt2; exp e1]) | SubE (e1, t1, t2) -> Node ("sub", [typ t1; typ t2; exp e1]) -and expfield (at, e) = - Node ("field", [mixop [[at]]; exp e]) +and expfield (at, as_, e) = + Node ("field", [mixop [[at]]] @ List.map arg as_ @ [exp e]) and path p = match p.it with | RootP -> Atom "root" | IdxP (p1, e) -> Node ("idx", [path p1; exp e]) | SliceP (p1, e1, e2) -> Node ("slice", [path p1; exp e1; exp e2]) - | DotP (p1, at) -> Node ("dot", [path p1; mixop [[at]]]) + | DotP (p1, at, as_) -> Node ("dot", [path p1; mixop [[at]]] @ List.map arg as_) and iterexp (it, xes) = iter it :: List.map (fun (x, e) -> Node ("dom", [id x; exp e])) xes @@ -179,39 +179,32 @@ and arg a = | DefA x -> Node ("def", [id x]) | GramA g -> Node ("gram", [sym g]) -and bind bind = - match bind.it with - | ExpB (x, t) -> Node ("exp", [id x; typ t]) - | TypB x -> Node ("typ", [id x]) - | DefB (x, ps, t) -> Node ("def", [id x] @ List.map param ps @ [typ t]) - | GramB (x, ps, t) -> Node ("gram", [id x] @ List.map param ps @ [typ t]) - and param p = match p.it with | ExpP (x, t) -> Node ("exp", [id x; typ t]) | TypP x -> Node ("typ", [id x]) | DefP (x, ps, t) -> Node ("def", [id x] @ List.map param ps @ [typ t]) - | GramP (x, t) -> Node ("gram", [id x; typ t]) + | GramP (x, ps, t) -> Node ("gram", [id x] @ List.map param ps @ [typ t]) let inst inst = match inst.it with - | InstD (bs, as_, dt) -> - Node ("inst", List.map bind bs @ List.map arg as_ @ [deftyp dt]) + | InstD (ps, as_, dt) -> + Node ("inst", List.map param ps @ List.map arg as_ @ [deftyp dt]) let rule rule = match rule.it with - | RuleD (x, bs, op, e, prs) -> - Node ("rule", [id x] @ List.map bind bs @ [mixop op; exp e] @ List.map prem prs) + | RuleD (x, ps, op, e, prs) -> + Node ("rule", [id x] @ List.map param ps @ [mixop op; exp e] @ List.map prem prs) let clause clause = match clause.it with - | DefD (bs, as_, e, prs) -> - Node ("clause", List.map bind bs @ List.map arg as_ @ [exp e] @ List.map prem prs) + | DefD (ps, as_, e, prs) -> + Node ("clause", List.map param ps @ List.map arg as_ @ [exp e] @ List.map prem prs) let prod prod = match prod.it with - | ProdD (bs, g, e, prs) -> - Node ("prod", List.map bind bs @ [sym g; exp e] @ List.map prem prs) + | ProdD (ps, g, e, prs) -> + Node ("prod", List.map param ps @ [sym g; exp e] @ List.map prem prs) let rec def d = match d.it with diff --git a/spectec/src/backend-prose/gen.ml b/spectec/src/backend-prose/gen.ml index 4c88ce6b09..f9a5d05ea3 100644 --- a/spectec/src/backend-prose/gen.ml +++ b/spectec/src/backend-prose/gen.ml @@ -410,9 +410,9 @@ let preprocess_exp frees m exp = let preprocess_rule m rule = { rule with it = match rule.it with - | Ast.RuleD (id, bs, ops, exp, prems) -> - let frees = Free.(union (free_rule rule) (free_list bound_bind bs)).varid in - Ast.RuleD (id, bs, ops, preprocess_exp frees m exp, prems)} + | Ast.RuleD (id, ps, ops, exp, prems) -> + let frees = Free.(union (free_rule rule) (free_list bound_param ps)).varid in + Ast.RuleD (id, ps, ops, preprocess_exp frees m exp, prems)} let postprocess_rules m rule = let binds = Map.fold (fun _ (v, e) acc -> diff --git a/spectec/src/frontend/dim.ml b/spectec/src/frontend/dim.ml index a671f4ab83..4637c1dba1 100644 --- a/spectec/src/frontend/dim.ml +++ b/spectec/src/frontend/dim.ml @@ -431,9 +431,10 @@ and annot_exp env e : Il.Ast.exp * occur = | StrE efs -> let efs', occurs = List.split (List.map (annot_expfield env) efs) in StrE efs', List.fold_left union Env.empty occurs - | DotE (e1, atom) -> + | DotE (e1, atom, as_) -> let e1', occur1 = annot_exp env e1 in - DotE (e1', atom), occur1 + let as', occurs = List.split (List.map (annot_arg env) as_) in + DotE (e1', atom, as'), List.fold_left union occur1 occurs | CompE (e1, e2) -> let e1', occur1 = annot_exp env e1 in let e2', occur2 = annot_exp env e2 in @@ -454,9 +455,10 @@ and annot_exp env e : Il.Ast.exp * occur = | ProjE (e1, i) -> let e1', occur1 = annot_exp env e1 in ProjE (e1', i), occur1 - | UncaseE (e1, op) -> + | UncaseE (e1, op, as_) -> let e1', occur1 = annot_exp env e1 in - UncaseE (e1', op), occur1 + let as', occurs = List.split (List.map (annot_arg env) as_) in + UncaseE (e1', op, as'), List.fold_left union occur1 occurs | OptE None -> OptE None, Env.empty | OptE (Some e1) -> @@ -479,9 +481,10 @@ and annot_exp env e : Il.Ast.exp * occur = let e1', occur1 = annot_exp env e1 in let e2', occur2 = annot_exp env e2 in CatE (e1', e2'), union occur1 occur2 - | CaseE (atom, e1) -> + | CaseE (atom, as_, e1) -> + let as', occurs = List.split (List.map (annot_arg env) as_) in let e1', occur1 = annot_exp env e1 in - CaseE (atom, e1'), occur1 + CaseE (atom, as', e1'), List.fold_left union occur1 occurs | CvtE (e1, nt1, nt2) -> let e1', occur1 = annot_exp env e1 in CvtE (e1', nt1, nt2), occur1 @@ -490,9 +493,10 @@ and annot_exp env e : Il.Ast.exp * occur = SubE (e1', t1, t2), occur1 in {e with it}, occur -and annot_expfield env (atom, e) : Il.Ast.expfield * occur = +and annot_expfield env (atom, as_, e) : Il.Ast.expfield * occur = + let as', occurs = List.split (List.map (annot_arg env) as_) in let e', occur = annot_exp env e in - (atom, e'), occur + (atom, as', e'), List.fold_left union occur occurs and annot_path env p : Il.Ast.path * occur = let it, occur = @@ -507,9 +511,10 @@ and annot_path env p : Il.Ast.path * occur = let e1', occur2 = annot_exp env e1 in let e2', occur3 = annot_exp env e2 in SliceP (p1', e1', e2'), union occur1 (union occur2 occur3) - | DotP (p1, atom) -> + | DotP (p1, atom, as_) -> let p1', occur1 = annot_path env p1 in - DotP (p1', atom), occur1 + let as', occurs = List.split (List.map (annot_arg env) as_) in + DotP (p1', atom, as'), List.fold_left union occur1 occurs in {p with it}, occur and annot_iterexp env occur1 (iter, xes) at : Il.Ast.iterexp * occur = diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index 4327acd506..0009e86aa1 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -47,10 +47,34 @@ let unseq_exp e = let tup_typ' ts' at = match ts' with | [t'] -> t' - | _ -> Il.TupT (List.map (fun t' -> wild_exp t', t') ts') $ at + | _ -> Il.TupT (List.map (fun t' -> "_" $ t'.at, t') ts') $ at let tup_typ_bind' es' ts' at = - Il.TupT (List.combine es' ts') $ at + (* Translate a pattern into suitable path expressions on a variable *) + let rec decompose e' p' s = + match e'.it with + | Il.VarE x -> Il.Subst.add_varid s x p' + | Il.TupE es' -> + List.fold_left (fun (s', i) eI' -> + decompose eI' (Il.ProjE (p', i) $$ eI'.at % eI'.note) s', i + 1 + ) (s, 0) es' |> fst + | Il.IterE _ -> s (* TODO *) + | _ -> assert false + and combine es' ts' s = + match es', ts' with + | [], [] -> [] + | e'::es', t'::ts' -> + let x', s' = + match e'.it with + | Il.VarE x -> x, s + | _ -> + let x' = Il.Fresh.fresh_varid "pat" $ e'.at in + x', decompose e' (Il.VarE x' $$ e'.at % e'.note) s + in + let xts'' = combine es' ts' s' in + (x', Il.Subst.subst_typ s t')::xts'' + | _, _ -> assert false + in Il.TupT (combine es' ts' Il.Subst.empty) $ at let tup_exp' es' at = match es' with @@ -709,21 +733,21 @@ let check_atoms phrase item list at = (* Iteration *) -let rec elab_iter env iter : Il.bind list * Il.iter = +let rec elab_iter env iter : Il.param list * Il.iter = match iter with | Opt -> [], Il.Opt | List -> [], Il.List | List1 -> [], Il.List1 | ListN (e, id_opt) -> Option.iter (fun id -> - let bs', e' = checkpoint (elab_exp env (VarE (id, []) $ id.at) (NumT `NatT $ id.at)) in + let qs', e' = checkpoint (elab_exp env (VarE (id, []) $ id.at) (NumT `NatT $ id.at)) in (* TODO(4, rossberg): extend IL to allow arbitrary pattern exps *) match e'.it with - | Il.VarE _ -> assert (bs' = []) + | Il.VarE _ -> assert (qs' = []) | _ -> error_typ env id.at "iteration variable" (NumT `NatT $ id.at) ) id_opt; - let bs', e' = checkpoint (elab_exp env e (NumT `NatT $ e.at)) in - bs', Il.ListN (e', id_opt) + let qs', e' = checkpoint (elab_exp env e (NumT `NatT $ e.at)) in + qs', Il.ListN (e', id_opt) and elab_typiter env iter : Il.iter = let iter = @@ -731,8 +755,8 @@ and elab_typiter env iter : Il.iter = | List1 | ListN _ -> List | _ -> iter in - let bs', iter' = elab_iter env iter in - assert (bs' = []); + let qs', iter' = elab_iter env iter in + assert (qs' = []); iter' @@ -744,8 +768,8 @@ and elab_typ env t : Il.typ = let id' = strip_var_suffix id in if id'.it <> id.it && as_ = [] then elab_typ env (Convert.typ_of_varid id') else let ps, _ = find "syntax type" env.typs id' in - let bs', as', _s = elab_args `Rhs env as_ ps t.at in - if bs' <> [] then + let qs', as', _s = elab_args `Rhs env as_ ps t.at in + if qs' <> [] then error t.at "illegal expression forms in type instantiation"; Il.VarT (id', as') $ t.at | BoolT -> Il.BoolT $ t.at @@ -821,9 +845,9 @@ and elab_typ_definition env tid t : Il.deftyp = let nt = match t1.it with NumT nt -> nt | _ -> assert false in let id' = "i" $ t.at in let eid' = Il.VarE id' $$ t.at % t' in - let bs' = [Il.ExpB (id', t') $ t.at] in + let qs' = [Il.ExpP (id', t') $ t.at] in let prems' = [Il.IfPr (fe' eid' nt) $ t.at] in - let tc' = ([[]; []], (bs', Il.TupT [(eid', t')] $ t.at, prems'), []) in + let tc' = ([[]; []], (qs', Il.TupT [(id', t')] $ t.at, prems'), []) in Il.VariantT [tc'] | _ -> let t' = elab_typ env t in @@ -845,14 +869,14 @@ and typ_rep env t : typ = | _ -> t and elab_typfield env tid at (atom, (t, prems), hints) : Il.typfield = - let _mixop, bs', t', prems', _ = elab_typ_notation' env tid at t prems in + let _mixop, qs', t', prems', _ = elab_typ_notation' env tid at t prems in let hints' = elab_hints tid [] hints in let t'' = (* TODO(4, rossberg): remove this hack *) match t'.it with | Il.TupT [(_, t1')] when prems' = [] -> t1' | _ -> t' in - (elab_atom atom tid, (bs', t'', prems'), hints') + (elab_atom atom tid, (qs', t'', prems'), hints') (* assert (valid_tid tid); let env' = local_env env in @@ -869,20 +893,20 @@ and elab_typfield env tid at (atom, (t, prems), hints) : Il.typfield = if free <> Free.empty then error at ("type field contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_bs', (module Arg : Iter.Arg) = make_binds_iter_arg env' det dims in + let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in let module Acc = Iter.Make(Arg) in List.iter Acc.exp es; Acc.prems prems; ( elab_atom atom tid, - (!acc_bs', (if prems = [] then tup_typ' else tup_typ_bind' es') ts' t.at, prems'), + (!acc_qs', (if prems = [] then tup_typ' else tup_typ_bind' es') ts' t.at, prems'), elab_hints tid [] hints ) *) and elab_typcase env tid at (_atom, (t, prems), hints) : Il.typcase = - let mixop, bs', t', prems', _ = elab_typ_notation' env tid at t prems in + let mixop, qs', t', prems', _ = elab_typ_notation' env tid at t prems in let hints' = elab_hints tid [] hints in - (mixop, (bs', t', prems'), hints') + (mixop, (qs', t', prems'), hints') (* assert (valid_tid tid); let env' = local_env env in @@ -904,20 +928,20 @@ and elab_typcase env tid at (_atom, (t, prems), hints) : Il.typcase = error at ("type case contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); ); - let acc_bs', (module Arg : Iter.Arg) = make_binds_iter_arg env' det dims in + let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in let module Acc = Iter.Make(Arg) in List.iter Acc.exp es; Acc.prems prems; ( mixop, - (!acc_bs', tup_typ_bind' es' ts' at, prems'), + (!acc_qs', tup_typ_bind' es' ts' at, prems'), elab_hints tid [] hints ) *) and elab_typcon env tid at ((t, prems), hints) : Il.typcase = - let mixop, bs', t', prems', _ = elab_typ_notation' env tid at t prems in + let mixop, qs', t', prems', _ = elab_typ_notation' env tid at t prems in let hints' = elab_hints tid [Atom.Atom tid.it $$ tid.at % Atom.info ""] hints in - (mixop, (bs', t', prems'), hints') + (mixop, (qs', t', prems'), hints') (* assert (valid_tid tid); let env' = local_env env in @@ -934,12 +958,12 @@ and elab_typcon env tid at ((t, prems), hints) : Il.typcase = if free <> Free.empty then error at ("type constraint contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_bs', (module Arg : Iter.Arg) = make_binds_iter_arg env' det dims in + let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in let module Acc = Iter.Make(Arg) in List.iter Acc.exp es; Acc.prems prems; ( mixop, - (!acc_bs', tup_typ_bind' es' ts' at, prems'), + (!acc_qs', tup_typ_bind' es' ts' at, prems'), elab_hints tid [Atom.Atom tid.it $$ tid.at % Atom.info ""] hints ) *) @@ -947,42 +971,42 @@ and elab_typcon env tid at ((t, prems), hints) : Il.typcase = and elab_typenum env tid (e1, e2o) : typ * (Il.exp -> numtyp -> Il.exp) = assert (valid_tid tid); let _e1' = elab_exp env e1 (NumT `IntT $ e1.at) in (* ensure it's <= int *) - let _bs1', _, t1 = checkpoint (infer_exp env e1) in (* get precise type *) + let _qs1', _, t1 = checkpoint (infer_exp env e1) in (* get precise type *) match e2o with | None -> t1, fun eid' nt -> - let bs1', e1' = checkpoint (elab_exp env e1 (NumT nt $ e1.at)) in (* redo with overall type *) - if bs1' <> [] then + let qs1', e1' = checkpoint (elab_exp env e1 (NumT nt $ e1.at)) in (* redo with overall type *) + if qs1' <> [] then error e1.at "illegal expression form in range type"; Il.(CmpE (`EqOp, `BoolT, eid', e1') $$ e1'.at % (BoolT $ e1.at)) | Some e2 -> let at = Source.over_region [e1.at; e2.at] in - let _bs21', _e2' = checkpoint (elab_exp env e2 (NumT `IntT $ e2.at)) in - let _bs22, _, t2 = checkpoint (infer_exp env e2) in + let _qs21', _e2' = checkpoint (elab_exp env e2 (NumT `IntT $ e2.at)) in + let _qs22, _, t2 = checkpoint (infer_exp env e2) in (if narrow_typ env t2 t1 then t1 else t2).it $ at, fun eid' nt -> - let bs1', e1' = checkpoint (elab_exp env e1 (NumT nt $ e1.at)) in - let bs2', e2' = checkpoint (elab_exp env e2 (NumT nt $ e2.at)) in - if bs1' <> [] then + let qs1', e1' = checkpoint (elab_exp env e1 (NumT nt $ e1.at)) in + let qs2', e2' = checkpoint (elab_exp env e2 (NumT nt $ e2.at)) in + if qs1' <> [] then error e1.at "illegal expression form in range type"; - if bs2' <> [] then + if qs2' <> [] then error e2.at "illegal expression form in range type"; Il.(BinE (`AndOp, `BoolT, CmpE (`GeOp, (nt :> Il.optyp), eid', e1') $$ e1'.at % (BoolT $ e1.at), CmpE (`LeOp, (nt :> Il.optyp), eid', e2') $$ e2'.at % (BoolT $ e2.at) ) $$ at % (BoolT $ at)) -and elab_typ_notation' env tid at t prems : Il.mixop * Il.bind list * Il.typ * Il.prem list * typ list = +and elab_typ_notation' env tid at t prems : Il.mixop * Il.param list * Il.typ * Il.prem list * typ list = assert (valid_tid tid); let env' = local_env env in let mixop, ts', ts = elab_typ_notation env' tid t in let es = Convert.pats_of_typs ts in let dims = Dim.check_typdef (vars env) t prems in let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let bss1', es' = List.split (checkpoint (map2_attempt (elab_exp env') es ts)) in + let qss1', es' = List.split (checkpoint (map2_attempt (elab_exp env') es ts)) in let es' = List.map (Dim.annot_exp dims') es' in - let bss2', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let qss2', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in let det = Free.(diff (union (free_list det_exp es) (det_prems prems)) (bound_env env)) in let free = Free.(diff (union (free_typ t) (free_prems prems)) (union det (bound_env env))) in @@ -994,11 +1018,11 @@ List.iteri (fun i e -> Printf.printf "[notation] e%d = %s\n%!" i (Print.string_o error at ("premise contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); ); - let acc_bs', (module Arg : Iter.Arg) = make_binds_iter_arg env' det dims in + let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in let module Acc = Iter.Make(Arg) in List.iter Acc.exp es; Acc.prems prems; - mixop, !acc_bs' @ List.concat (bss1' @ bss2'), tup_typ_bind' es' ts' t.at, prems', ts + mixop, !acc_qs' @ List.concat (qss1' @ qss2'), tup_typ_bind' es' ts' t.at, prems', ts and elab_typ_notation env tid t : Il.mixop * Il.typ list * typ list = Debug.(log_at "el.elab_typ_notation" t.at @@ -1014,8 +1038,8 @@ and elab_typ_notation env tid t : Il.mixop * Il.typ list * typ list = (match find "syntax type" env.typs id' with | _, Transp -> error_id id "invalid forward reference to syntax type" | ps, _ -> - let bs', as', _s = elab_args `Rhs env as_ ps t.at in - if bs' <> [] then + let qs', as', _s = elab_args `Rhs env as_ ps t.at in + if qs' <> [] then error t.at "illegal expression forms in type instantiation"; [[]; []], [Il.VarT (id', as') $ t.at], [t] ) @@ -1054,16 +1078,16 @@ and (!!!) env tid t = * - Fail (at, s) when it cannot, where s is the name of the failing construct * - raises Error.Error on fatal, unrecoverable errors *) -and infer_exp env e : (Il.bind list * Il.exp * typ) attempt = +and infer_exp env e : (Il.param list * Il.exp * typ) attempt = Debug.(log_at "el.infer_exp" e.at (fun _ -> fmt "%s" (el_exp e)) - (function Ok (bs', e', t) -> fmt "%s%s : %s" (il_binds bs') (il_exp e') (el_typ t) | _ -> "fail") + (function Ok (qs', e', t) -> fmt "%s%s : %s" (il_quants qs') (il_exp e') (el_typ t) | _ -> "fail") ) @@ fun _ -> - let* bs', e', t' = infer_exp' env e in + let* qs', e', t' = infer_exp' env e in let t = t' $ e.at in - Ok (bs', e' $$ e.at % elab_typ env t, t) + Ok (qs', e' $$ e.at % elab_typ env t, t) -and infer_exp' env e : (Il.bind list * Il.exp' * typ') attempt = +and infer_exp' env e : (Il.param list * Il.exp' * typ') attempt = match e.it with | VarE (id, args) -> (* Args may only occur due to syntactic overloading with types *) @@ -1088,79 +1112,79 @@ and infer_exp' env e : (Il.bind list * Il.exp' * typ') attempt = | TextE s -> Ok ([], Il.TextE s, TextT) | CvtE (e1, nt) -> - let* bs1', e1', t1 = infer_exp env e1 in + let* qs1', e1', t1 = infer_exp env e1 in let* nt1 = as_num_typ "conversion" env Infer t1 e1.at in - let* bs1'', e1'' = cast_exp "operand" env e1' t1 (NumT nt1 $ e1.at) in - Ok (bs1' @ bs1'', Il.CvtE (e1'', nt1, nt), NumT nt) + let* qs1'', e1'' = cast_exp "operand" env e1' t1 (NumT nt1 $ e1.at) in + Ok (qs1' @ qs1'', Il.CvtE (e1'', nt1, nt), NumT nt) | UnE (op, e1) -> - let* bs1', e1', t1 = infer_exp env e1 in + let* qs1', e1', t1 = infer_exp env e1 in let* op', ot, t1', t = infer_unop env op (typ_rep env t1) e.at in - let* bs1'', e1'' = cast_exp "operand" env e1' t1 t1' in + let* qs1'', e1'' = cast_exp "operand" env e1' t1 t1' in if op = `PlusMinusOp || op = `MinusPlusOp then env.pm <- true; - Ok (bs1' @ bs1'', Il.UnE (op', ot, e1''), t.it) + Ok (qs1' @ qs1'', Il.UnE (op', ot, e1''), t.it) | BinE (e1, op, e2) -> - let* bs1', e1', t1 = infer_exp env e1 in - let* bs2', e2', t2 = infer_exp env e2 in + let* qs1', e1', t1 = infer_exp env e1 in + let* qs2', e2', t2 = infer_exp env e2 in let* op', ot, t1', t2', t = infer_binop env op (typ_rep env t1) (typ_rep env t2) e.at in - let* bs1'', e1'' = cast_exp "operand" env e1' t1 t1' in - let* bs2'', e2'' = cast_exp "operand" env e2' t2 t2' in - Ok (bs1' @ bs1'' @ bs2' @ bs2'', Il.BinE (op', ot, e1'', e2''), t.it) + let* qs1'', e1'' = cast_exp "operand" env e1' t1 t1' in + let* qs2'', e2'' = cast_exp "operand" env e2' t2 t2' in + Ok (qs1' @ qs1'' @ qs2' @ qs2'', Il.BinE (op', ot, e1'', e2''), t.it) | CmpE (e1, op, ({it = CmpE (e21, _, _); _} as e2)) -> - let* bs1', e1', _t1 = infer_exp env (CmpE (e1, op, e21) $ e.at) in - let* bs2', e2', _t2 = infer_exp env e2 in - Ok (bs1' @ bs2', Il.BinE (`AndOp, `BoolT, e1', e2'), BoolT) + let* qs1', e1', _t1 = infer_exp env (CmpE (e1, op, e21) $ e.at) in + let* qs2', e2', _t2 = infer_exp env e2 in + Ok (qs1' @ qs2', Il.BinE (`AndOp, `BoolT, e1', e2'), BoolT) | CmpE (e1, op, e2) -> (match infer_cmpop env op with | `Poly op' -> - let* bs', e1', e2' = + let* qs', e1', e2' = choice env [ (fun env -> - let* bs2', e2', t2 = infer_exp env e2 in - let* bs1', e1' = elab_exp env e1 t2 in - Ok (bs1' @ bs2', e1', e2') + let* qs2', e2', t2 = infer_exp env e2 in + let* qs1', e1' = elab_exp env e1 t2 in + Ok (qs1' @ qs2', e1', e2') ); (fun env -> - let* bs1', e1', t1 = infer_exp env e1 in - let* bs2', e2' = elab_exp env e2 t1 in - Ok (bs1' @ bs2', e1', e2') + let* qs1', e1', t1 = infer_exp env e1 in + let* qs2', e2' = elab_exp env e2 t1 in + Ok (qs1' @ qs2', e1', e2') ); ] in - Ok (bs', Il.CmpE (op', `BoolT, e1', e2'), BoolT) + Ok (qs', Il.CmpE (op', `BoolT, e1', e2'), BoolT) | `Over elab_cmpop' -> - let* bs1', e1', t1 = infer_exp env e1 in - let* bs2', e2', t2 = infer_exp env e2 in + let* qs1', e1', t1 = infer_exp env e1 in + let* qs2', e2', t2 = infer_exp env e2 in let* op', ot, t = elab_cmpop' (typ_rep env t1) (typ_rep env t2) e.at in - let* bs1'', e1'' = cast_exp "operand" env e1' t1 t in - let* bs2'', e2'' = cast_exp "operand" env e2' t2 t in - Ok (bs1' @ bs1'' @ bs2' @ bs2'', Il.CmpE (op', ot, e1'', e2''), BoolT) + let* qs1'', e1'' = cast_exp "operand" env e1' t1 t in + let* qs2'', e2'' = cast_exp "operand" env e2' t2 t in + Ok (qs1' @ qs1'' @ qs2' @ qs2'', Il.CmpE (op', ot, e1'', e2''), BoolT) ) | IdxE (e1, e2) -> - let* bs1', e1', t1 = infer_exp env e1 in + let* qs1', e1', t1 = infer_exp env e1 in let* t = as_list_typ "expression" env Infer t1 e1.at in - let* bs2', e2' = elab_exp env e2 (NumT `NatT $ e2.at) in - Ok (bs1' @ bs2', Il.IdxE (e1', e2'), t.it) + let* qs2', e2' = elab_exp env e2 (NumT `NatT $ e2.at) in + Ok (qs1' @ qs2', Il.IdxE (e1', e2'), t.it) | SliceE (e1, e2, e3) -> - let* bs1', e1', t1 = infer_exp env e1 in + let* qs1', e1', t1 = infer_exp env e1 in let* _t' = as_list_typ "expression" env Infer t1 e1.at in - let* bs2', e2' = elab_exp env e2 (NumT `NatT $ e2.at) in - let* bs3', e3' = elab_exp env e3 (NumT `NatT $ e3.at) in - Ok (bs1' @ bs2' @ bs3', Il.SliceE (e1', e2', e3'), t1.it) + let* qs2', e2' = elab_exp env e2 (NumT `NatT $ e2.at) in + let* qs3', e3' = elab_exp env e3 (NumT `NatT $ e3.at) in + Ok (qs1' @ qs2' @ qs3', Il.SliceE (e1', e2', e3'), t1.it) | UpdE (e1, p, e2) -> - let* bs1', e1', t1 = infer_exp env e1 in - let* bs', p', t2 = elab_path env p t1 in - let* bs2', e2' = elab_exp env e2 t2 in - Ok (bs1' @ bs' @ bs2', Il.UpdE (e1', p', e2'), t1.it) + let* qs1', e1', t1 = infer_exp env e1 in + let* qs', p', t2 = elab_path env p t1 in + let* qs2', e2' = elab_exp env e2 t2 in + Ok (qs1' @ qs' @ qs2', Il.UpdE (e1', p', e2'), t1.it) | ExtE (e1, p, e2) -> - let* bs1', e1', t1 = infer_exp env e1 in - let* bs', p', t2 = elab_path env p t1 in + let* qs1', e1', t1 = infer_exp env e1 in + let* qs', p', t2 = elab_path env p t1 in let* _t21 = as_list_typ "path" env Infer t2 p.at in - let* bs2', e2' = elab_exp env e2 t2 in - Ok (bs1' @ bs' @ bs2', Il.ExtE (e1', p', e2'), t1.it) + let* qs2', e2' = elab_exp env e2 t2 in + Ok (qs1' @ qs' @ qs2', Il.ExtE (e1', p', e2'), t1.it) | StrE _ -> fail_infer e.at "record" | DotE (e1, atom) -> - let* bs1', e1', t1 = infer_exp env e1 in + let* qs1', e1', t1 = infer_exp env e1 in let* tfs, dots1 = as_struct_typ "expression" env Infer t1 e1.at in if dots1 = Dots then error e1.at "used record type is only partially defined at this point"; @@ -1168,9 +1192,9 @@ and infer_exp' env e : (Il.bind list * Il.exp' * typ') attempt = let* t, prems = attempt (find_field tfs atom e1.at) t1 in let e' = Il.DotE (e1', elab_atom atom (expand_id env t1)) in let e'' = if prems = [] then e' else Il.ProjE (e' $$ e.at % elab_typ env t, 0) in - Ok (bs1', e'', t.it) + Ok (qs1', e'', t.it) | CommaE (e1, e2) -> - let* bs1', e1', t1 = infer_exp env e1 in + let* qs1', e1', t1 = infer_exp env e1 in let* tfs, dots1 = as_struct_typ "expression" env Infer t1 e1.at in if dots1 = Dots then error e1.at "used record type is only partially defined at this point"; @@ -1180,67 +1204,67 @@ and infer_exp' env e : (Il.bind list * Il.exp' * typ') attempt = | SeqE ({it = AtomE atom; at; _} :: es2) -> let* _t2 = attempt (find_field tfs atom at) t1 in let e2 = match es2 with [e2] -> e2 | _ -> SeqE es2 $ e2.at in - let* bs2', e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t1 in - Ok (bs1' @ bs2', Il.CompE (e2', e1'), t1.it) + let* qs2', e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t1 in + Ok (qs1' @ qs2', Il.CompE (e2', e1'), t1.it) | _ -> error e.at "malformed comma operator" ) | CatE (e1, e2) -> - let* bs1', e1', t1 = infer_exp env e1 in + let* qs1', e1', t1 = infer_exp env e1 in let* _ = as_cat_typ "operand" env Infer t1 e1.at in - let* bs2', e2' = elab_exp env e2 t1 in - Ok (bs1' @ bs2', + let* qs2', e2' = elab_exp env e2 t1 in + Ok (qs1' @ qs2', (if is_iter_typ env t1 then Il.CatE (e1', e2') else Il.CompE (e1', e2')), t1.it) | MemE (e1, e2) -> choice env [ (fun env -> - let* bs1', e1', t1 = infer_exp env e1 in - let* bs2', e2' = elab_exp env e2 (IterT (t1, List) $ e2.at) in - Ok (bs1' @ bs2', Il.MemE (e1', e2'), BoolT) + let* qs1', e1', t1 = infer_exp env e1 in + let* qs2', e2' = elab_exp env e2 (IterT (t1, List) $ e2.at) in + Ok (qs1' @ qs2', Il.MemE (e1', e2'), BoolT) ); (fun env -> - let* bs2', e2', t2 = infer_exp env e2 in + let* qs2', e2', t2 = infer_exp env e2 in let* t1 = as_list_typ "operand" env Infer t2 e2.at in - let* bs1', e1' = elab_exp env e1 t1 in - Ok (bs1' @ bs2', Il.MemE (e1', e2'), BoolT) + let* qs1', e1' = elab_exp env e1 t1 in + Ok (qs1' @ qs2', Il.MemE (e1', e2'), BoolT) ); ] | LenE e1 -> - let* bs1', e1', t1 = infer_exp env e1 in + let* qs1', e1', t1 = infer_exp env e1 in let* _t11 = as_list_typ "expression" env Infer t1 e1.at in - Ok (bs1', Il.LenE e1', NumT `NatT) + Ok (qs1', Il.LenE e1', NumT `NatT) | SizeE id -> let _ = find "grammar" env.grams id in Ok ([], Il.NumE (`Nat Z.zero), NumT `NatT) | ParenE e1 | ArithE e1 -> infer_exp' env e1 | TupE es -> - let* bs', es', ts = infer_exp_list env es in - Ok (bs', Il.TupE es', TupT ts) + let* qs', es', ts = infer_exp_list env es in + Ok (qs', Il.TupE es', TupT ts) | CallE (id, as_) -> let ps, t, _ = find "definition" env.defs id in - let bs', as', s = elab_args `Rhs env as_ ps e.at in - Ok (bs', Il.CallE (id, as'), (Subst.subst_typ s t).it) + let qs', as', s = elab_args `Rhs env as_ ps e.at in + Ok (qs', Il.CallE (id, as'), (Subst.subst_typ s t).it) | EpsE -> fail_infer e.at "empty sequence" | SeqE [] -> (* treat as empty tuple, not principal *) Ok ([], Il.TupE [], TupT []) | SeqE es | ListE es -> (* treat as homogeneous sequence, not principal *) - let* bs', es', ts = infer_exp_list env es in + let* qs', es', ts = infer_exp_list env es in let t = List.hd ts in if List.for_all (equiv_typ env t) (List.tl ts) then - Ok (bs', Il.ListE es', IterT (t, List)) + Ok (qs', Il.ListE es', IterT (t, List)) else fail_infer e.at "expression sequence" | InfixE _ -> fail_infer e.at "infix expression" | BrackE _ -> fail_infer e.at "bracket expression" | IterE (e1, iter) -> - let bs', iter' = elab_iterexp env iter in - let* bs1', e1', t1 = infer_exp env e1 in - Ok (bs1' @ bs', Il.IterE (e1', iter'), IterT (t1, match iter with ListN _ -> List | _ -> iter)) + let qs', iter' = elab_iterexp env iter in + let* qs1', e1', t1 = infer_exp env e1 in + Ok (qs1' @ qs', Il.IterE (e1', iter'), IterT (t1, match iter with ListN _ -> List | _ -> iter)) | TypE (e1, t) -> let _t' = elab_typ env t in - let* bs1', e1' = elab_exp env e1 t in - Ok (bs1', e1'.it, t.it) + let* qs1', e1' = elab_exp env e1 t in + Ok (qs1', e1'.it, t.it) | HoleE _ -> error e.at "misplaced hole" | FuseE _ -> error e.at "misplaced token concatenation" | UnparenE _ -> error e.at "misplaced unparenthesize" @@ -1249,15 +1273,15 @@ and infer_exp' env e : (Il.bind list * Il.exp' * typ') attempt = and infer_exp_list env = function | [] -> Ok ([], [], []) | e::es -> - let* bs1', e', t = infer_exp env e in - let* bs2', es', ts = infer_exp_list env es in - Ok (bs1' @ bs2', e'::es', t::ts) + let* qs1', e', t = infer_exp env e in + let* qs2', es', ts = infer_exp_list env es in + Ok (qs1' @ qs2', e'::es', t::ts) -and elab_exp env e t : (Il.bind list * Il.exp) attempt = +and elab_exp env e t : (Il.param list * Il.exp) attempt = Debug.(log_at "el.elab_exp" e.at (fun _ -> fmt "%s : %s" (el_exp e) (el_typ t)) - (function Ok (bs', e') -> fmt "%s%s" (il_binds bs') (il_exp e') | _ -> "fail") + (function Ok (qs', e') -> fmt "%s%s" (il_quants qs') (il_exp e') | _ -> "fail") ) @@ fun _ -> nest e.at t ( if is_iter_typ env t then @@ -1273,9 +1297,9 @@ and elab_exp env e t : (Il.bind list * Il.exp) attempt = match e.it with | VarE ({it = "_"; _}, []) | EpsE | SeqE [] -> fail_silent | _ -> - let* bs', e' = elab_exp env e t1 in + let* qs', e' = elab_exp env e t1 in let t' = elab_typ env t in - Ok (bs', lift_exp' e' iter $$ e.at % t') + Ok (qs', lift_exp' e' iter $$ e.at % t') ); (fun env -> elab_exp_plain env e t); ] @@ -1289,23 +1313,23 @@ and elab_exp env e t : (Il.bind list * Il.exp) attempt = elab_exp_plain env e t ) -and elab_exp_plain env e t : (Il.bind list * Il.exp) attempt = +and elab_exp_plain env e t : (Il.param list * Il.exp) attempt = Debug.(log_at "el.elab_exp_plain" e.at (fun _ -> fmt "%s : %s" (el_exp e) (el_typ t)) - (function Ok (bs', e') -> fmt "%s%s" (il_binds bs') (il_exp e') | _ -> "fail") + (function Ok (qs', e') -> fmt "%s%s" (il_quants qs') (il_exp e') | _ -> "fail") ) @@ fun _ -> - let* bs', e' = elab_exp_plain' env e t in + let* qs', e' = elab_exp_plain' env e t in let t' = elab_typ env t in - Ok (bs', e' $$ e.at % t') + Ok (qs', e' $$ e.at % t') -and elab_exp_plain' env e t : (Il.bind list * Il.exp') attempt = +and elab_exp_plain' env e t : (Il.param list * Il.exp') attempt = match e.it with | BoolE _ | NumE _ | CvtE _ | UnE _ | BinE _ | CmpE _ | IdxE _ | DotE _ | MemE _ | LenE _ | SizeE _ | CallE _ | TypE _ | HoleE _ | FuseE _ | UnparenE _ | LatexE _ -> - let* bs1', e', t' = infer_exp env e in - let* bs2', e'' = cast_exp' "expression" env e' t' t in - Ok (bs1' @ bs2', e'') + let* qs1', e', t' = infer_exp env e in + let* qs2', e'' = cast_exp' "expression" env e' t' t in + Ok (qs1' @ qs2', e'') | TextE s -> let cs = try Utf8.decode s with Utf8.Utf8 -> [] in (* Allow treatment as character constant *) @@ -1314,24 +1338,24 @@ and elab_exp_plain' env e t : (Il.bind list * Il.exp') attempt = (Il.NumT `NatT $ e.at) in cast_exp' "character" env e' (NumT `NatT $ e.at) t else - let* bs1', e', t' = infer_exp env e in - let* bs2', e'' = cast_exp' "expression" env e' t' t in - Ok (bs1' @ bs2', e'') + let* qs1', e', t' = infer_exp env e in + let* qs2', e'' = cast_exp' "expression" env e' t' t in + Ok (qs1' @ qs2', e'') | VarE (id, _) when id.it = "_" -> Ok ([], Il.VarE id) | VarE (id, _) -> choice env [ (fun env -> - let* bs1', e', t' = infer_exp env e in - let* bs2', e'' = cast_exp' "expression" env e' t' t in - Ok (bs1' @ bs2', e'') + let* qs1', e', t' = infer_exp env e in + let* qs2', e'' = cast_exp' "expression" env e' t' t in + Ok (qs1' @ qs2', e'') ); (fun env -> if is_iter_typ env t && id.it <> "_" then (* Never infer an iteration type for a variable *) let* t1, iter = as_iter_typ "" env Check t e.at in - let* bs', e' = elab_exp env e t1 in - Ok (bs', lift_exp' e' iter) + let* qs', e' = elab_exp env e t1 in + Ok (qs', lift_exp' e' iter) else if not (bound env.vars id || bound env.gvars (strip_var_suffix id)) then let _ = () in env.vars <- bind "variable" env.vars id t; @@ -1342,29 +1366,29 @@ and elab_exp_plain' env e t : (Il.bind list * Il.exp') attempt = ] | SliceE (e1, e2, e3) -> let* _t' = as_list_typ "expression" env Check t e1.at in - let* bs1', e1' = elab_exp env e1 t in - let* bs2', e2' = elab_exp env e2 (NumT `NatT $ e2.at) in - let* bs3', e3' = elab_exp env e3 (NumT `NatT $ e3.at) in - Ok (bs1' @ bs2' @ bs3', Il.SliceE (e1', e2', e3')) + let* qs1', e1' = elab_exp env e1 t in + let* qs2', e2' = elab_exp env e2 (NumT `NatT $ e2.at) in + let* qs3', e3' = elab_exp env e3 (NumT `NatT $ e3.at) in + Ok (qs1' @ qs2' @ qs3', Il.SliceE (e1', e2', e3')) | UpdE (e1, p, e2) -> - let* bs1', e1' = elab_exp env e1 t in - let* bs', p', t2 = elab_path env p t in - let* bs2', e2' = elab_exp env e2 t2 in - Ok (bs1' @ bs' @ bs2', Il.UpdE (e1', p', e2')) + let* qs1', e1' = elab_exp env e1 t in + let* qs', p', t2 = elab_path env p t in + let* qs2', e2' = elab_exp env e2 t2 in + Ok (qs1' @ qs' @ qs2', Il.UpdE (e1', p', e2')) | ExtE (e1, p, e2) -> - let* bs1', e1' = elab_exp env e1 t in - let* bs', p', t2 = elab_path env p t in + let* qs1', e1' = elab_exp env e1 t in + let* qs', p', t2 = elab_path env p t in let* _t21 = as_list_typ "path" env Check t2 p.at in - let* bs2', e2' = elab_exp env e2 t2 in - Ok (bs1' @ bs' @ bs2', Il.ExtE (e1', p', e2')) + let* qs2', e2' = elab_exp env e2 t2 in + Ok (qs1' @ qs' @ qs2', Il.ExtE (e1', p', e2')) | StrE efs -> let* tfs, dots = as_struct_typ "record" env Check t e.at in if dots = Dots then error e.at "used record type is only partially defined at this point"; - let* bs', efs' = elab_expfields env (expand_id env t) (filter_nl efs) tfs t e.at in - Ok (bs', Il.StrE efs') + let* qs', efs' = elab_expfields env (expand_id env t) (filter_nl efs) tfs t e.at in + Ok (qs', Il.StrE efs') | CommaE (e1, e2) -> - let* bs1', e1' = elab_exp env e1 t in + let* qs1', e1' = elab_exp env e1 t in let* tfs, dots1 = as_struct_typ "expression" env Check t e1.at in if dots1 = Dots then error e1.at "used record type is only partially defined at this point"; @@ -1374,32 +1398,32 @@ and elab_exp_plain' env e t : (Il.bind list * Il.exp') attempt = | SeqE ({it = AtomE atom; at; _} :: es2) -> let* _t2 = attempt (find_field tfs atom at) t in let e2 = match es2 with [e2] -> e2 | _ -> SeqE es2 $ e2.at in - let* bs2', e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t in - Ok (bs1' @ bs2', Il.CompE (e2', e1')) + let* qs2', e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t in + Ok (qs1' @ qs2', Il.CompE (e2', e1')) | _ -> error e.at "malformed comma operator" ) | CatE (e1, e2) -> let* _ = as_cat_typ "expression" env Check t e.at in - let* bs1', e1' = elab_exp env e1 t in - let* bs2', e2' = elab_exp env e2 t in - Ok (bs1' @ bs2', + let* qs1', e1' = elab_exp env e1 t in + let* qs2', e2' = elab_exp env e2 t in + Ok (qs1' @ qs2', if is_iter_typ env t then Il.CatE (e1', e2') else Il.CompE (e1', e2')) | ParenE e1 | ArithE e1 -> elab_exp_plain' env e1 t | TupE es -> let* ts = as_tup_typ "tuple" env Check t e.at in - let* bs', es' = elab_exp_list env es ts e.at in - Ok (bs', Il.TupE es') + let* qs', es' = elab_exp_list env es ts e.at in + Ok (qs', Il.TupE es') | ListE es -> let* t1, iter = as_iter_typ "list" env Check t e.at in if iter <> List then fail_typ env e.at "list" t else let ts = List.init (List.length es) (fun _ -> t1) in - let* bs', es' = elab_exp_list env es ts e.at in - Ok (bs', Il.ListE es') + let* qs', es' = elab_exp_list env es ts e.at in + Ok (qs', Il.ListE es') | SeqE [] when is_empty_typ env t -> - let* bs1', e', t' = infer_exp env e in - let* bs2', e'' = cast_exp' "empty expression" env e' t' t in - Ok (bs1' @ bs2', e'') + let* qs1', e', t' = infer_exp env e in + let* qs2', e'' = cast_exp' "empty expression" env e' t' t in + Ok (qs1' @ qs2', e'') | EpsE | SeqE _ when is_iter_typ env t -> let* t1, iter = as_iter_typ "" env Check t e.at in elab_exp_iter' env (unseq_exp e) (t1, iter) t e.at @@ -1413,12 +1437,12 @@ and elab_exp_plain' env e t : (Il.bind list * Il.exp') attempt = * the latter case is already captured above *) if is_notation_typ env t then let* nt = as_notation_typ "" env Check t e.at in - let* bs', e' = elab_exp_notation env (expand_id env t) e nt t in - Ok (bs', e'.it) + let* qs', e' = elab_exp_notation env (expand_id env t) e nt t in + Ok (qs', e'.it) else if is_variant_typ env t then let* tcs, _ = as_variant_typ "" env Check t e.at in - let* bs', e' = elab_exp_variant env (expand_id env t) e tcs t e.at in - Ok (bs', e'.it) + let* qs', e' = elab_exp_variant env (expand_id env t) e tcs t e.at in + Ok (qs', e'.it) else let name = match e.it with @@ -1431,28 +1455,28 @@ and elab_exp_plain' env e t : (Il.bind list * Il.exp') attempt = in fail_typ env e.at name t | IterE (e1, iter2) -> let* t1, iter = as_iter_typ "iteration" env Check t e.at in - let bs2', iter2' = elab_iterexp env iter2 in - let* bs1', e1' = elab_exp env e1 t1 in - let bs' = bs1' @ bs2' in + let qs2', iter2' = elab_iterexp env iter2 in + let* qs1', e1' = elab_exp env e1 t1 in + let qs' = qs1' @ qs2' in let e' = Il.IterE (e1', iter2') in match iter2, iter with - | Opt, Opt -> Ok (bs', e') + | Opt, Opt -> Ok (qs', e') | Opt, List -> - Ok (bs', Il.LiftE (e' $$ e.at % (Il.IterT (elab_typ env t1, Opt) $ e1.at))) + Ok (qs', Il.LiftE (e' $$ e.at % (Il.IterT (elab_typ env t1, Opt) $ e1.at))) | _, Opt -> fail_typ env e.at "iteration" t - | _, _ -> Ok (bs', e') + | _, _ -> Ok (qs', e') -and elab_exp_list env es ts at : (Il.bind list * Il.exp list) attempt = +and elab_exp_list env es ts at : (Il.param list * Il.exp list) attempt = match es, ts with | [], [] -> Ok ([], []) | e::es, t::ts -> - let* bs1', e' = elab_exp env e t in - let* bs2', es' = elab_exp_list env es ts at in - Ok (bs1' @ bs2', e'::es') + let* qs1', e' = elab_exp env e t in + let* qs2', es' = elab_exp_list env es ts at in + Ok (qs1' @ qs2', e'::es') | _, _ -> fail at "arity mismatch for expression list" -and elab_expfields env tid efs tfs t0 at : (Il.bind list * Il.expfield list) attempt = +and elab_expfields env tid efs tfs t0 at : (Il.param list * Il.expfield list) attempt = Debug.(log_in_at "el.elab_expfields" at (fun _ -> fmt "{%s} : {%s} = %s" (list el_expfield efs) (list el_typfield tfs) (el_typ t0)) ); @@ -1460,66 +1484,66 @@ and elab_expfields env tid efs tfs t0 at : (Il.bind list * Il.expfield list) att match efs, tfs with | [], [] -> Ok ([], []) | (atom1, e)::efs2, (atom2, (t, prems), _)::tfs2 when atom1.it = atom2.it -> - let* bs1', es', _s = elab_exp_notation' env tid e t in - let* bs2', efs2' = elab_expfields env tid efs2 tfs2 t0 at in + let* qs1', es', _s = elab_exp_notation' env tid e t in + let* qs2', efs2' = elab_expfields env tid efs2 tfs2 t0 at in let e' = (if prems = [] then tup_exp' else tup_exp_bind') es' e.at in - Ok (bs1' @ bs2', (elab_atom atom1 tid, e') :: efs2') + Ok (qs1' @ qs2', (elab_atom atom1 tid, e') :: efs2') | _, (atom, (t, prems), _)::tfs2 -> let atom' = string_of_atom atom in - let* bs1', e1' = + let* qs1', e1' = cast_empty ("omitted record field `" ^ atom' ^ "`") env t at (elab_typ env t) in let e' = (if prems = [] then tup_exp' else tup_exp_bind') [e1'] at in - let* bs2', efs2' = elab_expfields env tid efs tfs2 t0 at in - Ok (bs1' @ bs2', (elab_atom atom tid, e') :: efs2') + let* qs2', efs2' = elab_expfields env tid efs tfs2 t0 at in + Ok (qs1' @ qs2', (elab_atom atom tid, e') :: efs2') | (atom, e)::_, [] -> fail_atom e.at atom t0 "undefined or misplaced record field" -and elab_exp_iter env es (t1, iter) t at : (Il.bind list * Il.exp) attempt = - let* bs', e' = elab_exp_iter' env es (t1, iter) t at in - Ok (bs', e' $$ at % elab_typ env t) +and elab_exp_iter env es (t1, iter) t at : (Il.param list * Il.exp) attempt = + let* qs', e' = elab_exp_iter' env es (t1, iter) t at in + Ok (qs', e' $$ at % elab_typ env t) -and elab_exp_iter' env es (t1, iter) t at : (Il.bind list * Il.exp') attempt = +and elab_exp_iter' env es (t1, iter) t at : (Il.param list * Il.exp') attempt = Debug.(log_at "el.elab_exp_iter" at (fun _ -> fmt "%s : %s = (%s)%s" (seq el_exp es) (el_typ t) (el_typ t1) (el_iter iter)) - (function Ok (bs', e') -> fmt "%s%s" (il_binds bs') (il_exp (e' $$ at % elab_typ env t)) | _ -> "fail") + (function Ok (qs', e') -> fmt "%s%s" (il_quants qs') (il_exp (e' $$ at % elab_typ env t)) | _ -> "fail") ) @@ fun _ -> match es, iter with | [], Opt -> Ok ([], Il.OptE None) | [e1], Opt -> - let* bs1', e1' = elab_exp env e1 t1 in - Ok (bs1', Il.OptE (Some e1')) + let* qs1', e1' = elab_exp env e1 t1 in + Ok (qs1', Il.OptE (Some e1')) | _::_::_, Opt -> fail_typ env at "expression" t | [], List -> Ok ([], Il.ListE []) | e1::es2, List -> - let* bs1', e1' = elab_exp env e1 t in + let* qs1', e1' = elab_exp env e1 t in let at' = Source.over_region (after_region e1.at :: List.map Source.at es2) in - let* bs2', e2' = elab_exp_iter env es2 (t1, iter) t at' in - Ok (bs1' @ bs2', cat_exp' e1' e2') + let* qs2', e2' = elab_exp_iter env es2 (t1, iter) t at' in + Ok (qs1' @ qs2', cat_exp' e1' e2') | _, (List1 | ListN _) -> assert false -and elab_exp_notation env tid e nt t : (Il.bind list * Il.exp) attempt = +and elab_exp_notation env tid e nt t : (Il.param list * Il.exp) attempt = (* Convert notation into applications of mixin operators *) assert (valid_tid tid); - let* bs1', es', _s = elab_exp_notation' env tid e nt in + let* qs1', es', _s = elab_exp_notation' env tid e nt in - let mixop, bs2', t', _prems', _ = elab_typ_notation' env tid e.at nt [] in - Ok (bs1' @ bs2', Il.CaseE (mixop, Il.TupE es' $$ e.at % t') $$ e.at % elab_typ env t) + let mixop, qs2', t', _prems', _ = elab_typ_notation' env tid e.at nt [] in + Ok (qs1' @ qs2', Il.CaseE (mixop, Il.TupE es' $$ e.at % t') $$ e.at % elab_typ env t) (* let mixop, ts', _ = elab_typ_notation env tid nt in assert (List.length es' = List.length ts'); Ok (Il.CaseE (mixop, tup_exp_bind' es' e.at) $$ e.at % elab_typ env t) *) -and elab_exp_notation' env tid e t : (Il.bind list * Il.exp list * Subst.t) attempt = +and elab_exp_notation' env tid e t : (Il.param list * Il.exp list * Subst.t) attempt = Debug.(log_at "el.elab_exp_notation" e.at (fun _ -> fmt "%s : %s" (el_exp e) (el_typ t)) - (function Ok (bs', es', _) -> fmt "%s %s" (il_binds bs') (seq il_exp es') | _ -> "fail") + (function Ok (qs', es', _) -> fmt "%s %s" (il_quants qs') (seq il_exp es') | _ -> "fail") ) @@ fun _ -> assert (valid_tid tid); match e.it, t.it with @@ -1533,10 +1557,10 @@ and elab_exp_notation' env tid e t : (Il.bind list * Il.exp list * Subst.t) atte (InfixE (e1, atom', SeqE [e21; e2] $ e2.at) $ e.at) t | InfixE (e1, atom, e2), InfixT (t1, atom', t2) -> if atom.it <> atom'.it then fail_typ env e.at "infix expression" t else - let* bs1', es1', s1 = elab_exp_notation' env tid e1 t1 in - let* bs2', es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in + let* qs1', es1', s1 = elab_exp_notation' env tid e1 t1 in + let* qs2', es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in let _ = elab_atom atom tid in - Ok (bs1' @ bs2', es1' @ es2', Subst.union s1 s2) + Ok (qs1' @ qs2', es1' @ es2', Subst.union s1 s2) | BrackE (l, e1, r), BrackT (l', t1, r') -> if (l.it, r.it) <> (l'.it, r'.it) then fail_typ env e.at "bracket expression" t else let _ = elab_atom l tid in @@ -1556,29 +1580,29 @@ and elab_exp_notation' env tid e t : (Il.bind list * Il.exp list * Subst.t) atte | SeqE (e1::es2), SeqT [t1] -> choice env [ (fun env -> - let* bs1', es1', s1 = elab_exp_notation' env tid (unparen_exp e1) t1 in + let* qs1', es1', s1 = elab_exp_notation' env tid (unparen_exp e1) t1 in let e2 = SeqE es2 $ Source.over_region (after_region e1.at :: List.map Source.at es2) in let t2 = SeqT [] $ Source.after_region t1.at in - let* bs2', es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in - Ok (bs1' @ bs2', es1' @ es2', Subst.union s1 s2) + let* qs2', es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in + Ok (qs1' @ qs2', es1' @ es2', Subst.union s1 s2) ); (fun env -> - let* bs', e' = elab_exp env e t1 in - Ok (bs', [e'], Subst.empty) + let* qs', e' = elab_exp env e t1 in + Ok (qs', [e'], Subst.empty) ) ] | SeqE (e1::es2), SeqT (t1::ts2) -> - let* bs1', es1', s1 = elab_exp_notation' env tid (unparen_exp e1) t1 in + let* qs1', es1', s1 = elab_exp_notation' env tid (unparen_exp e1) t1 in let e2 = SeqE es2 $ Source.over_region (after_region e1.at :: List.map Source.at es2) in let t2 = SeqT ts2 $ Source.over_region (after_region t1.at :: List.map Source.at ts2) in - let* bs2', es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in - Ok (bs1' @ bs2', es1' @ es2', Subst.union s1 s2) + let* qs2', es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in + Ok (qs1' @ qs2', es1' @ es2', Subst.union s1 s2) (* Trailing elements can be omitted if they can be eps *) | SeqE [], SeqT (t1::ts2) -> - let* bs1', e1' = cast_empty "omitted sequence tail" env t1 e.at (!!!env tid t1) in + let* qs1', e1' = cast_empty "omitted sequence tail" env t1 e.at (!!!env tid t1) in let t2 = SeqT ts2 $ Source.over_region (after_region t1.at :: List.map Source.at ts2) in - let* bs2', es2', s2 = elab_exp_notation' env tid e t2 in - Ok (bs1' @ bs2', e1' :: es2', s2) + let* qs2', es2', s2 = elab_exp_notation' env tid e t2 in + Ok (qs1' @ qs2', e1' :: es2', s2) | SeqE (e1::_), SeqT [] -> fail e1.at "expression is not empty" (* Since trailing elements can be omitted, a singleton may match a sequence *) @@ -1595,63 +1619,63 @@ and elab_exp_notation' env tid e t : (Il.bind list * Il.exp list * Subst.t) atte fail_typ env e.at "expression" t | _, _ -> - let* bs', e' = elab_exp env e t in - Ok (bs', [e'], Subst.add_varid Subst.empty (Convert.varid_of_typ t) e) + let* qs', e' = elab_exp env e t in + Ok (qs', [e'], Subst.add_varid Subst.empty (Convert.varid_of_typ t) e) -and elab_exp_notation_iter env tid es (t1, iter) t ts at : (Il.bind list * Il.exp list * Subst.t) attempt = +and elab_exp_notation_iter env tid es (t1, iter) t ts at : (Il.param list * Il.exp list * Subst.t) attempt = assert (valid_tid tid); let t' = elab_typ env t in - let* bs', e', es', s = elab_exp_notation_iter' env tid es (t1, iter) t ts t' at in - Ok (bs', e'::es', s) + let* qs', e', es', s = elab_exp_notation_iter' env tid es (t1, iter) t ts t' at in + Ok (qs', e'::es', s) -and elab_exp_notation_iter' env tid es (t1, iter) t ts t' at : (Il.bind list * Il.exp * Il.exp list * Subst.t) attempt = +and elab_exp_notation_iter' env tid es (t1, iter) t ts t' at : (Il.param list * Il.exp * Il.exp list * Subst.t) attempt = Debug.(log_at "el.elab_exp_notation_iter" at (fun _ -> fmt "%s : %s = (%s)%s" (seq el_exp es) (el_typ t) (el_typ t1) (el_iter iter)) - (function Ok (bs', e', es', _) -> fmt "%s %s" (il_binds bs') (seq il_exp (e'::es')) | _ -> "fail") + (function Ok (qs', e', es', _) -> fmt "%s %s" (il_quants qs') (seq il_exp (e'::es')) | _ -> "fail") ) @@ fun _ -> let tat' = Source.over_region (after_region t.at :: List.map Source.at ts) in match es, iter with | [], Opt -> - let* bs', es', s = elab_exp_notation' env tid (SeqE [] $ at) (SeqT ts $ tat') in - Ok (bs', Il.OptE None $$ at % t', es', s) + let* qs', es', s = elab_exp_notation' env tid (SeqE [] $ at) (SeqT ts $ tat') in + Ok (qs', Il.OptE None $$ at % t', es', s) | e1::es2, Opt -> choice env [ (fun env -> - let* bs', es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (SeqT ts $ tat') in - Ok (bs', Il.OptE None $$ Source.before_region e1.at % t', es', s) + let* qs', es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (SeqT ts $ tat') in + Ok (qs', Il.OptE None $$ Source.before_region e1.at % t', es', s) ); (fun env -> - let* bs1', e1' = elab_exp env e1 t in + let* qs1', e1' = elab_exp env e1 t in let at' = Source.over_region (after_region e1.at :: List.map Source.at es2) in - let* bs2', es2', s = elab_exp_notation' env tid (SeqE es2 $ at') (SeqT ts $ tat') in - Ok (bs1' @ bs2', e1', es2', s) + let* qs2', es2', s = elab_exp_notation' env tid (SeqE es2 $ at') (SeqT ts $ tat') in + Ok (qs1' @ qs2', e1', es2', s) ); ] | [], List -> - let* bs', es', s = elab_exp_notation' env tid (SeqE [] $ at) (SeqT ts $ tat') in - Ok (bs', Il.ListE [] $$ at % t', es', s) + let* qs', es', s = elab_exp_notation' env tid (SeqE [] $ at) (SeqT ts $ tat') in + Ok (qs', Il.ListE [] $$ at % t', es', s) | e1::es2, List -> choice env [ (fun env -> - let* bs', es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (SeqT ts $ tat') in - Ok (bs', Il.ListE [] $$ at % t', es', s) + let* qs', es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (SeqT ts $ tat') in + Ok (qs', Il.ListE [] $$ at % t', es', s) ); (fun env -> - let* bs1', e1' = elab_exp env e1 t in + let* qs1', e1' = elab_exp env e1 t in let at' = Source.over_region (after_region e1.at :: List.map Source.at es2) in - let* bs2', e2', es2', s = elab_exp_notation_iter' env tid es2 (t1, iter) t ts t' at' in - Ok (bs1' @ bs2', cat_exp' e1' e2' $$ Source.over_region [e1'.at; e2'.at] % t', es2', s) + let* qs2', e2', es2', s = elab_exp_notation_iter' env tid es2 (t1, iter) t ts t' at' in + Ok (qs1' @ qs2', cat_exp' e1' e2' $$ Source.over_region [e1'.at; e2'.at] % t', es2', s) ); ] | _, (List1 | ListN _) -> assert false -and elab_exp_variant env tid e cases t at : (Il.bind list * Il.exp) attempt = +and elab_exp_variant env tid e cases t at : (Il.param list * Il.exp) attempt = Debug.(log_at "el.elab_exp_variant" e.at (fun _ -> fmt "%s : %s = %s" (el_exp e) tid.it (el_typ t)) - (function Ok (bs', e') -> fmt "%s%s" (il_binds bs') (il_exp e') | _ -> "fail") + (function Ok (qs', e') -> fmt "%s%s" (il_quants qs') (il_exp e') | _ -> "fail") ) @@ fun _ -> assert (valid_tid tid); let* atom = @@ -1663,14 +1687,14 @@ and elab_exp_variant env tid e cases t at : (Il.bind list * Il.exp) attempt = | _ -> fail_typ env at "expression" t in let* t1, _prems = attempt (find_case_sub cases atom atom.at) t in - let* bs1', es', _s = elab_exp_notation' env tid e t1 in + let* qs1', es', _s = elab_exp_notation' env tid e t1 in let t2 = expand env t $ at in let t2' = elab_typ env t2 in - let mixop, bs2', t1', _prems', _ = elab_typ_notation' env tid e.at t1 [] in - let* bs3', e' = cast_exp "variant case" env + let mixop, qs2', t1', _prems', _ = elab_typ_notation' env tid e.at t1 [] in + let* qs3', e' = cast_exp "variant case" env (Il.CaseE (mixop, Il.TupE es' $$ at % t1') $$ at % t2') t2 t in - Ok (bs1' @ bs2' @ bs3', e') + Ok (qs1' @ qs2' @ qs3', e') (* let mixop, ts', _ = elab_typ_notation env tid t1 in assert (List.length es' = List.length ts'); @@ -1678,39 +1702,39 @@ and elab_exp_variant env tid e cases t at : (Il.bind list * Il.exp) attempt = (Il.CaseE (mixop, tup_exp_bind' es' at) $$ at % t2') t2 t *) -and elab_path env p t : (Il.bind list * Il.path * typ) attempt = - let* bs', p', t' = elab_path' env p t in - Ok (bs', p' $$ p.at % elab_typ env t', t') +and elab_path env p t : (Il.param list * Il.path * typ) attempt = + let* qs', p', t' = elab_path' env p t in + Ok (qs', p' $$ p.at % elab_typ env t', t') -and elab_path' env p t : (Il.bind list * Il.path' * typ) attempt = +and elab_path' env p t : (Il.param list * Il.path' * typ) attempt = match p.it with | RootP -> Ok ([], Il.RootP, t) | IdxP (p1, e1) -> - let* bs1', p1', t1 = elab_path env p1 t in - let bs2', e1' = checkpoint (elab_exp env e1 (NumT `NatT $ e1.at)) in + let* qs1', p1', t1 = elab_path env p1 t in + let qs2', e1' = checkpoint (elab_exp env e1 (NumT `NatT $ e1.at)) in let* t' = as_list_typ "path" env Check t1 p1.at in - Ok (bs1' @ bs2', Il.IdxP (p1', e1'), t') + Ok (qs1' @ qs2', Il.IdxP (p1', e1'), t') | SliceP (p1, e1, e2) -> - let* bs', p1', t1 = elab_path env p1 t in - let bs1', e1' = checkpoint (elab_exp env e1 (NumT `NatT $ e1.at)) in - let bs2', e2' = checkpoint (elab_exp env e2 (NumT `NatT $ e2.at)) in + let* qs', p1', t1 = elab_path env p1 t in + let qs1', e1' = checkpoint (elab_exp env e1 (NumT `NatT $ e1.at)) in + let qs2', e2' = checkpoint (elab_exp env e2 (NumT `NatT $ e2.at)) in let* _ = as_list_typ "path" env Check t1 p1.at in - Ok (bs' @ bs1' @ bs2', Il.SliceP (p1', e1', e2'), t1) + Ok (qs' @ qs1' @ qs2', Il.SliceP (p1', e1', e2'), t1) | DotP (p1, atom) -> - let* bs1', p1', t1 = elab_path env p1 t in + let* qs1', p1', t1 = elab_path env p1 t in let* tfs, dots1 = as_struct_typ "path" env Check t1 p1.at in if dots1 = Dots then error p1.at "used record type is only partially defined at this point"; (*TODO*) let* t', _prems = attempt (find_field tfs atom p1.at) t1 in - Ok (bs1', Il.DotP (p1', elab_atom atom (expand_id env t1)), t') + Ok (qs1', Il.DotP (p1', elab_atom atom (expand_id env t1)), t') -and cast_empty phrase env t at t' : (Il.bind list * Il.exp) attempt = +and cast_empty phrase env t at t' : (Il.param list * Il.exp) attempt = Debug.(log_at "el.elab_exp_cast_empty" at (fun _ -> fmt "%s >> (%s)" (el_typ t) (el_typ (expand_notation env t $ t.at))) - (function Ok (bs', e') -> fmt "%s%s" (il_binds bs') (il_exp e') | _ -> "fail") + (function Ok (qs', e') -> fmt "%s%s" (il_quants qs') (il_exp e') | _ -> "fail") ) @@ fun _ -> nest at t ( match expand_notation env t with @@ -1730,17 +1754,17 @@ and cast_empty phrase env t at t' : (Il.bind list * Il.exp) attempt = | _ -> fail_typ env at phrase t ) -and cast_exp phrase env e' t1 t2 : (Il.bind list * Il.exp) attempt = - let* bs', e'' = nest e'.at t2 (cast_exp' phrase env e' t1 t2) in - Ok (bs', e'' $$ e'.at % elab_typ env (expand_nondef env t2)) +and cast_exp phrase env e' t1 t2 : (Il.param list * Il.exp) attempt = + let* qs', e'' = nest e'.at t2 (cast_exp' phrase env e' t1 t2) in + Ok (qs', e'' $$ e'.at % elab_typ env (expand_nondef env t2)) -and cast_exp' phrase env e' t1 t2 : (Il.bind list * Il.exp') attempt = +and cast_exp' phrase env e' t1 t2 : (Il.param list * Il.exp') attempt = Debug.(log_at "el.elab_exp_cast" e'.at (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s)" (el_typ t1) (el_typ t2) (el_typ (expand_def env t1 $ t1.at)) (el_typ (expand_def env t2 $ t2.at)) (el_typ (expand_nondef env t2)) ) - (function Ok (bs', e'') -> fmt "%s%s" (il_binds bs') (il_exp (e'' $$ e'.at % elab_typ env t2)) | _ -> "fail") + (function Ok (qs', e'') -> fmt "%s%s" (il_quants qs') (il_exp (e'' $$ e'.at % elab_typ env t2)) | _ -> "fail") ) @@ fun _ -> if equiv_typ env t1 t2 then Ok ([], e'.it) else match expand_def env t1, expand_def env t2 with @@ -1756,8 +1780,8 @@ and cast_exp' phrase env e' t1 t2 : (Il.bind list * Il.exp') attempt = choice env [ (fun env -> (* Two ConT's with the same operator can be cast pointwise *) - let mixop1, bs1', t1', _prems1', ts1 = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in - let mixop2, bs2', _t2', _prems2', ts2 = elab_typ_notation' env (expand_id env t2) t2.at t21 [] in + let mixop1, qs1', t1', _prems1', ts1 = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in + let mixop2, qs2', _t2', _prems2', ts2 = elab_typ_notation' env (expand_id env t2) t2.at t21 [] in (* let mixop1, ts1', ts1 = elab_typ_notation env (expand_id env t1) t11 in let mixop2, _ts2', ts2 = elab_typ_notation env (expand_id env t2) t21 in @@ -1765,13 +1789,12 @@ and cast_exp' phrase env e' t1 t2 : (Il.bind list * Il.exp') attempt = if mixop1 <> mixop2 then fail_typ2 env e'.at phrase t1 t2 "" else let e'' = Il.UncaseE (e', mixop1) $$ e'.at % t1' in -Printf.printf "[1] %s => %s\n%!" (Debug.el_typ t1) (Debug.il_typ t1'); - let ts1' = match t1'.it with Il.TupT ets -> List.map snd ets | _ -> [t1'] in + let ts1' = match t1'.it with Il.TupT xts -> List.map snd xts | _ -> [t1'] in let es' = List.mapi (fun i t1I' -> Il.ProjE (e'', i) $$ e''.at % t1I') ts1' in - let* bss'_es'' = map2_attempt (fun eI' (t1I, t2I) -> + let* qss'_es'' = map2_attempt (fun eI' (t1I, t2I) -> cast_exp phrase env eI' t1I t2I) es' (List.combine ts1 ts2) in - let bss', es'' = List.split bss'_es'' in - Ok (bs1' @ bs2' @ List.concat bss', Il.CaseE (mixop2, tup_exp_bind' es'' e'.at)) + let qss', es'' = List.split qss'_es'' in + Ok (qs1' @ qs2' @ List.concat qss', Il.CaseE (mixop2, tup_exp_bind' es'' e'.at)) ); (fun env -> (* Two unary ConT's can be cast transitively *) @@ -1781,33 +1804,32 @@ Printf.printf "[1] %s => %s\n%!" (Debug.el_typ t1) (Debug.il_typ t1'); (el_typ (expand_nondef env t2)) ) ); - let mixop, bs', t1', _prems', ts = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in + let mixop, qs', t1', _prems', ts = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in (* let mixop, ts', ts = elab_typ_notation env (expand_id env t1) t11 in *) let* t111, t111' = match ts, t1'.it with [t111], Il.TupT [_, t111'] -> Ok (t111, t111') | _ -> fail_typ2 env e'.at phrase t1 t2 "" in -Printf.printf "[2] %s => %s\n%!" (Debug.el_typ t1) (Debug.il_typ t1'); let e'' = Il.UncaseE (e', mixop) $$ e'.at % t1' in - let* bs'', e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in - Ok (bs' @ bs'', e''') + let* qs'', e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in + Ok (qs' @ qs'', e''') ); ] | ConT ((t11, _), _), t2' -> choice env [ (fun env -> - let* bs', e'' = + let* qs', e'' = match t2' with | IterT (t21, iter) -> - let* bs1', e1' = cast_exp phrase env e' t1 t21 in + let* qs1', e1' = cast_exp phrase env e' t1 t21 in (match iter with - | Opt -> Ok (bs1', Il.OptE (Some e1')) - | List -> Ok (bs1', Il.ListE [e1']) + | Opt -> Ok (qs1', Il.OptE (Some e1')) + | List -> Ok (qs1', Il.ListE [e1']) | _ -> assert false ) | _ -> fail_silent in - Ok (bs', e'') + Ok (qs', e'') ); (fun env -> (* A ConT can be cast to its payload *) @@ -1817,7 +1839,7 @@ Printf.printf "[2] %s => %s\n%!" (Debug.el_typ t1) (Debug.il_typ t1'); (el_typ (expand_nondef env t2)) ) ); - let mixop, bs', t1', _prems', ts = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in + let mixop, qs', t1', _prems', ts = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in (* let mixop, ts', ts = elab_typ_notation env (expand_id env t1) t11 in *) @@ -1825,35 +1847,35 @@ Printf.printf "[2] %s => %s\n%!" (Debug.el_typ t1) (Debug.il_typ t1'); fail_typ2 env e'.at phrase t1 t2 "" in Printf.printf "[3] %s => %s\n%!" (Debug.el_typ t1) (Debug.il_typ t1'); let e'' = Il.UncaseE (e', mixop) $$ e'.at % t1' in - let* bs'', e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in - Ok (bs' @ bs'', e''') + let* qs'', e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in + Ok (qs' @ qs'', e''') ); ] | _, ConT ((t21, _), _) -> (* A ConT payload can be cast to the ConT *) - let mixop, bs', t', _prems', ts = elab_typ_notation' env (expand_id env t2) t2.at t21 [] in + let mixop, qs', t', _prems', ts = elab_typ_notation' env (expand_id env t2) t2.at t21 [] in (* let mixop, _ts', ts = elab_typ_notation env (expand_id env t2) t21 in *) let* t211 = match ts with [t211] -> Ok t211 | _ -> fail_typ2 env e'.at phrase t1 t2 "" in - let* bs1', e1' = cast_exp phrase env e' t1 t211 in - Ok (bs' @ bs1', Il.CaseE (mixop, Il.TupE [e1'] $$ e'.at % t')) + let* qs1', e1' = cast_exp phrase env e' t1 t211 in + Ok (qs' @ qs1', Il.CaseE (mixop, Il.TupE [e1'] $$ e'.at % t')) | RangeT _, t2' -> choice env [ (fun env -> - let* bs', e'' = + let* qs', e'' = match t2' with | IterT (t21, iter) -> - let* bs1', e1' = cast_exp phrase env e' t1 t21 in + let* qs1', e1' = cast_exp phrase env e' t1 t21 in (match iter with - | Opt -> Ok (bs1', Il.OptE (Some e1')) - | List -> Ok (bs1', Il.ListE [e1']) + | Opt -> Ok (qs1', Il.OptE (Some e1')) + | List -> Ok (qs1', Il.ListE [e1']) | _ -> assert false ) | _ -> fail_silent in - Ok (bs', e'') + Ok (qs', e'') ); (fun env -> (* A RangeT can be cast to its carrier type *) @@ -1874,23 +1896,23 @@ Printf.printf "[4] %s => %s\n%!" (Debug.el_typ t11) (Debug.il_typ t11'); | _, RangeT _ -> (* A respective carrier type can be cast to RangeT *) let t21 = typ_rep env t2 in - let* bs', e'' = cast_exp phrase env e' t1 t21 in - Ok (bs', Il.CaseE ([[]; []], Il.TupE [e''] $$ e'.at % elab_typ env t21)) + let* qs', e'' = cast_exp phrase env e' t1 t21 in + Ok (qs', Il.CaseE ([[]; []], Il.TupE [e''] $$ e'.at % elab_typ env t21)) | _, IterT (t21, Opt) -> - let* bs', e'' = cast_exp phrase env e' t1 t21 in - Ok (bs', Il.OptE (Some e'')) + let* qs', e'' = cast_exp phrase env e' t1 t21 in + Ok (qs', Il.OptE (Some e'')) (* TODO(3, rossberg): enable; violates invariant that all iterexps are initially empty | IterT (t11, List), IterT (t21, List) -> choice env [ (fun env -> let id = x $ e'.at in let t11' = elab_typ env t11 in - let* bs', e'' = cast_exp phrase env (Il.VarE id $$ e'.at % t11') t11 t21 in - Ok (bs', Il.IterE (e'', (List, [x, e']))) + let* qs', e'' = cast_exp phrase env (Il.VarE id $$ e'.at % t11') t11 t21 in + Ok (qs', Il.IterE (e'', (List, [x, e']))) ); (fun env -> - let* bs', e'' = cast_exp phrase env e' t1 t21 in - Ok (bs', Il.ListE [e'']) + let* qs', e'' = cast_exp phrase env e' t1 t21 in + Ok (qs', Il.ListE [e'']) ); ] *) @@ -1902,13 +1924,13 @@ Printf.printf "[4] %s => %s\n%!" (Debug.el_typ t11) (Debug.il_typ t11'); cast_exp' phrase env e'' (IterT (t11, List) $ e'.at) t2 ); (fun env -> - let* bs', e'' = cast_exp phrase env e' t1 t21 in - Ok (bs', Il.ListE [e'']) + let* qs', e'' = cast_exp phrase env e' t1 t21 in + Ok (qs', Il.ListE [e'']) ); ] | _, IterT (t21, (List | List1)) -> - let* bs', e'' = cast_exp phrase env e' t1 t21 in - Ok (bs', Il.ListE [e'']) + let* qs', e'' = cast_exp phrase env e' t1 t21 in + Ok (qs', Il.ListE [e'']) | _, _ when is_variant_typ env t1 && is_variant_typ env t2 && not (is_iter_typ env t1) -> let cases1, dots1 = checkpoint (as_variant_typ "" env Check t1 e'.at) in let cases2, _dots2 = checkpoint (as_variant_typ "" env Check t2 e'.at) in @@ -1932,22 +1954,22 @@ Printf.printf "[4] %s => %s\n%!" (Debug.el_typ t11) (Debug.il_typ t11'); let t21 = expand env t2 $ t2.at in let t11' = elab_typ env (expand_nondef env t1) in let t21' = elab_typ env (expand_nondef env t2) in - let* bs1', e'' = cast_exp phrase env e' t1 t11 in + let* qs1', e'' = cast_exp phrase env e' t1 t11 in let e''' = Il.SubE (e'', t11', t21') in - let* bs2', e'''' = cast_exp' phrase env (e''' $$ e'.at % t21') t21 t2 in - Ok (bs1' @ bs2', e'''') + let* qs2', e'''' = cast_exp' phrase env (e''' $$ e'.at % t21') t21 t2 in + Ok (qs1' @ qs2', e'''') | _, _ -> fail_typ2 env e'.at phrase t1 t2 "" -and elab_iterexp env iter : Il.bind list * Il.iterexp = - let bs', iter' = elab_iter env iter in - (bs', (iter', [])) +and elab_iterexp env iter : Il.param list * Il.iterexp = + let qs', iter' = elab_iter env iter in + (qs', (iter', [])) (* Premises *) -and elab_prem env prem : Il.bind list * Il.prem list = +and elab_prem env prem : Il.param list * Il.prem list = match prem.it with | VarPr (id, t) -> env.vars <- bind "variable" env.vars id t; @@ -1955,35 +1977,35 @@ and elab_prem env prem : Il.bind list * Il.prem list = | RulePr (id, e) -> let t, _ = find "relation" env.rels id in let mixop, _, _ = elab_typ_notation env id t in - let bs', es', _s = checkpoint (elab_exp_notation' env id e t) in - bs', [Il.RulePr (id, mixop, tup_exp' es' e.at) $ prem.at] + let qs', es', _s = checkpoint (elab_exp_notation' env id e t) in + qs', [Il.RulePr (id, mixop, tup_exp' es' e.at) $ prem.at] | IfPr e -> - let bs', e' = checkpoint (elab_exp env e (BoolT $ e.at)) in - bs', [Il.IfPr e' $ prem.at] + let qs', e' = checkpoint (elab_exp env e (BoolT $ e.at)) in + qs', [Il.IfPr e' $ prem.at] | ElsePr -> [], [Il.ElsePr $ prem.at] | IterPr ({it = VarPr _; at; _}, _iter) -> error at "misplaced variable premise" | IterPr (prem1, iter) -> - let bs', iter' = elab_iterexp env iter in - let bs1', prems1' = elab_prem env prem1 in + let qs', iter' = elab_iterexp env iter in + let qs1', prems1' = elab_prem env prem1 in assert (List.length prems1' = 1); - bs' @ bs1', [Il.IterPr (List.hd prems1', iter') $ prem.at] + qs' @ qs1', [Il.IterPr (List.hd prems1', iter') $ prem.at] (* Grammars *) -and infer_sym env g : (Il.bind list * Il.sym * typ) attempt = +and infer_sym env g : (Il.param list * Il.sym * typ) attempt = Debug.(log_at "el.infer_sym" g.at (fun _ -> fmt "%s" (el_sym g)) - (function Ok (bs', g', t) -> fmt "%s %s : %s" (il_binds bs') (il_sym g') (el_typ t) | _ -> "fail") + (function Ok (qs', g', t) -> fmt "%s %s : %s" (il_quants qs') (il_sym g') (el_typ t) | _ -> "fail") ) @@ fun _ -> nest g.at (TupT [] $ g.at) ( match g.it with | VarG (id, as_) -> let ps, t, _gram, _prods' = find "grammar" env.grams id in - let bs', as', s = elab_args `Rhs env as_ ps g.at in - Ok (bs', Il.VarG (id, as') $ g.at, Subst.subst_typ s t) + let qs', as', s = elab_args `Rhs env as_ ps g.at in + Ok (qs', Il.VarG (id, as') $ g.at, Subst.subst_typ s t) | NumG (`CharOp, n) -> (* let s = try Utf8.encode [Z.to_int n] with Z.Overflow | Utf8.Utf8 -> @@ -2004,13 +2026,13 @@ and infer_sym env g : (Il.bind list * Il.sym * typ) attempt = | EpsG -> Ok ([], Il.EpsG $ g.at, TupT [] $ g.at) | SeqG gs -> - let* bs', gs' = elab_sym_list env (filter_nl gs) (TupT [] $ g.at) in - Ok (bs', Il.SeqG gs' $ g.at, TupT [] $ g.at) + let* qs', gs' = elab_sym_list env (filter_nl gs) (TupT [] $ g.at) in + Ok (qs', Il.SeqG gs' $ g.at, TupT [] $ g.at) | AltG gs -> choice env [ (fun env -> - let* bs', gs', ts = infer_sym_list env (filter_nl gs) in - if bs' <> [] then + let* qs', gs', ts = infer_sym_list env (filter_nl gs) in + if qs' <> [] then fail g.at "invalid expressions in alternative" else if ts <> [] && List.for_all (equiv_typ env (List.hd ts)) ts then Ok ([], Il.AltG gs' $ g.at, List.hd ts) @@ -2018,34 +2040,34 @@ and infer_sym env g : (Il.bind list * Il.sym * typ) attempt = ); (fun env -> (* HACK to treat singleton strings in short grammar as characters *) - let* bs', g' = elab_sym env g (NumT `NatT $ g.at) in - Ok (bs', g', NumT `NatT $ g.at) + let* qs', g' = elab_sym env g (NumT `NatT $ g.at) in + Ok (qs', g', NumT `NatT $ g.at) ); (fun env -> - let* bs', g' = elab_sym env g (TupT [] $ g.at) in - Ok (bs', g', TupT [] $ g.at) + let* qs', g' = elab_sym env g (TupT [] $ g.at) in + Ok (qs', g', TupT [] $ g.at) ) ] | RangeG (g1, g2) -> let env1 = local_env env in let env2 = local_env env in - let* bs1', g1' = elab_sym env1 g1 (NumT `NatT $ g1.at) in - let* bs2', g2' = elab_sym env2 g2 (NumT `NatT $ g2.at) in + let* qs1', g1' = elab_sym env1 g1 (NumT `NatT $ g1.at) in + let* qs2', g2' = elab_sym env2 g2 (NumT `NatT $ g2.at) in if env1.vars != env.vars then error g1.at "invalid symbol in range"; if env2.vars != env.vars then error g2.at "invalid symbol in range"; - Ok (bs1' @ bs2', Il.RangeG (g1', g2') $ g.at, NumT `NatT $ g.at) + Ok (qs1' @ qs2', Il.RangeG (g1', g2') $ g.at, NumT `NatT $ g.at) | ParenG g1 -> infer_sym env g1 | TupG _ -> error g.at "malformed grammar" | ArithG e -> infer_sym env (sym_of_exp e) | IterG (g1, iter) -> - let bs', iterexp' = elab_iterexp env iter in - let* bs1', g1', t1 = infer_sym env g1 in + let qs', iterexp' = elab_iterexp env iter in + let* qs1', g1', t1 = infer_sym env g1 in Ok ( - bs1' @ bs', + qs1' @ qs', Il.IterG (g1', iterexp') $ g.at, IterT (t1, match iter with Opt -> Opt | _ -> List) $ g.at ) @@ -2054,37 +2076,37 @@ and infer_sym env g : (Il.bind list * Il.sym * typ) attempt = (fun env -> (* HACK to treat singleton strings in short grammar as characters *) let t1 = NumT `NatT $ g1.at in - let* bs1', g1' = elab_sym env g1 t1 in - let* bs2', e' = elab_exp env e t1 in - Ok (bs2' @ bs1', Il.AttrG (e', g1') $ g.at, t1) + let* qs1', g1' = elab_sym env g1 t1 in + let* qs2', e' = elab_exp env e t1 in + Ok (qs2' @ qs1', Il.AttrG (e', g1') $ g.at, t1) ); (fun env -> - let* bs1', g1', t1 = infer_sym env g1 in - let* bs2', e' = elab_exp env e t1 in - Ok (bs1' @ bs2', Il.AttrG (e', g1') $ g.at, t1) + let* qs1', g1', t1 = infer_sym env g1 in + let* qs2', e' = elab_exp env e t1 in + Ok (qs1' @ qs2', Il.AttrG (e', g1') $ g.at, t1) ); ] (* - let bs1', g1', t1 = infer_sym env g1 in - let bs2', e' = checkpoint (elab_exp env e t1) in - Ok (bs1' @ bs2', Il.AttrG (e', g1') $ g.at, t1) + let qs1', g1', t1 = infer_sym env g1 in + let qs2', e' = checkpoint (elab_exp env e t1) in + Ok (qs1' @ qs2', Il.AttrG (e', g1') $ g.at, t1) *) | FuseG _ -> error g.at "misplaced token concatenation" | UnparenG _ -> error g.at "misplaced token unparenthesize" ) -and infer_sym_list env es : (Il.bind list * Il.sym list * typ list) attempt = +and infer_sym_list env es : (Il.param list * Il.sym list * typ list) attempt = match es with | [] -> Ok ([], [], []) | g::gs -> - let* bs1', g', t = infer_sym env g in - let* bs2', gs', ts = infer_sym_list env gs in - Ok (bs1' @ bs2', g'::gs', t::ts) + let* qs1', g', t = infer_sym env g in + let* qs2', gs', ts = infer_sym_list env gs in + Ok (qs1' @ qs2', g'::gs', t::ts) -and elab_sym env g t : (Il.bind list * Il.sym) attempt = +and elab_sym env g t : (Il.param list * Il.sym) attempt = Debug.(log_at "el.elab_sym" g.at (fun _ -> fmt "%s : %s" (el_sym g) (el_typ t)) - (function Ok (bs', g') -> fmt "%s%s" (il_binds bs') (il_sym g') | _ -> "fail") + (function Ok (qs', g') -> fmt "%s%s" (il_quants qs') (il_sym g') | _ -> "fail") ) @@ fun _ -> nest g.at t ( match g.it with @@ -2094,32 +2116,32 @@ and elab_sym env g t : (Il.bind list * Il.sym) attempt = if List.length cs = 1 then Ok ([], Il.NumG (List.hd cs) $ g.at) else - let* bs1', g', t' = infer_sym env g in - let* bs2', g'' = cast_sym env g' t' t in - Ok (bs1' @ bs2', g'') + let* qs1', g', t' = infer_sym env g in + let* qs2', g'' = cast_sym env g' t' t in + Ok (qs1' @ qs2', g'') | AltG gs -> - let* bs', gs' = elab_sym_list env (filter_nl gs) t in - Ok (bs', Il.AltG gs' $ g.at) + let* qs', gs' = elab_sym_list env (filter_nl gs) t in + Ok (qs', Il.AltG gs' $ g.at) | ParenG g1 -> elab_sym env g1 t | _ -> - let* bs1', g', t' = infer_sym env g in - let* bs2', g'' = cast_sym env g' t' t in - Ok (bs1' @ bs2', g'') + let* qs1', g', t' = infer_sym env g in + let* qs2', g'' = cast_sym env g' t' t in + Ok (qs1' @ qs2', g'') ) -and elab_sym_list env es t : (Il.bind list * Il.sym list) attempt = +and elab_sym_list env es t : (Il.param list * Il.sym list) attempt = match es with | [] -> Ok ([], []) | g::gs -> - let* bs1', g' = elab_sym env g t in - let* bs2', gs' = elab_sym_list env gs t in - Ok (bs1' @ bs2', g'::gs') + let* qs1', g' = elab_sym env g t in + let* qs2', gs' = elab_sym_list env gs t in + Ok (qs1' @ qs2', g'::gs') -and cast_sym env g' t1 t2 : (Il.bind list * Il.sym) attempt = +and cast_sym env g' t1 t2 : (Il.param list * Il.sym) attempt = Debug.(log_at "el.elab_cast_sym" g'.at (fun _ -> fmt "%s : %s :> %s" (il_sym g') (el_typ t1) (el_typ t2)) - (function Ok (bs', g'') -> fmt "%s%s" (il_binds bs') (il_sym g'') | _ -> "fail") + (function Ok (qs', g'') -> fmt "%s%s" (il_quants qs') (il_sym g'') | _ -> "fail") ) @@ fun _ -> nest g'.at t2 ( if equiv_typ env t1 t2 then @@ -2140,49 +2162,48 @@ and elab_prod env prod t : Il.prod list = env'.pm <- false; let dims = Dim.check_prod (vars env) prod in let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let bs1', g', _t = checkpoint (infer_sym env' g) in + let qs1', g', _t = checkpoint (infer_sym env' g) in let g' = Dim.annot_sym dims' g' in - let bs2', e' = + let qs2', e' = checkpoint ( if equiv_typ env' t (TupT [] $ e.at) then (* Special case: ignore unit attributes *) (* TODO(4, rossberg): introduce proper top type? *) - let* bs', e', _t = infer_exp env' e in + let* qs', e', _t = infer_exp env' e in let t'_unit = Il.TupT [] $ e.at in - let joker () = Il.VarE ("_" $ e.at) $$ e.at % t'_unit in - Ok (bs', Il.ProjE ( + Ok (qs', Il.ProjE ( Il.TupE [ e'; Il.TupE [] $$ e.at % t'_unit - ] $$ e.at % (Il.TupT [joker (), e'.note; joker (), t'_unit] $ e.at), 1 + ] $$ e.at % (Il.TupT ["_" $ e.at, e'.note; "_" $ e.at, t'_unit] $ e.at), 1 ) $$ e.at % t'_unit) else elab_exp env' e t ) in let e' = Dim.annot_exp dims' e' in - let bss3', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let qss3', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in let det = Free.(diff (union (det_sym g) (det_prems prems)) (bound_env env)) in let free = Free.(diff (free_prod prod) (union (det_prod prod) (bound_env env'))) in if free <> Free.empty then error prod.at ("grammar rule contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_bs', (module Arg : Iter.Arg) = make_binds_iter_arg env' det dims in + let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in let module Acc = Iter.Make(Arg) in Acc.sym g; Acc.exp e; Acc.prems prems; - let prod' = Il.ProdD (!acc_bs' @ bs1' @ bs2' @ List.concat bss3', g', e', prems') $ prod.at in + let prod' = Il.ProdD (!acc_qs' @ qs1' @ qs2' @ List.concat qss3', g', e', prems') $ prod.at in if not env'.pm then [prod'] else prod' :: elab_prod env Subst.(subst_prod pm_snd (Iter.clone_prod prod)) t | RangeP (g1, e1, g2, e2) -> let t = NumT `NatT $ prod.at in - let bs11', g1' = checkpoint (elab_sym env g1 t) in - let bs12', e1' = checkpoint (elab_exp env e1 t) in - let bs21', g2' = checkpoint (elab_sym env g2 t) in - let bs22', e2' = checkpoint (elab_exp env e2 t) in + let qs11', g1' = checkpoint (elab_sym env g1 t) in + let qs12', e1' = checkpoint (elab_exp env e1 t) in + let qs21', g2' = checkpoint (elab_sym env g2 t) in + let qs22', e2' = checkpoint (elab_exp env e2 t) in let c1 = match g1'.it with | Il.NumG c1 -> c1 @@ -2211,33 +2232,33 @@ and elab_prod env prod t : Il.prod list = let n = `Nat Z.(n1 + Z.of_int i) in let g' = {(if i = 0 then g1' else g2') with it = Il.NumG (c1 + i)} in let e' = {(if i = 0 then e1' else e2') with it = Il.NumE n} in - Il.ProdD (bs11' @ bs12' @ bs21' @ bs22', g', e', []) $ prod.at + Il.ProdD (qs11' @ qs12' @ qs21' @ qs22', g', e', []) $ prod.at ) | EquivP (g1, g2, prems) -> let env' = local_env env in env'.pm <- false; let dims = Dim.check_prod (vars env) prod in let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let bs1', g1', _t1 = checkpoint (infer_sym env' g1) in + let qs1', g1', _t1 = checkpoint (infer_sym env' g1) in let g1' = Dim.annot_sym dims' g1' in - let bs2', g2', _t2 = checkpoint (infer_sym env' g2) in + let qs2', g2', _t2 = checkpoint (infer_sym env' g2) in let g2' = Dim.annot_sym dims' g2' in - let bss3', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let qss3', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in let det = Free.(diff (union (det_sym g1) (det_prems prems)) (bound_env env)) in let free = Free.(diff (free_prod prod) (union (det_prod prod) (bound_env env'))) in if free <> Free.empty then error prod.at ("grammar rule contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_bs', (module Arg : Iter.Arg) = make_binds_iter_arg env' det dims in + let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in let module Acc = Iter.Make(Arg) in Acc.sym g1; Acc.sym g2; Acc.prems prems; - ignore (!acc_bs' @ bs1' @ bs2' @ List.concat bss3', g1', g2', prems'); + ignore (!acc_qs' @ qs1' @ qs2' @ List.concat qss3', g1', g2', prems'); [] (* TODO(4, rossberg): translate equiv grammars properly *) (* - let prod' = Il.ProdD (!acc_bs', g1', e', prems') $ prod.at in + let prod' = Il.ProdD (!acc_qs', g1', e', prems') $ prod.at in if not env'.pm then [prod'] else @@ -2251,7 +2272,7 @@ and elab_gram env gram t : Il.prod list = (* Definitions *) -and make_binds_iter_arg env free dims : Il.bind list ref * (module Iter.Arg) = +and make_quants_iter_arg env free dims : Il.param list ref * (module Iter.Arg) = let module Arg = struct include Iter.Skip @@ -2261,7 +2282,7 @@ and make_binds_iter_arg env free dims : Il.bind list ref * (module Iter.Arg) = let visit_typid id = if Free.Set.mem id.it !left.typid then ( - acc := !acc @ [Il.TypB id $ id.at]; + acc := !acc @ [Il.TypP id $ id.at]; left := Free.{!left with typid = Set.remove id.it !left.typid}; ) @@ -2287,7 +2308,7 @@ and make_binds_iter_arg env free dims : Il.bind list ref * (module Iter.Arg) = Il.IterT (t, iter) $ t.at ) (elab_typ env t) ctx' in - acc := !acc @ [Il.ExpB (Dim.annot_varid id ctx', t') $ id.at]; + acc := !acc @ [Il.ExpP (Dim.annot_varid id ctx', t') $ id.at]; left := Free.{!left with varid = Set.remove id.it !left.varid}; ) @@ -2319,13 +2340,13 @@ and make_binds_iter_arg env free dims : Il.bind list ref * (module Iter.Arg) = List.map (fun id -> "`" ^ id ^ "`") |> String.concat ", " ) ^ ", which only occur(s) to its right; try to reorder parameters or premises"); - acc := !acc @ [Il.DefB (id, ps', t') $ id.at]; + acc := !acc @ [Il.DefP (id, ps', t') $ id.at]; left := Free.{!left with defid = Set.remove id.it !left.defid}; ) end in Arg.acc, (module Arg) -and elab_arg in_lhs env a p s : Il.bind list * Il.arg list * Subst.subst = +and elab_arg in_lhs env a p s : Il.param list * Il.arg list * Subst.subst = (match !(a.it), p.it with (* HACK: handle shorthands *) | ExpA e, TypP _ -> a.it := TypA (typ_of_exp e) | ExpA e, GramP _ -> a.it := GramA (sym_of_exp e) @@ -2334,8 +2355,8 @@ and elab_arg in_lhs env a p s : Il.bind list * Il.arg list * Subst.subst = ); match !(a.it), (Subst.subst_param s p).it with | ExpA e, ExpP (id, t) -> - let bs', e' = checkpoint (elab_exp env e t) in - bs', [Il.ExpA e' $ a.at], Subst.add_varid s id e + let qs', e' = checkpoint (elab_exp env e t) in + qs', [Il.ExpA e' $ a.at], Subst.add_varid s id e | TypA ({it = VarT (id', []); _} as t), TypP id when in_lhs = `Lhs -> let id'' = strip_var_suffix id' in let is_prim = @@ -2355,12 +2376,12 @@ and elab_arg in_lhs env a p s : Il.bind list * Il.arg list * Subst.subst = | GramA g, GramP _ when in_lhs = `Lhs -> error g.at "misplaced grammar symbol" | GramA g, GramP (id', t) -> - let bs', g', t' = checkpoint (infer_sym env g) in + let qs', g', t' = checkpoint (infer_sym env g) in let s' = subst_implicit env s t t' in if not (equiv_typ env t' (Subst.subst_typ s' t)) then error_typ2 env a.at "argument" t' t ""; let as' = List.map (fun (_id, t) -> Il.TypA (elab_typ env t) $ t.at) Subst.(Map.bindings s'.typid) in - bs', as' @ [Il.GramA g' $ a.at], Subst.add_gramid s' id' g + qs', as' @ [Il.GramA g' $ a.at], Subst.add_gramid s' id' g | DefA id, DefP (id', ps', t') when in_lhs = `Lhs -> env.defs <- bind "definition" env.defs id (ps', t', []); [], [Il.DefA id $ a.at], Subst.add_defid s id' id @@ -2376,21 +2397,21 @@ and elab_arg in_lhs env a p s : Il.bind list * Il.arg list * Subst.subst = | _, _ -> error a.at "sort mismatch for argument" -and elab_args in_lhs env as_ ps at : Il.bind list * Il.arg list * Subst.subst = +and elab_args in_lhs env as_ ps at : Il.param list * Il.arg list * Subst.subst = Debug.(log_at "el.elab_args" at (fun _ -> fmt "(%s) : (%s)" (list el_arg as_) (list el_param ps)) - (fun (bs', as', _) -> fmt "%s(%s)" (il_binds bs') (list il_arg as')) + (fun (qs', as', _) -> fmt "%s(%s)" (il_quants qs') (list il_arg as')) ) @@ fun _ -> elab_args' in_lhs env as_ ps [] [] Subst.empty at -and elab_args' in_lhs env as_ ps bs' as' s at : Il.bind list * Il.arg list * Subst.subst = +and elab_args' in_lhs env as_ ps qs' as' s at : Il.param list * Il.arg list * Subst.subst = match as_, ps with - | [], [] -> bs', List.concat (List.rev as'), s + | [], [] -> qs', List.concat (List.rev as'), s | a::_, [] -> error a.at "too many arguments" | [], _::_ -> error at "too few arguments" | a::as1, p::ps1 -> - let bs'', a', s' = elab_arg in_lhs env a p s in - elab_args' in_lhs env as1 ps1 (bs' @ bs'') (a'::as') s' at + let qs'', a', s' = elab_arg in_lhs env a p s in + elab_args' in_lhs env as1 ps1 (qs' @ qs'') (a'::as') s' at and subst_implicit env s t t' : Subst.subst = let free = Free.(Set.filter (fun id -> not (Map.mem id env.typs)) (free_typ t).typid) in @@ -2571,8 +2592,8 @@ let elab_hintdef _env hd : Il.def list = [] -let infer_binds env env' dims d : Il.bind list = - Debug.(log_in_at "el.infer_binds" d.at +let infer_quants env env' dims d : Il.param list = + Debug.(log_in_at "el.infer_quants" d.at (fun _ -> Map.fold (fun id _ ids -> if Map.mem id env.vars then ids else id::ids @@ -2584,14 +2605,14 @@ let infer_binds env env' dims d : Il.bind list = if free <> Free.empty then error d.at ("definition contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_bs', (module Arg : Iter.Arg) = make_binds_iter_arg env' det dims in + let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in let module Acc = Iter.Make(Arg) in Acc.def d; - !acc_bs' + !acc_qs' -let infer_no_binds env dims d = - let bs' = infer_binds env env dims d in - assert (bs' = []) +let infer_no_quants env dims d = + let qs' = infer_quants env env dims d in + assert (qs' = []) let rec elab_def env d : Il.def list = @@ -2603,7 +2624,7 @@ let rec elab_def env d : Il.def list = let ps' = elab_params (local_env env) ps in if env.pm then error d.at "misplaced +- or -+ operator in syntax type declaration"; let dims = Dim.check_def d in - infer_no_binds env dims d; + infer_no_quants env dims d; env.typs <- rebind "syntax type" env.typs id (ps, Family []); [Il.TypD (id, ps', []) $ d.at] @ elab_hintdef env (TypH (id, "" $ id.at, hints) $ d.at) @@ -2611,12 +2632,12 @@ let rec elab_def env d : Il.def list = let env' = local_env env in env'.pm <- false; let ps1, k1 = find "syntax type" env.typs id1 in - let bs1', as', _s = elab_args `Lhs env' as_ ps1 d.at in + let qs1', as', _s = elab_args `Lhs env' as_ ps1 d.at in let dt' = elab_typ_definition env' id1 t in let dims = Dim.check_def d in let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let bs' = infer_binds env env' dims d in - let inst' = Il.InstD (bs' @ bs1', List.map (Dim.annot_arg dims') as', dt') $ d.at in + let qs' = infer_quants env env' dims d in + let inst' = Il.InstD (qs' @ qs1', List.map (Dim.annot_arg dims') as', dt') $ d.at in let k1', closed = match k1, t.it with | Opaque, (CaseT (Dots, _, _, _) | StrT (Dots, _, _, _)) -> @@ -2674,7 +2695,7 @@ let rec elab_def env d : Il.def list = if env'.pm then error d.at "misplaced +- or -+ operator in grammar"; let prods' = List.map (fun pr -> id2, pr) (elab_gram env' gram t) in let dims = Dim.check_def d in - infer_no_binds env' dims d; + infer_no_quants env' dims d; let ps1, t1, gram1_opt, prods1' = find "grammar" env.grams id1 in let gram', last = match gram1_opt, gram.it with @@ -2705,7 +2726,7 @@ let rec elab_def env d : Il.def list = let mixop, ts', _ts = elab_typ_notation env id t in if env.pm then error d.at "misplaced +- or -+ operator in relation"; let dims = Dim.check_def d in - infer_no_binds env dims d; + infer_no_quants env dims d; env.rels <- bind "relation" env.rels id (t, []); [Il.RelD (id, mixop, tup_typ' ts' t.at, []) $ d.at] @ elab_hintdef env (RelH (id, hints) $ d.at) @@ -2719,12 +2740,12 @@ let rec elab_def env d : Il.def list = error d.at ("duplicate rule name `" ^ id1.it ^ (if id2.it = "" then "" else "/" ^ id2.it) ^ "`"); let mixop, _, _ = elab_typ_notation env id1 t in - let bs1', es', _ = checkpoint (elab_exp_notation' env' id1 e t) in + let qs1', es', _ = checkpoint (elab_exp_notation' env' id1 e t) in let es' = List.map (Dim.annot_exp dims') es' in - let bss2', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let qss2', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in - let bs' = infer_binds env env' dims d in - let rule' = Il.RuleD (id2, bs' @ bs1' @ List.concat bss2', mixop, tup_exp' es' e.at, prems') $ d.at in + let qs' = infer_quants env env' dims d in + let rule' = Il.RuleD (id2, qs' @ qs1' @ List.concat qss2', mixop, tup_exp' es' e.at, prems') $ d.at in env.rels <- rebind "relation" env.rels id1 (t, rules' @ [id2, rule']); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) | VarD (id, t, _hints) -> @@ -2732,7 +2753,7 @@ let rec elab_def env d : Il.def list = let _t' = elab_typ env t in if env.pm then error d.at "misplaced +- or -+ operator in variable declaration"; let dims = Dim.check_def d in - infer_no_binds env dims d; + infer_no_quants env dims d; env.gvars <- rebind "variable" env.gvars id t; [] | DecD (id, ps, t, hints) -> @@ -2742,7 +2763,7 @@ let rec elab_def env d : Il.def list = let t' = elab_typ env' t in if env'.pm then error d.at "misplaced +- or -+ operator in declaration"; let dims = Dim.check_def d in - infer_no_binds env dims d; + infer_no_quants env dims d; env.defs <- bind "definition" env.defs id (ps, t, []); [Il.DecD (id, ps', t', []) $ d.at] @ elab_hintdef env (DecH (id, hints) $ d.at) @@ -2752,14 +2773,14 @@ let rec elab_def env d : Il.def list = let dims = Dim.check_def d in let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in let ps, t, clauses' = find "definition" env.defs id in - let bs1', as', s = elab_args `Lhs env' as_ ps d.at in + let qs1', as', s = elab_args `Lhs env' as_ ps d.at in let as' = List.map (Dim.annot_arg dims') as' in - let bss2', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let qss2', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in - let bs3', e' = checkpoint (elab_exp env' e (Subst.subst_typ s t)) in + let qs3', e' = checkpoint (elab_exp env' e (Subst.subst_typ s t)) in let e' = Dim.annot_exp dims' e' in - let bs' = infer_binds env env' dims d in - let clause' = Il.DefD (bs' @ bs1' @ List.concat bss2' @ bs3', as', e', prems') $ d.at in + let qs' = infer_quants env env' dims d in + let clause' = Il.DefD (qs' @ qs1' @ List.concat qss2' @ qs3', as', e', prems') $ d.at in env.defs <- rebind "definition" env.defs id (ps, t, clauses' @ [(d, clause')]); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) | SepD -> diff --git a/spectec/src/il/ast.ml b/spectec/src/il/ast.ml index 9132687342..51520efe3e 100644 --- a/spectec/src/il/ast.ml +++ b/spectec/src/il/ast.ml @@ -31,7 +31,7 @@ and typ' = | BoolT (* `bool` *) | NumT of numtyp (* numtyp *) | TextT (* `text` *) - | TupT of (exp * typ) list (* typ * ... * typ *) + | TupT of (id * typ) list (* (id : typ, ..., id : typ) *) | IterT of typ * iter (* typ iter *) and deftyp = deftyp' phrase @@ -40,8 +40,8 @@ and deftyp' = | StructT of typfield list (* record type *) | VariantT of typcase list (* variant type *) -and typfield = atom * (bind list * typ * prem list) * hint list (* record field *) -and typcase = mixop * (bind list * typ * prem list) * hint list (* variant case *) +and typfield = atom * (param list * typ * prem list) * hint list (* record field *) +and typcase = mixop * (param list * typ * prem list) * hint list (* variant case *) (* Expressions *) @@ -52,44 +52,44 @@ and cmpop = [Bool.cmpop | Num.cmpop] and exp = (exp', typ) note_phrase and exp' = - | VarE of id (* varid *) - | BoolE of bool (* bool *) - | NumE of num (* num *) - | TextE of text (* text *) - | UnE of unop * optyp * exp (* unop exp *) - | BinE of binop * optyp * exp * exp (* exp binop exp *) - | CmpE of cmpop * optyp * exp * exp (* exp cmpop exp *) - | TupE of exp list (* ( exp* ) *) - | ProjE of exp * int (* exp.i *) - | CaseE of mixop * exp (* atom exp? *) - | UncaseE of exp * mixop (* exp!mixop *) - | OptE of exp option (* exp? *) - | TheE of exp (* exp! *) - | StrE of expfield list (* { expfield* } *) - | DotE of exp * atom (* exp.atom *) - | CompE of exp * exp (* exp @ exp *) - | ListE of exp list (* [exp ... exp] *) - | LiftE of exp (* exp : _? <: _* *) - | MemE of exp * exp (* exp `<-` exp *) - | LenE of exp (* |exp| *) - | CatE of exp * exp (* exp :: exp *) - | IdxE of exp * exp (* exp[exp]` *) - | SliceE of exp * exp * exp (* exp[exp : exp] *) - | UpdE of exp * path * exp (* exp[path = exp] *) - | ExtE of exp * path * exp (* exp[path =.. exp] *) - | CallE of id * arg list (* defid( arg* ) *) - | IterE of exp * iterexp (* exp iter *) - | CvtE of exp * numtyp * numtyp (* exp : typ1 <:> typ2 *) - | SubE of exp * typ * typ (* exp : typ1 <: typ2 *) - -and expfield = atom * exp (* atom exp *) + | VarE of id (* varid *) + | BoolE of bool (* bool *) + | NumE of num (* num *) + | TextE of text (* text *) + | UnE of unop * optyp * exp (* unop exp *) + | BinE of binop * optyp * exp * exp (* exp binop exp *) + | CmpE of cmpop * optyp * exp * exp (* exp cmpop exp *) + | TupE of exp list (* ( exp* ) *) + | ProjE of exp * int (* exp.i *) + | CaseE of mixop * arg list * exp (* atom exp? *) + | UncaseE of exp * mixop * arg list (* exp!mixop *) + | OptE of exp option (* exp? *) + | TheE of exp (* exp! *) + | StrE of expfield list (* { expfield* } *) + | DotE of exp * atom * arg list (* exp.atom *) + | CompE of exp * exp (* exp @ exp *) + | ListE of exp list (* [exp ... exp] *) + | LiftE of exp (* exp : _? <: _* *) + | MemE of exp * exp (* exp `<-` exp *) + | LenE of exp (* |exp| *) + | CatE of exp * exp (* exp :: exp *) + | IdxE of exp * exp (* exp[exp]` *) + | SliceE of exp * exp * exp (* exp[exp : exp] *) + | UpdE of exp * path * exp (* exp[path = exp] *) + | ExtE of exp * path * exp (* exp[path =.. exp] *) + | CallE of id * arg list (* defid( arg* ) *) + | IterE of exp * iterexp (* exp iter *) + | CvtE of exp * numtyp * numtyp (* exp : typ1 <:> typ2 *) + | SubE of exp * typ * typ (* exp : typ1 <: typ2 *) + +and expfield = atom * arg list * exp (* atom exp *) and path = (path', typ) note_phrase and path' = - | RootP (* *) - | IdxP of path * exp (* path `[` exp `]` *) - | SliceP of path * exp * exp (* path `[` exp `:` exp `]` *) - | DotP of path * atom (* path `.` atom *) + | RootP (* *) + | IdxP of path * exp (* path[exp] *) + | SliceP of path * exp * exp (* path[exp : exp] *) + | DotP of path * atom * arg list (* path.atom *) and iterexp = iter * (id * exp) list @@ -98,39 +98,32 @@ and iterexp = iter * (id * exp) list and sym = sym' phrase and sym' = - | VarG of id * arg list (* gramid (`(` arg,* `)`)? *) - | NumG of int (* num *) - | TextG of string (* `"`text`"` *) - | EpsG (* `eps` *) - | SeqG of sym list (* sym sym *) - | AltG of sym list (* sym `|` sym *) - | RangeG of sym * sym (* sym `|` `...` `|` sym *) - | IterG of sym * iterexp (* sym iter *) - | AttrG of exp * sym (* exp `:` sym *) + | VarG of id * arg list (* gramid( arg* ) *) + | NumG of int (* num *) + | TextG of string (* text *) + | EpsG (* epsilon *) + | SeqG of sym list (* sym sym *) + | AltG of sym list (* sym | sym *) + | RangeG of sym * sym (* sym | ... | sym *) + | IterG of sym * iterexp (* sym iter *) + | AttrG of exp * sym (* exp : sym *) (* Definitions *) and arg = arg' phrase and arg' = - | ExpA of exp (* exp *) - | TypA of typ (* `syntax` typ *) - | DefA of id (* `def` defid *) - | GramA of sym (* `grammar` sym *) - -and bind = bind' phrase -and bind' = - | ExpB of id * typ - | TypB of id - | DefB of id * param list * typ - | GramB of id * param list * typ + | ExpA of exp (* exp *) + | TypA of typ (* `syntax` typ *) + | DefA of id (* `def` defid *) + | GramA of sym (* `grammar` sym *) and param = param' phrase and param' = - | ExpP of id * typ (* varid `:` typ *) - | TypP of id (* `syntax` varid *) - | DefP of id * param list * typ (* `def` defid params `:` typ *) - | GramP of id * typ (* `grammar` gramid params `:` typ *) + | ExpP of id * typ (* varid : typ *) + | TypP of id (* `syntax` varid *) + | DefP of id * param list * typ (* `def` defid params : typ *) + | GramP of id * param list * typ (* `grammar` gramid param : typ *) and def = def' phrase and def' = @@ -143,19 +136,19 @@ and def' = and inst = inst' phrase and inst' = - | InstD of bind list * arg list * deftyp (* family instance clause *) + | InstD of param list * arg list * deftyp (* family instance clause *) and rule = rule' phrase and rule' = - | RuleD of id * bind list * mixop * exp * prem list (* relation rule *) + | RuleD of id * param list * mixop * exp * prem list (* relation rule *) and clause = clause' phrase and clause' = - | DefD of bind list * arg list * exp * prem list (* definition clause *) + | DefD of param list * arg list * exp * prem list (* definition clause *) and prod = prod' phrase and prod' = - | ProdD of bind list * sym * exp * prem list (* grammar production *) + | ProdD of param list * sym * exp * prem list (* grammar production *) and prem = prem' phrase and prem' = diff --git a/spectec/src/il/debug.ml b/spectec/src/il/debug.ml index c080fa080e..935ffbd7db 100644 --- a/spectec/src/il/debug.ml +++ b/spectec/src/il/debug.ml @@ -15,11 +15,10 @@ let il_prod = string_of_prod let il_clause = string_of_clause let il_prem = string_of_prem let il_arg = string_of_arg -let il_bind = string_of_bind +let il_args = string_of_args let il_param = string_of_param -let il_args = list il_arg -let il_binds = string_of_binds -let il_params = list il_param +let il_params = string_of_params +let il_quants = string_of_quants let il_def = string_of_def let il_free s = String.concat " " Free.[ diff --git a/spectec/src/il/dune b/spectec/src/il/dune index dc411c64e4..7ed9035a82 100644 --- a/spectec/src/il/dune +++ b/spectec/src/il/dune @@ -1,5 +1,5 @@ (library (name il) (libraries util zarith xl el) - (modules ast eq free subst iter env eval print debug valid) + (modules ast eq free fresh subst iter env eval print debug valid) ) diff --git a/spectec/src/il/eq.ml b/spectec/src/il/eq.ml index c002877536..83a13f0728 100644 --- a/spectec/src/il/eq.ml +++ b/spectec/src/il/eq.ml @@ -19,8 +19,8 @@ let eq_pair eq_x eq_y (x1, y1) (x2, y2) = (* Ids *) -let eq_id i1 i2 = - i1.it = i2.it +let eq_id x1 x2 = + x1.it = x2.it let eq_atom atom1 atom2 = Atom.eq atom1 atom2 @@ -33,7 +33,7 @@ let eq_mixop op1 op2 = let rec eq_iter iter1 iter2 = match iter1, iter2 with - | ListN (e1, ido1), ListN (e2, ido2) -> eq_exp e1 e2 && eq_opt eq_id ido1 ido2 + | ListN (e1, xo1), ListN (e2, xo2) -> eq_exp e1 e2 && eq_opt eq_id xo1 xo2 | _, _ -> iter1 = iter2 @@ -41,8 +41,8 @@ let rec eq_iter iter1 iter2 = and eq_typ t1 t2 = match t1.it, t2.it with - | VarT (id1, as1), VarT (id2, as2) -> eq_id id1 id2 && eq_list eq_arg as1 as2 - | TupT xts1, TupT xts2 -> eq_list (eq_pair eq_exp eq_typ) xts1 xts2 + | VarT (x1, as1), VarT (x2, as2) -> eq_id x1 x2 && eq_list eq_arg as1 as2 + | TupT xts1, TupT xts2 -> eq_list (eq_pair eq_id eq_typ) xts1 xts2 | IterT (t11, iter1), IterT (t21, iter2) -> eq_typ t11 t21 && eq_iter iter1 iter2 | _, _ -> t1.it = t2.it @@ -65,7 +65,7 @@ and eq_typcase (op1, (_binds1, t1, prems1), _) (op2, (_binds2, t2, prems2), _) = and eq_exp e1 e2 = match e1.it, e2.it with - | VarE id1, VarE id2 -> eq_id id1 id2 + | VarE x1, VarE x2 -> eq_id x1 x2 | UnE (op1, ot1, e11), UnE (op2, ot2, e21) -> op1 = op2 && ot1 = ot2 && eq_exp e11 e21 | BinE (op1, ot1, e11, e12), BinE (op2, ot2, e21, e22) -> @@ -86,23 +86,26 @@ and eq_exp e1 e2 = | TupE es1, TupE es2 | ListE es1, ListE es2 -> eq_list eq_exp es1 es2 | StrE efs1, StrE efs2 -> eq_list eq_expfield efs1 efs2 - | DotE (e11, atom1), DotE (e21, atom2) -> eq_exp e11 e21 && eq_atom atom1 atom2 - | UncaseE (e1, op1), UncaseE (e2, op2) -> eq_mixop op1 op2 && eq_exp e1 e2 - | CallE (id1, as1), CallE (id2, as2) -> eq_id id1 id2 && eq_list eq_arg as1 as2 + | DotE (e11, atom1, as1), DotE (e21, atom2, as2) -> + eq_exp e11 e21 && eq_atom atom1 atom2 && eq_list eq_arg as1 as2 + | UncaseE (e1, op1, as1), UncaseE (e2, op2, as2) -> + eq_mixop op1 op2 && eq_exp e1 e2 && eq_list eq_arg as1 as2 + | CallE (x1, as1), CallE (x2, as2) -> eq_id x1 x2 && eq_list eq_arg as1 as2 | IterE (e11, iter1), IterE (e21, iter2) -> eq_exp e11 e21 && eq_iterexp iter1 iter2 | OptE eo1, OptE eo2 -> eq_opt eq_exp eo1 eo2 | ProjE (e1, i1), ProjE (e2, i2) -> eq_exp e1 e2 && i1 = i2 | TheE e1, TheE e2 -> eq_exp e1 e2 - | CaseE (op1, e1), CaseE (op2, e2) -> eq_mixop op1 op2 && eq_exp e1 e2 + | CaseE (op1, as1, e1), CaseE (op2, as2, e2) -> + eq_mixop op1 op2 && eq_list eq_arg as1 as2 && eq_exp e1 e2 | CvtE (e1, nt11, nt12), CvtE (e2, nt21, nt22) -> eq_exp e1 e2 && nt11 = nt21 && nt12 = nt22 | SubE (e1, t11, t12), SubE (e2, t21, t22) -> eq_exp e1 e2 && eq_typ t11 t21 && eq_typ t12 t22 | _, _ -> e1.it = e2.it -and eq_expfield (atom1, e1) (atom2, e2) = - eq_atom atom1 atom2 && eq_exp e1 e2 +and eq_expfield (atom1, as1, e1) (atom2, as2, e2) = + eq_atom atom1 atom2 && eq_list eq_arg as1 as2 && eq_exp e1 e2 and eq_path p1 p2 = match p1.it, p2.it with @@ -110,7 +113,8 @@ and eq_path p1 p2 = | IdxP (p11, e1), IdxP (p21, e2) -> eq_path p11 p21 && eq_exp e1 e2 | SliceP (p11, e11, e12), SliceP (p21, e21, e22) -> eq_path p11 p21 && eq_exp e11 e21 && eq_exp e12 e22 - | DotP (p11, atom1), DotP (p21, atom2) -> eq_path p11 p21 && eq_atom atom1 atom2 + | DotP (p11, atom1, as1), DotP (p21, atom2, as2) -> + eq_path p11 p21 && eq_atom atom1 atom2 && eq_list eq_arg as1 as2 | _, _ -> p1.it = p2.it and eq_iterexp (iter1, xes1) (iter2, xes2) = @@ -121,8 +125,8 @@ and eq_iterexp (iter1, xes1) (iter2, xes2) = and eq_sym g1 g2 = match g1.it, g2.it with - | VarG (id1, args1), VarG (id2, args2) -> - eq_id id1 id2 && eq_list eq_arg args1 args2 + | VarG (x1, args1), VarG (x2, args2) -> + eq_id x1 x2 && eq_list eq_arg args1 args2 | SeqG gs1, SeqG gs2 | AltG gs1, AltG gs2 -> eq_list eq_sym gs1 gs2 | RangeG (g11, g12), RangeG (g21, g22) -> eq_sym g11 g21 && eq_sym g12 g22 @@ -136,13 +140,13 @@ and eq_sym g1 g2 = and eq_prem prem1 prem2 = match prem1.it, prem2.it with - | RulePr (id1, op1, e1), RulePr (id2, op2, e2) -> - eq_id id1 id2 && eq_mixop op1 op2 && eq_exp e1 e2 + | RulePr (x1, op1, e1), RulePr (x2, op2, e2) -> + eq_id x1 x2 && eq_mixop op1 op2 && eq_exp e1 e2 | IfPr e1, IfPr e2 -> eq_exp e1 e2 | IterPr (prem1, e1), IterPr (prem2, e2) -> eq_prem prem1 prem2 && eq_iterexp e1 e2 - | LetPr (e1, e1', ids1), LetPr (e2, e2', ids2) -> - eq_exp e1 e2 && eq_exp e1' e2' && ids1 = ids2 + | LetPr (e1, e1', xs1), LetPr (e2, e2', xs2) -> + eq_exp e1 e2 && eq_exp e1' e2' && xs1 = xs2 | _, _ -> prem1.it = prem2.it @@ -152,6 +156,6 @@ and eq_arg a1 a2 = match a1.it, a2.it with | ExpA e1, ExpA e2 -> eq_exp e1 e2 | TypA t1, TypA t2 -> eq_typ t1 t2 - | DefA id1, DefA id2 -> eq_id id1 id2 + | DefA x1, DefA x2 -> eq_id x1 x2 | GramA g1, GramA g2 -> eq_sym g1 g2 | _, _ -> false diff --git a/spectec/src/il/eval.ml b/spectec/src/il/eval.ml index 2f374036ed..04f332123c 100644 --- a/spectec/src/il/eval.ml +++ b/spectec/src/il/eval.ml @@ -112,7 +112,7 @@ and reduce_typ_app' env id args at = function if !assume_coherent_matches then None else Error.error at "validation" ("undefined instance of partial type `" ^ id.it ^ "`") - | Some (ps, {it = InstD (_binds, args', dt); _}::insts') -> + | Some (ps, {it = InstD (_ps, args', dt); _}::insts') -> Debug.(log "il.reduce_typ_app'" (fun _ -> fmt "%s(%s) =: %s(%s)" id.it (il_args args) id.it (il_args args')) (fun r -> fmt "%s" (opt (Fun.const "!") r)) @@ -139,8 +139,8 @@ and is_normal_exp e = | BoolE _ | NumE _ | TextE _ -> true | ListE es | TupE es -> List.for_all is_normal_exp es | OptE None -> true - | OptE (Some e) | CaseE (_, e) | SubE (e, _, _) -> is_normal_exp e - | StrE efs -> List.for_all (fun (_, e) -> is_normal_exp e) efs + | OptE (Some e) | CaseE (_, _, e) | SubE (e, _, _) -> is_normal_exp e + | StrE efs -> List.for_all (fun (_, _, e) -> is_normal_exp e) efs | _ -> false and reduce_exp env e : exp = @@ -224,11 +224,13 @@ and reduce_exp env e : exp = else ExtE (e', p', e2') $> e' ) | StrE efs -> StrE (List.map (reduce_expfield env) efs) $> e - | DotE (e1, atom) -> + | DotE (e1, atom, as_) -> let e1' = reduce_exp env e1 in (match e1'.it with - | StrE efs -> snd (List.find (fun (atomN, _) -> Atom.eq atomN atom) efs) - | _ -> DotE (e1', atom) $> e + | StrE efs -> + let _, _, e = List.find (fun (atomN, _, _) -> Atom.eq atomN atom) efs in + e + | _ -> DotE (e1', atom, List.map (reduce_arg env) as_) $> e ) | CompE (e1, e2) -> (* TODO(4, rossberg): avoid overlap with CatE? *) @@ -239,10 +241,16 @@ and reduce_exp env e : exp = | OptE None, OptE _ -> e2'.it | OptE _, OptE None -> e1'.it | StrE efs1, StrE efs2 -> - let merge (atom1, e1) (atom2, e2) = + let merge (atom1, as1, e1) (atom2, as2, e2) = assert (Atom.eq atom1 atom2); - (atom1, reduce_exp env (CompE (e1, e2) $> e1)) - in StrE (List.map2 merge efs1 efs2) + let s = Option.get (match_list match_arg env Subst.empty as1 as2) in + (atom1, as1, reduce_exp env (CompE (e1, Subst.subst_exp s e2) $> e1)) + in + (try + StrE (List.map2 merge efs1 efs2) + with Irred | Failure _ -> + CompE (e1', e2') + ) | _ -> CompE (e1', e2') ) $> e | MemE (e1, e2) -> @@ -264,13 +272,13 @@ and reduce_exp env e : exp = | _ -> LenE e1' ) $> e | TupE es -> TupE (List.map (reduce_exp env) es) $> e - | CallE (id, args) -> - let args' = List.map (reduce_arg env) args in + | CallE (id, as_) -> + let as' = List.map (reduce_arg env) as_ in let _ps, _t, clauses = Env.find_def env id in (* Allow for uninterpreted functions *) - if not !assume_coherent_matches && clauses = [] then CallE (id, args') $> e else - (match reduce_exp_call env id args' e.at clauses with - | None -> CallE (id, args') $> e + if not !assume_coherent_matches && clauses = [] then CallE (id, as') $> e else + (match reduce_exp_call env id as' e.at clauses with + | None -> CallE (id, as') $> e | Some e -> e ) | IterE (e1, iterexp) -> @@ -324,11 +332,11 @@ and reduce_exp env e : exp = | TupE es -> List.nth es i | _ -> ProjE (e1', i) $> e ) - | UncaseE (e1, mixop) -> + | UncaseE (e1, mixop, as_) -> let e1' = reduce_exp env e1 in (match e1'.it with - | CaseE (_, e11') -> e11' - | _ -> UncaseE (e1', mixop) $> e + | CaseE (_, _, e11') -> e11' + | _ -> UncaseE (e1', mixop, List.map (reduce_arg env) as_) $> e ) | OptE eo -> OptE (Option.map (reduce_exp env) eo) $> e | TheE e1 -> @@ -354,7 +362,8 @@ and reduce_exp env e : exp = | OptE _, OptE None -> e1'.it | _ -> CatE (e1', e2') ) $> e - | CaseE (op, e1) -> CaseE (op, reduce_exp env e1) $> e + | CaseE (op, as_, e1) -> + CaseE (op, List.map (reduce_arg env) as_, reduce_exp env e1) $> e | CvtE (e1, _nt1, nt2) -> let e1' = reduce_exp env e1 in (match e1'.it with @@ -375,19 +384,17 @@ and reduce_exp env e : exp = reduce_exp env (SubE (e11', t11', t2') $> e) | TupE es' -> (match t1.it, t2.it with - | TupT ets1, TupT ets2 -> + | TupT xts1, TupT xts2 -> (match - List.fold_left2 (fun opt eI ((e1I, t1I), (e2I, t2I)) -> + List.fold_left2 (fun opt eI ((x1I, t1I), (x2I, t2I)) -> let* (s1, s2, res') = opt in let t1I' = Subst.subst_typ s1 t1I in let t2I' = Subst.subst_typ s2 t2I in - let e1I' = reduce_exp env (Subst.subst_exp s1 e1I) in - let e2I' = reduce_exp env (Subst.subst_exp s2 e2I) in - let* s1' = try match_exp env s1 eI e1I' with Irred -> None in - let* s2' = try match_exp env s2 eI e2I' with Irred -> None in + let s1' = Subst.add_varid s1 x1I eI in + let s2' = Subst.add_varid s2 x2I eI in let eI' = reduce_exp env (SubE (eI, t1I', t2I') $$ eI.at % t2I') in Some (s1', s2', eI'::res') - ) (Some (Subst.empty, Subst.empty, [])) es' (List.combine ets1 ets2) + ) (Some (Subst.empty, Subst.empty, [])) es' (List.combine xts1 xts2) with | Some (_, _, res') -> TupE (List.rev res') $> e | None -> SubE (e1', t1', t2') $> e @@ -406,7 +413,8 @@ and reduce_iter env = function and reduce_iterexp env (iter, xes) = (reduce_iter env iter, List.map (fun (id, e) -> id, reduce_exp env e) xes) -and reduce_expfield env (atom, e) : expfield = (atom, reduce_exp env e) +and reduce_expfield env (atom, as_, e) : expfield = + (atom, List.map (reduce_arg env) as_, reduce_exp env e) and reduce_path env e p f = match p.it with @@ -435,14 +443,17 @@ and reduce_path env e p f = f e' (SliceP (p1', e1', e2') $> p) in reduce_path env e p1 f' - | DotP (p1, atom) -> + | DotP (p1, atom, as_) -> let f' e' p1' = match e'.it with | StrE efs -> - StrE (List.map (fun (atomI, eI) -> - if Eq.eq_atom atomI atom then (atomI, f eI p1') else (atomI, eI)) efs) $> e' + StrE (List.map (fun (atomI, asI, eI) -> + if Eq.eq_atom atomI atom + then (atomI, asI, f eI p1') + else (atomI, asI, eI) + ) efs) $> e' | _ -> - f e' (DotP (p1', atom) $> p) + f e' (DotP (p1', atom, as_) $> p) in reduce_path env e p1 f' @@ -462,7 +473,7 @@ and reduce_exp_call env id args at = function if !assume_coherent_matches then None else Error.error at "validation" ("undefined call to partial function `$" ^ id.it ^ "`") - | {it = DefD (_binds, args', e, prems); _}::clauses' -> + | {it = DefD (_ps, args', e, prems); _}::clauses' -> Debug.(log "il.reduce_exp_call" (fun _ -> fmt "$%s(%s) =: $%s(%s)" id.it (il_args args) id.it (il_args args')) (function None -> "-" | Some e' -> fmt "%s" (il_exp e')) @@ -555,8 +566,8 @@ and match_typ env s t1 t2 : subst option = let* s' = match_typ env s t11 t21 in match_iter env s' iter1 iter2 | _, _ -> None -and match_typbind env s (e1, t1) (e2, t2) = - let* s' = match_exp env s e1 (Subst.subst_exp s e2) in +and match_typbind env s (x1, t1) (x2, t2) = + let s' = Subst.add_varid s x2 (VarE x1 $$ x1.at % t1) in let* s'' = match_typ env s' t1 (Subst.subst_typ s t2) in Some s'' @@ -635,14 +646,15 @@ and match_exp' env s e1 e2 : subst option = match_exp' env s e11 e21 | LenE e11, LenE e21 -> match_exp' env s e11 e21 *) - | CaseE (op1, e11), CaseE (op2, e21) when Eq.eq_mixop op1 op2 -> - match_exp' env s e11 e21 + | CaseE (op1, as1, e11), CaseE (op2, as2, e21) when Eq.eq_mixop op1 op2 -> + let* s' = match_list match_arg env s as1 as2 in + match_exp' env s' e11 e21 (* | CallE (id1, args1), CallE (id2, args2) when id1.it = id2.it -> match_list match_arg env s args1 args2 *) - | _, UncaseE (e21, mixop) -> - match_exp' env s (CaseE (mixop, e1) $$ e1.at % e21.note) e21 + | _, UncaseE (e21, mixop, as_) -> + match_exp' env s (CaseE (mixop, as_, e1) $$ e1.at % e21.note) e21 | _, ProjE (e21, 0) -> (* only valid on unary tuples! *) match_exp' env s (TupE [e1] $$ e1.at % e21.note) e21 (* @@ -718,7 +730,7 @@ and match_exp' env s e1 e2 : subst option = | BoolE _, BoolT | NumE _, NumT _ | TextE _, TextT -> true - | CaseE (op, _), VarT _ -> + | CaseE (op, _, _), VarT _ -> (match (reduce_typdef env t21).it with | VariantT tcs -> (* Assumes that we only have shallow subtyping. *) @@ -736,27 +748,28 @@ and match_exp' env s e1 e2 : subst option = | _, _ -> raise Irred -and match_expfield env s (atom1, e1) (atom2, e2) = +and match_expfield env s (atom1, as1, e1) (atom2, as2, e2) = if not (Eq.eq_atom atom1 atom2) then None else - match_exp' env s e1 e2 + let* s' = match_list match_arg env s as1 as2 in + match_exp' env s' e1 (Subst.subst_exp s e2) and match_iterexp env s (iter1, _ids1) (iter2, _ids2) = match_iter env s iter1 iter2 and eta_tup_exp env e : exp list option = - let ets = + let xts = match (reduce_typ env e.note).it with - | TupT ets -> ets + | TupT xts -> xts | _ -> assert false in let* es' = - List.fold_left (fun opt (eI, tI) -> + List.fold_left (fun opt (xI, tI) -> let* res', i, s = opt in let eI' = ProjE (e, i) $$ e.at % Subst.subst_typ s tI in - let* s' = try match_exp env s eI' eI with Irred -> None in + let s' = Subst.add_varid s xI eI' in Some (eI'::res', i + 1, s') - ) (Some ([], 0, Subst.empty)) ets |> Option.map fst3 |> Option.map List.rev + ) (Some ([], 0, Subst.empty)) xts |> Option.map fst3 |> Option.map List.rev in Some es' and eta_iter_exp env e : exp * iterexp = @@ -824,16 +837,12 @@ and equiv_typ env t1 t2 = | _, _ -> t1.it = t2.it -and equiv_tup env s ets1 ets2 = - match ets1, ets2 with - | (e1, t1)::ets1', (e2, t2)::ets2' -> +and equiv_tup env s xts1 xts2 = + match xts1, xts2 with + | (x1, t1)::xts1', (x2, t2)::xts2' -> equiv_typ env t1 (Subst.subst_typ s t2) && - (match match_exp env s e1 e2 with - | None -> false - | Some s' -> equiv_tup env s' ets1' ets2' - | exception Irred -> false - ) - | _, _ -> ets1 = ets2 + equiv_tup env (Subst.add_varid s x2 (VarE x1 $$ x1.at % t1)) xts1' xts2' + | _, _ -> xts1 = xts2 and equiv_iter env iter1 iter2 = match iter1, iter2 with @@ -896,8 +905,8 @@ and equiv_params env ps1 ps2 = | DefP (id1, ps1, t1), DefP (id2, ps2, t2) -> if not (equiv_functyp env (ps1, t1) (ps2, t2)) then None else Some (Subst.add_defid s id2 id1) - | GramP (id1, t1), GramP (id2, t2) -> - if not (equiv_typ env t1 t2) then None else + | GramP (id1, ps1, t1), GramP (id2, ps2, t2) -> + if not (equiv_functyp env (ps1, t1) (ps2, t2)) then None else Some (Subst.add_gramid s id2 (VarG (id1, []) $ p1.at)) | _, _ -> assert false ) (Some Subst.empty) ps1 ps2 @@ -921,16 +930,16 @@ and sub_typ env t1 t2 = | VarT _, VarT _ -> (match (reduce_typdef env t1').it, (reduce_typdef env t2').it with | StructT tfs1, StructT tfs2 -> - List.for_all (fun (atom, (_binds2, t2, prems2), _) -> + List.for_all (fun (atom, (_ps2, t2, prems2), _) -> match find_field tfs1 atom with - | Some (_binds1, t1, prems1) -> + | Some (_ps1, t1, prems1) -> sub_typ env t1 t2 && sub_prems env prems1 prems2 | None -> false ) tfs2 | VariantT tcs1, VariantT tcs2 -> - List.for_all (fun (mixop, (_binds1, t1, prems1), _) -> + List.for_all (fun (mixop, (_ps1, t1, prems1), _) -> match find_case tcs2 mixop with - | Some (_binds2, t2, prems2) -> + | Some (_ps2, t2, prems2) -> sub_typ env t1 t2 && sub_prems env prems1 prems2 | None -> false ) tcs1 @@ -939,16 +948,12 @@ and sub_typ env t1 t2 = | _, _ -> false -and sub_tup env s ets1 ets2 = - match ets1, ets2 with - | (e1, t1)::ets1', (e2, t2)::ets2' -> +and sub_tup env s xts1 xts2 = + match xts1, xts2 with + | (x1, t1)::xts1', (x2, t2)::xts2' -> sub_typ env t1 (Subst.subst_typ s t2) && - (match match_exp env s e1 e2 with - | None -> false - | Some s' -> sub_tup env s' ets1' ets2' - | exception Irred -> false - ) - | _, _ -> ets1 = ets2 + sub_tup env (Subst.add_varid s x2 (VarE x1 $$ x1.at % t1)) xts1' xts2' + | _, _ -> xts1 = xts2 and find_field tfs atom = @@ -969,16 +974,16 @@ and disj_typ env t1 t2 = (match (reduce_typdef env t1).it, (reduce_typdef env t2).it with | StructT tfs1, StructT tfs2 -> unordered (atoms tfs1) (atoms tfs2) || - List.exists (fun (atom, (_binds2, t2, _prems2), _) -> + List.exists (fun (atom, (_ps2, t2, _prems2), _) -> match find_field tfs1 atom with - | Some (_binds1, t1, _prems1) -> disj_typ env t1 t2 + | Some (_ps1, t1, _prems1) -> disj_typ env t1 t2 | None -> true ) tfs2 | VariantT tcs1, VariantT tcs2 -> Set.disjoint (mixops tcs1) (mixops tcs2) || - List.exists (fun (atom, (_binds1, t1, _prems1), _) -> + List.exists (fun (atom, (_ps1, t1, _prems1), _) -> match find_case tcs2 atom with - | Some (_binds2, t2, _prems2) -> disj_typ env t1 t2 + | Some (_ps2, t2, _prems2) -> disj_typ env t1 t2 | None -> false ) tcs1 | _, _ -> true @@ -998,13 +1003,9 @@ and disj_typ env t1 t2 = and atoms xs = Set.of_list (List.map Print.string_of_atom (List.map fst3 xs)) and mixops xs = Set.of_list (List.map Print.string_of_mixop (List.map fst3 xs)) -and disj_tup env s ets1 ets2 = - match ets1, ets2 with - | (e1, t1)::ets1', (e2, t2)::ets2' -> +and disj_tup env s xts1 xts2 = + match xts1, xts2 with + | (x1, t1)::xts1', (x2, t2)::xts2' -> disj_typ env t1 (Subst.subst_typ s t2) || - (match match_exp env s e1 e2 with - | None -> false - | Some s' -> disj_tup env s' ets1' ets2' - | exception Irred -> false - ) - | _, _ -> ets1 = ets2 + disj_tup env (Subst.add_varid s x2 (VarE x1 $$ x1.at % t1)) xts1' xts2' + | _, _ -> xts1 = xts2 diff --git a/spectec/src/il/free.ml b/spectec/src/il/free.ml index bce500e9c6..8627bf6aa2 100644 --- a/spectec/src/il/free.ml +++ b/spectec/src/il/free.ml @@ -62,17 +62,17 @@ let rec free_list_dep free_x bound_x = function (* Identifiers *) -let free_typid id = {empty with typid = Set.singleton id.it} -let free_relid id = {empty with relid = Set.singleton id.it} -let free_varid id = {empty with varid = Set.singleton id.it} -let free_defid id = {empty with defid = Set.singleton id.it} -let free_gramid id = {empty with gramid = Set.singleton id.it} +let free_typid x = {empty with typid = Set.singleton x.it} +let free_relid x = {empty with relid = Set.singleton x.it} +let free_varid x = {empty with varid = Set.singleton x.it} +let free_defid x = {empty with defid = Set.singleton x.it} +let free_gramid x = {empty with gramid = Set.singleton x.it} -let bound_typid id = if id.it = "_" then empty else free_typid id -let bound_relid id = if id.it = "_" then empty else free_relid id -let bound_varid id = if id.it = "_" then empty else free_varid id -let bound_defid id = if id.it = "_" then empty else free_defid id -let bound_gramid id = if id.it = "_" then empty else free_gramid id +let bound_typid x = if x.it = "_" then empty else free_typid x +let bound_relid x = if x.it = "_" then empty else free_relid x +let bound_varid x = if x.it = "_" then empty else free_varid x +let bound_defid x = if x.it = "_" then empty else free_defid x +let bound_gramid x = if x.it = "_" then empty else free_gramid x (* Iterations *) @@ -85,14 +85,14 @@ let rec free_iter iter = and bound_iter iter = match iter with | Opt | List | List1 -> empty - | ListN (_, id_opt) -> free_opt bound_varid id_opt + | ListN (_, xo) -> free_opt bound_varid xo (* Types *) and free_typ t = match t.it with - | VarT (id, as_) -> free_typid id + free_args as_ + | VarT (x, as_) -> free_typid x + free_args as_ | BoolT | NumT _ | TextT -> empty | TupT ets -> free_typbinds ets | IterT (t1, iter) -> free_typ t1 + free_iter iter @@ -103,8 +103,8 @@ and bound_typ t = | TupT ets -> bound_list bound_typbind ets | IterT (t1, _iter) -> bound_typ t1 -and free_typbind (_e, t) = free_typ t -and bound_typbind (e, _t) = free_exp e +and free_typbind (_x, t) = free_typ t +and bound_typbind (x, _t) = free_varid x and free_typbinds xts = free_list_dep free_typbind bound_typbind xts and free_deftyp dt = @@ -113,19 +113,19 @@ and free_deftyp dt = | StructT tfs -> free_list free_typfield tfs | VariantT tcs -> free_list free_typcase tcs -and free_typfield (_, (bs, t, prems), _) = - free_binds bs + (free_typ t + (free_prems prems - bound_typ t) - bound_binds bs) -and free_typcase (_, (bs, t, prems), _) = - free_binds bs + (free_typ t + (free_prems prems - bound_typ t) - bound_binds bs) +and free_typfield (_, (ps, t, prems), _) = + free_params ps + (free_typ t + (free_prems prems - bound_typ t) - bound_params ps) +and free_typcase (_, (ps, t, prems), _) = + free_params ps + (free_typ t + (free_prems prems - bound_typ t) - bound_params ps) (* Expressions *) and free_exp e = match e.it with - | VarE id -> free_varid id + | VarE x -> free_varid x | BoolE _ | NumE _ | TextE _ -> empty - | UnE (_, _, e1) | LiftE e1 | LenE e1 | ProjE (e1, _) | TheE e1 | DotE (e1, _) -> free_exp e1 + | UnE (_, _, e1) | LiftE e1 | LenE e1 | ProjE (e1, _) | TheE e1 -> free_exp e1 | BinE (_, _, e1, e2) | CmpE (_, _, e1, e2) | IdxE (e1, e2) | CompE (e1, e2) | MemE (e1, e2) | CatE (e1, e2) -> free_exp e1 + free_exp e2 | SliceE (e1, e2, e3) -> free_list free_exp [e1; e2; e3] @@ -133,20 +133,21 @@ and free_exp e = | TupE es | ListE es -> free_list free_exp es | UpdE (e1, p, e2) | ExtE (e1, p, e2) -> free_exp e1 + free_path p + free_exp e2 | StrE efs -> free_list free_expfield efs - | CaseE (_, e1) | UncaseE (e1, _) -> free_exp e1 - | CallE (id, as1) -> free_defid id + free_args as1 + | DotE (e1, _, as_) -> free_exp e1 + free_args as_ + | CaseE (_, as_, e1) | UncaseE (e1, _, as_) -> free_args as_ + free_exp e1 + | CallE (x, as1) -> free_defid x + free_args as1 | IterE (e1, iter) -> (free_exp e1 - bound_iterexp iter) + free_iterexp iter | CvtE (e1, _nt1, _nt2) -> free_exp e1 | SubE (e1, t1, t2) -> free_exp e1 + free_typ t1 + free_typ t2 -and free_expfield (_, e) = free_exp e +and free_expfield (_, as_, e) = free_args as_ + free_exp e and free_path p = match p.it with | RootP -> empty | IdxP (p1, e) -> free_path p1 + free_exp e | SliceP (p1, e1, e2) -> free_path p1 + free_exp e1 + free_exp e2 - | DotP (p1, _atom) -> free_path p1 + | DotP (p1, _atom, as_) -> free_path p1 + free_args as_ and free_iterexp (iter, xes) = free_iter iter + free_list (free_pair free_varid free_exp) xes @@ -159,7 +160,7 @@ and bound_iterexp (iter, xes) = and free_sym g = match g.it with - | VarG (id, as_) -> free_gramid id + free_args as_ + | VarG (x, as_) -> free_gramid x + free_args as_ | NumG _ | TextG _ | EpsG -> empty | SeqG gs | AltG gs -> free_list free_sym gs | RangeG (g1, g2) -> free_sym g1 + free_sym g2 @@ -171,7 +172,7 @@ and free_sym g = and free_prem prem = match prem.it with - | RulePr (id, _op, e) -> free_relid id + free_exp e + | RulePr (x, _op, e) -> free_relid x + free_exp e | IfPr e -> free_exp e | LetPr (e1, e2, _) -> free_exp e1 + free_exp e2 | ElsePr -> empty @@ -186,88 +187,71 @@ and free_arg a = match a.it with | ExpA e -> free_exp e | TypA t -> free_typ t - | DefA id -> free_defid id + | DefA x -> free_defid x | GramA g -> free_sym g -and free_bind b = - match b.it with - | ExpB (_, t) -> free_typ t - | TypB _ -> empty - | DefB (_, ps, t) -> free_params ps + (free_typ t - bound_params ps) - | GramB (_, ps, t) -> free_params ps + (free_typ t - bound_params ps) - and free_param p = match p.it with | ExpP (_, t) -> free_typ t | TypP _ -> empty | DefP (_, ps, t) -> free_params ps + (free_typ t - bound_params ps) - | GramP (_, t) -> free_typ t - -and bound_bind b = - match b.it with - | ExpB (id, _) -> bound_varid id - | TypB id -> bound_typid id - | DefB (id, _, _) -> bound_defid id - | GramB (id, _, _) -> bound_gramid id + | GramP (_, ps, t) -> free_params ps + (free_typ t - bound_params ps) and bound_param p = match p.it with - | ExpP (id, _) -> bound_varid id - | TypP id -> bound_typid id - | DefP (id, _, _) -> bound_defid id - | GramP (id, _) -> bound_gramid id + | ExpP (x, _) -> bound_varid x + | TypP x -> bound_typid x + | DefP (x, _, _) -> bound_defid x + | GramP (x, _, _) -> bound_gramid x and free_args as_ = free_list free_arg as_ -and free_binds bs = free_list_dep free_bind bound_bind bs and free_params ps = free_list_dep free_param bound_param ps - -and bound_binds bs = free_list bound_bind bs and bound_params ps = free_list bound_param ps let free_inst inst = match inst.it with - | InstD (bs, as_, dt) -> - free_binds bs + (free_args as_ + free_deftyp dt - bound_binds bs) + | InstD (ps, as_, dt) -> + free_params ps + (free_args as_ + free_deftyp dt - bound_params ps) let free_rule rule = match rule.it with - | RuleD (_id, bs, _op, e, prems) -> - free_binds bs + (free_exp e + free_prems prems - bound_binds bs) + | RuleD (_x, ps, _op, e, prems) -> + free_params ps + (free_exp e + free_prems prems - bound_params ps) let free_clause clause = match clause.it with - | DefD (bs, as_, e, prems) -> - free_binds bs + (free_args as_ + free_exp e + free_prems prems - bound_binds bs) + | DefD (ps, as_, e, prems) -> + free_params ps + (free_args as_ + free_exp e + free_prems prems - bound_params ps) let free_prod prod = match prod.it with - | ProdD (bs, g, e, prems) -> - free_binds bs + (free_sym g + free_exp e + free_prems prems - bound_binds bs) + | ProdD (ps, g, e, prems) -> + free_params ps + (free_sym g + free_exp e + free_prems prems - bound_params ps) let free_hintdef hd = match hd.it with - | TypH (id, _) -> free_typid id - | RelH (id, _) -> free_relid id - | DecH (id, _) -> free_defid id - | GramH (id, _) -> free_gramid id + | TypH (x, _) -> free_typid x + | RelH (x, _) -> free_relid x + | DecH (x, _) -> free_defid x + | GramH (x, _) -> free_gramid x let rec free_def d = match d.it with - | TypD (_id, ps, insts) -> free_params ps + free_list free_inst insts - | RelD (_id, _mixop, t, rules) -> free_typ t + free_list free_rule rules - | DecD (_id, ps, t, clauses) -> + | TypD (_x, ps, insts) -> free_params ps + free_list free_inst insts + | RelD (_x, _mixop, t, rules) -> free_typ t + free_list free_rule rules + | DecD (_x, ps, t, clauses) -> free_params ps + (free_typ t - bound_params ps) + free_list free_clause clauses - | GramD (_id, ps, t, prods) -> + | GramD (_x, ps, t, prods) -> free_params ps + (free_typ t + free_list free_prod prods - bound_params ps) | RecD ds -> free_list free_def ds | HintD hd -> free_hintdef hd let rec bound_def d = match d.it with - | TypD (id, _, _) -> bound_typid id - | RelD (id, _, _, _) -> bound_relid id - | DecD (id, _, _, _) -> bound_defid id - | GramD (id, _, _, _) -> bound_gramid id + | TypD (x, _, _) -> bound_typid x + | RelD (x, _, _, _) -> bound_relid x + | DecD (x, _, _, _) -> bound_defid x + | GramD (x, _, _, _) -> bound_gramid x | RecD ds -> free_list bound_def ds | HintD _ -> empty diff --git a/spectec/src/il/free.mli b/spectec/src/il/free.mli index ba5d3aaacb..71e9c1eae4 100644 --- a/spectec/src/il/free.mli +++ b/spectec/src/il/free.mli @@ -29,7 +29,6 @@ val free_prod : prod -> sets val free_deftyp : deftyp -> sets val free_param : param -> sets -val bound_typbind : exp * typ -> sets -val bound_bind : bind -> sets +val bound_typbind : id * typ -> sets val bound_param : param -> sets val bound_def : def -> sets diff --git a/spectec/src/il/fresh.ml b/spectec/src/il/fresh.ml new file mode 100644 index 0000000000..918b6bad03 --- /dev/null +++ b/spectec/src/il/fresh.ml @@ -0,0 +1,30 @@ +open Util.Source + +module Map = Map.Make(String) + +let typids = ref Map.empty +let varids = ref Map.empty +let defids = ref Map.empty +let gramids = ref Map.empty + +let fresh_id map s = + if s = "_" then s else + let i = + match Map.find_opt s !map with + | None -> 1 + | Some i -> i + 1 + in + map := Map.add s i !map; + s ^ "#" ^ string_of_int i + +let refresh_id map x = fresh_id map x.it $ x.at + +let fresh_typid = fresh_id typids +let fresh_varid = fresh_id varids +let fresh_defid = fresh_id defids +let fresh_gramid = fresh_id gramids + +let refresh_typid = refresh_id typids +let refresh_varid = refresh_id varids +let refresh_defid = refresh_id defids +let refresh_gramid = refresh_id gramids diff --git a/spectec/src/il/fresh.mli b/spectec/src/il/fresh.mli new file mode 100644 index 0000000000..dfa1edffaf --- /dev/null +++ b/spectec/src/il/fresh.mli @@ -0,0 +1,11 @@ +open Ast + +val fresh_typid : string -> string +val fresh_varid : string -> string +val fresh_defid : string -> string +val fresh_gramid : string -> string + +val refresh_typid : id -> id +val refresh_varid : id -> id +val refresh_defid : id -> id +val refresh_gramid : id -> id diff --git a/spectec/src/il/iter.ml b/spectec/src/il/iter.ml index 7db263fbcf..12e79e6880 100644 --- a/spectec/src/il/iter.ml +++ b/spectec/src/il/iter.ml @@ -100,7 +100,7 @@ and typ t = | VarT (x, as_) -> typid x; args as_ | BoolT | TextT -> () | NumT nt -> numtyp nt - | TupT ets -> list (pair exp typ) ets + | TupT ets -> list (pair varid typ) ets | IterT (t1, it) -> typ t1; iter it and deftyp t = @@ -110,8 +110,8 @@ and deftyp t = | StructT tfs -> list typfield tfs | VariantT tcs -> list typcase tcs -and typfield (at, (bs, t, prs), hs) = atom at; binds bs; typ t; prems prs; hints hs -and typcase (op, (bs, t, prs), hs) = mixop op; binds bs; typ t; prems prs; hints hs +and typfield (at, (ps, t, prs), hs) = atom at; params ps; typ t; prems prs; hints hs +and typcase (op, (ps, t, prs), hs) = mixop op; params ps; typ t; prems prs; hints hs (* Expressions *) @@ -128,11 +128,11 @@ and exp e = | CmpE (op, ot, e1, e2) -> cmpop op; optyp ot; exp e1; exp e2 | TupE es | ListE es -> list exp es | ProjE (e1, _) | TheE e1 | LiftE e1 | LenE e1 -> exp e1 - | CaseE (op, e1) -> mixop op; exp e1 - | UncaseE (e1, op) -> exp e1; mixop op + | CaseE (op, as_, e1) -> mixop op; args as_; exp e1 + | UncaseE (e1, op, as_) -> exp e1; mixop op; args as_ | OptE eo -> opt exp eo | StrE efs -> list expfield efs - | DotE (e1, at) -> exp e1; atom at + | DotE (e1, at, as_) -> exp e1; atom at; args as_ | CompE (e1, e2) | MemE (e1, e2) | CatE (e1, e2) | IdxE (e1, e2) -> exp e1; exp e2 | SliceE (e1, e2, e3) -> exp e1; exp e2; exp e3 | UpdE (e1, p, e2) | ExtE (e1, p, e2) -> exp e1; path p; exp e2 @@ -141,7 +141,7 @@ and exp e = | CvtE (e1, nt1, nt2) -> exp e1; numtyp nt1; numtyp nt2 | SubE (e1, t1, t2) -> exp e1; typ t1; typ t2 -and expfield (at, e) = atom at; exp e +and expfield (at, as_, e) = atom at; args as_; exp e and path p = visit_path p; @@ -149,7 +149,7 @@ and path p = | RootP -> () | IdxP (p1, e) -> path p1; exp e | SliceP (p1, e1, e2) -> path p1; exp e1; exp e2 - | DotP (p1, at) -> path p1; atom at + | DotP (p1, at, as_) -> path p1; atom at; args as_ and iterexp (it, xes) = iter it; list (pair varid exp) xes @@ -192,22 +192,14 @@ and arg a = | DefA x -> defid x | GramA g -> sym g -and bind b = - match b.it with - | ExpB (id, t) -> varid id; typ t - | TypB id -> typid id - | DefB (id, ps, t) -> defid id; params ps; typ t - | GramB (id, ps, t) -> gramid id; params ps; typ t - and param p = match p.it with | ExpP (x, t) -> varid x; typ t | TypP x -> typid x | DefP (x, ps, t) -> defid x; params ps; typ t - | GramP (x, t) -> gramid x; typ t + | GramP (x, ps, t) -> gramid x; params ps; typ t and args as_ = list arg as_ -and binds bs = list bind bs and params ps = list param ps let hintdef d = @@ -219,19 +211,19 @@ let hintdef d = let inst i = match i.it with - | InstD (bs, as_, dt) -> binds bs; args as_; deftyp dt + | InstD (ps, as_, dt) -> params ps; args as_; deftyp dt let rule r = match r.it with - | RuleD (x, bs, op, e, prs) -> ruleid x; binds bs; mixop op; exp e; prems prs + | RuleD (x, ps, op, e, prs) -> ruleid x; params ps; mixop op; exp e; prems prs let clause c = match c.it with - | DefD (bs, as_, e, prs) -> binds bs; args as_; exp e; prems prs + | DefD (ps, as_, e, prs) -> params ps; args as_; exp e; prems prs let prod p = match p.it with - | ProdD (bs, g, e, prs) -> binds bs; sym g; exp e; prems prs + | ProdD (ps, g, e, prs) -> params ps; sym g; exp e; prems prs let rec def d = visit_def d; diff --git a/spectec/src/il/print.ml b/spectec/src/il/print.ml index 3fb92c4a6e..41833f98ab 100644 --- a/spectec/src/il/print.ml +++ b/spectec/src/il/print.ml @@ -20,10 +20,10 @@ let is_alphanum = function | '_' | '.' | '\'' -> true | _ -> false -let string_of_id id = - if String.for_all is_alphanum id.it - then id.it - else "`" ^ id.it ^ "`" +let string_of_id x = + if String.for_all is_alphanum x.it + then x.it + else "`" ^ x.it ^ "`" (* Operators *) @@ -52,23 +52,22 @@ let rec string_of_iter iter = | List -> "*" | List1 -> "+" | ListN (e, None) -> "^" ^ string_of_exp e - | ListN (e, Some id) -> - "^(" ^ string_of_id id ^ "<" ^ string_of_exp e ^ ")" + | ListN (e, Some x) -> "^(" ^ string_of_id x ^ "<" ^ string_of_exp e ^ ")" and string_of_numtyp = Num.string_of_typ and string_of_typ t = match t.it with - | VarT (id, as1) -> string_of_id id ^ string_of_args as1 + | VarT (x, as1) -> string_of_id x ^ string_of_args as1 | BoolT -> "bool" | NumT t -> string_of_numtyp t | TextT -> "text" - | TupT ets -> "(" ^ concat ", " (List.map string_of_typbind ets) ^ ")" + | TupT xts -> "(" ^ concat ", " (List.map string_of_typbind xts) ^ ")" | IterT (t1, iter) -> string_of_typ t1 ^ string_of_iter iter and string_of_typ_name t = match t.it with - | VarT (id, _) -> string_of_id id + | VarT (x, _) -> string_of_id x | _ -> assert false and string_of_typ_args t = @@ -77,10 +76,10 @@ and string_of_typ_args t = | TupT _ -> string_of_typ t | _ -> "(" ^ string_of_typ t ^ ")" -and string_of_typbind (e, t) = - match e.it with - | VarE {it = "_"; _} -> string_of_typ t - | _ -> string_of_exp e ^ " : " ^ string_of_typ t +and string_of_typbind (x, t) = + match x.it with + | "_" -> string_of_typ t + | _ -> string_of_id x ^ " : " ^ string_of_typ t and string_of_deftyp layout dt = match dt.it with @@ -94,22 +93,20 @@ and string_of_deftyp layout dt = | VariantT tcs -> "\n | " ^ concat "\n | " (List.map string_of_typcase tcs) -and string_of_typfield (atom, (bs, t, prems), _hints) = - string_of_mixop [[atom]] ^ string_of_binds bs ^ " " ^ string_of_typ t ^ +and string_of_typfield (atom, (qs, t, prems), _hints) = + string_of_mixop [[atom]] ^ string_of_quants qs ^ " " ^ string_of_typ t ^ concat "" (List.map (prefix "\n -- " string_of_prem) prems) -and string_of_typcase (op, (bs, t, prems), _hints) = - string_of_mixop op ^ string_of_binds bs ^ string_of_typ_args t ^ +and string_of_typcase (op, (qs, t, prems), _hints) = + string_of_mixop op ^ string_of_quants qs ^ string_of_typ_args t ^ concat "" (List.map (prefix "\n -- " string_of_prem) prems) (* Expressions *) and string_of_exp e = -"{" ^ string_of_exp' e ^ " :: " ^ string_of_typ e.note ^ "}" -and string_of_exp' e = match e.it with - | VarE id -> string_of_id id + | VarE x -> string_of_id x | BoolE b -> string_of_bool b | NumE n -> Num.to_string n | TextE t -> "\"" ^ String.escaped t ^ "\"" @@ -129,24 +126,30 @@ and string_of_exp' e = string_of_exp e1 ^ "[" ^ string_of_path p ^ " =++ " ^ string_of_exp e2 ^ "]" | StrE efs -> "{" ^ concat ", " (List.map string_of_expfield efs) ^ "}" - | DotE (e1, atom) -> - string_of_exp e1 ^ "." ^ string_of_mixop [[atom]] ^ "_" ^ string_of_typ_name e1.note + | DotE (e1, atom, as_) -> + string_of_exp e1 ^ "." ^ + string_of_mixop [[atom]] ^ "_" ^ string_of_typ_name e1.note ^ + string_of_quantargs as_ | CompE (e1, e2) -> string_of_exp e1 ^ " +++ " ^ string_of_exp e2 | MemE (e1, e2) -> "(" ^ string_of_exp e1 ^ " <- " ^ string_of_exp e2 ^ ")" | LenE e1 -> "|" ^ string_of_exp e1 ^ "|" - | TupE es -> "(" ^ string_of_exps ", " es ^ ")_" ^ string_of_typ e.note - | CallE (id, as1) -> "$" ^ string_of_id id ^ string_of_args as1 + | TupE es -> "(" ^ string_of_exps ", " es ^ ")" + | CallE (x, as1) -> "$" ^ string_of_id x ^ string_of_args as1 | IterE (e1, iter) -> string_of_exp e1 ^ string_of_iterexp iter | ProjE (e1, i) -> string_of_exp e1 ^ "." ^ string_of_int i - | UncaseE (e1, op) -> - string_of_exp e1 ^ "!" ^ string_of_mixop op ^ "_" ^ string_of_typ_name e1.note + | UncaseE (e1, op, as_) -> + string_of_exp e1 ^ "!" ^ + string_of_mixop op ^ "_" ^ string_of_typ_name e1.note ^ + string_of_quantargs as_ | OptE eo -> "?(" ^ string_of_exps "" (Option.to_list eo) ^ ")" | TheE e1 -> "!(" ^ string_of_exp e1 ^ ")" | ListE es -> "[" ^ string_of_exps " " es ^ "]" | LiftE e1 -> "lift(" ^ string_of_exp e1 ^ ")" | CatE (e1, e2) -> string_of_exp e1 ^ " ++ " ^ string_of_exp e2 - | CaseE (op, e1) -> - string_of_mixop op ^ "_" ^ string_of_typ_name e.note ^ string_of_exp_args e1 + | CaseE (op, as_, e1) -> + string_of_mixop op ^ "_" ^ string_of_typ_name e.note ^ + string_of_quantargs as_ ^ + string_of_exp_args e1 | CvtE (e1, nt1, nt2) -> "(" ^ string_of_exp e1 ^ " : " ^ string_of_numtyp nt1 ^ " <:> " ^ string_of_numtyp nt2 ^ ")" | SubE (e1, t1, t2) -> @@ -161,8 +164,10 @@ and string_of_exp_args e = and string_of_exps sep es = concat sep (List.map string_of_exp es) -and string_of_expfield (atom, e) = - string_of_mixop [[atom]] ^ " " ^ string_of_exp e +and string_of_expfield (atom, as_, e) = + string_of_mixop [[atom]] ^ + string_of_quantargs as_ ^ + " " ^ string_of_exp e and string_of_path p = match p.it with @@ -171,21 +176,24 @@ and string_of_path p = string_of_path p1 ^ "[" ^ string_of_exp e ^ "]" | SliceP (p1, e1, e2) -> string_of_path p1 ^ "[" ^ string_of_exp e1 ^ " : " ^ string_of_exp e2 ^ "]" - | DotP ({it = RootP; note; _}, atom) -> - string_of_mixop [[atom]] ^ "_" ^ string_of_typ_name note - | DotP (p1, atom) -> - string_of_path p1 ^ "." ^ string_of_mixop [[atom]] ^ "_" ^ string_of_typ_name p1.note + | DotP ({it = RootP; note; _}, atom, as_) -> + string_of_mixop [[atom]] ^ "_" ^ string_of_typ_name note ^ + string_of_quantargs as_ + | DotP (p1, atom, as_) -> + string_of_path p1 ^ "." ^ + string_of_mixop [[atom]] ^ "_" ^ string_of_typ_name p1.note ^ + string_of_quantargs as_ and string_of_iterexp (iter, xes) = string_of_iter iter ^ "{" ^ String.concat ", " - (List.map (fun (id, e) -> string_of_id id ^ " <- " ^ string_of_exp e) xes) ^ "}" + (List.map (fun (x, e) -> string_of_id x ^ " <- " ^ string_of_exp e) xes) ^ "}" (* Grammars *) and string_of_sym g = match g.it with - | VarG (id, args) -> string_of_id id ^ string_of_args args + | VarG (x, args) -> string_of_id x ^ string_of_args args | NumG n -> Printf.sprintf "0x%02X" n | TextG t -> "\"" ^ String.escaped t ^ "\"" | EpsG -> "eps" @@ -200,13 +208,13 @@ and string_of_sym g = and string_of_prem prem = match prem.it with - | RulePr (id, mixop, e) -> - string_of_id id ^ ": " ^ string_of_mixop mixop ^ string_of_exp_args e + | RulePr (x, mixop, e) -> + string_of_id x ^ ": " ^ string_of_mixop mixop ^ string_of_exp_args e | IfPr e -> "if " ^ string_of_exp e - | LetPr (e1, e2, ids) -> - let ids' = List.map (fun x -> x $ no_region) ids in + | LetPr (e1, e2, xs) -> + let xs' = List.map (fun x -> x $ no_region) xs in "where " ^ string_of_exp e1 ^ " = " ^ string_of_exp e2 ^ - " {" ^ (String.concat ", " (List.map string_of_id ids')) ^ "}" + " {" ^ (String.concat ", " (List.map string_of_id xs')) ^ "}" | ElsePr -> "otherwise" | IterPr ({it = IterPr _; _} as prem', iter) -> string_of_prem prem' ^ string_of_iterexp iter @@ -220,96 +228,92 @@ and string_of_arg a = match a.it with | ExpA e -> string_of_exp e | TypA t -> "syntax " ^ string_of_typ t - | DefA id -> "def $" ^ string_of_id id + | DefA x -> "def $" ^ string_of_id x | GramA g -> "grammar " ^ string_of_sym g and string_of_args = function | [] -> "" | as_ -> "(" ^ concat ", " (List.map string_of_arg as_) ^ ")" -and string_of_bind bind = - match bind.it with - | ExpB (id, t) -> string_of_id id ^ " : " ^ string_of_typ t - | TypB id -> "syntax " ^ string_of_id id - | DefB (id, ps, t) -> - "def $" ^ string_of_id id ^ string_of_params ps ^ " : " ^ string_of_typ t - | GramB (id, ps, t) -> - "grammar " ^ string_of_id id ^ string_of_params ps ^ " : " ^ string_of_typ t - -and string_of_binds = function +and string_of_quantargs = function | [] -> "" - | bs -> "{" ^ concat ", " (List.map string_of_bind bs) ^ "}" + | as_ -> "{" ^ concat ", " (List.map string_of_arg as_) ^ "}" and string_of_param p = match p.it with - | ExpP (id, t) -> - (if string_of_id id = "_" then "" else string_of_id id ^ " : ") ^ string_of_typ t - | TypP id -> - "syntax " ^ string_of_id id - | DefP (id, ps, t) -> - "def $" ^ string_of_id id ^ string_of_params ps ^ " : " ^ string_of_typ t - | GramP (id, t) -> - "grammar " ^ string_of_id id ^ " : " ^ string_of_typ t + | ExpP (x, t) -> + (if string_of_id x = "_" then "" else string_of_id x ^ " : ") ^ string_of_typ t + | TypP x -> + "syntax " ^ string_of_id x + | DefP (x, ps, t) -> + "def $" ^ string_of_id x ^ string_of_params ps ^ " : " ^ string_of_typ t + | GramP (x, ps, t) -> + "grammar " ^ string_of_id x ^ string_of_params ps ^ " : " ^ string_of_typ t and string_of_params = function | [] -> "" | ps -> "(" ^ concat ", " (List.map string_of_param ps) ^ ")" +and string_of_quants = function + | [] -> "" + | ps -> "{" ^ concat ", " (List.map string_of_param ps) ^ "}" + + let region_comment ?(suppress_pos = false) indent at = if at = no_region then "" else let s = if suppress_pos then at.left.file else string_of_region at in indent ^ ";; " ^ s ^ "\n" -let string_of_inst ?(suppress_pos = false) id inst = +let string_of_inst ?(suppress_pos = false) x inst = match inst.it with - | InstD (bs, as_, dt) -> + | InstD (qs, as_, dt) -> "\n" ^ region_comment ~suppress_pos " " inst.at ^ - " syntax " ^ string_of_id id ^ string_of_binds bs ^ string_of_args as_ ^ " = " ^ + " syntax " ^ string_of_id x ^ string_of_quants qs ^ string_of_args as_ ^ " = " ^ string_of_deftyp `V dt ^ "\n" let string_of_rule ?(suppress_pos = false) rule = match rule.it with - | RuleD (id, bs, mixop, e, prems) -> - let id' = if id.it = "" then "_" else string_of_id id in + | RuleD (x, qs, mixop, e, prems) -> + let x' = if x.it = "" then "_" else string_of_id x in "\n" ^ region_comment ~suppress_pos " " rule.at ^ - " rule " ^ id' ^ string_of_binds bs ^ ":\n " ^ + " rule " ^ x' ^ string_of_quants qs ^ ":\n " ^ string_of_mixop mixop ^ string_of_exp_args e ^ concat "" (List.map (prefix "\n -- " string_of_prem) prems) -let string_of_clause ?(suppress_pos = false) id clause = +let string_of_clause ?(suppress_pos = false) x clause = match clause.it with - | DefD (bs, as_, e, prems) -> + | DefD (qs, as_, e, prems) -> "\n" ^ region_comment ~suppress_pos " " clause.at ^ - " def $" ^ string_of_id id ^ string_of_binds bs ^ string_of_args as_ ^ " = " ^ + " def $" ^ string_of_id x ^ string_of_quants qs ^ string_of_args as_ ^ " = " ^ string_of_exp e ^ concat "" (List.map (prefix "\n -- " string_of_prem) prems) let string_of_prod ?(suppress_pos = false) prod = match prod.it with - | ProdD (bs, g, e, prems) -> + | ProdD (qs, g, e, prems) -> "\n" ^ region_comment ~suppress_pos " " prod.at ^ - " prod" ^ string_of_binds bs ^ " " ^ string_of_sym g ^ " => " ^ + " prod" ^ string_of_quants qs ^ " " ^ string_of_sym g ^ " => " ^ string_of_exp e ^ concat "" (List.map (prefix "\n -- " string_of_prem) prems) let rec string_of_def ?(suppress_pos = false) d = let pre = "\n" ^ region_comment ~suppress_pos "" d.at in match d.it with - | TypD (id, _ps, [{it = InstD (bs, as_, dt); _}]) -> - pre ^ "syntax " ^ string_of_id id ^ string_of_binds bs ^ string_of_args as_ ^ " = " ^ + | TypD (x, _ps, [{it = InstD (ps, as_, dt); _}]) -> + pre ^ "syntax " ^ string_of_id x ^ string_of_params ps ^ string_of_args as_ ^ " = " ^ string_of_deftyp `V dt ^ "\n" - | TypD (id, ps, insts) -> - pre ^ "syntax " ^ string_of_id id ^ string_of_params ps ^ - concat "\n" (List.map (string_of_inst ~suppress_pos id) insts) ^ "\n" - | RelD (id, mixop, t, rules) -> - pre ^ "relation " ^ string_of_id id ^ ": " ^ + | TypD (x, ps, insts) -> + pre ^ "syntax " ^ string_of_id x ^ string_of_params ps ^ + concat "\n" (List.map (string_of_inst ~suppress_pos x) insts) ^ "\n" + | RelD (x, mixop, t, rules) -> + pre ^ "relation " ^ string_of_id x ^ ": " ^ string_of_mixop mixop ^ string_of_typ_args t ^ concat "\n" (List.map (string_of_rule ~suppress_pos) rules) ^ "\n" - | DecD (id, ps, t, clauses) -> - pre ^ "def $" ^ string_of_id id ^ string_of_params ps ^ " : " ^ string_of_typ t ^ - concat "" (List.map (string_of_clause ~suppress_pos id) clauses) ^ "\n" - | GramD (id, ps, t, prods) -> - pre ^ "grammar " ^ string_of_id id ^ string_of_params ps ^ " : " ^ string_of_typ t ^ + | DecD (x, ps, t, clauses) -> + pre ^ "def $" ^ string_of_id x ^ string_of_params ps ^ " : " ^ string_of_typ t ^ + concat "" (List.map (string_of_clause ~suppress_pos x) clauses) ^ "\n" + | GramD (x, ps, t, prods) -> + pre ^ "grammar " ^ string_of_id x ^ string_of_params ps ^ " : " ^ string_of_typ t ^ concat "" (List.map (string_of_prod ~suppress_pos) prods) ^ "\n" | RecD ds -> pre ^ "rec {\n" ^ concat "" (List.map string_of_def ds) ^ "}" ^ "\n" diff --git a/spectec/src/il/print.mli b/spectec/src/il/print.mli index 4f6cd93598..cf33752fb5 100644 --- a/spectec/src/il/print.mli +++ b/spectec/src/il/print.mli @@ -15,9 +15,10 @@ val string_of_path : path -> string val string_of_sym : sym -> string val string_of_prem : prem -> string val string_of_arg : arg -> string -val string_of_bind : bind -> string -val string_of_binds : bind list -> string +val string_of_args : arg list -> string val string_of_param : param -> string +val string_of_params : param list -> string +val string_of_quants : param list -> string val string_of_deftyp : [`H | `V] -> deftyp -> string val string_of_def : ?suppress_pos:bool -> def -> string val string_of_rule : ?suppress_pos:bool -> rule -> string diff --git a/spectec/src/il/subst.ml b/spectec/src/il/subst.ml index b159eed124..afc291e0d2 100644 --- a/spectec/src/il/subst.ml +++ b/spectec/src/il/subst.ml @@ -17,36 +17,35 @@ let empty = gramid = Map.empty; } -let mem_varid s id = Map.mem id.it s.varid -let mem_typid s id = Map.mem id.it s.typid -let mem_defid s id = Map.mem id.it s.defid -let mem_gramid s id = Map.mem id.it s.gramid - -let find_varid s id = Map.find id.it s.varid -let find_typid s id = Map.find id.it s.typid -let find_defid s id = Map.find id.it s.defid -let find_gramid s id = Map.find id.it s.gramid - -let add_varid s id e = if id.it = "_" then s else {s with varid = Map.add id.it e s.varid} -let add_typid s id t = if id.it = "_" then s else {s with typid = Map.add id.it t s.typid} -let add_defid s id x = if id.it = "_" then s else {s with defid = Map.add id.it x s.defid} -let add_gramid s id g = if id.it = "_" then s else {s with gramid = Map.add id.it g s.gramid} - -let remove_varid s id = if id.it = "_" then s else {s with varid = Map.remove id.it s.varid} -let remove_typid s id = if id.it = "_" then s else {s with typid = Map.remove id.it s.typid} -let remove_defid s id = if id.it = "_" then s else {s with defid = Map.remove id.it s.defid} -let remove_gramid s id = if id.it = "_" then s else {s with gramid = Map.remove id.it s.gramid} +let mem_varid s x = Map.mem x.it s.varid +let mem_typid s x = Map.mem x.it s.typid +let mem_defid s x = Map.mem x.it s.defid +let mem_gramid s x = Map.mem x.it s.gramid + +let find_varid s x = Map.find x.it s.varid +let find_typid s x = Map.find x.it s.typid +let find_defid s x = Map.find x.it s.defid +let find_gramid s x = Map.find x.it s.gramid + +let add_varid s x e = if x.it = "_" then s else {s with varid = Map.add x.it e s.varid} +let add_typid s x t = if x.it = "_" then s else {s with typid = Map.add x.it t s.typid} +let add_defid s x x' = if x.it = "_" then s else {s with defid = Map.add x.it x' s.defid} +let add_gramid s x g = if x.it = "_" then s else {s with gramid = Map.add x.it g s.gramid} + +let remove_varid s x = if x.it = "_" then s else {s with varid = Map.remove x.it s.varid} +let remove_typid s x = if x.it = "_" then s else {s with typid = Map.remove x.it s.typid} +let remove_defid s x = if x.it = "_" then s else {s with defid = Map.remove x.it s.defid} +let remove_gramid s x = if x.it = "_" then s else {s with gramid = Map.remove x.it s.gramid} let union s1 s2 = { varid = Map.union (fun _ _e1 e2 -> Some e2) s1.varid s2.varid; typid = Map.union (fun _ _t1 t2 -> Some t2) s1.typid s2.typid; defid = Map.union (fun _ _x1 x2 -> Some x2) s1.defid s2.defid; - gramid = Map.union (fun _ _x1 x2 -> Some x2) s1.gramid s2.gramid; + gramid = Map.union (fun _ _g1 g2 -> Some g2) s1.gramid s2.gramid; } -let remove_varid' s id' = {s with varid = Map.remove id' s.varid} -let remove_varids s ids' = - Free.Set.(fold (fun id' s -> remove_varid' s id') ids' s) +let remove_varid' s x' = {s with varid = Map.remove x' s.varid} +let remove_varids s xs' = Free.Set.(fold (fun x' s -> remove_varid' s x') xs' s) (* Helpers *) @@ -65,21 +64,21 @@ let rec subst_list_dep subst_x bound_x s = function (* Identifiers *) -let subst_varid s id = - match Map.find_opt id.it s.varid with - | None -> id - | Some {it = VarE id'; _} -> id' +let subst_varid s x = + match Map.find_opt x.it s.varid with + | None -> x + | Some {it = VarE x'; _} -> x' | Some _ -> raise (Invalid_argument "subst_varid") -let subst_defid s id = - match Map.find_opt id.it s.defid with - | None -> id - | Some id' -> id' +let subst_defid s x = + match Map.find_opt x.it s.defid with + | None -> x + | Some x' -> x' -let subst_gramid s id = - match Map.find_opt id.it s.gramid with - | None -> id - | Some {it = VarG (id', []); _} -> id' +let subst_gramid s x = + match Map.find_opt x.it s.gramid with + | None -> x + | Some {it = VarG (x', []); _} -> x' | Some _ -> raise (Invalid_argument "subst_varid") @@ -88,30 +87,27 @@ let subst_gramid s id = let rec subst_iter s iter = match iter with | Opt | List | List1 -> iter, s - | ListN (e, id_opt) -> - ListN (subst_exp s e, subst_opt subst_varid s id_opt), - Option.fold id_opt ~none:s ~some:(remove_varid s) + | ListN (e, xo) -> + ListN (subst_exp s e, subst_opt subst_varid s xo), + Option.fold xo ~none:s ~some:(remove_varid s) (* Types *) and subst_typ s t = (match t.it with - | VarT (id, as_) -> - (match Map.find_opt id.it s.typid with - | None -> VarT (id, subst_args s as_) + | VarT (x, as_) -> + (match Map.find_opt x.it s.typid with + | None -> VarT (x, subst_args s as_) | Some t' -> assert (as_ = []); t'.it (* We do not support higher-order substitutions yet *) ) | BoolT | NumT _ | TextT -> t.it - | TupT ets -> TupT (subst_list (subst_pair subst_exp subst_typ) s ets) + | TupT xts -> TupT (subst_list (subst_pair subst_varid subst_typ) s xts) | IterT (t1, iter) -> let iter', s' = subst_iter s iter in IterT (subst_typ s' t1, iter') ) $ t.at -and subst_typbind s (e, t) = - (e, subst_typ s t) - and subst_deftyp s dt = (match dt.it with | AliasT t -> AliasT (subst_typ s t) @@ -119,22 +115,25 @@ and subst_deftyp s dt = | VariantT tcs -> VariantT (subst_list subst_typcase s tcs) ) $ dt.at -and subst_typfield s (atom, (bs, t, prems), hints) = - let bs', s' = subst_binds s bs in - (atom, (bs', subst_typ s' t, subst_list subst_prem s' prems), hints) +and subst_typfield s (atom, (ps, t, prems), hints) = + let ps', s' = subst_params s ps in + (atom, (ps', subst_typ s' t, subst_list subst_prem s' prems), hints) + +and subst_typcase s (op, (ps, t, prems), hints) = + let ps', s' = subst_params s ps in + (op, (ps', subst_typ s' t, subst_list subst_prem s' prems), hints) -and subst_typcase s (op, (bs, t, prems), hints) = - let bs', s' = subst_binds s bs in - (op, (bs', subst_typ s' t, subst_list subst_prem s' prems), hints) +and subst_typbind s (x, t) = + (subst_varid s x, subst_typ s t) (* Expressions *) and subst_exp s e = (match e.it with - | VarE id -> - (match Map.find_opt id.it s.varid with - | None -> VarE id + | VarE x -> + (match Map.find_opt x.it s.varid with + | None -> VarE x | Some e' -> e'.it ) | BoolE _ | NumE _ | TextE _ -> e.it @@ -146,33 +145,33 @@ and subst_exp s e = | UpdE (e1, p, e2) -> UpdE (subst_exp s e1, subst_path s p, subst_exp s e2) | ExtE (e1, p, e2) -> ExtE (subst_exp s e1, subst_path s p, subst_exp s e2) | StrE efs -> StrE (subst_list subst_expfield s efs) - | DotE (e1, atom) -> DotE (subst_exp s e1, atom) + | DotE (e1, atom, as_) -> DotE (subst_exp s e1, atom, subst_args s as_) | CompE (e1, e2) -> CompE (subst_exp s e1, subst_exp s e2) | MemE (e1, e2) -> MemE (subst_exp s e1, subst_exp s e2) | LenE e1 -> LenE (subst_exp s e1) | TupE es -> TupE (subst_list subst_exp s es) - | CallE (id, as_) -> CallE (subst_defid s id, subst_args s as_) + | CallE (x, as_) -> CallE (subst_defid s x, subst_args s as_) | IterE (e1, iterexp) -> let it', s' = subst_iterexp s iterexp in IterE (subst_exp s' e1, it') | ProjE (e1, i) -> ProjE (subst_exp s e1, i) - | UncaseE (e1, op) -> + | UncaseE (e1, op, as_) -> let e1' = subst_exp s e1 in assert (match e1'.note.it with VarT _ -> true | _ -> false); - UncaseE (subst_exp s e1, op) + UncaseE (subst_exp s e1, op, subst_args s as_) | OptE eo -> OptE (subst_opt subst_exp s eo) | TheE e -> TheE (subst_exp s e) | ListE es -> ListE (subst_list subst_exp s es) | LiftE e -> LiftE (subst_exp s e) | CatE (e1, e2) -> CatE (subst_exp s e1, subst_exp s e2) - | CaseE (op, e1) -> + | CaseE (op, as_, e1) -> assert (match e.note.it with VarT _ -> true | _ -> false); - CaseE (op, subst_exp s e1) + CaseE (op, subst_args s as_, subst_exp s e1) | CvtE (e1, nt1, nt2) -> CvtE (subst_exp s e1, nt1, nt2) | SubE (e1, t1, t2) -> SubE (subst_exp s e1, subst_typ s t1, subst_typ s t2) ) $$ e.at % subst_typ s e.note -and subst_expfield s (atom, e) = (atom, subst_exp s e) +and subst_expfield s (atom, as_, e) = (atom, subst_args s as_, subst_exp s e) and subst_path s p = (match p.it with @@ -180,13 +179,13 @@ and subst_path s p = | IdxP (p1, e) -> IdxP (subst_path s p1, subst_exp s e) | SliceP (p1, e1, e2) -> SliceP (subst_path s p1, subst_exp s e1, subst_exp s e2) - | DotP (p1, atom) -> DotP (subst_path s p1, atom) + | DotP (p1, atom, as_) -> DotP (subst_path s p1, atom, subst_args s as_) ) $$ p.at % subst_typ s p.note and subst_iterexp s (iter, xes) = (* TODO(3, rossberg): This is assuming expressions in s are closed, is that okay? *) let iter', s' = subst_iter s iter in - (iter', List.map (fun (id, e) -> (id, subst_exp s e)) xes), + (iter', List.map (fun (x, e) -> (x, subst_exp s e)) xes), List.fold_left remove_varid s' (List.map fst xes) @@ -194,7 +193,7 @@ and subst_iterexp s (iter, xes) = and subst_sym s g = (match g.it with - | VarG (id, args) -> VarG (subst_gramid s id, List.map (subst_arg s) args) + | VarG (x, args) -> VarG (subst_gramid s x, List.map (subst_arg s) args) | NumG _ | TextG _ -> g.it | EpsG -> EpsG | SeqG gs -> SeqG (subst_list subst_sym s gs) @@ -211,13 +210,13 @@ and subst_sym s g = and subst_prem s prem = (match prem.it with - | RulePr (id, op, e) -> RulePr (id, op, subst_exp s e) + | RulePr (x, op, e) -> RulePr (x, op, subst_exp s e) | IfPr e -> IfPr (subst_exp s e) | ElsePr -> ElsePr | IterPr (prem1, iterexp) -> let it', s' = subst_iterexp s iterexp in IterPr (subst_prem s' prem1, it') - | LetPr (e1, e2, ids) -> LetPr (subst_exp s e1, subst_exp s e2, ids) + | LetPr (e1, e2, xs) -> LetPr (subst_exp s e1, subst_exp s e2, xs) ) $ prem.at @@ -227,34 +226,23 @@ and subst_arg s a = (match a.it with | ExpA e -> ExpA (subst_exp s e) | TypA t -> TypA (subst_typ s t) - | DefA id -> DefA (subst_defid s id) + | DefA x -> DefA (subst_defid s x) | GramA g -> GramA (subst_sym s g) ) $ a.at -and subst_bind s b = - (match b.it with - | ExpB (id, t) -> ExpB (id, subst_typ s t) - | TypB id -> TypB id - | DefB (id, ps, t) -> - let ps', s' = subst_params s ps in - DefB (id, ps', subst_typ s' t) - | GramB (id, ps, t) -> - let ps', s' = subst_params s ps in - GramB (id, ps', subst_typ s' t) - ) $ b.at - and subst_param s p = (match p.it with - | ExpP (id, t) -> ExpP (id, subst_typ s t) - | TypP id -> TypP id - | DefP (id, ps, t) -> + | ExpP (x, t) -> ExpP (x, subst_typ s t) + | TypP x -> TypP x + | DefP (x, ps, t) -> + let ps', s' = subst_params s ps in + DefP (x, ps', subst_typ s' t) + | GramP (x, ps, t) -> let ps', s' = subst_params s ps in - DefP (id, ps', subst_typ s' t) - | GramP (id, t) -> GramP (id, subst_typ s t) + GramP (x, ps', subst_typ s' t) ) $ p.at and subst_args s as_ = subst_list subst_arg s as_ -and subst_binds s bs = subst_list_dep subst_bind Free.bound_bind s bs and subst_params s ps = subst_list_dep subst_param Free.bound_param s ps diff --git a/spectec/src/il/subst.mli b/spectec/src/il/subst.mli index 37c98645be..94be50c92c 100644 --- a/spectec/src/il/subst.mli +++ b/spectec/src/il/subst.mli @@ -38,10 +38,9 @@ val subst_param : subst -> param -> param val subst_deftyp : subst -> deftyp -> deftyp val subst_typcase : subst -> typcase -> typcase val subst_typfield : subst -> typfield -> typfield -val subst_typbind : subst -> exp * typ -> exp * typ +val subst_typbind : subst -> id * typ -> id * typ val subst_args : subst -> arg list -> arg list -val subst_binds : subst -> bind list -> bind list * subst val subst_params : subst -> param list -> param list * subst val subst_list : (subst -> 'a -> 'a) -> subst -> 'a list -> 'a list diff --git a/spectec/src/il/valid.ml b/spectec/src/il/valid.ml index 1f60fd0061..44e3026e34 100644 --- a/spectec/src/il/valid.ml +++ b/spectec/src/il/valid.ml @@ -63,9 +63,9 @@ let as_list_typ phrase env dir t at : typ = | IterT (t1, (List | List1 | ListN _)) -> t1 | _ -> as_error at phrase dir t "(_)*" -let as_tup_typ phrase env dir t at : (exp * typ) list = +let as_tup_typ phrase env dir t at : (id * typ) list = match expand_typ env t with - | TupT ets -> ets + | TupT xts -> xts | _ -> as_error at phrase dir t "(_,...,_)" @@ -88,6 +88,16 @@ let rec as_comp_typ phrase env dir t at = error at (phrase ^ "'s type `" ^ string_of_typ t ^ "` is not composable") +let rec inst_tup_typ env s xts : (id * typ) list = + match xts with + | [] -> [] + | (xI, tI)::xts' -> + let xI' = Fresh.refresh_varid xI in + let tI' = Subst.subst_typ s tI in + let s' = Subst.add_varid s xI (VarE xI' $$ xI.at % tI') in + (xI', tI') :: inst_tup_typ env s' xts' + + (* Type Equivalence and Subtyping *) let equiv_typ env t1 t2 at = @@ -182,8 +192,8 @@ and valid_typ env t = | NumT _ | TextT -> () - | TupT ets -> - List.iter (valid_typbind env) ets + | TupT xts -> + List.iter (valid_typbind env) xts | IterT (t1, iter) -> match iter with | ListN (e, _) -> error e.at "definite iterator not allowed in type" @@ -191,9 +201,10 @@ and valid_typ env t = let env' = valid_iter env iter in valid_typ env' t1 -and valid_typbind env (e, t) = +and valid_typbind env (x, t) = valid_typ env t; - valid_exp ~side:`Lhs env e t + let t' = Env.find_var env x in + equiv_typ env t' t x.at and valid_deftyp envr dt = match dt.it with @@ -206,15 +217,15 @@ and valid_deftyp envr dt = check_mixops "variant" "case" (List.map (fun (op, _, _) -> op) tcs) dt.at; List.iter (valid_typcase envr) tcs -and valid_typfield envr (_atom, (bs, t, prems), _hints) = +and valid_typfield envr (_atom, (qs, t, prems), _hints) = let envr' = local_env envr in - List.iter (valid_bind envr') bs; + List.iter (valid_param envr') qs; valid_typ !envr' t; List.iter (valid_prem !envr') prems -and valid_typcase envr (mixop, (bs, t, prems), _hints) = +and valid_typcase envr (mixop, (qs, t, prems), _hints) = Debug.(log_at "il.valid_typcase" t.at - (fun _ -> fmt "%s %s" (il_binds bs) (il_typ t)) + (fun _ -> fmt "%s %s" (il_quants qs) (il_typ t)) (fun _ -> "ok") ) @@ fun _ -> let arity = @@ -226,23 +237,11 @@ and valid_typcase envr (mixop, (bs, t, prems), _hints) = error t.at ("inconsistent arity in mixin notation, `" ^ string_of_mixop mixop ^ "` applied to " ^ typ_string !envr t); let envr' = local_env envr in - List.iter (valid_bind envr') bs; + List.iter (valid_param envr') qs; valid_typ !envr' t; List.iter (valid_prem !envr') prems -and inst_tup_typ env s e i ets : (exp * typ) list = - match ets with - | [] -> [] - | (eI, tI)::ets' -> - let eI' = Subst.subst_exp s eI in - let tI' = Subst.subst_typ s tI in - match Eval.match_exp env s (ProjE (e, i) $$ e.at % tI') eI' with - | Some s' -> (eI', tI') :: inst_tup_typ env s' e (i + 1) ets' - | None -> error e.at "tuple does not match its own type" - | exception Eval.Irred -> error e.at "tuple does not match its own type" - - (* Expressions *) and infer_exp (env : Env.t) e : typ = @@ -251,7 +250,7 @@ and infer_exp (env : Env.t) e : typ = (fun r -> fmt "%s" (il_typ r)) ) @@ fun _ -> match e.it with - | VarE id -> Env.find_var env id + | VarE x -> Env.find_var env x | BoolE _ -> BoolT $ e.at | NumE n -> NumT (Num.to_typ n) $ e.at | TextE _ -> TextT $ e.at @@ -264,14 +263,15 @@ and infer_exp (env : Env.t) e : typ = | ExtE (e1, _, _) | CompE (e1, _) -> infer_exp env e1 | StrE _ -> error e.at "cannot infer type of record" - | DotE (e1, atom) -> + | DotE (e1, atom, as_) -> let tfs = as_struct_typ "expression" env Infer (infer_exp env e1) e1.at in - let _binds, t, _prems = find_field tfs atom e1.at in - t + let qs, t, _prems = find_field tfs atom e1.at in + let s = valid_args env as_ qs Subst.empty e.at in + Subst.subst_typ s t | TupE es -> - TupT (List.map (fun eI -> eI, infer_exp env eI) es) $ e.at - | CallE (id, as_) -> - let ps, t, _ = Env.find_def env id in + TupT (List.map (fun eI -> "_" $ eI.at, infer_exp env eI) es) $ e.at + | CallE (x, as_) -> + let ps, t, _ = Env.find_def env x in let s = valid_args env as_ ps Subst.empty e.at in Subst.subst_typ s t | IterE (e1, iterexp) -> @@ -279,18 +279,20 @@ and infer_exp (env : Env.t) e : typ = IterT (infer_exp env' e1, iter) $ e.at | ProjE (e1, i) -> let t1 = infer_exp env e1 in - let ets = as_tup_typ "expression" env Infer t1 e1.at in - if i >= List.length ets then + let xts = as_tup_typ "expression" env Infer t1 e1.at in + if i >= List.length xts then error e.at "invalid tuple projection"; - let ets' = inst_tup_typ env Subst.empty e1 0 ets in - (match List.nth_opt ets' i with + let xts' = inst_tup_typ env Subst.empty xts in + (match List.nth_opt xts' i with | Some (_, tI) -> tI | None -> error e.at "cannot infer type of tuple projection" ) - | UncaseE (e1, op) -> + | UncaseE (e1, op, as_) -> let t1 = infer_exp env e1 in (match as_variant_typ "expression" env Infer t1 e1.at with - | [(op', (_, t, _), _)] when Eq.eq_mixop op op' -> t + | [(op', (ps, t, _), _)] when Eq.eq_mixop op op' -> + let s = valid_args env as_ ps Subst.empty e.at in + Subst.subst_typ s t | _ -> error e.at "invalid case projection"; ) | OptE _ -> error e.at "cannot infer type of option" @@ -334,9 +336,9 @@ try Printexc.raise_with_backtrace exn bt ); match e.it with - | VarE id when id.it = "_" && side = `Lhs -> () - | VarE id -> - let t' = Env.find_var env id in + | VarE x when x.it = "_" && side = `Lhs -> () + | VarE x -> + let t' = Env.find_var env x in equiv_typ env t' t e.at | BoolE _ | NumE _ | TextE _ -> let t' = infer_exp env e in @@ -389,12 +391,13 @@ try | StrE efs -> let tfs = as_struct_typ "record" env Check t e.at in valid_list (valid_expfield ~side) env efs tfs e.at - | DotE (e1, atom) -> + | DotE (e1, atom, as_) -> let t1 = infer_exp env e1 in valid_exp env e1 t1; let tfs = as_struct_typ "expression" env Check t1 e1.at in - let _binds, t', _prems = find_field tfs atom e1.at in - equiv_typ env t' t e.at + let qs, t', _prems = find_field tfs atom e1.at in + let s = valid_args env as_ qs Subst.empty e.at in + equiv_typ env (Subst.subst_typ s t') t e.at | CompE (e1, e2) -> let _ = as_comp_typ "expression" env Check t e.at in valid_exp env e1 t; @@ -417,8 +420,8 @@ try string_of_int (List.length ets) ^ ", got " ^ string_of_int (List.length es)); if not (valid_tup_exp ~side env Subst.empty es ets) then as_error e.at "tuple" Check t "" - | CallE (id, as_) -> - let ps, t', _ = Env.find_def env id in + | CallE (x, as_) -> + let ps, t', _ = Env.find_def env x in let s = valid_args env as_ ps Subst.empty e.at in equiv_typ env (Subst.subst_typ s t') t e.at | IterE (e1, iterexp) -> @@ -427,21 +430,23 @@ try valid_exp ~side env' e1 t1 | ProjE (e1, i) -> let t1 = infer_exp env e1 in - let ets = as_tup_typ "expression" env Infer t1 e1.at in - if i >= List.length ets then + let xts = as_tup_typ "expression" env Infer t1 e1.at in + if i >= List.length xts then error e.at "invalid tuple projection"; - let side' = if List.length ets > 1 then `Rhs else side in - let ets' = inst_tup_typ env Subst.empty e1 0 ets in - valid_exp ~side:side' env e1 (TupT ets' $ t1.at); - (match List.nth_opt ets i with + let side' = if List.length xts > 1 then `Rhs else side in + let xts' = inst_tup_typ env Subst.empty xts in + valid_exp ~side:side' env e1 (TupT xts' $ t1.at); + (match List.nth_opt xts i with | Some (_, tI) -> equiv_typ env tI t e.at | None -> error e.at "invalid tuple projection, cannot match pattern" ) - | UncaseE (e1, op) -> + | UncaseE (e1, op, as_) -> let t1 = infer_exp env e1 in valid_exp ~side env e1 t1; (match as_variant_typ "expression" env Infer t1 e1.at with - | [(op', (_, t', _), _)] when Eq.eq_mixop op op' -> equiv_typ env t' t e.at + | [(op', (ps, t', _), _)] when Eq.eq_mixop op op' -> + let s = valid_args env as_ ps Subst.empty e.at in + equiv_typ env (Subst.subst_typ s t') t e.at | _ -> error e.at "invalid case projection"; ) | OptE eo -> @@ -464,10 +469,11 @@ try let _typ1 = as_iter_typ List "list" env Check t e.at in valid_exp env e1 t; valid_exp env e2 t - | CaseE (op, e1) -> + | CaseE (op, as_, e1) -> let cases = as_variant_typ "case" env Check t e.at in - let _binds, t1, _prems = find_case cases op e1.at in - valid_exp ~side env e1 t1 + let qs, t1, _prems = find_case cases op e1.at in + let s = valid_args env as_ qs Subst.empty e.at in + valid_exp ~side env e1 (Subst.subst_typ s t1) | CvtE (e1, nt1, nt2) -> valid_exp ~side env e1 (NumT nt1 $ e1.at); equiv_typ env (NumT nt2 $e.at) t e.at; @@ -491,23 +497,21 @@ and valid_expmix ?(side = `Rhs) env mixop e (mixop', t) at = ); valid_exp ~side env e t -and valid_tup_exp ?(side = `Rhs) env s es ets = +and valid_tup_exp ?(side = `Rhs) env s es xts = Debug.(log_in "il.valid_tup_exp" - (fun _ -> fmt "(%s) :%s (%s)[%s]" (list il_exp es) (il_side side) (list il_typ (List.map snd ets)) (il_subst s)) + (fun _ -> fmt "(%s) :%s (%s)[%s]" (list il_exp es) (il_side side) (list il_typ (List.map snd xts)) (il_subst s)) ); - match es, ets with - | e1::es', (e2, t)::ets' -> - valid_exp ~side env e1 (Subst.subst_typ s t); - (match Eval.match_exp env s e1 e2 with - | Some s' -> valid_tup_exp ~side env s' es' ets' - | None -> false - | exception Eval.Irred -> false - ) + match es, xts with + | e::es', (x, t)::xts' -> + valid_exp ~side env e (Subst.subst_typ s t); + let s' = Subst.add_varid s x e in + valid_tup_exp ~side env s' es' xts' | _, _ -> true -and valid_expfield ~side env (atom1, e) (atom2, (_binds, t, _prems), _) = +and valid_expfield ~side env (atom1, as_, e) (atom2, (ps, t, _prems), _) = if not (Eq.eq_atom atom1 atom2) then error e.at "unexpected record field"; - valid_exp ~side env e t + let s = valid_args env as_ ps Subst.empty e.at in + valid_exp ~side env e (Subst.subst_typ s t) and valid_path env p t : typ = valid_typ env t; @@ -524,11 +528,12 @@ and valid_path env p t : typ = valid_exp env e2 (NumT `NatT $ e2.at); let _ = as_list_typ "path" env Check t1 p1.at in t1 - | DotP (p1, atom) -> + | DotP (p1, atom, as_) -> let t1 = valid_path env p1 t in let tfs = as_struct_typ "path" env Check t1 p1.at in - let _bs, t, _prems = find_field tfs atom p1.at in - t + let qs, t, _prems = find_field tfs atom p1.at in + let s = valid_args env as_ qs Subst.empty p.at in + Subst.subst_typ s t in equiv_typ env p.note t' p.at; t' @@ -538,11 +543,11 @@ and valid_iterexp ?(side = `Rhs) env (iter, xes) at : iter * Env.t = if xes = [] && iter <= List1 && side = `Rhs then error at "empty iteration"; let iter' = match iter with Opt -> Opt | _ -> List in iter', - List.fold_left (fun env' (id, e) -> + List.fold_left (fun env' (x, e) -> let t = infer_exp env e in valid_exp ~side env e t; let t1 = as_iter_typ iter' "iterator" env Check t e.at in - Env.bind_var env' id t1 + Env.bind_var env' x t1 ) env' xes @@ -551,8 +556,8 @@ and valid_iterexp ?(side = `Rhs) env (iter, xes) at : iter * Env.t = and valid_sym env g : typ = Debug.(log_at "il.valid_sym" g.at (fun _ -> il_sym g) (fun t -> il_typ t)) @@ fun _ -> match g.it with - | VarG (id, as_) -> - let ps, t, _ = Env.find_gram env id in + | VarG (x, as_) -> + let ps, t, _ = Env.find_gram env x in let s = valid_args env as_ ps Subst.empty g.at in Subst.subst_typ s t | NumG _ -> @@ -590,22 +595,22 @@ and valid_sym env g : typ = and valid_prem env prem = Debug.(log_in_at "il.valid_prem" prem.at (fun _ -> il_prem prem)); match prem.it with - | RulePr (id, mixop, e) -> - let mixop', t, _rules = Env.find_rel env id in + | RulePr (x, mixop, e) -> + let mixop', t, _rules = Env.find_rel env x in assert (Mixop.eq mixop mixop'); valid_expmix env mixop e (mixop, t) e.at | IfPr e -> valid_exp env e (BoolT $ e.at) - | LetPr (e1, e2, ids) -> + | LetPr (e1, e2, xs) -> let t = infer_exp env e2 in valid_exp ~side:`Lhs env e1 t; valid_exp env e2 t; - let target_ids = Free.{empty with varid = Set.of_list ids} in + let target_ids = Free.{empty with varid = Set.of_list xs} in let free_ids = Free.(free_exp e1) in if not (Free.subset target_ids free_ids) then error prem.at ("target identifier(s) " ^ ( Free.Set.elements (Free.diff target_ids free_ids).varid |> - List.map (fun id -> "`" ^ id ^ "`") |> + List.map (fun x -> "`" ^ x ^ "`") |> String.concat ", " ) ^ " do not occur in left-hand side expression") | ElsePr -> @@ -622,18 +627,18 @@ and valid_arg env a p s = (fun _ -> fmt "%s : %s" (il_arg a) (il_param p)) (Fun.const "ok") ) @@ fun _ -> match a.it, (Subst.subst_param s p).it with - | ExpA e, ExpP (id, t) -> valid_exp ~side:`Lhs env e t; Subst.add_varid s id e - | TypA t, TypP id -> valid_typ env t; Subst.add_typid s id t - | DefA id', DefP (id, ps, t) -> - let ps', t', _ = Env.find_def env id' in + | ExpA e, ExpP (x, t) -> valid_exp ~side:`Lhs env e t; Subst.add_varid s x e + | TypA t, TypP x -> valid_typ env t; Subst.add_typid s x t + | DefA x', DefP (x, ps, t) -> + let ps', t', _ = Env.find_def env x' in if not (Eval.equiv_functyp env (ps', t') (ps, t)) then error a.at "type mismatch in function argument"; - Subst.add_defid s id id' - | GramA g, GramP (id, t) -> + Subst.add_defid s x x' + | GramA g, GramP (x, ps, t) -> let t' = valid_sym env g in - if not (Eval.equiv_typ env t' t) then + if not (Eval.equiv_functyp env ([], t') (ps, t)) then error a.at "type mismatch in grammar argument"; - Subst.add_gramid s id g + Subst.add_gramid s x g | _, _ -> error a.at ("sort mismatch for argument, expected `" ^ Print.string_of_param p ^ "`, got `" ^ Print.string_of_arg a ^ "`") @@ -650,39 +655,23 @@ and valid_args env as_ ps s at : Subst.t = let s' = valid_arg env a p s in valid_args env as' ps' s' at -and valid_bind envr b = - match b.it with - | ExpB (id, t) -> +and valid_param envr p = + match p.it with + | ExpP (x, t) -> valid_typ !envr t; - envr := Env.bind_var !envr id t - | TypB id -> - envr := Env.bind_typ !envr id ([], []) - | DefB (id, ps, t) -> + envr := Env.bind_var !envr x t + | TypP x -> + envr := Env.bind_typ !envr x ([], []) + | DefP (x, ps, t) -> let envr' = local_env envr in List.iter (valid_param envr') ps; valid_typ !envr' t; - envr := Env.bind_def !envr id (ps, t, []) - | GramB (id, ps, t) -> + envr := Env.bind_def !envr x (ps, t, []) + | GramP (x, ps, t) -> let envr' = local_env envr in List.iter (valid_param envr') ps; valid_typ !envr' t; - envr := Env.bind_gram !envr id (ps, t, []) - -and valid_param envr p = - match p.it with - | ExpP (id, t) -> - valid_typ !envr t; - envr := Env.bind_var !envr id t - | TypP id -> - envr := Env.bind_typ !envr id ([], []) - | DefP (id, ps, t) -> - let envr' = local_env envr in - List.iter (valid_param envr') ps; - valid_typ !envr' t; - envr := Env.bind_def !envr id (ps, t, []) - | GramP (id, t) -> - valid_typ !envr t; - envr := Env.bind_gram !envr id ([], t, []) + envr := Env.bind_gram !envr x (ps, t, []) let valid_inst envr ps inst = Debug.(log_in "il.valid_inst" line); @@ -690,9 +679,9 @@ let valid_inst envr ps inst = (fun _ -> fmt "(%s) = ..." (il_params ps)) ); match inst.it with - | InstD (bs, as_, dt) -> + | InstD (qs, as_, dt) -> let envr' = local_env envr in - List.iter (valid_bind envr') bs; + List.iter (valid_param envr') qs; let _s = valid_args !envr' as_ ps Subst.empty inst.at in valid_deftyp envr' dt @@ -702,28 +691,28 @@ let valid_rule envr mixop t rule = (fun _ -> fmt "%s : %s = ..." (il_mixop mixop) (il_typ t)) ); match rule.it with - | RuleD (_id, bs, mixop', e, prems) -> + | RuleD (_x, qs, mixop', e, prems) -> let envr' = local_env envr in - List.iter (valid_bind envr') bs; + List.iter (valid_param envr') qs; valid_expmix ~side:`Lhs !envr' mixop' e (mixop, t) e.at; List.iter (valid_prem !envr') prems -let valid_clause envr id ps t clause = +let valid_clause envr x ps t clause = Debug.(log_in "il.valid_clause" line); Debug.(log_in_at "il.valid_clause" clause.at (fun _ -> fmt ": (%s) -> %s" (il_params ps) (il_typ t)) ); try match clause.it with - | DefD (bs, as_, e, prems) -> + | DefD (qs, as_, e, prems) -> let envr' = local_env envr in - List.iter (valid_bind envr') bs; + List.iter (valid_param envr') qs; let s = valid_args !envr' as_ ps Subst.empty clause.at in valid_exp !envr' e (Subst.subst_typ s t); List.iter (valid_prem !envr') prems with exn -> let bt = Printexc.get_raw_backtrace () in - Printf.eprintf "[valid_clause] %s\n%!" (Debug.il_clause id clause); + Printf.eprintf "[valid_clause] %s\n%!" (Debug.il_clause x clause); Printexc.raise_with_backtrace exn bt let valid_prod envr ps t prod = @@ -732,32 +721,32 @@ let valid_prod envr ps t prod = (fun _ -> fmt ": (%s) -> %s" (il_params ps) (il_typ t)) ); match prod.it with - | ProdD (bs, g, e, prems) -> + | ProdD (qs, g, e, prems) -> let envr' = local_env envr in - List.iter (valid_bind envr') bs; + List.iter (valid_param envr') qs; let _t' = valid_sym !envr' g in valid_exp !envr' e t; List.iter (valid_prem !envr') prems let infer_def envr d = match d.it with - | TypD (id, ps, _insts) -> + | TypD (x, ps, _insts) -> let envr' = local_env envr in List.iter (valid_param envr') ps; - envr := Env.bind_typ !envr id (ps, []) - | RelD (id, mixop, t, rules) -> + envr := Env.bind_typ !envr x (ps, []) + | RelD (x, mixop, t, rules) -> valid_typcase envr (mixop, ([], t, []), []); - envr := Env.bind_rel !envr id (mixop, t, rules) - | DecD (id, ps, t, clauses) -> + envr := Env.bind_rel !envr x (mixop, t, rules) + | DecD (x, ps, t, clauses) -> let envr' = local_env envr in List.iter (valid_param envr') ps; valid_typ !envr' t; - envr := Env.bind_def !envr id (ps, t, clauses) - | GramD (id, ps, t, prods) -> + envr := Env.bind_def !envr x (ps, t, clauses) + | GramD (x, ps, t, prods) -> let envr' = local_env envr in List.iter (valid_param envr') ps; valid_typ !envr' t; - envr := Env.bind_gram !envr id (ps, t, prods) + envr := Env.bind_gram !envr x (ps, t, prods) | _ -> () @@ -765,27 +754,27 @@ let rec valid_def envr d = Debug.(log_in "il.valid_def" line); Debug.(log_in_at "il.valid_def" d.at (fun _ -> il_def d)); match d.it with - | TypD (id, ps, insts) -> + | TypD (x, ps, insts) -> let envr' = local_env envr in List.iter (valid_param envr') ps; List.iter (valid_inst envr ps) insts; - envr := Env.bind_typ !envr id (ps, insts); - | RelD (id, mixop, t, rules) -> + envr := Env.bind_typ !envr x (ps, insts); + | RelD (x, mixop, t, rules) -> valid_typcase envr (mixop, ([], t, []), []); List.iter (valid_rule envr mixop t) rules; - envr := Env.bind_rel !envr id (mixop, t, rules) - | DecD (id, ps, t, clauses) -> + envr := Env.bind_rel !envr x (mixop, t, rules) + | DecD (x, ps, t, clauses) -> let envr' = local_env envr in List.iter (valid_param envr') ps; valid_typ !envr' t; - List.iter (valid_clause envr id ps t) clauses; - envr := Env.bind_def !envr id (ps, t, clauses) - | GramD (id, ps, t, prods) -> + List.iter (valid_clause envr x ps t) clauses; + envr := Env.bind_def !envr x (ps, t, clauses) + | GramD (x, ps, t, prods) -> let envr' = local_env envr in List.iter (valid_param envr') ps; valid_typ !envr' t; List.iter (valid_prod envr' ps t) prods; - envr := Env.bind_gram !envr id (ps, t, prods) + envr := Env.bind_gram !envr x (ps, t, prods) | RecD ds -> List.iter (infer_def envr) ds; List.iter (valid_def envr) ds; diff --git a/spectec/src/il2al/animate.ml b/spectec/src/il2al/animate.ml index 8d70ddf832..10dd24137d 100644 --- a/spectec/src/il2al/animate.ml +++ b/spectec/src/il2al/animate.ml @@ -114,7 +114,7 @@ and recover_iterexp iterexp pr = Source.map (recover_iterexp' iterexp) pr (* is this assign premise a if-let? *) let is_cond_assign prem = match prem.it with - | LetPr ({it = CaseE (_, _); _}, _, _) -> true + | LetPr ({it = CaseE (_, _, _); _}, _, _) -> true | _ -> false (* is this assign premise encoded premise for popping one value? *) @@ -251,7 +251,7 @@ let is_not_lhs e = match e.it with (* Hack to handle RETURN_CALL_ADDR, eventually should be removed *) let is_atomic_lhs e = match e.it with -| CaseE ([{it = Atom "FUNC"; _}]::_, { it = CaseE ([[]; [{it = Arrow; _}]; []], { it = TupE [ { it = IterE (_, (ListN _, _)); _} ; { it = IterE (_, (ListN _, _)); _} ] ; _} ); _ }) -> true +| CaseE ([{it = Atom "FUNC"; _}]::_, _, { it = CaseE ([[]; [{it = Arrow; _}]; []], _, { it = TupE [ { it = IterE (_, (ListN _, _)); _} ; { it = IterE (_, (ListN _, _)); _} ] ; _} ); _ }) -> true | _ -> false (* Hack to handle ARRAY.INIT_DATA, eventually should be removed *) diff --git a/spectec/src/il2al/encode.ml b/spectec/src/il2al/encode.ml index f926d01cd7..2eb6c532dd 100644 --- a/spectec/src/il2al/encode.ml +++ b/spectec/src/il2al/encode.ml @@ -33,12 +33,12 @@ let is_case e = | _ -> false let case_of_case e = match e.it with - | CaseE (mixop, _) -> mixop + | CaseE (mixop, _, _) -> mixop | _ -> error e.at "cannot get case of case expression" let args_of_case e = match e.it with - | CaseE (_, { it = TupE exps; _ }) -> exps - | CaseE (_, exp) -> [ exp ] + | CaseE (_, _, { it = TupE exps; _ }) -> exps + | CaseE (_, _, exp) -> [ exp ] | _ -> error e.at "cannot get arguments of case expression" let is_context e = @@ -142,7 +142,7 @@ let encode_stack stack = let args', inner_stack = Lib.List.split_last args in let mixop', _ = Lib.List.split_last mixop in - let e1 = { e with it = CaseE (mixop', TupE args' $$ no_region % (mk_varT "")) } in + let e1 = { e with it = CaseE (mixop', [], TupE args' $$ no_region % (mk_varT "")) } in let e2 = (mk_varE "ctxt" "contextT") in let pr = LetPr (e1, e2, free_ids e1) $ e2.at in @@ -159,7 +159,7 @@ let encode_stack stack = (* Encode lhs *) let encode_lhs lhs = match lhs.it with - | CaseE ([[]; [{it = Semicolon; _}]; []], {it = TupE [z; stack]; _}) -> + | CaseE ([[]; [{it = Semicolon; _}]; []], [], {it = TupE [z; stack]; _}) -> let prem = LetPr (z, mk_varE "state" "stateT", free_ids z) $ z.at in prem :: encode_stack stack | _ -> diff --git a/spectec/src/il2al/free.ml b/spectec/src/il2al/free.ml index 5418adf196..2eb0d23418 100644 --- a/spectec/src/il2al/free.ml +++ b/spectec/src/il2al/free.ml @@ -26,8 +26,10 @@ let rec free_exp ignore_listN e = | VarE id -> free_varid id | BoolE _ | NumE _ | TextE _ -> empty | CvtE (e1, _, _) | UnE (_, _, e1) | LiftE e1 | LenE e1 | TheE e1 | SubE (e1, _, _) - | DotE (e1, _) | CaseE (_, e1) | ProjE (e1, _) | UncaseE (e1, _) -> + | ProjE (e1, _) -> f e1 + | DotE (e1, _, al) | CaseE (_, al, e1) | UncaseE (e1, _, al) -> + f e1 + free_list fa al | BinE (_, _, e1, e2) | CmpE (_, _, e1, e2) | IdxE (e1, e2) | CompE (e1, e2) | MemE (e1, e2) | CatE (e1, e2) -> free_list f [e1; e2] | SliceE (e1, e2, e3) -> free_list f [e1; e2; e3] @@ -42,7 +44,8 @@ let rec free_exp ignore_listN e = let bound, free2 = fi iter in diff free1 bound + free2 -and free_expfield ignore_listN (_, e) = free_exp ignore_listN e +and free_expfield ignore_listN (_, al, e) = + free_list (free_arg ignore_listN) al + free_exp ignore_listN e and free_arg ignore_listN arg = let f = free_exp ignore_listN in @@ -55,12 +58,13 @@ and free_arg ignore_listN arg = and free_path ignore_listN p = let f = free_exp ignore_listN in let fp = free_path ignore_listN in + let fa = free_arg ignore_listN in match p.it with | RootP -> empty | IdxP (p1, e) -> fp p1 + f e | SliceP (p1, e1, e2) -> fp p1 + f e1 + f e2 - | DotP (p1, _) -> fp p1 + | DotP (p1, _, al) -> fp p1 + free_list fa al and free_iterexp ignore_listN (iter, xes) = let f = free_exp ignore_listN in diff --git a/spectec/src/il2al/il2al_util.ml b/spectec/src/il2al/il2al_util.ml index 42423fc77a..76bd097008 100644 --- a/spectec/src/il2al/il2al_util.ml +++ b/spectec/src/il2al/il2al_util.ml @@ -52,7 +52,7 @@ let replace_lhs lhs pr = let case_of_case e = match e.it with - | CaseE (mixop, _) -> mixop + | CaseE (mixop, _, _) -> mixop | _ -> error e.at (Printf.sprintf "expected a CaseE, but got `%s`" (Il.Print.string_of_exp e)) @@ -279,7 +279,7 @@ let is_val exp = | _ -> () ); match exp.it with - | CaseE (mixop, _) -> ( + | CaseE (mixop, _, _) -> ( match List.find_opt (Il.Eq.eq_mixop mixop) !val_mixops with | Some _ -> true | None -> false diff --git a/spectec/src/il2al/il_walk.ml b/spectec/src/il2al/il_walk.ml index 03532befc7..02757fdaac 100644 --- a/spectec/src/il2al/il_walk.ml +++ b/spectec/src/il2al/il_walk.ml @@ -5,7 +5,7 @@ open Il.Ast type transformer = { transform_exp: exp -> exp; - transform_bind: bind -> bind; + transform_param: param -> param; transform_prem: prem -> prem; transform_iterexp: iterexp -> iterexp; } @@ -13,7 +13,7 @@ type transformer = { let id = Fun.id let base_transformer = { transform_exp = id; - transform_bind = id; + transform_param = id; transform_prem = id; transform_iterexp = id; } @@ -35,22 +35,22 @@ let rec transform_exp t e = | SliceE (e1, e2, e3) -> SliceE (t_exp e1, t_exp e2, t_exp e3) | UpdE (e1, p, e2) -> UpdE (t_exp e1, p, t_exp e2) | ExtE (e1, p, e2) -> ExtE (t_exp e1, p, t_exp e2) - | StrE efs -> StrE (List.map (fun (a, e) -> (a, t_exp e)) efs) - | DotE (e1, atom) -> DotE (t_exp e1, atom) + | StrE efs -> StrE (List.map (fun (a, as_, e) -> (a, List.map (transform_arg t) as_, t_exp e)) efs) + | DotE (e1, atom, as1) -> DotE (t_exp e1, atom, List.map (transform_arg t) as1) | CompE (e1, e2) -> CompE (t_exp e1, t_exp e2) | LenE e1 -> LenE (t_exp e1) | TupE es -> TupE ((List.map t_exp) es) | CallE (id, as1) -> CallE (id, List.map (transform_arg t) as1) | IterE (e1, iter) -> IterE (t_exp e1, transform_iterexp t iter) (* TODO iter *) | ProjE (e1, i) -> ProjE (t_exp e1, i) - | UncaseE (e1, op) -> UncaseE (t_exp e1, op) + | UncaseE (e1, op, as1) -> UncaseE (t_exp e1, op, List.map (transform_arg t) as1) | OptE eo -> OptE ((Option.map t_exp) eo) | TheE e1 -> TheE (t_exp e1) | ListE es -> ListE ((List.map t_exp) es) | LiftE e1 -> LiftE (t_exp e1) | CatE (e1, e2) -> CatE (t_exp e1, t_exp e2) | MemE (e1, e2) -> MemE (t_exp e1, t_exp e2) - | CaseE (mixop, e1) -> CaseE (mixop, t_exp e1) + | CaseE (mixop, as1, e1) -> CaseE (mixop, List.map (transform_arg t) as1, t_exp e1) | SubE (e1, _t1, t2) -> SubE (t_exp e1, _t1, t2) in f { e with it } @@ -78,20 +78,20 @@ and transform_prem t p = in f { p with it } -and transform_bind t b = - let f = t.transform_bind in - let it = match b.it with - | ExpB (id, typ) -> ExpB (id, typ) - | TypB id -> TypB id - | DefB (id, params, typ) -> DefB (id, params, typ) - | GramB (id, params, typ) -> GramB (id, params, typ) +and transform_param t p = + let f = t.transform_param in + let it = match p.it with + | ExpP (id, typ) -> ExpP (id, typ) + | TypP id -> TypP id + | DefP (id, params, typ) -> DefP (id, params, typ) + | GramP (id, params, typ) -> GramP (id, params, typ) in - f { b with it } + f { p with it } and transform_clause t c = { c with it = match c.it with | DefD (bs, args, e, ps) -> - DefD (List.map (transform_bind t) bs, List.map (transform_arg t) args, transform_exp t e, List.map (transform_prem t) ps) } + DefD (List.map (transform_param t) bs, List.map (transform_arg t) args, transform_exp t e, List.map (transform_prem t) ps) } (* For unification *) @@ -109,5 +109,5 @@ and transform_helper_def t hd = | (id, cs, partial) -> (id, List.map (transform_clause t) cs, partial) } and transform_rule t r = - let RuleD (id, binds, mixop, exp, prems) = r.it in - RuleD (id, binds, mixop, transform_exp t exp, List.map (transform_prem t) prems) $ r.at + let RuleD (id, params, mixop, exp, prems) = r.it in + RuleD (id, params, mixop, transform_exp t exp, List.map (transform_prem t) prems) $ r.at diff --git a/spectec/src/il2al/il_walk.mli b/spectec/src/il2al/il_walk.mli index 34752bf481..895b794364 100644 --- a/spectec/src/il2al/il_walk.mli +++ b/spectec/src/il2al/il_walk.mli @@ -3,7 +3,7 @@ open Def type transformer = { transform_exp: exp -> exp; - transform_bind: bind -> bind; + transform_param: param -> param; transform_prem: prem -> prem; transform_iterexp: iterexp -> iterexp; } diff --git a/spectec/src/il2al/translate.ml b/spectec/src/il2al/translate.ml index 62121c0023..8ec8c5e36b 100644 --- a/spectec/src/il2al/translate.ml +++ b/spectec/src/il2al/translate.ml @@ -35,7 +35,7 @@ let is_store: Il.exp -> bool = check_typ_of_exp "store" let is_frame: Il.exp -> bool = check_typ_of_exp "frame" let is_config: Il.exp -> bool = check_typ_of_exp "config" -let field t = Il.VarE ("_" $ Source.no_region) $$ Source.no_region % t, t +let field t = "_" $ Source.no_region, t let typ_store = Il.VarT ("store" $ Source.no_region, []) $ Source.no_region let typ_frame = Il.VarT ("frame" $ Source.no_region, []) $ Source.no_region let typ_state = Il.VarT ("state" $ Source.no_region, []) $ Source.no_region @@ -44,17 +44,17 @@ let typ_state_arg = Il.TupT [field typ_store; field typ_frame] $ Source.no_regio let split_config (exp: Il.exp): Il.exp * Il.exp = assert(is_config exp); match exp.it with - | Il.CaseE ([[]; [{it = Atom.Semicolon; _}]; []], {it = TupE [ e1; e2 ]; _}) + | Il.CaseE ([[]; [{it = Atom.Semicolon; _}]; []], _, {it = TupE [ e1; e2 ]; _}) when is_state e1 -> e1, e2 - | Il.CaseE ([[]; [{it = Atom.Semicolon; _}]; []], {it = TupE [ e1; e2 ]; _}) + | Il.CaseE ([[]; [{it = Atom.Semicolon; _}]; []], _, {it = TupE [ e1; e2 ]; _}) when is_frame e1 -> let store = Il.StrE [] $$ e1.at % typ_store in - let state = Il.CaseE ([[]; [Atom.Semicolon $$ e1.at % Atom.info ""]; []], Il.TupE [ store; e1 ] $$ e1.at % typ_state_arg) $$ e1.at % typ_state in + let state = Il.CaseE ([[]; [Atom.Semicolon $$ e1.at % Atom.info ""]; []], [], Il.TupE [ store; e1 ] $$ e1.at % typ_state_arg) $$ e1.at % typ_state in state, e2 - | Il.CaseE ([[]; [{it = Atom.Semicolon; _}]; []], {it = TupE [ e1; e2 ]; _}) + | Il.CaseE ([[]; [{it = Atom.Semicolon; _}]; []], _, {it = TupE [ e1; e2 ]; _}) when is_store e1 -> let frame = Il.StrE [] $$ e1.at % typ_frame in - let state = Il.CaseE ([[]; [Atom.Semicolon $$ e1.at % Atom.info ""]; []], Il.TupE [ e1; frame ] $$ e1.at % typ_state_arg) $$ e1.at % typ_state in + let state = Il.CaseE ([[]; [Atom.Semicolon $$ e1.at % Atom.info ""]; []], [], Il.TupE [ e1; frame ] $$ e1.at % typ_state_arg) $$ e1.at % typ_state in state, e2 | _ -> error exp.at (sprintf "can not recognize `%s` as a `config` expression" (Il.Print.string_of_exp exp)) @@ -62,7 +62,7 @@ let split_config (exp: Il.exp): Il.exp * Il.exp = let split_state (exp: Il.exp): Il.exp * Il.exp = assert(is_state exp); match exp.it with - | Il.CaseE ([[]; [{it = Atom.Semicolon; _}]; []], {it = TupE [ e1; e2 ]; _}) + | Il.CaseE ([[]; [{it = Atom.Semicolon; _}]; []], _, {it = TupE [ e1; e2 ]; _}) when is_store e1 && is_frame e2 -> e1, e2 | _ -> error exp.at (sprintf "can not recognize `%s` as a `state` expression" (Il.Print.string_of_exp exp)) @@ -87,8 +87,8 @@ let is_case e = | _ -> false let args_of_case e = match e.it with - | Il.CaseE (_, { it = Il.TupE exps; _ }) -> exps - | Il.CaseE (_, exp) -> [ exp ] + | Il.CaseE (_, _, { it = Il.TupE exps; _ }) -> exps + | Il.CaseE (_, _, exp) -> [ exp ] | _ -> error e.at (sprintf "cannot get arguments of case expression `%s`" (Il.Print.string_of_exp e)) let is_simple_separator = function @@ -146,7 +146,7 @@ let rec is_wasm_value e = (* TODO: use hint? *) match e.it with | Il.SubE (e, _, _) -> is_wasm_value e - | Il.CaseE ([{it = Atom id; _}]::_, _) when + | Il.CaseE ([{it = Atom id; _}]::_, _, _) when List.mem id [ "CONST"; "VCONST"; @@ -198,7 +198,7 @@ and translate_exp exp = | Il.IterE (inner_exp, iterexp) -> iterE (translate_exp inner_exp, translate_iterexp iterexp) ~at ~note (* property access *) - | Il.DotE (inner_exp, ({it = Atom _; _} as atom)) -> + | Il.DotE (inner_exp, ({it = Atom _; _} as atom), _) -> accE (translate_exp inner_exp, dotP atom) ~at ~note (* concatenation of records *) | Il.CompE (exp1, exp2) -> compE (translate_exp exp1, translate_exp exp2) ~at ~note @@ -237,7 +237,7 @@ and translate_exp exp = (* Record expression *) | Il.StrE expfields -> let f acc = function - | {it = Atom.Atom _; _} as atom, fieldexp -> + | {it = Atom.Atom _; _} as atom, _, fieldexp -> let expr = translate_exp fieldexp in Record.add atom expr acc | _ -> error_exp exp "AL record expression" @@ -245,7 +245,7 @@ and translate_exp exp = let record = List.fold_left f Record.empty expfields in strE record ~at ~note (* CaseE *) - | Il.CaseE (op, e) -> ( + | Il.CaseE (op, _, e) -> ( let exps = match e.it with | TupE exps -> exps @@ -267,7 +267,7 @@ and translate_exp exp = else error_exp exp "arity mismatch for CaseE mixop and args" ) - | Il.UncaseE (e, op) -> + | Il.UncaseE (e, op, _) -> (match op with | [ []; [] ] -> translate_exp e | _ -> yetE (Il.Print.string_of_exp exp) ~at ~note @@ -304,7 +304,7 @@ and translate_path path = | Il.RootP -> [] | Il.IdxP (p, e) -> (translate_path' p) @ [ idxP (translate_exp e) ~at ] | Il.SliceP (p, e1, e2) -> (translate_path' p) @ [ sliceP (translate_exp e1, translate_exp e2) ~at ] - | Il.DotP (p, ({it = Atom _; _} as atom)) -> + | Il.DotP (p, ({it = Atom _; _} as atom), _) -> (translate_path' p) @ [ dotP atom ~at ] | _ -> assert false in @@ -319,12 +319,12 @@ and translate_iterexp (iter, xes) = let insert_assert exp = let at = exp.at in match exp.it with - | Il.CaseE ([{it = Atom.Atom id; _}]::_, _) when List.mem id context_names -> + | Il.CaseE ([{it = Atom.Atom id; _}]::_, _, _) when List.mem id context_names -> assertI (contextKindE (atom_of_name id "evalctx") ~note:boolT) ~at:at | Il.IterE (_, (Il.ListN (e, None), _)) -> assertI (topValuesE (translate_exp e) ~at ~note:boolT) ~at:at | Il.IterE (_, (Il.List, _)) -> nopI () ~at:at - | Il.CaseE ([{it = Atom.Atom "CONST"; _}]::_, { it = Il.TupE (ty' :: _); _ }) -> + | Il.CaseE ([{it = Atom.Atom "CONST"; _}]::_, _, { it = Il.TupE (ty' :: _); _ }) -> assertI (topValueE (Some (translate_exp ty')) ~note:boolT) ~at:at | _ -> assertI (topValueE None ~note:boolT) ~at:at @@ -333,7 +333,7 @@ let cond_of_pop_value e = let at = e.at in let bt = boolT in match e.it with - (* | CaseE (op, [t; _]) -> + (* | CaseE (op, _, [t; _]) -> (match get_atom op with | Some {it = Atom.Atom "CONST"; _} -> topValueE (Some t) ~note:bt | Some {it = Atom.Atom "VCONST"; _} -> topValueE (Some t) ~note:bt @@ -425,7 +425,7 @@ let rec translate_rhs exp = let at = exp.at in match exp.it with (* Trap *) - | Il.CaseE ([{it = Atom "TRAP"; _}]::_, _) -> [ trapI () ~at ] + | Il.CaseE ([{it = Atom "TRAP"; _}]::_, _, _) -> [ trapI () ~at ] (* Context *) | _ when is_context exp -> translate_context_rhs exp (* Config *) @@ -1041,7 +1041,7 @@ let to_frame_instr r = let rec e_to_frame_instr e = match e with - | {it = Il.Ast.CaseE ([[]; [{it = Semicolon; _}]; []], {it = TupE [lhs; rhs]; _}); _} -> + | {it = Il.Ast.CaseE ([[]; [{it = Semicolon; _}]; []], _, {it = TupE [lhs; rhs]; _}); _} -> let i = e_to_frame_instr lhs in if i = [] then e_to_frame_instr rhs else i | {it = Il.Ast.VarE _; note = {it = Il.Ast.VarT ({it = "frame"; _}, _); _}; _} -> @@ -1101,7 +1101,7 @@ let translate_context ctx = let at = ctx.at in match ctx.it with - | Il.CaseE ([{it = Atom.Atom id; _} as atom]::_ as case, { it = Il.TupE args; _ }) when List.mem id context_names -> + | Il.CaseE ([{it = Atom.Atom id; _} as atom]::_ as case, _, { it = Il.TupE args; _ }) when List.mem id context_names -> let destruct = caseE (case, List.map translate_exp args) ~note:evalctxT ~at in [ letI (destruct, getCurContextE atom ~note:evalctxT) ~at:at; diff --git a/spectec/src/il2al/unify.ml b/spectec/src/il2al/unify.ml index 90b42f6e67..190005c3f2 100644 --- a/spectec/src/il2al/unify.ml +++ b/spectec/src/il2al/unify.ml @@ -122,10 +122,10 @@ let rec overlap env e1 e2 = if eq_exp e1 e2 then e1 else UpdE (overlap env e1 e2, path1, overlap env e1' e2') |> replace_it | ExtE (e1, path1, e1'), ExtE (e2, path2, e2') when eq_path path1 path2 -> ExtE (overlap env e1 e2, path1, overlap env e1' e2') |> replace_it - | StrE efs1, StrE efs2 when List.map fst efs1 = List.map fst efs2 -> - StrE (List.map2 (fun (a1, e1) (_, e2) -> (a1, overlap env e1 e2)) efs1 efs2) |> replace_it - | DotE (e1, atom1), DotE (e2, atom2) when eq_atom atom1 atom2 -> - DotE (overlap env e1 e2, atom1) |> replace_it + | StrE efs1, StrE efs2 when List.map (fun (a, _, _) -> a) efs1 = List.map (fun (a, _, _) -> a) efs2 -> + StrE (List.map2 (fun (a1, as1, e1) (_, as2, e2) -> (a1, List.map2 (overlap_arg env) as1 as2, overlap env e1 e2)) efs1 efs2) |> replace_it + | DotE (e1, atom1, as1), DotE (e2, atom2, as2) when eq_atom atom1 atom2 -> + DotE (overlap env e1 e2, atom1, List.map2 (overlap_arg env) as1 as2) |> replace_it | CompE (e1, e1'), CompE (e2, e2') -> CompE (overlap env e1 e2, overlap env e1' e2') |> replace_it | LenE e1, LenE e2 -> @@ -138,8 +138,8 @@ let rec overlap env e1 e2 = if eq_exp e1 e2 then e1 else IterE (overlap env e1 e2, itere1) |> replace_it | ProjE (e1, i1), ProjE (e2, i2) when i1 = i2 -> ProjE (overlap env e1 e2, i1) |> replace_it - | UncaseE (e1, op1), UncaseE (e2, op2) when eq_mixop op1 op2 -> - UncaseE (overlap env e1 e2, op1) |> replace_it + | UncaseE (e1, op1, as1), UncaseE (e2, op2, as2) when eq_mixop op1 op2 -> + UncaseE (overlap env e1 e2, op1, List.map2 (overlap_arg env) as1 as2) |> replace_it | OptE (Some e1), OptE (Some e2) -> OptE (Some (overlap env e1 e2)) |> replace_it | TheE e1, TheE e2 -> @@ -152,8 +152,8 @@ let rec overlap env e1 e2 = if eq_exp e1 e2 then e1 else CatE (overlap env e1 e2, overlap env e1' e2') |> replace_it | MemE (e1, e1'), MemE (e2, e2') -> MemE (overlap env e1 e2, overlap env e1' e2') |> replace_it - | CaseE (mixop1, e1), CaseE (mixop2, e2) when eq_mixop mixop1 mixop2 -> - CaseE (mixop1, overlap env e1 e2) |> replace_it + | CaseE (mixop1, as1, e1), CaseE (mixop2, as2, e2) when eq_mixop mixop1 mixop2 -> + CaseE (mixop1, List.map2 (overlap_arg env) as1 as2, overlap env e1 e2) |> replace_it | SubE (e1, typ1, typ1'), SubE (e2, typ2, typ2') when eq_typ typ1 typ2 && eq_typ typ1' typ2' -> SubE (overlap env e1 e2, typ1, typ1') |> replace_it (* HARDCODE: Prevent vals overlapped into instr *) @@ -203,8 +203,8 @@ and overlap_typ env t1 t2 = if eq_typ t1 t2 then t1 else (match t1.it, t2.it with | VarT (id1, args1), VarT (id2, args2) when id1 = id2 -> VarT (id1, List.map2 (overlap_arg env) args1 args2) - | TupT ets1, TupT ets2 when List.for_all2 (fun (e1, _) (e2, _) -> eq_exp e1 e2) ets1 ets2 -> - TupT (List.map2 (fun (e1, t1) (_, t2) -> (e1, (overlap_typ env) t1 t2)) ets1 ets2) + | TupT xts1, TupT xts2 when List.for_all2 (fun (x1, _) (x2, _) -> eq_id x1 x2) xts1 xts2 -> + TupT (List.map2 (fun (x1, t1) (_, t2) -> (x1, (overlap_typ env) t1 t2)) xts1 xts2) | IterT (t1, iter1), IterT (t2, iter2) when eq_iter iter1 iter2 -> IterT (overlap_typ env t1 t2, iter1) | _ -> assert false (* Unreachable due to IL validation *) @@ -218,17 +218,14 @@ let rec collect_unified template e = if eq_exp template e then [], [] else | IterE ({ it = VarE id; _}, _) , _ when is_unified_id id.it -> [IfPr (CmpE (`EqOp, `BoolT, template, e) $$ e.at % (BoolT $ e.at)) $ e.at], - [ExpB (id, template.note) $ e.at] + [ExpP (id, template.note) $ e.at] | UnE (_, _, e1), UnE (_, _, e2) - | DotE (e1, _), DotE (e2, _) | LiftE e1, LiftE e2 | LenE e1, LenE e2 | IterE (e1, _), IterE (e2, _) | ProjE (e1, _), ProjE (e2, _) - | UncaseE (e1, _), UncaseE (e2, _) | OptE (Some e1), OptE (Some e2) | TheE e1, TheE e2 - | CaseE (_, e1), CaseE (_, e2) | SubE (e1, _, _), SubE (e2, _, _) -> collect_unified e1 e2 | BinE (_, _, e1, e1'), BinE (_, _, e2, e2') | CmpE (_, _, e1, e1'), CmpE (_, _, e2, e2') @@ -236,12 +233,15 @@ let rec collect_unified template e = if eq_exp template e then [], [] else | UpdE (e1, _, e1'), UpdE (e2, _, e2') | ExtE (e1, _, e1'), ExtE (e2, _, e2') | CompE (e1, e1'), CompE (e2, e2') - | CatE (e1, e1'), CatE (e2, e2') -> pairwise_concat (collect_unified e1 e2) (collect_unified e1' e2') + | CatE (e1, e1'), CatE (e2, e2') | MemE (e1, e1'), MemE (e2, e2') -> pairwise_concat (collect_unified e1 e2) (collect_unified e1' e2') + | DotE (e1, _, as1), DotE (e2, _, as2) + | UncaseE (e1, _, as1), UncaseE (e2, _, as2) + | CaseE (_, as1, e1), CaseE (_, as2, e2) -> pairwise_concat (collect_unified e1 e2) (collect_unified_args as1 as2) | SliceE (e1, e1', e1''), SliceE (e2, e2', e2'') -> pairwise_concat (pairwise_concat (collect_unified e1 e2) (collect_unified e1' e2')) (collect_unified e1'' e2'') | StrE efs1, StrE efs2 -> - List.fold_left2 (fun acc (_, e1) (_, e2) -> pairwise_concat acc (collect_unified e1 e2)) ([], []) efs1 efs2 + List.fold_left2 (fun acc (_, as1, e1) (_, as2, e2) -> pairwise_concat acc (pairwise_concat (collect_unified e1 e2) (collect_unified_args as1 as2))) ([], []) efs1 efs2 | TupE es1, TupE es2 | ListE es1, ListE es2 -> List.fold_left2 (fun acc e1 e2 -> pairwise_concat acc (collect_unified e1 e2)) ([], []) es1 es2 diff --git a/spectec/src/middlend/sideconditions.ml b/spectec/src/middlend/sideconditions.ml index 5e3fa71818..43a616b772 100644 --- a/spectec/src/middlend/sideconditions.ml +++ b/spectec/src/middlend/sideconditions.ml @@ -74,14 +74,11 @@ let rec t_exp env e : prem list = | VarE _ | BoolE _ | NumE _ | TextE _ | OptE None -> [] | UnE (_, _, exp) - | DotE (exp, _) | LenE exp | ProjE (exp, _) - | UncaseE (exp, _) | OptE (Some exp) | TheE exp | LiftE exp - | CaseE (_, exp) | CvtE (exp, _, _) | SubE (exp, _, _) -> t_exp env exp @@ -99,8 +96,13 @@ let rec t_exp env e : prem list = -> t_exp env exp1 @ t_path env path @ t_exp env exp2 | CallE (_, args) -> List.concat_map (t_arg env) args + | CaseE (_, args, exp) + | UncaseE (exp, _, args) + | DotE (exp, _, args) + -> List.concat_map (t_arg env) args @ t_exp env exp | StrE fields - -> List.concat_map (fun (_, e) -> t_exp env e) fields + -> List.concat_map (fun (_, args, exp) -> + List.concat_map (t_arg env) args @ t_exp env exp) fields | TupE es | ListE es -> List.concat_map (t_exp env) es | IterE (e1, iterexp) @@ -119,7 +121,7 @@ and t_path env path = match path.it with | RootP -> [] | IdxP (path, e) -> t_path env path @ t_exp env e | SliceP (path, e1, e2) -> t_path env path @ t_exp env e1 @ t_exp env e2 - | DotP (path, _) -> t_path env path + | DotP (path, _, args) -> t_path env path @ List.concat_map (t_arg env) args and t_arg env arg = match arg.it with | ExpA exp -> t_exp env exp @@ -167,16 +169,17 @@ let reduce_prems prems = prems |> Util.Lib.List.nub implies let t_rule' = function - | RuleD (id, binds, mixop, exp, prems) -> - let env = List.fold_left (fun env bind -> - match bind.it with - | ExpB (v, t) -> Env.add v.it t env - | TypB _ | DefB _ | GramB _ -> error bind.at "unexpected type argument in rule") Env.empty binds + | RuleD (id, params, mixop, exp, prems) -> + let env = List.fold_left (fun env param -> + match param.it with + | ExpP (v, t) -> Env.add v.it t env + | TypP _ | DefP _ | GramP _ -> error param.at "unexpected type argument in rule" + ) Env.empty params in let prems' = t_prems env prems in let extra_prems = t_exp env exp in let reduced_prems = reduce_prems (extra_prems @ prems') in - RuleD (id, binds, mixop, exp, reduced_prems) + RuleD (id, params, mixop, exp, reduced_prems) let t_rule x = { x with it = t_rule' x.it } diff --git a/spectec/src/middlend/sub.ml b/spectec/src/middlend/sub.ml index 97de47859d..2c0180853b 100644 --- a/spectec/src/middlend/sub.ml +++ b/spectec/src/middlend/sub.ml @@ -63,7 +63,7 @@ let arg_of_param param = | ExpP (id, t) -> ExpA (VarE id $$ param.at % t) $ param.at | TypP id -> TypA (VarT (id, []) $ param.at) $ param.at | DefP (id, _ps, _t) -> DefA id $ param.at - | GramP (id, _t) -> GramA (VarG (id, []) $ param.at) $ param.at + | GramP (id, _ps, _t) -> GramA (VarG (id, []) $ param.at) $ param.at let register_variant (env : env) (id : id) params (cases : typcase list) = if M.mem id.it env.typ then @@ -132,10 +132,10 @@ and t_deftyp' env = function | StructT typfields -> StructT (List.map (t_typfield env) typfields) | VariantT typcases -> VariantT (List.map (t_typcase env) typcases) -and t_typfield env (atom, (binds, t, prems), hints) = - (atom, (t_binds env binds, t_typ env t, t_prems env prems), hints) -and t_typcase env (atom, (binds, t, prems), hints) = - (atom, (t_binds env binds, t_typ env t, t_prems env prems), hints) +and t_typfield env (atom, (params, t, prems), hints) = + (atom, (t_params env params, t_typ env t, t_prems env prems), hints) +and t_typcase env (atom, (params, t, prems), hints) = + (atom, (t_params env params, t_typ env t, t_prems env prems), hints) and t_exp2 env x = { x with it = t_exp' env x.it; note = t_typ env x.note } @@ -148,8 +148,8 @@ and t_exp' env = function | SliceE (exp1, exp2, exp3) -> SliceE (t_exp env exp1, t_exp env exp2, t_exp env exp3) | UpdE (exp1, path, exp2) -> UpdE (t_exp env exp1, t_path env path, t_exp env exp2) | ExtE (exp1, path, exp2) -> ExtE (t_exp env exp1, t_path env path, t_exp env exp2) - | StrE fields -> StrE (List.map (fun (a, e) -> a, t_exp env e) fields) - | DotE (e, a) -> DotE (t_exp env e, a) + | StrE fields -> StrE (List.map (fun (a, args, e) -> a, t_args env args, t_exp env e) fields) + | DotE (e, a, args) -> DotE (t_exp env e, a, t_args env args) | CompE (exp1, exp2) -> CompE (t_exp env exp1, t_exp env exp2) | LiftE exp -> LiftE (t_exp env exp) | LenE exp -> LenE (t_exp env exp) @@ -157,14 +157,14 @@ and t_exp' env = function | CallE (a, args) -> CallE (a, t_args env args) | IterE (e, iterexp) -> IterE (t_exp env e, t_iterexp env iterexp) | ProjE (e, i) -> ProjE (t_exp env e, i) - | UncaseE (e, mixop) -> UncaseE (t_exp env e, mixop) + | UncaseE (e, mixop, args) -> UncaseE (t_exp env e, mixop, t_args env args) | OptE None -> OptE None | OptE (Some exp) -> OptE (Some exp) | TheE exp -> TheE exp | ListE es -> ListE (List.map (t_exp env) es) | CatE (exp1, exp2) -> CatE (t_exp env exp1, t_exp env exp2) | MemE (exp1, exp2) -> MemE (t_exp env exp1, t_exp env exp2) - | CaseE (mixop, e) -> CaseE (mixop, t_exp env e) + | CaseE (mixop, args, e) -> CaseE (mixop, t_args env args, t_exp env e) | CvtE (exp, t1, t2) -> CvtE (t_exp env exp, t1, t2) | SubE (e, t1, t2) -> SubE (e, t1, t2) @@ -179,7 +179,7 @@ and t_path' env = function | RootP -> RootP | IdxP (path, e) -> IdxP (t_path env path, t_exp env e) | SliceP (path, e1, e2) -> SliceP (t_path env path, t_exp env e1, t_exp env e2) - | DotP (path, a) -> DotP (t_path env path, a) + | DotP (path, a, args) -> DotP (t_path env path, a, t_args env args) and t_path env x = { x with it = t_path' env x.it; note = t_typ env x.note } @@ -202,24 +202,15 @@ and t_arg' env = function and t_arg env x = { x with it = t_arg' env x.it } -and t_bind' env = function - | ExpB (id, t) -> ExpB (id, t_typ env t) - | TypB id -> TypB id - | DefB (id, ps, t) -> DefB (id, t_params env ps, t_typ env t) - | GramB (id, ps, t) -> GramB (id, t_params env ps, t_typ env t) - -and t_bind env x = { x with it = t_bind' env x.it } - and t_param' env = function | ExpP (id, t) -> ExpP (id, t_typ env t) | TypP id -> TypP id | DefP (id, ps, t) -> DefP (id, t_params env ps, t_typ env t) - | GramP (id, t) -> GramP (id, t_typ env t) + | GramP (id, ps, t) -> GramP (id, t_params env ps, t_typ env t) and t_param env x = { x with it = t_param' env x.it } and t_args env = List.map (t_arg env) -and t_binds env = List.map (t_bind env) and t_params env = List.map (t_param env) and t_prem' env = function @@ -234,32 +225,32 @@ and t_prem env x = { x with it = t_prem' env x.it } and t_prems env = List.map (t_prem env) let t_clause' env = function - | DefD (binds, lhs, rhs, prems) -> - DefD (t_binds env binds, (*DO NOT intro calls on LHS: t_args env*) lhs, t_exp env rhs, t_prems env prems) + | DefD (params, lhs, rhs, prems) -> + DefD (t_params env params, (*DO NOT intro calls on LHS: t_args env*) lhs, t_exp env rhs, t_prems env prems) let t_clause env (clause : clause) = { clause with it = t_clause' env clause.it } let t_clauses env = List.map (t_clause env) let t_inst' env = function - | InstD (binds, args, deftyp) -> - InstD (t_binds env binds, (*DO NOT intro calls on LHS: t_args env*) args, t_deftyp env deftyp) + | InstD (params, args, deftyp) -> + InstD (t_params env params, (*DO NOT intro calls on LHS: t_args env*) args, t_deftyp env deftyp) let t_inst env (inst : inst) = { inst with it = t_inst' env inst.it } let t_insts env = List.map (t_inst env) let t_prod' env = function - | ProdD (binds, lhs, rhs, prems) -> - ProdD (t_binds env binds, t_sym env lhs, t_exp env rhs, t_prems env prems) + | ProdD (params, lhs, rhs, prems) -> + ProdD (t_params env params, t_sym env lhs, t_exp env rhs, t_prems env prems) let t_prod env (prod : prod) = { prod with it = t_prod' env prod.it } let t_prods env = List.map (t_prod env) let t_rule' env = function - | RuleD (id, binds, mixop, exp, prems) -> - RuleD (id, t_binds env binds, mixop, t_exp env exp, t_prems env prems) + | RuleD (id, params, mixop, exp, prems) -> + RuleD (id, t_params env params, mixop, t_exp env exp, t_prems env prems) let t_rule env x = { x with it = t_rule' env x.it } @@ -315,9 +306,9 @@ let rec rename_params s = function let id' = (id.it ^ "_2") $ id.at in (DefP (id', ps, t) $ at) :: rename_params (Il.Subst.add_defid s id id') params - | { it = GramP (id, t); at; _ } :: params -> + | { it = GramP (id, ps, t); at; _ } :: params -> let id' = (id.it ^ "_2") $ id.at in - (GramP (id', t) $ at) :: + (GramP (id', ps, t) $ at) :: rename_params (Il.Subst.add_gramid s id (VarG (id', []) $ id.at)) params let insert_injections env (def : def) : def list = @@ -332,25 +323,25 @@ let insert_injections env (def : def) : def list = let sub_ty = VarT (sub, List.map arg_of_param params_sub) $ no_region in let sup_ty = VarT (sup, List.map arg_of_param params_sup') $ no_region in let real_ty = VarT (real_id_sub, args_sub) $ no_region in - let clauses = List.map (fun (a, (_binds, arg_typ, _prems), _hints) -> + let clauses = List.map (fun (a, (_params, arg_typ, _prems), _hints) -> match arg_typ.it with | TupT ts -> - let binds = List.mapi (fun i (_, arg_typ_i) -> ExpB ("x" ^ string_of_int i $ no_region, arg_typ_i) $ no_region) ts in - let xes = List.map (fun bind -> - match bind.it with - | ExpB (x, arg_typ_i) -> VarE x $$ no_region % arg_typ_i - | TypB _ | DefB _ | GramB _ -> assert false) binds + let params = List.mapi (fun i (_, arg_typ_i) -> ExpP ("x" ^ string_of_int i $ no_region, arg_typ_i) $ no_region) ts in + let xes = List.map (fun param -> + match param.it with + | ExpP (x, arg_typ_i) -> VarE x $$ no_region % arg_typ_i + | TypP _ | DefP _ | GramP _ -> assert false) params in let xe = TupE xes $$ no_region % arg_typ in - DefD (binds, - [ExpA (CaseE (a, xe) $$ no_region % real_ty) $ no_region], - CaseE (a, xe) $$ no_region % sup_ty, []) $ no_region + DefD (params, + [ExpA (CaseE (a, [], xe) $$ no_region % real_ty) $ no_region], + CaseE (a, [], xe) $$ no_region % sup_ty, []) $ no_region | _ -> let x = "x" $ no_region in let xe = VarE x $$ no_region % arg_typ in - DefD ([ExpB (x, arg_typ) $ x.at], - [ExpA (CaseE (a, xe) $$ no_region % real_ty) $ no_region], - CaseE (a, xe) $$ no_region % sup_ty, []) $ no_region + DefD ([ExpP (x, arg_typ) $ x.at], + [ExpA (CaseE (a, [], xe) $$ no_region % real_ty) $ no_region], + CaseE (a, [], xe) $$ no_region % sup_ty, []) $ no_region ) cases_sub in DecD (name, params_sub @ params_sup' @ [ExpP ("_" $ no_region, sub_ty) $ no_region], sup_ty, clauses) $ no_region ) pairs diff --git a/spectec/src/middlend/totalize.ml b/spectec/src/middlend/totalize.ml index ea995d35db..b4495e351e 100644 --- a/spectec/src/middlend/totalize.ml +++ b/spectec/src/middlend/totalize.ml @@ -67,10 +67,10 @@ and t_deftyp' env = function | StructT typfields -> StructT (List.map (t_typfield env) typfields) | VariantT typcases -> VariantT (List.map (t_typcase env) typcases) -and t_typfield env (atom, (binds, t, prems), hints) = - (atom, (t_binds env binds, t_typ env t, t_prems env prems), hints) -and t_typcase env (atom, (binds, t, prems), hints) = - (atom, (t_binds env binds, t_typ env t, t_prems env prems), hints) +and t_typfield env (atom, (params, t, prems), hints) = + (atom, (t_params env params, t_typ env t, t_prems env prems), hints) +and t_typcase env (atom, (params, t, prems), hints) = + (atom, (t_params env params, t_typ env t, t_prems env prems), hints) (* Expr traversal *) @@ -86,15 +86,15 @@ and t_exp' env = function | SliceE (exp1, exp2, exp3) -> SliceE (t_exp env exp1, t_exp env exp2, t_exp env exp3) | UpdE (exp1, path, exp2) -> UpdE (t_exp env exp1, t_path env path, t_exp env exp2) | ExtE (exp1, path, exp2) -> ExtE (t_exp env exp1, t_path env path, t_exp env exp2) - | StrE fields -> StrE (List.map (fun (a, e) -> a, t_exp env e) fields) - | DotE (e, a) -> DotE (t_exp env e, a) + | StrE fields -> StrE (List.map (fun (a, args, e) -> a, List.map (t_arg env) args, t_exp env e) fields) + | DotE (e, a, args) -> DotE (t_exp env e, a, List.map (t_arg env) args) | CompE (exp1, exp2) -> CompE (t_exp env exp1, t_exp env exp2) | LenE exp -> LenE (t_exp env exp) | TupE es -> TupE (List.map (t_exp env) es) | CallE (a, args) -> CallE (a, List.map (t_arg env) args) | IterE (e, iterexp) -> IterE (t_exp env e, t_iterexp env iterexp) | ProjE (e, i) -> ProjE (t_exp env e, i) - | UncaseE (e, mixop) -> UncaseE (t_exp env e, mixop) + | UncaseE (e, mixop, args) -> UncaseE (t_exp env e, mixop, List.map (t_arg env) args) | OptE None -> OptE None | OptE (Some exp) -> OptE (Some (t_exp env exp)) | TheE exp -> TheE (t_exp env exp) @@ -102,7 +102,7 @@ and t_exp' env = function | LiftE exp -> LiftE (t_exp env exp) | CatE (exp1, exp2) -> CatE (t_exp env exp1, t_exp env exp2) | MemE (exp1, exp2) -> MemE (t_exp env exp1, t_exp env exp2) - | CaseE (mixop, e) -> CaseE (mixop, t_exp env e) + | CaseE (mixop, args, e) -> CaseE (mixop, List.map (t_arg env) args, t_exp env e) | CvtE (exp, t1, t2) -> CvtE (t_exp env exp, t1, t2) | SubE (exp, t1, t2) -> SubE (t_exp env exp, t_typ env t1, t_typ env t2) @@ -117,7 +117,7 @@ and t_path' env = function | RootP -> RootP | IdxP (path, e) -> IdxP (t_path env path, t_exp env e) | SliceP (path, e1, e2) -> SliceP (t_path env path, t_exp env e1, t_exp env e2) - | DotP (path, a) -> DotP (t_path env path, a) + | DotP (path, a, args) -> DotP (t_path env path, a, List.map (t_arg env) args) and t_path env x = { x with it = t_path' env x.it; note = t_typ env x.note } @@ -140,24 +140,15 @@ and t_arg' env = function and t_arg env x = { x with it = t_arg' env x.it } -and t_bind' env = function - | ExpB (id, t) -> ExpB (id, t_typ env t) - | TypB id -> TypB id - | DefB (id, ps, t) -> DefB (id, t_params env ps, t_typ env t) - | GramB (id, ps, t) -> GramB (id, t_params env ps, t_typ env t) - -and t_bind env x = { x with it = t_bind' env x.it } - and t_param' env = function | ExpP (id, t) -> ExpP (id, t_typ env t) | TypP id -> TypP id | DefP (id, ps, t) -> DefP (id, t_params env ps, t_typ env t) - | GramP (id, t) -> GramP (id, t_typ env t) + | GramP (id, ps, t) -> GramP (id, t_params env ps, t_typ env t) and t_param env x = { x with it = t_param' env x.it } and t_args env = List.map (t_arg env) -and t_binds env = List.map (t_bind env) and t_params env = List.map (t_param env) and t_prem' env = function @@ -172,28 +163,28 @@ and t_prem env x = { x with it = t_prem' env x.it } and t_prems env = List.map (t_prem env) let t_clause' env = function - | DefD (binds, lhs, rhs, prems) -> - DefD (t_binds env binds, t_args env lhs, t_exp env rhs, t_prems env prems) + | DefD (params, lhs, rhs, prems) -> + DefD (t_params env params, t_args env lhs, t_exp env rhs, t_prems env prems) let t_clause env (clause : clause) = { clause with it = t_clause' env clause.it } let t_inst' env = function - | InstD (binds, args, deftyp) -> - InstD (t_binds env binds, t_args env args, t_deftyp env deftyp) + | InstD (params, args, deftyp) -> + InstD (t_params env params, t_args env args, t_deftyp env deftyp) let t_inst env (inst : inst) = { inst with it = t_inst' env inst.it } let t_insts env = List.map (t_inst env) let t_prod' env = function - | ProdD (binds, lhs, rhs, prems) -> - ProdD (t_binds env binds, t_sym env lhs, t_exp env rhs, t_prems env prems) + | ProdD (params, lhs, rhs, prems) -> + ProdD (t_params env params, t_sym env lhs, t_exp env rhs, t_prems env prems) let t_prod env (prod : prod) = { prod with it = t_prod' env prod.it } let t_rule' env = function - | RuleD (id, binds, mixop, exp, prems) -> - RuleD (id, t_binds env binds, mixop, t_exp env exp, t_prems env prems) + | RuleD (id, params, mixop, exp, prems) -> + RuleD (id, t_params env params, mixop, t_exp env exp, t_prems env prems) let t_rule env x = { x with it = t_rule' env x.it } @@ -206,19 +197,19 @@ let rec t_def' env = function if is_partial env id then let typ'' = IterT (typ', Opt) $ no_region in let clauses'' = List.map (fun clause -> match clause.it with - DefD (binds, lhs, rhs, prems) -> + DefD (params, lhs, rhs, prems) -> { clause with - it = DefD (t_binds env binds, lhs, OptE (Some rhs) $$ no_region % typ'', prems) } + it = DefD (t_params env params, lhs, OptE (Some rhs) $$ no_region % typ'', prems) } ) clauses' in - let binds, args = List.mapi (fun i param -> match param.it with + let params, args = List.mapi (fun i param -> match param.it with | ExpP (_, typI) -> let x = ("x" ^ string_of_int i) $ no_region in - [ExpB (x, typI) $ x.at], ExpA (VarE x $$ no_region % typI) $ no_region + [ExpP (x, typI) $ x.at], ExpA (VarE x $$ no_region % typI) $ no_region | TypP id -> [], TypA (VarT (id, []) $ no_region) $ no_region | DefP (id, _, _) -> [], DefA id $ no_region - | GramP (id, _) -> [], GramA (VarG (id, []) $ no_region) $ no_region + | GramP (id, _, _) -> [], GramA (VarG (id, []) $ no_region) $ no_region ) params' |> List.split in - let catch_all = DefD (List.concat binds, args, + let catch_all = DefD (List.concat params, args, OptE None $$ no_region % typ'', []) $ no_region in DecD (id, params', typ'', clauses'' @ [ catch_all ]) else diff --git a/spectec/src/middlend/unthe.ml b/spectec/src/middlend/unthe.ml index f1ec243a0d..2d3d5c9a13 100644 --- a/spectec/src/middlend/unthe.ml +++ b/spectec/src/middlend/unthe.ml @@ -19,7 +19,7 @@ let error at msg = Error.error at "option projection" msg (* We pull out fresh variables and equating side conditions. *) -type eqn = bind * prem +type eqn = param * prem type eqns = eqn list (* Fresh name generation *) @@ -42,19 +42,19 @@ let update_iterexp_vars (sets : Il.Free.sets) ((iter, vs) : iterexp) : iterexp = | _ -> [List.hd vs] (* prevent empty iterator list *) in (iter, vs'') -(* If a bind and premise is generated under an iteration, wrap them accordingly *) +(* If a param and premise is generated under an iteration, wrap them accordingly *) let under_iterexp (iter, vs) eqns : iterexp * eqns = - let new_vs = List.map (fun (bind, _) -> - match bind.it with - | ExpB (v, t) -> + let new_vs = List.map (fun (param, _) -> + match param.it with + | ExpP (v, t) -> (v, VarE v $$ v.at % (IterT (t, match iter with Opt -> Opt | _ -> List) $ v.at)) - | TypB _ | DefB _ | GramB _ -> error bind.at "unexpected type binding" + | TypP _ | DefP _ | GramP _ -> error param.at "unexpected sort of parameter" ) eqns in - let eqns' = List.map2 (fun (bind, pr) (v, e) -> + let eqns' = List.map2 (fun (param, pr) (v, e) -> let iterexp' = update_iterexp_vars (Il.Free.free_prem pr) (iter, vs @ [(v, e)]) in let pr' = IterPr (pr, iterexp') $ no_region in - (ExpB (v, e.note) $ bind.at, pr') + (ExpP (v, e.note) $ param.at, pr') ) eqns new_vs in (iter, vs @ new_vs), eqns' @@ -104,11 +104,11 @@ let rec t_exp n e : eqns * exp = in let x = fresh_id n in let xe = VarE x $$ no_region % t in - let bind = ExpB (x, t) $ no_region in + let param = ExpP (x, t) $ no_region in let prem = IfPr ( CmpE (`EqOp, `BoolT, exp, OptE (Some xe) $$ no_region % ot) $$ no_region % (BoolT $ no_region) ) $ no_region in - eqns @ [(bind, prem)], xe + eqns @ [(param, prem)], xe | _ -> eqns, e' (* Traversal helpers *) @@ -117,6 +117,7 @@ and t_exp2 n = phrase t_exp' n and t_e n x k = unary t_exp n x k and t_ee n x k = binary t_exp t_exp n x k +and t_eas n x k = binary t_exp (fun n xs -> t_list t_arg n xs Fun.id) n x k and t_eee n x k = ternary t_exp t_exp t_exp n x k and t_epe n x k = ternary t_exp t_path t_exp n x k @@ -125,15 +126,15 @@ and t_exp' n e : eqns * exp' = | VarE _ | BoolE _ | NumE _ | TextE _ | OptE None -> [], e | UnE (uo, nto, exp) -> t_e n exp (fun exp' -> UnE (uo, nto, exp')) - | DotE (exp, a) -> t_e n exp (fun exp' -> DotE (exp', a)) + | DotE (exp, a, args) -> t_eas n (exp, args) (fun (exp', args') -> DotE (exp', a, args')) | LenE exp -> t_e n exp (fun exp' -> LenE exp') | CallE (f, args) -> t_list t_arg n args (fun args' -> CallE (f, args')) | ProjE (exp, i) -> t_e n exp (fun exp' -> ProjE (exp', i)) - | UncaseE (exp, mo) -> t_e n exp (fun exp' -> UncaseE (exp', mo)) + | UncaseE (exp, mo, args) -> t_eas n (exp, args) (fun (exp', args') -> UncaseE (exp', mo, args')) | OptE (Some exp) -> t_e n exp (fun exp' -> OptE (Some exp')) | TheE exp -> t_e n exp (fun exp' -> TheE exp') | LiftE exp -> t_e n exp (fun exp' -> LiftE exp') - | CaseE (mixop, exp) -> t_e n exp (fun exp' -> CaseE (mixop, exp')) + | CaseE (mixop, args, exp) -> t_eas n (exp, args) (fun (exp', args') -> CaseE (mixop, args', exp')) | CvtE (exp, a, b) -> t_e n exp (fun exp' -> CvtE (exp', a, b)) | SubE (exp, a, b) -> t_e n exp (fun exp' -> SubE (exp', a, b)) @@ -160,16 +161,16 @@ and t_exp' n e : eqns * exp' = let iterexp''' = update_iterexp_vars (Il.Free.free_exp e') iterexp'' in eqns1' @ eqns2, IterE (e', iterexp''') -and t_field n ((a, e) : expfield) = - unary t_exp n e (fun e' -> (a, e')) +and t_field n ((a, args, e) : expfield) = + binary (fun n xs -> t_list t_arg n xs Fun.id) t_exp n (args, e) (fun (args', e') -> (a, args', e')) and t_iterexp n iterexp = - binary t_iter t_iterbinds n iterexp Fun.id + binary t_iter t_iterparams n iterexp Fun.id -and t_iterbinds n binds = - t_list t_iterbind n binds Fun.id +and t_iterparams n params = + t_list t_iterparam n params Fun.id -and t_iterbind n (id, e) = +and t_iterparam n (id, e) = unary t_exp n e (fun e' -> (id, e')) and t_iter n iter = match iter with @@ -182,7 +183,7 @@ and t_path' n path = match path with | RootP -> [], path | IdxP (path, e) -> binary t_path t_exp n (path, e) (fun (path', e') -> IdxP (path', e')) | SliceP (path, e1, e2) -> ternary t_path t_exp t_exp n (path, e1, e2) (fun (path', e1', e2') -> SliceP (path', e1', e2')) - | DotP (path, a) -> unary t_path n path (fun path' -> DotP (path', a)) + | DotP (path, a, args) -> binary t_path (fun n xs -> t_list t_arg n xs Fun.id) n (path, args) (fun (path', args') -> DotP (path', a, args')) and t_arg n = phrase t_arg' n @@ -211,12 +212,12 @@ and t_prem' n prem : eqns * prem' = let t_prems n k = t_list t_prem n k (fun x -> x) let t_rule' = function - | RuleD (id, binds, mixop, exp, prems) -> + | RuleD (id, params, mixop, exp, prems) -> (* Counter for fresh variables *) let n = ref 0 in let eqns, (exp', prems') = binary t_exp t_prems n (exp, prems) (fun x -> x) in - let extra_binds, extra_prems = List.split eqns in - RuleD (id, binds @ extra_binds, mixop, exp', extra_prems @ prems') + let extra_params, extra_prems = List.split eqns in + RuleD (id, params @ extra_params, mixop, exp', extra_prems @ prems') let t_rule x = { x with it = t_rule' x.it } From eee7845deda4056a9ed055099a2cdfcf8b401e3f Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Tue, 18 Nov 2025 11:41:24 +0100 Subject: [PATCH 03/23] WIP --- .../wasm-3.0/6.3-text.modules.spectec | 6 +- spectec/src/al/al_util.ml | 10 +- spectec/src/al/ast.ml | 2 +- spectec/src/al/print.ml | 6 +- spectec/src/al/valid.ml | 9 +- spectec/src/backend-ast/print.ml | 13 +- .../src/backend-interpreter/interpreter.ml | 6 +- spectec/src/backend-prose/gen.ml | 33 +- spectec/src/backend-prose/print.ml | 4 +- spectec/src/backend-prose/prose_util.ml | 6 +- spectec/src/backend-prose/prose_util.mli | 2 +- spectec/src/backend-prose/render.ml | 37 +- spectec/src/el/free.mli | 1 + spectec/src/el/print.ml | 8 +- spectec/src/el/print.mli | 4 +- spectec/src/frontend/elab.ml | 1987 +++++++++-------- spectec/src/il/ast.ml | 16 +- spectec/src/il/debug.ml | 2 + spectec/src/il/free.ml | 29 +- spectec/src/il/free.mli | 2 + spectec/src/il/fresh.ml | 29 + spectec/src/il/fresh.mli | 2 + spectec/src/il/print.ml | 27 +- spectec/src/il/print.mli | 14 +- spectec/src/il/subst.ml | 13 +- spectec/src/il/valid.ml | 18 +- spectec/src/il2al/animate.ml | 5 +- spectec/src/il2al/encode.ml | 15 +- spectec/src/il2al/il2al_util.ml | 29 + spectec/src/il2al/postprocess.ml | 16 +- spectec/src/il2al/preprocess.ml | 2 +- spectec/src/il2al/translate.ml | 62 +- spectec/src/il2al/transpile.ml | 19 +- spectec/src/xl/mixop.ml | 73 +- 34 files changed, 1399 insertions(+), 1108 deletions(-) diff --git a/specification/wasm-3.0/6.3-text.modules.spectec b/specification/wasm-3.0/6.3-text.modules.spectec index 48e877ad89..3dac9343b6 100644 --- a/specification/wasm-3.0/6.3-text.modules.spectec +++ b/specification/wasm-3.0/6.3-text.modules.spectec @@ -56,7 +56,7 @@ grammar Tlocal_(I)/plain : (local*, idctxt) = | ... grammar Tlocal_(I)/abbrev : (local*, idctxt) = - ... | "(" "local" t:Tvaltype_(I)* ")" == ("(" "local" t:Tvaltype_(I) ")")* + ... | "(" "local" Tvaltype_(I)* ")" == ("(" "local" Tvaltype_(I) ")")* ;; Data segments @@ -97,8 +97,8 @@ grammar Telem_(I)/plain : (elem, idctxt) = | ... grammar Telem_(I)/abbrev : (elem, idctxt) = ... - | "(" "elem" e':Toffset_(I) Tlist(Tfuncidx_(I)) ")" == - "(" "elem" e':Toffset_(I) "func" Tlist(Tfuncidx_(I)) ")" + | "(" "elem" Toffset_(I) Tlist(Tfuncidx_(I)) ")" == + "(" "elem" Toffset_(I) "func" Tlist(Tfuncidx_(I)) ")" grammar Telemlist_(I)/plain : (reftype, expr*) = | rt:Treftype_(I) e*:Tlist(Texpr_(I)) => (rt, e*) diff --git a/spectec/src/al/al_util.ml b/spectec/src/al/al_util.ml index 5d329c3483..59bb296edd 100644 --- a/spectec/src/al/al_util.ml +++ b/spectec/src/al/al_util.ml @@ -298,17 +298,9 @@ let atom_of_atom' atom' typ = atom' $$ no_region % (Atom.info typ) let frame_atom = atom_of_name "FRAME_" "evalctx" let frameE ?(at = no) ~note (arity, e) = - let frame_mixop = [[frame_atom]; [atom_of_atom' Atom.LBrace "evalctx"]; [atom_of_atom' Atom.RBrace "evalctx"]] in + let frame_mixop = Mixop.(Seq [Atom frame_atom; Brack (atom_of_atom' Atom.LBrace "evalctx", Arg (), atom_of_atom' Atom.RBrace "evalctx")]) in caseE (frame_mixop, [arity; e]) ~at:at ~note:note - -let get_atom op = - match List.find_opt (fun al -> al <> []) op with - | Some al -> Some (List.hd al) - | None -> None - -let name_of_mixop = Mixop.name - (* Il Types *) (* name for tuple type *) diff --git a/spectec/src/al/ast.ml b/spectec/src/al/ast.ml index 1f51f2b4eb..53ef0a2ee0 100644 --- a/spectec/src/al/ast.ml +++ b/spectec/src/al/ast.ml @@ -4,7 +4,7 @@ open Xl (* Terminals *) type atom = Atom.atom -type mixop = Mixop.mixop +type mixop = unit Mixop.mixop (* Types *) diff --git a/spectec/src/al/print.ml b/spectec/src/al/print.ml index 19077d84c0..4d8ff82fd2 100644 --- a/spectec/src/al/print.ml +++ b/spectec/src/al/print.ml @@ -152,11 +152,11 @@ and string_of_expr expr = | VarE id -> id | SubE (id, _) -> id | IterE (e, ie) -> string_of_expr e ^ string_of_iterexp ie - | CaseE ([{ it=Atom.Atom ("CONST" | "VCONST"); _ }]::_tl, hd::tl) -> + | CaseE (Mixop.(Seq (Atom { it=Atom.Atom ("CONST" | "VCONST"); _ }::_tl)), hd::tl) -> "(" ^ string_of_expr hd ^ ".CONST " ^ string_of_exprs " " tl ^ ")" - | CaseE ([[ atom ]], []) -> string_of_atom atom + | CaseE (Mixop.Atom atom, []) -> string_of_atom atom | CaseE (op, el) -> - let op' = List.map (fun al -> String.concat "" (List.map string_of_atom al)) op in + let op' = List.map (fun al -> String.concat "" (List.map string_of_atom al)) (Mixop.flatten op) in (match op' with | [] -> "()" | _::tl when List.length tl != List.length el -> diff --git a/spectec/src/al/valid.ml b/spectec/src/al/valid.ml index a81650d7c6..a202345b89 100644 --- a/spectec/src/al/valid.ml +++ b/spectec/src/al/valid.ml @@ -68,7 +68,10 @@ let il_env: IlEnv.t ref = ref IlEnv.empty let varT s = VarT (s $ no_region, []) $ no_region -let is_trivial_mixop = List.for_all (fun atoms -> List.length atoms = 0) +let rec is_trivial_mixop = function + | Mixop.Arg () -> true + | Mixop.Seq mixops -> List.for_all is_trivial_mixop mixops + | _ -> false (* Subtyping *) @@ -555,14 +558,14 @@ and valid_expr env (expr: expr) : unit = | CaseE (op, exprs) -> let is_evalctx_id id = let evalctx_ids = List.filter_map (fun (mixop, _, _) -> - let atom = mixop |> List.hd |> List.hd in + let atom = Mixop.flatten mixop |> List.hd |> List.hd in match atom.it with | Atom.Atom s -> Some s | _ -> None ) (get_typcases source evalctxT) in List.mem id evalctx_ids in - (match op with + (match Mixop.flatten op with | [[{ it=Atom id; _ }]] when is_evalctx_id id -> check_case source exprs (TupT [] $ no_region) | _ -> diff --git a/spectec/src/backend-ast/print.ml b/spectec/src/backend-ast/print.ml index 243f0e253e..64fc502885 100644 --- a/spectec/src/backend-ast/print.ml +++ b/spectec/src/backend-ast/print.ml @@ -11,10 +11,7 @@ open Ast let bool b = Atom (Bool.to_string b) let text t = Atom ("\"" ^ String.escaped t ^ "\"") let id x = text x.it -let mixop op = - String.concat "%" (List.map ( - fun ats -> String.concat "" (List.map Atom.to_string ats)) op - ) |> text +let mixop op = text (Mixop.to_string op) let num = function | `Nat n -> Node ("nat", [Atom (Z.to_string n)]) @@ -90,7 +87,7 @@ and typbind (x, t) = Node ("bind", [id x; typ t]) and typfield (at, (ps, t, prs), _hints) = - Node ("field", mixop [[at]] :: List.map param ps @ typ t :: List.map prem prs) + Node ("field", mixop (Mixop.Atom at) :: List.map param ps @ typ t :: List.map prem prs) and typcase (op, (ps, t, prs), _hints) = Node ("case", mixop op :: List.map param ps @ typ t :: List.map prem prs) @@ -112,7 +109,7 @@ and exp e = | UpdE (e1, p, e2) -> Node ("upd", [exp e1; path p; exp e2]) | ExtE (e1, p, e2) -> Node ("ext", [exp e1; path p; exp e2]) | StrE efs -> Node ("struct", List.map expfield efs) - | DotE (e1, at, as_) -> Node ("dot", [exp e1; mixop [[at]]] @ List.map arg as_) + | DotE (e1, at, as_) -> Node ("dot", [exp e1; mixop (Mixop.Atom at)] @ List.map arg as_) | CompE (e1, e2) -> Node ("comp", [exp e1; exp e2]) | MemE (e1, e2) -> Node ("mem", [exp e1; exp e2]) | LenE e1 -> Node ("len", [exp e1]) @@ -131,14 +128,14 @@ and exp e = | SubE (e1, t1, t2) -> Node ("sub", [typ t1; typ t2; exp e1]) and expfield (at, as_, e) = - Node ("field", [mixop [[at]]] @ List.map arg as_ @ [exp e]) + Node ("field", [mixop (Mixop.Atom at)] @ List.map arg as_ @ [exp e]) and path p = match p.it with | RootP -> Atom "root" | IdxP (p1, e) -> Node ("idx", [path p1; exp e]) | SliceP (p1, e1, e2) -> Node ("slice", [path p1; exp e1; exp e2]) - | DotP (p1, at, as_) -> Node ("dot", [path p1; mixop [[at]]] @ List.map arg as_) + | DotP (p1, at, as_) -> Node ("dot", [path p1; mixop (Mixop.Atom at)] @ List.map arg as_) and iterexp (it, xes) = iter it :: List.map (fun (x, e) -> Node ("dom", [id x; exp e])) xes diff --git a/spectec/src/backend-interpreter/interpreter.ml b/spectec/src/backend-interpreter/interpreter.ml index cf790df3fe..d069883cba 100644 --- a/spectec/src/backend-interpreter/interpreter.ml +++ b/spectec/src/backend-interpreter/interpreter.ml @@ -342,7 +342,7 @@ and eval_expr env expr = | [] -> eval_expr env e2 in eval_expr env e1 |> replace ps | CaseE (op, el) -> - (match (get_atom op) with + (match Mixop.head op with | Some a -> caseV (Print.string_of_atom a, List.map (eval_expr env) el) | None -> caseV ("", List.map (eval_expr env) el) ) @@ -480,7 +480,7 @@ and assign lhs rhs env = when List.length lhs_s = Array.length !rhs_s -> List.fold_right2 assign lhs_s (Array.to_list !rhs_s) env | CaseE (op, lhs_s), CaseV (rhs_tag, rhs_s) when List.length lhs_s = List.length rhs_s -> - (match get_atom op with + (match Mixop.head op with | Some lhs_tag when (Print.string_of_atom lhs_tag) = rhs_tag -> List.fold_right2 assign lhs_s rhs_s env | None when "" = rhs_tag -> @@ -600,7 +600,7 @@ and step_instr (fname: string) (ctx: AlContext.t) (env: value Env.t) (instr: ins ) | PopI e -> (match e.it with - | CaseE ([{it = Atom.Atom "FRAME_"; _}] :: _, [_; inner_e]) -> + | CaseE (op, [_; inner_e]) when (Option.get (Mixop.head op)).it = Atom.Atom "FRAME_" -> (match WasmContext.pop_context () with | CaseV ("FRAME_", [_; inner_v]), _, _ -> let new_env = assign inner_e inner_v env in diff --git a/spectec/src/backend-prose/gen.ml b/spectec/src/backend-prose/gen.ml index f9a5d05ea3..9412078ab5 100644 --- a/spectec/src/backend-prose/gen.ml +++ b/spectec/src/backend-prose/gen.ml @@ -38,7 +38,7 @@ let is_validation_helper_relation def = let is_validation_relation def = match def.it with | Ast.RelD (_, mixop, _, _) -> - List.exists (List.exists (fun atom -> atom.it = Atom.Turnstile)) mixop + List.exists (List.exists (fun atom -> atom.it = Atom.Turnstile)) (Mixop.flatten mixop) | _ -> false let extract_validation_il il = @@ -47,8 +47,6 @@ let extract_validation_il il = |> List.filter (fun rel -> is_validation_relation rel || is_validation_helper_relation rel) -let atomize atom' = atom' $$ no_region % (Atom.info "") - let rel_has_id id rel = match rel.it with | Ast.RelD (id', _, _, _) -> id.it = id'.it @@ -72,11 +70,11 @@ let swap = function `LtOp -> `GtOp | `GtOp -> `LtOp | `LeOp -> `GeOp | `GeOp -> CASE (?()) ~> () *) let recover_optional_singleton_constructor e = match e.it with - | Al.Ast.CaseE ([[atom]; [{it = Quest; _}]], [{it = OptE opt; _ }]) -> + | Al.Ast.CaseE (Mixop.(Seq [Atom atom; Arg ()]), [{it = OptE opt; _ }]) -> ( match opt with - | None -> Al.Ast.CaseE ([[]], []) - | Some _ -> Al.Ast.CaseE ([[atom]], []) + | Some _ -> Al.Ast.CaseE (Mixop.Atom atom, []) + | None -> Al.Ast.CaseE (Mixop.Seq [], []) ) |> (fun it -> {e with it}) | _ -> e @@ -84,10 +82,10 @@ let recover_optional_singleton_constructor e = let remove_empty_arrow_sub e = match e.it with | Al.Ast.CaseE ( - [[]; [{it = ArrowSub; _} as arrow]; []; []], + Mixop.(Infix (Arg (), ({it = ArrowSub; _} as arrow), Seq [Arg (); Arg ()])), [lhs; {it = ListE []; _}; rhs] ) -> - let it = Al.Ast.CaseE ([[];[{arrow with it = Arrow}];[]], [lhs; rhs]) in + let it = Al.Ast.CaseE (Mixop.(Infix (Arg (), {arrow with it = Arrow}, Arg ())), [lhs; rhs]) in {e with it} | _ -> e @@ -135,14 +133,14 @@ type rel_kind = let get_rel_kind def = let open Atom in - let valid_pattern = [[]; [atomize Turnstile]; [atomize Colon; atomize (Atom "OK")]] in - let valid_with_pattern = [[]; [atomize Turnstile]; [atomize Colon]; []] in - let match_pattern = [[]; [atomize Turnstile]; [atomize Sub]; []] in - let const_pattern = [[]; [atomize Turnstile]; [atomize (Atom "CONST")]] in - let valid_const_pattern = [[]; [atomize Turnstile]; [atomize Colon]; [atomize (Atom "CONST")]] in - let valid_with2_pattern = [[]; [atomize Turnstile]; [atomize Colon]; []; []] in - let defaultable_pattern = [[]; [atomize Turnstile]; [atomize (Atom "DEFAULTABLE")]] in - let nondefaultable_pattern = [[]; [atomize Turnstile]; [atomize (Atom "NONDEFAULTABLE")]] in + let valid_pattern = [[]; [Turnstile]; [Colon; Atom "OK"]] in + let valid_with_pattern = [[]; [Turnstile]; [Colon]; []] in + let match_pattern = [[]; [Turnstile]; [Sub]; []] in + let const_pattern = [[]; [Turnstile]; [Atom "CONST"]] in + let valid_const_pattern = [[]; [Turnstile]; [Colon]; [Atom "CONST"]] in + let valid_with2_pattern = [[]; [Turnstile]; [Colon]; []; []] in + let defaultable_pattern = [[]; [Turnstile]; [Atom "DEFAULTABLE"]] in + let nondefaultable_pattern = [[]; [Turnstile]; [Atom "NONDEFAULTABLE"]] in let has_instr_as_second typ = match typ.it with @@ -153,7 +151,8 @@ let get_rel_kind def = match def.it with | Ast.RelD (id, mixop, typ, _) -> - let match_mixop pattern = Mixop.(eq mixop pattern || eq mixop (List.tl pattern)) in + let mixop' = List.map (List.map Util.Source.it) (Mixop.flatten mixop) in + let match_mixop pattern = mixop' = pattern || mixop' = List.tl pattern in if match_mixop valid_pattern then ValidRel else if match_mixop valid_with_pattern then diff --git a/spectec/src/backend-prose/print.ml b/spectec/src/backend-prose/print.ml index 806f269586..c12405a632 100644 --- a/spectec/src/backend-prose/print.ml +++ b/spectec/src/backend-prose/print.ml @@ -136,13 +136,13 @@ and string_of_expr expr = | VarE id -> id | SubE (id, _) -> id | IterE (e, ie) -> string_of_expr e ^ string_of_iterexp ie - | CaseE ([{ it=Atom.Atom ("CONST" | "VCONST"); _ }]::_tl, hd::tl) -> + | CaseE (op, hd::tl) when Xl.Mixop.head op <> None && List.mem (Option.get (Xl.Mixop.head op)).it Xl.Atom.[Atom "CONST"; Atom "VCONST"] -> "(" ^ string_of_expr hd ^ ".CONST " ^ string_of_exprs " " tl ^ ")" | CaseE (op, el) -> (* Current rules for omitting parenthesis around a CaseE: 1) Has no argument 2) Is infix notation *) - let op' = List.map (string_of_list string_of_atom "" "" "") op in + let op' = List.map (string_of_list string_of_atom "" "" "") (Mixop.flatten op) in let el' = List.map string_of_expr el in let s = Prose_util.alternate op' el' diff --git a/spectec/src/backend-prose/prose_util.ml b/spectec/src/backend-prose/prose_util.ml index 263465b41a..37e20e0517 100644 --- a/spectec/src/backend-prose/prose_util.ml +++ b/spectec/src/backend-prose/prose_util.ml @@ -256,6 +256,8 @@ let apply_prose_hint hint args = ) template; |> String.concat "" +let mixop_name mixop = "`" ^ Xl.Atom.to_string (Option.get (Xl.Mixop.head mixop)) ^ "`" + let string_of_stack_prefix expr = let open Al.Ast in match expr.it with @@ -263,7 +265,7 @@ let string_of_stack_prefix expr = | VarE ("F" | "L") -> "" | _ when Il.Eq.eq_typ expr.note Al.Al_util.frameT -> "the :ref:`frame `" | CaseE (mixop, _) when Il.Eq.eq_typ expr.note Al.Al_util.evalctxT -> - let evalctx_name = Xl.Mixop.name (List.nth mixop 0) + let evalctx_name = mixop_name mixop |> fun s -> String.sub s 0 (String.length s - 1) |> String.lowercase_ascii in Printf.sprintf "the %s" evalctx_name @@ -315,7 +317,7 @@ let find_case_typ s a: El.Ast.typ = let extract_case_hint t mixop = let id1 = Il.Print.string_of_typ t in - let id2 = Xl.Mixop.name (List.nth mixop 0) in + let id2 = mixop_name mixop in let id = id1 ^ "." ^ id2 in match Map.find_opt id !(hintenv.prose_hints) with | Some (Some e, _) -> Some e diff --git a/spectec/src/backend-prose/prose_util.mli b/spectec/src/backend-prose/prose_util.mli index fe4a3c2383..bb140ddbc2 100644 --- a/spectec/src/backend-prose/prose_util.mli +++ b/spectec/src/backend-prose/prose_util.mli @@ -12,7 +12,7 @@ val alternate : 'a list -> 'a list -> 'a list val apply_prose_hint : string -> string list -> string val string_of_stack_prefix : Al.Ast.expr -> string val find_case_typ : string -> Xl.Atom.atom -> El.Ast.typ -val extract_case_hint : Il.Ast.typ -> Xl.Mixop.mixop -> El.Ast.exp option +val extract_case_hint : Il.Ast.typ -> 'a Xl.Mixop.mixop -> El.Ast.exp option val extract_call_hint : string -> El.Ast.exp option val is_allocxs : string -> bool val fill_hole : El.Ast.exp list -> El.Ast.exp -> El.Ast.exp diff --git a/spectec/src/backend-prose/render.ml b/spectec/src/backend-prose/render.ml index aa34ec1b2a..9a6378f7e3 100644 --- a/spectec/src/backend-prose/render.ml +++ b/spectec/src/backend-prose/render.ml @@ -119,8 +119,8 @@ let get_context_var e = | Al.Ast.CaseE (_, [_; {it = Al.Ast.VarE x; _} as e']) when x <> "_" -> e' (* HARDCODE for frame *) | Al.Ast.CaseE (mixop, _) -> let x = mixop - |> List.hd - |> List.hd + |> Mixop.head + |> Option.get |> Atom.to_string |> (fun s -> String.sub s 0 1) in @@ -370,17 +370,6 @@ and al_to_el_expr expr = 2) Is infix notation 3) Is bracketed -> render into BrackE 4) Is argument of CallE -> add first, omit later at CallE *) - let atom_of atom = atom $$ no_region % (Atom.info "") in - let find_brace_opt mixop = - let s = Mixop.to_string mixop in - let first = String.get s 1 in - let last = String.get s (String.length s - 2) in - match first, last with - | '(', ')' -> Some (atom_of Atom.LParen, atom_of Atom.RParen) - | '[', ']' -> Some (atom_of Atom.LBrack, atom_of Atom.RBrack) - | '{', '}' -> Some (atom_of Atom.LBrace, atom_of Atom.RBrace) - | _ -> None - in let elal = mixop_to_el_exprs op in let* elel = al_to_el_exprs el in let eles = case_to_el_exprs elal elel in @@ -389,8 +378,8 @@ and al_to_el_expr expr = | _, [] -> Some ele | None :: Some _ :: _, _ -> Some ele | _ -> - (match find_brace_opt op with - | Some (lbr, rbr) -> + (match op with + | Mixop.Brack (lbr, _, rbr) -> (* Split braces of el expressions *) let _, eles = Util.Lib.List.split_hd eles in let eles, _ = Util.Lib.List.split_last eles in @@ -402,7 +391,7 @@ and al_to_el_expr expr = | _ -> El.Ast.SeqE eles ) in Some (El.Ast.BrackE (lbr, eles $ no_region, rbr)) - | None -> Some (El.Ast.ParenE (ele $ no_region)) + | _ -> Some (El.Ast.ParenE (ele $ no_region)) ) ) ) @@ -438,7 +427,7 @@ and mixop_to_el_exprs op = | [ a ] -> Some((El.Ast.AtomE a) $ no_region) | _ -> None ) - op + (Mixop.flatten op) and al_to_el_exprs exprs = List.fold_left @@ -721,7 +710,7 @@ and render_expr' env expr = (render_math "=") (render_expr env erhs) | Al.Ast.CaseE (mixop, [ arity; arg ]) when Al.Valid.sub_typ expr.note Al.Al_util.evalctxT -> - let atom_name = mixop |> List.hd |> List.hd |> Atom.to_string in + let atom_name = mixop |> Mixop.head |> Option.get |> Atom.to_string in let context_var = get_context_var expr in let rendered_arity = match arity.it with @@ -1047,7 +1036,7 @@ let render_control_frame env expr = let open Al in match expr.it with | Ast.CaseE (mixop, [ arity; arg ]) -> - let atom = mixop |> List.hd |> List.hd in + let atom = mixop |> Mixop.head |> Option.get in let atom_name = Atom.to_string atom in let control_frame_name, rendered_arg = match atom_name with @@ -1322,7 +1311,7 @@ let rec render_instr env algoname index depth instr = ) | Al.Ast.PushI ({ it = Al.Ast.CaseE (mixop, _); _ } as e) when Al.Valid.sub_typ e.note Al.Al_util.evalctxT -> - let atom = mixop |> List.hd |> List.hd in + let atom = mixop |> Mixop.head |> Option.get in let context_var = get_context_var e in let context_var' = to_fresh_var env context_var in sprintf "%s Let %s be %s.\n\n%s%s Push the %s %s." @@ -1338,7 +1327,7 @@ let rec render_instr env algoname index depth instr = (render_stack_prefix e) (render_expr env e) | Al.Ast.PopI ({ it = Al.Ast.CaseE (mixop, _); _ } as expr) when Al.Valid.sub_typ expr.note Al.Al_util.evalctxT -> - let atom = mixop |> List.hd |> List.hd in + let atom = mixop |> Mixop.head |> Option.get in let control_frame_kind = render_atom env atom in sprintf "%s Pop the %s from the stack." (render_order index depth) @@ -1357,7 +1346,7 @@ let rec render_instr env algoname index depth instr = (match e1.it with (* NOTE: This assumes that the first argument of control frame is arity *) | Al.Ast.CaseE (mixop, [ arity; arg ] ) when Al.Valid.sub_typ e1.note Al.Al_util.evalctxT -> - let atom_name = mixop |> List.hd |> List.hd |> Atom.to_string in + let atom_name = mixop |> Mixop.head |> Option.get |> Atom.to_string in let context_var = get_context_var e1 in let rendered_let = sprintf "%s Let %s be %s." @@ -1437,7 +1426,7 @@ let rec render_instr env algoname index depth instr = sprintf "%s Return%s." (render_order index depth) (render_opt " " (render_expr env) "" e_opt) | Al.Ast.EnterI ({ it = Al.Ast.CaseE (mixop, _); _ } as e1, e2, il) -> - let atom = mixop |> List.hd |> List.hd in + let atom = mixop |> Mixop.head |> Option.get in let context_var = (get_context_var e1) in sprintf "%s Let %s be %s.\n\n%s%s Enter the block %s with the %s %s.%s" (render_order index depth) @@ -1500,7 +1489,7 @@ let render_atom_title env name params = | _ -> name.it in let name = name' $$ no_region % name.note in - let op = [name] :: List.init (List.length params) (fun _ -> []) in + let op = Mixop.(Seq (Atom name :: List.init (List.length params) (fun _ -> Arg ()))) in let params = List.filter_map (fun a -> match a.it with Al.Ast.ExpA e -> Some e | _ -> None) params in let expr = Al.Al_util.caseE (op, params) ~at:no_region ~note:Al.Al_util.no_note in match al_to_el_expr expr with diff --git a/spectec/src/el/free.mli b/spectec/src/el/free.mli index 650d4fe1d6..a3c0c57581 100644 --- a/spectec/src/el/free.mli +++ b/spectec/src/el/free.mli @@ -42,6 +42,7 @@ val free_def : def -> sets (this case is to handle function inverses) This is a pragmatic criterium, intended only for sanity checks. *) +val det_typ : typ -> sets val det_exp : exp -> sets val det_sym : sym -> sets val det_prems : prem nl_list -> sets diff --git a/spectec/src/el/print.ml b/spectec/src/el/print.ml index 37252b052a..629507dc08 100644 --- a/spectec/src/el/print.ml +++ b/spectec/src/el/print.ml @@ -69,7 +69,7 @@ let rec string_of_iter iter = and string_of_numtyp = Num.string_of_typ -and string_of_typ ?(short=false) t = +and string_of_typ ?(short = false) t = match t.it with | VarT (id, args) -> string_of_typid id ^ string_of_args args | BoolT -> "bool" @@ -120,17 +120,17 @@ and string_of_typ ?(short=false) t = and string_of_typs sep ts = concat sep (List.map string_of_typ ts) -and string_of_typfield ?(short=false) (atom, (t, prems), _hints) = +and string_of_typfield ?(short = false) (atom, (t, prems), _hints) = string_of_atom atom ^ " " ^ string_of_typ t ^ if short && prems <> [] then " -- .." else concat "" (map_filter_nl_list (prefix "\n -- " string_of_prem) prems) -and string_of_typcase ?(short=false) (_atom, (t, prems), _hints) = +and string_of_typcase ?(short = false) (_atom, (t, prems), _hints) = string_of_typ t ^ if short && prems <> [] then " -- .." else concat "" (map_filter_nl_list (prefix "\n -- " string_of_prem) prems) -and string_of_typcon ?(short=false) ((t, prems), _hints) = +and string_of_typcon ?(short = false) ((t, prems), _hints) = string_of_typ t ^ if short && prems <> [] then " -- .." else concat "" (map_filter_nl_list (prefix "\n -- " string_of_prem) prems) diff --git a/spectec/src/el/print.mli b/spectec/src/el/print.mli index 72e872d842..1146857537 100644 --- a/spectec/src/el/print.mli +++ b/spectec/src/el/print.mli @@ -5,8 +5,8 @@ val string_of_unop : unop -> string val string_of_binop : binop -> string val string_of_cmpop : cmpop -> string val string_of_iter : iter -> string -val string_of_typ : ?short:bool -> typ -> string -val string_of_typfield : ?short:bool -> typfield -> string +val string_of_typ : ?short: bool -> typ -> string +val string_of_typfield : ?short: bool -> typfield -> string val string_of_exp : exp -> string val string_of_exps : string -> exp list -> string val string_of_expfield : expfield -> string diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index 0009e86aa1..eb1cebf666 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -6,7 +6,7 @@ open Ast open Convert open Print -module Il = struct include Il include Ast end +module Il = struct include Il include Ast include Print end module Set = Free.Set module Map = Map.Make (String) @@ -23,7 +23,8 @@ exception Error = Error.Error let error at msg = Error.error at "type" msg let error_atom at atom t msg = - error at (msg ^ " `" ^ string_of_atom atom ^ "` in type `" ^ string_of_typ ~short:true t ^ "`") + error at (msg ^ " `" ^ string_of_atom atom ^ + "` in type `" ^ Il.string_of_typ t ^ "`") let error_id id msg = error id.at (msg ^ " `" ^ id.it ^ "`") @@ -31,8 +32,6 @@ let error_id id msg = (* Helpers *) -let wild_exp t' = Il.VarE ("_" $ t'.at) $$ t'.at % t' - let unparen_exp e = match e.it with | ParenE e1 -> e1 @@ -44,6 +43,11 @@ let unseq_exp e = | SeqE es -> es | _ -> [e] +let untup_typ' t' = + match t'.it with + | Il.TupT xts' -> List.map snd xts' + | _ -> [t'] + let tup_typ' ts' at = match ts' with | [t'] -> t' @@ -76,17 +80,16 @@ let tup_typ_bind' es' ts' at = | _, _ -> assert false in Il.TupT (combine es' ts' Il.Subst.empty) $ at +let tup_exp_bind' es' at = + Il.TupE es' $$ (at, tup_typ' (List.map note es') at) + let tup_exp' es' at = match es' with | [e'] -> e' - | _ -> Il.TupE es' $$ (at, tup_typ' (List.map note es') at) - -let tup_exp_bind' es' at = - let ts' = List.map note es' in - Il.TupE es' $$ (at, tup_typ_bind' (List.map wild_exp ts') ts' at) + | _ -> tup_exp_bind' es' at let lift_exp' e' iter' = - if iter' = Opt then + if iter' = Il.Opt then Il.OptE (Some e') else Il.ListE [e'] @@ -99,19 +102,67 @@ let cat_exp' e1' e2' = | _ -> Il.CatE (e1', e2') +(* Notation *) + +type notation = Il.typ Mixop.mixop + + +let rec subst_notation s not = + let open Mixop in + match not with + | Arg t -> Arg (Il.Subst.subst_typ s t) + | Seq nots -> Seq (List.map (subst_notation s) nots) + | Atom at -> Atom at + | Brack (at1, not, at2) -> Brack (at1, subst_notation s not, at2) + | Infix (not1, at, not2) -> + Infix (subst_notation s not1, at, subst_notation s not2) + +let rec apply_notation' ts not = + let open Mixop in + match not with + | Arg () -> List.tl ts, Arg (List.hd ts) + | Seq nots -> + let ts', nots' = List.fold_left_map apply_notation' ts nots in + ts', Seq nots' + | Atom at -> ts, Atom at + | Brack (at1, not, at2) -> + let ts', not' = apply_notation' ts not in + ts', Brack (at1, not', at2) + | Infix (not1, at, not2) -> + let ts', not1' = apply_notation' ts not1 in + let ts'', not2' = apply_notation' ts' not2 in + ts'', Infix (not1', at, not2') + +let apply_notation not ts = + let ts', not' = apply_notation' ts not in + assert (ts' = []); + not' + +let rec string_of_notation = function + | Mixop.Arg t -> Il.string_of_typ t + | Mixop.Seq nots -> + "{" ^ String.concat " " (List.map string_of_notation nots) ^ "}" + | Mixop.Atom atom -> string_of_atom atom + | Mixop.Brack (l, not, r) -> + "`" ^ string_of_atom l ^ string_of_notation not ^ string_of_atom r + | Mixop.Infix (not1, atom, not2) -> + string_of_notation not1 ^ " " ^ string_of_atom atom ^ " " ^ + string_of_notation not2 + + (* Environment *) type kind = - | Transp (* alias types, notation types *) - | Opaque (* structures or variants, type parameter *) - | Defined of typ * id list * Il.deftyp - | Family of (arg list * typ * Il.inst) list (* family of types *) + | Transp (* forward alias types or notation types *) + | Opaque (* forward structures or variants, type parameter *) + | Defined of Il.deftyp * id list * dots + | Family of Il.inst list (* family of types *) -type var_typ = typ -type typ_typ = param list * kind -type gram_typ = param list * typ * gram option * (id * Il.prod) list -type rel_typ = typ * (id * Il.rule) list -type def_typ = param list * typ * (def * Il.clause) list +type var_typ = Il.typ +type typ_typ = Il.param list * kind +type gram_typ = Il.param list * Il.typ * gram option * (id * Il.prod) list +type rel_typ = Il.typ * (id * Il.rule) list +type def_typ = Il.param list * Il.typ * (def * Il.clause) list type 'a env' = (region * 'a) Map.t type env = @@ -127,12 +178,12 @@ type env = let new_env () = { gvars = Map.empty - |> Map.add "bool" (no_region, BoolT $ no_region) - |> Map.add "nat" (no_region, NumT `NatT $ no_region) - |> Map.add "int" (no_region, NumT `IntT $ no_region) - |> Map.add "rat" (no_region, NumT `RatT $ no_region) - |> Map.add "real" (no_region, NumT `RealT $ no_region) - |> Map.add "text" (no_region, TextT $ no_region); + |> Map.add "bool" (no_region, Il.BoolT $ no_region) + |> Map.add "nat" (no_region, Il.NumT `NatT $ no_region) + |> Map.add "int" (no_region, Il.NumT `IntT $ no_region) + |> Map.add "rat" (no_region, Il.NumT `RatT $ no_region) + |> Map.add "real" (no_region, Il.NumT `RealT $ no_region) + |> Map.add "text" (no_region, Il.TextT $ no_region); vars = Map.empty; typs = Map.empty; (* @@ -182,13 +233,19 @@ let find_field fs atom at t = | Some (_, x, _) -> x | None -> error_atom at atom t "unbound field" -let find_case cases atom at t = - match List.find_opt (fun (atom', _, _) -> Atom.eq atom' atom) cases with +let find_case cs atom at t = + match List.find_opt + (function ((atom'::_)::_, _, _) -> Atom.eq atom' atom | _ -> false) cs + with | Some (_, x, _) -> x | None -> error_atom at atom t "unknown case" let find_case_sub cases atom at t = - match List.find_opt (fun (atom', _, _) -> Atom.eq atom' atom || Atom.sub atom' atom) cases with + match List.find_opt + (function ((atom'::_)::_, _, _) -> Atom.(eq atom' atom || sub atom' atom) + | _ -> false + ) cases + with | Some (_, x, _) -> x | None -> error_atom at atom t "unknown case" @@ -202,35 +259,52 @@ let bound_env env = gramid = bound_env' env.grams; } +let bind_quant env q = + match q.it with + | Il.ExpP (x, t) -> env.vars <- bind "variable" env.vars x t + | Il.TypP x -> env.typs <- bind "syntax type" env.typs x ([], Opaque) + | Il.DefP (x, ps, t) -> env.defs <- bind "definition" env.defs x (ps, t, []) + | Il.GramP (x, ps, t) -> env.grams <- bind "grammar" env.grams x (ps, t, None, []) + + let vars env = Map.fold (fun id (at, _) ids -> (id $ at)::ids) env.vars [] -let to_eval_var (_at, t) = t +let il_arg_of_param p = + (match p.it with + | Il.ExpP (id, t) -> Il.ExpA (Il.VarE id $$ id.at % t) + | Il.TypP id -> Il.TypA (Il.VarT (id, []) $ id.at) + | Il.DefP (id, _, _) -> Il.DefA id + | Il.GramP (id, _, _) -> Il.GramA (Il.VarG (id, []) $ id.at) + ) $ p.at -let to_eval_typ id (_at, (ps, k)) = +let il_args_of_params = List.map il_arg_of_param + +let to_il_var (_at, t) = t +let to_il_def (_at, (ps, t, clauses)) = (ps, t, List.map snd clauses) +let to_il_gram (_at, (ps, t, _, prods)) = (ps, t, List.map snd prods) + +let to_il_typ id (at, (ps, k)) = match k with - | Opaque | Transp -> - let args' = List.map Convert.arg_of_param ps in - [(args', VarT (id $ no_region, args') $ no_region)] - | Defined (t, _ids, _dt') -> - [(List.map Convert.arg_of_param ps, t)] - | Family insts -> - List.map (fun (args, t, _inst') -> (args, t)) insts - -let to_eval_def (_at, (_ps, _t, clauses)) = - List.map (fun (d, _) -> - match d.it with - | DefD (_id, args, e, prems) -> (args, e, Convert.filter_nl prems) - | _ -> assert false - ) clauses + | Opaque | Transp -> ps, [] + | Family insts -> ps, insts + | Defined (dt, _, _) -> + ps, [Il.InstD ([], List.map il_arg_of_param ps, dt) $ dt.at] -let to_eval_env env = +let to_il_env env = (* Need to include gvars, since matching can encounter implicit vars *) - let gvars = Map.map to_eval_var env.gvars in - let vars = Map.map to_eval_var env.vars in - let typs = Map.mapi to_eval_typ env.typs in - let defs = Map.map to_eval_def env.defs in - let grams = Map.map ignore env.grams in - Eval.{vars = Map.union (fun _ _ t -> Some t) gvars vars; typs; defs; grams} + let gvars = Map.map to_il_var env.gvars in + let vars = Map.map to_il_var env.vars in + let typs = Map.mapi to_il_typ env.typs in + let defs = Map.map to_il_def env.defs in + let grams = Map.map to_il_gram env.grams in + Il.Env.{ + vars = Map.union (fun _ _ t -> Some t) gvars vars; + typs; + defs; + rels = Map.empty; + grams; + } + let valid_tid id = id.it <> "" @@ -260,7 +334,7 @@ let nest at t r = match r with | Ok _ -> r | Fail traces -> - Fail [Trace (at, "cannot parse expression as `" ^ string_of_typ ~short:true t ^ "`", traces)] + Fail [Trace (at, "cannot parse expression as `" ^ Il.string_of_typ t ^ "`", traces)] let rec map_attempt f = function | [] -> Ok [] @@ -279,7 +353,7 @@ let fail at msg = Fail [Trace (at, msg, [])] let fail_silent = Fail [] let fail_atom at atom t msg = - fail at (msg ^ " `" ^ string_of_atom atom ^ "` in type `" ^ string_of_typ ~short:true t ^ "`") + fail at (msg ^ " `" ^ string_of_atom atom ^ "` in type `" ^ Il.string_of_typ t ^ "`") let fail_infer at construct = fail at ("cannot infer type of " ^ construct) @@ -310,9 +384,9 @@ let attempt f x = (* More Errors *) let typ_string env t = - let t' = Eval.reduce_typ (to_eval_env env) t in - let s = string_of_typ ~short:true t in - let s' = string_of_typ ~short:true t' in + let t' = Il.Eval.reduce_typ (to_il_env env) t in + let s = Il.string_of_typ t in + let s' = Il.string_of_typ t' in if s = s' then "`" ^ s ^ "`" else @@ -325,6 +399,9 @@ let msg_typ2 env phrase t1 t2 reason = phrase ^ "'s type " ^ typ_string env t1 ^ " does not match type " ^ typ_string env t2 ^ reason +let msg_not _env phrase not = + phrase ^ " does not match notation " ^ string_of_notation not + let error_typ env at phrase t = error at (msg_typ env phrase t) @@ -337,18 +414,23 @@ let fail_typ env at phrase t = let fail_typ2 env at phrase t1 t2 reason = fail at (msg_typ2 env phrase t1 t2 reason) +let fail_not env at phrase not = + fail at (msg_not env phrase not) + + type direction = Infer | Check let fail_dir_typ env at phrase dir t expected = match dir with | Check -> fail_typ env at phrase t | Infer -> - fail at (phrase ^ "'s type `" ^ string_of_typ ~short:true t ^ "`" ^ + fail at (phrase ^ "'s type " ^ typ_string env t ^ " does not match type " ^ expected) (* Type Accessors *) +(* let rec arg_subst s ps args = match ps, args with | [], [] -> s @@ -373,7 +455,7 @@ let aliased_inst inst' = aliased dt' (* TODO(4, rossberg): replace with reduce_typ *) -let as_defined_typid' env id args at : typ' * [`Alias | `NoAlias] = +let as_defined_typid' env x as' at : Il.deftyp' = match find "syntax type" env.typs (strip_var_suffix id) with | ps, Defined (t, _ids, dt') -> let t' = if ps = [] then t else (* optimization *) @@ -399,20 +481,44 @@ let as_defined_typid' env id args at : typ' * [`Alias | `NoAlias] = | exception _ -> lookup insts' (* assume coherent matches *) (* error at "cannot reduce type family application" *) in lookup insts +*) -(* Only expand aliases *) -let rec expand' env = function - | VarT (id, args) as t' -> - (match as_defined_typid' env id args id.at with - | t1', `Alias -> expand' env t1' - | _, `NoAlias -> t' - | exception Error _ -> t' + +(* TODO(2, rossberg): avoid repeated env conversion *) +let expand env t : Il.typ' = (Il.Eval.reduce_typ (to_il_env env) t).it + +let expand_def env t : Il.deftyp' * dots = + match expand env t with + | Il.VarT (x, as') -> + let x' = strip_var_suffix x in + let _ps, k = find "syntax type" env.typs x' in + (Il.Eval.reduce_typdef (to_il_env env) (Il.VarT (x', as') $ x.at)).it, + (match k with Defined (_, _, dots) -> dots | _ -> NoDots) + | t' -> Il.AliasT (t' $ t.at), NoDots + +let expand_notation env t = + match expand env t with + | Il.VarT (x, as') as t' -> + let x' = strip_var_suffix x in + (match find "syntax type" env.typs x' with + | ps, Defined ({it = Il.VariantT [tc]; _}, _, _) -> + let as_ = List.map il_arg_of_param ps in + Il.Eval.(match_list match_arg (to_il_env env) Il.Subst.empty as' as_) |> + Option.map (fun s -> + let mixop, (qs, t, _prems), _ = Il.Subst.subst_typcase s tc in + qs, t, mixop, apply_notation mixop (untup_typ' t) + ) + | _, _ -> None ) - | ParenT t -> expand' env t.it - | t' -> t' + | _ -> None + +let expand_id env t = + match expand env t with + | Il.VarT (id, _) -> id + | _ -> "" $ no_region -let expand env t = expand' env t.it +(* (* Expand all but the last alias. TODO(4, rossberg): remove *) exception Last let rec expand_nondef' env t = @@ -430,22 +536,17 @@ let expand_nondef env t = try expand_nondef' env t with Last -> t (* Expand definitions *) let expand_def env t = - match expand' env t.it with - | VarT (id, args) as t' -> + match (Il.reduce_typ (to_il_env env) t).it with + | Il.VarT (x, as_) as t' -> (match as_defined_typid' env id args id.at with | t1', _ -> t1' | exception Error _ -> t' ) | t' -> t' -let expand_id env t = - match (expand_nondef env t).it with - | VarT (id, _) -> strip_var_suffix id - | _ -> "" $ no_region - let rec expand_notation env t = match expand env t with - | VarT (id, args) as t' -> + | Il.VarT (x, as') as t' -> (match as_defined_typid' env id args t.at with | ConT ((t1, _), _), _ -> expand_notation env t1 | RangeT _ as t', _ -> t' @@ -466,34 +567,44 @@ let rec expand_iter_notation env t = ) | ConT ((t1, _), _) -> expand_iter_notation env t1 | t' -> t' +*) let as_nat_typ_opt env t : unit option = - match expand_notation env t with - | NumT `NatT -> Some () - | RangeT _ -> Some () + match expand env t with + | Il.NumT `NatT -> Some () | _ -> None let as_num_typ_opt env t : numtyp option = - match expand_notation env t with - | NumT nt -> Some nt - | RangeT _ -> Some `IntT + match expand env t with + | Il.NumT nt -> Some nt + | _ -> None + +let as_iter_typ_opt env t : (Il.typ * Il.iter) option = + match expand env t with + | Il.IterT (t1, iter) -> Some (t1, iter) | _ -> None -let as_iter_typ_opt env t : (typ * iter) option = - match expand env t with IterT (t1, iter) -> Some (t1, iter) | _ -> None +let as_list_typ_opt env t : Il.typ option = + match expand env t with + | Il.IterT (t1, Il.List) -> Some t1 + | _ -> None -let as_list_typ_opt env t : typ option = - match expand env t with IterT (t1, List) -> Some t1 | _ -> None +let as_tup_typ_opt env t : (Il.id * Il.typ) list option = + match expand env t with + | Il.TupT xts -> Some xts + | _ -> None +(* let as_iter_notation_typ_opt env t : (typ * iter) option = - match expand_iter_notation env t with IterT (t1, iter) -> Some (t1, iter) | _ -> None - -let as_tup_typ_opt env t : typ list option = - match expand env t with TupT ts -> Some ts | _ -> None + match expand_iter_notation env t with + | Il.IterT (t1, iter) -> Some (t1, iter) | _ -> None +*) -let as_empty_typ_opt env t : unit option = - match expand_notation env t with SeqT [] -> Some () | _ -> None +let as_empty_notation_typ_opt env t : unit option = + match expand_notation env t with + | Some (_, _, _, Seq []) -> Some () + | _ -> None let as_x_typ as_t_opt phrase env dir t at shape = @@ -510,79 +621,43 @@ let as_iter_typ phrase env dir t at = let as_list_typ phrase env dir t at = as_x_typ as_list_typ_opt phrase env dir t at "(_)*" let as_tup_typ phrase env dir t at = - as_x_typ as_tup_typ_opt phrase env dir t at "(_, ..., _)" + as_x_typ as_tup_typ_opt phrase env dir t at "(_,...,_)" +(* let as_iter_notation_typ phrase env dir t at = as_x_typ as_iter_notation_typ_opt phrase env dir t at "(_)*" -let as_empty_typ phrase env dir t at = - as_x_typ as_empty_typ_opt phrase env dir t at "()" - - -let rec as_notation_typid' phrase env id args at : typ attempt = - match as_defined_typid' env id args at with - | VarT (id', args'), `Alias -> as_notation_typid' phrase env id' args' at - | ConT ((t, _), _), _ -> Ok t - | (AtomT _ | SeqT _ | InfixT _ | BrackT _ | IterT _) as t, _ -> Ok (t $ at) - | _ -> fail_dir_typ env at phrase Infer (VarT (id, args) $ id.at) "_ ... _" - | exception Error (at', msg) -> fail at' msg - -let as_notation_typ phrase env dir t at : typ attempt = - match expand env t with - | VarT (id, args) -> as_notation_typid' phrase env id args at - | _ -> fail_dir_typ env at phrase dir t "_ ... _" +*) +let as_empty_notation_typ phrase env dir t at = + as_x_typ as_empty_notation_typ_opt phrase env dir t at "()" -let rec as_struct_typid' phrase env id args at : (typfield list * dots) attempt = - match as_defined_typid' env id args at with - | VarT (id', args'), `Alias -> as_struct_typid' phrase env id' args' at - | StrT (_dots1, ts, tfs, dots2), _ -> - let* tfss = map_attempt (fun t -> as_struct_typ "" env Infer t at) (filter_nl ts) in - Ok (List.concat (filter_nl tfs :: List.map fst tfss), dots2) - | _ -> fail_dir_typ env at phrase Infer (VarT (id, args) $ id.at) "{...}" - | exception Error (at', msg) -> fail at' msg -and as_struct_typ phrase env dir t at : (typfield list * dots) attempt = - match expand env t with - | VarT (id, args) -> as_struct_typid' phrase env id args at +let as_struct_typ phrase env dir t at : (Il.typfield list * dots) attempt = + match expand_def env t with + | Il.StructT tfs, dots -> Ok (tfs, dots) | _ -> fail_dir_typ env at phrase dir t "{...}" -let rec as_cat_typid' phrase env dir id args at = - match as_defined_typid' env id args at with - | VarT (id', args'), `Alias -> as_cat_typid' phrase env dir id' args' at - | IterT _, _ -> Ok () - | StrT (_dots1, ts, tfs, dots2), _ -> - let* tfss = map_attempt (fun t -> as_struct_typ "" env Infer t at) (filter_nl ts) in - let tfs' = List.concat (filter_nl tfs :: List.map fst tfss) in - if dots2 = Dots then - error at "used record type is only partially defined at this point"; - iter_attempt (fun (_, (t, _), _) -> as_cat_typ phrase env dir t at) tfs' - | _ -> - fail at (phrase ^ "'s type `" ^ string_of_typ ~short:true (VarT (id, args) $ id.at) ^ - "` is not concatenable") - | exception Error (at', msg) -> fail at' msg +let as_variant_typ phrase env dir t at : (Il.typcase list * dots) attempt = + match expand_def env t with + | Il.VariantT tcs, dots -> Ok (tcs, dots) + | _ -> fail_dir_typ env at phrase dir t "| ..." -and as_cat_typ phrase env dir t at = - match expand env t with - | VarT (id, args) -> as_cat_typid' phrase env dir id args at - | IterT _ -> Ok () +let rec as_cat_typ phrase env dir t at : unit attempt = + match expand_def env t with + | Il.AliasT {it = Il.IterT _; _}, _ -> Ok () + | Il.StructT tfs, dots -> + if dots = Dots then + error at "used record type is only partially defined at this point"; + iter_attempt (fun (_, (qs, t, _), _) -> + let env' = if qs = [] then env else local_env env in + List.iter (bind_quant env') qs; + as_cat_typ phrase env' dir t at + ) tfs | _ -> - fail at (phrase ^ "'s type `" ^ string_of_typ ~short:true t ^ "` is not concatenable") - -let rec as_variant_typid' phrase env id args at : (typcase list * dots) attempt = - match as_defined_typid' env id args at with - | VarT (id', args'), `Alias -> as_variant_typid' phrase env id' args' at - | CaseT (_dots1, ts, tcs, dots2), _ -> - let* tcss = map_attempt (fun t -> as_variant_typ "" env Infer t at) (filter_nl ts) in - Ok (List.concat (filter_nl tcs :: List.map fst tcss), dots2) - | _ -> fail_dir_typ env id.at phrase Infer (VarT (id, args) $ id.at) "| ..." - | exception Error (at', msg) -> fail at' msg - -and as_variant_typid phrase env id args : (typcase list * dots) attempt = - as_variant_typid' phrase env id args id.at - -and as_variant_typ phrase env dir t at : (typcase list * dots) attempt = - match expand env t with - | VarT (id, args) -> as_variant_typid' phrase env id args at - | _ -> fail_dir_typ env at phrase dir t "| ..." + fail at (phrase ^ "'s type " ^ typ_string env t ^ " is not concatenable") +let as_notation_typ phrase env dir t at : (Il.quant list * Il.typ * _ Mixop.mixop * notation) attempt = + match expand_notation env t with + | Some x -> Ok x + | _ -> fail_dir_typ env at phrase dir t "_ ... _" let is_x_typ as_x_typ env t = match as_x_typ "" env Check t no_region with @@ -590,28 +665,35 @@ let is_x_typ as_x_typ env t = | Fail _ -> false let is_nat_typ = is_x_typ as_nat_typ -let is_empty_typ = is_x_typ as_empty_typ let is_iter_typ = is_x_typ as_iter_typ +(* let is_iter_notation_typ = is_x_typ as_iter_notation_typ -let is_notation_typ = is_x_typ as_notation_typ +*) let is_variant_typ = is_x_typ as_variant_typ +let is_notation_typ = is_x_typ as_notation_typ +let is_empty_notation_typ = is_x_typ as_empty_notation_typ (* Type Equivalence and Shallow Numeric Subtyping *) let equiv_typ env t1 t2 = - Eval.equiv_typ (to_eval_env env) t1 t2 + Il.Eval.equiv_typ (to_il_env env) t1 t2 let sub_typ env t1 t2 = - Eval.sub_typ (to_eval_env env) t1 t2 + Il.Eval.sub_typ (to_il_env env) t1 t2 let narrow_typ env t1 t2 = - Eval.narrow_typ (to_eval_env env) t1 t2 + Debug.(log "el.narrow_typ" + (fun _ -> fmt "%s <: %s" (il_typ t1) (il_typ t2)) Bool.to_string + ) @@ fun _ -> + match expand env t1, expand env t2 with + | Il.NumT nt1, Il.NumT nt2 -> Num.sub nt1 nt2 + | _, _ -> equiv_typ env t1 t2 (* Hints *) -let elab_hint tid mixop {hintid; hintexp} : Il.hint = +let elab_hint tid case {hintid; hintexp} : Il.hint = let module IterAtoms = Iter.Make( struct @@ -620,18 +702,24 @@ let elab_hint tid mixop {hintid; hintexp} : Il.hint = assert (valid_tid tid); assert (atom.note.Atom.def = ""); atom.note.Atom.def <- tid.it; - atom.note.Atom.case <- Mixop.name mixop + atom.note.Atom.case <- case end ) in IterAtoms.exp hintexp; {Il.hintid; Il.hintexp} -let elab_hints tid mixop = List.map (elab_hint tid mixop) +let elab_hints tid case = List.map (elab_hint tid case) (* Atoms and Operators *) +let fresh_note note = Atom.{note with def = ""} +let fresh_atom atom = {atom with note = fresh_note atom.note} +let fresh_mixop mixop = Mixop.map_atoms fresh_atom mixop +let fresh_typfield (atom, t_prs, hints) = (fresh_atom atom, t_prs, hints) +let fresh_typcase (mixop, t_prs, hints) = (fresh_mixop mixop, t_prs, hints) + let elab_atom atom tid = assert (valid_tid tid); (* @@ -644,22 +732,22 @@ Printf.eprintf "[elab_atom %s @ %s] def=%s/%s\n%!" atom let infer_unop'' op ts = - List.map (fun t -> op, (t :> Il.optyp), NumT t, NumT t) ts + List.map (fun t -> op, (t :> Il.optyp), Il.NumT t, Il.NumT t) ts let infer_binop'' op ts = - List.map (fun t -> op, (t :> Il.optyp), NumT t, NumT t, NumT t) ts + List.map (fun t -> op, (t :> Il.optyp), Il.NumT t, Il.NumT t, Il.NumT t) ts let infer_cmpop'' op ts = - List.map (fun t -> op, (t :> Il.optyp), NumT t) ts + List.map (fun t -> op, (t :> Il.optyp), Il.NumT t) ts let infer_unop' = function - | #Bool.unop as op -> [op, `BoolT, BoolT, BoolT] + | #Bool.unop as op -> [op, `BoolT, Il.BoolT, Il.BoolT] | #Num.unop as op -> infer_unop'' op [`IntT; `RatT; `RealT] | `PlusMinusOp -> infer_unop'' `PlusOp [`IntT; `RatT; `RealT] | `MinusPlusOp -> infer_unop'' `MinusOp [`IntT; `RatT; `RealT] let infer_binop' = function - | #Bool.binop as op -> [op, `BoolT, BoolT, BoolT, BoolT] + | #Bool.binop as op -> [op, `BoolT, Il.BoolT, Il.BoolT, Il.BoolT] | `AddOp as op -> infer_binop'' op [`NatT; `IntT; `RatT; `RealT] | `SubOp as op -> infer_binop'' op [`IntT; `RatT; `RealT] | `MulOp as op -> infer_binop'' op [`NatT; `IntT; `RatT; `RealT] @@ -668,21 +756,22 @@ let infer_binop' = function | `PowOp as op -> infer_binop'' op [`NatT; `RatT; `RealT] |> List.map (fun (op, nt, t1, t2, t3) -> - (op, nt, t1, (if t2 = NumT `NatT then t2 else NumT `IntT), t3)) + (op, nt, t1, (if t2 = Il.NumT `NatT then t2 else Il.NumT `IntT), t3)) let infer_cmpop' = function | #Bool.cmpop as op -> `Poly op | #Num.cmpop as op -> `Over (infer_cmpop'' op [`NatT; `IntT; `RatT; `RealT]) -let infer_unop env op t1 at : (Il.unop * Il.optyp * typ * typ) attempt = +let infer_unop env op t1 at : (Il.unop * Il.optyp * Il.typ * Il.typ) attempt = let ops = infer_unop' op in match List.find_opt (fun (_, _, t1', _) -> narrow_typ env t1 (t1' $ at)) ops with | Some (op', nt, t1', t2') -> Ok (op', nt, t1' $ at, t2' $ at) | None -> fail at ("unary operator `" ^ string_of_unop op ^ - "` is not defined for operand type `" ^ string_of_typ ~short:true t1 ^ "`") + "` is not defined for operand type " ^ typ_string env t1 + ) -let infer_binop env op t1 t2 at : (Il.binop * Il.optyp * typ * typ * typ) attempt = +let infer_binop env op t1 t2 at : (Il.binop * Il.optyp * Il.typ * Il.typ * Il.typ) attempt = let ops = infer_binop' op in match List.find_opt (fun (_, _, t1', t2', _) -> @@ -691,11 +780,12 @@ let infer_binop env op t1 t2 at : (Il.binop * Il.optyp * typ * typ * typ) attemp | Some (op', nt, t1', t2', t3') -> Ok (op', nt, t1' $ at, t2' $ at, t3' $ at) | None -> fail at ("binary operator `" ^ string_of_binop op ^ - "` is not defined for operand types `" ^ - string_of_typ ~short:true t1 ^ "` and `" ^ string_of_typ ~short:true t2 ^ "`") + "` is not defined for operand types `" ^ typ_string env t1 ^ + " and " ^ typ_string env t2 + ) let infer_cmpop env op - : [`Poly of Il.cmpop | `Over of (typ -> typ -> region -> (Il.cmpop * Il.optyp * typ) attempt)] = + : [`Poly of Il.cmpop | `Over of (Il.typ -> Il.typ -> region -> (Il.cmpop * Il.optyp * Il.typ) attempt)] = match infer_cmpop' op with | `Poly op' -> `Poly op' | `Over ops -> `Over (fun t1 t2 at -> @@ -706,8 +796,9 @@ let infer_cmpop env op | Some (op', nt, t) -> Ok (op', nt, t $ at) | None -> fail at ("comparison operator `" ^ string_of_cmpop op ^ - "` is not defined for operand types `" ^ - string_of_typ ~short:true t1 ^ "` and `" ^ string_of_typ ~short:true t2 ^ "`") + "` is not defined for operand types " ^ typ_string env t1 ^ + " and " ^ typ_string env t2 + ) ) let merge_mixop mixop1 mixop2 = @@ -719,10 +810,10 @@ let merge_mixop mixop1 mixop2 = mixop1' @ [atoms1 @ atoms2] @ mixop2' -let check_atoms phrase item list at = +let check_atoms phrase item to_atom list at = let _, dups = - List.fold_right (fun (atom, _, _) (set, dups) -> - let s = Print.string_of_atom atom in + List.fold_right (fun (op, _, _) (set, dups) -> + let s = Print.string_of_atom (to_atom op) in if Set.mem s set then (set, s::dups) else (Set.add s set, dups) ) list (Set.empty, []) in @@ -733,21 +824,21 @@ let check_atoms phrase item list at = (* Iteration *) -let rec elab_iter env iter : Il.param list * Il.iter = +let rec elab_iter env iter : Il.quant list * Il.iter = match iter with | Opt -> [], Il.Opt | List -> [], Il.List | List1 -> [], Il.List1 - | ListN (e, id_opt) -> - Option.iter (fun id -> - let qs', e' = checkpoint (elab_exp env (VarE (id, []) $ id.at) (NumT `NatT $ id.at)) in - (* TODO(4, rossberg): extend IL to allow arbitrary pattern exps *) + | ListN (e, xo) -> + Option.iter (fun x -> + let t = Il.NumT `NatT $ x.at in + let qs, e' = checkpoint (elab_exp env (VarE (x, []) $ x.at) t) in match e'.it with - | Il.VarE _ -> assert (qs' = []) - | _ -> error_typ env id.at "iteration variable" (NumT `NatT $ id.at) - ) id_opt; - let qs', e' = checkpoint (elab_exp env e (NumT `NatT $ e.at)) in - qs', Il.ListN (e', id_opt) + | Il.VarE _ -> assert (qs = []) + | _ -> error_typ env x.at "iteration variable" t + ) xo; + let qs, e' = checkpoint (elab_exp env e (Il.NumT `NatT $ e.at)) in + qs, Il.ListN (e', xo) and elab_typiter env iter : Il.iter = let iter = @@ -755,8 +846,8 @@ and elab_typiter env iter : Il.iter = | List1 | ListN _ -> List | _ -> iter in - let qs', iter' = elab_iter env iter in - assert (qs' = []); + let qs, iter' = elab_iter env iter in + assert (qs = []); iter' @@ -764,14 +855,16 @@ and elab_typiter env iter : Il.iter = and elab_typ env t : Il.typ = match t.it with - | VarT (id, as_) -> - let id' = strip_var_suffix id in - if id'.it <> id.it && as_ = [] then elab_typ env (Convert.typ_of_varid id') else - let ps, _ = find "syntax type" env.typs id' in - let qs', as', _s = elab_args `Rhs env as_ ps t.at in - if qs' <> [] then - error t.at "illegal expression forms in type instantiation"; - Il.VarT (id', as') $ t.at + | VarT (x, as_) -> + let x' = strip_var_suffix x in + if x'.it <> x.it && as_ = [] then + elab_typ env (Convert.typ_of_varid x') + else + let ps, _ = find "syntax type" env.typs x' in + let qs, as', _s = elab_args `Rhs env as_ ps t.at in + if qs <> [] then + error t.at "illegal expression form in type instantiation"; + Il.VarT (x', as') $ t.at | BoolT -> Il.BoolT $ t.at | NumT t' -> Il.NumT t' $ t.at | TextT -> Il.TextT $ t.at @@ -782,293 +875,281 @@ and elab_typ env t : Il.typ = let iter' = elab_typiter env iter in let t1' = elab_typ env t1 in Il.IterT (t1', iter') $ t.at - | StrT _ | CaseT _ | ConT _ | RangeT _ | AtomT _ | SeqT _ | InfixT _ | BrackT _ -> + | StrT _ | CaseT _ | ConT _ | RangeT _ + | AtomT _ | SeqT _ | InfixT _ | BrackT _ -> error t.at "this type is only allowed in type definitions" -and elab_typ_definition env tid t : Il.deftyp = +and elab_typ_definition env tid t : Il.deftyp * dots = Debug.(log_at "el.elab_typ_definition" t.at - (fun _ -> fmt "%s = %s" tid.it (el_typ t)) il_deftyp + (fun _ -> fmt "%s = %s" tid.it (el_typ t)) + (fun (dt, _) -> il_deftyp dt) ) @@ fun _ -> assert (valid_tid tid); - (match t.it with - | StrT (dots1, ts, tfs, _dots2) -> - let tfs0 = - if dots1 = Dots then - fst (checkpoint (as_struct_typid' "own type" env tid [] t.at)) - else [] + match t.it with + | StrT (dots1, ts, tfs, dots2) -> + let tfs1 = + if dots1 = NoDots then [] else + let t1 = Il.VarT (tid, []) $ tid.at in + if not (bound env.typs tid) then + error t.at "extension of previously undefined syntax type"; + let tfs1, dots = checkpoint (as_struct_typ "own type" env Check t1 t1.at) in + if dots = NoDots then + error t.at "extension of non-extensible syntax type"; + List.map fresh_typfield tfs1 (* ensure atom annotations are fresh *) in - let tfss = - map_filter_nl_list (fun t -> - let tfs, dots = checkpoint (as_struct_typ "parent type" env Infer t t.at) in + let tfs2 = + concat_map_filter_nl_list (fun t -> + let t' = elab_typ env t in + let tfs, dots = checkpoint (as_struct_typ "parent type" env Infer t' t'.at) in if dots = Dots then - error t.at "cannot include incomplete syntax type"; - List.map Iter.clone_typfield tfs (* ensure atom annotations are fresh *) + error t.at "inclusion of incomplete syntax type"; + List.map fresh_typfield tfs (* ensure atom annotations are fresh *) ) ts in - let tfs1 = List.flatten (List.map Iter.clone_typfield tfs0 :: tfss @ [filter_nl tfs]) in - let tfs' = List.map (elab_typfield env tid t.at) tfs1 in - check_atoms "record" "field" tfs' t.at; - Il.StructT tfs' - | CaseT (dots1, ts, tcs, _dots2) -> - let tcs0 = - if dots1 = Dots then - fst (checkpoint (as_variant_typid "own type" env tid [])) - else [] + let tfs' = tfs1 @ tfs2 @ map_filter_nl_list (elab_typfield env tid t.at) tfs in + check_atoms "record" "field" Fun.id tfs' t.at; + Il.StructT tfs' $ t.at, dots2 + | CaseT (dots1, ts, tcs, dots2) -> + let tcs1 = + if dots1 = NoDots then [] else + let t1 = Il.VarT (tid, []) $ tid.at in + if not (bound env.typs tid) then + error t.at "extension of previously undefined syntax type"; + let tcs1, dots = checkpoint (as_variant_typ "own type" env Check t1 t1.at) in + if dots = NoDots then + error t.at "extension of non-extensible syntax type"; + List.map fresh_typcase tcs1 (* ensure atom annotations are fresh *) in - let tcss = - map_filter_nl_list (fun t -> - let tcs, dots = checkpoint (as_variant_typ "parent type" env Infer t t.at) in + let tcs2 = + concat_map_filter_nl_list (fun t -> + let t' = elab_typ env t in + let tcs, dots = checkpoint (as_variant_typ "parent type" env Infer t' t'.at) in if dots = Dots then - error t.at "cannot include incomplete syntax type"; - List.map Iter.clone_typcase tcs (* ensure atom annotations are fresh *) + error t.at "inclusion of incomplete syntax type"; + List.map fresh_typcase tcs (* ensure atom annotations are fresh *) ) ts in - let tcs1 = List.flatten (List.map Iter.clone_typcase tcs0 :: tcss @ [filter_nl tcs]) in - let tcs' = List.map (elab_typcase env tid t.at) tcs1 in - check_atoms "variant" "case" tcs1 t.at; - Il.VariantT tcs' + let tcs' = tcs1 @ tcs2 @ map_filter_nl_list (elab_typcase env tid t.at) tcs in + check_atoms "variant" "case" (fun op -> Option.get (Mixop.head op)) tcs' t.at; + Il.VariantT tcs' $ t.at, dots2 | ConT tc -> let tc' = elab_typcon env tid t.at tc in - Il.VariantT [tc'] + Il.VariantT [tc'] $ t.at, NoDots | RangeT tes -> let ts_fes' = map_filter_nl_list (elab_typenum env tid) tes in - let t1, fe' = + let t', fe' = List.fold_left (fun (t, fe') (tI, feI') -> (if narrow_typ env tI t then t else tI), fun eid' nt -> let e' = fe' eid' nt and eI' = feI' eid' nt in let at = Source.over_region [e'.at; eI'.at] in - Il.(BinE (`OrOp, `BoolT, e', eI') $$ at % (BoolT $ at)) + Il.(BinE (`OrOp, `BoolT, e', eI') $$ at % (Il.BoolT $ at)) ) (List.hd ts_fes') (List.tl ts_fes') in - let t' = elab_typ env t1 in - let nt = match t1.it with NumT nt -> nt | _ -> assert false in - let id' = "i" $ t.at in - let eid' = Il.VarE id' $$ t.at % t' in - let qs' = [Il.ExpP (id', t') $ t.at] in + let nt = match t'.it with Il.NumT nt -> nt | _ -> assert false in + let x = "i" $ t.at in + let eid' = Il.VarE x $$ t.at % t' in + let qs = [Il.ExpP (x, t') $ t.at] in let prems' = [Il.IfPr (fe' eid' nt) $ t.at] in - let tc' = ([[]; []], (qs', Il.TupT [(id', t')] $ t.at, prems'), []) in - Il.VariantT [tc'] + let tc' = (Mixop.Arg (), (qs, Il.TupT [(x, t')] $ t.at, prems'), []) in + Il.VariantT [tc'] $ t.at, NoDots | _ -> let t' = elab_typ env t in - Il.AliasT t' - ) $ t.at + Il.AliasT t' $ t.at, NoDots -and typ_rep env t : typ = +and typ_rep env t : Il.typ = Debug.(log_at "el.typ_rep" t.at - (fun _ -> fmt "%s" (el_typ t)) - (fun r -> fmt "%s" (el_typ r)) + (fun _ -> fmt "%s" (il_typ t)) + (fun r -> fmt "%s" (il_typ r)) ) @@ fun _ -> - match expand_def env t with - | ConT ((t1, _), _) -> t1 - | RangeT tes -> - let ts_fes' = map_filter_nl_list (elab_typenum env (expand_id env t)) tes in - List.fold_left (fun t (tI, _) -> - if sub_typ env tI t then t else tI - ) (fst (List.hd ts_fes')) (List.tl ts_fes') - | _ -> t + match expand env t with + | Il.VarT _ as t' -> + (match expand_def env (t' $ t.at) with + | Il.VariantT [_, (_, t1, _), _], NoDots -> t1 + | _ -> t' $ t.at + ) + | t' -> t' $ t.at and elab_typfield env tid at (atom, (t, prems), hints) : Il.typfield = - let _mixop, qs', t', prems', _ = elab_typ_notation' env tid at t prems in - let hints' = elab_hints tid [] hints in + let _mixop, qs, t', prems' = elab_typ_notation' env tid at t prems in + let hints' = elab_hints tid "" hints in let t'' = (* TODO(4, rossberg): remove this hack *) match t'.it with | Il.TupT [(_, t1')] when prems' = [] -> t1' | _ -> t' in - (elab_atom atom tid, (qs', t'', prems'), hints') -(* - assert (valid_tid tid); - let env' = local_env env in - let _mixop, ts', ts = elab_typ_notation env' tid t in - let es = Convert.pats_of_typs ts in - let dims = Dim.check_typdef (vars env) t prems in - let dims' = Dim.Env.map (List.map (elab_iter env')) dims in - let es' = checkpoint (map2_attempt (elab_exp env') es ts) in - let es' = List.map (Dim.annot_exp dims') es' in - let prems' = List.map (Dim.annot_prem dims') - (concat_map_filter_nl_list (elab_prem env') prems) in - let det = Free.(diff (union (free_list det_exp es) (det_prems prems)) (bound_env env)) in - let free = Free.(diff (union (free_typ t) (free_prems prems)) (union det (bound_env env))) in - if free <> Free.empty then - error at ("type field contains indeterminate variable(s) `" ^ - String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in - let module Acc = Iter.Make(Arg) in - List.iter Acc.exp es; - Acc.prems prems; - ( elab_atom atom tid, - (!acc_qs', (if prems = [] then tup_typ' else tup_typ_bind' es') ts' t.at, prems'), - elab_hints tid [] hints - ) -*) + (elab_atom atom tid, (qs, t'', prems'), hints') and elab_typcase env tid at (_atom, (t, prems), hints) : Il.typcase = - let mixop, qs', t', prems', _ = elab_typ_notation' env tid at t prems in - let hints' = elab_hints tid [] hints in - (mixop, (qs', t', prems'), hints') -(* - assert (valid_tid tid); - let env' = local_env env in - let mixop, ts', ts = elab_typ_notation env' tid t in - let es = Convert.pats_of_typs ts in - let dims = Dim.check_typdef (vars env) t prems in - let dims' = Dim.Env.map (List.map (elab_iter env')) dims in - let es' = checkpoint (map2_attempt (elab_exp env') es ts) in - let es' = List.map (Dim.annot_exp dims') es' in - let prems' = List.map (Dim.annot_prem dims') - (concat_map_filter_nl_list (elab_prem env') prems) in - let det = Free.(diff (union (free_list det_exp es) (det_prems prems)) (bound_env env)) in - let free = Free.(diff (free_typcase tc) (union det (bound_env env))) in - if free <> Free.empty then -(Printf.printf "[typcase] t = %s\n%!" (Print.string_of_typ t); - List.iteri (fun i e -> Printf.printf "[typcase] t%d = %s\n%!" i (Print.string_of_typ e)) ts; - List.iteri (fun i e -> Printf.printf "[typcase] t%d' = %s\n%!" i (Il.Print.string_of_typ e)) ts'; - List.iteri (fun i e -> Printf.printf "[typcase] e%d = %s\n%!" i (Print.string_of_exp e)) es; - error at ("type case contains indeterminate variable(s) `" ^ - String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); -); - let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in - let module Acc = Iter.Make(Arg) in - List.iter Acc.exp es; - Acc.prems prems; - ( mixop, - (!acc_qs', tup_typ_bind' es' ts' at, prems'), - elab_hints tid [] hints - ) -*) + let mixop, qs, t', prems' = elab_typ_notation' env tid at t prems in + let hints' = elab_hints tid "" hints in + (mixop, (qs, t', prems'), hints') and elab_typcon env tid at ((t, prems), hints) : Il.typcase = - let mixop, qs', t', prems', _ = elab_typ_notation' env tid at t prems in - let hints' = elab_hints tid [Atom.Atom tid.it $$ tid.at % Atom.info ""] hints in - (mixop, (qs', t', prems'), hints') -(* - assert (valid_tid tid); - let env' = local_env env in - let mixop, ts', ts = elab_typ_notation env' tid t in - let es = Convert.pats_of_typs ts in - let dims = Dim.check_typdef (vars env) t prems in - let dims' = Dim.Env.map (List.map (elab_iter env')) dims in - let es' = checkpoint (map_attempt Fun.id (List.map2 (elab_exp env') es ts)) in - let es' = List.map (Dim.annot_exp dims') es' in - let prems' = List.map (Dim.annot_prem dims') - (concat_map_filter_nl_list (elab_prem env') prems) in - let det = Free.(diff (union (free_list det_exp es) (det_prems prems)) (bound_env env)) in - let free = Free.(diff (union (free_typ t) (free_prems prems)) (union det (bound_env env))) in - if free <> Free.empty then - error at ("type constraint contains indeterminate variable(s) `" ^ - String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in - let module Acc = Iter.Make(Arg) in - List.iter Acc.exp es; - Acc.prems prems; - ( mixop, - (!acc_qs', tup_typ_bind' es' ts' at, prems'), - elab_hints tid [Atom.Atom tid.it $$ tid.at % Atom.info ""] hints - ) -*) + let mixop, qs, t', prems' = elab_typ_notation' env tid at t prems in + let hints' = elab_hints tid tid.it hints in + (mixop, (qs, t', prems'), hints') -and elab_typenum env tid (e1, e2o) : typ * (Il.exp -> numtyp -> Il.exp) = +and elab_typenum env tid (e1, e2o) : Il.typ * (Il.exp -> numtyp -> Il.exp) = assert (valid_tid tid); - let _e1' = elab_exp env e1 (NumT `IntT $ e1.at) in (* ensure it's <= int *) - let _qs1', _, t1 = checkpoint (infer_exp env e1) in (* get precise type *) + let _e1' = elab_exp env e1 (Il.NumT `IntT $ e1.at) in (* ensure it's <= int *) + let _qs1, _, t1 = checkpoint (infer_exp env e1) in (* get precise type *) match e2o with | None -> t1, fun eid' nt -> - let qs1', e1' = checkpoint (elab_exp env e1 (NumT nt $ e1.at)) in (* redo with overall type *) - if qs1' <> [] then + let qs1, e1' = checkpoint (elab_exp env e1 (Il.NumT nt $ e1.at)) in (* redo with overall type *) + if qs1 <> [] then error e1.at "illegal expression form in range type"; - Il.(CmpE (`EqOp, `BoolT, eid', e1') $$ e1'.at % (BoolT $ e1.at)) + Il.(CmpE (`EqOp, `BoolT, eid', e1') $$ e1'.at % (Il.BoolT $ e1.at)) | Some e2 -> let at = Source.over_region [e1.at; e2.at] in - let _qs21', _e2' = checkpoint (elab_exp env e2 (NumT `IntT $ e2.at)) in + let _qs21', _e2' = checkpoint (elab_exp env e2 (Il.NumT `IntT $ e2.at)) in let _qs22, _, t2 = checkpoint (infer_exp env e2) in (if narrow_typ env t2 t1 then t1 else t2).it $ at, fun eid' nt -> - let qs1', e1' = checkpoint (elab_exp env e1 (NumT nt $ e1.at)) in - let qs2', e2' = checkpoint (elab_exp env e2 (NumT nt $ e2.at)) in - if qs1' <> [] then + let qs1, e1' = checkpoint (elab_exp env e1 (Il.NumT nt $ e1.at)) in + let qs2, e2' = checkpoint (elab_exp env e2 (Il.NumT nt $ e2.at)) in + if qs1 <> [] then error e1.at "illegal expression form in range type"; - if qs2' <> [] then + if qs2 <> [] then error e2.at "illegal expression form in range type"; Il.(BinE (`AndOp, `BoolT, - CmpE (`GeOp, (nt :> Il.optyp), eid', e1') $$ e1'.at % (BoolT $ e1.at), - CmpE (`LeOp, (nt :> Il.optyp), eid', e2') $$ e2'.at % (BoolT $ e2.at) - ) $$ at % (BoolT $ at)) + CmpE (`GeOp, (nt :> Il.optyp), eid', e1') $$ e1'.at % (Il.BoolT $ e1.at), + CmpE (`LeOp, (nt :> Il.optyp), eid', e2') $$ e2'.at % (Il.BoolT $ e2.at) + ) $$ at % (Il.BoolT $ at)) + + + +(* Like Convert.* but for IL *) +and varid_of_typ' t = + (match t.it with + | Il.VarT (id, _) -> id.it + | Il.BoolT -> "bool" + | Il.NumT `NatT -> "nat" + | Il.NumT `IntT -> "int" + | Il.NumT `RatT -> "rat" + | Il.NumT `RealT -> "real" + | Il.TextT -> "text" + | _ -> "_" + ) $ t.at + +and expify' t = function + | Some e -> e + | None -> Il.VarE ("_" $ t.at) $$ t.at % t -and elab_typ_notation' env tid at t prems : Il.mixop * Il.param list * Il.typ * Il.prem list * typ list = +and pat'_of_typ' s t : Il.exp option = + let (let*) = Option.bind in + let module Il = Il.Ast in + match t.it with + | Il.VarT (id, _args) -> + if Set.mem id.it !s then None else + ( + (* Suppress duplicates. *) + s := Set.add id.it !s; + Some (Il.VarE id $$ t.at % t) + ) + | Il.BoolT | Il.NumT _ | Il.TextT -> + let id = varid_of_typ' t in + if Set.mem id.it !s then None else + ( + (* Suppress duplicates. *) + s := Set.add id.it !s; + Some (Il.VarE id $$ t.at % t) + ) + | Il.TupT xts -> + let* es = pats'_of_typs' s (List.map snd xts) in + Some (Il.TupE es $$ t.at % t) + | Il.IterT (t1, iter) -> + let* e1 = pat'_of_typ' s t1 in + Some (Il.IterE (e1, (iter, [])) $$ t.at % t) + +and pats'_of_typs' s ts : Il.exp list option = + let eos = List.map (pat'_of_typ' s) ts in + if List.for_all ((=) None) eos then None else + Some (List.map2 expify' ts eos) + +and pat'_of_typ t = expify' t (pat'_of_typ' (ref Set.empty) t) +and pats'_of_typs ts = List.map2 expify' ts (List.map (pat'_of_typ' (ref Set.empty)) ts) + +and elab_typ_notation' env tid at t prems : + Il.mixop * Il.quant list * Il.typ * Il.prem list = assert (valid_tid tid); let env' = local_env env in - let mixop, ts', ts = elab_typ_notation env' tid t in - let es = Convert.pats_of_typs ts in + let mixop, ts' = elab_typ_notation env' tid t in + let es' = pats'_of_typs ts' in let dims = Dim.check_typdef (vars env) t prems in let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let qss1', es' = List.split (checkpoint (map2_attempt (elab_exp env') es ts)) in let es' = List.map (Dim.annot_exp dims') es' in - let qss2', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let qss, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in - let det = Free.(diff (union (free_list det_exp es) (det_prems prems)) (bound_env env)) in + let det = Free.(diff (union (det_typ t) (det_prems prems)) (bound_env env)) in let free = Free.(diff (union (free_typ t) (free_prems prems)) (union det (bound_env env))) in if free <> Free.empty then -(Printf.printf "[notation] t = %s\n%!" (Print.string_of_typ t); -List.iteri (fun i e -> Printf.printf "[notation] t%d = %s\n%!" i (Print.string_of_typ e)) ts; +(Printf.printf "[notation] t = %s\n%!" (Debug.el_typ t); List.iteri (fun i e -> Printf.printf "[notation] t%d' = %s\n%!" i (Il.Print.string_of_typ e)) ts'; -List.iteri (fun i e -> Printf.printf "[notation] e%d = %s\n%!" i (Print.string_of_exp e)) es; +List.iteri (fun i e -> Printf.printf "[notation] e%d' = %s\n%!" i (Il.Print.string_of_exp e)) es'; error at ("premise contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); ); - let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in + let acc_qs, (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in let module Acc = Iter.Make(Arg) in - List.iter Acc.exp es; + Acc.typ t; Acc.prems prems; - mixop, !acc_qs' @ List.concat (qss1' @ qss2'), tup_typ_bind' es' ts' t.at, prems', ts + mixop, !acc_qs @ List.concat qss, tup_typ_bind' es' ts' t.at, prems' -and elab_typ_notation env tid t : Il.mixop * Il.typ list * typ list = +and elab_typ_notation env tid t : Il.mixop * Il.typ list = Debug.(log_at "el.elab_typ_notation" t.at (fun _ -> fmt "(%s) %s" tid.it (el_typ t)) - (fun (mixop, ts', _) -> fmt "%s(%s)" (il_mixop mixop) (list il_typ ts')) + (fun (mixop, ts') -> fmt "%s(%s)" (il_mixop mixop) (list il_typ ts')) ) @@ fun _ -> assert (valid_tid tid); match t.it with - | VarT (id, as_) -> - let id' = strip_var_suffix id in - (match (Convert.typ_of_varid id').it with + | VarT (x, as_) -> + let x' = strip_var_suffix x in + (match (Convert.typ_of_varid x').it with | VarT _ -> - (match find "syntax type" env.typs id' with - | _, Transp -> error_id id "invalid forward reference to syntax type" + (match find "syntax type" env.typs x' with + | _, Transp -> error_id x "invalid forward reference to syntax type" | ps, _ -> - let qs', as', _s = elab_args `Rhs env as_ ps t.at in - if qs' <> [] then + let qs, as', _s = elab_args `Rhs env as_ ps t.at in + if qs <> [] then error t.at "illegal expression forms in type instantiation"; - [[]; []], [Il.VarT (id', as') $ t.at], [t] + let t' = Il.VarT (x', as') $ t.at in + Arg (), [t'] ) - | t' -> - [[]; []], [elab_typ env (t' $ id.at)], [t] + | t1 -> + assert (as_ = []); + let t' = elab_typ env (t1 $ x.at) in + Arg (), [t'] ) | AtomT atom -> - [[elab_atom atom tid]], [], [] + let atom' = elab_atom atom tid in + Atom atom', [] | SeqT [] -> - [[]], [], [] + Seq [], [] | SeqT (t1::ts2) -> - let mixop1, ts1', ts1 = elab_typ_notation env tid t1 in - let mixop2, ts2', ts2 = elab_typ_notation env tid (SeqT ts2 $ t.at) in - merge_mixop mixop1 mixop2, ts1' @ ts2', ts1 @ ts2 + let mixop1, ts1' = elab_typ_notation env tid t1 in + let mixop2, ts2' = elab_typ_notation env tid (SeqT ts2 $ t.at) in + (match mixop2 with Seq mixops2 -> Seq (mixop1::mixops2) | _ -> assert false), + ts1' @ ts2' | InfixT (t1, atom, t2) -> - let mixop1, ts1', ts1 = elab_typ_notation env tid t1 in - let mixop2, ts2', ts2 = elab_typ_notation env tid t2 in - merge_mixop (merge_mixop mixop1 [[elab_atom atom tid]]) mixop2, - ts1' @ ts2', ts1 @ ts2 + let mixop1, ts1' = elab_typ_notation env tid t1 in + let mixop2, ts2' = elab_typ_notation env tid t2 in + let atom' = elab_atom atom tid in + Infix (mixop1, atom', mixop2), ts1' @ ts2' | BrackT (l, t1, r) -> - let mixop1, ts1', ts1 = elab_typ_notation env tid t1 in - merge_mixop (merge_mixop [[elab_atom l tid]] mixop1) [[elab_atom r tid]], - ts1', ts1 + let mixop1, ts1' = elab_typ_notation env tid t1 in + let l' = elab_atom l tid in + let r' = elab_atom r tid in + Brack (l', mixop1, r'), ts1' | _ -> - [[]; []], [elab_typ env t], [t] + let t' = elab_typ env t in + Arg (), [t'] and (!!!) env tid t = - let _, ts', _ = elab_typ_notation env tid t in tup_typ' ts' t.at + let _, ts' = elab_typ_notation env tid t in tup_typ' ts' t.at (* Expressions *) @@ -1078,193 +1159,196 @@ and (!!!) env tid t = * - Fail (at, s) when it cannot, where s is the name of the failing construct * - raises Error.Error on fatal, unrecoverable errors *) -and infer_exp env e : (Il.param list * Il.exp * typ) attempt = +and infer_exp env e : (Il.quant list * Il.exp * Il.typ) attempt = Debug.(log_at "el.infer_exp" e.at (fun _ -> fmt "%s" (el_exp e)) - (function Ok (qs', e', t) -> fmt "%s%s : %s" (il_quants qs') (il_exp e') (el_typ t) | _ -> "fail") + (function Ok (qs, e', t) -> fmt "%s%s : %s" (il_quants qs) (il_exp e') (il_typ t) | _ -> "fail") ) @@ fun _ -> - let* qs', e', t' = infer_exp' env e in + let* qs, e', t' = infer_exp' env e in let t = t' $ e.at in - Ok (qs', e' $$ e.at % elab_typ env t, t) + Ok (qs, e' $$ e.at % t, t) -and infer_exp' env e : (Il.param list * Il.exp' * typ') attempt = +and infer_exp' env e : (Il.quant list * Il.exp' * Il.typ') attempt = match e.it with - | VarE (id, args) -> + | VarE (x, args) -> (* Args may only occur due to syntactic overloading with types *) if args <> [] then error e.at "malformed expression"; - if id.it = "_" then fail_infer e.at "wildcard" else + if x.it = "_" then fail_infer e.at "wildcard" else let* t = - if bound env.vars id then - Ok (find "variable" env.vars id) - else if bound env.gvars (strip_var_suffix id) then + if bound env.vars x then + Ok (find "variable" env.vars x) + else if bound env.gvars (strip_var_suffix x) then (* If the variable itself is not yet declared, use type hint. *) - let t = find "variable" env.gvars (strip_var_suffix id) in - env.vars <- bind "variable" env.vars id t; + let t = find "variable" env.gvars (strip_var_suffix x) in + env.vars <- bind "variable" env.vars x t; Ok t else fail_infer e.at "variable" - in Ok ([], Il.VarE id, t.it) + in Ok ([], Il.VarE x, t.it) | AtomE _ -> fail_infer e.at "atom" | BoolE b -> - Ok ([], Il.BoolE b, BoolT) + Ok ([], Il.BoolE b, Il.BoolT) | NumE (_op, n) -> - Ok ([], Il.NumE n, NumT (Num.to_typ n)) + Ok ([], Il.NumE n, Il.NumT (Num.to_typ n)) | TextE s -> - Ok ([], Il.TextE s, TextT) + Ok ([], Il.TextE s, Il.TextT) | CvtE (e1, nt) -> - let* qs1', e1', t1 = infer_exp env e1 in + let* qs1, e1', t1 = infer_exp env e1 in let* nt1 = as_num_typ "conversion" env Infer t1 e1.at in - let* qs1'', e1'' = cast_exp "operand" env e1' t1 (NumT nt1 $ e1.at) in - Ok (qs1' @ qs1'', Il.CvtE (e1'', nt1, nt), NumT nt) + let* qs1', e1'' = cast_exp "operand" env e1' t1 (Il.NumT nt1 $ e1.at) in + Ok (qs1 @ qs1', Il.CvtE (e1'', nt1, nt), Il.NumT nt) | UnE (op, e1) -> - let* qs1', e1', t1 = infer_exp env e1 in + let* qs1, e1', t1 = infer_exp env e1 in let* op', ot, t1', t = infer_unop env op (typ_rep env t1) e.at in - let* qs1'', e1'' = cast_exp "operand" env e1' t1 t1' in + let* qs1', e1'' = cast_exp "operand" env e1' t1 t1' in if op = `PlusMinusOp || op = `MinusPlusOp then env.pm <- true; - Ok (qs1' @ qs1'', Il.UnE (op', ot, e1''), t.it) + Ok (qs1 @ qs1', Il.UnE (op', ot, e1''), t.it) | BinE (e1, op, e2) -> - let* qs1', e1', t1 = infer_exp env e1 in - let* qs2', e2', t2 = infer_exp env e2 in + let* qs1, e1', t1 = infer_exp env e1 in + let* qs2, e2', t2 = infer_exp env e2 in let* op', ot, t1', t2', t = infer_binop env op (typ_rep env t1) (typ_rep env t2) e.at in - let* qs1'', e1'' = cast_exp "operand" env e1' t1 t1' in - let* qs2'', e2'' = cast_exp "operand" env e2' t2 t2' in - Ok (qs1' @ qs1'' @ qs2' @ qs2'', Il.BinE (op', ot, e1'', e2''), t.it) + let* qs1', e1'' = cast_exp "operand" env e1' t1 t1' in + let* qs2', e2'' = cast_exp "operand" env e2' t2 t2' in + Ok (qs1 @ qs1' @ qs2 @ qs2', Il.BinE (op', ot, e1'', e2''), t.it) | CmpE (e1, op, ({it = CmpE (e21, _, _); _} as e2)) -> - let* qs1', e1', _t1 = infer_exp env (CmpE (e1, op, e21) $ e.at) in - let* qs2', e2', _t2 = infer_exp env e2 in - Ok (qs1' @ qs2', Il.BinE (`AndOp, `BoolT, e1', e2'), BoolT) + let* qs1, e1', _t1 = infer_exp env (CmpE (e1, op, e21) $ e.at) in + let* qs2, e2', _t2 = infer_exp env e2 in + Ok (qs1 @ qs2, Il.BinE (`AndOp, `BoolT, e1', e2'), Il.BoolT) | CmpE (e1, op, e2) -> (match infer_cmpop env op with | `Poly op' -> - let* qs', e1', e2' = + let* qs, e1', e2' = choice env [ (fun env -> - let* qs2', e2', t2 = infer_exp env e2 in - let* qs1', e1' = elab_exp env e1 t2 in - Ok (qs1' @ qs2', e1', e2') + let* qs2, e2', t2 = infer_exp env e2 in + let* qs1, e1' = elab_exp env e1 t2 in + Ok (qs1 @ qs2, e1', e2') ); (fun env -> - let* qs1', e1', t1 = infer_exp env e1 in - let* qs2', e2' = elab_exp env e2 t1 in - Ok (qs1' @ qs2', e1', e2') + let* qs1, e1', t1 = infer_exp env e1 in + let* qs2, e2' = elab_exp env e2 t1 in + Ok (qs1 @ qs2, e1', e2') ); ] in - Ok (qs', Il.CmpE (op', `BoolT, e1', e2'), BoolT) + Ok (qs, Il.CmpE (op', `BoolT, e1', e2'), Il.BoolT) | `Over elab_cmpop' -> - let* qs1', e1', t1 = infer_exp env e1 in - let* qs2', e2', t2 = infer_exp env e2 in + let* qs1, e1', t1 = infer_exp env e1 in + let* qs2, e2', t2 = infer_exp env e2 in let* op', ot, t = elab_cmpop' (typ_rep env t1) (typ_rep env t2) e.at in - let* qs1'', e1'' = cast_exp "operand" env e1' t1 t in - let* qs2'', e2'' = cast_exp "operand" env e2' t2 t in - Ok (qs1' @ qs1'' @ qs2' @ qs2'', Il.CmpE (op', ot, e1'', e2''), BoolT) + let* qs1', e1'' = cast_exp "operand" env e1' t1 t in + let* qs2', e2'' = cast_exp "operand" env e2' t2 t in + Ok (qs1 @ qs1' @ qs2 @ qs2', Il.CmpE (op', ot, e1'', e2''), Il.BoolT) ) | IdxE (e1, e2) -> - let* qs1', e1', t1 = infer_exp env e1 in + let* qs1, e1', t1 = infer_exp env e1 in let* t = as_list_typ "expression" env Infer t1 e1.at in - let* qs2', e2' = elab_exp env e2 (NumT `NatT $ e2.at) in - Ok (qs1' @ qs2', Il.IdxE (e1', e2'), t.it) + let* qs2, e2' = elab_exp env e2 (Il.NumT `NatT $ e2.at) in + Ok (qs1 @ qs2, Il.IdxE (e1', e2'), t.it) | SliceE (e1, e2, e3) -> - let* qs1', e1', t1 = infer_exp env e1 in + let* qs1, e1', t1 = infer_exp env e1 in let* _t' = as_list_typ "expression" env Infer t1 e1.at in - let* qs2', e2' = elab_exp env e2 (NumT `NatT $ e2.at) in - let* qs3', e3' = elab_exp env e3 (NumT `NatT $ e3.at) in - Ok (qs1' @ qs2' @ qs3', Il.SliceE (e1', e2', e3'), t1.it) + let* qs2, e2' = elab_exp env e2 (Il.NumT `NatT $ e2.at) in + let* qs3, e3' = elab_exp env e3 (Il.NumT `NatT $ e3.at) in + Ok (qs1 @ qs2 @ qs3, Il.SliceE (e1', e2', e3'), t1.it) | UpdE (e1, p, e2) -> - let* qs1', e1', t1 = infer_exp env e1 in - let* qs', p', t2 = elab_path env p t1 in - let* qs2', e2' = elab_exp env e2 t2 in - Ok (qs1' @ qs' @ qs2', Il.UpdE (e1', p', e2'), t1.it) + let* qs1, e1', t1 = infer_exp env e1 in + let* qs, p', t2 = elab_path env p t1 in + let* qs2, e2' = elab_exp env e2 t2 in + Ok (qs1 @ qs @ qs2, Il.UpdE (e1', p', e2'), t1.it) | ExtE (e1, p, e2) -> - let* qs1', e1', t1 = infer_exp env e1 in - let* qs', p', t2 = elab_path env p t1 in + let* qs1, e1', t1 = infer_exp env e1 in + let* qs, p', t2 = elab_path env p t1 in let* _t21 = as_list_typ "path" env Infer t2 p.at in - let* qs2', e2' = elab_exp env e2 t2 in - Ok (qs1' @ qs' @ qs2', Il.ExtE (e1', p', e2'), t1.it) + let* qs2, e2' = elab_exp env e2 t2 in + Ok (qs1 @ qs @ qs2, Il.ExtE (e1', p', e2'), t1.it) | StrE _ -> fail_infer e.at "record" | DotE (e1, atom) -> - let* qs1', e1', t1 = infer_exp env e1 in - let* tfs, dots1 = as_struct_typ "expression" env Infer t1 e1.at in - if dots1 = Dots then + let* qs1, e1', t1 = infer_exp env e1 in + let* tfs, dots = as_struct_typ "expression" env Infer t1 e1.at in + if dots = Dots then error e1.at "used record type is only partially defined at this point"; -(*TODO*) - let* t, prems = attempt (find_field tfs atom e1.at) t1 in - let e' = Il.DotE (e1', elab_atom atom (expand_id env t1)) in - let e'' = if prems = [] then e' else Il.ProjE (e' $$ e.at % elab_typ env t, 0) in - Ok (qs1', e'', t.it) + let* qsF, tF, prems = attempt (find_field tfs atom e1.at) t1 in + let qs', s = Il.Fresh.refresh_quants qsF in + let as' = il_args_of_params qs' in + let tF' = Il.Subst.subst_typ s tF in + let e' = Il.DotE (e1', elab_atom atom (expand_id env t1), as') in + let e'' = if prems = [] then e' else Il.ProjE (e' $$ e.at % tF', 0) in + Ok (qs1 @ qs', e'', tF'.it) | CommaE (e1, e2) -> - let* qs1', e1', t1 = infer_exp env e1 in - let* tfs, dots1 = as_struct_typ "expression" env Infer t1 e1.at in - if dots1 = Dots then + let* qs1, e1', t1 = infer_exp env e1 in + let* tfs, dots = as_struct_typ "expression" env Infer t1 e1.at in + if dots = Dots then error e1.at "used record type is only partially defined at this point"; - let* _ = as_cat_typ "expression" env Infer t1 e.at in + let* () = as_cat_typ "expression" env Infer t1 e.at in (* TODO(4, rossberg): this is a bit of a hack, can we avoid it? *) (match e2.it with | SeqE ({it = AtomE atom; at; _} :: es2) -> let* _t2 = attempt (find_field tfs atom at) t1 in let e2 = match es2 with [e2] -> e2 | _ -> SeqE es2 $ e2.at in - let* qs2', e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t1 in - Ok (qs1' @ qs2', Il.CompE (e2', e1'), t1.it) + let* qs2, e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t1 in + Ok (qs1 @ qs2, Il.CompE (e2', e1'), t1.it) | _ -> error e.at "malformed comma operator" ) | CatE (e1, e2) -> - let* qs1', e1', t1 = infer_exp env e1 in - let* _ = as_cat_typ "operand" env Infer t1 e1.at in - let* qs2', e2' = elab_exp env e2 t1 in - Ok (qs1' @ qs2', + let* qs1, e1', t1 = infer_exp env e1 in + let* () = as_cat_typ "operand" env Infer t1 e1.at in + let* qs2, e2' = elab_exp env e2 t1 in + Ok (qs1 @ qs2, (if is_iter_typ env t1 then Il.CatE (e1', e2') else Il.CompE (e1', e2')), t1.it) | MemE (e1, e2) -> choice env [ (fun env -> - let* qs1', e1', t1 = infer_exp env e1 in - let* qs2', e2' = elab_exp env e2 (IterT (t1, List) $ e2.at) in - Ok (qs1' @ qs2', Il.MemE (e1', e2'), BoolT) + let* qs1, e1', t1 = infer_exp env e1 in + let* qs2, e2' = elab_exp env e2 (Il.IterT (t1, Il.List) $ e2.at) in + Ok (qs1 @ qs2, Il.MemE (e1', e2'), Il.BoolT) ); (fun env -> - let* qs2', e2', t2 = infer_exp env e2 in + let* qs2, e2', t2 = infer_exp env e2 in let* t1 = as_list_typ "operand" env Infer t2 e2.at in - let* qs1', e1' = elab_exp env e1 t1 in - Ok (qs1' @ qs2', Il.MemE (e1', e2'), BoolT) + let* qs1, e1' = elab_exp env e1 t1 in + Ok (qs1 @ qs2, Il.MemE (e1', e2'), Il.BoolT) ); ] | LenE e1 -> - let* qs1', e1', t1 = infer_exp env e1 in + let* qs1, e1', t1 = infer_exp env e1 in let* _t11 = as_list_typ "expression" env Infer t1 e1.at in - Ok (qs1', Il.LenE e1', NumT `NatT) + Ok (qs1, Il.LenE e1', Il.NumT `NatT) | SizeE id -> let _ = find "grammar" env.grams id in - Ok ([], Il.NumE (`Nat Z.zero), NumT `NatT) + Ok ([], Il.NumE (`Nat Z.zero), Il.NumT `NatT) | ParenE e1 | ArithE e1 -> infer_exp' env e1 | TupE es -> - let* qs', es', ts = infer_exp_list env es in - Ok (qs', Il.TupE es', TupT ts) + let* qs, es', ts = infer_exp_list env es in + Ok (qs, Il.TupE es', (tup_typ' ts e.at).it) | CallE (id, as_) -> let ps, t, _ = find "definition" env.defs id in - let qs', as', s = elab_args `Rhs env as_ ps e.at in - Ok (qs', Il.CallE (id, as'), (Subst.subst_typ s t).it) + let qs, as', s = elab_args `Rhs env as_ ps e.at in + Ok (qs, Il.CallE (id, as'), (Il.Subst.subst_typ s t).it) | EpsE -> fail_infer e.at "empty sequence" | SeqE [] -> (* treat as empty tuple, not principal *) - Ok ([], Il.TupE [], TupT []) + Ok ([], Il.TupE [], Il.TupT []) | SeqE es | ListE es -> (* treat as homogeneous sequence, not principal *) - let* qs', es', ts = infer_exp_list env es in + let* qs, es', ts = infer_exp_list env es in let t = List.hd ts in if List.for_all (equiv_typ env t) (List.tl ts) then - Ok (qs', Il.ListE es', IterT (t, List)) + Ok (qs, Il.ListE es', Il.IterT (t, Il.List)) else fail_infer e.at "expression sequence" | InfixE _ -> fail_infer e.at "infix expression" | BrackE _ -> fail_infer e.at "bracket expression" | IterE (e1, iter) -> - let qs', iter' = elab_iterexp env iter in - let* qs1', e1', t1 = infer_exp env e1 in - Ok (qs1' @ qs', Il.IterE (e1', iter'), IterT (t1, match iter with ListN _ -> List | _ -> iter)) + let qs, iter' = elab_iterexp env iter in + let* qs1, e1', t1 = infer_exp env e1 in + let iter'' = match fst iter' with Il.Opt -> Il.Opt | _ -> Il.List in + Ok (qs1 @ qs, Il.IterE (e1', iter'), Il.IterT (t1, iter'')) | TypE (e1, t) -> - let _t' = elab_typ env t in - let* qs1', e1' = elab_exp env e1 t in - Ok (qs1', e1'.it, t.it) + let t' = elab_typ env t in + let* qs1, e1' = elab_exp env e1 t' in + Ok (qs1, e1'.it, t'.it) | HoleE _ -> error e.at "misplaced hole" | FuseE _ -> error e.at "misplaced token concatenation" | UnparenE _ -> error e.at "misplaced unparenthesize" @@ -1273,15 +1357,15 @@ and infer_exp' env e : (Il.param list * Il.exp' * typ') attempt = and infer_exp_list env = function | [] -> Ok ([], [], []) | e::es -> - let* qs1', e', t = infer_exp env e in - let* qs2', es', ts = infer_exp_list env es in - Ok (qs1' @ qs2', e'::es', t::ts) + let* qs1, e', t = infer_exp env e in + let* qs2, es', ts = infer_exp_list env es in + Ok (qs1 @ qs2, e'::es', t::ts) -and elab_exp env e t : (Il.param list * Il.exp) attempt = +and elab_exp env e t : (Il.quant list * Il.exp) attempt = Debug.(log_at "el.elab_exp" e.at - (fun _ -> fmt "%s : %s" (el_exp e) (el_typ t)) - (function Ok (qs', e') -> fmt "%s%s" (il_quants qs') (il_exp e') | _ -> "fail") + (fun _ -> fmt "%s : %s" (el_exp e) (il_typ t)) + (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp e') | _ -> "fail") ) @@ fun _ -> nest e.at t ( if is_iter_typ env t then @@ -1297,65 +1381,63 @@ and elab_exp env e t : (Il.param list * Il.exp) attempt = match e.it with | VarE ({it = "_"; _}, []) | EpsE | SeqE [] -> fail_silent | _ -> - let* qs', e' = elab_exp env e t1 in - let t' = elab_typ env t in - Ok (qs', lift_exp' e' iter $$ e.at % t') + let* qs, e' = elab_exp env e t1 in + Ok (qs, lift_exp' e' iter $$ e.at % t) ); (fun env -> elab_exp_plain env e t); ] else if is_notation_typ env t then - let* t1 = as_notation_typ "" env Check t e.at in + let* not = as_notation_typ "" env Check t e.at in choice env [ (fun env -> elab_exp_plain env e t); - (fun env -> elab_exp_notation env (expand_id env t) e t1 t); + (fun env -> elab_exp_notation env (expand_id env t) e not t); ] else elab_exp_plain env e t ) -and elab_exp_plain env e t : (Il.param list * Il.exp) attempt = +and elab_exp_plain env e t : (Il.quant list * Il.exp) attempt = Debug.(log_at "el.elab_exp_plain" e.at - (fun _ -> fmt "%s : %s" (el_exp e) (el_typ t)) - (function Ok (qs', e') -> fmt "%s%s" (il_quants qs') (il_exp e') | _ -> "fail") + (fun _ -> fmt "%s : %s" (el_exp e) (il_typ t)) + (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp e') | _ -> "fail") ) @@ fun _ -> - let* qs', e' = elab_exp_plain' env e t in - let t' = elab_typ env t in - Ok (qs', e' $$ e.at % t') + let* qs, e' = elab_exp_plain' env e t in + Ok (qs, e' $$ e.at % t) -and elab_exp_plain' env e t : (Il.param list * Il.exp') attempt = +and elab_exp_plain' env e t : (Il.quant list * Il.exp') attempt = match e.it with | BoolE _ | NumE _ | CvtE _ | UnE _ | BinE _ | CmpE _ | IdxE _ | DotE _ | MemE _ | LenE _ | SizeE _ | CallE _ | TypE _ | HoleE _ | FuseE _ | UnparenE _ | LatexE _ -> - let* qs1', e', t' = infer_exp env e in - let* qs2', e'' = cast_exp' "expression" env e' t' t in - Ok (qs1' @ qs2', e'') + let* qs1, e', t' = infer_exp env e in + let* qs2, e'' = cast_exp' "expression" env e' t' t in + Ok (qs1 @ qs2, e'') | TextE s -> let cs = try Utf8.decode s with Utf8.Utf8 -> [] in (* Allow treatment as character constant *) if List.length cs = 1 && is_nat_typ env t then let e' = Il.NumE (`Nat (Z.of_int (List.hd cs))) $$ e.at % (Il.NumT `NatT $ e.at) in - cast_exp' "character" env e' (NumT `NatT $ e.at) t + cast_exp' "character" env e' (Il.NumT `NatT $ e.at) t else - let* qs1', e', t' = infer_exp env e in - let* qs2', e'' = cast_exp' "expression" env e' t' t in - Ok (qs1' @ qs2', e'') + let* qs1, e', t' = infer_exp env e in + let* qs2, e'' = cast_exp' "expression" env e' t' t in + Ok (qs1 @ qs2, e'') | VarE (id, _) when id.it = "_" -> Ok ([], Il.VarE id) | VarE (id, _) -> choice env [ (fun env -> - let* qs1', e', t' = infer_exp env e in - let* qs2', e'' = cast_exp' "expression" env e' t' t in - Ok (qs1' @ qs2', e'') + let* qs1, e', t' = infer_exp env e in + let* qs2, e'' = cast_exp' "expression" env e' t' t in + Ok (qs1 @ qs2, e'') ); (fun env -> if is_iter_typ env t && id.it <> "_" then (* Never infer an iteration type for a variable *) let* t1, iter = as_iter_typ "" env Check t e.at in - let* qs', e' = elab_exp env e t1 in - Ok (qs', lift_exp' e' iter) + let* qs, e' = elab_exp env e t1 in + Ok (qs, lift_exp' e' iter) else if not (bound env.vars id || bound env.gvars (strip_var_suffix id)) then let _ = () in env.vars <- bind "variable" env.vars id t; @@ -1366,64 +1448,64 @@ and elab_exp_plain' env e t : (Il.param list * Il.exp') attempt = ] | SliceE (e1, e2, e3) -> let* _t' = as_list_typ "expression" env Check t e1.at in - let* qs1', e1' = elab_exp env e1 t in - let* qs2', e2' = elab_exp env e2 (NumT `NatT $ e2.at) in - let* qs3', e3' = elab_exp env e3 (NumT `NatT $ e3.at) in - Ok (qs1' @ qs2' @ qs3', Il.SliceE (e1', e2', e3')) + let* qs1, e1' = elab_exp env e1 t in + let* qs2, e2' = elab_exp env e2 (Il.NumT `NatT $ e2.at) in + let* qs3, e3' = elab_exp env e3 (Il.NumT `NatT $ e3.at) in + Ok (qs1 @ qs2 @ qs3, Il.SliceE (e1', e2', e3')) | UpdE (e1, p, e2) -> - let* qs1', e1' = elab_exp env e1 t in - let* qs', p', t2 = elab_path env p t in - let* qs2', e2' = elab_exp env e2 t2 in - Ok (qs1' @ qs' @ qs2', Il.UpdE (e1', p', e2')) + let* qs1, e1' = elab_exp env e1 t in + let* qs, p', t2 = elab_path env p t in + let* qs2, e2' = elab_exp env e2 t2 in + Ok (qs1 @ qs @ qs2, Il.UpdE (e1', p', e2')) | ExtE (e1, p, e2) -> - let* qs1', e1' = elab_exp env e1 t in - let* qs', p', t2 = elab_path env p t in + let* qs1, e1' = elab_exp env e1 t in + let* qs, p', t2 = elab_path env p t in let* _t21 = as_list_typ "path" env Check t2 p.at in - let* qs2', e2' = elab_exp env e2 t2 in - Ok (qs1' @ qs' @ qs2', Il.ExtE (e1', p', e2')) + let* qs2, e2' = elab_exp env e2 t2 in + Ok (qs1 @ qs @ qs2, Il.ExtE (e1', p', e2')) | StrE efs -> let* tfs, dots = as_struct_typ "record" env Check t e.at in if dots = Dots then error e.at "used record type is only partially defined at this point"; - let* qs', efs' = elab_expfields env (expand_id env t) (filter_nl efs) tfs t e.at in - Ok (qs', Il.StrE efs') + let* qs, efs' = elab_expfields env (expand_id env t) (filter_nl efs) tfs t e.at in + Ok (qs, Il.StrE efs') | CommaE (e1, e2) -> - let* qs1', e1' = elab_exp env e1 t in + let* qs1, e1' = elab_exp env e1 t in let* tfs, dots1 = as_struct_typ "expression" env Check t e1.at in if dots1 = Dots then error e1.at "used record type is only partially defined at this point"; - let* _ = as_cat_typ "expression" env Check t e.at in + let* () = as_cat_typ "expression" env Check t e.at in (* TODO(4, rossberg): this is a bit of a hack, can we avoid it? *) (match e2.it with | SeqE ({it = AtomE atom; at; _} :: es2) -> let* _t2 = attempt (find_field tfs atom at) t in let e2 = match es2 with [e2] -> e2 | _ -> SeqE es2 $ e2.at in - let* qs2', e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t in - Ok (qs1' @ qs2', Il.CompE (e2', e1')) + let* qs2, e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t in + Ok (qs1 @ qs2, Il.CompE (e2', e1')) | _ -> error e.at "malformed comma operator" ) | CatE (e1, e2) -> - let* _ = as_cat_typ "expression" env Check t e.at in - let* qs1', e1' = elab_exp env e1 t in - let* qs2', e2' = elab_exp env e2 t in - Ok (qs1' @ qs2', + let* () = as_cat_typ "expression" env Check t e.at in + let* qs1, e1' = elab_exp env e1 t in + let* qs2, e2' = elab_exp env e2 t in + Ok (qs1 @ qs2, if is_iter_typ env t then Il.CatE (e1', e2') else Il.CompE (e1', e2')) | ParenE e1 | ArithE e1 -> elab_exp_plain' env e1 t | TupE es -> - let* ts = as_tup_typ "tuple" env Check t e.at in - let* qs', es' = elab_exp_list env es ts e.at in - Ok (qs', Il.TupE es') + let* xts = as_tup_typ "tuple" env Check t e.at in + let* qs, es' = elab_exp_list env es xts e.at in + Ok (qs, Il.TupE es') | ListE es -> let* t1, iter = as_iter_typ "list" env Check t e.at in - if iter <> List then fail_typ env e.at "list" t else - let ts = List.init (List.length es) (fun _ -> t1) in - let* qs', es' = elab_exp_list env es ts e.at in - Ok (qs', Il.ListE es') - | SeqE [] when is_empty_typ env t -> - let* qs1', e', t' = infer_exp env e in - let* qs2', e'' = cast_exp' "empty expression" env e' t' t in - Ok (qs1' @ qs2', e'') + if iter <> Il.List then fail_typ env e.at "list" t else + let xts = List.init (List.length es) (fun _ -> "_" $ t1.at, t1) in + let* qs, es' = elab_exp_list env es xts e.at in + Ok (qs, Il.ListE es') + | SeqE [] when is_empty_notation_typ env t -> + let* qs1, e', t' = infer_exp env e in + let* qs2, e'' = cast_exp' "empty expression" env e' t' t in + Ok (qs1 @ qs2, e'') | EpsE | SeqE _ when is_iter_typ env t -> let* t1, iter = as_iter_typ "" env Check t e.at in elab_exp_iter' env (unseq_exp e) (t1, iter) t e.at @@ -1436,13 +1518,13 @@ and elab_exp_plain' env e t : (Il.param list * Il.exp') attempt = * either a defined notation/variant type or (for SeqE) an iteration type; * the latter case is already captured above *) if is_notation_typ env t then - let* nt = as_notation_typ "" env Check t e.at in - let* qs', e' = elab_exp_notation env (expand_id env t) e nt t in - Ok (qs', e'.it) + let* not = as_notation_typ "" env Check t e.at in + let* qs, e' = elab_exp_notation env (expand_id env t) e not t in + Ok (qs, e'.it) else if is_variant_typ env t then let* tcs, _ = as_variant_typ "" env Check t e.at in - let* qs', e' = elab_exp_variant env (expand_id env t) e tcs t e.at in - Ok (qs', e'.it) + let* qs, e' = elab_exp_variant env (expand_id env t) e tcs t e.at in + Ok (qs, e'.it) else let name = match e.it with @@ -1455,227 +1537,219 @@ and elab_exp_plain' env e t : (Il.param list * Il.exp') attempt = in fail_typ env e.at name t | IterE (e1, iter2) -> let* t1, iter = as_iter_typ "iteration" env Check t e.at in - let qs2', iter2' = elab_iterexp env iter2 in - let* qs1', e1' = elab_exp env e1 t1 in - let qs' = qs1' @ qs2' in + let qs2, iter2' = elab_iterexp env iter2 in + let* qs1, e1' = elab_exp env e1 t1 in + let qs = qs1 @ qs2 in let e' = Il.IterE (e1', iter2') in match iter2, iter with - | Opt, Opt -> Ok (qs', e') - | Opt, List -> - Ok (qs', Il.LiftE (e' $$ e.at % (Il.IterT (elab_typ env t1, Opt) $ e1.at))) - | _, Opt -> fail_typ env e.at "iteration" t - | _, _ -> Ok (qs', e') - -and elab_exp_list env es ts at : (Il.param list * Il.exp list) attempt = - match es, ts with + | Opt, Il.Opt -> Ok (qs, e') + | Opt, Il.List -> + Ok (qs, Il.LiftE (e' $$ e.at % (Il.IterT (t1, Il.Opt) $ e1.at))) + | _, Il.Opt -> fail_typ env e.at "iteration" t + | _, _ -> Ok (qs, e') + +and elab_exp_list env es xts at : (Il.quant list * Il.exp list) attempt = + match es, xts with | [], [] -> Ok ([], []) - | e::es, t::ts -> - let* qs1', e' = elab_exp env e t in - let* qs2', es' = elab_exp_list env es ts at in - Ok (qs1' @ qs2', e'::es') + | e::es, (_x, t)::xts -> + let* qs1, e' = elab_exp env e t in + let* qs2, es' = elab_exp_list env es xts at in + Ok (qs1 @ qs2, e'::es') | _, _ -> fail at "arity mismatch for expression list" -and elab_expfields env tid efs tfs t0 at : (Il.param list * Il.expfield list) attempt = +and elab_expfields env tid efs tfs t0 at : (Il.quant list * Il.expfield list) attempt = Debug.(log_in_at "el.elab_expfields" at - (fun _ -> fmt "{%s} : {%s} = %s" (list el_expfield efs) (list el_typfield tfs) (el_typ t0)) + (fun _ -> fmt "{%s} : {%s} = %s" (list el_expfield efs) (list (il_typfield `H) tfs) (il_typ t0)) ); assert (valid_tid tid); match efs, tfs with | [], [] -> Ok ([], []) - | (atom1, e)::efs2, (atom2, (t, prems), _)::tfs2 when atom1.it = atom2.it -> - let* qs1', es', _s = elab_exp_notation' env tid e t in - let* qs2', efs2' = elab_expfields env tid efs2 tfs2 t0 at in + | (atom1, e)::efs2, (atom2, (qs, t, prems), _)::tfs2 when atom1.it = atom2.it -> + let not = Mixop.(Seq [Atom atom2; Arg t]) in + let* qs1, es', s = elab_exp_notation' env tid e not in + let* qs2, efs2' = elab_expfields env tid efs2 tfs2 t0 at in let e' = (if prems = [] then tup_exp' else tup_exp_bind') es' e.at in - Ok (qs1' @ qs2', (elab_atom atom1 tid, e') :: efs2') - | _, (atom, (t, prems), _)::tfs2 -> + let as' = Il.Subst.subst_args s (il_args_of_params qs) in + Ok (qs1 @ qs2, (elab_atom atom1 tid, as', e') :: efs2') + | _, (atom, (_qs, t, prems), _)::tfs2 -> let atom' = string_of_atom atom in - let* qs1', e1' = - cast_empty ("omitted record field `" ^ atom' ^ "`") env t at (elab_typ env t) in + let* qs1, e1' = cast_empty ("omitted record field `" ^ atom' ^ "`") env t at in let e' = (if prems = [] then tup_exp' else tup_exp_bind') [e1'] at in - let* qs2', efs2' = elab_expfields env tid efs tfs2 t0 at in - Ok (qs1' @ qs2', (elab_atom atom tid, e') :: efs2') + let* qs2, efs2' = elab_expfields env tid efs tfs2 t0 at in +(*TODO*) + Ok (qs1 @ qs2, (elab_atom atom tid, [], e') :: efs2') | (atom, e)::_, [] -> fail_atom e.at atom t0 "undefined or misplaced record field" -and elab_exp_iter env es (t1, iter) t at : (Il.param list * Il.exp) attempt = - let* qs', e' = elab_exp_iter' env es (t1, iter) t at in - Ok (qs', e' $$ at % elab_typ env t) +and elab_exp_iter env es (t1, iter) t at : (Il.quant list * Il.exp) attempt = + let* qs, e' = elab_exp_iter' env es (t1, iter) t at in + Ok (qs, e' $$ at % t) -and elab_exp_iter' env es (t1, iter) t at : (Il.param list * Il.exp') attempt = +and elab_exp_iter' env es (t1, iter) t at : (Il.quant list * Il.exp') attempt = Debug.(log_at "el.elab_exp_iter" at - (fun _ -> fmt "%s : %s = (%s)%s" (seq el_exp es) (el_typ t) (el_typ t1) (el_iter iter)) - (function Ok (qs', e') -> fmt "%s%s" (il_quants qs') (il_exp (e' $$ at % elab_typ env t)) | _ -> "fail") + (fun _ -> fmt "%s : %s = (%s)%s" (seq el_exp es) (il_typ t) (il_typ t1) (il_iter iter)) + (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp (e' $$ at % t)) | _ -> "fail") ) @@ fun _ -> match es, iter with | [], Opt -> Ok ([], Il.OptE None) | [e1], Opt -> - let* qs1', e1' = elab_exp env e1 t1 in - Ok (qs1', Il.OptE (Some e1')) + let* qs1, e1' = elab_exp env e1 t1 in + Ok (qs1, Il.OptE (Some e1')) | _::_::_, Opt -> fail_typ env at "expression" t | [], List -> Ok ([], Il.ListE []) | e1::es2, List -> - let* qs1', e1' = elab_exp env e1 t in + let* qs1, e1' = elab_exp env e1 t in let at' = Source.over_region (after_region e1.at :: List.map Source.at es2) in - let* qs2', e2' = elab_exp_iter env es2 (t1, iter) t at' in - Ok (qs1' @ qs2', cat_exp' e1' e2') + let* qs2, e2' = elab_exp_iter env es2 (t1, iter) t at' in + Ok (qs1 @ qs2, cat_exp' e1' e2') | _, (List1 | ListN _) -> assert false -and elab_exp_notation env tid e nt t : (Il.param list * Il.exp) attempt = +and elab_exp_notation env tid e (qs, t1, mixop, not) t : (Il.quant list * Il.exp) attempt = (* Convert notation into applications of mixin operators *) assert (valid_tid tid); - let* qs1', es', _s = elab_exp_notation' env tid e nt in + let* qs', es', s = elab_exp_notation' env tid e not in + let as' = Il.Subst.subst_args s (il_args_of_params qs) in + Ok (qs', Il.CaseE (mixop, as', Il.TupE es' $$ e.at % t1) $$ e.at % t) - let mixop, qs2', t', _prems', _ = elab_typ_notation' env tid e.at nt [] in - Ok (qs1' @ qs2', Il.CaseE (mixop, Il.TupE es' $$ e.at % t') $$ e.at % elab_typ env t) -(* - let mixop, ts', _ = elab_typ_notation env tid nt in - assert (List.length es' = List.length ts'); - Ok (Il.CaseE (mixop, tup_exp_bind' es' e.at) $$ e.at % elab_typ env t) -*) - -and elab_exp_notation' env tid e t : (Il.param list * Il.exp list * Subst.t) attempt = +and elab_exp_notation' env tid e not : (Il.quant list * Il.exp list * Il.Subst.t) attempt = Debug.(log_at "el.elab_exp_notation" e.at - (fun _ -> fmt "%s : %s" (el_exp e) (el_typ t)) - (function Ok (qs', es', _) -> fmt "%s %s" (il_quants qs') (seq il_exp es') | _ -> "fail") + (fun _ -> fmt "%s : %s" (el_exp e) (string_of_notation not)) + (function Ok (qs, es', _) -> fmt "%s %s" (il_quants qs) (seq il_exp es') | _ -> "fail") ) @@ fun _ -> assert (valid_tid tid); - match e.it, t.it with - | AtomE atom, AtomT atom' -> - if atom.it <> atom'.it then fail_typ env e.at "atom" t else + match e.it, not with + | AtomE atom, Atom atom' -> + if atom.it <> atom'.it then fail_not env e.at "atom" not else let _ = elab_atom atom tid in - Ok ([], [], Subst.empty) - | InfixE (e1, atom, e2), InfixT (_, atom', _) when Atom.sub atom' atom -> + Ok ([], [], Il.Subst.empty) + | InfixE (e1, atom, e2), Infix (_, atom', _) when Atom.sub atom' atom -> let e21 = ParenE (SeqE [] $ e2.at) $ e2.at in elab_exp_notation' env tid - (InfixE (e1, atom', SeqE [e21; e2] $ e2.at) $ e.at) t - | InfixE (e1, atom, e2), InfixT (t1, atom', t2) -> - if atom.it <> atom'.it then fail_typ env e.at "infix expression" t else - let* qs1', es1', s1 = elab_exp_notation' env tid e1 t1 in - let* qs2', es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in + (InfixE (e1, atom', SeqE [e21; e2] $ e2.at) $ e.at) not + | InfixE (e1, atom, e2), Infix (not1, atom', not2) -> + if atom.it <> atom'.it then fail_not env e.at "infix expression" not else + let* qs1, es1', s1 = elab_exp_notation' env tid e1 not1 in + let* qs2, es2', s2 = elab_exp_notation' env tid e2 (subst_notation s1 not2) in let _ = elab_atom atom tid in - Ok (qs1' @ qs2', es1' @ es2', Subst.union s1 s2) - | BrackE (l, e1, r), BrackT (l', t1, r') -> - if (l.it, r.it) <> (l'.it, r'.it) then fail_typ env e.at "bracket expression" t else + Ok (qs1 @ qs2, es1' @ es2', Il.Subst.union s1 s2) + | BrackE (l, e1, r), Brack (l', not1, r') -> + if (l.it, r.it) <> (l'.it, r'.it) then fail_not env e.at "bracket expression" not else let _ = elab_atom l tid in let _ = elab_atom r tid in - elab_exp_notation' env tid e1 t1 + elab_exp_notation' env tid e1 not1 - | SeqE [], SeqT [] -> - Ok ([], [], Subst.empty) - | _, SeqT (t1::ts2) when is_iter_typ env t1 -> + | SeqE [], Seq [] -> + Ok ([], [], Il.Subst.empty) + | _, Seq ((Arg t1)::nots2) when is_iter_typ env t1 -> let* t11, iter = as_iter_typ "iteration" env Check t1 e.at in - elab_exp_notation_iter env tid (unseq_exp e) (t11, iter) t1 ts2 e.at - | SeqE ({it = AtomE atom; at; _}::es2), SeqT ({it = AtomT atom'; _}::_) + elab_exp_notation_iter env tid (unseq_exp e) (t11, iter) t1 nots2 e.at + | SeqE ({it = AtomE atom; at; _}::es2), Seq ((Atom atom')::_) when Atom.sub atom' atom -> let e21 = ParenE (SeqE [] $ at) $ at in - elab_exp_notation' env tid (SeqE ((AtomE atom' $ at) :: e21 :: es2) $ e.at) t + elab_exp_notation' env tid (SeqE ((AtomE atom' $ at) :: e21 :: es2) $ e.at) not (* Trailing notation can be flattened *) - | SeqE (e1::es2), SeqT [t1] -> + | SeqE (e1::es2), Seq [Arg t1 as not1] -> choice env [ (fun env -> - let* qs1', es1', s1 = elab_exp_notation' env tid (unparen_exp e1) t1 in + let* qs1, es1', s1 = elab_exp_notation' env tid (unparen_exp e1) not1 in let e2 = SeqE es2 $ Source.over_region (after_region e1.at :: List.map Source.at es2) in - let t2 = SeqT [] $ Source.after_region t1.at in - let* qs2', es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in - Ok (qs1' @ qs2', es1' @ es2', Subst.union s1 s2) + let* qs2, es2', s2 = elab_exp_notation' env tid e2 (Seq []) in + Ok (qs1 @ qs2, es1' @ es2', Il.Subst.union s1 s2) ); (fun env -> - let* qs', e' = elab_exp env e t1 in - Ok (qs', [e'], Subst.empty) + let* qs, e' = elab_exp env e t1 in + Ok (qs, [e'], Il.Subst.empty) ) ] - | SeqE (e1::es2), SeqT (t1::ts2) -> - let* qs1', es1', s1 = elab_exp_notation' env tid (unparen_exp e1) t1 in + | SeqE (e1::es2), Seq (not1::nots2) -> + let* qs1, es1', s1 = elab_exp_notation' env tid (unparen_exp e1) not1 in let e2 = SeqE es2 $ Source.over_region (after_region e1.at :: List.map Source.at es2) in - let t2 = SeqT ts2 $ Source.over_region (after_region t1.at :: List.map Source.at ts2) in - let* qs2', es2', s2 = elab_exp_notation' env tid e2 (Subst.subst_typ s1 t2) in - Ok (qs1' @ qs2', es1' @ es2', Subst.union s1 s2) + let not2 = Mixop.Seq nots2 in + let* qs2, es2', s2 = elab_exp_notation' env tid e2 (subst_notation s1 not2) in + Ok (qs1 @ qs2, es1' @ es2', Il.Subst.union s1 s2) (* Trailing elements can be omitted if they can be eps *) - | SeqE [], SeqT (t1::ts2) -> - let* qs1', e1' = cast_empty "omitted sequence tail" env t1 e.at (!!!env tid t1) in - let t2 = SeqT ts2 $ Source.over_region (after_region t1.at :: List.map Source.at ts2) in - let* qs2', es2', s2 = elab_exp_notation' env tid e t2 in - Ok (qs1' @ qs2', e1' :: es2', s2) - | SeqE (e1::_), SeqT [] -> + | SeqE [], Seq ((Arg t1)::nots2) -> + let* qs1, e1' = cast_empty "omitted sequence tail" env t1 e.at in + let* qs2, es2', s2 = elab_exp_notation' env tid e (Seq nots2) in + Ok (qs1 @ qs2, e1' :: es2', s2) + | SeqE (e1::_), Seq [] -> fail e1.at "expression is not empty" (* Since trailing elements can be omitted, a singleton may match a sequence *) - | _, SeqT _ -> - elab_exp_notation' env tid (SeqE [e] $ e.at) t + | _, Seq _ -> + elab_exp_notation' env tid (SeqE [e] $ e.at) not +(* | ParenE e1, _ | ArithE e1, _ -> - elab_exp_notation' env tid e1 t - | _, ParenT t1 -> - elab_exp_notation' env tid e t1 + elab_exp_notation' env tid e1 not +*) - | _, (AtomT _ | InfixT _ | BrackT _) -> - fail_typ env e.at "expression" t + | _, Arg t -> + let* qs, e' = elab_exp env e t in + Ok (qs, [e'], Il.Subst.add_varid Il.Subst.empty (varid_of_typ' t) e') - | _, _ -> - let* qs', e' = elab_exp env e t in - Ok (qs', [e'], Subst.add_varid Subst.empty (Convert.varid_of_typ t) e) + | _, (Atom _ | Brack _ | Infix _) -> + fail e.at "expression does not match expected notation" -and elab_exp_notation_iter env tid es (t1, iter) t ts at : (Il.param list * Il.exp list * Subst.t) attempt = +and elab_exp_notation_iter env tid es (t1, iter) t nots at : (Il.quant list * Il.exp list * Il.Subst.t) attempt = assert (valid_tid tid); - let t' = elab_typ env t in - let* qs', e', es', s = elab_exp_notation_iter' env tid es (t1, iter) t ts t' at in - Ok (qs', e'::es', s) + let* qs, e', es', s = elab_exp_notation_iter' env tid es (t1, iter) t nots at in + Ok (qs, e'::es', s) -and elab_exp_notation_iter' env tid es (t1, iter) t ts t' at : (Il.param list * Il.exp * Il.exp list * Subst.t) attempt = +and elab_exp_notation_iter' env tid es (t1, iter) t nots at : (Il.quant list * Il.exp * Il.exp list * Il.Subst.t) attempt = Debug.(log_at "el.elab_exp_notation_iter" at - (fun _ -> fmt "%s : %s = (%s)%s" (seq el_exp es) (el_typ t) (el_typ t1) (el_iter iter)) - (function Ok (qs', e', es', _) -> fmt "%s %s" (il_quants qs') (seq il_exp (e'::es')) | _ -> "fail") + (fun _ -> fmt "%s : %s = (%s)%s" (seq el_exp es) (il_typ t) (il_typ t1) (il_iter iter)) + (function Ok (qs, e', es', _) -> fmt "%s %s" (il_quants qs) (seq il_exp (e'::es')) | _ -> "fail") ) @@ fun _ -> - let tat' = Source.over_region (after_region t.at :: List.map Source.at ts) in match es, iter with - | [], Opt -> - let* qs', es', s = elab_exp_notation' env tid (SeqE [] $ at) (SeqT ts $ tat') in - Ok (qs', Il.OptE None $$ at % t', es', s) + | [], Il.Opt -> + let* qs, es', s = elab_exp_notation' env tid (SeqE [] $ at) (Seq nots) in + Ok (qs, Il.OptE None $$ at % t, es', s) | e1::es2, Opt -> choice env [ (fun env -> - let* qs', es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (SeqT ts $ tat') in - Ok (qs', Il.OptE None $$ Source.before_region e1.at % t', es', s) + let* qs, es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (Seq nots) in + Ok (qs, Il.OptE None $$ Source.before_region e1.at % t, es', s) ); (fun env -> - let* qs1', e1' = elab_exp env e1 t in + let* qs1, e1' = elab_exp env e1 t in let at' = Source.over_region (after_region e1.at :: List.map Source.at es2) in - let* qs2', es2', s = elab_exp_notation' env tid (SeqE es2 $ at') (SeqT ts $ tat') in - Ok (qs1' @ qs2', e1', es2', s) + let* qs2, es2', s = elab_exp_notation' env tid (SeqE es2 $ at') (Seq nots) in + Ok (qs1 @ qs2, e1', es2', s) ); ] | [], List -> - let* qs', es', s = elab_exp_notation' env tid (SeqE [] $ at) (SeqT ts $ tat') in - Ok (qs', Il.ListE [] $$ at % t', es', s) + let* qs, es', s = elab_exp_notation' env tid (SeqE [] $ at) (Seq nots) in + Ok (qs, Il.ListE [] $$ at % t, es', s) | e1::es2, List -> choice env [ (fun env -> - let* qs', es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (SeqT ts $ tat') in - Ok (qs', Il.ListE [] $$ at % t', es', s) + let* qs, es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (Seq nots) in + Ok (qs, Il.ListE [] $$ at % t, es', s) ); (fun env -> - let* qs1', e1' = elab_exp env e1 t in + let* qs1, e1' = elab_exp env e1 t in let at' = Source.over_region (after_region e1.at :: List.map Source.at es2) in - let* qs2', e2', es2', s = elab_exp_notation_iter' env tid es2 (t1, iter) t ts t' at' in - Ok (qs1' @ qs2', cat_exp' e1' e2' $$ Source.over_region [e1'.at; e2'.at] % t', es2', s) + let* qs2, e2', es2', s = elab_exp_notation_iter' env tid es2 (t1, iter) t nots at' in + Ok (qs1 @ qs2, cat_exp' e1' e2' $$ Source.over_region [e1'.at; e2'.at] % t, es2', s) ); ] | _, (List1 | ListN _) -> assert false -and elab_exp_variant env tid e cases t at : (Il.param list * Il.exp) attempt = +and elab_exp_variant env tid e cases t at : (Il.quant list * Il.exp) attempt = Debug.(log_at "el.elab_exp_variant" e.at - (fun _ -> fmt "%s : %s = %s" (el_exp e) tid.it (el_typ t)) - (function Ok (qs', e') -> fmt "%s%s" (il_quants qs') (il_exp e') | _ -> "fail") + (fun _ -> fmt "%s : %s = %s" (el_exp e) tid.it (il_typ t)) + (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp e') | _ -> "fail") ) @@ fun _ -> assert (valid_tid tid); let* atom = @@ -1686,15 +1760,16 @@ and elab_exp_variant env tid e cases t at : (Il.param list * Il.exp) attempt = | BrackE (atom, _, _) -> Ok atom | _ -> fail_typ env at "expression" t in - let* t1, _prems = attempt (find_case_sub cases atom atom.at) t in - let* qs1', es', _s = elab_exp_notation' env tid e t1 in + let* not1, _prems = attempt (find_case_sub cases atom atom.at) t in + let* qs1, es', _s = elab_exp_notation' env tid e not1 in let t2 = expand env t $ at in let t2' = elab_typ env t2 in - let mixop, qs2', t1', _prems', _ = elab_typ_notation' env tid e.at t1 [] in - let* qs3', e' = cast_exp "variant case" env + let mixop, qs2, t1', _prems', _ = elab_typ_notation' env tid e.at not1 [] in +(*TODO*) + let* qs3, e' = cast_exp "variant case" env (Il.CaseE (mixop, Il.TupE es' $$ at % t1') $$ at % t2') t2 t in - Ok (qs1' @ qs2' @ qs3', e') + Ok (qs1 @ qs2 @ qs3, e') (* let mixop, ts', _ = elab_typ_notation env tid t1 in assert (List.length es' = List.length ts'); @@ -1702,45 +1777,50 @@ and elab_exp_variant env tid e cases t at : (Il.param list * Il.exp) attempt = (Il.CaseE (mixop, tup_exp_bind' es' at) $$ at % t2') t2 t *) -and elab_path env p t : (Il.param list * Il.path * typ) attempt = - let* qs', p', t' = elab_path' env p t in - Ok (qs', p' $$ p.at % elab_typ env t', t') +and elab_path env p t : (Il.quant list * Il.path * Il.typ) attempt = + let* qs, p', t' = elab_path' env p t in + Ok (qs, p' $$ p.at % t', t') -and elab_path' env p t : (Il.param list * Il.path' * typ) attempt = +and elab_path' env p t : (Il.quant list * Il.path' * Il.typ) attempt = match p.it with | RootP -> Ok ([], Il.RootP, t) | IdxP (p1, e1) -> - let* qs1', p1', t1 = elab_path env p1 t in - let qs2', e1' = checkpoint (elab_exp env e1 (NumT `NatT $ e1.at)) in + let* qs1, p1', t1 = elab_path env p1 t in + let qs2, e1' = checkpoint (elab_exp env e1 (Il.NumT `NatT $ e1.at)) in let* t' = as_list_typ "path" env Check t1 p1.at in - Ok (qs1' @ qs2', Il.IdxP (p1', e1'), t') + Ok (qs1 @ qs2, Il.IdxP (p1', e1'), t') | SliceP (p1, e1, e2) -> - let* qs', p1', t1 = elab_path env p1 t in - let qs1', e1' = checkpoint (elab_exp env e1 (NumT `NatT $ e1.at)) in - let qs2', e2' = checkpoint (elab_exp env e2 (NumT `NatT $ e2.at)) in + let* qs, p1', t1 = elab_path env p1 t in + let qs1, e1' = checkpoint (elab_exp env e1 (Il.NumT `NatT $ e1.at)) in + let qs2, e2' = checkpoint (elab_exp env e2 (Il.NumT `NatT $ e2.at)) in let* _ = as_list_typ "path" env Check t1 p1.at in - Ok (qs' @ qs1' @ qs2', Il.SliceP (p1', e1', e2'), t1) + Ok (qs @ qs1 @ qs2, Il.SliceP (p1', e1', e2'), t1) | DotP (p1, atom) -> - let* qs1', p1', t1 = elab_path env p1 t in - let* tfs, dots1 = as_struct_typ "path" env Check t1 p1.at in - if dots1 = Dots then + let* qs1, p1', t1 = elab_path env p1 t in + let* tfs, dots = as_struct_typ "path" env Check t1 p1.at in + if dots = Dots then error p1.at "used record type is only partially defined at this point"; (*TODO*) let* t', _prems = attempt (find_field tfs atom p1.at) t1 in - Ok (qs1', Il.DotP (p1', elab_atom atom (expand_id env t1)), t') + Ok (qs1, Il.DotP (p1', elab_atom atom (expand_id env t1)), t') -and cast_empty phrase env t at t' : (Il.param list * Il.exp) attempt = +and cast_empty phrase env t at : (Il.quant list * Il.exp) attempt = Debug.(log_at "el.elab_exp_cast_empty" at - (fun _ -> fmt "%s >> (%s)" (el_typ t) (el_typ (expand_notation env t $ t.at))) - (function Ok (qs', e') -> fmt "%s%s" (il_quants qs') (il_exp e') | _ -> "fail") + (fun _ -> fmt "%s >> (%s)" (il_typ t) (il_typ t)) + (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp e') | _ -> "fail") ) @@ fun _ -> nest at t ( - match expand_notation env t with - | SeqT [] -> Ok ([], Il.ListE [] $$ at % t') - | IterT (_, Opt) -> Ok ([], Il.OptE None $$ at % t') - | IterT (_, List) -> Ok ([], Il.ListE [] $$ at % t') + match expand env t with + | Il.IterT (_, Opt) -> Ok ([], Il.OptE None $$ at % t') + | Il.IterT (_, List) -> Ok ([], Il.ListE [] $$ at % t') + | VarT _ when is_notation_typ env t -> + (match expand_notation env t with + | SeqT [] -> Ok ([], Il.ListE [] $$ at % t') + | _ -> fail_typ env at phrase t + ) +(* | VarT _ when is_iter_notation_typ env t -> (match expand_iter_notation env t with | IterT (_, iter) as t1 -> @@ -1751,37 +1831,156 @@ and cast_empty phrase env t at t' : (Il.param list * Il.exp) attempt = Ok ([], Il.CaseE (mixop, tup_exp_bind' [e1' $$ at % List.hd ts'] at) $$ at % t') | _ -> fail_typ env at phrase t ) +*) | _ -> fail_typ env at phrase t ) -and cast_exp phrase env e' t1 t2 : (Il.param list * Il.exp) attempt = - let* qs', e'' = nest e'.at t2 (cast_exp' phrase env e' t1 t2) in - Ok (qs', e'' $$ e'.at % elab_typ env (expand_nondef env t2)) +and cast_exp phrase env e' t1 t2 : (Il.quant list * Il.exp) attempt = + let* qs, e'' = nest e'.at t2 (cast_exp' phrase env e' t1 t2) in + Ok (qs, e'' $$ e'.at % elab_typ env (expand_nondef env t2)) -and cast_exp' phrase env e' t1 t2 : (Il.param list * Il.exp') attempt = +and cast_exp' phrase env e' t1 t2 : (Il.quant list * Il.exp') attempt = Debug.(log_at "el.elab_exp_cast" e'.at - (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s)" (el_typ t1) (el_typ t2) - (el_typ (expand_def env t1 $ t1.at)) (el_typ (expand_def env t2 $ t2.at)) - (el_typ (expand_nondef env t2)) + (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s)" (il_typ t1) (il_typ t2) + (il_deftyp (expand_def env t1 $ t1.at)) (il_deftyp (expand_def env t2 $ t2.at)) + (il_typ (expand_nondef env t2)) ) - (function Ok (qs', e'') -> fmt "%s%s" (il_quants qs') (il_exp (e'' $$ e'.at % elab_typ env t2)) | _ -> "fail") + (function Ok (qs, e'') -> fmt "%s%s" (il_quants qs) (il_exp (e'' $$ e'.at % t2)) | _ -> "fail") ) @@ fun _ -> if equiv_typ env t1 t2 then Ok ([], e'.it) else - match expand_def env t1, expand_def env t2 with - | _, _ when sub_typ env t1 t2 -> - let t1' = elab_typ env (expand_nondef env t1) in - let t2' = elab_typ env (expand_nondef env t2) in + match expand env t1, expand env t2 with + | t1', t2' when sub_typ env t1' t2' -> Ok ([], Il.SubE (e', t1', t2')) - | NumT nt1, NumT nt2 when nt1 < nt2 || lax_num && nt1 <> `RealT -> + | Il.NumT nt1, Il.NumT nt2 when nt1 < nt2 || lax_num && nt1 <> `RealT -> Ok ([], Il.CvtE (e', nt1, nt2)) - | TupT [], SeqT [] -> + + | Il.TupT [], Il.VarT _ as t2' when is_empty_typ t2' -> Ok ([], e'.it) + + | IterT (t11, Opt), IterT (t21, List) -> + choice env [ + (fun env -> + let t1' = Il.IterT (t11, Il.List) $ e'.at in + let e'' = Il.LiftE e' $$ e'.at % t1' in + cast_exp' phrase env e'' t1' t2 + ); + (fun env -> + let* qs, e'' = cast_exp phrase env e' t1 t21 in + Ok (qs, Il.ListE [e'']) + ); + ] + | _, IterT (t21, (List | List1)) -> + let* qs, e'' = cast_exp phrase env e' t1 t21 in + Ok (qs, Il.ListE [e'']) + + | Il.VarT _ as t1', Il.VarT _ as t2' -> + (match expand_def env t1', expand_def env t2' with + | Il.VariantT [mixop1, (qs1, t11, _), _], + Il.VariantT [mixop2, (qs2, t21, _), _] -> + if mixop1 = mixop2 then + (* Two ConT's with the same operator can be cast pointwise *) + let e'' = Il.UncaseE (e', mixop1) $$ e'.at % t1' in + let ts1 = match t11.it with Il.TupT xts -> List.map snd xts | _ -> [t11] in + let es' = List.mapi (fun i t1I -> Il.ProjE (e'', i) $$ e''.at % t1I) ts1 in + let* qss_es'' = map2_attempt (fun eI' (t1I, t2I) -> + cast_exp phrase env eI' t1I t2I) es' (List.combine ts1 ts2) in + let qss, es'' = List.split qss_es'' in + Ok (qs1 @ qs2 @ List.concat qss, Il.CaseE (mixop2, tup_exp_bind' es'' e'.at)) + else + (* Two unary ConT's can be cast transitively *) + Debug.(log_in_at "el.cast_exp" e'.at + (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s) # backtrack 1" (el_typ t1) (el_typ t2) + (el_typ (expand_def env t1 $ t1.at)) (el_typ (expand_def env t2 $ t2.at)) + (el_typ (expand_nondef env t2)) + ) + ); + let* t111, t111' = match ts, t11.it with [t111], Il.TupT [_, t111'] -> Ok (t111, t111') | _ -> + fail_typ2 env e'.at phrase t1 t2 "" in + let e'' = Il.UncaseE (e', mixop) $$ e'.at % t11 in + let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2' in + Ok (qs @ qs, e''') + + | Il.VariantT [mixop1, (qs1, t11, _), _], _ -> + choice env [ + (fun env -> + let* qs, e'' = + match t2' with + | IterT (t21, iter) -> + let* qs1, e1' = cast_exp phrase env e' t1 t21 in + (match iter with + | Opt -> Ok (qs1, Il.OptE (Some e1')) + | List -> Ok (qs1, Il.ListE [e1']) + | _ -> assert false + ) + | _ -> fail_silent + in + Ok (qs, e'') + ); + (fun env -> + (* A ConT can be cast to its payload *) + Debug.(log_in_at "el.cast_exp" e'.at + (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s) # backtrack 2" (el_typ t1) (el_typ t2) + (el_typ (expand_def env t1 $ t1.at)) (el_typ (expand_def env t2 $ t2.at)) + (el_typ (expand_nondef env t2)) + ) + ); + let* t111, t111' = match ts, t11.it with [t111], Il.TupT [_, t111'] -> Ok (t111, t111') | _ -> + fail_typ2 env e'.at phrase t1 t2 "" in +(*TODO*) + let e'' = Il.UncaseE (e', mixop) $$ e'.at % t11 in + let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in + Ok (qs @ qs, e''') + ); + ] + + | _, Il.VariantT [mixop2, (qs2, t21, _), _] -> + (* A ConT payload can be cast to the ConT *) + let* t211 = match ts with [t211] -> Ok t211 | _ -> + fail_typ2 env e'.at phrase t1 t2 "" in + let* qs, e1' = cast_exp phrase env e' t1 t211 in +(*TODO*) + Ok (qs2 @ qs, Il.CaseE (mixop2, Il.TupE [e1'] $$ e'.at % t')) + + | (Il.VariantT tcs1, dots1), (Il.VariantT tcs2, dots2) -> + if dots2 = Dots then + error e'.at "used variant type is only partially defined at this point"; + let* () = + match + iter_attempt (fun (atom, (t1', _prems1), _) -> + let* t2', _prems2 = attempt (find_case cases2 atom t1.at) t2 in + (* Shallow subtyping on variants *) + let env' = to_eval_env env in + if Eq.eq_typ (Eval.reduce_typ env' t1') (Eval.reduce_typ env' t2') then Ok () else + fail_atom e'.at atom t1 "type mismatch for case" + ) cases1 + with + | Ok () -> Ok () + | Fail (Trace (_, msg, _) :: _) -> fail_typ2 env e'.at phrase t1 t2 (", " ^ msg) + | Fail [] -> assert false + in + let t11 = expand env t1 $ t1.at in + let t21 = expand env t2 $ t2.at in + let t11' = elab_typ env (expand env t1) in + let t21' = elab_typ env (expand env t2) in + let* qs1, e'' = cast_exp phrase env e' t1 t11 in + let e''' = Il.SubE (e'', t11', t21') in + let* qs2, e'''' = cast_exp' phrase env (e''' $$ e'.at % t21') t21 t2 in + Ok (qs1 @ qs2, e'''') + + | _, _ -> + fail_typ2 env e'.at phrase t1 t2 "" + ) + + | _, _ -> + fail_typ2 env e'.at phrase t1 t2 "" + +(* | ConT ((t11, _), _), ConT ((t21, _), _) -> choice env [ (fun env -> (* Two ConT's with the same operator can be cast pointwise *) - let mixop1, qs1', t1', _prems1', ts1 = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in - let mixop2, qs2', _t2', _prems2', ts2 = elab_typ_notation' env (expand_id env t2) t2.at t21 [] in + let mixop1, qs1, t1', _prems1', ts1 = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in + let mixop2, qs2, _t2', _prems2', ts2 = elab_typ_notation' env (expand_id env t2) t2.at t21 [] in (* let mixop1, ts1', ts1 = elab_typ_notation env (expand_id env t1) t11 in let mixop2, _ts2', ts2 = elab_typ_notation env (expand_id env t2) t21 in @@ -1791,10 +1990,10 @@ and cast_exp' phrase env e' t1 t2 : (Il.param list * Il.exp') attempt = let e'' = Il.UncaseE (e', mixop1) $$ e'.at % t1' in let ts1' = match t1'.it with Il.TupT xts -> List.map snd xts | _ -> [t1'] in let es' = List.mapi (fun i t1I' -> Il.ProjE (e'', i) $$ e''.at % t1I') ts1' in - let* qss'_es'' = map2_attempt (fun eI' (t1I, t2I) -> + let* qss_es'' = map2_attempt (fun eI' (t1I, t2I) -> cast_exp phrase env eI' t1I t2I) es' (List.combine ts1 ts2) in - let qss', es'' = List.split qss'_es'' in - Ok (qs1' @ qs2' @ List.concat qss', Il.CaseE (mixop2, tup_exp_bind' es'' e'.at)) + let qss, es'' = List.split qss_es'' in + Ok (qs1 @ qs2 @ List.concat qss, Il.CaseE (mixop2, tup_exp_bind' es'' e'.at)) ); (fun env -> (* Two unary ConT's can be cast transitively *) @@ -1804,32 +2003,32 @@ and cast_exp' phrase env e' t1 t2 : (Il.param list * Il.exp') attempt = (el_typ (expand_nondef env t2)) ) ); - let mixop, qs', t1', _prems', ts = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in + let mixop, qs, t1', _prems', ts = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in (* let mixop, ts', ts = elab_typ_notation env (expand_id env t1) t11 in *) let* t111, t111' = match ts, t1'.it with [t111], Il.TupT [_, t111'] -> Ok (t111, t111') | _ -> fail_typ2 env e'.at phrase t1 t2 "" in let e'' = Il.UncaseE (e', mixop) $$ e'.at % t1' in - let* qs'', e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in - Ok (qs' @ qs'', e''') + let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in + Ok (qs @ qs, e''') ); ] | ConT ((t11, _), _), t2' -> choice env [ (fun env -> - let* qs', e'' = + let* qs, e'' = match t2' with | IterT (t21, iter) -> - let* qs1', e1' = cast_exp phrase env e' t1 t21 in + let* qs1, e1' = cast_exp phrase env e' t1 t21 in (match iter with - | Opt -> Ok (qs1', Il.OptE (Some e1')) - | List -> Ok (qs1', Il.ListE [e1']) + | Opt -> Ok (qs1, Il.OptE (Some e1')) + | List -> Ok (qs1, Il.ListE [e1']) | _ -> assert false ) | _ -> fail_silent in - Ok (qs', e'') + Ok (qs, e'') ); (fun env -> (* A ConT can be cast to its payload *) @@ -1839,7 +2038,7 @@ and cast_exp' phrase env e' t1 t2 : (Il.param list * Il.exp') attempt = (el_typ (expand_nondef env t2)) ) ); - let mixop, qs', t1', _prems', ts = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in + let mixop, qs, t1', _prems', ts = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in (* let mixop, ts', ts = elab_typ_notation env (expand_id env t1) t11 in *) @@ -1847,35 +2046,35 @@ and cast_exp' phrase env e' t1 t2 : (Il.param list * Il.exp') attempt = fail_typ2 env e'.at phrase t1 t2 "" in Printf.printf "[3] %s => %s\n%!" (Debug.el_typ t1) (Debug.il_typ t1'); let e'' = Il.UncaseE (e', mixop) $$ e'.at % t1' in - let* qs'', e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in - Ok (qs' @ qs'', e''') + let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in + Ok (qs @ qs, e''') ); ] | _, ConT ((t21, _), _) -> (* A ConT payload can be cast to the ConT *) - let mixop, qs', t', _prems', ts = elab_typ_notation' env (expand_id env t2) t2.at t21 [] in + let mixop, qs, t', _prems', ts = elab_typ_notation' env (expand_id env t2) t2.at t21 [] in (* let mixop, _ts', ts = elab_typ_notation env (expand_id env t2) t21 in *) let* t211 = match ts with [t211] -> Ok t211 | _ -> fail_typ2 env e'.at phrase t1 t2 "" in - let* qs1', e1' = cast_exp phrase env e' t1 t211 in - Ok (qs' @ qs1', Il.CaseE (mixop, Il.TupE [e1'] $$ e'.at % t')) + let* qs1, e1' = cast_exp phrase env e' t1 t211 in + Ok (qs @ qs1, Il.CaseE (mixop, Il.TupE [e1'] $$ e'.at % t')) | RangeT _, t2' -> choice env [ (fun env -> - let* qs', e'' = + let* qs, e'' = match t2' with | IterT (t21, iter) -> - let* qs1', e1' = cast_exp phrase env e' t1 t21 in + let* qs1, e1' = cast_exp phrase env e' t1 t21 in (match iter with - | Opt -> Ok (qs1', Il.OptE (Some e1')) - | List -> Ok (qs1', Il.ListE [e1']) + | Opt -> Ok (qs1, Il.OptE (Some e1')) + | List -> Ok (qs1, Il.ListE [e1']) | _ -> assert false ) | _ -> fail_silent in - Ok (qs', e'') + Ok (qs, e'') ); (fun env -> (* A RangeT can be cast to its carrier type *) @@ -1896,41 +2095,27 @@ Printf.printf "[4] %s => %s\n%!" (Debug.el_typ t11) (Debug.il_typ t11'); | _, RangeT _ -> (* A respective carrier type can be cast to RangeT *) let t21 = typ_rep env t2 in - let* qs', e'' = cast_exp phrase env e' t1 t21 in - Ok (qs', Il.CaseE ([[]; []], Il.TupE [e''] $$ e'.at % elab_typ env t21)) + let* qs, e'' = cast_exp phrase env e' t1 t21 in + Ok (qs, Il.CaseE ([[]; []], Il.TupE [e''] $$ e'.at % elab_typ env t21)) | _, IterT (t21, Opt) -> - let* qs', e'' = cast_exp phrase env e' t1 t21 in - Ok (qs', Il.OptE (Some e'')) + let* qs, e'' = cast_exp phrase env e' t1 t21 in + Ok (qs, Il.OptE (Some e'')) (* TODO(3, rossberg): enable; violates invariant that all iterexps are initially empty | IterT (t11, List), IterT (t21, List) -> choice env [ (fun env -> let id = x $ e'.at in let t11' = elab_typ env t11 in - let* qs', e'' = cast_exp phrase env (Il.VarE id $$ e'.at % t11') t11 t21 in - Ok (qs', Il.IterE (e'', (List, [x, e']))) + let* qs, e'' = cast_exp phrase env (Il.VarE id $$ e'.at % t11') t11 t21 in + Ok (qs, Il.IterE (e'', (List, [x, e']))) ); (fun env -> - let* qs', e'' = cast_exp phrase env e' t1 t21 in - Ok (qs', Il.ListE [e'']) + let* qs, e'' = cast_exp phrase env e' t1 t21 in + Ok (qs, Il.ListE [e'']) ); ] *) - | IterT (t11, Opt), IterT (t21, List) -> - choice env [ - (fun env -> - let t11' = elab_typ env t11 in - let e'' = Il.LiftE e' $$ e'.at % (Il.IterT (t11', Il.List) $ e'.at) in - cast_exp' phrase env e'' (IterT (t11, List) $ e'.at) t2 - ); - (fun env -> - let* qs', e'' = cast_exp phrase env e' t1 t21 in - Ok (qs', Il.ListE [e'']) - ); - ] - | _, IterT (t21, (List | List1)) -> - let* qs', e'' = cast_exp phrase env e' t1 t21 in - Ok (qs', Il.ListE [e'']) + | _, _ when is_variant_typ env t1 && is_variant_typ env t2 && not (is_iter_typ env t1) -> let cases1, dots1 = checkpoint (as_variant_typ "" env Check t1 e'.at) in let cases2, _dots2 = checkpoint (as_variant_typ "" env Check t2 e'.at) in @@ -1954,58 +2139,56 @@ Printf.printf "[4] %s => %s\n%!" (Debug.el_typ t11) (Debug.il_typ t11'); let t21 = expand env t2 $ t2.at in let t11' = elab_typ env (expand_nondef env t1) in let t21' = elab_typ env (expand_nondef env t2) in - let* qs1', e'' = cast_exp phrase env e' t1 t11 in + let* qs1, e'' = cast_exp phrase env e' t1 t11 in let e''' = Il.SubE (e'', t11', t21') in - let* qs2', e'''' = cast_exp' phrase env (e''' $$ e'.at % t21') t21 t2 in - Ok (qs1' @ qs2', e'''') - | _, _ -> - fail_typ2 env e'.at phrase t1 t2 "" + let* qs2, e'''' = cast_exp' phrase env (e''' $$ e'.at % t21') t21 t2 in + Ok (qs1 @ qs2, e'''') +*) -and elab_iterexp env iter : Il.param list * Il.iterexp = - let qs', iter' = elab_iter env iter in - (qs', (iter', [])) +and elab_iterexp env iter : Il.quant list * Il.iterexp = + let qs, iter' = elab_iter env iter in + (qs, (iter', [])) (* Premises *) -and elab_prem env prem : Il.param list * Il.prem list = +and elab_prem env prem : Il.quant list * Il.prem list = match prem.it with | VarPr (id, t) -> env.vars <- bind "variable" env.vars id t; [], [] | RulePr (id, e) -> - let t, _ = find "relation" env.rels id in - let mixop, _, _ = elab_typ_notation env id t in - let qs', es', _s = checkpoint (elab_exp_notation' env id e t) in - qs', [Il.RulePr (id, mixop, tup_exp' es' e.at) $ prem.at] + let mixop, not, _ = find "relation" env.rels id in + let qs, es', _s = checkpoint (elab_exp_notation' env id e not) in + qs, [Il.RulePr (id, mixop, tup_exp' es' e.at) $ prem.at] | IfPr e -> - let qs', e' = checkpoint (elab_exp env e (BoolT $ e.at)) in - qs', [Il.IfPr e' $ prem.at] + let qs, e' = checkpoint (elab_exp env e (BoolT $ e.at)) in + qs, [Il.IfPr e' $ prem.at] | ElsePr -> [], [Il.ElsePr $ prem.at] | IterPr ({it = VarPr _; at; _}, _iter) -> error at "misplaced variable premise" | IterPr (prem1, iter) -> - let qs', iter' = elab_iterexp env iter in - let qs1', prems1' = elab_prem env prem1 in + let qs, iter' = elab_iterexp env iter in + let qs1, prems1' = elab_prem env prem1 in assert (List.length prems1' = 1); - qs' @ qs1', [Il.IterPr (List.hd prems1', iter') $ prem.at] + qs @ qs1, [Il.IterPr (List.hd prems1', iter') $ prem.at] (* Grammars *) -and infer_sym env g : (Il.param list * Il.sym * typ) attempt = +and infer_sym env g : (Il.quant list * Il.sym * Il.typ) attempt = Debug.(log_at "el.infer_sym" g.at (fun _ -> fmt "%s" (el_sym g)) - (function Ok (qs', g', t) -> fmt "%s %s : %s" (il_quants qs') (il_sym g') (el_typ t) | _ -> "fail") + (function Ok (qs, g', t) -> fmt "%s %s : %s" (il_quants qs) (il_sym g') (il_typ t) | _ -> "fail") ) @@ fun _ -> nest g.at (TupT [] $ g.at) ( match g.it with - | VarG (id, as_) -> - let ps, t, _gram, _prods' = find "grammar" env.grams id in - let qs', as', s = elab_args `Rhs env as_ ps g.at in - Ok (qs', Il.VarG (id, as') $ g.at, Subst.subst_typ s t) + | VarG (x, as_) -> + let ps, t, _gram, _prods' = find "grammar" env.grams x in + let qs, as', s = elab_args `Rhs env as_ ps g.at in + Ok (qs, Il.VarG (x, as') $ g.at, Il.Subst.subst_typ s t) | NumG (`CharOp, n) -> (* let s = try Utf8.encode [Z.to_int n] with Z.Overflow | Utf8.Utf8 -> @@ -2015,24 +2198,24 @@ and infer_sym env g : (Il.param list * Il.sym * typ) attempt = if n < Z.of_int 0x00 || n > Z.of_int 0x10ffff then fail g.at "unicode value out of range" else - Ok ([], Il.NumG (Z.to_int n) $ g.at, NumT `NatT $ g.at) + Ok ([], Il.NumG (Z.to_int n) $ g.at, Il.NumT `NatT $ g.at) | NumG (_, n) -> if n < Z.of_int 0x00 || n > Z.of_int 0xff then fail g.at "byte value out of range" else - Ok ([], Il.NumG (Z.to_int n) $ g.at, NumT `NatT $ g.at) + Ok ([], Il.NumG (Z.to_int n) $ g.at, Il.NumT `NatT $ g.at) | TextG s -> - Ok ([], Il.TextG s $ g.at, TextT $ g.at) + Ok ([], Il.TextG s $ g.at, Il.TextT $ g.at) | EpsG -> - Ok ([], Il.EpsG $ g.at, TupT [] $ g.at) + Ok ([], Il.EpsG $ g.at, Il.TupT [] $ g.at) | SeqG gs -> - let* qs', gs' = elab_sym_list env (filter_nl gs) (TupT [] $ g.at) in - Ok (qs', Il.SeqG gs' $ g.at, TupT [] $ g.at) + let* qs, gs' = elab_sym_list env (filter_nl gs) (Il.TupT [] $ g.at) in + Ok (qs, Il.SeqG gs' $ g.at, Il.TupT [] $ g.at) | AltG gs -> choice env [ (fun env -> - let* qs', gs', ts = infer_sym_list env (filter_nl gs) in - if qs' <> [] then + let* qs, gs', ts = infer_sym_list env (filter_nl gs) in + if qs <> [] then fail g.at "invalid expressions in alternative" else if ts <> [] && List.for_all (equiv_typ env (List.hd ts)) ts then Ok ([], Il.AltG gs' $ g.at, List.hd ts) @@ -2040,73 +2223,73 @@ and infer_sym env g : (Il.param list * Il.sym * typ) attempt = ); (fun env -> (* HACK to treat singleton strings in short grammar as characters *) - let* qs', g' = elab_sym env g (NumT `NatT $ g.at) in - Ok (qs', g', NumT `NatT $ g.at) + let* qs, g' = elab_sym env g (Il.NumT `NatT $ g.at) in + Ok (qs, g', Il.NumT `NatT $ g.at) ); (fun env -> - let* qs', g' = elab_sym env g (TupT [] $ g.at) in - Ok (qs', g', TupT [] $ g.at) + let* qs, g' = elab_sym env g (Il.TupT [] $ g.at) in + Ok (qs, g', Il.TupT [] $ g.at) ) ] | RangeG (g1, g2) -> let env1 = local_env env in let env2 = local_env env in - let* qs1', g1' = elab_sym env1 g1 (NumT `NatT $ g1.at) in - let* qs2', g2' = elab_sym env2 g2 (NumT `NatT $ g2.at) in + let* qs1, g1' = elab_sym env1 g1 (Il.NumT `NatT $ g1.at) in + let* qs2, g2' = elab_sym env2 g2 (Il.NumT `NatT $ g2.at) in if env1.vars != env.vars then error g1.at "invalid symbol in range"; if env2.vars != env.vars then error g2.at "invalid symbol in range"; - Ok (qs1' @ qs2', Il.RangeG (g1', g2') $ g.at, NumT `NatT $ g.at) + Ok (qs1 @ qs2, Il.RangeG (g1', g2') $ g.at, Il.NumT `NatT $ g.at) | ParenG g1 -> infer_sym env g1 | TupG _ -> error g.at "malformed grammar" | ArithG e -> infer_sym env (sym_of_exp e) | IterG (g1, iter) -> - let qs', iterexp' = elab_iterexp env iter in - let* qs1', g1', t1 = infer_sym env g1 in + let qs, iterexp' = elab_iterexp env iter in + let* qs1, g1', t1 = infer_sym env g1 in Ok ( - qs1' @ qs', + qs1 @ qs, Il.IterG (g1', iterexp') $ g.at, - IterT (t1, match iter with Opt -> Opt | _ -> List) $ g.at + Il.IterT (t1, match iter with Opt -> Il.Opt | _ -> Il.List) $ g.at ) | AttrG (e, g1) -> choice env [ (fun env -> (* HACK to treat singleton strings in short grammar as characters *) - let t1 = NumT `NatT $ g1.at in - let* qs1', g1' = elab_sym env g1 t1 in - let* qs2', e' = elab_exp env e t1 in - Ok (qs2' @ qs1', Il.AttrG (e', g1') $ g.at, t1) + let t1 = Il.NumT `NatT $ g1.at in + let* qs1, g1' = elab_sym env g1 t1 in + let* qs2, e' = elab_exp env e t1 in + Ok (qs2 @ qs1, Il.AttrG (e', g1') $ g.at, t1) ); (fun env -> - let* qs1', g1', t1 = infer_sym env g1 in - let* qs2', e' = elab_exp env e t1 in - Ok (qs1' @ qs2', Il.AttrG (e', g1') $ g.at, t1) + let* qs1, g1', t1 = infer_sym env g1 in + let* qs2, e' = elab_exp env e t1 in + Ok (qs1 @ qs2, Il.AttrG (e', g1') $ g.at, t1) ); ] (* - let qs1', g1', t1 = infer_sym env g1 in - let qs2', e' = checkpoint (elab_exp env e t1) in - Ok (qs1' @ qs2', Il.AttrG (e', g1') $ g.at, t1) + let qs1, g1', t1 = infer_sym env g1 in + let qs2, e' = checkpoint (elab_exp env e t1) in + Ok (qs1 @ qs2, Il.AttrG (e', g1') $ g.at, t1) *) | FuseG _ -> error g.at "misplaced token concatenation" | UnparenG _ -> error g.at "misplaced token unparenthesize" ) -and infer_sym_list env es : (Il.param list * Il.sym list * typ list) attempt = +and infer_sym_list env es : (Il.quant list * Il.sym list * Il.typ list) attempt = match es with | [] -> Ok ([], [], []) | g::gs -> - let* qs1', g', t = infer_sym env g in - let* qs2', gs', ts = infer_sym_list env gs in - Ok (qs1' @ qs2', g'::gs', t::ts) + let* qs1, g', t = infer_sym env g in + let* qs2, gs', ts = infer_sym_list env gs in + Ok (qs1 @ qs2, g'::gs', t::ts) -and elab_sym env g t : (Il.param list * Il.sym) attempt = +and elab_sym env g t : (Il.quant list * Il.sym) attempt = Debug.(log_at "el.elab_sym" g.at - (fun _ -> fmt "%s : %s" (el_sym g) (el_typ t)) - (function Ok (qs', g') -> fmt "%s%s" (il_quants qs') (il_sym g') | _ -> "fail") + (fun _ -> fmt "%s : %s" (el_sym g) (il_typ t)) + (function Ok (qs, g') -> fmt "%s%s" (il_quants qs) (il_sym g') | _ -> "fail") ) @@ fun _ -> nest g.at t ( match g.it with @@ -2116,37 +2299,37 @@ and elab_sym env g t : (Il.param list * Il.sym) attempt = if List.length cs = 1 then Ok ([], Il.NumG (List.hd cs) $ g.at) else - let* qs1', g', t' = infer_sym env g in - let* qs2', g'' = cast_sym env g' t' t in - Ok (qs1' @ qs2', g'') + let* qs1, g', t' = infer_sym env g in + let* qs2, g'' = cast_sym env g' t' t in + Ok (qs1 @ qs2, g'') | AltG gs -> - let* qs', gs' = elab_sym_list env (filter_nl gs) t in - Ok (qs', Il.AltG gs' $ g.at) + let* qs, gs' = elab_sym_list env (filter_nl gs) t in + Ok (qs, Il.AltG gs' $ g.at) | ParenG g1 -> elab_sym env g1 t | _ -> - let* qs1', g', t' = infer_sym env g in - let* qs2', g'' = cast_sym env g' t' t in - Ok (qs1' @ qs2', g'') + let* qs1, g', t' = infer_sym env g in + let* qs2, g'' = cast_sym env g' t' t in + Ok (qs1 @ qs2, g'') ) -and elab_sym_list env es t : (Il.param list * Il.sym list) attempt = +and elab_sym_list env es t : (Il.quant list * Il.sym list) attempt = match es with | [] -> Ok ([], []) | g::gs -> - let* qs1', g' = elab_sym env g t in - let* qs2', gs' = elab_sym_list env gs t in - Ok (qs1' @ qs2', g'::gs') + let* qs1, g' = elab_sym env g t in + let* qs2, gs' = elab_sym_list env gs t in + Ok (qs1 @ qs2, g'::gs') -and cast_sym env g' t1 t2 : (Il.param list * Il.sym) attempt = +and cast_sym env g' t1 t2 : (Il.quant list * Il.sym) attempt = Debug.(log_at "el.elab_cast_sym" g'.at - (fun _ -> fmt "%s : %s :> %s" (il_sym g') (el_typ t1) (el_typ t2)) - (function Ok (qs', g'') -> fmt "%s%s" (il_quants qs') (il_sym g'') | _ -> "fail") + (fun _ -> fmt "%s : %s :> %s" (il_sym g') (il_typ t1) (il_typ t2)) + (function Ok (qs, g'') -> fmt "%s%s" (il_quants qs) (il_sym g'') | _ -> "fail") ) @@ fun _ -> nest g'.at t2 ( if equiv_typ env t1 t2 then Ok ([], g') - else if equiv_typ env t2 (TupT [] $ t2.at) then + else if equiv_typ env t2 (Il.TupT [] $ t2.at) then Ok ([], Il.SeqG [g'] $ g'.at) else fail_typ2 env g'.at "symbol" t1 t2 "" @@ -2162,44 +2345,44 @@ and elab_prod env prod t : Il.prod list = env'.pm <- false; let dims = Dim.check_prod (vars env) prod in let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let qs1', g', _t = checkpoint (infer_sym env' g) in + let qs1, g', _t = checkpoint (infer_sym env' g) in let g' = Dim.annot_sym dims' g' in - let qs2', e' = + let qs2, e' = checkpoint ( - if equiv_typ env' t (TupT [] $ e.at) then + let t_unit = Il.TupT [] $ e.at in + if equiv_typ env' t t_unit then (* Special case: ignore unit attributes *) (* TODO(4, rossberg): introduce proper top type? *) - let* qs', e', _t = infer_exp env' e in - let t'_unit = Il.TupT [] $ e.at in - Ok (qs', Il.ProjE ( + let* qs, e', _t = infer_exp env' e in + Ok (qs, Il.ProjE ( Il.TupE [ - e'; Il.TupE [] $$ e.at % t'_unit - ] $$ e.at % (Il.TupT ["_" $ e.at, e'.note; "_" $ e.at, t'_unit] $ e.at), 1 + e'; Il.TupE [] $$ e.at % t_unit + ] $$ e.at % (Il.TupT ["_" $ e.at, e'.note; "_" $ e.at, t_unit] $ e.at), 1 ) $$ e.at % t'_unit) else elab_exp env' e t ) in let e' = Dim.annot_exp dims' e' in - let qss3', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let qss3, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in let det = Free.(diff (union (det_sym g) (det_prems prems)) (bound_env env)) in let free = Free.(diff (free_prod prod) (union (det_prod prod) (bound_env env'))) in if free <> Free.empty then error prod.at ("grammar rule contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in + let acc_qs, (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in let module Acc = Iter.Make(Arg) in Acc.sym g; Acc.exp e; Acc.prems prems; - let prod' = Il.ProdD (!acc_qs' @ qs1' @ qs2' @ List.concat qss3', g', e', prems') $ prod.at in + let prod' = Il.ProdD (!acc_qs @ qs1 @ qs2 @ List.concat qss3, g', e', prems') $ prod.at in if not env'.pm then [prod'] else prod' :: elab_prod env Subst.(subst_prod pm_snd (Iter.clone_prod prod)) t | RangeP (g1, e1, g2, e2) -> - let t = NumT `NatT $ prod.at in + let t = Il.NumT `NatT $ prod.at in let qs11', g1' = checkpoint (elab_sym env g1 t) in let qs12', e1' = checkpoint (elab_exp env e1 t) in let qs21', g2' = checkpoint (elab_sym env g2 t) in @@ -2239,26 +2422,26 @@ and elab_prod env prod t : Il.prod list = env'.pm <- false; let dims = Dim.check_prod (vars env) prod in let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let qs1', g1', _t1 = checkpoint (infer_sym env' g1) in + let qs1, g1', _t1 = checkpoint (infer_sym env' g1) in let g1' = Dim.annot_sym dims' g1' in - let qs2', g2', _t2 = checkpoint (infer_sym env' g2) in + let qs2, g2', _t2 = checkpoint (infer_sym env' g2) in let g2' = Dim.annot_sym dims' g2' in - let qss3', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let qss3, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in let det = Free.(diff (union (det_sym g1) (det_prems prems)) (bound_env env)) in let free = Free.(diff (free_prod prod) (union (det_prod prod) (bound_env env'))) in if free <> Free.empty then error prod.at ("grammar rule contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in + let acc_qs, (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in let module Acc = Iter.Make(Arg) in Acc.sym g1; Acc.sym g2; Acc.prems prems; - ignore (!acc_qs' @ qs1' @ qs2' @ List.concat qss3', g1', g2', prems'); + ignore (!acc_qs @ qs1 @ qs2 @ List.concat qss3, g1', g2', prems'); [] (* TODO(4, rossberg): translate equiv grammars properly *) (* - let prod' = Il.ProdD (!acc_qs', g1', e', prems') $ prod.at in + let prod' = Il.ProdD (!acc_qs, g1', e', prems') $ prod.at in if not env'.pm then [prod'] else @@ -2272,7 +2455,7 @@ and elab_gram env gram t : Il.prod list = (* Definitions *) -and make_quants_iter_arg env free dims : Il.param list ref * (module Iter.Arg) = +and make_quants_iter_arg env free dims : Il.quant list ref * (module Iter.Arg) = let module Arg = struct include Iter.Skip @@ -2346,7 +2529,7 @@ and make_quants_iter_arg env free dims : Il.param list ref * (module Iter.Arg) = end in Arg.acc, (module Arg) -and elab_arg in_lhs env a p s : Il.param list * Il.arg list * Subst.subst = +and elab_arg in_lhs env a p s : Il.quant list * Il.arg list * Subst.subst = (match !(a.it), p.it with (* HACK: handle shorthands *) | ExpA e, TypP _ -> a.it := TypA (typ_of_exp e) | ExpA e, GramP _ -> a.it := GramA (sym_of_exp e) @@ -2355,8 +2538,8 @@ and elab_arg in_lhs env a p s : Il.param list * Il.arg list * Subst.subst = ); match !(a.it), (Subst.subst_param s p).it with | ExpA e, ExpP (id, t) -> - let qs', e' = checkpoint (elab_exp env e t) in - qs', [Il.ExpA e' $ a.at], Subst.add_varid s id e + let qs, e' = checkpoint (elab_exp env e t) in + qs, [Il.ExpA e' $ a.at], Subst.add_varid s id e | TypA ({it = VarT (id', []); _} as t), TypP id when in_lhs = `Lhs -> let id'' = strip_var_suffix id' in let is_prim = @@ -2376,12 +2559,12 @@ and elab_arg in_lhs env a p s : Il.param list * Il.arg list * Subst.subst = | GramA g, GramP _ when in_lhs = `Lhs -> error g.at "misplaced grammar symbol" | GramA g, GramP (id', t) -> - let qs', g', t' = checkpoint (infer_sym env g) in + let qs, g', t' = checkpoint (infer_sym env g) in let s' = subst_implicit env s t t' in if not (equiv_typ env t' (Subst.subst_typ s' t)) then error_typ2 env a.at "argument" t' t ""; let as' = List.map (fun (_id, t) -> Il.TypA (elab_typ env t) $ t.at) Subst.(Map.bindings s'.typid) in - qs', as' @ [Il.GramA g' $ a.at], Subst.add_gramid s' id' g + qs, as' @ [Il.GramA g' $ a.at], Subst.add_gramid s' id' g | DefA id, DefP (id', ps', t') when in_lhs = `Lhs -> env.defs <- bind "definition" env.defs id (ps', t', []); [], [Il.DefA id $ a.at], Subst.add_defid s id' id @@ -2397,23 +2580,23 @@ and elab_arg in_lhs env a p s : Il.param list * Il.arg list * Subst.subst = | _, _ -> error a.at "sort mismatch for argument" -and elab_args in_lhs env as_ ps at : Il.param list * Il.arg list * Subst.subst = +and elab_args in_lhs env as_ ps at : Il.quant list * Il.arg list * Il.Subst.subst = Debug.(log_at "el.elab_args" at (fun _ -> fmt "(%s) : (%s)" (list el_arg as_) (list el_param ps)) - (fun (qs', as', _) -> fmt "%s(%s)" (il_quants qs') (list il_arg as')) + (fun (qs, as', _) -> fmt "%s(%s)" (il_quants qs) (list il_arg as')) ) @@ fun _ -> elab_args' in_lhs env as_ ps [] [] Subst.empty at -and elab_args' in_lhs env as_ ps qs' as' s at : Il.param list * Il.arg list * Subst.subst = +and elab_args' in_lhs env as_ ps qs as' s at : Il.quant list * Il.arg list * Il.Subst.subst = match as_, ps with - | [], [] -> qs', List.concat (List.rev as'), s + | [], [] -> qs, List.concat (List.rev as'), s | a::_, [] -> error a.at "too many arguments" | [], _::_ -> error at "too few arguments" | a::as1, p::ps1 -> - let qs'', a', s' = elab_arg in_lhs env a p s in - elab_args' in_lhs env as1 ps1 (qs' @ qs'') (a'::as') s' at + let qs', a', s' = elab_arg in_lhs env a p s in + elab_args' in_lhs env as1 ps1 (qs @ qs') (a'::as') s' at -and subst_implicit env s t t' : Subst.subst = +and subst_implicit env s t t' : Il.Subst.subst = let free = Free.(Set.filter (fun id -> not (Map.mem id env.typs)) (free_typ t).typid) in let rec inst s t t' = match t.it, t'.it with @@ -2579,20 +2762,20 @@ let elab_hintdef _env hd : Il.def list = match hd.it with | TypH (id1, _id2, hints) -> if hints = [] then [] else - [Il.HintD (Il.TypH (id1, elab_hints id1 [] hints) $ hd.at) $ hd.at] + [Il.HintD (Il.TypH (id1, elab_hints id1 "" hints) $ hd.at) $ hd.at] | RelH (id, hints) -> if hints = [] then [] else - [Il.HintD (Il.RelH (id, elab_hints id [] hints) $ hd.at) $ hd.at] + [Il.HintD (Il.RelH (id, elab_hints id "" hints) $ hd.at) $ hd.at] | DecH (id, hints) -> if hints = [] then [] else - [Il.HintD (Il.DecH (id, elab_hints id [] hints) $ hd.at) $ hd.at] + [Il.HintD (Il.DecH (id, elab_hints id "" hints) $ hd.at) $ hd.at] | AtomH (id, atom, _hints) -> let _ = elab_atom atom id in [] | GramH _ | VarH _ -> [] -let infer_quants env env' dims d : Il.param list = +let infer_quants env env' dims d : Il.quant list = Debug.(log_in_at "el.infer_quants" d.at (fun _ -> Map.fold (fun id _ ids -> @@ -2605,14 +2788,14 @@ let infer_quants env env' dims d : Il.param list = if free <> Free.empty then error d.at ("definition contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_qs', (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in + let acc_qs, (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in let module Acc = Iter.Make(Arg) in Acc.def d; - !acc_qs' + !acc_qs let infer_no_quants env dims d = - let qs' = infer_quants env env dims d in - assert (qs' = []) + let qs = infer_quants env env dims d in + assert (qs = []) let rec elab_def env d : Il.def list = @@ -2632,12 +2815,12 @@ let rec elab_def env d : Il.def list = let env' = local_env env in env'.pm <- false; let ps1, k1 = find "syntax type" env.typs id1 in - let qs1', as', _s = elab_args `Lhs env' as_ ps1 d.at in + let qs1, as', _s = elab_args `Lhs env' as_ ps1 d.at in let dt' = elab_typ_definition env' id1 t in let dims = Dim.check_def d in let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let qs' = infer_quants env env' dims d in - let inst' = Il.InstD (qs' @ qs1', List.map (Dim.annot_arg dims') as', dt') $ d.at in + let qs = infer_quants env env' dims d in + let inst' = Il.InstD (qs @ qs1, List.map (Dim.annot_arg dims') as', dt') $ d.at in let k1', closed = match k1, t.it with | Opaque, (CaseT (Dots, _, _, _) | StrT (Dots, _, _, _)) -> @@ -2740,12 +2923,12 @@ let rec elab_def env d : Il.def list = error d.at ("duplicate rule name `" ^ id1.it ^ (if id2.it = "" then "" else "/" ^ id2.it) ^ "`"); let mixop, _, _ = elab_typ_notation env id1 t in - let qs1', es', _ = checkpoint (elab_exp_notation' env' id1 e t) in + let qs1, es', _ = checkpoint (elab_exp_notation' env' id1 e t) in let es' = List.map (Dim.annot_exp dims') es' in - let qss2', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let qss2, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in - let qs' = infer_quants env env' dims d in - let rule' = Il.RuleD (id2, qs' @ qs1' @ List.concat qss2', mixop, tup_exp' es' e.at, prems') $ d.at in + let qs = infer_quants env env' dims d in + let rule' = Il.RuleD (id2, qs @ qs1 @ List.concat qss2, mixop, tup_exp' es' e.at, prems') $ d.at in env.rels <- rebind "relation" env.rels id1 (t, rules' @ [id2, rule']); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) | VarD (id, t, _hints) -> @@ -2773,14 +2956,14 @@ let rec elab_def env d : Il.def list = let dims = Dim.check_def d in let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in let ps, t, clauses' = find "definition" env.defs id in - let qs1', as', s = elab_args `Lhs env' as_ ps d.at in + let qs1, as', s = elab_args `Lhs env' as_ ps d.at in let as' = List.map (Dim.annot_arg dims') as' in - let qss2', premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let qss2, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in - let qs3', e' = checkpoint (elab_exp env' e (Subst.subst_typ s t)) in + let qs3, e' = checkpoint (elab_exp env' e (Subst.subst_typ s t)) in let e' = Dim.annot_exp dims' e' in - let qs' = infer_quants env env' dims d in - let clause' = Il.DefD (qs' @ qs1' @ List.concat qss2' @ qs3', as', e', prems') $ d.at in + let qs = infer_quants env env' dims d in + let clause' = Il.DefD (qs @ qs1 @ List.concat qss2 @ qs3, as', e', prems') $ d.at in env.defs <- rebind "definition" env.defs id (ps, t, clauses' @ [(d, clause')]); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) | SepD -> diff --git a/spectec/src/il/ast.ml b/spectec/src/il/ast.ml index 51520efe3e..20fc47e754 100644 --- a/spectec/src/il/ast.ml +++ b/spectec/src/il/ast.ml @@ -8,7 +8,7 @@ type num = Num.num type text = string type id = string phrase type atom = Atom.atom -type mixop = Mixop.mixop +type mixop = unit Mixop.mixop (* Iteration *) @@ -40,8 +40,8 @@ and deftyp' = | StructT of typfield list (* record type *) | VariantT of typcase list (* variant type *) -and typfield = atom * (param list * typ * prem list) * hint list (* record field *) -and typcase = mixop * (param list * typ * prem list) * hint list (* variant case *) +and typfield = atom * (quant list * typ * prem list) * hint list (* record field *) +and typcase = mixop * (quant list * typ * prem list) * hint list (* variant case *) (* Expressions *) @@ -125,6 +125,8 @@ and param' = | DefP of id * param list * typ (* `def` defid params : typ *) | GramP of id * param list * typ (* `grammar` gramid param : typ *) +and quant = param + and def = def' phrase and def' = | TypD of id * param list * inst list (* syntax type (family) *) @@ -136,19 +138,19 @@ and def' = and inst = inst' phrase and inst' = - | InstD of param list * arg list * deftyp (* family instance clause *) + | InstD of quant list * arg list * deftyp (* family instance clause *) and rule = rule' phrase and rule' = - | RuleD of id * param list * mixop * exp * prem list (* relation rule *) + | RuleD of id * quant list * mixop * exp * prem list (* relation rule *) and clause = clause' phrase and clause' = - | DefD of param list * arg list * exp * prem list (* definition clause *) + | DefD of quant list * arg list * exp * prem list (* definition clause *) and prod = prod' phrase and prod' = - | ProdD of param list * sym * exp * prem list (* grammar production *) + | ProdD of quant list * sym * exp * prem list (* grammar production *) and prem = prem' phrase and prem' = diff --git a/spectec/src/il/debug.ml b/spectec/src/il/debug.ml index 935ffbd7db..d2a56299ec 100644 --- a/spectec/src/il/debug.ml +++ b/spectec/src/il/debug.ml @@ -8,6 +8,8 @@ let il_atom = string_of_atom let il_mixop = string_of_mixop let il_iter = string_of_iter let il_typ = string_of_typ +let il_typfield = string_of_typfield +let il_typcase = string_of_typcase let il_deftyp = string_of_deftyp `H let il_exp = string_of_exp let il_sym = string_of_sym diff --git a/spectec/src/il/free.ml b/spectec/src/il/free.ml index 8627bf6aa2..1f9d58cb88 100644 --- a/spectec/src/il/free.ml +++ b/spectec/src/il/free.ml @@ -113,10 +113,10 @@ and free_deftyp dt = | StructT tfs -> free_list free_typfield tfs | VariantT tcs -> free_list free_typcase tcs -and free_typfield (_, (ps, t, prems), _) = - free_params ps + (free_typ t + (free_prems prems - bound_typ t) - bound_params ps) -and free_typcase (_, (ps, t, prems), _) = - free_params ps + (free_typ t + (free_prems prems - bound_typ t) - bound_params ps) +and free_typfield (_, (qs, t, prems), _) = + free_quants qs + (free_typ t + (free_prems prems - bound_typ t) - bound_quants qs) +and free_typcase (_, (qs, t, prems), _) = + free_quants qs + (free_typ t + (free_prems prems - bound_typ t) - bound_quants qs) (* Expressions *) @@ -204,29 +204,34 @@ and bound_param p = | DefP (x, _, _) -> bound_defid x | GramP (x, _, _) -> bound_gramid x +and free_quant q = free_param q +and bound_quant q = bound_param q + and free_args as_ = free_list free_arg as_ and free_params ps = free_list_dep free_param bound_param ps +and free_quants qs = free_list_dep free_quant bound_quant qs and bound_params ps = free_list bound_param ps +and bound_quants qs = free_list bound_quant qs let free_inst inst = match inst.it with - | InstD (ps, as_, dt) -> - free_params ps + (free_args as_ + free_deftyp dt - bound_params ps) + | InstD (qs, as_, dt) -> + free_quants qs + (free_args as_ + free_deftyp dt - bound_quants qs) let free_rule rule = match rule.it with - | RuleD (_x, ps, _op, e, prems) -> - free_params ps + (free_exp e + free_prems prems - bound_params ps) + | RuleD (_x, qs, _op, e, prems) -> + free_quants qs + (free_exp e + free_prems prems - bound_quants qs) let free_clause clause = match clause.it with - | DefD (ps, as_, e, prems) -> - free_params ps + (free_args as_ + free_exp e + free_prems prems - bound_params ps) + | DefD (qs, as_, e, prems) -> + free_quants qs + (free_args as_ + free_exp e + free_prems prems - bound_quants qs) let free_prod prod = match prod.it with - | ProdD (ps, g, e, prems) -> - free_params ps + (free_sym g + free_exp e + free_prems prems - bound_params ps) + | ProdD (qs, g, e, prems) -> + free_quants qs + (free_sym g + free_exp e + free_prems prems - bound_quants qs) let free_hintdef hd = match hd.it with diff --git a/spectec/src/il/free.mli b/spectec/src/il/free.mli index 71e9c1eae4..d286d6abe9 100644 --- a/spectec/src/il/free.mli +++ b/spectec/src/il/free.mli @@ -27,8 +27,10 @@ val free_rule : rule -> sets val free_clause : clause -> sets val free_prod : prod -> sets val free_deftyp : deftyp -> sets +val free_quant : quant -> sets val free_param : param -> sets val bound_typbind : id * typ -> sets +val bound_quant : quant -> sets val bound_param : param -> sets val bound_def : def -> sets diff --git a/spectec/src/il/fresh.ml b/spectec/src/il/fresh.ml index 918b6bad03..e7b735c3b5 100644 --- a/spectec/src/il/fresh.ml +++ b/spectec/src/il/fresh.ml @@ -1,3 +1,4 @@ +open Ast open Util.Source module Map = Map.Make(String) @@ -28,3 +29,31 @@ let refresh_typid = refresh_id typids let refresh_varid = refresh_id varids let refresh_defid = refresh_id defids let refresh_gramid = refresh_id gramids + + +let refresh_quant s q = + match q.it with + | ExpP (x, t) -> + let x' = refresh_varid x in + let t' = Subst.subst_typ s t in + let s' = Subst.add_varid s x (VarE x' $$ x.at % t') in + s', ExpP (x', t') $ q.at + | TypP x -> + let x' = refresh_typid x in + let s' = Subst.add_typid s x (VarT (x', []) $ x.at) in + s', TypP x' $ q.at + | DefP (x, ps, t) -> + let x' = refresh_defid x in + let ps', s' = Subst.subst_params s ps in + let t' = Subst.subst_typ s' t in + let s' = Subst.add_defid s x x' in + s', DefP (x', ps', t') $ q.at + | GramP (x, ps, t) -> + let x' = refresh_gramid x in + let ps', s' = Subst.subst_params s ps in + let t' = Subst.subst_typ s' t in + let s' = Subst.add_gramid s x (VarG (x', []) $ x.at) in + s', GramP (x', ps', t') $ q.at + +let refresh_quants qs = + let s, qs' = List.fold_left_map refresh_quant Subst.empty qs in qs', s diff --git a/spectec/src/il/fresh.mli b/spectec/src/il/fresh.mli index dfa1edffaf..2ce6fea073 100644 --- a/spectec/src/il/fresh.mli +++ b/spectec/src/il/fresh.mli @@ -9,3 +9,5 @@ val refresh_typid : id -> id val refresh_varid : id -> id val refresh_defid : id -> id val refresh_gramid : id -> id + +val refresh_quants : quant list -> quant list * Subst.t diff --git a/spectec/src/il/print.ml b/spectec/src/il/print.ml index 41833f98ab..f8034049e0 100644 --- a/spectec/src/il/print.ml +++ b/spectec/src/il/print.ml @@ -41,7 +41,7 @@ let string_of_cmpop = function | #Num.cmpop as op -> Num.string_of_cmpop op let string_of_atom = Atom.to_string -let string_of_mixop = Mixop.to_string +let string_of_mixop mixop = "`" ^ Mixop.to_string mixop ^ "`" (* Types *) @@ -85,20 +85,23 @@ and string_of_deftyp layout dt = match dt.it with | AliasT t -> string_of_typ t | StructT tfs when layout = `H -> - "{" ^ concat ", " (List.map string_of_typfield tfs) ^ "}" + "{" ^ concat ", " (List.map (string_of_typfield layout) tfs) ^ "}" | StructT tfs -> - "\n{\n " ^ concat ",\n " (List.map string_of_typfield tfs) ^ "\n}" + "\n{\n " ^ concat ",\n " (List.map (string_of_typfield layout) tfs) ^ "\n}" | VariantT tcs when layout = `H -> - "| " ^ concat " | " (List.map string_of_typcase tcs) + "| " ^ concat " | " (List.map (string_of_typcase layout) tcs) | VariantT tcs -> - "\n | " ^ concat "\n | " (List.map string_of_typcase tcs) + "\n | " ^ concat "\n | " (List.map (string_of_typcase layout) tcs) -and string_of_typfield (atom, (qs, t, prems), _hints) = - string_of_mixop [[atom]] ^ string_of_quants qs ^ " " ^ string_of_typ t ^ +and string_of_typfield layout (atom, (qs, t, prems), _hints) = + string_of_mixop (Mixop.Atom atom) ^ + string_of_quants qs ^ " " ^ string_of_typ t ^ + if layout = `H && prems <> [] then " -- .." else concat "" (List.map (prefix "\n -- " string_of_prem) prems) -and string_of_typcase (op, (qs, t, prems), _hints) = +and string_of_typcase layout (op, (qs, t, prems), _hints) = string_of_mixop op ^ string_of_quants qs ^ string_of_typ_args t ^ + if layout = `H && prems <> [] then " -- .." else concat "" (List.map (prefix "\n -- " string_of_prem) prems) @@ -128,7 +131,7 @@ and string_of_exp e = | StrE efs -> "{" ^ concat ", " (List.map string_of_expfield efs) ^ "}" | DotE (e1, atom, as_) -> string_of_exp e1 ^ "." ^ - string_of_mixop [[atom]] ^ "_" ^ string_of_typ_name e1.note ^ + string_of_mixop (Mixop.Atom atom) ^ "_" ^ string_of_typ_name e1.note ^ string_of_quantargs as_ | CompE (e1, e2) -> string_of_exp e1 ^ " +++ " ^ string_of_exp e2 | MemE (e1, e2) -> "(" ^ string_of_exp e1 ^ " <- " ^ string_of_exp e2 ^ ")" @@ -165,7 +168,7 @@ and string_of_exps sep es = concat sep (List.map string_of_exp es) and string_of_expfield (atom, as_, e) = - string_of_mixop [[atom]] ^ + string_of_mixop (Mixop.Atom atom) ^ string_of_quantargs as_ ^ " " ^ string_of_exp e @@ -177,11 +180,11 @@ and string_of_path p = | SliceP (p1, e1, e2) -> string_of_path p1 ^ "[" ^ string_of_exp e1 ^ " : " ^ string_of_exp e2 ^ "]" | DotP ({it = RootP; note; _}, atom, as_) -> - string_of_mixop [[atom]] ^ "_" ^ string_of_typ_name note ^ + string_of_mixop (Mixop.Atom atom) ^ "_" ^ string_of_typ_name note ^ string_of_quantargs as_ | DotP (p1, atom, as_) -> string_of_path p1 ^ "." ^ - string_of_mixop [[atom]] ^ "_" ^ string_of_typ_name p1.note ^ + string_of_mixop (Mixop.Atom atom) ^ "_" ^ string_of_typ_name p1.note ^ string_of_quantargs as_ and string_of_iterexp (iter, xes) = diff --git a/spectec/src/il/print.mli b/spectec/src/il/print.mli index cf33752fb5..99b9ef9a4d 100644 --- a/spectec/src/il/print.mli +++ b/spectec/src/il/print.mli @@ -19,10 +19,12 @@ val string_of_args : arg list -> string val string_of_param : param -> string val string_of_params : param list -> string val string_of_quants : param list -> string +val string_of_typfield : [`H | `V] -> typfield -> string +val string_of_typcase : [`H | `V] -> typcase -> string val string_of_deftyp : [`H | `V] -> deftyp -> string -val string_of_def : ?suppress_pos:bool -> def -> string -val string_of_rule : ?suppress_pos:bool -> rule -> string -val string_of_prod : ?suppress_pos:bool -> prod -> string -val string_of_inst : ?suppress_pos:bool -> id -> inst -> string -val string_of_clause : ?suppress_pos:bool -> id -> clause -> string -val string_of_script : ?suppress_pos:bool -> script -> string +val string_of_def : ?suppress_pos: bool -> def -> string +val string_of_rule : ?suppress_pos: bool -> rule -> string +val string_of_prod : ?suppress_pos: bool -> prod -> string +val string_of_inst : ?suppress_pos: bool -> id -> inst -> string +val string_of_clause : ?suppress_pos: bool -> id -> clause -> string +val string_of_script : ?suppress_pos: bool -> script -> string diff --git a/spectec/src/il/subst.ml b/spectec/src/il/subst.ml index afc291e0d2..07436613e5 100644 --- a/spectec/src/il/subst.ml +++ b/spectec/src/il/subst.ml @@ -115,13 +115,13 @@ and subst_deftyp s dt = | VariantT tcs -> VariantT (subst_list subst_typcase s tcs) ) $ dt.at -and subst_typfield s (atom, (ps, t, prems), hints) = - let ps', s' = subst_params s ps in - (atom, (ps', subst_typ s' t, subst_list subst_prem s' prems), hints) +and subst_typfield s (atom, (qs, t, prems), hints) = + let qs', s' = subst_quants s qs in + (atom, (qs', subst_typ s' t, subst_list subst_prem s' prems), hints) -and subst_typcase s (op, (ps, t, prems), hints) = - let ps', s' = subst_params s ps in - (op, (ps', subst_typ s' t, subst_list subst_prem s' prems), hints) +and subst_typcase s (op, (qs, t, prems), hints) = + let qs', s' = subst_quants s qs in + (op, (qs', subst_typ s' t, subst_list subst_prem s' prems), hints) and subst_typbind s (x, t) = (subst_varid s x, subst_typ s t) @@ -244,6 +244,7 @@ and subst_param s p = and subst_args s as_ = subst_list subst_arg s as_ and subst_params s ps = subst_list_dep subst_param Free.bound_param s ps +and subst_quants s ps = subst_list_dep subst_param Free.bound_quant s ps (* Optimizations *) diff --git a/spectec/src/il/valid.ml b/spectec/src/il/valid.ml index 44e3026e34..612675e428 100644 --- a/spectec/src/il/valid.ml +++ b/spectec/src/il/valid.ml @@ -211,7 +211,7 @@ and valid_deftyp envr dt = | AliasT t -> valid_typ !envr t | StructT tfs -> - check_mixops "record" "field" (List.map (fun (atom, _, _) -> [[atom]]) tfs) dt.at; + check_mixops "record" "field" (List.map (fun (atom, _, _) -> Mixop.Atom atom) tfs) dt.at; List.iter (valid_typfield envr) tfs | VariantT tcs -> check_mixops "variant" "case" (List.map (fun (op, _, _) -> op) tcs) dt.at; @@ -219,7 +219,7 @@ and valid_deftyp envr dt = and valid_typfield envr (_atom, (qs, t, prems), _hints) = let envr' = local_env envr in - List.iter (valid_param envr') qs; + List.iter (valid_quant envr') qs; valid_typ !envr' t; List.iter (valid_prem !envr') prems @@ -233,11 +233,11 @@ and valid_typcase envr (mixop, (qs, t, prems), _hints) = | TupT ts -> List.length ts | _ -> 1 in - if List.length mixop <> arity + 1 then + if Mixop.arity mixop <> arity then error t.at ("inconsistent arity in mixin notation, `" ^ string_of_mixop mixop ^ "` applied to " ^ typ_string !envr t); let envr' = local_env envr in - List.iter (valid_param envr') qs; + List.iter (valid_quant envr') qs; valid_typ !envr' t; List.iter (valid_prem !envr') prems @@ -673,6 +673,8 @@ and valid_param envr p = valid_typ !envr' t; envr := Env.bind_gram !envr x (ps, t, []) +and valid_quant envr q = valid_param envr q + let valid_inst envr ps inst = Debug.(log_in "il.valid_inst" line); Debug.(log_in_at "il.valid_inst" inst.at @@ -681,7 +683,7 @@ let valid_inst envr ps inst = match inst.it with | InstD (qs, as_, dt) -> let envr' = local_env envr in - List.iter (valid_param envr') qs; + List.iter (valid_quant envr') qs; let _s = valid_args !envr' as_ ps Subst.empty inst.at in valid_deftyp envr' dt @@ -693,7 +695,7 @@ let valid_rule envr mixop t rule = match rule.it with | RuleD (_x, qs, mixop', e, prems) -> let envr' = local_env envr in - List.iter (valid_param envr') qs; + List.iter (valid_quant envr') qs; valid_expmix ~side:`Lhs !envr' mixop' e (mixop, t) e.at; List.iter (valid_prem !envr') prems @@ -706,7 +708,7 @@ try match clause.it with | DefD (qs, as_, e, prems) -> let envr' = local_env envr in - List.iter (valid_param envr') qs; + List.iter (valid_quant envr') qs; let s = valid_args !envr' as_ ps Subst.empty clause.at in valid_exp !envr' e (Subst.subst_typ s t); List.iter (valid_prem !envr') prems @@ -723,7 +725,7 @@ let valid_prod envr ps t prod = match prod.it with | ProdD (qs, g, e, prems) -> let envr' = local_env envr in - List.iter (valid_param envr') qs; + List.iter (valid_quant envr') qs; let _t' = valid_sym !envr' g in valid_exp !envr' e t; List.iter (valid_prem !envr') prems diff --git a/spectec/src/il2al/animate.ml b/spectec/src/il2al/animate.ml index 10dd24137d..2ab200995d 100644 --- a/spectec/src/il2al/animate.ml +++ b/spectec/src/il2al/animate.ml @@ -251,7 +251,8 @@ let is_not_lhs e = match e.it with (* Hack to handle RETURN_CALL_ADDR, eventually should be removed *) let is_atomic_lhs e = match e.it with -| CaseE ([{it = Atom "FUNC"; _}]::_, _, { it = CaseE ([[]; [{it = Arrow; _}]; []], _, { it = TupE [ { it = IterE (_, (ListN _, _)); _} ; { it = IterE (_, (ListN _, _)); _} ] ; _} ); _ }) -> true +| CaseE (op, _, { it = CaseE (Xl.Mixop.(Infix (Arg (), {it = Arrow; _}, Arg ())), _, { it = TupE [ { it = IterE (_, (ListN _, _)); _} ; { it = IterE (_, (ListN _, _)); _} ] ; _} ); _ }) -> + Il2al_util.case_head op = "FUNC" | _ -> false (* Hack to handle ARRAY.INIT_DATA, eventually should be removed *) @@ -349,7 +350,7 @@ let animate_rule r = match r.it with | RuleD(id, binds, mixop, args, prems) -> ( match (mixop, args.it) with (* lhs ~> rhs *) - | ([ [] ; [{it = SqArrow; _}] ; []] , TupE ([_lhs; _rhs])) -> + | (Xl.Mixop.(Infix (Arg (), {it = SqArrow; _}, Arg ())) , TupE ([_lhs; _rhs])) -> let new_prems = animate_prems {empty with varid = Set.of_list Encode.input_vars} prems in RuleD(id, binds, mixop, args, new_prems) $ r.at | _ -> r diff --git a/spectec/src/il2al/encode.ml b/spectec/src/il2al/encode.ml index 2eb6c532dd..79728a0dfd 100644 --- a/spectec/src/il2al/encode.ml +++ b/spectec/src/il2al/encode.ml @@ -42,14 +42,7 @@ let args_of_case e = | _ -> error e.at "cannot get arguments of case expression" let is_context e = - is_case e && - match case_of_case e with - | (atom :: _) :: _ -> - (match it atom with - - | Atom a -> List.mem a Al.Al_util.context_names - | _ -> false) - | _ -> false + is_case e && List.mem (Il2al_util.case_head (case_of_case e)) Al.Al_util.context_names let rec stack_to_list e = match e.it with @@ -140,7 +133,7 @@ let encode_stack stack = (* ASSUMPTION: the inner stack of the ctxt instruction is always the last arg *) let args', inner_stack = Lib.List.split_last args in - let mixop', _ = Lib.List.split_last mixop in + let mixop' = Il2al_util.split_last_case mixop in let e1 = { e with it = CaseE (mixop', [], TupE args' $$ no_region % (mk_varT "")) } in let e2 = (mk_varE "ctxt" "contextT") in @@ -159,7 +152,7 @@ let encode_stack stack = (* Encode lhs *) let encode_lhs lhs = match lhs.it with - | CaseE ([[]; [{it = Semicolon; _}]; []], [], {it = TupE [z; stack]; _}) -> + | CaseE (Xl.Mixop.(Infix (Arg (), {it = Semicolon; _}, Arg ())), [], {it = TupE [z; stack]; _}) -> let prem = LetPr (z, mk_varE "state" "stateT", free_ids z) $ z.at in prem :: encode_stack stack | _ -> @@ -172,7 +165,7 @@ let encode_rule r = | RuleD(id, binds, mixop, args, prems) -> match (mixop, args.it) with (* lhs ~> rhs *) - | ([ [] ; [{it = SqArrow; _}] ; []] , TupE ([lhs; _rhs])) -> + | (Xl.Mixop.(Infix (Arg (), {it = SqArrow; _}, Arg ())), TupE ([lhs; _rhs])) -> let name = String.split_on_char '-' id.it |> List.hd in if List.mem name ["pure"; "read"; "trap"; "ctxt"] then (* Administrative rules *) r diff --git a/spectec/src/il2al/il2al_util.ml b/spectec/src/il2al/il2al_util.ml index 76bd097008..30ae84708f 100644 --- a/spectec/src/il2al/il2al_util.ml +++ b/spectec/src/il2al/il2al_util.ml @@ -56,6 +56,35 @@ let case_of_case e = | _ -> error e.at (Printf.sprintf "expected a CaseE, but got `%s`" (Il.Print.string_of_exp e)) +let case_head mixop = + match Mixop.head mixop with + | Some {it = Atom.Atom id; _} -> id + | _ -> "" + +let rec split_last_case' = function + | Mixop.Arg () -> Some (Mixop.Seq []) + | Mixop.Seq [] | Mixop.Atom _ -> None + | Mixop.Seq mixops -> + let mixops', mixop = Lib.List.split_last mixops in + (match split_last_case' mixop with + | Some (Mixop.Seq []) -> Some (Mixop.Seq mixops') + | Some mixop' -> Some (Mixop.Seq (mixops' @ [mixop'])) + | None -> split_last_case' (Mixop.Seq mixops') + ) + | Mixop.Brack (l, mixop, _) -> + (match split_last_case' mixop with + | Some (Mixop.Seq []) -> Some (Mixop.Atom l) + | Some mixop' -> Some (Mixop.Seq [Mixop.Atom l; mixop']) + | None -> None + ) + | Mixop.Infix (mixop1, atom, mixop2) -> + (match split_last_case' mixop2 with + | Some mixop2' -> Some (Mixop.Infix (mixop1, atom, mixop2')) + | None -> split_last_case' mixop1 + ) + +let split_last_case mixop = Option.get (split_last_case' mixop) + let is_let_prem_with_rhs_type t prem = match prem.it with | LetPr (_, e, _) -> diff --git a/spectec/src/il2al/postprocess.ml b/spectec/src/il2al/postprocess.ml index 5820f018de..9192e2daae 100644 --- a/spectec/src/il2al/postprocess.ml +++ b/spectec/src/il2al/postprocess.ml @@ -1,7 +1,7 @@ open Al -open Xl open Ast open Util +open Il2al_util open Source let rec merge_pop_assert' instrs = @@ -11,8 +11,8 @@ let rec merge_pop_assert' instrs = ({ it = PopI e2; _ } as i2) :: ({ it = AssertI ({ it = BinE (`EqOp, e31, e32); _ }); _ } as i3) :: il -> (match e2.it, e32.it with - | CaseE ([{ it = Atom.Atom ("CONST" | "VCONST"); _ }]::_, hd::_), VarE _ - when Eq.eq_expr e31 hd -> + | CaseE (op, hd::_), VarE _ + when List.mem (case_head op) ["CONST"; "VCONST"] && Eq.eq_expr e31 hd -> let e1 = { e1 with it = TopValueE (Some e32) } in let i1 = { i1 with it = AssertI e1 } in merge_helper (i2 :: i1 :: acc) il @@ -22,15 +22,15 @@ let rec merge_pop_assert' instrs = | ({ it = AssertI ({ it = TopValueE None; _ } as e1); _ } as i1) :: ({ it = PopI e2; _ } as i2) :: il -> (match e2.it with - | CaseE ([{ it = Atom.Atom ("CONST" | "VCONST"); _ }]::_, - ({ it = CaseE (_, []); _ } as hd)::_tl) -> + | CaseE (op, ({ it = CaseE (_, []); _ } as hd)::_tl) + when List.mem (case_head op) ["CONST"; "VCONST"] -> let e1 = { e1 with it = TopValueE (Some hd) } in let i1 = { i1 with it = AssertI e1 } in merge_helper (i2 :: i1 :: acc) il - | CaseE ([{ it = Atom.Atom ("CONST" | "VCONST" as cons); _ }]::_ , - { it = VarE _; _ }::_tl) -> + | CaseE (op, { it = VarE _; _ }::_tl) + when List.mem (case_head op) ["CONST"; "VCONST"] -> (* HARDCODE: name of type according to constructor *) - let vt = if cons = "CONST" then "num" else "vec" in + let vt = if case_head op = "CONST" then "num" else "vec" in let hd = VarE vt $$ no_region % (Il.Ast.VarT (vt $ no_region, []) $ no_region) in let e1 = { e1 with it = TopValueE (Some hd) } in let i1 = { i1 with it = AssertI e1 } in diff --git a/spectec/src/il2al/preprocess.ml b/spectec/src/il2al/preprocess.ml index 98f7e3030e..6a79fa26ab 100644 --- a/spectec/src/il2al/preprocess.ml +++ b/spectec/src/il2al/preprocess.ml @@ -130,7 +130,7 @@ let rec preprocess_prem prem = |> List.map (fun new_prem -> IterPr (new_prem, iterexp) $ prem.at) | RulePr (id, mixop, exp) -> let lhs_rhs_opt = - match mixop, exp.it with + match Xl.Mixop.flatten mixop, exp.it with (* `id`: |- `lhs` : `rhs` *) | [[turnstile]; [colon]; []], TupE [lhs; rhs] (* `id`: C |- `lhs` : `rhs` *) diff --git a/spectec/src/il2al/translate.ml b/spectec/src/il2al/translate.ml index 8ec8c5e36b..1b94ae1a59 100644 --- a/spectec/src/il2al/translate.ml +++ b/spectec/src/il2al/translate.ml @@ -44,17 +44,17 @@ let typ_state_arg = Il.TupT [field typ_store; field typ_frame] $ Source.no_regio let split_config (exp: Il.exp): Il.exp * Il.exp = assert(is_config exp); match exp.it with - | Il.CaseE ([[]; [{it = Atom.Semicolon; _}]; []], _, {it = TupE [ e1; e2 ]; _}) + | Il.CaseE (Mixop.(Infix (Arg (), {it = Atom.Semicolon; _}, Arg ())), _, {it = TupE [ e1; e2 ]; _}) when is_state e1 -> e1, e2 - | Il.CaseE ([[]; [{it = Atom.Semicolon; _}]; []], _, {it = TupE [ e1; e2 ]; _}) + | Il.CaseE (Mixop.(Infix (Arg (), {it = Atom.Semicolon; _}, Arg ())), _, {it = TupE [ e1; e2 ]; _}) when is_frame e1 -> let store = Il.StrE [] $$ e1.at % typ_store in - let state = Il.CaseE ([[]; [Atom.Semicolon $$ e1.at % Atom.info ""]; []], [], Il.TupE [ store; e1 ] $$ e1.at % typ_state_arg) $$ e1.at % typ_state in + let state = Il.CaseE (Mixop.(Infix (Arg (), Atom.Semicolon $$ e1.at % Atom.info "", Arg ())), [], Il.TupE [ store; e1 ] $$ e1.at % typ_state_arg) $$ e1.at % typ_state in state, e2 - | Il.CaseE ([[]; [{it = Atom.Semicolon; _}]; []], _, {it = TupE [ e1; e2 ]; _}) + | Il.CaseE (Mixop.(Infix (Arg (), {it = Atom.Semicolon; _}, Arg ())), _, {it = TupE [ e1; e2 ]; _}) when is_store e1 -> let frame = Il.StrE [] $$ e1.at % typ_frame in - let state = Il.CaseE ([[]; [Atom.Semicolon $$ e1.at % Atom.info ""]; []], [], Il.TupE [ e1; frame ] $$ e1.at % typ_state_arg) $$ e1.at % typ_state in + let state = Il.CaseE (Mixop.(Infix (Arg (), Atom.Semicolon $$ e1.at % Atom.info "", Arg ())), [], Il.TupE [ e1; frame ] $$ e1.at % typ_state_arg) $$ e1.at % typ_state in state, e2 | _ -> error exp.at (sprintf "can not recognize `%s` as a `config` expression" (Il.Print.string_of_exp exp)) @@ -62,7 +62,7 @@ let split_config (exp: Il.exp): Il.exp * Il.exp = let split_state (exp: Il.exp): Il.exp * Il.exp = assert(is_state exp); match exp.it with - | Il.CaseE ([[]; [{it = Atom.Semicolon; _}]; []], _, {it = TupE [ e1; e2 ]; _}) + | Il.CaseE (Mixop.(Infix (Arg (), {it = Atom.Semicolon; _}, Arg ())), _, {it = TupE [ e1; e2 ]; _}) when is_store e1 && is_frame e2 -> e1, e2 | _ -> error exp.at (sprintf "can not recognize `%s` as a `state` expression" (Il.Print.string_of_exp exp)) @@ -97,7 +97,7 @@ let is_simple_separator = function let is_context exp = is_case exp && - match case_of_case exp with + match Mixop.flatten (case_of_case exp) with | (atom :: _) :: _ -> (match it atom with | Atom a -> List.mem a context_names @@ -146,8 +146,8 @@ let rec is_wasm_value e = (* TODO: use hint? *) match e.it with | Il.SubE (e, _, _) -> is_wasm_value e - | Il.CaseE ([{it = Atom id; _}]::_, _, _) when - List.mem id [ + | Il.CaseE (op, _, _) when + List.mem (case_head op) [ "CONST"; "VCONST"; "REF.I31_NUM"; @@ -253,23 +253,23 @@ and translate_exp exp = in match (op, exps) with (* Singleton *) - | [ []; [] ], [ e1 ] -> + | Mixop.Arg (), [ e1 ] -> { (translate_exp e1) with note=note } (* State *) - | _ when List.for_all is_simple_separator op + | _ when List.for_all is_simple_separator (Mixop.flatten op) && Il.Print.string_of_typ_name exp.note = "state" -> tupE (List.map translate_exp exps) ~at ~note (* Normal Case *) | _ -> - if List.length op = List.length exps + 1 then + if Mixop.arity op = List.length exps then caseE (op, translate_argexp e) ~at ~note else error_exp exp "arity mismatch for CaseE mixop and args" ) | Il.UncaseE (e, op, _) -> (match op with - | [ []; [] ] -> translate_exp e + | Mixop.Arg () -> translate_exp e | _ -> yetE (Il.Print.string_of_exp exp) ~at ~note ) | Il.ProjE (e, 0) -> translate_exp e @@ -319,12 +319,13 @@ and translate_iterexp (iter, xes) = let insert_assert exp = let at = exp.at in match exp.it with - | Il.CaseE ([{it = Atom.Atom id; _}]::_, _, _) when List.mem id context_names -> - assertI (contextKindE (atom_of_name id "evalctx") ~note:boolT) ~at:at + | Il.CaseE (op, _, _) when List.mem (case_head op) context_names -> + assertI (contextKindE (atom_of_name (case_head op) "evalctx") ~note:boolT) ~at:at | Il.IterE (_, (Il.ListN (e, None), _)) -> assertI (topValuesE (translate_exp e) ~at ~note:boolT) ~at:at | Il.IterE (_, (Il.List, _)) -> nopI () ~at:at - | Il.CaseE ([{it = Atom.Atom "CONST"; _}]::_, _, { it = Il.TupE (ty' :: _); _ }) -> + | Il.CaseE (op, _, { it = Il.TupE (ty' :: _); _ }) + when case_head op = "CONST" -> assertI (topValueE (Some (translate_exp ty')) ~note:boolT) ~at:at | _ -> assertI (topValueE None ~note:boolT) ~at:at @@ -334,7 +335,7 @@ let cond_of_pop_value e = let bt = boolT in match e.it with (* | CaseE (op, _, [t; _]) -> - (match get_atom op with + (match Mixop.head op with | Some {it = Atom.Atom "CONST"; _} -> topValueE (Some t) ~note:bt | Some {it = Atom.Atom "VCONST"; _} -> topValueE (Some t) ~note:bt | _ -> topValueE None ~note:bt @@ -425,7 +426,7 @@ let rec translate_rhs exp = let at = exp.at in match exp.it with (* Trap *) - | Il.CaseE ([{it = Atom "TRAP"; _}]::_, _, _) -> [ trapI () ~at ] + | Il.CaseE (op, _, _) when case_head op = "TRAP" -> [ trapI () ~at ] (* Context *) | _ when is_context exp -> translate_context_rhs exp (* Config *) @@ -492,13 +493,13 @@ and translate_context_rhs exp = let at = exp.at in let case = case_of_case exp in - let atom = case |> List.hd |> List.hd in + let atom = Option.get (Mixop.head case) in let args = args_of_case exp in - let case', _ = Lib.List.split_last case in + let case' = split_last_case case in let args, instrs = Lib.List.split_last args in let args' = List.map translate_exp args in - let e' = caseE ([[atom]], []) ~at:instrs.at ~note:instrT in + let e' = caseE (Mixop.Atom atom, []) ~at:instrs.at ~note:instrT in let instrs', al = translate_context_instrs e' instrs in let ectx = caseE (case', args') ~at ~note:evalctxT in [ @@ -791,7 +792,7 @@ and handle_special_lhs lhs rhs free_ids = )] (* Normal cases *) | CaseE (op, es) -> - let tag_opt = get_atom op in + let tag_opt = Mixop.head op in let bindings, es' = extract_non_names es in let rec inject_isCaseOf tag expr = match expr.it with @@ -1041,7 +1042,7 @@ let to_frame_instr r = let rec e_to_frame_instr e = match e with - | {it = Il.Ast.CaseE ([[]; [{it = Semicolon; _}]; []], _, {it = TupE [lhs; rhs]; _}); _} -> + | {it = Il.Ast.CaseE (Mixop.(Infix (Arg (), {it = Semicolon; _}, Arg ())), _, {it = TupE [lhs; rhs]; _}); _} -> let i = e_to_frame_instr lhs in if i = [] then e_to_frame_instr rhs else i | {it = Il.Ast.VarE _; note = {it = Il.Ast.VarT ({it = "frame"; _}, _); _}; _} -> @@ -1082,11 +1083,11 @@ let translate_context_winstr winstr = let at = winstr.at in let case = case_of_case winstr in - let kind = case |> List.hd |> List.hd in + let kind = Option.get (Mixop.head case) in let args = args_of_case winstr in let args, vals = Lib.List.split_last args in (* The last element of case is for instr*, which should not be present in the context record *) - let case, _ = Lib.List.split_last case in + let case = split_last_case case in let destruct = caseE (case, List.map translate_exp args) ~note:evalctxT ~at in [ @@ -1101,7 +1102,8 @@ let translate_context ctx = let at = ctx.at in match ctx.it with - | Il.CaseE ([{it = Atom.Atom id; _} as atom]::_ as case, _, { it = Il.TupE args; _ }) when List.mem id context_names -> + | Il.CaseE (case, _, { it = Il.TupE args; _ }) when List.mem (case_head case) context_names -> + let atom = Option.get (Mixop.head case) in let destruct = caseE (case, List.map translate_exp args) ~note:evalctxT ~at in [ letI (destruct, getCurContextE atom ~note:evalctxT) ~at:at; @@ -1136,7 +1138,7 @@ let rec translate_rgroup' (rule: rule_def) = | Some _ -> let pops, u_group = extract_pops subgroup in let ctxt = extract_context (List.hd u_group) |> Option.get in - let atom = case_of_case ctxt |> List.hd |> List.hd in + let atom = case_of_case ctxt |> Mixop.head |> Option.get in let cond = ContextKindE atom $$ atom.at % boolT in let head_instrs, middle_instr = translate_context ctxt in let is_otherwise = function [{it = OtherwiseI _; _}] -> true | _ -> false in @@ -1202,10 +1204,10 @@ and translate_rgroup (rule: rule_def) = let name = try - match case_of_case winstr with - | (atom :: _) :: _ -> atom + match Mixop.head (case_of_case winstr) with + | Some atom -> atom | _ -> failwith "" - with | _ -> error rule.at "The reduction rules do not have valid or consistent target Wasm instructions." + with _ -> error rule.at "The reduction rules do not have valid or consistent target Wasm instructions." in let anchor = rel_id.it ^ "/" ^ instr_name in let al_params = diff --git a/spectec/src/il2al/transpile.ml b/spectec/src/il2al/transpile.ml index d0c4d4a29b..7c81e63732 100644 --- a/spectec/src/il2al/transpile.ml +++ b/spectec/src/il2al/transpile.ml @@ -158,7 +158,7 @@ let is_case e = let atom_of_case e = match e.it with - | CaseE ((atom :: _) :: _, _) -> atom + | CaseE (op, _) when Mixop.head op <> None -> Option.get (Mixop.head op) | _ -> Error.error e.at "prose transformation" "expected a CaseE" let rec replace_names binds instr = @@ -795,7 +795,7 @@ let remove_trivial_case_check instr = | IsCaseOfE (expr, atom) -> (match get_typ_cases expr.note with | Some [ mixop, _, _ ] -> - List.exists (List.mem atom) mixop + List.exists (List.mem atom) (Mixop.flatten mixop) | _ -> false ) | _ -> false @@ -1292,7 +1292,7 @@ let remove_exit algo = let unused_var = varE "_" ~note:no_note in let control_frame_expr = caseE ( - [[atom]; [{ atom with it=Atom.LBrace}]; [{ atom with it=Atom.RBrace}]; []], + Mixop.(Seq [Atom atom; Arg (); Brack ({ atom with it=Atom.LBrace}, Arg (), { atom with it=Atom.RBrace}); Arg ()]), [ unused_var; unused_var ] ) ~note:evalctxT in @@ -1313,7 +1313,8 @@ let remove_exit algo = let remove_enter algo = let enter_frame_to_push instr = match instr.it with - | EnterI (e_frame, { it = ListE ([ { it = CaseE ([[{ it = Atom.Atom "FRAME_"; _ }]], []); _ } ]); _ }, il) -> + | EnterI (e_frame, { it = ListE ([ { it = CaseE (op, []); _ } ]); _ }, il) + when case_head op = "FRAME_" -> pushI e_frame ~at:instr.at :: il | _ -> [ instr ] in @@ -1322,13 +1323,13 @@ let remove_enter algo = match instr.it with | EnterI ( e_label, - { it = CatE (e_instrs, { it = ListE ([ { it = CaseE ([[{ it = Atom.Atom "LABEL_"; _ }]], []); _ } ]); _ }); note; _ }, - [ { it = PushI e_vals; _ } ]) -> + { it = CatE (e_instrs, { it = ListE ([ { it = CaseE (op, []); _ } ]); _ }); note; _ }, + [ { it = PushI e_vals; _ } ]) when case_head op = "LABEL_" -> enterI (e_label, catE (e_vals, e_instrs) ~note:note, []) ~at:instr.at | EnterI ( e_label, - { it = CatE (e_instrs, { it = ListE ([ { it = CaseE ([[{ it = Atom.Atom "LABEL_"; _ }]], []); _ } ]); _ }); _ }, - []) -> + { it = CatE (e_instrs, { it = ListE ([ { it = CaseE (op, []); _ } ]); _ }); _ }, + []) when case_head op = "LABEL_" -> enterI (e_label, e_instrs, []) ~at:instr.at | _ -> instr in @@ -1382,7 +1383,7 @@ let prosify_control_frame algo = let walk_instr walker instr = match instr.it with - | LetI ({ it = CaseE ([{ it = Atom "LABEL_"; _ }] :: _, [ _; cont ]); _ }, _) -> + | LetI ({ it = CaseE (op, [ _; cont ]); _ }, _) when case_head op = "LABEL_" -> cont_ref := cont; [ instr ] | ExecuteSeqI expr when Eq.eq_expr expr !cont_ref -> [ { instr with it = ExecuteSeqI (callE ("__prose:_jump_to_the_cont", [expA expr]) ~note:no_note) } ] diff --git a/spectec/src/xl/mixop.ml b/spectec/src/xl/mixop.ml index 0a61c67445..6527629be2 100644 --- a/spectec/src/xl/mixop.ml +++ b/spectec/src/xl/mixop.ml @@ -1,25 +1,74 @@ +open Util open Util.Source type atom = Atom.atom -type mixop = atom list list +type 'a mixop = + | Arg of 'a + | Seq of 'a mixop list + | Atom of atom + | Brack of atom * 'a mixop * atom + | Infix of 'a mixop * atom * 'a mixop + + +let rec map f mixop = + match mixop with + | Arg x -> Arg (f x) + | Seq mixops -> Seq (List.map (map f) mixops) + | Atom at -> Atom at + | Brack (at1, mixop, at2) -> Brack (at1, map f mixop, at2) + | Infix (mixop1, at, mixop2) -> Infix (map f mixop1, at, map f mixop2) + +let rec fold f x mixop = + match mixop with + | Arg y -> f x y + | Seq mixops -> List.fold_left (fold f) x mixops + | Atom _ -> x + | Brack (_, mixop, _) -> fold f x mixop + | Infix (mixop1, _, mixop2) -> fold f (fold f x mixop1) mixop2 + +let rec map_atoms f mixop = + match mixop with + | Arg x -> Arg x + | Seq mixops -> Seq (List.map (map_atoms f) mixops) + | Atom at -> Atom (f at) + | Brack (at1, mixop, at2) -> Brack (f at1, map_atoms f mixop, f at2) + | Infix (mixop1, at, mixop2) -> + Infix (map_atoms f mixop1, f at, map_atoms f mixop2) + + +let arity mixop = fold (fun n _ -> n + 1) 0 mixop + + +let (++) atomss1 atomss2 = + let atomss1', atoms1 = Lib.List.split_last atomss1 in + let atoms2, atomss2' = Lib.List.split_hd atomss2 in + atomss1' @ [atoms1 @ atoms2] @ atomss2' + +let rec head = function + | Arg _ | Seq [] -> None + | Seq (mixop::_) -> head mixop + | Atom atom | Brack (atom, _, _) | Infix (_, atom, _) -> Some atom + +let rec flatten = function + | Arg _ -> [[]; []] + | Seq mixops -> List.fold_left (++) [[]] (List.map flatten mixops) + | Atom atom -> [[atom]] + | Brack (l, mixop, r) -> [[l]] ++ flatten mixop ++ [[r]] + | Infix (mixop1, atom, mixop2) -> flatten mixop1 ++ [[atom]] ++ flatten mixop2 let compare mixop1 mixop2 = - List.compare (List.compare Atom.compare) mixop1 mixop2 + List.compare (List.compare Atom.compare) (flatten mixop1) (flatten mixop2) let eq mixop1 mixop2 = compare mixop1 mixop2 = 0 -let to_string = function +let to_string' = function | [{it = Atom.Atom a; _}]::tail when List.for_all ((=) []) tail -> a | mixop -> - let s = - String.concat "%" (List.map ( - fun atoms -> String.concat "" (List.map Atom.to_string atoms)) mixop - ) - in - "`" ^ s ^ "`" - -let name mixop = - String.concat "" (List.map Atom.name mixop) + String.concat "%" (List.map ( + fun atoms -> String.concat "" (List.map Atom.to_string atoms)) mixop + ) + +let to_string mixop = to_string' (flatten mixop) From dcc03d98911f4841c9e931d2c6f0ffff184f9e56 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Mon, 1 Dec 2025 16:09:01 +0100 Subject: [PATCH 04/23] WIP2 (now compiles again) --- spectec/doc/Language.md | 2 +- spectec/src/backend-latex/render.ml | 2 +- spectec/src/el/ast.ml | 2 +- spectec/src/el/convert.ml | 6 +- spectec/src/el/eq.ml | 3 +- spectec/src/el/free.ml | 72 +- spectec/src/el/free.mli | 25 +- spectec/src/el/iter.ml | 4 +- spectec/src/el/print.ml | 2 +- spectec/src/el/subst.ml | 2 +- spectec/src/frontend/dim.ml | 3 +- spectec/src/frontend/elab.ml | 995 ++++++++++++++-------------- spectec/src/frontend/eval.ml | 4 +- spectec/src/frontend/parser.mly | 4 +- spectec/src/il/eq.ml | 10 + spectec/src/il/eq.mli | 1 + spectec/src/il/free.ml | 69 +- spectec/src/il/free.mli | 24 +- spectec/src/il/subst.ml | 5 + spectec/src/il/valid.ml | 8 +- spectec/src/xl/dune | 2 +- spectec/src/xl/mixop.ml | 7 + 22 files changed, 553 insertions(+), 699 deletions(-) diff --git a/spectec/doc/Language.md b/spectec/doc/Language.md index b26cee6e9f..24fd7b6ceb 100644 --- a/spectec/doc/Language.md +++ b/spectec/doc/Language.md @@ -1547,7 +1547,7 @@ params ::= ("(" param*"," ")")? param ::= (varid ":") typ "syntax" synid - "grammar" gramid ":" typ + "grammar" gramid params ":" typ "def" "$" defid params ":" typ def ::= diff --git a/spectec/src/backend-latex/render.ml b/spectec/src/backend-latex/render.ml index 4434e93cbd..b917191444 100644 --- a/spectec/src/backend-latex/render.ml +++ b/spectec/src/backend-latex/render.ml @@ -1676,7 +1676,7 @@ let render_param env p = match p.it with | ExpP (id, t) -> if id.it = "_" then render_typ env t else render_varid env id | TypP id -> render_typid env id - | GramP (id, _t) -> render_gramid env id + | GramP (id, _ps, _t) -> render_gramid env id | DefP (id, _ps, _t) -> render_defid env id let _render_params env = function diff --git a/spectec/src/el/ast.ml b/spectec/src/el/ast.ml index b56ee187a6..89291e880c 100644 --- a/spectec/src/el/ast.ml +++ b/spectec/src/el/ast.ml @@ -158,7 +158,7 @@ and param = param' phrase and param' = | ExpP of id * typ (* varid `:` typ *) | TypP of id (* `syntax` varid *) - | GramP of id * typ (* `grammar` gramid `:` typ *) + | GramP of id * param list * typ (* `grammar` gramid `:` typ *) | DefP of id * param list * typ (* `def` `$` defid params `:` typ *) and arg = arg' ref phrase diff --git a/spectec/src/el/convert.ml b/spectec/src/el/convert.ml index f3464870c3..932d30353d 100644 --- a/spectec/src/el/convert.ml +++ b/spectec/src/el/convert.ml @@ -206,7 +206,7 @@ let rec param_of_arg a = error id.at "invalid identifer suffix in binding position"; TypP id | GramA {it = AttrG ({it = VarE (id, []); _}, g); _} -> - GramP (id, typ_of_exp (exp_of_sym g)) + GramP (id, [], typ_of_exp (exp_of_sym g)) | _ -> error a.at "malformed parameter" ) $ a.at @@ -214,6 +214,6 @@ let arg_of_param p = (match p.it with | ExpP (id, _t) -> ExpA ((*TypE ( *)VarE (id, []) $ id.at(*, t) $ p.at*)) | TypP id -> TypA (VarT (id, []) $ id.at) - | GramP (id, _t) -> GramA (VarG (id, []) $ id.at) - | DefP (id, _params, _t) -> DefA id + | GramP (id, _ps, _t) -> GramA (VarG (id, []) $ id.at) + | DefP (id, _ps, _t) -> DefA id ) |> ref $ p.at diff --git a/spectec/src/el/eq.ml b/spectec/src/el/eq.ml index f012ed66a4..ddeffdb3fc 100644 --- a/spectec/src/el/eq.ml +++ b/spectec/src/el/eq.ml @@ -179,7 +179,8 @@ and eq_param p1 p2 = match p1.it, p2.it with | ExpP (id1, t1), ExpP (id2, t2) -> eq_id id1 id2 && eq_typ t1 t2 | TypP id1, TypP id2 -> eq_id id1 id2 - | GramP (id1, t1), GramP (id2, t2) -> eq_id id1 id2 && eq_typ t1 t2 + | GramP (id1, ps1, t1), GramP (id2, ps2, t2) -> + eq_id id1 id2 && eq_list eq_param ps1 ps2 && eq_typ t1 t2 | DefP (id1, ps1, t1), DefP (id2, ps2, t2) -> eq_id id1 id2 && eq_list eq_param ps1 ps2 && eq_typ t1 t2 | _, _ -> false diff --git a/spectec/src/el/free.ml b/spectec/src/el/free.ml index 731441e957..afc1bb298e 100644 --- a/spectec/src/el/free.ml +++ b/spectec/src/el/free.ml @@ -3,84 +3,26 @@ open Ast open Xl -(* Data Structure *) - -module Set = Set.Make(String) - -type sets = - { typid : Set.t; - gramid : Set.t; - relid : Set.t; - varid : Set.t; - defid : Set.t; - } - -let empty = - { typid = Set.empty; - gramid = Set.empty; - relid = Set.empty; - varid = Set.empty; - defid = Set.empty; - } - -let union sets1 sets2 = - { typid = Set.union sets1.typid sets2.typid; - gramid = Set.union sets1.gramid sets2.gramid; - relid = Set.union sets1.relid sets2.relid; - varid = Set.union sets1.varid sets2.varid; - defid = Set.union sets1.defid sets2.defid; - } - -let inter sets1 sets2 = - { typid = Set.inter sets1.typid sets2.typid; - gramid = Set.inter sets1.gramid sets2.gramid; - relid = Set.inter sets1.relid sets2.relid; - varid = Set.inter sets1.varid sets2.varid; - defid = Set.inter sets1.defid sets2.defid; - } - -let diff sets1 sets2 = - { typid = Set.diff sets1.typid sets2.typid; - gramid = Set.diff sets1.gramid sets2.gramid; - relid = Set.diff sets1.relid sets2.relid; - varid = Set.diff sets1.varid sets2.varid; - defid = Set.diff sets1.defid sets2.defid; - } +include Xl.Gen_free let (+) = union let (-) = diff -let free_opt free_x xo = Option.(value (map free_x xo) ~default:empty) -let free_list free_x xs = List.(fold_left (+) empty (map free_x xs)) -let rec free_list_dep free_x bound_x = function - | [] -> empty - | x::xs -> free_x x + (free_list_dep free_x bound_x xs - bound_x x) +(* Aggregates *) let free_nl_elem free_x = function Nl -> empty | Elem x -> free_x x let free_nl_list free_x xs = List.(fold_left (+) empty (map (free_nl_elem free_x) xs)) -let bound_list = free_list - (* Identifiers *) let free_typid id = let id' = Convert.strip_var_suffix id in match (Convert.typ_of_varid id').it with - | VarT _ -> {empty with typid = Set.singleton id'.it} + | VarT _ -> Xl.Gen_free.free_typid id' | _ -> empty -let free_gramid id = {empty with gramid = Set.singleton id.it} -let free_relid id = {empty with relid = Set.singleton id.it} -let free_varid id = {empty with varid = Set.singleton id.it} -let free_defid id = {empty with defid = Set.singleton id.it} - -let bound_typid id = if id.it = "_" then empty else free_typid id -let bound_gramid id = if id.it = "_" then empty else free_gramid id -let bound_varid id = if id.it = "_" then empty else free_varid id -let bound_defid id = if id.it = "_" then empty else free_defid id - let free_op op = {empty with varid = Set.singleton op} let bound_op op = free_op op @@ -329,16 +271,16 @@ and free_param p = match p.it with | ExpP (_, t) -> free_typ t | TypP _ -> empty - | GramP (_, t) -> free_typ t - impl_bound_typ t + | GramP (_, ps, t) -> free_params ps + free_typ t - bound_params ps - impl_bound_typ ps t | DefP (_, ps, t) -> free_params ps + free_typ t - bound_params ps -and impl_bound_typ t = {empty with typid = (free_typ t).typid} +and impl_bound_typ ps t = {empty with typid = (free_typ t).typid} - bound_params ps and bound_param p = match p.it with | ExpP (id, _) -> bound_varid id | TypP id -> bound_typid id - | GramP (id, t) -> bound_gramid id + impl_bound_typ t + | GramP (id, ps, t) -> bound_gramid id + impl_bound_typ ps t | DefP (id, _, _) -> bound_defid id and free_args as_ = free_list free_arg as_ @@ -354,7 +296,7 @@ let free_def d = | TypD (_id1, _id2, as_, t, _hints) -> free_args as_ + free_typ t | GramD (_id1, _id2, ps, t, gram, _hints) -> - free_params ps + (free_typ t + free_gram gram - bound_params ps - impl_bound_typ t) + free_params ps + (free_typ t + free_gram gram - bound_params ps - impl_bound_typ ps t) | VarD (_id, t, _hints) -> free_typ t | SepD -> empty | RelD (_id, t, _hints) -> free_typ t diff --git a/spectec/src/el/free.mli b/spectec/src/el/free.mli index a3c0c57581..fb8bad9d3d 100644 --- a/spectec/src/el/free.mli +++ b/spectec/src/el/free.mli @@ -1,21 +1,8 @@ open Ast -module Set : Set.S with type elt = string with type t = Set.Make(String).t +include module type of Xl.Gen_free -type sets = - { typid : Set.t; - gramid : Set.t; - relid : Set.t; - varid : Set.t; - defid : Set.t; - } - -val empty : sets -val union : sets -> sets -> sets -val inter : sets -> sets -> sets -val diff : sets -> sets -> sets - -val free_list : ('a -> sets) -> 'a list -> sets +val free_nl_elem : ('a -> sets) -> 'a nl_elem -> sets val free_nl_list : ('a -> sets) -> 'a nl_list -> sets val free_iter : iter -> sets @@ -26,13 +13,15 @@ val free_typcon : typcon -> sets val free_exp : exp -> sets val free_path : path -> sets val free_arg : arg -> sets -val free_args : arg list -> sets val free_prem : prem -> sets -val free_prems : prem nl_list -> sets -val free_params : param list -> sets +val free_param : param -> sets val free_prod : prod -> sets val free_def : def -> sets +val free_prems : prem nl_list -> sets +val free_args : arg list -> sets +val free_params : param list -> sets + (* A free variable is "determinate" if: - it occurs as an iteration variable - it occurs in destructuring position on the lhs diff --git a/spectec/src/el/iter.ml b/spectec/src/el/iter.ml index 521a0c8c05..d060083f8e 100644 --- a/spectec/src/el/iter.ml +++ b/spectec/src/el/iter.ml @@ -213,7 +213,7 @@ and param p = match p.it with | ExpP (x, t) -> varid x; typ t | TypP x -> typid x - | GramP (x, t) -> gramid x; typ t + | GramP (x, ps, t) -> gramid x; params ps; typ t | DefP (x, ps, t) -> defid x; params ps; typ t and args as_ = list arg as_ @@ -377,7 +377,7 @@ and clone_param p = (match p.it with | ExpP (x, t) -> ExpP (x, clone_typ t) | TypP x -> TypP x - | GramP (x, t) -> GramP (x, clone_typ t) + | GramP (x, ps, t) -> GramP (x, List.map clone_param ps, clone_typ t) | DefP (x, ps, t) -> DefP (x, List.map clone_param ps, clone_typ t) ) $ p.at diff --git a/spectec/src/el/print.ml b/spectec/src/el/print.ml index 629507dc08..c9858920be 100644 --- a/spectec/src/el/print.ml +++ b/spectec/src/el/print.ml @@ -289,7 +289,7 @@ let rec string_of_param p = match p.it with | ExpP (id, t) -> (if id.it = "_" then "" else string_of_varid id ^ " : ") ^ string_of_typ t | TypP id -> "syntax " ^ string_of_typid id - | GramP (id, t) -> "grammar " ^ string_of_gramid id ^ " : " ^ string_of_typ t + | GramP (id, ps, t) -> "grammar " ^ string_of_gramid id ^ string_of_params ps ^ " : " ^ string_of_typ t | DefP (id, ps, t) -> "def " ^ string_of_defid id ^ string_of_params ps ^ " : " ^ string_of_typ t and string_of_params = function diff --git a/spectec/src/el/subst.ml b/spectec/src/el/subst.ml index 23fa722ace..09c8da368c 100644 --- a/spectec/src/el/subst.ml +++ b/spectec/src/el/subst.ml @@ -252,7 +252,7 @@ and subst_param s p = (match p.it with | ExpP (id, t) -> ExpP (id, subst_typ s t) | TypP id -> TypP id - | GramP (id, t) -> GramP (id, subst_typ s t) + | GramP (id, ps, t) -> GramP (id, List.map (subst_param s) ps, subst_typ s t) | DefP (id, ps, t) -> DefP (id, List.map (subst_param s) ps, subst_typ s t) ) $ p.at diff --git a/spectec/src/frontend/dim.ml b/spectec/src/frontend/dim.ml index 4637c1dba1..e84288b37d 100644 --- a/spectec/src/frontend/dim.ml +++ b/spectec/src/frontend/dim.ml @@ -291,8 +291,9 @@ and check_param env ctx p = | TypP id -> check_typid env ctx id; check_varid env ctx `Impl id - | GramP (id, t) -> + | GramP (id, ps, t) -> check_gramid env ctx id; + List.iter (check_param env ctx) ps; check_typ env ctx t | DefP (_id, ps, t) -> List.iter (check_param env ctx) ps; diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index eb1cebf666..da9074119c 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -102,56 +102,10 @@ let cat_exp' e1' e2' = | _ -> Il.CatE (e1', e2') -(* Notation *) +(* Environment *) type notation = Il.typ Mixop.mixop - -let rec subst_notation s not = - let open Mixop in - match not with - | Arg t -> Arg (Il.Subst.subst_typ s t) - | Seq nots -> Seq (List.map (subst_notation s) nots) - | Atom at -> Atom at - | Brack (at1, not, at2) -> Brack (at1, subst_notation s not, at2) - | Infix (not1, at, not2) -> - Infix (subst_notation s not1, at, subst_notation s not2) - -let rec apply_notation' ts not = - let open Mixop in - match not with - | Arg () -> List.tl ts, Arg (List.hd ts) - | Seq nots -> - let ts', nots' = List.fold_left_map apply_notation' ts nots in - ts', Seq nots' - | Atom at -> ts, Atom at - | Brack (at1, not, at2) -> - let ts', not' = apply_notation' ts not in - ts', Brack (at1, not', at2) - | Infix (not1, at, not2) -> - let ts', not1' = apply_notation' ts not1 in - let ts'', not2' = apply_notation' ts' not2 in - ts'', Infix (not1', at, not2') - -let apply_notation not ts = - let ts', not' = apply_notation' ts not in - assert (ts' = []); - not' - -let rec string_of_notation = function - | Mixop.Arg t -> Il.string_of_typ t - | Mixop.Seq nots -> - "{" ^ String.concat " " (List.map string_of_notation nots) ^ "}" - | Mixop.Atom atom -> string_of_atom atom - | Mixop.Brack (l, not, r) -> - "`" ^ string_of_atom l ^ string_of_notation not ^ string_of_atom r - | Mixop.Infix (not1, atom, not2) -> - string_of_notation not1 ^ " " ^ string_of_atom atom ^ " " ^ - string_of_notation not2 - - -(* Environment *) - type kind = | Transp (* forward alias types or notation types *) | Opaque (* forward structures or variants, type parameter *) @@ -160,8 +114,8 @@ type kind = type var_typ = Il.typ type typ_typ = Il.param list * kind -type gram_typ = Il.param list * Il.typ * gram option * (id * Il.prod) list -type rel_typ = Il.typ * (id * Il.rule) list +type gram_typ = Il.param list * Il.typ * dots option * (id * Il.prod) list +type rel_typ = Il.mixop * notation * Il.typ * (id * Il.rule) list type def_typ = Il.param list * Il.typ * (def * Il.clause) list type 'a env' = (region * 'a) Map.t @@ -228,26 +182,24 @@ let rebind _space env' id t = assert (bound env' id); Map.add id.it (id.at, t) env' -let find_field fs atom at t = - match List.find_opt (fun (atom', _, _) -> Atom.eq atom' atom) fs with - | Some (_, x, _) -> x +let find_field tfs atom at t = + match List.find_opt (fun (atom', _, _) -> Atom.eq atom' atom) tfs with + | Some tf -> tf | None -> error_atom at atom t "unbound field" -let find_case cs atom at t = +let find_case' f tcs atom at t = match List.find_opt - (function ((atom'::_)::_, _, _) -> Atom.eq atom' atom | _ -> false) cs + (fun (mixop, _, _) -> + match Mixop.head mixop with + | Some atom' -> f atom' atom + | None -> false + ) tcs with - | Some (_, x, _) -> x + | Some tc -> tc | None -> error_atom at atom t "unknown case" -let find_case_sub cases atom at t = - match List.find_opt - (function ((atom'::_)::_, _, _) -> Atom.(eq atom' atom || sub atom' atom) - | _ -> false - ) cases - with - | Some (_, x, _) -> x - | None -> error_atom at atom t "unknown case" +let find_case = find_case' Atom.eq +let find_case_sub = find_case' (fun a' a -> Atom.(eq a' a || sub a' a)) let bound_env' env' = Map.fold (fun id _ s -> Free.Set.add id s) env' Free.Set.empty let bound_env env = @@ -283,7 +235,7 @@ let to_il_var (_at, t) = t let to_il_def (_at, (ps, t, clauses)) = (ps, t, List.map snd clauses) let to_il_gram (_at, (ps, t, _, prods)) = (ps, t, List.map snd prods) -let to_il_typ id (at, (ps, k)) = +let to_il_typ (_at, (ps, k)) = match k with | Opaque | Transp -> ps, [] | Family insts -> ps, insts @@ -294,7 +246,7 @@ let to_il_env env = (* Need to include gvars, since matching can encounter implicit vars *) let gvars = Map.map to_il_var env.gvars in let vars = Map.map to_il_var env.vars in - let typs = Map.mapi to_il_typ env.typs in + let typs = Map.map to_il_typ env.typs in let defs = Map.map to_il_def env.defs in let grams = Map.map to_il_gram env.grams in Il.Env.{ @@ -400,7 +352,7 @@ let msg_typ2 env phrase t1 t2 reason = " does not match type " ^ typ_string env t2 ^ reason let msg_not _env phrase not = - phrase ^ " does not match notation " ^ string_of_notation not + phrase ^ " does not match notation " ^ Mixop.to_string not let error_typ env at phrase t = error at (msg_typ env phrase t) @@ -439,7 +391,7 @@ let rec arg_subst s ps args = match p.it, !((Subst.subst_arg s a).it) with | ExpP (id, _), ExpA e -> Subst.add_varid s id e | TypP id, TypA t -> Subst.add_typid s id t - | GramP (id, _), GramA g -> Subst.add_gramid s id g + | GramP (id, _, _), GramA g -> Subst.add_gramid s id g | DefP (id, _, _), DefA id' -> Subst.add_defid s id id' | _, _ -> assert false in arg_subst s' ps' as' @@ -485,7 +437,8 @@ let as_defined_typid' env x as' at : Il.deftyp' = (* TODO(2, rossberg): avoid repeated env conversion *) -let expand env t : Il.typ' = (Il.Eval.reduce_typ (to_il_env env) t).it +let reduce env t : Il.typ = Il.Eval.reduce_typ (to_il_env env) t +let expand env t : Il.typ' = (reduce env t).it let expand_def env t : Il.deftyp' * dots = match expand env t with @@ -498,7 +451,7 @@ let expand_def env t : Il.deftyp' * dots = let expand_notation env t = match expand env t with - | Il.VarT (x, as') as t' -> + | Il.VarT (x, as') -> let x' = strip_var_suffix x in (match find "syntax type" env.typs x' with | ps, Defined ({it = Il.VariantT [tc]; _}, _, _) -> @@ -506,7 +459,7 @@ let expand_notation env t = Il.Eval.(match_list match_arg (to_il_env env) Il.Subst.empty as' as_) |> Option.map (fun s -> let mixop, (qs, t, _prems), _ = Il.Subst.subst_typcase s tc in - qs, t, mixop, apply_notation mixop (untup_typ' t) + qs, t, mixop, Mixop.apply mixop (untup_typ' t) ) | _, _ -> None ) @@ -801,14 +754,6 @@ let infer_cmpop env op ) ) -let merge_mixop mixop1 mixop2 = - match mixop1, mixop2 with - | _, [] -> mixop1 - | [], _ -> mixop2 - | mixop1, atoms2::mixop2' -> - let mixop1', atoms1 = Lib.List.split_last mixop1 in - mixop1' @ [atoms1 @ atoms2] @ mixop2' - let check_atoms phrase item to_atom list at = let _, dups = @@ -824,8 +769,8 @@ let check_atoms phrase item to_atom list at = (* Iteration *) -let rec elab_iter env iter : Il.quant list * Il.iter = - match iter with +let rec elab_iter env (it : iter) : Il.quant list * Il.iter = + match it with | Opt -> [], Il.Opt | List -> [], Il.List | List1 -> [], Il.List1 @@ -840,20 +785,20 @@ let rec elab_iter env iter : Il.quant list * Il.iter = let qs, e' = checkpoint (elab_exp env e (Il.NumT `NatT $ e.at)) in qs, Il.ListN (e', xo) -and elab_typiter env iter : Il.iter = - let iter = - match iter with +and elab_typiter env (it : iter) : Il.iter = + let it = + match it with | List1 | ListN _ -> List - | _ -> iter + | _ -> it in - let qs, iter' = elab_iter env iter in + let qs, it' = elab_iter env it in assert (qs = []); - iter' + it' (* Types *) -and elab_typ env t : Il.typ = +and elab_typ env (t : typ) : Il.typ = match t.it with | VarT (x, as_) -> let x' = strip_var_suffix x in @@ -879,10 +824,10 @@ and elab_typ env t : Il.typ = | AtomT _ | SeqT _ | InfixT _ | BrackT _ -> error t.at "this type is only allowed in type definitions" -and elab_typ_definition env tid t : Il.deftyp * dots = +and elab_typ_definition env tid (t : typ) : dots * Il.deftyp * dots = Debug.(log_at "el.elab_typ_definition" t.at (fun _ -> fmt "%s = %s" tid.it (el_typ t)) - (fun (dt, _) -> il_deftyp dt) + (fun (_, dt, _) -> il_deftyp dt) ) @@ fun _ -> assert (valid_tid tid); match t.it with @@ -908,7 +853,7 @@ and elab_typ_definition env tid t : Il.deftyp * dots = in let tfs' = tfs1 @ tfs2 @ map_filter_nl_list (elab_typfield env tid t.at) tfs in check_atoms "record" "field" Fun.id tfs' t.at; - Il.StructT tfs' $ t.at, dots2 + dots1, Il.StructT tfs' $ t.at, dots2 | CaseT (dots1, ts, tcs, dots2) -> let tcs1 = if dots1 = NoDots then [] else @@ -931,10 +876,10 @@ and elab_typ_definition env tid t : Il.deftyp * dots = in let tcs' = tcs1 @ tcs2 @ map_filter_nl_list (elab_typcase env tid t.at) tcs in check_atoms "variant" "case" (fun op -> Option.get (Mixop.head op)) tcs' t.at; - Il.VariantT tcs' $ t.at, dots2 + dots1, Il.VariantT tcs' $ t.at, dots2 | ConT tc -> let tc' = elab_typcon env tid t.at tc in - Il.VariantT [tc'] $ t.at, NoDots + NoDots, Il.VariantT [tc'] $ t.at, NoDots | RangeT tes -> let ts_fes' = map_filter_nl_list (elab_typenum env tid) tes in let t', fe' = @@ -952,10 +897,10 @@ and elab_typ_definition env tid t : Il.deftyp * dots = let qs = [Il.ExpP (x, t') $ t.at] in let prems' = [Il.IfPr (fe' eid' nt) $ t.at] in let tc' = (Mixop.Arg (), (qs, Il.TupT [(x, t')] $ t.at, prems'), []) in - Il.VariantT [tc'] $ t.at, NoDots + NoDots, Il.VariantT [tc'] $ t.at, NoDots | _ -> let t' = elab_typ env t in - Il.AliasT t' $ t.at, NoDots + NoDots, Il.AliasT t' $ t.at, NoDots and typ_rep env t : Il.typ = Debug.(log_at "el.typ_rep" t.at @@ -970,7 +915,8 @@ and typ_rep env t : Il.typ = ) | t' -> t' $ t.at -and elab_typfield env tid at (atom, (t, prems), hints) : Il.typfield = +and elab_typfield env tid at (tf : typfield) : Il.typfield = + let atom, (t, prems), hints = tf in let _mixop, qs, t', prems' = elab_typ_notation' env tid at t prems in let hints' = elab_hints tid "" hints in let t'' = (* TODO(4, rossberg): remove this hack *) @@ -980,18 +926,21 @@ and elab_typfield env tid at (atom, (t, prems), hints) : Il.typfield = in (elab_atom atom tid, (qs, t'', prems'), hints') -and elab_typcase env tid at (_atom, (t, prems), hints) : Il.typcase = +and elab_typcase env tid at (tc : typcase) : Il.typcase = + let _atom, (t, prems), hints = tc in let mixop, qs, t', prems' = elab_typ_notation' env tid at t prems in let hints' = elab_hints tid "" hints in (mixop, (qs, t', prems'), hints') -and elab_typcon env tid at ((t, prems), hints) : Il.typcase = +and elab_typcon env tid at (tc : typcon) : Il.typcase = + let (t, prems), hints = tc in let mixop, qs, t', prems' = elab_typ_notation' env tid at t prems in let hints' = elab_hints tid tid.it hints in (mixop, (qs, t', prems'), hints') -and elab_typenum env tid (e1, e2o) : Il.typ * (Il.exp -> numtyp -> Il.exp) = +and elab_typenum env tid (te : typenum) : Il.typ * (Il.exp -> numtyp -> Il.exp) = assert (valid_tid tid); + let e1, e2o = te in let _e1' = elab_exp env e1 (Il.NumT `IntT $ e1.at) in (* ensure it's <= int *) let _qs1, _, t1 = checkpoint (infer_exp env e1) in (* get precise type *) match e2o with @@ -1069,10 +1018,9 @@ and pats'_of_typs' s ts : Il.exp list option = if List.for_all ((=) None) eos then None else Some (List.map2 expify' ts eos) -and pat'_of_typ t = expify' t (pat'_of_typ' (ref Set.empty) t) and pats'_of_typs ts = List.map2 expify' ts (List.map (pat'_of_typ' (ref Set.empty)) ts) -and elab_typ_notation' env tid at t prems : +and elab_typ_notation' env tid at (t : typ) (prems : prem nl_list) : Il.mixop * Il.quant list * Il.typ * Il.prem list = assert (valid_tid tid); let env' = local_env env in @@ -1098,7 +1046,7 @@ List.iteri (fun i e -> Printf.printf "[notation] e%d' = %s\n%!" i (Il.Print.stri Acc.prems prems; mixop, !acc_qs @ List.concat qss, tup_typ_bind' es' ts' t.at, prems' -and elab_typ_notation env tid t : Il.mixop * Il.typ list = +and elab_typ_notation env tid (t : typ) : Il.mixop * Il.typ list = Debug.(log_at "el.elab_typ_notation" t.at (fun _ -> fmt "(%s) %s" tid.it (el_typ t)) (fun (mixop, ts') -> fmt "%s(%s)" (il_mixop mixop) (list il_typ ts')) @@ -1148,10 +1096,6 @@ and elab_typ_notation env tid t : Il.mixop * Il.typ list = Arg (), [t'] -and (!!!) env tid t = - let _, ts' = elab_typ_notation env tid t in tup_typ' ts' t.at - - (* Expressions *) (* Returns @@ -1253,15 +1197,15 @@ and infer_exp' env e : (Il.quant list * Il.exp' * Il.typ') attempt = Ok (qs1 @ qs2 @ qs3, Il.SliceE (e1', e2', e3'), t1.it) | UpdE (e1, p, e2) -> let* qs1, e1', t1 = infer_exp env e1 in - let* qs, p', t2 = elab_path env p t1 in + let* qsP, p', t2 = elab_path env p t1 in let* qs2, e2' = elab_exp env e2 t2 in - Ok (qs1 @ qs @ qs2, Il.UpdE (e1', p', e2'), t1.it) + Ok (qs1 @ qsP @ qs2, Il.UpdE (e1', p', e2'), t1.it) | ExtE (e1, p, e2) -> let* qs1, e1', t1 = infer_exp env e1 in - let* qs, p', t2 = elab_path env p t1 in - let* _t21 = as_list_typ "path" env Infer t2 p.at in + let* qsP, p', t2 = elab_path env p t1 in + let* _ = as_list_typ "path" env Infer t2 p.at in let* qs2, e2' = elab_exp env e2 t2 in - Ok (qs1 @ qs @ qs2, Il.ExtE (e1', p', e2'), t1.it) + Ok (qs1 @ qsP @ qs2, Il.ExtE (e1', p', e2'), t1.it) | StrE _ -> fail_infer e.at "record" | DotE (e1, atom) -> @@ -1269,13 +1213,13 @@ and infer_exp' env e : (Il.quant list * Il.exp' * Il.typ') attempt = let* tfs, dots = as_struct_typ "expression" env Infer t1 e1.at in if dots = Dots then error e1.at "used record type is only partially defined at this point"; - let* qsF, tF, prems = attempt (find_field tfs atom e1.at) t1 in - let qs', s = Il.Fresh.refresh_quants qsF in - let as' = il_args_of_params qs' in + let* _, (qsF, tF, prems), _ = attempt (find_field tfs atom e1.at) t1 in + let qsF', s = Il.Fresh.refresh_quants qsF in + let as' = il_args_of_params qsF' in let tF' = Il.Subst.subst_typ s tF in let e' = Il.DotE (e1', elab_atom atom (expand_id env t1), as') in let e'' = if prems = [] then e' else Il.ProjE (e' $$ e.at % tF', 0) in - Ok (qs1 @ qs', e'', tF'.it) + Ok (qs1 @ qsF', e'', tF'.it) | CommaE (e1, e2) -> let* qs1, e1', t1 = infer_exp env e1 in let* tfs, dots = as_struct_typ "expression" env Infer t1 e1.at in @@ -1362,7 +1306,7 @@ and infer_exp_list env = function Ok (qs1 @ qs2, e'::es', t::ts) -and elab_exp env e t : (Il.quant list * Il.exp) attempt = +and elab_exp env (e : exp) (t : Il.typ) : (Il.quant list * Il.exp) attempt = Debug.(log_at "el.elab_exp" e.at (fun _ -> fmt "%s : %s" (el_exp e) (il_typ t)) (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp e') | _ -> "fail") @@ -1396,7 +1340,7 @@ and elab_exp env e t : (Il.quant list * Il.exp) attempt = elab_exp_plain env e t ) -and elab_exp_plain env e t : (Il.quant list * Il.exp) attempt = +and elab_exp_plain env (e : exp) (t : Il.typ) : (Il.quant list * Il.exp) attempt = Debug.(log_at "el.elab_exp_plain" e.at (fun _ -> fmt "%s : %s" (el_exp e) (il_typ t)) (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp e') | _ -> "fail") @@ -1404,7 +1348,7 @@ and elab_exp_plain env e t : (Il.quant list * Il.exp) attempt = let* qs, e' = elab_exp_plain' env e t in Ok (qs, e' $$ e.at % t) -and elab_exp_plain' env e t : (Il.quant list * Il.exp') attempt = +and elab_exp_plain' env (e : exp) (t : Il.typ) : (Il.quant list * Il.exp') attempt = match e.it with | BoolE _ | NumE _ | CvtE _ | UnE _ | BinE _ | CmpE _ | IdxE _ | DotE _ | MemE _ | LenE _ | SizeE _ | CallE _ | TypE _ @@ -1454,15 +1398,15 @@ and elab_exp_plain' env e t : (Il.quant list * Il.exp') attempt = Ok (qs1 @ qs2 @ qs3, Il.SliceE (e1', e2', e3')) | UpdE (e1, p, e2) -> let* qs1, e1' = elab_exp env e1 t in - let* qs, p', t2 = elab_path env p t in + let* qsP, p', t2 = elab_path env p t in let* qs2, e2' = elab_exp env e2 t2 in - Ok (qs1 @ qs @ qs2, Il.UpdE (e1', p', e2')) + Ok (qs1 @ qsP @ qs2, Il.UpdE (e1', p', e2')) | ExtE (e1, p, e2) -> let* qs1, e1' = elab_exp env e1 t in - let* qs, p', t2 = elab_path env p t in - let* _t21 = as_list_typ "path" env Check t2 p.at in + let* qsP, p', t2 = elab_path env p t in + let* _ = as_list_typ "path" env Check t2 p.at in let* qs2, e2' = elab_exp env e2 t2 in - Ok (qs1 @ qs @ qs2, Il.ExtE (e1', p', e2')) + Ok (qs1 @ qsP @ qs2, Il.ExtE (e1', p', e2')) | StrE efs -> let* tfs, dots = as_struct_typ "record" env Check t e.at in if dots = Dots then @@ -1548,7 +1492,8 @@ and elab_exp_plain' env e t : (Il.quant list * Il.exp') attempt = | _, Il.Opt -> fail_typ env e.at "iteration" t | _, _ -> Ok (qs, e') -and elab_exp_list env es xts at : (Il.quant list * Il.exp list) attempt = +and elab_exp_list env (es : exp list) (xts : (id * Il.typ) list) at + : (Il.quant list * Il.exp list) attempt = match es, xts with | [], [] -> Ok ([], []) | e::es, (_x, t)::xts -> @@ -1558,19 +1503,20 @@ and elab_exp_list env es xts at : (Il.quant list * Il.exp list) attempt = | _, _ -> fail at "arity mismatch for expression list" -and elab_expfields env tid efs tfs t0 at : (Il.quant list * Il.expfield list) attempt = +and elab_expfields env tid (efs : expfield list) (tfs : Il.typfield list) (t0 : Il.typ) at + : (Il.quant list * Il.expfield list) attempt = Debug.(log_in_at "el.elab_expfields" at (fun _ -> fmt "{%s} : {%s} = %s" (list el_expfield efs) (list (il_typfield `H) tfs) (il_typ t0)) ); assert (valid_tid tid); match efs, tfs with | [], [] -> Ok ([], []) - | (atom1, e)::efs2, (atom2, (qs, t, prems), _)::tfs2 when atom1.it = atom2.it -> - let not = Mixop.(Seq [Atom atom2; Arg t]) in + | (atom1, e)::efs2, (atom2, (qsF, tF, prems), _)::tfs2 when atom1.it = atom2.it -> + let not = Mixop.(Seq [Atom atom2; Arg tF]) in let* qs1, es', s = elab_exp_notation' env tid e not in let* qs2, efs2' = elab_expfields env tid efs2 tfs2 t0 at in let e' = (if prems = [] then tup_exp' else tup_exp_bind') es' e.at in - let as' = Il.Subst.subst_args s (il_args_of_params qs) in + let as' = Il.Subst.subst_args s (il_args_of_params qsF) in Ok (qs1 @ qs2, (elab_atom atom1 tid, as', e') :: efs2') | _, (atom, (_qs, t, prems), _)::tfs2 -> let atom' = string_of_atom atom in @@ -1582,11 +1528,11 @@ and elab_expfields env tid efs tfs t0 at : (Il.quant list * Il.expfield list) at | (atom, e)::_, [] -> fail_atom e.at atom t0 "undefined or misplaced record field" -and elab_exp_iter env es (t1, iter) t at : (Il.quant list * Il.exp) attempt = +and elab_exp_iter env (es : exp list) (t1, iter) t at : (Il.quant list * Il.exp) attempt = let* qs, e' = elab_exp_iter' env es (t1, iter) t at in Ok (qs, e' $$ at % t) -and elab_exp_iter' env es (t1, iter) t at : (Il.quant list * Il.exp') attempt = +and elab_exp_iter' env (es : exp list) (t1, iter) t at : (Il.quant list * Il.exp') attempt = Debug.(log_at "el.elab_exp_iter" at (fun _ -> fmt "%s : %s = (%s)%s" (seq el_exp es) (il_typ t) (il_typ t1) (il_iter iter)) (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp (e' $$ at % t)) | _ -> "fail") @@ -1611,16 +1557,16 @@ and elab_exp_iter' env es (t1, iter) t at : (Il.quant list * Il.exp') attempt = | _, (List1 | ListN _) -> assert false -and elab_exp_notation env tid e (qs, t1, mixop, not) t : (Il.quant list * Il.exp) attempt = +and elab_exp_notation env tid (e : exp) (qs, t1, mixop, not) t : (Il.quant list * Il.exp) attempt = (* Convert notation into applications of mixin operators *) assert (valid_tid tid); let* qs', es', s = elab_exp_notation' env tid e not in let as' = Il.Subst.subst_args s (il_args_of_params qs) in Ok (qs', Il.CaseE (mixop, as', Il.TupE es' $$ e.at % t1) $$ e.at % t) -and elab_exp_notation' env tid e not : (Il.quant list * Il.exp list * Il.Subst.t) attempt = +and elab_exp_notation' env tid (e : exp) not : (Il.quant list * Il.exp list * Il.Subst.t) attempt = Debug.(log_at "el.elab_exp_notation" e.at - (fun _ -> fmt "%s : %s" (el_exp e) (string_of_notation not)) + (fun _ -> fmt "%s : %s" (el_exp e) (Mixop.to_string not)) (function Ok (qs, es', _) -> fmt "%s %s" (il_quants qs) (seq il_exp es') | _ -> "fail") ) @@ fun _ -> assert (valid_tid tid); @@ -1636,7 +1582,7 @@ and elab_exp_notation' env tid e not : (Il.quant list * Il.exp list * Il.Subst.t | InfixE (e1, atom, e2), Infix (not1, atom', not2) -> if atom.it <> atom'.it then fail_not env e.at "infix expression" not else let* qs1, es1', s1 = elab_exp_notation' env tid e1 not1 in - let* qs2, es2', s2 = elab_exp_notation' env tid e2 (subst_notation s1 not2) in + let* qs2, es2', s2 = elab_exp_notation' env tid e2 (Mixop.map (Il.Subst.subst_typ s1) not2) in let _ = elab_atom atom tid in Ok (qs1 @ qs2, es1' @ es2', Il.Subst.union s1 s2) | BrackE (l, e1, r), Brack (l', not1, r') -> @@ -1672,7 +1618,7 @@ and elab_exp_notation' env tid e not : (Il.quant list * Il.exp list * Il.Subst.t let* qs1, es1', s1 = elab_exp_notation' env tid (unparen_exp e1) not1 in let e2 = SeqE es2 $ Source.over_region (after_region e1.at :: List.map Source.at es2) in let not2 = Mixop.Seq nots2 in - let* qs2, es2', s2 = elab_exp_notation' env tid e2 (subst_notation s1 not2) in + let* qs2, es2', s2 = elab_exp_notation' env tid e2 (Mixop.map (Il.Subst.subst_typ s1) not2) in Ok (qs1 @ qs2, es1' @ es2', Il.Subst.union s1 s2) (* Trailing elements can be omitted if they can be eps *) | SeqE [], Seq ((Arg t1)::nots2) -> @@ -1698,12 +1644,12 @@ and elab_exp_notation' env tid e not : (Il.quant list * Il.exp list * Il.Subst.t | _, (Atom _ | Brack _ | Infix _) -> fail e.at "expression does not match expected notation" -and elab_exp_notation_iter env tid es (t1, iter) t nots at : (Il.quant list * Il.exp list * Il.Subst.t) attempt = +and elab_exp_notation_iter env tid (es : exp list) (t1, iter) t nots at : (Il.quant list * Il.exp list * Il.Subst.t) attempt = assert (valid_tid tid); let* qs, e', es', s = elab_exp_notation_iter' env tid es (t1, iter) t nots at in Ok (qs, e'::es', s) -and elab_exp_notation_iter' env tid es (t1, iter) t nots at : (Il.quant list * Il.exp * Il.exp list * Il.Subst.t) attempt = +and elab_exp_notation_iter' env tid (es : exp list) (t1, iter) t nots at : (Il.quant list * Il.exp * Il.exp list * Il.Subst.t) attempt = Debug.(log_at "el.elab_exp_notation_iter" at (fun _ -> fmt "%s : %s = (%s)%s" (seq el_exp es) (il_typ t) (il_typ t1) (il_iter iter)) (function Ok (qs, e', es', _) -> fmt "%s %s" (il_quants qs) (seq il_exp (e'::es')) | _ -> "fail") @@ -1746,42 +1692,40 @@ and elab_exp_notation_iter' env tid es (t1, iter) t nots at : (Il.quant list * I | _, (List1 | ListN _) -> assert false -and elab_exp_variant env tid e cases t at : (Il.quant list * Il.exp) attempt = +and elab_exp_variant env tid (e : exp) (tcs : Il.typcase list) t at : (Il.quant list * Il.exp) attempt = Debug.(log_at "el.elab_exp_variant" e.at (fun _ -> fmt "%s : %s = %s" (el_exp e) tid.it (il_typ t)) (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp e') | _ -> "fail") ) @@ fun _ -> assert (valid_tid tid); - let* atom = + let rec head e = match e.it with | AtomE atom - | SeqE ({it = AtomE atom; _}::_) | InfixE (_, atom, _) | BrackE (atom, _, _) -> Ok atom + | SeqE (e1::_) -> head e1 | _ -> fail_typ env at "expression" t in - let* not1, _prems = attempt (find_case_sub cases atom atom.at) t in - let* qs1, es', _s = elab_exp_notation' env tid e not1 in - let t2 = expand env t $ at in - let t2' = elab_typ env t2 in + let* atom = head e in + let* mixop, (qsC, tC, _prems), _ = attempt (find_case_sub tcs atom atom.at) t in + let* xtsC = as_tup_typ "tuple" env Check tC e.at in + let not = Mixop.apply mixop (List.map snd xtsC) in + let* qs, es', s = elab_exp_notation' env tid e not in + let as' = Il.Subst.subst_args s (il_args_of_params qsC) in + Ok (qs, Il.CaseE (mixop, as', tup_exp_bind' es' e.at) $$ at % t) + - let mixop, qs2, t1', _prems', _ = elab_typ_notation' env tid e.at not1 [] in -(*TODO*) - let* qs3, e' = cast_exp "variant case" env - (Il.CaseE (mixop, Il.TupE es' $$ at % t1') $$ at % t2') t2 t in - Ok (qs1 @ qs2 @ qs3, e') (* - let mixop, ts', _ = elab_typ_notation env tid t1 in - assert (List.length es' = List.length ts'); - cast_exp "variant case" env - (Il.CaseE (mixop, tup_exp_bind' es' at) $$ at % t2') t2 t +r[. = e] ~> e +r[[i] = e] ~> [r0,...,e,...,rN] if r = [r0,...,rN] +r[.l = e] ~> {l0 a0*=r0,...,l a*=e,...,lN aN*=rN} if r = {l0 a0*=r0,...,lN aN*=rN} + a* = q* *) - -and elab_path env p t : (Il.quant list * Il.path * Il.typ) attempt = +and elab_path env (p : path) (t : Il.typ) : (Il.quant list * Il.path * Il.typ) attempt = let* qs, p', t' = elab_path' env p t in Ok (qs, p' $$ p.at % t', t') -and elab_path' env p t : (Il.quant list * Il.path' * Il.typ) attempt = +and elab_path' env (p : path) (t : Il.typ) : (Il.quant list * Il.path' * Il.typ) attempt = match p.it with | RootP -> Ok ([], Il.RootP, t) @@ -1801,23 +1745,25 @@ and elab_path' env p t : (Il.quant list * Il.path' * Il.typ) attempt = let* tfs, dots = as_struct_typ "path" env Check t1 p1.at in if dots = Dots then error p1.at "used record type is only partially defined at this point"; -(*TODO*) - let* t', _prems = attempt (find_field tfs atom p1.at) t1 in - Ok (qs1, Il.DotP (p1', elab_atom atom (expand_id env t1)), t') + let* _, (qsF, tF, _prems), _ = attempt (find_field tfs atom p1.at) t1 in + let qsF', s = Il.Fresh.refresh_quants qsF in + let as' = il_args_of_params qsF' in + let tF' = Il.Subst.subst_typ s tF in + Ok (qs1 @ qsF, Il.DotP (p1', elab_atom atom (expand_id env t1), as'), tF') -and cast_empty phrase env t at : (Il.quant list * Il.exp) attempt = +and cast_empty phrase env (t : Il.typ) at : (Il.quant list * Il.exp) attempt = Debug.(log_at "el.elab_exp_cast_empty" at (fun _ -> fmt "%s >> (%s)" (il_typ t) (il_typ t)) (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp e') | _ -> "fail") ) @@ fun _ -> nest at t ( match expand env t with - | Il.IterT (_, Opt) -> Ok ([], Il.OptE None $$ at % t') - | Il.IterT (_, List) -> Ok ([], Il.ListE [] $$ at % t') + | Il.IterT (_, Opt) -> Ok ([], Il.OptE None $$ at % t) + | Il.IterT (_, List) -> Ok ([], Il.ListE [] $$ at % t) | VarT _ when is_notation_typ env t -> (match expand_notation env t with - | SeqT [] -> Ok ([], Il.ListE [] $$ at % t') + | Some (_, _, _, Mixop.Seq []) -> Ok ([], Il.ListE [] $$ at % t) | _ -> fail_typ env at phrase t ) (* @@ -1835,26 +1781,28 @@ and cast_empty phrase env t at : (Il.quant list * Il.exp) attempt = | _ -> fail_typ env at phrase t ) -and cast_exp phrase env e' t1 t2 : (Il.quant list * Il.exp) attempt = +and cast_exp phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp) attempt = let* qs, e'' = nest e'.at t2 (cast_exp' phrase env e' t1 t2) in - Ok (qs, e'' $$ e'.at % elab_typ env (expand_nondef env t2)) + Ok (qs, e'' $$ e'.at % t2) -and cast_exp' phrase env e' t1 t2 : (Il.quant list * Il.exp') attempt = +and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt = Debug.(log_at "el.elab_exp_cast" e'.at (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s)" (il_typ t1) (il_typ t2) - (il_deftyp (expand_def env t1 $ t1.at)) (il_deftyp (expand_def env t2 $ t2.at)) - (il_typ (expand_nondef env t2)) + (il_deftyp (fst (expand_def env t1) $ t1.at)) + (il_deftyp (fst (expand_def env t2) $ t2.at)) + (il_typ (reduce env t2)) ) (function Ok (qs, e'') -> fmt "%s%s" (il_quants qs) (il_exp (e'' $$ e'.at % t2)) | _ -> "fail") ) @@ fun _ -> if equiv_typ env t1 t2 then Ok ([], e'.it) else - match expand env t1, expand env t2 with - | t1', t2' when sub_typ env t1' t2' -> + let t1', t2' = reduce env t1, reduce env t2 in + match t1'.it, t2'.it with + | _, _ when sub_typ env t1' t2' -> Ok ([], Il.SubE (e', t1', t2')) | Il.NumT nt1, Il.NumT nt2 when nt1 < nt2 || lax_num && nt1 <> `RealT -> Ok ([], Il.CvtE (e', nt1, nt2)) - | Il.TupT [], Il.VarT _ as t2' when is_empty_typ t2' -> + | Il.TupT [], Il.VarT _ when is_empty_notation_typ env t2' -> Ok ([], e'.it) | IterT (t11, Opt), IterT (t21, List) -> @@ -1873,39 +1821,55 @@ and cast_exp' phrase env e' t1 t2 : (Il.quant list * Il.exp') attempt = let* qs, e'' = cast_exp phrase env e' t1 t21 in Ok (qs, Il.ListE [e'']) - | Il.VarT _ as t1', Il.VarT _ as t2' -> + | Il.VarT _, Il.VarT _ -> (match expand_def env t1', expand_def env t2' with - | Il.VariantT [mixop1, (qs1, t11, _), _], - Il.VariantT [mixop2, (qs2, t21, _), _] -> + | (Il.VariantT [mixop1, (qs1, tC1, _), _], NoDots), + (Il.VariantT [mixop2, (qs2, tC2, _), _], NoDots) -> + let qs1', s1 = Il.Fresh.refresh_quants qs1 in + let qs2', s2 = Il.Fresh.refresh_quants qs2 in + let tC1' = Il.Subst.subst_typ s1 tC1 in + let tC2' = Il.Subst.subst_typ s2 tC2 in + let as1' = il_args_of_params qs1' in + let as2' = il_args_of_params qs2' in if mixop1 = mixop2 then - (* Two ConT's with the same operator can be cast pointwise *) - let e'' = Il.UncaseE (e', mixop1) $$ e'.at % t1' in - let ts1 = match t11.it with Il.TupT xts -> List.map snd xts | _ -> [t11] in + ( + (* Two ConT's with the same operator can be cast pointwise *) + let ts1 = match tC1'.it with Il.TupT xts -> List.map snd xts | _ -> [tC1'] in + let ts2 = match tC2'.it with Il.TupT xts -> List.map snd xts | _ -> [tC2'] in + let e'' = Il.UncaseE (e', mixop1, as1') $$ e'.at % tC1' in let es' = List.mapi (fun i t1I -> Il.ProjE (e'', i) $$ e''.at % t1I) ts1 in let* qss_es'' = map2_attempt (fun eI' (t1I, t2I) -> cast_exp phrase env eI' t1I t2I) es' (List.combine ts1 ts2) in let qss, es'' = List.split qss_es'' in - Ok (qs1 @ qs2 @ List.concat qss, Il.CaseE (mixop2, tup_exp_bind' es'' e'.at)) + Ok (qs1' @ qs2' @ List.concat qss, Il.CaseE (mixop2, as2', tup_exp_bind' es'' e'.at)) + ) else - (* Two unary ConT's can be cast transitively *) - Debug.(log_in_at "el.cast_exp" e'.at - (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s) # backtrack 1" (el_typ t1) (el_typ t2) - (el_typ (expand_def env t1 $ t1.at)) (el_typ (expand_def env t2 $ t2.at)) - (el_typ (expand_nondef env t2)) + ( + (* Two unary ConT's can be cast transitively + * (composing the to/from payload cases below). *) + let _ = Debug.(log_in_at "el.cast_exp" e'.at + (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s) # backtrack 1" + (il_typ t1) (il_typ t2) + (il_deftyp (fst (expand_def env t1) $ t1.at)) + (il_deftyp (fst (expand_def env t2) $ t2.at)) + (il_typ (reduce env t2)) ) - ); - let* t111, t111' = match ts, t11.it with [t111], Il.TupT [_, t111'] -> Ok (t111, t111') | _ -> - fail_typ2 env e'.at phrase t1 t2 "" in - let e'' = Il.UncaseE (e', mixop) $$ e'.at % t11 in - let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2' in - Ok (qs @ qs, e''') + ) in + match expand env tC1' with + | Il.TupT [_, t11'] -> + let e'' = Il.UncaseE (e', mixop1, as1') $$ e'.at % t11' in + let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t11') t11' t2' in + Ok (qs1' @ qs, e''') + | _ -> fail_typ2 env e'.at phrase t1 t2 "" + ) - | Il.VariantT [mixop1, (qs1, t11, _), _], _ -> + | (Il.VariantT [mixop1, (qs1, tC1, _), _], NoDots), _ -> choice env [ (fun env -> + (* A ConT can always be cast to a (singleton) iteration *) let* qs, e'' = - match t2' with - | IterT (t21, iter) -> + match t2'.it with + | Il.IterT (t21, iter) -> let* qs1, e1' = cast_exp phrase env e' t1 t21 in (match iter with | Opt -> Ok (qs1, Il.OptE (Some e1')) @@ -1919,53 +1883,63 @@ and cast_exp' phrase env e' t1 t2 : (Il.quant list * Il.exp') attempt = (fun env -> (* A ConT can be cast to its payload *) Debug.(log_in_at "el.cast_exp" e'.at - (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s) # backtrack 2" (el_typ t1) (el_typ t2) - (el_typ (expand_def env t1 $ t1.at)) (el_typ (expand_def env t2 $ t2.at)) - (el_typ (expand_nondef env t2)) + (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s) # backtrack 2" + (il_typ t1) (il_typ t2) + (il_deftyp (fst (expand_def env t1) $ t1.at)) + (il_deftyp (fst (expand_def env t2) $ t2.at)) + (il_typ (reduce env t2)) ) ); - let* t111, t111' = match ts, t11.it with [t111], Il.TupT [_, t111'] -> Ok (t111, t111') | _ -> - fail_typ2 env e'.at phrase t1 t2 "" in -(*TODO*) - let e'' = Il.UncaseE (e', mixop) $$ e'.at % t11 in - let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in - Ok (qs @ qs, e''') + let qs1', s1 = Il.Fresh.refresh_quants qs1 in + let tC1' = Il.Subst.subst_typ s1 tC1 in + let as1' = il_args_of_params qs1' in + match expand env tC1' with + | Il.TupT [_, t11'] -> + let e'' = Il.UncaseE (e', mixop1, as1') $$ e'.at % t11' in + let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t11') t11' t2' in + Ok (qs1' @ qs, e''') + | _ -> fail_typ2 env e'.at phrase t1 t2 "" ); ] - | _, Il.VariantT [mixop2, (qs2, t21, _), _] -> + | _, (Il.VariantT [mixop2, (qs2, tC2, _), _], NoDots) -> (* A ConT payload can be cast to the ConT *) - let* t211 = match ts with [t211] -> Ok t211 | _ -> - fail_typ2 env e'.at phrase t1 t2 "" in - let* qs, e1' = cast_exp phrase env e' t1 t211 in -(*TODO*) - Ok (qs2 @ qs, Il.CaseE (mixop2, Il.TupE [e1'] $$ e'.at % t')) + let qs2', s2 = Il.Fresh.refresh_quants qs2 in + let tC2' = Il.Subst.subst_typ s2 tC2 in + let as2' = il_args_of_params qs2' in + (match expand env tC2' with + | Il.TupT [_, t21'] -> + let* qs, e1' = cast_exp phrase env e' t1' t21' in + Ok (qs2' @ qs, Il.CaseE (mixop2, as2', Il.TupE [e1'] $$ e'.at % tC2')) + | _ -> fail_typ2 env e'.at phrase t1 t2 "" + ) | (Il.VariantT tcs1, dots1), (Il.VariantT tcs2, dots2) -> - if dots2 = Dots then + if dots1 = Dots || dots2 = Dots then error e'.at "used variant type is only partially defined at this point"; let* () = + (* Shallow breadth subtyping on variants *) match - iter_attempt (fun (atom, (t1', _prems1), _) -> - let* t2', _prems2 = attempt (find_case cases2 atom t1.at) t2 in - (* Shallow subtyping on variants *) - let env' = to_eval_env env in - if Eq.eq_typ (Eval.reduce_typ env' t1') (Eval.reduce_typ env' t2') then Ok () else - fail_atom e'.at atom t1 "type mismatch for case" - ) cases1 + iter_attempt (fun (mixop1, (qs1, tC1, _prems1), _) -> + match Mixop.head mixop1 with + | None -> fail_silent + | Some atom -> + let* mixop2, (qs2, tC2, _prems2), _ = + attempt (find_case tcs2 atom t1.at) t2 in + (* TODO(2, rossberg): this should take alpha-equivalence into account *) + if Mixop.eq mixop1 mixop2 + && Il.Eq.(eq_list eq_param qs1 qs2) + && equiv_typ env tC1 tC2 then + Ok () + else + fail_atom e'.at atom t1 "type mismatch for case" + ) tcs1 with | Ok () -> Ok () | Fail (Trace (_, msg, _) :: _) -> fail_typ2 env e'.at phrase t1 t2 (", " ^ msg) | Fail [] -> assert false in - let t11 = expand env t1 $ t1.at in - let t21 = expand env t2 $ t2.at in - let t11' = elab_typ env (expand env t1) in - let t21' = elab_typ env (expand env t2) in - let* qs1, e'' = cast_exp phrase env e' t1 t11 in - let e''' = Il.SubE (e'', t11', t21') in - let* qs2, e'''' = cast_exp' phrase env (e''' $$ e'.at % t21') t21 t2 in - Ok (qs1 @ qs2, e'''') + Ok ([], Il.SubE (e', t1', t2')) | _, _ -> fail_typ2 env e'.at phrase t1 t2 "" @@ -2146,44 +2120,45 @@ Printf.printf "[4] %s => %s\n%!" (Debug.el_typ t11) (Debug.il_typ t11'); *) -and elab_iterexp env iter : Il.quant list * Il.iterexp = - let qs, iter' = elab_iter env iter in - (qs, (iter', [])) +and elab_iterexp env (it : iter) : Il.quant list * Il.iterexp = + let qs, it' = elab_iter env it in + (qs, (it', [])) (* Premises *) -and elab_prem env prem : Il.quant list * Il.prem list = - match prem.it with +and elab_prem env (pr : prem) : Il.quant list * Il.prem list = + match pr.it with | VarPr (id, t) -> - env.vars <- bind "variable" env.vars id t; + let t' = elab_typ env t in + env.vars <- bind "variable" env.vars id t'; [], [] | RulePr (id, e) -> - let mixop, not, _ = find "relation" env.rels id in + let mixop, not, _, _ = find "relation" env.rels id in let qs, es', _s = checkpoint (elab_exp_notation' env id e not) in - qs, [Il.RulePr (id, mixop, tup_exp' es' e.at) $ prem.at] + qs, [Il.RulePr (id, mixop, tup_exp' es' e.at) $ pr.at] | IfPr e -> - let qs, e' = checkpoint (elab_exp env e (BoolT $ e.at)) in - qs, [Il.IfPr e' $ prem.at] + let qs, e' = checkpoint (elab_exp env e (Il.BoolT $ e.at)) in + qs, [Il.IfPr e' $ pr.at] | ElsePr -> - [], [Il.ElsePr $ prem.at] + [], [Il.ElsePr $ pr.at] | IterPr ({it = VarPr _; at; _}, _iter) -> error at "misplaced variable premise" - | IterPr (prem1, iter) -> + | IterPr (pr1, iter) -> let qs, iter' = elab_iterexp env iter in - let qs1, prems1' = elab_prem env prem1 in - assert (List.length prems1' = 1); - qs @ qs1, [Il.IterPr (List.hd prems1', iter') $ prem.at] + let qs1, prs1' = elab_prem env pr1 in + assert (List.length prs1' = 1); + qs @ qs1, [Il.IterPr (List.hd prs1', iter') $ pr.at] (* Grammars *) -and infer_sym env g : (Il.quant list * Il.sym * Il.typ) attempt = +and infer_sym env (g : sym) : (Il.quant list * Il.sym * Il.typ) attempt = Debug.(log_at "el.infer_sym" g.at (fun _ -> fmt "%s" (el_sym g)) (function Ok (qs, g', t) -> fmt "%s %s : %s" (il_quants qs) (il_sym g') (il_typ t) | _ -> "fail") ) @@ fun _ -> - nest g.at (TupT [] $ g.at) ( + nest g.at (Il.TupT [] $ g.at) ( match g.it with | VarG (x, as_) -> let ps, t, _gram, _prods' = find "grammar" env.grams x in @@ -2278,15 +2253,15 @@ and infer_sym env g : (Il.quant list * Il.sym * Il.typ) attempt = | UnparenG _ -> error g.at "misplaced token unparenthesize" ) -and infer_sym_list env es : (Il.quant list * Il.sym list * Il.typ list) attempt = - match es with +and infer_sym_list env (gs : sym list) : (Il.quant list * Il.sym list * Il.typ list) attempt = + match gs with | [] -> Ok ([], [], []) | g::gs -> let* qs1, g', t = infer_sym env g in let* qs2, gs', ts = infer_sym_list env gs in Ok (qs1 @ qs2, g'::gs', t::ts) -and elab_sym env g t : (Il.quant list * Il.sym) attempt = +and elab_sym env (g : sym) (t : Il.typ) : (Il.quant list * Il.sym) attempt = Debug.(log_at "el.elab_sym" g.at (fun _ -> fmt "%s : %s" (el_sym g) (il_typ t)) (function Ok (qs, g') -> fmt "%s%s" (il_quants qs) (il_sym g') | _ -> "fail") @@ -2313,15 +2288,15 @@ and elab_sym env g t : (Il.quant list * Il.sym) attempt = Ok (qs1 @ qs2, g'') ) -and elab_sym_list env es t : (Il.quant list * Il.sym list) attempt = - match es with +and elab_sym_list env (gs : sym list) (t : Il.typ) : (Il.quant list * Il.sym list) attempt = + match gs with | [] -> Ok ([], []) | g::gs -> let* qs1, g' = elab_sym env g t in let* qs2, gs' = elab_sym_list env gs t in Ok (qs1 @ qs2, g'::gs') -and cast_sym env g' t1 t2 : (Il.quant list * Il.sym) attempt = +and cast_sym env (g' : Il.sym) t1 t2 : (Il.quant list * Il.sym) attempt = Debug.(log_at "el.elab_cast_sym" g'.at (fun _ -> fmt "%s : %s :> %s" (il_sym g') (il_typ t1) (il_typ t2)) (function Ok (qs, g'') -> fmt "%s%s" (il_quants qs) (il_sym g'') | _ -> "fail") @@ -2335,9 +2310,9 @@ and cast_sym env g' t1 t2 : (Il.quant list * Il.sym) attempt = fail_typ2 env g'.at "symbol" t1 t2 "" ) -and elab_prod env prod t : Il.prod list = +and elab_prod env (prod : prod) (t : Il.typ) : Il.prod list = Debug.(log_in_at "el.elab_prod" prod.at - (fun _ -> fmt "%s : %s" (el_prod prod) (el_typ t)) + (fun _ -> fmt "%s : %s" (el_prod prod) (il_typ t)) ); match prod.it with | SynthP (g, e, prems) -> @@ -2358,7 +2333,7 @@ and elab_prod env prod t : Il.prod list = Il.TupE [ e'; Il.TupE [] $$ e.at % t_unit ] $$ e.at % (Il.TupT ["_" $ e.at, e'.note; "_" $ e.at, t_unit] $ e.at), 1 - ) $$ e.at % t'_unit) + ) $$ e.at % t_unit) else elab_exp env' e t ) @@ -2448,7 +2423,7 @@ and elab_prod env prod t : Il.prod list = prod' :: elab_prod env Subst.(subst_prod pm_snd (Iter.clone_prod prod)) t *) -and elab_gram env gram t : Il.prod list = +and elab_gram env (gram : gram) (t : Il.typ) : Il.prod list = let (_dots1, prods, _dots2) = gram.it in concat_map_filter_nl_list (fun prod -> elab_prod env prod t) prods @@ -2464,21 +2439,21 @@ and make_quants_iter_arg env free dims : Il.quant list ref * (module Iter.Arg) = let acc = ref [] let visit_typid id = - if Free.Set.mem id.it !left.typid then ( + if Il.Free.Set.mem id.it !left.typid then ( acc := !acc @ [Il.TypP id $ id.at]; - left := Free.{!left with typid = Set.remove id.it !left.typid}; + left := Il.Free.{!left with typid = Set.remove id.it !left.typid}; ) let visit_varid id = - if Free.(Set.mem id.it !left.varid) && Dim.Env.mem id.it dims then ( + if Il.Free.(Set.mem id.it !left.varid) && Dim.Env.mem id.it dims then ( let t = try find "variable" env.vars id with Error _ -> find "variable" env.gvars (strip_var_suffix id) in - let fwd = Free.(inter (free_typ t) !left) in - if fwd <> Free.empty then + let fwd = Il.Free.(inter (free_typ t) !left) in + if fwd <> Il.Free.empty then error id.at ("the type of `" ^ id.it ^ "` depends on " ^ - ( Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> + ( Il.Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> List.map (fun id -> "`" ^ id ^ "`") |> String.concat ", " ) ^ ", which only occur(s) to its right; try to reorder parameters or premises"); @@ -2489,20 +2464,20 @@ and make_quants_iter_arg env free dims : Il.quant list ref * (module Iter.Arg) = let t' = List.fold_left (fun t iter -> Il.IterT (t, iter) $ t.at - ) (elab_typ env t) ctx' + ) t ctx' in acc := !acc @ [Il.ExpP (Dim.annot_varid id ctx', t') $ id.at]; - left := Free.{!left with varid = Set.remove id.it !left.varid}; + left := Il.Free.{!left with varid = Set.remove id.it !left.varid}; ) let visit_gramid id = - if Free.(Set.mem id.it !left.gramid) then ( + if Il.Free.(Set.mem id.it !left.gramid) then ( let ps, t, _gram, _prods' = find "grammar" env.grams id in - let free' = Free.(union (free_params ps) (diff (free_typ t) (bound_params ps))) in - let fwd = Free.(inter free' !left) in - if fwd <> Free.empty then + let free' = Il.Free.(union (free_params ps) (diff (free_typ t) (bound_params ps))) in + let fwd = Il.Free.(inter free' !left) in + if fwd <> Il.Free.empty then error id.at ("the type of `" ^ id.it ^ "` depends on " ^ - ( Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> + ( Il.Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> List.map (fun id -> "`" ^ id ^ "`") |> String.concat ", " ) ^ ", which only occur(s) to its right; try to reorder parameters or premises"); @@ -2510,84 +2485,97 @@ and make_quants_iter_arg env free dims : Il.quant list ref * (module Iter.Arg) = ) let visit_defid id = - if Free.Set.mem id.it !left.defid then ( + if Il.Free.Set.mem id.it !left.defid then ( let ps, t, _ = find "definition" env.defs id in - let env' = local_env env in - let ps' = elab_params env' ps in - let t' = elab_typ env' t in - let free' = Free.(union (free_params ps) (diff (free_typ t) (bound_params ps))) in - let fwd = Free.(inter free' !left) in - if fwd <> Free.empty then + let free' = Il.Free.(union (free_params ps) (diff (free_typ t) (bound_params ps))) in + let fwd = Il.Free.(inter free' !left) in + if fwd <> Il.Free.empty then error id.at ("the type of `" ^ (spaceid "definition" id).it ^ "` depends on " ^ - ( Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> + ( Il.Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> List.map (fun id -> "`" ^ id ^ "`") |> String.concat ", " ) ^ ", which only occur(s) to its right; try to reorder parameters or premises"); - acc := !acc @ [Il.DefP (id, ps', t') $ id.at]; - left := Free.{!left with defid = Set.remove id.it !left.defid}; + acc := !acc @ [Il.DefP (id, ps, t) $ id.at]; + left := Il.Free.{!left with defid = Set.remove id.it !left.defid}; ) end in Arg.acc, (module Arg) -and elab_arg in_lhs env a p s : Il.quant list * Il.arg list * Subst.subst = +and elab_arg in_lhs env (a : arg) (p : Il.param) s : Il.quant list * Il.arg list * Il.Subst.subst = (match !(a.it), p.it with (* HACK: handle shorthands *) - | ExpA e, TypP _ -> a.it := TypA (typ_of_exp e) - | ExpA e, GramP _ -> a.it := GramA (sym_of_exp e) - | ExpA {it = CallE (id, []); _}, DefP _ -> a.it := DefA id + | ExpA e, Il.TypP _ -> a.it := TypA (typ_of_exp e) + | ExpA e, Il.GramP _ -> a.it := GramA (sym_of_exp e) + | ExpA {it = CallE (id, []); _}, Il.DefP _ -> a.it := DefA id | _, _ -> () ); - match !(a.it), (Subst.subst_param s p).it with - | ExpA e, ExpP (id, t) -> + match !(a.it), (Il.Subst.subst_param s p).it with + | ExpA e, Il.ExpP (x, t) -> let qs, e' = checkpoint (elab_exp env e t) in - qs, [Il.ExpA e' $ a.at], Subst.add_varid s id e - | TypA ({it = VarT (id', []); _} as t), TypP id when in_lhs = `Lhs -> - let id'' = strip_var_suffix id' in + qs, [Il.ExpA e' $ a.at], Il.Subst.add_varid s x e' + | TypA {it = VarT (x', []); _}, Il.TypP x when in_lhs = `Lhs -> + let x'' = strip_var_suffix x' in let is_prim = - match (Convert.typ_of_varid id'').it with + match (Convert.typ_of_varid x'').it with | VarT _ -> false | _ -> true in - env.typs <- bind "syntax type" env.typs id'' ([], Opaque); + let t' = Il.VarT (x'', []) $ x''.at in + env.typs <- bind "syntax type" env.typs x'' ([], Opaque); if not is_prim then - env.gvars <- bind "variable" env.gvars (strip_var_sub id'') (VarT (id'', []) $ id''.at); - [], [Il.TypA (Il.VarT (id'', []) $ t.at) $ a.at], Subst.add_typid s id t - | TypA t, TypP _ when in_lhs = `Lhs -> + env.gvars <- bind "variable" env.gvars (strip_var_sub x'') t'; + [], [Il.TypA t' $ a.at], Il.Subst.add_typid s x t' + | TypA t, Il.TypP _ when in_lhs = `Lhs -> error t.at "misplaced syntax type" - | TypA t, TypP id -> + | TypA t, Il.TypP x -> let t' = elab_typ env t in - [], [Il.TypA t' $ a.at], Subst.add_typid s id t - | GramA g, GramP _ when in_lhs = `Lhs -> + [], [Il.TypA t' $ a.at], Il.Subst.add_typid s x t' + | GramA g, Il.GramP _ when in_lhs = `Lhs -> error g.at "misplaced grammar symbol" - | GramA g, GramP (id', t) -> + | GramA g, Il.GramP (x', [], t) -> let qs, g', t' = checkpoint (infer_sym env g) in let s' = subst_implicit env s t t' in - if not (equiv_typ env t' (Subst.subst_typ s' t)) then + if not (equiv_typ env t' (Il.Subst.subst_typ s' t)) then error_typ2 env a.at "argument" t' t ""; - let as' = List.map (fun (_id, t) -> Il.TypA (elab_typ env t) $ t.at) Subst.(Map.bindings s'.typid) in - qs, as' @ [Il.GramA g' $ a.at], Subst.add_gramid s' id' g - | DefA id, DefP (id', ps', t') when in_lhs = `Lhs -> - env.defs <- bind "definition" env.defs id (ps', t', []); - [], [Il.DefA id $ a.at], Subst.add_defid s id' id - | DefA id, DefP (id', ps', t') -> - let ps, t, _ = find "definition" env.defs id in - if not (Eval.equiv_functyp (to_eval_env env) (ps, t) (ps', t')) then + let as' = List.map (fun (_x, t) -> Il.TypA t $ t.at) Il.Subst.(Map.bindings s'.typid) in + qs, as' @ [Il.GramA g' $ a.at], Il.Subst.add_gramid s' x' g' + | GramA g, Il.GramP (x', ps', t') -> + (match g.it with + | VarG (x, []) -> + let ps, t, _ = find "grammar" env.defs x in + if not (Il.Eval.equiv_functyp (to_il_env env) (ps, t) (ps', t')) then + error a.at ("type mismatch in grammar argument, expected `" ^ + (spaceid "grammar" x').it ^ Il.Print.(string_of_params ps' ^ " : " ^ typ_string env t') ^ + "` but got `" ^ + (spaceid "grammar" x).it ^ Il.Print.(string_of_params ps ^ " : " ^ typ_string env t ^ "`") + ); + let g' = Il.VarG (x, []) $ a.at in + [], [Il.GramA g' $ a.at], Il.Subst.add_gramid s x g' + | _ -> + error g.at "grammar identifier expected for paramaterised grammar parameter" + ) + | DefA x, Il.DefP (x', ps', t') when in_lhs = `Lhs -> + env.defs <- bind "definition" env.defs x (ps', t', []); + [], [Il.DefA x $ a.at], Il.Subst.add_defid s x' x + | DefA x, Il.DefP (x', ps', t') -> + let ps, t, _ = find "definition" env.defs x in + if not (Il.Eval.equiv_functyp (to_il_env env) (ps, t) (ps', t')) then error a.at ("type mismatch in function argument, expected `" ^ - (spaceid "definition" id').it ^ Print.(string_of_params ps' ^ " : " ^ string_of_typ ~short:true t') ^ + (spaceid "definition" x').it ^ Il.Print.(string_of_params ps' ^ " : " ^ typ_string env t') ^ "` but got `" ^ - (spaceid "definition" id).it ^ Print.(string_of_params ps ^ " : " ^ string_of_typ ~short:true t ^ "`") + (spaceid "definition" x).it ^ Il.Print.(string_of_params ps ^ " : " ^ typ_string env t ^ "`") ); - [], [Il.DefA id $ a.at], Subst.add_defid s id id' + [], [Il.DefA x $ a.at], Il.Subst.add_defid s x x' | _, _ -> error a.at "sort mismatch for argument" -and elab_args in_lhs env as_ ps at : Il.quant list * Il.arg list * Il.Subst.subst = +and elab_args in_lhs env (as_ : arg list) (ps : Il.param list) at : Il.quant list * Il.arg list * Il.Subst.subst = Debug.(log_at "el.elab_args" at - (fun _ -> fmt "(%s) : (%s)" (list el_arg as_) (list el_param ps)) + (fun _ -> fmt "(%s) : (%s)" (list el_arg as_) (list il_param ps)) (fun (qs, as', _) -> fmt "%s(%s)" (il_quants qs) (list il_arg as')) ) @@ fun _ -> - elab_args' in_lhs env as_ ps [] [] Subst.empty at + elab_args' in_lhs env as_ ps [] [] Il.Subst.empty at -and elab_args' in_lhs env as_ ps qs as' s at : Il.quant list * Il.arg list * Il.Subst.subst = +and elab_args' in_lhs env (as_ : arg list) (ps : Il.param list) qs as' s at : Il.quant list * Il.arg list * Il.Subst.subst = match as_, ps with | [], [] -> qs, List.concat (List.rev as'), s | a::_, [] -> error a.at "too many arguments" @@ -2597,77 +2585,79 @@ and elab_args' in_lhs env as_ ps qs as' s at : Il.quant list * Il.arg list * Il. elab_args' in_lhs env as1 ps1 (qs @ qs') (a'::as') s' at and subst_implicit env s t t' : Il.Subst.subst = - let free = Free.(Set.filter (fun id -> not (Map.mem id env.typs)) (free_typ t).typid) in + let free = Il.Free.(Set.filter (fun x -> not (Map.mem x env.typs)) (free_typ t).typid) in let rec inst s t t' = match t.it, t'.it with - | VarT (id, []), _ - when Free.Set.mem id.it free && not (Subst.mem_typid s id) -> - Subst.add_typid s id t' - | ParenT t1, _ -> inst s t1 t' - | _, ParenT t1' -> inst s t t1' - | TupT (t1::ts), TupT (t1'::ts') -> - inst (inst s t1 t1') (TupT ts $ t.at) (TupT ts' $ t'.at) - | IterT (t1, _), IterT (t1', _) -> inst s t1 t1' + | Il.VarT (x, []), _ + when Il.Free.Set.mem x.it free && not (Il.Subst.mem_typid s x) -> + Il.Subst.add_typid s x t' + | Il.TupT ((x, t1)::ts), Il.TupT ((x', t1')::ts') -> + let s' = Il.Subst.add_varid (inst s t1 t1') x' (Il.VarE x $$ x.at % t1) in + inst s' (Il.TupT ts $ t.at) (Il.TupT ts' $ t'.at) + | Il.IterT (t1, _), Il.IterT (t1', _) -> inst s t1 t1' | _ -> s in inst s t t' -and elab_param env p : Il.param list = +and elab_param env (p : param) : Il.param list = match p.it with - | ExpP (id, t) -> + | ExpP (x, t) -> let t' = elab_typ env t in (* If a variable isn't globally declared, this is a local declaration. *) - let id' = strip_var_suffix id in - if bound env.gvars id' then ( - let t2 = find "" env.gvars id' in - if not (sub_typ env t t2) then - error_typ2 env id.at "local variable" t t2 ", shadowing with different type" + let x' = strip_var_suffix x in + if bound env.gvars x' then ( + let t2 = find "" env.gvars x' in + if not (sub_typ env t' t2) then + error_typ2 env x.at "local variable" t' t2 ", shadowing with different type" ); (* Shadowing is allowed, but only with consistent type. *) - if bound env.vars id' then ( - let t2 = find "" env.vars id' in - if not (equiv_typ env t t2) then - error_typ2 env id.at "local variable" t t2 ", shadowing with different type" + if bound env.vars x' then ( + let t2 = find "" env.vars x' in + if not (equiv_typ env t' t2) then + error_typ2 env x.at "local variable" t' t2 ", shadowing with different type" ) else - env.vars <- bind "variable" env.vars id t; - [Il.ExpP (id, t') $ p.at] - | TypP id -> - env.typs <- bind "syntax type" env.typs id ([], Opaque); - env.gvars <- bind "variable" env.gvars (strip_var_sub id) (VarT (id, []) $ id.at); - [Il.TypP id $ p.at] - | GramP (id, t) -> + env.vars <- bind "variable" env.vars x t'; + [Il.ExpP (x, t') $ p.at] + | TypP x -> + env.typs <- bind "syntax type" env.typs x ([], Opaque); + env.gvars <- bind "variable" env.gvars (strip_var_sub x) (Il.VarT (x, []) $ x.at); + [Il.TypP x $ p.at] + | GramP (x, ps, t) -> + let env' = local_env env in + let ps' = elab_params env' ps in (* Treat unbound type identifiers in t as implicitly bound. *) let free = Free.free_typ t in - env.grams <- bind "grammar" env.grams id ([], t, None, []); - let ps' = - Free.Set.fold (fun id' ps' -> - if Map.mem id' env.typs then ps' else ( - let id = id' $ t.at in - if id.it <> (strip_var_suffix id).it then - error_id id "invalid identifer suffix in binding position"; - env.typs <- bind "syntax type" env.typs id ([], Opaque); - env.gvars <- bind "variable" env.gvars (strip_var_sub id) (VarT (id, []) $ id.at); - (Il.TypP id $ id.at) :: ps' + let ps_implicit' = + Free.Set.fold (fun x' ps' -> + if Map.mem x' env'.typs then ps' else ( + let x = x' $ t.at in + if x.it <> (strip_var_suffix x).it then + error_id x "invalid identifer suffix in binding position"; + env'.typs <- bind "syntax type" env.typs x ([], Opaque); + env.typs <- bind "syntax type" env.typs x ([], Opaque); + env.gvars <- bind "variable" env.gvars (strip_var_sub x) (Il.VarT (x, []) $ x.at); + (Il.TypP x $ x.at) :: ps' ) ) free.typid [] in - let t' = elab_typ env t in - ps' @ [Il.GramP (id, t') $ p.at] - | DefP (id, ps, t) -> + let t' = elab_typ env' t in + env.grams <- bind "grammar" env.grams x ([], t', None, []); + ps_implicit' @ [Il.GramP (x, ps', t') $ p.at] + | DefP (x, ps, t) -> let env' = local_env env in let ps' = elab_params env' ps in let t' = elab_typ env' t in - env.defs <- bind "definition" env.defs id (ps, t, []); - [Il.DefP (id, ps', t') $ p.at] + env.defs <- bind "definition" env.defs x (ps', t', []); + [Il.DefP (x, ps', t') $ p.at] -and elab_params env ps : Il.param list = +and elab_params env (ps : param list) : Il.param list = List.concat_map (elab_param env) ps (* To allow optional atoms such as `MUT?`, preprocess type * definitions to insert implicit type definition * `syntax MUT hint(show MUT) = MUT` and replace atom with type id. *) -and infer_typ_notation env is_con t : typ = +and infer_typ_notation env is_con (t : typ) : typ = (match t.it with | VarT _ | BoolT | NumT _ | TextT | ParenT _ | TupT _ | RangeT _ -> t.it | AtomT _ -> is_con := true; t.it @@ -2701,64 +2691,65 @@ and infer_typ_notation env is_con t : typ = | IterT (t1, iter) -> IterT (infer_typ_notation env is_con t1, iter) ) $ t.at -let infer_typ_definition _env t : kind = +let infer_typ_definition _env (t : typ) : kind = match t.it with | StrT _ | CaseT _ -> Opaque | ConT _ | RangeT _ -> Transp | _ -> Transp -let infer_typdef env d : def = +let infer_typdef env (d : def) : def = match d.it with - | FamD (id, ps, _hints) -> - let _ps' = elab_params (local_env env) ps in - env.typs <- bind "syntax type" env.typs id (ps, Family []); + | FamD (x, ps, _hints) -> + let ps' = elab_params (local_env env) ps in + env.typs <- bind "syntax type" env.typs x (ps', Family []); if ps = [] then (* only types without parameters double as variables *) - env.gvars <- bind "variable" env.gvars (strip_var_sub id) (VarT (id, []) $ id.at); + env.gvars <- bind "variable" env.gvars (strip_var_sub x) (Il.VarT (x, []) $ x.at); d - | TypD (id1, id2, as_, t, hints) -> + | TypD (x1, x2, as_, t, hints) -> let is_con = ref false in let t = infer_typ_notation env is_con t in - if bound env.typs id1 then ( - let _ps, k = find "syntax type" env.typs id1 in + if bound env.typs x1 then ( + let _ps, k = find "syntax type" env.typs x1 in let extension = match t.it with | CaseT (Dots, _, _, _) | StrT (Dots, _, _, _) -> true | _ -> false in if k <> Family [] && not extension then (* force error *) - ignore (env.typs <- bind "syntax type" env.typs id1 ([], Family [])) + ignore (env.typs <- bind "syntax type" env.typs x1 ([], Family [])) ) else ( let ps = List.map Convert.param_of_arg as_ in let env' = local_env env in - let _ps' = elab_params env' ps in + let ps' = elab_params env' ps in let k = infer_typ_definition env' t in - env.typs <- bind "syntax type" env.typs id1 (ps, k); + env.typs <- bind "syntax type" env.typs x1 (ps', k); if ps = [] then (* only types without parameters double as variables *) - env.gvars <- bind "variable" env.gvars (strip_var_sub id1) (VarT (id1, []) $ id1.at); + env.gvars <- bind "variable" env.gvars (strip_var_sub x1) (Il.VarT (x1, []) $ x1.at); ); - TypD (id1, id2, as_, t, hints) $ d.at - | VarD (id, t, _hints) -> + TypD (x1, x2, as_, t, hints) $ d.at + | VarD (x, t, _hints) -> + let t' = elab_typ env t in (* This is to ensure that we get rebind errors in syntactic order. *) - env.gvars <- bind "variable" env.gvars id t; + env.gvars <- bind "variable" env.gvars x t'; d | _ -> d -let infer_gramdef env d = +let infer_gramdef env (d : def) = match d.it with - | GramD (id1, _id2, ps, t, _gram, _hints) -> + | GramD (x1, _x2, ps, t, _gram, _hints) -> (* Printf.eprintf "[el.infer_gramdef %s]\n%!" (string_of_region d.at); *) - if not (bound env.grams id1) then ( + if not (bound env.grams x1) then ( let env' = local_env env in - let _ps' = elab_params env' ps in - let _t' = elab_typ env' t in - env.grams <- bind "grammar" env.grams id1 (ps, t, None, []); + let ps' = elab_params env' ps in + let t' = elab_typ env' t in + env.grams <- bind "grammar" env.grams x1 (ps', t', None, []); ) | _ -> () -let elab_hintdef _env hd : Il.def list = +let elab_hintdef _env (hd : hintdef) : Il.def list = match hd.it with | TypH (id1, _id2, hints) -> if hints = [] then [] else @@ -2775,7 +2766,7 @@ let elab_hintdef _env hd : Il.def list = [] -let infer_quants env env' dims d : Il.quant list = +let infer_quants env env' dims (d : def) : Il.quant list = Debug.(log_in_at "el.infer_quants" d.at (fun _ -> Map.fold (fun id _ ids -> @@ -2793,153 +2784,130 @@ let infer_quants env env' dims d : Il.quant list = Acc.def d; !acc_qs -let infer_no_quants env dims d = +let infer_no_quants env dims (d : def) = let qs = infer_quants env env dims d in assert (qs = []) -let rec elab_def env d : Il.def list = +let rec elab_def env (d : def) : Il.def list = Debug.(log_in "el.elab_def" line); Debug.(log_in_at "el.elab_def" d.at (fun _ -> el_def d)); match d.it with - | FamD (id, ps, hints) -> + | FamD (x, ps, hints) -> env.pm <- false; let ps' = elab_params (local_env env) ps in if env.pm then error d.at "misplaced +- or -+ operator in syntax type declaration"; let dims = Dim.check_def d in infer_no_quants env dims d; - env.typs <- rebind "syntax type" env.typs id (ps, Family []); - [Il.TypD (id, ps', []) $ d.at] - @ elab_hintdef env (TypH (id, "" $ id.at, hints) $ d.at) - | TypD (id1, id2, as_, t, hints) -> + env.typs <- rebind "syntax type" env.typs x (ps', Family []); + [Il.TypD (x, ps', []) $ d.at] + @ elab_hintdef env (TypH (x, "" $ x.at, hints) $ d.at) + | TypD (x1, x2, as_, t, hints) -> let env' = local_env env in env'.pm <- false; - let ps1, k1 = find "syntax type" env.typs id1 in - let qs1, as', _s = elab_args `Lhs env' as_ ps1 d.at in - let dt' = elab_typ_definition env' id1 t in + let ps', k = find "syntax type" env.typs x1 in + let qs1, as', _s = elab_args `Lhs env' as_ ps' d.at in + let dots1, dt', dots2 = elab_typ_definition env' x1 t in let dims = Dim.check_def d in let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in let qs = infer_quants env env' dims d in let inst' = Il.InstD (qs @ qs1, List.map (Dim.annot_arg dims') as', dt') $ d.at in - let k1', closed = - match k1, t.it with - | Opaque, (CaseT (Dots, _, _, _) | StrT (Dots, _, _, _)) -> - error_id id1 "extension of not yet defined syntax type" - | Opaque, (CaseT (NoDots, _, _, dots2) | StrT (NoDots, _, _, dots2)) -> - Defined (t, [id2], dt'), dots2 = NoDots - | (Opaque | Transp), _ -> - Defined (t, [id2], dt'), true - | Defined ({it = CaseT (dots1, ts1, tcs1, Dots); at; _}, ids, _), - CaseT (Dots, ts2, tcs2, dots2) -> - let ps = List.map Convert.param_of_arg as_ in - if List.exists (fun id -> id.it = id2.it) ids then - error d.at ("duplicate syntax fragment name `" ^ id1.it ^ - (if id2.it = "" then "" else "/" ^ id2.it) ^ "`"); - if not Eq.(eq_list eq_param ps ps1) then - error d.at "syntax parameters differ from previous fragment"; - let t1 = CaseT (dots1, ts1 @ ts2, tcs1 @ tcs2, dots2) $ over_region [at; t.at] in - Defined (t1, id2::ids, dt'), dots2 = NoDots - | Defined ({it = StrT (dots1, ts1, tfs1, Dots); at; _}, ids, _), - StrT (Dots, ts2, tfs2, dots2) -> - let ps = List.map Convert.param_of_arg as_ in - if List.exists (fun id -> id.it = id2.it) ids then - error d.at ("duplicate syntax fragment name `" ^ id1.it ^ - (if id2.it = "" then "" else "/" ^ id2.it) ^ "`"); - if not Eq.(eq_list eq_param ps ps1) then - error d.at "syntax parameters differ from previous fragment"; - let t1 = StrT (dots1, ts1 @ ts2, tfs1 @ tfs2, dots2) $ over_region [at; t.at] in - Defined (t1, id2::ids, dt'), dots2 = NoDots - | Defined _, (CaseT (Dots, _, _, _) | StrT (Dots, _, _, _)) -> - error_id id1 "extension of non-extensible syntax type" - | Defined _, _ -> - error_id id1 "duplicate declaration for syntax type"; - | Family _, (CaseT (dots1, _, _, dots2) | StrT (dots1, _, _, dots2)) - when dots1 = Dots || dots2 = Dots -> - error_id id1 "syntax type family cases are not extensible" - | Family insts, _ -> - Family (insts @ [(as_, t, inst')]), false + let k', last = + match k with + | (Opaque | Transp) -> + if dots1 = Dots then + error_id x1 "extension of not yet defined syntax type"; + Defined (dt', [x2], dots2), dots2 = NoDots + | Defined (_, xs, dots) -> + if dots = NoDots then + error_id x1 "extension of non-extensible syntax type"; + if List.exists (fun x -> x.it = x2.it) xs then + error d.at ("duplicate syntax fragment name `" ^ x1.it ^ + (if x2.it = "" then "" else "/" ^ x2.it) ^ "`"); + Defined (dt', x2::xs, dots2), dots2 = NoDots + | Family insts -> + if dots1 = Dots || dots2 = Dots then + error_id x1 "syntax type family cases are not extensible"; + Family (insts @ [Il.InstD (qs1 @ qs, as', dt') $ d.at]), false in (* Printf.eprintf "[syntax %s] %s ~> %s\n%!" id1.it (string_of_typ t) (Il.Print.string_of_deftyp dt'); *) - env.typs <- rebind "syntax type" env.typs id1 (ps1, k1'); - (if not closed then [] else - let ps = List.map Convert.param_of_arg as_ in - let ps' = elab_params (local_env env) ps in - [Il.TypD (id1, ps', [inst']) $ d.at] - ) @ elab_hintdef env (TypH (id1, id2, hints) $ d.at) @ + env.typs <- rebind "syntax type" env.typs x1 (ps', k'); + (if not last then [] else [Il.TypD (x1, ps', [inst']) $ d.at]) + @ elab_hintdef env (TypH (x1, x2, hints) $ d.at) @ (if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d))) - | GramD (id1, id2, ps, t, gram, hints) -> + | GramD (x1, x2, ps, t, gram, hints) -> let env' = local_env env in env'.pm <- false; let ps' = elab_params env' ps in let t' = elab_typ env' t in if env'.pm then error d.at "misplaced +- or -+ operator in grammar"; - let prods' = List.map (fun pr -> id2, pr) (elab_gram env' gram t) in + let xprods2' = List.map (fun pr -> x2, pr) (elab_gram env' gram t') in let dims = Dim.check_def d in infer_no_quants env' dims d; - let ps1, t1, gram1_opt, prods1' = find "grammar" env.grams id1 in - let gram', last = - match gram1_opt, gram.it with - | None, (Dots, _, _) -> - error_id id1 "extension of not yet defined grammar" - | None, (_, _, dots2) -> - gram, dots2 = NoDots - | Some {it = (dots1, prods1, Dots); at; _}, (Dots, prods2, dots2) -> - if List.exists (fun (id, _) -> id.it = id2.it) prods1' then - error d.at ("duplicate grammar fragment name `" ^ id1.it ^ - (if id2.it = "" then "" else "/" ^ id2.it) ^ "`"); - if not Eq.(eq_list eq_param ps ps1) then + let ps1', t1', dots_opt, xprods1' = find "grammar" env.grams x1 in + let dots1, _, dots2 = gram.it in + let xprods' = + match dots_opt with + | None -> + if dots1 = Dots then + error_id x1 "extension of not yet defined grammar"; + xprods2' + | Some dots -> + if dots = NoDots then + error_id x1 "extension of non-extensible grammar"; + if List.exists (fun (x, _) -> x.it = x2.it) xprods1' then + error d.at ("duplicate grammar fragment name `" ^ x1.it ^ + (if x2.it = "" then "" else "/" ^ x2.it) ^ "`"); + if not Il.Eq.(eq_list eq_param ps' ps1') then error d.at "grammar parameters differ from previous fragment"; - if not (equiv_typ env' t t1) then - error_typ2 env d.at "grammar" t1 t " of previous fragment"; - (dots1, prods1 @ prods2, dots2) $ over_region [at; t.at], dots2 = NoDots - | Some _, (Dots, _, _) -> - error_id id1 "extension of non-extensible grammar" - | Some _, _ -> - error_id id1 "duplicate declaration for grammar"; + if not (equiv_typ env' t' t1') then + error_typ2 env d.at "grammar" t1' t' " of previous fragment"; + xprods1' @ xprods2' in - env.grams <- rebind "grammar" env.grams id1 (ps, t, Some gram', prods1' @ prods'); + env.grams <- rebind "grammar" env.grams x1 (ps', t', Some dots2, xprods'); (* Only add last fragment to IL defs, so that populate finds it only once *) - (if last then [Il.GramD (id1, ps', t', []) $ d.at] else []) - @ elab_hintdef env (GramH (id1, id2, hints) $ d.at) - | RelD (id, t, hints) -> + (if dots2 = Dots then [] else [Il.GramD (x1, ps', t', []) $ d.at]) + @ elab_hintdef env (GramH (x1, x2, hints) $ d.at) + | RelD (x, t, hints) -> env.pm <- false; - let mixop, ts', _ts = elab_typ_notation env id t in + let mixop, ts' = elab_typ_notation env x t in + let t' = tup_typ' ts' t.at in + let not = Mixop.apply mixop ts' in if env.pm then error d.at "misplaced +- or -+ operator in relation"; let dims = Dim.check_def d in infer_no_quants env dims d; - env.rels <- bind "relation" env.rels id (t, []); - [Il.RelD (id, mixop, tup_typ' ts' t.at, []) $ d.at] - @ elab_hintdef env (RelH (id, hints) $ d.at) - | RuleD (id1, id2, e, prems) -> + env.rels <- bind "relation" env.rels x (mixop, not, t', []); + [Il.RelD (x, mixop, t', []) $ d.at] + @ elab_hintdef env (RelH (x, hints) $ d.at) + | RuleD (x1, x2, e, prems) -> let env' = local_env env in env'.pm <- false; let dims = Dim.check_def d in let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let t, rules' = find "relation" env.rels id1 in - if List.exists (fun (id, _) -> id.it = id2.it) rules' then - error d.at ("duplicate rule name `" ^ id1.it ^ - (if id2.it = "" then "" else "/" ^ id2.it) ^ "`"); - let mixop, _, _ = elab_typ_notation env id1 t in - let qs1, es', _ = checkpoint (elab_exp_notation' env' id1 e t) in + let mixop, not', t', rules' = find "relation" env.rels x1 in + if List.exists (fun (x, _) -> x.it = x2.it) rules' then + error d.at ("duplicate rule name `" ^ x1.it ^ + (if x2.it = "" then "" else "/" ^ x2.it) ^ "`"); + let qs1, es', _ = checkpoint (elab_exp_notation' env' x1 e not') in let es' = List.map (Dim.annot_exp dims') es' in let qss2, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in let qs = infer_quants env env' dims d in - let rule' = Il.RuleD (id2, qs @ qs1 @ List.concat qss2, mixop, tup_exp' es' e.at, prems') $ d.at in - env.rels <- rebind "relation" env.rels id1 (t, rules' @ [id2, rule']); + let rule' = Il.RuleD (x2, qs @ qs1 @ List.concat qss2, mixop, tup_exp' es' e.at, prems') $ d.at in + env.rels <- rebind "relation" env.rels x1 (mixop, not', t', rules' @ [x2, rule']); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) - | VarD (id, t, _hints) -> + | VarD (x, t, _hints) -> env.pm <- false; - let _t' = elab_typ env t in + let t' = elab_typ env t in if env.pm then error d.at "misplaced +- or -+ operator in variable declaration"; let dims = Dim.check_def d in infer_no_quants env dims d; - env.gvars <- rebind "variable" env.gvars id t; + env.gvars <- rebind "variable" env.gvars x t'; [] - | DecD (id, ps, t, hints) -> + | DecD (x, ps, t, hints) -> let env' = local_env env in env'.pm <- false; let ps' = elab_params env' ps in @@ -2947,24 +2915,24 @@ let rec elab_def env d : Il.def list = if env'.pm then error d.at "misplaced +- or -+ operator in declaration"; let dims = Dim.check_def d in infer_no_quants env dims d; - env.defs <- bind "definition" env.defs id (ps, t, []); - [Il.DecD (id, ps', t', []) $ d.at] - @ elab_hintdef env (DecH (id, hints) $ d.at) - | DefD (id, as_, e, prems) -> + env.defs <- bind "definition" env.defs x (ps', t', []); + [Il.DecD (x, ps', t', []) $ d.at] + @ elab_hintdef env (DecH (x, hints) $ d.at) + | DefD (x, as_, e, prems) -> let env' = local_env env in env'.pm <- false; let dims = Dim.check_def d in let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let ps, t, clauses' = find "definition" env.defs id in + let ps, t, clauses' = find "definition" env.defs x in let qs1, as', s = elab_args `Lhs env' as_ ps d.at in let as' = List.map (Dim.annot_arg dims') as' in let qss2, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in - let qs3, e' = checkpoint (elab_exp env' e (Subst.subst_typ s t)) in + let qs3, e' = checkpoint (elab_exp env' e (Il.Subst.subst_typ s t)) in let e' = Dim.annot_exp dims' e' in let qs = infer_quants env env' dims d in let clause' = Il.DefD (qs @ qs1 @ List.concat qss2 @ qs3, as', e', prems') $ d.at in - env.defs <- rebind "definition" env.defs id (ps, t, clauses' @ [(d, clause')]); + env.defs <- rebind "definition" env.defs x (ps, t, clauses' @ [(d, clause')]); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) | SepD -> [] @@ -2973,52 +2941,49 @@ let rec elab_def env d : Il.def list = let check_dots env = - Map.iter (fun id (at, (_ps, k)) -> + Map.iter (fun x (at, (_ps, k)) -> match k with | Transp | Opaque -> assert false - | Defined ({it = (CaseT (_, _, _, Dots) | StrT (_, _, _, Dots)); _}, _, _) -> - error_id (id $ at) "missing final extension to syntax type" + | Defined (_, _, Dots) -> + error_id (x $ at) "missing final extension to syntax type" | Family [] -> - error_id (id $ at) "no defined cases for syntax type family" + error_id (x $ at) "no defined cases for syntax type family" | Defined _ | Family _ -> () ) env.typs; - Map.iter (fun id (at, (_ps, _t, gram_opt, _prods')) -> + Map.iter (fun x (at, (_ps, _t, gram_opt, _prods')) -> match gram_opt with | None -> assert false - | Some {it = (_, _, Dots); _} -> - error_id (id $ at) "missing final extension to grammar" - | _ -> () + | Some Dots -> + error_id (x $ at) "missing final extension to grammar" + | Some _ -> () ) env.grams -let populate_hint env hd' = +let populate_hint env (hd' : Il.hintdef) = match hd'.it with - | Il.TypH (id, _) -> ignore (find "syntax type" env.typs id) - | Il.RelH (id, _) -> ignore (find "relation" env.rels id) - | Il.DecH (id, _) -> ignore (find "definition" env.defs id) - | Il.GramH (id, _) -> ignore (find "grammar" env.grams id) + | Il.TypH (x, _) -> ignore (find "syntax type" env.typs x) + | Il.RelH (x, _) -> ignore (find "relation" env.rels x) + | Il.DecH (x, _) -> ignore (find "definition" env.defs x) + | Il.GramH (x, _) -> ignore (find "grammar" env.grams x) -let populate_def env d' : Il.def = +let populate_def env (d' : Il.def) : Il.def = Debug.(log_in "el.populate_def" dline); Debug.(log_in_at "el.populate_def" d'.at (Fun.const "")); match d'.it with - | Il.TypD (id, ps', _dt') -> - (match find "syntax type" env.typs id with - | _ps, Family insts -> - let insts' = List.map (fun (_, _, inst') -> inst') insts in - Il.TypD (id, ps', insts') $ d'.at - | _ps, _k -> - d' + | Il.TypD (x, ps', _dt') -> + (match find "syntax type" env.typs x with + | _ps, Family insts' -> Il.TypD (x, ps', insts') $ d'.at + | _ps, _k -> d' ) - | Il.RelD (id, mixop, t', []) -> - let _, rules' = find "relation" env.rels id in - Il.RelD (id, mixop, t', List.map snd rules') $ d'.at - | Il.DecD (id, ps', t', []) -> - let _, _, clauses' = find "definition" env.defs id in - Il.DecD (id, ps', t', List.map snd clauses') $ d'.at - | Il.GramD (id, ps', t', []) -> - let _, _, _, prods' = find "grammar" env.grams id in - Il.GramD (id, ps', t', List.map snd prods') $ d'.at + | Il.RelD (x, mixop, t', []) -> + let _, _, _, rules' = find "relation" env.rels x in + Il.RelD (x, mixop, t', List.map snd rules') $ d'.at + | Il.DecD (x, ps', t', []) -> + let _, _, clauses' = find "definition" env.defs x in + Il.DecD (x, ps', t', List.map snd clauses') $ d'.at + | Il.GramD (x, ps', t', []) -> + let _, _, _, prods' = find "grammar" env.grams x in + Il.GramD (x, ps', t', List.map snd prods') $ d'.at | Il.HintD hd' -> populate_hint env hd'; d' | _ -> assert false @@ -3034,7 +2999,7 @@ let deps (map : int Map.t) (set : Il.Free.Set.t) : int array = ) (Array.of_seq (Il.Free.Set.to_seq set)) -let check_recursion ds' = +let check_recursion (ds' : Il.def list) = List.iter (fun d' -> match d'.it, (List.hd ds').it with | Il.HintD _, _ | _, Il.HintD _ @@ -3048,7 +3013,7 @@ let check_recursion ds' = ) ds' (* TODO(4, rossberg): check that notations are non-recursive and defs are inductive? *) -let recursify_defs ds' : Il.def list = +let recursify_defs (ds' : Il.def list) : Il.def list = let open Il.Free in let da = Array.of_list ds' in let map_typid = ref Map.empty in @@ -3084,13 +3049,13 @@ let recursify_defs ds' : Il.def list = ) sccs -let implicit_typdef id (at, atom) ds = +let implicit_typdef id (at, atom) (ds : def list) : def list = let hint = {hintid = "show" $ at; hintexp = AtomE atom $ at} in let t = ConT ((AtomT (El.Iter.clone_atom atom) $ at, []), []) $ at in let d = TypD (id $ at, "" $ at, [], t, [hint]) $ at in d :: ds -let elab ds : Il.script * env = +let elab (ds : script) : Il.script * env = let env = new_env () in let ds = List.map (infer_typdef env) ds in let ds = Map.fold implicit_typdef env.atoms ds in @@ -3100,13 +3065,13 @@ let elab ds : Il.script * env = let ds' = List.map (populate_def env) ds' in recursify_defs ds', env -let elab_exp env e t : Il.exp = +let elab_exp env (e : exp) (t : typ) : Il.exp = let env' = local_env env in - let _ = elab_typ env' t in - snd (checkpoint (elab_exp env' e t)) + let t' = elab_typ env' t in + snd (checkpoint (elab_exp env' e t')) -let elab_rel env e id : Il.exp = +let elab_rel env (e : exp) (x : id) : Il.exp = let env' = local_env env in - match elab_prem env' (RulePr (id, e) $ e.at) with + match elab_prem env' (RulePr (x, e) $ e.at) with | _, [{it = Il.RulePr (_, _, e'); _}] -> e' | _ -> assert false diff --git a/spectec/src/frontend/eval.ml b/spectec/src/frontend/eval.ml index d8be4a396b..507b02bd8a 100644 --- a/spectec/src/frontend/eval.ml +++ b/spectec/src/frontend/eval.ml @@ -746,8 +746,8 @@ and equiv_params env ps1 ps2 = if not (equiv_typ env t1 t2) then None else Some (Subst.add_varid s id2 (VarE (id1, []) $ p1.at)) | TypP _, TypP _ -> Some s - | GramP (id1, t1), GramP (id2, t2) -> - if not (equiv_typ env t1 t2) then None else + | GramP (id1, ps1, t1), GramP (id2, ps2, t2) -> + if not (equiv_functyp env (ps1, t1) (ps2, t2)) then None else Some (Subst.add_gramid s id2 (VarG (id1, []) $ p1.at)) | DefP (id1, ps1, t1), DefP (id2, ps2, t2) -> if not (equiv_functyp env (ps1, t1) (ps2, t2)) then None else diff --git a/spectec/src/frontend/parser.mly b/spectec/src/frontend/parser.mly index 2607b27f94..1c20fab6ba 100644 --- a/spectec/src/frontend/parser.mly +++ b/spectec/src/frontend/parser.mly @@ -1028,7 +1028,9 @@ param_ : try El.Convert.varid_of_typ $1 with Error.Error _ -> "" $ $sloc in ExpP (id, $1) } | SYNTAX varid_bind { TypP $2 } - | GRAMMAR gramid COLON typ { GramP ($2, $4) } + | GRAMMAR gramid COLON typ { GramP ($2, [], $4) } + | GRAMMAR gramid_lparen enter_scope comma_list(param) RPAREN COLON typ exit_scope + { GramP ($2, $4, $7) } | DEF DOLLAR defid COLON typ { DefP ($3, [], $5) } | DEF DOLLAR defid_lparen enter_scope comma_list(param) RPAREN COLON typ exit_scope diff --git a/spectec/src/il/eq.ml b/spectec/src/il/eq.ml index 83a13f0728..e4400ad897 100644 --- a/spectec/src/il/eq.ml +++ b/spectec/src/il/eq.ml @@ -159,3 +159,13 @@ and eq_arg a1 a2 = | DefA x1, DefA x2 -> eq_id x1 x2 | GramA g1, GramA g2 -> eq_sym g1 g2 | _, _ -> false + +and eq_param p1 p2 = + match p1.it, p2.it with + | ExpP (x1, t1), ExpP (x2, t2) -> eq_id x1 x2 && eq_typ t1 t2 + | TypP x1, TypP x2 -> eq_id x1 x2 + | DefP (x1, ps1, t1), DefP (x2, ps2, t2) -> + eq_id x1 x2 && eq_list eq_param ps1 ps2 && eq_typ t1 t2 + | GramP (x1, ps1, t1), GramP (x2, ps2, t2) -> + eq_id x1 x2 && eq_list eq_param ps1 ps2 && eq_typ t1 t2 + | _, _ -> false diff --git a/spectec/src/il/eq.mli b/spectec/src/il/eq.mli index ba61131680..18f0b69b97 100644 --- a/spectec/src/il/eq.mli +++ b/spectec/src/il/eq.mli @@ -12,6 +12,7 @@ val eq_path : path -> path -> bool val eq_sym : sym -> sym -> bool val eq_prem : prem -> prem -> bool val eq_arg : arg -> arg -> bool +val eq_param : param -> param -> bool val eq_opt : ('a -> 'a -> bool) -> 'a option -> 'a option -> bool val eq_list : ('a -> 'a -> bool) -> 'a list -> 'a list -> bool diff --git a/spectec/src/il/free.ml b/spectec/src/il/free.ml index 1f9d58cb88..b050157109 100644 --- a/spectec/src/il/free.ml +++ b/spectec/src/il/free.ml @@ -2,78 +2,11 @@ open Util.Source open Ast -(* Data Structure *) - -module Set = Env.Set - -type sets = - {typid : Set.t; relid : Set.t; varid : Set.t; defid : Set.t; gramid : Set.t} - -let empty = - { typid = Set.empty; - relid = Set.empty; - varid = Set.empty; - defid = Set.empty; - gramid = Set.empty - } - -let union sets1 sets2 = - { typid = Set.union sets1.typid sets2.typid; - relid = Set.union sets1.relid sets2.relid; - varid = Set.union sets1.varid sets2.varid; - defid = Set.union sets1.defid sets2.defid; - gramid = Set.union sets1.gramid sets2.gramid; - } - -let diff sets1 sets2 = - { typid = Set.diff sets1.typid sets2.typid; - relid = Set.diff sets1.relid sets2.relid; - varid = Set.diff sets1.varid sets2.varid; - defid = Set.diff sets1.defid sets2.defid; - gramid = Set.diff sets1.gramid sets2.gramid; - } +include Xl.Gen_free let (+) = union let (-) = diff -let subset sets1 sets2 = - Set.subset sets1.typid sets2.typid && - Set.subset sets1.relid sets2.relid && - Set.subset sets1.varid sets2.varid && - Set.subset sets1.defid sets2.defid && - Set.subset sets1.gramid sets2.gramid - -let disjoint sets1 sets2 = - Set.disjoint sets1.typid sets2.typid && - Set.disjoint sets1.relid sets2.relid && - Set.disjoint sets1.varid sets2.varid && - Set.disjoint sets1.defid sets2.defid && - Set.disjoint sets1.gramid sets2.gramid - -let free_opt free_x xo = Option.(value (map free_x xo) ~default:empty) -let free_list free_x xs = List.(fold_left (+) empty (map free_x xs)) -let free_pair free_x free_y (x, y) = free_x x + free_y y -let bound_list = free_list - -let rec free_list_dep free_x bound_x = function - | [] -> empty - | x::xs -> free_x x + (free_list_dep free_x bound_x xs - bound_x x) - - -(* Identifiers *) - -let free_typid x = {empty with typid = Set.singleton x.it} -let free_relid x = {empty with relid = Set.singleton x.it} -let free_varid x = {empty with varid = Set.singleton x.it} -let free_defid x = {empty with defid = Set.singleton x.it} -let free_gramid x = {empty with gramid = Set.singleton x.it} - -let bound_typid x = if x.it = "_" then empty else free_typid x -let bound_relid x = if x.it = "_" then empty else free_relid x -let bound_varid x = if x.it = "_" then empty else free_varid x -let bound_defid x = if x.it = "_" then empty else free_defid x -let bound_gramid x = if x.it = "_" then empty else free_gramid x - (* Iterations *) diff --git a/spectec/src/il/free.mli b/spectec/src/il/free.mli index d286d6abe9..1e75e6cc49 100644 --- a/spectec/src/il/free.mli +++ b/spectec/src/il/free.mli @@ -1,20 +1,6 @@ open Ast -module Set : Set.S with type elt = string with type t = Set.Make(String).t - -type sets = {typid : Set.t; relid : Set.t; varid : Set.t; defid : Set.t; gramid : Set.t} - -val empty : sets -val union : sets -> sets -> sets -val diff : sets -> sets -> sets - -val subset : sets -> sets -> bool -val disjoint : sets -> sets -> bool - -val free_opt : ('a -> sets) -> 'a option -> sets -val free_list : ('a -> sets) -> 'a list -> sets - -val free_varid : id -> sets +include module type of Xl.Gen_free val free_iter : iter -> sets val free_typ : typ -> sets @@ -30,7 +16,15 @@ val free_deftyp : deftyp -> sets val free_quant : quant -> sets val free_param : param -> sets +val free_prems : prem list -> sets +val free_args : arg list -> sets +val free_quants : param list -> sets +val free_params : param list -> sets + val bound_typbind : id * typ -> sets val bound_quant : quant -> sets val bound_param : param -> sets val bound_def : def -> sets + +val bound_quants : quant list -> sets +val bound_params : param list -> sets diff --git a/spectec/src/il/subst.ml b/spectec/src/il/subst.ml index 07436613e5..b87df656e2 100644 --- a/spectec/src/il/subst.ml +++ b/spectec/src/il/subst.ml @@ -193,6 +193,11 @@ and subst_iterexp s (iter, xes) = and subst_sym s g = (match g.it with + | VarG (x, []) -> + (match Map.find_opt x.it s.gramid with + | None -> VarG (x, []) + | Some g' -> g'.it + ) | VarG (x, args) -> VarG (subst_gramid s x, List.map (subst_arg s) args) | NumG _ | TextG _ -> g.it | EpsG -> EpsG diff --git a/spectec/src/il/valid.ml b/spectec/src/il/valid.ml index 612675e428..efffdfffe1 100644 --- a/spectec/src/il/valid.ml +++ b/spectec/src/il/valid.ml @@ -634,9 +634,13 @@ and valid_arg env a p s = if not (Eval.equiv_functyp env (ps', t') (ps, t)) then error a.at "type mismatch in function argument"; Subst.add_defid s x x' - | GramA g, GramP (x, ps, t) -> + | GramA g, GramP (x, [], t) -> let t' = valid_sym env g in - if not (Eval.equiv_functyp env ([], t') (ps, t)) then + equiv_typ env t' t a.at; + Subst.add_gramid s x g + | GramA ({it = VarG (x', as'); _} as g), GramP (x, ps, t) -> + let ps', t', _ = Env.find_gram env x' in + if as' <> [] || not (Eval.equiv_functyp env (ps', t') (ps, t)) then error a.at "type mismatch in grammar argument"; Subst.add_gramid s x g | _, _ -> diff --git a/spectec/src/xl/dune b/spectec/src/xl/dune index 95adcc4b49..ab8ef18e0f 100644 --- a/spectec/src/xl/dune +++ b/spectec/src/xl/dune @@ -1,5 +1,5 @@ (library (name xl) (libraries util zarith) - (modules bool num atom mixop) + (modules bool num atom mixop gen_free) ) diff --git a/spectec/src/xl/mixop.ml b/spectec/src/xl/mixop.ml index 6527629be2..9bb0032957 100644 --- a/spectec/src/xl/mixop.ml +++ b/spectec/src/xl/mixop.ml @@ -39,6 +39,13 @@ let rec map_atoms f mixop = let arity mixop = fold (fun n _ -> n + 1) 0 mixop +let apply mixop xs = + let rxs = ref xs in + let mixop' = + map (fun _ -> let xs = !rxs in rxs := List.tl xs; List.hd xs) mixop in + assert (!rxs = []); + mixop' + let (++) atomss1 atomss2 = let atomss1', atoms1 = Lib.List.split_last atomss1 in From 953a15215f8c1e359c648804a9de4f0b57055af3 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Tue, 2 Dec 2025 16:57:12 +0100 Subject: [PATCH 05/23] Make Wasm 1.0 elaborate again --- spectec/src/frontend/elab.ml | 167 ++++++++++++++++++++--------------- spectec/src/xl/mixop.ml | 40 +++++---- 2 files changed, 119 insertions(+), 88 deletions(-) diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index da9074119c..9b6839f84d 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -26,6 +26,10 @@ let error_atom at atom t msg = error at (msg ^ " `" ^ string_of_atom atom ^ "` in type `" ^ Il.string_of_typ t ^ "`") +let error_mixop at mixop t msg = + error at (msg ^ " `" ^ Il.string_of_mixop mixop ^ + "` in type `" ^ Il.string_of_typ t ^ "`") + let error_id id msg = error id.at (msg ^ " `" ^ id.it ^ "`") @@ -114,7 +118,7 @@ type kind = type var_typ = Il.typ type typ_typ = Il.param list * kind -type gram_typ = Il.param list * Il.typ * dots option * (id * Il.prod) list +type gram_typ = Il.param list * Il.typ * (id * Il.prod) list * dots option type rel_typ = Il.mixop * notation * Il.typ * (id * Il.rule) list type def_typ = Il.param list * Il.typ * (def * Il.clause) list @@ -187,20 +191,22 @@ let find_field tfs atom at t = | Some tf -> tf | None -> error_atom at atom t "unbound field" -let find_case' f tcs atom at t = +let find_case tcs mixop at t = + match List.find_opt (fun (mixop', _, _) -> Mixop.eq mixop' mixop) tcs with + | Some tc -> tc + | None -> error_mixop at mixop t "unknown case" + +let find_case_atom tcs atom at t = match List.find_opt (fun (mixop, _, _) -> match Mixop.head mixop with - | Some atom' -> f atom' atom + | Some atom' -> Atom.(eq atom' atom || sub atom' atom) | None -> false ) tcs with | Some tc -> tc | None -> error_atom at atom t "unknown case" -let find_case = find_case' Atom.eq -let find_case_sub = find_case' (fun a' a -> Atom.(eq a' a || sub a' a)) - let bound_env' env' = Map.fold (fun id _ s -> Free.Set.add id s) env' Free.Set.empty let bound_env env = Free.{ @@ -216,7 +222,7 @@ let bind_quant env q = | Il.ExpP (x, t) -> env.vars <- bind "variable" env.vars x t | Il.TypP x -> env.typs <- bind "syntax type" env.typs x ([], Opaque) | Il.DefP (x, ps, t) -> env.defs <- bind "definition" env.defs x (ps, t, []) - | Il.GramP (x, ps, t) -> env.grams <- bind "grammar" env.grams x (ps, t, None, []) + | Il.GramP (x, ps, t) -> env.grams <- bind "grammar" env.grams x (ps, t, [], None) let vars env = Map.fold (fun id (at, _) ids -> (id $ at)::ids) env.vars [] @@ -233,7 +239,7 @@ let il_args_of_params = List.map il_arg_of_param let to_il_var (_at, t) = t let to_il_def (_at, (ps, t, clauses)) = (ps, t, List.map snd clauses) -let to_il_gram (_at, (ps, t, _, prods)) = (ps, t, List.map snd prods) +let to_il_gram (_at, (ps, t, prods, _)) = (ps, t, List.map snd prods) let to_il_typ (_at, (ps, k)) = match k with @@ -307,6 +313,9 @@ let fail_silent = Fail [] let fail_atom at atom t msg = fail at (msg ^ " `" ^ string_of_atom atom ^ "` in type `" ^ Il.string_of_typ t ^ "`") +let fail_mixop at mixop t msg = + fail at (msg ^ " `" ^ Il.string_of_mixop mixop ^ "` in type `" ^ Il.string_of_typ t ^ "`") + let fail_infer at construct = fail at ("cannot infer type of " ^ construct) @@ -910,9 +919,10 @@ and typ_rep env t : Il.typ = match expand env t with | Il.VarT _ as t' -> (match expand_def env (t' $ t.at) with - | Il.VariantT [_, (_, t1, _), _], NoDots -> t1 + | Il.VariantT [_, (_, t1, _), _], NoDots -> typ_rep env t1 | _ -> t' $ t.at - ) + ) + | Il.TupT [_, t1] -> typ_rep env t1 | t' -> t' $ t.at and elab_typfield env tid at (tf : typfield) : Il.typfield = @@ -1512,18 +1522,16 @@ and elab_expfields env tid (efs : expfield list) (tfs : Il.typfield list) (t0 : match efs, tfs with | [], [] -> Ok ([], []) | (atom1, e)::efs2, (atom2, (qsF, tF, prems), _)::tfs2 when atom1.it = atom2.it -> - let not = Mixop.(Seq [Atom atom2; Arg tF]) in - let* qs1, es', s = elab_exp_notation' env tid e not in + let* qs1, e' = elab_exp env e tF in let* qs2, efs2' = elab_expfields env tid efs2 tfs2 t0 at in - let e' = (if prems = [] then tup_exp' else tup_exp_bind') es' e.at in - let as' = Il.Subst.subst_args s (il_args_of_params qsF) in + let e' = if prems = [] then e' else tup_exp_bind' [e'] e.at in + let as' = il_args_of_params qsF in Ok (qs1 @ qs2, (elab_atom atom1 tid, as', e') :: efs2') | _, (atom, (_qs, t, prems), _)::tfs2 -> let atom' = string_of_atom atom in let* qs1, e1' = cast_empty ("omitted record field `" ^ atom' ^ "`") env t at in - let e' = (if prems = [] then tup_exp' else tup_exp_bind') [e1'] at in + let e' = if prems = [] then e1' else tup_exp_bind' [e1'] at in let* qs2, efs2' = elab_expfields env tid efs tfs2 t0 at in -(*TODO*) Ok (qs1 @ qs2, (elab_atom atom tid, [], e') :: efs2') | (atom, e)::_, [] -> fail_atom e.at atom t0 "undefined or misplaced record field" @@ -1703,11 +1711,12 @@ and elab_exp_variant env tid (e : exp) (tcs : Il.typcase list) t at : (Il.quant | AtomE atom | InfixE (_, atom, _) | BrackE (atom, _, _) -> Ok atom - | SeqE (e1::_) -> head e1 + | SeqE (e1::es) -> + (match head e1 with Ok _ as ok -> ok | _ -> head (SeqE es $ e.at)) | _ -> fail_typ env at "expression" t in let* atom = head e in - let* mixop, (qsC, tC, _prems), _ = attempt (find_case_sub tcs atom atom.at) t in + let* mixop, (qsC, tC, _prems), _ = attempt (find_case_atom tcs atom atom.at) t in let* xtsC = as_tup_typ "tuple" env Check tC e.at in let not = Mixop.apply mixop (List.map snd xtsC) in let* qs, es', s = elab_exp_notation' env tid e not in @@ -1805,22 +1814,6 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt | Il.TupT [], Il.VarT _ when is_empty_notation_typ env t2' -> Ok ([], e'.it) - | IterT (t11, Opt), IterT (t21, List) -> - choice env [ - (fun env -> - let t1' = Il.IterT (t11, Il.List) $ e'.at in - let e'' = Il.LiftE e' $$ e'.at % t1' in - cast_exp' phrase env e'' t1' t2 - ); - (fun env -> - let* qs, e'' = cast_exp phrase env e' t1 t21 in - Ok (qs, Il.ListE [e'']) - ); - ] - | _, IterT (t21, (List | List1)) -> - let* qs, e'' = cast_exp phrase env e' t1 t21 in - Ok (qs, Il.ListE [e'']) - | Il.VarT _, Il.VarT _ -> (match expand_def env t1', expand_def env t2' with | (Il.VariantT [mixop1, (qs1, tC1, _), _], NoDots), @@ -1863,7 +1856,35 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt | _ -> fail_typ2 env e'.at phrase t1 t2 "" ) - | (Il.VariantT [mixop1, (qs1, tC1, _), _], NoDots), _ -> + | (Il.VariantT tcs1, dots1), (Il.VariantT tcs2, dots2) -> + if dots1 = Dots || dots2 = Dots then + error e'.at "used variant type is only partially defined at this point"; + let* () = + (* Shallow breadth subtyping on variants *) + match + iter_attempt (fun (mixop, (qs1, tC1, _prems1), _) -> + let* _, (qs2, tC2, _prems2), _ = + attempt (find_case tcs2 mixop t1.at) t2 in + (* TODO(2, rossberg): this should take alpha-equivalence into account *) + if Il.Eq.(eq_list eq_param qs1 qs2) && equiv_typ env tC1 tC2 then + Ok () + else + fail_mixop e'.at mixop t1 "type mismatch for case" + ) tcs1 + with + | Ok () -> Ok () + | Fail (Trace (_, msg, _) :: _) -> fail_typ2 env e'.at phrase t1 t2 (", " ^ msg) + | Fail [] -> assert false + in + Ok ([], Il.SubE (e', t1', t2')) + + | _, _ -> + fail_typ2 env e'.at phrase t1 t2 "" + ) + + | Il.VarT _, _ -> + (match expand_def env t1' with + | Il.VariantT [mixop1, (qs1, tC1, _), _], NoDots -> choice env [ (fun env -> (* A ConT can always be cast to a (singleton) iteration *) @@ -1902,7 +1923,13 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt ); ] - | _, (Il.VariantT [mixop2, (qs2, tC2, _), _], NoDots) -> + | _ -> + fail_typ2 env e'.at phrase t1 t2 "" + ) + + | _, Il.VarT _ -> + (match expand_def env t2' with + | Il.VariantT [mixop2, (qs2, tC2, _), _], NoDots -> (* A ConT payload can be cast to the ConT *) let qs2', s2 = Il.Fresh.refresh_quants qs2 in let tC2' = Il.Subst.subst_typ s2 tC2 in @@ -1914,37 +1941,26 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt | _ -> fail_typ2 env e'.at phrase t1 t2 "" ) - | (Il.VariantT tcs1, dots1), (Il.VariantT tcs2, dots2) -> - if dots1 = Dots || dots2 = Dots then - error e'.at "used variant type is only partially defined at this point"; - let* () = - (* Shallow breadth subtyping on variants *) - match - iter_attempt (fun (mixop1, (qs1, tC1, _prems1), _) -> - match Mixop.head mixop1 with - | None -> fail_silent - | Some atom -> - let* mixop2, (qs2, tC2, _prems2), _ = - attempt (find_case tcs2 atom t1.at) t2 in - (* TODO(2, rossberg): this should take alpha-equivalence into account *) - if Mixop.eq mixop1 mixop2 - && Il.Eq.(eq_list eq_param qs1 qs2) - && equiv_typ env tC1 tC2 then - Ok () - else - fail_atom e'.at atom t1 "type mismatch for case" - ) tcs1 - with - | Ok () -> Ok () - | Fail (Trace (_, msg, _) :: _) -> fail_typ2 env e'.at phrase t1 t2 (", " ^ msg) - | Fail [] -> assert false - in - Ok ([], Il.SubE (e', t1', t2')) - - | _, _ -> + | _ -> fail_typ2 env e'.at phrase t1 t2 "" ) + | Il.IterT (t11, Opt), Il.IterT (t21, List) -> + choice env [ + (fun env -> + let t1' = Il.IterT (t11, Il.List) $ e'.at in + let e'' = Il.LiftE e' $$ e'.at % t1' in + cast_exp' phrase env e'' t1' t2 + ); + (fun env -> + let* qs, e'' = cast_exp phrase env e' t1 t21 in + Ok (qs, Il.ListE [e'']) + ); + ] + | _, Il.IterT (t21, (List | List1)) -> + let* qs, e'' = cast_exp phrase env e' t1 t21 in + Ok (qs, Il.ListE [e'']) + | _, _ -> fail_typ2 env e'.at phrase t1 t2 "" @@ -2580,6 +2596,9 @@ and elab_args' in_lhs env (as_ : arg list) (ps : Il.param list) qs as' s at : Il | [], [] -> qs, List.concat (List.rev as'), s | a::_, [] -> error a.at "too many arguments" | [], _::_ -> error at "too few arguments" + | _, {it = Il.TypP _; at; _}::ps1 when at = Source.no_region -> + (* Implicitly inserted type parameter *) + elab_args' in_lhs env as_ ps1 qs as' s at | a::as1, p::ps1 -> let qs', a', s' = elab_arg in_lhs env a p s in elab_args' in_lhs env as1 ps1 (qs @ qs') (a'::as') s' at @@ -2635,13 +2654,15 @@ and elab_param env (p : param) : Il.param list = error_id x "invalid identifer suffix in binding position"; env'.typs <- bind "syntax type" env.typs x ([], Opaque); env.typs <- bind "syntax type" env.typs x ([], Opaque); - env.gvars <- bind "variable" env.gvars (strip_var_sub x) (Il.VarT (x, []) $ x.at); - (Il.TypP x $ x.at) :: ps' + env.gvars <- bind "variable" env.gvars (strip_var_sub x) + (Il.VarT (x, []) $ x.at); + (* Mark as implicit type parameter via empty region. *) + (Il.TypP x $ Source.no_region) :: ps' ) ) free.typid [] in let t' = elab_typ env' t in - env.grams <- bind "grammar" env.grams x ([], t', None, []); + env.grams <- bind "grammar" env.grams x ([], t', [], None); ps_implicit' @ [Il.GramP (x, ps', t') $ p.at] | DefP (x, ps, t) -> let env' = local_env env in @@ -2745,7 +2766,7 @@ let infer_gramdef env (d : def) = let env' = local_env env in let ps' = elab_params env' ps in let t' = elab_typ env' t in - env.grams <- bind "grammar" env.grams x1 (ps', t', None, []); + env.grams <- bind "grammar" env.grams x1 (ps', t', [], None); ) | _ -> () @@ -2847,7 +2868,7 @@ let rec elab_def env (d : def) : Il.def list = let xprods2' = List.map (fun pr -> x2, pr) (elab_gram env' gram t') in let dims = Dim.check_def d in infer_no_quants env' dims d; - let ps1', t1', dots_opt, xprods1' = find "grammar" env.grams x1 in + let ps1', t1', xprods1', dots_opt = find "grammar" env.grams x1 in let dots1, _, dots2 = gram.it in let xprods' = match dots_opt with @@ -2867,7 +2888,7 @@ let rec elab_def env (d : def) : Il.def list = error_typ2 env d.at "grammar" t1' t' " of previous fragment"; xprods1' @ xprods2' in - env.grams <- rebind "grammar" env.grams x1 (ps', t', Some dots2, xprods'); + env.grams <- rebind "grammar" env.grams x1 (ps', t', xprods', Some dots2); (* Only add last fragment to IL defs, so that populate finds it only once *) (if dots2 = Dots then [] else [Il.GramD (x1, ps', t', []) $ d.at]) @ elab_hintdef env (GramH (x1, x2, hints) $ d.at) @@ -2950,8 +2971,8 @@ let check_dots env = error_id (x $ at) "no defined cases for syntax type family" | Defined _ | Family _ -> () ) env.typs; - Map.iter (fun x (at, (_ps, _t, gram_opt, _prods')) -> - match gram_opt with + Map.iter (fun x (at, (_ps, _t, _prods', dots_opt)) -> + match dots_opt with | None -> assert false | Some Dots -> error_id (x $ at) "missing final extension to grammar" @@ -2982,7 +3003,7 @@ let populate_def env (d' : Il.def) : Il.def = let _, _, clauses' = find "definition" env.defs x in Il.DecD (x, ps', t', List.map snd clauses') $ d'.at | Il.GramD (x, ps', t', []) -> - let _, _, _, prods' = find "grammar" env.grams x in + let _, _, prods', _ = find "grammar" env.grams x in Il.GramD (x, ps', t', List.map snd prods') $ d'.at | Il.HintD hd' -> populate_hint env hd'; d' | _ -> assert false diff --git a/spectec/src/xl/mixop.ml b/spectec/src/xl/mixop.ml index 9bb0032957..221fb279af 100644 --- a/spectec/src/xl/mixop.ml +++ b/spectec/src/xl/mixop.ml @@ -1,40 +1,42 @@ open Util -open Util.Source type atom = Atom.atom type 'a mixop = | Arg of 'a - | Seq of 'a mixop list | Atom of atom | Brack of atom * 'a mixop * atom | Infix of 'a mixop * atom * 'a mixop + | Seq of 'a mixop list let rec map f mixop = match mixop with | Arg x -> Arg (f x) - | Seq mixops -> Seq (List.map (map f) mixops) | Atom at -> Atom at | Brack (at1, mixop, at2) -> Brack (at1, map f mixop, at2) - | Infix (mixop1, at, mixop2) -> Infix (map f mixop1, at, map f mixop2) + | Infix (mixop1, at, mixop2) -> + let mixop1' = map f mixop1 in + let mixop2' = map f mixop2 in + Infix (mixop1', at, mixop2') + | Seq mixops -> Seq (List.map (map f) mixops) let rec fold f x mixop = match mixop with | Arg y -> f x y - | Seq mixops -> List.fold_left (fold f) x mixops | Atom _ -> x | Brack (_, mixop, _) -> fold f x mixop | Infix (mixop1, _, mixop2) -> fold f (fold f x mixop1) mixop2 + | Seq mixops -> List.fold_left (fold f) x mixops let rec map_atoms f mixop = match mixop with | Arg x -> Arg x - | Seq mixops -> Seq (List.map (map_atoms f) mixops) | Atom at -> Atom (f at) | Brack (at1, mixop, at2) -> Brack (f at1, map_atoms f mixop, f at2) | Infix (mixop1, at, mixop2) -> Infix (map_atoms f mixop1, f at, map_atoms f mixop2) + | Seq mixops -> Seq (List.map (map_atoms f) mixops) let arity mixop = fold (fun n _ -> n + 1) 0 mixop @@ -54,15 +56,18 @@ let (++) atomss1 atomss2 = let rec head = function | Arg _ | Seq [] -> None - | Seq (mixop::_) -> head mixop | Atom atom | Brack (atom, _, _) | Infix (_, atom, _) -> Some atom + | Seq (mixop::mixops) -> + match head mixop with + | None -> head (Seq mixops) + | some -> some let rec flatten = function | Arg _ -> [[]; []] - | Seq mixops -> List.fold_left (++) [[]] (List.map flatten mixops) | Atom atom -> [[atom]] | Brack (l, mixop, r) -> [[l]] ++ flatten mixop ++ [[r]] | Infix (mixop1, atom, mixop2) -> flatten mixop1 ++ [[atom]] ++ flatten mixop2 + | Seq mixops -> List.fold_left (++) [[]] (List.map flatten mixops) let compare mixop1 mixop2 = List.compare (List.compare Atom.compare) (flatten mixop1) (flatten mixop2) @@ -71,11 +76,16 @@ let eq mixop1 mixop2 = compare mixop1 mixop2 = 0 -let to_string' = function - | [{it = Atom.Atom a; _}]::tail when List.for_all ((=) []) tail -> a - | mixop -> - String.concat "%" (List.map ( - fun atoms -> String.concat "" (List.map Atom.to_string atoms)) mixop - ) +let rec to_string_with f s = function + | Arg x -> f x + | Seq mixops -> String.concat s (List.map (to_string_with f s) mixops) + | Atom atom -> Atom.to_string atom + | Brack (l, mixop, r) -> + Atom.to_string l ^ to_string_with f s mixop ^ Atom.to_string r + | Infix (mixop1, atom, mixop2) -> + to_string_with f s mixop1 ^ Atom.to_string atom ^ to_string_with f s mixop2 -let to_string mixop = to_string' (flatten mixop) +let is_arg = function Arg _ -> true | _ -> false +let to_string = function + | Seq (Atom a :: tail) when List.for_all is_arg tail -> Atom.to_string a + | mixop -> to_string_with (Fun.const "%") "" mixop From 87778a250d47d082d0e4e6ce1fd2a5e09380f611 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Wed, 3 Dec 2025 09:31:24 +0100 Subject: [PATCH 06/23] Treat tuple type vars --- spectec/src/frontend/dim.ml | 53 ++++++++++++++++++++++++++++++------ spectec/src/frontend/elab.ml | 6 +++- spectec/src/il/free.ml | 15 +++------- spectec/src/il/free.mli | 1 - spectec/src/il/valid.ml | 5 ++-- 5 files changed, 57 insertions(+), 23 deletions(-) diff --git a/spectec/src/frontend/dim.ml b/spectec/src/frontend/dim.ml index e84288b37d..07b982e606 100644 --- a/spectec/src/frontend/dim.ml +++ b/spectec/src/frontend/dim.ml @@ -388,6 +388,39 @@ let rec annot_iter env iter : Il.Ast.iter * (occur * occur) = in ListN (e', id_opt), (occur1, occur2) +and annot_typ env t : Il.Ast.typ * occur = + Il.Debug.(log "il.annot_typ" + (fun _ -> fmt "%s" (il_typ t)) + (fun (t', occur') -> fmt "%s %s" (il_typ t') (il_occur occur')) + ) @@ fun _ -> + let it, occur = + match t.it with + | VarT (x, as1) -> + let as1', occurs = List.split (List.map (annot_arg env) as1) in + VarT (x, as1'), List.fold_left union Env.empty occurs + | BoolT | NumT _ | TextT -> + t.it, Env.empty + | TupT xts -> + let xts', occurs = List.split (List.map (annot_typbind env) xts) in + TupT xts', List.fold_left union Env.empty occurs + | IterT (t, iter) -> + let t', occur1 = annot_typ env t in + let iter', (occur2, occur3) = annot_iter env iter in + assert (occur1 = Env.empty); + assert (occur3 = Env.empty); + IterT (t', iter'), occur2 + in {t with it}, occur + +and annot_typbind env (x, t) : (Il.Ast.id * Il.Ast.typ) * occur = + let occur1 = + if x.it <> "_" && Env.mem x.it env then + Env.singleton x.it (t, Env.find x.it env) + else + Env.empty + in + let t', occur2 = annot_typ env t in + (x, t'), union occur1 occur2 + and annot_exp env e : Il.Ast.exp * occur = Il.Debug.(log "il.annot_exp" (fun _ -> fmt "%s" (il_exp e)) @@ -395,8 +428,8 @@ and annot_exp env e : Il.Ast.exp * occur = ) @@ fun _ -> let it, occur = match e.it with - | VarE id when id.it <> "_" && Env.mem id.it env -> - VarE id, Env.singleton id.it (e.note, Env.find id.it env) + | VarE x when x.it <> "_" && Env.mem x.it env -> + VarE x, Env.singleton x.it (e.note, Env.find x.it env) | VarE _ | BoolE _ | NumE _ | TextE _ -> e.it, Env.empty | UnE (op, nt, e1) -> @@ -491,7 +524,9 @@ and annot_exp env e : Il.Ast.exp * occur = CvtE (e1', nt1, nt2), occur1 | SubE (e1, t1, t2) -> let e1', occur1 = annot_exp env e1 in - SubE (e1', t1, t2), occur1 + let t1', occur2 = annot_typ env t1 in + let t2', occur3 = annot_typ env t2 in + SubE (e1', t1', t2'), union occur1 (union occur2 occur3) in {e with it}, occur and annot_expfield env (atom, as_, e) : Il.Ast.expfield * occur = @@ -550,9 +585,9 @@ and annot_sym env g : Il.Ast.sym * occur = Il.Debug.(log_in "il.annot_sym" (fun _ -> il_sym g)); let it, occur = match g.it with - | VarG (id, as1) -> + | VarG (x, as1) -> let as1', occurs = List.split (List.map (annot_arg env) as1) in - VarG (id, as1'), List.fold_left union Env.empty occurs + VarG (x, as1'), List.fold_left union Env.empty occurs | NumG _ | TextG _ | EpsG -> g.it, Env.empty | SeqG gs -> @@ -581,7 +616,9 @@ and annot_arg env a : Il.Ast.arg * occur = | ExpA e -> let e', occur1 = annot_exp env e in ExpA e', occur1 - | TypA t -> TypA t, Env.empty + | TypA t -> + let t', occur1 = annot_typ env t in + TypA t', occur1 | DefA id -> DefA id, Env.empty | GramA g -> let g', occur1 = annot_sym env g in @@ -591,9 +628,9 @@ and annot_arg env a : Il.Ast.arg * occur = and annot_prem env prem : Il.Ast.prem * occur = let it, occur = match prem.it with - | RulePr (id, op, e) -> + | RulePr (x, op, e) -> let e', occur = annot_exp env e in - RulePr (id, op, e'), occur + RulePr (x, op, e'), occur | IfPr e -> let e', occur = annot_exp env e in IfPr e', occur diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index 9b6839f84d..7421f6cb18 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -77,7 +77,11 @@ let tup_typ_bind' es' ts' at = | Il.VarE x -> x, s | _ -> let x' = Il.Fresh.fresh_varid "pat" $ e'.at in - x', decompose e' (Il.VarE x' $$ e'.at % e'.note) s + let s' = decompose e' (Il.VarE x' $$ e'.at % e'.note) Il.Subst.empty in + if s' = Il.Subst.empty then + "_" $ e'.at, s + else + x', Il.Subst.union s s' in let xts'' = combine es' ts' s' in (x', Il.Subst.subst_typ s t')::xts'' diff --git a/spectec/src/il/free.ml b/spectec/src/il/free.ml index b050157109..51951f1766 100644 --- a/spectec/src/il/free.ml +++ b/spectec/src/il/free.ml @@ -30,15 +30,8 @@ and free_typ t = | TupT ets -> free_typbinds ets | IterT (t1, iter) -> free_typ t1 + free_iter iter -and bound_typ t = - match t.it with - | VarT _ | BoolT | NumT _ | TextT -> empty - | TupT ets -> bound_list bound_typbind ets - | IterT (t1, _iter) -> bound_typ t1 - -and free_typbind (_x, t) = free_typ t -and bound_typbind (x, _t) = free_varid x -and free_typbinds xts = free_list_dep free_typbind bound_typbind xts +and free_typbind (x, t) = bound_varid x + free_typ t +and free_typbinds xts = free_list free_typbind xts and free_deftyp dt = match dt.it with @@ -47,9 +40,9 @@ and free_deftyp dt = | VariantT tcs -> free_list free_typcase tcs and free_typfield (_, (qs, t, prems), _) = - free_quants qs + (free_typ t + (free_prems prems - bound_typ t) - bound_quants qs) + free_quants qs + (free_typ t + free_prems prems - bound_quants qs) and free_typcase (_, (qs, t, prems), _) = - free_quants qs + (free_typ t + (free_prems prems - bound_typ t) - bound_quants qs) + free_quants qs + (free_typ t + free_prems prems - bound_quants qs) (* Expressions *) diff --git a/spectec/src/il/free.mli b/spectec/src/il/free.mli index 1e75e6cc49..4adba6f06d 100644 --- a/spectec/src/il/free.mli +++ b/spectec/src/il/free.mli @@ -21,7 +21,6 @@ val free_args : arg list -> sets val free_quants : param list -> sets val free_params : param list -> sets -val bound_typbind : id * typ -> sets val bound_quant : quant -> sets val bound_param : param -> sets val bound_def : def -> sets diff --git a/spectec/src/il/valid.ml b/spectec/src/il/valid.ml index efffdfffe1..54615c6c7a 100644 --- a/spectec/src/il/valid.ml +++ b/spectec/src/il/valid.ml @@ -203,8 +203,9 @@ and valid_typ env t = and valid_typbind env (x, t) = valid_typ env t; - let t' = Env.find_var env x in - equiv_typ env t' t x.at + if x.it <> "_" then + let t' = Env.find_var env x in + equiv_typ env t' t x.at and valid_deftyp envr dt = match dt.it with From 9e50b246f81cce01514a4ae93608f051955c6864 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Wed, 3 Dec 2025 14:41:07 +0100 Subject: [PATCH 07/23] Do dimension analysis on IL --- spectec/src/frontend/dim.ml | 324 +++++++++++++++++++---------------- spectec/src/frontend/dim.mli | 29 ++-- spectec/src/frontend/elab.ml | 175 ++++++++++--------- 3 files changed, 283 insertions(+), 245 deletions(-) diff --git a/spectec/src/frontend/dim.ml b/spectec/src/frontend/dim.ml index 07b982e606..47aa84601f 100644 --- a/spectec/src/frontend/dim.ml +++ b/spectec/src/frontend/dim.ml @@ -1,8 +1,7 @@ open Util open Source -open El +open Il open Ast -open Convert (* Errors *) @@ -113,76 +112,64 @@ let rec check_iter env ctx iter = and check_typ env ctx t = match t.it with - | VarT (id, args) -> - check_typid env ctx (Convert.strip_var_suffix id); - check_varid env ctx `Impl id; + | VarT (x, args) -> + check_typid env ctx x; List.iter (check_arg env ctx) args | BoolT | NumT _ - | TextT -> - check_varid env ctx `Impl (Convert.varid_of_typ t) - | AtomT _ -> () - | ParenT t1 - | BrackT (_, t1, _) -> check_typ env ctx t1 - | TupT ts - | SeqT ts -> List.iter (check_typ env ctx) ts + | TextT -> () + | TupT xts -> List.iter (check_typbind env ctx) xts | IterT (t1, iter) -> check_iter env ctx iter; check_typ env (strip_index iter::ctx) t1 - | StrT (_, ts, tfs, _) -> - iter_nl_list (check_typ env ctx) ts; - iter_nl_list (fun (_, (tI, prems), _) -> + +and check_typbind env ctx (x, t) = + check_varid env ctx `Impl x; + check_typ env ctx t + +and check_deftyp env ctx dt = + match dt.it with + | AliasT t -> + check_typ env ctx t + | StructT tfs -> + List.iter (fun (_, (qs, tI, prems), _) -> let env' = ref Env.empty in + assert (qs = []); check_typ env' ctx tI; - iter_nl_list (check_prem env' ctx) prems + List.iter (check_prem env' ctx) prems ) tfs - | CaseT (_, ts, tcs, _) -> - iter_nl_list (check_typ env ctx) ts; - iter_nl_list (fun (_, (tI, prems), _) -> + | VariantT tcs -> + List.iter (fun (_, (qs, tI, prems), _) -> let env' = ref Env.empty in + assert (qs = []); check_typ env' ctx tI; - iter_nl_list (check_prem env' ctx) prems + List.iter (check_prem env' ctx) prems ) tcs - | ConT ((t1, prems), _) -> - let env' = ref Env.empty in - check_typ env' ctx t1; - iter_nl_list (check_prem env' ctx) prems - | RangeT tes -> - iter_nl_list (fun (eI1, eoI2) -> - let env' = ref Env.empty in - check_exp env' ctx eI1; - Option.iter (check_exp env' ctx) eoI2; - ) tes - | InfixT (t1, _, t2) -> - check_typ env ctx t1; - check_typ env ctx t2 + +and check_iterexp env ctx (iter, xes) = + check_iter env ctx iter; + assert (xes = []) and check_exp env ctx e = match e.it with - | VarE (id, args) -> - check_varid env ctx `Expl id; - List.iter (check_arg env ctx) args - | AtomE _ + | VarE x -> + check_varid env ctx `Expl x | BoolE _ | NumE _ - | TextE _ - | SizeE _ - | EpsE -> () - | CvtE (e1, _) - | UnE (_, e1) - | DotE (e1, _) + | TextE _ -> () + | CvtE (e1, _, _) + | UnE (_, _, e1) | LenE e1 - | ParenE e1 - | BrackE (_, e1, _) - | TypE (e1, _) - | ArithE e1 -> check_exp env ctx e1 - | BinE (e1, _, e2) - | CmpE (e1, _, e2) + | ProjE (e1, _) + | TheE e1 + | LiftE e1 -> + check_exp env ctx e1 + | BinE (_, _, e1, e2) + | CmpE (_, _, e1, e2) | IdxE (e1, e2) - | CommaE (e1, e2) | CatE (e1, e2) | MemE (e1, e2) - | InfixE (e1, _, e2) -> + | CompE (e1, e2) -> check_exp env ctx e1; check_exp env ctx e2 | SliceE (e1, e2, e3) -> @@ -194,18 +181,31 @@ and check_exp env ctx e = check_exp env ctx e1; check_path env ctx p; check_exp env ctx e2 - | SeqE es + | OptE eo -> + Option.iter (check_exp env ctx) eo | ListE es - | TupE es -> List.iter (check_exp env ctx) es - | StrE efs -> iter_nl_list (fun (_, eI) -> check_exp env ctx eI) efs - | CallE (_, args) -> List.iter (check_arg env ctx) args - | IterE (e1, iter) -> - check_iter env ctx iter; - check_exp env (strip_index iter::ctx) e1 - | HoleE _ - | FuseE _ - | UnparenE _ - | LatexE _ -> assert false + | TupE es -> + List.iter (check_exp env ctx) es + | StrE efs -> + List.iter (check_expfield env ctx) efs + | DotE (e1, _, as_) + | CaseE (_, as_, e1) + | UncaseE (e1, _, as_) -> + check_exp env ctx e1; + List.iter (check_arg env ctx) as_ + | CallE (_, as_) -> + List.iter (check_arg env ctx) as_ + | IterE (e1, ite) -> + check_iterexp env ctx ite; + check_exp env (strip_index (fst ite)::ctx) e1 + | SubE (e1, t1, t2) -> + check_exp env ctx e1; + check_typ env ctx t1; + check_typ env ctx t2 + +and check_expfield env ctx (_, as_, e) = + List.iter (check_arg env ctx) as_; + check_exp env ctx e and check_path env ctx p = match p.it with @@ -217,142 +217,155 @@ and check_path env ctx p = check_path env ctx p1; check_exp env ctx e1; check_exp env ctx e2 - | DotP (p1, _) -> - check_path env ctx p1 + | DotP (p1, _, as_) -> + check_path env ctx p1; + List.iter (check_arg env ctx) as_ and check_sym env ctx g = match g.it with - | VarG (id, args) -> - check_gramid env ctx id; + | VarG (x, args) -> + check_gramid env ctx x; List.iter (check_arg env ctx) args | NumG _ | TextG _ | EpsG -> () | SeqG gs - | AltG gs -> iter_nl_list (check_sym env ctx) gs + | AltG gs -> + List.iter (check_sym env ctx) gs | RangeG (g1, g2) -> check_sym env ctx g1; check_sym env ctx g2 - | ParenG g1 -> - check_sym env ctx g1 - | TupG gs -> List.iter (check_sym env ctx) gs - | ArithG e -> check_exp env ctx e | AttrG (e, g1) -> check_exp env ctx e; check_sym env ctx g1 - | IterG (g1, iter) -> - check_iter env ctx iter; - check_sym env (strip_index iter::ctx) g1 - | FuseG _ - | UnparenG _ -> assert false + | IterG (g1, ite) -> + check_iterexp env ctx ite; + check_sym env (strip_index (fst ite)::ctx) g1 -and check_prod env ctx prod = - match prod.it with - | SynthP (g, e, prems) -> - check_sym env ctx g; - check_exp env ctx e; - iter_nl_list (check_prem env ctx) prems - | RangeP (g1, e1, g2, e2) -> - check_sym env ctx g1; - check_exp env ctx e1; - check_sym env ctx g2; - check_exp env ctx e2 - | EquivP (g1, g2, prems) -> - check_sym env ctx g1; - check_sym env ctx g2; - iter_nl_list (check_prem env ctx) prems - -and check_gram env ctx gram = - let (_dots1, prods, _dots2) = gram.it in - iter_nl_list (check_prod env ctx) prods and check_prem env ctx prem = match prem.it with - | VarPr _ -> () (* skip, since var decls need not be under iterations *) - | RulePr (_id, e) -> check_exp env ctx e + | RulePr (_x, _mixop, e) -> check_exp env ctx e | IfPr e -> check_exp env ctx e | ElsePr -> () - | IterPr (prem', iter) -> - check_iter env ctx iter; - check_prem env (strip_index iter::ctx) prem' + | LetPr (e1, e2, _xs) -> + check_exp env ctx e1; + check_exp env ctx e2 + | IterPr (prem', ite) -> + check_iterexp env ctx ite; + check_prem env (strip_index (fst ite)::ctx) prem' and check_arg env ctx a = - match !(a.it) with + match a.it with | ExpA e -> check_exp env ctx e | TypA t -> check_typ env ctx t | GramA g -> check_sym env ctx g - | DefA _id -> () + | DefA _x -> () and check_param env ctx p = match p.it with - | ExpP (id, t) -> - check_varid env ctx `Expl id; + | ExpP (x, t) -> + check_varid env ctx `Expl x; check_typ env ctx t - | TypP id -> - check_typid env ctx id; - check_varid env ctx `Impl id - | GramP (id, ps, t) -> - check_gramid env ctx id; + | TypP x -> + check_typid env ctx x; + check_varid env ctx `Impl x + | GramP (x, ps, t) -> + check_gramid env ctx x; List.iter (check_param env ctx) ps; check_typ env ctx t - | DefP (_id, ps, t) -> + | DefP (_x, ps, t) -> List.iter (check_param env ctx) ps; check_typ env ctx t -let check_def d : env = +let rec check_def d : env = let env = new_env [] in match d.it with - | FamD (_id, ps, _hints) -> + | TypD (_x, ps, insts) -> List.iter (check_param env []) ps; + List.iter (check_inst env) insts; check_env env - | TypD (_id1, _id2, args, t, _hints) -> - List.iter (check_arg env []) args; + | RelD (_x, _mixop, t, rules) -> check_typ env [] t; + List.iter (check_rule env) rules; check_env env - | GramD (_id1, _id2, ps, t, gram, _hints) -> + | DecD (_x, ps, t, clauses) -> List.iter (check_param env []) ps; check_typ env [] t; - check_gram env [] gram; - check_env env - | RelD (_id, t, _hints) -> - check_typ env [] t; - check_env env - | RuleD (_id1, _id2, e, prems) -> - check_exp env [] e; - iter_nl_list (check_prem env []) prems; - check_env env - | VarD (_id, t, _hints) -> - check_typ env [] t; + List.iter (check_clause env) clauses; check_env env - | DecD (_id, ps, t, _hints) -> + | GramD (_x, ps, t, prods) -> List.iter (check_param env []) ps; check_typ env [] t; + List.iter (check_prod env) prods; check_env env - | DefD (_id, args, e, prems) -> - List.iter (check_arg env []) args; - check_exp env [] e; - iter_nl_list (check_prem env []) prems; + | RecD _ds -> + assert false + | HintD _ -> check_env env - | SepD | HintD _ -> Env.empty +and check_inst env inst = + match inst.it with + | InstD (qs, as_, dt) -> + assert (qs = []); + List.iter (check_arg env []) as_; + check_deftyp env [] dt + +and check_rule env rule = + match rule.it with + | RuleD (_x, qs, _mixop, e, prems) -> + assert (qs = []); + check_exp env [] e; + List.iter (check_prem env []) prems + +and check_clause env clause = + match clause.it with + | DefD (qs, as_, e, prems) -> + assert (qs = []); + List.iter (check_arg env []) as_; + check_exp env [] e; + List.iter (check_prem env []) prems + +and check_prod env prod = + match prod.it with + | ProdD (qs, g, e, prems) -> + assert (qs = []); + check_sym env [] g; + check_exp env [] e; + List.iter (check_prem env []) prems -let check_prod outer prod : env = + +(* External interface *) + +let check_inst outer as_ dt : env = let env = new_env outer in - check_prod env [] prod; + List.iter (check_arg env []) as_; + check_deftyp env [] dt; localize outer (check_env env) -let check_typdef outer t prems : env = +let check_prod outer g e prems : env = let env = new_env outer in - check_typ env [] t; - iter_nl_list (check_prem env []) prems; + check_sym env [] g; + check_exp env [] e; + List.iter (check_prem env []) prems; localize outer (check_env env) +let check_abbr outer g1 g2 prems : env = + let env = new_env outer in + check_sym env [] g1; + check_sym env [] g2; + List.iter (check_prem env []) prems; + localize outer (check_env env) -(* Annotating iterations *) +let check_deftyp outer ts prems : env = + let env = new_env outer in + List.iter (check_typ env []) ts; + List.iter (check_prem env []) prems; + localize outer (check_env env) -open Il.Ast -type env' = iter list Env.t +(* Annotating iterations *) + type occur = (typ * iter list) Env.t let union = Env.union (fun _ (_, ctx1 as occ1) (_, ctx2 as occ2) -> @@ -371,7 +384,7 @@ let rec annot_varid id = function | [] -> id | iter::iters -> annot_varid (annot_varid' id.it iter $ id.at) iters -let rec annot_iter env iter : Il.Ast.iter * (occur * occur) = +let rec annot_iter env iter : iter * (occur * occur) = Il.Debug.(log "il.annot_iter" (fun _ -> fmt "%s" (il_iter iter)) (fun (iter', (occur1, occur2)) -> fmt "%s %s %s" (il_iter iter') @@ -388,7 +401,7 @@ let rec annot_iter env iter : Il.Ast.iter * (occur * occur) = in ListN (e', id_opt), (occur1, occur2) -and annot_typ env t : Il.Ast.typ * occur = +and annot_typ env t : typ * occur = Il.Debug.(log "il.annot_typ" (fun _ -> fmt "%s" (il_typ t)) (fun (t', occur') -> fmt "%s %s" (il_typ t') (il_occur occur')) @@ -411,7 +424,7 @@ and annot_typ env t : Il.Ast.typ * occur = IterT (t', iter'), occur2 in {t with it}, occur -and annot_typbind env (x, t) : (Il.Ast.id * Il.Ast.typ) * occur = +and annot_typbind env (x, t) : (id * typ) * occur = let occur1 = if x.it <> "_" && Env.mem x.it env then Env.singleton x.it (t, Env.find x.it env) @@ -421,7 +434,8 @@ and annot_typbind env (x, t) : (Il.Ast.id * Il.Ast.typ) * occur = let t', occur2 = annot_typ env t in (x, t'), union occur1 occur2 -and annot_exp env e : Il.Ast.exp * occur = + +and annot_exp env e : exp * occur = Il.Debug.(log "il.annot_exp" (fun _ -> fmt "%s" (il_exp e)) (fun (e', occur') -> fmt "%s %s" (il_exp e') (il_occur occur')) @@ -529,12 +543,12 @@ and annot_exp env e : Il.Ast.exp * occur = SubE (e1', t1', t2'), union occur1 (union occur2 occur3) in {e with it}, occur -and annot_expfield env (atom, as_, e) : Il.Ast.expfield * occur = +and annot_expfield env (atom, as_, e) : expfield * occur = let as', occurs = List.split (List.map (annot_arg env) as_) in let e', occur = annot_exp env e in (atom, as', e'), List.fold_left union occur occurs -and annot_path env p : Il.Ast.path * occur = +and annot_path env p : path * occur = let it, occur = match p.it with | RootP -> RootP, Env.empty @@ -553,7 +567,7 @@ and annot_path env p : Il.Ast.path * occur = DotP (p1', atom, as'), List.fold_left union occur1 occurs in {p with it}, occur -and annot_iterexp env occur1 (iter, xes) at : Il.Ast.iterexp * occur = +and annot_iterexp env occur1 (iter, xes) at : iterexp * occur = Il.Debug.(log "il.annot_iterexp" (fun _ -> fmt "%s %s" (il_iter iter) (il_occur occur1)) (fun ((iter', _), occur') -> fmt "%s %s" (il_iter iter') (il_occur occur')) @@ -581,7 +595,7 @@ and annot_iterexp env occur1 (iter, xes) at : Il.Ast.iterexp * occur = List.map (fun (x, (x', (t, _))) -> x $ at, VarE (x' $ at) $$ at % t) occur1'_l in (iter', xes'), union (Env.of_seq (List.to_seq (List.map snd occur1'_l))) occur2 -and annot_sym env g : Il.Ast.sym * occur = +and annot_sym env g : sym * occur = Il.Debug.(log_in "il.annot_sym" (fun _ -> il_sym g)); let it, occur = match g.it with @@ -610,7 +624,7 @@ and annot_sym env g : Il.Ast.sym * occur = AttrG (e1', g2'), union occur1 occur2 in {g with it}, occur -and annot_arg env a : Il.Ast.arg * occur = +and annot_arg env a : arg * occur = let it, occur = match a.it with | ExpA e -> @@ -625,7 +639,7 @@ and annot_arg env a : Il.Ast.arg * occur = GramA g', occur1 in {a with it}, occur -and annot_prem env prem : Il.Ast.prem * occur = +and annot_prem env prem : prem * occur = let it, occur = match prem.it with | RulePr (x, op, e) -> @@ -646,6 +660,15 @@ and annot_prem env prem : Il.Ast.prem * occur = IterPr (prem1', iter'), occur' in {prem with it}, occur +let annot_inst env inst : inst * occur = + let InstD (qs, as_, dt) = inst.it in + assert (qs = []); + let as', occurs = List.split (List.map (annot_arg env) as_) in + let dt', occur = dt, Env.empty in (* assume dt was already annotated *) + {inst with it = InstD (qs, as', dt')}, List.fold_left union occur occurs + + +(* Top-level entry points *) let annot_top annot_x env x = let x', occurs = annot_x env x in @@ -657,3 +680,4 @@ let annot_exp = annot_top annot_exp let annot_sym = annot_top annot_sym let annot_arg = annot_top annot_arg let annot_prem = annot_top annot_prem +let annot_inst = annot_top annot_inst diff --git a/spectec/src/frontend/dim.mli b/spectec/src/frontend/dim.mli index c21cbae8d2..205aee2093 100644 --- a/spectec/src/frontend/dim.mli +++ b/spectec/src/frontend/dim.mli @@ -1,18 +1,21 @@ +open Il.Ast + module Env : Map.S with type key = string -type outer = El.Ast.id list -type env = El.Ast.iter list Env.t -type env' = Il.Ast.iter list Env.t +type outer = id list +type env = iter list Env.t -val annot_varid : Il.Ast.id -> Il.Ast.iter list -> Il.Ast.id +val annot_varid : id -> iter list -> id -val check_def : El.Ast.def -> env (* raises Error.Error *) -val check_prod : outer -> El.Ast.prod -> env (* raises Error.Error *) -val check_typdef : outer -> El.Ast.typ -> El.Ast.prem El.Ast.nl_list -> env - (* raises Error.Error *) +val check_def : def -> env (* raises Error.Error *) +val check_inst : outer -> arg list -> deftyp -> env (* raises Error.Error *) +val check_prod : outer -> sym -> exp -> prem list -> env (* raises Error.Error *) +val check_abbr : outer -> sym -> sym -> prem list -> env (* raises Error.Error *) +val check_deftyp : outer -> typ list -> prem list -> env (* raises Error.Error *) -val annot_iter : env' -> Il.Ast.iter -> Il.Ast.iter -val annot_exp : env' -> Il.Ast.exp -> Il.Ast.exp -val annot_sym : env' -> Il.Ast.sym -> Il.Ast.sym -val annot_arg : env' -> Il.Ast.arg -> Il.Ast.arg -val annot_prem : env' -> Il.Ast.prem -> Il.Ast.prem +val annot_iter : env -> iter -> iter +val annot_exp : env -> exp -> exp +val annot_sym : env -> sym -> sym +val annot_arg : env -> arg -> arg +val annot_prem : env -> prem -> prem +val annot_inst : env -> inst -> inst diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index 7421f6cb18..fccc5a2641 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -933,7 +933,7 @@ and elab_typfield env tid at (tf : typfield) : Il.typfield = let atom, (t, prems), hints = tf in let _mixop, qs, t', prems' = elab_typ_notation' env tid at t prems in let hints' = elab_hints tid "" hints in - let t'' = (* TODO(4, rossberg): remove this hack *) + let t'' = match t'.it with | Il.TupT [(_, t1')] when prems' = [] -> t1' | _ -> t' @@ -1039,12 +1039,13 @@ and elab_typ_notation' env tid at (t : typ) (prems : prem nl_list) : assert (valid_tid tid); let env' = local_env env in let mixop, ts' = elab_typ_notation env' tid t in - let es' = pats'_of_typs ts' in - let dims = Dim.check_typdef (vars env) t prems in - let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let es' = List.map (Dim.annot_exp dims') es' in let qss, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in - let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in + let es' = pats'_of_typs ts' in + let prems' = List.concat premss' in + let dims = Dim.check_deftyp (vars env) ts' prems' in + let es' = List.map (Dim.annot_exp dims) es' in + let t' = tup_typ_bind' es' ts' t.at in + let prems' = List.map (Dim.annot_prem dims) prems' in let det = Free.(diff (union (det_typ t) (det_prems prems)) (bound_env env)) in let free = Free.(diff (union (free_typ t) (free_prems prems)) (union det (bound_env env))) in if free <> Free.empty then @@ -1054,11 +1055,11 @@ List.iteri (fun i e -> Printf.printf "[notation] e%d' = %s\n%!" i (Il.Print.stri error at ("premise contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); ); - let acc_qs, (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in - let module Acc = Iter.Make(Arg) in - Acc.typ t; - Acc.prems prems; - mixop, !acc_qs @ List.concat qss, tup_typ_bind' es' ts' t.at, prems' + let acc_qs, (module Arg : Il.Iter.Arg) = make_quants_iter_arg env' det dims in + let module Acc = Il.Iter.Make(Arg) in + Acc.typ t'; + Acc.prems prems'; + mixop, !acc_qs @ List.concat qss, t', prems' and elab_typ_notation env tid (t : typ) : Il.mixop * Il.typ list = Debug.(log_at "el.elab_typ_notation" t.at @@ -2338,10 +2339,7 @@ and elab_prod env (prod : prod) (t : Il.typ) : Il.prod list = | SynthP (g, e, prems) -> let env' = local_env env in env'.pm <- false; - let dims = Dim.check_prod (vars env) prod in - let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let qs1, g', _t = checkpoint (infer_sym env' g) in - let g' = Dim.annot_sym dims' g' in + let qs1, g', _t' = checkpoint (infer_sym env' g) in let qs2, e' = checkpoint ( let t_unit = Il.TupT [] $ e.at in @@ -2358,19 +2356,22 @@ and elab_prod env (prod : prod) (t : Il.typ) : Il.prod list = elab_exp env' e t ) in - let e' = Dim.annot_exp dims' e' in let qss3, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in - let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in + let prems' = List.concat premss' in + let dims = Dim.check_prod (vars env) g' e' prems' in + let g' = Dim.annot_sym dims g' in + let e' = Dim.annot_exp dims e' in + let prems' = List.map (Dim.annot_prem dims) prems' in let det = Free.(diff (union (det_sym g) (det_prems prems)) (bound_env env)) in let free = Free.(diff (free_prod prod) (union (det_prod prod) (bound_env env'))) in if free <> Free.empty then error prod.at ("grammar rule contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_qs, (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in - let module Acc = Iter.Make(Arg) in - Acc.sym g; - Acc.exp e; - Acc.prems prems; + let acc_qs, (module Arg : Il.Iter.Arg) = make_quants_iter_arg env' det dims in + let module Acc = Il.Iter.Make(Arg) in + Acc.sym g'; + Acc.exp e'; + Acc.prems prems'; let prod' = Il.ProdD (!acc_qs @ qs1 @ qs2 @ List.concat qss3, g', e', prems') $ prod.at in if not env'.pm then [prod'] @@ -2415,24 +2416,24 @@ and elab_prod env (prod : prod) (t : Il.typ) : Il.prod list = | EquivP (g1, g2, prems) -> let env' = local_env env in env'.pm <- false; - let dims = Dim.check_prod (vars env) prod in - let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let qs1, g1', _t1 = checkpoint (infer_sym env' g1) in - let g1' = Dim.annot_sym dims' g1' in - let qs2, g2', _t2 = checkpoint (infer_sym env' g2) in - let g2' = Dim.annot_sym dims' g2' in + let qs1, g1', _t1' = checkpoint (infer_sym env' g1) in + let qs2, g2', _t2' = checkpoint (infer_sym env' g2) in let qss3, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in - let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in + let prems' = List.concat premss' in + let dims = Dim.check_abbr (vars env) g1' g2' prems' in + let g1' = Dim.annot_sym dims g1' in + let g2' = Dim.annot_sym dims g2' in + let prems' = List.map (Dim.annot_prem dims) prems' in let det = Free.(diff (union (det_sym g1) (det_prems prems)) (bound_env env)) in let free = Free.(diff (free_prod prod) (union (det_prod prod) (bound_env env'))) in if free <> Free.empty then error prod.at ("grammar rule contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_qs, (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in - let module Acc = Iter.Make(Arg) in - Acc.sym g1; - Acc.sym g2; - Acc.prems prems; + let acc_qs, (module Arg : Il.Iter.Arg) = make_quants_iter_arg env' det dims in + let module Acc = Il.Iter.Make(Arg) in + Acc.sym g1'; + Acc.sym g2'; + Acc.prems prems'; ignore (!acc_qs @ qs1 @ qs2 @ List.concat qss3, g1', g2', prems'); [] (* TODO(4, rossberg): translate equiv grammars properly *) (* @@ -2450,10 +2451,10 @@ and elab_gram env (gram : gram) (t : Il.typ) : Il.prod list = (* Definitions *) -and make_quants_iter_arg env free dims : Il.quant list ref * (module Iter.Arg) = +and make_quants_iter_arg env free dims : Il.quant list ref * (module Il.Iter.Arg) = let module Arg = struct - include Iter.Skip + include Il.Iter.Skip let left = ref free let acc = ref [] @@ -2478,7 +2479,7 @@ and make_quants_iter_arg env free dims : Il.quant list ref * (module Iter.Arg) = String.concat ", " ) ^ ", which only occur(s) to its right; try to reorder parameters or premises"); let ctx' = - List.map (function Opt -> Il.Opt | _ -> Il.List) + List.map (function Il.Opt -> Il.Opt | _ -> Il.List) (Dim.Env.find id.it dims) in let t' = @@ -2791,7 +2792,7 @@ let elab_hintdef _env (hd : hintdef) : Il.def list = [] -let infer_quants env env' dims (d : def) : Il.quant list = +let infer_quants env env' dims (d : def) (d' : Il.def) : Il.quant list = Debug.(log_in_at "el.infer_quants" d.at (fun _ -> Map.fold (fun id _ ids -> @@ -2804,13 +2805,13 @@ let infer_quants env env' dims (d : def) : Il.quant list = if free <> Free.empty then error d.at ("definition contains indeterminate variable(s) `" ^ String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_qs, (module Arg : Iter.Arg) = make_quants_iter_arg env' det dims in - let module Acc = Iter.Make(Arg) in - Acc.def d; + let acc_qs, (module Arg : Il.Iter.Arg) = make_quants_iter_arg env' det dims in + let module Acc = Il.Iter.Make(Arg) in + Acc.def d'; !acc_qs -let infer_no_quants env dims (d : def) = - let qs = infer_quants env env dims d in +let infer_no_quants env dims (d : def) (d' : Il.def) = + let qs = infer_quants env env dims d d' in assert (qs = []) @@ -2822,21 +2823,23 @@ let rec elab_def env (d : def) : Il.def list = env.pm <- false; let ps' = elab_params (local_env env) ps in if env.pm then error d.at "misplaced +- or -+ operator in syntax type declaration"; - let dims = Dim.check_def d in - infer_no_quants env dims d; + let d' = Il.TypD (x, ps', []) $ d.at in + let dims = Dim.check_def d' in + infer_no_quants env dims d d'; env.typs <- rebind "syntax type" env.typs x (ps', Family []); - [Il.TypD (x, ps', []) $ d.at] - @ elab_hintdef env (TypH (x, "" $ x.at, hints) $ d.at) + [d'] @ elab_hintdef env (TypH (x, "" $ x.at, hints) $ d.at) | TypD (x1, x2, as_, t, hints) -> let env' = local_env env in env'.pm <- false; let ps', k = find "syntax type" env.typs x1 in let qs1, as', _s = elab_args `Lhs env' as_ ps' d.at in let dots1, dt', dots2 = elab_typ_definition env' x1 t in - let dims = Dim.check_def d in - let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let qs = infer_quants env env' dims d in - let inst' = Il.InstD (qs @ qs1, List.map (Dim.annot_arg dims') as', dt') $ d.at in + let inst' = Il.InstD ([], as', dt') $ d.at in (* dummy *) + let d' = Il.TypD (x1, ps', [inst']) $ d.at in (* dummy *) + let dims = Dim.check_inst [] as' dt' in + let as' = List.map (Dim.annot_arg dims) as' in + let qs = infer_quants env env' dims d d' in + let inst' = Il.InstD (qs @ qs1, as', dt') $ d.at in let k', last = match k with | (Opaque | Transp) -> @@ -2853,7 +2856,7 @@ let rec elab_def env (d : def) : Il.def list = | Family insts -> if dots1 = Dots || dots2 = Dots then error_id x1 "syntax type family cases are not extensible"; - Family (insts @ [Il.InstD (qs1 @ qs, as', dt') $ d.at]), false + Family (insts @ [inst']), false in (* Printf.eprintf "[syntax %s] %s ~> %s\n%!" id1.it @@ -2869,9 +2872,11 @@ let rec elab_def env (d : def) : Il.def list = let ps' = elab_params env' ps in let t' = elab_typ env' t in if env'.pm then error d.at "misplaced +- or -+ operator in grammar"; - let xprods2' = List.map (fun pr -> x2, pr) (elab_gram env' gram t') in - let dims = Dim.check_def d in - infer_no_quants env' dims d; + let prods' = elab_gram env' gram t' in + let xprods2' = List.map (fun pr -> x2, pr) prods' in + let d' = Il.GramD (x1, ps', t', prods') $ d.at in (* dummy *) + let dims = Dim.check_def d' in + infer_no_quants env' dims d d'; let ps1', t1', xprods1', dots_opt = find "grammar" env.grams x1 in let dots1, _, dots2 = gram.it in let xprods' = @@ -2902,25 +2907,27 @@ let rec elab_def env (d : def) : Il.def list = let t' = tup_typ' ts' t.at in let not = Mixop.apply mixop ts' in if env.pm then error d.at "misplaced +- or -+ operator in relation"; - let dims = Dim.check_def d in - infer_no_quants env dims d; + let d' = Il.RelD (x, mixop, t', []) $ d.at in + let dims = Dim.check_def d' in + infer_no_quants env dims d d'; env.rels <- bind "relation" env.rels x (mixop, not, t', []); - [Il.RelD (x, mixop, t', []) $ d.at] - @ elab_hintdef env (RelH (x, hints) $ d.at) + [d'] @ elab_hintdef env (RelH (x, hints) $ d.at) | RuleD (x1, x2, e, prems) -> let env' = local_env env in env'.pm <- false; - let dims = Dim.check_def d in - let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in let mixop, not', t', rules' = find "relation" env.rels x1 in if List.exists (fun (x, _) -> x.it = x2.it) rules' then error d.at ("duplicate rule name `" ^ x1.it ^ (if x2.it = "" then "" else "/" ^ x2.it) ^ "`"); let qs1, es', _ = checkpoint (elab_exp_notation' env' x1 e not') in - let es' = List.map (Dim.annot_exp dims') es' in let qss2, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in - let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in - let qs = infer_quants env env' dims d in + let prems' = List.concat premss' in + let rule' = Il.RuleD (x2, [], mixop, tup_exp' es' e.at, prems') $ d.at in (* dummy *) + let d' = Il.RelD (x1, mixop, t', [rule']) $ d.at in (* dummy *) + let dims = Dim.check_def d' in + let qs = infer_quants env env' dims d d' in + let es' = List.map (Dim.annot_exp dims) es' in + let prems' = List.map (Dim.annot_prem dims) prems' in let rule' = Il.RuleD (x2, qs @ qs1 @ List.concat qss2, mixop, tup_exp' es' e.at, prems') $ d.at in env.rels <- rebind "relation" env.rels x1 (mixop, not', t', rules' @ [x2, rule']); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) @@ -2928,8 +2935,9 @@ let rec elab_def env (d : def) : Il.def list = env.pm <- false; let t' = elab_typ env t in if env.pm then error d.at "misplaced +- or -+ operator in variable declaration"; - let dims = Dim.check_def d in - infer_no_quants env dims d; + let d' = Il.DecD (x, [], t', []) $ d.at in (* dummy *) + let dims = Dim.check_def d' in + infer_no_quants env dims d d'; env.gvars <- rebind "variable" env.gvars x t'; [] | DecD (x, ps, t, hints) -> @@ -2938,26 +2946,29 @@ let rec elab_def env (d : def) : Il.def list = let ps' = elab_params env' ps in let t' = elab_typ env' t in if env'.pm then error d.at "misplaced +- or -+ operator in declaration"; - let dims = Dim.check_def d in - infer_no_quants env dims d; + let d' = Il.DecD (x, ps', t', []) $ d.at in + let dims = Dim.check_def d' in + infer_no_quants env dims d d'; env.defs <- bind "definition" env.defs x (ps', t', []); - [Il.DecD (x, ps', t', []) $ d.at] - @ elab_hintdef env (DecH (x, hints) $ d.at) + [d'] @ elab_hintdef env (DecH (x, hints) $ d.at) | DefD (x, as_, e, prems) -> let env' = local_env env in env'.pm <- false; - let dims = Dim.check_def d in - let dims' = Dim.Env.map (List.map (elab_typiter env')) dims in - let ps, t, clauses' = find "definition" env.defs x in - let qs1, as', s = elab_args `Lhs env' as_ ps d.at in - let as' = List.map (Dim.annot_arg dims') as' in - let qss2, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in - let prems' = List.map (Dim.annot_prem dims') (List.concat premss') in - let qs3, e' = checkpoint (elab_exp env' e (Il.Subst.subst_typ s t)) in - let e' = Dim.annot_exp dims' e' in - let qs = infer_quants env env' dims d in - let clause' = Il.DefD (qs @ qs1 @ List.concat qss2 @ qs3, as', e', prems') $ d.at in - env.defs <- rebind "definition" env.defs x (ps, t, clauses' @ [(d, clause')]); + let ps', t', clauses' = find "definition" env.defs x in + let qs1, as', s = elab_args `Lhs env' as_ ps' d.at in + let qss3, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + (* Elab e after premises, so that type information can flow to it *) + let qs2, e' = checkpoint (elab_exp env' e (Il.Subst.subst_typ s t')) in + let prems' = List.concat premss' in + let clause' = Il.DefD ([], as', e', prems') $ d.at in (* dummy *) + let d' = Il.DecD (x, ps', t', [clause']) $ d.at in (* dummy *) + let dims = Dim.check_def d' in + let qs = infer_quants env env' dims d d' in + let as' = List.map (Dim.annot_arg dims) as' in + let e' = Dim.annot_exp dims e' in + let prems' = List.map (Dim.annot_prem dims) prems' in + let clause' = Il.DefD (qs @ qs1 @ qs2 @ List.concat qss3, as', e', prems') $ d.at in + env.defs <- rebind "definition" env.defs x (ps', t', clauses' @ [(d, clause')]); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) | SepD -> [] From bc1f143cbd0f531bce5cf3045155f94467ee9847 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Tue, 13 Jan 2026 13:49:30 +0100 Subject: [PATCH 08/23] WIP3 --- spectec/src/al/valid.ml | 4 +- spectec/src/el/free.ml | 136 +++-- spectec/src/frontend/det.ml | 197 ++++++++ spectec/src/frontend/det.mli | 11 + spectec/src/frontend/dim.ml | 645 +++++++++++++----------- spectec/src/frontend/dim.mli | 28 +- spectec/src/frontend/dune | 4 +- spectec/src/frontend/elab.ml | 850 +++++++++++++++++++------------- spectec/src/frontend/eval.mli | 2 +- spectec/src/frontend/parser.mly | 2 +- spectec/src/il/env.ml | 3 +- spectec/src/il/eval.ml | 4 +- spectec/src/il/free.ml | 88 ++-- spectec/src/il/free.mli | 2 + spectec/src/il/fresh.ml | 8 +- spectec/src/il/subst.ml | 9 +- spectec/src/il/subst.mli | 3 +- spectec/src/il/valid.ml | 80 ++- spectec/src/il2al/free.ml | 44 +- spectec/src/util/debug_log.ml | 11 +- spectec/src/xl/gen_free.ml | 90 ++++ spectec/src/xl/gen_free.mli | 37 ++ 22 files changed, 1415 insertions(+), 843 deletions(-) create mode 100644 spectec/src/frontend/det.ml create mode 100644 spectec/src/frontend/det.mli create mode 100644 spectec/src/xl/gen_free.ml create mode 100644 spectec/src/xl/gen_free.mli diff --git a/spectec/src/al/valid.ml b/spectec/src/al/valid.ml index a202345b89..c66a6d9762 100644 --- a/spectec/src/al/valid.ml +++ b/spectec/src/al/valid.ml @@ -175,7 +175,7 @@ and unify_typs_opt : typ list -> typ option = function and ground_typ_of (typ: typ) : typ = match typ.it with | VarT (id, _) when IlEnv.mem_var !il_env id -> - let typ' = IlEnv.find_var !il_env id in + let typ', _ = IlEnv.find_var !il_env id in if Il.Eq.eq_typ typ typ' then typ else ground_typ_of typ' (* NOTE: Consider `fN` as a `NumT` to prevent diverging ground type *) | VarT (id, _) when id.it = "fN" -> NumT `RealT $ typ.at @@ -316,7 +316,7 @@ let check_call source id args result_typ = match arg.it, param.it with | ExpA expr, ExpP (_, typ') -> check_match source expr.note typ' (* Add local variable typ *) - | TypA typ1, TypP id -> il_env := IlEnv.bind_var !il_env id typ1 + | TypA typ1, TypP id -> il_env := IlEnv.bind_var !il_env id (typ1, Reg) | DefA aid, DefP (_, pparams, ptyp) -> (match IlEnv.find_opt_def !il_env (aid $ no_region) with | Some (aparams, atyp, _) -> diff --git a/spectec/src/el/free.ml b/spectec/src/el/free.ml index afc1bb298e..7af8432c95 100644 --- a/spectec/src/el/free.ml +++ b/spectec/src/el/free.ml @@ -2,17 +2,13 @@ open Util.Source open Ast open Xl - include Xl.Gen_free -let (+) = union -let (-) = diff - (* Aggregates *) let free_nl_elem free_x = function Nl -> empty | Elem x -> free_x x -let free_nl_list free_x xs = List.(fold_left (+) empty (map (free_nl_elem free_x) xs)) +let free_nl_list free_x xs = List.(fold_left (++) empty (map (free_nl_elem free_x) xs)) (* Identifiers *) @@ -32,43 +28,43 @@ let bound_op op = free_op op let rec free_iter iter = match iter with | Opt | List | List1 -> empty - | ListN (e, id_opt) -> free_exp e + free_opt free_varid id_opt + | ListN (e, id_opt) -> free_exp e ++ free_opt free_varid id_opt (* Types *) and free_typ t = match t.it with - | VarT (id, as_) -> free_typid id + free_args as_ + | VarT (id, as_) -> free_typid id ++ free_args as_ | BoolT | NumT _ | TextT -> empty | ParenT t1 -> free_typ t1 | TupT ts -> free_list free_typ ts - | IterT (t1, iter) -> free_typ t1 + free_iter iter + | IterT (t1, iter) -> free_typ t1 ++ free_iter iter | StrT (_, ts, tfs, _) -> - free_nl_list free_typ ts + - free_nl_list (fun tf -> free_typfield tf - det_typfield tf) tfs + free_nl_list free_typ ts ++ + free_nl_list (fun tf -> free_typfield tf -- det_typfield tf) tfs | CaseT (_, ts, tcs, _) -> - free_nl_list free_typ ts + - free_nl_list (fun tc -> free_typcase tc - det_typcase tc) tcs - | ConT tc -> free_typcon tc - det_typcon tc + free_nl_list free_typ ts ++ + free_nl_list (fun tc -> free_typcase tc -- det_typcase tc) tcs + | ConT tc -> free_typcon tc -- det_typcon tc | RangeT tes -> free_nl_list free_typenum tes | AtomT _ -> empty | SeqT ts -> free_list free_typ ts - | InfixT (t1, _, t2) -> free_typ t1 + free_typ t2 + | InfixT (t1, _, t2) -> free_typ t1 ++ free_typ t2 | BrackT (_, t1, _) -> free_typ t1 -and free_typfield (_, (t, prems), _) = free_typ t + free_prems prems -and free_typcase (_, (t, prems), _) = free_typ t + free_prems prems -and free_typcon ((t, prems), _) = free_typ t + free_prems prems -and free_typenum (e, eo) = free_exp e + free_opt free_exp eo +and free_typfield (_, (t, prems), _) = free_typ t ++ free_prems prems +and free_typcase (_, (t, prems), _) = free_typ t ++ free_prems prems +and free_typcon ((t, prems), _) = free_typ t ++ free_prems prems +and free_typenum (e, eo) = free_exp e ++ free_opt free_exp eo (* Variables can be determined by types through implicit binders *) and det_typ t = det_exp (Convert.pat_of_typ t) -and det_typfield (_, (t, prems), _) = det_typ t + det_prems prems -and det_typcase (_, (t, prems), _) = det_typ t + det_prems prems -and det_typcon ((t, prems), _) = det_typ t + det_prems prems +and det_typfield (_, (t, prems), _) = det_typ t ++ det_prems prems +and det_typcase (_, (t, prems), _) = det_typ t ++ det_prems prems +and det_typcon ((t, prems), _) = det_typ t ++ det_prems prems (* Expressions *) @@ -79,38 +75,38 @@ and free_unop = function and free_exp e = match e.it with - | VarE (id, as_) -> free_varid id + free_list free_arg as_ + | VarE (id, as_) -> free_varid id ++ free_list free_arg as_ | AtomE _ | BoolE _ | NumE _ | TextE _ | EpsE | HoleE _ | LatexE _ -> empty - | UnE (op, e1) -> free_unop op + free_exp e1 + | UnE (op, e1) -> free_unop op ++ free_exp e1 | CvtE (e1, _) | DotE (e1, _) | LenE e1 | ParenE e1 | BrackE (_, e1, _) | ArithE e1 | UnparenE e1 -> free_exp e1 | SizeE id -> free_gramid id | BinE (e1, _, e2) | CmpE (e1, _, e2) | IdxE (e1, e2) | CommaE (e1, e2) | CatE (e1, e2) | MemE (e1, e2) - | InfixE (e1, _, e2) | FuseE (e1, e2) -> free_exp e1 + free_exp e2 - | SliceE (e1, e2, e3) -> free_exp e1 + free_exp e2 + free_exp e3 + | InfixE (e1, _, e2) | FuseE (e1, e2) -> free_exp e1 ++ free_exp e2 + | SliceE (e1, e2, e3) -> free_exp e1 ++ free_exp e2 ++ free_exp e3 | SeqE es | ListE es | TupE es -> free_list free_exp es | UpdE (e1, p, e2) | ExtE (e1, p, e2) -> - free_exp e1 + free_path p + free_exp e2 + free_exp e1 ++ free_path p ++ free_exp e2 | StrE efs -> free_nl_list free_expfield efs - | CallE (id, as_) -> free_defid id + free_list free_arg as_ - | IterE (e1, iter) -> free_exp e1 + free_iter iter - | TypE (e1, t) -> free_exp e1 + free_typ t + | CallE (id, as_) -> free_defid id ++ free_list free_arg as_ + | IterE (e1, iter) -> free_exp e1 ++ free_iter iter + | TypE (e1, t) -> free_exp e1 ++ free_typ t and free_expfield (_, e) = free_exp e and free_path p = match p.it with | RootP -> empty - | IdxP (p1, e) -> free_path p1 + free_exp e - | SliceP (p1, e1, e2) -> free_path p1 + free_exp e1 + free_exp e2 + | IdxP (p1, e) -> free_path p1 ++ free_exp e + | SliceP (p1, e1, e2) -> free_path p1 ++ free_exp e1 ++ free_exp e2 | DotP (p1, _) -> free_path p1 and det_unop = function | #signop -> - bound_op (Print.string_of_unop `PlusMinusOp) + + bound_op (Print.string_of_unop `PlusMinusOp) ++ bound_op (Print.string_of_unop `MinusPlusOp) | _ -> empty @@ -118,21 +114,21 @@ and det_exp e = match e.it with | VarE (id, []) -> bound_varid id | VarE _ -> assert false - | UnE (#signop as op, e1) -> det_unop op + det_exp e1 + | UnE (#signop as op, e1) -> det_unop op ++ det_exp e1 | CvtE (e1, _) | UnE (#Num.unop, e1) | ParenE e1 | BrackE (_, e1, _) | ArithE e1 -> det_exp e1 (* We consider arithmetic expressions determinate, * since we sometimes need to use invertible formulas. *) | BinE (e1, #Num.binop, e2) - | InfixE (e1, _, e2) -> det_exp e1 + det_exp e2 + | InfixE (e1, _, e2) -> det_exp e1 ++ det_exp e2 | SeqE es | ListE es | TupE es -> free_list det_exp es | StrE efs -> free_nl_list det_expfield efs - | IterE (e1, iter) -> det_exp e1 + det_iter iter + | IterE (e1, iter) -> det_exp e1 ++ det_iter iter (* As a special hack to work with bijective functions, * we treat last position of a call as a pattern, too. *) | CallE (_, []) -> empty | CallE (_, as_) -> - free_list idx_arg as_ + det_arg (Util.Lib.List.last as_) + free_list idx_arg as_ ++ det_arg (Util.Lib.List.last as_) | TypE (e1, _) -> det_exp e1 | AtomE _ | BoolE _ | NumE _ | TextE _ | EpsE -> empty | UnE _ | BinE _ | CmpE _ @@ -145,16 +141,16 @@ and det_expfield (_, e) = det_exp e and det_iter iter = match iter with | Opt | List | List1 -> empty - | ListN (e, id_opt) -> det_exp e + free_opt bound_varid id_opt + | ListN (e, id_opt) -> det_exp e ++ free_opt bound_varid id_opt and idx_exp e = match e.it with | VarE _ -> empty | ParenE e1 | BrackE (_, e1, _) | ArithE e1 -> idx_exp e1 - | InfixE (e1, _, e2) -> idx_exp e1 + idx_exp e2 + | InfixE (e1, _, e2) -> idx_exp e1 ++ idx_exp e2 | SeqE es | ListE es | TupE es -> free_list idx_exp es | StrE efs -> free_nl_list idx_expfield efs - | IterE (e1, iter) -> idx_exp e1 + idx_iter iter + | IterE (e1, iter) -> idx_exp e1 ++ idx_iter iter | CallE (_, as_) -> free_list idx_arg as_ | TypE (e1, _) -> idx_exp e1 | IdxE (_, e2) -> det_exp e2 @@ -165,13 +161,13 @@ and idx_expfield (_, e) = idx_exp e and idx_iter iter = match iter with | Opt | List | List1 -> empty - | ListN (e, id_opt) -> idx_exp e + free_opt bound_varid id_opt + | ListN (e, id_opt) -> idx_exp e ++ free_opt bound_varid id_opt and det_cond_exp e = match e.it with | UnE (#Bool.unop, e1) -> det_cond_exp e1 - | BinE (e1, #Bool.binop, e2) -> det_cond_exp e1 + det_cond_exp e2 - | CmpE (e1, `EqOp, e2) -> det_exp e1 + det_exp e2 + | BinE (e1, #Bool.binop, e2) -> det_cond_exp e1 ++ det_cond_exp e2 + | CmpE (e1, `EqOp, e2) -> det_exp e1 ++ det_exp e2 | MemE (e1, _) -> det_exp e1 | ParenE e1 | ArithE e1 -> det_cond_exp e1 | _ -> empty @@ -181,40 +177,40 @@ and det_cond_exp e = and free_sym g = match g.it with - | VarG (id, as_) -> free_gramid id + free_args as_ + | VarG (id, as_) -> free_gramid id ++ free_args as_ | NumG _ | TextG _ | EpsG -> empty | SeqG gs | AltG gs -> free_nl_list free_sym gs - | RangeG (g1, g2) | FuseG (g1, g2) -> free_sym g1 + free_sym g2 + | RangeG (g1, g2) | FuseG (g1, g2) -> free_sym g1 ++ free_sym g2 | ParenG g1 | UnparenG g1 -> free_sym g1 | TupG gs -> free_list free_sym gs - | IterG (g1, iter) -> free_sym g1 + free_iter iter + | IterG (g1, iter) -> free_sym g1 ++ free_iter iter | ArithG e -> free_exp e - | AttrG (e, g1) -> free_exp e + free_sym g1 + | AttrG (e, g1) -> free_exp e ++ free_sym g1 and det_sym g = match g.it with | VarG _ | NumG _ | TextG _ | EpsG -> empty | SeqG gs | AltG gs -> free_nl_list det_sym gs - | RangeG (g1, g2) -> det_sym g1 + det_sym g2 + | RangeG (g1, g2) -> det_sym g1 ++ det_sym g2 | ParenG g1 -> det_sym g1 | TupG gs -> free_list det_sym gs - | IterG (g1, iter) -> det_sym g1 + det_iter iter + | IterG (g1, iter) -> det_sym g1 ++ det_iter iter | ArithG e -> det_exp e - | AttrG (e, g1) -> det_exp e + det_sym g1 + | AttrG (e, g1) -> det_exp e ++ det_sym g1 | FuseG _ | UnparenG _ -> assert false and free_prod prod = match prod.it with - | SynthP (g, e, prems) -> free_sym g + free_exp e + free_prems prems + | SynthP (g, e, prems) -> free_sym g ++ free_exp e ++ free_prems prems | RangeP (g1, e1, g2, e2) -> - free_sym g1 + free_exp e1 + free_sym g2 + free_exp e2 - | EquivP (g1, g2, prems) -> free_sym g1 + free_sym g2 + free_prems prems + free_sym g1 ++ free_exp e1 ++ free_sym g2 ++ free_exp e2 + | EquivP (g1, g2, prems) -> free_sym g1 ++ free_sym g2 ++ free_prems prems and det_prod prod = match prod.it with - | SynthP (g, _e, prems) -> det_sym g + det_prems prems - | RangeP (g1, _e1, g2, _e2) -> det_sym g1 + det_sym g2 - | EquivP (g1, _g2, prems) -> det_sym g1 + det_prems prems + | SynthP (g, _e, prems) -> det_sym g ++ det_prems prems + | RangeP (g1, _e1, g2, _e2) -> det_sym g1 ++ det_sym g2 + | EquivP (g1, _g2, prems) -> det_sym g1 ++ det_prems prems and free_gram gram = let (_dots1, prods, _dots2) = gram.it in @@ -226,11 +222,11 @@ and free_gram gram = and free_prem prem = match prem.it with - | VarPr (id, t) -> free_varid id + free_typ t - | RulePr (id, e) -> free_relid id + free_exp e + | VarPr (id, t) -> free_varid id ++ free_typ t + | RulePr (id, e) -> free_relid id ++ free_exp e | IfPr e -> free_exp e | ElsePr -> empty - | IterPr (prem1, iter) -> free_prem prem1 + free_iter iter + | IterPr (prem1, iter) -> free_prem prem1 ++ free_iter iter and det_prem prem = match prem.it with @@ -238,7 +234,7 @@ and det_prem prem = | RulePr (_id, e) -> det_exp e | IfPr e -> det_cond_exp e | ElsePr -> empty - | IterPr (prem1, iter) -> det_prem prem1 + det_iter iter + | IterPr (prem1, iter) -> det_prem prem1 ++ det_iter iter and free_prems prems = free_nl_list free_prem prems and det_prems prems = free_nl_list det_prem prems @@ -271,16 +267,16 @@ and free_param p = match p.it with | ExpP (_, t) -> free_typ t | TypP _ -> empty - | GramP (_, ps, t) -> free_params ps + free_typ t - bound_params ps - impl_bound_typ ps t - | DefP (_, ps, t) -> free_params ps + free_typ t - bound_params ps + | GramP (_, ps, t) -> free_params ps ++ free_typ t -- bound_params ps -- impl_bound_typ ps t + | DefP (_, ps, t) -> free_params ps ++ free_typ t -- bound_params ps -and impl_bound_typ ps t = {empty with typid = (free_typ t).typid} - bound_params ps +and impl_bound_typ ps t = {empty with typid = (free_typ t).typid} -- bound_params ps and bound_param p = match p.it with | ExpP (id, _) -> bound_varid id | TypP id -> bound_typid id - | GramP (id, ps, t) -> bound_gramid id + impl_bound_typ ps t + | GramP (id, ps, t) -> bound_gramid id ++ impl_bound_typ ps t | DefP (id, _, _) -> bound_defid id and free_args as_ = free_list free_arg as_ @@ -294,23 +290,23 @@ let free_def d = | FamD (_id, ps, _hints) -> free_list free_param ps | TypD (_id1, _id2, as_, t, _hints) -> - free_args as_ + free_typ t + free_args as_ ++ free_typ t | GramD (_id1, _id2, ps, t, gram, _hints) -> - free_params ps + (free_typ t + free_gram gram - bound_params ps - impl_bound_typ ps t) + free_params ps ++ (free_typ t ++ free_gram gram -- bound_params ps -- impl_bound_typ ps t) | VarD (_id, t, _hints) -> free_typ t | SepD -> empty | RelD (_id, t, _hints) -> free_typ t | RuleD (id1, _id2, e, prems) -> - free_relid id1 + free_exp e + free_prems prems + free_relid id1 ++ free_exp e ++ free_prems prems | DecD (_id, ps, t, _hints) -> - free_params ps + free_typ t - bound_params ps + free_params ps ++ free_typ t -- bound_params ps | DefD (id, as_, e, prems) -> - free_defid id + free_args as_ + free_exp e + free_prems prems + free_defid id ++ free_args as_ ++ free_exp e ++ free_prems prems | HintD _ -> empty let det_def d = match d.it with | FamD _ | GramD _ | VarD _ | SepD | RelD _ | DecD _ | HintD _ -> empty | TypD (_id1, _id2, as_, _t, _hints) -> det_args as_ - | RuleD (_id1, _id2, e, prems) -> det_exp e + det_prems prems - | DefD (_id, as_, e, prems) -> det_args as_ + idx_exp e + det_prems prems + | RuleD (_id1, _id2, e, prems) -> det_exp e ++ det_prems prems + | DefD (_id, as_, e, prems) -> det_args as_ ++ idx_exp e ++ det_prems prems diff --git a/spectec/src/frontend/det.ml b/spectec/src/frontend/det.ml new file mode 100644 index 0000000000..d7261f486d --- /dev/null +++ b/spectec/src/frontend/det.ml @@ -0,0 +1,197 @@ +open Util.Source +open Il.Ast +open Il.Free + +include Xl.Gen_free + +let det_list = free_list + + +(* Iterations *) + +let rec det_iter iter = + match iter with + | Opt | List | List1 -> empty + | ListN (e, x_opt) -> det_exp e ++ free_opt bound_varid x_opt + + +(* Types *) + +and det_typ t = + Il.Debug.(log_at "il.det_typ" t.at + (fun _ -> fmt "%s" (il_typ t)) + (fun s -> String.concat ", " (Set.elements s.varid)) + ) @@ fun _ -> + match t.it with + | VarT (_x, as_) -> det_list det_arg as_ + | BoolT | NumT _ | TextT -> empty + | TupT xts -> det_list det_typbind xts + | IterT (t1, iter) -> det_typ t1 ++ det_iter iter + +and det_typbind (x, t) = bound_varid x ++ det_typ t + + +(* Expressions *) + +and det_exp e = + Il.Debug.(log_at "il.det_exp" e.at + (fun _ -> fmt "%s" (il_exp e)) + (fun s -> String.concat ", " (Set.elements s.varid)) + ) @@ fun _ -> + match e.it with + | VarE x -> bound_varid x + | BoolE _ | NumE _ | TextE _ -> empty + (* We consider arithmetic expressions determinate, + * since we sometimes need to use invertible formulas. *) + | CvtE (e1, _, _) | UnE (#Xl.Num.unop, _, e1) | TheE e1 | LiftE e1 + | SubE (e1, _, _) -> det_exp e1 + | BinE (#Xl.Num.binop, _, e1, e2) | CatE (e1, e2) -> det_exp e1 ++ det_exp e2 + | OptE eo -> free_opt det_exp eo + | ListE es | TupE es -> det_list det_exp es + | CaseE (_, as_, e1) | UncaseE (e1, _, as_) -> det_exp e1 ++ det_list det_arg as_ + | StrE efs -> det_list det_expfield efs + | IterE (e1, ite) -> det_iterexp (det_exp e1) ite + (* As a special hack to work with bijective functions, + * we treat last position of a call as a pattern, too. *) + | CallE (_, []) -> empty + | CallE (_, as_) -> det_list det_idx_arg as_ ++ det_arg (Util.Lib.List.last as_) + | UnE _ | BinE _ | CmpE _ + | IdxE _ | SliceE _ | UpdE _ | ExtE _ | CompE _ | MemE _ + | ProjE _ | DotE _ | LenE _ -> det_idx_exp e + +and det_expfield (_, _, e) = det_exp e + +and det_iterexp s1 (iter, xes) = + s1 -- free_list bound_varid (List.map fst xes) ++ + det_iter iter ++ + det_list det_exp (List.filter_map + (fun (x, e) -> if Set.mem x.it s1.varid then Some e else None) xes) + + +and det_cond_exp e = + Il.Debug.(log_at "il.det_cond_exp" e.at + (fun _ -> fmt "%s" (il_exp e)) + (fun s -> String.concat ", " (Set.elements s.varid)) + ) @@ fun _ -> + match e.it with + | UnE (#Xl.Bool.unop, _, e1) -> det_cond_exp e1 + | BinE (#Xl.Bool.binop, _, e1, e2) -> det_cond_exp e1 ++ det_cond_exp e2 + | CmpE (`EqOp, _, e1, e2) -> det_exp e1 ++ det_exp e2 + | MemE (e1, e2) -> det_exp e1 ++ det_quant_exp e2 + | _ -> det_quant_exp e + + +and det_idx_exp e = + Il.Debug.(log_at "il.det_idx_exp" e.at + (fun _ -> fmt "%s" (il_exp e)) + (fun s -> String.concat ", " (Set.elements s.varid)) + ) @@ fun _ -> + match e.it with + | VarE _ -> empty + | LiftE e1 | SubE (e1, _, _) -> det_idx_exp e1 + | CaseE (_, as_, e1) -> det_list det_quant_arg as_ ++ det_idx_exp e1 + | OptE eo -> free_opt det_idx_exp eo + | ListE es | TupE es -> det_list det_idx_exp es + | StrE efs -> det_list det_idx_expfield efs + | IterE (e1, iter) -> det_idx_exp e1 ++ det_idx_iter (fst iter) + | CallE (_, as_) -> det_list det_idx_arg as_ + | IdxE (e1, e2) -> det_quant_exp e1 ++ det_exp e2 + | _ -> det_quant_exp e + +and det_idx_expfield (_, _, e) = det_idx_exp e + +and det_idx_iter iter = + match iter with + | Opt | List | List1 -> empty + | ListN (e, x_opt) -> det_idx_exp e ++ free_opt bound_varid x_opt + + +and det_quant_exp e = + Il.Debug.(log_at "il.det_quant_exp" e.at + (fun _ -> fmt "%s" (il_exp e)) + (fun s -> String.concat ", " (Set.elements s.varid)) + ) @@ fun _ -> + match e.it with + | VarE _ | BoolE _ | NumE _ | TextE _ -> empty + | UnE (_, _, e1) | ProjE (e1, _) | TheE e1 | LiftE e1 | LenE e1 + | CvtE (e1, _, _) | SubE (e1, _, _) -> + det_quant_exp e1 + | BinE (_, _, e1, e2) | CmpE (_, _, e1, e2) + | IdxE (e1, e2) | MemE (e1, e2) | CatE (e1, e2) | CompE (e1, e2) -> + det_quant_exp e1 ++ det_quant_exp e2 + | SliceE (e1, e2, e3) -> + det_quant_exp e1 ++ det_quant_exp e2 ++ det_quant_exp e3 + | UpdE (e1, p, e2) | ExtE (e1, p, e2) -> + det_quant_exp e1 ++ det_quant_path p ++ det_quant_exp e2 + | DotE (e1, _, as_) | CaseE (_, as_, e1) | UncaseE(e1, _, as_) -> + det_list det_arg as_ ++ det_quant_exp e1 + | OptE eo -> free_opt det_quant_exp eo + | ListE es | TupE es -> det_list det_quant_exp es + | StrE efs -> det_list det_quant_expfield efs + | IterE (e1, iter) -> det_quant_exp e1 ++ det_quant_iter (fst iter) + | CallE (_, as_) -> det_list det_quant_arg as_ + +and det_quant_expfield (_, _, e) = det_quant_exp e + +and det_quant_path p = + match p.it with + | RootP -> empty + | IdxP (p1, e) -> det_quant_path p1 ++ det_quant_exp e + | SliceP (p1, e1, e2) -> + det_quant_path p1 ++ det_quant_exp e1 ++ det_quant_exp e2 + | DotP (p1, _, as_) -> det_quant_path p1 ++ det_list det_quant_arg as_ + +and det_quant_iter iter = + match iter with + | Opt | List | List1 -> empty + | ListN (e, _x_opt) -> det_quant_exp e + + +(* Grammars *) + +and det_sym g = + match g.it with + | VarG _ | NumG _ | TextG _ | EpsG -> empty + | SeqG gs | AltG gs -> det_list det_sym gs + | RangeG (g1, g2) -> det_sym g1 ++ det_sym g2 + | IterG (g1, ite) -> det_iterexp (det_sym g1) ite + | AttrG (e, g1) -> det_exp e ++ det_sym g1 + + +(* Premises *) + +and det_prem pr = + Il.Debug.(log_at "il.det_prem" pr.at + (fun _ -> fmt "%s" (il_prem pr)) + (fun s -> String.concat ", " (Set.elements s.varid)) + ) @@ fun _ -> + match pr.it with + | RulePr (_x, _mixop, e) -> det_exp e + | IfPr e -> det_cond_exp e + | LetPr (e1, _e2, _xs) -> det_exp e1 + | ElsePr -> empty + | IterPr (pr1, ite) -> det_iterexp (det_prem pr1) ite + + +(* Definitions *) + +and det_arg a = + match a.it with + | ExpA e -> det_exp e + | TypA t -> free_typ t (* must be an id *) + | GramA g -> free_sym g (* must be an id *) + | DefA x -> bound_defid x + +and det_idx_arg a = + match a.it with + | ExpA e -> det_idx_exp e + | TypA _ -> empty + | GramA _ -> empty + | DefA _ -> empty + +and det_quant_arg a = + match a.it with + | ExpA e -> det_quant_exp e + | TypA _ -> empty + | GramA _ -> empty + | DefA _ -> empty diff --git a/spectec/src/frontend/det.mli b/spectec/src/frontend/det.mli new file mode 100644 index 0000000000..fe6c7f0f76 --- /dev/null +++ b/spectec/src/frontend/det.mli @@ -0,0 +1,11 @@ +open Il.Ast + +include module type of Xl.Gen_free + +val det_typ : typ -> sets +val det_exp : exp -> sets +val det_sym : sym -> sets +val det_prem : prem -> sets +val det_arg : arg -> sets + +val det_list : ('a -> sets) -> 'a list -> sets diff --git a/spectec/src/frontend/dim.ml b/spectec/src/frontend/dim.ml index 47aa84601f..4f2542ce5c 100644 --- a/spectec/src/frontend/dim.ml +++ b/spectec/src/frontend/dim.ml @@ -11,19 +11,18 @@ let error at msg = Error.error at "dimension" msg (* Environment *) -module Env = Map.Make(String) +module Map = Map.Make(String) -type outer = id list type ctx = iter list -type env = ctx Env.t -type renv = (region * ctx * [`Impl | `Expl]) list Env.t +type dims = (region * ctx) Map.t +type outer = dims +type rdims = (region * ctx * [`Impl | `Expl | `Outer]) list Map.t -let new_env outer = - List.fold_left (fun env id -> - Env.add id.it [(id.at, [], `Expl)] env) Env.empty outer |> ref +let new_dims outer = + ref (Map.map (fun (at, ctx) -> [(at, ctx, `Outer)]) outer) -let localize outer env = - List.fold_left (fun env id -> Env.remove id.it env) env outer +let localize outer dims = + Map.fold (fun x _ dims -> Map.remove x dims) outer dims let il_occur occur = @@ -31,7 +30,7 @@ let il_occur occur = List.map (fun (x, (t, iters)) -> x ^ ":" ^ Il.Debug.il_typ t ^ String.concat "" (List.map Il.Debug.il_iter iters) - ) (Env.bindings occur) + ) (Map.bindings occur) in "{" ^ String.concat ", " ss ^ "}" @@ -51,14 +50,15 @@ let rec is_prefix ctx1 ctx2 = let rec check_ctx id (at0, ctx0, mode0) = function | [] -> () | (at, ctx, mode)::ctxs -> - if not (is_prefix ctx0 ctx) && (mode0 = `Expl || mode = `Expl) then + if not (is_prefix ctx0 ctx) && (mode0 <> `Impl || mode <> `Impl) then error at ("inconsistent variable context, " ^ string_of_ctx id ctx0 ^ " vs " ^ string_of_ctx id ctx ^ " (" ^ string_of_region at0 ^ ")"); check_ctx id (at0, ctx0, mode0) ctxs -let check_ctxs id ctxs : ctx = +let check_ctxs id ctxs : region * ctx = + (* Invariant: there is at most one Outer occurrence per id. *) let sorted = if List.for_all (fun (_, _, mode) -> mode = `Impl) ctxs then (* Take first occurrence *) @@ -67,18 +67,19 @@ let check_ctxs id ctxs : ctx = ctxs else let sorted = List.stable_sort - (fun (_, ctx1, _) (_, ctx2, _) -> + (fun (_, ctx1, mode1) (_, ctx2, mode2) -> + if mode1 = `Outer then -1 else if mode2 = `Outer then +1 else compare (List.length ctx1) (List.length ctx2)) ctxs in check_ctx id (List.hd sorted) (List.tl sorted); sorted in - let _, ctx, _ = List.hd sorted in - ctx + let at, ctx, _ = List.hd sorted in + at, ctx -let check_env (env : renv ref) : env = - Env.mapi check_ctxs !env +let check_dims (dims : rdims ref) : dims = + Map.mapi check_ctxs !dims (* Collecting constraints *) @@ -87,18 +88,18 @@ let strip_index = function | ListN (e, Some _) -> ListN (e, None) | iter -> iter -let check_typid _env _ctx _id = () (* Types are always global *) -let check_gramid _env _ctx _id = () (* Grammars are always global *) +let check_typid _dims _ctx _id = () (* Types are always global *) +let check_gramid _dims _ctx _id = () (* Grammars are always global *) -let check_varid env ctx mode id = - let ctxs = Option.value (Env.find_opt id.it !env) ~default:[] in - env := Env.add id.it ((id.at, ctx, mode)::ctxs) !env +let check_varid dims ctx mode id = + let ctxs = Option.value (Map.find_opt id.it !dims) ~default:[] in + dims := Map.add id.it ((id.at, ctx, mode)::ctxs) !dims -let rec check_iter env ctx iter = +let rec check_iter dims ctx iter = match iter with | Opt | List | List1 -> () | ListN (e, id_opt) -> - check_exp env ctx e; + check_exp dims ctx e; (* TODO(2, rossberg): The dimension for id should match that of e: * for example, if we b^(i check_varid env [strip_index iter] `Expl id) id_opt + Option.iter (fun id -> check_varid dims [strip_index iter] `Expl id) id_opt -and check_typ env ctx t = +and check_typ dims ctx t = match t.it with | VarT (x, args) -> - check_typid env ctx x; - List.iter (check_arg env ctx) args + check_typid dims ctx x; + List.iter (check_arg dims ctx) args | BoolT | NumT _ | TextT -> () - | TupT xts -> List.iter (check_typbind env ctx) xts + | TupT xts -> List.iter (check_typbind dims ctx) xts | IterT (t1, iter) -> - check_iter env ctx iter; - check_typ env (strip_index iter::ctx) t1 + check_iter dims ctx iter; + check_typ dims (strip_index iter::ctx) t1 -and check_typbind env ctx (x, t) = - check_varid env ctx `Impl x; - check_typ env ctx t +and check_typbind dims ctx (x, t) = + check_varid dims ctx `Impl x; + check_typ dims ctx t -and check_deftyp env ctx dt = +(* +and check_deftyp dims ctx dt = match dt.it with | AliasT t -> - check_typ env ctx t + check_typ dims ctx t | StructT tfs -> List.iter (fun (_, (qs, tI, prems), _) -> - let env' = ref Env.empty in + let dims' = ref Map.empty in assert (qs = []); - check_typ env' ctx tI; - List.iter (check_prem env' ctx) prems + check_typ dims' ctx tI; + List.iter (check_prem dims' ctx) prems ) tfs | VariantT tcs -> List.iter (fun (_, (qs, tI, prems), _) -> - let env' = ref Env.empty in + let dims' = ref Map.empty in assert (qs = []); - check_typ env' ctx tI; - List.iter (check_prem env' ctx) prems + check_typ dims' ctx tI; + List.iter (check_prem dims' ctx) prems ) tcs +*) -and check_iterexp env ctx (iter, xes) = - check_iter env ctx iter; +and check_iterexp dims ctx (iter, xes) = + check_iter dims ctx iter; assert (xes = []) -and check_exp env ctx e = +and check_exp dims ctx e = match e.it with | VarE x -> - check_varid env ctx `Expl x + check_varid dims ctx `Expl x | BoolE _ | NumE _ | TextE _ -> () @@ -163,212 +166,225 @@ and check_exp env ctx e = | ProjE (e1, _) | TheE e1 | LiftE e1 -> - check_exp env ctx e1 + check_exp dims ctx e1 | BinE (_, _, e1, e2) | CmpE (_, _, e1, e2) | IdxE (e1, e2) | CatE (e1, e2) | MemE (e1, e2) | CompE (e1, e2) -> - check_exp env ctx e1; - check_exp env ctx e2 + check_exp dims ctx e1; + check_exp dims ctx e2 | SliceE (e1, e2, e3) -> - check_exp env ctx e1; - check_exp env ctx e2; - check_exp env ctx e3 + check_exp dims ctx e1; + check_exp dims ctx e2; + check_exp dims ctx e3 | UpdE (e1, p, e2) | ExtE (e1, p, e2) -> - check_exp env ctx e1; - check_path env ctx p; - check_exp env ctx e2 + check_exp dims ctx e1; + check_path dims ctx p; + check_exp dims ctx e2 | OptE eo -> - Option.iter (check_exp env ctx) eo + Option.iter (check_exp dims ctx) eo | ListE es | TupE es -> - List.iter (check_exp env ctx) es + List.iter (check_exp dims ctx) es | StrE efs -> - List.iter (check_expfield env ctx) efs + List.iter (check_expfield dims ctx) efs | DotE (e1, _, as_) | CaseE (_, as_, e1) | UncaseE (e1, _, as_) -> - check_exp env ctx e1; - List.iter (check_arg env ctx) as_ + check_exp dims ctx e1; + List.iter (check_arg dims ctx) as_ | CallE (_, as_) -> - List.iter (check_arg env ctx) as_ + List.iter (check_arg dims ctx) as_ | IterE (e1, ite) -> - check_iterexp env ctx ite; - check_exp env (strip_index (fst ite)::ctx) e1 + check_iterexp dims ctx ite; + check_exp dims (strip_index (fst ite)::ctx) e1 | SubE (e1, t1, t2) -> - check_exp env ctx e1; - check_typ env ctx t1; - check_typ env ctx t2 + check_exp dims ctx e1; + check_typ dims ctx t1; + check_typ dims ctx t2 -and check_expfield env ctx (_, as_, e) = - List.iter (check_arg env ctx) as_; - check_exp env ctx e +and check_expfield dims ctx (_, as_, e) = + List.iter (check_arg dims ctx) as_; + check_exp dims ctx e -and check_path env ctx p = +and check_path dims ctx p = match p.it with | RootP -> () | IdxP (p1, e) -> - check_path env ctx p1; - check_exp env ctx e + check_path dims ctx p1; + check_exp dims ctx e | SliceP (p1, e1, e2) -> - check_path env ctx p1; - check_exp env ctx e1; - check_exp env ctx e2 + check_path dims ctx p1; + check_exp dims ctx e1; + check_exp dims ctx e2 | DotP (p1, _, as_) -> - check_path env ctx p1; - List.iter (check_arg env ctx) as_ + check_path dims ctx p1; + List.iter (check_arg dims ctx) as_ -and check_sym env ctx g = +and check_sym dims ctx g = match g.it with | VarG (x, args) -> - check_gramid env ctx x; - List.iter (check_arg env ctx) args + check_gramid dims ctx x; + List.iter (check_arg dims ctx) args | NumG _ | TextG _ | EpsG -> () | SeqG gs | AltG gs -> - List.iter (check_sym env ctx) gs + List.iter (check_sym dims ctx) gs | RangeG (g1, g2) -> - check_sym env ctx g1; - check_sym env ctx g2 + check_sym dims ctx g1; + check_sym dims ctx g2 | AttrG (e, g1) -> - check_exp env ctx e; - check_sym env ctx g1 + check_exp dims ctx e; + check_sym dims ctx g1 | IterG (g1, ite) -> - check_iterexp env ctx ite; - check_sym env (strip_index (fst ite)::ctx) g1 + check_iterexp dims ctx ite; + check_sym dims (strip_index (fst ite)::ctx) g1 -and check_prem env ctx prem = +and check_prem dims ctx prem = match prem.it with - | RulePr (_x, _mixop, e) -> check_exp env ctx e - | IfPr e -> check_exp env ctx e + | RulePr (_x, _mixop, e) -> check_exp dims ctx e + | IfPr e -> check_exp dims ctx e | ElsePr -> () | LetPr (e1, e2, _xs) -> - check_exp env ctx e1; - check_exp env ctx e2 + check_exp dims ctx e1; + check_exp dims ctx e2 | IterPr (prem', ite) -> - check_iterexp env ctx ite; - check_prem env (strip_index (fst ite)::ctx) prem' + check_iterexp dims ctx ite; + check_prem dims (strip_index (fst ite)::ctx) prem' -and check_arg env ctx a = +and check_arg dims ctx a = match a.it with - | ExpA e -> check_exp env ctx e - | TypA t -> check_typ env ctx t - | GramA g -> check_sym env ctx g + | ExpA e -> check_exp dims ctx e + | TypA t -> check_typ dims ctx t + | GramA g -> check_sym dims ctx g | DefA _x -> () -and check_param env ctx p = +and check_param dims p = match p.it with | ExpP (x, t) -> - check_varid env ctx `Expl x; - check_typ env ctx t + check_varid dims [] `Expl x; + check_typ dims [] t | TypP x -> - check_typid env ctx x; - check_varid env ctx `Impl x + check_typid dims [] x; + check_varid dims [] `Impl x | GramP (x, ps, t) -> - check_gramid env ctx x; - List.iter (check_param env ctx) ps; - check_typ env ctx t + check_gramid dims [] x; + List.iter (check_param dims) ps; + check_typ dims [] t | DefP (_x, ps, t) -> - List.iter (check_param env ctx) ps; - check_typ env ctx t + List.iter (check_param dims) ps; + check_typ dims [] t + -let rec check_def d : env = - let env = new_env [] in +(* External interface *) + +let check outer ps as_ ts es gs prs : dims = + let dims = new_dims outer in + List.iter (check_param dims) ps; + List.iter (check_arg dims []) as_; + List.iter (check_typ dims []) ts; + List.iter (check_exp dims []) es; + List.iter (check_sym dims []) gs; + List.iter (check_prem dims []) prs; + localize outer (check_dims dims) + +(* +let rec check_def d : dims = + let dims = new_dims Map.empty in match d.it with | TypD (_x, ps, insts) -> - List.iter (check_param env []) ps; - List.iter (check_inst env) insts; - check_env env + List.iter (check_param dims) ps; + List.iter (check_inst dims) insts; + check_dims dims | RelD (_x, _mixop, t, rules) -> - check_typ env [] t; - List.iter (check_rule env) rules; - check_env env + check_typ dims [] t; + List.iter (check_rule dims) rules; + check_dims dims | DecD (_x, ps, t, clauses) -> - List.iter (check_param env []) ps; - check_typ env [] t; - List.iter (check_clause env) clauses; - check_env env + List.iter (check_param dims) ps; + check_typ dims [] t; + List.iter (check_clause dims) clauses; + check_dims dims | GramD (_x, ps, t, prods) -> - List.iter (check_param env []) ps; - check_typ env [] t; - List.iter (check_prod env) prods; - check_env env + List.iter (check_param dims) ps; + check_typ dims [] t; + List.iter (check_prod dims) prods; + check_dims dims | RecD _ds -> assert false | HintD _ -> - check_env env + check_dims dims -and check_inst env inst = +and check_inst dims inst = match inst.it with | InstD (qs, as_, dt) -> assert (qs = []); - List.iter (check_arg env []) as_; - check_deftyp env [] dt + List.iter (check_arg dims []) as_; + check_deftyp dims [] dt -and check_rule env rule = +and check_rule dims rule = match rule.it with | RuleD (_x, qs, _mixop, e, prems) -> assert (qs = []); - check_exp env [] e; - List.iter (check_prem env []) prems + check_exp dims [] e; + List.iter (check_prem dims []) prems -and check_clause env clause = +and check_clause dims clause = match clause.it with | DefD (qs, as_, e, prems) -> assert (qs = []); - List.iter (check_arg env []) as_; - check_exp env [] e; - List.iter (check_prem env []) prems + List.iter (check_arg dims []) as_; + check_exp dims [] e; + List.iter (check_prem dims []) prems -and check_prod env prod = +and check_prod dims prod = match prod.it with | ProdD (qs, g, e, prems) -> assert (qs = []); - check_sym env [] g; - check_exp env [] e; - List.iter (check_prem env []) prems - - -(* External interface *) - -let check_inst outer as_ dt : env = - let env = new_env outer in - List.iter (check_arg env []) as_; - check_deftyp env [] dt; - localize outer (check_env env) - -let check_prod outer g e prems : env = - let env = new_env outer in - check_sym env [] g; - check_exp env [] e; - List.iter (check_prem env []) prems; - localize outer (check_env env) - -let check_abbr outer g1 g2 prems : env = - let env = new_env outer in - check_sym env [] g1; - check_sym env [] g2; - List.iter (check_prem env []) prems; - localize outer (check_env env) - -let check_deftyp outer ts prems : env = - let env = new_env outer in - List.iter (check_typ env []) ts; - List.iter (check_prem env []) prems; - localize outer (check_env env) + check_sym dims [] g; + check_exp dims [] e; + List.iter (check_prem dims []) prems + + +let check_inst outer as_ dt : dims = + let dims = new_dims outer in + List.iter (check_arg dims []) as_; + check_deftyp dims [] dt; + localize outer (check_dims dims) + +let check_prod outer g e prems : dims = + let dims = new_dims outer in + check_sym dims [] g; + check_exp dims [] e; + List.iter (check_prem dims []) prems; + localize outer (check_dims dims) + +let check_abbr outer g1 g2 prems : dims = + let dims = new_dims outer in + check_sym dims [] g1; + check_sym dims [] g2; + List.iter (check_prem dims []) prems; + localize outer (check_dims dims) + +let check_deftyp outer ts prems : dims = + let dims = new_dims outer in + List.iter (check_typ dims []) ts; + List.iter (check_prem dims []) prems; + localize outer (check_dims dims) +*) (* Annotating iterations *) -type occur = (typ * iter list) Env.t +type occur = (typ * iter list) Map.t -let union = Env.union (fun _ (_, ctx1 as occ1) (_, ctx2 as occ2) -> +let union = Map.union (fun _ (_, ctx1 as occ1) (_, ctx2 as occ2) -> (* For well-typed scripts, t1 == t2. *) Some (if List.length ctx1 < List.length ctx2 then occ1 else occ2)) @@ -384,24 +400,29 @@ let rec annot_varid id = function | [] -> id | iter::iters -> annot_varid (annot_varid' id.it iter $ id.at) iters -let rec annot_iter env iter : iter * (occur * occur) = + +let rec annot_iter dims iter : iter * (occur * occur) = Il.Debug.(log "il.annot_iter" (fun _ -> fmt "%s" (il_iter iter)) (fun (iter', (occur1, occur2)) -> fmt "%s %s %s" (il_iter iter') (il_occur occur1) (il_occur occur2)) ) @@ fun _ -> match iter with - | Opt | List | List1 -> iter, Env.(empty, empty) - | ListN (e, id_opt) -> - let e', occur1 = annot_exp env e in + | Opt | List | List1 -> iter, Map.(empty, empty) + | ListN (e, x_opt) -> + let e', occur1 = annot_exp dims e in let occur2 = - match id_opt with - | None -> Env.empty - | Some id -> Env.singleton id.it (NumT `NatT $ id.at, Env.find id.it env) + match x_opt with + | None -> Map.empty + | Some x -> + if x.it <> "_" && Map.mem x.it dims then + Map.singleton x.it (NumT `NatT $ x.at, snd (Map.find x.it dims)) + else + Map.empty in - ListN (e', id_opt), (occur1, occur2) + ListN (e', x_opt), (occur1, occur2) -and annot_typ env t : typ * occur = +and annot_typ dims t : typ * occur = Il.Debug.(log "il.annot_typ" (fun _ -> fmt "%s" (il_typ t)) (fun (t', occur') -> fmt "%s %s" (il_typ t') (il_occur occur')) @@ -409,171 +430,169 @@ and annot_typ env t : typ * occur = let it, occur = match t.it with | VarT (x, as1) -> - let as1', occurs = List.split (List.map (annot_arg env) as1) in - VarT (x, as1'), List.fold_left union Env.empty occurs + let as1', occurs = List.split (List.map (annot_arg dims) as1) in + VarT (x, as1'), List.fold_left union Map.empty occurs | BoolT | NumT _ | TextT -> - t.it, Env.empty + t.it, Map.empty | TupT xts -> - let xts', occurs = List.split (List.map (annot_typbind env) xts) in - TupT xts', List.fold_left union Env.empty occurs - | IterT (t, iter) -> - let t', occur1 = annot_typ env t in - let iter', (occur2, occur3) = annot_iter env iter in - assert (occur1 = Env.empty); - assert (occur3 = Env.empty); - IterT (t', iter'), occur2 + let xts', occurs = List.split (List.map (annot_typbind dims) xts) in + TupT xts', List.fold_left union Map.empty occurs + | IterT (t1, iter) -> + let t1', occur1 = annot_typ dims t1 in + let (iter', _), occur = annot_iterexp dims occur1 (iter, []) t.at in + IterT (t1', iter'), occur in {t with it}, occur -and annot_typbind env (x, t) : (id * typ) * occur = +and annot_typbind dims (x, t) : (id * typ) * occur = let occur1 = - if x.it <> "_" && Env.mem x.it env then - Env.singleton x.it (t, Env.find x.it env) + if x.it <> "_" && Map.mem x.it dims then + Map.singleton x.it (t, snd (Map.find x.it dims)) else - Env.empty + Map.empty in - let t', occur2 = annot_typ env t in + let t', occur2 = annot_typ dims t in (x, t'), union occur1 occur2 -and annot_exp env e : exp * occur = +and annot_exp dims e : exp * occur = Il.Debug.(log "il.annot_exp" (fun _ -> fmt "%s" (il_exp e)) (fun (e', occur') -> fmt "%s %s" (il_exp e') (il_occur occur')) ) @@ fun _ -> let it, occur = match e.it with - | VarE x when x.it <> "_" && Env.mem x.it env -> - VarE x, Env.singleton x.it (e.note, Env.find x.it env) + | VarE x when x.it <> "_" && Map.mem x.it dims -> + VarE x, Map.singleton x.it (e.note, snd (Map.find x.it dims)) | VarE _ | BoolE _ | NumE _ | TextE _ -> - e.it, Env.empty + e.it, Map.empty | UnE (op, nt, e1) -> - let e1', occur1 = annot_exp env e1 in + let e1', occur1 = annot_exp dims e1 in UnE (op, nt, e1'), occur1 | BinE (op, nt, e1, e2) -> - let e1', occur1 = annot_exp env e1 in - let e2', occur2 = annot_exp env e2 in + let e1', occur1 = annot_exp dims e1 in + let e2', occur2 = annot_exp dims e2 in BinE (op, nt, e1', e2'), union occur1 occur2 | CmpE (op, nt, e1, e2) -> - let e1', occur1 = annot_exp env e1 in - let e2', occur2 = annot_exp env e2 in + let e1', occur1 = annot_exp dims e1 in + let e2', occur2 = annot_exp dims e2 in CmpE (op, nt, e1', e2'), union occur1 occur2 | IdxE (e1, e2) -> - let e1', occur1 = annot_exp env e1 in - let e2', occur2 = annot_exp env e2 in + let e1', occur1 = annot_exp dims e1 in + let e2', occur2 = annot_exp dims e2 in IdxE (e1', e2'), union occur1 occur2 | SliceE (e1, e2, e3) -> - let e1', occur1 = annot_exp env e1 in - let e2', occur2 = annot_exp env e2 in - let e3', occur3 = annot_exp env e3 in + let e1', occur1 = annot_exp dims e1 in + let e2', occur2 = annot_exp dims e2 in + let e3', occur3 = annot_exp dims e3 in SliceE (e1', e2', e3'), union (union occur1 occur2) occur3 | UpdE (e1, p, e2) -> - let e1', occur1 = annot_exp env e1 in - let p', occur2 = annot_path env p in - let e2', occur3 = annot_exp env e2 in + let e1', occur1 = annot_exp dims e1 in + let p', occur2 = annot_path dims p in + let e2', occur3 = annot_exp dims e2 in UpdE (e1', p', e2'), union (union occur1 occur2) occur3 | ExtE (e1, p, e2) -> - let e1', occur1 = annot_exp env e1 in - let p', occur2 = annot_path env p in - let e2', occur3 = annot_exp env e2 in + let e1', occur1 = annot_exp dims e1 in + let p', occur2 = annot_path dims p in + let e2', occur3 = annot_exp dims e2 in ExtE (e1', p', e2'), union (union occur1 occur2) occur3 | StrE efs -> - let efs', occurs = List.split (List.map (annot_expfield env) efs) in - StrE efs', List.fold_left union Env.empty occurs + let efs', occurs = List.split (List.map (annot_expfield dims) efs) in + StrE efs', List.fold_left union Map.empty occurs | DotE (e1, atom, as_) -> - let e1', occur1 = annot_exp env e1 in - let as', occurs = List.split (List.map (annot_arg env) as_) in + let e1', occur1 = annot_exp dims e1 in + let as', occurs = List.split (List.map (annot_arg dims) as_) in DotE (e1', atom, as'), List.fold_left union occur1 occurs | CompE (e1, e2) -> - let e1', occur1 = annot_exp env e1 in - let e2', occur2 = annot_exp env e2 in + let e1', occur1 = annot_exp dims e1 in + let e2', occur2 = annot_exp dims e2 in CompE (e1', e2'), union occur1 occur2 | LenE e1 -> - let e1', occur1 = annot_exp env e1 in + let e1', occur1 = annot_exp dims e1 in LenE e1', occur1 | TupE es -> - let es', occurs = List.split (List.map (annot_exp env) es) in - TupE es', List.fold_left union Env.empty occurs + let es', occurs = List.split (List.map (annot_exp dims) es) in + TupE es', List.fold_left union Map.empty occurs | CallE (id, as1) -> - let as1', occurs = List.split (List.map (annot_arg env) as1) in - CallE (id, as1'), List.fold_left union Env.empty occurs + let as1', occurs = List.split (List.map (annot_arg dims) as1) in + CallE (id, as1'), List.fold_left union Map.empty occurs | IterE (e1, iter) -> - let e1', occur1 = annot_exp env e1 in - let iter', occur' = annot_iterexp env occur1 iter e.at in + let e1', occur1 = annot_exp dims e1 in + let iter', occur' = annot_iterexp dims occur1 iter e.at in IterE (e1', iter'), occur' | ProjE (e1, i) -> - let e1', occur1 = annot_exp env e1 in + let e1', occur1 = annot_exp dims e1 in ProjE (e1', i), occur1 | UncaseE (e1, op, as_) -> - let e1', occur1 = annot_exp env e1 in - let as', occurs = List.split (List.map (annot_arg env) as_) in + let e1', occur1 = annot_exp dims e1 in + let as', occurs = List.split (List.map (annot_arg dims) as_) in UncaseE (e1', op, as'), List.fold_left union occur1 occurs | OptE None -> - OptE None, Env.empty + OptE None, Map.empty | OptE (Some e1) -> - let e1', occur1 = annot_exp env e1 in + let e1', occur1 = annot_exp dims e1 in OptE (Some e1'), occur1 | TheE e1 -> - let e1', occur1 = annot_exp env e1 in + let e1', occur1 = annot_exp dims e1 in TheE e1', occur1 | ListE es -> - let es', occurs = List.split (List.map (annot_exp env) es) in - ListE es', List.fold_left union Env.empty occurs + let es', occurs = List.split (List.map (annot_exp dims) es) in + ListE es', List.fold_left union Map.empty occurs | LiftE e1 -> - let e1', occur1 = annot_exp env e1 in + let e1', occur1 = annot_exp dims e1 in LiftE e1', occur1 | MemE (e1, e2) -> - let e1', occur1 = annot_exp env e1 in - let e2', occur2 = annot_exp env e2 in + let e1', occur1 = annot_exp dims e1 in + let e2', occur2 = annot_exp dims e2 in MemE (e1', e2'), union occur1 occur2 | CatE (e1, e2) -> - let e1', occur1 = annot_exp env e1 in - let e2', occur2 = annot_exp env e2 in + let e1', occur1 = annot_exp dims e1 in + let e2', occur2 = annot_exp dims e2 in CatE (e1', e2'), union occur1 occur2 | CaseE (atom, as_, e1) -> - let as', occurs = List.split (List.map (annot_arg env) as_) in - let e1', occur1 = annot_exp env e1 in + let as', occurs = List.split (List.map (annot_arg dims) as_) in + let e1', occur1 = annot_exp dims e1 in CaseE (atom, as', e1'), List.fold_left union occur1 occurs | CvtE (e1, nt1, nt2) -> - let e1', occur1 = annot_exp env e1 in + let e1', occur1 = annot_exp dims e1 in CvtE (e1', nt1, nt2), occur1 | SubE (e1, t1, t2) -> - let e1', occur1 = annot_exp env e1 in - let t1', occur2 = annot_typ env t1 in - let t2', occur3 = annot_typ env t2 in + let e1', occur1 = annot_exp dims e1 in + let t1', occur2 = annot_typ dims t1 in + let t2', occur3 = annot_typ dims t2 in SubE (e1', t1', t2'), union occur1 (union occur2 occur3) in {e with it}, occur -and annot_expfield env (atom, as_, e) : expfield * occur = - let as', occurs = List.split (List.map (annot_arg env) as_) in - let e', occur = annot_exp env e in +and annot_expfield dims (atom, as_, e) : expfield * occur = + let as', occurs = List.split (List.map (annot_arg dims) as_) in + let e', occur = annot_exp dims e in (atom, as', e'), List.fold_left union occur occurs -and annot_path env p : path * occur = +and annot_path dims p : path * occur = let it, occur = match p.it with - | RootP -> RootP, Env.empty + | RootP -> RootP, Map.empty | IdxP (p1, e) -> - let p1', occur1 = annot_path env p1 in - let e', occur2 = annot_exp env e in + let p1', occur1 = annot_path dims p1 in + let e', occur2 = annot_exp dims e in IdxP (p1', e'), union occur1 occur2 | SliceP (p1, e1, e2) -> - let p1', occur1 = annot_path env p1 in - let e1', occur2 = annot_exp env e1 in - let e2', occur3 = annot_exp env e2 in + let p1', occur1 = annot_path dims p1 in + let e1', occur2 = annot_exp dims e1 in + let e2', occur3 = annot_exp dims e2 in SliceP (p1', e1', e2'), union occur1 (union occur2 occur3) | DotP (p1, atom, as_) -> - let p1', occur1 = annot_path env p1 in - let as', occurs = List.split (List.map (annot_arg env) as_) in + let p1', occur1 = annot_path dims p1 in + let as', occurs = List.split (List.map (annot_arg dims) as_) in DotP (p1', atom, as'), List.fold_left union occur1 occurs in {p with it}, occur -and annot_iterexp env occur1 (iter, xes) at : iterexp * occur = +and annot_iterexp dims occur1 (iter, xes) at : iterexp * occur = Il.Debug.(log "il.annot_iterexp" (fun _ -> fmt "%s %s" (il_iter iter) (il_occur occur1)) (fun ((iter', _), occur') -> fmt "%s %s" (il_iter iter') (il_occur occur')) ) @@ fun _ -> assert (xes = []); - let iter', (occur2, occur3) = annot_iter env iter in + let iter', (occur2, occur3) = annot_iter dims iter in let occur1'_l = List.filter_map (fun (x, (t, iters)) -> match iters with @@ -585,7 +604,7 @@ and annot_iterexp env occur1 (iter, xes) at : iterexp * occur = *) ignore strip_index; Some (x, (annot_varid' x iter, (IterT (t, iter) $ at, iters'))) - ) (Env.bindings (union occur1 occur3)) + ) (Map.bindings (union occur1 occur3)) in (* TODO(2, rossberg): this should be active if occur1'_l = [] then @@ -593,91 +612,119 @@ and annot_iterexp env occur1 (iter, xes) at : iterexp * occur = *) let xes' = List.map (fun (x, (x', (t, _))) -> x $ at, VarE (x' $ at) $$ at % t) occur1'_l in - (iter', xes'), union (Env.of_seq (List.to_seq (List.map snd occur1'_l))) occur2 + (iter', xes'), union (Map.of_seq (List.to_seq (List.map snd occur1'_l))) occur2 -and annot_sym env g : sym * occur = +and annot_sym dims g : sym * occur = Il.Debug.(log_in "il.annot_sym" (fun _ -> il_sym g)); let it, occur = match g.it with | VarG (x, as1) -> - let as1', occurs = List.split (List.map (annot_arg env) as1) in - VarG (x, as1'), List.fold_left union Env.empty occurs + let as1', occurs = List.split (List.map (annot_arg dims) as1) in + VarG (x, as1'), List.fold_left union Map.empty occurs | NumG _ | TextG _ | EpsG -> - g.it, Env.empty + g.it, Map.empty | SeqG gs -> - let gs', occurs = List.split (List.map (annot_sym env) gs) in - SeqG gs', List.fold_left union Env.empty occurs + let gs', occurs = List.split (List.map (annot_sym dims) gs) in + SeqG gs', List.fold_left union Map.empty occurs | AltG gs -> - let gs', occurs = List.split (List.map (annot_sym env) gs) in - AltG gs', List.fold_left union Env.empty occurs + let gs', occurs = List.split (List.map (annot_sym dims) gs) in + AltG gs', List.fold_left union Map.empty occurs | RangeG (g1, g2) -> - let g1', occur1 = annot_sym env g1 in - let g2', occur2 = annot_sym env g2 in + let g1', occur1 = annot_sym dims g1 in + let g2', occur2 = annot_sym dims g2 in RangeG (g1', g2'), union occur1 occur2 | IterG (g1, iter) -> - let g1', occur1 = annot_sym env g1 in - let iter', occur' = annot_iterexp env occur1 iter g.at in + let g1', occur1 = annot_sym dims g1 in + let iter', occur' = annot_iterexp dims occur1 iter g.at in IterG (g1', iter'), occur' | AttrG (e1, g2) -> - let e1', occur1 = annot_exp env e1 in - let g2', occur2 = annot_sym env g2 in + let e1', occur1 = annot_exp dims e1 in + let g2', occur2 = annot_sym dims g2 in AttrG (e1', g2'), union occur1 occur2 in {g with it}, occur -and annot_arg env a : arg * occur = +and annot_arg dims a : arg * occur = let it, occur = match a.it with | ExpA e -> - let e', occur1 = annot_exp env e in + let e', occur1 = annot_exp dims e in ExpA e', occur1 | TypA t -> - let t', occur1 = annot_typ env t in + let t', occur1 = annot_typ dims t in TypA t', occur1 - | DefA id -> DefA id, Env.empty + | DefA x -> + DefA x, Map.empty | GramA g -> - let g', occur1 = annot_sym env g in + let g', occur1 = annot_sym dims g in GramA g', occur1 in {a with it}, occur -and annot_prem env prem : prem * occur = +and annot_param dims p : param * occur = + let it, occur = + match p.it with + | ExpP (x, t) -> + let occur1 = + if x.it <> "_" && Map.mem x.it dims then + Map.singleton x.it (t, snd (Map.find x.it dims)) + else + Map.empty + in + let t', occur2 = annot_typ dims t in + ExpP (x, t'), union occur1 occur2 + | TypP x -> + TypP x, Map.empty + | DefP (x, ps, t) -> + let ps', occurs = List.split (List.map (annot_param dims) ps) in + let t', occur2 = annot_typ dims t in + DefP (x, ps', t'), List.fold_left union occur2 occurs + | GramP (x, ps, t) -> + let ps', occurs = List.split (List.map (annot_param dims) ps) in + let t', occur2 = annot_typ dims t in + GramP (x, ps', t'), List.fold_left union occur2 occurs + in {p with it}, occur + +and annot_prem dims prem : prem * occur = let it, occur = match prem.it with | RulePr (x, op, e) -> - let e', occur = annot_exp env e in + let e', occur = annot_exp dims e in RulePr (x, op, e'), occur | IfPr e -> - let e', occur = annot_exp env e in + let e', occur = annot_exp dims e in IfPr e', occur | LetPr (e1, e2, ids) -> - let e1', occur1 = annot_exp env e1 in - let e2', occur2 = annot_exp env e2 in + let e1', occur1 = annot_exp dims e1 in + let e2', occur2 = annot_exp dims e2 in LetPr (e1', e2', ids), union occur1 occur2 | ElsePr -> - ElsePr, Env.empty + ElsePr, Map.empty | IterPr (prem1, iter) -> - let prem1', occur1 = annot_prem env prem1 in - let iter', occur' = annot_iterexp env occur1 iter prem.at in + let prem1', occur1 = annot_prem dims prem1 in + let iter', occur' = annot_iterexp dims occur1 iter prem.at in IterPr (prem1', iter'), occur' in {prem with it}, occur -let annot_inst env inst : inst * occur = +(* +let annot_inst dims inst : inst * occur = let InstD (qs, as_, dt) = inst.it in assert (qs = []); - let as', occurs = List.split (List.map (annot_arg env) as_) in - let dt', occur = dt, Env.empty in (* assume dt was already annotated *) + let as', occurs = List.split (List.map (annot_arg dims) as_) in + let dt', occur = dt, Map.empty in (* assume dt was already annotated *) {inst with it = InstD (qs, as', dt')}, List.fold_left union occur occurs +*) (* Top-level entry points *) -let annot_top annot_x env x = - let x', occurs = annot_x env x in - assert (Env.for_all (fun _ (_t, ctx) -> ctx = []) occurs); +let annot_top annot_x dims x = + let x', occurs = annot_x dims x in + assert (Map.for_all (fun _ (_t, ctx) -> ctx = []) occurs); x' -let annot_iter = annot_top (fun env x -> let x', (y, _) = annot_iter env x in x', y) +let annot_iter = annot_top (fun dims x -> let x', (y, _) = annot_iter dims x in x', y) +let annot_typ = annot_top annot_typ let annot_exp = annot_top annot_exp let annot_sym = annot_top annot_sym -let annot_arg = annot_top annot_arg let annot_prem = annot_top annot_prem -let annot_inst = annot_top annot_inst +let annot_arg = annot_top annot_arg +let annot_param = annot_top annot_param diff --git a/spectec/src/frontend/dim.mli b/spectec/src/frontend/dim.mli index 205aee2093..55ad85754b 100644 --- a/spectec/src/frontend/dim.mli +++ b/spectec/src/frontend/dim.mli @@ -1,21 +1,21 @@ open Il.Ast -module Env : Map.S with type key = string +module Map : module type of Map.Make(String) -type outer = id list -type env = iter list Env.t +type dims = (Util.Source.region * iter list) Map.t +type outer = dims val annot_varid : id -> iter list -> id -val check_def : def -> env (* raises Error.Error *) -val check_inst : outer -> arg list -> deftyp -> env (* raises Error.Error *) -val check_prod : outer -> sym -> exp -> prem list -> env (* raises Error.Error *) -val check_abbr : outer -> sym -> sym -> prem list -> env (* raises Error.Error *) -val check_deftyp : outer -> typ list -> prem list -> env (* raises Error.Error *) +val check : + outer -> + param list -> arg list -> typ list -> exp list -> sym list -> prem list -> + dims (* raises Error.Error *) -val annot_iter : env -> iter -> iter -val annot_exp : env -> exp -> exp -val annot_sym : env -> sym -> sym -val annot_arg : env -> arg -> arg -val annot_prem : env -> prem -> prem -val annot_inst : env -> inst -> inst +val annot_iter : dims -> iter -> iter +val annot_typ : dims -> typ -> typ +val annot_exp : dims -> exp -> exp +val annot_sym : dims -> sym -> sym +val annot_prem : dims -> prem -> prem +val annot_arg : dims -> arg -> arg +val annot_param : dims -> param -> param diff --git a/spectec/src/frontend/dune b/spectec/src/frontend/dune index c627edcd45..4f21e18c8a 100644 --- a/spectec/src/frontend/dune +++ b/spectec/src/frontend/dune @@ -1,7 +1,7 @@ (library (name frontend) - (libraries util el il) - (modules lexer id parser parse dim eval elab) + (libraries util el il xl) + (modules lexer id parser parse dim det eval elab) ) (ocamllex diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index fccc5a2641..d404249775 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -33,6 +33,8 @@ let error_mixop at mixop t msg = let error_id id msg = error id.at (msg ^ " `" ^ id.it ^ "`") +let quote s = "`" ^ s ^ "`" + (* Helpers *) @@ -57,7 +59,61 @@ let tup_typ' ts' at = | [t'] -> t' | _ -> Il.TupT (List.map (fun t' -> "_" $ t'.at, t') ts') $ at -let tup_typ_bind' es' ts' at = +(* Like El.Convert but for IL *) +let varid_of_typ' t = + (match t.it with + | Il.VarT (id, []) -> id.it + | Il.BoolT -> "bool" + | Il.NumT `NatT -> "nat" + | Il.NumT `IntT -> "int" + | Il.NumT `RatT -> "rat" + | Il.NumT `RealT -> "real" + | Il.TextT -> "text" + | _ -> "_" + ) $ t.at + +(* +let tup_typ_bind' xts' at = +(* + in + let expify' t = function + | Some e -> e + | None -> Il.VarE ("_" $ t.at) $$ t.at % t + in + let rec pat'_of_typ' s t : Il.exp option = + let (let* ) = Option.bind in + let module Il = Il.Ast in + match t.it with + | Il.VarT (id, _args) -> + if Set.mem id.it !s then None else + ( + (* Suppress duplicates. *) + s := Set.add id.it !s; + Some (Il.VarE id $$ t.at % t) + ) + | Il.BoolT | Il.NumT _ | Il.TextT -> + let id = varid_of_typ' t in + if Set.mem id.it !s then None else + ( + (* Suppress duplicates. *) + s := Set.add id.it !s; + Some (Il.VarE id $$ t.at % t) + ) + | Il.TupT xts -> + let* es = pats'_of_typs' s (List.map snd xts) in + Some (Il.TupE es $$ t.at % t) + | Il.IterT (t1, iter) -> + let* e1 = pat'_of_typ' s t1 in + Some (Il.IterE (e1, (iter, [])) $$ t.at % t) + + and pats'_of_typs' s ts : Il.exp list option = + let eos = List.map (pat'_of_typ' s) ts in + if List.for_all ((=) None) eos then None else + Some (List.map2 expify' ts eos) + + and pats'_of_typs ts = + List.map2 expify' ts (List.map (pat'_of_typ' (ref Set.empty)) ts) + in (* Translate a pattern into suitable path expressions on a variable *) let rec decompose e' p' s = match e'.it with @@ -66,8 +122,17 @@ let tup_typ_bind' es' ts' at = List.fold_left (fun (s', i) eI' -> decompose eI' (Il.ProjE (p', i) $$ eI'.at % eI'.note) s', i + 1 ) (s, 0) es' |> fst - | Il.IterE _ -> s (* TODO *) + | Il.IterE _ -> + (match decompose_iter e' with + | Some (x, ctx) -> + | None -> s + ) | _ -> assert false + and decompose_iter e' ctx = + match e'.it with + | Il.VarE x -> Some (x, ctx) + | Il.IterE (e1', Il.(Opt | List) as iter) -> decompose_iter e1' (iter::ctx) + | _ -> None and combine es' ts' s = match es', ts' with | [], [] -> [] @@ -86,15 +151,60 @@ let tup_typ_bind' es' ts' at = let xts'' = combine es' ts' s' in (x', Il.Subst.subst_typ s t')::xts'' | _, _ -> assert false - in Il.TupT (combine es' ts' Il.Subst.empty) $ at +*) + let rec decompose t' p' s = + match t'.it with + | Il.VarT (x, []) -> Il.Subst.add_varid s x p' + | Il.TupT xts' -> + List.fold_left (fun (s', i) (_xI', tI') -> + decompose tI' (Il.ProjE (p', i) $$ tI'.at % Il.Subst.subst_typ s' tI') s', i + 1 + ) (s, 0) xts' |> fst + | Il.IterT _ -> + (match decompose_iter t' [] with + | None -> s + | Some x -> Il.Subst.add_varid s x p' + ) + | _ -> s + and decompose_iter t' ctx = + match t'.it with + | Il.VarT (x, []) -> Some (Dim.annot_varid x ctx) + | Il.IterT (t1', iter) -> decompose_iter t1' (iter::ctx) + | _ -> None + and bind_var s x t' = + (* Suppress duplicates to handle non-linear patterns *) + if Il.Subst.mem_varid s x then s else + Il.Subst.add_varid s x (Il.VarE x $$ x.at % t') + and to_bind s = function + | [] -> [] + | t'::ts' -> + let t' = Il.Subst.subst_typ s t' in + let x', s' = + match t'.it with + | Il.VarT (_, []) | Il.BoolT | Il.NumT _ | Il.TextT -> + let x = varid_of_typ' t' in + x, bind_var s x t' + | Il.IterT _ -> + (match decompose_iter t' [] with + | None -> "_" $ t'.at, s + | Some x -> x, bind_var s x t' + ) + | _ -> + let x' = Il.Fresh.fresh_varid "pat" $ t'.at in + let s' = decompose t' (Il.VarE x' $$ t'.at % t') Il.Subst.empty in + (if s' = Il.Subst.empty then "_" $ t'.at else x'), Il.Subst.union s s' + in + (x', t') :: to_bind s' ts' + in + Il.TupT (to_bind Il.Subst.empty ts') $ at +*) -let tup_exp_bind' es' at = +let tup_exp' es' at = Il.TupE es' $$ (at, tup_typ' (List.map note es') at) -let tup_exp' es' at = +let tup_exp_nary' es' at = match es' with | [e'] -> e' - | _ -> tup_exp_bind' es' at + | _ -> tup_exp' es' at let lift_exp' e' iter' = if iter' = Il.Opt then @@ -221,6 +331,7 @@ let bound_env env = gramid = bound_env' env.grams; } + let bind_quant env q = match q.it with | Il.ExpP (x, t) -> env.vars <- bind "variable" env.vars x t @@ -228,8 +339,17 @@ let bind_quant env q = | Il.DefP (x, ps, t) -> env.defs <- bind "definition" env.defs x (ps, t, []) | Il.GramP (x, ps, t) -> env.grams <- bind "grammar" env.grams x (ps, t, [], None) +let refresh_quants env qs = + let qs', s = Il.Fresh.refresh_quants qs in + List.iter (bind_quant env) qs'; + qs', s -let vars env = Map.fold (fun id (at, _) ids -> (id $ at)::ids) env.vars [] + +(* +let vars env outer_dims = + Map.union (fun _ _ y -> Some y) + (Map.map (fun (at, _) -> (at, [])) env.vars) outer_dims +*) let il_arg_of_param p = (match p.it with @@ -241,7 +361,7 @@ let il_arg_of_param p = let il_args_of_params = List.map il_arg_of_param -let to_il_var (_at, t) = t +let to_il_var (_at, t) = (t, Il.Env.Reg) let to_il_def (_at, (ps, t, clauses)) = (ps, t, List.map snd clauses) let to_il_gram (_at, (ps, t, prods, _)) = (ps, t, List.map snd prods) @@ -271,6 +391,148 @@ let to_il_env env = let valid_tid id = id.it <> "" +(* Quantifiers inference *) + +let annot_env env dims = + let vars = + Map.fold (fun x (at, t) vars -> + let x', t' = + match Map.find_opt x dims with + | None -> x, t + | Some (_at, ctx) -> + (Dim.annot_varid (x $ at) ctx).it, + List.fold_left (fun t iter -> Il.IterT (t, iter) $ t.at) t ctx + in Map.add x' (at, t') vars + ) env.vars Map.empty + in {env with vars} + +let make_quants_iter_arg env (free : Il.Free.sets) dims : Il.quant list ref * (module Il.Iter.Arg) = + let module Arg = + struct + include Il.Iter.Skip + + let left = ref free + let acc = ref [] + + let visit_typid id = + if Il.Free.Set.mem id.it !left.typid then ( + acc := !acc @ [Il.TypP id $ id.at]; + left := Il.Free.{!left with typid = Set.remove id.it !left.typid}; + ) + +let visit_exp e = Printf.printf "[visit_exp %s]\n%!" (Il.Debug.il_exp e) + let visit_varid id = +if not Il.Free.(Set.mem id.it !left.varid) then Printf.printf "[visit_id %s] not free\n%!" id.it; +if not (Map.mem id.it dims) then Printf.printf "[visit_id %s] no dims\n%!" id.it; + if Il.Free.(Set.mem id.it !left.varid) then ( +Printf.printf "[visit_id %s]\n%!" id.it; + let t = + try find "variable" env.vars id with Error _ -> + find "variable" env.gvars (strip_var_suffix id) + in + let fwd = Il.Free.(inter (free_typ t) !left) in + if fwd <> Il.Free.empty then + error id.at ("the type of `" ^ id.it ^ "` depends on " ^ + ( Il.Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> + List.map (fun id -> "`" ^ id ^ "`") |> + String.concat ", " ) ^ + ", which only occur(s) to its right; try to reorder parameters or premises"); + let ctx' = + match Map.find_opt id.it dims with + | None -> [] (* for inherited variables *) + | Some (_, ctx) -> List.map Il.(function Opt -> Opt | _ -> List) ctx + in + let t' = + List.fold_left (fun t iter -> + Il.IterT (t, iter) $ t.at + ) t ctx' + in + acc := !acc @ [Il.ExpP (Dim.annot_varid id ctx', t') $ id.at]; + left := Il.Free.{!left with varid = Set.remove id.it !left.varid}; + ) + + let visit_gramid id = + if Il.Free.(Set.mem id.it !left.gramid) then ( + let ps, t, _gram, _prods' = find "grammar" env.grams id in + let free' = Il.Free.(union (free_params ps) (diff (free_typ t) (bound_params ps))) in + let fwd = Il.Free.(inter free' !left) in + if fwd <> Il.Free.empty then + error id.at ("the type of `" ^ id.it ^ "` depends on " ^ + ( Il.Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> + List.map (fun id -> "`" ^ id ^ "`") |> + String.concat ", " ) ^ + ", which only occur(s) to its right; try to reorder parameters or premises"); + left := Free.{!left with varid = Set.remove id.it !left.gramid}; + ) + + let visit_defid id = + if Il.Free.Set.mem id.it !left.defid then ( + let ps, t, _ = find "definition" env.defs id in + let free' = Il.Free.(union (free_params ps) (diff (free_typ t) (bound_params ps))) in + let fwd = Il.Free.(inter free' !left) in + if fwd <> Il.Free.empty then + error id.at ("the type of `" ^ (spaceid "definition" id).it ^ "` depends on " ^ + ( Il.Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> + List.map (fun id -> "`" ^ id ^ "`") |> + String.concat ", " ) ^ + ", which only occur(s) to its right; try to reorder parameters or premises"); + acc := !acc @ [Il.DefP (id, ps, t) $ id.at]; + left := Il.Free.{!left with defid = Set.remove id.it !left.defid}; + ) + end + in Arg.acc, (module Arg) + +let infer_quants env env' dims det ps' as' ts' es' gs' prs' at : Il.quant list = + let env' = annot_env env' dims in + Debug.(log_in_at "il.infer_quants" at + (fun _ -> +Printf.sprintf "as'=[%s] " Il.Debug.(list il_arg as') ^ +Printf.sprintf "es'=[%s] " Il.Debug.(list il_exp es') ^ + "local: " ^ + (Map.fold (fun id _ ids -> + if Map.mem id env.vars then ids else id::ids + ) env'.vars [] |> List.rev |> String.concat " ") ^ + " dims: " ^ + (Map.fold (fun id (_, ctx) ids -> + (id ^ ":" ^ String.concat "" (List.map Il.Print.string_of_iter ctx)) :: ids + ) dims [] |> List.rev |> String.concat " ") ^ + " det: " ^ + (Set.elements det.Det.varid |> String.concat " ") + ) + ); + let bound = bound_env env in + let free = Il.Free.( + free_list free_param ps' ++ + free_list free_arg as' ++ + free_list free_typ ts' ++ + free_list free_exp es' ++ + free_list free_sym gs' ++ + free_list free_prem prs' + -- bound -- bound_list bound_param ps' -- det + ) + in + let det' = Il.Free.(det -- bound) in + if free <> Free.empty then + error at ("definition contains indeterminate variable(s) " ^ + String.concat ", " (List.map quote (Il.Free.Set.elements free.varid))); + let acc_qs, (module Arg : Il.Iter.Arg) = make_quants_iter_arg env' det' dims in + let module Acc = Il.Iter.Make(Arg) in + Acc.(list param ps'); + Acc.(list arg as'); + Acc.(list typ ts'); + Acc.(list exp es'); + Acc.(list sym gs'); + Acc.(list prem prs'); + !acc_qs + +let infer_no_quants env dims det ps' as' ts' es' gs' prs' at = + let qs = infer_quants env env dims det ps' as' ts' es' gs' prs' at in + if qs <> [] then + let bound = Il.Free.bound_quants qs in + error at ("definition contains free variable(s) " ^ + String.concat ", " (List.map quote (Il.Free.Set.elements bound.varid))) + + (* Backtracking *) type trace = Trace of region * string * trace list @@ -680,11 +942,11 @@ let elab_hints tid case = List.map (elab_hint tid case) (* Atoms and Operators *) -let fresh_note note = Atom.{note with def = ""} -let fresh_atom atom = {atom with note = fresh_note atom.note} -let fresh_mixop mixop = Mixop.map_atoms fresh_atom mixop -let fresh_typfield (atom, t_prs, hints) = (fresh_atom atom, t_prs, hints) -let fresh_typcase (mixop, t_prs, hints) = (fresh_mixop mixop, t_prs, hints) +let new_note note = Atom.{note with def = ""} +let new_atom atom = {atom with note = new_note atom.note} +let new_mixop mixop = Mixop.map_atoms new_atom mixop +let new_typfield (atom, t_prs, hints) = (new_atom atom, t_prs, hints) +let new_typcase (mixop, t_prs, hints) = (new_mixop mixop, t_prs, hints) let elab_atom atom tid = assert (valid_tid tid); @@ -776,8 +1038,8 @@ let check_atoms phrase item to_atom list at = ) list (Set.empty, []) in if dups <> [] then - error at (phrase ^ " contains duplicate " ^ item ^ "(s) `" ^ - String.concat "`, `" dups ^ "`") + error at (phrase ^ " contains duplicate " ^ item ^ "(s) " ^ + String.concat ", " (List.map quote dups)) (* Iteration *) @@ -811,14 +1073,16 @@ and elab_typiter env (it : iter) : Il.iter = (* Types *) -and elab_typ env (t : typ) : Il.typ = +and elab_typ env ?(fwd = true) (t : typ) : Il.typ = match t.it with | VarT (x, as_) -> let x' = strip_var_suffix x in if x'.it <> x.it && as_ = [] then elab_typ env (Convert.typ_of_varid x') else - let ps, _ = find "syntax type" env.typs x' in + let ps, k = find "syntax type" env.typs x' in + if not fwd && k = Transp then + error_id x "invalid forward reference to syntax type"; let qs, as', _s = elab_args `Rhs env as_ ps t.at in if qs <> [] then error t.at "illegal expression form in type instantiation"; @@ -837,7 +1101,7 @@ and elab_typ env (t : typ) : Il.typ = | AtomT _ | SeqT _ | InfixT _ | BrackT _ -> error t.at "this type is only allowed in type definitions" -and elab_typ_definition env tid (t : typ) : dots * Il.deftyp * dots = +and elab_typ_definition env dims tid (t : typ) : dots * Il.deftyp * dots = Debug.(log_at "el.elab_typ_definition" t.at (fun _ -> fmt "%s = %s" tid.it (el_typ t)) (fun (_, dt, _) -> il_deftyp dt) @@ -853,7 +1117,7 @@ and elab_typ_definition env tid (t : typ) : dots * Il.deftyp * dots = let tfs1, dots = checkpoint (as_struct_typ "own type" env Check t1 t1.at) in if dots = NoDots then error t.at "extension of non-extensible syntax type"; - List.map fresh_typfield tfs1 (* ensure atom annotations are fresh *) + List.map new_typfield tfs1 (* ensure atom annotations are fresh *) in let tfs2 = concat_map_filter_nl_list (fun t -> @@ -861,10 +1125,10 @@ and elab_typ_definition env tid (t : typ) : dots * Il.deftyp * dots = let tfs, dots = checkpoint (as_struct_typ "parent type" env Infer t' t'.at) in if dots = Dots then error t.at "inclusion of incomplete syntax type"; - List.map fresh_typfield tfs (* ensure atom annotations are fresh *) + List.map new_typfield tfs (* ensure atom annotations are fresh *) ) ts in - let tfs' = tfs1 @ tfs2 @ map_filter_nl_list (elab_typfield env tid t.at) tfs in + let tfs' = tfs1 @ tfs2 @ map_filter_nl_list (elab_typfield env dims tid t.at) tfs in check_atoms "record" "field" Fun.id tfs' t.at; dots1, Il.StructT tfs' $ t.at, dots2 | CaseT (dots1, ts, tcs, dots2) -> @@ -876,7 +1140,7 @@ and elab_typ_definition env tid (t : typ) : dots * Il.deftyp * dots = let tcs1, dots = checkpoint (as_variant_typ "own type" env Check t1 t1.at) in if dots = NoDots then error t.at "extension of non-extensible syntax type"; - List.map fresh_typcase tcs1 (* ensure atom annotations are fresh *) + List.map new_typcase tcs1 (* ensure atom annotations are fresh *) in let tcs2 = concat_map_filter_nl_list (fun t -> @@ -884,17 +1148,17 @@ and elab_typ_definition env tid (t : typ) : dots * Il.deftyp * dots = let tcs, dots = checkpoint (as_variant_typ "parent type" env Infer t' t'.at) in if dots = Dots then error t.at "inclusion of incomplete syntax type"; - List.map fresh_typcase tcs (* ensure atom annotations are fresh *) + List.map new_typcase tcs (* ensure atom annotations are fresh *) ) ts in - let tcs' = tcs1 @ tcs2 @ map_filter_nl_list (elab_typcase env tid t.at) tcs in + let tcs' = tcs1 @ tcs2 @ map_filter_nl_list (elab_typcase env dims tid t.at) tcs in check_atoms "variant" "case" (fun op -> Option.get (Mixop.head op)) tcs' t.at; dots1, Il.VariantT tcs' $ t.at, dots2 | ConT tc -> - let tc' = elab_typcon env tid t.at tc in + let tc' = elab_typcon env dims tid t.at tc in NoDots, Il.VariantT [tc'] $ t.at, NoDots | RangeT tes -> - let ts_fes' = map_filter_nl_list (elab_typenum env tid) tes in + let ts_fes' = map_filter_nl_list (elab_typenum env dims tid) tes in let t', fe' = List.fold_left (fun (t, fe') (tI, feI') -> (if narrow_typ env tI t then t else tI), @@ -929,9 +1193,9 @@ and typ_rep env t : Il.typ = | Il.TupT [_, t1] -> typ_rep env t1 | t' -> t' $ t.at -and elab_typfield env tid at (tf : typfield) : Il.typfield = +and elab_typfield env dims tid at (tf : typfield) : Il.typfield = let atom, (t, prems), hints = tf in - let _mixop, qs, t', prems' = elab_typ_notation' env tid at t prems in + let _mixop, qs, t', prems' = elab_typ_notation env dims tid at t prems in let hints' = elab_hints tid "" hints in let t'' = match t'.it with @@ -940,19 +1204,19 @@ and elab_typfield env tid at (tf : typfield) : Il.typfield = in (elab_atom atom tid, (qs, t'', prems'), hints') -and elab_typcase env tid at (tc : typcase) : Il.typcase = +and elab_typcase env dims tid at (tc : typcase) : Il.typcase = let _atom, (t, prems), hints = tc in - let mixop, qs, t', prems' = elab_typ_notation' env tid at t prems in + let mixop, qs, t', prems' = elab_typ_notation env dims tid at t prems in let hints' = elab_hints tid "" hints in (mixop, (qs, t', prems'), hints') -and elab_typcon env tid at (tc : typcon) : Il.typcase = +and elab_typcon env dims tid at (tc : typcon) : Il.typcase = let (t, prems), hints = tc in - let mixop, qs, t', prems' = elab_typ_notation' env tid at t prems in + let mixop, qs, t', prems' = elab_typ_notation env dims tid at t prems in let hints' = elab_hints tid tid.it hints in (mixop, (qs, t', prems'), hints') -and elab_typenum env tid (te : typenum) : Il.typ * (Il.exp -> numtyp -> Il.exp) = +and elab_typenum env outer_dims tid (te : typenum) : Il.typ * (Il.exp -> numtyp -> Il.exp) = assert (valid_tid tid); let e1, e2o = te in let _e1' = elab_exp env e1 (Il.NumT `IntT $ e1.at) in (* ensure it's <= int *) @@ -962,6 +1226,9 @@ and elab_typenum env tid (te : typenum) : Il.typ * (Il.exp -> numtyp -> Il.exp) t1, fun eid' nt -> let qs1, e1' = checkpoint (elab_exp env e1 (Il.NumT nt $ e1.at)) in (* redo with overall type *) + let dims = Dim.check outer_dims [] [] [] [e1'] [] [] in + let e1' = Dim.annot_exp dims e1' in + infer_no_quants env dims Det.empty [] [] [] [e1'] [] [] e1.at; if qs1 <> [] then error e1.at "illegal expression form in range type"; Il.(CmpE (`EqOp, `BoolT, eid', e1') $$ e1'.at % (Il.BoolT $ e1.at)) @@ -973,6 +1240,10 @@ and elab_typenum env tid (te : typenum) : Il.typ * (Il.exp -> numtyp -> Il.exp) fun eid' nt -> let qs1, e1' = checkpoint (elab_exp env e1 (Il.NumT nt $ e1.at)) in let qs2, e2' = checkpoint (elab_exp env e2 (Il.NumT nt $ e2.at)) in + let dims = Dim.check outer_dims [] [] [] [e1'; e2'] [] [] in + let e1' = Dim.annot_exp dims e1' in + let e2' = Dim.annot_exp dims e2' in + infer_no_quants env dims Det.empty [] [] [] [e1'; e2'] [] [] at; if qs1 <> [] then error e1.at "illegal expression form in range type"; if qs2 <> [] then @@ -983,132 +1254,119 @@ and elab_typenum env tid (te : typenum) : Il.typ * (Il.exp -> numtyp -> Il.exp) ) $$ at % (Il.BoolT $ at)) - -(* Like Convert.* but for IL *) -and varid_of_typ' t = - (match t.it with - | Il.VarT (id, _) -> id.it - | Il.BoolT -> "bool" - | Il.NumT `NatT -> "nat" - | Il.NumT `IntT -> "int" - | Il.NumT `RatT -> "rat" - | Il.NumT `RealT -> "real" - | Il.TextT -> "text" - | _ -> "_" - ) $ t.at - -and expify' t = function - | Some e -> e - | None -> Il.VarE ("_" $ t.at) $$ t.at % t - -and pat'_of_typ' s t : Il.exp option = - let (let*) = Option.bind in - let module Il = Il.Ast in - match t.it with - | Il.VarT (id, _args) -> - if Set.mem id.it !s then None else - ( - (* Suppress duplicates. *) - s := Set.add id.it !s; - Some (Il.VarE id $$ t.at % t) - ) - | Il.BoolT | Il.NumT _ | Il.TextT -> - let id = varid_of_typ' t in - if Set.mem id.it !s then None else - ( - (* Suppress duplicates. *) - s := Set.add id.it !s; - Some (Il.VarE id $$ t.at % t) - ) - | Il.TupT xts -> - let* es = pats'_of_typs' s (List.map snd xts) in - Some (Il.TupE es $$ t.at % t) - | Il.IterT (t1, iter) -> - let* e1 = pat'_of_typ' s t1 in - Some (Il.IterE (e1, (iter, [])) $$ t.at % t) - -and pats'_of_typs' s ts : Il.exp list option = - let eos = List.map (pat'_of_typ' s) ts in - if List.for_all ((=) None) eos then None else - Some (List.map2 expify' ts eos) - -and pats'_of_typs ts = List.map2 expify' ts (List.map (pat'_of_typ' (ref Set.empty)) ts) - -and elab_typ_notation' env tid at (t : typ) (prems : prem nl_list) : +and elab_typ_notation env outer_dims tid at (t : typ) (prems : prem nl_list) : Il.mixop * Il.quant list * Il.typ * Il.prem list = assert (valid_tid tid); let env' = local_env env in - let mixop, ts' = elab_typ_notation env' tid t in + let mixop, xts' = elab_typ_notation' env' tid t in + let xs', ts' = List.split xts' in let qss, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in - let es' = pats'_of_typs ts' in let prems' = List.concat premss' in - let dims = Dim.check_deftyp (vars env) ts' prems' in - let es' = List.map (Dim.annot_exp dims) es' in - let t' = tup_typ_bind' es' ts' t.at in +Printf.printf "--- 1 ---\n%!"; + let dims = Dim.check outer_dims [] [] ts' [] [] prems' in +Printf.printf "--- 2 ---\n%!"; + let ts' = List.map (Dim.annot_typ dims) ts' in let prems' = List.map (Dim.annot_prem dims) prems' in - let det = Free.(diff (union (det_typ t) (det_prems prems)) (bound_env env)) in - let free = Free.(diff (union (free_typ t) (free_prems prems)) (union det (bound_env env))) in - if free <> Free.empty then -(Printf.printf "[notation] t = %s\n%!" (Debug.el_typ t); -List.iteri (fun i e -> Printf.printf "[notation] t%d' = %s\n%!" i (Il.Print.string_of_typ e)) ts'; -List.iteri (fun i e -> Printf.printf "[notation] e%d' = %s\n%!" i (Il.Print.string_of_exp e)) es'; - error at ("premise contains indeterminate variable(s) `" ^ - String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); -); +Printf.printf "--- 3 ---\n%!"; + let t' = Il.TupT (List.combine xs' ts') $ t.at in + let det = Det.(det_typ t' ++ det_list det_prem prems') in +Printf.printf "--- 4 ---\n%!"; + let qs = infer_quants env env' dims det [] [] [t'] [] [] prems' at in + mixop, qs @ List.concat qss, t', prems' +(* + Debug.(log_in_at "il.infer_quants" at + (fun _ -> + "local: " ^ + (Map.fold (fun id _ ids -> + if Map.mem id env.vars then ids else id::ids + ) env'.vars [] |> List.rev |> String.concat " ") ^ + " dims: " ^ + (Map.fold (fun id (_, ctx) ids -> + (id ^ ":" ^ String.concat "" (List.map Il.Print.string_of_iter ctx)) :: ids + ) dims [] |> List.rev |> String.concat " ") ^ + " det: " ^ + (Set.elements det.Det.varid |> String.concat " ") + ) + ); + let env' = annot_env env' dims in let acc_qs, (module Arg : Il.Iter.Arg) = make_quants_iter_arg env' det dims in +Printf.printf "--- 5 ---\n%!"; let module Acc = Il.Iter.Make(Arg) in Acc.typ t'; Acc.prems prems'; +Printf.printf "--- 6 ---\n%!"; + let free = + Il.Free.( + free_prems prems' + -- bound_env env -- bound_params (!acc_qs @ List.concat qss) -- det + ) + in + if free <> Free.empty then +(Printf.printf "[notation] t = %s\n%!" (Debug.el_typ t); +List.iteri (fun i t -> Printf.printf "[notation] t%d' = %s\n%!" (i+1) (Il.Print.string_of_typ t)) ts'; +List.iteri (fun i pr -> Printf.printf "[notation] pr%d' = %s\n%!" (i+1) (Il.Print.string_of_prem pr)) prems'; +Printf.printf "X in env = %b\n%!" (Map.mem "X" env.vars); +Printf.printf "X* in env = %b\n%!" (Map.mem "X*" env.vars); +let frt = Il.Free.free_typ t' in +let frp = Il.Free.free_prems prems' in +let detp = Det.(det_list det_prem prems') in +let bp = Il.Free.bound_params (!acc_qs @ List.concat qss) in +Printf.printf "free(t') = %s\n%!" (String.concat ", " (List.map quote (Free.Set.elements frt.varid))); +Printf.printf "free(prs') = %s\n%!" (String.concat ", " (List.map quote (Free.Set.elements frp.varid))); +Printf.printf "det(prs') = %s\n%!" (String.concat ", " (List.map quote (Free.Set.elements detp.varid))); +Printf.printf "bound(qs') = %s\n%!" (String.concat ", " (List.map quote (Free.Set.elements bp.varid))); + error at ("premise contains indeterminate variable(s) " ^ + String.concat ", " (List.map quote (Free.Set.elements free.varid))); +); mixop, !acc_qs @ List.concat qss, t', prems' +*) -and elab_typ_notation env tid (t : typ) : Il.mixop * Il.typ list = +and elab_typ_notation' env tid (t : typ) : Il.mixop * (Il.id * Il.typ) list = Debug.(log_at "el.elab_typ_notation" t.at (fun _ -> fmt "(%s) %s" tid.it (el_typ t)) - (fun (mixop, ts') -> fmt "%s(%s)" (il_mixop mixop) (list il_typ ts')) + (fun (mixop, xts') -> fmt "%s(%s)" (il_mixop mixop) (list (pair il_id ":" il_typ) xts')) ) @@ fun _ -> assert (valid_tid tid); match t.it with - | VarT (x, as_) -> - let x' = strip_var_suffix x in - (match (Convert.typ_of_varid x').it with - | VarT _ -> - (match find "syntax type" env.typs x' with - | _, Transp -> error_id x "invalid forward reference to syntax type" - | ps, _ -> - let qs, as', _s = elab_args `Rhs env as_ ps t.at in - if qs <> [] then - error t.at "illegal expression forms in type instantiation"; - let t' = Il.VarT (x', as') $ t.at in - Arg (), [t'] - ) - | t1 -> - assert (as_ = []); - let t' = elab_typ env (t1 $ x.at) in - Arg (), [t'] - ) | AtomT atom -> let atom' = elab_atom atom tid in Atom atom', [] | SeqT [] -> Seq [], [] | SeqT (t1::ts2) -> - let mixop1, ts1' = elab_typ_notation env tid t1 in - let mixop2, ts2' = elab_typ_notation env tid (SeqT ts2 $ t.at) in + let mixop1, xts1' = elab_typ_notation' env tid t1 in + let mixop2, xts2' = elab_typ_notation' env tid (SeqT ts2 $ t.at) in (match mixop2 with Seq mixops2 -> Seq (mixop1::mixops2) | _ -> assert false), - ts1' @ ts2' + xts1' @ xts2' | InfixT (t1, atom, t2) -> - let mixop1, ts1' = elab_typ_notation env tid t1 in - let mixop2, ts2' = elab_typ_notation env tid t2 in + let mixop1, xts1' = elab_typ_notation' env tid t1 in + let mixop2, xts2' = elab_typ_notation' env tid t2 in let atom' = elab_atom atom tid in - Infix (mixop1, atom', mixop2), ts1' @ ts2' + Infix (mixop1, atom', mixop2), xts1' @ xts2' | BrackT (l, t1, r) -> - let mixop1, ts1' = elab_typ_notation env tid t1 in + let mixop1, xts1' = elab_typ_notation' env tid t1 in let l' = elab_atom l tid in let r' = elab_atom r tid in - Brack (l', mixop1, r'), ts1' + Brack (l', mixop1, r'), xts1' + | VarT _ | IterT _ | ParenT _ -> + let rec id_of t ctx = + match t.it with + | VarT (x, []) -> Dim.annot_varid x ctx + | ParenT t1 -> id_of t1 ctx + | IterT (t1, iter) -> + let iter' = match iter with Opt -> Il.Opt | _ -> Il.List in + id_of t1 (iter'::ctx) + | _ -> "_" $ t.at + in + let x' = id_of t [] in + let t' = elab_typ env ~fwd: false t in + (* Ignore name if already bound. This may happen if the same type name + * occurs multiple times as a parameter. *) + if not (bound env.vars x') then env.vars <- bind "variable" env.vars x' t'; + Arg (), [x', t'] | _ -> let t' = elab_typ env t in - Arg (), [t'] + Arg (), ["_" $ t.at, t'] (* Expressions *) @@ -1229,10 +1487,10 @@ and infer_exp' env e : (Il.quant list * Il.exp' * Il.typ') attempt = if dots = Dots then error e1.at "used record type is only partially defined at this point"; let* _, (qsF, tF, prems), _ = attempt (find_field tfs atom e1.at) t1 in - let qsF', s = Il.Fresh.refresh_quants qsF in - let as' = il_args_of_params qsF' in + let qsF', s = refresh_quants env qsF in + let qas' = il_args_of_params qsF' in let tF' = Il.Subst.subst_typ s tF in - let e' = Il.DotE (e1', elab_atom atom (expand_id env t1), as') in + let e' = Il.DotE (e1', elab_atom atom (expand_id env t1), qas') in let e'' = if prems = [] then e' else Il.ProjE (e' $$ e.at % tF', 0) in Ok (qs1 @ qsF', e'', tF'.it) | CommaE (e1, e2) -> @@ -1528,14 +1786,15 @@ and elab_expfields env tid (efs : expfield list) (tfs : Il.typfield list) (t0 : | [], [] -> Ok ([], []) | (atom1, e)::efs2, (atom2, (qsF, tF, prems), _)::tfs2 when atom1.it = atom2.it -> let* qs1, e' = elab_exp env e tF in - let* qs2, efs2' = elab_expfields env tid efs2 tfs2 t0 at in - let e' = if prems = [] then e' else tup_exp_bind' [e'] e.at in - let as' = il_args_of_params qsF in - Ok (qs1 @ qs2, (elab_atom atom1 tid, as', e') :: efs2') + let qsF', s = refresh_quants env qsF in + let* qs2, efs2' = elab_expfields env tid efs2 (List.map (Il.Subst.subst_typfield s) tfs2) t0 at in + let e' = if prems = [] then e' else tup_exp' [e'] e.at in + let qas' = il_args_of_params qsF' in + Ok (qs1 @ qs2, (elab_atom atom1 tid, qas', e') :: efs2') | _, (atom, (_qs, t, prems), _)::tfs2 -> let atom' = string_of_atom atom in let* qs1, e1' = cast_empty ("omitted record field `" ^ atom' ^ "`") env t at in - let e' = if prems = [] then e1' else tup_exp_bind' [e1'] at in + let e' = if prems = [] then e1' else tup_exp' [e1'] at in let* qs2, efs2' = elab_expfields env tid efs tfs2 t0 at in Ok (qs1 @ qs2, (elab_atom atom tid, [], e') :: efs2') | (atom, e)::_, [] -> @@ -1574,8 +1833,8 @@ and elab_exp_notation env tid (e : exp) (qs, t1, mixop, not) t : (Il.quant list (* Convert notation into applications of mixin operators *) assert (valid_tid tid); let* qs', es', s = elab_exp_notation' env tid e not in - let as' = Il.Subst.subst_args s (il_args_of_params qs) in - Ok (qs', Il.CaseE (mixop, as', Il.TupE es' $$ e.at % t1) $$ e.at % t) + let qas' = Il.Subst.subst_args s (il_args_of_params qs) in + Ok (qs', Il.CaseE (mixop, qas', Il.TupE es' $$ e.at % t1) $$ e.at % t) and elab_exp_notation' env tid (e : exp) not : (Il.quant list * Il.exp list * Il.Subst.t) attempt = Debug.(log_at "el.elab_exp_notation" e.at @@ -1722,11 +1981,12 @@ and elab_exp_variant env tid (e : exp) (tcs : Il.typcase list) t at : (Il.quant in let* atom = head e in let* mixop, (qsC, tC, _prems), _ = attempt (find_case_atom tcs atom atom.at) t in - let* xtsC = as_tup_typ "tuple" env Check tC e.at in + let qsC', s = refresh_quants env qsC in + let* xtsC = as_tup_typ "tuple" env Check (Il.Subst.subst_typ s tC) e.at in let not = Mixop.apply mixop (List.map snd xtsC) in let* qs, es', s = elab_exp_notation' env tid e not in - let as' = Il.Subst.subst_args s (il_args_of_params qsC) in - Ok (qs, Il.CaseE (mixop, as', tup_exp_bind' es' e.at) $$ at % t) + let qas' = Il.Subst.subst_args s (il_args_of_params qsC') in + Ok (qs, Il.CaseE (mixop, qas', tup_exp' es' e.at) $$ at % t) (* @@ -1760,7 +2020,7 @@ and elab_path' env (p : path) (t : Il.typ) : (Il.quant list * Il.path' * Il.typ) if dots = Dots then error p1.at "used record type is only partially defined at this point"; let* _, (qsF, tF, _prems), _ = attempt (find_field tfs atom p1.at) t1 in - let qsF', s = Il.Fresh.refresh_quants qsF in + let qsF', s = refresh_quants env qsF in let as' = il_args_of_params qsF' in let tF' = Il.Subst.subst_typ s tF in Ok (qs1 @ qsF, Il.DotP (p1', elab_atom atom (expand_id env t1), as'), tF') @@ -1785,10 +2045,10 @@ and cast_empty phrase env (t : Il.typ) at : (Il.quant list * Il.exp) attempt = (match expand_iter_notation env t with | IterT (_, iter) as t1 -> (*TODO*) - let mixop, ts', _ts = elab_typ_notation env (expand_id env t) (t1 $ t.at) in + let mixop, ts', _ts = elab_typ_notation' env (expand_id env t) (t1 $ t.at) in assert (List.length ts' = 1); let e1' = if iter = Opt then Il.OptE None else Il.ListE [] in - Ok ([], Il.CaseE (mixop, tup_exp_bind' [e1' $$ at % List.hd ts'] at) $$ at % t') + Ok ([], Il.CaseE (mixop, tup_exp' [e1' $$ at % List.hd ts'] at) $$ at % t') | _ -> fail_typ env at phrase t ) *) @@ -1823,23 +2083,23 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt (match expand_def env t1', expand_def env t2' with | (Il.VariantT [mixop1, (qs1, tC1, _), _], NoDots), (Il.VariantT [mixop2, (qs2, tC2, _), _], NoDots) -> - let qs1', s1 = Il.Fresh.refresh_quants qs1 in - let qs2', s2 = Il.Fresh.refresh_quants qs2 in + let qs1', s1 = refresh_quants env qs1 in + let qs2', s2 = refresh_quants env qs2 in let tC1' = Il.Subst.subst_typ s1 tC1 in let tC2' = Il.Subst.subst_typ s2 tC2 in - let as1' = il_args_of_params qs1' in - let as2' = il_args_of_params qs2' in + let qas1' = il_args_of_params qs1' in + let qas2' = il_args_of_params qs2' in if mixop1 = mixop2 then ( (* Two ConT's with the same operator can be cast pointwise *) let ts1 = match tC1'.it with Il.TupT xts -> List.map snd xts | _ -> [tC1'] in let ts2 = match tC2'.it with Il.TupT xts -> List.map snd xts | _ -> [tC2'] in - let e'' = Il.UncaseE (e', mixop1, as1') $$ e'.at % tC1' in + let e'' = Il.UncaseE (e', mixop1, qas1') $$ e'.at % tC1' in let es' = List.mapi (fun i t1I -> Il.ProjE (e'', i) $$ e''.at % t1I) ts1 in let* qss_es'' = map2_attempt (fun eI' (t1I, t2I) -> cast_exp phrase env eI' t1I t2I) es' (List.combine ts1 ts2) in let qss, es'' = List.split qss_es'' in - Ok (qs1' @ qs2' @ List.concat qss, Il.CaseE (mixop2, as2', tup_exp_bind' es'' e'.at)) + Ok (qs1' @ qs2' @ List.concat qss, Il.CaseE (mixop2, qas2', tup_exp' es'' e'.at)) ) else ( @@ -1855,7 +2115,7 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt ) in match expand env tC1' with | Il.TupT [_, t11'] -> - let e'' = Il.UncaseE (e', mixop1, as1') $$ e'.at % t11' in + let e'' = Il.UncaseE (e', mixop1, qas1') $$ e'.at % t11' in let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t11') t11' t2' in Ok (qs1' @ qs, e''') | _ -> fail_typ2 env e'.at phrase t1 t2 "" @@ -1916,12 +2176,12 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt (il_typ (reduce env t2)) ) ); - let qs1', s1 = Il.Fresh.refresh_quants qs1 in + let qs1', s1 = refresh_quants env qs1 in let tC1' = Il.Subst.subst_typ s1 tC1 in - let as1' = il_args_of_params qs1' in + let qas1' = il_args_of_params qs1' in match expand env tC1' with | Il.TupT [_, t11'] -> - let e'' = Il.UncaseE (e', mixop1, as1') $$ e'.at % t11' in + let e'' = Il.UncaseE (e', mixop1, qas1') $$ e'.at % t11' in let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t11') t11' t2' in Ok (qs1' @ qs, e''') | _ -> fail_typ2 env e'.at phrase t1 t2 "" @@ -1936,13 +2196,13 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt (match expand_def env t2' with | Il.VariantT [mixop2, (qs2, tC2, _), _], NoDots -> (* A ConT payload can be cast to the ConT *) - let qs2', s2 = Il.Fresh.refresh_quants qs2 in + let qs2', s2 = refresh_quants env qs2 in let tC2' = Il.Subst.subst_typ s2 tC2 in - let as2' = il_args_of_params qs2' in + let qas2' = il_args_of_params qs2' in (match expand env tC2' with | Il.TupT [_, t21'] -> let* qs, e1' = cast_exp phrase env e' t1' t21' in - Ok (qs2' @ qs, Il.CaseE (mixop2, as2', Il.TupE [e1'] $$ e'.at % tC2')) + Ok (qs2' @ qs, Il.CaseE (mixop2, qas2', Il.TupE [e1'] $$ e'.at % tC2')) | _ -> fail_typ2 env e'.at phrase t1 t2 "" ) @@ -1974,11 +2234,11 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt choice env [ (fun env -> (* Two ConT's with the same operator can be cast pointwise *) - let mixop1, qs1, t1', _prems1', ts1 = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in - let mixop2, qs2, _t2', _prems2', ts2 = elab_typ_notation' env (expand_id env t2) t2.at t21 [] in + let mixop1, qs1, t1', _prems1', ts1 = elab_typ_notation env (expand_id env t1) t1.at t11 [] in + let mixop2, qs2, _t2', _prems2', ts2 = elab_typ_notation env (expand_id env t2) t2.at t21 [] in (* - let mixop1, ts1', ts1 = elab_typ_notation env (expand_id env t1) t11 in - let mixop2, _ts2', ts2 = elab_typ_notation env (expand_id env t2) t21 in + let mixop1, ts1', ts1 = elab_typ_notation' env (expand_id env t1) t11 in + let mixop2, _ts2', ts2 = elab_typ_notation' env (expand_id env t2) t21 in *) if mixop1 <> mixop2 then fail_typ2 env e'.at phrase t1 t2 "" else @@ -1988,7 +2248,7 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt let* qss_es'' = map2_attempt (fun eI' (t1I, t2I) -> cast_exp phrase env eI' t1I t2I) es' (List.combine ts1 ts2) in let qss, es'' = List.split qss_es'' in - Ok (qs1 @ qs2 @ List.concat qss, Il.CaseE (mixop2, tup_exp_bind' es'' e'.at)) + Ok (qs1 @ qs2 @ List.concat qss, Il.CaseE (mixop2, tup_exp' es'' e'.at)) ); (fun env -> (* Two unary ConT's can be cast transitively *) @@ -1998,9 +2258,9 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt (el_typ (expand_nondef env t2)) ) ); - let mixop, qs, t1', _prems', ts = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in + let mixop, qs, t1', _prems', ts = elab_typ_notation env (expand_id env t1) t1.at t11 [] in (* - let mixop, ts', ts = elab_typ_notation env (expand_id env t1) t11 in + let mixop, ts', ts = elab_typ_notation' env (expand_id env t1) t11 in *) let* t111, t111' = match ts, t1'.it with [t111], Il.TupT [_, t111'] -> Ok (t111, t111') | _ -> fail_typ2 env e'.at phrase t1 t2 "" in @@ -2033,9 +2293,9 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt (el_typ (expand_nondef env t2)) ) ); - let mixop, qs, t1', _prems', ts = elab_typ_notation' env (expand_id env t1) t1.at t11 [] in + let mixop, qs, t1', _prems', ts = elab_typ_notation env (expand_id env t1) t1.at t11 [] in (* - let mixop, ts', ts = elab_typ_notation env (expand_id env t1) t11 in + let mixop, ts', ts = elab_typ_notation' env (expand_id env t1) t11 in *) let* t111, t111' = match ts, t1'.it with [t111], Il.TupT [_, t111'] -> Ok (t111, t111') | _ -> fail_typ2 env e'.at phrase t1 t2 "" in @@ -2047,9 +2307,9 @@ Printf.printf "[3] %s => %s\n%!" (Debug.el_typ t1) (Debug.il_typ t1'); ] | _, ConT ((t21, _), _) -> (* A ConT payload can be cast to the ConT *) - let mixop, qs, t', _prems', ts = elab_typ_notation' env (expand_id env t2) t2.at t21 [] in + let mixop, qs, t', _prems', ts = elab_typ_notation env (expand_id env t2) t2.at t21 [] in (* - let mixop, _ts', ts = elab_typ_notation env (expand_id env t2) t21 in + let mixop, _ts', ts = elab_typ_notation' env (expand_id env t2) t21 in *) let* t211 = match ts with [t211] -> Ok t211 | _ -> fail_typ2 env e'.at phrase t1 t2 "" in @@ -2157,7 +2417,7 @@ and elab_prem env (pr : prem) : Il.quant list * Il.prem list = | RulePr (id, e) -> let mixop, not, _, _ = find "relation" env.rels id in let qs, es', _s = checkpoint (elab_exp_notation' env id e not) in - qs, [Il.RulePr (id, mixop, tup_exp' es' e.at) $ pr.at] + qs, [Il.RulePr (id, mixop, tup_exp_nary' es' e.at) $ pr.at] | IfPr e -> let qs, e' = checkpoint (elab_exp env e (Il.BoolT $ e.at)) in qs, [Il.IfPr e' $ pr.at] @@ -2331,7 +2591,7 @@ and cast_sym env (g' : Il.sym) t1 t2 : (Il.quant list * Il.sym) attempt = fail_typ2 env g'.at "symbol" t1 t2 "" ) -and elab_prod env (prod : prod) (t : Il.typ) : Il.prod list = +and elab_prod env outer_dims (prod : prod) (t : Il.typ) : Il.prod list = Debug.(log_in_at "el.elab_prod" prod.at (fun _ -> fmt "%s : %s" (el_prod prod) (il_typ t)) ); @@ -2358,31 +2618,35 @@ and elab_prod env (prod : prod) (t : Il.typ) : Il.prod list = in let qss3, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.concat premss' in - let dims = Dim.check_prod (vars env) g' e' prems' in + let dims = Dim.check outer_dims [] [] [] [e'] [g'] prems' in let g' = Dim.annot_sym dims g' in let e' = Dim.annot_exp dims e' in let prems' = List.map (Dim.annot_prem dims) prems' in - let det = Free.(diff (union (det_sym g) (det_prems prems)) (bound_env env)) in - let free = Free.(diff (free_prod prod) (union (det_prod prod) (bound_env env'))) in - if free <> Free.empty then - error prod.at ("grammar rule contains indeterminate variable(s) `" ^ - String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_qs, (module Arg : Il.Iter.Arg) = make_quants_iter_arg env' det dims in - let module Acc = Il.Iter.Make(Arg) in - Acc.sym g'; - Acc.exp e'; - Acc.prems prems'; - let prod' = Il.ProdD (!acc_qs @ qs1 @ qs2 @ List.concat qss3, g', e', prems') $ prod.at in + let det = Det.(det_exp e' ++ det_sym g' ++ det_list det_prem prems') in + let qs = infer_quants env env' dims det [] [] [] [e'] [g'] prems' prod.at in + let prod' = Il.ProdD (qs @ qs1 @ qs2 @ List.concat qss3, g', e', prems') $ prod.at in + let free = Il.Free.(free_prod prod' -- bound_env env') in + if free <> Il.Free.empty then + error prod.at ("grammar rule contains indeterminate variable(s) " ^ + String.concat ", " (List.map quote (Free.Set.elements free.varid))); if not env'.pm then [prod'] else - prod' :: elab_prod env Subst.(subst_prod pm_snd (Iter.clone_prod prod)) t + prod' :: + elab_prod env outer_dims Subst.(subst_prod pm_snd (Iter.clone_prod prod)) t | RangeP (g1, e1, g2, e2) -> let t = Il.NumT `NatT $ prod.at in let qs11', g1' = checkpoint (elab_sym env g1 t) in let qs12', e1' = checkpoint (elab_exp env e1 t) in let qs21', g2' = checkpoint (elab_sym env g2 t) in let qs22', e2' = checkpoint (elab_exp env e2 t) in + let dims = Dim.check outer_dims [] [] [] [e1'; e2'] [g1'; g2'] [] in + let g1' = Dim.annot_sym dims g1' in + let g2' = Dim.annot_sym dims g2' in + let e1' = Dim.annot_exp dims e1' in + let e2' = Dim.annot_exp dims e2' in + let det = Det.(det_list det_exp [e1'; e2'] ++ det_list det_sym [g1'; g2']) in + infer_no_quants env dims det [] [] [] [e1'; e2'] [g1'; g2'] [] prod.at; let c1 = match g1'.it with | Il.NumG c1 -> c1 @@ -2416,25 +2680,16 @@ and elab_prod env (prod : prod) (t : Il.typ) : Il.prod list = | EquivP (g1, g2, prems) -> let env' = local_env env in env'.pm <- false; - let qs1, g1', _t1' = checkpoint (infer_sym env' g1) in - let qs2, g2', _t2' = checkpoint (infer_sym env' g2) in - let qss3, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let _qs1, g1', _t1' = checkpoint (infer_sym env' g1) in + let _qs2, g2', _t2' = checkpoint (infer_sym env' g2) in + let _qss3, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.concat premss' in - let dims = Dim.check_abbr (vars env) g1' g2' prems' in + let dims = Dim.check outer_dims [] [] [] [] [g1'; g2'] prems' in let g1' = Dim.annot_sym dims g1' in let g2' = Dim.annot_sym dims g2' in let prems' = List.map (Dim.annot_prem dims) prems' in - let det = Free.(diff (union (det_sym g1) (det_prems prems)) (bound_env env)) in - let free = Free.(diff (free_prod prod) (union (det_prod prod) (bound_env env'))) in - if free <> Free.empty then - error prod.at ("grammar rule contains indeterminate variable(s) `" ^ - String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_qs, (module Arg : Il.Iter.Arg) = make_quants_iter_arg env' det dims in - let module Acc = Il.Iter.Make(Arg) in - Acc.sym g1'; - Acc.sym g2'; - Acc.prems prems'; - ignore (!acc_qs @ qs1 @ qs2 @ List.concat qss3, g1', g2', prems'); + let det = Det.(det_sym g1' ++ det_list det_prem prems') in + ignore (infer_quants env env' dims det [] [] [] [] [g1'; g2'] prems' prod.at); [] (* TODO(4, rossberg): translate equiv grammars properly *) (* let prod' = Il.ProdD (!acc_qs, g1', e', prems') $ prod.at in @@ -2444,84 +2699,13 @@ and elab_prod env (prod : prod) (t : Il.typ) : Il.prod list = prod' :: elab_prod env Subst.(subst_prod pm_snd (Iter.clone_prod prod)) t *) -and elab_gram env (gram : gram) (t : Il.typ) : Il.prod list = +and elab_gram env dims (gram : gram) (t : Il.typ) : Il.prod list = let (_dots1, prods, _dots2) = gram.it in - concat_map_filter_nl_list (fun prod -> elab_prod env prod t) prods + concat_map_filter_nl_list (fun prod -> elab_prod env dims prod t) prods (* Definitions *) -and make_quants_iter_arg env free dims : Il.quant list ref * (module Il.Iter.Arg) = - let module Arg = - struct - include Il.Iter.Skip - - let left = ref free - let acc = ref [] - - let visit_typid id = - if Il.Free.Set.mem id.it !left.typid then ( - acc := !acc @ [Il.TypP id $ id.at]; - left := Il.Free.{!left with typid = Set.remove id.it !left.typid}; - ) - - let visit_varid id = - if Il.Free.(Set.mem id.it !left.varid) && Dim.Env.mem id.it dims then ( - let t = - try find "variable" env.vars id with Error _ -> - find "variable" env.gvars (strip_var_suffix id) - in - let fwd = Il.Free.(inter (free_typ t) !left) in - if fwd <> Il.Free.empty then - error id.at ("the type of `" ^ id.it ^ "` depends on " ^ - ( Il.Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> - List.map (fun id -> "`" ^ id ^ "`") |> - String.concat ", " ) ^ - ", which only occur(s) to its right; try to reorder parameters or premises"); - let ctx' = - List.map (function Il.Opt -> Il.Opt | _ -> Il.List) - (Dim.Env.find id.it dims) - in - let t' = - List.fold_left (fun t iter -> - Il.IterT (t, iter) $ t.at - ) t ctx' - in - acc := !acc @ [Il.ExpP (Dim.annot_varid id ctx', t') $ id.at]; - left := Il.Free.{!left with varid = Set.remove id.it !left.varid}; - ) - - let visit_gramid id = - if Il.Free.(Set.mem id.it !left.gramid) then ( - let ps, t, _gram, _prods' = find "grammar" env.grams id in - let free' = Il.Free.(union (free_params ps) (diff (free_typ t) (bound_params ps))) in - let fwd = Il.Free.(inter free' !left) in - if fwd <> Il.Free.empty then - error id.at ("the type of `" ^ id.it ^ "` depends on " ^ - ( Il.Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> - List.map (fun id -> "`" ^ id ^ "`") |> - String.concat ", " ) ^ - ", which only occur(s) to its right; try to reorder parameters or premises"); - left := Free.{!left with varid = Set.remove id.it !left.gramid}; - ) - - let visit_defid id = - if Il.Free.Set.mem id.it !left.defid then ( - let ps, t, _ = find "definition" env.defs id in - let free' = Il.Free.(union (free_params ps) (diff (free_typ t) (bound_params ps))) in - let fwd = Il.Free.(inter free' !left) in - if fwd <> Il.Free.empty then - error id.at ("the type of `" ^ (spaceid "definition" id).it ^ "` depends on " ^ - ( Il.Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> - List.map (fun id -> "`" ^ id ^ "`") |> - String.concat ", " ) ^ - ", which only occur(s) to its right; try to reorder parameters or premises"); - acc := !acc @ [Il.DefP (id, ps, t) $ id.at]; - left := Il.Free.{!left with defid = Set.remove id.it !left.defid}; - ) - end - in Arg.acc, (module Arg) - and elab_arg in_lhs env (a : arg) (p : Il.param) s : Il.quant list * Il.arg list * Il.Subst.subst = (match !(a.it), p.it with (* HACK: handle shorthands *) | ExpA e, Il.TypP _ -> a.it := TypA (typ_of_exp e) @@ -2792,53 +2976,30 @@ let elab_hintdef _env (hd : hintdef) : Il.def list = [] -let infer_quants env env' dims (d : def) (d' : Il.def) : Il.quant list = - Debug.(log_in_at "el.infer_quants" d.at - (fun _ -> - Map.fold (fun id _ ids -> - if Map.mem id env.vars then ids else id::ids - ) env'.vars [] |> List.rev |> String.concat " " - ) - ); - let det = Free.det_def d in - let free = Free.(diff (free_def d) (union det (bound_env env))) in - if free <> Free.empty then - error d.at ("definition contains indeterminate variable(s) `" ^ - String.concat "`, `" (Free.Set.elements free.varid) ^ "`"); - let acc_qs, (module Arg : Il.Iter.Arg) = make_quants_iter_arg env' det dims in - let module Acc = Il.Iter.Make(Arg) in - Acc.def d'; - !acc_qs - -let infer_no_quants env dims (d : def) (d' : Il.def) = - let qs = infer_quants env env dims d d' in - assert (qs = []) - - let rec elab_def env (d : def) : Il.def list = Debug.(log_in "el.elab_def" line); Debug.(log_in_at "el.elab_def" d.at (fun _ -> el_def d)); + let env' = local_env env in + env'.pm <- false; match d.it with | FamD (x, ps, hints) -> - env.pm <- false; - let ps' = elab_params (local_env env) ps in - if env.pm then error d.at "misplaced +- or -+ operator in syntax type declaration"; - let d' = Il.TypD (x, ps', []) $ d.at in - let dims = Dim.check_def d' in - infer_no_quants env dims d d'; + let ps' = elab_params env' ps in + if env'.pm then + error d.at "misplaced +- or -+ operator in syntax type declaration"; + let dims = Dim.check Map.empty ps' [] [] [] [] [] in + let ps' = List.map (Dim.annot_param dims) ps' in + infer_no_quants env dims Det.empty ps' [] [] [] [] [] d.at; env.typs <- rebind "syntax type" env.typs x (ps', Family []); - [d'] @ elab_hintdef env (TypH (x, "" $ x.at, hints) $ d.at) + [Il.TypD (x, ps', []) $ d.at] + @ elab_hintdef env (TypH (x, "" $ x.at, hints) $ d.at) | TypD (x1, x2, as_, t, hints) -> - let env' = local_env env in - env'.pm <- false; let ps', k = find "syntax type" env.typs x1 in let qs1, as', _s = elab_args `Lhs env' as_ ps' d.at in - let dots1, dt', dots2 = elab_typ_definition env' x1 t in - let inst' = Il.InstD ([], as', dt') $ d.at in (* dummy *) - let d' = Il.TypD (x1, ps', [inst']) $ d.at in (* dummy *) - let dims = Dim.check_inst [] as' dt' in + let dims = Dim.check Map.empty [] as' [] [] [] [] in + let dots1, dt', dots2 = elab_typ_definition env' dims x1 t in let as' = List.map (Dim.annot_arg dims) as' in - let qs = infer_quants env env' dims d d' in + let det = Det.(det_list det_arg as') in + let qs = infer_quants env env' dims det [] as' [] [] [] [] d.at in let inst' = Il.InstD (qs @ qs1, as', dt') $ d.at in let k', last = match k with @@ -2867,16 +3028,14 @@ let rec elab_def env (d : def) : Il.def list = @ elab_hintdef env (TypH (x1, x2, hints) $ d.at) @ (if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d))) | GramD (x1, x2, ps, t, gram, hints) -> - let env' = local_env env in - env'.pm <- false; let ps' = elab_params env' ps in let t' = elab_typ env' t in - if env'.pm then error d.at "misplaced +- or -+ operator in grammar"; - let prods' = elab_gram env' gram t' in + let dims = Dim.check Map.empty ps' [] [t'] [] [] [] in + let prods' = elab_gram env' dims gram t' in let xprods2' = List.map (fun pr -> x2, pr) prods' in - let d' = Il.GramD (x1, ps', t', prods') $ d.at in (* dummy *) - let dims = Dim.check_def d' in - infer_no_quants env' dims d d'; + if env'.pm then error d.at "misplaced +- or -+ operator in grammar"; + let t' = Dim.annot_typ dims t' in + infer_no_quants env' dims Det.empty ps' [] [t'] [] [] [] d.at; let ps1', t1', xprods1', dots_opt = find "grammar" env.grams x1 in let dots1, _, dots2 = gram.it in let xprods' = @@ -2902,19 +3061,18 @@ let rec elab_def env (d : def) : Il.def list = (if dots2 = Dots then [] else [Il.GramD (x1, ps', t', []) $ d.at]) @ elab_hintdef env (GramH (x1, x2, hints) $ d.at) | RelD (x, t, hints) -> - env.pm <- false; - let mixop, ts' = elab_typ_notation env x t in - let t' = tup_typ' ts' t.at in + let mixop, xts' = elab_typ_notation' env' x t in + let ts' = List.map snd xts' in + if env'.pm then error d.at "misplaced +- or -+ operator in relation"; + let dims = Dim.check Map.empty [] [] ts' [] [] [] in + let ts' = List.map (Dim.annot_typ dims) ts' in + infer_no_quants env' dims Det.empty [] [] ts' [] [] [] d.at; let not = Mixop.apply mixop ts' in - if env.pm then error d.at "misplaced +- or -+ operator in relation"; - let d' = Il.RelD (x, mixop, t', []) $ d.at in - let dims = Dim.check_def d' in - infer_no_quants env dims d d'; + let t' = tup_typ' ts' t.at in env.rels <- bind "relation" env.rels x (mixop, not, t', []); - [d'] @ elab_hintdef env (RelH (x, hints) $ d.at) + [Il.RelD (x, mixop, t', []) $ d.at] + @ elab_hintdef env (RelH (x, hints) $ d.at) | RuleD (x1, x2, e, prems) -> - let env' = local_env env in - env'.pm <- false; let mixop, not', t', rules' = find "relation" env.rels x1 in if List.exists (fun (x, _) -> x.it = x2.it) rules' then error d.at ("duplicate rule name `" ^ x1.it ^ @@ -2922,58 +3080,56 @@ let rec elab_def env (d : def) : Il.def list = let qs1, es', _ = checkpoint (elab_exp_notation' env' x1 e not') in let qss2, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in let prems' = List.concat premss' in - let rule' = Il.RuleD (x2, [], mixop, tup_exp' es' e.at, prems') $ d.at in (* dummy *) - let d' = Il.RelD (x1, mixop, t', [rule']) $ d.at in (* dummy *) - let dims = Dim.check_def d' in - let qs = infer_quants env env' dims d d' in + let dims = Dim.check Map.empty [] [] [] es' [] prems' in let es' = List.map (Dim.annot_exp dims) es' in + let e' = tup_exp_nary' es' e.at in let prems' = List.map (Dim.annot_prem dims) prems' in - let rule' = Il.RuleD (x2, qs @ qs1 @ List.concat qss2, mixop, tup_exp' es' e.at, prems') $ d.at in + let det = Det.(det_exp e' ++ det_list det_prem prems') in + let qs = infer_quants env env' dims det [] [] [] es' [] prems' d.at in + let rule' = Il.RuleD (x2, qs @ qs1 @ List.concat qss2, mixop, e', prems') $ d.at in env.rels <- rebind "relation" env.rels x1 (mixop, not', t', rules' @ [x2, rule']); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) | VarD (x, t, _hints) -> - env.pm <- false; - let t' = elab_typ env t in - if env.pm then error d.at "misplaced +- or -+ operator in variable declaration"; - let d' = Il.DecD (x, [], t', []) $ d.at in (* dummy *) - let dims = Dim.check_def d' in - infer_no_quants env dims d d'; + let t' = elab_typ env' t in + if env'.pm then + error d.at "misplaced +- or -+ operator in variable declaration"; + let dims = Dim.check Map.empty [] [] [t'] [] [] [] in + let t' = Dim.annot_typ dims t' in + infer_no_quants env' dims Det.empty [] [] [t'] [] [] [] d.at; env.gvars <- rebind "variable" env.gvars x t'; [] | DecD (x, ps, t, hints) -> - let env' = local_env env in - env'.pm <- false; let ps' = elab_params env' ps in let t' = elab_typ env' t in if env'.pm then error d.at "misplaced +- or -+ operator in declaration"; let d' = Il.DecD (x, ps', t', []) $ d.at in - let dims = Dim.check_def d' in - infer_no_quants env dims d d'; + let dims = Dim.check Map.empty ps' [] [t'] [] [] [] in + let t' = Dim.annot_typ dims t' in +Printf.printf "DecD %s%s : %s\n%!" x.it (Il.Print.string_of_params ps') (Il.Print.string_of_typ t'); + infer_no_quants env dims Det.empty ps' [] [t'] [] [] [] d.at; env.defs <- bind "definition" env.defs x (ps', t', []); [d'] @ elab_hintdef env (DecH (x, hints) $ d.at) | DefD (x, as_, e, prems) -> - let env' = local_env env in - env'.pm <- false; let ps', t', clauses' = find "definition" env.defs x in let qs1, as', s = elab_args `Lhs env' as_ ps' d.at in let qss3, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in (* Elab e after premises, so that type information can flow to it *) let qs2, e' = checkpoint (elab_exp env' e (Il.Subst.subst_typ s t')) in let prems' = List.concat premss' in - let clause' = Il.DefD ([], as', e', prems') $ d.at in (* dummy *) - let d' = Il.DecD (x, ps', t', [clause']) $ d.at in (* dummy *) - let dims = Dim.check_def d' in - let qs = infer_quants env env' dims d d' in + let dims = Dim.check Map.empty [] as' [] [e'] [] prems' in let as' = List.map (Dim.annot_arg dims) as' in let e' = Dim.annot_exp dims e' in let prems' = List.map (Dim.annot_prem dims) prems' in + let det = Det.(det_list det_arg as' ++ det_exp e' ++ det_list det_prem prems') in + let qs = infer_quants env env' dims det [] as' [] [e'] [] prems' d.at in let clause' = Il.DefD (qs @ qs1 @ qs2 @ List.concat qss3, as', e', prems') $ d.at in +Printf.printf "=> %s\n%!" (Il.Print.string_of_clause ~suppress_pos: true x clause'); env.defs <- rebind "definition" env.defs x (ps', t', clauses' @ [(d, clause')]); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) | SepD -> [] | HintD hd -> - elab_hintdef env hd + elab_hintdef env' hd let check_dots env = diff --git a/spectec/src/frontend/eval.mli b/spectec/src/frontend/eval.mli index ae743d5cf0..90baf0eeea 100644 --- a/spectec/src/frontend/eval.mli +++ b/spectec/src/frontend/eval.mli @@ -1,6 +1,6 @@ open El.Ast -module Map : Map.S with type key = string with type 'a t = 'a Map.Make(String).t +module Map : module type of Map.Make(String) type typ_def = (arg list * typ) list type def_def = (arg list * exp * prem list) list diff --git a/spectec/src/frontend/parser.mly b/spectec/src/frontend/parser.mly index 1c20fab6ba..f768a128da 100644 --- a/spectec/src/frontend/parser.mly +++ b/spectec/src/frontend/parser.mly @@ -1025,7 +1025,7 @@ param_ : | varid_bind_with_suffix COLON typ { ExpP ($1, $3) } | typ { let id = - try El.Convert.varid_of_typ $1 with Error.Error _ -> "" $ $sloc + try El.Convert.varid_of_typ $1 with Error.Error _ -> "_" $ $sloc in ExpP (id, $1) } | SYNTAX varid_bind { TypP $2 } | GRAMMAR gramid COLON typ { GramP ($2, [], $4) } diff --git a/spectec/src/il/env.ml b/spectec/src/il/env.ml index c81136f0af..bba12ebe82 100644 --- a/spectec/src/il/env.ml +++ b/spectec/src/il/env.ml @@ -14,7 +14,8 @@ let error at msg = Util.Error.error at !phase msg module Set = Set.Make(String) module Map = Map.Make(String) -type var_def = typ +type var_sort = Reg | Quant +type var_def = typ * var_sort type typ_def = param list * inst list type rel_def = mixop * typ * rule list type def_def = param list * typ * clause list diff --git a/spectec/src/il/eval.ml b/spectec/src/il/eval.ml index 04f332123c..b6f7961a2d 100644 --- a/spectec/src/il/eval.ml +++ b/spectec/src/il/eval.ml @@ -738,8 +738,8 @@ and match_exp' env s e1 e2 : subst option = | _ -> false ) | VarE id1, _ -> - let t1 = reduce_typ env (Env.find_var env id1) in - sub_typ env t1 t21 || raise Irred + let t1, _ = Env.find_var env id1 in + sub_typ env (reduce_typ env t1) t21 || raise Irred | _, _ -> false then match_exp' env s {e1 with note = t21} e21 else None diff --git a/spectec/src/il/free.ml b/spectec/src/il/free.ml index 51951f1766..b5258b26b4 100644 --- a/spectec/src/il/free.ml +++ b/spectec/src/il/free.ml @@ -1,12 +1,8 @@ open Util.Source open Ast - include Xl.Gen_free -let (+) = union -let (-) = diff - (* Iterations *) @@ -24,13 +20,17 @@ and bound_iter iter = (* Types *) and free_typ t = + Util.Debug_log.(log "il.free_typ" + (fun _ -> Print.string_of_typ t) + (fun s -> list quote (Set.elements s.typid @ Set.elements s.varid)) + ) @@ fun _ -> match t.it with - | VarT (x, as_) -> free_typid x + free_args as_ + | VarT (x, as_) -> free_typid x ++ free_args as_ | BoolT | NumT _ | TextT -> empty | TupT ets -> free_typbinds ets - | IterT (t1, iter) -> free_typ t1 + free_iter iter + | IterT (t1, iter) -> free_typ t1 ++ free_iter iter -and free_typbind (x, t) = bound_varid x + free_typ t +and free_typbind (x, t) = bound_varid x (* exclude `_` *) ++ free_typ t and free_typbinds xts = free_list free_typbind xts and free_deftyp dt = @@ -40,69 +40,73 @@ and free_deftyp dt = | VariantT tcs -> free_list free_typcase tcs and free_typfield (_, (qs, t, prems), _) = - free_quants qs + (free_typ t + free_prems prems - bound_quants qs) + free_quants qs ++ (free_typ t ++ free_prems prems -- bound_quants qs) and free_typcase (_, (qs, t, prems), _) = - free_quants qs + (free_typ t + free_prems prems - bound_quants qs) + free_quants qs ++ (free_typ t ++ free_prems prems -- bound_quants qs) (* Expressions *) and free_exp e = + Util.Debug_log.(log "il.free_exp" + (fun _ -> Print.string_of_exp e) + (fun s -> list quote (Set.elements s.typid @ Set.elements s.varid)) + ) @@ fun _ -> match e.it with | VarE x -> free_varid x | BoolE _ | NumE _ | TextE _ -> empty | UnE (_, _, e1) | LiftE e1 | LenE e1 | ProjE (e1, _) | TheE e1 -> free_exp e1 | BinE (_, _, e1, e2) | CmpE (_, _, e1, e2) - | IdxE (e1, e2) | CompE (e1, e2) | MemE (e1, e2) | CatE (e1, e2) -> free_exp e1 + free_exp e2 + | IdxE (e1, e2) | CompE (e1, e2) | MemE (e1, e2) | CatE (e1, e2) -> free_exp e1 ++ free_exp e2 | SliceE (e1, e2, e3) -> free_list free_exp [e1; e2; e3] | OptE eo -> free_opt free_exp eo | TupE es | ListE es -> free_list free_exp es - | UpdE (e1, p, e2) | ExtE (e1, p, e2) -> free_exp e1 + free_path p + free_exp e2 + | UpdE (e1, p, e2) | ExtE (e1, p, e2) -> free_exp e1 ++ free_path p ++ free_exp e2 | StrE efs -> free_list free_expfield efs - | DotE (e1, _, as_) -> free_exp e1 + free_args as_ - | CaseE (_, as_, e1) | UncaseE (e1, _, as_) -> free_args as_ + free_exp e1 - | CallE (x, as1) -> free_defid x + free_args as1 - | IterE (e1, iter) -> (free_exp e1 - bound_iterexp iter) + free_iterexp iter + | DotE (e1, _, as_) -> free_exp e1 ++ free_args as_ + | CaseE (_, as_, e1) | UncaseE (e1, _, as_) -> free_args as_ ++ free_exp e1 + | CallE (x, as1) -> free_defid x ++ free_args as1 + | IterE (e1, ite) -> (free_exp e1 -- bound_iterexp ite) ++ free_iterexp ite | CvtE (e1, _nt1, _nt2) -> free_exp e1 - | SubE (e1, t1, t2) -> free_exp e1 + free_typ t1 + free_typ t2 + | SubE (e1, t1, t2) -> free_exp e1 ++ free_typ t1 ++ free_typ t2 -and free_expfield (_, as_, e) = free_args as_ + free_exp e +and free_expfield (_, as_, e) = free_args as_ ++ free_exp e and free_path p = match p.it with | RootP -> empty - | IdxP (p1, e) -> free_path p1 + free_exp e - | SliceP (p1, e1, e2) -> free_path p1 + free_exp e1 + free_exp e2 - | DotP (p1, _atom, as_) -> free_path p1 + free_args as_ + | IdxP (p1, e) -> free_path p1 ++ free_exp e + | SliceP (p1, e1, e2) -> free_path p1 ++ free_exp e1 ++ free_exp e2 + | DotP (p1, _atom, as_) -> free_path p1 ++ free_args as_ and free_iterexp (iter, xes) = - free_iter iter + free_list (free_pair free_varid free_exp) xes + free_iter iter ++ free_list free_exp (List.map snd xes) and bound_iterexp (iter, xes) = - bound_iter iter + free_list bound_varid (List.map fst xes) + bound_iter iter ++ free_list bound_varid (List.map fst xes) (* Grammars *) and free_sym g = match g.it with - | VarG (x, as_) -> free_gramid x + free_args as_ + | VarG (x, as_) -> free_gramid x ++ free_args as_ | NumG _ | TextG _ | EpsG -> empty | SeqG gs | AltG gs -> free_list free_sym gs - | RangeG (g1, g2) -> free_sym g1 + free_sym g2 - | IterG (g1, iter) -> (free_sym g1 - bound_iterexp iter) + free_iterexp iter - | AttrG (e, g1) -> free_exp e + free_sym g1 + | RangeG (g1, g2) -> free_sym g1 ++ free_sym g2 + | IterG (g1, ite) -> (free_sym g1 -- bound_iterexp ite) ++ free_iterexp ite + | AttrG (e, g1) -> free_exp e ++ free_sym g1 (* Premises *) and free_prem prem = match prem.it with - | RulePr (x, _op, e) -> free_relid x + free_exp e + | RulePr (x, _op, e) -> free_relid x ++ free_exp e | IfPr e -> free_exp e - | LetPr (e1, e2, _) -> free_exp e1 + free_exp e2 + | LetPr (e1, e2, _) -> free_exp e1 ++ free_exp e2 | ElsePr -> empty - | IterPr (prem1, iter) -> (free_prem prem1 - bound_iterexp iter) + free_iterexp iter + | IterPr (prem1, ite) -> (free_prem prem1 -- bound_iterexp ite) ++ free_iterexp ite and free_prems prems = free_list free_prem prems @@ -117,11 +121,15 @@ and free_arg a = | GramA g -> free_sym g and free_param p = + Util.Debug_log.(log "il.free_param" + (fun _ -> Print.string_of_param p) + (fun s -> list quote (Set.elements s.typid @ Set.elements s.varid)) + ) @@ fun _ -> match p.it with | ExpP (_, t) -> free_typ t | TypP _ -> empty - | DefP (_, ps, t) -> free_params ps + (free_typ t - bound_params ps) - | GramP (_, ps, t) -> free_params ps + (free_typ t - bound_params ps) + | DefP (_, ps, t) -> free_params ps ++ (free_typ t -- bound_params ps) + | GramP (_, ps, t) -> free_params ps ++ (free_typ t -- bound_params ps) and bound_param p = match p.it with @@ -142,22 +150,22 @@ and bound_quants qs = free_list bound_quant qs let free_inst inst = match inst.it with | InstD (qs, as_, dt) -> - free_quants qs + (free_args as_ + free_deftyp dt - bound_quants qs) + free_quants qs ++ (free_args as_ ++ free_deftyp dt -- bound_quants qs) let free_rule rule = match rule.it with | RuleD (_x, qs, _op, e, prems) -> - free_quants qs + (free_exp e + free_prems prems - bound_quants qs) + free_quants qs ++ (free_exp e ++ free_prems prems -- bound_quants qs) let free_clause clause = match clause.it with | DefD (qs, as_, e, prems) -> - free_quants qs + (free_args as_ + free_exp e + free_prems prems - bound_quants qs) + free_quants qs ++ (free_args as_ ++ free_exp e ++ free_prems prems -- bound_quants qs) let free_prod prod = match prod.it with | ProdD (qs, g, e, prems) -> - free_quants qs + (free_sym g + free_exp e + free_prems prems - bound_quants qs) + free_quants qs ++ (free_sym g ++ free_exp e ++ free_prems prems -- bound_quants qs) let free_hintdef hd = match hd.it with @@ -168,13 +176,13 @@ let free_hintdef hd = let rec free_def d = match d.it with - | TypD (_x, ps, insts) -> free_params ps + free_list free_inst insts - | RelD (_x, _mixop, t, rules) -> free_typ t + free_list free_rule rules + | TypD (_x, ps, insts) -> free_params ps ++ free_list free_inst insts + | RelD (_x, _mixop, t, rules) -> free_typ t ++ free_list free_rule rules | DecD (_x, ps, t, clauses) -> - free_params ps + (free_typ t - bound_params ps) - + free_list free_clause clauses + free_params ps ++ (free_typ t -- bound_params ps) + ++ free_list free_clause clauses | GramD (_x, ps, t, prods) -> - free_params ps + (free_typ t + free_list free_prod prods - bound_params ps) + free_params ps ++ (free_typ t ++ free_list free_prod prods -- bound_params ps) | RecD ds -> free_list free_def ds | HintD hd -> free_hintdef hd diff --git a/spectec/src/il/free.mli b/spectec/src/il/free.mli index 4adba6f06d..00acbfc4c0 100644 --- a/spectec/src/il/free.mli +++ b/spectec/src/il/free.mli @@ -6,6 +6,7 @@ val free_iter : iter -> sets val free_typ : typ -> sets val free_exp : exp -> sets val free_path : path -> sets +val free_sym : sym -> sets val free_prem : prem -> sets val free_arg : arg -> sets val free_def : def -> sets @@ -21,6 +22,7 @@ val free_args : arg list -> sets val free_quants : param list -> sets val free_params : param list -> sets +val bound_iterexp : iterexp -> sets val bound_quant : quant -> sets val bound_param : param -> sets val bound_def : def -> sets diff --git a/spectec/src/il/fresh.ml b/spectec/src/il/fresh.ml index e7b735c3b5..dc57cc55ea 100644 --- a/spectec/src/il/fresh.ml +++ b/spectec/src/il/fresh.ml @@ -18,7 +18,13 @@ let fresh_id map s = map := Map.add s i !map; s ^ "#" ^ string_of_int i -let refresh_id map x = fresh_id map x.it $ x.at +let refresh_id map x = + let s = + match String.rindex_opt x.it '#' with + | None -> x.it + | Some i -> String.sub x.it 0 i + in + fresh_id map s $ x.at let fresh_typid = fresh_id typids let fresh_varid = fresh_id varids diff --git a/spectec/src/il/subst.ml b/spectec/src/il/subst.ml index b87df656e2..bb5e1d1b63 100644 --- a/spectec/src/il/subst.ml +++ b/spectec/src/il/subst.ml @@ -68,7 +68,9 @@ let subst_varid s x = match Map.find_opt x.it s.varid with | None -> x | Some {it = VarE x'; _} -> x' - | Some _ -> raise (Invalid_argument "subst_varid") + | Some e -> +Printf.printf "!!!! e = %s\n%!" (Print.string_of_exp e); + raise (Invalid_argument "subst_varid") let subst_defid s x = match Map.find_opt x.it s.defid with @@ -79,7 +81,7 @@ let subst_gramid s x = match Map.find_opt x.it s.gramid with | None -> x | Some {it = VarG (x', []); _} -> x' - | Some _ -> raise (Invalid_argument "subst_varid") + | Some _ -> raise (Invalid_argument "subst_gramid") (* Iterations *) @@ -123,9 +125,6 @@ and subst_typcase s (op, (qs, t, prems), hints) = let qs', s' = subst_quants s qs in (op, (qs', subst_typ s' t, subst_list subst_prem s' prems), hints) -and subst_typbind s (x, t) = - (subst_varid s x, subst_typ s t) - (* Expressions *) diff --git a/spectec/src/il/subst.mli b/spectec/src/il/subst.mli index 94be50c92c..c8fd8fc5d8 100644 --- a/spectec/src/il/subst.mli +++ b/spectec/src/il/subst.mli @@ -1,6 +1,6 @@ open Ast -module Map : Map.S with type key = string with type 'a t = 'a Map.Make(String).t +module Map : module type of Map.Make(String) type subst = {varid : exp Map.t; typid : typ Map.t; defid : id Map.t; gramid : sym Map.t} type t = subst @@ -38,7 +38,6 @@ val subst_param : subst -> param -> param val subst_deftyp : subst -> deftyp -> deftyp val subst_typcase : subst -> typcase -> typcase val subst_typfield : subst -> typfield -> typfield -val subst_typbind : subst -> id * typ -> id * typ val subst_args : subst -> arg list -> arg list val subst_params : subst -> param list -> param list * subst diff --git a/spectec/src/il/valid.ml b/spectec/src/il/valid.ml index 54615c6c7a..e3e50287e8 100644 --- a/spectec/src/il/valid.ml +++ b/spectec/src/il/valid.ml @@ -33,6 +33,18 @@ let typ_string env t = "`" ^ string_of_typ t ^ "` = `" ^ string_of_typ t' ^ "`" +(* Quantifier variables *) + +let is_qvar env x = + let _, sort = Env.find_var env x in + sort = Quant + +let is_qvar_exp env e = + match e.it with + | VarE x -> is_qvar env x + | _ -> false + + (* Type Accessors *) let expand_typ (env : Env.t) t = (Eval.reduce_typ env t).it @@ -87,7 +99,7 @@ let rec as_comp_typ phrase env dir t at = | _ -> error at (phrase ^ "'s type `" ^ string_of_typ t ^ "` is not composable") - +(* let rec inst_tup_typ env s xts : (id * typ) list = match xts with | [] -> [] @@ -96,6 +108,7 @@ let rec inst_tup_typ env s xts : (id * typ) list = let tI' = Subst.subst_typ s tI in let s' = Subst.add_varid s xI (VarE xI' $$ xI.at % tI') in (xI', tI') :: inst_tup_typ env s' xts' +*) (* Type Equivalence and Subtyping *) @@ -174,7 +187,7 @@ let rec valid_iter ?(side = `Rhs) env iter : Env.t = | ListN (e, id_opt) -> valid_exp ~side env e (NumT `NatT $ e.at); Option.fold id_opt ~none:env ~some:(fun id -> - Env.bind_var env id (NumT `NatT $ e.at) + Env.bind_var env id (NumT `NatT $ e.at, Reg) ) @@ -204,7 +217,9 @@ and valid_typ env t = and valid_typbind env (x, t) = valid_typ env t; if x.it <> "_" then - let t' = Env.find_var env x in + let t', sort = Env.find_var env x in + if sort <> Quant then + error x.at "field name must be quantifier variable"; equiv_typ env t' t x.at and valid_deftyp envr dt = @@ -251,7 +266,7 @@ and infer_exp (env : Env.t) e : typ = (fun r -> fmt "%s" (il_typ r)) ) @@ fun _ -> match e.it with - | VarE x -> Env.find_var env x + | VarE x -> fst (Env.find_var env x) | BoolE _ -> BoolT $ e.at | NumE n -> NumT (Num.to_typ n) $ e.at | TextE _ -> TextT $ e.at @@ -267,7 +282,7 @@ and infer_exp (env : Env.t) e : typ = | DotE (e1, atom, as_) -> let tfs = as_struct_typ "expression" env Infer (infer_exp env e1) e1.at in let qs, t, _prems = find_field tfs atom e1.at in - let s = valid_args env as_ qs Subst.empty e.at in + let s = valid_qargs env as_ qs Subst.empty e.at in Subst.subst_typ s t | TupE es -> TupT (List.map (fun eI -> "_" $ eI.at, infer_exp env eI) es) $ e.at @@ -283,16 +298,18 @@ and infer_exp (env : Env.t) e : typ = let xts = as_tup_typ "expression" env Infer t1 e1.at in if i >= List.length xts then error e.at "invalid tuple projection"; +(* let xts' = inst_tup_typ env Subst.empty xts in - (match List.nth_opt xts' i with +*) + (match List.nth_opt xts i with | Some (_, tI) -> tI | None -> error e.at "cannot infer type of tuple projection" ) | UncaseE (e1, op, as_) -> let t1 = infer_exp env e1 in (match as_variant_typ "expression" env Infer t1 e1.at with - | [(op', (ps, t, _), _)] when Eq.eq_mixop op op' -> - let s = valid_args env as_ ps Subst.empty e.at in + | [(op', (qs, t, _), _)] when Eq.eq_mixop op op' -> + let s = valid_qargs env as_ qs Subst.empty e.at in Subst.subst_typ s t | _ -> error e.at "invalid case projection"; ) @@ -339,7 +356,7 @@ try match e.it with | VarE x when x.it = "_" && side = `Lhs -> () | VarE x -> - let t' = Env.find_var env x in + let t', _ = Env.find_var env x in equiv_typ env t' t e.at | BoolE _ | NumE _ | TextE _ -> let t' = infer_exp env e in @@ -397,7 +414,7 @@ try valid_exp env e1 t1; let tfs = as_struct_typ "expression" env Check t1 e1.at in let qs, t', _prems = find_field tfs atom e1.at in - let s = valid_args env as_ qs Subst.empty e.at in + let s = valid_qargs env as_ qs Subst.empty e.at in equiv_typ env (Subst.subst_typ s t') t e.at | CompE (e1, e2) -> let _ = as_comp_typ "expression" env Check t e.at in @@ -435,8 +452,10 @@ try if i >= List.length xts then error e.at "invalid tuple projection"; let side' = if List.length xts > 1 then `Rhs else side in +(* let xts' = inst_tup_typ env Subst.empty xts in - valid_exp ~side:side' env e1 (TupT xts' $ t1.at); +*) + valid_exp ~side:side' env e1 (TupT xts $ t1.at); (match List.nth_opt xts i with | Some (_, tI) -> equiv_typ env tI t e.at | None -> error e.at "invalid tuple projection, cannot match pattern" @@ -445,8 +464,8 @@ try let t1 = infer_exp env e1 in valid_exp ~side env e1 t1; (match as_variant_typ "expression" env Infer t1 e1.at with - | [(op', (ps, t', _), _)] when Eq.eq_mixop op op' -> - let s = valid_args env as_ ps Subst.empty e.at in + | [(op', (qs, t', _), _)] when Eq.eq_mixop op op' -> + let s = valid_qargs env as_ qs Subst.empty e.at in equiv_typ env (Subst.subst_typ s t') t e.at | _ -> error e.at "invalid case projection"; ) @@ -473,7 +492,7 @@ try | CaseE (op, as_, e1) -> let cases = as_variant_typ "case" env Check t e.at in let qs, t1, _prems = find_case cases op e1.at in - let s = valid_args env as_ qs Subst.empty e.at in + let s = valid_qargs env as_ qs Subst.empty e.at in valid_exp ~side env e1 (Subst.subst_typ s t1) | CvtE (e1, nt1, nt2) -> valid_exp ~side env e1 (NumT nt1 $ e1.at); @@ -509,9 +528,9 @@ and valid_tup_exp ?(side = `Rhs) env s es xts = valid_tup_exp ~side env s' es' xts' | _, _ -> true -and valid_expfield ~side env (atom1, as_, e) (atom2, (ps, t, _prems), _) = +and valid_expfield ~side env (atom1, as_, e) (atom2, (qs, t, _prems), _) = if not (Eq.eq_atom atom1 atom2) then error e.at "unexpected record field"; - let s = valid_args env as_ ps Subst.empty e.at in + let s = valid_qargs env as_ qs Subst.empty e.at in valid_exp ~side env e (Subst.subst_typ s t) and valid_path env p t : typ = @@ -533,7 +552,7 @@ and valid_path env p t : typ = let t1 = valid_path env p1 t in let tfs = as_struct_typ "path" env Check t1 p1.at in let qs, t, _prems = find_field tfs atom p1.at in - let s = valid_args env as_ qs Subst.empty p.at in + let s = valid_qargs env as_ qs Subst.empty p.at in Subst.subst_typ s t in equiv_typ env p.note t' p.at; @@ -548,7 +567,7 @@ and valid_iterexp ?(side = `Rhs) env (iter, xes) at : iter * Env.t = let t = infer_exp env e in valid_exp ~side env e t; let t1 = as_iter_typ iter' "iterator" env Check t e.at in - Env.bind_var env' x t1 + Env.bind_var env' x (t1, Reg) ) env' xes @@ -623,12 +642,15 @@ and valid_prem env prem = (* Definitions *) -and valid_arg env a p s = +and valid_arg' isq env a p s = Debug.(log_at "il.valid_arg" a.at (fun _ -> fmt "%s : %s" (il_arg a) (il_param p)) (Fun.const "ok") ) @@ fun _ -> match a.it, (Subst.subst_param s p).it with - | ExpA e, ExpP (x, t) -> valid_exp ~side:`Lhs env e t; Subst.add_varid s x e + | ExpA e, ExpP (x, t) -> + if isq && not (is_qvar_exp env e) then + error e.at "quantifier argument expression must be quantified variable"; + valid_exp ~side:`Lhs env e t; Subst.add_varid s x e | TypA t, TypP x -> valid_typ env t; Subst.add_typid s x t | DefA x', DefP (x, ps, t) -> let ps', t', _ = Env.find_def env x' in @@ -648,23 +670,26 @@ and valid_arg env a p s = error a.at ("sort mismatch for argument, expected `" ^ Print.string_of_param p ^ "`, got `" ^ Print.string_of_arg a ^ "`") -and valid_args env as_ ps s at : Subst.t = +and valid_args' isq env as_ ps s at : Subst.t = Debug.(log_if "il.valid_args" (as_ <> [] || ps <> []) - (fun _ -> fmt "(%s) : (%s)" (il_args as_) (il_params ps)) (Fun.const "ok") + (fun _ -> fmt "{%s} : {%s}" (il_args as_) (il_params ps)) (Fun.const "ok") ) @@ fun _ -> match as_, ps with | [], [] -> s | a::_, [] -> error a.at "too many arguments" | [], _::_ -> error at "too few arguments" | a::as', p::ps' -> - let s' = valid_arg env a p s in - valid_args env as' ps' s' at + let s' = valid_arg' isq env a p s in + valid_args' isq env as' ps' s' at + +and valid_args env = valid_args' false env +and valid_qargs env = valid_args' true env -and valid_param envr p = +and valid_param' isq envr p = match p.it with | ExpP (x, t) -> valid_typ !envr t; - envr := Env.bind_var !envr x t + envr := Env.bind_var !envr x (t, if isq then Quant else Reg) | TypP x -> envr := Env.bind_typ !envr x ([], []) | DefP (x, ps, t) -> @@ -678,7 +703,8 @@ and valid_param envr p = valid_typ !envr' t; envr := Env.bind_gram !envr x (ps, t, []) -and valid_quant envr q = valid_param envr q +and valid_param envr = valid_param' false envr +and valid_quant envr = valid_param' true envr let valid_inst envr ps inst = Debug.(log_in "il.valid_inst" line); diff --git a/spectec/src/il2al/free.ml b/spectec/src/il2al/free.ml index 2eb0d23418..8b3edc17b6 100644 --- a/spectec/src/il2al/free.ml +++ b/spectec/src/il2al/free.ml @@ -12,10 +12,6 @@ include Il.Free let free_varid id = {empty with varid = Set.singleton id.it} let free_defid id = {empty with defid = Set.singleton id.it} -(* TODO: Make a .mli file *) -let tmp = (+) -let (+) = union - let rec free_exp ignore_listN e = let f = free_exp ignore_listN in let fp = free_path ignore_listN in @@ -29,23 +25,23 @@ let rec free_exp ignore_listN e = | ProjE (e1, _) -> f e1 | DotE (e1, _, al) | CaseE (_, al, e1) | UncaseE (e1, _, al) -> - f e1 + free_list fa al + f e1 ++ free_list fa al | BinE (_, _, e1, e2) | CmpE (_, _, e1, e2) | IdxE (e1, e2) | CompE (e1, e2) | MemE (e1, e2) | CatE (e1, e2) -> free_list f [e1; e2] | SliceE (e1, e2, e3) -> free_list f [e1; e2; e3] | OptE eo -> free_opt f eo | TupE es | ListE es -> free_list f es | UpdE (e1, p, e2) | ExtE (e1, p, e2) -> - free_list f [e1; e2] + fp p + free_list f [e1; e2] ++ fp p | StrE efs -> free_list fef efs | CallE (_, args) -> free_list fa args | IterE (e1, iter) -> let free1 = f e1 in let bound, free2 = fi iter in - diff free1 bound + free2 + free1 -- bound ++ free2 and free_expfield ignore_listN (_, al, e) = - free_list (free_arg ignore_listN) al + free_exp ignore_listN e + free_list (free_arg ignore_listN) al ++ free_exp ignore_listN e and free_arg ignore_listN arg = let f = free_exp ignore_listN in @@ -61,10 +57,10 @@ and free_path ignore_listN p = let fa = free_arg ignore_listN in match p.it with | RootP -> empty - | IdxP (p1, e) -> fp p1 + f e + | IdxP (p1, e) -> fp p1 ++ f e | SliceP (p1, e1, e2) -> - fp p1 + f e1 + f e2 - | DotP (p1, _, al) -> fp p1 + free_list fa al + fp p1 ++ f e1 ++ f e2 + | DotP (p1, _, al) -> fp p1 ++ free_list fa al and free_iterexp ignore_listN (iter, xes) = let f = free_exp ignore_listN in @@ -72,12 +68,12 @@ and free_iterexp ignore_listN (iter, xes) = let free = free_list f (List.map snd xes) in match iter with | ListN (e, None) -> - bound, if ignore_listN then free else free + f e + bound, if ignore_listN then free else free ++ f e | ListN (e, Some id) -> (* Do not regard i* as free *) let snd' = (fun (x, e) -> if Il.Eq.eq_id id x then None else Some e) in let free = free_list f (List.filter_map snd' xes) in - bound + free_varid id, if ignore_listN then empty else free + f e + bound ++ free_varid id, if ignore_listN then empty else free ++ f e | _ -> bound, free let rec free_prem ignore_listN prem = @@ -87,12 +83,12 @@ let rec free_prem ignore_listN prem = match prem.it with | RulePr (_id, _op, e) -> f e | IfPr e -> f e - | LetPr (e1, e2, _ids) -> f e1 + f e2 + | LetPr (e1, e2, _ids) -> f e1 ++ f e2 | ElsePr -> empty | IterPr (prem', iter) -> let free1 = fp prem' in let bound, free2 = fi iter in - diff (free1 + free2) bound + (free1 ++ free2) -- bound (* For unification *) @@ -101,7 +97,7 @@ let free_rule rule = match rule.it with | RuleD (_id, _bs, _op, e, prems) -> List.fold_left - (+) + (++) (Il.Free.free_exp e) (List.map Il.Free.free_prem prems) @@ -109,30 +105,28 @@ let free_clause clause = match clause.it with | DefD (_bs, as_, e, prems) -> List.fold_left - (+) + (++) (Il.Free.free_exp e) (List.map Il.Free.free_prem prems @ List.map Il.Free.free_arg as_) let free_params params = - List.fold_left (fun s param -> s + free_param param) empty params + List.fold_left (fun s param -> s ++ free_param param) empty params let free_clauses clss = - List.fold_left (fun s c -> s + free_clause c) empty clss + List.fold_left (fun s c -> s ++ free_clause c) empty clss let free_rules rules = - List.fold_left (fun s r -> s + free_rule r) empty rules + List.fold_left (fun s r -> s ++ free_rule r) empty rules let free_rule_def rd = let (_, _, clauses) = rd.it in List.fold_left (fun s c -> let _, lhs, rhs, prems = c in - List.fold_left (fun s p -> s + Il.Free.free_prem p) s prems - |> union (Il.Free.free_exp lhs) - |> union (Il.Free.free_exp rhs) + List.fold_left (fun s p -> s ++ Il.Free.free_prem p) s prems + |> (++) (Il.Free.free_exp lhs) + |> (++) (Il.Free.free_exp rhs) ) empty clauses let free_helper_def hd = let (_, clauses, _) = hd.it in free_clauses clauses - -let (+) = tmp diff --git a/spectec/src/util/debug_log.ml b/spectec/src/util/debug_log.ml index 5b38b10d61..e55a2f1889 100644 --- a/spectec/src/util/debug_log.ml +++ b/spectec/src/util/debug_log.ml @@ -8,7 +8,7 @@ let log_exn _exn = if !active <> [] then Printf.eprintf "\n%s\n%!" (Printexc.get_backtrace ()) -let log_at (type a) label at (arg_f : unit -> string) (res_f : a -> string) (f : unit -> a) : a = +let log_at' (type a) label at (arg_f : unit -> string) (res_f : a -> string option) (f : unit -> a) : a = if not (label = "" || List.exists (fun s -> String.starts_with ~prefix: s label) !active) then f () else let ats = if at = Source.no_region then "" else " " ^ Source.string_of_region at in let arg = arg_f () in @@ -19,11 +19,12 @@ let log_at (type a) label at (arg_f : unit -> string) (res_f : a -> string) (f : Printf.eprintf "[%s%s] %s => raise %s\n%!" label ats arg (Printexc.to_string exn); Printexc.raise_with_backtrace exn bt | x -> - let res = res_f x in - if res <> "" then Printf.eprintf "[%s%s] %s => %s\n%!" label ats arg res; + res_f x |> Option.iter (fun res -> + Printf.eprintf "[%s%s] %s => %s\n%!" label ats arg res); x -let log_in_at label at arg_f = log_at label at arg_f (Fun.const "") Fun.id +let log_at label at arg_f res_f = log_at' label at arg_f (fun x -> Some (res_f x)) +let log_in_at label at arg_f = log_at' label at arg_f (Fun.const None) Fun.id let log_in label = log_in_at label Source.no_region let log label = log_at label Source.no_region let log_if_at label at b arg_f res_f f = if b then log_at label at arg_f res_f f else f () @@ -32,6 +33,8 @@ let log_if label = log_if_at label Source.no_region module MySet = Set.Make(String) module MyMap = Map.Make(String) +let quote x = "`" ^ x ^ "`" +let pair f s g (x, y) = f x ^ s ^ g y let opt f = function None -> "-" | Some x -> f x let result f g = function Ok x -> f x | Error y -> g y let seq f xs = String.concat " " (List.map f xs) diff --git a/spectec/src/xl/gen_free.ml b/spectec/src/xl/gen_free.ml new file mode 100644 index 0000000000..231dda5d80 --- /dev/null +++ b/spectec/src/xl/gen_free.ml @@ -0,0 +1,90 @@ +open Util.Source + + +(* Data Structure *) + +module Set = Set.Make(String) + +type id = string phrase + +type sets = + {typid : Set.t; relid : Set.t; varid : Set.t; defid : Set.t; gramid : Set.t} + +let empty = + { typid = Set.empty; + relid = Set.empty; + varid = Set.empty; + defid = Set.empty; + gramid = Set.empty + } + +let union sets1 sets2 = + { typid = Set.union sets1.typid sets2.typid; + relid = Set.union sets1.relid sets2.relid; + varid = Set.union sets1.varid sets2.varid; + defid = Set.union sets1.defid sets2.defid; + gramid = Set.union sets1.gramid sets2.gramid; + } + +let inter sets1 sets2 = + { typid = Set.inter sets1.typid sets2.typid; + gramid = Set.inter sets1.gramid sets2.gramid; + relid = Set.inter sets1.relid sets2.relid; + varid = Set.inter sets1.varid sets2.varid; + defid = Set.inter sets1.defid sets2.defid; + } + +let diff sets1 sets2 = + { typid = Set.diff sets1.typid sets2.typid; + relid = Set.diff sets1.relid sets2.relid; + varid = Set.diff sets1.varid sets2.varid; + defid = Set.diff sets1.defid sets2.defid; + gramid = Set.diff sets1.gramid sets2.gramid; + } + +let ( ++ ) = union +let ( ** ) = inter +let ( -- ) = diff + +let subset sets1 sets2 = + Set.subset sets1.typid sets2.typid && + Set.subset sets1.relid sets2.relid && + Set.subset sets1.varid sets2.varid && + Set.subset sets1.defid sets2.defid && + Set.subset sets1.gramid sets2.gramid + +let disjoint sets1 sets2 = + Set.disjoint sets1.typid sets2.typid && + Set.disjoint sets1.relid sets2.relid && + Set.disjoint sets1.varid sets2.varid && + Set.disjoint sets1.defid sets2.defid && + Set.disjoint sets1.gramid sets2.gramid + + +(* Identifiers *) + +let free_typid x = {empty with typid = Set.singleton x.it} +let free_relid x = {empty with relid = Set.singleton x.it} +let free_varid x = {empty with varid = Set.singleton x.it} +let free_defid x = {empty with defid = Set.singleton x.it} +let free_gramid x = {empty with gramid = Set.singleton x.it} + +let bound_typid x = if x.it = "_" then empty else free_typid x +let bound_relid x = if x.it = "_" then empty else free_relid x +let bound_varid x = if x.it = "_" then empty else free_varid x +let bound_defid x = if x.it = "_" then empty else free_defid x +let bound_gramid x = if x.it = "_" then empty else free_gramid x + + +(* Aggregates *) + +let free_empty _ = empty +let free_pair free_x free_y (x, y) = free_x x ++ free_y y +let free_opt free_x xo = Option.(value (map free_x xo) ~default:empty) +let free_list free_x xs = List.(fold_left (++) empty (map free_x xs)) + +let rec free_list_dep free_x bound_x = function + | [] -> empty + | x::xs -> free_x x ++ (free_list_dep free_x bound_x xs -- bound_x x) + +let bound_list = free_list diff --git a/spectec/src/xl/gen_free.mli b/spectec/src/xl/gen_free.mli new file mode 100644 index 0000000000..8c2983fe81 --- /dev/null +++ b/spectec/src/xl/gen_free.mli @@ -0,0 +1,37 @@ +module Set : Set.S with type elt = string with type t = Set.Make(String).t + +type id = string Util.Source.phrase + +type sets = {typid : Set.t; relid : Set.t; varid : Set.t; defid : Set.t; gramid : Set.t} + +val empty : sets +val union : sets -> sets -> sets +val inter : sets -> sets -> sets +val diff : sets -> sets -> sets + +val ( ++ ) : sets -> sets -> sets (* union *) +val ( ** ) : sets -> sets -> sets (* intersection *) +val ( -- ) : sets -> sets -> sets (* difference *) + +val subset : sets -> sets -> bool +val disjoint : sets -> sets -> bool + +val free_typid : id -> sets +val free_relid : id -> sets +val free_varid : id -> sets +val free_defid : id -> sets +val free_gramid : id -> sets + +val bound_typid : id -> sets +val bound_relid : id -> sets +val bound_varid : id -> sets +val bound_defid : id -> sets +val bound_gramid : id -> sets + +val free_empty : 'a -> sets +val free_pair : ('a -> sets) -> ('b -> sets) -> 'a * 'b -> sets +val free_opt : ('a -> sets) -> 'a option -> sets +val free_list : ('a -> sets) -> 'a list -> sets +val free_list_dep : ('a -> sets) -> ('a -> sets) -> 'a list -> sets + +val bound_list : ('a -> sets) -> 'a list -> sets From 0fce79c7696c1aaf03dab381d58da845d18ce1ad Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Sun, 18 Jan 2026 17:44:58 +0100 Subject: [PATCH 09/23] WIP4 (Wasm 1.0 validates again) --- spectec/src/al/valid.ml | 4 +- spectec/src/backend-interpreter/host.ml | 4 +- spectec/src/frontend/det.ml | 28 +- spectec/src/frontend/dim.ml | 242 +++--- spectec/src/frontend/dim.mli | 6 +- spectec/src/frontend/elab.ml | 1036 ++++++++++++----------- spectec/src/il/debug.ml | 1 + spectec/src/il/env.ml | 3 +- spectec/src/il/eval.ml | 2 +- spectec/src/il/free.ml | 17 +- spectec/src/il/fresh.ml | 2 + spectec/src/il/iter.ml | 33 +- spectec/src/il/print.ml | 2 + spectec/src/il/subst.ml | 76 +- spectec/src/il/subst.mli | 2 + spectec/src/il/valid.ml | 184 ++-- spectec/src/util/debug_log.ml | 1 + 17 files changed, 863 insertions(+), 780 deletions(-) diff --git a/spectec/src/al/valid.ml b/spectec/src/al/valid.ml index c66a6d9762..a202345b89 100644 --- a/spectec/src/al/valid.ml +++ b/spectec/src/al/valid.ml @@ -175,7 +175,7 @@ and unify_typs_opt : typ list -> typ option = function and ground_typ_of (typ: typ) : typ = match typ.it with | VarT (id, _) when IlEnv.mem_var !il_env id -> - let typ', _ = IlEnv.find_var !il_env id in + let typ' = IlEnv.find_var !il_env id in if Il.Eq.eq_typ typ typ' then typ else ground_typ_of typ' (* NOTE: Consider `fN` as a `NumT` to prevent diverging ground type *) | VarT (id, _) when id.it = "fN" -> NumT `RealT $ typ.at @@ -316,7 +316,7 @@ let check_call source id args result_typ = match arg.it, param.it with | ExpA expr, ExpP (_, typ') -> check_match source expr.note typ' (* Add local variable typ *) - | TypA typ1, TypP id -> il_env := IlEnv.bind_var !il_env id (typ1, Reg) + | TypA typ1, TypP id -> il_env := IlEnv.bind_var !il_env id typ1 | DefA aid, DefP (_, pparams, ptyp) -> (match IlEnv.find_opt_def !il_env (aid $ no_region) with | Some (aparams, atyp, _) -> diff --git a/spectec/src/backend-interpreter/host.ml b/spectec/src/backend-interpreter/host.ml index 8e7e3784ee..fad576a6ba 100644 --- a/spectec/src/backend-interpreter/host.ml +++ b/spectec/src/backend-interpreter/host.ml @@ -41,9 +41,9 @@ let spectest () = "VALUE", v |> ref ] in - let create_tableinst t elems = StrV [ + let create_tableinst t refs = StrV [ "TYPE", t |> ref; - "REFS", elems |> ref + "REFS", refs |> ref ] in let create_meminst t bytes_ = StrV [ diff --git a/spectec/src/frontend/det.ml b/spectec/src/frontend/det.ml index d7261f486d..9e269982d9 100644 --- a/spectec/src/frontend/det.ml +++ b/spectec/src/frontend/det.ml @@ -59,11 +59,11 @@ and det_exp e = | IdxE _ | SliceE _ | UpdE _ | ExtE _ | CompE _ | MemE _ | ProjE _ | DotE _ | LenE _ -> det_idx_exp e -and det_expfield (_, _, e) = det_exp e +and det_expfield (_, as_, e) = det_list det_quant_arg as_ ++ det_exp e -and det_iterexp s1 (iter, xes) = +and det_iterexp s1 (it, xes) = s1 -- free_list bound_varid (List.map fst xes) ++ - det_iter iter ++ + det_iter it ++ det_list det_exp (List.filter_map (fun (x, e) -> if Set.mem x.it s1.varid then Some e else None) xes) @@ -93,7 +93,7 @@ and det_idx_exp e = | OptE eo -> free_opt det_idx_exp eo | ListE es | TupE es -> det_list det_idx_exp es | StrE efs -> det_list det_idx_expfield efs - | IterE (e1, iter) -> det_idx_exp e1 ++ det_idx_iter (fst iter) + | IterE (e1, ite) -> det_idx_iterexp (det_idx_exp e1) ite | CallE (_, as_) -> det_list det_idx_arg as_ | IdxE (e1, e2) -> det_quant_exp e1 ++ det_exp e2 | _ -> det_quant_exp e @@ -105,6 +105,12 @@ and det_idx_iter iter = | Opt | List | List1 -> empty | ListN (e, x_opt) -> det_idx_exp e ++ free_opt bound_varid x_opt +and det_idx_iterexp s1 (it, xes) = + s1 -- free_list bound_varid (List.map fst xes) ++ + det_idx_iter it ++ + det_list det_idx_exp (List.filter_map + (fun (x, e) -> if Set.mem x.it s1.varid then Some e else None) xes) + and det_quant_exp e = Il.Debug.(log_at "il.det_quant_exp" e.at @@ -112,7 +118,8 @@ and det_quant_exp e = (fun s -> String.concat ", " (Set.elements s.varid)) ) @@ fun _ -> match e.it with - | VarE _ | BoolE _ | NumE _ | TextE _ -> empty + | VarE x -> bound_varid x + | BoolE _ | NumE _ | TextE _ -> empty | UnE (_, _, e1) | ProjE (e1, _) | TheE e1 | LiftE e1 | LenE e1 | CvtE (e1, _, _) | SubE (e1, _, _) -> det_quant_exp e1 @@ -128,10 +135,17 @@ and det_quant_exp e = | OptE eo -> free_opt det_quant_exp eo | ListE es | TupE es -> det_list det_quant_exp es | StrE efs -> det_list det_quant_expfield efs - | IterE (e1, iter) -> det_quant_exp e1 ++ det_quant_iter (fst iter) + | IterE (e1, ite) -> det_quant_iterexp (det_quant_exp e1) ite | CallE (_, as_) -> det_list det_quant_arg as_ -and det_quant_expfield (_, _, e) = det_quant_exp e +and det_quant_expfield (_, as_, e) = + det_list det_quant_arg as_ ++ det_quant_exp e + +and det_quant_iterexp s1 (it, xes) = + s1 -- free_list bound_varid (List.map fst xes) ++ + det_quant_iter it ++ + det_list det_quant_exp (List.filter_map + (fun (x, e) -> if Set.mem x.it s1.varid then Some e else None) xes) and det_quant_path p = match p.it with diff --git a/spectec/src/frontend/dim.ml b/spectec/src/frontend/dim.ml index 4f2542ce5c..ca0fe26137 100644 --- a/spectec/src/frontend/dim.ml +++ b/spectec/src/frontend/dim.ml @@ -79,6 +79,7 @@ let check_ctxs id ctxs : region * ctx = at, ctx let check_dims (dims : rdims ref) : dims = +Printf.printf "[check_dims] %s\n%!" (Debug.domain !dims); Map.mapi check_ctxs !dims @@ -92,24 +93,32 @@ let check_typid _dims _ctx _id = () (* Types are always global *) let check_gramid _dims _ctx _id = () (* Grammars are always global *) let check_varid dims ctx mode id = - let ctxs = Option.value (Map.find_opt id.it !dims) ~default:[] in - dims := Map.add id.it ((id.at, ctx, mode)::ctxs) !dims + dims := Map.add_to_list id.it (id.at, ctx, mode) !dims -let rec check_iter dims ctx iter = - match iter with +let uncheck_varid dims id = + dims := Map.add id.it (List.tl (Map.find id.it !dims)) !dims + +let rec check_iter dims ctx it = + match it with | Opt | List | List1 -> () - | ListN (e, id_opt) -> + | ListN (e, x_opt) -> check_exp dims ctx e; - (* TODO(2, rossberg): The dimension for id should match that of e: - * for example, if we b^(i check_varid dims [strip_index iter] `Expl id) id_opt + Option.iter (check_varid dims [] `Expl) x_opt + +and check_iterexp : 'a. _ -> _ -> (_ -> _ -> 'a -> unit) -> 'a -> _ -> unit = + fun dims ctx f body (it, xes) -> + check_iter dims ctx it; + List.iter (fun (x, e) -> check_varid dims [] `Expl x; check_exp dims ctx e) xes; + (* Only check body if iteration isn't annotated already. + * That may happen when e.g. an expression got substituted originating from + * a type definition already processed earlier. *) + if xes = [] then f dims (strip_index it::ctx) body; + (* Remove locals. + * All locals are scalar, so no checking or annotation is needed for them. *) + List.iter (fun (x, _) -> uncheck_varid dims x) xes; + match it with + | ListN (_, Some x) -> uncheck_varid dims x + | _ -> () and check_typ dims ctx t = match t.it with @@ -149,11 +158,11 @@ and check_deftyp dims ctx dt = ) tcs *) -and check_iterexp dims ctx (iter, xes) = - check_iter dims ctx iter; - assert (xes = []) - and check_exp dims ctx e = + Debug.(log "il.check_exp" + (fun _ -> il_exp e) + (fun _ -> domain !dims) + ) @@ fun _ -> match e.it with | VarE x -> check_varid dims ctx `Expl x @@ -199,8 +208,7 @@ and check_exp dims ctx e = | CallE (_, as_) -> List.iter (check_arg dims ctx) as_ | IterE (e1, ite) -> - check_iterexp dims ctx ite; - check_exp dims (strip_index (fst ite)::ctx) e1 + check_iterexp dims ctx check_exp e1 ite | SubE (e1, t1, t2) -> check_exp dims ctx e1; check_typ dims ctx t1; @@ -242,8 +250,7 @@ and check_sym dims ctx g = check_exp dims ctx e; check_sym dims ctx g1 | IterG (g1, ite) -> - check_iterexp dims ctx ite; - check_sym dims (strip_index (fst ite)::ctx) g1 + check_iterexp dims ctx check_sym g1 ite and check_prem dims ctx prem = @@ -254,9 +261,8 @@ and check_prem dims ctx prem = | LetPr (e1, e2, _xs) -> check_exp dims ctx e1; check_exp dims ctx e2 - | IterPr (prem', ite) -> - check_iterexp dims ctx ite; - check_prem dims (strip_index (fst ite)::ctx) prem' + | IterPr (prem1, ite) -> + check_iterexp dims ctx check_prem prem1 ite and check_arg dims ctx a = match a.it with @@ -388,10 +394,6 @@ let union = Map.union (fun _ (_, ctx1 as occ1) (_, ctx2 as occ2) -> (* For well-typed scripts, t1 == t2. *) Some (if List.length ctx1 < List.length ctx2 then occ1 else occ2)) -let strip_index = function - | ListN (e, Some _) -> ListN (e, None) - | iter -> iter - let annot_varid' id' = function | Opt -> id' ^ Il.Print.string_of_iter Opt | _ -> id' ^ Il.Print.string_of_iter List @@ -401,26 +403,38 @@ let rec annot_varid id = function | iter::iters -> annot_varid (annot_varid' id.it iter $ id.at) iters -let rec annot_iter dims iter : iter * (occur * occur) = +let rec annot_iter side dims iter : iter * occur = Il.Debug.(log "il.annot_iter" (fun _ -> fmt "%s" (il_iter iter)) - (fun (iter', (occur1, occur2)) -> fmt "%s %s %s" (il_iter iter') - (il_occur occur1) (il_occur occur2)) + (fun (iter', occur) -> fmt "%s %s" (il_iter iter') (il_occur occur)) ) @@ fun _ -> match iter with - | Opt | List | List1 -> iter, Map.(empty, empty) + | Opt | List | List1 -> iter, Map.empty | ListN (e, x_opt) -> - let e', occur1 = annot_exp dims e in - let occur2 = - match x_opt with - | None -> Map.empty - | Some x -> - if x.it <> "_" && Map.mem x.it dims then - Map.singleton x.it (NumT `NatT $ x.at, snd (Map.find x.it dims)) - else - Map.empty - in - ListN (e', x_opt), (occur1, occur2) + let e', occur = annot_exp side dims e in + ListN (e', x_opt), occur + +and annot_iterexp side dims occur1 (it, xes) at : iterexp * occur = + Il.Debug.(log_at "il.annot_iterexp" at + (fun _ -> fmt "%s %s" (il_iter it) (il_occur occur1)) + (fun ((it', _), occur') -> fmt "%s %s" (il_iter it') (il_occur occur')) + ) @@ fun _ -> + assert (xes = []); + let it', occur2 = annot_iter side dims it in + (* Remove locals and lower context level of non-locals *) + let occur1' = + List.filter_map (fun (x, (t, its)) -> + match its with + | [] -> None + | it::its' -> Some (x, (annot_varid' x it, (IterT (t, it) $ at, its'))) + ) (Map.bindings occur1) + in + List.iter (fun (x, _) -> assert (not (Map.mem x.it dims))) xes; + if side = `Rhs && occur1' = [] && match it with Opt | ListN _ -> false | _ -> true then + error at "iteration does not contain iterable variable"; + let xes' = + List.map (fun (x, (x', (t, _))) -> x $ at, VarE (x' $ at) $$ at % t) occur1' in + (it', xes'), union (Map.of_seq (List.to_seq (List.map snd occur1'))) occur2 and annot_typ dims t : typ * occur = Il.Debug.(log "il.annot_typ" @@ -439,7 +453,7 @@ and annot_typ dims t : typ * occur = TupT xts', List.fold_left union Map.empty occurs | IterT (t1, iter) -> let t1', occur1 = annot_typ dims t1 in - let (iter', _), occur = annot_iterexp dims occur1 (iter, []) t.at in + let (iter', _), occur = annot_iterexp `Lhs dims occur1 (iter, []) t.at in IterT (t1', iter'), occur in {t with it}, occur @@ -454,7 +468,7 @@ and annot_typbind dims (x, t) : (id * typ) * occur = (x, t'), union occur1 occur2 -and annot_exp dims e : exp * occur = +and annot_exp side dims e : exp * occur = Il.Debug.(log "il.annot_exp" (fun _ -> fmt "%s" (il_exp e)) (fun (e', occur') -> fmt "%s %s" (il_exp e') (il_occur occur')) @@ -466,105 +480,105 @@ and annot_exp dims e : exp * occur = | VarE _ | BoolE _ | NumE _ | TextE _ -> e.it, Map.empty | UnE (op, nt, e1) -> - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp side dims e1 in UnE (op, nt, e1'), occur1 | BinE (op, nt, e1, e2) -> - let e1', occur1 = annot_exp dims e1 in - let e2', occur2 = annot_exp dims e2 in + let e1', occur1 = annot_exp side dims e1 in + let e2', occur2 = annot_exp side dims e2 in BinE (op, nt, e1', e2'), union occur1 occur2 | CmpE (op, nt, e1, e2) -> - let e1', occur1 = annot_exp dims e1 in - let e2', occur2 = annot_exp dims e2 in + let e1', occur1 = annot_exp side dims e1 in + let e2', occur2 = annot_exp side dims e2 in CmpE (op, nt, e1', e2'), union occur1 occur2 | IdxE (e1, e2) -> - let e1', occur1 = annot_exp dims e1 in - let e2', occur2 = annot_exp dims e2 in + let e1', occur1 = annot_exp side dims e1 in + let e2', occur2 = annot_exp side dims e2 in IdxE (e1', e2'), union occur1 occur2 | SliceE (e1, e2, e3) -> - let e1', occur1 = annot_exp dims e1 in - let e2', occur2 = annot_exp dims e2 in - let e3', occur3 = annot_exp dims e3 in + let e1', occur1 = annot_exp side dims e1 in + let e2', occur2 = annot_exp side dims e2 in + let e3', occur3 = annot_exp side dims e3 in SliceE (e1', e2', e3'), union (union occur1 occur2) occur3 | UpdE (e1, p, e2) -> - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp side dims e1 in let p', occur2 = annot_path dims p in - let e2', occur3 = annot_exp dims e2 in + let e2', occur3 = annot_exp side dims e2 in UpdE (e1', p', e2'), union (union occur1 occur2) occur3 | ExtE (e1, p, e2) -> - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp side dims e1 in let p', occur2 = annot_path dims p in - let e2', occur3 = annot_exp dims e2 in + let e2', occur3 = annot_exp side dims e2 in ExtE (e1', p', e2'), union (union occur1 occur2) occur3 | StrE efs -> - let efs', occurs = List.split (List.map (annot_expfield dims) efs) in + let efs', occurs = List.split (List.map (annot_expfield side dims) efs) in StrE efs', List.fold_left union Map.empty occurs | DotE (e1, atom, as_) -> - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp side dims e1 in let as', occurs = List.split (List.map (annot_arg dims) as_) in DotE (e1', atom, as'), List.fold_left union occur1 occurs | CompE (e1, e2) -> - let e1', occur1 = annot_exp dims e1 in - let e2', occur2 = annot_exp dims e2 in + let e1', occur1 = annot_exp side dims e1 in + let e2', occur2 = annot_exp side dims e2 in CompE (e1', e2'), union occur1 occur2 | LenE e1 -> - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp side dims e1 in LenE e1', occur1 | TupE es -> - let es', occurs = List.split (List.map (annot_exp dims) es) in + let es', occurs = List.split (List.map (annot_exp side dims) es) in TupE es', List.fold_left union Map.empty occurs | CallE (id, as1) -> let as1', occurs = List.split (List.map (annot_arg dims) as1) in CallE (id, as1'), List.fold_left union Map.empty occurs | IterE (e1, iter) -> - let e1', occur1 = annot_exp dims e1 in - let iter', occur' = annot_iterexp dims occur1 iter e.at in + let e1', occur1 = annot_exp side dims e1 in + let iter', occur' = annot_iterexp side dims occur1 iter e.at in IterE (e1', iter'), occur' | ProjE (e1, i) -> - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp side dims e1 in ProjE (e1', i), occur1 | UncaseE (e1, op, as_) -> - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp side dims e1 in let as', occurs = List.split (List.map (annot_arg dims) as_) in UncaseE (e1', op, as'), List.fold_left union occur1 occurs | OptE None -> OptE None, Map.empty | OptE (Some e1) -> - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp side dims e1 in OptE (Some e1'), occur1 | TheE e1 -> - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp side dims e1 in TheE e1', occur1 | ListE es -> - let es', occurs = List.split (List.map (annot_exp dims) es) in + let es', occurs = List.split (List.map (annot_exp side dims) es) in ListE es', List.fold_left union Map.empty occurs | LiftE e1 -> - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp side dims e1 in LiftE e1', occur1 | MemE (e1, e2) -> - let e1', occur1 = annot_exp dims e1 in - let e2', occur2 = annot_exp dims e2 in + let e1', occur1 = annot_exp side dims e1 in + let e2', occur2 = annot_exp side dims e2 in MemE (e1', e2'), union occur1 occur2 | CatE (e1, e2) -> - let e1', occur1 = annot_exp dims e1 in - let e2', occur2 = annot_exp dims e2 in + let e1', occur1 = annot_exp side dims e1 in + let e2', occur2 = annot_exp side dims e2 in CatE (e1', e2'), union occur1 occur2 | CaseE (atom, as_, e1) -> let as', occurs = List.split (List.map (annot_arg dims) as_) in - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp side dims e1 in CaseE (atom, as', e1'), List.fold_left union occur1 occurs | CvtE (e1, nt1, nt2) -> - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp side dims e1 in CvtE (e1', nt1, nt2), occur1 | SubE (e1, t1, t2) -> - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp side dims e1 in let t1', occur2 = annot_typ dims t1 in let t2', occur3 = annot_typ dims t2 in SubE (e1', t1', t2'), union occur1 (union occur2 occur3) in {e with it}, occur -and annot_expfield dims (atom, as_, e) : expfield * occur = +and annot_expfield side dims (atom, as_, e) : expfield * occur = let as', occurs = List.split (List.map (annot_arg dims) as_) in - let e', occur = annot_exp dims e in + let e', occur = annot_exp side dims e in (atom, as', e'), List.fold_left union occur occurs and annot_path dims p : path * occur = @@ -573,12 +587,12 @@ and annot_path dims p : path * occur = | RootP -> RootP, Map.empty | IdxP (p1, e) -> let p1', occur1 = annot_path dims p1 in - let e', occur2 = annot_exp dims e in + let e', occur2 = annot_exp `Rhs dims e in IdxP (p1', e'), union occur1 occur2 | SliceP (p1, e1, e2) -> let p1', occur1 = annot_path dims p1 in - let e1', occur2 = annot_exp dims e1 in - let e2', occur3 = annot_exp dims e2 in + let e1', occur2 = annot_exp `Rhs dims e1 in + let e2', occur3 = annot_exp `Rhs dims e2 in SliceP (p1', e1', e2'), union occur1 (union occur2 occur3) | DotP (p1, atom, as_) -> let p1', occur1 = annot_path dims p1 in @@ -586,34 +600,6 @@ and annot_path dims p : path * occur = DotP (p1', atom, as'), List.fold_left union occur1 occurs in {p with it}, occur -and annot_iterexp dims occur1 (iter, xes) at : iterexp * occur = - Il.Debug.(log "il.annot_iterexp" - (fun _ -> fmt "%s %s" (il_iter iter) (il_occur occur1)) - (fun ((iter', _), occur') -> fmt "%s %s" (il_iter iter') (il_occur occur')) - ) @@ fun _ -> - assert (xes = []); - let iter', (occur2, occur3) = annot_iter dims iter in - let occur1'_l = - List.filter_map (fun (x, (t, iters)) -> - match iters with - | [] -> None - | iter::iters' -> -(* TODO(2, rossberg): this doesn't quite work, since it's comparing - annotated and unannotated expressions: - assert (Il.Eq.eq_iter (strip_index iter') iter); -*) - ignore strip_index; - Some (x, (annot_varid' x iter, (IterT (t, iter) $ at, iters'))) - ) (Map.bindings (union occur1 occur3)) - in -(* TODO(2, rossberg): this should be active - if occur1'_l = [] then - error at "iteration does not contain iterable variable"; -*) - let xes' = - List.map (fun (x, (x', (t, _))) -> x $ at, VarE (x' $ at) $$ at % t) occur1'_l in - (iter', xes'), union (Map.of_seq (List.to_seq (List.map snd occur1'_l))) occur2 - and annot_sym dims g : sym * occur = Il.Debug.(log_in "il.annot_sym" (fun _ -> il_sym g)); let it, occur = @@ -635,10 +621,10 @@ and annot_sym dims g : sym * occur = RangeG (g1', g2'), union occur1 occur2 | IterG (g1, iter) -> let g1', occur1 = annot_sym dims g1 in - let iter', occur' = annot_iterexp dims occur1 iter g.at in + let iter', occur' = annot_iterexp `Lhs dims occur1 iter g.at in IterG (g1', iter'), occur' | AttrG (e1, g2) -> - let e1', occur1 = annot_exp dims e1 in + let e1', occur1 = annot_exp `Lhs dims e1 in let g2', occur2 = annot_sym dims g2 in AttrG (e1', g2'), union occur1 occur2 in {g with it}, occur @@ -647,7 +633,7 @@ and annot_arg dims a : arg * occur = let it, occur = match a.it with | ExpA e -> - let e', occur1 = annot_exp dims e in + let e', occur1 = annot_exp `Rhs dims e in ExpA e', occur1 | TypA t -> let t', occur1 = annot_typ dims t in @@ -687,20 +673,20 @@ and annot_prem dims prem : prem * occur = let it, occur = match prem.it with | RulePr (x, op, e) -> - let e', occur = annot_exp dims e in + let e', occur = annot_exp `Rhs dims e in RulePr (x, op, e'), occur | IfPr e -> - let e', occur = annot_exp dims e in + let e', occur = annot_exp `Rhs dims e in IfPr e', occur | LetPr (e1, e2, ids) -> - let e1', occur1 = annot_exp dims e1 in - let e2', occur2 = annot_exp dims e2 in + let e1', occur1 = annot_exp `Lhs dims e1 in + let e2', occur2 = annot_exp `Rhs dims e2 in LetPr (e1', e2', ids), union occur1 occur2 | ElsePr -> ElsePr, Map.empty | IterPr (prem1, iter) -> let prem1', occur1 = annot_prem dims prem1 in - let iter', occur' = annot_iterexp dims occur1 iter prem.at in + let iter', occur' = annot_iterexp `Rhs dims occur1 iter prem.at in IterPr (prem1', iter'), occur' in {prem with it}, occur @@ -721,10 +707,16 @@ let annot_top annot_x dims x = assert (Map.for_all (fun _ (_t, ctx) -> ctx = []) occurs); x' -let annot_iter = annot_top (fun dims x -> let x', (y, _) = annot_iter dims x in x', y) +let annot_iter = annot_top (annot_iter `Rhs) let annot_typ = annot_top annot_typ -let annot_exp = annot_top annot_exp +let annot_exp = annot_top (annot_exp `Rhs) let annot_sym = annot_top annot_sym let annot_prem = annot_top annot_prem let annot_arg = annot_top annot_arg let annot_param = annot_top annot_param + + +(* Restriction *) + +let restrict dims bound = + Map.filter Il.Free.(fun x _ -> Set.mem x bound.varid) dims diff --git a/spectec/src/frontend/dim.mli b/spectec/src/frontend/dim.mli index 55ad85754b..f358818ff3 100644 --- a/spectec/src/frontend/dim.mli +++ b/spectec/src/frontend/dim.mli @@ -5,13 +5,13 @@ module Map : module type of Map.Make(String) type dims = (Util.Source.region * iter list) Map.t type outer = dims -val annot_varid : id -> iter list -> id - val check : outer -> param list -> arg list -> typ list -> exp list -> sym list -> prem list -> dims (* raises Error.Error *) +val annot_varid : id -> iter list -> id + val annot_iter : dims -> iter -> iter val annot_typ : dims -> typ -> typ val annot_exp : dims -> exp -> exp @@ -19,3 +19,5 @@ val annot_sym : dims -> sym -> sym val annot_prem : dims -> prem -> prem val annot_arg : dims -> arg -> arg val annot_param : dims -> param -> param + +val restrict : dims -> Il.Free.sets -> dims diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index d404249775..5962ef5908 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -51,27 +51,14 @@ let unseq_exp e = let untup_typ' t' = match t'.it with - | Il.TupT xts' -> List.map snd xts' - | _ -> [t'] + | Il.TupT xts' -> xts' + | _ -> [("_" $ t'.at, t')] let tup_typ' ts' at = match ts' with | [t'] -> t' | _ -> Il.TupT (List.map (fun t' -> "_" $ t'.at, t') ts') $ at -(* Like El.Convert but for IL *) -let varid_of_typ' t = - (match t.it with - | Il.VarT (id, []) -> id.it - | Il.BoolT -> "bool" - | Il.NumT `NatT -> "nat" - | Il.NumT `IntT -> "int" - | Il.NumT `RatT -> "rat" - | Il.NumT `RealT -> "real" - | Il.TextT -> "text" - | _ -> "_" - ) $ t.at - (* let tup_typ_bind' xts' at = (* @@ -222,7 +209,7 @@ let cat_exp' e1' e2' = (* Environment *) -type notation = Il.typ Mixop.mixop +type notation = (Il.id * Il.typ) Mixop.mixop type kind = | Transp (* forward alias types or notation types *) @@ -361,7 +348,7 @@ let il_arg_of_param p = let il_args_of_params = List.map il_arg_of_param -let to_il_var (_at, t) = (t, Il.Env.Reg) +let to_il_var (_at, t) = t let to_il_def (_at, (ps, t, clauses)) = (ps, t, List.map snd clauses) let to_il_gram (_at, (ps, t, prods, _)) = (ps, t, List.map snd prods) @@ -401,7 +388,10 @@ let annot_env env dims = | None -> x, t | Some (_at, ctx) -> (Dim.annot_varid (x $ at) ctx).it, - List.fold_left (fun t iter -> Il.IterT (t, iter) $ t.at) t ctx + List.fold_left (fun t iter -> + let iter' = match iter with Il.Opt -> Il.Opt | _ -> Il.List in + Il.IterT (t, iter') $ t.at + ) t ctx in Map.add x' (at, t') vars ) env.vars Map.empty in {env with vars} @@ -411,6 +401,8 @@ let make_quants_iter_arg env (free : Il.Free.sets) dims : Il.quant list ref * (m struct include Il.Iter.Skip + type scope = var_typ env' + let left = ref free let acc = ref [] @@ -420,7 +412,19 @@ let make_quants_iter_arg env (free : Il.Free.sets) dims : Il.quant list ref * (m left := Il.Free.{!left with typid = Set.remove id.it !left.typid}; ) -let visit_exp e = Printf.printf "[visit_exp %s]\n%!" (Il.Debug.il_exp e) + let scope_enter x t = +Printf.printf "[scope_enter %s]\n%!" x.it; + let varenv = env.vars in + env.vars <- bind "variable" env.vars x t; + varenv + + let scope_exit x varenv = +Printf.printf "[scope_exit %s]\n%!" x.it; + env.vars <- varenv + +let visit_exp e = +Printf.printf "[visit_exp %s]\n%!" (Il.Debug.il_exp e) + let visit_varid id = if not Il.Free.(Set.mem id.it !left.varid) then Printf.printf "[visit_id %s] not free\n%!" id.it; if not (Map.mem id.it dims) then Printf.printf "[visit_id %s] no dims\n%!" id.it; @@ -484,22 +488,24 @@ Printf.printf "[visit_id %s]\n%!" id.it; let infer_quants env env' dims det ps' as' ts' es' gs' prs' at : Il.quant list = let env' = annot_env env' dims in - Debug.(log_in_at "il.infer_quants" at + Debug.(log_at "il.infer_quants" at (fun _ -> -Printf.sprintf "as'=[%s] " Il.Debug.(list il_arg as') ^ -Printf.sprintf "es'=[%s] " Il.Debug.(list il_exp es') ^ - "local: " ^ +Printf.sprintf "\n as'=[%s]" Il.Debug.(list il_arg as') ^ +Printf.sprintf "\n es'=[%s]" Il.Debug.(list il_exp es') ^ +Printf.sprintf "\n prs'=[%s]" Il.Debug.(list il_prem prs') ^ + "\n locals=" ^ (Map.fold (fun id _ ids -> if Map.mem id env.vars then ids else id::ids ) env'.vars [] |> List.rev |> String.concat " ") ^ - " dims: " ^ + "\n dims=" ^ (Map.fold (fun id (_, ctx) ids -> (id ^ ":" ^ String.concat "" (List.map Il.Print.string_of_iter ctx)) :: ids ) dims [] |> List.rev |> String.concat " ") ^ - " det: " ^ + "\n dets=" ^ (Set.elements det.Det.varid |> String.concat " ") ) - ); + (fun qs -> fmt "\n... %s" (il_quants qs)) + ) @@ fun _ -> let bound = bound_env env in let free = Il.Free.( free_list free_param ps' ++ @@ -734,7 +740,9 @@ let expand_notation env t = Il.Eval.(match_list match_arg (to_il_env env) Il.Subst.empty as' as_) |> Option.map (fun s -> let mixop, (qs, t, _prems), _ = Il.Subst.subst_typcase s tc in - qs, t, mixop, Mixop.apply mixop (untup_typ' t) + let qs', s' = refresh_quants env qs in + let t' = Il.Subst.subst_typ s' t in + qs', t', mixop, Mixop.apply mixop (untup_typ' t') ) | _, _ -> None ) @@ -1044,31 +1052,44 @@ let check_atoms phrase item to_atom list at = (* Iteration *) -let rec elab_iter env (it : iter) : Il.quant list * Il.iter = +let rec elab_iter env (it : iter) : Il.iter = match it with - | Opt -> [], Il.Opt - | List -> [], Il.List - | List1 -> [], Il.List1 + | Opt -> Il.Opt + | List -> Il.List + | List1 -> Il.List1 | ListN (e, xo) -> Option.iter (fun x -> let t = Il.NumT `NatT $ x.at in - let qs, e' = checkpoint (elab_exp env (VarE (x, []) $ x.at) t) in + let e' = checkpoint (elab_exp env (VarE (x, []) $ x.at) t) in match e'.it with - | Il.VarE _ -> assert (qs = []) + | Il.VarE _ -> () | _ -> error_typ env x.at "iteration variable" t ) xo; - let qs, e' = checkpoint (elab_exp env e (Il.NumT `NatT $ e.at)) in - qs, Il.ListN (e', xo) + let e' = checkpoint (elab_exp env e (Il.NumT `NatT $ e.at)) in + Il.ListN (e', xo) -and elab_typiter env (it : iter) : Il.iter = +and elab_itertyp env (it : iter) : Il.iter = let it = match it with | List1 | ListN _ -> List | _ -> it in - let qs, it' = elab_iter env it in - assert (qs = []); - it' + elab_iter env it + +and elab_iterexp : 'a 'b. env -> (env -> 'a -> 'b attempt) -> 'a -> iter -> ('b * Il.iterexp * Il.iter) attempt = + fun env f body (it : iter) -> + let xo = match it with ListN (_, xo) -> xo | _ -> None in + let to_ = Option.join (Option.map (fun x -> Map.find_opt x.it env.vars) xo) in + let it' = elab_iter env it in + let* body' = f env body in + (* Remove local and restore outer if present *) + Option.iter (fun x -> + env.vars <- + match to_ with + | None -> Map.remove x.it env.vars + | Some t -> Map.add x.it t env.vars + ) xo; + Ok (body', (it', []), match it with Opt -> Il.Opt | _ -> Il.List) (* Types *) @@ -1083,9 +1104,7 @@ and elab_typ env ?(fwd = true) (t : typ) : Il.typ = let ps, k = find "syntax type" env.typs x' in if not fwd && k = Transp then error_id x "invalid forward reference to syntax type"; - let qs, as', _s = elab_args `Rhs env as_ ps t.at in - if qs <> [] then - error t.at "illegal expression form in type instantiation"; + let as', _s = elab_args `Rhs env as_ ps t.at in Il.VarT (x', as') $ t.at | BoolT -> Il.BoolT $ t.at | NumT t' -> Il.NumT t' $ t.at @@ -1094,14 +1113,14 @@ and elab_typ env ?(fwd = true) (t : typ) : Il.typ = | ParenT t1 -> elab_typ env t1 | TupT ts -> tup_typ' (List.map (elab_typ env) ts) t.at | IterT (t1, iter) -> - let iter' = elab_typiter env iter in + let iter' = elab_itertyp env iter in let t1' = elab_typ env t1 in Il.IterT (t1', iter') $ t.at | StrT _ | CaseT _ | ConT _ | RangeT _ | AtomT _ | SeqT _ | InfixT _ | BrackT _ -> error t.at "this type is only allowed in type definitions" -and elab_typ_definition env dims tid (t : typ) : dots * Il.deftyp * dots = +and elab_typ_definition env outer_dims tid (t : typ) : dots * Il.deftyp * dots = Debug.(log_at "el.elab_typ_definition" t.at (fun _ -> fmt "%s = %s" tid.it (el_typ t)) (fun (_, dt, _) -> il_deftyp dt) @@ -1128,7 +1147,7 @@ and elab_typ_definition env dims tid (t : typ) : dots * Il.deftyp * dots = List.map new_typfield tfs (* ensure atom annotations are fresh *) ) ts in - let tfs' = tfs1 @ tfs2 @ map_filter_nl_list (elab_typfield env dims tid t.at) tfs in + let tfs' = tfs1 @ tfs2 @ map_filter_nl_list (elab_typfield env outer_dims tid t.at) tfs in check_atoms "record" "field" Fun.id tfs' t.at; dots1, Il.StructT tfs' $ t.at, dots2 | CaseT (dots1, ts, tcs, dots2) -> @@ -1151,14 +1170,14 @@ and elab_typ_definition env dims tid (t : typ) : dots * Il.deftyp * dots = List.map new_typcase tcs (* ensure atom annotations are fresh *) ) ts in - let tcs' = tcs1 @ tcs2 @ map_filter_nl_list (elab_typcase env dims tid t.at) tcs in + let tcs' = tcs1 @ tcs2 @ map_filter_nl_list (elab_typcase env outer_dims tid t.at) tcs in check_atoms "variant" "case" (fun op -> Option.get (Mixop.head op)) tcs' t.at; dots1, Il.VariantT tcs' $ t.at, dots2 | ConT tc -> - let tc' = elab_typcon env dims tid t.at tc in + let tc' = elab_typcon env outer_dims tid t.at tc in NoDots, Il.VariantT [tc'] $ t.at, NoDots | RangeT tes -> - let ts_fes' = map_filter_nl_list (elab_typenum env dims tid) tes in + let ts_fes' = map_filter_nl_list (elab_typenum env outer_dims tid) tes in let t', fe' = List.fold_left (fun (t, fe') (tI, feI') -> (if narrow_typ env tI t then t else tI), @@ -1193,9 +1212,9 @@ and typ_rep env t : Il.typ = | Il.TupT [_, t1] -> typ_rep env t1 | t' -> t' $ t.at -and elab_typfield env dims tid at (tf : typfield) : Il.typfield = +and elab_typfield env outer_dims tid at (tf : typfield) : Il.typfield = let atom, (t, prems), hints = tf in - let _mixop, qs, t', prems' = elab_typ_notation env dims tid at t prems in + let _mixop, qs, t', prems' = elab_typ_notation env outer_dims tid at t prems in let hints' = elab_hints tid "" hints in let t'' = match t'.it with @@ -1204,15 +1223,15 @@ and elab_typfield env dims tid at (tf : typfield) : Il.typfield = in (elab_atom atom tid, (qs, t'', prems'), hints') -and elab_typcase env dims tid at (tc : typcase) : Il.typcase = +and elab_typcase env outer_dims tid at (tc : typcase) : Il.typcase = let _atom, (t, prems), hints = tc in - let mixop, qs, t', prems' = elab_typ_notation env dims tid at t prems in + let mixop, qs, t', prems' = elab_typ_notation env outer_dims tid at t prems in let hints' = elab_hints tid "" hints in (mixop, (qs, t', prems'), hints') -and elab_typcon env dims tid at (tc : typcon) : Il.typcase = +and elab_typcon env outer_dims tid at (tc : typcon) : Il.typcase = let (t, prems), hints = tc in - let mixop, qs, t', prems' = elab_typ_notation env dims tid at t prems in + let mixop, qs, t', prems' = elab_typ_notation env outer_dims tid at t prems in let hints' = elab_hints tid tid.it hints in (mixop, (qs, t', prems'), hints') @@ -1220,34 +1239,28 @@ and elab_typenum env outer_dims tid (te : typenum) : Il.typ * (Il.exp -> numtyp assert (valid_tid tid); let e1, e2o = te in let _e1' = elab_exp env e1 (Il.NumT `IntT $ e1.at) in (* ensure it's <= int *) - let _qs1, _, t1 = checkpoint (infer_exp env e1) in (* get precise type *) + let _, t1 = checkpoint (infer_exp env e1) in (* get precise type *) match e2o with | None -> t1, fun eid' nt -> - let qs1, e1' = checkpoint (elab_exp env e1 (Il.NumT nt $ e1.at)) in (* redo with overall type *) + let e1' = checkpoint (elab_exp env e1 (Il.NumT nt $ e1.at)) in (* redo with overall type *) let dims = Dim.check outer_dims [] [] [] [e1'] [] [] in let e1' = Dim.annot_exp dims e1' in infer_no_quants env dims Det.empty [] [] [] [e1'] [] [] e1.at; - if qs1 <> [] then - error e1.at "illegal expression form in range type"; Il.(CmpE (`EqOp, `BoolT, eid', e1') $$ e1'.at % (Il.BoolT $ e1.at)) | Some e2 -> let at = Source.over_region [e1.at; e2.at] in - let _qs21', _e2' = checkpoint (elab_exp env e2 (Il.NumT `IntT $ e2.at)) in - let _qs22, _, t2 = checkpoint (infer_exp env e2) in + let _e2' = checkpoint (elab_exp env e2 (Il.NumT `IntT $ e2.at)) in + let _, t2 = checkpoint (infer_exp env e2) in (if narrow_typ env t2 t1 then t1 else t2).it $ at, fun eid' nt -> - let qs1, e1' = checkpoint (elab_exp env e1 (Il.NumT nt $ e1.at)) in - let qs2, e2' = checkpoint (elab_exp env e2 (Il.NumT nt $ e2.at)) in + let e1' = checkpoint (elab_exp env e1 (Il.NumT nt $ e1.at)) in + let e2' = checkpoint (elab_exp env e2 (Il.NumT nt $ e2.at)) in let dims = Dim.check outer_dims [] [] [] [e1'; e2'] [] [] in let e1' = Dim.annot_exp dims e1' in let e2' = Dim.annot_exp dims e2' in infer_no_quants env dims Det.empty [] [] [] [e1'; e2'] [] [] at; - if qs1 <> [] then - error e1.at "illegal expression form in range type"; - if qs2 <> [] then - error e2.at "illegal expression form in range type"; Il.(BinE (`AndOp, `BoolT, CmpE (`GeOp, (nt :> Il.optyp), eid', e1') $$ e1'.at % (Il.BoolT $ e1.at), CmpE (`LeOp, (nt :> Il.optyp), eid', e2') $$ e2'.at % (Il.BoolT $ e2.at) @@ -1260,8 +1273,7 @@ and elab_typ_notation env outer_dims tid at (t : typ) (prems : prem nl_list) : let env' = local_env env in let mixop, xts' = elab_typ_notation' env' tid t in let xs', ts' = List.split xts' in - let qss, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in - let prems' = List.concat premss' in + let prems' = List.concat (map_filter_nl_list (elab_prem env') prems) in Printf.printf "--- 1 ---\n%!"; let dims = Dim.check outer_dims [] [] ts' [] [] prems' in Printf.printf "--- 2 ---\n%!"; @@ -1272,7 +1284,7 @@ Printf.printf "--- 3 ---\n%!"; let det = Det.(det_typ t' ++ det_list det_prem prems') in Printf.printf "--- 4 ---\n%!"; let qs = infer_quants env env' dims det [] [] [t'] [] [] prems' at in - mixop, qs @ List.concat qss, t', prems' + mixop, qs, t', prems' (* Debug.(log_in_at "il.infer_quants" at (fun _ -> @@ -1376,16 +1388,16 @@ and elab_typ_notation' env tid (t : typ) : Il.mixop * (Il.id * Il.typ) list = * - Fail (at, s) when it cannot, where s is the name of the failing construct * - raises Error.Error on fatal, unrecoverable errors *) -and infer_exp env e : (Il.quant list * Il.exp * Il.typ) attempt = +and infer_exp env e : (Il.exp * Il.typ) attempt = Debug.(log_at "el.infer_exp" e.at (fun _ -> fmt "%s" (el_exp e)) - (function Ok (qs, e', t) -> fmt "%s%s : %s" (il_quants qs) (il_exp e') (il_typ t) | _ -> "fail") + (function Ok (e', t) -> fmt "%s : %s" (il_exp e') (il_typ t) | _ -> "fail") ) @@ fun _ -> - let* qs, e', t' = infer_exp' env e in + let* e', t' = infer_exp' env e in let t = t' $ e.at in - Ok (qs, e' $$ e.at % t, t) + Ok (e' $$ e.at % t, t) -and infer_exp' env e : (Il.quant list * Il.exp' * Il.typ') attempt = +and infer_exp' env e : (Il.exp' * Il.typ') attempt = match e.it with | VarE (x, args) -> (* Args may only occur due to syntactic overloading with types *) @@ -1400,101 +1412,101 @@ and infer_exp' env e : (Il.quant list * Il.exp' * Il.typ') attempt = env.vars <- bind "variable" env.vars x t; Ok t else fail_infer e.at "variable" - in Ok ([], Il.VarE x, t.it) + in Ok (Il.VarE x, t.it) | AtomE _ -> fail_infer e.at "atom" | BoolE b -> - Ok ([], Il.BoolE b, Il.BoolT) + Ok (Il.BoolE b, Il.BoolT) | NumE (_op, n) -> - Ok ([], Il.NumE n, Il.NumT (Num.to_typ n)) + Ok (Il.NumE n, Il.NumT (Num.to_typ n)) | TextE s -> - Ok ([], Il.TextE s, Il.TextT) + Ok (Il.TextE s, Il.TextT) | CvtE (e1, nt) -> - let* qs1, e1', t1 = infer_exp env e1 in + let* e1', t1 = infer_exp env e1 in let* nt1 = as_num_typ "conversion" env Infer t1 e1.at in - let* qs1', e1'' = cast_exp "operand" env e1' t1 (Il.NumT nt1 $ e1.at) in - Ok (qs1 @ qs1', Il.CvtE (e1'', nt1, nt), Il.NumT nt) + let* e1'' = cast_exp "operand" env e1' t1 (Il.NumT nt1 $ e1.at) in + Ok (Il.CvtE (e1'', nt1, nt), Il.NumT nt) | UnE (op, e1) -> - let* qs1, e1', t1 = infer_exp env e1 in + let* e1', t1 = infer_exp env e1 in let* op', ot, t1', t = infer_unop env op (typ_rep env t1) e.at in - let* qs1', e1'' = cast_exp "operand" env e1' t1 t1' in + let* e1'' = cast_exp "operand" env e1' t1 t1' in if op = `PlusMinusOp || op = `MinusPlusOp then env.pm <- true; - Ok (qs1 @ qs1', Il.UnE (op', ot, e1''), t.it) + Ok (Il.UnE (op', ot, e1''), t.it) | BinE (e1, op, e2) -> - let* qs1, e1', t1 = infer_exp env e1 in - let* qs2, e2', t2 = infer_exp env e2 in + let* e1', t1 = infer_exp env e1 in + let* e2', t2 = infer_exp env e2 in let* op', ot, t1', t2', t = infer_binop env op (typ_rep env t1) (typ_rep env t2) e.at in - let* qs1', e1'' = cast_exp "operand" env e1' t1 t1' in - let* qs2', e2'' = cast_exp "operand" env e2' t2 t2' in - Ok (qs1 @ qs1' @ qs2 @ qs2', Il.BinE (op', ot, e1'', e2''), t.it) + let* e1'' = cast_exp "operand" env e1' t1 t1' in + let* e2'' = cast_exp "operand" env e2' t2 t2' in + Ok (Il.BinE (op', ot, e1'', e2''), t.it) | CmpE (e1, op, ({it = CmpE (e21, _, _); _} as e2)) -> - let* qs1, e1', _t1 = infer_exp env (CmpE (e1, op, e21) $ e.at) in - let* qs2, e2', _t2 = infer_exp env e2 in - Ok (qs1 @ qs2, Il.BinE (`AndOp, `BoolT, e1', e2'), Il.BoolT) + let* e1', _t1 = infer_exp env (CmpE (e1, op, e21) $ e.at) in + let* e2', _t2 = infer_exp env e2 in + Ok (Il.BinE (`AndOp, `BoolT, e1', e2'), Il.BoolT) | CmpE (e1, op, e2) -> (match infer_cmpop env op with | `Poly op' -> - let* qs, e1', e2' = + let* e1', e2' = choice env [ (fun env -> - let* qs2, e2', t2 = infer_exp env e2 in - let* qs1, e1' = elab_exp env e1 t2 in - Ok (qs1 @ qs2, e1', e2') + let* e2', t2 = infer_exp env e2 in + let* e1' = elab_exp env e1 t2 in + Ok (e1', e2') ); (fun env -> - let* qs1, e1', t1 = infer_exp env e1 in - let* qs2, e2' = elab_exp env e2 t1 in - Ok (qs1 @ qs2, e1', e2') + let* e1', t1 = infer_exp env e1 in + let* e2' = elab_exp env e2 t1 in + Ok (e1', e2') ); ] in - Ok (qs, Il.CmpE (op', `BoolT, e1', e2'), Il.BoolT) + Ok (Il.CmpE (op', `BoolT, e1', e2'), Il.BoolT) | `Over elab_cmpop' -> - let* qs1, e1', t1 = infer_exp env e1 in - let* qs2, e2', t2 = infer_exp env e2 in + let* e1', t1 = infer_exp env e1 in + let* e2', t2 = infer_exp env e2 in let* op', ot, t = elab_cmpop' (typ_rep env t1) (typ_rep env t2) e.at in - let* qs1', e1'' = cast_exp "operand" env e1' t1 t in - let* qs2', e2'' = cast_exp "operand" env e2' t2 t in - Ok (qs1 @ qs1' @ qs2 @ qs2', Il.CmpE (op', ot, e1'', e2''), Il.BoolT) + let* e1'' = cast_exp "operand" env e1' t1 t in + let* e2'' = cast_exp "operand" env e2' t2 t in + Ok (Il.CmpE (op', ot, e1'', e2''), Il.BoolT) ) | IdxE (e1, e2) -> - let* qs1, e1', t1 = infer_exp env e1 in + let* e1', t1 = infer_exp env e1 in let* t = as_list_typ "expression" env Infer t1 e1.at in - let* qs2, e2' = elab_exp env e2 (Il.NumT `NatT $ e2.at) in - Ok (qs1 @ qs2, Il.IdxE (e1', e2'), t.it) + let* e2' = elab_exp env e2 (Il.NumT `NatT $ e2.at) in + Ok (Il.IdxE (e1', e2'), t.it) | SliceE (e1, e2, e3) -> - let* qs1, e1', t1 = infer_exp env e1 in + let* e1', t1 = infer_exp env e1 in let* _t' = as_list_typ "expression" env Infer t1 e1.at in - let* qs2, e2' = elab_exp env e2 (Il.NumT `NatT $ e2.at) in - let* qs3, e3' = elab_exp env e3 (Il.NumT `NatT $ e3.at) in - Ok (qs1 @ qs2 @ qs3, Il.SliceE (e1', e2', e3'), t1.it) + let* e2' = elab_exp env e2 (Il.NumT `NatT $ e2.at) in + let* e3' = elab_exp env e3 (Il.NumT `NatT $ e3.at) in + Ok (Il.SliceE (e1', e2', e3'), t1.it) | UpdE (e1, p, e2) -> - let* qs1, e1', t1 = infer_exp env e1 in - let* qsP, p', t2 = elab_path env p t1 in - let* qs2, e2' = elab_exp env e2 t2 in - Ok (qs1 @ qsP @ qs2, Il.UpdE (e1', p', e2'), t1.it) + let* e1', t1 = infer_exp env e1 in + let* p', t2 = elab_path env p t1 in + let* e2' = elab_exp env e2 t2 in + Ok (Il.UpdE (e1', p', e2'), t1.it) | ExtE (e1, p, e2) -> - let* qs1, e1', t1 = infer_exp env e1 in - let* qsP, p', t2 = elab_path env p t1 in + let* e1', t1 = infer_exp env e1 in + let* p', t2 = elab_path env p t1 in let* _ = as_list_typ "path" env Infer t2 p.at in - let* qs2, e2' = elab_exp env e2 t2 in - Ok (qs1 @ qsP @ qs2, Il.ExtE (e1', p', e2'), t1.it) + let* e2' = elab_exp env e2 t2 in + Ok (Il.ExtE (e1', p', e2'), t1.it) | StrE _ -> fail_infer e.at "record" | DotE (e1, atom) -> - let* qs1, e1', t1 = infer_exp env e1 in + let* e1', t1 = infer_exp env e1 in let* tfs, dots = as_struct_typ "expression" env Infer t1 e1.at in if dots = Dots then error e1.at "used record type is only partially defined at this point"; - let* _, (qsF, tF, prems), _ = attempt (find_field tfs atom e1.at) t1 in - let qsF', s = refresh_quants env qsF in - let qas' = il_args_of_params qsF' in + let* _, (qs, tF, prems), _ = attempt (find_field tfs atom e1.at) t1 in + let qs', s = refresh_quants env qs in + let qas' = il_args_of_params qs' in let tF' = Il.Subst.subst_typ s tF in let e' = Il.DotE (e1', elab_atom atom (expand_id env t1), qas') in let e'' = if prems = [] then e' else Il.ProjE (e' $$ e.at % tF', 0) in - Ok (qs1 @ qsF', e'', tF'.it) + Ok (e'', tF'.it) | CommaE (e1, e2) -> - let* qs1, e1', t1 = infer_exp env e1 in + let* e1', t1 = infer_exp env e1 in let* tfs, dots = as_struct_typ "expression" env Infer t1 e1.at in if dots = Dots then error e1.at "used record type is only partially defined at this point"; @@ -1504,85 +1516,82 @@ and infer_exp' env e : (Il.quant list * Il.exp' * Il.typ') attempt = | SeqE ({it = AtomE atom; at; _} :: es2) -> let* _t2 = attempt (find_field tfs atom at) t1 in let e2 = match es2 with [e2] -> e2 | _ -> SeqE es2 $ e2.at in - let* qs2, e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t1 in - Ok (qs1 @ qs2, Il.CompE (e2', e1'), t1.it) + let* e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t1 in + Ok (Il.CompE (e2', e1'), t1.it) | _ -> error e.at "malformed comma operator" ) | CatE (e1, e2) -> - let* qs1, e1', t1 = infer_exp env e1 in + let* e1', t1 = infer_exp env e1 in let* () = as_cat_typ "operand" env Infer t1 e1.at in - let* qs2, e2' = elab_exp env e2 t1 in - Ok (qs1 @ qs2, - (if is_iter_typ env t1 then Il.CatE (e1', e2') else Il.CompE (e1', e2')), t1.it) + let* e2' = elab_exp env e2 t1 in + Ok ((if is_iter_typ env t1 then Il.CatE (e1', e2') else Il.CompE (e1', e2')), t1.it) | MemE (e1, e2) -> choice env [ (fun env -> - let* qs1, e1', t1 = infer_exp env e1 in - let* qs2, e2' = elab_exp env e2 (Il.IterT (t1, Il.List) $ e2.at) in - Ok (qs1 @ qs2, Il.MemE (e1', e2'), Il.BoolT) + let* e1', t1 = infer_exp env e1 in + let* e2' = elab_exp env e2 (Il.IterT (t1, Il.List) $ e2.at) in + Ok (Il.MemE (e1', e2'), Il.BoolT) ); (fun env -> - let* qs2, e2', t2 = infer_exp env e2 in + let* e2', t2 = infer_exp env e2 in let* t1 = as_list_typ "operand" env Infer t2 e2.at in - let* qs1, e1' = elab_exp env e1 t1 in - Ok (qs1 @ qs2, Il.MemE (e1', e2'), Il.BoolT) + let* e1' = elab_exp env e1 t1 in + Ok (Il.MemE (e1', e2'), Il.BoolT) ); ] | LenE e1 -> - let* qs1, e1', t1 = infer_exp env e1 in + let* e1', t1 = infer_exp env e1 in let* _t11 = as_list_typ "expression" env Infer t1 e1.at in - Ok (qs1, Il.LenE e1', Il.NumT `NatT) + Ok (Il.LenE e1', Il.NumT `NatT) | SizeE id -> let _ = find "grammar" env.grams id in - Ok ([], Il.NumE (`Nat Z.zero), Il.NumT `NatT) + Ok (Il.NumE (`Nat Z.zero), Il.NumT `NatT) | ParenE e1 | ArithE e1 -> infer_exp' env e1 | TupE es -> - let* qs, es', ts = infer_exp_list env es in - Ok (qs, Il.TupE es', (tup_typ' ts e.at).it) + let* es', ts = infer_exp_list env es in + Ok (Il.TupE es', (tup_typ' ts e.at).it) | CallE (id, as_) -> let ps, t, _ = find "definition" env.defs id in - let qs, as', s = elab_args `Rhs env as_ ps e.at in - Ok (qs, Il.CallE (id, as'), (Il.Subst.subst_typ s t).it) + let as', s = elab_args `Rhs env as_ ps e.at in + Ok (Il.CallE (id, as'), (Il.Subst.subst_typ s t).it) | EpsE -> fail_infer e.at "empty sequence" | SeqE [] -> (* treat as empty tuple, not principal *) - Ok ([], Il.TupE [], Il.TupT []) + Ok (Il.TupE [], Il.TupT []) | SeqE es | ListE es -> (* treat as homogeneous sequence, not principal *) - let* qs, es', ts = infer_exp_list env es in + let* es', ts = infer_exp_list env es in let t = List.hd ts in if List.for_all (equiv_typ env t) (List.tl ts) then - Ok (qs, Il.ListE es', Il.IterT (t, Il.List)) + Ok (Il.ListE es', Il.IterT (t, Il.List)) else fail_infer e.at "expression sequence" | InfixE _ -> fail_infer e.at "infix expression" | BrackE _ -> fail_infer e.at "bracket expression" - | IterE (e1, iter) -> - let qs, iter' = elab_iterexp env iter in - let* qs1, e1', t1 = infer_exp env e1 in - let iter'' = match fst iter' with Il.Opt -> Il.Opt | _ -> Il.List in - Ok (qs1 @ qs, Il.IterE (e1', iter'), Il.IterT (t1, iter'')) + | IterE (e1, it) -> + let* (e1', t1), ite', itt' = elab_iterexp env infer_exp e1 it in + Ok (Il.IterE (e1', ite'), Il.IterT (t1, itt')) | TypE (e1, t) -> let t' = elab_typ env t in - let* qs1, e1' = elab_exp env e1 t' in - Ok (qs1, e1'.it, t'.it) + let* e1' = elab_exp env e1 t' in + Ok (e1'.it, t'.it) | HoleE _ -> error e.at "misplaced hole" | FuseE _ -> error e.at "misplaced token concatenation" | UnparenE _ -> error e.at "misplaced unparenthesize" | LatexE _ -> error e.at "misplaced latex literal" and infer_exp_list env = function - | [] -> Ok ([], [], []) + | [] -> Ok ([], []) | e::es -> - let* qs1, e', t = infer_exp env e in - let* qs2, es', ts = infer_exp_list env es in - Ok (qs1 @ qs2, e'::es', t::ts) + let* e', t = infer_exp env e in + let* es', ts = infer_exp_list env es in + Ok (e'::es', t::ts) -and elab_exp env (e : exp) (t : Il.typ) : (Il.quant list * Il.exp) attempt = +and elab_exp env (e : exp) (t : Il.typ) : Il.exp attempt = Debug.(log_at "el.elab_exp" e.at (fun _ -> fmt "%s : %s" (el_exp e) (il_typ t)) - (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp e') | _ -> "fail") + (function Ok e' -> fmt "%s" (il_exp e') | _ -> "fail") ) @@ fun _ -> nest e.at t ( if is_iter_typ env t then @@ -1598,8 +1607,8 @@ and elab_exp env (e : exp) (t : Il.typ) : (Il.quant list * Il.exp) attempt = match e.it with | VarE ({it = "_"; _}, []) | EpsE | SeqE [] -> fail_silent | _ -> - let* qs, e' = elab_exp env e t1 in - Ok (qs, lift_exp' e' iter $$ e.at % t) + let* e' = elab_exp env e t1 in + Ok (lift_exp' e' iter $$ e.at % t) ); (fun env -> elab_exp_plain env e t); ] @@ -1613,22 +1622,21 @@ and elab_exp env (e : exp) (t : Il.typ) : (Il.quant list * Il.exp) attempt = elab_exp_plain env e t ) -and elab_exp_plain env (e : exp) (t : Il.typ) : (Il.quant list * Il.exp) attempt = +and elab_exp_plain env (e : exp) (t : Il.typ) : Il.exp attempt = Debug.(log_at "el.elab_exp_plain" e.at (fun _ -> fmt "%s : %s" (el_exp e) (il_typ t)) - (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp e') | _ -> "fail") + (function Ok e' -> fmt "%s" (il_exp e') | _ -> "fail") ) @@ fun _ -> - let* qs, e' = elab_exp_plain' env e t in - Ok (qs, e' $$ e.at % t) + let* e' = elab_exp_plain' env e t in + Ok (e' $$ e.at % t) -and elab_exp_plain' env (e : exp) (t : Il.typ) : (Il.quant list * Il.exp') attempt = +and elab_exp_plain' env (e : exp) (t : Il.typ) : Il.exp' attempt = match e.it with | BoolE _ | NumE _ | CvtE _ | UnE _ | BinE _ | CmpE _ | IdxE _ | DotE _ | MemE _ | LenE _ | SizeE _ | CallE _ | TypE _ | HoleE _ | FuseE _ | UnparenE _ | LatexE _ -> - let* qs1, e', t' = infer_exp env e in - let* qs2, e'' = cast_exp' "expression" env e' t' t in - Ok (qs1 @ qs2, e'') + let* e', t' = infer_exp env e in + cast_exp' "expression" env e' t' t | TextE s -> let cs = try Utf8.decode s with Utf8.Utf8 -> [] in (* Allow treatment as character constant *) @@ -1637,57 +1645,55 @@ and elab_exp_plain' env (e : exp) (t : Il.typ) : (Il.quant list * Il.exp') attem (Il.NumT `NatT $ e.at) in cast_exp' "character" env e' (Il.NumT `NatT $ e.at) t else - let* qs1, e', t' = infer_exp env e in - let* qs2, e'' = cast_exp' "expression" env e' t' t in - Ok (qs1 @ qs2, e'') + let* e', t' = infer_exp env e in + cast_exp' "expression" env e' t' t | VarE (id, _) when id.it = "_" -> - Ok ([], Il.VarE id) + Ok (Il.VarE id) | VarE (id, _) -> choice env [ (fun env -> - let* qs1, e', t' = infer_exp env e in - let* qs2, e'' = cast_exp' "expression" env e' t' t in - Ok (qs1 @ qs2, e'') + let* e', t' = infer_exp env e in + cast_exp' "expression" env e' t' t ); (fun env -> if is_iter_typ env t && id.it <> "_" then (* Never infer an iteration type for a variable *) let* t1, iter = as_iter_typ "" env Check t e.at in - let* qs, e' = elab_exp env e t1 in - Ok (qs, lift_exp' e' iter) + let* e' = elab_exp env e t1 in + Ok (lift_exp' e' iter) else if not (bound env.vars id || bound env.gvars (strip_var_suffix id)) then let _ = () in env.vars <- bind "variable" env.vars id t; - Ok ([], Il.VarE id) + Ok (Il.VarE id) else fail_silent (* suitable error was produced by infer_exp already *) ); ] | SliceE (e1, e2, e3) -> let* _t' = as_list_typ "expression" env Check t e1.at in - let* qs1, e1' = elab_exp env e1 t in - let* qs2, e2' = elab_exp env e2 (Il.NumT `NatT $ e2.at) in - let* qs3, e3' = elab_exp env e3 (Il.NumT `NatT $ e3.at) in - Ok (qs1 @ qs2 @ qs3, Il.SliceE (e1', e2', e3')) + let* e1' = elab_exp env e1 t in + let* e2' = elab_exp env e2 (Il.NumT `NatT $ e2.at) in + let* e3' = elab_exp env e3 (Il.NumT `NatT $ e3.at) in + Ok (Il.SliceE (e1', e2', e3')) | UpdE (e1, p, e2) -> - let* qs1, e1' = elab_exp env e1 t in - let* qsP, p', t2 = elab_path env p t in - let* qs2, e2' = elab_exp env e2 t2 in - Ok (qs1 @ qsP @ qs2, Il.UpdE (e1', p', e2')) + let* e1' = elab_exp env e1 t in + let* p', t2 = elab_path env p t in + let* e2' = elab_exp env e2 t2 in + Ok (Il.UpdE (e1', p', e2')) | ExtE (e1, p, e2) -> - let* qs1, e1' = elab_exp env e1 t in - let* qsP, p', t2 = elab_path env p t in + let* e1' = elab_exp env e1 t in + let* p', t2 = elab_path env p t in let* _ = as_list_typ "path" env Check t2 p.at in - let* qs2, e2' = elab_exp env e2 t2 in - Ok (qs1 @ qsP @ qs2, Il.ExtE (e1', p', e2')) + let* e2' = elab_exp env e2 t2 in + Ok (Il.ExtE (e1', p', e2')) | StrE efs -> let* tfs, dots = as_struct_typ "record" env Check t e.at in if dots = Dots then error e.at "used record type is only partially defined at this point"; - let* qs, efs' = elab_expfields env (expand_id env t) (filter_nl efs) tfs t e.at in - Ok (qs, Il.StrE efs') + let* efs' = elab_expfields env (expand_id env t) (filter_nl efs) tfs t e.at in + Ok (Il.StrE efs') | CommaE (e1, e2) -> - let* qs1, e1' = elab_exp env e1 t in + let* e1' = elab_exp env e1 t in let* tfs, dots1 = as_struct_typ "expression" env Check t e1.at in if dots1 = Dots then error e1.at "used record type is only partially defined at this point"; @@ -1697,32 +1703,31 @@ and elab_exp_plain' env (e : exp) (t : Il.typ) : (Il.quant list * Il.exp') attem | SeqE ({it = AtomE atom; at; _} :: es2) -> let* _t2 = attempt (find_field tfs atom at) t in let e2 = match es2 with [e2] -> e2 | _ -> SeqE es2 $ e2.at in - let* qs2, e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t in - Ok (qs1 @ qs2, Il.CompE (e2', e1')) + let* e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t in + Ok (Il.CompE (e2', e1')) | _ -> error e.at "malformed comma operator" ) | CatE (e1, e2) -> let* () = as_cat_typ "expression" env Check t e.at in - let* qs1, e1' = elab_exp env e1 t in - let* qs2, e2' = elab_exp env e2 t in - Ok (qs1 @ qs2, - if is_iter_typ env t then Il.CatE (e1', e2') else Il.CompE (e1', e2')) + let* e1' = elab_exp env e1 t in + let* e2' = elab_exp env e2 t in + Ok (if is_iter_typ env t then Il.CatE (e1', e2') else Il.CompE (e1', e2')) | ParenE e1 | ArithE e1 -> elab_exp_plain' env e1 t | TupE es -> let* xts = as_tup_typ "tuple" env Check t e.at in - let* qs, es' = elab_exp_list env es xts e.at in - Ok (qs, Il.TupE es') + let* es' = elab_exp_list env es xts e.at in + Ok (Il.TupE es') | ListE es -> let* t1, iter = as_iter_typ "list" env Check t e.at in if iter <> Il.List then fail_typ env e.at "list" t else let xts = List.init (List.length es) (fun _ -> "_" $ t1.at, t1) in - let* qs, es' = elab_exp_list env es xts e.at in - Ok (qs, Il.ListE es') + let* es' = elab_exp_list env es xts e.at in + Ok (Il.ListE es') | SeqE [] when is_empty_notation_typ env t -> - let* qs1, e', t' = infer_exp env e in - let* qs2, e'' = cast_exp' "empty expression" env e' t' t in - Ok (qs1 @ qs2, e'') + let* e', t' = infer_exp env e in + let* e'' = cast_exp' "empty expression" env e' t' t in + Ok (e'') | EpsE | SeqE _ when is_iter_typ env t -> let* t1, iter = as_iter_typ "" env Check t e.at in elab_exp_iter' env (unseq_exp e) (t1, iter) t e.at @@ -1736,12 +1741,12 @@ and elab_exp_plain' env (e : exp) (t : Il.typ) : (Il.quant list * Il.exp') attem * the latter case is already captured above *) if is_notation_typ env t then let* not = as_notation_typ "" env Check t e.at in - let* qs, e' = elab_exp_notation env (expand_id env t) e not t in - Ok (qs, e'.it) + let* e' = elab_exp_notation env (expand_id env t) e not t in + Ok e'.it else if is_variant_typ env t then let* tcs, _ = as_variant_typ "" env Check t e.at in - let* qs, e' = elab_exp_variant env (expand_id env t) e tcs t e.at in - Ok (qs, e'.it) + let* e' = elab_exp_variant env (expand_id env t) e tcs t e.at in + Ok e'.it else let name = match e.it with @@ -1752,111 +1757,112 @@ and elab_exp_plain' env (e : exp) (t : Il.typ) : (Il.quant list * Il.exp') attem | SeqE _ -> "expression sequence" | _ -> assert false in fail_typ env e.at name t - | IterE (e1, iter2) -> - let* t1, iter = as_iter_typ "iteration" env Check t e.at in - let qs2, iter2' = elab_iterexp env iter2 in - let* qs1, e1' = elab_exp env e1 t1 in - let qs = qs1 @ qs2 in - let e' = Il.IterE (e1', iter2') in - match iter2, iter with - | Opt, Il.Opt -> Ok (qs, e') + | IterE (e1, it2) -> + let* t1, it = as_iter_typ "iteration" env Check t e.at in + let* e1', ite2', itt2' = elab_iterexp env + (fun env (e, t) -> elab_exp env e t) (e1, t1) it2 in + let e' = Il.IterE (e1', ite2') in + match it2, it with + | Opt, Il.Opt -> Ok e' | Opt, Il.List -> - Ok (qs, Il.LiftE (e' $$ e.at % (Il.IterT (t1, Il.Opt) $ e1.at))) + Ok (Il.LiftE (e' $$ e.at % (Il.IterT (t1, itt2') $ e1.at))) | _, Il.Opt -> fail_typ env e.at "iteration" t - | _, _ -> Ok (qs, e') + | _, _ -> Ok e' and elab_exp_list env (es : exp list) (xts : (id * Il.typ) list) at - : (Il.quant list * Il.exp list) attempt = + : Il.exp list attempt = match es, xts with - | [], [] -> Ok ([], []) + | [], [] -> Ok [] | e::es, (_x, t)::xts -> - let* qs1, e' = elab_exp env e t in - let* qs2, es' = elab_exp_list env es xts at in - Ok (qs1 @ qs2, e'::es') + let* e' = elab_exp env e t in + let* es' = elab_exp_list env es xts at in + Ok (e'::es') | _, _ -> fail at "arity mismatch for expression list" and elab_expfields env tid (efs : expfield list) (tfs : Il.typfield list) (t0 : Il.typ) at - : (Il.quant list * Il.expfield list) attempt = + : Il.expfield list attempt = Debug.(log_in_at "el.elab_expfields" at (fun _ -> fmt "{%s} : {%s} = %s" (list el_expfield efs) (list (il_typfield `H) tfs) (il_typ t0)) ); assert (valid_tid tid); match efs, tfs with - | [], [] -> Ok ([], []) - | (atom1, e)::efs2, (atom2, (qsF, tF, prems), _)::tfs2 when atom1.it = atom2.it -> - let* qs1, e' = elab_exp env e tF in - let qsF', s = refresh_quants env qsF in - let* qs2, efs2' = elab_expfields env tid efs2 (List.map (Il.Subst.subst_typfield s) tfs2) t0 at in + | [], [] -> Ok [] + | (atom1, e)::efs2, (atom2, (qs, tF, prems), _)::tfs2 when atom1.it = atom2.it -> + let* e' = elab_exp env e tF in + let qs', s = refresh_quants env qs in + let* efs2' = elab_expfields env tid efs2 (List.map (Il.Subst.subst_typfield s) tfs2) t0 at in let e' = if prems = [] then e' else tup_exp' [e'] e.at in - let qas' = il_args_of_params qsF' in - Ok (qs1 @ qs2, (elab_atom atom1 tid, qas', e') :: efs2') - | _, (atom, (_qs, t, prems), _)::tfs2 -> + Ok ((elab_atom atom1 tid, il_args_of_params qs', e') :: efs2') + | _, (atom, (qs, t, prems), _)::tfs2 -> let atom' = string_of_atom atom in - let* qs1, e1' = cast_empty ("omitted record field `" ^ atom' ^ "`") env t at in + let qs', s = refresh_quants env qs in + let t' = Il.Subst.subst_typ s t in + let* e1' = cast_empty ("omitted record field `" ^ atom' ^ "`") env t' at in let e' = if prems = [] then e1' else tup_exp' [e1'] at in - let* qs2, efs2' = elab_expfields env tid efs tfs2 t0 at in - Ok (qs1 @ qs2, (elab_atom atom tid, [], e') :: efs2') + let* efs2' = elab_expfields env tid efs tfs2 t0 at in + Ok ((elab_atom atom tid, il_args_of_params qs', e') :: efs2') | (atom, e)::_, [] -> fail_atom e.at atom t0 "undefined or misplaced record field" -and elab_exp_iter env (es : exp list) (t1, iter) t at : (Il.quant list * Il.exp) attempt = - let* qs, e' = elab_exp_iter' env es (t1, iter) t at in - Ok (qs, e' $$ at % t) +and elab_exp_iter env (es : exp list) (t1, iter) t at : Il.exp attempt = + let* e' = elab_exp_iter' env es (t1, iter) t at in + Ok (e' $$ at % t) -and elab_exp_iter' env (es : exp list) (t1, iter) t at : (Il.quant list * Il.exp') attempt = +and elab_exp_iter' env (es : exp list) (t1, iter) t at : Il.exp' attempt = Debug.(log_at "el.elab_exp_iter" at (fun _ -> fmt "%s : %s = (%s)%s" (seq el_exp es) (il_typ t) (il_typ t1) (il_iter iter)) - (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp (e' $$ at % t)) | _ -> "fail") + (function Ok e' -> fmt "%s" (il_exp (e' $$ at % t)) | _ -> "fail") ) @@ fun _ -> match es, iter with | [], Opt -> - Ok ([], Il.OptE None) + Ok (Il.OptE None) | [e1], Opt -> - let* qs1, e1' = elab_exp env e1 t1 in - Ok (qs1, Il.OptE (Some e1')) + let* e1' = elab_exp env e1 t1 in + Ok (Il.OptE (Some e1')) | _::_::_, Opt -> fail_typ env at "expression" t | [], List -> - Ok ([], Il.ListE []) + Ok (Il.ListE []) | e1::es2, List -> - let* qs1, e1' = elab_exp env e1 t in + let* e1' = elab_exp env e1 t in let at' = Source.over_region (after_region e1.at :: List.map Source.at es2) in - let* qs2, e2' = elab_exp_iter env es2 (t1, iter) t at' in - Ok (qs1 @ qs2, cat_exp' e1' e2') + let* e2' = elab_exp_iter env es2 (t1, iter) t at' in + Ok (cat_exp' e1' e2') | _, (List1 | ListN _) -> assert false -and elab_exp_notation env tid (e : exp) (qs, t1, mixop, not) t : (Il.quant list * Il.exp) attempt = +and elab_exp_notation env tid (e : exp) (qs, t1, mixop, not) t : Il.exp attempt = (* Convert notation into applications of mixin operators *) assert (valid_tid tid); - let* qs', es', s = elab_exp_notation' env tid e not in + let* es', s = elab_exp_notation' env tid e not in let qas' = Il.Subst.subst_args s (il_args_of_params qs) in - Ok (qs', Il.CaseE (mixop, qas', Il.TupE es' $$ e.at % t1) $$ e.at % t) + Ok (Il.CaseE (mixop, qas', Il.TupE es' $$ e.at % t1) $$ e.at % t) -and elab_exp_notation' env tid (e : exp) not : (Il.quant list * Il.exp list * Il.Subst.t) attempt = +and elab_exp_notation' env tid (e : exp) not : (Il.exp list * Il.Subst.t) attempt = Debug.(log_at "el.elab_exp_notation" e.at - (fun _ -> fmt "%s : %s" (el_exp e) (Mixop.to_string not)) - (function Ok (qs, es', _) -> fmt "%s %s" (il_quants qs) (seq il_exp es') | _ -> "fail") + (fun _ -> fmt "%s : %s" (el_exp e) (Mixop.to_string_with il_typbind " " not)) + (function Ok (es', s) -> fmt "{%s} [%s]" (seq il_exp es') (il_subst s) | _ -> "fail") ) @@ fun _ -> assert (valid_tid tid); match e.it, not with | AtomE atom, Atom atom' -> if atom.it <> atom'.it then fail_not env e.at "atom" not else let _ = elab_atom atom tid in - Ok ([], [], Il.Subst.empty) + Ok ([], Il.Subst.empty) | InfixE (e1, atom, e2), Infix (_, atom', _) when Atom.sub atom' atom -> let e21 = ParenE (SeqE [] $ e2.at) $ e2.at in elab_exp_notation' env tid (InfixE (e1, atom', SeqE [e21; e2] $ e2.at) $ e.at) not | InfixE (e1, atom, e2), Infix (not1, atom', not2) -> if atom.it <> atom'.it then fail_not env e.at "infix expression" not else - let* qs1, es1', s1 = elab_exp_notation' env tid e1 not1 in - let* qs2, es2', s2 = elab_exp_notation' env tid e2 (Mixop.map (Il.Subst.subst_typ s1) not2) in + let* es1', s1 = elab_exp_notation' env tid e1 not1 in + let not2' = Mixop.map (fun (x, t) -> x, Il.Subst.subst_typ s1 t) not2 in + let* es2', s2 = elab_exp_notation' env tid e2 not2' in let _ = elab_atom atom tid in - Ok (qs1 @ qs2, es1' @ es2', Il.Subst.union s1 s2) + Ok (es1' @ es2', Il.Subst.union s1 s2) | BrackE (l, e1, r), Brack (l', not1, r') -> if (l.it, r.it) <> (l'.it, r'.it) then fail_not env e.at "bracket expression" not else let _ = elab_atom l tid in @@ -1864,39 +1870,43 @@ and elab_exp_notation' env tid (e : exp) not : (Il.quant list * Il.exp list * Il elab_exp_notation' env tid e1 not1 | SeqE [], Seq [] -> - Ok ([], [], Il.Subst.empty) - | _, Seq ((Arg t1)::nots2) when is_iter_typ env t1 -> + Ok ([], Il.Subst.empty) + | _, Seq ((Arg (x1, t1))::nots2) when is_iter_typ env t1 -> let* t11, iter = as_iter_typ "iteration" env Check t1 e.at in - elab_exp_notation_iter env tid (unseq_exp e) (t11, iter) t1 nots2 e.at + elab_exp_notation_iter env tid (unseq_exp e) (t11, iter) x1 t1 nots2 e.at | SeqE ({it = AtomE atom; at; _}::es2), Seq ((Atom atom')::_) when Atom.sub atom' atom -> let e21 = ParenE (SeqE [] $ at) $ at in elab_exp_notation' env tid (SeqE ((AtomE atom' $ at) :: e21 :: es2) $ e.at) not (* Trailing notation can be flattened *) - | SeqE (e1::es2), Seq [Arg t1 as not1] -> + | SeqE (e1::es2), Seq [Arg (x1, t1) as not1] -> choice env [ (fun env -> - let* qs1, es1', s1 = elab_exp_notation' env tid (unparen_exp e1) not1 in + let* es1', s1 = elab_exp_notation' env tid (unparen_exp e1) not1 in let e2 = SeqE es2 $ Source.over_region (after_region e1.at :: List.map Source.at es2) in - let* qs2, es2', s2 = elab_exp_notation' env tid e2 (Seq []) in - Ok (qs1 @ qs2, es1' @ es2', Il.Subst.union s1 s2) + let* es2', s2 = elab_exp_notation' env tid e2 (Seq []) in + Ok (es1' @ es2', Il.Subst.union s1 s2) ); (fun env -> - let* qs, e' = elab_exp env e t1 in - Ok (qs, [e'], Il.Subst.empty) + let* e' = elab_exp env e t1 in + Ok ([e'], Il.Subst.add_varid Il.Subst.empty x1 e') ) ] | SeqE (e1::es2), Seq (not1::nots2) -> - let* qs1, es1', s1 = elab_exp_notation' env tid (unparen_exp e1) not1 in + let* es1', s1 = elab_exp_notation' env tid (unparen_exp e1) not1 in let e2 = SeqE es2 $ Source.over_region (after_region e1.at :: List.map Source.at es2) in let not2 = Mixop.Seq nots2 in - let* qs2, es2', s2 = elab_exp_notation' env tid e2 (Mixop.map (Il.Subst.subst_typ s1) not2) in - Ok (qs1 @ qs2, es1' @ es2', Il.Subst.union s1 s2) + let not2' = Mixop.map (fun (x, t) -> x, Il.Subst.subst_typ s1 t) not2 in + let* es2', s2 = elab_exp_notation' env tid e2 not2' in + Ok (es1' @ es2', Il.Subst.union s1 s2) (* Trailing elements can be omitted if they can be eps *) - | SeqE [], Seq ((Arg t1)::nots2) -> - let* qs1, e1' = cast_empty "omitted sequence tail" env t1 e.at in - let* qs2, es2', s2 = elab_exp_notation' env tid e (Seq nots2) in - Ok (qs1 @ qs2, e1' :: es2', s2) + | SeqE [], Seq ((Arg (x1, t1))::nots2) -> + let* e1' = cast_empty "omitted sequence tail" env t1 e.at in + let s1 = Il.Subst.add_varid Il.Subst.empty x1 e1' in + let not2 = Mixop.Seq nots2 in + let not2' = Mixop.map (fun (x, t) -> x, Il.Subst.subst_typ s1 t) not2 in + let* es2', s2 = elab_exp_notation' env tid e not2' in + Ok (e1' :: es2', Il.Subst.union s1 s2) | SeqE (e1::_), Seq [] -> fail e1.at "expression is not empty" (* Since trailing elements can be omitted, a singleton may match a sequence *) @@ -1909,65 +1919,108 @@ and elab_exp_notation' env tid (e : exp) not : (Il.quant list * Il.exp list * Il elab_exp_notation' env tid e1 not *) - | _, Arg t -> - let* qs, e' = elab_exp env e t in - Ok (qs, [e'], Il.Subst.add_varid Il.Subst.empty (varid_of_typ' t) e') + | _, Arg (x, t) -> + let* e' = elab_exp env e t in + Ok ([e'], Il.Subst.add_varid Il.Subst.empty x e') | _, (Atom _ | Brack _ | Infix _) -> fail e.at "expression does not match expected notation" -and elab_exp_notation_iter env tid (es : exp list) (t1, iter) t nots at : (Il.quant list * Il.exp list * Il.Subst.t) attempt = +and elab_exp_notation_iter env tid (es : exp list) (t1, iter) x t nots at + : (Il.exp list * Il.Subst.t) attempt = assert (valid_tid tid); - let* qs, e', es', s = elab_exp_notation_iter' env tid es (t1, iter) t nots at in - Ok (qs, e'::es', s) + let* e', es', s = elab_exp_notation_iter' env tid es (t1, iter) x t None nots at in + Ok (e'::es', s) -and elab_exp_notation_iter' env tid (es : exp list) (t1, iter) t nots at : (Il.quant list * Il.exp * Il.exp list * Il.Subst.t) attempt = +and elab_exp_notation_iter' env tid (es : exp list) (t1, iter) x t eo' nots at + : (Il.exp * Il.exp list * Il.Subst.t) attempt = Debug.(log_at "el.elab_exp_notation_iter" at (fun _ -> fmt "%s : %s = (%s)%s" (seq el_exp es) (il_typ t) (il_typ t1) (il_iter iter)) - (function Ok (qs, e', es', _) -> fmt "%s %s" (il_quants qs) (seq il_exp (e'::es')) | _ -> "fail") + (function Ok (e', es', _) -> fmt "%s" (seq il_exp (e'::es')) | _ -> "fail") ) @@ fun _ -> match es, iter with | [], Il.Opt -> - let* qs, es', s = elab_exp_notation' env tid (SeqE [] $ at) (Seq nots) in - Ok (qs, Il.OptE None $$ at % t, es', s) - | e1::es2, Opt -> + (* Empty option *) + assert (eo' = None); + let e0' = Il.OptE None $$ at % t in + let s0 = Il.Subst.add_varid Il.Subst.empty x e0' in + let not = Mixop.Seq nots in + let not' = Mixop.map (fun (x, t) -> x, Il.Subst.subst_typ s0 t) not in + let* es', s = elab_exp_notation' env tid (SeqE [] $ at) not' in + Ok (e0', es', Il.Subst.union s0 s) + | e1::es2, Il.Opt -> + assert (eo' = None); choice env [ (fun env -> - let* qs, es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (Seq nots) in - Ok (qs, Il.OptE None $$ Source.before_region e1.at % t, es', s) + (* Try parsing as empty option *) + let e0' = Il.OptE None $$ Source.before_region e1.at % t in + let s0 = Il.Subst.add_varid Il.Subst.empty x e0' in + let not = Mixop.Seq nots in + let not' = Mixop.map (fun (x, t) -> x, Il.Subst.subst_typ s0 t) not in + let* es', s = elab_exp_notation' env tid (SeqE es $ at) not' in + Ok (e0', es', Il.Subst.union s0 s) ); (fun env -> - let* qs1, e1' = elab_exp env e1 t in + (* Parse as non-empty option *) + let* e1' = elab_exp env e1 t in + let s1 = Il.Subst.add_varid Il.Subst.empty x e1' in + let not = Mixop.Seq nots in + let not' = Mixop.map (fun (x, t) -> x, Il.Subst.subst_typ s1 t) not in let at' = Source.over_region (after_region e1.at :: List.map Source.at es2) in - let* qs2, es2', s = elab_exp_notation' env tid (SeqE es2 $ at') (Seq nots) in - Ok (qs1 @ qs2, e1', es2', s) + let* es2', s = elab_exp_notation' env tid (SeqE es2 $ at') not' in + Ok (e1', es2', Il.Subst.union s1 s) ); ] - | [], List -> - let* qs, es', s = elab_exp_notation' env tid (SeqE [] $ at) (Seq nots) in - Ok (qs, Il.ListE [] $$ at % t, es', s) - | e1::es2, List -> + | [], Il.List -> + (* Empty list *) + let e' = + match eo' with + | Some e0' -> e0' + | None -> Il.ListE [] $$ at % t + in + let s1 = Il.Subst.add_varid Il.Subst.empty x e' in + let not = Mixop.Seq nots in + let not' = Mixop.map (fun (x, t) -> x, Il.Subst.subst_typ s1 t) not in + let* es', s2 = elab_exp_notation' env tid (SeqE [] $ at) not' in + Ok (e', es', Il.Subst.union s1 s2) + | e1::es2, Il.List -> choice env [ (fun env -> - let* qs, es', s = elab_exp_notation' env tid (SeqE (e1::es2) $ at) (Seq nots) in - Ok (qs, Il.ListE [] $$ at % t, es', s) + (* Try parsing as empty list *) + let e' = + match eo' with + | Some e0' -> e0' + | None -> Il.ListE [] $$ at % t + in + let s1 = Il.Subst.add_varid Il.Subst.empty x e' in + let not = Mixop.Seq nots in + let not' = Mixop.map (fun (x, t) -> x, Il.Subst.subst_typ s1 t) not in + let* es', s2 = elab_exp_notation' env tid (SeqE es $ at) not' in + Ok (e', es', Il.Subst.union s1 s2) ); (fun env -> - let* qs1, e1' = elab_exp env e1 t in + (* Try parsing as list element or concatenation *) + let* e1' = elab_exp env e1 t in + let e0'' = + match eo' with + | None -> e1' + | Some e0' -> cat_exp' e0' e1' $$ Source.over_region [e0'.at; e1'.at] % t + in let at' = Source.over_region (after_region e1.at :: List.map Source.at es2) in - let* qs2, e2', es2', s = elab_exp_notation_iter' env tid es2 (t1, iter) t nots at' in - Ok (qs1 @ qs2, cat_exp' e1' e2' $$ Source.over_region [e1'.at; e2'.at] % t, es2', s) + let* e', es2', s = + elab_exp_notation_iter' env tid es2 (t1, iter) x t (Some e0'') nots at' in + Ok (e', es2', s) ); ] - | _, (List1 | ListN _) -> + | _, Il.(List1 | ListN _) -> assert false -and elab_exp_variant env tid (e : exp) (tcs : Il.typcase list) t at : (Il.quant list * Il.exp) attempt = +and elab_exp_variant env tid (e : exp) (tcs : Il.typcase list) t at : Il.exp attempt = Debug.(log_at "el.elab_exp_variant" e.at (fun _ -> fmt "%s : %s = %s" (el_exp e) tid.it (il_typ t)) - (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp e') | _ -> "fail") + (function Ok e' -> fmt "%s" (il_exp e') | _ -> "fail") ) @@ fun _ -> assert (valid_tid tid); let rec head e = @@ -1980,13 +2033,13 @@ and elab_exp_variant env tid (e : exp) (tcs : Il.typcase list) t at : (Il.quant | _ -> fail_typ env at "expression" t in let* atom = head e in - let* mixop, (qsC, tC, _prems), _ = attempt (find_case_atom tcs atom atom.at) t in - let qsC', s = refresh_quants env qsC in - let* xtsC = as_tup_typ "tuple" env Check (Il.Subst.subst_typ s tC) e.at in - let not = Mixop.apply mixop (List.map snd xtsC) in - let* qs, es', s = elab_exp_notation' env tid e not in - let qas' = Il.Subst.subst_args s (il_args_of_params qsC') in - Ok (qs, Il.CaseE (mixop, qas', tup_exp' es' e.at) $$ at % t) + let* mixop, (qs, tC, _prems), _ = attempt (find_case_atom tcs atom atom.at) t in + let qs', s = refresh_quants env qs in + let* xts = as_tup_typ "tuple" env Check (Il.Subst.subst_typ s tC) e.at in + let not = Mixop.apply mixop xts in + let* es', s = elab_exp_notation' env tid e not in + let qas' = Il.Subst.subst_args s (il_args_of_params qs') in + Ok (Il.CaseE (mixop, qas', tup_exp' es' e.at) $$ at % t) (* @@ -1995,49 +2048,49 @@ r[[i] = e] ~> [r0,...,e,...,rN] if r = [r0,...,rN] r[.l = e] ~> {l0 a0*=r0,...,l a*=e,...,lN aN*=rN} if r = {l0 a0*=r0,...,lN aN*=rN} a* = q* *) -and elab_path env (p : path) (t : Il.typ) : (Il.quant list * Il.path * Il.typ) attempt = - let* qs, p', t' = elab_path' env p t in - Ok (qs, p' $$ p.at % t', t') +and elab_path env (p : path) (t : Il.typ) : (Il.path * Il.typ) attempt = + let* p', t' = elab_path' env p t in + Ok (p' $$ p.at % t', t') -and elab_path' env (p : path) (t : Il.typ) : (Il.quant list * Il.path' * Il.typ) attempt = +and elab_path' env (p : path) (t : Il.typ) : (Il.path' * Il.typ) attempt = match p.it with | RootP -> - Ok ([], Il.RootP, t) + Ok (Il.RootP, t) | IdxP (p1, e1) -> - let* qs1, p1', t1 = elab_path env p1 t in - let qs2, e1' = checkpoint (elab_exp env e1 (Il.NumT `NatT $ e1.at)) in + let* p1', t1 = elab_path env p1 t in + let e1' = checkpoint (elab_exp env e1 (Il.NumT `NatT $ e1.at)) in let* t' = as_list_typ "path" env Check t1 p1.at in - Ok (qs1 @ qs2, Il.IdxP (p1', e1'), t') + Ok (Il.IdxP (p1', e1'), t') | SliceP (p1, e1, e2) -> - let* qs, p1', t1 = elab_path env p1 t in - let qs1, e1' = checkpoint (elab_exp env e1 (Il.NumT `NatT $ e1.at)) in - let qs2, e2' = checkpoint (elab_exp env e2 (Il.NumT `NatT $ e2.at)) in + let* p1', t1 = elab_path env p1 t in + let e1' = checkpoint (elab_exp env e1 (Il.NumT `NatT $ e1.at)) in + let e2' = checkpoint (elab_exp env e2 (Il.NumT `NatT $ e2.at)) in let* _ = as_list_typ "path" env Check t1 p1.at in - Ok (qs @ qs1 @ qs2, Il.SliceP (p1', e1', e2'), t1) + Ok (Il.SliceP (p1', e1', e2'), t1) | DotP (p1, atom) -> - let* qs1, p1', t1 = elab_path env p1 t in + let* p1', t1 = elab_path env p1 t in let* tfs, dots = as_struct_typ "path" env Check t1 p1.at in if dots = Dots then error p1.at "used record type is only partially defined at this point"; - let* _, (qsF, tF, _prems), _ = attempt (find_field tfs atom p1.at) t1 in - let qsF', s = refresh_quants env qsF in - let as' = il_args_of_params qsF' in + let* _, (qs, tF, _prems), _ = attempt (find_field tfs atom p1.at) t1 in + let qs', s = refresh_quants env qs in + let qas' = il_args_of_params qs' in let tF' = Il.Subst.subst_typ s tF in - Ok (qs1 @ qsF, Il.DotP (p1', elab_atom atom (expand_id env t1), as'), tF') + Ok (Il.DotP (p1', elab_atom atom (expand_id env t1), qas'), tF') -and cast_empty phrase env (t : Il.typ) at : (Il.quant list * Il.exp) attempt = +and cast_empty phrase env (t : Il.typ) at : Il.exp attempt = Debug.(log_at "el.elab_exp_cast_empty" at (fun _ -> fmt "%s >> (%s)" (il_typ t) (il_typ t)) - (function Ok (qs, e') -> fmt "%s%s" (il_quants qs) (il_exp e') | _ -> "fail") + (function Ok e' -> fmt "%s" (il_exp e') | _ -> "fail") ) @@ fun _ -> nest at t ( match expand env t with - | Il.IterT (_, Opt) -> Ok ([], Il.OptE None $$ at % t) - | Il.IterT (_, List) -> Ok ([], Il.ListE [] $$ at % t) + | Il.IterT (_, Opt) -> Ok (Il.OptE None $$ at % t) + | Il.IterT (_, List) -> Ok (Il.ListE [] $$ at % t) | VarT _ when is_notation_typ env t -> (match expand_notation env t with - | Some (_, _, _, Mixop.Seq []) -> Ok ([], Il.ListE [] $$ at % t) + | Some (_, _, _, Mixop.Seq []) -> Ok (Il.ListE [] $$ at % t) | _ -> fail_typ env at phrase t ) (* @@ -2055,29 +2108,29 @@ and cast_empty phrase env (t : Il.typ) at : (Il.quant list * Il.exp) attempt = | _ -> fail_typ env at phrase t ) -and cast_exp phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp) attempt = - let* qs, e'' = nest e'.at t2 (cast_exp' phrase env e' t1 t2) in - Ok (qs, e'' $$ e'.at % t2) +and cast_exp phrase env (e' : Il.exp) t1 t2 : Il.exp attempt = + let* e'' = nest e'.at t2 (cast_exp' phrase env e' t1 t2) in + Ok (e'' $$ e'.at % t2) -and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt = +and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = Debug.(log_at "el.elab_exp_cast" e'.at (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s)" (il_typ t1) (il_typ t2) (il_deftyp (fst (expand_def env t1) $ t1.at)) (il_deftyp (fst (expand_def env t2) $ t2.at)) (il_typ (reduce env t2)) ) - (function Ok (qs, e'') -> fmt "%s%s" (il_quants qs) (il_exp (e'' $$ e'.at % t2)) | _ -> "fail") + (function Ok e'' -> fmt "%s" (il_exp (e'' $$ e'.at % t2)) | _ -> "fail") ) @@ fun _ -> - if equiv_typ env t1 t2 then Ok ([], e'.it) else + if equiv_typ env t1 t2 then Ok e'.it else let t1', t2' = reduce env t1, reduce env t2 in match t1'.it, t2'.it with | _, _ when sub_typ env t1' t2' -> - Ok ([], Il.SubE (e', t1', t2')) + Ok (Il.SubE (e', t1', t2')) | Il.NumT nt1, Il.NumT nt2 when nt1 < nt2 || lax_num && nt1 <> `RealT -> - Ok ([], Il.CvtE (e', nt1, nt2)) + Ok (Il.CvtE (e', nt1, nt2)) | Il.TupT [], Il.VarT _ when is_empty_notation_typ env t2' -> - Ok ([], e'.it) + Ok e'.it | Il.VarT _, Il.VarT _ -> (match expand_def env t1', expand_def env t2' with @@ -2096,10 +2149,9 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt let ts2 = match tC2'.it with Il.TupT xts -> List.map snd xts | _ -> [tC2'] in let e'' = Il.UncaseE (e', mixop1, qas1') $$ e'.at % tC1' in let es' = List.mapi (fun i t1I -> Il.ProjE (e'', i) $$ e''.at % t1I) ts1 in - let* qss_es'' = map2_attempt (fun eI' (t1I, t2I) -> + let* es'' = map2_attempt (fun eI' (t1I, t2I) -> cast_exp phrase env eI' t1I t2I) es' (List.combine ts1 ts2) in - let qss, es'' = List.split qss_es'' in - Ok (qs1' @ qs2' @ List.concat qss, Il.CaseE (mixop2, qas2', tup_exp' es'' e'.at)) + Ok (Il.CaseE (mixop2, qas2', tup_exp' es'' e'.at)) ) else ( @@ -2116,8 +2168,7 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt match expand env tC1' with | Il.TupT [_, t11'] -> let e'' = Il.UncaseE (e', mixop1, qas1') $$ e'.at % t11' in - let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t11') t11' t2' in - Ok (qs1' @ qs, e''') + cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t11') t11' t2' | _ -> fail_typ2 env e'.at phrase t1 t2 "" ) @@ -2141,7 +2192,7 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt | Fail (Trace (_, msg, _) :: _) -> fail_typ2 env e'.at phrase t1 t2 (", " ^ msg) | Fail [] -> assert false in - Ok ([], Il.SubE (e', t1', t2')) + Ok (Il.SubE (e', t1', t2')) | _, _ -> fail_typ2 env e'.at phrase t1 t2 "" @@ -2153,18 +2204,15 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt choice env [ (fun env -> (* A ConT can always be cast to a (singleton) iteration *) - let* qs, e'' = - match t2'.it with - | Il.IterT (t21, iter) -> - let* qs1, e1' = cast_exp phrase env e' t1 t21 in - (match iter with - | Opt -> Ok (qs1, Il.OptE (Some e1')) - | List -> Ok (qs1, Il.ListE [e1']) - | _ -> assert false - ) - | _ -> fail_silent - in - Ok (qs, e'') + match t2'.it with + | Il.IterT (t21, iter) -> + let* e1' = cast_exp phrase env e' t1 t21 in + (match iter with + | Opt -> Ok (Il.OptE (Some e1')) + | List -> Ok (Il.ListE [e1']) + | _ -> assert false + ) + | _ -> fail_silent ); (fun env -> (* A ConT can be cast to its payload *) @@ -2182,8 +2230,7 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt match expand env tC1' with | Il.TupT [_, t11'] -> let e'' = Il.UncaseE (e', mixop1, qas1') $$ e'.at % t11' in - let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t11') t11' t2' in - Ok (qs1' @ qs, e''') + cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t11') t11' t2' | _ -> fail_typ2 env e'.at phrase t1 t2 "" ); ] @@ -2201,8 +2248,8 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt let qas2' = il_args_of_params qs2' in (match expand env tC2' with | Il.TupT [_, t21'] -> - let* qs, e1' = cast_exp phrase env e' t1' t21' in - Ok (qs2' @ qs, Il.CaseE (mixop2, qas2', Il.TupE [e1'] $$ e'.at % tC2')) + let* e1' = cast_exp phrase env e' t1' t21' in + Ok (Il.CaseE (mixop2, qas2', Il.TupE [e1'] $$ e'.at % tC2')) | _ -> fail_typ2 env e'.at phrase t1 t2 "" ) @@ -2218,13 +2265,13 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : (Il.quant list * Il.exp') attempt cast_exp' phrase env e'' t1' t2 ); (fun env -> - let* qs, e'' = cast_exp phrase env e' t1 t21 in - Ok (qs, Il.ListE [e'']) + let* e'' = cast_exp phrase env e' t1 t21 in + Ok (Il.ListE [e'']) ); ] | _, Il.IterT (t21, (List | List1)) -> - let* qs, e'' = cast_exp phrase env e' t1 t21 in - Ok (qs, Il.ListE [e'']) + let* e'' = cast_exp phrase env e' t1 t21 in + Ok (Il.ListE [e'']) | _, _ -> fail_typ2 env e'.at phrase t1 t2 "" @@ -2401,50 +2448,45 @@ Printf.printf "[4] %s => %s\n%!" (Debug.el_typ t11) (Debug.il_typ t11'); *) -and elab_iterexp env (it : iter) : Il.quant list * Il.iterexp = - let qs, it' = elab_iter env it in - (qs, (it', [])) - - (* Premises *) -and elab_prem env (pr : prem) : Il.quant list * Il.prem list = +and elab_prem env (pr : prem) : Il.prem list = match pr.it with | VarPr (id, t) -> let t' = elab_typ env t in env.vars <- bind "variable" env.vars id t'; - [], [] + [] | RulePr (id, e) -> let mixop, not, _, _ = find "relation" env.rels id in - let qs, es', _s = checkpoint (elab_exp_notation' env id e not) in - qs, [Il.RulePr (id, mixop, tup_exp_nary' es' e.at) $ pr.at] + let es', _s = checkpoint (elab_exp_notation' env id e not) in + [Il.RulePr (id, mixop, tup_exp_nary' es' e.at) $ pr.at] | IfPr e -> - let qs, e' = checkpoint (elab_exp env e (Il.BoolT $ e.at)) in - qs, [Il.IfPr e' $ pr.at] + let e' = checkpoint (elab_exp env e (Il.BoolT $ e.at)) in + [Il.IfPr e' $ pr.at] | ElsePr -> - [], [Il.ElsePr $ pr.at] + [Il.ElsePr $ pr.at] | IterPr ({it = VarPr _; at; _}, _iter) -> error at "misplaced variable premise" - | IterPr (pr1, iter) -> - let qs, iter' = elab_iterexp env iter in - let qs1, prs1' = elab_prem env pr1 in + | IterPr (pr1, it) -> + let prs1', ite', _itt' = checkpoint (elab_iterexp env + (fun env pr -> Ok (elab_prem env pr)) pr1 it) in assert (List.length prs1' = 1); - qs @ qs1, [Il.IterPr (List.hd prs1', iter') $ pr.at] + [Il.IterPr (List.hd prs1', ite') $ pr.at] (* Grammars *) -and infer_sym env (g : sym) : (Il.quant list * Il.sym * Il.typ) attempt = +and infer_sym env (g : sym) : (Il.sym * Il.typ) attempt = Debug.(log_at "el.infer_sym" g.at (fun _ -> fmt "%s" (el_sym g)) - (function Ok (qs, g', t) -> fmt "%s %s : %s" (il_quants qs) (il_sym g') (il_typ t) | _ -> "fail") + (function Ok (g', t) -> fmt "%s : %s" (il_sym g') (il_typ t) | _ -> "fail") ) @@ fun _ -> nest g.at (Il.TupT [] $ g.at) ( match g.it with | VarG (x, as_) -> let ps, t, _gram, _prods' = find "grammar" env.grams x in - let qs, as', s = elab_args `Rhs env as_ ps g.at in - Ok (qs, Il.VarG (x, as') $ g.at, Il.Subst.subst_typ s t) + let as', s = elab_args `Rhs env as_ ps g.at in + Ok (Il.VarG (x, as') $ g.at, Il.Subst.subst_typ s t) | NumG (`CharOp, n) -> (* let s = try Utf8.encode [Z.to_int n] with Z.Overflow | Utf8.Utf8 -> @@ -2454,98 +2496,91 @@ and infer_sym env (g : sym) : (Il.quant list * Il.sym * Il.typ) attempt = if n < Z.of_int 0x00 || n > Z.of_int 0x10ffff then fail g.at "unicode value out of range" else - Ok ([], Il.NumG (Z.to_int n) $ g.at, Il.NumT `NatT $ g.at) + Ok (Il.NumG (Z.to_int n) $ g.at, Il.NumT `NatT $ g.at) | NumG (_, n) -> if n < Z.of_int 0x00 || n > Z.of_int 0xff then fail g.at "byte value out of range" else - Ok ([], Il.NumG (Z.to_int n) $ g.at, Il.NumT `NatT $ g.at) + Ok (Il.NumG (Z.to_int n) $ g.at, Il.NumT `NatT $ g.at) | TextG s -> - Ok ([], Il.TextG s $ g.at, Il.TextT $ g.at) + Ok (Il.TextG s $ g.at, Il.TextT $ g.at) | EpsG -> - Ok ([], Il.EpsG $ g.at, Il.TupT [] $ g.at) + Ok (Il.EpsG $ g.at, Il.TupT [] $ g.at) | SeqG gs -> - let* qs, gs' = elab_sym_list env (filter_nl gs) (Il.TupT [] $ g.at) in - Ok (qs, Il.SeqG gs' $ g.at, Il.TupT [] $ g.at) + let* gs' = elab_sym_list env (filter_nl gs) (Il.TupT [] $ g.at) in + Ok (Il.SeqG gs' $ g.at, Il.TupT [] $ g.at) | AltG gs -> choice env [ (fun env -> - let* qs, gs', ts = infer_sym_list env (filter_nl gs) in - if qs <> [] then - fail g.at "invalid expressions in alternative" - else if ts <> [] && List.for_all (equiv_typ env (List.hd ts)) ts then - Ok ([], Il.AltG gs' $ g.at, List.hd ts) + let* gs', ts = infer_sym_list env (filter_nl gs) in + if ts <> [] && List.for_all (equiv_typ env (List.hd ts)) ts then + Ok (Il.AltG gs' $ g.at, List.hd ts) else fail g.at "inconsistent types" ); (fun env -> (* HACK to treat singleton strings in short grammar as characters *) - let* qs, g' = elab_sym env g (Il.NumT `NatT $ g.at) in - Ok (qs, g', Il.NumT `NatT $ g.at) + let* g' = elab_sym env g (Il.NumT `NatT $ g.at) in + Ok (g', Il.NumT `NatT $ g.at) ); (fun env -> - let* qs, g' = elab_sym env g (Il.TupT [] $ g.at) in - Ok (qs, g', Il.TupT [] $ g.at) + let* g' = elab_sym env g (Il.TupT [] $ g.at) in + Ok (g', Il.TupT [] $ g.at) ) ] | RangeG (g1, g2) -> let env1 = local_env env in let env2 = local_env env in - let* qs1, g1' = elab_sym env1 g1 (Il.NumT `NatT $ g1.at) in - let* qs2, g2' = elab_sym env2 g2 (Il.NumT `NatT $ g2.at) in + let* g1' = elab_sym env1 g1 (Il.NumT `NatT $ g1.at) in + let* g2' = elab_sym env2 g2 (Il.NumT `NatT $ g2.at) in if env1.vars != env.vars then error g1.at "invalid symbol in range"; if env2.vars != env.vars then error g2.at "invalid symbol in range"; - Ok (qs1 @ qs2, Il.RangeG (g1', g2') $ g.at, Il.NumT `NatT $ g.at) + Ok (Il.RangeG (g1', g2') $ g.at, Il.NumT `NatT $ g.at) | ParenG g1 -> infer_sym env g1 | TupG _ -> error g.at "malformed grammar" | ArithG e -> infer_sym env (sym_of_exp e) - | IterG (g1, iter) -> - let qs, iterexp' = elab_iterexp env iter in - let* qs1, g1', t1 = infer_sym env g1 in - Ok ( - qs1 @ qs, - Il.IterG (g1', iterexp') $ g.at, - Il.IterT (t1, match iter with Opt -> Il.Opt | _ -> Il.List) $ g.at - ) + | IterG (g1, it) -> + let* (g1', t1), ite', itt' = elab_iterexp env infer_sym g1 it in + Ok (Il.IterG (g1', ite') $ g.at, Il.IterT (t1, itt') $ g.at) | AttrG (e, g1) -> choice env [ (fun env -> (* HACK to treat singleton strings in short grammar as characters *) let t1 = Il.NumT `NatT $ g1.at in - let* qs1, g1' = elab_sym env g1 t1 in - let* qs2, e' = elab_exp env e t1 in - Ok (qs2 @ qs1, Il.AttrG (e', g1') $ g.at, t1) + let* g1' = elab_sym env g1 t1 in + let* e' = elab_exp env e t1 in + Ok (Il.AttrG (e', g1') $ g.at, t1) ); (fun env -> - let* qs1, g1', t1 = infer_sym env g1 in - let* qs2, e' = elab_exp env e t1 in - Ok (qs1 @ qs2, Il.AttrG (e', g1') $ g.at, t1) + let* g1', t1 = infer_sym env g1 in + let* e' = elab_exp env e t1 in + Ok (Il.AttrG (e', g1') $ g.at, t1) ); ] (* - let qs1, g1', t1 = infer_sym env g1 in - let qs2, e' = checkpoint (elab_exp env e t1) in - Ok (qs1 @ qs2, Il.AttrG (e', g1') $ g.at, t1) + let g1', t1 = infer_sym env g1 in + let e' = checkpoint (elab_exp env e t1) in + Ok (Il.AttrG (e', g1') $ g.at, t1) *) | FuseG _ -> error g.at "misplaced token concatenation" | UnparenG _ -> error g.at "misplaced token unparenthesize" ) -and infer_sym_list env (gs : sym list) : (Il.quant list * Il.sym list * Il.typ list) attempt = +and infer_sym_list env (gs : sym list) : (Il.sym list * Il.typ list) attempt = match gs with - | [] -> Ok ([], [], []) + | [] -> Ok ([], []) | g::gs -> - let* qs1, g', t = infer_sym env g in - let* qs2, gs', ts = infer_sym_list env gs in - Ok (qs1 @ qs2, g'::gs', t::ts) + let* g', t = infer_sym env g in + let* gs', ts = infer_sym_list env gs in + Ok (g'::gs', t::ts) -and elab_sym env (g : sym) (t : Il.typ) : (Il.quant list * Il.sym) attempt = +and elab_sym env (g : sym) (t : Il.typ) : Il.sym attempt = Debug.(log_at "el.elab_sym" g.at (fun _ -> fmt "%s : %s" (el_sym g) (il_typ t)) - (function Ok (qs, g') -> fmt "%s%s" (il_quants qs) (il_sym g') | _ -> "fail") + (function Ok g' -> fmt "%s" (il_sym g') | _ -> "fail") ) @@ fun _ -> nest g.at t ( match g.it with @@ -2553,40 +2588,38 @@ and elab_sym env (g : sym) (t : Il.typ) : (Il.quant list * Il.sym) attempt = let cs = try Utf8.decode s with Utf8.Utf8 -> [] in (* Allow treatment as character constant *) if List.length cs = 1 then - Ok ([], Il.NumG (List.hd cs) $ g.at) + Ok (Il.NumG (List.hd cs) $ g.at) else - let* qs1, g', t' = infer_sym env g in - let* qs2, g'' = cast_sym env g' t' t in - Ok (qs1 @ qs2, g'') + let* g', t' = infer_sym env g in + cast_sym env g' t' t | AltG gs -> - let* qs, gs' = elab_sym_list env (filter_nl gs) t in - Ok (qs, Il.AltG gs' $ g.at) + let* gs' = elab_sym_list env (filter_nl gs) t in + Ok (Il.AltG gs' $ g.at) | ParenG g1 -> elab_sym env g1 t | _ -> - let* qs1, g', t' = infer_sym env g in - let* qs2, g'' = cast_sym env g' t' t in - Ok (qs1 @ qs2, g'') + let* g', t' = infer_sym env g in + cast_sym env g' t' t ) -and elab_sym_list env (gs : sym list) (t : Il.typ) : (Il.quant list * Il.sym list) attempt = +and elab_sym_list env (gs : sym list) (t : Il.typ) : Il.sym list attempt = match gs with - | [] -> Ok ([], []) + | [] -> Ok ([]) | g::gs -> - let* qs1, g' = elab_sym env g t in - let* qs2, gs' = elab_sym_list env gs t in - Ok (qs1 @ qs2, g'::gs') + let* g' = elab_sym env g t in + let* gs' = elab_sym_list env gs t in + Ok (g'::gs') -and cast_sym env (g' : Il.sym) t1 t2 : (Il.quant list * Il.sym) attempt = +and cast_sym env (g' : Il.sym) t1 t2 : Il.sym attempt = Debug.(log_at "el.elab_cast_sym" g'.at (fun _ -> fmt "%s : %s :> %s" (il_sym g') (il_typ t1) (il_typ t2)) - (function Ok (qs, g'') -> fmt "%s%s" (il_quants qs) (il_sym g'') | _ -> "fail") + (function Ok g'' -> fmt "%s" (il_sym g'') | _ -> "fail") ) @@ fun _ -> nest g'.at t2 ( if equiv_typ env t1 t2 then - Ok ([], g') + Ok g' else if equiv_typ env t2 (Il.TupT [] $ t2.at) then - Ok ([], Il.SeqG [g'] $ g'.at) + Ok (Il.SeqG [g'] $ g'.at) else fail_typ2 env g'.at "symbol" t1 t2 "" ) @@ -2599,15 +2632,15 @@ and elab_prod env outer_dims (prod : prod) (t : Il.typ) : Il.prod list = | SynthP (g, e, prems) -> let env' = local_env env in env'.pm <- false; - let qs1, g', _t' = checkpoint (infer_sym env' g) in - let qs2, e' = + let g', _t' = checkpoint (infer_sym env' g) in + let e' = checkpoint ( let t_unit = Il.TupT [] $ e.at in if equiv_typ env' t t_unit then (* Special case: ignore unit attributes *) (* TODO(4, rossberg): introduce proper top type? *) - let* qs, e', _t = infer_exp env' e in - Ok (qs, Il.ProjE ( + let* e', _t = infer_exp env' e in + Ok (Il.ProjE ( Il.TupE [ e'; Il.TupE [] $$ e.at % t_unit ] $$ e.at % (Il.TupT ["_" $ e.at, e'.note; "_" $ e.at, t_unit] $ e.at), 1 @@ -2616,15 +2649,15 @@ and elab_prod env outer_dims (prod : prod) (t : Il.typ) : Il.prod list = elab_exp env' e t ) in - let qss3, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in - let prems' = List.concat premss' in + let prems' = List.concat (map_filter_nl_list (elab_prem env') prems) in let dims = Dim.check outer_dims [] [] [] [e'] [g'] prems' in +Printf.printf "dims \\ %s = %s\n%!" (Debug.domain outer_dims) (Debug.(list Fun.id (List.map fst (Map.bindings dims)))); let g' = Dim.annot_sym dims g' in let e' = Dim.annot_exp dims e' in let prems' = List.map (Dim.annot_prem dims) prems' in let det = Det.(det_exp e' ++ det_sym g' ++ det_list det_prem prems') in let qs = infer_quants env env' dims det [] [] [] [e'] [g'] prems' prod.at in - let prod' = Il.ProdD (qs @ qs1 @ qs2 @ List.concat qss3, g', e', prems') $ prod.at in + let prod' = Il.ProdD (qs, g', e', prems') $ prod.at in let free = Il.Free.(free_prod prod' -- bound_env env') in if free <> Il.Free.empty then error prod.at ("grammar rule contains indeterminate variable(s) " ^ @@ -2636,10 +2669,10 @@ and elab_prod env outer_dims (prod : prod) (t : Il.typ) : Il.prod list = elab_prod env outer_dims Subst.(subst_prod pm_snd (Iter.clone_prod prod)) t | RangeP (g1, e1, g2, e2) -> let t = Il.NumT `NatT $ prod.at in - let qs11', g1' = checkpoint (elab_sym env g1 t) in - let qs12', e1' = checkpoint (elab_exp env e1 t) in - let qs21', g2' = checkpoint (elab_sym env g2 t) in - let qs22', e2' = checkpoint (elab_exp env e2 t) in + let g1' = checkpoint (elab_sym env g1 t) in + let e1' = checkpoint (elab_exp env e1 t) in + let g2' = checkpoint (elab_sym env g2 t) in + let e2' = checkpoint (elab_exp env e2 t) in let dims = Dim.check outer_dims [] [] [] [e1'; e2'] [g1'; g2'] [] in let g1' = Dim.annot_sym dims g1' in let g2' = Dim.annot_sym dims g2' in @@ -2675,15 +2708,14 @@ and elab_prod env outer_dims (prod : prod) (t : Il.typ) : Il.prod list = let n = `Nat Z.(n1 + Z.of_int i) in let g' = {(if i = 0 then g1' else g2') with it = Il.NumG (c1 + i)} in let e' = {(if i = 0 then e1' else e2') with it = Il.NumE n} in - Il.ProdD (qs11' @ qs12' @ qs21' @ qs22', g', e', []) $ prod.at + Il.ProdD ([], g', e', []) $ prod.at ) | EquivP (g1, g2, prems) -> let env' = local_env env in env'.pm <- false; - let _qs1, g1', _t1' = checkpoint (infer_sym env' g1) in - let _qs2, g2', _t2' = checkpoint (infer_sym env' g2) in - let _qss3, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in - let prems' = List.concat premss' in + let g1', _t1' = checkpoint (infer_sym env' g1) in + let g2', _t2' = checkpoint (infer_sym env' g2) in + let prems' = List.concat (map_filter_nl_list (elab_prem env') prems) in let dims = Dim.check outer_dims [] [] [] [] [g1'; g2'] prems' in let g1' = Dim.annot_sym dims g1' in let g2' = Dim.annot_sym dims g2' in @@ -2699,14 +2731,14 @@ and elab_prod env outer_dims (prod : prod) (t : Il.typ) : Il.prod list = prod' :: elab_prod env Subst.(subst_prod pm_snd (Iter.clone_prod prod)) t *) -and elab_gram env dims (gram : gram) (t : Il.typ) : Il.prod list = +and elab_gram env outer_dims (gram : gram) (t : Il.typ) : Il.prod list = let (_dots1, prods, _dots2) = gram.it in - concat_map_filter_nl_list (fun prod -> elab_prod env dims prod t) prods + concat_map_filter_nl_list (fun prod -> elab_prod env outer_dims prod t) prods (* Definitions *) -and elab_arg in_lhs env (a : arg) (p : Il.param) s : Il.quant list * Il.arg list * Il.Subst.subst = +and elab_arg in_lhs env (a : arg) (p : Il.param) s : Il.arg list * Il.Subst.subst = (match !(a.it), p.it with (* HACK: handle shorthands *) | ExpA e, Il.TypP _ -> a.it := TypA (typ_of_exp e) | ExpA e, Il.GramP _ -> a.it := GramA (sym_of_exp e) @@ -2715,8 +2747,8 @@ and elab_arg in_lhs env (a : arg) (p : Il.param) s : Il.quant list * Il.arg list ); match !(a.it), (Il.Subst.subst_param s p).it with | ExpA e, Il.ExpP (x, t) -> - let qs, e' = checkpoint (elab_exp env e t) in - qs, [Il.ExpA e' $ a.at], Il.Subst.add_varid s x e' + let e' = checkpoint (elab_exp env e t) in + [Il.ExpA e' $ a.at], Il.Subst.add_varid s x e' | TypA {it = VarT (x', []); _}, Il.TypP x when in_lhs = `Lhs -> let x'' = strip_var_suffix x' in let is_prim = @@ -2728,21 +2760,21 @@ and elab_arg in_lhs env (a : arg) (p : Il.param) s : Il.quant list * Il.arg list env.typs <- bind "syntax type" env.typs x'' ([], Opaque); if not is_prim then env.gvars <- bind "variable" env.gvars (strip_var_sub x'') t'; - [], [Il.TypA t' $ a.at], Il.Subst.add_typid s x t' + [Il.TypA t' $ a.at], Il.Subst.add_typid s x t' | TypA t, Il.TypP _ when in_lhs = `Lhs -> error t.at "misplaced syntax type" | TypA t, Il.TypP x -> let t' = elab_typ env t in - [], [Il.TypA t' $ a.at], Il.Subst.add_typid s x t' + [Il.TypA t' $ a.at], Il.Subst.add_typid s x t' | GramA g, Il.GramP _ when in_lhs = `Lhs -> error g.at "misplaced grammar symbol" | GramA g, Il.GramP (x', [], t) -> - let qs, g', t' = checkpoint (infer_sym env g) in + let g', t' = checkpoint (infer_sym env g) in let s' = subst_implicit env s t t' in if not (equiv_typ env t' (Il.Subst.subst_typ s' t)) then error_typ2 env a.at "argument" t' t ""; let as' = List.map (fun (_x, t) -> Il.TypA t $ t.at) Il.Subst.(Map.bindings s'.typid) in - qs, as' @ [Il.GramA g' $ a.at], Il.Subst.add_gramid s' x' g' + as' @ [Il.GramA g' $ a.at], Il.Subst.add_gramid s' x' g' | GramA g, Il.GramP (x', ps', t') -> (match g.it with | VarG (x, []) -> @@ -2754,13 +2786,13 @@ and elab_arg in_lhs env (a : arg) (p : Il.param) s : Il.quant list * Il.arg list (spaceid "grammar" x).it ^ Il.Print.(string_of_params ps ^ " : " ^ typ_string env t ^ "`") ); let g' = Il.VarG (x, []) $ a.at in - [], [Il.GramA g' $ a.at], Il.Subst.add_gramid s x g' + [Il.GramA g' $ a.at], Il.Subst.add_gramid s x g' | _ -> error g.at "grammar identifier expected for paramaterised grammar parameter" ) | DefA x, Il.DefP (x', ps', t') when in_lhs = `Lhs -> env.defs <- bind "definition" env.defs x (ps', t', []); - [], [Il.DefA x $ a.at], Il.Subst.add_defid s x' x + [Il.DefA x $ a.at], Il.Subst.add_defid s x' x | DefA x, Il.DefP (x', ps', t') -> let ps, t, _ = find "definition" env.defs x in if not (Il.Eval.equiv_functyp (to_il_env env) (ps, t) (ps', t')) then @@ -2769,28 +2801,28 @@ and elab_arg in_lhs env (a : arg) (p : Il.param) s : Il.quant list * Il.arg list "` but got `" ^ (spaceid "definition" x).it ^ Il.Print.(string_of_params ps ^ " : " ^ typ_string env t ^ "`") ); - [], [Il.DefA x $ a.at], Il.Subst.add_defid s x x' + [Il.DefA x $ a.at], Il.Subst.add_defid s x x' | _, _ -> error a.at "sort mismatch for argument" -and elab_args in_lhs env (as_ : arg list) (ps : Il.param list) at : Il.quant list * Il.arg list * Il.Subst.subst = +and elab_args in_lhs env (as_ : arg list) (ps : Il.param list) at : Il.arg list * Il.Subst.subst = Debug.(log_at "el.elab_args" at (fun _ -> fmt "(%s) : (%s)" (list el_arg as_) (list il_param ps)) - (fun (qs, as', _) -> fmt "%s(%s)" (il_quants qs) (list il_arg as')) + (fun (as', _) -> fmt "(%s)" (list il_arg as')) ) @@ fun _ -> - elab_args' in_lhs env as_ ps [] [] Il.Subst.empty at + elab_args' in_lhs env as_ ps [] Il.Subst.empty at -and elab_args' in_lhs env (as_ : arg list) (ps : Il.param list) qs as' s at : Il.quant list * Il.arg list * Il.Subst.subst = +and elab_args' in_lhs env (as_ : arg list) (ps : Il.param list) as' s at : Il.arg list * Il.Subst.subst = match as_, ps with - | [], [] -> qs, List.concat (List.rev as'), s + | [], [] -> List.concat (List.rev as'), s | a::_, [] -> error a.at "too many arguments" | [], _::_ -> error at "too few arguments" | _, {it = Il.TypP _; at; _}::ps1 when at = Source.no_region -> (* Implicitly inserted type parameter *) - elab_args' in_lhs env as_ ps1 qs as' s at + elab_args' in_lhs env as_ ps1 as' s at | a::as1, p::ps1 -> - let qs', a', s' = elab_arg in_lhs env a p s in - elab_args' in_lhs env as1 ps1 (qs @ qs') (a'::as') s' at + let a', s' = elab_arg in_lhs env a p s in + elab_args' in_lhs env as1 ps1 (a'::as') s' at and subst_implicit env s t t' : Il.Subst.subst = let free = Il.Free.(Set.filter (fun x -> not (Map.mem x env.typs)) (free_typ t).typid) in @@ -2994,13 +3026,13 @@ let rec elab_def env (d : def) : Il.def list = @ elab_hintdef env (TypH (x, "" $ x.at, hints) $ d.at) | TypD (x1, x2, as_, t, hints) -> let ps', k = find "syntax type" env.typs x1 in - let qs1, as', _s = elab_args `Lhs env' as_ ps' d.at in + let as', _s = elab_args `Lhs env' as_ ps' d.at in let dims = Dim.check Map.empty [] as' [] [] [] [] in let dots1, dt', dots2 = elab_typ_definition env' dims x1 t in let as' = List.map (Dim.annot_arg dims) as' in let det = Det.(det_list det_arg as') in let qs = infer_quants env env' dims det [] as' [] [] [] [] d.at in - let inst' = Il.InstD (qs @ qs1, as', dt') $ d.at in + let inst' = Il.InstD (qs, as', dt') $ d.at in let k', last = match k with | (Opaque | Transp) -> @@ -3030,12 +3062,14 @@ let rec elab_def env (d : def) : Il.def list = | GramD (x1, x2, ps, t, gram, hints) -> let ps' = elab_params env' ps in let t' = elab_typ env' t in +Printf.printf "ps' = %s\n%!" (Debug.il_params ps'); let dims = Dim.check Map.empty ps' [] [t'] [] [] [] in - let prods' = elab_gram env' dims gram t' in + let outer_dims = Dim.restrict dims (Il.Free.bound_params ps') in + let prods' = elab_gram env' outer_dims gram t' in let xprods2' = List.map (fun pr -> x2, pr) prods' in if env'.pm then error d.at "misplaced +- or -+ operator in grammar"; let t' = Dim.annot_typ dims t' in - infer_no_quants env' dims Det.empty ps' [] [t'] [] [] [] d.at; + infer_no_quants env' outer_dims Det.empty ps' [] [t'] [] [] [] d.at; let ps1', t1', xprods1', dots_opt = find "grammar" env.grams x1 in let dots1, _, dots2 = gram.it in let xprods' = @@ -3067,7 +3101,7 @@ let rec elab_def env (d : def) : Il.def list = let dims = Dim.check Map.empty [] [] ts' [] [] [] in let ts' = List.map (Dim.annot_typ dims) ts' in infer_no_quants env' dims Det.empty [] [] ts' [] [] [] d.at; - let not = Mixop.apply mixop ts' in + let not = Mixop.apply mixop (List.map (fun t' -> "_" $ d.at, t') ts') in let t' = tup_typ' ts' t.at in env.rels <- bind "relation" env.rels x (mixop, not, t', []); [Il.RelD (x, mixop, t', []) $ d.at] @@ -3077,16 +3111,15 @@ let rec elab_def env (d : def) : Il.def list = if List.exists (fun (x, _) -> x.it = x2.it) rules' then error d.at ("duplicate rule name `" ^ x1.it ^ (if x2.it = "" then "" else "/" ^ x2.it) ^ "`"); - let qs1, es', _ = checkpoint (elab_exp_notation' env' x1 e not') in - let qss2, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in - let prems' = List.concat premss' in + let es', _ = checkpoint (elab_exp_notation' env' x1 e not') in + let prems' = List.concat (map_filter_nl_list (elab_prem env') prems) in let dims = Dim.check Map.empty [] [] [] es' [] prems' in let es' = List.map (Dim.annot_exp dims) es' in let e' = tup_exp_nary' es' e.at in let prems' = List.map (Dim.annot_prem dims) prems' in let det = Det.(det_exp e' ++ det_list det_prem prems') in let qs = infer_quants env env' dims det [] [] [] es' [] prems' d.at in - let rule' = Il.RuleD (x2, qs @ qs1 @ List.concat qss2, mixop, e', prems') $ d.at in + let rule' = Il.RuleD (x2, qs, mixop, e', prems') $ d.at in env.rels <- rebind "relation" env.rels x1 (mixop, not', t', rules' @ [x2, rule']); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) | VarD (x, t, _hints) -> @@ -3111,18 +3144,17 @@ Printf.printf "DecD %s%s : %s\n%!" x.it (Il.Print.string_of_params ps') (Il.Prin [d'] @ elab_hintdef env (DecH (x, hints) $ d.at) | DefD (x, as_, e, prems) -> let ps', t', clauses' = find "definition" env.defs x in - let qs1, as', s = elab_args `Lhs env' as_ ps' d.at in - let qss3, premss' = List.split (map_filter_nl_list (elab_prem env') prems) in + let as', s = elab_args `Lhs env' as_ ps' d.at in + let prems' = List.concat (map_filter_nl_list (elab_prem env') prems) in (* Elab e after premises, so that type information can flow to it *) - let qs2, e' = checkpoint (elab_exp env' e (Il.Subst.subst_typ s t')) in - let prems' = List.concat premss' in + let e' = checkpoint (elab_exp env' e (Il.Subst.subst_typ s t')) in let dims = Dim.check Map.empty [] as' [] [e'] [] prems' in let as' = List.map (Dim.annot_arg dims) as' in let e' = Dim.annot_exp dims e' in let prems' = List.map (Dim.annot_prem dims) prems' in let det = Det.(det_list det_arg as' ++ det_exp e' ++ det_list det_prem prems') in let qs = infer_quants env env' dims det [] as' [] [e'] [] prems' d.at in - let clause' = Il.DefD (qs @ qs1 @ qs2 @ List.concat qss3, as', e', prems') $ d.at in + let clause' = Il.DefD (qs, as', e', prems') $ d.at in Printf.printf "=> %s\n%!" (Il.Print.string_of_clause ~suppress_pos: true x clause'); env.defs <- rebind "definition" env.defs x (ps', t', clauses' @ [(d, clause')]); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) @@ -3260,10 +3292,10 @@ let elab (ds : script) : Il.script * env = let elab_exp env (e : exp) (t : typ) : Il.exp = let env' = local_env env in let t' = elab_typ env' t in - snd (checkpoint (elab_exp env' e t')) + checkpoint (elab_exp env' e t') let elab_rel env (e : exp) (x : id) : Il.exp = let env' = local_env env in match elab_prem env' (RulePr (x, e) $ e.at) with - | _, [{it = Il.RulePr (_, _, e'); _}] -> e' + | [{it = Il.RulePr (_, _, e'); _}] -> e' | _ -> assert false diff --git a/spectec/src/il/debug.ml b/spectec/src/il/debug.ml index d2a56299ec..d19d0cfcfd 100644 --- a/spectec/src/il/debug.ml +++ b/spectec/src/il/debug.ml @@ -8,6 +8,7 @@ let il_atom = string_of_atom let il_mixop = string_of_mixop let il_iter = string_of_iter let il_typ = string_of_typ +let il_typbind (x, t) = "(" ^ il_id x ^ ":" ^ il_typ t ^ ")" let il_typfield = string_of_typfield let il_typcase = string_of_typcase let il_deftyp = string_of_deftyp `H diff --git a/spectec/src/il/env.ml b/spectec/src/il/env.ml index bba12ebe82..c81136f0af 100644 --- a/spectec/src/il/env.ml +++ b/spectec/src/il/env.ml @@ -14,8 +14,7 @@ let error at msg = Util.Error.error at !phase msg module Set = Set.Make(String) module Map = Map.Make(String) -type var_sort = Reg | Quant -type var_def = typ * var_sort +type var_def = typ type typ_def = param list * inst list type rel_def = mixop * typ * rule list type def_def = param list * typ * clause list diff --git a/spectec/src/il/eval.ml b/spectec/src/il/eval.ml index b6f7961a2d..0950705e99 100644 --- a/spectec/src/il/eval.ml +++ b/spectec/src/il/eval.ml @@ -738,7 +738,7 @@ and match_exp' env s e1 e2 : subst option = | _ -> false ) | VarE id1, _ -> - let t1, _ = Env.find_var env id1 in + let t1 = Env.find_var env id1 in sub_typ env (reduce_typ env t1) t21 || raise Irred | _, _ -> false then match_exp' env s {e1 with note = t21} e21 diff --git a/spectec/src/il/free.ml b/spectec/src/il/free.ml index b5258b26b4..f306593888 100644 --- a/spectec/src/il/free.ml +++ b/spectec/src/il/free.ml @@ -27,11 +27,18 @@ and free_typ t = match t.it with | VarT (x, as_) -> free_typid x ++ free_args as_ | BoolT | NumT _ | TextT -> empty - | TupT ets -> free_typbinds ets + | TupT xts -> free_typbinds xts | IterT (t1, iter) -> free_typ t1 ++ free_iter iter -and free_typbind (x, t) = bound_varid x (* exclude `_` *) ++ free_typ t -and free_typbinds xts = free_list free_typbind xts +and bound_typ t = + match t.it with + | TupT xts -> bound_typbinds xts + | _ -> empty + +and free_typbind (_, t) = free_typ t +and bound_typbind (x, _) = bound_varid x +and free_typbinds xts = free_list_dep free_typbind bound_typbind xts +and bound_typbinds xts = free_list bound_typbind xts and free_deftyp dt = match dt.it with @@ -40,9 +47,9 @@ and free_deftyp dt = | VariantT tcs -> free_list free_typcase tcs and free_typfield (_, (qs, t, prems), _) = - free_quants qs ++ (free_typ t ++ free_prems prems -- bound_quants qs) + free_quants qs ++ (free_typ t ++ free_prems prems -- bound_quants qs -- bound_typ t) and free_typcase (_, (qs, t, prems), _) = - free_quants qs ++ (free_typ t ++ free_prems prems -- bound_quants qs) + free_quants qs ++ (free_typ t ++ free_prems prems -- bound_quants qs -- bound_typ t) (* Expressions *) diff --git a/spectec/src/il/fresh.ml b/spectec/src/il/fresh.ml index dc57cc55ea..222eb026ac 100644 --- a/spectec/src/il/fresh.ml +++ b/spectec/src/il/fresh.ml @@ -36,6 +36,8 @@ let refresh_varid = refresh_id varids let refresh_defid = refresh_id defids let refresh_gramid = refresh_id gramids +let _ = Subst.Fresh.refresh_varid := refresh_varid + let refresh_quant s q = match q.it with diff --git a/spectec/src/il/iter.ml b/spectec/src/il/iter.ml index 12e79e6880..7877ec3429 100644 --- a/spectec/src/il/iter.ml +++ b/spectec/src/il/iter.ml @@ -5,6 +5,8 @@ open Xl module type Arg = sig + type scope + val visit_atom : atom -> unit val visit_mixop : mixop -> unit val visit_typid : id -> unit @@ -23,10 +25,15 @@ sig val visit_def : def -> unit val visit_hint : hint -> unit + + val scope_enter : id -> typ -> scope + val scope_exit : id -> scope -> unit end module Skip = struct + type scope = unit + let visit_atom _ = () let visit_mixop _ = () let visit_typid _ = () @@ -45,6 +52,9 @@ struct let visit_def _ = () let visit_hint _ = () + + let scope_enter _ _ = () + let scope_exit _ _ = () end @@ -87,6 +97,19 @@ let rec iter it = | Opt | List | List1 -> () | ListN (e, xo) -> exp e; opt varid xo +and iterexp : 'a. ('a -> unit) -> 'a -> _ -> unit = fun f body (it, xes) -> + let xts1 = + match it with + | ListN (_, Some x) -> [(x, NumT `NatT $ x.at)] + | _ -> [] + in + let xts = xts1 @ List.map (fun (x, e) -> x, e.note) xes in + let old_scopes = List.map (fun (x, t) -> scope_enter x t) xts in + f body; + List.iter2 (fun (x, _) scope -> scope_exit x scope) + (List.rev xts) (List.rev old_scopes); + iter it; list (pair varid exp) xes + (* Types *) @@ -137,10 +160,10 @@ and exp e = | SliceE (e1, e2, e3) -> exp e1; exp e2; exp e3 | UpdE (e1, p, e2) | ExtE (e1, p, e2) -> exp e1; path p; exp e2 | CallE (x, as_) -> defid x; args as_ - | IterE (e1, it) -> exp e1; iterexp it + | IterE (e1, it) -> iterexp exp e1 it | CvtE (e1, nt1, nt2) -> exp e1; numtyp nt1; numtyp nt2 | SubE (e1, t1, t2) -> exp e1; typ t1; typ t2 - + and expfield (at, as_, e) = atom at; args as_; exp e and path p = @@ -151,8 +174,6 @@ and path p = | SliceP (p1, e1, e2) -> path p1; exp e1; exp e2 | DotP (p1, at, as_) -> path p1; atom at; args as_ -and iterexp (it, xes) = iter it; list (pair varid exp) xes - (* Grammars *) @@ -165,7 +186,7 @@ and sym g = | EpsG -> () | SeqG gs | AltG gs -> list sym gs | RangeG (g1, g2) -> sym g1; sym g2 - | IterG (g1, it) -> sym g1; iterexp it + | IterG (g1, it) -> iterexp sym g1 it | AttrG (e, g1) -> exp e; sym g1 @@ -177,7 +198,7 @@ and prem pr = | RulePr (x, op, e) -> relid x; mixop op; exp e | IfPr e -> exp e | ElsePr -> () - | IterPr (pr1, it) -> prem pr1; iterexp it + | IterPr (pr1, it) -> iterexp prem pr1 it | LetPr (e1, e2, _) -> exp e1; exp e2 and prems prs = list prem prs diff --git a/spectec/src/il/print.ml b/spectec/src/il/print.ml index f8034049e0..c95d2efed6 100644 --- a/spectec/src/il/print.ml +++ b/spectec/src/il/print.ml @@ -108,6 +108,7 @@ and string_of_typcase layout (op, (qs, t, prems), _hints) = (* Expressions *) and string_of_exp e = +"(" ^ ( match e.it with | VarE x -> string_of_id x | BoolE b -> string_of_bool b @@ -157,6 +158,7 @@ and string_of_exp e = "(" ^ string_of_exp e1 ^ " : " ^ string_of_numtyp nt1 ^ " <:> " ^ string_of_numtyp nt2 ^ ")" | SubE (e1, t1, t2) -> "(" ^ string_of_exp e1 ^ " : " ^ string_of_typ t1 ^ " <: " ^ string_of_typ t2 ^ ")" +) ^ ")@[" ^ string_of_typ e.note ^ "]" and string_of_exp_args e = match e.it with diff --git a/spectec/src/il/subst.ml b/spectec/src/il/subst.ml index bb5e1d1b63..a009bd5a04 100644 --- a/spectec/src/il/subst.ml +++ b/spectec/src/il/subst.ml @@ -1,6 +1,11 @@ open Util.Source open Ast +module Fresh = +struct + let refresh_varid = ref (fun _ -> assert false) +end + (* Data Structure *) @@ -52,7 +57,6 @@ let remove_varids s xs' = Free.Set.(fold (fun x' s -> remove_varid' s x') xs' s) let subst_opt subst_x s xo = Option.map (subst_x s) xo let subst_list subst_x s xs = List.map (subst_x s) xs -let subst_pair subst_x subst_y s (x, y) = subst_x s x, subst_y s y let rec subst_list_dep subst_x bound_x s = function | [] -> [], s @@ -88,10 +92,28 @@ let subst_gramid s x = let rec subst_iter s iter = match iter with - | Opt | List | List1 -> iter, s - | ListN (e, xo) -> - ListN (subst_exp s e, subst_opt subst_varid s xo), - Option.fold xo ~none:s ~some:(remove_varid s) + | Opt | List | List1 -> iter + | ListN (e, xo) -> ListN (subst_exp s e, subst_opt subst_varid s xo) + +and subst_iterexp : 'a. subst -> (subst -> 'a -> 'a) -> 'a -> _ -> 'a * _ = + fun s f body (it, xes) -> + let it', xxts1 = + match it with + | ListN (e, Some x) -> + let x' = !Fresh.refresh_varid x in + ListN (e, Some x'), [(x, x', NumT `NatT $ x.at)] + | _ -> it, [] + in + let it'' = subst_iter s it' in + let xes' = List.map (fun (x, e) -> !Fresh.refresh_varid x, subst_exp s e) xes in + let xxts = List.map2 (fun (x, _) (x', e') -> x, x', e'.note) xes xes' in + let s' = + List.fold_left (fun s (x, x', t) -> + add_varid s x (VarE x' $$ x'.at % t) + ) s (xxts1 @ xxts) + in + f s' body, + (it'', xes') (* Types *) @@ -104,12 +126,24 @@ and subst_typ s t = | Some t' -> assert (as_ = []); t'.it (* We do not support higher-order substitutions yet *) ) | BoolT | NumT _ | TextT -> t.it - | TupT xts -> TupT (subst_list (subst_pair subst_varid subst_typ) s xts) - | IterT (t1, iter) -> - let iter', s' = subst_iter s iter in - IterT (subst_typ s' t1, iter') + | TupT xts -> TupT (fst (subst_tup_typ s xts)) + | IterT (t1, it) -> IterT (subst_typ s t1, subst_iter s it) ) $ t.at +and subst_typ' s t = + match t.it with + | TupT xts -> let xts', s' = subst_tup_typ s xts in TupT xts' $ t.at, s' + | _ -> subst_typ s t, s + +and subst_tup_typ s = function + | [] -> [], s + | (x, t)::xts -> + let x' = !Fresh.refresh_varid x in + let t' = subst_typ s t in + let s' = add_varid s x (VarE x' $$ x'.at % t') in + let xts', s'' = subst_tup_typ s' xts in + (x', t') :: xts', s'' + and subst_deftyp s dt = (match dt.it with | AliasT t -> AliasT (subst_typ s t) @@ -119,11 +153,13 @@ and subst_deftyp s dt = and subst_typfield s (atom, (qs, t, prems), hints) = let qs', s' = subst_quants s qs in - (atom, (qs', subst_typ s' t, subst_list subst_prem s' prems), hints) + let t', s'' = subst_typ' s' t in + (atom, (qs', t', subst_list subst_prem s'' prems), hints) and subst_typcase s (op, (qs, t, prems), hints) = let qs', s' = subst_quants s qs in - (op, (qs', subst_typ s' t, subst_list subst_prem s' prems), hints) + let t', s'' = subst_typ' s' t in + (op, (qs', t', subst_list subst_prem s'' prems), hints) (* Expressions *) @@ -151,8 +187,8 @@ and subst_exp s e = | TupE es -> TupE (subst_list subst_exp s es) | CallE (x, as_) -> CallE (subst_defid s x, subst_args s as_) | IterE (e1, iterexp) -> - let it', s' = subst_iterexp s iterexp in - IterE (subst_exp s' e1, it') + let e1', it' = subst_iterexp s subst_exp e1 iterexp in + IterE (e1', it') | ProjE (e1, i) -> ProjE (subst_exp s e1, i) | UncaseE (e1, op, as_) -> let e1' = subst_exp s e1 in @@ -181,12 +217,6 @@ and subst_path s p = | DotP (p1, atom, as_) -> DotP (subst_path s p1, atom, subst_args s as_) ) $$ p.at % subst_typ s p.note -and subst_iterexp s (iter, xes) = - (* TODO(3, rossberg): This is assuming expressions in s are closed, is that okay? *) - let iter', s' = subst_iter s iter in - (iter', List.map (fun (x, e) -> (x, subst_exp s e)) xes), - List.fold_left remove_varid s' (List.map fst xes) - (* Grammars *) @@ -204,8 +234,8 @@ and subst_sym s g = | AltG gs -> AltG (subst_list subst_sym s gs) | RangeG (g1, g2) -> RangeG (subst_sym s g1, subst_sym s g2) | IterG (g1, iterexp) -> - let it', s' = subst_iterexp s iterexp in - IterG (subst_sym s' g1, it') + let g1', it' = subst_iterexp s subst_sym g1 iterexp in + IterG (g1', it') | AttrG (e, g1) -> AttrG (subst_exp s e, subst_sym s g1) ) $ g.at @@ -218,8 +248,8 @@ and subst_prem s prem = | IfPr e -> IfPr (subst_exp s e) | ElsePr -> ElsePr | IterPr (prem1, iterexp) -> - let it', s' = subst_iterexp s iterexp in - IterPr (subst_prem s' prem1, it') + let prem1', it' = subst_iterexp s subst_prem prem1 iterexp in + IterPr (prem1', it') | LetPr (e1, e2, xs) -> LetPr (subst_exp s e1, subst_exp s e2, xs) ) $ prem.at diff --git a/spectec/src/il/subst.mli b/spectec/src/il/subst.mli index c8fd8fc5d8..a0f51bc7d7 100644 --- a/spectec/src/il/subst.mli +++ b/spectec/src/il/subst.mli @@ -43,3 +43,5 @@ val subst_args : subst -> arg list -> arg list val subst_params : subst -> param list -> param list * subst val subst_list : (subst -> 'a -> 'a) -> subst -> 'a list -> 'a list + +module Fresh : sig val refresh_varid : (id -> id) ref end diff --git a/spectec/src/il/valid.ml b/spectec/src/il/valid.ml index e3e50287e8..9fbd23ff04 100644 --- a/spectec/src/il/valid.ml +++ b/spectec/src/il/valid.ml @@ -33,18 +33,6 @@ let typ_string env t = "`" ^ string_of_typ t ^ "` = `" ^ string_of_typ t' ^ "`" -(* Quantifier variables *) - -let is_qvar env x = - let _, sort = Env.find_var env x in - sort = Quant - -let is_qvar_exp env e = - match e.it with - | VarE x -> is_qvar env x - | _ -> false - - (* Type Accessors *) let expand_typ (env : Env.t) t = (Eval.reduce_typ env t).it @@ -110,6 +98,16 @@ let rec inst_tup_typ env s xts : (id * typ) list = (xI', tI') :: inst_tup_typ env s' xts' *) +let proj_tup_typ i xts e at = + let rec loop i xts s = + match i, xts with + | _, [] -> error at "invalid tuple projection" + | 0, (_, tI)::_ -> Subst.subst_typ s tI + | i, (xI, tI)::xts' -> + let eI = ProjE (e, i) $$ at % Subst.subst_typ s tI in + loop (i - 1) xts' (Subst.add_varid s xI eI) + in loop i xts Subst.empty + (* Type Equivalence and Subtyping *) @@ -187,9 +185,26 @@ let rec valid_iter ?(side = `Rhs) env iter : Env.t = | ListN (e, id_opt) -> valid_exp ~side env e (NumT `NatT $ e.at); Option.fold id_opt ~none:env ~some:(fun id -> - Env.bind_var env id (NumT `NatT $ e.at, Reg) + Env.bind_var env id (NumT `NatT $ e.at) ) +and valid_iterexp ?(side = `Rhs) env (it, xes) at : iter * Env.t = + Debug.(log_at "il.valid_iterexp" at + (fun _ -> il_iter it) + (fun (it', _) -> il_iter it') + ) @@ fun _ -> + let env' = valid_iter ~side env it in + if xes = [] && it <= List1 && side = `Rhs then error at "empty iteration"; + let it' = match it with Opt -> Opt | _ -> List in + it', + List.fold_left (fun env' (x, e) -> + let t = infer_exp env e in +Printf.printf "[] %s %s\n%!" (Debug.il_typ t) (Debug.il_typ e.note); + valid_exp ~side env e t; + let t1 = as_iter_typ it' "iterator" env Check t e.at in + Env.bind_var env' x t1 + ) env' xes + (* Types *) @@ -205,8 +220,11 @@ and valid_typ env t = | NumT _ | TextT -> () - | TupT xts -> - List.iter (valid_typbind env) xts + | TupT [] -> + () + | TupT ((x, t)::xts) -> + valid_typ env t; + valid_typ (Env.bind_var env x t) (TupT xts $ t.at) | IterT (t1, iter) -> match iter with | ListN (e, _) -> error e.at "definite iterator not allowed in type" @@ -214,14 +232,6 @@ and valid_typ env t = let env' = valid_iter env iter in valid_typ env' t1 -and valid_typbind env (x, t) = - valid_typ env t; - if x.it <> "_" then - let t', sort = Env.find_var env x in - if sort <> Quant then - error x.at "field name must be quantifier variable"; - equiv_typ env t' t x.at - and valid_deftyp envr dt = match dt.it with | AliasT t -> @@ -266,7 +276,7 @@ and infer_exp (env : Env.t) e : typ = (fun r -> fmt "%s" (il_typ r)) ) @@ fun _ -> match e.it with - | VarE x -> fst (Env.find_var env x) + | VarE x -> Env.find_var env x | BoolE _ -> BoolT $ e.at | NumE n -> NumT (Num.to_typ n) $ e.at | TextE _ -> TextT $ e.at @@ -282,7 +292,7 @@ and infer_exp (env : Env.t) e : typ = | DotE (e1, atom, as_) -> let tfs = as_struct_typ "expression" env Infer (infer_exp env e1) e1.at in let qs, t, _prems = find_field tfs atom e1.at in - let s = valid_qargs env as_ qs Subst.empty e.at in + let s = valid_args env as_ qs Subst.empty e.at in Subst.subst_typ s t | TupE es -> TupT (List.map (fun eI -> "_" $ eI.at, infer_exp env eI) es) $ e.at @@ -290,26 +300,18 @@ and infer_exp (env : Env.t) e : typ = let ps, t, _ = Env.find_def env x in let s = valid_args env as_ ps Subst.empty e.at in Subst.subst_typ s t - | IterE (e1, iterexp) -> - let iter, env' = valid_iterexp env iterexp e.at in - IterT (infer_exp env' e1, iter) $ e.at + | IterE (e1, ite) -> + let it, env' = valid_iterexp env ite e.at in + IterT (infer_exp env' e1, it) $ e.at | ProjE (e1, i) -> let t1 = infer_exp env e1 in let xts = as_tup_typ "expression" env Infer t1 e1.at in - if i >= List.length xts then - error e.at "invalid tuple projection"; -(* - let xts' = inst_tup_typ env Subst.empty xts in -*) - (match List.nth_opt xts i with - | Some (_, tI) -> tI - | None -> error e.at "cannot infer type of tuple projection" - ) + proj_tup_typ i xts e1 e.at | UncaseE (e1, op, as_) -> let t1 = infer_exp env e1 in (match as_variant_typ "expression" env Infer t1 e1.at with | [(op', (qs, t, _), _)] when Eq.eq_mixop op op' -> - let s = valid_qargs env as_ qs Subst.empty e.at in + let s = valid_args env as_ qs Subst.empty e.at in Subst.subst_typ s t | _ -> error e.at "invalid case projection"; ) @@ -356,7 +358,7 @@ try match e.it with | VarE x when x.it = "_" && side = `Lhs -> () | VarE x -> - let t', _ = Env.find_var env x in + let t' = Env.find_var env x in equiv_typ env t' t e.at | BoolE _ | NumE _ | TextE _ -> let t' = infer_exp env e in @@ -414,7 +416,7 @@ try valid_exp env e1 t1; let tfs = as_struct_typ "expression" env Check t1 e1.at in let qs, t', _prems = find_field tfs atom e1.at in - let s = valid_qargs env as_ qs Subst.empty e.at in + let s = valid_args env as_ qs Subst.empty e.at in equiv_typ env (Subst.subst_typ s t') t e.at | CompE (e1, e2) -> let _ = as_comp_typ "expression" env Check t e.at in @@ -432,40 +434,39 @@ try valid_exp env e1 t1; equiv_typ env (NumT `NatT $ e.at) t e.at | TupE es -> - let ets = as_tup_typ "tuple" env Check t e.at in - if List.length es <> List.length ets then - error e.at ("arity mismatch for tuple, expected " ^ - string_of_int (List.length ets) ^ ", got " ^ string_of_int (List.length es)); - if not (valid_tup_exp ~side env Subst.empty es ets) then - as_error e.at "tuple" Check t "" + let xts = as_tup_typ "tuple" env Check t e.at in + let rec loop i es xts s = + match es, xts with + | [], [] -> () + | eI::es', (xI, tI)::xts' -> + valid_exp ~side env eI (Subst.subst_typ s tI); + let s' = Subst.add_varid s xI eI in + loop (i + 1) es' xts' s' + | _, _ -> + error e.at ("arity mismatch for tuple, expected " ^ + string_of_int (i + List.length xts) ^ ", got " ^ + string_of_int (i + List.length es)); + in loop 0 es xts Subst.empty | CallE (x, as_) -> let ps, t', _ = Env.find_def env x in let s = valid_args env as_ ps Subst.empty e.at in equiv_typ env (Subst.subst_typ s t') t e.at - | IterE (e1, iterexp) -> - let iter, env' = valid_iterexp ~side env iterexp e.at in - let t1 = as_iter_typ iter "iteration" env Check t e.at in + | IterE (e1, ite) -> + let it, env' = valid_iterexp ~side env ite e.at in + let t1 = as_iter_typ it "iteration" env Check t e.at in valid_exp ~side env' e1 t1 | ProjE (e1, i) -> let t1 = infer_exp env e1 in let xts = as_tup_typ "expression" env Infer t1 e1.at in - if i >= List.length xts then - error e.at "invalid tuple projection"; let side' = if List.length xts > 1 then `Rhs else side in -(* - let xts' = inst_tup_typ env Subst.empty xts in -*) valid_exp ~side:side' env e1 (TupT xts $ t1.at); - (match List.nth_opt xts i with - | Some (_, tI) -> equiv_typ env tI t e.at - | None -> error e.at "invalid tuple projection, cannot match pattern" - ) + equiv_typ env (proj_tup_typ i xts e1 e.at) t e.at | UncaseE (e1, op, as_) -> let t1 = infer_exp env e1 in valid_exp ~side env e1 t1; (match as_variant_typ "expression" env Infer t1 e1.at with | [(op', (qs, t', _), _)] when Eq.eq_mixop op op' -> - let s = valid_qargs env as_ qs Subst.empty e.at in + let s = valid_args env as_ qs Subst.empty e.at in equiv_typ env (Subst.subst_typ s t') t e.at | _ -> error e.at "invalid case projection"; ) @@ -492,7 +493,7 @@ try | CaseE (op, as_, e1) -> let cases = as_variant_typ "case" env Check t e.at in let qs, t1, _prems = find_case cases op e1.at in - let s = valid_qargs env as_ qs Subst.empty e.at in + let s = valid_args env as_ qs Subst.empty e.at in valid_exp ~side env e1 (Subst.subst_typ s t1) | CvtE (e1, nt1, nt2) -> valid_exp ~side env e1 (NumT nt1 $ e1.at); @@ -517,20 +518,15 @@ and valid_expmix ?(side = `Rhs) env mixop e (mixop', t) at = ); valid_exp ~side env e t -and valid_tup_exp ?(side = `Rhs) env s es xts = - Debug.(log_in "il.valid_tup_exp" - (fun _ -> fmt "(%s) :%s (%s)[%s]" (list il_exp es) (il_side side) (list il_typ (List.map snd xts)) (il_subst s)) - ); - match es, xts with - | e::es', (x, t)::xts' -> - valid_exp ~side env e (Subst.subst_typ s t); - let s' = Subst.add_varid s x e in - valid_tup_exp ~side env s' es' xts' - | _, _ -> true - and valid_expfield ~side env (atom1, as_, e) (atom2, (qs, t, _prems), _) = + Debug.(log_in_at "il.valid_expfield" e.at + (fun _ -> fmt "%s%s %s :%s %s%s %s" + (il_atom atom1) (il_args as_) (il_exp e) (il_side side) + (il_atom atom2) (il_quants qs) (il_typ t) + ) + ); if not (Eq.eq_atom atom1 atom2) then error e.at "unexpected record field"; - let s = valid_qargs env as_ qs Subst.empty e.at in + let s = valid_args env as_ qs Subst.empty e.at in valid_exp ~side env e (Subst.subst_typ s t) and valid_path env p t : typ = @@ -552,24 +548,12 @@ and valid_path env p t : typ = let t1 = valid_path env p1 t in let tfs = as_struct_typ "path" env Check t1 p1.at in let qs, t, _prems = find_field tfs atom p1.at in - let s = valid_qargs env as_ qs Subst.empty p.at in + let s = valid_args env as_ qs Subst.empty p.at in Subst.subst_typ s t in equiv_typ env p.note t' p.at; t' -and valid_iterexp ?(side = `Rhs) env (iter, xes) at : iter * Env.t = - let env' = valid_iter ~side env iter in - if xes = [] && iter <= List1 && side = `Rhs then error at "empty iteration"; - let iter' = match iter with Opt -> Opt | _ -> List in - iter', - List.fold_left (fun env' (x, e) -> - let t = infer_exp env e in - valid_exp ~side env e t; - let t1 = as_iter_typ iter' "iterator" env Check t e.at in - Env.bind_var env' x (t1, Reg) - ) env' xes - (* Grammars *) @@ -600,10 +584,10 @@ and valid_sym env g : typ = equiv_typ env t1 (NumT `NatT $ g1.at) g.at; equiv_typ env t2 (NumT `NatT $ g2.at) g.at; NumT `NatT $ g.at - | IterG (g1, iterexp) -> - let iter, env' = valid_iterexp ~side:`Lhs env iterexp g.at in + | IterG (g1, ite) -> + let it, env' = valid_iterexp ~side:`Lhs env ite g.at in let t1 = valid_sym env' g1 in - IterT (t1, iter) $ g.at + IterT (t1, it) $ g.at | AttrG (e, g1) -> let t1 = valid_sym env g1 in valid_exp ~side:`Lhs env e t1; @@ -635,21 +619,19 @@ and valid_prem env prem = " do not occur in left-hand side expression") | ElsePr -> () - | IterPr (prem', iterexp) -> - let _iter, env' = valid_iterexp env iterexp prem.at in + | IterPr (prem', ite) -> + let _it, env' = valid_iterexp env ite prem.at in valid_prem env' prem' (* Definitions *) -and valid_arg' isq env a p s = +and valid_arg env a p s = Debug.(log_at "il.valid_arg" a.at (fun _ -> fmt "%s : %s" (il_arg a) (il_param p)) (Fun.const "ok") ) @@ fun _ -> match a.it, (Subst.subst_param s p).it with | ExpA e, ExpP (x, t) -> - if isq && not (is_qvar_exp env e) then - error e.at "quantifier argument expression must be quantified variable"; valid_exp ~side:`Lhs env e t; Subst.add_varid s x e | TypA t, TypP x -> valid_typ env t; Subst.add_typid s x t | DefA x', DefP (x, ps, t) -> @@ -670,7 +652,7 @@ and valid_arg' isq env a p s = error a.at ("sort mismatch for argument, expected `" ^ Print.string_of_param p ^ "`, got `" ^ Print.string_of_arg a ^ "`") -and valid_args' isq env as_ ps s at : Subst.t = +and valid_args env as_ ps s at : Subst.t = Debug.(log_if "il.valid_args" (as_ <> [] || ps <> []) (fun _ -> fmt "{%s} : {%s}" (il_args as_) (il_params ps)) (Fun.const "ok") ) @@ fun _ -> @@ -679,17 +661,14 @@ and valid_args' isq env as_ ps s at : Subst.t = | a::_, [] -> error a.at "too many arguments" | [], _::_ -> error at "too few arguments" | a::as', p::ps' -> - let s' = valid_arg' isq env a p s in - valid_args' isq env as' ps' s' at - -and valid_args env = valid_args' false env -and valid_qargs env = valid_args' true env + let s' = valid_arg env a p s in + valid_args env as' ps' s' at -and valid_param' isq envr p = +and valid_param envr p = match p.it with | ExpP (x, t) -> valid_typ !envr t; - envr := Env.bind_var !envr x (t, if isq then Quant else Reg) + envr := Env.bind_var !envr x t | TypP x -> envr := Env.bind_typ !envr x ([], []) | DefP (x, ps, t) -> @@ -703,8 +682,7 @@ and valid_param' isq envr p = valid_typ !envr' t; envr := Env.bind_gram !envr x (ps, t, []) -and valid_param envr = valid_param' false envr -and valid_quant envr = valid_param' true envr +and valid_quant envr q = valid_param envr q let valid_inst envr ps inst = Debug.(log_in "il.valid_inst" line); diff --git a/spectec/src/util/debug_log.ml b/spectec/src/util/debug_log.ml index e55a2f1889..2442fce9bd 100644 --- a/spectec/src/util/debug_log.ml +++ b/spectec/src/util/debug_log.ml @@ -40,6 +40,7 @@ let result f g = function Ok x -> f x | Error y -> g y let seq f xs = String.concat " " (List.map f xs) let list f xs = String.concat ", " (List.map f xs) let set s = seq Fun.id (MySet.elements s) +let domain m = seq fst (MyMap.bindings m) let mapping f m = seq (fun (x, y) -> x ^ "=" ^ f y) (MyMap.bindings m) let qline _ = "--------------------" From c3aee6c367a640172b05c4b165a9941d9c51c318 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Sun, 18 Jan 2026 19:00:52 +0100 Subject: [PATCH 10/23] WIP4 (Wasm 2.0 validates again) --- spectec/src/frontend/elab.ml | 66 +++++++++++++++++++++++++++--------- spectec/src/frontend/eval.ml | 9 ++--- spectec/src/il/eval.ml | 13 +++---- spectec/src/il/print.ml | 4 ++- spectec/src/il/print.mli | 3 +- spectec/src/util/lib.ml | 4 +++ spectec/src/util/lib.mli | 4 +++ 7 files changed, 71 insertions(+), 32 deletions(-) diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index 5962ef5908..78f6b68b7d 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -403,14 +403,8 @@ let make_quants_iter_arg env (free : Il.Free.sets) dims : Il.quant list ref * (m type scope = var_typ env' - let left = ref free - let acc = ref [] - - let visit_typid id = - if Il.Free.Set.mem id.it !left.typid then ( - acc := !acc @ [Il.TypP id $ id.at]; - left := Il.Free.{!left with typid = Set.remove id.it !left.typid}; - ) + let left = ref free (* free variables not yet quantified *) + let acc = ref [] (* quantifiers introduced so far *) let scope_enter x t = Printf.printf "[scope_enter %s]\n%!" x.it; @@ -422,6 +416,12 @@ Printf.printf "[scope_enter %s]\n%!" x.it; Printf.printf "[scope_exit %s]\n%!" x.it; env.vars <- varenv + let visit_typid id = + if Il.Free.Set.mem id.it !left.typid then ( + acc := !acc @ [Il.TypP id $ id.at]; + left := Il.Free.{!left with typid = Set.remove id.it !left.typid}; + ) + let visit_exp e = Printf.printf "[visit_exp %s]\n%!" (Il.Debug.il_exp e) @@ -434,6 +434,8 @@ Printf.printf "[visit_id %s]\n%!" id.it; try find "variable" env.vars id with Error _ -> find "variable" env.gvars (strip_var_suffix id) in +(* + (* Check that quantifier will not depend on later ones *) let fwd = Il.Free.(inter (free_typ t) !left) in if fwd <> Il.Free.empty then error id.at ("the type of `" ^ id.it ^ "` depends on " ^ @@ -441,16 +443,15 @@ Printf.printf "[visit_id %s]\n%!" id.it; List.map (fun id -> "`" ^ id ^ "`") |> String.concat ", " ) ^ ", which only occur(s) to its right; try to reorder parameters or premises"); +*) + (* Raise variable type to its inferred dimension *) let ctx' = match Map.find_opt id.it dims with | None -> [] (* for inherited variables *) | Some (_, ctx) -> List.map Il.(function Opt -> Opt | _ -> List) ctx in let t' = - List.fold_left (fun t iter -> - Il.IterT (t, iter) $ t.at - ) t ctx' - in + List.fold_left (fun t iter -> Il.IterT (t, iter) $ t.at) t ctx' in acc := !acc @ [Il.ExpP (Dim.annot_varid id ctx', t') $ id.at]; left := Il.Free.{!left with varid = Set.remove id.it !left.varid}; ) @@ -458,7 +459,9 @@ Printf.printf "[visit_id %s]\n%!" id.it; let visit_gramid id = if Il.Free.(Set.mem id.it !left.gramid) then ( let ps, t, _gram, _prods' = find "grammar" env.grams id in - let free' = Il.Free.(union (free_params ps) (diff (free_typ t) (bound_params ps))) in +(* + (* Check that quantifier will not depend on later ones *) + let free' = Il.Free.(free_params ps ++ (free_typ t -- bound_params ps)) in let fwd = Il.Free.(inter free' !left) in if fwd <> Il.Free.empty then error id.at ("the type of `" ^ id.it ^ "` depends on " ^ @@ -466,13 +469,17 @@ Printf.printf "[visit_id %s]\n%!" id.it; List.map (fun id -> "`" ^ id ^ "`") |> String.concat ", " ) ^ ", which only occur(s) to its right; try to reorder parameters or premises"); +*) + acc := !acc @ [Il.GramP (id, ps, t) $ id.at]; left := Free.{!left with varid = Set.remove id.it !left.gramid}; ) let visit_defid id = if Il.Free.Set.mem id.it !left.defid then ( let ps, t, _ = find "definition" env.defs id in - let free' = Il.Free.(union (free_params ps) (diff (free_typ t) (bound_params ps))) in +(* + (* Check that quantifier will not depend on later ones *) + let free' = Il.Free.(free_params ps ++ (free_typ t -- bound_params ps)) in let fwd = Il.Free.(inter free' !left) in if fwd <> Il.Free.empty then error id.at ("the type of `" ^ (spaceid "definition" id).it ^ "` depends on " ^ @@ -480,6 +487,7 @@ Printf.printf "[visit_id %s]\n%!" id.it; List.map (fun id -> "`" ^ id ^ "`") |> String.concat ", " ) ^ ", which only occur(s) to its right; try to reorder parameters or premises"); +*) acc := !acc @ [Il.DefP (id, ps, t) $ id.at]; left := Il.Free.{!left with defid = Set.remove id.it !left.defid}; ) @@ -506,6 +514,8 @@ Printf.sprintf "\n prs'=[%s]" Il.Debug.(list il_prem prs') ^ ) (fun qs -> fmt "\n... %s" (il_quants qs)) ) @@ fun _ -> + + (* Check that everything is determined (this is an approximation!) *) let bound = bound_env env in let free = Il.Free.( free_list free_param ps' ++ @@ -517,10 +527,12 @@ Printf.sprintf "\n prs'=[%s]" Il.Debug.(list il_prem prs') ^ -- bound -- bound_list bound_param ps' -- det ) in - let det' = Il.Free.(det -- bound) in if free <> Free.empty then error at ("definition contains indeterminate variable(s) " ^ String.concat ", " (List.map quote (Il.Free.Set.elements free.varid))); + + (* Gather quantifiers *) + let det' = Il.Free.(det -- bound) in let acc_qs, (module Arg : Il.Iter.Arg) = make_quants_iter_arg env' det' dims in let module Acc = Il.Iter.Make(Arg) in Acc.(list param ps'); @@ -529,7 +541,28 @@ Printf.sprintf "\n prs'=[%s]" Il.Debug.(list il_prem prs') ^ Acc.(list exp es'); Acc.(list sym gs'); Acc.(list prem prs'); - !acc_qs + + (* Order quantifiers for dependencies by simple fixpoint iteration *) + let qsf = List.map Il.Free.(fun q -> q, bound_quant q, free_quant q) !acc_qs in + let rec iterate bound_ok ok qfs defer progress = + match qfs with + | (q, bound, free)::qfs when Il.Free.subset free bound_ok -> + iterate Il.Free.(bound_ok ++ bound) (q::ok) qfs defer true + | qf1::qfs -> iterate bound_ok ok qfs (qf1::defer) progress + | [] -> + match defer with + | [] -> List.rev ok + | _ when progress -> iterate bound_ok ok (List.rev defer) [] false + | (q, _, free)::_ -> + let fwd = Il.Free.(free -- bound_ok) in + error q.at ("the type of `" ^ Il.Print.string_of_quant q ^ "` depends on " ^ + ( Il.Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> + List.map (fun id -> "`" ^ id ^ "`") |> + String.concat ", " ) ^ + ", which only occur(s) to its right; " ^ + "try to reorder parameters or premises or introduce an extra parameter") + in + iterate bound [] qsf [] false let infer_no_quants env dims det ps' as' ts' es' gs' prs' at = let qs = infer_quants env env dims det ps' as' ts' es' gs' prs' at in @@ -1089,6 +1122,7 @@ and elab_iterexp : 'a 'b. env -> (env -> 'a -> 'b attempt) -> 'a -> iter -> ('b | None -> Map.remove x.it env.vars | Some t -> Map.add x.it t env.vars ) xo; + (* Iterator list is injected after dimension analysis, leave it empty here *) Ok (body', (it', []), match it with Opt -> Il.Opt | _ -> Il.List) diff --git a/spectec/src/frontend/eval.ml b/spectec/src/frontend/eval.ml index 507b02bd8a..0d8cb290e1 100644 --- a/spectec/src/frontend/eval.ml +++ b/spectec/src/frontend/eval.ml @@ -816,14 +816,11 @@ and sub_typ env t1 t2 = and find_field tfs atom = El.Convert.find_nl_list (fun (atom', _, _) -> atom'.it = atom.it) tfs - |> Option.map snd3 + |> Option.map Lib.snd3 and find_case tcs atom = El.Convert.find_nl_list (fun (atom', _, _) -> atom'.it = atom.it) tcs - |> Option.map snd3 - -and fst3 (x, _, _) = x -and snd3 (_, x, _) = x + |> Option.map Lib.snd3 (* Type Disjointness *) @@ -887,7 +884,7 @@ and narrow_typ env t1 t2 = and atoms xs = Set.of_list (List.map Print.string_of_atom - (El.Convert.map_filter_nl_list fst3 xs)) + (El.Convert.map_filter_nl_list Lib.fst3 xs)) and unordered s1 s2 = not Set.(subset s1 s2 || subset s2 s1) diff --git a/spectec/src/il/eval.ml b/spectec/src/il/eval.ml index 0950705e99..2d1f2d8837 100644 --- a/spectec/src/il/eval.ml +++ b/spectec/src/il/eval.ml @@ -25,9 +25,6 @@ let (let*) = Option.bind let ($>) it e = {e with it} -let fst3 (x, _, _) = x -let snd3 (_, x, _) = x - let unordered s1 s2 = not Set.(subset s1 s2 || subset s2 s1) @@ -769,7 +766,7 @@ and eta_tup_exp env e : exp list option = let eI' = ProjE (e, i) $$ e.at % Subst.subst_typ s tI in let s' = Subst.add_varid s xI eI' in Some (eI'::res', i + 1, s') - ) (Some ([], 0, Subst.empty)) xts |> Option.map fst3 |> Option.map List.rev + ) (Some ([], 0, Subst.empty)) xts |> Option.map Lib.fst3 |> Option.map List.rev in Some es' and eta_iter_exp env e : exp * iterexp = @@ -957,10 +954,10 @@ and sub_tup env s xts1 xts2 = and find_field tfs atom = - List.find_opt (fun (atom', _, _) -> Eq.eq_atom atom' atom) tfs |> Option.map snd3 + List.find_opt (fun (atom', _, _) -> Eq.eq_atom atom' atom) tfs |> Option.map Lib.snd3 and find_case tcs op = - List.find_opt (fun (op', _, _) -> Eq.eq_mixop op' op) tcs |> Option.map snd3 + List.find_opt (fun (op', _, _) -> Eq.eq_mixop op' op) tcs |> Option.map Lib.snd3 (* Type Disjointness *) @@ -1000,8 +997,8 @@ and disj_typ env t1 t2 = | _, _ -> t1.it <> t2.it -and atoms xs = Set.of_list (List.map Print.string_of_atom (List.map fst3 xs)) -and mixops xs = Set.of_list (List.map Print.string_of_mixop (List.map fst3 xs)) +and atoms xs = Set.of_list (List.map Print.string_of_atom (List.map Lib.fst3 xs)) +and mixops xs = Set.of_list (List.map Print.string_of_mixop (List.map Lib.fst3 xs)) and disj_tup env s xts1 xts2 = match xts1, xts2 with diff --git a/spectec/src/il/print.ml b/spectec/src/il/print.ml index c95d2efed6..36fb9fe07d 100644 --- a/spectec/src/il/print.ml +++ b/spectec/src/il/print.ml @@ -255,13 +255,15 @@ and string_of_param p = | GramP (x, ps, t) -> "grammar " ^ string_of_id x ^ string_of_params ps ^ " : " ^ string_of_typ t +and string_of_quant q = string_of_param q + and string_of_params = function | [] -> "" | ps -> "(" ^ concat ", " (List.map string_of_param ps) ^ ")" and string_of_quants = function | [] -> "" - | ps -> "{" ^ concat ", " (List.map string_of_param ps) ^ "}" + | ps -> "{" ^ concat ", " (List.map string_of_quant ps) ^ "}" let region_comment ?(suppress_pos = false) indent at = diff --git a/spectec/src/il/print.mli b/spectec/src/il/print.mli index 99b9ef9a4d..de38d7639b 100644 --- a/spectec/src/il/print.mli +++ b/spectec/src/il/print.mli @@ -18,7 +18,8 @@ val string_of_arg : arg -> string val string_of_args : arg list -> string val string_of_param : param -> string val string_of_params : param list -> string -val string_of_quants : param list -> string +val string_of_quant : quant -> string +val string_of_quants : quant list -> string val string_of_typfield : [`H | `V] -> typfield -> string val string_of_typcase : [`H | `V] -> typcase -> string val string_of_deftyp : [`H | `V] -> deftyp -> string diff --git a/spectec/src/util/lib.ml b/spectec/src/util/lib.ml index 351ed0a24c..6ad5a31025 100644 --- a/spectec/src/util/lib.ml +++ b/spectec/src/util/lib.ml @@ -1,3 +1,7 @@ +let fst3 (x, _, _) = x +let snd3 (_, y, _) = y +let thd3 (_, _, z) = z + module List = struct include List diff --git a/spectec/src/util/lib.mli b/spectec/src/util/lib.mli index 56e29ffc52..b959912e8f 100644 --- a/spectec/src/util/lib.mli +++ b/spectec/src/util/lib.mli @@ -1,5 +1,9 @@ (* Things that should be in the OCaml library... *) +val fst3 : 'a * 'b * 'c -> 'a +val snd3 : 'a * 'b * 'c -> 'b +val thd3 : 'a * 'b * 'c -> 'c + module List : sig val take : int -> 'a list -> 'a list (* raises Failure *) From cc8eabd1a52bbde258822c434fb98710df204d04 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Mon, 19 Jan 2026 09:03:48 +0100 Subject: [PATCH 11/23] Configurable annotation printing --- .../wasm-3.0/1.3-syntax.instructions.spectec | 1 - spectec/src/exe-spectec/main.ml | 1 + spectec/src/frontend/det.ml | 4 +-- spectec/src/frontend/elab.ml | 12 ++++--- spectec/src/il/debug.ml | 6 ++-- spectec/src/il/print.ml | 34 +++++++++++-------- spectec/src/il/print.mli | 8 +++-- 7 files changed, 39 insertions(+), 27 deletions(-) diff --git a/specification/wasm-3.0/1.3-syntax.instructions.spectec b/specification/wasm-3.0/1.3-syntax.instructions.spectec index d6622bf913..da6475cfa9 100644 --- a/specification/wasm-3.0/1.3-syntax.instructions.spectec +++ b/specification/wasm-3.0/1.3-syntax.instructions.spectec @@ -384,7 +384,6 @@ syntax instr/vec hint(desc "vector instruction") = ... | VEXTRACT_LANE shape sx? laneidx hint(show ##%.EXTRACT_LANE %) hint(show ##%.EXTRACT_LANE#_#% %) hint(macro "VEXTRACT_LANE") -- if sx? = eps <=> $lanetype(shape) <- I32 I64 F32 F64 | VREPLACE_LANE shape laneidx hint(show ##%.REPLACE_LANE %) hint(macro "VREPLACE_LANE") - | ... ;; Expressions diff --git a/spectec/src/exe-spectec/main.ml b/spectec/src/exe-spectec/main.ml index d17c1baa5c..04b317f460 100644 --- a/spectec/src/exe-spectec/main.ml +++ b/spectec/src/exe-spectec/main.ml @@ -152,6 +152,7 @@ let argspec = Arg.align ( "--print-all-il", Arg.Set print_all_il, " Print IL after each step"; "--print-al", Arg.Set print_al, " Print al"; "--print-al-o", Arg.Set_string print_al_o, " Print al with given name"; + "--print-il-notes", Arg.Set Il.Print.print_notes, " Print IL with type annotations"; "--print-no-pos", Arg.Set print_no_pos, " Suppress position info in output"; ] @ List.map pass_argspec all_passes @ [ "--all-passes", Arg.Unit (fun () -> List.iter enable_pass all_passes)," Run all passes"; diff --git a/spectec/src/frontend/det.ml b/spectec/src/frontend/det.ml index 9e269982d9..a78589ebf7 100644 --- a/spectec/src/frontend/det.ml +++ b/spectec/src/frontend/det.ml @@ -108,7 +108,7 @@ and det_idx_iter iter = and det_idx_iterexp s1 (it, xes) = s1 -- free_list bound_varid (List.map fst xes) ++ det_idx_iter it ++ - det_list det_idx_exp (List.filter_map + det_list det_exp (List.filter_map (fun (x, e) -> if Set.mem x.it s1.varid then Some e else None) xes) @@ -144,7 +144,7 @@ and det_quant_expfield (_, as_, e) = and det_quant_iterexp s1 (it, xes) = s1 -- free_list bound_varid (List.map fst xes) ++ det_quant_iter it ++ - det_list det_quant_exp (List.filter_map + det_list det_exp (List.filter_map (fun (x, e) -> if Set.mem x.it s1.varid then Some e else None) xes) and det_quant_path p = diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index 78f6b68b7d..c471325702 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -1817,7 +1817,7 @@ and elab_exp_list env (es : exp list) (xts : (id * Il.typ) list) at and elab_expfields env tid (efs : expfield list) (tfs : Il.typfield list) (t0 : Il.typ) at : Il.expfield list attempt = Debug.(log_in_at "el.elab_expfields" at - (fun _ -> fmt "{%s} : {%s} = %s" (list el_expfield efs) (list (il_typfield `H) tfs) (il_typ t0)) + (fun _ -> fmt "{%s} : {%s} = %s" (list el_expfield efs) (list il_typfield tfs) (il_typ t0)) ); assert (valid_tid tid); match efs, tfs with @@ -2166,7 +2166,7 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = | Il.TupT [], Il.VarT _ when is_empty_notation_typ env t2' -> Ok e'.it - | Il.VarT _, Il.VarT _ -> + | Il.VarT (x1, _), Il.VarT (x2, _) -> (match expand_def env t1', expand_def env t2' with | (Il.VariantT [mixop1, (qs1, tC1, _), _], NoDots), (Il.VariantT [mixop2, (qs2, tC2, _), _], NoDots) -> @@ -2207,8 +2207,12 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = ) | (Il.VariantT tcs1, dots1), (Il.VariantT tcs2, dots2) -> - if dots1 = Dots || dots2 = Dots then - error e'.at "used variant type is only partially defined at this point"; + if dots1 = Dots then + error e'.at ("used variant type `" ^ x1.it ^ + "` is only partially defined at this point") + else if dots2 = Dots then + error e'.at ("used variant type `" ^ x2.it ^ + "` is only partially defined at this point"); let* () = (* Shallow breadth subtyping on variants *) match diff --git a/spectec/src/il/debug.ml b/spectec/src/il/debug.ml index d19d0cfcfd..f350559426 100644 --- a/spectec/src/il/debug.ml +++ b/spectec/src/il/debug.ml @@ -9,9 +9,9 @@ let il_mixop = string_of_mixop let il_iter = string_of_iter let il_typ = string_of_typ let il_typbind (x, t) = "(" ^ il_id x ^ ":" ^ il_typ t ^ ")" -let il_typfield = string_of_typfield -let il_typcase = string_of_typcase -let il_deftyp = string_of_deftyp `H +let il_typfield = string_of_typfield ~layout: `H +let il_typcase = string_of_typcase ~layout: `H +let il_deftyp = string_of_deftyp ~layout: `H let il_exp = string_of_exp let il_sym = string_of_sym let il_prod = string_of_prod diff --git a/spectec/src/il/print.ml b/spectec/src/il/print.ml index 36fb9fe07d..38c539a6ef 100644 --- a/spectec/src/il/print.ml +++ b/spectec/src/il/print.ml @@ -10,6 +10,8 @@ let concat = String.concat let prefix s f x = s ^ f x let space f x = " " ^ f x ^ " " +let print_notes = ref false + (* Identifiers *) @@ -17,7 +19,7 @@ let is_alphanum = function | '0'..'9' | 'A'..'Z' | 'a'..'z' - | '_' | '.' | '\'' -> true + | '_' | '.' | '\'' | '#' -> true | _ -> false let string_of_id x = @@ -81,25 +83,25 @@ and string_of_typbind (x, t) = | "_" -> string_of_typ t | _ -> string_of_id x ^ " : " ^ string_of_typ t -and string_of_deftyp layout dt = +and string_of_deftyp ?(layout = `H) dt = match dt.it with | AliasT t -> string_of_typ t | StructT tfs when layout = `H -> - "{" ^ concat ", " (List.map (string_of_typfield layout) tfs) ^ "}" + "{" ^ concat ", " (List.map (string_of_typfield ~layout) tfs) ^ "}" | StructT tfs -> - "\n{\n " ^ concat ",\n " (List.map (string_of_typfield layout) tfs) ^ "\n}" + "\n{\n " ^ concat ",\n " (List.map (string_of_typfield ~layout) tfs) ^ "\n}" | VariantT tcs when layout = `H -> - "| " ^ concat " | " (List.map (string_of_typcase layout) tcs) + "| " ^ concat " | " (List.map (string_of_typcase ~layout) tcs) | VariantT tcs -> - "\n | " ^ concat "\n | " (List.map (string_of_typcase layout) tcs) + "\n | " ^ concat "\n | " (List.map (string_of_typcase ~layout) tcs) -and string_of_typfield layout (atom, (qs, t, prems), _hints) = +and string_of_typfield ?(layout = `H) (atom, (qs, t, prems), _hints) = string_of_mixop (Mixop.Atom atom) ^ string_of_quants qs ^ " " ^ string_of_typ t ^ if layout = `H && prems <> [] then " -- .." else concat "" (List.map (prefix "\n -- " string_of_prem) prems) -and string_of_typcase layout (op, (qs, t, prems), _hints) = +and string_of_typcase ?(layout = `H) (op, (qs, t, prems), _hints) = string_of_mixop op ^ string_of_quants qs ^ string_of_typ_args t ^ if layout = `H && prems <> [] then " -- .." else concat "" (List.map (prefix "\n -- " string_of_prem) prems) @@ -108,8 +110,8 @@ and string_of_typcase layout (op, (qs, t, prems), _hints) = (* Expressions *) and string_of_exp e = -"(" ^ ( - match e.it with + (if !print_notes then "(" else "") ^ + (match e.it with | VarE x -> string_of_id x | BoolE b -> string_of_bool b | NumE n -> Num.to_string n @@ -158,7 +160,8 @@ and string_of_exp e = "(" ^ string_of_exp e1 ^ " : " ^ string_of_numtyp nt1 ^ " <:> " ^ string_of_numtyp nt2 ^ ")" | SubE (e1, t1, t2) -> "(" ^ string_of_exp e1 ^ " : " ^ string_of_typ t1 ^ " <: " ^ string_of_typ t2 ^ ")" -) ^ ")@[" ^ string_of_typ e.note ^ "]" + ) ^ + (if !print_notes then ")@[" ^ string_of_typ e.note ^ "]" else "") and string_of_exp_args e = match e.it with @@ -175,7 +178,8 @@ and string_of_expfield (atom, as_, e) = " " ^ string_of_exp e and string_of_path p = - match p.it with + (if !print_notes then "(" else "") ^ + (match p.it with | RootP -> "" | IdxP (p1, e) -> string_of_path p1 ^ "[" ^ string_of_exp e ^ "]" @@ -188,6 +192,8 @@ and string_of_path p = string_of_path p1 ^ "." ^ string_of_mixop (Mixop.Atom atom) ^ "_" ^ string_of_typ_name p1.note ^ string_of_quantargs as_ + ) ^ + (if !print_notes then ")@[" ^ string_of_typ p.note ^ "]" else "") and string_of_iterexp (iter, xes) = string_of_iter iter ^ "{" ^ String.concat ", " @@ -276,7 +282,7 @@ let string_of_inst ?(suppress_pos = false) x inst = | InstD (qs, as_, dt) -> "\n" ^ region_comment ~suppress_pos " " inst.at ^ " syntax " ^ string_of_id x ^ string_of_quants qs ^ string_of_args as_ ^ " = " ^ - string_of_deftyp `V dt ^ "\n" + string_of_deftyp ~layout: `V dt ^ "\n" let string_of_rule ?(suppress_pos = false) rule = match rule.it with @@ -308,7 +314,7 @@ let rec string_of_def ?(suppress_pos = false) d = match d.it with | TypD (x, _ps, [{it = InstD (ps, as_, dt); _}]) -> pre ^ "syntax " ^ string_of_id x ^ string_of_params ps ^ string_of_args as_ ^ " = " ^ - string_of_deftyp `V dt ^ "\n" + string_of_deftyp ~layout: `V dt ^ "\n" | TypD (x, ps, insts) -> pre ^ "syntax " ^ string_of_id x ^ string_of_params ps ^ concat "\n" (List.map (string_of_inst ~suppress_pos x) insts) ^ "\n" diff --git a/spectec/src/il/print.mli b/spectec/src/il/print.mli index de38d7639b..c7289a6da5 100644 --- a/spectec/src/il/print.mli +++ b/spectec/src/il/print.mli @@ -20,12 +20,14 @@ val string_of_param : param -> string val string_of_params : param list -> string val string_of_quant : quant -> string val string_of_quants : quant list -> string -val string_of_typfield : [`H | `V] -> typfield -> string -val string_of_typcase : [`H | `V] -> typcase -> string -val string_of_deftyp : [`H | `V] -> deftyp -> string +val string_of_typfield : ?layout: [`H | `V] -> typfield -> string +val string_of_typcase : ?layout: [`H | `V] -> typcase -> string +val string_of_deftyp : ?layout: [`H | `V] -> deftyp -> string val string_of_def : ?suppress_pos: bool -> def -> string val string_of_rule : ?suppress_pos: bool -> rule -> string val string_of_prod : ?suppress_pos: bool -> prod -> string val string_of_inst : ?suppress_pos: bool -> id -> inst -> string val string_of_clause : ?suppress_pos: bool -> id -> clause -> string val string_of_script : ?suppress_pos: bool -> script -> string + +val print_notes : bool ref From 354f700154a64d8553754ad41f76a2addf7783a5 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Mon, 19 Jan 2026 10:01:16 +0100 Subject: [PATCH 12/23] WIP6 (Wasm 3.0 validates again ignoring quant equality) --- .../wasm-3.0/1.3-syntax.instructions.spectec | 1 + .../wasm-3.0/6.1-text.values.spectec | 2 +- spectec/src/frontend/det.ml | 10 ++++++++-- spectec/src/frontend/elab.ml | 15 +++++++------- spectec/src/il/eq.ml | 20 +++++++++---------- 5 files changed, 28 insertions(+), 20 deletions(-) diff --git a/specification/wasm-3.0/1.3-syntax.instructions.spectec b/specification/wasm-3.0/1.3-syntax.instructions.spectec index da6475cfa9..d6622bf913 100644 --- a/specification/wasm-3.0/1.3-syntax.instructions.spectec +++ b/specification/wasm-3.0/1.3-syntax.instructions.spectec @@ -384,6 +384,7 @@ syntax instr/vec hint(desc "vector instruction") = ... | VEXTRACT_LANE shape sx? laneidx hint(show ##%.EXTRACT_LANE %) hint(show ##%.EXTRACT_LANE#_#% %) hint(macro "VEXTRACT_LANE") -- if sx? = eps <=> $lanetype(shape) <- I32 I64 F32 F64 | VREPLACE_LANE shape laneidx hint(show ##%.REPLACE_LANE %) hint(macro "VREPLACE_LANE") + | ... ;; Expressions diff --git a/specification/wasm-3.0/6.1-text.values.spectec b/specification/wasm-3.0/6.1-text.values.spectec index 41d8a00e21..cc1541b6e3 100644 --- a/specification/wasm-3.0/6.1-text.values.spectec +++ b/specification/wasm-3.0/6.1-text.values.spectec @@ -154,7 +154,7 @@ syntax I = idctxt def $concat_idctxt(idctxt*) : idctxt hint(show (++) %) def $concat_idctxt(eps) = {} -def $concat_idctxt(I I') = I ++ $concat_idctxt(I'*) +def $concat_idctxt(I I'*) = I ++ $concat_idctxt(I'*) relation Idctxt_ok: |- idctxt : OK diff --git a/spectec/src/frontend/det.ml b/spectec/src/frontend/det.ml index a78589ebf7..00cb5ca031 100644 --- a/spectec/src/frontend/det.ml +++ b/spectec/src/frontend/det.ml @@ -98,7 +98,8 @@ and det_idx_exp e = | IdxE (e1, e2) -> det_quant_exp e1 ++ det_exp e2 | _ -> det_quant_exp e -and det_idx_expfield (_, _, e) = det_idx_exp e +and det_idx_expfield (_, as_, e) = + det_list det_quant_arg as_ ++ det_idx_exp e and det_idx_iter iter = match iter with @@ -164,8 +165,13 @@ and det_quant_iter iter = (* Grammars *) and det_sym g = + Il.Debug.(log_at "il.det_sym" g.at + (fun _ -> fmt "%s" (il_sym g)) + (fun s -> String.concat ", " (Set.elements s.varid)) + ) @@ fun _ -> match g.it with - | VarG _ | NumG _ | TextG _ | EpsG -> empty + | VarG (_x, as_) -> det_list det_arg as_ + | NumG _ | TextG _ | EpsG -> empty | SeqG gs | AltG gs -> det_list det_sym gs | RangeG (g1, g2) -> det_sym g1 ++ det_sym g2 | IterG (g1, ite) -> det_iterexp (det_sym g1) ite diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index c471325702..4e5ce4610c 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -500,6 +500,7 @@ let infer_quants env env' dims det ps' as' ts' es' gs' prs' at : Il.quant list = (fun _ -> Printf.sprintf "\n as'=[%s]" Il.Debug.(list il_arg as') ^ Printf.sprintf "\n es'=[%s]" Il.Debug.(list il_exp es') ^ +Printf.sprintf "\n gs'=[%s]" Il.Debug.(list il_sym gs') ^ Printf.sprintf "\n prs'=[%s]" Il.Debug.(list il_prem prs') ^ "\n locals=" ^ (Map.fold (fun id _ ids -> @@ -2207,12 +2208,6 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = ) | (Il.VariantT tcs1, dots1), (Il.VariantT tcs2, dots2) -> - if dots1 = Dots then - error e'.at ("used variant type `" ^ x1.it ^ - "` is only partially defined at this point") - else if dots2 = Dots then - error e'.at ("used variant type `" ^ x2.it ^ - "` is only partially defined at this point"); let* () = (* Shallow breadth subtyping on variants *) match @@ -2230,6 +2225,12 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = | Fail (Trace (_, msg, _) :: _) -> fail_typ2 env e'.at phrase t1 t2 (", " ^ msg) | Fail [] -> assert false in + if dots1 = Dots then + error e'.at ("used variant type `" ^ x1.it ^ + "` is only partially defined at this point") + else if dots2 = Dots then + error e'.at ("used variant type `" ^ x2.it ^ + "` is only partially defined at this point"); Ok (Il.SubE (e', t1', t2')) | _, _ -> @@ -2758,7 +2759,7 @@ Printf.printf "dims \\ %s = %s\n%!" (Debug.domain outer_dims) (Debug.(list Fun.i let g1' = Dim.annot_sym dims g1' in let g2' = Dim.annot_sym dims g2' in let prems' = List.map (Dim.annot_prem dims) prems' in - let det = Det.(det_sym g1' ++ det_list det_prem prems') in + let det = Det.(det_sym g1' ++ det_sym g2' ++ det_list det_prem prems') in ignore (infer_quants env env' dims det [] [] [] [] [g1'; g2'] prems' prod.at); [] (* TODO(4, rossberg): translate equiv grammars properly *) (* diff --git a/spectec/src/il/eq.ml b/spectec/src/il/eq.ml index e4400ad897..91787ad3bc 100644 --- a/spectec/src/il/eq.ml +++ b/spectec/src/il/eq.ml @@ -86,26 +86,26 @@ and eq_exp e1 e2 = | TupE es1, TupE es2 | ListE es1, ListE es2 -> eq_list eq_exp es1 es2 | StrE efs1, StrE efs2 -> eq_list eq_expfield efs1 efs2 - | DotE (e11, atom1, as1), DotE (e21, atom2, as2) -> - eq_exp e11 e21 && eq_atom atom1 atom2 && eq_list eq_arg as1 as2 - | UncaseE (e1, op1, as1), UncaseE (e2, op2, as2) -> - eq_mixop op1 op2 && eq_exp e1 e2 && eq_list eq_arg as1 as2 + | DotE (e11, atom1, _as1), DotE (e21, atom2, _as2) -> + eq_exp e11 e21 && eq_atom atom1 atom2 (*&& eq_list eq_arg as1 as2*) + | UncaseE (e1, op1, _as1), UncaseE (e2, op2, _as2) -> + eq_mixop op1 op2 && eq_exp e1 e2 (*&& eq_list eq_arg as1 as2*) | CallE (x1, as1), CallE (x2, as2) -> eq_id x1 x2 && eq_list eq_arg as1 as2 | IterE (e11, iter1), IterE (e21, iter2) -> eq_exp e11 e21 && eq_iterexp iter1 iter2 | OptE eo1, OptE eo2 -> eq_opt eq_exp eo1 eo2 | ProjE (e1, i1), ProjE (e2, i2) -> eq_exp e1 e2 && i1 = i2 | TheE e1, TheE e2 -> eq_exp e1 e2 - | CaseE (op1, as1, e1), CaseE (op2, as2, e2) -> - eq_mixop op1 op2 && eq_list eq_arg as1 as2 && eq_exp e1 e2 + | CaseE (op1, _as1, e1), CaseE (op2, _as2, e2) -> + eq_mixop op1 op2 (*&& eq_list eq_arg as1 as2*) && eq_exp e1 e2 | CvtE (e1, nt11, nt12), CvtE (e2, nt21, nt22) -> eq_exp e1 e2 && nt11 = nt21 && nt12 = nt22 | SubE (e1, t11, t12), SubE (e2, t21, t22) -> eq_exp e1 e2 && eq_typ t11 t21 && eq_typ t12 t22 | _, _ -> e1.it = e2.it -and eq_expfield (atom1, as1, e1) (atom2, as2, e2) = - eq_atom atom1 atom2 && eq_list eq_arg as1 as2 && eq_exp e1 e2 +and eq_expfield (atom1, _as1, e1) (atom2, _as2, e2) = + eq_atom atom1 atom2 (*&& eq_list eq_arg as1 as2*) && eq_exp e1 e2 and eq_path p1 p2 = match p1.it, p2.it with @@ -113,8 +113,8 @@ and eq_path p1 p2 = | IdxP (p11, e1), IdxP (p21, e2) -> eq_path p11 p21 && eq_exp e1 e2 | SliceP (p11, e11, e12), SliceP (p21, e21, e22) -> eq_path p11 p21 && eq_exp e11 e21 && eq_exp e12 e22 - | DotP (p11, atom1, as1), DotP (p21, atom2, as2) -> - eq_path p11 p21 && eq_atom atom1 atom2 && eq_list eq_arg as1 as2 + | DotP (p11, atom1, _as1), DotP (p21, atom2, _as2) -> + eq_path p11 p21 && eq_atom atom1 atom2 (*&& eq_list eq_arg as1 as2*) | _, _ -> p1.it = p2.it and eq_iterexp (iter1, xes1) (iter2, xes2) = From 6a11bce4322c6d75db0120a8ea6bb516febd7f78 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Mon, 19 Jan 2026 10:50:30 +0100 Subject: [PATCH 13/23] WIP7 (all frontend tests pass) --- spectec/src/frontend/dim.ml | 7 +- spectec/src/il/iter.ml | 13 +- spectec/test-frontend/TEST.md | 121790 +++++++++++++++++++++++++- spectec/test-frontend/test.spectec | 3 + 4 files changed, 117950 insertions(+), 3863 deletions(-) diff --git a/spectec/src/frontend/dim.ml b/spectec/src/frontend/dim.ml index ca0fe26137..c950598883 100644 --- a/spectec/src/frontend/dim.ml +++ b/spectec/src/frontend/dim.ml @@ -96,7 +96,12 @@ let check_varid dims ctx mode id = dims := Map.add_to_list id.it (id.at, ctx, mode) !dims let uncheck_varid dims id = - dims := Map.add id.it (List.tl (Map.find id.it !dims)) !dims + let ctxs' = List.tl (Map.find id.it !dims) in + dims := + if ctxs' = [] then + Map.remove id.it !dims + else + Map.add id.it ctxs' !dims let rec check_iter dims ctx it = match it with diff --git a/spectec/src/il/iter.ml b/spectec/src/il/iter.ml index 7877ec3429..f872202931 100644 --- a/spectec/src/il/iter.ml +++ b/spectec/src/il/iter.ml @@ -95,20 +95,23 @@ let hints = list hint let rec iter it = match it with | Opt | List | List1 -> () - | ListN (e, xo) -> exp e; opt varid xo + | ListN _ -> assert false and iterexp : 'a. ('a -> unit) -> 'a -> _ -> unit = fun f body (it, xes) -> - let xts1 = + let eo, xo, xts1 = match it with - | ListN (_, Some x) -> [(x, NumT `NatT $ x.at)] - | _ -> [] + | ListN (e, Some x) -> Some e, Some x, [(x, NumT `NatT $ x.at)] + | ListN (e, None) -> Some e, None, [] + | _ -> None, None, [] in let xts = xts1 @ List.map (fun (x, e) -> x, e.note) xes in let old_scopes = List.map (fun (x, t) -> scope_enter x t) xts in f body; + opt varid xo; + list (pair varid ignore) xes; List.iter2 (fun (x, _) scope -> scope_exit x scope) (List.rev xts) (List.rev old_scopes); - iter it; list (pair varid exp) xes + opt exp eo; list (pair ignore exp) xes (* Types *) diff --git a/spectec/test-frontend/TEST.md b/spectec/test-frontend/TEST.md index 1daf35ebd3..b0f48b7235 100644 --- a/spectec/test-frontend/TEST.md +++ b/spectec/test-frontend/TEST.md @@ -2,6 +2,3550 @@ ```sh $ (../src/exe-spectec/main.exe test.spectec -o test.tex && cat test.tex) +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id _] not free +[visit_id _] no dims +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id _] not free +[visit_id _] no dims +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +[check_dims] testmixfix +DecD testmixfix(testmixfix : testmixfix) : nat* +[visit_id testmixfix] not free +[check_dims] nat +[visit_exp `{%}`_testmixfix(nat*{nat <- `nat*`})] +[visit_exp (nat*{nat <- `nat*`})] +[visit_exp nat*{nat <- `nat*`}] +[scope_enter nat] +[visit_exp nat] +[visit_id nat] not free +[visit_id nat] not free +[scope_exit nat] +[visit_exp `nat*`] +[visit_id nat*] no dims +[visit_id nat*] +[visit_exp nat*{nat <- `nat*`}] +[scope_enter nat] +[visit_exp nat] +[visit_id nat] not free +[visit_id nat] not free +[scope_exit nat] +[visit_exp `nat*`] +[visit_id nat*] not free +[visit_id nat*] no dims +=> + ;; test.spectec + def $testmixfix{`nat*` : nat*}(`{%}`_testmixfix(nat*{nat <- `nat*`})) = nat*{nat <- `nat*`} +[check_dims] nat +[visit_exp `[%]`_testmixfix(nat*{nat <- `nat*`})] +[visit_exp (nat*{nat <- `nat*`})] +[visit_exp nat*{nat <- `nat*`}] +[scope_enter nat] +[visit_exp nat] +[visit_id nat] not free +[visit_id nat] not free +[scope_exit nat] +[visit_exp `nat*`] +[visit_id nat*] no dims +[visit_id nat*] +[visit_exp nat*{nat <- `nat*`}] +[scope_enter nat] +[visit_exp nat] +[visit_id nat] not free +[visit_id nat] not free +[scope_exit nat] +[visit_exp `nat*`] +[visit_id nat*] not free +[visit_id nat*] no dims +=> + ;; test.spectec + def $testmixfix{`nat*` : nat*}(`[%]`_testmixfix(nat*{nat <- `nat*`})) = nat*{nat <- `nat*`} +[check_dims] nat_1 nat_2 +[visit_exp `%->%`_testmixfix(nat_1, nat_2)] +[visit_exp (nat_1, nat_2)] +[visit_exp nat_1] +[visit_id nat_1] +[visit_exp nat_2] +[visit_id nat_2] +[visit_exp [nat_1 nat_2]] +[visit_exp nat_1] +[visit_id nat_1] not free +[visit_exp nat_2] +[visit_id nat_2] not free +=> + ;; test.spectec + def $testmixfix{nat_1 : nat, nat_2 : nat}(`%->%`_testmixfix(nat_1, nat_2)) = [nat_1 nat_2] +[check_dims] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id opt] no dims +[visit_id opt] +[visit_id _] not free +[visit_id _] no dims +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id O?] no dims +[visit_id O?] +[visit_id _] not free +[visit_id _] no dims +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id list] no dims +[visit_id list] +[visit_id _] not free +[visit_id _] no dims +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id L*] no dims +[visit_id L*] +[visit_id _] not free +[visit_id _] no dims +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id opt] no dims +[visit_id opt] +[visit_id _] not free +[visit_id _] no dims +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id O?] no dims +[visit_id O?] +[visit_id _] not free +[visit_id _] no dims +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id list] no dims +[visit_id list] +[visit_id _] not free +[visit_id _] no dims +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id L*] no dims +[visit_id L*] +[visit_id _] not free +[visit_id _] no dims +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +[check_dims] variant +DecD testemptyv1(variant : variant) : nat +[visit_id variant] not free +[check_dims] opt opt#1 +[visit_exp `V1`_variant{opt#1}(opt, 0)] +[visit_exp opt#1] +[visit_id opt#1] +[visit_exp (opt, 0)] +[visit_exp opt] +[visit_id opt] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv1{opt#1 : opt, opt : opt}(`V1`_variant{opt#1}(opt, 0)) = 0 +[check_dims] opt#3 +[visit_exp `V1`_variant{opt#3}(?(), 0)] +[visit_exp opt#3] +[visit_id opt#3] +[visit_exp (?(), 0)] +[visit_exp ?()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv1{opt#3 : opt}(`V1`_variant{opt#3}(?(), 0)) = 0 +[check_dims] opt#5 +[visit_exp `V1`_variant{opt#5}(?(), 0)] +[visit_exp opt#5] +[visit_id opt#5] +[visit_exp (?(), 0)] +[visit_exp ?()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv1{opt#5 : opt}(`V1`_variant{opt#5}(?(), 0)) = 0 +[check_dims] opt#7 +[visit_exp `V1`_variant{opt#7}(?(`O`_O), 0)] +[visit_exp opt#7] +[visit_id opt#7] +[visit_exp (?(`O`_O), 0)] +[visit_exp ?(`O`_O)] +[visit_exp `O`_O] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv1{opt#7 : opt}(`V1`_variant{opt#7}(?(`O`_O), 0)) = 0 +[check_dims] variant +DecD testemptyv2(variant : variant) : nat +[visit_id variant] not free +[check_dims] O?#1 +[visit_exp `V2`_variant{`O?#1`}(?(), 0)] +[visit_exp `O?#1`] +[visit_id O?#1] +[visit_exp (?(), 0)] +[visit_exp ?()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv2{`O?#1` : O?}(`V2`_variant{`O?#1`}(?(), 0)) = 0 +[check_dims] O?#3 +[visit_exp `V2`_variant{`O?#3`}(?(), 0)] +[visit_exp `O?#3`] +[visit_id O?#3] +[visit_exp (?(), 0)] +[visit_exp ?()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv2{`O?#3` : O?}(`V2`_variant{`O?#3`}(?(), 0)) = 0 +[check_dims] O?#5 +[visit_exp `V2`_variant{`O?#5`}(?(`O`_O), 0)] +[visit_exp `O?#5`] +[visit_id O?#5] +[visit_exp (?(`O`_O), 0)] +[visit_exp ?(`O`_O)] +[visit_exp `O`_O] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv2{`O?#5` : O?}(`V2`_variant{`O?#5`}(?(`O`_O), 0)) = 0 +[check_dims] variant +DecD testemptyv3(variant : variant) : nat +[visit_id variant] not free +[check_dims] +[visit_exp `V3`_variant(?(), 0)] +[visit_exp (?(), 0)] +[visit_exp ?()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv3(`V3`_variant(?(), 0)) = 0 +[check_dims] +[visit_exp `V3`_variant(?(), 0)] +[visit_exp (?(), 0)] +[visit_exp ?()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv3(`V3`_variant(?(), 0)) = 0 +[check_dims] +[visit_exp `V3`_variant(?(""), 0)] +[visit_exp (?(""), 0)] +[visit_exp ?("")] +[visit_exp ""] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv3(`V3`_variant(?(""), 0)) = 0 +[check_dims] variant +DecD testemptyv4(variant : variant) : nat +[visit_id variant] not free +[check_dims] list list#1 +[visit_exp `V4`_variant{list#1}(list, 0)] +[visit_exp list#1] +[visit_id list#1] +[visit_exp (list, 0)] +[visit_exp list] +[visit_id list] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv4{list#1 : list, list : list}(`V4`_variant{list#1}(list, 0)) = 0 +[check_dims] list#3 +[visit_exp `V4`_variant{list#3}([], 0)] +[visit_exp list#3] +[visit_id list#3] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv4{list#3 : list}(`V4`_variant{list#3}([], 0)) = 0 +[check_dims] list#5 +[visit_exp `V4`_variant{list#5}([], 0)] +[visit_exp list#5] +[visit_id list#5] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv4{list#5 : list}(`V4`_variant{list#5}([], 0)) = 0 +[check_dims] list#7 +[visit_exp `V4`_variant{list#7}([`L`_L], 0)] +[visit_exp list#7] +[visit_id list#7] +[visit_exp ([`L`_L], 0)] +[visit_exp [`L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv4{list#7 : list}(`V4`_variant{list#7}([`L`_L], 0)) = 0 +[check_dims] list#9 +[visit_exp `V4`_variant{list#9}([`L`_L `L`_L `L`_L], 0)] +[visit_exp list#9] +[visit_id list#9] +[visit_exp ([`L`_L `L`_L `L`_L], 0)] +[visit_exp [`L`_L `L`_L `L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv4{list#9 : list}(`V4`_variant{list#9}([`L`_L `L`_L `L`_L], 0)) = 0 +[check_dims] list#11 +[visit_exp `V4`_variant{list#11}([], 0)] +[visit_exp list#11] +[visit_id list#11] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv4{list#11 : list}(`V4`_variant{list#11}([], 0)) = 0 +[check_dims] list#13 +[visit_exp `V4`_variant{list#13}([`L`_L], 0)] +[visit_exp list#13] +[visit_id list#13] +[visit_exp ([`L`_L], 0)] +[visit_exp [`L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv4{list#13 : list}(`V4`_variant{list#13}([`L`_L], 0)) = 0 +[check_dims] list#15 +[visit_exp `V4`_variant{list#15}([`L`_L `L`_L `L`_L], 0)] +[visit_exp list#15] +[visit_id list#15] +[visit_exp ([`L`_L `L`_L `L`_L], 0)] +[visit_exp [`L`_L `L`_L `L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv4{list#15 : list}(`V4`_variant{list#15}([`L`_L `L`_L `L`_L], 0)) = 0 +[check_dims] variant +DecD testemptyv5(variant : variant) : nat +[visit_id variant] not free +[check_dims] L*#1 +[visit_exp `V5`_variant{`L*#1`}([], 0)] +[visit_exp `L*#1`] +[visit_id L*#1] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv5{`L*#1` : L*}(`V5`_variant{`L*#1`}([], 0)) = 0 +[check_dims] L*#3 +[visit_exp `V5`_variant{`L*#3`}([], 0)] +[visit_exp `L*#3`] +[visit_id L*#3] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv5{`L*#3` : L*}(`V5`_variant{`L*#3`}([], 0)) = 0 +[check_dims] L*#5 +[visit_exp `V5`_variant{`L*#5`}([`L`_L], 0)] +[visit_exp `L*#5`] +[visit_id L*#5] +[visit_exp ([`L`_L], 0)] +[visit_exp [`L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv5{`L*#5` : L*}(`V5`_variant{`L*#5`}([`L`_L], 0)) = 0 +[check_dims] L*#7 +[visit_exp `V5`_variant{`L*#7`}([`L`_L `L`_L `L`_L], 0)] +[visit_exp `L*#7`] +[visit_id L*#7] +[visit_exp ([`L`_L `L`_L `L`_L], 0)] +[visit_exp [`L`_L `L`_L `L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv5{`L*#7` : L*}(`V5`_variant{`L*#7`}([`L`_L `L`_L `L`_L], 0)) = 0 +[check_dims] L*#9 +[visit_exp `V5`_variant{`L*#9`}([], 0)] +[visit_exp `L*#9`] +[visit_id L*#9] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv5{`L*#9` : L*}(`V5`_variant{`L*#9`}([], 0)) = 0 +[check_dims] L*#11 +[visit_exp `V5`_variant{`L*#11`}([`L`_L], 0)] +[visit_exp `L*#11`] +[visit_id L*#11] +[visit_exp ([`L`_L], 0)] +[visit_exp [`L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv5{`L*#11` : L*}(`V5`_variant{`L*#11`}([`L`_L], 0)) = 0 +[check_dims] L*#13 +[visit_exp `V5`_variant{`L*#13`}([`L`_L `L`_L `L`_L], 0)] +[visit_exp `L*#13`] +[visit_id L*#13] +[visit_exp ([`L`_L `L`_L `L`_L], 0)] +[visit_exp [`L`_L `L`_L `L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv5{`L*#13` : L*}(`V5`_variant{`L*#13`}([`L`_L `L`_L `L`_L], 0)) = 0 +[check_dims] variant +DecD testemptyv6(variant : variant) : nat +[visit_id variant] not free +[check_dims] +[visit_exp `V6`_variant([], 0)] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv6(`V6`_variant([], 0)) = 0 +[check_dims] +[visit_exp `V6`_variant([], 0)] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv6(`V6`_variant([], 0)) = 0 +[check_dims] +[visit_exp `V6`_variant([""], 0)] +[visit_exp ([""], 0)] +[visit_exp [""]] +[visit_exp ""] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv6(`V6`_variant([""], 0)) = 0 +[check_dims] +[visit_exp `V6`_variant(["" ""], 0)] +[visit_exp (["" ""], 0)] +[visit_exp ["" ""]] +[visit_exp ""] +[visit_exp ""] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv6(`V6`_variant(["" ""], 0)) = 0 +[check_dims] +[visit_exp `V6`_variant([], 0)] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv6(`V6`_variant([], 0)) = 0 +[check_dims] +[visit_exp `V6`_variant([""], 0)] +[visit_exp ([""], 0)] +[visit_exp [""]] +[visit_exp ""] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv6(`V6`_variant([""], 0)) = 0 +[check_dims] +[visit_exp `V6`_variant(["" ""], 0)] +[visit_exp (["" ""], 0)] +[visit_exp ["" ""]] +[visit_exp ""] +[visit_exp ""] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyv6(`V6`_variant(["" ""], 0)) = 0 +[check_dims] notation1 +DecD testemptyn1(notation1 : notation1) : nat +[visit_id notation1] not free +[check_dims] opt opt#19 +[visit_exp `%%`_notation1{opt#19}(opt, 0)] +[visit_exp opt#19] +[visit_id opt#19] +[visit_exp (opt, 0)] +[visit_exp opt] +[visit_id opt] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn1{opt#19 : opt, opt : opt}(`%%`_notation1{opt#19}(opt, 0)) = 0 +[check_dims] opt#31 +[visit_exp `%%`_notation1{opt#31}(?(), 0)] +[visit_exp opt#31] +[visit_id opt#31] +[visit_exp (?(), 0)] +[visit_exp ?()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn1{opt#31 : opt}(`%%`_notation1{opt#31}(?(), 0)) = 0 +[check_dims] opt#37 +[visit_exp `%%`_notation1{opt#37}(?(), 0)] +[visit_exp opt#37] +[visit_id opt#37] +[visit_exp (?(), 0)] +[visit_exp ?()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn1{opt#37 : opt}(`%%`_notation1{opt#37}(?(), 0)) = 0 +[check_dims] opt#51 +[visit_exp `%%`_notation1{opt#51}(?(`O`_O), 0)] +[visit_exp opt#51] +[visit_id opt#51] +[visit_exp (?(`O`_O), 0)] +[visit_exp ?(`O`_O)] +[visit_exp `O`_O] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn1{opt#51 : opt}(`%%`_notation1{opt#51}(?(`O`_O), 0)) = 0 +[check_dims] notation2 +DecD testemptyn2(notation2 : notation2) : nat +[visit_id notation2] not free +[check_dims] O?#17 +[visit_exp `%%`_notation2{`O?#17`}(?(), 0)] +[visit_exp `O?#17`] +[visit_id O?#17] +[visit_exp (?(), 0)] +[visit_exp ?()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn2{`O?#17` : O?}(`%%`_notation2{`O?#17`}(?(), 0)) = 0 +[check_dims] O?#23 +[visit_exp `%%`_notation2{`O?#23`}(?(), 0)] +[visit_exp `O?#23`] +[visit_id O?#23] +[visit_exp (?(), 0)] +[visit_exp ?()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn2{`O?#23` : O?}(`%%`_notation2{`O?#23`}(?(), 0)) = 0 +[check_dims] O?#37 +[visit_exp `%%`_notation2{`O?#37`}(?(`O`_O), 0)] +[visit_exp `O?#37`] +[visit_id O?#37] +[visit_exp (?(`O`_O), 0)] +[visit_exp ?(`O`_O)] +[visit_exp `O`_O] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn2{`O?#37` : O?}(`%%`_notation2{`O?#37`}(?(`O`_O), 0)) = 0 +[check_dims] notation3 +DecD testemptyn3(notation3 : notation3) : nat +[visit_id notation3] not free +[check_dims] +[visit_exp `%%`_notation3(?(), 0)] +[visit_exp (?(), 0)] +[visit_exp ?()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn3(`%%`_notation3(?(), 0)) = 0 +[check_dims] +[visit_exp `%%`_notation3(?(), 0)] +[visit_exp (?(), 0)] +[visit_exp ?()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn3(`%%`_notation3(?(), 0)) = 0 +[check_dims] +[visit_exp `%%`_notation3(?(""), 0)] +[visit_exp (?(""), 0)] +[visit_exp ?("")] +[visit_exp ""] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn3(`%%`_notation3(?(""), 0)) = 0 +[check_dims] notation4 +DecD testemptyn4(notation4 : notation4) : nat +[visit_id notation4] not free +[check_dims] list list#27 +[visit_exp `%%`_notation4{list#27}(list, 0)] +[visit_exp list#27] +[visit_id list#27] +[visit_exp (list, 0)] +[visit_exp list] +[visit_id list] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn4{list#27 : list, list : list}(`%%`_notation4{list#27}(list, 0)) = 0 +[check_dims] list#39 +[visit_exp `%%`_notation4{list#39}([], 0)] +[visit_exp list#39] +[visit_id list#39] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn4{list#39 : list}(`%%`_notation4{list#39}([], 0)) = 0 +[check_dims] list#45 +[visit_exp `%%`_notation4{list#45}([], 0)] +[visit_exp list#45] +[visit_id list#45] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn4{list#45 : list}(`%%`_notation4{list#45}([], 0)) = 0 +[check_dims] list#59 +[visit_exp `%%`_notation4{list#59}([`L`_L], 0)] +[visit_exp list#59] +[visit_id list#59] +[visit_exp ([`L`_L], 0)] +[visit_exp [`L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn4{list#59 : list}(`%%`_notation4{list#59}([`L`_L], 0)) = 0 +[check_dims] list#71 +[visit_exp `%%`_notation4{list#71}([`L`_L `L`_L `L`_L], 0)] +[visit_exp list#71] +[visit_id list#71] +[visit_exp ([`L`_L `L`_L `L`_L], 0)] +[visit_exp [`L`_L `L`_L `L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn4{list#71 : list}(`%%`_notation4{list#71}([`L`_L `L`_L `L`_L], 0)) = 0 +[check_dims] list#83 +[visit_exp `%%`_notation4{list#83}([], 0)] +[visit_exp list#83] +[visit_id list#83] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn4{list#83 : list}(`%%`_notation4{list#83}([], 0)) = 0 +[check_dims] list#95 +[visit_exp `%%`_notation4{list#95}([`L`_L], 0)] +[visit_exp list#95] +[visit_id list#95] +[visit_exp ([`L`_L], 0)] +[visit_exp [`L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn4{list#95 : list}(`%%`_notation4{list#95}([`L`_L], 0)) = 0 +[check_dims] list#107 +[visit_exp `%%`_notation4{list#107}([`L`_L `L`_L `L`_L], 0)] +[visit_exp list#107] +[visit_id list#107] +[visit_exp ([`L`_L `L`_L `L`_L], 0)] +[visit_exp [`L`_L `L`_L `L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn4{list#107 : list}(`%%`_notation4{list#107}([`L`_L `L`_L `L`_L], 0)) = 0 +[check_dims] notation5 +DecD testemptyn5(notation5 : notation5) : nat +[visit_id notation5] not free +[check_dims] L*#25 +[visit_exp `%%`_notation5{`L*#25`}([], 0)] +[visit_exp `L*#25`] +[visit_id L*#25] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn5{`L*#25` : L*}(`%%`_notation5{`L*#25`}([], 0)) = 0 +[check_dims] L*#31 +[visit_exp `%%`_notation5{`L*#31`}([], 0)] +[visit_exp `L*#31`] +[visit_id L*#31] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn5{`L*#31` : L*}(`%%`_notation5{`L*#31`}([], 0)) = 0 +[check_dims] L*#45 +[visit_exp `%%`_notation5{`L*#45`}([`L`_L], 0)] +[visit_exp `L*#45`] +[visit_id L*#45] +[visit_exp ([`L`_L], 0)] +[visit_exp [`L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn5{`L*#45` : L*}(`%%`_notation5{`L*#45`}([`L`_L], 0)) = 0 +[check_dims] L*#57 +[visit_exp `%%`_notation5{`L*#57`}([`L`_L `L`_L `L`_L], 0)] +[visit_exp `L*#57`] +[visit_id L*#57] +[visit_exp ([`L`_L `L`_L `L`_L], 0)] +[visit_exp [`L`_L `L`_L `L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn5{`L*#57` : L*}(`%%`_notation5{`L*#57`}([`L`_L `L`_L `L`_L], 0)) = 0 +[check_dims] L*#69 +[visit_exp `%%`_notation5{`L*#69`}([], 0)] +[visit_exp `L*#69`] +[visit_id L*#69] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn5{`L*#69` : L*}(`%%`_notation5{`L*#69`}([], 0)) = 0 +[check_dims] L*#81 +[visit_exp `%%`_notation5{`L*#81`}([`L`_L], 0)] +[visit_exp `L*#81`] +[visit_id L*#81] +[visit_exp ([`L`_L], 0)] +[visit_exp [`L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn5{`L*#81` : L*}(`%%`_notation5{`L*#81`}([`L`_L], 0)) = 0 +[check_dims] L*#93 +[visit_exp `%%`_notation5{`L*#93`}([`L`_L `L`_L `L`_L], 0)] +[visit_exp `L*#93`] +[visit_id L*#93] +[visit_exp ([`L`_L `L`_L `L`_L], 0)] +[visit_exp [`L`_L `L`_L `L`_L]] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp `L`_L] +[visit_exp ()] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn5{`L*#93` : L*}(`%%`_notation5{`L*#93`}([`L`_L `L`_L `L`_L], 0)) = 0 +[check_dims] notation6 +DecD testemptyn6(notation6 : notation6) : nat +[visit_id notation6] not free +[check_dims] +[visit_exp `%%`_notation6([], 0)] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn6(`%%`_notation6([], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation6([], 0)] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn6(`%%`_notation6([], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation6([""], 0)] +[visit_exp ([""], 0)] +[visit_exp [""]] +[visit_exp ""] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn6(`%%`_notation6([""], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation6(["" "" ""], 0)] +[visit_exp (["" "" ""], 0)] +[visit_exp ["" "" ""]] +[visit_exp ""] +[visit_exp ""] +[visit_exp ""] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn6(`%%`_notation6(["" "" ""], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation6([], 0)] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn6(`%%`_notation6([], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation6([""], 0)] +[visit_exp ([""], 0)] +[visit_exp [""]] +[visit_exp ""] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn6(`%%`_notation6([""], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation6(["" "" ""], 0)] +[visit_exp (["" "" ""], 0)] +[visit_exp ["" "" ""]] +[visit_exp ""] +[visit_exp ""] +[visit_exp ""] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn6(`%%`_notation6(["" "" ""], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation6([], 0)] +[visit_exp ([], 0)] +[visit_exp []] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn6(`%%`_notation6([], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation6([""], 0)] +[visit_exp ([""], 0)] +[visit_exp [""]] +[visit_exp ""] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn6(`%%`_notation6([""], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation6(["" "" ""], 0)] +[visit_exp (["" "" ""], 0)] +[visit_exp ["" "" ""]] +[visit_exp ""] +[visit_exp ""] +[visit_exp ""] +[visit_exp 0] +[visit_exp 0] +=> + ;; test.spectec + def $testemptyn6(`%%`_notation6(["" "" ""], 0)) = 0 +[check_dims] _ +DecD fnest(nat**) : nat* +[visit_id _] not free +[check_dims] j k l n +[visit_exp n^(i + ;; test.spectec + def $fnest{i : nat, j : nat, `k*` : nat*, `n**` : nat**, `l*` : nat*}(n^(i + ;; test.spectec + def $f{syntax X, x : X}(syntax X, x) = x +[check_dims] X Y +DecD g(def $h(syntax X, X : X) : X, syntax Y, Y : Y) : Y +[visit_id X] not free +[visit_id Y] not free +[check_dims] y +[visit_exp y] +[visit_id y] +[visit_exp $h(syntax Y, y)] +[visit_exp y] +[visit_id y] not free +=> + ;; test.spectec + def $g{def $h(syntax X, X : X) : X, syntax Y, y : Y}(def $h, syntax Y, y) = $h(syntax Y, y) +[check_dims] +DecD x : nat +[check_dims] +[visit_exp ($g(def $f, syntax nat, 1) + $g(def $f, syntax nat, 2))] +[visit_exp $g(def $f, syntax nat, 1)] +[visit_exp 1] +[visit_exp $g(def $f, syntax nat, 2)] +[visit_exp 2] +=> + ;; test.spectec + def $x = ($g(def $f, syntax nat, 1) + $g(def $f, syntax nat, 2)) +[check_dims] +[check_dims] +[check_dims] int +DecD pppp(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD pppm(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD ppmp(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD ppmm(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD pmpp(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD pmpm(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD pmmp(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD pmmm(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD mppp(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD mppm(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD mpmp(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD mpmm(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD mmpp(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD mmpm(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD mmmp(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] int +DecD mmmm(int : int, int : int) : int +[visit_id int] not free +[visit_id int] not free +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $pppp{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $pppp{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $pppm{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $pppm{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $ppmp{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $ppmp{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $ppmm{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $ppmm{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $pmpp{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $pmpp{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $pmpm{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $pmpm{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $pmmp{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $pmmp{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $pmmm{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $pmmm{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mppp{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mppp{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mppm{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mppm{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mpmp{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mpmp{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mpmm{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mpmm{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mmpp{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mmpp{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mmpm{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mmpm{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mmmp{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mmmp{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] +[visit_exp - (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp - (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mmmm{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) +[check_dims] m n +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] +[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] +[visit_exp + (n : nat <:> int)] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp + (m : nat <:> int)] +[visit_exp (m : nat <:> int)] +[visit_exp m] +[visit_id m] not free +=> + ;; test.spectec + def $mmmm{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) +[check_dims] int +[visit_id int] not free +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp + (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp + (7 : nat <:> int)] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp - (7 : nat <:> int)] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[check_dims] int_1 int_2 val +DecD eq(int_1 : int, int_2 : int, val : val(int_1)) : val(int_2) +[visit_id int_1] not free +[visit_id int_2] not free +[visit_id val] not free +[visit_exp int_1] +[visit_id int_1] not free +[visit_exp int_2] +[visit_id int_2] not free +[check_dims] x +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val((1 : nat <:> int))}((1 : nat <:> int), (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $pppp((3 : nat <:> int), (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($pppp((3 : nat <:> int), (4 : nat <:> int)))}($pppp((3 : nat <:> int), (4 : nat <:> int)), (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $pppp(- (3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (7 : nat <:> int)] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($pppp(- (3 : nat <:> int), - (4 : nat <:> int)))}($pppp(- (3 : nat <:> int), - (4 : nat <:> int)), - (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $pppm((3 : nat <:> int), (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($pppm((3 : nat <:> int), (4 : nat <:> int)))}($pppm((3 : nat <:> int), (4 : nat <:> int)), - (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $pppm(- (3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($pppm(- (3 : nat <:> int), - (4 : nat <:> int)))}($pppm(- (3 : nat <:> int), - (4 : nat <:> int)), (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $ppmp((3 : nat <:> int), (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($ppmp((3 : nat <:> int), (4 : nat <:> int)))}($ppmp((3 : nat <:> int), (4 : nat <:> int)), (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $ppmp(- (3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($ppmp(- (3 : nat <:> int), - (4 : nat <:> int)))}($ppmp(- (3 : nat <:> int), - (4 : nat <:> int)), - (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $ppmm((3 : nat <:> int), (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (7 : nat <:> int)] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($ppmm((3 : nat <:> int), (4 : nat <:> int)))}($ppmm((3 : nat <:> int), (4 : nat <:> int)), - (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $ppmm(- (3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($ppmm(- (3 : nat <:> int), - (4 : nat <:> int)))}($ppmm(- (3 : nat <:> int), - (4 : nat <:> int)), (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $pmpp((3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($pmpp((3 : nat <:> int), - (4 : nat <:> int)))}($pmpp((3 : nat <:> int), - (4 : nat <:> int)), (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $pmpp(- (3 : nat <:> int), (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (7 : nat <:> int)] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($pmpp(- (3 : nat <:> int), (4 : nat <:> int)))}($pmpp(- (3 : nat <:> int), (4 : nat <:> int)), - (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $pmpm((3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($pmpm((3 : nat <:> int), - (4 : nat <:> int)))}($pmpm((3 : nat <:> int), - (4 : nat <:> int)), - (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $pmpm(- (3 : nat <:> int), (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($pmpm(- (3 : nat <:> int), (4 : nat <:> int)))}($pmpm(- (3 : nat <:> int), (4 : nat <:> int)), (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $pmmp((3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($pmmp((3 : nat <:> int), - (4 : nat <:> int)))}($pmmp((3 : nat <:> int), - (4 : nat <:> int)), (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $pmmp(- (3 : nat <:> int), (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($pmmp(- (3 : nat <:> int), (4 : nat <:> int)))}($pmmp(- (3 : nat <:> int), (4 : nat <:> int)), - (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $pmmm((3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (7 : nat <:> int)] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($pmmm((3 : nat <:> int), - (4 : nat <:> int)))}($pmmm((3 : nat <:> int), - (4 : nat <:> int)), - (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $pmmm(- (3 : nat <:> int), (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($pmmm(- (3 : nat <:> int), (4 : nat <:> int)))}($pmmm(- (3 : nat <:> int), (4 : nat <:> int)), (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mppp((3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (7 : nat <:> int)] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mppp((3 : nat <:> int), - (4 : nat <:> int)))}($mppp((3 : nat <:> int), - (4 : nat <:> int)), - (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mppp(- (3 : nat <:> int), (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mppp(- (3 : nat <:> int), (4 : nat <:> int)))}($mppp(- (3 : nat <:> int), (4 : nat <:> int)), (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mppm((3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mppm((3 : nat <:> int), - (4 : nat <:> int)))}($mppm((3 : nat <:> int), - (4 : nat <:> int)), (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mppm(- (3 : nat <:> int), (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mppm(- (3 : nat <:> int), (4 : nat <:> int)))}($mppm(- (3 : nat <:> int), (4 : nat <:> int)), - (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mpmp((3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mpmp((3 : nat <:> int), - (4 : nat <:> int)))}($mpmp((3 : nat <:> int), - (4 : nat <:> int)), - (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mpmp(- (3 : nat <:> int), (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mpmp(- (3 : nat <:> int), (4 : nat <:> int)))}($mpmp(- (3 : nat <:> int), (4 : nat <:> int)), (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mpmm((3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mpmm((3 : nat <:> int), - (4 : nat <:> int)))}($mpmm((3 : nat <:> int), - (4 : nat <:> int)), (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mpmm(- (3 : nat <:> int), (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (7 : nat <:> int)] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mpmm(- (3 : nat <:> int), (4 : nat <:> int)))}($mpmm(- (3 : nat <:> int), (4 : nat <:> int)), - (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mmpp((3 : nat <:> int), (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (7 : nat <:> int)] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mmpp((3 : nat <:> int), (4 : nat <:> int)))}($mmpp((3 : nat <:> int), (4 : nat <:> int)), - (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mmpp(- (3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mmpp(- (3 : nat <:> int), - (4 : nat <:> int)))}($mmpp(- (3 : nat <:> int), - (4 : nat <:> int)), (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mmpm((3 : nat <:> int), (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mmpm((3 : nat <:> int), (4 : nat <:> int)))}($mmpm((3 : nat <:> int), (4 : nat <:> int)), (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mmpm(- (3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mmpm(- (3 : nat <:> int), - (4 : nat <:> int)))}($mmpm(- (3 : nat <:> int), - (4 : nat <:> int)), - (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mmmp((3 : nat <:> int), (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mmmp((3 : nat <:> int), (4 : nat <:> int)))}($mmmp((3 : nat <:> int), (4 : nat <:> int)), - (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mmmp(- (3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mmmp(- (3 : nat <:> int), - (4 : nat <:> int)))}($mmmp(- (3 : nat <:> int), - (4 : nat <:> int)), (1 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mmmm((3 : nat <:> int), (4 : nat <:> int))] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mmmm((3 : nat <:> int), (4 : nat <:> int)))}($mmmm((3 : nat <:> int), (4 : nat <:> int)), (7 : nat <:> int), x) = x +[check_dims] x +[visit_exp $mmmm(- (3 : nat <:> int), - (4 : nat <:> int))] +[visit_exp - (3 : nat <:> int)] +[visit_exp (3 : nat <:> int)] +[visit_exp 3] +[visit_exp - (4 : nat <:> int)] +[visit_exp (4 : nat <:> int)] +[visit_exp 4] +[visit_exp - (7 : nat <:> int)] +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +=> + ;; test.spectec + def $eq{x : val($mmmm(- (3 : nat <:> int), - (4 : nat <:> int)))}($mmmm(- (3 : nat <:> int), - (4 : nat <:> int)), - (7 : nat <:> int), x) = x +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +dims \ = +[visit_exp 1] +[check_dims] +dims \ = +[visit_exp 2] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +dims \ = +[visit_exp 1] +[check_dims] +dims \ = +[visit_exp 2] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +dims \ = +[visit_exp 1] +[check_dims] +dims \ = +[visit_exp 2] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +dims \ = +[visit_exp 1] +[check_dims] +dims \ = +[visit_exp 2] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +dims \ = +[visit_exp 1] +[check_dims] +dims \ = +[visit_exp 2] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +dims \ = +[visit_exp 1] +[check_dims] +dims \ = +[visit_exp 2] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +dims \ = +[visit_exp 1] +[check_dims] +dims \ = +[visit_exp 2] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +dims \ = +[visit_exp 1] +[check_dims] +dims \ = +[visit_exp 2] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 255] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 255] +ps' = +[check_dims] +[check_dims] +[visit_exp 1] +[visit_exp 26] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 65] +ps' = +[check_dims] +[check_dims] +[visit_exp 65] +[visit_exp 255] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 255] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 255] +ps' = +[check_dims] +[check_dims] +[visit_exp 1] +[visit_exp 26] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 127] +[check_dims] +dims \ = +[visit_exp 255] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 127] +[check_dims] +dims \ = +[visit_exp 255] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 5] +[check_dims] +dims \ = +[visit_exp 10] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 127] +[check_dims] +dims \ = +[visit_exp 255] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 127] +[check_dims] +dims \ = +[visit_exp 255] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 5] +[check_dims] +dims \ = +[visit_exp 10] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 255] +[check_dims] +[visit_exp 0] +[visit_exp 127] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 255] +[check_dims] +[visit_exp 0] +[visit_exp 127] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 10] +[check_dims] +[visit_exp 0] +[visit_exp 5] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 255] +[check_dims] +[visit_exp 0] +[visit_exp 127] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 255] +[check_dims] +[visit_exp 0] +[visit_exp 127] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 10] +[check_dims] +[visit_exp 0] +[visit_exp 5] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 31] +[check_dims] +[visit_exp 128] +[visit_exp 143] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 31] +[check_dims] +[visit_exp 128] +[visit_exp 143] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 5] +[check_dims] +[visit_exp 0] +[visit_exp 5] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 31] +[check_dims] +[visit_exp 128] +[visit_exp 143] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 31] +[check_dims] +[visit_exp 128] +[visit_exp 143] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 5] +[check_dims] +[visit_exp 0] +[visit_exp 5] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 31] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +[visit_exp 127] +[visit_exp 143] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 31] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +[visit_exp 90] +[visit_exp 143] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +dims \ = +[visit_exp 1] +[check_dims] +[visit_exp 0] +[visit_exp 9] +[check_dims] +[visit_exp 10] +[visit_exp 35] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +dims \ = +[visit_exp 0] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +[visit_exp 0] +[visit_exp 9] +[check_dims] +[visit_exp 10] +[visit_exp 35] +[check_dims] +dims \ = +[visit_exp 0] +[check_dims] +dims \ = +[visit_exp 0] +[] nat* nat* +[] nat* nat* +[] nat* nat* +[] nat* nat* +[] nat* nat^j +[] nat** nat^k^j +[] nat* nat^k +[] nat* nat^j +[] nat* nat^j +[] nat* nat^j +[] nat** nat^k^j +[] nat* nat^k +[] nat* nat^k cat: test.tex: No such file or directory [1] ``` @@ -14,6 +3558,108021 @@ $ (../src/exe-spectec/main.exe ../../../../specification/wasm-3.0/*.spectec -v - spectec 0.5 generator == Parsing... == Elaboration... +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] nat +DecD min(nat : nat, nat : nat) : nat +[visit_id nat] not free +[visit_id nat] not free +[check_dims] i j +[visit_exp i] +[visit_id i] +[visit_exp j] +[visit_id j] +[visit_exp i] +[visit_id i] not free +[visit_exp (i <= j)] +[visit_exp i] +[visit_id i] not free +[visit_exp j] +[visit_id j] not free +=> + ;; ../../../../specification/wasm-3.0/0.2-aux.num.spectec + def $min{i : nat, j : nat}(i, j) = i + -- if (i <= j) +[check_dims] i j +[visit_exp i] +[visit_id i] +[visit_exp j] +[visit_id j] +[visit_exp j] +[visit_id j] not free +=> + ;; ../../../../specification/wasm-3.0/0.2-aux.num.spectec + def $min{i : nat, j : nat}(i, j) = j + -- otherwise +[check_dims] _ +DecD sum(nat*) : nat +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/0.2-aux.num.spectec + def $sum([]) = 0 +[check_dims] n n' +[visit_exp [n] ++ n'*{n' <- `n'*`}] +[visit_exp [n]] +[visit_exp n] +[visit_id n] +[visit_exp n'*{n' <- `n'*`}] +[scope_enter n'] +[visit_exp n'] +[visit_id n'] not free +[visit_id n'] not free +[scope_exit n'] +[visit_exp `n'*`] +[visit_id n'*] no dims +[visit_id n'*] +[visit_exp (n + $sum(n'*{n' <- `n'*`}))] +[visit_exp n] +[visit_id n] not free +[visit_exp $sum(n'*{n' <- `n'*`})] +[visit_exp n'*{n' <- `n'*`}] +[scope_enter n'] +[visit_exp n'] +[visit_id n'] not free +[visit_id n'] not free +[scope_exit n'] +[visit_exp `n'*`] +[visit_id n'*] not free +[visit_id n'*] no dims +=> + ;; ../../../../specification/wasm-3.0/0.2-aux.num.spectec + def $sum{n : n, `n'*` : n*}([n] ++ n'*{n' <- `n'*`}) = (n + $sum(n'*{n' <- `n'*`})) +[check_dims] _ +DecD prod(nat*) : nat +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp 1] +=> + ;; ../../../../specification/wasm-3.0/0.2-aux.num.spectec + def $prod([]) = 1 +[check_dims] n n' +[visit_exp [n] ++ n'*{n' <- `n'*`}] +[visit_exp [n]] +[visit_exp n] +[visit_id n] +[visit_exp n'*{n' <- `n'*`}] +[scope_enter n'] +[visit_exp n'] +[visit_id n'] not free +[visit_id n'] not free +[scope_exit n'] +[visit_exp `n'*`] +[visit_id n'*] no dims +[visit_id n'*] +[visit_exp (n * $prod(n'*{n' <- `n'*`}))] +[visit_exp n] +[visit_id n] not free +[visit_exp $prod(n'*{n' <- `n'*`})] +[visit_exp n'*{n' <- `n'*`}] +[scope_enter n'] +[visit_exp n'] +[visit_id n'] not free +[visit_id n'] not free +[scope_exit n'] +[visit_exp `n'*`] +[visit_id n'*] not free +[visit_id n'*] no dims +=> + ;; ../../../../specification/wasm-3.0/0.2-aux.num.spectec + def $prod{n : n, `n'*` : n*}([n] ++ n'*{n' <- `n'*`}) = (n * $prod(n'*{n' <- `n'*`})) +[check_dims] X _ +DecD opt_(syntax X, X*) : X? +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp ?()] +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $opt_{syntax X}(syntax X, []) = ?() +[check_dims] w +[visit_exp [w]] +[visit_exp w] +[visit_id w] +[visit_exp ?(w)] +[visit_exp w] +[visit_id w] not free +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $opt_{syntax X, w : X}(syntax X, [w]) = ?(w) +[check_dims] X _ +DecD concat_(syntax X, X**) : X* +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $concat_{syntax X}(syntax X, []) = [] +[check_dims] w w' +[visit_exp [w*{w <- `w*`}] ++ w'*{w' <- `w'*`}*{`w'*` <- `w'**`}] +[visit_exp [w*{w <- `w*`}]] +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] no dims +[visit_id w*] +[visit_exp w'*{w' <- `w'*`}*{`w'*` <- `w'**`}] +[scope_enter w'*] +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] not free +[visit_id w'*] no dims +[visit_id w'*] not free +[visit_id w'*] no dims +[scope_exit w'*] +[visit_exp `w'**`] +[visit_id w'**] no dims +[visit_id w'**] +[visit_exp w*{w <- `w*`} ++ $concat_(syntax X, w'*{w' <- `w'*`}*{`w'*` <- `w'**`})] +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] not free +[visit_id w*] no dims +[visit_exp $concat_(syntax X, w'*{w' <- `w'*`}*{`w'*` <- `w'**`})] +[visit_exp w'*{w' <- `w'*`}*{`w'*` <- `w'**`}] +[scope_enter w'*] +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] not free +[visit_id w'*] no dims +[visit_id w'*] not free +[visit_id w'*] no dims +[scope_exit w'*] +[visit_exp `w'**`] +[visit_id w'**] not free +[visit_id w'**] no dims +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $concat_{syntax X, `w*` : X*, `w'**` : X**}(syntax X, [w*{w <- `w*`}] ++ w'*{w' <- `w'*`}*{`w'*` <- `w'**`}) = w*{w <- `w*`} ++ $concat_(syntax X, w'*{w' <- `w'*`}*{`w'*` <- `w'**`}) +[check_dims] X _ nat +DecD concatn_(syntax X, X**, nat : nat) : X* +[visit_id _] not free +[visit_id nat] not free +[check_dims] n +[visit_exp []] +[visit_exp n] +[visit_id n] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $concatn_{syntax X, n : n}(syntax X, [], n) = [] +[check_dims] n w w' +[visit_exp [w^n{w <- `w*`}] ++ w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}] +[visit_exp [w^n{w <- `w*`}]] +[visit_exp w^n{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp n] +[visit_id n] +[visit_exp `w*`] +[visit_id w*] no dims +[visit_id w*] +[visit_exp w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}] +[scope_enter w'*] +[visit_exp w'^n{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp n] +[visit_id n] not free +[visit_exp `w'*`] +[visit_id w'*] not free +[visit_id w'*] no dims +[visit_id w'*] not free +[visit_id w'*] no dims +[scope_exit w'*] +[visit_exp `w'**`] +[visit_id w'**] no dims +[visit_id w'**] +[visit_exp n] +[visit_id n] not free +[visit_exp w^n{w <- `w*`} ++ $concatn_(syntax X, w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}, n)] +[visit_exp w^n{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp n] +[visit_id n] not free +[visit_exp `w*`] +[visit_id w*] not free +[visit_id w*] no dims +[visit_exp $concatn_(syntax X, w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}, n)] +[visit_exp w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}] +[scope_enter w'*] +[visit_exp w'^n{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp n] +[visit_id n] not free +[visit_exp `w'*`] +[visit_id w'*] not free +[visit_id w'*] no dims +[visit_id w'*] not free +[visit_id w'*] no dims +[scope_exit w'*] +[visit_exp `w'**`] +[visit_id w'**] not free +[visit_id w'**] no dims +[visit_exp n] +[visit_id n] not free +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $concatn_{syntax X, n : n, `w*` : X*, `w'**` : X**}(syntax X, [w^n{w <- `w*`}] ++ w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}, n) = w^n{w <- `w*`} ++ $concatn_(syntax X, w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}, n) +[check_dims] X _ +DecD concatopt_(syntax X, X?*) : X* +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $concatopt_{syntax X}(syntax X, []) = [] +[check_dims] w w' +[visit_exp [w?{w <- `w?`}] ++ w'?{w' <- `w'?`}*{`w'?` <- `w'?*`}] +[visit_exp [w?{w <- `w?`}]] +[visit_exp w?{w <- `w?`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w?`] +[visit_id w?] no dims +[visit_id w?] +[visit_exp w'?{w' <- `w'?`}*{`w'?` <- `w'?*`}] +[scope_enter w'?] +[visit_exp w'?{w' <- `w'?`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'?`] +[visit_id w'?] not free +[visit_id w'?] no dims +[visit_id w'?] not free +[visit_id w'?] no dims +[scope_exit w'?] +[visit_exp `w'?*`] +[visit_id w'?*] no dims +[visit_id w'?*] +[visit_exp lift(w?{w <- `w?`}) ++ $concat_(syntax X, lift(w'?{w' <- `w'?`})*{`w'?` <- `w'?*`})] +[visit_exp lift(w?{w <- `w?`})] +[visit_exp w?{w <- `w?`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w?`] +[visit_id w?] not free +[visit_id w?] no dims +[visit_exp $concat_(syntax X, lift(w'?{w' <- `w'?`})*{`w'?` <- `w'?*`})] +[visit_exp lift(w'?{w' <- `w'?`})*{`w'?` <- `w'?*`}] +[scope_enter w'?] +[visit_exp lift(w'?{w' <- `w'?`})] +[visit_exp w'?{w' <- `w'?`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'?`] +[visit_id w'?] not free +[visit_id w'?] no dims +[visit_id w'?] not free +[visit_id w'?] no dims +[scope_exit w'?] +[visit_exp `w'?*`] +[visit_id w'?*] not free +[visit_id w'?*] no dims +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $concatopt_{syntax X, `w?` : X?, `w'?*` : X?*}(syntax X, [w?{w <- `w?`}] ++ w'?{w' <- `w'?`}*{`w'?` <- `w'?*`}) = lift(w?{w <- `w?`}) ++ $concat_(syntax X, lift(w'?{w' <- `w'?`})*{`w'?` <- `w'?*`}) +[check_dims] X _ +DecD inv_concat_(syntax X, X*) : X** +[visit_id _] not free +[check_dims] X _ nat +DecD inv_concatn_(syntax X, nat : nat, X*) : X** +[visit_id nat] not free +[visit_id _] not free +[check_dims] X _ +DecD disjoint_(syntax X, X*) : bool +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp true] +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $disjoint_{syntax X}(syntax X, []) = true +[check_dims] w w' +[visit_exp [w] ++ w'*{w' <- `w'*`}] +[visit_exp [w]] +[visit_exp w] +[visit_id w] +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] no dims +[visit_id w'*] +[visit_exp (~ (w <- w'*{w' <- `w'*`}) /\ $disjoint_(syntax X, w'*{w' <- `w'*`}))] +[visit_exp ~ (w <- w'*{w' <- `w'*`})] +[visit_exp (w <- w'*{w' <- `w'*`})] +[visit_exp w] +[visit_id w] not free +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] not free +[visit_id w'*] no dims +[visit_exp $disjoint_(syntax X, w'*{w' <- `w'*`})] +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] not free +[visit_id w'*] no dims +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $disjoint_{syntax X, w : X, `w'*` : X*}(syntax X, [w] ++ w'*{w' <- `w'*`}) = (~ (w <- w'*{w' <- `w'*`}) /\ $disjoint_(syntax X, w'*{w' <- `w'*`})) +[check_dims] X _ +DecD setminus_(syntax X, X*, X*) : X* +[visit_id _] not free +[visit_id _] not free +[check_dims] X _ +DecD setminus1_(syntax X, X : X, X*) : X* +[visit_id X] not free +[visit_id _] not free +[check_dims] w +[visit_exp []] +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] no dims +[visit_id w*] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $setminus_{syntax X, `w*` : X*}(syntax X, [], w*{w <- `w*`}) = [] +[check_dims] w w' w_1 +[visit_exp [w_1] ++ w'*{w' <- `w'*`}] +[visit_exp [w_1]] +[visit_exp w_1] +[visit_id w_1] +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] no dims +[visit_id w'*] +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] no dims +[visit_id w*] +[visit_exp $setminus1_(syntax X, w_1, w*{w <- `w*`}) ++ $setminus_(syntax X, w'*{w' <- `w'*`}, w*{w <- `w*`})] +[visit_exp $setminus1_(syntax X, w_1, w*{w <- `w*`})] +[visit_exp w_1] +[visit_id w_1] not free +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] not free +[visit_id w*] no dims +[visit_exp $setminus_(syntax X, w'*{w' <- `w'*`}, w*{w <- `w*`})] +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] not free +[visit_id w'*] no dims +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] not free +[visit_id w*] no dims +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $setminus_{syntax X, w_1 : X, `w'*` : X*, `w*` : X*}(syntax X, [w_1] ++ w'*{w' <- `w'*`}, w*{w <- `w*`}) = $setminus1_(syntax X, w_1, w*{w <- `w*`}) ++ $setminus_(syntax X, w'*{w' <- `w'*`}, w*{w <- `w*`}) +[check_dims] w +[visit_exp w] +[visit_id w] +[visit_exp []] +[visit_exp [w]] +[visit_exp w] +[visit_id w] not free +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $setminus1_{syntax X, w : X}(syntax X, w, []) = [w] +[check_dims] w w' w_1 +[visit_exp w] +[visit_id w] +[visit_exp [w_1] ++ w'*{w' <- `w'*`}] +[visit_exp [w_1]] +[visit_exp w_1] +[visit_id w_1] +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] no dims +[visit_id w'*] +[visit_exp []] +[visit_exp (w = w_1)] +[visit_exp w] +[visit_id w] not free +[visit_exp w_1] +[visit_id w_1] not free +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $setminus1_{syntax X, w : X, w_1 : X, `w'*` : X*}(syntax X, w, [w_1] ++ w'*{w' <- `w'*`}) = [] + -- if (w = w_1) +[check_dims] w w' w_1 +[visit_exp w] +[visit_id w] +[visit_exp [w_1] ++ w'*{w' <- `w'*`}] +[visit_exp [w_1]] +[visit_exp w_1] +[visit_id w_1] +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] no dims +[visit_id w'*] +[visit_exp $setminus1_(syntax X, w, w'*{w' <- `w'*`})] +[visit_exp w] +[visit_id w] not free +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] not free +[visit_id w'*] no dims +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $setminus1_{syntax X, w : X, w_1 : X, `w'*` : X*}(syntax X, w, [w_1] ++ w'*{w' <- `w'*`}) = $setminus1_(syntax X, w, w'*{w' <- `w'*`}) + -- otherwise +[check_dims] X _ +DecD setproduct_(syntax X, X**) : X** +[visit_id _] not free +[check_dims] X _ +DecD setproduct1_(syntax X, X*, X**) : X** +[visit_id _] not free +[visit_id _] not free +[check_dims] X _ +DecD setproduct2_(syntax X, X : X, X**) : X** +[visit_id X] not free +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp [[]]] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $setproduct_{syntax X}(syntax X, []) = [[]] +[check_dims] w w_1 +[visit_exp [w_1*{w_1 <- `w_1*`}] ++ w*{w <- `w*`}*{`w*` <- `w**`}] +[visit_exp [w_1*{w_1 <- `w_1*`}]] +[visit_exp w_1*{w_1 <- `w_1*`}] +[scope_enter w_1] +[visit_exp w_1] +[visit_id w_1] not free +[visit_id w_1] not free +[scope_exit w_1] +[visit_exp `w_1*`] +[visit_id w_1*] no dims +[visit_id w_1*] +[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] +[scope_enter w*] +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] not free +[visit_id w*] no dims +[visit_id w*] not free +[visit_id w*] no dims +[scope_exit w*] +[visit_exp `w**`] +[visit_id w**] no dims +[visit_id w**] +[visit_exp $setproduct1_(syntax X, w_1*{w_1 <- `w_1*`}, $setproduct_(syntax X, w*{w <- `w*`}*{`w*` <- `w**`}))] +[visit_exp w_1*{w_1 <- `w_1*`}] +[scope_enter w_1] +[visit_exp w_1] +[visit_id w_1] not free +[visit_id w_1] not free +[scope_exit w_1] +[visit_exp `w_1*`] +[visit_id w_1*] not free +[visit_id w_1*] no dims +[visit_exp $setproduct_(syntax X, w*{w <- `w*`}*{`w*` <- `w**`})] +[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] +[scope_enter w*] +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] not free +[visit_id w*] no dims +[visit_id w*] not free +[visit_id w*] no dims +[scope_exit w*] +[visit_exp `w**`] +[visit_id w**] not free +[visit_id w**] no dims +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $setproduct_{syntax X, `w_1*` : X*, `w**` : X**}(syntax X, [w_1*{w_1 <- `w_1*`}] ++ w*{w <- `w*`}*{`w*` <- `w**`}) = $setproduct1_(syntax X, w_1*{w_1 <- `w_1*`}, $setproduct_(syntax X, w*{w <- `w*`}*{`w*` <- `w**`})) +[check_dims] w +[visit_exp []] +[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] +[scope_enter w*] +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] not free +[visit_id w*] no dims +[visit_id w*] not free +[visit_id w*] no dims +[scope_exit w*] +[visit_exp `w**`] +[visit_id w**] no dims +[visit_id w**] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $setproduct1_{syntax X, `w**` : X**}(syntax X, [], w*{w <- `w*`}*{`w*` <- `w**`}) = [] +[check_dims] w w' w_1 +[visit_exp [w_1] ++ w'*{w' <- `w'*`}] +[visit_exp [w_1]] +[visit_exp w_1] +[visit_id w_1] +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] no dims +[visit_id w'*] +[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] +[scope_enter w*] +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] not free +[visit_id w*] no dims +[visit_id w*] not free +[visit_id w*] no dims +[scope_exit w*] +[visit_exp `w**`] +[visit_id w**] no dims +[visit_id w**] +[visit_exp $setproduct2_(syntax X, w_1, w*{w <- `w*`}*{`w*` <- `w**`}) ++ $setproduct1_(syntax X, w'*{w' <- `w'*`}, w*{w <- `w*`}*{`w*` <- `w**`})] +[visit_exp $setproduct2_(syntax X, w_1, w*{w <- `w*`}*{`w*` <- `w**`})] +[visit_exp w_1] +[visit_id w_1] not free +[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] +[scope_enter w*] +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] not free +[visit_id w*] no dims +[visit_id w*] not free +[visit_id w*] no dims +[scope_exit w*] +[visit_exp `w**`] +[visit_id w**] not free +[visit_id w**] no dims +[visit_exp $setproduct1_(syntax X, w'*{w' <- `w'*`}, w*{w <- `w*`}*{`w*` <- `w**`})] +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] not free +[visit_id w'*] no dims +[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] +[scope_enter w*] +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] not free +[visit_id w*] no dims +[visit_id w*] not free +[visit_id w*] no dims +[scope_exit w*] +[visit_exp `w**`] +[visit_id w**] not free +[visit_id w**] no dims +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $setproduct1_{syntax X, w_1 : X, `w'*` : X*, `w**` : X**}(syntax X, [w_1] ++ w'*{w' <- `w'*`}, w*{w <- `w*`}*{`w*` <- `w**`}) = $setproduct2_(syntax X, w_1, w*{w <- `w*`}*{`w*` <- `w**`}) ++ $setproduct1_(syntax X, w'*{w' <- `w'*`}, w*{w <- `w*`}*{`w*` <- `w**`}) +[check_dims] w_1 +[visit_exp w_1] +[visit_id w_1] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $setproduct2_{syntax X, w_1 : X}(syntax X, w_1, []) = [] +[check_dims] w w' w_1 +[visit_exp w_1] +[visit_id w_1] +[visit_exp [w'*{w' <- `w'*`}] ++ w*{w <- `w*`}*{`w*` <- `w**`}] +[visit_exp [w'*{w' <- `w'*`}]] +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] no dims +[visit_id w'*] +[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] +[scope_enter w*] +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] not free +[visit_id w*] no dims +[visit_id w*] not free +[visit_id w*] no dims +[scope_exit w*] +[visit_exp `w**`] +[visit_id w**] no dims +[visit_id w**] +[visit_exp [[w_1] ++ w'*{w' <- `w'*`}] ++ $setproduct2_(syntax X, w_1, w*{w <- `w*`}*{`w*` <- `w**`})] +[visit_exp [[w_1] ++ w'*{w' <- `w'*`}]] +[visit_exp [w_1] ++ w'*{w' <- `w'*`}] +[visit_exp [w_1]] +[visit_exp w_1] +[visit_id w_1] not free +[visit_exp w'*{w' <- `w'*`}] +[scope_enter w'] +[visit_exp w'] +[visit_id w'] not free +[visit_id w'] not free +[scope_exit w'] +[visit_exp `w'*`] +[visit_id w'*] not free +[visit_id w'*] no dims +[visit_exp $setproduct2_(syntax X, w_1, w*{w <- `w*`}*{`w*` <- `w**`})] +[visit_exp w_1] +[visit_id w_1] not free +[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] +[scope_enter w*] +[visit_exp w*{w <- `w*`}] +[scope_enter w] +[visit_exp w] +[visit_id w] not free +[visit_id w] not free +[scope_exit w] +[visit_exp `w*`] +[visit_id w*] not free +[visit_id w*] no dims +[visit_id w*] not free +[visit_id w*] no dims +[scope_exit w*] +[visit_exp `w**`] +[visit_id w**] not free +[visit_id w**] no dims +=> + ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec + def $setproduct2_{syntax X, w_1 : X, `w'*` : X*, `w**` : X**}(syntax X, w_1, [w'*{w' <- `w'*`}] ++ w*{w <- `w*`}*{`w*` <- `w**`}) = [[w_1] ++ w'*{w' <- `w'*`}] ++ $setproduct2_(syntax X, w_1, w*{w <- `w*`}*{`w*` <- `w**`}) +[check_dims] +DecD ND : bool +[check_dims] +[check_dims] +[visit_exp 0] +[check_dims] +[visit_exp 1] +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 255] +[check_dims] N +[check_dims] N +[visit_exp 0] +[visit_exp ((((2 ^ N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((2 ^ N) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((2 ^ N) : nat <:> int)] +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp N] +[visit_id N] +[check_dims] N +[check_dims] N +[visit_exp - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[check_dims] N +[visit_exp (0 : nat <:> int)] +[visit_exp 0] +[check_dims] N +[visit_exp + (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp (+ ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))] +[visit_exp + ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp N] +[visit_id N] +[check_dims] N +[visit_exp N] +[visit_id N] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] N +DecD signif(N : N) : nat +[visit_id N] not free +[check_dims] +[visit_exp 32] +[visit_exp 23] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $signif(32) = 23 +[check_dims] +[visit_exp 64] +[visit_exp 52] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $signif(64) = 52 +[check_dims] N +DecD expon(N : N) : nat +[visit_id N] not free +[check_dims] +[visit_exp 32] +[visit_exp 8] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $expon(32) = 8 +[check_dims] +[visit_exp 64] +[visit_exp 11] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $expon(64) = 11 +[check_dims] N +DecD M(N : N) : nat +[visit_id N] not free +[check_dims] N +[visit_exp N] +[visit_id N] +[visit_exp $signif(N)] +[visit_exp N] +[visit_id N] not free +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $M{N : N}(N) = $signif(N) +[check_dims] N +DecD E(N : N) : nat +[visit_id N] not free +[check_dims] N +[visit_exp N] +[visit_id N] +[visit_exp $expon(N)] +[visit_exp N] +[visit_id N] not free +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $E{N : N}(N) = $expon(N) +[check_dims] N +--- 1 --- +[check_dims] N +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id _] not free +[visit_id _] no dims +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +--- 1 --- +[check_dims] N +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id _] not free +[visit_id _] no dims +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp N] +[visit_id N] +[check_dims] +[check_dims] N +--- 1 --- +[check_dims] N exp m +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id m] +[visit_id exp] +[visit_exp ((m < (2 ^ $M(N))) /\ ((((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) <= exp) /\ (exp <= (((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int)))))] +[visit_exp (m < (2 ^ $M(N)))] +[visit_exp m] +[visit_id m] not free +[visit_exp (2 ^ $M(N))] +[visit_exp 2] +[visit_exp $M(N)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp ((((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) <= exp) /\ (exp <= (((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))))] +[visit_exp (((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) <= exp)] +[visit_exp ((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))] +[visit_exp (2 : nat <:> int)] +[visit_exp 2] +[visit_exp ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (($E(N) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ($E(N) : nat <:> int)] +[visit_exp $E(N)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp exp] +[visit_id exp] not free +[visit_exp (exp <= (((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int)))] +[visit_exp exp] +[visit_id exp] not free +[visit_exp (((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (($E(N) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ($E(N) : nat <:> int)] +[visit_exp $E(N)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +--- 1 --- +[check_dims] N exp m +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id m] +[visit_exp ((m < (2 ^ $M(N))) /\ (((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) = exp))] +[visit_exp (m < (2 ^ $M(N)))] +[visit_exp m] +[visit_id m] not free +[visit_exp (2 ^ $M(N))] +[visit_exp 2] +[visit_exp $M(N)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) = exp)] +[visit_exp ((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))] +[visit_exp (2 : nat <:> int)] +[visit_exp 2] +[visit_exp ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (($E(N) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ($E(N) : nat <:> int)] +[visit_exp $E(N)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp exp] +[visit_id exp] +--- 1 --- +[check_dims] N +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] N m +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id m] +[visit_exp ((1 <= m) /\ (m < (2 ^ $M(N))))] +[visit_exp (1 <= m)] +[visit_exp 1] +[visit_exp m] +[visit_id m] not free +[visit_exp (m < (2 ^ $M(N)))] +[visit_exp m] +[visit_id m] not free +[visit_exp (2 ^ $M(N))] +[visit_exp 2] +[visit_exp $M(N)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp N] +[visit_id N] +[check_dims] +[check_dims] +[check_dims] N +DecD fzero(N : N) : fN(N) +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N exp#1 m#1 +[visit_exp N] +[visit_id N] +[visit_exp `POS`_fN(`SUBNORM`_fNmag{m#1, exp#1}(0))] +[visit_exp (`SUBNORM`_fNmag{m#1, exp#1}(0))] +[visit_exp `SUBNORM`_fNmag{m#1, exp#1}(0)] +[visit_exp m#1] +[visit_id m#1] +[visit_exp exp#1] +[visit_id exp#1] +[visit_exp (0)] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $fzero{N : N, m#1 : m, exp#1 : exp}(N) = `POS`_fN(`SUBNORM`_fNmag{m#1, exp#1}(0)) +[check_dims] N nat +DecD fnat(N : N, nat : nat) : fN(N) +[visit_id N] not free +[visit_id nat] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N exp#2 m#3 n +[visit_exp N] +[visit_id N] +[visit_exp n] +[visit_id n] +[visit_exp `POS`_fN(`NORM`_fNmag{m#3, exp#2}(n, (0 : nat <:> int)))] +[visit_exp (`NORM`_fNmag{m#3, exp#2}(n, (0 : nat <:> int)))] +[visit_exp `NORM`_fNmag{m#3, exp#2}(n, (0 : nat <:> int))] +[visit_exp m#3] +[visit_id m#3] +[visit_exp exp#2] +[visit_id exp#2] +[visit_exp (n, (0 : nat <:> int))] +[visit_exp n] +[visit_id n] not free +[visit_exp (0 : nat <:> int)] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $fnat{N : N, n : n, m#3 : m, exp#2 : exp}(N, n) = `POS`_fN(`NORM`_fNmag{m#3, exp#2}(n, (0 : nat <:> int))) +[check_dims] N +DecD fone(N : N) : fN(N) +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N exp#4 m#5 +[visit_exp N] +[visit_id N] +[visit_exp `POS`_fN(`NORM`_fNmag{m#5, exp#4}(1, (0 : nat <:> int)))] +[visit_exp (`NORM`_fNmag{m#5, exp#4}(1, (0 : nat <:> int)))] +[visit_exp `NORM`_fNmag{m#5, exp#4}(1, (0 : nat <:> int))] +[visit_exp m#5] +[visit_id m#5] +[visit_exp exp#4] +[visit_id exp#4] +[visit_exp (1, (0 : nat <:> int))] +[visit_exp 1] +[visit_exp (0 : nat <:> int)] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $fone{N : N, m#5 : m, exp#4 : exp}(N) = `POS`_fN(`NORM`_fNmag{m#5, exp#4}(1, (0 : nat <:> int))) +[check_dims] N +DecD canon_(N : N) : nat +[visit_id N] not free +[check_dims] N +[visit_exp N] +[visit_id N] +[visit_exp (2 ^ ((($signif(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp ((($signif(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (($signif(N) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ($signif(N) : nat <:> int)] +[visit_exp $signif(N)] +[visit_exp N] +[visit_id N] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $canon_{N : N}(N) = (2 ^ ((($signif(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) +[check_dims] N +[visit_exp N] +[visit_id N] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] X +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id X*] no dims +[visit_id X*] +[visit_exp (|X*{X <- `X*`}| < (2 ^ 32))] +[visit_exp |X*{X <- `X*`}|] +[visit_exp X*{X <- `X*`}] +[scope_enter X] +[visit_exp X] +[visit_id X] not free +[visit_id X] not free +[scope_exit X] +[visit_exp `X*`] +[visit_id X*] not free +[visit_id X*] no dims +[visit_exp (2 ^ 32)] +[visit_exp 2] +[visit_exp 32] +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 55295] +[check_dims] +[visit_exp 57344] +[visit_exp 1114111] +[check_dims] _ +DecD utf8(char*) : byte* +[visit_id _] not free +[check_dims] +--- 1 --- +[check_dims] char +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id char*] no dims +[visit_id char*] +[visit_exp (|$utf8(char*{char <- `char*`})| < (2 ^ 32))] +[visit_exp |$utf8(char*{char <- `char*`})|] +[visit_exp $utf8(char*{char <- `char*`})] +[visit_exp char*{char <- `char*`}] +[scope_enter char] +[visit_exp char] +[visit_id char] not free +[visit_id char] not free +[scope_exit char] +[visit_exp `char*`] +[visit_id char*] not free +[visit_id char*] no dims +[visit_exp (2 ^ 32)] +[visit_exp 2] +[visit_exp 32] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id funcidx] no dims +[visit_id funcidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id globalidx] no dims +[visit_id globalidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableidx] no dims +[visit_id tableidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memidx] no dims +[visit_id memidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tagidx] no dims +[visit_id tagidx] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] _ +DecD funcsxx(externidx*) : typeidx* +[visit_id _] not free +[check_dims] _ +DecD globalsxx(externidx*) : globalidx* +[visit_id _] not free +[check_dims] _ +DecD tablesxx(externidx*) : tableidx* +[visit_id _] not free +[check_dims] _ +DecD memsxx(externidx*) : memidx* +[visit_id _] not free +[check_dims] _ +DecD tagsxx(externidx*) : tagidx* +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $funcsxx([]) = [] +[check_dims] funcidx#1 x xx +[visit_exp [`FUNC`_externidx{funcidx#1}(x)] ++ xx*{xx <- `xx*`}] +[visit_exp [`FUNC`_externidx{funcidx#1}(x)]] +[visit_exp `FUNC`_externidx{funcidx#1}(x)] +[visit_exp funcidx#1] +[visit_id funcidx#1] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] no dims +[visit_id xx*] +[visit_exp [x] ++ $funcsxx(xx*{xx <- `xx*`})] +[visit_exp [x]] +[visit_exp x] +[visit_id x] not free +[visit_exp $funcsxx(xx*{xx <- `xx*`})] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] not free +[visit_id xx*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $funcsxx{funcidx#1 : funcidx, x : idx, `xx*` : externidx*}([`FUNC`_externidx{funcidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $funcsxx(xx*{xx <- `xx*`}) +[check_dims] externidx xx +[visit_exp [externidx] ++ xx*{xx <- `xx*`}] +[visit_exp [externidx]] +[visit_exp externidx] +[visit_id externidx] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] no dims +[visit_id xx*] +[visit_exp $funcsxx(xx*{xx <- `xx*`})] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] not free +[visit_id xx*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $funcsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $funcsxx(xx*{xx <- `xx*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $globalsxx([]) = [] +[check_dims] globalidx#1 x xx +[visit_exp [`GLOBAL`_externidx{globalidx#1}(x)] ++ xx*{xx <- `xx*`}] +[visit_exp [`GLOBAL`_externidx{globalidx#1}(x)]] +[visit_exp `GLOBAL`_externidx{globalidx#1}(x)] +[visit_exp globalidx#1] +[visit_id globalidx#1] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] no dims +[visit_id xx*] +[visit_exp [x] ++ $globalsxx(xx*{xx <- `xx*`})] +[visit_exp [x]] +[visit_exp x] +[visit_id x] not free +[visit_exp $globalsxx(xx*{xx <- `xx*`})] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] not free +[visit_id xx*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $globalsxx{globalidx#1 : globalidx, x : idx, `xx*` : externidx*}([`GLOBAL`_externidx{globalidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $globalsxx(xx*{xx <- `xx*`}) +[check_dims] externidx xx +[visit_exp [externidx] ++ xx*{xx <- `xx*`}] +[visit_exp [externidx]] +[visit_exp externidx] +[visit_id externidx] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] no dims +[visit_id xx*] +[visit_exp $globalsxx(xx*{xx <- `xx*`})] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] not free +[visit_id xx*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $globalsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $globalsxx(xx*{xx <- `xx*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $tablesxx([]) = [] +[check_dims] tableidx#1 x xx +[visit_exp [`TABLE`_externidx{tableidx#1}(x)] ++ xx*{xx <- `xx*`}] +[visit_exp [`TABLE`_externidx{tableidx#1}(x)]] +[visit_exp `TABLE`_externidx{tableidx#1}(x)] +[visit_exp tableidx#1] +[visit_id tableidx#1] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] no dims +[visit_id xx*] +[visit_exp [x] ++ $tablesxx(xx*{xx <- `xx*`})] +[visit_exp [x]] +[visit_exp x] +[visit_id x] not free +[visit_exp $tablesxx(xx*{xx <- `xx*`})] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] not free +[visit_id xx*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $tablesxx{tableidx#1 : tableidx, x : idx, `xx*` : externidx*}([`TABLE`_externidx{tableidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tablesxx(xx*{xx <- `xx*`}) +[check_dims] externidx xx +[visit_exp [externidx] ++ xx*{xx <- `xx*`}] +[visit_exp [externidx]] +[visit_exp externidx] +[visit_id externidx] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] no dims +[visit_id xx*] +[visit_exp $tablesxx(xx*{xx <- `xx*`})] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] not free +[visit_id xx*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $tablesxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $tablesxx(xx*{xx <- `xx*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $memsxx([]) = [] +[check_dims] memidx#1 x xx +[visit_exp [`MEM`_externidx{memidx#1}(x)] ++ xx*{xx <- `xx*`}] +[visit_exp [`MEM`_externidx{memidx#1}(x)]] +[visit_exp `MEM`_externidx{memidx#1}(x)] +[visit_exp memidx#1] +[visit_id memidx#1] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] no dims +[visit_id xx*] +[visit_exp [x] ++ $memsxx(xx*{xx <- `xx*`})] +[visit_exp [x]] +[visit_exp x] +[visit_id x] not free +[visit_exp $memsxx(xx*{xx <- `xx*`})] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] not free +[visit_id xx*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $memsxx{memidx#1 : memidx, x : idx, `xx*` : externidx*}([`MEM`_externidx{memidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $memsxx(xx*{xx <- `xx*`}) +[check_dims] externidx xx +[visit_exp [externidx] ++ xx*{xx <- `xx*`}] +[visit_exp [externidx]] +[visit_exp externidx] +[visit_id externidx] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] no dims +[visit_id xx*] +[visit_exp $memsxx(xx*{xx <- `xx*`})] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] not free +[visit_id xx*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $memsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $memsxx(xx*{xx <- `xx*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $tagsxx([]) = [] +[check_dims] tagidx#1 x xx +[visit_exp [`TAG`_externidx{tagidx#1}(x)] ++ xx*{xx <- `xx*`}] +[visit_exp [`TAG`_externidx{tagidx#1}(x)]] +[visit_exp `TAG`_externidx{tagidx#1}(x)] +[visit_exp tagidx#1] +[visit_id tagidx#1] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] no dims +[visit_id xx*] +[visit_exp [x] ++ $tagsxx(xx*{xx <- `xx*`})] +[visit_exp [x]] +[visit_exp x] +[visit_id x] not free +[visit_exp $tagsxx(xx*{xx <- `xx*`})] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] not free +[visit_id xx*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $tagsxx{tagidx#1 : tagidx, x : idx, `xx*` : externidx*}([`TAG`_externidx{tagidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tagsxx(xx*{xx <- `xx*`}) +[check_dims] externidx xx +[visit_exp [externidx] ++ xx*{xx <- `xx*`}] +[visit_exp [externidx]] +[visit_exp externidx] +[visit_id externidx] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] no dims +[visit_id xx*] +[visit_exp $tagsxx(xx*{xx <- `xx*`})] +[visit_exp xx*{xx <- `xx*`}] +[scope_enter xx] +[visit_exp xx] +[visit_id xx] not free +[visit_id xx] not free +[scope_exit xx] +[visit_exp `xx*`] +[visit_id xx*] not free +[visit_id xx*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $tagsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $tagsxx(xx*{xx <- `xx*`}) + -- otherwise +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx*] no dims +[visit_id typeidx*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id funcidx*] no dims +[visit_id funcidx*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id globalidx*] no dims +[visit_id globalidx*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableidx*] no dims +[visit_id tableidx*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memidx*] no dims +[visit_id memidx*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id elemidx*] no dims +[visit_id elemidx*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id dataidx*] no dims +[visit_id dataidx*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id localidx*] no dims +[visit_id localidx*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id labelidx*] no dims +[visit_id labelidx*] +[check_dims] _ +DecD free_opt(free?) : free +[visit_id _] not free +[check_dims] _ +DecD free_list(free*) : free +[visit_id _] not free +[check_dims] dataidx*#1 elemidx*#1 funcidx*#1 globalidx*#1 labelidx*#1 localidx*#1 memidx*#1 tableidx*#1 typeidx*#1 +[visit_exp ?()] +[visit_exp {`TYPES`{`typeidx*#1`} [], `FUNCS`{`funcidx*#1`} [], `GLOBALS`{`globalidx*#1`} [], `TABLES`{`tableidx*#1`} [], `MEMS`{`memidx*#1`} [], `ELEMS`{`elemidx*#1`} [], `DATAS`{`dataidx*#1`} [], `LOCALS`{`localidx*#1`} [], `LABELS`{`labelidx*#1`} []}] +[visit_exp `typeidx*#1`] +[visit_id typeidx*#1] +[visit_exp []] +[visit_exp `funcidx*#1`] +[visit_id funcidx*#1] +[visit_exp []] +[visit_exp `globalidx*#1`] +[visit_id globalidx*#1] +[visit_exp []] +[visit_exp `tableidx*#1`] +[visit_id tableidx*#1] +[visit_exp []] +[visit_exp `memidx*#1`] +[visit_id memidx*#1] +[visit_exp []] +[visit_exp `elemidx*#1`] +[visit_id elemidx*#1] +[visit_exp []] +[visit_exp `dataidx*#1`] +[visit_id dataidx*#1] +[visit_exp []] +[visit_exp `localidx*#1`] +[visit_id localidx*#1] +[visit_exp []] +[visit_exp `labelidx*#1`] +[visit_id labelidx*#1] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_opt{`typeidx*#1` : typeidx*, `funcidx*#1` : funcidx*, `globalidx*#1` : globalidx*, `tableidx*#1` : tableidx*, `memidx*#1` : memidx*, `elemidx*#1` : elemidx*, `dataidx*#1` : dataidx*, `localidx*#1` : localidx*, `labelidx*#1` : labelidx*}(?()) = {`TYPES`{`typeidx*#1`} [], `FUNCS`{`funcidx*#1`} [], `GLOBALS`{`globalidx*#1`} [], `TABLES`{`tableidx*#1`} [], `MEMS`{`memidx*#1`} [], `ELEMS`{`elemidx*#1`} [], `DATAS`{`dataidx*#1`} [], `LOCALS`{`localidx*#1`} [], `LABELS`{`labelidx*#1`} []} +[check_dims] free +[visit_exp ?(free)] +[visit_exp free] +[visit_id free] +[visit_exp free] +[visit_id free] not free +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_opt{free : free}(?(free)) = free +[check_dims] dataidx*#2 elemidx*#2 funcidx*#2 globalidx*#2 labelidx*#2 localidx*#2 memidx*#2 tableidx*#2 typeidx*#2 +[visit_exp []] +[visit_exp {`TYPES`{`typeidx*#2`} [], `FUNCS`{`funcidx*#2`} [], `GLOBALS`{`globalidx*#2`} [], `TABLES`{`tableidx*#2`} [], `MEMS`{`memidx*#2`} [], `ELEMS`{`elemidx*#2`} [], `DATAS`{`dataidx*#2`} [], `LOCALS`{`localidx*#2`} [], `LABELS`{`labelidx*#2`} []}] +[visit_exp `typeidx*#2`] +[visit_id typeidx*#2] +[visit_exp []] +[visit_exp `funcidx*#2`] +[visit_id funcidx*#2] +[visit_exp []] +[visit_exp `globalidx*#2`] +[visit_id globalidx*#2] +[visit_exp []] +[visit_exp `tableidx*#2`] +[visit_id tableidx*#2] +[visit_exp []] +[visit_exp `memidx*#2`] +[visit_id memidx*#2] +[visit_exp []] +[visit_exp `elemidx*#2`] +[visit_id elemidx*#2] +[visit_exp []] +[visit_exp `dataidx*#2`] +[visit_id dataidx*#2] +[visit_exp []] +[visit_exp `localidx*#2`] +[visit_id localidx*#2] +[visit_exp []] +[visit_exp `labelidx*#2`] +[visit_id labelidx*#2] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_list{`typeidx*#2` : typeidx*, `funcidx*#2` : funcidx*, `globalidx*#2` : globalidx*, `tableidx*#2` : tableidx*, `memidx*#2` : memidx*, `elemidx*#2` : elemidx*, `dataidx*#2` : dataidx*, `localidx*#2` : localidx*, `labelidx*#2` : labelidx*}([]) = {`TYPES`{`typeidx*#2`} [], `FUNCS`{`funcidx*#2`} [], `GLOBALS`{`globalidx*#2`} [], `TABLES`{`tableidx*#2`} [], `MEMS`{`memidx*#2`} [], `ELEMS`{`elemidx*#2`} [], `DATAS`{`dataidx*#2`} [], `LOCALS`{`localidx*#2`} [], `LABELS`{`labelidx*#2`} []} +[check_dims] free free' +[visit_exp [free] ++ free'*{free' <- `free'*`}] +[visit_exp [free]] +[visit_exp free] +[visit_id free] +[visit_exp free'*{free' <- `free'*`}] +[scope_enter free'] +[visit_exp free'] +[visit_id free'] not free +[visit_id free'] not free +[scope_exit free'] +[visit_exp `free'*`] +[visit_id free'*] no dims +[visit_id free'*] +[visit_exp free +++ $free_list(free'*{free' <- `free'*`})] +[visit_exp free] +[visit_id free] not free +[visit_exp $free_list(free'*{free' <- `free'*`})] +[visit_exp free'*{free' <- `free'*`}] +[scope_enter free'] +[visit_exp free'] +[visit_id free'] not free +[visit_id free'] not free +[scope_exit free'] +[visit_exp `free'*`] +[visit_id free'*] not free +[visit_id free'*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_list{free : free, `free'*` : free*}([free] ++ free'*{free' <- `free'*`}) = free +++ $free_list(free'*{free' <- `free'*`}) +[check_dims] typeidx +DecD free_typeidx(typeidx : typeidx) : free +[visit_id typeidx] not free +[check_dims] funcidx +DecD free_funcidx(funcidx : funcidx) : free +[visit_id funcidx] not free +[check_dims] globalidx +DecD free_globalidx(globalidx : globalidx) : free +[visit_id globalidx] not free +[check_dims] tableidx +DecD free_tableidx(tableidx : tableidx) : free +[visit_id tableidx] not free +[check_dims] memidx +DecD free_memidx(memidx : memidx) : free +[visit_id memidx] not free +[check_dims] elemidx +DecD free_elemidx(elemidx : elemidx) : free +[visit_id elemidx] not free +[check_dims] dataidx +DecD free_dataidx(dataidx : dataidx) : free +[visit_id dataidx] not free +[check_dims] localidx +DecD free_localidx(localidx : localidx) : free +[visit_id localidx] not free +[check_dims] labelidx +DecD free_labelidx(labelidx : labelidx) : free +[visit_id labelidx] not free +[check_dims] externidx +DecD free_externidx(externidx : externidx) : free +[visit_id externidx] not free +[check_dims] dataidx*#3 elemidx*#3 funcidx*#3 globalidx*#3 labelidx*#3 localidx*#3 memidx*#3 tableidx*#3 typeidx typeidx*#3 +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp {`TYPES`{`typeidx*#3`} [typeidx], `FUNCS`{`funcidx*#3`} [], `GLOBALS`{`globalidx*#3`} [], `TABLES`{`tableidx*#3`} [], `MEMS`{`memidx*#3`} [], `ELEMS`{`elemidx*#3`} [], `DATAS`{`dataidx*#3`} [], `LOCALS`{`localidx*#3`} [], `LABELS`{`labelidx*#3`} []}] +[visit_exp `typeidx*#3`] +[visit_id typeidx*#3] +[visit_exp [typeidx]] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp `funcidx*#3`] +[visit_id funcidx*#3] +[visit_exp []] +[visit_exp `globalidx*#3`] +[visit_id globalidx*#3] +[visit_exp []] +[visit_exp `tableidx*#3`] +[visit_id tableidx*#3] +[visit_exp []] +[visit_exp `memidx*#3`] +[visit_id memidx*#3] +[visit_exp []] +[visit_exp `elemidx*#3`] +[visit_id elemidx*#3] +[visit_exp []] +[visit_exp `dataidx*#3`] +[visit_id dataidx*#3] +[visit_exp []] +[visit_exp `localidx*#3`] +[visit_id localidx*#3] +[visit_exp []] +[visit_exp `labelidx*#3`] +[visit_id labelidx*#3] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_typeidx{typeidx : typeidx, `typeidx*#3` : typeidx*, `funcidx*#3` : funcidx*, `globalidx*#3` : globalidx*, `tableidx*#3` : tableidx*, `memidx*#3` : memidx*, `elemidx*#3` : elemidx*, `dataidx*#3` : dataidx*, `localidx*#3` : localidx*, `labelidx*#3` : labelidx*}(typeidx) = {`TYPES`{`typeidx*#3`} [typeidx], `FUNCS`{`funcidx*#3`} [], `GLOBALS`{`globalidx*#3`} [], `TABLES`{`tableidx*#3`} [], `MEMS`{`memidx*#3`} [], `ELEMS`{`elemidx*#3`} [], `DATAS`{`dataidx*#3`} [], `LOCALS`{`localidx*#3`} [], `LABELS`{`labelidx*#3`} []} +[check_dims] dataidx*#4 elemidx*#4 funcidx funcidx*#4 globalidx*#4 labelidx*#4 localidx*#4 memidx*#4 tableidx*#4 typeidx*#4 +[visit_exp funcidx] +[visit_id funcidx] +[visit_exp {`TYPES`{`typeidx*#4`} [], `FUNCS`{`funcidx*#4`} [funcidx], `GLOBALS`{`globalidx*#4`} [], `TABLES`{`tableidx*#4`} [], `MEMS`{`memidx*#4`} [], `ELEMS`{`elemidx*#4`} [], `DATAS`{`dataidx*#4`} [], `LOCALS`{`localidx*#4`} [], `LABELS`{`labelidx*#4`} []}] +[visit_exp `typeidx*#4`] +[visit_id typeidx*#4] +[visit_exp []] +[visit_exp `funcidx*#4`] +[visit_id funcidx*#4] +[visit_exp [funcidx]] +[visit_exp funcidx] +[visit_id funcidx] not free +[visit_exp `globalidx*#4`] +[visit_id globalidx*#4] +[visit_exp []] +[visit_exp `tableidx*#4`] +[visit_id tableidx*#4] +[visit_exp []] +[visit_exp `memidx*#4`] +[visit_id memidx*#4] +[visit_exp []] +[visit_exp `elemidx*#4`] +[visit_id elemidx*#4] +[visit_exp []] +[visit_exp `dataidx*#4`] +[visit_id dataidx*#4] +[visit_exp []] +[visit_exp `localidx*#4`] +[visit_id localidx*#4] +[visit_exp []] +[visit_exp `labelidx*#4`] +[visit_id labelidx*#4] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_funcidx{funcidx : funcidx, `typeidx*#4` : typeidx*, `funcidx*#4` : funcidx*, `globalidx*#4` : globalidx*, `tableidx*#4` : tableidx*, `memidx*#4` : memidx*, `elemidx*#4` : elemidx*, `dataidx*#4` : dataidx*, `localidx*#4` : localidx*, `labelidx*#4` : labelidx*}(funcidx) = {`TYPES`{`typeidx*#4`} [], `FUNCS`{`funcidx*#4`} [funcidx], `GLOBALS`{`globalidx*#4`} [], `TABLES`{`tableidx*#4`} [], `MEMS`{`memidx*#4`} [], `ELEMS`{`elemidx*#4`} [], `DATAS`{`dataidx*#4`} [], `LOCALS`{`localidx*#4`} [], `LABELS`{`labelidx*#4`} []} +[check_dims] dataidx*#5 elemidx*#5 funcidx*#5 globalidx globalidx*#5 labelidx*#5 localidx*#5 memidx*#5 tableidx*#5 typeidx*#5 +[visit_exp globalidx] +[visit_id globalidx] +[visit_exp {`TYPES`{`typeidx*#5`} [], `FUNCS`{`funcidx*#5`} [], `GLOBALS`{`globalidx*#5`} [globalidx], `TABLES`{`tableidx*#5`} [], `MEMS`{`memidx*#5`} [], `ELEMS`{`elemidx*#5`} [], `DATAS`{`dataidx*#5`} [], `LOCALS`{`localidx*#5`} [], `LABELS`{`labelidx*#5`} []}] +[visit_exp `typeidx*#5`] +[visit_id typeidx*#5] +[visit_exp []] +[visit_exp `funcidx*#5`] +[visit_id funcidx*#5] +[visit_exp []] +[visit_exp `globalidx*#5`] +[visit_id globalidx*#5] +[visit_exp [globalidx]] +[visit_exp globalidx] +[visit_id globalidx] not free +[visit_exp `tableidx*#5`] +[visit_id tableidx*#5] +[visit_exp []] +[visit_exp `memidx*#5`] +[visit_id memidx*#5] +[visit_exp []] +[visit_exp `elemidx*#5`] +[visit_id elemidx*#5] +[visit_exp []] +[visit_exp `dataidx*#5`] +[visit_id dataidx*#5] +[visit_exp []] +[visit_exp `localidx*#5`] +[visit_id localidx*#5] +[visit_exp []] +[visit_exp `labelidx*#5`] +[visit_id labelidx*#5] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_globalidx{globalidx : globalidx, `typeidx*#5` : typeidx*, `funcidx*#5` : funcidx*, `globalidx*#5` : globalidx*, `tableidx*#5` : tableidx*, `memidx*#5` : memidx*, `elemidx*#5` : elemidx*, `dataidx*#5` : dataidx*, `localidx*#5` : localidx*, `labelidx*#5` : labelidx*}(globalidx) = {`TYPES`{`typeidx*#5`} [], `FUNCS`{`funcidx*#5`} [], `GLOBALS`{`globalidx*#5`} [globalidx], `TABLES`{`tableidx*#5`} [], `MEMS`{`memidx*#5`} [], `ELEMS`{`elemidx*#5`} [], `DATAS`{`dataidx*#5`} [], `LOCALS`{`localidx*#5`} [], `LABELS`{`labelidx*#5`} []} +[check_dims] dataidx*#6 elemidx*#6 funcidx*#6 globalidx*#6 labelidx*#6 localidx*#6 memidx*#6 tableidx tableidx*#6 typeidx*#6 +[visit_exp tableidx] +[visit_id tableidx] +[visit_exp {`TYPES`{`typeidx*#6`} [], `FUNCS`{`funcidx*#6`} [], `GLOBALS`{`globalidx*#6`} [], `TABLES`{`tableidx*#6`} [tableidx], `MEMS`{`memidx*#6`} [], `ELEMS`{`elemidx*#6`} [], `DATAS`{`dataidx*#6`} [], `LOCALS`{`localidx*#6`} [], `LABELS`{`labelidx*#6`} []}] +[visit_exp `typeidx*#6`] +[visit_id typeidx*#6] +[visit_exp []] +[visit_exp `funcidx*#6`] +[visit_id funcidx*#6] +[visit_exp []] +[visit_exp `globalidx*#6`] +[visit_id globalidx*#6] +[visit_exp []] +[visit_exp `tableidx*#6`] +[visit_id tableidx*#6] +[visit_exp [tableidx]] +[visit_exp tableidx] +[visit_id tableidx] not free +[visit_exp `memidx*#6`] +[visit_id memidx*#6] +[visit_exp []] +[visit_exp `elemidx*#6`] +[visit_id elemidx*#6] +[visit_exp []] +[visit_exp `dataidx*#6`] +[visit_id dataidx*#6] +[visit_exp []] +[visit_exp `localidx*#6`] +[visit_id localidx*#6] +[visit_exp []] +[visit_exp `labelidx*#6`] +[visit_id labelidx*#6] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_tableidx{tableidx : tableidx, `typeidx*#6` : typeidx*, `funcidx*#6` : funcidx*, `globalidx*#6` : globalidx*, `tableidx*#6` : tableidx*, `memidx*#6` : memidx*, `elemidx*#6` : elemidx*, `dataidx*#6` : dataidx*, `localidx*#6` : localidx*, `labelidx*#6` : labelidx*}(tableidx) = {`TYPES`{`typeidx*#6`} [], `FUNCS`{`funcidx*#6`} [], `GLOBALS`{`globalidx*#6`} [], `TABLES`{`tableidx*#6`} [tableidx], `MEMS`{`memidx*#6`} [], `ELEMS`{`elemidx*#6`} [], `DATAS`{`dataidx*#6`} [], `LOCALS`{`localidx*#6`} [], `LABELS`{`labelidx*#6`} []} +[check_dims] dataidx*#7 elemidx*#7 funcidx*#7 globalidx*#7 labelidx*#7 localidx*#7 memidx memidx*#7 tableidx*#7 typeidx*#7 +[visit_exp memidx] +[visit_id memidx] +[visit_exp {`TYPES`{`typeidx*#7`} [], `FUNCS`{`funcidx*#7`} [], `GLOBALS`{`globalidx*#7`} [], `TABLES`{`tableidx*#7`} [], `MEMS`{`memidx*#7`} [memidx], `ELEMS`{`elemidx*#7`} [], `DATAS`{`dataidx*#7`} [], `LOCALS`{`localidx*#7`} [], `LABELS`{`labelidx*#7`} []}] +[visit_exp `typeidx*#7`] +[visit_id typeidx*#7] +[visit_exp []] +[visit_exp `funcidx*#7`] +[visit_id funcidx*#7] +[visit_exp []] +[visit_exp `globalidx*#7`] +[visit_id globalidx*#7] +[visit_exp []] +[visit_exp `tableidx*#7`] +[visit_id tableidx*#7] +[visit_exp []] +[visit_exp `memidx*#7`] +[visit_id memidx*#7] +[visit_exp [memidx]] +[visit_exp memidx] +[visit_id memidx] not free +[visit_exp `elemidx*#7`] +[visit_id elemidx*#7] +[visit_exp []] +[visit_exp `dataidx*#7`] +[visit_id dataidx*#7] +[visit_exp []] +[visit_exp `localidx*#7`] +[visit_id localidx*#7] +[visit_exp []] +[visit_exp `labelidx*#7`] +[visit_id labelidx*#7] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_memidx{memidx : memidx, `typeidx*#7` : typeidx*, `funcidx*#7` : funcidx*, `globalidx*#7` : globalidx*, `tableidx*#7` : tableidx*, `memidx*#7` : memidx*, `elemidx*#7` : elemidx*, `dataidx*#7` : dataidx*, `localidx*#7` : localidx*, `labelidx*#7` : labelidx*}(memidx) = {`TYPES`{`typeidx*#7`} [], `FUNCS`{`funcidx*#7`} [], `GLOBALS`{`globalidx*#7`} [], `TABLES`{`tableidx*#7`} [], `MEMS`{`memidx*#7`} [memidx], `ELEMS`{`elemidx*#7`} [], `DATAS`{`dataidx*#7`} [], `LOCALS`{`localidx*#7`} [], `LABELS`{`labelidx*#7`} []} +[check_dims] dataidx*#8 elemidx elemidx*#8 funcidx*#8 globalidx*#8 labelidx*#8 localidx*#8 memidx*#8 tableidx*#8 typeidx*#8 +[visit_exp elemidx] +[visit_id elemidx] +[visit_exp {`TYPES`{`typeidx*#8`} [], `FUNCS`{`funcidx*#8`} [], `GLOBALS`{`globalidx*#8`} [], `TABLES`{`tableidx*#8`} [], `MEMS`{`memidx*#8`} [], `ELEMS`{`elemidx*#8`} [elemidx], `DATAS`{`dataidx*#8`} [], `LOCALS`{`localidx*#8`} [], `LABELS`{`labelidx*#8`} []}] +[visit_exp `typeidx*#8`] +[visit_id typeidx*#8] +[visit_exp []] +[visit_exp `funcidx*#8`] +[visit_id funcidx*#8] +[visit_exp []] +[visit_exp `globalidx*#8`] +[visit_id globalidx*#8] +[visit_exp []] +[visit_exp `tableidx*#8`] +[visit_id tableidx*#8] +[visit_exp []] +[visit_exp `memidx*#8`] +[visit_id memidx*#8] +[visit_exp []] +[visit_exp `elemidx*#8`] +[visit_id elemidx*#8] +[visit_exp [elemidx]] +[visit_exp elemidx] +[visit_id elemidx] not free +[visit_exp `dataidx*#8`] +[visit_id dataidx*#8] +[visit_exp []] +[visit_exp `localidx*#8`] +[visit_id localidx*#8] +[visit_exp []] +[visit_exp `labelidx*#8`] +[visit_id labelidx*#8] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_elemidx{elemidx : elemidx, `typeidx*#8` : typeidx*, `funcidx*#8` : funcidx*, `globalidx*#8` : globalidx*, `tableidx*#8` : tableidx*, `memidx*#8` : memidx*, `elemidx*#8` : elemidx*, `dataidx*#8` : dataidx*, `localidx*#8` : localidx*, `labelidx*#8` : labelidx*}(elemidx) = {`TYPES`{`typeidx*#8`} [], `FUNCS`{`funcidx*#8`} [], `GLOBALS`{`globalidx*#8`} [], `TABLES`{`tableidx*#8`} [], `MEMS`{`memidx*#8`} [], `ELEMS`{`elemidx*#8`} [elemidx], `DATAS`{`dataidx*#8`} [], `LOCALS`{`localidx*#8`} [], `LABELS`{`labelidx*#8`} []} +[check_dims] dataidx dataidx*#9 elemidx*#9 funcidx*#9 globalidx*#9 labelidx*#9 localidx*#9 memidx*#9 tableidx*#9 typeidx*#9 +[visit_exp dataidx] +[visit_id dataidx] +[visit_exp {`TYPES`{`typeidx*#9`} [], `FUNCS`{`funcidx*#9`} [], `GLOBALS`{`globalidx*#9`} [], `TABLES`{`tableidx*#9`} [], `MEMS`{`memidx*#9`} [], `ELEMS`{`elemidx*#9`} [], `DATAS`{`dataidx*#9`} [dataidx], `LOCALS`{`localidx*#9`} [], `LABELS`{`labelidx*#9`} []}] +[visit_exp `typeidx*#9`] +[visit_id typeidx*#9] +[visit_exp []] +[visit_exp `funcidx*#9`] +[visit_id funcidx*#9] +[visit_exp []] +[visit_exp `globalidx*#9`] +[visit_id globalidx*#9] +[visit_exp []] +[visit_exp `tableidx*#9`] +[visit_id tableidx*#9] +[visit_exp []] +[visit_exp `memidx*#9`] +[visit_id memidx*#9] +[visit_exp []] +[visit_exp `elemidx*#9`] +[visit_id elemidx*#9] +[visit_exp []] +[visit_exp `dataidx*#9`] +[visit_id dataidx*#9] +[visit_exp [dataidx]] +[visit_exp dataidx] +[visit_id dataidx] not free +[visit_exp `localidx*#9`] +[visit_id localidx*#9] +[visit_exp []] +[visit_exp `labelidx*#9`] +[visit_id labelidx*#9] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_dataidx{dataidx : dataidx, `typeidx*#9` : typeidx*, `funcidx*#9` : funcidx*, `globalidx*#9` : globalidx*, `tableidx*#9` : tableidx*, `memidx*#9` : memidx*, `elemidx*#9` : elemidx*, `dataidx*#9` : dataidx*, `localidx*#9` : localidx*, `labelidx*#9` : labelidx*}(dataidx) = {`TYPES`{`typeidx*#9`} [], `FUNCS`{`funcidx*#9`} [], `GLOBALS`{`globalidx*#9`} [], `TABLES`{`tableidx*#9`} [], `MEMS`{`memidx*#9`} [], `ELEMS`{`elemidx*#9`} [], `DATAS`{`dataidx*#9`} [dataidx], `LOCALS`{`localidx*#9`} [], `LABELS`{`labelidx*#9`} []} +[check_dims] dataidx*#10 elemidx*#10 funcidx*#10 globalidx*#10 labelidx*#10 localidx localidx*#10 memidx*#10 tableidx*#10 typeidx*#10 +[visit_exp localidx] +[visit_id localidx] +[visit_exp {`TYPES`{`typeidx*#10`} [], `FUNCS`{`funcidx*#10`} [], `GLOBALS`{`globalidx*#10`} [], `TABLES`{`tableidx*#10`} [], `MEMS`{`memidx*#10`} [], `ELEMS`{`elemidx*#10`} [], `DATAS`{`dataidx*#10`} [], `LOCALS`{`localidx*#10`} [localidx], `LABELS`{`labelidx*#10`} []}] +[visit_exp `typeidx*#10`] +[visit_id typeidx*#10] +[visit_exp []] +[visit_exp `funcidx*#10`] +[visit_id funcidx*#10] +[visit_exp []] +[visit_exp `globalidx*#10`] +[visit_id globalidx*#10] +[visit_exp []] +[visit_exp `tableidx*#10`] +[visit_id tableidx*#10] +[visit_exp []] +[visit_exp `memidx*#10`] +[visit_id memidx*#10] +[visit_exp []] +[visit_exp `elemidx*#10`] +[visit_id elemidx*#10] +[visit_exp []] +[visit_exp `dataidx*#10`] +[visit_id dataidx*#10] +[visit_exp []] +[visit_exp `localidx*#10`] +[visit_id localidx*#10] +[visit_exp [localidx]] +[visit_exp localidx] +[visit_id localidx] not free +[visit_exp `labelidx*#10`] +[visit_id labelidx*#10] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_localidx{localidx : localidx, `typeidx*#10` : typeidx*, `funcidx*#10` : funcidx*, `globalidx*#10` : globalidx*, `tableidx*#10` : tableidx*, `memidx*#10` : memidx*, `elemidx*#10` : elemidx*, `dataidx*#10` : dataidx*, `localidx*#10` : localidx*, `labelidx*#10` : labelidx*}(localidx) = {`TYPES`{`typeidx*#10`} [], `FUNCS`{`funcidx*#10`} [], `GLOBALS`{`globalidx*#10`} [], `TABLES`{`tableidx*#10`} [], `MEMS`{`memidx*#10`} [], `ELEMS`{`elemidx*#10`} [], `DATAS`{`dataidx*#10`} [], `LOCALS`{`localidx*#10`} [localidx], `LABELS`{`labelidx*#10`} []} +[check_dims] dataidx*#11 elemidx*#11 funcidx*#11 globalidx*#11 labelidx labelidx*#11 localidx*#11 memidx*#11 tableidx*#11 typeidx*#11 +[visit_exp labelidx] +[visit_id labelidx] +[visit_exp {`TYPES`{`typeidx*#11`} [], `FUNCS`{`funcidx*#11`} [], `GLOBALS`{`globalidx*#11`} [], `TABLES`{`tableidx*#11`} [], `MEMS`{`memidx*#11`} [], `ELEMS`{`elemidx*#11`} [], `DATAS`{`dataidx*#11`} [], `LOCALS`{`localidx*#11`} [], `LABELS`{`labelidx*#11`} [labelidx]}] +[visit_exp `typeidx*#11`] +[visit_id typeidx*#11] +[visit_exp []] +[visit_exp `funcidx*#11`] +[visit_id funcidx*#11] +[visit_exp []] +[visit_exp `globalidx*#11`] +[visit_id globalidx*#11] +[visit_exp []] +[visit_exp `tableidx*#11`] +[visit_id tableidx*#11] +[visit_exp []] +[visit_exp `memidx*#11`] +[visit_id memidx*#11] +[visit_exp []] +[visit_exp `elemidx*#11`] +[visit_id elemidx*#11] +[visit_exp []] +[visit_exp `dataidx*#11`] +[visit_id dataidx*#11] +[visit_exp []] +[visit_exp `localidx*#11`] +[visit_id localidx*#11] +[visit_exp []] +[visit_exp `labelidx*#11`] +[visit_id labelidx*#11] +[visit_exp [labelidx]] +[visit_exp labelidx] +[visit_id labelidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_labelidx{labelidx : labelidx, `typeidx*#11` : typeidx*, `funcidx*#11` : funcidx*, `globalidx*#11` : globalidx*, `tableidx*#11` : tableidx*, `memidx*#11` : memidx*, `elemidx*#11` : elemidx*, `dataidx*#11` : dataidx*, `localidx*#11` : localidx*, `labelidx*#11` : labelidx*}(labelidx) = {`TYPES`{`typeidx*#11`} [], `FUNCS`{`funcidx*#11`} [], `GLOBALS`{`globalidx*#11`} [], `TABLES`{`tableidx*#11`} [], `MEMS`{`memidx*#11`} [], `ELEMS`{`elemidx*#11`} [], `DATAS`{`dataidx*#11`} [], `LOCALS`{`localidx*#11`} [], `LABELS`{`labelidx*#11`} [labelidx]} +[check_dims] funcidx funcidx#3 +[visit_exp `FUNC`_externidx{funcidx#3}(funcidx)] +[visit_exp funcidx#3] +[visit_id funcidx#3] +[visit_exp (funcidx)] +[visit_exp funcidx] +[visit_id funcidx] +[visit_exp $free_funcidx(funcidx)] +[visit_exp funcidx] +[visit_id funcidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_externidx{funcidx#3 : funcidx, funcidx : funcidx}(`FUNC`_externidx{funcidx#3}(funcidx)) = $free_funcidx(funcidx) +[check_dims] globalidx globalidx#3 +[visit_exp `GLOBAL`_externidx{globalidx#3}(globalidx)] +[visit_exp globalidx#3] +[visit_id globalidx#3] +[visit_exp (globalidx)] +[visit_exp globalidx] +[visit_id globalidx] +[visit_exp $free_globalidx(globalidx)] +[visit_exp globalidx] +[visit_id globalidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_externidx{globalidx#3 : globalidx, globalidx : globalidx}(`GLOBAL`_externidx{globalidx#3}(globalidx)) = $free_globalidx(globalidx) +[check_dims] tableidx tableidx#3 +[visit_exp `TABLE`_externidx{tableidx#3}(tableidx)] +[visit_exp tableidx#3] +[visit_id tableidx#3] +[visit_exp (tableidx)] +[visit_exp tableidx] +[visit_id tableidx] +[visit_exp $free_tableidx(tableidx)] +[visit_exp tableidx] +[visit_id tableidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_externidx{tableidx#3 : tableidx, tableidx : tableidx}(`TABLE`_externidx{tableidx#3}(tableidx)) = $free_tableidx(tableidx) +[check_dims] memidx memidx#3 +[visit_exp `MEM`_externidx{memidx#3}(memidx)] +[visit_exp memidx#3] +[visit_id memidx#3] +[visit_exp (memidx)] +[visit_exp memidx] +[visit_id memidx] +[visit_exp $free_memidx(memidx)] +[visit_exp memidx] +[visit_id memidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec + def $free_externidx{memidx#3 : memidx, memidx : memidx}(`MEM`_externidx{memidx#3}(memidx)) = $free_memidx(memidx) +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id rectype] no dims +[visit_id rectype] +[visit_id n] no dims +[visit_id n] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id n] no dims +[visit_id n] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id n] no dims +[visit_id n] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id null?] no dims +[visit_id null?] +[visit_id heaptype] no dims +[visit_id heaptype] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +[check_dims] +DecD ANYREF : reftype +[check_dims] +DecD EQREF : reftype +[check_dims] +DecD I31REF : reftype +[check_dims] +DecD STRUCTREF : reftype +[check_dims] +DecD ARRAYREF : reftype +[check_dims] +DecD FUNCREF : reftype +[check_dims] +DecD EXNREF : reftype +[check_dims] +DecD EXTERNREF : reftype +[check_dims] +DecD NULLREF : reftype +[check_dims] +DecD NULLFUNCREF : reftype +[check_dims] +DecD NULLEXNREF : reftype +[check_dims] +DecD NULLEXTERNREF : reftype +[check_dims] heaptype#11 null?#11 +[visit_exp `REF`_reftype{`null?#11`, heaptype#11}(?(`NULL`_null), `ANY`_heaptype)] +[visit_exp `null?#11`] +[visit_id null?#11] +[visit_exp heaptype#11] +[visit_id heaptype#11] +[visit_exp (?(`NULL`_null), `ANY`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `ANY`_heaptype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $ANYREF{`null?#11` : null?, heaptype#11 : heaptype} = `REF`_reftype{`null?#11`, heaptype#11}(?(`NULL`_null), `ANY`_heaptype) +[check_dims] heaptype#23 null?#23 +[visit_exp `REF`_reftype{`null?#23`, heaptype#23}(?(`NULL`_null), `EQ`_heaptype)] +[visit_exp `null?#23`] +[visit_id null?#23] +[visit_exp heaptype#23] +[visit_id heaptype#23] +[visit_exp (?(`NULL`_null), `EQ`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `EQ`_heaptype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $EQREF{`null?#23` : null?, heaptype#23 : heaptype} = `REF`_reftype{`null?#23`, heaptype#23}(?(`NULL`_null), `EQ`_heaptype) +[check_dims] heaptype#35 null?#35 +[visit_exp `REF`_reftype{`null?#35`, heaptype#35}(?(`NULL`_null), `I31`_heaptype)] +[visit_exp `null?#35`] +[visit_id null?#35] +[visit_exp heaptype#35] +[visit_id heaptype#35] +[visit_exp (?(`NULL`_null), `I31`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `I31`_heaptype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $I31REF{`null?#35` : null?, heaptype#35 : heaptype} = `REF`_reftype{`null?#35`, heaptype#35}(?(`NULL`_null), `I31`_heaptype) +[check_dims] heaptype#47 null?#47 +[visit_exp `REF`_reftype{`null?#47`, heaptype#47}(?(`NULL`_null), `STRUCT`_heaptype)] +[visit_exp `null?#47`] +[visit_id null?#47] +[visit_exp heaptype#47] +[visit_id heaptype#47] +[visit_exp (?(`NULL`_null), `STRUCT`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `STRUCT`_heaptype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $STRUCTREF{`null?#47` : null?, heaptype#47 : heaptype} = `REF`_reftype{`null?#47`, heaptype#47}(?(`NULL`_null), `STRUCT`_heaptype) +[check_dims] heaptype#59 null?#59 +[visit_exp `REF`_reftype{`null?#59`, heaptype#59}(?(`NULL`_null), `ARRAY`_heaptype)] +[visit_exp `null?#59`] +[visit_id null?#59] +[visit_exp heaptype#59] +[visit_id heaptype#59] +[visit_exp (?(`NULL`_null), `ARRAY`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `ARRAY`_heaptype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $ARRAYREF{`null?#59` : null?, heaptype#59 : heaptype} = `REF`_reftype{`null?#59`, heaptype#59}(?(`NULL`_null), `ARRAY`_heaptype) +[check_dims] heaptype#71 null?#71 +[visit_exp `REF`_reftype{`null?#71`, heaptype#71}(?(`NULL`_null), `FUNC`_heaptype)] +[visit_exp `null?#71`] +[visit_id null?#71] +[visit_exp heaptype#71] +[visit_id heaptype#71] +[visit_exp (?(`NULL`_null), `FUNC`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `FUNC`_heaptype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $FUNCREF{`null?#71` : null?, heaptype#71 : heaptype} = `REF`_reftype{`null?#71`, heaptype#71}(?(`NULL`_null), `FUNC`_heaptype) +[check_dims] heaptype#83 null?#83 +[visit_exp `REF`_reftype{`null?#83`, heaptype#83}(?(`NULL`_null), `EXN`_heaptype)] +[visit_exp `null?#83`] +[visit_id null?#83] +[visit_exp heaptype#83] +[visit_id heaptype#83] +[visit_exp (?(`NULL`_null), `EXN`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `EXN`_heaptype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $EXNREF{`null?#83` : null?, heaptype#83 : heaptype} = `REF`_reftype{`null?#83`, heaptype#83}(?(`NULL`_null), `EXN`_heaptype) +[check_dims] heaptype#95 null?#95 +[visit_exp `REF`_reftype{`null?#95`, heaptype#95}(?(`NULL`_null), `EXTERN`_heaptype)] +[visit_exp `null?#95`] +[visit_id null?#95] +[visit_exp heaptype#95] +[visit_id heaptype#95] +[visit_exp (?(`NULL`_null), `EXTERN`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `EXTERN`_heaptype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $EXTERNREF{`null?#95` : null?, heaptype#95 : heaptype} = `REF`_reftype{`null?#95`, heaptype#95}(?(`NULL`_null), `EXTERN`_heaptype) +[check_dims] heaptype#107 null?#107 +[visit_exp `REF`_reftype{`null?#107`, heaptype#107}(?(`NULL`_null), `NONE`_heaptype)] +[visit_exp `null?#107`] +[visit_id null?#107] +[visit_exp heaptype#107] +[visit_id heaptype#107] +[visit_exp (?(`NULL`_null), `NONE`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `NONE`_heaptype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $NULLREF{`null?#107` : null?, heaptype#107 : heaptype} = `REF`_reftype{`null?#107`, heaptype#107}(?(`NULL`_null), `NONE`_heaptype) +[check_dims] heaptype#119 null?#119 +[visit_exp `REF`_reftype{`null?#119`, heaptype#119}(?(`NULL`_null), `NOFUNC`_heaptype)] +[visit_exp `null?#119`] +[visit_id null?#119] +[visit_exp heaptype#119] +[visit_id heaptype#119] +[visit_exp (?(`NULL`_null), `NOFUNC`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `NOFUNC`_heaptype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $NULLFUNCREF{`null?#119` : null?, heaptype#119 : heaptype} = `REF`_reftype{`null?#119`, heaptype#119}(?(`NULL`_null), `NOFUNC`_heaptype) +[check_dims] heaptype#131 null?#131 +[visit_exp `REF`_reftype{`null?#131`, heaptype#131}(?(`NULL`_null), `NOEXN`_heaptype)] +[visit_exp `null?#131`] +[visit_id null?#131] +[visit_exp heaptype#131] +[visit_id heaptype#131] +[visit_exp (?(`NULL`_null), `NOEXN`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `NOEXN`_heaptype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $NULLEXNREF{`null?#131` : null?, heaptype#131 : heaptype} = `REF`_reftype{`null?#131`, heaptype#131}(?(`NULL`_null), `NOEXN`_heaptype) +[check_dims] heaptype#143 null?#143 +[visit_exp `REF`_reftype{`null?#143`, heaptype#143}(?(`NULL`_null), `NOEXTERN`_heaptype)] +[visit_exp `null?#143`] +[visit_id null?#143] +[visit_exp heaptype#143] +[visit_id heaptype#143] +[visit_exp (?(`NULL`_null), `NOEXTERN`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `NOEXTERN`_heaptype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $NULLEXTERNREF{`null?#143` : null?, heaptype#143 : heaptype} = `REF`_reftype{`null?#143`, heaptype#143}(?(`NULL`_null), `NOEXTERN`_heaptype) +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id mut?] no dims +[visit_id mut?] +[visit_id storagetype] no dims +[visit_id storagetype] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id _] not free +[visit_id _] no dims +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id fieldtype] no dims +[visit_id fieldtype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id resulttype] no dims +[visit_id resulttype] +[visit_id resulttype] not free +[visit_id resulttype] no dims +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id final?] no dims +[visit_id final?] +[visit_id typeuse*] no dims +[visit_id typeuse*] +[visit_id comptype] no dims +[visit_id comptype] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id _] not free +[visit_id _] no dims +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id u64] no dims +[visit_id u64] +[visit_id u64?] no dims +[visit_id u64?] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id mut?] no dims +[visit_id mut?] +[visit_id valtype] no dims +[visit_id valtype] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id addrtype] no dims +[visit_id addrtype] +[visit_id limits] no dims +[visit_id limits] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id addrtype] no dims +[visit_id addrtype] +[visit_id limits] no dims +[visit_id limits] +[visit_id reftype] no dims +[visit_id reftype] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tagtype] no dims +[visit_id tagtype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id globaltype] no dims +[visit_id globaltype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memtype] no dims +[visit_id memtype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tabletype] no dims +[visit_id tabletype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeuse] no dims +[visit_id typeuse] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id externtype*] no dims +[visit_id externtype*] +[visit_id externtype*] not free +[visit_id externtype*] no dims +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] N +DecD IN(N : N) : Inn +[visit_id N] not free +[check_dims] +[visit_exp 32] +[visit_exp `I32`_Inn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $IN(32) = `I32`_Inn +[check_dims] +[visit_exp 64] +[visit_exp `I64`_Inn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $IN(64) = `I64`_Inn +[check_dims] N +DecD FN(N : N) : Fnn +[visit_id N] not free +[check_dims] +[visit_exp 32] +[visit_exp `F32`_Fnn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $FN(32) = `F32`_Fnn +[check_dims] +[visit_exp 64] +[visit_exp `F64`_Fnn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $FN(64) = `F64`_Fnn +[check_dims] N +DecD JN(N : N) : Jnn +[visit_id N] not free +[check_dims] +[visit_exp 8] +[visit_exp `I8`_Jnn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $JN(8) = `I8`_Jnn +[check_dims] +[visit_exp 16] +[visit_exp `I16`_Jnn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $JN(16) = `I16`_Jnn +[check_dims] +[visit_exp 32] +[visit_exp `I32`_Jnn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $JN(32) = `I32`_Jnn +[check_dims] +[visit_exp 64] +[visit_exp `I64`_Jnn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $JN(64) = `I64`_Jnn +[check_dims] numtype +DecD size(numtype : numtype) : nat +[visit_id numtype] not free +[check_dims] vectype +DecD vsize(vectype : vectype) : nat +[visit_id vectype] not free +[check_dims] packtype +DecD psize(packtype : packtype) : nat +[visit_id packtype] not free +[check_dims] lanetype +DecD lsize(lanetype : lanetype) : nat +[visit_id lanetype] not free +[check_dims] storagetype +DecD zsize(storagetype : storagetype) : nat +[visit_id storagetype] not free +[check_dims] Inn +DecD isize(Inn : Inn) : nat +[visit_id Inn] not free +[check_dims] Jnn +DecD jsize(Jnn : Jnn) : nat +[visit_id Jnn] not free +[check_dims] Fnn +DecD fsize(Fnn : Fnn) : nat +[visit_id Fnn] not free +[check_dims] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp 32] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $size(`I32`_numtype) = 32 +[check_dims] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp 64] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $size(`I64`_numtype) = 64 +[check_dims] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp 32] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $size(`F32`_numtype) = 32 +[check_dims] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp 64] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $size(`F64`_numtype) = 64 +[check_dims] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp 128] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $vsize(`V128`_vectype) = 128 +[check_dims] +[visit_exp `I8`_packtype] +[visit_exp ()] +[visit_exp 8] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $psize(`I8`_packtype) = 8 +[check_dims] +[visit_exp `I16`_packtype] +[visit_exp ()] +[visit_exp 16] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $psize(`I16`_packtype) = 16 +[check_dims] numtype +[visit_exp (numtype : numtype <: lanetype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp $size(numtype)] +[visit_exp numtype] +[visit_id numtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $lsize{numtype : numtype}((numtype : numtype <: lanetype)) = $size(numtype) +[check_dims] packtype +[visit_exp (packtype : packtype <: lanetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp $psize(packtype)] +[visit_exp packtype] +[visit_id packtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $lsize{packtype : packtype}((packtype : packtype <: lanetype)) = $psize(packtype) +[check_dims] numtype +[visit_exp (numtype : numtype <: storagetype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp $size(numtype)] +[visit_exp numtype] +[visit_id numtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $zsize{numtype : numtype}((numtype : numtype <: storagetype)) = $size(numtype) +[check_dims] vectype +[visit_exp (vectype : vectype <: storagetype)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp $vsize(vectype)] +[visit_exp vectype] +[visit_id vectype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $zsize{vectype : vectype}((vectype : vectype <: storagetype)) = $vsize(vectype) +[check_dims] packtype +[visit_exp (packtype : packtype <: storagetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp $psize(packtype)] +[visit_exp packtype] +[visit_id packtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $zsize{packtype : packtype}((packtype : packtype <: storagetype)) = $psize(packtype) +[check_dims] Inn +[visit_exp Inn] +[visit_id Inn] +[visit_exp $size((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $isize{Inn : Inn}(Inn) = $size((Inn : Inn <: numtype)) +[check_dims] Fnn +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp $size((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $fsize{Fnn : Fnn}(Fnn) = $size((Fnn : Fnn <: numtype)) +[check_dims] Jnn +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp $lsize((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $jsize{Jnn : Jnn}(Jnn) = $lsize((Jnn : Jnn <: lanetype)) +[check_dims] nat +DecD inv_isize(nat : nat) : Inn +[visit_id nat] not free +[check_dims] nat +DecD inv_jsize(nat : nat) : Jnn +[visit_id nat] not free +[check_dims] nat +DecD inv_fsize(nat : nat) : Fnn +[visit_id nat] not free +[check_dims] +[visit_exp 32] +[visit_exp `I32`_Inn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $inv_isize(32) = `I32`_Inn +[check_dims] +[visit_exp 64] +[visit_exp `I64`_Inn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $inv_isize(64) = `I64`_Inn +[check_dims] +[visit_exp 32] +[visit_exp `F32`_Fnn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $inv_fsize(32) = `F32`_Fnn +[check_dims] +[visit_exp 64] +[visit_exp `F64`_Fnn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $inv_fsize(64) = `F64`_Fnn +[check_dims] +[visit_exp 8] +[visit_exp `I8`_Jnn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $inv_jsize(8) = `I8`_Jnn +[check_dims] +[visit_exp 16] +[visit_exp `I16`_Jnn] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $inv_jsize(16) = `I16`_Jnn +[check_dims] n +[visit_exp n] +[visit_id n] +[visit_exp ($inv_isize(n) : Inn <: Jnn)] +[visit_exp $inv_isize(n)] +[visit_exp n] +[visit_id n] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $inv_jsize{n : n}(n) = ($inv_isize(n) : Inn <: Jnn) +[check_dims] numtype +DecD sizenn(numtype : numtype) : nat +[visit_id numtype] not free +[check_dims] numtype +DecD sizenn1(numtype : numtype) : nat +[visit_id numtype] not free +[check_dims] numtype +DecD sizenn2(numtype : numtype) : nat +[visit_id numtype] not free +[check_dims] nt +[visit_exp nt] +[visit_id nt] +[visit_exp $size(nt)] +[visit_exp nt] +[visit_id nt] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $sizenn{nt : numtype}(nt) = $size(nt) +[check_dims] nt +[visit_exp nt] +[visit_id nt] +[visit_exp $size(nt)] +[visit_exp nt] +[visit_id nt] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $sizenn1{nt : numtype}(nt) = $size(nt) +[check_dims] nt +[visit_exp nt] +[visit_id nt] +[visit_exp $size(nt)] +[visit_exp nt] +[visit_id nt] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $sizenn2{nt : numtype}(nt) = $size(nt) +[check_dims] vectype +DecD vsizenn(vectype : vectype) : nat +[visit_id vectype] not free +[check_dims] vt +[visit_exp vt] +[visit_id vt] +[visit_exp $vsize(vt)] +[visit_exp vt] +[visit_id vt] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $vsizenn{vt : vectype}(vt) = $vsize(vt) +[check_dims] packtype +DecD psizenn(packtype : packtype) : nat +[visit_id packtype] not free +[check_dims] pt +[visit_exp pt] +[visit_id pt] +[visit_exp $psize(pt)] +[visit_exp pt] +[visit_id pt] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $psizenn{pt : packtype}(pt) = $psize(pt) +[check_dims] lanetype +DecD lsizenn(lanetype : lanetype) : nat +[visit_id lanetype] not free +[check_dims] lanetype +DecD lsizenn1(lanetype : lanetype) : nat +[visit_id lanetype] not free +[check_dims] lanetype +DecD lsizenn2(lanetype : lanetype) : nat +[visit_id lanetype] not free +[check_dims] lt +[visit_exp lt] +[visit_id lt] +[visit_exp $lsize(lt)] +[visit_exp lt] +[visit_id lt] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $lsizenn{lt : lanetype}(lt) = $lsize(lt) +[check_dims] lt +[visit_exp lt] +[visit_id lt] +[visit_exp $lsize(lt)] +[visit_exp lt] +[visit_id lt] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $lsizenn1{lt : lanetype}(lt) = $lsize(lt) +[check_dims] lt +[visit_exp lt] +[visit_id lt] +[visit_exp $lsize(lt)] +[visit_exp lt] +[visit_id lt] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $lsizenn2{lt : lanetype}(lt) = $lsize(lt) +[check_dims] Jnn +DecD jsizenn(Jnn : Jnn) : nat +[visit_id Jnn] not free +[check_dims] Jnn +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp $lsize((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $jsizenn{Jnn : Jnn}(Jnn) = $lsize((Jnn : Jnn <: lanetype)) +[check_dims] nat +DecD inv_jsizenn(nat : nat) : Jnn +[visit_id nat] not free +[check_dims] n +[visit_exp n] +[visit_id n] +[visit_exp $inv_jsize(n)] +[visit_exp n] +[visit_id n] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $inv_jsizenn{n : n}(n) = $inv_jsize(n) +[check_dims] lanetype +DecD lunpack(lanetype : lanetype) : numtype +[visit_id lanetype] not free +[check_dims] numtype +[visit_exp (numtype : numtype <: lanetype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp numtype] +[visit_id numtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $lunpack{numtype : numtype}((numtype : numtype <: lanetype)) = numtype +[check_dims] packtype +[visit_exp (packtype : packtype <: lanetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp `I32`_numtype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $lunpack{packtype : packtype}((packtype : packtype <: lanetype)) = `I32`_numtype +[check_dims] storagetype +DecD unpack(storagetype : storagetype) : valtype +[visit_id storagetype] not free +[check_dims] valtype +[visit_exp (valtype : valtype <: storagetype)] +[visit_exp valtype] +[visit_id valtype] +[visit_exp valtype] +[visit_id valtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $unpack{valtype : valtype}((valtype : valtype <: storagetype)) = valtype +[check_dims] packtype +[visit_exp (packtype : packtype <: storagetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp `I32`_valtype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $unpack{packtype : packtype}((packtype : packtype <: storagetype)) = `I32`_valtype +[check_dims] storagetype +DecD nunpack(storagetype : storagetype) : numtype +[visit_id storagetype] not free +[check_dims] numtype +[visit_exp (numtype : numtype <: storagetype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp numtype] +[visit_id numtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $nunpack{numtype : numtype}((numtype : numtype <: storagetype)) = numtype +[check_dims] packtype +[visit_exp (packtype : packtype <: storagetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp `I32`_numtype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $nunpack{packtype : packtype}((packtype : packtype <: storagetype)) = `I32`_numtype +[check_dims] storagetype +DecD vunpack(storagetype : storagetype) : vectype +[visit_id storagetype] not free +[check_dims] vectype +[visit_exp (vectype : vectype <: storagetype)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp vectype] +[visit_id vectype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $vunpack{vectype : vectype}((vectype : vectype <: storagetype)) = vectype +[check_dims] storagetype +DecD cunpack(storagetype : storagetype) : consttype +[visit_id storagetype] not free +[check_dims] consttype +[visit_exp (consttype : consttype <: storagetype)] +[visit_exp consttype] +[visit_id consttype] +[visit_exp consttype] +[visit_id consttype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $cunpack{consttype : consttype}((consttype : consttype <: storagetype)) = consttype +[check_dims] packtype +[visit_exp (packtype : packtype <: storagetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp `I32`_consttype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $cunpack{packtype : packtype}((packtype : packtype <: storagetype)) = `I32`_consttype +[check_dims] lanetype +[visit_exp (lanetype : lanetype <: storagetype)] +[visit_exp lanetype] +[visit_id lanetype] +[visit_exp ($lunpack(lanetype) : numtype <: consttype)] +[visit_exp $lunpack(lanetype)] +[visit_exp lanetype] +[visit_id lanetype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $cunpack{lanetype : lanetype}((lanetype : lanetype <: storagetype)) = ($lunpack(lanetype) : numtype <: consttype) +[check_dims] addrtype +DecD minat(addrtype : addrtype, addrtype : addrtype) : addrtype +[visit_id addrtype] not free +[visit_id addrtype] not free +[check_dims] at_1 at_2 +[visit_exp at_1] +[visit_id at_1] +[visit_exp at_2] +[visit_id at_2] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp ($size((at_1 : addrtype <: numtype)) <= $size((at_2 : addrtype <: numtype)))] +[visit_exp $size((at_1 : addrtype <: numtype))] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp $size((at_2 : addrtype <: numtype))] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $minat{at_1 : addrtype, at_2 : addrtype}(at_1, at_2) = at_1 + -- if ($size((at_1 : addrtype <: numtype)) <= $size((at_2 : addrtype <: numtype))) +[check_dims] at_1 at_2 +[visit_exp at_1] +[visit_id at_1] +[visit_exp at_2] +[visit_id at_2] +[visit_exp at_2] +[visit_id at_2] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $minat{at_1 : addrtype, at_2 : addrtype}(at_1, at_2) = at_2 + -- otherwise +[check_dims] reftype +DecD diffrt(reftype : reftype, reftype : reftype) : reftype +[visit_id reftype] not free +[visit_id reftype] not free +[check_dims] heaptype#155 heaptype#167 heaptype#179 ht_1 ht_2 null?#155 null?#167 null?#179 null_1 +[visit_exp `REF`_reftype{`null?#155`, heaptype#155}(null_1?{null_1 <- `null_1?`}, ht_1)] +[visit_exp `null?#155`] +[visit_id null?#155] +[visit_exp heaptype#155] +[visit_id heaptype#155] +[visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] +[visit_exp null_1?{null_1 <- `null_1?`}] +[scope_enter null_1] +[visit_exp null_1] +[visit_id null_1] not free +[visit_id null_1] not free +[scope_exit null_1] +[visit_exp `null_1?`] +[visit_id null_1?] no dims +[visit_id null_1?] +[visit_exp ht_1] +[visit_id ht_1] +[visit_exp `REF`_reftype{`null?#167`, heaptype#167}(?(`NULL`_null), ht_2)] +[visit_exp `null?#167`] +[visit_id null?#167] +[visit_exp heaptype#167] +[visit_id heaptype#167] +[visit_exp (?(`NULL`_null), ht_2)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht_2] +[visit_id ht_2] +[visit_exp `REF`_reftype{`null?#179`, heaptype#179}(?(), ht_1)] +[visit_exp `null?#179`] +[visit_id null?#179] +[visit_exp heaptype#179] +[visit_id heaptype#179] +[visit_exp (?(), ht_1)] +[visit_exp ?()] +[visit_exp ht_1] +[visit_id ht_1] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $diffrt{`null?#155` : null?, heaptype#155 : heaptype, `null_1?` : null?, ht_1 : heaptype, `null?#167` : null?, heaptype#167 : heaptype, ht_2 : heaptype, `null?#179` : null?, heaptype#179 : heaptype}(`REF`_reftype{`null?#155`, heaptype#155}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#167`, heaptype#167}(?(`NULL`_null), ht_2)) = `REF`_reftype{`null?#179`, heaptype#179}(?(), ht_1) +[check_dims] heaptype#191 heaptype#203 heaptype#215 ht_1 ht_2 null?#191 null?#203 null?#215 null_1 +[visit_exp `REF`_reftype{`null?#191`, heaptype#191}(null_1?{null_1 <- `null_1?`}, ht_1)] +[visit_exp `null?#191`] +[visit_id null?#191] +[visit_exp heaptype#191] +[visit_id heaptype#191] +[visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] +[visit_exp null_1?{null_1 <- `null_1?`}] +[scope_enter null_1] +[visit_exp null_1] +[visit_id null_1] not free +[visit_id null_1] not free +[scope_exit null_1] +[visit_exp `null_1?`] +[visit_id null_1?] no dims +[visit_id null_1?] +[visit_exp ht_1] +[visit_id ht_1] +[visit_exp `REF`_reftype{`null?#203`, heaptype#203}(?(), ht_2)] +[visit_exp `null?#203`] +[visit_id null?#203] +[visit_exp heaptype#203] +[visit_id heaptype#203] +[visit_exp (?(), ht_2)] +[visit_exp ?()] +[visit_exp ht_2] +[visit_id ht_2] +[visit_exp `REF`_reftype{`null?#215`, heaptype#215}(null_1?{null_1 <- `null_1?`}, ht_1)] +[visit_exp `null?#215`] +[visit_id null?#215] +[visit_exp heaptype#215] +[visit_id heaptype#215] +[visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] +[visit_exp null_1?{null_1 <- `null_1?`}] +[scope_enter null_1] +[visit_exp null_1] +[visit_id null_1] not free +[visit_id null_1] not free +[scope_exit null_1] +[visit_exp `null_1?`] +[visit_id null_1?] not free +[visit_id null_1?] no dims +[visit_exp ht_1] +[visit_id ht_1] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $diffrt{`null?#191` : null?, heaptype#191 : heaptype, `null_1?` : null?, ht_1 : heaptype, `null?#203` : null?, heaptype#203 : heaptype, ht_2 : heaptype, `null?#215` : null?, heaptype#215 : heaptype}(`REF`_reftype{`null?#191`, heaptype#191}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#203`, heaptype#203}(?(), ht_2)) = `REF`_reftype{`null?#215`, heaptype#215}(null_1?{null_1 <- `null_1?`}, ht_1) +[check_dims] typeuse +DecD as_deftype(typeuse : typeuse) : deftype +[visit_id typeuse] not free +[check_dims] dt +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] +[visit_exp dt] +[visit_id dt] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $as_deftype{dt : deftype}((dt : deftype <: typeuse)) = dt +[check_dims] _ +DecD tagsxt(externtype*) : tagtype* +[visit_id _] not free +[check_dims] _ +DecD globalsxt(externtype*) : globaltype* +[visit_id _] not free +[check_dims] _ +DecD memsxt(externtype*) : memtype* +[visit_id _] not free +[check_dims] _ +DecD tablesxt(externtype*) : tabletype* +[visit_id _] not free +[check_dims] _ +DecD funcsxt(externtype*) : deftype* +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $tagsxt([]) = [] +[check_dims] jt tagtype#1 xt +[visit_exp [`TAG`_externtype{tagtype#1}(jt)] ++ xt*{xt <- `xt*`}] +[visit_exp [`TAG`_externtype{tagtype#1}(jt)]] +[visit_exp `TAG`_externtype{tagtype#1}(jt)] +[visit_exp tagtype#1] +[visit_id tagtype#1] +[visit_exp (jt)] +[visit_exp jt] +[visit_id jt] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] no dims +[visit_id xt*] +[visit_exp [jt] ++ $tagsxt(xt*{xt <- `xt*`})] +[visit_exp [jt]] +[visit_exp jt] +[visit_id jt] not free +[visit_exp $tagsxt(xt*{xt <- `xt*`})] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] not free +[visit_id xt*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $tagsxt{tagtype#1 : tagtype, jt : tagtype, `xt*` : externtype*}([`TAG`_externtype{tagtype#1}(jt)] ++ xt*{xt <- `xt*`}) = [jt] ++ $tagsxt(xt*{xt <- `xt*`}) +[check_dims] externtype xt +[visit_exp [externtype] ++ xt*{xt <- `xt*`}] +[visit_exp [externtype]] +[visit_exp externtype] +[visit_id externtype] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] no dims +[visit_id xt*] +[visit_exp $tagsxt(xt*{xt <- `xt*`})] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] not free +[visit_id xt*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $tagsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $tagsxt(xt*{xt <- `xt*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $globalsxt([]) = [] +[check_dims] globaltype#1 gt xt +[visit_exp [`GLOBAL`_externtype{globaltype#1}(gt)] ++ xt*{xt <- `xt*`}] +[visit_exp [`GLOBAL`_externtype{globaltype#1}(gt)]] +[visit_exp `GLOBAL`_externtype{globaltype#1}(gt)] +[visit_exp globaltype#1] +[visit_id globaltype#1] +[visit_exp (gt)] +[visit_exp gt] +[visit_id gt] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] no dims +[visit_id xt*] +[visit_exp [gt] ++ $globalsxt(xt*{xt <- `xt*`})] +[visit_exp [gt]] +[visit_exp gt] +[visit_id gt] not free +[visit_exp $globalsxt(xt*{xt <- `xt*`})] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] not free +[visit_id xt*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $globalsxt{globaltype#1 : globaltype, gt : globaltype, `xt*` : externtype*}([`GLOBAL`_externtype{globaltype#1}(gt)] ++ xt*{xt <- `xt*`}) = [gt] ++ $globalsxt(xt*{xt <- `xt*`}) +[check_dims] externtype xt +[visit_exp [externtype] ++ xt*{xt <- `xt*`}] +[visit_exp [externtype]] +[visit_exp externtype] +[visit_id externtype] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] no dims +[visit_id xt*] +[visit_exp $globalsxt(xt*{xt <- `xt*`})] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] not free +[visit_id xt*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $globalsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $globalsxt(xt*{xt <- `xt*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $memsxt([]) = [] +[check_dims] memtype#1 mt xt +[visit_exp [`MEM`_externtype{memtype#1}(mt)] ++ xt*{xt <- `xt*`}] +[visit_exp [`MEM`_externtype{memtype#1}(mt)]] +[visit_exp `MEM`_externtype{memtype#1}(mt)] +[visit_exp memtype#1] +[visit_id memtype#1] +[visit_exp (mt)] +[visit_exp mt] +[visit_id mt] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] no dims +[visit_id xt*] +[visit_exp [mt] ++ $memsxt(xt*{xt <- `xt*`})] +[visit_exp [mt]] +[visit_exp mt] +[visit_id mt] not free +[visit_exp $memsxt(xt*{xt <- `xt*`})] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] not free +[visit_id xt*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $memsxt{memtype#1 : memtype, mt : memtype, `xt*` : externtype*}([`MEM`_externtype{memtype#1}(mt)] ++ xt*{xt <- `xt*`}) = [mt] ++ $memsxt(xt*{xt <- `xt*`}) +[check_dims] externtype xt +[visit_exp [externtype] ++ xt*{xt <- `xt*`}] +[visit_exp [externtype]] +[visit_exp externtype] +[visit_id externtype] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] no dims +[visit_id xt*] +[visit_exp $memsxt(xt*{xt <- `xt*`})] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] not free +[visit_id xt*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $memsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $memsxt(xt*{xt <- `xt*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $tablesxt([]) = [] +[check_dims] tabletype#1 tt xt +[visit_exp [`TABLE`_externtype{tabletype#1}(tt)] ++ xt*{xt <- `xt*`}] +[visit_exp [`TABLE`_externtype{tabletype#1}(tt)]] +[visit_exp `TABLE`_externtype{tabletype#1}(tt)] +[visit_exp tabletype#1] +[visit_id tabletype#1] +[visit_exp (tt)] +[visit_exp tt] +[visit_id tt] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] no dims +[visit_id xt*] +[visit_exp [tt] ++ $tablesxt(xt*{xt <- `xt*`})] +[visit_exp [tt]] +[visit_exp tt] +[visit_id tt] not free +[visit_exp $tablesxt(xt*{xt <- `xt*`})] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] not free +[visit_id xt*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $tablesxt{tabletype#1 : tabletype, tt : tabletype, `xt*` : externtype*}([`TABLE`_externtype{tabletype#1}(tt)] ++ xt*{xt <- `xt*`}) = [tt] ++ $tablesxt(xt*{xt <- `xt*`}) +[check_dims] externtype xt +[visit_exp [externtype] ++ xt*{xt <- `xt*`}] +[visit_exp [externtype]] +[visit_exp externtype] +[visit_id externtype] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] no dims +[visit_id xt*] +[visit_exp $tablesxt(xt*{xt <- `xt*`})] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] not free +[visit_id xt*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $tablesxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $tablesxt(xt*{xt <- `xt*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $funcsxt([]) = [] +[check_dims] dt typeuse#1 xt +[visit_exp [`FUNC`_externtype{typeuse#1}((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}] +[visit_exp [`FUNC`_externtype{typeuse#1}((dt : deftype <: typeuse))]] +[visit_exp `FUNC`_externtype{typeuse#1}((dt : deftype <: typeuse))] +[visit_exp typeuse#1] +[visit_id typeuse#1] +[visit_exp ((dt : deftype <: typeuse))] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] no dims +[visit_id xt*] +[visit_exp [dt] ++ $funcsxt(xt*{xt <- `xt*`})] +[visit_exp [dt]] +[visit_exp dt] +[visit_id dt] not free +[visit_exp $funcsxt(xt*{xt <- `xt*`})] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] not free +[visit_id xt*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $funcsxt{typeuse#1 : typeuse, dt : deftype, `xt*` : externtype*}([`FUNC`_externtype{typeuse#1}((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}) = [dt] ++ $funcsxt(xt*{xt <- `xt*`}) +[check_dims] externtype xt +[visit_exp [externtype] ++ xt*{xt <- `xt*`}] +[visit_exp [externtype]] +[visit_exp externtype] +[visit_id externtype] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] no dims +[visit_id xt*] +[visit_exp $funcsxt(xt*{xt <- `xt*`})] +[visit_exp xt*{xt <- `xt*`}] +[scope_enter xt] +[visit_exp xt] +[visit_id xt] not free +[visit_id xt] not free +[scope_exit xt] +[visit_exp `xt*`] +[visit_id xt*] not free +[visit_id xt*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $funcsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $funcsxt(xt*{xt <- `xt*`}) + -- otherwise +[check_dims] _ typevar +DecD subst_typevar(typevar : typevar, typevar*, typeuse*) : typeuse +[visit_id typevar] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ typeuse +DecD subst_typeuse(typeuse : typeuse, typevar*, typeuse*) : typeuse +[visit_id typeuse] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ addrtype +DecD subst_addrtype(addrtype : addrtype, typevar*, typeuse*) : addrtype +[visit_id addrtype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ numtype +DecD subst_numtype(numtype : numtype, typevar*, typeuse*) : numtype +[visit_id numtype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ vectype +DecD subst_vectype(vectype : vectype, typevar*, typeuse*) : vectype +[visit_id vectype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ heaptype +DecD subst_heaptype(heaptype : heaptype, typevar*, typeuse*) : heaptype +[visit_id heaptype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ reftype +DecD subst_reftype(reftype : reftype, typevar*, typeuse*) : reftype +[visit_id reftype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ valtype +DecD subst_valtype(valtype : valtype, typevar*, typeuse*) : valtype +[visit_id valtype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ packtype +DecD subst_packtype(packtype : packtype, typevar*, typeuse*) : packtype +[visit_id packtype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ storagetype +DecD subst_storagetype(storagetype : storagetype, typevar*, typeuse*) : storagetype +[visit_id storagetype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ fieldtype +DecD subst_fieldtype(fieldtype : fieldtype, typevar*, typeuse*) : fieldtype +[visit_id fieldtype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ comptype +DecD subst_comptype(comptype : comptype, typevar*, typeuse*) : comptype +[visit_id comptype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ subtype +DecD subst_subtype(subtype : subtype, typevar*, typeuse*) : subtype +[visit_id subtype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ rectype +DecD subst_rectype(rectype : rectype, typevar*, typeuse*) : rectype +[visit_id rectype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ deftype +DecD subst_deftype(deftype : deftype, typevar*, typeuse*) : deftype +[visit_id deftype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ tagtype +DecD subst_tagtype(tagtype : tagtype, typevar*, typeuse*) : tagtype +[visit_id tagtype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ globaltype +DecD subst_globaltype(globaltype : globaltype, typevar*, typeuse*) : globaltype +[visit_id globaltype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ memtype +DecD subst_memtype(memtype : memtype, typevar*, typeuse*) : memtype +[visit_id memtype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ tabletype +DecD subst_tabletype(tabletype : tabletype, typevar*, typeuse*) : tabletype +[visit_id tabletype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ externtype +DecD subst_externtype(externtype : externtype, typevar*, typeuse*) : externtype +[visit_id externtype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] _ moduletype +DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype +[visit_id moduletype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] tv +[visit_exp tv] +[visit_id tv] +[visit_exp []] +[visit_exp []] +[visit_exp (tv : typevar <: typeuse)] +[visit_exp tv] +[visit_id tv] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_typevar{tv : typevar}(tv, [], []) = (tv : typevar <: typeuse) +[check_dims] tu' tu_1 tv tv' tv_1 +[visit_exp tv] +[visit_id tv] +[visit_exp [tv_1] ++ tv'*{tv' <- `tv'*`}] +[visit_exp [tv_1]] +[visit_exp tv_1] +[visit_id tv_1] +[visit_exp tv'*{tv' <- `tv'*`}] +[scope_enter tv'] +[visit_exp tv'] +[visit_id tv'] not free +[visit_id tv'] not free +[scope_exit tv'] +[visit_exp `tv'*`] +[visit_id tv'*] no dims +[visit_id tv'*] +[visit_exp [tu_1] ++ tu'*{tu' <- `tu'*`}] +[visit_exp [tu_1]] +[visit_exp tu_1] +[visit_id tu_1] +[visit_exp tu'*{tu' <- `tu'*`}] +[scope_enter tu'] +[visit_exp tu'] +[visit_id tu'] not free +[visit_id tu'] not free +[scope_exit tu'] +[visit_exp `tu'*`] +[visit_id tu'*] no dims +[visit_id tu'*] +[visit_exp tu_1] +[visit_id tu_1] not free +[visit_exp (tv = tv_1)] +[visit_exp tv] +[visit_id tv] not free +[visit_exp tv_1] +[visit_id tv_1] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_typevar{tv : typevar, tv_1 : typevar, `tv'*` : typevar*, tu_1 : typeuse, `tu'*` : typeuse*}(tv, [tv_1] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) = tu_1 + -- if (tv = tv_1) +[check_dims] tu' tu_1 tv tv' tv_1 +[visit_exp tv] +[visit_id tv] +[visit_exp [tv_1] ++ tv'*{tv' <- `tv'*`}] +[visit_exp [tv_1]] +[visit_exp tv_1] +[visit_id tv_1] +[visit_exp tv'*{tv' <- `tv'*`}] +[scope_enter tv'] +[visit_exp tv'] +[visit_id tv'] not free +[visit_id tv'] not free +[scope_exit tv'] +[visit_exp `tv'*`] +[visit_id tv'*] no dims +[visit_id tv'*] +[visit_exp [tu_1] ++ tu'*{tu' <- `tu'*`}] +[visit_exp [tu_1]] +[visit_exp tu_1] +[visit_id tu_1] +[visit_exp tu'*{tu' <- `tu'*`}] +[scope_enter tu'] +[visit_exp tu'] +[visit_id tu'] not free +[visit_id tu'] not free +[scope_exit tu'] +[visit_exp `tu'*`] +[visit_id tu'*] no dims +[visit_id tu'*] +[visit_exp $subst_typevar(tv, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})] +[visit_exp tv] +[visit_id tv] not free +[visit_exp tv'*{tv' <- `tv'*`}] +[scope_enter tv'] +[visit_exp tv'] +[visit_id tv'] not free +[visit_id tv'] not free +[scope_exit tv'] +[visit_exp `tv'*`] +[visit_id tv'*] not free +[visit_id tv'*] no dims +[visit_exp tu'*{tu' <- `tu'*`}] +[scope_enter tu'] +[visit_exp tu'] +[visit_id tu'] not free +[visit_id tu'] not free +[scope_exit tu'] +[visit_exp `tu'*`] +[visit_id tu'*] not free +[visit_id tu'*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_typevar{tv : typevar, tv_1 : typevar, `tv'*` : typevar*, tu_1 : typeuse, `tu'*` : typeuse*}(tv, [tv_1] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) = $subst_typevar(tv, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) + -- otherwise +[check_dims] tu tv tv' +[visit_exp (tv' : typevar <: typeuse)] +[visit_exp tv'] +[visit_id tv'] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp $subst_typevar(tv', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp tv'] +[visit_id tv'] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_typeuse{tv' : typevar, `tv*` : typevar*, `tu*` : typeuse*}((tv' : typevar <: typeuse), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = $subst_typevar(tv', tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) +[check_dims] dt tu tv +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp ($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)] +[visit_exp $subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp dt] +[visit_id dt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_typeuse{dt : deftype, `tv*` : typevar*, `tu*` : typeuse*}((dt : deftype <: typeuse), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse) +[check_dims] at tu tv +[visit_exp at] +[visit_id at] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp at] +[visit_id at] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_addrtype{at : addrtype, `tv*` : typevar*, `tu*` : typeuse*}(at, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = at +[check_dims] nt tu tv +[visit_exp nt] +[visit_id nt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp nt] +[visit_id nt] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_numtype{nt : numtype, `tv*` : typevar*, `tu*` : typeuse*}(nt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = nt +[check_dims] tu tv vt +[visit_exp vt] +[visit_id vt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp vt] +[visit_id vt] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_vectype{vt : vectype, `tv*` : typevar*, `tu*` : typeuse*}(vt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = vt +[check_dims] tu tv tv' +[visit_exp (tv' : typevar <: heaptype)] +[visit_exp tv'] +[visit_id tv'] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp ($subst_typevar(tv', tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : typeuse <: heaptype)] +[visit_exp $subst_typevar(tv', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp tv'] +[visit_id tv'] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_heaptype{tv' : typevar, `tv*` : typevar*, `tu*` : typeuse*}((tv' : typevar <: heaptype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_typevar(tv', tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : typeuse <: heaptype) +[check_dims] dt tu tv +[visit_exp (dt : deftype <: heaptype)] +[visit_exp dt] +[visit_id dt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp ($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: heaptype)] +[visit_exp $subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp dt] +[visit_id dt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_heaptype{dt : deftype, `tv*` : typevar*, `tu*` : typeuse*}((dt : deftype <: heaptype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: heaptype) +[check_dims] ht tu tv +[visit_exp ht] +[visit_id ht] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp ht] +[visit_id ht] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_heaptype{ht : heaptype, `tv*` : typevar*, `tu*` : typeuse*}(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ht + -- otherwise +[check_dims] heaptype#227 heaptype#239 ht null null?#227 null?#239 tu tv +[visit_exp `REF`_reftype{`null?#227`, heaptype#227}(null?{null <- `null?`}, ht)] +[visit_exp `null?#227`] +[visit_id null?#227] +[visit_exp heaptype#227] +[visit_id heaptype#227] +[visit_exp (null?{null <- `null?`}, ht)] +[visit_exp null?{null <- `null?`}] +[scope_enter null] +[visit_exp null] +[visit_id null] not free +[visit_id null] not free +[scope_exit null] +[visit_exp `null?`] +[visit_id null?] no dims +[visit_id null?] +[visit_exp ht] +[visit_id ht] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `REF`_reftype{`null?#239`, heaptype#239}(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp `null?#239`] +[visit_id null?#239] +[visit_exp heaptype#239] +[visit_id heaptype#239] +[visit_exp (null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp null?{null <- `null?`}] +[scope_enter null] +[visit_exp null] +[visit_id null] not free +[visit_id null] not free +[scope_exit null] +[visit_exp `null?`] +[visit_id null?] not free +[visit_id null?] no dims +[visit_exp $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp ht] +[visit_id ht] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_reftype{`null?#227` : null?, heaptype#227 : heaptype, `null?` : null?, ht : heaptype, `tv*` : typevar*, `tu*` : typeuse*, `null?#239` : null?, heaptype#239 : heaptype}(`REF`_reftype{`null?#227`, heaptype#227}(null?{null <- `null?`}, ht), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REF`_reftype{`null?#239`, heaptype#239}(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] nt tu tv +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp ($subst_numtype(nt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : numtype <: valtype)] +[visit_exp $subst_numtype(nt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp nt] +[visit_id nt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_valtype{nt : numtype, `tv*` : typevar*, `tu*` : typeuse*}((nt : numtype <: valtype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_numtype(nt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : numtype <: valtype) +[check_dims] tu tv vt +[visit_exp (vt : vectype <: valtype)] +[visit_exp vt] +[visit_id vt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp ($subst_vectype(vt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : vectype <: valtype)] +[visit_exp $subst_vectype(vt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp vt] +[visit_id vt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_valtype{vt : vectype, `tv*` : typevar*, `tu*` : typeuse*}((vt : vectype <: valtype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_vectype(vt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : vectype <: valtype) +[check_dims] rt tu tv +[visit_exp (rt : reftype <: valtype)] +[visit_exp rt] +[visit_id rt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp ($subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : reftype <: valtype)] +[visit_exp $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp rt] +[visit_id rt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_valtype{rt : reftype, `tv*` : typevar*, `tu*` : typeuse*}((rt : reftype <: valtype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : reftype <: valtype) +[check_dims] tu tv +[visit_exp `BOT`_valtype] +[visit_exp ()] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `BOT`_valtype] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_valtype{`tv*` : typevar*, `tu*` : typeuse*}(`BOT`_valtype, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `BOT`_valtype +[check_dims] pt tu tv +[visit_exp pt] +[visit_id pt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp pt] +[visit_id pt] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_packtype{pt : packtype, `tv*` : typevar*, `tu*` : typeuse*}(pt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = pt +[check_dims] t tu tv +[visit_exp (t : valtype <: storagetype)] +[visit_exp t] +[visit_id t] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp ($subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : valtype <: storagetype)] +[visit_exp $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp t] +[visit_id t] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_storagetype{t : valtype, `tv*` : typevar*, `tu*` : typeuse*}((t : valtype <: storagetype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : valtype <: storagetype) +[check_dims] pt tu tv +[visit_exp (pt : packtype <: storagetype)] +[visit_exp pt] +[visit_id pt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp ($subst_packtype(pt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : packtype <: storagetype)] +[visit_exp $subst_packtype(pt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp pt] +[visit_id pt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_storagetype{pt : packtype, `tv*` : typevar*, `tu*` : typeuse*}((pt : packtype <: storagetype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_packtype(pt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : packtype <: storagetype) +[check_dims] mut mut?#67 mut?#79 storagetype#11 storagetype#23 tu tv zt +[visit_exp `%%`_fieldtype{`mut?#67`, storagetype#11}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#67`] +[visit_id mut?#67] +[visit_exp storagetype#11] +[visit_id storagetype#11] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `%%`_fieldtype{`mut?#79`, storagetype#23}(mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp `mut?#79`] +[visit_id mut?#79] +[visit_exp storagetype#23] +[visit_id storagetype#23] +[visit_exp (mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_exp $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp zt] +[visit_id zt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_fieldtype{`mut?#67` : mut?, storagetype#11 : storagetype, `mut?` : mut?, zt : storagetype, `tv*` : typevar*, `tu*` : typeuse*, `mut?#79` : mut?, storagetype#23 : storagetype}(`%%`_fieldtype{`mut?#67`, storagetype#11}(mut?{mut <- `mut?`}, zt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_fieldtype{`mut?#79`, storagetype#23}(mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] X*#11 X*#26 ft tu tv +[visit_exp `STRUCT`_comptype(`%`_list{`X*#11`}(ft*{ft <- `ft*`}))] +[visit_exp (`%`_list{`X*#11`}(ft*{ft <- `ft*`}))] +[visit_exp `%`_list{`X*#11`}(ft*{ft <- `ft*`})] +[visit_exp `X*#11`] +[visit_id X*#11] +[visit_exp (ft*{ft <- `ft*`})] +[visit_exp ft*{ft <- `ft*`}] +[scope_enter ft] +[visit_exp ft] +[visit_id ft] not free +[visit_id ft] not free +[scope_exit ft] +[visit_exp `ft*`] +[visit_id ft*] no dims +[visit_id ft*] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `STRUCT`_comptype(`%`_list{`X*#26`}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`}))] +[visit_exp (`%`_list{`X*#26`}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`}))] +[visit_exp `%`_list{`X*#26`}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})] +[visit_exp `X*#26`] +[visit_id X*#26] +[visit_exp ($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})] +[visit_exp $subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`}] +[scope_enter ft] +[visit_exp $subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp ft] +[visit_id ft] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +[visit_id ft] not free +[scope_exit ft] +[visit_exp `ft*`] +[visit_id ft*] not free +[visit_id ft*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_comptype{`X*#11` : fieldtype*, `ft*` : fieldtype*, `tv*` : typevar*, `tu*` : typeuse*, `X*#26` : fieldtype*}(`STRUCT`_comptype(`%`_list{`X*#11`}(ft*{ft <- `ft*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `STRUCT`_comptype(`%`_list{`X*#26`}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})) +[check_dims] fieldtype#1 fieldtype#3 ft tu tv +[visit_exp `ARRAY`_comptype{fieldtype#1}(ft)] +[visit_exp fieldtype#1] +[visit_id fieldtype#1] +[visit_exp (ft)] +[visit_exp ft] +[visit_id ft] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `ARRAY`_comptype{fieldtype#3}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp fieldtype#3] +[visit_id fieldtype#3] +[visit_exp ($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp $subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp ft] +[visit_id ft] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_comptype{fieldtype#1 : fieldtype, ft : fieldtype, `tv*` : typevar*, `tu*` : typeuse*, fieldtype#3 : fieldtype}(`ARRAY`_comptype{fieldtype#1}(ft), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `ARRAY`_comptype{fieldtype#3}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] X*#41 X*#54 X*#69 X*#82 resulttype#1 resulttype#4 t_1 t_2 tu tv +[visit_exp `FUNC%->%`_comptype{resulttype#1}(`%`_resulttype{`X*#41`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#54`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#1] +[visit_id resulttype#1] +[visit_exp (`%`_resulttype{`X*#41`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#54`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#41`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#41`] +[visit_id X*#41] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp `%`_resulttype{`X*#54`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#54`] +[visit_id X*#54] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `FUNC%->%`_comptype{resulttype#4}(`%`_resulttype{`X*#69`}($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype{`X*#82`}($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`}))] +[visit_exp resulttype#4] +[visit_id resulttype#4] +[visit_exp (`%`_resulttype{`X*#69`}($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype{`X*#82`}($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#69`}($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`})] +[visit_exp `X*#69`] +[visit_id X*#69] +[visit_exp ($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`})] +[visit_exp $subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp $subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp t_1] +[visit_id t_1] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `%`_resulttype{`X*#82`}($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})] +[visit_exp `X*#82`] +[visit_id X*#82] +[visit_exp ($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})] +[visit_exp $subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp $subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp t_2] +[visit_id t_2] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_comptype{resulttype#1 : resulttype, `X*#41` : valtype*, `t_1*` : valtype*, `X*#54` : valtype*, `t_2*` : valtype*, `tv*` : typevar*, `tu*` : typeuse*, resulttype#4 : resulttype, `X*#69` : valtype*, `X*#82` : valtype*}(`FUNC%->%`_comptype{resulttype#1}(`%`_resulttype{`X*#41`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#54`}(t_2*{t_2 <- `t_2*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC%->%`_comptype{resulttype#4}(`%`_resulttype{`X*#69`}($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype{`X*#82`}($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})) +[check_dims] comptype#11 comptype#23 ct final final?#11 final?#23 tu tu' tv typeuse*#11 typeuse*#23 +[visit_exp `SUB`_subtype{`final?#11`, `typeuse*#11`, comptype#11}(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct)] +[visit_exp `final?#11`] +[visit_id final?#11] +[visit_exp `typeuse*#11`] +[visit_id typeuse*#11] +[visit_exp comptype#11] +[visit_id comptype#11] +[visit_exp (final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct)] +[visit_exp final?{final <- `final?`}] +[scope_enter final] +[visit_exp final] +[visit_id final] not free +[visit_id final] not free +[scope_exit final] +[visit_exp `final?`] +[visit_id final?] no dims +[visit_id final?] +[visit_exp tu'*{tu' <- `tu'*`}] +[scope_enter tu'] +[visit_exp tu'] +[visit_id tu'] not free +[visit_id tu'] not free +[scope_exit tu'] +[visit_exp `tu'*`] +[visit_id tu'*] no dims +[visit_id tu'*] +[visit_exp ct] +[visit_id ct] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `SUB`_subtype{`final?#23`, `typeuse*#23`, comptype#23}(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp `final?#23`] +[visit_id final?#23] +[visit_exp `typeuse*#23`] +[visit_id typeuse*#23] +[visit_exp comptype#23] +[visit_id comptype#23] +[visit_exp (final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp final?{final <- `final?`}] +[scope_enter final] +[visit_exp final] +[visit_id final] not free +[visit_id final] not free +[scope_exit final] +[visit_exp `final?`] +[visit_id final?] not free +[visit_id final?] no dims +[visit_exp $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}] +[scope_enter tu'] +[visit_exp $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp tu'] +[visit_id tu'] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +[visit_id tu'] not free +[scope_exit tu'] +[visit_exp `tu'*`] +[visit_id tu'*] not free +[visit_id tu'*] no dims +[visit_exp $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp ct] +[visit_id ct] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_subtype{`final?#11` : final?, `typeuse*#11` : typeuse*, comptype#11 : comptype, `final?` : final?, `tu'*` : typeuse*, ct : comptype, `tv*` : typevar*, `tu*` : typeuse*, `final?#23` : final?, `typeuse*#23` : typeuse*, comptype#23 : comptype}(`SUB`_subtype{`final?#11`, `typeuse*#11`, comptype#11}(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `SUB`_subtype{`final?#23`, `typeuse*#23`, comptype#23}(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] _ +DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp []] +[visit_exp ([], [])] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $minus_recs([], []) = ([], []) +[check_dims] n n#53 tu tu_1 tv +[visit_exp [`REC`_typevar{n#53}(n)] ++ tv*{tv <- `tv*`}] +[visit_exp [`REC`_typevar{n#53}(n)]] +[visit_exp `REC`_typevar{n#53}(n)] +[visit_exp n#53] +[visit_id n#53] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp [tu_1] ++ tu*{tu <- `tu*`}] +[visit_exp [tu_1]] +[visit_exp tu_1] +[visit_id tu_1] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $minus_recs{n#53 : n, n : n, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*}([`REC`_typevar{n#53}(n)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) +[check_dims] tu tu' tu_1 tv tv' typeidx#1 typeidx#3 x +[visit_exp [`_IDX`_typevar{typeidx#1}(x)] ++ tv*{tv <- `tv*`}] +[visit_exp [`_IDX`_typevar{typeidx#1}(x)]] +[visit_exp `_IDX`_typevar{typeidx#1}(x)] +[visit_exp typeidx#1] +[visit_id typeidx#1] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp [tu_1] ++ tu*{tu <- `tu*`}] +[visit_exp [tu_1]] +[visit_exp tu_1] +[visit_id tu_1] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp ([`_IDX`_typevar{typeidx#3}(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`})] +[visit_exp [`_IDX`_typevar{typeidx#3}(x)] ++ tv'*{tv' <- `tv'*`}] +[visit_exp [`_IDX`_typevar{typeidx#3}(x)]] +[visit_exp `_IDX`_typevar{typeidx#3}(x)] +[visit_exp typeidx#3] +[visit_id typeidx#3] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp tv'*{tv' <- `tv'*`}] +[scope_enter tv'] +[visit_exp tv'] +[visit_id tv'] not free +[visit_id tv'] not free +[scope_exit tv'] +[visit_exp `tv'*`] +[visit_id tv'*] no dims +[visit_id tv'*] +[visit_exp [tu_1] ++ tu'*{tu' <- `tu'*`}] +[visit_exp [tu_1]] +[visit_exp tu_1] +[visit_id tu_1] not free +[visit_exp tu'*{tu' <- `tu'*`}] +[scope_enter tu'] +[visit_exp tu'] +[visit_id tu'] not free +[visit_id tu'] not free +[scope_exit tu'] +[visit_exp `tu'*`] +[visit_id tu'*] no dims +[visit_id tu'*] +[visit_exp ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp (tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})] +[visit_exp tv'*{tv' <- `tv'*`}] +[scope_enter tv'] +[visit_exp tv'] +[visit_id tv'] not free +[visit_id tv'] not free +[scope_exit tv'] +[visit_exp `tv'*`] +[visit_id tv'*] not free +[visit_id tv'*] no dims +[visit_exp tu'*{tu' <- `tu'*`}] +[scope_enter tu'] +[visit_exp tu'] +[visit_id tu'] not free +[visit_id tu'] not free +[scope_exit tu'] +[visit_exp `tu'*`] +[visit_id tu'*] not free +[visit_id tu'*] no dims +[visit_exp $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $minus_recs{typeidx#1 : typeidx, x : idx, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*, typeidx#3 : typeidx, `tv'*` : typevar*, `tu'*` : typeuse*}([`_IDX`_typevar{typeidx#1}(x)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = ([`_IDX`_typevar{typeidx#3}(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) + -- if ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] X*#112 X*#97 st tu tu' tv tv' +[visit_exp `REC`_rectype(`%`_list{`X*#97`}(st*{st <- `st*`}))] +[visit_exp (`%`_list{`X*#97`}(st*{st <- `st*`}))] +[visit_exp `%`_list{`X*#97`}(st*{st <- `st*`})] +[visit_exp `X*#97`] +[visit_id X*#97] +[visit_exp (st*{st <- `st*`})] +[visit_exp st*{st <- `st*`}] +[scope_enter st] +[visit_exp st] +[visit_id st] not free +[visit_id st] not free +[scope_exit st] +[visit_exp `st*`] +[visit_id st*] no dims +[visit_id st*] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `REC`_rectype(`%`_list{`X*#112`}($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`}))] +[visit_exp (`%`_list{`X*#112`}($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`}))] +[visit_exp `%`_list{`X*#112`}($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})] +[visit_exp `X*#112`] +[visit_id X*#112] +[visit_exp ($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})] +[visit_exp $subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`}] +[scope_enter st] +[visit_exp $subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})] +[visit_exp st] +[visit_id st] not free +[visit_exp tv'*{tv' <- `tv'*`}] +[scope_enter tv'] +[visit_exp tv'] +[visit_id tv'] not free +[visit_id tv'] not free +[scope_exit tv'] +[visit_exp `tv'*`] +[visit_id tv'*] no dims +[visit_id tv'*] +[visit_exp tu'*{tu' <- `tu'*`}] +[scope_enter tu'] +[visit_exp tu'] +[visit_id tu'] not free +[visit_id tu'] not free +[scope_exit tu'] +[visit_exp `tu'*`] +[visit_id tu'*] no dims +[visit_id tu'*] +[visit_id st] not free +[scope_exit st] +[visit_exp `st*`] +[visit_id st*] not free +[visit_id st*] no dims +[visit_exp ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp (tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})] +[visit_exp tv'*{tv' <- `tv'*`}] +[scope_enter tv'] +[visit_exp tv'] +[visit_id tv'] not free +[visit_id tv'] not free +[scope_exit tv'] +[visit_exp `tv'*`] +[visit_id tv'*] not free +[visit_id tv'*] no dims +[visit_exp tu'*{tu' <- `tu'*`}] +[scope_enter tu'] +[visit_exp tu'] +[visit_id tu'] not free +[visit_id tu'] not free +[scope_exit tu'] +[visit_exp `tu'*`] +[visit_id tu'*] not free +[visit_id tu'*] no dims +[visit_exp $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_rectype{`X*#97` : subtype*, `st*` : subtype*, `tv*` : typevar*, `tu*` : typeuse*, `X*#112` : subtype*, `tv'*` : typevar*, `tu'*` : typeuse*}(`REC`_rectype(`%`_list{`X*#97`}(st*{st <- `st*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REC`_rectype(`%`_list{`X*#112`}($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})) + -- if ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] i n#65 n#77 qt rectype#63 rectype#75 tu tv +[visit_exp `_DEF`_deftype{rectype#63, n#65}(qt, i)] +[visit_exp rectype#63] +[visit_id rectype#63] +[visit_exp n#65] +[visit_id n#65] +[visit_exp (qt, i)] +[visit_exp qt] +[visit_id qt] +[visit_exp i] +[visit_id i] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `_DEF`_deftype{rectype#75, n#77}($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i)] +[visit_exp rectype#75] +[visit_id rectype#75] +[visit_exp n#77] +[visit_id n#77] +[visit_exp ($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i)] +[visit_exp $subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp qt] +[visit_id qt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_deftype{rectype#63 : rectype, n#65 : n, qt : rectype, i : n, `tv*` : typevar*, `tu*` : typeuse*, rectype#75 : rectype, n#77 : n}(`_DEF`_deftype{rectype#63, n#65}(qt, i), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `_DEF`_deftype{rectype#75, n#77}($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i) +[check_dims] tu tu' tv +[visit_exp tu'] +[visit_id tu'] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp tu'] +[visit_id tu'] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_tagtype{tu' : typeuse, `tv*` : typevar*, `tu*` : typeuse*}(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) +[check_dims] mut mut?#149 mut?#161 t tu tv valtype#67 valtype#79 +[visit_exp `%%`_globaltype{`mut?#149`, valtype#67}(mut?{mut <- `mut?`}, t)] +[visit_exp `mut?#149`] +[visit_id mut?#149] +[visit_exp valtype#67] +[visit_id valtype#67] +[visit_exp (mut?{mut <- `mut?`}, t)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp t] +[visit_id t] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `%%`_globaltype{`mut?#161`, valtype#79}(mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp `mut?#161`] +[visit_id mut?#161] +[visit_exp valtype#79] +[visit_id valtype#79] +[visit_exp (mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_exp $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp t] +[visit_id t] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_globaltype{`mut?#149` : mut?, valtype#67 : valtype, `mut?` : mut?, t : valtype, `tv*` : typevar*, `tu*` : typeuse*, `mut?#161` : mut?, valtype#79 : valtype}(`%%`_globaltype{`mut?#149`, valtype#67}(mut?{mut <- `mut?`}, t), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_globaltype{`mut?#161`, valtype#79}(mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] addrtype#103 addrtype#91 at lim limits#103 limits#91 tu tv +[visit_exp `%%PAGE`_memtype{addrtype#91, limits#91}(at, lim)] +[visit_exp addrtype#91] +[visit_id addrtype#91] +[visit_exp limits#91] +[visit_id limits#91] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] +[visit_exp lim] +[visit_id lim] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `%%PAGE`_memtype{addrtype#103, limits#103}(at, lim)] +[visit_exp addrtype#103] +[visit_id addrtype#103] +[visit_exp limits#103] +[visit_id limits#103] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_memtype{addrtype#91 : addrtype, limits#91 : limits, at : addrtype, lim : limits, `tv*` : typevar*, `tu*` : typeuse*, addrtype#103 : addrtype, limits#103 : limits}(`%%PAGE`_memtype{addrtype#91, limits#91}(at, lim), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%PAGE`_memtype{addrtype#103, limits#103}(at, lim) +[check_dims] addrtype#115 addrtype#127 at lim limits#115 limits#127 reftype#51 reftype#63 rt tu tv +[visit_exp `%%%`_tabletype{addrtype#115, limits#115, reftype#51}(at, lim, rt)] +[visit_exp addrtype#115] +[visit_id addrtype#115] +[visit_exp limits#115] +[visit_id limits#115] +[visit_exp reftype#51] +[visit_id reftype#51] +[visit_exp (at, lim, rt)] +[visit_exp at] +[visit_id at] +[visit_exp lim] +[visit_id lim] +[visit_exp rt] +[visit_id rt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `%%%`_tabletype{addrtype#127, limits#127, reftype#63}(at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp addrtype#127] +[visit_id addrtype#127] +[visit_exp limits#127] +[visit_id limits#127] +[visit_exp reftype#63] +[visit_id reftype#63] +[visit_exp (at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] not free +[visit_exp $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp rt] +[visit_id rt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_tabletype{addrtype#115 : addrtype, limits#115 : limits, reftype#51 : reftype, at : addrtype, lim : limits, rt : reftype, `tv*` : typevar*, `tu*` : typeuse*, addrtype#127 : addrtype, limits#127 : limits, reftype#63 : reftype}(`%%%`_tabletype{addrtype#115, limits#115, reftype#51}(at, lim, rt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%%`_tabletype{addrtype#127, limits#127, reftype#63}(at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] jt tagtype#3 tagtype#5 tu tv +[visit_exp `TAG`_externtype{tagtype#3}(jt)] +[visit_exp tagtype#3] +[visit_id tagtype#3] +[visit_exp (jt)] +[visit_exp jt] +[visit_id jt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `TAG`_externtype{tagtype#5}($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp tagtype#5] +[visit_id tagtype#5] +[visit_exp ($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp $subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp jt] +[visit_id jt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_externtype{tagtype#3 : tagtype, jt : tagtype, `tv*` : typevar*, `tu*` : typeuse*, tagtype#5 : tagtype}(`TAG`_externtype{tagtype#3}(jt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TAG`_externtype{tagtype#5}($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] globaltype#3 globaltype#5 gt tu tv +[visit_exp `GLOBAL`_externtype{globaltype#3}(gt)] +[visit_exp globaltype#3] +[visit_id globaltype#3] +[visit_exp (gt)] +[visit_exp gt] +[visit_id gt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `GLOBAL`_externtype{globaltype#5}($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp globaltype#5] +[visit_id globaltype#5] +[visit_exp ($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp $subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp gt] +[visit_id gt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_externtype{globaltype#3 : globaltype, gt : globaltype, `tv*` : typevar*, `tu*` : typeuse*, globaltype#5 : globaltype}(`GLOBAL`_externtype{globaltype#3}(gt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `GLOBAL`_externtype{globaltype#5}($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] tabletype#3 tabletype#5 tt tu tv +[visit_exp `TABLE`_externtype{tabletype#3}(tt)] +[visit_exp tabletype#3] +[visit_id tabletype#3] +[visit_exp (tt)] +[visit_exp tt] +[visit_id tt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `TABLE`_externtype{tabletype#5}($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp tabletype#5] +[visit_id tabletype#5] +[visit_exp ($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp $subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp tt] +[visit_id tt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_externtype{tabletype#3 : tabletype, tt : tabletype, `tv*` : typevar*, `tu*` : typeuse*, tabletype#5 : tabletype}(`TABLE`_externtype{tabletype#3}(tt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TABLE`_externtype{tabletype#5}($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] memtype#3 memtype#5 mt tu tv +[visit_exp `MEM`_externtype{memtype#3}(mt)] +[visit_exp memtype#3] +[visit_id memtype#3] +[visit_exp (mt)] +[visit_exp mt] +[visit_id mt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `MEM`_externtype{memtype#5}($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp memtype#5] +[visit_id memtype#5] +[visit_exp ($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] +[visit_exp $subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp mt] +[visit_id mt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_externtype{memtype#3 : memtype, mt : memtype, `tv*` : typevar*, `tu*` : typeuse*, memtype#5 : memtype}(`MEM`_externtype{memtype#3}(mt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `MEM`_externtype{memtype#5}($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] dt tu tv typeuse#3 typeuse#5 +[visit_exp `FUNC`_externtype{typeuse#3}((dt : deftype <: typeuse))] +[visit_exp typeuse#3] +[visit_id typeuse#3] +[visit_exp ((dt : deftype <: typeuse))] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `FUNC`_externtype{typeuse#5}(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse))] +[visit_exp typeuse#5] +[visit_id typeuse#5] +[visit_exp (($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse))] +[visit_exp ($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)] +[visit_exp $subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp dt] +[visit_id dt] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_externtype{typeuse#3 : typeuse, dt : deftype, `tv*` : typevar*, `tu*` : typeuse*, typeuse#5 : typeuse}(`FUNC`_externtype{typeuse#3}((dt : deftype <: typeuse)), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC`_externtype{typeuse#5}(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)) +[check_dims] externtype*#18 externtype*#38 tu tv xt_1 xt_2 +[visit_exp `%->%`_moduletype{`externtype*#18`}(xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`})] +[visit_exp `externtype*#18`] +[visit_id externtype*#18] +[visit_exp (xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`})] +[visit_exp xt_1*{xt_1 <- `xt_1*`}] +[scope_enter xt_1] +[visit_exp xt_1] +[visit_id xt_1] not free +[visit_id xt_1] not free +[scope_exit xt_1] +[visit_exp `xt_1*`] +[visit_id xt_1*] no dims +[visit_id xt_1*] +[visit_exp xt_2*{xt_2 <- `xt_2*`}] +[scope_enter xt_2] +[visit_exp xt_2] +[visit_id xt_2] not free +[visit_id xt_2] not free +[scope_exit xt_2] +[visit_exp `xt_2*`] +[visit_id xt_2*] no dims +[visit_id xt_2*] +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] no dims +[visit_id tv*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp `%->%`_moduletype{`externtype*#38`}($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`})] +[visit_exp `externtype*#38`] +[visit_id externtype*#38] +[visit_exp ($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`})] +[visit_exp $subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}] +[scope_enter xt_1] +[visit_exp $subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp xt_1] +[visit_id xt_1] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +[visit_id xt_1] not free +[scope_exit xt_1] +[visit_exp `xt_1*`] +[visit_id xt_1*] not free +[visit_id xt_1*] no dims +[visit_exp $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`}] +[scope_enter xt_2] +[visit_exp $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] +[visit_exp xt_2] +[visit_id xt_2] not free +[visit_exp tv*{tv <- `tv*`}] +[scope_enter tv] +[visit_exp tv] +[visit_id tv] not free +[visit_id tv] not free +[scope_exit tv] +[visit_exp `tv*`] +[visit_id tv*] not free +[visit_id tv*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +[visit_id xt_2] not free +[scope_exit xt_2] +[visit_exp `xt_2*`] +[visit_id xt_2*] not free +[visit_id xt_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_moduletype{`externtype*#18` : externtype*, `xt_1*` : externtype*, `xt_2*` : externtype*, `tv*` : typevar*, `tu*` : typeuse*, `externtype*#38` : externtype*}(`%->%`_moduletype{`externtype*#18`}(xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`}), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%->%`_moduletype{`externtype*#38`}($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`}) +[check_dims] _ valtype +DecD subst_all_valtype(valtype : valtype, typeuse*) : valtype +[visit_id valtype] not free +[visit_id _] not free +[check_dims] _ reftype +DecD subst_all_reftype(reftype : reftype, typeuse*) : reftype +[visit_id reftype] not free +[visit_id _] not free +[check_dims] _ deftype +DecD subst_all_deftype(deftype : deftype, typeuse*) : deftype +[visit_id deftype] not free +[visit_id _] not free +[check_dims] _ tagtype +DecD subst_all_tagtype(tagtype : tagtype, typeuse*) : tagtype +[visit_id tagtype] not free +[visit_id _] not free +[check_dims] _ globaltype +DecD subst_all_globaltype(globaltype : globaltype, typeuse*) : globaltype +[visit_id globaltype] not free +[visit_id _] not free +[check_dims] _ memtype +DecD subst_all_memtype(memtype : memtype, typeuse*) : memtype +[visit_id memtype] not free +[visit_id _] not free +[check_dims] _ tabletype +DecD subst_all_tabletype(tabletype : tabletype, typeuse*) : tabletype +[visit_id tabletype] not free +[visit_id _] not free +[check_dims] _ externtype +DecD subst_all_externtype(externtype : externtype, typeuse*) : externtype +[visit_id externtype] not free +[visit_id _] not free +[check_dims] _ moduletype +DecD subst_all_moduletype(moduletype : moduletype, typeuse*) : moduletype +[visit_id moduletype] not free +[visit_id _] not free +[check_dims] i i#779 n t tu typeidx#5 +[visit_exp t] +[visit_id t] +[visit_exp tu^n{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp n] +[visit_id n] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp $subst_valtype(t, `_IDX`_typevar{typeidx#5}(`%`_typeidx{i#779}(i))^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_all_valtype{t : valtype, n : n, `tu*` : typeuse*, i : nat, `i#779*` : nat*, `typeidx#5*` : typeidx*}(t, tu^n{tu <- `tu*`}) = $subst_valtype(t, `_IDX`_typevar{typeidx#5}(`%`_typeidx{i#779}(i))^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_all_reftype{rt : reftype, n : n, `tu*` : typeuse*, i : nat, `i#801*` : nat*, `typeidx#7*` : typeidx*}(rt, tu^n{tu <- `tu*`}) = $subst_reftype(rt, `_IDX`_typevar{typeidx#7}(`%`_typeidx{i#801}(i))^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_all_deftype{dt : deftype, n : n, `tu*` : typeuse*, i : nat, `i#823*` : nat*, `typeidx#9*` : typeidx*}(dt, tu^n{tu <- `tu*`}) = $subst_deftype(dt, `_IDX`_typevar{typeidx#9}(`%`_typeidx{i#823}(i))^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_all_tagtype{jt : tagtype, n : n, `tu*` : typeuse*, i : nat, `i#845*` : nat*, `typeidx#11*` : typeidx*}(jt, tu^n{tu <- `tu*`}) = $subst_tagtype(jt, `_IDX`_typevar{typeidx#11}(`%`_typeidx{i#845}(i))^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_all_globaltype{gt : globaltype, n : n, `tu*` : typeuse*, i : nat, `i#867*` : nat*, `typeidx#13*` : typeidx*}(gt, tu^n{tu <- `tu*`}) = $subst_globaltype(gt, `_IDX`_typevar{typeidx#13}(`%`_typeidx{i#867}(i))^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_all_memtype{mt : memtype, n : n, `tu*` : typeuse*, i : nat, `i#889*` : nat*, `typeidx#15*` : typeidx*}(mt, tu^n{tu <- `tu*`}) = $subst_memtype(mt, `_IDX`_typevar{typeidx#15}(`%`_typeidx{i#889}(i))^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_all_tabletype{tt : tabletype, n : n, `tu*` : typeuse*, i : nat, `i#911*` : nat*, `typeidx#17*` : typeidx*}(tt, tu^n{tu <- `tu*`}) = $subst_tabletype(tt, `_IDX`_typevar{typeidx#17}(`%`_typeidx{i#911}(i))^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_all_externtype{xt : externtype, n : n, `tu*` : typeuse*, i : nat, `i#933*` : nat*, `typeidx#19*` : typeidx*}(xt, tu^n{tu <- `tu*`}) = $subst_externtype(xt, `_IDX`_typevar{typeidx#19}(`%`_typeidx{i#933}(i))^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_all_moduletype{mmt : moduletype, n : n, `tu*` : typeuse*, i : nat, `i#955*` : nat*, `typeidx#21*` : typeidx*}(mmt, tu^n{tu <- `tu*`}) = $subst_moduletype(mmt, `_IDX`_typevar{typeidx#21}(`%`_typeidx{i#955}(i))^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_all_deftypes{`tu*` : typeuse*}([], tu*{tu <- `tu*`}) = [] +[check_dims] dt dt_1 tu +[visit_exp [dt_1] ++ dt*{dt <- `dt*`}] +[visit_exp [dt_1]] +[visit_exp dt_1] +[visit_id dt_1] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] no dims +[visit_id tu*] +[visit_exp [$subst_all_deftype(dt_1, tu*{tu <- `tu*`})] ++ $subst_all_deftypes(dt*{dt <- `dt*`}, tu*{tu <- `tu*`})] +[visit_exp [$subst_all_deftype(dt_1, tu*{tu <- `tu*`})]] +[visit_exp $subst_all_deftype(dt_1, tu*{tu <- `tu*`})] +[visit_exp dt_1] +[visit_id dt_1] not free +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +[visit_exp $subst_all_deftypes(dt*{dt <- `dt*`}, tu*{tu <- `tu*`})] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp tu*{tu <- `tu*`}] +[scope_enter tu] +[visit_exp tu] +[visit_id tu] not free +[visit_id tu] not free +[scope_exit tu] +[visit_exp `tu*`] +[visit_id tu*] not free +[visit_id tu*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $subst_all_deftypes{dt_1 : deftype, `dt*` : deftype*, `tu*` : typeuse*}([dt_1] ++ dt*{dt <- `dt*`}, tu*{tu <- `tu*`}) = [$subst_all_deftype(dt_1, tu*{tu <- `tu*`})] ++ $subst_all_deftypes(dt*{dt <- `dt*`}, tu*{tu <- `tu*`}) +[check_dims] rectype typeidx +DecD rollrt(typeidx : typeidx, rectype : rectype) : rectype +[visit_id typeidx] not free +[visit_id rectype] not free +[check_dims] rectype +DecD unrollrt(rectype : rectype) : rectype +[visit_id rectype] not free +[check_dims] rectype typeidx +DecD rolldt(typeidx : typeidx, rectype : rectype) : deftype* +[visit_id typeidx] not free +[visit_id rectype] not free +[check_dims] deftype +DecD unrolldt(deftype : deftype) : subtype +[visit_id deftype] not free +[check_dims] deftype +DecD expanddt(deftype : deftype) : comptype +[visit_id deftype] not free +[check_dims] X*#127 X*#142 i i#1003 i#993 n n#189 rectype subtype typeidx#23 x +[visit_exp x] +[visit_id x] +[visit_exp rectype] +[visit_id rectype] +[visit_exp `REC`_rectype(`%`_list{`X*#142`}($subst_subtype(subtype, `_IDX`_typevar{typeidx#23}(`%`_typeidx{i#1003}((x!`%`_idx{i#993}.0 + i)))^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $rollrt{x : idx, rectype : rectype, `X*#142` : subtype*, i : nat, n : n, `i#1003**` : nat**, `i#993**` : nat**, `n#189**` : n**, `subtype*` : subtype*, `typeidx#23**` : typeidx**, `X*#127` : subtype*}(x, rectype) = `REC`_rectype(`%`_list{`X*#142`}($subst_subtype(subtype, `_IDX`_typevar{typeidx#23}(`%`_typeidx{i#1003}((x!`%`_idx{i#993}.0 + i)))^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $unrollrt{rectype : rectype, `X*#172` : subtype*, i : nat, n : n, `n#191**` : n**, `n#193**` : n**, `rectype#187**` : rectype**, `subtype*` : subtype*, `X*#157` : subtype*}(rectype) = `REC`_rectype(`%`_list{`X*#172`}($subst_subtype(subtype, `REC`_typevar{n#191}(i)^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $rolldt{x : idx, rectype : rectype, n : n, `subtype*` : subtype*, i : nat, `X*#202*` : subtype**, `n#211*` : n*, `rectype#205*` : rectype*, `X*#187` : subtype*}(x, rectype) = `_DEF`_deftype{rectype#205, n#211}(`REC`_rectype(`%`_list{`X*#202`}(subtype^n{subtype <- `subtype*`})), i)^(i + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $unrolldt{rectype#217 : rectype, n#223 : n, rectype : rectype, i : n, `subtype*` : subtype*, `X*#217` : subtype*}(`_DEF`_deftype{rectype#217, n#223}(rectype, i)) = subtype*{subtype <- `subtype*`}[i] + -- if ($unrollrt(rectype) = `REC`_rectype(`%`_list{`X*#217`}(subtype*{subtype <- `subtype*`}))) +[check_dims] comptype comptype#167 deftype final final?#167 typeuse typeuse*#167 +[visit_exp deftype] +[visit_id deftype] +[visit_exp comptype] +[visit_id comptype] +[visit_exp ($unrolldt(deftype) = `SUB`_subtype{`final?#167`, `typeuse*#167`, comptype#167}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype))] +[visit_exp $unrolldt(deftype)] +[visit_exp deftype] +[visit_id deftype] not free +[visit_exp `SUB`_subtype{`final?#167`, `typeuse*#167`, comptype#167}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] +[visit_exp `final?#167`] +[visit_id final?#167] +[visit_exp `typeuse*#167`] +[visit_id typeuse*#167] +[visit_exp comptype#167] +[visit_id comptype#167] +[visit_exp (final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] +[visit_exp final?{final <- `final?`}] +[scope_enter final] +[visit_exp final] +[visit_id final] not free +[visit_id final] not free +[scope_exit final] +[visit_exp `final?`] +[visit_id final?] no dims +[visit_id final?] +[visit_exp typeuse*{typeuse <- `typeuse*`}] +[scope_enter typeuse] +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_id typeuse] not free +[scope_exit typeuse] +[visit_exp `typeuse*`] +[visit_id typeuse*] no dims +[visit_id typeuse*] +[visit_exp comptype] +[visit_id comptype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $expanddt{deftype : deftype, comptype : comptype, `final?#167` : final?, `typeuse*#167` : typeuse*, comptype#167 : comptype, `final?` : final?, `typeuse*` : typeuse*}(deftype) = comptype + -- if ($unrolldt(deftype) = `SUB`_subtype{`final?#167`, `typeuse*#167`, comptype#167}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) +[check_dims] numtype +DecD free_addrtype(numtype : numtype) : free +[visit_id numtype] not free +[check_dims] numtype +DecD free_numtype(numtype : numtype) : free +[visit_id numtype] not free +[check_dims] packtype +DecD free_packtype(packtype : packtype) : free +[visit_id packtype] not free +[check_dims] lanetype +DecD free_lanetype(lanetype : lanetype) : free +[visit_id lanetype] not free +[check_dims] vectype +DecD free_vectype(vectype : vectype) : free +[visit_id vectype] not free +[check_dims] consttype +DecD free_consttype(consttype : consttype) : free +[visit_id consttype] not free +[check_dims] absheaptype +DecD free_absheaptype(absheaptype : absheaptype) : free +[visit_id absheaptype] not free +[check_dims] heaptype +DecD free_heaptype(heaptype : heaptype) : free +[visit_id heaptype] not free +[check_dims] reftype +DecD free_reftype(reftype : reftype) : free +[visit_id reftype] not free +[check_dims] typevar +DecD free_typevar(typevar : typevar) : free +[visit_id typevar] not free +[check_dims] typeuse +DecD free_typeuse(typeuse : typeuse) : free +[visit_id typeuse] not free +[check_dims] valtype +DecD free_valtype(valtype : valtype) : free +[visit_id valtype] not free +[check_dims] resulttype +DecD free_resulttype(resulttype : resulttype) : free +[visit_id resulttype] not free +[check_dims] storagetype +DecD free_storagetype(storagetype : storagetype) : free +[visit_id storagetype] not free +[check_dims] fieldtype +DecD free_fieldtype(fieldtype : fieldtype) : free +[visit_id fieldtype] not free +[check_dims] comptype +DecD free_comptype(comptype : comptype) : free +[visit_id comptype] not free +[check_dims] subtype +DecD free_subtype(subtype : subtype) : free +[visit_id subtype] not free +[check_dims] rectype +DecD free_rectype(rectype : rectype) : free +[visit_id rectype] not free +[check_dims] tagtype +DecD free_tagtype(tagtype : tagtype) : free +[visit_id tagtype] not free +[check_dims] globaltype +DecD free_globaltype(globaltype : globaltype) : free +[visit_id globaltype] not free +[check_dims] memtype +DecD free_memtype(memtype : memtype) : free +[visit_id memtype] not free +[check_dims] tabletype +DecD free_tabletype(tabletype : tabletype) : free +[visit_id tabletype] not free +[check_dims] datatype +DecD free_datatype(datatype : datatype) : free +[visit_id datatype] not free +[check_dims] elemtype +DecD free_elemtype(elemtype : elemtype) : free +[visit_id elemtype] not free +[check_dims] externtype +DecD free_externtype(externtype : externtype) : free +[visit_id externtype] not free +[check_dims] moduletype +DecD free_moduletype(moduletype : moduletype) : free +[visit_id moduletype] not free +[check_dims] addrtype dataidx*#12 elemidx*#12 funcidx*#12 globalidx*#12 labelidx*#12 localidx*#12 memidx*#12 tableidx*#12 typeidx*#12 +[visit_exp (addrtype : addrtype <: numtype)] +[visit_exp addrtype] +[visit_id addrtype] +[visit_exp {`TYPES`{`typeidx*#12`} [], `FUNCS`{`funcidx*#12`} [], `GLOBALS`{`globalidx*#12`} [], `TABLES`{`tableidx*#12`} [], `MEMS`{`memidx*#12`} [], `ELEMS`{`elemidx*#12`} [], `DATAS`{`dataidx*#12`} [], `LOCALS`{`localidx*#12`} [], `LABELS`{`labelidx*#12`} []}] +[visit_exp `typeidx*#12`] +[visit_id typeidx*#12] +[visit_exp []] +[visit_exp `funcidx*#12`] +[visit_id funcidx*#12] +[visit_exp []] +[visit_exp `globalidx*#12`] +[visit_id globalidx*#12] +[visit_exp []] +[visit_exp `tableidx*#12`] +[visit_id tableidx*#12] +[visit_exp []] +[visit_exp `memidx*#12`] +[visit_id memidx*#12] +[visit_exp []] +[visit_exp `elemidx*#12`] +[visit_id elemidx*#12] +[visit_exp []] +[visit_exp `dataidx*#12`] +[visit_id dataidx*#12] +[visit_exp []] +[visit_exp `localidx*#12`] +[visit_id localidx*#12] +[visit_exp []] +[visit_exp `labelidx*#12`] +[visit_id labelidx*#12] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_addrtype{addrtype : addrtype, `typeidx*#12` : typeidx*, `funcidx*#12` : funcidx*, `globalidx*#12` : globalidx*, `tableidx*#12` : tableidx*, `memidx*#12` : memidx*, `elemidx*#12` : elemidx*, `dataidx*#12` : dataidx*, `localidx*#12` : localidx*, `labelidx*#12` : labelidx*}((addrtype : addrtype <: numtype)) = {`TYPES`{`typeidx*#12`} [], `FUNCS`{`funcidx*#12`} [], `GLOBALS`{`globalidx*#12`} [], `TABLES`{`tableidx*#12`} [], `MEMS`{`memidx*#12`} [], `ELEMS`{`elemidx*#12`} [], `DATAS`{`dataidx*#12`} [], `LOCALS`{`localidx*#12`} [], `LABELS`{`labelidx*#12`} []} +[check_dims] dataidx*#13 elemidx*#13 funcidx*#13 globalidx*#13 labelidx*#13 localidx*#13 memidx*#13 numtype tableidx*#13 typeidx*#13 +[visit_exp numtype] +[visit_id numtype] +[visit_exp {`TYPES`{`typeidx*#13`} [], `FUNCS`{`funcidx*#13`} [], `GLOBALS`{`globalidx*#13`} [], `TABLES`{`tableidx*#13`} [], `MEMS`{`memidx*#13`} [], `ELEMS`{`elemidx*#13`} [], `DATAS`{`dataidx*#13`} [], `LOCALS`{`localidx*#13`} [], `LABELS`{`labelidx*#13`} []}] +[visit_exp `typeidx*#13`] +[visit_id typeidx*#13] +[visit_exp []] +[visit_exp `funcidx*#13`] +[visit_id funcidx*#13] +[visit_exp []] +[visit_exp `globalidx*#13`] +[visit_id globalidx*#13] +[visit_exp []] +[visit_exp `tableidx*#13`] +[visit_id tableidx*#13] +[visit_exp []] +[visit_exp `memidx*#13`] +[visit_id memidx*#13] +[visit_exp []] +[visit_exp `elemidx*#13`] +[visit_id elemidx*#13] +[visit_exp []] +[visit_exp `dataidx*#13`] +[visit_id dataidx*#13] +[visit_exp []] +[visit_exp `localidx*#13`] +[visit_id localidx*#13] +[visit_exp []] +[visit_exp `labelidx*#13`] +[visit_id labelidx*#13] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_numtype{numtype : numtype, `typeidx*#13` : typeidx*, `funcidx*#13` : funcidx*, `globalidx*#13` : globalidx*, `tableidx*#13` : tableidx*, `memidx*#13` : memidx*, `elemidx*#13` : elemidx*, `dataidx*#13` : dataidx*, `localidx*#13` : localidx*, `labelidx*#13` : labelidx*}(numtype) = {`TYPES`{`typeidx*#13`} [], `FUNCS`{`funcidx*#13`} [], `GLOBALS`{`globalidx*#13`} [], `TABLES`{`tableidx*#13`} [], `MEMS`{`memidx*#13`} [], `ELEMS`{`elemidx*#13`} [], `DATAS`{`dataidx*#13`} [], `LOCALS`{`localidx*#13`} [], `LABELS`{`labelidx*#13`} []} +[check_dims] dataidx*#14 elemidx*#14 funcidx*#14 globalidx*#14 labelidx*#14 localidx*#14 memidx*#14 packtype tableidx*#14 typeidx*#14 +[visit_exp packtype] +[visit_id packtype] +[visit_exp {`TYPES`{`typeidx*#14`} [], `FUNCS`{`funcidx*#14`} [], `GLOBALS`{`globalidx*#14`} [], `TABLES`{`tableidx*#14`} [], `MEMS`{`memidx*#14`} [], `ELEMS`{`elemidx*#14`} [], `DATAS`{`dataidx*#14`} [], `LOCALS`{`localidx*#14`} [], `LABELS`{`labelidx*#14`} []}] +[visit_exp `typeidx*#14`] +[visit_id typeidx*#14] +[visit_exp []] +[visit_exp `funcidx*#14`] +[visit_id funcidx*#14] +[visit_exp []] +[visit_exp `globalidx*#14`] +[visit_id globalidx*#14] +[visit_exp []] +[visit_exp `tableidx*#14`] +[visit_id tableidx*#14] +[visit_exp []] +[visit_exp `memidx*#14`] +[visit_id memidx*#14] +[visit_exp []] +[visit_exp `elemidx*#14`] +[visit_id elemidx*#14] +[visit_exp []] +[visit_exp `dataidx*#14`] +[visit_id dataidx*#14] +[visit_exp []] +[visit_exp `localidx*#14`] +[visit_id localidx*#14] +[visit_exp []] +[visit_exp `labelidx*#14`] +[visit_id labelidx*#14] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_packtype{packtype : packtype, `typeidx*#14` : typeidx*, `funcidx*#14` : funcidx*, `globalidx*#14` : globalidx*, `tableidx*#14` : tableidx*, `memidx*#14` : memidx*, `elemidx*#14` : elemidx*, `dataidx*#14` : dataidx*, `localidx*#14` : localidx*, `labelidx*#14` : labelidx*}(packtype) = {`TYPES`{`typeidx*#14`} [], `FUNCS`{`funcidx*#14`} [], `GLOBALS`{`globalidx*#14`} [], `TABLES`{`tableidx*#14`} [], `MEMS`{`memidx*#14`} [], `ELEMS`{`elemidx*#14`} [], `DATAS`{`dataidx*#14`} [], `LOCALS`{`localidx*#14`} [], `LABELS`{`labelidx*#14`} []} +[check_dims] numtype +[visit_exp (numtype : numtype <: lanetype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp $free_numtype(numtype)] +[visit_exp numtype] +[visit_id numtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_lanetype{numtype : numtype}((numtype : numtype <: lanetype)) = $free_numtype(numtype) +[check_dims] packtype +[visit_exp (packtype : packtype <: lanetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp $free_packtype(packtype)] +[visit_exp packtype] +[visit_id packtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_lanetype{packtype : packtype}((packtype : packtype <: lanetype)) = $free_packtype(packtype) +[check_dims] dataidx*#15 elemidx*#15 funcidx*#15 globalidx*#15 labelidx*#15 localidx*#15 memidx*#15 tableidx*#15 typeidx*#15 vectype +[visit_exp vectype] +[visit_id vectype] +[visit_exp {`TYPES`{`typeidx*#15`} [], `FUNCS`{`funcidx*#15`} [], `GLOBALS`{`globalidx*#15`} [], `TABLES`{`tableidx*#15`} [], `MEMS`{`memidx*#15`} [], `ELEMS`{`elemidx*#15`} [], `DATAS`{`dataidx*#15`} [], `LOCALS`{`localidx*#15`} [], `LABELS`{`labelidx*#15`} []}] +[visit_exp `typeidx*#15`] +[visit_id typeidx*#15] +[visit_exp []] +[visit_exp `funcidx*#15`] +[visit_id funcidx*#15] +[visit_exp []] +[visit_exp `globalidx*#15`] +[visit_id globalidx*#15] +[visit_exp []] +[visit_exp `tableidx*#15`] +[visit_id tableidx*#15] +[visit_exp []] +[visit_exp `memidx*#15`] +[visit_id memidx*#15] +[visit_exp []] +[visit_exp `elemidx*#15`] +[visit_id elemidx*#15] +[visit_exp []] +[visit_exp `dataidx*#15`] +[visit_id dataidx*#15] +[visit_exp []] +[visit_exp `localidx*#15`] +[visit_id localidx*#15] +[visit_exp []] +[visit_exp `labelidx*#15`] +[visit_id labelidx*#15] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_vectype{vectype : vectype, `typeidx*#15` : typeidx*, `funcidx*#15` : funcidx*, `globalidx*#15` : globalidx*, `tableidx*#15` : tableidx*, `memidx*#15` : memidx*, `elemidx*#15` : elemidx*, `dataidx*#15` : dataidx*, `localidx*#15` : localidx*, `labelidx*#15` : labelidx*}(vectype) = {`TYPES`{`typeidx*#15`} [], `FUNCS`{`funcidx*#15`} [], `GLOBALS`{`globalidx*#15`} [], `TABLES`{`tableidx*#15`} [], `MEMS`{`memidx*#15`} [], `ELEMS`{`elemidx*#15`} [], `DATAS`{`dataidx*#15`} [], `LOCALS`{`localidx*#15`} [], `LABELS`{`labelidx*#15`} []} +[check_dims] numtype +[visit_exp (numtype : numtype <: consttype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp $free_numtype(numtype)] +[visit_exp numtype] +[visit_id numtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_consttype{numtype : numtype}((numtype : numtype <: consttype)) = $free_numtype(numtype) +[check_dims] vectype +[visit_exp (vectype : vectype <: consttype)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp $free_vectype(vectype)] +[visit_exp vectype] +[visit_id vectype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_consttype{vectype : vectype}((vectype : vectype <: consttype)) = $free_vectype(vectype) +[check_dims] absheaptype dataidx*#16 elemidx*#16 funcidx*#16 globalidx*#16 labelidx*#16 localidx*#16 memidx*#16 tableidx*#16 typeidx*#16 +[visit_exp absheaptype] +[visit_id absheaptype] +[visit_exp {`TYPES`{`typeidx*#16`} [], `FUNCS`{`funcidx*#16`} [], `GLOBALS`{`globalidx*#16`} [], `TABLES`{`tableidx*#16`} [], `MEMS`{`memidx*#16`} [], `ELEMS`{`elemidx*#16`} [], `DATAS`{`dataidx*#16`} [], `LOCALS`{`localidx*#16`} [], `LABELS`{`labelidx*#16`} []}] +[visit_exp `typeidx*#16`] +[visit_id typeidx*#16] +[visit_exp []] +[visit_exp `funcidx*#16`] +[visit_id funcidx*#16] +[visit_exp []] +[visit_exp `globalidx*#16`] +[visit_id globalidx*#16] +[visit_exp []] +[visit_exp `tableidx*#16`] +[visit_id tableidx*#16] +[visit_exp []] +[visit_exp `memidx*#16`] +[visit_id memidx*#16] +[visit_exp []] +[visit_exp `elemidx*#16`] +[visit_id elemidx*#16] +[visit_exp []] +[visit_exp `dataidx*#16`] +[visit_id dataidx*#16] +[visit_exp []] +[visit_exp `localidx*#16`] +[visit_id localidx*#16] +[visit_exp []] +[visit_exp `labelidx*#16`] +[visit_id labelidx*#16] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_absheaptype{absheaptype : absheaptype, `typeidx*#16` : typeidx*, `funcidx*#16` : funcidx*, `globalidx*#16` : globalidx*, `tableidx*#16` : tableidx*, `memidx*#16` : memidx*, `elemidx*#16` : elemidx*, `dataidx*#16` : dataidx*, `localidx*#16` : localidx*, `labelidx*#16` : labelidx*}(absheaptype) = {`TYPES`{`typeidx*#16`} [], `FUNCS`{`funcidx*#16`} [], `GLOBALS`{`globalidx*#16`} [], `TABLES`{`tableidx*#16`} [], `MEMS`{`memidx*#16`} [], `ELEMS`{`elemidx*#16`} [], `DATAS`{`dataidx*#16`} [], `LOCALS`{`localidx*#16`} [], `LABELS`{`labelidx*#16`} []} +[check_dims] deftype +DecD free_deftype(deftype : deftype) : free +[visit_id deftype] not free +[check_dims] n n#247 rectype rectype#241 +[visit_exp `_DEF`_deftype{rectype#241, n#247}(rectype, n)] +[visit_exp rectype#241] +[visit_id rectype#241] +[visit_exp n#247] +[visit_id n#247] +[visit_exp (rectype, n)] +[visit_exp rectype] +[visit_id rectype] +[visit_exp n] +[visit_id n] +[visit_exp $free_rectype(rectype)] +[visit_exp rectype] +[visit_id rectype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_deftype{rectype#241 : rectype, n#247 : n, rectype : rectype, n : n}(`_DEF`_deftype{rectype#241, n#247}(rectype, n)) = $free_rectype(rectype) +[check_dims] typeidx typeidx#25 +[visit_exp `_IDX`_typevar{typeidx#25}(typeidx)] +[visit_exp typeidx#25] +[visit_id typeidx#25] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_typevar{typeidx#25 : typeidx, typeidx : typeidx}(`_IDX`_typevar{typeidx#25}(typeidx)) = $free_typeidx(typeidx) +[check_dims] dataidx*#17 elemidx*#17 funcidx*#17 globalidx*#17 labelidx*#17 localidx*#17 memidx*#17 n n#249 tableidx*#17 typeidx*#17 +[visit_exp `REC`_typevar{n#249}(n)] +[visit_exp n#249] +[visit_id n#249] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp {`TYPES`{`typeidx*#17`} [], `FUNCS`{`funcidx*#17`} [], `GLOBALS`{`globalidx*#17`} [], `TABLES`{`tableidx*#17`} [], `MEMS`{`memidx*#17`} [], `ELEMS`{`elemidx*#17`} [], `DATAS`{`dataidx*#17`} [], `LOCALS`{`localidx*#17`} [], `LABELS`{`labelidx*#17`} []}] +[visit_exp `typeidx*#17`] +[visit_id typeidx*#17] +[visit_exp []] +[visit_exp `funcidx*#17`] +[visit_id funcidx*#17] +[visit_exp []] +[visit_exp `globalidx*#17`] +[visit_id globalidx*#17] +[visit_exp []] +[visit_exp `tableidx*#17`] +[visit_id tableidx*#17] +[visit_exp []] +[visit_exp `memidx*#17`] +[visit_id memidx*#17] +[visit_exp []] +[visit_exp `elemidx*#17`] +[visit_id elemidx*#17] +[visit_exp []] +[visit_exp `dataidx*#17`] +[visit_id dataidx*#17] +[visit_exp []] +[visit_exp `localidx*#17`] +[visit_id localidx*#17] +[visit_exp []] +[visit_exp `labelidx*#17`] +[visit_id labelidx*#17] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_typevar{n#249 : n, n : n, `typeidx*#17` : typeidx*, `funcidx*#17` : funcidx*, `globalidx*#17` : globalidx*, `tableidx*#17` : tableidx*, `memidx*#17` : memidx*, `elemidx*#17` : elemidx*, `dataidx*#17` : dataidx*, `localidx*#17` : localidx*, `labelidx*#17` : labelidx*}(`REC`_typevar{n#249}(n)) = {`TYPES`{`typeidx*#17`} [], `FUNCS`{`funcidx*#17`} [], `GLOBALS`{`globalidx*#17`} [], `TABLES`{`tableidx*#17`} [], `MEMS`{`memidx*#17`} [], `ELEMS`{`elemidx*#17`} [], `DATAS`{`dataidx*#17`} [], `LOCALS`{`localidx*#17`} [], `LABELS`{`labelidx*#17`} []} +[check_dims] typevar +[visit_exp (typevar : typevar <: typeuse)] +[visit_exp typevar] +[visit_id typevar] +[visit_exp $free_typevar(typevar)] +[visit_exp typevar] +[visit_id typevar] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_typeuse{typevar : typevar}((typevar : typevar <: typeuse)) = $free_typevar(typevar) +[check_dims] deftype +[visit_exp (deftype : deftype <: typeuse)] +[visit_exp deftype] +[visit_id deftype] +[visit_exp $free_deftype(deftype)] +[visit_exp deftype] +[visit_id deftype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_typeuse{deftype : deftype}((deftype : deftype <: typeuse)) = $free_deftype(deftype) +[check_dims] absheaptype +[visit_exp (absheaptype : absheaptype <: heaptype)] +[visit_exp absheaptype] +[visit_id absheaptype] +[visit_exp $free_absheaptype(absheaptype)] +[visit_exp absheaptype] +[visit_id absheaptype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_heaptype{absheaptype : absheaptype}((absheaptype : absheaptype <: heaptype)) = $free_absheaptype(absheaptype) +[check_dims] typeuse +[visit_exp (typeuse : typeuse <: heaptype)] +[visit_exp typeuse] +[visit_id typeuse] +[visit_exp $free_typeuse(typeuse)] +[visit_exp typeuse] +[visit_id typeuse] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_heaptype{typeuse : typeuse}((typeuse : typeuse <: heaptype)) = $free_typeuse(typeuse) +[check_dims] heaptype heaptype#293 null null?#293 +[visit_exp `REF`_reftype{`null?#293`, heaptype#293}(null?{null <- `null?`}, heaptype)] +[visit_exp `null?#293`] +[visit_id null?#293] +[visit_exp heaptype#293] +[visit_id heaptype#293] +[visit_exp (null?{null <- `null?`}, heaptype)] +[visit_exp null?{null <- `null?`}] +[scope_enter null] +[visit_exp null] +[visit_id null] not free +[visit_id null] not free +[scope_exit null] +[visit_exp `null?`] +[visit_id null?] no dims +[visit_id null?] +[visit_exp heaptype] +[visit_id heaptype] +[visit_exp $free_heaptype(heaptype)] +[visit_exp heaptype] +[visit_id heaptype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_reftype{`null?#293` : null?, heaptype#293 : heaptype, `null?` : null?, heaptype : heaptype}(`REF`_reftype{`null?#293`, heaptype#293}(null?{null <- `null?`}, heaptype)) = $free_heaptype(heaptype) +[check_dims] numtype +[visit_exp (numtype : numtype <: valtype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp $free_numtype(numtype)] +[visit_exp numtype] +[visit_id numtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_valtype{numtype : numtype}((numtype : numtype <: valtype)) = $free_numtype(numtype) +[check_dims] vectype +[visit_exp (vectype : vectype <: valtype)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp $free_vectype(vectype)] +[visit_exp vectype] +[visit_id vectype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_valtype{vectype : vectype}((vectype : vectype <: valtype)) = $free_vectype(vectype) +[check_dims] reftype +[visit_exp (reftype : reftype <: valtype)] +[visit_exp reftype] +[visit_id reftype] +[visit_exp $free_reftype(reftype)] +[visit_exp reftype] +[visit_id reftype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_valtype{reftype : reftype}((reftype : reftype <: valtype)) = $free_reftype(reftype) +[check_dims] dataidx*#18 elemidx*#18 funcidx*#18 globalidx*#18 labelidx*#18 localidx*#18 memidx*#18 tableidx*#18 typeidx*#18 +[visit_exp `BOT`_valtype] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#18`} [], `FUNCS`{`funcidx*#18`} [], `GLOBALS`{`globalidx*#18`} [], `TABLES`{`tableidx*#18`} [], `MEMS`{`memidx*#18`} [], `ELEMS`{`elemidx*#18`} [], `DATAS`{`dataidx*#18`} [], `LOCALS`{`localidx*#18`} [], `LABELS`{`labelidx*#18`} []}] +[visit_exp `typeidx*#18`] +[visit_id typeidx*#18] +[visit_exp []] +[visit_exp `funcidx*#18`] +[visit_id funcidx*#18] +[visit_exp []] +[visit_exp `globalidx*#18`] +[visit_id globalidx*#18] +[visit_exp []] +[visit_exp `tableidx*#18`] +[visit_id tableidx*#18] +[visit_exp []] +[visit_exp `memidx*#18`] +[visit_id memidx*#18] +[visit_exp []] +[visit_exp `elemidx*#18`] +[visit_id elemidx*#18] +[visit_exp []] +[visit_exp `dataidx*#18`] +[visit_id dataidx*#18] +[visit_exp []] +[visit_exp `localidx*#18`] +[visit_id localidx*#18] +[visit_exp []] +[visit_exp `labelidx*#18`] +[visit_id labelidx*#18] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_valtype{`typeidx*#18` : typeidx*, `funcidx*#18` : funcidx*, `globalidx*#18` : globalidx*, `tableidx*#18` : tableidx*, `memidx*#18` : memidx*, `elemidx*#18` : elemidx*, `dataidx*#18` : dataidx*, `localidx*#18` : localidx*, `labelidx*#18` : labelidx*}(`BOT`_valtype) = {`TYPES`{`typeidx*#18`} [], `FUNCS`{`funcidx*#18`} [], `GLOBALS`{`globalidx*#18`} [], `TABLES`{`tableidx*#18`} [], `MEMS`{`memidx*#18`} [], `ELEMS`{`elemidx*#18`} [], `DATAS`{`dataidx*#18`} [], `LOCALS`{`localidx*#18`} [], `LABELS`{`labelidx*#18`} []} +[check_dims] X*#230 valtype +[visit_exp `%`_resulttype{`X*#230`}(valtype*{valtype <- `valtype*`})] +[visit_exp `X*#230`] +[visit_id X*#230] +[visit_exp (valtype*{valtype <- `valtype*`})] +[visit_exp valtype*{valtype <- `valtype*`}] +[scope_enter valtype] +[visit_exp valtype] +[visit_id valtype] not free +[visit_id valtype] not free +[scope_exit valtype] +[visit_exp `valtype*`] +[visit_id valtype*] no dims +[visit_id valtype*] +[visit_exp $free_list($free_valtype(valtype)*{valtype <- `valtype*`})] +[visit_exp $free_valtype(valtype)*{valtype <- `valtype*`}] +[scope_enter valtype] +[visit_exp $free_valtype(valtype)] +[visit_exp valtype] +[visit_id valtype] not free +[visit_id valtype] not free +[scope_exit valtype] +[visit_exp `valtype*`] +[visit_id valtype*] not free +[visit_id valtype*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_resulttype{`X*#230` : valtype*, `valtype*` : valtype*}(`%`_resulttype{`X*#230`}(valtype*{valtype <- `valtype*`})) = $free_list($free_valtype(valtype)*{valtype <- `valtype*`}) +[check_dims] valtype +[visit_exp (valtype : valtype <: storagetype)] +[visit_exp valtype] +[visit_id valtype] +[visit_exp $free_valtype(valtype)] +[visit_exp valtype] +[visit_id valtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_storagetype{valtype : valtype}((valtype : valtype <: storagetype)) = $free_valtype(valtype) +[check_dims] packtype +[visit_exp (packtype : packtype <: storagetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp $free_packtype(packtype)] +[visit_exp packtype] +[visit_id packtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_storagetype{packtype : packtype}((packtype : packtype <: storagetype)) = $free_packtype(packtype) +[check_dims] mut mut?#209 storagetype storagetype#93 +[visit_exp `%%`_fieldtype{`mut?#209`, storagetype#93}(mut?{mut <- `mut?`}, storagetype)] +[visit_exp `mut?#209`] +[visit_id mut?#209] +[visit_exp storagetype#93] +[visit_id storagetype#93] +[visit_exp (mut?{mut <- `mut?`}, storagetype)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp storagetype] +[visit_id storagetype] +[visit_exp $free_storagetype(storagetype)] +[visit_exp storagetype] +[visit_id storagetype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_fieldtype{`mut?#209` : mut?, storagetype#93 : storagetype, `mut?` : mut?, storagetype : storagetype}(`%%`_fieldtype{`mut?#209`, storagetype#93}(mut?{mut <- `mut?`}, storagetype)) = $free_storagetype(storagetype) +[check_dims] X*#245 fieldtype +[visit_exp `STRUCT`_comptype(`%`_list{`X*#245`}(fieldtype*{fieldtype <- `fieldtype*`}))] +[visit_exp (`%`_list{`X*#245`}(fieldtype*{fieldtype <- `fieldtype*`}))] +[visit_exp `%`_list{`X*#245`}(fieldtype*{fieldtype <- `fieldtype*`})] +[visit_exp `X*#245`] +[visit_id X*#245] +[visit_exp (fieldtype*{fieldtype <- `fieldtype*`})] +[visit_exp fieldtype*{fieldtype <- `fieldtype*`}] +[scope_enter fieldtype] +[visit_exp fieldtype] +[visit_id fieldtype] not free +[visit_id fieldtype] not free +[scope_exit fieldtype] +[visit_exp `fieldtype*`] +[visit_id fieldtype*] no dims +[visit_id fieldtype*] +[visit_exp $free_list($free_fieldtype(fieldtype)*{fieldtype <- `fieldtype*`})] +[visit_exp $free_fieldtype(fieldtype)*{fieldtype <- `fieldtype*`}] +[scope_enter fieldtype] +[visit_exp $free_fieldtype(fieldtype)] +[visit_exp fieldtype] +[visit_id fieldtype] not free +[visit_id fieldtype] not free +[scope_exit fieldtype] +[visit_exp `fieldtype*`] +[visit_id fieldtype*] not free +[visit_id fieldtype*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_comptype{`X*#245` : fieldtype*, `fieldtype*` : fieldtype*}(`STRUCT`_comptype(`%`_list{`X*#245`}(fieldtype*{fieldtype <- `fieldtype*`}))) = $free_list($free_fieldtype(fieldtype)*{fieldtype <- `fieldtype*`}) +[check_dims] fieldtype fieldtype#5 +[visit_exp `ARRAY`_comptype{fieldtype#5}(fieldtype)] +[visit_exp fieldtype#5] +[visit_id fieldtype#5] +[visit_exp (fieldtype)] +[visit_exp fieldtype] +[visit_id fieldtype] +[visit_exp $free_fieldtype(fieldtype)] +[visit_exp fieldtype] +[visit_id fieldtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_comptype{fieldtype#5 : fieldtype, fieldtype : fieldtype}(`ARRAY`_comptype{fieldtype#5}(fieldtype)) = $free_fieldtype(fieldtype) +[check_dims] resulttype#7 resulttype_1 resulttype_2 +[visit_exp `FUNC%->%`_comptype{resulttype#7}(resulttype_1, resulttype_2)] +[visit_exp resulttype#7] +[visit_id resulttype#7] +[visit_exp (resulttype_1, resulttype_2)] +[visit_exp resulttype_1] +[visit_id resulttype_1] +[visit_exp resulttype_2] +[visit_id resulttype_2] +[visit_exp $free_resulttype(resulttype_1) +++ $free_resulttype(resulttype_2)] +[visit_exp $free_resulttype(resulttype_1)] +[visit_exp resulttype_1] +[visit_id resulttype_1] not free +[visit_exp $free_resulttype(resulttype_2)] +[visit_exp resulttype_2] +[visit_id resulttype_2] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_comptype{resulttype#7 : resulttype, resulttype_1 : resulttype, resulttype_2 : resulttype}(`FUNC%->%`_comptype{resulttype#7}(resulttype_1, resulttype_2)) = $free_resulttype(resulttype_1) +++ $free_resulttype(resulttype_2) +[check_dims] comptype comptype#179 final final?#179 typeuse typeuse*#179 +[visit_exp `SUB`_subtype{`final?#179`, `typeuse*#179`, comptype#179}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] +[visit_exp `final?#179`] +[visit_id final?#179] +[visit_exp `typeuse*#179`] +[visit_id typeuse*#179] +[visit_exp comptype#179] +[visit_id comptype#179] +[visit_exp (final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] +[visit_exp final?{final <- `final?`}] +[scope_enter final] +[visit_exp final] +[visit_id final] not free +[visit_id final] not free +[scope_exit final] +[visit_exp `final?`] +[visit_id final?] no dims +[visit_id final?] +[visit_exp typeuse*{typeuse <- `typeuse*`}] +[scope_enter typeuse] +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_id typeuse] not free +[scope_exit typeuse] +[visit_exp `typeuse*`] +[visit_id typeuse*] no dims +[visit_id typeuse*] +[visit_exp comptype] +[visit_id comptype] +[visit_exp $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`}) +++ $free_comptype(comptype)] +[visit_exp $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`})] +[visit_exp $free_typeuse(typeuse)*{typeuse <- `typeuse*`}] +[scope_enter typeuse] +[visit_exp $free_typeuse(typeuse)] +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_id typeuse] not free +[scope_exit typeuse] +[visit_exp `typeuse*`] +[visit_id typeuse*] not free +[visit_id typeuse*] no dims +[visit_exp $free_comptype(comptype)] +[visit_exp comptype] +[visit_id comptype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_subtype{`final?#179` : final?, `typeuse*#179` : typeuse*, comptype#179 : comptype, `final?` : final?, `typeuse*` : typeuse*, comptype : comptype}(`SUB`_subtype{`final?#179`, `typeuse*#179`, comptype#179}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) = $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`}) +++ $free_comptype(comptype) +[check_dims] X*#302 subtype +[visit_exp `REC`_rectype(`%`_list{`X*#302`}(subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list{`X*#302`}(subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list{`X*#302`}(subtype*{subtype <- `subtype*`})] +[visit_exp `X*#302`] +[visit_id X*#302] +[visit_exp (subtype*{subtype <- `subtype*`})] +[visit_exp subtype*{subtype <- `subtype*`}] +[scope_enter subtype] +[visit_exp subtype] +[visit_id subtype] not free +[visit_id subtype] not free +[scope_exit subtype] +[visit_exp `subtype*`] +[visit_id subtype*] no dims +[visit_id subtype*] +[visit_exp $free_list($free_subtype(subtype)*{subtype <- `subtype*`})] +[visit_exp $free_subtype(subtype)*{subtype <- `subtype*`}] +[scope_enter subtype] +[visit_exp $free_subtype(subtype)] +[visit_exp subtype] +[visit_id subtype] not free +[visit_id subtype] not free +[scope_exit subtype] +[visit_exp `subtype*`] +[visit_id subtype*] not free +[visit_id subtype*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_rectype{`X*#302` : subtype*, `subtype*` : subtype*}(`REC`_rectype(`%`_list{`X*#302`}(subtype*{subtype <- `subtype*`}))) = $free_list($free_subtype(subtype)*{subtype <- `subtype*`}) +[check_dims] deftype +[visit_exp (deftype : deftype <: typeuse)] +[visit_exp deftype] +[visit_id deftype] +[visit_exp $free_deftype(deftype)] +[visit_exp deftype] +[visit_id deftype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_tagtype{deftype : deftype}((deftype : deftype <: typeuse)) = $free_deftype(deftype) +[check_dims] mut mut?#253 valtype valtype#127 +[visit_exp `%%`_globaltype{`mut?#253`, valtype#127}(mut?{mut <- `mut?`}, valtype)] +[visit_exp `mut?#253`] +[visit_id mut?#253] +[visit_exp valtype#127] +[visit_id valtype#127] +[visit_exp (mut?{mut <- `mut?`}, valtype)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp valtype] +[visit_id valtype] +[visit_exp $free_valtype(valtype)] +[visit_exp valtype] +[visit_id valtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_globaltype{`mut?#253` : mut?, valtype#127 : valtype, `mut?` : mut?, valtype : valtype}(`%%`_globaltype{`mut?#253`, valtype#127}(mut?{mut <- `mut?`}, valtype)) = $free_valtype(valtype) +[check_dims] addrtype addrtype#211 limits limits#211 +[visit_exp `%%PAGE`_memtype{addrtype#211, limits#211}(addrtype, limits)] +[visit_exp addrtype#211] +[visit_id addrtype#211] +[visit_exp limits#211] +[visit_id limits#211] +[visit_exp (addrtype, limits)] +[visit_exp addrtype] +[visit_id addrtype] +[visit_exp limits] +[visit_id limits] +[visit_exp $free_addrtype((addrtype : addrtype <: numtype))] +[visit_exp (addrtype : addrtype <: numtype)] +[visit_exp addrtype] +[visit_id addrtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_memtype{addrtype#211 : addrtype, limits#211 : limits, addrtype : addrtype, limits : limits}(`%%PAGE`_memtype{addrtype#211, limits#211}(addrtype, limits)) = $free_addrtype((addrtype : addrtype <: numtype)) +[check_dims] addrtype addrtype#223 limits limits#223 reftype reftype#111 +[visit_exp `%%%`_tabletype{addrtype#223, limits#223, reftype#111}(addrtype, limits, reftype)] +[visit_exp addrtype#223] +[visit_id addrtype#223] +[visit_exp limits#223] +[visit_id limits#223] +[visit_exp reftype#111] +[visit_id reftype#111] +[visit_exp (addrtype, limits, reftype)] +[visit_exp addrtype] +[visit_id addrtype] +[visit_exp limits] +[visit_id limits] +[visit_exp reftype] +[visit_id reftype] +[visit_exp $free_addrtype((addrtype : addrtype <: numtype)) +++ $free_reftype(reftype)] +[visit_exp $free_addrtype((addrtype : addrtype <: numtype))] +[visit_exp (addrtype : addrtype <: numtype)] +[visit_exp addrtype] +[visit_id addrtype] not free +[visit_exp $free_reftype(reftype)] +[visit_exp reftype] +[visit_id reftype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_tabletype{addrtype#223 : addrtype, limits#223 : limits, reftype#111 : reftype, addrtype : addrtype, limits : limits, reftype : reftype}(`%%%`_tabletype{addrtype#223, limits#223, reftype#111}(addrtype, limits, reftype)) = $free_addrtype((addrtype : addrtype <: numtype)) +++ $free_reftype(reftype) +[check_dims] dataidx*#19 elemidx*#19 funcidx*#19 globalidx*#19 labelidx*#19 localidx*#19 memidx*#19 tableidx*#19 typeidx*#19 +[visit_exp `OK`_datatype] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#19`} [], `FUNCS`{`funcidx*#19`} [], `GLOBALS`{`globalidx*#19`} [], `TABLES`{`tableidx*#19`} [], `MEMS`{`memidx*#19`} [], `ELEMS`{`elemidx*#19`} [], `DATAS`{`dataidx*#19`} [], `LOCALS`{`localidx*#19`} [], `LABELS`{`labelidx*#19`} []}] +[visit_exp `typeidx*#19`] +[visit_id typeidx*#19] +[visit_exp []] +[visit_exp `funcidx*#19`] +[visit_id funcidx*#19] +[visit_exp []] +[visit_exp `globalidx*#19`] +[visit_id globalidx*#19] +[visit_exp []] +[visit_exp `tableidx*#19`] +[visit_id tableidx*#19] +[visit_exp []] +[visit_exp `memidx*#19`] +[visit_id memidx*#19] +[visit_exp []] +[visit_exp `elemidx*#19`] +[visit_id elemidx*#19] +[visit_exp []] +[visit_exp `dataidx*#19`] +[visit_id dataidx*#19] +[visit_exp []] +[visit_exp `localidx*#19`] +[visit_id localidx*#19] +[visit_exp []] +[visit_exp `labelidx*#19`] +[visit_id labelidx*#19] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_datatype{`typeidx*#19` : typeidx*, `funcidx*#19` : funcidx*, `globalidx*#19` : globalidx*, `tableidx*#19` : tableidx*, `memidx*#19` : memidx*, `elemidx*#19` : elemidx*, `dataidx*#19` : dataidx*, `localidx*#19` : localidx*, `labelidx*#19` : labelidx*}(`OK`_datatype) = {`TYPES`{`typeidx*#19`} [], `FUNCS`{`funcidx*#19`} [], `GLOBALS`{`globalidx*#19`} [], `TABLES`{`tableidx*#19`} [], `MEMS`{`memidx*#19`} [], `ELEMS`{`elemidx*#19`} [], `DATAS`{`dataidx*#19`} [], `LOCALS`{`localidx*#19`} [], `LABELS`{`labelidx*#19`} []} +[check_dims] reftype +[visit_exp reftype] +[visit_id reftype] +[visit_exp $free_reftype(reftype)] +[visit_exp reftype] +[visit_id reftype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_elemtype{reftype : reftype}(reftype) = $free_reftype(reftype) +[check_dims] tagtype tagtype#7 +[visit_exp `TAG`_externtype{tagtype#7}(tagtype)] +[visit_exp tagtype#7] +[visit_id tagtype#7] +[visit_exp (tagtype)] +[visit_exp tagtype] +[visit_id tagtype] +[visit_exp $free_tagtype(tagtype)] +[visit_exp tagtype] +[visit_id tagtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_externtype{tagtype#7 : tagtype, tagtype : tagtype}(`TAG`_externtype{tagtype#7}(tagtype)) = $free_tagtype(tagtype) +[check_dims] globaltype globaltype#7 +[visit_exp `GLOBAL`_externtype{globaltype#7}(globaltype)] +[visit_exp globaltype#7] +[visit_id globaltype#7] +[visit_exp (globaltype)] +[visit_exp globaltype] +[visit_id globaltype] +[visit_exp $free_globaltype(globaltype)] +[visit_exp globaltype] +[visit_id globaltype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_externtype{globaltype#7 : globaltype, globaltype : globaltype}(`GLOBAL`_externtype{globaltype#7}(globaltype)) = $free_globaltype(globaltype) +[check_dims] memtype memtype#7 +[visit_exp `MEM`_externtype{memtype#7}(memtype)] +[visit_exp memtype#7] +[visit_id memtype#7] +[visit_exp (memtype)] +[visit_exp memtype] +[visit_id memtype] +[visit_exp $free_memtype(memtype)] +[visit_exp memtype] +[visit_id memtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_externtype{memtype#7 : memtype, memtype : memtype}(`MEM`_externtype{memtype#7}(memtype)) = $free_memtype(memtype) +[check_dims] tabletype tabletype#7 +[visit_exp `TABLE`_externtype{tabletype#7}(tabletype)] +[visit_exp tabletype#7] +[visit_id tabletype#7] +[visit_exp (tabletype)] +[visit_exp tabletype] +[visit_id tabletype] +[visit_exp $free_tabletype(tabletype)] +[visit_exp tabletype] +[visit_id tabletype] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_externtype{tabletype#7 : tabletype, tabletype : tabletype}(`TABLE`_externtype{tabletype#7}(tabletype)) = $free_tabletype(tabletype) +[check_dims] typeuse typeuse#7 +[visit_exp `FUNC`_externtype{typeuse#7}(typeuse)] +[visit_exp typeuse#7] +[visit_id typeuse#7] +[visit_exp (typeuse)] +[visit_exp typeuse] +[visit_id typeuse] +[visit_exp $free_typeuse(typeuse)] +[visit_exp typeuse] +[visit_id typeuse] not free +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_externtype{typeuse#7 : typeuse, typeuse : typeuse}(`FUNC`_externtype{typeuse#7}(typeuse)) = $free_typeuse(typeuse) +[check_dims] externtype*#88 externtype_1 externtype_2 +[visit_exp `%->%`_moduletype{`externtype*#88`}(externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})] +[visit_exp `externtype*#88`] +[visit_id externtype*#88] +[visit_exp (externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})] +[visit_exp externtype_1*{externtype_1 <- `externtype_1*`}] +[scope_enter externtype_1] +[visit_exp externtype_1] +[visit_id externtype_1] not free +[visit_id externtype_1] not free +[scope_exit externtype_1] +[visit_exp `externtype_1*`] +[visit_id externtype_1*] no dims +[visit_id externtype_1*] +[visit_exp externtype_2*{externtype_2 <- `externtype_2*`}] +[scope_enter externtype_2] +[visit_exp externtype_2] +[visit_id externtype_2] not free +[visit_id externtype_2] not free +[scope_exit externtype_2] +[visit_exp `externtype_2*`] +[visit_id externtype_2*] no dims +[visit_id externtype_2*] +[visit_exp $free_list($free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`}) +++ $free_list($free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`})] +[visit_exp $free_list($free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`})] +[visit_exp $free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`}] +[scope_enter externtype_1] +[visit_exp $free_externtype(externtype_1)] +[visit_exp externtype_1] +[visit_id externtype_1] not free +[visit_id externtype_1] not free +[scope_exit externtype_1] +[visit_exp `externtype_1*`] +[visit_id externtype_1*] not free +[visit_id externtype_1*] no dims +[visit_exp $free_list($free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`})] +[visit_exp $free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`}] +[scope_enter externtype_2] +[visit_exp $free_externtype(externtype_2)] +[visit_exp externtype_2] +[visit_id externtype_2] not free +[visit_id externtype_2] not free +[scope_exit externtype_2] +[visit_exp `externtype_2*`] +[visit_id externtype_2*] not free +[visit_id externtype_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec + def $free_moduletype{`externtype*#88` : externtype*, `externtype_1*` : externtype*, `externtype_2*` : externtype*}(`%->%`_moduletype{`externtype*#88`}(externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})) = $free_list($free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`}) +++ $free_list($free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`}) +[check_dims] numtype +[visit_id numtype] not free +[check_dims] Inn +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[check_dims] Fnn +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[check_dims] Pnn +[visit_exp Pnn] +[visit_id Pnn] +[check_dims] lanetype +[visit_id lanetype] not free +[check_dims] numtype +[visit_exp (numtype : numtype <: lanetype)] +[visit_exp numtype] +[visit_id numtype] +[check_dims] packtype +[visit_exp (packtype : packtype <: lanetype)] +[visit_exp packtype] +[visit_id packtype] +[check_dims] Jnn +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[check_dims] Vnn +[visit_exp Vnn] +[visit_id Vnn] +[check_dims] storagetype +[visit_id storagetype] not free +[check_dims] numtype +[visit_exp (numtype : numtype <: storagetype)] +[visit_exp numtype] +[visit_id numtype] +[check_dims] vectype +[visit_exp (vectype : vectype <: storagetype)] +[visit_exp vectype] +[visit_id vectype] +[check_dims] packtype +[visit_exp (packtype : packtype <: storagetype)] +[visit_exp packtype] +[visit_id packtype] +[check_dims] +[check_dims] +[visit_exp 8] +[check_dims] +[visit_exp 16] +[check_dims] +[visit_exp 32] +[check_dims] +[visit_exp 64] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] numtype +[visit_id numtype] not free +[check_dims] Inn +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Inn i#1051 sz +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sz] +[visit_exp (sz!`%`_sz{i#1051}.0 < $sizenn((Inn : Inn <: numtype)))] +[visit_exp sz!`%`_sz{i#1051}.0] +[visit_exp sz!`%`_sz{i#1051}] +[visit_exp sz] +[visit_id sz] not free +[visit_exp i#1051] +[visit_id i#1051] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_id Inn] no dims +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[check_dims] Fnn +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[check_dims] numtype +[visit_id numtype] not free +[check_dims] Inn +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[check_dims] Fnn +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[check_dims] numtype +[visit_id numtype] not free +[check_dims] Inn +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[check_dims] numtype +[visit_id numtype] not free +[check_dims] Inn +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +--- 1 --- +[check_dims] Inn +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[check_dims] Fnn +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[check_dims] numtype_1 numtype_2 +[visit_id numtype_1] not free +[visit_id numtype_2] not free +[check_dims] Inn_1 Inn_2 +--- 1 --- +[check_dims] Inn_1 Inn_2 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +[visit_exp ($sizenn1((Inn_1 : Inn <: numtype)) < $sizenn2((Inn_2 : Inn <: numtype)))] +[visit_exp $sizenn1((Inn_1 : Inn <: numtype))] +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] not free +[visit_id Inn_1] no dims +[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] not free +[visit_id Inn_2] no dims +--- 1 --- +[check_dims] Inn_1 Inn_2 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp ($sizenn1((Inn_1 : Inn <: numtype)) > $sizenn2((Inn_2 : Inn <: numtype)))] +[visit_exp $sizenn1((Inn_1 : Inn <: numtype))] +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] not free +[visit_id Inn_1] no dims +[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] not free +[visit_id Inn_2] no dims +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] +[check_dims] Fnn_2 Inn_1 +--- 1 --- +[check_dims] Fnn_2 Inn_1 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +--- 1 --- +[check_dims] Fnn_2 Inn_1 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp ($sizenn1((Inn_1 : Inn <: numtype)) = $sizenn2((Fnn_2 : Fnn <: numtype)))] +[visit_exp $sizenn1((Inn_1 : Inn <: numtype))] +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] not free +[visit_id Inn_1] no dims +[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_id Fnn_2] no dims +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[check_dims] Fnn_1 Inn_2 +--- 1 --- +[check_dims] Fnn_1 Inn_2 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +--- 1 --- +[check_dims] Fnn_1 Inn_2 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +--- 1 --- +[check_dims] Fnn_1 Inn_2 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) = $sizenn2((Inn_2 : Inn <: numtype)))] +[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_id Fnn_1] no dims +[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] not free +[visit_id Inn_2] no dims +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] +[check_dims] Fnn_1 Fnn_2 +--- 1 --- +[check_dims] Fnn_1 Fnn_2 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) < $sizenn2((Fnn_2 : Fnn <: numtype)))] +[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_id Fnn_1] no dims +[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_id Fnn_2] no dims +--- 1 --- +[check_dims] Fnn_1 Fnn_2 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) > $sizenn2((Fnn_2 : Fnn <: numtype)))] +[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_id Fnn_1] no dims +[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_id Fnn_2] no dims +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[check_dims] +[check_dims] +[visit_exp 1] +[check_dims] +[visit_exp 2] +[check_dims] +[visit_exp 4] +[check_dims] +[visit_exp 8] +[check_dims] +[visit_exp 16] +[check_dims] +--- 1 --- +[check_dims] dim i#1053 lanetype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id lanetype] +[visit_id dim] +[visit_exp (($lsize(lanetype) * dim!`%`_dim{i#1053}.0) = 128)] +[visit_exp ($lsize(lanetype) * dim!`%`_dim{i#1053}.0)] +[visit_exp $lsize(lanetype)] +[visit_exp lanetype] +[visit_id lanetype] not free +[visit_exp dim!`%`_dim{i#1053}.0] +[visit_exp dim!`%`_dim{i#1053}] +[visit_exp dim] +[visit_id dim] not free +[visit_exp i#1053] +[visit_id i#1053] +[visit_exp 128] +[check_dims] shape +DecD dim(shape : shape) : dim +[visit_id shape] not free +[check_dims] Lnn N dim#11 i#1058 i#1065 i#1073 lanetype#11 +[visit_exp `%X%`_shape{lanetype#11, dim#11, i#1058}(Lnn, `%`_dim{i#1065}(N))] +[visit_exp lanetype#11] +[visit_id lanetype#11] +[visit_exp dim#11] +[visit_id dim#11] +[visit_exp i#1058] +[visit_id i#1058] +[visit_exp (Lnn, `%`_dim{i#1065}(N))] +[visit_exp Lnn] +[visit_id Lnn] +[visit_exp `%`_dim{i#1065}(N)] +[visit_exp i#1065] +[visit_id i#1065] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp `%`_dim{i#1073}(N)] +[visit_exp i#1073] +[visit_id i#1073] +[visit_exp (N)] +[visit_exp N] +[visit_id N] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $dim{lanetype#11 : lanetype, dim#11 : dim, i#1058 : nat, Lnn : Lnn, i#1065 : nat, N : N, i#1073 : nat}(`%X%`_shape{lanetype#11, dim#11, i#1058}(Lnn, `%`_dim{i#1065}(N))) = `%`_dim{i#1073}(N) +[check_dims] shape +DecD lanetype(shape : shape) : lanetype +[visit_id shape] not free +[check_dims] Lnn N dim#23 i#1078 i#1085 lanetype#23 +[visit_exp `%X%`_shape{lanetype#23, dim#23, i#1078}(Lnn, `%`_dim{i#1085}(N))] +[visit_exp lanetype#23] +[visit_id lanetype#23] +[visit_exp dim#23] +[visit_id dim#23] +[visit_exp i#1078] +[visit_id i#1078] +[visit_exp (Lnn, `%`_dim{i#1085}(N))] +[visit_exp Lnn] +[visit_id Lnn] +[visit_exp `%`_dim{i#1085}(N)] +[visit_exp i#1085] +[visit_id i#1085] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp Lnn] +[visit_id Lnn] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $lanetype{lanetype#23 : lanetype, dim#23 : dim, i#1078 : nat, Lnn : Lnn, i#1085 : nat, N : N}(`%X%`_shape{lanetype#23, dim#23, i#1078}(Lnn, `%`_dim{i#1085}(N))) = Lnn +[check_dims] shape +DecD unpackshape(shape : shape) : numtype +[visit_id shape] not free +[check_dims] Lnn N dim#35 i#1090 i#1097 lanetype#35 +[visit_exp `%X%`_shape{lanetype#35, dim#35, i#1090}(Lnn, `%`_dim{i#1097}(N))] +[visit_exp lanetype#35] +[visit_id lanetype#35] +[visit_exp dim#35] +[visit_id dim#35] +[visit_exp i#1090] +[visit_id i#1090] +[visit_exp (Lnn, `%`_dim{i#1097}(N))] +[visit_exp Lnn] +[visit_id Lnn] +[visit_exp `%`_dim{i#1097}(N)] +[visit_exp i#1097] +[visit_id i#1097] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp $lunpack(Lnn)] +[visit_exp Lnn] +[visit_id Lnn] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $unpackshape{lanetype#35 : lanetype, dim#35 : dim, i#1090 : nat, Lnn : Lnn, i#1097 : nat, N : N}(`%X%`_shape{lanetype#35, dim#35, i#1090}(Lnn, `%`_dim{i#1097}(N))) = $lunpack(Lnn) +[check_dims] +--- 1 --- +[check_dims] Jnn shape +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id shape] +[visit_exp ($lanetype(shape) = (Jnn : Jnn <: lanetype))] +[visit_exp $lanetype(shape)] +[visit_exp shape] +[visit_id shape] not free +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[check_dims] +--- 1 --- +[check_dims] shape +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id shape] +[visit_exp ($lanetype(shape) = `I8`_lanetype)] +[visit_exp $lanetype(shape)] +[visit_exp shape] +[visit_id shape] not free +[visit_exp `I8`_lanetype] +[visit_exp ()] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] shape +[visit_id shape] not free +[check_dims] Jnn M dim#65 i#1108 i#1115 lanetype#65 +--- 1 --- +[check_dims] Jnn M dim#65 i#1108 i#1115 lanetype#65 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Jnn M dim#65 i#1108 i#1115 lanetype#65 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Jnn M dim#65 i#1108 i#1115 lanetype#65 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) = 8)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_id Jnn] no dims +[visit_exp 8] +[visit_exp `%X%`_shape{lanetype#65, dim#65, i#1108}((Jnn : Jnn <: lanetype), `%`_dim{i#1115}(M))] +[visit_exp lanetype#65] +[visit_id lanetype#65] +[visit_exp dim#65] +[visit_id dim#65] +[visit_exp i#1108] +[visit_id i#1108] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#1115}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#1115}(M)] +[visit_exp i#1115] +[visit_id i#1115] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +--- 1 --- +[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp `%X%`_shape{lanetype#77, dim#77, i#1120}((Fnn : Fnn <: lanetype), `%`_dim{i#1127}(M))] +[visit_exp lanetype#77] +[visit_id lanetype#77] +[visit_exp dim#77] +[visit_id dim#77] +[visit_exp i#1120] +[visit_id i#1120] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#1127}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#1127}(M)] +[visit_exp i#1127] +[visit_id i#1127] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[check_dims] shape +[visit_id shape] not free +[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +--- 1 --- +[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 16)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_id Jnn] no dims +[visit_exp 16] +--- 1 --- +[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 16)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_id Jnn] no dims +[visit_exp 16] +--- 1 --- +[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) >= 16)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_id Jnn] no dims +[visit_exp 16] +--- 1 --- +[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 16)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_id Jnn] no dims +[visit_exp 16] +--- 1 --- +[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) = 16)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_id Jnn] no dims +[visit_exp 16] +--- 1 --- +[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) = 16)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_id Jnn] no dims +[visit_exp 16] +--- 1 --- +[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 32)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_id Jnn] no dims +[visit_exp 32] +--- 1 --- +[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 32)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_id Jnn] no dims +[visit_exp 32] +[visit_exp `%X%`_shape{lanetype#89, dim#89, i#1132}((Jnn : Jnn <: lanetype), `%`_dim{i#1139}(M))] +[visit_exp lanetype#89] +[visit_id lanetype#89] +[visit_exp dim#89] +[visit_id dim#89] +[visit_exp i#1132] +[visit_id i#1132] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#1139}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#1139}(M)] +[visit_exp i#1139] +[visit_id i#1139] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +--- 1 --- +[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp `%X%`_shape{lanetype#101, dim#101, i#1144}((Fnn : Fnn <: lanetype), `%`_dim{i#1151}(M))] +[visit_exp lanetype#101] +[visit_id lanetype#101] +[visit_exp dim#101] +[visit_id dim#101] +[visit_exp i#1144] +[visit_id i#1144] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#1151}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#1151}(M)] +[visit_exp i#1151] +[visit_id i#1151] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[check_dims] shape +[visit_id shape] not free +[check_dims] Jnn M dim#113 i#1156 i#1163 lanetype#113 +--- 1 --- +[check_dims] Jnn M dim#113 i#1156 i#1163 lanetype#113 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp `%X%`_shape{lanetype#113, dim#113, i#1156}((Jnn : Jnn <: lanetype), `%`_dim{i#1163}(M))] +[visit_exp lanetype#113] +[visit_id lanetype#113] +[visit_exp dim#113] +[visit_id dim#113] +[visit_exp i#1156] +[visit_id i#1156] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#1163}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#1163}(M)] +[visit_exp i#1163] +[visit_id i#1163] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[check_dims] Fnn M dim#125 i#1168 i#1175 lanetype#125 +--- 1 --- +[check_dims] Fnn M dim#125 i#1168 i#1175 lanetype#125 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#125 i#1168 i#1175 lanetype#125 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp `%X%`_shape{lanetype#125, dim#125, i#1168}((Fnn : Fnn <: lanetype), `%`_dim{i#1175}(M))] +[visit_exp lanetype#125] +[visit_id lanetype#125] +[visit_exp dim#125] +[visit_id dim#125] +[visit_exp i#1168] +[visit_id i#1168] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#1175}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#1175}(M)] +[visit_exp i#1175] +[visit_id i#1175] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[check_dims] shape +[visit_id shape] not free +[check_dims] Jnn M dim#137 i#1180 i#1187 lanetype#137 +--- 1 --- +[check_dims] Jnn M dim#137 i#1180 i#1187 lanetype#137 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp `%X%`_shape{lanetype#137, dim#137, i#1180}((Jnn : Jnn <: lanetype), `%`_dim{i#1187}(M))] +[visit_exp lanetype#137] +[visit_id lanetype#137] +[visit_exp dim#137] +[visit_id dim#137] +[visit_exp i#1180] +[visit_id i#1180] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#1187}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#1187}(M)] +[visit_exp i#1187] +[visit_id i#1187] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[check_dims] shape +[visit_id shape] not free +[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 +--- 1 --- +[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 sx +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] +[visit_exp (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx))] +[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) =/= 64)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_id Jnn] no dims +[visit_exp 64] +[visit_exp (sx = `S`_sx)] +[visit_exp sx] +[visit_id sx] not free +[visit_exp `S`_sx] +[visit_exp ()] +--- 1 --- +[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 sx +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] +[visit_exp (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx))] +[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) =/= 64)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_id Jnn] no dims +[visit_exp 64] +[visit_exp (sx = `S`_sx)] +[visit_exp sx] +[visit_id sx] not free +[visit_exp `S`_sx] +[visit_exp ()] +--- 1 --- +[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 sx +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] +[visit_exp (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx))] +[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) =/= 64)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_id Jnn] no dims +[visit_exp 64] +[visit_exp (sx = `S`_sx)] +[visit_exp sx] +[visit_id sx] not free +[visit_exp `S`_sx] +[visit_exp ()] +--- 1 --- +[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 sx +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] +[visit_exp (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx))] +[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) =/= 64)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_id Jnn] no dims +[visit_exp 64] +[visit_exp (sx = `S`_sx)] +[visit_exp sx] +[visit_id sx] not free +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%X%`_shape{lanetype#149, dim#149, i#1192}((Jnn : Jnn <: lanetype), `%`_dim{i#1199}(M))] +[visit_exp lanetype#149] +[visit_id lanetype#149] +[visit_exp dim#149] +[visit_id dim#149] +[visit_exp i#1192] +[visit_id i#1192] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#1199}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#1199}(M)] +[visit_exp i#1199] +[visit_id i#1199] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +--- 1 --- +[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp `%X%`_shape{lanetype#161, dim#161, i#1204}((Fnn : Fnn <: lanetype), `%`_dim{i#1211}(M))] +[visit_exp lanetype#161] +[visit_id lanetype#161] +[visit_exp dim#161] +[visit_id dim#161] +[visit_exp i#1204] +[visit_id i#1204] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#1211}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#1211}(M)] +[visit_exp i#1211] +[visit_id i#1211] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[check_dims] ishape +[visit_id ishape] not free +[check_dims] Jnn Jnn#4 M dim#173 i#1216 i#1223 lanetype#173 shape#11 +--- 1 --- +[check_dims] Jnn Jnn#4 M dim#173 i#1216 i#1223 lanetype#173 shape#11 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] Jnn Jnn#4 M dim#173 i#1216 i#1223 lanetype#173 shape#11 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +[visit_exp `%`_ishape{shape#11, Jnn#4}(`%X%`_shape{lanetype#173, dim#173, i#1216}((Jnn : Jnn <: lanetype), `%`_dim{i#1223}(M)))] +[visit_exp shape#11] +[visit_id shape#11] +[visit_exp Jnn#4] +[visit_id Jnn#4] +[visit_exp (`%X%`_shape{lanetype#173, dim#173, i#1216}((Jnn : Jnn <: lanetype), `%`_dim{i#1223}(M)))] +[visit_exp `%X%`_shape{lanetype#173, dim#173, i#1216}((Jnn : Jnn <: lanetype), `%`_dim{i#1223}(M))] +[visit_exp lanetype#173] +[visit_id lanetype#173] +[visit_exp dim#173] +[visit_id dim#173] +[visit_exp i#1216] +[visit_id i#1216] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#1223}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#1223}(M)] +[visit_exp i#1223] +[visit_id i#1223] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[check_dims] bshape +[visit_id bshape] not free +[check_dims] M dim#185 i#1228 i#1235 lanetype#185 shape#23 +--- 1 --- +[check_dims] M dim#185 i#1228 i#1235 lanetype#185 shape#23 +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] M dim#185 i#1228 i#1235 lanetype#185 shape#23 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp `%`_bshape{shape#23}(`%X%`_shape{lanetype#185, dim#185, i#1228}(`I8`_lanetype, `%`_dim{i#1235}(M)))] +[visit_exp shape#23] +[visit_id shape#23] +[visit_exp (`%X%`_shape{lanetype#185, dim#185, i#1228}(`I8`_lanetype, `%`_dim{i#1235}(M)))] +[visit_exp `%X%`_shape{lanetype#185, dim#185, i#1228}(`I8`_lanetype, `%`_dim{i#1235}(M))] +[visit_exp lanetype#185] +[visit_id lanetype#185] +[visit_exp dim#185] +[visit_id dim#185] +[visit_exp i#1228] +[visit_id i#1228] +[visit_exp (`I8`_lanetype, `%`_dim{i#1235}(M))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#1235}(M)] +[visit_exp i#1235] +[visit_id i#1235] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[check_dims] ishape_1 ishape_2 +[visit_id ishape_1] not free +[visit_id ishape_2] not free +[check_dims] Jnn#12 Jnn#8 Jnn_1 Jnn_2 M_1 M_2 dim#197 dim#209 i#1240 i#1247 i#1252 i#1259 lanetype#197 lanetype#209 shape#35 shape#47 +--- 1 --- +[check_dims] Jnn#12 Jnn#8 Jnn_1 Jnn_2 M_1 M_2 dim#197 dim#209 i#1240 i#1247 i#1252 i#1259 lanetype#197 lanetype#209 shape#35 shape#47 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +[visit_exp ((16 <= (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) <= 32)))] +[visit_exp (16 <= (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))))] +[visit_exp 16] +[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] +[visit_exp 2] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_id Jnn_1] no dims +[visit_exp (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) <= 32))] +[visit_exp ((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] +[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] +[visit_exp 2] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_id Jnn_1] no dims +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) <= 32)] +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp 32] +[visit_exp `%`_ishape{shape#35, Jnn#8}(`%X%`_shape{lanetype#197, dim#197, i#1240}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1247}(M_1)))] +[visit_exp shape#35] +[visit_id shape#35] +[visit_exp Jnn#8] +[visit_id Jnn#8] +[visit_exp (`%X%`_shape{lanetype#197, dim#197, i#1240}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1247}(M_1)))] +[visit_exp `%X%`_shape{lanetype#197, dim#197, i#1240}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1247}(M_1))] +[visit_exp lanetype#197] +[visit_id lanetype#197] +[visit_exp dim#197] +[visit_id dim#197] +[visit_exp i#1240] +[visit_id i#1240] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1247}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#1247}(M_1)] +[visit_exp i#1247] +[visit_id i#1247] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%`_ishape{shape#47, Jnn#12}(`%X%`_shape{lanetype#209, dim#209, i#1252}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1259}(M_2)))] +[visit_exp shape#47] +[visit_id shape#47] +[visit_exp Jnn#12] +[visit_id Jnn#12] +[visit_exp (`%X%`_shape{lanetype#209, dim#209, i#1252}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1259}(M_2)))] +[visit_exp `%X%`_shape{lanetype#209, dim#209, i#1252}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1259}(M_2))] +[visit_exp lanetype#209] +[visit_id lanetype#209] +[visit_exp dim#209] +[visit_id dim#209] +[visit_exp i#1252] +[visit_id i#1252] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1259}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#1259}(M_2)] +[visit_exp i#1259] +[visit_id i#1259] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[check_dims] ishape_1 ishape_2 +[visit_id ishape_1] not free +[visit_id ishape_2] not free +[check_dims] Jnn#16 Jnn#20 Jnn_1 Jnn_2 M_1 M_2 dim#221 dim#233 i#1264 i#1271 i#1276 i#1283 lanetype#221 lanetype#233 shape#59 shape#71 +--- 1 --- +[check_dims] Jnn#16 Jnn#20 Jnn_1 Jnn_2 M_1 M_2 dim#221 dim#233 i#1264 i#1271 i#1276 i#1283 lanetype#221 lanetype#233 shape#59 shape#71 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id half] no dims +[visit_id half] +[visit_id sx] no dims +[visit_id sx] +[visit_exp (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) >= 16))] +[visit_exp ((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] +[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] +[visit_exp 2] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_id Jnn_1] no dims +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) >= 16)] +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp 16] +--- 1 --- +[check_dims] Jnn#16 Jnn#20 Jnn_1 Jnn_2 M_1 M_2 dim#221 dim#233 i#1264 i#1271 i#1276 i#1283 lanetype#221 lanetype#233 shape#59 shape#71 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32))] +[visit_exp ((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] +[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] +[visit_exp 2] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_id Jnn_1] no dims +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)] +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp 32] +--- 1 --- +[check_dims] Jnn#16 Jnn#20 Jnn_1 Jnn_2 M_1 M_2 dim#221 dim#233 i#1264 i#1271 i#1276 i#1283 lanetype#221 lanetype#233 shape#59 shape#71 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 16))] +[visit_exp ((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] +[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] +[visit_exp 2] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_id Jnn_1] no dims +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 16)] +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp 16] +[visit_exp `%`_ishape{shape#59, Jnn#16}(`%X%`_shape{lanetype#221, dim#221, i#1264}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1271}(M_1)))] +[visit_exp shape#59] +[visit_id shape#59] +[visit_exp Jnn#16] +[visit_id Jnn#16] +[visit_exp (`%X%`_shape{lanetype#221, dim#221, i#1264}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1271}(M_1)))] +[visit_exp `%X%`_shape{lanetype#221, dim#221, i#1264}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1271}(M_1))] +[visit_exp lanetype#221] +[visit_id lanetype#221] +[visit_exp dim#221] +[visit_id dim#221] +[visit_exp i#1264] +[visit_id i#1264] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1271}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#1271}(M_1)] +[visit_exp i#1271] +[visit_id i#1271] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%`_ishape{shape#71, Jnn#20}(`%X%`_shape{lanetype#233, dim#233, i#1276}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1283}(M_2)))] +[visit_exp shape#71] +[visit_id shape#71] +[visit_exp Jnn#20] +[visit_id Jnn#20] +[visit_exp (`%X%`_shape{lanetype#233, dim#233, i#1276}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1283}(M_2)))] +[visit_exp `%X%`_shape{lanetype#233, dim#233, i#1276}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1283}(M_2))] +[visit_exp lanetype#233] +[visit_id lanetype#233] +[visit_exp dim#233] +[visit_id dim#233] +[visit_exp i#1276] +[visit_id i#1276] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1283}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#1283}(M_2)] +[visit_exp i#1283] +[visit_id i#1283] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[check_dims] ishape_1 ishape_2 +[visit_id ishape_1] not free +[visit_id ishape_2] not free +[check_dims] Jnn#24 Jnn#28 Jnn_1 Jnn_2 M_1 M_2 dim#245 dim#257 i#1288 i#1295 i#1300 i#1307 lanetype#245 lanetype#257 shape#83 shape#95 +--- 1 --- +[check_dims] Jnn#24 Jnn#28 Jnn_1 Jnn_2 M_1 M_2 dim#245 dim#257 i#1288 i#1295 i#1300 i#1307 lanetype#245 lanetype#257 shape#83 shape#95 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp (((4 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32))] +[visit_exp ((4 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] +[visit_exp (4 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] +[visit_exp 4] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_id Jnn_1] no dims +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)] +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp 32] +[visit_exp `%`_ishape{shape#83, Jnn#24}(`%X%`_shape{lanetype#245, dim#245, i#1288}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1295}(M_1)))] +[visit_exp shape#83] +[visit_id shape#83] +[visit_exp Jnn#24] +[visit_id Jnn#24] +[visit_exp (`%X%`_shape{lanetype#245, dim#245, i#1288}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1295}(M_1)))] +[visit_exp `%X%`_shape{lanetype#245, dim#245, i#1288}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1295}(M_1))] +[visit_exp lanetype#245] +[visit_id lanetype#245] +[visit_exp dim#245] +[visit_id dim#245] +[visit_exp i#1288] +[visit_id i#1288] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1295}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#1295}(M_1)] +[visit_exp i#1295] +[visit_id i#1295] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%`_ishape{shape#95, Jnn#28}(`%X%`_shape{lanetype#257, dim#257, i#1300}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1307}(M_2)))] +[visit_exp shape#95] +[visit_id shape#95] +[visit_exp Jnn#28] +[visit_id Jnn#28] +[visit_exp (`%X%`_shape{lanetype#257, dim#257, i#1300}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1307}(M_2)))] +[visit_exp `%X%`_shape{lanetype#257, dim#257, i#1300}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1307}(M_2))] +[visit_exp lanetype#257] +[visit_id lanetype#257] +[visit_exp dim#257] +[visit_id dim#257] +[visit_exp i#1300] +[visit_id i#1300] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1307}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#1307}(M_2)] +[visit_exp i#1307] +[visit_id i#1307] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[check_dims] shape_1 shape_2 +[visit_id shape_1] not free +[visit_id shape_2] not free +[check_dims] Jnn_1 Jnn_2 M_1 M_2 dim#269 dim#281 i#1312 i#1319 i#1324 i#1331 lanetype#269 lanetype#281 +--- 1 --- +[check_dims] Jnn_1 Jnn_2 M_1 M_2 dim#269 dim#281 i#1312 i#1319 i#1324 i#1331 lanetype#269 lanetype#281 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id half] no dims +[visit_id half] +[visit_id sx] no dims +[visit_id sx] +[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))))] +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] +[visit_exp 2] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_id Jnn_1] no dims +[visit_exp `%X%`_shape{lanetype#269, dim#269, i#1312}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1319}(M_1))] +[visit_exp lanetype#269] +[visit_id lanetype#269] +[visit_exp dim#269] +[visit_id dim#269] +[visit_exp i#1312] +[visit_id i#1312] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1319}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#1319}(M_1)] +[visit_exp i#1319] +[visit_id i#1319] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#281, dim#281, i#1324}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1331}(M_2))] +[visit_exp lanetype#281] +[visit_id lanetype#281] +[visit_exp dim#281] +[visit_id dim#281] +[visit_exp i#1324] +[visit_id i#1324] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1331}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#1331}(M_2)] +[visit_exp i#1331] +[visit_id i#1331] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[check_dims] Fnn_2 Jnn_1 M_1 M_2 dim#293 dim#305 i#1336 i#1343 i#1348 i#1355 lanetype#293 lanetype#305 +--- 1 --- +[check_dims] Fnn_2 Jnn_1 M_1 M_2 dim#293 dim#305 half i#1336 i#1343 i#1348 i#1355 lanetype#293 lanetype#305 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id half?] no dims +[visit_id half?] +[visit_id sx] no dims +[visit_id sx] +[visit_exp (((($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32)) /\ (half?{half <- `half?`} = ?())) \/ (($sizenn2((Fnn_2 : Fnn <: numtype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (half?{half <- `half?`} = ?(`LOW`_half))))] +[visit_exp ((($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32)) /\ (half?{half <- `half?`} = ?()))] +[visit_exp (($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32))] +[visit_exp ($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype)))] +[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_id Fnn_2] no dims +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_id Jnn_1] no dims +[visit_exp ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32)] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_id Jnn_1] no dims +[visit_exp 32] +[visit_exp (half?{half <- `half?`} = ?())] +[visit_exp half?{half <- `half?`}] +[scope_enter half] +[visit_exp half] +[visit_id half] not free +[visit_id half] not free +[scope_exit half] +[visit_exp `half?`] +[visit_id half?] not free +[visit_id half?] no dims +[visit_exp ?()] +[visit_exp (($sizenn2((Fnn_2 : Fnn <: numtype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (half?{half <- `half?`} = ?(`LOW`_half)))] +[visit_exp ($sizenn2((Fnn_2 : Fnn <: numtype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))))] +[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_id Fnn_2] no dims +[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] +[visit_exp 2] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_id Jnn_1] no dims +[visit_exp (half?{half <- `half?`} = ?(`LOW`_half))] +[visit_exp half?{half <- `half?`}] +[scope_enter half] +[visit_exp half] +[visit_id half] not free +[visit_id half] not free +[scope_exit half] +[visit_exp `half?`] +[visit_id half?] not free +[visit_id half?] no dims +[visit_exp ?(`LOW`_half)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `%X%`_shape{lanetype#293, dim#293, i#1336}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1343}(M_1))] +[visit_exp lanetype#293] +[visit_id lanetype#293] +[visit_exp dim#293] +[visit_id dim#293] +[visit_exp i#1336] +[visit_id i#1336] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1343}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#1343}(M_1)] +[visit_exp i#1343] +[visit_id i#1343] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#305, dim#305, i#1348}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#1355}(M_2))] +[visit_exp lanetype#305] +[visit_id lanetype#305] +[visit_exp dim#305] +[visit_id dim#305] +[visit_exp i#1348] +[visit_id i#1348] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#1355}(M_2))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `%`_dim{i#1355}(M_2)] +[visit_exp i#1355] +[visit_id i#1355] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#317 dim#329 i#1360 i#1367 i#1372 i#1379 lanetype#317 lanetype#329 +--- 1 --- +[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#317 dim#329 i#1360 i#1367 i#1372 i#1379 lanetype#317 lanetype#329 zero +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +[visit_id zero?] no dims +[visit_id zero?] +[visit_exp (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero))))] +[visit_exp ((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?()))] +[visit_exp (($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32))] +[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] +[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_id Fnn_1] no dims +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)] +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp 32] +[visit_exp (zero?{zero <- `zero?`} = ?())] +[visit_exp zero?{zero <- `zero?`}] +[scope_enter zero] +[visit_exp zero] +[visit_id zero] not free +[visit_id zero] not free +[scope_exit zero] +[visit_exp `zero?`] +[visit_id zero?] not free +[visit_id zero?] no dims +[visit_exp ?()] +[visit_exp (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero)))] +[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype))))] +[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_id Fnn_1] no dims +[visit_exp (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))] +[visit_exp 2] +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp (zero?{zero <- `zero?`} = ?(`ZERO`_zero))] +[visit_exp zero?{zero <- `zero?`}] +[scope_enter zero] +[visit_exp zero] +[visit_id zero] not free +[visit_id zero] not free +[scope_exit zero] +[visit_exp `zero?`] +[visit_id zero?] not free +[visit_id zero?] no dims +[visit_exp ?(`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +--- 1 --- +[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#317 dim#329 i#1360 i#1367 i#1372 i#1379 lanetype#317 lanetype#329 zero +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +[visit_id zero?] no dims +[visit_id zero?] +[visit_exp (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero))))] +[visit_exp ((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?()))] +[visit_exp (($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32))] +[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] +[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_id Fnn_1] no dims +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)] +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp 32] +[visit_exp (zero?{zero <- `zero?`} = ?())] +[visit_exp zero?{zero <- `zero?`}] +[scope_enter zero] +[visit_exp zero] +[visit_id zero] not free +[visit_id zero] not free +[scope_exit zero] +[visit_exp `zero?`] +[visit_id zero?] not free +[visit_id zero?] no dims +[visit_exp ?()] +[visit_exp (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero)))] +[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype))))] +[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_id Fnn_1] no dims +[visit_exp (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))] +[visit_exp 2] +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_id Jnn_2] no dims +[visit_exp (zero?{zero <- `zero?`} = ?(`ZERO`_zero))] +[visit_exp zero?{zero <- `zero?`}] +[scope_enter zero] +[visit_exp zero] +[visit_id zero] not free +[visit_id zero] not free +[scope_exit zero] +[visit_exp `zero?`] +[visit_id zero?] not free +[visit_id zero?] no dims +[visit_exp ?(`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +[visit_exp `%X%`_shape{lanetype#317, dim#317, i#1360}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#1367}(M_1))] +[visit_exp lanetype#317] +[visit_id lanetype#317] +[visit_exp dim#317] +[visit_id dim#317] +[visit_exp i#1360] +[visit_id i#1360] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#1367}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#1367}(M_1)] +[visit_exp i#1367] +[visit_id i#1367] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#329, dim#329, i#1372}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1379}(M_2))] +[visit_exp lanetype#329] +[visit_id lanetype#329] +[visit_exp dim#329] +[visit_id dim#329] +[visit_exp i#1372] +[visit_id i#1372] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1379}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#1379}(M_2)] +[visit_exp i#1379] +[visit_id i#1379] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#341 dim#353 i#1384 i#1391 i#1396 i#1403 lanetype#341 lanetype#353 +--- 1 --- +[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#341 dim#353 i#1384 i#1391 i#1396 i#1403 lanetype#341 lanetype#353 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id zero] no dims +[visit_id zero] +[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $sizenn2((Fnn_2 : Fnn <: numtype))))] +[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_id Fnn_1] no dims +[visit_exp (2 * $sizenn2((Fnn_2 : Fnn <: numtype)))] +[visit_exp 2] +[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_id Fnn_2] no dims +--- 1 --- +[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#341 dim#353 i#1384 i#1391 i#1396 i#1403 lanetype#341 lanetype#353 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp ((2 * $sizenn1((Fnn_1 : Fnn <: numtype))) = $sizenn2((Fnn_2 : Fnn <: numtype)))] +[visit_exp (2 * $sizenn1((Fnn_1 : Fnn <: numtype)))] +[visit_exp 2] +[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_id Fnn_1] no dims +[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_id Fnn_2] no dims +[visit_exp `%X%`_shape{lanetype#341, dim#341, i#1384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#1391}(M_1))] +[visit_exp lanetype#341] +[visit_id lanetype#341] +[visit_exp dim#341] +[visit_id dim#341] +[visit_exp i#1384] +[visit_id i#1384] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#1391}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#1391}(M_1)] +[visit_exp i#1391] +[visit_id i#1391] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#353, dim#353, i#1396}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#1403}(M_2))] +[visit_exp lanetype#353] +[visit_id lanetype#353] +[visit_exp dim#353] +[visit_id dim#353] +[visit_exp i#1396] +[visit_id i#1396] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#1403}(M_2))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `%`_dim{i#1403}(M_2)] +[visit_exp i#1403] +[visit_id i#1403] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id u32] no dims +[visit_id u32] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id u64] no dims +[visit_id u64] +[check_dims] +[check_dims] numtype +[visit_id numtype] not free +[check_dims] Inn +--- 1 --- +[check_dims] Inn i#1405 sz +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sz] +[visit_id sx] no dims +[visit_id sx] +[visit_exp (sz!`%`_sz{i#1405}.0 < $sizenn((Inn : Inn <: numtype)))] +[visit_exp sz!`%`_sz{i#1405}.0] +[visit_exp sz!`%`_sz{i#1405}] +[visit_exp sz] +[visit_id sz] not free +[visit_exp i#1405] +[visit_id i#1405] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_id Inn] no dims +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[check_dims] numtype +[visit_id numtype] not free +[check_dims] Inn +--- 1 --- +[check_dims] Inn i#1407 sz +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sz] +[visit_exp (sz!`%`_sz{i#1407}.0 < $sizenn((Inn : Inn <: numtype)))] +[visit_exp sz!`%`_sz{i#1407}.0] +[visit_exp sz!`%`_sz{i#1407}] +[visit_exp sz] +[visit_id sz] not free +[visit_exp i#1407] +[visit_id i#1407] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_id Inn] no dims +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[check_dims] vectype +--- 1 --- +[check_dims] M i#1409 sz vectype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sz] +[visit_id M] +[visit_id sx] no dims +[visit_id sx] +[visit_exp (((sz!`%`_sz{i#1409}.0 * M) : nat <:> rat) = (($vsize(vectype) : nat <:> rat) / (2 : nat <:> rat)))] +[visit_exp ((sz!`%`_sz{i#1409}.0 * M) : nat <:> rat)] +[visit_exp (sz!`%`_sz{i#1409}.0 * M)] +[visit_exp sz!`%`_sz{i#1409}.0] +[visit_exp sz!`%`_sz{i#1409}] +[visit_exp sz] +[visit_id sz] not free +[visit_exp i#1409] +[visit_id i#1409] +[visit_exp M] +[visit_id M] not free +[visit_exp (($vsize(vectype) : nat <:> rat) / (2 : nat <:> rat))] +[visit_exp ($vsize(vectype) : nat <:> rat)] +[visit_exp $vsize(vectype)] +[visit_exp vectype] +[visit_id vectype] not free +[visit_id vectype] no dims +[visit_exp (2 : nat <:> rat)] +[visit_exp 2] +--- 1 --- +[check_dims] vectype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sz] no dims +[visit_id sz] +--- 1 --- +[check_dims] i#1411 sz vectype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sz] +[visit_exp (sz!`%`_sz{i#1411}.0 >= 32)] +[visit_exp sz!`%`_sz{i#1411}.0] +[visit_exp sz!`%`_sz{i#1411}] +[visit_exp sz] +[visit_id sz] not free +[visit_exp i#1411] +[visit_id i#1411] +[visit_exp 32] +[visit_exp vectype] +[visit_id vectype] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id valtype?] no dims +[visit_id valtype?] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id valtype*?] no dims +[visit_id valtype*?] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id blocktype] no dims +[visit_id blocktype] +[visit_id instr*] no dims +[visit_id instr*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id blocktype] no dims +[visit_id blocktype] +[visit_id instr*] no dims +[visit_id instr*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id blocktype] no dims +[visit_id blocktype] +[visit_id instr*] no dims +[visit_id instr*] +[visit_id instr*] not free +[visit_id instr*] no dims +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id labelidx] no dims +[visit_id labelidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id labelidx] no dims +[visit_id labelidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id labelidx*] no dims +[visit_id labelidx*] +[visit_id labelidx] no dims +[visit_id labelidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id labelidx] no dims +[visit_id labelidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id labelidx] no dims +[visit_id labelidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id labelidx] no dims +[visit_id labelidx] +[visit_id reftype] no dims +[visit_id reftype] +[visit_id reftype] not free +[visit_id reftype] no dims +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id labelidx] no dims +[visit_id labelidx] +[visit_id reftype] no dims +[visit_id reftype] +[visit_id reftype] not free +[visit_id reftype] no dims +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id funcidx] no dims +[visit_id funcidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeuse] no dims +[visit_id typeuse] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableidx] no dims +[visit_id tableidx] +[visit_id typeuse] no dims +[visit_id typeuse] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id funcidx] no dims +[visit_id funcidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeuse] no dims +[visit_id typeuse] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableidx] no dims +[visit_id tableidx] +[visit_id typeuse] no dims +[visit_id typeuse] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tagidx] no dims +[visit_id tagidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id blocktype] no dims +[visit_id blocktype] +[visit_id _] not free +[visit_id _] no dims +[visit_id instr*] no dims +[visit_id instr*] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tagidx] no dims +[visit_id tagidx] +[visit_id labelidx] no dims +[visit_id labelidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tagidx] no dims +[visit_id tagidx] +[visit_id labelidx] no dims +[visit_id labelidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id labelidx] no dims +[visit_id labelidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id labelidx] no dims +[visit_id labelidx] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id localidx] no dims +[visit_id localidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id localidx] no dims +[visit_id localidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id localidx] no dims +[visit_id localidx] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id globalidx] no dims +[visit_id globalidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id globalidx] no dims +[visit_id globalidx] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableidx] no dims +[visit_id tableidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableidx] no dims +[visit_id tableidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableidx] no dims +[visit_id tableidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableidx] no dims +[visit_id tableidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableidx] no dims +[visit_id tableidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableidx] no dims +[visit_id tableidx] +[visit_id tableidx] not free +[visit_id tableidx] no dims +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableidx] no dims +[visit_id tableidx] +[visit_id elemidx] no dims +[visit_id elemidx] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id elemidx] no dims +[visit_id elemidx] +[check_dims] +--- 1 --- +[check_dims] numtype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id numtype] +[visit_id _] not free +[visit_id _] no dims +[visit_exp numtype] +[visit_id numtype] not free +[visit_id memidx] no dims +[visit_id memidx] +[visit_id memarg] no dims +[visit_id memarg] +--- 1 --- +[check_dims] numtype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id numtype] +[visit_id _] not free +[visit_id _] no dims +[visit_exp numtype] +[visit_id numtype] not free +[visit_id memidx] no dims +[visit_id memidx] +[visit_id memarg] no dims +[visit_id memarg] +--- 1 --- +[check_dims] vectype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id vectype] +[visit_id _] not free +[visit_id _] no dims +[visit_exp vectype] +[visit_id vectype] not free +[visit_id memidx] no dims +[visit_id memidx] +[visit_id memarg] no dims +[visit_id memarg] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id vectype] no dims +[visit_id vectype] +[visit_id sz] no dims +[visit_id sz] +[visit_id memidx] no dims +[visit_id memidx] +[visit_id memarg] no dims +[visit_id memarg] +[visit_id laneidx] no dims +[visit_id laneidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id vectype] no dims +[visit_id vectype] +[visit_id memidx] no dims +[visit_id memidx] +[visit_id memarg] no dims +[visit_id memarg] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id vectype] no dims +[visit_id vectype] +[visit_id sz] no dims +[visit_id sz] +[visit_id memidx] no dims +[visit_id memidx] +[visit_id memarg] no dims +[visit_id memarg] +[visit_id laneidx] no dims +[visit_id laneidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memidx] no dims +[visit_id memidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memidx] no dims +[visit_id memidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memidx] no dims +[visit_id memidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memidx] no dims +[visit_id memidx] +[visit_id memidx] not free +[visit_id memidx] no dims +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memidx] no dims +[visit_id memidx] +[visit_id dataidx] no dims +[visit_id dataidx] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id dataidx] no dims +[visit_id dataidx] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id heaptype] no dims +[visit_id heaptype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id reftype] no dims +[visit_id reftype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id reftype] no dims +[visit_id reftype] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id funcidx] no dims +[visit_id funcidx] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx] no dims +[visit_id sx] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx?] no dims +[visit_id sx?] +[visit_id typeidx] no dims +[visit_id typeidx] +[visit_id u32] no dims +[visit_id u32] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +[visit_id u32] no dims +[visit_id u32] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +[visit_id u32] no dims +[visit_id u32] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +[visit_id dataidx] no dims +[visit_id dataidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +[visit_id elemidx] no dims +[visit_id elemidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id sx?] no dims +[visit_id sx?] +[visit_id typeidx] no dims +[visit_id typeidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +[visit_id typeidx] not free +[visit_id typeidx] no dims +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +[visit_id dataidx] no dims +[visit_id dataidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +[visit_id elemidx] no dims +[visit_id elemidx] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] numtype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id numtype] +[visit_id _] not free +[visit_id _] no dims +[visit_exp numtype] +[visit_id numtype] not free +--- 1 --- +[check_dims] numtype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id numtype] +[visit_id _] not free +[visit_id _] no dims +[visit_exp numtype] +[visit_id numtype] not free +--- 1 --- +[check_dims] numtype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id numtype] +[visit_id _] not free +[visit_id _] no dims +[visit_exp numtype] +[visit_id numtype] not free +--- 1 --- +[check_dims] numtype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id numtype] +[visit_id _] not free +[visit_id _] no dims +[visit_exp numtype] +[visit_id numtype] not free +--- 1 --- +[check_dims] numtype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id numtype] +[visit_id _] not free +[visit_id _] no dims +[visit_exp numtype] +[visit_id numtype] not free +--- 1 --- +[check_dims] numtype_1 numtype_2 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id numtype_1] +[visit_id numtype_2] +[visit_id _] not free +[visit_id _] no dims +[visit_exp numtype_2] +[visit_id numtype_2] not free +[visit_exp numtype_1] +[visit_id numtype_1] not free +[check_dims] +--- 1 --- +[check_dims] vectype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id vectype] +[visit_id _] not free +[visit_id _] no dims +[visit_exp vectype] +[visit_id vectype] not free +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id vectype] no dims +[visit_id vectype] +[visit_id vvunop] no dims +[visit_id vvunop] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id vectype] no dims +[visit_id vectype] +[visit_id vvbinop] no dims +[visit_id vvbinop] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id vectype] no dims +[visit_id vectype] +[visit_id vvternop] no dims +[visit_id vvternop] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id vectype] no dims +[visit_id vectype] +[visit_id vvtestop] no dims +[visit_id vvtestop] +--- 1 --- +[check_dims] shape +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id shape] +[visit_id _] not free +[visit_id _] no dims +[visit_exp shape] +[visit_id shape] not free +--- 1 --- +[check_dims] shape +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id shape] +[visit_id _] not free +[visit_id _] no dims +[visit_exp shape] +[visit_id shape] not free +--- 1 --- +[check_dims] shape +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id shape] +[visit_id _] not free +[visit_id _] no dims +[visit_exp shape] +[visit_id shape] not free +--- 1 --- +[check_dims] shape +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id shape] +[visit_id _] not free +[visit_id _] no dims +[visit_exp shape] +[visit_id shape] not free +--- 1 --- +[check_dims] shape +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id shape] +[visit_id _] not free +[visit_id _] no dims +[visit_exp shape] +[visit_id shape] not free +--- 1 --- +[check_dims] ishape +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id ishape] +[visit_id _] not free +[visit_id _] no dims +[visit_exp ishape] +[visit_id ishape] not free +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id ishape] no dims +[visit_id ishape] +--- 1 --- +[check_dims] bshape +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id bshape] +[visit_id _] not free +[visit_id _] no dims +[visit_exp bshape] +[visit_id bshape] not free +--- 1 --- +[check_dims] bshape i#1432 laneidx shape#109 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id bshape] +[visit_id laneidx*] no dims +[visit_id laneidx*] +[visit_exp (`%`_dim{i#1432}(|laneidx*{laneidx <- `laneidx*`}|) = $dim(bshape!`%`_bshape{shape#109}.0))] +[visit_exp `%`_dim{i#1432}(|laneidx*{laneidx <- `laneidx*`}|)] +[visit_exp i#1432] +[visit_id i#1432] +[visit_exp (|laneidx*{laneidx <- `laneidx*`}|)] +[visit_exp |laneidx*{laneidx <- `laneidx*`}|] +[visit_exp laneidx*{laneidx <- `laneidx*`}] +[scope_enter laneidx] +[visit_exp laneidx] +[visit_id laneidx] not free +[visit_id laneidx] not free +[scope_exit laneidx] +[visit_exp `laneidx*`] +[visit_id laneidx*] not free +[visit_id laneidx*] no dims +[visit_exp $dim(bshape!`%`_bshape{shape#109}.0)] +[visit_exp bshape!`%`_bshape{shape#109}.0] +[visit_exp bshape!`%`_bshape{shape#109}] +[visit_exp bshape] +[visit_id bshape] not free +[visit_exp shape#109] +[visit_id shape#109] +--- 1 --- +[check_dims] ishape_1 ishape_2 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id ishape_1] +[visit_id ishape_2] +[visit_id _] not free +[visit_id _] no dims +[visit_exp ishape_2] +[visit_id ishape_2] not free +[visit_exp ishape_1] +[visit_id ishape_1] not free +--- 1 --- +[check_dims] ishape_1 ishape_2 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id ishape_1] +[visit_id ishape_2] +[visit_id _] not free +[visit_id _] no dims +[visit_exp ishape_2] +[visit_id ishape_2] not free +[visit_exp ishape_1] +[visit_id ishape_1] not free +--- 1 --- +[check_dims] ishape_1 ishape_2 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id ishape_1] +[visit_id ishape_2] +[visit_id _] not free +[visit_id _] no dims +[visit_exp ishape_2] +[visit_id ishape_2] not free +[visit_exp ishape_1] +[visit_id ishape_1] not free +--- 1 --- +[check_dims] Jnn#43 Jnn#44 Jnn#45 ishape_1 ishape_2 shape#147 shape#149 shape#151 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id ishape_1] +[visit_id ishape_2] +[visit_id sx] no dims +[visit_id sx] +[visit_exp (($lsize($lanetype(ishape_2!`%`_ishape{shape#149, Jnn#44}.0)) = (2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#147, Jnn#43}.0)))) /\ ((2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#151, Jnn#45}.0))) <= 32))] +[visit_exp ($lsize($lanetype(ishape_2!`%`_ishape{shape#149, Jnn#44}.0)) = (2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#147, Jnn#43}.0))))] +[visit_exp $lsize($lanetype(ishape_2!`%`_ishape{shape#149, Jnn#44}.0))] +[visit_exp $lanetype(ishape_2!`%`_ishape{shape#149, Jnn#44}.0)] +[visit_exp ishape_2!`%`_ishape{shape#149, Jnn#44}.0] +[visit_exp ishape_2!`%`_ishape{shape#149, Jnn#44}] +[visit_exp ishape_2] +[visit_id ishape_2] not free +[visit_exp shape#149] +[visit_id shape#149] +[visit_exp Jnn#44] +[visit_id Jnn#44] +[visit_exp (2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#147, Jnn#43}.0)))] +[visit_exp 2] +[visit_exp $lsize($lanetype(ishape_1!`%`_ishape{shape#147, Jnn#43}.0))] +[visit_exp $lanetype(ishape_1!`%`_ishape{shape#147, Jnn#43}.0)] +[visit_exp ishape_1!`%`_ishape{shape#147, Jnn#43}.0] +[visit_exp ishape_1!`%`_ishape{shape#147, Jnn#43}] +[visit_exp ishape_1] +[visit_id ishape_1] not free +[visit_exp shape#147] +[visit_id shape#147] +[visit_exp Jnn#43] +[visit_id Jnn#43] +[visit_exp ((2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#151, Jnn#45}.0))) <= 32)] +[visit_exp (2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#151, Jnn#45}.0)))] +[visit_exp 2] +[visit_exp $lsize($lanetype(ishape_1!`%`_ishape{shape#151, Jnn#45}.0))] +[visit_exp $lanetype(ishape_1!`%`_ishape{shape#151, Jnn#45}.0)] +[visit_exp ishape_1!`%`_ishape{shape#151, Jnn#45}.0] +[visit_exp ishape_1!`%`_ishape{shape#151, Jnn#45}] +[visit_exp ishape_1] +[visit_id ishape_1] not free +[visit_exp shape#151] +[visit_id shape#151] +[visit_exp Jnn#45] +[visit_id Jnn#45] +[visit_exp 32] +--- 1 --- +[check_dims] shape_1 shape_2 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id shape_1] +[visit_id shape_2] +[visit_id _] not free +[visit_id _] no dims +[visit_exp shape_2] +[visit_id shape_2] not free +[visit_exp shape_1] +[visit_id shape_1] not free +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id shape] no dims +[visit_id shape] +--- 1 --- +[check_dims] shape sx +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id shape] +[visit_id sx?] no dims +[visit_id sx?] +[visit_id laneidx] no dims +[visit_id laneidx] +[visit_exp ((sx?{sx <- `sx?`} = ?()) <=> ($lanetype(shape) <- [`I32`_lanetype `I64`_lanetype `F32`_lanetype `F64`_lanetype]))] +[visit_exp (sx?{sx <- `sx?`} = ?())] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] not free +[visit_id sx?] no dims +[visit_exp ?()] +[visit_exp ($lanetype(shape) <- [`I32`_lanetype `I64`_lanetype `F32`_lanetype `F64`_lanetype])] +[visit_exp $lanetype(shape)] +[visit_exp shape] +[visit_id shape] not free +[visit_exp [`I32`_lanetype `I64`_lanetype `F32`_lanetype `F64`_lanetype]] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `F64`_lanetype] +[visit_exp ()] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id shape] no dims +[visit_id shape] +[visit_id laneidx] no dims +[visit_id laneidx] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +DecD memarg0 : memarg +[check_dims] i#1467 i#1487 u32#1 u64#37 +[visit_exp {`ALIGN`{u32#1} `%`_u32{i#1467}(0), `OFFSET`{u64#37} `%`_u64{i#1487}(0)}] +[visit_exp u32#1] +[visit_id u32#1] +[visit_exp `%`_u32{i#1467}(0)] +[visit_exp i#1467] +[visit_id i#1467] +[visit_exp (0)] +[visit_exp 0] +[visit_exp u64#37] +[visit_id u64#37] +[visit_exp `%`_u64{i#1487}(0)] +[visit_exp i#1487] +[visit_id i#1487] +[visit_exp (0)] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $memarg0{u32#1 : u32, i#1467 : nat, u64#37 : u64, i#1487 : nat} = {`ALIGN`{u32#1} `%`_u32{i#1467}(0), `OFFSET`{u64#37} `%`_u64{i#1487}(0)} +[check_dims] consttype lit_ +DecD const(consttype : consttype, lit_ : lit_((consttype : consttype <: storagetype))) : instr +[visit_id consttype] not free +[visit_id lit_] not free +[visit_exp (consttype : consttype <: storagetype)] +[visit_exp consttype] +[visit_id consttype] not free +[check_dims] c numtype numtype#1 +[visit_exp (numtype : numtype <: consttype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp c] +[visit_id c] +[visit_exp `CONST`_instr{numtype#1}(numtype, c)] +[visit_exp numtype#1] +[visit_id numtype#1] +[visit_exp (numtype, c)] +[visit_exp numtype] +[visit_id numtype] not free +[visit_exp c] +[visit_id c] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $const{numtype : numtype, c : lit_(((numtype : numtype <: consttype) : consttype <: storagetype)), numtype#1 : numtype}((numtype : numtype <: consttype), c) = `CONST`_instr{numtype#1}(numtype, c) +[check_dims] c vectype vectype#1 +[visit_exp (vectype : vectype <: consttype)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp c] +[visit_id c] +[visit_exp `VCONST`_instr{vectype#1}(vectype, c)] +[visit_exp vectype#1] +[visit_id vectype#1] +[visit_exp (vectype, c)] +[visit_exp vectype] +[visit_id vectype] not free +[visit_exp c] +[visit_id c] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $const{vectype : vectype, c : lit_(((vectype : vectype <: consttype) : consttype <: storagetype)), vectype#1 : vectype}((vectype : vectype <: consttype), c) = `VCONST`_instr{vectype#1}(vectype, c) +[check_dims] shape +DecD free_shape(shape : shape) : free +[visit_id shape] not free +[check_dims] blocktype +DecD free_blocktype(blocktype : blocktype) : free +[visit_id blocktype] not free +[check_dims] instr +DecD free_instr(instr : instr) : free +[visit_id instr] not free +[check_dims] _ +DecD free_block(instr*) : free +[visit_id _] not free +[check_dims] expr +DecD free_expr(expr : expr) : free +[visit_id expr] not free +[check_dims] dim dim#445 i#1518 lanetype lanetype#445 +[visit_exp `%X%`_shape{lanetype#445, dim#445, i#1518}(lanetype, dim)] +[visit_exp lanetype#445] +[visit_id lanetype#445] +[visit_exp dim#445] +[visit_id dim#445] +[visit_exp i#1518] +[visit_id i#1518] +[visit_exp (lanetype, dim)] +[visit_exp lanetype] +[visit_id lanetype] +[visit_exp dim] +[visit_id dim] +[visit_exp $free_lanetype(lanetype)] +[visit_exp lanetype] +[visit_id lanetype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_shape{lanetype#445 : lanetype, dim#445 : dim, i#1518 : nat, lanetype : lanetype, dim : dim}(`%X%`_shape{lanetype#445, dim#445, i#1518}(lanetype, dim)) = $free_lanetype(lanetype) +[check_dims] valtype valtype?#1 +[visit_exp `_RESULT`_blocktype{`valtype?#1`}(valtype?{valtype <- `valtype?`})] +[visit_exp `valtype?#1`] +[visit_id valtype?#1] +[visit_exp (valtype?{valtype <- `valtype?`})] +[visit_exp valtype?{valtype <- `valtype?`}] +[scope_enter valtype] +[visit_exp valtype] +[visit_id valtype] not free +[visit_id valtype] not free +[scope_exit valtype] +[visit_exp `valtype?`] +[visit_id valtype?] no dims +[visit_id valtype?] +[visit_exp $free_opt($free_valtype(valtype)?{valtype <- `valtype?`})] +[visit_exp $free_valtype(valtype)?{valtype <- `valtype?`}] +[scope_enter valtype] +[visit_exp $free_valtype(valtype)] +[visit_exp valtype] +[visit_id valtype] not free +[visit_id valtype] not free +[scope_exit valtype] +[visit_exp `valtype?`] +[visit_id valtype?] not free +[visit_id valtype?] no dims +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_blocktype{`valtype?#1` : valtype?, `valtype?` : valtype?}(`_RESULT`_blocktype{`valtype?#1`}(valtype?{valtype <- `valtype?`})) = $free_opt($free_valtype(valtype)?{valtype <- `valtype?`}) +[check_dims] typeidx typeidx#27 +[visit_exp `_IDX`_blocktype{typeidx#27}(typeidx)] +[visit_exp typeidx#27] +[visit_id typeidx#27] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_blocktype{typeidx#27 : typeidx, typeidx : typeidx}(`_IDX`_blocktype{typeidx#27}(typeidx)) = $free_typeidx(typeidx) +[check_dims] dataidx*#20 elemidx*#20 funcidx*#20 globalidx*#20 labelidx*#20 localidx*#20 memidx*#20 tableidx*#20 typeidx*#20 +[visit_exp `NOP`_instr] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#20`} [], `FUNCS`{`funcidx*#20`} [], `GLOBALS`{`globalidx*#20`} [], `TABLES`{`tableidx*#20`} [], `MEMS`{`memidx*#20`} [], `ELEMS`{`elemidx*#20`} [], `DATAS`{`dataidx*#20`} [], `LOCALS`{`localidx*#20`} [], `LABELS`{`labelidx*#20`} []}] +[visit_exp `typeidx*#20`] +[visit_id typeidx*#20] +[visit_exp []] +[visit_exp `funcidx*#20`] +[visit_id funcidx*#20] +[visit_exp []] +[visit_exp `globalidx*#20`] +[visit_id globalidx*#20] +[visit_exp []] +[visit_exp `tableidx*#20`] +[visit_id tableidx*#20] +[visit_exp []] +[visit_exp `memidx*#20`] +[visit_id memidx*#20] +[visit_exp []] +[visit_exp `elemidx*#20`] +[visit_id elemidx*#20] +[visit_exp []] +[visit_exp `dataidx*#20`] +[visit_id dataidx*#20] +[visit_exp []] +[visit_exp `localidx*#20`] +[visit_id localidx*#20] +[visit_exp []] +[visit_exp `labelidx*#20`] +[visit_id labelidx*#20] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`typeidx*#20` : typeidx*, `funcidx*#20` : funcidx*, `globalidx*#20` : globalidx*, `tableidx*#20` : tableidx*, `memidx*#20` : memidx*, `elemidx*#20` : elemidx*, `dataidx*#20` : dataidx*, `localidx*#20` : localidx*, `labelidx*#20` : labelidx*}(`NOP`_instr) = {`TYPES`{`typeidx*#20`} [], `FUNCS`{`funcidx*#20`} [], `GLOBALS`{`globalidx*#20`} [], `TABLES`{`tableidx*#20`} [], `MEMS`{`memidx*#20`} [], `ELEMS`{`elemidx*#20`} [], `DATAS`{`dataidx*#20`} [], `LOCALS`{`localidx*#20`} [], `LABELS`{`labelidx*#20`} []} +[check_dims] dataidx*#21 elemidx*#21 funcidx*#21 globalidx*#21 labelidx*#21 localidx*#21 memidx*#21 tableidx*#21 typeidx*#21 +[visit_exp `UNREACHABLE`_instr] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#21`} [], `FUNCS`{`funcidx*#21`} [], `GLOBALS`{`globalidx*#21`} [], `TABLES`{`tableidx*#21`} [], `MEMS`{`memidx*#21`} [], `ELEMS`{`elemidx*#21`} [], `DATAS`{`dataidx*#21`} [], `LOCALS`{`localidx*#21`} [], `LABELS`{`labelidx*#21`} []}] +[visit_exp `typeidx*#21`] +[visit_id typeidx*#21] +[visit_exp []] +[visit_exp `funcidx*#21`] +[visit_id funcidx*#21] +[visit_exp []] +[visit_exp `globalidx*#21`] +[visit_id globalidx*#21] +[visit_exp []] +[visit_exp `tableidx*#21`] +[visit_id tableidx*#21] +[visit_exp []] +[visit_exp `memidx*#21`] +[visit_id memidx*#21] +[visit_exp []] +[visit_exp `elemidx*#21`] +[visit_id elemidx*#21] +[visit_exp []] +[visit_exp `dataidx*#21`] +[visit_id dataidx*#21] +[visit_exp []] +[visit_exp `localidx*#21`] +[visit_id localidx*#21] +[visit_exp []] +[visit_exp `labelidx*#21`] +[visit_id labelidx*#21] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`typeidx*#21` : typeidx*, `funcidx*#21` : funcidx*, `globalidx*#21` : globalidx*, `tableidx*#21` : tableidx*, `memidx*#21` : memidx*, `elemidx*#21` : elemidx*, `dataidx*#21` : dataidx*, `localidx*#21` : localidx*, `labelidx*#21` : labelidx*}(`UNREACHABLE`_instr) = {`TYPES`{`typeidx*#21`} [], `FUNCS`{`funcidx*#21`} [], `GLOBALS`{`globalidx*#21`} [], `TABLES`{`tableidx*#21`} [], `MEMS`{`memidx*#21`} [], `ELEMS`{`elemidx*#21`} [], `DATAS`{`dataidx*#21`} [], `LOCALS`{`localidx*#21`} [], `LABELS`{`labelidx*#21`} []} +[check_dims] dataidx*#22 elemidx*#22 funcidx*#22 globalidx*#22 labelidx*#22 localidx*#22 memidx*#22 tableidx*#22 typeidx*#22 +[visit_exp `DROP`_instr] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#22`} [], `FUNCS`{`funcidx*#22`} [], `GLOBALS`{`globalidx*#22`} [], `TABLES`{`tableidx*#22`} [], `MEMS`{`memidx*#22`} [], `ELEMS`{`elemidx*#22`} [], `DATAS`{`dataidx*#22`} [], `LOCALS`{`localidx*#22`} [], `LABELS`{`labelidx*#22`} []}] +[visit_exp `typeidx*#22`] +[visit_id typeidx*#22] +[visit_exp []] +[visit_exp `funcidx*#22`] +[visit_id funcidx*#22] +[visit_exp []] +[visit_exp `globalidx*#22`] +[visit_id globalidx*#22] +[visit_exp []] +[visit_exp `tableidx*#22`] +[visit_id tableidx*#22] +[visit_exp []] +[visit_exp `memidx*#22`] +[visit_id memidx*#22] +[visit_exp []] +[visit_exp `elemidx*#22`] +[visit_id elemidx*#22] +[visit_exp []] +[visit_exp `dataidx*#22`] +[visit_id dataidx*#22] +[visit_exp []] +[visit_exp `localidx*#22`] +[visit_id localidx*#22] +[visit_exp []] +[visit_exp `labelidx*#22`] +[visit_id labelidx*#22] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`typeidx*#22` : typeidx*, `funcidx*#22` : funcidx*, `globalidx*#22` : globalidx*, `tableidx*#22` : tableidx*, `memidx*#22` : memidx*, `elemidx*#22` : elemidx*, `dataidx*#22` : dataidx*, `localidx*#22` : localidx*, `labelidx*#22` : labelidx*}(`DROP`_instr) = {`TYPES`{`typeidx*#22`} [], `FUNCS`{`funcidx*#22`} [], `GLOBALS`{`globalidx*#22`} [], `TABLES`{`tableidx*#22`} [], `MEMS`{`memidx*#22`} [], `ELEMS`{`elemidx*#22`} [], `DATAS`{`dataidx*#22`} [], `LOCALS`{`localidx*#22`} [], `LABELS`{`labelidx*#22`} []} +[check_dims] valtype valtype*?#1 +[visit_exp `SELECT`_instr{`valtype*?#1`}(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})] +[visit_exp `valtype*?#1`] +[visit_id valtype*?#1] +[visit_exp (valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})] +[visit_exp valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`}] +[scope_enter valtype*] +[visit_exp valtype*{valtype <- `valtype*`}] +[scope_enter valtype] +[visit_exp valtype] +[visit_id valtype] not free +[visit_id valtype] not free +[scope_exit valtype] +[visit_exp `valtype*`] +[visit_id valtype*] not free +[visit_id valtype*] no dims +[visit_id valtype*] not free +[visit_id valtype*] no dims +[scope_exit valtype*] +[visit_exp `valtype*?`] +[visit_id valtype*?] no dims +[visit_id valtype*?] +[visit_exp $free_opt($free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`})] +[visit_exp $free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`}] +[scope_enter valtype*] +[visit_exp $free_list($free_valtype(valtype)*{valtype <- `valtype*`})] +[visit_exp $free_valtype(valtype)*{valtype <- `valtype*`}] +[scope_enter valtype] +[visit_exp $free_valtype(valtype)] +[visit_exp valtype] +[visit_id valtype] not free +[visit_id valtype] not free +[scope_exit valtype] +[visit_exp `valtype*`] +[visit_id valtype*] not free +[visit_id valtype*] no dims +[visit_id valtype*] not free +[visit_id valtype*] no dims +[scope_exit valtype*] +[visit_exp `valtype*?`] +[visit_id valtype*?] not free +[visit_id valtype*?] no dims +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`valtype*?#1` : valtype*?, `valtype*?` : valtype*?}(`SELECT`_instr{`valtype*?#1`}(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})) = $free_opt($free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`}) +[check_dims] blocktype blocktype#1 instr instr*#1 +[visit_exp `BLOCK`_instr{blocktype#1, `instr*#1`}(blocktype, instr*{instr <- `instr*`})] +[visit_exp blocktype#1] +[visit_id blocktype#1] +[visit_exp `instr*#1`] +[visit_id instr*#1] +[visit_exp (blocktype, instr*{instr <- `instr*`})] +[visit_exp blocktype] +[visit_id blocktype] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`})] +[visit_exp $free_blocktype(blocktype)] +[visit_exp blocktype] +[visit_id blocktype] not free +[visit_exp $free_block(instr*{instr <- `instr*`})] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{blocktype#1 : blocktype, `instr*#1` : instr*, blocktype : blocktype, `instr*` : instr*}(`BLOCK`_instr{blocktype#1, `instr*#1`}(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) +[check_dims] blocktype blocktype#3 instr instr*#3 +[visit_exp `LOOP`_instr{blocktype#3, `instr*#3`}(blocktype, instr*{instr <- `instr*`})] +[visit_exp blocktype#3] +[visit_id blocktype#3] +[visit_exp `instr*#3`] +[visit_id instr*#3] +[visit_exp (blocktype, instr*{instr <- `instr*`})] +[visit_exp blocktype] +[visit_id blocktype] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`})] +[visit_exp $free_blocktype(blocktype)] +[visit_exp blocktype] +[visit_id blocktype] not free +[visit_exp $free_block(instr*{instr <- `instr*`})] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{blocktype#3 : blocktype, `instr*#3` : instr*, blocktype : blocktype, `instr*` : instr*}(`LOOP`_instr{blocktype#3, `instr*#3`}(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) +[check_dims] blocktype blocktype#5 instr*#5 instr_1 instr_2 +[visit_exp `IF%%ELSE%`_instr{blocktype#5, `instr*#5`}(blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] +[visit_exp blocktype#5] +[visit_id blocktype#5] +[visit_exp `instr*#5`] +[visit_id instr*#5] +[visit_exp (blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] +[visit_exp blocktype] +[visit_id blocktype] +[visit_exp instr_1*{instr_1 <- `instr_1*`}] +[scope_enter instr_1] +[visit_exp instr_1] +[visit_id instr_1] not free +[visit_id instr_1] not free +[scope_exit instr_1] +[visit_exp `instr_1*`] +[visit_id instr_1*] no dims +[visit_id instr_1*] +[visit_exp instr_2*{instr_2 <- `instr_2*`}] +[scope_enter instr_2] +[visit_exp instr_2] +[visit_id instr_2] not free +[visit_id instr_2] not free +[scope_exit instr_2] +[visit_exp `instr_2*`] +[visit_id instr_2*] no dims +[visit_id instr_2*] +[visit_exp $free_blocktype(blocktype) +++ $free_block(instr_1*{instr_1 <- `instr_1*`}) +++ $free_block(instr_2*{instr_2 <- `instr_2*`})] +[visit_exp $free_blocktype(blocktype) +++ $free_block(instr_1*{instr_1 <- `instr_1*`})] +[visit_exp $free_blocktype(blocktype)] +[visit_exp blocktype] +[visit_id blocktype] not free +[visit_exp $free_block(instr_1*{instr_1 <- `instr_1*`})] +[visit_exp instr_1*{instr_1 <- `instr_1*`}] +[scope_enter instr_1] +[visit_exp instr_1] +[visit_id instr_1] not free +[visit_id instr_1] not free +[scope_exit instr_1] +[visit_exp `instr_1*`] +[visit_id instr_1*] not free +[visit_id instr_1*] no dims +[visit_exp $free_block(instr_2*{instr_2 <- `instr_2*`})] +[visit_exp instr_2*{instr_2 <- `instr_2*`}] +[scope_enter instr_2] +[visit_exp instr_2] +[visit_id instr_2] not free +[visit_id instr_2] not free +[scope_exit instr_2] +[visit_exp `instr_2*`] +[visit_id instr_2*] not free +[visit_id instr_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{blocktype#5 : blocktype, `instr*#5` : instr*, blocktype : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}(`IF%%ELSE%`_instr{blocktype#5, `instr*#5`}(blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})) = $free_blocktype(blocktype) +++ $free_block(instr_1*{instr_1 <- `instr_1*`}) +++ $free_block(instr_2*{instr_2 <- `instr_2*`}) +[check_dims] labelidx labelidx#1 +[visit_exp `BR`_instr{labelidx#1}(labelidx)] +[visit_exp labelidx#1] +[visit_id labelidx#1] +[visit_exp (labelidx)] +[visit_exp labelidx] +[visit_id labelidx] +[visit_exp $free_labelidx(labelidx)] +[visit_exp labelidx] +[visit_id labelidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{labelidx#1 : labelidx, labelidx : labelidx}(`BR`_instr{labelidx#1}(labelidx)) = $free_labelidx(labelidx) +[check_dims] labelidx labelidx#3 +[visit_exp `BR_IF`_instr{labelidx#3}(labelidx)] +[visit_exp labelidx#3] +[visit_id labelidx#3] +[visit_exp (labelidx)] +[visit_exp labelidx] +[visit_id labelidx] +[visit_exp $free_labelidx(labelidx)] +[visit_exp labelidx] +[visit_id labelidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{labelidx#3 : labelidx, labelidx : labelidx}(`BR_IF`_instr{labelidx#3}(labelidx)) = $free_labelidx(labelidx) +[check_dims] labelidx labelidx#5 labelidx' labelidx*#23 +[visit_exp `BR_TABLE`_instr{`labelidx*#23`, labelidx#5}(labelidx*{labelidx <- `labelidx*`}, labelidx')] +[visit_exp `labelidx*#23`] +[visit_id labelidx*#23] +[visit_exp labelidx#5] +[visit_id labelidx#5] +[visit_exp (labelidx*{labelidx <- `labelidx*`}, labelidx')] +[visit_exp labelidx*{labelidx <- `labelidx*`}] +[scope_enter labelidx] +[visit_exp labelidx] +[visit_id labelidx] not free +[visit_id labelidx] not free +[scope_exit labelidx] +[visit_exp `labelidx*`] +[visit_id labelidx*] no dims +[visit_id labelidx*] +[visit_exp labelidx'] +[visit_id labelidx'] +[visit_exp $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`}) +++ $free_labelidx(labelidx')] +[visit_exp $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`})] +[visit_exp $free_labelidx(labelidx)*{labelidx <- `labelidx*`}] +[scope_enter labelidx] +[visit_exp $free_labelidx(labelidx)] +[visit_exp labelidx] +[visit_id labelidx] not free +[visit_id labelidx] not free +[scope_exit labelidx] +[visit_exp `labelidx*`] +[visit_id labelidx*] not free +[visit_id labelidx*] no dims +[visit_exp $free_labelidx(labelidx')] +[visit_exp labelidx'] +[visit_id labelidx'] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`labelidx*#23` : labelidx*, labelidx#5 : labelidx, `labelidx*` : labelidx*, labelidx' : labelidx}(`BR_TABLE`_instr{`labelidx*#23`, labelidx#5}(labelidx*{labelidx <- `labelidx*`}, labelidx')) = $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`}) +++ $free_labelidx(labelidx') +[check_dims] labelidx labelidx#7 +[visit_exp `BR_ON_NULL`_instr{labelidx#7}(labelidx)] +[visit_exp labelidx#7] +[visit_id labelidx#7] +[visit_exp (labelidx)] +[visit_exp labelidx] +[visit_id labelidx] +[visit_exp $free_labelidx(labelidx)] +[visit_exp labelidx] +[visit_id labelidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{labelidx#7 : labelidx, labelidx : labelidx}(`BR_ON_NULL`_instr{labelidx#7}(labelidx)) = $free_labelidx(labelidx) +[check_dims] labelidx labelidx#9 +[visit_exp `BR_ON_NON_NULL`_instr{labelidx#9}(labelidx)] +[visit_exp labelidx#9] +[visit_id labelidx#9] +[visit_exp (labelidx)] +[visit_exp labelidx] +[visit_id labelidx] +[visit_exp $free_labelidx(labelidx)] +[visit_exp labelidx] +[visit_id labelidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{labelidx#9 : labelidx, labelidx : labelidx}(`BR_ON_NON_NULL`_instr{labelidx#9}(labelidx)) = $free_labelidx(labelidx) +[check_dims] labelidx labelidx#11 reftype#125 reftype_1 reftype_2 +[visit_exp `BR_ON_CAST`_instr{labelidx#11, reftype#125}(labelidx, reftype_1, reftype_2)] +[visit_exp labelidx#11] +[visit_id labelidx#11] +[visit_exp reftype#125] +[visit_id reftype#125] +[visit_exp (labelidx, reftype_1, reftype_2)] +[visit_exp labelidx] +[visit_id labelidx] +[visit_exp reftype_1] +[visit_id reftype_1] +[visit_exp reftype_2] +[visit_id reftype_2] +[visit_exp $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2)] +[visit_exp $free_labelidx(labelidx) +++ $free_reftype(reftype_1)] +[visit_exp $free_labelidx(labelidx)] +[visit_exp labelidx] +[visit_id labelidx] not free +[visit_exp $free_reftype(reftype_1)] +[visit_exp reftype_1] +[visit_id reftype_1] not free +[visit_exp $free_reftype(reftype_2)] +[visit_exp reftype_2] +[visit_id reftype_2] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{labelidx#11 : labelidx, reftype#125 : reftype, labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST`_instr{labelidx#11, reftype#125}(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) +[check_dims] labelidx labelidx#13 reftype#128 reftype_1 reftype_2 +[visit_exp `BR_ON_CAST_FAIL`_instr{labelidx#13, reftype#128}(labelidx, reftype_1, reftype_2)] +[visit_exp labelidx#13] +[visit_id labelidx#13] +[visit_exp reftype#128] +[visit_id reftype#128] +[visit_exp (labelidx, reftype_1, reftype_2)] +[visit_exp labelidx] +[visit_id labelidx] +[visit_exp reftype_1] +[visit_id reftype_1] +[visit_exp reftype_2] +[visit_id reftype_2] +[visit_exp $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2)] +[visit_exp $free_labelidx(labelidx) +++ $free_reftype(reftype_1)] +[visit_exp $free_labelidx(labelidx)] +[visit_exp labelidx] +[visit_id labelidx] not free +[visit_exp $free_reftype(reftype_1)] +[visit_exp reftype_1] +[visit_id reftype_1] not free +[visit_exp $free_reftype(reftype_2)] +[visit_exp reftype_2] +[visit_id reftype_2] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{labelidx#13 : labelidx, reftype#128 : reftype, labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST_FAIL`_instr{labelidx#13, reftype#128}(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) +[check_dims] funcidx funcidx#5 +[visit_exp `CALL`_instr{funcidx#5}(funcidx)] +[visit_exp funcidx#5] +[visit_id funcidx#5] +[visit_exp (funcidx)] +[visit_exp funcidx] +[visit_id funcidx] +[visit_exp $free_funcidx(funcidx)] +[visit_exp funcidx] +[visit_id funcidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{funcidx#5 : funcidx, funcidx : funcidx}(`CALL`_instr{funcidx#5}(funcidx)) = $free_funcidx(funcidx) +[check_dims] typeuse typeuse#9 +[visit_exp `CALL_REF`_instr{typeuse#9}(typeuse)] +[visit_exp typeuse#9] +[visit_id typeuse#9] +[visit_exp (typeuse)] +[visit_exp typeuse] +[visit_id typeuse] +[visit_exp $free_typeuse(typeuse)] +[visit_exp typeuse] +[visit_id typeuse] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeuse#9 : typeuse, typeuse : typeuse}(`CALL_REF`_instr{typeuse#9}(typeuse)) = $free_typeuse(typeuse) +[check_dims] tableidx tableidx#5 typeuse typeuse#11 +[visit_exp `CALL_INDIRECT`_instr{tableidx#5, typeuse#11}(tableidx, typeuse)] +[visit_exp tableidx#5] +[visit_id tableidx#5] +[visit_exp typeuse#11] +[visit_id typeuse#11] +[visit_exp (tableidx, typeuse)] +[visit_exp tableidx] +[visit_id tableidx] +[visit_exp typeuse] +[visit_id typeuse] +[visit_exp $free_tableidx(tableidx) +++ $free_typeuse(typeuse)] +[visit_exp $free_tableidx(tableidx)] +[visit_exp tableidx] +[visit_id tableidx] not free +[visit_exp $free_typeuse(typeuse)] +[visit_exp typeuse] +[visit_id typeuse] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{tableidx#5 : tableidx, typeuse#11 : typeuse, tableidx : tableidx, typeuse : typeuse}(`CALL_INDIRECT`_instr{tableidx#5, typeuse#11}(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) +[check_dims] dataidx*#23 elemidx*#23 funcidx*#23 globalidx*#23 labelidx*#25 localidx*#23 memidx*#23 tableidx*#23 typeidx*#23 +[visit_exp `RETURN`_instr] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#23`} [], `FUNCS`{`funcidx*#23`} [], `GLOBALS`{`globalidx*#23`} [], `TABLES`{`tableidx*#23`} [], `MEMS`{`memidx*#23`} [], `ELEMS`{`elemidx*#23`} [], `DATAS`{`dataidx*#23`} [], `LOCALS`{`localidx*#23`} [], `LABELS`{`labelidx*#25`} []}] +[visit_exp `typeidx*#23`] +[visit_id typeidx*#23] +[visit_exp []] +[visit_exp `funcidx*#23`] +[visit_id funcidx*#23] +[visit_exp []] +[visit_exp `globalidx*#23`] +[visit_id globalidx*#23] +[visit_exp []] +[visit_exp `tableidx*#23`] +[visit_id tableidx*#23] +[visit_exp []] +[visit_exp `memidx*#23`] +[visit_id memidx*#23] +[visit_exp []] +[visit_exp `elemidx*#23`] +[visit_id elemidx*#23] +[visit_exp []] +[visit_exp `dataidx*#23`] +[visit_id dataidx*#23] +[visit_exp []] +[visit_exp `localidx*#23`] +[visit_id localidx*#23] +[visit_exp []] +[visit_exp `labelidx*#25`] +[visit_id labelidx*#25] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`typeidx*#23` : typeidx*, `funcidx*#23` : funcidx*, `globalidx*#23` : globalidx*, `tableidx*#23` : tableidx*, `memidx*#23` : memidx*, `elemidx*#23` : elemidx*, `dataidx*#23` : dataidx*, `localidx*#23` : localidx*, `labelidx*#25` : labelidx*}(`RETURN`_instr) = {`TYPES`{`typeidx*#23`} [], `FUNCS`{`funcidx*#23`} [], `GLOBALS`{`globalidx*#23`} [], `TABLES`{`tableidx*#23`} [], `MEMS`{`memidx*#23`} [], `ELEMS`{`elemidx*#23`} [], `DATAS`{`dataidx*#23`} [], `LOCALS`{`localidx*#23`} [], `LABELS`{`labelidx*#25`} []} +[check_dims] funcidx funcidx#7 +[visit_exp `RETURN_CALL`_instr{funcidx#7}(funcidx)] +[visit_exp funcidx#7] +[visit_id funcidx#7] +[visit_exp (funcidx)] +[visit_exp funcidx] +[visit_id funcidx] +[visit_exp $free_funcidx(funcidx)] +[visit_exp funcidx] +[visit_id funcidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{funcidx#7 : funcidx, funcidx : funcidx}(`RETURN_CALL`_instr{funcidx#7}(funcidx)) = $free_funcidx(funcidx) +[check_dims] typeuse typeuse#13 +[visit_exp `RETURN_CALL_REF`_instr{typeuse#13}(typeuse)] +[visit_exp typeuse#13] +[visit_id typeuse#13] +[visit_exp (typeuse)] +[visit_exp typeuse] +[visit_id typeuse] +[visit_exp $free_typeuse(typeuse)] +[visit_exp typeuse] +[visit_id typeuse] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeuse#13 : typeuse, typeuse : typeuse}(`RETURN_CALL_REF`_instr{typeuse#13}(typeuse)) = $free_typeuse(typeuse) +[check_dims] tableidx tableidx#7 typeuse typeuse#15 +[visit_exp `RETURN_CALL_INDIRECT`_instr{tableidx#7, typeuse#15}(tableidx, typeuse)] +[visit_exp tableidx#7] +[visit_id tableidx#7] +[visit_exp typeuse#15] +[visit_id typeuse#15] +[visit_exp (tableidx, typeuse)] +[visit_exp tableidx] +[visit_id tableidx] +[visit_exp typeuse] +[visit_id typeuse] +[visit_exp $free_tableidx(tableidx) +++ $free_typeuse(typeuse)] +[visit_exp $free_tableidx(tableidx)] +[visit_exp tableidx] +[visit_id tableidx] not free +[visit_exp $free_typeuse(typeuse)] +[visit_exp typeuse] +[visit_id typeuse] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{tableidx#7 : tableidx, typeuse#15 : typeuse, tableidx : tableidx, typeuse : typeuse}(`RETURN_CALL_INDIRECT`_instr{tableidx#7, typeuse#15}(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) +[check_dims] numlit numtype numtype#3 +[visit_exp `CONST`_instr{numtype#3}(numtype, numlit)] +[visit_exp numtype#3] +[visit_id numtype#3] +[visit_exp (numtype, numlit)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp numlit] +[visit_id numlit] +[visit_exp $free_numtype(numtype)] +[visit_exp numtype] +[visit_id numtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{numtype#3 : numtype, numtype : numtype, numlit : num_(numtype)}(`CONST`_instr{numtype#3}(numtype, numlit)) = $free_numtype(numtype) +[check_dims] numtype numtype#5 unop +[visit_exp `UNOP`_instr{numtype#5}(numtype, unop)] +[visit_exp numtype#5] +[visit_id numtype#5] +[visit_exp (numtype, unop)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp unop] +[visit_id unop] +[visit_exp $free_numtype(numtype)] +[visit_exp numtype] +[visit_id numtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{numtype#5 : numtype, numtype : numtype, unop : unop_(numtype)}(`UNOP`_instr{numtype#5}(numtype, unop)) = $free_numtype(numtype) +[check_dims] binop numtype numtype#7 +[visit_exp `BINOP`_instr{numtype#7}(numtype, binop)] +[visit_exp numtype#7] +[visit_id numtype#7] +[visit_exp (numtype, binop)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp binop] +[visit_id binop] +[visit_exp $free_numtype(numtype)] +[visit_exp numtype] +[visit_id numtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{numtype#7 : numtype, numtype : numtype, binop : binop_(numtype)}(`BINOP`_instr{numtype#7}(numtype, binop)) = $free_numtype(numtype) +[check_dims] numtype numtype#9 testop +[visit_exp `TESTOP`_instr{numtype#9}(numtype, testop)] +[visit_exp numtype#9] +[visit_id numtype#9] +[visit_exp (numtype, testop)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp testop] +[visit_id testop] +[visit_exp $free_numtype(numtype)] +[visit_exp numtype] +[visit_id numtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{numtype#9 : numtype, numtype : numtype, testop : testop_(numtype)}(`TESTOP`_instr{numtype#9}(numtype, testop)) = $free_numtype(numtype) +[check_dims] numtype numtype#11 relop +[visit_exp `RELOP`_instr{numtype#11}(numtype, relop)] +[visit_exp numtype#11] +[visit_id numtype#11] +[visit_exp (numtype, relop)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp relop] +[visit_id relop] +[visit_exp $free_numtype(numtype)] +[visit_exp numtype] +[visit_id numtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{numtype#11 : numtype, numtype : numtype, relop : relop_(numtype)}(`RELOP`_instr{numtype#11}(numtype, relop)) = $free_numtype(numtype) +[check_dims] cvtop numtype_1 numtype_1#1 numtype_2 numtype_2#1 +[visit_exp `CVTOP`_instr{numtype_1#1, numtype_2#1}(numtype_1, numtype_2, cvtop)] +[visit_exp numtype_1#1] +[visit_id numtype_1#1] +[visit_exp numtype_2#1] +[visit_id numtype_2#1] +[visit_exp (numtype_1, numtype_2, cvtop)] +[visit_exp numtype_1] +[visit_id numtype_1] +[visit_exp numtype_2] +[visit_id numtype_2] +[visit_exp cvtop] +[visit_id cvtop] +[visit_exp $free_numtype(numtype_1) +++ $free_numtype(numtype_2)] +[visit_exp $free_numtype(numtype_1)] +[visit_exp numtype_1] +[visit_id numtype_1] not free +[visit_exp $free_numtype(numtype_2)] +[visit_exp numtype_2] +[visit_id numtype_2] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{numtype_1#1 : numtype, numtype_2#1 : numtype, numtype_1 : numtype, numtype_2 : numtype, cvtop : cvtop__(numtype_2, numtype_1)}(`CVTOP`_instr{numtype_1#1, numtype_2#1}(numtype_1, numtype_2, cvtop)) = $free_numtype(numtype_1) +++ $free_numtype(numtype_2) +[check_dims] veclit vectype vectype#3 +[visit_exp `VCONST`_instr{vectype#3}(vectype, veclit)] +[visit_exp vectype#3] +[visit_id vectype#3] +[visit_exp (vectype, veclit)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp veclit] +[visit_id veclit] +[visit_exp $free_vectype(vectype)] +[visit_exp vectype] +[visit_id vectype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{vectype#3 : vectype, vectype : vectype, veclit : vec_(vectype)}(`VCONST`_instr{vectype#3}(vectype, veclit)) = $free_vectype(vectype) +[check_dims] vectype vectype#5 vvunop vvunop#1 +[visit_exp `VVUNOP`_instr{vectype#5, vvunop#1}(vectype, vvunop)] +[visit_exp vectype#5] +[visit_id vectype#5] +[visit_exp vvunop#1] +[visit_id vvunop#1] +[visit_exp (vectype, vvunop)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp vvunop] +[visit_id vvunop] +[visit_exp $free_vectype(vectype)] +[visit_exp vectype] +[visit_id vectype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{vectype#5 : vectype, vvunop#1 : vvunop, vectype : vectype, vvunop : vvunop}(`VVUNOP`_instr{vectype#5, vvunop#1}(vectype, vvunop)) = $free_vectype(vectype) +[check_dims] vectype vectype#7 vvbinop vvbinop#1 +[visit_exp `VVBINOP`_instr{vectype#7, vvbinop#1}(vectype, vvbinop)] +[visit_exp vectype#7] +[visit_id vectype#7] +[visit_exp vvbinop#1] +[visit_id vvbinop#1] +[visit_exp (vectype, vvbinop)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp vvbinop] +[visit_id vvbinop] +[visit_exp $free_vectype(vectype)] +[visit_exp vectype] +[visit_id vectype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{vectype#7 : vectype, vvbinop#1 : vvbinop, vectype : vectype, vvbinop : vvbinop}(`VVBINOP`_instr{vectype#7, vvbinop#1}(vectype, vvbinop)) = $free_vectype(vectype) +[check_dims] vectype vectype#9 vvternop vvternop#1 +[visit_exp `VVTERNOP`_instr{vectype#9, vvternop#1}(vectype, vvternop)] +[visit_exp vectype#9] +[visit_id vectype#9] +[visit_exp vvternop#1] +[visit_id vvternop#1] +[visit_exp (vectype, vvternop)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp vvternop] +[visit_id vvternop] +[visit_exp $free_vectype(vectype)] +[visit_exp vectype] +[visit_id vectype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{vectype#9 : vectype, vvternop#1 : vvternop, vectype : vectype, vvternop : vvternop}(`VVTERNOP`_instr{vectype#9, vvternop#1}(vectype, vvternop)) = $free_vectype(vectype) +[check_dims] vectype vectype#11 vvtestop vvtestop#1 +[visit_exp `VVTESTOP`_instr{vectype#11, vvtestop#1}(vectype, vvtestop)] +[visit_exp vectype#11] +[visit_id vectype#11] +[visit_exp vvtestop#1] +[visit_id vvtestop#1] +[visit_exp (vectype, vvtestop)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp vvtestop] +[visit_id vvtestop] +[visit_exp $free_vectype(vectype)] +[visit_exp vectype] +[visit_id vectype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{vectype#11 : vectype, vvtestop#1 : vvtestop, vectype : vectype, vvtestop : vvtestop}(`VVTESTOP`_instr{vectype#11, vvtestop#1}(vectype, vvtestop)) = $free_vectype(vectype) +[check_dims] shape shape#153 vunop +[visit_exp `VUNOP`_instr{shape#153}(shape, vunop)] +[visit_exp shape#153] +[visit_id shape#153] +[visit_exp (shape, vunop)] +[visit_exp shape] +[visit_id shape] +[visit_exp vunop] +[visit_id vunop] +[visit_exp $free_shape(shape)] +[visit_exp shape] +[visit_id shape] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{shape#153 : shape, shape : shape, vunop : vunop_(shape)}(`VUNOP`_instr{shape#153}(shape, vunop)) = $free_shape(shape) +[check_dims] shape shape#155 vbinop +[visit_exp `VBINOP`_instr{shape#155}(shape, vbinop)] +[visit_exp shape#155] +[visit_id shape#155] +[visit_exp (shape, vbinop)] +[visit_exp shape] +[visit_id shape] +[visit_exp vbinop] +[visit_id vbinop] +[visit_exp $free_shape(shape)] +[visit_exp shape] +[visit_id shape] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{shape#155 : shape, shape : shape, vbinop : vbinop_(shape)}(`VBINOP`_instr{shape#155}(shape, vbinop)) = $free_shape(shape) +[check_dims] shape shape#157 vternop +[visit_exp `VTERNOP`_instr{shape#157}(shape, vternop)] +[visit_exp shape#157] +[visit_id shape#157] +[visit_exp (shape, vternop)] +[visit_exp shape] +[visit_id shape] +[visit_exp vternop] +[visit_id vternop] +[visit_exp $free_shape(shape)] +[visit_exp shape] +[visit_id shape] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{shape#157 : shape, shape : shape, vternop : vternop_(shape)}(`VTERNOP`_instr{shape#157}(shape, vternop)) = $free_shape(shape) +[check_dims] shape shape#159 vtestop +[visit_exp `VTESTOP`_instr{shape#159}(shape, vtestop)] +[visit_exp shape#159] +[visit_id shape#159] +[visit_exp (shape, vtestop)] +[visit_exp shape] +[visit_id shape] +[visit_exp vtestop] +[visit_id vtestop] +[visit_exp $free_shape(shape)] +[visit_exp shape] +[visit_id shape] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{shape#159 : shape, shape : shape, vtestop : vtestop_(shape)}(`VTESTOP`_instr{shape#159}(shape, vtestop)) = $free_shape(shape) +[check_dims] shape shape#161 vrelop +[visit_exp `VRELOP`_instr{shape#161}(shape, vrelop)] +[visit_exp shape#161] +[visit_id shape#161] +[visit_exp (shape, vrelop)] +[visit_exp shape] +[visit_id shape] +[visit_exp vrelop] +[visit_id vrelop] +[visit_exp $free_shape(shape)] +[visit_exp shape] +[visit_id shape] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{shape#161 : shape, shape : shape, vrelop : vrelop_(shape)}(`VRELOP`_instr{shape#161}(shape, vrelop)) = $free_shape(shape) +[check_dims] Jnn#48 ishape ishape#1 shape#169 vshiftop +[visit_exp `VSHIFTOP`_instr{ishape#1}(ishape, vshiftop)] +[visit_exp ishape#1] +[visit_id ishape#1] +[visit_exp (ishape, vshiftop)] +[visit_exp ishape] +[visit_id ishape] +[visit_exp vshiftop] +[visit_id vshiftop] +[visit_exp $free_shape(ishape!`%`_ishape{shape#169, Jnn#48}.0)] +[visit_exp ishape!`%`_ishape{shape#169, Jnn#48}.0] +[visit_exp ishape!`%`_ishape{shape#169, Jnn#48}] +[visit_exp ishape] +[visit_id ishape] not free +[visit_exp shape#169] +[visit_id shape#169] +[visit_exp Jnn#48] +[visit_id Jnn#48] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{ishape#1 : ishape, ishape : ishape, vshiftop : vshiftop_(ishape), shape#169 : shape, Jnn#48 : Jnn}(`VSHIFTOP`_instr{ishape#1}(ishape, vshiftop)) = $free_shape(ishape!`%`_ishape{shape#169, Jnn#48}.0) +[check_dims] Jnn#51 ishape ishape#3 shape#177 +[visit_exp `VBITMASK`_instr{ishape#3}(ishape)] +[visit_exp ishape#3] +[visit_id ishape#3] +[visit_exp (ishape)] +[visit_exp ishape] +[visit_id ishape] +[visit_exp $free_shape(ishape!`%`_ishape{shape#177, Jnn#51}.0)] +[visit_exp ishape!`%`_ishape{shape#177, Jnn#51}.0] +[visit_exp ishape!`%`_ishape{shape#177, Jnn#51}] +[visit_exp ishape] +[visit_id ishape] not free +[visit_exp shape#177] +[visit_id shape#177] +[visit_exp Jnn#51] +[visit_id Jnn#51] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{ishape#3 : ishape, ishape : ishape, shape#177 : shape, Jnn#51 : Jnn}(`VBITMASK`_instr{ishape#3}(ishape)) = $free_shape(ishape!`%`_ishape{shape#177, Jnn#51}.0) +[check_dims] bshape bshape#1 shape#185 vswizzlop +[visit_exp `VSWIZZLOP`_instr{bshape#1}(bshape, vswizzlop)] +[visit_exp bshape#1] +[visit_id bshape#1] +[visit_exp (bshape, vswizzlop)] +[visit_exp bshape] +[visit_id bshape] +[visit_exp vswizzlop] +[visit_id vswizzlop] +[visit_exp $free_shape(bshape!`%`_bshape{shape#185}.0)] +[visit_exp bshape!`%`_bshape{shape#185}.0] +[visit_exp bshape!`%`_bshape{shape#185}] +[visit_exp bshape] +[visit_id bshape] not free +[visit_exp shape#185] +[visit_id shape#185] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{bshape#1 : bshape, bshape : bshape, vswizzlop : vswizzlop_(bshape), shape#185 : shape}(`VSWIZZLOP`_instr{bshape#1}(bshape, vswizzlop)) = $free_shape(bshape!`%`_bshape{shape#185}.0) +[check_dims] bshape bshape#3 i#1902 laneidx laneidx*#1 shape#187 shape#194 +[visit_exp `VSHUFFLE`_instr{bshape#3, `laneidx*#1`, i#1902, shape#187}(bshape, laneidx*{laneidx <- `laneidx*`})] +[visit_exp bshape#3] +[visit_id bshape#3] +[visit_exp `laneidx*#1`] +[visit_id laneidx*#1] +[visit_exp i#1902] +[visit_id i#1902] +[visit_exp shape#187] +[visit_id shape#187] +[visit_exp (bshape, laneidx*{laneidx <- `laneidx*`})] +[visit_exp bshape] +[visit_id bshape] +[visit_exp laneidx*{laneidx <- `laneidx*`}] +[scope_enter laneidx] +[visit_exp laneidx] +[visit_id laneidx] not free +[visit_id laneidx] not free +[scope_exit laneidx] +[visit_exp `laneidx*`] +[visit_id laneidx*] no dims +[visit_id laneidx*] +[visit_exp $free_shape(bshape!`%`_bshape{shape#194}.0)] +[visit_exp bshape!`%`_bshape{shape#194}.0] +[visit_exp bshape!`%`_bshape{shape#194}] +[visit_exp bshape] +[visit_id bshape] not free +[visit_exp shape#194] +[visit_id shape#194] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{bshape#3 : bshape, `laneidx*#1` : laneidx*, i#1902 : nat, shape#187 : shape, bshape : bshape, `laneidx*` : laneidx*, shape#194 : shape}(`VSHUFFLE`_instr{bshape#3, `laneidx*#1`, i#1902, shape#187}(bshape, laneidx*{laneidx <- `laneidx*`})) = $free_shape(bshape!`%`_bshape{shape#194}.0) +[check_dims] Jnn#56 Jnn#57 ishape_1 ishape_1#1 ishape_2 ishape_2#1 shape#208 shape#210 vextunop +[visit_exp `VEXTUNOP`_instr{ishape_1#1, ishape_2#1}(ishape_1, ishape_2, vextunop)] +[visit_exp ishape_1#1] +[visit_id ishape_1#1] +[visit_exp ishape_2#1] +[visit_id ishape_2#1] +[visit_exp (ishape_1, ishape_2, vextunop)] +[visit_exp ishape_1] +[visit_id ishape_1] +[visit_exp ishape_2] +[visit_id ishape_2] +[visit_exp vextunop] +[visit_id vextunop] +[visit_exp $free_shape(ishape_1!`%`_ishape{shape#208, Jnn#56}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#210, Jnn#57}.0)] +[visit_exp $free_shape(ishape_1!`%`_ishape{shape#208, Jnn#56}.0)] +[visit_exp ishape_1!`%`_ishape{shape#208, Jnn#56}.0] +[visit_exp ishape_1!`%`_ishape{shape#208, Jnn#56}] +[visit_exp ishape_1] +[visit_id ishape_1] not free +[visit_exp shape#208] +[visit_id shape#208] +[visit_exp Jnn#56] +[visit_id Jnn#56] +[visit_exp $free_shape(ishape_2!`%`_ishape{shape#210, Jnn#57}.0)] +[visit_exp ishape_2!`%`_ishape{shape#210, Jnn#57}.0] +[visit_exp ishape_2!`%`_ishape{shape#210, Jnn#57}] +[visit_exp ishape_2] +[visit_id ishape_2] not free +[visit_exp shape#210] +[visit_id shape#210] +[visit_exp Jnn#57] +[visit_id Jnn#57] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{ishape_1#1 : ishape, ishape_2#1 : ishape, ishape_1 : ishape, ishape_2 : ishape, vextunop : vextunop__(ishape_2, ishape_1), shape#208 : shape, Jnn#56 : Jnn, shape#210 : shape, Jnn#57 : Jnn}(`VEXTUNOP`_instr{ishape_1#1, ishape_2#1}(ishape_1, ishape_2, vextunop)) = $free_shape(ishape_1!`%`_ishape{shape#208, Jnn#56}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#210, Jnn#57}.0) +[check_dims] Jnn#62 Jnn#63 ishape_1 ishape_1#3 ishape_2 ishape_2#3 shape#224 shape#226 vextbinop +[visit_exp `VEXTBINOP`_instr{ishape_1#3, ishape_2#3}(ishape_1, ishape_2, vextbinop)] +[visit_exp ishape_1#3] +[visit_id ishape_1#3] +[visit_exp ishape_2#3] +[visit_id ishape_2#3] +[visit_exp (ishape_1, ishape_2, vextbinop)] +[visit_exp ishape_1] +[visit_id ishape_1] +[visit_exp ishape_2] +[visit_id ishape_2] +[visit_exp vextbinop] +[visit_id vextbinop] +[visit_exp $free_shape(ishape_1!`%`_ishape{shape#224, Jnn#62}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#226, Jnn#63}.0)] +[visit_exp $free_shape(ishape_1!`%`_ishape{shape#224, Jnn#62}.0)] +[visit_exp ishape_1!`%`_ishape{shape#224, Jnn#62}.0] +[visit_exp ishape_1!`%`_ishape{shape#224, Jnn#62}] +[visit_exp ishape_1] +[visit_id ishape_1] not free +[visit_exp shape#224] +[visit_id shape#224] +[visit_exp Jnn#62] +[visit_id Jnn#62] +[visit_exp $free_shape(ishape_2!`%`_ishape{shape#226, Jnn#63}.0)] +[visit_exp ishape_2!`%`_ishape{shape#226, Jnn#63}.0] +[visit_exp ishape_2!`%`_ishape{shape#226, Jnn#63}] +[visit_exp ishape_2] +[visit_id ishape_2] not free +[visit_exp shape#226] +[visit_id shape#226] +[visit_exp Jnn#63] +[visit_id Jnn#63] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{ishape_1#3 : ishape, ishape_2#3 : ishape, ishape_1 : ishape, ishape_2 : ishape, vextbinop : vextbinop__(ishape_2, ishape_1), shape#224 : shape, Jnn#62 : Jnn, shape#226 : shape, Jnn#63 : Jnn}(`VEXTBINOP`_instr{ishape_1#3, ishape_2#3}(ishape_1, ishape_2, vextbinop)) = $free_shape(ishape_1!`%`_ishape{shape#224, Jnn#62}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#226, Jnn#63}.0) +[check_dims] Jnn#68 Jnn#69 ishape_1 ishape_1#5 ishape_2 ishape_2#5 shape#240 shape#242 vextternop +[visit_exp `VEXTTERNOP`_instr{ishape_1#5, ishape_2#5}(ishape_1, ishape_2, vextternop)] +[visit_exp ishape_1#5] +[visit_id ishape_1#5] +[visit_exp ishape_2#5] +[visit_id ishape_2#5] +[visit_exp (ishape_1, ishape_2, vextternop)] +[visit_exp ishape_1] +[visit_id ishape_1] +[visit_exp ishape_2] +[visit_id ishape_2] +[visit_exp vextternop] +[visit_id vextternop] +[visit_exp $free_shape(ishape_1!`%`_ishape{shape#240, Jnn#68}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#242, Jnn#69}.0)] +[visit_exp $free_shape(ishape_1!`%`_ishape{shape#240, Jnn#68}.0)] +[visit_exp ishape_1!`%`_ishape{shape#240, Jnn#68}.0] +[visit_exp ishape_1!`%`_ishape{shape#240, Jnn#68}] +[visit_exp ishape_1] +[visit_id ishape_1] not free +[visit_exp shape#240] +[visit_id shape#240] +[visit_exp Jnn#68] +[visit_id Jnn#68] +[visit_exp $free_shape(ishape_2!`%`_ishape{shape#242, Jnn#69}.0)] +[visit_exp ishape_2!`%`_ishape{shape#242, Jnn#69}.0] +[visit_exp ishape_2!`%`_ishape{shape#242, Jnn#69}] +[visit_exp ishape_2] +[visit_id ishape_2] not free +[visit_exp shape#242] +[visit_id shape#242] +[visit_exp Jnn#69] +[visit_id Jnn#69] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{ishape_1#5 : ishape, ishape_2#5 : ishape, ishape_1 : ishape, ishape_2 : ishape, vextternop : vextternop__(ishape_2, ishape_1), shape#240 : shape, Jnn#68 : Jnn, shape#242 : shape, Jnn#69 : Jnn}(`VEXTTERNOP`_instr{ishape_1#5, ishape_2#5}(ishape_1, ishape_2, vextternop)) = $free_shape(ishape_1!`%`_ishape{shape#240, Jnn#68}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#242, Jnn#69}.0) +[check_dims] Jnn#70 Jnn#71 Jnn#72 Jnn#77 Jnn#78 ishape_1 ishape_1#7 ishape_2 ishape_2#7 shape#244 shape#245 shape#246 shape#259 shape#261 sx sx#1 +[visit_exp `VNARROW`_instr{ishape_1#7, ishape_2#7, sx#1, shape#244, Jnn#70, shape#245, Jnn#71, shape#246, Jnn#72}(ishape_1, ishape_2, sx)] +[visit_exp ishape_1#7] +[visit_id ishape_1#7] +[visit_exp ishape_2#7] +[visit_id ishape_2#7] +[visit_exp sx#1] +[visit_id sx#1] +[visit_exp shape#244] +[visit_id shape#244] +[visit_exp Jnn#70] +[visit_id Jnn#70] +[visit_exp shape#245] +[visit_id shape#245] +[visit_exp Jnn#71] +[visit_id Jnn#71] +[visit_exp shape#246] +[visit_id shape#246] +[visit_exp Jnn#72] +[visit_id Jnn#72] +[visit_exp (ishape_1, ishape_2, sx)] +[visit_exp ishape_1] +[visit_id ishape_1] +[visit_exp ishape_2] +[visit_id ishape_2] +[visit_exp sx] +[visit_id sx] +[visit_exp $free_shape(ishape_1!`%`_ishape{shape#259, Jnn#77}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#261, Jnn#78}.0)] +[visit_exp $free_shape(ishape_1!`%`_ishape{shape#259, Jnn#77}.0)] +[visit_exp ishape_1!`%`_ishape{shape#259, Jnn#77}.0] +[visit_exp ishape_1!`%`_ishape{shape#259, Jnn#77}] +[visit_exp ishape_1] +[visit_id ishape_1] not free +[visit_exp shape#259] +[visit_id shape#259] +[visit_exp Jnn#77] +[visit_id Jnn#77] +[visit_exp $free_shape(ishape_2!`%`_ishape{shape#261, Jnn#78}.0)] +[visit_exp ishape_2!`%`_ishape{shape#261, Jnn#78}.0] +[visit_exp ishape_2!`%`_ishape{shape#261, Jnn#78}] +[visit_exp ishape_2] +[visit_id ishape_2] not free +[visit_exp shape#261] +[visit_id shape#261] +[visit_exp Jnn#78] +[visit_id Jnn#78] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{ishape_1#7 : ishape, ishape_2#7 : ishape, sx#1 : sx, shape#244 : shape, Jnn#70 : Jnn, shape#245 : shape, Jnn#71 : Jnn, shape#246 : shape, Jnn#72 : Jnn, ishape_1 : ishape, ishape_2 : ishape, sx : sx, shape#259 : shape, Jnn#77 : Jnn, shape#261 : shape, Jnn#78 : Jnn}(`VNARROW`_instr{ishape_1#7, ishape_2#7, sx#1, shape#244, Jnn#70, shape#245, Jnn#71, shape#246, Jnn#72}(ishape_1, ishape_2, sx)) = $free_shape(ishape_1!`%`_ishape{shape#259, Jnn#77}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#261, Jnn#78}.0) +[check_dims] shape_1 shape_1#1 shape_2 shape_2#1 vcvtop +[visit_exp `VCVTOP`_instr{shape_1#1, shape_2#1}(shape_1, shape_2, vcvtop)] +[visit_exp shape_1#1] +[visit_id shape_1#1] +[visit_exp shape_2#1] +[visit_id shape_2#1] +[visit_exp (shape_1, shape_2, vcvtop)] +[visit_exp shape_1] +[visit_id shape_1] +[visit_exp shape_2] +[visit_id shape_2] +[visit_exp vcvtop] +[visit_id vcvtop] +[visit_exp $free_shape(shape_1) +++ $free_shape(shape_2)] +[visit_exp $free_shape(shape_1)] +[visit_exp shape_1] +[visit_id shape_1] not free +[visit_exp $free_shape(shape_2)] +[visit_exp shape_2] +[visit_id shape_2] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{shape_1#1 : shape, shape_2#1 : shape, shape_1 : shape, shape_2 : shape, vcvtop : vcvtop__(shape_2, shape_1)}(`VCVTOP`_instr{shape_1#1, shape_2#1}(shape_1, shape_2, vcvtop)) = $free_shape(shape_1) +++ $free_shape(shape_2) +[check_dims] shape shape#263 +[visit_exp `VSPLAT`_instr{shape#263}(shape)] +[visit_exp shape#263] +[visit_id shape#263] +[visit_exp (shape)] +[visit_exp shape] +[visit_id shape] +[visit_exp $free_shape(shape)] +[visit_exp shape] +[visit_id shape] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{shape#263 : shape, shape : shape}(`VSPLAT`_instr{shape#263}(shape)) = $free_shape(shape) +[check_dims] laneidx laneidx#1 shape shape#265 sx sx?#1 +[visit_exp `VEXTRACT_LANE`_instr{shape#265, `sx?#1`, laneidx#1}(shape, sx?{sx <- `sx?`}, laneidx)] +[visit_exp shape#265] +[visit_id shape#265] +[visit_exp `sx?#1`] +[visit_id sx?#1] +[visit_exp laneidx#1] +[visit_id laneidx#1] +[visit_exp (shape, sx?{sx <- `sx?`}, laneidx)] +[visit_exp shape] +[visit_id shape] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] no dims +[visit_id sx?] +[visit_exp laneidx] +[visit_id laneidx] +[visit_exp $free_shape(shape)] +[visit_exp shape] +[visit_id shape] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{shape#265 : shape, `sx?#1` : sx?, laneidx#1 : laneidx, shape : shape, `sx?` : sx?, laneidx : laneidx}(`VEXTRACT_LANE`_instr{shape#265, `sx?#1`, laneidx#1}(shape, sx?{sx <- `sx?`}, laneidx)) = $free_shape(shape) +[check_dims] laneidx laneidx#3 shape shape#267 +[visit_exp `VREPLACE_LANE`_instr{shape#267, laneidx#3}(shape, laneidx)] +[visit_exp shape#267] +[visit_id shape#267] +[visit_exp laneidx#3] +[visit_id laneidx#3] +[visit_exp (shape, laneidx)] +[visit_exp shape] +[visit_id shape] +[visit_exp laneidx] +[visit_id laneidx] +[visit_exp $free_shape(shape)] +[visit_exp shape] +[visit_id shape] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{shape#267 : shape, laneidx#3 : laneidx, shape : shape, laneidx : laneidx}(`VREPLACE_LANE`_instr{shape#267, laneidx#3}(shape, laneidx)) = $free_shape(shape) +[check_dims] heaptype heaptype#373 +[visit_exp `REF.NULL`_instr{heaptype#373}(heaptype)] +[visit_exp heaptype#373] +[visit_id heaptype#373] +[visit_exp (heaptype)] +[visit_exp heaptype] +[visit_id heaptype] +[visit_exp $free_heaptype(heaptype)] +[visit_exp heaptype] +[visit_id heaptype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{heaptype#373 : heaptype, heaptype : heaptype}(`REF.NULL`_instr{heaptype#373}(heaptype)) = $free_heaptype(heaptype) +[check_dims] dataidx*#24 elemidx*#24 funcidx*#24 globalidx*#24 labelidx*#26 localidx*#24 memidx*#24 tableidx*#24 typeidx*#24 +[visit_exp `REF.IS_NULL`_instr] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#24`} [], `FUNCS`{`funcidx*#24`} [], `GLOBALS`{`globalidx*#24`} [], `TABLES`{`tableidx*#24`} [], `MEMS`{`memidx*#24`} [], `ELEMS`{`elemidx*#24`} [], `DATAS`{`dataidx*#24`} [], `LOCALS`{`localidx*#24`} [], `LABELS`{`labelidx*#26`} []}] +[visit_exp `typeidx*#24`] +[visit_id typeidx*#24] +[visit_exp []] +[visit_exp `funcidx*#24`] +[visit_id funcidx*#24] +[visit_exp []] +[visit_exp `globalidx*#24`] +[visit_id globalidx*#24] +[visit_exp []] +[visit_exp `tableidx*#24`] +[visit_id tableidx*#24] +[visit_exp []] +[visit_exp `memidx*#24`] +[visit_id memidx*#24] +[visit_exp []] +[visit_exp `elemidx*#24`] +[visit_id elemidx*#24] +[visit_exp []] +[visit_exp `dataidx*#24`] +[visit_id dataidx*#24] +[visit_exp []] +[visit_exp `localidx*#24`] +[visit_id localidx*#24] +[visit_exp []] +[visit_exp `labelidx*#26`] +[visit_id labelidx*#26] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`typeidx*#24` : typeidx*, `funcidx*#24` : funcidx*, `globalidx*#24` : globalidx*, `tableidx*#24` : tableidx*, `memidx*#24` : memidx*, `elemidx*#24` : elemidx*, `dataidx*#24` : dataidx*, `localidx*#24` : localidx*, `labelidx*#26` : labelidx*}(`REF.IS_NULL`_instr) = {`TYPES`{`typeidx*#24`} [], `FUNCS`{`funcidx*#24`} [], `GLOBALS`{`globalidx*#24`} [], `TABLES`{`tableidx*#24`} [], `MEMS`{`memidx*#24`} [], `ELEMS`{`elemidx*#24`} [], `DATAS`{`dataidx*#24`} [], `LOCALS`{`localidx*#24`} [], `LABELS`{`labelidx*#26`} []} +[check_dims] dataidx*#25 elemidx*#25 funcidx*#25 globalidx*#25 labelidx*#27 localidx*#25 memidx*#25 tableidx*#25 typeidx*#25 +[visit_exp `REF.AS_NON_NULL`_instr] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#25`} [], `FUNCS`{`funcidx*#25`} [], `GLOBALS`{`globalidx*#25`} [], `TABLES`{`tableidx*#25`} [], `MEMS`{`memidx*#25`} [], `ELEMS`{`elemidx*#25`} [], `DATAS`{`dataidx*#25`} [], `LOCALS`{`localidx*#25`} [], `LABELS`{`labelidx*#27`} []}] +[visit_exp `typeidx*#25`] +[visit_id typeidx*#25] +[visit_exp []] +[visit_exp `funcidx*#25`] +[visit_id funcidx*#25] +[visit_exp []] +[visit_exp `globalidx*#25`] +[visit_id globalidx*#25] +[visit_exp []] +[visit_exp `tableidx*#25`] +[visit_id tableidx*#25] +[visit_exp []] +[visit_exp `memidx*#25`] +[visit_id memidx*#25] +[visit_exp []] +[visit_exp `elemidx*#25`] +[visit_id elemidx*#25] +[visit_exp []] +[visit_exp `dataidx*#25`] +[visit_id dataidx*#25] +[visit_exp []] +[visit_exp `localidx*#25`] +[visit_id localidx*#25] +[visit_exp []] +[visit_exp `labelidx*#27`] +[visit_id labelidx*#27] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`typeidx*#25` : typeidx*, `funcidx*#25` : funcidx*, `globalidx*#25` : globalidx*, `tableidx*#25` : tableidx*, `memidx*#25` : memidx*, `elemidx*#25` : elemidx*, `dataidx*#25` : dataidx*, `localidx*#25` : localidx*, `labelidx*#27` : labelidx*}(`REF.AS_NON_NULL`_instr) = {`TYPES`{`typeidx*#25`} [], `FUNCS`{`funcidx*#25`} [], `GLOBALS`{`globalidx*#25`} [], `TABLES`{`tableidx*#25`} [], `MEMS`{`memidx*#25`} [], `ELEMS`{`elemidx*#25`} [], `DATAS`{`dataidx*#25`} [], `LOCALS`{`localidx*#25`} [], `LABELS`{`labelidx*#27`} []} +[check_dims] dataidx*#26 elemidx*#26 funcidx*#26 globalidx*#26 labelidx*#28 localidx*#26 memidx*#26 tableidx*#26 typeidx*#26 +[visit_exp `REF.EQ`_instr] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#26`} [], `FUNCS`{`funcidx*#26`} [], `GLOBALS`{`globalidx*#26`} [], `TABLES`{`tableidx*#26`} [], `MEMS`{`memidx*#26`} [], `ELEMS`{`elemidx*#26`} [], `DATAS`{`dataidx*#26`} [], `LOCALS`{`localidx*#26`} [], `LABELS`{`labelidx*#28`} []}] +[visit_exp `typeidx*#26`] +[visit_id typeidx*#26] +[visit_exp []] +[visit_exp `funcidx*#26`] +[visit_id funcidx*#26] +[visit_exp []] +[visit_exp `globalidx*#26`] +[visit_id globalidx*#26] +[visit_exp []] +[visit_exp `tableidx*#26`] +[visit_id tableidx*#26] +[visit_exp []] +[visit_exp `memidx*#26`] +[visit_id memidx*#26] +[visit_exp []] +[visit_exp `elemidx*#26`] +[visit_id elemidx*#26] +[visit_exp []] +[visit_exp `dataidx*#26`] +[visit_id dataidx*#26] +[visit_exp []] +[visit_exp `localidx*#26`] +[visit_id localidx*#26] +[visit_exp []] +[visit_exp `labelidx*#28`] +[visit_id labelidx*#28] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`typeidx*#26` : typeidx*, `funcidx*#26` : funcidx*, `globalidx*#26` : globalidx*, `tableidx*#26` : tableidx*, `memidx*#26` : memidx*, `elemidx*#26` : elemidx*, `dataidx*#26` : dataidx*, `localidx*#26` : localidx*, `labelidx*#28` : labelidx*}(`REF.EQ`_instr) = {`TYPES`{`typeidx*#26`} [], `FUNCS`{`funcidx*#26`} [], `GLOBALS`{`globalidx*#26`} [], `TABLES`{`tableidx*#26`} [], `MEMS`{`memidx*#26`} [], `ELEMS`{`elemidx*#26`} [], `DATAS`{`dataidx*#26`} [], `LOCALS`{`localidx*#26`} [], `LABELS`{`labelidx*#28`} []} +[check_dims] reftype reftype#131 +[visit_exp `REF.TEST`_instr{reftype#131}(reftype)] +[visit_exp reftype#131] +[visit_id reftype#131] +[visit_exp (reftype)] +[visit_exp reftype] +[visit_id reftype] +[visit_exp $free_reftype(reftype)] +[visit_exp reftype] +[visit_id reftype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{reftype#131 : reftype, reftype : reftype}(`REF.TEST`_instr{reftype#131}(reftype)) = $free_reftype(reftype) +[check_dims] reftype reftype#133 +[visit_exp `REF.CAST`_instr{reftype#133}(reftype)] +[visit_exp reftype#133] +[visit_id reftype#133] +[visit_exp (reftype)] +[visit_exp reftype] +[visit_id reftype] +[visit_exp $free_reftype(reftype)] +[visit_exp reftype] +[visit_id reftype] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{reftype#133 : reftype, reftype : reftype}(`REF.CAST`_instr{reftype#133}(reftype)) = $free_reftype(reftype) +[check_dims] funcidx funcidx#9 +[visit_exp `REF.FUNC`_instr{funcidx#9}(funcidx)] +[visit_exp funcidx#9] +[visit_id funcidx#9] +[visit_exp (funcidx)] +[visit_exp funcidx] +[visit_id funcidx] +[visit_exp $free_funcidx(funcidx)] +[visit_exp funcidx] +[visit_id funcidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{funcidx#9 : funcidx, funcidx : funcidx}(`REF.FUNC`_instr{funcidx#9}(funcidx)) = $free_funcidx(funcidx) +[check_dims] dataidx*#27 elemidx*#27 funcidx*#27 globalidx*#27 labelidx*#29 localidx*#27 memidx*#27 tableidx*#27 typeidx*#27 +[visit_exp `REF.I31`_instr] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#27`} [], `FUNCS`{`funcidx*#27`} [], `GLOBALS`{`globalidx*#27`} [], `TABLES`{`tableidx*#27`} [], `MEMS`{`memidx*#27`} [], `ELEMS`{`elemidx*#27`} [], `DATAS`{`dataidx*#27`} [], `LOCALS`{`localidx*#27`} [], `LABELS`{`labelidx*#29`} []}] +[visit_exp `typeidx*#27`] +[visit_id typeidx*#27] +[visit_exp []] +[visit_exp `funcidx*#27`] +[visit_id funcidx*#27] +[visit_exp []] +[visit_exp `globalidx*#27`] +[visit_id globalidx*#27] +[visit_exp []] +[visit_exp `tableidx*#27`] +[visit_id tableidx*#27] +[visit_exp []] +[visit_exp `memidx*#27`] +[visit_id memidx*#27] +[visit_exp []] +[visit_exp `elemidx*#27`] +[visit_id elemidx*#27] +[visit_exp []] +[visit_exp `dataidx*#27`] +[visit_id dataidx*#27] +[visit_exp []] +[visit_exp `localidx*#27`] +[visit_id localidx*#27] +[visit_exp []] +[visit_exp `labelidx*#29`] +[visit_id labelidx*#29] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`typeidx*#27` : typeidx*, `funcidx*#27` : funcidx*, `globalidx*#27` : globalidx*, `tableidx*#27` : tableidx*, `memidx*#27` : memidx*, `elemidx*#27` : elemidx*, `dataidx*#27` : dataidx*, `localidx*#27` : localidx*, `labelidx*#29` : labelidx*}(`REF.I31`_instr) = {`TYPES`{`typeidx*#27`} [], `FUNCS`{`funcidx*#27`} [], `GLOBALS`{`globalidx*#27`} [], `TABLES`{`tableidx*#27`} [], `MEMS`{`memidx*#27`} [], `ELEMS`{`elemidx*#27`} [], `DATAS`{`dataidx*#27`} [], `LOCALS`{`localidx*#27`} [], `LABELS`{`labelidx*#29`} []} +[check_dims] dataidx*#28 elemidx*#28 funcidx*#28 globalidx*#28 labelidx*#30 localidx*#28 memidx*#28 sx sx#3 tableidx*#28 typeidx*#28 +[visit_exp `I31.GET`_instr{sx#3}(sx)] +[visit_exp sx#3] +[visit_id sx#3] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp {`TYPES`{`typeidx*#28`} [], `FUNCS`{`funcidx*#28`} [], `GLOBALS`{`globalidx*#28`} [], `TABLES`{`tableidx*#28`} [], `MEMS`{`memidx*#28`} [], `ELEMS`{`elemidx*#28`} [], `DATAS`{`dataidx*#28`} [], `LOCALS`{`localidx*#28`} [], `LABELS`{`labelidx*#30`} []}] +[visit_exp `typeidx*#28`] +[visit_id typeidx*#28] +[visit_exp []] +[visit_exp `funcidx*#28`] +[visit_id funcidx*#28] +[visit_exp []] +[visit_exp `globalidx*#28`] +[visit_id globalidx*#28] +[visit_exp []] +[visit_exp `tableidx*#28`] +[visit_id tableidx*#28] +[visit_exp []] +[visit_exp `memidx*#28`] +[visit_id memidx*#28] +[visit_exp []] +[visit_exp `elemidx*#28`] +[visit_id elemidx*#28] +[visit_exp []] +[visit_exp `dataidx*#28`] +[visit_id dataidx*#28] +[visit_exp []] +[visit_exp `localidx*#28`] +[visit_id localidx*#28] +[visit_exp []] +[visit_exp `labelidx*#30`] +[visit_id labelidx*#30] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{sx#3 : sx, sx : sx, `typeidx*#28` : typeidx*, `funcidx*#28` : funcidx*, `globalidx*#28` : globalidx*, `tableidx*#28` : tableidx*, `memidx*#28` : memidx*, `elemidx*#28` : elemidx*, `dataidx*#28` : dataidx*, `localidx*#28` : localidx*, `labelidx*#30` : labelidx*}(`I31.GET`_instr{sx#3}(sx)) = {`TYPES`{`typeidx*#28`} [], `FUNCS`{`funcidx*#28`} [], `GLOBALS`{`globalidx*#28`} [], `TABLES`{`tableidx*#28`} [], `MEMS`{`memidx*#28`} [], `ELEMS`{`elemidx*#28`} [], `DATAS`{`dataidx*#28`} [], `LOCALS`{`localidx*#28`} [], `LABELS`{`labelidx*#30`} []} +[check_dims] dataidx*#29 elemidx*#29 funcidx*#29 globalidx*#29 labelidx*#31 localidx*#29 memidx*#29 tableidx*#29 typeidx typeidx#29 typeidx*#29 +[visit_exp `STRUCT.NEW`_instr{typeidx#29}(typeidx)] +[visit_exp typeidx#29] +[visit_id typeidx#29] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp {`TYPES`{`typeidx*#29`} [], `FUNCS`{`funcidx*#29`} [], `GLOBALS`{`globalidx*#29`} [], `TABLES`{`tableidx*#29`} [], `MEMS`{`memidx*#29`} [], `ELEMS`{`elemidx*#29`} [], `DATAS`{`dataidx*#29`} [], `LOCALS`{`localidx*#29`} [], `LABELS`{`labelidx*#31`} []}] +[visit_exp `typeidx*#29`] +[visit_id typeidx*#29] +[visit_exp []] +[visit_exp `funcidx*#29`] +[visit_id funcidx*#29] +[visit_exp []] +[visit_exp `globalidx*#29`] +[visit_id globalidx*#29] +[visit_exp []] +[visit_exp `tableidx*#29`] +[visit_id tableidx*#29] +[visit_exp []] +[visit_exp `memidx*#29`] +[visit_id memidx*#29] +[visit_exp []] +[visit_exp `elemidx*#29`] +[visit_id elemidx*#29] +[visit_exp []] +[visit_exp `dataidx*#29`] +[visit_id dataidx*#29] +[visit_exp []] +[visit_exp `localidx*#29`] +[visit_id localidx*#29] +[visit_exp []] +[visit_exp `labelidx*#31`] +[visit_id labelidx*#31] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeidx#29 : typeidx, typeidx : typeidx, `typeidx*#29` : typeidx*, `funcidx*#29` : funcidx*, `globalidx*#29` : globalidx*, `tableidx*#29` : tableidx*, `memidx*#29` : memidx*, `elemidx*#29` : elemidx*, `dataidx*#29` : dataidx*, `localidx*#29` : localidx*, `labelidx*#31` : labelidx*}(`STRUCT.NEW`_instr{typeidx#29}(typeidx)) = {`TYPES`{`typeidx*#29`} [], `FUNCS`{`funcidx*#29`} [], `GLOBALS`{`globalidx*#29`} [], `TABLES`{`tableidx*#29`} [], `MEMS`{`memidx*#29`} [], `ELEMS`{`elemidx*#29`} [], `DATAS`{`dataidx*#29`} [], `LOCALS`{`localidx*#29`} [], `LABELS`{`labelidx*#31`} []} +[check_dims] typeidx typeidx#31 +[visit_exp `STRUCT.NEW_DEFAULT`_instr{typeidx#31}(typeidx)] +[visit_exp typeidx#31] +[visit_id typeidx#31] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeidx#31 : typeidx, typeidx : typeidx}(`STRUCT.NEW_DEFAULT`_instr{typeidx#31}(typeidx)) = $free_typeidx(typeidx) +[check_dims] sx sx?#3 typeidx typeidx#33 u32 u32#2 +[visit_exp `STRUCT.GET`_instr{`sx?#3`, typeidx#33, u32#2}(sx?{sx <- `sx?`}, typeidx, u32)] +[visit_exp `sx?#3`] +[visit_id sx?#3] +[visit_exp typeidx#33] +[visit_id typeidx#33] +[visit_exp u32#2] +[visit_id u32#2] +[visit_exp (sx?{sx <- `sx?`}, typeidx, u32)] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] no dims +[visit_id sx?] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp u32] +[visit_id u32] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`sx?#3` : sx?, typeidx#33 : typeidx, u32#2 : u32, `sx?` : sx?, typeidx : typeidx, u32 : u32}(`STRUCT.GET`_instr{`sx?#3`, typeidx#33, u32#2}(sx?{sx <- `sx?`}, typeidx, u32)) = $free_typeidx(typeidx) +[check_dims] typeidx typeidx#35 u32 u32#4 +[visit_exp `STRUCT.SET`_instr{typeidx#35, u32#4}(typeidx, u32)] +[visit_exp typeidx#35] +[visit_id typeidx#35] +[visit_exp u32#4] +[visit_id u32#4] +[visit_exp (typeidx, u32)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp u32] +[visit_id u32] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeidx#35 : typeidx, u32#4 : u32, typeidx : typeidx, u32 : u32}(`STRUCT.SET`_instr{typeidx#35, u32#4}(typeidx, u32)) = $free_typeidx(typeidx) +[check_dims] typeidx typeidx#37 +[visit_exp `ARRAY.NEW`_instr{typeidx#37}(typeidx)] +[visit_exp typeidx#37] +[visit_id typeidx#37] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeidx#37 : typeidx, typeidx : typeidx}(`ARRAY.NEW`_instr{typeidx#37}(typeidx)) = $free_typeidx(typeidx) +[check_dims] typeidx typeidx#39 +[visit_exp `ARRAY.NEW_DEFAULT`_instr{typeidx#39}(typeidx)] +[visit_exp typeidx#39] +[visit_id typeidx#39] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeidx#39 : typeidx, typeidx : typeidx}(`ARRAY.NEW_DEFAULT`_instr{typeidx#39}(typeidx)) = $free_typeidx(typeidx) +[check_dims] typeidx typeidx#41 u32 u32#6 +[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#41, u32#6}(typeidx, u32)] +[visit_exp typeidx#41] +[visit_id typeidx#41] +[visit_exp u32#6] +[visit_id u32#6] +[visit_exp (typeidx, u32)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp u32] +[visit_id u32] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeidx#41 : typeidx, u32#6 : u32, typeidx : typeidx, u32 : u32}(`ARRAY.NEW_FIXED`_instr{typeidx#41, u32#6}(typeidx, u32)) = $free_typeidx(typeidx) +[check_dims] dataidx dataidx#1 typeidx typeidx#43 +[visit_exp `ARRAY.NEW_DATA`_instr{typeidx#43, dataidx#1}(typeidx, dataidx)] +[visit_exp typeidx#43] +[visit_id typeidx#43] +[visit_exp dataidx#1] +[visit_id dataidx#1] +[visit_exp (typeidx, dataidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp dataidx] +[visit_id dataidx] +[visit_exp $free_typeidx(typeidx) +++ $free_dataidx(dataidx)] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp $free_dataidx(dataidx)] +[visit_exp dataidx] +[visit_id dataidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeidx#43 : typeidx, dataidx#1 : dataidx, typeidx : typeidx, dataidx : dataidx}(`ARRAY.NEW_DATA`_instr{typeidx#43, dataidx#1}(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) +[check_dims] elemidx elemidx#1 typeidx typeidx#45 +[visit_exp `ARRAY.NEW_ELEM`_instr{typeidx#45, elemidx#1}(typeidx, elemidx)] +[visit_exp typeidx#45] +[visit_id typeidx#45] +[visit_exp elemidx#1] +[visit_id elemidx#1] +[visit_exp (typeidx, elemidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp elemidx] +[visit_id elemidx] +[visit_exp $free_typeidx(typeidx) +++ $free_elemidx(elemidx)] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp $free_elemidx(elemidx)] +[visit_exp elemidx] +[visit_id elemidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeidx#45 : typeidx, elemidx#1 : elemidx, typeidx : typeidx, elemidx : elemidx}(`ARRAY.NEW_ELEM`_instr{typeidx#45, elemidx#1}(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) +[check_dims] sx sx?#5 typeidx typeidx#47 +[visit_exp `ARRAY.GET`_instr{`sx?#5`, typeidx#47}(sx?{sx <- `sx?`}, typeidx)] +[visit_exp `sx?#5`] +[visit_id sx?#5] +[visit_exp typeidx#47] +[visit_id typeidx#47] +[visit_exp (sx?{sx <- `sx?`}, typeidx)] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] no dims +[visit_id sx?] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`sx?#5` : sx?, typeidx#47 : typeidx, `sx?` : sx?, typeidx : typeidx}(`ARRAY.GET`_instr{`sx?#5`, typeidx#47}(sx?{sx <- `sx?`}, typeidx)) = $free_typeidx(typeidx) +[check_dims] typeidx typeidx#49 +[visit_exp `ARRAY.SET`_instr{typeidx#49}(typeidx)] +[visit_exp typeidx#49] +[visit_id typeidx#49] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeidx#49 : typeidx, typeidx : typeidx}(`ARRAY.SET`_instr{typeidx#49}(typeidx)) = $free_typeidx(typeidx) +[check_dims] dataidx*#30 elemidx*#30 funcidx*#30 globalidx*#30 labelidx*#32 localidx*#30 memidx*#30 tableidx*#30 typeidx*#30 +[visit_exp `ARRAY.LEN`_instr] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#30`} [], `FUNCS`{`funcidx*#30`} [], `GLOBALS`{`globalidx*#30`} [], `TABLES`{`tableidx*#30`} [], `MEMS`{`memidx*#30`} [], `ELEMS`{`elemidx*#30`} [], `DATAS`{`dataidx*#30`} [], `LOCALS`{`localidx*#30`} [], `LABELS`{`labelidx*#32`} []}] +[visit_exp `typeidx*#30`] +[visit_id typeidx*#30] +[visit_exp []] +[visit_exp `funcidx*#30`] +[visit_id funcidx*#30] +[visit_exp []] +[visit_exp `globalidx*#30`] +[visit_id globalidx*#30] +[visit_exp []] +[visit_exp `tableidx*#30`] +[visit_id tableidx*#30] +[visit_exp []] +[visit_exp `memidx*#30`] +[visit_id memidx*#30] +[visit_exp []] +[visit_exp `elemidx*#30`] +[visit_id elemidx*#30] +[visit_exp []] +[visit_exp `dataidx*#30`] +[visit_id dataidx*#30] +[visit_exp []] +[visit_exp `localidx*#30`] +[visit_id localidx*#30] +[visit_exp []] +[visit_exp `labelidx*#32`] +[visit_id labelidx*#32] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`typeidx*#30` : typeidx*, `funcidx*#30` : funcidx*, `globalidx*#30` : globalidx*, `tableidx*#30` : tableidx*, `memidx*#30` : memidx*, `elemidx*#30` : elemidx*, `dataidx*#30` : dataidx*, `localidx*#30` : localidx*, `labelidx*#32` : labelidx*}(`ARRAY.LEN`_instr) = {`TYPES`{`typeidx*#30`} [], `FUNCS`{`funcidx*#30`} [], `GLOBALS`{`globalidx*#30`} [], `TABLES`{`tableidx*#30`} [], `MEMS`{`memidx*#30`} [], `ELEMS`{`elemidx*#30`} [], `DATAS`{`dataidx*#30`} [], `LOCALS`{`localidx*#30`} [], `LABELS`{`labelidx*#32`} []} +[check_dims] typeidx typeidx#51 +[visit_exp `ARRAY.FILL`_instr{typeidx#51}(typeidx)] +[visit_exp typeidx#51] +[visit_id typeidx#51] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeidx#51 : typeidx, typeidx : typeidx}(`ARRAY.FILL`_instr{typeidx#51}(typeidx)) = $free_typeidx(typeidx) +[check_dims] typeidx#53 typeidx_1 typeidx_2 +[visit_exp `ARRAY.COPY`_instr{typeidx#53}(typeidx_1, typeidx_2)] +[visit_exp typeidx#53] +[visit_id typeidx#53] +[visit_exp (typeidx_1, typeidx_2)] +[visit_exp typeidx_1] +[visit_id typeidx_1] +[visit_exp typeidx_2] +[visit_id typeidx_2] +[visit_exp $free_typeidx(typeidx_1) +++ $free_typeidx(typeidx_2)] +[visit_exp $free_typeidx(typeidx_1)] +[visit_exp typeidx_1] +[visit_id typeidx_1] not free +[visit_exp $free_typeidx(typeidx_2)] +[visit_exp typeidx_2] +[visit_id typeidx_2] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeidx#53 : typeidx, typeidx_1 : typeidx, typeidx_2 : typeidx}(`ARRAY.COPY`_instr{typeidx#53}(typeidx_1, typeidx_2)) = $free_typeidx(typeidx_1) +++ $free_typeidx(typeidx_2) +[check_dims] dataidx dataidx#3 typeidx typeidx#56 +[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#56, dataidx#3}(typeidx, dataidx)] +[visit_exp typeidx#56] +[visit_id typeidx#56] +[visit_exp dataidx#3] +[visit_id dataidx#3] +[visit_exp (typeidx, dataidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp dataidx] +[visit_id dataidx] +[visit_exp $free_typeidx(typeidx) +++ $free_dataidx(dataidx)] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp $free_dataidx(dataidx)] +[visit_exp dataidx] +[visit_id dataidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeidx#56 : typeidx, dataidx#3 : dataidx, typeidx : typeidx, dataidx : dataidx}(`ARRAY.INIT_DATA`_instr{typeidx#56, dataidx#3}(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) +[check_dims] elemidx elemidx#3 typeidx typeidx#58 +[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#58, elemidx#3}(typeidx, elemidx)] +[visit_exp typeidx#58] +[visit_id typeidx#58] +[visit_exp elemidx#3] +[visit_id elemidx#3] +[visit_exp (typeidx, elemidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp elemidx] +[visit_id elemidx] +[visit_exp $free_typeidx(typeidx) +++ $free_elemidx(elemidx)] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp $free_elemidx(elemidx)] +[visit_exp elemidx] +[visit_id elemidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{typeidx#58 : typeidx, elemidx#3 : elemidx, typeidx : typeidx, elemidx : elemidx}(`ARRAY.INIT_ELEM`_instr{typeidx#58, elemidx#3}(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) +[check_dims] dataidx*#31 elemidx*#31 funcidx*#31 globalidx*#31 labelidx*#33 localidx*#31 memidx*#31 tableidx*#31 typeidx*#31 +[visit_exp `EXTERN.CONVERT_ANY`_instr] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#31`} [], `FUNCS`{`funcidx*#31`} [], `GLOBALS`{`globalidx*#31`} [], `TABLES`{`tableidx*#31`} [], `MEMS`{`memidx*#31`} [], `ELEMS`{`elemidx*#31`} [], `DATAS`{`dataidx*#31`} [], `LOCALS`{`localidx*#31`} [], `LABELS`{`labelidx*#33`} []}] +[visit_exp `typeidx*#31`] +[visit_id typeidx*#31] +[visit_exp []] +[visit_exp `funcidx*#31`] +[visit_id funcidx*#31] +[visit_exp []] +[visit_exp `globalidx*#31`] +[visit_id globalidx*#31] +[visit_exp []] +[visit_exp `tableidx*#31`] +[visit_id tableidx*#31] +[visit_exp []] +[visit_exp `memidx*#31`] +[visit_id memidx*#31] +[visit_exp []] +[visit_exp `elemidx*#31`] +[visit_id elemidx*#31] +[visit_exp []] +[visit_exp `dataidx*#31`] +[visit_id dataidx*#31] +[visit_exp []] +[visit_exp `localidx*#31`] +[visit_id localidx*#31] +[visit_exp []] +[visit_exp `labelidx*#33`] +[visit_id labelidx*#33] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`typeidx*#31` : typeidx*, `funcidx*#31` : funcidx*, `globalidx*#31` : globalidx*, `tableidx*#31` : tableidx*, `memidx*#31` : memidx*, `elemidx*#31` : elemidx*, `dataidx*#31` : dataidx*, `localidx*#31` : localidx*, `labelidx*#33` : labelidx*}(`EXTERN.CONVERT_ANY`_instr) = {`TYPES`{`typeidx*#31`} [], `FUNCS`{`funcidx*#31`} [], `GLOBALS`{`globalidx*#31`} [], `TABLES`{`tableidx*#31`} [], `MEMS`{`memidx*#31`} [], `ELEMS`{`elemidx*#31`} [], `DATAS`{`dataidx*#31`} [], `LOCALS`{`localidx*#31`} [], `LABELS`{`labelidx*#33`} []} +[check_dims] dataidx*#32 elemidx*#32 funcidx*#32 globalidx*#32 labelidx*#34 localidx*#32 memidx*#32 tableidx*#32 typeidx*#32 +[visit_exp `ANY.CONVERT_EXTERN`_instr] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#32`} [], `FUNCS`{`funcidx*#32`} [], `GLOBALS`{`globalidx*#32`} [], `TABLES`{`tableidx*#32`} [], `MEMS`{`memidx*#32`} [], `ELEMS`{`elemidx*#32`} [], `DATAS`{`dataidx*#32`} [], `LOCALS`{`localidx*#32`} [], `LABELS`{`labelidx*#34`} []}] +[visit_exp `typeidx*#32`] +[visit_id typeidx*#32] +[visit_exp []] +[visit_exp `funcidx*#32`] +[visit_id funcidx*#32] +[visit_exp []] +[visit_exp `globalidx*#32`] +[visit_id globalidx*#32] +[visit_exp []] +[visit_exp `tableidx*#32`] +[visit_id tableidx*#32] +[visit_exp []] +[visit_exp `memidx*#32`] +[visit_id memidx*#32] +[visit_exp []] +[visit_exp `elemidx*#32`] +[visit_id elemidx*#32] +[visit_exp []] +[visit_exp `dataidx*#32`] +[visit_id dataidx*#32] +[visit_exp []] +[visit_exp `localidx*#32`] +[visit_id localidx*#32] +[visit_exp []] +[visit_exp `labelidx*#34`] +[visit_id labelidx*#34] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`typeidx*#32` : typeidx*, `funcidx*#32` : funcidx*, `globalidx*#32` : globalidx*, `tableidx*#32` : tableidx*, `memidx*#32` : memidx*, `elemidx*#32` : elemidx*, `dataidx*#32` : dataidx*, `localidx*#32` : localidx*, `labelidx*#34` : labelidx*}(`ANY.CONVERT_EXTERN`_instr) = {`TYPES`{`typeidx*#32`} [], `FUNCS`{`funcidx*#32`} [], `GLOBALS`{`globalidx*#32`} [], `TABLES`{`tableidx*#32`} [], `MEMS`{`memidx*#32`} [], `ELEMS`{`elemidx*#32`} [], `DATAS`{`dataidx*#32`} [], `LOCALS`{`localidx*#32`} [], `LABELS`{`labelidx*#34`} []} +[check_dims] localidx localidx#1 +[visit_exp `LOCAL.GET`_instr{localidx#1}(localidx)] +[visit_exp localidx#1] +[visit_id localidx#1] +[visit_exp (localidx)] +[visit_exp localidx] +[visit_id localidx] +[visit_exp $free_localidx(localidx)] +[visit_exp localidx] +[visit_id localidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{localidx#1 : localidx, localidx : localidx}(`LOCAL.GET`_instr{localidx#1}(localidx)) = $free_localidx(localidx) +[check_dims] localidx localidx#3 +[visit_exp `LOCAL.SET`_instr{localidx#3}(localidx)] +[visit_exp localidx#3] +[visit_id localidx#3] +[visit_exp (localidx)] +[visit_exp localidx] +[visit_id localidx] +[visit_exp $free_localidx(localidx)] +[visit_exp localidx] +[visit_id localidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{localidx#3 : localidx, localidx : localidx}(`LOCAL.SET`_instr{localidx#3}(localidx)) = $free_localidx(localidx) +[check_dims] localidx localidx#5 +[visit_exp `LOCAL.TEE`_instr{localidx#5}(localidx)] +[visit_exp localidx#5] +[visit_id localidx#5] +[visit_exp (localidx)] +[visit_exp localidx] +[visit_id localidx] +[visit_exp $free_localidx(localidx)] +[visit_exp localidx] +[visit_id localidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{localidx#5 : localidx, localidx : localidx}(`LOCAL.TEE`_instr{localidx#5}(localidx)) = $free_localidx(localidx) +[check_dims] globalidx globalidx#5 +[visit_exp `GLOBAL.GET`_instr{globalidx#5}(globalidx)] +[visit_exp globalidx#5] +[visit_id globalidx#5] +[visit_exp (globalidx)] +[visit_exp globalidx] +[visit_id globalidx] +[visit_exp $free_globalidx(globalidx)] +[visit_exp globalidx] +[visit_id globalidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{globalidx#5 : globalidx, globalidx : globalidx}(`GLOBAL.GET`_instr{globalidx#5}(globalidx)) = $free_globalidx(globalidx) +[check_dims] globalidx globalidx#7 +[visit_exp `GLOBAL.SET`_instr{globalidx#7}(globalidx)] +[visit_exp globalidx#7] +[visit_id globalidx#7] +[visit_exp (globalidx)] +[visit_exp globalidx] +[visit_id globalidx] +[visit_exp $free_globalidx(globalidx)] +[visit_exp globalidx] +[visit_id globalidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{globalidx#7 : globalidx, globalidx : globalidx}(`GLOBAL.SET`_instr{globalidx#7}(globalidx)) = $free_globalidx(globalidx) +[check_dims] tableidx tableidx#9 +[visit_exp `TABLE.GET`_instr{tableidx#9}(tableidx)] +[visit_exp tableidx#9] +[visit_id tableidx#9] +[visit_exp (tableidx)] +[visit_exp tableidx] +[visit_id tableidx] +[visit_exp $free_tableidx(tableidx)] +[visit_exp tableidx] +[visit_id tableidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{tableidx#9 : tableidx, tableidx : tableidx}(`TABLE.GET`_instr{tableidx#9}(tableidx)) = $free_tableidx(tableidx) +[check_dims] tableidx tableidx#11 +[visit_exp `TABLE.SET`_instr{tableidx#11}(tableidx)] +[visit_exp tableidx#11] +[visit_id tableidx#11] +[visit_exp (tableidx)] +[visit_exp tableidx] +[visit_id tableidx] +[visit_exp $free_tableidx(tableidx)] +[visit_exp tableidx] +[visit_id tableidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{tableidx#11 : tableidx, tableidx : tableidx}(`TABLE.SET`_instr{tableidx#11}(tableidx)) = $free_tableidx(tableidx) +[check_dims] tableidx tableidx#13 +[visit_exp `TABLE.SIZE`_instr{tableidx#13}(tableidx)] +[visit_exp tableidx#13] +[visit_id tableidx#13] +[visit_exp (tableidx)] +[visit_exp tableidx] +[visit_id tableidx] +[visit_exp $free_tableidx(tableidx)] +[visit_exp tableidx] +[visit_id tableidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{tableidx#13 : tableidx, tableidx : tableidx}(`TABLE.SIZE`_instr{tableidx#13}(tableidx)) = $free_tableidx(tableidx) +[check_dims] tableidx tableidx#15 +[visit_exp `TABLE.GROW`_instr{tableidx#15}(tableidx)] +[visit_exp tableidx#15] +[visit_id tableidx#15] +[visit_exp (tableidx)] +[visit_exp tableidx] +[visit_id tableidx] +[visit_exp $free_tableidx(tableidx)] +[visit_exp tableidx] +[visit_id tableidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{tableidx#15 : tableidx, tableidx : tableidx}(`TABLE.GROW`_instr{tableidx#15}(tableidx)) = $free_tableidx(tableidx) +[check_dims] tableidx tableidx#17 +[visit_exp `TABLE.FILL`_instr{tableidx#17}(tableidx)] +[visit_exp tableidx#17] +[visit_id tableidx#17] +[visit_exp (tableidx)] +[visit_exp tableidx] +[visit_id tableidx] +[visit_exp $free_tableidx(tableidx)] +[visit_exp tableidx] +[visit_id tableidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{tableidx#17 : tableidx, tableidx : tableidx}(`TABLE.FILL`_instr{tableidx#17}(tableidx)) = $free_tableidx(tableidx) +[check_dims] tableidx#19 tableidx_1 tableidx_2 +[visit_exp `TABLE.COPY`_instr{tableidx#19}(tableidx_1, tableidx_2)] +[visit_exp tableidx#19] +[visit_id tableidx#19] +[visit_exp (tableidx_1, tableidx_2)] +[visit_exp tableidx_1] +[visit_id tableidx_1] +[visit_exp tableidx_2] +[visit_id tableidx_2] +[visit_exp $free_tableidx(tableidx_1) +++ $free_tableidx(tableidx_2)] +[visit_exp $free_tableidx(tableidx_1)] +[visit_exp tableidx_1] +[visit_id tableidx_1] not free +[visit_exp $free_tableidx(tableidx_2)] +[visit_exp tableidx_2] +[visit_id tableidx_2] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{tableidx#19 : tableidx, tableidx_1 : tableidx, tableidx_2 : tableidx}(`TABLE.COPY`_instr{tableidx#19}(tableidx_1, tableidx_2)) = $free_tableidx(tableidx_1) +++ $free_tableidx(tableidx_2) +[check_dims] elemidx elemidx#5 tableidx tableidx#22 +[visit_exp `TABLE.INIT`_instr{tableidx#22, elemidx#5}(tableidx, elemidx)] +[visit_exp tableidx#22] +[visit_id tableidx#22] +[visit_exp elemidx#5] +[visit_id elemidx#5] +[visit_exp (tableidx, elemidx)] +[visit_exp tableidx] +[visit_id tableidx] +[visit_exp elemidx] +[visit_id elemidx] +[visit_exp $free_tableidx(tableidx) +++ $free_elemidx(elemidx)] +[visit_exp $free_tableidx(tableidx)] +[visit_exp tableidx] +[visit_id tableidx] not free +[visit_exp $free_elemidx(elemidx)] +[visit_exp elemidx] +[visit_id elemidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{tableidx#22 : tableidx, elemidx#5 : elemidx, tableidx : tableidx, elemidx : elemidx}(`TABLE.INIT`_instr{tableidx#22, elemidx#5}(tableidx, elemidx)) = $free_tableidx(tableidx) +++ $free_elemidx(elemidx) +[check_dims] elemidx elemidx#7 +[visit_exp `ELEM.DROP`_instr{elemidx#7}(elemidx)] +[visit_exp elemidx#7] +[visit_id elemidx#7] +[visit_exp (elemidx)] +[visit_exp elemidx] +[visit_id elemidx] +[visit_exp $free_elemidx(elemidx)] +[visit_exp elemidx] +[visit_id elemidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{elemidx#7 : elemidx, elemidx : elemidx}(`ELEM.DROP`_instr{elemidx#7}(elemidx)) = $free_elemidx(elemidx) +[check_dims] loadop memarg memarg#1 memidx memidx#5 numtype numtype?#1 +[visit_exp `LOAD`_instr{`numtype?#1`, memidx#5, memarg#1}(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)] +[visit_exp `numtype?#1`] +[visit_id numtype?#1] +[visit_exp memidx#5] +[visit_id memidx#5] +[visit_exp memarg#1] +[visit_id memarg#1] +[visit_exp (numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp loadop?{loadop <- `loadop?`}] +[scope_enter loadop] +[visit_exp loadop] +[visit_id loadop] not free +[visit_id loadop] not free +[scope_exit loadop] +[visit_exp `loadop?`] +[visit_id loadop?] no dims +[visit_id loadop?] +[visit_exp memidx] +[visit_id memidx] +[visit_exp memarg] +[visit_id memarg] +[visit_exp $free_numtype(numtype) +++ $free_memidx(memidx)] +[visit_exp $free_numtype(numtype)] +[visit_exp numtype] +[visit_id numtype] not free +[visit_exp $free_memidx(memidx)] +[visit_exp memidx] +[visit_id memidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`numtype?#1` : numtype?, memidx#5 : memidx, memarg#1 : memarg, numtype : numtype, `loadop?` : loadop_(numtype)?, memidx : memidx, memarg : memarg}(`LOAD`_instr{`numtype?#1`, memidx#5, memarg#1}(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) +[check_dims] memarg memarg#3 memidx memidx#7 numtype numtype?#2 storeop +[visit_exp `STORE`_instr{`numtype?#2`, memidx#7, memarg#3}(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)] +[visit_exp `numtype?#2`] +[visit_id numtype?#2] +[visit_exp memidx#7] +[visit_id memidx#7] +[visit_exp memarg#3] +[visit_id memarg#3] +[visit_exp (numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp storeop?{storeop <- `storeop?`}] +[scope_enter storeop] +[visit_exp storeop] +[visit_id storeop] not free +[visit_id storeop] not free +[scope_exit storeop] +[visit_exp `storeop?`] +[visit_id storeop?] no dims +[visit_id storeop?] +[visit_exp memidx] +[visit_id memidx] +[visit_exp memarg] +[visit_id memarg] +[visit_exp $free_numtype(numtype) +++ $free_memidx(memidx)] +[visit_exp $free_numtype(numtype)] +[visit_exp numtype] +[visit_id numtype] not free +[visit_exp $free_memidx(memidx)] +[visit_exp memidx] +[visit_id memidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`numtype?#2` : numtype?, memidx#7 : memidx, memarg#3 : memarg, numtype : numtype, `storeop?` : storeop_(numtype)?, memidx : memidx, memarg : memarg}(`STORE`_instr{`numtype?#2`, memidx#7, memarg#3}(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) +[check_dims] memarg memarg#5 memidx memidx#9 vectype vectype?#1 vloadop +[visit_exp `VLOAD`_instr{`vectype?#1`, memidx#9, memarg#5}(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)] +[visit_exp `vectype?#1`] +[visit_id vectype?#1] +[visit_exp memidx#9] +[visit_id memidx#9] +[visit_exp memarg#5] +[visit_id memarg#5] +[visit_exp (vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp vloadop?{vloadop <- `vloadop?`}] +[scope_enter vloadop] +[visit_exp vloadop] +[visit_id vloadop] not free +[visit_id vloadop] not free +[scope_exit vloadop] +[visit_exp `vloadop?`] +[visit_id vloadop?] no dims +[visit_id vloadop?] +[visit_exp memidx] +[visit_id memidx] +[visit_exp memarg] +[visit_id memarg] +[visit_exp $free_vectype(vectype) +++ $free_memidx(memidx)] +[visit_exp $free_vectype(vectype)] +[visit_exp vectype] +[visit_id vectype] not free +[visit_exp $free_memidx(memidx)] +[visit_exp memidx] +[visit_id memidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{`vectype?#1` : vectype?, memidx#9 : memidx, memarg#5 : memarg, vectype : vectype, `vloadop?` : vloadop_(vectype)?, memidx : memidx, memarg : memarg}(`VLOAD`_instr{`vectype?#1`, memidx#9, memarg#5}(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) +[check_dims] laneidx laneidx#5 memarg memarg#7 memidx memidx#11 sz sz#1 vectype vectype#14 +[visit_exp `VLOAD_LANE`_instr{vectype#14, sz#1, memidx#11, memarg#7, laneidx#5}(vectype, sz, memidx, memarg, laneidx)] +[visit_exp vectype#14] +[visit_id vectype#14] +[visit_exp sz#1] +[visit_id sz#1] +[visit_exp memidx#11] +[visit_id memidx#11] +[visit_exp memarg#7] +[visit_id memarg#7] +[visit_exp laneidx#5] +[visit_id laneidx#5] +[visit_exp (vectype, sz, memidx, memarg, laneidx)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp sz] +[visit_id sz] +[visit_exp memidx] +[visit_id memidx] +[visit_exp memarg] +[visit_id memarg] +[visit_exp laneidx] +[visit_id laneidx] +[visit_exp $free_vectype(vectype) +++ $free_memidx(memidx)] +[visit_exp $free_vectype(vectype)] +[visit_exp vectype] +[visit_id vectype] not free +[visit_exp $free_memidx(memidx)] +[visit_exp memidx] +[visit_id memidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{vectype#14 : vectype, sz#1 : sz, memidx#11 : memidx, memarg#7 : memarg, laneidx#5 : laneidx, vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VLOAD_LANE`_instr{vectype#14, sz#1, memidx#11, memarg#7, laneidx#5}(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) +[check_dims] memarg memarg#9 memidx memidx#13 vectype vectype#16 +[visit_exp `VSTORE`_instr{vectype#16, memidx#13, memarg#9}(vectype, memidx, memarg)] +[visit_exp vectype#16] +[visit_id vectype#16] +[visit_exp memidx#13] +[visit_id memidx#13] +[visit_exp memarg#9] +[visit_id memarg#9] +[visit_exp (vectype, memidx, memarg)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp memidx] +[visit_id memidx] +[visit_exp memarg] +[visit_id memarg] +[visit_exp $free_vectype(vectype) +++ $free_memidx(memidx)] +[visit_exp $free_vectype(vectype)] +[visit_exp vectype] +[visit_id vectype] not free +[visit_exp $free_memidx(memidx)] +[visit_exp memidx] +[visit_id memidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{vectype#16 : vectype, memidx#13 : memidx, memarg#9 : memarg, vectype : vectype, memidx : memidx, memarg : memarg}(`VSTORE`_instr{vectype#16, memidx#13, memarg#9}(vectype, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) +[check_dims] laneidx laneidx#7 memarg memarg#11 memidx memidx#15 sz sz#3 vectype vectype#18 +[visit_exp `VSTORE_LANE`_instr{vectype#18, sz#3, memidx#15, memarg#11, laneidx#7}(vectype, sz, memidx, memarg, laneidx)] +[visit_exp vectype#18] +[visit_id vectype#18] +[visit_exp sz#3] +[visit_id sz#3] +[visit_exp memidx#15] +[visit_id memidx#15] +[visit_exp memarg#11] +[visit_id memarg#11] +[visit_exp laneidx#7] +[visit_id laneidx#7] +[visit_exp (vectype, sz, memidx, memarg, laneidx)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp sz] +[visit_id sz] +[visit_exp memidx] +[visit_id memidx] +[visit_exp memarg] +[visit_id memarg] +[visit_exp laneidx] +[visit_id laneidx] +[visit_exp $free_vectype(vectype) +++ $free_memidx(memidx)] +[visit_exp $free_vectype(vectype)] +[visit_exp vectype] +[visit_id vectype] not free +[visit_exp $free_memidx(memidx)] +[visit_exp memidx] +[visit_id memidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{vectype#18 : vectype, sz#3 : sz, memidx#15 : memidx, memarg#11 : memarg, laneidx#7 : laneidx, vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VSTORE_LANE`_instr{vectype#18, sz#3, memidx#15, memarg#11, laneidx#7}(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) +[check_dims] memidx memidx#17 +[visit_exp `MEMORY.SIZE`_instr{memidx#17}(memidx)] +[visit_exp memidx#17] +[visit_id memidx#17] +[visit_exp (memidx)] +[visit_exp memidx] +[visit_id memidx] +[visit_exp $free_memidx(memidx)] +[visit_exp memidx] +[visit_id memidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{memidx#17 : memidx, memidx : memidx}(`MEMORY.SIZE`_instr{memidx#17}(memidx)) = $free_memidx(memidx) +[check_dims] memidx memidx#19 +[visit_exp `MEMORY.GROW`_instr{memidx#19}(memidx)] +[visit_exp memidx#19] +[visit_id memidx#19] +[visit_exp (memidx)] +[visit_exp memidx] +[visit_id memidx] +[visit_exp $free_memidx(memidx)] +[visit_exp memidx] +[visit_id memidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{memidx#19 : memidx, memidx : memidx}(`MEMORY.GROW`_instr{memidx#19}(memidx)) = $free_memidx(memidx) +[check_dims] memidx memidx#21 +[visit_exp `MEMORY.FILL`_instr{memidx#21}(memidx)] +[visit_exp memidx#21] +[visit_id memidx#21] +[visit_exp (memidx)] +[visit_exp memidx] +[visit_id memidx] +[visit_exp $free_memidx(memidx)] +[visit_exp memidx] +[visit_id memidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{memidx#21 : memidx, memidx : memidx}(`MEMORY.FILL`_instr{memidx#21}(memidx)) = $free_memidx(memidx) +[check_dims] memidx#23 memidx_1 memidx_2 +[visit_exp `MEMORY.COPY`_instr{memidx#23}(memidx_1, memidx_2)] +[visit_exp memidx#23] +[visit_id memidx#23] +[visit_exp (memidx_1, memidx_2)] +[visit_exp memidx_1] +[visit_id memidx_1] +[visit_exp memidx_2] +[visit_id memidx_2] +[visit_exp $free_memidx(memidx_1) +++ $free_memidx(memidx_2)] +[visit_exp $free_memidx(memidx_1)] +[visit_exp memidx_1] +[visit_id memidx_1] not free +[visit_exp $free_memidx(memidx_2)] +[visit_exp memidx_2] +[visit_id memidx_2] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{memidx#23 : memidx, memidx_1 : memidx, memidx_2 : memidx}(`MEMORY.COPY`_instr{memidx#23}(memidx_1, memidx_2)) = $free_memidx(memidx_1) +++ $free_memidx(memidx_2) +[check_dims] dataidx dataidx#5 memidx memidx#26 +[visit_exp `MEMORY.INIT`_instr{memidx#26, dataidx#5}(memidx, dataidx)] +[visit_exp memidx#26] +[visit_id memidx#26] +[visit_exp dataidx#5] +[visit_id dataidx#5] +[visit_exp (memidx, dataidx)] +[visit_exp memidx] +[visit_id memidx] +[visit_exp dataidx] +[visit_id dataidx] +[visit_exp $free_memidx(memidx) +++ $free_dataidx(dataidx)] +[visit_exp $free_memidx(memidx)] +[visit_exp memidx] +[visit_id memidx] not free +[visit_exp $free_dataidx(dataidx)] +[visit_exp dataidx] +[visit_id dataidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{memidx#26 : memidx, dataidx#5 : dataidx, memidx : memidx, dataidx : dataidx}(`MEMORY.INIT`_instr{memidx#26, dataidx#5}(memidx, dataidx)) = $free_memidx(memidx) +++ $free_dataidx(dataidx) +[check_dims] dataidx dataidx#7 +[visit_exp `DATA.DROP`_instr{dataidx#7}(dataidx)] +[visit_exp dataidx#7] +[visit_id dataidx#7] +[visit_exp (dataidx)] +[visit_exp dataidx] +[visit_id dataidx] +[visit_exp $free_dataidx(dataidx)] +[visit_exp dataidx] +[visit_id dataidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_instr{dataidx#7 : dataidx, dataidx : dataidx}(`DATA.DROP`_instr{dataidx#7}(dataidx)) = $free_dataidx(dataidx) +[check_dims] _ +DecD shift_labelidxs(labelidx*) : labelidx* +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $shift_labelidxs([]) = [] +[check_dims] i#3333 labelidx' +[visit_exp [`%`_labelidx{i#3333}(0)] ++ labelidx'*{labelidx' <- `labelidx'*`}] +[visit_exp [`%`_labelidx{i#3333}(0)]] +[visit_exp `%`_labelidx{i#3333}(0)] +[visit_exp i#3333] +[visit_id i#3333] +[visit_exp (0)] +[visit_exp 0] +[visit_exp labelidx'*{labelidx' <- `labelidx'*`}] +[scope_enter labelidx'] +[visit_exp labelidx'] +[visit_id labelidx'] not free +[visit_id labelidx'] not free +[scope_exit labelidx'] +[visit_exp `labelidx'*`] +[visit_id labelidx'*] no dims +[visit_id labelidx'*] +[visit_exp $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`})] +[visit_exp labelidx'*{labelidx' <- `labelidx'*`}] +[scope_enter labelidx'] +[visit_exp labelidx'] +[visit_id labelidx'] not free +[visit_id labelidx'] not free +[scope_exit labelidx'] +[visit_exp `labelidx'*`] +[visit_id labelidx'*] not free +[visit_id labelidx'*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $shift_labelidxs{i#3333 : nat, `labelidx'*` : labelidx*}([`%`_labelidx{i#3333}(0)] ++ labelidx'*{labelidx' <- `labelidx'*`}) = $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) +[check_dims] i#3547 i#3557 labelidx labelidx' +[visit_exp [labelidx] ++ labelidx'*{labelidx' <- `labelidx'*`}] +[visit_exp [labelidx]] +[visit_exp labelidx] +[visit_id labelidx] +[visit_exp labelidx'*{labelidx' <- `labelidx'*`}] +[scope_enter labelidx'] +[visit_exp labelidx'] +[visit_id labelidx'] not free +[visit_id labelidx'] not free +[scope_exit labelidx'] +[visit_exp `labelidx'*`] +[visit_id labelidx'*] no dims +[visit_id labelidx'*] +[visit_exp [`%`_labelidx{i#3557}((((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] ++ $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`})] +[visit_exp [`%`_labelidx{i#3557}((((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))]] +[visit_exp `%`_labelidx{i#3557}((((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#3557] +[visit_id i#3557] +[visit_exp ((((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int))] +[visit_exp (labelidx!`%`_labelidx{i#3547}.0 : nat <:> int)] +[visit_exp labelidx!`%`_labelidx{i#3547}.0] +[visit_exp labelidx!`%`_labelidx{i#3547}] +[visit_exp labelidx] +[visit_id labelidx] not free +[visit_exp i#3547] +[visit_id i#3547] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`})] +[visit_exp labelidx'*{labelidx' <- `labelidx'*`}] +[scope_enter labelidx'] +[visit_exp labelidx'] +[visit_id labelidx'] not free +[visit_id labelidx'] not free +[scope_exit labelidx'] +[visit_exp `labelidx'*`] +[visit_id labelidx'*] not free +[visit_id labelidx'*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $shift_labelidxs{labelidx : labelidx, `labelidx'*` : labelidx*, i#3557 : nat, i#3547 : nat}([labelidx] ++ labelidx'*{labelidx' <- `labelidx'*`}) = [`%`_labelidx{i#3557}((((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] ++ $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) +[check_dims] free instr labelidx*#35 labelidx*#44 +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp free[`LABELS`_free{`labelidx*#35`} = $shift_labelidxs(free.`LABELS`_free{`labelidx*#44`})]] +[visit_exp free] +[visit_id free] +[visit_exp `labelidx*#35`] +[visit_id labelidx*#35] +[visit_exp $shift_labelidxs(free.`LABELS`_free{`labelidx*#44`})] +[visit_exp free.`LABELS`_free{`labelidx*#44`}] +[visit_exp free] +[visit_id free] not free +[visit_exp `labelidx*#44`] +[visit_id labelidx*#44] +[visit_exp (free = $free_list($free_instr(instr)*{instr <- `instr*`}))] +[visit_exp free] +[visit_id free] not free +[visit_exp $free_list($free_instr(instr)*{instr <- `instr*`})] +[visit_exp $free_instr(instr)*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp $free_instr(instr)] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_block{`instr*` : instr*, free : free, `labelidx*#35` : labelidx*, `labelidx*#44` : labelidx*}(instr*{instr <- `instr*`}) = free[`LABELS`_free{`labelidx*#35`} = $shift_labelidxs(free.`LABELS`_free{`labelidx*#44`})] + -- if (free = $free_list($free_instr(instr)*{instr <- `instr*`})) +[check_dims] instr +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp $free_list($free_instr(instr)*{instr <- `instr*`})] +[visit_exp $free_instr(instr)*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp $free_instr(instr)] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec + def $free_expr{`instr*` : instr*}(instr*{instr <- `instr*`}) = $free_list($free_instr(instr)*{instr <- `instr*`}) +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableidx] no dims +[visit_id tableidx] +[visit_id expr] no dims +[visit_id expr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memidx] no dims +[visit_id memidx] +[visit_id expr] no dims +[visit_id expr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id rectype] no dims +[visit_id rectype] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tagtype] no dims +[visit_id tagtype] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id globaltype] no dims +[visit_id globaltype] +[visit_id expr] no dims +[visit_id expr] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memtype] no dims +[visit_id memtype] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tabletype] no dims +[visit_id tabletype] +[visit_id expr] no dims +[visit_id expr] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id byte*] no dims +[visit_id byte*] +[visit_id datamode] no dims +[visit_id datamode] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id valtype] no dims +[visit_id valtype] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +[visit_id local*] no dims +[visit_id local*] +[visit_id expr] no dims +[visit_id expr] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id reftype] no dims +[visit_id reftype] +[visit_id expr*] no dims +[visit_id expr*] +[visit_id elemmode] no dims +[visit_id elemmode] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id funcidx] no dims +[visit_id funcidx] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name] no dims +[visit_id name] +[visit_id name] not free +[visit_id name] no dims +[visit_id externtype] no dims +[visit_id externtype] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name] no dims +[visit_id name] +[visit_id externidx] no dims +[visit_id externidx] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id type*] no dims +[visit_id type*] +[visit_id import*] no dims +[visit_id import*] +[visit_id tag*] no dims +[visit_id tag*] +[visit_id global*] no dims +[visit_id global*] +[visit_id mem*] no dims +[visit_id mem*] +[visit_id table*] no dims +[visit_id table*] +[visit_id func*] no dims +[visit_id func*] +[visit_id data*] no dims +[visit_id data*] +[visit_id elem*] no dims +[visit_id elem*] +[visit_id start?] no dims +[visit_id start?] +[visit_id export*] no dims +[visit_id export*] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] type +DecD free_type(type : type) : free +[visit_id type] not free +[check_dims] tag +DecD free_tag(tag : tag) : free +[visit_id tag] not free +[check_dims] global +DecD free_global(global : global) : free +[visit_id global] not free +[check_dims] mem +DecD free_mem(mem : mem) : free +[visit_id mem] not free +[check_dims] table +DecD free_table(table : table) : free +[visit_id table] not free +[check_dims] local +DecD free_local(local : local) : free +[visit_id local] not free +[check_dims] func +DecD free_func(func : func) : free +[visit_id func] not free +[check_dims] data +DecD free_data(data : data) : free +[visit_id data] not free +[check_dims] elem +DecD free_elem(elem : elem) : free +[visit_id elem] not free +[check_dims] datamode +DecD free_datamode(datamode : datamode) : free +[visit_id datamode] not free +[check_dims] elemmode +DecD free_elemmode(elemmode : elemmode) : free +[visit_id elemmode] not free +[check_dims] start +DecD free_start(start : start) : free +[visit_id start] not free +[check_dims] import +DecD free_import(import : import) : free +[visit_id import] not free +[check_dims] export +DecD free_export(export : export) : free +[visit_id export] not free +[check_dims] module +DecD free_module(module : module) : free +[visit_id module] not free +[check_dims] rectype rectype#265 +[visit_exp `TYPE`_type{rectype#265}(rectype)] +[visit_exp rectype#265] +[visit_id rectype#265] +[visit_exp (rectype)] +[visit_exp rectype] +[visit_id rectype] +[visit_exp $free_rectype(rectype)] +[visit_exp rectype] +[visit_id rectype] not free +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_type{rectype#265 : rectype, rectype : rectype}(`TYPE`_type{rectype#265}(rectype)) = $free_rectype(rectype) +[check_dims] tagtype tagtype#19 +[visit_exp `TAG`_tag{tagtype#19}(tagtype)] +[visit_exp tagtype#19] +[visit_id tagtype#19] +[visit_exp (tagtype)] +[visit_exp tagtype] +[visit_id tagtype] +[visit_exp $free_tagtype(tagtype)] +[visit_exp tagtype] +[visit_id tagtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_tag{tagtype#19 : tagtype, tagtype : tagtype}(`TAG`_tag{tagtype#19}(tagtype)) = $free_tagtype(tagtype) +[check_dims] expr expr#11 globaltype globaltype#19 +[visit_exp `GLOBAL`_global{globaltype#19, expr#11}(globaltype, expr)] +[visit_exp globaltype#19] +[visit_id globaltype#19] +[visit_exp expr#11] +[visit_id expr#11] +[visit_exp (globaltype, expr)] +[visit_exp globaltype] +[visit_id globaltype] +[visit_exp expr] +[visit_id expr] +[visit_exp $free_globaltype(globaltype) +++ $free_expr(expr)] +[visit_exp $free_globaltype(globaltype)] +[visit_exp globaltype] +[visit_id globaltype] not free +[visit_exp $free_expr(expr)] +[visit_exp expr] +[visit_id expr] not free +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_global{globaltype#19 : globaltype, expr#11 : expr, globaltype : globaltype, expr : expr}(`GLOBAL`_global{globaltype#19, expr#11}(globaltype, expr)) = $free_globaltype(globaltype) +++ $free_expr(expr) +[check_dims] memtype memtype#19 +[visit_exp `MEMORY`_mem{memtype#19}(memtype)] +[visit_exp memtype#19] +[visit_id memtype#19] +[visit_exp (memtype)] +[visit_exp memtype] +[visit_id memtype] +[visit_exp $free_memtype(memtype)] +[visit_exp memtype] +[visit_id memtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_mem{memtype#19 : memtype, memtype : memtype}(`MEMORY`_mem{memtype#19}(memtype)) = $free_memtype(memtype) +[check_dims] expr expr#23 tabletype tabletype#19 +[visit_exp `TABLE`_table{tabletype#19, expr#23}(tabletype, expr)] +[visit_exp tabletype#19] +[visit_id tabletype#19] +[visit_exp expr#23] +[visit_id expr#23] +[visit_exp (tabletype, expr)] +[visit_exp tabletype] +[visit_id tabletype] +[visit_exp expr] +[visit_id expr] +[visit_exp $free_tabletype(tabletype) +++ $free_expr(expr)] +[visit_exp $free_tabletype(tabletype)] +[visit_exp tabletype] +[visit_id tabletype] not free +[visit_exp $free_expr(expr)] +[visit_exp expr] +[visit_id expr] not free +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_table{tabletype#19 : tabletype, expr#23 : expr, tabletype : tabletype, expr : expr}(`TABLE`_table{tabletype#19, expr#23}(tabletype, expr)) = $free_tabletype(tabletype) +++ $free_expr(expr) +[check_dims] t valtype#163 +[visit_exp `LOCAL`_local{valtype#163}(t)] +[visit_exp valtype#163] +[visit_id valtype#163] +[visit_exp (t)] +[visit_exp t] +[visit_id t] +[visit_exp $free_valtype(t)] +[visit_exp t] +[visit_id t] not free +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_local{valtype#163 : valtype, t : valtype}(`LOCAL`_local{valtype#163}(t)) = $free_valtype(t) +[check_dims] expr expr#35 local local*#11 localidx*#33 typeidx typeidx#70 +[visit_exp `FUNC`_func{typeidx#70, `local*#11`, expr#35}(typeidx, local*{local <- `local*`}, expr)] +[visit_exp typeidx#70] +[visit_id typeidx#70] +[visit_exp `local*#11`] +[visit_id local*#11] +[visit_exp expr#35] +[visit_id expr#35] +[visit_exp (typeidx, local*{local <- `local*`}, expr)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp local*{local <- `local*`}] +[scope_enter local] +[visit_exp local] +[visit_id local] not free +[visit_id local] not free +[scope_exit local] +[visit_exp `local*`] +[visit_id local*] no dims +[visit_id local*] +[visit_exp expr] +[visit_id expr] +[visit_exp $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[`LOCALS`_free{`localidx*#33`} = []]] +[visit_exp $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`})] +[visit_exp $free_typeidx(typeidx)] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp $free_list($free_local(local)*{local <- `local*`})] +[visit_exp $free_local(local)*{local <- `local*`}] +[scope_enter local] +[visit_exp $free_local(local)] +[visit_exp local] +[visit_id local] not free +[visit_id local] not free +[scope_exit local] +[visit_exp `local*`] +[visit_id local*] not free +[visit_id local*] no dims +[visit_exp $free_block(expr)[`LOCALS`_free{`localidx*#33`} = []]] +[visit_exp $free_block(expr)] +[visit_exp expr] +[visit_id expr] not free +[visit_exp `localidx*#33`] +[visit_id localidx*#33] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_func{typeidx#70 : typeidx, `local*#11` : local*, expr#35 : expr, typeidx : typeidx, `local*` : local*, expr : expr, `localidx*#33` : localidx*}(`FUNC`_func{typeidx#70, `local*#11`, expr#35}(typeidx, local*{local <- `local*`}, expr)) = $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[`LOCALS`_free{`localidx*#33`} = []] +[check_dims] byte byte*#11 datamode datamode#11 +[visit_exp `DATA`_data{`byte*#11`, datamode#11}(byte*{byte <- `byte*`}, datamode)] +[visit_exp `byte*#11`] +[visit_id byte*#11] +[visit_exp datamode#11] +[visit_id datamode#11] +[visit_exp (byte*{byte <- `byte*`}, datamode)] +[visit_exp byte*{byte <- `byte*`}] +[scope_enter byte] +[visit_exp byte] +[visit_id byte] not free +[visit_id byte] not free +[scope_exit byte] +[visit_exp `byte*`] +[visit_id byte*] no dims +[visit_id byte*] +[visit_exp datamode] +[visit_id datamode] +[visit_exp $free_datamode(datamode)] +[visit_exp datamode] +[visit_id datamode] not free +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_data{`byte*#11` : byte*, datamode#11 : datamode, `byte*` : byte*, datamode : datamode}(`DATA`_data{`byte*#11`, datamode#11}(byte*{byte <- `byte*`}, datamode)) = $free_datamode(datamode) +[check_dims] elemmode elemmode#11 expr expr*#11 reftype reftype#157 +[visit_exp `ELEM`_elem{reftype#157, `expr*#11`, elemmode#11}(reftype, expr*{expr <- `expr*`}, elemmode)] +[visit_exp reftype#157] +[visit_id reftype#157] +[visit_exp `expr*#11`] +[visit_id expr*#11] +[visit_exp elemmode#11] +[visit_id elemmode#11] +[visit_exp (reftype, expr*{expr <- `expr*`}, elemmode)] +[visit_exp reftype] +[visit_id reftype] +[visit_exp expr*{expr <- `expr*`}] +[scope_enter expr] +[visit_exp expr] +[visit_id expr] not free +[visit_id expr] not free +[scope_exit expr] +[visit_exp `expr*`] +[visit_id expr*] no dims +[visit_id expr*] +[visit_exp elemmode] +[visit_id elemmode] +[visit_exp $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`}) +++ $free_elemmode(elemmode)] +[visit_exp $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`})] +[visit_exp $free_reftype(reftype)] +[visit_exp reftype] +[visit_id reftype] not free +[visit_exp $free_list($free_expr(expr)*{expr <- `expr*`})] +[visit_exp $free_expr(expr)*{expr <- `expr*`}] +[scope_enter expr] +[visit_exp $free_expr(expr)] +[visit_exp expr] +[visit_id expr] not free +[visit_id expr] not free +[scope_exit expr] +[visit_exp `expr*`] +[visit_id expr*] not free +[visit_id expr*] no dims +[visit_exp $free_elemmode(elemmode)] +[visit_exp elemmode] +[visit_id elemmode] not free +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_elem{reftype#157 : reftype, `expr*#11` : expr*, elemmode#11 : elemmode, reftype : reftype, `expr*` : expr*, elemmode : elemmode}(`ELEM`_elem{reftype#157, `expr*#11`, elemmode#11}(reftype, expr*{expr <- `expr*`}, elemmode)) = $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`}) +++ $free_elemmode(elemmode) +[check_dims] expr expr#37 tableidx tableidx#24 +[visit_exp `ACTIVE`_elemmode{tableidx#24, expr#37}(tableidx, expr)] +[visit_exp tableidx#24] +[visit_id tableidx#24] +[visit_exp expr#37] +[visit_id expr#37] +[visit_exp (tableidx, expr)] +[visit_exp tableidx] +[visit_id tableidx] +[visit_exp expr] +[visit_id expr] +[visit_exp $free_tableidx(tableidx) +++ $free_expr(expr)] +[visit_exp $free_tableidx(tableidx)] +[visit_exp tableidx] +[visit_id tableidx] not free +[visit_exp $free_expr(expr)] +[visit_exp expr] +[visit_id expr] not free +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_elemmode{tableidx#24 : tableidx, expr#37 : expr, tableidx : tableidx, expr : expr}(`ACTIVE`_elemmode{tableidx#24, expr#37}(tableidx, expr)) = $free_tableidx(tableidx) +++ $free_expr(expr) +[check_dims] dataidx*#33 elemidx*#33 funcidx*#33 globalidx*#33 labelidx*#45 localidx*#34 memidx*#33 tableidx*#33 typeidx*#33 +[visit_exp `PASSIVE`_elemmode] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#33`} [], `FUNCS`{`funcidx*#33`} [], `GLOBALS`{`globalidx*#33`} [], `TABLES`{`tableidx*#33`} [], `MEMS`{`memidx*#33`} [], `ELEMS`{`elemidx*#33`} [], `DATAS`{`dataidx*#33`} [], `LOCALS`{`localidx*#34`} [], `LABELS`{`labelidx*#45`} []}] +[visit_exp `typeidx*#33`] +[visit_id typeidx*#33] +[visit_exp []] +[visit_exp `funcidx*#33`] +[visit_id funcidx*#33] +[visit_exp []] +[visit_exp `globalidx*#33`] +[visit_id globalidx*#33] +[visit_exp []] +[visit_exp `tableidx*#33`] +[visit_id tableidx*#33] +[visit_exp []] +[visit_exp `memidx*#33`] +[visit_id memidx*#33] +[visit_exp []] +[visit_exp `elemidx*#33`] +[visit_id elemidx*#33] +[visit_exp []] +[visit_exp `dataidx*#33`] +[visit_id dataidx*#33] +[visit_exp []] +[visit_exp `localidx*#34`] +[visit_id localidx*#34] +[visit_exp []] +[visit_exp `labelidx*#45`] +[visit_id labelidx*#45] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_elemmode{`typeidx*#33` : typeidx*, `funcidx*#33` : funcidx*, `globalidx*#33` : globalidx*, `tableidx*#33` : tableidx*, `memidx*#33` : memidx*, `elemidx*#33` : elemidx*, `dataidx*#33` : dataidx*, `localidx*#34` : localidx*, `labelidx*#45` : labelidx*}(`PASSIVE`_elemmode) = {`TYPES`{`typeidx*#33`} [], `FUNCS`{`funcidx*#33`} [], `GLOBALS`{`globalidx*#33`} [], `TABLES`{`tableidx*#33`} [], `MEMS`{`memidx*#33`} [], `ELEMS`{`elemidx*#33`} [], `DATAS`{`dataidx*#33`} [], `LOCALS`{`localidx*#34`} [], `LABELS`{`labelidx*#45`} []} +[check_dims] dataidx*#34 elemidx*#34 funcidx*#34 globalidx*#34 labelidx*#46 localidx*#35 memidx*#34 tableidx*#34 typeidx*#34 +[visit_exp `DECLARE`_elemmode] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#34`} [], `FUNCS`{`funcidx*#34`} [], `GLOBALS`{`globalidx*#34`} [], `TABLES`{`tableidx*#34`} [], `MEMS`{`memidx*#34`} [], `ELEMS`{`elemidx*#34`} [], `DATAS`{`dataidx*#34`} [], `LOCALS`{`localidx*#35`} [], `LABELS`{`labelidx*#46`} []}] +[visit_exp `typeidx*#34`] +[visit_id typeidx*#34] +[visit_exp []] +[visit_exp `funcidx*#34`] +[visit_id funcidx*#34] +[visit_exp []] +[visit_exp `globalidx*#34`] +[visit_id globalidx*#34] +[visit_exp []] +[visit_exp `tableidx*#34`] +[visit_id tableidx*#34] +[visit_exp []] +[visit_exp `memidx*#34`] +[visit_id memidx*#34] +[visit_exp []] +[visit_exp `elemidx*#34`] +[visit_id elemidx*#34] +[visit_exp []] +[visit_exp `dataidx*#34`] +[visit_id dataidx*#34] +[visit_exp []] +[visit_exp `localidx*#35`] +[visit_id localidx*#35] +[visit_exp []] +[visit_exp `labelidx*#46`] +[visit_id labelidx*#46] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_elemmode{`typeidx*#34` : typeidx*, `funcidx*#34` : funcidx*, `globalidx*#34` : globalidx*, `tableidx*#34` : tableidx*, `memidx*#34` : memidx*, `elemidx*#34` : elemidx*, `dataidx*#34` : dataidx*, `localidx*#35` : localidx*, `labelidx*#46` : labelidx*}(`DECLARE`_elemmode) = {`TYPES`{`typeidx*#34`} [], `FUNCS`{`funcidx*#34`} [], `GLOBALS`{`globalidx*#34`} [], `TABLES`{`tableidx*#34`} [], `MEMS`{`memidx*#34`} [], `ELEMS`{`elemidx*#34`} [], `DATAS`{`dataidx*#34`} [], `LOCALS`{`localidx*#35`} [], `LABELS`{`labelidx*#46`} []} +[check_dims] expr expr#39 memidx memidx#28 +[visit_exp `ACTIVE`_datamode{memidx#28, expr#39}(memidx, expr)] +[visit_exp memidx#28] +[visit_id memidx#28] +[visit_exp expr#39] +[visit_id expr#39] +[visit_exp (memidx, expr)] +[visit_exp memidx] +[visit_id memidx] +[visit_exp expr] +[visit_id expr] +[visit_exp $free_memidx(memidx) +++ $free_expr(expr)] +[visit_exp $free_memidx(memidx)] +[visit_exp memidx] +[visit_id memidx] not free +[visit_exp $free_expr(expr)] +[visit_exp expr] +[visit_id expr] not free +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_datamode{memidx#28 : memidx, expr#39 : expr, memidx : memidx, expr : expr}(`ACTIVE`_datamode{memidx#28, expr#39}(memidx, expr)) = $free_memidx(memidx) +++ $free_expr(expr) +[check_dims] dataidx*#35 elemidx*#35 funcidx*#35 globalidx*#35 labelidx*#47 localidx*#36 memidx*#35 tableidx*#35 typeidx*#35 +[visit_exp `PASSIVE`_datamode] +[visit_exp ()] +[visit_exp {`TYPES`{`typeidx*#35`} [], `FUNCS`{`funcidx*#35`} [], `GLOBALS`{`globalidx*#35`} [], `TABLES`{`tableidx*#35`} [], `MEMS`{`memidx*#35`} [], `ELEMS`{`elemidx*#35`} [], `DATAS`{`dataidx*#35`} [], `LOCALS`{`localidx*#36`} [], `LABELS`{`labelidx*#47`} []}] +[visit_exp `typeidx*#35`] +[visit_id typeidx*#35] +[visit_exp []] +[visit_exp `funcidx*#35`] +[visit_id funcidx*#35] +[visit_exp []] +[visit_exp `globalidx*#35`] +[visit_id globalidx*#35] +[visit_exp []] +[visit_exp `tableidx*#35`] +[visit_id tableidx*#35] +[visit_exp []] +[visit_exp `memidx*#35`] +[visit_id memidx*#35] +[visit_exp []] +[visit_exp `elemidx*#35`] +[visit_id elemidx*#35] +[visit_exp []] +[visit_exp `dataidx*#35`] +[visit_id dataidx*#35] +[visit_exp []] +[visit_exp `localidx*#36`] +[visit_id localidx*#36] +[visit_exp []] +[visit_exp `labelidx*#47`] +[visit_id labelidx*#47] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_datamode{`typeidx*#35` : typeidx*, `funcidx*#35` : funcidx*, `globalidx*#35` : globalidx*, `tableidx*#35` : tableidx*, `memidx*#35` : memidx*, `elemidx*#35` : elemidx*, `dataidx*#35` : dataidx*, `localidx*#36` : localidx*, `labelidx*#47` : labelidx*}(`PASSIVE`_datamode) = {`TYPES`{`typeidx*#35`} [], `FUNCS`{`funcidx*#35`} [], `GLOBALS`{`globalidx*#35`} [], `TABLES`{`tableidx*#35`} [], `MEMS`{`memidx*#35`} [], `ELEMS`{`elemidx*#35`} [], `DATAS`{`dataidx*#35`} [], `LOCALS`{`localidx*#36`} [], `LABELS`{`labelidx*#47`} []} +[check_dims] funcidx funcidx#21 +[visit_exp `START`_start{funcidx#21}(funcidx)] +[visit_exp funcidx#21] +[visit_id funcidx#21] +[visit_exp (funcidx)] +[visit_exp funcidx] +[visit_id funcidx] +[visit_exp $free_funcidx(funcidx)] +[visit_exp funcidx] +[visit_id funcidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_start{funcidx#21 : funcidx, funcidx : funcidx}(`START`_start{funcidx#21}(funcidx)) = $free_funcidx(funcidx) +[check_dims] externtype externtype#11 name#18 name_1 name_2 +[visit_exp `IMPORT`_import{name#18, externtype#11}(name_1, name_2, externtype)] +[visit_exp name#18] +[visit_id name#18] +[visit_exp externtype#11] +[visit_id externtype#11] +[visit_exp (name_1, name_2, externtype)] +[visit_exp name_1] +[visit_id name_1] +[visit_exp name_2] +[visit_id name_2] +[visit_exp externtype] +[visit_id externtype] +[visit_exp $free_externtype(externtype)] +[visit_exp externtype] +[visit_id externtype] not free +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_import{name#18 : name, externtype#11 : externtype, name_1 : name, name_2 : name, externtype : externtype}(`IMPORT`_import{name#18, externtype#11}(name_1, name_2, externtype)) = $free_externtype(externtype) +[check_dims] externidx externidx#11 name name#31 +[visit_exp `EXPORT`_export{name#31, externidx#11}(name, externidx)] +[visit_exp name#31] +[visit_id name#31] +[visit_exp externidx#11] +[visit_id externidx#11] +[visit_exp (name, externidx)] +[visit_exp name] +[visit_id name] +[visit_exp externidx] +[visit_id externidx] +[visit_exp $free_externidx(externidx)] +[visit_exp externidx] +[visit_id externidx] not free +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_export{name#31 : name, externidx#11 : externidx, name : name, externidx : externidx}(`EXPORT`_export{name#31, externidx#11}(name, externidx)) = $free_externidx(externidx) +[check_dims] data data*#11 elem elem*#11 export export*#11 func func*#11 global global*#11 import import*#11 mem mem*#11 start start?#11 table table*#11 tag tag*#11 type type*#11 +[visit_exp `MODULE`_module{`type*#11`, `import*#11`, `tag*#11`, `global*#11`, `mem*#11`, `table*#11`, `func*#11`, `data*#11`, `elem*#11`, `start?#11`, `export*#11`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] +[visit_exp `type*#11`] +[visit_id type*#11] +[visit_exp `import*#11`] +[visit_id import*#11] +[visit_exp `tag*#11`] +[visit_id tag*#11] +[visit_exp `global*#11`] +[visit_id global*#11] +[visit_exp `mem*#11`] +[visit_id mem*#11] +[visit_exp `table*#11`] +[visit_id table*#11] +[visit_exp `func*#11`] +[visit_id func*#11] +[visit_exp `data*#11`] +[visit_id data*#11] +[visit_exp `elem*#11`] +[visit_id elem*#11] +[visit_exp `start?#11`] +[visit_id start?#11] +[visit_exp `export*#11`] +[visit_id export*#11] +[visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] +[visit_exp type*{type <- `type*`}] +[scope_enter type] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] no dims +[visit_id type*] +[visit_exp import*{import <- `import*`}] +[scope_enter import] +[visit_exp import] +[visit_id import] not free +[visit_id import] not free +[scope_exit import] +[visit_exp `import*`] +[visit_id import*] no dims +[visit_id import*] +[visit_exp tag*{tag <- `tag*`}] +[scope_enter tag] +[visit_exp tag] +[visit_id tag] not free +[visit_id tag] not free +[scope_exit tag] +[visit_exp `tag*`] +[visit_id tag*] no dims +[visit_id tag*] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] no dims +[visit_id global*] +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] no dims +[visit_id mem*] +[visit_exp table*{table <- `table*`}] +[scope_enter table] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] no dims +[visit_id table*] +[visit_exp func*{func <- `func*`}] +[scope_enter func] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] no dims +[visit_id func*] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] no dims +[visit_id data*] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] no dims +[visit_id elem*] +[visit_exp start?{start <- `start?`}] +[scope_enter start] +[visit_exp start] +[visit_id start] not free +[visit_id start] not free +[scope_exit start] +[visit_exp `start?`] +[visit_id start?] no dims +[visit_id start?] +[visit_exp export*{export <- `export*`}] +[scope_enter export] +[visit_exp export] +[visit_id export] not free +[visit_id export] not free +[scope_exit export] +[visit_exp `export*`] +[visit_id export*] no dims +[visit_id export*] +[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`}) +++ $free_list($free_export(export)*{export <- `export*`})] +[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`})] +[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`})] +[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`})] +[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`})] +[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`})] +[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`})] +[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`})] +[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`})] +[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`})] +[visit_exp $free_list($free_type(type)*{type <- `type*`})] +[visit_exp $free_type(type)*{type <- `type*`}] +[scope_enter type] +[visit_exp $free_type(type)] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] not free +[visit_id type*] no dims +[visit_exp $free_list($free_tag(tag)*{tag <- `tag*`})] +[visit_exp $free_tag(tag)*{tag <- `tag*`}] +[scope_enter tag] +[visit_exp $free_tag(tag)] +[visit_exp tag] +[visit_id tag] not free +[visit_id tag] not free +[scope_exit tag] +[visit_exp `tag*`] +[visit_id tag*] not free +[visit_id tag*] no dims +[visit_exp $free_list($free_global(global)*{global <- `global*`})] +[visit_exp $free_global(global)*{global <- `global*`}] +[scope_enter global] +[visit_exp $free_global(global)] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] not free +[visit_id global*] no dims +[visit_exp $free_list($free_mem(mem)*{mem <- `mem*`})] +[visit_exp $free_mem(mem)*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp $free_mem(mem)] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] not free +[visit_id mem*] no dims +[visit_exp $free_list($free_table(table)*{table <- `table*`})] +[visit_exp $free_table(table)*{table <- `table*`}] +[scope_enter table] +[visit_exp $free_table(table)] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] not free +[visit_id table*] no dims +[visit_exp $free_list($free_func(func)*{func <- `func*`})] +[visit_exp $free_func(func)*{func <- `func*`}] +[scope_enter func] +[visit_exp $free_func(func)] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] not free +[visit_id func*] no dims +[visit_exp $free_list($free_data(data)*{data <- `data*`})] +[visit_exp $free_data(data)*{data <- `data*`}] +[scope_enter data] +[visit_exp $free_data(data)] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] not free +[visit_id data*] no dims +[visit_exp $free_list($free_elem(elem)*{elem <- `elem*`})] +[visit_exp $free_elem(elem)*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp $free_elem(elem)] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] not free +[visit_id elem*] no dims +[visit_exp $free_opt($free_start(start)?{start <- `start?`})] +[visit_exp $free_start(start)?{start <- `start?`}] +[scope_enter start] +[visit_exp $free_start(start)] +[visit_exp start] +[visit_id start] not free +[visit_id start] not free +[scope_exit start] +[visit_exp `start?`] +[visit_id start?] not free +[visit_id start?] no dims +[visit_exp $free_list($free_import(import)*{import <- `import*`})] +[visit_exp $free_import(import)*{import <- `import*`}] +[scope_enter import] +[visit_exp $free_import(import)] +[visit_exp import] +[visit_id import] not free +[visit_id import] not free +[scope_exit import] +[visit_exp `import*`] +[visit_id import*] not free +[visit_id import*] no dims +[visit_exp $free_list($free_export(export)*{export <- `export*`})] +[visit_exp $free_export(export)*{export <- `export*`}] +[scope_enter export] +[visit_exp $free_export(export)] +[visit_exp export] +[visit_id export] not free +[visit_id export] not free +[scope_exit export] +[visit_exp `export*`] +[visit_id export*] not free +[visit_id export*] no dims +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $free_module{`type*#11` : type*, `import*#11` : import*, `tag*#11` : tag*, `global*#11` : global*, `mem*#11` : mem*, `table*#11` : table*, `func*#11` : func*, `data*#11` : data*, `elem*#11` : elem*, `start?#11` : start?, `export*#11` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*}(`MODULE`_module{`type*#11`, `import*#11`, `tag*#11`, `global*#11`, `mem*#11`, `table*#11`, `func*#11`, `data*#11`, `elem*#11`, `start?#11`, `export*#11`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) = $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`}) +++ $free_list($free_export(export)*{export <- `export*`}) +[check_dims] module +DecD funcidx_module(module : module) : funcidx* +[visit_id module] not free +[check_dims] funcidx*#38 module +[visit_exp module] +[visit_id module] +[visit_exp $free_module(module).`FUNCS`_free{`funcidx*#38`}] +[visit_exp $free_module(module)] +[visit_exp module] +[visit_id module] not free +[visit_exp `funcidx*#38`] +[visit_id funcidx*#38] +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $funcidx_module{module : module, `funcidx*#38` : funcidx*}(module) = $free_module(module).`FUNCS`_free{`funcidx*#38`} +[check_dims] _ +DecD dataidx_funcs(func*) : dataidx* +[visit_id _] not free +[check_dims] dataidx*#38 func +[visit_exp func*{func <- `func*`}] +[scope_enter func] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] no dims +[visit_id func*] +[visit_exp $free_list($free_func(func)*{func <- `func*`}).`DATAS`_free{`dataidx*#38`}] +[visit_exp $free_list($free_func(func)*{func <- `func*`})] +[visit_exp $free_func(func)*{func <- `func*`}] +[scope_enter func] +[visit_exp $free_func(func)] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] not free +[visit_id func*] no dims +[visit_exp `dataidx*#38`] +[visit_id dataidx*#38] +=> + ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec + def $dataidx_funcs{`func*` : func*, `dataidx*#38` : dataidx*}(func*{func <- `func*`}) = $free_list($free_func(func)*{func <- `func*`}).`DATAS`_free{`dataidx*#38`} +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id init] no dims +[visit_id init] +[visit_id valtype] no dims +[visit_id valtype] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id resulttype] no dims +[visit_id resulttype] +[visit_id localidx*] no dims +[visit_id localidx*] +[visit_id resulttype] not free +[visit_id resulttype] no dims +[check_dims] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id deftype*] no dims +[visit_id deftype*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id subtype*] no dims +[visit_id subtype*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tagtype*] no dims +[visit_id tagtype*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id globaltype*] no dims +[visit_id globaltype*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memtype*] no dims +[visit_id memtype*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tabletype*] no dims +[visit_id tabletype*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id deftype*] no dims +[visit_id deftype*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id datatype*] no dims +[visit_id datatype*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id elemtype*] no dims +[visit_id elemtype*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id localtype*] no dims +[visit_id localtype*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id resulttype*] no dims +[visit_id resulttype*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id resulttype?] no dims +[visit_id resulttype?] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id funcidx*] no dims +[visit_id funcidx*] +[check_dims] +[check_dims] _ context +DecD with_locals(context : context, localidx*, localtype*) : context +[visit_id context] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] C +[visit_exp C] +[visit_id C] +[visit_exp []] +[visit_exp []] +[visit_exp C] +[visit_id C] not free +=> + ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec + def $with_locals{C : context}(C, [], []) = C +[check_dims] C i#3970 lct lct_1 localtype*#1 x x_1 +[visit_exp C] +[visit_id C] +[visit_exp [x_1] ++ x*{x <- `x*`}] +[visit_exp [x_1]] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp [lct_1] ++ lct*{lct <- `lct*`}] +[visit_exp [lct_1]] +[visit_exp lct_1] +[visit_id lct_1] +[visit_exp lct*{lct <- `lct*`}] +[scope_enter lct] +[visit_exp lct] +[visit_id lct] not free +[visit_id lct] not free +[scope_exit lct] +[visit_exp `lct*`] +[visit_id lct*] no dims +[visit_id lct*] +[visit_exp $with_locals(C[`LOCALS`_context{`localtype*#1`}[x_1!`%`_idx{i#3970}.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`})] +[visit_exp C[`LOCALS`_context{`localtype*#1`}[x_1!`%`_idx{i#3970}.0] = lct_1]] +[visit_exp C] +[visit_id C] not free +[visit_exp `localtype*#1`] +[visit_id localtype*#1] +[visit_exp x_1!`%`_idx{i#3970}.0] +[visit_exp x_1!`%`_idx{i#3970}] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp i#3970] +[visit_id i#3970] +[visit_exp lct_1] +[visit_id lct_1] not free +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[visit_exp lct*{lct <- `lct*`}] +[scope_enter lct] +[visit_exp lct] +[visit_id lct] not free +[visit_id lct] not free +[scope_exit lct] +[visit_exp `lct*`] +[visit_id lct*] not free +[visit_id lct*] no dims +=> + ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec + def $with_locals{C : context, x_1 : idx, `x*` : idx*, lct_1 : localtype, `lct*` : localtype*, `localtype*#1` : localtype*, i#3970 : nat}(C, [x_1] ++ x*{x <- `x*`}, [lct_1] ++ lct*{lct <- `lct*`}) = $with_locals(C[`LOCALS`_context{`localtype*#1`}[x_1!`%`_idx{i#3970}.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`}) +[check_dims] context valtype +DecD clos_valtype(context : context, valtype : valtype) : valtype +[visit_id context] not free +[visit_id valtype] not free +[check_dims] context deftype +DecD clos_deftype(context : context, deftype : deftype) : deftype +[visit_id context] not free +[visit_id deftype] not free +[check_dims] context tagtype +DecD clos_tagtype(context : context, tagtype : tagtype) : tagtype +[visit_id context] not free +[visit_id tagtype] not free +[check_dims] context externtype +DecD clos_externtype(context : context, externtype : externtype) : externtype +[visit_id context] not free +[visit_id externtype] not free +[check_dims] context moduletype +DecD clos_moduletype(context : context, moduletype : moduletype) : moduletype +[visit_id context] not free +[visit_id moduletype] not free +[check_dims] _ +DecD clos_deftypes(deftype*) : deftype* +[visit_id _] not free +[check_dims] C deftype*#2 dt t +[visit_exp C] +[visit_id C] +[visit_exp t] +[visit_id t] +[visit_exp $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp t] +[visit_id t] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#2`}))] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp $clos_deftypes(C.`TYPES`_context{`deftype*#2`})] +[visit_exp C.`TYPES`_context{`deftype*#2`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#2`] +[visit_id deftype*#2] +=> + ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec + def $clos_valtype{C : context, t : valtype, `dt*` : deftype*, `deftype*#2` : deftype*}(C, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#2`})) +[check_dims] C deftype*#4 dt dt' +[visit_exp C] +[visit_id C] +[visit_exp dt] +[visit_id dt] +[visit_exp $subst_all_deftype(dt, (dt' : deftype <: typeuse)*{dt' <- `dt'*`})] +[visit_exp dt] +[visit_id dt] not free +[visit_exp (dt' : deftype <: typeuse)*{dt' <- `dt'*`}] +[scope_enter dt'] +[visit_exp (dt' : deftype <: typeuse)] +[visit_exp dt'] +[visit_id dt'] not free +[visit_id dt'] not free +[scope_exit dt'] +[visit_exp `dt'*`] +[visit_id dt'*] no dims +[visit_id dt'*] +[visit_exp (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#4`}))] +[visit_exp dt'*{dt' <- `dt'*`}] +[scope_enter dt'] +[visit_exp dt'] +[visit_id dt'] not free +[visit_id dt'] not free +[scope_exit dt'] +[visit_exp `dt'*`] +[visit_id dt'*] not free +[visit_id dt'*] no dims +[visit_exp $clos_deftypes(C.`TYPES`_context{`deftype*#4`})] +[visit_exp C.`TYPES`_context{`deftype*#4`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#4`] +[visit_id deftype*#4] +=> + ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec + def $clos_deftype{C : context, dt : deftype, `dt'*` : deftype*, `deftype*#4` : deftype*}(C, dt) = $subst_all_deftype(dt, (dt' : deftype <: typeuse)*{dt' <- `dt'*`}) + -- if (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#4`})) +[check_dims] C deftype*#6 dt jt +[visit_exp C] +[visit_id C] +[visit_exp jt] +[visit_id jt] +[visit_exp $subst_all_tagtype(jt, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp jt] +[visit_id jt] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#6`}))] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp $clos_deftypes(C.`TYPES`_context{`deftype*#6`})] +[visit_exp C.`TYPES`_context{`deftype*#6`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#6`] +[visit_id deftype*#6] +=> + ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec + def $clos_tagtype{C : context, jt : tagtype, `dt*` : deftype*, `deftype*#6` : deftype*}(C, jt) = $subst_all_tagtype(jt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#6`})) +[check_dims] C deftype*#8 dt xt +[visit_exp C] +[visit_id C] +[visit_exp xt] +[visit_id xt] +[visit_exp $subst_all_externtype(xt, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp xt] +[visit_id xt] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#8`}))] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp $clos_deftypes(C.`TYPES`_context{`deftype*#8`})] +[visit_exp C.`TYPES`_context{`deftype*#8`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#8`] +[visit_id deftype*#8] +=> + ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec + def $clos_externtype{C : context, xt : externtype, `dt*` : deftype*, `deftype*#8` : deftype*}(C, xt) = $subst_all_externtype(xt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#8`})) +[check_dims] C deftype*#10 dt mmt +[visit_exp C] +[visit_id C] +[visit_exp mmt] +[visit_id mmt] +[visit_exp $subst_all_moduletype(mmt, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp mmt] +[visit_id mmt] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#10`}))] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp $clos_deftypes(C.`TYPES`_context{`deftype*#10`})] +[visit_exp C.`TYPES`_context{`deftype*#10`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#10`] +[visit_id deftype*#10] +=> + ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec + def $clos_moduletype{C : context, mmt : moduletype, `dt*` : deftype*, `deftype*#10` : deftype*}(C, mmt) = $subst_all_moduletype(mmt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#10`})) +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec + def $clos_deftypes([]) = [] +[check_dims] dt dt' dt_n +[visit_exp dt*{dt <- `dt*`} ++ [dt_n]] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp [dt_n]] +[visit_exp dt_n] +[visit_id dt_n] +[visit_exp dt'*{dt' <- `dt'*`} ++ [$subst_all_deftype(dt_n, (dt' : deftype <: typeuse)*{dt' <- `dt'*`})]] +[visit_exp dt'*{dt' <- `dt'*`}] +[scope_enter dt'] +[visit_exp dt'] +[visit_id dt'] not free +[visit_id dt'] not free +[scope_exit dt'] +[visit_exp `dt'*`] +[visit_id dt'*] no dims +[visit_id dt'*] +[visit_exp [$subst_all_deftype(dt_n, (dt' : deftype <: typeuse)*{dt' <- `dt'*`})]] +[visit_exp $subst_all_deftype(dt_n, (dt' : deftype <: typeuse)*{dt' <- `dt'*`})] +[visit_exp dt_n] +[visit_id dt_n] not free +[visit_exp (dt' : deftype <: typeuse)*{dt' <- `dt'*`}] +[scope_enter dt'] +[visit_exp (dt' : deftype <: typeuse)] +[visit_exp dt'] +[visit_id dt'] not free +[visit_id dt'] not free +[scope_exit dt'] +[visit_exp `dt'*`] +[visit_id dt'*] not free +[visit_id dt'*] no dims +[visit_exp (dt'*{dt' <- `dt'*`} = $clos_deftypes(dt*{dt <- `dt*`}))] +[visit_exp dt'*{dt' <- `dt'*`}] +[scope_enter dt'] +[visit_exp dt'] +[visit_id dt'] not free +[visit_id dt'] not free +[scope_exit dt'] +[visit_exp `dt'*`] +[visit_id dt'*] not free +[visit_id dt'*] no dims +[visit_exp $clos_deftypes(dt*{dt <- `dt*`})] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +=> + ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec + def $clos_deftypes{`dt*` : deftype*, dt_n : deftype, `dt'*` : deftype*}(dt*{dt <- `dt*`} ++ [dt_n]) = dt'*{dt' <- `dt'*`} ++ [$subst_all_deftype(dt_n, (dt' : deftype <: typeuse)*{dt' <- `dt'*`})] + -- if (dt'*{dt' <- `dt'*`} = $clos_deftypes(dt*{dt <- `dt*`})) +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] C numtype +[visit_exp C] +[visit_id C] +[visit_exp numtype] +[visit_id numtype] +[check_dims] C vectype +[visit_exp C] +[visit_id C] +[visit_exp vectype] +[visit_id vectype] +[check_dims] C absheaptype +[visit_exp C] +[visit_id C] +[visit_exp (absheaptype : absheaptype <: heaptype)] +[visit_exp absheaptype] +[visit_id absheaptype] +[check_dims] C typeuse +[visit_exp C] +[visit_id C] +[visit_exp (typeuse : typeuse <: heaptype)] +[visit_exp typeuse] +[visit_id typeuse] +[visit_exp (C, typeuse)] +[visit_exp C] +[visit_id C] not free +[visit_exp typeuse] +[visit_id typeuse] not free +[check_dims] C heaptype heaptype#421 null?#419 +[visit_exp C] +[visit_id C] +[visit_exp `REF`_reftype{`null?#419`, heaptype#421}(`NULL`_null?{}, heaptype)] +[visit_exp `null?#419`] +[visit_id null?#419] +[visit_exp heaptype#421] +[visit_id heaptype#421] +[visit_exp (`NULL`_null?{}, heaptype)] +[visit_exp `NULL`_null?{}] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp heaptype] +[visit_id heaptype] +[visit_exp (C, heaptype)] +[visit_exp C] +[visit_id C] not free +[visit_exp heaptype] +[visit_id heaptype] not free +[check_dims] C numtype +[visit_exp C] +[visit_id C] +[visit_exp (numtype : numtype <: valtype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp (C, numtype)] +[visit_exp C] +[visit_id C] not free +[visit_exp numtype] +[visit_id numtype] not free +[check_dims] C vectype +[visit_exp C] +[visit_id C] +[visit_exp (vectype : vectype <: valtype)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp (C, vectype)] +[visit_exp C] +[visit_id C] not free +[visit_exp vectype] +[visit_id vectype] not free +[check_dims] C reftype +[visit_exp C] +[visit_id C] +[visit_exp (reftype : reftype <: valtype)] +[visit_exp reftype] +[visit_id reftype] +[visit_exp (C, reftype)] +[visit_exp C] +[visit_id C] not free +[visit_exp reftype] +[visit_id reftype] not free +[check_dims] C +[visit_exp C] +[visit_id C] +[visit_exp `BOT`_valtype] +[visit_exp ()] +[check_dims] +[check_dims] +[check_dims] C X*#465 t +[visit_exp C] +[visit_id C] +[visit_exp `%`_resulttype{`X*#465`}(t*{t <- `t*`})] +[visit_exp `X*#465`] +[visit_id X*#465] +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[scope_enter t] +[visit_exp (C, t)] +[visit_exp C] +[visit_id C] not free +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[check_dims] C X*#478 X*#530 X*#543 X*#556 i#4081 lct localidx*#47 localtype*#2 resulttype#27 t_1 t_2 x +[visit_exp C] +[visit_id C] +[visit_exp `%->_%%`_instrtype{resulttype#27, `localidx*#47`}(`%`_resulttype{`X*#478`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#530`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#27] +[visit_id resulttype#27] +[visit_exp `localidx*#47`] +[visit_id localidx*#47] +[visit_exp (`%`_resulttype{`X*#478`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#530`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#478`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#478`] +[visit_id X*#478] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp `%`_resulttype{`X*#530`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#530`] +[visit_id X*#530] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C, `%`_resulttype{`X*#543`}(t_1*{t_1 <- `t_1*`}))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#543`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#543`] +[visit_id X*#543] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp (C, `%`_resulttype{`X*#556`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#556`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#556`] +[visit_id X*#556] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[scope_enter i#4081] +[scope_enter lct] +[scope_enter localtype*#2] +[scope_enter x] +[visit_exp (C.`LOCALS`_context{`localtype*#2`}[x!`%`_idx{i#4081}.0] = lct)] +[visit_exp C.`LOCALS`_context{`localtype*#2`}[x!`%`_idx{i#4081}.0]] +[visit_exp C.`LOCALS`_context{`localtype*#2`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `localtype*#2`] +[visit_id localtype*#2] not free +[visit_exp x!`%`_idx{i#4081}.0] +[visit_exp x!`%`_idx{i#4081}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#4081] +[visit_id i#4081] not free +[visit_exp lct] +[visit_id lct] not free +[visit_id i#4081] not free +[visit_id lct] not free +[visit_id localtype*#2] not free +[visit_id x] not free +[scope_exit x] +[scope_exit localtype*#2] +[scope_exit lct] +[scope_exit i#4081] +[visit_exp `i#4081*`] +[visit_id i#4081*] no dims +[visit_id i#4081*] +[visit_exp `lct*`] +[visit_id lct*] no dims +[visit_id lct*] +[visit_exp `localtype*#2*`] +[visit_id localtype*#2*] no dims +[visit_id localtype*#2*] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[check_dims] +[check_dims] +[check_dims] comptype deftype +[visit_exp deftype] +[visit_id deftype] +[visit_exp comptype] +[visit_id comptype] +[visit_exp ($expanddt(deftype) = comptype)] +[visit_exp $expanddt(deftype)] +[visit_exp deftype] +[visit_id deftype] not free +[visit_exp comptype] +[visit_id comptype] not free +[check_dims] C comptype deftype +[visit_exp (deftype : deftype <: typeuse)] +[visit_exp deftype] +[visit_id deftype] +[visit_exp C] +[visit_id C] +[visit_exp comptype] +[visit_id comptype] +[visit_exp (deftype, comptype)] +[visit_exp deftype] +[visit_id deftype] not free +[visit_exp comptype] +[visit_id comptype] not free +[check_dims] C comptype deftype*#11 i#4103 typeidx typeidx#220 +[visit_exp `_IDX`_typeuse{typeidx#220}(typeidx)] +[visit_exp typeidx#220] +[visit_id typeidx#220] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp C] +[visit_id C] +[visit_exp comptype] +[visit_id comptype] +[visit_exp (C.`TYPES`_context{`deftype*#11`}[typeidx!`%`_typeidx{i#4103}.0], comptype)] +[visit_exp C.`TYPES`_context{`deftype*#11`}[typeidx!`%`_typeidx{i#4103}.0]] +[visit_exp C.`TYPES`_context{`deftype*#11`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#11`] +[visit_id deftype*#11] +[visit_exp typeidx!`%`_typeidx{i#4103}.0] +[visit_exp typeidx!`%`_typeidx{i#4103}] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp i#4103] +[visit_id i#4103] +[visit_exp comptype] +[visit_id comptype] not free +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id typeidx] no dims +[visit_id typeidx] +[visit_id _] not free +[visit_id _] no dims +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] C deftype*#12 dt i#4125 typeidx typeidx#222 +[visit_exp C] +[visit_id C] +[visit_exp `_IDX`_typeuse{typeidx#222}(typeidx)] +[visit_exp typeidx#222] +[visit_id typeidx#222] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp (C.`TYPES`_context{`deftype*#12`}[typeidx!`%`_typeidx{i#4125}.0] = dt)] +[visit_exp C.`TYPES`_context{`deftype*#12`}[typeidx!`%`_typeidx{i#4125}.0]] +[visit_exp C.`TYPES`_context{`deftype*#12`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#12`] +[visit_id deftype*#12] +[visit_exp typeidx!`%`_typeidx{i#4125}.0] +[visit_exp typeidx!`%`_typeidx{i#4125}] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp i#4125] +[visit_id i#4125] +[visit_exp dt] +[visit_id dt] +[check_dims] C i n#501 st subtype*#1 +[visit_exp C] +[visit_id C] +[visit_exp `REC`_typeuse{n#501}(i)] +[visit_exp n#501] +[visit_id n#501] +[visit_exp (i)] +[visit_exp i] +[visit_id i] +[visit_exp (C.`RECS`_context{`subtype*#1`}[i] = st)] +[visit_exp C.`RECS`_context{`subtype*#1`}[i]] +[visit_exp C.`RECS`_context{`subtype*#1`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `subtype*#1`] +[visit_id subtype*#1] +[visit_exp i] +[visit_id i] not free +[visit_exp st] +[visit_id st] +[check_dims] C deftype +[visit_exp C] +[visit_id C] +[visit_exp (deftype : deftype <: typeuse)] +[visit_exp deftype] +[visit_id deftype] +[visit_exp (C, deftype)] +[visit_exp C] +[visit_id C] not free +[visit_exp deftype] +[visit_id deftype] not free +[check_dims] C packtype +[visit_exp C] +[visit_id C] +[visit_exp packtype] +[visit_id packtype] +[check_dims] C valtype +[visit_exp C] +[visit_id C] +[visit_exp (valtype : valtype <: storagetype)] +[visit_exp valtype] +[visit_id valtype] +[visit_exp (C, valtype)] +[visit_exp C] +[visit_id C] not free +[visit_exp valtype] +[visit_id valtype] not free +[check_dims] C packtype +[visit_exp C] +[visit_id C] +[visit_exp (packtype : packtype <: storagetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp (C, packtype)] +[visit_exp C] +[visit_id C] not free +[visit_exp packtype] +[visit_id packtype] not free +[check_dims] C mut?#289 storagetype storagetype#137 +[visit_exp C] +[visit_id C] +[visit_exp `%%`_fieldtype{`mut?#289`, storagetype#137}(`MUT`_mut?{}, storagetype)] +[visit_exp `mut?#289`] +[visit_id mut?#289] +[visit_exp storagetype#137] +[visit_id storagetype#137] +[visit_exp (`MUT`_mut?{}, storagetype)] +[visit_exp `MUT`_mut?{}] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp storagetype] +[visit_id storagetype] +[visit_exp (C, storagetype)] +[visit_exp C] +[visit_id C] not free +[visit_exp storagetype] +[visit_id storagetype] not free +[check_dims] C X*#571 fieldtype +[visit_exp C] +[visit_id C] +[visit_exp `STRUCT`_comptype(`%`_list{`X*#571`}(fieldtype*{fieldtype <- `fieldtype*`}))] +[visit_exp (`%`_list{`X*#571`}(fieldtype*{fieldtype <- `fieldtype*`}))] +[visit_exp `%`_list{`X*#571`}(fieldtype*{fieldtype <- `fieldtype*`})] +[visit_exp `X*#571`] +[visit_id X*#571] +[visit_exp (fieldtype*{fieldtype <- `fieldtype*`})] +[visit_exp fieldtype*{fieldtype <- `fieldtype*`}] +[scope_enter fieldtype] +[visit_exp fieldtype] +[visit_id fieldtype] not free +[visit_id fieldtype] not free +[scope_exit fieldtype] +[visit_exp `fieldtype*`] +[visit_id fieldtype*] no dims +[visit_id fieldtype*] +[scope_enter fieldtype] +[visit_exp (C, fieldtype)] +[visit_exp C] +[visit_id C] not free +[visit_exp fieldtype] +[visit_id fieldtype] not free +[visit_id fieldtype] not free +[scope_exit fieldtype] +[visit_exp `fieldtype*`] +[visit_id fieldtype*] not free +[visit_id fieldtype*] no dims +[check_dims] C fieldtype fieldtype#7 +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY`_comptype{fieldtype#7}(fieldtype)] +[visit_exp fieldtype#7] +[visit_id fieldtype#7] +[visit_exp (fieldtype)] +[visit_exp fieldtype] +[visit_id fieldtype] +[visit_exp (C, fieldtype)] +[visit_exp C] +[visit_id C] not free +[visit_exp fieldtype] +[visit_id fieldtype] not free +[check_dims] C X*#586 X*#599 X*#612 X*#625 resulttype#30 t_1 t_2 +[visit_exp C] +[visit_id C] +[visit_exp `FUNC%->%`_comptype{resulttype#30}(`%`_resulttype{`X*#586`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#599`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#30] +[visit_id resulttype#30] +[visit_exp (`%`_resulttype{`X*#586`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#599`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#586`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#586`] +[visit_id X*#586] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp `%`_resulttype{`X*#599`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#599`] +[visit_id X*#599] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C, `%`_resulttype{`X*#612`}(t_1*{t_1 <- `t_1*`}))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#612`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#612`] +[visit_id X*#612] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp (C, `%`_resulttype{`X*#625`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#625`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#625`] +[visit_id X*#625] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C comptype comptype#215 comptype#227 comptype' deftype*#13 final?#215 final?#227 i#4171 i#4181 i#4191 typeidx#224 typeidx#236 typeidx#238 typeuse*#215 typeuse*#227 x x' x_0 +[visit_exp C] +[visit_id C] +[visit_exp `SUB`_subtype{`final?#215`, `typeuse*#215`, comptype#215}(`FINAL`_final?{}, `_IDX`_typeuse{typeidx#224}(x)*{typeidx#224 <- `typeidx#224*`, x <- `x*`}, comptype)] +[visit_exp `final?#215`] +[visit_id final?#215] +[visit_exp `typeuse*#215`] +[visit_id typeuse*#215] +[visit_exp comptype#215] +[visit_id comptype#215] +[visit_exp (`FINAL`_final?{}, `_IDX`_typeuse{typeidx#224}(x)*{typeidx#224 <- `typeidx#224*`, x <- `x*`}, comptype)] +[visit_exp `FINAL`_final?{}] +[visit_exp `FINAL`_final] +[visit_exp ()] +[visit_exp `_IDX`_typeuse{typeidx#224}(x)*{typeidx#224 <- `typeidx#224*`, x <- `x*`}] +[scope_enter typeidx#224] +[scope_enter x] +[visit_exp `_IDX`_typeuse{typeidx#224}(x)] +[visit_exp typeidx#224] +[visit_id typeidx#224] not free +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_id typeidx#224] not free +[visit_id x] not free +[scope_exit x] +[scope_exit typeidx#224] +[visit_exp `typeidx#224*`] +[visit_id typeidx#224*] no dims +[visit_id typeidx#224*] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp comptype] +[visit_id comptype] +[visit_exp `OK`_oktypeidx{typeidx#236}(x_0)] +[visit_exp typeidx#236] +[visit_id typeidx#236] +[visit_exp (x_0)] +[visit_exp x_0] +[visit_id x_0] +[visit_exp (|x*{x <- `x*`}| <= 1)] +[visit_exp |x*{x <- `x*`}|] +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[visit_exp 1] +[scope_enter i#4171] +[scope_enter i#4181] +[scope_enter x] +[visit_exp (x!`%`_idx{i#4171}.0 < x_0!`%`_idx{i#4181}.0)] +[visit_exp x!`%`_idx{i#4171}.0] +[visit_exp x!`%`_idx{i#4171}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#4171] +[visit_id i#4171] not free +[visit_exp x_0!`%`_idx{i#4181}.0] +[visit_exp x_0!`%`_idx{i#4181}] +[visit_exp x_0] +[visit_id x_0] not free +[visit_exp i#4181] +[visit_id i#4181] not free +[visit_id i#4171] not free +[visit_id i#4181] not free +[visit_id x] not free +[scope_exit x] +[scope_exit i#4181] +[scope_exit i#4171] +[visit_exp `i#4171*`] +[visit_id i#4171*] no dims +[visit_id i#4171*] +[visit_exp `i#4181*`] +[visit_id i#4181*] no dims +[visit_id i#4181*] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[scope_enter comptype#227] +[scope_enter comptype'] +[scope_enter deftype*#13] +[scope_enter final?#227] +[scope_enter i#4191] +[scope_enter typeidx#238*] +[scope_enter typeuse*#227] +[scope_enter x] +[scope_enter x'*] +[visit_exp ($unrolldt(C.`TYPES`_context{`deftype*#13`}[x!`%`_idx{i#4191}.0]) = `SUB`_subtype{`final?#227`, `typeuse*#227`, comptype#227}(?(), `_IDX`_typeuse{typeidx#238}(x')*{typeidx#238 <- `typeidx#238*`, x' <- `x'*`}, comptype'))] +[visit_exp $unrolldt(C.`TYPES`_context{`deftype*#13`}[x!`%`_idx{i#4191}.0])] +[visit_exp C.`TYPES`_context{`deftype*#13`}[x!`%`_idx{i#4191}.0]] +[visit_exp C.`TYPES`_context{`deftype*#13`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#13`] +[visit_id deftype*#13] not free +[visit_exp x!`%`_idx{i#4191}.0] +[visit_exp x!`%`_idx{i#4191}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#4191] +[visit_id i#4191] not free +[visit_exp `SUB`_subtype{`final?#227`, `typeuse*#227`, comptype#227}(?(), `_IDX`_typeuse{typeidx#238}(x')*{typeidx#238 <- `typeidx#238*`, x' <- `x'*`}, comptype')] +[visit_exp `final?#227`] +[visit_id final?#227] not free +[visit_exp `typeuse*#227`] +[visit_id typeuse*#227] not free +[visit_exp comptype#227] +[visit_id comptype#227] not free +[visit_exp (?(), `_IDX`_typeuse{typeidx#238}(x')*{typeidx#238 <- `typeidx#238*`, x' <- `x'*`}, comptype')] +[visit_exp ?()] +[visit_exp `_IDX`_typeuse{typeidx#238}(x')*{typeidx#238 <- `typeidx#238*`, x' <- `x'*`}] +[scope_enter typeidx#238] +[scope_enter x'] +[visit_exp `_IDX`_typeuse{typeidx#238}(x')] +[visit_exp typeidx#238] +[visit_id typeidx#238] not free +[visit_exp (x')] +[visit_exp x'] +[visit_id x'] not free +[visit_id typeidx#238] not free +[visit_id x'] not free +[scope_exit x'] +[scope_exit typeidx#238] +[visit_exp `typeidx#238*`] +[visit_id typeidx#238*] not free +[visit_id typeidx#238*] no dims +[visit_exp `x'*`] +[visit_id x'*] not free +[visit_id x'*] no dims +[visit_exp comptype'] +[visit_id comptype'] not free +[visit_id comptype#227] not free +[visit_id comptype'] not free +[visit_id deftype*#13] not free +[visit_id final?#227] not free +[visit_id i#4191] not free +[visit_id typeidx#238*] not free +[visit_id typeidx#238*] no dims +[visit_id typeuse*#227] not free +[visit_id x] not free +[visit_id x'*] not free +[visit_id x'*] no dims +[scope_exit x'*] +[scope_exit x] +[scope_exit typeuse*#227] +[scope_exit typeidx#238*] +[scope_exit i#4191] +[scope_exit final?#227] +[scope_exit deftype*#13] +[scope_exit comptype'] +[scope_exit comptype#227] +[visit_exp `comptype#227*`] +[visit_id comptype#227*] no dims +[visit_id comptype#227*] +[visit_exp `comptype'*`] +[visit_id comptype'*] no dims +[visit_id comptype'*] +[visit_exp `deftype*#13*`] +[visit_id deftype*#13*] no dims +[visit_id deftype*#13*] +[visit_exp `final?#227*`] +[visit_id final?#227*] no dims +[visit_id final?#227*] +[visit_exp `i#4191*`] +[visit_id i#4191*] no dims +[visit_id i#4191*] +[visit_exp `typeidx#238**`] +[visit_id typeidx#238**] no dims +[visit_id typeidx#238**] +[visit_exp `typeuse*#227*`] +[visit_id typeuse*#227*] no dims +[visit_id typeuse*#227*] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[visit_exp `x'**`] +[visit_id x'**] no dims +[visit_id x'**] +[visit_exp (C, comptype)] +[visit_exp C] +[visit_id C] not free +[visit_exp comptype] +[visit_id comptype] not free +[scope_enter comptype'] +[visit_exp (C, comptype, comptype')] +[visit_exp C] +[visit_id C] not free +[visit_exp comptype] +[visit_id comptype] not free +[visit_exp comptype'] +[visit_id comptype'] not free +[visit_id comptype'] not free +[scope_exit comptype'] +[visit_exp `comptype'*`] +[visit_id comptype'*] not free +[visit_id comptype'*] no dims +[check_dims] nat typeidx typeuse +DecD before(typeuse : typeuse, typeidx : typeidx, nat : nat) : bool +[visit_id typeuse] not free +[visit_id typeidx] not free +[visit_id nat] not free +[check_dims] deftype i x +[visit_exp (deftype : deftype <: typeuse)] +[visit_exp deftype] +[visit_id deftype] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp true] +=> + ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec + def $before{deftype : deftype, x : idx, i : nat}((deftype : deftype <: typeuse), x, i) = true +[check_dims] i i#4259 i#4269 typeidx typeidx#240 x +[visit_exp `_IDX`_typeuse{typeidx#240}(typeidx)] +[visit_exp typeidx#240] +[visit_id typeidx#240] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp (typeidx!`%`_typeidx{i#4259}.0 < x!`%`_idx{i#4269}.0)] +[visit_exp typeidx!`%`_typeidx{i#4259}.0] +[visit_exp typeidx!`%`_typeidx{i#4259}] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp i#4259] +[visit_id i#4259] +[visit_exp x!`%`_idx{i#4269}.0] +[visit_exp x!`%`_idx{i#4269}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#4269] +[visit_id i#4269] +=> + ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec + def $before{typeidx#240 : typeidx, typeidx : typeidx, x : idx, i : nat, i#4259 : nat, i#4269 : nat}(`_IDX`_typeuse{typeidx#240}(typeidx), x, i) = (typeidx!`%`_typeidx{i#4259}.0 < x!`%`_idx{i#4269}.0) +[check_dims] i j n#515 x +[visit_exp `REC`_typeuse{n#515}(j)] +[visit_exp n#515] +[visit_id n#515] +[visit_exp (j)] +[visit_exp j] +[visit_id j] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp (j < i)] +[visit_exp j] +[visit_id j] not free +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec + def $before{n#515 : n, j : n, x : idx, i : nat}(`REC`_typeuse{n#515}(j), x, i) = (j < i) +[check_dims] context heaptype +DecD unrollht(context : context, heaptype : heaptype) : subtype +[visit_id context] not free +[visit_id heaptype] not free +[check_dims] C deftype +[visit_exp C] +[visit_id C] +[visit_exp (deftype : deftype <: heaptype)] +[visit_exp deftype] +[visit_id deftype] +[visit_exp $unrolldt(deftype)] +[visit_exp deftype] +[visit_id deftype] not free +=> + ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec + def $unrollht{C : context, deftype : deftype}(C, (deftype : deftype <: heaptype)) = $unrolldt(deftype) +[check_dims] C deftype*#14 i#4303 typeidx typeidx#242 +[visit_exp C] +[visit_id C] +[visit_exp `_IDX`_heaptype{typeidx#242}(typeidx)] +[visit_exp typeidx#242] +[visit_id typeidx#242] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp $unrolldt(C.`TYPES`_context{`deftype*#14`}[typeidx!`%`_typeidx{i#4303}.0])] +[visit_exp C.`TYPES`_context{`deftype*#14`}[typeidx!`%`_typeidx{i#4303}.0]] +[visit_exp C.`TYPES`_context{`deftype*#14`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#14`] +[visit_id deftype*#14] +[visit_exp typeidx!`%`_typeidx{i#4303}.0] +[visit_exp typeidx!`%`_typeidx{i#4303}] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp i#4303] +[visit_id i#4303] +=> + ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec + def $unrollht{C : context, typeidx#242 : typeidx, typeidx : typeidx, `deftype*#14` : deftype*, i#4303 : nat}(C, `_IDX`_heaptype{typeidx#242}(typeidx)) = $unrolldt(C.`TYPES`_context{`deftype*#14`}[typeidx!`%`_typeidx{i#4303}.0]) +[check_dims] C i n#529 subtype*#2 +[visit_exp C] +[visit_id C] +[visit_exp `REC`_heaptype{n#529}(i)] +[visit_exp n#529] +[visit_id n#529] +[visit_exp (i)] +[visit_exp i] +[visit_id i] +[visit_exp C.`RECS`_context{`subtype*#2`}[i]] +[visit_exp C.`RECS`_context{`subtype*#2`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `subtype*#2`] +[visit_id subtype*#2] +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec + def $unrollht{C : context, n#529 : n, i : n, `subtype*#2` : subtype*}(C, `REC`_heaptype{n#529}(i)) = C.`RECS`_context{`subtype*#2`}[i] +[check_dims] C compttype comptype comptype#257 comptype#269 comptype' final?#257 final?#269 i typeidx#254 typeuse typeuse' typeuse*#257 typeuse*#269 x +[visit_exp C] +[visit_id C] +[visit_exp `SUB`_subtype{`final?#257`, `typeuse*#257`, comptype#257}(`FINAL`_final?{}, typeuse*{typeuse <- `typeuse*`}, compttype)] +[visit_exp `final?#257`] +[visit_id final?#257] +[visit_exp `typeuse*#257`] +[visit_id typeuse*#257] +[visit_exp comptype#257] +[visit_id comptype#257] +[visit_exp (`FINAL`_final?{}, typeuse*{typeuse <- `typeuse*`}, compttype)] +[visit_exp `FINAL`_final?{}] +[visit_exp `FINAL`_final] +[visit_exp ()] +[visit_exp typeuse*{typeuse <- `typeuse*`}] +[scope_enter typeuse] +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_id typeuse] not free +[scope_exit typeuse] +[visit_exp `typeuse*`] +[visit_id typeuse*] no dims +[visit_id typeuse*] +[visit_exp compttype] +[visit_id compttype] +[visit_exp `OK`_oktypeidxnat{typeidx#254}(x, i)] +[visit_exp typeidx#254] +[visit_id typeidx#254] +[visit_exp (x, i)] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp (|typeuse*{typeuse <- `typeuse*`}| <= 1)] +[visit_exp |typeuse*{typeuse <- `typeuse*`}|] +[visit_exp typeuse*{typeuse <- `typeuse*`}] +[scope_enter typeuse] +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_id typeuse] not free +[scope_exit typeuse] +[visit_exp `typeuse*`] +[visit_id typeuse*] not free +[visit_id typeuse*] no dims +[visit_exp 1] +[scope_enter typeuse] +[visit_exp $before(typeuse, x, i)] +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_exp x] +[visit_id x] not free +[visit_exp i] +[visit_id i] not free +[visit_id typeuse] not free +[scope_exit typeuse] +[visit_exp `typeuse*`] +[visit_id typeuse*] not free +[visit_id typeuse*] no dims +[scope_enter comptype#269] +[scope_enter comptype'] +[scope_enter final?#269] +[scope_enter typeuse] +[scope_enter typeuse'*] +[scope_enter typeuse*#269] +[visit_exp ($unrollht(C, (typeuse : typeuse <: heaptype)) = `SUB`_subtype{`final?#269`, `typeuse*#269`, comptype#269}(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype'))] +[visit_exp $unrollht(C, (typeuse : typeuse <: heaptype))] +[visit_exp C] +[visit_id C] not free +[visit_exp (typeuse : typeuse <: heaptype)] +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_exp `SUB`_subtype{`final?#269`, `typeuse*#269`, comptype#269}(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype')] +[visit_exp `final?#269`] +[visit_id final?#269] not free +[visit_exp `typeuse*#269`] +[visit_id typeuse*#269] not free +[visit_exp comptype#269] +[visit_id comptype#269] not free +[visit_exp (?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype')] +[visit_exp ?()] +[visit_exp typeuse'*{typeuse' <- `typeuse'*`}] +[scope_enter typeuse'] +[visit_exp typeuse'] +[visit_id typeuse'] not free +[visit_id typeuse'] not free +[scope_exit typeuse'] +[visit_exp `typeuse'*`] +[visit_id typeuse'*] not free +[visit_id typeuse'*] no dims +[visit_exp comptype'] +[visit_id comptype'] not free +[visit_id comptype#269] not free +[visit_id comptype'] not free +[visit_id final?#269] not free +[visit_id typeuse] not free +[visit_id typeuse'*] not free +[visit_id typeuse'*] no dims +[visit_id typeuse*#269] not free +[scope_exit typeuse*#269] +[scope_exit typeuse'*] +[scope_exit typeuse] +[scope_exit final?#269] +[scope_exit comptype'] +[scope_exit comptype#269] +[visit_exp `comptype#269*`] +[visit_id comptype#269*] no dims +[visit_id comptype#269*] +[visit_exp `comptype'*`] +[visit_id comptype'*] no dims +[visit_id comptype'*] +[visit_exp `final?#269*`] +[visit_id final?#269*] no dims +[visit_id final?#269*] +[visit_exp `typeuse*`] +[visit_id typeuse*] not free +[visit_id typeuse*] no dims +[visit_exp `typeuse'**`] +[visit_id typeuse'**] no dims +[visit_id typeuse'**] +[visit_exp `typeuse*#269*`] +[visit_id typeuse*#269*] no dims +[visit_id typeuse*#269*] +[visit_exp (C, comptype)] +[visit_exp C] +[visit_id C] not free +[visit_exp comptype] +[visit_id comptype] +[scope_enter comptype'] +[visit_exp (C, comptype, comptype')] +[visit_exp C] +[visit_id C] not free +[visit_exp comptype] +[visit_id comptype] not free +[visit_exp comptype'] +[visit_id comptype'] not free +[visit_id comptype'] not free +[scope_exit comptype'] +[visit_exp `comptype'*`] +[visit_id comptype'*] not free +[visit_id comptype'*] no dims +[check_dims] C X*#650 typeidx#266 x +[visit_exp C] +[visit_id C] +[visit_exp `REC`_rectype(`%`_list{`X*#650`}([]))] +[visit_exp (`%`_list{`X*#650`}([]))] +[visit_exp `%`_list{`X*#650`}([])] +[visit_exp `X*#650`] +[visit_id X*#650] +[visit_exp ([])] +[visit_exp []] +[visit_exp `OK`_oktypeidx{typeidx#266}(x)] +[visit_exp typeidx#266] +[visit_id typeidx#266] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[check_dims] C X*#673 X*#686 i#4397 i#4407 subtype subtype_1 typeidx#278 typeidx#290 typeidx#302 x +[visit_exp C] +[visit_id C] +[visit_exp `REC`_rectype(`%`_list{`X*#673`}([subtype_1] ++ subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list{`X*#673`}([subtype_1] ++ subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list{`X*#673`}([subtype_1] ++ subtype*{subtype <- `subtype*`})] +[visit_exp `X*#673`] +[visit_id X*#673] +[visit_exp ([subtype_1] ++ subtype*{subtype <- `subtype*`})] +[visit_exp [subtype_1] ++ subtype*{subtype <- `subtype*`}] +[visit_exp [subtype_1]] +[visit_exp subtype_1] +[visit_id subtype_1] +[visit_exp subtype*{subtype <- `subtype*`}] +[scope_enter subtype] +[visit_exp subtype] +[visit_id subtype] not free +[visit_id subtype] not free +[scope_exit subtype] +[visit_exp `subtype*`] +[visit_id subtype*] no dims +[visit_id subtype*] +[visit_exp `OK`_oktypeidx{typeidx#278}(x)] +[visit_exp typeidx#278] +[visit_id typeidx#278] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp (C, subtype_1, `OK`_oktypeidx{typeidx#290}(x))] +[visit_exp C] +[visit_id C] not free +[visit_exp subtype_1] +[visit_id subtype_1] not free +[visit_exp `OK`_oktypeidx{typeidx#290}(x)] +[visit_exp typeidx#290] +[visit_id typeidx#290] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp (C, `REC`_rectype(`%`_list{`X*#686`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidx{typeidx#302}(`%`_typeidx{i#4407}((x!`%`_idx{i#4397}.0 + 1))))] +[visit_exp C] +[visit_id C] not free +[visit_exp `REC`_rectype(`%`_list{`X*#686`}(subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list{`X*#686`}(subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list{`X*#686`}(subtype*{subtype <- `subtype*`})] +[visit_exp `X*#686`] +[visit_id X*#686] +[visit_exp (subtype*{subtype <- `subtype*`})] +[visit_exp subtype*{subtype <- `subtype*`}] +[scope_enter subtype] +[visit_exp subtype] +[visit_id subtype] not free +[visit_id subtype] not free +[scope_exit subtype] +[visit_exp `subtype*`] +[visit_id subtype*] not free +[visit_id subtype*] no dims +[visit_exp `OK`_oktypeidx{typeidx#302}(`%`_typeidx{i#4407}((x!`%`_idx{i#4397}.0 + 1)))] +[visit_exp typeidx#302] +[visit_id typeidx#302] +[visit_exp (`%`_typeidx{i#4407}((x!`%`_idx{i#4397}.0 + 1)))] +[visit_exp `%`_typeidx{i#4407}((x!`%`_idx{i#4397}.0 + 1))] +[visit_exp i#4407] +[visit_id i#4407] +[visit_exp ((x!`%`_idx{i#4397}.0 + 1))] +[visit_exp (x!`%`_idx{i#4397}.0 + 1)] +[visit_exp x!`%`_idx{i#4397}.0] +[visit_exp x!`%`_idx{i#4397}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#4397] +[visit_id i#4397] +[visit_exp 1] +[check_dims] C X*#701 X*#716 datatype*#1 deftype*#15 deftype*#16 elemtype*#1 funcidx*#39 globaltype*#1 localtype*#3 memtype*#1 resulttype*#1 resulttype?#1 subtype subtype*#3 tabletype*#1 tagtype*#1 typeidx#314 typeidx#326 x +[visit_exp C] +[visit_id C] +[visit_exp `REC`_rectype(`%`_list{`X*#701`}(subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list{`X*#701`}(subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list{`X*#701`}(subtype*{subtype <- `subtype*`})] +[visit_exp `X*#701`] +[visit_id X*#701] +[visit_exp (subtype*{subtype <- `subtype*`})] +[visit_exp subtype*{subtype <- `subtype*`}] +[scope_enter subtype] +[visit_exp subtype] +[visit_id subtype] not free +[visit_id subtype] not free +[scope_exit subtype] +[visit_exp `subtype*`] +[visit_id subtype*] no dims +[visit_id subtype*] +[visit_exp `OK`_oktypeidx{typeidx#314}(x)] +[visit_exp typeidx#314] +[visit_id typeidx#314] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp ({`TYPES`{`deftype*#15`} [], `RECS`{`subtype*#3`} subtype*{subtype <- `subtype*`}, `TAGS`{`tagtype*#1`} [], `GLOBALS`{`globaltype*#1`} [], `MEMS`{`memtype*#1`} [], `TABLES`{`tabletype*#1`} [], `FUNCS`{`deftype*#16`} [], `DATAS`{`datatype*#1`} [], `ELEMS`{`elemtype*#1`} [], `LOCALS`{`localtype*#3`} [], `LABELS`{`resulttype*#1`} [], `RETURN`{`resulttype?#1`} ?(), `REFS`{`funcidx*#39`} []} +++ C, `REC`_rectype(`%`_list{`X*#716`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat{typeidx#326}(x, 0))] +[visit_exp {`TYPES`{`deftype*#15`} [], `RECS`{`subtype*#3`} subtype*{subtype <- `subtype*`}, `TAGS`{`tagtype*#1`} [], `GLOBALS`{`globaltype*#1`} [], `MEMS`{`memtype*#1`} [], `TABLES`{`tabletype*#1`} [], `FUNCS`{`deftype*#16`} [], `DATAS`{`datatype*#1`} [], `ELEMS`{`elemtype*#1`} [], `LOCALS`{`localtype*#3`} [], `LABELS`{`resulttype*#1`} [], `RETURN`{`resulttype?#1`} ?(), `REFS`{`funcidx*#39`} []} +++ C] +[visit_exp {`TYPES`{`deftype*#15`} [], `RECS`{`subtype*#3`} subtype*{subtype <- `subtype*`}, `TAGS`{`tagtype*#1`} [], `GLOBALS`{`globaltype*#1`} [], `MEMS`{`memtype*#1`} [], `TABLES`{`tabletype*#1`} [], `FUNCS`{`deftype*#16`} [], `DATAS`{`datatype*#1`} [], `ELEMS`{`elemtype*#1`} [], `LOCALS`{`localtype*#3`} [], `LABELS`{`resulttype*#1`} [], `RETURN`{`resulttype?#1`} ?(), `REFS`{`funcidx*#39`} []}] +[visit_exp `deftype*#15`] +[visit_id deftype*#15] +[visit_exp []] +[visit_exp `subtype*#3`] +[visit_id subtype*#3] +[visit_exp subtype*{subtype <- `subtype*`}] +[scope_enter subtype] +[visit_exp subtype] +[visit_id subtype] not free +[visit_id subtype] not free +[scope_exit subtype] +[visit_exp `subtype*`] +[visit_id subtype*] not free +[visit_id subtype*] no dims +[visit_exp `tagtype*#1`] +[visit_id tagtype*#1] +[visit_exp []] +[visit_exp `globaltype*#1`] +[visit_id globaltype*#1] +[visit_exp []] +[visit_exp `memtype*#1`] +[visit_id memtype*#1] +[visit_exp []] +[visit_exp `tabletype*#1`] +[visit_id tabletype*#1] +[visit_exp []] +[visit_exp `deftype*#16`] +[visit_id deftype*#16] +[visit_exp []] +[visit_exp `datatype*#1`] +[visit_id datatype*#1] +[visit_exp []] +[visit_exp `elemtype*#1`] +[visit_id elemtype*#1] +[visit_exp []] +[visit_exp `localtype*#3`] +[visit_id localtype*#3] +[visit_exp []] +[visit_exp `resulttype*#1`] +[visit_id resulttype*#1] +[visit_exp []] +[visit_exp `resulttype?#1`] +[visit_id resulttype?#1] +[visit_exp ?()] +[visit_exp `funcidx*#39`] +[visit_id funcidx*#39] +[visit_exp []] +[visit_exp C] +[visit_id C] not free +[visit_exp `REC`_rectype(`%`_list{`X*#716`}(subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list{`X*#716`}(subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list{`X*#716`}(subtype*{subtype <- `subtype*`})] +[visit_exp `X*#716`] +[visit_id X*#716] +[visit_exp (subtype*{subtype <- `subtype*`})] +[visit_exp subtype*{subtype <- `subtype*`}] +[scope_enter subtype] +[visit_exp subtype] +[visit_id subtype] not free +[visit_id subtype] not free +[scope_exit subtype] +[visit_exp `subtype*`] +[visit_id subtype*] not free +[visit_id subtype*] no dims +[visit_exp `OK`_oktypeidxnat{typeidx#326}(x, 0)] +[visit_exp typeidx#326] +[visit_id typeidx#326] +[visit_exp (x, 0)] +[visit_exp x] +[visit_id x] not free +[visit_exp 0] +[check_dims] C X*#741 i typeidx#338 x +[visit_exp C] +[visit_id C] +[visit_exp `REC`_rectype(`%`_list{`X*#741`}([]))] +[visit_exp (`%`_list{`X*#741`}([]))] +[visit_exp `%`_list{`X*#741`}([])] +[visit_exp `X*#741`] +[visit_id X*#741] +[visit_exp ([])] +[visit_exp []] +[visit_exp `OK`_oktypeidxnat{typeidx#338}(x, i)] +[visit_exp typeidx#338] +[visit_id typeidx#338] +[visit_exp (x, i)] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[check_dims] C X*#764 X*#777 i i#4503 i#4513 subtype subtype_1 typeidx#350 typeidx#362 typeidx#374 x +[visit_exp C] +[visit_id C] +[visit_exp `REC`_rectype(`%`_list{`X*#764`}([subtype_1] ++ subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list{`X*#764`}([subtype_1] ++ subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list{`X*#764`}([subtype_1] ++ subtype*{subtype <- `subtype*`})] +[visit_exp `X*#764`] +[visit_id X*#764] +[visit_exp ([subtype_1] ++ subtype*{subtype <- `subtype*`})] +[visit_exp [subtype_1] ++ subtype*{subtype <- `subtype*`}] +[visit_exp [subtype_1]] +[visit_exp subtype_1] +[visit_id subtype_1] +[visit_exp subtype*{subtype <- `subtype*`}] +[scope_enter subtype] +[visit_exp subtype] +[visit_id subtype] not free +[visit_id subtype] not free +[scope_exit subtype] +[visit_exp `subtype*`] +[visit_id subtype*] no dims +[visit_id subtype*] +[visit_exp `OK`_oktypeidxnat{typeidx#350}(x, i)] +[visit_exp typeidx#350] +[visit_id typeidx#350] +[visit_exp (x, i)] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp (C, subtype_1, `OK`_oktypeidxnat{typeidx#362}(x, i))] +[visit_exp C] +[visit_id C] not free +[visit_exp subtype_1] +[visit_id subtype_1] not free +[visit_exp `OK`_oktypeidxnat{typeidx#362}(x, i)] +[visit_exp typeidx#362] +[visit_id typeidx#362] +[visit_exp (x, i)] +[visit_exp x] +[visit_id x] not free +[visit_exp i] +[visit_id i] not free +[visit_exp (C, `REC`_rectype(`%`_list{`X*#777`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat{typeidx#374}(`%`_typeidx{i#4513}((x!`%`_idx{i#4503}.0 + 1)), (i + 1)))] +[visit_exp C] +[visit_id C] not free +[visit_exp `REC`_rectype(`%`_list{`X*#777`}(subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list{`X*#777`}(subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list{`X*#777`}(subtype*{subtype <- `subtype*`})] +[visit_exp `X*#777`] +[visit_id X*#777] +[visit_exp (subtype*{subtype <- `subtype*`})] +[visit_exp subtype*{subtype <- `subtype*`}] +[scope_enter subtype] +[visit_exp subtype] +[visit_id subtype] not free +[visit_id subtype] not free +[scope_exit subtype] +[visit_exp `subtype*`] +[visit_id subtype*] not free +[visit_id subtype*] no dims +[visit_exp `OK`_oktypeidxnat{typeidx#374}(`%`_typeidx{i#4513}((x!`%`_idx{i#4503}.0 + 1)), (i + 1))] +[visit_exp typeidx#374] +[visit_id typeidx#374] +[visit_exp (`%`_typeidx{i#4513}((x!`%`_idx{i#4503}.0 + 1)), (i + 1))] +[visit_exp `%`_typeidx{i#4513}((x!`%`_idx{i#4503}.0 + 1))] +[visit_exp i#4513] +[visit_id i#4513] +[visit_exp ((x!`%`_idx{i#4503}.0 + 1))] +[visit_exp (x!`%`_idx{i#4503}.0 + 1)] +[visit_exp x!`%`_idx{i#4503}.0] +[visit_exp x!`%`_idx{i#4503}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#4503] +[visit_id i#4503] +[visit_exp 1] +[visit_exp (i + 1)] +[visit_exp i] +[visit_id i] not free +[visit_exp 1] +[check_dims] C X*#792 i n n#541 rectype rectype#577 subtype typeidx#386 x +[visit_exp C] +[visit_id C] +[visit_exp `_DEF`_deftype{rectype#577, n#541}(rectype, i)] +[visit_exp rectype#577] +[visit_id rectype#577] +[visit_exp n#541] +[visit_id n#541] +[visit_exp (rectype, i)] +[visit_exp rectype] +[visit_id rectype] +[visit_exp i] +[visit_id i] +[visit_exp (C, rectype, `OK`_oktypeidx{typeidx#386}(x))] +[visit_exp C] +[visit_id C] not free +[visit_exp rectype] +[visit_id rectype] not free +[visit_exp `OK`_oktypeidx{typeidx#386}(x)] +[visit_exp typeidx#386] +[visit_id typeidx#386] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp (rectype = `REC`_rectype(`%`_list{`X*#792`}(subtype^n{subtype <- `subtype*`})))] +[visit_exp rectype] +[visit_id rectype] not free +[visit_exp `REC`_rectype(`%`_list{`X*#792`}(subtype^n{subtype <- `subtype*`}))] +[visit_exp (`%`_list{`X*#792`}(subtype^n{subtype <- `subtype*`}))] +[visit_exp `%`_list{`X*#792`}(subtype^n{subtype <- `subtype*`})] +[visit_exp `X*#792`] +[visit_id X*#792] +[visit_exp (subtype^n{subtype <- `subtype*`})] +[visit_exp subtype^n{subtype <- `subtype*`}] +[scope_enter subtype] +[visit_exp subtype] +[visit_id subtype] not free +[visit_id subtype] not free +[scope_exit subtype] +[visit_exp n] +[visit_id n] +[visit_exp `subtype*`] +[visit_id subtype*] no dims +[visit_id subtype*] +[visit_exp (i < n)] +[visit_exp i] +[visit_id i] not free +[visit_exp n] +[visit_id n] not free +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] C i#4549 i#4584 k m n u64#48 u64?#47 +[visit_exp C] +[visit_id C] +[visit_exp `[%..%]`_limits{u64#48, `u64?#47`}(`%`_u64{i#4549}(n), `%`_u64{i#4584}(m)?{i#4584 <- `i#4584?`, m <- `m?`})] +[visit_exp u64#48] +[visit_id u64#48] +[visit_exp `u64?#47`] +[visit_id u64?#47] +[visit_exp (`%`_u64{i#4549}(n), `%`_u64{i#4584}(m)?{i#4584 <- `i#4584?`, m <- `m?`})] +[visit_exp `%`_u64{i#4549}(n)] +[visit_exp i#4549] +[visit_id i#4549] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `%`_u64{i#4584}(m)?{i#4584 <- `i#4584?`, m <- `m?`}] +[scope_enter i#4584] +[scope_enter m] +[visit_exp `%`_u64{i#4584}(m)] +[visit_exp i#4584] +[visit_id i#4584] not free +[visit_exp (m)] +[visit_exp m] +[visit_id m] not free +[visit_id i#4584] not free +[visit_id m] not free +[scope_exit m] +[scope_exit i#4584] +[visit_exp `i#4584?`] +[visit_id i#4584?] no dims +[visit_id i#4584?] +[visit_exp `m?`] +[visit_id m?] no dims +[visit_id m?] +[visit_exp k] +[visit_id k] +[visit_exp (n <= k)] +[visit_exp n] +[visit_id n] not free +[visit_exp k] +[visit_id k] not free +[scope_enter m] +[visit_exp ((n <= m) /\ (m <= k))] +[visit_exp (n <= m)] +[visit_exp n] +[visit_id n] not free +[visit_exp m] +[visit_id m] not free +[visit_exp (m <= k)] +[visit_exp m] +[visit_id m] not free +[visit_exp k] +[visit_id k] not free +[visit_id m] not free +[scope_exit m] +[visit_exp `m?`] +[visit_id m?] not free +[visit_id m?] no dims +[check_dims] C X*#807 X*#820 resulttype#33 t_1 t_2 typeuse +[visit_exp C] +[visit_id C] +[visit_exp typeuse] +[visit_id typeuse] +[visit_exp (C, typeuse)] +[visit_exp C] +[visit_id C] not free +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_exp (typeuse, C, `FUNC%->%`_comptype{resulttype#33}(`%`_resulttype{`X*#807`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#820`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_exp C] +[visit_id C] not free +[visit_exp `FUNC%->%`_comptype{resulttype#33}(`%`_resulttype{`X*#807`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#820`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#33] +[visit_id resulttype#33] +[visit_exp (`%`_resulttype{`X*#807`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#820`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#807`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#807`] +[visit_id X*#807] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp `%`_resulttype{`X*#820`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#820`] +[visit_id X*#820] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[check_dims] C mut?#333 t valtype#247 +[visit_exp C] +[visit_id C] +[visit_exp `%%`_globaltype{`mut?#333`, valtype#247}(`MUT`_mut?{}, t)] +[visit_exp `mut?#333`] +[visit_id mut?#333] +[visit_exp valtype#247] +[visit_id valtype#247] +[visit_exp (`MUT`_mut?{}, t)] +[visit_exp `MUT`_mut?{}] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp t] +[visit_id t] +[visit_exp (C, t)] +[visit_exp C] +[visit_id C] not free +[visit_exp t] +[visit_id t] not free +[check_dims] C addrtype addrtype#297 limits limits#297 +[visit_exp C] +[visit_id C] +[visit_exp `%%PAGE`_memtype{addrtype#297, limits#297}(addrtype, limits)] +[visit_exp addrtype#297] +[visit_id addrtype#297] +[visit_exp limits#297] +[visit_id limits#297] +[visit_exp (addrtype, limits)] +[visit_exp addrtype] +[visit_id addrtype] +[visit_exp limits] +[visit_id limits] +[visit_exp (C, limits, (2 ^ 16))] +[visit_exp C] +[visit_id C] not free +[visit_exp limits] +[visit_id limits] not free +[visit_exp (2 ^ 16)] +[visit_exp 2] +[visit_exp 16] +[check_dims] C addrtype addrtype#309 limits limits#309 reftype reftype#311 +[visit_exp C] +[visit_id C] +[visit_exp `%%%`_tabletype{addrtype#309, limits#309, reftype#311}(addrtype, limits, reftype)] +[visit_exp addrtype#309] +[visit_id addrtype#309] +[visit_exp limits#309] +[visit_id limits#309] +[visit_exp reftype#311] +[visit_id reftype#311] +[visit_exp (addrtype, limits, reftype)] +[visit_exp addrtype] +[visit_id addrtype] +[visit_exp limits] +[visit_id limits] +[visit_exp reftype] +[visit_id reftype] +[visit_exp (C, limits, ((((2 ^ 32) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp C] +[visit_id C] not free +[visit_exp limits] +[visit_id limits] not free +[visit_exp ((((2 ^ 32) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((2 ^ 32) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((2 ^ 32) : nat <:> int)] +[visit_exp (2 ^ 32)] +[visit_exp 2] +[visit_exp 32] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp (C, reftype)] +[visit_exp C] +[visit_id C] not free +[visit_exp reftype] +[visit_id reftype] not free +[check_dims] C tagtype tagtype#89 +[visit_exp C] +[visit_id C] +[visit_exp `TAG`_externtype{tagtype#89}(tagtype)] +[visit_exp tagtype#89] +[visit_id tagtype#89] +[visit_exp (tagtype)] +[visit_exp tagtype] +[visit_id tagtype] +[visit_exp (C, tagtype)] +[visit_exp C] +[visit_id C] not free +[visit_exp tagtype] +[visit_id tagtype] not free +[check_dims] C globaltype globaltype#101 +[visit_exp C] +[visit_id C] +[visit_exp `GLOBAL`_externtype{globaltype#101}(globaltype)] +[visit_exp globaltype#101] +[visit_id globaltype#101] +[visit_exp (globaltype)] +[visit_exp globaltype] +[visit_id globaltype] +[visit_exp (C, globaltype)] +[visit_exp C] +[visit_id C] not free +[visit_exp globaltype] +[visit_id globaltype] not free +[check_dims] C memtype memtype#113 +[visit_exp C] +[visit_id C] +[visit_exp `MEM`_externtype{memtype#113}(memtype)] +[visit_exp memtype#113] +[visit_id memtype#113] +[visit_exp (memtype)] +[visit_exp memtype] +[visit_id memtype] +[visit_exp (C, memtype)] +[visit_exp C] +[visit_id C] not free +[visit_exp memtype] +[visit_id memtype] not free +[check_dims] C tabletype tabletype#127 +[visit_exp C] +[visit_id C] +[visit_exp `TABLE`_externtype{tabletype#127}(tabletype)] +[visit_exp tabletype#127] +[visit_id tabletype#127] +[visit_exp (tabletype)] +[visit_exp tabletype] +[visit_id tabletype] +[visit_exp (C, tabletype)] +[visit_exp C] +[visit_id C] not free +[visit_exp tabletype] +[visit_id tabletype] not free +[check_dims] C X*#835 X*#848 resulttype#36 t_1 t_2 typeuse typeuse#17 +[visit_exp C] +[visit_id C] +[visit_exp `FUNC`_externtype{typeuse#17}(typeuse)] +[visit_exp typeuse#17] +[visit_id typeuse#17] +[visit_exp (typeuse)] +[visit_exp typeuse] +[visit_id typeuse] +[visit_exp (C, typeuse)] +[visit_exp C] +[visit_id C] not free +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_exp (typeuse, C, `FUNC%->%`_comptype{resulttype#36}(`%`_resulttype{`X*#835`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#848`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_exp C] +[visit_id C] not free +[visit_exp `FUNC%->%`_comptype{resulttype#36}(`%`_resulttype{`X*#835`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#848`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#36] +[visit_id resulttype#36] +[visit_exp (`%`_resulttype{`X*#835`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#848`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#835`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#835`] +[visit_id X*#835] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp `%`_resulttype{`X*#848`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#848`] +[visit_id X*#848] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] C numtype +[visit_exp C] +[visit_id C] +[visit_exp numtype] +[visit_id numtype] +[visit_exp numtype] +[visit_id numtype] not free +[check_dims] C vectype +[visit_exp C] +[visit_id C] +[visit_exp vectype] +[visit_id vectype] +[visit_exp vectype] +[visit_id vectype] not free +[check_dims] C heaptype +[visit_exp C] +[visit_id C] +[visit_exp heaptype] +[visit_id heaptype] +[visit_exp heaptype] +[visit_id heaptype] not free +[check_dims] C heaptype' heaptype_1 heaptype_2 +[visit_exp C] +[visit_id C] +[visit_exp heaptype_1] +[visit_id heaptype_1] +[visit_exp heaptype_2] +[visit_id heaptype_2] +[visit_exp (C, heaptype')] +[visit_exp C] +[visit_id C] not free +[visit_exp heaptype'] +[visit_id heaptype'] +[visit_exp (C, heaptype_1, heaptype')] +[visit_exp C] +[visit_id C] not free +[visit_exp heaptype_1] +[visit_id heaptype_1] not free +[visit_exp heaptype'] +[visit_id heaptype'] not free +[visit_exp (C, heaptype', heaptype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp heaptype'] +[visit_id heaptype'] not free +[visit_exp heaptype_2] +[visit_id heaptype_2] not free +[check_dims] C +[visit_exp C] +[visit_id C] +[visit_exp `EQ`_heaptype] +[visit_exp ()] +[visit_exp `ANY`_heaptype] +[visit_exp ()] +[check_dims] C +[visit_exp C] +[visit_id C] +[visit_exp `I31`_heaptype] +[visit_exp ()] +[visit_exp `EQ`_heaptype] +[visit_exp ()] +[check_dims] C +[visit_exp C] +[visit_id C] +[visit_exp `STRUCT`_heaptype] +[visit_exp ()] +[visit_exp `EQ`_heaptype] +[visit_exp ()] +[check_dims] C +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY`_heaptype] +[visit_exp ()] +[visit_exp `EQ`_heaptype] +[visit_exp ()] +[check_dims] C X*#863 deftype fieldtype +[visit_exp C] +[visit_id C] +[visit_exp (deftype : deftype <: heaptype)] +[visit_exp deftype] +[visit_id deftype] +[visit_exp `STRUCT`_heaptype] +[visit_exp ()] +[visit_exp (deftype, `STRUCT`_comptype(`%`_list{`X*#863`}(fieldtype*{fieldtype <- `fieldtype*`})))] +[visit_exp deftype] +[visit_id deftype] not free +[visit_exp `STRUCT`_comptype(`%`_list{`X*#863`}(fieldtype*{fieldtype <- `fieldtype*`}))] +[visit_exp (`%`_list{`X*#863`}(fieldtype*{fieldtype <- `fieldtype*`}))] +[visit_exp `%`_list{`X*#863`}(fieldtype*{fieldtype <- `fieldtype*`})] +[visit_exp `X*#863`] +[visit_id X*#863] +[visit_exp (fieldtype*{fieldtype <- `fieldtype*`})] +[visit_exp fieldtype*{fieldtype <- `fieldtype*`}] +[scope_enter fieldtype] +[visit_exp fieldtype] +[visit_id fieldtype] not free +[visit_id fieldtype] not free +[scope_exit fieldtype] +[visit_exp `fieldtype*`] +[visit_id fieldtype*] no dims +[visit_id fieldtype*] +[check_dims] C deftype fieldtype fieldtype#9 +[visit_exp C] +[visit_id C] +[visit_exp (deftype : deftype <: heaptype)] +[visit_exp deftype] +[visit_id deftype] +[visit_exp `ARRAY`_heaptype] +[visit_exp ()] +[visit_exp (deftype, `ARRAY`_comptype{fieldtype#9}(fieldtype))] +[visit_exp deftype] +[visit_id deftype] not free +[visit_exp `ARRAY`_comptype{fieldtype#9}(fieldtype)] +[visit_exp fieldtype#9] +[visit_id fieldtype#9] +[visit_exp (fieldtype)] +[visit_exp fieldtype] +[visit_id fieldtype] +[check_dims] C X*#878 X*#891 deftype resulttype#39 t_1 t_2 +[visit_exp C] +[visit_id C] +[visit_exp (deftype : deftype <: heaptype)] +[visit_exp deftype] +[visit_id deftype] +[visit_exp `FUNC`_heaptype] +[visit_exp ()] +[visit_exp (deftype, `FUNC%->%`_comptype{resulttype#39}(`%`_resulttype{`X*#878`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#891`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp deftype] +[visit_id deftype] not free +[visit_exp `FUNC%->%`_comptype{resulttype#39}(`%`_resulttype{`X*#878`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#891`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#39] +[visit_id resulttype#39] +[visit_exp (`%`_resulttype{`X*#878`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#891`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#878`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#878`] +[visit_id X*#878] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp `%`_resulttype{`X*#891`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#891`] +[visit_id X*#891] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[check_dims] C deftype_1 deftype_2 +[visit_exp C] +[visit_id C] +[visit_exp (deftype_1 : deftype <: heaptype)] +[visit_exp deftype_1] +[visit_id deftype_1] +[visit_exp (deftype_2 : deftype <: heaptype)] +[visit_exp deftype_2] +[visit_id deftype_2] +[visit_exp (C, deftype_1, deftype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp deftype_1] +[visit_id deftype_1] not free +[visit_exp deftype_2] +[visit_id deftype_2] not free +[check_dims] C deftype*#17 heaptype i#4606 typeidx typeidx#388 +[visit_exp C] +[visit_id C] +[visit_exp `_IDX`_heaptype{typeidx#388}(typeidx)] +[visit_exp typeidx#388] +[visit_id typeidx#388] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp heaptype] +[visit_id heaptype] +[visit_exp (C, (C.`TYPES`_context{`deftype*#17`}[typeidx!`%`_typeidx{i#4606}.0] : deftype <: heaptype), heaptype)] +[visit_exp C] +[visit_id C] not free +[visit_exp (C.`TYPES`_context{`deftype*#17`}[typeidx!`%`_typeidx{i#4606}.0] : deftype <: heaptype)] +[visit_exp C.`TYPES`_context{`deftype*#17`}[typeidx!`%`_typeidx{i#4606}.0]] +[visit_exp C.`TYPES`_context{`deftype*#17`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#17`] +[visit_id deftype*#17] +[visit_exp typeidx!`%`_typeidx{i#4606}.0] +[visit_exp typeidx!`%`_typeidx{i#4606}] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp i#4606] +[visit_id i#4606] +[visit_exp heaptype] +[visit_id heaptype] not free +[check_dims] C deftype*#18 heaptype i#4628 typeidx typeidx#390 +[visit_exp C] +[visit_id C] +[visit_exp heaptype] +[visit_id heaptype] +[visit_exp `_IDX`_heaptype{typeidx#390}(typeidx)] +[visit_exp typeidx#390] +[visit_id typeidx#390] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp (C, heaptype, (C.`TYPES`_context{`deftype*#18`}[typeidx!`%`_typeidx{i#4628}.0] : deftype <: heaptype))] +[visit_exp C] +[visit_id C] not free +[visit_exp heaptype] +[visit_id heaptype] not free +[visit_exp (C.`TYPES`_context{`deftype*#18`}[typeidx!`%`_typeidx{i#4628}.0] : deftype <: heaptype)] +[visit_exp C.`TYPES`_context{`deftype*#18`}[typeidx!`%`_typeidx{i#4628}.0]] +[visit_exp C.`TYPES`_context{`deftype*#18`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#18`] +[visit_id deftype*#18] +[visit_exp typeidx!`%`_typeidx{i#4628}.0] +[visit_exp typeidx!`%`_typeidx{i#4628}] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp i#4628] +[visit_id i#4628] +[check_dims] C comptype#425 ct final final?#425 i j n#573 subtype*#4 typeuse typeuse*#425 +[visit_exp C] +[visit_id C] +[visit_exp `REC`_heaptype{n#573}(i)] +[visit_exp n#573] +[visit_id n#573] +[visit_exp (i)] +[visit_exp i] +[visit_id i] +[visit_exp (typeuse*{typeuse <- `typeuse*`}[j] : typeuse <: heaptype)] +[visit_exp typeuse*{typeuse <- `typeuse*`}[j]] +[visit_exp typeuse*{typeuse <- `typeuse*`}] +[scope_enter typeuse] +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_id typeuse] not free +[scope_exit typeuse] +[visit_exp `typeuse*`] +[visit_id typeuse*] no dims +[visit_id typeuse*] +[visit_exp j] +[visit_id j] +[visit_exp (C.`RECS`_context{`subtype*#4`}[i] = `SUB`_subtype{`final?#425`, `typeuse*#425`, comptype#425}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct))] +[visit_exp C.`RECS`_context{`subtype*#4`}[i]] +[visit_exp C.`RECS`_context{`subtype*#4`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `subtype*#4`] +[visit_id subtype*#4] +[visit_exp i] +[visit_id i] not free +[visit_exp `SUB`_subtype{`final?#425`, `typeuse*#425`, comptype#425}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] +[visit_exp `final?#425`] +[visit_id final?#425] +[visit_exp `typeuse*#425`] +[visit_id typeuse*#425] +[visit_exp comptype#425] +[visit_id comptype#425] +[visit_exp (final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] +[visit_exp final?{final <- `final?`}] +[scope_enter final] +[visit_exp final] +[visit_id final] not free +[visit_id final] not free +[scope_exit final] +[visit_exp `final?`] +[visit_id final?] no dims +[visit_id final?] +[visit_exp typeuse*{typeuse <- `typeuse*`}] +[scope_enter typeuse] +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_id typeuse] not free +[scope_exit typeuse] +[visit_exp `typeuse*`] +[visit_id typeuse*] not free +[visit_id typeuse*] no dims +[visit_exp ct] +[visit_id ct] +[check_dims] C heaptype +[visit_exp C] +[visit_id C] +[visit_exp `NONE`_heaptype] +[visit_exp ()] +[visit_exp heaptype] +[visit_id heaptype] +[visit_exp (C, heaptype, `ANY`_heaptype)] +[visit_exp C] +[visit_id C] not free +[visit_exp heaptype] +[visit_id heaptype] not free +[visit_exp `ANY`_heaptype] +[visit_exp ()] +[check_dims] C heaptype +[visit_exp C] +[visit_id C] +[visit_exp `NOFUNC`_heaptype] +[visit_exp ()] +[visit_exp heaptype] +[visit_id heaptype] +[visit_exp (C, heaptype, `FUNC`_heaptype)] +[visit_exp C] +[visit_id C] not free +[visit_exp heaptype] +[visit_id heaptype] not free +[visit_exp `FUNC`_heaptype] +[visit_exp ()] +[check_dims] C heaptype +[visit_exp C] +[visit_id C] +[visit_exp `NOEXN`_heaptype] +[visit_exp ()] +[visit_exp heaptype] +[visit_id heaptype] +[visit_exp (C, heaptype, `EXN`_heaptype)] +[visit_exp C] +[visit_id C] not free +[visit_exp heaptype] +[visit_id heaptype] not free +[visit_exp `EXN`_heaptype] +[visit_exp ()] +[check_dims] C heaptype +[visit_exp C] +[visit_id C] +[visit_exp `NOEXTERN`_heaptype] +[visit_exp ()] +[visit_exp heaptype] +[visit_id heaptype] +[visit_exp (C, heaptype, `EXTERN`_heaptype)] +[visit_exp C] +[visit_id C] not free +[visit_exp heaptype] +[visit_id heaptype] not free +[visit_exp `EXTERN`_heaptype] +[visit_exp ()] +[check_dims] C heaptype +[visit_exp C] +[visit_id C] +[visit_exp `BOT`_heaptype] +[visit_exp ()] +[visit_exp heaptype] +[visit_id heaptype] +[check_dims] C heaptype#451 heaptype#463 ht_1 ht_2 null?#449 null?#461 +[visit_exp C] +[visit_id C] +[visit_exp `REF`_reftype{`null?#449`, heaptype#451}(?(), ht_1)] +[visit_exp `null?#449`] +[visit_id null?#449] +[visit_exp heaptype#451] +[visit_id heaptype#451] +[visit_exp (?(), ht_1)] +[visit_exp ?()] +[visit_exp ht_1] +[visit_id ht_1] +[visit_exp `REF`_reftype{`null?#461`, heaptype#463}(?(), ht_2)] +[visit_exp `null?#461`] +[visit_id null?#461] +[visit_exp heaptype#463] +[visit_id heaptype#463] +[visit_exp (?(), ht_2)] +[visit_exp ?()] +[visit_exp ht_2] +[visit_id ht_2] +[visit_exp (C, ht_1, ht_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp ht_1] +[visit_id ht_1] not free +[visit_exp ht_2] +[visit_id ht_2] not free +[check_dims] C heaptype#475 heaptype#487 ht_1 ht_2 null?#473 null?#485 +[visit_exp C] +[visit_id C] +[visit_exp `REF`_reftype{`null?#473`, heaptype#475}(`NULL`_null?{}, ht_1)] +[visit_exp `null?#473`] +[visit_id null?#473] +[visit_exp heaptype#475] +[visit_id heaptype#475] +[visit_exp (`NULL`_null?{}, ht_1)] +[visit_exp `NULL`_null?{}] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht_1] +[visit_id ht_1] +[visit_exp `REF`_reftype{`null?#485`, heaptype#487}(?(`NULL`_null), ht_2)] +[visit_exp `null?#485`] +[visit_id null?#485] +[visit_exp heaptype#487] +[visit_id heaptype#487] +[visit_exp (?(`NULL`_null), ht_2)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht_2] +[visit_id ht_2] +[visit_exp (C, ht_1, ht_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp ht_1] +[visit_id ht_1] not free +[visit_exp ht_2] +[visit_id ht_2] not free +[check_dims] C numtype_1 numtype_2 +[visit_exp C] +[visit_id C] +[visit_exp (numtype_1 : numtype <: valtype)] +[visit_exp numtype_1] +[visit_id numtype_1] +[visit_exp (numtype_2 : numtype <: valtype)] +[visit_exp numtype_2] +[visit_id numtype_2] +[visit_exp (C, numtype_1, numtype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp numtype_1] +[visit_id numtype_1] not free +[visit_exp numtype_2] +[visit_id numtype_2] not free +[check_dims] C vectype_1 vectype_2 +[visit_exp C] +[visit_id C] +[visit_exp (vectype_1 : vectype <: valtype)] +[visit_exp vectype_1] +[visit_id vectype_1] +[visit_exp (vectype_2 : vectype <: valtype)] +[visit_exp vectype_2] +[visit_id vectype_2] +[visit_exp (C, vectype_1, vectype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp vectype_1] +[visit_id vectype_1] not free +[visit_exp vectype_2] +[visit_id vectype_2] not free +[check_dims] C reftype_1 reftype_2 +[visit_exp C] +[visit_id C] +[visit_exp (reftype_1 : reftype <: valtype)] +[visit_exp reftype_1] +[visit_id reftype_1] +[visit_exp (reftype_2 : reftype <: valtype)] +[visit_exp reftype_2] +[visit_id reftype_2] +[visit_exp (C, reftype_1, reftype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp reftype_1] +[visit_id reftype_1] not free +[visit_exp reftype_2] +[visit_id reftype_2] not free +[check_dims] C valtype +[visit_exp C] +[visit_id C] +[visit_exp `BOT`_valtype] +[visit_exp ()] +[visit_exp valtype] +[visit_id valtype] +[check_dims] +[check_dims] +[check_dims] C X*#904 X*#917 t_1 t_2 +[visit_exp C] +[visit_id C] +[visit_exp `%`_resulttype{`X*#904`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#904`] +[visit_id X*#904] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp `%`_resulttype{`X*#917`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#917`] +[visit_id X*#917] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[scope_enter t_1] +[scope_enter t_2] +[visit_exp (C, t_1, t_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp t_1] +[visit_id t_1] not free +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_1] not free +[visit_id t_2] not free +[scope_exit t_2] +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#1047 X*#1060 X*#1073 X*#1086 X*#1099 X*#930 X*#982 X*#995 i#4865 init#65 localidx*#59 localidx*#71 localtype*#4 resulttype#59 resulttype#79 t t_11 t_12 t_21 t_22 valtype#271 x x_1 x_2 +[visit_exp C] +[visit_id C] +[visit_exp `%->_%%`_instrtype{resulttype#59, `localidx*#59`}(`%`_resulttype{`X*#930`}(t_11*{t_11 <- `t_11*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#982`}(t_12*{t_12 <- `t_12*`}))] +[visit_exp resulttype#59] +[visit_id resulttype#59] +[visit_exp `localidx*#59`] +[visit_id localidx*#59] +[visit_exp (`%`_resulttype{`X*#930`}(t_11*{t_11 <- `t_11*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#982`}(t_12*{t_12 <- `t_12*`}))] +[visit_exp `%`_resulttype{`X*#930`}(t_11*{t_11 <- `t_11*`})] +[visit_exp `X*#930`] +[visit_id X*#930] +[visit_exp (t_11*{t_11 <- `t_11*`})] +[visit_exp t_11*{t_11 <- `t_11*`}] +[scope_enter t_11] +[visit_exp t_11] +[visit_id t_11] not free +[visit_id t_11] not free +[scope_exit t_11] +[visit_exp `t_11*`] +[visit_id t_11*] no dims +[visit_id t_11*] +[visit_exp x_1*{x_1 <- `x_1*`}] +[scope_enter x_1] +[visit_exp x_1] +[visit_id x_1] not free +[visit_id x_1] not free +[scope_exit x_1] +[visit_exp `x_1*`] +[visit_id x_1*] no dims +[visit_id x_1*] +[visit_exp `%`_resulttype{`X*#982`}(t_12*{t_12 <- `t_12*`})] +[visit_exp `X*#982`] +[visit_id X*#982] +[visit_exp (t_12*{t_12 <- `t_12*`})] +[visit_exp t_12*{t_12 <- `t_12*`}] +[scope_enter t_12] +[visit_exp t_12] +[visit_id t_12] not free +[visit_id t_12] not free +[scope_exit t_12] +[visit_exp `t_12*`] +[visit_id t_12*] no dims +[visit_id t_12*] +[visit_exp `%->_%%`_instrtype{resulttype#79, `localidx*#71`}(`%`_resulttype{`X*#995`}(t_21*{t_21 <- `t_21*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#1047`}(t_22*{t_22 <- `t_22*`}))] +[visit_exp resulttype#79] +[visit_id resulttype#79] +[visit_exp `localidx*#71`] +[visit_id localidx*#71] +[visit_exp (`%`_resulttype{`X*#995`}(t_21*{t_21 <- `t_21*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#1047`}(t_22*{t_22 <- `t_22*`}))] +[visit_exp `%`_resulttype{`X*#995`}(t_21*{t_21 <- `t_21*`})] +[visit_exp `X*#995`] +[visit_id X*#995] +[visit_exp (t_21*{t_21 <- `t_21*`})] +[visit_exp t_21*{t_21 <- `t_21*`}] +[scope_enter t_21] +[visit_exp t_21] +[visit_id t_21] not free +[visit_id t_21] not free +[scope_exit t_21] +[visit_exp `t_21*`] +[visit_id t_21*] no dims +[visit_id t_21*] +[visit_exp x_2*{x_2 <- `x_2*`}] +[scope_enter x_2] +[visit_exp x_2] +[visit_id x_2] not free +[visit_id x_2] not free +[scope_exit x_2] +[visit_exp `x_2*`] +[visit_id x_2*] no dims +[visit_id x_2*] +[visit_exp `%`_resulttype{`X*#1047`}(t_22*{t_22 <- `t_22*`})] +[visit_exp `X*#1047`] +[visit_id X*#1047] +[visit_exp (t_22*{t_22 <- `t_22*`})] +[visit_exp t_22*{t_22 <- `t_22*`}] +[scope_enter t_22] +[visit_exp t_22] +[visit_id t_22] not free +[visit_id t_22] not free +[scope_exit t_22] +[visit_exp `t_22*`] +[visit_id t_22*] no dims +[visit_id t_22*] +[visit_exp (C, `%`_resulttype{`X*#1060`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1073`}(t_11*{t_11 <- `t_11*`}))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#1060`}(t_21*{t_21 <- `t_21*`})] +[visit_exp `X*#1060`] +[visit_id X*#1060] +[visit_exp (t_21*{t_21 <- `t_21*`})] +[visit_exp t_21*{t_21 <- `t_21*`}] +[scope_enter t_21] +[visit_exp t_21] +[visit_id t_21] not free +[visit_id t_21] not free +[scope_exit t_21] +[visit_exp `t_21*`] +[visit_id t_21*] not free +[visit_id t_21*] no dims +[visit_exp `%`_resulttype{`X*#1073`}(t_11*{t_11 <- `t_11*`})] +[visit_exp `X*#1073`] +[visit_id X*#1073] +[visit_exp (t_11*{t_11 <- `t_11*`})] +[visit_exp t_11*{t_11 <- `t_11*`}] +[scope_enter t_11] +[visit_exp t_11] +[visit_id t_11] not free +[visit_id t_11] not free +[scope_exit t_11] +[visit_exp `t_11*`] +[visit_id t_11*] not free +[visit_id t_11*] no dims +[visit_exp (C, `%`_resulttype{`X*#1086`}(t_12*{t_12 <- `t_12*`}), `%`_resulttype{`X*#1099`}(t_22*{t_22 <- `t_22*`}))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#1086`}(t_12*{t_12 <- `t_12*`})] +[visit_exp `X*#1086`] +[visit_id X*#1086] +[visit_exp (t_12*{t_12 <- `t_12*`})] +[visit_exp t_12*{t_12 <- `t_12*`}] +[scope_enter t_12] +[visit_exp t_12] +[visit_id t_12] not free +[visit_id t_12] not free +[scope_exit t_12] +[visit_exp `t_12*`] +[visit_id t_12*] not free +[visit_id t_12*] no dims +[visit_exp `%`_resulttype{`X*#1099`}(t_22*{t_22 <- `t_22*`})] +[visit_exp `X*#1099`] +[visit_id X*#1099] +[visit_exp (t_22*{t_22 <- `t_22*`})] +[visit_exp t_22*{t_22 <- `t_22*`}] +[scope_enter t_22] +[visit_exp t_22] +[visit_id t_22] not free +[visit_id t_22] not free +[scope_exit t_22] +[visit_exp `t_22*`] +[visit_id t_22*] not free +[visit_id t_22*] no dims +[visit_exp (x*{x <- `x*`} = $setminus_(syntax localidx, x_2*{x_2 <- `x_2*`}, x_1*{x_1 <- `x_1*`}))] +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp $setminus_(syntax localidx, x_2*{x_2 <- `x_2*`}, x_1*{x_1 <- `x_1*`})] +[visit_exp x_2*{x_2 <- `x_2*`}] +[scope_enter x_2] +[visit_exp x_2] +[visit_id x_2] not free +[visit_id x_2] not free +[scope_exit x_2] +[visit_exp `x_2*`] +[visit_id x_2*] not free +[visit_id x_2*] no dims +[visit_exp x_1*{x_1 <- `x_1*`}] +[scope_enter x_1] +[visit_exp x_1] +[visit_id x_1] not free +[visit_id x_1] not free +[scope_exit x_1] +[visit_exp `x_1*`] +[visit_id x_1*] not free +[visit_id x_1*] no dims +[scope_enter i#4865] +[scope_enter init#65] +[scope_enter localtype*#4] +[scope_enter t] +[scope_enter valtype#271] +[scope_enter x] +[visit_exp (C.`LOCALS`_context{`localtype*#4`}[x!`%`_idx{i#4865}.0] = `%%`_localtype{init#65, valtype#271}(`SET`_init, t))] +[visit_exp C.`LOCALS`_context{`localtype*#4`}[x!`%`_idx{i#4865}.0]] +[visit_exp C.`LOCALS`_context{`localtype*#4`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `localtype*#4`] +[visit_id localtype*#4] not free +[visit_exp x!`%`_idx{i#4865}.0] +[visit_exp x!`%`_idx{i#4865}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#4865] +[visit_id i#4865] not free +[visit_exp `%%`_localtype{init#65, valtype#271}(`SET`_init, t)] +[visit_exp init#65] +[visit_id init#65] not free +[visit_exp valtype#271] +[visit_id valtype#271] not free +[visit_exp (`SET`_init, t)] +[visit_exp `SET`_init] +[visit_exp ()] +[visit_exp t] +[visit_id t] not free +[visit_id i#4865] not free +[visit_id init#65] not free +[visit_id localtype*#4] not free +[visit_id t] not free +[visit_id valtype#271] not free +[visit_id x] not free +[scope_exit x] +[scope_exit valtype#271] +[scope_exit t] +[scope_exit localtype*#4] +[scope_exit init#65] +[scope_exit i#4865] +[visit_exp `i#4865*`] +[visit_id i#4865*] no dims +[visit_id i#4865*] +[visit_exp `init#65*`] +[visit_id init#65*] no dims +[visit_id init#65*] +[visit_exp `localtype*#4*`] +[visit_id localtype*#4*] no dims +[visit_id localtype*#4*] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp `valtype#271*`] +[visit_id valtype#271*] no dims +[visit_id valtype#271*] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[check_dims] +[check_dims] +[check_dims] +[check_dims] C packtype +[visit_exp C] +[visit_id C] +[visit_exp packtype] +[visit_id packtype] +[visit_exp packtype] +[visit_id packtype] not free +[check_dims] C valtype_1 valtype_2 +[visit_exp C] +[visit_id C] +[visit_exp (valtype_1 : valtype <: storagetype)] +[visit_exp valtype_1] +[visit_id valtype_1] +[visit_exp (valtype_2 : valtype <: storagetype)] +[visit_exp valtype_2] +[visit_id valtype_2] +[visit_exp (C, valtype_1, valtype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp valtype_1] +[visit_id valtype_1] not free +[visit_exp valtype_2] +[visit_id valtype_2] not free +[check_dims] C packtype_1 packtype_2 +[visit_exp C] +[visit_id C] +[visit_exp (packtype_1 : packtype <: storagetype)] +[visit_exp packtype_1] +[visit_id packtype_1] +[visit_exp (packtype_2 : packtype <: storagetype)] +[visit_exp packtype_2] +[visit_id packtype_2] +[visit_exp (C, packtype_1, packtype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp packtype_1] +[visit_id packtype_1] not free +[visit_exp packtype_2] +[visit_id packtype_2] not free +[check_dims] C mut?#371 mut?#377 storagetype#195 storagetype#201 zt_1 zt_2 +[visit_exp C] +[visit_id C] +[visit_exp `%%`_fieldtype{`mut?#371`, storagetype#195}(?(), zt_1)] +[visit_exp `mut?#371`] +[visit_id mut?#371] +[visit_exp storagetype#195] +[visit_id storagetype#195] +[visit_exp (?(), zt_1)] +[visit_exp ?()] +[visit_exp zt_1] +[visit_id zt_1] +[visit_exp `%%`_fieldtype{`mut?#377`, storagetype#201}(?(), zt_2)] +[visit_exp `mut?#377`] +[visit_id mut?#377] +[visit_exp storagetype#201] +[visit_id storagetype#201] +[visit_exp (?(), zt_2)] +[visit_exp ?()] +[visit_exp zt_2] +[visit_id zt_2] +[visit_exp (C, zt_1, zt_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp zt_1] +[visit_id zt_1] not free +[visit_exp zt_2] +[visit_id zt_2] not free +[check_dims] C mut?#389 mut?#401 storagetype#213 storagetype#225 zt_1 zt_2 +[visit_exp C] +[visit_id C] +[visit_exp `%%`_fieldtype{`mut?#389`, storagetype#213}(?(`MUT`_mut), zt_1)] +[visit_exp `mut?#389`] +[visit_id mut?#389] +[visit_exp storagetype#213] +[visit_id storagetype#213] +[visit_exp (?(`MUT`_mut), zt_1)] +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp zt_1] +[visit_id zt_1] +[visit_exp `%%`_fieldtype{`mut?#401`, storagetype#225}(?(`MUT`_mut), zt_2)] +[visit_exp `mut?#401`] +[visit_id mut?#401] +[visit_exp storagetype#225] +[visit_id storagetype#225] +[visit_exp (?(`MUT`_mut), zt_2)] +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp zt_2] +[visit_id zt_2] +[visit_exp (C, zt_1, zt_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp zt_1] +[visit_id zt_1] not free +[visit_exp zt_2] +[visit_id zt_2] not free +[visit_exp (C, zt_2, zt_1)] +[visit_exp C] +[visit_id C] not free +[visit_exp zt_2] +[visit_id zt_2] not free +[visit_exp zt_1] +[visit_id zt_1] not free +[check_dims] C X*#1124 X*#1137 ft'_1 ft_1 ft_2 +[visit_exp C] +[visit_id C] +[visit_exp `STRUCT`_comptype(`%`_list{`X*#1124`}(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`}))] +[visit_exp (`%`_list{`X*#1124`}(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`}))] +[visit_exp `%`_list{`X*#1124`}(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`})] +[visit_exp `X*#1124`] +[visit_id X*#1124] +[visit_exp (ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`})] +[visit_exp ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`}] +[visit_exp ft_1*{ft_1 <- `ft_1*`}] +[scope_enter ft_1] +[visit_exp ft_1] +[visit_id ft_1] not free +[visit_id ft_1] not free +[scope_exit ft_1] +[visit_exp `ft_1*`] +[visit_id ft_1*] no dims +[visit_id ft_1*] +[visit_exp ft'_1*{ft'_1 <- `ft'_1*`}] +[scope_enter ft'_1] +[visit_exp ft'_1] +[visit_id ft'_1] not free +[visit_id ft'_1] not free +[scope_exit ft'_1] +[visit_exp `ft'_1*`] +[visit_id ft'_1*] no dims +[visit_id ft'_1*] +[visit_exp `STRUCT`_comptype(`%`_list{`X*#1137`}(ft_2*{ft_2 <- `ft_2*`}))] +[visit_exp (`%`_list{`X*#1137`}(ft_2*{ft_2 <- `ft_2*`}))] +[visit_exp `%`_list{`X*#1137`}(ft_2*{ft_2 <- `ft_2*`})] +[visit_exp `X*#1137`] +[visit_id X*#1137] +[visit_exp (ft_2*{ft_2 <- `ft_2*`})] +[visit_exp ft_2*{ft_2 <- `ft_2*`}] +[scope_enter ft_2] +[visit_exp ft_2] +[visit_id ft_2] not free +[visit_id ft_2] not free +[scope_exit ft_2] +[visit_exp `ft_2*`] +[visit_id ft_2*] no dims +[visit_id ft_2*] +[scope_enter ft_1] +[scope_enter ft_2] +[visit_exp (C, ft_1, ft_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp ft_1] +[visit_id ft_1] not free +[visit_exp ft_2] +[visit_id ft_2] not free +[visit_id ft_1] not free +[visit_id ft_2] not free +[scope_exit ft_2] +[scope_exit ft_1] +[visit_exp `ft_1*`] +[visit_id ft_1*] not free +[visit_id ft_1*] no dims +[visit_exp `ft_2*`] +[visit_id ft_2*] not free +[visit_id ft_2*] no dims +[check_dims] C fieldtype#11 fieldtype#13 ft_1 ft_2 +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY`_comptype{fieldtype#11}(ft_1)] +[visit_exp fieldtype#11] +[visit_id fieldtype#11] +[visit_exp (ft_1)] +[visit_exp ft_1] +[visit_id ft_1] +[visit_exp `ARRAY`_comptype{fieldtype#13}(ft_2)] +[visit_exp fieldtype#13] +[visit_id fieldtype#13] +[visit_exp (ft_2)] +[visit_exp ft_2] +[visit_id ft_2] +[visit_exp (C, ft_1, ft_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp ft_1] +[visit_id ft_1] not free +[visit_exp ft_2] +[visit_id ft_2] not free +[check_dims] C X*#1152 X*#1165 X*#1180 X*#1193 X*#1206 X*#1219 X*#1232 X*#1245 resulttype#82 resulttype#85 t_11 t_12 t_21 t_22 +[visit_exp C] +[visit_id C] +[visit_exp `FUNC%->%`_comptype{resulttype#82}(`%`_resulttype{`X*#1152`}(t_11*{t_11 <- `t_11*`}), `%`_resulttype{`X*#1165`}(t_12*{t_12 <- `t_12*`}))] +[visit_exp resulttype#82] +[visit_id resulttype#82] +[visit_exp (`%`_resulttype{`X*#1152`}(t_11*{t_11 <- `t_11*`}), `%`_resulttype{`X*#1165`}(t_12*{t_12 <- `t_12*`}))] +[visit_exp `%`_resulttype{`X*#1152`}(t_11*{t_11 <- `t_11*`})] +[visit_exp `X*#1152`] +[visit_id X*#1152] +[visit_exp (t_11*{t_11 <- `t_11*`})] +[visit_exp t_11*{t_11 <- `t_11*`}] +[scope_enter t_11] +[visit_exp t_11] +[visit_id t_11] not free +[visit_id t_11] not free +[scope_exit t_11] +[visit_exp `t_11*`] +[visit_id t_11*] no dims +[visit_id t_11*] +[visit_exp `%`_resulttype{`X*#1165`}(t_12*{t_12 <- `t_12*`})] +[visit_exp `X*#1165`] +[visit_id X*#1165] +[visit_exp (t_12*{t_12 <- `t_12*`})] +[visit_exp t_12*{t_12 <- `t_12*`}] +[scope_enter t_12] +[visit_exp t_12] +[visit_id t_12] not free +[visit_id t_12] not free +[scope_exit t_12] +[visit_exp `t_12*`] +[visit_id t_12*] no dims +[visit_id t_12*] +[visit_exp `FUNC%->%`_comptype{resulttype#85}(`%`_resulttype{`X*#1180`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1193`}(t_22*{t_22 <- `t_22*`}))] +[visit_exp resulttype#85] +[visit_id resulttype#85] +[visit_exp (`%`_resulttype{`X*#1180`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1193`}(t_22*{t_22 <- `t_22*`}))] +[visit_exp `%`_resulttype{`X*#1180`}(t_21*{t_21 <- `t_21*`})] +[visit_exp `X*#1180`] +[visit_id X*#1180] +[visit_exp (t_21*{t_21 <- `t_21*`})] +[visit_exp t_21*{t_21 <- `t_21*`}] +[scope_enter t_21] +[visit_exp t_21] +[visit_id t_21] not free +[visit_id t_21] not free +[scope_exit t_21] +[visit_exp `t_21*`] +[visit_id t_21*] no dims +[visit_id t_21*] +[visit_exp `%`_resulttype{`X*#1193`}(t_22*{t_22 <- `t_22*`})] +[visit_exp `X*#1193`] +[visit_id X*#1193] +[visit_exp (t_22*{t_22 <- `t_22*`})] +[visit_exp t_22*{t_22 <- `t_22*`}] +[scope_enter t_22] +[visit_exp t_22] +[visit_id t_22] not free +[visit_id t_22] not free +[scope_exit t_22] +[visit_exp `t_22*`] +[visit_id t_22*] no dims +[visit_id t_22*] +[visit_exp (C, `%`_resulttype{`X*#1206`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1219`}(t_11*{t_11 <- `t_11*`}))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#1206`}(t_21*{t_21 <- `t_21*`})] +[visit_exp `X*#1206`] +[visit_id X*#1206] +[visit_exp (t_21*{t_21 <- `t_21*`})] +[visit_exp t_21*{t_21 <- `t_21*`}] +[scope_enter t_21] +[visit_exp t_21] +[visit_id t_21] not free +[visit_id t_21] not free +[scope_exit t_21] +[visit_exp `t_21*`] +[visit_id t_21*] not free +[visit_id t_21*] no dims +[visit_exp `%`_resulttype{`X*#1219`}(t_11*{t_11 <- `t_11*`})] +[visit_exp `X*#1219`] +[visit_id X*#1219] +[visit_exp (t_11*{t_11 <- `t_11*`})] +[visit_exp t_11*{t_11 <- `t_11*`}] +[scope_enter t_11] +[visit_exp t_11] +[visit_id t_11] not free +[visit_id t_11] not free +[scope_exit t_11] +[visit_exp `t_11*`] +[visit_id t_11*] not free +[visit_id t_11*] no dims +[visit_exp (C, `%`_resulttype{`X*#1232`}(t_12*{t_12 <- `t_12*`}), `%`_resulttype{`X*#1245`}(t_22*{t_22 <- `t_22*`}))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#1232`}(t_12*{t_12 <- `t_12*`})] +[visit_exp `X*#1232`] +[visit_id X*#1232] +[visit_exp (t_12*{t_12 <- `t_12*`})] +[visit_exp t_12*{t_12 <- `t_12*`}] +[scope_enter t_12] +[visit_exp t_12] +[visit_id t_12] not free +[visit_id t_12] not free +[scope_exit t_12] +[visit_exp `t_12*`] +[visit_id t_12*] not free +[visit_id t_12*] no dims +[visit_exp `%`_resulttype{`X*#1245`}(t_22*{t_22 <- `t_22*`})] +[visit_exp `X*#1245`] +[visit_id X*#1245] +[visit_exp (t_22*{t_22 <- `t_22*`})] +[visit_exp t_22*{t_22 <- `t_22*`}] +[scope_enter t_22] +[visit_exp t_22] +[visit_id t_22] not free +[visit_id t_22] not free +[scope_exit t_22] +[visit_exp `t_22*`] +[visit_id t_22*] not free +[visit_id t_22*] no dims +[check_dims] C deftype_1 deftype_2 +[visit_exp C] +[visit_id C] +[visit_exp deftype_1] +[visit_id deftype_1] +[visit_exp deftype_2] +[visit_id deftype_2] +[visit_exp ($clos_deftype(C, deftype_1) = $clos_deftype(C, deftype_2))] +[visit_exp $clos_deftype(C, deftype_1)] +[visit_exp C] +[visit_id C] not free +[visit_exp deftype_1] +[visit_id deftype_1] not free +[visit_exp $clos_deftype(C, deftype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp deftype_2] +[visit_id deftype_2] not free +[check_dims] C comptype#437 ct deftype_1 deftype_2 final final?#437 i typeuse typeuse*#437 +[visit_exp C] +[visit_id C] +[visit_exp deftype_1] +[visit_id deftype_1] +[visit_exp deftype_2] +[visit_id deftype_2] +[visit_exp ($unrolldt(deftype_1) = `SUB`_subtype{`final?#437`, `typeuse*#437`, comptype#437}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct))] +[visit_exp $unrolldt(deftype_1)] +[visit_exp deftype_1] +[visit_id deftype_1] not free +[visit_exp `SUB`_subtype{`final?#437`, `typeuse*#437`, comptype#437}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] +[visit_exp `final?#437`] +[visit_id final?#437] +[visit_exp `typeuse*#437`] +[visit_id typeuse*#437] +[visit_exp comptype#437] +[visit_id comptype#437] +[visit_exp (final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] +[visit_exp final?{final <- `final?`}] +[scope_enter final] +[visit_exp final] +[visit_id final] not free +[visit_id final] not free +[scope_exit final] +[visit_exp `final?`] +[visit_id final?] no dims +[visit_id final?] +[visit_exp typeuse*{typeuse <- `typeuse*`}] +[scope_enter typeuse] +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_id typeuse] not free +[scope_exit typeuse] +[visit_exp `typeuse*`] +[visit_id typeuse*] no dims +[visit_id typeuse*] +[visit_exp ct] +[visit_id ct] +[visit_exp (C, (typeuse*{typeuse <- `typeuse*`}[i] : typeuse <: heaptype), (deftype_2 : deftype <: heaptype))] +[visit_exp C] +[visit_id C] not free +[visit_exp (typeuse*{typeuse <- `typeuse*`}[i] : typeuse <: heaptype)] +[visit_exp typeuse*{typeuse <- `typeuse*`}[i]] +[visit_exp typeuse*{typeuse <- `typeuse*`}] +[scope_enter typeuse] +[visit_exp typeuse] +[visit_id typeuse] not free +[visit_id typeuse] not free +[scope_exit typeuse] +[visit_exp `typeuse*`] +[visit_id typeuse*] not free +[visit_id typeuse*] no dims +[visit_exp i] +[visit_id i] +[visit_exp (deftype_2 : deftype <: heaptype)] +[visit_exp deftype_2] +[visit_id deftype_2] not free +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] C i#4887 i#4909 i#4931 i#4966 m_1 m_2 n_1 n_2 u64#84 u64#96 u64?#83 u64?#95 +[visit_exp C] +[visit_id C] +[visit_exp `[%..%]`_limits{u64#84, `u64?#83`}(`%`_u64{i#4887}(n_1), ?(`%`_u64{i#4909}(m_1)))] +[visit_exp u64#84] +[visit_id u64#84] +[visit_exp `u64?#83`] +[visit_id u64?#83] +[visit_exp (`%`_u64{i#4887}(n_1), ?(`%`_u64{i#4909}(m_1)))] +[visit_exp `%`_u64{i#4887}(n_1)] +[visit_exp i#4887] +[visit_id i#4887] +[visit_exp (n_1)] +[visit_exp n_1] +[visit_id n_1] +[visit_exp ?(`%`_u64{i#4909}(m_1))] +[visit_exp `%`_u64{i#4909}(m_1)] +[visit_exp i#4909] +[visit_id i#4909] +[visit_exp (m_1)] +[visit_exp m_1] +[visit_id m_1] +[visit_exp `[%..%]`_limits{u64#96, `u64?#95`}(`%`_u64{i#4931}(n_2), `%`_u64{i#4966}(m_2)?{i#4966 <- `i#4966?`, m_2 <- `m_2?`})] +[visit_exp u64#96] +[visit_id u64#96] +[visit_exp `u64?#95`] +[visit_id u64?#95] +[visit_exp (`%`_u64{i#4931}(n_2), `%`_u64{i#4966}(m_2)?{i#4966 <- `i#4966?`, m_2 <- `m_2?`})] +[visit_exp `%`_u64{i#4931}(n_2)] +[visit_exp i#4931] +[visit_id i#4931] +[visit_exp (n_2)] +[visit_exp n_2] +[visit_id n_2] +[visit_exp `%`_u64{i#4966}(m_2)?{i#4966 <- `i#4966?`, m_2 <- `m_2?`}] +[scope_enter i#4966] +[scope_enter m_2] +[visit_exp `%`_u64{i#4966}(m_2)] +[visit_exp i#4966] +[visit_id i#4966] not free +[visit_exp (m_2)] +[visit_exp m_2] +[visit_id m_2] not free +[visit_id i#4966] not free +[visit_id m_2] not free +[scope_exit m_2] +[scope_exit i#4966] +[visit_exp `i#4966?`] +[visit_id i#4966?] no dims +[visit_id i#4966?] +[visit_exp `m_2?`] +[visit_id m_2?] no dims +[visit_id m_2?] +[visit_exp (n_1 >= n_2)] +[visit_exp n_1] +[visit_id n_1] not free +[visit_exp n_2] +[visit_id n_2] not free +[scope_enter m_2] +[visit_exp (m_1 <= m_2)] +[visit_exp m_1] +[visit_id m_1] not free +[visit_exp m_2] +[visit_id m_2] not free +[visit_id m_2] not free +[scope_exit m_2] +[visit_exp `m_2?`] +[visit_id m_2?] not free +[visit_id m_2?] no dims +[check_dims] C i#4988 i#5010 n_1 n_2 u64#108 u64#120 u64?#107 u64?#119 +[visit_exp C] +[visit_id C] +[visit_exp `[%..%]`_limits{u64#108, `u64?#107`}(`%`_u64{i#4988}(n_1), ?())] +[visit_exp u64#108] +[visit_id u64#108] +[visit_exp `u64?#107`] +[visit_id u64?#107] +[visit_exp (`%`_u64{i#4988}(n_1), ?())] +[visit_exp `%`_u64{i#4988}(n_1)] +[visit_exp i#4988] +[visit_id i#4988] +[visit_exp (n_1)] +[visit_exp n_1] +[visit_id n_1] +[visit_exp ?()] +[visit_exp `[%..%]`_limits{u64#120, `u64?#119`}(`%`_u64{i#5010}(n_2), ?())] +[visit_exp u64#120] +[visit_id u64#120] +[visit_exp `u64?#119`] +[visit_id u64?#119] +[visit_exp (`%`_u64{i#5010}(n_2), ?())] +[visit_exp `%`_u64{i#5010}(n_2)] +[visit_exp i#5010] +[visit_id i#5010] +[visit_exp (n_2)] +[visit_exp n_2] +[visit_id n_2] +[visit_exp ?()] +[visit_exp (n_1 >= n_2)] +[visit_exp n_1] +[visit_id n_1] not free +[visit_exp n_2] +[visit_id n_2] not free +[check_dims] C deftype_1 deftype_2 +[visit_exp C] +[visit_id C] +[visit_exp (deftype_1 : deftype <: typeuse)] +[visit_exp deftype_1] +[visit_id deftype_1] +[visit_exp (deftype_2 : deftype <: typeuse)] +[visit_exp deftype_2] +[visit_id deftype_2] +[visit_exp (C, deftype_1, deftype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp deftype_1] +[visit_id deftype_1] not free +[visit_exp deftype_2] +[visit_id deftype_2] not free +[visit_exp (C, deftype_2, deftype_1)] +[visit_exp C] +[visit_id C] not free +[visit_exp deftype_2] +[visit_id deftype_2] not free +[visit_exp deftype_1] +[visit_id deftype_1] not free +[check_dims] C mut?#501 mut?#507 valtype#277 valtype#283 valtype_1 valtype_2 +[visit_exp C] +[visit_id C] +[visit_exp `%%`_globaltype{`mut?#501`, valtype#277}(?(), valtype_1)] +[visit_exp `mut?#501`] +[visit_id mut?#501] +[visit_exp valtype#277] +[visit_id valtype#277] +[visit_exp (?(), valtype_1)] +[visit_exp ?()] +[visit_exp valtype_1] +[visit_id valtype_1] +[visit_exp `%%`_globaltype{`mut?#507`, valtype#283}(?(), valtype_2)] +[visit_exp `mut?#507`] +[visit_id mut?#507] +[visit_exp valtype#283] +[visit_id valtype#283] +[visit_exp (?(), valtype_2)] +[visit_exp ?()] +[visit_exp valtype_2] +[visit_id valtype_2] +[visit_exp (C, valtype_1, valtype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp valtype_1] +[visit_id valtype_1] not free +[visit_exp valtype_2] +[visit_id valtype_2] not free +[check_dims] C mut?#519 mut?#531 valtype#295 valtype#307 valtype_1 valtype_2 +[visit_exp C] +[visit_id C] +[visit_exp `%%`_globaltype{`mut?#519`, valtype#295}(?(`MUT`_mut), valtype_1)] +[visit_exp `mut?#519`] +[visit_id mut?#519] +[visit_exp valtype#295] +[visit_id valtype#295] +[visit_exp (?(`MUT`_mut), valtype_1)] +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp valtype_1] +[visit_id valtype_1] +[visit_exp `%%`_globaltype{`mut?#531`, valtype#307}(?(`MUT`_mut), valtype_2)] +[visit_exp `mut?#531`] +[visit_id mut?#531] +[visit_exp valtype#307] +[visit_id valtype#307] +[visit_exp (?(`MUT`_mut), valtype_2)] +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp valtype_2] +[visit_id valtype_2] +[visit_exp (C, valtype_1, valtype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp valtype_1] +[visit_id valtype_1] not free +[visit_exp valtype_2] +[visit_id valtype_2] not free +[visit_exp (C, valtype_2, valtype_1)] +[visit_exp C] +[visit_id C] not free +[visit_exp valtype_2] +[visit_id valtype_2] not free +[visit_exp valtype_1] +[visit_id valtype_1] not free +[check_dims] C addrtype addrtype#345 addrtype#357 limits#345 limits#357 limits_1 limits_2 +[visit_exp C] +[visit_id C] +[visit_exp `%%PAGE`_memtype{addrtype#345, limits#345}(addrtype, limits_1)] +[visit_exp addrtype#345] +[visit_id addrtype#345] +[visit_exp limits#345] +[visit_id limits#345] +[visit_exp (addrtype, limits_1)] +[visit_exp addrtype] +[visit_id addrtype] +[visit_exp limits_1] +[visit_id limits_1] +[visit_exp `%%PAGE`_memtype{addrtype#357, limits#357}(addrtype, limits_2)] +[visit_exp addrtype#357] +[visit_id addrtype#357] +[visit_exp limits#357] +[visit_id limits#357] +[visit_exp (addrtype, limits_2)] +[visit_exp addrtype] +[visit_id addrtype] not free +[visit_exp limits_2] +[visit_id limits_2] +[visit_exp (C, limits_1, limits_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp limits_1] +[visit_id limits_1] not free +[visit_exp limits_2] +[visit_id limits_2] not free +[check_dims] C addrtype addrtype#369 addrtype#381 limits#369 limits#381 limits_1 limits_2 reftype#335 reftype#347 reftype_1 reftype_2 +[visit_exp C] +[visit_id C] +[visit_exp `%%%`_tabletype{addrtype#369, limits#369, reftype#335}(addrtype, limits_1, reftype_1)] +[visit_exp addrtype#369] +[visit_id addrtype#369] +[visit_exp limits#369] +[visit_id limits#369] +[visit_exp reftype#335] +[visit_id reftype#335] +[visit_exp (addrtype, limits_1, reftype_1)] +[visit_exp addrtype] +[visit_id addrtype] +[visit_exp limits_1] +[visit_id limits_1] +[visit_exp reftype_1] +[visit_id reftype_1] +[visit_exp `%%%`_tabletype{addrtype#381, limits#381, reftype#347}(addrtype, limits_2, reftype_2)] +[visit_exp addrtype#381] +[visit_id addrtype#381] +[visit_exp limits#381] +[visit_id limits#381] +[visit_exp reftype#347] +[visit_id reftype#347] +[visit_exp (addrtype, limits_2, reftype_2)] +[visit_exp addrtype] +[visit_id addrtype] not free +[visit_exp limits_2] +[visit_id limits_2] +[visit_exp reftype_2] +[visit_id reftype_2] +[visit_exp (C, limits_1, limits_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp limits_1] +[visit_id limits_1] not free +[visit_exp limits_2] +[visit_id limits_2] not free +[visit_exp (C, reftype_1, reftype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp reftype_1] +[visit_id reftype_1] not free +[visit_exp reftype_2] +[visit_id reftype_2] not free +[visit_exp (C, reftype_2, reftype_1)] +[visit_exp C] +[visit_id C] not free +[visit_exp reftype_2] +[visit_id reftype_2] not free +[visit_exp reftype_1] +[visit_id reftype_1] not free +[check_dims] C tagtype#91 tagtype#93 tagtype_1 tagtype_2 +[visit_exp C] +[visit_id C] +[visit_exp `TAG`_externtype{tagtype#91}(tagtype_1)] +[visit_exp tagtype#91] +[visit_id tagtype#91] +[visit_exp (tagtype_1)] +[visit_exp tagtype_1] +[visit_id tagtype_1] +[visit_exp `TAG`_externtype{tagtype#93}(tagtype_2)] +[visit_exp tagtype#93] +[visit_id tagtype#93] +[visit_exp (tagtype_2)] +[visit_exp tagtype_2] +[visit_id tagtype_2] +[visit_exp (C, tagtype_1, tagtype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp tagtype_1] +[visit_id tagtype_1] not free +[visit_exp tagtype_2] +[visit_id tagtype_2] not free +[check_dims] C globaltype#103 globaltype#105 globaltype_1 globaltype_2 +[visit_exp C] +[visit_id C] +[visit_exp `GLOBAL`_externtype{globaltype#103}(globaltype_1)] +[visit_exp globaltype#103] +[visit_id globaltype#103] +[visit_exp (globaltype_1)] +[visit_exp globaltype_1] +[visit_id globaltype_1] +[visit_exp `GLOBAL`_externtype{globaltype#105}(globaltype_2)] +[visit_exp globaltype#105] +[visit_id globaltype#105] +[visit_exp (globaltype_2)] +[visit_exp globaltype_2] +[visit_id globaltype_2] +[visit_exp (C, globaltype_1, globaltype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp globaltype_1] +[visit_id globaltype_1] not free +[visit_exp globaltype_2] +[visit_id globaltype_2] not free +[check_dims] C memtype#115 memtype#117 memtype_1 memtype_2 +[visit_exp C] +[visit_id C] +[visit_exp `MEM`_externtype{memtype#115}(memtype_1)] +[visit_exp memtype#115] +[visit_id memtype#115] +[visit_exp (memtype_1)] +[visit_exp memtype_1] +[visit_id memtype_1] +[visit_exp `MEM`_externtype{memtype#117}(memtype_2)] +[visit_exp memtype#117] +[visit_id memtype#117] +[visit_exp (memtype_2)] +[visit_exp memtype_2] +[visit_id memtype_2] +[visit_exp (C, memtype_1, memtype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp memtype_1] +[visit_id memtype_1] not free +[visit_exp memtype_2] +[visit_id memtype_2] not free +[check_dims] C tabletype#129 tabletype#131 tabletype_1 tabletype_2 +[visit_exp C] +[visit_id C] +[visit_exp `TABLE`_externtype{tabletype#129}(tabletype_1)] +[visit_exp tabletype#129] +[visit_id tabletype#129] +[visit_exp (tabletype_1)] +[visit_exp tabletype_1] +[visit_id tabletype_1] +[visit_exp `TABLE`_externtype{tabletype#131}(tabletype_2)] +[visit_exp tabletype#131] +[visit_id tabletype#131] +[visit_exp (tabletype_2)] +[visit_exp tabletype_2] +[visit_id tabletype_2] +[visit_exp (C, tabletype_1, tabletype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp tabletype_1] +[visit_id tabletype_1] not free +[visit_exp tabletype_2] +[visit_id tabletype_2] not free +[check_dims] C deftype_1 deftype_2 typeuse#19 typeuse#21 +[visit_exp C] +[visit_id C] +[visit_exp `FUNC`_externtype{typeuse#19}((deftype_1 : deftype <: typeuse))] +[visit_exp typeuse#19] +[visit_id typeuse#19] +[visit_exp ((deftype_1 : deftype <: typeuse))] +[visit_exp (deftype_1 : deftype <: typeuse)] +[visit_exp deftype_1] +[visit_id deftype_1] +[visit_exp `FUNC`_externtype{typeuse#21}((deftype_2 : deftype <: typeuse))] +[visit_exp typeuse#21] +[visit_id typeuse#21] +[visit_exp ((deftype_2 : deftype <: typeuse))] +[visit_exp (deftype_2 : deftype <: typeuse)] +[visit_exp deftype_2] +[visit_id deftype_2] +[visit_exp (C, deftype_1, deftype_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp deftype_1] +[visit_id deftype_1] not free +[visit_exp deftype_2] +[visit_id deftype_2] not free +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] C X*#1268 X*#1317 localidx*#83 resulttype#105 +[visit_exp C] +[visit_id C] +[visit_exp `NOP`_instr] +[visit_exp ()] +[visit_exp `%->_%%`_instrtype{resulttype#105, `localidx*#83`}(`%`_resulttype{`X*#1268`}([]), [], `%`_resulttype{`X*#1317`}([]))] +[visit_exp resulttype#105] +[visit_id resulttype#105] +[visit_exp `localidx*#83`] +[visit_id localidx*#83] +[visit_exp (`%`_resulttype{`X*#1268`}([]), [], `%`_resulttype{`X*#1317`}([]))] +[visit_exp `%`_resulttype{`X*#1268`}([])] +[visit_exp `X*#1268`] +[visit_id X*#1268] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#1317`}([])] +[visit_exp `X*#1317`] +[visit_id X*#1317] +[visit_exp ([])] +[visit_exp []] +[check_dims] C X*#1328 X*#1379 X*#1390 X*#1441 localidx*#107 localidx*#95 resulttype#125 resulttype#145 t_1 t_2 +[visit_exp C] +[visit_id C] +[visit_exp `UNREACHABLE`_instr] +[visit_exp ()] +[visit_exp `%->_%%`_instrtype{resulttype#125, `localidx*#95`}(`%`_resulttype{`X*#1328`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1379`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#125] +[visit_id resulttype#125] +[visit_exp `localidx*#95`] +[visit_id localidx*#95] +[visit_exp (`%`_resulttype{`X*#1328`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1379`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#1328`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#1328`] +[visit_id X*#1328] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#1379`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#1379`] +[visit_id X*#1379] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C, `%->_%%`_instrtype{resulttype#145, `localidx*#107`}(`%`_resulttype{`X*#1390`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1441`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%->_%%`_instrtype{resulttype#145, `localidx*#107`}(`%`_resulttype{`X*#1390`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1441`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#145] +[visit_id resulttype#145] +[visit_exp `localidx*#107`] +[visit_id localidx*#107] +[visit_exp (`%`_resulttype{`X*#1390`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1441`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#1390`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#1390`] +[visit_id X*#1390] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#1441`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#1441`] +[visit_id X*#1441] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#1452 X*#1520 localidx*#119 resulttype#165 t +[visit_exp C] +[visit_id C] +[visit_exp `DROP`_instr] +[visit_exp ()] +[visit_exp `%->_%%`_instrtype{resulttype#165, `localidx*#119`}(`%`_resulttype{`X*#1452`}([t]), [], `%`_resulttype{`X*#1520`}([]))] +[visit_exp resulttype#165] +[visit_id resulttype#165] +[visit_exp `localidx*#119`] +[visit_id localidx*#119] +[visit_exp (`%`_resulttype{`X*#1452`}([t]), [], `%`_resulttype{`X*#1520`}([]))] +[visit_exp `%`_resulttype{`X*#1452`}([t])] +[visit_exp `X*#1452`] +[visit_id X*#1452] +[visit_exp ([t])] +[visit_exp [t]] +[visit_exp t] +[visit_id t] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#1520`}([])] +[visit_exp `X*#1520`] +[visit_id X*#1520] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C, t)] +[visit_exp C] +[visit_id C] not free +[visit_exp t] +[visit_id t] not free +[check_dims] C X*#1541 X*#1590 localidx*#131 resulttype#185 t valtype*?#3 +[visit_exp C] +[visit_id C] +[visit_exp `SELECT`_instr{`valtype*?#3`}(?([t]))] +[visit_exp `valtype*?#3`] +[visit_id valtype*?#3] +[visit_exp (?([t]))] +[visit_exp ?([t])] +[visit_exp [t]] +[visit_exp t] +[visit_id t] +[visit_exp `%->_%%`_instrtype{resulttype#185, `localidx*#131`}(`%`_resulttype{`X*#1541`}([t t `I32`_valtype]), [], `%`_resulttype{`X*#1590`}([t]))] +[visit_exp resulttype#185] +[visit_id resulttype#185] +[visit_exp `localidx*#131`] +[visit_id localidx*#131] +[visit_exp (`%`_resulttype{`X*#1541`}([t t `I32`_valtype]), [], `%`_resulttype{`X*#1590`}([t]))] +[visit_exp `%`_resulttype{`X*#1541`}([t t `I32`_valtype])] +[visit_exp `X*#1541`] +[visit_id X*#1541] +[visit_exp ([t t `I32`_valtype])] +[visit_exp [t t `I32`_valtype]] +[visit_exp t] +[visit_id t] not free +[visit_exp t] +[visit_id t] not free +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#1590`}([t])] +[visit_exp `X*#1590`] +[visit_id X*#1590] +[visit_exp ([t])] +[visit_exp [t]] +[visit_exp t] +[visit_id t] not free +[visit_exp (C, t)] +[visit_exp C] +[visit_id C] not free +[visit_exp t] +[visit_id t] not free +[check_dims] C X*#1611 X*#1660 localidx*#143 numtype resulttype#205 t t' valtype*?#5 vectype +[visit_exp C] +[visit_id C] +[visit_exp `SELECT`_instr{`valtype*?#5`}(?())] +[visit_exp `valtype*?#5`] +[visit_id valtype*?#5] +[visit_exp (?())] +[visit_exp ?()] +[visit_exp `%->_%%`_instrtype{resulttype#205, `localidx*#143`}(`%`_resulttype{`X*#1611`}([t t `I32`_valtype]), [], `%`_resulttype{`X*#1660`}([t]))] +[visit_exp resulttype#205] +[visit_id resulttype#205] +[visit_exp `localidx*#143`] +[visit_id localidx*#143] +[visit_exp (`%`_resulttype{`X*#1611`}([t t `I32`_valtype]), [], `%`_resulttype{`X*#1660`}([t]))] +[visit_exp `%`_resulttype{`X*#1611`}([t t `I32`_valtype])] +[visit_exp `X*#1611`] +[visit_id X*#1611] +[visit_exp ([t t `I32`_valtype])] +[visit_exp [t t `I32`_valtype]] +[visit_exp t] +[visit_id t] +[visit_exp t] +[visit_id t] not free +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#1660`}([t])] +[visit_exp `X*#1660`] +[visit_id X*#1660] +[visit_exp ([t])] +[visit_exp [t]] +[visit_exp t] +[visit_id t] not free +[visit_exp (C, t)] +[visit_exp C] +[visit_id C] not free +[visit_exp t] +[visit_id t] not free +[visit_exp (C, t, t')] +[visit_exp C] +[visit_id C] not free +[visit_exp t] +[visit_id t] not free +[visit_exp t'] +[visit_id t'] +[visit_exp ((t' = (numtype : numtype <: valtype)) \/ (t' = (vectype : vectype <: valtype)))] +[visit_exp (t' = (numtype : numtype <: valtype))] +[visit_exp t'] +[visit_id t'] not free +[visit_exp (numtype : numtype <: valtype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp (t' = (vectype : vectype <: valtype))] +[visit_exp t'] +[visit_id t'] not free +[visit_exp (vectype : vectype <: valtype)] +[visit_exp vectype] +[visit_id vectype] +[check_dims] +[check_dims] C X*#1681 X*#1730 localidx*#155 resulttype#225 valtype valtype?#3 +[visit_exp C] +[visit_id C] +[visit_exp `_RESULT`_blocktype{`valtype?#3`}(valtype?{valtype <- `valtype?`})] +[visit_exp `valtype?#3`] +[visit_id valtype?#3] +[visit_exp (valtype?{valtype <- `valtype?`})] +[visit_exp valtype?{valtype <- `valtype?`}] +[scope_enter valtype] +[visit_exp valtype] +[visit_id valtype] not free +[visit_id valtype] not free +[scope_exit valtype] +[visit_exp `valtype?`] +[visit_id valtype?] no dims +[visit_id valtype?] +[visit_exp `%->_%%`_instrtype{resulttype#225, `localidx*#155`}(`%`_resulttype{`X*#1681`}([]), [], `%`_resulttype{`X*#1730`}(lift(valtype?{valtype <- `valtype?`})))] +[visit_exp resulttype#225] +[visit_id resulttype#225] +[visit_exp `localidx*#155`] +[visit_id localidx*#155] +[visit_exp (`%`_resulttype{`X*#1681`}([]), [], `%`_resulttype{`X*#1730`}(lift(valtype?{valtype <- `valtype?`})))] +[visit_exp `%`_resulttype{`X*#1681`}([])] +[visit_exp `X*#1681`] +[visit_id X*#1681] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#1730`}(lift(valtype?{valtype <- `valtype?`}))] +[visit_exp `X*#1730`] +[visit_id X*#1730] +[visit_exp (lift(valtype?{valtype <- `valtype?`}))] +[visit_exp lift(valtype?{valtype <- `valtype?`})] +[visit_exp valtype?{valtype <- `valtype?`}] +[scope_enter valtype] +[visit_exp valtype] +[visit_id valtype] not free +[visit_id valtype] not free +[scope_exit valtype] +[visit_exp `valtype?`] +[visit_id valtype?] not free +[visit_id valtype?] no dims +[scope_enter valtype] +[visit_exp (C, valtype)] +[visit_exp C] +[visit_id C] not free +[visit_exp valtype] +[visit_id valtype] not free +[visit_id valtype] not free +[scope_exit valtype] +[visit_exp `valtype?`] +[visit_id valtype?] not free +[visit_id valtype?] no dims +[check_dims] C X*#1741 X*#1792 X*#1805 X*#1818 deftype*#19 i#5032 localidx*#167 resulttype#245 resulttype#248 t_1 t_2 typeidx typeidx#392 +[visit_exp C] +[visit_id C] +[visit_exp `_IDX`_blocktype{typeidx#392}(typeidx)] +[visit_exp typeidx#392] +[visit_id typeidx#392] +[visit_exp (typeidx)] +[visit_exp typeidx] +[visit_id typeidx] +[visit_exp `%->_%%`_instrtype{resulttype#245, `localidx*#167`}(`%`_resulttype{`X*#1741`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1792`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#245] +[visit_id resulttype#245] +[visit_exp `localidx*#167`] +[visit_id localidx*#167] +[visit_exp (`%`_resulttype{`X*#1741`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1792`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#1741`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#1741`] +[visit_id X*#1741] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#1792`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#1792`] +[visit_id X*#1792] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C.`TYPES`_context{`deftype*#19`}[typeidx!`%`_typeidx{i#5032}.0], `FUNC%->%`_comptype{resulttype#248}(`%`_resulttype{`X*#1805`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#1818`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`TYPES`_context{`deftype*#19`}[typeidx!`%`_typeidx{i#5032}.0]] +[visit_exp C.`TYPES`_context{`deftype*#19`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#19`] +[visit_id deftype*#19] +[visit_exp typeidx!`%`_typeidx{i#5032}.0] +[visit_exp typeidx!`%`_typeidx{i#5032}] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp i#5032] +[visit_id i#5032] +[visit_exp `FUNC%->%`_comptype{resulttype#248}(`%`_resulttype{`X*#1805`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#1818`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#248] +[visit_id resulttype#248] +[visit_exp (`%`_resulttype{`X*#1805`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#1818`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#1805`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#1805`] +[visit_id X*#1805] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `%`_resulttype{`X*#1818`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#1818`] +[visit_id X*#1818] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#1831 X*#1882 X*#1893 X*#1944 X*#1955 X*#1968 X*#2020 blocktype#7 bt datatype*#2 deftype*#20 deftype*#21 elemtype*#2 funcidx*#40 globaltype*#2 instr instr*#8 localidx*#179 localidx*#191 localidx*#203 localtype*#5 memtype*#2 resulttype#268 resulttype#288 resulttype#308 resulttype*#2 resulttype?#2 subtype*#5 t_1 t_2 tabletype*#2 tagtype*#2 x +[visit_exp C] +[visit_id C] +[visit_exp `BLOCK`_instr{blocktype#7, `instr*#8`}(bt, instr*{instr <- `instr*`})] +[visit_exp blocktype#7] +[visit_id blocktype#7] +[visit_exp `instr*#8`] +[visit_id instr*#8] +[visit_exp (bt, instr*{instr <- `instr*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp `%->_%%`_instrtype{resulttype#268, `localidx*#179`}(`%`_resulttype{`X*#1831`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1882`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#268] +[visit_id resulttype#268] +[visit_exp `localidx*#179`] +[visit_id localidx*#179] +[visit_exp (`%`_resulttype{`X*#1831`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1882`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#1831`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#1831`] +[visit_id X*#1831] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#1882`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#1882`] +[visit_id X*#1882] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C, bt, `%->_%%`_instrtype{resulttype#288, `localidx*#191`}(`%`_resulttype{`X*#1893`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1944`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp bt] +[visit_id bt] not free +[visit_exp `%->_%%`_instrtype{resulttype#288, `localidx*#191`}(`%`_resulttype{`X*#1893`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1944`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#288] +[visit_id resulttype#288] +[visit_exp `localidx*#191`] +[visit_id localidx*#191] +[visit_exp (`%`_resulttype{`X*#1893`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1944`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#1893`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#1893`] +[visit_id X*#1893] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#1944`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#1944`] +[visit_id X*#1944] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp ({`TYPES`{`deftype*#20`} [], `RECS`{`subtype*#5`} [], `TAGS`{`tagtype*#2`} [], `GLOBALS`{`globaltype*#2`} [], `MEMS`{`memtype*#2`} [], `TABLES`{`tabletype*#2`} [], `FUNCS`{`deftype*#21`} [], `DATAS`{`datatype*#2`} [], `ELEMS`{`elemtype*#2`} [], `LOCALS`{`localtype*#5`} [], `LABELS`{`resulttype*#2`} [`%`_resulttype{`X*#1955`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#2`} ?(), `REFS`{`funcidx*#40`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#308, `localidx*#203`}(`%`_resulttype{`X*#1968`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2020`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp {`TYPES`{`deftype*#20`} [], `RECS`{`subtype*#5`} [], `TAGS`{`tagtype*#2`} [], `GLOBALS`{`globaltype*#2`} [], `MEMS`{`memtype*#2`} [], `TABLES`{`tabletype*#2`} [], `FUNCS`{`deftype*#21`} [], `DATAS`{`datatype*#2`} [], `ELEMS`{`elemtype*#2`} [], `LOCALS`{`localtype*#5`} [], `LABELS`{`resulttype*#2`} [`%`_resulttype{`X*#1955`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#2`} ?(), `REFS`{`funcidx*#40`} []} +++ C] +[visit_exp {`TYPES`{`deftype*#20`} [], `RECS`{`subtype*#5`} [], `TAGS`{`tagtype*#2`} [], `GLOBALS`{`globaltype*#2`} [], `MEMS`{`memtype*#2`} [], `TABLES`{`tabletype*#2`} [], `FUNCS`{`deftype*#21`} [], `DATAS`{`datatype*#2`} [], `ELEMS`{`elemtype*#2`} [], `LOCALS`{`localtype*#5`} [], `LABELS`{`resulttype*#2`} [`%`_resulttype{`X*#1955`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#2`} ?(), `REFS`{`funcidx*#40`} []}] +[visit_exp `deftype*#20`] +[visit_id deftype*#20] +[visit_exp []] +[visit_exp `subtype*#5`] +[visit_id subtype*#5] +[visit_exp []] +[visit_exp `tagtype*#2`] +[visit_id tagtype*#2] +[visit_exp []] +[visit_exp `globaltype*#2`] +[visit_id globaltype*#2] +[visit_exp []] +[visit_exp `memtype*#2`] +[visit_id memtype*#2] +[visit_exp []] +[visit_exp `tabletype*#2`] +[visit_id tabletype*#2] +[visit_exp []] +[visit_exp `deftype*#21`] +[visit_id deftype*#21] +[visit_exp []] +[visit_exp `datatype*#2`] +[visit_id datatype*#2] +[visit_exp []] +[visit_exp `elemtype*#2`] +[visit_id elemtype*#2] +[visit_exp []] +[visit_exp `localtype*#5`] +[visit_id localtype*#5] +[visit_exp []] +[visit_exp `resulttype*#2`] +[visit_id resulttype*#2] +[visit_exp [`%`_resulttype{`X*#1955`}(t_2*{t_2 <- `t_2*`})]] +[visit_exp `%`_resulttype{`X*#1955`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#1955`] +[visit_id X*#1955] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp `resulttype?#2`] +[visit_id resulttype?#2] +[visit_exp ?()] +[visit_exp `funcidx*#40`] +[visit_id funcidx*#40] +[visit_exp []] +[visit_exp C] +[visit_id C] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp `%->_%%`_instrtype{resulttype#308, `localidx*#203`}(`%`_resulttype{`X*#1968`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2020`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#308] +[visit_id resulttype#308] +[visit_exp `localidx*#203`] +[visit_id localidx*#203] +[visit_exp (`%`_resulttype{`X*#1968`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2020`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#1968`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#1968`] +[visit_id X*#1968] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp `%`_resulttype{`X*#2020`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2020`] +[visit_id X*#2020] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#2033 X*#2084 X*#2095 X*#2146 X*#2157 X*#2170 X*#2222 blocktype#9 bt datatype*#3 deftype*#22 deftype*#23 elemtype*#3 funcidx*#41 globaltype*#3 instr instr*#10 localidx*#215 localidx*#227 localidx*#239 localtype*#6 memtype*#3 resulttype#328 resulttype#348 resulttype#368 resulttype*#3 resulttype?#3 subtype*#6 t_1 t_2 tabletype*#3 tagtype*#3 x +[visit_exp C] +[visit_id C] +[visit_exp `LOOP`_instr{blocktype#9, `instr*#10`}(bt, instr*{instr <- `instr*`})] +[visit_exp blocktype#9] +[visit_id blocktype#9] +[visit_exp `instr*#10`] +[visit_id instr*#10] +[visit_exp (bt, instr*{instr <- `instr*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp `%->_%%`_instrtype{resulttype#328, `localidx*#215`}(`%`_resulttype{`X*#2033`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2084`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#328] +[visit_id resulttype#328] +[visit_exp `localidx*#215`] +[visit_id localidx*#215] +[visit_exp (`%`_resulttype{`X*#2033`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2084`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#2033`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#2033`] +[visit_id X*#2033] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#2084`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2084`] +[visit_id X*#2084] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C, bt, `%->_%%`_instrtype{resulttype#348, `localidx*#227`}(`%`_resulttype{`X*#2095`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2146`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp bt] +[visit_id bt] not free +[visit_exp `%->_%%`_instrtype{resulttype#348, `localidx*#227`}(`%`_resulttype{`X*#2095`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2146`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#348] +[visit_id resulttype#348] +[visit_exp `localidx*#227`] +[visit_id localidx*#227] +[visit_exp (`%`_resulttype{`X*#2095`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2146`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#2095`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#2095`] +[visit_id X*#2095] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#2146`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2146`] +[visit_id X*#2146] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp ({`TYPES`{`deftype*#22`} [], `RECS`{`subtype*#6`} [], `TAGS`{`tagtype*#3`} [], `GLOBALS`{`globaltype*#3`} [], `MEMS`{`memtype*#3`} [], `TABLES`{`tabletype*#3`} [], `FUNCS`{`deftype*#23`} [], `DATAS`{`datatype*#3`} [], `ELEMS`{`elemtype*#3`} [], `LOCALS`{`localtype*#6`} [], `LABELS`{`resulttype*#3`} [`%`_resulttype{`X*#2157`}(t_1*{t_1 <- `t_1*`})], `RETURN`{`resulttype?#3`} ?(), `REFS`{`funcidx*#41`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#368, `localidx*#239`}(`%`_resulttype{`X*#2170`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2222`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp {`TYPES`{`deftype*#22`} [], `RECS`{`subtype*#6`} [], `TAGS`{`tagtype*#3`} [], `GLOBALS`{`globaltype*#3`} [], `MEMS`{`memtype*#3`} [], `TABLES`{`tabletype*#3`} [], `FUNCS`{`deftype*#23`} [], `DATAS`{`datatype*#3`} [], `ELEMS`{`elemtype*#3`} [], `LOCALS`{`localtype*#6`} [], `LABELS`{`resulttype*#3`} [`%`_resulttype{`X*#2157`}(t_1*{t_1 <- `t_1*`})], `RETURN`{`resulttype?#3`} ?(), `REFS`{`funcidx*#41`} []} +++ C] +[visit_exp {`TYPES`{`deftype*#22`} [], `RECS`{`subtype*#6`} [], `TAGS`{`tagtype*#3`} [], `GLOBALS`{`globaltype*#3`} [], `MEMS`{`memtype*#3`} [], `TABLES`{`tabletype*#3`} [], `FUNCS`{`deftype*#23`} [], `DATAS`{`datatype*#3`} [], `ELEMS`{`elemtype*#3`} [], `LOCALS`{`localtype*#6`} [], `LABELS`{`resulttype*#3`} [`%`_resulttype{`X*#2157`}(t_1*{t_1 <- `t_1*`})], `RETURN`{`resulttype?#3`} ?(), `REFS`{`funcidx*#41`} []}] +[visit_exp `deftype*#22`] +[visit_id deftype*#22] +[visit_exp []] +[visit_exp `subtype*#6`] +[visit_id subtype*#6] +[visit_exp []] +[visit_exp `tagtype*#3`] +[visit_id tagtype*#3] +[visit_exp []] +[visit_exp `globaltype*#3`] +[visit_id globaltype*#3] +[visit_exp []] +[visit_exp `memtype*#3`] +[visit_id memtype*#3] +[visit_exp []] +[visit_exp `tabletype*#3`] +[visit_id tabletype*#3] +[visit_exp []] +[visit_exp `deftype*#23`] +[visit_id deftype*#23] +[visit_exp []] +[visit_exp `datatype*#3`] +[visit_id datatype*#3] +[visit_exp []] +[visit_exp `elemtype*#3`] +[visit_id elemtype*#3] +[visit_exp []] +[visit_exp `localtype*#6`] +[visit_id localtype*#6] +[visit_exp []] +[visit_exp `resulttype*#3`] +[visit_id resulttype*#3] +[visit_exp [`%`_resulttype{`X*#2157`}(t_1*{t_1 <- `t_1*`})]] +[visit_exp `%`_resulttype{`X*#2157`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#2157`] +[visit_id X*#2157] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `resulttype?#3`] +[visit_id resulttype?#3] +[visit_exp ?()] +[visit_exp `funcidx*#41`] +[visit_id funcidx*#41] +[visit_exp []] +[visit_exp C] +[visit_id C] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp `%->_%%`_instrtype{resulttype#368, `localidx*#239`}(`%`_resulttype{`X*#2170`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2222`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#368] +[visit_id resulttype#368] +[visit_exp `localidx*#239`] +[visit_id localidx*#239] +[visit_exp (`%`_resulttype{`X*#2170`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2222`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#2170`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#2170`] +[visit_id X*#2170] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp `%`_resulttype{`X*#2222`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2222`] +[visit_id X*#2222] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#2245 X*#2294 X*#2305 X*#2356 X*#2367 X*#2380 X*#2432 X*#2445 X*#2458 X*#2510 blocktype#11 bt datatype*#4 datatype*#5 deftype*#24 deftype*#25 deftype*#26 deftype*#27 elemtype*#4 elemtype*#5 funcidx*#42 funcidx*#43 globaltype*#4 globaltype*#5 instr*#12 instr_1 instr_2 localidx*#251 localidx*#263 localidx*#275 localidx*#287 localtype*#7 localtype*#8 memtype*#4 memtype*#5 resulttype#388 resulttype#408 resulttype#428 resulttype#448 resulttype*#4 resulttype*#5 resulttype?#4 resulttype?#5 subtype*#7 subtype*#8 t_1 t_2 tabletype*#4 tabletype*#5 tagtype*#4 tagtype*#5 x_1 x_2 +[visit_exp C] +[visit_id C] +[visit_exp `IF%%ELSE%`_instr{blocktype#11, `instr*#12`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] +[visit_exp blocktype#11] +[visit_id blocktype#11] +[visit_exp `instr*#12`] +[visit_id instr*#12] +[visit_exp (bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp instr_1*{instr_1 <- `instr_1*`}] +[scope_enter instr_1] +[visit_exp instr_1] +[visit_id instr_1] not free +[visit_id instr_1] not free +[scope_exit instr_1] +[visit_exp `instr_1*`] +[visit_id instr_1*] no dims +[visit_id instr_1*] +[visit_exp instr_2*{instr_2 <- `instr_2*`}] +[scope_enter instr_2] +[visit_exp instr_2] +[visit_id instr_2] not free +[visit_id instr_2] not free +[scope_exit instr_2] +[visit_exp `instr_2*`] +[visit_id instr_2*] no dims +[visit_id instr_2*] +[visit_exp `%->_%%`_instrtype{resulttype#388, `localidx*#251`}(`%`_resulttype{`X*#2245`}(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2294`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#388] +[visit_id resulttype#388] +[visit_exp `localidx*#251`] +[visit_id localidx*#251] +[visit_exp (`%`_resulttype{`X*#2245`}(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2294`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#2245`}(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype])] +[visit_exp `X*#2245`] +[visit_id X*#2245] +[visit_exp (t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype])] +[visit_exp t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#2294`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2294`] +[visit_id X*#2294] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C, bt, `%->_%%`_instrtype{resulttype#408, `localidx*#263`}(`%`_resulttype{`X*#2305`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2356`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp bt] +[visit_id bt] not free +[visit_exp `%->_%%`_instrtype{resulttype#408, `localidx*#263`}(`%`_resulttype{`X*#2305`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2356`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#408] +[visit_id resulttype#408] +[visit_exp `localidx*#263`] +[visit_id localidx*#263] +[visit_exp (`%`_resulttype{`X*#2305`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2356`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#2305`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#2305`] +[visit_id X*#2305] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#2356`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2356`] +[visit_id X*#2356] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp ({`TYPES`{`deftype*#24`} [], `RECS`{`subtype*#7`} [], `TAGS`{`tagtype*#4`} [], `GLOBALS`{`globaltype*#4`} [], `MEMS`{`memtype*#4`} [], `TABLES`{`tabletype*#4`} [], `FUNCS`{`deftype*#25`} [], `DATAS`{`datatype*#4`} [], `ELEMS`{`elemtype*#4`} [], `LOCALS`{`localtype*#7`} [], `LABELS`{`resulttype*#4`} [`%`_resulttype{`X*#2367`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#4`} ?(), `REFS`{`funcidx*#42`} []} +++ C, instr_1*{instr_1 <- `instr_1*`}, `%->_%%`_instrtype{resulttype#428, `localidx*#275`}(`%`_resulttype{`X*#2380`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#2432`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp {`TYPES`{`deftype*#24`} [], `RECS`{`subtype*#7`} [], `TAGS`{`tagtype*#4`} [], `GLOBALS`{`globaltype*#4`} [], `MEMS`{`memtype*#4`} [], `TABLES`{`tabletype*#4`} [], `FUNCS`{`deftype*#25`} [], `DATAS`{`datatype*#4`} [], `ELEMS`{`elemtype*#4`} [], `LOCALS`{`localtype*#7`} [], `LABELS`{`resulttype*#4`} [`%`_resulttype{`X*#2367`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#4`} ?(), `REFS`{`funcidx*#42`} []} +++ C] +[visit_exp {`TYPES`{`deftype*#24`} [], `RECS`{`subtype*#7`} [], `TAGS`{`tagtype*#4`} [], `GLOBALS`{`globaltype*#4`} [], `MEMS`{`memtype*#4`} [], `TABLES`{`tabletype*#4`} [], `FUNCS`{`deftype*#25`} [], `DATAS`{`datatype*#4`} [], `ELEMS`{`elemtype*#4`} [], `LOCALS`{`localtype*#7`} [], `LABELS`{`resulttype*#4`} [`%`_resulttype{`X*#2367`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#4`} ?(), `REFS`{`funcidx*#42`} []}] +[visit_exp `deftype*#24`] +[visit_id deftype*#24] +[visit_exp []] +[visit_exp `subtype*#7`] +[visit_id subtype*#7] +[visit_exp []] +[visit_exp `tagtype*#4`] +[visit_id tagtype*#4] +[visit_exp []] +[visit_exp `globaltype*#4`] +[visit_id globaltype*#4] +[visit_exp []] +[visit_exp `memtype*#4`] +[visit_id memtype*#4] +[visit_exp []] +[visit_exp `tabletype*#4`] +[visit_id tabletype*#4] +[visit_exp []] +[visit_exp `deftype*#25`] +[visit_id deftype*#25] +[visit_exp []] +[visit_exp `datatype*#4`] +[visit_id datatype*#4] +[visit_exp []] +[visit_exp `elemtype*#4`] +[visit_id elemtype*#4] +[visit_exp []] +[visit_exp `localtype*#7`] +[visit_id localtype*#7] +[visit_exp []] +[visit_exp `resulttype*#4`] +[visit_id resulttype*#4] +[visit_exp [`%`_resulttype{`X*#2367`}(t_2*{t_2 <- `t_2*`})]] +[visit_exp `%`_resulttype{`X*#2367`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2367`] +[visit_id X*#2367] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp `resulttype?#4`] +[visit_id resulttype?#4] +[visit_exp ?()] +[visit_exp `funcidx*#42`] +[visit_id funcidx*#42] +[visit_exp []] +[visit_exp C] +[visit_id C] not free +[visit_exp instr_1*{instr_1 <- `instr_1*`}] +[scope_enter instr_1] +[visit_exp instr_1] +[visit_id instr_1] not free +[visit_id instr_1] not free +[scope_exit instr_1] +[visit_exp `instr_1*`] +[visit_id instr_1*] not free +[visit_id instr_1*] no dims +[visit_exp `%->_%%`_instrtype{resulttype#428, `localidx*#275`}(`%`_resulttype{`X*#2380`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#2432`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#428] +[visit_id resulttype#428] +[visit_exp `localidx*#275`] +[visit_id localidx*#275] +[visit_exp (`%`_resulttype{`X*#2380`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#2432`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#2380`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#2380`] +[visit_id X*#2380] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp x_1*{x_1 <- `x_1*`}] +[scope_enter x_1] +[visit_exp x_1] +[visit_id x_1] not free +[visit_id x_1] not free +[scope_exit x_1] +[visit_exp `x_1*`] +[visit_id x_1*] no dims +[visit_id x_1*] +[visit_exp `%`_resulttype{`X*#2432`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2432`] +[visit_id X*#2432] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp ({`TYPES`{`deftype*#26`} [], `RECS`{`subtype*#8`} [], `TAGS`{`tagtype*#5`} [], `GLOBALS`{`globaltype*#5`} [], `MEMS`{`memtype*#5`} [], `TABLES`{`tabletype*#5`} [], `FUNCS`{`deftype*#27`} [], `DATAS`{`datatype*#5`} [], `ELEMS`{`elemtype*#5`} [], `LOCALS`{`localtype*#8`} [], `LABELS`{`resulttype*#5`} [`%`_resulttype{`X*#2445`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#5`} ?(), `REFS`{`funcidx*#43`} []} +++ C, instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype{resulttype#448, `localidx*#287`}(`%`_resulttype{`X*#2458`}(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#2510`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp {`TYPES`{`deftype*#26`} [], `RECS`{`subtype*#8`} [], `TAGS`{`tagtype*#5`} [], `GLOBALS`{`globaltype*#5`} [], `MEMS`{`memtype*#5`} [], `TABLES`{`tabletype*#5`} [], `FUNCS`{`deftype*#27`} [], `DATAS`{`datatype*#5`} [], `ELEMS`{`elemtype*#5`} [], `LOCALS`{`localtype*#8`} [], `LABELS`{`resulttype*#5`} [`%`_resulttype{`X*#2445`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#5`} ?(), `REFS`{`funcidx*#43`} []} +++ C] +[visit_exp {`TYPES`{`deftype*#26`} [], `RECS`{`subtype*#8`} [], `TAGS`{`tagtype*#5`} [], `GLOBALS`{`globaltype*#5`} [], `MEMS`{`memtype*#5`} [], `TABLES`{`tabletype*#5`} [], `FUNCS`{`deftype*#27`} [], `DATAS`{`datatype*#5`} [], `ELEMS`{`elemtype*#5`} [], `LOCALS`{`localtype*#8`} [], `LABELS`{`resulttype*#5`} [`%`_resulttype{`X*#2445`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#5`} ?(), `REFS`{`funcidx*#43`} []}] +[visit_exp `deftype*#26`] +[visit_id deftype*#26] +[visit_exp []] +[visit_exp `subtype*#8`] +[visit_id subtype*#8] +[visit_exp []] +[visit_exp `tagtype*#5`] +[visit_id tagtype*#5] +[visit_exp []] +[visit_exp `globaltype*#5`] +[visit_id globaltype*#5] +[visit_exp []] +[visit_exp `memtype*#5`] +[visit_id memtype*#5] +[visit_exp []] +[visit_exp `tabletype*#5`] +[visit_id tabletype*#5] +[visit_exp []] +[visit_exp `deftype*#27`] +[visit_id deftype*#27] +[visit_exp []] +[visit_exp `datatype*#5`] +[visit_id datatype*#5] +[visit_exp []] +[visit_exp `elemtype*#5`] +[visit_id elemtype*#5] +[visit_exp []] +[visit_exp `localtype*#8`] +[visit_id localtype*#8] +[visit_exp []] +[visit_exp `resulttype*#5`] +[visit_id resulttype*#5] +[visit_exp [`%`_resulttype{`X*#2445`}(t_2*{t_2 <- `t_2*`})]] +[visit_exp `%`_resulttype{`X*#2445`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2445`] +[visit_id X*#2445] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp `resulttype?#5`] +[visit_id resulttype?#5] +[visit_exp ?()] +[visit_exp `funcidx*#43`] +[visit_id funcidx*#43] +[visit_exp []] +[visit_exp C] +[visit_id C] not free +[visit_exp instr_2*{instr_2 <- `instr_2*`}] +[scope_enter instr_2] +[visit_exp instr_2] +[visit_id instr_2] not free +[visit_id instr_2] not free +[scope_exit instr_2] +[visit_exp `instr_2*`] +[visit_id instr_2*] not free +[visit_id instr_2*] no dims +[visit_exp `%->_%%`_instrtype{resulttype#448, `localidx*#287`}(`%`_resulttype{`X*#2458`}(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#2510`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#448] +[visit_id resulttype#448] +[visit_exp `localidx*#287`] +[visit_id localidx*#287] +[visit_exp (`%`_resulttype{`X*#2458`}(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#2510`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#2458`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#2458`] +[visit_id X*#2458] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp x_2*{x_2 <- `x_2*`}] +[scope_enter x_2] +[visit_exp x_2] +[visit_id x_2] not free +[visit_id x_2] not free +[scope_exit x_2] +[visit_exp `x_2*`] +[visit_id x_2*] no dims +[visit_id x_2*] +[visit_exp `%`_resulttype{`X*#2510`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2510`] +[visit_id X*#2510] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#2533 X*#2582 X*#2627 X*#2637 X*#2688 i#5368 l labelidx#15 localidx*#299 localidx*#311 resulttype#468 resulttype#488 resulttype*#7 t t_1 t_2 +[visit_exp C] +[visit_id C] +[visit_exp `BR`_instr{labelidx#15}(l)] +[visit_exp labelidx#15] +[visit_id labelidx#15] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp `%->_%%`_instrtype{resulttype#468, `localidx*#299`}(`%`_resulttype{`X*#2533`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#2582`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#468] +[visit_id resulttype#468] +[visit_exp `localidx*#299`] +[visit_id localidx*#299] +[visit_exp (`%`_resulttype{`X*#2533`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#2582`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#2533`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] +[visit_exp `X*#2533`] +[visit_id X*#2533] +[visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] +[visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#2582`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2582`] +[visit_id X*#2582] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C.`LABELS`_context{`resulttype*#7`}[l!`%`_labelidx{i#5368}.0]!`%`_resulttype{`X*#2627`}.0 = t*{t <- `t*`})] +[visit_exp C.`LABELS`_context{`resulttype*#7`}[l!`%`_labelidx{i#5368}.0]!`%`_resulttype{`X*#2627`}.0] +[visit_exp C.`LABELS`_context{`resulttype*#7`}[l!`%`_labelidx{i#5368}.0]!`%`_resulttype{`X*#2627`}] +[visit_exp C.`LABELS`_context{`resulttype*#7`}[l!`%`_labelidx{i#5368}.0]] +[visit_exp C.`LABELS`_context{`resulttype*#7`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype*#7`] +[visit_id resulttype*#7] +[visit_exp l!`%`_labelidx{i#5368}.0] +[visit_exp l!`%`_labelidx{i#5368}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#5368] +[visit_id i#5368] +[visit_exp `X*#2627`] +[visit_id X*#2627] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp (C, `%->_%%`_instrtype{resulttype#488, `localidx*#311`}(`%`_resulttype{`X*#2637`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2688`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%->_%%`_instrtype{resulttype#488, `localidx*#311`}(`%`_resulttype{`X*#2637`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2688`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#488] +[visit_id resulttype#488] +[visit_exp `localidx*#311`] +[visit_id localidx*#311] +[visit_exp (`%`_resulttype{`X*#2637`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2688`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#2637`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#2637`] +[visit_id X*#2637] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#2688`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2688`] +[visit_id X*#2688] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#2709 X*#2758 X*#2803 i#5400 l labelidx#17 localidx*#323 resulttype#508 resulttype*#9 t +[visit_exp C] +[visit_id C] +[visit_exp `BR_IF`_instr{labelidx#17}(l)] +[visit_exp labelidx#17] +[visit_id labelidx#17] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp `%->_%%`_instrtype{resulttype#508, `localidx*#323`}(`%`_resulttype{`X*#2709`}(t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2758`}(t*{t <- `t*`}))] +[visit_exp resulttype#508] +[visit_id resulttype#508] +[visit_exp `localidx*#323`] +[visit_id localidx*#323] +[visit_exp (`%`_resulttype{`X*#2709`}(t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2758`}(t*{t <- `t*`}))] +[visit_exp `%`_resulttype{`X*#2709`}(t*{t <- `t*`} ++ [`I32`_valtype])] +[visit_exp `X*#2709`] +[visit_id X*#2709] +[visit_exp (t*{t <- `t*`} ++ [`I32`_valtype])] +[visit_exp t*{t <- `t*`} ++ [`I32`_valtype]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#2758`}(t*{t <- `t*`})] +[visit_exp `X*#2758`] +[visit_id X*#2758] +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp (C.`LABELS`_context{`resulttype*#9`}[l!`%`_labelidx{i#5400}.0]!`%`_resulttype{`X*#2803`}.0 = t*{t <- `t*`})] +[visit_exp C.`LABELS`_context{`resulttype*#9`}[l!`%`_labelidx{i#5400}.0]!`%`_resulttype{`X*#2803`}.0] +[visit_exp C.`LABELS`_context{`resulttype*#9`}[l!`%`_labelidx{i#5400}.0]!`%`_resulttype{`X*#2803`}] +[visit_exp C.`LABELS`_context{`resulttype*#9`}[l!`%`_labelidx{i#5400}.0]] +[visit_exp C.`LABELS`_context{`resulttype*#9`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype*#9`] +[visit_id resulttype*#9] +[visit_exp l!`%`_labelidx{i#5400}.0] +[visit_exp l!`%`_labelidx{i#5400}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#5400] +[visit_id i#5400] +[visit_exp `X*#2803`] +[visit_id X*#2803] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[check_dims] C X*#2823 X*#2872 X*#2883 X*#2906 X*#2939 X*#2988 i#5482 i#5492 l l' labelidx#19 labelidx*#48 localidx*#335 localidx*#347 resulttype#528 resulttype#548 resulttype*#10 resulttype*#11 t t_1 t_2 +[visit_exp C] +[visit_id C] +[visit_exp `BR_TABLE`_instr{`labelidx*#48`, labelidx#19}(l*{l <- `l*`}, l')] +[visit_exp `labelidx*#48`] +[visit_id labelidx*#48] +[visit_exp labelidx#19] +[visit_id labelidx#19] +[visit_exp (l*{l <- `l*`}, l')] +[visit_exp l*{l <- `l*`}] +[scope_enter l] +[visit_exp l] +[visit_id l] not free +[visit_id l] not free +[scope_exit l] +[visit_exp `l*`] +[visit_id l*] no dims +[visit_id l*] +[visit_exp l'] +[visit_id l'] +[visit_exp `%->_%%`_instrtype{resulttype#528, `localidx*#335`}(`%`_resulttype{`X*#2823`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2872`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#528] +[visit_id resulttype#528] +[visit_exp `localidx*#335`] +[visit_id localidx*#335] +[visit_exp (`%`_resulttype{`X*#2823`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2872`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#2823`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] +[visit_exp `X*#2823`] +[visit_id X*#2823] +[visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] +[visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp t*{t <- `t*`} ++ [`I32`_valtype]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#2872`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2872`] +[visit_id X*#2872] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[scope_enter X*#2883] +[scope_enter i#5482] +[scope_enter l] +[scope_enter resulttype*#10] +[visit_exp (C, `%`_resulttype{`X*#2883`}(t*{t <- `t*`}), C.`LABELS`_context{`resulttype*#10`}[l!`%`_labelidx{i#5482}.0])] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#2883`}(t*{t <- `t*`})] +[visit_exp `X*#2883`] +[visit_id X*#2883] not free +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp C.`LABELS`_context{`resulttype*#10`}[l!`%`_labelidx{i#5482}.0]] +[visit_exp C.`LABELS`_context{`resulttype*#10`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype*#10`] +[visit_id resulttype*#10] not free +[visit_exp l!`%`_labelidx{i#5482}.0] +[visit_exp l!`%`_labelidx{i#5482}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#5482] +[visit_id i#5482] not free +[visit_id X*#2883] not free +[visit_id i#5482] not free +[visit_id l] not free +[visit_id resulttype*#10] not free +[scope_exit resulttype*#10] +[scope_exit l] +[scope_exit i#5482] +[scope_exit X*#2883] +[visit_exp `X*#2883*`] +[visit_id X*#2883*] no dims +[visit_id X*#2883*] +[visit_exp `i#5482*`] +[visit_id i#5482*] no dims +[visit_id i#5482*] +[visit_exp `l*`] +[visit_id l*] not free +[visit_id l*] no dims +[visit_exp `resulttype*#10*`] +[visit_id resulttype*#10*] no dims +[visit_id resulttype*#10*] +[visit_exp (C, `%`_resulttype{`X*#2906`}(t*{t <- `t*`}), C.`LABELS`_context{`resulttype*#11`}[l'!`%`_labelidx{i#5492}.0])] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#2906`}(t*{t <- `t*`})] +[visit_exp `X*#2906`] +[visit_id X*#2906] +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp C.`LABELS`_context{`resulttype*#11`}[l'!`%`_labelidx{i#5492}.0]] +[visit_exp C.`LABELS`_context{`resulttype*#11`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype*#11`] +[visit_id resulttype*#11] +[visit_exp l'!`%`_labelidx{i#5492}.0] +[visit_exp l'!`%`_labelidx{i#5492}] +[visit_exp l'] +[visit_id l'] not free +[visit_exp i#5492] +[visit_id i#5492] +[visit_exp (C, `%->_%%`_instrtype{resulttype#548, `localidx*#347`}(`%`_resulttype{`X*#2939`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2988`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%->_%%`_instrtype{resulttype#548, `localidx*#347`}(`%`_resulttype{`X*#2939`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2988`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#548] +[visit_id resulttype#548] +[visit_exp `localidx*#347`] +[visit_id localidx*#347] +[visit_exp (`%`_resulttype{`X*#2939`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2988`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#2939`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] +[visit_exp `X*#2939`] +[visit_id X*#2939] +[visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] +[visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp t*{t <- `t*`} ++ [`I32`_valtype]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#2988`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#2988`] +[visit_id X*#2988] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#3009 X*#3058 X*#3103 heaptype#537 heaptype#539 ht i#5524 l labelidx#21 localidx*#359 null?#535 null?#537 resulttype#568 resulttype*#13 t +[visit_exp C] +[visit_id C] +[visit_exp `BR_ON_NULL`_instr{labelidx#21}(l)] +[visit_exp labelidx#21] +[visit_id labelidx#21] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp `%->_%%`_instrtype{resulttype#568, `localidx*#359`}(`%`_resulttype{`X*#3009`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#3058`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)]))] +[visit_exp resulttype#568] +[visit_id resulttype#568] +[visit_exp `localidx*#359`] +[visit_id localidx*#359] +[visit_exp (`%`_resulttype{`X*#3009`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#3058`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)]))] +[visit_exp `%`_resulttype{`X*#3009`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)])] +[visit_exp `X*#3009`] +[visit_id X*#3009] +[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)])] +[visit_exp t*{t <- `t*`} ++ [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)]] +[visit_exp `REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)] +[visit_exp `null?#535`] +[visit_id null?#535] +[visit_exp heaptype#537] +[visit_id heaptype#537] +[visit_exp (?(`NULL`_null), ht)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht] +[visit_id ht] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#3058`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)])] +[visit_exp `X*#3058`] +[visit_id X*#3058] +[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)])] +[visit_exp t*{t <- `t*`} ++ [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)]] +[visit_exp `REF`_valtype{`null?#537`, heaptype#539}(?(), ht)] +[visit_exp `null?#537`] +[visit_id null?#537] +[visit_exp heaptype#539] +[visit_id heaptype#539] +[visit_exp (?(), ht)] +[visit_exp ?()] +[visit_exp ht] +[visit_id ht] not free +[visit_exp (C.`LABELS`_context{`resulttype*#13`}[l!`%`_labelidx{i#5524}.0]!`%`_resulttype{`X*#3103`}.0 = t*{t <- `t*`})] +[visit_exp C.`LABELS`_context{`resulttype*#13`}[l!`%`_labelidx{i#5524}.0]!`%`_resulttype{`X*#3103`}.0] +[visit_exp C.`LABELS`_context{`resulttype*#13`}[l!`%`_labelidx{i#5524}.0]!`%`_resulttype{`X*#3103`}] +[visit_exp C.`LABELS`_context{`resulttype*#13`}[l!`%`_labelidx{i#5524}.0]] +[visit_exp C.`LABELS`_context{`resulttype*#13`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype*#13`] +[visit_id resulttype*#13] +[visit_exp l!`%`_labelidx{i#5524}.0] +[visit_exp l!`%`_labelidx{i#5524}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#5524] +[visit_id i#5524] +[visit_exp `X*#3103`] +[visit_id X*#3103] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp (C, ht)] +[visit_exp C] +[visit_id C] not free +[visit_exp ht] +[visit_id ht] not free +[check_dims] C X*#3123 X*#3172 X*#3193 heaptype#541 heaptype#543 ht i#5546 l labelidx#23 localidx*#371 null?#539 null?#541 resulttype#588 resulttype*#14 t +[visit_exp C] +[visit_id C] +[visit_exp `BR_ON_NON_NULL`_instr{labelidx#23}(l)] +[visit_exp labelidx#23] +[visit_id labelidx#23] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp `%->_%%`_instrtype{resulttype#588, `localidx*#371`}(`%`_resulttype{`X*#3123`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#3172`}(t*{t <- `t*`}))] +[visit_exp resulttype#588] +[visit_id resulttype#588] +[visit_exp `localidx*#371`] +[visit_id localidx*#371] +[visit_exp (`%`_resulttype{`X*#3123`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#3172`}(t*{t <- `t*`}))] +[visit_exp `%`_resulttype{`X*#3123`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)])] +[visit_exp `X*#3123`] +[visit_id X*#3123] +[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)])] +[visit_exp t*{t <- `t*`} ++ [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)]] +[visit_exp `REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)] +[visit_exp `null?#539`] +[visit_id null?#539] +[visit_exp heaptype#541] +[visit_id heaptype#541] +[visit_exp (?(`NULL`_null), ht)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht] +[visit_id ht] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#3172`}(t*{t <- `t*`})] +[visit_exp `X*#3172`] +[visit_id X*#3172] +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp (C.`LABELS`_context{`resulttype*#14`}[l!`%`_labelidx{i#5546}.0] = `%`_resulttype{`X*#3193`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)]))] +[visit_exp C.`LABELS`_context{`resulttype*#14`}[l!`%`_labelidx{i#5546}.0]] +[visit_exp C.`LABELS`_context{`resulttype*#14`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype*#14`] +[visit_id resulttype*#14] +[visit_exp l!`%`_labelidx{i#5546}.0] +[visit_exp l!`%`_labelidx{i#5546}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#5546] +[visit_id i#5546] +[visit_exp `%`_resulttype{`X*#3193`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)])] +[visit_exp `X*#3193`] +[visit_id X*#3193] +[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)])] +[visit_exp t*{t <- `t*`} ++ [`REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp [`REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)]] +[visit_exp `REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)] +[visit_exp `null?#541`] +[visit_id null?#541] +[visit_exp heaptype#543] +[visit_id heaptype#543] +[visit_exp (`NULL`_null?{}, ht)] +[visit_exp `NULL`_null?{}] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht] +[visit_id ht] not free +[check_dims] C X*#3214 X*#3263 X*#3284 i#5568 l labelidx#25 localidx*#383 reftype#373 resulttype#608 resulttype*#15 rt rt_1 rt_2 t +[visit_exp C] +[visit_id C] +[visit_exp `BR_ON_CAST`_instr{labelidx#25, reftype#373}(l, rt_1, rt_2)] +[visit_exp labelidx#25] +[visit_id labelidx#25] +[visit_exp reftype#373] +[visit_id reftype#373] +[visit_exp (l, rt_1, rt_2)] +[visit_exp l] +[visit_id l] +[visit_exp rt_1] +[visit_id rt_1] +[visit_exp rt_2] +[visit_id rt_2] +[visit_exp `%->_%%`_instrtype{resulttype#608, `localidx*#383`}(`%`_resulttype{`X*#3214`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype{`X*#3263`}(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))] +[visit_exp resulttype#608] +[visit_id resulttype#608] +[visit_exp `localidx*#383`] +[visit_id localidx*#383] +[visit_exp (`%`_resulttype{`X*#3214`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype{`X*#3263`}(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))] +[visit_exp `%`_resulttype{`X*#3214`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] +[visit_exp `X*#3214`] +[visit_id X*#3214] +[visit_exp (t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] +[visit_exp t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp [(rt_1 : reftype <: valtype)]] +[visit_exp (rt_1 : reftype <: valtype)] +[visit_exp rt_1] +[visit_id rt_1] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#3263`}(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)])] +[visit_exp `X*#3263`] +[visit_id X*#3263] +[visit_exp (t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)])] +[visit_exp t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp [($diffrt(rt_1, rt_2) : reftype <: valtype)]] +[visit_exp ($diffrt(rt_1, rt_2) : reftype <: valtype)] +[visit_exp $diffrt(rt_1, rt_2)] +[visit_exp rt_1] +[visit_id rt_1] not free +[visit_exp rt_2] +[visit_id rt_2] not free +[visit_exp (C.`LABELS`_context{`resulttype*#15`}[l!`%`_labelidx{i#5568}.0] = `%`_resulttype{`X*#3284`}(t*{t <- `t*`} ++ [(rt : reftype <: valtype)]))] +[visit_exp C.`LABELS`_context{`resulttype*#15`}[l!`%`_labelidx{i#5568}.0]] +[visit_exp C.`LABELS`_context{`resulttype*#15`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype*#15`] +[visit_id resulttype*#15] +[visit_exp l!`%`_labelidx{i#5568}.0] +[visit_exp l!`%`_labelidx{i#5568}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#5568] +[visit_id i#5568] +[visit_exp `%`_resulttype{`X*#3284`}(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] +[visit_exp `X*#3284`] +[visit_id X*#3284] +[visit_exp (t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] +[visit_exp t*{t <- `t*`} ++ [(rt : reftype <: valtype)]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp [(rt : reftype <: valtype)]] +[visit_exp (rt : reftype <: valtype)] +[visit_exp rt] +[visit_id rt] +[visit_exp (C, rt_1)] +[visit_exp C] +[visit_id C] not free +[visit_exp rt_1] +[visit_id rt_1] not free +[visit_exp (C, rt_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp rt_2] +[visit_id rt_2] not free +[visit_exp (C, rt_2, rt_1)] +[visit_exp C] +[visit_id C] not free +[visit_exp rt_2] +[visit_id rt_2] not free +[visit_exp rt_1] +[visit_id rt_1] not free +[visit_exp (C, rt_2, rt)] +[visit_exp C] +[visit_id C] not free +[visit_exp rt_2] +[visit_id rt_2] not free +[visit_exp rt] +[visit_id rt] not free +[check_dims] C X*#3305 X*#3354 X*#3375 i#5590 l labelidx#27 localidx*#395 reftype#376 resulttype#628 resulttype*#16 rt rt_1 rt_2 t +[visit_exp C] +[visit_id C] +[visit_exp `BR_ON_CAST_FAIL`_instr{labelidx#27, reftype#376}(l, rt_1, rt_2)] +[visit_exp labelidx#27] +[visit_id labelidx#27] +[visit_exp reftype#376] +[visit_id reftype#376] +[visit_exp (l, rt_1, rt_2)] +[visit_exp l] +[visit_id l] +[visit_exp rt_1] +[visit_id rt_1] +[visit_exp rt_2] +[visit_id rt_2] +[visit_exp `%->_%%`_instrtype{resulttype#628, `localidx*#395`}(`%`_resulttype{`X*#3305`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype{`X*#3354`}(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))] +[visit_exp resulttype#628] +[visit_id resulttype#628] +[visit_exp `localidx*#395`] +[visit_id localidx*#395] +[visit_exp (`%`_resulttype{`X*#3305`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype{`X*#3354`}(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))] +[visit_exp `%`_resulttype{`X*#3305`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] +[visit_exp `X*#3305`] +[visit_id X*#3305] +[visit_exp (t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] +[visit_exp t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp [(rt_1 : reftype <: valtype)]] +[visit_exp (rt_1 : reftype <: valtype)] +[visit_exp rt_1] +[visit_id rt_1] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#3354`}(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)])] +[visit_exp `X*#3354`] +[visit_id X*#3354] +[visit_exp (t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)])] +[visit_exp t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp [(rt_2 : reftype <: valtype)]] +[visit_exp (rt_2 : reftype <: valtype)] +[visit_exp rt_2] +[visit_id rt_2] not free +[visit_exp (C.`LABELS`_context{`resulttype*#16`}[l!`%`_labelidx{i#5590}.0] = `%`_resulttype{`X*#3375`}(t*{t <- `t*`} ++ [(rt : reftype <: valtype)]))] +[visit_exp C.`LABELS`_context{`resulttype*#16`}[l!`%`_labelidx{i#5590}.0]] +[visit_exp C.`LABELS`_context{`resulttype*#16`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype*#16`] +[visit_id resulttype*#16] +[visit_exp l!`%`_labelidx{i#5590}.0] +[visit_exp l!`%`_labelidx{i#5590}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#5590] +[visit_id i#5590] +[visit_exp `%`_resulttype{`X*#3375`}(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] +[visit_exp `X*#3375`] +[visit_id X*#3375] +[visit_exp (t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] +[visit_exp t*{t <- `t*`} ++ [(rt : reftype <: valtype)]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp [(rt : reftype <: valtype)]] +[visit_exp (rt : reftype <: valtype)] +[visit_exp rt] +[visit_id rt] +[visit_exp (C, rt_1)] +[visit_exp C] +[visit_id C] not free +[visit_exp rt_1] +[visit_id rt_1] not free +[visit_exp (C, rt_2)] +[visit_exp C] +[visit_id C] not free +[visit_exp rt_2] +[visit_id rt_2] not free +[visit_exp (C, rt_2, rt_1)] +[visit_exp C] +[visit_id C] not free +[visit_exp rt_2] +[visit_id rt_2] not free +[visit_exp rt_1] +[visit_id rt_1] not free +[visit_exp (C, $diffrt(rt_1, rt_2), rt)] +[visit_exp C] +[visit_id C] not free +[visit_exp $diffrt(rt_1, rt_2)] +[visit_exp rt_1] +[visit_id rt_1] not free +[visit_exp rt_2] +[visit_id rt_2] not free +[visit_exp rt] +[visit_id rt] not free +[check_dims] C X*#3386 X*#3437 X*#3450 X*#3463 deftype*#28 funcidx#177 i#5614 localidx*#407 resulttype#648 resulttype#651 t_1 t_2 x +[visit_exp C] +[visit_id C] +[visit_exp `CALL`_instr{funcidx#177}(x)] +[visit_exp funcidx#177] +[visit_id funcidx#177] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#648, `localidx*#407`}(`%`_resulttype{`X*#3386`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3437`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#648] +[visit_id resulttype#648] +[visit_exp `localidx*#407`] +[visit_id localidx*#407] +[visit_exp (`%`_resulttype{`X*#3386`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3437`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#3386`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#3386`] +[visit_id X*#3386] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#3437`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#3437`] +[visit_id X*#3437] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C.`FUNCS`_context{`deftype*#28`}[x!`%`_idx{i#5614}.0], `FUNC%->%`_comptype{resulttype#651}(`%`_resulttype{`X*#3450`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3463`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`FUNCS`_context{`deftype*#28`}[x!`%`_idx{i#5614}.0]] +[visit_exp C.`FUNCS`_context{`deftype*#28`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#28`] +[visit_id deftype*#28] +[visit_exp x!`%`_idx{i#5614}.0] +[visit_exp x!`%`_idx{i#5614}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#5614] +[visit_id i#5614] +[visit_exp `FUNC%->%`_comptype{resulttype#651}(`%`_resulttype{`X*#3450`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3463`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#651] +[visit_id resulttype#651] +[visit_exp (`%`_resulttype{`X*#3450`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3463`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#3450`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#3450`] +[visit_id X*#3450] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `%`_resulttype{`X*#3463`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#3463`] +[visit_id X*#3463] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#3486 X*#3535 X*#3548 X*#3561 deftype*#29 heaptype#665 i#5652 localidx*#419 null?#663 resulttype#671 resulttype#674 t_1 t_2 typeidx#394 typeidx#396 typeuse#23 x +[visit_exp C] +[visit_id C] +[visit_exp `CALL_REF`_instr{typeuse#23}(`_IDX`_typeuse{typeidx#394}(x))] +[visit_exp typeuse#23] +[visit_id typeuse#23] +[visit_exp (`_IDX`_typeuse{typeidx#394}(x))] +[visit_exp `_IDX`_typeuse{typeidx#394}(x)] +[visit_exp typeidx#394] +[visit_id typeidx#394] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#671, `localidx*#419`}(`%`_resulttype{`X*#3486`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))]), [], `%`_resulttype{`X*#3535`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#671] +[visit_id resulttype#671] +[visit_exp `localidx*#419`] +[visit_id localidx*#419] +[visit_exp (`%`_resulttype{`X*#3486`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))]), [], `%`_resulttype{`X*#3535`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#3486`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))])] +[visit_exp `X*#3486`] +[visit_id X*#3486] +[visit_exp (t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))])] +[visit_exp t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))]] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))]] +[visit_exp `REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))] +[visit_exp `null?#663`] +[visit_id null?#663] +[visit_exp heaptype#665] +[visit_id heaptype#665] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `_IDX`_heaptype{typeidx#396}(x)] +[visit_exp typeidx#396] +[visit_id typeidx#396] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#3535`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#3535`] +[visit_id X*#3535] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C.`TYPES`_context{`deftype*#29`}[x!`%`_idx{i#5652}.0], `FUNC%->%`_comptype{resulttype#674}(`%`_resulttype{`X*#3548`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3561`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`TYPES`_context{`deftype*#29`}[x!`%`_idx{i#5652}.0]] +[visit_exp C.`TYPES`_context{`deftype*#29`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#29`] +[visit_id deftype*#29] +[visit_exp x!`%`_idx{i#5652}.0] +[visit_exp x!`%`_idx{i#5652}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#5652] +[visit_id i#5652] +[visit_exp `FUNC%->%`_comptype{resulttype#674}(`%`_resulttype{`X*#3548`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3561`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#674] +[visit_id resulttype#674] +[visit_exp (`%`_resulttype{`X*#3548`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3561`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#3548`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#3548`] +[visit_id X*#3548] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `%`_resulttype{`X*#3561`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#3561`] +[visit_id X*#3561] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#3584 X*#3633 X*#3646 X*#3659 addrtype#441 at deftype*#30 heaptype#689 i#5690 i#5700 lim limits#441 localidx*#431 null?#687 reftype#389 resulttype#694 resulttype#697 rt t_1 t_2 tableidx#26 tabletype*#6 typeidx#398 typeuse#25 x y +[visit_exp C] +[visit_id C] +[visit_exp `CALL_INDIRECT`_instr{tableidx#26, typeuse#25}(x, `_IDX`_typeuse{typeidx#398}(y))] +[visit_exp tableidx#26] +[visit_id tableidx#26] +[visit_exp typeuse#25] +[visit_id typeuse#25] +[visit_exp (x, `_IDX`_typeuse{typeidx#398}(y))] +[visit_exp x] +[visit_id x] +[visit_exp `_IDX`_typeuse{typeidx#398}(y)] +[visit_exp typeidx#398] +[visit_id typeidx#398] +[visit_exp (y)] +[visit_exp y] +[visit_id y] +[visit_exp `%->_%%`_instrtype{resulttype#694, `localidx*#431`}(`%`_resulttype{`X*#3584`}(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#3633`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#694] +[visit_id resulttype#694] +[visit_exp `localidx*#431`] +[visit_id localidx*#431] +[visit_exp (`%`_resulttype{`X*#3584`}(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#3633`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#3584`}(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] +[visit_exp `X*#3584`] +[visit_id X*#3584] +[visit_exp (t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] +[visit_exp t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp [(at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#3633`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#3633`] +[visit_id X*#3633] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C.`TABLES`_context{`tabletype*#6`}[x!`%`_idx{i#5690}.0] = `%%%`_tabletype{addrtype#441, limits#441, reftype#389}(at, lim, rt))] +[visit_exp C.`TABLES`_context{`tabletype*#6`}[x!`%`_idx{i#5690}.0]] +[visit_exp C.`TABLES`_context{`tabletype*#6`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tabletype*#6`] +[visit_id tabletype*#6] +[visit_exp x!`%`_idx{i#5690}.0] +[visit_exp x!`%`_idx{i#5690}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#5690] +[visit_id i#5690] +[visit_exp `%%%`_tabletype{addrtype#441, limits#441, reftype#389}(at, lim, rt)] +[visit_exp addrtype#441] +[visit_id addrtype#441] +[visit_exp limits#441] +[visit_id limits#441] +[visit_exp reftype#389] +[visit_id reftype#389] +[visit_exp (at, lim, rt)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp rt] +[visit_id rt] +[visit_exp (C, rt, `REF`_reftype{`null?#687`, heaptype#689}(?(`NULL`_null), `FUNC`_heaptype))] +[visit_exp C] +[visit_id C] not free +[visit_exp rt] +[visit_id rt] not free +[visit_exp `REF`_reftype{`null?#687`, heaptype#689}(?(`NULL`_null), `FUNC`_heaptype)] +[visit_exp `null?#687`] +[visit_id null?#687] +[visit_exp heaptype#689] +[visit_id heaptype#689] +[visit_exp (?(`NULL`_null), `FUNC`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `FUNC`_heaptype] +[visit_exp ()] +[visit_exp (C.`TYPES`_context{`deftype*#30`}[y!`%`_idx{i#5700}.0], `FUNC%->%`_comptype{resulttype#697}(`%`_resulttype{`X*#3646`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3659`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`TYPES`_context{`deftype*#30`}[y!`%`_idx{i#5700}.0]] +[visit_exp C.`TYPES`_context{`deftype*#30`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#30`] +[visit_id deftype*#30] +[visit_exp y!`%`_idx{i#5700}.0] +[visit_exp y!`%`_idx{i#5700}] +[visit_exp y] +[visit_id y] not free +[visit_exp i#5700] +[visit_id i#5700] +[visit_exp `FUNC%->%`_comptype{resulttype#697}(`%`_resulttype{`X*#3646`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3659`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#697] +[visit_id resulttype#697] +[visit_exp (`%`_resulttype{`X*#3646`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3659`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#3646`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#3646`] +[visit_id X*#3646] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `%`_resulttype{`X*#3659`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#3659`] +[visit_id X*#3659] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#3682 X*#3731 X*#3766 X*#3779 X*#3830 localidx*#443 localidx*#455 resulttype#717 resulttype#737 resulttype?#8 t t_1 t_2 +[visit_exp C] +[visit_id C] +[visit_exp `RETURN`_instr] +[visit_exp ()] +[visit_exp `%->_%%`_instrtype{resulttype#717, `localidx*#443`}(`%`_resulttype{`X*#3682`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#3731`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#717] +[visit_id resulttype#717] +[visit_exp `localidx*#443`] +[visit_id localidx*#443] +[visit_exp (`%`_resulttype{`X*#3682`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#3731`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#3682`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] +[visit_exp `X*#3682`] +[visit_id X*#3682] +[visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] +[visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#3731`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#3731`] +[visit_id X*#3731] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C.`RETURN`_context{`resulttype?#8`} = ?(`%`_resulttype{`X*#3766`}(t*{t <- `t*`})))] +[visit_exp C.`RETURN`_context{`resulttype?#8`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype?#8`] +[visit_id resulttype?#8] +[visit_exp ?(`%`_resulttype{`X*#3766`}(t*{t <- `t*`}))] +[visit_exp `%`_resulttype{`X*#3766`}(t*{t <- `t*`})] +[visit_exp `X*#3766`] +[visit_id X*#3766] +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp (C, `%->_%%`_instrtype{resulttype#737, `localidx*#455`}(`%`_resulttype{`X*#3779`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3830`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%->_%%`_instrtype{resulttype#737, `localidx*#455`}(`%`_resulttype{`X*#3779`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3830`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#737] +[visit_id resulttype#737] +[visit_exp `localidx*#455`] +[visit_id localidx*#455] +[visit_exp (`%`_resulttype{`X*#3779`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3830`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#3779`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#3779`] +[visit_id X*#3779] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#3830`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#3830`] +[visit_id X*#3830] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#3851 X*#3900 X*#3913 X*#3926 X*#3963 X*#3976 X*#3989 X*#4002 X*#4053 deftype*#31 funcidx#179 i#5724 localidx*#467 localidx*#479 resulttype#757 resulttype#760 resulttype#780 resulttype?#11 t'_2 t_1 t_2 t_3 t_4 x +[visit_exp C] +[visit_id C] +[visit_exp `RETURN_CALL`_instr{funcidx#179}(x)] +[visit_exp funcidx#179] +[visit_id funcidx#179] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#757, `localidx*#467`}(`%`_resulttype{`X*#3851`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3900`}(t_4*{t_4 <- `t_4*`}))] +[visit_exp resulttype#757] +[visit_id resulttype#757] +[visit_exp `localidx*#467`] +[visit_id localidx*#467] +[visit_exp (`%`_resulttype{`X*#3851`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3900`}(t_4*{t_4 <- `t_4*`}))] +[visit_exp `%`_resulttype{`X*#3851`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#3851`] +[visit_id X*#3851] +[visit_exp (t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`})] +[visit_exp t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}] +[visit_exp t_3*{t_3 <- `t_3*`}] +[scope_enter t_3] +[visit_exp t_3] +[visit_id t_3] not free +[visit_id t_3] not free +[scope_exit t_3] +[visit_exp `t_3*`] +[visit_id t_3*] no dims +[visit_id t_3*] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#3900`}(t_4*{t_4 <- `t_4*`})] +[visit_exp `X*#3900`] +[visit_id X*#3900] +[visit_exp (t_4*{t_4 <- `t_4*`})] +[visit_exp t_4*{t_4 <- `t_4*`}] +[scope_enter t_4] +[visit_exp t_4] +[visit_id t_4] not free +[visit_id t_4] not free +[scope_exit t_4] +[visit_exp `t_4*`] +[visit_id t_4*] no dims +[visit_id t_4*] +[visit_exp (C.`FUNCS`_context{`deftype*#31`}[x!`%`_idx{i#5724}.0], `FUNC%->%`_comptype{resulttype#760}(`%`_resulttype{`X*#3913`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3926`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`FUNCS`_context{`deftype*#31`}[x!`%`_idx{i#5724}.0]] +[visit_exp C.`FUNCS`_context{`deftype*#31`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#31`] +[visit_id deftype*#31] +[visit_exp x!`%`_idx{i#5724}.0] +[visit_exp x!`%`_idx{i#5724}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#5724] +[visit_id i#5724] +[visit_exp `FUNC%->%`_comptype{resulttype#760}(`%`_resulttype{`X*#3913`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3926`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#760] +[visit_id resulttype#760] +[visit_exp (`%`_resulttype{`X*#3913`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3926`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#3913`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#3913`] +[visit_id X*#3913] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `%`_resulttype{`X*#3926`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#3926`] +[visit_id X*#3926] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C.`RETURN`_context{`resulttype?#11`} = ?(`%`_resulttype{`X*#3963`}(t'_2*{t'_2 <- `t'_2*`})))] +[visit_exp C.`RETURN`_context{`resulttype?#11`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype?#11`] +[visit_id resulttype?#11] +[visit_exp ?(`%`_resulttype{`X*#3963`}(t'_2*{t'_2 <- `t'_2*`}))] +[visit_exp `%`_resulttype{`X*#3963`}(t'_2*{t'_2 <- `t'_2*`})] +[visit_exp `X*#3963`] +[visit_id X*#3963] +[visit_exp (t'_2*{t'_2 <- `t'_2*`})] +[visit_exp t'_2*{t'_2 <- `t'_2*`}] +[scope_enter t'_2] +[visit_exp t'_2] +[visit_id t'_2] not free +[visit_id t'_2] not free +[scope_exit t'_2] +[visit_exp `t'_2*`] +[visit_id t'_2*] no dims +[visit_id t'_2*] +[visit_exp (C, `%`_resulttype{`X*#3976`}(t_2*{t_2 <- `t_2*`}), `%`_resulttype{`X*#3989`}(t'_2*{t'_2 <- `t'_2*`}))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#3976`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#3976`] +[visit_id X*#3976] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp `%`_resulttype{`X*#3989`}(t'_2*{t'_2 <- `t'_2*`})] +[visit_exp `X*#3989`] +[visit_id X*#3989] +[visit_exp (t'_2*{t'_2 <- `t'_2*`})] +[visit_exp t'_2*{t'_2 <- `t'_2*`}] +[scope_enter t'_2] +[visit_exp t'_2] +[visit_id t'_2] not free +[visit_id t'_2] not free +[scope_exit t'_2] +[visit_exp `t'_2*`] +[visit_id t'_2*] not free +[visit_id t'_2*] no dims +[visit_exp (C, `%->_%%`_instrtype{resulttype#780, `localidx*#479`}(`%`_resulttype{`X*#4002`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4053`}(t_4*{t_4 <- `t_4*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%->_%%`_instrtype{resulttype#780, `localidx*#479`}(`%`_resulttype{`X*#4002`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4053`}(t_4*{t_4 <- `t_4*`}))] +[visit_exp resulttype#780] +[visit_id resulttype#780] +[visit_exp `localidx*#479`] +[visit_id localidx*#479] +[visit_exp (`%`_resulttype{`X*#4002`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4053`}(t_4*{t_4 <- `t_4*`}))] +[visit_exp `%`_resulttype{`X*#4002`}(t_3*{t_3 <- `t_3*`})] +[visit_exp `X*#4002`] +[visit_id X*#4002] +[visit_exp (t_3*{t_3 <- `t_3*`})] +[visit_exp t_3*{t_3 <- `t_3*`}] +[scope_enter t_3] +[visit_exp t_3] +[visit_id t_3] not free +[visit_id t_3] not free +[scope_exit t_3] +[visit_exp `t_3*`] +[visit_id t_3*] not free +[visit_id t_3*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#4053`}(t_4*{t_4 <- `t_4*`})] +[visit_exp `X*#4053`] +[visit_id X*#4053] +[visit_exp (t_4*{t_4 <- `t_4*`})] +[visit_exp t_4*{t_4 <- `t_4*`}] +[scope_enter t_4] +[visit_exp t_4] +[visit_id t_4] not free +[visit_id t_4] not free +[scope_exit t_4] +[visit_exp `t_4*`] +[visit_id t_4*] not free +[visit_id t_4*] no dims +[check_dims] C X*#4074 X*#4123 X*#4136 X*#4149 X*#4186 X*#4199 X*#4212 X*#4225 X*#4276 deftype*#32 heaptype#691 i#5762 localidx*#491 localidx*#503 null?#689 resulttype#800 resulttype#803 resulttype#823 resulttype?#14 t'_2 t_1 t_2 t_3 t_4 typeidx#400 typeidx#402 typeuse#27 x +[visit_exp C] +[visit_id C] +[visit_exp `RETURN_CALL_REF`_instr{typeuse#27}(`_IDX`_typeuse{typeidx#400}(x))] +[visit_exp typeuse#27] +[visit_id typeuse#27] +[visit_exp (`_IDX`_typeuse{typeidx#400}(x))] +[visit_exp `_IDX`_typeuse{typeidx#400}(x)] +[visit_exp typeidx#400] +[visit_id typeidx#400] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#800, `localidx*#491`}(`%`_resulttype{`X*#4074`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))]), [], `%`_resulttype{`X*#4123`}(t_4*{t_4 <- `t_4*`}))] +[visit_exp resulttype#800] +[visit_id resulttype#800] +[visit_exp `localidx*#491`] +[visit_id localidx*#491] +[visit_exp (`%`_resulttype{`X*#4074`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))]), [], `%`_resulttype{`X*#4123`}(t_4*{t_4 <- `t_4*`}))] +[visit_exp `%`_resulttype{`X*#4074`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))])] +[visit_exp `X*#4074`] +[visit_id X*#4074] +[visit_exp (t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))])] +[visit_exp t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))]] +[visit_exp t_3*{t_3 <- `t_3*`}] +[scope_enter t_3] +[visit_exp t_3] +[visit_id t_3] not free +[visit_id t_3] not free +[scope_exit t_3] +[visit_exp `t_3*`] +[visit_id t_3*] no dims +[visit_id t_3*] +[visit_exp t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))]] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))]] +[visit_exp `REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))] +[visit_exp `null?#689`] +[visit_id null?#689] +[visit_exp heaptype#691] +[visit_id heaptype#691] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `_IDX`_heaptype{typeidx#402}(x)] +[visit_exp typeidx#402] +[visit_id typeidx#402] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#4123`}(t_4*{t_4 <- `t_4*`})] +[visit_exp `X*#4123`] +[visit_id X*#4123] +[visit_exp (t_4*{t_4 <- `t_4*`})] +[visit_exp t_4*{t_4 <- `t_4*`}] +[scope_enter t_4] +[visit_exp t_4] +[visit_id t_4] not free +[visit_id t_4] not free +[scope_exit t_4] +[visit_exp `t_4*`] +[visit_id t_4*] no dims +[visit_id t_4*] +[visit_exp (C.`TYPES`_context{`deftype*#32`}[x!`%`_idx{i#5762}.0], `FUNC%->%`_comptype{resulttype#803}(`%`_resulttype{`X*#4136`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4149`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`TYPES`_context{`deftype*#32`}[x!`%`_idx{i#5762}.0]] +[visit_exp C.`TYPES`_context{`deftype*#32`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#32`] +[visit_id deftype*#32] +[visit_exp x!`%`_idx{i#5762}.0] +[visit_exp x!`%`_idx{i#5762}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#5762] +[visit_id i#5762] +[visit_exp `FUNC%->%`_comptype{resulttype#803}(`%`_resulttype{`X*#4136`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4149`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#803] +[visit_id resulttype#803] +[visit_exp (`%`_resulttype{`X*#4136`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4149`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#4136`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#4136`] +[visit_id X*#4136] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `%`_resulttype{`X*#4149`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#4149`] +[visit_id X*#4149] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C.`RETURN`_context{`resulttype?#14`} = ?(`%`_resulttype{`X*#4186`}(t'_2*{t'_2 <- `t'_2*`})))] +[visit_exp C.`RETURN`_context{`resulttype?#14`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype?#14`] +[visit_id resulttype?#14] +[visit_exp ?(`%`_resulttype{`X*#4186`}(t'_2*{t'_2 <- `t'_2*`}))] +[visit_exp `%`_resulttype{`X*#4186`}(t'_2*{t'_2 <- `t'_2*`})] +[visit_exp `X*#4186`] +[visit_id X*#4186] +[visit_exp (t'_2*{t'_2 <- `t'_2*`})] +[visit_exp t'_2*{t'_2 <- `t'_2*`}] +[scope_enter t'_2] +[visit_exp t'_2] +[visit_id t'_2] not free +[visit_id t'_2] not free +[scope_exit t'_2] +[visit_exp `t'_2*`] +[visit_id t'_2*] no dims +[visit_id t'_2*] +[visit_exp (C, `%`_resulttype{`X*#4199`}(t_2*{t_2 <- `t_2*`}), `%`_resulttype{`X*#4212`}(t'_2*{t'_2 <- `t'_2*`}))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#4199`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#4199`] +[visit_id X*#4199] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp `%`_resulttype{`X*#4212`}(t'_2*{t'_2 <- `t'_2*`})] +[visit_exp `X*#4212`] +[visit_id X*#4212] +[visit_exp (t'_2*{t'_2 <- `t'_2*`})] +[visit_exp t'_2*{t'_2 <- `t'_2*`}] +[scope_enter t'_2] +[visit_exp t'_2] +[visit_id t'_2] not free +[visit_id t'_2] not free +[scope_exit t'_2] +[visit_exp `t'_2*`] +[visit_id t'_2*] not free +[visit_id t'_2*] no dims +[visit_exp (C, `%->_%%`_instrtype{resulttype#823, `localidx*#503`}(`%`_resulttype{`X*#4225`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4276`}(t_4*{t_4 <- `t_4*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%->_%%`_instrtype{resulttype#823, `localidx*#503`}(`%`_resulttype{`X*#4225`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4276`}(t_4*{t_4 <- `t_4*`}))] +[visit_exp resulttype#823] +[visit_id resulttype#823] +[visit_exp `localidx*#503`] +[visit_id localidx*#503] +[visit_exp (`%`_resulttype{`X*#4225`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4276`}(t_4*{t_4 <- `t_4*`}))] +[visit_exp `%`_resulttype{`X*#4225`}(t_3*{t_3 <- `t_3*`})] +[visit_exp `X*#4225`] +[visit_id X*#4225] +[visit_exp (t_3*{t_3 <- `t_3*`})] +[visit_exp t_3*{t_3 <- `t_3*`}] +[scope_enter t_3] +[visit_exp t_3] +[visit_id t_3] not free +[visit_id t_3] not free +[scope_exit t_3] +[visit_exp `t_3*`] +[visit_id t_3*] not free +[visit_id t_3*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#4276`}(t_4*{t_4 <- `t_4*`})] +[visit_exp `X*#4276`] +[visit_id X*#4276] +[visit_exp (t_4*{t_4 <- `t_4*`})] +[visit_exp t_4*{t_4 <- `t_4*`}] +[scope_enter t_4] +[visit_exp t_4] +[visit_id t_4] not free +[visit_id t_4] not free +[scope_exit t_4] +[visit_exp `t_4*`] +[visit_id t_4*] not free +[visit_id t_4*] no dims +[check_dims] C X*#4297 X*#4346 X*#4359 X*#4372 X*#4409 X*#4422 X*#4435 X*#4448 X*#4499 addrtype#453 at deftype*#33 heaptype#715 i#5800 i#5810 lim limits#453 localidx*#515 localidx*#527 null?#713 reftype#401 resulttype#843 resulttype#846 resulttype#866 resulttype?#17 rt t'_2 t_1 t_2 t_3 t_4 tableidx#28 tabletype*#7 typeidx#404 typeuse#29 x y +[visit_exp C] +[visit_id C] +[visit_exp `RETURN_CALL_INDIRECT`_instr{tableidx#28, typeuse#29}(x, `_IDX`_typeuse{typeidx#404}(y))] +[visit_exp tableidx#28] +[visit_id tableidx#28] +[visit_exp typeuse#29] +[visit_id typeuse#29] +[visit_exp (x, `_IDX`_typeuse{typeidx#404}(y))] +[visit_exp x] +[visit_id x] +[visit_exp `_IDX`_typeuse{typeidx#404}(y)] +[visit_exp typeidx#404] +[visit_id typeidx#404] +[visit_exp (y)] +[visit_exp y] +[visit_id y] +[visit_exp `%->_%%`_instrtype{resulttype#843, `localidx*#515`}(`%`_resulttype{`X*#4297`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#4346`}(t_4*{t_4 <- `t_4*`}))] +[visit_exp resulttype#843] +[visit_id resulttype#843] +[visit_exp `localidx*#515`] +[visit_id localidx*#515] +[visit_exp (`%`_resulttype{`X*#4297`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#4346`}(t_4*{t_4 <- `t_4*`}))] +[visit_exp `%`_resulttype{`X*#4297`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] +[visit_exp `X*#4297`] +[visit_id X*#4297] +[visit_exp (t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] +[visit_exp t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]] +[visit_exp t_3*{t_3 <- `t_3*`}] +[scope_enter t_3] +[visit_exp t_3] +[visit_id t_3] not free +[visit_id t_3] not free +[scope_exit t_3] +[visit_exp `t_3*`] +[visit_id t_3*] no dims +[visit_id t_3*] +[visit_exp t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp [(at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#4346`}(t_4*{t_4 <- `t_4*`})] +[visit_exp `X*#4346`] +[visit_id X*#4346] +[visit_exp (t_4*{t_4 <- `t_4*`})] +[visit_exp t_4*{t_4 <- `t_4*`}] +[scope_enter t_4] +[visit_exp t_4] +[visit_id t_4] not free +[visit_id t_4] not free +[scope_exit t_4] +[visit_exp `t_4*`] +[visit_id t_4*] no dims +[visit_id t_4*] +[visit_exp (C.`TABLES`_context{`tabletype*#7`}[x!`%`_idx{i#5800}.0] = `%%%`_tabletype{addrtype#453, limits#453, reftype#401}(at, lim, rt))] +[visit_exp C.`TABLES`_context{`tabletype*#7`}[x!`%`_idx{i#5800}.0]] +[visit_exp C.`TABLES`_context{`tabletype*#7`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tabletype*#7`] +[visit_id tabletype*#7] +[visit_exp x!`%`_idx{i#5800}.0] +[visit_exp x!`%`_idx{i#5800}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#5800] +[visit_id i#5800] +[visit_exp `%%%`_tabletype{addrtype#453, limits#453, reftype#401}(at, lim, rt)] +[visit_exp addrtype#453] +[visit_id addrtype#453] +[visit_exp limits#453] +[visit_id limits#453] +[visit_exp reftype#401] +[visit_id reftype#401] +[visit_exp (at, lim, rt)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp rt] +[visit_id rt] +[visit_exp (C, rt, `REF`_reftype{`null?#713`, heaptype#715}(?(`NULL`_null), `FUNC`_heaptype))] +[visit_exp C] +[visit_id C] not free +[visit_exp rt] +[visit_id rt] not free +[visit_exp `REF`_reftype{`null?#713`, heaptype#715}(?(`NULL`_null), `FUNC`_heaptype)] +[visit_exp `null?#713`] +[visit_id null?#713] +[visit_exp heaptype#715] +[visit_id heaptype#715] +[visit_exp (?(`NULL`_null), `FUNC`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `FUNC`_heaptype] +[visit_exp ()] +[visit_exp (C.`TYPES`_context{`deftype*#33`}[y!`%`_idx{i#5810}.0], `FUNC%->%`_comptype{resulttype#846}(`%`_resulttype{`X*#4359`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4372`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`TYPES`_context{`deftype*#33`}[y!`%`_idx{i#5810}.0]] +[visit_exp C.`TYPES`_context{`deftype*#33`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#33`] +[visit_id deftype*#33] +[visit_exp y!`%`_idx{i#5810}.0] +[visit_exp y!`%`_idx{i#5810}] +[visit_exp y] +[visit_id y] not free +[visit_exp i#5810] +[visit_id i#5810] +[visit_exp `FUNC%->%`_comptype{resulttype#846}(`%`_resulttype{`X*#4359`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4372`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#846] +[visit_id resulttype#846] +[visit_exp (`%`_resulttype{`X*#4359`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4372`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#4359`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#4359`] +[visit_id X*#4359] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `%`_resulttype{`X*#4372`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#4372`] +[visit_id X*#4372] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C.`RETURN`_context{`resulttype?#17`} = ?(`%`_resulttype{`X*#4409`}(t'_2*{t'_2 <- `t'_2*`})))] +[visit_exp C.`RETURN`_context{`resulttype?#17`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype?#17`] +[visit_id resulttype?#17] +[visit_exp ?(`%`_resulttype{`X*#4409`}(t'_2*{t'_2 <- `t'_2*`}))] +[visit_exp `%`_resulttype{`X*#4409`}(t'_2*{t'_2 <- `t'_2*`})] +[visit_exp `X*#4409`] +[visit_id X*#4409] +[visit_exp (t'_2*{t'_2 <- `t'_2*`})] +[visit_exp t'_2*{t'_2 <- `t'_2*`}] +[scope_enter t'_2] +[visit_exp t'_2] +[visit_id t'_2] not free +[visit_id t'_2] not free +[scope_exit t'_2] +[visit_exp `t'_2*`] +[visit_id t'_2*] no dims +[visit_id t'_2*] +[visit_exp (C, `%`_resulttype{`X*#4422`}(t_2*{t_2 <- `t_2*`}), `%`_resulttype{`X*#4435`}(t'_2*{t'_2 <- `t'_2*`}))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#4422`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#4422`] +[visit_id X*#4422] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp `%`_resulttype{`X*#4435`}(t'_2*{t'_2 <- `t'_2*`})] +[visit_exp `X*#4435`] +[visit_id X*#4435] +[visit_exp (t'_2*{t'_2 <- `t'_2*`})] +[visit_exp t'_2*{t'_2 <- `t'_2*`}] +[scope_enter t'_2] +[visit_exp t'_2] +[visit_id t'_2] not free +[visit_id t'_2] not free +[scope_exit t'_2] +[visit_exp `t'_2*`] +[visit_id t'_2*] not free +[visit_id t'_2*] no dims +[visit_exp (C, `%->_%%`_instrtype{resulttype#866, `localidx*#527`}(`%`_resulttype{`X*#4448`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4499`}(t_4*{t_4 <- `t_4*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%->_%%`_instrtype{resulttype#866, `localidx*#527`}(`%`_resulttype{`X*#4448`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4499`}(t_4*{t_4 <- `t_4*`}))] +[visit_exp resulttype#866] +[visit_id resulttype#866] +[visit_exp `localidx*#527`] +[visit_id localidx*#527] +[visit_exp (`%`_resulttype{`X*#4448`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4499`}(t_4*{t_4 <- `t_4*`}))] +[visit_exp `%`_resulttype{`X*#4448`}(t_3*{t_3 <- `t_3*`})] +[visit_exp `X*#4448`] +[visit_id X*#4448] +[visit_exp (t_3*{t_3 <- `t_3*`})] +[visit_exp t_3*{t_3 <- `t_3*`}] +[scope_enter t_3] +[visit_exp t_3] +[visit_id t_3] not free +[visit_id t_3] not free +[scope_exit t_3] +[visit_exp `t_3*`] +[visit_id t_3*] not free +[visit_id t_3*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#4499`}(t_4*{t_4 <- `t_4*`})] +[visit_exp `X*#4499`] +[visit_id X*#4499] +[visit_exp (t_4*{t_4 <- `t_4*`})] +[visit_exp t_4*{t_4 <- `t_4*`}] +[scope_enter t_4] +[visit_exp t_4] +[visit_id t_4] not free +[visit_id t_4] not free +[scope_exit t_4] +[visit_exp `t_4*`] +[visit_id t_4*] not free +[visit_id t_4*] no dims +[check_dims] +[check_dims] C X*#4520 X*#4569 X*#4582 X*#4605 X*#4616 X*#4667 i#5834 localidx*#539 localidx*#551 resulttype#886 resulttype#889 resulttype#909 t t_1 t_2 tagidx#3 tagtype*#6 x +[visit_exp C] +[visit_id C] +[visit_exp `THROW`_instr{tagidx#3}(x)] +[visit_exp tagidx#3] +[visit_id tagidx#3] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#886, `localidx*#539`}(`%`_resulttype{`X*#4520`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#4569`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#886] +[visit_id resulttype#886] +[visit_exp `localidx*#539`] +[visit_id localidx*#539] +[visit_exp (`%`_resulttype{`X*#4520`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#4569`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#4520`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] +[visit_exp `X*#4520`] +[visit_id X*#4520] +[visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] +[visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#4569`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#4569`] +[visit_id X*#4569] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp ($as_deftype(C.`TAGS`_context{`tagtype*#6`}[x!`%`_idx{i#5834}.0]), `FUNC%->%`_comptype{resulttype#889}(`%`_resulttype{`X*#4582`}(t*{t <- `t*`}), `%`_resulttype{`X*#4605`}([])))] +[visit_exp $as_deftype(C.`TAGS`_context{`tagtype*#6`}[x!`%`_idx{i#5834}.0])] +[visit_exp C.`TAGS`_context{`tagtype*#6`}[x!`%`_idx{i#5834}.0]] +[visit_exp C.`TAGS`_context{`tagtype*#6`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tagtype*#6`] +[visit_id tagtype*#6] +[visit_exp x!`%`_idx{i#5834}.0] +[visit_exp x!`%`_idx{i#5834}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#5834] +[visit_id i#5834] +[visit_exp `FUNC%->%`_comptype{resulttype#889}(`%`_resulttype{`X*#4582`}(t*{t <- `t*`}), `%`_resulttype{`X*#4605`}([]))] +[visit_exp resulttype#889] +[visit_id resulttype#889] +[visit_exp (`%`_resulttype{`X*#4582`}(t*{t <- `t*`}), `%`_resulttype{`X*#4605`}([]))] +[visit_exp `%`_resulttype{`X*#4582`}(t*{t <- `t*`})] +[visit_exp `X*#4582`] +[visit_id X*#4582] +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp `%`_resulttype{`X*#4605`}([])] +[visit_exp `X*#4605`] +[visit_id X*#4605] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C, `%->_%%`_instrtype{resulttype#909, `localidx*#551`}(`%`_resulttype{`X*#4616`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4667`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%->_%%`_instrtype{resulttype#909, `localidx*#551`}(`%`_resulttype{`X*#4616`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4667`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#909] +[visit_id resulttype#909] +[visit_exp `localidx*#551`] +[visit_id localidx*#551] +[visit_exp (`%`_resulttype{`X*#4616`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4667`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#4616`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#4616`] +[visit_id X*#4616] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#4667`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#4667`] +[visit_id X*#4667] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#4688 X*#4737 X*#4748 X*#4799 heaptype#717 localidx*#563 localidx*#575 null?#715 resulttype#929 resulttype#949 t_1 t_2 +[visit_exp C] +[visit_id C] +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_exp `%->_%%`_instrtype{resulttype#929, `localidx*#563`}(`%`_resulttype{`X*#4688`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)]), [], `%`_resulttype{`X*#4737`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#929] +[visit_id resulttype#929] +[visit_exp `localidx*#563`] +[visit_id localidx*#563] +[visit_exp (`%`_resulttype{`X*#4688`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)]), [], `%`_resulttype{`X*#4737`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#4688`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)])] +[visit_exp `X*#4688`] +[visit_id X*#4688] +[visit_exp (t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)])] +[visit_exp t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)]] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)]] +[visit_exp `REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)] +[visit_exp `null?#715`] +[visit_id null?#715] +[visit_exp heaptype#717] +[visit_id heaptype#717] +[visit_exp (?(`NULL`_null), `EXN`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `EXN`_heaptype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#4737`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#4737`] +[visit_id X*#4737] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C, `%->_%%`_instrtype{resulttype#949, `localidx*#575`}(`%`_resulttype{`X*#4748`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4799`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%->_%%`_instrtype{resulttype#949, `localidx*#575`}(`%`_resulttype{`X*#4748`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4799`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#949] +[visit_id resulttype#949] +[visit_exp `localidx*#575`] +[visit_id localidx*#575] +[visit_exp (`%`_resulttype{`X*#4748`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4799`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#4748`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#4748`] +[visit_id X*#4748] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#4799`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#4799`] +[visit_id X*#4799] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C X*#4812 X*#4825 X*#4876 X*#4887 X*#4938 X*#4949 X*#4962 X*#5014 blocktype#13 bt catch datatype*#6 deftype*#34 deftype*#35 elemtype*#6 funcidx*#44 globaltype*#6 instr instr*#15 localidx*#587 localidx*#599 localidx*#611 localtype*#9 memtype*#6 resulttype#1009 resulttype#969 resulttype#989 resulttype*#17 resulttype?#18 subtype*#9 t_1 t_2 tabletype*#8 tagtype*#7 x +[visit_exp C] +[visit_id C] +[visit_exp `TRY_TABLE`_instr{blocktype#13, `instr*#15`}(bt, `%`_list{`X*#4812`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] +[visit_exp blocktype#13] +[visit_id blocktype#13] +[visit_exp `instr*#15`] +[visit_id instr*#15] +[visit_exp (bt, `%`_list{`X*#4812`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp `%`_list{`X*#4812`}(catch*{catch <- `catch*`})] +[visit_exp `X*#4812`] +[visit_id X*#4812] +[visit_exp (catch*{catch <- `catch*`})] +[visit_exp catch*{catch <- `catch*`}] +[scope_enter catch] +[visit_exp catch] +[visit_id catch] not free +[visit_id catch] not free +[scope_exit catch] +[visit_exp `catch*`] +[visit_id catch*] no dims +[visit_id catch*] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp `%->_%%`_instrtype{resulttype#969, `localidx*#587`}(`%`_resulttype{`X*#4825`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4876`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#969] +[visit_id resulttype#969] +[visit_exp `localidx*#587`] +[visit_id localidx*#587] +[visit_exp (`%`_resulttype{`X*#4825`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4876`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#4825`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#4825`] +[visit_id X*#4825] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#4876`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#4876`] +[visit_id X*#4876] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C, bt, `%->_%%`_instrtype{resulttype#989, `localidx*#599`}(`%`_resulttype{`X*#4887`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4938`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp bt] +[visit_id bt] not free +[visit_exp `%->_%%`_instrtype{resulttype#989, `localidx*#599`}(`%`_resulttype{`X*#4887`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4938`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#989] +[visit_id resulttype#989] +[visit_exp `localidx*#599`] +[visit_id localidx*#599] +[visit_exp (`%`_resulttype{`X*#4887`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4938`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#4887`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#4887`] +[visit_id X*#4887] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#4938`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#4938`] +[visit_id X*#4938] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp ({`TYPES`{`deftype*#34`} [], `RECS`{`subtype*#9`} [], `TAGS`{`tagtype*#7`} [], `GLOBALS`{`globaltype*#6`} [], `MEMS`{`memtype*#6`} [], `TABLES`{`tabletype*#8`} [], `FUNCS`{`deftype*#35`} [], `DATAS`{`datatype*#6`} [], `ELEMS`{`elemtype*#6`} [], `LOCALS`{`localtype*#9`} [], `LABELS`{`resulttype*#17`} [`%`_resulttype{`X*#4949`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#18`} ?(), `REFS`{`funcidx*#44`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#1009, `localidx*#611`}(`%`_resulttype{`X*#4962`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#5014`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp {`TYPES`{`deftype*#34`} [], `RECS`{`subtype*#9`} [], `TAGS`{`tagtype*#7`} [], `GLOBALS`{`globaltype*#6`} [], `MEMS`{`memtype*#6`} [], `TABLES`{`tabletype*#8`} [], `FUNCS`{`deftype*#35`} [], `DATAS`{`datatype*#6`} [], `ELEMS`{`elemtype*#6`} [], `LOCALS`{`localtype*#9`} [], `LABELS`{`resulttype*#17`} [`%`_resulttype{`X*#4949`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#18`} ?(), `REFS`{`funcidx*#44`} []} +++ C] +[visit_exp {`TYPES`{`deftype*#34`} [], `RECS`{`subtype*#9`} [], `TAGS`{`tagtype*#7`} [], `GLOBALS`{`globaltype*#6`} [], `MEMS`{`memtype*#6`} [], `TABLES`{`tabletype*#8`} [], `FUNCS`{`deftype*#35`} [], `DATAS`{`datatype*#6`} [], `ELEMS`{`elemtype*#6`} [], `LOCALS`{`localtype*#9`} [], `LABELS`{`resulttype*#17`} [`%`_resulttype{`X*#4949`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#18`} ?(), `REFS`{`funcidx*#44`} []}] +[visit_exp `deftype*#34`] +[visit_id deftype*#34] +[visit_exp []] +[visit_exp `subtype*#9`] +[visit_id subtype*#9] +[visit_exp []] +[visit_exp `tagtype*#7`] +[visit_id tagtype*#7] +[visit_exp []] +[visit_exp `globaltype*#6`] +[visit_id globaltype*#6] +[visit_exp []] +[visit_exp `memtype*#6`] +[visit_id memtype*#6] +[visit_exp []] +[visit_exp `tabletype*#8`] +[visit_id tabletype*#8] +[visit_exp []] +[visit_exp `deftype*#35`] +[visit_id deftype*#35] +[visit_exp []] +[visit_exp `datatype*#6`] +[visit_id datatype*#6] +[visit_exp []] +[visit_exp `elemtype*#6`] +[visit_id elemtype*#6] +[visit_exp []] +[visit_exp `localtype*#9`] +[visit_id localtype*#9] +[visit_exp []] +[visit_exp `resulttype*#17`] +[visit_id resulttype*#17] +[visit_exp [`%`_resulttype{`X*#4949`}(t_2*{t_2 <- `t_2*`})]] +[visit_exp `%`_resulttype{`X*#4949`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#4949`] +[visit_id X*#4949] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp `resulttype?#18`] +[visit_id resulttype?#18] +[visit_exp ?()] +[visit_exp `funcidx*#44`] +[visit_id funcidx*#44] +[visit_exp []] +[visit_exp C] +[visit_id C] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp `%->_%%`_instrtype{resulttype#1009, `localidx*#611`}(`%`_resulttype{`X*#4962`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#5014`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#1009] +[visit_id resulttype#1009] +[visit_exp `localidx*#611`] +[visit_id localidx*#611] +[visit_exp (`%`_resulttype{`X*#4962`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#5014`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#4962`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#4962`] +[visit_id X*#4962] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp `%`_resulttype{`X*#5014`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#5014`] +[visit_id X*#5014] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[scope_enter catch] +[visit_exp (C, catch)] +[visit_exp C] +[visit_id C] not free +[visit_exp catch] +[visit_id catch] not free +[visit_id catch] not free +[scope_exit catch] +[visit_exp `catch*`] +[visit_id catch*] not free +[visit_id catch*] no dims +[check_dims] C X*#5029 X*#5052 X*#5063 i#5946 i#5956 l labelidx#29 resulttype#1012 resulttype*#18 t tagidx#5 tagtype*#8 x +[visit_exp C] +[visit_id C] +[visit_exp `CATCH`_catch{tagidx#5, labelidx#29}(x, l)] +[visit_exp tagidx#5] +[visit_id tagidx#5] +[visit_exp labelidx#29] +[visit_id labelidx#29] +[visit_exp (x, l)] +[visit_exp x] +[visit_id x] +[visit_exp l] +[visit_id l] +[visit_exp ($as_deftype(C.`TAGS`_context{`tagtype*#8`}[x!`%`_idx{i#5946}.0]), `FUNC%->%`_comptype{resulttype#1012}(`%`_resulttype{`X*#5029`}(t*{t <- `t*`}), `%`_resulttype{`X*#5052`}([])))] +[visit_exp $as_deftype(C.`TAGS`_context{`tagtype*#8`}[x!`%`_idx{i#5946}.0])] +[visit_exp C.`TAGS`_context{`tagtype*#8`}[x!`%`_idx{i#5946}.0]] +[visit_exp C.`TAGS`_context{`tagtype*#8`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tagtype*#8`] +[visit_id tagtype*#8] +[visit_exp x!`%`_idx{i#5946}.0] +[visit_exp x!`%`_idx{i#5946}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#5946] +[visit_id i#5946] +[visit_exp `FUNC%->%`_comptype{resulttype#1012}(`%`_resulttype{`X*#5029`}(t*{t <- `t*`}), `%`_resulttype{`X*#5052`}([]))] +[visit_exp resulttype#1012] +[visit_id resulttype#1012] +[visit_exp (`%`_resulttype{`X*#5029`}(t*{t <- `t*`}), `%`_resulttype{`X*#5052`}([]))] +[visit_exp `%`_resulttype{`X*#5029`}(t*{t <- `t*`})] +[visit_exp `X*#5029`] +[visit_id X*#5029] +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp `%`_resulttype{`X*#5052`}([])] +[visit_exp `X*#5052`] +[visit_id X*#5052] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C, `%`_resulttype{`X*#5063`}(t*{t <- `t*`}), C.`LABELS`_context{`resulttype*#18`}[l!`%`_labelidx{i#5956}.0])] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#5063`}(t*{t <- `t*`})] +[visit_exp `X*#5063`] +[visit_id X*#5063] +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp C.`LABELS`_context{`resulttype*#18`}[l!`%`_labelidx{i#5956}.0]] +[visit_exp C.`LABELS`_context{`resulttype*#18`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype*#18`] +[visit_id resulttype*#18] +[visit_exp l!`%`_labelidx{i#5956}.0] +[visit_exp l!`%`_labelidx{i#5956}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#5956] +[visit_id i#5956] +[check_dims] C X*#5088 X*#5111 X*#5132 heaptype#719 i#5992 i#6002 l labelidx#31 null?#717 resulttype#1015 resulttype*#19 t tagidx#7 tagtype*#9 x +[visit_exp C] +[visit_id C] +[visit_exp `CATCH_REF`_catch{tagidx#7, labelidx#31}(x, l)] +[visit_exp tagidx#7] +[visit_id tagidx#7] +[visit_exp labelidx#31] +[visit_id labelidx#31] +[visit_exp (x, l)] +[visit_exp x] +[visit_id x] +[visit_exp l] +[visit_id l] +[visit_exp ($as_deftype(C.`TAGS`_context{`tagtype*#9`}[x!`%`_idx{i#5992}.0]), `FUNC%->%`_comptype{resulttype#1015}(`%`_resulttype{`X*#5088`}(t*{t <- `t*`}), `%`_resulttype{`X*#5111`}([])))] +[visit_exp $as_deftype(C.`TAGS`_context{`tagtype*#9`}[x!`%`_idx{i#5992}.0])] +[visit_exp C.`TAGS`_context{`tagtype*#9`}[x!`%`_idx{i#5992}.0]] +[visit_exp C.`TAGS`_context{`tagtype*#9`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tagtype*#9`] +[visit_id tagtype*#9] +[visit_exp x!`%`_idx{i#5992}.0] +[visit_exp x!`%`_idx{i#5992}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#5992] +[visit_id i#5992] +[visit_exp `FUNC%->%`_comptype{resulttype#1015}(`%`_resulttype{`X*#5088`}(t*{t <- `t*`}), `%`_resulttype{`X*#5111`}([]))] +[visit_exp resulttype#1015] +[visit_id resulttype#1015] +[visit_exp (`%`_resulttype{`X*#5088`}(t*{t <- `t*`}), `%`_resulttype{`X*#5111`}([]))] +[visit_exp `%`_resulttype{`X*#5088`}(t*{t <- `t*`})] +[visit_exp `X*#5088`] +[visit_id X*#5088] +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp `%`_resulttype{`X*#5111`}([])] +[visit_exp `X*#5111`] +[visit_id X*#5111] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C, `%`_resulttype{`X*#5132`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)]), C.`LABELS`_context{`resulttype*#19`}[l!`%`_labelidx{i#6002}.0])] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#5132`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)])] +[visit_exp `X*#5132`] +[visit_id X*#5132] +[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)])] +[visit_exp t*{t <- `t*`} ++ [`REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)]] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp [`REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)]] +[visit_exp `REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)] +[visit_exp `null?#717`] +[visit_id null?#717] +[visit_exp heaptype#719] +[visit_id heaptype#719] +[visit_exp (?(), `EXN`_heaptype)] +[visit_exp ?()] +[visit_exp `EXN`_heaptype] +[visit_exp ()] +[visit_exp C.`LABELS`_context{`resulttype*#19`}[l!`%`_labelidx{i#6002}.0]] +[visit_exp C.`LABELS`_context{`resulttype*#19`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype*#19`] +[visit_id resulttype*#19] +[visit_exp l!`%`_labelidx{i#6002}.0] +[visit_exp l!`%`_labelidx{i#6002}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#6002] +[visit_id i#6002] +[check_dims] C X*#5163 i#6024 l labelidx#33 resulttype*#20 +[visit_exp C] +[visit_id C] +[visit_exp `CATCH_ALL`_catch{labelidx#33}(l)] +[visit_exp labelidx#33] +[visit_id labelidx#33] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp (C, `%`_resulttype{`X*#5163`}([]), C.`LABELS`_context{`resulttype*#20`}[l!`%`_labelidx{i#6024}.0])] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#5163`}([])] +[visit_exp `X*#5163`] +[visit_id X*#5163] +[visit_exp ([])] +[visit_exp []] +[visit_exp C.`LABELS`_context{`resulttype*#20`}[l!`%`_labelidx{i#6024}.0]] +[visit_exp C.`LABELS`_context{`resulttype*#20`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype*#20`] +[visit_id resulttype*#20] +[visit_exp l!`%`_labelidx{i#6024}.0] +[visit_exp l!`%`_labelidx{i#6024}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#6024] +[visit_id i#6024] +[check_dims] C X*#5194 heaptype#721 i#6046 l labelidx#35 null?#719 resulttype*#21 +[visit_exp C] +[visit_id C] +[visit_exp `CATCH_ALL_REF`_catch{labelidx#35}(l)] +[visit_exp labelidx#35] +[visit_id labelidx#35] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp (C, `%`_resulttype{`X*#5194`}([`REF`_valtype{`null?#719`, heaptype#721}(?(), `EXN`_heaptype)]), C.`LABELS`_context{`resulttype*#21`}[l!`%`_labelidx{i#6046}.0])] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#5194`}([`REF`_valtype{`null?#719`, heaptype#721}(?(), `EXN`_heaptype)])] +[visit_exp `X*#5194`] +[visit_id X*#5194] +[visit_exp ([`REF`_valtype{`null?#719`, heaptype#721}(?(), `EXN`_heaptype)])] +[visit_exp [`REF`_valtype{`null?#719`, heaptype#721}(?(), `EXN`_heaptype)]] +[visit_exp `REF`_valtype{`null?#719`, heaptype#721}(?(), `EXN`_heaptype)] +[visit_exp `null?#719`] +[visit_id null?#719] +[visit_exp heaptype#721] +[visit_id heaptype#721] +[visit_exp (?(), `EXN`_heaptype)] +[visit_exp ?()] +[visit_exp `EXN`_heaptype] +[visit_exp ()] +[visit_exp C.`LABELS`_context{`resulttype*#21`}[l!`%`_labelidx{i#6046}.0]] +[visit_exp C.`LABELS`_context{`resulttype*#21`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `resulttype*#21`] +[visit_id resulttype*#21] +[visit_exp l!`%`_labelidx{i#6046}.0] +[visit_exp l!`%`_labelidx{i#6046}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#6046] +[visit_id i#6046] +[check_dims] C X*#5225 X*#5274 heaptype#723 heaptype#725 ht localidx*#623 null?#721 resulttype#1035 +[visit_exp C] +[visit_id C] +[visit_exp `REF.NULL`_instr{heaptype#723}(ht)] +[visit_exp heaptype#723] +[visit_id heaptype#723] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `%->_%%`_instrtype{resulttype#1035, `localidx*#623`}(`%`_resulttype{`X*#5225`}([]), [], `%`_resulttype{`X*#5274`}([`REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)]))] +[visit_exp resulttype#1035] +[visit_id resulttype#1035] +[visit_exp `localidx*#623`] +[visit_id localidx*#623] +[visit_exp (`%`_resulttype{`X*#5225`}([]), [], `%`_resulttype{`X*#5274`}([`REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)]))] +[visit_exp `%`_resulttype{`X*#5225`}([])] +[visit_exp `X*#5225`] +[visit_id X*#5225] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#5274`}([`REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)])] +[visit_exp `X*#5274`] +[visit_id X*#5274] +[visit_exp ([`REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)])] +[visit_exp [`REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)]] +[visit_exp `REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)] +[visit_exp `null?#721`] +[visit_id null?#721] +[visit_exp heaptype#725] +[visit_id heaptype#725] +[visit_exp (?(`NULL`_null), ht)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht] +[visit_id ht] not free +[visit_exp (C, ht)] +[visit_exp C] +[visit_id C] not free +[visit_exp ht] +[visit_id ht] not free +[check_dims] C X*#5295 X*#5344 deftype*#36 dt funcidx#181 funcidx*#47 heaptype#727 i#6070 localidx*#635 null?#723 resulttype#1055 x +[visit_exp C] +[visit_id C] +[visit_exp `REF.FUNC`_instr{funcidx#181}(x)] +[visit_exp funcidx#181] +[visit_id funcidx#181] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1055, `localidx*#635`}(`%`_resulttype{`X*#5295`}([]), [], `%`_resulttype{`X*#5344`}([`REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))]))] +[visit_exp resulttype#1055] +[visit_id resulttype#1055] +[visit_exp `localidx*#635`] +[visit_id localidx*#635] +[visit_exp (`%`_resulttype{`X*#5295`}([]), [], `%`_resulttype{`X*#5344`}([`REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))]))] +[visit_exp `%`_resulttype{`X*#5295`}([])] +[visit_exp `X*#5295`] +[visit_id X*#5295] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#5344`}([`REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))])] +[visit_exp `X*#5344`] +[visit_id X*#5344] +[visit_exp ([`REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))])] +[visit_exp [`REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))]] +[visit_exp `REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))] +[visit_exp `null?#723`] +[visit_id null?#723] +[visit_exp heaptype#727] +[visit_id heaptype#727] +[visit_exp (?(), (dt : deftype <: heaptype))] +[visit_exp ?()] +[visit_exp (dt : deftype <: heaptype)] +[visit_exp dt] +[visit_id dt] +[visit_exp (C.`FUNCS`_context{`deftype*#36`}[x!`%`_idx{i#6070}.0] = dt)] +[visit_exp C.`FUNCS`_context{`deftype*#36`}[x!`%`_idx{i#6070}.0]] +[visit_exp C.`FUNCS`_context{`deftype*#36`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#36`] +[visit_id deftype*#36] +[visit_exp x!`%`_idx{i#6070}.0] +[visit_exp x!`%`_idx{i#6070}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6070] +[visit_id i#6070] +[visit_exp dt] +[visit_id dt] not free +[visit_exp (x <- C.`REFS`_context{`funcidx*#47`})] +[visit_exp x] +[visit_id x] not free +[visit_exp C.`REFS`_context{`funcidx*#47`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `funcidx*#47`] +[visit_id funcidx*#47] +[check_dims] C X*#5363 X*#5412 heaptype#729 localidx*#647 null?#725 resulttype#1075 +[visit_exp C] +[visit_id C] +[visit_exp `REF.I31`_instr] +[visit_exp ()] +[visit_exp `%->_%%`_instrtype{resulttype#1075, `localidx*#647`}(`%`_resulttype{`X*#5363`}([`I32`_valtype]), [], `%`_resulttype{`X*#5412`}([`REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)]))] +[visit_exp resulttype#1075] +[visit_id resulttype#1075] +[visit_exp `localidx*#647`] +[visit_id localidx*#647] +[visit_exp (`%`_resulttype{`X*#5363`}([`I32`_valtype]), [], `%`_resulttype{`X*#5412`}([`REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)]))] +[visit_exp `%`_resulttype{`X*#5363`}([`I32`_valtype])] +[visit_exp `X*#5363`] +[visit_id X*#5363] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#5412`}([`REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)])] +[visit_exp `X*#5412`] +[visit_id X*#5412] +[visit_exp ([`REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)])] +[visit_exp [`REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)]] +[visit_exp `REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)] +[visit_exp `null?#725`] +[visit_id null?#725] +[visit_exp heaptype#729] +[visit_id heaptype#729] +[visit_exp (?(), `I31`_heaptype)] +[visit_exp ?()] +[visit_exp `I31`_heaptype] +[visit_exp ()] +[check_dims] C X*#5433 X*#5482 heaptype#731 ht localidx*#659 null?#727 resulttype#1095 +[visit_exp C] +[visit_id C] +[visit_exp `REF.IS_NULL`_instr] +[visit_exp ()] +[visit_exp `%->_%%`_instrtype{resulttype#1095, `localidx*#659`}(`%`_resulttype{`X*#5433`}([`REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#5482`}([`I32`_valtype]))] +[visit_exp resulttype#1095] +[visit_id resulttype#1095] +[visit_exp `localidx*#659`] +[visit_id localidx*#659] +[visit_exp (`%`_resulttype{`X*#5433`}([`REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#5482`}([`I32`_valtype]))] +[visit_exp `%`_resulttype{`X*#5433`}([`REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)])] +[visit_exp `X*#5433`] +[visit_id X*#5433] +[visit_exp ([`REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)])] +[visit_exp [`REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)]] +[visit_exp `REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)] +[visit_exp `null?#727`] +[visit_id null?#727] +[visit_exp heaptype#731] +[visit_id heaptype#731] +[visit_exp (?(`NULL`_null), ht)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht] +[visit_id ht] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#5482`}([`I32`_valtype])] +[visit_exp `X*#5482`] +[visit_id X*#5482] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp (C, ht)] +[visit_exp C] +[visit_id C] not free +[visit_exp ht] +[visit_id ht] not free +[check_dims] C X*#5503 X*#5552 heaptype#733 heaptype#735 ht localidx*#671 null?#729 null?#731 resulttype#1115 +[visit_exp C] +[visit_id C] +[visit_exp `REF.AS_NON_NULL`_instr] +[visit_exp ()] +[visit_exp `%->_%%`_instrtype{resulttype#1115, `localidx*#671`}(`%`_resulttype{`X*#5503`}([`REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#5552`}([`REF`_valtype{`null?#731`, heaptype#735}(?(), ht)]))] +[visit_exp resulttype#1115] +[visit_id resulttype#1115] +[visit_exp `localidx*#671`] +[visit_id localidx*#671] +[visit_exp (`%`_resulttype{`X*#5503`}([`REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#5552`}([`REF`_valtype{`null?#731`, heaptype#735}(?(), ht)]))] +[visit_exp `%`_resulttype{`X*#5503`}([`REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)])] +[visit_exp `X*#5503`] +[visit_id X*#5503] +[visit_exp ([`REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)])] +[visit_exp [`REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)]] +[visit_exp `REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)] +[visit_exp `null?#729`] +[visit_id null?#729] +[visit_exp heaptype#733] +[visit_id heaptype#733] +[visit_exp (?(`NULL`_null), ht)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht] +[visit_id ht] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#5552`}([`REF`_valtype{`null?#731`, heaptype#735}(?(), ht)])] +[visit_exp `X*#5552`] +[visit_id X*#5552] +[visit_exp ([`REF`_valtype{`null?#731`, heaptype#735}(?(), ht)])] +[visit_exp [`REF`_valtype{`null?#731`, heaptype#735}(?(), ht)]] +[visit_exp `REF`_valtype{`null?#731`, heaptype#735}(?(), ht)] +[visit_exp `null?#731`] +[visit_id null?#731] +[visit_exp heaptype#735] +[visit_id heaptype#735] +[visit_exp (?(), ht)] +[visit_exp ?()] +[visit_exp ht] +[visit_id ht] not free +[visit_exp (C, ht)] +[visit_exp C] +[visit_id C] not free +[visit_exp ht] +[visit_id ht] not free +[check_dims] C X*#5573 X*#5622 heaptype#737 heaptype#739 localidx*#683 null?#733 null?#735 resulttype#1135 +[visit_exp C] +[visit_id C] +[visit_exp `REF.EQ`_instr] +[visit_exp ()] +[visit_exp `%->_%%`_instrtype{resulttype#1135, `localidx*#683`}(`%`_resulttype{`X*#5573`}([`REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)]), [], `%`_resulttype{`X*#5622`}([`I32`_valtype]))] +[visit_exp resulttype#1135] +[visit_id resulttype#1135] +[visit_exp `localidx*#683`] +[visit_id localidx*#683] +[visit_exp (`%`_resulttype{`X*#5573`}([`REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)]), [], `%`_resulttype{`X*#5622`}([`I32`_valtype]))] +[visit_exp `%`_resulttype{`X*#5573`}([`REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)])] +[visit_exp `X*#5573`] +[visit_id X*#5573] +[visit_exp ([`REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)])] +[visit_exp [`REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)]] +[visit_exp `REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype)] +[visit_exp `null?#733`] +[visit_id null?#733] +[visit_exp heaptype#737] +[visit_id heaptype#737] +[visit_exp (?(`NULL`_null), `EQ`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `EQ`_heaptype] +[visit_exp ()] +[visit_exp `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)] +[visit_exp `null?#735`] +[visit_id null?#735] +[visit_exp heaptype#739] +[visit_id heaptype#739] +[visit_exp (?(`NULL`_null), `EQ`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `EQ`_heaptype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#5622`}([`I32`_valtype])] +[visit_exp `X*#5622`] +[visit_id X*#5622] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[check_dims] C X*#5633 X*#5703 localidx*#695 reftype#403 resulttype#1155 rt rt' +[visit_exp C] +[visit_id C] +[visit_exp `REF.TEST`_instr{reftype#403}(rt)] +[visit_exp reftype#403] +[visit_id reftype#403] +[visit_exp (rt)] +[visit_exp rt] +[visit_id rt] +[visit_exp `%->_%%`_instrtype{resulttype#1155, `localidx*#695`}(`%`_resulttype{`X*#5633`}([(rt' : reftype <: valtype)]), [], `%`_resulttype{`X*#5703`}([`I32`_valtype]))] +[visit_exp resulttype#1155] +[visit_id resulttype#1155] +[visit_exp `localidx*#695`] +[visit_id localidx*#695] +[visit_exp (`%`_resulttype{`X*#5633`}([(rt' : reftype <: valtype)]), [], `%`_resulttype{`X*#5703`}([`I32`_valtype]))] +[visit_exp `%`_resulttype{`X*#5633`}([(rt' : reftype <: valtype)])] +[visit_exp `X*#5633`] +[visit_id X*#5633] +[visit_exp ([(rt' : reftype <: valtype)])] +[visit_exp [(rt' : reftype <: valtype)]] +[visit_exp (rt' : reftype <: valtype)] +[visit_exp rt'] +[visit_id rt'] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#5703`}([`I32`_valtype])] +[visit_exp `X*#5703`] +[visit_id X*#5703] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp (C, rt)] +[visit_exp C] +[visit_id C] not free +[visit_exp rt] +[visit_id rt] not free +[visit_exp (C, rt')] +[visit_exp C] +[visit_id C] not free +[visit_exp rt'] +[visit_id rt'] not free +[visit_exp (C, rt, rt')] +[visit_exp C] +[visit_id C] not free +[visit_exp rt] +[visit_id rt] not free +[visit_exp rt'] +[visit_id rt'] not free +[check_dims] C X*#5714 X*#5784 localidx*#707 reftype#405 resulttype#1175 rt rt' +[visit_exp C] +[visit_id C] +[visit_exp `REF.CAST`_instr{reftype#405}(rt)] +[visit_exp reftype#405] +[visit_id reftype#405] +[visit_exp (rt)] +[visit_exp rt] +[visit_id rt] +[visit_exp `%->_%%`_instrtype{resulttype#1175, `localidx*#707`}(`%`_resulttype{`X*#5714`}([(rt' : reftype <: valtype)]), [], `%`_resulttype{`X*#5784`}([(rt : reftype <: valtype)]))] +[visit_exp resulttype#1175] +[visit_id resulttype#1175] +[visit_exp `localidx*#707`] +[visit_id localidx*#707] +[visit_exp (`%`_resulttype{`X*#5714`}([(rt' : reftype <: valtype)]), [], `%`_resulttype{`X*#5784`}([(rt : reftype <: valtype)]))] +[visit_exp `%`_resulttype{`X*#5714`}([(rt' : reftype <: valtype)])] +[visit_exp `X*#5714`] +[visit_id X*#5714] +[visit_exp ([(rt' : reftype <: valtype)])] +[visit_exp [(rt' : reftype <: valtype)]] +[visit_exp (rt' : reftype <: valtype)] +[visit_exp rt'] +[visit_id rt'] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#5784`}([(rt : reftype <: valtype)])] +[visit_exp `X*#5784`] +[visit_id X*#5784] +[visit_exp ([(rt : reftype <: valtype)])] +[visit_exp [(rt : reftype <: valtype)]] +[visit_exp (rt : reftype <: valtype)] +[visit_exp rt] +[visit_id rt] not free +[visit_exp (C, rt)] +[visit_exp C] +[visit_id C] not free +[visit_exp rt] +[visit_id rt] not free +[visit_exp (C, rt')] +[visit_exp C] +[visit_id C] not free +[visit_exp rt'] +[visit_id rt'] not free +[visit_exp (C, rt, rt')] +[visit_exp C] +[visit_id C] not free +[visit_exp rt] +[visit_id rt] not free +[visit_exp rt'] +[visit_id rt'] not free +[check_dims] C X*#5805 X*#5854 heaptype#805 localidx*#719 null?#801 resulttype#1195 sx sx#5 +[visit_exp C] +[visit_id C] +[visit_exp `I31.GET`_instr{sx#5}(sx)] +[visit_exp sx#5] +[visit_id sx#5] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp `%->_%%`_instrtype{resulttype#1195, `localidx*#719`}(`%`_resulttype{`X*#5805`}([`REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)]), [], `%`_resulttype{`X*#5854`}([`I32`_valtype]))] +[visit_exp resulttype#1195] +[visit_id resulttype#1195] +[visit_exp `localidx*#719`] +[visit_id localidx*#719] +[visit_exp (`%`_resulttype{`X*#5805`}([`REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)]), [], `%`_resulttype{`X*#5854`}([`I32`_valtype]))] +[visit_exp `%`_resulttype{`X*#5805`}([`REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)])] +[visit_exp `X*#5805`] +[visit_id X*#5805] +[visit_exp ([`REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)])] +[visit_exp [`REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)]] +[visit_exp `REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)] +[visit_exp `null?#801`] +[visit_id null?#801] +[visit_exp heaptype#805] +[visit_id heaptype#805] +[visit_exp (?(`NULL`_null), `I31`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `I31`_heaptype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#5854`}([`I32`_valtype])] +[visit_exp `X*#5854`] +[visit_id X*#5854] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[check_dims] C X*#5865 X*#5916 X*#5929 deftype*#37 heaptype#807 i#6131 localidx*#731 mut mut?#573 null?#803 resulttype#1215 storagetype#337 typeidx#406 typeidx#408 x zt +[visit_exp C] +[visit_id C] +[visit_exp `STRUCT.NEW`_instr{typeidx#406}(x)] +[visit_exp typeidx#406] +[visit_id typeidx#406] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1215, `localidx*#731`}(`%`_resulttype{`X*#5865`}($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype{`X*#5916`}([`REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))]))] +[visit_exp resulttype#1215] +[visit_id resulttype#1215] +[visit_exp `localidx*#731`] +[visit_id localidx*#731] +[visit_exp (`%`_resulttype{`X*#5865`}($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype{`X*#5916`}([`REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))]))] +[visit_exp `%`_resulttype{`X*#5865`}($unpack(zt)*{zt <- `zt*`})] +[visit_exp `X*#5865`] +[visit_id X*#5865] +[visit_exp ($unpack(zt)*{zt <- `zt*`})] +[visit_exp $unpack(zt)*{zt <- `zt*`}] +[scope_enter zt] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_id zt] not free +[scope_exit zt] +[visit_exp `zt*`] +[visit_id zt*] no dims +[visit_id zt*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#5916`}([`REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))])] +[visit_exp `X*#5916`] +[visit_id X*#5916] +[visit_exp ([`REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))])] +[visit_exp [`REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))]] +[visit_exp `REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))] +[visit_exp `null?#803`] +[visit_id null?#803] +[visit_exp heaptype#807] +[visit_id heaptype#807] +[visit_exp (?(), `_IDX`_heaptype{typeidx#408}(x))] +[visit_exp ?()] +[visit_exp `_IDX`_heaptype{typeidx#408}(x)] +[visit_exp typeidx#408] +[visit_id typeidx#408] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp (C.`TYPES`_context{`deftype*#37`}[x!`%`_idx{i#6131}.0], `STRUCT`_comptype(`%`_list{`X*#5929`}(`%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`})))] +[visit_exp C.`TYPES`_context{`deftype*#37`}[x!`%`_idx{i#6131}.0]] +[visit_exp C.`TYPES`_context{`deftype*#37`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#37`] +[visit_id deftype*#37] +[visit_exp x!`%`_idx{i#6131}.0] +[visit_exp x!`%`_idx{i#6131}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6131] +[visit_id i#6131] +[visit_exp `STRUCT`_comptype(`%`_list{`X*#5929`}(`%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`}))] +[visit_exp (`%`_list{`X*#5929`}(`%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`}))] +[visit_exp `%`_list{`X*#5929`}(`%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`})] +[visit_exp `X*#5929`] +[visit_id X*#5929] +[visit_exp (`%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`})] +[visit_exp `%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`}] +[scope_enter mut?] +[scope_enter mut?#573] +[scope_enter storagetype#337] +[scope_enter zt] +[visit_exp `%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#573`] +[visit_id mut?#573] not free +[visit_exp storagetype#337] +[visit_id storagetype#337] not free +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_exp zt] +[visit_id zt] not free +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_id mut?#573] not free +[visit_id storagetype#337] not free +[visit_id zt] not free +[scope_exit zt] +[scope_exit storagetype#337] +[scope_exit mut?#573] +[scope_exit mut?] +[visit_exp `mut?*`] +[visit_id mut?*] no dims +[visit_id mut?*] +[visit_exp `mut?#573*`] +[visit_id mut?#573*] no dims +[visit_id mut?#573*] +[visit_exp `storagetype#337*`] +[visit_id storagetype#337*] no dims +[visit_id storagetype#337*] +[visit_exp `zt*`] +[visit_id zt*] not free +[visit_id zt*] no dims +[check_dims] C X*#5952 X*#6001 X*#6014 deftype*#38 heaptype#809 i#6169 localidx*#743 mut mut?#591 null?#805 resulttype#1235 storagetype#355 typeidx#410 typeidx#412 x zt +[visit_exp C] +[visit_id C] +[visit_exp `STRUCT.NEW_DEFAULT`_instr{typeidx#410}(x)] +[visit_exp typeidx#410] +[visit_id typeidx#410] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1235, `localidx*#743`}(`%`_resulttype{`X*#5952`}([]), [], `%`_resulttype{`X*#6001`}([`REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))]))] +[visit_exp resulttype#1235] +[visit_id resulttype#1235] +[visit_exp `localidx*#743`] +[visit_id localidx*#743] +[visit_exp (`%`_resulttype{`X*#5952`}([]), [], `%`_resulttype{`X*#6001`}([`REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))]))] +[visit_exp `%`_resulttype{`X*#5952`}([])] +[visit_exp `X*#5952`] +[visit_id X*#5952] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6001`}([`REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))])] +[visit_exp `X*#6001`] +[visit_id X*#6001] +[visit_exp ([`REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))])] +[visit_exp [`REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))]] +[visit_exp `REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))] +[visit_exp `null?#805`] +[visit_id null?#805] +[visit_exp heaptype#809] +[visit_id heaptype#809] +[visit_exp (?(), `_IDX`_heaptype{typeidx#412}(x))] +[visit_exp ?()] +[visit_exp `_IDX`_heaptype{typeidx#412}(x)] +[visit_exp typeidx#412] +[visit_id typeidx#412] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp (C.`TYPES`_context{`deftype*#38`}[x!`%`_idx{i#6169}.0], `STRUCT`_comptype(`%`_list{`X*#6014`}(`%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`})))] +[visit_exp C.`TYPES`_context{`deftype*#38`}[x!`%`_idx{i#6169}.0]] +[visit_exp C.`TYPES`_context{`deftype*#38`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#38`] +[visit_id deftype*#38] +[visit_exp x!`%`_idx{i#6169}.0] +[visit_exp x!`%`_idx{i#6169}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6169] +[visit_id i#6169] +[visit_exp `STRUCT`_comptype(`%`_list{`X*#6014`}(`%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`}))] +[visit_exp (`%`_list{`X*#6014`}(`%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`}))] +[visit_exp `%`_list{`X*#6014`}(`%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`})] +[visit_exp `X*#6014`] +[visit_id X*#6014] +[visit_exp (`%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`})] +[visit_exp `%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`}] +[scope_enter mut?] +[scope_enter mut?#591] +[scope_enter storagetype#355] +[scope_enter zt] +[visit_exp `%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#591`] +[visit_id mut?#591] not free +[visit_exp storagetype#355] +[visit_id storagetype#355] not free +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_exp zt] +[visit_id zt] not free +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_id mut?#591] not free +[visit_id storagetype#355] not free +[visit_id zt] not free +[scope_exit zt] +[scope_exit storagetype#355] +[scope_exit mut?#591] +[scope_exit mut?] +[visit_exp `mut?*`] +[visit_id mut?*] no dims +[visit_id mut?*] +[visit_exp `mut?#591*`] +[visit_id mut?#591*] no dims +[visit_id mut?#591*] +[visit_exp `storagetype#355*`] +[visit_id storagetype#355*] no dims +[visit_id storagetype#355*] +[visit_exp `zt*`] +[visit_id zt*] no dims +[visit_id zt*] +[scope_enter zt] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_id zt] not free +[scope_exit zt] +[visit_exp `zt*`] +[visit_id zt*] not free +[visit_id zt*] no dims +[check_dims] storagetype +DecD is_packtype(storagetype : storagetype) : bool +[visit_id storagetype] not free +[check_dims] zt +[visit_exp zt] +[visit_id zt] +[visit_exp (zt = ($unpack(zt) : valtype <: storagetype))] +[visit_exp zt] +[visit_id zt] not free +[visit_exp ($unpack(zt) : valtype <: storagetype)] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] not free +=> + ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec + def $is_packtype{zt : storagetype}(zt) = (zt = ($unpack(zt) : valtype <: storagetype)) +[check_dims] C X*#6037 X*#6086 X*#6099 deftype*#39 ft heaptype#811 i i#6236 i#6246 localidx*#755 mut mut?#617 null?#807 resulttype#1255 storagetype#381 sx sx?#7 typeidx#414 typeidx#416 u32#8 x zt +[visit_exp C] +[visit_id C] +[visit_exp `STRUCT.GET`_instr{`sx?#7`, typeidx#414, u32#8}(sx?{sx <- `sx?`}, x, i)] +[visit_exp `sx?#7`] +[visit_id sx?#7] +[visit_exp typeidx#414] +[visit_id typeidx#414] +[visit_exp u32#8] +[visit_id u32#8] +[visit_exp (sx?{sx <- `sx?`}, x, i)] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] no dims +[visit_id sx?] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp `%->_%%`_instrtype{resulttype#1255, `localidx*#755`}(`%`_resulttype{`X*#6037`}([`REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))]), [], `%`_resulttype{`X*#6086`}([$unpack(zt)]))] +[visit_exp resulttype#1255] +[visit_id resulttype#1255] +[visit_exp `localidx*#755`] +[visit_id localidx*#755] +[visit_exp (`%`_resulttype{`X*#6037`}([`REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))]), [], `%`_resulttype{`X*#6086`}([$unpack(zt)]))] +[visit_exp `%`_resulttype{`X*#6037`}([`REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))])] +[visit_exp `X*#6037`] +[visit_id X*#6037] +[visit_exp ([`REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))])] +[visit_exp [`REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))]] +[visit_exp `REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))] +[visit_exp `null?#807`] +[visit_id null?#807] +[visit_exp heaptype#811] +[visit_id heaptype#811] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `_IDX`_heaptype{typeidx#416}(x)] +[visit_exp typeidx#416] +[visit_id typeidx#416] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6086`}([$unpack(zt)])] +[visit_exp `X*#6086`] +[visit_id X*#6086] +[visit_exp ([$unpack(zt)])] +[visit_exp [$unpack(zt)]] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] +[visit_exp (C.`TYPES`_context{`deftype*#39`}[x!`%`_idx{i#6236}.0], `STRUCT`_comptype(`%`_list{`X*#6099`}(ft*{ft <- `ft*`})))] +[visit_exp C.`TYPES`_context{`deftype*#39`}[x!`%`_idx{i#6236}.0]] +[visit_exp C.`TYPES`_context{`deftype*#39`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#39`] +[visit_id deftype*#39] +[visit_exp x!`%`_idx{i#6236}.0] +[visit_exp x!`%`_idx{i#6236}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6236] +[visit_id i#6236] +[visit_exp `STRUCT`_comptype(`%`_list{`X*#6099`}(ft*{ft <- `ft*`}))] +[visit_exp (`%`_list{`X*#6099`}(ft*{ft <- `ft*`}))] +[visit_exp `%`_list{`X*#6099`}(ft*{ft <- `ft*`})] +[visit_exp `X*#6099`] +[visit_id X*#6099] +[visit_exp (ft*{ft <- `ft*`})] +[visit_exp ft*{ft <- `ft*`}] +[scope_enter ft] +[visit_exp ft] +[visit_id ft] not free +[visit_id ft] not free +[scope_exit ft] +[visit_exp `ft*`] +[visit_id ft*] no dims +[visit_id ft*] +[visit_exp (ft*{ft <- `ft*`}[i!`%`_u32{i#6246}.0] = `%%`_fieldtype{`mut?#617`, storagetype#381}(mut?{mut <- `mut?`}, zt))] +[visit_exp ft*{ft <- `ft*`}[i!`%`_u32{i#6246}.0]] +[visit_exp ft*{ft <- `ft*`}] +[scope_enter ft] +[visit_exp ft] +[visit_id ft] not free +[visit_id ft] not free +[scope_exit ft] +[visit_exp `ft*`] +[visit_id ft*] not free +[visit_id ft*] no dims +[visit_exp i!`%`_u32{i#6246}.0] +[visit_exp i!`%`_u32{i#6246}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#6246] +[visit_id i#6246] +[visit_exp `%%`_fieldtype{`mut?#617`, storagetype#381}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#617`] +[visit_id mut?#617] +[visit_exp storagetype#381] +[visit_id storagetype#381] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] not free +[visit_exp ((sx?{sx <- `sx?`} = ?()) <=> $is_packtype(zt))] +[visit_exp (sx?{sx <- `sx?`} = ?())] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] not free +[visit_id sx?] no dims +[visit_exp ?()] +[visit_exp $is_packtype(zt)] +[visit_exp zt] +[visit_id zt] not free +[check_dims] C X*#6122 X*#6171 X*#6184 deftype*#40 ft heaptype#813 i i#6298 i#6308 localidx*#767 mut?#643 null?#809 resulttype#1275 storagetype#407 typeidx#418 typeidx#420 u32#10 x zt +[visit_exp C] +[visit_id C] +[visit_exp `STRUCT.SET`_instr{typeidx#418, u32#10}(x, i)] +[visit_exp typeidx#418] +[visit_id typeidx#418] +[visit_exp u32#10] +[visit_id u32#10] +[visit_exp (x, i)] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp `%->_%%`_instrtype{resulttype#1275, `localidx*#767`}(`%`_resulttype{`X*#6122`}([`REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x)) $unpack(zt)]), [], `%`_resulttype{`X*#6171`}([]))] +[visit_exp resulttype#1275] +[visit_id resulttype#1275] +[visit_exp `localidx*#767`] +[visit_id localidx*#767] +[visit_exp (`%`_resulttype{`X*#6122`}([`REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x)) $unpack(zt)]), [], `%`_resulttype{`X*#6171`}([]))] +[visit_exp `%`_resulttype{`X*#6122`}([`REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x)) $unpack(zt)])] +[visit_exp `X*#6122`] +[visit_id X*#6122] +[visit_exp ([`REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x)) $unpack(zt)])] +[visit_exp [`REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x)) $unpack(zt)]] +[visit_exp `REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x))] +[visit_exp `null?#809`] +[visit_id null?#809] +[visit_exp heaptype#813] +[visit_id heaptype#813] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `_IDX`_heaptype{typeidx#420}(x)] +[visit_exp typeidx#420] +[visit_id typeidx#420] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6171`}([])] +[visit_exp `X*#6171`] +[visit_id X*#6171] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`TYPES`_context{`deftype*#40`}[x!`%`_idx{i#6298}.0], `STRUCT`_comptype(`%`_list{`X*#6184`}(ft*{ft <- `ft*`})))] +[visit_exp C.`TYPES`_context{`deftype*#40`}[x!`%`_idx{i#6298}.0]] +[visit_exp C.`TYPES`_context{`deftype*#40`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#40`] +[visit_id deftype*#40] +[visit_exp x!`%`_idx{i#6298}.0] +[visit_exp x!`%`_idx{i#6298}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6298] +[visit_id i#6298] +[visit_exp `STRUCT`_comptype(`%`_list{`X*#6184`}(ft*{ft <- `ft*`}))] +[visit_exp (`%`_list{`X*#6184`}(ft*{ft <- `ft*`}))] +[visit_exp `%`_list{`X*#6184`}(ft*{ft <- `ft*`})] +[visit_exp `X*#6184`] +[visit_id X*#6184] +[visit_exp (ft*{ft <- `ft*`})] +[visit_exp ft*{ft <- `ft*`}] +[scope_enter ft] +[visit_exp ft] +[visit_id ft] not free +[visit_id ft] not free +[scope_exit ft] +[visit_exp `ft*`] +[visit_id ft*] no dims +[visit_id ft*] +[visit_exp (ft*{ft <- `ft*`}[i!`%`_u32{i#6308}.0] = `%%`_fieldtype{`mut?#643`, storagetype#407}(?(`MUT`_mut), zt))] +[visit_exp ft*{ft <- `ft*`}[i!`%`_u32{i#6308}.0]] +[visit_exp ft*{ft <- `ft*`}] +[scope_enter ft] +[visit_exp ft] +[visit_id ft] not free +[visit_id ft] not free +[scope_exit ft] +[visit_exp `ft*`] +[visit_id ft*] not free +[visit_id ft*] no dims +[visit_exp i!`%`_u32{i#6308}.0] +[visit_exp i!`%`_u32{i#6308}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#6308] +[visit_id i#6308] +[visit_exp `%%`_fieldtype{`mut?#643`, storagetype#407}(?(`MUT`_mut), zt)] +[visit_exp `mut?#643`] +[visit_id mut?#643] +[visit_exp storagetype#407] +[visit_id storagetype#407] +[visit_exp (?(`MUT`_mut), zt)] +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp zt] +[visit_id zt] not free +[check_dims] C X*#6207 X*#6256 deftype*#41 fieldtype#15 heaptype#815 i#6346 localidx*#779 mut mut?#655 null?#811 resulttype#1295 storagetype#419 typeidx#422 typeidx#424 x zt +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.NEW`_instr{typeidx#422}(x)] +[visit_exp typeidx#422] +[visit_id typeidx#422] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1295, `localidx*#779`}(`%`_resulttype{`X*#6207`}([$unpack(zt) `I32`_valtype]), [], `%`_resulttype{`X*#6256`}([`REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))]))] +[visit_exp resulttype#1295] +[visit_id resulttype#1295] +[visit_exp `localidx*#779`] +[visit_id localidx*#779] +[visit_exp (`%`_resulttype{`X*#6207`}([$unpack(zt) `I32`_valtype]), [], `%`_resulttype{`X*#6256`}([`REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))]))] +[visit_exp `%`_resulttype{`X*#6207`}([$unpack(zt) `I32`_valtype])] +[visit_exp `X*#6207`] +[visit_id X*#6207] +[visit_exp ([$unpack(zt) `I32`_valtype])] +[visit_exp [$unpack(zt) `I32`_valtype]] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6256`}([`REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))])] +[visit_exp `X*#6256`] +[visit_id X*#6256] +[visit_exp ([`REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))])] +[visit_exp [`REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))]] +[visit_exp `REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))] +[visit_exp `null?#811`] +[visit_id null?#811] +[visit_exp heaptype#815] +[visit_id heaptype#815] +[visit_exp (?(), `_IDX`_heaptype{typeidx#424}(x))] +[visit_exp ?()] +[visit_exp `_IDX`_heaptype{typeidx#424}(x)] +[visit_exp typeidx#424] +[visit_id typeidx#424] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp (C.`TYPES`_context{`deftype*#41`}[x!`%`_idx{i#6346}.0], `ARRAY`_comptype{fieldtype#15}(`%%`_fieldtype{`mut?#655`, storagetype#419}(mut?{mut <- `mut?`}, zt)))] +[visit_exp C.`TYPES`_context{`deftype*#41`}[x!`%`_idx{i#6346}.0]] +[visit_exp C.`TYPES`_context{`deftype*#41`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#41`] +[visit_id deftype*#41] +[visit_exp x!`%`_idx{i#6346}.0] +[visit_exp x!`%`_idx{i#6346}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6346] +[visit_id i#6346] +[visit_exp `ARRAY`_comptype{fieldtype#15}(`%%`_fieldtype{`mut?#655`, storagetype#419}(mut?{mut <- `mut?`}, zt))] +[visit_exp fieldtype#15] +[visit_id fieldtype#15] +[visit_exp (`%%`_fieldtype{`mut?#655`, storagetype#419}(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype{`mut?#655`, storagetype#419}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#655`] +[visit_id mut?#655] +[visit_exp storagetype#419] +[visit_id storagetype#419] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] not free +[check_dims] C X*#6275 X*#6324 deftype*#42 fieldtype#17 heaptype#817 i#6384 localidx*#791 mut mut?#667 null?#813 resulttype#1315 storagetype#431 typeidx#426 typeidx#428 x zt +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.NEW_DEFAULT`_instr{typeidx#426}(x)] +[visit_exp typeidx#426] +[visit_id typeidx#426] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1315, `localidx*#791`}(`%`_resulttype{`X*#6275`}([`I32`_valtype]), [], `%`_resulttype{`X*#6324`}([`REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))]))] +[visit_exp resulttype#1315] +[visit_id resulttype#1315] +[visit_exp `localidx*#791`] +[visit_id localidx*#791] +[visit_exp (`%`_resulttype{`X*#6275`}([`I32`_valtype]), [], `%`_resulttype{`X*#6324`}([`REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))]))] +[visit_exp `%`_resulttype{`X*#6275`}([`I32`_valtype])] +[visit_exp `X*#6275`] +[visit_id X*#6275] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6324`}([`REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))])] +[visit_exp `X*#6324`] +[visit_id X*#6324] +[visit_exp ([`REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))])] +[visit_exp [`REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))]] +[visit_exp `REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))] +[visit_exp `null?#813`] +[visit_id null?#813] +[visit_exp heaptype#817] +[visit_id heaptype#817] +[visit_exp (?(), `_IDX`_heaptype{typeidx#428}(x))] +[visit_exp ?()] +[visit_exp `_IDX`_heaptype{typeidx#428}(x)] +[visit_exp typeidx#428] +[visit_id typeidx#428] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp (C.`TYPES`_context{`deftype*#42`}[x!`%`_idx{i#6384}.0], `ARRAY`_comptype{fieldtype#17}(`%%`_fieldtype{`mut?#667`, storagetype#431}(mut?{mut <- `mut?`}, zt)))] +[visit_exp C.`TYPES`_context{`deftype*#42`}[x!`%`_idx{i#6384}.0]] +[visit_exp C.`TYPES`_context{`deftype*#42`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#42`] +[visit_id deftype*#42] +[visit_exp x!`%`_idx{i#6384}.0] +[visit_exp x!`%`_idx{i#6384}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6384] +[visit_id i#6384] +[visit_exp `ARRAY`_comptype{fieldtype#17}(`%%`_fieldtype{`mut?#667`, storagetype#431}(mut?{mut <- `mut?`}, zt))] +[visit_exp fieldtype#17] +[visit_id fieldtype#17] +[visit_exp (`%%`_fieldtype{`mut?#667`, storagetype#431}(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype{`mut?#667`, storagetype#431}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#667`] +[visit_id mut?#667] +[visit_exp storagetype#431] +[visit_id storagetype#431] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] not free +[check_dims] C X*#6335 X*#6386 deftype*#43 fieldtype#19 heaptype#819 i#6422 i#6446 localidx*#803 mut mut?#679 n null?#815 resulttype#1335 storagetype#443 typeidx#430 typeidx#432 u32#12 x zt +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#430, u32#12}(x, `%`_u32{i#6422}(n))] +[visit_exp typeidx#430] +[visit_id typeidx#430] +[visit_exp u32#12] +[visit_id u32#12] +[visit_exp (x, `%`_u32{i#6422}(n))] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#6422}(n)] +[visit_exp i#6422] +[visit_id i#6422] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `%->_%%`_instrtype{resulttype#1335, `localidx*#803`}(`%`_resulttype{`X*#6335`}($unpack(zt)^n{}), [], `%`_resulttype{`X*#6386`}([`REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))]))] +[visit_exp resulttype#1335] +[visit_id resulttype#1335] +[visit_exp `localidx*#803`] +[visit_id localidx*#803] +[visit_exp (`%`_resulttype{`X*#6335`}($unpack(zt)^n{}), [], `%`_resulttype{`X*#6386`}([`REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))]))] +[visit_exp `%`_resulttype{`X*#6335`}($unpack(zt)^n{})] +[visit_exp `X*#6335`] +[visit_id X*#6335] +[visit_exp ($unpack(zt)^n{})] +[visit_exp $unpack(zt)^n{}] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] +[visit_exp n] +[visit_id n] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6386`}([`REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))])] +[visit_exp `X*#6386`] +[visit_id X*#6386] +[visit_exp ([`REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))])] +[visit_exp [`REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))]] +[visit_exp `REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))] +[visit_exp `null?#815`] +[visit_id null?#815] +[visit_exp heaptype#819] +[visit_id heaptype#819] +[visit_exp (?(), `_IDX`_heaptype{typeidx#432}(x))] +[visit_exp ?()] +[visit_exp `_IDX`_heaptype{typeidx#432}(x)] +[visit_exp typeidx#432] +[visit_id typeidx#432] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp (C.`TYPES`_context{`deftype*#43`}[x!`%`_idx{i#6446}.0], `ARRAY`_comptype{fieldtype#19}(`%%`_fieldtype{`mut?#679`, storagetype#443}(mut?{mut <- `mut?`}, zt)))] +[visit_exp C.`TYPES`_context{`deftype*#43`}[x!`%`_idx{i#6446}.0]] +[visit_exp C.`TYPES`_context{`deftype*#43`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#43`] +[visit_id deftype*#43] +[visit_exp x!`%`_idx{i#6446}.0] +[visit_exp x!`%`_idx{i#6446}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6446] +[visit_id i#6446] +[visit_exp `ARRAY`_comptype{fieldtype#19}(`%%`_fieldtype{`mut?#679`, storagetype#443}(mut?{mut <- `mut?`}, zt))] +[visit_exp fieldtype#19] +[visit_id fieldtype#19] +[visit_exp (`%%`_fieldtype{`mut?#679`, storagetype#443}(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype{`mut?#679`, storagetype#443}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#679`] +[visit_id mut?#679] +[visit_exp storagetype#443] +[visit_id storagetype#443] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] not free +[check_dims] C X*#6407 X*#6456 deftype*#44 elemidx#9 elemtype*#7 fieldtype#21 heaptype#821 i#6498 i#6508 localidx*#815 mut mut?#691 null?#817 resulttype#1355 rt storagetype#455 typeidx#434 typeidx#436 x y +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.NEW_ELEM`_instr{typeidx#434, elemidx#9}(x, y)] +[visit_exp typeidx#434] +[visit_id typeidx#434] +[visit_exp elemidx#9] +[visit_id elemidx#9] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp `%->_%%`_instrtype{resulttype#1355, `localidx*#815`}(`%`_resulttype{`X*#6407`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6456`}([`REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))]))] +[visit_exp resulttype#1355] +[visit_id resulttype#1355] +[visit_exp `localidx*#815`] +[visit_id localidx*#815] +[visit_exp (`%`_resulttype{`X*#6407`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6456`}([`REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))]))] +[visit_exp `%`_resulttype{`X*#6407`}([`I32`_valtype `I32`_valtype])] +[visit_exp `X*#6407`] +[visit_id X*#6407] +[visit_exp ([`I32`_valtype `I32`_valtype])] +[visit_exp [`I32`_valtype `I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6456`}([`REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))])] +[visit_exp `X*#6456`] +[visit_id X*#6456] +[visit_exp ([`REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))])] +[visit_exp [`REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))]] +[visit_exp `REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))] +[visit_exp `null?#817`] +[visit_id null?#817] +[visit_exp heaptype#821] +[visit_id heaptype#821] +[visit_exp (?(), `_IDX`_heaptype{typeidx#436}(x))] +[visit_exp ?()] +[visit_exp `_IDX`_heaptype{typeidx#436}(x)] +[visit_exp typeidx#436] +[visit_id typeidx#436] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp (C.`TYPES`_context{`deftype*#44`}[x!`%`_idx{i#6498}.0], `ARRAY`_comptype{fieldtype#21}(`%%`_fieldtype{`mut?#691`, storagetype#455}(mut?{mut <- `mut?`}, (rt : reftype <: storagetype))))] +[visit_exp C.`TYPES`_context{`deftype*#44`}[x!`%`_idx{i#6498}.0]] +[visit_exp C.`TYPES`_context{`deftype*#44`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#44`] +[visit_id deftype*#44] +[visit_exp x!`%`_idx{i#6498}.0] +[visit_exp x!`%`_idx{i#6498}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6498] +[visit_id i#6498] +[visit_exp `ARRAY`_comptype{fieldtype#21}(`%%`_fieldtype{`mut?#691`, storagetype#455}(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))] +[visit_exp fieldtype#21] +[visit_id fieldtype#21] +[visit_exp (`%%`_fieldtype{`mut?#691`, storagetype#455}(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))] +[visit_exp `%%`_fieldtype{`mut?#691`, storagetype#455}(mut?{mut <- `mut?`}, (rt : reftype <: storagetype))] +[visit_exp `mut?#691`] +[visit_id mut?#691] +[visit_exp storagetype#455] +[visit_id storagetype#455] +[visit_exp (mut?{mut <- `mut?`}, (rt : reftype <: storagetype))] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp (rt : reftype <: storagetype)] +[visit_exp rt] +[visit_id rt] +[visit_exp (C, C.`ELEMS`_context{`elemtype*#7`}[y!`%`_idx{i#6508}.0], rt)] +[visit_exp C] +[visit_id C] not free +[visit_exp C.`ELEMS`_context{`elemtype*#7`}[y!`%`_idx{i#6508}.0]] +[visit_exp C.`ELEMS`_context{`elemtype*#7`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `elemtype*#7`] +[visit_id elemtype*#7] +[visit_exp y!`%`_idx{i#6508}.0] +[visit_exp y!`%`_idx{i#6508}] +[visit_exp y] +[visit_id y] not free +[visit_exp i#6508] +[visit_id i#6508] +[visit_exp rt] +[visit_id rt] not free +[check_dims] C X*#6477 X*#6526 dataidx#9 datatype*#7 deftype*#45 fieldtype#23 heaptype#835 i#6560 i#6570 localidx*#827 mut mut?#703 null?#831 numtype resulttype#1375 storagetype#467 typeidx#438 typeidx#440 vectype x y zt +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.NEW_DATA`_instr{typeidx#438, dataidx#9}(x, y)] +[visit_exp typeidx#438] +[visit_id typeidx#438] +[visit_exp dataidx#9] +[visit_id dataidx#9] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp `%->_%%`_instrtype{resulttype#1375, `localidx*#827`}(`%`_resulttype{`X*#6477`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6526`}([`REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))]))] +[visit_exp resulttype#1375] +[visit_id resulttype#1375] +[visit_exp `localidx*#827`] +[visit_id localidx*#827] +[visit_exp (`%`_resulttype{`X*#6477`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6526`}([`REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))]))] +[visit_exp `%`_resulttype{`X*#6477`}([`I32`_valtype `I32`_valtype])] +[visit_exp `X*#6477`] +[visit_id X*#6477] +[visit_exp ([`I32`_valtype `I32`_valtype])] +[visit_exp [`I32`_valtype `I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6526`}([`REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))])] +[visit_exp `X*#6526`] +[visit_id X*#6526] +[visit_exp ([`REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))])] +[visit_exp [`REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))]] +[visit_exp `REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))] +[visit_exp `null?#831`] +[visit_id null?#831] +[visit_exp heaptype#835] +[visit_id heaptype#835] +[visit_exp (?(), `_IDX`_heaptype{typeidx#440}(x))] +[visit_exp ?()] +[visit_exp `_IDX`_heaptype{typeidx#440}(x)] +[visit_exp typeidx#440] +[visit_id typeidx#440] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp (C.`TYPES`_context{`deftype*#45`}[x!`%`_idx{i#6560}.0], `ARRAY`_comptype{fieldtype#23}(`%%`_fieldtype{`mut?#703`, storagetype#467}(mut?{mut <- `mut?`}, zt)))] +[visit_exp C.`TYPES`_context{`deftype*#45`}[x!`%`_idx{i#6560}.0]] +[visit_exp C.`TYPES`_context{`deftype*#45`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#45`] +[visit_id deftype*#45] +[visit_exp x!`%`_idx{i#6560}.0] +[visit_exp x!`%`_idx{i#6560}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6560] +[visit_id i#6560] +[visit_exp `ARRAY`_comptype{fieldtype#23}(`%%`_fieldtype{`mut?#703`, storagetype#467}(mut?{mut <- `mut?`}, zt))] +[visit_exp fieldtype#23] +[visit_id fieldtype#23] +[visit_exp (`%%`_fieldtype{`mut?#703`, storagetype#467}(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype{`mut?#703`, storagetype#467}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#703`] +[visit_id mut?#703] +[visit_exp storagetype#467] +[visit_id storagetype#467] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] +[visit_exp (($unpack(zt) = (numtype : numtype <: valtype)) \/ ($unpack(zt) = (vectype : vectype <: valtype)))] +[visit_exp ($unpack(zt) = (numtype : numtype <: valtype))] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp (numtype : numtype <: valtype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp ($unpack(zt) = (vectype : vectype <: valtype))] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp (vectype : vectype <: valtype)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp (C.`DATAS`_context{`datatype*#7`}[y!`%`_idx{i#6570}.0] = `OK`_datatype)] +[visit_exp C.`DATAS`_context{`datatype*#7`}[y!`%`_idx{i#6570}.0]] +[visit_exp C.`DATAS`_context{`datatype*#7`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `datatype*#7`] +[visit_id datatype*#7] +[visit_exp y!`%`_idx{i#6570}.0] +[visit_exp y!`%`_idx{i#6570}] +[visit_exp y] +[visit_id y] not free +[visit_exp i#6570] +[visit_id i#6570] +[visit_exp `OK`_datatype] +[visit_exp ()] +[check_dims] C X*#6547 X*#6596 deftype*#46 fieldtype#25 heaptype#837 i#6645 localidx*#839 mut mut?#715 null?#833 resulttype#1395 storagetype#479 sx sx?#9 typeidx#442 typeidx#444 x zt +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.GET`_instr{`sx?#9`, typeidx#442}(sx?{sx <- `sx?`}, x)] +[visit_exp `sx?#9`] +[visit_id sx?#9] +[visit_exp typeidx#442] +[visit_id typeidx#442] +[visit_exp (sx?{sx <- `sx?`}, x)] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] no dims +[visit_id sx?] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1395, `localidx*#839`}(`%`_resulttype{`X*#6547`}([`REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x)) `I32`_valtype]), [], `%`_resulttype{`X*#6596`}([$unpack(zt)]))] +[visit_exp resulttype#1395] +[visit_id resulttype#1395] +[visit_exp `localidx*#839`] +[visit_id localidx*#839] +[visit_exp (`%`_resulttype{`X*#6547`}([`REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x)) `I32`_valtype]), [], `%`_resulttype{`X*#6596`}([$unpack(zt)]))] +[visit_exp `%`_resulttype{`X*#6547`}([`REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x)) `I32`_valtype])] +[visit_exp `X*#6547`] +[visit_id X*#6547] +[visit_exp ([`REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x)) `I32`_valtype])] +[visit_exp [`REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x)) `I32`_valtype]] +[visit_exp `REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x))] +[visit_exp `null?#833`] +[visit_id null?#833] +[visit_exp heaptype#837] +[visit_id heaptype#837] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `_IDX`_heaptype{typeidx#444}(x)] +[visit_exp typeidx#444] +[visit_id typeidx#444] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6596`}([$unpack(zt)])] +[visit_exp `X*#6596`] +[visit_id X*#6596] +[visit_exp ([$unpack(zt)])] +[visit_exp [$unpack(zt)]] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] +[visit_exp (C.`TYPES`_context{`deftype*#46`}[x!`%`_idx{i#6645}.0], `ARRAY`_comptype{fieldtype#25}(`%%`_fieldtype{`mut?#715`, storagetype#479}(mut?{mut <- `mut?`}, zt)))] +[visit_exp C.`TYPES`_context{`deftype*#46`}[x!`%`_idx{i#6645}.0]] +[visit_exp C.`TYPES`_context{`deftype*#46`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#46`] +[visit_id deftype*#46] +[visit_exp x!`%`_idx{i#6645}.0] +[visit_exp x!`%`_idx{i#6645}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6645] +[visit_id i#6645] +[visit_exp `ARRAY`_comptype{fieldtype#25}(`%%`_fieldtype{`mut?#715`, storagetype#479}(mut?{mut <- `mut?`}, zt))] +[visit_exp fieldtype#25] +[visit_id fieldtype#25] +[visit_exp (`%%`_fieldtype{`mut?#715`, storagetype#479}(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype{`mut?#715`, storagetype#479}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#715`] +[visit_id mut?#715] +[visit_exp storagetype#479] +[visit_id storagetype#479] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] not free +[visit_exp ((sx?{sx <- `sx?`} = ?()) <=> $is_packtype(zt))] +[visit_exp (sx?{sx <- `sx?`} = ?())] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] not free +[visit_id sx?] no dims +[visit_exp ?()] +[visit_exp $is_packtype(zt)] +[visit_exp zt] +[visit_id zt] not free +[check_dims] C X*#6617 X*#6666 deftype*#47 fieldtype#27 heaptype#839 i#6683 localidx*#851 mut?#727 null?#835 resulttype#1415 storagetype#491 typeidx#446 typeidx#448 x zt +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.SET`_instr{typeidx#446}(x)] +[visit_exp typeidx#446] +[visit_id typeidx#446] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1415, `localidx*#851`}(`%`_resulttype{`X*#6617`}([`REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x)) `I32`_valtype $unpack(zt)]), [], `%`_resulttype{`X*#6666`}([]))] +[visit_exp resulttype#1415] +[visit_id resulttype#1415] +[visit_exp `localidx*#851`] +[visit_id localidx*#851] +[visit_exp (`%`_resulttype{`X*#6617`}([`REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x)) `I32`_valtype $unpack(zt)]), [], `%`_resulttype{`X*#6666`}([]))] +[visit_exp `%`_resulttype{`X*#6617`}([`REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x)) `I32`_valtype $unpack(zt)])] +[visit_exp `X*#6617`] +[visit_id X*#6617] +[visit_exp ([`REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x)) `I32`_valtype $unpack(zt)])] +[visit_exp [`REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x)) `I32`_valtype $unpack(zt)]] +[visit_exp `REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x))] +[visit_exp `null?#835`] +[visit_id null?#835] +[visit_exp heaptype#839] +[visit_id heaptype#839] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `_IDX`_heaptype{typeidx#448}(x)] +[visit_exp typeidx#448] +[visit_id typeidx#448] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6666`}([])] +[visit_exp `X*#6666`] +[visit_id X*#6666] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`TYPES`_context{`deftype*#47`}[x!`%`_idx{i#6683}.0], `ARRAY`_comptype{fieldtype#27}(`%%`_fieldtype{`mut?#727`, storagetype#491}(?(`MUT`_mut), zt)))] +[visit_exp C.`TYPES`_context{`deftype*#47`}[x!`%`_idx{i#6683}.0]] +[visit_exp C.`TYPES`_context{`deftype*#47`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#47`] +[visit_id deftype*#47] +[visit_exp x!`%`_idx{i#6683}.0] +[visit_exp x!`%`_idx{i#6683}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6683] +[visit_id i#6683] +[visit_exp `ARRAY`_comptype{fieldtype#27}(`%%`_fieldtype{`mut?#727`, storagetype#491}(?(`MUT`_mut), zt))] +[visit_exp fieldtype#27] +[visit_id fieldtype#27] +[visit_exp (`%%`_fieldtype{`mut?#727`, storagetype#491}(?(`MUT`_mut), zt))] +[visit_exp `%%`_fieldtype{`mut?#727`, storagetype#491}(?(`MUT`_mut), zt)] +[visit_exp `mut?#727`] +[visit_id mut?#727] +[visit_exp storagetype#491] +[visit_id storagetype#491] +[visit_exp (?(`MUT`_mut), zt)] +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp zt] +[visit_id zt] not free +[check_dims] C X*#6687 X*#6736 heaptype#841 localidx*#863 null?#837 resulttype#1435 +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.LEN`_instr] +[visit_exp ()] +[visit_exp `%->_%%`_instrtype{resulttype#1435, `localidx*#863`}(`%`_resulttype{`X*#6687`}([`REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)]), [], `%`_resulttype{`X*#6736`}([`I32`_valtype]))] +[visit_exp resulttype#1435] +[visit_id resulttype#1435] +[visit_exp `localidx*#863`] +[visit_id localidx*#863] +[visit_exp (`%`_resulttype{`X*#6687`}([`REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)]), [], `%`_resulttype{`X*#6736`}([`I32`_valtype]))] +[visit_exp `%`_resulttype{`X*#6687`}([`REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)])] +[visit_exp `X*#6687`] +[visit_id X*#6687] +[visit_exp ([`REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)])] +[visit_exp [`REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)]] +[visit_exp `REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)] +[visit_exp `null?#837`] +[visit_id null?#837] +[visit_exp heaptype#841] +[visit_id heaptype#841] +[visit_exp (?(`NULL`_null), `ARRAY`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `ARRAY`_heaptype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6736`}([`I32`_valtype])] +[visit_exp `X*#6736`] +[visit_id X*#6736] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[check_dims] C X*#6757 X*#6806 deftype*#48 fieldtype#29 heaptype#843 i#6721 localidx*#875 mut?#739 null?#839 resulttype#1455 storagetype#503 typeidx#450 typeidx#452 x zt +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.FILL`_instr{typeidx#450}(x)] +[visit_exp typeidx#450] +[visit_id typeidx#450] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1455, `localidx*#875`}(`%`_resulttype{`X*#6757`}([`REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x)) `I32`_valtype $unpack(zt) `I32`_valtype]), [], `%`_resulttype{`X*#6806`}([]))] +[visit_exp resulttype#1455] +[visit_id resulttype#1455] +[visit_exp `localidx*#875`] +[visit_id localidx*#875] +[visit_exp (`%`_resulttype{`X*#6757`}([`REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x)) `I32`_valtype $unpack(zt) `I32`_valtype]), [], `%`_resulttype{`X*#6806`}([]))] +[visit_exp `%`_resulttype{`X*#6757`}([`REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x)) `I32`_valtype $unpack(zt) `I32`_valtype])] +[visit_exp `X*#6757`] +[visit_id X*#6757] +[visit_exp ([`REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x)) `I32`_valtype $unpack(zt) `I32`_valtype])] +[visit_exp [`REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x)) `I32`_valtype $unpack(zt) `I32`_valtype]] +[visit_exp `REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x))] +[visit_exp `null?#839`] +[visit_id null?#839] +[visit_exp heaptype#843] +[visit_id heaptype#843] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `_IDX`_heaptype{typeidx#452}(x)] +[visit_exp typeidx#452] +[visit_id typeidx#452] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6806`}([])] +[visit_exp `X*#6806`] +[visit_id X*#6806] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`TYPES`_context{`deftype*#48`}[x!`%`_idx{i#6721}.0], `ARRAY`_comptype{fieldtype#29}(`%%`_fieldtype{`mut?#739`, storagetype#503}(?(`MUT`_mut), zt)))] +[visit_exp C.`TYPES`_context{`deftype*#48`}[x!`%`_idx{i#6721}.0]] +[visit_exp C.`TYPES`_context{`deftype*#48`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#48`] +[visit_id deftype*#48] +[visit_exp x!`%`_idx{i#6721}.0] +[visit_exp x!`%`_idx{i#6721}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6721] +[visit_id i#6721] +[visit_exp `ARRAY`_comptype{fieldtype#29}(`%%`_fieldtype{`mut?#739`, storagetype#503}(?(`MUT`_mut), zt))] +[visit_exp fieldtype#29] +[visit_id fieldtype#29] +[visit_exp (`%%`_fieldtype{`mut?#739`, storagetype#503}(?(`MUT`_mut), zt))] +[visit_exp `%%`_fieldtype{`mut?#739`, storagetype#503}(?(`MUT`_mut), zt)] +[visit_exp `mut?#739`] +[visit_id mut?#739] +[visit_exp storagetype#503] +[visit_id storagetype#503] +[visit_exp (?(`MUT`_mut), zt)] +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp zt] +[visit_id zt] not free +[check_dims] C X*#6827 X*#6876 deftype*#49 deftype*#50 fieldtype#31 fieldtype#33 heaptype#845 heaptype#847 i#6787 i#6797 localidx*#887 mut mut?#751 mut?#763 null?#841 null?#843 resulttype#1475 storagetype#515 storagetype#527 typeidx#454 typeidx#457 typeidx#459 x_1 x_2 zt_1 zt_2 +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.COPY`_instr{typeidx#454}(x_1, x_2)] +[visit_exp typeidx#454] +[visit_id typeidx#454] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp `%->_%%`_instrtype{resulttype#1475, `localidx*#887`}(`%`_resulttype{`X*#6827`}([`REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1)) `I32`_valtype `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2)) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6876`}([]))] +[visit_exp resulttype#1475] +[visit_id resulttype#1475] +[visit_exp `localidx*#887`] +[visit_id localidx*#887] +[visit_exp (`%`_resulttype{`X*#6827`}([`REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1)) `I32`_valtype `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2)) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6876`}([]))] +[visit_exp `%`_resulttype{`X*#6827`}([`REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1)) `I32`_valtype `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2)) `I32`_valtype `I32`_valtype])] +[visit_exp `X*#6827`] +[visit_id X*#6827] +[visit_exp ([`REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1)) `I32`_valtype `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2)) `I32`_valtype `I32`_valtype])] +[visit_exp [`REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1)) `I32`_valtype `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2)) `I32`_valtype `I32`_valtype]] +[visit_exp `REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1))] +[visit_exp `null?#841`] +[visit_id null?#841] +[visit_exp heaptype#845] +[visit_id heaptype#845] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `_IDX`_heaptype{typeidx#457}(x_1)] +[visit_exp typeidx#457] +[visit_id typeidx#457] +[visit_exp (x_1)] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2))] +[visit_exp `null?#843`] +[visit_id null?#843] +[visit_exp heaptype#847] +[visit_id heaptype#847] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `_IDX`_heaptype{typeidx#459}(x_2)] +[visit_exp typeidx#459] +[visit_id typeidx#459] +[visit_exp (x_2)] +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6876`}([])] +[visit_exp `X*#6876`] +[visit_id X*#6876] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`TYPES`_context{`deftype*#49`}[x_1!`%`_idx{i#6787}.0], `ARRAY`_comptype{fieldtype#31}(`%%`_fieldtype{`mut?#751`, storagetype#515}(?(`MUT`_mut), zt_1)))] +[visit_exp C.`TYPES`_context{`deftype*#49`}[x_1!`%`_idx{i#6787}.0]] +[visit_exp C.`TYPES`_context{`deftype*#49`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#49`] +[visit_id deftype*#49] +[visit_exp x_1!`%`_idx{i#6787}.0] +[visit_exp x_1!`%`_idx{i#6787}] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp i#6787] +[visit_id i#6787] +[visit_exp `ARRAY`_comptype{fieldtype#31}(`%%`_fieldtype{`mut?#751`, storagetype#515}(?(`MUT`_mut), zt_1))] +[visit_exp fieldtype#31] +[visit_id fieldtype#31] +[visit_exp (`%%`_fieldtype{`mut?#751`, storagetype#515}(?(`MUT`_mut), zt_1))] +[visit_exp `%%`_fieldtype{`mut?#751`, storagetype#515}(?(`MUT`_mut), zt_1)] +[visit_exp `mut?#751`] +[visit_id mut?#751] +[visit_exp storagetype#515] +[visit_id storagetype#515] +[visit_exp (?(`MUT`_mut), zt_1)] +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp zt_1] +[visit_id zt_1] +[visit_exp (C.`TYPES`_context{`deftype*#50`}[x_2!`%`_idx{i#6797}.0], `ARRAY`_comptype{fieldtype#33}(`%%`_fieldtype{`mut?#763`, storagetype#527}(mut?{mut <- `mut?`}, zt_2)))] +[visit_exp C.`TYPES`_context{`deftype*#50`}[x_2!`%`_idx{i#6797}.0]] +[visit_exp C.`TYPES`_context{`deftype*#50`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#50`] +[visit_id deftype*#50] +[visit_exp x_2!`%`_idx{i#6797}.0] +[visit_exp x_2!`%`_idx{i#6797}] +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp i#6797] +[visit_id i#6797] +[visit_exp `ARRAY`_comptype{fieldtype#33}(`%%`_fieldtype{`mut?#763`, storagetype#527}(mut?{mut <- `mut?`}, zt_2))] +[visit_exp fieldtype#33] +[visit_id fieldtype#33] +[visit_exp (`%%`_fieldtype{`mut?#763`, storagetype#527}(mut?{mut <- `mut?`}, zt_2))] +[visit_exp `%%`_fieldtype{`mut?#763`, storagetype#527}(mut?{mut <- `mut?`}, zt_2)] +[visit_exp `mut?#763`] +[visit_id mut?#763] +[visit_exp storagetype#527] +[visit_id storagetype#527] +[visit_exp (mut?{mut <- `mut?`}, zt_2)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt_2] +[visit_id zt_2] +[visit_exp (C, zt_2, zt_1)] +[visit_exp C] +[visit_id C] not free +[visit_exp zt_2] +[visit_id zt_2] not free +[visit_exp zt_1] +[visit_id zt_1] not free +[check_dims] C X*#6897 X*#6946 deftype*#51 elemidx#11 elemtype*#8 fieldtype#35 heaptype#849 i#6849 i#6859 localidx*#899 mut?#775 null?#845 resulttype#1495 storagetype#539 typeidx#461 typeidx#463 x y zt +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#461, elemidx#11}(x, y)] +[visit_exp typeidx#461] +[visit_id typeidx#461] +[visit_exp elemidx#11] +[visit_id elemidx#11] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp `%->_%%`_instrtype{resulttype#1495, `localidx*#899`}(`%`_resulttype{`X*#6897`}([`REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6946`}([]))] +[visit_exp resulttype#1495] +[visit_id resulttype#1495] +[visit_exp `localidx*#899`] +[visit_id localidx*#899] +[visit_exp (`%`_resulttype{`X*#6897`}([`REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6946`}([]))] +[visit_exp `%`_resulttype{`X*#6897`}([`REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] +[visit_exp `X*#6897`] +[visit_id X*#6897] +[visit_exp ([`REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] +[visit_exp [`REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]] +[visit_exp `REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x))] +[visit_exp `null?#845`] +[visit_id null?#845] +[visit_exp heaptype#849] +[visit_id heaptype#849] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `_IDX`_heaptype{typeidx#463}(x)] +[visit_exp typeidx#463] +[visit_id typeidx#463] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#6946`}([])] +[visit_exp `X*#6946`] +[visit_id X*#6946] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`TYPES`_context{`deftype*#51`}[x!`%`_idx{i#6849}.0], `ARRAY`_comptype{fieldtype#35}(`%%`_fieldtype{`mut?#775`, storagetype#539}(?(`MUT`_mut), zt)))] +[visit_exp C.`TYPES`_context{`deftype*#51`}[x!`%`_idx{i#6849}.0]] +[visit_exp C.`TYPES`_context{`deftype*#51`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#51`] +[visit_id deftype*#51] +[visit_exp x!`%`_idx{i#6849}.0] +[visit_exp x!`%`_idx{i#6849}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6849] +[visit_id i#6849] +[visit_exp `ARRAY`_comptype{fieldtype#35}(`%%`_fieldtype{`mut?#775`, storagetype#539}(?(`MUT`_mut), zt))] +[visit_exp fieldtype#35] +[visit_id fieldtype#35] +[visit_exp (`%%`_fieldtype{`mut?#775`, storagetype#539}(?(`MUT`_mut), zt))] +[visit_exp `%%`_fieldtype{`mut?#775`, storagetype#539}(?(`MUT`_mut), zt)] +[visit_exp `mut?#775`] +[visit_id mut?#775] +[visit_exp storagetype#539] +[visit_id storagetype#539] +[visit_exp (?(`MUT`_mut), zt)] +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp zt] +[visit_id zt] +[visit_exp (C, (C.`ELEMS`_context{`elemtype*#8`}[y!`%`_idx{i#6859}.0] : reftype <: storagetype), zt)] +[visit_exp C] +[visit_id C] not free +[visit_exp (C.`ELEMS`_context{`elemtype*#8`}[y!`%`_idx{i#6859}.0] : reftype <: storagetype)] +[visit_exp C.`ELEMS`_context{`elemtype*#8`}[y!`%`_idx{i#6859}.0]] +[visit_exp C.`ELEMS`_context{`elemtype*#8`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `elemtype*#8`] +[visit_id elemtype*#8] +[visit_exp y!`%`_idx{i#6859}.0] +[visit_exp y!`%`_idx{i#6859}] +[visit_exp y] +[visit_id y] not free +[visit_exp i#6859] +[visit_id i#6859] +[visit_exp zt] +[visit_id zt] not free +[check_dims] C X*#6967 X*#7016 dataidx#11 datatype*#8 deftype*#52 fieldtype#37 heaptype#851 i#6911 i#6921 localidx*#911 mut?#787 null?#847 numtype resulttype#1515 storagetype#551 typeidx#465 typeidx#467 vectype x y zt +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#465, dataidx#11}(x, y)] +[visit_exp typeidx#465] +[visit_id typeidx#465] +[visit_exp dataidx#11] +[visit_id dataidx#11] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp `%->_%%`_instrtype{resulttype#1515, `localidx*#911`}(`%`_resulttype{`X*#6967`}([`REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#7016`}([]))] +[visit_exp resulttype#1515] +[visit_id resulttype#1515] +[visit_exp `localidx*#911`] +[visit_id localidx*#911] +[visit_exp (`%`_resulttype{`X*#6967`}([`REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#7016`}([]))] +[visit_exp `%`_resulttype{`X*#6967`}([`REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] +[visit_exp `X*#6967`] +[visit_id X*#6967] +[visit_exp ([`REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] +[visit_exp [`REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]] +[visit_exp `REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x))] +[visit_exp `null?#847`] +[visit_id null?#847] +[visit_exp heaptype#851] +[visit_id heaptype#851] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `_IDX`_heaptype{typeidx#467}(x)] +[visit_exp typeidx#467] +[visit_id typeidx#467] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#7016`}([])] +[visit_exp `X*#7016`] +[visit_id X*#7016] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`TYPES`_context{`deftype*#52`}[x!`%`_idx{i#6911}.0], `ARRAY`_comptype{fieldtype#37}(`%%`_fieldtype{`mut?#787`, storagetype#551}(?(`MUT`_mut), zt)))] +[visit_exp C.`TYPES`_context{`deftype*#52`}[x!`%`_idx{i#6911}.0]] +[visit_exp C.`TYPES`_context{`deftype*#52`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#52`] +[visit_id deftype*#52] +[visit_exp x!`%`_idx{i#6911}.0] +[visit_exp x!`%`_idx{i#6911}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6911] +[visit_id i#6911] +[visit_exp `ARRAY`_comptype{fieldtype#37}(`%%`_fieldtype{`mut?#787`, storagetype#551}(?(`MUT`_mut), zt))] +[visit_exp fieldtype#37] +[visit_id fieldtype#37] +[visit_exp (`%%`_fieldtype{`mut?#787`, storagetype#551}(?(`MUT`_mut), zt))] +[visit_exp `%%`_fieldtype{`mut?#787`, storagetype#551}(?(`MUT`_mut), zt)] +[visit_exp `mut?#787`] +[visit_id mut?#787] +[visit_exp storagetype#551] +[visit_id storagetype#551] +[visit_exp (?(`MUT`_mut), zt)] +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp zt] +[visit_id zt] +[visit_exp (($unpack(zt) = (numtype : numtype <: valtype)) \/ ($unpack(zt) = (vectype : vectype <: valtype)))] +[visit_exp ($unpack(zt) = (numtype : numtype <: valtype))] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp (numtype : numtype <: valtype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp ($unpack(zt) = (vectype : vectype <: valtype))] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp (vectype : vectype <: valtype)] +[visit_exp vectype] +[visit_id vectype] +[visit_exp (C.`DATAS`_context{`datatype*#8`}[y!`%`_idx{i#6921}.0] = `OK`_datatype)] +[visit_exp C.`DATAS`_context{`datatype*#8`}[y!`%`_idx{i#6921}.0]] +[visit_exp C.`DATAS`_context{`datatype*#8`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `datatype*#8`] +[visit_id datatype*#8] +[visit_exp y!`%`_idx{i#6921}.0] +[visit_exp y!`%`_idx{i#6921}] +[visit_exp y] +[visit_id y] not free +[visit_exp i#6921] +[visit_id i#6921] +[visit_exp `OK`_datatype] +[visit_exp ()] +[check_dims] C X*#7037 X*#7086 heaptype#853 heaptype#855 localidx*#923 null?#849 null?#851 null_1 null_2 resulttype#1535 +[visit_exp C] +[visit_id C] +[visit_exp `EXTERN.CONVERT_ANY`_instr] +[visit_exp ()] +[visit_exp `%->_%%`_instrtype{resulttype#1535, `localidx*#923`}(`%`_resulttype{`X*#7037`}([`REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]), [], `%`_resulttype{`X*#7086`}([`REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]))] +[visit_exp resulttype#1535] +[visit_id resulttype#1535] +[visit_exp `localidx*#923`] +[visit_id localidx*#923] +[visit_exp (`%`_resulttype{`X*#7037`}([`REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]), [], `%`_resulttype{`X*#7086`}([`REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]))] +[visit_exp `%`_resulttype{`X*#7037`}([`REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)])] +[visit_exp `X*#7037`] +[visit_id X*#7037] +[visit_exp ([`REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)])] +[visit_exp [`REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]] +[visit_exp `REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)] +[visit_exp `null?#849`] +[visit_id null?#849] +[visit_exp heaptype#853] +[visit_id heaptype#853] +[visit_exp (null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)] +[visit_exp null_1?{null_1 <- `null_1?`}] +[scope_enter null_1] +[visit_exp null_1] +[visit_id null_1] not free +[visit_id null_1] not free +[scope_exit null_1] +[visit_exp `null_1?`] +[visit_id null_1?] no dims +[visit_id null_1?] +[visit_exp `ANY`_heaptype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#7086`}([`REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)])] +[visit_exp `X*#7086`] +[visit_id X*#7086] +[visit_exp ([`REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)])] +[visit_exp [`REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]] +[visit_exp `REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)] +[visit_exp `null?#851`] +[visit_id null?#851] +[visit_exp heaptype#855] +[visit_id heaptype#855] +[visit_exp (null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)] +[visit_exp null_2?{null_2 <- `null_2?`}] +[scope_enter null_2] +[visit_exp null_2] +[visit_id null_2] not free +[visit_id null_2] not free +[scope_exit null_2] +[visit_exp `null_2?`] +[visit_id null_2?] no dims +[visit_id null_2?] +[visit_exp `EXTERN`_heaptype] +[visit_exp ()] +[visit_exp (null_1?{null_1 <- `null_1?`} = null_2?{null_2 <- `null_2?`})] +[visit_exp null_1?{null_1 <- `null_1?`}] +[scope_enter null_1] +[visit_exp null_1] +[visit_id null_1] not free +[visit_id null_1] not free +[scope_exit null_1] +[visit_exp `null_1?`] +[visit_id null_1?] not free +[visit_id null_1?] no dims +[visit_exp null_2?{null_2 <- `null_2?`}] +[scope_enter null_2] +[visit_exp null_2] +[visit_id null_2] not free +[visit_id null_2] not free +[scope_exit null_2] +[visit_exp `null_2?`] +[visit_id null_2?] not free +[visit_id null_2?] no dims +[check_dims] C X*#7107 X*#7156 heaptype#857 heaptype#859 localidx*#935 null?#853 null?#855 null_1 null_2 resulttype#1555 +[visit_exp C] +[visit_id C] +[visit_exp `ANY.CONVERT_EXTERN`_instr] +[visit_exp ()] +[visit_exp `%->_%%`_instrtype{resulttype#1555, `localidx*#935`}(`%`_resulttype{`X*#7107`}([`REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]), [], `%`_resulttype{`X*#7156`}([`REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]))] +[visit_exp resulttype#1555] +[visit_id resulttype#1555] +[visit_exp `localidx*#935`] +[visit_id localidx*#935] +[visit_exp (`%`_resulttype{`X*#7107`}([`REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]), [], `%`_resulttype{`X*#7156`}([`REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]))] +[visit_exp `%`_resulttype{`X*#7107`}([`REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)])] +[visit_exp `X*#7107`] +[visit_id X*#7107] +[visit_exp ([`REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)])] +[visit_exp [`REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]] +[visit_exp `REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)] +[visit_exp `null?#853`] +[visit_id null?#853] +[visit_exp heaptype#857] +[visit_id heaptype#857] +[visit_exp (null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)] +[visit_exp null_1?{null_1 <- `null_1?`}] +[scope_enter null_1] +[visit_exp null_1] +[visit_id null_1] not free +[visit_id null_1] not free +[scope_exit null_1] +[visit_exp `null_1?`] +[visit_id null_1?] no dims +[visit_id null_1?] +[visit_exp `EXTERN`_heaptype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#7156`}([`REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)])] +[visit_exp `X*#7156`] +[visit_id X*#7156] +[visit_exp ([`REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)])] +[visit_exp [`REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]] +[visit_exp `REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)] +[visit_exp `null?#855`] +[visit_id null?#855] +[visit_exp heaptype#859] +[visit_id heaptype#859] +[visit_exp (null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)] +[visit_exp null_2?{null_2 <- `null_2?`}] +[scope_enter null_2] +[visit_exp null_2] +[visit_id null_2] not free +[visit_id null_2] not free +[scope_exit null_2] +[visit_exp `null_2?`] +[visit_id null_2?] no dims +[visit_id null_2?] +[visit_exp `ANY`_heaptype] +[visit_exp ()] +[visit_exp (null_1?{null_1 <- `null_1?`} = null_2?{null_2 <- `null_2?`})] +[visit_exp null_1?{null_1 <- `null_1?`}] +[scope_enter null_1] +[visit_exp null_1] +[visit_id null_1] not free +[visit_id null_1] not free +[scope_exit null_1] +[visit_exp `null_1?`] +[visit_id null_1?] not free +[visit_id null_1?] no dims +[visit_exp null_2?{null_2 <- `null_2?`}] +[scope_enter null_2] +[visit_exp null_2] +[visit_id null_2] not free +[visit_id null_2] not free +[scope_exit null_2] +[visit_exp `null_2?`] +[visit_id null_2?] not free +[visit_id null_2?] no dims +[check_dims] C X*#7177 X*#7226 i#6945 init#77 localidx#7 localidx*#947 localtype*#10 resulttype#1575 t valtype#343 x +[visit_exp C] +[visit_id C] +[visit_exp `LOCAL.GET`_instr{localidx#7}(x)] +[visit_exp localidx#7] +[visit_id localidx#7] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1575, `localidx*#947`}(`%`_resulttype{`X*#7177`}([]), [], `%`_resulttype{`X*#7226`}([t]))] +[visit_exp resulttype#1575] +[visit_id resulttype#1575] +[visit_exp `localidx*#947`] +[visit_id localidx*#947] +[visit_exp (`%`_resulttype{`X*#7177`}([]), [], `%`_resulttype{`X*#7226`}([t]))] +[visit_exp `%`_resulttype{`X*#7177`}([])] +[visit_exp `X*#7177`] +[visit_id X*#7177] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#7226`}([t])] +[visit_exp `X*#7226`] +[visit_id X*#7226] +[visit_exp ([t])] +[visit_exp [t]] +[visit_exp t] +[visit_id t] +[visit_exp (C.`LOCALS`_context{`localtype*#10`}[x!`%`_idx{i#6945}.0] = `%%`_localtype{init#77, valtype#343}(`SET`_init, t))] +[visit_exp C.`LOCALS`_context{`localtype*#10`}[x!`%`_idx{i#6945}.0]] +[visit_exp C.`LOCALS`_context{`localtype*#10`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `localtype*#10`] +[visit_id localtype*#10] +[visit_exp x!`%`_idx{i#6945}.0] +[visit_exp x!`%`_idx{i#6945}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#6945] +[visit_id i#6945] +[visit_exp `%%`_localtype{init#77, valtype#343}(`SET`_init, t)] +[visit_exp init#77] +[visit_id init#77] +[visit_exp valtype#343] +[visit_id valtype#343] +[visit_exp (`SET`_init, t)] +[visit_exp `SET`_init] +[visit_exp ()] +[visit_exp t] +[visit_id t] not free +[check_dims] C X*#7237 X*#7334 i#7182 init init#89 localidx#9 localidx*#959 localtype*#11 resulttype#1595 t valtype#355 x +[visit_exp C] +[visit_id C] +[visit_exp `LOCAL.SET`_instr{localidx#9}(x)] +[visit_exp localidx#9] +[visit_id localidx#9] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1595, `localidx*#959`}(`%`_resulttype{`X*#7237`}([t]), [x], `%`_resulttype{`X*#7334`}([]))] +[visit_exp resulttype#1595] +[visit_id resulttype#1595] +[visit_exp `localidx*#959`] +[visit_id localidx*#959] +[visit_exp (`%`_resulttype{`X*#7237`}([t]), [x], `%`_resulttype{`X*#7334`}([]))] +[visit_exp `%`_resulttype{`X*#7237`}([t])] +[visit_exp `X*#7237`] +[visit_id X*#7237] +[visit_exp ([t])] +[visit_exp [t]] +[visit_exp t] +[visit_id t] +[visit_exp [x]] +[visit_exp x] +[visit_id x] not free +[visit_exp `%`_resulttype{`X*#7334`}([])] +[visit_exp `X*#7334`] +[visit_id X*#7334] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`LOCALS`_context{`localtype*#11`}[x!`%`_idx{i#7182}.0] = `%%`_localtype{init#89, valtype#355}(init, t))] +[visit_exp C.`LOCALS`_context{`localtype*#11`}[x!`%`_idx{i#7182}.0]] +[visit_exp C.`LOCALS`_context{`localtype*#11`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `localtype*#11`] +[visit_id localtype*#11] +[visit_exp x!`%`_idx{i#7182}.0] +[visit_exp x!`%`_idx{i#7182}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7182] +[visit_id i#7182] +[visit_exp `%%`_localtype{init#89, valtype#355}(init, t)] +[visit_exp init#89] +[visit_id init#89] +[visit_exp valtype#355] +[visit_id valtype#355] +[visit_exp (init, t)] +[visit_exp init] +[visit_id init] +[visit_exp t] +[visit_id t] not free +[check_dims] C X*#7345 X*#7432 i#7419 init init#101 localidx#11 localidx*#971 localtype*#12 resulttype#1615 t valtype#367 x +[visit_exp C] +[visit_id C] +[visit_exp `LOCAL.TEE`_instr{localidx#11}(x)] +[visit_exp localidx#11] +[visit_id localidx#11] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1615, `localidx*#971`}(`%`_resulttype{`X*#7345`}([t]), [x], `%`_resulttype{`X*#7432`}([t]))] +[visit_exp resulttype#1615] +[visit_id resulttype#1615] +[visit_exp `localidx*#971`] +[visit_id localidx*#971] +[visit_exp (`%`_resulttype{`X*#7345`}([t]), [x], `%`_resulttype{`X*#7432`}([t]))] +[visit_exp `%`_resulttype{`X*#7345`}([t])] +[visit_exp `X*#7345`] +[visit_id X*#7345] +[visit_exp ([t])] +[visit_exp [t]] +[visit_exp t] +[visit_id t] +[visit_exp [x]] +[visit_exp x] +[visit_id x] not free +[visit_exp `%`_resulttype{`X*#7432`}([t])] +[visit_exp `X*#7432`] +[visit_id X*#7432] +[visit_exp ([t])] +[visit_exp [t]] +[visit_exp t] +[visit_id t] not free +[visit_exp (C.`LOCALS`_context{`localtype*#12`}[x!`%`_idx{i#7419}.0] = `%%`_localtype{init#101, valtype#367}(init, t))] +[visit_exp C.`LOCALS`_context{`localtype*#12`}[x!`%`_idx{i#7419}.0]] +[visit_exp C.`LOCALS`_context{`localtype*#12`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `localtype*#12`] +[visit_id localtype*#12] +[visit_exp x!`%`_idx{i#7419}.0] +[visit_exp x!`%`_idx{i#7419}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7419] +[visit_id i#7419] +[visit_exp `%%`_localtype{init#101, valtype#367}(init, t)] +[visit_exp init#101] +[visit_id init#101] +[visit_exp valtype#367] +[visit_id valtype#367] +[visit_exp (init, t)] +[visit_exp init] +[visit_id init] +[visit_exp t] +[visit_id t] not free +[check_dims] C X*#7472 X*#7521 globalidx#9 globaltype*#7 i#7443 localidx*#983 mut mut?#799 resulttype#1635 t valtype#379 x +[visit_exp C] +[visit_id C] +[visit_exp `GLOBAL.GET`_instr{globalidx#9}(x)] +[visit_exp globalidx#9] +[visit_id globalidx#9] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1635, `localidx*#983`}(`%`_resulttype{`X*#7472`}([]), [], `%`_resulttype{`X*#7521`}([t]))] +[visit_exp resulttype#1635] +[visit_id resulttype#1635] +[visit_exp `localidx*#983`] +[visit_id localidx*#983] +[visit_exp (`%`_resulttype{`X*#7472`}([]), [], `%`_resulttype{`X*#7521`}([t]))] +[visit_exp `%`_resulttype{`X*#7472`}([])] +[visit_exp `X*#7472`] +[visit_id X*#7472] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#7521`}([t])] +[visit_exp `X*#7521`] +[visit_id X*#7521] +[visit_exp ([t])] +[visit_exp [t]] +[visit_exp t] +[visit_id t] +[visit_exp (C.`GLOBALS`_context{`globaltype*#7`}[x!`%`_idx{i#7443}.0] = `%%`_globaltype{`mut?#799`, valtype#379}(mut?{mut <- `mut?`}, t))] +[visit_exp C.`GLOBALS`_context{`globaltype*#7`}[x!`%`_idx{i#7443}.0]] +[visit_exp C.`GLOBALS`_context{`globaltype*#7`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `globaltype*#7`] +[visit_id globaltype*#7] +[visit_exp x!`%`_idx{i#7443}.0] +[visit_exp x!`%`_idx{i#7443}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7443] +[visit_id i#7443] +[visit_exp `%%`_globaltype{`mut?#799`, valtype#379}(mut?{mut <- `mut?`}, t)] +[visit_exp `mut?#799`] +[visit_id mut?#799] +[visit_exp valtype#379] +[visit_id valtype#379] +[visit_exp (mut?{mut <- `mut?`}, t)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp t] +[visit_id t] not free +[check_dims] C X*#7532 X*#7600 globalidx#11 globaltype*#8 i#7467 localidx*#995 mut?#811 resulttype#1655 t valtype#391 x +[visit_exp C] +[visit_id C] +[visit_exp `GLOBAL.SET`_instr{globalidx#11}(x)] +[visit_exp globalidx#11] +[visit_id globalidx#11] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1655, `localidx*#995`}(`%`_resulttype{`X*#7532`}([t]), [], `%`_resulttype{`X*#7600`}([]))] +[visit_exp resulttype#1655] +[visit_id resulttype#1655] +[visit_exp `localidx*#995`] +[visit_id localidx*#995] +[visit_exp (`%`_resulttype{`X*#7532`}([t]), [], `%`_resulttype{`X*#7600`}([]))] +[visit_exp `%`_resulttype{`X*#7532`}([t])] +[visit_exp `X*#7532`] +[visit_id X*#7532] +[visit_exp ([t])] +[visit_exp [t]] +[visit_exp t] +[visit_id t] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#7600`}([])] +[visit_exp `X*#7600`] +[visit_id X*#7600] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`GLOBALS`_context{`globaltype*#8`}[x!`%`_idx{i#7467}.0] = `%%`_globaltype{`mut?#811`, valtype#391}(?(`MUT`_mut), t))] +[visit_exp C.`GLOBALS`_context{`globaltype*#8`}[x!`%`_idx{i#7467}.0]] +[visit_exp C.`GLOBALS`_context{`globaltype*#8`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `globaltype*#8`] +[visit_id globaltype*#8] +[visit_exp x!`%`_idx{i#7467}.0] +[visit_exp x!`%`_idx{i#7467}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7467] +[visit_id i#7467] +[visit_exp `%%`_globaltype{`mut?#811`, valtype#391}(?(`MUT`_mut), t)] +[visit_exp `mut?#811`] +[visit_id mut?#811] +[visit_exp valtype#391] +[visit_id valtype#391] +[visit_exp (?(`MUT`_mut), t)] +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp t] +[visit_id t] not free +[check_dims] C X*#7611 X*#7679 addrtype#465 at i#7491 lim limits#465 localidx*#1007 reftype#417 resulttype#1675 rt tableidx#30 tabletype*#9 x +[visit_exp C] +[visit_id C] +[visit_exp `TABLE.GET`_instr{tableidx#30}(x)] +[visit_exp tableidx#30] +[visit_id tableidx#30] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1675, `localidx*#1007`}(`%`_resulttype{`X*#7611`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7679`}([(rt : reftype <: valtype)]))] +[visit_exp resulttype#1675] +[visit_id resulttype#1675] +[visit_exp `localidx*#1007`] +[visit_id localidx*#1007] +[visit_exp (`%`_resulttype{`X*#7611`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7679`}([(rt : reftype <: valtype)]))] +[visit_exp `%`_resulttype{`X*#7611`}([(at : addrtype <: valtype)])] +[visit_exp `X*#7611`] +[visit_id X*#7611] +[visit_exp ([(at : addrtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#7679`}([(rt : reftype <: valtype)])] +[visit_exp `X*#7679`] +[visit_id X*#7679] +[visit_exp ([(rt : reftype <: valtype)])] +[visit_exp [(rt : reftype <: valtype)]] +[visit_exp (rt : reftype <: valtype)] +[visit_exp rt] +[visit_id rt] +[visit_exp (C.`TABLES`_context{`tabletype*#9`}[x!`%`_idx{i#7491}.0] = `%%%`_tabletype{addrtype#465, limits#465, reftype#417}(at, lim, rt))] +[visit_exp C.`TABLES`_context{`tabletype*#9`}[x!`%`_idx{i#7491}.0]] +[visit_exp C.`TABLES`_context{`tabletype*#9`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tabletype*#9`] +[visit_id tabletype*#9] +[visit_exp x!`%`_idx{i#7491}.0] +[visit_exp x!`%`_idx{i#7491}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7491] +[visit_id i#7491] +[visit_exp `%%%`_tabletype{addrtype#465, limits#465, reftype#417}(at, lim, rt)] +[visit_exp addrtype#465] +[visit_id addrtype#465] +[visit_exp limits#465] +[visit_id limits#465] +[visit_exp reftype#417] +[visit_id reftype#417] +[visit_exp (at, lim, rt)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp rt] +[visit_id rt] not free +[check_dims] C X*#7700 X*#7749 addrtype#477 at i#7515 lim limits#477 localidx*#1019 reftype#429 resulttype#1695 rt tableidx#32 tabletype*#10 x +[visit_exp C] +[visit_id C] +[visit_exp `TABLE.SET`_instr{tableidx#32}(x)] +[visit_exp tableidx#32] +[visit_id tableidx#32] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1695, `localidx*#1019`}(`%`_resulttype{`X*#7700`}([(at : addrtype <: valtype) (rt : reftype <: valtype)]), [], `%`_resulttype{`X*#7749`}([]))] +[visit_exp resulttype#1695] +[visit_id resulttype#1695] +[visit_exp `localidx*#1019`] +[visit_id localidx*#1019] +[visit_exp (`%`_resulttype{`X*#7700`}([(at : addrtype <: valtype) (rt : reftype <: valtype)]), [], `%`_resulttype{`X*#7749`}([]))] +[visit_exp `%`_resulttype{`X*#7700`}([(at : addrtype <: valtype) (rt : reftype <: valtype)])] +[visit_exp `X*#7700`] +[visit_id X*#7700] +[visit_exp ([(at : addrtype <: valtype) (rt : reftype <: valtype)])] +[visit_exp [(at : addrtype <: valtype) (rt : reftype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp (rt : reftype <: valtype)] +[visit_exp rt] +[visit_id rt] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#7749`}([])] +[visit_exp `X*#7749`] +[visit_id X*#7749] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`TABLES`_context{`tabletype*#10`}[x!`%`_idx{i#7515}.0] = `%%%`_tabletype{addrtype#477, limits#477, reftype#429}(at, lim, rt))] +[visit_exp C.`TABLES`_context{`tabletype*#10`}[x!`%`_idx{i#7515}.0]] +[visit_exp C.`TABLES`_context{`tabletype*#10`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tabletype*#10`] +[visit_id tabletype*#10] +[visit_exp x!`%`_idx{i#7515}.0] +[visit_exp x!`%`_idx{i#7515}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7515] +[visit_id i#7515] +[visit_exp `%%%`_tabletype{addrtype#477, limits#477, reftype#429}(at, lim, rt)] +[visit_exp addrtype#477] +[visit_id addrtype#477] +[visit_exp limits#477] +[visit_id limits#477] +[visit_exp reftype#429] +[visit_id reftype#429] +[visit_exp (at, lim, rt)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp rt] +[visit_id rt] not free +[check_dims] C X*#7770 X*#7819 addrtype#489 at i#7539 lim limits#489 localidx*#1031 reftype#441 resulttype#1715 rt tableidx#34 tabletype*#11 x +[visit_exp C] +[visit_id C] +[visit_exp `TABLE.SIZE`_instr{tableidx#34}(x)] +[visit_exp tableidx#34] +[visit_id tableidx#34] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1715, `localidx*#1031`}(`%`_resulttype{`X*#7770`}([]), [], `%`_resulttype{`X*#7819`}([(at : addrtype <: valtype)]))] +[visit_exp resulttype#1715] +[visit_id resulttype#1715] +[visit_exp `localidx*#1031`] +[visit_id localidx*#1031] +[visit_exp (`%`_resulttype{`X*#7770`}([]), [], `%`_resulttype{`X*#7819`}([(at : addrtype <: valtype)]))] +[visit_exp `%`_resulttype{`X*#7770`}([])] +[visit_exp `X*#7770`] +[visit_id X*#7770] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#7819`}([(at : addrtype <: valtype)])] +[visit_exp `X*#7819`] +[visit_id X*#7819] +[visit_exp ([(at : addrtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp (C.`TABLES`_context{`tabletype*#11`}[x!`%`_idx{i#7539}.0] = `%%%`_tabletype{addrtype#489, limits#489, reftype#441}(at, lim, rt))] +[visit_exp C.`TABLES`_context{`tabletype*#11`}[x!`%`_idx{i#7539}.0]] +[visit_exp C.`TABLES`_context{`tabletype*#11`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tabletype*#11`] +[visit_id tabletype*#11] +[visit_exp x!`%`_idx{i#7539}.0] +[visit_exp x!`%`_idx{i#7539}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7539] +[visit_id i#7539] +[visit_exp `%%%`_tabletype{addrtype#489, limits#489, reftype#441}(at, lim, rt)] +[visit_exp addrtype#489] +[visit_id addrtype#489] +[visit_exp limits#489] +[visit_id limits#489] +[visit_exp reftype#441] +[visit_id reftype#441] +[visit_exp (at, lim, rt)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp rt] +[visit_id rt] +[check_dims] C X*#7840 X*#7889 addrtype#501 at i#7563 lim limits#501 localidx*#1043 reftype#453 resulttype#1735 rt tableidx#36 tabletype*#12 x +[visit_exp C] +[visit_id C] +[visit_exp `TABLE.GROW`_instr{tableidx#36}(x)] +[visit_exp tableidx#36] +[visit_id tableidx#36] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1735, `localidx*#1043`}(`%`_resulttype{`X*#7840`}([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7889`}([`I32`_valtype]))] +[visit_exp resulttype#1735] +[visit_id resulttype#1735] +[visit_exp `localidx*#1043`] +[visit_id localidx*#1043] +[visit_exp (`%`_resulttype{`X*#7840`}([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7889`}([`I32`_valtype]))] +[visit_exp `%`_resulttype{`X*#7840`}([(rt : reftype <: valtype) (at : addrtype <: valtype)])] +[visit_exp `X*#7840`] +[visit_id X*#7840] +[visit_exp ([(rt : reftype <: valtype) (at : addrtype <: valtype)])] +[visit_exp [(rt : reftype <: valtype) (at : addrtype <: valtype)]] +[visit_exp (rt : reftype <: valtype)] +[visit_exp rt] +[visit_id rt] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#7889`}([`I32`_valtype])] +[visit_exp `X*#7889`] +[visit_id X*#7889] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp (C.`TABLES`_context{`tabletype*#12`}[x!`%`_idx{i#7563}.0] = `%%%`_tabletype{addrtype#501, limits#501, reftype#453}(at, lim, rt))] +[visit_exp C.`TABLES`_context{`tabletype*#12`}[x!`%`_idx{i#7563}.0]] +[visit_exp C.`TABLES`_context{`tabletype*#12`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tabletype*#12`] +[visit_id tabletype*#12] +[visit_exp x!`%`_idx{i#7563}.0] +[visit_exp x!`%`_idx{i#7563}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7563] +[visit_id i#7563] +[visit_exp `%%%`_tabletype{addrtype#501, limits#501, reftype#453}(at, lim, rt)] +[visit_exp addrtype#501] +[visit_id addrtype#501] +[visit_exp limits#501] +[visit_id limits#501] +[visit_exp reftype#453] +[visit_id reftype#453] +[visit_exp (at, lim, rt)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp rt] +[visit_id rt] not free +[check_dims] C X*#7910 X*#7959 addrtype#513 at i#7587 lim limits#513 localidx*#1055 reftype#465 resulttype#1755 rt tableidx#38 tabletype*#13 x +[visit_exp C] +[visit_id C] +[visit_exp `TABLE.FILL`_instr{tableidx#38}(x)] +[visit_exp tableidx#38] +[visit_id tableidx#38] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1755, `localidx*#1055`}(`%`_resulttype{`X*#7910`}([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7959`}([]))] +[visit_exp resulttype#1755] +[visit_id resulttype#1755] +[visit_exp `localidx*#1055`] +[visit_id localidx*#1055] +[visit_exp (`%`_resulttype{`X*#7910`}([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7959`}([]))] +[visit_exp `%`_resulttype{`X*#7910`}([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)])] +[visit_exp `X*#7910`] +[visit_id X*#7910] +[visit_exp ([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp (rt : reftype <: valtype)] +[visit_exp rt] +[visit_id rt] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#7959`}([])] +[visit_exp `X*#7959`] +[visit_id X*#7959] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`TABLES`_context{`tabletype*#13`}[x!`%`_idx{i#7587}.0] = `%%%`_tabletype{addrtype#513, limits#513, reftype#465}(at, lim, rt))] +[visit_exp C.`TABLES`_context{`tabletype*#13`}[x!`%`_idx{i#7587}.0]] +[visit_exp C.`TABLES`_context{`tabletype*#13`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tabletype*#13`] +[visit_id tabletype*#13] +[visit_exp x!`%`_idx{i#7587}.0] +[visit_exp x!`%`_idx{i#7587}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7587] +[visit_id i#7587] +[visit_exp `%%%`_tabletype{addrtype#513, limits#513, reftype#465}(at, lim, rt)] +[visit_exp addrtype#513] +[visit_id addrtype#513] +[visit_exp limits#513] +[visit_id limits#513] +[visit_exp reftype#465] +[visit_id reftype#465] +[visit_exp (at, lim, rt)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp rt] +[visit_id rt] not free +[check_dims] C X*#7980 X*#8029 addrtype#525 addrtype#537 at_1 at_2 i#7625 i#7635 lim_1 lim_2 limits#525 limits#537 localidx*#1067 reftype#477 reftype#489 resulttype#1775 rt_1 rt_2 tableidx#40 tabletype*#14 tabletype*#15 x_1 x_2 +[visit_exp C] +[visit_id C] +[visit_exp `TABLE.COPY`_instr{tableidx#40}(x_1, x_2)] +[visit_exp tableidx#40] +[visit_id tableidx#40] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp `%->_%%`_instrtype{resulttype#1775, `localidx*#1067`}(`%`_resulttype{`X*#7980`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype{`X*#8029`}([]))] +[visit_exp resulttype#1775] +[visit_id resulttype#1775] +[visit_exp `localidx*#1067`] +[visit_id localidx*#1067] +[visit_exp (`%`_resulttype{`X*#7980`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype{`X*#8029`}([]))] +[visit_exp `%`_resulttype{`X*#7980`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] +[visit_exp `X*#7980`] +[visit_id X*#7980] +[visit_exp ([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] +[visit_exp [(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]] +[visit_exp (at_1 : addrtype <: valtype)] +[visit_exp at_1] +[visit_id at_1] +[visit_exp (at_2 : addrtype <: valtype)] +[visit_exp at_2] +[visit_id at_2] +[visit_exp ($minat(at_1, at_2) : addrtype <: valtype)] +[visit_exp $minat(at_1, at_2)] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp at_2] +[visit_id at_2] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8029`}([])] +[visit_exp `X*#8029`] +[visit_id X*#8029] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`TABLES`_context{`tabletype*#14`}[x_1!`%`_idx{i#7625}.0] = `%%%`_tabletype{addrtype#525, limits#525, reftype#477}(at_1, lim_1, rt_1))] +[visit_exp C.`TABLES`_context{`tabletype*#14`}[x_1!`%`_idx{i#7625}.0]] +[visit_exp C.`TABLES`_context{`tabletype*#14`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tabletype*#14`] +[visit_id tabletype*#14] +[visit_exp x_1!`%`_idx{i#7625}.0] +[visit_exp x_1!`%`_idx{i#7625}] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp i#7625] +[visit_id i#7625] +[visit_exp `%%%`_tabletype{addrtype#525, limits#525, reftype#477}(at_1, lim_1, rt_1)] +[visit_exp addrtype#525] +[visit_id addrtype#525] +[visit_exp limits#525] +[visit_id limits#525] +[visit_exp reftype#477] +[visit_id reftype#477] +[visit_exp (at_1, lim_1, rt_1)] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp lim_1] +[visit_id lim_1] +[visit_exp rt_1] +[visit_id rt_1] +[visit_exp (C.`TABLES`_context{`tabletype*#15`}[x_2!`%`_idx{i#7635}.0] = `%%%`_tabletype{addrtype#537, limits#537, reftype#489}(at_2, lim_2, rt_2))] +[visit_exp C.`TABLES`_context{`tabletype*#15`}[x_2!`%`_idx{i#7635}.0]] +[visit_exp C.`TABLES`_context{`tabletype*#15`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tabletype*#15`] +[visit_id tabletype*#15] +[visit_exp x_2!`%`_idx{i#7635}.0] +[visit_exp x_2!`%`_idx{i#7635}] +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp i#7635] +[visit_id i#7635] +[visit_exp `%%%`_tabletype{addrtype#537, limits#537, reftype#489}(at_2, lim_2, rt_2)] +[visit_exp addrtype#537] +[visit_id addrtype#537] +[visit_exp limits#537] +[visit_id limits#537] +[visit_exp reftype#489] +[visit_id reftype#489] +[visit_exp (at_2, lim_2, rt_2)] +[visit_exp at_2] +[visit_id at_2] not free +[visit_exp lim_2] +[visit_id lim_2] +[visit_exp rt_2] +[visit_id rt_2] +[visit_exp (C, rt_2, rt_1)] +[visit_exp C] +[visit_id C] not free +[visit_exp rt_2] +[visit_id rt_2] not free +[visit_exp rt_1] +[visit_id rt_1] not free +[check_dims] C X*#8050 X*#8099 addrtype#549 at elemidx#13 elemtype*#9 i#7673 i#7683 lim limits#549 localidx*#1079 reftype#501 resulttype#1795 rt_1 rt_2 tableidx#43 tabletype*#16 x y +[visit_exp C] +[visit_id C] +[visit_exp `TABLE.INIT`_instr{tableidx#43, elemidx#13}(x, y)] +[visit_exp tableidx#43] +[visit_id tableidx#43] +[visit_exp elemidx#13] +[visit_id elemidx#13] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp `%->_%%`_instrtype{resulttype#1795, `localidx*#1079`}(`%`_resulttype{`X*#8050`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#8099`}([]))] +[visit_exp resulttype#1795] +[visit_id resulttype#1795] +[visit_exp `localidx*#1079`] +[visit_id localidx*#1079] +[visit_exp (`%`_resulttype{`X*#8050`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#8099`}([]))] +[visit_exp `%`_resulttype{`X*#8050`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] +[visit_exp `X*#8050`] +[visit_id X*#8050] +[visit_exp ([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] +[visit_exp [(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8099`}([])] +[visit_exp `X*#8099`] +[visit_id X*#8099] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`TABLES`_context{`tabletype*#16`}[x!`%`_idx{i#7673}.0] = `%%%`_tabletype{addrtype#549, limits#549, reftype#501}(at, lim, rt_1))] +[visit_exp C.`TABLES`_context{`tabletype*#16`}[x!`%`_idx{i#7673}.0]] +[visit_exp C.`TABLES`_context{`tabletype*#16`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tabletype*#16`] +[visit_id tabletype*#16] +[visit_exp x!`%`_idx{i#7673}.0] +[visit_exp x!`%`_idx{i#7673}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7673] +[visit_id i#7673] +[visit_exp `%%%`_tabletype{addrtype#549, limits#549, reftype#501}(at, lim, rt_1)] +[visit_exp addrtype#549] +[visit_id addrtype#549] +[visit_exp limits#549] +[visit_id limits#549] +[visit_exp reftype#501] +[visit_id reftype#501] +[visit_exp (at, lim, rt_1)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp rt_1] +[visit_id rt_1] +[visit_exp (C.`ELEMS`_context{`elemtype*#9`}[y!`%`_idx{i#7683}.0] = rt_2)] +[visit_exp C.`ELEMS`_context{`elemtype*#9`}[y!`%`_idx{i#7683}.0]] +[visit_exp C.`ELEMS`_context{`elemtype*#9`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `elemtype*#9`] +[visit_id elemtype*#9] +[visit_exp y!`%`_idx{i#7683}.0] +[visit_exp y!`%`_idx{i#7683}] +[visit_exp y] +[visit_id y] not free +[visit_exp i#7683] +[visit_id i#7683] +[visit_exp rt_2] +[visit_id rt_2] +[visit_exp (C, rt_2, rt_1)] +[visit_exp C] +[visit_id C] not free +[visit_exp rt_2] +[visit_id rt_2] not free +[visit_exp rt_1] +[visit_id rt_1] not free +[check_dims] C X*#8120 X*#8169 elemidx#15 elemtype*#10 i#7707 localidx*#1091 resulttype#1815 rt x +[visit_exp C] +[visit_id C] +[visit_exp `ELEM.DROP`_instr{elemidx#15}(x)] +[visit_exp elemidx#15] +[visit_id elemidx#15] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1815, `localidx*#1091`}(`%`_resulttype{`X*#8120`}([]), [], `%`_resulttype{`X*#8169`}([]))] +[visit_exp resulttype#1815] +[visit_id resulttype#1815] +[visit_exp `localidx*#1091`] +[visit_id localidx*#1091] +[visit_exp (`%`_resulttype{`X*#8120`}([]), [], `%`_resulttype{`X*#8169`}([]))] +[visit_exp `%`_resulttype{`X*#8120`}([])] +[visit_exp `X*#8120`] +[visit_id X*#8120] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8169`}([])] +[visit_exp `X*#8169`] +[visit_id X*#8169] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`ELEMS`_context{`elemtype*#10`}[x!`%`_idx{i#7707}.0] = rt)] +[visit_exp C.`ELEMS`_context{`elemtype*#10`}[x!`%`_idx{i#7707}.0]] +[visit_exp C.`ELEMS`_context{`elemtype*#10`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `elemtype*#10`] +[visit_id elemtype*#10] +[visit_exp x!`%`_idx{i#7707}.0] +[visit_exp x!`%`_idx{i#7707}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7707] +[visit_id i#7707] +[visit_exp rt] +[visit_id rt] +[check_dims] +[check_dims] N at i#7729 i#7751 m n u32#14 u64#230 +[visit_exp {`ALIGN`{u32#14} `%`_u32{i#7729}(n), `OFFSET`{u64#230} `%`_u64{i#7751}(m)}] +[visit_exp u32#14] +[visit_id u32#14] +[visit_exp `%`_u32{i#7729}(n)] +[visit_exp i#7729] +[visit_id i#7729] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp u64#230] +[visit_id u64#230] +[visit_exp `%`_u64{i#7751}(m)] +[visit_exp i#7751] +[visit_id i#7751] +[visit_exp (m)] +[visit_exp m] +[visit_id m] +[visit_exp at] +[visit_id at] +[visit_exp N] +[visit_id N] +[visit_exp (((2 ^ n) : nat <:> rat) <= ((N : nat <:> rat) / (8 : nat <:> rat)))] +[visit_exp ((2 ^ n) : nat <:> rat)] +[visit_exp (2 ^ n)] +[visit_exp 2] +[visit_exp n] +[visit_id n] not free +[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp (m < (2 ^ $size((at : addrtype <: numtype))))] +[visit_exp m] +[visit_id m] not free +[visit_exp (2 ^ $size((at : addrtype <: numtype)))] +[visit_exp 2] +[visit_exp $size((at : addrtype <: numtype))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[check_dims] C X*#8190 X*#8239 addrtype#561 at i#7775 lim limits#561 localidx*#1103 memidx#30 memtype*#7 resulttype#1835 x +[visit_exp C] +[visit_id C] +[visit_exp `MEMORY.SIZE`_instr{memidx#30}(x)] +[visit_exp memidx#30] +[visit_id memidx#30] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1835, `localidx*#1103`}(`%`_resulttype{`X*#8190`}([]), [], `%`_resulttype{`X*#8239`}([(at : addrtype <: valtype)]))] +[visit_exp resulttype#1835] +[visit_id resulttype#1835] +[visit_exp `localidx*#1103`] +[visit_id localidx*#1103] +[visit_exp (`%`_resulttype{`X*#8190`}([]), [], `%`_resulttype{`X*#8239`}([(at : addrtype <: valtype)]))] +[visit_exp `%`_resulttype{`X*#8190`}([])] +[visit_exp `X*#8190`] +[visit_id X*#8190] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8239`}([(at : addrtype <: valtype)])] +[visit_exp `X*#8239`] +[visit_id X*#8239] +[visit_exp ([(at : addrtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp (C.`MEMS`_context{`memtype*#7`}[x!`%`_idx{i#7775}.0] = `%%PAGE`_memtype{addrtype#561, limits#561}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#7`}[x!`%`_idx{i#7775}.0]] +[visit_exp C.`MEMS`_context{`memtype*#7`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#7`] +[visit_id memtype*#7] +[visit_exp x!`%`_idx{i#7775}.0] +[visit_exp x!`%`_idx{i#7775}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7775] +[visit_id i#7775] +[visit_exp `%%PAGE`_memtype{addrtype#561, limits#561}(at, lim)] +[visit_exp addrtype#561] +[visit_id addrtype#561] +[visit_exp limits#561] +[visit_id limits#561] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[check_dims] C X*#8250 X*#8318 addrtype#573 at i#7799 lim limits#573 localidx*#1115 memidx#32 memtype*#8 resulttype#1855 x +[visit_exp C] +[visit_id C] +[visit_exp `MEMORY.GROW`_instr{memidx#32}(x)] +[visit_exp memidx#32] +[visit_id memidx#32] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1855, `localidx*#1115`}(`%`_resulttype{`X*#8250`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8318`}([(at : addrtype <: valtype)]))] +[visit_exp resulttype#1855] +[visit_id resulttype#1855] +[visit_exp `localidx*#1115`] +[visit_id localidx*#1115] +[visit_exp (`%`_resulttype{`X*#8250`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8318`}([(at : addrtype <: valtype)]))] +[visit_exp `%`_resulttype{`X*#8250`}([(at : addrtype <: valtype)])] +[visit_exp `X*#8250`] +[visit_id X*#8250] +[visit_exp ([(at : addrtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8318`}([(at : addrtype <: valtype)])] +[visit_exp `X*#8318`] +[visit_id X*#8318] +[visit_exp ([(at : addrtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp (C.`MEMS`_context{`memtype*#8`}[x!`%`_idx{i#7799}.0] = `%%PAGE`_memtype{addrtype#573, limits#573}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#8`}[x!`%`_idx{i#7799}.0]] +[visit_exp C.`MEMS`_context{`memtype*#8`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#8`] +[visit_id memtype*#8] +[visit_exp x!`%`_idx{i#7799}.0] +[visit_exp x!`%`_idx{i#7799}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7799] +[visit_id i#7799] +[visit_exp `%%PAGE`_memtype{addrtype#573, limits#573}(at, lim)] +[visit_exp addrtype#573] +[visit_id addrtype#573] +[visit_exp limits#573] +[visit_id limits#573] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[check_dims] C X*#8339 X*#8388 addrtype#585 at i#7823 lim limits#585 localidx*#1127 memidx#34 memtype*#9 resulttype#1875 x +[visit_exp C] +[visit_id C] +[visit_exp `MEMORY.FILL`_instr{memidx#34}(x)] +[visit_exp memidx#34] +[visit_id memidx#34] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1875, `localidx*#1127`}(`%`_resulttype{`X*#8339`}([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8388`}([]))] +[visit_exp resulttype#1875] +[visit_id resulttype#1875] +[visit_exp `localidx*#1127`] +[visit_id localidx*#1127] +[visit_exp (`%`_resulttype{`X*#8339`}([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8388`}([]))] +[visit_exp `%`_resulttype{`X*#8339`}([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)])] +[visit_exp `X*#8339`] +[visit_id X*#8339] +[visit_exp ([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8388`}([])] +[visit_exp `X*#8388`] +[visit_id X*#8388] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`MEMS`_context{`memtype*#9`}[x!`%`_idx{i#7823}.0] = `%%PAGE`_memtype{addrtype#585, limits#585}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#9`}[x!`%`_idx{i#7823}.0]] +[visit_exp C.`MEMS`_context{`memtype*#9`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#9`] +[visit_id memtype*#9] +[visit_exp x!`%`_idx{i#7823}.0] +[visit_exp x!`%`_idx{i#7823}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7823] +[visit_id i#7823] +[visit_exp `%%PAGE`_memtype{addrtype#585, limits#585}(at, lim)] +[visit_exp addrtype#585] +[visit_id addrtype#585] +[visit_exp limits#585] +[visit_id limits#585] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[check_dims] C X*#8409 X*#8458 addrtype#597 addrtype#609 at_1 at_2 i#7861 i#7871 lim_1 lim_2 limits#597 limits#609 localidx*#1139 memidx#36 memtype*#10 memtype*#11 resulttype#1895 x_1 x_2 +[visit_exp C] +[visit_id C] +[visit_exp `MEMORY.COPY`_instr{memidx#36}(x_1, x_2)] +[visit_exp memidx#36] +[visit_id memidx#36] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp `%->_%%`_instrtype{resulttype#1895, `localidx*#1139`}(`%`_resulttype{`X*#8409`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype{`X*#8458`}([]))] +[visit_exp resulttype#1895] +[visit_id resulttype#1895] +[visit_exp `localidx*#1139`] +[visit_id localidx*#1139] +[visit_exp (`%`_resulttype{`X*#8409`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype{`X*#8458`}([]))] +[visit_exp `%`_resulttype{`X*#8409`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] +[visit_exp `X*#8409`] +[visit_id X*#8409] +[visit_exp ([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] +[visit_exp [(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]] +[visit_exp (at_1 : addrtype <: valtype)] +[visit_exp at_1] +[visit_id at_1] +[visit_exp (at_2 : addrtype <: valtype)] +[visit_exp at_2] +[visit_id at_2] +[visit_exp ($minat(at_1, at_2) : addrtype <: valtype)] +[visit_exp $minat(at_1, at_2)] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp at_2] +[visit_id at_2] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8458`}([])] +[visit_exp `X*#8458`] +[visit_id X*#8458] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`MEMS`_context{`memtype*#10`}[x_1!`%`_idx{i#7861}.0] = `%%PAGE`_memtype{addrtype#597, limits#597}(at_1, lim_1))] +[visit_exp C.`MEMS`_context{`memtype*#10`}[x_1!`%`_idx{i#7861}.0]] +[visit_exp C.`MEMS`_context{`memtype*#10`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#10`] +[visit_id memtype*#10] +[visit_exp x_1!`%`_idx{i#7861}.0] +[visit_exp x_1!`%`_idx{i#7861}] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp i#7861] +[visit_id i#7861] +[visit_exp `%%PAGE`_memtype{addrtype#597, limits#597}(at_1, lim_1)] +[visit_exp addrtype#597] +[visit_id addrtype#597] +[visit_exp limits#597] +[visit_id limits#597] +[visit_exp (at_1, lim_1)] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp lim_1] +[visit_id lim_1] +[visit_exp (C.`MEMS`_context{`memtype*#11`}[x_2!`%`_idx{i#7871}.0] = `%%PAGE`_memtype{addrtype#609, limits#609}(at_2, lim_2))] +[visit_exp C.`MEMS`_context{`memtype*#11`}[x_2!`%`_idx{i#7871}.0]] +[visit_exp C.`MEMS`_context{`memtype*#11`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#11`] +[visit_id memtype*#11] +[visit_exp x_2!`%`_idx{i#7871}.0] +[visit_exp x_2!`%`_idx{i#7871}] +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp i#7871] +[visit_id i#7871] +[visit_exp `%%PAGE`_memtype{addrtype#609, limits#609}(at_2, lim_2)] +[visit_exp addrtype#609] +[visit_id addrtype#609] +[visit_exp limits#609] +[visit_id limits#609] +[visit_exp (at_2, lim_2)] +[visit_exp at_2] +[visit_id at_2] not free +[visit_exp lim_2] +[visit_id lim_2] +[check_dims] C X*#8479 X*#8528 addrtype#621 at dataidx#13 datatype*#9 i#7909 i#7919 lim limits#621 localidx*#1151 memidx#39 memtype*#12 resulttype#1915 x y +[visit_exp C] +[visit_id C] +[visit_exp `MEMORY.INIT`_instr{memidx#39, dataidx#13}(x, y)] +[visit_exp memidx#39] +[visit_id memidx#39] +[visit_exp dataidx#13] +[visit_id dataidx#13] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp `%->_%%`_instrtype{resulttype#1915, `localidx*#1151`}(`%`_resulttype{`X*#8479`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#8528`}([]))] +[visit_exp resulttype#1915] +[visit_id resulttype#1915] +[visit_exp `localidx*#1151`] +[visit_id localidx*#1151] +[visit_exp (`%`_resulttype{`X*#8479`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#8528`}([]))] +[visit_exp `%`_resulttype{`X*#8479`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] +[visit_exp `X*#8479`] +[visit_id X*#8479] +[visit_exp ([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] +[visit_exp [(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8528`}([])] +[visit_exp `X*#8528`] +[visit_id X*#8528] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`MEMS`_context{`memtype*#12`}[x!`%`_idx{i#7909}.0] = `%%PAGE`_memtype{addrtype#621, limits#621}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#12`}[x!`%`_idx{i#7909}.0]] +[visit_exp C.`MEMS`_context{`memtype*#12`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#12`] +[visit_id memtype*#12] +[visit_exp x!`%`_idx{i#7909}.0] +[visit_exp x!`%`_idx{i#7909}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7909] +[visit_id i#7909] +[visit_exp `%%PAGE`_memtype{addrtype#621, limits#621}(at, lim)] +[visit_exp addrtype#621] +[visit_id addrtype#621] +[visit_exp limits#621] +[visit_id limits#621] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp (C.`DATAS`_context{`datatype*#9`}[y!`%`_idx{i#7919}.0] = `OK`_datatype)] +[visit_exp C.`DATAS`_context{`datatype*#9`}[y!`%`_idx{i#7919}.0]] +[visit_exp C.`DATAS`_context{`datatype*#9`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `datatype*#9`] +[visit_id datatype*#9] +[visit_exp y!`%`_idx{i#7919}.0] +[visit_exp y!`%`_idx{i#7919}] +[visit_exp y] +[visit_id y] not free +[visit_exp i#7919] +[visit_id i#7919] +[visit_exp `OK`_datatype] +[visit_exp ()] +[check_dims] C X*#8549 X*#8598 dataidx#15 datatype*#10 i#7943 localidx*#1163 resulttype#1935 x +[visit_exp C] +[visit_id C] +[visit_exp `DATA.DROP`_instr{dataidx#15}(x)] +[visit_exp dataidx#15] +[visit_id dataidx#15] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#1935, `localidx*#1163`}(`%`_resulttype{`X*#8549`}([]), [], `%`_resulttype{`X*#8598`}([]))] +[visit_exp resulttype#1935] +[visit_id resulttype#1935] +[visit_exp `localidx*#1163`] +[visit_id localidx*#1163] +[visit_exp (`%`_resulttype{`X*#8549`}([]), [], `%`_resulttype{`X*#8598`}([]))] +[visit_exp `%`_resulttype{`X*#8549`}([])] +[visit_exp `X*#8549`] +[visit_id X*#8549] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8598`}([])] +[visit_exp `X*#8598`] +[visit_id X*#8598] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`DATAS`_context{`datatype*#10`}[x!`%`_idx{i#7943}.0] = `OK`_datatype)] +[visit_exp C.`DATAS`_context{`datatype*#10`}[x!`%`_idx{i#7943}.0]] +[visit_exp C.`DATAS`_context{`datatype*#10`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `datatype*#10`] +[visit_id datatype*#10] +[visit_exp x!`%`_idx{i#7943}.0] +[visit_exp x!`%`_idx{i#7943}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7943] +[visit_id i#7943] +[visit_exp `OK`_datatype] +[visit_exp ()] +[check_dims] C X*#8609 X*#8677 addrtype#633 at i#7967 lim limits#633 localidx*#1175 memarg memarg#13 memidx#41 memtype*#13 nt numtype?#3 resulttype#1955 x +[visit_exp C] +[visit_id C] +[visit_exp `LOAD`_instr{`numtype?#3`, memidx#41, memarg#13}(nt, ?(), x, memarg)] +[visit_exp `numtype?#3`] +[visit_id numtype?#3] +[visit_exp memidx#41] +[visit_id memidx#41] +[visit_exp memarg#13] +[visit_id memarg#13] +[visit_exp (nt, ?(), x, memarg)] +[visit_exp nt] +[visit_id nt] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp memarg] +[visit_id memarg] +[visit_exp `%->_%%`_instrtype{resulttype#1955, `localidx*#1175`}(`%`_resulttype{`X*#8609`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8677`}([(nt : numtype <: valtype)]))] +[visit_exp resulttype#1955] +[visit_id resulttype#1955] +[visit_exp `localidx*#1175`] +[visit_id localidx*#1175] +[visit_exp (`%`_resulttype{`X*#8609`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8677`}([(nt : numtype <: valtype)]))] +[visit_exp `%`_resulttype{`X*#8609`}([(at : addrtype <: valtype)])] +[visit_exp `X*#8609`] +[visit_id X*#8609] +[visit_exp ([(at : addrtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8677`}([(nt : numtype <: valtype)])] +[visit_exp `X*#8677`] +[visit_id X*#8677] +[visit_exp ([(nt : numtype <: valtype)])] +[visit_exp [(nt : numtype <: valtype)]] +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp (C.`MEMS`_context{`memtype*#13`}[x!`%`_idx{i#7967}.0] = `%%PAGE`_memtype{addrtype#633, limits#633}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#13`}[x!`%`_idx{i#7967}.0]] +[visit_exp C.`MEMS`_context{`memtype*#13`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#13`] +[visit_id memtype*#13] +[visit_exp x!`%`_idx{i#7967}.0] +[visit_exp x!`%`_idx{i#7967}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#7967] +[visit_id i#7967] +[visit_exp `%%PAGE`_memtype{addrtype#633, limits#633}(at, lim)] +[visit_exp addrtype#633] +[visit_id addrtype#633] +[visit_exp limits#633] +[visit_id limits#633] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp (memarg, at, $size(nt))] +[visit_exp memarg] +[visit_id memarg] not free +[visit_exp at] +[visit_id at] not free +[visit_exp $size(nt)] +[visit_exp nt] +[visit_id nt] not free +[check_dims] C Inn M X*#8688 X*#8756 addrtype#645 at i#7993 i#8000 i#8024 lim limits#645 localidx*#1187 memarg memarg#15 memidx#43 memtype*#14 numtype?#4 resulttype#1975 sx sx#7 sz#5 x +[visit_exp C] +[visit_id C] +[visit_exp `LOAD`_instr{`numtype?#4`, memidx#43, memarg#15}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#5, sx#7, i#7993}(`%`_sz{i#8000}(M), sx)), x, memarg)] +[visit_exp `numtype?#4`] +[visit_id numtype?#4] +[visit_exp memidx#43] +[visit_id memidx#43] +[visit_exp memarg#15] +[visit_id memarg#15] +[visit_exp ((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#5, sx#7, i#7993}(`%`_sz{i#8000}(M), sx)), x, memarg)] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp ?(`%_%`_loadop_{sz#5, sx#7, i#7993}(`%`_sz{i#8000}(M), sx))] +[visit_exp `%_%`_loadop_{sz#5, sx#7, i#7993}(`%`_sz{i#8000}(M), sx)] +[visit_exp sz#5] +[visit_id sz#5] +[visit_exp sx#7] +[visit_id sx#7] +[visit_exp i#7993] +[visit_id i#7993] +[visit_exp (`%`_sz{i#8000}(M), sx)] +[visit_exp `%`_sz{i#8000}(M)] +[visit_exp i#8000] +[visit_id i#8000] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp sx] +[visit_id sx] +[visit_exp x] +[visit_id x] +[visit_exp memarg] +[visit_id memarg] +[visit_exp `%->_%%`_instrtype{resulttype#1975, `localidx*#1187`}(`%`_resulttype{`X*#8688`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8756`}([(Inn : Inn <: valtype)]))] +[visit_exp resulttype#1975] +[visit_id resulttype#1975] +[visit_exp `localidx*#1187`] +[visit_id localidx*#1187] +[visit_exp (`%`_resulttype{`X*#8688`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8756`}([(Inn : Inn <: valtype)]))] +[visit_exp `%`_resulttype{`X*#8688`}([(at : addrtype <: valtype)])] +[visit_exp `X*#8688`] +[visit_id X*#8688] +[visit_exp ([(at : addrtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8756`}([(Inn : Inn <: valtype)])] +[visit_exp `X*#8756`] +[visit_id X*#8756] +[visit_exp ([(Inn : Inn <: valtype)])] +[visit_exp [(Inn : Inn <: valtype)]] +[visit_exp (Inn : Inn <: valtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp (C.`MEMS`_context{`memtype*#14`}[x!`%`_idx{i#8024}.0] = `%%PAGE`_memtype{addrtype#645, limits#645}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#14`}[x!`%`_idx{i#8024}.0]] +[visit_exp C.`MEMS`_context{`memtype*#14`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#14`] +[visit_id memtype*#14] +[visit_exp x!`%`_idx{i#8024}.0] +[visit_exp x!`%`_idx{i#8024}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#8024] +[visit_id i#8024] +[visit_exp `%%PAGE`_memtype{addrtype#645, limits#645}(at, lim)] +[visit_exp addrtype#645] +[visit_id addrtype#645] +[visit_exp limits#645] +[visit_id limits#645] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp (memarg, at, M)] +[visit_exp memarg] +[visit_id memarg] not free +[visit_exp at] +[visit_id at] not free +[visit_exp M] +[visit_id M] not free +[check_dims] C X*#8777 X*#8826 addrtype#657 at i#8048 lim limits#657 localidx*#1199 memarg memarg#17 memidx#45 memtype*#15 nt numtype?#5 resulttype#1995 x +[visit_exp C] +[visit_id C] +[visit_exp `STORE`_instr{`numtype?#5`, memidx#45, memarg#17}(nt, ?(), x, memarg)] +[visit_exp `numtype?#5`] +[visit_id numtype?#5] +[visit_exp memidx#45] +[visit_id memidx#45] +[visit_exp memarg#17] +[visit_id memarg#17] +[visit_exp (nt, ?(), x, memarg)] +[visit_exp nt] +[visit_id nt] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp memarg] +[visit_id memarg] +[visit_exp `%->_%%`_instrtype{resulttype#1995, `localidx*#1199`}(`%`_resulttype{`X*#8777`}([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#8826`}([]))] +[visit_exp resulttype#1995] +[visit_id resulttype#1995] +[visit_exp `localidx*#1199`] +[visit_id localidx*#1199] +[visit_exp (`%`_resulttype{`X*#8777`}([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#8826`}([]))] +[visit_exp `%`_resulttype{`X*#8777`}([(at : addrtype <: valtype) (nt : numtype <: valtype)])] +[visit_exp `X*#8777`] +[visit_id X*#8777] +[visit_exp ([(at : addrtype <: valtype) (nt : numtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype) (nt : numtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8826`}([])] +[visit_exp `X*#8826`] +[visit_id X*#8826] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`MEMS`_context{`memtype*#15`}[x!`%`_idx{i#8048}.0] = `%%PAGE`_memtype{addrtype#657, limits#657}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#15`}[x!`%`_idx{i#8048}.0]] +[visit_exp C.`MEMS`_context{`memtype*#15`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#15`] +[visit_id memtype*#15] +[visit_exp x!`%`_idx{i#8048}.0] +[visit_exp x!`%`_idx{i#8048}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#8048] +[visit_id i#8048] +[visit_exp `%%PAGE`_memtype{addrtype#657, limits#657}(at, lim)] +[visit_exp addrtype#657] +[visit_id addrtype#657] +[visit_exp limits#657] +[visit_id limits#657] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp (memarg, at, $size(nt))] +[visit_exp memarg] +[visit_id memarg] not free +[visit_exp at] +[visit_id at] not free +[visit_exp $size(nt)] +[visit_exp nt] +[visit_id nt] not free +[check_dims] C Inn M X*#8847 X*#8896 addrtype#669 at i#8091 i#8092 i#8116 lim limits#669 localidx*#1211 memarg memarg#19 memidx#47 memtype*#16 numtype?#6 resulttype#2015 sz#7 x +[visit_exp C] +[visit_id C] +[visit_exp `STORE`_instr{`numtype?#6`, memidx#47, memarg#19}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#7, i#8091}(`%`_sz{i#8092}(M))), x, memarg)] +[visit_exp `numtype?#6`] +[visit_id numtype?#6] +[visit_exp memidx#47] +[visit_id memidx#47] +[visit_exp memarg#19] +[visit_id memarg#19] +[visit_exp ((Inn : Inn <: numtype), ?(`%`_storeop_{sz#7, i#8091}(`%`_sz{i#8092}(M))), x, memarg)] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp ?(`%`_storeop_{sz#7, i#8091}(`%`_sz{i#8092}(M)))] +[visit_exp `%`_storeop_{sz#7, i#8091}(`%`_sz{i#8092}(M))] +[visit_exp sz#7] +[visit_id sz#7] +[visit_exp i#8091] +[visit_id i#8091] +[visit_exp (`%`_sz{i#8092}(M))] +[visit_exp `%`_sz{i#8092}(M)] +[visit_exp i#8092] +[visit_id i#8092] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp x] +[visit_id x] +[visit_exp memarg] +[visit_id memarg] +[visit_exp `%->_%%`_instrtype{resulttype#2015, `localidx*#1211`}(`%`_resulttype{`X*#8847`}([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype{`X*#8896`}([]))] +[visit_exp resulttype#2015] +[visit_id resulttype#2015] +[visit_exp `localidx*#1211`] +[visit_id localidx*#1211] +[visit_exp (`%`_resulttype{`X*#8847`}([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype{`X*#8896`}([]))] +[visit_exp `%`_resulttype{`X*#8847`}([(at : addrtype <: valtype) (Inn : Inn <: valtype)])] +[visit_exp `X*#8847`] +[visit_id X*#8847] +[visit_exp ([(at : addrtype <: valtype) (Inn : Inn <: valtype)])] +[visit_exp [(at : addrtype <: valtype) (Inn : Inn <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp (Inn : Inn <: valtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8896`}([])] +[visit_exp `X*#8896`] +[visit_id X*#8896] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`MEMS`_context{`memtype*#16`}[x!`%`_idx{i#8116}.0] = `%%PAGE`_memtype{addrtype#669, limits#669}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#16`}[x!`%`_idx{i#8116}.0]] +[visit_exp C.`MEMS`_context{`memtype*#16`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#16`] +[visit_id memtype*#16] +[visit_exp x!`%`_idx{i#8116}.0] +[visit_exp x!`%`_idx{i#8116}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#8116] +[visit_id i#8116] +[visit_exp `%%PAGE`_memtype{addrtype#669, limits#669}(at, lim)] +[visit_exp addrtype#669] +[visit_id addrtype#669] +[visit_exp limits#669] +[visit_id limits#669] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp (memarg, at, M)] +[visit_exp memarg] +[visit_id memarg] not free +[visit_exp at] +[visit_id at] not free +[visit_exp M] +[visit_id M] not free +[check_dims] C X*#8907 X*#8975 addrtype#681 at i#8140 lim limits#681 localidx*#1223 memarg memarg#21 memidx#49 memtype*#17 resulttype#2035 vectype?#2 x +[visit_exp C] +[visit_id C] +[visit_exp `VLOAD`_instr{`vectype?#2`, memidx#49, memarg#21}(`V128`_vectype, ?(), x, memarg)] +[visit_exp `vectype?#2`] +[visit_id vectype?#2] +[visit_exp memidx#49] +[visit_id memidx#49] +[visit_exp memarg#21] +[visit_id memarg#21] +[visit_exp (`V128`_vectype, ?(), x, memarg)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp memarg] +[visit_id memarg] +[visit_exp `%->_%%`_instrtype{resulttype#2035, `localidx*#1223`}(`%`_resulttype{`X*#8907`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8975`}([`V128`_valtype]))] +[visit_exp resulttype#2035] +[visit_id resulttype#2035] +[visit_exp `localidx*#1223`] +[visit_id localidx*#1223] +[visit_exp (`%`_resulttype{`X*#8907`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8975`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#8907`}([(at : addrtype <: valtype)])] +[visit_exp `X*#8907`] +[visit_id X*#8907] +[visit_exp ([(at : addrtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#8975`}([`V128`_valtype])] +[visit_exp `X*#8975`] +[visit_id X*#8975] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp (C.`MEMS`_context{`memtype*#17`}[x!`%`_idx{i#8140}.0] = `%%PAGE`_memtype{addrtype#681, limits#681}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#17`}[x!`%`_idx{i#8140}.0]] +[visit_exp C.`MEMS`_context{`memtype*#17`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#17`] +[visit_id memtype*#17] +[visit_exp x!`%`_idx{i#8140}.0] +[visit_exp x!`%`_idx{i#8140}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#8140] +[visit_id i#8140] +[visit_exp `%%PAGE`_memtype{addrtype#681, limits#681}(at, lim)] +[visit_exp addrtype#681] +[visit_id addrtype#681] +[visit_exp limits#681] +[visit_id limits#681] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp (memarg, at, $vsize(`V128`_vectype))] +[visit_exp memarg] +[visit_id memarg] not free +[visit_exp at] +[visit_id at] not free +[visit_exp $vsize(`V128`_vectype)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[check_dims] C M M#16 N X*#8986 X*#9054 addrtype#693 at i#8166 i#8173 i#8197 lim limits#693 localidx*#1235 memarg memarg#23 memidx#51 memtype*#18 resulttype#2055 sx sx#24 sz#54 vectype?#3 x +[visit_exp C] +[visit_id C] +[visit_exp `VLOAD`_instr{`vectype?#3`, memidx#51, memarg#23}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#54, M#16, sx#24, i#8166}(`%`_sz{i#8173}(M), N, sx)), x, memarg)] +[visit_exp `vectype?#3`] +[visit_id vectype?#3] +[visit_exp memidx#51] +[visit_id memidx#51] +[visit_exp memarg#23] +[visit_id memarg#23] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#54, M#16, sx#24, i#8166}(`%`_sz{i#8173}(M), N, sx)), x, memarg)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#54, M#16, sx#24, i#8166}(`%`_sz{i#8173}(M), N, sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#54, M#16, sx#24, i#8166}(`%`_sz{i#8173}(M), N, sx)] +[visit_exp sz#54] +[visit_id sz#54] +[visit_exp M#16] +[visit_id M#16] +[visit_exp sx#24] +[visit_id sx#24] +[visit_exp i#8166] +[visit_id i#8166] +[visit_exp (`%`_sz{i#8173}(M), N, sx)] +[visit_exp `%`_sz{i#8173}(M)] +[visit_exp i#8173] +[visit_id i#8173] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp N] +[visit_id N] +[visit_exp sx] +[visit_id sx] +[visit_exp x] +[visit_id x] +[visit_exp memarg] +[visit_id memarg] +[visit_exp `%->_%%`_instrtype{resulttype#2055, `localidx*#1235`}(`%`_resulttype{`X*#8986`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9054`}([`V128`_valtype]))] +[visit_exp resulttype#2055] +[visit_id resulttype#2055] +[visit_exp `localidx*#1235`] +[visit_id localidx*#1235] +[visit_exp (`%`_resulttype{`X*#8986`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9054`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#8986`}([(at : addrtype <: valtype)])] +[visit_exp `X*#8986`] +[visit_id X*#8986] +[visit_exp ([(at : addrtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#9054`}([`V128`_valtype])] +[visit_exp `X*#9054`] +[visit_id X*#9054] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp (C.`MEMS`_context{`memtype*#18`}[x!`%`_idx{i#8197}.0] = `%%PAGE`_memtype{addrtype#693, limits#693}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#18`}[x!`%`_idx{i#8197}.0]] +[visit_exp C.`MEMS`_context{`memtype*#18`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#18`] +[visit_id memtype*#18] +[visit_exp x!`%`_idx{i#8197}.0] +[visit_exp x!`%`_idx{i#8197}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#8197] +[visit_id i#8197] +[visit_exp `%%PAGE`_memtype{addrtype#693, limits#693}(at, lim)] +[visit_exp addrtype#693] +[visit_id addrtype#693] +[visit_exp limits#693] +[visit_id limits#693] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp (memarg, at, (M * N))] +[visit_exp memarg] +[visit_id memarg] not free +[visit_exp at] +[visit_id at] not free +[visit_exp (M * N)] +[visit_exp M] +[visit_id M] not free +[visit_exp N] +[visit_id N] not free +[check_dims] C N X*#9065 X*#9133 addrtype#705 at i#8229 i#8253 lim limits#705 localidx*#1247 memarg memarg#25 memidx#53 memtype*#19 resulttype#2075 sz#101 vectype?#4 x +[visit_exp C] +[visit_id C] +[visit_exp `VLOAD`_instr{`vectype?#4`, memidx#53, memarg#25}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#101}(`%`_sz{i#8229}(N))), x, memarg)] +[visit_exp `vectype?#4`] +[visit_id vectype?#4] +[visit_exp memidx#53] +[visit_id memidx#53] +[visit_exp memarg#25] +[visit_id memarg#25] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#101}(`%`_sz{i#8229}(N))), x, memarg)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SPLAT`_vloadop_{sz#101}(`%`_sz{i#8229}(N)))] +[visit_exp `SPLAT`_vloadop_{sz#101}(`%`_sz{i#8229}(N))] +[visit_exp sz#101] +[visit_id sz#101] +[visit_exp (`%`_sz{i#8229}(N))] +[visit_exp `%`_sz{i#8229}(N)] +[visit_exp i#8229] +[visit_id i#8229] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp x] +[visit_id x] +[visit_exp memarg] +[visit_id memarg] +[visit_exp `%->_%%`_instrtype{resulttype#2075, `localidx*#1247`}(`%`_resulttype{`X*#9065`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9133`}([`V128`_valtype]))] +[visit_exp resulttype#2075] +[visit_id resulttype#2075] +[visit_exp `localidx*#1247`] +[visit_id localidx*#1247] +[visit_exp (`%`_resulttype{`X*#9065`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9133`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#9065`}([(at : addrtype <: valtype)])] +[visit_exp `X*#9065`] +[visit_id X*#9065] +[visit_exp ([(at : addrtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#9133`}([`V128`_valtype])] +[visit_exp `X*#9133`] +[visit_id X*#9133] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp (C.`MEMS`_context{`memtype*#19`}[x!`%`_idx{i#8253}.0] = `%%PAGE`_memtype{addrtype#705, limits#705}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#19`}[x!`%`_idx{i#8253}.0]] +[visit_exp C.`MEMS`_context{`memtype*#19`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#19`] +[visit_id memtype*#19] +[visit_exp x!`%`_idx{i#8253}.0] +[visit_exp x!`%`_idx{i#8253}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#8253] +[visit_id i#8253] +[visit_exp `%%PAGE`_memtype{addrtype#705, limits#705}(at, lim)] +[visit_exp addrtype#705] +[visit_id addrtype#705] +[visit_exp limits#705] +[visit_id limits#705] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp (memarg, at, N)] +[visit_exp memarg] +[visit_id memarg] not free +[visit_exp at] +[visit_id at] not free +[visit_exp N] +[visit_id N] not free +[check_dims] C N X*#9144 X*#9212 addrtype#717 at i#8279 i#8286 i#8310 lim limits#717 localidx*#1259 memarg memarg#27 memidx#55 memtype*#20 resulttype#2095 sz#148 vectype?#5 x +[visit_exp C] +[visit_id C] +[visit_exp `VLOAD`_instr{`vectype?#5`, memidx#55, memarg#27}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#148, i#8279}(`%`_sz{i#8286}(N))), x, memarg)] +[visit_exp `vectype?#5`] +[visit_id vectype?#5] +[visit_exp memidx#55] +[visit_id memidx#55] +[visit_exp memarg#27] +[visit_id memarg#27] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#148, i#8279}(`%`_sz{i#8286}(N))), x, memarg)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`ZERO`_vloadop_{sz#148, i#8279}(`%`_sz{i#8286}(N)))] +[visit_exp `ZERO`_vloadop_{sz#148, i#8279}(`%`_sz{i#8286}(N))] +[visit_exp sz#148] +[visit_id sz#148] +[visit_exp i#8279] +[visit_id i#8279] +[visit_exp (`%`_sz{i#8286}(N))] +[visit_exp `%`_sz{i#8286}(N)] +[visit_exp i#8286] +[visit_id i#8286] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp x] +[visit_id x] +[visit_exp memarg] +[visit_id memarg] +[visit_exp `%->_%%`_instrtype{resulttype#2095, `localidx*#1259`}(`%`_resulttype{`X*#9144`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9212`}([`V128`_valtype]))] +[visit_exp resulttype#2095] +[visit_id resulttype#2095] +[visit_exp `localidx*#1259`] +[visit_id localidx*#1259] +[visit_exp (`%`_resulttype{`X*#9144`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9212`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#9144`}([(at : addrtype <: valtype)])] +[visit_exp `X*#9144`] +[visit_id X*#9144] +[visit_exp ([(at : addrtype <: valtype)])] +[visit_exp [(at : addrtype <: valtype)]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#9212`}([`V128`_valtype])] +[visit_exp `X*#9212`] +[visit_id X*#9212] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp (C.`MEMS`_context{`memtype*#20`}[x!`%`_idx{i#8310}.0] = `%%PAGE`_memtype{addrtype#717, limits#717}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#20`}[x!`%`_idx{i#8310}.0]] +[visit_exp C.`MEMS`_context{`memtype*#20`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#20`] +[visit_id memtype*#20] +[visit_exp x!`%`_idx{i#8310}.0] +[visit_exp x!`%`_idx{i#8310}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#8310] +[visit_id i#8310] +[visit_exp `%%PAGE`_memtype{addrtype#717, limits#717}(at, lim)] +[visit_exp addrtype#717] +[visit_id addrtype#717] +[visit_exp limits#717] +[visit_id limits#717] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp (memarg, at, N)] +[visit_exp memarg] +[visit_id memarg] not free +[visit_exp at] +[visit_id at] not free +[visit_exp N] +[visit_id N] not free +[check_dims] C N X*#9233 X*#9282 addrtype#729 at i i#8318 i#8356 i#8370 laneidx#9 lim limits#729 localidx*#1271 memarg memarg#29 memidx#57 memtype*#21 resulttype#2115 sz#150 vectype#24 x +[visit_exp C] +[visit_id C] +[visit_exp `VLOAD_LANE`_instr{vectype#24, sz#150, memidx#57, memarg#29, laneidx#9}(`V128`_vectype, `%`_sz{i#8318}(N), x, memarg, i)] +[visit_exp vectype#24] +[visit_id vectype#24] +[visit_exp sz#150] +[visit_id sz#150] +[visit_exp memidx#57] +[visit_id memidx#57] +[visit_exp memarg#29] +[visit_id memarg#29] +[visit_exp laneidx#9] +[visit_id laneidx#9] +[visit_exp (`V128`_vectype, `%`_sz{i#8318}(N), x, memarg, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#8318}(N)] +[visit_exp i#8318] +[visit_id i#8318] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp x] +[visit_id x] +[visit_exp memarg] +[visit_id memarg] +[visit_exp i] +[visit_id i] +[visit_exp `%->_%%`_instrtype{resulttype#2115, `localidx*#1271`}(`%`_resulttype{`X*#9233`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9282`}([`V128`_valtype]))] +[visit_exp resulttype#2115] +[visit_id resulttype#2115] +[visit_exp `localidx*#1271`] +[visit_id localidx*#1271] +[visit_exp (`%`_resulttype{`X*#9233`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9282`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#9233`}([(at : addrtype <: valtype) `V128`_valtype])] +[visit_exp `X*#9233`] +[visit_id X*#9233] +[visit_exp ([(at : addrtype <: valtype) `V128`_valtype])] +[visit_exp [(at : addrtype <: valtype) `V128`_valtype]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#9282`}([`V128`_valtype])] +[visit_exp `X*#9282`] +[visit_id X*#9282] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp (C.`MEMS`_context{`memtype*#21`}[x!`%`_idx{i#8356}.0] = `%%PAGE`_memtype{addrtype#729, limits#729}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#21`}[x!`%`_idx{i#8356}.0]] +[visit_exp C.`MEMS`_context{`memtype*#21`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#21`] +[visit_id memtype*#21] +[visit_exp x!`%`_idx{i#8356}.0] +[visit_exp x!`%`_idx{i#8356}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#8356] +[visit_id i#8356] +[visit_exp `%%PAGE`_memtype{addrtype#729, limits#729}(at, lim)] +[visit_exp addrtype#729] +[visit_id addrtype#729] +[visit_exp limits#729] +[visit_id limits#729] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp (memarg, at, N)] +[visit_exp memarg] +[visit_id memarg] not free +[visit_exp at] +[visit_id at] not free +[visit_exp N] +[visit_id N] not free +[visit_exp ((i!`%`_laneidx{i#8370}.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat)))] +[visit_exp (i!`%`_laneidx{i#8370}.0 : nat <:> rat)] +[visit_exp i!`%`_laneidx{i#8370}.0] +[visit_exp i!`%`_laneidx{i#8370}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#8370] +[visit_id i#8370] +[visit_exp ((128 : nat <:> rat) / (N : nat <:> rat))] +[visit_exp (128 : nat <:> rat)] +[visit_exp 128] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[check_dims] C X*#9303 X*#9352 addrtype#741 at i#8394 lim limits#741 localidx*#1283 memarg memarg#31 memidx#59 memtype*#22 resulttype#2135 vectype#26 x +[visit_exp C] +[visit_id C] +[visit_exp `VSTORE`_instr{vectype#26, memidx#59, memarg#31}(`V128`_vectype, x, memarg)] +[visit_exp vectype#26] +[visit_id vectype#26] +[visit_exp memidx#59] +[visit_id memidx#59] +[visit_exp memarg#31] +[visit_id memarg#31] +[visit_exp (`V128`_vectype, x, memarg)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp memarg] +[visit_id memarg] +[visit_exp `%->_%%`_instrtype{resulttype#2135, `localidx*#1283`}(`%`_resulttype{`X*#9303`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9352`}([]))] +[visit_exp resulttype#2135] +[visit_id resulttype#2135] +[visit_exp `localidx*#1283`] +[visit_id localidx*#1283] +[visit_exp (`%`_resulttype{`X*#9303`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9352`}([]))] +[visit_exp `%`_resulttype{`X*#9303`}([(at : addrtype <: valtype) `V128`_valtype])] +[visit_exp `X*#9303`] +[visit_id X*#9303] +[visit_exp ([(at : addrtype <: valtype) `V128`_valtype])] +[visit_exp [(at : addrtype <: valtype) `V128`_valtype]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#9352`}([])] +[visit_exp `X*#9352`] +[visit_id X*#9352] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`MEMS`_context{`memtype*#22`}[x!`%`_idx{i#8394}.0] = `%%PAGE`_memtype{addrtype#741, limits#741}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#22`}[x!`%`_idx{i#8394}.0]] +[visit_exp C.`MEMS`_context{`memtype*#22`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#22`] +[visit_id memtype*#22] +[visit_exp x!`%`_idx{i#8394}.0] +[visit_exp x!`%`_idx{i#8394}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#8394] +[visit_id i#8394] +[visit_exp `%%PAGE`_memtype{addrtype#741, limits#741}(at, lim)] +[visit_exp addrtype#741] +[visit_id addrtype#741] +[visit_exp limits#741] +[visit_id limits#741] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp (memarg, at, $vsize(`V128`_vectype))] +[visit_exp memarg] +[visit_id memarg] not free +[visit_exp at] +[visit_id at] not free +[visit_exp $vsize(`V128`_vectype)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[check_dims] C N X*#9373 X*#9422 addrtype#753 at i i#8402 i#8440 i#8454 laneidx#11 lim limits#753 localidx*#1295 memarg memarg#33 memidx#61 memtype*#23 resulttype#2155 sz#152 vectype#28 x +[visit_exp C] +[visit_id C] +[visit_exp `VSTORE_LANE`_instr{vectype#28, sz#152, memidx#61, memarg#33, laneidx#11}(`V128`_vectype, `%`_sz{i#8402}(N), x, memarg, i)] +[visit_exp vectype#28] +[visit_id vectype#28] +[visit_exp sz#152] +[visit_id sz#152] +[visit_exp memidx#61] +[visit_id memidx#61] +[visit_exp memarg#33] +[visit_id memarg#33] +[visit_exp laneidx#11] +[visit_id laneidx#11] +[visit_exp (`V128`_vectype, `%`_sz{i#8402}(N), x, memarg, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#8402}(N)] +[visit_exp i#8402] +[visit_id i#8402] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp x] +[visit_id x] +[visit_exp memarg] +[visit_id memarg] +[visit_exp i] +[visit_id i] +[visit_exp `%->_%%`_instrtype{resulttype#2155, `localidx*#1295`}(`%`_resulttype{`X*#9373`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9422`}([]))] +[visit_exp resulttype#2155] +[visit_id resulttype#2155] +[visit_exp `localidx*#1295`] +[visit_id localidx*#1295] +[visit_exp (`%`_resulttype{`X*#9373`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9422`}([]))] +[visit_exp `%`_resulttype{`X*#9373`}([(at : addrtype <: valtype) `V128`_valtype])] +[visit_exp `X*#9373`] +[visit_id X*#9373] +[visit_exp ([(at : addrtype <: valtype) `V128`_valtype])] +[visit_exp [(at : addrtype <: valtype) `V128`_valtype]] +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#9422`}([])] +[visit_exp `X*#9422`] +[visit_id X*#9422] +[visit_exp ([])] +[visit_exp []] +[visit_exp (C.`MEMS`_context{`memtype*#23`}[x!`%`_idx{i#8440}.0] = `%%PAGE`_memtype{addrtype#753, limits#753}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#23`}[x!`%`_idx{i#8440}.0]] +[visit_exp C.`MEMS`_context{`memtype*#23`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#23`] +[visit_id memtype*#23] +[visit_exp x!`%`_idx{i#8440}.0] +[visit_exp x!`%`_idx{i#8440}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#8440] +[visit_id i#8440] +[visit_exp `%%PAGE`_memtype{addrtype#753, limits#753}(at, lim)] +[visit_exp addrtype#753] +[visit_id addrtype#753] +[visit_exp limits#753] +[visit_id limits#753] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp (memarg, at, N)] +[visit_exp memarg] +[visit_id memarg] not free +[visit_exp at] +[visit_id at] not free +[visit_exp N] +[visit_id N] not free +[visit_exp ((i!`%`_laneidx{i#8454}.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat)))] +[visit_exp (i!`%`_laneidx{i#8454}.0 : nat <:> rat)] +[visit_exp i!`%`_laneidx{i#8454}.0] +[visit_exp i!`%`_laneidx{i#8454}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#8454] +[visit_id i#8454] +[visit_exp ((128 : nat <:> rat) / (N : nat <:> rat))] +[visit_exp (128 : nat <:> rat)] +[visit_exp 128] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[check_dims] C X*#9443 X*#9492 c_nt localidx*#1307 nt numtype#19 resulttype#2175 +[visit_exp C] +[visit_id C] +[visit_exp `CONST`_instr{numtype#19}(nt, c_nt)] +[visit_exp numtype#19] +[visit_id numtype#19] +[visit_exp (nt, c_nt)] +[visit_exp nt] +[visit_id nt] +[visit_exp c_nt] +[visit_id c_nt] +[visit_exp `%->_%%`_instrtype{resulttype#2175, `localidx*#1307`}(`%`_resulttype{`X*#9443`}([]), [], `%`_resulttype{`X*#9492`}([(nt : numtype <: valtype)]))] +[visit_exp resulttype#2175] +[visit_id resulttype#2175] +[visit_exp `localidx*#1307`] +[visit_id localidx*#1307] +[visit_exp (`%`_resulttype{`X*#9443`}([]), [], `%`_resulttype{`X*#9492`}([(nt : numtype <: valtype)]))] +[visit_exp `%`_resulttype{`X*#9443`}([])] +[visit_exp `X*#9443`] +[visit_id X*#9443] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#9492`}([(nt : numtype <: valtype)])] +[visit_exp `X*#9492`] +[visit_id X*#9492] +[visit_exp ([(nt : numtype <: valtype)])] +[visit_exp [(nt : numtype <: valtype)]] +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] not free +[check_dims] C X*#9503 X*#9571 localidx*#1319 nt numtype#21 resulttype#2195 unop_nt +[visit_exp C] +[visit_id C] +[visit_exp `UNOP`_instr{numtype#21}(nt, unop_nt)] +[visit_exp numtype#21] +[visit_id numtype#21] +[visit_exp (nt, unop_nt)] +[visit_exp nt] +[visit_id nt] +[visit_exp unop_nt] +[visit_id unop_nt] +[visit_exp `%->_%%`_instrtype{resulttype#2195, `localidx*#1319`}(`%`_resulttype{`X*#9503`}([(nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9571`}([(nt : numtype <: valtype)]))] +[visit_exp resulttype#2195] +[visit_id resulttype#2195] +[visit_exp `localidx*#1319`] +[visit_id localidx*#1319] +[visit_exp (`%`_resulttype{`X*#9503`}([(nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9571`}([(nt : numtype <: valtype)]))] +[visit_exp `%`_resulttype{`X*#9503`}([(nt : numtype <: valtype)])] +[visit_exp `X*#9503`] +[visit_id X*#9503] +[visit_exp ([(nt : numtype <: valtype)])] +[visit_exp [(nt : numtype <: valtype)]] +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#9571`}([(nt : numtype <: valtype)])] +[visit_exp `X*#9571`] +[visit_id X*#9571] +[visit_exp ([(nt : numtype <: valtype)])] +[visit_exp [(nt : numtype <: valtype)]] +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] not free +[check_dims] C X*#9592 X*#9641 binop_nt localidx*#1331 nt numtype#23 resulttype#2215 +[visit_exp C] +[visit_id C] +[visit_exp `BINOP`_instr{numtype#23}(nt, binop_nt)] +[visit_exp numtype#23] +[visit_id numtype#23] +[visit_exp (nt, binop_nt)] +[visit_exp nt] +[visit_id nt] +[visit_exp binop_nt] +[visit_id binop_nt] +[visit_exp `%->_%%`_instrtype{resulttype#2215, `localidx*#1331`}(`%`_resulttype{`X*#9592`}([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9641`}([(nt : numtype <: valtype)]))] +[visit_exp resulttype#2215] +[visit_id resulttype#2215] +[visit_exp `localidx*#1331`] +[visit_id localidx*#1331] +[visit_exp (`%`_resulttype{`X*#9592`}([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9641`}([(nt : numtype <: valtype)]))] +[visit_exp `%`_resulttype{`X*#9592`}([(nt : numtype <: valtype) (nt : numtype <: valtype)])] +[visit_exp `X*#9592`] +[visit_id X*#9592] +[visit_exp ([(nt : numtype <: valtype) (nt : numtype <: valtype)])] +[visit_exp [(nt : numtype <: valtype) (nt : numtype <: valtype)]] +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#9641`}([(nt : numtype <: valtype)])] +[visit_exp `X*#9641`] +[visit_id X*#9641] +[visit_exp ([(nt : numtype <: valtype)])] +[visit_exp [(nt : numtype <: valtype)]] +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] not free +[check_dims] C X*#9652 X*#9720 localidx*#1343 nt numtype#25 resulttype#2235 testop_nt +[visit_exp C] +[visit_id C] +[visit_exp `TESTOP`_instr{numtype#25}(nt, testop_nt)] +[visit_exp numtype#25] +[visit_id numtype#25] +[visit_exp (nt, testop_nt)] +[visit_exp nt] +[visit_id nt] +[visit_exp testop_nt] +[visit_id testop_nt] +[visit_exp `%->_%%`_instrtype{resulttype#2235, `localidx*#1343`}(`%`_resulttype{`X*#9652`}([(nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9720`}([`I32`_valtype]))] +[visit_exp resulttype#2235] +[visit_id resulttype#2235] +[visit_exp `localidx*#1343`] +[visit_id localidx*#1343] +[visit_exp (`%`_resulttype{`X*#9652`}([(nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9720`}([`I32`_valtype]))] +[visit_exp `%`_resulttype{`X*#9652`}([(nt : numtype <: valtype)])] +[visit_exp `X*#9652`] +[visit_id X*#9652] +[visit_exp ([(nt : numtype <: valtype)])] +[visit_exp [(nt : numtype <: valtype)]] +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#9720`}([`I32`_valtype])] +[visit_exp `X*#9720`] +[visit_id X*#9720] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[check_dims] C X*#9741 X*#9790 localidx*#1355 nt numtype#27 relop_nt resulttype#2255 +[visit_exp C] +[visit_id C] +[visit_exp `RELOP`_instr{numtype#27}(nt, relop_nt)] +[visit_exp numtype#27] +[visit_id numtype#27] +[visit_exp (nt, relop_nt)] +[visit_exp nt] +[visit_id nt] +[visit_exp relop_nt] +[visit_id relop_nt] +[visit_exp `%->_%%`_instrtype{resulttype#2255, `localidx*#1355`}(`%`_resulttype{`X*#9741`}([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9790`}([`I32`_valtype]))] +[visit_exp resulttype#2255] +[visit_id resulttype#2255] +[visit_exp `localidx*#1355`] +[visit_id localidx*#1355] +[visit_exp (`%`_resulttype{`X*#9741`}([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9790`}([`I32`_valtype]))] +[visit_exp `%`_resulttype{`X*#9741`}([(nt : numtype <: valtype) (nt : numtype <: valtype)])] +[visit_exp `X*#9741`] +[visit_id X*#9741] +[visit_exp ([(nt : numtype <: valtype) (nt : numtype <: valtype)])] +[visit_exp [(nt : numtype <: valtype) (nt : numtype <: valtype)]] +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#9790`}([`I32`_valtype])] +[visit_exp `X*#9790`] +[visit_id X*#9790] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[check_dims] C X*#9801 X*#9869 cvtop localidx*#1367 nt_1 nt_2 numtype_1#3 numtype_2#3 resulttype#2275 +[visit_exp C] +[visit_id C] +[visit_exp `CVTOP`_instr{numtype_1#3, numtype_2#3}(nt_1, nt_2, cvtop)] +[visit_exp numtype_1#3] +[visit_id numtype_1#3] +[visit_exp numtype_2#3] +[visit_id numtype_2#3] +[visit_exp (nt_1, nt_2, cvtop)] +[visit_exp nt_1] +[visit_id nt_1] +[visit_exp nt_2] +[visit_id nt_2] +[visit_exp cvtop] +[visit_id cvtop] +[visit_exp `%->_%%`_instrtype{resulttype#2275, `localidx*#1367`}(`%`_resulttype{`X*#9801`}([(nt_2 : numtype <: valtype)]), [], `%`_resulttype{`X*#9869`}([(nt_1 : numtype <: valtype)]))] +[visit_exp resulttype#2275] +[visit_id resulttype#2275] +[visit_exp `localidx*#1367`] +[visit_id localidx*#1367] +[visit_exp (`%`_resulttype{`X*#9801`}([(nt_2 : numtype <: valtype)]), [], `%`_resulttype{`X*#9869`}([(nt_1 : numtype <: valtype)]))] +[visit_exp `%`_resulttype{`X*#9801`}([(nt_2 : numtype <: valtype)])] +[visit_exp `X*#9801`] +[visit_id X*#9801] +[visit_exp ([(nt_2 : numtype <: valtype)])] +[visit_exp [(nt_2 : numtype <: valtype)]] +[visit_exp (nt_2 : numtype <: valtype)] +[visit_exp nt_2] +[visit_id nt_2] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#9869`}([(nt_1 : numtype <: valtype)])] +[visit_exp `X*#9869`] +[visit_id X*#9869] +[visit_exp ([(nt_1 : numtype <: valtype)])] +[visit_exp [(nt_1 : numtype <: valtype)]] +[visit_exp (nt_1 : numtype <: valtype)] +[visit_exp nt_1] +[visit_id nt_1] not free +[check_dims] C X*#9890 X*#9939 c localidx*#1379 resulttype#2295 vectype#30 +[visit_exp C] +[visit_id C] +[visit_exp `VCONST`_instr{vectype#30}(`V128`_vectype, c)] +[visit_exp vectype#30] +[visit_id vectype#30] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp `%->_%%`_instrtype{resulttype#2295, `localidx*#1379`}(`%`_resulttype{`X*#9890`}([]), [], `%`_resulttype{`X*#9939`}([`V128`_valtype]))] +[visit_exp resulttype#2295] +[visit_id resulttype#2295] +[visit_exp `localidx*#1379`] +[visit_id localidx*#1379] +[visit_exp (`%`_resulttype{`X*#9890`}([]), [], `%`_resulttype{`X*#9939`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#9890`}([])] +[visit_exp `X*#9890`] +[visit_id X*#9890] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#9939`}([`V128`_valtype])] +[visit_exp `X*#9939`] +[visit_id X*#9939] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#10007 X*#9958 localidx*#1391 resulttype#2315 vectype#32 vvunop vvunop#3 +[visit_exp C] +[visit_id C] +[visit_exp `VVUNOP`_instr{vectype#32, vvunop#3}(`V128`_vectype, vvunop)] +[visit_exp vectype#32] +[visit_id vectype#32] +[visit_exp vvunop#3] +[visit_id vvunop#3] +[visit_exp (`V128`_vectype, vvunop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp vvunop] +[visit_id vvunop] +[visit_exp `%->_%%`_instrtype{resulttype#2315, `localidx*#1391`}(`%`_resulttype{`X*#9958`}([`V128`_valtype]), [], `%`_resulttype{`X*#10007`}([`V128`_valtype]))] +[visit_exp resulttype#2315] +[visit_id resulttype#2315] +[visit_exp `localidx*#1391`] +[visit_id localidx*#1391] +[visit_exp (`%`_resulttype{`X*#9958`}([`V128`_valtype]), [], `%`_resulttype{`X*#10007`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#9958`}([`V128`_valtype])] +[visit_exp `X*#9958`] +[visit_id X*#9958] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10007`}([`V128`_valtype])] +[visit_exp `X*#10007`] +[visit_id X*#10007] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#10028 X*#10077 localidx*#1403 resulttype#2335 vectype#34 vvbinop vvbinop#3 +[visit_exp C] +[visit_id C] +[visit_exp `VVBINOP`_instr{vectype#34, vvbinop#3}(`V128`_vectype, vvbinop)] +[visit_exp vectype#34] +[visit_id vectype#34] +[visit_exp vvbinop#3] +[visit_id vvbinop#3] +[visit_exp (`V128`_vectype, vvbinop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp vvbinop] +[visit_id vvbinop] +[visit_exp `%->_%%`_instrtype{resulttype#2335, `localidx*#1403`}(`%`_resulttype{`X*#10028`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10077`}([`V128`_valtype]))] +[visit_exp resulttype#2335] +[visit_id resulttype#2335] +[visit_exp `localidx*#1403`] +[visit_id localidx*#1403] +[visit_exp (`%`_resulttype{`X*#10028`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10077`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#10028`}([`V128`_valtype `V128`_valtype])] +[visit_exp `X*#10028`] +[visit_id X*#10028] +[visit_exp ([`V128`_valtype `V128`_valtype])] +[visit_exp [`V128`_valtype `V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10077`}([`V128`_valtype])] +[visit_exp `X*#10077`] +[visit_id X*#10077] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#10098 X*#10147 localidx*#1415 resulttype#2355 vectype#36 vvternop vvternop#3 +[visit_exp C] +[visit_id C] +[visit_exp `VVTERNOP`_instr{vectype#36, vvternop#3}(`V128`_vectype, vvternop)] +[visit_exp vectype#36] +[visit_id vectype#36] +[visit_exp vvternop#3] +[visit_id vvternop#3] +[visit_exp (`V128`_vectype, vvternop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp vvternop] +[visit_id vvternop] +[visit_exp `%->_%%`_instrtype{resulttype#2355, `localidx*#1415`}(`%`_resulttype{`X*#10098`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10147`}([`V128`_valtype]))] +[visit_exp resulttype#2355] +[visit_id resulttype#2355] +[visit_exp `localidx*#1415`] +[visit_id localidx*#1415] +[visit_exp (`%`_resulttype{`X*#10098`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10147`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#10098`}([`V128`_valtype `V128`_valtype `V128`_valtype])] +[visit_exp `X*#10098`] +[visit_id X*#10098] +[visit_exp ([`V128`_valtype `V128`_valtype `V128`_valtype])] +[visit_exp [`V128`_valtype `V128`_valtype `V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10147`}([`V128`_valtype])] +[visit_exp `X*#10147`] +[visit_id X*#10147] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#10166 X*#10215 localidx*#1427 resulttype#2375 vectype#38 vvtestop vvtestop#3 +[visit_exp C] +[visit_id C] +[visit_exp `VVTESTOP`_instr{vectype#38, vvtestop#3}(`V128`_vectype, vvtestop)] +[visit_exp vectype#38] +[visit_id vectype#38] +[visit_exp vvtestop#3] +[visit_id vvtestop#3] +[visit_exp (`V128`_vectype, vvtestop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp vvtestop] +[visit_id vvtestop] +[visit_exp `%->_%%`_instrtype{resulttype#2375, `localidx*#1427`}(`%`_resulttype{`X*#10166`}([`V128`_valtype]), [], `%`_resulttype{`X*#10215`}([`I32`_valtype]))] +[visit_exp resulttype#2375] +[visit_id resulttype#2375] +[visit_exp `localidx*#1427`] +[visit_id localidx*#1427] +[visit_exp (`%`_resulttype{`X*#10166`}([`V128`_valtype]), [], `%`_resulttype{`X*#10215`}([`I32`_valtype]))] +[visit_exp `%`_resulttype{`X*#10166`}([`V128`_valtype])] +[visit_exp `X*#10166`] +[visit_id X*#10166] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10215`}([`I32`_valtype])] +[visit_exp `X*#10215`] +[visit_id X*#10215] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[check_dims] C X*#10234 X*#10283 localidx*#1439 resulttype#2395 sh shape#269 vunop +[visit_exp C] +[visit_id C] +[visit_exp `VUNOP`_instr{shape#269}(sh, vunop)] +[visit_exp shape#269] +[visit_id shape#269] +[visit_exp (sh, vunop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vunop] +[visit_id vunop] +[visit_exp `%->_%%`_instrtype{resulttype#2395, `localidx*#1439`}(`%`_resulttype{`X*#10234`}([`V128`_valtype]), [], `%`_resulttype{`X*#10283`}([`V128`_valtype]))] +[visit_exp resulttype#2395] +[visit_id resulttype#2395] +[visit_exp `localidx*#1439`] +[visit_id localidx*#1439] +[visit_exp (`%`_resulttype{`X*#10234`}([`V128`_valtype]), [], `%`_resulttype{`X*#10283`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#10234`}([`V128`_valtype])] +[visit_exp `X*#10234`] +[visit_id X*#10234] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10283`}([`V128`_valtype])] +[visit_exp `X*#10283`] +[visit_id X*#10283] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#10304 X*#10353 localidx*#1451 resulttype#2415 sh shape#271 vbinop +[visit_exp C] +[visit_id C] +[visit_exp `VBINOP`_instr{shape#271}(sh, vbinop)] +[visit_exp shape#271] +[visit_id shape#271] +[visit_exp (sh, vbinop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vbinop] +[visit_id vbinop] +[visit_exp `%->_%%`_instrtype{resulttype#2415, `localidx*#1451`}(`%`_resulttype{`X*#10304`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10353`}([`V128`_valtype]))] +[visit_exp resulttype#2415] +[visit_id resulttype#2415] +[visit_exp `localidx*#1451`] +[visit_id localidx*#1451] +[visit_exp (`%`_resulttype{`X*#10304`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10353`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#10304`}([`V128`_valtype `V128`_valtype])] +[visit_exp `X*#10304`] +[visit_id X*#10304] +[visit_exp ([`V128`_valtype `V128`_valtype])] +[visit_exp [`V128`_valtype `V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10353`}([`V128`_valtype])] +[visit_exp `X*#10353`] +[visit_id X*#10353] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#10374 X*#10423 localidx*#1463 resulttype#2435 sh shape#273 vternop +[visit_exp C] +[visit_id C] +[visit_exp `VTERNOP`_instr{shape#273}(sh, vternop)] +[visit_exp shape#273] +[visit_id shape#273] +[visit_exp (sh, vternop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vternop] +[visit_id vternop] +[visit_exp `%->_%%`_instrtype{resulttype#2435, `localidx*#1463`}(`%`_resulttype{`X*#10374`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10423`}([`V128`_valtype]))] +[visit_exp resulttype#2435] +[visit_id resulttype#2435] +[visit_exp `localidx*#1463`] +[visit_id localidx*#1463] +[visit_exp (`%`_resulttype{`X*#10374`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10423`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#10374`}([`V128`_valtype `V128`_valtype `V128`_valtype])] +[visit_exp `X*#10374`] +[visit_id X*#10374] +[visit_exp ([`V128`_valtype `V128`_valtype `V128`_valtype])] +[visit_exp [`V128`_valtype `V128`_valtype `V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10423`}([`V128`_valtype])] +[visit_exp `X*#10423`] +[visit_id X*#10423] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#10442 X*#10491 localidx*#1475 resulttype#2455 sh shape#275 vtestop +[visit_exp C] +[visit_id C] +[visit_exp `VTESTOP`_instr{shape#275}(sh, vtestop)] +[visit_exp shape#275] +[visit_id shape#275] +[visit_exp (sh, vtestop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vtestop] +[visit_id vtestop] +[visit_exp `%->_%%`_instrtype{resulttype#2455, `localidx*#1475`}(`%`_resulttype{`X*#10442`}([`V128`_valtype]), [], `%`_resulttype{`X*#10491`}([`I32`_valtype]))] +[visit_exp resulttype#2455] +[visit_id resulttype#2455] +[visit_exp `localidx*#1475`] +[visit_id localidx*#1475] +[visit_exp (`%`_resulttype{`X*#10442`}([`V128`_valtype]), [], `%`_resulttype{`X*#10491`}([`I32`_valtype]))] +[visit_exp `%`_resulttype{`X*#10442`}([`V128`_valtype])] +[visit_exp `X*#10442`] +[visit_id X*#10442] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10491`}([`I32`_valtype])] +[visit_exp `X*#10491`] +[visit_id X*#10491] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[check_dims] C X*#10512 X*#10561 localidx*#1487 resulttype#2475 sh shape#277 vrelop +[visit_exp C] +[visit_id C] +[visit_exp `VRELOP`_instr{shape#277}(sh, vrelop)] +[visit_exp shape#277] +[visit_id shape#277] +[visit_exp (sh, vrelop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vrelop] +[visit_id vrelop] +[visit_exp `%->_%%`_instrtype{resulttype#2475, `localidx*#1487`}(`%`_resulttype{`X*#10512`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10561`}([`V128`_valtype]))] +[visit_exp resulttype#2475] +[visit_id resulttype#2475] +[visit_exp `localidx*#1487`] +[visit_id localidx*#1487] +[visit_exp (`%`_resulttype{`X*#10512`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10561`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#10512`}([`V128`_valtype `V128`_valtype])] +[visit_exp `X*#10512`] +[visit_id X*#10512] +[visit_exp ([`V128`_valtype `V128`_valtype])] +[visit_exp [`V128`_valtype `V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10561`}([`V128`_valtype])] +[visit_exp `X*#10561`] +[visit_id X*#10561] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#10582 X*#10631 ishape#5 localidx*#1499 resulttype#2495 sh vshiftop +[visit_exp C] +[visit_id C] +[visit_exp `VSHIFTOP`_instr{ishape#5}(sh, vshiftop)] +[visit_exp ishape#5] +[visit_id ishape#5] +[visit_exp (sh, vshiftop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vshiftop] +[visit_id vshiftop] +[visit_exp `%->_%%`_instrtype{resulttype#2495, `localidx*#1499`}(`%`_resulttype{`X*#10582`}([`V128`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#10631`}([`V128`_valtype]))] +[visit_exp resulttype#2495] +[visit_id resulttype#2495] +[visit_exp `localidx*#1499`] +[visit_id localidx*#1499] +[visit_exp (`%`_resulttype{`X*#10582`}([`V128`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#10631`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#10582`}([`V128`_valtype `I32`_valtype])] +[visit_exp `X*#10582`] +[visit_id X*#10582] +[visit_exp ([`V128`_valtype `I32`_valtype])] +[visit_exp [`V128`_valtype `I32`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10631`}([`V128`_valtype])] +[visit_exp `X*#10631`] +[visit_id X*#10631] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#10650 X*#10699 ishape#7 localidx*#1511 resulttype#2515 sh +[visit_exp C] +[visit_id C] +[visit_exp `VBITMASK`_instr{ishape#7}(sh)] +[visit_exp ishape#7] +[visit_id ishape#7] +[visit_exp (sh)] +[visit_exp sh] +[visit_id sh] +[visit_exp `%->_%%`_instrtype{resulttype#2515, `localidx*#1511`}(`%`_resulttype{`X*#10650`}([`V128`_valtype]), [], `%`_resulttype{`X*#10699`}([`I32`_valtype]))] +[visit_exp resulttype#2515] +[visit_id resulttype#2515] +[visit_exp `localidx*#1511`] +[visit_id localidx*#1511] +[visit_exp (`%`_resulttype{`X*#10650`}([`V128`_valtype]), [], `%`_resulttype{`X*#10699`}([`I32`_valtype]))] +[visit_exp `%`_resulttype{`X*#10650`}([`V128`_valtype])] +[visit_exp `X*#10650`] +[visit_id X*#10650] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10699`}([`I32`_valtype])] +[visit_exp `X*#10699`] +[visit_id X*#10699] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[check_dims] C X*#10720 X*#10769 bshape#5 localidx*#1523 resulttype#2535 sh vswizzlop +[visit_exp C] +[visit_id C] +[visit_exp `VSWIZZLOP`_instr{bshape#5}(sh, vswizzlop)] +[visit_exp bshape#5] +[visit_id bshape#5] +[visit_exp (sh, vswizzlop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vswizzlop] +[visit_id vswizzlop] +[visit_exp `%->_%%`_instrtype{resulttype#2535, `localidx*#1523`}(`%`_resulttype{`X*#10720`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10769`}([`V128`_valtype]))] +[visit_exp resulttype#2535] +[visit_id resulttype#2535] +[visit_exp `localidx*#1523`] +[visit_id localidx*#1523] +[visit_exp (`%`_resulttype{`X*#10720`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10769`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#10720`}([`V128`_valtype `V128`_valtype])] +[visit_exp `X*#10720`] +[visit_id X*#10720] +[visit_exp ([`V128`_valtype `V128`_valtype])] +[visit_exp [`V128`_valtype `V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10769`}([`V128`_valtype])] +[visit_exp `X*#10769`] +[visit_id X*#10769] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#10790 X*#10839 bshape#7 i i#8480 i#8509 i#8523 laneidx*#3 localidx*#1535 resulttype#2555 sh shape#297 shape#304 +[visit_exp C] +[visit_id C] +[visit_exp `VSHUFFLE`_instr{bshape#7, `laneidx*#3`, i#8480, shape#297}(sh, i*{i <- `i*`})] +[visit_exp bshape#7] +[visit_id bshape#7] +[visit_exp `laneidx*#3`] +[visit_id laneidx*#3] +[visit_exp i#8480] +[visit_id i#8480] +[visit_exp shape#297] +[visit_id shape#297] +[visit_exp (sh, i*{i <- `i*`})] +[visit_exp sh] +[visit_id sh] +[visit_exp i*{i <- `i*`}] +[scope_enter i] +[visit_exp i] +[visit_id i] not free +[visit_id i] not free +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] no dims +[visit_id i*] +[visit_exp `%->_%%`_instrtype{resulttype#2555, `localidx*#1535`}(`%`_resulttype{`X*#10790`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10839`}([`V128`_valtype]))] +[visit_exp resulttype#2555] +[visit_id resulttype#2555] +[visit_exp `localidx*#1535`] +[visit_id localidx*#1535] +[visit_exp (`%`_resulttype{`X*#10790`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10839`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#10790`}([`V128`_valtype `V128`_valtype])] +[visit_exp `X*#10790`] +[visit_id X*#10790] +[visit_exp ([`V128`_valtype `V128`_valtype])] +[visit_exp [`V128`_valtype `V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10839`}([`V128`_valtype])] +[visit_exp `X*#10839`] +[visit_id X*#10839] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[scope_enter i] +[scope_enter i#8509] +[scope_enter i#8523] +[scope_enter shape#304] +[visit_exp (i!`%`_laneidx{i#8523}.0 < (2 * $dim(sh!`%`_bshape{shape#304}.0)!`%`_dim{i#8509}.0))] +[visit_exp i!`%`_laneidx{i#8523}.0] +[visit_exp i!`%`_laneidx{i#8523}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#8523] +[visit_id i#8523] not free +[visit_exp (2 * $dim(sh!`%`_bshape{shape#304}.0)!`%`_dim{i#8509}.0)] +[visit_exp 2] +[visit_exp $dim(sh!`%`_bshape{shape#304}.0)!`%`_dim{i#8509}.0] +[visit_exp $dim(sh!`%`_bshape{shape#304}.0)!`%`_dim{i#8509}] +[visit_exp $dim(sh!`%`_bshape{shape#304}.0)] +[visit_exp sh!`%`_bshape{shape#304}.0] +[visit_exp sh!`%`_bshape{shape#304}] +[visit_exp sh] +[visit_id sh] not free +[visit_exp shape#304] +[visit_id shape#304] not free +[visit_exp i#8509] +[visit_id i#8509] not free +[visit_id i] not free +[visit_id i#8509] not free +[visit_id i#8523] not free +[visit_id shape#304] not free +[scope_exit shape#304] +[scope_exit i#8523] +[scope_exit i#8509] +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] not free +[visit_id i*] no dims +[visit_exp `i#8509*`] +[visit_id i#8509*] no dims +[visit_id i#8509*] +[visit_exp `i#8523*`] +[visit_id i#8523*] no dims +[visit_id i#8523*] +[visit_exp `shape#304*`] +[visit_id shape#304*] no dims +[visit_id shape#304*] +[check_dims] C X*#10850 X*#10916 localidx*#1547 resulttype#2575 sh shape#306 +[visit_exp C] +[visit_id C] +[visit_exp `VSPLAT`_instr{shape#306}(sh)] +[visit_exp shape#306] +[visit_id shape#306] +[visit_exp (sh)] +[visit_exp sh] +[visit_id sh] +[visit_exp `%->_%%`_instrtype{resulttype#2575, `localidx*#1547`}(`%`_resulttype{`X*#10850`}([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype{`X*#10916`}([`V128`_valtype]))] +[visit_exp resulttype#2575] +[visit_id resulttype#2575] +[visit_exp `localidx*#1547`] +[visit_id localidx*#1547] +[visit_exp (`%`_resulttype{`X*#10850`}([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype{`X*#10916`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#10850`}([($unpackshape(sh) : numtype <: valtype)])] +[visit_exp `X*#10850`] +[visit_id X*#10850] +[visit_exp ([($unpackshape(sh) : numtype <: valtype)])] +[visit_exp [($unpackshape(sh) : numtype <: valtype)]] +[visit_exp ($unpackshape(sh) : numtype <: valtype)] +[visit_exp $unpackshape(sh)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10916`}([`V128`_valtype])] +[visit_exp `X*#10916`] +[visit_id X*#10916] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#10935 X*#10984 i i#8600 i#8602 laneidx#13 localidx*#1559 resulttype#2595 sh shape#308 sx sx?#11 +[visit_exp C] +[visit_id C] +[visit_exp `VEXTRACT_LANE`_instr{shape#308, `sx?#11`, laneidx#13}(sh, sx?{sx <- `sx?`}, i)] +[visit_exp shape#308] +[visit_id shape#308] +[visit_exp `sx?#11`] +[visit_id sx?#11] +[visit_exp laneidx#13] +[visit_id laneidx#13] +[visit_exp (sh, sx?{sx <- `sx?`}, i)] +[visit_exp sh] +[visit_id sh] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] no dims +[visit_id sx?] +[visit_exp i] +[visit_id i] +[visit_exp `%->_%%`_instrtype{resulttype#2595, `localidx*#1559`}(`%`_resulttype{`X*#10935`}([`V128`_valtype]), [], `%`_resulttype{`X*#10984`}([($unpackshape(sh) : numtype <: valtype)]))] +[visit_exp resulttype#2595] +[visit_id resulttype#2595] +[visit_exp `localidx*#1559`] +[visit_id localidx*#1559] +[visit_exp (`%`_resulttype{`X*#10935`}([`V128`_valtype]), [], `%`_resulttype{`X*#10984`}([($unpackshape(sh) : numtype <: valtype)]))] +[visit_exp `%`_resulttype{`X*#10935`}([`V128`_valtype])] +[visit_exp `X*#10935`] +[visit_id X*#10935] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#10984`}([($unpackshape(sh) : numtype <: valtype)])] +[visit_exp `X*#10984`] +[visit_id X*#10984] +[visit_exp ([($unpackshape(sh) : numtype <: valtype)])] +[visit_exp [($unpackshape(sh) : numtype <: valtype)]] +[visit_exp ($unpackshape(sh) : numtype <: valtype)] +[visit_exp $unpackshape(sh)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp (i!`%`_laneidx{i#8600}.0 < $dim(sh)!`%`_dim{i#8602}.0)] +[visit_exp i!`%`_laneidx{i#8600}.0] +[visit_exp i!`%`_laneidx{i#8600}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#8600] +[visit_id i#8600] +[visit_exp $dim(sh)!`%`_dim{i#8602}.0] +[visit_exp $dim(sh)!`%`_dim{i#8602}] +[visit_exp $dim(sh)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp i#8602] +[visit_id i#8602] +[check_dims] C X*#11005 X*#11054 i i#8636 i#8638 laneidx#15 localidx*#1571 resulttype#2615 sh shape#310 +[visit_exp C] +[visit_id C] +[visit_exp `VREPLACE_LANE`_instr{shape#310, laneidx#15}(sh, i)] +[visit_exp shape#310] +[visit_id shape#310] +[visit_exp laneidx#15] +[visit_id laneidx#15] +[visit_exp (sh, i)] +[visit_exp sh] +[visit_id sh] +[visit_exp i] +[visit_id i] +[visit_exp `%->_%%`_instrtype{resulttype#2615, `localidx*#1571`}(`%`_resulttype{`X*#11005`}([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype{`X*#11054`}([`V128`_valtype]))] +[visit_exp resulttype#2615] +[visit_id resulttype#2615] +[visit_exp `localidx*#1571`] +[visit_id localidx*#1571] +[visit_exp (`%`_resulttype{`X*#11005`}([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype{`X*#11054`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#11005`}([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)])] +[visit_exp `X*#11005`] +[visit_id X*#11005] +[visit_exp ([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)])] +[visit_exp [`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp ($unpackshape(sh) : numtype <: valtype)] +[visit_exp $unpackshape(sh)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp []] +[visit_exp `%`_resulttype{`X*#11054`}([`V128`_valtype])] +[visit_exp `X*#11054`] +[visit_id X*#11054] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp (i!`%`_laneidx{i#8636}.0 < $dim(sh)!`%`_dim{i#8638}.0)] +[visit_exp i!`%`_laneidx{i#8636}.0] +[visit_exp i!`%`_laneidx{i#8636}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#8636] +[visit_id i#8636] +[visit_exp $dim(sh)!`%`_dim{i#8638}.0] +[visit_exp $dim(sh)!`%`_dim{i#8638}] +[visit_exp $dim(sh)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp i#8638] +[visit_id i#8638] +[check_dims] C X*#11073 X*#11122 ishape_1#9 ishape_2#9 localidx*#1583 resulttype#2635 sh_1 sh_2 vextunop +[visit_exp C] +[visit_id C] +[visit_exp `VEXTUNOP`_instr{ishape_1#9, ishape_2#9}(sh_1, sh_2, vextunop)] +[visit_exp ishape_1#9] +[visit_id ishape_1#9] +[visit_exp ishape_2#9] +[visit_id ishape_2#9] +[visit_exp (sh_1, sh_2, vextunop)] +[visit_exp sh_1] +[visit_id sh_1] +[visit_exp sh_2] +[visit_id sh_2] +[visit_exp vextunop] +[visit_id vextunop] +[visit_exp `%->_%%`_instrtype{resulttype#2635, `localidx*#1583`}(`%`_resulttype{`X*#11073`}([`V128`_valtype]), [], `%`_resulttype{`X*#11122`}([`V128`_valtype]))] +[visit_exp resulttype#2635] +[visit_id resulttype#2635] +[visit_exp `localidx*#1583`] +[visit_id localidx*#1583] +[visit_exp (`%`_resulttype{`X*#11073`}([`V128`_valtype]), [], `%`_resulttype{`X*#11122`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#11073`}([`V128`_valtype])] +[visit_exp `X*#11073`] +[visit_id X*#11073] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#11122`}([`V128`_valtype])] +[visit_exp `X*#11122`] +[visit_id X*#11122] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#11143 X*#11192 ishape_1#11 ishape_2#11 localidx*#1595 resulttype#2655 sh_1 sh_2 vextbinop +[visit_exp C] +[visit_id C] +[visit_exp `VEXTBINOP`_instr{ishape_1#11, ishape_2#11}(sh_1, sh_2, vextbinop)] +[visit_exp ishape_1#11] +[visit_id ishape_1#11] +[visit_exp ishape_2#11] +[visit_id ishape_2#11] +[visit_exp (sh_1, sh_2, vextbinop)] +[visit_exp sh_1] +[visit_id sh_1] +[visit_exp sh_2] +[visit_id sh_2] +[visit_exp vextbinop] +[visit_id vextbinop] +[visit_exp `%->_%%`_instrtype{resulttype#2655, `localidx*#1595`}(`%`_resulttype{`X*#11143`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11192`}([`V128`_valtype]))] +[visit_exp resulttype#2655] +[visit_id resulttype#2655] +[visit_exp `localidx*#1595`] +[visit_id localidx*#1595] +[visit_exp (`%`_resulttype{`X*#11143`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11192`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#11143`}([`V128`_valtype `V128`_valtype])] +[visit_exp `X*#11143`] +[visit_id X*#11143] +[visit_exp ([`V128`_valtype `V128`_valtype])] +[visit_exp [`V128`_valtype `V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#11192`}([`V128`_valtype])] +[visit_exp `X*#11192`] +[visit_id X*#11192] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#11213 X*#11262 ishape_1#13 ishape_2#13 localidx*#1607 resulttype#2675 sh_1 sh_2 vextternop +[visit_exp C] +[visit_id C] +[visit_exp `VEXTTERNOP`_instr{ishape_1#13, ishape_2#13}(sh_1, sh_2, vextternop)] +[visit_exp ishape_1#13] +[visit_id ishape_1#13] +[visit_exp ishape_2#13] +[visit_id ishape_2#13] +[visit_exp (sh_1, sh_2, vextternop)] +[visit_exp sh_1] +[visit_id sh_1] +[visit_exp sh_2] +[visit_id sh_2] +[visit_exp vextternop] +[visit_id vextternop] +[visit_exp `%->_%%`_instrtype{resulttype#2675, `localidx*#1607`}(`%`_resulttype{`X*#11213`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11262`}([`V128`_valtype]))] +[visit_exp resulttype#2675] +[visit_id resulttype#2675] +[visit_exp `localidx*#1607`] +[visit_id localidx*#1607] +[visit_exp (`%`_resulttype{`X*#11213`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11262`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#11213`}([`V128`_valtype `V128`_valtype `V128`_valtype])] +[visit_exp `X*#11213`] +[visit_id X*#11213] +[visit_exp ([`V128`_valtype `V128`_valtype `V128`_valtype])] +[visit_exp [`V128`_valtype `V128`_valtype `V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#11262`}([`V128`_valtype])] +[visit_exp `X*#11262`] +[visit_id X*#11262] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C Jnn#95 Jnn#96 Jnn#97 X*#11283 X*#11332 ishape_1#15 ishape_2#15 localidx*#1619 resulttype#2695 sh_1 sh_2 shape#348 shape#349 shape#350 sx sx#56 +[visit_exp C] +[visit_id C] +[visit_exp `VNARROW`_instr{ishape_1#15, ishape_2#15, sx#56, shape#348, Jnn#95, shape#349, Jnn#96, shape#350, Jnn#97}(sh_1, sh_2, sx)] +[visit_exp ishape_1#15] +[visit_id ishape_1#15] +[visit_exp ishape_2#15] +[visit_id ishape_2#15] +[visit_exp sx#56] +[visit_id sx#56] +[visit_exp shape#348] +[visit_id shape#348] +[visit_exp Jnn#95] +[visit_id Jnn#95] +[visit_exp shape#349] +[visit_id shape#349] +[visit_exp Jnn#96] +[visit_id Jnn#96] +[visit_exp shape#350] +[visit_id shape#350] +[visit_exp Jnn#97] +[visit_id Jnn#97] +[visit_exp (sh_1, sh_2, sx)] +[visit_exp sh_1] +[visit_id sh_1] +[visit_exp sh_2] +[visit_id sh_2] +[visit_exp sx] +[visit_id sx] +[visit_exp `%->_%%`_instrtype{resulttype#2695, `localidx*#1619`}(`%`_resulttype{`X*#11283`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11332`}([`V128`_valtype]))] +[visit_exp resulttype#2695] +[visit_id resulttype#2695] +[visit_exp `localidx*#1619`] +[visit_id localidx*#1619] +[visit_exp (`%`_resulttype{`X*#11283`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11332`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#11283`}([`V128`_valtype `V128`_valtype])] +[visit_exp `X*#11283`] +[visit_id X*#11283] +[visit_exp ([`V128`_valtype `V128`_valtype])] +[visit_exp [`V128`_valtype `V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#11332`}([`V128`_valtype])] +[visit_exp `X*#11332`] +[visit_id X*#11332] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#11351 X*#11400 localidx*#1631 resulttype#2715 sh_1 sh_2 shape_1#3 shape_2#3 vcvtop +[visit_exp C] +[visit_id C] +[visit_exp `VCVTOP`_instr{shape_1#3, shape_2#3}(sh_1, sh_2, vcvtop)] +[visit_exp shape_1#3] +[visit_id shape_1#3] +[visit_exp shape_2#3] +[visit_id shape_2#3] +[visit_exp (sh_1, sh_2, vcvtop)] +[visit_exp sh_1] +[visit_id sh_1] +[visit_exp sh_2] +[visit_id sh_2] +[visit_exp vcvtop] +[visit_id vcvtop] +[visit_exp `%->_%%`_instrtype{resulttype#2715, `localidx*#1631`}(`%`_resulttype{`X*#11351`}([`V128`_valtype]), [], `%`_resulttype{`X*#11400`}([`V128`_valtype]))] +[visit_exp resulttype#2715] +[visit_id resulttype#2715] +[visit_exp `localidx*#1631`] +[visit_id localidx*#1631] +[visit_exp (`%`_resulttype{`X*#11351`}([`V128`_valtype]), [], `%`_resulttype{`X*#11400`}([`V128`_valtype]))] +[visit_exp `%`_resulttype{`X*#11351`}([`V128`_valtype])] +[visit_exp `X*#11351`] +[visit_id X*#11351] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#11400`}([`V128`_valtype])] +[visit_exp `X*#11400`] +[visit_id X*#11400] +[visit_exp ([`V128`_valtype])] +[visit_exp [`V128`_valtype]] +[visit_exp `V128`_valtype] +[visit_exp ()] +[check_dims] C X*#11421 X*#11470 localidx*#1643 resulttype#2735 +[visit_exp C] +[visit_id C] +[visit_exp []] +[visit_exp `%->_%%`_instrtype{resulttype#2735, `localidx*#1643`}(`%`_resulttype{`X*#11421`}([]), [], `%`_resulttype{`X*#11470`}([]))] +[visit_exp resulttype#2735] +[visit_id resulttype#2735] +[visit_exp `localidx*#1643`] +[visit_id localidx*#1643] +[visit_exp (`%`_resulttype{`X*#11421`}([]), [], `%`_resulttype{`X*#11470`}([]))] +[visit_exp `%`_resulttype{`X*#11421`}([])] +[visit_exp `X*#11421`] +[visit_id X*#11421] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#11470`}([])] +[visit_exp `X*#11470`] +[visit_id X*#11470] +[visit_exp ([])] +[visit_exp []] +[check_dims] C X*#11481 X*#11542 X*#11555 X*#11607 X*#11620 X*#11672 i#8868 init init#113 init#131 instr_1 instr_2 localidx*#1655 localidx*#1667 localidx*#1679 localtype*#13 resulttype#2755 resulttype#2775 resulttype#2795 t t_1 t_2 t_3 valtype#403 valtype#421 x_1 x_2 +[visit_exp C] +[visit_id C] +[visit_exp [instr_1] ++ instr_2*{instr_2 <- `instr_2*`}] +[visit_exp [instr_1]] +[visit_exp instr_1] +[visit_id instr_1] +[visit_exp instr_2*{instr_2 <- `instr_2*`}] +[scope_enter instr_2] +[visit_exp instr_2] +[visit_id instr_2] not free +[visit_id instr_2] not free +[scope_exit instr_2] +[visit_exp `instr_2*`] +[visit_id instr_2*] no dims +[visit_id instr_2*] +[visit_exp `%->_%%`_instrtype{resulttype#2755, `localidx*#1655`}(`%`_resulttype{`X*#11481`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11542`}(t_3*{t_3 <- `t_3*`}))] +[visit_exp resulttype#2755] +[visit_id resulttype#2755] +[visit_exp `localidx*#1655`] +[visit_id localidx*#1655] +[visit_exp (`%`_resulttype{`X*#11481`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11542`}(t_3*{t_3 <- `t_3*`}))] +[visit_exp `%`_resulttype{`X*#11481`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#11481`] +[visit_id X*#11481] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}] +[visit_exp x_1*{x_1 <- `x_1*`}] +[scope_enter x_1] +[visit_exp x_1] +[visit_id x_1] not free +[visit_id x_1] not free +[scope_exit x_1] +[visit_exp `x_1*`] +[visit_id x_1*] no dims +[visit_id x_1*] +[visit_exp x_2*{x_2 <- `x_2*`}] +[scope_enter x_2] +[visit_exp x_2] +[visit_id x_2] not free +[visit_id x_2] not free +[scope_exit x_2] +[visit_exp `x_2*`] +[visit_id x_2*] no dims +[visit_id x_2*] +[visit_exp `%`_resulttype{`X*#11542`}(t_3*{t_3 <- `t_3*`})] +[visit_exp `X*#11542`] +[visit_id X*#11542] +[visit_exp (t_3*{t_3 <- `t_3*`})] +[visit_exp t_3*{t_3 <- `t_3*`}] +[scope_enter t_3] +[visit_exp t_3] +[visit_id t_3] not free +[visit_id t_3] not free +[scope_exit t_3] +[visit_exp `t_3*`] +[visit_id t_3*] no dims +[visit_id t_3*] +[visit_exp (C, instr_1, `%->_%%`_instrtype{resulttype#2775, `localidx*#1667`}(`%`_resulttype{`X*#11555`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#11607`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp instr_1] +[visit_id instr_1] not free +[visit_exp `%->_%%`_instrtype{resulttype#2775, `localidx*#1667`}(`%`_resulttype{`X*#11555`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#11607`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#2775] +[visit_id resulttype#2775] +[visit_exp `localidx*#1667`] +[visit_id localidx*#1667] +[visit_exp (`%`_resulttype{`X*#11555`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#11607`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#11555`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#11555`] +[visit_id X*#11555] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp x_1*{x_1 <- `x_1*`}] +[scope_enter x_1] +[visit_exp x_1] +[visit_id x_1] not free +[visit_id x_1] not free +[scope_exit x_1] +[visit_exp `x_1*`] +[visit_id x_1*] not free +[visit_id x_1*] no dims +[visit_exp `%`_resulttype{`X*#11607`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#11607`] +[visit_id X*#11607] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[scope_enter i#8868] +[scope_enter init] +[scope_enter init#113] +[scope_enter localtype*#13] +[scope_enter t] +[scope_enter valtype#403] +[scope_enter x_1] +[visit_exp (C.`LOCALS`_context{`localtype*#13`}[x_1!`%`_idx{i#8868}.0] = `%%`_localtype{init#113, valtype#403}(init, t))] +[visit_exp C.`LOCALS`_context{`localtype*#13`}[x_1!`%`_idx{i#8868}.0]] +[visit_exp C.`LOCALS`_context{`localtype*#13`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `localtype*#13`] +[visit_id localtype*#13] not free +[visit_exp x_1!`%`_idx{i#8868}.0] +[visit_exp x_1!`%`_idx{i#8868}] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp i#8868] +[visit_id i#8868] not free +[visit_exp `%%`_localtype{init#113, valtype#403}(init, t)] +[visit_exp init#113] +[visit_id init#113] not free +[visit_exp valtype#403] +[visit_id valtype#403] not free +[visit_exp (init, t)] +[visit_exp init] +[visit_id init] not free +[visit_exp t] +[visit_id t] not free +[visit_id i#8868] not free +[visit_id init] not free +[visit_id init#113] not free +[visit_id localtype*#13] not free +[visit_id t] not free +[visit_id valtype#403] not free +[visit_id x_1] not free +[scope_exit x_1] +[scope_exit valtype#403] +[scope_exit t] +[scope_exit localtype*#13] +[scope_exit init#113] +[scope_exit init] +[scope_exit i#8868] +[visit_exp `i#8868*`] +[visit_id i#8868*] no dims +[visit_id i#8868*] +[visit_exp `init*`] +[visit_id init*] no dims +[visit_id init*] +[visit_exp `init#113*`] +[visit_id init#113*] no dims +[visit_id init#113*] +[visit_exp `localtype*#13*`] +[visit_id localtype*#13*] no dims +[visit_id localtype*#13*] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp `valtype#403*`] +[visit_id valtype#403*] no dims +[visit_id valtype#403*] +[visit_exp `x_1*`] +[visit_id x_1*] not free +[visit_id x_1*] no dims +[visit_exp ($with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype{init#131, valtype#421}(`SET`_init, t)*{init#131 <- `init#131*`, t <- `t*`, valtype#421 <- `valtype#421*`}), instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype{resulttype#2795, `localidx*#1679`}(`%`_resulttype{`X*#11620`}(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11672`}(t_3*{t_3 <- `t_3*`})))] +[visit_exp $with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype{init#131, valtype#421}(`SET`_init, t)*{init#131 <- `init#131*`, t <- `t*`, valtype#421 <- `valtype#421*`})] +[visit_exp C] +[visit_id C] not free +[visit_exp x_1*{x_1 <- `x_1*`}] +[scope_enter x_1] +[visit_exp x_1] +[visit_id x_1] not free +[visit_id x_1] not free +[scope_exit x_1] +[visit_exp `x_1*`] +[visit_id x_1*] not free +[visit_id x_1*] no dims +[visit_exp `%%`_localtype{init#131, valtype#421}(`SET`_init, t)*{init#131 <- `init#131*`, t <- `t*`, valtype#421 <- `valtype#421*`}] +[scope_enter init#131] +[scope_enter t] +[scope_enter valtype#421] +[visit_exp `%%`_localtype{init#131, valtype#421}(`SET`_init, t)] +[visit_exp init#131] +[visit_id init#131] not free +[visit_exp valtype#421] +[visit_id valtype#421] not free +[visit_exp (`SET`_init, t)] +[visit_exp `SET`_init] +[visit_exp ()] +[visit_exp t] +[visit_id t] not free +[visit_id init#131] not free +[visit_id t] not free +[visit_id valtype#421] not free +[scope_exit valtype#421] +[scope_exit t] +[scope_exit init#131] +[visit_exp `init#131*`] +[visit_id init#131*] no dims +[visit_id init#131*] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp `valtype#421*`] +[visit_id valtype#421*] no dims +[visit_id valtype#421*] +[visit_exp instr_2*{instr_2 <- `instr_2*`}] +[scope_enter instr_2] +[visit_exp instr_2] +[visit_id instr_2] not free +[visit_id instr_2] not free +[scope_exit instr_2] +[visit_exp `instr_2*`] +[visit_id instr_2*] not free +[visit_id instr_2*] no dims +[visit_exp `%->_%%`_instrtype{resulttype#2795, `localidx*#1679`}(`%`_resulttype{`X*#11620`}(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11672`}(t_3*{t_3 <- `t_3*`}))] +[visit_exp resulttype#2795] +[visit_id resulttype#2795] +[visit_exp `localidx*#1679`] +[visit_id localidx*#1679] +[visit_exp (`%`_resulttype{`X*#11620`}(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11672`}(t_3*{t_3 <- `t_3*`}))] +[visit_exp `%`_resulttype{`X*#11620`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#11620`] +[visit_id X*#11620] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp x_2*{x_2 <- `x_2*`}] +[scope_enter x_2] +[visit_exp x_2] +[visit_id x_2] not free +[visit_id x_2] not free +[scope_exit x_2] +[visit_exp `x_2*`] +[visit_id x_2*] not free +[visit_id x_2*] no dims +[visit_exp `%`_resulttype{`X*#11672`}(t_3*{t_3 <- `t_3*`})] +[visit_exp `X*#11672`] +[visit_id X*#11672] +[visit_exp (t_3*{t_3 <- `t_3*`})] +[visit_exp t_3*{t_3 <- `t_3*`}] +[scope_enter t_3] +[visit_exp t_3] +[visit_id t_3] not free +[visit_id t_3] not free +[scope_exit t_3] +[visit_exp `t_3*`] +[visit_id t_3*] not free +[visit_id t_3*] no dims +[check_dims] C instr it it' +[visit_exp C] +[visit_id C] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp it'] +[visit_id it'] +[visit_exp (C, instr*{instr <- `instr*`}, it)] +[visit_exp C] +[visit_id C] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp it] +[visit_id it] +[visit_exp (C, it, it')] +[visit_exp C] +[visit_id C] not free +[visit_exp it] +[visit_id it] not free +[visit_exp it'] +[visit_id it'] not free +[visit_exp (C, it')] +[visit_exp C] +[visit_id C] not free +[visit_exp it'] +[visit_id it'] not free +[check_dims] C X*#11695 X*#11755 X*#11766 X*#11818 X*#11831 instr localidx*#1721 localidx*#1733 resulttype#2865 resulttype#2885 t t_1 t_2 x +[visit_exp C] +[visit_id C] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp `%->_%%`_instrtype{resulttype#2865, `localidx*#1721`}(`%`_resulttype{`X*#11695`}(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11755`}(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#2865] +[visit_id resulttype#2865] +[visit_exp `localidx*#1721`] +[visit_id localidx*#1721] +[visit_exp (`%`_resulttype{`X*#11695`}(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11755`}(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#11695`}(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#11695`] +[visit_id X*#11695] +[visit_exp (t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`})] +[visit_exp t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp `%`_resulttype{`X*#11755`}(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#11755`] +[visit_id X*#11755] +[visit_exp (t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`})] +[visit_exp t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#2885, `localidx*#1733`}(`%`_resulttype{`X*#11766`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11818`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp `%->_%%`_instrtype{resulttype#2885, `localidx*#1733`}(`%`_resulttype{`X*#11766`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11818`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#2885] +[visit_id resulttype#2885] +[visit_exp `localidx*#1733`] +[visit_id localidx*#1733] +[visit_exp (`%`_resulttype{`X*#11766`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11818`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#11766`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#11766`] +[visit_id X*#11766] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[visit_exp `%`_resulttype{`X*#11818`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#11818`] +[visit_id X*#11818] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp (C, `%`_resulttype{`X*#11831`}(t*{t <- `t*`}))] +[visit_exp C] +[visit_id C] not free +[visit_exp `%`_resulttype{`X*#11831`}(t*{t <- `t*`})] +[visit_exp `X*#11831`] +[visit_id X*#11831] +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[check_dims] C X*#11844 X*#11867 X*#11911 instr localidx*#1745 resulttype#2905 t +[visit_exp C] +[visit_id C] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp `%`_resulttype{`X*#11844`}(t*{t <- `t*`})] +[visit_exp `X*#11844`] +[visit_id X*#11844] +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp (C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#2905, `localidx*#1745`}(`%`_resulttype{`X*#11867`}([]), [], `%`_resulttype{`X*#11911`}(t*{t <- `t*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp `%->_%%`_instrtype{resulttype#2905, `localidx*#1745`}(`%`_resulttype{`X*#11867`}([]), [], `%`_resulttype{`X*#11911`}(t*{t <- `t*`}))] +[visit_exp resulttype#2905] +[visit_id resulttype#2905] +[visit_exp `localidx*#1745`] +[visit_id localidx*#1745] +[visit_exp (`%`_resulttype{`X*#11867`}([]), [], `%`_resulttype{`X*#11911`}(t*{t <- `t*`}))] +[visit_exp `%`_resulttype{`X*#11867`}([])] +[visit_exp `X*#11867`] +[visit_id X*#11867] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#11911`}(t*{t <- `t*`})] +[visit_exp `X*#11911`] +[visit_id X*#11911] +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[check_dims] +[check_dims] +[check_dims] +[check_dims] C c_nt nt numtype#29 +[visit_exp C] +[visit_id C] +[visit_exp `CONST`_instr{numtype#29}(nt, c_nt)] +[visit_exp numtype#29] +[visit_id numtype#29] +[visit_exp (nt, c_nt)] +[visit_exp nt] +[visit_id nt] +[visit_exp c_nt] +[visit_id c_nt] +[check_dims] C c_vt vectype#40 vt +[visit_exp C] +[visit_id C] +[visit_exp `VCONST`_instr{vectype#40}(vt, c_vt)] +[visit_exp vectype#40] +[visit_id vectype#40] +[visit_exp (vt, c_vt)] +[visit_exp vt] +[visit_id vt] +[visit_exp c_vt] +[visit_id c_vt] +[check_dims] C heaptype#945 ht +[visit_exp C] +[visit_id C] +[visit_exp `REF.NULL`_instr{heaptype#945}(ht)] +[visit_exp heaptype#945] +[visit_id heaptype#945] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[check_dims] C +[visit_exp C] +[visit_id C] +[visit_exp `REF.I31`_instr] +[visit_exp ()] +[check_dims] C funcidx#183 x +[visit_exp C] +[visit_id C] +[visit_exp `REF.FUNC`_instr{funcidx#183}(x)] +[visit_exp funcidx#183] +[visit_id funcidx#183] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[check_dims] C typeidx#469 x +[visit_exp C] +[visit_id C] +[visit_exp `STRUCT.NEW`_instr{typeidx#469}(x)] +[visit_exp typeidx#469] +[visit_id typeidx#469] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[check_dims] C typeidx#471 x +[visit_exp C] +[visit_id C] +[visit_exp `STRUCT.NEW_DEFAULT`_instr{typeidx#471}(x)] +[visit_exp typeidx#471] +[visit_id typeidx#471] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[check_dims] C typeidx#473 x +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.NEW`_instr{typeidx#473}(x)] +[visit_exp typeidx#473] +[visit_id typeidx#473] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[check_dims] C typeidx#475 x +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.NEW_DEFAULT`_instr{typeidx#475}(x)] +[visit_exp typeidx#475] +[visit_id typeidx#475] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[check_dims] C i#9243 n typeidx#477 u32#15 x +[visit_exp C] +[visit_id C] +[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#477, u32#15}(x, `%`_u32{i#9243}(n))] +[visit_exp typeidx#477] +[visit_id typeidx#477] +[visit_exp u32#15] +[visit_id u32#15] +[visit_exp (x, `%`_u32{i#9243}(n))] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#9243}(n)] +[visit_exp i#9243] +[visit_id i#9243] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[check_dims] C +[visit_exp C] +[visit_id C] +[visit_exp `ANY.CONVERT_EXTERN`_instr] +[visit_exp ()] +[check_dims] C +[visit_exp C] +[visit_id C] +[visit_exp `EXTERN.CONVERT_ANY`_instr] +[visit_exp ()] +[check_dims] C globalidx#13 globaltype*#10 i#9277 mut?#817 t valtype#427 x +[visit_exp C] +[visit_id C] +[visit_exp `GLOBAL.GET`_instr{globalidx#13}(x)] +[visit_exp globalidx#13] +[visit_id globalidx#13] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp (C.`GLOBALS`_context{`globaltype*#10`}[x!`%`_idx{i#9277}.0] = `%%`_globaltype{`mut?#817`, valtype#427}(?(), t))] +[visit_exp C.`GLOBALS`_context{`globaltype*#10`}[x!`%`_idx{i#9277}.0]] +[visit_exp C.`GLOBALS`_context{`globaltype*#10`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `globaltype*#10`] +[visit_id globaltype*#10] +[visit_exp x!`%`_idx{i#9277}.0] +[visit_exp x!`%`_idx{i#9277}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#9277] +[visit_id i#9277] +[visit_exp `%%`_globaltype{`mut?#817`, valtype#427}(?(), t)] +[visit_exp `mut?#817`] +[visit_id mut?#817] +[visit_exp valtype#427] +[visit_id valtype#427] +[visit_exp (?(), t)] +[visit_exp ?()] +[visit_exp t] +[visit_id t] +[check_dims] C Inn binop numtype#31 +[visit_exp C] +[visit_id C] +[visit_exp `BINOP`_instr{numtype#31}((Inn : Inn <: numtype), binop)] +[visit_exp numtype#31] +[visit_id numtype#31] +[visit_exp ((Inn : Inn <: numtype), binop)] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp binop] +[visit_id binop] +[visit_exp (Inn <- [`I32`_Inn `I64`_Inn])] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp [`I32`_Inn `I64`_Inn]] +[visit_exp `I32`_Inn] +[visit_exp ()] +[visit_exp `I64`_Inn] +[visit_exp ()] +[visit_exp (binop <- [`ADD`_binop_ `SUB`_binop_ `MUL`_binop_])] +[visit_exp binop] +[visit_id binop] not free +[visit_exp [`ADD`_binop_ `SUB`_binop_ `MUL`_binop_]] +[visit_exp `ADD`_binop_] +[visit_exp ()] +[visit_exp `SUB`_binop_] +[visit_exp ()] +[visit_exp `MUL`_binop_] +[visit_exp ()] +[check_dims] C instr +[visit_exp C] +[visit_id C] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[scope_enter instr] +[visit_exp (C, instr)] +[visit_exp C] +[visit_id C] not free +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[check_dims] C X*#11922 expr t +[visit_exp C] +[visit_id C] +[visit_exp expr] +[visit_id expr] +[visit_exp t] +[visit_id t] +[visit_exp (C, expr, `%`_resulttype{`X*#11922`}([t]))] +[visit_exp C] +[visit_id C] not free +[visit_exp expr] +[visit_id expr] not free +[visit_exp `%`_resulttype{`X*#11922`}([t])] +[visit_exp `X*#11922`] +[visit_id X*#11922] +[visit_exp ([t])] +[visit_exp [t]] +[visit_exp t] +[visit_id t] not free +[visit_exp (C, expr)] +[visit_exp C] +[visit_id C] not free +[visit_exp expr] +[visit_id expr] not free +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] C datatype*#11 deftype*#53 deftype*#54 deftype*#55 dt elemtype*#11 funcidx*#48 globaltype*#11 i#9287 localtype*#14 memtype*#24 rectype rectype#865 resulttype*#22 resulttype?#19 subtype*#10 tabletype*#17 tagtype*#10 typeidx#489 x +[visit_exp C] +[visit_id C] +[visit_exp `TYPE`_type{rectype#865}(rectype)] +[visit_exp rectype#865] +[visit_id rectype#865] +[visit_exp (rectype)] +[visit_exp rectype] +[visit_id rectype] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp (x!`%`_idx{i#9287}.0 = |C.`TYPES`_context{`deftype*#53`}|)] +[visit_exp x!`%`_idx{i#9287}.0] +[visit_exp x!`%`_idx{i#9287}] +[visit_exp x] +[visit_id x] +[visit_exp i#9287] +[visit_id i#9287] +[visit_exp |C.`TYPES`_context{`deftype*#53`}|] +[visit_exp C.`TYPES`_context{`deftype*#53`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#53`] +[visit_id deftype*#53] +[visit_exp (dt*{dt <- `dt*`} = $rolldt(x, rectype))] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp $rolldt(x, rectype)] +[visit_exp x] +[visit_id x] not free +[visit_exp rectype] +[visit_id rectype] not free +[visit_exp (C +++ {`TYPES`{`deftype*#54`} dt*{dt <- `dt*`}, `RECS`{`subtype*#10`} [], `TAGS`{`tagtype*#10`} [], `GLOBALS`{`globaltype*#11`} [], `MEMS`{`memtype*#24`} [], `TABLES`{`tabletype*#17`} [], `FUNCS`{`deftype*#55`} [], `DATAS`{`datatype*#11`} [], `ELEMS`{`elemtype*#11`} [], `LOCALS`{`localtype*#14`} [], `LABELS`{`resulttype*#22`} [], `RETURN`{`resulttype?#19`} ?(), `REFS`{`funcidx*#48`} []}, rectype, `OK`_oktypeidx{typeidx#489}(x))] +[visit_exp C +++ {`TYPES`{`deftype*#54`} dt*{dt <- `dt*`}, `RECS`{`subtype*#10`} [], `TAGS`{`tagtype*#10`} [], `GLOBALS`{`globaltype*#11`} [], `MEMS`{`memtype*#24`} [], `TABLES`{`tabletype*#17`} [], `FUNCS`{`deftype*#55`} [], `DATAS`{`datatype*#11`} [], `ELEMS`{`elemtype*#11`} [], `LOCALS`{`localtype*#14`} [], `LABELS`{`resulttype*#22`} [], `RETURN`{`resulttype?#19`} ?(), `REFS`{`funcidx*#48`} []}] +[visit_exp C] +[visit_id C] not free +[visit_exp {`TYPES`{`deftype*#54`} dt*{dt <- `dt*`}, `RECS`{`subtype*#10`} [], `TAGS`{`tagtype*#10`} [], `GLOBALS`{`globaltype*#11`} [], `MEMS`{`memtype*#24`} [], `TABLES`{`tabletype*#17`} [], `FUNCS`{`deftype*#55`} [], `DATAS`{`datatype*#11`} [], `ELEMS`{`elemtype*#11`} [], `LOCALS`{`localtype*#14`} [], `LABELS`{`resulttype*#22`} [], `RETURN`{`resulttype?#19`} ?(), `REFS`{`funcidx*#48`} []}] +[visit_exp `deftype*#54`] +[visit_id deftype*#54] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp `subtype*#10`] +[visit_id subtype*#10] +[visit_exp []] +[visit_exp `tagtype*#10`] +[visit_id tagtype*#10] +[visit_exp []] +[visit_exp `globaltype*#11`] +[visit_id globaltype*#11] +[visit_exp []] +[visit_exp `memtype*#24`] +[visit_id memtype*#24] +[visit_exp []] +[visit_exp `tabletype*#17`] +[visit_id tabletype*#17] +[visit_exp []] +[visit_exp `deftype*#55`] +[visit_id deftype*#55] +[visit_exp []] +[visit_exp `datatype*#11`] +[visit_id datatype*#11] +[visit_exp []] +[visit_exp `elemtype*#11`] +[visit_id elemtype*#11] +[visit_exp []] +[visit_exp `localtype*#14`] +[visit_id localtype*#14] +[visit_exp []] +[visit_exp `resulttype*#22`] +[visit_id resulttype*#22] +[visit_exp []] +[visit_exp `resulttype?#19`] +[visit_id resulttype?#19] +[visit_exp ?()] +[visit_exp `funcidx*#48`] +[visit_id funcidx*#48] +[visit_exp []] +[visit_exp rectype] +[visit_id rectype] not free +[visit_exp `OK`_oktypeidx{typeidx#489}(x)] +[visit_exp typeidx#489] +[visit_id typeidx#489] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[check_dims] C tagtype tagtype#105 +[visit_exp C] +[visit_id C] +[visit_exp `TAG`_tag{tagtype#105}(tagtype)] +[visit_exp tagtype#105] +[visit_id tagtype#105] +[visit_exp (tagtype)] +[visit_exp tagtype] +[visit_id tagtype] +[visit_exp $clos_tagtype(C, tagtype)] +[visit_exp C] +[visit_id C] not free +[visit_exp tagtype] +[visit_id tagtype] not free +[visit_exp (C, tagtype)] +[visit_exp C] +[visit_id C] not free +[visit_exp tagtype] +[visit_id tagtype] not free +[check_dims] C expr expr#385 globaltype globaltype#117 mut?#847 t valtype#457 +[visit_exp C] +[visit_id C] +[visit_exp `GLOBAL`_global{globaltype#117, expr#385}(globaltype, expr)] +[visit_exp globaltype#117] +[visit_id globaltype#117] +[visit_exp expr#385] +[visit_id expr#385] +[visit_exp (globaltype, expr)] +[visit_exp globaltype] +[visit_id globaltype] +[visit_exp expr] +[visit_id expr] +[visit_exp globaltype] +[visit_id globaltype] not free +[visit_exp (C, globaltype)] +[visit_exp C] +[visit_id C] not free +[visit_exp globaltype] +[visit_id globaltype] not free +[visit_exp (globaltype = `%%`_globaltype{`mut?#847`, valtype#457}(`MUT`_mut?{}, t))] +[visit_exp globaltype] +[visit_id globaltype] not free +[visit_exp `%%`_globaltype{`mut?#847`, valtype#457}(`MUT`_mut?{}, t)] +[visit_exp `mut?#847`] +[visit_id mut?#847] +[visit_exp valtype#457] +[visit_id valtype#457] +[visit_exp (`MUT`_mut?{}, t)] +[visit_exp `MUT`_mut?{}] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp t] +[visit_id t] +[visit_exp (C, expr, t)] +[visit_exp C] +[visit_id C] not free +[visit_exp expr] +[visit_id expr] not free +[visit_exp t] +[visit_id t] not free +[check_dims] C memtype memtype#129 +[visit_exp C] +[visit_id C] +[visit_exp `MEMORY`_mem{memtype#129}(memtype)] +[visit_exp memtype#129] +[visit_id memtype#129] +[visit_exp (memtype)] +[visit_exp memtype] +[visit_id memtype] +[visit_exp memtype] +[visit_id memtype] not free +[visit_exp (C, memtype)] +[visit_exp C] +[visit_id C] not free +[visit_exp memtype] +[visit_id memtype] not free +[check_dims] C addrtype#801 at expr expr#397 lim limits#801 reftype#531 rt tabletype tabletype#143 +[visit_exp C] +[visit_id C] +[visit_exp `TABLE`_table{tabletype#143, expr#397}(tabletype, expr)] +[visit_exp tabletype#143] +[visit_id tabletype#143] +[visit_exp expr#397] +[visit_id expr#397] +[visit_exp (tabletype, expr)] +[visit_exp tabletype] +[visit_id tabletype] +[visit_exp expr] +[visit_id expr] +[visit_exp tabletype] +[visit_id tabletype] not free +[visit_exp (C, tabletype)] +[visit_exp C] +[visit_id C] not free +[visit_exp tabletype] +[visit_id tabletype] not free +[visit_exp (tabletype = `%%%`_tabletype{addrtype#801, limits#801, reftype#531}(at, lim, rt))] +[visit_exp tabletype] +[visit_id tabletype] not free +[visit_exp `%%%`_tabletype{addrtype#801, limits#801, reftype#531}(at, lim, rt)] +[visit_exp addrtype#801] +[visit_id addrtype#801] +[visit_exp limits#801] +[visit_id limits#801] +[visit_exp reftype#531] +[visit_id reftype#531] +[visit_exp (at, lim, rt)] +[visit_exp at] +[visit_id at] +[visit_exp lim] +[visit_id lim] +[visit_exp rt] +[visit_id rt] +[visit_exp (C, expr, (rt : reftype <: valtype))] +[visit_exp C] +[visit_id C] not free +[visit_exp expr] +[visit_id expr] not free +[visit_exp (rt : reftype <: valtype)] +[visit_exp rt] +[visit_id rt] not free +[check_dims] C init#143 t valtype#469 valtype#481 +[visit_exp C] +[visit_id C] +[visit_exp `LOCAL`_local{valtype#469}(t)] +[visit_exp valtype#469] +[visit_id valtype#469] +[visit_exp (t)] +[visit_exp t] +[visit_id t] +[visit_exp `%%`_localtype{init#143, valtype#481}(`SET`_init, t)] +[visit_exp init#143] +[visit_id init#143] +[visit_exp valtype#481] +[visit_id valtype#481] +[visit_exp (`SET`_init, t)] +[visit_exp `SET`_init] +[visit_exp ()] +[visit_exp t] +[visit_id t] not free +[visit_exp t] +[visit_id t] not free +[check_dims] C init#155 t valtype#493 valtype#505 +[visit_exp C] +[visit_id C] +[visit_exp `LOCAL`_local{valtype#493}(t)] +[visit_exp valtype#493] +[visit_id valtype#493] +[visit_exp (t)] +[visit_exp t] +[visit_id t] +[visit_exp `%%`_localtype{init#155, valtype#505}(`UNSET`_init, t)] +[visit_exp init#155] +[visit_id init#155] +[visit_exp valtype#505] +[visit_id valtype#505] +[visit_exp (`UNSET`_init, t)] +[visit_exp `UNSET`_init] +[visit_exp ()] +[visit_exp t] +[visit_id t] not free +[visit_exp t] +[visit_id t] not free +[check_dims] C X*#11954 X*#11967 X*#11980 X*#11993 X*#12006 datatype*#12 deftype*#56 deftype*#57 deftype*#58 deftype*#59 elemtype*#12 expr expr#409 funcidx*#49 globaltype*#12 i#9337 i#9347 init#191 lct local local*#171 localtype*#15 memtype*#25 resulttype#2908 resulttype*#23 resulttype?#20 subtype*#11 t_1 t_2 tabletype*#18 tagtype*#11 typeidx#501 valtype#559 x +[visit_exp C] +[visit_id C] +[visit_exp `FUNC`_func{typeidx#501, `local*#171`, expr#409}(x, local*{local <- `local*`}, expr)] +[visit_exp typeidx#501] +[visit_id typeidx#501] +[visit_exp `local*#171`] +[visit_id local*#171] +[visit_exp expr#409] +[visit_id expr#409] +[visit_exp (x, local*{local <- `local*`}, expr)] +[visit_exp x] +[visit_id x] +[visit_exp local*{local <- `local*`}] +[scope_enter local] +[visit_exp local] +[visit_id local] not free +[visit_id local] not free +[scope_exit local] +[visit_exp `local*`] +[visit_id local*] no dims +[visit_id local*] +[visit_exp expr] +[visit_id expr] +[visit_exp C.`TYPES`_context{`deftype*#56`}[x!`%`_idx{i#9337}.0]] +[visit_exp C.`TYPES`_context{`deftype*#56`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#56`] +[visit_id deftype*#56] +[visit_exp x!`%`_idx{i#9337}.0] +[visit_exp x!`%`_idx{i#9337}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#9337] +[visit_id i#9337] +[visit_exp (C.`TYPES`_context{`deftype*#57`}[x!`%`_idx{i#9347}.0], `FUNC%->%`_comptype{resulttype#2908}(`%`_resulttype{`X*#11954`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#11967`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`TYPES`_context{`deftype*#57`}[x!`%`_idx{i#9347}.0]] +[visit_exp C.`TYPES`_context{`deftype*#57`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#57`] +[visit_id deftype*#57] +[visit_exp x!`%`_idx{i#9347}.0] +[visit_exp x!`%`_idx{i#9347}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#9347] +[visit_id i#9347] +[visit_exp `FUNC%->%`_comptype{resulttype#2908}(`%`_resulttype{`X*#11954`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#11967`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#2908] +[visit_id resulttype#2908] +[visit_exp (`%`_resulttype{`X*#11954`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#11967`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#11954`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#11954`] +[visit_id X*#11954] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp `%`_resulttype{`X*#11967`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#11967`] +[visit_id X*#11967] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[scope_enter lct] +[scope_enter local] +[visit_exp (C, local, lct)] +[visit_exp C] +[visit_id C] not free +[visit_exp local] +[visit_id local] not free +[visit_exp lct] +[visit_id lct] not free +[visit_id lct] not free +[visit_id local] not free +[scope_exit local] +[scope_exit lct] +[visit_exp `lct*`] +[visit_id lct*] no dims +[visit_id lct*] +[visit_exp `local*`] +[visit_id local*] not free +[visit_id local*] no dims +[visit_exp (C +++ {`TYPES`{`deftype*#58`} [], `RECS`{`subtype*#11`} [], `TAGS`{`tagtype*#11`} [], `GLOBALS`{`globaltype*#12`} [], `MEMS`{`memtype*#25`} [], `TABLES`{`tabletype*#18`} [], `FUNCS`{`deftype*#59`} [], `DATAS`{`datatype*#12`} [], `ELEMS`{`elemtype*#12`} [], `LOCALS`{`localtype*#15`} `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)*{init#191 <- `init#191*`, t_1 <- `t_1*`, valtype#559 <- `valtype#559*`} ++ lct*{lct <- `lct*`}, `LABELS`{`resulttype*#23`} [`%`_resulttype{`X*#11980`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#20`} ?(`%`_resulttype{`X*#11993`}(t_2*{t_2 <- `t_2*`})), `REFS`{`funcidx*#49`} []}, expr, `%`_resulttype{`X*#12006`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp C +++ {`TYPES`{`deftype*#58`} [], `RECS`{`subtype*#11`} [], `TAGS`{`tagtype*#11`} [], `GLOBALS`{`globaltype*#12`} [], `MEMS`{`memtype*#25`} [], `TABLES`{`tabletype*#18`} [], `FUNCS`{`deftype*#59`} [], `DATAS`{`datatype*#12`} [], `ELEMS`{`elemtype*#12`} [], `LOCALS`{`localtype*#15`} `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)*{init#191 <- `init#191*`, t_1 <- `t_1*`, valtype#559 <- `valtype#559*`} ++ lct*{lct <- `lct*`}, `LABELS`{`resulttype*#23`} [`%`_resulttype{`X*#11980`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#20`} ?(`%`_resulttype{`X*#11993`}(t_2*{t_2 <- `t_2*`})), `REFS`{`funcidx*#49`} []}] +[visit_exp C] +[visit_id C] not free +[visit_exp {`TYPES`{`deftype*#58`} [], `RECS`{`subtype*#11`} [], `TAGS`{`tagtype*#11`} [], `GLOBALS`{`globaltype*#12`} [], `MEMS`{`memtype*#25`} [], `TABLES`{`tabletype*#18`} [], `FUNCS`{`deftype*#59`} [], `DATAS`{`datatype*#12`} [], `ELEMS`{`elemtype*#12`} [], `LOCALS`{`localtype*#15`} `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)*{init#191 <- `init#191*`, t_1 <- `t_1*`, valtype#559 <- `valtype#559*`} ++ lct*{lct <- `lct*`}, `LABELS`{`resulttype*#23`} [`%`_resulttype{`X*#11980`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#20`} ?(`%`_resulttype{`X*#11993`}(t_2*{t_2 <- `t_2*`})), `REFS`{`funcidx*#49`} []}] +[visit_exp `deftype*#58`] +[visit_id deftype*#58] +[visit_exp []] +[visit_exp `subtype*#11`] +[visit_id subtype*#11] +[visit_exp []] +[visit_exp `tagtype*#11`] +[visit_id tagtype*#11] +[visit_exp []] +[visit_exp `globaltype*#12`] +[visit_id globaltype*#12] +[visit_exp []] +[visit_exp `memtype*#25`] +[visit_id memtype*#25] +[visit_exp []] +[visit_exp `tabletype*#18`] +[visit_id tabletype*#18] +[visit_exp []] +[visit_exp `deftype*#59`] +[visit_id deftype*#59] +[visit_exp []] +[visit_exp `datatype*#12`] +[visit_id datatype*#12] +[visit_exp []] +[visit_exp `elemtype*#12`] +[visit_id elemtype*#12] +[visit_exp []] +[visit_exp `localtype*#15`] +[visit_id localtype*#15] +[visit_exp `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)*{init#191 <- `init#191*`, t_1 <- `t_1*`, valtype#559 <- `valtype#559*`} ++ lct*{lct <- `lct*`}] +[visit_exp `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)*{init#191 <- `init#191*`, t_1 <- `t_1*`, valtype#559 <- `valtype#559*`}] +[scope_enter init#191] +[scope_enter t_1] +[scope_enter valtype#559] +[visit_exp `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)] +[visit_exp init#191] +[visit_id init#191] not free +[visit_exp valtype#559] +[visit_id valtype#559] not free +[visit_exp (`SET`_init, t_1)] +[visit_exp `SET`_init] +[visit_exp ()] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id init#191] not free +[visit_id t_1] not free +[visit_id valtype#559] not free +[scope_exit valtype#559] +[scope_exit t_1] +[scope_exit init#191] +[visit_exp `init#191*`] +[visit_id init#191*] no dims +[visit_id init#191*] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `valtype#559*`] +[visit_id valtype#559*] no dims +[visit_id valtype#559*] +[visit_exp lct*{lct <- `lct*`}] +[scope_enter lct] +[visit_exp lct] +[visit_id lct] not free +[visit_id lct] not free +[scope_exit lct] +[visit_exp `lct*`] +[visit_id lct*] not free +[visit_id lct*] no dims +[visit_exp `resulttype*#23`] +[visit_id resulttype*#23] +[visit_exp [`%`_resulttype{`X*#11980`}(t_2*{t_2 <- `t_2*`})]] +[visit_exp `%`_resulttype{`X*#11980`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#11980`] +[visit_id X*#11980] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp `resulttype?#20`] +[visit_id resulttype?#20] +[visit_exp ?(`%`_resulttype{`X*#11993`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#11993`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#11993`] +[visit_id X*#11993] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp `funcidx*#49`] +[visit_id funcidx*#49] +[visit_exp []] +[visit_exp expr] +[visit_id expr] not free +[visit_exp `%`_resulttype{`X*#12006`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#12006`] +[visit_id X*#12006] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] C b byte*#153 datamode datamode#153 +[visit_exp C] +[visit_id C] +[visit_exp `DATA`_data{`byte*#153`, datamode#153}(b*{b <- `b*`}, datamode)] +[visit_exp `byte*#153`] +[visit_id byte*#153] +[visit_exp datamode#153] +[visit_id datamode#153] +[visit_exp (b*{b <- `b*`}, datamode)] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp datamode] +[visit_id datamode] +[visit_exp `OK`_datatype] +[visit_exp ()] +[visit_exp (C, datamode, `OK`_datatype)] +[visit_exp C] +[visit_id C] not free +[visit_exp datamode] +[visit_id datamode] not free +[visit_exp `OK`_datatype] +[visit_exp ()] +[check_dims] C elemmode elemmode#165 elemtype expr expr*#165 reftype#543 +[visit_exp C] +[visit_id C] +[visit_exp `ELEM`_elem{reftype#543, `expr*#165`, elemmode#165}(elemtype, expr*{expr <- `expr*`}, elemmode)] +[visit_exp reftype#543] +[visit_id reftype#543] +[visit_exp `expr*#165`] +[visit_id expr*#165] +[visit_exp elemmode#165] +[visit_id elemmode#165] +[visit_exp (elemtype, expr*{expr <- `expr*`}, elemmode)] +[visit_exp elemtype] +[visit_id elemtype] +[visit_exp expr*{expr <- `expr*`}] +[scope_enter expr] +[visit_exp expr] +[visit_id expr] not free +[visit_id expr] not free +[scope_exit expr] +[visit_exp `expr*`] +[visit_id expr*] no dims +[visit_id expr*] +[visit_exp elemmode] +[visit_id elemmode] +[visit_exp elemtype] +[visit_id elemtype] not free +[visit_exp (C, elemtype)] +[visit_exp C] +[visit_id C] not free +[visit_exp elemtype] +[visit_id elemtype] not free +[scope_enter expr] +[visit_exp (C, expr, (elemtype : reftype <: valtype))] +[visit_exp C] +[visit_id C] not free +[visit_exp expr] +[visit_id expr] not free +[visit_exp (elemtype : reftype <: valtype)] +[visit_exp elemtype] +[visit_id elemtype] not free +[visit_id expr] not free +[scope_exit expr] +[visit_exp `expr*`] +[visit_id expr*] not free +[visit_id expr*] no dims +[visit_exp (C, elemmode, elemtype)] +[visit_exp C] +[visit_id C] not free +[visit_exp elemmode] +[visit_id elemmode] not free +[visit_exp elemtype] +[visit_id elemtype] not free +[check_dims] C +[visit_exp C] +[visit_id C] +[visit_exp `PASSIVE`_datamode] +[visit_exp ()] +[visit_exp `OK`_datatype] +[visit_exp ()] +[check_dims] C addrtype#813 at expr expr#411 i#9383 lim limits#813 memidx#63 memtype*#26 x +[visit_exp C] +[visit_id C] +[visit_exp `ACTIVE`_datamode{memidx#63, expr#411}(x, expr)] +[visit_exp memidx#63] +[visit_id memidx#63] +[visit_exp expr#411] +[visit_id expr#411] +[visit_exp (x, expr)] +[visit_exp x] +[visit_id x] +[visit_exp expr] +[visit_id expr] +[visit_exp `OK`_datatype] +[visit_exp ()] +[visit_exp (C.`MEMS`_context{`memtype*#26`}[x!`%`_idx{i#9383}.0] = `%%PAGE`_memtype{addrtype#813, limits#813}(at, lim))] +[visit_exp C.`MEMS`_context{`memtype*#26`}[x!`%`_idx{i#9383}.0]] +[visit_exp C.`MEMS`_context{`memtype*#26`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#26`] +[visit_id memtype*#26] +[visit_exp x!`%`_idx{i#9383}.0] +[visit_exp x!`%`_idx{i#9383}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#9383] +[visit_id i#9383] +[visit_exp `%%PAGE`_memtype{addrtype#813, limits#813}(at, lim)] +[visit_exp addrtype#813] +[visit_id addrtype#813] +[visit_exp limits#813] +[visit_id limits#813] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] +[visit_exp lim] +[visit_id lim] +[visit_exp (C, expr, (at : addrtype <: valtype))] +[visit_exp C] +[visit_id C] not free +[visit_exp expr] +[visit_id expr] not free +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] not free +[check_dims] C rt +[visit_exp C] +[visit_id C] +[visit_exp `PASSIVE`_elemmode] +[visit_exp ()] +[visit_exp rt] +[visit_id rt] +[check_dims] C rt +[visit_exp C] +[visit_id C] +[visit_exp `DECLARE`_elemmode] +[visit_exp ()] +[visit_exp rt] +[visit_id rt] +[check_dims] C addrtype#825 at expr expr#413 i#9407 lim limits#825 reftype#555 rt rt' tableidx#45 tabletype*#19 x +[visit_exp C] +[visit_id C] +[visit_exp `ACTIVE`_elemmode{tableidx#45, expr#413}(x, expr)] +[visit_exp tableidx#45] +[visit_id tableidx#45] +[visit_exp expr#413] +[visit_id expr#413] +[visit_exp (x, expr)] +[visit_exp x] +[visit_id x] +[visit_exp expr] +[visit_id expr] +[visit_exp rt] +[visit_id rt] +[visit_exp (C.`TABLES`_context{`tabletype*#19`}[x!`%`_idx{i#9407}.0] = `%%%`_tabletype{addrtype#825, limits#825, reftype#555}(at, lim, rt'))] +[visit_exp C.`TABLES`_context{`tabletype*#19`}[x!`%`_idx{i#9407}.0]] +[visit_exp C.`TABLES`_context{`tabletype*#19`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tabletype*#19`] +[visit_id tabletype*#19] +[visit_exp x!`%`_idx{i#9407}.0] +[visit_exp x!`%`_idx{i#9407}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#9407] +[visit_id i#9407] +[visit_exp `%%%`_tabletype{addrtype#825, limits#825, reftype#555}(at, lim, rt')] +[visit_exp addrtype#825] +[visit_id addrtype#825] +[visit_exp limits#825] +[visit_id limits#825] +[visit_exp reftype#555] +[visit_id reftype#555] +[visit_exp (at, lim, rt')] +[visit_exp at] +[visit_id at] +[visit_exp lim] +[visit_id lim] +[visit_exp rt'] +[visit_id rt'] +[visit_exp (C, rt, rt')] +[visit_exp C] +[visit_id C] not free +[visit_exp rt] +[visit_id rt] not free +[visit_exp rt'] +[visit_id rt'] not free +[visit_exp (C, expr, (at : addrtype <: valtype))] +[visit_exp C] +[visit_id C] not free +[visit_exp expr] +[visit_id expr] not free +[visit_exp (at : addrtype <: valtype)] +[visit_exp at] +[visit_id at] not free +[check_dims] C X*#12031 X*#12052 deftype*#60 funcidx#195 i#9431 resulttype#2911 x +[visit_exp C] +[visit_id C] +[visit_exp `START`_start{funcidx#195}(x)] +[visit_exp funcidx#195] +[visit_id funcidx#195] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp (C.`FUNCS`_context{`deftype*#60`}[x!`%`_idx{i#9431}.0], `FUNC%->%`_comptype{resulttype#2911}(`%`_resulttype{`X*#12031`}([]), `%`_resulttype{`X*#12052`}([])))] +[visit_exp C.`FUNCS`_context{`deftype*#60`}[x!`%`_idx{i#9431}.0]] +[visit_exp C.`FUNCS`_context{`deftype*#60`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#60`] +[visit_id deftype*#60] +[visit_exp x!`%`_idx{i#9431}.0] +[visit_exp x!`%`_idx{i#9431}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#9431] +[visit_id i#9431] +[visit_exp `FUNC%->%`_comptype{resulttype#2911}(`%`_resulttype{`X*#12031`}([]), `%`_resulttype{`X*#12052`}([]))] +[visit_exp resulttype#2911] +[visit_id resulttype#2911] +[visit_exp (`%`_resulttype{`X*#12031`}([]), `%`_resulttype{`X*#12052`}([]))] +[visit_exp `%`_resulttype{`X*#12031`}([])] +[visit_exp `X*#12031`] +[visit_id X*#12031] +[visit_exp ([])] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#12052`}([])] +[visit_exp `X*#12052`] +[visit_id X*#12052] +[visit_exp ([])] +[visit_exp []] +[check_dims] +[check_dims] +[check_dims] +[check_dims] C externtype#79 name#309 name_1 name_2 xt +[visit_exp C] +[visit_id C] +[visit_exp `IMPORT`_import{name#309, externtype#79}(name_1, name_2, xt)] +[visit_exp name#309] +[visit_id name#309] +[visit_exp externtype#79] +[visit_id externtype#79] +[visit_exp (name_1, name_2, xt)] +[visit_exp name_1] +[visit_id name_1] +[visit_exp name_2] +[visit_id name_2] +[visit_exp xt] +[visit_id xt] +[visit_exp $clos_externtype(C, xt)] +[visit_exp C] +[visit_id C] not free +[visit_exp xt] +[visit_id xt] not free +[visit_exp (C, xt)] +[visit_exp C] +[visit_id C] not free +[visit_exp xt] +[visit_id xt] not free +[check_dims] C externidx externidx#193 name name#322 xt +[visit_exp C] +[visit_id C] +[visit_exp `EXPORT`_export{name#322, externidx#193}(name, externidx)] +[visit_exp name#322] +[visit_id name#322] +[visit_exp externidx#193] +[visit_id externidx#193] +[visit_exp (name, externidx)] +[visit_exp name] +[visit_id name] +[visit_exp externidx] +[visit_id externidx] +[visit_exp name] +[visit_id name] not free +[visit_exp xt] +[visit_id xt] +[visit_exp (C, externidx, xt)] +[visit_exp C] +[visit_id C] not free +[visit_exp externidx] +[visit_id externidx] not free +[visit_exp xt] +[visit_id xt] not free +[check_dims] C i#9455 jt tagidx#9 tagtype#107 tagtype*#12 x +[visit_exp C] +[visit_id C] +[visit_exp `TAG`_externidx{tagidx#9}(x)] +[visit_exp tagidx#9] +[visit_id tagidx#9] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `TAG`_externtype{tagtype#107}(jt)] +[visit_exp tagtype#107] +[visit_id tagtype#107] +[visit_exp (jt)] +[visit_exp jt] +[visit_id jt] +[visit_exp (C.`TAGS`_context{`tagtype*#12`}[x!`%`_idx{i#9455}.0] = jt)] +[visit_exp C.`TAGS`_context{`tagtype*#12`}[x!`%`_idx{i#9455}.0]] +[visit_exp C.`TAGS`_context{`tagtype*#12`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tagtype*#12`] +[visit_id tagtype*#12] +[visit_exp x!`%`_idx{i#9455}.0] +[visit_exp x!`%`_idx{i#9455}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#9455] +[visit_id i#9455] +[visit_exp jt] +[visit_id jt] not free +[check_dims] C globalidx#15 globaltype#119 globaltype*#13 gt i#9479 x +[visit_exp C] +[visit_id C] +[visit_exp `GLOBAL`_externidx{globalidx#15}(x)] +[visit_exp globalidx#15] +[visit_id globalidx#15] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `GLOBAL`_externtype{globaltype#119}(gt)] +[visit_exp globaltype#119] +[visit_id globaltype#119] +[visit_exp (gt)] +[visit_exp gt] +[visit_id gt] +[visit_exp (C.`GLOBALS`_context{`globaltype*#13`}[x!`%`_idx{i#9479}.0] = gt)] +[visit_exp C.`GLOBALS`_context{`globaltype*#13`}[x!`%`_idx{i#9479}.0]] +[visit_exp C.`GLOBALS`_context{`globaltype*#13`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `globaltype*#13`] +[visit_id globaltype*#13] +[visit_exp x!`%`_idx{i#9479}.0] +[visit_exp x!`%`_idx{i#9479}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#9479] +[visit_id i#9479] +[visit_exp gt] +[visit_id gt] not free +[check_dims] C i#9503 memidx#65 memtype#131 memtype*#27 mt x +[visit_exp C] +[visit_id C] +[visit_exp `MEM`_externidx{memidx#65}(x)] +[visit_exp memidx#65] +[visit_id memidx#65] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `MEM`_externtype{memtype#131}(mt)] +[visit_exp memtype#131] +[visit_id memtype#131] +[visit_exp (mt)] +[visit_exp mt] +[visit_id mt] +[visit_exp (C.`MEMS`_context{`memtype*#27`}[x!`%`_idx{i#9503}.0] = mt)] +[visit_exp C.`MEMS`_context{`memtype*#27`}[x!`%`_idx{i#9503}.0]] +[visit_exp C.`MEMS`_context{`memtype*#27`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `memtype*#27`] +[visit_id memtype*#27] +[visit_exp x!`%`_idx{i#9503}.0] +[visit_exp x!`%`_idx{i#9503}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#9503] +[visit_id i#9503] +[visit_exp mt] +[visit_id mt] not free +[check_dims] C i#9527 tableidx#47 tabletype#145 tabletype*#20 tt x +[visit_exp C] +[visit_id C] +[visit_exp `TABLE`_externidx{tableidx#47}(x)] +[visit_exp tableidx#47] +[visit_id tableidx#47] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `TABLE`_externtype{tabletype#145}(tt)] +[visit_exp tabletype#145] +[visit_id tabletype#145] +[visit_exp (tt)] +[visit_exp tt] +[visit_id tt] +[visit_exp (C.`TABLES`_context{`tabletype*#20`}[x!`%`_idx{i#9527}.0] = tt)] +[visit_exp C.`TABLES`_context{`tabletype*#20`}[x!`%`_idx{i#9527}.0]] +[visit_exp C.`TABLES`_context{`tabletype*#20`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `tabletype*#20`] +[visit_id tabletype*#20] +[visit_exp x!`%`_idx{i#9527}.0] +[visit_exp x!`%`_idx{i#9527}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#9527] +[visit_id i#9527] +[visit_exp tt] +[visit_id tt] not free +[check_dims] C deftype*#61 dt funcidx#197 i#9551 typeuse#31 x +[visit_exp C] +[visit_id C] +[visit_exp `FUNC`_externidx{funcidx#197}(x)] +[visit_exp funcidx#197] +[visit_id funcidx#197] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `FUNC`_externtype{typeuse#31}((dt : deftype <: typeuse))] +[visit_exp typeuse#31] +[visit_id typeuse#31] +[visit_exp ((dt : deftype <: typeuse))] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] +[visit_exp (C.`FUNCS`_context{`deftype*#61`}[x!`%`_idx{i#9551}.0] = dt)] +[visit_exp C.`FUNCS`_context{`deftype*#61`}[x!`%`_idx{i#9551}.0]] +[visit_exp C.`FUNCS`_context{`deftype*#61`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `deftype*#61`] +[visit_id deftype*#61] +[visit_exp x!`%`_idx{i#9551}.0] +[visit_exp x!`%`_idx{i#9551}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#9551] +[visit_id i#9551] +[visit_exp dt] +[visit_id dt] not free +[check_dims] +[check_dims] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id global*] no dims +[visit_id global*] +[visit_id mem*] no dims +[visit_id mem*] +[visit_id table*] no dims +[visit_id table*] +[visit_id elem*] no dims +[visit_id elem*] +[check_dims] nonfuncs +DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* +[visit_id nonfuncs] not free +[check_dims] data*#71 elem elem*#47 elem*#83 export*#71 func*#71 global global*#47 global*#83 import*#71 mem mem*#47 mem*#83 start?#71 table table*#47 table*#83 tag*#71 type*#71 +[visit_exp `%%%%`_nonfuncs{`global*#47`, `mem*#47`, `table*#47`, `elem*#47`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] +[visit_exp `global*#47`] +[visit_id global*#47] +[visit_exp `mem*#47`] +[visit_id mem*#47] +[visit_exp `table*#47`] +[visit_id table*#47] +[visit_exp `elem*#47`] +[visit_id elem*#47] +[visit_exp (global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] no dims +[visit_id global*] +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] no dims +[visit_id mem*] +[visit_exp table*{table <- `table*`}] +[scope_enter table] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] no dims +[visit_id table*] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] no dims +[visit_id elem*] +[visit_exp $funcidx_module(`MODULE`_module{`type*#71`, `import*#71`, `tag*#71`, `global*#83`, `mem*#83`, `table*#83`, `func*#71`, `data*#71`, `elem*#83`, `start?#71`, `export*#71`}([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), []))] +[visit_exp `MODULE`_module{`type*#71`, `import*#71`, `tag*#71`, `global*#83`, `mem*#83`, `table*#83`, `func*#71`, `data*#71`, `elem*#83`, `start?#71`, `export*#71`}([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])] +[visit_exp `type*#71`] +[visit_id type*#71] +[visit_exp `import*#71`] +[visit_id import*#71] +[visit_exp `tag*#71`] +[visit_id tag*#71] +[visit_exp `global*#83`] +[visit_id global*#83] +[visit_exp `mem*#83`] +[visit_id mem*#83] +[visit_exp `table*#83`] +[visit_id table*#83] +[visit_exp `func*#71`] +[visit_id func*#71] +[visit_exp `data*#71`] +[visit_id data*#71] +[visit_exp `elem*#83`] +[visit_id elem*#83] +[visit_exp `start?#71`] +[visit_id start?#71] +[visit_exp `export*#71`] +[visit_id export*#71] +[visit_exp ([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])] +[visit_exp []] +[visit_exp []] +[visit_exp []] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] not free +[visit_id global*] no dims +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] not free +[visit_id mem*] no dims +[visit_exp table*{table <- `table*`}] +[scope_enter table] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] not free +[visit_id table*] no dims +[visit_exp []] +[visit_exp []] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] not free +[visit_id elem*] no dims +[visit_exp ?()] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec + def $funcidx_nonfuncs{`global*#47` : global*, `mem*#47` : mem*, `table*#47` : table*, `elem*#47` : elem*, `global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*, `type*#71` : type*, `import*#71` : import*, `tag*#71` : tag*, `global*#83` : global*, `mem*#83` : mem*, `table*#83` : table*, `func*#71` : func*, `data*#71` : data*, `elem*#83` : elem*, `start?#71` : start?, `export*#71` : export*}(`%%%%`_nonfuncs{`global*#47`, `mem*#47`, `table*#47`, `elem*#47`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})) = $funcidx_module(`MODULE`_module{`type*#71`, `import*#71`, `tag*#71`, `global*#83`, `mem*#83`, `table*#83`, `func*#71`, `data*#71`, `elem*#83`, `start?#71`, `export*#71`}([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])) +[check_dims] C C' data data*#83 datatype*#13 datatype*#14 datatype*#15 datatype*#16 deftype*#62 deftype*#63 deftype*#64 deftype*#65 deftype*#66 deftype*#67 deftype*#68 deftype*#69 dt dt' dt_I elem elem*#107 elem*#95 elemtype*#13 elemtype*#14 elemtype*#15 elemtype*#16 export export*#83 externtype*#148 func func*#83 funcidx*#50 funcidx*#51 funcidx*#52 funcidx*#53 global global*#107 global*#95 globaltype*#14 globaltype*#15 globaltype*#16 globaltype*#17 gt gt_I import import*#83 jt jt_I localtype*#16 localtype*#17 localtype*#18 localtype*#19 mem mem*#107 mem*#95 memtype*#28 memtype*#29 memtype*#30 memtype*#31 mt mt_I nm ok resulttype*#24 resulttype*#25 resulttype*#26 resulttype*#27 resulttype?#21 resulttype?#22 resulttype?#23 resulttype?#24 rt start start?#83 subtype*#12 subtype*#13 subtype*#14 subtype*#15 table table*#107 table*#95 tabletype*#21 tabletype*#22 tabletype*#23 tabletype*#24 tag tag*#83 tagtype*#13 tagtype*#14 tagtype*#15 tagtype*#16 tt tt_I type type*#83 x xt_E xt_I +[visit_exp `MODULE`_module{`type*#83`, `import*#83`, `tag*#83`, `global*#95`, `mem*#95`, `table*#95`, `func*#83`, `data*#83`, `elem*#95`, `start?#83`, `export*#83`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] +[visit_exp `type*#83`] +[visit_id type*#83] +[visit_exp `import*#83`] +[visit_id import*#83] +[visit_exp `tag*#83`] +[visit_id tag*#83] +[visit_exp `global*#95`] +[visit_id global*#95] +[visit_exp `mem*#95`] +[visit_id mem*#95] +[visit_exp `table*#95`] +[visit_id table*#95] +[visit_exp `func*#83`] +[visit_id func*#83] +[visit_exp `data*#83`] +[visit_id data*#83] +[visit_exp `elem*#95`] +[visit_id elem*#95] +[visit_exp `start?#83`] +[visit_id start?#83] +[visit_exp `export*#83`] +[visit_id export*#83] +[visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] +[visit_exp type*{type <- `type*`}] +[scope_enter type] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] no dims +[visit_id type*] +[visit_exp import*{import <- `import*`}] +[scope_enter import] +[visit_exp import] +[visit_id import] not free +[visit_id import] not free +[scope_exit import] +[visit_exp `import*`] +[visit_id import*] no dims +[visit_id import*] +[visit_exp tag*{tag <- `tag*`}] +[scope_enter tag] +[visit_exp tag] +[visit_id tag] not free +[visit_id tag] not free +[scope_exit tag] +[visit_exp `tag*`] +[visit_id tag*] no dims +[visit_id tag*] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] no dims +[visit_id global*] +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] no dims +[visit_id mem*] +[visit_exp table*{table <- `table*`}] +[scope_enter table] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] no dims +[visit_id table*] +[visit_exp func*{func <- `func*`}] +[scope_enter func] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] no dims +[visit_id func*] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] no dims +[visit_id data*] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] no dims +[visit_id elem*] +[visit_exp start?{start <- `start?`}] +[scope_enter start] +[visit_exp start] +[visit_id start] not free +[visit_id start] not free +[scope_exit start] +[visit_exp `start?`] +[visit_id start?] no dims +[visit_id start?] +[visit_exp export*{export <- `export*`}] +[scope_enter export] +[visit_exp export] +[visit_id export] not free +[visit_id export] not free +[scope_exit export] +[visit_exp `export*`] +[visit_id export*] no dims +[visit_id export*] +[visit_exp $clos_moduletype(C, `%->%`_moduletype{`externtype*#148`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))] +[visit_exp C] +[visit_id C] +[visit_exp `%->%`_moduletype{`externtype*#148`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] +[visit_exp `externtype*#148`] +[visit_id externtype*#148] +[visit_exp (xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] +[visit_exp xt_I*{xt_I <- `xt_I*`}] +[scope_enter xt_I] +[visit_exp xt_I] +[visit_id xt_I] not free +[visit_id xt_I] not free +[scope_exit xt_I] +[visit_exp `xt_I*`] +[visit_id xt_I*] no dims +[visit_id xt_I*] +[visit_exp xt_E*{xt_E <- `xt_E*`}] +[scope_enter xt_E] +[visit_exp xt_E] +[visit_id xt_E] not free +[visit_id xt_E] not free +[scope_exit xt_E] +[visit_exp `xt_E*`] +[visit_id xt_E*] no dims +[visit_id xt_E*] +[visit_exp ({`TYPES`{`deftype*#62`} [], `RECS`{`subtype*#12`} [], `TAGS`{`tagtype*#13`} [], `GLOBALS`{`globaltype*#14`} [], `MEMS`{`memtype*#28`} [], `TABLES`{`tabletype*#21`} [], `FUNCS`{`deftype*#63`} [], `DATAS`{`datatype*#13`} [], `ELEMS`{`elemtype*#13`} [], `LOCALS`{`localtype*#16`} [], `LABELS`{`resulttype*#24`} [], `RETURN`{`resulttype?#21`} ?(), `REFS`{`funcidx*#50`} []}, type*{type <- `type*`}, dt'*{dt' <- `dt'*`})] +[visit_exp {`TYPES`{`deftype*#62`} [], `RECS`{`subtype*#12`} [], `TAGS`{`tagtype*#13`} [], `GLOBALS`{`globaltype*#14`} [], `MEMS`{`memtype*#28`} [], `TABLES`{`tabletype*#21`} [], `FUNCS`{`deftype*#63`} [], `DATAS`{`datatype*#13`} [], `ELEMS`{`elemtype*#13`} [], `LOCALS`{`localtype*#16`} [], `LABELS`{`resulttype*#24`} [], `RETURN`{`resulttype?#21`} ?(), `REFS`{`funcidx*#50`} []}] +[visit_exp `deftype*#62`] +[visit_id deftype*#62] +[visit_exp []] +[visit_exp `subtype*#12`] +[visit_id subtype*#12] +[visit_exp []] +[visit_exp `tagtype*#13`] +[visit_id tagtype*#13] +[visit_exp []] +[visit_exp `globaltype*#14`] +[visit_id globaltype*#14] +[visit_exp []] +[visit_exp `memtype*#28`] +[visit_id memtype*#28] +[visit_exp []] +[visit_exp `tabletype*#21`] +[visit_id tabletype*#21] +[visit_exp []] +[visit_exp `deftype*#63`] +[visit_id deftype*#63] +[visit_exp []] +[visit_exp `datatype*#13`] +[visit_id datatype*#13] +[visit_exp []] +[visit_exp `elemtype*#13`] +[visit_id elemtype*#13] +[visit_exp []] +[visit_exp `localtype*#16`] +[visit_id localtype*#16] +[visit_exp []] +[visit_exp `resulttype*#24`] +[visit_id resulttype*#24] +[visit_exp []] +[visit_exp `resulttype?#21`] +[visit_id resulttype?#21] +[visit_exp ?()] +[visit_exp `funcidx*#50`] +[visit_id funcidx*#50] +[visit_exp []] +[visit_exp type*{type <- `type*`}] +[scope_enter type] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] not free +[visit_id type*] no dims +[visit_exp dt'*{dt' <- `dt'*`}] +[scope_enter dt'] +[visit_exp dt'] +[visit_id dt'] not free +[visit_id dt'] not free +[scope_exit dt'] +[visit_exp `dt'*`] +[visit_id dt'*] no dims +[visit_id dt'*] +[scope_enter datatype*#14] +[scope_enter deftype*#64] +[scope_enter deftype*#65] +[scope_enter elemtype*#14] +[scope_enter funcidx*#51] +[scope_enter globaltype*#15] +[scope_enter import] +[scope_enter localtype*#17] +[scope_enter memtype*#29] +[scope_enter resulttype*#25] +[scope_enter resulttype?#22] +[scope_enter subtype*#13] +[scope_enter tabletype*#22] +[scope_enter tagtype*#14] +[scope_enter xt_I] +[visit_exp ({`TYPES`{`deftype*#64`} dt'*{dt' <- `dt'*`}, `RECS`{`subtype*#13`} [], `TAGS`{`tagtype*#14`} [], `GLOBALS`{`globaltype*#15`} [], `MEMS`{`memtype*#29`} [], `TABLES`{`tabletype*#22`} [], `FUNCS`{`deftype*#65`} [], `DATAS`{`datatype*#14`} [], `ELEMS`{`elemtype*#14`} [], `LOCALS`{`localtype*#17`} [], `LABELS`{`resulttype*#25`} [], `RETURN`{`resulttype?#22`} ?(), `REFS`{`funcidx*#51`} []}, import, xt_I)] +[visit_exp {`TYPES`{`deftype*#64`} dt'*{dt' <- `dt'*`}, `RECS`{`subtype*#13`} [], `TAGS`{`tagtype*#14`} [], `GLOBALS`{`globaltype*#15`} [], `MEMS`{`memtype*#29`} [], `TABLES`{`tabletype*#22`} [], `FUNCS`{`deftype*#65`} [], `DATAS`{`datatype*#14`} [], `ELEMS`{`elemtype*#14`} [], `LOCALS`{`localtype*#17`} [], `LABELS`{`resulttype*#25`} [], `RETURN`{`resulttype?#22`} ?(), `REFS`{`funcidx*#51`} []}] +[visit_exp `deftype*#64`] +[visit_id deftype*#64] not free +[visit_exp dt'*{dt' <- `dt'*`}] +[scope_enter dt'] +[visit_exp dt'] +[visit_id dt'] not free +[visit_id dt'] not free +[scope_exit dt'] +[visit_exp `dt'*`] +[visit_id dt'*] not free +[visit_id dt'*] no dims +[visit_exp `subtype*#13`] +[visit_id subtype*#13] not free +[visit_exp []] +[visit_exp `tagtype*#14`] +[visit_id tagtype*#14] not free +[visit_exp []] +[visit_exp `globaltype*#15`] +[visit_id globaltype*#15] not free +[visit_exp []] +[visit_exp `memtype*#29`] +[visit_id memtype*#29] not free +[visit_exp []] +[visit_exp `tabletype*#22`] +[visit_id tabletype*#22] not free +[visit_exp []] +[visit_exp `deftype*#65`] +[visit_id deftype*#65] not free +[visit_exp []] +[visit_exp `datatype*#14`] +[visit_id datatype*#14] not free +[visit_exp []] +[visit_exp `elemtype*#14`] +[visit_id elemtype*#14] not free +[visit_exp []] +[visit_exp `localtype*#17`] +[visit_id localtype*#17] not free +[visit_exp []] +[visit_exp `resulttype*#25`] +[visit_id resulttype*#25] not free +[visit_exp []] +[visit_exp `resulttype?#22`] +[visit_id resulttype?#22] not free +[visit_exp ?()] +[visit_exp `funcidx*#51`] +[visit_id funcidx*#51] not free +[visit_exp []] +[visit_exp import] +[visit_id import] not free +[visit_exp xt_I] +[visit_id xt_I] not free +[visit_id datatype*#14] not free +[visit_id deftype*#64] not free +[visit_id deftype*#65] not free +[visit_id elemtype*#14] not free +[visit_id funcidx*#51] not free +[visit_id globaltype*#15] not free +[visit_id import] not free +[visit_id localtype*#17] not free +[visit_id memtype*#29] not free +[visit_id resulttype*#25] not free +[visit_id resulttype?#22] not free +[visit_id subtype*#13] not free +[visit_id tabletype*#22] not free +[visit_id tagtype*#14] not free +[visit_id xt_I] not free +[scope_exit xt_I] +[scope_exit tagtype*#14] +[scope_exit tabletype*#22] +[scope_exit subtype*#13] +[scope_exit resulttype?#22] +[scope_exit resulttype*#25] +[scope_exit memtype*#29] +[scope_exit localtype*#17] +[scope_exit import] +[scope_exit globaltype*#15] +[scope_exit funcidx*#51] +[scope_exit elemtype*#14] +[scope_exit deftype*#65] +[scope_exit deftype*#64] +[scope_exit datatype*#14] +[visit_exp `datatype*#14*`] +[visit_id datatype*#14*] no dims +[visit_id datatype*#14*] +[visit_exp `deftype*#64*`] +[visit_id deftype*#64*] no dims +[visit_id deftype*#64*] +[visit_exp `deftype*#65*`] +[visit_id deftype*#65*] no dims +[visit_id deftype*#65*] +[visit_exp `elemtype*#14*`] +[visit_id elemtype*#14*] no dims +[visit_id elemtype*#14*] +[visit_exp `funcidx*#51*`] +[visit_id funcidx*#51*] no dims +[visit_id funcidx*#51*] +[visit_exp `globaltype*#15*`] +[visit_id globaltype*#15*] no dims +[visit_id globaltype*#15*] +[visit_exp `import*`] +[visit_id import*] not free +[visit_id import*] no dims +[visit_exp `localtype*#17*`] +[visit_id localtype*#17*] no dims +[visit_id localtype*#17*] +[visit_exp `memtype*#29*`] +[visit_id memtype*#29*] no dims +[visit_id memtype*#29*] +[visit_exp `resulttype*#25*`] +[visit_id resulttype*#25*] no dims +[visit_id resulttype*#25*] +[visit_exp `resulttype?#22*`] +[visit_id resulttype?#22*] no dims +[visit_id resulttype?#22*] +[visit_exp `subtype*#13*`] +[visit_id subtype*#13*] no dims +[visit_id subtype*#13*] +[visit_exp `tabletype*#22*`] +[visit_id tabletype*#22*] no dims +[visit_id tabletype*#22*] +[visit_exp `tagtype*#14*`] +[visit_id tagtype*#14*] no dims +[visit_id tagtype*#14*] +[visit_exp `xt_I*`] +[visit_id xt_I*] not free +[visit_id xt_I*] no dims +[scope_enter jt] +[scope_enter tag] +[visit_exp (C', tag, jt)] +[visit_exp C'] +[visit_id C'] +[visit_exp tag] +[visit_id tag] not free +[visit_exp jt] +[visit_id jt] not free +[visit_id jt] not free +[visit_id tag] not free +[scope_exit tag] +[scope_exit jt] +[visit_exp `jt*`] +[visit_id jt*] no dims +[visit_id jt*] +[visit_exp `tag*`] +[visit_id tag*] not free +[visit_id tag*] no dims +[visit_exp (C', global*{global <- `global*`}, gt*{gt <- `gt*`})] +[visit_exp C'] +[visit_id C'] not free +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] not free +[visit_id global*] no dims +[visit_exp gt*{gt <- `gt*`}] +[scope_enter gt] +[visit_exp gt] +[visit_id gt] not free +[visit_id gt] not free +[scope_exit gt] +[visit_exp `gt*`] +[visit_id gt*] no dims +[visit_id gt*] +[scope_enter mem] +[scope_enter mt] +[visit_exp (C', mem, mt)] +[visit_exp C'] +[visit_id C'] not free +[visit_exp mem] +[visit_id mem] not free +[visit_exp mt] +[visit_id mt] not free +[visit_id mem] not free +[visit_id mt] not free +[scope_exit mt] +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] not free +[visit_id mem*] no dims +[visit_exp `mt*`] +[visit_id mt*] no dims +[visit_id mt*] +[scope_enter table] +[scope_enter tt] +[visit_exp (C', table, tt)] +[visit_exp C'] +[visit_id C'] not free +[visit_exp table] +[visit_id table] not free +[visit_exp tt] +[visit_id tt] not free +[visit_id table] not free +[visit_id tt] not free +[scope_exit tt] +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] not free +[visit_id table*] no dims +[visit_exp `tt*`] +[visit_id tt*] no dims +[visit_id tt*] +[scope_enter dt] +[scope_enter func] +[visit_exp (C, func, dt)] +[visit_exp C] +[visit_id C] not free +[visit_exp func] +[visit_id func] not free +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[visit_id func] not free +[scope_exit func] +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp `func*`] +[visit_id func*] not free +[visit_id func*] no dims +[scope_enter data] +[scope_enter ok] +[visit_exp (C, data, ok)] +[visit_exp C] +[visit_id C] not free +[visit_exp data] +[visit_id data] not free +[visit_exp ok] +[visit_id ok] not free +[visit_id data] not free +[visit_id ok] not free +[scope_exit ok] +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] not free +[visit_id data*] no dims +[visit_exp `ok*`] +[visit_id ok*] no dims +[visit_id ok*] +[scope_enter elem] +[scope_enter rt] +[visit_exp (C, elem, rt)] +[visit_exp C] +[visit_id C] not free +[visit_exp elem] +[visit_id elem] not free +[visit_exp rt] +[visit_id rt] not free +[visit_id elem] not free +[visit_id rt] not free +[scope_exit rt] +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] not free +[visit_id elem*] no dims +[visit_exp `rt*`] +[visit_id rt*] no dims +[visit_id rt*] +[scope_enter start] +[visit_exp (C, start)] +[visit_exp C] +[visit_id C] not free +[visit_exp start] +[visit_id start] not free +[visit_id start] not free +[scope_exit start] +[visit_exp `start?`] +[visit_id start?] not free +[visit_id start?] no dims +[scope_enter export] +[scope_enter nm] +[scope_enter xt_E] +[visit_exp (C, export, nm, xt_E)] +[visit_exp C] +[visit_id C] not free +[visit_exp export] +[visit_id export] not free +[visit_exp nm] +[visit_id nm] not free +[visit_exp xt_E] +[visit_id xt_E] not free +[visit_id export] not free +[visit_id nm] not free +[visit_id xt_E] not free +[scope_exit xt_E] +[scope_exit nm] +[scope_exit export] +[visit_exp `export*`] +[visit_id export*] not free +[visit_id export*] no dims +[visit_exp `nm*`] +[visit_id nm*] no dims +[visit_id nm*] +[visit_exp `xt_E*`] +[visit_id xt_E*] not free +[visit_id xt_E*] no dims +[visit_exp $disjoint_(syntax name, nm*{nm <- `nm*`})] +[visit_exp nm*{nm <- `nm*`}] +[scope_enter nm] +[visit_exp nm] +[visit_id nm] not free +[visit_id nm] not free +[scope_exit nm] +[visit_exp `nm*`] +[visit_id nm*] not free +[visit_id nm*] no dims +[visit_exp (C = C' +++ {`TYPES`{`deftype*#66`} [], `RECS`{`subtype*#14`} [], `TAGS`{`tagtype*#15`} jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS`{`globaltype*#16`} gt*{gt <- `gt*`}, `MEMS`{`memtype*#30`} mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES`{`tabletype*#23`} tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS`{`deftype*#67`} [], `DATAS`{`datatype*#15`} ok*{ok <- `ok*`}, `ELEMS`{`elemtype*#15`} rt*{rt <- `rt*`}, `LOCALS`{`localtype*#18`} [], `LABELS`{`resulttype*#26`} [], `RETURN`{`resulttype?#23`} ?(), `REFS`{`funcidx*#52`} []})] +[visit_exp C] +[visit_id C] not free +[visit_exp C' +++ {`TYPES`{`deftype*#66`} [], `RECS`{`subtype*#14`} [], `TAGS`{`tagtype*#15`} jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS`{`globaltype*#16`} gt*{gt <- `gt*`}, `MEMS`{`memtype*#30`} mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES`{`tabletype*#23`} tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS`{`deftype*#67`} [], `DATAS`{`datatype*#15`} ok*{ok <- `ok*`}, `ELEMS`{`elemtype*#15`} rt*{rt <- `rt*`}, `LOCALS`{`localtype*#18`} [], `LABELS`{`resulttype*#26`} [], `RETURN`{`resulttype?#23`} ?(), `REFS`{`funcidx*#52`} []}] +[visit_exp C'] +[visit_id C'] not free +[visit_exp {`TYPES`{`deftype*#66`} [], `RECS`{`subtype*#14`} [], `TAGS`{`tagtype*#15`} jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS`{`globaltype*#16`} gt*{gt <- `gt*`}, `MEMS`{`memtype*#30`} mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES`{`tabletype*#23`} tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS`{`deftype*#67`} [], `DATAS`{`datatype*#15`} ok*{ok <- `ok*`}, `ELEMS`{`elemtype*#15`} rt*{rt <- `rt*`}, `LOCALS`{`localtype*#18`} [], `LABELS`{`resulttype*#26`} [], `RETURN`{`resulttype?#23`} ?(), `REFS`{`funcidx*#52`} []}] +[visit_exp `deftype*#66`] +[visit_id deftype*#66] +[visit_exp []] +[visit_exp `subtype*#14`] +[visit_id subtype*#14] +[visit_exp []] +[visit_exp `tagtype*#15`] +[visit_id tagtype*#15] +[visit_exp jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}] +[visit_exp jt_I*{jt_I <- `jt_I*`}] +[scope_enter jt_I] +[visit_exp jt_I] +[visit_id jt_I] not free +[visit_id jt_I] not free +[scope_exit jt_I] +[visit_exp `jt_I*`] +[visit_id jt_I*] no dims +[visit_id jt_I*] +[visit_exp jt*{jt <- `jt*`}] +[scope_enter jt] +[visit_exp jt] +[visit_id jt] not free +[visit_id jt] not free +[scope_exit jt] +[visit_exp `jt*`] +[visit_id jt*] not free +[visit_id jt*] no dims +[visit_exp `globaltype*#16`] +[visit_id globaltype*#16] +[visit_exp gt*{gt <- `gt*`}] +[scope_enter gt] +[visit_exp gt] +[visit_id gt] not free +[visit_id gt] not free +[scope_exit gt] +[visit_exp `gt*`] +[visit_id gt*] not free +[visit_id gt*] no dims +[visit_exp `memtype*#30`] +[visit_id memtype*#30] +[visit_exp mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}] +[visit_exp mt_I*{mt_I <- `mt_I*`}] +[scope_enter mt_I] +[visit_exp mt_I] +[visit_id mt_I] not free +[visit_id mt_I] not free +[scope_exit mt_I] +[visit_exp `mt_I*`] +[visit_id mt_I*] no dims +[visit_id mt_I*] +[visit_exp mt*{mt <- `mt*`}] +[scope_enter mt] +[visit_exp mt] +[visit_id mt] not free +[visit_id mt] not free +[scope_exit mt] +[visit_exp `mt*`] +[visit_id mt*] not free +[visit_id mt*] no dims +[visit_exp `tabletype*#23`] +[visit_id tabletype*#23] +[visit_exp tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}] +[visit_exp tt_I*{tt_I <- `tt_I*`}] +[scope_enter tt_I] +[visit_exp tt_I] +[visit_id tt_I] not free +[visit_id tt_I] not free +[scope_exit tt_I] +[visit_exp `tt_I*`] +[visit_id tt_I*] no dims +[visit_id tt_I*] +[visit_exp tt*{tt <- `tt*`}] +[scope_enter tt] +[visit_exp tt] +[visit_id tt] not free +[visit_id tt] not free +[scope_exit tt] +[visit_exp `tt*`] +[visit_id tt*] not free +[visit_id tt*] no dims +[visit_exp `deftype*#67`] +[visit_id deftype*#67] +[visit_exp []] +[visit_exp `datatype*#15`] +[visit_id datatype*#15] +[visit_exp ok*{ok <- `ok*`}] +[scope_enter ok] +[visit_exp ok] +[visit_id ok] not free +[visit_id ok] not free +[scope_exit ok] +[visit_exp `ok*`] +[visit_id ok*] not free +[visit_id ok*] no dims +[visit_exp `elemtype*#15`] +[visit_id elemtype*#15] +[visit_exp rt*{rt <- `rt*`}] +[scope_enter rt] +[visit_exp rt] +[visit_id rt] not free +[visit_id rt] not free +[scope_exit rt] +[visit_exp `rt*`] +[visit_id rt*] not free +[visit_id rt*] no dims +[visit_exp `localtype*#18`] +[visit_id localtype*#18] +[visit_exp []] +[visit_exp `resulttype*#26`] +[visit_id resulttype*#26] +[visit_exp []] +[visit_exp `resulttype?#23`] +[visit_id resulttype?#23] +[visit_exp ?()] +[visit_exp `funcidx*#52`] +[visit_id funcidx*#52] +[visit_exp []] +[visit_exp (C' = {`TYPES`{`deftype*#68`} dt'*{dt' <- `dt'*`}, `RECS`{`subtype*#15`} [], `TAGS`{`tagtype*#16`} [], `GLOBALS`{`globaltype*#17`} gt_I*{gt_I <- `gt_I*`}, `MEMS`{`memtype*#31`} [], `TABLES`{`tabletype*#24`} [], `FUNCS`{`deftype*#69`} dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, `DATAS`{`datatype*#16`} [], `ELEMS`{`elemtype*#16`} [], `LOCALS`{`localtype*#19`} [], `LABELS`{`resulttype*#27`} [], `RETURN`{`resulttype?#24`} ?(), `REFS`{`funcidx*#53`} x*{x <- `x*`}})] +[visit_exp C'] +[visit_id C'] not free +[visit_exp {`TYPES`{`deftype*#68`} dt'*{dt' <- `dt'*`}, `RECS`{`subtype*#15`} [], `TAGS`{`tagtype*#16`} [], `GLOBALS`{`globaltype*#17`} gt_I*{gt_I <- `gt_I*`}, `MEMS`{`memtype*#31`} [], `TABLES`{`tabletype*#24`} [], `FUNCS`{`deftype*#69`} dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, `DATAS`{`datatype*#16`} [], `ELEMS`{`elemtype*#16`} [], `LOCALS`{`localtype*#19`} [], `LABELS`{`resulttype*#27`} [], `RETURN`{`resulttype?#24`} ?(), `REFS`{`funcidx*#53`} x*{x <- `x*`}}] +[visit_exp `deftype*#68`] +[visit_id deftype*#68] +[visit_exp dt'*{dt' <- `dt'*`}] +[scope_enter dt'] +[visit_exp dt'] +[visit_id dt'] not free +[visit_id dt'] not free +[scope_exit dt'] +[visit_exp `dt'*`] +[visit_id dt'*] not free +[visit_id dt'*] no dims +[visit_exp `subtype*#15`] +[visit_id subtype*#15] +[visit_exp []] +[visit_exp `tagtype*#16`] +[visit_id tagtype*#16] +[visit_exp []] +[visit_exp `globaltype*#17`] +[visit_id globaltype*#17] +[visit_exp gt_I*{gt_I <- `gt_I*`}] +[scope_enter gt_I] +[visit_exp gt_I] +[visit_id gt_I] not free +[visit_id gt_I] not free +[scope_exit gt_I] +[visit_exp `gt_I*`] +[visit_id gt_I*] no dims +[visit_id gt_I*] +[visit_exp `memtype*#31`] +[visit_id memtype*#31] +[visit_exp []] +[visit_exp `tabletype*#24`] +[visit_id tabletype*#24] +[visit_exp []] +[visit_exp `deftype*#69`] +[visit_id deftype*#69] +[visit_exp dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}] +[visit_exp dt_I*{dt_I <- `dt_I*`}] +[scope_enter dt_I] +[visit_exp dt_I] +[visit_id dt_I] not free +[visit_id dt_I] not free +[scope_exit dt_I] +[visit_exp `dt_I*`] +[visit_id dt_I*] no dims +[visit_id dt_I*] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp `datatype*#16`] +[visit_id datatype*#16] +[visit_exp []] +[visit_exp `elemtype*#16`] +[visit_id elemtype*#16] +[visit_exp []] +[visit_exp `localtype*#19`] +[visit_id localtype*#19] +[visit_exp []] +[visit_exp `resulttype*#27`] +[visit_id resulttype*#27] +[visit_exp []] +[visit_exp `resulttype?#24`] +[visit_id resulttype?#24] +[visit_exp ?()] +[visit_exp `funcidx*#53`] +[visit_id funcidx*#53] +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp (x*{x <- `x*`} = $funcidx_nonfuncs(`%%%%`_nonfuncs{`global*#107`, `mem*#107`, `table*#107`, `elem*#107`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})))] +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[visit_exp $funcidx_nonfuncs(`%%%%`_nonfuncs{`global*#107`, `mem*#107`, `table*#107`, `elem*#107`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`}))] +[visit_exp `%%%%`_nonfuncs{`global*#107`, `mem*#107`, `table*#107`, `elem*#107`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] +[visit_exp `global*#107`] +[visit_id global*#107] +[visit_exp `mem*#107`] +[visit_id mem*#107] +[visit_exp `table*#107`] +[visit_id table*#107] +[visit_exp `elem*#107`] +[visit_id elem*#107] +[visit_exp (global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] not free +[visit_id global*] no dims +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] not free +[visit_id mem*] no dims +[visit_exp table*{table <- `table*`}] +[scope_enter table] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] not free +[visit_id table*] no dims +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] not free +[visit_id elem*] no dims +[visit_exp (jt_I*{jt_I <- `jt_I*`} = $tagsxt(xt_I*{xt_I <- `xt_I*`}))] +[visit_exp jt_I*{jt_I <- `jt_I*`}] +[scope_enter jt_I] +[visit_exp jt_I] +[visit_id jt_I] not free +[visit_id jt_I] not free +[scope_exit jt_I] +[visit_exp `jt_I*`] +[visit_id jt_I*] not free +[visit_id jt_I*] no dims +[visit_exp $tagsxt(xt_I*{xt_I <- `xt_I*`})] +[visit_exp xt_I*{xt_I <- `xt_I*`}] +[scope_enter xt_I] +[visit_exp xt_I] +[visit_id xt_I] not free +[visit_id xt_I] not free +[scope_exit xt_I] +[visit_exp `xt_I*`] +[visit_id xt_I*] not free +[visit_id xt_I*] no dims +[visit_exp (gt_I*{gt_I <- `gt_I*`} = $globalsxt(xt_I*{xt_I <- `xt_I*`}))] +[visit_exp gt_I*{gt_I <- `gt_I*`}] +[scope_enter gt_I] +[visit_exp gt_I] +[visit_id gt_I] not free +[visit_id gt_I] not free +[scope_exit gt_I] +[visit_exp `gt_I*`] +[visit_id gt_I*] not free +[visit_id gt_I*] no dims +[visit_exp $globalsxt(xt_I*{xt_I <- `xt_I*`})] +[visit_exp xt_I*{xt_I <- `xt_I*`}] +[scope_enter xt_I] +[visit_exp xt_I] +[visit_id xt_I] not free +[visit_id xt_I] not free +[scope_exit xt_I] +[visit_exp `xt_I*`] +[visit_id xt_I*] not free +[visit_id xt_I*] no dims +[visit_exp (mt_I*{mt_I <- `mt_I*`} = $memsxt(xt_I*{xt_I <- `xt_I*`}))] +[visit_exp mt_I*{mt_I <- `mt_I*`}] +[scope_enter mt_I] +[visit_exp mt_I] +[visit_id mt_I] not free +[visit_id mt_I] not free +[scope_exit mt_I] +[visit_exp `mt_I*`] +[visit_id mt_I*] not free +[visit_id mt_I*] no dims +[visit_exp $memsxt(xt_I*{xt_I <- `xt_I*`})] +[visit_exp xt_I*{xt_I <- `xt_I*`}] +[scope_enter xt_I] +[visit_exp xt_I] +[visit_id xt_I] not free +[visit_id xt_I] not free +[scope_exit xt_I] +[visit_exp `xt_I*`] +[visit_id xt_I*] not free +[visit_id xt_I*] no dims +[visit_exp (tt_I*{tt_I <- `tt_I*`} = $tablesxt(xt_I*{xt_I <- `xt_I*`}))] +[visit_exp tt_I*{tt_I <- `tt_I*`}] +[scope_enter tt_I] +[visit_exp tt_I] +[visit_id tt_I] not free +[visit_id tt_I] not free +[scope_exit tt_I] +[visit_exp `tt_I*`] +[visit_id tt_I*] not free +[visit_id tt_I*] no dims +[visit_exp $tablesxt(xt_I*{xt_I <- `xt_I*`})] +[visit_exp xt_I*{xt_I <- `xt_I*`}] +[scope_enter xt_I] +[visit_exp xt_I] +[visit_id xt_I] not free +[visit_id xt_I] not free +[scope_exit xt_I] +[visit_exp `xt_I*`] +[visit_id xt_I*] not free +[visit_id xt_I*] no dims +[visit_exp (dt_I*{dt_I <- `dt_I*`} = $funcsxt(xt_I*{xt_I <- `xt_I*`}))] +[visit_exp dt_I*{dt_I <- `dt_I*`}] +[scope_enter dt_I] +[visit_exp dt_I] +[visit_id dt_I] not free +[visit_id dt_I] not free +[scope_exit dt_I] +[visit_exp `dt_I*`] +[visit_id dt_I*] not free +[visit_id dt_I*] no dims +[visit_exp $funcsxt(xt_I*{xt_I <- `xt_I*`})] +[visit_exp xt_I*{xt_I <- `xt_I*`}] +[scope_enter xt_I] +[visit_exp xt_I] +[visit_id xt_I] not free +[visit_id xt_I] not free +[scope_exit xt_I] +[visit_exp `xt_I*`] +[visit_id xt_I*] not free +[visit_id xt_I*] no dims +[check_dims] C +[visit_exp C] +[visit_id C] +[visit_exp []] +[visit_exp []] +[check_dims] C datatype*#17 deftype*#70 deftype*#71 dt dt_1 elemtype*#17 funcidx*#54 globaltype*#18 localtype*#20 memtype*#32 resulttype*#28 resulttype?#25 subtype*#16 tabletype*#25 tagtype*#17 type type_1 +[visit_exp C] +[visit_id C] +[visit_exp [type_1] ++ type*{type <- `type*`}] +[visit_exp [type_1]] +[visit_exp type_1] +[visit_id type_1] +[visit_exp type*{type <- `type*`}] +[scope_enter type] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] no dims +[visit_id type*] +[visit_exp dt_1*{dt_1 <- `dt_1*`} ++ dt*{dt <- `dt*`}] +[visit_exp dt_1*{dt_1 <- `dt_1*`}] +[scope_enter dt_1] +[visit_exp dt_1] +[visit_id dt_1] not free +[visit_id dt_1] not free +[scope_exit dt_1] +[visit_exp `dt_1*`] +[visit_id dt_1*] no dims +[visit_id dt_1*] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp (C, type_1, dt_1*{dt_1 <- `dt_1*`})] +[visit_exp C] +[visit_id C] not free +[visit_exp type_1] +[visit_id type_1] not free +[visit_exp dt_1*{dt_1 <- `dt_1*`}] +[scope_enter dt_1] +[visit_exp dt_1] +[visit_id dt_1] not free +[visit_id dt_1] not free +[scope_exit dt_1] +[visit_exp `dt_1*`] +[visit_id dt_1*] not free +[visit_id dt_1*] no dims +[visit_exp (C +++ {`TYPES`{`deftype*#70`} dt_1*{dt_1 <- `dt_1*`}, `RECS`{`subtype*#16`} [], `TAGS`{`tagtype*#17`} [], `GLOBALS`{`globaltype*#18`} [], `MEMS`{`memtype*#32`} [], `TABLES`{`tabletype*#25`} [], `FUNCS`{`deftype*#71`} [], `DATAS`{`datatype*#17`} [], `ELEMS`{`elemtype*#17`} [], `LOCALS`{`localtype*#20`} [], `LABELS`{`resulttype*#28`} [], `RETURN`{`resulttype?#25`} ?(), `REFS`{`funcidx*#54`} []}, type*{type <- `type*`}, dt*{dt <- `dt*`})] +[visit_exp C +++ {`TYPES`{`deftype*#70`} dt_1*{dt_1 <- `dt_1*`}, `RECS`{`subtype*#16`} [], `TAGS`{`tagtype*#17`} [], `GLOBALS`{`globaltype*#18`} [], `MEMS`{`memtype*#32`} [], `TABLES`{`tabletype*#25`} [], `FUNCS`{`deftype*#71`} [], `DATAS`{`datatype*#17`} [], `ELEMS`{`elemtype*#17`} [], `LOCALS`{`localtype*#20`} [], `LABELS`{`resulttype*#28`} [], `RETURN`{`resulttype?#25`} ?(), `REFS`{`funcidx*#54`} []}] +[visit_exp C] +[visit_id C] not free +[visit_exp {`TYPES`{`deftype*#70`} dt_1*{dt_1 <- `dt_1*`}, `RECS`{`subtype*#16`} [], `TAGS`{`tagtype*#17`} [], `GLOBALS`{`globaltype*#18`} [], `MEMS`{`memtype*#32`} [], `TABLES`{`tabletype*#25`} [], `FUNCS`{`deftype*#71`} [], `DATAS`{`datatype*#17`} [], `ELEMS`{`elemtype*#17`} [], `LOCALS`{`localtype*#20`} [], `LABELS`{`resulttype*#28`} [], `RETURN`{`resulttype?#25`} ?(), `REFS`{`funcidx*#54`} []}] +[visit_exp `deftype*#70`] +[visit_id deftype*#70] +[visit_exp dt_1*{dt_1 <- `dt_1*`}] +[scope_enter dt_1] +[visit_exp dt_1] +[visit_id dt_1] not free +[visit_id dt_1] not free +[scope_exit dt_1] +[visit_exp `dt_1*`] +[visit_id dt_1*] not free +[visit_id dt_1*] no dims +[visit_exp `subtype*#16`] +[visit_id subtype*#16] +[visit_exp []] +[visit_exp `tagtype*#17`] +[visit_id tagtype*#17] +[visit_exp []] +[visit_exp `globaltype*#18`] +[visit_id globaltype*#18] +[visit_exp []] +[visit_exp `memtype*#32`] +[visit_id memtype*#32] +[visit_exp []] +[visit_exp `tabletype*#25`] +[visit_id tabletype*#25] +[visit_exp []] +[visit_exp `deftype*#71`] +[visit_id deftype*#71] +[visit_exp []] +[visit_exp `datatype*#17`] +[visit_id datatype*#17] +[visit_exp []] +[visit_exp `elemtype*#17`] +[visit_id elemtype*#17] +[visit_exp []] +[visit_exp `localtype*#20`] +[visit_id localtype*#20] +[visit_exp []] +[visit_exp `resulttype*#28`] +[visit_id resulttype*#28] +[visit_exp []] +[visit_exp `resulttype?#25`] +[visit_id resulttype?#25] +[visit_exp ?()] +[visit_exp `funcidx*#54`] +[visit_id funcidx*#54] +[visit_exp []] +[visit_exp type*{type <- `type*`}] +[scope_enter type] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] not free +[visit_id type*] no dims +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[check_dims] C +[visit_exp C] +[visit_id C] +[visit_exp []] +[visit_exp []] +[check_dims] C datatype*#18 deftype*#72 deftype*#73 elemtype*#18 funcidx*#55 global global_1 globaltype*#19 gt gt_1 localtype*#21 memtype*#33 resulttype*#29 resulttype?#26 subtype*#17 tabletype*#26 tagtype*#18 +[visit_exp C] +[visit_id C] +[visit_exp [global_1] ++ global*{global <- `global*`}] +[visit_exp [global_1]] +[visit_exp global_1] +[visit_id global_1] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] no dims +[visit_id global*] +[visit_exp [gt_1] ++ gt*{gt <- `gt*`}] +[visit_exp [gt_1]] +[visit_exp gt_1] +[visit_id gt_1] +[visit_exp gt*{gt <- `gt*`}] +[scope_enter gt] +[visit_exp gt] +[visit_id gt] not free +[visit_id gt] not free +[scope_exit gt] +[visit_exp `gt*`] +[visit_id gt*] no dims +[visit_id gt*] +[visit_exp (C, global_1, gt_1)] +[visit_exp C] +[visit_id C] not free +[visit_exp global_1] +[visit_id global_1] not free +[visit_exp gt_1] +[visit_id gt_1] not free +[visit_exp (C +++ {`TYPES`{`deftype*#72`} [], `RECS`{`subtype*#17`} [], `TAGS`{`tagtype*#18`} [], `GLOBALS`{`globaltype*#19`} [gt_1], `MEMS`{`memtype*#33`} [], `TABLES`{`tabletype*#26`} [], `FUNCS`{`deftype*#73`} [], `DATAS`{`datatype*#18`} [], `ELEMS`{`elemtype*#18`} [], `LOCALS`{`localtype*#21`} [], `LABELS`{`resulttype*#29`} [], `RETURN`{`resulttype?#26`} ?(), `REFS`{`funcidx*#55`} []}, global*{global <- `global*`}, gt*{gt <- `gt*`})] +[visit_exp C +++ {`TYPES`{`deftype*#72`} [], `RECS`{`subtype*#17`} [], `TAGS`{`tagtype*#18`} [], `GLOBALS`{`globaltype*#19`} [gt_1], `MEMS`{`memtype*#33`} [], `TABLES`{`tabletype*#26`} [], `FUNCS`{`deftype*#73`} [], `DATAS`{`datatype*#18`} [], `ELEMS`{`elemtype*#18`} [], `LOCALS`{`localtype*#21`} [], `LABELS`{`resulttype*#29`} [], `RETURN`{`resulttype?#26`} ?(), `REFS`{`funcidx*#55`} []}] +[visit_exp C] +[visit_id C] not free +[visit_exp {`TYPES`{`deftype*#72`} [], `RECS`{`subtype*#17`} [], `TAGS`{`tagtype*#18`} [], `GLOBALS`{`globaltype*#19`} [gt_1], `MEMS`{`memtype*#33`} [], `TABLES`{`tabletype*#26`} [], `FUNCS`{`deftype*#73`} [], `DATAS`{`datatype*#18`} [], `ELEMS`{`elemtype*#18`} [], `LOCALS`{`localtype*#21`} [], `LABELS`{`resulttype*#29`} [], `RETURN`{`resulttype?#26`} ?(), `REFS`{`funcidx*#55`} []}] +[visit_exp `deftype*#72`] +[visit_id deftype*#72] +[visit_exp []] +[visit_exp `subtype*#17`] +[visit_id subtype*#17] +[visit_exp []] +[visit_exp `tagtype*#18`] +[visit_id tagtype*#18] +[visit_exp []] +[visit_exp `globaltype*#19`] +[visit_id globaltype*#19] +[visit_exp [gt_1]] +[visit_exp gt_1] +[visit_id gt_1] not free +[visit_exp `memtype*#33`] +[visit_id memtype*#33] +[visit_exp []] +[visit_exp `tabletype*#26`] +[visit_id tabletype*#26] +[visit_exp []] +[visit_exp `deftype*#73`] +[visit_id deftype*#73] +[visit_exp []] +[visit_exp `datatype*#18`] +[visit_id datatype*#18] +[visit_exp []] +[visit_exp `elemtype*#18`] +[visit_id elemtype*#18] +[visit_exp []] +[visit_exp `localtype*#21`] +[visit_id localtype*#21] +[visit_exp []] +[visit_exp `resulttype*#29`] +[visit_id resulttype*#29] +[visit_exp []] +[visit_exp `resulttype?#26`] +[visit_id resulttype?#26] +[visit_exp ?()] +[visit_exp `funcidx*#55`] +[visit_id funcidx*#55] +[visit_exp []] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] not free +[visit_id global*] no dims +[visit_exp gt*{gt <- `gt*`}] +[scope_enter gt] +[visit_exp gt] +[visit_id gt] not free +[visit_id gt] not free +[scope_exit gt] +[visit_exp `gt*`] +[visit_id gt*] not free +[visit_id gt*] no dims +[check_dims] +[check_dims] +[visit_exp 0] +[check_dims] +[visit_exp 1] +[check_dims] +[check_dims] +[visit_exp 0] +[check_dims] +[visit_exp 1] +[check_dims] +[visit_exp 2] +[check_dims] +[visit_exp 3] +[check_dims] X relaxed2 +DecD relaxed2(relaxed2 : relaxed2, syntax X, X : X, X : X) : X +[visit_id relaxed2] not free +[visit_id X] not free +[visit_id X] not free +[check_dims] X relaxed4 +DecD relaxed4(relaxed4 : relaxed4, syntax X, X : X, X : X, X : X, X : X) : X +[visit_id relaxed4] not free +[visit_id X] not free +[visit_id X] not free +[visit_id X] not free +[visit_id X] not free +[check_dims] X_1 X_2 i i#9672 +[visit_exp i] +[visit_id i] +[visit_exp X_1] +[visit_id X_1] +[visit_exp X_2] +[visit_id X_2] +[visit_exp [X_1 X_2][i!`%`_relaxed2{i#9672}.0]] +[visit_exp [X_1 X_2]] +[visit_exp X_1] +[visit_id X_1] not free +[visit_exp X_2] +[visit_id X_2] not free +[visit_exp i!`%`_relaxed2{i#9672}.0] +[visit_exp i!`%`_relaxed2{i#9672}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#9672] +[visit_id i#9672] +[visit_exp $ND] +=> + ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec + def $relaxed2{i : relaxed2, syntax X, X_1 : X, X_2 : X, i#9672 : nat}(i, syntax X, X_1, X_2) = [X_1 X_2][i!`%`_relaxed2{i#9672}.0] + -- if $ND +[check_dims] X_1 X_2 i +[visit_exp i] +[visit_id i] +[visit_exp X_1] +[visit_id X_1] +[visit_exp X_2] +[visit_id X_2] +[visit_exp [X_1 X_2][0]] +[visit_exp [X_1 X_2]] +[visit_exp X_1] +[visit_id X_1] not free +[visit_exp X_2] +[visit_id X_2] not free +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec + def $relaxed2{i : relaxed2, syntax X, X_1 : X, X_2 : X}(i, syntax X, X_1, X_2) = [X_1 X_2][0] + -- otherwise +[check_dims] X_1 X_2 X_3 X_4 i i#9686 +[visit_exp i] +[visit_id i] +[visit_exp X_1] +[visit_id X_1] +[visit_exp X_2] +[visit_id X_2] +[visit_exp X_3] +[visit_id X_3] +[visit_exp X_4] +[visit_id X_4] +[visit_exp [X_1 X_2 X_3 X_4][i!`%`_relaxed4{i#9686}.0]] +[visit_exp [X_1 X_2 X_3 X_4]] +[visit_exp X_1] +[visit_id X_1] not free +[visit_exp X_2] +[visit_id X_2] not free +[visit_exp X_3] +[visit_id X_3] not free +[visit_exp X_4] +[visit_id X_4] not free +[visit_exp i!`%`_relaxed4{i#9686}.0] +[visit_exp i!`%`_relaxed4{i#9686}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#9686] +[visit_id i#9686] +[visit_exp $ND] +=> + ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec + def $relaxed4{i : relaxed4, syntax X, X_1 : X, X_2 : X, X_3 : X, X_4 : X, i#9686 : nat}(i, syntax X, X_1, X_2, X_3, X_4) = [X_1 X_2 X_3 X_4][i!`%`_relaxed4{i#9686}.0] + -- if $ND +[check_dims] X_1 X_2 X_3 X_4 i +[visit_exp i] +[visit_id i] +[visit_exp X_1] +[visit_id X_1] +[visit_exp X_2] +[visit_id X_2] +[visit_exp X_3] +[visit_id X_3] +[visit_exp X_4] +[visit_id X_4] +[visit_exp [X_1 X_2 X_3 X_4][0]] +[visit_exp [X_1 X_2 X_3 X_4]] +[visit_exp X_1] +[visit_id X_1] not free +[visit_exp X_2] +[visit_id X_2] not free +[visit_exp X_3] +[visit_id X_3] not free +[visit_exp X_4] +[visit_id X_4] not free +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec + def $relaxed4{i : relaxed4, syntax X, X_1 : X, X_2 : X, X_3 : X, X_4 : X}(i, syntax X, X_1, X_2, X_3, X_4) = [X_1 X_2 X_3 X_4][0] + -- otherwise +[check_dims] +DecD R_fmadd : relaxed2 +[check_dims] +DecD R_fmin : relaxed4 +[check_dims] +DecD R_fmax : relaxed4 +[check_dims] +DecD R_idot : relaxed2 +[check_dims] +DecD R_iq15mulr : relaxed2 +[check_dims] +DecD R_trunc_u : relaxed4 +[check_dims] +DecD R_trunc_s : relaxed2 +[check_dims] +DecD R_swizzle : relaxed2 +[check_dims] +DecD R_laneselect : relaxed2 +[check_dims] s33 +DecD s33_to_u32(s33 : s33) : u32 +[visit_id s33] not free +[check_dims] N iN +DecD ibits_(N : N, iN : iN(N)) : bit* +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fbits_(N : N, fN : fN(N)) : bit* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD ibytes_(N : N, iN : iN(N)) : byte* +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fbytes_(N : N, fN : fN(N)) : byte* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] num_ numtype +DecD nbytes_(numtype : numtype, num_ : num_(numtype)) : byte* +[visit_id numtype] not free +[visit_id num_] not free +[visit_exp numtype] +[visit_id numtype] not free +[check_dims] vec_ vectype +DecD vbytes_(vectype : vectype, vec_ : vec_(vectype)) : byte* +[visit_id vectype] not free +[visit_id vec_] not free +[visit_exp vectype] +[visit_id vectype] not free +[check_dims] lit_ storagetype +DecD zbytes_(storagetype : storagetype, lit_ : lit_(storagetype)) : byte* +[visit_id storagetype] not free +[visit_id lit_] not free +[visit_exp storagetype] +[visit_id storagetype] not free +[check_dims] Cnn lit_ +DecD cbytes_(Cnn : Cnn, lit_ : lit_((Cnn : Cnn <: storagetype))) : byte* +[visit_id Cnn] not free +[visit_id lit_] not free +[visit_exp (Cnn : Cnn <: storagetype)] +[visit_exp Cnn] +[visit_id Cnn] not free +[check_dims] N _ +DecD inv_ibits_(N : N, bit*) : iN(N) +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N _ +DecD inv_fbits_(N : N, bit*) : fN(N) +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N _ +DecD inv_ibytes_(N : N, byte*) : iN(N) +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N _ +DecD inv_fbytes_(N : N, byte*) : fN(N) +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[check_dims] _ numtype +DecD inv_nbytes_(numtype : numtype, byte*) : num_(numtype) +[visit_id numtype] not free +[visit_id _] not free +[visit_exp numtype] +[visit_id numtype] not free +[check_dims] _ vectype +DecD inv_vbytes_(vectype : vectype, byte*) : vec_(vectype) +[visit_id vectype] not free +[visit_id _] not free +[visit_exp vectype] +[visit_id vectype] not free +[check_dims] _ storagetype +DecD inv_zbytes_(storagetype : storagetype, byte*) : lit_(storagetype) +[visit_id storagetype] not free +[visit_id _] not free +[visit_exp storagetype] +[visit_id storagetype] not free +[check_dims] Cnn _ +DecD inv_cbytes_(Cnn : Cnn, byte*) : lit_((Cnn : Cnn <: storagetype)) +[visit_id Cnn] not free +[visit_id _] not free +[visit_exp (Cnn : Cnn <: storagetype)] +[visit_exp Cnn] +[visit_id Cnn] not free +[check_dims] N nat +DecD signed_(N : N, nat : nat) : int +[visit_id N] not free +[visit_id nat] not free +[check_dims] N i +[visit_exp N] +[visit_id N] +[visit_exp i] +[visit_id i] +[visit_exp (i : nat <:> int)] +[visit_exp i] +[visit_id i] not free +[visit_exp (i < (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp i] +[visit_id i] not free +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $signed_{N : N, i : nat}(N, i) = (i : nat <:> int) + -- if (i < (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) +[check_dims] N i +[visit_exp N] +[visit_id N] +[visit_exp i] +[visit_id i] +[visit_exp ((i : nat <:> int) - ((2 ^ N) : nat <:> int))] +[visit_exp (i : nat <:> int)] +[visit_exp i] +[visit_id i] not free +[visit_exp ((2 ^ N) : nat <:> int)] +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +[visit_exp (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) <= i) /\ (i < (2 ^ N)))] +[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) <= i)] +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp i] +[visit_id i] not free +[visit_exp (i < (2 ^ N))] +[visit_exp i] +[visit_id i] not free +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $signed_{N : N, i : nat}(N, i) = ((i : nat <:> int) - ((2 ^ N) : nat <:> int)) + -- if (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) <= i) /\ (i < (2 ^ N))) +[check_dims] N int +DecD inv_signed_(N : N, int : int) : nat +[visit_id N] not free +[visit_id int] not free +[check_dims] N i +[visit_exp N] +[visit_id N] +[visit_exp i] +[visit_id i] +[visit_exp (i : int <:> nat)] +[visit_exp i] +[visit_id i] not free +[visit_exp (((0 : nat <:> int) <= i) /\ (i < ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)))] +[visit_exp ((0 : nat <:> int) <= i)] +[visit_exp (0 : nat <:> int)] +[visit_exp 0] +[visit_exp i] +[visit_id i] not free +[visit_exp (i < ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))] +[visit_exp i] +[visit_id i] not free +[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $inv_signed_{N : N, i : int}(N, i) = (i : int <:> nat) + -- if (((0 : nat <:> int) <= i) /\ (i < ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))) +[check_dims] N i +[visit_exp N] +[visit_id N] +[visit_exp i] +[visit_id i] +[visit_exp ((i + ((2 ^ N) : nat <:> int)) : int <:> nat)] +[visit_exp (i + ((2 ^ N) : nat <:> int))] +[visit_exp i] +[visit_id i] not free +[visit_exp ((2 ^ N) : nat <:> int)] +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +[visit_exp ((- ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) <= i) /\ (i < (0 : nat <:> int)))] +[visit_exp (- ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) <= i)] +[visit_exp - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp i] +[visit_id i] not free +[visit_exp (i < (0 : nat <:> int))] +[visit_exp i] +[visit_id i] not free +[visit_exp (0 : nat <:> int)] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $inv_signed_{N : N, i : int}(N, i) = ((i + ((2 ^ N) : nat <:> int)) : int <:> nat) + -- if ((- ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) <= i) /\ (i < (0 : nat <:> int))) +[check_dims] storagetype +DecD sx(storagetype : storagetype) : sx? +[visit_id storagetype] not free +[check_dims] consttype +[visit_exp (consttype : consttype <: storagetype)] +[visit_exp consttype] +[visit_id consttype] +[visit_exp ?()] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $sx{consttype : consttype}((consttype : consttype <: storagetype)) = ?() +[check_dims] packtype +[visit_exp (packtype : packtype <: storagetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp ?(`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $sx{packtype : packtype}((packtype : packtype <: storagetype)) = ?(`S`_sx) +[check_dims] lanetype +DecD zero(lanetype : lanetype) : lane_(lanetype) +[visit_id lanetype] not free +[visit_exp lanetype] +[visit_id lanetype] not free +[check_dims] Jnn i#9712 +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_lane_{i#9712}(0)] +[visit_exp i#9712] +[visit_id i#9712] +[visit_exp (0)] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $zero{Jnn : Jnn, i#9712 : nat}((Jnn : Jnn <: lanetype)) = `%`_lane_{i#9712}(0) +[check_dims] Fnn +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp $fzero($size((Fnn : Fnn <: numtype)))] +[visit_exp $size((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $zero{Fnn : Fnn}((Fnn : Fnn <: lanetype)) = $fzero($size((Fnn : Fnn <: numtype))) +[check_dims] bool +DecD bool(bool : bool) : nat +[visit_id bool] not free +[check_dims] +[visit_exp false] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $bool(false) = 0 +[check_dims] +[visit_exp true] +[visit_exp 1] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $bool(true) = 1 +[check_dims] rat +DecD truncz(rat : rat) : int +[visit_id rat] not free +[check_dims] rat +DecD ceilz(rat : rat) : int +[visit_id rat] not free +[check_dims] N int +DecD sat_u_(N : N, int : int) : nat +[visit_id N] not free +[visit_id int] not free +[check_dims] N i +[visit_exp N] +[visit_id N] +[visit_exp i] +[visit_id i] +[visit_exp 0] +[visit_exp (i < (0 : nat <:> int))] +[visit_exp i] +[visit_id i] not free +[visit_exp (0 : nat <:> int)] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $sat_u_{N : N, i : int}(N, i) = 0 + -- if (i < (0 : nat <:> int)) +[check_dims] N i +[visit_exp N] +[visit_id N] +[visit_exp i] +[visit_id i] +[visit_exp ((((2 ^ N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((2 ^ N) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((2 ^ N) : nat <:> int)] +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp (i > (((2 ^ N) : nat <:> int) - (1 : nat <:> int)))] +[visit_exp i] +[visit_id i] not free +[visit_exp (((2 ^ N) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((2 ^ N) : nat <:> int)] +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $sat_u_{N : N, i : int}(N, i) = ((((2 ^ N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat) + -- if (i > (((2 ^ N) : nat <:> int) - (1 : nat <:> int))) +[check_dims] N i +[visit_exp N] +[visit_id N] +[visit_exp i] +[visit_id i] +[visit_exp (i : int <:> nat)] +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $sat_u_{N : N, i : int}(N, i) = (i : int <:> nat) + -- otherwise +[check_dims] N int +DecD sat_s_(N : N, int : int) : int +[visit_id N] not free +[visit_id int] not free +[check_dims] N i +[visit_exp N] +[visit_id N] +[visit_exp i] +[visit_id i] +[visit_exp - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp (i < - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))] +[visit_exp i] +[visit_id i] not free +[visit_exp - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $sat_s_{N : N, i : int}(N, i) = - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) + -- if (i < - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) +[check_dims] N i +[visit_exp N] +[visit_id N] +[visit_exp i] +[visit_id i] +[visit_exp (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp (i > (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int)))] +[visit_exp i] +[visit_id i] not free +[visit_exp (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $sat_s_{N : N, i : int}(N, i) = (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int)) + -- if (i > (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))) +[check_dims] N i +[visit_exp N] +[visit_id N] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $sat_s_{N : N, i : int}(N, i) = i + -- otherwise +[check_dims] N iN +DecD ineg_(N : N, iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD iabs_(N : N, iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD iclz_(N : N, iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD ictz_(N : N, iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD ipopcnt_(N : N, iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] M N iN sx +DecD iextend_(N : N, M : M, sx : sx, iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id M] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD iadd_(N : N, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD isub_(N : N, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD imul_(N : N, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx +DecD idiv_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)? +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx +DecD irem_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)? +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx +DecD imin_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx +DecD imax_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx +DecD iadd_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx +DecD isub_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx +DecD iq15mulr_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx +DecD irelaxed_q15mulr_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)* +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx +DecD iavgr_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD inot_(N : N, iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD irev_(N : N, iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD iand_(N : N, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD iandnot_(N : N, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD ior_(N : N, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD ixor_(N : N, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN u32 +DecD ishl_(N : N, iN : iN(N), u32 : u32) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id u32] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx u32 +DecD ishr_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N) +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id u32] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD irotl_(N : N, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD irotr_(N : N, iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD ibitselect_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD irelaxed_laneselect_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)* +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD ieqz_(N : N, iN : iN(N)) : u32 +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD inez_(N : N, iN : iN(N)) : u32 +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD ieq_(N : N, iN : iN(N), iN : iN(N)) : u32 +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN +DecD ine_(N : N, iN : iN(N), iN : iN(N)) : u32 +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx +DecD ilt_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx +DecD igt_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx +DecD ile_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N iN sx +DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N i#9726 i#9728 i_1 +[visit_exp N] +[visit_id N] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `%`_iN{i#9728}((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] +[visit_exp i#9728] +[visit_id i#9728] +[visit_exp ((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] +[visit_exp (((((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)] +[visit_exp ((((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int))] +[visit_exp (((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int))] +[visit_exp ((2 ^ N) : nat <:> int)] +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +[visit_exp (i_1!`%`_iN{i#9726}.0 : nat <:> int)] +[visit_exp i_1!`%`_iN{i#9726}.0] +[visit_exp i_1!`%`_iN{i#9726}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#9726] +[visit_id i#9726] +[visit_exp ((2 ^ N) : nat <:> int)] +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $ineg_{N : N, i_1 : iN(N), i#9728 : nat, i#9726 : nat}(N, i_1) = `%`_iN{i#9728}((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) +[check_dims] N i#9736 i_1 +[visit_exp N] +[visit_id N] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp ($signed_(N, i_1!`%`_iN{i#9736}.0) >= (0 : nat <:> int))] +[visit_exp $signed_(N, i_1!`%`_iN{i#9736}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1!`%`_iN{i#9736}.0] +[visit_exp i_1!`%`_iN{i#9736}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#9736] +[visit_id i#9736] +[visit_exp (0 : nat <:> int)] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $iabs_{N : N, i_1 : iN(N), i#9736 : nat}(N, i_1) = i_1 + -- if ($signed_(N, i_1!`%`_iN{i#9736}.0) >= (0 : nat <:> int)) +[check_dims] N i_1 +[visit_exp N] +[visit_id N] +[visit_exp i_1] +[visit_id i_1] +[visit_exp $ineg_(N, i_1)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1] +[visit_id i_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $iabs_{N : N, i_1 : iN(N)}(N, i_1) = $ineg_(N, i_1) + -- otherwise +[check_dims] M N i i#9774 i#9776 +[visit_exp N] +[visit_id N] +[visit_exp M] +[visit_id M] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `%`_iN{i#9776}((i!`%`_iN{i#9774}.0 \ (2 ^ M)))] +[visit_exp i#9776] +[visit_id i#9776] +[visit_exp ((i!`%`_iN{i#9774}.0 \ (2 ^ M)))] +[visit_exp (i!`%`_iN{i#9774}.0 \ (2 ^ M))] +[visit_exp i!`%`_iN{i#9774}.0] +[visit_exp i!`%`_iN{i#9774}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#9774] +[visit_id i#9774] +[visit_exp (2 ^ M)] +[visit_exp 2] +[visit_exp M] +[visit_id M] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $iextend_{N : N, M : M, i : iN(N), i#9776 : nat, i#9774 : nat}(N, M, `U`_sx, i) = `%`_iN{i#9776}((i!`%`_iN{i#9774}.0 \ (2 ^ M))) +[check_dims] M N i i#9790 i#9792 +[visit_exp N] +[visit_id N] +[visit_exp M] +[visit_id M] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `%`_iN{i#9792}($inv_signed_(N, $signed_(M, (i!`%`_iN{i#9790}.0 \ (2 ^ M)))))] +[visit_exp i#9792] +[visit_id i#9792] +[visit_exp ($inv_signed_(N, $signed_(M, (i!`%`_iN{i#9790}.0 \ (2 ^ M)))))] +[visit_exp $inv_signed_(N, $signed_(M, (i!`%`_iN{i#9790}.0 \ (2 ^ M))))] +[visit_exp N] +[visit_id N] not free +[visit_exp $signed_(M, (i!`%`_iN{i#9790}.0 \ (2 ^ M)))] +[visit_exp M] +[visit_id M] not free +[visit_exp (i!`%`_iN{i#9790}.0 \ (2 ^ M))] +[visit_exp i!`%`_iN{i#9790}.0] +[visit_exp i!`%`_iN{i#9790}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#9790] +[visit_id i#9790] +[visit_exp (2 ^ M)] +[visit_exp 2] +[visit_exp M] +[visit_id M] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $iextend_{N : N, M : M, i : iN(N), i#9792 : nat, i#9790 : nat}(N, M, `S`_sx, i) = `%`_iN{i#9792}($inv_signed_(N, $signed_(M, (i!`%`_iN{i#9790}.0 \ (2 ^ M))))) +[check_dims] N i#9812 i#9814 i#9816 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_iN{i#9816}(((i_1!`%`_iN{i#9812}.0 + i_2!`%`_iN{i#9814}.0) \ (2 ^ N)))] +[visit_exp i#9816] +[visit_id i#9816] +[visit_exp (((i_1!`%`_iN{i#9812}.0 + i_2!`%`_iN{i#9814}.0) \ (2 ^ N)))] +[visit_exp ((i_1!`%`_iN{i#9812}.0 + i_2!`%`_iN{i#9814}.0) \ (2 ^ N))] +[visit_exp (i_1!`%`_iN{i#9812}.0 + i_2!`%`_iN{i#9814}.0)] +[visit_exp i_1!`%`_iN{i#9812}.0] +[visit_exp i_1!`%`_iN{i#9812}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#9812] +[visit_id i#9812] +[visit_exp i_2!`%`_iN{i#9814}.0] +[visit_exp i_2!`%`_iN{i#9814}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#9814] +[visit_id i#9814] +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $iadd_{N : N, i_1 : iN(N), i_2 : iN(N), i#9816 : nat, i#9812 : nat, i#9814 : nat}(N, i_1, i_2) = `%`_iN{i#9816}(((i_1!`%`_iN{i#9812}.0 + i_2!`%`_iN{i#9814}.0) \ (2 ^ N))) +[check_dims] N i#9836 i#9838 i#9840 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_iN{i#9840}(((((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] +[visit_exp i#9840] +[visit_id i#9840] +[visit_exp (((((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] +[visit_exp ((((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)] +[visit_exp (((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int))] +[visit_exp ((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int))] +[visit_exp (((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int)] +[visit_exp ((2 ^ N) + i_1!`%`_iN{i#9836}.0)] +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1!`%`_iN{i#9836}.0] +[visit_exp i_1!`%`_iN{i#9836}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#9836] +[visit_id i#9836] +[visit_exp (i_2!`%`_iN{i#9838}.0 : nat <:> int)] +[visit_exp i_2!`%`_iN{i#9838}.0] +[visit_exp i_2!`%`_iN{i#9838}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#9838] +[visit_id i#9838] +[visit_exp ((2 ^ N) : nat <:> int)] +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $isub_{N : N, i_1 : iN(N), i_2 : iN(N), i#9840 : nat, i#9836 : nat, i#9838 : nat}(N, i_1, i_2) = `%`_iN{i#9840}(((((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) +[check_dims] N i#9860 i#9862 i#9864 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_iN{i#9864}(((i_1!`%`_iN{i#9860}.0 * i_2!`%`_iN{i#9862}.0) \ (2 ^ N)))] +[visit_exp i#9864] +[visit_id i#9864] +[visit_exp (((i_1!`%`_iN{i#9860}.0 * i_2!`%`_iN{i#9862}.0) \ (2 ^ N)))] +[visit_exp ((i_1!`%`_iN{i#9860}.0 * i_2!`%`_iN{i#9862}.0) \ (2 ^ N))] +[visit_exp (i_1!`%`_iN{i#9860}.0 * i_2!`%`_iN{i#9862}.0)] +[visit_exp i_1!`%`_iN{i#9860}.0] +[visit_exp i_1!`%`_iN{i#9860}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#9860] +[visit_id i#9860] +[visit_exp i_2!`%`_iN{i#9862}.0] +[visit_exp i_2!`%`_iN{i#9862}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#9862] +[visit_id i#9862] +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $imul_{N : N, i_1 : iN(N), i_2 : iN(N), i#9864 : nat, i#9860 : nat, i#9862 : nat}(N, i_1, i_2) = `%`_iN{i#9864}(((i_1!`%`_iN{i#9860}.0 * i_2!`%`_iN{i#9862}.0) \ (2 ^ N))) +[check_dims] N i#9878 i_1 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `%`_iN{i#9878}(0)] +[visit_exp i#9878] +[visit_id i#9878] +[visit_exp (0)] +[visit_exp 0] +[visit_exp ?()] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $idiv_{N : N, i_1 : iN(N), i#9878 : nat}(N, `U`_sx, i_1, `%`_iN{i#9878}(0)) = ?() +[check_dims] N i#9898 i#9900 i#9902 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp ?(`%`_iN{i#9902}(($truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))) : int <:> nat)))] +[visit_exp `%`_iN{i#9902}(($truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))) : int <:> nat))] +[visit_exp i#9902] +[visit_id i#9902] +[visit_exp (($truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))) : int <:> nat))] +[visit_exp ($truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))) : int <:> nat)] +[visit_exp $truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat)))] +[visit_exp ((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))] +[visit_exp (i_1!`%`_iN{i#9898}.0 : nat <:> rat)] +[visit_exp i_1!`%`_iN{i#9898}.0] +[visit_exp i_1!`%`_iN{i#9898}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#9898] +[visit_id i#9898] +[visit_exp (i_2!`%`_iN{i#9900}.0 : nat <:> rat)] +[visit_exp i_2!`%`_iN{i#9900}.0] +[visit_exp i_2!`%`_iN{i#9900}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#9900] +[visit_id i#9900] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N), i#9902 : nat, i#9898 : nat, i#9900 : nat}(N, `U`_sx, i_1, i_2) = ?(`%`_iN{i#9902}(($truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))) : int <:> nat))) +[check_dims] N i#9916 i_1 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `%`_iN{i#9916}(0)] +[visit_exp i#9916] +[visit_id i#9916] +[visit_exp (0)] +[visit_exp 0] +[visit_exp ?()] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $idiv_{N : N, i_1 : iN(N), i#9916 : nat}(N, `S`_sx, i_1, `%`_iN{i#9916}(0)) = ?() +[check_dims] N i#9930 i#9932 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp ?()] +[visit_exp ((($signed_(N, i_1!`%`_iN{i#9930}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9932}.0) : int <:> rat)) = ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat))] +[visit_exp (($signed_(N, i_1!`%`_iN{i#9930}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9932}.0) : int <:> rat))] +[visit_exp ($signed_(N, i_1!`%`_iN{i#9930}.0) : int <:> rat)] +[visit_exp $signed_(N, i_1!`%`_iN{i#9930}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1!`%`_iN{i#9930}.0] +[visit_exp i_1!`%`_iN{i#9930}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#9930] +[visit_id i#9930] +[visit_exp ($signed_(N, i_2!`%`_iN{i#9932}.0) : int <:> rat)] +[visit_exp $signed_(N, i_2!`%`_iN{i#9932}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_2!`%`_iN{i#9932}.0] +[visit_exp i_2!`%`_iN{i#9932}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#9932] +[visit_id i#9932] +[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat)] +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N), i#9930 : nat, i#9932 : nat}(N, `S`_sx, i_1, i_2) = ?() + -- if ((($signed_(N, i_1!`%`_iN{i#9930}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9932}.0) : int <:> rat)) = ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat)) +[check_dims] N i#9952 i#9954 i#9956 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp ?(`%`_iN{i#9956}($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat))))))] +[visit_exp `%`_iN{i#9956}($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat)))))] +[visit_exp i#9956] +[visit_id i#9956] +[visit_exp ($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat)))))] +[visit_exp $inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat))))] +[visit_exp N] +[visit_id N] not free +[visit_exp $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat)))] +[visit_exp (($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat))] +[visit_exp ($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat)] +[visit_exp $signed_(N, i_1!`%`_iN{i#9952}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1!`%`_iN{i#9952}.0] +[visit_exp i_1!`%`_iN{i#9952}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#9952] +[visit_id i#9952] +[visit_exp ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat)] +[visit_exp $signed_(N, i_2!`%`_iN{i#9954}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_2!`%`_iN{i#9954}.0] +[visit_exp i_2!`%`_iN{i#9954}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#9954] +[visit_id i#9954] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N), i#9956 : nat, i#9952 : nat, i#9954 : nat}(N, `S`_sx, i_1, i_2) = ?(`%`_iN{i#9956}($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat)))))) +[check_dims] N i#9970 i_1 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `%`_iN{i#9970}(0)] +[visit_exp i#9970] +[visit_id i#9970] +[visit_exp (0)] +[visit_exp 0] +[visit_exp ?()] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $irem_{N : N, i_1 : iN(N), i#9970 : nat}(N, `U`_sx, i_1, `%`_iN{i#9970}(0)) = ?() +[check_dims] N i#9990 i#9992 i#9994 i#9996 i#9998 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp ?(`%`_iN{i#9998}((((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat)))] +[visit_exp `%`_iN{i#9998}((((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))] +[visit_exp i#9998] +[visit_id i#9998] +[visit_exp ((((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))] +[visit_exp (((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat)] +[visit_exp ((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int))] +[visit_exp (i_1!`%`_iN{i#9996}.0 : nat <:> int)] +[visit_exp i_1!`%`_iN{i#9996}.0] +[visit_exp i_1!`%`_iN{i#9996}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#9996] +[visit_id i#9996] +[visit_exp ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)] +[visit_exp (i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat))] +[visit_exp i_2!`%`_iN{i#9994}.0] +[visit_exp i_2!`%`_iN{i#9994}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#9994] +[visit_id i#9994] +[visit_exp ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)] +[visit_exp $truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat)))] +[visit_exp ((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))] +[visit_exp (i_1!`%`_iN{i#9990}.0 : nat <:> rat)] +[visit_exp i_1!`%`_iN{i#9990}.0] +[visit_exp i_1!`%`_iN{i#9990}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#9990] +[visit_id i#9990] +[visit_exp (i_2!`%`_iN{i#9992}.0 : nat <:> rat)] +[visit_exp i_2!`%`_iN{i#9992}.0] +[visit_exp i_2!`%`_iN{i#9992}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#9992] +[visit_id i#9992] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), i#9998 : nat, i#9996 : nat, i#9994 : nat, i#9990 : nat, i#9992 : nat}(N, `U`_sx, i_1, i_2) = ?(`%`_iN{i#9998}((((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))) +[check_dims] N i#10012 i_1 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `%`_iN{i#10012}(0)] +[visit_exp i#10012] +[visit_id i#10012] +[visit_exp (0)] +[visit_exp 0] +[visit_exp ?()] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $irem_{N : N, i_1 : iN(N), i#10012 : nat}(N, `S`_sx, i_1, `%`_iN{i#10012}(0)) = ?() +[check_dims] N i#10026 i#10028 i#10036 i_1 i_2 j_1 j_2 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp ?(`%`_iN{i#10036}($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat))))))))] +[visit_exp `%`_iN{i#10036}($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))] +[visit_exp i#10036] +[visit_id i#10036] +[visit_exp ($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))] +[visit_exp $inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat))))))] +[visit_exp N] +[visit_id N] not free +[visit_exp (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))] +[visit_exp j_1] +[visit_id j_1] +[visit_exp (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat))))] +[visit_exp j_2] +[visit_id j_2] +[visit_exp $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))] +[visit_exp ((j_1 : int <:> rat) / (j_2 : int <:> rat))] +[visit_exp (j_1 : int <:> rat)] +[visit_exp j_1] +[visit_id j_1] not free +[visit_exp (j_2 : int <:> rat)] +[visit_exp j_2] +[visit_id j_2] not free +[visit_exp ((j_1 = $signed_(N, i_1!`%`_iN{i#10026}.0)) /\ (j_2 = $signed_(N, i_2!`%`_iN{i#10028}.0)))] +[visit_exp (j_1 = $signed_(N, i_1!`%`_iN{i#10026}.0))] +[visit_exp j_1] +[visit_id j_1] not free +[visit_exp $signed_(N, i_1!`%`_iN{i#10026}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1!`%`_iN{i#10026}.0] +[visit_exp i_1!`%`_iN{i#10026}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10026] +[visit_id i#10026] +[visit_exp (j_2 = $signed_(N, i_2!`%`_iN{i#10028}.0))] +[visit_exp j_2] +[visit_id j_2] not free +[visit_exp $signed_(N, i_2!`%`_iN{i#10028}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_2!`%`_iN{i#10028}.0] +[visit_exp i_2!`%`_iN{i#10028}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10028] +[visit_id i#10028] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), i#10036 : nat, j_1 : int, j_2 : int, i#10026 : nat, i#10028 : nat}(N, `S`_sx, i_1, i_2) = ?(`%`_iN{i#10036}($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))) + -- if ((j_1 = $signed_(N, i_1!`%`_iN{i#10026}.0)) /\ (j_2 = $signed_(N, i_2!`%`_iN{i#10028}.0))) +[check_dims] N i#10050 i#10052 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp (i_1!`%`_iN{i#10050}.0 <= i_2!`%`_iN{i#10052}.0)] +[visit_exp i_1!`%`_iN{i#10050}.0] +[visit_exp i_1!`%`_iN{i#10050}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10050] +[visit_id i#10050] +[visit_exp i_2!`%`_iN{i#10052}.0] +[visit_exp i_2!`%`_iN{i#10052}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10052] +[visit_id i#10052] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N), i#10050 : nat, i#10052 : nat}(N, `U`_sx, i_1, i_2) = i_1 + -- if (i_1!`%`_iN{i#10050}.0 <= i_2!`%`_iN{i#10052}.0) +[check_dims] N i#10072 i#10074 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp (i_1!`%`_iN{i#10072}.0 > i_2!`%`_iN{i#10074}.0)] +[visit_exp i_1!`%`_iN{i#10072}.0] +[visit_exp i_1!`%`_iN{i#10072}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10072] +[visit_id i#10072] +[visit_exp i_2!`%`_iN{i#10074}.0] +[visit_exp i_2!`%`_iN{i#10074}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10074] +[visit_id i#10074] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N), i#10072 : nat, i#10074 : nat}(N, `U`_sx, i_1, i_2) = i_2 + -- if (i_1!`%`_iN{i#10072}.0 > i_2!`%`_iN{i#10074}.0) +[check_dims] N i#10094 i#10096 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp ($signed_(N, i_1!`%`_iN{i#10094}.0) <= $signed_(N, i_2!`%`_iN{i#10096}.0))] +[visit_exp $signed_(N, i_1!`%`_iN{i#10094}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1!`%`_iN{i#10094}.0] +[visit_exp i_1!`%`_iN{i#10094}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10094] +[visit_id i#10094] +[visit_exp $signed_(N, i_2!`%`_iN{i#10096}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_2!`%`_iN{i#10096}.0] +[visit_exp i_2!`%`_iN{i#10096}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10096] +[visit_id i#10096] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N), i#10094 : nat, i#10096 : nat}(N, `S`_sx, i_1, i_2) = i_1 + -- if ($signed_(N, i_1!`%`_iN{i#10094}.0) <= $signed_(N, i_2!`%`_iN{i#10096}.0)) +[check_dims] N i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_2 + -- otherwise +[check_dims] N i#10134 i#10136 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp (i_1!`%`_iN{i#10134}.0 >= i_2!`%`_iN{i#10136}.0)] +[visit_exp i_1!`%`_iN{i#10134}.0] +[visit_exp i_1!`%`_iN{i#10134}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10134] +[visit_id i#10134] +[visit_exp i_2!`%`_iN{i#10136}.0] +[visit_exp i_2!`%`_iN{i#10136}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10136] +[visit_id i#10136] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N), i#10134 : nat, i#10136 : nat}(N, `U`_sx, i_1, i_2) = i_1 + -- if (i_1!`%`_iN{i#10134}.0 >= i_2!`%`_iN{i#10136}.0) +[check_dims] N i#10156 i#10158 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp (i_1!`%`_iN{i#10156}.0 < i_2!`%`_iN{i#10158}.0)] +[visit_exp i_1!`%`_iN{i#10156}.0] +[visit_exp i_1!`%`_iN{i#10156}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10156] +[visit_id i#10156] +[visit_exp i_2!`%`_iN{i#10158}.0] +[visit_exp i_2!`%`_iN{i#10158}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10158] +[visit_id i#10158] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N), i#10156 : nat, i#10158 : nat}(N, `U`_sx, i_1, i_2) = i_2 + -- if (i_1!`%`_iN{i#10156}.0 < i_2!`%`_iN{i#10158}.0) +[check_dims] N i#10178 i#10180 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp ($signed_(N, i_1!`%`_iN{i#10178}.0) >= $signed_(N, i_2!`%`_iN{i#10180}.0))] +[visit_exp $signed_(N, i_1!`%`_iN{i#10178}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1!`%`_iN{i#10178}.0] +[visit_exp i_1!`%`_iN{i#10178}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10178] +[visit_id i#10178] +[visit_exp $signed_(N, i_2!`%`_iN{i#10180}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_2!`%`_iN{i#10180}.0] +[visit_exp i_2!`%`_iN{i#10180}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10180] +[visit_id i#10180] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N), i#10178 : nat, i#10180 : nat}(N, `S`_sx, i_1, i_2) = i_1 + -- if ($signed_(N, i_1!`%`_iN{i#10178}.0) >= $signed_(N, i_2!`%`_iN{i#10180}.0)) +[check_dims] N i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_2 + -- otherwise +[check_dims] N i#10224 i#10226 i#10228 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_iN{i#10228}($sat_u_(N, ((i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0) : nat <:> int)))] +[visit_exp i#10228] +[visit_id i#10228] +[visit_exp ($sat_u_(N, ((i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0) : nat <:> int)))] +[visit_exp $sat_u_(N, ((i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0) : nat <:> int))] +[visit_exp N] +[visit_id N] not free +[visit_exp ((i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0) : nat <:> int)] +[visit_exp (i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0)] +[visit_exp i_1!`%`_iN{i#10224}.0] +[visit_exp i_1!`%`_iN{i#10224}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10224] +[visit_id i#10224] +[visit_exp i_2!`%`_iN{i#10226}.0] +[visit_exp i_2!`%`_iN{i#10226}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10226] +[visit_id i#10226] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10228 : nat, i#10224 : nat, i#10226 : nat}(N, `U`_sx, i_1, i_2) = `%`_iN{i#10228}($sat_u_(N, ((i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0) : nat <:> int))) +[check_dims] N i#10248 i#10250 i#10252 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_iN{i#10252}($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0)))))] +[visit_exp i#10252] +[visit_id i#10252] +[visit_exp ($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0)))))] +[visit_exp $inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0))))] +[visit_exp N] +[visit_id N] not free +[visit_exp $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0)))] +[visit_exp N] +[visit_id N] not free +[visit_exp ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0))] +[visit_exp $signed_(N, i_1!`%`_iN{i#10248}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1!`%`_iN{i#10248}.0] +[visit_exp i_1!`%`_iN{i#10248}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10248] +[visit_id i#10248] +[visit_exp $signed_(N, i_2!`%`_iN{i#10250}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_2!`%`_iN{i#10250}.0] +[visit_exp i_2!`%`_iN{i#10250}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10250] +[visit_id i#10250] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10252 : nat, i#10248 : nat, i#10250 : nat}(N, `S`_sx, i_1, i_2) = `%`_iN{i#10252}($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0))))) +[check_dims] N i#10272 i#10274 i#10276 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_iN{i#10276}($sat_u_(N, ((i_1!`%`_iN{i#10272}.0 : nat <:> int) - (i_2!`%`_iN{i#10274}.0 : nat <:> int))))] +[visit_exp i#10276] +[visit_id i#10276] +[visit_exp ($sat_u_(N, ((i_1!`%`_iN{i#10272}.0 : nat <:> int) - (i_2!`%`_iN{i#10274}.0 : nat <:> int))))] +[visit_exp $sat_u_(N, ((i_1!`%`_iN{i#10272}.0 : nat <:> int) - (i_2!`%`_iN{i#10274}.0 : nat <:> int)))] +[visit_exp N] +[visit_id N] not free +[visit_exp ((i_1!`%`_iN{i#10272}.0 : nat <:> int) - (i_2!`%`_iN{i#10274}.0 : nat <:> int))] +[visit_exp (i_1!`%`_iN{i#10272}.0 : nat <:> int)] +[visit_exp i_1!`%`_iN{i#10272}.0] +[visit_exp i_1!`%`_iN{i#10272}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10272] +[visit_id i#10272] +[visit_exp (i_2!`%`_iN{i#10274}.0 : nat <:> int)] +[visit_exp i_2!`%`_iN{i#10274}.0] +[visit_exp i_2!`%`_iN{i#10274}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10274] +[visit_id i#10274] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10276 : nat, i#10272 : nat, i#10274 : nat}(N, `U`_sx, i_1, i_2) = `%`_iN{i#10276}($sat_u_(N, ((i_1!`%`_iN{i#10272}.0 : nat <:> int) - (i_2!`%`_iN{i#10274}.0 : nat <:> int)))) +[check_dims] N i#10296 i#10298 i#10300 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_iN{i#10300}($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0)))))] +[visit_exp i#10300] +[visit_id i#10300] +[visit_exp ($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0)))))] +[visit_exp $inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0))))] +[visit_exp N] +[visit_id N] not free +[visit_exp $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0)))] +[visit_exp N] +[visit_id N] not free +[visit_exp ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0))] +[visit_exp $signed_(N, i_1!`%`_iN{i#10296}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1!`%`_iN{i#10296}.0] +[visit_exp i_1!`%`_iN{i#10296}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10296] +[visit_id i#10296] +[visit_exp $signed_(N, i_2!`%`_iN{i#10298}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_2!`%`_iN{i#10298}.0] +[visit_exp i_2!`%`_iN{i#10298}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10298] +[visit_id i#10298] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10300 : nat, i#10296 : nat, i#10298 : nat}(N, `S`_sx, i_1, i_2) = `%`_iN{i#10300}($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0))))) +[check_dims] N i#10318 i#10328 i_1 +[visit_exp N] +[visit_id N] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `%`_u32{i#10328}($bool((i_1!`%`_iN{i#10318}.0 = 0)))] +[visit_exp i#10328] +[visit_id i#10328] +[visit_exp ($bool((i_1!`%`_iN{i#10318}.0 = 0)))] +[visit_exp $bool((i_1!`%`_iN{i#10318}.0 = 0))] +[visit_exp (i_1!`%`_iN{i#10318}.0 = 0)] +[visit_exp i_1!`%`_iN{i#10318}.0] +[visit_exp i_1!`%`_iN{i#10318}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10318] +[visit_id i#10318] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $ieqz_{N : N, i_1 : iN(N), i#10328 : nat, i#10318 : nat}(N, i_1) = `%`_u32{i#10328}($bool((i_1!`%`_iN{i#10318}.0 = 0))) +[check_dims] N i#10346 i#10356 i_1 +[visit_exp N] +[visit_id N] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `%`_u32{i#10356}($bool((i_1!`%`_iN{i#10346}.0 =/= 0)))] +[visit_exp i#10356] +[visit_id i#10356] +[visit_exp ($bool((i_1!`%`_iN{i#10346}.0 =/= 0)))] +[visit_exp $bool((i_1!`%`_iN{i#10346}.0 =/= 0))] +[visit_exp (i_1!`%`_iN{i#10346}.0 =/= 0)] +[visit_exp i_1!`%`_iN{i#10346}.0] +[visit_exp i_1!`%`_iN{i#10346}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10346] +[visit_id i#10346] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $inez_{N : N, i_1 : iN(N), i#10356 : nat, i#10346 : nat}(N, i_1) = `%`_u32{i#10356}($bool((i_1!`%`_iN{i#10346}.0 =/= 0))) +[check_dims] N i#10394 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_u32{i#10394}($bool((i_1 = i_2)))] +[visit_exp i#10394] +[visit_id i#10394] +[visit_exp ($bool((i_1 = i_2)))] +[visit_exp $bool((i_1 = i_2))] +[visit_exp (i_1 = i_2)] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $ieq_{N : N, i_1 : iN(N), i_2 : iN(N), i#10394 : nat}(N, i_1, i_2) = `%`_u32{i#10394}($bool((i_1 = i_2))) +[check_dims] N i#10432 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_u32{i#10432}($bool((i_1 =/= i_2)))] +[visit_exp i#10432] +[visit_id i#10432] +[visit_exp ($bool((i_1 =/= i_2)))] +[visit_exp $bool((i_1 =/= i_2))] +[visit_exp (i_1 =/= i_2)] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $ine_{N : N, i_1 : iN(N), i_2 : iN(N), i#10432 : nat}(N, i_1, i_2) = `%`_u32{i#10432}($bool((i_1 =/= i_2))) +[check_dims] N i#10456 i#10458 i#10468 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_u32{i#10468}($bool((i_1!`%`_iN{i#10456}.0 < i_2!`%`_iN{i#10458}.0)))] +[visit_exp i#10468] +[visit_id i#10468] +[visit_exp ($bool((i_1!`%`_iN{i#10456}.0 < i_2!`%`_iN{i#10458}.0)))] +[visit_exp $bool((i_1!`%`_iN{i#10456}.0 < i_2!`%`_iN{i#10458}.0))] +[visit_exp (i_1!`%`_iN{i#10456}.0 < i_2!`%`_iN{i#10458}.0)] +[visit_exp i_1!`%`_iN{i#10456}.0] +[visit_exp i_1!`%`_iN{i#10456}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10456] +[visit_id i#10456] +[visit_exp i_2!`%`_iN{i#10458}.0] +[visit_exp i_2!`%`_iN{i#10458}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10458] +[visit_id i#10458] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10468 : nat, i#10456 : nat, i#10458 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10468}($bool((i_1!`%`_iN{i#10456}.0 < i_2!`%`_iN{i#10458}.0))) +[check_dims] N i#10492 i#10494 i#10504 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_u32{i#10504}($bool(($signed_(N, i_1!`%`_iN{i#10492}.0) < $signed_(N, i_2!`%`_iN{i#10494}.0))))] +[visit_exp i#10504] +[visit_id i#10504] +[visit_exp ($bool(($signed_(N, i_1!`%`_iN{i#10492}.0) < $signed_(N, i_2!`%`_iN{i#10494}.0))))] +[visit_exp $bool(($signed_(N, i_1!`%`_iN{i#10492}.0) < $signed_(N, i_2!`%`_iN{i#10494}.0)))] +[visit_exp ($signed_(N, i_1!`%`_iN{i#10492}.0) < $signed_(N, i_2!`%`_iN{i#10494}.0))] +[visit_exp $signed_(N, i_1!`%`_iN{i#10492}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1!`%`_iN{i#10492}.0] +[visit_exp i_1!`%`_iN{i#10492}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10492] +[visit_id i#10492] +[visit_exp $signed_(N, i_2!`%`_iN{i#10494}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_2!`%`_iN{i#10494}.0] +[visit_exp i_2!`%`_iN{i#10494}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10494] +[visit_id i#10494] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10504 : nat, i#10492 : nat, i#10494 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10504}($bool(($signed_(N, i_1!`%`_iN{i#10492}.0) < $signed_(N, i_2!`%`_iN{i#10494}.0)))) +[check_dims] N i#10528 i#10530 i#10540 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_u32{i#10540}($bool((i_1!`%`_iN{i#10528}.0 > i_2!`%`_iN{i#10530}.0)))] +[visit_exp i#10540] +[visit_id i#10540] +[visit_exp ($bool((i_1!`%`_iN{i#10528}.0 > i_2!`%`_iN{i#10530}.0)))] +[visit_exp $bool((i_1!`%`_iN{i#10528}.0 > i_2!`%`_iN{i#10530}.0))] +[visit_exp (i_1!`%`_iN{i#10528}.0 > i_2!`%`_iN{i#10530}.0)] +[visit_exp i_1!`%`_iN{i#10528}.0] +[visit_exp i_1!`%`_iN{i#10528}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10528] +[visit_id i#10528] +[visit_exp i_2!`%`_iN{i#10530}.0] +[visit_exp i_2!`%`_iN{i#10530}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10530] +[visit_id i#10530] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $igt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10540 : nat, i#10528 : nat, i#10530 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10540}($bool((i_1!`%`_iN{i#10528}.0 > i_2!`%`_iN{i#10530}.0))) +[check_dims] N i#10564 i#10566 i#10576 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_u32{i#10576}($bool(($signed_(N, i_1!`%`_iN{i#10564}.0) > $signed_(N, i_2!`%`_iN{i#10566}.0))))] +[visit_exp i#10576] +[visit_id i#10576] +[visit_exp ($bool(($signed_(N, i_1!`%`_iN{i#10564}.0) > $signed_(N, i_2!`%`_iN{i#10566}.0))))] +[visit_exp $bool(($signed_(N, i_1!`%`_iN{i#10564}.0) > $signed_(N, i_2!`%`_iN{i#10566}.0)))] +[visit_exp ($signed_(N, i_1!`%`_iN{i#10564}.0) > $signed_(N, i_2!`%`_iN{i#10566}.0))] +[visit_exp $signed_(N, i_1!`%`_iN{i#10564}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1!`%`_iN{i#10564}.0] +[visit_exp i_1!`%`_iN{i#10564}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10564] +[visit_id i#10564] +[visit_exp $signed_(N, i_2!`%`_iN{i#10566}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_2!`%`_iN{i#10566}.0] +[visit_exp i_2!`%`_iN{i#10566}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10566] +[visit_id i#10566] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $igt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10576 : nat, i#10564 : nat, i#10566 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10576}($bool(($signed_(N, i_1!`%`_iN{i#10564}.0) > $signed_(N, i_2!`%`_iN{i#10566}.0)))) +[check_dims] N i#10600 i#10602 i#10612 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_u32{i#10612}($bool((i_1!`%`_iN{i#10600}.0 <= i_2!`%`_iN{i#10602}.0)))] +[visit_exp i#10612] +[visit_id i#10612] +[visit_exp ($bool((i_1!`%`_iN{i#10600}.0 <= i_2!`%`_iN{i#10602}.0)))] +[visit_exp $bool((i_1!`%`_iN{i#10600}.0 <= i_2!`%`_iN{i#10602}.0))] +[visit_exp (i_1!`%`_iN{i#10600}.0 <= i_2!`%`_iN{i#10602}.0)] +[visit_exp i_1!`%`_iN{i#10600}.0] +[visit_exp i_1!`%`_iN{i#10600}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10600] +[visit_id i#10600] +[visit_exp i_2!`%`_iN{i#10602}.0] +[visit_exp i_2!`%`_iN{i#10602}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10602] +[visit_id i#10602] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $ile_{N : N, i_1 : iN(N), i_2 : iN(N), i#10612 : nat, i#10600 : nat, i#10602 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10612}($bool((i_1!`%`_iN{i#10600}.0 <= i_2!`%`_iN{i#10602}.0))) +[check_dims] N i#10636 i#10638 i#10648 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_u32{i#10648}($bool(($signed_(N, i_1!`%`_iN{i#10636}.0) <= $signed_(N, i_2!`%`_iN{i#10638}.0))))] +[visit_exp i#10648] +[visit_id i#10648] +[visit_exp ($bool(($signed_(N, i_1!`%`_iN{i#10636}.0) <= $signed_(N, i_2!`%`_iN{i#10638}.0))))] +[visit_exp $bool(($signed_(N, i_1!`%`_iN{i#10636}.0) <= $signed_(N, i_2!`%`_iN{i#10638}.0)))] +[visit_exp ($signed_(N, i_1!`%`_iN{i#10636}.0) <= $signed_(N, i_2!`%`_iN{i#10638}.0))] +[visit_exp $signed_(N, i_1!`%`_iN{i#10636}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1!`%`_iN{i#10636}.0] +[visit_exp i_1!`%`_iN{i#10636}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10636] +[visit_id i#10636] +[visit_exp $signed_(N, i_2!`%`_iN{i#10638}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_2!`%`_iN{i#10638}.0] +[visit_exp i_2!`%`_iN{i#10638}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10638] +[visit_id i#10638] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $ile_{N : N, i_1 : iN(N), i_2 : iN(N), i#10648 : nat, i#10636 : nat, i#10638 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10648}($bool(($signed_(N, i_1!`%`_iN{i#10636}.0) <= $signed_(N, i_2!`%`_iN{i#10638}.0)))) +[check_dims] N i#10672 i#10674 i#10684 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_u32{i#10684}($bool((i_1!`%`_iN{i#10672}.0 >= i_2!`%`_iN{i#10674}.0)))] +[visit_exp i#10684] +[visit_id i#10684] +[visit_exp ($bool((i_1!`%`_iN{i#10672}.0 >= i_2!`%`_iN{i#10674}.0)))] +[visit_exp $bool((i_1!`%`_iN{i#10672}.0 >= i_2!`%`_iN{i#10674}.0))] +[visit_exp (i_1!`%`_iN{i#10672}.0 >= i_2!`%`_iN{i#10674}.0)] +[visit_exp i_1!`%`_iN{i#10672}.0] +[visit_exp i_1!`%`_iN{i#10672}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10672] +[visit_id i#10672] +[visit_exp i_2!`%`_iN{i#10674}.0] +[visit_exp i_2!`%`_iN{i#10674}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10674] +[visit_id i#10674] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $ige_{N : N, i_1 : iN(N), i_2 : iN(N), i#10684 : nat, i#10672 : nat, i#10674 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10684}($bool((i_1!`%`_iN{i#10672}.0 >= i_2!`%`_iN{i#10674}.0))) +[check_dims] N i#10708 i#10710 i#10720 i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `%`_u32{i#10720}($bool(($signed_(N, i_1!`%`_iN{i#10708}.0) >= $signed_(N, i_2!`%`_iN{i#10710}.0))))] +[visit_exp i#10720] +[visit_id i#10720] +[visit_exp ($bool(($signed_(N, i_1!`%`_iN{i#10708}.0) >= $signed_(N, i_2!`%`_iN{i#10710}.0))))] +[visit_exp $bool(($signed_(N, i_1!`%`_iN{i#10708}.0) >= $signed_(N, i_2!`%`_iN{i#10710}.0)))] +[visit_exp ($signed_(N, i_1!`%`_iN{i#10708}.0) >= $signed_(N, i_2!`%`_iN{i#10710}.0))] +[visit_exp $signed_(N, i_1!`%`_iN{i#10708}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1!`%`_iN{i#10708}.0] +[visit_exp i_1!`%`_iN{i#10708}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#10708] +[visit_id i#10708] +[visit_exp $signed_(N, i_2!`%`_iN{i#10710}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_2!`%`_iN{i#10710}.0] +[visit_exp i_2!`%`_iN{i#10710}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#10710] +[visit_id i#10710] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $ige_{N : N, i_1 : iN(N), i_2 : iN(N), i#10720 : nat, i#10708 : nat, i#10710 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10720}($bool(($signed_(N, i_1!`%`_iN{i#10708}.0) >= $signed_(N, i_2!`%`_iN{i#10710}.0)))) +[check_dims] N fN +DecD fabs_(N : N, fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fneg_(N : N, fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fsqrt_(N : N, fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fceil_(N : N, fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD ffloor_(N : N, fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD ftrunc_(N : N, fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fnearest_(N : N, fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fadd_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fsub_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fmul_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fdiv_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fmin_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fmax_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fpmin_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fpmax_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD frelaxed_min_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD frelaxed_max_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fcopysign_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD feq_(N : N, fN : fN(N), fN : fN(N)) : u32 +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fne_(N : N, fN : fN(N), fN : fN(N)) : u32 +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD flt_(N : N, fN : fN(N), fN : fN(N)) : u32 +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fgt_(N : N, fN : fN(N), fN : fN(N)) : u32 +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fle_(N : N, fN : fN(N), fN : fN(N)) : u32 +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD fge_(N : N, fN : fN(N), fN : fN(N)) : u32 +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD frelaxed_madd_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N fN +DecD frelaxed_nmadd_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)* +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] M N iN +DecD wrap__(M : M, N : N, iN : iN(M)) : iN(N) +[visit_id M] not free +[visit_id N] not free +[visit_id iN] not free +[visit_exp M] +[visit_id M] not free +[visit_exp N] +[visit_id N] not free +[check_dims] M N iN sx +DecD extend__(M : M, N : N, sx : sx, iN : iN(M)) : iN(N) +[visit_id M] not free +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp M] +[visit_id M] not free +[visit_exp N] +[visit_id N] not free +[check_dims] M N fN sx +DecD trunc__(M : M, N : N, sx : sx, fN : fN(M)) : iN(N)? +[visit_id M] not free +[visit_id N] not free +[visit_id sx] not free +[visit_id fN] not free +[visit_exp M] +[visit_id M] not free +[visit_exp N] +[visit_id N] not free +[check_dims] M N fN sx +DecD trunc_sat__(M : M, N : N, sx : sx, fN : fN(M)) : iN(N)? +[visit_id M] not free +[visit_id N] not free +[visit_id sx] not free +[visit_id fN] not free +[visit_exp M] +[visit_id M] not free +[visit_exp N] +[visit_id N] not free +[check_dims] M N fN sx +DecD relaxed_trunc__(M : M, N : N, sx : sx, fN : fN(M)) : iN(N)? +[visit_id M] not free +[visit_id N] not free +[visit_id sx] not free +[visit_id fN] not free +[visit_exp M] +[visit_id M] not free +[visit_exp N] +[visit_id N] not free +[check_dims] M N fN +DecD demote__(M : M, N : N, fN : fN(M)) : fN(N)* +[visit_id M] not free +[visit_id N] not free +[visit_id fN] not free +[visit_exp M] +[visit_id M] not free +[visit_exp N] +[visit_id N] not free +[check_dims] M N fN +DecD promote__(M : M, N : N, fN : fN(M)) : fN(N)* +[visit_id M] not free +[visit_id N] not free +[visit_id fN] not free +[visit_exp M] +[visit_id M] not free +[visit_exp N] +[visit_id N] not free +[check_dims] M N iN sx +DecD convert__(M : M, N : N, sx : sx, iN : iN(M)) : fN(N) +[visit_id M] not free +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp M] +[visit_id M] not free +[visit_exp N] +[visit_id N] not free +[check_dims] M N iN sx +DecD narrow__(M : M, N : N, sx : sx, iN : iN(M)) : iN(N) +[visit_id M] not free +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp M] +[visit_id M] not free +[visit_exp N] +[visit_id N] not free +[check_dims] num_ numtype_1 numtype_2 +DecD reinterpret__(numtype_1 : numtype, numtype_2 : numtype, num_ : num_(numtype_1)) : num_(numtype_2) +[visit_id numtype_1] not free +[visit_id numtype_2] not free +[visit_id num_] not free +[visit_exp numtype_1] +[visit_id numtype_1] not free +[visit_exp numtype_2] +[visit_id numtype_2] not free +[check_dims] lanetype num_ +DecD lpacknum_(lanetype : lanetype, num_ : num_($lunpack(lanetype))) : lane_(lanetype) +[visit_id lanetype] not free +[visit_id num_] not free +[visit_exp $lunpack(lanetype)] +[visit_exp lanetype] +[visit_id lanetype] not free +[visit_exp lanetype] +[visit_id lanetype] not free +[check_dims] lit_ storagetype +DecD cpacknum_(storagetype : storagetype, lit_ : lit_(($cunpack(storagetype) : consttype <: storagetype))) : lit_(storagetype) +[visit_id storagetype] not free +[visit_id lit_] not free +[visit_exp ($cunpack(storagetype) : consttype <: storagetype)] +[visit_exp $cunpack(storagetype)] +[visit_exp storagetype] +[visit_id storagetype] not free +[visit_exp storagetype] +[visit_id storagetype] not free +[check_dims] c numtype +[visit_exp (numtype : numtype <: lanetype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp c] +[visit_id c] +[visit_exp c] +[visit_id c] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $lpacknum_{numtype : numtype, c : num_($lunpack((numtype : numtype <: lanetype)))}((numtype : numtype <: lanetype), c) = c +[check_dims] c packtype +[visit_exp (packtype : packtype <: lanetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp c] +[visit_id c] +[visit_exp $wrap__($size($lunpack((packtype : packtype <: lanetype))), $psize(packtype), c)] +[visit_exp $size($lunpack((packtype : packtype <: lanetype)))] +[visit_exp $lunpack((packtype : packtype <: lanetype))] +[visit_exp (packtype : packtype <: lanetype)] +[visit_exp packtype] +[visit_id packtype] not free +[visit_exp $psize(packtype)] +[visit_exp packtype] +[visit_id packtype] not free +[visit_exp c] +[visit_id c] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $lpacknum_{packtype : packtype, c : num_($lunpack((packtype : packtype <: lanetype)))}((packtype : packtype <: lanetype), c) = $wrap__($size($lunpack((packtype : packtype <: lanetype))), $psize(packtype), c) +[check_dims] c consttype +[visit_exp (consttype : consttype <: storagetype)] +[visit_exp consttype] +[visit_id consttype] +[visit_exp c] +[visit_id c] +[visit_exp c] +[visit_id c] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $cpacknum_{consttype : consttype, c : lit_(($cunpack((consttype : consttype <: storagetype)) : consttype <: storagetype))}((consttype : consttype <: storagetype), c) = c +[check_dims] c packtype +[visit_exp (packtype : packtype <: storagetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp c] +[visit_id c] +[visit_exp $wrap__($size($lunpack((packtype : packtype <: lanetype))), $psize(packtype), c)] +[visit_exp $size($lunpack((packtype : packtype <: lanetype)))] +[visit_exp $lunpack((packtype : packtype <: lanetype))] +[visit_exp (packtype : packtype <: lanetype)] +[visit_exp packtype] +[visit_id packtype] not free +[visit_exp $psize(packtype)] +[visit_exp packtype] +[visit_id packtype] not free +[visit_exp c] +[visit_id c] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $cpacknum_{packtype : packtype, c : lit_(($cunpack((packtype : packtype <: storagetype)) : consttype <: storagetype))}((packtype : packtype <: storagetype), c) = $wrap__($size($lunpack((packtype : packtype <: lanetype))), $psize(packtype), c) +[check_dims] lane_ lanetype +DecD lunpacknum_(lanetype : lanetype, lane_ : lane_(lanetype)) : num_($lunpack(lanetype)) +[visit_id lanetype] not free +[visit_id lane_] not free +[visit_exp lanetype] +[visit_id lanetype] not free +[visit_exp $lunpack(lanetype)] +[visit_exp lanetype] +[visit_id lanetype] not free +[check_dims] lit_ storagetype +DecD cunpacknum_(storagetype : storagetype, lit_ : lit_(storagetype)) : lit_(($cunpack(storagetype) : consttype <: storagetype)) +[visit_id storagetype] not free +[visit_id lit_] not free +[visit_exp storagetype] +[visit_id storagetype] not free +[visit_exp ($cunpack(storagetype) : consttype <: storagetype)] +[visit_exp $cunpack(storagetype)] +[visit_exp storagetype] +[visit_id storagetype] not free +[check_dims] c numtype +[visit_exp (numtype : numtype <: lanetype)] +[visit_exp numtype] +[visit_id numtype] +[visit_exp c] +[visit_id c] +[visit_exp c] +[visit_id c] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $lunpacknum_{numtype : numtype, c : lane_((numtype : numtype <: lanetype))}((numtype : numtype <: lanetype), c) = c +[check_dims] c packtype +[visit_exp (packtype : packtype <: lanetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp c] +[visit_id c] +[visit_exp $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), `U`_sx, c)] +[visit_exp $psize(packtype)] +[visit_exp packtype] +[visit_id packtype] not free +[visit_exp $size($lunpack((packtype : packtype <: lanetype)))] +[visit_exp $lunpack((packtype : packtype <: lanetype))] +[visit_exp (packtype : packtype <: lanetype)] +[visit_exp packtype] +[visit_id packtype] not free +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp c] +[visit_id c] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $lunpacknum_{packtype : packtype, c : lane_((packtype : packtype <: lanetype))}((packtype : packtype <: lanetype), c) = $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), `U`_sx, c) +[check_dims] c consttype +[visit_exp (consttype : consttype <: storagetype)] +[visit_exp consttype] +[visit_id consttype] +[visit_exp c] +[visit_id c] +[visit_exp c] +[visit_id c] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $cunpacknum_{consttype : consttype, c : lit_((consttype : consttype <: storagetype))}((consttype : consttype <: storagetype), c) = c +[check_dims] c packtype +[visit_exp (packtype : packtype <: storagetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp c] +[visit_id c] +[visit_exp $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), `U`_sx, c)] +[visit_exp $psize(packtype)] +[visit_exp packtype] +[visit_id packtype] not free +[visit_exp $size($lunpack((packtype : packtype <: lanetype)))] +[visit_exp $lunpack((packtype : packtype <: lanetype))] +[visit_exp (packtype : packtype <: lanetype)] +[visit_exp packtype] +[visit_id packtype] not free +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp c] +[visit_id c] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $cunpacknum_{packtype : packtype, c : lit_((packtype : packtype <: storagetype))}((packtype : packtype <: storagetype), c) = $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), `U`_sx, c) +[check_dims] num_ numtype unop_ +DecD unop_(numtype : numtype, unop_ : unop_(numtype), num_ : num_(numtype)) : num_(numtype)* +[visit_id numtype] not free +[visit_id unop_] not free +[visit_exp numtype] +[visit_id numtype] not free +[visit_id num_] not free +[visit_exp numtype] +[visit_id numtype] not free +[visit_exp numtype] +[visit_id numtype] not free +[check_dims] binop_ num_ numtype +DecD binop_(numtype : numtype, binop_ : binop_(numtype), num_ : num_(numtype), num_ : num_(numtype)) : num_(numtype)* +[visit_id numtype] not free +[visit_id binop_] not free +[visit_exp numtype] +[visit_id numtype] not free +[visit_id num_] not free +[visit_exp numtype] +[visit_id numtype] not free +[visit_id num_] not free +[visit_exp numtype] +[visit_id numtype] not free +[visit_exp numtype] +[visit_id numtype] not free +[check_dims] num_ numtype testop_ +DecD testop_(numtype : numtype, testop_ : testop_(numtype), num_ : num_(numtype)) : u32 +[visit_id numtype] not free +[visit_id testop_] not free +[visit_exp numtype] +[visit_id numtype] not free +[visit_id num_] not free +[visit_exp numtype] +[visit_id numtype] not free +[check_dims] num_ numtype relop_ +DecD relop_(numtype : numtype, relop_ : relop_(numtype), num_ : num_(numtype), num_ : num_(numtype)) : u32 +[visit_id numtype] not free +[visit_id relop_] not free +[visit_exp numtype] +[visit_id numtype] not free +[visit_id num_] not free +[visit_exp numtype] +[visit_id numtype] not free +[visit_id num_] not free +[visit_exp numtype] +[visit_id numtype] not free +[check_dims] cvtop__ num_ numtype_1 numtype_2 +DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype_1, numtype_2), num_ : num_(numtype_1)) : num_(numtype_2)* +[visit_id numtype_1] not free +[visit_id numtype_2] not free +[visit_id cvtop__] not free +[visit_exp numtype_1] +[visit_id numtype_1] not free +[visit_exp numtype_2] +[visit_id numtype_2] not free +[visit_id num_] not free +[visit_exp numtype_1] +[visit_id numtype_1] not free +[visit_exp numtype_2] +[visit_id numtype_2] not free +[check_dims] Inn i +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `CLZ`_unop_] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp [$iclz_($sizenn((Inn : Inn <: numtype)), i)]] +[visit_exp $iclz_($sizenn((Inn : Inn <: numtype)), i)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `CLZ`_unop_, i) = [$iclz_($sizenn((Inn : Inn <: numtype)), i)] +[check_dims] Inn i +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `CTZ`_unop_] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp [$ictz_($sizenn((Inn : Inn <: numtype)), i)]] +[visit_exp $ictz_($sizenn((Inn : Inn <: numtype)), i)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `CTZ`_unop_, i) = [$ictz_($sizenn((Inn : Inn <: numtype)), i)] +[check_dims] Inn i +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `POPCNT`_unop_] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp [$ipopcnt_($sizenn((Inn : Inn <: numtype)), i)]] +[visit_exp $ipopcnt_($sizenn((Inn : Inn <: numtype)), i)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `POPCNT`_unop_, i) = [$ipopcnt_($sizenn((Inn : Inn <: numtype)), i)] +[check_dims] Inn M i i#10974 i#10981 sz#154 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `EXTEND`_unop_{sz#154, i#10974}(`%`_sz{i#10981}(M))] +[visit_exp sz#154] +[visit_id sz#154] +[visit_exp i#10974] +[visit_id i#10974] +[visit_exp (`%`_sz{i#10981}(M))] +[visit_exp `%`_sz{i#10981}(M)] +[visit_exp i#10981] +[visit_id i#10981] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp i] +[visit_id i] +[visit_exp [$iextend_($sizenn((Inn : Inn <: numtype)), M, `S`_sx, i)]] +[visit_exp $iextend_($sizenn((Inn : Inn <: numtype)), M, `S`_sx, i)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp M] +[visit_id M] not free +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $unop_{Inn : Inn, sz#154 : sz, i#10974 : nat, i#10981 : nat, M : M, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EXTEND`_unop_{sz#154, i#10974}(`%`_sz{i#10981}(M)), i) = [$iextend_($sizenn((Inn : Inn <: numtype)), M, `S`_sx, i)] +[check_dims] Fnn f +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `ABS`_unop_] +[visit_exp ()] +[visit_exp f] +[visit_id f] +[visit_exp $fabs_($sizenn((Fnn : Fnn <: numtype)), f)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `ABS`_unop_, f) = $fabs_($sizenn((Fnn : Fnn <: numtype)), f) +[check_dims] Fnn f +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `NEG`_unop_] +[visit_exp ()] +[visit_exp f] +[visit_id f] +[visit_exp $fneg_($sizenn((Fnn : Fnn <: numtype)), f)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `NEG`_unop_, f) = $fneg_($sizenn((Fnn : Fnn <: numtype)), f) +[check_dims] Fnn f +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `SQRT`_unop_] +[visit_exp ()] +[visit_exp f] +[visit_id f] +[visit_exp $fsqrt_($sizenn((Fnn : Fnn <: numtype)), f)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `SQRT`_unop_, f) = $fsqrt_($sizenn((Fnn : Fnn <: numtype)), f) +[check_dims] Fnn f +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `CEIL`_unop_] +[visit_exp ()] +[visit_exp f] +[visit_id f] +[visit_exp $fceil_($sizenn((Fnn : Fnn <: numtype)), f)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `CEIL`_unop_, f) = $fceil_($sizenn((Fnn : Fnn <: numtype)), f) +[check_dims] Fnn f +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `FLOOR`_unop_] +[visit_exp ()] +[visit_exp f] +[visit_id f] +[visit_exp $ffloor_($sizenn((Fnn : Fnn <: numtype)), f)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `FLOOR`_unop_, f) = $ffloor_($sizenn((Fnn : Fnn <: numtype)), f) +[check_dims] Fnn f +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `TRUNC`_unop_] +[visit_exp ()] +[visit_exp f] +[visit_id f] +[visit_exp $ftrunc_($sizenn((Fnn : Fnn <: numtype)), f)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `TRUNC`_unop_, f) = $ftrunc_($sizenn((Fnn : Fnn <: numtype)), f) +[check_dims] Fnn f +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `NEAREST`_unop_] +[visit_exp ()] +[visit_exp f] +[visit_id f] +[visit_exp $fnearest_($sizenn((Fnn : Fnn <: numtype)), f)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `NEAREST`_unop_, f) = $fnearest_($sizenn((Fnn : Fnn <: numtype)), f) +[check_dims] Inn i_1 i_2 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `ADD`_binop_] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp [$iadd_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] +[visit_exp $iadd_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `ADD`_binop_, i_1, i_2) = [$iadd_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[check_dims] Inn i_1 i_2 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `SUB`_binop_] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp [$isub_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] +[visit_exp $isub_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `SUB`_binop_, i_1, i_2) = [$isub_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[check_dims] Inn i_1 i_2 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `MUL`_binop_] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp [$imul_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] +[visit_exp $imul_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `MUL`_binop_, i_1, i_2) = [$imul_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[check_dims] Inn i_1 i_2 sx sx#58 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `DIV`_binop_{sx#58}(sx)] +[visit_exp sx#58] +[visit_id sx#58] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp lift($idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2))] +[visit_exp $idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Inn : Inn, sx#58 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `DIV`_binop_{sx#58}(sx), i_1, i_2) = lift($idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) +[check_dims] Inn i_1 i_2 sx sx#60 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `REM`_binop_{sx#60}(sx)] +[visit_exp sx#60] +[visit_id sx#60] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp lift($irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2))] +[visit_exp $irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Inn : Inn, sx#60 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `REM`_binop_{sx#60}(sx), i_1, i_2) = lift($irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) +[check_dims] Inn i_1 i_2 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `AND`_binop_] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp [$iand_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] +[visit_exp $iand_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `AND`_binop_, i_1, i_2) = [$iand_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[check_dims] Inn i_1 i_2 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `OR`_binop_] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp [$ior_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] +[visit_exp $ior_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `OR`_binop_, i_1, i_2) = [$ior_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[check_dims] Inn i_1 i_2 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `XOR`_binop_] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp [$ixor_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] +[visit_exp $ixor_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `XOR`_binop_, i_1, i_2) = [$ixor_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[check_dims] Inn i#11713 i#11714 i_1 i_2 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `SHL`_binop_] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32{i#11714}(i_2!`%`_num_{i#11713}.0))]] +[visit_exp $ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32{i#11714}(i_2!`%`_num_{i#11713}.0))] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp `%`_u32{i#11714}(i_2!`%`_num_{i#11713}.0)] +[visit_exp i#11714] +[visit_id i#11714] +[visit_exp (i_2!`%`_num_{i#11713}.0)] +[visit_exp i_2!`%`_num_{i#11713}.0] +[visit_exp i_2!`%`_num_{i#11713}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#11713] +[visit_id i#11713] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype)), i#11714 : nat, i#11713 : nat}((Inn : Inn <: numtype), `SHL`_binop_, i_1, i_2) = [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32{i#11714}(i_2!`%`_num_{i#11713}.0))] +[check_dims] Inn i#11807 i#11808 i_1 i_2 sx sx#62 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `SHR`_binop_{sx#62}(sx)] +[visit_exp sx#62] +[visit_id sx#62] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32{i#11808}(i_2!`%`_num_{i#11807}.0))]] +[visit_exp $ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32{i#11808}(i_2!`%`_num_{i#11807}.0))] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp `%`_u32{i#11808}(i_2!`%`_num_{i#11807}.0)] +[visit_exp i#11808] +[visit_id i#11808] +[visit_exp (i_2!`%`_num_{i#11807}.0)] +[visit_exp i_2!`%`_num_{i#11807}.0] +[visit_exp i_2!`%`_num_{i#11807}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#11807] +[visit_id i#11807] +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Inn : Inn, sx#62 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype)), i#11808 : nat, i#11807 : nat}((Inn : Inn <: numtype), `SHR`_binop_{sx#62}(sx), i_1, i_2) = [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32{i#11808}(i_2!`%`_num_{i#11807}.0))] +[check_dims] Inn i_1 i_2 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `ROTL`_binop_] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp [$irotl_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] +[visit_exp $irotl_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `ROTL`_binop_, i_1, i_2) = [$irotl_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[check_dims] Inn i_1 i_2 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `ROTR`_binop_] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp [$irotr_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] +[visit_exp $irotr_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `ROTR`_binop_, i_1, i_2) = [$irotr_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[check_dims] Fnn f_1 f_2 +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `ADD`_binop_] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp f_2] +[visit_id f_2] +[visit_exp $fadd_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp f_2] +[visit_id f_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `ADD`_binop_, f_1, f_2) = $fadd_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) +[check_dims] Fnn f_1 f_2 +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `SUB`_binop_] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp f_2] +[visit_id f_2] +[visit_exp $fsub_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp f_2] +[visit_id f_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `SUB`_binop_, f_1, f_2) = $fsub_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) +[check_dims] Fnn f_1 f_2 +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `MUL`_binop_] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp f_2] +[visit_id f_2] +[visit_exp $fmul_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp f_2] +[visit_id f_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `MUL`_binop_, f_1, f_2) = $fmul_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) +[check_dims] Fnn f_1 f_2 +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `DIV`_binop_] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp f_2] +[visit_id f_2] +[visit_exp $fdiv_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp f_2] +[visit_id f_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `DIV`_binop_, f_1, f_2) = $fdiv_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) +[check_dims] Fnn f_1 f_2 +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `MIN`_binop_] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp f_2] +[visit_id f_2] +[visit_exp $fmin_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp f_2] +[visit_id f_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `MIN`_binop_, f_1, f_2) = $fmin_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) +[check_dims] Fnn f_1 f_2 +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `MAX`_binop_] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp f_2] +[visit_id f_2] +[visit_exp $fmax_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp f_2] +[visit_id f_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `MAX`_binop_, f_1, f_2) = $fmax_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) +[check_dims] Fnn f_1 f_2 +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `COPYSIGN`_binop_] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp f_2] +[visit_id f_2] +[visit_exp $fcopysign_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp f_2] +[visit_id f_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `COPYSIGN`_binop_, f_1, f_2) = $fcopysign_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) +[check_dims] Inn i +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `EQZ`_testop_] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp $ieqz_($sizenn((Inn : Inn <: numtype)), i)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $testop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EQZ`_testop_, i) = $ieqz_($sizenn((Inn : Inn <: numtype)), i) +[check_dims] Inn i_1 i_2 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `EQ`_relop_] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp $ieq_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EQ`_relop_, i_1, i_2) = $ieq_($sizenn((Inn : Inn <: numtype)), i_1, i_2) +[check_dims] Inn i_1 i_2 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `NE`_relop_] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp $ine_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `NE`_relop_, i_1, i_2) = $ine_($sizenn((Inn : Inn <: numtype)), i_1, i_2) +[check_dims] Inn i_1 i_2 sx sx#64 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `LT`_relop_{sx#64}(sx)] +[visit_exp sx#64] +[visit_id sx#64] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp $ilt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $relop_{Inn : Inn, sx#64 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LT`_relop_{sx#64}(sx), i_1, i_2) = $ilt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) +[check_dims] Inn i_1 i_2 sx sx#66 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `GT`_relop_{sx#66}(sx)] +[visit_exp sx#66] +[visit_id sx#66] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp $igt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $relop_{Inn : Inn, sx#66 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GT`_relop_{sx#66}(sx), i_1, i_2) = $igt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) +[check_dims] Inn i_1 i_2 sx sx#68 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `LE`_relop_{sx#68}(sx)] +[visit_exp sx#68] +[visit_id sx#68] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp $ile_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $relop_{Inn : Inn, sx#68 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LE`_relop_{sx#68}(sx), i_1, i_2) = $ile_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) +[check_dims] Inn i_1 i_2 sx sx#70 +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `GE`_relop_{sx#70}(sx)] +[visit_exp sx#70] +[visit_id sx#70] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp i_1] +[visit_id i_1] +[visit_exp i_2] +[visit_id i_2] +[visit_exp $ige_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)] +[visit_exp $sizenn((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $relop_{Inn : Inn, sx#70 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GE`_relop_{sx#70}(sx), i_1, i_2) = $ige_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) +[check_dims] Fnn f_1 f_2 +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `EQ`_relop_] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp f_2] +[visit_id f_2] +[visit_exp $feq_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp f_2] +[visit_id f_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `EQ`_relop_, f_1, f_2) = $feq_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) +[check_dims] Fnn f_1 f_2 +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `NE`_relop_] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp f_2] +[visit_id f_2] +[visit_exp $fne_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp f_2] +[visit_id f_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `NE`_relop_, f_1, f_2) = $fne_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) +[check_dims] Fnn f_1 f_2 +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `LT`_relop_] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp f_2] +[visit_id f_2] +[visit_exp $flt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp f_2] +[visit_id f_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `LT`_relop_, f_1, f_2) = $flt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) +[check_dims] Fnn f_1 f_2 +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `GT`_relop_] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp f_2] +[visit_id f_2] +[visit_exp $fgt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp f_2] +[visit_id f_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `GT`_relop_, f_1, f_2) = $fgt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) +[check_dims] Fnn f_1 f_2 +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `LE`_relop_] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp f_2] +[visit_id f_2] +[visit_exp $fle_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp f_2] +[visit_id f_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `LE`_relop_, f_1, f_2) = $fle_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) +[check_dims] Fnn f_1 f_2 +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `GE`_relop_] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp f_2] +[visit_id f_2] +[visit_exp $fge_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp f_2] +[visit_id f_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `GE`_relop_, f_1, f_2) = $fge_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) +[check_dims] Inn_1 Inn_2 i_1 sx sx#72 +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] +[visit_exp `EXTEND`_cvtop__{sx#72}(sx)] +[visit_exp sx#72] +[visit_id sx#72] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp i_1] +[visit_id i_1] +[visit_exp [$extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)]] +[visit_exp $extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)] +[visit_exp $sizenn1((Inn_1 : Inn <: numtype))] +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] not free +[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp i_1] +[visit_id i_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, sx#72 : sx, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `EXTEND`_cvtop__{sx#72}(sx), i_1) = [$extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)] +[check_dims] Inn_1 Inn_2 i_1 +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] +[visit_exp `WRAP`_cvtop__] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp [$wrap__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), i_1)]] +[visit_exp $wrap__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), i_1)] +[visit_exp $sizenn1((Inn_1 : Inn <: numtype))] +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] not free +[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] not free +[visit_exp i_1] +[visit_id i_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `WRAP`_cvtop__, i_1) = [$wrap__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), i_1)] +[check_dims] Fnn_1 Inn_2 f_1 sx sx#74 +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] +[visit_exp `TRUNC`_cvtop__{sx#74}(sx)] +[visit_exp sx#74] +[visit_id sx#74] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp f_1] +[visit_id f_1] +[visit_exp lift($trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1))] +[visit_exp $trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)] +[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp f_1] +[visit_id f_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx#74 : sx, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC`_cvtop__{sx#74}(sx), f_1) = lift($trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) +[check_dims] Fnn_1 Inn_2 f_1 sx sx#76 +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] +[visit_exp `TRUNC_SAT`_cvtop__{sx#76}(sx)] +[visit_exp sx#76] +[visit_id sx#76] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp f_1] +[visit_id f_1] +[visit_exp lift($trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1))] +[visit_exp $trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)] +[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp f_1] +[visit_id f_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx#76 : sx, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC_SAT`_cvtop__{sx#76}(sx), f_1) = lift($trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) +[check_dims] Fnn_2 Inn_1 i_1 sx sx#78 +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `CONVERT`_cvtop__{sx#78}(sx)] +[visit_exp sx#78] +[visit_id sx#78] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp i_1] +[visit_id i_1] +[visit_exp [$convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)]] +[visit_exp $convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)] +[visit_exp $sizenn1((Inn_1 : Inn <: numtype))] +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] not free +[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp i_1] +[visit_id i_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, sx#78 : sx, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), `CONVERT`_cvtop__{sx#78}(sx), i_1) = [$convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)] +[check_dims] Fnn_1 Fnn_2 f_1 +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `PROMOTE`_cvtop__] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp $promote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1)] +[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_exp f_1] +[visit_id f_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype), `PROMOTE`_cvtop__, f_1) = $promote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1) +[check_dims] Fnn_1 Fnn_2 f_1 +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `DEMOTE`_cvtop__] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp $demote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1)] +[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_exp f_1] +[visit_id f_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype), `DEMOTE`_cvtop__, f_1) = $demote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1) +[check_dims] Fnn_2 Inn_1 i_1 +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `REINTERPRET`_cvtop__] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp [$reinterpret__((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), i_1)]] +[visit_exp $reinterpret__((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), i_1)] +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] not free +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp ($size((Inn_1 : Inn <: numtype)) = $size((Fnn_2 : Fnn <: numtype)))] +[visit_exp $size((Inn_1 : Inn <: numtype))] +[visit_exp (Inn_1 : Inn <: numtype)] +[visit_exp Inn_1] +[visit_id Inn_1] not free +[visit_exp $size((Fnn_2 : Fnn <: numtype))] +[visit_exp (Fnn_2 : Fnn <: numtype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), `REINTERPRET`_cvtop__, i_1) = [$reinterpret__((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), i_1)] + -- if ($size((Inn_1 : Inn <: numtype)) = $size((Fnn_2 : Fnn <: numtype))) +[check_dims] Fnn_1 Inn_2 f_1 +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] +[visit_exp `REINTERPRET`_cvtop__] +[visit_exp ()] +[visit_exp f_1] +[visit_id f_1] +[visit_exp [$reinterpret__((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), f_1)]] +[visit_exp $reinterpret__((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), f_1)] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] not free +[visit_exp f_1] +[visit_id f_1] not free +[visit_exp ($size((Fnn_1 : Fnn <: numtype)) = $size((Inn_2 : Inn <: numtype)))] +[visit_exp $size((Fnn_1 : Fnn <: numtype))] +[visit_exp (Fnn_1 : Fnn <: numtype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_exp $size((Inn_2 : Inn <: numtype))] +[visit_exp (Inn_2 : Inn <: numtype)] +[visit_exp Inn_2] +[visit_id Inn_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec + def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `REINTERPRET`_cvtop__, f_1) = [$reinterpret__((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), f_1)] + -- if ($size((Fnn_1 : Fnn <: numtype)) = $size((Inn_2 : Inn <: numtype))) +[check_dims] shape vec_ +DecD lanes_(shape : shape, vec_ : vec_(`V128`_Vnn)) : lane_($lanetype(shape))* +[visit_id shape] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp $lanetype(shape)] +[visit_exp shape] +[visit_id shape] not free +[check_dims] _ shape +DecD inv_lanes_(shape : shape, lane_($lanetype(shape))*) : vec_(`V128`_Vnn) +[visit_id shape] not free +[visit_id _] not free +[visit_exp $lanetype(shape)] +[visit_exp shape] +[visit_id shape] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] shape_1 shape_2 vcvtop__ +DecD zeroop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2)) : zero? +[visit_id shape_1] not free +[visit_id shape_2] not free +[visit_id vcvtop__] not free +[visit_exp shape_1] +[visit_id shape_1] not free +[visit_exp shape_2] +[visit_id shape_2] not free +[check_dims] Jnn_1 Jnn_2 M_1 M_2 dim#801 dim#813 half half#1 i#12568 i#12575 i#12580 i#12587 lanetype#801 lanetype#813 sx sx#80 +[visit_exp `%X%`_shape{lanetype#801, dim#801, i#12568}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12575}(M_1))] +[visit_exp lanetype#801] +[visit_id lanetype#801] +[visit_exp dim#801] +[visit_id dim#801] +[visit_exp i#12568] +[visit_id i#12568] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12575}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#12575}(M_1)] +[visit_exp i#12575] +[visit_id i#12575] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#813, dim#813, i#12580}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12587}(M_2))] +[visit_exp lanetype#813] +[visit_id lanetype#813] +[visit_exp dim#813] +[visit_id dim#813] +[visit_exp i#12580] +[visit_id i#12580] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12587}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#12587}(M_2)] +[visit_exp i#12587] +[visit_id i#12587] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `EXTEND`_vcvtop__{half#1, sx#80}(half, sx)] +[visit_exp half#1] +[visit_id half#1] +[visit_exp sx#80] +[visit_id sx#80] +[visit_exp (half, sx)] +[visit_exp half] +[visit_id half] +[visit_exp sx] +[visit_id sx] +[visit_exp ?()] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $zeroop{lanetype#801 : lanetype, dim#801 : dim, i#12568 : nat, Jnn_1 : Jnn, i#12575 : nat, M_1 : M, lanetype#813 : lanetype, dim#813 : dim, i#12580 : nat, Jnn_2 : Jnn, i#12587 : nat, M_2 : M, half#1 : half, sx#80 : sx, half : half, sx : sx}(`%X%`_shape{lanetype#801, dim#801, i#12568}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12575}(M_1)), `%X%`_shape{lanetype#813, dim#813, i#12580}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12587}(M_2)), `EXTEND`_vcvtop__{half#1, sx#80}(half, sx)) = ?() +[check_dims] Fnn_2 Jnn_1 M_1 M_2 dim#825 dim#837 half half?#1 i#12592 i#12599 i#12604 i#12611 lanetype#825 lanetype#837 sx sx#82 +[visit_exp `%X%`_shape{lanetype#825, dim#825, i#12592}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12599}(M_1))] +[visit_exp lanetype#825] +[visit_id lanetype#825] +[visit_exp dim#825] +[visit_id dim#825] +[visit_exp i#12592] +[visit_id i#12592] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12599}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#12599}(M_1)] +[visit_exp i#12599] +[visit_id i#12599] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#837, dim#837, i#12604}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12611}(M_2))] +[visit_exp lanetype#837] +[visit_id lanetype#837] +[visit_exp dim#837] +[visit_id dim#837] +[visit_exp i#12604] +[visit_id i#12604] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12611}(M_2))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `%`_dim{i#12611}(M_2)] +[visit_exp i#12611] +[visit_id i#12611] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `CONVERT`_vcvtop__{`half?#1`, sx#82}(half?{half <- `half?`}, sx)] +[visit_exp `half?#1`] +[visit_id half?#1] +[visit_exp sx#82] +[visit_id sx#82] +[visit_exp (half?{half <- `half?`}, sx)] +[visit_exp half?{half <- `half?`}] +[scope_enter half] +[visit_exp half] +[visit_id half] not free +[visit_id half] not free +[scope_exit half] +[visit_exp `half?`] +[visit_id half?] no dims +[visit_id half?] +[visit_exp sx] +[visit_id sx] +[visit_exp ?()] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $zeroop{lanetype#825 : lanetype, dim#825 : dim, i#12592 : nat, Jnn_1 : Jnn, i#12599 : nat, M_1 : M, lanetype#837 : lanetype, dim#837 : dim, i#12604 : nat, Fnn_2 : Fnn, i#12611 : nat, M_2 : M, `half?#1` : half?, sx#82 : sx, `half?` : half?, sx : sx}(`%X%`_shape{lanetype#825, dim#825, i#12592}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12599}(M_1)), `%X%`_shape{lanetype#837, dim#837, i#12604}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12611}(M_2)), `CONVERT`_vcvtop__{`half?#1`, sx#82}(half?{half <- `half?`}, sx)) = ?() +[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#864 dim#876 i#12631 i#12638 i#12643 i#12650 lanetype#864 lanetype#876 sx sx#84 zero zero?#1 +[visit_exp `%X%`_shape{lanetype#864, dim#864, i#12631}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12638}(M_1))] +[visit_exp lanetype#864] +[visit_id lanetype#864] +[visit_exp dim#864] +[visit_id dim#864] +[visit_exp i#12631] +[visit_id i#12631] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12638}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#12638}(M_1)] +[visit_exp i#12638] +[visit_id i#12638] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#876, dim#876, i#12643}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12650}(M_2))] +[visit_exp lanetype#876] +[visit_id lanetype#876] +[visit_exp dim#876] +[visit_id dim#876] +[visit_exp i#12643] +[visit_id i#12643] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12650}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#12650}(M_2)] +[visit_exp i#12650] +[visit_id i#12650] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `TRUNC_SAT`_vcvtop__{sx#84, `zero?#1`}(sx, zero?{zero <- `zero?`})] +[visit_exp sx#84] +[visit_id sx#84] +[visit_exp `zero?#1`] +[visit_id zero?#1] +[visit_exp (sx, zero?{zero <- `zero?`})] +[visit_exp sx] +[visit_id sx] +[visit_exp zero?{zero <- `zero?`}] +[scope_enter zero] +[visit_exp zero] +[visit_id zero] not free +[visit_id zero] not free +[scope_exit zero] +[visit_exp `zero?`] +[visit_id zero?] no dims +[visit_id zero?] +[visit_exp zero?{zero <- `zero?`}] +[scope_enter zero] +[visit_exp zero] +[visit_id zero] not free +[visit_id zero] not free +[scope_exit zero] +[visit_exp `zero?`] +[visit_id zero?] not free +[visit_id zero?] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $zeroop{lanetype#864 : lanetype, dim#864 : dim, i#12631 : nat, Fnn_1 : Fnn, i#12638 : nat, M_1 : M, lanetype#876 : lanetype, dim#876 : dim, i#12643 : nat, Jnn_2 : Jnn, i#12650 : nat, M_2 : M, sx#84 : sx, `zero?#1` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#864, dim#864, i#12631}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12638}(M_1)), `%X%`_shape{lanetype#876, dim#876, i#12643}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12650}(M_2)), `TRUNC_SAT`_vcvtop__{sx#84, `zero?#1`}(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} +[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#918 dim#930 i#12685 i#12692 i#12697 i#12704 lanetype#918 lanetype#930 sx sx#86 zero zero?#3 +[visit_exp `%X%`_shape{lanetype#918, dim#918, i#12685}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12692}(M_1))] +[visit_exp lanetype#918] +[visit_id lanetype#918] +[visit_exp dim#918] +[visit_id dim#918] +[visit_exp i#12685] +[visit_id i#12685] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12692}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#12692}(M_1)] +[visit_exp i#12692] +[visit_id i#12692] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#930, dim#930, i#12697}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12704}(M_2))] +[visit_exp lanetype#930] +[visit_id lanetype#930] +[visit_exp dim#930] +[visit_id dim#930] +[visit_exp i#12697] +[visit_id i#12697] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12704}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#12704}(M_2)] +[visit_exp i#12704] +[visit_id i#12704] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#86, `zero?#3`}(sx, zero?{zero <- `zero?`})] +[visit_exp sx#86] +[visit_id sx#86] +[visit_exp `zero?#3`] +[visit_id zero?#3] +[visit_exp (sx, zero?{zero <- `zero?`})] +[visit_exp sx] +[visit_id sx] +[visit_exp zero?{zero <- `zero?`}] +[scope_enter zero] +[visit_exp zero] +[visit_id zero] not free +[visit_id zero] not free +[scope_exit zero] +[visit_exp `zero?`] +[visit_id zero?] no dims +[visit_id zero?] +[visit_exp zero?{zero <- `zero?`}] +[scope_enter zero] +[visit_exp zero] +[visit_id zero] not free +[visit_id zero] not free +[scope_exit zero] +[visit_exp `zero?`] +[visit_id zero?] not free +[visit_id zero?] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $zeroop{lanetype#918 : lanetype, dim#918 : dim, i#12685 : nat, Fnn_1 : Fnn, i#12692 : nat, M_1 : M, lanetype#930 : lanetype, dim#930 : dim, i#12697 : nat, Jnn_2 : Jnn, i#12704 : nat, M_2 : M, sx#86 : sx, `zero?#3` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#918, dim#918, i#12685}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12692}(M_1)), `%X%`_shape{lanetype#930, dim#930, i#12697}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12704}(M_2)), `RELAXED_TRUNC`_vcvtop__{sx#86, `zero?#3`}(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} +[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#972 dim#984 i#12739 i#12746 i#12751 i#12758 lanetype#972 lanetype#984 zero zero#1 +[visit_exp `%X%`_shape{lanetype#972, dim#972, i#12739}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12746}(M_1))] +[visit_exp lanetype#972] +[visit_id lanetype#972] +[visit_exp dim#972] +[visit_id dim#972] +[visit_exp i#12739] +[visit_id i#12739] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12746}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#12746}(M_1)] +[visit_exp i#12746] +[visit_id i#12746] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#984, dim#984, i#12751}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12758}(M_2))] +[visit_exp lanetype#984] +[visit_id lanetype#984] +[visit_exp dim#984] +[visit_id dim#984] +[visit_exp i#12751] +[visit_id i#12751] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12758}(M_2))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `%`_dim{i#12758}(M_2)] +[visit_exp i#12758] +[visit_id i#12758] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `DEMOTE`_vcvtop__{zero#1}(zero)] +[visit_exp zero#1] +[visit_id zero#1] +[visit_exp (zero)] +[visit_exp zero] +[visit_id zero] +[visit_exp ?(zero)] +[visit_exp zero] +[visit_id zero] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $zeroop{lanetype#972 : lanetype, dim#972 : dim, i#12739 : nat, Fnn_1 : Fnn, i#12746 : nat, M_1 : M, lanetype#984 : lanetype, dim#984 : dim, i#12751 : nat, Fnn_2 : Fnn, i#12758 : nat, M_2 : M, zero#1 : zero, zero : zero}(`%X%`_shape{lanetype#972, dim#972, i#12739}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12746}(M_1)), `%X%`_shape{lanetype#984, dim#984, i#12751}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12758}(M_2)), `DEMOTE`_vcvtop__{zero#1}(zero)) = ?(zero) +[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#1041 dim#1053 i#12808 i#12815 i#12820 i#12827 lanetype#1041 lanetype#1053 +[visit_exp `%X%`_shape{lanetype#1041, dim#1041, i#12808}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12815}(M_1))] +[visit_exp lanetype#1041] +[visit_id lanetype#1041] +[visit_exp dim#1041] +[visit_id dim#1041] +[visit_exp i#12808] +[visit_id i#12808] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12815}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#12815}(M_1)] +[visit_exp i#12815] +[visit_id i#12815] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#1053, dim#1053, i#12820}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12827}(M_2))] +[visit_exp lanetype#1053] +[visit_id lanetype#1053] +[visit_exp dim#1053] +[visit_id dim#1053] +[visit_exp i#12820] +[visit_id i#12820] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12827}(M_2))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `%`_dim{i#12827}(M_2)] +[visit_exp i#12827] +[visit_id i#12827] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `PROMOTELOW`_vcvtop__] +[visit_exp ()] +[visit_exp ?()] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $zeroop{lanetype#1041 : lanetype, dim#1041 : dim, i#12808 : nat, Fnn_1 : Fnn, i#12815 : nat, M_1 : M, lanetype#1053 : lanetype, dim#1053 : dim, i#12820 : nat, Fnn_2 : Fnn, i#12827 : nat, M_2 : M}(`%X%`_shape{lanetype#1041, dim#1041, i#12808}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12815}(M_1)), `%X%`_shape{lanetype#1053, dim#1053, i#12820}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12827}(M_2)), `PROMOTELOW`_vcvtop__) = ?() +[check_dims] shape_1 shape_2 vcvtop__ +DecD halfop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2)) : half? +[visit_id shape_1] not free +[visit_id shape_2] not free +[visit_id vcvtop__] not free +[visit_exp shape_1] +[visit_id shape_1] not free +[visit_exp shape_2] +[visit_id shape_2] not free +[check_dims] Jnn_1 Jnn_2 M_1 M_2 dim#1122 dim#1134 half half#3 i#12881 i#12888 i#12893 i#12900 lanetype#1122 lanetype#1134 sx sx#88 +[visit_exp `%X%`_shape{lanetype#1122, dim#1122, i#12881}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12888}(M_1))] +[visit_exp lanetype#1122] +[visit_id lanetype#1122] +[visit_exp dim#1122] +[visit_id dim#1122] +[visit_exp i#12881] +[visit_id i#12881] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12888}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#12888}(M_1)] +[visit_exp i#12888] +[visit_id i#12888] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#1134, dim#1134, i#12893}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12900}(M_2))] +[visit_exp lanetype#1134] +[visit_id lanetype#1134] +[visit_exp dim#1134] +[visit_id dim#1134] +[visit_exp i#12893] +[visit_id i#12893] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12900}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#12900}(M_2)] +[visit_exp i#12900] +[visit_id i#12900] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `EXTEND`_vcvtop__{half#3, sx#88}(half, sx)] +[visit_exp half#3] +[visit_id half#3] +[visit_exp sx#88] +[visit_id sx#88] +[visit_exp (half, sx)] +[visit_exp half] +[visit_id half] +[visit_exp sx] +[visit_id sx] +[visit_exp ?(half)] +[visit_exp half] +[visit_id half] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $halfop{lanetype#1122 : lanetype, dim#1122 : dim, i#12881 : nat, Jnn_1 : Jnn, i#12888 : nat, M_1 : M, lanetype#1134 : lanetype, dim#1134 : dim, i#12893 : nat, Jnn_2 : Jnn, i#12900 : nat, M_2 : M, half#3 : half, sx#88 : sx, half : half, sx : sx}(`%X%`_shape{lanetype#1122, dim#1122, i#12881}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12888}(M_1)), `%X%`_shape{lanetype#1134, dim#1134, i#12893}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12900}(M_2)), `EXTEND`_vcvtop__{half#3, sx#88}(half, sx)) = ?(half) +[check_dims] Fnn_2 Jnn_1 M_1 M_2 dim#1146 dim#1158 half half?#3 i#12905 i#12912 i#12917 i#12924 lanetype#1146 lanetype#1158 sx sx#90 +[visit_exp `%X%`_shape{lanetype#1146, dim#1146, i#12905}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12912}(M_1))] +[visit_exp lanetype#1146] +[visit_id lanetype#1146] +[visit_exp dim#1146] +[visit_id dim#1146] +[visit_exp i#12905] +[visit_id i#12905] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12912}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#12912}(M_1)] +[visit_exp i#12912] +[visit_id i#12912] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#1158, dim#1158, i#12917}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12924}(M_2))] +[visit_exp lanetype#1158] +[visit_id lanetype#1158] +[visit_exp dim#1158] +[visit_id dim#1158] +[visit_exp i#12917] +[visit_id i#12917] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12924}(M_2))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `%`_dim{i#12924}(M_2)] +[visit_exp i#12924] +[visit_id i#12924] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `CONVERT`_vcvtop__{`half?#3`, sx#90}(half?{half <- `half?`}, sx)] +[visit_exp `half?#3`] +[visit_id half?#3] +[visit_exp sx#90] +[visit_id sx#90] +[visit_exp (half?{half <- `half?`}, sx)] +[visit_exp half?{half <- `half?`}] +[scope_enter half] +[visit_exp half] +[visit_id half] not free +[visit_id half] not free +[scope_exit half] +[visit_exp `half?`] +[visit_id half?] no dims +[visit_id half?] +[visit_exp sx] +[visit_id sx] +[visit_exp half?{half <- `half?`}] +[scope_enter half] +[visit_exp half] +[visit_id half] not free +[visit_id half] not free +[scope_exit half] +[visit_exp `half?`] +[visit_id half?] not free +[visit_id half?] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $halfop{lanetype#1146 : lanetype, dim#1146 : dim, i#12905 : nat, Jnn_1 : Jnn, i#12912 : nat, M_1 : M, lanetype#1158 : lanetype, dim#1158 : dim, i#12917 : nat, Fnn_2 : Fnn, i#12924 : nat, M_2 : M, `half?#3` : half?, sx#90 : sx, `half?` : half?, sx : sx}(`%X%`_shape{lanetype#1146, dim#1146, i#12905}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12912}(M_1)), `%X%`_shape{lanetype#1158, dim#1158, i#12917}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12924}(M_2)), `CONVERT`_vcvtop__{`half?#3`, sx#90}(half?{half <- `half?`}, sx)) = half?{half <- `half?`} +[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#1185 dim#1197 i#12944 i#12951 i#12956 i#12963 lanetype#1185 lanetype#1197 sx sx#92 zero zero?#5 +[visit_exp `%X%`_shape{lanetype#1185, dim#1185, i#12944}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12951}(M_1))] +[visit_exp lanetype#1185] +[visit_id lanetype#1185] +[visit_exp dim#1185] +[visit_id dim#1185] +[visit_exp i#12944] +[visit_id i#12944] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12951}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#12951}(M_1)] +[visit_exp i#12951] +[visit_id i#12951] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#1197, dim#1197, i#12956}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12963}(M_2))] +[visit_exp lanetype#1197] +[visit_id lanetype#1197] +[visit_exp dim#1197] +[visit_id dim#1197] +[visit_exp i#12956] +[visit_id i#12956] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12963}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#12963}(M_2)] +[visit_exp i#12963] +[visit_id i#12963] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `TRUNC_SAT`_vcvtop__{sx#92, `zero?#5`}(sx, zero?{zero <- `zero?`})] +[visit_exp sx#92] +[visit_id sx#92] +[visit_exp `zero?#5`] +[visit_id zero?#5] +[visit_exp (sx, zero?{zero <- `zero?`})] +[visit_exp sx] +[visit_id sx] +[visit_exp zero?{zero <- `zero?`}] +[scope_enter zero] +[visit_exp zero] +[visit_id zero] not free +[visit_id zero] not free +[scope_exit zero] +[visit_exp `zero?`] +[visit_id zero?] no dims +[visit_id zero?] +[visit_exp ?()] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $halfop{lanetype#1185 : lanetype, dim#1185 : dim, i#12944 : nat, Fnn_1 : Fnn, i#12951 : nat, M_1 : M, lanetype#1197 : lanetype, dim#1197 : dim, i#12956 : nat, Jnn_2 : Jnn, i#12963 : nat, M_2 : M, sx#92 : sx, `zero?#5` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#1185, dim#1185, i#12944}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12951}(M_1)), `%X%`_shape{lanetype#1197, dim#1197, i#12956}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12963}(M_2)), `TRUNC_SAT`_vcvtop__{sx#92, `zero?#5`}(sx, zero?{zero <- `zero?`})) = ?() +[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#1239 dim#1251 i#12998 i#13005 i#13010 i#13017 lanetype#1239 lanetype#1251 sx sx#94 zero zero?#7 +[visit_exp `%X%`_shape{lanetype#1239, dim#1239, i#12998}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13005}(M_1))] +[visit_exp lanetype#1239] +[visit_id lanetype#1239] +[visit_exp dim#1239] +[visit_id dim#1239] +[visit_exp i#12998] +[visit_id i#12998] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13005}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#13005}(M_1)] +[visit_exp i#13005] +[visit_id i#13005] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#1251, dim#1251, i#13010}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#13017}(M_2))] +[visit_exp lanetype#1251] +[visit_id lanetype#1251] +[visit_exp dim#1251] +[visit_id dim#1251] +[visit_exp i#13010] +[visit_id i#13010] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#13017}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#13017}(M_2)] +[visit_exp i#13017] +[visit_id i#13017] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#94, `zero?#7`}(sx, zero?{zero <- `zero?`})] +[visit_exp sx#94] +[visit_id sx#94] +[visit_exp `zero?#7`] +[visit_id zero?#7] +[visit_exp (sx, zero?{zero <- `zero?`})] +[visit_exp sx] +[visit_id sx] +[visit_exp zero?{zero <- `zero?`}] +[scope_enter zero] +[visit_exp zero] +[visit_id zero] not free +[visit_id zero] not free +[scope_exit zero] +[visit_exp `zero?`] +[visit_id zero?] no dims +[visit_id zero?] +[visit_exp ?()] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $halfop{lanetype#1239 : lanetype, dim#1239 : dim, i#12998 : nat, Fnn_1 : Fnn, i#13005 : nat, M_1 : M, lanetype#1251 : lanetype, dim#1251 : dim, i#13010 : nat, Jnn_2 : Jnn, i#13017 : nat, M_2 : M, sx#94 : sx, `zero?#7` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#1239, dim#1239, i#12998}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13005}(M_1)), `%X%`_shape{lanetype#1251, dim#1251, i#13010}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#13017}(M_2)), `RELAXED_TRUNC`_vcvtop__{sx#94, `zero?#7`}(sx, zero?{zero <- `zero?`})) = ?() +[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#1293 dim#1305 i#13052 i#13059 i#13064 i#13071 lanetype#1293 lanetype#1305 zero zero#3 +[visit_exp `%X%`_shape{lanetype#1293, dim#1293, i#13052}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13059}(M_1))] +[visit_exp lanetype#1293] +[visit_id lanetype#1293] +[visit_exp dim#1293] +[visit_id dim#1293] +[visit_exp i#13052] +[visit_id i#13052] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13059}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#13059}(M_1)] +[visit_exp i#13059] +[visit_id i#13059] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#1305, dim#1305, i#13064}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13071}(M_2))] +[visit_exp lanetype#1305] +[visit_id lanetype#1305] +[visit_exp dim#1305] +[visit_id dim#1305] +[visit_exp i#13064] +[visit_id i#13064] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13071}(M_2))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `%`_dim{i#13071}(M_2)] +[visit_exp i#13071] +[visit_id i#13071] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `DEMOTE`_vcvtop__{zero#3}(zero)] +[visit_exp zero#3] +[visit_id zero#3] +[visit_exp (zero)] +[visit_exp zero] +[visit_id zero] +[visit_exp ?()] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $halfop{lanetype#1293 : lanetype, dim#1293 : dim, i#13052 : nat, Fnn_1 : Fnn, i#13059 : nat, M_1 : M, lanetype#1305 : lanetype, dim#1305 : dim, i#13064 : nat, Fnn_2 : Fnn, i#13071 : nat, M_2 : M, zero#3 : zero, zero : zero}(`%X%`_shape{lanetype#1293, dim#1293, i#13052}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13059}(M_1)), `%X%`_shape{lanetype#1305, dim#1305, i#13064}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13071}(M_2)), `DEMOTE`_vcvtop__{zero#3}(zero)) = ?() +[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#1362 dim#1374 i#13121 i#13128 i#13133 i#13140 lanetype#1362 lanetype#1374 +[visit_exp `%X%`_shape{lanetype#1362, dim#1362, i#13121}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13128}(M_1))] +[visit_exp lanetype#1362] +[visit_id lanetype#1362] +[visit_exp dim#1362] +[visit_id dim#1362] +[visit_exp i#13121] +[visit_id i#13121] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13128}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#13128}(M_1)] +[visit_exp i#13128] +[visit_id i#13128] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#1374, dim#1374, i#13133}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13140}(M_2))] +[visit_exp lanetype#1374] +[visit_id lanetype#1374] +[visit_exp dim#1374] +[visit_id dim#1374] +[visit_exp i#13133] +[visit_id i#13133] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13140}(M_2))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `%`_dim{i#13140}(M_2)] +[visit_exp i#13140] +[visit_id i#13140] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `PROMOTELOW`_vcvtop__] +[visit_exp ()] +[visit_exp ?(`LOW`_half)] +[visit_exp `LOW`_half] +[visit_exp ()] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $halfop{lanetype#1362 : lanetype, dim#1362 : dim, i#13121 : nat, Fnn_1 : Fnn, i#13128 : nat, M_1 : M, lanetype#1374 : lanetype, dim#1374 : dim, i#13133 : nat, Fnn_2 : Fnn, i#13140 : nat, M_2 : M}(`%X%`_shape{lanetype#1362, dim#1362, i#13121}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13128}(M_1)), `%X%`_shape{lanetype#1374, dim#1374, i#13133}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13140}(M_2)), `PROMOTELOW`_vcvtop__) = ?(`LOW`_half) +[check_dims] half nat +DecD half(half : half, nat : nat, nat : nat) : nat +[visit_id half] not free +[visit_id nat] not free +[visit_id nat] not free +[check_dims] i j +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp j] +[visit_id j] +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $half{i : nat, j : nat}(`LOW`_half, i, j) = i +[check_dims] i j +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp j] +[visit_id j] +[visit_exp j] +[visit_id j] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $half{i : nat, j : nat}(`HIGH`_half, i, j) = j +[check_dims] N _ iN +DecD iswizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N _ iN +DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N c i i#13205 i#13213 +[visit_exp N] +[visit_id N] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp i] +[visit_id i] +[visit_exp c*{c <- `c*`}[i!`%`_iN{i#13213}.0]] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp i!`%`_iN{i#13213}.0] +[visit_exp i!`%`_iN{i#13213}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#13213] +[visit_id i#13213] +[visit_exp (i!`%`_iN{i#13205}.0 < |c*{c <- `c*`}|)] +[visit_exp i!`%`_iN{i#13205}.0] +[visit_exp i!`%`_iN{i#13205}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#13205] +[visit_id i#13205] +[visit_exp |c*{c <- `c*`}|] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13213 : nat, i#13205 : nat}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN{i#13213}.0] + -- if (i!`%`_iN{i#13205}.0 < |c*{c <- `c*`}|) +[check_dims] N c i i#13239 +[visit_exp N] +[visit_id N] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp i] +[visit_id i] +[visit_exp `%`_iN{i#13239}(0)] +[visit_exp i#13239] +[visit_id i#13239] +[visit_exp (0)] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13239 : nat}(N, c*{c <- `c*`}, i) = `%`_iN{i#13239}(0) + -- otherwise +[check_dims] N c i i#13259 i#13267 +[visit_exp N] +[visit_id N] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp i] +[visit_id i] +[visit_exp c*{c <- `c*`}[i!`%`_iN{i#13267}.0]] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp i!`%`_iN{i#13267}.0] +[visit_exp i!`%`_iN{i#13267}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#13267] +[visit_id i#13267] +[visit_exp (i!`%`_iN{i#13259}.0 < |c*{c <- `c*`}|)] +[visit_exp i!`%`_iN{i#13259}.0] +[visit_exp i!`%`_iN{i#13259}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#13259] +[visit_id i#13259] +[visit_exp |c*{c <- `c*`}|] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13267 : nat, i#13259 : nat}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN{i#13267}.0] + -- if (i!`%`_iN{i#13259}.0 < |c*{c <- `c*`}|) +[check_dims] N c i i#13287 i#13295 +[visit_exp N] +[visit_id N] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp i] +[visit_id i] +[visit_exp `%`_iN{i#13295}(0)] +[visit_exp i#13295] +[visit_id i#13295] +[visit_exp (0)] +[visit_exp 0] +[visit_exp ($signed_(N, i!`%`_iN{i#13287}.0) < (0 : nat <:> int))] +[visit_exp $signed_(N, i!`%`_iN{i#13287}.0)] +[visit_exp N] +[visit_id N] not free +[visit_exp i!`%`_iN{i#13287}.0] +[visit_exp i!`%`_iN{i#13287}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#13287] +[visit_id i#13287] +[visit_exp (0 : nat <:> int)] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13295 : nat, i#13287 : nat}(N, c*{c <- `c*`}, i) = `%`_iN{i#13295}(0) + -- if ($signed_(N, i!`%`_iN{i#13287}.0) < (0 : nat <:> int)) +[check_dims] N c i i#13333 i#13341 +[visit_exp N] +[visit_id N] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp i] +[visit_id i] +[visit_exp $relaxed2($R_swizzle, syntax iN(N), `%`_iN{i#13333}(0), c*{c <- `c*`}[(i!`%`_iN{i#13341}.0 \ |c*{c <- `c*`}|)])] +[visit_exp $R_swizzle] +[visit_exp N] +[visit_id N] not free +[visit_exp `%`_iN{i#13333}(0)] +[visit_exp i#13333] +[visit_id i#13333] +[visit_exp (0)] +[visit_exp 0] +[visit_exp c*{c <- `c*`}[(i!`%`_iN{i#13341}.0 \ |c*{c <- `c*`}|)]] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp (i!`%`_iN{i#13341}.0 \ |c*{c <- `c*`}|)] +[visit_exp i!`%`_iN{i#13341}.0] +[visit_exp i!`%`_iN{i#13341}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#13341] +[visit_id i#13341] +[visit_exp |c*{c <- `c*`}|] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13333 : nat, i#13341 : nat}(N, c*{c <- `c*`}, i) = $relaxed2($R_swizzle, syntax iN(N), `%`_iN{i#13333}(0), c*{c <- `c*`}[(i!`%`_iN{i#13341}.0 \ |c*{c <- `c*`}|)]) + -- otherwise +[check_dims] N iN shape vec_ +DecD ivunop_(shape : shape, def $f_(N : N, iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +[visit_id shape] not free +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] N fN shape vec_ +DecD fvunop_(shape : shape, def $f_(N : N, fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +[visit_id shape] not free +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] N iN shape vec_ +DecD ivbinop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +[visit_id shape] not free +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] N iN shape sx vec_ +DecD ivbinopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +[visit_id shape] not free +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[visit_id sx] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] N iN shape sx vec_ +DecD ivbinopsxnd_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +[visit_id shape] not free +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[visit_id sx] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] N fN shape vec_ +DecD fvbinop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +[visit_id shape] not free +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] N iN shape vec_ +DecD ivternopnd_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +[visit_id shape] not free +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] N fN shape vec_ +DecD fvternop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +[visit_id shape] not free +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] N iN shape vec_ +DecD ivrelop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id shape] not free +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] N iN shape sx vec_ +DecD ivrelopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id shape] not free +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id sx] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] N fN shape vec_ +DecD fvrelop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id shape] not free +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id fN] not free +[visit_exp N] +[visit_id N] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] N iN shape u32 vec_ +DecD ivshiftop_(shape : shape, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) +[visit_id shape] not free +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id u32] not free +[visit_exp N] +[visit_id N] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id u32] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] N iN shape sx u32 vec_ +DecD ivshiftopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) +[visit_id shape] not free +[visit_id N] not free +[visit_id sx] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_id u32] not free +[visit_exp N] +[visit_id N] not free +[visit_id sx] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id u32] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] shape vec_ +DecD ivbitmaskop_(shape : shape, vec_ : vec_(`V128`_Vnn)) : u32 +[visit_id shape] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] N _ iN shape vec_ +DecD ivswizzlop_(shape : shape, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id shape] not free +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[visit_id iN] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] _ shape vec_ +DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id shape] not free +[visit_id _] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] Jnn M c c_1 dim#1431 dim#1443 dim#1469 i#13346 i#13353 i#13370 i#13377 i#13506 i#13513 lanetype#1431 lanetype#1443 lanetype#1469 v_1 +[visit_exp `%X%`_shape{lanetype#1431, dim#1431, i#13346}((Jnn : Jnn <: lanetype), `%`_dim{i#13353}(M))] +[visit_exp lanetype#1431] +[visit_id lanetype#1431] +[visit_exp dim#1431] +[visit_id dim#1431] +[visit_exp i#13346] +[visit_id i#13346] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#13353}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#13353}(M)] +[visit_exp i#13353] +[visit_id i#13353] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp v_1] +[visit_id v_1] +[visit_exp [$inv_lanes_(`%X%`_shape{lanetype#1469, dim#1469, i#13506}((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M)), c*{c <- `c*`})]] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1469, dim#1469, i#13506}((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#1469, dim#1469, i#13506}((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M))] +[visit_exp lanetype#1469] +[visit_id lanetype#1469] +[visit_exp dim#1469] +[visit_id dim#1469] +[visit_exp i#13506] +[visit_id i#13506] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#13513}(M)] +[visit_exp i#13513] +[visit_id i#13513] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))] +[visit_exp lanetype#1443] +[visit_id lanetype#1443] +[visit_exp dim#1443] +[visit_id dim#1443] +[visit_exp i#13370] +[visit_id i#13370] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#13377}(M)] +[visit_exp i#13377] +[visit_id i#13377] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1)*{c_1 <- `c_1*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1)*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivunop_{lanetype#1431 : lanetype, dim#1431 : dim, i#13346 : nat, Jnn : Jnn, i#13353 : nat, M : M, def $f_(N : N, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), lanetype#1469 : lanetype, dim#1469 : dim, i#13506 : nat, i#13513 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#1443 : lanetype, dim#1443 : dim, i#13370 : nat, i#13377 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))*}(`%X%`_shape{lanetype#1431, dim#1431, i#13346}((Jnn : Jnn <: lanetype), `%`_dim{i#13353}(M)), def $f_, v_1) = [$inv_lanes_(`%X%`_shape{lanetype#1469, dim#1469, i#13506}((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M)), c*{c <- `c*`})] + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M)), v_1)) + -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1)*{c_1 <- `c_1*`}) +[check_dims] Fnn M c c_1 dim#1493 dim#1505 dim#1532 i#13579 i#13586 i#13603 i#13610 i#13693 i#13700 lanetype#1493 lanetype#1505 lanetype#1532 v_1 +[visit_exp `%X%`_shape{lanetype#1493, dim#1493, i#13579}((Fnn : Fnn <: lanetype), `%`_dim{i#13586}(M))] +[visit_exp lanetype#1493] +[visit_id lanetype#1493] +[visit_exp dim#1493] +[visit_id dim#1493] +[visit_exp i#13579] +[visit_id i#13579] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#13586}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#13586}(M)] +[visit_exp i#13586] +[visit_id i#13586] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp v_1] +[visit_id v_1] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1532 <- `dim#1532*`, i#13693 <- `i#13693*`, i#13700 <- `i#13700*`, lanetype#1532 <- `lanetype#1532*`}] +[scope_enter c*] +[scope_enter dim#1532] +[scope_enter i#13693] +[scope_enter i#13700] +[scope_enter lanetype#1532] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M))] +[visit_exp lanetype#1532] +[visit_id lanetype#1532] not free +[visit_exp dim#1532] +[visit_id dim#1532] not free +[visit_exp i#13693] +[visit_id i#13693] not free +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#13700}(M)] +[visit_exp i#13700] +[visit_id i#13700] not free +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[visit_id dim#1532] not free +[visit_id i#13693] not free +[visit_id i#13700] not free +[visit_id lanetype#1532] not free +[scope_exit lanetype#1532] +[scope_exit i#13700] +[scope_exit i#13693] +[scope_exit dim#1532] +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] no dims +[visit_id c**] +[visit_exp `dim#1532*`] +[visit_id dim#1532*] no dims +[visit_id dim#1532*] +[visit_exp `i#13693*`] +[visit_id i#13693*] no dims +[visit_id i#13693*] +[visit_exp `i#13700*`] +[visit_id i#13700*] no dims +[visit_id i#13700*] +[visit_exp `lanetype#1532*`] +[visit_id lanetype#1532*] no dims +[visit_id lanetype#1532*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))] +[visit_exp lanetype#1505] +[visit_id lanetype#1505] +[visit_exp dim#1505] +[visit_id dim#1505] +[visit_exp i#13603] +[visit_id i#13603] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#13610}(M)] +[visit_exp i#13610] +[visit_id i#13610] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1)*{c_1 <- `c_1*`}))] +[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] +[scope_enter c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] not free +[visit_id c**] no dims +[visit_exp $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1)*{c_1 <- `c_1*`})] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1)*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $fvunop_{lanetype#1493 : lanetype, dim#1493 : dim, i#13579 : nat, Fnn : Fnn, i#13586 : nat, M : M, def $f_(N : N, fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `dim#1532*` : dim*, `i#13693*` : nat*, `i#13700*` : nat*, `lanetype#1532*` : lanetype*, lanetype#1505 : lanetype, dim#1505 : dim, i#13603 : nat, i#13610 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))*}(`%X%`_shape{lanetype#1493, dim#1493, i#13579}((Fnn : Fnn <: lanetype), `%`_dim{i#13586}(M)), def $f_, v_1) = $inv_lanes_(`%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1532 <- `dim#1532*`, i#13693 <- `i#13693*`, i#13700 <- `i#13700*`, lanetype#1532 <- `lanetype#1532*`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M)), v_1)) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1)*{c_1 <- `c_1*`})) +[check_dims] Jnn M c c_1 c_2 dim#1555 dim#1567 dim#1592 dim#1619 i#13738 i#13745 i#13774 i#13781 i#13860 i#13867 i#14011 i#14018 lanetype#1555 lanetype#1567 lanetype#1592 lanetype#1619 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#1555, dim#1555, i#13738}((Jnn : Jnn <: lanetype), `%`_dim{i#13745}(M))] +[visit_exp lanetype#1555] +[visit_id lanetype#1555] +[visit_exp dim#1555] +[visit_id dim#1555] +[visit_exp i#13738] +[visit_id i#13738] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#13745}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#13745}(M)] +[visit_exp i#13745] +[visit_id i#13745] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp [$inv_lanes_(`%X%`_shape{lanetype#1619, dim#1619, i#14011}((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M)), c*{c <- `c*`})]] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1619, dim#1619, i#14011}((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#1619, dim#1619, i#14011}((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M))] +[visit_exp lanetype#1619] +[visit_id lanetype#1619] +[visit_exp dim#1619] +[visit_id dim#1619] +[visit_exp i#14011] +[visit_id i#14011] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#14018}(M)] +[visit_exp i#14018] +[visit_id i#14018] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))] +[visit_exp lanetype#1567] +[visit_id lanetype#1567] +[visit_exp dim#1567] +[visit_id dim#1567] +[visit_exp i#13774] +[visit_id i#13774] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#13781}(M)] +[visit_exp i#13781] +[visit_id i#13781] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M)), v_2))] +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] no dims +[visit_id c_2*] +[visit_exp $lanes_(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M)), v_2)] +[visit_exp `%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))] +[visit_exp lanetype#1592] +[visit_id lanetype#1592] +[visit_exp dim#1592] +[visit_id dim#1592] +[visit_exp i#13860] +[visit_id i#13860] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#13867}(M)] +[visit_exp i#13867] +[visit_id i#13867] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}] +[scope_enter c_1] +[scope_enter c_2] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_1] not free +[visit_id c_2] not free +[scope_exit c_2] +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp `c_2*`] +[visit_id c_2*] not free +[visit_id c_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivbinop_{lanetype#1555 : lanetype, dim#1555 : dim, i#13738 : nat, Jnn : Jnn, i#13745 : nat, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#1619 : lanetype, dim#1619 : dim, i#14011 : nat, i#14018 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#1567 : lanetype, dim#1567 : dim, i#13774 : nat, i#13781 : nat, lanetype#1592 : lanetype, dim#1592 : dim, i#13860 : nat, i#13867 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))*}(`%X%`_shape{lanetype#1555, dim#1555, i#13738}((Jnn : Jnn <: lanetype), `%`_dim{i#13745}(M)), def $f_, v_1, v_2) = [$inv_lanes_(`%X%`_shape{lanetype#1619, dim#1619, i#14011}((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M)), c*{c <- `c*`})] + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M)), v_2)) + -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}) +[check_dims] Jnn M c c_1 c_2 dim#1643 dim#1655 dim#1680 dim#1707 i#14084 i#14091 i#14120 i#14127 i#14206 i#14213 i#14357 i#14364 lanetype#1643 lanetype#1655 lanetype#1680 lanetype#1707 sx v_1 v_2 +[visit_exp `%X%`_shape{lanetype#1643, dim#1643, i#14084}((Jnn : Jnn <: lanetype), `%`_dim{i#14091}(M))] +[visit_exp lanetype#1643] +[visit_id lanetype#1643] +[visit_exp dim#1643] +[visit_id dim#1643] +[visit_exp i#14084] +[visit_id i#14084] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14091}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#14091}(M)] +[visit_exp i#14091] +[visit_id i#14091] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp [$inv_lanes_(`%X%`_shape{lanetype#1707, dim#1707, i#14357}((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M)), c*{c <- `c*`})]] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1707, dim#1707, i#14357}((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#1707, dim#1707, i#14357}((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M))] +[visit_exp lanetype#1707] +[visit_id lanetype#1707] +[visit_exp dim#1707] +[visit_id dim#1707] +[visit_exp i#14357] +[visit_id i#14357] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#14364}(M)] +[visit_exp i#14364] +[visit_id i#14364] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))] +[visit_exp lanetype#1655] +[visit_id lanetype#1655] +[visit_exp dim#1655] +[visit_id dim#1655] +[visit_exp i#14120] +[visit_id i#14120] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#14127}(M)] +[visit_exp i#14127] +[visit_id i#14127] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M)), v_2))] +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] no dims +[visit_id c_2*] +[visit_exp $lanes_(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M)), v_2)] +[visit_exp `%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))] +[visit_exp lanetype#1680] +[visit_id lanetype#1680] +[visit_exp dim#1680] +[visit_id dim#1680] +[visit_exp i#14206] +[visit_id i#14206] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#14213}(M)] +[visit_exp i#14213] +[visit_id i#14213] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}] +[scope_enter c_1] +[scope_enter c_2] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_1] not free +[visit_id c_2] not free +[scope_exit c_2] +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp `c_2*`] +[visit_id c_2*] not free +[visit_id c_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivbinopsx_{lanetype#1643 : lanetype, dim#1643 : dim, i#14084 : nat, Jnn : Jnn, i#14091 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#1707 : lanetype, dim#1707 : dim, i#14357 : nat, i#14364 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#1655 : lanetype, dim#1655 : dim, i#14120 : nat, i#14127 : nat, lanetype#1680 : lanetype, dim#1680 : dim, i#14206 : nat, i#14213 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))*}(`%X%`_shape{lanetype#1643, dim#1643, i#14084}((Jnn : Jnn <: lanetype), `%`_dim{i#14091}(M)), def $f_, sx, v_1, v_2) = [$inv_lanes_(`%X%`_shape{lanetype#1707, dim#1707, i#14357}((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M)), c*{c <- `c*`})] + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M)), v_2)) + -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}) +[check_dims] Jnn M c c_1 c_2 dim#1731 dim#1743 dim#1768 dim#1803 i#14430 i#14437 i#14466 i#14473 i#14552 i#14559 i#14919 i#14926 lanetype#1731 lanetype#1743 lanetype#1768 lanetype#1803 sx v_1 v_2 +[visit_exp `%X%`_shape{lanetype#1731, dim#1731, i#14430}((Jnn : Jnn <: lanetype), `%`_dim{i#14437}(M))] +[visit_exp lanetype#1731] +[visit_id lanetype#1731] +[visit_exp dim#1731] +[visit_id dim#1731] +[visit_exp i#14430] +[visit_id i#14430] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14437}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#14437}(M)] +[visit_exp i#14437] +[visit_id i#14437] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1803 <- `dim#1803*`, i#14919 <- `i#14919*`, i#14926 <- `i#14926*`, lanetype#1803 <- `lanetype#1803*`}] +[scope_enter c*] +[scope_enter dim#1803] +[scope_enter i#14919] +[scope_enter i#14926] +[scope_enter lanetype#1803] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M))] +[visit_exp lanetype#1803] +[visit_id lanetype#1803] not free +[visit_exp dim#1803] +[visit_id dim#1803] not free +[visit_exp i#14919] +[visit_id i#14919] not free +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#14926}(M)] +[visit_exp i#14926] +[visit_id i#14926] not free +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[visit_id dim#1803] not free +[visit_id i#14919] not free +[visit_id i#14926] not free +[visit_id lanetype#1803] not free +[scope_exit lanetype#1803] +[scope_exit i#14926] +[scope_exit i#14919] +[scope_exit dim#1803] +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] no dims +[visit_id c**] +[visit_exp `dim#1803*`] +[visit_id dim#1803*] no dims +[visit_id dim#1803*] +[visit_exp `i#14919*`] +[visit_id i#14919*] no dims +[visit_id i#14919*] +[visit_exp `i#14926*`] +[visit_id i#14926*] no dims +[visit_id i#14926*] +[visit_exp `lanetype#1803*`] +[visit_id lanetype#1803*] no dims +[visit_id lanetype#1803*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))] +[visit_exp lanetype#1743] +[visit_id lanetype#1743] +[visit_exp dim#1743] +[visit_id dim#1743] +[visit_exp i#14466] +[visit_id i#14466] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#14473}(M)] +[visit_exp i#14473] +[visit_id i#14473] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M)), v_2))] +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] no dims +[visit_id c_2*] +[visit_exp $lanes_(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M)), v_2)] +[visit_exp `%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))] +[visit_exp lanetype#1768] +[visit_id lanetype#1768] +[visit_exp dim#1768] +[visit_id dim#1768] +[visit_exp i#14552] +[visit_id i#14552] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#14559}(M)] +[visit_exp i#14559] +[visit_id i#14559] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}))] +[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] +[scope_enter c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] not free +[visit_id c**] no dims +[visit_exp $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}] +[scope_enter c_1] +[scope_enter c_2] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_1] not free +[visit_id c_2] not free +[scope_exit c_2] +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp `c_2*`] +[visit_id c_2*] not free +[visit_id c_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivbinopsxnd_{lanetype#1731 : lanetype, dim#1731 : dim, i#14430 : nat, Jnn : Jnn, i#14437 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `dim#1803*` : dim*, `i#14919*` : nat*, `i#14926*` : nat*, `lanetype#1803*` : lanetype*, lanetype#1743 : lanetype, dim#1743 : dim, i#14466 : nat, i#14473 : nat, lanetype#1768 : lanetype, dim#1768 : dim, i#14552 : nat, i#14559 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))*}(`%X%`_shape{lanetype#1731, dim#1731, i#14430}((Jnn : Jnn <: lanetype), `%`_dim{i#14437}(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1803 <- `dim#1803*`, i#14919 <- `i#14919*`, i#14926 <- `i#14926*`, lanetype#1803 <- `lanetype#1803*`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M)), v_2)) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})) +[check_dims] Fnn M c c_1 c_2 dim#1827 dim#1839 dim#1863 dim#1893 i#14990 i#14997 i#15026 i#15033 i#15084 i#15091 i#15183 i#15190 lanetype#1827 lanetype#1839 lanetype#1863 lanetype#1893 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#1827, dim#1827, i#14990}((Fnn : Fnn <: lanetype), `%`_dim{i#14997}(M))] +[visit_exp lanetype#1827] +[visit_id lanetype#1827] +[visit_exp dim#1827] +[visit_id dim#1827] +[visit_exp i#14990] +[visit_id i#14990] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#14997}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#14997}(M)] +[visit_exp i#14997] +[visit_id i#14997] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1893 <- `dim#1893*`, i#15183 <- `i#15183*`, i#15190 <- `i#15190*`, lanetype#1893 <- `lanetype#1893*`}] +[scope_enter c*] +[scope_enter dim#1893] +[scope_enter i#15183] +[scope_enter i#15190] +[scope_enter lanetype#1893] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M))] +[visit_exp lanetype#1893] +[visit_id lanetype#1893] not free +[visit_exp dim#1893] +[visit_id dim#1893] not free +[visit_exp i#15183] +[visit_id i#15183] not free +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#15190}(M)] +[visit_exp i#15190] +[visit_id i#15190] not free +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[visit_id dim#1893] not free +[visit_id i#15183] not free +[visit_id i#15190] not free +[visit_id lanetype#1893] not free +[scope_exit lanetype#1893] +[scope_exit i#15190] +[scope_exit i#15183] +[scope_exit dim#1893] +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] no dims +[visit_id c**] +[visit_exp `dim#1893*`] +[visit_id dim#1893*] no dims +[visit_id dim#1893*] +[visit_exp `i#15183*`] +[visit_id i#15183*] no dims +[visit_id i#15183*] +[visit_exp `i#15190*`] +[visit_id i#15190*] no dims +[visit_id i#15190*] +[visit_exp `lanetype#1893*`] +[visit_id lanetype#1893*] no dims +[visit_id lanetype#1893*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))] +[visit_exp lanetype#1839] +[visit_id lanetype#1839] +[visit_exp dim#1839] +[visit_id dim#1839] +[visit_exp i#15026] +[visit_id i#15026] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#15033}(M)] +[visit_exp i#15033] +[visit_id i#15033] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M)), v_2))] +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] no dims +[visit_id c_2*] +[visit_exp $lanes_(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M)), v_2)] +[visit_exp `%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))] +[visit_exp lanetype#1863] +[visit_id lanetype#1863] +[visit_exp dim#1863] +[visit_id dim#1863] +[visit_exp i#15084] +[visit_id i#15084] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#15091}(M)] +[visit_exp i#15091] +[visit_id i#15091] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}))] +[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] +[scope_enter c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] not free +[visit_id c**] no dims +[visit_exp $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}] +[scope_enter c_1] +[scope_enter c_2] +[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_1] not free +[visit_id c_2] not free +[scope_exit c_2] +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp `c_2*`] +[visit_id c_2*] not free +[visit_id c_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $fvbinop_{lanetype#1827 : lanetype, dim#1827 : dim, i#14990 : nat, Fnn : Fnn, i#14997 : nat, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `dim#1893*` : dim*, `i#15183*` : nat*, `i#15190*` : nat*, `lanetype#1893*` : lanetype*, lanetype#1839 : lanetype, dim#1839 : dim, i#15026 : nat, i#15033 : nat, lanetype#1863 : lanetype, dim#1863 : dim, i#15084 : nat, i#15091 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))*}(`%X%`_shape{lanetype#1827, dim#1827, i#14990}((Fnn : Fnn <: lanetype), `%`_dim{i#14997}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1893 <- `dim#1893*`, i#15183 <- `i#15183*`, i#15190 <- `i#15190*`, lanetype#1893 <- `lanetype#1893*`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M)), v_2)) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})) +[check_dims] Jnn M c c_1 c_2 c_3 dim#1916 dim#1928 dim#1953 dim#1978 dim#2018 i#15228 i#15235 i#15276 i#15283 i#15362 i#15369 i#15448 i#15455 i#15890 i#15897 lanetype#1916 lanetype#1928 lanetype#1953 lanetype#1978 lanetype#2018 v_1 v_2 v_3 +[visit_exp `%X%`_shape{lanetype#1916, dim#1916, i#15228}((Jnn : Jnn <: lanetype), `%`_dim{i#15235}(M))] +[visit_exp lanetype#1916] +[visit_id lanetype#1916] +[visit_exp dim#1916] +[visit_id dim#1916] +[visit_exp i#15228] +[visit_id i#15228] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#15235}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#15235}(M)] +[visit_exp i#15235] +[visit_id i#15235] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp v_3] +[visit_id v_3] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#2018 <- `dim#2018*`, i#15890 <- `i#15890*`, i#15897 <- `i#15897*`, lanetype#2018 <- `lanetype#2018*`}] +[scope_enter c*] +[scope_enter dim#2018] +[scope_enter i#15890] +[scope_enter i#15897] +[scope_enter lanetype#2018] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M))] +[visit_exp lanetype#2018] +[visit_id lanetype#2018] not free +[visit_exp dim#2018] +[visit_id dim#2018] not free +[visit_exp i#15890] +[visit_id i#15890] not free +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#15897}(M)] +[visit_exp i#15897] +[visit_id i#15897] not free +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[visit_id dim#2018] not free +[visit_id i#15890] not free +[visit_id i#15897] not free +[visit_id lanetype#2018] not free +[scope_exit lanetype#2018] +[scope_exit i#15897] +[scope_exit i#15890] +[scope_exit dim#2018] +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] no dims +[visit_id c**] +[visit_exp `dim#2018*`] +[visit_id dim#2018*] no dims +[visit_id dim#2018*] +[visit_exp `i#15890*`] +[visit_id i#15890*] no dims +[visit_id i#15890*] +[visit_exp `i#15897*`] +[visit_id i#15897*] no dims +[visit_id i#15897*] +[visit_exp `lanetype#2018*`] +[visit_id lanetype#2018*] no dims +[visit_id lanetype#2018*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))] +[visit_exp lanetype#1928] +[visit_id lanetype#1928] +[visit_exp dim#1928] +[visit_id dim#1928] +[visit_exp i#15276] +[visit_id i#15276] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#15283}(M)] +[visit_exp i#15283] +[visit_id i#15283] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M)), v_2))] +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] no dims +[visit_id c_2*] +[visit_exp $lanes_(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M)), v_2)] +[visit_exp `%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))] +[visit_exp lanetype#1953] +[visit_id lanetype#1953] +[visit_exp dim#1953] +[visit_id dim#1953] +[visit_exp i#15362] +[visit_id i#15362] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#15369}(M)] +[visit_exp i#15369] +[visit_id i#15369] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M)), v_3))] +[visit_exp c_3*{c_3 <- `c_3*`}] +[scope_enter c_3] +[visit_exp c_3] +[visit_id c_3] not free +[visit_id c_3] not free +[scope_exit c_3] +[visit_exp `c_3*`] +[visit_id c_3*] no dims +[visit_id c_3*] +[visit_exp $lanes_(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M)), v_3)] +[visit_exp `%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))] +[visit_exp lanetype#1978] +[visit_id lanetype#1978] +[visit_exp dim#1978] +[visit_id dim#1978] +[visit_exp i#15448] +[visit_id i#15448] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#15455}(M)] +[visit_exp i#15455] +[visit_id i#15455] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_3] +[visit_id v_3] not free +[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`}))] +[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] +[scope_enter c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] not free +[visit_id c**] no dims +[visit_exp $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`}] +[scope_enter c_1] +[scope_enter c_2] +[scope_enter c_3] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp c_3] +[visit_id c_3] not free +[visit_id c_1] not free +[visit_id c_2] not free +[visit_id c_3] not free +[scope_exit c_3] +[scope_exit c_2] +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp `c_2*`] +[visit_id c_2*] not free +[visit_id c_2*] no dims +[visit_exp `c_3*`] +[visit_id c_3*] not free +[visit_id c_3*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivternopnd_{lanetype#1916 : lanetype, dim#1916 : dim, i#15228 : nat, Jnn : Jnn, i#15235 : nat, M : M, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `dim#2018*` : dim*, `i#15890*` : nat*, `i#15897*` : nat*, `lanetype#2018*` : lanetype*, lanetype#1928 : lanetype, dim#1928 : dim, i#15276 : nat, i#15283 : nat, lanetype#1953 : lanetype, dim#1953 : dim, i#15362 : nat, i#15369 : nat, lanetype#1978 : lanetype, dim#1978 : dim, i#15448 : nat, i#15455 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))*}(`%X%`_shape{lanetype#1916, dim#1916, i#15228}((Jnn : Jnn <: lanetype), `%`_dim{i#15235}(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#2018 <- `dim#2018*`, i#15890 <- `i#15890*`, i#15897 <- `i#15897*`, lanetype#2018 <- `lanetype#2018*`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M)), v_2)) + -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M)), v_3)) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})) +[check_dims] Fnn M c c_1 c_2 c_3 dim#2042 dim#2054 dim#2078 dim#2102 dim#2135 i#15961 i#15968 i#16009 i#16016 i#16067 i#16074 i#16125 i#16132 i#16233 i#16240 lanetype#2042 lanetype#2054 lanetype#2078 lanetype#2102 lanetype#2135 v_1 v_2 v_3 +[visit_exp `%X%`_shape{lanetype#2042, dim#2042, i#15961}((Fnn : Fnn <: lanetype), `%`_dim{i#15968}(M))] +[visit_exp lanetype#2042] +[visit_id lanetype#2042] +[visit_exp dim#2042] +[visit_id dim#2042] +[visit_exp i#15961] +[visit_id i#15961] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#15968}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#15968}(M)] +[visit_exp i#15968] +[visit_id i#15968] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp v_3] +[visit_id v_3] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#2135 <- `dim#2135*`, i#16233 <- `i#16233*`, i#16240 <- `i#16240*`, lanetype#2135 <- `lanetype#2135*`}] +[scope_enter c*] +[scope_enter dim#2135] +[scope_enter i#16233] +[scope_enter i#16240] +[scope_enter lanetype#2135] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M))] +[visit_exp lanetype#2135] +[visit_id lanetype#2135] not free +[visit_exp dim#2135] +[visit_id dim#2135] not free +[visit_exp i#16233] +[visit_id i#16233] not free +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#16240}(M)] +[visit_exp i#16240] +[visit_id i#16240] not free +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[visit_id dim#2135] not free +[visit_id i#16233] not free +[visit_id i#16240] not free +[visit_id lanetype#2135] not free +[scope_exit lanetype#2135] +[scope_exit i#16240] +[scope_exit i#16233] +[scope_exit dim#2135] +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] no dims +[visit_id c**] +[visit_exp `dim#2135*`] +[visit_id dim#2135*] no dims +[visit_id dim#2135*] +[visit_exp `i#16233*`] +[visit_id i#16233*] no dims +[visit_id i#16233*] +[visit_exp `i#16240*`] +[visit_id i#16240*] no dims +[visit_id i#16240*] +[visit_exp `lanetype#2135*`] +[visit_id lanetype#2135*] no dims +[visit_id lanetype#2135*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))] +[visit_exp lanetype#2054] +[visit_id lanetype#2054] +[visit_exp dim#2054] +[visit_id dim#2054] +[visit_exp i#16009] +[visit_id i#16009] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#16016}(M)] +[visit_exp i#16016] +[visit_id i#16016] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M)), v_2))] +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] no dims +[visit_id c_2*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M)), v_2)] +[visit_exp `%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))] +[visit_exp lanetype#2078] +[visit_id lanetype#2078] +[visit_exp dim#2078] +[visit_id dim#2078] +[visit_exp i#16067] +[visit_id i#16067] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#16074}(M)] +[visit_exp i#16074] +[visit_id i#16074] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M)), v_3))] +[visit_exp c_3*{c_3 <- `c_3*`}] +[scope_enter c_3] +[visit_exp c_3] +[visit_id c_3] not free +[visit_id c_3] not free +[scope_exit c_3] +[visit_exp `c_3*`] +[visit_id c_3*] no dims +[visit_id c_3*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M)), v_3)] +[visit_exp `%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))] +[visit_exp lanetype#2102] +[visit_id lanetype#2102] +[visit_exp dim#2102] +[visit_id dim#2102] +[visit_exp i#16125] +[visit_id i#16125] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#16132}(M)] +[visit_exp i#16132] +[visit_id i#16132] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_3] +[visit_id v_3] not free +[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`}))] +[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] +[scope_enter c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] not free +[visit_id c**] no dims +[visit_exp $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`}] +[scope_enter c_1] +[scope_enter c_2] +[scope_enter c_3] +[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp c_3] +[visit_id c_3] not free +[visit_id c_1] not free +[visit_id c_2] not free +[visit_id c_3] not free +[scope_exit c_3] +[scope_exit c_2] +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp `c_2*`] +[visit_id c_2*] not free +[visit_id c_2*] no dims +[visit_exp `c_3*`] +[visit_id c_3*] not free +[visit_id c_3*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $fvternop_{lanetype#2042 : lanetype, dim#2042 : dim, i#15961 : nat, Fnn : Fnn, i#15968 : nat, M : M, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `dim#2135*` : dim*, `i#16233*` : nat*, `i#16240*` : nat*, `lanetype#2135*` : lanetype*, lanetype#2054 : lanetype, dim#2054 : dim, i#16009 : nat, i#16016 : nat, lanetype#2078 : lanetype, dim#2078 : dim, i#16067 : nat, i#16074 : nat, lanetype#2102 : lanetype, dim#2102 : dim, i#16125 : nat, i#16132 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))*}(`%X%`_shape{lanetype#2042, dim#2042, i#15961}((Fnn : Fnn <: lanetype), `%`_dim{i#15968}(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#2135 <- `dim#2135*`, i#16233 <- `i#16233*`, i#16240 <- `i#16240*`, lanetype#2135 <- `lanetype#2135*`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M)), v_2)) + -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M)), v_3)) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})) +[check_dims] Jnn M c c_1 c_2 dim#2158 dim#2170 dim#2195 dim#2222 i#16278 i#16285 i#16314 i#16321 i#16400 i#16407 i#16555 i#16556 i#16597 i#16604 lanetype#2158 lanetype#2170 lanetype#2195 lanetype#2222 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#2158, dim#2158, i#16278}((Jnn : Jnn <: lanetype), `%`_dim{i#16285}(M))] +[visit_exp lanetype#2158] +[visit_id lanetype#2158] +[visit_exp dim#2158] +[visit_id dim#2158] +[visit_exp i#16278] +[visit_id i#16278] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16285}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#16285}(M)] +[visit_exp i#16285] +[visit_id i#16285] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2222, dim#2222, i#16597}((Jnn : Jnn <: lanetype), `%`_dim{i#16604}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#2222, dim#2222, i#16597}((Jnn : Jnn <: lanetype), `%`_dim{i#16604}(M))] +[visit_exp lanetype#2222] +[visit_id lanetype#2222] +[visit_exp dim#2222] +[visit_id dim#2222] +[visit_exp i#16597] +[visit_id i#16597] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16604}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#16604}(M)] +[visit_exp i#16604] +[visit_id i#16604] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))] +[visit_exp lanetype#2170] +[visit_id lanetype#2170] +[visit_exp dim#2170] +[visit_id dim#2170] +[visit_exp i#16314] +[visit_id i#16314] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#16321}(M)] +[visit_exp i#16321] +[visit_id i#16321] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M)), v_2))] +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] no dims +[visit_id c_2*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M)), v_2)] +[visit_exp `%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))] +[visit_exp lanetype#2195] +[visit_id lanetype#2195] +[visit_exp dim#2195] +[visit_id dim#2195] +[visit_exp i#16400] +[visit_id i#16400] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#16407}(M)] +[visit_exp i#16407] +[visit_id i#16407] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16556}($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16555 <- `i#16555*`, i#16556 <- `i#16556*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16556}($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16555 <- `i#16555*`, i#16556 <- `i#16556*`}] +[scope_enter c_1] +[scope_enter c_2] +[scope_enter i#16555] +[scope_enter i#16556] +[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16556}($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0))] +[visit_exp 1] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_iN{i#16556}($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0)] +[visit_exp i#16556] +[visit_id i#16556] not free +[visit_exp ($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0)] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp i#16555] +[visit_id i#16555] not free +[visit_id c_1] not free +[visit_id c_2] not free +[visit_id i#16555] not free +[visit_id i#16556] not free +[scope_exit i#16556] +[scope_exit i#16555] +[scope_exit c_2] +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp `c_2*`] +[visit_id c_2*] not free +[visit_id c_2*] no dims +[visit_exp `i#16555*`] +[visit_id i#16555*] no dims +[visit_id i#16555*] +[visit_exp `i#16556*`] +[visit_id i#16556*] no dims +[visit_id i#16556*] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivrelop_{lanetype#2158 : lanetype, dim#2158 : dim, i#16278 : nat, Jnn : Jnn, i#16285 : nat, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2222 : lanetype, dim#2222 : dim, i#16597 : nat, i#16604 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2170 : lanetype, dim#2170 : dim, i#16314 : nat, i#16321 : nat, lanetype#2195 : lanetype, dim#2195 : dim, i#16400 : nat, i#16407 : nat, `i#16555*` : nat*, `i#16556*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))*}(`%X%`_shape{lanetype#2158, dim#2158, i#16278}((Jnn : Jnn <: lanetype), `%`_dim{i#16285}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2222, dim#2222, i#16597}((Jnn : Jnn <: lanetype), `%`_dim{i#16604}(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M)), v_2)) + -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16556}($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16555 <- `i#16555*`, i#16556 <- `i#16556*`}) +[check_dims] Jnn M c c_1 c_2 dim#2246 dim#2258 dim#2283 dim#2310 i#16670 i#16677 i#16706 i#16713 i#16792 i#16799 i#16947 i#16948 i#16989 i#16996 lanetype#2246 lanetype#2258 lanetype#2283 lanetype#2310 sx v_1 v_2 +[visit_exp `%X%`_shape{lanetype#2246, dim#2246, i#16670}((Jnn : Jnn <: lanetype), `%`_dim{i#16677}(M))] +[visit_exp lanetype#2246] +[visit_id lanetype#2246] +[visit_exp dim#2246] +[visit_id dim#2246] +[visit_exp i#16670] +[visit_id i#16670] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16677}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#16677}(M)] +[visit_exp i#16677] +[visit_id i#16677] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2310, dim#2310, i#16989}((Jnn : Jnn <: lanetype), `%`_dim{i#16996}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#2310, dim#2310, i#16989}((Jnn : Jnn <: lanetype), `%`_dim{i#16996}(M))] +[visit_exp lanetype#2310] +[visit_id lanetype#2310] +[visit_exp dim#2310] +[visit_id dim#2310] +[visit_exp i#16989] +[visit_id i#16989] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16996}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#16996}(M)] +[visit_exp i#16996] +[visit_id i#16996] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))] +[visit_exp lanetype#2258] +[visit_id lanetype#2258] +[visit_exp dim#2258] +[visit_id dim#2258] +[visit_exp i#16706] +[visit_id i#16706] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#16713}(M)] +[visit_exp i#16713] +[visit_id i#16713] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M)), v_2))] +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] no dims +[visit_id c_2*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M)), v_2)] +[visit_exp `%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))] +[visit_exp lanetype#2283] +[visit_id lanetype#2283] +[visit_exp dim#2283] +[visit_id dim#2283] +[visit_exp i#16792] +[visit_id i#16792] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#16799}(M)] +[visit_exp i#16799] +[visit_id i#16799] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16948}($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16947 <- `i#16947*`, i#16948 <- `i#16948*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16948}($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16947 <- `i#16947*`, i#16948 <- `i#16948*`}] +[scope_enter c_1] +[scope_enter c_2] +[scope_enter i#16947] +[scope_enter i#16948] +[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16948}($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0))] +[visit_exp 1] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_iN{i#16948}($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0)] +[visit_exp i#16948] +[visit_id i#16948] not free +[visit_exp ($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0)] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp i#16947] +[visit_id i#16947] not free +[visit_id c_1] not free +[visit_id c_2] not free +[visit_id i#16947] not free +[visit_id i#16948] not free +[scope_exit i#16948] +[scope_exit i#16947] +[scope_exit c_2] +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp `c_2*`] +[visit_id c_2*] not free +[visit_id c_2*] no dims +[visit_exp `i#16947*`] +[visit_id i#16947*] no dims +[visit_id i#16947*] +[visit_exp `i#16948*`] +[visit_id i#16948*] no dims +[visit_id i#16948*] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivrelopsx_{lanetype#2246 : lanetype, dim#2246 : dim, i#16670 : nat, Jnn : Jnn, i#16677 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2310 : lanetype, dim#2310 : dim, i#16989 : nat, i#16996 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2258 : lanetype, dim#2258 : dim, i#16706 : nat, i#16713 : nat, lanetype#2283 : lanetype, dim#2283 : dim, i#16792 : nat, i#16799 : nat, `i#16947*` : nat*, `i#16948*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))*}(`%X%`_shape{lanetype#2246, dim#2246, i#16670}((Jnn : Jnn <: lanetype), `%`_dim{i#16677}(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2310, dim#2310, i#16989}((Jnn : Jnn <: lanetype), `%`_dim{i#16996}(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M)), v_2)) + -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16948}($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16947 <- `i#16947*`, i#16948 <- `i#16948*`}) +[check_dims] Fnn Inn M c c_1 c_2 dim#2334 dim#2346 dim#2370 dim#2396 i#17062 i#17069 i#17098 i#17105 i#17156 i#17163 i#17259 i#17260 i#17301 i#17308 i#17404 i#17405 lanetype#2334 lanetype#2346 lanetype#2370 lanetype#2396 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#2334, dim#2334, i#17062}((Fnn : Fnn <: lanetype), `%`_dim{i#17069}(M))] +[visit_exp lanetype#2334] +[visit_id lanetype#2334] +[visit_exp dim#2334] +[visit_id dim#2334] +[visit_exp i#17062] +[visit_id i#17062] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#17069}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#17069}(M)] +[visit_exp i#17069] +[visit_id i#17069] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2396, dim#2396, i#17301}((Inn : Inn <: lanetype), `%`_dim{i#17308}(M)), `%`_lane_{i#17405}(c!`%`_iN{i#17404}.0)*{c <- `c*`, i#17404 <- `i#17404*`, i#17405 <- `i#17405*`})] +[visit_exp `%X%`_shape{lanetype#2396, dim#2396, i#17301}((Inn : Inn <: lanetype), `%`_dim{i#17308}(M))] +[visit_exp lanetype#2396] +[visit_id lanetype#2396] +[visit_exp dim#2396] +[visit_id dim#2396] +[visit_exp i#17301] +[visit_id i#17301] +[visit_exp ((Inn : Inn <: lanetype), `%`_dim{i#17308}(M))] +[visit_exp (Inn : Inn <: lanetype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp `%`_dim{i#17308}(M)] +[visit_exp i#17308] +[visit_id i#17308] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp `%`_lane_{i#17405}(c!`%`_iN{i#17404}.0)*{c <- `c*`, i#17404 <- `i#17404*`, i#17405 <- `i#17405*`}] +[scope_enter c] +[scope_enter i#17404] +[scope_enter i#17405] +[visit_exp `%`_lane_{i#17405}(c!`%`_iN{i#17404}.0)] +[visit_exp i#17405] +[visit_id i#17405] not free +[visit_exp (c!`%`_iN{i#17404}.0)] +[visit_exp c!`%`_iN{i#17404}.0] +[visit_exp c!`%`_iN{i#17404}] +[visit_exp c] +[visit_id c] not free +[visit_exp i#17404] +[visit_id i#17404] not free +[visit_id c] not free +[visit_id i#17404] not free +[visit_id i#17405] not free +[scope_exit i#17405] +[scope_exit i#17404] +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp `i#17404*`] +[visit_id i#17404*] no dims +[visit_id i#17404*] +[visit_exp `i#17405*`] +[visit_id i#17405*] no dims +[visit_id i#17405*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))] +[visit_exp lanetype#2346] +[visit_id lanetype#2346] +[visit_exp dim#2346] +[visit_id dim#2346] +[visit_exp i#17098] +[visit_id i#17098] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#17105}(M)] +[visit_exp i#17105] +[visit_id i#17105] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M)), v_2))] +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] no dims +[visit_id c_2*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M)), v_2)] +[visit_exp `%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))] +[visit_exp lanetype#2370] +[visit_id lanetype#2370] +[visit_exp dim#2370] +[visit_id dim#2370] +[visit_exp i#17156] +[visit_id i#17156] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#17163}(M)] +[visit_exp i#17163] +[visit_id i#17163] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN{i#17260}($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#17259 <- `i#17259*`, i#17260 <- `i#17260*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN{i#17260}($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#17259 <- `i#17259*`, i#17260 <- `i#17260*`}] +[scope_enter c_1] +[scope_enter c_2] +[scope_enter i#17259] +[scope_enter i#17260] +[visit_exp $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN{i#17260}($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0))] +[visit_exp 1] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_iN{i#17260}($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0)] +[visit_exp i#17260] +[visit_id i#17260] not free +[visit_exp ($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0)] +[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0] +[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}] +[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)] +[visit_exp $sizenn((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp i#17259] +[visit_id i#17259] not free +[visit_id c_1] not free +[visit_id c_2] not free +[visit_id i#17259] not free +[visit_id i#17260] not free +[scope_exit i#17260] +[scope_exit i#17259] +[scope_exit c_2] +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp `c_2*`] +[visit_id c_2*] not free +[visit_id c_2*] no dims +[visit_exp `i#17259*`] +[visit_id i#17259*] no dims +[visit_id i#17259*] +[visit_exp `i#17260*`] +[visit_id i#17260*] no dims +[visit_id i#17260*] +[visit_exp ($isize(Inn) = $fsize(Fnn))] +[visit_exp $isize(Inn)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp $fsize(Fnn)] +[visit_exp Fnn] +[visit_id Fnn] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $fvrelop_{lanetype#2334 : lanetype, dim#2334 : dim, i#17062 : nat, Fnn : Fnn, i#17069 : nat, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2396 : lanetype, dim#2396 : dim, i#17301 : nat, Inn : Inn, i#17308 : nat, `c*` : iN($sizenn((Fnn : Fnn <: numtype)))*, `i#17404*` : nat*, `i#17405*` : nat*, lanetype#2346 : lanetype, dim#2346 : dim, i#17098 : nat, i#17105 : nat, lanetype#2370 : lanetype, dim#2370 : dim, i#17156 : nat, i#17163 : nat, `i#17259*` : nat*, `i#17260*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))*}(`%X%`_shape{lanetype#2334, dim#2334, i#17062}((Fnn : Fnn <: lanetype), `%`_dim{i#17069}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2396, dim#2396, i#17301}((Inn : Inn <: lanetype), `%`_dim{i#17308}(M)), `%`_lane_{i#17405}(c!`%`_iN{i#17404}.0)*{c <- `c*`, i#17404 <- `i#17404*`, i#17405 <- `i#17405*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M)), v_2)) + -- if (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN{i#17260}($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#17259 <- `i#17259*`, i#17260 <- `i#17260*`}) + -- if ($isize(Inn) = $fsize(Fnn)) +[check_dims] Jnn M c c_1 dim#2421 dim#2433 dim#2459 i i#17411 i#17418 i#17447 i#17454 i#17593 i#17600 lanetype#2421 lanetype#2433 lanetype#2459 v_1 +[visit_exp `%X%`_shape{lanetype#2421, dim#2421, i#17411}((Jnn : Jnn <: lanetype), `%`_dim{i#17418}(M))] +[visit_exp lanetype#2421] +[visit_id lanetype#2421] +[visit_exp dim#2421] +[visit_id dim#2421] +[visit_exp i#17411] +[visit_id i#17411] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17418}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#17418}(M)] +[visit_exp i#17418] +[visit_id i#17418] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp v_1] +[visit_id v_1] +[visit_exp i] +[visit_id i] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2459, dim#2459, i#17593}((Jnn : Jnn <: lanetype), `%`_dim{i#17600}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#2459, dim#2459, i#17593}((Jnn : Jnn <: lanetype), `%`_dim{i#17600}(M))] +[visit_exp lanetype#2459] +[visit_id lanetype#2459] +[visit_exp dim#2459] +[visit_id dim#2459] +[visit_exp i#17593] +[visit_id i#17593] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17600}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#17600}(M)] +[visit_exp i#17600] +[visit_id i#17600] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))] +[visit_exp lanetype#2433] +[visit_id lanetype#2433] +[visit_exp dim#2433] +[visit_id dim#2433] +[visit_exp i#17447] +[visit_id i#17447] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#17454}(M)] +[visit_exp i#17454] +[visit_id i#17454] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, i)*{c_1 <- `c_1*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, i)*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, i)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp i] +[visit_id i] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivshiftop_{lanetype#2421 : lanetype, dim#2421 : dim, i#17411 : nat, Jnn : Jnn, i#17418 : nat, M : M, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), v_1 : vec_(`V128`_Vnn), i : u32, lanetype#2459 : lanetype, dim#2459 : dim, i#17593 : nat, i#17600 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2433 : lanetype, dim#2433 : dim, i#17447 : nat, i#17454 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))*}(`%X%`_shape{lanetype#2421, dim#2421, i#17411}((Jnn : Jnn <: lanetype), `%`_dim{i#17418}(M)), def $f_, v_1, i) = $inv_lanes_(`%X%`_shape{lanetype#2459, dim#2459, i#17593}((Jnn : Jnn <: lanetype), `%`_dim{i#17600}(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M)), v_1)) + -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, i)*{c_1 <- `c_1*`}) +[check_dims] Jnn M c c_1 dim#2483 dim#2495 dim#2521 i i#17666 i#17673 i#17702 i#17709 i#17848 i#17855 lanetype#2483 lanetype#2495 lanetype#2521 sx v_1 +[visit_exp `%X%`_shape{lanetype#2483, dim#2483, i#17666}((Jnn : Jnn <: lanetype), `%`_dim{i#17673}(M))] +[visit_exp lanetype#2483] +[visit_id lanetype#2483] +[visit_exp dim#2483] +[visit_id dim#2483] +[visit_exp i#17666] +[visit_id i#17666] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17673}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#17673}(M)] +[visit_exp i#17673] +[visit_id i#17673] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp i] +[visit_id i] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2521, dim#2521, i#17848}((Jnn : Jnn <: lanetype), `%`_dim{i#17855}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#2521, dim#2521, i#17848}((Jnn : Jnn <: lanetype), `%`_dim{i#17855}(M))] +[visit_exp lanetype#2521] +[visit_id lanetype#2521] +[visit_exp dim#2521] +[visit_id dim#2521] +[visit_exp i#17848] +[visit_id i#17848] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17855}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#17855}(M)] +[visit_exp i#17855] +[visit_id i#17855] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))] +[visit_exp lanetype#2495] +[visit_id lanetype#2495] +[visit_exp dim#2495] +[visit_id dim#2495] +[visit_exp i#17702] +[visit_id i#17702] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#17709}(M)] +[visit_exp i#17709] +[visit_id i#17709] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, i)*{c_1 <- `c_1*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, i)*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, i)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp i] +[visit_id i] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivshiftopsx_{lanetype#2483 : lanetype, dim#2483 : dim, i#17666 : nat, Jnn : Jnn, i#17673 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), i : u32, lanetype#2521 : lanetype, dim#2521 : dim, i#17848 : nat, i#17855 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2495 : lanetype, dim#2495 : dim, i#17702 : nat, i#17709 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))*}(`%X%`_shape{lanetype#2483, dim#2483, i#17666}((Jnn : Jnn <: lanetype), `%`_dim{i#17673}(M)), def $f_, sx, v_1, i) = $inv_lanes_(`%X%`_shape{lanetype#2521, dim#2521, i#17848}((Jnn : Jnn <: lanetype), `%`_dim{i#17855}(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M)), v_1)) + -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, i)*{c_1 <- `c_1*`}) +[check_dims] Jnn M c c_1 dim#2545 dim#2557 i#17921 i#17928 i#17945 i#17952 i#18238 i#18256 i#18257 i#18272 lanetype#2545 lanetype#2557 v_1 +[visit_exp `%X%`_shape{lanetype#2545, dim#2545, i#17921}((Jnn : Jnn <: lanetype), `%`_dim{i#17928}(M))] +[visit_exp lanetype#2545] +[visit_id lanetype#2545] +[visit_exp dim#2545] +[visit_id dim#2545] +[visit_exp i#17921] +[visit_id i#17921] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17928}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#17928}(M)] +[visit_exp i#17928] +[visit_id i#17928] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp v_1] +[visit_id v_1] +[visit_exp $irev_(32, c)] +[visit_exp 32] +[visit_exp c] +[visit_id c] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))] +[visit_exp lanetype#2557] +[visit_id lanetype#2557] +[visit_exp dim#2557] +[visit_id dim#2557] +[visit_exp i#17945] +[visit_id i#17945] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#17952}(M)] +[visit_exp i#17952] +[visit_id i#17952] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp ($ibits_(32, c) = `%`_bit{i#18257}($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)*{c_1 <- `c_1*`, i#18238 <- `i#18238*`, i#18256 <- `i#18256*`, i#18257 <- `i#18257*`} ++ `%`_bit{i#18272}(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){i#18272 <- `i#18272*`})] +[visit_exp $ibits_(32, c)] +[visit_exp 32] +[visit_exp c] +[visit_id c] not free +[visit_exp `%`_bit{i#18257}($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)*{c_1 <- `c_1*`, i#18238 <- `i#18238*`, i#18256 <- `i#18256*`, i#18257 <- `i#18257*`} ++ `%`_bit{i#18272}(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){i#18272 <- `i#18272*`}] +[visit_exp `%`_bit{i#18257}($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)*{c_1 <- `c_1*`, i#18238 <- `i#18238*`, i#18256 <- `i#18256*`, i#18257 <- `i#18257*`}] +[scope_enter c_1] +[scope_enter i#18238] +[scope_enter i#18256] +[scope_enter i#18257] +[visit_exp `%`_bit{i#18257}($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)] +[visit_exp i#18257] +[visit_id i#18257] not free +[visit_exp ($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)] +[visit_exp $ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0] +[visit_exp $ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}] +[visit_exp $ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp `%`_iN{i#18238}(0)] +[visit_exp i#18238] +[visit_id i#18238] not free +[visit_exp (0)] +[visit_exp 0] +[visit_exp i#18256] +[visit_id i#18256] not free +[visit_id c_1] not free +[visit_id i#18238] not free +[visit_id i#18256] not free +[visit_id i#18257] not free +[scope_exit i#18257] +[scope_exit i#18256] +[scope_exit i#18238] +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp `i#18238*`] +[visit_id i#18238*] no dims +[visit_id i#18238*] +[visit_exp `i#18256*`] +[visit_id i#18256*] no dims +[visit_id i#18256*] +[visit_exp `i#18257*`] +[visit_id i#18257*] no dims +[visit_id i#18257*] +[visit_exp `%`_bit{i#18272}(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){i#18272 <- `i#18272*`}] +[scope_enter i#18272] +[visit_exp `%`_bit{i#18272}(0)] +[visit_exp i#18272] +[visit_id i#18272] not free +[visit_exp (0)] +[visit_exp 0] +[visit_id i#18272] not free +[scope_exit i#18272] +[visit_exp (((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat)] +[visit_exp ((32 : nat <:> int) - (M : nat <:> int))] +[visit_exp (32 : nat <:> int)] +[visit_exp 32] +[visit_exp (M : nat <:> int)] +[visit_exp M] +[visit_id M] not free +[visit_exp `i#18272*`] +[visit_id i#18272*] no dims +[visit_id i#18272*] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivbitmaskop_{lanetype#2545 : lanetype, dim#2545 : dim, i#17921 : nat, Jnn : Jnn, i#17928 : nat, M : M, v_1 : vec_(`V128`_Vnn), c : iN(32), lanetype#2557 : lanetype, dim#2557 : dim, i#17945 : nat, i#17952 : nat, `i#18238*` : nat*, `i#18256*` : nat*, `i#18257*` : nat*, `i#18272*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))*}(`%X%`_shape{lanetype#2545, dim#2545, i#17921}((Jnn : Jnn <: lanetype), `%`_dim{i#17928}(M)), v_1) = $irev_(32, c) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M)), v_1)) + -- if ($ibits_(32, c) = `%`_bit{i#18257}($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)*{c_1 <- `c_1*`, i#18238 <- `i#18238*`, i#18256 <- `i#18256*`, i#18257 <- `i#18257*`} ++ `%`_bit{i#18272}(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){i#18272 <- `i#18272*`}) +[check_dims] Jnn M c c_1 c_2 dim#2584 dim#2596 dim#2621 dim#2648 i#18299 i#18306 i#18335 i#18342 i#18421 i#18428 i#18585 i#18592 lanetype#2584 lanetype#2596 lanetype#2621 lanetype#2648 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#2584, dim#2584, i#18299}((Jnn : Jnn <: lanetype), `%`_dim{i#18306}(M))] +[visit_exp lanetype#2584] +[visit_id lanetype#2584] +[visit_exp dim#2584] +[visit_id dim#2584] +[visit_exp i#18299] +[visit_id i#18299] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18306}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#18306}(M)] +[visit_exp i#18306] +[visit_id i#18306] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2648, dim#2648, i#18585}((Jnn : Jnn <: lanetype), `%`_dim{i#18592}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#2648, dim#2648, i#18585}((Jnn : Jnn <: lanetype), `%`_dim{i#18592}(M))] +[visit_exp lanetype#2648] +[visit_id lanetype#2648] +[visit_exp dim#2648] +[visit_id dim#2648] +[visit_exp i#18585] +[visit_id i#18585] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18592}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#18592}(M)] +[visit_exp i#18592] +[visit_id i#18592] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))] +[visit_exp lanetype#2596] +[visit_id lanetype#2596] +[visit_exp dim#2596] +[visit_id dim#2596] +[visit_exp i#18335] +[visit_id i#18335] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#18342}(M)] +[visit_exp i#18342] +[visit_id i#18342] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M)), v_2))] +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] no dims +[visit_id c_2*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M)), v_2)] +[visit_exp `%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))] +[visit_exp lanetype#2621] +[visit_id lanetype#2621] +[visit_exp dim#2621] +[visit_id dim#2621] +[visit_exp i#18421] +[visit_id i#18421] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#18428}(M)] +[visit_exp i#18428] +[visit_id i#18428] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1*{c_1 <- `c_1*`}, c_2)*{c_2 <- `c_2*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1*{c_1 <- `c_1*`}, c_2)*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1*{c_1 <- `c_1*`}, c_2)] +[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] not free +[visit_id c_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivswizzlop_{lanetype#2584 : lanetype, dim#2584 : dim, i#18299 : nat, Jnn : Jnn, i#18306 : nat, M : M, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2648 : lanetype, dim#2648 : dim, i#18585 : nat, i#18592 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2596 : lanetype, dim#2596 : dim, i#18335 : nat, i#18342 : nat, lanetype#2621 : lanetype, dim#2621 : dim, i#18421 : nat, i#18428 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))*}(`%X%`_shape{lanetype#2584, dim#2584, i#18299}((Jnn : Jnn <: lanetype), `%`_dim{i#18306}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2648, dim#2648, i#18585}((Jnn : Jnn <: lanetype), `%`_dim{i#18592}(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M)), v_2)) + -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1*{c_1 <- `c_1*`}, c_2)*{c_2 <- `c_2*`}) +[check_dims] Jnn M c c_1 c_2 dim#2672 dim#2684 dim#2709 dim#2760 i i#18658 i#18665 i#18719 i#18726 i#18805 i#18812 i#18958 i#19037 i#19044 lanetype#2672 lanetype#2684 lanetype#2709 lanetype#2760 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#2672, dim#2672, i#18658}((Jnn : Jnn <: lanetype), `%`_dim{i#18665}(M))] +[visit_exp lanetype#2672] +[visit_id lanetype#2672] +[visit_exp dim#2672] +[visit_id dim#2672] +[visit_exp i#18658] +[visit_id i#18658] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18665}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#18665}(M)] +[visit_exp i#18665] +[visit_id i#18665] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp i*{i <- `i*`}] +[scope_enter i] +[visit_exp i] +[visit_id i] not free +[visit_id i] not free +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] no dims +[visit_id i*] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2760, dim#2760, i#19037}((Jnn : Jnn <: lanetype), `%`_dim{i#19044}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#2760, dim#2760, i#19037}((Jnn : Jnn <: lanetype), `%`_dim{i#19044}(M))] +[visit_exp lanetype#2760] +[visit_id lanetype#2760] +[visit_exp dim#2760] +[visit_id dim#2760] +[visit_exp i#19037] +[visit_id i#19037] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#19044}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#19044}(M)] +[visit_exp i#19044] +[visit_id i#19044] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))] +[visit_exp lanetype#2684] +[visit_id lanetype#2684] +[visit_exp dim#2684] +[visit_id dim#2684] +[visit_exp i#18719] +[visit_id i#18719] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#18726}(M)] +[visit_exp i#18726] +[visit_id i#18726] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M)), v_2))] +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] no dims +[visit_id c_2*] +[visit_exp $lanes_(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M)), v_2)] +[visit_exp `%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))] +[visit_exp lanetype#2709] +[visit_id lanetype#2709] +[visit_exp dim#2709] +[visit_id dim#2709] +[visit_exp i#18805] +[visit_id i#18805] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#18812}(M)] +[visit_exp i#18812] +[visit_id i#18812] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp (c*{c <- `c*`} = c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx{i#18958}.0]*{i <- `i*`, i#18958 <- `i#18958*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx{i#18958}.0]*{i <- `i*`, i#18958 <- `i#18958*`}] +[scope_enter i] +[scope_enter i#18958] +[visit_exp c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx{i#18958}.0]] +[visit_exp c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] not free +[visit_id c_2*] no dims +[visit_exp i!`%`_laneidx{i#18958}.0] +[visit_exp i!`%`_laneidx{i#18958}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#18958] +[visit_id i#18958] not free +[visit_id i] not free +[visit_id i#18958] not free +[scope_exit i#18958] +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] not free +[visit_id i*] no dims +[visit_exp `i#18958*`] +[visit_id i#18958*] no dims +[visit_id i#18958*] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivshufflop_{lanetype#2672 : lanetype, dim#2672 : dim, i#18658 : nat, Jnn : Jnn, i#18665 : nat, M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2760 : lanetype, dim#2760 : dim, i#19037 : nat, i#19044 : nat, lanetype#2684 : lanetype, dim#2684 : dim, i#18719 : nat, i#18726 : nat, lanetype#2709 : lanetype, dim#2709 : dim, i#18805 : nat, i#18812 : nat, `i#18958*` : nat*, `c*` : lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))*}(`%X%`_shape{lanetype#2672, dim#2672, i#18658}((Jnn : Jnn <: lanetype), `%`_dim{i#18665}(M)), i*{i <- `i*`}, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2760, dim#2760, i#19037}((Jnn : Jnn <: lanetype), `%`_dim{i#19044}(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M)), v_2)) + -- if (c*{c <- `c*`} = c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx{i#18958}.0]*{i <- `i*`, i#18958 <- `i#18958*`}) +[check_dims] vec_ vectype vvunop +DecD vvunop_(vectype : vectype, vvunop : vvunop, vec_ : vec_(vectype)) : vec_(vectype)* +[visit_id vectype] not free +[visit_id vvunop] not free +[visit_id vec_] not free +[visit_exp vectype] +[visit_id vectype] not free +[visit_exp vectype] +[visit_id vectype] not free +[check_dims] vec_ vectype vvbinop +DecD vvbinop_(vectype : vectype, vvbinop : vvbinop, vec_ : vec_(vectype), vec_ : vec_(vectype)) : vec_(vectype)* +[visit_id vectype] not free +[visit_id vvbinop] not free +[visit_id vec_] not free +[visit_exp vectype] +[visit_id vectype] not free +[visit_id vec_] not free +[visit_exp vectype] +[visit_id vectype] not free +[visit_exp vectype] +[visit_id vectype] not free +[check_dims] vec_ vectype vvternop +DecD vvternop_(vectype : vectype, vvternop : vvternop, vec_ : vec_(vectype), vec_ : vec_(vectype), vec_ : vec_(vectype)) : vec_(vectype)* +[visit_id vectype] not free +[visit_id vvternop] not free +[visit_id vec_] not free +[visit_exp vectype] +[visit_id vectype] not free +[visit_id vec_] not free +[visit_exp vectype] +[visit_id vectype] not free +[visit_id vec_] not free +[visit_exp vectype] +[visit_id vectype] not free +[visit_exp vectype] +[visit_id vectype] not free +[check_dims] shape vec_ vunop_ +DecD vunop_(shape : shape, vunop_ : vunop_(shape), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +[visit_id shape] not free +[visit_id vunop_] not free +[visit_exp shape] +[visit_id shape] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] shape vbinop_ vec_ +DecD vbinop_(shape : shape, vbinop_ : vbinop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +[visit_id shape] not free +[visit_id vbinop_] not free +[visit_exp shape] +[visit_id shape] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] shape vec_ vternop_ +DecD vternop_(shape : shape, vternop_ : vternop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +[visit_id shape] not free +[visit_id vternop_] not free +[visit_exp shape] +[visit_id shape] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] shape vec_ vrelop_ +DecD vrelop_(shape : shape, vrelop_ : vrelop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id shape] not free +[visit_id vrelop_] not free +[visit_exp shape] +[visit_id shape] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] lane_ shape_1 shape_2 vcvtop__ +DecD lcvtop__(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2), lane_ : lane_($lanetype(shape_1))) : lane_($lanetype(shape_2))* +[visit_id shape_1] not free +[visit_id shape_2] not free +[visit_id vcvtop__] not free +[visit_exp shape_1] +[visit_id shape_1] not free +[visit_exp shape_2] +[visit_id shape_2] not free +[visit_id lane_] not free +[visit_exp $lanetype(shape_1)] +[visit_exp shape_1] +[visit_id shape_1] not free +[visit_exp $lanetype(shape_2)] +[visit_exp shape_2] +[visit_id shape_2] not free +[check_dims] shape_1 shape_2 vcvtop__ vec_ +DecD vcvtop__(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id shape_1] not free +[visit_id shape_2] not free +[visit_id vcvtop__] not free +[visit_exp shape_1] +[visit_id shape_1] not free +[visit_exp shape_2] +[visit_id shape_2] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] ishape u32 vec_ vshiftop_ +DecD vshiftop_(ishape : ishape, vshiftop_ : vshiftop_(ishape), vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) +[visit_id ishape] not free +[visit_id vshiftop_] not free +[visit_exp ishape] +[visit_id ishape] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id u32] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] ishape vec_ +DecD vbitmaskop_(ishape : ishape, vec_ : vec_(`V128`_Vnn)) : u32 +[visit_id ishape] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] bshape vec_ vswizzlop_ +DecD vswizzlop_(bshape : bshape, vswizzlop_ : vswizzlop_(bshape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id bshape] not free +[visit_id vswizzlop_] not free +[visit_exp bshape] +[visit_id bshape] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] _ bshape vec_ +DecD vshufflop_(bshape : bshape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id bshape] not free +[visit_id _] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] shape_1 shape_2 sx vec_ +DecD vnarrowop__(shape_1 : shape, shape_2 : shape, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id shape_1] not free +[visit_id shape_2] not free +[visit_id sx] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] ishape_1 ishape_2 vec_ vextunop__ +DecD vextunop__(ishape_1 : ishape, ishape_2 : ishape, vextunop__ : vextunop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id ishape_1] not free +[visit_id ishape_2] not free +[visit_id vextunop__] not free +[visit_exp ishape_1] +[visit_id ishape_1] not free +[visit_exp ishape_2] +[visit_id ishape_2] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] ishape_1 ishape_2 vec_ vextbinop__ +DecD vextbinop__(ishape_1 : ishape, ishape_2 : ishape, vextbinop__ : vextbinop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id ishape_1] not free +[visit_id ishape_2] not free +[visit_id vextbinop__] not free +[visit_exp ishape_1] +[visit_id ishape_1] not free +[visit_exp ishape_2] +[visit_id ishape_2] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] ishape_1 ishape_2 vec_ vextternop__ +DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextternop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id ishape_1] not free +[visit_id ishape_2] not free +[visit_id vextternop__] not free +[visit_exp ishape_1] +[visit_id ishape_1] not free +[visit_exp ishape_2] +[visit_id ishape_2] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] Vnn v +[visit_exp Vnn] +[visit_id Vnn] +[visit_exp `NOT`_vvunop] +[visit_exp ()] +[visit_exp v] +[visit_id v] +[visit_exp [$inot_($vsizenn(Vnn), v)]] +[visit_exp $inot_($vsizenn(Vnn), v)] +[visit_exp $vsizenn(Vnn)] +[visit_exp Vnn] +[visit_id Vnn] not free +[visit_exp v] +[visit_id v] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vvunop_{Vnn : Vnn, v : vec_(Vnn)}(Vnn, `NOT`_vvunop, v) = [$inot_($vsizenn(Vnn), v)] +[check_dims] Vnn v_1 v_2 +[visit_exp Vnn] +[visit_id Vnn] +[visit_exp `AND`_vvbinop] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp [$iand_($vsizenn(Vnn), v_1, v_2)]] +[visit_exp $iand_($vsizenn(Vnn), v_1, v_2)] +[visit_exp $vsizenn(Vnn)] +[visit_exp Vnn] +[visit_id Vnn] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `AND`_vvbinop, v_1, v_2) = [$iand_($vsizenn(Vnn), v_1, v_2)] +[check_dims] Vnn v_1 v_2 +[visit_exp Vnn] +[visit_id Vnn] +[visit_exp `ANDNOT`_vvbinop] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp [$iandnot_($vsizenn(Vnn), v_1, v_2)]] +[visit_exp $iandnot_($vsizenn(Vnn), v_1, v_2)] +[visit_exp $vsizenn(Vnn)] +[visit_exp Vnn] +[visit_id Vnn] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `ANDNOT`_vvbinop, v_1, v_2) = [$iandnot_($vsizenn(Vnn), v_1, v_2)] +[check_dims] Vnn v_1 v_2 +[visit_exp Vnn] +[visit_id Vnn] +[visit_exp `OR`_vvbinop] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp [$ior_($vsizenn(Vnn), v_1, v_2)]] +[visit_exp $ior_($vsizenn(Vnn), v_1, v_2)] +[visit_exp $vsizenn(Vnn)] +[visit_exp Vnn] +[visit_id Vnn] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `OR`_vvbinop, v_1, v_2) = [$ior_($vsizenn(Vnn), v_1, v_2)] +[check_dims] Vnn v_1 v_2 +[visit_exp Vnn] +[visit_id Vnn] +[visit_exp `XOR`_vvbinop] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp [$ixor_($vsizenn(Vnn), v_1, v_2)]] +[visit_exp $ixor_($vsizenn(Vnn), v_1, v_2)] +[visit_exp $vsizenn(Vnn)] +[visit_exp Vnn] +[visit_id Vnn] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `XOR`_vvbinop, v_1, v_2) = [$ixor_($vsizenn(Vnn), v_1, v_2)] +[check_dims] Vnn v_1 v_2 v_3 +[visit_exp Vnn] +[visit_id Vnn] +[visit_exp `BITSELECT`_vvternop] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp v_3] +[visit_id v_3] +[visit_exp [$ibitselect_($vsizenn(Vnn), v_1, v_2, v_3)]] +[visit_exp $ibitselect_($vsizenn(Vnn), v_1, v_2, v_3)] +[visit_exp $vsizenn(Vnn)] +[visit_exp Vnn] +[visit_id Vnn] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp v_3] +[visit_id v_3] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vvternop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn), v_3 : vec_(Vnn)}(Vnn, `BITSELECT`_vvternop, v_1, v_2, v_3) = [$ibitselect_($vsizenn(Vnn), v_1, v_2, v_3)] +[check_dims] Fnn M dim#2845 dim#2894 i#19491 i#19498 i#19593 i#19600 lanetype#2845 lanetype#2894 v +[visit_exp `%X%`_shape{lanetype#2845, dim#2845, i#19491}((Fnn : Fnn <: lanetype), `%`_dim{i#19498}(M))] +[visit_exp lanetype#2845] +[visit_id lanetype#2845] +[visit_exp dim#2845] +[visit_id dim#2845] +[visit_exp i#19491] +[visit_id i#19491] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19498}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#19498}(M)] +[visit_exp i#19498] +[visit_id i#19498] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[visit_exp v] +[visit_id v] +[visit_exp $fvunop_(`%X%`_shape{lanetype#2894, dim#2894, i#19593}((Fnn : Fnn <: lanetype), `%`_dim{i#19600}(M)), def $fabs_, v)] +[visit_exp `%X%`_shape{lanetype#2894, dim#2894, i#19593}((Fnn : Fnn <: lanetype), `%`_dim{i#19600}(M))] +[visit_exp lanetype#2894] +[visit_id lanetype#2894] +[visit_exp dim#2894] +[visit_id dim#2894] +[visit_exp i#19593] +[visit_id i#19593] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19600}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#19600}(M)] +[visit_exp i#19600] +[visit_id i#19600] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v] +[visit_id v] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vunop_{lanetype#2845 : lanetype, dim#2845 : dim, i#19491 : nat, Fnn : Fnn, i#19498 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#2894 : lanetype, dim#2894 : dim, i#19593 : nat, i#19600 : nat}(`%X%`_shape{lanetype#2845, dim#2845, i#19491}((Fnn : Fnn <: lanetype), `%`_dim{i#19498}(M)), `ABS`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#2894, dim#2894, i#19593}((Fnn : Fnn <: lanetype), `%`_dim{i#19600}(M)), def $fabs_, v) +[check_dims] Fnn M dim#2906 dim#2955 i#19615 i#19622 i#19717 i#19724 lanetype#2906 lanetype#2955 v +[visit_exp `%X%`_shape{lanetype#2906, dim#2906, i#19615}((Fnn : Fnn <: lanetype), `%`_dim{i#19622}(M))] +[visit_exp lanetype#2906] +[visit_id lanetype#2906] +[visit_exp dim#2906] +[visit_id dim#2906] +[visit_exp i#19615] +[visit_id i#19615] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19622}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#19622}(M)] +[visit_exp i#19622] +[visit_id i#19622] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[visit_exp v] +[visit_id v] +[visit_exp $fvunop_(`%X%`_shape{lanetype#2955, dim#2955, i#19717}((Fnn : Fnn <: lanetype), `%`_dim{i#19724}(M)), def $fneg_, v)] +[visit_exp `%X%`_shape{lanetype#2955, dim#2955, i#19717}((Fnn : Fnn <: lanetype), `%`_dim{i#19724}(M))] +[visit_exp lanetype#2955] +[visit_id lanetype#2955] +[visit_exp dim#2955] +[visit_id dim#2955] +[visit_exp i#19717] +[visit_id i#19717] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19724}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#19724}(M)] +[visit_exp i#19724] +[visit_id i#19724] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v] +[visit_id v] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vunop_{lanetype#2906 : lanetype, dim#2906 : dim, i#19615 : nat, Fnn : Fnn, i#19622 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#2955 : lanetype, dim#2955 : dim, i#19717 : nat, i#19724 : nat}(`%X%`_shape{lanetype#2906, dim#2906, i#19615}((Fnn : Fnn <: lanetype), `%`_dim{i#19622}(M)), `NEG`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#2955, dim#2955, i#19717}((Fnn : Fnn <: lanetype), `%`_dim{i#19724}(M)), def $fneg_, v) +[check_dims] Fnn M dim#2967 dim#3016 i#19739 i#19746 i#19841 i#19848 lanetype#2967 lanetype#3016 v +[visit_exp `%X%`_shape{lanetype#2967, dim#2967, i#19739}((Fnn : Fnn <: lanetype), `%`_dim{i#19746}(M))] +[visit_exp lanetype#2967] +[visit_id lanetype#2967] +[visit_exp dim#2967] +[visit_id dim#2967] +[visit_exp i#19739] +[visit_id i#19739] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19746}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#19746}(M)] +[visit_exp i#19746] +[visit_id i#19746] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `SQRT`_vunop_] +[visit_exp ()] +[visit_exp v] +[visit_id v] +[visit_exp $fvunop_(`%X%`_shape{lanetype#3016, dim#3016, i#19841}((Fnn : Fnn <: lanetype), `%`_dim{i#19848}(M)), def $fsqrt_, v)] +[visit_exp `%X%`_shape{lanetype#3016, dim#3016, i#19841}((Fnn : Fnn <: lanetype), `%`_dim{i#19848}(M))] +[visit_exp lanetype#3016] +[visit_id lanetype#3016] +[visit_exp dim#3016] +[visit_id dim#3016] +[visit_exp i#19841] +[visit_id i#19841] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19848}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#19848}(M)] +[visit_exp i#19848] +[visit_id i#19848] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v] +[visit_id v] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vunop_{lanetype#2967 : lanetype, dim#2967 : dim, i#19739 : nat, Fnn : Fnn, i#19746 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3016 : lanetype, dim#3016 : dim, i#19841 : nat, i#19848 : nat}(`%X%`_shape{lanetype#2967, dim#2967, i#19739}((Fnn : Fnn <: lanetype), `%`_dim{i#19746}(M)), `SQRT`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3016, dim#3016, i#19841}((Fnn : Fnn <: lanetype), `%`_dim{i#19848}(M)), def $fsqrt_, v) +[check_dims] Fnn M dim#3028 dim#3077 i#19863 i#19870 i#19965 i#19972 lanetype#3028 lanetype#3077 v +[visit_exp `%X%`_shape{lanetype#3028, dim#3028, i#19863}((Fnn : Fnn <: lanetype), `%`_dim{i#19870}(M))] +[visit_exp lanetype#3028] +[visit_id lanetype#3028] +[visit_exp dim#3028] +[visit_id dim#3028] +[visit_exp i#19863] +[visit_id i#19863] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19870}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#19870}(M)] +[visit_exp i#19870] +[visit_id i#19870] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `CEIL`_vunop_] +[visit_exp ()] +[visit_exp v] +[visit_id v] +[visit_exp $fvunop_(`%X%`_shape{lanetype#3077, dim#3077, i#19965}((Fnn : Fnn <: lanetype), `%`_dim{i#19972}(M)), def $fceil_, v)] +[visit_exp `%X%`_shape{lanetype#3077, dim#3077, i#19965}((Fnn : Fnn <: lanetype), `%`_dim{i#19972}(M))] +[visit_exp lanetype#3077] +[visit_id lanetype#3077] +[visit_exp dim#3077] +[visit_id dim#3077] +[visit_exp i#19965] +[visit_id i#19965] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19972}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#19972}(M)] +[visit_exp i#19972] +[visit_id i#19972] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v] +[visit_id v] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vunop_{lanetype#3028 : lanetype, dim#3028 : dim, i#19863 : nat, Fnn : Fnn, i#19870 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3077 : lanetype, dim#3077 : dim, i#19965 : nat, i#19972 : nat}(`%X%`_shape{lanetype#3028, dim#3028, i#19863}((Fnn : Fnn <: lanetype), `%`_dim{i#19870}(M)), `CEIL`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3077, dim#3077, i#19965}((Fnn : Fnn <: lanetype), `%`_dim{i#19972}(M)), def $fceil_, v) +[check_dims] Fnn M dim#3089 dim#3138 i#19987 i#19994 i#20089 i#20096 lanetype#3089 lanetype#3138 v +[visit_exp `%X%`_shape{lanetype#3089, dim#3089, i#19987}((Fnn : Fnn <: lanetype), `%`_dim{i#19994}(M))] +[visit_exp lanetype#3089] +[visit_id lanetype#3089] +[visit_exp dim#3089] +[visit_id dim#3089] +[visit_exp i#19987] +[visit_id i#19987] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19994}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#19994}(M)] +[visit_exp i#19994] +[visit_id i#19994] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `FLOOR`_vunop_] +[visit_exp ()] +[visit_exp v] +[visit_id v] +[visit_exp $fvunop_(`%X%`_shape{lanetype#3138, dim#3138, i#20089}((Fnn : Fnn <: lanetype), `%`_dim{i#20096}(M)), def $ffloor_, v)] +[visit_exp `%X%`_shape{lanetype#3138, dim#3138, i#20089}((Fnn : Fnn <: lanetype), `%`_dim{i#20096}(M))] +[visit_exp lanetype#3138] +[visit_id lanetype#3138] +[visit_exp dim#3138] +[visit_id dim#3138] +[visit_exp i#20089] +[visit_id i#20089] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#20096}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#20096}(M)] +[visit_exp i#20096] +[visit_id i#20096] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v] +[visit_id v] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vunop_{lanetype#3089 : lanetype, dim#3089 : dim, i#19987 : nat, Fnn : Fnn, i#19994 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3138 : lanetype, dim#3138 : dim, i#20089 : nat, i#20096 : nat}(`%X%`_shape{lanetype#3089, dim#3089, i#19987}((Fnn : Fnn <: lanetype), `%`_dim{i#19994}(M)), `FLOOR`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3138, dim#3138, i#20089}((Fnn : Fnn <: lanetype), `%`_dim{i#20096}(M)), def $ffloor_, v) +[check_dims] Fnn M dim#3150 dim#3199 i#20111 i#20118 i#20213 i#20220 lanetype#3150 lanetype#3199 v +[visit_exp `%X%`_shape{lanetype#3150, dim#3150, i#20111}((Fnn : Fnn <: lanetype), `%`_dim{i#20118}(M))] +[visit_exp lanetype#3150] +[visit_id lanetype#3150] +[visit_exp dim#3150] +[visit_id dim#3150] +[visit_exp i#20111] +[visit_id i#20111] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#20118}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#20118}(M)] +[visit_exp i#20118] +[visit_id i#20118] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `TRUNC`_vunop_] +[visit_exp ()] +[visit_exp v] +[visit_id v] +[visit_exp $fvunop_(`%X%`_shape{lanetype#3199, dim#3199, i#20213}((Fnn : Fnn <: lanetype), `%`_dim{i#20220}(M)), def $ftrunc_, v)] +[visit_exp `%X%`_shape{lanetype#3199, dim#3199, i#20213}((Fnn : Fnn <: lanetype), `%`_dim{i#20220}(M))] +[visit_exp lanetype#3199] +[visit_id lanetype#3199] +[visit_exp dim#3199] +[visit_id dim#3199] +[visit_exp i#20213] +[visit_id i#20213] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#20220}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#20220}(M)] +[visit_exp i#20220] +[visit_id i#20220] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v] +[visit_id v] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vunop_{lanetype#3150 : lanetype, dim#3150 : dim, i#20111 : nat, Fnn : Fnn, i#20118 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3199 : lanetype, dim#3199 : dim, i#20213 : nat, i#20220 : nat}(`%X%`_shape{lanetype#3150, dim#3150, i#20111}((Fnn : Fnn <: lanetype), `%`_dim{i#20118}(M)), `TRUNC`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3199, dim#3199, i#20213}((Fnn : Fnn <: lanetype), `%`_dim{i#20220}(M)), def $ftrunc_, v) +[check_dims] Fnn M dim#3211 dim#3260 i#20235 i#20242 i#20337 i#20344 lanetype#3211 lanetype#3260 v +[visit_exp `%X%`_shape{lanetype#3211, dim#3211, i#20235}((Fnn : Fnn <: lanetype), `%`_dim{i#20242}(M))] +[visit_exp lanetype#3211] +[visit_id lanetype#3211] +[visit_exp dim#3211] +[visit_id dim#3211] +[visit_exp i#20235] +[visit_id i#20235] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#20242}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#20242}(M)] +[visit_exp i#20242] +[visit_id i#20242] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `NEAREST`_vunop_] +[visit_exp ()] +[visit_exp v] +[visit_id v] +[visit_exp $fvunop_(`%X%`_shape{lanetype#3260, dim#3260, i#20337}((Fnn : Fnn <: lanetype), `%`_dim{i#20344}(M)), def $fnearest_, v)] +[visit_exp `%X%`_shape{lanetype#3260, dim#3260, i#20337}((Fnn : Fnn <: lanetype), `%`_dim{i#20344}(M))] +[visit_exp lanetype#3260] +[visit_id lanetype#3260] +[visit_exp dim#3260] +[visit_id dim#3260] +[visit_exp i#20337] +[visit_id i#20337] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#20344}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#20344}(M)] +[visit_exp i#20344] +[visit_id i#20344] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v] +[visit_id v] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vunop_{lanetype#3211 : lanetype, dim#3211 : dim, i#20235 : nat, Fnn : Fnn, i#20242 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3260 : lanetype, dim#3260 : dim, i#20337 : nat, i#20344 : nat}(`%X%`_shape{lanetype#3211, dim#3211, i#20235}((Fnn : Fnn <: lanetype), `%`_dim{i#20242}(M)), `NEAREST`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3260, dim#3260, i#20337}((Fnn : Fnn <: lanetype), `%`_dim{i#20344}(M)), def $fnearest_, v) +[check_dims] Jnn M dim#3272 dim#3308 i#20359 i#20366 i#20448 i#20455 lanetype#3272 lanetype#3308 v +[visit_exp `%X%`_shape{lanetype#3272, dim#3272, i#20359}((Jnn : Jnn <: lanetype), `%`_dim{i#20366}(M))] +[visit_exp lanetype#3272] +[visit_id lanetype#3272] +[visit_exp dim#3272] +[visit_id dim#3272] +[visit_exp i#20359] +[visit_id i#20359] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20366}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#20366}(M)] +[visit_exp i#20366] +[visit_id i#20366] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[visit_exp v] +[visit_id v] +[visit_exp $ivunop_(`%X%`_shape{lanetype#3308, dim#3308, i#20448}((Jnn : Jnn <: lanetype), `%`_dim{i#20455}(M)), def $iabs_, v)] +[visit_exp `%X%`_shape{lanetype#3308, dim#3308, i#20448}((Jnn : Jnn <: lanetype), `%`_dim{i#20455}(M))] +[visit_exp lanetype#3308] +[visit_id lanetype#3308] +[visit_exp dim#3308] +[visit_id dim#3308] +[visit_exp i#20448] +[visit_id i#20448] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20455}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#20455}(M)] +[visit_exp i#20455] +[visit_id i#20455] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v] +[visit_id v] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vunop_{lanetype#3272 : lanetype, dim#3272 : dim, i#20359 : nat, Jnn : Jnn, i#20366 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3308 : lanetype, dim#3308 : dim, i#20448 : nat, i#20455 : nat}(`%X%`_shape{lanetype#3272, dim#3272, i#20359}((Jnn : Jnn <: lanetype), `%`_dim{i#20366}(M)), `ABS`_vunop_, v) = $ivunop_(`%X%`_shape{lanetype#3308, dim#3308, i#20448}((Jnn : Jnn <: lanetype), `%`_dim{i#20455}(M)), def $iabs_, v) +[check_dims] Jnn M dim#3320 dim#3356 i#20470 i#20477 i#20559 i#20566 lanetype#3320 lanetype#3356 v +[visit_exp `%X%`_shape{lanetype#3320, dim#3320, i#20470}((Jnn : Jnn <: lanetype), `%`_dim{i#20477}(M))] +[visit_exp lanetype#3320] +[visit_id lanetype#3320] +[visit_exp dim#3320] +[visit_id dim#3320] +[visit_exp i#20470] +[visit_id i#20470] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20477}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#20477}(M)] +[visit_exp i#20477] +[visit_id i#20477] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[visit_exp v] +[visit_id v] +[visit_exp $ivunop_(`%X%`_shape{lanetype#3356, dim#3356, i#20559}((Jnn : Jnn <: lanetype), `%`_dim{i#20566}(M)), def $ineg_, v)] +[visit_exp `%X%`_shape{lanetype#3356, dim#3356, i#20559}((Jnn : Jnn <: lanetype), `%`_dim{i#20566}(M))] +[visit_exp lanetype#3356] +[visit_id lanetype#3356] +[visit_exp dim#3356] +[visit_id dim#3356] +[visit_exp i#20559] +[visit_id i#20559] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20566}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#20566}(M)] +[visit_exp i#20566] +[visit_id i#20566] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v] +[visit_id v] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vunop_{lanetype#3320 : lanetype, dim#3320 : dim, i#20470 : nat, Jnn : Jnn, i#20477 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3356 : lanetype, dim#3356 : dim, i#20559 : nat, i#20566 : nat}(`%X%`_shape{lanetype#3320, dim#3320, i#20470}((Jnn : Jnn <: lanetype), `%`_dim{i#20477}(M)), `NEG`_vunop_, v) = $ivunop_(`%X%`_shape{lanetype#3356, dim#3356, i#20559}((Jnn : Jnn <: lanetype), `%`_dim{i#20566}(M)), def $ineg_, v) +[check_dims] Jnn M dim#3368 dim#3404 i#20581 i#20588 i#20670 i#20677 lanetype#3368 lanetype#3404 v +[visit_exp `%X%`_shape{lanetype#3368, dim#3368, i#20581}((Jnn : Jnn <: lanetype), `%`_dim{i#20588}(M))] +[visit_exp lanetype#3368] +[visit_id lanetype#3368] +[visit_exp dim#3368] +[visit_id dim#3368] +[visit_exp i#20581] +[visit_id i#20581] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20588}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#20588}(M)] +[visit_exp i#20588] +[visit_id i#20588] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `POPCNT`_vunop_] +[visit_exp ()] +[visit_exp v] +[visit_id v] +[visit_exp $ivunop_(`%X%`_shape{lanetype#3404, dim#3404, i#20670}((Jnn : Jnn <: lanetype), `%`_dim{i#20677}(M)), def $ipopcnt_, v)] +[visit_exp `%X%`_shape{lanetype#3404, dim#3404, i#20670}((Jnn : Jnn <: lanetype), `%`_dim{i#20677}(M))] +[visit_exp lanetype#3404] +[visit_id lanetype#3404] +[visit_exp dim#3404] +[visit_id dim#3404] +[visit_exp i#20670] +[visit_id i#20670] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20677}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#20677}(M)] +[visit_exp i#20677] +[visit_id i#20677] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v] +[visit_id v] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vunop_{lanetype#3368 : lanetype, dim#3368 : dim, i#20581 : nat, Jnn : Jnn, i#20588 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3404 : lanetype, dim#3404 : dim, i#20670 : nat, i#20677 : nat}(`%X%`_shape{lanetype#3368, dim#3368, i#20581}((Jnn : Jnn <: lanetype), `%`_dim{i#20588}(M)), `POPCNT`_vunop_, v) = $ivunop_(`%X%`_shape{lanetype#3404, dim#3404, i#20670}((Jnn : Jnn <: lanetype), `%`_dim{i#20677}(M)), def $ipopcnt_, v) +[check_dims] Jnn M dim#3416 dim#3452 i#20692 i#20699 i#20813 i#20820 lanetype#3416 lanetype#3452 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#3416, dim#3416, i#20692}((Jnn : Jnn <: lanetype), `%`_dim{i#20699}(M))] +[visit_exp lanetype#3416] +[visit_id lanetype#3416] +[visit_exp dim#3416] +[visit_id dim#3416] +[visit_exp i#20692] +[visit_id i#20692] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20699}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#20699}(M)] +[visit_exp i#20699] +[visit_id i#20699] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivbinop_(`%X%`_shape{lanetype#3452, dim#3452, i#20813}((Jnn : Jnn <: lanetype), `%`_dim{i#20820}(M)), def $iadd_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#3452, dim#3452, i#20813}((Jnn : Jnn <: lanetype), `%`_dim{i#20820}(M))] +[visit_exp lanetype#3452] +[visit_id lanetype#3452] +[visit_exp dim#3452] +[visit_id dim#3452] +[visit_exp i#20813] +[visit_id i#20813] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20820}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#20820}(M)] +[visit_exp i#20820] +[visit_id i#20820] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#3416 : lanetype, dim#3416 : dim, i#20692 : nat, Jnn : Jnn, i#20699 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3452 : lanetype, dim#3452 : dim, i#20813 : nat, i#20820 : nat}(`%X%`_shape{lanetype#3416, dim#3416, i#20692}((Jnn : Jnn <: lanetype), `%`_dim{i#20699}(M)), `ADD`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape{lanetype#3452, dim#3452, i#20813}((Jnn : Jnn <: lanetype), `%`_dim{i#20820}(M)), def $iadd_, v_1, v_2) +[check_dims] Jnn M dim#3464 dim#3500 i#20845 i#20852 i#20966 i#20973 lanetype#3464 lanetype#3500 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#3464, dim#3464, i#20845}((Jnn : Jnn <: lanetype), `%`_dim{i#20852}(M))] +[visit_exp lanetype#3464] +[visit_id lanetype#3464] +[visit_exp dim#3464] +[visit_id dim#3464] +[visit_exp i#20845] +[visit_id i#20845] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20852}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#20852}(M)] +[visit_exp i#20852] +[visit_id i#20852] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivbinop_(`%X%`_shape{lanetype#3500, dim#3500, i#20966}((Jnn : Jnn <: lanetype), `%`_dim{i#20973}(M)), def $isub_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#3500, dim#3500, i#20966}((Jnn : Jnn <: lanetype), `%`_dim{i#20973}(M))] +[visit_exp lanetype#3500] +[visit_id lanetype#3500] +[visit_exp dim#3500] +[visit_id dim#3500] +[visit_exp i#20966] +[visit_id i#20966] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20973}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#20973}(M)] +[visit_exp i#20973] +[visit_id i#20973] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#3464 : lanetype, dim#3464 : dim, i#20845 : nat, Jnn : Jnn, i#20852 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3500 : lanetype, dim#3500 : dim, i#20966 : nat, i#20973 : nat}(`%X%`_shape{lanetype#3464, dim#3464, i#20845}((Jnn : Jnn <: lanetype), `%`_dim{i#20852}(M)), `SUB`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape{lanetype#3500, dim#3500, i#20966}((Jnn : Jnn <: lanetype), `%`_dim{i#20973}(M)), def $isub_, v_1, v_2) +[check_dims] Jnn M dim#3512 dim#3548 i#20998 i#21005 i#21119 i#21126 lanetype#3512 lanetype#3548 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#3512, dim#3512, i#20998}((Jnn : Jnn <: lanetype), `%`_dim{i#21005}(M))] +[visit_exp lanetype#3512] +[visit_id lanetype#3512] +[visit_exp dim#3512] +[visit_id dim#3512] +[visit_exp i#20998] +[visit_id i#20998] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21005}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#21005}(M)] +[visit_exp i#21005] +[visit_id i#21005] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `MUL`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivbinop_(`%X%`_shape{lanetype#3548, dim#3548, i#21119}((Jnn : Jnn <: lanetype), `%`_dim{i#21126}(M)), def $imul_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#3548, dim#3548, i#21119}((Jnn : Jnn <: lanetype), `%`_dim{i#21126}(M))] +[visit_exp lanetype#3548] +[visit_id lanetype#3548] +[visit_exp dim#3548] +[visit_id dim#3548] +[visit_exp i#21119] +[visit_id i#21119] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21126}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#21126}(M)] +[visit_exp i#21126] +[visit_id i#21126] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#3512 : lanetype, dim#3512 : dim, i#20998 : nat, Jnn : Jnn, i#21005 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3548 : lanetype, dim#3548 : dim, i#21119 : nat, i#21126 : nat}(`%X%`_shape{lanetype#3512, dim#3512, i#20998}((Jnn : Jnn <: lanetype), `%`_dim{i#21005}(M)), `MUL`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape{lanetype#3548, dim#3548, i#21119}((Jnn : Jnn <: lanetype), `%`_dim{i#21126}(M)), def $imul_, v_1, v_2) +[check_dims] Jnn M dim#3560 dim#3596 i#21151 i#21158 i#21272 i#21279 lanetype#3560 lanetype#3596 sx sx#96 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#3560, dim#3560, i#21151}((Jnn : Jnn <: lanetype), `%`_dim{i#21158}(M))] +[visit_exp lanetype#3560] +[visit_id lanetype#3560] +[visit_exp dim#3560] +[visit_id dim#3560] +[visit_exp i#21151] +[visit_id i#21151] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21158}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#21158}(M)] +[visit_exp i#21158] +[visit_id i#21158] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `ADD_SAT`_vbinop_{sx#96}(sx)] +[visit_exp sx#96] +[visit_id sx#96] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivbinopsx_(`%X%`_shape{lanetype#3596, dim#3596, i#21272}((Jnn : Jnn <: lanetype), `%`_dim{i#21279}(M)), def $iadd_sat_, sx, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#3596, dim#3596, i#21272}((Jnn : Jnn <: lanetype), `%`_dim{i#21279}(M))] +[visit_exp lanetype#3596] +[visit_id lanetype#3596] +[visit_exp dim#3596] +[visit_id dim#3596] +[visit_exp i#21272] +[visit_id i#21272] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21279}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#21279}(M)] +[visit_exp i#21279] +[visit_id i#21279] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#3560 : lanetype, dim#3560 : dim, i#21151 : nat, Jnn : Jnn, i#21158 : nat, M : M, sx#96 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3596 : lanetype, dim#3596 : dim, i#21272 : nat, i#21279 : nat}(`%X%`_shape{lanetype#3560, dim#3560, i#21151}((Jnn : Jnn <: lanetype), `%`_dim{i#21158}(M)), `ADD_SAT`_vbinop_{sx#96}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3596, dim#3596, i#21272}((Jnn : Jnn <: lanetype), `%`_dim{i#21279}(M)), def $iadd_sat_, sx, v_1, v_2) +[check_dims] Jnn M dim#3608 dim#3644 i#21304 i#21311 i#21425 i#21432 lanetype#3608 lanetype#3644 sx sx#98 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#3608, dim#3608, i#21304}((Jnn : Jnn <: lanetype), `%`_dim{i#21311}(M))] +[visit_exp lanetype#3608] +[visit_id lanetype#3608] +[visit_exp dim#3608] +[visit_id dim#3608] +[visit_exp i#21304] +[visit_id i#21304] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21311}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#21311}(M)] +[visit_exp i#21311] +[visit_id i#21311] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `SUB_SAT`_vbinop_{sx#98}(sx)] +[visit_exp sx#98] +[visit_id sx#98] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivbinopsx_(`%X%`_shape{lanetype#3644, dim#3644, i#21425}((Jnn : Jnn <: lanetype), `%`_dim{i#21432}(M)), def $isub_sat_, sx, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#3644, dim#3644, i#21425}((Jnn : Jnn <: lanetype), `%`_dim{i#21432}(M))] +[visit_exp lanetype#3644] +[visit_id lanetype#3644] +[visit_exp dim#3644] +[visit_id dim#3644] +[visit_exp i#21425] +[visit_id i#21425] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21432}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#21432}(M)] +[visit_exp i#21432] +[visit_id i#21432] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#3608 : lanetype, dim#3608 : dim, i#21304 : nat, Jnn : Jnn, i#21311 : nat, M : M, sx#98 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3644 : lanetype, dim#3644 : dim, i#21425 : nat, i#21432 : nat}(`%X%`_shape{lanetype#3608, dim#3608, i#21304}((Jnn : Jnn <: lanetype), `%`_dim{i#21311}(M)), `SUB_SAT`_vbinop_{sx#98}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3644, dim#3644, i#21425}((Jnn : Jnn <: lanetype), `%`_dim{i#21432}(M)), def $isub_sat_, sx, v_1, v_2) +[check_dims] Jnn M dim#3656 dim#3692 i#21457 i#21464 i#21578 i#21585 lanetype#3656 lanetype#3692 sx sx#100 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#3656, dim#3656, i#21457}((Jnn : Jnn <: lanetype), `%`_dim{i#21464}(M))] +[visit_exp lanetype#3656] +[visit_id lanetype#3656] +[visit_exp dim#3656] +[visit_id dim#3656] +[visit_exp i#21457] +[visit_id i#21457] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21464}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#21464}(M)] +[visit_exp i#21464] +[visit_id i#21464] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `MIN`_vbinop_{sx#100}(sx)] +[visit_exp sx#100] +[visit_id sx#100] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivbinopsx_(`%X%`_shape{lanetype#3692, dim#3692, i#21578}((Jnn : Jnn <: lanetype), `%`_dim{i#21585}(M)), def $imin_, sx, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#3692, dim#3692, i#21578}((Jnn : Jnn <: lanetype), `%`_dim{i#21585}(M))] +[visit_exp lanetype#3692] +[visit_id lanetype#3692] +[visit_exp dim#3692] +[visit_id dim#3692] +[visit_exp i#21578] +[visit_id i#21578] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21585}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#21585}(M)] +[visit_exp i#21585] +[visit_id i#21585] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#3656 : lanetype, dim#3656 : dim, i#21457 : nat, Jnn : Jnn, i#21464 : nat, M : M, sx#100 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3692 : lanetype, dim#3692 : dim, i#21578 : nat, i#21585 : nat}(`%X%`_shape{lanetype#3656, dim#3656, i#21457}((Jnn : Jnn <: lanetype), `%`_dim{i#21464}(M)), `MIN`_vbinop_{sx#100}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3692, dim#3692, i#21578}((Jnn : Jnn <: lanetype), `%`_dim{i#21585}(M)), def $imin_, sx, v_1, v_2) +[check_dims] Jnn M dim#3704 dim#3740 i#21610 i#21617 i#21731 i#21738 lanetype#3704 lanetype#3740 sx sx#102 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#3704, dim#3704, i#21610}((Jnn : Jnn <: lanetype), `%`_dim{i#21617}(M))] +[visit_exp lanetype#3704] +[visit_id lanetype#3704] +[visit_exp dim#3704] +[visit_id dim#3704] +[visit_exp i#21610] +[visit_id i#21610] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21617}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#21617}(M)] +[visit_exp i#21617] +[visit_id i#21617] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `MAX`_vbinop_{sx#102}(sx)] +[visit_exp sx#102] +[visit_id sx#102] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivbinopsx_(`%X%`_shape{lanetype#3740, dim#3740, i#21731}((Jnn : Jnn <: lanetype), `%`_dim{i#21738}(M)), def $imax_, sx, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#3740, dim#3740, i#21731}((Jnn : Jnn <: lanetype), `%`_dim{i#21738}(M))] +[visit_exp lanetype#3740] +[visit_id lanetype#3740] +[visit_exp dim#3740] +[visit_id dim#3740] +[visit_exp i#21731] +[visit_id i#21731] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21738}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#21738}(M)] +[visit_exp i#21738] +[visit_id i#21738] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#3704 : lanetype, dim#3704 : dim, i#21610 : nat, Jnn : Jnn, i#21617 : nat, M : M, sx#102 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3740 : lanetype, dim#3740 : dim, i#21731 : nat, i#21738 : nat}(`%X%`_shape{lanetype#3704, dim#3704, i#21610}((Jnn : Jnn <: lanetype), `%`_dim{i#21617}(M)), `MAX`_vbinop_{sx#102}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3740, dim#3740, i#21731}((Jnn : Jnn <: lanetype), `%`_dim{i#21738}(M)), def $imax_, sx, v_1, v_2) +[check_dims] Jnn M dim#3752 dim#3788 i#21763 i#21770 i#21884 i#21891 lanetype#3752 lanetype#3788 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#3752, dim#3752, i#21763}((Jnn : Jnn <: lanetype), `%`_dim{i#21770}(M))] +[visit_exp lanetype#3752] +[visit_id lanetype#3752] +[visit_exp dim#3752] +[visit_id dim#3752] +[visit_exp i#21763] +[visit_id i#21763] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21770}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#21770}(M)] +[visit_exp i#21770] +[visit_id i#21770] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `AVGRU`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivbinopsx_(`%X%`_shape{lanetype#3788, dim#3788, i#21884}((Jnn : Jnn <: lanetype), `%`_dim{i#21891}(M)), def $iavgr_, `U`_sx, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#3788, dim#3788, i#21884}((Jnn : Jnn <: lanetype), `%`_dim{i#21891}(M))] +[visit_exp lanetype#3788] +[visit_id lanetype#3788] +[visit_exp dim#3788] +[visit_id dim#3788] +[visit_exp i#21884] +[visit_id i#21884] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21891}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#21891}(M)] +[visit_exp i#21891] +[visit_id i#21891] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#3752 : lanetype, dim#3752 : dim, i#21763 : nat, Jnn : Jnn, i#21770 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3788 : lanetype, dim#3788 : dim, i#21884 : nat, i#21891 : nat}(`%X%`_shape{lanetype#3752, dim#3752, i#21763}((Jnn : Jnn <: lanetype), `%`_dim{i#21770}(M)), `AVGRU`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3788, dim#3788, i#21884}((Jnn : Jnn <: lanetype), `%`_dim{i#21891}(M)), def $iavgr_, `U`_sx, v_1, v_2) +[check_dims] Jnn M dim#3800 dim#3836 i#21916 i#21923 i#22037 i#22044 lanetype#3800 lanetype#3836 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#3800, dim#3800, i#21916}((Jnn : Jnn <: lanetype), `%`_dim{i#21923}(M))] +[visit_exp lanetype#3800] +[visit_id lanetype#3800] +[visit_exp dim#3800] +[visit_id dim#3800] +[visit_exp i#21916] +[visit_id i#21916] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21923}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#21923}(M)] +[visit_exp i#21923] +[visit_id i#21923] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `Q15MULR_SATS`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivbinopsx_(`%X%`_shape{lanetype#3836, dim#3836, i#22037}((Jnn : Jnn <: lanetype), `%`_dim{i#22044}(M)), def $iq15mulr_sat_, `S`_sx, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#3836, dim#3836, i#22037}((Jnn : Jnn <: lanetype), `%`_dim{i#22044}(M))] +[visit_exp lanetype#3836] +[visit_id lanetype#3836] +[visit_exp dim#3836] +[visit_id dim#3836] +[visit_exp i#22037] +[visit_id i#22037] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#22044}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#22044}(M)] +[visit_exp i#22044] +[visit_id i#22044] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#3800 : lanetype, dim#3800 : dim, i#21916 : nat, Jnn : Jnn, i#21923 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3836 : lanetype, dim#3836 : dim, i#22037 : nat, i#22044 : nat}(`%X%`_shape{lanetype#3800, dim#3800, i#21916}((Jnn : Jnn <: lanetype), `%`_dim{i#21923}(M)), `Q15MULR_SATS`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3836, dim#3836, i#22037}((Jnn : Jnn <: lanetype), `%`_dim{i#22044}(M)), def $iq15mulr_sat_, `S`_sx, v_1, v_2) +[check_dims] Jnn M dim#3848 dim#3884 i#22069 i#22076 i#22190 i#22197 lanetype#3848 lanetype#3884 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#3848, dim#3848, i#22069}((Jnn : Jnn <: lanetype), `%`_dim{i#22076}(M))] +[visit_exp lanetype#3848] +[visit_id lanetype#3848] +[visit_exp dim#3848] +[visit_id dim#3848] +[visit_exp i#22069] +[visit_id i#22069] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#22076}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#22076}(M)] +[visit_exp i#22076] +[visit_id i#22076] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `RELAXED_Q15MULRS`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivbinopsxnd_(`%X%`_shape{lanetype#3884, dim#3884, i#22190}((Jnn : Jnn <: lanetype), `%`_dim{i#22197}(M)), def $irelaxed_q15mulr_, `S`_sx, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#3884, dim#3884, i#22190}((Jnn : Jnn <: lanetype), `%`_dim{i#22197}(M))] +[visit_exp lanetype#3884] +[visit_id lanetype#3884] +[visit_exp dim#3884] +[visit_id dim#3884] +[visit_exp i#22190] +[visit_id i#22190] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#22197}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#22197}(M)] +[visit_exp i#22197] +[visit_id i#22197] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#3848 : lanetype, dim#3848 : dim, i#22069 : nat, Jnn : Jnn, i#22076 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3884 : lanetype, dim#3884 : dim, i#22190 : nat, i#22197 : nat}(`%X%`_shape{lanetype#3848, dim#3848, i#22069}((Jnn : Jnn <: lanetype), `%`_dim{i#22076}(M)), `RELAXED_Q15MULRS`_vbinop_, v_1, v_2) = $ivbinopsxnd_(`%X%`_shape{lanetype#3884, dim#3884, i#22190}((Jnn : Jnn <: lanetype), `%`_dim{i#22197}(M)), def $irelaxed_q15mulr_, `S`_sx, v_1, v_2) +[check_dims] Fnn M dim#3896 dim#3945 i#22222 i#22229 i#22356 i#22363 lanetype#3896 lanetype#3945 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#3896, dim#3896, i#22222}((Fnn : Fnn <: lanetype), `%`_dim{i#22229}(M))] +[visit_exp lanetype#3896] +[visit_id lanetype#3896] +[visit_exp dim#3896] +[visit_id dim#3896] +[visit_exp i#22222] +[visit_id i#22222] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22229}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#22229}(M)] +[visit_exp i#22229] +[visit_id i#22229] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvbinop_(`%X%`_shape{lanetype#3945, dim#3945, i#22356}((Fnn : Fnn <: lanetype), `%`_dim{i#22363}(M)), def $fadd_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#3945, dim#3945, i#22356}((Fnn : Fnn <: lanetype), `%`_dim{i#22363}(M))] +[visit_exp lanetype#3945] +[visit_id lanetype#3945] +[visit_exp dim#3945] +[visit_id dim#3945] +[visit_exp i#22356] +[visit_id i#22356] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22363}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#22363}(M)] +[visit_exp i#22363] +[visit_id i#22363] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#3896 : lanetype, dim#3896 : dim, i#22222 : nat, Fnn : Fnn, i#22229 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3945 : lanetype, dim#3945 : dim, i#22356 : nat, i#22363 : nat}(`%X%`_shape{lanetype#3896, dim#3896, i#22222}((Fnn : Fnn <: lanetype), `%`_dim{i#22229}(M)), `ADD`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#3945, dim#3945, i#22356}((Fnn : Fnn <: lanetype), `%`_dim{i#22363}(M)), def $fadd_, v_1, v_2) +[check_dims] Fnn M dim#3957 dim#4006 i#22388 i#22395 i#22522 i#22529 lanetype#3957 lanetype#4006 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#3957, dim#3957, i#22388}((Fnn : Fnn <: lanetype), `%`_dim{i#22395}(M))] +[visit_exp lanetype#3957] +[visit_id lanetype#3957] +[visit_exp dim#3957] +[visit_id dim#3957] +[visit_exp i#22388] +[visit_id i#22388] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22395}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#22395}(M)] +[visit_exp i#22395] +[visit_id i#22395] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvbinop_(`%X%`_shape{lanetype#4006, dim#4006, i#22522}((Fnn : Fnn <: lanetype), `%`_dim{i#22529}(M)), def $fsub_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4006, dim#4006, i#22522}((Fnn : Fnn <: lanetype), `%`_dim{i#22529}(M))] +[visit_exp lanetype#4006] +[visit_id lanetype#4006] +[visit_exp dim#4006] +[visit_id dim#4006] +[visit_exp i#22522] +[visit_id i#22522] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22529}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#22529}(M)] +[visit_exp i#22529] +[visit_id i#22529] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#3957 : lanetype, dim#3957 : dim, i#22388 : nat, Fnn : Fnn, i#22395 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4006 : lanetype, dim#4006 : dim, i#22522 : nat, i#22529 : nat}(`%X%`_shape{lanetype#3957, dim#3957, i#22388}((Fnn : Fnn <: lanetype), `%`_dim{i#22395}(M)), `SUB`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4006, dim#4006, i#22522}((Fnn : Fnn <: lanetype), `%`_dim{i#22529}(M)), def $fsub_, v_1, v_2) +[check_dims] Fnn M dim#4018 dim#4067 i#22554 i#22561 i#22688 i#22695 lanetype#4018 lanetype#4067 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4018, dim#4018, i#22554}((Fnn : Fnn <: lanetype), `%`_dim{i#22561}(M))] +[visit_exp lanetype#4018] +[visit_id lanetype#4018] +[visit_exp dim#4018] +[visit_id dim#4018] +[visit_exp i#22554] +[visit_id i#22554] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22561}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#22561}(M)] +[visit_exp i#22561] +[visit_id i#22561] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `MUL`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvbinop_(`%X%`_shape{lanetype#4067, dim#4067, i#22688}((Fnn : Fnn <: lanetype), `%`_dim{i#22695}(M)), def $fmul_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4067, dim#4067, i#22688}((Fnn : Fnn <: lanetype), `%`_dim{i#22695}(M))] +[visit_exp lanetype#4067] +[visit_id lanetype#4067] +[visit_exp dim#4067] +[visit_id dim#4067] +[visit_exp i#22688] +[visit_id i#22688] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22695}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#22695}(M)] +[visit_exp i#22695] +[visit_id i#22695] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#4018 : lanetype, dim#4018 : dim, i#22554 : nat, Fnn : Fnn, i#22561 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4067 : lanetype, dim#4067 : dim, i#22688 : nat, i#22695 : nat}(`%X%`_shape{lanetype#4018, dim#4018, i#22554}((Fnn : Fnn <: lanetype), `%`_dim{i#22561}(M)), `MUL`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4067, dim#4067, i#22688}((Fnn : Fnn <: lanetype), `%`_dim{i#22695}(M)), def $fmul_, v_1, v_2) +[check_dims] Fnn M dim#4079 dim#4128 i#22720 i#22727 i#22854 i#22861 lanetype#4079 lanetype#4128 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4079, dim#4079, i#22720}((Fnn : Fnn <: lanetype), `%`_dim{i#22727}(M))] +[visit_exp lanetype#4079] +[visit_id lanetype#4079] +[visit_exp dim#4079] +[visit_id dim#4079] +[visit_exp i#22720] +[visit_id i#22720] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22727}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#22727}(M)] +[visit_exp i#22727] +[visit_id i#22727] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `DIV`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvbinop_(`%X%`_shape{lanetype#4128, dim#4128, i#22854}((Fnn : Fnn <: lanetype), `%`_dim{i#22861}(M)), def $fdiv_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4128, dim#4128, i#22854}((Fnn : Fnn <: lanetype), `%`_dim{i#22861}(M))] +[visit_exp lanetype#4128] +[visit_id lanetype#4128] +[visit_exp dim#4128] +[visit_id dim#4128] +[visit_exp i#22854] +[visit_id i#22854] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22861}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#22861}(M)] +[visit_exp i#22861] +[visit_id i#22861] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#4079 : lanetype, dim#4079 : dim, i#22720 : nat, Fnn : Fnn, i#22727 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4128 : lanetype, dim#4128 : dim, i#22854 : nat, i#22861 : nat}(`%X%`_shape{lanetype#4079, dim#4079, i#22720}((Fnn : Fnn <: lanetype), `%`_dim{i#22727}(M)), `DIV`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4128, dim#4128, i#22854}((Fnn : Fnn <: lanetype), `%`_dim{i#22861}(M)), def $fdiv_, v_1, v_2) +[check_dims] Fnn M dim#4140 dim#4189 i#22886 i#22893 i#23020 i#23027 lanetype#4140 lanetype#4189 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4140, dim#4140, i#22886}((Fnn : Fnn <: lanetype), `%`_dim{i#22893}(M))] +[visit_exp lanetype#4140] +[visit_id lanetype#4140] +[visit_exp dim#4140] +[visit_id dim#4140] +[visit_exp i#22886] +[visit_id i#22886] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22893}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#22893}(M)] +[visit_exp i#22893] +[visit_id i#22893] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `MIN`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvbinop_(`%X%`_shape{lanetype#4189, dim#4189, i#23020}((Fnn : Fnn <: lanetype), `%`_dim{i#23027}(M)), def $fmin_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4189, dim#4189, i#23020}((Fnn : Fnn <: lanetype), `%`_dim{i#23027}(M))] +[visit_exp lanetype#4189] +[visit_id lanetype#4189] +[visit_exp dim#4189] +[visit_id dim#4189] +[visit_exp i#23020] +[visit_id i#23020] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23027}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#23027}(M)] +[visit_exp i#23027] +[visit_id i#23027] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#4140 : lanetype, dim#4140 : dim, i#22886 : nat, Fnn : Fnn, i#22893 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4189 : lanetype, dim#4189 : dim, i#23020 : nat, i#23027 : nat}(`%X%`_shape{lanetype#4140, dim#4140, i#22886}((Fnn : Fnn <: lanetype), `%`_dim{i#22893}(M)), `MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4189, dim#4189, i#23020}((Fnn : Fnn <: lanetype), `%`_dim{i#23027}(M)), def $fmin_, v_1, v_2) +[check_dims] Fnn M dim#4201 dim#4250 i#23052 i#23059 i#23186 i#23193 lanetype#4201 lanetype#4250 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4201, dim#4201, i#23052}((Fnn : Fnn <: lanetype), `%`_dim{i#23059}(M))] +[visit_exp lanetype#4201] +[visit_id lanetype#4201] +[visit_exp dim#4201] +[visit_id dim#4201] +[visit_exp i#23052] +[visit_id i#23052] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23059}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#23059}(M)] +[visit_exp i#23059] +[visit_id i#23059] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `MAX`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvbinop_(`%X%`_shape{lanetype#4250, dim#4250, i#23186}((Fnn : Fnn <: lanetype), `%`_dim{i#23193}(M)), def $fmax_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4250, dim#4250, i#23186}((Fnn : Fnn <: lanetype), `%`_dim{i#23193}(M))] +[visit_exp lanetype#4250] +[visit_id lanetype#4250] +[visit_exp dim#4250] +[visit_id dim#4250] +[visit_exp i#23186] +[visit_id i#23186] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23193}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#23193}(M)] +[visit_exp i#23193] +[visit_id i#23193] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#4201 : lanetype, dim#4201 : dim, i#23052 : nat, Fnn : Fnn, i#23059 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4250 : lanetype, dim#4250 : dim, i#23186 : nat, i#23193 : nat}(`%X%`_shape{lanetype#4201, dim#4201, i#23052}((Fnn : Fnn <: lanetype), `%`_dim{i#23059}(M)), `MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4250, dim#4250, i#23186}((Fnn : Fnn <: lanetype), `%`_dim{i#23193}(M)), def $fmax_, v_1, v_2) +[check_dims] Fnn M dim#4262 dim#4311 i#23218 i#23225 i#23352 i#23359 lanetype#4262 lanetype#4311 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4262, dim#4262, i#23218}((Fnn : Fnn <: lanetype), `%`_dim{i#23225}(M))] +[visit_exp lanetype#4262] +[visit_id lanetype#4262] +[visit_exp dim#4262] +[visit_id dim#4262] +[visit_exp i#23218] +[visit_id i#23218] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23225}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#23225}(M)] +[visit_exp i#23225] +[visit_id i#23225] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `PMIN`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvbinop_(`%X%`_shape{lanetype#4311, dim#4311, i#23352}((Fnn : Fnn <: lanetype), `%`_dim{i#23359}(M)), def $fpmin_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4311, dim#4311, i#23352}((Fnn : Fnn <: lanetype), `%`_dim{i#23359}(M))] +[visit_exp lanetype#4311] +[visit_id lanetype#4311] +[visit_exp dim#4311] +[visit_id dim#4311] +[visit_exp i#23352] +[visit_id i#23352] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23359}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#23359}(M)] +[visit_exp i#23359] +[visit_id i#23359] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#4262 : lanetype, dim#4262 : dim, i#23218 : nat, Fnn : Fnn, i#23225 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4311 : lanetype, dim#4311 : dim, i#23352 : nat, i#23359 : nat}(`%X%`_shape{lanetype#4262, dim#4262, i#23218}((Fnn : Fnn <: lanetype), `%`_dim{i#23225}(M)), `PMIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4311, dim#4311, i#23352}((Fnn : Fnn <: lanetype), `%`_dim{i#23359}(M)), def $fpmin_, v_1, v_2) +[check_dims] Fnn M dim#4323 dim#4372 i#23384 i#23391 i#23518 i#23525 lanetype#4323 lanetype#4372 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4323, dim#4323, i#23384}((Fnn : Fnn <: lanetype), `%`_dim{i#23391}(M))] +[visit_exp lanetype#4323] +[visit_id lanetype#4323] +[visit_exp dim#4323] +[visit_id dim#4323] +[visit_exp i#23384] +[visit_id i#23384] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23391}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#23391}(M)] +[visit_exp i#23391] +[visit_id i#23391] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `PMAX`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvbinop_(`%X%`_shape{lanetype#4372, dim#4372, i#23518}((Fnn : Fnn <: lanetype), `%`_dim{i#23525}(M)), def $fpmax_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4372, dim#4372, i#23518}((Fnn : Fnn <: lanetype), `%`_dim{i#23525}(M))] +[visit_exp lanetype#4372] +[visit_id lanetype#4372] +[visit_exp dim#4372] +[visit_id dim#4372] +[visit_exp i#23518] +[visit_id i#23518] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23525}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#23525}(M)] +[visit_exp i#23525] +[visit_id i#23525] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#4323 : lanetype, dim#4323 : dim, i#23384 : nat, Fnn : Fnn, i#23391 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4372 : lanetype, dim#4372 : dim, i#23518 : nat, i#23525 : nat}(`%X%`_shape{lanetype#4323, dim#4323, i#23384}((Fnn : Fnn <: lanetype), `%`_dim{i#23391}(M)), `PMAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4372, dim#4372, i#23518}((Fnn : Fnn <: lanetype), `%`_dim{i#23525}(M)), def $fpmax_, v_1, v_2) +[check_dims] Fnn M dim#4384 dim#4433 i#23550 i#23557 i#23684 i#23691 lanetype#4384 lanetype#4433 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4384, dim#4384, i#23550}((Fnn : Fnn <: lanetype), `%`_dim{i#23557}(M))] +[visit_exp lanetype#4384] +[visit_id lanetype#4384] +[visit_exp dim#4384] +[visit_id dim#4384] +[visit_exp i#23550] +[visit_id i#23550] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23557}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#23557}(M)] +[visit_exp i#23557] +[visit_id i#23557] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `RELAXED_MIN`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvbinop_(`%X%`_shape{lanetype#4433, dim#4433, i#23684}((Fnn : Fnn <: lanetype), `%`_dim{i#23691}(M)), def $frelaxed_min_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4433, dim#4433, i#23684}((Fnn : Fnn <: lanetype), `%`_dim{i#23691}(M))] +[visit_exp lanetype#4433] +[visit_id lanetype#4433] +[visit_exp dim#4433] +[visit_id dim#4433] +[visit_exp i#23684] +[visit_id i#23684] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23691}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#23691}(M)] +[visit_exp i#23691] +[visit_id i#23691] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#4384 : lanetype, dim#4384 : dim, i#23550 : nat, Fnn : Fnn, i#23557 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4433 : lanetype, dim#4433 : dim, i#23684 : nat, i#23691 : nat}(`%X%`_shape{lanetype#4384, dim#4384, i#23550}((Fnn : Fnn <: lanetype), `%`_dim{i#23557}(M)), `RELAXED_MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4433, dim#4433, i#23684}((Fnn : Fnn <: lanetype), `%`_dim{i#23691}(M)), def $frelaxed_min_, v_1, v_2) +[check_dims] Fnn M dim#4445 dim#4494 i#23716 i#23723 i#23850 i#23857 lanetype#4445 lanetype#4494 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4445, dim#4445, i#23716}((Fnn : Fnn <: lanetype), `%`_dim{i#23723}(M))] +[visit_exp lanetype#4445] +[visit_id lanetype#4445] +[visit_exp dim#4445] +[visit_id dim#4445] +[visit_exp i#23716] +[visit_id i#23716] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23723}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#23723}(M)] +[visit_exp i#23723] +[visit_id i#23723] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `RELAXED_MAX`_vbinop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvbinop_(`%X%`_shape{lanetype#4494, dim#4494, i#23850}((Fnn : Fnn <: lanetype), `%`_dim{i#23857}(M)), def $frelaxed_max_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4494, dim#4494, i#23850}((Fnn : Fnn <: lanetype), `%`_dim{i#23857}(M))] +[visit_exp lanetype#4494] +[visit_id lanetype#4494] +[visit_exp dim#4494] +[visit_id dim#4494] +[visit_exp i#23850] +[visit_id i#23850] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23857}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#23857}(M)] +[visit_exp i#23857] +[visit_id i#23857] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbinop_{lanetype#4445 : lanetype, dim#4445 : dim, i#23716 : nat, Fnn : Fnn, i#23723 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4494 : lanetype, dim#4494 : dim, i#23850 : nat, i#23857 : nat}(`%X%`_shape{lanetype#4445, dim#4445, i#23716}((Fnn : Fnn <: lanetype), `%`_dim{i#23723}(M)), `RELAXED_MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4494, dim#4494, i#23850}((Fnn : Fnn <: lanetype), `%`_dim{i#23857}(M)), def $frelaxed_max_, v_1, v_2) +[check_dims] Jnn M dim#4506 dim#4542 i#23882 i#23889 i#24035 i#24042 lanetype#4506 lanetype#4542 v_1 v_2 v_3 +[visit_exp `%X%`_shape{lanetype#4506, dim#4506, i#23882}((Jnn : Jnn <: lanetype), `%`_dim{i#23889}(M))] +[visit_exp lanetype#4506] +[visit_id lanetype#4506] +[visit_exp dim#4506] +[visit_id dim#4506] +[visit_exp i#23882] +[visit_id i#23882] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#23889}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#23889}(M)] +[visit_exp i#23889] +[visit_id i#23889] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `RELAXED_LANESELECT`_vternop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp v_3] +[visit_id v_3] +[visit_exp $ivternopnd_(`%X%`_shape{lanetype#4542, dim#4542, i#24035}((Jnn : Jnn <: lanetype), `%`_dim{i#24042}(M)), def $irelaxed_laneselect_, v_1, v_2, v_3)] +[visit_exp `%X%`_shape{lanetype#4542, dim#4542, i#24035}((Jnn : Jnn <: lanetype), `%`_dim{i#24042}(M))] +[visit_exp lanetype#4542] +[visit_id lanetype#4542] +[visit_exp dim#4542] +[visit_id dim#4542] +[visit_exp i#24035] +[visit_id i#24035] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24042}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#24042}(M)] +[visit_exp i#24042] +[visit_id i#24042] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp v_3] +[visit_id v_3] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vternop_{lanetype#4506 : lanetype, dim#4506 : dim, i#23882 : nat, Jnn : Jnn, i#23889 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), lanetype#4542 : lanetype, dim#4542 : dim, i#24035 : nat, i#24042 : nat}(`%X%`_shape{lanetype#4506, dim#4506, i#23882}((Jnn : Jnn <: lanetype), `%`_dim{i#23889}(M)), `RELAXED_LANESELECT`_vternop_, v_1, v_2, v_3) = $ivternopnd_(`%X%`_shape{lanetype#4542, dim#4542, i#24035}((Jnn : Jnn <: lanetype), `%`_dim{i#24042}(M)), def $irelaxed_laneselect_, v_1, v_2, v_3) +[check_dims] Fnn M dim#4554 dim#4603 i#24077 i#24084 i#24243 i#24250 lanetype#4554 lanetype#4603 v_1 v_2 v_3 +[visit_exp `%X%`_shape{lanetype#4554, dim#4554, i#24077}((Fnn : Fnn <: lanetype), `%`_dim{i#24084}(M))] +[visit_exp lanetype#4554] +[visit_id lanetype#4554] +[visit_exp dim#4554] +[visit_id dim#4554] +[visit_exp i#24077] +[visit_id i#24077] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#24084}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#24084}(M)] +[visit_exp i#24084] +[visit_id i#24084] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `RELAXED_MADD`_vternop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp v_3] +[visit_id v_3] +[visit_exp $fvternop_(`%X%`_shape{lanetype#4603, dim#4603, i#24243}((Fnn : Fnn <: lanetype), `%`_dim{i#24250}(M)), def $frelaxed_madd_, v_1, v_2, v_3)] +[visit_exp `%X%`_shape{lanetype#4603, dim#4603, i#24243}((Fnn : Fnn <: lanetype), `%`_dim{i#24250}(M))] +[visit_exp lanetype#4603] +[visit_id lanetype#4603] +[visit_exp dim#4603] +[visit_id dim#4603] +[visit_exp i#24243] +[visit_id i#24243] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#24250}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#24250}(M)] +[visit_exp i#24250] +[visit_id i#24250] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp v_3] +[visit_id v_3] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vternop_{lanetype#4554 : lanetype, dim#4554 : dim, i#24077 : nat, Fnn : Fnn, i#24084 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), lanetype#4603 : lanetype, dim#4603 : dim, i#24243 : nat, i#24250 : nat}(`%X%`_shape{lanetype#4554, dim#4554, i#24077}((Fnn : Fnn <: lanetype), `%`_dim{i#24084}(M)), `RELAXED_MADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape{lanetype#4603, dim#4603, i#24243}((Fnn : Fnn <: lanetype), `%`_dim{i#24250}(M)), def $frelaxed_madd_, v_1, v_2, v_3) +[check_dims] Fnn M dim#4615 dim#4664 i#24285 i#24292 i#24451 i#24458 lanetype#4615 lanetype#4664 v_1 v_2 v_3 +[visit_exp `%X%`_shape{lanetype#4615, dim#4615, i#24285}((Fnn : Fnn <: lanetype), `%`_dim{i#24292}(M))] +[visit_exp lanetype#4615] +[visit_id lanetype#4615] +[visit_exp dim#4615] +[visit_id dim#4615] +[visit_exp i#24285] +[visit_id i#24285] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#24292}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#24292}(M)] +[visit_exp i#24292] +[visit_id i#24292] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `RELAXED_NMADD`_vternop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp v_3] +[visit_id v_3] +[visit_exp $fvternop_(`%X%`_shape{lanetype#4664, dim#4664, i#24451}((Fnn : Fnn <: lanetype), `%`_dim{i#24458}(M)), def $frelaxed_nmadd_, v_1, v_2, v_3)] +[visit_exp `%X%`_shape{lanetype#4664, dim#4664, i#24451}((Fnn : Fnn <: lanetype), `%`_dim{i#24458}(M))] +[visit_exp lanetype#4664] +[visit_id lanetype#4664] +[visit_exp dim#4664] +[visit_id dim#4664] +[visit_exp i#24451] +[visit_id i#24451] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#24458}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#24458}(M)] +[visit_exp i#24458] +[visit_id i#24458] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp v_3] +[visit_id v_3] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vternop_{lanetype#4615 : lanetype, dim#4615 : dim, i#24285 : nat, Fnn : Fnn, i#24292 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), lanetype#4664 : lanetype, dim#4664 : dim, i#24451 : nat, i#24458 : nat}(`%X%`_shape{lanetype#4615, dim#4615, i#24285}((Fnn : Fnn <: lanetype), `%`_dim{i#24292}(M)), `RELAXED_NMADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape{lanetype#4664, dim#4664, i#24451}((Fnn : Fnn <: lanetype), `%`_dim{i#24458}(M)), def $frelaxed_nmadd_, v_1, v_2, v_3) +[check_dims] Jnn M dim#4676 dim#4688 i#24493 i#24500 i#24539 i#24546 lanetype#4676 lanetype#4688 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4676, dim#4676, i#24493}((Jnn : Jnn <: lanetype), `%`_dim{i#24500}(M))] +[visit_exp lanetype#4676] +[visit_id lanetype#4676] +[visit_exp dim#4676] +[visit_id dim#4676] +[visit_exp i#24493] +[visit_id i#24493] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24500}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#24500}(M)] +[visit_exp i#24500] +[visit_id i#24500] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivrelop_(`%X%`_shape{lanetype#4688, dim#4688, i#24539}((Jnn : Jnn <: lanetype), `%`_dim{i#24546}(M)), def $ieq_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4688, dim#4688, i#24539}((Jnn : Jnn <: lanetype), `%`_dim{i#24546}(M))] +[visit_exp lanetype#4688] +[visit_id lanetype#4688] +[visit_exp dim#4688] +[visit_id dim#4688] +[visit_exp i#24539] +[visit_id i#24539] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24546}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#24546}(M)] +[visit_exp i#24546] +[visit_id i#24546] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vrelop_{lanetype#4676 : lanetype, dim#4676 : dim, i#24493 : nat, Jnn : Jnn, i#24500 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4688 : lanetype, dim#4688 : dim, i#24539 : nat, i#24546 : nat}(`%X%`_shape{lanetype#4676, dim#4676, i#24493}((Jnn : Jnn <: lanetype), `%`_dim{i#24500}(M)), `EQ`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape{lanetype#4688, dim#4688, i#24539}((Jnn : Jnn <: lanetype), `%`_dim{i#24546}(M)), def $ieq_, v_1, v_2) +[check_dims] Jnn M dim#4700 dim#4712 i#24571 i#24578 i#24617 i#24624 lanetype#4700 lanetype#4712 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4700, dim#4700, i#24571}((Jnn : Jnn <: lanetype), `%`_dim{i#24578}(M))] +[visit_exp lanetype#4700] +[visit_id lanetype#4700] +[visit_exp dim#4700] +[visit_id dim#4700] +[visit_exp i#24571] +[visit_id i#24571] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24578}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#24578}(M)] +[visit_exp i#24578] +[visit_id i#24578] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivrelop_(`%X%`_shape{lanetype#4712, dim#4712, i#24617}((Jnn : Jnn <: lanetype), `%`_dim{i#24624}(M)), def $ine_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4712, dim#4712, i#24617}((Jnn : Jnn <: lanetype), `%`_dim{i#24624}(M))] +[visit_exp lanetype#4712] +[visit_id lanetype#4712] +[visit_exp dim#4712] +[visit_id dim#4712] +[visit_exp i#24617] +[visit_id i#24617] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24624}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#24624}(M)] +[visit_exp i#24624] +[visit_id i#24624] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vrelop_{lanetype#4700 : lanetype, dim#4700 : dim, i#24571 : nat, Jnn : Jnn, i#24578 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4712 : lanetype, dim#4712 : dim, i#24617 : nat, i#24624 : nat}(`%X%`_shape{lanetype#4700, dim#4700, i#24571}((Jnn : Jnn <: lanetype), `%`_dim{i#24578}(M)), `NE`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape{lanetype#4712, dim#4712, i#24617}((Jnn : Jnn <: lanetype), `%`_dim{i#24624}(M)), def $ine_, v_1, v_2) +[check_dims] Jnn M dim#4724 dim#4736 i#24649 i#24656 i#24695 i#24702 lanetype#4724 lanetype#4736 sx sx#104 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4724, dim#4724, i#24649}((Jnn : Jnn <: lanetype), `%`_dim{i#24656}(M))] +[visit_exp lanetype#4724] +[visit_id lanetype#4724] +[visit_exp dim#4724] +[visit_id dim#4724] +[visit_exp i#24649] +[visit_id i#24649] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24656}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#24656}(M)] +[visit_exp i#24656] +[visit_id i#24656] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `LT`_vrelop_{sx#104}(sx)] +[visit_exp sx#104] +[visit_id sx#104] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivrelopsx_(`%X%`_shape{lanetype#4736, dim#4736, i#24695}((Jnn : Jnn <: lanetype), `%`_dim{i#24702}(M)), def $ilt_, sx, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4736, dim#4736, i#24695}((Jnn : Jnn <: lanetype), `%`_dim{i#24702}(M))] +[visit_exp lanetype#4736] +[visit_id lanetype#4736] +[visit_exp dim#4736] +[visit_id dim#4736] +[visit_exp i#24695] +[visit_id i#24695] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24702}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#24702}(M)] +[visit_exp i#24702] +[visit_id i#24702] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vrelop_{lanetype#4724 : lanetype, dim#4724 : dim, i#24649 : nat, Jnn : Jnn, i#24656 : nat, M : M, sx#104 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4736 : lanetype, dim#4736 : dim, i#24695 : nat, i#24702 : nat}(`%X%`_shape{lanetype#4724, dim#4724, i#24649}((Jnn : Jnn <: lanetype), `%`_dim{i#24656}(M)), `LT`_vrelop_{sx#104}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4736, dim#4736, i#24695}((Jnn : Jnn <: lanetype), `%`_dim{i#24702}(M)), def $ilt_, sx, v_1, v_2) +[check_dims] Jnn M dim#4748 dim#4760 i#24727 i#24734 i#24773 i#24780 lanetype#4748 lanetype#4760 sx sx#106 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4748, dim#4748, i#24727}((Jnn : Jnn <: lanetype), `%`_dim{i#24734}(M))] +[visit_exp lanetype#4748] +[visit_id lanetype#4748] +[visit_exp dim#4748] +[visit_id dim#4748] +[visit_exp i#24727] +[visit_id i#24727] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24734}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#24734}(M)] +[visit_exp i#24734] +[visit_id i#24734] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `GT`_vrelop_{sx#106}(sx)] +[visit_exp sx#106] +[visit_id sx#106] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivrelopsx_(`%X%`_shape{lanetype#4760, dim#4760, i#24773}((Jnn : Jnn <: lanetype), `%`_dim{i#24780}(M)), def $igt_, sx, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4760, dim#4760, i#24773}((Jnn : Jnn <: lanetype), `%`_dim{i#24780}(M))] +[visit_exp lanetype#4760] +[visit_id lanetype#4760] +[visit_exp dim#4760] +[visit_id dim#4760] +[visit_exp i#24773] +[visit_id i#24773] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24780}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#24780}(M)] +[visit_exp i#24780] +[visit_id i#24780] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vrelop_{lanetype#4748 : lanetype, dim#4748 : dim, i#24727 : nat, Jnn : Jnn, i#24734 : nat, M : M, sx#106 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4760 : lanetype, dim#4760 : dim, i#24773 : nat, i#24780 : nat}(`%X%`_shape{lanetype#4748, dim#4748, i#24727}((Jnn : Jnn <: lanetype), `%`_dim{i#24734}(M)), `GT`_vrelop_{sx#106}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4760, dim#4760, i#24773}((Jnn : Jnn <: lanetype), `%`_dim{i#24780}(M)), def $igt_, sx, v_1, v_2) +[check_dims] Jnn M dim#4772 dim#4784 i#24805 i#24812 i#24851 i#24858 lanetype#4772 lanetype#4784 sx sx#108 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4772, dim#4772, i#24805}((Jnn : Jnn <: lanetype), `%`_dim{i#24812}(M))] +[visit_exp lanetype#4772] +[visit_id lanetype#4772] +[visit_exp dim#4772] +[visit_id dim#4772] +[visit_exp i#24805] +[visit_id i#24805] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24812}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#24812}(M)] +[visit_exp i#24812] +[visit_id i#24812] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `LE`_vrelop_{sx#108}(sx)] +[visit_exp sx#108] +[visit_id sx#108] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivrelopsx_(`%X%`_shape{lanetype#4784, dim#4784, i#24851}((Jnn : Jnn <: lanetype), `%`_dim{i#24858}(M)), def $ile_, sx, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4784, dim#4784, i#24851}((Jnn : Jnn <: lanetype), `%`_dim{i#24858}(M))] +[visit_exp lanetype#4784] +[visit_id lanetype#4784] +[visit_exp dim#4784] +[visit_id dim#4784] +[visit_exp i#24851] +[visit_id i#24851] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24858}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#24858}(M)] +[visit_exp i#24858] +[visit_id i#24858] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vrelop_{lanetype#4772 : lanetype, dim#4772 : dim, i#24805 : nat, Jnn : Jnn, i#24812 : nat, M : M, sx#108 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4784 : lanetype, dim#4784 : dim, i#24851 : nat, i#24858 : nat}(`%X%`_shape{lanetype#4772, dim#4772, i#24805}((Jnn : Jnn <: lanetype), `%`_dim{i#24812}(M)), `LE`_vrelop_{sx#108}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4784, dim#4784, i#24851}((Jnn : Jnn <: lanetype), `%`_dim{i#24858}(M)), def $ile_, sx, v_1, v_2) +[check_dims] Jnn M dim#4796 dim#4808 i#24883 i#24890 i#24929 i#24936 lanetype#4796 lanetype#4808 sx sx#110 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4796, dim#4796, i#24883}((Jnn : Jnn <: lanetype), `%`_dim{i#24890}(M))] +[visit_exp lanetype#4796] +[visit_id lanetype#4796] +[visit_exp dim#4796] +[visit_id dim#4796] +[visit_exp i#24883] +[visit_id i#24883] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24890}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#24890}(M)] +[visit_exp i#24890] +[visit_id i#24890] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `GE`_vrelop_{sx#110}(sx)] +[visit_exp sx#110] +[visit_id sx#110] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivrelopsx_(`%X%`_shape{lanetype#4808, dim#4808, i#24929}((Jnn : Jnn <: lanetype), `%`_dim{i#24936}(M)), def $ige_, sx, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4808, dim#4808, i#24929}((Jnn : Jnn <: lanetype), `%`_dim{i#24936}(M))] +[visit_exp lanetype#4808] +[visit_id lanetype#4808] +[visit_exp dim#4808] +[visit_id dim#4808] +[visit_exp i#24929] +[visit_id i#24929] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24936}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#24936}(M)] +[visit_exp i#24936] +[visit_id i#24936] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vrelop_{lanetype#4796 : lanetype, dim#4796 : dim, i#24883 : nat, Jnn : Jnn, i#24890 : nat, M : M, sx#110 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4808 : lanetype, dim#4808 : dim, i#24929 : nat, i#24936 : nat}(`%X%`_shape{lanetype#4796, dim#4796, i#24883}((Jnn : Jnn <: lanetype), `%`_dim{i#24890}(M)), `GE`_vrelop_{sx#110}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4808, dim#4808, i#24929}((Jnn : Jnn <: lanetype), `%`_dim{i#24936}(M)), def $ige_, sx, v_1, v_2) +[check_dims] Fnn M dim#4820 dim#4845 i#24961 i#24968 i#25020 i#25027 lanetype#4820 lanetype#4845 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4820, dim#4820, i#24961}((Fnn : Fnn <: lanetype), `%`_dim{i#24968}(M))] +[visit_exp lanetype#4820] +[visit_id lanetype#4820] +[visit_exp dim#4820] +[visit_id dim#4820] +[visit_exp i#24961] +[visit_id i#24961] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#24968}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#24968}(M)] +[visit_exp i#24968] +[visit_id i#24968] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvrelop_(`%X%`_shape{lanetype#4845, dim#4845, i#25020}((Fnn : Fnn <: lanetype), `%`_dim{i#25027}(M)), def $feq_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4845, dim#4845, i#25020}((Fnn : Fnn <: lanetype), `%`_dim{i#25027}(M))] +[visit_exp lanetype#4845] +[visit_id lanetype#4845] +[visit_exp dim#4845] +[visit_id dim#4845] +[visit_exp i#25020] +[visit_id i#25020] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25027}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#25027}(M)] +[visit_exp i#25027] +[visit_id i#25027] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vrelop_{lanetype#4820 : lanetype, dim#4820 : dim, i#24961 : nat, Fnn : Fnn, i#24968 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4845 : lanetype, dim#4845 : dim, i#25020 : nat, i#25027 : nat}(`%X%`_shape{lanetype#4820, dim#4820, i#24961}((Fnn : Fnn <: lanetype), `%`_dim{i#24968}(M)), `EQ`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4845, dim#4845, i#25020}((Fnn : Fnn <: lanetype), `%`_dim{i#25027}(M)), def $feq_, v_1, v_2) +[check_dims] Fnn M dim#4857 dim#4882 i#25052 i#25059 i#25111 i#25118 lanetype#4857 lanetype#4882 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4857, dim#4857, i#25052}((Fnn : Fnn <: lanetype), `%`_dim{i#25059}(M))] +[visit_exp lanetype#4857] +[visit_id lanetype#4857] +[visit_exp dim#4857] +[visit_id dim#4857] +[visit_exp i#25052] +[visit_id i#25052] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25059}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#25059}(M)] +[visit_exp i#25059] +[visit_id i#25059] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvrelop_(`%X%`_shape{lanetype#4882, dim#4882, i#25111}((Fnn : Fnn <: lanetype), `%`_dim{i#25118}(M)), def $fne_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4882, dim#4882, i#25111}((Fnn : Fnn <: lanetype), `%`_dim{i#25118}(M))] +[visit_exp lanetype#4882] +[visit_id lanetype#4882] +[visit_exp dim#4882] +[visit_id dim#4882] +[visit_exp i#25111] +[visit_id i#25111] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25118}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#25118}(M)] +[visit_exp i#25118] +[visit_id i#25118] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vrelop_{lanetype#4857 : lanetype, dim#4857 : dim, i#25052 : nat, Fnn : Fnn, i#25059 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4882 : lanetype, dim#4882 : dim, i#25111 : nat, i#25118 : nat}(`%X%`_shape{lanetype#4857, dim#4857, i#25052}((Fnn : Fnn <: lanetype), `%`_dim{i#25059}(M)), `NE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4882, dim#4882, i#25111}((Fnn : Fnn <: lanetype), `%`_dim{i#25118}(M)), def $fne_, v_1, v_2) +[check_dims] Fnn M dim#4894 dim#4919 i#25143 i#25150 i#25202 i#25209 lanetype#4894 lanetype#4919 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4894, dim#4894, i#25143}((Fnn : Fnn <: lanetype), `%`_dim{i#25150}(M))] +[visit_exp lanetype#4894] +[visit_id lanetype#4894] +[visit_exp dim#4894] +[visit_id dim#4894] +[visit_exp i#25143] +[visit_id i#25143] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25150}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#25150}(M)] +[visit_exp i#25150] +[visit_id i#25150] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `LT`_vrelop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvrelop_(`%X%`_shape{lanetype#4919, dim#4919, i#25202}((Fnn : Fnn <: lanetype), `%`_dim{i#25209}(M)), def $flt_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4919, dim#4919, i#25202}((Fnn : Fnn <: lanetype), `%`_dim{i#25209}(M))] +[visit_exp lanetype#4919] +[visit_id lanetype#4919] +[visit_exp dim#4919] +[visit_id dim#4919] +[visit_exp i#25202] +[visit_id i#25202] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25209}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#25209}(M)] +[visit_exp i#25209] +[visit_id i#25209] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vrelop_{lanetype#4894 : lanetype, dim#4894 : dim, i#25143 : nat, Fnn : Fnn, i#25150 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4919 : lanetype, dim#4919 : dim, i#25202 : nat, i#25209 : nat}(`%X%`_shape{lanetype#4894, dim#4894, i#25143}((Fnn : Fnn <: lanetype), `%`_dim{i#25150}(M)), `LT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4919, dim#4919, i#25202}((Fnn : Fnn <: lanetype), `%`_dim{i#25209}(M)), def $flt_, v_1, v_2) +[check_dims] Fnn M dim#4931 dim#4956 i#25234 i#25241 i#25293 i#25300 lanetype#4931 lanetype#4956 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4931, dim#4931, i#25234}((Fnn : Fnn <: lanetype), `%`_dim{i#25241}(M))] +[visit_exp lanetype#4931] +[visit_id lanetype#4931] +[visit_exp dim#4931] +[visit_id dim#4931] +[visit_exp i#25234] +[visit_id i#25234] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25241}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#25241}(M)] +[visit_exp i#25241] +[visit_id i#25241] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `GT`_vrelop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvrelop_(`%X%`_shape{lanetype#4956, dim#4956, i#25293}((Fnn : Fnn <: lanetype), `%`_dim{i#25300}(M)), def $fgt_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4956, dim#4956, i#25293}((Fnn : Fnn <: lanetype), `%`_dim{i#25300}(M))] +[visit_exp lanetype#4956] +[visit_id lanetype#4956] +[visit_exp dim#4956] +[visit_id dim#4956] +[visit_exp i#25293] +[visit_id i#25293] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25300}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#25300}(M)] +[visit_exp i#25300] +[visit_id i#25300] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vrelop_{lanetype#4931 : lanetype, dim#4931 : dim, i#25234 : nat, Fnn : Fnn, i#25241 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4956 : lanetype, dim#4956 : dim, i#25293 : nat, i#25300 : nat}(`%X%`_shape{lanetype#4931, dim#4931, i#25234}((Fnn : Fnn <: lanetype), `%`_dim{i#25241}(M)), `GT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4956, dim#4956, i#25293}((Fnn : Fnn <: lanetype), `%`_dim{i#25300}(M)), def $fgt_, v_1, v_2) +[check_dims] Fnn M dim#4968 dim#4993 i#25325 i#25332 i#25384 i#25391 lanetype#4968 lanetype#4993 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#4968, dim#4968, i#25325}((Fnn : Fnn <: lanetype), `%`_dim{i#25332}(M))] +[visit_exp lanetype#4968] +[visit_id lanetype#4968] +[visit_exp dim#4968] +[visit_id dim#4968] +[visit_exp i#25325] +[visit_id i#25325] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25332}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#25332}(M)] +[visit_exp i#25332] +[visit_id i#25332] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `LE`_vrelop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvrelop_(`%X%`_shape{lanetype#4993, dim#4993, i#25384}((Fnn : Fnn <: lanetype), `%`_dim{i#25391}(M)), def $fle_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#4993, dim#4993, i#25384}((Fnn : Fnn <: lanetype), `%`_dim{i#25391}(M))] +[visit_exp lanetype#4993] +[visit_id lanetype#4993] +[visit_exp dim#4993] +[visit_id dim#4993] +[visit_exp i#25384] +[visit_id i#25384] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25391}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#25391}(M)] +[visit_exp i#25391] +[visit_id i#25391] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vrelop_{lanetype#4968 : lanetype, dim#4968 : dim, i#25325 : nat, Fnn : Fnn, i#25332 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4993 : lanetype, dim#4993 : dim, i#25384 : nat, i#25391 : nat}(`%X%`_shape{lanetype#4968, dim#4968, i#25325}((Fnn : Fnn <: lanetype), `%`_dim{i#25332}(M)), `LE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4993, dim#4993, i#25384}((Fnn : Fnn <: lanetype), `%`_dim{i#25391}(M)), def $fle_, v_1, v_2) +[check_dims] Fnn M dim#5005 dim#5030 i#25416 i#25423 i#25475 i#25482 lanetype#5005 lanetype#5030 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#5005, dim#5005, i#25416}((Fnn : Fnn <: lanetype), `%`_dim{i#25423}(M))] +[visit_exp lanetype#5005] +[visit_id lanetype#5005] +[visit_exp dim#5005] +[visit_id dim#5005] +[visit_exp i#25416] +[visit_id i#25416] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25423}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp `%`_dim{i#25423}(M)] +[visit_exp i#25423] +[visit_id i#25423] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `GE`_vrelop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $fvrelop_(`%X%`_shape{lanetype#5030, dim#5030, i#25475}((Fnn : Fnn <: lanetype), `%`_dim{i#25482}(M)), def $fge_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#5030, dim#5030, i#25475}((Fnn : Fnn <: lanetype), `%`_dim{i#25482}(M))] +[visit_exp lanetype#5030] +[visit_id lanetype#5030] +[visit_exp dim#5030] +[visit_id dim#5030] +[visit_exp i#25475] +[visit_id i#25475] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25482}(M))] +[visit_exp (Fnn : Fnn <: lanetype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp `%`_dim{i#25482}(M)] +[visit_exp i#25482] +[visit_id i#25482] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vrelop_{lanetype#5005 : lanetype, dim#5005 : dim, i#25416 : nat, Fnn : Fnn, i#25423 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5030 : lanetype, dim#5030 : dim, i#25475 : nat, i#25482 : nat}(`%X%`_shape{lanetype#5005, dim#5005, i#25416}((Fnn : Fnn <: lanetype), `%`_dim{i#25423}(M)), `GE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#5030, dim#5030, i#25475}((Fnn : Fnn <: lanetype), `%`_dim{i#25482}(M)), def $fge_, v_1, v_2) +[check_dims] Jnn Jnn#119 M dim#5042 dim#5054 i i#25507 i#25514 i#25553 i#25560 lanetype#5042 lanetype#5054 shape#421 v +[visit_exp `%`_ishape{shape#421, Jnn#119}(`%X%`_shape{lanetype#5042, dim#5042, i#25507}((Jnn : Jnn <: lanetype), `%`_dim{i#25514}(M)))] +[visit_exp shape#421] +[visit_id shape#421] +[visit_exp Jnn#119] +[visit_id Jnn#119] +[visit_exp (`%X%`_shape{lanetype#5042, dim#5042, i#25507}((Jnn : Jnn <: lanetype), `%`_dim{i#25514}(M)))] +[visit_exp `%X%`_shape{lanetype#5042, dim#5042, i#25507}((Jnn : Jnn <: lanetype), `%`_dim{i#25514}(M))] +[visit_exp lanetype#5042] +[visit_id lanetype#5042] +[visit_exp dim#5042] +[visit_id dim#5042] +[visit_exp i#25507] +[visit_id i#25507] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#25514}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#25514}(M)] +[visit_exp i#25514] +[visit_id i#25514] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `SHL`_vshiftop_] +[visit_exp ()] +[visit_exp v] +[visit_id v] +[visit_exp i] +[visit_id i] +[visit_exp $ivshiftop_(`%X%`_shape{lanetype#5054, dim#5054, i#25553}((Jnn : Jnn <: lanetype), `%`_dim{i#25560}(M)), def $ishl_, v, i)] +[visit_exp `%X%`_shape{lanetype#5054, dim#5054, i#25553}((Jnn : Jnn <: lanetype), `%`_dim{i#25560}(M))] +[visit_exp lanetype#5054] +[visit_id lanetype#5054] +[visit_exp dim#5054] +[visit_id dim#5054] +[visit_exp i#25553] +[visit_id i#25553] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#25560}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#25560}(M)] +[visit_exp i#25560] +[visit_id i#25560] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v] +[visit_id v] not free +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vshiftop_{shape#421 : shape, Jnn#119 : Jnn, lanetype#5042 : lanetype, dim#5042 : dim, i#25507 : nat, Jnn : Jnn, i#25514 : nat, M : M, v : vec_(`V128`_Vnn), i : u32, lanetype#5054 : lanetype, dim#5054 : dim, i#25553 : nat, i#25560 : nat}(`%`_ishape{shape#421, Jnn#119}(`%X%`_shape{lanetype#5042, dim#5042, i#25507}((Jnn : Jnn <: lanetype), `%`_dim{i#25514}(M))), `SHL`_vshiftop_, v, i) = $ivshiftop_(`%X%`_shape{lanetype#5054, dim#5054, i#25553}((Jnn : Jnn <: lanetype), `%`_dim{i#25560}(M)), def $ishl_, v, i) +[check_dims] Jnn Jnn#123 M dim#5066 dim#5078 i i#25585 i#25592 i#25631 i#25638 lanetype#5066 lanetype#5078 shape#433 sx sx#112 v +[visit_exp `%`_ishape{shape#433, Jnn#123}(`%X%`_shape{lanetype#5066, dim#5066, i#25585}((Jnn : Jnn <: lanetype), `%`_dim{i#25592}(M)))] +[visit_exp shape#433] +[visit_id shape#433] +[visit_exp Jnn#123] +[visit_id Jnn#123] +[visit_exp (`%X%`_shape{lanetype#5066, dim#5066, i#25585}((Jnn : Jnn <: lanetype), `%`_dim{i#25592}(M)))] +[visit_exp `%X%`_shape{lanetype#5066, dim#5066, i#25585}((Jnn : Jnn <: lanetype), `%`_dim{i#25592}(M))] +[visit_exp lanetype#5066] +[visit_id lanetype#5066] +[visit_exp dim#5066] +[visit_id dim#5066] +[visit_exp i#25585] +[visit_id i#25585] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#25592}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#25592}(M)] +[visit_exp i#25592] +[visit_id i#25592] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `SHR`_vshiftop_{sx#112}(sx)] +[visit_exp sx#112] +[visit_id sx#112] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp v] +[visit_id v] +[visit_exp i] +[visit_id i] +[visit_exp $ivshiftopsx_(`%X%`_shape{lanetype#5078, dim#5078, i#25631}((Jnn : Jnn <: lanetype), `%`_dim{i#25638}(M)), def $ishr_, sx, v, i)] +[visit_exp `%X%`_shape{lanetype#5078, dim#5078, i#25631}((Jnn : Jnn <: lanetype), `%`_dim{i#25638}(M))] +[visit_exp lanetype#5078] +[visit_id lanetype#5078] +[visit_exp dim#5078] +[visit_id dim#5078] +[visit_exp i#25631] +[visit_id i#25631] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#25638}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#25638}(M)] +[visit_exp i#25638] +[visit_id i#25638] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp v] +[visit_id v] not free +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vshiftop_{shape#433 : shape, Jnn#123 : Jnn, lanetype#5066 : lanetype, dim#5066 : dim, i#25585 : nat, Jnn : Jnn, i#25592 : nat, M : M, sx#112 : sx, sx : sx, v : vec_(`V128`_Vnn), i : u32, lanetype#5078 : lanetype, dim#5078 : dim, i#25631 : nat, i#25638 : nat}(`%`_ishape{shape#433, Jnn#123}(`%X%`_shape{lanetype#5066, dim#5066, i#25585}((Jnn : Jnn <: lanetype), `%`_dim{i#25592}(M))), `SHR`_vshiftop_{sx#112}(sx), v, i) = $ivshiftopsx_(`%X%`_shape{lanetype#5078, dim#5078, i#25631}((Jnn : Jnn <: lanetype), `%`_dim{i#25638}(M)), def $ishr_, sx, v, i) +[check_dims] Jnn Jnn#127 M dim#5090 dim#5102 i#25663 i#25670 i#25697 i#25704 lanetype#5090 lanetype#5102 shape#445 v +[visit_exp `%`_ishape{shape#445, Jnn#127}(`%X%`_shape{lanetype#5090, dim#5090, i#25663}((Jnn : Jnn <: lanetype), `%`_dim{i#25670}(M)))] +[visit_exp shape#445] +[visit_id shape#445] +[visit_exp Jnn#127] +[visit_id Jnn#127] +[visit_exp (`%X%`_shape{lanetype#5090, dim#5090, i#25663}((Jnn : Jnn <: lanetype), `%`_dim{i#25670}(M)))] +[visit_exp `%X%`_shape{lanetype#5090, dim#5090, i#25663}((Jnn : Jnn <: lanetype), `%`_dim{i#25670}(M))] +[visit_exp lanetype#5090] +[visit_id lanetype#5090] +[visit_exp dim#5090] +[visit_id dim#5090] +[visit_exp i#25663] +[visit_id i#25663] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#25670}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#25670}(M)] +[visit_exp i#25670] +[visit_id i#25670] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp v] +[visit_id v] +[visit_exp $ivbitmaskop_(`%X%`_shape{lanetype#5102, dim#5102, i#25697}((Jnn : Jnn <: lanetype), `%`_dim{i#25704}(M)), v)] +[visit_exp `%X%`_shape{lanetype#5102, dim#5102, i#25697}((Jnn : Jnn <: lanetype), `%`_dim{i#25704}(M))] +[visit_exp lanetype#5102] +[visit_id lanetype#5102] +[visit_exp dim#5102] +[visit_id dim#5102] +[visit_exp i#25697] +[visit_id i#25697] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#25704}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#25704}(M)] +[visit_exp i#25704] +[visit_id i#25704] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v] +[visit_id v] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vbitmaskop_{shape#445 : shape, Jnn#127 : Jnn, lanetype#5090 : lanetype, dim#5090 : dim, i#25663 : nat, Jnn : Jnn, i#25670 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#5102 : lanetype, dim#5102 : dim, i#25697 : nat, i#25704 : nat}(`%`_ishape{shape#445, Jnn#127}(`%X%`_shape{lanetype#5090, dim#5090, i#25663}((Jnn : Jnn <: lanetype), `%`_dim{i#25670}(M))), v) = $ivbitmaskop_(`%X%`_shape{lanetype#5102, dim#5102, i#25697}((Jnn : Jnn <: lanetype), `%`_dim{i#25704}(M)), v) +[check_dims] M dim#5114 dim#5126 i#25719 i#25726 i#25765 i#25772 lanetype#5114 lanetype#5126 shape#457 v_1 v_2 +[visit_exp `%`_bshape{shape#457}(`%X%`_shape{lanetype#5114, dim#5114, i#25719}(`I8`_lanetype, `%`_dim{i#25726}(M)))] +[visit_exp shape#457] +[visit_id shape#457] +[visit_exp (`%X%`_shape{lanetype#5114, dim#5114, i#25719}(`I8`_lanetype, `%`_dim{i#25726}(M)))] +[visit_exp `%X%`_shape{lanetype#5114, dim#5114, i#25719}(`I8`_lanetype, `%`_dim{i#25726}(M))] +[visit_exp lanetype#5114] +[visit_id lanetype#5114] +[visit_exp dim#5114] +[visit_id dim#5114] +[visit_exp i#25719] +[visit_id i#25719] +[visit_exp (`I8`_lanetype, `%`_dim{i#25726}(M))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#25726}(M)] +[visit_exp i#25726] +[visit_id i#25726] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `SWIZZLE`_vswizzlop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivswizzlop_(`%X%`_shape{lanetype#5126, dim#5126, i#25765}(`I8`_lanetype, `%`_dim{i#25772}(M)), def $iswizzle_lane_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#5126, dim#5126, i#25765}(`I8`_lanetype, `%`_dim{i#25772}(M))] +[visit_exp lanetype#5126] +[visit_id lanetype#5126] +[visit_exp dim#5126] +[visit_id dim#5126] +[visit_exp i#25765] +[visit_id i#25765] +[visit_exp (`I8`_lanetype, `%`_dim{i#25772}(M))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#25772}(M)] +[visit_exp i#25772] +[visit_id i#25772] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vswizzlop_{shape#457 : shape, lanetype#5114 : lanetype, dim#5114 : dim, i#25719 : nat, i#25726 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5126 : lanetype, dim#5126 : dim, i#25765 : nat, i#25772 : nat}(`%`_bshape{shape#457}(`%X%`_shape{lanetype#5114, dim#5114, i#25719}(`I8`_lanetype, `%`_dim{i#25726}(M))), `SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape{lanetype#5126, dim#5126, i#25765}(`I8`_lanetype, `%`_dim{i#25772}(M)), def $iswizzle_lane_, v_1, v_2) +[check_dims] M dim#5138 dim#5150 i#25797 i#25804 i#25843 i#25850 lanetype#5138 lanetype#5150 shape#469 v_1 v_2 +[visit_exp `%`_bshape{shape#469}(`%X%`_shape{lanetype#5138, dim#5138, i#25797}(`I8`_lanetype, `%`_dim{i#25804}(M)))] +[visit_exp shape#469] +[visit_id shape#469] +[visit_exp (`%X%`_shape{lanetype#5138, dim#5138, i#25797}(`I8`_lanetype, `%`_dim{i#25804}(M)))] +[visit_exp `%X%`_shape{lanetype#5138, dim#5138, i#25797}(`I8`_lanetype, `%`_dim{i#25804}(M))] +[visit_exp lanetype#5138] +[visit_id lanetype#5138] +[visit_exp dim#5138] +[visit_id dim#5138] +[visit_exp i#25797] +[visit_id i#25797] +[visit_exp (`I8`_lanetype, `%`_dim{i#25804}(M))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#25804}(M)] +[visit_exp i#25804] +[visit_id i#25804] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `RELAXED_SWIZZLE`_vswizzlop_] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivswizzlop_(`%X%`_shape{lanetype#5150, dim#5150, i#25843}(`I8`_lanetype, `%`_dim{i#25850}(M)), def $irelaxed_swizzle_lane_, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#5150, dim#5150, i#25843}(`I8`_lanetype, `%`_dim{i#25850}(M))] +[visit_exp lanetype#5150] +[visit_id lanetype#5150] +[visit_exp dim#5150] +[visit_id dim#5150] +[visit_exp i#25843] +[visit_id i#25843] +[visit_exp (`I8`_lanetype, `%`_dim{i#25850}(M))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#25850}(M)] +[visit_exp i#25850] +[visit_id i#25850] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vswizzlop_{shape#469 : shape, lanetype#5138 : lanetype, dim#5138 : dim, i#25797 : nat, i#25804 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5150 : lanetype, dim#5150 : dim, i#25843 : nat, i#25850 : nat}(`%`_bshape{shape#469}(`%X%`_shape{lanetype#5138, dim#5138, i#25797}(`I8`_lanetype, `%`_dim{i#25804}(M))), `RELAXED_SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape{lanetype#5150, dim#5150, i#25843}(`I8`_lanetype, `%`_dim{i#25850}(M)), def $irelaxed_swizzle_lane_, v_1, v_2) +[check_dims] M dim#5162 dim#5174 i i#25875 i#25882 i#25946 i#25953 lanetype#5162 lanetype#5174 shape#481 v_1 v_2 +[visit_exp `%`_bshape{shape#481}(`%X%`_shape{lanetype#5162, dim#5162, i#25875}(`I8`_lanetype, `%`_dim{i#25882}(M)))] +[visit_exp shape#481] +[visit_id shape#481] +[visit_exp (`%X%`_shape{lanetype#5162, dim#5162, i#25875}(`I8`_lanetype, `%`_dim{i#25882}(M)))] +[visit_exp `%X%`_shape{lanetype#5162, dim#5162, i#25875}(`I8`_lanetype, `%`_dim{i#25882}(M))] +[visit_exp lanetype#5162] +[visit_id lanetype#5162] +[visit_exp dim#5162] +[visit_id dim#5162] +[visit_exp i#25875] +[visit_id i#25875] +[visit_exp (`I8`_lanetype, `%`_dim{i#25882}(M))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#25882}(M)] +[visit_exp i#25882] +[visit_id i#25882] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp i*{i <- `i*`}] +[scope_enter i] +[visit_exp i] +[visit_id i] not free +[visit_id i] not free +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] no dims +[visit_id i*] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivshufflop_(`%X%`_shape{lanetype#5174, dim#5174, i#25946}(`I8`_lanetype, `%`_dim{i#25953}(M)), i*{i <- `i*`}, v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#5174, dim#5174, i#25946}(`I8`_lanetype, `%`_dim{i#25953}(M))] +[visit_exp lanetype#5174] +[visit_id lanetype#5174] +[visit_exp dim#5174] +[visit_id dim#5174] +[visit_exp i#25946] +[visit_id i#25946] +[visit_exp (`I8`_lanetype, `%`_dim{i#25953}(M))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#25953}(M)] +[visit_exp i#25953] +[visit_id i#25953] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp i*{i <- `i*`}] +[scope_enter i] +[visit_exp i] +[visit_id i] not free +[visit_id i] not free +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] not free +[visit_id i*] no dims +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vshufflop_{shape#481 : shape, lanetype#5162 : lanetype, dim#5162 : dim, i#25875 : nat, i#25882 : nat, M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5174 : lanetype, dim#5174 : dim, i#25946 : nat, i#25953 : nat}(`%`_bshape{shape#481}(`%X%`_shape{lanetype#5162, dim#5162, i#25875}(`I8`_lanetype, `%`_dim{i#25882}(M))), i*{i <- `i*`}, v_1, v_2) = $ivshufflop_(`%X%`_shape{lanetype#5174, dim#5174, i#25946}(`I8`_lanetype, `%`_dim{i#25953}(M)), i*{i <- `i*`}, v_1, v_2) +[check_dims] Jnn_1 Jnn_2 M_1 M_2 c c_1 dim#5186 dim#5198 half half#5 i#26001 i#26008 i#26013 i#26020 lanetype#5186 lanetype#5198 sx sx#114 +[visit_exp `%X%`_shape{lanetype#5186, dim#5186, i#26001}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26008}(M_1))] +[visit_exp lanetype#5186] +[visit_id lanetype#5186] +[visit_exp dim#5186] +[visit_id dim#5186] +[visit_exp i#26001] +[visit_id i#26001] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26008}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#26008}(M_1)] +[visit_exp i#26008] +[visit_id i#26008] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#5198, dim#5198, i#26013}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#26020}(M_2))] +[visit_exp lanetype#5198] +[visit_id lanetype#5198] +[visit_exp dim#5198] +[visit_id dim#5198] +[visit_exp i#26013] +[visit_id i#26013] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#26020}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#26020}(M_2)] +[visit_exp i#26020] +[visit_id i#26020] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `EXTEND`_vcvtop__{half#5, sx#114}(half, sx)] +[visit_exp half#5] +[visit_id half#5] +[visit_exp sx#114] +[visit_id sx#114] +[visit_exp (half, sx)] +[visit_exp half] +[visit_id half] +[visit_exp sx] +[visit_id sx] +[visit_exp c_1] +[visit_id c_1] +[visit_exp [c]] +[visit_exp c] +[visit_id c] +[visit_exp (c = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1))] +[visit_exp c] +[visit_id c] not free +[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp c_1] +[visit_id c_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $lcvtop__{lanetype#5186 : lanetype, dim#5186 : dim, i#26001 : nat, Jnn_1 : Jnn, i#26008 : nat, M_1 : M, lanetype#5198 : lanetype, dim#5198 : dim, i#26013 : nat, Jnn_2 : Jnn, i#26020 : nat, M_2 : M, half#5 : half, sx#114 : sx, half : half, sx : sx, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5186, dim#5186, i#26001}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26008}(M_1)))), c : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))}(`%X%`_shape{lanetype#5186, dim#5186, i#26001}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26008}(M_1)), `%X%`_shape{lanetype#5198, dim#5198, i#26013}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#26020}(M_2)), `EXTEND`_vcvtop__{half#5, sx#114}(half, sx), c_1) = [c] + -- if (c = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)) +[check_dims] Fnn_2 Jnn_1 M_1 M_2 c c_1 dim#5222 dim#5234 half half?#5 i#26109 i#26116 i#26121 i#26128 lanetype#5222 lanetype#5234 sx sx#116 +[visit_exp `%X%`_shape{lanetype#5222, dim#5222, i#26109}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26116}(M_1))] +[visit_exp lanetype#5222] +[visit_id lanetype#5222] +[visit_exp dim#5222] +[visit_id dim#5222] +[visit_exp i#26109] +[visit_id i#26109] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26116}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#26116}(M_1)] +[visit_exp i#26116] +[visit_id i#26116] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#5234, dim#5234, i#26121}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26128}(M_2))] +[visit_exp lanetype#5234] +[visit_id lanetype#5234] +[visit_exp dim#5234] +[visit_id dim#5234] +[visit_exp i#26121] +[visit_id i#26121] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26128}(M_2))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `%`_dim{i#26128}(M_2)] +[visit_exp i#26128] +[visit_id i#26128] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `CONVERT`_vcvtop__{`half?#5`, sx#116}(half?{half <- `half?`}, sx)] +[visit_exp `half?#5`] +[visit_id half?#5] +[visit_exp sx#116] +[visit_id sx#116] +[visit_exp (half?{half <- `half?`}, sx)] +[visit_exp half?{half <- `half?`}] +[scope_enter half] +[visit_exp half] +[visit_id half] not free +[visit_id half] not free +[scope_exit half] +[visit_exp `half?`] +[visit_id half?] no dims +[visit_id half?] +[visit_exp sx] +[visit_id sx] +[visit_exp c_1] +[visit_id c_1] +[visit_exp [c]] +[visit_exp c] +[visit_id c] +[visit_exp (c = $convert__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), sx, c_1))] +[visit_exp c] +[visit_id c] not free +[visit_exp $convert__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), sx, c_1)] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp $lsizenn2((Fnn_2 : Fnn <: lanetype))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp c_1] +[visit_id c_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $lcvtop__{lanetype#5222 : lanetype, dim#5222 : dim, i#26109 : nat, Jnn_1 : Jnn, i#26116 : nat, M_1 : M, lanetype#5234 : lanetype, dim#5234 : dim, i#26121 : nat, Fnn_2 : Fnn, i#26128 : nat, M_2 : M, `half?#5` : half?, sx#116 : sx, `half?` : half?, sx : sx, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5222, dim#5222, i#26109}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26116}(M_1)))), c : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))}(`%X%`_shape{lanetype#5222, dim#5222, i#26109}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26116}(M_1)), `%X%`_shape{lanetype#5234, dim#5234, i#26121}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26128}(M_2)), `CONVERT`_vcvtop__{`half?#5`, sx#116}(half?{half <- `half?`}, sx), c_1) = [c] + -- if (c = $convert__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), sx, c_1)) +[check_dims] Fnn_1 Inn_2 M_1 M_2 c c_1 dim#5273 dim#5285 i#26208 i#26215 i#26220 i#26227 lanetype#5273 lanetype#5285 sx sx#148 zero zero?#39 +[visit_exp `%X%`_shape{lanetype#5273, dim#5273, i#26208}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26215}(M_1))] +[visit_exp lanetype#5273] +[visit_id lanetype#5273] +[visit_exp dim#5273] +[visit_id dim#5273] +[visit_exp i#26208] +[visit_id i#26208] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26215}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#26215}(M_1)] +[visit_exp i#26215] +[visit_id i#26215] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#5285, dim#5285, i#26220}((Inn_2 : Inn <: lanetype), `%`_dim{i#26227}(M_2))] +[visit_exp lanetype#5285] +[visit_id lanetype#5285] +[visit_exp dim#5285] +[visit_id dim#5285] +[visit_exp i#26220] +[visit_id i#26220] +[visit_exp ((Inn_2 : Inn <: lanetype), `%`_dim{i#26227}(M_2))] +[visit_exp (Inn_2 : Inn <: lanetype)] +[visit_exp Inn_2] +[visit_id Inn_2] +[visit_exp `%`_dim{i#26227}(M_2)] +[visit_exp i#26227] +[visit_id i#26227] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `TRUNC_SAT`_vcvtop__{sx#148, `zero?#39`}(sx, zero?{zero <- `zero?`})] +[visit_exp sx#148] +[visit_id sx#148] +[visit_exp `zero?#39`] +[visit_id zero?#39] +[visit_exp (sx, zero?{zero <- `zero?`})] +[visit_exp sx] +[visit_id sx] +[visit_exp zero?{zero <- `zero?`}] +[scope_enter zero] +[visit_exp zero] +[visit_id zero] not free +[visit_id zero] not free +[scope_exit zero] +[visit_exp `zero?`] +[visit_id zero?] no dims +[visit_id zero?] +[visit_exp c_1] +[visit_id c_1] +[visit_exp lift(c?{c <- `c?`})] +[visit_exp c?{c <- `c?`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c?`] +[visit_id c?] no dims +[visit_id c?] +[visit_exp (c?{c <- `c?`} = $trunc_sat__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1))] +[visit_exp c?{c <- `c?`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c?`] +[visit_id c?] not free +[visit_id c?] no dims +[visit_exp $trunc_sat__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)] +[visit_exp $lsizenn1((Fnn_1 : Fnn <: lanetype))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_exp $lsizenn2((Inn_2 : Inn <: lanetype))] +[visit_exp (Inn_2 : Inn <: lanetype)] +[visit_exp Inn_2] +[visit_id Inn_2] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp c_1] +[visit_id c_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $lcvtop__{lanetype#5273 : lanetype, dim#5273 : dim, i#26208 : nat, Fnn_1 : Fnn, i#26215 : nat, M_1 : M, lanetype#5285 : lanetype, dim#5285 : dim, i#26220 : nat, Inn_2 : Inn, i#26227 : nat, M_2 : M, sx#148 : sx, `zero?#39` : zero?, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5273, dim#5273, i#26208}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26215}(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape{lanetype#5273, dim#5273, i#26208}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26215}(M_1)), `%X%`_shape{lanetype#5285, dim#5285, i#26220}((Inn_2 : Inn <: lanetype), `%`_dim{i#26227}(M_2)), `TRUNC_SAT`_vcvtop__{sx#148, `zero?#39`}(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) + -- if (c?{c <- `c?`} = $trunc_sat__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)) +[check_dims] Fnn_1 Inn_2 M_1 M_2 c c_1 dim#5361 dim#5373 i#26384 i#26391 i#26396 i#26403 lanetype#5361 lanetype#5373 sx sx#180 zero zero?#71 +[visit_exp `%X%`_shape{lanetype#5361, dim#5361, i#26384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26391}(M_1))] +[visit_exp lanetype#5361] +[visit_id lanetype#5361] +[visit_exp dim#5361] +[visit_id dim#5361] +[visit_exp i#26384] +[visit_id i#26384] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26391}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#26391}(M_1)] +[visit_exp i#26391] +[visit_id i#26391] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#5373, dim#5373, i#26396}((Inn_2 : Inn <: lanetype), `%`_dim{i#26403}(M_2))] +[visit_exp lanetype#5373] +[visit_id lanetype#5373] +[visit_exp dim#5373] +[visit_id dim#5373] +[visit_exp i#26396] +[visit_id i#26396] +[visit_exp ((Inn_2 : Inn <: lanetype), `%`_dim{i#26403}(M_2))] +[visit_exp (Inn_2 : Inn <: lanetype)] +[visit_exp Inn_2] +[visit_id Inn_2] +[visit_exp `%`_dim{i#26403}(M_2)] +[visit_exp i#26403] +[visit_id i#26403] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#180, `zero?#71`}(sx, zero?{zero <- `zero?`})] +[visit_exp sx#180] +[visit_id sx#180] +[visit_exp `zero?#71`] +[visit_id zero?#71] +[visit_exp (sx, zero?{zero <- `zero?`})] +[visit_exp sx] +[visit_id sx] +[visit_exp zero?{zero <- `zero?`}] +[scope_enter zero] +[visit_exp zero] +[visit_id zero] not free +[visit_id zero] not free +[scope_exit zero] +[visit_exp `zero?`] +[visit_id zero?] no dims +[visit_id zero?] +[visit_exp c_1] +[visit_id c_1] +[visit_exp lift(c?{c <- `c?`})] +[visit_exp c?{c <- `c?`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c?`] +[visit_id c?] no dims +[visit_id c?] +[visit_exp (c?{c <- `c?`} = $relaxed_trunc__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1))] +[visit_exp c?{c <- `c?`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c?`] +[visit_id c?] not free +[visit_id c?] no dims +[visit_exp $relaxed_trunc__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)] +[visit_exp $lsizenn1((Fnn_1 : Fnn <: lanetype))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_exp $lsizenn2((Inn_2 : Inn <: lanetype))] +[visit_exp (Inn_2 : Inn <: lanetype)] +[visit_exp Inn_2] +[visit_id Inn_2] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp c_1] +[visit_id c_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $lcvtop__{lanetype#5361 : lanetype, dim#5361 : dim, i#26384 : nat, Fnn_1 : Fnn, i#26391 : nat, M_1 : M, lanetype#5373 : lanetype, dim#5373 : dim, i#26396 : nat, Inn_2 : Inn, i#26403 : nat, M_2 : M, sx#180 : sx, `zero?#71` : zero?, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5361, dim#5361, i#26384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26391}(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape{lanetype#5361, dim#5361, i#26384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26391}(M_1)), `%X%`_shape{lanetype#5373, dim#5373, i#26396}((Inn_2 : Inn <: lanetype), `%`_dim{i#26403}(M_2)), `RELAXED_TRUNC`_vcvtop__{sx#180, `zero?#71`}(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) + -- if (c?{c <- `c?`} = $relaxed_trunc__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)) +[check_dims] Fnn_1 Fnn_2 M_1 M_2 c c_1 dim#5449 dim#5461 i#26560 i#26567 i#26572 i#26579 lanetype#5449 lanetype#5461 zero#125 +[visit_exp `%X%`_shape{lanetype#5449, dim#5449, i#26560}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26567}(M_1))] +[visit_exp lanetype#5449] +[visit_id lanetype#5449] +[visit_exp dim#5449] +[visit_id dim#5449] +[visit_exp i#26560] +[visit_id i#26560] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26567}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#26567}(M_1)] +[visit_exp i#26567] +[visit_id i#26567] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#5461, dim#5461, i#26572}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26579}(M_2))] +[visit_exp lanetype#5461] +[visit_id lanetype#5461] +[visit_exp dim#5461] +[visit_id dim#5461] +[visit_exp i#26572] +[visit_id i#26572] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26579}(M_2))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `%`_dim{i#26579}(M_2)] +[visit_exp i#26579] +[visit_id i#26579] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `DEMOTE`_vcvtop__{zero#125}(`ZERO`_zero)] +[visit_exp zero#125] +[visit_id zero#125] +[visit_exp (`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp (c*{c <- `c*`} = $demote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1))] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp $demote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)] +[visit_exp $lsizenn1((Fnn_1 : Fnn <: lanetype))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_exp $lsizenn2((Fnn_2 : Fnn <: lanetype))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_exp c_1] +[visit_id c_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $lcvtop__{lanetype#5449 : lanetype, dim#5449 : dim, i#26560 : nat, Fnn_1 : Fnn, i#26567 : nat, M_1 : M, lanetype#5461 : lanetype, dim#5461 : dim, i#26572 : nat, Fnn_2 : Fnn, i#26579 : nat, M_2 : M, zero#125 : zero, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5449, dim#5449, i#26560}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26567}(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape{lanetype#5449, dim#5449, i#26560}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26567}(M_1)), `%X%`_shape{lanetype#5461, dim#5461, i#26572}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26579}(M_2)), `DEMOTE`_vcvtop__{zero#125}(`ZERO`_zero), c_1) = c*{c <- `c*`} + -- if (c*{c <- `c*`} = $demote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)) +[check_dims] Fnn_1 Fnn_2 M_1 M_2 c c_1 dim#5536 dim#5548 i#26683 i#26690 i#26695 i#26702 lanetype#5536 lanetype#5548 +[visit_exp `%X%`_shape{lanetype#5536, dim#5536, i#26683}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26690}(M_1))] +[visit_exp lanetype#5536] +[visit_id lanetype#5536] +[visit_exp dim#5536] +[visit_id dim#5536] +[visit_exp i#26683] +[visit_id i#26683] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26690}(M_1))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] +[visit_exp `%`_dim{i#26690}(M_1)] +[visit_exp i#26690] +[visit_id i#26690] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#5548, dim#5548, i#26695}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26702}(M_2))] +[visit_exp lanetype#5548] +[visit_id lanetype#5548] +[visit_exp dim#5548] +[visit_id dim#5548] +[visit_exp i#26695] +[visit_id i#26695] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26702}(M_2))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] +[visit_exp `%`_dim{i#26702}(M_2)] +[visit_exp i#26702] +[visit_id i#26702] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `PROMOTELOW`_vcvtop__] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp (c*{c <- `c*`} = $promote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1))] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp $promote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)] +[visit_exp $lsizenn1((Fnn_1 : Fnn <: lanetype))] +[visit_exp (Fnn_1 : Fnn <: lanetype)] +[visit_exp Fnn_1] +[visit_id Fnn_1] not free +[visit_exp $lsizenn2((Fnn_2 : Fnn <: lanetype))] +[visit_exp (Fnn_2 : Fnn <: lanetype)] +[visit_exp Fnn_2] +[visit_id Fnn_2] not free +[visit_exp c_1] +[visit_id c_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $lcvtop__{lanetype#5536 : lanetype, dim#5536 : dim, i#26683 : nat, Fnn_1 : Fnn, i#26690 : nat, M_1 : M, lanetype#5548 : lanetype, dim#5548 : dim, i#26695 : nat, Fnn_2 : Fnn, i#26702 : nat, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5536, dim#5536, i#26683}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26690}(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape{lanetype#5536, dim#5536, i#26683}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26690}(M_1)), `%X%`_shape{lanetype#5548, dim#5548, i#26695}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26702}(M_2)), `PROMOTELOW`_vcvtop__, c_1) = c*{c <- `c*`} + -- if (c*{c <- `c*`} = $promote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)) +[check_dims] Lnn_1 Lnn_2 M c c_1 dim#5623 dim#5635 dim#5671 dim#5683 dim#5711 dim#5723 dim#5751 dim#5867 dim#5879 dim#5914 i#26806 i#26813 i#26818 i#26825 i#26866 i#26873 i#26878 i#26885 i#26906 i#26913 i#26918 i#26925 i#26946 i#26953 i#27120 i#27127 i#27132 i#27139 i#27181 i#27188 lanetype#5623 lanetype#5635 lanetype#5671 lanetype#5683 lanetype#5711 lanetype#5723 lanetype#5751 lanetype#5867 lanetype#5879 lanetype#5914 v v_1 vcvtop +[visit_exp `%X%`_shape{lanetype#5623, dim#5623, i#26806}(Lnn_1, `%`_dim{i#26813}(M))] +[visit_exp lanetype#5623] +[visit_id lanetype#5623] +[visit_exp dim#5623] +[visit_id dim#5623] +[visit_exp i#26806] +[visit_id i#26806] +[visit_exp (Lnn_1, `%`_dim{i#26813}(M))] +[visit_exp Lnn_1] +[visit_id Lnn_1] +[visit_exp `%`_dim{i#26813}(M)] +[visit_exp i#26813] +[visit_id i#26813] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `%X%`_shape{lanetype#5635, dim#5635, i#26818}(Lnn_2, `%`_dim{i#26825}(M))] +[visit_exp lanetype#5635] +[visit_id lanetype#5635] +[visit_exp dim#5635] +[visit_id dim#5635] +[visit_exp i#26818] +[visit_id i#26818] +[visit_exp (Lnn_2, `%`_dim{i#26825}(M))] +[visit_exp Lnn_2] +[visit_id Lnn_2] +[visit_exp `%`_dim{i#26825}(M)] +[visit_exp i#26825] +[visit_id i#26825] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp vcvtop] +[visit_id vcvtop] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v] +[visit_id v] +[visit_exp (($halfop(`%X%`_shape{lanetype#5671, dim#5671, i#26866}(Lnn_1, `%`_dim{i#26873}(M)), `%X%`_shape{lanetype#5683, dim#5683, i#26878}(Lnn_2, `%`_dim{i#26885}(M)), vcvtop) = ?()) /\ ($zeroop(`%X%`_shape{lanetype#5711, dim#5711, i#26906}(Lnn_1, `%`_dim{i#26913}(M)), `%X%`_shape{lanetype#5723, dim#5723, i#26918}(Lnn_2, `%`_dim{i#26925}(M)), vcvtop) = ?()))] +[visit_exp ($halfop(`%X%`_shape{lanetype#5671, dim#5671, i#26866}(Lnn_1, `%`_dim{i#26873}(M)), `%X%`_shape{lanetype#5683, dim#5683, i#26878}(Lnn_2, `%`_dim{i#26885}(M)), vcvtop) = ?())] +[visit_exp $halfop(`%X%`_shape{lanetype#5671, dim#5671, i#26866}(Lnn_1, `%`_dim{i#26873}(M)), `%X%`_shape{lanetype#5683, dim#5683, i#26878}(Lnn_2, `%`_dim{i#26885}(M)), vcvtop)] +[visit_exp `%X%`_shape{lanetype#5671, dim#5671, i#26866}(Lnn_1, `%`_dim{i#26873}(M))] +[visit_exp lanetype#5671] +[visit_id lanetype#5671] +[visit_exp dim#5671] +[visit_id dim#5671] +[visit_exp i#26866] +[visit_id i#26866] +[visit_exp (Lnn_1, `%`_dim{i#26873}(M))] +[visit_exp Lnn_1] +[visit_id Lnn_1] not free +[visit_exp `%`_dim{i#26873}(M)] +[visit_exp i#26873] +[visit_id i#26873] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp `%X%`_shape{lanetype#5683, dim#5683, i#26878}(Lnn_2, `%`_dim{i#26885}(M))] +[visit_exp lanetype#5683] +[visit_id lanetype#5683] +[visit_exp dim#5683] +[visit_id dim#5683] +[visit_exp i#26878] +[visit_id i#26878] +[visit_exp (Lnn_2, `%`_dim{i#26885}(M))] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp `%`_dim{i#26885}(M)] +[visit_exp i#26885] +[visit_id i#26885] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp vcvtop] +[visit_id vcvtop] not free +[visit_exp ?()] +[visit_exp ($zeroop(`%X%`_shape{lanetype#5711, dim#5711, i#26906}(Lnn_1, `%`_dim{i#26913}(M)), `%X%`_shape{lanetype#5723, dim#5723, i#26918}(Lnn_2, `%`_dim{i#26925}(M)), vcvtop) = ?())] +[visit_exp $zeroop(`%X%`_shape{lanetype#5711, dim#5711, i#26906}(Lnn_1, `%`_dim{i#26913}(M)), `%X%`_shape{lanetype#5723, dim#5723, i#26918}(Lnn_2, `%`_dim{i#26925}(M)), vcvtop)] +[visit_exp `%X%`_shape{lanetype#5711, dim#5711, i#26906}(Lnn_1, `%`_dim{i#26913}(M))] +[visit_exp lanetype#5711] +[visit_id lanetype#5711] +[visit_exp dim#5711] +[visit_id dim#5711] +[visit_exp i#26906] +[visit_id i#26906] +[visit_exp (Lnn_1, `%`_dim{i#26913}(M))] +[visit_exp Lnn_1] +[visit_id Lnn_1] not free +[visit_exp `%`_dim{i#26913}(M)] +[visit_exp i#26913] +[visit_id i#26913] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp `%X%`_shape{lanetype#5723, dim#5723, i#26918}(Lnn_2, `%`_dim{i#26925}(M))] +[visit_exp lanetype#5723] +[visit_id lanetype#5723] +[visit_exp dim#5723] +[visit_id dim#5723] +[visit_exp i#26918] +[visit_id i#26918] +[visit_exp (Lnn_2, `%`_dim{i#26925}(M))] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp `%`_dim{i#26925}(M)] +[visit_exp i#26925] +[visit_id i#26925] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp vcvtop] +[visit_id vcvtop] not free +[visit_exp ?()] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M)), v_1)] +[visit_exp `%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))] +[visit_exp lanetype#5751] +[visit_id lanetype#5751] +[visit_exp dim#5751] +[visit_id dim#5751] +[visit_exp i#26946] +[visit_id i#26946] +[visit_exp (Lnn_1, `%`_dim{i#26953}(M))] +[visit_exp Lnn_1] +[visit_id Lnn_1] not free +[visit_exp `%`_dim{i#26953}(M)] +[visit_exp i#26953] +[visit_id i#26953] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M)), `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#5867 <- `dim#5867*`, dim#5879 <- `dim#5879*`, i#27120 <- `i#27120*`, i#27127 <- `i#27127*`, i#27132 <- `i#27132*`, i#27139 <- `i#27139*`, lanetype#5867 <- `lanetype#5867*`, lanetype#5879 <- `lanetype#5879*`}))] +[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] +[scope_enter c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] no dims +[visit_id c**] +[visit_exp $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M)), `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#5867 <- `dim#5867*`, dim#5879 <- `dim#5879*`, i#27120 <- `i#27120*`, i#27127 <- `i#27127*`, i#27132 <- `i#27132*`, i#27139 <- `i#27139*`, lanetype#5867 <- `lanetype#5867*`, lanetype#5879 <- `lanetype#5879*`})] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp $lcvtop__(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M)), `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#5867 <- `dim#5867*`, dim#5879 <- `dim#5879*`, i#27120 <- `i#27120*`, i#27127 <- `i#27127*`, i#27132 <- `i#27132*`, i#27139 <- `i#27139*`, lanetype#5867 <- `lanetype#5867*`, lanetype#5879 <- `lanetype#5879*`}] +[scope_enter c_1] +[scope_enter dim#5867] +[scope_enter dim#5879] +[scope_enter i#27120] +[scope_enter i#27127] +[scope_enter i#27132] +[scope_enter i#27139] +[scope_enter lanetype#5867] +[scope_enter lanetype#5879] +[visit_exp $lcvtop__(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M)), `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M)), vcvtop, c_1)] +[visit_exp `%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M))] +[visit_exp lanetype#5867] +[visit_id lanetype#5867] not free +[visit_exp dim#5867] +[visit_id dim#5867] not free +[visit_exp i#27120] +[visit_id i#27120] not free +[visit_exp (Lnn_1, `%`_dim{i#27127}(M))] +[visit_exp Lnn_1] +[visit_id Lnn_1] not free +[visit_exp `%`_dim{i#27127}(M)] +[visit_exp i#27127] +[visit_id i#27127] not free +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M))] +[visit_exp lanetype#5879] +[visit_id lanetype#5879] not free +[visit_exp dim#5879] +[visit_id dim#5879] not free +[visit_exp i#27132] +[visit_id i#27132] not free +[visit_exp (Lnn_2, `%`_dim{i#27139}(M))] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp `%`_dim{i#27139}(M)] +[visit_exp i#27139] +[visit_id i#27139] not free +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp vcvtop] +[visit_id vcvtop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[visit_id dim#5867] not free +[visit_id dim#5879] not free +[visit_id i#27120] not free +[visit_id i#27127] not free +[visit_id i#27132] not free +[visit_id i#27139] not free +[visit_id lanetype#5867] not free +[visit_id lanetype#5879] not free +[scope_exit lanetype#5879] +[scope_exit lanetype#5867] +[scope_exit i#27139] +[scope_exit i#27132] +[scope_exit i#27127] +[scope_exit i#27120] +[scope_exit dim#5879] +[scope_exit dim#5867] +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp `dim#5867*`] +[visit_id dim#5867*] no dims +[visit_id dim#5867*] +[visit_exp `dim#5879*`] +[visit_id dim#5879*] no dims +[visit_id dim#5879*] +[visit_exp `i#27120*`] +[visit_id i#27120*] no dims +[visit_id i#27120*] +[visit_exp `i#27127*`] +[visit_id i#27127*] no dims +[visit_id i#27127*] +[visit_exp `i#27132*`] +[visit_id i#27132*] no dims +[visit_id i#27132*] +[visit_exp `i#27139*`] +[visit_id i#27139*] no dims +[visit_id i#27139*] +[visit_exp `lanetype#5867*`] +[visit_id lanetype#5867*] no dims +[visit_id lanetype#5867*] +[visit_exp `lanetype#5879*`] +[visit_id lanetype#5879*] no dims +[visit_id lanetype#5879*] +[visit_exp (v <- $inv_lanes_(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#5914 <- `dim#5914*`, i#27181 <- `i#27181*`, i#27188 <- `i#27188*`, lanetype#5914 <- `lanetype#5914*`})] +[visit_exp v] +[visit_id v] not free +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#5914 <- `dim#5914*`, i#27181 <- `i#27181*`, i#27188 <- `i#27188*`, lanetype#5914 <- `lanetype#5914*`}] +[scope_enter c*] +[scope_enter dim#5914] +[scope_enter i#27181] +[scope_enter i#27188] +[scope_enter lanetype#5914] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M))] +[visit_exp lanetype#5914] +[visit_id lanetype#5914] not free +[visit_exp dim#5914] +[visit_id dim#5914] not free +[visit_exp i#27181] +[visit_id i#27181] not free +[visit_exp (Lnn_2, `%`_dim{i#27188}(M))] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp `%`_dim{i#27188}(M)] +[visit_exp i#27188] +[visit_id i#27188] not free +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[visit_id dim#5914] not free +[visit_id i#27181] not free +[visit_id i#27188] not free +[visit_id lanetype#5914] not free +[scope_exit lanetype#5914] +[scope_exit i#27188] +[scope_exit i#27181] +[scope_exit dim#5914] +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] not free +[visit_id c**] no dims +[visit_exp `dim#5914*`] +[visit_id dim#5914*] no dims +[visit_id dim#5914*] +[visit_exp `i#27181*`] +[visit_id i#27181*] no dims +[visit_id i#27181*] +[visit_exp `i#27188*`] +[visit_id i#27188*] no dims +[visit_id i#27188*] +[visit_exp `lanetype#5914*`] +[visit_id lanetype#5914*] no dims +[visit_id lanetype#5914*] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vcvtop__{lanetype#5623 : lanetype, dim#5623 : dim, i#26806 : nat, Lnn_1 : Lnn, i#26813 : nat, M : M, lanetype#5635 : lanetype, dim#5635 : dim, i#26818 : nat, Lnn_2 : Lnn, i#26825 : nat, vcvtop : vcvtop__(`%X%`_shape{lanetype#5623, dim#5623, i#26806}(Lnn_1, `%`_dim{i#26813}(M)), `%X%`_shape{lanetype#5635, dim#5635, i#26818}(Lnn_2, `%`_dim{i#26825}(M))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#5671 : lanetype, dim#5671 : dim, i#26866 : nat, i#26873 : nat, lanetype#5683 : lanetype, dim#5683 : dim, i#26878 : nat, i#26885 : nat, lanetype#5711 : lanetype, dim#5711 : dim, i#26906 : nat, i#26913 : nat, lanetype#5723 : lanetype, dim#5723 : dim, i#26918 : nat, i#26925 : nat, lanetype#5751 : lanetype, dim#5751 : dim, i#26946 : nat, i#26953 : nat, `c**` : lane_(Lnn_2)**, `dim#5867*` : dim*, `dim#5879*` : dim*, `i#27120*` : nat*, `i#27127*` : nat*, `i#27132*` : nat*, `i#27139*` : nat*, `lanetype#5867*` : lanetype*, `lanetype#5879*` : lanetype*, `dim#5914*` : dim*, `i#27181*` : nat*, `i#27188*` : nat*, `lanetype#5914*` : lanetype*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))*}(`%X%`_shape{lanetype#5623, dim#5623, i#26806}(Lnn_1, `%`_dim{i#26813}(M)), `%X%`_shape{lanetype#5635, dim#5635, i#26818}(Lnn_2, `%`_dim{i#26825}(M)), vcvtop, v_1) = v + -- if (($halfop(`%X%`_shape{lanetype#5671, dim#5671, i#26866}(Lnn_1, `%`_dim{i#26873}(M)), `%X%`_shape{lanetype#5683, dim#5683, i#26878}(Lnn_2, `%`_dim{i#26885}(M)), vcvtop) = ?()) /\ ($zeroop(`%X%`_shape{lanetype#5711, dim#5711, i#26906}(Lnn_1, `%`_dim{i#26913}(M)), `%X%`_shape{lanetype#5723, dim#5723, i#26918}(Lnn_2, `%`_dim{i#26925}(M)), vcvtop) = ?())) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M)), v_1)) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M)), `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#5867 <- `dim#5867*`, dim#5879 <- `dim#5879*`, i#27120 <- `i#27120*`, i#27127 <- `i#27127*`, i#27132 <- `i#27132*`, i#27139 <- `i#27139*`, lanetype#5867 <- `lanetype#5867*`, lanetype#5879 <- `lanetype#5879*`})) + -- if (v <- $inv_lanes_(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#5914 <- `dim#5914*`, i#27181 <- `i#27181*`, i#27188 <- `i#27188*`, lanetype#5914 <- `lanetype#5914*`}) +[check_dims] Lnn_1 Lnn_2 M_1 M_2 c c_1 dim#5937 dim#5949 dim#6025 dim#6037 dim#6065 dim#6181 dim#6193 dim#6228 half i#27248 i#27255 i#27260 i#27267 i#27348 i#27355 i#27360 i#27367 i#27388 i#27395 i#27562 i#27569 i#27574 i#27581 i#27623 i#27630 lanetype#5937 lanetype#5949 lanetype#6025 lanetype#6037 lanetype#6065 lanetype#6181 lanetype#6193 lanetype#6228 v v_1 vcvtop +[visit_exp `%X%`_shape{lanetype#5937, dim#5937, i#27248}(Lnn_1, `%`_dim{i#27255}(M_1))] +[visit_exp lanetype#5937] +[visit_id lanetype#5937] +[visit_exp dim#5937] +[visit_id dim#5937] +[visit_exp i#27248] +[visit_id i#27248] +[visit_exp (Lnn_1, `%`_dim{i#27255}(M_1))] +[visit_exp Lnn_1] +[visit_id Lnn_1] +[visit_exp `%`_dim{i#27255}(M_1)] +[visit_exp i#27255] +[visit_id i#27255] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#5949, dim#5949, i#27260}(Lnn_2, `%`_dim{i#27267}(M_2))] +[visit_exp lanetype#5949] +[visit_id lanetype#5949] +[visit_exp dim#5949] +[visit_id dim#5949] +[visit_exp i#27260] +[visit_id i#27260] +[visit_exp (Lnn_2, `%`_dim{i#27267}(M_2))] +[visit_exp Lnn_2] +[visit_id Lnn_2] +[visit_exp `%`_dim{i#27267}(M_2)] +[visit_exp i#27267] +[visit_id i#27267] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp vcvtop] +[visit_id vcvtop] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v] +[visit_id v] +[visit_exp ($halfop(`%X%`_shape{lanetype#6025, dim#6025, i#27348}(Lnn_1, `%`_dim{i#27355}(M_1)), `%X%`_shape{lanetype#6037, dim#6037, i#27360}(Lnn_2, `%`_dim{i#27367}(M_2)), vcvtop) = ?(half))] +[visit_exp $halfop(`%X%`_shape{lanetype#6025, dim#6025, i#27348}(Lnn_1, `%`_dim{i#27355}(M_1)), `%X%`_shape{lanetype#6037, dim#6037, i#27360}(Lnn_2, `%`_dim{i#27367}(M_2)), vcvtop)] +[visit_exp `%X%`_shape{lanetype#6025, dim#6025, i#27348}(Lnn_1, `%`_dim{i#27355}(M_1))] +[visit_exp lanetype#6025] +[visit_id lanetype#6025] +[visit_exp dim#6025] +[visit_id dim#6025] +[visit_exp i#27348] +[visit_id i#27348] +[visit_exp (Lnn_1, `%`_dim{i#27355}(M_1))] +[visit_exp Lnn_1] +[visit_id Lnn_1] not free +[visit_exp `%`_dim{i#27355}(M_1)] +[visit_exp i#27355] +[visit_id i#27355] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp `%X%`_shape{lanetype#6037, dim#6037, i#27360}(Lnn_2, `%`_dim{i#27367}(M_2))] +[visit_exp lanetype#6037] +[visit_id lanetype#6037] +[visit_exp dim#6037] +[visit_id dim#6037] +[visit_exp i#27360] +[visit_id i#27360] +[visit_exp (Lnn_2, `%`_dim{i#27367}(M_2))] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp `%`_dim{i#27367}(M_2)] +[visit_exp i#27367] +[visit_id i#27367] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp vcvtop] +[visit_id vcvtop] not free +[visit_exp ?(half)] +[visit_exp half] +[visit_id half] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1)), v_1)[$half(half, 0, M_2) : M_2])] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1)), v_1)[$half(half, 0, M_2) : M_2]] +[visit_exp $lanes_(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1)), v_1)] +[visit_exp `%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))] +[visit_exp lanetype#6065] +[visit_id lanetype#6065] +[visit_exp dim#6065] +[visit_id dim#6065] +[visit_exp i#27388] +[visit_id i#27388] +[visit_exp (Lnn_1, `%`_dim{i#27395}(M_1))] +[visit_exp Lnn_1] +[visit_id Lnn_1] not free +[visit_exp `%`_dim{i#27395}(M_1)] +[visit_exp i#27395] +[visit_id i#27395] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp $half(half, 0, M_2)] +[visit_exp half] +[visit_id half] not free +[visit_exp 0] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1)), `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6181 <- `dim#6181*`, dim#6193 <- `dim#6193*`, i#27562 <- `i#27562*`, i#27569 <- `i#27569*`, i#27574 <- `i#27574*`, i#27581 <- `i#27581*`, lanetype#6181 <- `lanetype#6181*`, lanetype#6193 <- `lanetype#6193*`}))] +[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] +[scope_enter c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] no dims +[visit_id c**] +[visit_exp $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1)), `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6181 <- `dim#6181*`, dim#6193 <- `dim#6193*`, i#27562 <- `i#27562*`, i#27569 <- `i#27569*`, i#27574 <- `i#27574*`, i#27581 <- `i#27581*`, lanetype#6181 <- `lanetype#6181*`, lanetype#6193 <- `lanetype#6193*`})] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp $lcvtop__(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1)), `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6181 <- `dim#6181*`, dim#6193 <- `dim#6193*`, i#27562 <- `i#27562*`, i#27569 <- `i#27569*`, i#27574 <- `i#27574*`, i#27581 <- `i#27581*`, lanetype#6181 <- `lanetype#6181*`, lanetype#6193 <- `lanetype#6193*`}] +[scope_enter c_1] +[scope_enter dim#6181] +[scope_enter dim#6193] +[scope_enter i#27562] +[scope_enter i#27569] +[scope_enter i#27574] +[scope_enter i#27581] +[scope_enter lanetype#6181] +[scope_enter lanetype#6193] +[visit_exp $lcvtop__(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1)), `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2)), vcvtop, c_1)] +[visit_exp `%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1))] +[visit_exp lanetype#6181] +[visit_id lanetype#6181] not free +[visit_exp dim#6181] +[visit_id dim#6181] not free +[visit_exp i#27562] +[visit_id i#27562] not free +[visit_exp (Lnn_1, `%`_dim{i#27569}(M_1))] +[visit_exp Lnn_1] +[visit_id Lnn_1] not free +[visit_exp `%`_dim{i#27569}(M_1)] +[visit_exp i#27569] +[visit_id i#27569] not free +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2))] +[visit_exp lanetype#6193] +[visit_id lanetype#6193] not free +[visit_exp dim#6193] +[visit_id dim#6193] not free +[visit_exp i#27574] +[visit_id i#27574] not free +[visit_exp (Lnn_2, `%`_dim{i#27581}(M_2))] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp `%`_dim{i#27581}(M_2)] +[visit_exp i#27581] +[visit_id i#27581] not free +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp vcvtop] +[visit_id vcvtop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[visit_id dim#6181] not free +[visit_id dim#6193] not free +[visit_id i#27562] not free +[visit_id i#27569] not free +[visit_id i#27574] not free +[visit_id i#27581] not free +[visit_id lanetype#6181] not free +[visit_id lanetype#6193] not free +[scope_exit lanetype#6193] +[scope_exit lanetype#6181] +[scope_exit i#27581] +[scope_exit i#27574] +[scope_exit i#27569] +[scope_exit i#27562] +[scope_exit dim#6193] +[scope_exit dim#6181] +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp `dim#6181*`] +[visit_id dim#6181*] no dims +[visit_id dim#6181*] +[visit_exp `dim#6193*`] +[visit_id dim#6193*] no dims +[visit_id dim#6193*] +[visit_exp `i#27562*`] +[visit_id i#27562*] no dims +[visit_id i#27562*] +[visit_exp `i#27569*`] +[visit_id i#27569*] no dims +[visit_id i#27569*] +[visit_exp `i#27574*`] +[visit_id i#27574*] no dims +[visit_id i#27574*] +[visit_exp `i#27581*`] +[visit_id i#27581*] no dims +[visit_id i#27581*] +[visit_exp `lanetype#6181*`] +[visit_id lanetype#6181*] no dims +[visit_id lanetype#6181*] +[visit_exp `lanetype#6193*`] +[visit_id lanetype#6193*] no dims +[visit_id lanetype#6193*] +[visit_exp (v <- $inv_lanes_(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6228 <- `dim#6228*`, i#27623 <- `i#27623*`, i#27630 <- `i#27630*`, lanetype#6228 <- `lanetype#6228*`})] +[visit_exp v] +[visit_id v] not free +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6228 <- `dim#6228*`, i#27623 <- `i#27623*`, i#27630 <- `i#27630*`, lanetype#6228 <- `lanetype#6228*`}] +[scope_enter c*] +[scope_enter dim#6228] +[scope_enter i#27623] +[scope_enter i#27630] +[scope_enter lanetype#6228] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2))] +[visit_exp lanetype#6228] +[visit_id lanetype#6228] not free +[visit_exp dim#6228] +[visit_id dim#6228] not free +[visit_exp i#27623] +[visit_id i#27623] not free +[visit_exp (Lnn_2, `%`_dim{i#27630}(M_2))] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp `%`_dim{i#27630}(M_2)] +[visit_exp i#27630] +[visit_id i#27630] not free +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[visit_id dim#6228] not free +[visit_id i#27623] not free +[visit_id i#27630] not free +[visit_id lanetype#6228] not free +[scope_exit lanetype#6228] +[scope_exit i#27630] +[scope_exit i#27623] +[scope_exit dim#6228] +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] not free +[visit_id c**] no dims +[visit_exp `dim#6228*`] +[visit_id dim#6228*] no dims +[visit_id dim#6228*] +[visit_exp `i#27623*`] +[visit_id i#27623*] no dims +[visit_id i#27623*] +[visit_exp `i#27630*`] +[visit_id i#27630*] no dims +[visit_id i#27630*] +[visit_exp `lanetype#6228*`] +[visit_id lanetype#6228*] no dims +[visit_id lanetype#6228*] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vcvtop__{lanetype#5937 : lanetype, dim#5937 : dim, i#27248 : nat, Lnn_1 : Lnn, i#27255 : nat, M_1 : M, lanetype#5949 : lanetype, dim#5949 : dim, i#27260 : nat, Lnn_2 : Lnn, i#27267 : nat, M_2 : M, vcvtop : vcvtop__(`%X%`_shape{lanetype#5937, dim#5937, i#27248}(Lnn_1, `%`_dim{i#27255}(M_1)), `%X%`_shape{lanetype#5949, dim#5949, i#27260}(Lnn_2, `%`_dim{i#27267}(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#6025 : lanetype, dim#6025 : dim, i#27348 : nat, i#27355 : nat, lanetype#6037 : lanetype, dim#6037 : dim, i#27360 : nat, i#27367 : nat, half : half, lanetype#6065 : lanetype, dim#6065 : dim, i#27388 : nat, i#27395 : nat, `c**` : lane_(Lnn_2)**, `dim#6181*` : dim*, `dim#6193*` : dim*, `i#27562*` : nat*, `i#27569*` : nat*, `i#27574*` : nat*, `i#27581*` : nat*, `lanetype#6181*` : lanetype*, `lanetype#6193*` : lanetype*, `dim#6228*` : dim*, `i#27623*` : nat*, `i#27630*` : nat*, `lanetype#6228*` : lanetype*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))*}(`%X%`_shape{lanetype#5937, dim#5937, i#27248}(Lnn_1, `%`_dim{i#27255}(M_1)), `%X%`_shape{lanetype#5949, dim#5949, i#27260}(Lnn_2, `%`_dim{i#27267}(M_2)), vcvtop, v_1) = v + -- if ($halfop(`%X%`_shape{lanetype#6025, dim#6025, i#27348}(Lnn_1, `%`_dim{i#27355}(M_1)), `%X%`_shape{lanetype#6037, dim#6037, i#27360}(Lnn_2, `%`_dim{i#27367}(M_2)), vcvtop) = ?(half)) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1)), v_1)[$half(half, 0, M_2) : M_2]) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1)), `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6181 <- `dim#6181*`, dim#6193 <- `dim#6193*`, i#27562 <- `i#27562*`, i#27569 <- `i#27569*`, i#27574 <- `i#27574*`, i#27581 <- `i#27581*`, lanetype#6181 <- `lanetype#6181*`, lanetype#6193 <- `lanetype#6193*`})) + -- if (v <- $inv_lanes_(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6228 <- `dim#6228*`, i#27623 <- `i#27623*`, i#27630 <- `i#27630*`, lanetype#6228 <- `lanetype#6228*`}) +[check_dims] Lnn_1 Lnn_2 M_1 M_2 c c_1 dim#6251 dim#6263 dim#6299 dim#6311 dim#6339 dim#6501 dim#6513 dim#6548 i#27690 i#27697 i#27702 i#27709 i#27750 i#27757 i#27762 i#27769 i#27790 i#27797 i#28022 i#28029 i#28034 i#28041 i#28083 i#28090 lanetype#6251 lanetype#6263 lanetype#6299 lanetype#6311 lanetype#6339 lanetype#6501 lanetype#6513 lanetype#6548 v v_1 vcvtop +[visit_exp `%X%`_shape{lanetype#6251, dim#6251, i#27690}(Lnn_1, `%`_dim{i#27697}(M_1))] +[visit_exp lanetype#6251] +[visit_id lanetype#6251] +[visit_exp dim#6251] +[visit_id dim#6251] +[visit_exp i#27690] +[visit_id i#27690] +[visit_exp (Lnn_1, `%`_dim{i#27697}(M_1))] +[visit_exp Lnn_1] +[visit_id Lnn_1] +[visit_exp `%`_dim{i#27697}(M_1)] +[visit_exp i#27697] +[visit_id i#27697] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#6263, dim#6263, i#27702}(Lnn_2, `%`_dim{i#27709}(M_2))] +[visit_exp lanetype#6263] +[visit_id lanetype#6263] +[visit_exp dim#6263] +[visit_id dim#6263] +[visit_exp i#27702] +[visit_id i#27702] +[visit_exp (Lnn_2, `%`_dim{i#27709}(M_2))] +[visit_exp Lnn_2] +[visit_id Lnn_2] +[visit_exp `%`_dim{i#27709}(M_2)] +[visit_exp i#27709] +[visit_id i#27709] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp vcvtop] +[visit_id vcvtop] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v] +[visit_id v] +[visit_exp ($zeroop(`%X%`_shape{lanetype#6299, dim#6299, i#27750}(Lnn_1, `%`_dim{i#27757}(M_1)), `%X%`_shape{lanetype#6311, dim#6311, i#27762}(Lnn_2, `%`_dim{i#27769}(M_2)), vcvtop) = ?(`ZERO`_zero))] +[visit_exp $zeroop(`%X%`_shape{lanetype#6299, dim#6299, i#27750}(Lnn_1, `%`_dim{i#27757}(M_1)), `%X%`_shape{lanetype#6311, dim#6311, i#27762}(Lnn_2, `%`_dim{i#27769}(M_2)), vcvtop)] +[visit_exp `%X%`_shape{lanetype#6299, dim#6299, i#27750}(Lnn_1, `%`_dim{i#27757}(M_1))] +[visit_exp lanetype#6299] +[visit_id lanetype#6299] +[visit_exp dim#6299] +[visit_id dim#6299] +[visit_exp i#27750] +[visit_id i#27750] +[visit_exp (Lnn_1, `%`_dim{i#27757}(M_1))] +[visit_exp Lnn_1] +[visit_id Lnn_1] not free +[visit_exp `%`_dim{i#27757}(M_1)] +[visit_exp i#27757] +[visit_id i#27757] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp `%X%`_shape{lanetype#6311, dim#6311, i#27762}(Lnn_2, `%`_dim{i#27769}(M_2))] +[visit_exp lanetype#6311] +[visit_id lanetype#6311] +[visit_exp dim#6311] +[visit_id dim#6311] +[visit_exp i#27762] +[visit_id i#27762] +[visit_exp (Lnn_2, `%`_dim{i#27769}(M_2))] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp `%`_dim{i#27769}(M_2)] +[visit_exp i#27769] +[visit_id i#27769] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp vcvtop] +[visit_id vcvtop] not free +[visit_exp ?(`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1)), v_1)] +[visit_exp `%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))] +[visit_exp lanetype#6339] +[visit_id lanetype#6339] +[visit_exp dim#6339] +[visit_id dim#6339] +[visit_exp i#27790] +[visit_id i#27790] +[visit_exp (Lnn_1, `%`_dim{i#27797}(M_1))] +[visit_exp Lnn_1] +[visit_id Lnn_1] not free +[visit_exp `%`_dim{i#27797}(M_1)] +[visit_exp i#27797] +[visit_id i#27797] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6501 <- `dim#6501*`, dim#6513 <- `dim#6513*`, i#28022 <- `i#28022*`, i#28029 <- `i#28029*`, i#28034 <- `i#28034*`, i#28041 <- `i#28041*`, lanetype#6501 <- `lanetype#6501*`, lanetype#6513 <- `lanetype#6513*`} ++ [$zero(Lnn_2)]^M_1{}))] +[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] +[scope_enter c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] no dims +[visit_id c**] +[visit_exp $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6501 <- `dim#6501*`, dim#6513 <- `dim#6513*`, i#28022 <- `i#28022*`, i#28029 <- `i#28029*`, i#28034 <- `i#28034*`, i#28041 <- `i#28041*`, lanetype#6501 <- `lanetype#6501*`, lanetype#6513 <- `lanetype#6513*`} ++ [$zero(Lnn_2)]^M_1{})] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6501 <- `dim#6501*`, dim#6513 <- `dim#6513*`, i#28022 <- `i#28022*`, i#28029 <- `i#28029*`, i#28034 <- `i#28034*`, i#28041 <- `i#28041*`, lanetype#6501 <- `lanetype#6501*`, lanetype#6513 <- `lanetype#6513*`} ++ [$zero(Lnn_2)]^M_1{}] +[visit_exp $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6501 <- `dim#6501*`, dim#6513 <- `dim#6513*`, i#28022 <- `i#28022*`, i#28029 <- `i#28029*`, i#28034 <- `i#28034*`, i#28041 <- `i#28041*`, lanetype#6501 <- `lanetype#6501*`, lanetype#6513 <- `lanetype#6513*`}] +[scope_enter c_1] +[scope_enter dim#6501] +[scope_enter dim#6513] +[scope_enter i#28022] +[scope_enter i#28029] +[scope_enter i#28034] +[scope_enter i#28041] +[scope_enter lanetype#6501] +[scope_enter lanetype#6513] +[visit_exp $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)] +[visit_exp `%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1))] +[visit_exp lanetype#6501] +[visit_id lanetype#6501] not free +[visit_exp dim#6501] +[visit_id dim#6501] not free +[visit_exp i#28022] +[visit_id i#28022] not free +[visit_exp (Lnn_1, `%`_dim{i#28029}(M_1))] +[visit_exp Lnn_1] +[visit_id Lnn_1] not free +[visit_exp `%`_dim{i#28029}(M_1)] +[visit_exp i#28029] +[visit_id i#28029] not free +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2))] +[visit_exp lanetype#6513] +[visit_id lanetype#6513] not free +[visit_exp dim#6513] +[visit_id dim#6513] not free +[visit_exp i#28034] +[visit_id i#28034] not free +[visit_exp (Lnn_2, `%`_dim{i#28041}(M_2))] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp `%`_dim{i#28041}(M_2)] +[visit_exp i#28041] +[visit_id i#28041] not free +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp vcvtop] +[visit_id vcvtop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[visit_id dim#6501] not free +[visit_id dim#6513] not free +[visit_id i#28022] not free +[visit_id i#28029] not free +[visit_id i#28034] not free +[visit_id i#28041] not free +[visit_id lanetype#6501] not free +[visit_id lanetype#6513] not free +[scope_exit lanetype#6513] +[scope_exit lanetype#6501] +[scope_exit i#28041] +[scope_exit i#28034] +[scope_exit i#28029] +[scope_exit i#28022] +[scope_exit dim#6513] +[scope_exit dim#6501] +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp `dim#6501*`] +[visit_id dim#6501*] no dims +[visit_id dim#6501*] +[visit_exp `dim#6513*`] +[visit_id dim#6513*] no dims +[visit_id dim#6513*] +[visit_exp `i#28022*`] +[visit_id i#28022*] no dims +[visit_id i#28022*] +[visit_exp `i#28029*`] +[visit_id i#28029*] no dims +[visit_id i#28029*] +[visit_exp `i#28034*`] +[visit_id i#28034*] no dims +[visit_id i#28034*] +[visit_exp `i#28041*`] +[visit_id i#28041*] no dims +[visit_id i#28041*] +[visit_exp `lanetype#6501*`] +[visit_id lanetype#6501*] no dims +[visit_id lanetype#6501*] +[visit_exp `lanetype#6513*`] +[visit_id lanetype#6513*] no dims +[visit_id lanetype#6513*] +[visit_exp [$zero(Lnn_2)]^M_1{}] +[visit_exp [$zero(Lnn_2)]] +[visit_exp $zero(Lnn_2)] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp (v <- $inv_lanes_(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6548 <- `dim#6548*`, i#28083 <- `i#28083*`, i#28090 <- `i#28090*`, lanetype#6548 <- `lanetype#6548*`})] +[visit_exp v] +[visit_id v] not free +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6548 <- `dim#6548*`, i#28083 <- `i#28083*`, i#28090 <- `i#28090*`, lanetype#6548 <- `lanetype#6548*`}] +[scope_enter c*] +[scope_enter dim#6548] +[scope_enter i#28083] +[scope_enter i#28090] +[scope_enter lanetype#6548] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2))] +[visit_exp lanetype#6548] +[visit_id lanetype#6548] not free +[visit_exp dim#6548] +[visit_id dim#6548] not free +[visit_exp i#28083] +[visit_id i#28083] not free +[visit_exp (Lnn_2, `%`_dim{i#28090}(M_2))] +[visit_exp Lnn_2] +[visit_id Lnn_2] not free +[visit_exp `%`_dim{i#28090}(M_2)] +[visit_exp i#28090] +[visit_id i#28090] not free +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_id c*] not free +[visit_id c*] no dims +[visit_id dim#6548] not free +[visit_id i#28083] not free +[visit_id i#28090] not free +[visit_id lanetype#6548] not free +[scope_exit lanetype#6548] +[scope_exit i#28090] +[scope_exit i#28083] +[scope_exit dim#6548] +[scope_exit c*] +[visit_exp `c**`] +[visit_id c**] not free +[visit_id c**] no dims +[visit_exp `dim#6548*`] +[visit_id dim#6548*] no dims +[visit_id dim#6548*] +[visit_exp `i#28083*`] +[visit_id i#28083*] no dims +[visit_id i#28083*] +[visit_exp `i#28090*`] +[visit_id i#28090*] no dims +[visit_id i#28090*] +[visit_exp `lanetype#6548*`] +[visit_id lanetype#6548*] no dims +[visit_id lanetype#6548*] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vcvtop__{lanetype#6251 : lanetype, dim#6251 : dim, i#27690 : nat, Lnn_1 : Lnn, i#27697 : nat, M_1 : M, lanetype#6263 : lanetype, dim#6263 : dim, i#27702 : nat, Lnn_2 : Lnn, i#27709 : nat, M_2 : M, vcvtop : vcvtop__(`%X%`_shape{lanetype#6251, dim#6251, i#27690}(Lnn_1, `%`_dim{i#27697}(M_1)), `%X%`_shape{lanetype#6263, dim#6263, i#27702}(Lnn_2, `%`_dim{i#27709}(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#6299 : lanetype, dim#6299 : dim, i#27750 : nat, i#27757 : nat, lanetype#6311 : lanetype, dim#6311 : dim, i#27762 : nat, i#27769 : nat, lanetype#6339 : lanetype, dim#6339 : dim, i#27790 : nat, i#27797 : nat, `c**` : lane_(Lnn_2)**, `dim#6501*` : dim*, `dim#6513*` : dim*, `i#28022*` : nat*, `i#28029*` : nat*, `i#28034*` : nat*, `i#28041*` : nat*, `lanetype#6501*` : lanetype*, `lanetype#6513*` : lanetype*, `dim#6548*` : dim*, `i#28083*` : nat*, `i#28090*` : nat*, `lanetype#6548*` : lanetype*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))*}(`%X%`_shape{lanetype#6251, dim#6251, i#27690}(Lnn_1, `%`_dim{i#27697}(M_1)), `%X%`_shape{lanetype#6263, dim#6263, i#27702}(Lnn_2, `%`_dim{i#27709}(M_2)), vcvtop, v_1) = v + -- if ($zeroop(`%X%`_shape{lanetype#6299, dim#6299, i#27750}(Lnn_1, `%`_dim{i#27757}(M_1)), `%X%`_shape{lanetype#6311, dim#6311, i#27762}(Lnn_2, `%`_dim{i#27769}(M_2)), vcvtop) = ?(`ZERO`_zero)) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1)), v_1)) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6501 <- `dim#6501*`, dim#6513 <- `dim#6513*`, i#28022 <- `i#28022*`, i#28029 <- `i#28029*`, i#28034 <- `i#28034*`, i#28041 <- `i#28041*`, lanetype#6501 <- `lanetype#6501*`, lanetype#6513 <- `lanetype#6513*`} ++ [$zero(Lnn_2)]^M_1{})) + -- if (v <- $inv_lanes_(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6548 <- `dim#6548*`, i#28083 <- `i#28083*`, i#28090 <- `i#28090*`, lanetype#6548 <- `lanetype#6548*`}) +[check_dims] Jnn_1 Jnn_2 M_1 M_2 c'_1 c'_2 c_1 c_2 dim#6571 dim#6583 dim#6595 dim#6620 dim#6647 i#28150 i#28157 i#28162 i#28169 i#28198 i#28205 i#28284 i#28291 i#28450 i#28457 lanetype#6571 lanetype#6583 lanetype#6595 lanetype#6620 lanetype#6647 sx v v_1 v_2 +[visit_exp `%X%`_shape{lanetype#6571, dim#6571, i#28150}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28157}(M_1))] +[visit_exp lanetype#6571] +[visit_id lanetype#6571] +[visit_exp dim#6571] +[visit_id dim#6571] +[visit_exp i#28150] +[visit_id i#28150] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28157}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#28157}(M_1)] +[visit_exp i#28157] +[visit_id i#28157] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#6583, dim#6583, i#28162}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28169}(M_2))] +[visit_exp lanetype#6583] +[visit_id lanetype#6583] +[visit_exp dim#6583] +[visit_id dim#6583] +[visit_exp i#28162] +[visit_id i#28162] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28169}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#28169}(M_2)] +[visit_exp i#28169] +[visit_id i#28169] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp v] +[visit_id v] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1)), v_1)] +[visit_exp `%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))] +[visit_exp lanetype#6595] +[visit_id lanetype#6595] +[visit_exp dim#6595] +[visit_id dim#6595] +[visit_exp i#28198] +[visit_id i#28198] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp `%`_dim{i#28205}(M_1)] +[visit_exp i#28205] +[visit_id i#28205] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1)), v_2))] +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] no dims +[visit_id c_2*] +[visit_exp $lanes_(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1)), v_2)] +[visit_exp `%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))] +[visit_exp lanetype#6620] +[visit_id lanetype#6620] +[visit_exp dim#6620] +[visit_id dim#6620] +[visit_exp i#28284] +[visit_id i#28284] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp `%`_dim{i#28291}(M_1)] +[visit_exp i#28291] +[visit_id i#28291] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp (c'_1*{c'_1 <- `c'_1*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`})] +[visit_exp c'_1*{c'_1 <- `c'_1*`}] +[scope_enter c'_1] +[visit_exp c'_1] +[visit_id c'_1] not free +[visit_id c'_1] not free +[scope_exit c'_1] +[visit_exp `c'_1*`] +[visit_id c'_1*] no dims +[visit_id c'_1*] +[visit_exp $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_1)] +[visit_exp $lsize((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp $lsize((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp (c'_2*{c'_2 <- `c'_2*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_2)*{c_2 <- `c_2*`})] +[visit_exp c'_2*{c'_2 <- `c'_2*`}] +[scope_enter c'_2] +[visit_exp c'_2] +[visit_id c'_2] not free +[visit_id c'_2] not free +[scope_exit c'_2] +[visit_exp `c'_2*`] +[visit_id c'_2*] no dims +[visit_id c'_2*] +[visit_exp $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_2)*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_2)] +[visit_exp $lsize((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp $lsize((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] not free +[visit_id c_2*] no dims +[visit_exp (v = $inv_lanes_(`%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`}))] +[visit_exp v] +[visit_id v] not free +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`})] +[visit_exp `%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2))] +[visit_exp lanetype#6647] +[visit_id lanetype#6647] +[visit_exp dim#6647] +[visit_id dim#6647] +[visit_exp i#28450] +[visit_id i#28450] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp `%`_dim{i#28457}(M_2)] +[visit_exp i#28457] +[visit_id i#28457] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`}] +[visit_exp c'_1*{c'_1 <- `c'_1*`}] +[scope_enter c'_1] +[visit_exp c'_1] +[visit_id c'_1] not free +[visit_id c'_1] not free +[scope_exit c'_1] +[visit_exp `c'_1*`] +[visit_id c'_1*] not free +[visit_id c'_1*] no dims +[visit_exp c'_2*{c'_2 <- `c'_2*`}] +[scope_enter c'_2] +[visit_exp c'_2] +[visit_id c'_2] not free +[visit_id c'_2] not free +[scope_exit c'_2] +[visit_exp `c'_2*`] +[visit_id c'_2*] not free +[visit_id c'_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vnarrowop__{lanetype#6571 : lanetype, dim#6571 : dim, i#28150 : nat, Jnn_1 : Jnn, i#28157 : nat, M_1 : M, lanetype#6583 : lanetype, dim#6583 : dim, i#28162 : nat, Jnn_2 : Jnn, i#28169 : nat, M_2 : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#6595 : lanetype, dim#6595 : dim, i#28198 : nat, i#28205 : nat, lanetype#6620 : lanetype, dim#6620 : dim, i#28284 : nat, i#28291 : nat, `c'_1*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, lanetype#6647 : lanetype, dim#6647 : dim, i#28450 : nat, i#28457 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))*}(`%X%`_shape{lanetype#6571, dim#6571, i#28150}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28157}(M_1)), `%X%`_shape{lanetype#6583, dim#6583, i#28162}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28169}(M_2)), sx, v_1, v_2) = v + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1)), v_2)) + -- if (c'_1*{c'_1 <- `c'_1*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}) + -- if (c'_2*{c'_2 <- `c'_2*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_2)*{c_2 <- `c_2*`}) + -- if (v = $inv_lanes_(`%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`})) +[check_dims] N _ shape_1 shape_2 sx vec_ +DecD ivextunop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id shape_1] not free +[visit_id shape_2] not free +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[visit_id sx] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] Jnn_1 Jnn_2 M_1 M_2 c c'_1 c_1 dim#6690 dim#6702 dim#6714 dim#6740 i#28642 i#28649 i#28654 i#28661 i#28678 i#28685 i#28862 i#28869 lanetype#6690 lanetype#6702 lanetype#6714 lanetype#6740 sx v_1 +[visit_exp `%X%`_shape{lanetype#6690, dim#6690, i#28642}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28649}(M_1))] +[visit_exp lanetype#6690] +[visit_id lanetype#6690] +[visit_exp dim#6690] +[visit_id dim#6690] +[visit_exp i#28642] +[visit_id i#28642] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28649}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#28649}(M_1)] +[visit_exp i#28649] +[visit_id i#28649] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#6702, dim#6702, i#28654}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28661}(M_2))] +[visit_exp lanetype#6702] +[visit_id lanetype#6702] +[visit_exp dim#6702] +[visit_id dim#6702] +[visit_exp i#28654] +[visit_id i#28654] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28661}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#28661}(M_2)] +[visit_exp i#28661] +[visit_id i#28661] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6740, dim#6740, i#28862}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28869}(M_2)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#6740, dim#6740, i#28862}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28869}(M_2))] +[visit_exp lanetype#6740] +[visit_id lanetype#6740] +[visit_exp dim#6740] +[visit_id dim#6740] +[visit_exp i#28862] +[visit_id i#28862] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28869}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp `%`_dim{i#28869}(M_2)] +[visit_exp i#28869] +[visit_id i#28869] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1)), v_1))] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1)), v_1)] +[visit_exp `%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))] +[visit_exp lanetype#6714] +[visit_id lanetype#6714] +[visit_exp dim#6714] +[visit_id dim#6714] +[visit_exp i#28678] +[visit_id i#28678] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp `%`_dim{i#28685}(M_1)] +[visit_exp i#28685] +[visit_id i#28685] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`})] +[visit_exp c'_1*{c'_1 <- `c'_1*`}] +[scope_enter c'_1] +[visit_exp c'_1] +[visit_id c'_1] not free +[visit_id c'_1] not free +[scope_exit c'_1] +[visit_exp `c'_1*`] +[visit_id c'_1*] no dims +[visit_id c'_1*] +[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`}))] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`})] +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp c'_1*{c'_1 <- `c'_1*`}] +[scope_enter c'_1] +[visit_exp c'_1] +[visit_id c'_1] not free +[visit_id c'_1] not free +[scope_exit c'_1] +[visit_exp `c'_1*`] +[visit_id c'_1*] not free +[visit_id c'_1*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivextunop__{lanetype#6690 : lanetype, dim#6690 : dim, i#28642 : nat, Jnn_1 : Jnn, i#28649 : nat, M_1 : M, lanetype#6702 : lanetype, dim#6702 : dim, i#28654 : nat, Jnn_2 : Jnn, i#28661 : nat, M_2 : M, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), lanetype#6740 : lanetype, dim#6740 : dim, i#28862 : nat, i#28869 : nat, `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, lanetype#6714 : lanetype, dim#6714 : dim, i#28678 : nat, i#28685 : nat, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))*}(`%X%`_shape{lanetype#6690, dim#6690, i#28642}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28649}(M_1)), `%X%`_shape{lanetype#6702, dim#6702, i#28654}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28661}(M_2)), def $f_, sx, v_1) = $inv_lanes_(`%X%`_shape{lanetype#6740, dim#6740, i#28862}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28869}(M_2)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1)), v_1)) + -- if (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}) + -- if (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`})) +[check_dims] N _ laneidx shape_1 shape_2 sx vec_ +DecD ivextbinop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx : sx, sx : sx, laneidx : laneidx, laneidx : laneidx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +[visit_id shape_1] not free +[visit_id shape_2] not free +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[visit_id sx] not free +[visit_id sx] not free +[visit_id laneidx] not free +[visit_id laneidx] not free +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_id vec_] not free +[visit_exp `V128`_Vnn] +[visit_exp ()] +[visit_exp `V128`_Vnn] +[visit_exp ()] +[check_dims] Jnn_1 Jnn_2 M_1 M_2 c c'_1 c'_2 c_1 c_2 dim#6764 dim#6776 dim#6788 dim#6813 dim#6840 i i#28935 i#28942 i#28947 i#28954 i#29007 i#29014 i#29034 i#29044 i#29113 i#29120 i#29140 i#29150 i#29380 i#29387 k lanetype#6764 lanetype#6776 lanetype#6788 lanetype#6813 lanetype#6840 sx_1 sx_2 v_1 v_2 +[visit_exp `%X%`_shape{lanetype#6764, dim#6764, i#28935}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28942}(M_1))] +[visit_exp lanetype#6764] +[visit_id lanetype#6764] +[visit_exp dim#6764] +[visit_id dim#6764] +[visit_exp i#28935] +[visit_id i#28935] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28942}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#28942}(M_1)] +[visit_exp i#28942] +[visit_id i#28942] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%X%`_shape{lanetype#6776, dim#6776, i#28947}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28954}(M_2))] +[visit_exp lanetype#6776] +[visit_id lanetype#6776] +[visit_exp dim#6776] +[visit_id dim#6776] +[visit_exp i#28947] +[visit_id i#28947] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28954}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#28954}(M_2)] +[visit_exp i#28954] +[visit_id i#28954] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp sx_1] +[visit_id sx_1] +[visit_exp sx_2] +[visit_id sx_2] +[visit_exp i] +[visit_id i] +[visit_exp k] +[visit_id k] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6840, dim#6840, i#29380}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29387}(M_2)), c*{c <- `c*`})] +[visit_exp `%X%`_shape{lanetype#6840, dim#6840, i#29380}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29387}(M_2))] +[visit_exp lanetype#6840] +[visit_id lanetype#6840] +[visit_exp dim#6840] +[visit_id dim#6840] +[visit_exp i#29380] +[visit_id i#29380] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29387}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp `%`_dim{i#29387}(M_2)] +[visit_exp i#29387] +[visit_id i#29387] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1)), v_1)[i!`%`_laneidx{i#29034}.0 : k!`%`_laneidx{i#29044}.0])] +[visit_exp c_1*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] no dims +[visit_id c_1*] +[visit_exp $lanes_(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1)), v_1)[i!`%`_laneidx{i#29034}.0 : k!`%`_laneidx{i#29044}.0]] +[visit_exp $lanes_(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1)), v_1)] +[visit_exp `%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))] +[visit_exp lanetype#6788] +[visit_id lanetype#6788] +[visit_exp dim#6788] +[visit_id dim#6788] +[visit_exp i#29007] +[visit_id i#29007] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp `%`_dim{i#29014}(M_1)] +[visit_exp i#29014] +[visit_id i#29014] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp i!`%`_laneidx{i#29034}.0] +[visit_exp i!`%`_laneidx{i#29034}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#29034] +[visit_id i#29034] +[visit_exp k!`%`_laneidx{i#29044}.0] +[visit_exp k!`%`_laneidx{i#29044}] +[visit_exp k] +[visit_id k] not free +[visit_exp i#29044] +[visit_id i#29044] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1)), v_2)[i!`%`_laneidx{i#29140}.0 : k!`%`_laneidx{i#29150}.0])] +[visit_exp c_2*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] no dims +[visit_id c_2*] +[visit_exp $lanes_(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1)), v_2)[i!`%`_laneidx{i#29140}.0 : k!`%`_laneidx{i#29150}.0]] +[visit_exp $lanes_(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1)), v_2)] +[visit_exp `%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))] +[visit_exp lanetype#6813] +[visit_id lanetype#6813] +[visit_exp dim#6813] +[visit_id dim#6813] +[visit_exp i#29113] +[visit_id i#29113] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp `%`_dim{i#29120}(M_1)] +[visit_exp i#29120] +[visit_id i#29120] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp v_2] +[visit_id v_2] not free +[visit_exp i!`%`_laneidx{i#29140}.0] +[visit_exp i!`%`_laneidx{i#29140}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#29140] +[visit_id i#29140] +[visit_exp k!`%`_laneidx{i#29150}.0] +[visit_exp k!`%`_laneidx{i#29150}] +[visit_exp k] +[visit_id k] not free +[visit_exp i#29150] +[visit_id i#29150] +[visit_exp (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_1, c_1)*{c_1 <- `c_1*`})] +[visit_exp c'_1*{c'_1 <- `c'_1*`}] +[scope_enter c'_1] +[visit_exp c'_1] +[visit_id c'_1] not free +[visit_id c'_1] not free +[scope_exit c'_1] +[visit_exp `c'_1*`] +[visit_id c'_1*] no dims +[visit_id c'_1*] +[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_1, c_1)*{c_1 <- `c_1*`}] +[scope_enter c_1] +[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_1, c_1)] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp sx_1] +[visit_id sx_1] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_id c_1] not free +[scope_exit c_1] +[visit_exp `c_1*`] +[visit_id c_1*] not free +[visit_id c_1*] no dims +[visit_exp (c'_2*{c'_2 <- `c'_2*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_2, c_2)*{c_2 <- `c_2*`})] +[visit_exp c'_2*{c'_2 <- `c'_2*`}] +[scope_enter c'_2] +[visit_exp c'_2] +[visit_id c'_2] not free +[visit_id c'_2] not free +[scope_exit c'_2] +[visit_exp `c'_2*`] +[visit_id c'_2*] no dims +[visit_id c'_2*] +[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_2, c_2)*{c_2 <- `c_2*`}] +[scope_enter c_2] +[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_2, c_2)] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp sx_2] +[visit_id sx_2] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_id c_2] not free +[scope_exit c_2] +[visit_exp `c_2*`] +[visit_id c_2*] not free +[visit_id c_2*] no dims +[visit_exp (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`}, c'_2*{c'_2 <- `c'_2*`}))] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`}, c'_2*{c'_2 <- `c'_2*`})] +[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp c'_1*{c'_1 <- `c'_1*`}] +[scope_enter c'_1] +[visit_exp c'_1] +[visit_id c'_1] not free +[visit_id c'_1] not free +[scope_exit c'_1] +[visit_exp `c'_1*`] +[visit_id c'_1*] not free +[visit_id c'_1*] no dims +[visit_exp c'_2*{c'_2 <- `c'_2*`}] +[scope_enter c'_2] +[visit_exp c'_2] +[visit_id c'_2] not free +[visit_id c'_2] not free +[scope_exit c'_2] +[visit_exp `c'_2*`] +[visit_id c'_2*] not free +[visit_id c'_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivextbinop__{lanetype#6764 : lanetype, dim#6764 : dim, i#28935 : nat, Jnn_1 : Jnn, i#28942 : nat, M_1 : M, lanetype#6776 : lanetype, dim#6776 : dim, i#28947 : nat, Jnn_2 : Jnn, i#28954 : nat, M_2 : M, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx_1 : sx, sx_2 : sx, i : laneidx, k : laneidx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#6840 : lanetype, dim#6840 : dim, i#29380 : nat, i#29387 : nat, `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, lanetype#6788 : lanetype, dim#6788 : dim, i#29007 : nat, i#29014 : nat, i#29034 : nat, i#29044 : nat, lanetype#6813 : lanetype, dim#6813 : dim, i#29113 : nat, i#29120 : nat, i#29140 : nat, i#29150 : nat, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))*}(`%X%`_shape{lanetype#6764, dim#6764, i#28935}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28942}(M_1)), `%X%`_shape{lanetype#6776, dim#6776, i#28947}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28954}(M_2)), def $f_, sx_1, sx_2, i, k, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#6840, dim#6840, i#29380}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29387}(M_2)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1)), v_1)[i!`%`_laneidx{i#29034}.0 : k!`%`_laneidx{i#29044}.0]) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1)), v_2)[i!`%`_laneidx{i#29140}.0 : k!`%`_laneidx{i#29150}.0]) + -- if (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_1, c_1)*{c_1 <- `c_1*`}) + -- if (c'_2*{c'_2 <- `c'_2*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_2, c_2)*{c_2 <- `c_2*`}) + -- if (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`}, c'_2*{c'_2 <- `c'_2*`})) +[check_dims] N _ +DecD ivadd_pairwise_(N : N, iN(N)*) : iN(N)* +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N i i#29472 i#29492 i#29500 j_1 j_2 +[visit_exp N] +[visit_id N] +[visit_exp i*{i <- `i*`}] +[scope_enter i] +[visit_exp i] +[visit_id i] not free +[visit_id i] not free +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] no dims +[visit_id i*] +[visit_exp $iadd_(N, `%`_iN{i#29492}(j_1), `%`_iN{i#29500}(j_2))*{i#29492 <- `i#29492*`, i#29500 <- `i#29500*`, j_1 <- `j_1*`, j_2 <- `j_2*`}] +[scope_enter i#29492] +[scope_enter i#29500] +[scope_enter j_1] +[scope_enter j_2] +[visit_exp $iadd_(N, `%`_iN{i#29492}(j_1), `%`_iN{i#29500}(j_2))] +[visit_exp N] +[visit_id N] not free +[visit_exp `%`_iN{i#29492}(j_1)] +[visit_exp i#29492] +[visit_id i#29492] not free +[visit_exp (j_1)] +[visit_exp j_1] +[visit_id j_1] not free +[visit_exp `%`_iN{i#29500}(j_2)] +[visit_exp i#29500] +[visit_id i#29500] not free +[visit_exp (j_2)] +[visit_exp j_2] +[visit_id j_2] not free +[visit_id i#29492] not free +[visit_id i#29500] not free +[visit_id j_1] not free +[visit_id j_2] not free +[scope_exit j_2] +[scope_exit j_1] +[scope_exit i#29500] +[scope_exit i#29492] +[visit_exp `i#29492*`] +[visit_id i#29492*] no dims +[visit_id i#29492*] +[visit_exp `i#29500*`] +[visit_id i#29500*] no dims +[visit_id i#29500*] +[visit_exp `j_1*`] +[visit_id j_1*] no dims +[visit_id j_1*] +[visit_exp `j_2*`] +[visit_id j_2*] no dims +[visit_id j_2*] +[visit_exp ($concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = i!`%`_iN{i#29472}.0*{i <- `i*`, i#29472 <- `i#29472*`})] +[visit_exp $concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`})] +[visit_exp [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}] +[scope_enter j_1] +[scope_enter j_2] +[visit_exp [j_1 j_2]] +[visit_exp j_1] +[visit_id j_1] not free +[visit_exp j_2] +[visit_id j_2] not free +[visit_id j_1] not free +[visit_id j_2] not free +[scope_exit j_2] +[scope_exit j_1] +[visit_exp `j_1*`] +[visit_id j_1*] not free +[visit_id j_1*] no dims +[visit_exp `j_2*`] +[visit_id j_2*] not free +[visit_id j_2*] no dims +[visit_exp i!`%`_iN{i#29472}.0*{i <- `i*`, i#29472 <- `i#29472*`}] +[scope_enter i] +[scope_enter i#29472] +[visit_exp i!`%`_iN{i#29472}.0] +[visit_exp i!`%`_iN{i#29472}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#29472] +[visit_id i#29472] not free +[visit_id i] not free +[visit_id i#29472] not free +[scope_exit i#29472] +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] not free +[visit_id i*] no dims +[visit_exp `i#29472*`] +[visit_id i#29472*] no dims +[visit_id i#29472*] +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivadd_pairwise_{N : N, `i*` : iN(N)*, `i#29492*` : nat*, `i#29500*` : nat*, `j_1*` : N*, `j_2*` : N*, `i#29472*` : nat*}(N, i*{i <- `i*`}) = $iadd_(N, `%`_iN{i#29492}(j_1), `%`_iN{i#29500}(j_2))*{i#29492 <- `i#29492*`, i#29500 <- `i#29500*`, j_1 <- `j_1*`, j_2 <- `j_2*`} + -- if ($concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = i!`%`_iN{i#29472}.0*{i <- `i*`, i#29472 <- `i#29472*`}) +[check_dims] N _ +DecD ivmul_(N : N, iN(N)*, iN(N)*) : iN(N)* +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N i_1 i_2 +[visit_exp N] +[visit_id N] +[visit_exp i_1*{i_1 <- `i_1*`}] +[scope_enter i_1] +[visit_exp i_1] +[visit_id i_1] not free +[visit_id i_1] not free +[scope_exit i_1] +[visit_exp `i_1*`] +[visit_id i_1*] no dims +[visit_id i_1*] +[visit_exp i_2*{i_2 <- `i_2*`}] +[scope_enter i_2] +[visit_exp i_2] +[visit_id i_2] not free +[visit_id i_2] not free +[scope_exit i_2] +[visit_exp `i_2*`] +[visit_id i_2*] no dims +[visit_id i_2*] +[visit_exp $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`}] +[scope_enter i_1] +[scope_enter i_2] +[visit_exp $imul_(N, i_1, i_2)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +[visit_id i_1] not free +[visit_id i_2] not free +[scope_exit i_2] +[scope_exit i_1] +[visit_exp `i_1*`] +[visit_id i_1*] not free +[visit_id i_1*] no dims +[visit_exp `i_2*`] +[visit_id i_2*] not free +[visit_id i_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivmul_{N : N, `i_1*` : iN(N)*, `i_2*` : iN(N)*}(N, i_1*{i_1 <- `i_1*`}, i_2*{i_2 <- `i_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`} +[check_dims] N _ +DecD ivdot_(N : N, iN(N)*, iN(N)*) : iN(N)* +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N i_1 i_2 j_1 j_2 +[visit_exp N] +[visit_id N] +[visit_exp i_1*{i_1 <- `i_1*`}] +[scope_enter i_1] +[visit_exp i_1] +[visit_id i_1] not free +[visit_id i_1] not free +[scope_exit i_1] +[visit_exp `i_1*`] +[visit_id i_1*] no dims +[visit_id i_1*] +[visit_exp i_2*{i_2 <- `i_2*`}] +[scope_enter i_2] +[visit_exp i_2] +[visit_id i_2] not free +[visit_id i_2] not free +[scope_exit i_2] +[visit_exp `i_2*`] +[visit_id i_2*] no dims +[visit_id i_2*] +[visit_exp $iadd_(N, j_1, j_2)*{j_1 <- `j_1*`, j_2 <- `j_2*`}] +[scope_enter j_1] +[scope_enter j_2] +[visit_exp $iadd_(N, j_1, j_2)] +[visit_exp N] +[visit_id N] not free +[visit_exp j_1] +[visit_id j_1] not free +[visit_exp j_2] +[visit_id j_2] not free +[visit_id j_1] not free +[visit_id j_2] not free +[scope_exit j_2] +[scope_exit j_1] +[visit_exp `j_1*`] +[visit_id j_1*] no dims +[visit_id j_1*] +[visit_exp `j_2*`] +[visit_id j_2*] no dims +[visit_id j_2*] +[visit_exp ($concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`})] +[visit_exp $concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`})] +[visit_exp N] +[visit_id N] not free +[visit_exp [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}] +[scope_enter j_1] +[scope_enter j_2] +[visit_exp [j_1 j_2]] +[visit_exp j_1] +[visit_id j_1] not free +[visit_exp j_2] +[visit_id j_2] not free +[visit_id j_1] not free +[visit_id j_2] not free +[scope_exit j_2] +[scope_exit j_1] +[visit_exp `j_1*`] +[visit_id j_1*] not free +[visit_id j_1*] no dims +[visit_exp `j_2*`] +[visit_id j_2*] not free +[visit_id j_2*] no dims +[visit_exp $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`}] +[scope_enter i_1] +[scope_enter i_2] +[visit_exp $imul_(N, i_1, i_2)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +[visit_id i_1] not free +[visit_id i_2] not free +[scope_exit i_2] +[scope_exit i_1] +[visit_exp `i_1*`] +[visit_id i_1*] not free +[visit_id i_1*] no dims +[visit_exp `i_2*`] +[visit_id i_2*] not free +[visit_id i_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivdot_{N : N, `i_1*` : iN(N)*, `i_2*` : iN(N)*, `j_1*` : iN(N)*, `j_2*` : iN(N)*}(N, i_1*{i_1 <- `i_1*`}, i_2*{i_2 <- `i_2*`}) = $iadd_(N, j_1, j_2)*{j_1 <- `j_1*`, j_2 <- `j_2*`} + -- if ($concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`}) +[check_dims] N _ +DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[visit_id _] not free +[visit_exp N] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +[check_dims] N i_1 i_2 j_1 j_2 +[visit_exp N] +[visit_id N] +[visit_exp i_1*{i_1 <- `i_1*`}] +[scope_enter i_1] +[visit_exp i_1] +[visit_id i_1] not free +[visit_id i_1] not free +[scope_exit i_1] +[visit_exp `i_1*`] +[visit_id i_1*] no dims +[visit_id i_1*] +[visit_exp i_2*{i_2 <- `i_2*`}] +[scope_enter i_2] +[visit_exp i_2] +[visit_id i_2] not free +[visit_id i_2] not free +[scope_exit i_2] +[visit_exp `i_2*`] +[visit_id i_2*] no dims +[visit_id i_2*] +[visit_exp $iadd_sat_(N, `S`_sx, j_1, j_2)*{j_1 <- `j_1*`, j_2 <- `j_2*`}] +[scope_enter j_1] +[scope_enter j_2] +[visit_exp $iadd_sat_(N, `S`_sx, j_1, j_2)] +[visit_exp N] +[visit_id N] not free +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp j_1] +[visit_id j_1] not free +[visit_exp j_2] +[visit_id j_2] not free +[visit_id j_1] not free +[visit_id j_2] not free +[scope_exit j_2] +[scope_exit j_1] +[visit_exp `j_1*`] +[visit_id j_1*] no dims +[visit_id j_1*] +[visit_exp `j_2*`] +[visit_id j_2*] no dims +[visit_id j_2*] +[visit_exp ($concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`})] +[visit_exp $concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`})] +[visit_exp N] +[visit_id N] not free +[visit_exp [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}] +[scope_enter j_1] +[scope_enter j_2] +[visit_exp [j_1 j_2]] +[visit_exp j_1] +[visit_id j_1] not free +[visit_exp j_2] +[visit_id j_2] not free +[visit_id j_1] not free +[visit_id j_2] not free +[scope_exit j_2] +[scope_exit j_1] +[visit_exp `j_1*`] +[visit_id j_1*] not free +[visit_id j_1*] no dims +[visit_exp `j_2*`] +[visit_id j_2*] not free +[visit_id j_2*] no dims +[visit_exp $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`}] +[scope_enter i_1] +[scope_enter i_2] +[visit_exp $imul_(N, i_1, i_2)] +[visit_exp N] +[visit_id N] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i_2] +[visit_id i_2] not free +[visit_id i_1] not free +[visit_id i_2] not free +[scope_exit i_2] +[scope_exit i_1] +[visit_exp `i_1*`] +[visit_id i_1*] not free +[visit_id i_1*] no dims +[visit_exp `i_2*`] +[visit_id i_2*] not free +[visit_id i_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $ivdot_sat_{N : N, `i_1*` : iN(N)*, `i_2*` : iN(N)*, `j_1*` : iN(N)*, `j_2*` : iN(N)*}(N, i_1*{i_1 <- `i_1*`}, i_2*{i_2 <- `i_2*`}) = $iadd_sat_(N, `S`_sx, j_1, j_2)*{j_1 <- `j_1*`, j_2 <- `j_2*`} + -- if ($concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`}) +[check_dims] Jnn#131 Jnn#135 Jnn_1 Jnn_2 M_1 M_2 dim#6864 dim#6876 dim#6888 dim#6900 i#29941 i#29948 i#29953 i#29960 i#29987 i#29994 i#29999 i#30006 lanetype#6864 lanetype#6876 lanetype#6888 lanetype#6900 shape#493 shape#505 sx sx#182 v_1 +[visit_exp `%`_ishape{shape#493, Jnn#131}(`%X%`_shape{lanetype#6864, dim#6864, i#29941}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29948}(M_1)))] +[visit_exp shape#493] +[visit_id shape#493] +[visit_exp Jnn#131] +[visit_id Jnn#131] +[visit_exp (`%X%`_shape{lanetype#6864, dim#6864, i#29941}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29948}(M_1)))] +[visit_exp `%X%`_shape{lanetype#6864, dim#6864, i#29941}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29948}(M_1))] +[visit_exp lanetype#6864] +[visit_id lanetype#6864] +[visit_exp dim#6864] +[visit_id dim#6864] +[visit_exp i#29941] +[visit_id i#29941] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29948}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#29948}(M_1)] +[visit_exp i#29948] +[visit_id i#29948] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%`_ishape{shape#505, Jnn#135}(`%X%`_shape{lanetype#6876, dim#6876, i#29953}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29960}(M_2)))] +[visit_exp shape#505] +[visit_id shape#505] +[visit_exp Jnn#135] +[visit_id Jnn#135] +[visit_exp (`%X%`_shape{lanetype#6876, dim#6876, i#29953}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29960}(M_2)))] +[visit_exp `%X%`_shape{lanetype#6876, dim#6876, i#29953}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29960}(M_2))] +[visit_exp lanetype#6876] +[visit_id lanetype#6876] +[visit_exp dim#6876] +[visit_id dim#6876] +[visit_exp i#29953] +[visit_id i#29953] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29960}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#29960}(M_2)] +[visit_exp i#29960] +[visit_id i#29960] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#182}(sx)] +[visit_exp sx#182] +[visit_id sx#182] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp $ivextunop__(`%X%`_shape{lanetype#6888, dim#6888, i#29987}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29994}(M_1)), `%X%`_shape{lanetype#6900, dim#6900, i#29999}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30006}(M_2)), def $ivadd_pairwise_, sx, v_1)] +[visit_exp `%X%`_shape{lanetype#6888, dim#6888, i#29987}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29994}(M_1))] +[visit_exp lanetype#6888] +[visit_id lanetype#6888] +[visit_exp dim#6888] +[visit_id dim#6888] +[visit_exp i#29987] +[visit_id i#29987] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29994}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp `%`_dim{i#29994}(M_1)] +[visit_exp i#29994] +[visit_id i#29994] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp `%X%`_shape{lanetype#6900, dim#6900, i#29999}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30006}(M_2))] +[visit_exp lanetype#6900] +[visit_id lanetype#6900] +[visit_exp dim#6900] +[visit_id dim#6900] +[visit_exp i#29999] +[visit_id i#29999] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30006}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp `%`_dim{i#30006}(M_2)] +[visit_exp i#30006] +[visit_id i#30006] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp v_1] +[visit_id v_1] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vextunop__{shape#493 : shape, Jnn#131 : Jnn, lanetype#6864 : lanetype, dim#6864 : dim, i#29941 : nat, Jnn_1 : Jnn, i#29948 : nat, M_1 : M, shape#505 : shape, Jnn#135 : Jnn, lanetype#6876 : lanetype, dim#6876 : dim, i#29953 : nat, Jnn_2 : Jnn, i#29960 : nat, M_2 : M, sx#182 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), lanetype#6888 : lanetype, dim#6888 : dim, i#29987 : nat, i#29994 : nat, lanetype#6900 : lanetype, dim#6900 : dim, i#29999 : nat, i#30006 : nat}(`%`_ishape{shape#493, Jnn#131}(`%X%`_shape{lanetype#6864, dim#6864, i#29941}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29948}(M_1))), `%`_ishape{shape#505, Jnn#135}(`%X%`_shape{lanetype#6876, dim#6876, i#29953}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29960}(M_2))), `EXTADD_PAIRWISE`_vextunop__{sx#182}(sx), v_1) = $ivextunop__(`%X%`_shape{lanetype#6888, dim#6888, i#29987}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29994}(M_1)), `%X%`_shape{lanetype#6900, dim#6900, i#29999}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30006}(M_2)), def $ivadd_pairwise_, sx, v_1) +[check_dims] Jnn#139 Jnn#143 Jnn_1 Jnn_2 M_1 M_2 dim#6912 dim#6924 dim#6936 dim#6948 half half#7 i#30021 i#30028 i#30033 i#30040 i#30079 i#30086 i#30091 i#30098 i#30118 i#30140 lanetype#6912 lanetype#6924 lanetype#6936 lanetype#6948 shape#517 shape#529 sx sx#184 v_1 v_2 +[visit_exp `%`_ishape{shape#517, Jnn#139}(`%X%`_shape{lanetype#6912, dim#6912, i#30021}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30028}(M_1)))] +[visit_exp shape#517] +[visit_id shape#517] +[visit_exp Jnn#139] +[visit_id Jnn#139] +[visit_exp (`%X%`_shape{lanetype#6912, dim#6912, i#30021}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30028}(M_1)))] +[visit_exp `%X%`_shape{lanetype#6912, dim#6912, i#30021}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30028}(M_1))] +[visit_exp lanetype#6912] +[visit_id lanetype#6912] +[visit_exp dim#6912] +[visit_id dim#6912] +[visit_exp i#30021] +[visit_id i#30021] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30028}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#30028}(M_1)] +[visit_exp i#30028] +[visit_id i#30028] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%`_ishape{shape#529, Jnn#143}(`%X%`_shape{lanetype#6924, dim#6924, i#30033}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30040}(M_2)))] +[visit_exp shape#529] +[visit_id shape#529] +[visit_exp Jnn#143] +[visit_id Jnn#143] +[visit_exp (`%X%`_shape{lanetype#6924, dim#6924, i#30033}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30040}(M_2)))] +[visit_exp `%X%`_shape{lanetype#6924, dim#6924, i#30033}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30040}(M_2))] +[visit_exp lanetype#6924] +[visit_id lanetype#6924] +[visit_exp dim#6924] +[visit_id dim#6924] +[visit_exp i#30033] +[visit_id i#30033] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30040}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#30040}(M_2)] +[visit_exp i#30040] +[visit_id i#30040] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `EXTMUL`_vextbinop__{half#7, sx#184}(half, sx)] +[visit_exp half#7] +[visit_id half#7] +[visit_exp sx#184] +[visit_id sx#184] +[visit_exp (half, sx)] +[visit_exp half] +[visit_id half] +[visit_exp sx] +[visit_id sx] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivextbinop__(`%X%`_shape{lanetype#6936, dim#6936, i#30079}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30086}(M_1)), `%X%`_shape{lanetype#6948, dim#6948, i#30091}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30098}(M_2)), def $ivmul_, sx, sx, `%`_laneidx{i#30118}($half(half, 0, M_2)), `%`_laneidx{i#30140}(M_2), v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#6936, dim#6936, i#30079}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30086}(M_1))] +[visit_exp lanetype#6936] +[visit_id lanetype#6936] +[visit_exp dim#6936] +[visit_id dim#6936] +[visit_exp i#30079] +[visit_id i#30079] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30086}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp `%`_dim{i#30086}(M_1)] +[visit_exp i#30086] +[visit_id i#30086] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp `%X%`_shape{lanetype#6948, dim#6948, i#30091}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30098}(M_2))] +[visit_exp lanetype#6948] +[visit_id lanetype#6948] +[visit_exp dim#6948] +[visit_id dim#6948] +[visit_exp i#30091] +[visit_id i#30091] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30098}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp `%`_dim{i#30098}(M_2)] +[visit_exp i#30098] +[visit_id i#30098] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp `%`_laneidx{i#30118}($half(half, 0, M_2))] +[visit_exp i#30118] +[visit_id i#30118] +[visit_exp ($half(half, 0, M_2))] +[visit_exp $half(half, 0, M_2)] +[visit_exp half] +[visit_id half] not free +[visit_exp 0] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp `%`_laneidx{i#30140}(M_2)] +[visit_exp i#30140] +[visit_id i#30140] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vextbinop__{shape#517 : shape, Jnn#139 : Jnn, lanetype#6912 : lanetype, dim#6912 : dim, i#30021 : nat, Jnn_1 : Jnn, i#30028 : nat, M_1 : M, shape#529 : shape, Jnn#143 : Jnn, lanetype#6924 : lanetype, dim#6924 : dim, i#30033 : nat, Jnn_2 : Jnn, i#30040 : nat, M_2 : M, half#7 : half, sx#184 : sx, half : half, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#6936 : lanetype, dim#6936 : dim, i#30079 : nat, i#30086 : nat, lanetype#6948 : lanetype, dim#6948 : dim, i#30091 : nat, i#30098 : nat, i#30118 : nat, i#30140 : nat}(`%`_ishape{shape#517, Jnn#139}(`%X%`_shape{lanetype#6912, dim#6912, i#30021}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30028}(M_1))), `%`_ishape{shape#529, Jnn#143}(`%X%`_shape{lanetype#6924, dim#6924, i#30033}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30040}(M_2))), `EXTMUL`_vextbinop__{half#7, sx#184}(half, sx), v_1, v_2) = $ivextbinop__(`%X%`_shape{lanetype#6936, dim#6936, i#30079}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30086}(M_1)), `%X%`_shape{lanetype#6948, dim#6948, i#30091}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30098}(M_2)), def $ivmul_, sx, sx, `%`_laneidx{i#30118}($half(half, 0, M_2)), `%`_laneidx{i#30140}(M_2), v_1, v_2) +[check_dims] Jnn#147 Jnn#151 Jnn_1 Jnn_2 M_1 M_2 dim#6960 dim#6972 dim#6984 dim#6996 i#30165 i#30172 i#30177 i#30184 i#30223 i#30230 i#30235 i#30242 i#30262 i#30284 lanetype#6960 lanetype#6972 lanetype#6984 lanetype#6996 shape#541 shape#553 v_1 v_2 +[visit_exp `%`_ishape{shape#541, Jnn#147}(`%X%`_shape{lanetype#6960, dim#6960, i#30165}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30172}(M_1)))] +[visit_exp shape#541] +[visit_id shape#541] +[visit_exp Jnn#147] +[visit_id Jnn#147] +[visit_exp (`%X%`_shape{lanetype#6960, dim#6960, i#30165}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30172}(M_1)))] +[visit_exp `%X%`_shape{lanetype#6960, dim#6960, i#30165}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30172}(M_1))] +[visit_exp lanetype#6960] +[visit_id lanetype#6960] +[visit_exp dim#6960] +[visit_id dim#6960] +[visit_exp i#30165] +[visit_id i#30165] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30172}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#30172}(M_1)] +[visit_exp i#30172] +[visit_id i#30172] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%`_ishape{shape#553, Jnn#151}(`%X%`_shape{lanetype#6972, dim#6972, i#30177}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30184}(M_2)))] +[visit_exp shape#553] +[visit_id shape#553] +[visit_exp Jnn#151] +[visit_id Jnn#151] +[visit_exp (`%X%`_shape{lanetype#6972, dim#6972, i#30177}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30184}(M_2)))] +[visit_exp `%X%`_shape{lanetype#6972, dim#6972, i#30177}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30184}(M_2))] +[visit_exp lanetype#6972] +[visit_id lanetype#6972] +[visit_exp dim#6972] +[visit_id dim#6972] +[visit_exp i#30177] +[visit_id i#30177] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30184}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#30184}(M_2)] +[visit_exp i#30184] +[visit_id i#30184] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `DOTS`_vextbinop__] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivextbinop__(`%X%`_shape{lanetype#6984, dim#6984, i#30223}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30230}(M_1)), `%X%`_shape{lanetype#6996, dim#6996, i#30235}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30242}(M_2)), def $ivdot_, `S`_sx, `S`_sx, `%`_laneidx{i#30262}(0), `%`_laneidx{i#30284}(M_1), v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#6984, dim#6984, i#30223}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30230}(M_1))] +[visit_exp lanetype#6984] +[visit_id lanetype#6984] +[visit_exp dim#6984] +[visit_id dim#6984] +[visit_exp i#30223] +[visit_id i#30223] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30230}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp `%`_dim{i#30230}(M_1)] +[visit_exp i#30230] +[visit_id i#30230] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp `%X%`_shape{lanetype#6996, dim#6996, i#30235}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30242}(M_2))] +[visit_exp lanetype#6996] +[visit_id lanetype#6996] +[visit_exp dim#6996] +[visit_id dim#6996] +[visit_exp i#30235] +[visit_id i#30235] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30242}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp `%`_dim{i#30242}(M_2)] +[visit_exp i#30242] +[visit_id i#30242] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_laneidx{i#30262}(0)] +[visit_exp i#30262] +[visit_id i#30262] +[visit_exp (0)] +[visit_exp 0] +[visit_exp `%`_laneidx{i#30284}(M_1)] +[visit_exp i#30284] +[visit_id i#30284] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vextbinop__{shape#541 : shape, Jnn#147 : Jnn, lanetype#6960 : lanetype, dim#6960 : dim, i#30165 : nat, Jnn_1 : Jnn, i#30172 : nat, M_1 : M, shape#553 : shape, Jnn#151 : Jnn, lanetype#6972 : lanetype, dim#6972 : dim, i#30177 : nat, Jnn_2 : Jnn, i#30184 : nat, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#6984 : lanetype, dim#6984 : dim, i#30223 : nat, i#30230 : nat, lanetype#6996 : lanetype, dim#6996 : dim, i#30235 : nat, i#30242 : nat, i#30262 : nat, i#30284 : nat}(`%`_ishape{shape#541, Jnn#147}(`%X%`_shape{lanetype#6960, dim#6960, i#30165}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30172}(M_1))), `%`_ishape{shape#553, Jnn#151}(`%X%`_shape{lanetype#6972, dim#6972, i#30177}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30184}(M_2))), `DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape{lanetype#6984, dim#6984, i#30223}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30230}(M_1)), `%X%`_shape{lanetype#6996, dim#6996, i#30235}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30242}(M_2)), def $ivdot_, `S`_sx, `S`_sx, `%`_laneidx{i#30262}(0), `%`_laneidx{i#30284}(M_1), v_1, v_2) +[check_dims] Jnn#155 Jnn#159 Jnn_1 Jnn_2 M_1 M_2 dim#7008 dim#7020 dim#7032 dim#7044 i#30309 i#30316 i#30321 i#30328 i#30367 i#30374 i#30379 i#30386 i#30412 i#30434 lanetype#7008 lanetype#7020 lanetype#7032 lanetype#7044 shape#565 shape#577 v_1 v_2 +[visit_exp `%`_ishape{shape#565, Jnn#155}(`%X%`_shape{lanetype#7008, dim#7008, i#30309}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30316}(M_1)))] +[visit_exp shape#565] +[visit_id shape#565] +[visit_exp Jnn#155] +[visit_id Jnn#155] +[visit_exp (`%X%`_shape{lanetype#7008, dim#7008, i#30309}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30316}(M_1)))] +[visit_exp `%X%`_shape{lanetype#7008, dim#7008, i#30309}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30316}(M_1))] +[visit_exp lanetype#7008] +[visit_id lanetype#7008] +[visit_exp dim#7008] +[visit_id dim#7008] +[visit_exp i#30309] +[visit_id i#30309] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30316}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#30316}(M_1)] +[visit_exp i#30316] +[visit_id i#30316] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%`_ishape{shape#577, Jnn#159}(`%X%`_shape{lanetype#7020, dim#7020, i#30321}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30328}(M_2)))] +[visit_exp shape#577] +[visit_id shape#577] +[visit_exp Jnn#159] +[visit_id Jnn#159] +[visit_exp (`%X%`_shape{lanetype#7020, dim#7020, i#30321}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30328}(M_2)))] +[visit_exp `%X%`_shape{lanetype#7020, dim#7020, i#30321}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30328}(M_2))] +[visit_exp lanetype#7020] +[visit_id lanetype#7020] +[visit_exp dim#7020] +[visit_id dim#7020] +[visit_exp i#30321] +[visit_id i#30321] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30328}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#30328}(M_2)] +[visit_exp i#30328] +[visit_id i#30328] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `RELAXED_DOTS`_vextbinop__] +[visit_exp ()] +[visit_exp v_1] +[visit_id v_1] +[visit_exp v_2] +[visit_id v_2] +[visit_exp $ivextbinop__(`%X%`_shape{lanetype#7032, dim#7032, i#30367}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30374}(M_1)), `%X%`_shape{lanetype#7044, dim#7044, i#30379}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30386}(M_2)), def $ivdot_sat_, `S`_sx, $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx), `%`_laneidx{i#30412}(0), `%`_laneidx{i#30434}(M_1), v_1, v_2)] +[visit_exp `%X%`_shape{lanetype#7032, dim#7032, i#30367}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30374}(M_1))] +[visit_exp lanetype#7032] +[visit_id lanetype#7032] +[visit_exp dim#7032] +[visit_id dim#7032] +[visit_exp i#30367] +[visit_id i#30367] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30374}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp `%`_dim{i#30374}(M_1)] +[visit_exp i#30374] +[visit_id i#30374] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp `%X%`_shape{lanetype#7044, dim#7044, i#30379}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30386}(M_2))] +[visit_exp lanetype#7044] +[visit_id lanetype#7044] +[visit_exp dim#7044] +[visit_id dim#7044] +[visit_exp i#30379] +[visit_id i#30379] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30386}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp `%`_dim{i#30386}(M_2)] +[visit_exp i#30386] +[visit_id i#30386] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx)] +[visit_exp $R_idot] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_laneidx{i#30412}(0)] +[visit_exp i#30412] +[visit_id i#30412] +[visit_exp (0)] +[visit_exp 0] +[visit_exp `%`_laneidx{i#30434}(M_1)] +[visit_exp i#30434] +[visit_id i#30434] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp v_1] +[visit_id v_1] not free +[visit_exp v_2] +[visit_id v_2] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vextbinop__{shape#565 : shape, Jnn#155 : Jnn, lanetype#7008 : lanetype, dim#7008 : dim, i#30309 : nat, Jnn_1 : Jnn, i#30316 : nat, M_1 : M, shape#577 : shape, Jnn#159 : Jnn, lanetype#7020 : lanetype, dim#7020 : dim, i#30321 : nat, Jnn_2 : Jnn, i#30328 : nat, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#7032 : lanetype, dim#7032 : dim, i#30367 : nat, i#30374 : nat, lanetype#7044 : lanetype, dim#7044 : dim, i#30379 : nat, i#30386 : nat, i#30412 : nat, i#30434 : nat}(`%`_ishape{shape#565, Jnn#155}(`%X%`_shape{lanetype#7008, dim#7008, i#30309}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30316}(M_1))), `%`_ishape{shape#577, Jnn#159}(`%X%`_shape{lanetype#7020, dim#7020, i#30321}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30328}(M_2))), `RELAXED_DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape{lanetype#7032, dim#7032, i#30367}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30374}(M_1)), `%X%`_shape{lanetype#7044, dim#7044, i#30379}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30386}(M_2)), def $ivdot_sat_, `S`_sx, $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx), `%`_laneidx{i#30412}(0), `%`_laneidx{i#30434}(M_1), v_1, v_2) +[check_dims] Jnn Jnn#163 Jnn#167 Jnn#171 Jnn#175 Jnn#179 Jnn#183 Jnn_1 Jnn_2 M M_1 M_2 c c' c'' c_1 c_2 c_3 dim#7056 dim#7068 dim#7080 dim#7092 dim#7149 dim#7161 dim#7218 i#30459 i#30466 i#30471 i#30478 i#30519 i#30526 i#30531 i#30538 i#30650 i#30657 i#30662 i#30669 i#30771 i#30778 lanetype#7056 lanetype#7068 lanetype#7080 lanetype#7092 lanetype#7149 lanetype#7161 lanetype#7218 shape#589 shape#601 shape#613 shape#625 shape#652 shape#664 sx#216 +[visit_exp `%`_ishape{shape#589, Jnn#163}(`%X%`_shape{lanetype#7056, dim#7056, i#30459}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30466}(M_1)))] +[visit_exp shape#589] +[visit_id shape#589] +[visit_exp Jnn#163] +[visit_id Jnn#163] +[visit_exp (`%X%`_shape{lanetype#7056, dim#7056, i#30459}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30466}(M_1)))] +[visit_exp `%X%`_shape{lanetype#7056, dim#7056, i#30459}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30466}(M_1))] +[visit_exp lanetype#7056] +[visit_id lanetype#7056] +[visit_exp dim#7056] +[visit_id dim#7056] +[visit_exp i#30459] +[visit_id i#30459] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30466}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] +[visit_exp `%`_dim{i#30466}(M_1)] +[visit_exp i#30466] +[visit_id i#30466] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] +[visit_exp `%`_ishape{shape#601, Jnn#167}(`%X%`_shape{lanetype#7068, dim#7068, i#30471}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30478}(M_2)))] +[visit_exp shape#601] +[visit_id shape#601] +[visit_exp Jnn#167] +[visit_id Jnn#167] +[visit_exp (`%X%`_shape{lanetype#7068, dim#7068, i#30471}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30478}(M_2)))] +[visit_exp `%X%`_shape{lanetype#7068, dim#7068, i#30471}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30478}(M_2))] +[visit_exp lanetype#7068] +[visit_id lanetype#7068] +[visit_exp dim#7068] +[visit_id dim#7068] +[visit_exp i#30471] +[visit_id i#30471] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30478}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] +[visit_exp `%`_dim{i#30478}(M_2)] +[visit_exp i#30478] +[visit_id i#30478] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] +[visit_exp `RELAXED_DOT_ADDS`_vextternop__] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp c_2] +[visit_id c_2] +[visit_exp c_3] +[visit_id c_3] +[visit_exp c] +[visit_id c] +[visit_exp ($jsizenn(Jnn) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))))] +[visit_exp $jsizenn(Jnn)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] +[visit_exp 2] +[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp (M = (2 * M_2))] +[visit_exp M] +[visit_id M] +[visit_exp (2 * M_2)] +[visit_exp 2] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp (c' = $vextbinop__(`%`_ishape{shape#613, Jnn#171}(`%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1))), `%`_ishape{shape#625, Jnn#175}(`%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2))] +[visit_exp c'] +[visit_id c'] +[visit_exp $vextbinop__(`%`_ishape{shape#613, Jnn#171}(`%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1))), `%`_ishape{shape#625, Jnn#175}(`%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2)] +[visit_exp `%`_ishape{shape#613, Jnn#171}(`%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1)))] +[visit_exp shape#613] +[visit_id shape#613] +[visit_exp Jnn#171] +[visit_id Jnn#171] +[visit_exp (`%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1)))] +[visit_exp `%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1))] +[visit_exp lanetype#7080] +[visit_id lanetype#7080] +[visit_exp dim#7080] +[visit_id dim#7080] +[visit_exp i#30519] +[visit_id i#30519] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1))] +[visit_exp (Jnn_1 : Jnn <: lanetype)] +[visit_exp Jnn_1] +[visit_id Jnn_1] not free +[visit_exp `%`_dim{i#30526}(M_1)] +[visit_exp i#30526] +[visit_id i#30526] +[visit_exp (M_1)] +[visit_exp M_1] +[visit_id M_1] not free +[visit_exp `%`_ishape{shape#625, Jnn#175}(`%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M)))] +[visit_exp shape#625] +[visit_id shape#625] +[visit_exp Jnn#175] +[visit_id Jnn#175] +[visit_exp (`%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M)))] +[visit_exp `%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M))] +[visit_exp lanetype#7092] +[visit_id lanetype#7092] +[visit_exp dim#7092] +[visit_id dim#7092] +[visit_exp i#30531] +[visit_id i#30531] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#30538}(M)] +[visit_exp i#30538] +[visit_id i#30538] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp `RELAXED_DOTS`_vextbinop__] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp (c'' = $vextunop__(`%`_ishape{shape#652, Jnn#179}(`%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M))), `%`_ishape{shape#664, Jnn#183}(`%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2))), `EXTADD_PAIRWISE`_vextunop__{sx#216}(`S`_sx), c'))] +[visit_exp c''] +[visit_id c''] +[visit_exp $vextunop__(`%`_ishape{shape#652, Jnn#179}(`%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M))), `%`_ishape{shape#664, Jnn#183}(`%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2))), `EXTADD_PAIRWISE`_vextunop__{sx#216}(`S`_sx), c')] +[visit_exp `%`_ishape{shape#652, Jnn#179}(`%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M)))] +[visit_exp shape#652] +[visit_id shape#652] +[visit_exp Jnn#179] +[visit_id Jnn#179] +[visit_exp (`%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M)))] +[visit_exp `%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M))] +[visit_exp lanetype#7149] +[visit_id lanetype#7149] +[visit_exp dim#7149] +[visit_id dim#7149] +[visit_exp i#30650] +[visit_id i#30650] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#30657}(M)] +[visit_exp i#30657] +[visit_id i#30657] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp `%`_ishape{shape#664, Jnn#183}(`%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2)))] +[visit_exp shape#664] +[visit_id shape#664] +[visit_exp Jnn#183] +[visit_id Jnn#183] +[visit_exp (`%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2)))] +[visit_exp `%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2))] +[visit_exp lanetype#7161] +[visit_id lanetype#7161] +[visit_exp dim#7161] +[visit_id dim#7161] +[visit_exp i#30662] +[visit_id i#30662] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp `%`_dim{i#30669}(M_2)] +[visit_exp i#30669] +[visit_id i#30669] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#216}(`S`_sx)] +[visit_exp sx#216] +[visit_id sx#216] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp c'] +[visit_id c'] not free +[visit_exp (c <- $vbinop_(`%X%`_shape{lanetype#7218, dim#7218, i#30771}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30778}(M_2)), `ADD`_vbinop_, c'', c_3))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vbinop_(`%X%`_shape{lanetype#7218, dim#7218, i#30771}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30778}(M_2)), `ADD`_vbinop_, c'', c_3)] +[visit_exp `%X%`_shape{lanetype#7218, dim#7218, i#30771}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30778}(M_2))] +[visit_exp lanetype#7218] +[visit_id lanetype#7218] +[visit_exp dim#7218] +[visit_id dim#7218] +[visit_exp i#30771] +[visit_id i#30771] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30778}(M_2))] +[visit_exp (Jnn_2 : Jnn <: lanetype)] +[visit_exp Jnn_2] +[visit_id Jnn_2] not free +[visit_exp `%`_dim{i#30778}(M_2)] +[visit_exp i#30778] +[visit_id i#30778] +[visit_exp (M_2)] +[visit_exp M_2] +[visit_id M_2] not free +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[visit_exp c''] +[visit_id c''] not free +[visit_exp c_3] +[visit_id c_3] not free +=> + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vextternop__{shape#589 : shape, Jnn#163 : Jnn, lanetype#7056 : lanetype, dim#7056 : dim, i#30459 : nat, Jnn_1 : Jnn, i#30466 : nat, M_1 : M, shape#601 : shape, Jnn#167 : Jnn, lanetype#7068 : lanetype, dim#7068 : dim, i#30471 : nat, Jnn_2 : Jnn, i#30478 : nat, M_2 : M, c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), c : vec_(`V128`_Vnn), Jnn : Jnn, M : M, c' : vec_(`V128`_Vnn), shape#613 : shape, Jnn#171 : Jnn, lanetype#7080 : lanetype, dim#7080 : dim, i#30519 : nat, i#30526 : nat, shape#625 : shape, Jnn#175 : Jnn, lanetype#7092 : lanetype, dim#7092 : dim, i#30531 : nat, i#30538 : nat, c'' : vec_(`V128`_Vnn), shape#652 : shape, Jnn#179 : Jnn, lanetype#7149 : lanetype, dim#7149 : dim, i#30650 : nat, i#30657 : nat, shape#664 : shape, Jnn#183 : Jnn, lanetype#7161 : lanetype, dim#7161 : dim, i#30662 : nat, i#30669 : nat, sx#216 : sx, lanetype#7218 : lanetype, dim#7218 : dim, i#30771 : nat, i#30778 : nat}(`%`_ishape{shape#589, Jnn#163}(`%X%`_shape{lanetype#7056, dim#7056, i#30459}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30466}(M_1))), `%`_ishape{shape#601, Jnn#167}(`%X%`_shape{lanetype#7068, dim#7068, i#30471}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30478}(M_2))), `RELAXED_DOT_ADDS`_vextternop__, c_1, c_2, c_3) = c + -- if ($jsizenn(Jnn) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) + -- if (M = (2 * M_2)) + -- if (c' = $vextbinop__(`%`_ishape{shape#613, Jnn#171}(`%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1))), `%`_ishape{shape#625, Jnn#175}(`%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2)) + -- if (c'' = $vextunop__(`%`_ishape{shape#652, Jnn#179}(`%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M))), `%`_ishape{shape#664, Jnn#183}(`%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2))), `EXTADD_PAIRWISE`_vextunop__{sx#216}(`S`_sx), c')) + -- if (c <- $vbinop_(`%X%`_shape{lanetype#7218, dim#7218, i#30771}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30778}(M_2)), `ADD`_vbinop_, c'', c_3)) +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tagaddr] no dims +[visit_id tagaddr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id globaladdr] no dims +[visit_id globaladdr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memaddr] no dims +[visit_id memaddr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableaddr] no dims +[visit_id tableaddr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id funcaddr] no dims +[visit_id funcaddr] +[check_dims] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] numtype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id numtype] +[visit_id _] not free +[visit_id _] no dims +[visit_exp numtype] +[visit_id numtype] not free +[check_dims] +--- 1 --- +[check_dims] vectype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id vectype] +[visit_id _] not free +[visit_id _] no dims +[visit_exp vectype] +[visit_id vectype] not free +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id u31] no dims +[visit_id u31] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id structaddr] no dims +[visit_id structaddr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id arrayaddr] no dims +[visit_id arrayaddr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id funcaddr] no dims +[visit_id funcaddr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id exnaddr] no dims +[visit_id exnaddr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id hostaddr] no dims +[visit_id hostaddr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id addrref] no dims +[visit_id addrref] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id heaptype] no dims +[visit_id heaptype] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id val*] no dims +[visit_id val*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id exnaddr] no dims +[visit_id exnaddr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tagtype] no dims +[visit_id tagtype] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id globaltype] no dims +[visit_id globaltype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id val] no dims +[visit_id val] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memtype] no dims +[visit_id memtype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id byte*] no dims +[visit_id byte*] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tabletype] no dims +[visit_id tabletype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id ref*] no dims +[visit_id ref*] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id deftype] no dims +[visit_id deftype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id moduleinst] no dims +[visit_id moduleinst] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id funccode] no dims +[visit_id funccode] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id byte*] no dims +[visit_id byte*] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id elemtype] no dims +[visit_id elemtype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id ref*] no dims +[visit_id ref*] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name] no dims +[visit_id name] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id externaddr] no dims +[visit_id externaddr] +[check_dims] +--- 1 --- +[check_dims] packtype +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id packtype] +[visit_id _] not free +[visit_id _] no dims +[visit_exp $psizenn(packtype)] +[visit_exp packtype] +[visit_id packtype] not free +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id deftype] no dims +[visit_id deftype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id fieldval*] no dims +[visit_id fieldval*] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id deftype] no dims +[visit_id deftype] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id fieldval*] no dims +[visit_id fieldval*] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tagaddr] no dims +[visit_id tagaddr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id val*] no dims +[visit_id val*] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id deftype*] no dims +[visit_id deftype*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tagaddr*] no dims +[visit_id tagaddr*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id globaladdr*] no dims +[visit_id globaladdr*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id memaddr*] no dims +[visit_id memaddr*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableaddr*] no dims +[visit_id tableaddr*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id funcaddr*] no dims +[visit_id funcaddr*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id dataaddr*] no dims +[visit_id dataaddr*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id elemaddr*] no dims +[visit_id elemaddr*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id exportinst*] no dims +[visit_id exportinst*] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id taginst*] no dims +[visit_id taginst*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id globalinst*] no dims +[visit_id globalinst*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id meminst*] no dims +[visit_id meminst*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id tableinst*] no dims +[visit_id tableinst*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id funcinst*] no dims +[visit_id funcinst*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id datainst*] no dims +[visit_id datainst*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id eleminst*] no dims +[visit_id eleminst*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id structinst*] no dims +[visit_id structinst*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id arrayinst*] no dims +[visit_id arrayinst*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id exninst*] no dims +[visit_id exninst*] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id val?*] no dims +[visit_id val?*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id moduleinst] no dims +[visit_id moduleinst] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id n] no dims +[visit_id n] +[visit_id instr*] no dims +[visit_id instr*] +[visit_id instr*] not free +[visit_id instr*] no dims +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id n] no dims +[visit_id n] +[visit_id frame] no dims +[visit_id frame] +[visit_id instr*] no dims +[visit_id instr*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id n] no dims +[visit_id n] +[visit_id catch*] no dims +[visit_id catch*] +[visit_id instr*] no dims +[visit_id instr*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id store] no dims +[visit_id store] +[visit_id frame] no dims +[visit_id frame] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id state] no dims +[visit_id state] +[visit_id instr*] no dims +[visit_id instr*] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +DecD Ki : nat +[check_dims] +[visit_exp 1024] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $Ki = 1024 +[check_dims] storagetype val +DecD packfield_(storagetype : storagetype, val : val) : fieldval +[visit_id storagetype] not free +[visit_id val] not free +[check_dims] _ fieldval storagetype +DecD unpackfield_(storagetype : storagetype, sx?, fieldval : fieldval) : val +[visit_id storagetype] not free +[visit_id _] not free +[visit_id fieldval] not free +[check_dims] val valtype +[visit_exp (valtype : valtype <: storagetype)] +[visit_exp valtype] +[visit_id valtype] +[visit_exp val] +[visit_id val] +[visit_exp (val : val <: fieldval)] +[visit_exp val] +[visit_id val] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $packfield_{valtype : valtype, val : val}((valtype : valtype <: storagetype), val) = (val : val <: fieldval) +[check_dims] i numtype#33 packtype packtype#1 +[visit_exp (packtype : packtype <: storagetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp `CONST`_val{numtype#33}(`I32`_numtype, i)] +[visit_exp numtype#33] +[visit_id numtype#33] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `PACK`_fieldval{packtype#1}(packtype, $wrap__(32, $psize(packtype), i))] +[visit_exp packtype#1] +[visit_id packtype#1] +[visit_exp (packtype, $wrap__(32, $psize(packtype), i))] +[visit_exp packtype] +[visit_id packtype] not free +[visit_exp $wrap__(32, $psize(packtype), i)] +[visit_exp 32] +[visit_exp $psize(packtype)] +[visit_exp packtype] +[visit_id packtype] not free +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $packfield_{packtype : packtype, numtype#33 : numtype, i : num_(`I32`_numtype), packtype#1 : packtype}((packtype : packtype <: storagetype), `CONST`_val{numtype#33}(`I32`_numtype, i)) = `PACK`_fieldval{packtype#1}(packtype, $wrap__(32, $psize(packtype), i)) +[check_dims] val valtype +[visit_exp (valtype : valtype <: storagetype)] +[visit_exp valtype] +[visit_id valtype] +[visit_exp ?()] +[visit_exp (val : val <: fieldval)] +[visit_exp val] +[visit_id val] +[visit_exp val] +[visit_id val] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $unpackfield_{valtype : valtype, val : val}((valtype : valtype <: storagetype), ?(), (val : val <: fieldval)) = val +[check_dims] i numtype#35 packtype packtype#3 sx +[visit_exp (packtype : packtype <: storagetype)] +[visit_exp packtype] +[visit_id packtype] +[visit_exp ?(sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp `PACK`_fieldval{packtype#3}(packtype, i)] +[visit_exp packtype#3] +[visit_id packtype#3] +[visit_exp (packtype, i)] +[visit_exp packtype] +[visit_id packtype] not free +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_val{numtype#35}(`I32`_numtype, $extend__($psize(packtype), 32, sx, i))] +[visit_exp numtype#35] +[visit_id numtype#35] +[visit_exp (`I32`_numtype, $extend__($psize(packtype), 32, sx, i))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp $extend__($psize(packtype), 32, sx, i)] +[visit_exp $psize(packtype)] +[visit_exp packtype] +[visit_id packtype] not free +[visit_exp 32] +[visit_exp sx] +[visit_id sx] not free +[visit_exp i] +[visit_id i] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $unpackfield_{packtype : packtype, sx : sx, packtype#3 : packtype, i : iN($psizenn(packtype)), numtype#35 : numtype}((packtype : packtype <: storagetype), ?(sx), `PACK`_fieldval{packtype#3}(packtype, i)) = `CONST`_val{numtype#35}(`I32`_numtype, $extend__($psize(packtype), 32, sx, i)) +[check_dims] _ +DecD tagsxa(externaddr*) : tagaddr* +[visit_id _] not free +[check_dims] _ +DecD globalsxa(externaddr*) : globaladdr* +[visit_id _] not free +[check_dims] _ +DecD memsxa(externaddr*) : memaddr* +[visit_id _] not free +[check_dims] _ +DecD tablesxa(externaddr*) : tableaddr* +[visit_id _] not free +[check_dims] _ +DecD funcsxa(externaddr*) : funcaddr* +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $tagsxa([]) = [] +[check_dims] a tagaddr#1 xa +[visit_exp [`TAG`_externaddr{tagaddr#1}(a)] ++ xa*{xa <- `xa*`}] +[visit_exp [`TAG`_externaddr{tagaddr#1}(a)]] +[visit_exp `TAG`_externaddr{tagaddr#1}(a)] +[visit_exp tagaddr#1] +[visit_id tagaddr#1] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] no dims +[visit_id xa*] +[visit_exp [a] ++ $tagsxa(xa*{xa <- `xa*`})] +[visit_exp [a]] +[visit_exp a] +[visit_id a] not free +[visit_exp $tagsxa(xa*{xa <- `xa*`})] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] not free +[visit_id xa*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $tagsxa{tagaddr#1 : tagaddr, a : addr, `xa*` : externaddr*}([`TAG`_externaddr{tagaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tagsxa(xa*{xa <- `xa*`}) +[check_dims] externaddr xa +[visit_exp [externaddr] ++ xa*{xa <- `xa*`}] +[visit_exp [externaddr]] +[visit_exp externaddr] +[visit_id externaddr] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] no dims +[visit_id xa*] +[visit_exp $tagsxa(xa*{xa <- `xa*`})] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] not free +[visit_id xa*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $tagsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $tagsxa(xa*{xa <- `xa*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $globalsxa([]) = [] +[check_dims] a globaladdr#1 xa +[visit_exp [`GLOBAL`_externaddr{globaladdr#1}(a)] ++ xa*{xa <- `xa*`}] +[visit_exp [`GLOBAL`_externaddr{globaladdr#1}(a)]] +[visit_exp `GLOBAL`_externaddr{globaladdr#1}(a)] +[visit_exp globaladdr#1] +[visit_id globaladdr#1] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] no dims +[visit_id xa*] +[visit_exp [a] ++ $globalsxa(xa*{xa <- `xa*`})] +[visit_exp [a]] +[visit_exp a] +[visit_id a] not free +[visit_exp $globalsxa(xa*{xa <- `xa*`})] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] not free +[visit_id xa*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $globalsxa{globaladdr#1 : globaladdr, a : addr, `xa*` : externaddr*}([`GLOBAL`_externaddr{globaladdr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $globalsxa(xa*{xa <- `xa*`}) +[check_dims] externaddr xa +[visit_exp [externaddr] ++ xa*{xa <- `xa*`}] +[visit_exp [externaddr]] +[visit_exp externaddr] +[visit_id externaddr] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] no dims +[visit_id xa*] +[visit_exp $globalsxa(xa*{xa <- `xa*`})] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] not free +[visit_id xa*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $globalsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $globalsxa(xa*{xa <- `xa*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $memsxa([]) = [] +[check_dims] a memaddr#1 xa +[visit_exp [`MEM`_externaddr{memaddr#1}(a)] ++ xa*{xa <- `xa*`}] +[visit_exp [`MEM`_externaddr{memaddr#1}(a)]] +[visit_exp `MEM`_externaddr{memaddr#1}(a)] +[visit_exp memaddr#1] +[visit_id memaddr#1] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] no dims +[visit_id xa*] +[visit_exp [a] ++ $memsxa(xa*{xa <- `xa*`})] +[visit_exp [a]] +[visit_exp a] +[visit_id a] not free +[visit_exp $memsxa(xa*{xa <- `xa*`})] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] not free +[visit_id xa*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $memsxa{memaddr#1 : memaddr, a : addr, `xa*` : externaddr*}([`MEM`_externaddr{memaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $memsxa(xa*{xa <- `xa*`}) +[check_dims] externaddr xa +[visit_exp [externaddr] ++ xa*{xa <- `xa*`}] +[visit_exp [externaddr]] +[visit_exp externaddr] +[visit_id externaddr] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] no dims +[visit_id xa*] +[visit_exp $memsxa(xa*{xa <- `xa*`})] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] not free +[visit_id xa*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $memsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $memsxa(xa*{xa <- `xa*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $tablesxa([]) = [] +[check_dims] a tableaddr#1 xa +[visit_exp [`TABLE`_externaddr{tableaddr#1}(a)] ++ xa*{xa <- `xa*`}] +[visit_exp [`TABLE`_externaddr{tableaddr#1}(a)]] +[visit_exp `TABLE`_externaddr{tableaddr#1}(a)] +[visit_exp tableaddr#1] +[visit_id tableaddr#1] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] no dims +[visit_id xa*] +[visit_exp [a] ++ $tablesxa(xa*{xa <- `xa*`})] +[visit_exp [a]] +[visit_exp a] +[visit_id a] not free +[visit_exp $tablesxa(xa*{xa <- `xa*`})] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] not free +[visit_id xa*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $tablesxa{tableaddr#1 : tableaddr, a : addr, `xa*` : externaddr*}([`TABLE`_externaddr{tableaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tablesxa(xa*{xa <- `xa*`}) +[check_dims] externaddr xa +[visit_exp [externaddr] ++ xa*{xa <- `xa*`}] +[visit_exp [externaddr]] +[visit_exp externaddr] +[visit_id externaddr] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] no dims +[visit_id xa*] +[visit_exp $tablesxa(xa*{xa <- `xa*`})] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] not free +[visit_id xa*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $tablesxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $tablesxa(xa*{xa <- `xa*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $funcsxa([]) = [] +[check_dims] a funcaddr#1 xa +[visit_exp [`FUNC`_externaddr{funcaddr#1}(a)] ++ xa*{xa <- `xa*`}] +[visit_exp [`FUNC`_externaddr{funcaddr#1}(a)]] +[visit_exp `FUNC`_externaddr{funcaddr#1}(a)] +[visit_exp funcaddr#1] +[visit_id funcaddr#1] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] no dims +[visit_id xa*] +[visit_exp [a] ++ $funcsxa(xa*{xa <- `xa*`})] +[visit_exp [a]] +[visit_exp a] +[visit_id a] not free +[visit_exp $funcsxa(xa*{xa <- `xa*`})] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] not free +[visit_id xa*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $funcsxa{funcaddr#1 : funcaddr, a : addr, `xa*` : externaddr*}([`FUNC`_externaddr{funcaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $funcsxa(xa*{xa <- `xa*`}) +[check_dims] externaddr xa +[visit_exp [externaddr] ++ xa*{xa <- `xa*`}] +[visit_exp [externaddr]] +[visit_exp externaddr] +[visit_id externaddr] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] no dims +[visit_id xa*] +[visit_exp $funcsxa(xa*{xa <- `xa*`})] +[visit_exp xa*{xa <- `xa*`}] +[scope_enter xa] +[visit_exp xa] +[visit_id xa] not free +[visit_id xa] not free +[scope_exit xa] +[visit_exp `xa*`] +[visit_id xa*] not free +[visit_id xa*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $funcsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $funcsxa(xa*{xa <- `xa*`}) + -- otherwise +[check_dims] state +DecD store(state : state) : store +[visit_id state] not free +[check_dims] state +DecD frame(state : state) : frame +[visit_id state] not free +[check_dims] f frame#11 s store#11 +[visit_exp `%;%`_state{store#11, frame#11}(s, f)] +[visit_exp store#11] +[visit_id store#11] +[visit_exp frame#11] +[visit_id frame#11] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp s] +[visit_id s] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $store{store#11 : store, frame#11 : frame, s : store, f : frame}(`%;%`_state{store#11, frame#11}(s, f)) = s +[check_dims] f frame#23 s store#23 +[visit_exp `%;%`_state{store#23, frame#23}(s, f)] +[visit_exp store#23] +[visit_id store#23] +[visit_exp frame#23] +[visit_id frame#23] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $frame{store#23 : store, frame#23 : frame, s : store, f : frame}(`%;%`_state{store#23, frame#23}(s, f)) = f +[check_dims] state +DecD tagaddr(state : state) : tagaddr* +[visit_id state] not free +[check_dims] f frame#35 moduleinst#2 s store#35 tagaddr*#2 +[visit_exp `%;%`_state{store#35, frame#35}(s, f)] +[visit_exp store#35] +[visit_id store#35] +[visit_exp frame#35] +[visit_id frame#35] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp f.`MODULE`_frame{moduleinst#2}.`TAGS`_moduleinst{`tagaddr*#2`}] +[visit_exp f.`MODULE`_frame{moduleinst#2}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#2] +[visit_id moduleinst#2] +[visit_exp `tagaddr*#2`] +[visit_id tagaddr*#2] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $tagaddr{store#35 : store, frame#35 : frame, s : store, f : frame, moduleinst#2 : moduleinst, `tagaddr*#2` : tagaddr*}(`%;%`_state{store#35, frame#35}(s, f)) = f.`MODULE`_frame{moduleinst#2}.`TAGS`_moduleinst{`tagaddr*#2`} +[check_dims] state +DecD moduleinst(state : state) : moduleinst +[visit_id state] not free +[check_dims] state +DecD taginst(state : state) : taginst* +[visit_id state] not free +[check_dims] state +DecD globalinst(state : state) : globalinst* +[visit_id state] not free +[check_dims] state +DecD meminst(state : state) : meminst* +[visit_id state] not free +[check_dims] state +DecD tableinst(state : state) : tableinst* +[visit_id state] not free +[check_dims] state +DecD funcinst(state : state) : funcinst* +[visit_id state] not free +[check_dims] state +DecD datainst(state : state) : datainst* +[visit_id state] not free +[check_dims] state +DecD eleminst(state : state) : eleminst* +[visit_id state] not free +[check_dims] state +DecD structinst(state : state) : structinst* +[visit_id state] not free +[check_dims] state +DecD arrayinst(state : state) : arrayinst* +[visit_id state] not free +[check_dims] state +DecD exninst(state : state) : exninst* +[visit_id state] not free +[check_dims] f frame#47 moduleinst#3 s store#47 +[visit_exp `%;%`_state{store#47, frame#47}(s, f)] +[visit_exp store#47] +[visit_id store#47] +[visit_exp frame#47] +[visit_id frame#47] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp f.`MODULE`_frame{moduleinst#3}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#3] +[visit_id moduleinst#3] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $moduleinst{store#47 : store, frame#47 : frame, s : store, f : frame, moduleinst#3 : moduleinst}(`%;%`_state{store#47, frame#47}(s, f)) = f.`MODULE`_frame{moduleinst#3} +[check_dims] f frame#59 s store#59 taginst*#2 +[visit_exp `%;%`_state{store#59, frame#59}(s, f)] +[visit_exp store#59] +[visit_id store#59] +[visit_exp frame#59] +[visit_id frame#59] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp s.`TAGS`_store{`taginst*#2`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `taginst*#2`] +[visit_id taginst*#2] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $taginst{store#59 : store, frame#59 : frame, s : store, f : frame, `taginst*#2` : taginst*}(`%;%`_state{store#59, frame#59}(s, f)) = s.`TAGS`_store{`taginst*#2`} +[check_dims] f frame#71 globalinst*#2 s store#71 +[visit_exp `%;%`_state{store#71, frame#71}(s, f)] +[visit_exp store#71] +[visit_id store#71] +[visit_exp frame#71] +[visit_id frame#71] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp s.`GLOBALS`_store{`globalinst*#2`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `globalinst*#2`] +[visit_id globalinst*#2] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $globalinst{store#71 : store, frame#71 : frame, s : store, f : frame, `globalinst*#2` : globalinst*}(`%;%`_state{store#71, frame#71}(s, f)) = s.`GLOBALS`_store{`globalinst*#2`} +[check_dims] f frame#83 meminst*#2 s store#83 +[visit_exp `%;%`_state{store#83, frame#83}(s, f)] +[visit_exp store#83] +[visit_id store#83] +[visit_exp frame#83] +[visit_id frame#83] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp s.`MEMS`_store{`meminst*#2`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `meminst*#2`] +[visit_id meminst*#2] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $meminst{store#83 : store, frame#83 : frame, s : store, f : frame, `meminst*#2` : meminst*}(`%;%`_state{store#83, frame#83}(s, f)) = s.`MEMS`_store{`meminst*#2`} +[check_dims] f frame#95 s store#95 tableinst*#2 +[visit_exp `%;%`_state{store#95, frame#95}(s, f)] +[visit_exp store#95] +[visit_id store#95] +[visit_exp frame#95] +[visit_id frame#95] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp s.`TABLES`_store{`tableinst*#2`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `tableinst*#2`] +[visit_id tableinst*#2] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $tableinst{store#95 : store, frame#95 : frame, s : store, f : frame, `tableinst*#2` : tableinst*}(`%;%`_state{store#95, frame#95}(s, f)) = s.`TABLES`_store{`tableinst*#2`} +[check_dims] f frame#107 funcinst*#2 s store#107 +[visit_exp `%;%`_state{store#107, frame#107}(s, f)] +[visit_exp store#107] +[visit_id store#107] +[visit_exp frame#107] +[visit_id frame#107] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp s.`FUNCS`_store{`funcinst*#2`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `funcinst*#2`] +[visit_id funcinst*#2] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $funcinst{store#107 : store, frame#107 : frame, s : store, f : frame, `funcinst*#2` : funcinst*}(`%;%`_state{store#107, frame#107}(s, f)) = s.`FUNCS`_store{`funcinst*#2`} +[check_dims] datainst*#2 f frame#119 s store#119 +[visit_exp `%;%`_state{store#119, frame#119}(s, f)] +[visit_exp store#119] +[visit_id store#119] +[visit_exp frame#119] +[visit_id frame#119] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp s.`DATAS`_store{`datainst*#2`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `datainst*#2`] +[visit_id datainst*#2] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $datainst{store#119 : store, frame#119 : frame, s : store, f : frame, `datainst*#2` : datainst*}(`%;%`_state{store#119, frame#119}(s, f)) = s.`DATAS`_store{`datainst*#2`} +[check_dims] eleminst*#2 f frame#131 s store#131 +[visit_exp `%;%`_state{store#131, frame#131}(s, f)] +[visit_exp store#131] +[visit_id store#131] +[visit_exp frame#131] +[visit_id frame#131] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp s.`ELEMS`_store{`eleminst*#2`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `eleminst*#2`] +[visit_id eleminst*#2] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $eleminst{store#131 : store, frame#131 : frame, s : store, f : frame, `eleminst*#2` : eleminst*}(`%;%`_state{store#131, frame#131}(s, f)) = s.`ELEMS`_store{`eleminst*#2`} +[check_dims] f frame#143 s store#143 structinst*#2 +[visit_exp `%;%`_state{store#143, frame#143}(s, f)] +[visit_exp store#143] +[visit_id store#143] +[visit_exp frame#143] +[visit_id frame#143] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp s.`STRUCTS`_store{`structinst*#2`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `structinst*#2`] +[visit_id structinst*#2] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $structinst{store#143 : store, frame#143 : frame, s : store, f : frame, `structinst*#2` : structinst*}(`%;%`_state{store#143, frame#143}(s, f)) = s.`STRUCTS`_store{`structinst*#2`} +[check_dims] arrayinst*#2 f frame#155 s store#155 +[visit_exp `%;%`_state{store#155, frame#155}(s, f)] +[visit_exp store#155] +[visit_id store#155] +[visit_exp frame#155] +[visit_id frame#155] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp s.`ARRAYS`_store{`arrayinst*#2`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `arrayinst*#2`] +[visit_id arrayinst*#2] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $arrayinst{store#155 : store, frame#155 : frame, s : store, f : frame, `arrayinst*#2` : arrayinst*}(`%;%`_state{store#155, frame#155}(s, f)) = s.`ARRAYS`_store{`arrayinst*#2`} +[check_dims] exninst*#2 f frame#167 s store#167 +[visit_exp `%;%`_state{store#167, frame#167}(s, f)] +[visit_exp store#167] +[visit_id store#167] +[visit_exp frame#167] +[visit_id frame#167] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp s.`EXNS`_store{`exninst*#2`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `exninst*#2`] +[visit_id exninst*#2] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $exninst{store#167 : store, frame#167 : frame, s : store, f : frame, `exninst*#2` : exninst*}(`%;%`_state{store#167, frame#167}(s, f)) = s.`EXNS`_store{`exninst*#2`} +[check_dims] state typeidx +DecD type(state : state, typeidx : typeidx) : deftype +[visit_id state] not free +[visit_id typeidx] not free +[check_dims] state tagidx +DecD tag(state : state, tagidx : tagidx) : taginst +[visit_id state] not free +[visit_id tagidx] not free +[check_dims] globalidx state +DecD global(state : state, globalidx : globalidx) : globalinst +[visit_id state] not free +[visit_id globalidx] not free +[check_dims] memidx state +DecD mem(state : state, memidx : memidx) : meminst +[visit_id state] not free +[visit_id memidx] not free +[check_dims] state tableidx +DecD table(state : state, tableidx : tableidx) : tableinst +[visit_id state] not free +[visit_id tableidx] not free +[check_dims] funcidx state +DecD func(state : state, funcidx : funcidx) : funcinst +[visit_id state] not free +[visit_id funcidx] not free +[check_dims] dataidx state +DecD data(state : state, dataidx : dataidx) : datainst +[visit_id state] not free +[visit_id dataidx] not free +[check_dims] state tableidx +DecD elem(state : state, tableidx : tableidx) : eleminst +[visit_id state] not free +[visit_id tableidx] not free +[check_dims] localidx state +DecD local(state : state, localidx : localidx) : val? +[visit_id state] not free +[visit_id localidx] not free +[check_dims] deftype*#74 f frame#179 i#30957 moduleinst#4 s store#179 x +[visit_exp `%;%`_state{store#179, frame#179}(s, f)] +[visit_exp store#179] +[visit_id store#179] +[visit_exp frame#179] +[visit_id frame#179] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp f.`MODULE`_frame{moduleinst#4}.`TYPES`_moduleinst{`deftype*#74`}[x!`%`_idx{i#30957}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#4}.`TYPES`_moduleinst{`deftype*#74`}] +[visit_exp f.`MODULE`_frame{moduleinst#4}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#4] +[visit_id moduleinst#4] +[visit_exp `deftype*#74`] +[visit_id deftype*#74] +[visit_exp x!`%`_idx{i#30957}.0] +[visit_exp x!`%`_idx{i#30957}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#30957] +[visit_id i#30957] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $type{store#179 : store, frame#179 : frame, s : store, f : frame, x : idx, moduleinst#4 : moduleinst, `deftype*#74` : deftype*, i#30957 : nat}(`%;%`_state{store#179, frame#179}(s, f), x) = f.`MODULE`_frame{moduleinst#4}.`TYPES`_moduleinst{`deftype*#74`}[x!`%`_idx{i#30957}.0] +[check_dims] f frame#191 i#30979 moduleinst#5 s store#191 tagaddr*#3 taginst*#3 x +[visit_exp `%;%`_state{store#191, frame#191}(s, f)] +[visit_exp store#191] +[visit_id store#191] +[visit_exp frame#191] +[visit_id frame#191] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp s.`TAGS`_store{`taginst*#3`}[f.`MODULE`_frame{moduleinst#5}.`TAGS`_moduleinst{`tagaddr*#3`}[x!`%`_idx{i#30979}.0]]] +[visit_exp s.`TAGS`_store{`taginst*#3`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `taginst*#3`] +[visit_id taginst*#3] +[visit_exp f.`MODULE`_frame{moduleinst#5}.`TAGS`_moduleinst{`tagaddr*#3`}[x!`%`_idx{i#30979}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#5}.`TAGS`_moduleinst{`tagaddr*#3`}] +[visit_exp f.`MODULE`_frame{moduleinst#5}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#5] +[visit_id moduleinst#5] +[visit_exp `tagaddr*#3`] +[visit_id tagaddr*#3] +[visit_exp x!`%`_idx{i#30979}.0] +[visit_exp x!`%`_idx{i#30979}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#30979] +[visit_id i#30979] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $tag{store#191 : store, frame#191 : frame, s : store, f : frame, x : idx, `taginst*#3` : taginst*, moduleinst#5 : moduleinst, `tagaddr*#3` : tagaddr*, i#30979 : nat}(`%;%`_state{store#191, frame#191}(s, f), x) = s.`TAGS`_store{`taginst*#3`}[f.`MODULE`_frame{moduleinst#5}.`TAGS`_moduleinst{`tagaddr*#3`}[x!`%`_idx{i#30979}.0]] +[check_dims] f frame#203 globaladdr*#1 globalinst*#3 i#31001 moduleinst#6 s store#203 x +[visit_exp `%;%`_state{store#203, frame#203}(s, f)] +[visit_exp store#203] +[visit_id store#203] +[visit_exp frame#203] +[visit_id frame#203] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp s.`GLOBALS`_store{`globalinst*#3`}[f.`MODULE`_frame{moduleinst#6}.`GLOBALS`_moduleinst{`globaladdr*#1`}[x!`%`_idx{i#31001}.0]]] +[visit_exp s.`GLOBALS`_store{`globalinst*#3`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `globalinst*#3`] +[visit_id globalinst*#3] +[visit_exp f.`MODULE`_frame{moduleinst#6}.`GLOBALS`_moduleinst{`globaladdr*#1`}[x!`%`_idx{i#31001}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#6}.`GLOBALS`_moduleinst{`globaladdr*#1`}] +[visit_exp f.`MODULE`_frame{moduleinst#6}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#6] +[visit_id moduleinst#6] +[visit_exp `globaladdr*#1`] +[visit_id globaladdr*#1] +[visit_exp x!`%`_idx{i#31001}.0] +[visit_exp x!`%`_idx{i#31001}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31001] +[visit_id i#31001] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $global{store#203 : store, frame#203 : frame, s : store, f : frame, x : idx, `globalinst*#3` : globalinst*, moduleinst#6 : moduleinst, `globaladdr*#1` : globaladdr*, i#31001 : nat}(`%;%`_state{store#203, frame#203}(s, f), x) = s.`GLOBALS`_store{`globalinst*#3`}[f.`MODULE`_frame{moduleinst#6}.`GLOBALS`_moduleinst{`globaladdr*#1`}[x!`%`_idx{i#31001}.0]] +[check_dims] f frame#215 i#31023 memaddr*#1 meminst*#3 moduleinst#7 s store#215 x +[visit_exp `%;%`_state{store#215, frame#215}(s, f)] +[visit_exp store#215] +[visit_id store#215] +[visit_exp frame#215] +[visit_id frame#215] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp s.`MEMS`_store{`meminst*#3`}[f.`MODULE`_frame{moduleinst#7}.`MEMS`_moduleinst{`memaddr*#1`}[x!`%`_idx{i#31023}.0]]] +[visit_exp s.`MEMS`_store{`meminst*#3`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `meminst*#3`] +[visit_id meminst*#3] +[visit_exp f.`MODULE`_frame{moduleinst#7}.`MEMS`_moduleinst{`memaddr*#1`}[x!`%`_idx{i#31023}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#7}.`MEMS`_moduleinst{`memaddr*#1`}] +[visit_exp f.`MODULE`_frame{moduleinst#7}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#7] +[visit_id moduleinst#7] +[visit_exp `memaddr*#1`] +[visit_id memaddr*#1] +[visit_exp x!`%`_idx{i#31023}.0] +[visit_exp x!`%`_idx{i#31023}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31023] +[visit_id i#31023] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $mem{store#215 : store, frame#215 : frame, s : store, f : frame, x : idx, `meminst*#3` : meminst*, moduleinst#7 : moduleinst, `memaddr*#1` : memaddr*, i#31023 : nat}(`%;%`_state{store#215, frame#215}(s, f), x) = s.`MEMS`_store{`meminst*#3`}[f.`MODULE`_frame{moduleinst#7}.`MEMS`_moduleinst{`memaddr*#1`}[x!`%`_idx{i#31023}.0]] +[check_dims] f frame#227 i#31045 moduleinst#8 s store#227 tableaddr*#1 tableinst*#3 x +[visit_exp `%;%`_state{store#227, frame#227}(s, f)] +[visit_exp store#227] +[visit_id store#227] +[visit_exp frame#227] +[visit_id frame#227] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp s.`TABLES`_store{`tableinst*#3`}[f.`MODULE`_frame{moduleinst#8}.`TABLES`_moduleinst{`tableaddr*#1`}[x!`%`_idx{i#31045}.0]]] +[visit_exp s.`TABLES`_store{`tableinst*#3`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `tableinst*#3`] +[visit_id tableinst*#3] +[visit_exp f.`MODULE`_frame{moduleinst#8}.`TABLES`_moduleinst{`tableaddr*#1`}[x!`%`_idx{i#31045}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#8}.`TABLES`_moduleinst{`tableaddr*#1`}] +[visit_exp f.`MODULE`_frame{moduleinst#8}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#8] +[visit_id moduleinst#8] +[visit_exp `tableaddr*#1`] +[visit_id tableaddr*#1] +[visit_exp x!`%`_idx{i#31045}.0] +[visit_exp x!`%`_idx{i#31045}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31045] +[visit_id i#31045] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $table{store#227 : store, frame#227 : frame, s : store, f : frame, x : idx, `tableinst*#3` : tableinst*, moduleinst#8 : moduleinst, `tableaddr*#1` : tableaddr*, i#31045 : nat}(`%;%`_state{store#227, frame#227}(s, f), x) = s.`TABLES`_store{`tableinst*#3`}[f.`MODULE`_frame{moduleinst#8}.`TABLES`_moduleinst{`tableaddr*#1`}[x!`%`_idx{i#31045}.0]] +[check_dims] f frame#239 funcaddr*#1 funcinst*#3 i#31067 moduleinst#9 s store#239 x +[visit_exp `%;%`_state{store#239, frame#239}(s, f)] +[visit_exp store#239] +[visit_id store#239] +[visit_exp frame#239] +[visit_id frame#239] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp s.`FUNCS`_store{`funcinst*#3`}[f.`MODULE`_frame{moduleinst#9}.`FUNCS`_moduleinst{`funcaddr*#1`}[x!`%`_idx{i#31067}.0]]] +[visit_exp s.`FUNCS`_store{`funcinst*#3`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `funcinst*#3`] +[visit_id funcinst*#3] +[visit_exp f.`MODULE`_frame{moduleinst#9}.`FUNCS`_moduleinst{`funcaddr*#1`}[x!`%`_idx{i#31067}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#9}.`FUNCS`_moduleinst{`funcaddr*#1`}] +[visit_exp f.`MODULE`_frame{moduleinst#9}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#9] +[visit_id moduleinst#9] +[visit_exp `funcaddr*#1`] +[visit_id funcaddr*#1] +[visit_exp x!`%`_idx{i#31067}.0] +[visit_exp x!`%`_idx{i#31067}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31067] +[visit_id i#31067] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $func{store#239 : store, frame#239 : frame, s : store, f : frame, x : idx, `funcinst*#3` : funcinst*, moduleinst#9 : moduleinst, `funcaddr*#1` : funcaddr*, i#31067 : nat}(`%;%`_state{store#239, frame#239}(s, f), x) = s.`FUNCS`_store{`funcinst*#3`}[f.`MODULE`_frame{moduleinst#9}.`FUNCS`_moduleinst{`funcaddr*#1`}[x!`%`_idx{i#31067}.0]] +[check_dims] dataaddr*#1 datainst*#3 f frame#251 i#31089 moduleinst#10 s store#251 x +[visit_exp `%;%`_state{store#251, frame#251}(s, f)] +[visit_exp store#251] +[visit_id store#251] +[visit_exp frame#251] +[visit_id frame#251] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp s.`DATAS`_store{`datainst*#3`}[f.`MODULE`_frame{moduleinst#10}.`DATAS`_moduleinst{`dataaddr*#1`}[x!`%`_idx{i#31089}.0]]] +[visit_exp s.`DATAS`_store{`datainst*#3`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `datainst*#3`] +[visit_id datainst*#3] +[visit_exp f.`MODULE`_frame{moduleinst#10}.`DATAS`_moduleinst{`dataaddr*#1`}[x!`%`_idx{i#31089}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#10}.`DATAS`_moduleinst{`dataaddr*#1`}] +[visit_exp f.`MODULE`_frame{moduleinst#10}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#10] +[visit_id moduleinst#10] +[visit_exp `dataaddr*#1`] +[visit_id dataaddr*#1] +[visit_exp x!`%`_idx{i#31089}.0] +[visit_exp x!`%`_idx{i#31089}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31089] +[visit_id i#31089] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $data{store#251 : store, frame#251 : frame, s : store, f : frame, x : idx, `datainst*#3` : datainst*, moduleinst#10 : moduleinst, `dataaddr*#1` : dataaddr*, i#31089 : nat}(`%;%`_state{store#251, frame#251}(s, f), x) = s.`DATAS`_store{`datainst*#3`}[f.`MODULE`_frame{moduleinst#10}.`DATAS`_moduleinst{`dataaddr*#1`}[x!`%`_idx{i#31089}.0]] +[check_dims] elemaddr*#1 eleminst*#3 f frame#263 i#31111 moduleinst#11 s store#263 x +[visit_exp `%;%`_state{store#263, frame#263}(s, f)] +[visit_exp store#263] +[visit_id store#263] +[visit_exp frame#263] +[visit_id frame#263] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp s.`ELEMS`_store{`eleminst*#3`}[f.`MODULE`_frame{moduleinst#11}.`ELEMS`_moduleinst{`elemaddr*#1`}[x!`%`_idx{i#31111}.0]]] +[visit_exp s.`ELEMS`_store{`eleminst*#3`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `eleminst*#3`] +[visit_id eleminst*#3] +[visit_exp f.`MODULE`_frame{moduleinst#11}.`ELEMS`_moduleinst{`elemaddr*#1`}[x!`%`_idx{i#31111}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#11}.`ELEMS`_moduleinst{`elemaddr*#1`}] +[visit_exp f.`MODULE`_frame{moduleinst#11}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#11] +[visit_id moduleinst#11] +[visit_exp `elemaddr*#1`] +[visit_id elemaddr*#1] +[visit_exp x!`%`_idx{i#31111}.0] +[visit_exp x!`%`_idx{i#31111}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31111] +[visit_id i#31111] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $elem{store#263 : store, frame#263 : frame, s : store, f : frame, x : idx, `eleminst*#3` : eleminst*, moduleinst#11 : moduleinst, `elemaddr*#1` : elemaddr*, i#31111 : nat}(`%;%`_state{store#263, frame#263}(s, f), x) = s.`ELEMS`_store{`eleminst*#3`}[f.`MODULE`_frame{moduleinst#11}.`ELEMS`_moduleinst{`elemaddr*#1`}[x!`%`_idx{i#31111}.0]] +[check_dims] f frame#275 i#31143 s store#275 val?*#2 x +[visit_exp `%;%`_state{store#275, frame#275}(s, f)] +[visit_exp store#275] +[visit_id store#275] +[visit_exp frame#275] +[visit_id frame#275] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp f.`LOCALS`_frame{`val?*#2`}[x!`%`_idx{i#31143}.0]] +[visit_exp f.`LOCALS`_frame{`val?*#2`}] +[visit_exp f] +[visit_id f] not free +[visit_exp `val?*#2`] +[visit_id val?*#2] +[visit_exp x!`%`_idx{i#31143}.0] +[visit_exp x!`%`_idx{i#31143}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31143] +[visit_id i#31143] +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $local{store#275 : store, frame#275 : frame, s : store, f : frame, x : idx, `val?*#2` : val?*, i#31143 : nat}(`%;%`_state{store#275, frame#275}(s, f), x) = f.`LOCALS`_frame{`val?*#2`}[x!`%`_idx{i#31143}.0] +[check_dims] localidx state val +DecD with_local(state : state, localidx : localidx, val : val) : state +[visit_id state] not free +[visit_id localidx] not free +[visit_id val] not free +[check_dims] globalidx state val +DecD with_global(state : state, globalidx : globalidx, val : val) : state +[visit_id state] not free +[visit_id globalidx] not free +[visit_id val] not free +[check_dims] nat ref state tableidx +DecD with_table(state : state, tableidx : tableidx, nat : nat, ref : ref) : state +[visit_id state] not free +[visit_id tableidx] not free +[visit_id nat] not free +[visit_id ref] not free +[check_dims] state tableidx tableinst +DecD with_tableinst(state : state, tableidx : tableidx, tableinst : tableinst) : state +[visit_id state] not free +[visit_id tableidx] not free +[visit_id tableinst] not free +[check_dims] _ memidx nat state +DecD with_mem(state : state, memidx : memidx, nat : nat, nat : nat, byte*) : state +[visit_id state] not free +[visit_id memidx] not free +[visit_id nat] not free +[visit_id nat] not free +[visit_id _] not free +[check_dims] memidx meminst state +DecD with_meminst(state : state, memidx : memidx, meminst : meminst) : state +[visit_id state] not free +[visit_id memidx] not free +[visit_id meminst] not free +[check_dims] _ elemidx state +DecD with_elem(state : state, elemidx : elemidx, ref*) : state +[visit_id state] not free +[visit_id elemidx] not free +[visit_id _] not free +[check_dims] _ dataidx state +DecD with_data(state : state, dataidx : dataidx, byte*) : state +[visit_id state] not free +[visit_id dataidx] not free +[visit_id _] not free +[check_dims] fieldval nat state structaddr +DecD with_struct(state : state, structaddr : structaddr, nat : nat, fieldval : fieldval) : state +[visit_id state] not free +[visit_id structaddr] not free +[visit_id nat] not free +[visit_id fieldval] not free +[check_dims] arrayaddr fieldval nat state +DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fieldval) : state +[visit_id state] not free +[visit_id arrayaddr] not free +[visit_id nat] not free +[visit_id fieldval] not free +[check_dims] f frame#287 frame#299 i#31165 s store#287 store#299 v val?*#3 x +[visit_exp `%;%`_state{store#287, frame#287}(s, f)] +[visit_exp store#287] +[visit_id store#287] +[visit_exp frame#287] +[visit_id frame#287] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp v] +[visit_id v] +[visit_exp `%;%`_state{store#299, frame#299}(s, f[`LOCALS`_frame{`val?*#3`}[x!`%`_idx{i#31165}.0] = ?(v)])] +[visit_exp store#299] +[visit_id store#299] +[visit_exp frame#299] +[visit_id frame#299] +[visit_exp (s, f[`LOCALS`_frame{`val?*#3`}[x!`%`_idx{i#31165}.0] = ?(v)])] +[visit_exp s] +[visit_id s] not free +[visit_exp f[`LOCALS`_frame{`val?*#3`}[x!`%`_idx{i#31165}.0] = ?(v)]] +[visit_exp f] +[visit_id f] not free +[visit_exp `val?*#3`] +[visit_id val?*#3] +[visit_exp x!`%`_idx{i#31165}.0] +[visit_exp x!`%`_idx{i#31165}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31165] +[visit_id i#31165] +[visit_exp ?(v)] +[visit_exp v] +[visit_id v] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $with_local{store#287 : store, frame#287 : frame, s : store, f : frame, x : idx, v : val, store#299 : store, frame#299 : frame, `val?*#3` : val?*, i#31165 : nat}(`%;%`_state{store#287, frame#287}(s, f), x, v) = `%;%`_state{store#299, frame#299}(s, f[`LOCALS`_frame{`val?*#3`}[x!`%`_idx{i#31165}.0] = ?(v)]) +[check_dims] f frame#311 frame#323 globaladdr*#2 globalinst*#4 i#31187 moduleinst#12 s store#311 store#323 v val#1 x +[visit_exp `%;%`_state{store#311, frame#311}(s, f)] +[visit_exp store#311] +[visit_id store#311] +[visit_exp frame#311] +[visit_id frame#311] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp v] +[visit_id v] +[visit_exp `%;%`_state{store#323, frame#323}(s[`GLOBALS`_store{`globalinst*#4`}[f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}[x!`%`_idx{i#31187}.0]].`VALUE`_globalinst{val#1} = v], f)] +[visit_exp store#323] +[visit_id store#323] +[visit_exp frame#323] +[visit_id frame#323] +[visit_exp (s[`GLOBALS`_store{`globalinst*#4`}[f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}[x!`%`_idx{i#31187}.0]].`VALUE`_globalinst{val#1} = v], f)] +[visit_exp s[`GLOBALS`_store{`globalinst*#4`}[f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}[x!`%`_idx{i#31187}.0]].`VALUE`_globalinst{val#1} = v]] +[visit_exp s] +[visit_id s] not free +[visit_exp `globalinst*#4`] +[visit_id globalinst*#4] +[visit_exp f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}[x!`%`_idx{i#31187}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}] +[visit_exp f.`MODULE`_frame{moduleinst#12}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#12] +[visit_id moduleinst#12] +[visit_exp `globaladdr*#2`] +[visit_id globaladdr*#2] +[visit_exp x!`%`_idx{i#31187}.0] +[visit_exp x!`%`_idx{i#31187}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31187] +[visit_id i#31187] +[visit_exp val#1] +[visit_id val#1] +[visit_exp v] +[visit_id v] not free +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $with_global{store#311 : store, frame#311 : frame, s : store, f : frame, x : idx, v : val, store#323 : store, frame#323 : frame, `globalinst*#4` : globalinst*, moduleinst#12 : moduleinst, `globaladdr*#2` : globaladdr*, i#31187 : nat, val#1 : val}(`%;%`_state{store#311, frame#311}(s, f), x, v) = `%;%`_state{store#323, frame#323}(s[`GLOBALS`_store{`globalinst*#4`}[f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}[x!`%`_idx{i#31187}.0]].`VALUE`_globalinst{val#1} = v], f) +[check_dims] f frame#335 frame#347 i i#31209 moduleinst#13 r ref*#1 s store#335 store#347 tableaddr*#2 tableinst*#4 x +[visit_exp `%;%`_state{store#335, frame#335}(s, f)] +[visit_exp store#335] +[visit_id store#335] +[visit_exp frame#335] +[visit_id frame#335] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp r] +[visit_id r] +[visit_exp `%;%`_state{store#347, frame#347}(s[`TABLES`_store{`tableinst*#4`}[f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}[x!`%`_idx{i#31209}.0]].`REFS`_tableinst{`ref*#1`}[i] = r], f)] +[visit_exp store#347] +[visit_id store#347] +[visit_exp frame#347] +[visit_id frame#347] +[visit_exp (s[`TABLES`_store{`tableinst*#4`}[f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}[x!`%`_idx{i#31209}.0]].`REFS`_tableinst{`ref*#1`}[i] = r], f)] +[visit_exp s[`TABLES`_store{`tableinst*#4`}[f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}[x!`%`_idx{i#31209}.0]].`REFS`_tableinst{`ref*#1`}[i] = r]] +[visit_exp s] +[visit_id s] not free +[visit_exp `tableinst*#4`] +[visit_id tableinst*#4] +[visit_exp f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}[x!`%`_idx{i#31209}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}] +[visit_exp f.`MODULE`_frame{moduleinst#13}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#13] +[visit_id moduleinst#13] +[visit_exp `tableaddr*#2`] +[visit_id tableaddr*#2] +[visit_exp x!`%`_idx{i#31209}.0] +[visit_exp x!`%`_idx{i#31209}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31209] +[visit_id i#31209] +[visit_exp `ref*#1`] +[visit_id ref*#1] +[visit_exp i] +[visit_id i] not free +[visit_exp r] +[visit_id r] not free +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $with_table{store#335 : store, frame#335 : frame, s : store, f : frame, x : idx, i : nat, r : ref, store#347 : store, frame#347 : frame, `tableinst*#4` : tableinst*, moduleinst#13 : moduleinst, `tableaddr*#2` : tableaddr*, i#31209 : nat, `ref*#1` : ref*}(`%;%`_state{store#335, frame#335}(s, f), x, i, r) = `%;%`_state{store#347, frame#347}(s[`TABLES`_store{`tableinst*#4`}[f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}[x!`%`_idx{i#31209}.0]].`REFS`_tableinst{`ref*#1`}[i] = r], f) +[check_dims] f frame#359 frame#371 i#31231 moduleinst#14 s store#359 store#371 tableaddr*#3 tableinst*#5 ti x +[visit_exp `%;%`_state{store#359, frame#359}(s, f)] +[visit_exp store#359] +[visit_id store#359] +[visit_exp frame#359] +[visit_id frame#359] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp ti] +[visit_id ti] +[visit_exp `%;%`_state{store#371, frame#371}(s[`TABLES`_store{`tableinst*#5`}[f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}[x!`%`_idx{i#31231}.0]] = ti], f)] +[visit_exp store#371] +[visit_id store#371] +[visit_exp frame#371] +[visit_id frame#371] +[visit_exp (s[`TABLES`_store{`tableinst*#5`}[f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}[x!`%`_idx{i#31231}.0]] = ti], f)] +[visit_exp s[`TABLES`_store{`tableinst*#5`}[f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}[x!`%`_idx{i#31231}.0]] = ti]] +[visit_exp s] +[visit_id s] not free +[visit_exp `tableinst*#5`] +[visit_id tableinst*#5] +[visit_exp f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}[x!`%`_idx{i#31231}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}] +[visit_exp f.`MODULE`_frame{moduleinst#14}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#14] +[visit_id moduleinst#14] +[visit_exp `tableaddr*#3`] +[visit_id tableaddr*#3] +[visit_exp x!`%`_idx{i#31231}.0] +[visit_exp x!`%`_idx{i#31231}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31231] +[visit_id i#31231] +[visit_exp ti] +[visit_id ti] not free +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $with_tableinst{store#359 : store, frame#359 : frame, s : store, f : frame, x : idx, ti : tableinst, store#371 : store, frame#371 : frame, `tableinst*#5` : tableinst*, moduleinst#14 : moduleinst, `tableaddr*#3` : tableaddr*, i#31231 : nat}(`%;%`_state{store#359, frame#359}(s, f), x, ti) = `%;%`_state{store#371, frame#371}(s[`TABLES`_store{`tableinst*#5`}[f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}[x!`%`_idx{i#31231}.0]] = ti], f) +[check_dims] b byte*#1845 f frame#383 frame#395 i i#31265 j memaddr*#2 meminst*#4 moduleinst#15 s store#383 store#395 x +[visit_exp `%;%`_state{store#383, frame#383}(s, f)] +[visit_exp store#383] +[visit_id store#383] +[visit_exp frame#383] +[visit_id frame#383] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp j] +[visit_id j] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp `%;%`_state{store#395, frame#395}(s[`MEMS`_store{`meminst*#4`}[f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}[x!`%`_idx{i#31265}.0]].`BYTES`_meminst{`byte*#1845`}[i : j] = b*{b <- `b*`}], f)] +[visit_exp store#395] +[visit_id store#395] +[visit_exp frame#395] +[visit_id frame#395] +[visit_exp (s[`MEMS`_store{`meminst*#4`}[f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}[x!`%`_idx{i#31265}.0]].`BYTES`_meminst{`byte*#1845`}[i : j] = b*{b <- `b*`}], f)] +[visit_exp s[`MEMS`_store{`meminst*#4`}[f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}[x!`%`_idx{i#31265}.0]].`BYTES`_meminst{`byte*#1845`}[i : j] = b*{b <- `b*`}]] +[visit_exp s] +[visit_id s] not free +[visit_exp `meminst*#4`] +[visit_id meminst*#4] +[visit_exp f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}[x!`%`_idx{i#31265}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}] +[visit_exp f.`MODULE`_frame{moduleinst#15}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#15] +[visit_id moduleinst#15] +[visit_exp `memaddr*#2`] +[visit_id memaddr*#2] +[visit_exp x!`%`_idx{i#31265}.0] +[visit_exp x!`%`_idx{i#31265}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31265] +[visit_id i#31265] +[visit_exp `byte*#1845`] +[visit_id byte*#1845] +[visit_exp i] +[visit_id i] not free +[visit_exp j] +[visit_id j] not free +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $with_mem{store#383 : store, frame#383 : frame, s : store, f : frame, x : idx, i : nat, j : nat, `b*` : byte*, store#395 : store, frame#395 : frame, `meminst*#4` : meminst*, moduleinst#15 : moduleinst, `memaddr*#2` : memaddr*, i#31265 : nat, `byte*#1845` : byte*}(`%;%`_state{store#383, frame#383}(s, f), x, i, j, b*{b <- `b*`}) = `%;%`_state{store#395, frame#395}(s[`MEMS`_store{`meminst*#4`}[f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}[x!`%`_idx{i#31265}.0]].`BYTES`_meminst{`byte*#1845`}[i : j] = b*{b <- `b*`}], f) +[check_dims] f frame#407 frame#419 i#31299 memaddr*#3 meminst*#5 mi moduleinst#16 s store#407 store#419 x +[visit_exp `%;%`_state{store#407, frame#407}(s, f)] +[visit_exp store#407] +[visit_id store#407] +[visit_exp frame#407] +[visit_id frame#407] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp mi] +[visit_id mi] +[visit_exp `%;%`_state{store#419, frame#419}(s[`MEMS`_store{`meminst*#5`}[f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}[x!`%`_idx{i#31299}.0]] = mi], f)] +[visit_exp store#419] +[visit_id store#419] +[visit_exp frame#419] +[visit_id frame#419] +[visit_exp (s[`MEMS`_store{`meminst*#5`}[f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}[x!`%`_idx{i#31299}.0]] = mi], f)] +[visit_exp s[`MEMS`_store{`meminst*#5`}[f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}[x!`%`_idx{i#31299}.0]] = mi]] +[visit_exp s] +[visit_id s] not free +[visit_exp `meminst*#5`] +[visit_id meminst*#5] +[visit_exp f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}[x!`%`_idx{i#31299}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}] +[visit_exp f.`MODULE`_frame{moduleinst#16}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#16] +[visit_id moduleinst#16] +[visit_exp `memaddr*#3`] +[visit_id memaddr*#3] +[visit_exp x!`%`_idx{i#31299}.0] +[visit_exp x!`%`_idx{i#31299}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31299] +[visit_id i#31299] +[visit_exp mi] +[visit_id mi] not free +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $with_meminst{store#407 : store, frame#407 : frame, s : store, f : frame, x : idx, mi : meminst, store#419 : store, frame#419 : frame, `meminst*#5` : meminst*, moduleinst#16 : moduleinst, `memaddr*#3` : memaddr*, i#31299 : nat}(`%;%`_state{store#407, frame#407}(s, f), x, mi) = `%;%`_state{store#419, frame#419}(s[`MEMS`_store{`meminst*#5`}[f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}[x!`%`_idx{i#31299}.0]] = mi], f) +[check_dims] elemaddr*#2 eleminst*#4 f frame#431 frame#443 i#31321 moduleinst#17 r ref*#2 s store#431 store#443 x +[visit_exp `%;%`_state{store#431, frame#431}(s, f)] +[visit_exp store#431] +[visit_id store#431] +[visit_exp frame#431] +[visit_id frame#431] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp r*{r <- `r*`}] +[scope_enter r] +[visit_exp r] +[visit_id r] not free +[visit_id r] not free +[scope_exit r] +[visit_exp `r*`] +[visit_id r*] no dims +[visit_id r*] +[visit_exp `%;%`_state{store#443, frame#443}(s[`ELEMS`_store{`eleminst*#4`}[f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}[x!`%`_idx{i#31321}.0]].`REFS`_eleminst{`ref*#2`} = r*{r <- `r*`}], f)] +[visit_exp store#443] +[visit_id store#443] +[visit_exp frame#443] +[visit_id frame#443] +[visit_exp (s[`ELEMS`_store{`eleminst*#4`}[f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}[x!`%`_idx{i#31321}.0]].`REFS`_eleminst{`ref*#2`} = r*{r <- `r*`}], f)] +[visit_exp s[`ELEMS`_store{`eleminst*#4`}[f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}[x!`%`_idx{i#31321}.0]].`REFS`_eleminst{`ref*#2`} = r*{r <- `r*`}]] +[visit_exp s] +[visit_id s] not free +[visit_exp `eleminst*#4`] +[visit_id eleminst*#4] +[visit_exp f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}[x!`%`_idx{i#31321}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}] +[visit_exp f.`MODULE`_frame{moduleinst#17}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#17] +[visit_id moduleinst#17] +[visit_exp `elemaddr*#2`] +[visit_id elemaddr*#2] +[visit_exp x!`%`_idx{i#31321}.0] +[visit_exp x!`%`_idx{i#31321}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31321] +[visit_id i#31321] +[visit_exp `ref*#2`] +[visit_id ref*#2] +[visit_exp r*{r <- `r*`}] +[scope_enter r] +[visit_exp r] +[visit_id r] not free +[visit_id r] not free +[scope_exit r] +[visit_exp `r*`] +[visit_id r*] not free +[visit_id r*] no dims +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $with_elem{store#431 : store, frame#431 : frame, s : store, f : frame, x : idx, `r*` : ref*, store#443 : store, frame#443 : frame, `eleminst*#4` : eleminst*, moduleinst#17 : moduleinst, `elemaddr*#2` : elemaddr*, i#31321 : nat, `ref*#2` : ref*}(`%;%`_state{store#431, frame#431}(s, f), x, r*{r <- `r*`}) = `%;%`_state{store#443, frame#443}(s[`ELEMS`_store{`eleminst*#4`}[f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}[x!`%`_idx{i#31321}.0]].`REFS`_eleminst{`ref*#2`} = r*{r <- `r*`}], f) +[check_dims] b byte*#1846 dataaddr*#2 datainst*#4 f frame#455 frame#467 i#31355 moduleinst#18 s store#455 store#467 x +[visit_exp `%;%`_state{store#455, frame#455}(s, f)] +[visit_exp store#455] +[visit_id store#455] +[visit_exp frame#455] +[visit_id frame#455] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp x] +[visit_id x] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp `%;%`_state{store#467, frame#467}(s[`DATAS`_store{`datainst*#4`}[f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}[x!`%`_idx{i#31355}.0]].`BYTES`_datainst{`byte*#1846`} = b*{b <- `b*`}], f)] +[visit_exp store#467] +[visit_id store#467] +[visit_exp frame#467] +[visit_id frame#467] +[visit_exp (s[`DATAS`_store{`datainst*#4`}[f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}[x!`%`_idx{i#31355}.0]].`BYTES`_datainst{`byte*#1846`} = b*{b <- `b*`}], f)] +[visit_exp s[`DATAS`_store{`datainst*#4`}[f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}[x!`%`_idx{i#31355}.0]].`BYTES`_datainst{`byte*#1846`} = b*{b <- `b*`}]] +[visit_exp s] +[visit_id s] not free +[visit_exp `datainst*#4`] +[visit_id datainst*#4] +[visit_exp f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}[x!`%`_idx{i#31355}.0]] +[visit_exp f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}] +[visit_exp f.`MODULE`_frame{moduleinst#18}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#18] +[visit_id moduleinst#18] +[visit_exp `dataaddr*#2`] +[visit_id dataaddr*#2] +[visit_exp x!`%`_idx{i#31355}.0] +[visit_exp x!`%`_idx{i#31355}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#31355] +[visit_id i#31355] +[visit_exp `byte*#1846`] +[visit_id byte*#1846] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $with_data{store#455 : store, frame#455 : frame, s : store, f : frame, x : idx, `b*` : byte*, store#467 : store, frame#467 : frame, `datainst*#4` : datainst*, moduleinst#18 : moduleinst, `dataaddr*#2` : dataaddr*, i#31355 : nat, `byte*#1846` : byte*}(`%;%`_state{store#455, frame#455}(s, f), x, b*{b <- `b*`}) = `%;%`_state{store#467, frame#467}(s[`DATAS`_store{`datainst*#4`}[f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}[x!`%`_idx{i#31355}.0]].`BYTES`_datainst{`byte*#1846`} = b*{b <- `b*`}], f) +[check_dims] a f fieldval*#1 frame#479 frame#491 fv i s store#479 store#491 structinst*#3 +[visit_exp `%;%`_state{store#479, frame#479}(s, f)] +[visit_exp store#479] +[visit_id store#479] +[visit_exp frame#479] +[visit_id frame#479] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp a] +[visit_id a] +[visit_exp i] +[visit_id i] +[visit_exp fv] +[visit_id fv] +[visit_exp `%;%`_state{store#491, frame#491}(s[`STRUCTS`_store{`structinst*#3`}[a].`FIELDS`_structinst{`fieldval*#1`}[i] = fv], f)] +[visit_exp store#491] +[visit_id store#491] +[visit_exp frame#491] +[visit_id frame#491] +[visit_exp (s[`STRUCTS`_store{`structinst*#3`}[a].`FIELDS`_structinst{`fieldval*#1`}[i] = fv], f)] +[visit_exp s[`STRUCTS`_store{`structinst*#3`}[a].`FIELDS`_structinst{`fieldval*#1`}[i] = fv]] +[visit_exp s] +[visit_id s] not free +[visit_exp `structinst*#3`] +[visit_id structinst*#3] +[visit_exp a] +[visit_id a] not free +[visit_exp `fieldval*#1`] +[visit_id fieldval*#1] +[visit_exp i] +[visit_id i] not free +[visit_exp fv] +[visit_id fv] not free +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $with_struct{store#479 : store, frame#479 : frame, s : store, f : frame, a : addr, i : nat, fv : fieldval, store#491 : store, frame#491 : frame, `structinst*#3` : structinst*, `fieldval*#1` : fieldval*}(`%;%`_state{store#479, frame#479}(s, f), a, i, fv) = `%;%`_state{store#491, frame#491}(s[`STRUCTS`_store{`structinst*#3`}[a].`FIELDS`_structinst{`fieldval*#1`}[i] = fv], f) +[check_dims] a arrayinst*#3 f fieldval*#2 frame#503 frame#515 fv i s store#503 store#515 +[visit_exp `%;%`_state{store#503, frame#503}(s, f)] +[visit_exp store#503] +[visit_id store#503] +[visit_exp frame#503] +[visit_id frame#503] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp a] +[visit_id a] +[visit_exp i] +[visit_id i] +[visit_exp fv] +[visit_id fv] +[visit_exp `%;%`_state{store#515, frame#515}(s[`ARRAYS`_store{`arrayinst*#3`}[a].`FIELDS`_arrayinst{`fieldval*#2`}[i] = fv], f)] +[visit_exp store#515] +[visit_id store#515] +[visit_exp frame#515] +[visit_id frame#515] +[visit_exp (s[`ARRAYS`_store{`arrayinst*#3`}[a].`FIELDS`_arrayinst{`fieldval*#2`}[i] = fv], f)] +[visit_exp s[`ARRAYS`_store{`arrayinst*#3`}[a].`FIELDS`_arrayinst{`fieldval*#2`}[i] = fv]] +[visit_exp s] +[visit_id s] not free +[visit_exp `arrayinst*#3`] +[visit_id arrayinst*#3] +[visit_exp a] +[visit_id a] not free +[visit_exp `fieldval*#2`] +[visit_id fieldval*#2] +[visit_exp i] +[visit_id i] not free +[visit_exp fv] +[visit_id fv] not free +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $with_array{store#503 : store, frame#503 : frame, s : store, f : frame, a : addr, i : nat, fv : fieldval, store#515 : store, frame#515 : frame, `arrayinst*#3` : arrayinst*, `fieldval*#2` : fieldval*}(`%;%`_state{store#503, frame#503}(s, f), a, i, fv) = `%;%`_state{store#515, frame#515}(s[`ARRAYS`_store{`arrayinst*#3`}[a].`FIELDS`_arrayinst{`fieldval*#2`}[i] = fv], f) +[check_dims] _ state +DecD add_structinst(state : state, structinst*) : state +[visit_id state] not free +[visit_id _] not free +[check_dims] _ state +DecD add_arrayinst(state : state, arrayinst*) : state +[visit_id state] not free +[visit_id _] not free +[check_dims] _ state +DecD add_exninst(state : state, exninst*) : state +[visit_id state] not free +[visit_id _] not free +[check_dims] f frame#527 frame#539 s si store#527 store#539 structinst*#4 +[visit_exp `%;%`_state{store#527, frame#527}(s, f)] +[visit_exp store#527] +[visit_id store#527] +[visit_exp frame#527] +[visit_id frame#527] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp si*{si <- `si*`}] +[scope_enter si] +[visit_exp si] +[visit_id si] not free +[visit_id si] not free +[scope_exit si] +[visit_exp `si*`] +[visit_id si*] no dims +[visit_id si*] +[visit_exp `%;%`_state{store#539, frame#539}(s[`STRUCTS`_store{`structinst*#4`} =++ si*{si <- `si*`}], f)] +[visit_exp store#539] +[visit_id store#539] +[visit_exp frame#539] +[visit_id frame#539] +[visit_exp (s[`STRUCTS`_store{`structinst*#4`} =++ si*{si <- `si*`}], f)] +[visit_exp s[`STRUCTS`_store{`structinst*#4`} =++ si*{si <- `si*`}]] +[visit_exp s] +[visit_id s] not free +[visit_exp `structinst*#4`] +[visit_id structinst*#4] +[visit_exp si*{si <- `si*`}] +[scope_enter si] +[visit_exp si] +[visit_id si] not free +[visit_id si] not free +[scope_exit si] +[visit_exp `si*`] +[visit_id si*] not free +[visit_id si*] no dims +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $add_structinst{store#527 : store, frame#527 : frame, s : store, f : frame, `si*` : structinst*, store#539 : store, frame#539 : frame, `structinst*#4` : structinst*}(`%;%`_state{store#527, frame#527}(s, f), si*{si <- `si*`}) = `%;%`_state{store#539, frame#539}(s[`STRUCTS`_store{`structinst*#4`} =++ si*{si <- `si*`}], f) +[check_dims] ai arrayinst*#4 f frame#551 frame#563 s store#551 store#563 +[visit_exp `%;%`_state{store#551, frame#551}(s, f)] +[visit_exp store#551] +[visit_id store#551] +[visit_exp frame#551] +[visit_id frame#551] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp ai*{ai <- `ai*`}] +[scope_enter ai] +[visit_exp ai] +[visit_id ai] not free +[visit_id ai] not free +[scope_exit ai] +[visit_exp `ai*`] +[visit_id ai*] no dims +[visit_id ai*] +[visit_exp `%;%`_state{store#563, frame#563}(s[`ARRAYS`_store{`arrayinst*#4`} =++ ai*{ai <- `ai*`}], f)] +[visit_exp store#563] +[visit_id store#563] +[visit_exp frame#563] +[visit_id frame#563] +[visit_exp (s[`ARRAYS`_store{`arrayinst*#4`} =++ ai*{ai <- `ai*`}], f)] +[visit_exp s[`ARRAYS`_store{`arrayinst*#4`} =++ ai*{ai <- `ai*`}]] +[visit_exp s] +[visit_id s] not free +[visit_exp `arrayinst*#4`] +[visit_id arrayinst*#4] +[visit_exp ai*{ai <- `ai*`}] +[scope_enter ai] +[visit_exp ai] +[visit_id ai] not free +[visit_id ai] not free +[scope_exit ai] +[visit_exp `ai*`] +[visit_id ai*] not free +[visit_id ai*] no dims +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $add_arrayinst{store#551 : store, frame#551 : frame, s : store, f : frame, `ai*` : arrayinst*, store#563 : store, frame#563 : frame, `arrayinst*#4` : arrayinst*}(`%;%`_state{store#551, frame#551}(s, f), ai*{ai <- `ai*`}) = `%;%`_state{store#563, frame#563}(s[`ARRAYS`_store{`arrayinst*#4`} =++ ai*{ai <- `ai*`}], f) +[check_dims] exn exninst*#3 f frame#575 frame#587 s store#575 store#587 +[visit_exp `%;%`_state{store#575, frame#575}(s, f)] +[visit_exp store#575] +[visit_id store#575] +[visit_exp frame#575] +[visit_id frame#575] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp exn*{exn <- `exn*`}] +[scope_enter exn] +[visit_exp exn] +[visit_id exn] not free +[visit_id exn] not free +[scope_exit exn] +[visit_exp `exn*`] +[visit_id exn*] no dims +[visit_id exn*] +[visit_exp `%;%`_state{store#587, frame#587}(s[`EXNS`_store{`exninst*#3`} =++ exn*{exn <- `exn*`}], f)] +[visit_exp store#587] +[visit_id store#587] +[visit_exp frame#587] +[visit_id frame#587] +[visit_exp (s[`EXNS`_store{`exninst*#3`} =++ exn*{exn <- `exn*`}], f)] +[visit_exp s[`EXNS`_store{`exninst*#3`} =++ exn*{exn <- `exn*`}]] +[visit_exp s] +[visit_id s] not free +[visit_exp `exninst*#3`] +[visit_id exninst*#3] +[visit_exp exn*{exn <- `exn*`}] +[scope_enter exn] +[visit_exp exn] +[visit_id exn] not free +[visit_id exn] not free +[scope_exit exn] +[visit_exp `exn*`] +[visit_id exn*] not free +[visit_id exn*] no dims +[visit_exp f] +[visit_id f] not free +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $add_exninst{store#575 : store, frame#575 : frame, s : store, f : frame, `exn*` : exninst*, store#587 : store, frame#587 : frame, `exninst*#3` : exninst*}(`%;%`_state{store#575, frame#575}(s, f), exn*{exn <- `exn*`}) = `%;%`_state{store#587, frame#587}(s[`EXNS`_store{`exninst*#3`} =++ exn*{exn <- `exn*`}], f) +[check_dims] nat ref tableinst +DecD growtable(tableinst : tableinst, nat : nat, ref : ref) : tableinst +[visit_id tableinst] not free +[visit_id nat] not free +[visit_id ref] not free +[check_dims] meminst nat +DecD growmem(meminst : meminst, nat : nat) : meminst +[visit_id meminst] not free +[visit_id nat] not free +[check_dims] addrtype#1027 addrtype#1039 at i i#31449 i#31467 i#31477 i' j limits#1027 limits#1039 n r r' ref*#3 ref*#4 reftype#3401 reftype#3413 rt tableinst tableinst' tabletype#875 tabletype#876 u64#361 u64#373 u64?#359 u64?#371 +[visit_exp tableinst] +[visit_id tableinst] +[visit_exp n] +[visit_id n] +[visit_exp r] +[visit_id r] +[visit_exp tableinst'] +[visit_id tableinst'] +[visit_exp (tableinst = {`TYPE`{tabletype#875} `%%%`_tabletype{addrtype#1027, limits#1027, reftype#3401}(at, `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#3`} r'*{r' <- `r'*`}})] +[visit_exp tableinst] +[visit_id tableinst] not free +[visit_exp {`TYPE`{tabletype#875} `%%%`_tabletype{addrtype#1027, limits#1027, reftype#3401}(at, `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#3`} r'*{r' <- `r'*`}}] +[visit_exp tabletype#875] +[visit_id tabletype#875] +[visit_exp `%%%`_tabletype{addrtype#1027, limits#1027, reftype#3401}(at, `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`}), rt)] +[visit_exp addrtype#1027] +[visit_id addrtype#1027] +[visit_exp limits#1027] +[visit_id limits#1027] +[visit_exp reftype#3401] +[visit_id reftype#3401] +[visit_exp (at, `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`}), rt)] +[visit_exp at] +[visit_id at] +[visit_exp `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`})] +[visit_exp u64#361] +[visit_id u64#361] +[visit_exp `u64?#359`] +[visit_id u64?#359] +[visit_exp (i, j?{j <- `j?`})] +[visit_exp i] +[visit_id i] +[visit_exp j?{j <- `j?`}] +[scope_enter j] +[visit_exp j] +[visit_id j] not free +[visit_id j] not free +[scope_exit j] +[visit_exp `j?`] +[visit_id j?] no dims +[visit_id j?] +[visit_exp rt] +[visit_id rt] +[visit_exp `ref*#3`] +[visit_id ref*#3] +[visit_exp r'*{r' <- `r'*`}] +[scope_enter r'] +[visit_exp r'] +[visit_id r'] not free +[visit_id r'] not free +[scope_exit r'] +[visit_exp `r'*`] +[visit_id r'*] no dims +[visit_id r'*] +[visit_exp (tableinst' = {`TYPE`{tabletype#876} `%%%`_tabletype{addrtype#1039, limits#1039, reftype#3413}(at, `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`}), rt), `REFS`{`ref*#4`} r'*{r' <- `r'*`} ++ r^n{}})] +[visit_exp tableinst'] +[visit_id tableinst'] not free +[visit_exp {`TYPE`{tabletype#876} `%%%`_tabletype{addrtype#1039, limits#1039, reftype#3413}(at, `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`}), rt), `REFS`{`ref*#4`} r'*{r' <- `r'*`} ++ r^n{}}] +[visit_exp tabletype#876] +[visit_id tabletype#876] +[visit_exp `%%%`_tabletype{addrtype#1039, limits#1039, reftype#3413}(at, `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`}), rt)] +[visit_exp addrtype#1039] +[visit_id addrtype#1039] +[visit_exp limits#1039] +[visit_id limits#1039] +[visit_exp reftype#3413] +[visit_id reftype#3413] +[visit_exp (at, `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`}), rt)] +[visit_exp at] +[visit_id at] not free +[visit_exp `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`})] +[visit_exp u64#373] +[visit_id u64#373] +[visit_exp `u64?#371`] +[visit_id u64?#371] +[visit_exp (i', j?{j <- `j?`})] +[visit_exp i'] +[visit_id i'] +[visit_exp j?{j <- `j?`}] +[scope_enter j] +[visit_exp j] +[visit_id j] not free +[visit_id j] not free +[scope_exit j] +[visit_exp `j?`] +[visit_id j?] not free +[visit_id j?] no dims +[visit_exp rt] +[visit_id rt] not free +[visit_exp `ref*#4`] +[visit_id ref*#4] +[visit_exp r'*{r' <- `r'*`} ++ r^n{}] +[visit_exp r'*{r' <- `r'*`}] +[scope_enter r'] +[visit_exp r'] +[visit_id r'] not free +[visit_id r'] not free +[scope_exit r'] +[visit_exp `r'*`] +[visit_id r'*] not free +[visit_id r'*] no dims +[visit_exp r^n{}] +[visit_exp r] +[visit_id r] not free +[visit_exp n] +[visit_id n] not free +[visit_exp (i'!`%`_u64{i#31449}.0 = (|r'*{r' <- `r'*`}| + n))] +[visit_exp i'!`%`_u64{i#31449}.0] +[visit_exp i'!`%`_u64{i#31449}] +[visit_exp i'] +[visit_id i'] not free +[visit_exp i#31449] +[visit_id i#31449] +[visit_exp (|r'*{r' <- `r'*`}| + n)] +[visit_exp |r'*{r' <- `r'*`}|] +[visit_exp r'*{r' <- `r'*`}] +[scope_enter r'] +[visit_exp r'] +[visit_id r'] not free +[visit_id r'] not free +[scope_exit r'] +[visit_exp `r'*`] +[visit_id r'*] not free +[visit_id r'*] no dims +[visit_exp n] +[visit_id n] not free +[scope_enter i#31467] +[scope_enter i#31477] +[scope_enter j] +[visit_exp (i'!`%`_u64{i#31467}.0 <= j!`%`_u64{i#31477}.0)] +[visit_exp i'!`%`_u64{i#31467}.0] +[visit_exp i'!`%`_u64{i#31467}] +[visit_exp i'] +[visit_id i'] not free +[visit_exp i#31467] +[visit_id i#31467] not free +[visit_exp j!`%`_u64{i#31477}.0] +[visit_exp j!`%`_u64{i#31477}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#31477] +[visit_id i#31477] not free +[visit_id i#31467] not free +[visit_id i#31477] not free +[visit_id j] not free +[scope_exit j] +[scope_exit i#31477] +[scope_exit i#31467] +[visit_exp `i#31467?`] +[visit_id i#31467?] no dims +[visit_id i#31467?] +[visit_exp `i#31477?`] +[visit_id i#31477?] no dims +[visit_id i#31477?] +[visit_exp `j?`] +[visit_id j?] not free +[visit_id j?] no dims +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $growtable{tableinst : tableinst, n : n, r : ref, tableinst' : tableinst, tabletype#875 : tabletype, addrtype#1027 : addrtype, limits#1027 : limits, reftype#3401 : reftype, at : addrtype, u64#361 : u64, `u64?#359` : u64?, i : u64, `j?` : u64?, rt : reftype, `ref*#3` : ref*, `r'*` : ref*, tabletype#876 : tabletype, addrtype#1039 : addrtype, limits#1039 : limits, reftype#3413 : reftype, u64#373 : u64, `u64?#371` : u64?, i' : u64, `ref*#4` : ref*, i#31449 : nat, `i#31467?` : nat?, `i#31477?` : nat?}(tableinst, n, r) = tableinst' + -- if (tableinst = {`TYPE`{tabletype#875} `%%%`_tabletype{addrtype#1027, limits#1027, reftype#3401}(at, `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#3`} r'*{r' <- `r'*`}}) + -- if (tableinst' = {`TYPE`{tabletype#876} `%%%`_tabletype{addrtype#1039, limits#1039, reftype#3413}(at, `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`}), rt), `REFS`{`ref*#4`} r'*{r' <- `r'*`} ++ r^n{}}) + -- if (i'!`%`_u64{i#31449}.0 = (|r'*{r' <- `r'*`}| + n)) + -- (if (i'!`%`_u64{i#31467}.0 <= j!`%`_u64{i#31477}.0))?{i#31467 <- `i#31467?`, i#31477 <- `i#31477?`, j <- `j?`} +[check_dims] addrtype#1051 addrtype#1063 at b byte*#1847 byte*#1848 i i#31599 i#31609 i#31627 i#31637 i' j limits#1051 limits#1063 meminst meminst' memtype#525 memtype#526 n u64#385 u64#397 u64?#383 u64?#395 +[visit_exp meminst] +[visit_id meminst] +[visit_exp n] +[visit_id n] +[visit_exp meminst'] +[visit_id meminst'] +[visit_exp (meminst = {`TYPE`{memtype#525} `%%PAGE`_memtype{addrtype#1051, limits#1051}(at, `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1847`} b*{b <- `b*`}})] +[visit_exp meminst] +[visit_id meminst] not free +[visit_exp {`TYPE`{memtype#525} `%%PAGE`_memtype{addrtype#1051, limits#1051}(at, `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1847`} b*{b <- `b*`}}] +[visit_exp memtype#525] +[visit_id memtype#525] +[visit_exp `%%PAGE`_memtype{addrtype#1051, limits#1051}(at, `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`}))] +[visit_exp addrtype#1051] +[visit_id addrtype#1051] +[visit_exp limits#1051] +[visit_id limits#1051] +[visit_exp (at, `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`}))] +[visit_exp at] +[visit_id at] +[visit_exp `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`})] +[visit_exp u64#385] +[visit_id u64#385] +[visit_exp `u64?#383`] +[visit_id u64?#383] +[visit_exp (i, j?{j <- `j?`})] +[visit_exp i] +[visit_id i] +[visit_exp j?{j <- `j?`}] +[scope_enter j] +[visit_exp j] +[visit_id j] not free +[visit_id j] not free +[scope_exit j] +[visit_exp `j?`] +[visit_id j?] no dims +[visit_id j?] +[visit_exp `byte*#1847`] +[visit_id byte*#1847] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp (meminst' = {`TYPE`{memtype#526} `%%PAGE`_memtype{addrtype#1063, limits#1063}(at, `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`})), `BYTES`{`byte*#1848`} b*{b <- `b*`} ++ `%`_byte{i#31599}(0)^(n * (64 * $Ki)){i#31599 <- `i#31599*`}})] +[visit_exp meminst'] +[visit_id meminst'] not free +[visit_exp {`TYPE`{memtype#526} `%%PAGE`_memtype{addrtype#1063, limits#1063}(at, `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`})), `BYTES`{`byte*#1848`} b*{b <- `b*`} ++ `%`_byte{i#31599}(0)^(n * (64 * $Ki)){i#31599 <- `i#31599*`}}] +[visit_exp memtype#526] +[visit_id memtype#526] +[visit_exp `%%PAGE`_memtype{addrtype#1063, limits#1063}(at, `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`}))] +[visit_exp addrtype#1063] +[visit_id addrtype#1063] +[visit_exp limits#1063] +[visit_id limits#1063] +[visit_exp (at, `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`}))] +[visit_exp at] +[visit_id at] not free +[visit_exp `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`})] +[visit_exp u64#397] +[visit_id u64#397] +[visit_exp `u64?#395`] +[visit_id u64?#395] +[visit_exp (i', j?{j <- `j?`})] +[visit_exp i'] +[visit_id i'] +[visit_exp j?{j <- `j?`}] +[scope_enter j] +[visit_exp j] +[visit_id j] not free +[visit_id j] not free +[scope_exit j] +[visit_exp `j?`] +[visit_id j?] not free +[visit_id j?] no dims +[visit_exp `byte*#1848`] +[visit_id byte*#1848] +[visit_exp b*{b <- `b*`} ++ `%`_byte{i#31599}(0)^(n * (64 * $Ki)){i#31599 <- `i#31599*`}] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_exp `%`_byte{i#31599}(0)^(n * (64 * $Ki)){i#31599 <- `i#31599*`}] +[scope_enter i#31599] +[visit_exp `%`_byte{i#31599}(0)] +[visit_exp i#31599] +[visit_id i#31599] not free +[visit_exp (0)] +[visit_exp 0] +[visit_id i#31599] not free +[scope_exit i#31599] +[visit_exp (n * (64 * $Ki))] +[visit_exp n] +[visit_id n] not free +[visit_exp (64 * $Ki)] +[visit_exp 64] +[visit_exp $Ki] +[visit_exp `i#31599*`] +[visit_id i#31599*] no dims +[visit_id i#31599*] +[visit_exp ((i'!`%`_u64{i#31609}.0 : nat <:> rat) = (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat)))] +[visit_exp (i'!`%`_u64{i#31609}.0 : nat <:> rat)] +[visit_exp i'!`%`_u64{i#31609}.0] +[visit_exp i'!`%`_u64{i#31609}] +[visit_exp i'] +[visit_id i'] not free +[visit_exp i#31609] +[visit_id i#31609] +[visit_exp (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat))] +[visit_exp ((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat))] +[visit_exp (|b*{b <- `b*`}| : nat <:> rat)] +[visit_exp |b*{b <- `b*`}|] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_exp ((64 * $Ki) : nat <:> rat)] +[visit_exp (64 * $Ki)] +[visit_exp 64] +[visit_exp $Ki] +[visit_exp (n : nat <:> rat)] +[visit_exp n] +[visit_id n] not free +[scope_enter i#31627] +[scope_enter i#31637] +[scope_enter j] +[visit_exp (i'!`%`_u64{i#31627}.0 <= j!`%`_u64{i#31637}.0)] +[visit_exp i'!`%`_u64{i#31627}.0] +[visit_exp i'!`%`_u64{i#31627}] +[visit_exp i'] +[visit_id i'] not free +[visit_exp i#31627] +[visit_id i#31627] not free +[visit_exp j!`%`_u64{i#31637}.0] +[visit_exp j!`%`_u64{i#31637}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#31637] +[visit_id i#31637] not free +[visit_id i#31627] not free +[visit_id i#31637] not free +[visit_id j] not free +[scope_exit j] +[scope_exit i#31637] +[scope_exit i#31627] +[visit_exp `i#31627?`] +[visit_id i#31627?] no dims +[visit_id i#31627?] +[visit_exp `i#31637?`] +[visit_id i#31637?] no dims +[visit_id i#31637?] +[visit_exp `j?`] +[visit_id j?] not free +[visit_id j?] no dims +=> + ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec + def $growmem{meminst : meminst, n : n, meminst' : meminst, memtype#525 : memtype, addrtype#1051 : addrtype, limits#1051 : limits, at : addrtype, u64#385 : u64, `u64?#383` : u64?, i : u64, `j?` : u64?, `byte*#1847` : byte*, `b*` : byte*, memtype#526 : memtype, addrtype#1063 : addrtype, limits#1063 : limits, u64#397 : u64, `u64?#395` : u64?, i' : u64, `byte*#1848` : byte*, `i#31599*` : nat*, i#31609 : nat, `i#31627?` : nat?, `i#31637?` : nat?}(meminst, n) = meminst' + -- if (meminst = {`TYPE`{memtype#525} `%%PAGE`_memtype{addrtype#1051, limits#1051}(at, `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1847`} b*{b <- `b*`}}) + -- if (meminst' = {`TYPE`{memtype#526} `%%PAGE`_memtype{addrtype#1063, limits#1063}(at, `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`})), `BYTES`{`byte*#1848`} b*{b <- `b*`} ++ `%`_byte{i#31599}(0)^(n * (64 * $Ki)){i#31599 <- `i#31599*`}}) + -- if ((i'!`%`_u64{i#31609}.0 : nat <:> rat) = (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat))) + -- (if (i'!`%`_u64{i#31627}.0 <= j!`%`_u64{i#31637}.0))?{i#31627 <- `i#31627?`, i#31637 <- `i#31637?`, j <- `j?`} +[check_dims] valtype +DecD default_(valtype : valtype) : val? +[visit_id valtype] not free +[check_dims] Inn i#31659 numtype#37 +[visit_exp (Inn : Inn <: valtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp ?(`CONST`_val{numtype#37}((Inn : Inn <: numtype), `%`_num_{i#31659}(0)))] +[visit_exp `CONST`_val{numtype#37}((Inn : Inn <: numtype), `%`_num_{i#31659}(0))] +[visit_exp numtype#37] +[visit_id numtype#37] +[visit_exp ((Inn : Inn <: numtype), `%`_num_{i#31659}(0))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp `%`_num_{i#31659}(0)] +[visit_exp i#31659] +[visit_id i#31659] +[visit_exp (0)] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec + def $default_{Inn : Inn, numtype#37 : numtype, i#31659 : nat}((Inn : Inn <: valtype)) = ?(`CONST`_val{numtype#37}((Inn : Inn <: numtype), `%`_num_{i#31659}(0))) +[check_dims] Fnn numtype#39 +[visit_exp (Fnn : Fnn <: valtype)] +[visit_exp Fnn] +[visit_id Fnn] +[visit_exp ?(`CONST`_val{numtype#39}((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype)))))] +[visit_exp `CONST`_val{numtype#39}((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))] +[visit_exp numtype#39] +[visit_id numtype#39] +[visit_exp ((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +[visit_exp $fzero($size((Fnn : Fnn <: numtype)))] +[visit_exp $size((Fnn : Fnn <: numtype))] +[visit_exp (Fnn : Fnn <: numtype)] +[visit_exp Fnn] +[visit_id Fnn] not free +=> + ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec + def $default_{Fnn : Fnn, numtype#39 : numtype}((Fnn : Fnn <: valtype)) = ?(`CONST`_val{numtype#39}((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))) +[check_dims] Vnn i#31681 vectype#42 +[visit_exp (Vnn : Vnn <: valtype)] +[visit_exp Vnn] +[visit_id Vnn] +[visit_exp ?(`VCONST`_val{vectype#42}(Vnn, `%`_vec_{i#31681}(0)))] +[visit_exp `VCONST`_val{vectype#42}(Vnn, `%`_vec_{i#31681}(0))] +[visit_exp vectype#42] +[visit_id vectype#42] +[visit_exp (Vnn, `%`_vec_{i#31681}(0))] +[visit_exp Vnn] +[visit_id Vnn] not free +[visit_exp `%`_vec_{i#31681}(0)] +[visit_exp i#31681] +[visit_id i#31681] +[visit_exp (0)] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec + def $default_{Vnn : Vnn, vectype#42 : vectype, i#31681 : nat}((Vnn : Vnn <: valtype)) = ?(`VCONST`_val{vectype#42}(Vnn, `%`_vec_{i#31681}(0))) +[check_dims] heaptype#1043 heaptype#1045 ht null?#1037 +[visit_exp `REF`_valtype{`null?#1037`, heaptype#1043}(?(`NULL`_null), ht)] +[visit_exp `null?#1037`] +[visit_id null?#1037] +[visit_exp heaptype#1043] +[visit_id heaptype#1043] +[visit_exp (?(`NULL`_null), ht)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht] +[visit_id ht] +[visit_exp ?(`REF.NULL`_val{heaptype#1045}(ht))] +[visit_exp `REF.NULL`_val{heaptype#1045}(ht)] +[visit_exp heaptype#1045] +[visit_id heaptype#1045] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] not free +=> + ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec + def $default_{`null?#1037` : null?, heaptype#1043 : heaptype, ht : heaptype, heaptype#1045 : heaptype}(`REF`_valtype{`null?#1037`, heaptype#1043}(?(`NULL`_null), ht)) = ?(`REF.NULL`_val{heaptype#1045}(ht)) +[check_dims] heaptype#1047 ht null?#1039 +[visit_exp `REF`_valtype{`null?#1039`, heaptype#1047}(?(), ht)] +[visit_exp `null?#1039`] +[visit_id null?#1039] +[visit_exp heaptype#1047] +[visit_id heaptype#1047] +[visit_exp (?(), ht)] +[visit_exp ?()] +[visit_exp ht] +[visit_id ht] +[visit_exp ?()] +=> + ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec + def $default_{`null?#1039` : null?, heaptype#1047 : heaptype, ht : heaptype}(`REF`_valtype{`null?#1039`, heaptype#1047}(?(), ht)) = ?() +[check_dims] t +[visit_exp t] +[visit_id t] +[visit_exp ($default_(t) =/= ?())] +[visit_exp $default_(t)] +[visit_exp t] +[visit_id t] not free +[visit_exp ?()] +[check_dims] t +[visit_exp t] +[visit_id t] +[visit_exp ($default_(t) = ?())] +[visit_exp $default_(t)] +[visit_exp t] +[visit_id t] not free +[visit_exp ?()] +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] c nt numtype#51 s +[visit_exp s] +[visit_id s] +[visit_exp `CONST`_num{numtype#51}(nt, c)] +[visit_exp numtype#51] +[visit_id numtype#51] +[visit_exp (nt, c)] +[visit_exp nt] +[visit_id nt] +[visit_exp c] +[visit_id c] +[visit_exp nt] +[visit_id nt] not free +[check_dims] c s vectype#54 vt +[visit_exp s] +[visit_id s] +[visit_exp `VCONST`_vec{vectype#54}(vt, c)] +[visit_exp vectype#54] +[visit_id vectype#54] +[visit_exp (vt, c)] +[visit_exp vt] +[visit_id vt] +[visit_exp c] +[visit_id c] +[visit_exp vt] +[visit_id vt] not free +[check_dims] datatype*#19 deftype*#75 deftype*#76 elemtype*#19 funcidx*#56 globaltype*#20 heaptype#1049 heaptype#1061 ht ht' localtype*#22 memtype*#34 null?#1051 resulttype*#30 resulttype?#27 s subtype*#18 tabletype*#27 tagtype*#19 +[visit_exp s] +[visit_id s] +[visit_exp `REF.NULL`_ref{heaptype#1049}(ht)] +[visit_exp heaptype#1049] +[visit_id heaptype#1049] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `REF`_reftype{`null?#1051`, heaptype#1061}(?(`NULL`_null), ht')] +[visit_exp `null?#1051`] +[visit_id null?#1051] +[visit_exp heaptype#1061] +[visit_id heaptype#1061] +[visit_exp (?(`NULL`_null), ht')] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht'] +[visit_id ht'] +[visit_exp ({`TYPES`{`deftype*#75`} [], `RECS`{`subtype*#18`} [], `TAGS`{`tagtype*#19`} [], `GLOBALS`{`globaltype*#20`} [], `MEMS`{`memtype*#34`} [], `TABLES`{`tabletype*#27`} [], `FUNCS`{`deftype*#76`} [], `DATAS`{`datatype*#19`} [], `ELEMS`{`elemtype*#19`} [], `LOCALS`{`localtype*#22`} [], `LABELS`{`resulttype*#30`} [], `RETURN`{`resulttype?#27`} ?(), `REFS`{`funcidx*#56`} []}, ht', ht)] +[visit_exp {`TYPES`{`deftype*#75`} [], `RECS`{`subtype*#18`} [], `TAGS`{`tagtype*#19`} [], `GLOBALS`{`globaltype*#20`} [], `MEMS`{`memtype*#34`} [], `TABLES`{`tabletype*#27`} [], `FUNCS`{`deftype*#76`} [], `DATAS`{`datatype*#19`} [], `ELEMS`{`elemtype*#19`} [], `LOCALS`{`localtype*#22`} [], `LABELS`{`resulttype*#30`} [], `RETURN`{`resulttype?#27`} ?(), `REFS`{`funcidx*#56`} []}] +[visit_exp `deftype*#75`] +[visit_id deftype*#75] +[visit_exp []] +[visit_exp `subtype*#18`] +[visit_id subtype*#18] +[visit_exp []] +[visit_exp `tagtype*#19`] +[visit_id tagtype*#19] +[visit_exp []] +[visit_exp `globaltype*#20`] +[visit_id globaltype*#20] +[visit_exp []] +[visit_exp `memtype*#34`] +[visit_id memtype*#34] +[visit_exp []] +[visit_exp `tabletype*#27`] +[visit_id tabletype*#27] +[visit_exp []] +[visit_exp `deftype*#76`] +[visit_id deftype*#76] +[visit_exp []] +[visit_exp `datatype*#19`] +[visit_id datatype*#19] +[visit_exp []] +[visit_exp `elemtype*#19`] +[visit_id elemtype*#19] +[visit_exp []] +[visit_exp `localtype*#22`] +[visit_id localtype*#22] +[visit_exp []] +[visit_exp `resulttype*#30`] +[visit_id resulttype*#30] +[visit_exp []] +[visit_exp `resulttype?#27`] +[visit_id resulttype?#27] +[visit_exp ?()] +[visit_exp `funcidx*#56`] +[visit_id funcidx*#56] +[visit_exp []] +[visit_exp ht'] +[visit_id ht'] not free +[visit_exp ht] +[visit_id ht] not free +[check_dims] heaptype#1073 i null?#1063 s u31#1 +[visit_exp s] +[visit_id s] +[visit_exp `REF.I31_NUM`_ref{u31#1}(i)] +[visit_exp u31#1] +[visit_id u31#1] +[visit_exp (i)] +[visit_exp i] +[visit_id i] +[visit_exp `REF`_reftype{`null?#1063`, heaptype#1073}(?(), `I31`_heaptype)] +[visit_exp `null?#1063`] +[visit_id null?#1063] +[visit_exp heaptype#1073] +[visit_id heaptype#1073] +[visit_exp (?(), `I31`_heaptype)] +[visit_exp ?()] +[visit_exp `I31`_heaptype] +[visit_exp ()] +[check_dims] a deftype#1 dt heaptype#1085 null?#1075 s structaddr#1 structinst*#5 +[visit_exp s] +[visit_id s] +[visit_exp `REF.STRUCT_ADDR`_ref{structaddr#1}(a)] +[visit_exp structaddr#1] +[visit_id structaddr#1] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `REF`_reftype{`null?#1075`, heaptype#1085}(?(), (dt : deftype <: heaptype))] +[visit_exp `null?#1075`] +[visit_id null?#1075] +[visit_exp heaptype#1085] +[visit_id heaptype#1085] +[visit_exp (?(), (dt : deftype <: heaptype))] +[visit_exp ?()] +[visit_exp (dt : deftype <: heaptype)] +[visit_exp dt] +[visit_id dt] +[visit_exp (s.`STRUCTS`_store{`structinst*#5`}[a].`TYPE`_structinst{deftype#1} = dt)] +[visit_exp s.`STRUCTS`_store{`structinst*#5`}[a].`TYPE`_structinst{deftype#1}] +[visit_exp s.`STRUCTS`_store{`structinst*#5`}[a]] +[visit_exp s.`STRUCTS`_store{`structinst*#5`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `structinst*#5`] +[visit_id structinst*#5] +[visit_exp a] +[visit_id a] not free +[visit_exp deftype#1] +[visit_id deftype#1] +[visit_exp dt] +[visit_id dt] not free +[check_dims] a arrayaddr#1 arrayinst*#5 deftype#2 dt heaptype#1097 null?#1087 s +[visit_exp s] +[visit_id s] +[visit_exp `REF.ARRAY_ADDR`_ref{arrayaddr#1}(a)] +[visit_exp arrayaddr#1] +[visit_id arrayaddr#1] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `REF`_reftype{`null?#1087`, heaptype#1097}(?(), (dt : deftype <: heaptype))] +[visit_exp `null?#1087`] +[visit_id null?#1087] +[visit_exp heaptype#1097] +[visit_id heaptype#1097] +[visit_exp (?(), (dt : deftype <: heaptype))] +[visit_exp ?()] +[visit_exp (dt : deftype <: heaptype)] +[visit_exp dt] +[visit_id dt] +[visit_exp (s.`ARRAYS`_store{`arrayinst*#5`}[a].`TYPE`_arrayinst{deftype#2} = dt)] +[visit_exp s.`ARRAYS`_store{`arrayinst*#5`}[a].`TYPE`_arrayinst{deftype#2}] +[visit_exp s.`ARRAYS`_store{`arrayinst*#5`}[a]] +[visit_exp s.`ARRAYS`_store{`arrayinst*#5`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `arrayinst*#5`] +[visit_id arrayinst*#5] +[visit_exp a] +[visit_id a] not free +[visit_exp deftype#2] +[visit_id deftype#2] +[visit_exp dt] +[visit_id dt] not free +[check_dims] a deftype#3 dt funcaddr#3 funcinst*#4 heaptype#1109 null?#1099 s +[visit_exp s] +[visit_id s] +[visit_exp `REF.FUNC_ADDR`_ref{funcaddr#3}(a)] +[visit_exp funcaddr#3] +[visit_id funcaddr#3] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `REF`_reftype{`null?#1099`, heaptype#1109}(?(), (dt : deftype <: heaptype))] +[visit_exp `null?#1099`] +[visit_id null?#1099] +[visit_exp heaptype#1109] +[visit_id heaptype#1109] +[visit_exp (?(), (dt : deftype <: heaptype))] +[visit_exp ?()] +[visit_exp (dt : deftype <: heaptype)] +[visit_exp dt] +[visit_id dt] +[visit_exp (s.`FUNCS`_store{`funcinst*#4`}[a].`TYPE`_funcinst{deftype#3} = dt)] +[visit_exp s.`FUNCS`_store{`funcinst*#4`}[a].`TYPE`_funcinst{deftype#3}] +[visit_exp s.`FUNCS`_store{`funcinst*#4`}[a]] +[visit_exp s.`FUNCS`_store{`funcinst*#4`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `funcinst*#4`] +[visit_id funcinst*#4] +[visit_exp a] +[visit_id a] not free +[visit_exp deftype#3] +[visit_id deftype#3] +[visit_exp dt] +[visit_id dt] not free +[check_dims] a exn exnaddr#1 exninst*#4 heaptype#1121 null?#1111 s +[visit_exp s] +[visit_id s] +[visit_exp `REF.EXN_ADDR`_ref{exnaddr#1}(a)] +[visit_exp exnaddr#1] +[visit_id exnaddr#1] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `REF`_reftype{`null?#1111`, heaptype#1121}(?(), `EXN`_heaptype)] +[visit_exp `null?#1111`] +[visit_id null?#1111] +[visit_exp heaptype#1121] +[visit_id heaptype#1121] +[visit_exp (?(), `EXN`_heaptype)] +[visit_exp ?()] +[visit_exp `EXN`_heaptype] +[visit_exp ()] +[visit_exp (s.`EXNS`_store{`exninst*#4`}[a] = exn)] +[visit_exp s.`EXNS`_store{`exninst*#4`}[a]] +[visit_exp s.`EXNS`_store{`exninst*#4`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `exninst*#4`] +[visit_id exninst*#4] +[visit_exp a] +[visit_id a] not free +[visit_exp exn] +[visit_id exn] +[check_dims] a heaptype#1133 hostaddr#1 null?#1123 s +[visit_exp s] +[visit_id s] +[visit_exp `REF.HOST_ADDR`_ref{hostaddr#1}(a)] +[visit_exp hostaddr#1] +[visit_id hostaddr#1] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `REF`_reftype{`null?#1123`, heaptype#1133}(?(), `ANY`_heaptype)] +[visit_exp `null?#1123`] +[visit_id null?#1123] +[visit_exp heaptype#1133] +[visit_id heaptype#1133] +[visit_exp (?(), `ANY`_heaptype)] +[visit_exp ?()] +[visit_exp `ANY`_heaptype] +[visit_exp ()] +[check_dims] addrref addrref#1 heaptype#1145 heaptype#1157 null?#1135 null?#1147 s +[visit_exp s] +[visit_id s] +[visit_exp `REF.EXTERN`_ref{addrref#1}(addrref)] +[visit_exp addrref#1] +[visit_id addrref#1] +[visit_exp (addrref)] +[visit_exp addrref] +[visit_id addrref] +[visit_exp `REF`_reftype{`null?#1135`, heaptype#1145}(?(), `EXTERN`_heaptype)] +[visit_exp `null?#1135`] +[visit_id null?#1135] +[visit_exp heaptype#1145] +[visit_id heaptype#1145] +[visit_exp (?(), `EXTERN`_heaptype)] +[visit_exp ?()] +[visit_exp `EXTERN`_heaptype] +[visit_exp ()] +[visit_exp (s, (addrref : addrref <: ref), `REF`_reftype{`null?#1147`, heaptype#1157}(?(), `ANY`_heaptype))] +[visit_exp s] +[visit_id s] not free +[visit_exp (addrref : addrref <: ref)] +[visit_exp addrref] +[visit_id addrref] not free +[visit_exp `REF`_reftype{`null?#1147`, heaptype#1157}(?(), `ANY`_heaptype)] +[visit_exp `null?#1147`] +[visit_id null?#1147] +[visit_exp heaptype#1157] +[visit_id heaptype#1157] +[visit_exp (?(), `ANY`_heaptype)] +[visit_exp ?()] +[visit_exp `ANY`_heaptype] +[visit_exp ()] +[check_dims] datatype*#20 deftype*#77 deftype*#78 elemtype*#20 funcidx*#57 globaltype*#21 localtype*#23 memtype*#35 ref resulttype*#31 resulttype?#28 rt rt' s subtype*#19 tabletype*#28 tagtype*#20 +[visit_exp s] +[visit_id s] +[visit_exp ref] +[visit_id ref] +[visit_exp rt] +[visit_id rt] +[visit_exp (s, ref, rt')] +[visit_exp s] +[visit_id s] not free +[visit_exp ref] +[visit_id ref] not free +[visit_exp rt'] +[visit_id rt'] +[visit_exp ({`TYPES`{`deftype*#77`} [], `RECS`{`subtype*#19`} [], `TAGS`{`tagtype*#20`} [], `GLOBALS`{`globaltype*#21`} [], `MEMS`{`memtype*#35`} [], `TABLES`{`tabletype*#28`} [], `FUNCS`{`deftype*#78`} [], `DATAS`{`datatype*#20`} [], `ELEMS`{`elemtype*#20`} [], `LOCALS`{`localtype*#23`} [], `LABELS`{`resulttype*#31`} [], `RETURN`{`resulttype?#28`} ?(), `REFS`{`funcidx*#57`} []}, rt', rt)] +[visit_exp {`TYPES`{`deftype*#77`} [], `RECS`{`subtype*#19`} [], `TAGS`{`tagtype*#20`} [], `GLOBALS`{`globaltype*#21`} [], `MEMS`{`memtype*#35`} [], `TABLES`{`tabletype*#28`} [], `FUNCS`{`deftype*#78`} [], `DATAS`{`datatype*#20`} [], `ELEMS`{`elemtype*#20`} [], `LOCALS`{`localtype*#23`} [], `LABELS`{`resulttype*#31`} [], `RETURN`{`resulttype?#28`} ?(), `REFS`{`funcidx*#57`} []}] +[visit_exp `deftype*#77`] +[visit_id deftype*#77] +[visit_exp []] +[visit_exp `subtype*#19`] +[visit_id subtype*#19] +[visit_exp []] +[visit_exp `tagtype*#20`] +[visit_id tagtype*#20] +[visit_exp []] +[visit_exp `globaltype*#21`] +[visit_id globaltype*#21] +[visit_exp []] +[visit_exp `memtype*#35`] +[visit_id memtype*#35] +[visit_exp []] +[visit_exp `tabletype*#28`] +[visit_id tabletype*#28] +[visit_exp []] +[visit_exp `deftype*#78`] +[visit_id deftype*#78] +[visit_exp []] +[visit_exp `datatype*#20`] +[visit_id datatype*#20] +[visit_exp []] +[visit_exp `elemtype*#20`] +[visit_id elemtype*#20] +[visit_exp []] +[visit_exp `localtype*#23`] +[visit_id localtype*#23] +[visit_exp []] +[visit_exp `resulttype*#31`] +[visit_id resulttype*#31] +[visit_exp []] +[visit_exp `resulttype?#28`] +[visit_id resulttype?#28] +[visit_exp ?()] +[visit_exp `funcidx*#57`] +[visit_id funcidx*#57] +[visit_exp []] +[visit_exp rt'] +[visit_id rt'] not free +[visit_exp rt] +[visit_id rt] not free +[check_dims] nt num s +[visit_exp s] +[visit_id s] +[visit_exp (num : num <: val)] +[visit_exp num] +[visit_id num] +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] +[visit_exp (s, num, nt)] +[visit_exp s] +[visit_id s] not free +[visit_exp num] +[visit_id num] not free +[visit_exp nt] +[visit_id nt] not free +[check_dims] s vec vt +[visit_exp s] +[visit_id s] +[visit_exp (vec : vec <: val)] +[visit_exp vec] +[visit_id vec] +[visit_exp (vt : vectype <: valtype)] +[visit_exp vt] +[visit_id vt] +[visit_exp (s, vec, vt)] +[visit_exp s] +[visit_id s] not free +[visit_exp vec] +[visit_id vec] not free +[visit_exp vt] +[visit_id vt] not free +[check_dims] ref rt s +[visit_exp s] +[visit_id s] +[visit_exp (ref : ref <: val)] +[visit_exp ref] +[visit_id ref] +[visit_exp (rt : reftype <: valtype)] +[visit_exp rt] +[visit_id rt] +[visit_exp (s, ref, rt)] +[visit_exp s] +[visit_id s] not free +[visit_exp ref] +[visit_id ref] not free +[visit_exp rt] +[visit_id rt] not free +[check_dims] +[check_dims] a s tagaddr#3 taginst taginst*#4 tagtype#177 tagtype#179 +[visit_exp s] +[visit_id s] +[visit_exp `TAG`_externaddr{tagaddr#3}(a)] +[visit_exp tagaddr#3] +[visit_id tagaddr#3] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `TAG`_externtype{tagtype#177}(taginst.`TYPE`_taginst{tagtype#179})] +[visit_exp tagtype#177] +[visit_id tagtype#177] +[visit_exp (taginst.`TYPE`_taginst{tagtype#179})] +[visit_exp taginst.`TYPE`_taginst{tagtype#179}] +[visit_exp taginst] +[visit_id taginst] +[visit_exp tagtype#179] +[visit_id tagtype#179] +[visit_exp (s.`TAGS`_store{`taginst*#4`}[a] = taginst)] +[visit_exp s.`TAGS`_store{`taginst*#4`}[a]] +[visit_exp s.`TAGS`_store{`taginst*#4`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `taginst*#4`] +[visit_id taginst*#4] +[visit_exp a] +[visit_id a] not free +[visit_exp taginst] +[visit_id taginst] not free +[check_dims] a globaladdr#3 globalinst globalinst*#5 globaltype#2085 globaltype#2087 s +[visit_exp s] +[visit_id s] +[visit_exp `GLOBAL`_externaddr{globaladdr#3}(a)] +[visit_exp globaladdr#3] +[visit_id globaladdr#3] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `GLOBAL`_externtype{globaltype#2085}(globalinst.`TYPE`_globalinst{globaltype#2087})] +[visit_exp globaltype#2085] +[visit_id globaltype#2085] +[visit_exp (globalinst.`TYPE`_globalinst{globaltype#2087})] +[visit_exp globalinst.`TYPE`_globalinst{globaltype#2087}] +[visit_exp globalinst] +[visit_id globalinst] +[visit_exp globaltype#2087] +[visit_id globaltype#2087] +[visit_exp (s.`GLOBALS`_store{`globalinst*#5`}[a] = globalinst)] +[visit_exp s.`GLOBALS`_store{`globalinst*#5`}[a]] +[visit_exp s.`GLOBALS`_store{`globalinst*#5`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `globalinst*#5`] +[visit_id globalinst*#5] +[visit_exp a] +[visit_id a] not free +[visit_exp globalinst] +[visit_id globalinst] not free +[check_dims] a memaddr#3 meminst meminst*#6 memtype#527 memtype#529 s +[visit_exp s] +[visit_id s] +[visit_exp `MEM`_externaddr{memaddr#3}(a)] +[visit_exp memaddr#3] +[visit_id memaddr#3] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `MEM`_externtype{memtype#527}(meminst.`TYPE`_meminst{memtype#529})] +[visit_exp memtype#527] +[visit_id memtype#527] +[visit_exp (meminst.`TYPE`_meminst{memtype#529})] +[visit_exp meminst.`TYPE`_meminst{memtype#529}] +[visit_exp meminst] +[visit_id meminst] +[visit_exp memtype#529] +[visit_id memtype#529] +[visit_exp (s.`MEMS`_store{`meminst*#6`}[a] = meminst)] +[visit_exp s.`MEMS`_store{`meminst*#6`}[a]] +[visit_exp s.`MEMS`_store{`meminst*#6`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `meminst*#6`] +[visit_id meminst*#6] +[visit_exp a] +[visit_id a] not free +[visit_exp meminst] +[visit_id meminst] not free +[check_dims] a s tableaddr#3 tableinst tableinst*#6 tabletype#877 tabletype#879 +[visit_exp s] +[visit_id s] +[visit_exp `TABLE`_externaddr{tableaddr#3}(a)] +[visit_exp tableaddr#3] +[visit_id tableaddr#3] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `TABLE`_externtype{tabletype#877}(tableinst.`TYPE`_tableinst{tabletype#879})] +[visit_exp tabletype#877] +[visit_id tabletype#877] +[visit_exp (tableinst.`TYPE`_tableinst{tabletype#879})] +[visit_exp tableinst.`TYPE`_tableinst{tabletype#879}] +[visit_exp tableinst] +[visit_id tableinst] +[visit_exp tabletype#879] +[visit_id tabletype#879] +[visit_exp (s.`TABLES`_store{`tableinst*#6`}[a] = tableinst)] +[visit_exp s.`TABLES`_store{`tableinst*#6`}[a]] +[visit_exp s.`TABLES`_store{`tableinst*#6`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `tableinst*#6`] +[visit_id tableinst*#6] +[visit_exp a] +[visit_id a] not free +[visit_exp tableinst] +[visit_id tableinst] not free +[check_dims] a deftype#4 funcaddr#5 funcinst funcinst*#5 s typeuse#33 +[visit_exp s] +[visit_id s] +[visit_exp `FUNC`_externaddr{funcaddr#5}(a)] +[visit_exp funcaddr#5] +[visit_id funcaddr#5] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `FUNC`_externtype{typeuse#33}((funcinst.`TYPE`_funcinst{deftype#4} : deftype <: typeuse))] +[visit_exp typeuse#33] +[visit_id typeuse#33] +[visit_exp ((funcinst.`TYPE`_funcinst{deftype#4} : deftype <: typeuse))] +[visit_exp (funcinst.`TYPE`_funcinst{deftype#4} : deftype <: typeuse)] +[visit_exp funcinst.`TYPE`_funcinst{deftype#4}] +[visit_exp funcinst] +[visit_id funcinst] +[visit_exp deftype#4] +[visit_id deftype#4] +[visit_exp (s.`FUNCS`_store{`funcinst*#5`}[a] = funcinst)] +[visit_exp s.`FUNCS`_store{`funcinst*#5`}[a]] +[visit_exp s.`FUNCS`_store{`funcinst*#5`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `funcinst*#5`] +[visit_id funcinst*#5] +[visit_exp a] +[visit_id a] not free +[visit_exp funcinst] +[visit_id funcinst] not free +[check_dims] datatype*#21 deftype*#79 deftype*#80 elemtype*#21 externaddr funcidx*#58 globaltype*#22 localtype*#24 memtype*#36 resulttype*#32 resulttype?#29 s subtype*#20 tabletype*#29 tagtype*#21 xt xt' +[visit_exp s] +[visit_id s] +[visit_exp externaddr] +[visit_id externaddr] +[visit_exp xt] +[visit_id xt] +[visit_exp (s, externaddr, xt')] +[visit_exp s] +[visit_id s] not free +[visit_exp externaddr] +[visit_id externaddr] not free +[visit_exp xt'] +[visit_id xt'] +[visit_exp ({`TYPES`{`deftype*#79`} [], `RECS`{`subtype*#20`} [], `TAGS`{`tagtype*#21`} [], `GLOBALS`{`globaltype*#22`} [], `MEMS`{`memtype*#36`} [], `TABLES`{`tabletype*#29`} [], `FUNCS`{`deftype*#80`} [], `DATAS`{`datatype*#21`} [], `ELEMS`{`elemtype*#21`} [], `LOCALS`{`localtype*#24`} [], `LABELS`{`resulttype*#32`} [], `RETURN`{`resulttype?#29`} ?(), `REFS`{`funcidx*#58`} []}, xt', xt)] +[visit_exp {`TYPES`{`deftype*#79`} [], `RECS`{`subtype*#20`} [], `TAGS`{`tagtype*#21`} [], `GLOBALS`{`globaltype*#22`} [], `MEMS`{`memtype*#36`} [], `TABLES`{`tabletype*#29`} [], `FUNCS`{`deftype*#80`} [], `DATAS`{`datatype*#21`} [], `ELEMS`{`elemtype*#21`} [], `LOCALS`{`localtype*#24`} [], `LABELS`{`resulttype*#32`} [], `RETURN`{`resulttype?#29`} ?(), `REFS`{`funcidx*#58`} []}] +[visit_exp `deftype*#79`] +[visit_id deftype*#79] +[visit_exp []] +[visit_exp `subtype*#20`] +[visit_id subtype*#20] +[visit_exp []] +[visit_exp `tagtype*#21`] +[visit_id tagtype*#21] +[visit_exp []] +[visit_exp `globaltype*#22`] +[visit_id globaltype*#22] +[visit_exp []] +[visit_exp `memtype*#36`] +[visit_id memtype*#36] +[visit_exp []] +[visit_exp `tabletype*#29`] +[visit_id tabletype*#29] +[visit_exp []] +[visit_exp `deftype*#80`] +[visit_id deftype*#80] +[visit_exp []] +[visit_exp `datatype*#21`] +[visit_id datatype*#21] +[visit_exp []] +[visit_exp `elemtype*#21`] +[visit_id elemtype*#21] +[visit_exp []] +[visit_exp `localtype*#24`] +[visit_id localtype*#24] +[visit_exp []] +[visit_exp `resulttype*#32`] +[visit_id resulttype*#32] +[visit_exp []] +[visit_exp `resulttype?#29`] +[visit_id resulttype?#29] +[visit_exp ?()] +[visit_exp `funcidx*#58`] +[visit_id funcidx*#58] +[visit_exp []] +[visit_exp xt'] +[visit_id xt'] not free +[visit_exp xt] +[visit_id xt] not free +[check_dims] moduleinst valtype +DecD inst_valtype(moduleinst : moduleinst, valtype : valtype) : valtype +[visit_id moduleinst] not free +[visit_id valtype] not free +[check_dims] moduleinst reftype +DecD inst_reftype(moduleinst : moduleinst, reftype : reftype) : reftype +[visit_id moduleinst] not free +[visit_id reftype] not free +[check_dims] globaltype moduleinst +DecD inst_globaltype(moduleinst : moduleinst, globaltype : globaltype) : globaltype +[visit_id moduleinst] not free +[visit_id globaltype] not free +[check_dims] memtype moduleinst +DecD inst_memtype(moduleinst : moduleinst, memtype : memtype) : memtype +[visit_id moduleinst] not free +[visit_id memtype] not free +[check_dims] moduleinst tabletype +DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype +[visit_id moduleinst] not free +[visit_id tabletype] not free +[check_dims] deftype*#81 dt moduleinst t +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp t] +[visit_id t] +[visit_exp $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp t] +[visit_id t] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#81`})] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp moduleinst.`TYPES`_moduleinst{`deftype*#81`}] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp `deftype*#81`] +[visit_id deftype*#81] +=> + ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec + def $inst_valtype{moduleinst : moduleinst, t : valtype, `dt*` : deftype*, `deftype*#81` : deftype*}(moduleinst, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#81`}) +[check_dims] deftype*#82 dt moduleinst rt +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp rt] +[visit_id rt] +[visit_exp $subst_all_reftype(rt, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp rt] +[visit_id rt] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#82`})] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp moduleinst.`TYPES`_moduleinst{`deftype*#82`}] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp `deftype*#82`] +[visit_id deftype*#82] +=> + ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec + def $inst_reftype{moduleinst : moduleinst, rt : reftype, `dt*` : deftype*, `deftype*#82` : deftype*}(moduleinst, rt) = $subst_all_reftype(rt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#82`}) +[check_dims] deftype*#83 dt gt moduleinst +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp gt] +[visit_id gt] +[visit_exp $subst_all_globaltype(gt, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp gt] +[visit_id gt] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#83`})] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp moduleinst.`TYPES`_moduleinst{`deftype*#83`}] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp `deftype*#83`] +[visit_id deftype*#83] +=> + ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec + def $inst_globaltype{moduleinst : moduleinst, gt : globaltype, `dt*` : deftype*, `deftype*#83` : deftype*}(moduleinst, gt) = $subst_all_globaltype(gt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#83`}) +[check_dims] deftype*#84 dt moduleinst mt +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp mt] +[visit_id mt] +[visit_exp $subst_all_memtype(mt, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp mt] +[visit_id mt] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#84`})] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp moduleinst.`TYPES`_moduleinst{`deftype*#84`}] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp `deftype*#84`] +[visit_id deftype*#84] +=> + ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec + def $inst_memtype{moduleinst : moduleinst, mt : memtype, `dt*` : deftype*, `deftype*#84` : deftype*}(moduleinst, mt) = $subst_all_memtype(mt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#84`}) +[check_dims] deftype*#85 dt moduleinst tt +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp tt] +[visit_id tt] +[visit_exp $subst_all_tabletype(tt, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp tt] +[visit_id tt] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#85`})] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp moduleinst.`TYPES`_moduleinst{`deftype*#85`}] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp `deftype*#85`] +[visit_id deftype*#85] +=> + ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec + def $inst_tabletype{moduleinst : moduleinst, tt : tabletype, `dt*` : deftype*, `deftype*#85` : deftype*}(moduleinst, tt) = $subst_all_tabletype(tt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#85`}) +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] instr instr' instr*#27 instr*#39 state#11 state#23 z +[visit_exp `%;%`_config{state#11, `instr*#27`}(z, instr*{instr <- `instr*`})] +[visit_exp state#11] +[visit_id state#11] +[visit_exp `instr*#27`] +[visit_id instr*#27] +[visit_exp (z, instr*{instr <- `instr*`})] +[visit_exp z] +[visit_id z] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp `%;%`_config{state#23, `instr*#39`}(z, instr'*{instr' <- `instr'*`})] +[visit_exp state#23] +[visit_id state#23] +[visit_exp `instr*#39`] +[visit_id instr*#39] +[visit_exp (z, instr'*{instr' <- `instr'*`})] +[visit_exp z] +[visit_id z] not free +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] no dims +[visit_id instr'*] +[visit_exp (instr*{instr <- `instr*`}, instr'*{instr' <- `instr'*`})] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] not free +[visit_id instr'*] no dims +[check_dims] instr instr' instr*#51 instr*#63 instr*#75 state#35 state#47 state#59 z +[visit_exp `%;%`_config{state#35, `instr*#51`}(z, instr*{instr <- `instr*`})] +[visit_exp state#35] +[visit_id state#35] +[visit_exp `instr*#51`] +[visit_id instr*#51] +[visit_exp (z, instr*{instr <- `instr*`})] +[visit_exp z] +[visit_id z] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp `%;%`_config{state#47, `instr*#63`}(z, instr'*{instr' <- `instr'*`})] +[visit_exp state#47] +[visit_id state#47] +[visit_exp `instr*#63`] +[visit_id instr*#63] +[visit_exp (z, instr'*{instr' <- `instr'*`})] +[visit_exp z] +[visit_id z] not free +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] no dims +[visit_id instr'*] +[visit_exp (`%;%`_config{state#59, `instr*#75`}(z, instr*{instr <- `instr*`}), instr'*{instr' <- `instr'*`})] +[visit_exp `%;%`_config{state#59, `instr*#75`}(z, instr*{instr <- `instr*`})] +[visit_exp state#59] +[visit_id state#59] +[visit_exp `instr*#75`] +[visit_id instr*#75] +[visit_exp (z, instr*{instr <- `instr*`})] +[visit_exp z] +[visit_id z] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] not free +[visit_id instr'*] no dims +[check_dims] instr instr*#87 instr*#99 state#71 state#83 z +[visit_exp `%;%`_config{state#71, `instr*#87`}(z, instr*{instr <- `instr*`})] +[visit_exp state#71] +[visit_id state#71] +[visit_exp `instr*#87`] +[visit_id instr*#87] +[visit_exp (z, instr*{instr <- `instr*`})] +[visit_exp z] +[visit_id z] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp `%;%`_config{state#83, `instr*#99`}(z, instr*{instr <- `instr*`})] +[visit_exp state#83] +[visit_id state#83] +[visit_exp `instr*#99`] +[visit_id instr*#99] +[visit_exp (z, instr*{instr <- `instr*`})] +[visit_exp z] +[visit_id z] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[check_dims] instr instr' instr'' instr*#111 instr*#123 instr*#135 instr*#147 instr*#159 instr*#171 state#107 state#119 state#131 state#143 state#155 state#95 z z' z'' +[visit_exp `%;%`_config{state#95, `instr*#111`}(z, instr*{instr <- `instr*`})] +[visit_exp state#95] +[visit_id state#95] +[visit_exp `instr*#111`] +[visit_id instr*#111] +[visit_exp (z, instr*{instr <- `instr*`})] +[visit_exp z] +[visit_id z] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp `%;%`_config{state#107, `instr*#123`}(z'', instr''*{instr'' <- `instr''*`})] +[visit_exp state#107] +[visit_id state#107] +[visit_exp `instr*#123`] +[visit_id instr*#123] +[visit_exp (z'', instr''*{instr'' <- `instr''*`})] +[visit_exp z''] +[visit_id z''] +[visit_exp instr''*{instr'' <- `instr''*`}] +[scope_enter instr''] +[visit_exp instr''] +[visit_id instr''] not free +[visit_id instr''] not free +[scope_exit instr''] +[visit_exp `instr''*`] +[visit_id instr''*] no dims +[visit_id instr''*] +[visit_exp (`%;%`_config{state#119, `instr*#135`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#131, `instr*#147`}(z', instr'*{instr' <- `instr'*`}))] +[visit_exp `%;%`_config{state#119, `instr*#135`}(z, instr*{instr <- `instr*`})] +[visit_exp state#119] +[visit_id state#119] +[visit_exp `instr*#135`] +[visit_id instr*#135] +[visit_exp (z, instr*{instr <- `instr*`})] +[visit_exp z] +[visit_id z] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp `%;%`_config{state#131, `instr*#147`}(z', instr'*{instr' <- `instr'*`})] +[visit_exp state#131] +[visit_id state#131] +[visit_exp `instr*#147`] +[visit_id instr*#147] +[visit_exp (z', instr'*{instr' <- `instr'*`})] +[visit_exp z'] +[visit_id z'] +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] no dims +[visit_id instr'*] +[visit_exp (`%;%`_config{state#143, `instr*#159`}(z', instr'*{instr' <- `instr'*`}), `%;%`_config{state#155, `instr*#171`}(z'', instr''*{instr'' <- `instr''*`}))] +[visit_exp `%;%`_config{state#143, `instr*#159`}(z', instr'*{instr' <- `instr'*`})] +[visit_exp state#143] +[visit_id state#143] +[visit_exp `instr*#159`] +[visit_id instr*#159] +[visit_exp (z', instr'*{instr' <- `instr'*`})] +[visit_exp z'] +[visit_id z'] not free +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] not free +[visit_id instr'*] no dims +[visit_exp `%;%`_config{state#155, `instr*#171`}(z'', instr''*{instr'' <- `instr''*`})] +[visit_exp state#155] +[visit_id state#155] +[visit_exp `instr*#171`] +[visit_id instr*#171] +[visit_exp (z'', instr''*{instr'' <- `instr''*`})] +[visit_exp z''] +[visit_id z''] not free +[visit_exp instr''*{instr'' <- `instr''*`}] +[scope_enter instr''] +[visit_exp instr''] +[visit_id instr''] not free +[visit_id instr''] not free +[scope_exit instr''] +[visit_exp `instr''*`] +[visit_id instr''*] not free +[visit_id instr''*] no dims +[check_dims] instr instr' instr*#183 instr*#195 instr*#207 instr*#219 instr_1 state#167 state#179 state#191 state#203 val z z' +[visit_exp `%;%`_config{state#167, `instr*#183`}(z, (val : val <: instr)*{val <- `val*`} ++ instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`})] +[visit_exp state#167] +[visit_id state#167] +[visit_exp `instr*#183`] +[visit_id instr*#183] +[visit_exp (z, (val : val <: instr)*{val <- `val*`} ++ instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`})] +[visit_exp z] +[visit_id z] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`}] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`}] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp instr_1*{instr_1 <- `instr_1*`}] +[scope_enter instr_1] +[visit_exp instr_1] +[visit_id instr_1] not free +[visit_id instr_1] not free +[scope_exit instr_1] +[visit_exp `instr_1*`] +[visit_id instr_1*] no dims +[visit_id instr_1*] +[visit_exp `%;%`_config{state#179, `instr*#195`}(z', (val : val <: instr)*{val <- `val*`} ++ instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`})] +[visit_exp state#179] +[visit_id state#179] +[visit_exp `instr*#195`] +[visit_id instr*#195] +[visit_exp (z', (val : val <: instr)*{val <- `val*`} ++ instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`})] +[visit_exp z'] +[visit_id z'] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`}] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`}] +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] no dims +[visit_id instr'*] +[visit_exp instr_1*{instr_1 <- `instr_1*`}] +[scope_enter instr_1] +[visit_exp instr_1] +[visit_id instr_1] not free +[visit_id instr_1] not free +[scope_exit instr_1] +[visit_exp `instr_1*`] +[visit_id instr_1*] not free +[visit_id instr_1*] no dims +[visit_exp (`%;%`_config{state#191, `instr*#207`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#203, `instr*#219`}(z', instr'*{instr' <- `instr'*`}))] +[visit_exp `%;%`_config{state#191, `instr*#207`}(z, instr*{instr <- `instr*`})] +[visit_exp state#191] +[visit_id state#191] +[visit_exp `instr*#207`] +[visit_id instr*#207] +[visit_exp (z, instr*{instr <- `instr*`})] +[visit_exp z] +[visit_id z] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp `%;%`_config{state#203, `instr*#219`}(z', instr'*{instr' <- `instr'*`})] +[visit_exp state#203] +[visit_id state#203] +[visit_exp `instr*#219`] +[visit_id instr*#219] +[visit_exp (z', instr'*{instr' <- `instr'*`})] +[visit_exp z'] +[visit_id z'] not free +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] not free +[visit_id instr'*] no dims +[visit_exp ((val*{val <- `val*`} =/= []) \/ (instr_1*{instr_1 <- `instr_1*`} =/= []))] +[visit_exp (val*{val <- `val*`} =/= [])] +[visit_exp val*{val <- `val*`}] +[scope_enter val] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp []] +[visit_exp (instr_1*{instr_1 <- `instr_1*`} =/= [])] +[visit_exp instr_1*{instr_1 <- `instr_1*`}] +[scope_enter instr_1] +[visit_exp instr_1] +[visit_id instr_1] not free +[visit_id instr_1] not free +[scope_exit instr_1] +[visit_exp `instr_1*`] +[visit_id instr_1*] not free +[visit_id instr_1*] no dims +[visit_exp []] +[check_dims] instr instr' instr*#231 instr*#233 instr*#246 instr*#248 instr*#261 instr*#273 instr_0 n n#1127 n#1129 state#215 state#227 state#239 state#251 z z' +[visit_exp `%;%`_config{state#215, `instr*#231`}(z, [`LABEL_%{%}%`_instr{n#1127, `instr*#233`}(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})])] +[visit_exp state#215] +[visit_id state#215] +[visit_exp `instr*#231`] +[visit_id instr*#231] +[visit_exp (z, [`LABEL_%{%}%`_instr{n#1127, `instr*#233`}(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})])] +[visit_exp z] +[visit_id z] +[visit_exp [`LABEL_%{%}%`_instr{n#1127, `instr*#233`}(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr{n#1127, `instr*#233`}(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})] +[visit_exp n#1127] +[visit_id n#1127] +[visit_exp `instr*#233`] +[visit_id instr*#233] +[visit_exp (n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})] +[visit_exp n] +[visit_id n] +[visit_exp instr_0*{instr_0 <- `instr_0*`}] +[scope_enter instr_0] +[visit_exp instr_0] +[visit_id instr_0] not free +[visit_id instr_0] not free +[scope_exit instr_0] +[visit_exp `instr_0*`] +[visit_id instr_0*] no dims +[visit_id instr_0*] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp `%;%`_config{state#227, `instr*#246`}(z', [`LABEL_%{%}%`_instr{n#1129, `instr*#248`}(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})])] +[visit_exp state#227] +[visit_id state#227] +[visit_exp `instr*#246`] +[visit_id instr*#246] +[visit_exp (z', [`LABEL_%{%}%`_instr{n#1129, `instr*#248`}(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})])] +[visit_exp z'] +[visit_id z'] +[visit_exp [`LABEL_%{%}%`_instr{n#1129, `instr*#248`}(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})]] +[visit_exp `LABEL_%{%}%`_instr{n#1129, `instr*#248`}(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})] +[visit_exp n#1129] +[visit_id n#1129] +[visit_exp `instr*#248`] +[visit_id instr*#248] +[visit_exp (n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})] +[visit_exp n] +[visit_id n] not free +[visit_exp instr_0*{instr_0 <- `instr_0*`}] +[scope_enter instr_0] +[visit_exp instr_0] +[visit_id instr_0] not free +[visit_id instr_0] not free +[scope_exit instr_0] +[visit_exp `instr_0*`] +[visit_id instr_0*] not free +[visit_id instr_0*] no dims +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] no dims +[visit_id instr'*] +[visit_exp (`%;%`_config{state#239, `instr*#261`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#251, `instr*#273`}(z', instr'*{instr' <- `instr'*`}))] +[visit_exp `%;%`_config{state#239, `instr*#261`}(z, instr*{instr <- `instr*`})] +[visit_exp state#239] +[visit_id state#239] +[visit_exp `instr*#261`] +[visit_id instr*#261] +[visit_exp (z, instr*{instr <- `instr*`})] +[visit_exp z] +[visit_id z] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp `%;%`_config{state#251, `instr*#273`}(z', instr'*{instr' <- `instr'*`})] +[visit_exp state#251] +[visit_id state#251] +[visit_exp `instr*#273`] +[visit_id instr*#273] +[visit_exp (z', instr'*{instr' <- `instr'*`})] +[visit_exp z'] +[visit_id z'] not free +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] not free +[visit_id instr'*] no dims +[check_dims] f f' f'' frame#725 frame#727 frame#739 frame#741 frame#753 frame#765 instr instr' instr*#285 instr*#287 instr*#299 instr*#301 instr*#313 instr*#325 n n#1131 n#1133 s s' state#263 state#275 state#287 state#299 store#725 store#737 store#749 store#761 +[visit_exp `%;%`_config{state#263, `instr*#285`}(`%;%`_state{store#725, frame#725}(s, f), [`FRAME_%{%}%`_instr{n#1131, frame#727, `instr*#287`}(n, f', instr*{instr <- `instr*`})])] +[visit_exp state#263] +[visit_id state#263] +[visit_exp `instr*#285`] +[visit_id instr*#285] +[visit_exp (`%;%`_state{store#725, frame#725}(s, f), [`FRAME_%{%}%`_instr{n#1131, frame#727, `instr*#287`}(n, f', instr*{instr <- `instr*`})])] +[visit_exp `%;%`_state{store#725, frame#725}(s, f)] +[visit_exp store#725] +[visit_id store#725] +[visit_exp frame#725] +[visit_id frame#725] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp [`FRAME_%{%}%`_instr{n#1131, frame#727, `instr*#287`}(n, f', instr*{instr <- `instr*`})]] +[visit_exp `FRAME_%{%}%`_instr{n#1131, frame#727, `instr*#287`}(n, f', instr*{instr <- `instr*`})] +[visit_exp n#1131] +[visit_id n#1131] +[visit_exp frame#727] +[visit_id frame#727] +[visit_exp `instr*#287`] +[visit_id instr*#287] +[visit_exp (n, f', instr*{instr <- `instr*`})] +[visit_exp n] +[visit_id n] +[visit_exp f'] +[visit_id f'] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp `%;%`_config{state#275, `instr*#299`}(`%;%`_state{store#737, frame#739}(s', f), [`FRAME_%{%}%`_instr{n#1133, frame#741, `instr*#301`}(n, f'', instr'*{instr' <- `instr'*`})])] +[visit_exp state#275] +[visit_id state#275] +[visit_exp `instr*#299`] +[visit_id instr*#299] +[visit_exp (`%;%`_state{store#737, frame#739}(s', f), [`FRAME_%{%}%`_instr{n#1133, frame#741, `instr*#301`}(n, f'', instr'*{instr' <- `instr'*`})])] +[visit_exp `%;%`_state{store#737, frame#739}(s', f)] +[visit_exp store#737] +[visit_id store#737] +[visit_exp frame#739] +[visit_id frame#739] +[visit_exp (s', f)] +[visit_exp s'] +[visit_id s'] +[visit_exp f] +[visit_id f] not free +[visit_exp [`FRAME_%{%}%`_instr{n#1133, frame#741, `instr*#301`}(n, f'', instr'*{instr' <- `instr'*`})]] +[visit_exp `FRAME_%{%}%`_instr{n#1133, frame#741, `instr*#301`}(n, f'', instr'*{instr' <- `instr'*`})] +[visit_exp n#1133] +[visit_id n#1133] +[visit_exp frame#741] +[visit_id frame#741] +[visit_exp `instr*#301`] +[visit_id instr*#301] +[visit_exp (n, f'', instr'*{instr' <- `instr'*`})] +[visit_exp n] +[visit_id n] not free +[visit_exp f''] +[visit_id f''] +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] no dims +[visit_id instr'*] +[visit_exp (`%;%`_config{state#287, `instr*#313`}(`%;%`_state{store#749, frame#753}(s, f'), instr*{instr <- `instr*`}), `%;%`_config{state#299, `instr*#325`}(`%;%`_state{store#761, frame#765}(s', f''), instr'*{instr' <- `instr'*`}))] +[visit_exp `%;%`_config{state#287, `instr*#313`}(`%;%`_state{store#749, frame#753}(s, f'), instr*{instr <- `instr*`})] +[visit_exp state#287] +[visit_id state#287] +[visit_exp `instr*#313`] +[visit_id instr*#313] +[visit_exp (`%;%`_state{store#749, frame#753}(s, f'), instr*{instr <- `instr*`})] +[visit_exp `%;%`_state{store#749, frame#753}(s, f')] +[visit_exp store#749] +[visit_id store#749] +[visit_exp frame#753] +[visit_id frame#753] +[visit_exp (s, f')] +[visit_exp s] +[visit_id s] not free +[visit_exp f'] +[visit_id f'] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp `%;%`_config{state#299, `instr*#325`}(`%;%`_state{store#761, frame#765}(s', f''), instr'*{instr' <- `instr'*`})] +[visit_exp state#299] +[visit_id state#299] +[visit_exp `instr*#325`] +[visit_id instr*#325] +[visit_exp (`%;%`_state{store#761, frame#765}(s', f''), instr'*{instr' <- `instr'*`})] +[visit_exp `%;%`_state{store#761, frame#765}(s', f'')] +[visit_exp store#761] +[visit_id store#761] +[visit_exp frame#765] +[visit_id frame#765] +[visit_exp (s', f'')] +[visit_exp s'] +[visit_id s'] not free +[visit_exp f''] +[visit_id f''] not free +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] not free +[visit_id instr'*] no dims +[check_dims] +[visit_exp [`UNREACHABLE`_instr]] +[visit_exp `UNREACHABLE`_instr] +[visit_exp ()] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] +[visit_exp [`NOP`_instr]] +[visit_exp `NOP`_instr] +[visit_exp ()] +[visit_exp []] +[check_dims] val +[visit_exp [(val : val <: instr) `DROP`_instr]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `DROP`_instr] +[visit_exp ()] +[visit_exp []] +[check_dims] c i#31733 numtype#59 t val_1 val_2 valtype*?#7 +[visit_exp [(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr{numtype#59}(`I32`_numtype, c) `SELECT`_instr{`valtype*?#7`}(t*{t <- `t*`}?{`t*` <- `t*?`})]] +[visit_exp (val_1 : val <: instr)] +[visit_exp val_1] +[visit_id val_1] +[visit_exp (val_2 : val <: instr)] +[visit_exp val_2] +[visit_id val_2] +[visit_exp `CONST`_instr{numtype#59}(`I32`_numtype, c)] +[visit_exp numtype#59] +[visit_id numtype#59] +[visit_exp (`I32`_numtype, c)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp `SELECT`_instr{`valtype*?#7`}(t*{t <- `t*`}?{`t*` <- `t*?`})] +[visit_exp `valtype*?#7`] +[visit_id valtype*?#7] +[visit_exp (t*{t <- `t*`}?{`t*` <- `t*?`})] +[visit_exp t*{t <- `t*`}?{`t*` <- `t*?`}] +[scope_enter t*] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_id t*] not free +[visit_id t*] no dims +[scope_exit t*] +[visit_exp `t*?`] +[visit_id t*?] no dims +[visit_id t*?] +[visit_exp [(val_1 : val <: instr)]] +[visit_exp (val_1 : val <: instr)] +[visit_exp val_1] +[visit_id val_1] not free +[visit_exp (c!`%`_num_{i#31733}.0 =/= 0)] +[visit_exp c!`%`_num_{i#31733}.0] +[visit_exp c!`%`_num_{i#31733}] +[visit_exp c] +[visit_id c] not free +[visit_exp i#31733] +[visit_id i#31733] +[visit_exp 0] +[check_dims] c i#31757 numtype#61 t val_1 val_2 valtype*?#9 +[visit_exp [(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr{numtype#61}(`I32`_numtype, c) `SELECT`_instr{`valtype*?#9`}(t*{t <- `t*`}?{`t*` <- `t*?`})]] +[visit_exp (val_1 : val <: instr)] +[visit_exp val_1] +[visit_id val_1] +[visit_exp (val_2 : val <: instr)] +[visit_exp val_2] +[visit_id val_2] +[visit_exp `CONST`_instr{numtype#61}(`I32`_numtype, c)] +[visit_exp numtype#61] +[visit_id numtype#61] +[visit_exp (`I32`_numtype, c)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp `SELECT`_instr{`valtype*?#9`}(t*{t <- `t*`}?{`t*` <- `t*?`})] +[visit_exp `valtype*?#9`] +[visit_id valtype*?#9] +[visit_exp (t*{t <- `t*`}?{`t*` <- `t*?`})] +[visit_exp t*{t <- `t*`}?{`t*` <- `t*?`}] +[scope_enter t*] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_id t*] not free +[visit_id t*] no dims +[scope_exit t*] +[visit_exp `t*?`] +[visit_id t*?] no dims +[visit_id t*?] +[visit_exp [(val_2 : val <: instr)]] +[visit_exp (val_2 : val <: instr)] +[visit_exp val_2] +[visit_id val_2] not free +[visit_exp (c!`%`_num_{i#31757}.0 = 0)] +[visit_exp c!`%`_num_{i#31757}.0] +[visit_exp c!`%`_num_{i#31757}] +[visit_exp c] +[visit_id c] not free +[visit_exp i#31757] +[visit_id i#31757] +[visit_exp 0] +[check_dims] blocktype state +DecD blocktype_(state : state, blocktype : blocktype) : instrtype +[visit_id state] not free +[visit_id blocktype] not free +[check_dims] X*#12215 X*#12228 X*#12241 X*#12292 localidx*#1757 resulttype#2914 resulttype#2934 t_1 t_2 typeidx#1551 x z +[visit_exp z] +[visit_id z] +[visit_exp `_IDX`_blocktype{typeidx#1551}(x)] +[visit_exp typeidx#1551] +[visit_id typeidx#1551] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#2934, `localidx*#1757`}(`%`_resulttype{`X*#12241`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12292`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#2934] +[visit_id resulttype#2934] +[visit_exp `localidx*#1757`] +[visit_id localidx*#1757] +[visit_exp (`%`_resulttype{`X*#12241`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12292`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#12241`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#12241`] +[visit_id X*#12241] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#12292`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#12292`] +[visit_id X*#12292] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp ($type(z, x), `FUNC%->%`_comptype{resulttype#2914}(`%`_resulttype{`X*#12215`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#12228`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `FUNC%->%`_comptype{resulttype#2914}(`%`_resulttype{`X*#12215`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#12228`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#2914] +[visit_id resulttype#2914] +[visit_exp (`%`_resulttype{`X*#12215`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#12228`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#12215`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#12215`] +[visit_id X*#12215] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `%`_resulttype{`X*#12228`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#12228`] +[visit_id X*#12228] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec + def $blocktype_{z : state, typeidx#1551 : typeidx, x : idx, resulttype#2934 : resulttype, `localidx*#1757` : localidx*, `X*#12241` : valtype*, `t_1*` : valtype*, `X*#12292` : valtype*, `t_2*` : valtype*, resulttype#2914 : resulttype, `X*#12215` : valtype*, `X*#12228` : valtype*}(z, `_IDX`_blocktype{typeidx#1551}(x)) = `%->_%%`_instrtype{resulttype#2934, `localidx*#1757`}(`%`_resulttype{`X*#12241`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12292`}(t_2*{t_2 <- `t_2*`})) + -- Expand: `%~~%`($type(z, x), `FUNC%->%`_comptype{resulttype#2914}(`%`_resulttype{`X*#12215`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#12228`}(t_2*{t_2 <- `t_2*`}))) +[check_dims] X*#12313 X*#12362 localidx*#1769 resulttype#2954 t valtype?#5 z +[visit_exp z] +[visit_id z] +[visit_exp `_RESULT`_blocktype{`valtype?#5`}(t?{t <- `t?`})] +[visit_exp `valtype?#5`] +[visit_id valtype?#5] +[visit_exp (t?{t <- `t?`})] +[visit_exp t?{t <- `t?`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t?`] +[visit_id t?] no dims +[visit_id t?] +[visit_exp `%->_%%`_instrtype{resulttype#2954, `localidx*#1769`}(`%`_resulttype{`X*#12313`}([]), [], `%`_resulttype{`X*#12362`}(lift(t?{t <- `t?`})))] +[visit_exp resulttype#2954] +[visit_id resulttype#2954] +[visit_exp `localidx*#1769`] +[visit_id localidx*#1769] +[visit_exp (`%`_resulttype{`X*#12313`}([]), [], `%`_resulttype{`X*#12362`}(lift(t?{t <- `t?`})))] +[visit_exp `%`_resulttype{`X*#12313`}([])] +[visit_exp `X*#12313`] +[visit_id X*#12313] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#12362`}(lift(t?{t <- `t?`}))] +[visit_exp `X*#12362`] +[visit_id X*#12362] +[visit_exp (lift(t?{t <- `t?`}))] +[visit_exp lift(t?{t <- `t?`})] +[visit_exp t?{t <- `t?`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t?`] +[visit_id t?] not free +[visit_id t?] no dims +=> + ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec + def $blocktype_{z : state, `valtype?#5` : valtype?, `t?` : valtype?, resulttype#2954 : resulttype, `localidx*#1769` : localidx*, `X*#12313` : valtype*, `X*#12362` : valtype*}(z, `_RESULT`_blocktype{`valtype?#5`}(t?{t <- `t?`})) = `%->_%%`_instrtype{resulttype#2954, `localidx*#1769`}(`%`_resulttype{`X*#12313`}([]), [], `%`_resulttype{`X*#12362`}(lift(t?{t <- `t?`}))) +[check_dims] X*#12373 X*#12424 blocktype#15 bt instr instr*#337 instr*#339 instr*#341 localidx*#1781 m n n#1141 resulttype#2974 state#311 t_1 t_2 val z +[visit_exp `%;%`_config{state#311, `instr*#337`}(z, (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr{blocktype#15, `instr*#339`}(bt, instr*{instr <- `instr*`})])] +[visit_exp state#311] +[visit_id state#311] +[visit_exp `instr*#337`] +[visit_id instr*#337] +[visit_exp (z, (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr{blocktype#15, `instr*#339`}(bt, instr*{instr <- `instr*`})])] +[visit_exp z] +[visit_id z] +[visit_exp (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr{blocktype#15, `instr*#339`}(bt, instr*{instr <- `instr*`})]] +[visit_exp (val : val <: instr)^m{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp m] +[visit_id m] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`BLOCK`_instr{blocktype#15, `instr*#339`}(bt, instr*{instr <- `instr*`})]] +[visit_exp `BLOCK`_instr{blocktype#15, `instr*#339`}(bt, instr*{instr <- `instr*`})] +[visit_exp blocktype#15] +[visit_id blocktype#15] +[visit_exp `instr*#339`] +[visit_id instr*#339] +[visit_exp (bt, instr*{instr <- `instr*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp [`LABEL_%{%}%`_instr{n#1141, `instr*#341`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr{n#1141, `instr*#341`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] +[visit_exp n#1141] +[visit_id n#1141] +[visit_exp `instr*#341`] +[visit_id instr*#341] +[visit_exp (n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] +[visit_exp n] +[visit_id n] +[visit_exp []] +[visit_exp (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)^m{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp m] +[visit_id m] not free +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp ($blocktype_(z, bt) = `%->_%%`_instrtype{resulttype#2974, `localidx*#1781`}(`%`_resulttype{`X*#12373`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12424`}(t_2^n{t_2 <- `t_2*`})))] +[visit_exp $blocktype_(z, bt)] +[visit_exp z] +[visit_id z] not free +[visit_exp bt] +[visit_id bt] not free +[visit_exp `%->_%%`_instrtype{resulttype#2974, `localidx*#1781`}(`%`_resulttype{`X*#12373`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12424`}(t_2^n{t_2 <- `t_2*`}))] +[visit_exp resulttype#2974] +[visit_id resulttype#2974] +[visit_exp `localidx*#1781`] +[visit_id localidx*#1781] +[visit_exp (`%`_resulttype{`X*#12373`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12424`}(t_2^n{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#12373`}(t_1^m{t_1 <- `t_1*`})] +[visit_exp `X*#12373`] +[visit_id X*#12373] +[visit_exp (t_1^m{t_1 <- `t_1*`})] +[visit_exp t_1^m{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp m] +[visit_id m] not free +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#12424`}(t_2^n{t_2 <- `t_2*`})] +[visit_exp `X*#12424`] +[visit_id X*#12424] +[visit_exp (t_2^n{t_2 <- `t_2*`})] +[visit_exp t_2^n{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp n] +[visit_id n] not free +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[check_dims] X*#12435 X*#12486 blocktype#17 blocktype#19 bt instr instr*#354 instr*#356 instr*#358 instr*#361 localidx*#1793 m n n#1143 resulttype#2994 state#323 t_1 t_2 val z +[visit_exp `%;%`_config{state#323, `instr*#354`}(z, (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr{blocktype#17, `instr*#356`}(bt, instr*{instr <- `instr*`})])] +[visit_exp state#323] +[visit_id state#323] +[visit_exp `instr*#354`] +[visit_id instr*#354] +[visit_exp (z, (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr{blocktype#17, `instr*#356`}(bt, instr*{instr <- `instr*`})])] +[visit_exp z] +[visit_id z] +[visit_exp (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr{blocktype#17, `instr*#356`}(bt, instr*{instr <- `instr*`})]] +[visit_exp (val : val <: instr)^m{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp m] +[visit_id m] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`LOOP`_instr{blocktype#17, `instr*#356`}(bt, instr*{instr <- `instr*`})]] +[visit_exp `LOOP`_instr{blocktype#17, `instr*#356`}(bt, instr*{instr <- `instr*`})] +[visit_exp blocktype#17] +[visit_id blocktype#17] +[visit_exp `instr*#356`] +[visit_id instr*#356] +[visit_exp (bt, instr*{instr <- `instr*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp [`LABEL_%{%}%`_instr{n#1143, `instr*#358`}(m, [`LOOP`_instr{blocktype#19, `instr*#361`}(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr{n#1143, `instr*#358`}(m, [`LOOP`_instr{blocktype#19, `instr*#361`}(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] +[visit_exp n#1143] +[visit_id n#1143] +[visit_exp `instr*#358`] +[visit_id instr*#358] +[visit_exp (m, [`LOOP`_instr{blocktype#19, `instr*#361`}(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] +[visit_exp m] +[visit_id m] not free +[visit_exp [`LOOP`_instr{blocktype#19, `instr*#361`}(bt, instr*{instr <- `instr*`})]] +[visit_exp `LOOP`_instr{blocktype#19, `instr*#361`}(bt, instr*{instr <- `instr*`})] +[visit_exp blocktype#19] +[visit_id blocktype#19] +[visit_exp `instr*#361`] +[visit_id instr*#361] +[visit_exp (bt, instr*{instr <- `instr*`})] +[visit_exp bt] +[visit_id bt] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)^m{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp m] +[visit_id m] not free +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp ($blocktype_(z, bt) = `%->_%%`_instrtype{resulttype#2994, `localidx*#1793`}(`%`_resulttype{`X*#12435`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12486`}(t_2^n{t_2 <- `t_2*`})))] +[visit_exp $blocktype_(z, bt)] +[visit_exp z] +[visit_id z] not free +[visit_exp bt] +[visit_id bt] not free +[visit_exp `%->_%%`_instrtype{resulttype#2994, `localidx*#1793`}(`%`_resulttype{`X*#12435`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12486`}(t_2^n{t_2 <- `t_2*`}))] +[visit_exp resulttype#2994] +[visit_id resulttype#2994] +[visit_exp `localidx*#1793`] +[visit_id localidx*#1793] +[visit_exp (`%`_resulttype{`X*#12435`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12486`}(t_2^n{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#12435`}(t_1^m{t_1 <- `t_1*`})] +[visit_exp `X*#12435`] +[visit_id X*#12435] +[visit_exp (t_1^m{t_1 <- `t_1*`})] +[visit_exp t_1^m{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp m] +[visit_id m] not free +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#12486`}(t_2^n{t_2 <- `t_2*`})] +[visit_exp `X*#12486`] +[visit_id X*#12486] +[visit_exp (t_2^n{t_2 <- `t_2*`})] +[visit_exp t_2^n{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp n] +[visit_id n] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[check_dims] blocktype#21 blocktype#23 bt c i#31807 instr*#363 instr*#366 instr_1 instr_2 numtype#63 +[visit_exp [`CONST`_instr{numtype#63}(`I32`_numtype, c) `IF%%ELSE%`_instr{blocktype#21, `instr*#363`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})]] +[visit_exp `CONST`_instr{numtype#63}(`I32`_numtype, c)] +[visit_exp numtype#63] +[visit_id numtype#63] +[visit_exp (`I32`_numtype, c)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp `IF%%ELSE%`_instr{blocktype#21, `instr*#363`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] +[visit_exp blocktype#21] +[visit_id blocktype#21] +[visit_exp `instr*#363`] +[visit_id instr*#363] +[visit_exp (bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp instr_1*{instr_1 <- `instr_1*`}] +[scope_enter instr_1] +[visit_exp instr_1] +[visit_id instr_1] not free +[visit_id instr_1] not free +[scope_exit instr_1] +[visit_exp `instr_1*`] +[visit_id instr_1*] no dims +[visit_id instr_1*] +[visit_exp instr_2*{instr_2 <- `instr_2*`}] +[scope_enter instr_2] +[visit_exp instr_2] +[visit_id instr_2] not free +[visit_id instr_2] not free +[scope_exit instr_2] +[visit_exp `instr_2*`] +[visit_id instr_2*] no dims +[visit_id instr_2*] +[visit_exp [`BLOCK`_instr{blocktype#23, `instr*#366`}(bt, instr_1*{instr_1 <- `instr_1*`})]] +[visit_exp `BLOCK`_instr{blocktype#23, `instr*#366`}(bt, instr_1*{instr_1 <- `instr_1*`})] +[visit_exp blocktype#23] +[visit_id blocktype#23] +[visit_exp `instr*#366`] +[visit_id instr*#366] +[visit_exp (bt, instr_1*{instr_1 <- `instr_1*`})] +[visit_exp bt] +[visit_id bt] not free +[visit_exp instr_1*{instr_1 <- `instr_1*`}] +[scope_enter instr_1] +[visit_exp instr_1] +[visit_id instr_1] not free +[visit_id instr_1] not free +[scope_exit instr_1] +[visit_exp `instr_1*`] +[visit_id instr_1*] not free +[visit_id instr_1*] no dims +[visit_exp (c!`%`_num_{i#31807}.0 =/= 0)] +[visit_exp c!`%`_num_{i#31807}.0] +[visit_exp c!`%`_num_{i#31807}] +[visit_exp c] +[visit_id c] not free +[visit_exp i#31807] +[visit_id i#31807] +[visit_exp 0] +[check_dims] blocktype#25 blocktype#27 bt c i#31831 instr*#368 instr*#371 instr_1 instr_2 numtype#65 +[visit_exp [`CONST`_instr{numtype#65}(`I32`_numtype, c) `IF%%ELSE%`_instr{blocktype#25, `instr*#368`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})]] +[visit_exp `CONST`_instr{numtype#65}(`I32`_numtype, c)] +[visit_exp numtype#65] +[visit_id numtype#65] +[visit_exp (`I32`_numtype, c)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp `IF%%ELSE%`_instr{blocktype#25, `instr*#368`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] +[visit_exp blocktype#25] +[visit_id blocktype#25] +[visit_exp `instr*#368`] +[visit_id instr*#368] +[visit_exp (bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp instr_1*{instr_1 <- `instr_1*`}] +[scope_enter instr_1] +[visit_exp instr_1] +[visit_id instr_1] not free +[visit_id instr_1] not free +[scope_exit instr_1] +[visit_exp `instr_1*`] +[visit_id instr_1*] no dims +[visit_id instr_1*] +[visit_exp instr_2*{instr_2 <- `instr_2*`}] +[scope_enter instr_2] +[visit_exp instr_2] +[visit_id instr_2] not free +[visit_id instr_2] not free +[scope_exit instr_2] +[visit_exp `instr_2*`] +[visit_id instr_2*] no dims +[visit_id instr_2*] +[visit_exp [`BLOCK`_instr{blocktype#27, `instr*#371`}(bt, instr_2*{instr_2 <- `instr_2*`})]] +[visit_exp `BLOCK`_instr{blocktype#27, `instr*#371`}(bt, instr_2*{instr_2 <- `instr_2*`})] +[visit_exp blocktype#27] +[visit_id blocktype#27] +[visit_exp `instr*#371`] +[visit_id instr*#371] +[visit_exp (bt, instr_2*{instr_2 <- `instr_2*`})] +[visit_exp bt] +[visit_id bt] not free +[visit_exp instr_2*{instr_2 <- `instr_2*`}] +[scope_enter instr_2] +[visit_exp instr_2] +[visit_id instr_2] not free +[visit_id instr_2] not free +[scope_exit instr_2] +[visit_exp `instr_2*`] +[visit_id instr_2*] not free +[visit_id instr_2*] no dims +[visit_exp (c!`%`_num_{i#31831}.0 = 0)] +[visit_exp c!`%`_num_{i#31831}.0] +[visit_exp c!`%`_num_{i#31831}] +[visit_exp c] +[visit_id c] not free +[visit_exp i#31831] +[visit_id i#31831] +[visit_exp 0] +[check_dims] instr instr*#373 n n#1145 val +[visit_exp [`LABEL_%{%}%`_instr{n#1145, `instr*#373`}(n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})]] +[visit_exp `LABEL_%{%}%`_instr{n#1145, `instr*#373`}(n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})] +[visit_exp n#1145] +[visit_id n#1145] +[visit_exp `instr*#373`] +[visit_id instr*#373] +[visit_exp (n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})] +[visit_exp n] +[visit_id n] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[check_dims] i#31853 instr instr' instr*#376 l labelidx#37 n n#1147 val val' +[visit_exp [`LABEL_%{%}%`_instr{n#1147, `instr*#376`}(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr{labelidx#37}(l)] ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr{n#1147, `instr*#376`}(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr{labelidx#37}(l)] ++ instr*{instr <- `instr*`})] +[visit_exp n#1147] +[visit_id n#1147] +[visit_exp `instr*#376`] +[visit_id instr*#376] +[visit_exp (n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr{labelidx#37}(l)] ++ instr*{instr <- `instr*`})] +[visit_exp n] +[visit_id n] +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] no dims +[visit_id instr'*] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr{labelidx#37}(l)] ++ instr*{instr <- `instr*`}] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr{labelidx#37}(l)]] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`}] +[visit_exp (val' : val <: instr)*{val' <- `val'*`}] +[scope_enter val'] +[visit_exp (val' : val <: instr)] +[visit_exp val'] +[visit_id val'] not free +[visit_id val'] not free +[scope_exit val'] +[visit_exp `val'*`] +[visit_id val'*] no dims +[visit_id val'*] +[visit_exp (val : val <: instr)^n{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] not free +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`BR`_instr{labelidx#37}(l)]] +[visit_exp `BR`_instr{labelidx#37}(l)] +[visit_exp labelidx#37] +[visit_id labelidx#37] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp (val : val <: instr)^n{val <- `val*`} ++ instr'*{instr' <- `instr'*`}] +[visit_exp (val : val <: instr)^n{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] not free +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] not free +[visit_id instr'*] no dims +[visit_exp (l!`%`_labelidx{i#31853}.0 = 0)] +[visit_exp l!`%`_labelidx{i#31853}.0] +[visit_exp l!`%`_labelidx{i#31853}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#31853] +[visit_id i#31853] +[visit_exp 0] +[check_dims] i#31891 i#31901 i#31915 instr instr' instr*#379 l labelidx#39 labelidx#41 n n#1149 val +[visit_exp [`LABEL_%{%}%`_instr{n#1149, `instr*#379`}(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#39}(l)] ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr{n#1149, `instr*#379`}(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#39}(l)] ++ instr*{instr <- `instr*`})] +[visit_exp n#1149] +[visit_id n#1149] +[visit_exp `instr*#379`] +[visit_id instr*#379] +[visit_exp (n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#39}(l)] ++ instr*{instr <- `instr*`})] +[visit_exp n] +[visit_id n] +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] no dims +[visit_id instr'*] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#39}(l)] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#39}(l)]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`BR`_instr{labelidx#39}(l)]] +[visit_exp `BR`_instr{labelidx#39}(l)] +[visit_exp labelidx#39] +[visit_id labelidx#39] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#41}(`%`_labelidx{i#31901}((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp [`BR`_instr{labelidx#41}(`%`_labelidx{i#31901}((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]] +[visit_exp `BR`_instr{labelidx#41}(`%`_labelidx{i#31901}((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp labelidx#41] +[visit_id labelidx#41] +[visit_exp (`%`_labelidx{i#31901}((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `%`_labelidx{i#31901}((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#31901] +[visit_id i#31901] +[visit_exp ((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int))] +[visit_exp (l!`%`_labelidx{i#31891}.0 : nat <:> int)] +[visit_exp l!`%`_labelidx{i#31891}.0] +[visit_exp l!`%`_labelidx{i#31891}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#31891] +[visit_id i#31891] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp (l!`%`_labelidx{i#31915}.0 > 0)] +[visit_exp l!`%`_labelidx{i#31915}.0] +[visit_exp l!`%`_labelidx{i#31915}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#31915] +[visit_id i#31915] +[visit_exp 0] +[check_dims] catch catch*#1 instr instr*#382 l labelidx#43 labelidx#45 n n#1151 val +[visit_exp [`HANDLER_%{%}%`_instr{n#1151, `catch*#1`, `instr*#382`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#43}(l)] ++ instr*{instr <- `instr*`})]] +[visit_exp `HANDLER_%{%}%`_instr{n#1151, `catch*#1`, `instr*#382`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#43}(l)] ++ instr*{instr <- `instr*`})] +[visit_exp n#1151] +[visit_id n#1151] +[visit_exp `catch*#1`] +[visit_id catch*#1] +[visit_exp `instr*#382`] +[visit_id instr*#382] +[visit_exp (n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#43}(l)] ++ instr*{instr <- `instr*`})] +[visit_exp n] +[visit_id n] +[visit_exp catch*{catch <- `catch*`}] +[scope_enter catch] +[visit_exp catch] +[visit_id catch] not free +[visit_id catch] not free +[scope_exit catch] +[visit_exp `catch*`] +[visit_id catch*] no dims +[visit_id catch*] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#43}(l)] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#43}(l)]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`BR`_instr{labelidx#43}(l)]] +[visit_exp `BR`_instr{labelidx#43}(l)] +[visit_exp labelidx#43] +[visit_id labelidx#43] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#45}(l)]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp [`BR`_instr{labelidx#45}(l)]] +[visit_exp `BR`_instr{labelidx#45}(l)] +[visit_exp labelidx#45] +[visit_id labelidx#45] +[visit_exp (l)] +[visit_exp l] +[visit_id l] not free +[check_dims] c i#31987 l labelidx#47 labelidx#49 numtype#67 +[visit_exp [`CONST`_instr{numtype#67}(`I32`_numtype, c) `BR_IF`_instr{labelidx#47}(l)]] +[visit_exp `CONST`_instr{numtype#67}(`I32`_numtype, c)] +[visit_exp numtype#67] +[visit_id numtype#67] +[visit_exp (`I32`_numtype, c)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp `BR_IF`_instr{labelidx#47}(l)] +[visit_exp labelidx#47] +[visit_id labelidx#47] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp [`BR`_instr{labelidx#49}(l)]] +[visit_exp `BR`_instr{labelidx#49}(l)] +[visit_exp labelidx#49] +[visit_id labelidx#49] +[visit_exp (l)] +[visit_exp l] +[visit_id l] not free +[visit_exp (c!`%`_num_{i#31987}.0 =/= 0)] +[visit_exp c!`%`_num_{i#31987}.0] +[visit_exp c!`%`_num_{i#31987}] +[visit_exp c] +[visit_id c] not free +[visit_exp i#31987] +[visit_id i#31987] +[visit_exp 0] +[check_dims] c i#32023 l labelidx#51 numtype#69 +[visit_exp [`CONST`_instr{numtype#69}(`I32`_numtype, c) `BR_IF`_instr{labelidx#51}(l)]] +[visit_exp `CONST`_instr{numtype#69}(`I32`_numtype, c)] +[visit_exp numtype#69] +[visit_id numtype#69] +[visit_exp (`I32`_numtype, c)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp `BR_IF`_instr{labelidx#51}(l)] +[visit_exp labelidx#51] +[visit_id labelidx#51] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp []] +[visit_exp (c!`%`_num_{i#32023}.0 = 0)] +[visit_exp c!`%`_num_{i#32023}.0] +[visit_exp c!`%`_num_{i#32023}] +[visit_exp c] +[visit_id c] not free +[visit_exp i#32023] +[visit_id i#32023] +[visit_exp 0] +[check_dims] i i#32131 i#32145 l l' labelidx#53 labelidx#55 labelidx*#50 numtype#71 +[visit_exp [`CONST`_instr{numtype#71}(`I32`_numtype, i) `BR_TABLE`_instr{`labelidx*#50`, labelidx#53}(l*{l <- `l*`}, l')]] +[visit_exp `CONST`_instr{numtype#71}(`I32`_numtype, i)] +[visit_exp numtype#71] +[visit_id numtype#71] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `BR_TABLE`_instr{`labelidx*#50`, labelidx#53}(l*{l <- `l*`}, l')] +[visit_exp `labelidx*#50`] +[visit_id labelidx*#50] +[visit_exp labelidx#53] +[visit_id labelidx#53] +[visit_exp (l*{l <- `l*`}, l')] +[visit_exp l*{l <- `l*`}] +[scope_enter l] +[visit_exp l] +[visit_id l] not free +[visit_id l] not free +[scope_exit l] +[visit_exp `l*`] +[visit_id l*] no dims +[visit_id l*] +[visit_exp l'] +[visit_id l'] +[visit_exp [`BR`_instr{labelidx#55}(l*{l <- `l*`}[i!`%`_num_{i#32131}.0])]] +[visit_exp `BR`_instr{labelidx#55}(l*{l <- `l*`}[i!`%`_num_{i#32131}.0])] +[visit_exp labelidx#55] +[visit_id labelidx#55] +[visit_exp (l*{l <- `l*`}[i!`%`_num_{i#32131}.0])] +[visit_exp l*{l <- `l*`}[i!`%`_num_{i#32131}.0]] +[visit_exp l*{l <- `l*`}] +[scope_enter l] +[visit_exp l] +[visit_id l] not free +[visit_id l] not free +[scope_exit l] +[visit_exp `l*`] +[visit_id l*] not free +[visit_id l*] no dims +[visit_exp i!`%`_num_{i#32131}.0] +[visit_exp i!`%`_num_{i#32131}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#32131] +[visit_id i#32131] +[visit_exp (i!`%`_num_{i#32145}.0 < |l*{l <- `l*`}|)] +[visit_exp i!`%`_num_{i#32145}.0] +[visit_exp i!`%`_num_{i#32145}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#32145] +[visit_id i#32145] +[visit_exp |l*{l <- `l*`}|] +[visit_exp l*{l <- `l*`}] +[scope_enter l] +[visit_exp l] +[visit_id l] not free +[visit_id l] not free +[scope_exit l] +[visit_exp `l*`] +[visit_id l*] not free +[visit_id l*] no dims +[check_dims] i i#32257 l l' labelidx#57 labelidx#59 labelidx*#52 numtype#73 +[visit_exp [`CONST`_instr{numtype#73}(`I32`_numtype, i) `BR_TABLE`_instr{`labelidx*#52`, labelidx#57}(l*{l <- `l*`}, l')]] +[visit_exp `CONST`_instr{numtype#73}(`I32`_numtype, i)] +[visit_exp numtype#73] +[visit_id numtype#73] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `BR_TABLE`_instr{`labelidx*#52`, labelidx#57}(l*{l <- `l*`}, l')] +[visit_exp `labelidx*#52`] +[visit_id labelidx*#52] +[visit_exp labelidx#57] +[visit_id labelidx#57] +[visit_exp (l*{l <- `l*`}, l')] +[visit_exp l*{l <- `l*`}] +[scope_enter l] +[visit_exp l] +[visit_id l] not free +[visit_id l] not free +[scope_exit l] +[visit_exp `l*`] +[visit_id l*] no dims +[visit_id l*] +[visit_exp l'] +[visit_id l'] +[visit_exp [`BR`_instr{labelidx#59}(l')]] +[visit_exp `BR`_instr{labelidx#59}(l')] +[visit_exp labelidx#59] +[visit_id labelidx#59] +[visit_exp (l')] +[visit_exp l'] +[visit_id l'] not free +[visit_exp (i!`%`_num_{i#32257}.0 >= |l*{l <- `l*`}|)] +[visit_exp i!`%`_num_{i#32257}.0] +[visit_exp i!`%`_num_{i#32257}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#32257] +[visit_id i#32257] +[visit_exp |l*{l <- `l*`}|] +[visit_exp l*{l <- `l*`}] +[scope_enter l] +[visit_exp l] +[visit_id l] not free +[visit_id l] not free +[scope_exit l] +[visit_exp `l*`] +[visit_id l*] not free +[visit_id l*] no dims +[check_dims] heaptype#1207 ht l labelidx#61 labelidx#63 val +[visit_exp [(val : val <: instr) `BR_ON_NULL`_instr{labelidx#61}(l)]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `BR_ON_NULL`_instr{labelidx#61}(l)] +[visit_exp labelidx#61] +[visit_id labelidx#61] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp [`BR`_instr{labelidx#63}(l)]] +[visit_exp `BR`_instr{labelidx#63}(l)] +[visit_exp labelidx#63] +[visit_id labelidx#63] +[visit_exp (l)] +[visit_exp l] +[visit_id l] not free +[visit_exp (val = `REF.NULL`_val{heaptype#1207}(ht))] +[visit_exp val] +[visit_id val] not free +[visit_exp `REF.NULL`_val{heaptype#1207}(ht)] +[visit_exp heaptype#1207] +[visit_id heaptype#1207] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[check_dims] l labelidx#65 val +[visit_exp [(val : val <: instr) `BR_ON_NULL`_instr{labelidx#65}(l)]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `BR_ON_NULL`_instr{labelidx#65}(l)] +[visit_exp labelidx#65] +[visit_id labelidx#65] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp [(val : val <: instr)]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[check_dims] heaptype#1209 ht l labelidx#67 val +[visit_exp [(val : val <: instr) `BR_ON_NON_NULL`_instr{labelidx#67}(l)]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `BR_ON_NON_NULL`_instr{labelidx#67}(l)] +[visit_exp labelidx#67] +[visit_id labelidx#67] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp []] +[visit_exp (val = `REF.NULL`_val{heaptype#1209}(ht))] +[visit_exp val] +[visit_id val] not free +[visit_exp `REF.NULL`_val{heaptype#1209}(ht)] +[visit_exp heaptype#1209] +[visit_id heaptype#1209] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[check_dims] l labelidx#69 labelidx#71 val +[visit_exp [(val : val <: instr) `BR_ON_NON_NULL`_instr{labelidx#69}(l)]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `BR_ON_NON_NULL`_instr{labelidx#69}(l)] +[visit_exp labelidx#69] +[visit_id labelidx#69] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp [(val : val <: instr) `BR`_instr{labelidx#71}(l)]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_exp `BR`_instr{labelidx#71}(l)] +[visit_exp labelidx#71] +[visit_id labelidx#71] +[visit_exp (l)] +[visit_exp l] +[visit_id l] not free +[check_dims] datatype*#22 deftype*#86 deftype*#87 elemtype*#22 f frame#819 funcidx*#59 globaltype*#23 instr*#394 l labelidx#73 labelidx#75 localtype*#25 memtype*#37 moduleinst#19 ref reftype#3439 resulttype*#33 resulttype?#30 rt rt_1 rt_2 s state#335 store#815 subtype*#21 tabletype*#30 tagtype*#22 +[visit_exp `%;%`_config{state#335, `instr*#394`}(`%;%`_state{store#815, frame#819}(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#73, reftype#3439}(l, rt_1, rt_2)])] +[visit_exp state#335] +[visit_id state#335] +[visit_exp `instr*#394`] +[visit_id instr*#394] +[visit_exp (`%;%`_state{store#815, frame#819}(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#73, reftype#3439}(l, rt_1, rt_2)])] +[visit_exp `%;%`_state{store#815, frame#819}(s, f)] +[visit_exp store#815] +[visit_id store#815] +[visit_exp frame#819] +[visit_id frame#819] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#73, reftype#3439}(l, rt_1, rt_2)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `BR_ON_CAST`_instr{labelidx#73, reftype#3439}(l, rt_1, rt_2)] +[visit_exp labelidx#73] +[visit_id labelidx#73] +[visit_exp reftype#3439] +[visit_id reftype#3439] +[visit_exp (l, rt_1, rt_2)] +[visit_exp l] +[visit_id l] +[visit_exp rt_1] +[visit_id rt_1] +[visit_exp rt_2] +[visit_id rt_2] +[visit_exp [(ref : ref <: instr) `BR`_instr{labelidx#75}(l)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] not free +[visit_exp `BR`_instr{labelidx#75}(l)] +[visit_exp labelidx#75] +[visit_id labelidx#75] +[visit_exp (l)] +[visit_exp l] +[visit_id l] not free +[visit_exp (s, ref, rt)] +[visit_exp s] +[visit_id s] not free +[visit_exp ref] +[visit_id ref] not free +[visit_exp rt] +[visit_id rt] +[visit_exp ({`TYPES`{`deftype*#86`} [], `RECS`{`subtype*#21`} [], `TAGS`{`tagtype*#22`} [], `GLOBALS`{`globaltype*#23`} [], `MEMS`{`memtype*#37`} [], `TABLES`{`tabletype*#30`} [], `FUNCS`{`deftype*#87`} [], `DATAS`{`datatype*#22`} [], `ELEMS`{`elemtype*#22`} [], `LOCALS`{`localtype*#25`} [], `LABELS`{`resulttype*#33`} [], `RETURN`{`resulttype?#30`} ?(), `REFS`{`funcidx*#59`} []}, rt, $inst_reftype(f.`MODULE`_frame{moduleinst#19}, rt_2))] +[visit_exp {`TYPES`{`deftype*#86`} [], `RECS`{`subtype*#21`} [], `TAGS`{`tagtype*#22`} [], `GLOBALS`{`globaltype*#23`} [], `MEMS`{`memtype*#37`} [], `TABLES`{`tabletype*#30`} [], `FUNCS`{`deftype*#87`} [], `DATAS`{`datatype*#22`} [], `ELEMS`{`elemtype*#22`} [], `LOCALS`{`localtype*#25`} [], `LABELS`{`resulttype*#33`} [], `RETURN`{`resulttype?#30`} ?(), `REFS`{`funcidx*#59`} []}] +[visit_exp `deftype*#86`] +[visit_id deftype*#86] +[visit_exp []] +[visit_exp `subtype*#21`] +[visit_id subtype*#21] +[visit_exp []] +[visit_exp `tagtype*#22`] +[visit_id tagtype*#22] +[visit_exp []] +[visit_exp `globaltype*#23`] +[visit_id globaltype*#23] +[visit_exp []] +[visit_exp `memtype*#37`] +[visit_id memtype*#37] +[visit_exp []] +[visit_exp `tabletype*#30`] +[visit_id tabletype*#30] +[visit_exp []] +[visit_exp `deftype*#87`] +[visit_id deftype*#87] +[visit_exp []] +[visit_exp `datatype*#22`] +[visit_id datatype*#22] +[visit_exp []] +[visit_exp `elemtype*#22`] +[visit_id elemtype*#22] +[visit_exp []] +[visit_exp `localtype*#25`] +[visit_id localtype*#25] +[visit_exp []] +[visit_exp `resulttype*#33`] +[visit_id resulttype*#33] +[visit_exp []] +[visit_exp `resulttype?#30`] +[visit_id resulttype?#30] +[visit_exp ?()] +[visit_exp `funcidx*#59`] +[visit_id funcidx*#59] +[visit_exp []] +[visit_exp rt] +[visit_id rt] not free +[visit_exp $inst_reftype(f.`MODULE`_frame{moduleinst#19}, rt_2)] +[visit_exp f.`MODULE`_frame{moduleinst#19}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#19] +[visit_id moduleinst#19] +[visit_exp rt_2] +[visit_id rt_2] not free +[check_dims] f frame#831 instr*#406 l labelidx#77 ref reftype#3442 rt_1 rt_2 s state#347 store#827 +[visit_exp `%;%`_config{state#347, `instr*#406`}(`%;%`_state{store#827, frame#831}(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#77, reftype#3442}(l, rt_1, rt_2)])] +[visit_exp state#347] +[visit_id state#347] +[visit_exp `instr*#406`] +[visit_id instr*#406] +[visit_exp (`%;%`_state{store#827, frame#831}(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#77, reftype#3442}(l, rt_1, rt_2)])] +[visit_exp `%;%`_state{store#827, frame#831}(s, f)] +[visit_exp store#827] +[visit_id store#827] +[visit_exp frame#831] +[visit_id frame#831] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#77, reftype#3442}(l, rt_1, rt_2)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `BR_ON_CAST`_instr{labelidx#77, reftype#3442}(l, rt_1, rt_2)] +[visit_exp labelidx#77] +[visit_id labelidx#77] +[visit_exp reftype#3442] +[visit_id reftype#3442] +[visit_exp (l, rt_1, rt_2)] +[visit_exp l] +[visit_id l] +[visit_exp rt_1] +[visit_id rt_1] +[visit_exp rt_2] +[visit_id rt_2] +[visit_exp [(ref : ref <: instr)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] not free +[check_dims] datatype*#23 deftype*#88 deftype*#89 elemtype*#23 f frame#843 funcidx*#60 globaltype*#24 instr*#418 l labelidx#79 localtype*#26 memtype*#38 moduleinst#20 ref reftype#3445 resulttype*#34 resulttype?#31 rt rt_1 rt_2 s state#359 store#839 subtype*#22 tabletype*#31 tagtype*#23 +[visit_exp `%;%`_config{state#359, `instr*#418`}(`%;%`_state{store#839, frame#843}(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#79, reftype#3445}(l, rt_1, rt_2)])] +[visit_exp state#359] +[visit_id state#359] +[visit_exp `instr*#418`] +[visit_id instr*#418] +[visit_exp (`%;%`_state{store#839, frame#843}(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#79, reftype#3445}(l, rt_1, rt_2)])] +[visit_exp `%;%`_state{store#839, frame#843}(s, f)] +[visit_exp store#839] +[visit_id store#839] +[visit_exp frame#843] +[visit_id frame#843] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#79, reftype#3445}(l, rt_1, rt_2)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `BR_ON_CAST_FAIL`_instr{labelidx#79, reftype#3445}(l, rt_1, rt_2)] +[visit_exp labelidx#79] +[visit_id labelidx#79] +[visit_exp reftype#3445] +[visit_id reftype#3445] +[visit_exp (l, rt_1, rt_2)] +[visit_exp l] +[visit_id l] +[visit_exp rt_1] +[visit_id rt_1] +[visit_exp rt_2] +[visit_id rt_2] +[visit_exp [(ref : ref <: instr)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] not free +[visit_exp (s, ref, rt)] +[visit_exp s] +[visit_id s] not free +[visit_exp ref] +[visit_id ref] not free +[visit_exp rt] +[visit_id rt] +[visit_exp ({`TYPES`{`deftype*#88`} [], `RECS`{`subtype*#22`} [], `TAGS`{`tagtype*#23`} [], `GLOBALS`{`globaltype*#24`} [], `MEMS`{`memtype*#38`} [], `TABLES`{`tabletype*#31`} [], `FUNCS`{`deftype*#89`} [], `DATAS`{`datatype*#23`} [], `ELEMS`{`elemtype*#23`} [], `LOCALS`{`localtype*#26`} [], `LABELS`{`resulttype*#34`} [], `RETURN`{`resulttype?#31`} ?(), `REFS`{`funcidx*#60`} []}, rt, $inst_reftype(f.`MODULE`_frame{moduleinst#20}, rt_2))] +[visit_exp {`TYPES`{`deftype*#88`} [], `RECS`{`subtype*#22`} [], `TAGS`{`tagtype*#23`} [], `GLOBALS`{`globaltype*#24`} [], `MEMS`{`memtype*#38`} [], `TABLES`{`tabletype*#31`} [], `FUNCS`{`deftype*#89`} [], `DATAS`{`datatype*#23`} [], `ELEMS`{`elemtype*#23`} [], `LOCALS`{`localtype*#26`} [], `LABELS`{`resulttype*#34`} [], `RETURN`{`resulttype?#31`} ?(), `REFS`{`funcidx*#60`} []}] +[visit_exp `deftype*#88`] +[visit_id deftype*#88] +[visit_exp []] +[visit_exp `subtype*#22`] +[visit_id subtype*#22] +[visit_exp []] +[visit_exp `tagtype*#23`] +[visit_id tagtype*#23] +[visit_exp []] +[visit_exp `globaltype*#24`] +[visit_id globaltype*#24] +[visit_exp []] +[visit_exp `memtype*#38`] +[visit_id memtype*#38] +[visit_exp []] +[visit_exp `tabletype*#31`] +[visit_id tabletype*#31] +[visit_exp []] +[visit_exp `deftype*#89`] +[visit_id deftype*#89] +[visit_exp []] +[visit_exp `datatype*#23`] +[visit_id datatype*#23] +[visit_exp []] +[visit_exp `elemtype*#23`] +[visit_id elemtype*#23] +[visit_exp []] +[visit_exp `localtype*#26`] +[visit_id localtype*#26] +[visit_exp []] +[visit_exp `resulttype*#34`] +[visit_id resulttype*#34] +[visit_exp []] +[visit_exp `resulttype?#31`] +[visit_id resulttype?#31] +[visit_exp ?()] +[visit_exp `funcidx*#60`] +[visit_id funcidx*#60] +[visit_exp []] +[visit_exp rt] +[visit_id rt] not free +[visit_exp $inst_reftype(f.`MODULE`_frame{moduleinst#20}, rt_2)] +[visit_exp f.`MODULE`_frame{moduleinst#20}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#20] +[visit_id moduleinst#20] +[visit_exp rt_2] +[visit_id rt_2] not free +[check_dims] f frame#855 instr*#430 l labelidx#81 labelidx#83 ref reftype#3448 rt_1 rt_2 s state#371 store#851 +[visit_exp `%;%`_config{state#371, `instr*#430`}(`%;%`_state{store#851, frame#855}(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#81, reftype#3448}(l, rt_1, rt_2)])] +[visit_exp state#371] +[visit_id state#371] +[visit_exp `instr*#430`] +[visit_id instr*#430] +[visit_exp (`%;%`_state{store#851, frame#855}(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#81, reftype#3448}(l, rt_1, rt_2)])] +[visit_exp `%;%`_state{store#851, frame#855}(s, f)] +[visit_exp store#851] +[visit_id store#851] +[visit_exp frame#855] +[visit_id frame#855] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#81, reftype#3448}(l, rt_1, rt_2)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `BR_ON_CAST_FAIL`_instr{labelidx#81, reftype#3448}(l, rt_1, rt_2)] +[visit_exp labelidx#81] +[visit_id labelidx#81] +[visit_exp reftype#3448] +[visit_id reftype#3448] +[visit_exp (l, rt_1, rt_2)] +[visit_exp l] +[visit_id l] +[visit_exp rt_1] +[visit_id rt_1] +[visit_exp rt_2] +[visit_id rt_2] +[visit_exp [(ref : ref <: instr) `BR`_instr{labelidx#83}(l)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] not free +[visit_exp `BR`_instr{labelidx#83}(l)] +[visit_exp labelidx#83] +[visit_id labelidx#83] +[visit_exp (l)] +[visit_exp l] +[visit_id l] not free +[check_dims] a deftype#5 funcaddr#7 funcaddr*#2 funcidx#2837 i#32425 instr*#442 state#383 typeuse#35 x z +[visit_exp `%;%`_config{state#383, `instr*#442`}(z, [`CALL`_instr{funcidx#2837}(x)])] +[visit_exp state#383] +[visit_id state#383] +[visit_exp `instr*#442`] +[visit_id instr*#442] +[visit_exp (z, [`CALL`_instr{funcidx#2837}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CALL`_instr{funcidx#2837}(x)]] +[visit_exp `CALL`_instr{funcidx#2837}(x)] +[visit_exp funcidx#2837] +[visit_id funcidx#2837] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#7}(a) `CALL_REF`_instr{typeuse#35}(($funcinst(z)[a].`TYPE`_funcinst{deftype#5} : deftype <: typeuse))]] +[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#7}(a)] +[visit_exp funcaddr#7] +[visit_id funcaddr#7] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CALL_REF`_instr{typeuse#35}(($funcinst(z)[a].`TYPE`_funcinst{deftype#5} : deftype <: typeuse))] +[visit_exp typeuse#35] +[visit_id typeuse#35] +[visit_exp (($funcinst(z)[a].`TYPE`_funcinst{deftype#5} : deftype <: typeuse))] +[visit_exp ($funcinst(z)[a].`TYPE`_funcinst{deftype#5} : deftype <: typeuse)] +[visit_exp $funcinst(z)[a].`TYPE`_funcinst{deftype#5}] +[visit_exp $funcinst(z)[a]] +[visit_exp $funcinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp deftype#5] +[visit_id deftype#5] +[visit_exp ($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#2`}[x!`%`_idx{i#32425}.0] = a)] +[visit_exp $moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#2`}[x!`%`_idx{i#32425}.0]] +[visit_exp $moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#2`}] +[visit_exp $moduleinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp `funcaddr*#2`] +[visit_id funcaddr*#2] +[visit_exp x!`%`_idx{i#32425}.0] +[visit_exp x!`%`_idx{i#32425}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#32425] +[visit_id i#32425] +[visit_exp a] +[visit_id a] not free +[check_dims] heaptype#1307 ht instr*#454 state#395 typeuse#37 yy z +[visit_exp `%;%`_config{state#395, `instr*#454`}(z, [`REF.NULL`_instr{heaptype#1307}(ht) `CALL_REF`_instr{typeuse#37}(yy)])] +[visit_exp state#395] +[visit_id state#395] +[visit_exp `instr*#454`] +[visit_id instr*#454] +[visit_exp (z, [`REF.NULL`_instr{heaptype#1307}(ht) `CALL_REF`_instr{typeuse#37}(yy)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.NULL`_instr{heaptype#1307}(ht) `CALL_REF`_instr{typeuse#37}(yy)]] +[visit_exp `REF.NULL`_instr{heaptype#1307}(ht)] +[visit_exp heaptype#1307] +[visit_id heaptype#1307] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `CALL_REF`_instr{typeuse#37}(yy)] +[visit_exp typeuse#37] +[visit_id typeuse#37] +[visit_exp (yy)] +[visit_exp yy] +[visit_id yy] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] X*#12499 X*#12512 a deftype#6 expr#4155 f fi frame#887 funcaddr#9 funccode#1 instr instr*#466 instr*#468 instr*#470 local*#1221 m moduleinst#21 moduleinst#22 n n#1153 n#1155 resulttype#2997 state#407 t t_1 t_2 typeidx#1553 typeuse#39 val val?*#4 valtype#755 x yy z +[visit_exp `%;%`_config{state#407, `instr*#466`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#9}(a) `CALL_REF`_instr{typeuse#39}(yy)])] +[visit_exp state#407] +[visit_id state#407] +[visit_exp `instr*#466`] +[visit_id instr*#466] +[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#9}(a) `CALL_REF`_instr{typeuse#39}(yy)])] +[visit_exp z] +[visit_id z] +[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#9}(a) `CALL_REF`_instr{typeuse#39}(yy)]] +[visit_exp (val : val <: instr)^n{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#9}(a) `CALL_REF`_instr{typeuse#39}(yy)]] +[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#9}(a)] +[visit_exp funcaddr#9] +[visit_id funcaddr#9] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CALL_REF`_instr{typeuse#39}(yy)] +[visit_exp typeuse#39] +[visit_id typeuse#39] +[visit_exp (yy)] +[visit_exp yy] +[visit_id yy] +[visit_exp [`FRAME_%{%}%`_instr{n#1153, frame#887, `instr*#468`}(m, f, [`LABEL_%{%}%`_instr{n#1155, `instr*#470`}(m, [], instr*{instr <- `instr*`})])]] +[visit_exp `FRAME_%{%}%`_instr{n#1153, frame#887, `instr*#468`}(m, f, [`LABEL_%{%}%`_instr{n#1155, `instr*#470`}(m, [], instr*{instr <- `instr*`})])] +[visit_exp n#1153] +[visit_id n#1153] +[visit_exp frame#887] +[visit_id frame#887] +[visit_exp `instr*#468`] +[visit_id instr*#468] +[visit_exp (m, f, [`LABEL_%{%}%`_instr{n#1155, `instr*#470`}(m, [], instr*{instr <- `instr*`})])] +[visit_exp m] +[visit_id m] +[visit_exp f] +[visit_id f] +[visit_exp [`LABEL_%{%}%`_instr{n#1155, `instr*#470`}(m, [], instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr{n#1155, `instr*#470`}(m, [], instr*{instr <- `instr*`})] +[visit_exp n#1155] +[visit_id n#1155] +[visit_exp `instr*#470`] +[visit_id instr*#470] +[visit_exp (m, [], instr*{instr <- `instr*`})] +[visit_exp m] +[visit_id m] not free +[visit_exp []] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp ($funcinst(z)[a] = fi)] +[visit_exp $funcinst(z)[a]] +[visit_exp $funcinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp fi] +[visit_id fi] +[visit_exp (fi.`TYPE`_funcinst{deftype#6}, `FUNC%->%`_comptype{resulttype#2997}(`%`_resulttype{`X*#12499`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12512`}(t_2^m{t_2 <- `t_2*`})))] +[visit_exp fi.`TYPE`_funcinst{deftype#6}] +[visit_exp fi] +[visit_id fi] not free +[visit_exp deftype#6] +[visit_id deftype#6] +[visit_exp `FUNC%->%`_comptype{resulttype#2997}(`%`_resulttype{`X*#12499`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12512`}(t_2^m{t_2 <- `t_2*`}))] +[visit_exp resulttype#2997] +[visit_id resulttype#2997] +[visit_exp (`%`_resulttype{`X*#12499`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12512`}(t_2^m{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#12499`}(t_1^n{t_1 <- `t_1*`})] +[visit_exp `X*#12499`] +[visit_id X*#12499] +[visit_exp (t_1^n{t_1 <- `t_1*`})] +[visit_exp t_1^n{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp n] +[visit_id n] not free +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp `%`_resulttype{`X*#12512`}(t_2^m{t_2 <- `t_2*`})] +[visit_exp `X*#12512`] +[visit_id X*#12512] +[visit_exp (t_2^m{t_2 <- `t_2*`})] +[visit_exp t_2^m{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp m] +[visit_id m] not free +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (fi.`CODE`_funcinst{funccode#1} = `FUNC`_funccode{typeidx#1553, `local*#1221`, expr#4155}(x, `LOCAL`_local{valtype#755}(t)*{t <- `t*`, valtype#755 <- `valtype#755*`}, instr*{instr <- `instr*`}))] +[visit_exp fi.`CODE`_funcinst{funccode#1}] +[visit_exp fi] +[visit_id fi] not free +[visit_exp funccode#1] +[visit_id funccode#1] +[visit_exp `FUNC`_funccode{typeidx#1553, `local*#1221`, expr#4155}(x, `LOCAL`_local{valtype#755}(t)*{t <- `t*`, valtype#755 <- `valtype#755*`}, instr*{instr <- `instr*`})] +[visit_exp typeidx#1553] +[visit_id typeidx#1553] +[visit_exp `local*#1221`] +[visit_id local*#1221] +[visit_exp expr#4155] +[visit_id expr#4155] +[visit_exp (x, `LOCAL`_local{valtype#755}(t)*{t <- `t*`, valtype#755 <- `valtype#755*`}, instr*{instr <- `instr*`})] +[visit_exp x] +[visit_id x] +[visit_exp `LOCAL`_local{valtype#755}(t)*{t <- `t*`, valtype#755 <- `valtype#755*`}] +[scope_enter t] +[scope_enter valtype#755] +[visit_exp `LOCAL`_local{valtype#755}(t)] +[visit_exp valtype#755] +[visit_id valtype#755] not free +[visit_exp (t)] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[visit_id valtype#755] not free +[scope_exit valtype#755] +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp `valtype#755*`] +[visit_id valtype#755*] no dims +[visit_id valtype#755*] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp (f = {`LOCALS`{`val?*#4`} ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, `MODULE`{moduleinst#22} fi.`MODULE`_funcinst{moduleinst#21}})] +[visit_exp f] +[visit_id f] not free +[visit_exp {`LOCALS`{`val?*#4`} ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, `MODULE`{moduleinst#22} fi.`MODULE`_funcinst{moduleinst#21}}] +[visit_exp `val?*#4`] +[visit_id val?*#4] +[visit_exp ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}] +[visit_exp ?(val)^n{val <- `val*`}] +[scope_enter val] +[visit_exp ?(val)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] not free +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp $default_(t)*{t <- `t*`}] +[scope_enter t] +[visit_exp $default_(t)] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp moduleinst#22] +[visit_id moduleinst#22] +[visit_exp fi.`MODULE`_funcinst{moduleinst#21}] +[visit_exp fi] +[visit_id fi] not free +[visit_exp moduleinst#21] +[visit_id moduleinst#21] +[check_dims] a deftype#7 funcaddr#11 funcaddr*#3 funcidx#2839 i#32463 instr*#483 state#419 typeuse#41 x z +[visit_exp `%;%`_config{state#419, `instr*#483`}(z, [`RETURN_CALL`_instr{funcidx#2839}(x)])] +[visit_exp state#419] +[visit_id state#419] +[visit_exp `instr*#483`] +[visit_id instr*#483] +[visit_exp (z, [`RETURN_CALL`_instr{funcidx#2839}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`RETURN_CALL`_instr{funcidx#2839}(x)]] +[visit_exp `RETURN_CALL`_instr{funcidx#2839}(x)] +[visit_exp funcidx#2839] +[visit_id funcidx#2839] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#11}(a) `RETURN_CALL_REF`_instr{typeuse#41}(($funcinst(z)[a].`TYPE`_funcinst{deftype#7} : deftype <: typeuse))]] +[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#11}(a)] +[visit_exp funcaddr#11] +[visit_id funcaddr#11] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `RETURN_CALL_REF`_instr{typeuse#41}(($funcinst(z)[a].`TYPE`_funcinst{deftype#7} : deftype <: typeuse))] +[visit_exp typeuse#41] +[visit_id typeuse#41] +[visit_exp (($funcinst(z)[a].`TYPE`_funcinst{deftype#7} : deftype <: typeuse))] +[visit_exp ($funcinst(z)[a].`TYPE`_funcinst{deftype#7} : deftype <: typeuse)] +[visit_exp $funcinst(z)[a].`TYPE`_funcinst{deftype#7}] +[visit_exp $funcinst(z)[a]] +[visit_exp $funcinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp deftype#7] +[visit_id deftype#7] +[visit_exp ($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#3`}[x!`%`_idx{i#32463}.0] = a)] +[visit_exp $moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#3`}[x!`%`_idx{i#32463}.0]] +[visit_exp $moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#3`}] +[visit_exp $moduleinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp `funcaddr*#3`] +[visit_id funcaddr*#3] +[visit_exp x!`%`_idx{i#32463}.0] +[visit_exp x!`%`_idx{i#32463}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#32463] +[visit_id i#32463] +[visit_exp a] +[visit_id a] not free +[check_dims] instr instr' instr*#495 instr*#497 k n#1163 state#431 typeuse#43 typeuse#45 val yy z +[visit_exp `%;%`_config{state#431, `instr*#495`}(z, [`LABEL_%{%}%`_instr{n#1163, `instr*#497`}(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`})])] +[visit_exp state#431] +[visit_id state#431] +[visit_exp `instr*#495`] +[visit_id instr*#495] +[visit_exp (z, [`LABEL_%{%}%`_instr{n#1163, `instr*#497`}(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`})])] +[visit_exp z] +[visit_id z] +[visit_exp [`LABEL_%{%}%`_instr{n#1163, `instr*#497`}(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr{n#1163, `instr*#497`}(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp n#1163] +[visit_id n#1163] +[visit_exp `instr*#497`] +[visit_id instr*#497] +[visit_exp (k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp k] +[visit_id k] +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] no dims +[visit_id instr'*] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`RETURN_CALL_REF`_instr{typeuse#43}(yy)]] +[visit_exp `RETURN_CALL_REF`_instr{typeuse#43}(yy)] +[visit_exp typeuse#43] +[visit_id typeuse#43] +[visit_exp (yy)] +[visit_exp yy] +[visit_id yy] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#45}(yy)]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp [`RETURN_CALL_REF`_instr{typeuse#45}(yy)]] +[visit_exp `RETURN_CALL_REF`_instr{typeuse#45}(yy)] +[visit_exp typeuse#45] +[visit_id typeuse#45] +[visit_exp (yy)] +[visit_exp yy] +[visit_id yy] not free +[check_dims] catch catch*#3 instr instr*#510 instr*#512 k n#1165 state#443 typeuse#47 typeuse#49 val yy z +[visit_exp `%;%`_config{state#443, `instr*#510`}(z, [`HANDLER_%{%}%`_instr{n#1165, `catch*#3`, `instr*#512`}(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`})])] +[visit_exp state#443] +[visit_id state#443] +[visit_exp `instr*#510`] +[visit_id instr*#510] +[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1165, `catch*#3`, `instr*#512`}(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`})])] +[visit_exp z] +[visit_id z] +[visit_exp [`HANDLER_%{%}%`_instr{n#1165, `catch*#3`, `instr*#512`}(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`})]] +[visit_exp `HANDLER_%{%}%`_instr{n#1165, `catch*#3`, `instr*#512`}(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp n#1165] +[visit_id n#1165] +[visit_exp `catch*#3`] +[visit_id catch*#3] +[visit_exp `instr*#512`] +[visit_id instr*#512] +[visit_exp (k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp k] +[visit_id k] +[visit_exp catch*{catch <- `catch*`}] +[scope_enter catch] +[visit_exp catch] +[visit_id catch] not free +[visit_id catch] not free +[scope_exit catch] +[visit_exp `catch*`] +[visit_id catch*] no dims +[visit_id catch*] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`RETURN_CALL_REF`_instr{typeuse#47}(yy)]] +[visit_exp `RETURN_CALL_REF`_instr{typeuse#47}(yy)] +[visit_exp typeuse#47] +[visit_id typeuse#47] +[visit_exp (yy)] +[visit_exp yy] +[visit_id yy] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#49}(yy)]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp [`RETURN_CALL_REF`_instr{typeuse#49}(yy)]] +[visit_exp `RETURN_CALL_REF`_instr{typeuse#49}(yy)] +[visit_exp typeuse#49] +[visit_id typeuse#49] +[visit_exp (yy)] +[visit_exp yy] +[visit_id yy] not free +[check_dims] f frame#931 heaptype#1309 ht instr instr*#524 instr*#526 k n#1167 state#455 typeuse#51 val yy z +[visit_exp `%;%`_config{state#455, `instr*#524`}(z, [`FRAME_%{%}%`_instr{n#1167, frame#931, `instr*#526`}(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`})])] +[visit_exp state#455] +[visit_id state#455] +[visit_exp `instr*#524`] +[visit_id instr*#524] +[visit_exp (z, [`FRAME_%{%}%`_instr{n#1167, frame#931, `instr*#526`}(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`})])] +[visit_exp z] +[visit_id z] +[visit_exp [`FRAME_%{%}%`_instr{n#1167, frame#931, `instr*#526`}(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`})]] +[visit_exp `FRAME_%{%}%`_instr{n#1167, frame#931, `instr*#526`}(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp n#1167] +[visit_id n#1167] +[visit_exp frame#931] +[visit_id frame#931] +[visit_exp `instr*#526`] +[visit_id instr*#526] +[visit_exp (k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp k] +[visit_id k] +[visit_exp f] +[visit_id f] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`REF.NULL`_instr{heaptype#1309}(ht)]] +[visit_exp `REF.NULL`_instr{heaptype#1309}(ht)] +[visit_exp heaptype#1309] +[visit_id heaptype#1309] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp [`RETURN_CALL_REF`_instr{typeuse#51}(yy)]] +[visit_exp `RETURN_CALL_REF`_instr{typeuse#51}(yy)] +[visit_exp typeuse#51] +[visit_id typeuse#51] +[visit_exp (yy)] +[visit_exp yy] +[visit_id yy] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] X*#12527 X*#12540 a deftype#8 f frame#939 funcaddr#13 funcaddr#15 instr instr*#538 instr*#540 k m n n#1169 resulttype#3000 state#467 t_1 t_2 typeuse#53 typeuse#55 val val' yy z +[visit_exp `%;%`_config{state#467, `instr*#538`}(z, [`FRAME_%{%}%`_instr{n#1169, frame#939, `instr*#540`}(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`})])] +[visit_exp state#467] +[visit_id state#467] +[visit_exp `instr*#538`] +[visit_id instr*#538] +[visit_exp (z, [`FRAME_%{%}%`_instr{n#1169, frame#939, `instr*#540`}(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`})])] +[visit_exp z] +[visit_id z] +[visit_exp [`FRAME_%{%}%`_instr{n#1169, frame#939, `instr*#540`}(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`})]] +[visit_exp `FRAME_%{%}%`_instr{n#1169, frame#939, `instr*#540`}(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp n#1169] +[visit_id n#1169] +[visit_exp frame#939] +[visit_id frame#939] +[visit_exp `instr*#540`] +[visit_id instr*#540] +[visit_exp (k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp k] +[visit_id k] +[visit_exp f] +[visit_id f] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`}] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)]] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)]] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`}] +[visit_exp (val' : val <: instr)*{val' <- `val'*`}] +[scope_enter val'] +[visit_exp (val' : val <: instr)] +[visit_exp val'] +[visit_id val'] not free +[visit_id val'] not free +[scope_exit val'] +[visit_exp `val'*`] +[visit_id val'*] no dims +[visit_id val'*] +[visit_exp (val : val <: instr)^n{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)]] +[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#13}(a)] +[visit_exp funcaddr#13] +[visit_id funcaddr#13] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp [`RETURN_CALL_REF`_instr{typeuse#53}(yy)]] +[visit_exp `RETURN_CALL_REF`_instr{typeuse#53}(yy)] +[visit_exp typeuse#53] +[visit_id typeuse#53] +[visit_exp (yy)] +[visit_exp yy] +[visit_id yy] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#15}(a) `CALL_REF`_instr{typeuse#55}(yy)]] +[visit_exp (val : val <: instr)^n{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] not free +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#15}(a) `CALL_REF`_instr{typeuse#55}(yy)]] +[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#15}(a)] +[visit_exp funcaddr#15] +[visit_id funcaddr#15] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `CALL_REF`_instr{typeuse#55}(yy)] +[visit_exp typeuse#55] +[visit_id typeuse#55] +[visit_exp (yy)] +[visit_exp yy] +[visit_id yy] not free +[visit_exp ($funcinst(z)[a].`TYPE`_funcinst{deftype#8}, `FUNC%->%`_comptype{resulttype#3000}(`%`_resulttype{`X*#12527`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12540`}(t_2^m{t_2 <- `t_2*`})))] +[visit_exp $funcinst(z)[a].`TYPE`_funcinst{deftype#8}] +[visit_exp $funcinst(z)[a]] +[visit_exp $funcinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp deftype#8] +[visit_id deftype#8] +[visit_exp `FUNC%->%`_comptype{resulttype#3000}(`%`_resulttype{`X*#12527`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12540`}(t_2^m{t_2 <- `t_2*`}))] +[visit_exp resulttype#3000] +[visit_id resulttype#3000] +[visit_exp (`%`_resulttype{`X*#12527`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12540`}(t_2^m{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#12527`}(t_1^n{t_1 <- `t_1*`})] +[visit_exp `X*#12527`] +[visit_id X*#12527] +[visit_exp (t_1^n{t_1 <- `t_1*`})] +[visit_exp t_1^n{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp n] +[visit_id n] not free +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp `%`_resulttype{`X*#12540`}(t_2^m{t_2 <- `t_2*`})] +[visit_exp `X*#12540`] +[visit_id X*#12540] +[visit_exp (t_2^m{t_2 <- `t_2*`})] +[visit_exp t_2^m{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp m] +[visit_id m] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[check_dims] heaptype#1321 null?#1303 reftype#3451 tableidx#49 tableidx#51 typeuse#57 typeuse#59 x yy +[visit_exp [`CALL_INDIRECT`_instr{tableidx#49, typeuse#57}(x, yy)]] +[visit_exp `CALL_INDIRECT`_instr{tableidx#49, typeuse#57}(x, yy)] +[visit_exp tableidx#49] +[visit_id tableidx#49] +[visit_exp typeuse#57] +[visit_id typeuse#57] +[visit_exp (x, yy)] +[visit_exp x] +[visit_id x] +[visit_exp yy] +[visit_id yy] +[visit_exp [`TABLE.GET`_instr{tableidx#51}(x) `REF.CAST`_instr{reftype#3451}(`REF`_reftype{`null?#1303`, heaptype#1321}(?(`NULL`_null), (yy : typeuse <: heaptype))) `CALL_REF`_instr{typeuse#59}(yy)]] +[visit_exp `TABLE.GET`_instr{tableidx#51}(x)] +[visit_exp tableidx#51] +[visit_id tableidx#51] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `REF.CAST`_instr{reftype#3451}(`REF`_reftype{`null?#1303`, heaptype#1321}(?(`NULL`_null), (yy : typeuse <: heaptype)))] +[visit_exp reftype#3451] +[visit_id reftype#3451] +[visit_exp (`REF`_reftype{`null?#1303`, heaptype#1321}(?(`NULL`_null), (yy : typeuse <: heaptype)))] +[visit_exp `REF`_reftype{`null?#1303`, heaptype#1321}(?(`NULL`_null), (yy : typeuse <: heaptype))] +[visit_exp `null?#1303`] +[visit_id null?#1303] +[visit_exp heaptype#1321] +[visit_id heaptype#1321] +[visit_exp (?(`NULL`_null), (yy : typeuse <: heaptype))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp (yy : typeuse <: heaptype)] +[visit_exp yy] +[visit_id yy] not free +[visit_exp `CALL_REF`_instr{typeuse#59}(yy)] +[visit_exp typeuse#59] +[visit_id typeuse#59] +[visit_exp (yy)] +[visit_exp yy] +[visit_id yy] not free +[check_dims] heaptype#1333 null?#1315 reftype#3453 tableidx#53 tableidx#55 typeuse#61 typeuse#63 x yy +[visit_exp [`RETURN_CALL_INDIRECT`_instr{tableidx#53, typeuse#61}(x, yy)]] +[visit_exp `RETURN_CALL_INDIRECT`_instr{tableidx#53, typeuse#61}(x, yy)] +[visit_exp tableidx#53] +[visit_id tableidx#53] +[visit_exp typeuse#61] +[visit_id typeuse#61] +[visit_exp (x, yy)] +[visit_exp x] +[visit_id x] +[visit_exp yy] +[visit_id yy] +[visit_exp [`TABLE.GET`_instr{tableidx#55}(x) `REF.CAST`_instr{reftype#3453}(`REF`_reftype{`null?#1315`, heaptype#1333}(?(`NULL`_null), (yy : typeuse <: heaptype))) `RETURN_CALL_REF`_instr{typeuse#63}(yy)]] +[visit_exp `TABLE.GET`_instr{tableidx#55}(x)] +[visit_exp tableidx#55] +[visit_id tableidx#55] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `REF.CAST`_instr{reftype#3453}(`REF`_reftype{`null?#1315`, heaptype#1333}(?(`NULL`_null), (yy : typeuse <: heaptype)))] +[visit_exp reftype#3453] +[visit_id reftype#3453] +[visit_exp (`REF`_reftype{`null?#1315`, heaptype#1333}(?(`NULL`_null), (yy : typeuse <: heaptype)))] +[visit_exp `REF`_reftype{`null?#1315`, heaptype#1333}(?(`NULL`_null), (yy : typeuse <: heaptype))] +[visit_exp `null?#1315`] +[visit_id null?#1315] +[visit_exp heaptype#1333] +[visit_id heaptype#1333] +[visit_exp (?(`NULL`_null), (yy : typeuse <: heaptype))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp (yy : typeuse <: heaptype)] +[visit_exp yy] +[visit_id yy] not free +[visit_exp `RETURN_CALL_REF`_instr{typeuse#63}(yy)] +[visit_exp typeuse#63] +[visit_id typeuse#63] +[visit_exp (yy)] +[visit_exp yy] +[visit_id yy] not free +[check_dims] f frame#947 instr*#542 n n#1177 val +[visit_exp [`FRAME_%{%}%`_instr{n#1177, frame#947, `instr*#542`}(n, f, (val : val <: instr)^n{val <- `val*`})]] +[visit_exp `FRAME_%{%}%`_instr{n#1177, frame#947, `instr*#542`}(n, f, (val : val <: instr)^n{val <- `val*`})] +[visit_exp n#1177] +[visit_id n#1177] +[visit_exp frame#947] +[visit_id frame#947] +[visit_exp `instr*#542`] +[visit_id instr*#542] +[visit_exp (n, f, (val : val <: instr)^n{val <- `val*`})] +[visit_exp n] +[visit_id n] +[visit_exp f] +[visit_id f] +[visit_exp (val : val <: instr)^n{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] not free +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp (val : val <: instr)^n{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] not free +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[check_dims] f frame#949 instr instr*#544 n n#1179 val val' +[visit_exp [`FRAME_%{%}%`_instr{n#1179, frame#949, `instr*#544`}(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})]] +[visit_exp `FRAME_%{%}%`_instr{n#1179, frame#949, `instr*#544`}(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] +[visit_exp n#1179] +[visit_id n#1179] +[visit_exp frame#949] +[visit_id frame#949] +[visit_exp `instr*#544`] +[visit_id instr*#544] +[visit_exp (n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] +[visit_exp n] +[visit_id n] +[visit_exp f] +[visit_id f] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`}] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr]] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`}] +[visit_exp (val' : val <: instr)*{val' <- `val'*`}] +[scope_enter val'] +[visit_exp (val' : val <: instr)] +[visit_exp val'] +[visit_id val'] not free +[visit_id val'] not free +[scope_exit val'] +[visit_exp `val'*`] +[visit_id val'*] no dims +[visit_id val'*] +[visit_exp (val : val <: instr)^n{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] not free +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`RETURN`_instr]] +[visit_exp `RETURN`_instr] +[visit_exp ()] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp (val : val <: instr)^n{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] not free +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[check_dims] instr instr' instr*#546 n n#1181 val +[visit_exp [`LABEL_%{%}%`_instr{n#1181, `instr*#546`}(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr{n#1181, `instr*#546`}(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] +[visit_exp n#1181] +[visit_id n#1181] +[visit_exp `instr*#546`] +[visit_id instr*#546] +[visit_exp (n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] +[visit_exp n] +[visit_id n] +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] no dims +[visit_id instr'*] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`RETURN`_instr]] +[visit_exp `RETURN`_instr] +[visit_exp ()] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp [`RETURN`_instr]] +[visit_exp `RETURN`_instr] +[visit_exp ()] +[check_dims] catch catch*#5 instr instr*#549 n n#1183 val +[visit_exp [`HANDLER_%{%}%`_instr{n#1183, `catch*#5`, `instr*#549`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})]] +[visit_exp `HANDLER_%{%}%`_instr{n#1183, `catch*#5`, `instr*#549`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] +[visit_exp n#1183] +[visit_id n#1183] +[visit_exp `catch*#5`] +[visit_id catch*#5] +[visit_exp `instr*#549`] +[visit_id instr*#549] +[visit_exp (n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] +[visit_exp n] +[visit_id n] +[visit_exp catch*{catch <- `catch*`}] +[scope_enter catch] +[visit_exp catch] +[visit_id catch] not free +[visit_id catch] not free +[scope_exit catch] +[visit_exp `catch*`] +[visit_id catch*] no dims +[visit_id catch*] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`RETURN`_instr]] +[visit_exp `RETURN`_instr] +[visit_exp ()] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp [`RETURN`_instr]] +[visit_exp `RETURN`_instr] +[visit_exp ()] +[check_dims] X*#12555 X*#12578 a exn exnaddr#3 i#32555 instr*#561 instr*#573 n resulttype#3003 state#479 state#491 t tagaddr#5 tagidx#11 tagtype#180 val val*#1 x z +[visit_exp `%;%`_config{state#479, `instr*#561`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr{tagidx#11}(x)])] +[visit_exp state#479] +[visit_id state#479] +[visit_exp `instr*#561`] +[visit_id instr*#561] +[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr{tagidx#11}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr{tagidx#11}(x)]] +[visit_exp (val : val <: instr)^n{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`THROW`_instr{tagidx#11}(x)]] +[visit_exp `THROW`_instr{tagidx#11}(x)] +[visit_exp tagidx#11] +[visit_id tagidx#11] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#491, `instr*#573`}($add_exninst(z, [exn]), [`REF.EXN_ADDR`_instr{exnaddr#3}(a) `THROW_REF`_instr])] +[visit_exp state#491] +[visit_id state#491] +[visit_exp `instr*#573`] +[visit_id instr*#573] +[visit_exp ($add_exninst(z, [exn]), [`REF.EXN_ADDR`_instr{exnaddr#3}(a) `THROW_REF`_instr])] +[visit_exp $add_exninst(z, [exn])] +[visit_exp z] +[visit_id z] not free +[visit_exp [exn]] +[visit_exp exn] +[visit_id exn] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#3}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#3}(a)] +[visit_exp exnaddr#3] +[visit_id exnaddr#3] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_exp ($as_deftype($tag(z, x).`TYPE`_taginst{tagtype#180}), `FUNC%->%`_comptype{resulttype#3003}(`%`_resulttype{`X*#12555`}(t^n{t <- `t*`}), `%`_resulttype{`X*#12578`}([])))] +[visit_exp $as_deftype($tag(z, x).`TYPE`_taginst{tagtype#180})] +[visit_exp $tag(z, x).`TYPE`_taginst{tagtype#180}] +[visit_exp $tag(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp tagtype#180] +[visit_id tagtype#180] +[visit_exp `FUNC%->%`_comptype{resulttype#3003}(`%`_resulttype{`X*#12555`}(t^n{t <- `t*`}), `%`_resulttype{`X*#12578`}([]))] +[visit_exp resulttype#3003] +[visit_id resulttype#3003] +[visit_exp (`%`_resulttype{`X*#12555`}(t^n{t <- `t*`}), `%`_resulttype{`X*#12578`}([]))] +[visit_exp `%`_resulttype{`X*#12555`}(t^n{t <- `t*`})] +[visit_exp `X*#12555`] +[visit_id X*#12555] +[visit_exp (t^n{t <- `t*`})] +[visit_exp t^n{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp n] +[visit_id n] not free +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp `%`_resulttype{`X*#12578`}([])] +[visit_exp `X*#12578`] +[visit_id X*#12578] +[visit_exp ([])] +[visit_exp []] +[visit_exp (a = |$exninst(z)|)] +[visit_exp a] +[visit_id a] not free +[visit_exp |$exninst(z)|] +[visit_exp $exninst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp (exn = {`TAG`{tagaddr#5} $tagaddr(z)[x!`%`_idx{i#32555}.0], `FIELDS`{`val*#1`} val^n{val <- `val*`}})] +[visit_exp exn] +[visit_id exn] not free +[visit_exp {`TAG`{tagaddr#5} $tagaddr(z)[x!`%`_idx{i#32555}.0], `FIELDS`{`val*#1`} val^n{val <- `val*`}}] +[visit_exp tagaddr#5] +[visit_id tagaddr#5] +[visit_exp $tagaddr(z)[x!`%`_idx{i#32555}.0]] +[visit_exp $tagaddr(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp x!`%`_idx{i#32555}.0] +[visit_exp x!`%`_idx{i#32555}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#32555] +[visit_id i#32555] +[visit_exp `val*#1`] +[visit_id val*#1] +[visit_exp val^n{val <- `val*`}] +[scope_enter val] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] not free +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[check_dims] heaptype#1335 ht instr*#585 state#503 z +[visit_exp `%;%`_config{state#503, `instr*#585`}(z, [`REF.NULL`_instr{heaptype#1335}(ht) `THROW_REF`_instr])] +[visit_exp state#503] +[visit_id state#503] +[visit_exp `instr*#585`] +[visit_id instr*#585] +[visit_exp (z, [`REF.NULL`_instr{heaptype#1335}(ht) `THROW_REF`_instr])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.NULL`_instr{heaptype#1335}(ht) `THROW_REF`_instr]] +[visit_exp `REF.NULL`_instr{heaptype#1335}(ht)] +[visit_exp heaptype#1335] +[visit_id heaptype#1335] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] a exnaddr#5 exnaddr#7 instr instr*#597 state#515 val z +[visit_exp `%;%`_config{state#515, `instr*#597`}(z, (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr{exnaddr#5}(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`})] +[visit_exp state#515] +[visit_id state#515] +[visit_exp `instr*#597`] +[visit_id instr*#597] +[visit_exp (z, (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr{exnaddr#5}(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`})] +[visit_exp z] +[visit_id z] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr{exnaddr#5}(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#5}(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#5}(a)]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#5}(a)] +[visit_exp exnaddr#5] +[visit_id exnaddr#5] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}] +[visit_exp [`THROW_REF`_instr]] +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#7}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#7}(a)] +[visit_exp exnaddr#7] +[visit_id exnaddr#7] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_exp ((val*{val <- `val*`} =/= []) \/ (instr*{instr <- `instr*`} =/= []))] +[visit_exp (val*{val <- `val*`} =/= [])] +[visit_exp val*{val <- `val*`}] +[scope_enter val] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp []] +[visit_exp (instr*{instr <- `instr*`} =/= [])] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp []] +[check_dims] a exnaddr#11 exnaddr#9 instr' instr*#609 instr*#611 n n#1191 state#527 z +[visit_exp `%;%`_config{state#527, `instr*#609`}(z, [`LABEL_%{%}%`_instr{n#1191, `instr*#611`}(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr])])] +[visit_exp state#527] +[visit_id state#527] +[visit_exp `instr*#609`] +[visit_id instr*#609] +[visit_exp (z, [`LABEL_%{%}%`_instr{n#1191, `instr*#611`}(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr])])] +[visit_exp z] +[visit_id z] +[visit_exp [`LABEL_%{%}%`_instr{n#1191, `instr*#611`}(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr])]] +[visit_exp `LABEL_%{%}%`_instr{n#1191, `instr*#611`}(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr])] +[visit_exp n#1191] +[visit_id n#1191] +[visit_exp `instr*#611`] +[visit_id instr*#611] +[visit_exp (n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr])] +[visit_exp n] +[visit_id n] +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] no dims +[visit_id instr'*] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#9}(a)] +[visit_exp exnaddr#9] +[visit_id exnaddr#9] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#11}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#11}(a)] +[visit_exp exnaddr#11] +[visit_id exnaddr#11] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[check_dims] a exnaddr#13 exnaddr#15 f frame#1011 instr*#624 instr*#626 n n#1193 state#539 z +[visit_exp `%;%`_config{state#539, `instr*#624`}(z, [`FRAME_%{%}%`_instr{n#1193, frame#1011, `instr*#626`}(n, f, [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr])])] +[visit_exp state#539] +[visit_id state#539] +[visit_exp `instr*#624`] +[visit_id instr*#624] +[visit_exp (z, [`FRAME_%{%}%`_instr{n#1193, frame#1011, `instr*#626`}(n, f, [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr])])] +[visit_exp z] +[visit_id z] +[visit_exp [`FRAME_%{%}%`_instr{n#1193, frame#1011, `instr*#626`}(n, f, [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr])]] +[visit_exp `FRAME_%{%}%`_instr{n#1193, frame#1011, `instr*#626`}(n, f, [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr])] +[visit_exp n#1193] +[visit_id n#1193] +[visit_exp frame#1011] +[visit_id frame#1011] +[visit_exp `instr*#626`] +[visit_id instr*#626] +[visit_exp (n, f, [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr])] +[visit_exp n] +[visit_id n] +[visit_exp f] +[visit_id f] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#13}(a)] +[visit_exp exnaddr#13] +[visit_id exnaddr#13] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#15}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#15}(a)] +[visit_exp exnaddr#15] +[visit_id exnaddr#15] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[check_dims] a catch*#7 exnaddr#17 exnaddr#19 instr*#638 instr*#640 n n#1195 state#551 z +[visit_exp `%;%`_config{state#551, `instr*#638`}(z, [`HANDLER_%{%}%`_instr{n#1195, `catch*#7`, `instr*#640`}(n, [], [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr])])] +[visit_exp state#551] +[visit_id state#551] +[visit_exp `instr*#638`] +[visit_id instr*#638] +[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1195, `catch*#7`, `instr*#640`}(n, [], [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr])])] +[visit_exp z] +[visit_id z] +[visit_exp [`HANDLER_%{%}%`_instr{n#1195, `catch*#7`, `instr*#640`}(n, [], [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr{n#1195, `catch*#7`, `instr*#640`}(n, [], [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr])] +[visit_exp n#1195] +[visit_id n#1195] +[visit_exp `catch*#7`] +[visit_id catch*#7] +[visit_exp `instr*#640`] +[visit_id instr*#640] +[visit_exp (n, [], [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr])] +[visit_exp n] +[visit_id n] +[visit_exp []] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#17}(a)] +[visit_exp exnaddr#17] +[visit_id exnaddr#17] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#19}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#19}(a)] +[visit_exp exnaddr#19] +[visit_id exnaddr#19] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[check_dims] a catch' catch*#9 exnaddr#21 i#32603 instr*#652 instr*#654 l labelidx#85 labelidx#87 n n#1197 state#563 tagaddr#6 tagidx#13 val val*#2 x z +[visit_exp `%;%`_config{state#563, `instr*#652`}(z, [`HANDLER_%{%}%`_instr{n#1197, `catch*#9`, `instr*#654`}(n, [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr])])] +[visit_exp state#563] +[visit_id state#563] +[visit_exp `instr*#652`] +[visit_id instr*#652] +[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1197, `catch*#9`, `instr*#654`}(n, [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr])])] +[visit_exp z] +[visit_id z] +[visit_exp [`HANDLER_%{%}%`_instr{n#1197, `catch*#9`, `instr*#654`}(n, [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr{n#1197, `catch*#9`, `instr*#654`}(n, [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr])] +[visit_exp n#1197] +[visit_id n#1197] +[visit_exp `catch*#9`] +[visit_id catch*#9] +[visit_exp `instr*#654`] +[visit_id instr*#654] +[visit_exp (n, [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr])] +[visit_exp n] +[visit_id n] +[visit_exp [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}] +[visit_exp [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)]] +[visit_exp `CATCH`_catch{tagidx#13, labelidx#85}(x, l)] +[visit_exp tagidx#13] +[visit_id tagidx#13] +[visit_exp labelidx#85] +[visit_id labelidx#85] +[visit_exp (x, l)] +[visit_exp x] +[visit_id x] +[visit_exp l] +[visit_id l] +[visit_exp catch'*{catch' <- `catch'*`}] +[scope_enter catch'] +[visit_exp catch'] +[visit_id catch'] not free +[visit_id catch'] not free +[scope_exit catch'] +[visit_exp `catch'*`] +[visit_id catch'*] no dims +[visit_id catch'*] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#21}(a)] +[visit_exp exnaddr#21] +[visit_id exnaddr#21] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#87}(l)]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`BR`_instr{labelidx#87}(l)]] +[visit_exp `BR`_instr{labelidx#87}(l)] +[visit_exp labelidx#87] +[visit_id labelidx#87] +[visit_exp (l)] +[visit_exp l] +[visit_id l] not free +[visit_exp ($exninst(z)[a].`TAG`_exninst{tagaddr#6} = $tagaddr(z)[x!`%`_idx{i#32603}.0])] +[visit_exp $exninst(z)[a].`TAG`_exninst{tagaddr#6}] +[visit_exp $exninst(z)[a]] +[visit_exp $exninst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp tagaddr#6] +[visit_id tagaddr#6] +[visit_exp $tagaddr(z)[x!`%`_idx{i#32603}.0]] +[visit_exp $tagaddr(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp x!`%`_idx{i#32603}.0] +[visit_exp x!`%`_idx{i#32603}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#32603] +[visit_id i#32603] +[visit_exp (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst{`val*#2`})] +[visit_exp val*{val <- `val*`}] +[scope_enter val] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp $exninst(z)[a].`FIELDS`_exninst{`val*#2`}] +[visit_exp $exninst(z)[a]] +[visit_exp $exninst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp `val*#2`] +[visit_id val*#2] +[check_dims] a catch' catch*#11 exnaddr#23 exnaddr#25 i#32651 instr*#666 instr*#668 l labelidx#89 labelidx#91 n n#1199 state#575 tagaddr#7 tagidx#15 val val*#3 x z +[visit_exp `%;%`_config{state#575, `instr*#666`}(z, [`HANDLER_%{%}%`_instr{n#1199, `catch*#11`, `instr*#668`}(n, [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr])])] +[visit_exp state#575] +[visit_id state#575] +[visit_exp `instr*#666`] +[visit_id instr*#666] +[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1199, `catch*#11`, `instr*#668`}(n, [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr])])] +[visit_exp z] +[visit_id z] +[visit_exp [`HANDLER_%{%}%`_instr{n#1199, `catch*#11`, `instr*#668`}(n, [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr{n#1199, `catch*#11`, `instr*#668`}(n, [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr])] +[visit_exp n#1199] +[visit_id n#1199] +[visit_exp `catch*#11`] +[visit_id catch*#11] +[visit_exp `instr*#668`] +[visit_id instr*#668] +[visit_exp (n, [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr])] +[visit_exp n] +[visit_id n] +[visit_exp [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}] +[visit_exp [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)]] +[visit_exp `CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] +[visit_exp tagidx#15] +[visit_id tagidx#15] +[visit_exp labelidx#89] +[visit_id labelidx#89] +[visit_exp (x, l)] +[visit_exp x] +[visit_id x] +[visit_exp l] +[visit_id l] +[visit_exp catch'*{catch' <- `catch'*`}] +[scope_enter catch'] +[visit_exp catch'] +[visit_id catch'] not free +[visit_id catch'] not free +[scope_exit catch'] +[visit_exp `catch'*`] +[visit_id catch'*] no dims +[visit_id catch'*] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#23}(a)] +[visit_exp exnaddr#23] +[visit_id exnaddr#23] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr{exnaddr#25}(a) `BR`_instr{labelidx#91}(l)]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#25}(a) `BR`_instr{labelidx#91}(l)]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#25}(a)] +[visit_exp exnaddr#25] +[visit_id exnaddr#25] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `BR`_instr{labelidx#91}(l)] +[visit_exp labelidx#91] +[visit_id labelidx#91] +[visit_exp (l)] +[visit_exp l] +[visit_id l] not free +[visit_exp ($exninst(z)[a].`TAG`_exninst{tagaddr#7} = $tagaddr(z)[x!`%`_idx{i#32651}.0])] +[visit_exp $exninst(z)[a].`TAG`_exninst{tagaddr#7}] +[visit_exp $exninst(z)[a]] +[visit_exp $exninst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp tagaddr#7] +[visit_id tagaddr#7] +[visit_exp $tagaddr(z)[x!`%`_idx{i#32651}.0]] +[visit_exp $tagaddr(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp x!`%`_idx{i#32651}.0] +[visit_exp x!`%`_idx{i#32651}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#32651] +[visit_id i#32651] +[visit_exp (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst{`val*#3`})] +[visit_exp val*{val <- `val*`}] +[scope_enter val] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp $exninst(z)[a].`FIELDS`_exninst{`val*#3`}] +[visit_exp $exninst(z)[a]] +[visit_exp $exninst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp `val*#3`] +[visit_id val*#3] +[check_dims] a catch' catch*#13 exnaddr#27 instr*#680 instr*#682 l labelidx#93 labelidx#95 n n#1201 state#587 z +[visit_exp `%;%`_config{state#587, `instr*#680`}(z, [`HANDLER_%{%}%`_instr{n#1201, `catch*#13`, `instr*#682`}(n, [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr])])] +[visit_exp state#587] +[visit_id state#587] +[visit_exp `instr*#680`] +[visit_id instr*#680] +[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1201, `catch*#13`, `instr*#682`}(n, [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr])])] +[visit_exp z] +[visit_id z] +[visit_exp [`HANDLER_%{%}%`_instr{n#1201, `catch*#13`, `instr*#682`}(n, [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr{n#1201, `catch*#13`, `instr*#682`}(n, [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr])] +[visit_exp n#1201] +[visit_id n#1201] +[visit_exp `catch*#13`] +[visit_id catch*#13] +[visit_exp `instr*#682`] +[visit_id instr*#682] +[visit_exp (n, [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr])] +[visit_exp n] +[visit_id n] +[visit_exp [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}] +[visit_exp [`CATCH_ALL`_catch{labelidx#93}(l)]] +[visit_exp `CATCH_ALL`_catch{labelidx#93}(l)] +[visit_exp labelidx#93] +[visit_id labelidx#93] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp catch'*{catch' <- `catch'*`}] +[scope_enter catch'] +[visit_exp catch'] +[visit_id catch'] not free +[visit_id catch'] not free +[scope_exit catch'] +[visit_exp `catch'*`] +[visit_id catch'*] no dims +[visit_id catch'*] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#27}(a)] +[visit_exp exnaddr#27] +[visit_id exnaddr#27] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_exp [`BR`_instr{labelidx#95}(l)]] +[visit_exp `BR`_instr{labelidx#95}(l)] +[visit_exp labelidx#95] +[visit_id labelidx#95] +[visit_exp (l)] +[visit_exp l] +[visit_id l] not free +[check_dims] a catch' catch*#15 exnaddr#29 exnaddr#31 instr*#694 instr*#696 l labelidx#97 labelidx#99 n n#1203 state#599 z +[visit_exp `%;%`_config{state#599, `instr*#694`}(z, [`HANDLER_%{%}%`_instr{n#1203, `catch*#15`, `instr*#696`}(n, [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr])])] +[visit_exp state#599] +[visit_id state#599] +[visit_exp `instr*#694`] +[visit_id instr*#694] +[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1203, `catch*#15`, `instr*#696`}(n, [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr])])] +[visit_exp z] +[visit_id z] +[visit_exp [`HANDLER_%{%}%`_instr{n#1203, `catch*#15`, `instr*#696`}(n, [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr{n#1203, `catch*#15`, `instr*#696`}(n, [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr])] +[visit_exp n#1203] +[visit_id n#1203] +[visit_exp `catch*#15`] +[visit_id catch*#15] +[visit_exp `instr*#696`] +[visit_id instr*#696] +[visit_exp (n, [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr])] +[visit_exp n] +[visit_id n] +[visit_exp [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}] +[visit_exp [`CATCH_ALL_REF`_catch{labelidx#97}(l)]] +[visit_exp `CATCH_ALL_REF`_catch{labelidx#97}(l)] +[visit_exp labelidx#97] +[visit_id labelidx#97] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp catch'*{catch' <- `catch'*`}] +[scope_enter catch'] +[visit_exp catch'] +[visit_id catch'] not free +[visit_id catch'] not free +[scope_exit catch'] +[visit_exp `catch'*`] +[visit_id catch'*] no dims +[visit_id catch'*] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#29}(a)] +[visit_exp exnaddr#29] +[visit_id exnaddr#29] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#31}(a) `BR`_instr{labelidx#99}(l)]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#31}(a)] +[visit_exp exnaddr#31] +[visit_id exnaddr#31] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `BR`_instr{labelidx#99}(l)] +[visit_exp labelidx#99] +[visit_id labelidx#99] +[visit_exp (l)] +[visit_exp l] +[visit_id l] not free +[check_dims] a catch catch' catch*#17 catch*#19 exnaddr#33 exnaddr#35 instr*#708 instr*#710 instr*#712 n n#1205 n#1207 state#611 z +[visit_exp `%;%`_config{state#611, `instr*#708`}(z, [`HANDLER_%{%}%`_instr{n#1205, `catch*#17`, `instr*#710`}(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr])])] +[visit_exp state#611] +[visit_id state#611] +[visit_exp `instr*#708`] +[visit_id instr*#708] +[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1205, `catch*#17`, `instr*#710`}(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr])])] +[visit_exp z] +[visit_id z] +[visit_exp [`HANDLER_%{%}%`_instr{n#1205, `catch*#17`, `instr*#710`}(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr{n#1205, `catch*#17`, `instr*#710`}(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr])] +[visit_exp n#1205] +[visit_id n#1205] +[visit_exp `catch*#17`] +[visit_id catch*#17] +[visit_exp `instr*#710`] +[visit_id instr*#710] +[visit_exp (n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr])] +[visit_exp n] +[visit_id n] +[visit_exp [catch] ++ catch'*{catch' <- `catch'*`}] +[visit_exp [catch]] +[visit_exp catch] +[visit_id catch] +[visit_exp catch'*{catch' <- `catch'*`}] +[scope_enter catch'] +[visit_exp catch'] +[visit_id catch'] not free +[visit_id catch'] not free +[scope_exit catch'] +[visit_exp `catch'*`] +[visit_id catch'*] no dims +[visit_id catch'*] +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#33}(a)] +[visit_exp exnaddr#33] +[visit_id exnaddr#33] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_exp [`HANDLER_%{%}%`_instr{n#1207, `catch*#19`, `instr*#712`}(n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#35}(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr{n#1207, `catch*#19`, `instr*#712`}(n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#35}(a) `THROW_REF`_instr])] +[visit_exp n#1207] +[visit_id n#1207] +[visit_exp `catch*#19`] +[visit_id catch*#19] +[visit_exp `instr*#712`] +[visit_id instr*#712] +[visit_exp (n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#35}(a) `THROW_REF`_instr])] +[visit_exp n] +[visit_id n] not free +[visit_exp catch'*{catch' <- `catch'*`}] +[scope_enter catch'] +[visit_exp catch'] +[visit_id catch'] not free +[visit_id catch'] not free +[scope_exit catch'] +[visit_exp `catch'*`] +[visit_id catch'*] not free +[visit_id catch'*] no dims +[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#35}(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr{exnaddr#35}(a)] +[visit_exp exnaddr#35] +[visit_id exnaddr#35] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[check_dims] X*#12591 X*#12604 X*#12655 blocktype#29 bt catch catch*#21 instr instr*#724 instr*#726 instr*#728 instr*#730 localidx*#1805 m n n#1209 n#1211 resulttype#3023 state#623 t_1 t_2 val z +[visit_exp `%;%`_config{state#623, `instr*#724`}(z, (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr{blocktype#29, `instr*#726`}(bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})])] +[visit_exp state#623] +[visit_id state#623] +[visit_exp `instr*#724`] +[visit_id instr*#724] +[visit_exp (z, (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr{blocktype#29, `instr*#726`}(bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})])] +[visit_exp z] +[visit_id z] +[visit_exp (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr{blocktype#29, `instr*#726`}(bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]] +[visit_exp (val : val <: instr)^m{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp m] +[visit_id m] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`TRY_TABLE`_instr{blocktype#29, `instr*#726`}(bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]] +[visit_exp `TRY_TABLE`_instr{blocktype#29, `instr*#726`}(bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] +[visit_exp blocktype#29] +[visit_id blocktype#29] +[visit_exp `instr*#726`] +[visit_id instr*#726] +[visit_exp (bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp `%`_list{`X*#12591`}(catch*{catch <- `catch*`})] +[visit_exp `X*#12591`] +[visit_id X*#12591] +[visit_exp (catch*{catch <- `catch*`})] +[visit_exp catch*{catch <- `catch*`}] +[scope_enter catch] +[visit_exp catch] +[visit_id catch] not free +[visit_id catch] not free +[scope_exit catch] +[visit_exp `catch*`] +[visit_id catch*] no dims +[visit_id catch*] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp [`HANDLER_%{%}%`_instr{n#1209, `catch*#21`, `instr*#728`}(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr{n#1211, `instr*#730`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])]] +[visit_exp `HANDLER_%{%}%`_instr{n#1209, `catch*#21`, `instr*#728`}(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr{n#1211, `instr*#730`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])] +[visit_exp n#1209] +[visit_id n#1209] +[visit_exp `catch*#21`] +[visit_id catch*#21] +[visit_exp `instr*#728`] +[visit_id instr*#728] +[visit_exp (n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr{n#1211, `instr*#730`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])] +[visit_exp n] +[visit_id n] +[visit_exp catch*{catch <- `catch*`}] +[scope_enter catch] +[visit_exp catch] +[visit_id catch] not free +[visit_id catch] not free +[scope_exit catch] +[visit_exp `catch*`] +[visit_id catch*] not free +[visit_id catch*] no dims +[visit_exp [`LABEL_%{%}%`_instr{n#1211, `instr*#730`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr{n#1211, `instr*#730`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] +[visit_exp n#1211] +[visit_id n#1211] +[visit_exp `instr*#730`] +[visit_id instr*#730] +[visit_exp (n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] +[visit_exp n] +[visit_id n] not free +[visit_exp []] +[visit_exp (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)^m{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp m] +[visit_id m] not free +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp ($blocktype_(z, bt) = `%->_%%`_instrtype{resulttype#3023, `localidx*#1805`}(`%`_resulttype{`X*#12604`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12655`}(t_2^n{t_2 <- `t_2*`})))] +[visit_exp $blocktype_(z, bt)] +[visit_exp z] +[visit_id z] not free +[visit_exp bt] +[visit_id bt] not free +[visit_exp `%->_%%`_instrtype{resulttype#3023, `localidx*#1805`}(`%`_resulttype{`X*#12604`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12655`}(t_2^n{t_2 <- `t_2*`}))] +[visit_exp resulttype#3023] +[visit_id resulttype#3023] +[visit_exp `localidx*#1805`] +[visit_id localidx*#1805] +[visit_exp (`%`_resulttype{`X*#12604`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12655`}(t_2^n{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#12604`}(t_1^m{t_1 <- `t_1*`})] +[visit_exp `X*#12604`] +[visit_id X*#12604] +[visit_exp (t_1^m{t_1 <- `t_1*`})] +[visit_exp t_1^m{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp m] +[visit_id m] not free +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#12655`}(t_2^n{t_2 <- `t_2*`})] +[visit_exp `X*#12655`] +[visit_id X*#12655] +[visit_exp (t_2^n{t_2 <- `t_2*`})] +[visit_exp t_2^n{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp n] +[visit_id n] not free +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[check_dims] catch catch*#23 instr*#733 n n#1213 val +[visit_exp [`HANDLER_%{%}%`_instr{n#1213, `catch*#23`, `instr*#733`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})]] +[visit_exp `HANDLER_%{%}%`_instr{n#1213, `catch*#23`, `instr*#733`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})] +[visit_exp n#1213] +[visit_id n#1213] +[visit_exp `catch*#23`] +[visit_id catch*#23] +[visit_exp `instr*#733`] +[visit_id instr*#733] +[visit_exp (n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})] +[visit_exp n] +[visit_id n] +[visit_exp catch*{catch <- `catch*`}] +[scope_enter catch] +[visit_exp catch] +[visit_id catch] not free +[visit_id catch] not free +[scope_exit catch] +[visit_exp `catch*`] +[visit_id catch*] no dims +[visit_id catch*] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[check_dims] instr val +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`TRAP`_instr] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`TRAP`_instr] ++ instr*{instr <- `instr*`}] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ((val*{val <- `val*`} =/= []) \/ (instr*{instr <- `instr*`} =/= []))] +[visit_exp (val*{val <- `val*`} =/= [])] +[visit_exp val*{val <- `val*`}] +[scope_enter val] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp []] +[visit_exp (instr*{instr <- `instr*`} =/= [])] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp []] +[check_dims] instr' instr*#735 n n#1215 +[visit_exp [`LABEL_%{%}%`_instr{n#1215, `instr*#735`}(n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])]] +[visit_exp `LABEL_%{%}%`_instr{n#1215, `instr*#735`}(n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])] +[visit_exp n#1215] +[visit_id n#1215] +[visit_exp `instr*#735`] +[visit_id instr*#735] +[visit_exp (n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])] +[visit_exp n] +[visit_id n] +[visit_exp instr'*{instr' <- `instr'*`}] +[scope_enter instr'] +[visit_exp instr'] +[visit_id instr'] not free +[visit_id instr'] not free +[scope_exit instr'] +[visit_exp `instr'*`] +[visit_id instr'*] no dims +[visit_id instr'*] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] f frame#1097 instr*#738 n n#1217 +[visit_exp [`FRAME_%{%}%`_instr{n#1217, frame#1097, `instr*#738`}(n, f, [`TRAP`_instr])]] +[visit_exp `FRAME_%{%}%`_instr{n#1217, frame#1097, `instr*#738`}(n, f, [`TRAP`_instr])] +[visit_exp n#1217] +[visit_id n#1217] +[visit_exp frame#1097] +[visit_id frame#1097] +[visit_exp `instr*#738`] +[visit_id instr*#738] +[visit_exp (n, f, [`TRAP`_instr])] +[visit_exp n] +[visit_id n] +[visit_exp f] +[visit_id f] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] instr*#750 localidx#13 state#635 val x z +[visit_exp `%;%`_config{state#635, `instr*#750`}(z, [`LOCAL.GET`_instr{localidx#13}(x)])] +[visit_exp state#635] +[visit_id state#635] +[visit_exp `instr*#750`] +[visit_id instr*#750] +[visit_exp (z, [`LOCAL.GET`_instr{localidx#13}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`LOCAL.GET`_instr{localidx#13}(x)]] +[visit_exp `LOCAL.GET`_instr{localidx#13}(x)] +[visit_exp localidx#13] +[visit_id localidx#13] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [(val : val <: instr)]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp ($local(z, x) = ?(val))] +[visit_exp $local(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp ?(val)] +[visit_exp val] +[visit_id val] not free +[check_dims] instr*#762 instr*#774 localidx#15 state#647 state#659 val x z +[visit_exp `%;%`_config{state#647, `instr*#762`}(z, [(val : val <: instr) `LOCAL.SET`_instr{localidx#15}(x)])] +[visit_exp state#647] +[visit_id state#647] +[visit_exp `instr*#762`] +[visit_id instr*#762] +[visit_exp (z, [(val : val <: instr) `LOCAL.SET`_instr{localidx#15}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [(val : val <: instr) `LOCAL.SET`_instr{localidx#15}(x)]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `LOCAL.SET`_instr{localidx#15}(x)] +[visit_exp localidx#15] +[visit_id localidx#15] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#659, `instr*#774`}($with_local(z, x, val), [])] +[visit_exp state#659] +[visit_id state#659] +[visit_exp `instr*#774`] +[visit_id instr*#774] +[visit_exp ($with_local(z, x, val), [])] +[visit_exp $with_local(z, x, val)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp val] +[visit_id val] not free +[visit_exp []] +[check_dims] localidx#17 localidx#19 val x +[visit_exp [(val : val <: instr) `LOCAL.TEE`_instr{localidx#17}(x)]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `LOCAL.TEE`_instr{localidx#17}(x)] +[visit_exp localidx#17] +[visit_id localidx#17] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [(val : val <: instr) (val : val <: instr) `LOCAL.SET`_instr{localidx#19}(x)]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_exp `LOCAL.SET`_instr{localidx#19}(x)] +[visit_exp localidx#19] +[visit_id localidx#19] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[check_dims] globalidx#17 instr*#786 state#671 val val#2 x z +[visit_exp `%;%`_config{state#671, `instr*#786`}(z, [`GLOBAL.GET`_instr{globalidx#17}(x)])] +[visit_exp state#671] +[visit_id state#671] +[visit_exp `instr*#786`] +[visit_id instr*#786] +[visit_exp (z, [`GLOBAL.GET`_instr{globalidx#17}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`GLOBAL.GET`_instr{globalidx#17}(x)]] +[visit_exp `GLOBAL.GET`_instr{globalidx#17}(x)] +[visit_exp globalidx#17] +[visit_id globalidx#17] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [(val : val <: instr)]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp ($global(z, x).`VALUE`_globalinst{val#2} = val)] +[visit_exp $global(z, x).`VALUE`_globalinst{val#2}] +[visit_exp $global(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp val#2] +[visit_id val#2] +[visit_exp val] +[visit_id val] not free +[check_dims] globalidx#19 instr*#798 instr*#810 state#683 state#695 val x z +[visit_exp `%;%`_config{state#683, `instr*#798`}(z, [(val : val <: instr) `GLOBAL.SET`_instr{globalidx#19}(x)])] +[visit_exp state#683] +[visit_id state#683] +[visit_exp `instr*#798`] +[visit_id instr*#798] +[visit_exp (z, [(val : val <: instr) `GLOBAL.SET`_instr{globalidx#19}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [(val : val <: instr) `GLOBAL.SET`_instr{globalidx#19}(x)]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `GLOBAL.SET`_instr{globalidx#19}(x)] +[visit_exp globalidx#19] +[visit_id globalidx#19] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#695, `instr*#810`}($with_global(z, x, val), [])] +[visit_exp state#695] +[visit_id state#695] +[visit_exp `instr*#810`] +[visit_id instr*#810] +[visit_exp ($with_global(z, x, val), [])] +[visit_exp $with_global(z, x, val)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp val] +[visit_id val] not free +[visit_exp []] +[check_dims] at i i#32897 instr*#822 numtype#75 ref*#5 state#707 tableidx#57 x z +[visit_exp `%;%`_config{state#707, `instr*#822`}(z, [`CONST`_instr{numtype#75}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#57}(x)])] +[visit_exp state#707] +[visit_id state#707] +[visit_exp `instr*#822`] +[visit_id instr*#822] +[visit_exp (z, [`CONST`_instr{numtype#75}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#57}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#75}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#57}(x)]] +[visit_exp `CONST`_instr{numtype#75}((at : addrtype <: numtype), i)] +[visit_exp numtype#75] +[visit_id numtype#75] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `TABLE.GET`_instr{tableidx#57}(x)] +[visit_exp tableidx#57] +[visit_id tableidx#57] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (i!`%`_num_{i#32897}.0 >= |$table(z, x).`REFS`_tableinst{`ref*#5`}|)] +[visit_exp i!`%`_num_{i#32897}.0] +[visit_exp i!`%`_num_{i#32897}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#32897] +[visit_id i#32897] +[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#5`}|] +[visit_exp $table(z, x).`REFS`_tableinst{`ref*#5`}] +[visit_exp $table(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ref*#5`] +[visit_id ref*#5] +[check_dims] at i i#32947 i#32973 instr*#834 numtype#77 ref*#6 ref*#7 state#719 tableidx#59 x z +[visit_exp `%;%`_config{state#719, `instr*#834`}(z, [`CONST`_instr{numtype#77}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#59}(x)])] +[visit_exp state#719] +[visit_id state#719] +[visit_exp `instr*#834`] +[visit_id instr*#834] +[visit_exp (z, [`CONST`_instr{numtype#77}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#59}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#77}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#59}(x)]] +[visit_exp `CONST`_instr{numtype#77}((at : addrtype <: numtype), i)] +[visit_exp numtype#77] +[visit_id numtype#77] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `TABLE.GET`_instr{tableidx#59}(x)] +[visit_exp tableidx#59] +[visit_id tableidx#59] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [($table(z, x).`REFS`_tableinst{`ref*#6`}[i!`%`_num_{i#32947}.0] : ref <: instr)]] +[visit_exp ($table(z, x).`REFS`_tableinst{`ref*#6`}[i!`%`_num_{i#32947}.0] : ref <: instr)] +[visit_exp $table(z, x).`REFS`_tableinst{`ref*#6`}[i!`%`_num_{i#32947}.0]] +[visit_exp $table(z, x).`REFS`_tableinst{`ref*#6`}] +[visit_exp $table(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ref*#6`] +[visit_id ref*#6] +[visit_exp i!`%`_num_{i#32947}.0] +[visit_exp i!`%`_num_{i#32947}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#32947] +[visit_id i#32947] +[visit_exp (i!`%`_num_{i#32973}.0 < |$table(z, x).`REFS`_tableinst{`ref*#7`}|)] +[visit_exp i!`%`_num_{i#32973}.0] +[visit_exp i!`%`_num_{i#32973}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#32973] +[visit_id i#32973] +[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#7`}|] +[visit_exp $table(z, x).`REFS`_tableinst{`ref*#7`}] +[visit_exp $table(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ref*#7`] +[visit_id ref*#7] +[check_dims] at i i#33027 instr*#846 instr*#858 numtype#79 ref ref*#8 state#731 state#743 tableidx#61 x z +[visit_exp `%;%`_config{state#731, `instr*#846`}(z, [`CONST`_instr{numtype#79}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#61}(x)])] +[visit_exp state#731] +[visit_id state#731] +[visit_exp `instr*#846`] +[visit_id instr*#846] +[visit_exp (z, [`CONST`_instr{numtype#79}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#61}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#79}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#61}(x)]] +[visit_exp `CONST`_instr{numtype#79}((at : addrtype <: numtype), i)] +[visit_exp numtype#79] +[visit_id numtype#79] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `TABLE.SET`_instr{tableidx#61}(x)] +[visit_exp tableidx#61] +[visit_id tableidx#61] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#743, `instr*#858`}(z, [`TRAP`_instr])] +[visit_exp state#743] +[visit_id state#743] +[visit_exp `instr*#858`] +[visit_id instr*#858] +[visit_exp (z, [`TRAP`_instr])] +[visit_exp z] +[visit_id z] not free +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (i!`%`_num_{i#33027}.0 >= |$table(z, x).`REFS`_tableinst{`ref*#8`}|)] +[visit_exp i!`%`_num_{i#33027}.0] +[visit_exp i!`%`_num_{i#33027}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#33027] +[visit_id i#33027] +[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#8`}|] +[visit_exp $table(z, x).`REFS`_tableinst{`ref*#8`}] +[visit_exp $table(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ref*#8`] +[visit_id ref*#8] +[check_dims] at i i#33077 i#33103 instr*#870 instr*#882 numtype#81 ref ref*#9 state#755 state#767 tableidx#63 x z +[visit_exp `%;%`_config{state#755, `instr*#870`}(z, [`CONST`_instr{numtype#81}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#63}(x)])] +[visit_exp state#755] +[visit_id state#755] +[visit_exp `instr*#870`] +[visit_id instr*#870] +[visit_exp (z, [`CONST`_instr{numtype#81}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#63}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#81}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#63}(x)]] +[visit_exp `CONST`_instr{numtype#81}((at : addrtype <: numtype), i)] +[visit_exp numtype#81] +[visit_id numtype#81] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `TABLE.SET`_instr{tableidx#63}(x)] +[visit_exp tableidx#63] +[visit_id tableidx#63] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#767, `instr*#882`}($with_table(z, x, i!`%`_num_{i#33077}.0, ref), [])] +[visit_exp state#767] +[visit_id state#767] +[visit_exp `instr*#882`] +[visit_id instr*#882] +[visit_exp ($with_table(z, x, i!`%`_num_{i#33077}.0, ref), [])] +[visit_exp $with_table(z, x, i!`%`_num_{i#33077}.0, ref)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp i!`%`_num_{i#33077}.0] +[visit_exp i!`%`_num_{i#33077}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#33077] +[visit_id i#33077] +[visit_exp ref] +[visit_id ref] not free +[visit_exp []] +[visit_exp (i!`%`_num_{i#33103}.0 < |$table(z, x).`REFS`_tableinst{`ref*#9`}|)] +[visit_exp i!`%`_num_{i#33103}.0] +[visit_exp i!`%`_num_{i#33103}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#33103] +[visit_id i#33103] +[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#9`}|] +[visit_exp $table(z, x).`REFS`_tableinst{`ref*#9`}] +[visit_exp $table(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ref*#9`] +[visit_id ref*#9] +[check_dims] addrtype#1123 at i#33141 instr*#894 lim limits#1123 n numtype#83 ref*#10 reftype#3465 rt state#779 tableidx#65 tabletype#880 x z +[visit_exp `%;%`_config{state#779, `instr*#894`}(z, [`TABLE.SIZE`_instr{tableidx#65}(x)])] +[visit_exp state#779] +[visit_id state#779] +[visit_exp `instr*#894`] +[visit_id instr*#894] +[visit_exp (z, [`TABLE.SIZE`_instr{tableidx#65}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`TABLE.SIZE`_instr{tableidx#65}(x)]] +[visit_exp `TABLE.SIZE`_instr{tableidx#65}(x)] +[visit_exp tableidx#65] +[visit_id tableidx#65] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`CONST`_instr{numtype#83}((at : addrtype <: numtype), `%`_num_{i#33141}(n))]] +[visit_exp `CONST`_instr{numtype#83}((at : addrtype <: numtype), `%`_num_{i#33141}(n))] +[visit_exp numtype#83] +[visit_id numtype#83] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33141}(n))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp `%`_num_{i#33141}(n)] +[visit_exp i#33141] +[visit_id i#33141] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp (|$table(z, x).`REFS`_tableinst{`ref*#10`}| = n)] +[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#10`}|] +[visit_exp $table(z, x).`REFS`_tableinst{`ref*#10`}] +[visit_exp $table(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ref*#10`] +[visit_id ref*#10] +[visit_exp n] +[visit_id n] not free +[visit_exp ($table(z, x).`TYPE`_tableinst{tabletype#880} = `%%%`_tabletype{addrtype#1123, limits#1123, reftype#3465}(at, lim, rt))] +[visit_exp $table(z, x).`TYPE`_tableinst{tabletype#880}] +[visit_exp $table(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp tabletype#880] +[visit_id tabletype#880] +[visit_exp `%%%`_tabletype{addrtype#1123, limits#1123, reftype#3465}(at, lim, rt)] +[visit_exp addrtype#1123] +[visit_id addrtype#1123] +[visit_exp limits#1123] +[visit_id limits#1123] +[visit_exp reftype#3465] +[visit_id reftype#3465] +[visit_exp (at, lim, rt)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[visit_exp rt] +[visit_id rt] +[check_dims] at i#33189 i#33249 instr*#906 instr*#918 n numtype#85 numtype#87 ref ref*#11 state#791 state#803 tableidx#67 ti x z +[visit_exp `%;%`_config{state#791, `instr*#906`}(z, [(ref : ref <: instr) `CONST`_instr{numtype#85}((at : addrtype <: numtype), `%`_num_{i#33189}(n)) `TABLE.GROW`_instr{tableidx#67}(x)])] +[visit_exp state#791] +[visit_id state#791] +[visit_exp `instr*#906`] +[visit_id instr*#906] +[visit_exp (z, [(ref : ref <: instr) `CONST`_instr{numtype#85}((at : addrtype <: numtype), `%`_num_{i#33189}(n)) `TABLE.GROW`_instr{tableidx#67}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [(ref : ref <: instr) `CONST`_instr{numtype#85}((at : addrtype <: numtype), `%`_num_{i#33189}(n)) `TABLE.GROW`_instr{tableidx#67}(x)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `CONST`_instr{numtype#85}((at : addrtype <: numtype), `%`_num_{i#33189}(n))] +[visit_exp numtype#85] +[visit_id numtype#85] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33189}(n))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp `%`_num_{i#33189}(n)] +[visit_exp i#33189] +[visit_id i#33189] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `TABLE.GROW`_instr{tableidx#67}(x)] +[visit_exp tableidx#67] +[visit_id tableidx#67] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#803, `instr*#918`}($with_tableinst(z, x, ti), [`CONST`_instr{numtype#87}((at : addrtype <: numtype), `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|))])] +[visit_exp state#803] +[visit_id state#803] +[visit_exp `instr*#918`] +[visit_id instr*#918] +[visit_exp ($with_tableinst(z, x, ti), [`CONST`_instr{numtype#87}((at : addrtype <: numtype), `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|))])] +[visit_exp $with_tableinst(z, x, ti)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp ti] +[visit_id ti] +[visit_exp [`CONST`_instr{numtype#87}((at : addrtype <: numtype), `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|))]] +[visit_exp `CONST`_instr{numtype#87}((at : addrtype <: numtype), `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|))] +[visit_exp numtype#87] +[visit_id numtype#87] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|)] +[visit_exp i#33249] +[visit_id i#33249] +[visit_exp (|$table(z, x).`REFS`_tableinst{`ref*#11`}|)] +[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#11`}|] +[visit_exp $table(z, x).`REFS`_tableinst{`ref*#11`}] +[visit_exp $table(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ref*#11`] +[visit_id ref*#11] +[visit_exp (ti = $growtable($table(z, x), n, ref))] +[visit_exp ti] +[visit_id ti] not free +[visit_exp $growtable($table(z, x), n, ref)] +[visit_exp $table(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp n] +[visit_id n] not free +[visit_exp ref] +[visit_id ref] not free +[check_dims] at i#33285 i#33321 instr*#930 instr*#942 n numtype#89 numtype#91 ref state#815 state#827 tableidx#69 x z +[visit_exp `%;%`_config{state#815, `instr*#930`}(z, [(ref : ref <: instr) `CONST`_instr{numtype#89}((at : addrtype <: numtype), `%`_num_{i#33285}(n)) `TABLE.GROW`_instr{tableidx#69}(x)])] +[visit_exp state#815] +[visit_id state#815] +[visit_exp `instr*#930`] +[visit_id instr*#930] +[visit_exp (z, [(ref : ref <: instr) `CONST`_instr{numtype#89}((at : addrtype <: numtype), `%`_num_{i#33285}(n)) `TABLE.GROW`_instr{tableidx#69}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [(ref : ref <: instr) `CONST`_instr{numtype#89}((at : addrtype <: numtype), `%`_num_{i#33285}(n)) `TABLE.GROW`_instr{tableidx#69}(x)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `CONST`_instr{numtype#89}((at : addrtype <: numtype), `%`_num_{i#33285}(n))] +[visit_exp numtype#89] +[visit_id numtype#89] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33285}(n))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp `%`_num_{i#33285}(n)] +[visit_exp i#33285] +[visit_id i#33285] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `TABLE.GROW`_instr{tableidx#69}(x)] +[visit_exp tableidx#69] +[visit_id tableidx#69] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#827, `instr*#942`}(z, [`CONST`_instr{numtype#91}((at : addrtype <: numtype), `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] +[visit_exp state#827] +[visit_id state#827] +[visit_exp `instr*#942`] +[visit_id instr*#942] +[visit_exp (z, [`CONST`_instr{numtype#91}((at : addrtype <: numtype), `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] +[visit_exp z] +[visit_id z] not free +[visit_exp [`CONST`_instr{numtype#91}((at : addrtype <: numtype), `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))]] +[visit_exp `CONST`_instr{numtype#91}((at : addrtype <: numtype), `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] +[visit_exp numtype#91] +[visit_id numtype#91] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] +[visit_exp i#33321] +[visit_id i#33321] +[visit_exp ($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] +[visit_exp $inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))] +[visit_exp $size((at : addrtype <: numtype))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[check_dims] at i i#33359 i#33387 instr*#954 n numtype#93 numtype#95 ref*#12 state#839 tableidx#71 val x z +[visit_exp `%;%`_config{state#839, `instr*#954`}(z, [`CONST`_instr{numtype#93}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#95}((at : addrtype <: numtype), `%`_num_{i#33359}(n)) `TABLE.FILL`_instr{tableidx#71}(x)])] +[visit_exp state#839] +[visit_id state#839] +[visit_exp `instr*#954`] +[visit_id instr*#954] +[visit_exp (z, [`CONST`_instr{numtype#93}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#95}((at : addrtype <: numtype), `%`_num_{i#33359}(n)) `TABLE.FILL`_instr{tableidx#71}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#93}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#95}((at : addrtype <: numtype), `%`_num_{i#33359}(n)) `TABLE.FILL`_instr{tableidx#71}(x)]] +[visit_exp `CONST`_instr{numtype#93}((at : addrtype <: numtype), i)] +[visit_exp numtype#93] +[visit_id numtype#93] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `CONST`_instr{numtype#95}((at : addrtype <: numtype), `%`_num_{i#33359}(n))] +[visit_exp numtype#95] +[visit_id numtype#95] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33359}(n))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#33359}(n)] +[visit_exp i#33359] +[visit_id i#33359] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `TABLE.FILL`_instr{tableidx#71}(x)] +[visit_exp tableidx#71] +[visit_id tableidx#71] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ((i!`%`_num_{i#33387}.0 + n) > |$table(z, x).`REFS`_tableinst{`ref*#12`}|)] +[visit_exp (i!`%`_num_{i#33387}.0 + n)] +[visit_exp i!`%`_num_{i#33387}.0] +[visit_exp i!`%`_num_{i#33387}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#33387] +[visit_id i#33387] +[visit_exp n] +[visit_id n] not free +[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#12`}|] +[visit_exp $table(z, x).`REFS`_tableinst{`ref*#12`}] +[visit_exp $table(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ref*#12`] +[visit_id ref*#12] +[check_dims] at i i#33437 instr*#966 n numtype#97 numtype#99 state#851 tableidx#73 val x z +[visit_exp `%;%`_config{state#851, `instr*#966`}(z, [`CONST`_instr{numtype#97}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#99}((at : addrtype <: numtype), `%`_num_{i#33437}(n)) `TABLE.FILL`_instr{tableidx#73}(x)])] +[visit_exp state#851] +[visit_id state#851] +[visit_exp `instr*#966`] +[visit_id instr*#966] +[visit_exp (z, [`CONST`_instr{numtype#97}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#99}((at : addrtype <: numtype), `%`_num_{i#33437}(n)) `TABLE.FILL`_instr{tableidx#73}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#97}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#99}((at : addrtype <: numtype), `%`_num_{i#33437}(n)) `TABLE.FILL`_instr{tableidx#73}(x)]] +[visit_exp `CONST`_instr{numtype#97}((at : addrtype <: numtype), i)] +[visit_exp numtype#97] +[visit_id numtype#97] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `CONST`_instr{numtype#99}((at : addrtype <: numtype), `%`_num_{i#33437}(n))] +[visit_exp numtype#99] +[visit_id numtype#99] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33437}(n))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#33437}(n)] +[visit_exp i#33437] +[visit_id i#33437] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `TABLE.FILL`_instr{tableidx#73}(x)] +[visit_exp tableidx#73] +[visit_id tableidx#73] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp []] +[visit_exp (n = 0)] +[visit_exp n] +[visit_id n] not free +[visit_exp 0] +[check_dims] at i i#33489 i#33555 i#33565 i#33587 instr*#978 n numtype#101 numtype#103 numtype#105 numtype#107 numtype#109 state#863 tableidx#75 tableidx#77 tableidx#79 val x z +[visit_exp `%;%`_config{state#863, `instr*#978`}(z, [`CONST`_instr{numtype#101}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#103}((at : addrtype <: numtype), `%`_num_{i#33489}(n)) `TABLE.FILL`_instr{tableidx#75}(x)])] +[visit_exp state#863] +[visit_id state#863] +[visit_exp `instr*#978`] +[visit_id instr*#978] +[visit_exp (z, [`CONST`_instr{numtype#101}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#103}((at : addrtype <: numtype), `%`_num_{i#33489}(n)) `TABLE.FILL`_instr{tableidx#75}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#101}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#103}((at : addrtype <: numtype), `%`_num_{i#33489}(n)) `TABLE.FILL`_instr{tableidx#75}(x)]] +[visit_exp `CONST`_instr{numtype#101}((at : addrtype <: numtype), i)] +[visit_exp numtype#101] +[visit_id numtype#101] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `CONST`_instr{numtype#103}((at : addrtype <: numtype), `%`_num_{i#33489}(n))] +[visit_exp numtype#103] +[visit_id numtype#103] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33489}(n))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#33489}(n)] +[visit_exp i#33489] +[visit_id i#33489] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `TABLE.FILL`_instr{tableidx#75}(x)] +[visit_exp tableidx#75] +[visit_id tableidx#75] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`CONST`_instr{numtype#105}((at : addrtype <: numtype), i) (val : val <: instr) `TABLE.SET`_instr{tableidx#77}(x) `CONST`_instr{numtype#107}((at : addrtype <: numtype), `%`_num_{i#33565}((i!`%`_num_{i#33555}.0 + 1))) (val : val <: instr) `CONST`_instr{numtype#109}((at : addrtype <: numtype), `%`_num_{i#33587}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.FILL`_instr{tableidx#79}(x)]] +[visit_exp `CONST`_instr{numtype#105}((at : addrtype <: numtype), i)] +[visit_exp numtype#105] +[visit_id numtype#105] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp i] +[visit_id i] not free +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_exp `TABLE.SET`_instr{tableidx#77}(x)] +[visit_exp tableidx#77] +[visit_id tableidx#77] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `CONST`_instr{numtype#107}((at : addrtype <: numtype), `%`_num_{i#33565}((i!`%`_num_{i#33555}.0 + 1)))] +[visit_exp numtype#107] +[visit_id numtype#107] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33565}((i!`%`_num_{i#33555}.0 + 1)))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#33565}((i!`%`_num_{i#33555}.0 + 1))] +[visit_exp i#33565] +[visit_id i#33565] +[visit_exp ((i!`%`_num_{i#33555}.0 + 1))] +[visit_exp (i!`%`_num_{i#33555}.0 + 1)] +[visit_exp i!`%`_num_{i#33555}.0] +[visit_exp i!`%`_num_{i#33555}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#33555] +[visit_id i#33555] +[visit_exp 1] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_exp `CONST`_instr{numtype#109}((at : addrtype <: numtype), `%`_num_{i#33587}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#109] +[visit_id numtype#109] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33587}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#33587}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#33587] +[visit_id i#33587] +[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `TABLE.FILL`_instr{tableidx#79}(x)] +[visit_exp tableidx#79] +[visit_id tableidx#79] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[check_dims] at' at_1 at_2 i#33653 i#33695 i#33721 i_1 i_2 instr*#990 n numtype#111 numtype#113 numtype#115 ref*#13 ref*#14 state#875 tableidx#81 x_1 x_2 z +[visit_exp `%;%`_config{state#875, `instr*#990`}(z, [`CONST`_instr{numtype#111}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#113}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#115}((at' : addrtype <: numtype), `%`_num_{i#33653}(n)) `TABLE.COPY`_instr{tableidx#81}(x_1, x_2)])] +[visit_exp state#875] +[visit_id state#875] +[visit_exp `instr*#990`] +[visit_id instr*#990] +[visit_exp (z, [`CONST`_instr{numtype#111}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#113}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#115}((at' : addrtype <: numtype), `%`_num_{i#33653}(n)) `TABLE.COPY`_instr{tableidx#81}(x_1, x_2)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#111}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#113}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#115}((at' : addrtype <: numtype), `%`_num_{i#33653}(n)) `TABLE.COPY`_instr{tableidx#81}(x_1, x_2)]] +[visit_exp `CONST`_instr{numtype#111}((at_1 : addrtype <: numtype), i_1)] +[visit_exp numtype#111] +[visit_id numtype#111] +[visit_exp ((at_1 : addrtype <: numtype), i_1)] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `CONST`_instr{numtype#113}((at_2 : addrtype <: numtype), i_2)] +[visit_exp numtype#113] +[visit_id numtype#113] +[visit_exp ((at_2 : addrtype <: numtype), i_2)] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#115}((at' : addrtype <: numtype), `%`_num_{i#33653}(n))] +[visit_exp numtype#115] +[visit_id numtype#115] +[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#33653}(n))] +[visit_exp (at' : addrtype <: numtype)] +[visit_exp at'] +[visit_id at'] +[visit_exp `%`_num_{i#33653}(n)] +[visit_exp i#33653] +[visit_id i#33653] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `TABLE.COPY`_instr{tableidx#81}(x_1, x_2)] +[visit_exp tableidx#81] +[visit_id tableidx#81] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i_1!`%`_num_{i#33695}.0 + n) > |$table(z, x_1).`REFS`_tableinst{`ref*#13`}|) \/ ((i_2!`%`_num_{i#33721}.0 + n) > |$table(z, x_2).`REFS`_tableinst{`ref*#14`}|))] +[visit_exp ((i_1!`%`_num_{i#33695}.0 + n) > |$table(z, x_1).`REFS`_tableinst{`ref*#13`}|)] +[visit_exp (i_1!`%`_num_{i#33695}.0 + n)] +[visit_exp i_1!`%`_num_{i#33695}.0] +[visit_exp i_1!`%`_num_{i#33695}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#33695] +[visit_id i#33695] +[visit_exp n] +[visit_id n] not free +[visit_exp |$table(z, x_1).`REFS`_tableinst{`ref*#13`}|] +[visit_exp $table(z, x_1).`REFS`_tableinst{`ref*#13`}] +[visit_exp $table(z, x_1)] +[visit_exp z] +[visit_id z] not free +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp `ref*#13`] +[visit_id ref*#13] +[visit_exp ((i_2!`%`_num_{i#33721}.0 + n) > |$table(z, x_2).`REFS`_tableinst{`ref*#14`}|)] +[visit_exp (i_2!`%`_num_{i#33721}.0 + n)] +[visit_exp i_2!`%`_num_{i#33721}.0] +[visit_exp i_2!`%`_num_{i#33721}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#33721] +[visit_id i#33721] +[visit_exp n] +[visit_id n] not free +[visit_exp |$table(z, x_2).`REFS`_tableinst{`ref*#14`}|] +[visit_exp $table(z, x_2).`REFS`_tableinst{`ref*#14`}] +[visit_exp $table(z, x_2)] +[visit_exp z] +[visit_id z] not free +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp `ref*#14`] +[visit_id ref*#14] +[check_dims] at' at_1 at_2 i#33785 i_1 i_2 instr*#1002 n numtype#117 numtype#119 numtype#121 state#887 tableidx#84 x y z +[visit_exp `%;%`_config{state#887, `instr*#1002`}(z, [`CONST`_instr{numtype#117}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#119}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#121}((at' : addrtype <: numtype), `%`_num_{i#33785}(n)) `TABLE.COPY`_instr{tableidx#84}(x, y)])] +[visit_exp state#887] +[visit_id state#887] +[visit_exp `instr*#1002`] +[visit_id instr*#1002] +[visit_exp (z, [`CONST`_instr{numtype#117}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#119}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#121}((at' : addrtype <: numtype), `%`_num_{i#33785}(n)) `TABLE.COPY`_instr{tableidx#84}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#117}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#119}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#121}((at' : addrtype <: numtype), `%`_num_{i#33785}(n)) `TABLE.COPY`_instr{tableidx#84}(x, y)]] +[visit_exp `CONST`_instr{numtype#117}((at_1 : addrtype <: numtype), i_1)] +[visit_exp numtype#117] +[visit_id numtype#117] +[visit_exp ((at_1 : addrtype <: numtype), i_1)] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `CONST`_instr{numtype#119}((at_2 : addrtype <: numtype), i_2)] +[visit_exp numtype#119] +[visit_id numtype#119] +[visit_exp ((at_2 : addrtype <: numtype), i_2)] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#121}((at' : addrtype <: numtype), `%`_num_{i#33785}(n))] +[visit_exp numtype#121] +[visit_id numtype#121] +[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#33785}(n))] +[visit_exp (at' : addrtype <: numtype)] +[visit_exp at'] +[visit_id at'] +[visit_exp `%`_num_{i#33785}(n)] +[visit_exp i#33785] +[visit_id i#33785] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `TABLE.COPY`_instr{tableidx#84}(x, y)] +[visit_exp tableidx#84] +[visit_id tableidx#84] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp []] +[visit_exp (n = 0)] +[visit_exp n] +[visit_id n] not free +[visit_exp 0] +[check_dims] at' at_1 at_2 i#33865 i#33971 i#33981 i#34007 i#34017 i#34039 i#34085 i#34095 i_1 i_2 instr*#1014 n numtype#123 numtype#125 numtype#127 numtype#129 numtype#131 numtype#133 numtype#135 numtype#137 state#899 tableidx#87 tableidx#90 tableidx#92 tableidx#94 x y z +[visit_exp `%;%`_config{state#899, `instr*#1014`}(z, [`CONST`_instr{numtype#123}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#125}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#127}((at' : addrtype <: numtype), `%`_num_{i#33865}(n)) `TABLE.COPY`_instr{tableidx#87}(x, y)])] +[visit_exp state#899] +[visit_id state#899] +[visit_exp `instr*#1014`] +[visit_id instr*#1014] +[visit_exp (z, [`CONST`_instr{numtype#123}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#125}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#127}((at' : addrtype <: numtype), `%`_num_{i#33865}(n)) `TABLE.COPY`_instr{tableidx#87}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#123}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#125}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#127}((at' : addrtype <: numtype), `%`_num_{i#33865}(n)) `TABLE.COPY`_instr{tableidx#87}(x, y)]] +[visit_exp `CONST`_instr{numtype#123}((at_1 : addrtype <: numtype), i_1)] +[visit_exp numtype#123] +[visit_id numtype#123] +[visit_exp ((at_1 : addrtype <: numtype), i_1)] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `CONST`_instr{numtype#125}((at_2 : addrtype <: numtype), i_2)] +[visit_exp numtype#125] +[visit_id numtype#125] +[visit_exp ((at_2 : addrtype <: numtype), i_2)] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#127}((at' : addrtype <: numtype), `%`_num_{i#33865}(n))] +[visit_exp numtype#127] +[visit_id numtype#127] +[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#33865}(n))] +[visit_exp (at' : addrtype <: numtype)] +[visit_exp at'] +[visit_id at'] +[visit_exp `%`_num_{i#33865}(n)] +[visit_exp i#33865] +[visit_id i#33865] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `TABLE.COPY`_instr{tableidx#87}(x, y)] +[visit_exp tableidx#87] +[visit_id tableidx#87] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`CONST`_instr{numtype#129}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#131}((at_2 : addrtype <: numtype), i_2) `TABLE.GET`_instr{tableidx#90}(y) `TABLE.SET`_instr{tableidx#92}(x) `CONST`_instr{numtype#133}((at_1 : addrtype <: numtype), `%`_num_{i#33981}((i_1!`%`_num_{i#33971}.0 + 1))) `CONST`_instr{numtype#135}((at_2 : addrtype <: numtype), `%`_num_{i#34017}((i_2!`%`_num_{i#34007}.0 + 1))) `CONST`_instr{numtype#137}((at' : addrtype <: numtype), `%`_num_{i#34039}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr{tableidx#94}(x, y)]] +[visit_exp `CONST`_instr{numtype#129}((at_1 : addrtype <: numtype), i_1)] +[visit_exp numtype#129] +[visit_id numtype#129] +[visit_exp ((at_1 : addrtype <: numtype), i_1)] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp `CONST`_instr{numtype#131}((at_2 : addrtype <: numtype), i_2)] +[visit_exp numtype#131] +[visit_id numtype#131] +[visit_exp ((at_2 : addrtype <: numtype), i_2)] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] not free +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp `TABLE.GET`_instr{tableidx#90}(y)] +[visit_exp tableidx#90] +[visit_id tableidx#90] +[visit_exp (y)] +[visit_exp y] +[visit_id y] not free +[visit_exp `TABLE.SET`_instr{tableidx#92}(x)] +[visit_exp tableidx#92] +[visit_id tableidx#92] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `CONST`_instr{numtype#133}((at_1 : addrtype <: numtype), `%`_num_{i#33981}((i_1!`%`_num_{i#33971}.0 + 1)))] +[visit_exp numtype#133] +[visit_id numtype#133] +[visit_exp ((at_1 : addrtype <: numtype), `%`_num_{i#33981}((i_1!`%`_num_{i#33971}.0 + 1)))] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp `%`_num_{i#33981}((i_1!`%`_num_{i#33971}.0 + 1))] +[visit_exp i#33981] +[visit_id i#33981] +[visit_exp ((i_1!`%`_num_{i#33971}.0 + 1))] +[visit_exp (i_1!`%`_num_{i#33971}.0 + 1)] +[visit_exp i_1!`%`_num_{i#33971}.0] +[visit_exp i_1!`%`_num_{i#33971}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#33971] +[visit_id i#33971] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#135}((at_2 : addrtype <: numtype), `%`_num_{i#34017}((i_2!`%`_num_{i#34007}.0 + 1)))] +[visit_exp numtype#135] +[visit_id numtype#135] +[visit_exp ((at_2 : addrtype <: numtype), `%`_num_{i#34017}((i_2!`%`_num_{i#34007}.0 + 1)))] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] not free +[visit_exp `%`_num_{i#34017}((i_2!`%`_num_{i#34007}.0 + 1))] +[visit_exp i#34017] +[visit_id i#34017] +[visit_exp ((i_2!`%`_num_{i#34007}.0 + 1))] +[visit_exp (i_2!`%`_num_{i#34007}.0 + 1)] +[visit_exp i_2!`%`_num_{i#34007}.0] +[visit_exp i_2!`%`_num_{i#34007}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#34007] +[visit_id i#34007] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#137}((at' : addrtype <: numtype), `%`_num_{i#34039}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#137] +[visit_id numtype#137] +[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#34039}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (at' : addrtype <: numtype)] +[visit_exp at'] +[visit_id at'] not free +[visit_exp `%`_num_{i#34039}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#34039] +[visit_id i#34039] +[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `TABLE.COPY`_instr{tableidx#94}(x, y)] +[visit_exp tableidx#94] +[visit_id tableidx#94] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] not free +[visit_exp y] +[visit_id y] not free +[visit_exp (i_1!`%`_num_{i#34085}.0 <= i_2!`%`_num_{i#34095}.0)] +[visit_exp i_1!`%`_num_{i#34085}.0] +[visit_exp i_1!`%`_num_{i#34085}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#34085] +[visit_id i#34085] +[visit_exp i_2!`%`_num_{i#34095}.0] +[visit_exp i_2!`%`_num_{i#34095}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#34095] +[visit_id i#34095] +[check_dims] at' at_1 at_2 i#34147 i#34201 i#34211 i#34237 i#34247 i#34321 i_1 i_2 instr*#1026 n numtype#139 numtype#141 numtype#143 numtype#145 numtype#147 numtype#149 numtype#151 numtype#153 state#911 tableidx#100 tableidx#102 tableidx#104 tableidx#97 x y z +[visit_exp `%;%`_config{state#911, `instr*#1026`}(z, [`CONST`_instr{numtype#139}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#141}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#143}((at' : addrtype <: numtype), `%`_num_{i#34147}(n)) `TABLE.COPY`_instr{tableidx#97}(x, y)])] +[visit_exp state#911] +[visit_id state#911] +[visit_exp `instr*#1026`] +[visit_id instr*#1026] +[visit_exp (z, [`CONST`_instr{numtype#139}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#141}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#143}((at' : addrtype <: numtype), `%`_num_{i#34147}(n)) `TABLE.COPY`_instr{tableidx#97}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#139}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#141}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#143}((at' : addrtype <: numtype), `%`_num_{i#34147}(n)) `TABLE.COPY`_instr{tableidx#97}(x, y)]] +[visit_exp `CONST`_instr{numtype#139}((at_1 : addrtype <: numtype), i_1)] +[visit_exp numtype#139] +[visit_id numtype#139] +[visit_exp ((at_1 : addrtype <: numtype), i_1)] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `CONST`_instr{numtype#141}((at_2 : addrtype <: numtype), i_2)] +[visit_exp numtype#141] +[visit_id numtype#141] +[visit_exp ((at_2 : addrtype <: numtype), i_2)] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#143}((at' : addrtype <: numtype), `%`_num_{i#34147}(n))] +[visit_exp numtype#143] +[visit_id numtype#143] +[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#34147}(n))] +[visit_exp (at' : addrtype <: numtype)] +[visit_exp at'] +[visit_id at'] +[visit_exp `%`_num_{i#34147}(n)] +[visit_exp i#34147] +[visit_id i#34147] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `TABLE.COPY`_instr{tableidx#97}(x, y)] +[visit_exp tableidx#97] +[visit_id tableidx#97] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`CONST`_instr{numtype#145}((at_1 : addrtype <: numtype), `%`_num_{i#34211}(((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr{numtype#147}((at_2 : addrtype <: numtype), `%`_num_{i#34247}(((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.GET`_instr{tableidx#100}(y) `TABLE.SET`_instr{tableidx#102}(x) `CONST`_instr{numtype#149}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#151}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#153}((at' : addrtype <: numtype), `%`_num_{i#34321}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr{tableidx#104}(x, y)]] +[visit_exp `CONST`_instr{numtype#145}((at_1 : addrtype <: numtype), `%`_num_{i#34211}(((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#145] +[visit_id numtype#145] +[visit_exp ((at_1 : addrtype <: numtype), `%`_num_{i#34211}(((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp `%`_num_{i#34211}(((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#34211] +[visit_id i#34211] +[visit_exp (((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int)] +[visit_exp (i_1!`%`_num_{i#34201}.0 + n)] +[visit_exp i_1!`%`_num_{i#34201}.0] +[visit_exp i_1!`%`_num_{i#34201}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#34201] +[visit_id i#34201] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#147}((at_2 : addrtype <: numtype), `%`_num_{i#34247}(((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#147] +[visit_id numtype#147] +[visit_exp ((at_2 : addrtype <: numtype), `%`_num_{i#34247}(((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] not free +[visit_exp `%`_num_{i#34247}(((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#34247] +[visit_id i#34247] +[visit_exp (((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int)] +[visit_exp (i_2!`%`_num_{i#34237}.0 + n)] +[visit_exp i_2!`%`_num_{i#34237}.0] +[visit_exp i_2!`%`_num_{i#34237}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#34237] +[visit_id i#34237] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `TABLE.GET`_instr{tableidx#100}(y)] +[visit_exp tableidx#100] +[visit_id tableidx#100] +[visit_exp (y)] +[visit_exp y] +[visit_id y] not free +[visit_exp `TABLE.SET`_instr{tableidx#102}(x)] +[visit_exp tableidx#102] +[visit_id tableidx#102] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `CONST`_instr{numtype#149}((at_1 : addrtype <: numtype), i_1)] +[visit_exp numtype#149] +[visit_id numtype#149] +[visit_exp ((at_1 : addrtype <: numtype), i_1)] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp `CONST`_instr{numtype#151}((at_2 : addrtype <: numtype), i_2)] +[visit_exp numtype#151] +[visit_id numtype#151] +[visit_exp ((at_2 : addrtype <: numtype), i_2)] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] not free +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp `CONST`_instr{numtype#153}((at' : addrtype <: numtype), `%`_num_{i#34321}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#153] +[visit_id numtype#153] +[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#34321}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (at' : addrtype <: numtype)] +[visit_exp at'] +[visit_id at'] not free +[visit_exp `%`_num_{i#34321}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#34321] +[visit_id i#34321] +[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `TABLE.COPY`_instr{tableidx#104}(x, y)] +[visit_exp tableidx#104] +[visit_id tableidx#104] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] not free +[visit_exp y] +[visit_id y] not free +[check_dims] at elemidx#17 i i#34401 i#34443 i#34469 instr*#1038 j n numtype#155 numtype#157 numtype#159 ref*#15 ref*#16 state#923 tableidx#107 x y z +[visit_exp `%;%`_config{state#923, `instr*#1038`}(z, [`CONST`_instr{numtype#155}((at : addrtype <: numtype), i) `CONST`_instr{numtype#157}(`I32`_numtype, j) `CONST`_instr{numtype#159}(`I32`_numtype, `%`_num_{i#34401}(n)) `TABLE.INIT`_instr{tableidx#107, elemidx#17}(x, y)])] +[visit_exp state#923] +[visit_id state#923] +[visit_exp `instr*#1038`] +[visit_id instr*#1038] +[visit_exp (z, [`CONST`_instr{numtype#155}((at : addrtype <: numtype), i) `CONST`_instr{numtype#157}(`I32`_numtype, j) `CONST`_instr{numtype#159}(`I32`_numtype, `%`_num_{i#34401}(n)) `TABLE.INIT`_instr{tableidx#107, elemidx#17}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#155}((at : addrtype <: numtype), i) `CONST`_instr{numtype#157}(`I32`_numtype, j) `CONST`_instr{numtype#159}(`I32`_numtype, `%`_num_{i#34401}(n)) `TABLE.INIT`_instr{tableidx#107, elemidx#17}(x, y)]] +[visit_exp `CONST`_instr{numtype#155}((at : addrtype <: numtype), i)] +[visit_exp numtype#155] +[visit_id numtype#155] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#157}(`I32`_numtype, j)] +[visit_exp numtype#157] +[visit_id numtype#157] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#159}(`I32`_numtype, `%`_num_{i#34401}(n))] +[visit_exp numtype#159] +[visit_id numtype#159] +[visit_exp (`I32`_numtype, `%`_num_{i#34401}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#34401}(n)] +[visit_exp i#34401] +[visit_id i#34401] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `TABLE.INIT`_instr{tableidx#107, elemidx#17}(x, y)] +[visit_exp tableidx#107] +[visit_id tableidx#107] +[visit_exp elemidx#17] +[visit_id elemidx#17] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i!`%`_num_{i#34443}.0 + n) > |$table(z, x).`REFS`_tableinst{`ref*#15`}|) \/ ((j!`%`_num_{i#34469}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#16`}|))] +[visit_exp ((i!`%`_num_{i#34443}.0 + n) > |$table(z, x).`REFS`_tableinst{`ref*#15`}|)] +[visit_exp (i!`%`_num_{i#34443}.0 + n)] +[visit_exp i!`%`_num_{i#34443}.0] +[visit_exp i!`%`_num_{i#34443}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#34443] +[visit_id i#34443] +[visit_exp n] +[visit_id n] not free +[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#15`}|] +[visit_exp $table(z, x).`REFS`_tableinst{`ref*#15`}] +[visit_exp $table(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ref*#15`] +[visit_id ref*#15] +[visit_exp ((j!`%`_num_{i#34469}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#16`}|)] +[visit_exp (j!`%`_num_{i#34469}.0 + n)] +[visit_exp j!`%`_num_{i#34469}.0] +[visit_exp j!`%`_num_{i#34469}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#34469] +[visit_id i#34469] +[visit_exp n] +[visit_id n] not free +[visit_exp |$elem(z, y).`REFS`_eleminst{`ref*#16`}|] +[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#16`}] +[visit_exp $elem(z, y)] +[visit_exp z] +[visit_id z] not free +[visit_exp y] +[visit_id y] not free +[visit_exp `ref*#16`] +[visit_id ref*#16] +[check_dims] at elemidx#19 i i#34533 instr*#1050 j n numtype#161 numtype#163 numtype#165 state#935 tableidx#109 x y z +[visit_exp `%;%`_config{state#935, `instr*#1050`}(z, [`CONST`_instr{numtype#161}((at : addrtype <: numtype), i) `CONST`_instr{numtype#163}(`I32`_numtype, j) `CONST`_instr{numtype#165}(`I32`_numtype, `%`_num_{i#34533}(n)) `TABLE.INIT`_instr{tableidx#109, elemidx#19}(x, y)])] +[visit_exp state#935] +[visit_id state#935] +[visit_exp `instr*#1050`] +[visit_id instr*#1050] +[visit_exp (z, [`CONST`_instr{numtype#161}((at : addrtype <: numtype), i) `CONST`_instr{numtype#163}(`I32`_numtype, j) `CONST`_instr{numtype#165}(`I32`_numtype, `%`_num_{i#34533}(n)) `TABLE.INIT`_instr{tableidx#109, elemidx#19}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#161}((at : addrtype <: numtype), i) `CONST`_instr{numtype#163}(`I32`_numtype, j) `CONST`_instr{numtype#165}(`I32`_numtype, `%`_num_{i#34533}(n)) `TABLE.INIT`_instr{tableidx#109, elemidx#19}(x, y)]] +[visit_exp `CONST`_instr{numtype#161}((at : addrtype <: numtype), i)] +[visit_exp numtype#161] +[visit_id numtype#161] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#163}(`I32`_numtype, j)] +[visit_exp numtype#163] +[visit_id numtype#163] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#165}(`I32`_numtype, `%`_num_{i#34533}(n))] +[visit_exp numtype#165] +[visit_id numtype#165] +[visit_exp (`I32`_numtype, `%`_num_{i#34533}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#34533}(n)] +[visit_exp i#34533] +[visit_id i#34533] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `TABLE.INIT`_instr{tableidx#109, elemidx#19}(x, y)] +[visit_exp tableidx#109] +[visit_id tableidx#109] +[visit_exp elemidx#19] +[visit_id elemidx#19] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp []] +[visit_exp (n = 0)] +[visit_exp n] +[visit_id n] not free +[visit_exp 0] +[check_dims] at elemidx#21 elemidx#23 i i#34613 i#34675 i#34715 i#34725 i#34751 i#34761 i#34783 instr*#1062 j n numtype#167 numtype#169 numtype#171 numtype#173 numtype#175 numtype#177 numtype#179 ref*#17 state#947 tableidx#111 tableidx#113 tableidx#115 x y z +[visit_exp `%;%`_config{state#947, `instr*#1062`}(z, [`CONST`_instr{numtype#167}((at : addrtype <: numtype), i) `CONST`_instr{numtype#169}(`I32`_numtype, j) `CONST`_instr{numtype#171}(`I32`_numtype, `%`_num_{i#34613}(n)) `TABLE.INIT`_instr{tableidx#111, elemidx#21}(x, y)])] +[visit_exp state#947] +[visit_id state#947] +[visit_exp `instr*#1062`] +[visit_id instr*#1062] +[visit_exp (z, [`CONST`_instr{numtype#167}((at : addrtype <: numtype), i) `CONST`_instr{numtype#169}(`I32`_numtype, j) `CONST`_instr{numtype#171}(`I32`_numtype, `%`_num_{i#34613}(n)) `TABLE.INIT`_instr{tableidx#111, elemidx#21}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#167}((at : addrtype <: numtype), i) `CONST`_instr{numtype#169}(`I32`_numtype, j) `CONST`_instr{numtype#171}(`I32`_numtype, `%`_num_{i#34613}(n)) `TABLE.INIT`_instr{tableidx#111, elemidx#21}(x, y)]] +[visit_exp `CONST`_instr{numtype#167}((at : addrtype <: numtype), i)] +[visit_exp numtype#167] +[visit_id numtype#167] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#169}(`I32`_numtype, j)] +[visit_exp numtype#169] +[visit_id numtype#169] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#171}(`I32`_numtype, `%`_num_{i#34613}(n))] +[visit_exp numtype#171] +[visit_id numtype#171] +[visit_exp (`I32`_numtype, `%`_num_{i#34613}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#34613}(n)] +[visit_exp i#34613] +[visit_id i#34613] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `TABLE.INIT`_instr{tableidx#111, elemidx#21}(x, y)] +[visit_exp tableidx#111] +[visit_id tableidx#111] +[visit_exp elemidx#21] +[visit_id elemidx#21] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`CONST`_instr{numtype#173}((at : addrtype <: numtype), i) ($elem(z, y).`REFS`_eleminst{`ref*#17`}[j!`%`_num_{i#34675}.0] : ref <: instr) `TABLE.SET`_instr{tableidx#113}(x) `CONST`_instr{numtype#175}((at : addrtype <: numtype), `%`_num_{i#34725}((i!`%`_num_{i#34715}.0 + 1))) `CONST`_instr{numtype#177}(`I32`_numtype, `%`_num_{i#34761}((j!`%`_num_{i#34751}.0 + 1))) `CONST`_instr{numtype#179}(`I32`_numtype, `%`_num_{i#34783}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.INIT`_instr{tableidx#115, elemidx#23}(x, y)]] +[visit_exp `CONST`_instr{numtype#173}((at : addrtype <: numtype), i)] +[visit_exp numtype#173] +[visit_id numtype#173] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp i] +[visit_id i] not free +[visit_exp ($elem(z, y).`REFS`_eleminst{`ref*#17`}[j!`%`_num_{i#34675}.0] : ref <: instr)] +[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#17`}[j!`%`_num_{i#34675}.0]] +[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#17`}] +[visit_exp $elem(z, y)] +[visit_exp z] +[visit_id z] not free +[visit_exp y] +[visit_id y] not free +[visit_exp `ref*#17`] +[visit_id ref*#17] +[visit_exp j!`%`_num_{i#34675}.0] +[visit_exp j!`%`_num_{i#34675}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#34675] +[visit_id i#34675] +[visit_exp `TABLE.SET`_instr{tableidx#113}(x)] +[visit_exp tableidx#113] +[visit_id tableidx#113] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `CONST`_instr{numtype#175}((at : addrtype <: numtype), `%`_num_{i#34725}((i!`%`_num_{i#34715}.0 + 1)))] +[visit_exp numtype#175] +[visit_id numtype#175] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#34725}((i!`%`_num_{i#34715}.0 + 1)))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#34725}((i!`%`_num_{i#34715}.0 + 1))] +[visit_exp i#34725] +[visit_id i#34725] +[visit_exp ((i!`%`_num_{i#34715}.0 + 1))] +[visit_exp (i!`%`_num_{i#34715}.0 + 1)] +[visit_exp i!`%`_num_{i#34715}.0] +[visit_exp i!`%`_num_{i#34715}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#34715] +[visit_id i#34715] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#177}(`I32`_numtype, `%`_num_{i#34761}((j!`%`_num_{i#34751}.0 + 1)))] +[visit_exp numtype#177] +[visit_id numtype#177] +[visit_exp (`I32`_numtype, `%`_num_{i#34761}((j!`%`_num_{i#34751}.0 + 1)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#34761}((j!`%`_num_{i#34751}.0 + 1))] +[visit_exp i#34761] +[visit_id i#34761] +[visit_exp ((j!`%`_num_{i#34751}.0 + 1))] +[visit_exp (j!`%`_num_{i#34751}.0 + 1)] +[visit_exp j!`%`_num_{i#34751}.0] +[visit_exp j!`%`_num_{i#34751}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#34751] +[visit_id i#34751] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#179}(`I32`_numtype, `%`_num_{i#34783}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#179] +[visit_id numtype#179] +[visit_exp (`I32`_numtype, `%`_num_{i#34783}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#34783}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#34783] +[visit_id i#34783] +[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `TABLE.INIT`_instr{tableidx#115, elemidx#23}(x, y)] +[visit_exp tableidx#115] +[visit_id tableidx#115] +[visit_exp elemidx#23] +[visit_id elemidx#23] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] not free +[visit_exp y] +[visit_id y] not free +[check_dims] elemidx#25 instr*#1074 instr*#1086 state#959 state#971 x z +[visit_exp `%;%`_config{state#959, `instr*#1074`}(z, [`ELEM.DROP`_instr{elemidx#25}(x)])] +[visit_exp state#959] +[visit_id state#959] +[visit_exp `instr*#1074`] +[visit_id instr*#1074] +[visit_exp (z, [`ELEM.DROP`_instr{elemidx#25}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`ELEM.DROP`_instr{elemidx#25}(x)]] +[visit_exp `ELEM.DROP`_instr{elemidx#25}(x)] +[visit_exp elemidx#25] +[visit_id elemidx#25] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#971, `instr*#1086`}($with_elem(z, x, []), [])] +[visit_exp state#971] +[visit_id state#971] +[visit_exp `instr*#1086`] +[visit_id instr*#1086] +[visit_exp ($with_elem(z, x, []), [])] +[visit_exp $with_elem(z, x, [])] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp []] +[visit_exp []] +[check_dims] ao at byte*#1849 i i#34883 i#34893 instr*#1098 memarg#35 memidx#67 nt numtype#181 numtype?#7 state#983 u64#405 x z +[visit_exp `%;%`_config{state#983, `instr*#1098`}(z, [`CONST`_instr{numtype#181}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#7`, memidx#67, memarg#35}(nt, ?(), x, ao)])] +[visit_exp state#983] +[visit_id state#983] +[visit_exp `instr*#1098`] +[visit_id instr*#1098] +[visit_exp (z, [`CONST`_instr{numtype#181}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#7`, memidx#67, memarg#35}(nt, ?(), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#181}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#7`, memidx#67, memarg#35}(nt, ?(), x, ao)]] +[visit_exp `CONST`_instr{numtype#181}((at : addrtype <: numtype), i)] +[visit_exp numtype#181] +[visit_id numtype#181] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `LOAD`_instr{`numtype?#7`, memidx#67, memarg#35}(nt, ?(), x, ao)] +[visit_exp `numtype?#7`] +[visit_id numtype?#7] +[visit_exp memidx#67] +[visit_id memidx#67] +[visit_exp memarg#35] +[visit_id memarg#35] +[visit_exp (nt, ?(), x, ao)] +[visit_exp nt] +[visit_id nt] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i!`%`_num_{i#34883}.0 + ao.`OFFSET`_memarg{u64#405}!`%`_u64{i#34893}.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1849`}|)] +[visit_exp ((i!`%`_num_{i#34883}.0 + ao.`OFFSET`_memarg{u64#405}!`%`_u64{i#34893}.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_{i#34883}.0 + ao.`OFFSET`_memarg{u64#405}!`%`_u64{i#34893}.0)] +[visit_exp i!`%`_num_{i#34883}.0] +[visit_exp i!`%`_num_{i#34883}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#34883] +[visit_id i#34883] +[visit_exp ao.`OFFSET`_memarg{u64#405}!`%`_u64{i#34893}.0] +[visit_exp ao.`OFFSET`_memarg{u64#405}!`%`_u64{i#34893}] +[visit_exp ao.`OFFSET`_memarg{u64#405}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#405] +[visit_id u64#405] +[visit_exp i#34893] +[visit_id i#34893] +[visit_exp ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (($size(nt) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ($size(nt) : nat <:> rat)] +[visit_exp $size(nt)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1849`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1849`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1849`] +[visit_id byte*#1849] +[check_dims] ao at byte*#1850 c i i#34963 i#34973 instr*#1110 memarg#37 memidx#69 nt numtype#184 numtype#187 numtype?#8 state#995 u64#406 x z +[visit_exp `%;%`_config{state#995, `instr*#1110`}(z, [`CONST`_instr{numtype#184}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#8`, memidx#69, memarg#37}(nt, ?(), x, ao)])] +[visit_exp state#995] +[visit_id state#995] +[visit_exp `instr*#1110`] +[visit_id instr*#1110] +[visit_exp (z, [`CONST`_instr{numtype#184}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#8`, memidx#69, memarg#37}(nt, ?(), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#184}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#8`, memidx#69, memarg#37}(nt, ?(), x, ao)]] +[visit_exp `CONST`_instr{numtype#184}((at : addrtype <: numtype), i)] +[visit_exp numtype#184] +[visit_id numtype#184] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `LOAD`_instr{`numtype?#8`, memidx#69, memarg#37}(nt, ?(), x, ao)] +[visit_exp `numtype?#8`] +[visit_id numtype?#8] +[visit_exp memidx#69] +[visit_id memidx#69] +[visit_exp memarg#37] +[visit_id memarg#37] +[visit_exp (nt, ?(), x, ao)] +[visit_exp nt] +[visit_id nt] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp [`CONST`_instr{numtype#187}(nt, c)]] +[visit_exp `CONST`_instr{numtype#187}(nt, c)] +[visit_exp numtype#187] +[visit_id numtype#187] +[visit_exp (nt, c)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp c] +[visit_id c] +[visit_exp ($nbytes_(nt, c) = $mem(z, x).`BYTES`_meminst{`byte*#1850`}[(i!`%`_num_{i#34963}.0 + ao.`OFFSET`_memarg{u64#406}!`%`_u64{i#34973}.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp $nbytes_(nt, c)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp c] +[visit_id c] not free +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1850`}[(i!`%`_num_{i#34963}.0 + ao.`OFFSET`_memarg{u64#406}!`%`_u64{i#34973}.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1850`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1850`] +[visit_id byte*#1850] +[visit_exp (i!`%`_num_{i#34963}.0 + ao.`OFFSET`_memarg{u64#406}!`%`_u64{i#34973}.0)] +[visit_exp i!`%`_num_{i#34963}.0] +[visit_exp i!`%`_num_{i#34963}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#34963] +[visit_id i#34963] +[visit_exp ao.`OFFSET`_memarg{u64#406}!`%`_u64{i#34973}.0] +[visit_exp ao.`OFFSET`_memarg{u64#406}!`%`_u64{i#34973}] +[visit_exp ao.`OFFSET`_memarg{u64#406}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#406] +[visit_id u64#406] +[visit_exp i#34973] +[visit_id i#34973] +[visit_exp ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (($size(nt) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ($size(nt) : nat <:> rat)] +[visit_exp $size(nt)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[check_dims] Inn ao at byte*#1851 i i#35021 i#35028 i#35060 i#35070 instr*#1122 memarg#39 memidx#71 n numtype#189 numtype?#9 state#1007 sx sx#270 sz#156 u64#407 x z +[visit_exp `%;%`_config{state#1007, `instr*#1122`}(z, [`CONST`_instr{numtype#189}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#9`, memidx#71, memarg#39}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)), x, ao)])] +[visit_exp state#1007] +[visit_id state#1007] +[visit_exp `instr*#1122`] +[visit_id instr*#1122] +[visit_exp (z, [`CONST`_instr{numtype#189}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#9`, memidx#71, memarg#39}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#189}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#9`, memidx#71, memarg#39}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)), x, ao)]] +[visit_exp `CONST`_instr{numtype#189}((at : addrtype <: numtype), i)] +[visit_exp numtype#189] +[visit_id numtype#189] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `LOAD`_instr{`numtype?#9`, memidx#71, memarg#39}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)), x, ao)] +[visit_exp `numtype?#9`] +[visit_id numtype?#9] +[visit_exp memidx#71] +[visit_id memidx#71] +[visit_exp memarg#39] +[visit_id memarg#39] +[visit_exp ((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)), x, ao)] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx))] +[visit_exp `%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)] +[visit_exp sz#156] +[visit_id sz#156] +[visit_exp sx#270] +[visit_id sx#270] +[visit_exp i#35021] +[visit_id i#35021] +[visit_exp (`%`_sz{i#35028}(n), sx)] +[visit_exp `%`_sz{i#35028}(n)] +[visit_exp i#35028] +[visit_id i#35028] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp sx] +[visit_id sx] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i!`%`_num_{i#35060}.0 + ao.`OFFSET`_memarg{u64#407}!`%`_u64{i#35070}.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1851`}|)] +[visit_exp ((i!`%`_num_{i#35060}.0 + ao.`OFFSET`_memarg{u64#407}!`%`_u64{i#35070}.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_{i#35060}.0 + ao.`OFFSET`_memarg{u64#407}!`%`_u64{i#35070}.0)] +[visit_exp i!`%`_num_{i#35060}.0] +[visit_exp i!`%`_num_{i#35060}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#35060] +[visit_id i#35060] +[visit_exp ao.`OFFSET`_memarg{u64#407}!`%`_u64{i#35070}.0] +[visit_exp ao.`OFFSET`_memarg{u64#407}!`%`_u64{i#35070}] +[visit_exp ao.`OFFSET`_memarg{u64#407}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#407] +[visit_id u64#407] +[visit_exp i#35070] +[visit_id i#35070] +[visit_exp (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp ((n : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (n : nat <:> rat)] +[visit_exp n] +[visit_id n] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1851`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1851`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1851`] +[visit_id byte*#1851] +[check_dims] Inn ao at byte*#1852 c i i#35122 i#35129 i#35199 i#35209 instr*#1134 memarg#41 memidx#73 n numtype#192 numtype#195 numtype?#10 state#1019 sx sx#272 sz#158 u64#408 x z +[visit_exp `%;%`_config{state#1019, `instr*#1134`}(z, [`CONST`_instr{numtype#192}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#10`, memidx#73, memarg#41}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)), x, ao)])] +[visit_exp state#1019] +[visit_id state#1019] +[visit_exp `instr*#1134`] +[visit_id instr*#1134] +[visit_exp (z, [`CONST`_instr{numtype#192}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#10`, memidx#73, memarg#41}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#192}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#10`, memidx#73, memarg#41}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)), x, ao)]] +[visit_exp `CONST`_instr{numtype#192}((at : addrtype <: numtype), i)] +[visit_exp numtype#192] +[visit_id numtype#192] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `LOAD`_instr{`numtype?#10`, memidx#73, memarg#41}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)), x, ao)] +[visit_exp `numtype?#10`] +[visit_id numtype?#10] +[visit_exp memidx#73] +[visit_id memidx#73] +[visit_exp memarg#41] +[visit_id memarg#41] +[visit_exp ((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)), x, ao)] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx))] +[visit_exp `%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)] +[visit_exp sz#158] +[visit_id sz#158] +[visit_exp sx#272] +[visit_id sx#272] +[visit_exp i#35122] +[visit_id i#35122] +[visit_exp (`%`_sz{i#35129}(n), sx)] +[visit_exp `%`_sz{i#35129}(n)] +[visit_exp i#35129] +[visit_id i#35129] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp sx] +[visit_id sx] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp [`CONST`_instr{numtype#195}((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))]] +[visit_exp `CONST`_instr{numtype#195}((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))] +[visit_exp numtype#195] +[visit_id numtype#195] +[visit_exp ((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp $extend__(n, $size((Inn : Inn <: numtype)), sx, c)] +[visit_exp n] +[visit_id n] not free +[visit_exp $size((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp c] +[visit_id c] +[visit_exp ($ibytes_(n, c) = $mem(z, x).`BYTES`_meminst{`byte*#1852`}[(i!`%`_num_{i#35199}.0 + ao.`OFFSET`_memarg{u64#408}!`%`_u64{i#35209}.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp $ibytes_(n, c)] +[visit_exp n] +[visit_id n] not free +[visit_exp c] +[visit_id c] not free +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1852`}[(i!`%`_num_{i#35199}.0 + ao.`OFFSET`_memarg{u64#408}!`%`_u64{i#35209}.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1852`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1852`] +[visit_id byte*#1852] +[visit_exp (i!`%`_num_{i#35199}.0 + ao.`OFFSET`_memarg{u64#408}!`%`_u64{i#35209}.0)] +[visit_exp i!`%`_num_{i#35199}.0] +[visit_exp i!`%`_num_{i#35199}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#35199] +[visit_id i#35199] +[visit_exp ao.`OFFSET`_memarg{u64#408}!`%`_u64{i#35209}.0] +[visit_exp ao.`OFFSET`_memarg{u64#408}!`%`_u64{i#35209}] +[visit_exp ao.`OFFSET`_memarg{u64#408}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#408] +[visit_id u64#408] +[visit_exp i#35209] +[visit_id i#35209] +[visit_exp (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp ((n : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (n : nat <:> rat)] +[visit_exp n] +[visit_id n] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[check_dims] ao at byte*#1853 i i#35293 i#35303 instr*#1146 memarg#43 memidx#75 numtype#197 state#1031 u64#409 vectype?#6 x z +[visit_exp `%;%`_config{state#1031, `instr*#1146`}(z, [`CONST`_instr{numtype#197}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#6`, memidx#75, memarg#43}(`V128`_vectype, ?(), x, ao)])] +[visit_exp state#1031] +[visit_id state#1031] +[visit_exp `instr*#1146`] +[visit_id instr*#1146] +[visit_exp (z, [`CONST`_instr{numtype#197}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#6`, memidx#75, memarg#43}(`V128`_vectype, ?(), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#197}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#6`, memidx#75, memarg#43}(`V128`_vectype, ?(), x, ao)]] +[visit_exp `CONST`_instr{numtype#197}((at : addrtype <: numtype), i)] +[visit_exp numtype#197] +[visit_id numtype#197] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VLOAD`_instr{`vectype?#6`, memidx#75, memarg#43}(`V128`_vectype, ?(), x, ao)] +[visit_exp `vectype?#6`] +[visit_id vectype?#6] +[visit_exp memidx#75] +[visit_id memidx#75] +[visit_exp memarg#43] +[visit_id memarg#43] +[visit_exp (`V128`_vectype, ?(), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i!`%`_num_{i#35293}.0 + ao.`OFFSET`_memarg{u64#409}!`%`_u64{i#35303}.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1853`}|)] +[visit_exp ((i!`%`_num_{i#35293}.0 + ao.`OFFSET`_memarg{u64#409}!`%`_u64{i#35303}.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_{i#35293}.0 + ao.`OFFSET`_memarg{u64#409}!`%`_u64{i#35303}.0)] +[visit_exp i!`%`_num_{i#35293}.0] +[visit_exp i!`%`_num_{i#35293}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#35293] +[visit_id i#35293] +[visit_exp ao.`OFFSET`_memarg{u64#409}!`%`_u64{i#35303}.0] +[visit_exp ao.`OFFSET`_memarg{u64#409}!`%`_u64{i#35303}] +[visit_exp ao.`OFFSET`_memarg{u64#409}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#409] +[visit_id u64#409] +[visit_exp i#35303] +[visit_id i#35303] +[visit_exp ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] +[visit_exp $vsize(`V128`_vectype)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1853`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1853`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1853`] +[visit_id byte*#1853] +[check_dims] ao at byte*#1854 c i i#35387 i#35397 instr*#1158 memarg#45 memidx#77 numtype#199 state#1043 u64#410 vectype#64 vectype?#7 x z +[visit_exp `%;%`_config{state#1043, `instr*#1158`}(z, [`CONST`_instr{numtype#199}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#7`, memidx#77, memarg#45}(`V128`_vectype, ?(), x, ao)])] +[visit_exp state#1043] +[visit_id state#1043] +[visit_exp `instr*#1158`] +[visit_id instr*#1158] +[visit_exp (z, [`CONST`_instr{numtype#199}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#7`, memidx#77, memarg#45}(`V128`_vectype, ?(), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#199}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#7`, memidx#77, memarg#45}(`V128`_vectype, ?(), x, ao)]] +[visit_exp `CONST`_instr{numtype#199}((at : addrtype <: numtype), i)] +[visit_exp numtype#199] +[visit_id numtype#199] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VLOAD`_instr{`vectype?#7`, memidx#77, memarg#45}(`V128`_vectype, ?(), x, ao)] +[visit_exp `vectype?#7`] +[visit_id vectype?#7] +[visit_exp memidx#77] +[visit_id memidx#77] +[visit_exp memarg#45] +[visit_id memarg#45] +[visit_exp (`V128`_vectype, ?(), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp [`VCONST`_instr{vectype#64}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#64}(`V128`_vectype, c)] +[visit_exp vectype#64] +[visit_id vectype#64] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp ($vbytes_(`V128`_vectype, c) = $mem(z, x).`BYTES`_meminst{`byte*#1854`}[(i!`%`_num_{i#35387}.0 + ao.`OFFSET`_memarg{u64#410}!`%`_u64{i#35397}.0) : ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp $vbytes_(`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] not free +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1854`}[(i!`%`_num_{i#35387}.0 + ao.`OFFSET`_memarg{u64#410}!`%`_u64{i#35397}.0) : ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1854`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1854`] +[visit_id byte*#1854] +[visit_exp (i!`%`_num_{i#35387}.0 + ao.`OFFSET`_memarg{u64#410}!`%`_u64{i#35397}.0)] +[visit_exp i!`%`_num_{i#35387}.0] +[visit_exp i!`%`_num_{i#35387}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#35387] +[visit_id i#35387] +[visit_exp ao.`OFFSET`_memarg{u64#410}!`%`_u64{i#35397}.0] +[visit_exp ao.`OFFSET`_memarg{u64#410}!`%`_u64{i#35397}] +[visit_exp ao.`OFFSET`_memarg{u64#410}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#410] +[visit_id u64#410] +[visit_exp i#35397] +[visit_id i#35397] +[visit_exp ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] +[visit_exp $vsize(`V128`_vectype)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[check_dims] K M M#63 ao at byte*#1855 i i#35475 i#35482 i#35514 i#35524 instr*#1170 memarg#47 memidx#79 numtype#201 state#1055 sx sx#289 sz#205 u64#411 vectype?#8 x z +[visit_exp `%;%`_config{state#1055, `instr*#1170`}(z, [`CONST`_instr{numtype#201}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#8`, memidx#79, memarg#47}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)), x, ao)])] +[visit_exp state#1055] +[visit_id state#1055] +[visit_exp `instr*#1170`] +[visit_id instr*#1170] +[visit_exp (z, [`CONST`_instr{numtype#201}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#8`, memidx#79, memarg#47}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#201}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#8`, memidx#79, memarg#47}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)), x, ao)]] +[visit_exp `CONST`_instr{numtype#201}((at : addrtype <: numtype), i)] +[visit_exp numtype#201] +[visit_id numtype#201] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VLOAD`_instr{`vectype?#8`, memidx#79, memarg#47}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)), x, ao)] +[visit_exp `vectype?#8`] +[visit_id vectype?#8] +[visit_exp memidx#79] +[visit_id memidx#79] +[visit_exp memarg#47] +[visit_id memarg#47] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)] +[visit_exp sz#205] +[visit_id sz#205] +[visit_exp M#63] +[visit_id M#63] +[visit_exp sx#289] +[visit_id sx#289] +[visit_exp i#35475] +[visit_id i#35475] +[visit_exp (`%`_sz{i#35482}(M), K, sx)] +[visit_exp `%`_sz{i#35482}(M)] +[visit_exp i#35482] +[visit_id i#35482] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp K] +[visit_id K] +[visit_exp sx] +[visit_id sx] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i!`%`_num_{i#35514}.0 + ao.`OFFSET`_memarg{u64#411}!`%`_u64{i#35524}.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1855`}|)] +[visit_exp ((i!`%`_num_{i#35514}.0 + ao.`OFFSET`_memarg{u64#411}!`%`_u64{i#35524}.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_{i#35514}.0 + ao.`OFFSET`_memarg{u64#411}!`%`_u64{i#35524}.0)] +[visit_exp i!`%`_num_{i#35514}.0] +[visit_exp i!`%`_num_{i#35514}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#35514] +[visit_id i#35514] +[visit_exp ao.`OFFSET`_memarg{u64#411}!`%`_u64{i#35524}.0] +[visit_exp ao.`OFFSET`_memarg{u64#411}!`%`_u64{i#35524}] +[visit_exp ao.`OFFSET`_memarg{u64#411}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#411] +[visit_id u64#411] +[visit_exp i#35524] +[visit_id i#35524] +[visit_exp ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (((M * K) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ((M * K) : nat <:> rat)] +[visit_exp (M * K)] +[visit_exp M] +[visit_id M] not free +[visit_exp K] +[visit_id K] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1855`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1855`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1855`] +[visit_id byte*#1855] +[check_dims] Jnn K M M#80 ao at byte*#1856 c dim#7243 i i#35576 i#35583 i#35641 i#35651 i#35700 i#35707 instr*#1182 j k lanetype#7243 memarg#49 memidx#81 numtype#203 state#1067 sx sx#306 sz#252 u64#412 vectype#68 vectype?#9 x z +[visit_exp `%;%`_config{state#1067, `instr*#1182`}(z, [`CONST`_instr{numtype#203}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#9`, memidx#81, memarg#49}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)), x, ao)])] +[visit_exp state#1067] +[visit_id state#1067] +[visit_exp `instr*#1182`] +[visit_id instr*#1182] +[visit_exp (z, [`CONST`_instr{numtype#203}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#9`, memidx#81, memarg#49}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#203}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#9`, memidx#81, memarg#49}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)), x, ao)]] +[visit_exp `CONST`_instr{numtype#203}((at : addrtype <: numtype), i)] +[visit_exp numtype#203] +[visit_id numtype#203] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VLOAD`_instr{`vectype?#9`, memidx#81, memarg#49}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)), x, ao)] +[visit_exp `vectype?#9`] +[visit_id vectype?#9] +[visit_exp memidx#81] +[visit_id memidx#81] +[visit_exp memarg#49] +[visit_id memarg#49] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)] +[visit_exp sz#252] +[visit_id sz#252] +[visit_exp M#80] +[visit_id M#80] +[visit_exp sx#306] +[visit_id sx#306] +[visit_exp i#35576] +[visit_id i#35576] +[visit_exp (`%`_sz{i#35583}(M), K, sx)] +[visit_exp `%`_sz{i#35583}(M)] +[visit_exp i#35583] +[visit_id i#35583] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp K] +[visit_id K] +[visit_exp sx] +[visit_id sx] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp [`VCONST`_instr{vectype#68}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#68}(`V128`_vectype, c)] +[visit_exp vectype#68] +[visit_id vectype#68] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[scope_enter k] +[scope_enter byte*#1856] +[scope_enter i#35641] +[scope_enter i#35651] +[scope_enter j] +[scope_enter u64#412] +[visit_exp ($ibytes_(M, j) = $mem(z, x).`BYTES`_meminst{`byte*#1856`}[((i!`%`_num_{i#35641}.0 + ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp $ibytes_(M, j)] +[visit_exp M] +[visit_id M] not free +[visit_exp j] +[visit_id j] not free +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1856`}[((i!`%`_num_{i#35641}.0 + ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1856`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1856`] +[visit_id byte*#1856] not free +[visit_exp ((i!`%`_num_{i#35641}.0 + ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_{i#35641}.0 + ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}.0)] +[visit_exp i!`%`_num_{i#35641}.0] +[visit_exp i!`%`_num_{i#35641}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#35641] +[visit_id i#35641] not free +[visit_exp ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}.0] +[visit_exp ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}] +[visit_exp ao.`OFFSET`_memarg{u64#412}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#412] +[visit_id u64#412] not free +[visit_exp i#35651] +[visit_id i#35651] not free +[visit_exp ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (((k * M) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ((k * M) : nat <:> rat)] +[visit_exp (k * M)] +[visit_exp k] +[visit_id k] +[visit_exp M] +[visit_id M] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp ((M : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (M : nat <:> rat)] +[visit_exp M] +[visit_id M] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_id k] not free +[visit_id byte*#1856] not free +[visit_id i#35641] not free +[visit_id i#35651] not free +[visit_id j] not free +[visit_id u64#412] not free +[scope_exit u64#412] +[scope_exit j] +[scope_exit i#35651] +[scope_exit i#35641] +[scope_exit byte*#1856] +[scope_exit k] +[visit_exp K] +[visit_id K] not free +[visit_exp `byte*#1856*`] +[visit_id byte*#1856*] no dims +[visit_id byte*#1856*] +[visit_exp `i#35641*`] +[visit_id i#35641*] no dims +[visit_id i#35641*] +[visit_exp `i#35651*`] +[visit_id i#35651*] no dims +[visit_id i#35651*] +[visit_exp `j*`] +[visit_id j*] no dims +[visit_id j*] +[visit_exp `u64#412*`] +[visit_id u64#412*] no dims +[visit_id u64#412*] +[visit_exp ((c = $inv_lanes_(`%X%`_shape{lanetype#7243, dim#7243, i#35700}((Jnn : Jnn <: lanetype), `%`_dim{i#35707}(K)), $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`})) /\ ($jsizenn(Jnn) = (M * 2)))] +[visit_exp (c = $inv_lanes_(`%X%`_shape{lanetype#7243, dim#7243, i#35700}((Jnn : Jnn <: lanetype), `%`_dim{i#35707}(K)), $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`}))] +[visit_exp c] +[visit_id c] not free +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#7243, dim#7243, i#35700}((Jnn : Jnn <: lanetype), `%`_dim{i#35707}(K)), $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`})] +[visit_exp `%X%`_shape{lanetype#7243, dim#7243, i#35700}((Jnn : Jnn <: lanetype), `%`_dim{i#35707}(K))] +[visit_exp lanetype#7243] +[visit_id lanetype#7243] +[visit_exp dim#7243] +[visit_id dim#7243] +[visit_exp i#35700] +[visit_id i#35700] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#35707}(K))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#35707}(K)] +[visit_exp i#35707] +[visit_id i#35707] +[visit_exp (K)] +[visit_exp K] +[visit_id K] not free +[visit_exp $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`}] +[scope_enter j] +[visit_exp $extend__(M, $jsizenn(Jnn), sx, j)] +[visit_exp M] +[visit_id M] not free +[visit_exp $jsizenn(Jnn)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp sx] +[visit_id sx] not free +[visit_exp j] +[visit_id j] not free +[visit_id j] not free +[scope_exit j] +[visit_exp K] +[visit_id K] not free +[visit_exp `j*`] +[visit_id j*] not free +[visit_id j*] no dims +[visit_exp ($jsizenn(Jnn) = (M * 2))] +[visit_exp $jsizenn(Jnn)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp (M * 2)] +[visit_exp M] +[visit_id M] not free +[visit_exp 2] +[check_dims] N ao at byte*#1857 i i#35834 i#35866 i#35876 instr*#1194 memarg#51 memidx#83 numtype#205 state#1079 sz#299 u64#413 vectype?#10 x z +[visit_exp `%;%`_config{state#1079, `instr*#1194`}(z, [`CONST`_instr{numtype#205}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#10`, memidx#83, memarg#51}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))), x, ao)])] +[visit_exp state#1079] +[visit_id state#1079] +[visit_exp `instr*#1194`] +[visit_id instr*#1194] +[visit_exp (z, [`CONST`_instr{numtype#205}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#10`, memidx#83, memarg#51}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#205}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#10`, memidx#83, memarg#51}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))), x, ao)]] +[visit_exp `CONST`_instr{numtype#205}((at : addrtype <: numtype), i)] +[visit_exp numtype#205] +[visit_id numtype#205] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VLOAD`_instr{`vectype?#10`, memidx#83, memarg#51}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))), x, ao)] +[visit_exp `vectype?#10`] +[visit_id vectype?#10] +[visit_exp memidx#83] +[visit_id memidx#83] +[visit_exp memarg#51] +[visit_id memarg#51] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N)))] +[visit_exp `SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))] +[visit_exp sz#299] +[visit_id sz#299] +[visit_exp (`%`_sz{i#35834}(N))] +[visit_exp `%`_sz{i#35834}(N)] +[visit_exp i#35834] +[visit_id i#35834] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i!`%`_num_{i#35866}.0 + ao.`OFFSET`_memarg{u64#413}!`%`_u64{i#35876}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1857`}|)] +[visit_exp ((i!`%`_num_{i#35866}.0 + ao.`OFFSET`_memarg{u64#413}!`%`_u64{i#35876}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_{i#35866}.0 + ao.`OFFSET`_memarg{u64#413}!`%`_u64{i#35876}.0)] +[visit_exp i!`%`_num_{i#35866}.0] +[visit_exp i!`%`_num_{i#35866}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#35866] +[visit_id i#35866] +[visit_exp ao.`OFFSET`_memarg{u64#413}!`%`_u64{i#35876}.0] +[visit_exp ao.`OFFSET`_memarg{u64#413}!`%`_u64{i#35876}] +[visit_exp ao.`OFFSET`_memarg{u64#413}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#413] +[visit_id u64#413] +[visit_exp i#35876] +[visit_id i#35876] +[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1857`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1857`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1857`] +[visit_id byte*#1857] +[check_dims] Jnn M N ao at byte*#1858 c dim#7267 i i#35934 i#35992 i#36002 i#36033 i#36040 i#36120 i#36121 instr*#1206 j lanetype#7267 memarg#53 memidx#85 numtype#207 state#1091 sz#346 u64#414 vectype#72 vectype?#11 x z +[visit_exp `%;%`_config{state#1091, `instr*#1206`}(z, [`CONST`_instr{numtype#207}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#11`, memidx#85, memarg#53}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))), x, ao)])] +[visit_exp state#1091] +[visit_id state#1091] +[visit_exp `instr*#1206`] +[visit_id instr*#1206] +[visit_exp (z, [`CONST`_instr{numtype#207}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#11`, memidx#85, memarg#53}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#207}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#11`, memidx#85, memarg#53}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))), x, ao)]] +[visit_exp `CONST`_instr{numtype#207}((at : addrtype <: numtype), i)] +[visit_exp numtype#207] +[visit_id numtype#207] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VLOAD`_instr{`vectype?#11`, memidx#85, memarg#53}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))), x, ao)] +[visit_exp `vectype?#11`] +[visit_id vectype?#11] +[visit_exp memidx#85] +[visit_id memidx#85] +[visit_exp memarg#53] +[visit_id memarg#53] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N)))] +[visit_exp `SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))] +[visit_exp sz#346] +[visit_id sz#346] +[visit_exp (`%`_sz{i#35934}(N))] +[visit_exp `%`_sz{i#35934}(N)] +[visit_exp i#35934] +[visit_id i#35934] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp [`VCONST`_instr{vectype#72}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#72}(`V128`_vectype, c)] +[visit_exp vectype#72] +[visit_id vectype#72] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst{`byte*#1858`}[(i!`%`_num_{i#35992}.0 + ao.`OFFSET`_memarg{u64#414}!`%`_u64{i#36002}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp $ibytes_(N, j)] +[visit_exp N] +[visit_id N] not free +[visit_exp j] +[visit_id j] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1858`}[(i!`%`_num_{i#35992}.0 + ao.`OFFSET`_memarg{u64#414}!`%`_u64{i#36002}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1858`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1858`] +[visit_id byte*#1858] +[visit_exp (i!`%`_num_{i#35992}.0 + ao.`OFFSET`_memarg{u64#414}!`%`_u64{i#36002}.0)] +[visit_exp i!`%`_num_{i#35992}.0] +[visit_exp i!`%`_num_{i#35992}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#35992] +[visit_id i#35992] +[visit_exp ao.`OFFSET`_memarg{u64#414}!`%`_u64{i#36002}.0] +[visit_exp ao.`OFFSET`_memarg{u64#414}!`%`_u64{i#36002}] +[visit_exp ao.`OFFSET`_memarg{u64#414}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#414] +[visit_id u64#414] +[visit_exp i#36002] +[visit_id i#36002] +[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp (N = $jsize(Jnn))] +[visit_exp N] +[visit_id N] not free +[visit_exp $jsize(Jnn)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp ((M : nat <:> rat) = ((128 : nat <:> rat) / (N : nat <:> rat)))] +[visit_exp (M : nat <:> rat)] +[visit_exp M] +[visit_id M] +[visit_exp ((128 : nat <:> rat) / (N : nat <:> rat))] +[visit_exp (128 : nat <:> rat)] +[visit_exp 128] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[visit_exp (c = $inv_lanes_(`%X%`_shape{lanetype#7267, dim#7267, i#36033}((Jnn : Jnn <: lanetype), `%`_dim{i#36040}(M)), `%`_lane_{i#36121}(j!`%`_iN{i#36120}.0)^M{i#36120 <- `i#36120*`, i#36121 <- `i#36121*`}))] +[visit_exp c] +[visit_id c] not free +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#7267, dim#7267, i#36033}((Jnn : Jnn <: lanetype), `%`_dim{i#36040}(M)), `%`_lane_{i#36121}(j!`%`_iN{i#36120}.0)^M{i#36120 <- `i#36120*`, i#36121 <- `i#36121*`})] +[visit_exp `%X%`_shape{lanetype#7267, dim#7267, i#36033}((Jnn : Jnn <: lanetype), `%`_dim{i#36040}(M))] +[visit_exp lanetype#7267] +[visit_id lanetype#7267] +[visit_exp dim#7267] +[visit_id dim#7267] +[visit_exp i#36033] +[visit_id i#36033] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#36040}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#36040}(M)] +[visit_exp i#36040] +[visit_id i#36040] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp `%`_lane_{i#36121}(j!`%`_iN{i#36120}.0)^M{i#36120 <- `i#36120*`, i#36121 <- `i#36121*`}] +[scope_enter i#36120] +[scope_enter i#36121] +[visit_exp `%`_lane_{i#36121}(j!`%`_iN{i#36120}.0)] +[visit_exp i#36121] +[visit_id i#36121] not free +[visit_exp (j!`%`_iN{i#36120}.0)] +[visit_exp j!`%`_iN{i#36120}.0] +[visit_exp j!`%`_iN{i#36120}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#36120] +[visit_id i#36120] not free +[visit_id i#36120] not free +[visit_id i#36121] not free +[scope_exit i#36121] +[scope_exit i#36120] +[visit_exp M] +[visit_id M] not free +[visit_exp `i#36120*`] +[visit_id i#36120*] no dims +[visit_id i#36120*] +[visit_exp `i#36121*`] +[visit_id i#36121*] no dims +[visit_id i#36121*] +[check_dims] N ao at byte*#1859 i i#36172 i#36179 i#36211 i#36221 instr*#1218 memarg#55 memidx#87 numtype#209 state#1103 sz#393 u64#415 vectype?#12 x z +[visit_exp `%;%`_config{state#1103, `instr*#1218`}(z, [`CONST`_instr{numtype#209}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#12`, memidx#87, memarg#55}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))), x, ao)])] +[visit_exp state#1103] +[visit_id state#1103] +[visit_exp `instr*#1218`] +[visit_id instr*#1218] +[visit_exp (z, [`CONST`_instr{numtype#209}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#12`, memidx#87, memarg#55}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#209}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#12`, memidx#87, memarg#55}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))), x, ao)]] +[visit_exp `CONST`_instr{numtype#209}((at : addrtype <: numtype), i)] +[visit_exp numtype#209] +[visit_id numtype#209] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VLOAD`_instr{`vectype?#12`, memidx#87, memarg#55}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))), x, ao)] +[visit_exp `vectype?#12`] +[visit_id vectype?#12] +[visit_exp memidx#87] +[visit_id memidx#87] +[visit_exp memarg#55] +[visit_id memarg#55] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N)))] +[visit_exp `ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))] +[visit_exp sz#393] +[visit_id sz#393] +[visit_exp i#36172] +[visit_id i#36172] +[visit_exp (`%`_sz{i#36179}(N))] +[visit_exp `%`_sz{i#36179}(N)] +[visit_exp i#36179] +[visit_id i#36179] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i!`%`_num_{i#36211}.0 + ao.`OFFSET`_memarg{u64#415}!`%`_u64{i#36221}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1859`}|)] +[visit_exp ((i!`%`_num_{i#36211}.0 + ao.`OFFSET`_memarg{u64#415}!`%`_u64{i#36221}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_{i#36211}.0 + ao.`OFFSET`_memarg{u64#415}!`%`_u64{i#36221}.0)] +[visit_exp i!`%`_num_{i#36211}.0] +[visit_exp i!`%`_num_{i#36211}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#36211] +[visit_id i#36211] +[visit_exp ao.`OFFSET`_memarg{u64#415}!`%`_u64{i#36221}.0] +[visit_exp ao.`OFFSET`_memarg{u64#415}!`%`_u64{i#36221}] +[visit_exp ao.`OFFSET`_memarg{u64#415}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#415] +[visit_id u64#415] +[visit_exp i#36221] +[visit_id i#36221] +[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1859`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1859`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1859`] +[visit_id byte*#1859] +[check_dims] N ao at byte*#1860 c i i#36273 i#36280 i#36338 i#36348 instr*#1230 j memarg#57 memidx#89 numtype#211 state#1115 sz#440 u64#416 vectype#76 vectype?#13 x z +[visit_exp `%;%`_config{state#1115, `instr*#1230`}(z, [`CONST`_instr{numtype#211}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#13`, memidx#89, memarg#57}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))), x, ao)])] +[visit_exp state#1115] +[visit_id state#1115] +[visit_exp `instr*#1230`] +[visit_id instr*#1230] +[visit_exp (z, [`CONST`_instr{numtype#211}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#13`, memidx#89, memarg#57}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#211}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#13`, memidx#89, memarg#57}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))), x, ao)]] +[visit_exp `CONST`_instr{numtype#211}((at : addrtype <: numtype), i)] +[visit_exp numtype#211] +[visit_id numtype#211] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VLOAD`_instr{`vectype?#13`, memidx#89, memarg#57}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))), x, ao)] +[visit_exp `vectype?#13`] +[visit_id vectype?#13] +[visit_exp memidx#89] +[visit_id memidx#89] +[visit_exp memarg#57] +[visit_id memarg#57] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N)))] +[visit_exp `ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))] +[visit_exp sz#440] +[visit_id sz#440] +[visit_exp i#36273] +[visit_id i#36273] +[visit_exp (`%`_sz{i#36280}(N))] +[visit_exp `%`_sz{i#36280}(N)] +[visit_exp i#36280] +[visit_id i#36280] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp [`VCONST`_instr{vectype#76}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#76}(`V128`_vectype, c)] +[visit_exp vectype#76] +[visit_id vectype#76] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst{`byte*#1860`}[(i!`%`_num_{i#36338}.0 + ao.`OFFSET`_memarg{u64#416}!`%`_u64{i#36348}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp $ibytes_(N, j)] +[visit_exp N] +[visit_id N] not free +[visit_exp j] +[visit_id j] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1860`}[(i!`%`_num_{i#36338}.0 + ao.`OFFSET`_memarg{u64#416}!`%`_u64{i#36348}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1860`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1860`] +[visit_id byte*#1860] +[visit_exp (i!`%`_num_{i#36338}.0 + ao.`OFFSET`_memarg{u64#416}!`%`_u64{i#36348}.0)] +[visit_exp i!`%`_num_{i#36338}.0] +[visit_exp i!`%`_num_{i#36338}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#36338] +[visit_id i#36338] +[visit_exp ao.`OFFSET`_memarg{u64#416}!`%`_u64{i#36348}.0] +[visit_exp ao.`OFFSET`_memarg{u64#416}!`%`_u64{i#36348}] +[visit_exp ao.`OFFSET`_memarg{u64#416}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#416] +[visit_id u64#416] +[visit_exp i#36348] +[visit_id i#36348] +[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp (c = $extend__(N, 128, `U`_sx, j))] +[visit_exp c] +[visit_id c] not free +[visit_exp $extend__(N, 128, `U`_sx, j)] +[visit_exp N] +[visit_id N] not free +[visit_exp 128] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp j] +[visit_id j] not free +[check_dims] N ao at byte*#1861 c_1 i i#36428 i#36474 i#36484 instr*#1242 j laneidx#17 memarg#59 memidx#91 numtype#213 state#1127 sz#442 u64#417 vectype#78 vectype#80 x z +[visit_exp `%;%`_config{state#1127, `instr*#1242`}(z, [`CONST`_instr{numtype#213}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#78}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#80, sz#442, memidx#91, memarg#59, laneidx#17}(`V128`_vectype, `%`_sz{i#36428}(N), x, ao, j)])] +[visit_exp state#1127] +[visit_id state#1127] +[visit_exp `instr*#1242`] +[visit_id instr*#1242] +[visit_exp (z, [`CONST`_instr{numtype#213}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#78}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#80, sz#442, memidx#91, memarg#59, laneidx#17}(`V128`_vectype, `%`_sz{i#36428}(N), x, ao, j)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#213}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#78}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#80, sz#442, memidx#91, memarg#59, laneidx#17}(`V128`_vectype, `%`_sz{i#36428}(N), x, ao, j)]] +[visit_exp `CONST`_instr{numtype#213}((at : addrtype <: numtype), i)] +[visit_exp numtype#213] +[visit_id numtype#213] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VCONST`_instr{vectype#78}(`V128`_vectype, c_1)] +[visit_exp vectype#78] +[visit_id vectype#78] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VLOAD_LANE`_instr{vectype#80, sz#442, memidx#91, memarg#59, laneidx#17}(`V128`_vectype, `%`_sz{i#36428}(N), x, ao, j)] +[visit_exp vectype#80] +[visit_id vectype#80] +[visit_exp sz#442] +[visit_id sz#442] +[visit_exp memidx#91] +[visit_id memidx#91] +[visit_exp memarg#59] +[visit_id memarg#59] +[visit_exp laneidx#17] +[visit_id laneidx#17] +[visit_exp (`V128`_vectype, `%`_sz{i#36428}(N), x, ao, j)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#36428}(N)] +[visit_exp i#36428] +[visit_id i#36428] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp j] +[visit_id j] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i!`%`_num_{i#36474}.0 + ao.`OFFSET`_memarg{u64#417}!`%`_u64{i#36484}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1861`}|)] +[visit_exp ((i!`%`_num_{i#36474}.0 + ao.`OFFSET`_memarg{u64#417}!`%`_u64{i#36484}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_{i#36474}.0 + ao.`OFFSET`_memarg{u64#417}!`%`_u64{i#36484}.0)] +[visit_exp i!`%`_num_{i#36474}.0] +[visit_exp i!`%`_num_{i#36474}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#36474] +[visit_id i#36474] +[visit_exp ao.`OFFSET`_memarg{u64#417}!`%`_u64{i#36484}.0] +[visit_exp ao.`OFFSET`_memarg{u64#417}!`%`_u64{i#36484}] +[visit_exp ao.`OFFSET`_memarg{u64#417}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#417] +[visit_id u64#417] +[visit_exp i#36484] +[visit_id i#36484] +[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1861`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1861`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1861`] +[visit_id byte*#1861] +[check_dims] Jnn M N ao at byte*#1862 c c_1 dim#7292 dim#7383 i i#36532 i#36604 i#36614 i#36645 i#36652 i#36877 i#36884 i#36910 i#36956 i#36957 instr*#1254 j k laneidx#19 lanetype#7292 lanetype#7383 memarg#61 memidx#93 numtype#215 state#1139 sz#444 u64#418 vectype#82 vectype#84 vectype#86 x z +[visit_exp `%;%`_config{state#1139, `instr*#1254`}(z, [`CONST`_instr{numtype#215}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#82}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#84, sz#444, memidx#93, memarg#61, laneidx#19}(`V128`_vectype, `%`_sz{i#36532}(N), x, ao, j)])] +[visit_exp state#1139] +[visit_id state#1139] +[visit_exp `instr*#1254`] +[visit_id instr*#1254] +[visit_exp (z, [`CONST`_instr{numtype#215}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#82}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#84, sz#444, memidx#93, memarg#61, laneidx#19}(`V128`_vectype, `%`_sz{i#36532}(N), x, ao, j)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#215}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#82}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#84, sz#444, memidx#93, memarg#61, laneidx#19}(`V128`_vectype, `%`_sz{i#36532}(N), x, ao, j)]] +[visit_exp `CONST`_instr{numtype#215}((at : addrtype <: numtype), i)] +[visit_exp numtype#215] +[visit_id numtype#215] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VCONST`_instr{vectype#82}(`V128`_vectype, c_1)] +[visit_exp vectype#82] +[visit_id vectype#82] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VLOAD_LANE`_instr{vectype#84, sz#444, memidx#93, memarg#61, laneidx#19}(`V128`_vectype, `%`_sz{i#36532}(N), x, ao, j)] +[visit_exp vectype#84] +[visit_id vectype#84] +[visit_exp sz#444] +[visit_id sz#444] +[visit_exp memidx#93] +[visit_id memidx#93] +[visit_exp memarg#61] +[visit_id memarg#61] +[visit_exp laneidx#19] +[visit_id laneidx#19] +[visit_exp (`V128`_vectype, `%`_sz{i#36532}(N), x, ao, j)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#36532}(N)] +[visit_exp i#36532] +[visit_id i#36532] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp j] +[visit_id j] +[visit_exp [`VCONST`_instr{vectype#86}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#86}(`V128`_vectype, c)] +[visit_exp vectype#86] +[visit_id vectype#86] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp ($ibytes_(N, k) = $mem(z, x).`BYTES`_meminst{`byte*#1862`}[(i!`%`_num_{i#36604}.0 + ao.`OFFSET`_memarg{u64#418}!`%`_u64{i#36614}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp $ibytes_(N, k)] +[visit_exp N] +[visit_id N] not free +[visit_exp k] +[visit_id k] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1862`}[(i!`%`_num_{i#36604}.0 + ao.`OFFSET`_memarg{u64#418}!`%`_u64{i#36614}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1862`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1862`] +[visit_id byte*#1862] +[visit_exp (i!`%`_num_{i#36604}.0 + ao.`OFFSET`_memarg{u64#418}!`%`_u64{i#36614}.0)] +[visit_exp i!`%`_num_{i#36604}.0] +[visit_exp i!`%`_num_{i#36604}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#36604] +[visit_id i#36604] +[visit_exp ao.`OFFSET`_memarg{u64#418}!`%`_u64{i#36614}.0] +[visit_exp ao.`OFFSET`_memarg{u64#418}!`%`_u64{i#36614}] +[visit_exp ao.`OFFSET`_memarg{u64#418}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#418] +[visit_id u64#418] +[visit_exp i#36614] +[visit_id i#36614] +[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp (N = $jsize(Jnn))] +[visit_exp N] +[visit_id N] not free +[visit_exp $jsize(Jnn)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp ((M : nat <:> rat) = (($vsize(`V128`_vectype) : nat <:> rat) / (N : nat <:> rat)))] +[visit_exp (M : nat <:> rat)] +[visit_exp M] +[visit_id M] +[visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (N : nat <:> rat))] +[visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] +[visit_exp $vsize(`V128`_vectype)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[visit_exp (c = $inv_lanes_(`%X%`_shape{lanetype#7292, dim#7292, i#36645}((Jnn : Jnn <: lanetype), `%`_dim{i#36652}(M)), $lanes_(`%X%`_shape{lanetype#7383, dim#7383, i#36877}((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M)), c_1)[[j!`%`_laneidx{i#36910}.0] = `%`_lane_{i#36957}(k!`%`_iN{i#36956}.0)]))] +[visit_exp c] +[visit_id c] not free +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#7292, dim#7292, i#36645}((Jnn : Jnn <: lanetype), `%`_dim{i#36652}(M)), $lanes_(`%X%`_shape{lanetype#7383, dim#7383, i#36877}((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M)), c_1)[[j!`%`_laneidx{i#36910}.0] = `%`_lane_{i#36957}(k!`%`_iN{i#36956}.0)])] +[visit_exp `%X%`_shape{lanetype#7292, dim#7292, i#36645}((Jnn : Jnn <: lanetype), `%`_dim{i#36652}(M))] +[visit_exp lanetype#7292] +[visit_id lanetype#7292] +[visit_exp dim#7292] +[visit_id dim#7292] +[visit_exp i#36645] +[visit_id i#36645] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#36652}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#36652}(M)] +[visit_exp i#36652] +[visit_id i#36652] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp $lanes_(`%X%`_shape{lanetype#7383, dim#7383, i#36877}((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M)), c_1)[[j!`%`_laneidx{i#36910}.0] = `%`_lane_{i#36957}(k!`%`_iN{i#36956}.0)]] +[visit_exp $lanes_(`%X%`_shape{lanetype#7383, dim#7383, i#36877}((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M)), c_1)] +[visit_exp `%X%`_shape{lanetype#7383, dim#7383, i#36877}((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M))] +[visit_exp lanetype#7383] +[visit_id lanetype#7383] +[visit_exp dim#7383] +[visit_id dim#7383] +[visit_exp i#36877] +[visit_id i#36877] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#36884}(M)] +[visit_exp i#36884] +[visit_id i#36884] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp j!`%`_laneidx{i#36910}.0] +[visit_exp j!`%`_laneidx{i#36910}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#36910] +[visit_id i#36910] +[visit_exp `%`_lane_{i#36957}(k!`%`_iN{i#36956}.0)] +[visit_exp i#36957] +[visit_id i#36957] +[visit_exp (k!`%`_iN{i#36956}.0)] +[visit_exp k!`%`_iN{i#36956}.0] +[visit_exp k!`%`_iN{i#36956}] +[visit_exp k] +[visit_id k] not free +[visit_exp i#36956] +[visit_id i#36956] +[check_dims] ao at byte*#1863 c i i#37014 i#37024 instr*#1266 instr*#1278 memarg#63 memidx#95 nt numtype#217 numtype#219 numtype?#11 state#1151 state#1163 u64#419 x z +[visit_exp `%;%`_config{state#1151, `instr*#1266`}(z, [`CONST`_instr{numtype#217}((at : addrtype <: numtype), i) `CONST`_instr{numtype#219}(nt, c) `STORE`_instr{`numtype?#11`, memidx#95, memarg#63}(nt, ?(), x, ao)])] +[visit_exp state#1151] +[visit_id state#1151] +[visit_exp `instr*#1266`] +[visit_id instr*#1266] +[visit_exp (z, [`CONST`_instr{numtype#217}((at : addrtype <: numtype), i) `CONST`_instr{numtype#219}(nt, c) `STORE`_instr{`numtype?#11`, memidx#95, memarg#63}(nt, ?(), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#217}((at : addrtype <: numtype), i) `CONST`_instr{numtype#219}(nt, c) `STORE`_instr{`numtype?#11`, memidx#95, memarg#63}(nt, ?(), x, ao)]] +[visit_exp `CONST`_instr{numtype#217}((at : addrtype <: numtype), i)] +[visit_exp numtype#217] +[visit_id numtype#217] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#219}(nt, c)] +[visit_exp numtype#219] +[visit_id numtype#219] +[visit_exp (nt, c)] +[visit_exp nt] +[visit_id nt] +[visit_exp c] +[visit_id c] +[visit_exp `STORE`_instr{`numtype?#11`, memidx#95, memarg#63}(nt, ?(), x, ao)] +[visit_exp `numtype?#11`] +[visit_id numtype?#11] +[visit_exp memidx#95] +[visit_id memidx#95] +[visit_exp memarg#63] +[visit_id memarg#63] +[visit_exp (nt, ?(), x, ao)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%;%`_config{state#1163, `instr*#1278`}(z, [`TRAP`_instr])] +[visit_exp state#1163] +[visit_id state#1163] +[visit_exp `instr*#1278`] +[visit_id instr*#1278] +[visit_exp (z, [`TRAP`_instr])] +[visit_exp z] +[visit_id z] not free +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i!`%`_num_{i#37014}.0 + ao.`OFFSET`_memarg{u64#419}!`%`_u64{i#37024}.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1863`}|)] +[visit_exp ((i!`%`_num_{i#37014}.0 + ao.`OFFSET`_memarg{u64#419}!`%`_u64{i#37024}.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_{i#37014}.0 + ao.`OFFSET`_memarg{u64#419}!`%`_u64{i#37024}.0)] +[visit_exp i!`%`_num_{i#37014}.0] +[visit_exp i!`%`_num_{i#37014}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#37014] +[visit_id i#37014] +[visit_exp ao.`OFFSET`_memarg{u64#419}!`%`_u64{i#37024}.0] +[visit_exp ao.`OFFSET`_memarg{u64#419}!`%`_u64{i#37024}] +[visit_exp ao.`OFFSET`_memarg{u64#419}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#419] +[visit_id u64#419] +[visit_exp i#37024] +[visit_id i#37024] +[visit_exp ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (($size(nt) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ($size(nt) : nat <:> rat)] +[visit_exp $size(nt)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1863`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1863`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1863`] +[visit_id byte*#1863] +[check_dims] ao at b c i i#37094 i#37104 instr*#1290 instr*#1302 memarg#65 memidx#97 nt numtype#222 numtype#224 numtype?#12 state#1175 state#1187 u64#420 x z +[visit_exp `%;%`_config{state#1175, `instr*#1290`}(z, [`CONST`_instr{numtype#222}((at : addrtype <: numtype), i) `CONST`_instr{numtype#224}(nt, c) `STORE`_instr{`numtype?#12`, memidx#97, memarg#65}(nt, ?(), x, ao)])] +[visit_exp state#1175] +[visit_id state#1175] +[visit_exp `instr*#1290`] +[visit_id instr*#1290] +[visit_exp (z, [`CONST`_instr{numtype#222}((at : addrtype <: numtype), i) `CONST`_instr{numtype#224}(nt, c) `STORE`_instr{`numtype?#12`, memidx#97, memarg#65}(nt, ?(), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#222}((at : addrtype <: numtype), i) `CONST`_instr{numtype#224}(nt, c) `STORE`_instr{`numtype?#12`, memidx#97, memarg#65}(nt, ?(), x, ao)]] +[visit_exp `CONST`_instr{numtype#222}((at : addrtype <: numtype), i)] +[visit_exp numtype#222] +[visit_id numtype#222] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#224}(nt, c)] +[visit_exp numtype#224] +[visit_id numtype#224] +[visit_exp (nt, c)] +[visit_exp nt] +[visit_id nt] +[visit_exp c] +[visit_id c] +[visit_exp `STORE`_instr{`numtype?#12`, memidx#97, memarg#65}(nt, ?(), x, ao)] +[visit_exp `numtype?#12`] +[visit_id numtype?#12] +[visit_exp memidx#97] +[visit_id memidx#97] +[visit_exp memarg#65] +[visit_id memarg#65] +[visit_exp (nt, ?(), x, ao)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%;%`_config{state#1187, `instr*#1302`}($with_mem(z, x, (i!`%`_num_{i#37094}.0 + ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp state#1187] +[visit_id state#1187] +[visit_exp `instr*#1302`] +[visit_id instr*#1302] +[visit_exp ($with_mem(z, x, (i!`%`_num_{i#37094}.0 + ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp $with_mem(z, x, (i!`%`_num_{i#37094}.0 + ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp (i!`%`_num_{i#37094}.0 + ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}.0)] +[visit_exp i!`%`_num_{i#37094}.0] +[visit_exp i!`%`_num_{i#37094}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#37094] +[visit_id i#37094] +[visit_exp ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}.0] +[visit_exp ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}] +[visit_exp ao.`OFFSET`_memarg{u64#420}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#420] +[visit_id u64#420] +[visit_exp i#37104] +[visit_id i#37104] +[visit_exp ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (($size(nt) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ($size(nt) : nat <:> rat)] +[visit_exp $size(nt)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp []] +[visit_exp (b*{b <- `b*`} = $nbytes_(nt, c))] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_exp $nbytes_(nt, c)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp c] +[visit_id c] not free +[check_dims] Inn ao at byte*#1864 c i i#37199 i#37200 i#37232 i#37242 instr*#1314 instr*#1326 memarg#67 memidx#99 n numtype#227 numtype#229 numtype?#13 state#1199 state#1211 sz#446 u64#421 x z +[visit_exp `%;%`_config{state#1199, `instr*#1314`}(z, [`CONST`_instr{numtype#227}((at : addrtype <: numtype), i) `CONST`_instr{numtype#229}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#13`, memidx#99, memarg#67}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))), x, ao)])] +[visit_exp state#1199] +[visit_id state#1199] +[visit_exp `instr*#1314`] +[visit_id instr*#1314] +[visit_exp (z, [`CONST`_instr{numtype#227}((at : addrtype <: numtype), i) `CONST`_instr{numtype#229}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#13`, memidx#99, memarg#67}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#227}((at : addrtype <: numtype), i) `CONST`_instr{numtype#229}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#13`, memidx#99, memarg#67}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))), x, ao)]] +[visit_exp `CONST`_instr{numtype#227}((at : addrtype <: numtype), i)] +[visit_exp numtype#227] +[visit_id numtype#227] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#229}((Inn : Inn <: numtype), c)] +[visit_exp numtype#229] +[visit_id numtype#229] +[visit_exp ((Inn : Inn <: numtype), c)] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp c] +[visit_id c] +[visit_exp `STORE`_instr{`numtype?#13`, memidx#99, memarg#67}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))), x, ao)] +[visit_exp `numtype?#13`] +[visit_id numtype?#13] +[visit_exp memidx#99] +[visit_id memidx#99] +[visit_exp memarg#67] +[visit_id memarg#67] +[visit_exp ((Inn : Inn <: numtype), ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))), x, ao)] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n)))] +[visit_exp `%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))] +[visit_exp sz#446] +[visit_id sz#446] +[visit_exp i#37199] +[visit_id i#37199] +[visit_exp (`%`_sz{i#37200}(n))] +[visit_exp `%`_sz{i#37200}(n)] +[visit_exp i#37200] +[visit_id i#37200] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%;%`_config{state#1211, `instr*#1326`}(z, [`TRAP`_instr])] +[visit_exp state#1211] +[visit_id state#1211] +[visit_exp `instr*#1326`] +[visit_id instr*#1326] +[visit_exp (z, [`TRAP`_instr])] +[visit_exp z] +[visit_id z] not free +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i!`%`_num_{i#37232}.0 + ao.`OFFSET`_memarg{u64#421}!`%`_u64{i#37242}.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1864`}|)] +[visit_exp ((i!`%`_num_{i#37232}.0 + ao.`OFFSET`_memarg{u64#421}!`%`_u64{i#37242}.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_{i#37232}.0 + ao.`OFFSET`_memarg{u64#421}!`%`_u64{i#37242}.0)] +[visit_exp i!`%`_num_{i#37232}.0] +[visit_exp i!`%`_num_{i#37232}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#37232] +[visit_id i#37232] +[visit_exp ao.`OFFSET`_memarg{u64#421}!`%`_u64{i#37242}.0] +[visit_exp ao.`OFFSET`_memarg{u64#421}!`%`_u64{i#37242}] +[visit_exp ao.`OFFSET`_memarg{u64#421}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#421] +[visit_id u64#421] +[visit_exp i#37242] +[visit_id i#37242] +[visit_exp (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp ((n : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (n : nat <:> rat)] +[visit_exp n] +[visit_id n] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1864`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1864`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1864`] +[visit_id byte*#1864] +[check_dims] Inn ao at b c i i#37325 i#37326 i#37370 i#37380 instr*#1338 instr*#1350 memarg#69 memidx#101 n numtype#232 numtype#234 numtype?#14 state#1223 state#1235 sz#448 u64#422 x z +[visit_exp `%;%`_config{state#1223, `instr*#1338`}(z, [`CONST`_instr{numtype#232}((at : addrtype <: numtype), i) `CONST`_instr{numtype#234}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#14`, memidx#101, memarg#69}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))), x, ao)])] +[visit_exp state#1223] +[visit_id state#1223] +[visit_exp `instr*#1338`] +[visit_id instr*#1338] +[visit_exp (z, [`CONST`_instr{numtype#232}((at : addrtype <: numtype), i) `CONST`_instr{numtype#234}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#14`, memidx#101, memarg#69}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))), x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#232}((at : addrtype <: numtype), i) `CONST`_instr{numtype#234}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#14`, memidx#101, memarg#69}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))), x, ao)]] +[visit_exp `CONST`_instr{numtype#232}((at : addrtype <: numtype), i)] +[visit_exp numtype#232] +[visit_id numtype#232] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#234}((Inn : Inn <: numtype), c)] +[visit_exp numtype#234] +[visit_id numtype#234] +[visit_exp ((Inn : Inn <: numtype), c)] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] +[visit_exp c] +[visit_id c] +[visit_exp `STORE`_instr{`numtype?#14`, memidx#101, memarg#69}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))), x, ao)] +[visit_exp `numtype?#14`] +[visit_id numtype?#14] +[visit_exp memidx#101] +[visit_id memidx#101] +[visit_exp memarg#69] +[visit_id memarg#69] +[visit_exp ((Inn : Inn <: numtype), ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))), x, ao)] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n)))] +[visit_exp `%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))] +[visit_exp sz#448] +[visit_id sz#448] +[visit_exp i#37325] +[visit_id i#37325] +[visit_exp (`%`_sz{i#37326}(n))] +[visit_exp `%`_sz{i#37326}(n)] +[visit_exp i#37326] +[visit_id i#37326] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%;%`_config{state#1235, `instr*#1350`}($with_mem(z, x, (i!`%`_num_{i#37370}.0 + ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp state#1235] +[visit_id state#1235] +[visit_exp `instr*#1350`] +[visit_id instr*#1350] +[visit_exp ($with_mem(z, x, (i!`%`_num_{i#37370}.0 + ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp $with_mem(z, x, (i!`%`_num_{i#37370}.0 + ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp (i!`%`_num_{i#37370}.0 + ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}.0)] +[visit_exp i!`%`_num_{i#37370}.0] +[visit_exp i!`%`_num_{i#37370}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#37370] +[visit_id i#37370] +[visit_exp ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}.0] +[visit_exp ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}] +[visit_exp ao.`OFFSET`_memarg{u64#422}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#422] +[visit_id u64#422] +[visit_exp i#37380] +[visit_id i#37380] +[visit_exp (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp ((n : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (n : nat <:> rat)] +[visit_exp n] +[visit_id n] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp []] +[visit_exp (b*{b <- `b*`} = $ibytes_(n, $wrap__($size((Inn : Inn <: numtype)), n, c)))] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_exp $ibytes_(n, $wrap__($size((Inn : Inn <: numtype)), n, c))] +[visit_exp n] +[visit_id n] not free +[visit_exp $wrap__($size((Inn : Inn <: numtype)), n, c)] +[visit_exp $size((Inn : Inn <: numtype))] +[visit_exp (Inn : Inn <: numtype)] +[visit_exp Inn] +[visit_id Inn] not free +[visit_exp n] +[visit_id n] not free +[visit_exp c] +[visit_id c] not free +[check_dims] ao at byte*#1865 c i i#37486 i#37496 instr*#1362 instr*#1374 memarg#71 memidx#103 numtype#237 state#1247 state#1259 u64#423 vectype#88 vectype#90 x z +[visit_exp `%;%`_config{state#1247, `instr*#1362`}(z, [`CONST`_instr{numtype#237}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#88}(`V128`_vectype, c) `VSTORE`_instr{vectype#90, memidx#103, memarg#71}(`V128`_vectype, x, ao)])] +[visit_exp state#1247] +[visit_id state#1247] +[visit_exp `instr*#1362`] +[visit_id instr*#1362] +[visit_exp (z, [`CONST`_instr{numtype#237}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#88}(`V128`_vectype, c) `VSTORE`_instr{vectype#90, memidx#103, memarg#71}(`V128`_vectype, x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#237}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#88}(`V128`_vectype, c) `VSTORE`_instr{vectype#90, memidx#103, memarg#71}(`V128`_vectype, x, ao)]] +[visit_exp `CONST`_instr{numtype#237}((at : addrtype <: numtype), i)] +[visit_exp numtype#237] +[visit_id numtype#237] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VCONST`_instr{vectype#88}(`V128`_vectype, c)] +[visit_exp vectype#88] +[visit_id vectype#88] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp `VSTORE`_instr{vectype#90, memidx#103, memarg#71}(`V128`_vectype, x, ao)] +[visit_exp vectype#90] +[visit_id vectype#90] +[visit_exp memidx#103] +[visit_id memidx#103] +[visit_exp memarg#71] +[visit_id memarg#71] +[visit_exp (`V128`_vectype, x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%;%`_config{state#1259, `instr*#1374`}(z, [`TRAP`_instr])] +[visit_exp state#1259] +[visit_id state#1259] +[visit_exp `instr*#1374`] +[visit_id instr*#1374] +[visit_exp (z, [`TRAP`_instr])] +[visit_exp z] +[visit_id z] not free +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i!`%`_num_{i#37486}.0 + ao.`OFFSET`_memarg{u64#423}!`%`_u64{i#37496}.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1865`}|)] +[visit_exp ((i!`%`_num_{i#37486}.0 + ao.`OFFSET`_memarg{u64#423}!`%`_u64{i#37496}.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_{i#37486}.0 + ao.`OFFSET`_memarg{u64#423}!`%`_u64{i#37496}.0)] +[visit_exp i!`%`_num_{i#37486}.0] +[visit_exp i!`%`_num_{i#37486}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#37486] +[visit_id i#37486] +[visit_exp ao.`OFFSET`_memarg{u64#423}!`%`_u64{i#37496}.0] +[visit_exp ao.`OFFSET`_memarg{u64#423}!`%`_u64{i#37496}] +[visit_exp ao.`OFFSET`_memarg{u64#423}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#423] +[visit_id u64#423] +[visit_exp i#37496] +[visit_id i#37496] +[visit_exp ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] +[visit_exp $vsize(`V128`_vectype)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1865`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1865`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1865`] +[visit_id byte*#1865] +[check_dims] ao at b c i i#37580 i#37590 instr*#1386 instr*#1398 memarg#73 memidx#105 numtype#239 state#1271 state#1283 u64#424 vectype#92 vectype#94 x z +[visit_exp `%;%`_config{state#1271, `instr*#1386`}(z, [`CONST`_instr{numtype#239}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#92}(`V128`_vectype, c) `VSTORE`_instr{vectype#94, memidx#105, memarg#73}(`V128`_vectype, x, ao)])] +[visit_exp state#1271] +[visit_id state#1271] +[visit_exp `instr*#1386`] +[visit_id instr*#1386] +[visit_exp (z, [`CONST`_instr{numtype#239}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#92}(`V128`_vectype, c) `VSTORE`_instr{vectype#94, memidx#105, memarg#73}(`V128`_vectype, x, ao)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#239}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#92}(`V128`_vectype, c) `VSTORE`_instr{vectype#94, memidx#105, memarg#73}(`V128`_vectype, x, ao)]] +[visit_exp `CONST`_instr{numtype#239}((at : addrtype <: numtype), i)] +[visit_exp numtype#239] +[visit_id numtype#239] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VCONST`_instr{vectype#92}(`V128`_vectype, c)] +[visit_exp vectype#92] +[visit_id vectype#92] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp `VSTORE`_instr{vectype#94, memidx#105, memarg#73}(`V128`_vectype, x, ao)] +[visit_exp vectype#94] +[visit_id vectype#94] +[visit_exp memidx#105] +[visit_id memidx#105] +[visit_exp memarg#73] +[visit_id memarg#73] +[visit_exp (`V128`_vectype, x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%;%`_config{state#1283, `instr*#1398`}($with_mem(z, x, (i!`%`_num_{i#37580}.0 + ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp state#1283] +[visit_id state#1283] +[visit_exp `instr*#1398`] +[visit_id instr*#1398] +[visit_exp ($with_mem(z, x, (i!`%`_num_{i#37580}.0 + ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp $with_mem(z, x, (i!`%`_num_{i#37580}.0 + ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp (i!`%`_num_{i#37580}.0 + ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}.0)] +[visit_exp i!`%`_num_{i#37580}.0] +[visit_exp i!`%`_num_{i#37580}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#37580] +[visit_id i#37580] +[visit_exp ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}.0] +[visit_exp ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}] +[visit_exp ao.`OFFSET`_memarg{u64#424}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#424] +[visit_id u64#424] +[visit_exp i#37590] +[visit_id i#37590] +[visit_exp ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] +[visit_exp $vsize(`V128`_vectype)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp []] +[visit_exp (b*{b <- `b*`} = $vbytes_(`V128`_vectype, c))] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_exp $vbytes_(`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] not free +[check_dims] N ao at byte*#1866 c i i#37660 i#37706 i#37716 instr*#1410 instr*#1422 j laneidx#21 memarg#75 memidx#107 numtype#241 state#1295 state#1307 sz#450 u64#425 vectype#96 vectype#98 x z +[visit_exp `%;%`_config{state#1295, `instr*#1410`}(z, [`CONST`_instr{numtype#241}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#96}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#98, sz#450, memidx#107, memarg#75, laneidx#21}(`V128`_vectype, `%`_sz{i#37660}(N), x, ao, j)])] +[visit_exp state#1295] +[visit_id state#1295] +[visit_exp `instr*#1410`] +[visit_id instr*#1410] +[visit_exp (z, [`CONST`_instr{numtype#241}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#96}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#98, sz#450, memidx#107, memarg#75, laneidx#21}(`V128`_vectype, `%`_sz{i#37660}(N), x, ao, j)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#241}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#96}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#98, sz#450, memidx#107, memarg#75, laneidx#21}(`V128`_vectype, `%`_sz{i#37660}(N), x, ao, j)]] +[visit_exp `CONST`_instr{numtype#241}((at : addrtype <: numtype), i)] +[visit_exp numtype#241] +[visit_id numtype#241] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VCONST`_instr{vectype#96}(`V128`_vectype, c)] +[visit_exp vectype#96] +[visit_id vectype#96] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp `VSTORE_LANE`_instr{vectype#98, sz#450, memidx#107, memarg#75, laneidx#21}(`V128`_vectype, `%`_sz{i#37660}(N), x, ao, j)] +[visit_exp vectype#98] +[visit_id vectype#98] +[visit_exp sz#450] +[visit_id sz#450] +[visit_exp memidx#107] +[visit_id memidx#107] +[visit_exp memarg#75] +[visit_id memarg#75] +[visit_exp laneidx#21] +[visit_id laneidx#21] +[visit_exp (`V128`_vectype, `%`_sz{i#37660}(N), x, ao, j)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#37660}(N)] +[visit_exp i#37660] +[visit_id i#37660] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp j] +[visit_id j] +[visit_exp `%;%`_config{state#1307, `instr*#1422`}(z, [`TRAP`_instr])] +[visit_exp state#1307] +[visit_id state#1307] +[visit_exp `instr*#1422`] +[visit_id instr*#1422] +[visit_exp (z, [`TRAP`_instr])] +[visit_exp z] +[visit_id z] not free +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i!`%`_num_{i#37706}.0 + ao.`OFFSET`_memarg{u64#425}!`%`_u64{i#37716}.0) + N) > |$mem(z, x).`BYTES`_meminst{`byte*#1866`}|)] +[visit_exp ((i!`%`_num_{i#37706}.0 + ao.`OFFSET`_memarg{u64#425}!`%`_u64{i#37716}.0) + N)] +[visit_exp (i!`%`_num_{i#37706}.0 + ao.`OFFSET`_memarg{u64#425}!`%`_u64{i#37716}.0)] +[visit_exp i!`%`_num_{i#37706}.0] +[visit_exp i!`%`_num_{i#37706}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#37706] +[visit_id i#37706] +[visit_exp ao.`OFFSET`_memarg{u64#425}!`%`_u64{i#37716}.0] +[visit_exp ao.`OFFSET`_memarg{u64#425}!`%`_u64{i#37716}] +[visit_exp ao.`OFFSET`_memarg{u64#425}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#425] +[visit_id u64#425] +[visit_exp i#37716] +[visit_id i#37716] +[visit_exp N] +[visit_id N] not free +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1866`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1866`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1866`] +[visit_id byte*#1866] +[check_dims] Jnn M N ao at b c dim#7403 i i#37764 i#37822 i#37832 i#37855 i#37862 i#37882 i#37906 i#37907 instr*#1434 instr*#1446 j laneidx#23 lanetype#7403 memarg#77 memidx#109 numtype#243 state#1319 state#1331 sz#452 u64#426 vectype#100 vectype#102 x z +[visit_exp `%;%`_config{state#1319, `instr*#1434`}(z, [`CONST`_instr{numtype#243}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#100}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#102, sz#452, memidx#109, memarg#77, laneidx#23}(`V128`_vectype, `%`_sz{i#37764}(N), x, ao, j)])] +[visit_exp state#1319] +[visit_id state#1319] +[visit_exp `instr*#1434`] +[visit_id instr*#1434] +[visit_exp (z, [`CONST`_instr{numtype#243}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#100}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#102, sz#452, memidx#109, memarg#77, laneidx#23}(`V128`_vectype, `%`_sz{i#37764}(N), x, ao, j)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#243}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#100}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#102, sz#452, memidx#109, memarg#77, laneidx#23}(`V128`_vectype, `%`_sz{i#37764}(N), x, ao, j)]] +[visit_exp `CONST`_instr{numtype#243}((at : addrtype <: numtype), i)] +[visit_exp numtype#243] +[visit_id numtype#243] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `VCONST`_instr{vectype#100}(`V128`_vectype, c)] +[visit_exp vectype#100] +[visit_id vectype#100] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp `VSTORE_LANE`_instr{vectype#102, sz#452, memidx#109, memarg#77, laneidx#23}(`V128`_vectype, `%`_sz{i#37764}(N), x, ao, j)] +[visit_exp vectype#102] +[visit_id vectype#102] +[visit_exp sz#452] +[visit_id sz#452] +[visit_exp memidx#109] +[visit_id memidx#109] +[visit_exp memarg#77] +[visit_id memarg#77] +[visit_exp laneidx#23] +[visit_id laneidx#23] +[visit_exp (`V128`_vectype, `%`_sz{i#37764}(N), x, ao, j)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#37764}(N)] +[visit_exp i#37764] +[visit_id i#37764] +[visit_exp (N)] +[visit_exp N] +[visit_id N] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp j] +[visit_id j] +[visit_exp `%;%`_config{state#1331, `instr*#1446`}($with_mem(z, x, (i!`%`_num_{i#37822}.0 + ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp state#1331] +[visit_id state#1331] +[visit_exp `instr*#1446`] +[visit_id instr*#1446] +[visit_exp ($with_mem(z, x, (i!`%`_num_{i#37822}.0 + ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp $with_mem(z, x, (i!`%`_num_{i#37822}.0 + ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp (i!`%`_num_{i#37822}.0 + ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}.0)] +[visit_exp i!`%`_num_{i#37822}.0] +[visit_exp i!`%`_num_{i#37822}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#37822] +[visit_id i#37822] +[visit_exp ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}.0] +[visit_exp ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}] +[visit_exp ao.`OFFSET`_memarg{u64#426}] +[visit_exp ao] +[visit_id ao] not free +[visit_exp u64#426] +[visit_id u64#426] +[visit_exp i#37832] +[visit_id i#37832] +[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp []] +[visit_exp (N = $jsize(Jnn))] +[visit_exp N] +[visit_id N] not free +[visit_exp $jsize(Jnn)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp ((M : nat <:> rat) = ((128 : nat <:> rat) / (N : nat <:> rat)))] +[visit_exp (M : nat <:> rat)] +[visit_exp M] +[visit_id M] +[visit_exp ((128 : nat <:> rat) / (N : nat <:> rat))] +[visit_exp (128 : nat <:> rat)] +[visit_exp 128] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[visit_exp (b*{b <- `b*`} = $ibytes_(N, `%`_iN{i#37907}($lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}.0)))] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_exp $ibytes_(N, `%`_iN{i#37907}($lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}.0))] +[visit_exp N] +[visit_id N] not free +[visit_exp `%`_iN{i#37907}($lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}.0)] +[visit_exp i#37907] +[visit_id i#37907] +[visit_exp ($lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}.0)] +[visit_exp $lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}.0] +[visit_exp $lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}] +[visit_exp $lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]] +[visit_exp $lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)] +[visit_exp `%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M))] +[visit_exp lanetype#7403] +[visit_id lanetype#7403] +[visit_exp dim#7403] +[visit_id dim#7403] +[visit_exp i#37855] +[visit_id i#37855] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#37862}(M)] +[visit_exp i#37862] +[visit_id i#37862] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c] +[visit_id c] not free +[visit_exp j!`%`_laneidx{i#37882}.0] +[visit_exp j!`%`_laneidx{i#37882}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#37882] +[visit_id i#37882] +[visit_exp i#37906] +[visit_id i#37906] +[check_dims] addrtype#1135 at byte*#1867 i#37958 instr*#1458 lim limits#1135 memidx#111 memtype#530 n numtype#245 state#1343 x z +[visit_exp `%;%`_config{state#1343, `instr*#1458`}(z, [`MEMORY.SIZE`_instr{memidx#111}(x)])] +[visit_exp state#1343] +[visit_id state#1343] +[visit_exp `instr*#1458`] +[visit_id instr*#1458] +[visit_exp (z, [`MEMORY.SIZE`_instr{memidx#111}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`MEMORY.SIZE`_instr{memidx#111}(x)]] +[visit_exp `MEMORY.SIZE`_instr{memidx#111}(x)] +[visit_exp memidx#111] +[visit_id memidx#111] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`CONST`_instr{numtype#245}((at : addrtype <: numtype), `%`_num_{i#37958}(n))]] +[visit_exp `CONST`_instr{numtype#245}((at : addrtype <: numtype), `%`_num_{i#37958}(n))] +[visit_exp numtype#245] +[visit_id numtype#245] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#37958}(n))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp `%`_num_{i#37958}(n)] +[visit_exp i#37958] +[visit_id i#37958] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp ((n * (64 * $Ki)) = |$mem(z, x).`BYTES`_meminst{`byte*#1867`}|)] +[visit_exp (n * (64 * $Ki))] +[visit_exp n] +[visit_id n] not free +[visit_exp (64 * $Ki)] +[visit_exp 64] +[visit_exp $Ki] +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1867`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1867`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1867`] +[visit_id byte*#1867] +[visit_exp ($mem(z, x).`TYPE`_meminst{memtype#530} = `%%PAGE`_memtype{addrtype#1135, limits#1135}(at, lim))] +[visit_exp $mem(z, x).`TYPE`_meminst{memtype#530}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp memtype#530] +[visit_id memtype#530] +[visit_exp `%%PAGE`_memtype{addrtype#1135, limits#1135}(at, lim)] +[visit_exp addrtype#1135] +[visit_id addrtype#1135] +[visit_exp limits#1135] +[visit_id limits#1135] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] +[check_dims] at byte*#1868 i#38006 i#38066 instr*#1470 instr*#1482 memidx#113 mi n numtype#247 numtype#249 state#1355 state#1367 x z +[visit_exp `%;%`_config{state#1355, `instr*#1470`}(z, [`CONST`_instr{numtype#247}((at : addrtype <: numtype), `%`_num_{i#38006}(n)) `MEMORY.GROW`_instr{memidx#113}(x)])] +[visit_exp state#1355] +[visit_id state#1355] +[visit_exp `instr*#1470`] +[visit_id instr*#1470] +[visit_exp (z, [`CONST`_instr{numtype#247}((at : addrtype <: numtype), `%`_num_{i#38006}(n)) `MEMORY.GROW`_instr{memidx#113}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#247}((at : addrtype <: numtype), `%`_num_{i#38006}(n)) `MEMORY.GROW`_instr{memidx#113}(x)]] +[visit_exp `CONST`_instr{numtype#247}((at : addrtype <: numtype), `%`_num_{i#38006}(n))] +[visit_exp numtype#247] +[visit_id numtype#247] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38006}(n))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp `%`_num_{i#38006}(n)] +[visit_exp i#38006] +[visit_id i#38006] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `MEMORY.GROW`_instr{memidx#113}(x)] +[visit_exp memidx#113] +[visit_id memidx#113] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#1367, `instr*#1482`}($with_meminst(z, x, mi), [`CONST`_instr{numtype#249}((at : addrtype <: numtype), `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])] +[visit_exp state#1367] +[visit_id state#1367] +[visit_exp `instr*#1482`] +[visit_id instr*#1482] +[visit_exp ($with_meminst(z, x, mi), [`CONST`_instr{numtype#249}((at : addrtype <: numtype), `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])] +[visit_exp $with_meminst(z, x, mi)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp mi] +[visit_id mi] +[visit_exp [`CONST`_instr{numtype#249}((at : addrtype <: numtype), `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))]] +[visit_exp `CONST`_instr{numtype#249}((at : addrtype <: numtype), `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))] +[visit_exp numtype#249] +[visit_id numtype#249] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat))] +[visit_exp i#38066] +[visit_id i#38066] +[visit_exp ((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat))] +[visit_exp (((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)] +[visit_exp ((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat))] +[visit_exp (|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat)] +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1868`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1868`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1868`] +[visit_id byte*#1868] +[visit_exp ((64 * $Ki) : nat <:> rat)] +[visit_exp (64 * $Ki)] +[visit_exp 64] +[visit_exp $Ki] +[visit_exp (mi = $growmem($mem(z, x), n))] +[visit_exp mi] +[visit_id mi] not free +[visit_exp $growmem($mem(z, x), n)] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp n] +[visit_id n] not free +[check_dims] at i#38102 i#38138 instr*#1494 instr*#1506 memidx#115 n numtype#251 numtype#253 state#1379 state#1391 x z +[visit_exp `%;%`_config{state#1379, `instr*#1494`}(z, [`CONST`_instr{numtype#251}((at : addrtype <: numtype), `%`_num_{i#38102}(n)) `MEMORY.GROW`_instr{memidx#115}(x)])] +[visit_exp state#1379] +[visit_id state#1379] +[visit_exp `instr*#1494`] +[visit_id instr*#1494] +[visit_exp (z, [`CONST`_instr{numtype#251}((at : addrtype <: numtype), `%`_num_{i#38102}(n)) `MEMORY.GROW`_instr{memidx#115}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#251}((at : addrtype <: numtype), `%`_num_{i#38102}(n)) `MEMORY.GROW`_instr{memidx#115}(x)]] +[visit_exp `CONST`_instr{numtype#251}((at : addrtype <: numtype), `%`_num_{i#38102}(n))] +[visit_exp numtype#251] +[visit_id numtype#251] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38102}(n))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp `%`_num_{i#38102}(n)] +[visit_exp i#38102] +[visit_id i#38102] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `MEMORY.GROW`_instr{memidx#115}(x)] +[visit_exp memidx#115] +[visit_id memidx#115] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#1391, `instr*#1506`}(z, [`CONST`_instr{numtype#253}((at : addrtype <: numtype), `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] +[visit_exp state#1391] +[visit_id state#1391] +[visit_exp `instr*#1506`] +[visit_id instr*#1506] +[visit_exp (z, [`CONST`_instr{numtype#253}((at : addrtype <: numtype), `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] +[visit_exp z] +[visit_id z] not free +[visit_exp [`CONST`_instr{numtype#253}((at : addrtype <: numtype), `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))]] +[visit_exp `CONST`_instr{numtype#253}((at : addrtype <: numtype), `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] +[visit_exp numtype#253] +[visit_id numtype#253] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] +[visit_exp i#38138] +[visit_id i#38138] +[visit_exp ($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] +[visit_exp $inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))] +[visit_exp $size((at : addrtype <: numtype))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[check_dims] at byte*#1869 i i#38176 i#38204 instr*#1518 memidx#117 n numtype#255 numtype#257 state#1403 val x z +[visit_exp `%;%`_config{state#1403, `instr*#1518`}(z, [`CONST`_instr{numtype#255}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#257}((at : addrtype <: numtype), `%`_num_{i#38176}(n)) `MEMORY.FILL`_instr{memidx#117}(x)])] +[visit_exp state#1403] +[visit_id state#1403] +[visit_exp `instr*#1518`] +[visit_id instr*#1518] +[visit_exp (z, [`CONST`_instr{numtype#255}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#257}((at : addrtype <: numtype), `%`_num_{i#38176}(n)) `MEMORY.FILL`_instr{memidx#117}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#255}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#257}((at : addrtype <: numtype), `%`_num_{i#38176}(n)) `MEMORY.FILL`_instr{memidx#117}(x)]] +[visit_exp `CONST`_instr{numtype#255}((at : addrtype <: numtype), i)] +[visit_exp numtype#255] +[visit_id numtype#255] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `CONST`_instr{numtype#257}((at : addrtype <: numtype), `%`_num_{i#38176}(n))] +[visit_exp numtype#257] +[visit_id numtype#257] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38176}(n))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#38176}(n)] +[visit_exp i#38176] +[visit_id i#38176] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `MEMORY.FILL`_instr{memidx#117}(x)] +[visit_exp memidx#117] +[visit_id memidx#117] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ((i!`%`_num_{i#38204}.0 + n) > |$mem(z, x).`BYTES`_meminst{`byte*#1869`}|)] +[visit_exp (i!`%`_num_{i#38204}.0 + n)] +[visit_exp i!`%`_num_{i#38204}.0] +[visit_exp i!`%`_num_{i#38204}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#38204] +[visit_id i#38204] +[visit_exp n] +[visit_id n] not free +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1869`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1869`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1869`] +[visit_id byte*#1869] +[check_dims] at i i#38254 instr*#1530 memidx#119 n numtype#259 numtype#261 state#1415 val x z +[visit_exp `%;%`_config{state#1415, `instr*#1530`}(z, [`CONST`_instr{numtype#259}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#261}((at : addrtype <: numtype), `%`_num_{i#38254}(n)) `MEMORY.FILL`_instr{memidx#119}(x)])] +[visit_exp state#1415] +[visit_id state#1415] +[visit_exp `instr*#1530`] +[visit_id instr*#1530] +[visit_exp (z, [`CONST`_instr{numtype#259}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#261}((at : addrtype <: numtype), `%`_num_{i#38254}(n)) `MEMORY.FILL`_instr{memidx#119}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#259}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#261}((at : addrtype <: numtype), `%`_num_{i#38254}(n)) `MEMORY.FILL`_instr{memidx#119}(x)]] +[visit_exp `CONST`_instr{numtype#259}((at : addrtype <: numtype), i)] +[visit_exp numtype#259] +[visit_id numtype#259] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `CONST`_instr{numtype#261}((at : addrtype <: numtype), `%`_num_{i#38254}(n))] +[visit_exp numtype#261] +[visit_id numtype#261] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38254}(n))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#38254}(n)] +[visit_exp i#38254] +[visit_id i#38254] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `MEMORY.FILL`_instr{memidx#119}(x)] +[visit_exp memidx#119] +[visit_id memidx#119] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp []] +[visit_exp (n = 0)] +[visit_exp n] +[visit_id n] not free +[visit_exp 0] +[check_dims] at i i#38306 i#38373 i#38374 i#38414 i#38424 i#38446 instr*#1542 memarg#79 memidx#121 memidx#123 memidx#125 n numtype#263 numtype#265 numtype#267 numtype#270 numtype#272 numtype?#15 state#1427 sz#465 val x z +[visit_exp `%;%`_config{state#1427, `instr*#1542`}(z, [`CONST`_instr{numtype#263}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#265}((at : addrtype <: numtype), `%`_num_{i#38306}(n)) `MEMORY.FILL`_instr{memidx#121}(x)])] +[visit_exp state#1427] +[visit_id state#1427] +[visit_exp `instr*#1542`] +[visit_id instr*#1542] +[visit_exp (z, [`CONST`_instr{numtype#263}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#265}((at : addrtype <: numtype), `%`_num_{i#38306}(n)) `MEMORY.FILL`_instr{memidx#121}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#263}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#265}((at : addrtype <: numtype), `%`_num_{i#38306}(n)) `MEMORY.FILL`_instr{memidx#121}(x)]] +[visit_exp `CONST`_instr{numtype#263}((at : addrtype <: numtype), i)] +[visit_exp numtype#263] +[visit_id numtype#263] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `CONST`_instr{numtype#265}((at : addrtype <: numtype), `%`_num_{i#38306}(n))] +[visit_exp numtype#265] +[visit_id numtype#265] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38306}(n))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#38306}(n)] +[visit_exp i#38306] +[visit_id i#38306] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `MEMORY.FILL`_instr{memidx#121}(x)] +[visit_exp memidx#121] +[visit_id memidx#121] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`CONST`_instr{numtype#267}((at : addrtype <: numtype), i) (val : val <: instr) `STORE`_instr{`numtype?#15`, memidx#123, memarg#79}(`I32`_numtype, ?(`%`_storeop_{sz#465, i#38373}(`%`_sz{i#38374}(8))), x, $memarg0) `CONST`_instr{numtype#270}((at : addrtype <: numtype), `%`_num_{i#38424}((i!`%`_num_{i#38414}.0 + 1))) (val : val <: instr) `CONST`_instr{numtype#272}((at : addrtype <: numtype), `%`_num_{i#38446}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.FILL`_instr{memidx#125}(x)]] +[visit_exp `CONST`_instr{numtype#267}((at : addrtype <: numtype), i)] +[visit_exp numtype#267] +[visit_id numtype#267] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp i] +[visit_id i] not free +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_exp `STORE`_instr{`numtype?#15`, memidx#123, memarg#79}(`I32`_numtype, ?(`%`_storeop_{sz#465, i#38373}(`%`_sz{i#38374}(8))), x, $memarg0)] +[visit_exp `numtype?#15`] +[visit_id numtype?#15] +[visit_exp memidx#123] +[visit_id memidx#123] +[visit_exp memarg#79] +[visit_id memarg#79] +[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#465, i#38373}(`%`_sz{i#38374}(8))), x, $memarg0)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#465, i#38373}(`%`_sz{i#38374}(8)))] +[visit_exp `%`_storeop_{sz#465, i#38373}(`%`_sz{i#38374}(8))] +[visit_exp sz#465] +[visit_id sz#465] +[visit_exp i#38373] +[visit_id i#38373] +[visit_exp (`%`_sz{i#38374}(8))] +[visit_exp `%`_sz{i#38374}(8)] +[visit_exp i#38374] +[visit_id i#38374] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x] +[visit_id x] not free +[visit_exp $memarg0] +[visit_exp `CONST`_instr{numtype#270}((at : addrtype <: numtype), `%`_num_{i#38424}((i!`%`_num_{i#38414}.0 + 1)))] +[visit_exp numtype#270] +[visit_id numtype#270] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38424}((i!`%`_num_{i#38414}.0 + 1)))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#38424}((i!`%`_num_{i#38414}.0 + 1))] +[visit_exp i#38424] +[visit_id i#38424] +[visit_exp ((i!`%`_num_{i#38414}.0 + 1))] +[visit_exp (i!`%`_num_{i#38414}.0 + 1)] +[visit_exp i!`%`_num_{i#38414}.0] +[visit_exp i!`%`_num_{i#38414}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#38414] +[visit_id i#38414] +[visit_exp 1] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_exp `CONST`_instr{numtype#272}((at : addrtype <: numtype), `%`_num_{i#38446}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#272] +[visit_id numtype#272] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38446}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#38446}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#38446] +[visit_id i#38446] +[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `MEMORY.FILL`_instr{memidx#125}(x)] +[visit_exp memidx#125] +[visit_id memidx#125] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[check_dims] at' at_1 at_2 byte*#1870 byte*#1871 i#38512 i#38554 i#38580 i_1 i_2 instr*#1554 memidx#127 n numtype#274 numtype#276 numtype#278 state#1439 x_1 x_2 z +[visit_exp `%;%`_config{state#1439, `instr*#1554`}(z, [`CONST`_instr{numtype#274}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#276}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#278}((at' : addrtype <: numtype), `%`_num_{i#38512}(n)) `MEMORY.COPY`_instr{memidx#127}(x_1, x_2)])] +[visit_exp state#1439] +[visit_id state#1439] +[visit_exp `instr*#1554`] +[visit_id instr*#1554] +[visit_exp (z, [`CONST`_instr{numtype#274}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#276}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#278}((at' : addrtype <: numtype), `%`_num_{i#38512}(n)) `MEMORY.COPY`_instr{memidx#127}(x_1, x_2)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#274}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#276}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#278}((at' : addrtype <: numtype), `%`_num_{i#38512}(n)) `MEMORY.COPY`_instr{memidx#127}(x_1, x_2)]] +[visit_exp `CONST`_instr{numtype#274}((at_1 : addrtype <: numtype), i_1)] +[visit_exp numtype#274] +[visit_id numtype#274] +[visit_exp ((at_1 : addrtype <: numtype), i_1)] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `CONST`_instr{numtype#276}((at_2 : addrtype <: numtype), i_2)] +[visit_exp numtype#276] +[visit_id numtype#276] +[visit_exp ((at_2 : addrtype <: numtype), i_2)] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#278}((at' : addrtype <: numtype), `%`_num_{i#38512}(n))] +[visit_exp numtype#278] +[visit_id numtype#278] +[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#38512}(n))] +[visit_exp (at' : addrtype <: numtype)] +[visit_exp at'] +[visit_id at'] +[visit_exp `%`_num_{i#38512}(n)] +[visit_exp i#38512] +[visit_id i#38512] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `MEMORY.COPY`_instr{memidx#127}(x_1, x_2)] +[visit_exp memidx#127] +[visit_id memidx#127] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i_1!`%`_num_{i#38554}.0 + n) > |$mem(z, x_1).`BYTES`_meminst{`byte*#1870`}|) \/ ((i_2!`%`_num_{i#38580}.0 + n) > |$mem(z, x_2).`BYTES`_meminst{`byte*#1871`}|))] +[visit_exp ((i_1!`%`_num_{i#38554}.0 + n) > |$mem(z, x_1).`BYTES`_meminst{`byte*#1870`}|)] +[visit_exp (i_1!`%`_num_{i#38554}.0 + n)] +[visit_exp i_1!`%`_num_{i#38554}.0] +[visit_exp i_1!`%`_num_{i#38554}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#38554] +[visit_id i#38554] +[visit_exp n] +[visit_id n] not free +[visit_exp |$mem(z, x_1).`BYTES`_meminst{`byte*#1870`}|] +[visit_exp $mem(z, x_1).`BYTES`_meminst{`byte*#1870`}] +[visit_exp $mem(z, x_1)] +[visit_exp z] +[visit_id z] not free +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp `byte*#1870`] +[visit_id byte*#1870] +[visit_exp ((i_2!`%`_num_{i#38580}.0 + n) > |$mem(z, x_2).`BYTES`_meminst{`byte*#1871`}|)] +[visit_exp (i_2!`%`_num_{i#38580}.0 + n)] +[visit_exp i_2!`%`_num_{i#38580}.0] +[visit_exp i_2!`%`_num_{i#38580}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#38580] +[visit_id i#38580] +[visit_exp n] +[visit_id n] not free +[visit_exp |$mem(z, x_2).`BYTES`_meminst{`byte*#1871`}|] +[visit_exp $mem(z, x_2).`BYTES`_meminst{`byte*#1871`}] +[visit_exp $mem(z, x_2)] +[visit_exp z] +[visit_id z] not free +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp `byte*#1871`] +[visit_id byte*#1871] +[check_dims] at' at_1 at_2 i#38644 i_1 i_2 instr*#1566 memidx#130 n numtype#280 numtype#282 numtype#284 state#1451 x_1 x_2 z +[visit_exp `%;%`_config{state#1451, `instr*#1566`}(z, [`CONST`_instr{numtype#280}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#282}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#284}((at' : addrtype <: numtype), `%`_num_{i#38644}(n)) `MEMORY.COPY`_instr{memidx#130}(x_1, x_2)])] +[visit_exp state#1451] +[visit_id state#1451] +[visit_exp `instr*#1566`] +[visit_id instr*#1566] +[visit_exp (z, [`CONST`_instr{numtype#280}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#282}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#284}((at' : addrtype <: numtype), `%`_num_{i#38644}(n)) `MEMORY.COPY`_instr{memidx#130}(x_1, x_2)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#280}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#282}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#284}((at' : addrtype <: numtype), `%`_num_{i#38644}(n)) `MEMORY.COPY`_instr{memidx#130}(x_1, x_2)]] +[visit_exp `CONST`_instr{numtype#280}((at_1 : addrtype <: numtype), i_1)] +[visit_exp numtype#280] +[visit_id numtype#280] +[visit_exp ((at_1 : addrtype <: numtype), i_1)] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `CONST`_instr{numtype#282}((at_2 : addrtype <: numtype), i_2)] +[visit_exp numtype#282] +[visit_id numtype#282] +[visit_exp ((at_2 : addrtype <: numtype), i_2)] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#284}((at' : addrtype <: numtype), `%`_num_{i#38644}(n))] +[visit_exp numtype#284] +[visit_id numtype#284] +[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#38644}(n))] +[visit_exp (at' : addrtype <: numtype)] +[visit_exp at'] +[visit_id at'] +[visit_exp `%`_num_{i#38644}(n)] +[visit_exp i#38644] +[visit_id i#38644] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `MEMORY.COPY`_instr{memidx#130}(x_1, x_2)] +[visit_exp memidx#130] +[visit_id memidx#130] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp []] +[visit_exp (n = 0)] +[visit_exp n] +[visit_id n] not free +[visit_exp 0] +[check_dims] at' at_1 at_2 i#38724 i#38802 i#38809 i#38864 i#38865 i#38905 i#38915 i#38941 i#38951 i#38973 i#39019 i#39029 i_1 i_2 instr*#1578 memarg#81 memarg#83 memidx#133 memidx#136 memidx#138 memidx#140 n numtype#286 numtype#288 numtype#290 numtype#292 numtype#294 numtype#298 numtype#300 numtype#302 numtype?#16 numtype?#17 state#1463 sx#384 sz#483 sz#496 x_1 x_2 z +[visit_exp `%;%`_config{state#1463, `instr*#1578`}(z, [`CONST`_instr{numtype#286}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#288}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#290}((at' : addrtype <: numtype), `%`_num_{i#38724}(n)) `MEMORY.COPY`_instr{memidx#133}(x_1, x_2)])] +[visit_exp state#1463] +[visit_id state#1463] +[visit_exp `instr*#1578`] +[visit_id instr*#1578] +[visit_exp (z, [`CONST`_instr{numtype#286}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#288}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#290}((at' : addrtype <: numtype), `%`_num_{i#38724}(n)) `MEMORY.COPY`_instr{memidx#133}(x_1, x_2)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#286}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#288}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#290}((at' : addrtype <: numtype), `%`_num_{i#38724}(n)) `MEMORY.COPY`_instr{memidx#133}(x_1, x_2)]] +[visit_exp `CONST`_instr{numtype#286}((at_1 : addrtype <: numtype), i_1)] +[visit_exp numtype#286] +[visit_id numtype#286] +[visit_exp ((at_1 : addrtype <: numtype), i_1)] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `CONST`_instr{numtype#288}((at_2 : addrtype <: numtype), i_2)] +[visit_exp numtype#288] +[visit_id numtype#288] +[visit_exp ((at_2 : addrtype <: numtype), i_2)] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#290}((at' : addrtype <: numtype), `%`_num_{i#38724}(n))] +[visit_exp numtype#290] +[visit_id numtype#290] +[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#38724}(n))] +[visit_exp (at' : addrtype <: numtype)] +[visit_exp at'] +[visit_id at'] +[visit_exp `%`_num_{i#38724}(n)] +[visit_exp i#38724] +[visit_id i#38724] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `MEMORY.COPY`_instr{memidx#133}(x_1, x_2)] +[visit_exp memidx#133] +[visit_id memidx#133] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp [`CONST`_instr{numtype#292}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#294}((at_2 : addrtype <: numtype), i_2) `LOAD`_instr{`numtype?#16`, memidx#136, memarg#81}(`I32`_numtype, ?(`%_%`_loadop_{sz#483, sx#384, i#38802}(`%`_sz{i#38809}(8), `U`_sx)), x_2, $memarg0) `STORE`_instr{`numtype?#17`, memidx#138, memarg#83}(`I32`_numtype, ?(`%`_storeop_{sz#496, i#38864}(`%`_sz{i#38865}(8))), x_1, $memarg0) `CONST`_instr{numtype#298}((at_1 : addrtype <: numtype), `%`_num_{i#38915}((i_1!`%`_num_{i#38905}.0 + 1))) `CONST`_instr{numtype#300}((at_2 : addrtype <: numtype), `%`_num_{i#38951}((i_2!`%`_num_{i#38941}.0 + 1))) `CONST`_instr{numtype#302}((at' : addrtype <: numtype), `%`_num_{i#38973}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr{memidx#140}(x_1, x_2)]] +[visit_exp `CONST`_instr{numtype#292}((at_1 : addrtype <: numtype), i_1)] +[visit_exp numtype#292] +[visit_id numtype#292] +[visit_exp ((at_1 : addrtype <: numtype), i_1)] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp `CONST`_instr{numtype#294}((at_2 : addrtype <: numtype), i_2)] +[visit_exp numtype#294] +[visit_id numtype#294] +[visit_exp ((at_2 : addrtype <: numtype), i_2)] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] not free +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp `LOAD`_instr{`numtype?#16`, memidx#136, memarg#81}(`I32`_numtype, ?(`%_%`_loadop_{sz#483, sx#384, i#38802}(`%`_sz{i#38809}(8), `U`_sx)), x_2, $memarg0)] +[visit_exp `numtype?#16`] +[visit_id numtype?#16] +[visit_exp memidx#136] +[visit_id memidx#136] +[visit_exp memarg#81] +[visit_id memarg#81] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#483, sx#384, i#38802}(`%`_sz{i#38809}(8), `U`_sx)), x_2, $memarg0)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#483, sx#384, i#38802}(`%`_sz{i#38809}(8), `U`_sx))] +[visit_exp `%_%`_loadop_{sz#483, sx#384, i#38802}(`%`_sz{i#38809}(8), `U`_sx)] +[visit_exp sz#483] +[visit_id sz#483] +[visit_exp sx#384] +[visit_id sx#384] +[visit_exp i#38802] +[visit_id i#38802] +[visit_exp (`%`_sz{i#38809}(8), `U`_sx)] +[visit_exp `%`_sz{i#38809}(8)] +[visit_exp i#38809] +[visit_id i#38809] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp $memarg0] +[visit_exp `STORE`_instr{`numtype?#17`, memidx#138, memarg#83}(`I32`_numtype, ?(`%`_storeop_{sz#496, i#38864}(`%`_sz{i#38865}(8))), x_1, $memarg0)] +[visit_exp `numtype?#17`] +[visit_id numtype?#17] +[visit_exp memidx#138] +[visit_id memidx#138] +[visit_exp memarg#83] +[visit_id memarg#83] +[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#496, i#38864}(`%`_sz{i#38865}(8))), x_1, $memarg0)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#496, i#38864}(`%`_sz{i#38865}(8)))] +[visit_exp `%`_storeop_{sz#496, i#38864}(`%`_sz{i#38865}(8))] +[visit_exp sz#496] +[visit_id sz#496] +[visit_exp i#38864] +[visit_id i#38864] +[visit_exp (`%`_sz{i#38865}(8))] +[visit_exp `%`_sz{i#38865}(8)] +[visit_exp i#38865] +[visit_id i#38865] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp $memarg0] +[visit_exp `CONST`_instr{numtype#298}((at_1 : addrtype <: numtype), `%`_num_{i#38915}((i_1!`%`_num_{i#38905}.0 + 1)))] +[visit_exp numtype#298] +[visit_id numtype#298] +[visit_exp ((at_1 : addrtype <: numtype), `%`_num_{i#38915}((i_1!`%`_num_{i#38905}.0 + 1)))] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp `%`_num_{i#38915}((i_1!`%`_num_{i#38905}.0 + 1))] +[visit_exp i#38915] +[visit_id i#38915] +[visit_exp ((i_1!`%`_num_{i#38905}.0 + 1))] +[visit_exp (i_1!`%`_num_{i#38905}.0 + 1)] +[visit_exp i_1!`%`_num_{i#38905}.0] +[visit_exp i_1!`%`_num_{i#38905}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#38905] +[visit_id i#38905] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#300}((at_2 : addrtype <: numtype), `%`_num_{i#38951}((i_2!`%`_num_{i#38941}.0 + 1)))] +[visit_exp numtype#300] +[visit_id numtype#300] +[visit_exp ((at_2 : addrtype <: numtype), `%`_num_{i#38951}((i_2!`%`_num_{i#38941}.0 + 1)))] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] not free +[visit_exp `%`_num_{i#38951}((i_2!`%`_num_{i#38941}.0 + 1))] +[visit_exp i#38951] +[visit_id i#38951] +[visit_exp ((i_2!`%`_num_{i#38941}.0 + 1))] +[visit_exp (i_2!`%`_num_{i#38941}.0 + 1)] +[visit_exp i_2!`%`_num_{i#38941}.0] +[visit_exp i_2!`%`_num_{i#38941}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#38941] +[visit_id i#38941] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#302}((at' : addrtype <: numtype), `%`_num_{i#38973}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#302] +[visit_id numtype#302] +[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#38973}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (at' : addrtype <: numtype)] +[visit_exp at'] +[visit_id at'] not free +[visit_exp `%`_num_{i#38973}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#38973] +[visit_id i#38973] +[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `MEMORY.COPY`_instr{memidx#140}(x_1, x_2)] +[visit_exp memidx#140] +[visit_id memidx#140] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp (i_1!`%`_num_{i#39019}.0 <= i_2!`%`_num_{i#39029}.0)] +[visit_exp i_1!`%`_num_{i#39019}.0] +[visit_exp i_1!`%`_num_{i#39019}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#39019] +[visit_id i#39019] +[visit_exp i_2!`%`_num_{i#39029}.0] +[visit_exp i_2!`%`_num_{i#39029}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#39029] +[visit_id i#39029] +[check_dims] at' at_1 at_2 i#39081 i#39135 i#39145 i#39171 i#39181 i#39207 i#39214 i#39269 i#39270 i#39330 i_1 i_2 instr*#1590 memarg#85 memarg#87 memidx#143 memidx#146 memidx#148 memidx#150 n numtype#304 numtype#306 numtype#308 numtype#310 numtype#312 numtype#316 numtype#318 numtype#320 numtype?#18 numtype?#19 state#1475 sx#402 sz#514 sz#527 x_1 x_2 z +[visit_exp `%;%`_config{state#1475, `instr*#1590`}(z, [`CONST`_instr{numtype#304}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#306}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#308}((at' : addrtype <: numtype), `%`_num_{i#39081}(n)) `MEMORY.COPY`_instr{memidx#143}(x_1, x_2)])] +[visit_exp state#1475] +[visit_id state#1475] +[visit_exp `instr*#1590`] +[visit_id instr*#1590] +[visit_exp (z, [`CONST`_instr{numtype#304}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#306}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#308}((at' : addrtype <: numtype), `%`_num_{i#39081}(n)) `MEMORY.COPY`_instr{memidx#143}(x_1, x_2)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#304}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#306}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#308}((at' : addrtype <: numtype), `%`_num_{i#39081}(n)) `MEMORY.COPY`_instr{memidx#143}(x_1, x_2)]] +[visit_exp `CONST`_instr{numtype#304}((at_1 : addrtype <: numtype), i_1)] +[visit_exp numtype#304] +[visit_id numtype#304] +[visit_exp ((at_1 : addrtype <: numtype), i_1)] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `CONST`_instr{numtype#306}((at_2 : addrtype <: numtype), i_2)] +[visit_exp numtype#306] +[visit_id numtype#306] +[visit_exp ((at_2 : addrtype <: numtype), i_2)] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#308}((at' : addrtype <: numtype), `%`_num_{i#39081}(n))] +[visit_exp numtype#308] +[visit_id numtype#308] +[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#39081}(n))] +[visit_exp (at' : addrtype <: numtype)] +[visit_exp at'] +[visit_id at'] +[visit_exp `%`_num_{i#39081}(n)] +[visit_exp i#39081] +[visit_id i#39081] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `MEMORY.COPY`_instr{memidx#143}(x_1, x_2)] +[visit_exp memidx#143] +[visit_id memidx#143] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp [`CONST`_instr{numtype#310}((at_1 : addrtype <: numtype), `%`_num_{i#39145}(((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr{numtype#312}((at_2 : addrtype <: numtype), `%`_num_{i#39181}(((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `LOAD`_instr{`numtype?#18`, memidx#146, memarg#85}(`I32`_numtype, ?(`%_%`_loadop_{sz#514, sx#402, i#39207}(`%`_sz{i#39214}(8), `U`_sx)), x_2, $memarg0) `STORE`_instr{`numtype?#19`, memidx#148, memarg#87}(`I32`_numtype, ?(`%`_storeop_{sz#527, i#39269}(`%`_sz{i#39270}(8))), x_1, $memarg0) `CONST`_instr{numtype#316}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#318}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#320}((at' : addrtype <: numtype), `%`_num_{i#39330}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr{memidx#150}(x_1, x_2)]] +[visit_exp `CONST`_instr{numtype#310}((at_1 : addrtype <: numtype), `%`_num_{i#39145}(((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#310] +[visit_id numtype#310] +[visit_exp ((at_1 : addrtype <: numtype), `%`_num_{i#39145}(((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp `%`_num_{i#39145}(((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#39145] +[visit_id i#39145] +[visit_exp (((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int)] +[visit_exp (i_1!`%`_num_{i#39135}.0 + n)] +[visit_exp i_1!`%`_num_{i#39135}.0] +[visit_exp i_1!`%`_num_{i#39135}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#39135] +[visit_id i#39135] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#312}((at_2 : addrtype <: numtype), `%`_num_{i#39181}(((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#312] +[visit_id numtype#312] +[visit_exp ((at_2 : addrtype <: numtype), `%`_num_{i#39181}(((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] not free +[visit_exp `%`_num_{i#39181}(((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#39181] +[visit_id i#39181] +[visit_exp (((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int)] +[visit_exp (i_2!`%`_num_{i#39171}.0 + n)] +[visit_exp i_2!`%`_num_{i#39171}.0] +[visit_exp i_2!`%`_num_{i#39171}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#39171] +[visit_id i#39171] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `LOAD`_instr{`numtype?#18`, memidx#146, memarg#85}(`I32`_numtype, ?(`%_%`_loadop_{sz#514, sx#402, i#39207}(`%`_sz{i#39214}(8), `U`_sx)), x_2, $memarg0)] +[visit_exp `numtype?#18`] +[visit_id numtype?#18] +[visit_exp memidx#146] +[visit_id memidx#146] +[visit_exp memarg#85] +[visit_id memarg#85] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#514, sx#402, i#39207}(`%`_sz{i#39214}(8), `U`_sx)), x_2, $memarg0)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#514, sx#402, i#39207}(`%`_sz{i#39214}(8), `U`_sx))] +[visit_exp `%_%`_loadop_{sz#514, sx#402, i#39207}(`%`_sz{i#39214}(8), `U`_sx)] +[visit_exp sz#514] +[visit_id sz#514] +[visit_exp sx#402] +[visit_id sx#402] +[visit_exp i#39207] +[visit_id i#39207] +[visit_exp (`%`_sz{i#39214}(8), `U`_sx)] +[visit_exp `%`_sz{i#39214}(8)] +[visit_exp i#39214] +[visit_id i#39214] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp $memarg0] +[visit_exp `STORE`_instr{`numtype?#19`, memidx#148, memarg#87}(`I32`_numtype, ?(`%`_storeop_{sz#527, i#39269}(`%`_sz{i#39270}(8))), x_1, $memarg0)] +[visit_exp `numtype?#19`] +[visit_id numtype?#19] +[visit_exp memidx#148] +[visit_id memidx#148] +[visit_exp memarg#87] +[visit_id memarg#87] +[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#527, i#39269}(`%`_sz{i#39270}(8))), x_1, $memarg0)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#527, i#39269}(`%`_sz{i#39270}(8)))] +[visit_exp `%`_storeop_{sz#527, i#39269}(`%`_sz{i#39270}(8))] +[visit_exp sz#527] +[visit_id sz#527] +[visit_exp i#39269] +[visit_id i#39269] +[visit_exp (`%`_sz{i#39270}(8))] +[visit_exp `%`_sz{i#39270}(8)] +[visit_exp i#39270] +[visit_id i#39270] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp $memarg0] +[visit_exp `CONST`_instr{numtype#316}((at_1 : addrtype <: numtype), i_1)] +[visit_exp numtype#316] +[visit_id numtype#316] +[visit_exp ((at_1 : addrtype <: numtype), i_1)] +[visit_exp (at_1 : addrtype <: numtype)] +[visit_exp at_1] +[visit_id at_1] not free +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp `CONST`_instr{numtype#318}((at_2 : addrtype <: numtype), i_2)] +[visit_exp numtype#318] +[visit_id numtype#318] +[visit_exp ((at_2 : addrtype <: numtype), i_2)] +[visit_exp (at_2 : addrtype <: numtype)] +[visit_exp at_2] +[visit_id at_2] not free +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp `CONST`_instr{numtype#320}((at' : addrtype <: numtype), `%`_num_{i#39330}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#320] +[visit_id numtype#320] +[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#39330}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (at' : addrtype <: numtype)] +[visit_exp at'] +[visit_id at'] not free +[visit_exp `%`_num_{i#39330}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#39330] +[visit_id i#39330] +[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `MEMORY.COPY`_instr{memidx#150}(x_1, x_2)] +[visit_exp memidx#150] +[visit_id memidx#150] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp x_2] +[visit_id x_2] not free +[check_dims] at byte*#1872 byte*#1873 dataidx#17 i i#39410 i#39452 i#39478 instr*#1602 j memidx#153 n numtype#322 numtype#324 numtype#326 state#1487 x y z +[visit_exp `%;%`_config{state#1487, `instr*#1602`}(z, [`CONST`_instr{numtype#322}((at : addrtype <: numtype), i) `CONST`_instr{numtype#324}(`I32`_numtype, j) `CONST`_instr{numtype#326}(`I32`_numtype, `%`_num_{i#39410}(n)) `MEMORY.INIT`_instr{memidx#153, dataidx#17}(x, y)])] +[visit_exp state#1487] +[visit_id state#1487] +[visit_exp `instr*#1602`] +[visit_id instr*#1602] +[visit_exp (z, [`CONST`_instr{numtype#322}((at : addrtype <: numtype), i) `CONST`_instr{numtype#324}(`I32`_numtype, j) `CONST`_instr{numtype#326}(`I32`_numtype, `%`_num_{i#39410}(n)) `MEMORY.INIT`_instr{memidx#153, dataidx#17}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#322}((at : addrtype <: numtype), i) `CONST`_instr{numtype#324}(`I32`_numtype, j) `CONST`_instr{numtype#326}(`I32`_numtype, `%`_num_{i#39410}(n)) `MEMORY.INIT`_instr{memidx#153, dataidx#17}(x, y)]] +[visit_exp `CONST`_instr{numtype#322}((at : addrtype <: numtype), i)] +[visit_exp numtype#322] +[visit_id numtype#322] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#324}(`I32`_numtype, j)] +[visit_exp numtype#324] +[visit_id numtype#324] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#326}(`I32`_numtype, `%`_num_{i#39410}(n))] +[visit_exp numtype#326] +[visit_id numtype#326] +[visit_exp (`I32`_numtype, `%`_num_{i#39410}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#39410}(n)] +[visit_exp i#39410] +[visit_id i#39410] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `MEMORY.INIT`_instr{memidx#153, dataidx#17}(x, y)] +[visit_exp memidx#153] +[visit_id memidx#153] +[visit_exp dataidx#17] +[visit_id dataidx#17] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (((i!`%`_num_{i#39452}.0 + n) > |$mem(z, x).`BYTES`_meminst{`byte*#1872`}|) \/ ((j!`%`_num_{i#39478}.0 + n) > |$data(z, y).`BYTES`_datainst{`byte*#1873`}|))] +[visit_exp ((i!`%`_num_{i#39452}.0 + n) > |$mem(z, x).`BYTES`_meminst{`byte*#1872`}|)] +[visit_exp (i!`%`_num_{i#39452}.0 + n)] +[visit_exp i!`%`_num_{i#39452}.0] +[visit_exp i!`%`_num_{i#39452}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#39452] +[visit_id i#39452] +[visit_exp n] +[visit_id n] not free +[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1872`}|] +[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1872`}] +[visit_exp $mem(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `byte*#1872`] +[visit_id byte*#1872] +[visit_exp ((j!`%`_num_{i#39478}.0 + n) > |$data(z, y).`BYTES`_datainst{`byte*#1873`}|)] +[visit_exp (j!`%`_num_{i#39478}.0 + n)] +[visit_exp j!`%`_num_{i#39478}.0] +[visit_exp j!`%`_num_{i#39478}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#39478] +[visit_id i#39478] +[visit_exp n] +[visit_id n] not free +[visit_exp |$data(z, y).`BYTES`_datainst{`byte*#1873`}|] +[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1873`}] +[visit_exp $data(z, y)] +[visit_exp z] +[visit_id z] not free +[visit_exp y] +[visit_id y] not free +[visit_exp `byte*#1873`] +[visit_id byte*#1873] +[check_dims] at dataidx#19 i i#39542 instr*#1614 j memidx#155 n numtype#328 numtype#330 numtype#332 state#1499 x y z +[visit_exp `%;%`_config{state#1499, `instr*#1614`}(z, [`CONST`_instr{numtype#328}((at : addrtype <: numtype), i) `CONST`_instr{numtype#330}(`I32`_numtype, j) `CONST`_instr{numtype#332}(`I32`_numtype, `%`_num_{i#39542}(n)) `MEMORY.INIT`_instr{memidx#155, dataidx#19}(x, y)])] +[visit_exp state#1499] +[visit_id state#1499] +[visit_exp `instr*#1614`] +[visit_id instr*#1614] +[visit_exp (z, [`CONST`_instr{numtype#328}((at : addrtype <: numtype), i) `CONST`_instr{numtype#330}(`I32`_numtype, j) `CONST`_instr{numtype#332}(`I32`_numtype, `%`_num_{i#39542}(n)) `MEMORY.INIT`_instr{memidx#155, dataidx#19}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#328}((at : addrtype <: numtype), i) `CONST`_instr{numtype#330}(`I32`_numtype, j) `CONST`_instr{numtype#332}(`I32`_numtype, `%`_num_{i#39542}(n)) `MEMORY.INIT`_instr{memidx#155, dataidx#19}(x, y)]] +[visit_exp `CONST`_instr{numtype#328}((at : addrtype <: numtype), i)] +[visit_exp numtype#328] +[visit_id numtype#328] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#330}(`I32`_numtype, j)] +[visit_exp numtype#330] +[visit_id numtype#330] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#332}(`I32`_numtype, `%`_num_{i#39542}(n))] +[visit_exp numtype#332] +[visit_id numtype#332] +[visit_exp (`I32`_numtype, `%`_num_{i#39542}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#39542}(n)] +[visit_exp i#39542] +[visit_id i#39542] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `MEMORY.INIT`_instr{memidx#155, dataidx#19}(x, y)] +[visit_exp memidx#155] +[visit_id memidx#155] +[visit_exp dataidx#19] +[visit_id dataidx#19] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp []] +[visit_exp (n = 0)] +[visit_exp n] +[visit_id n] not free +[visit_exp 0] +[check_dims] at byte*#1874 dataidx#21 dataidx#23 i i#39622 i#39696 i#39714 i#39715 i#39757 i#39758 i#39798 i#39808 i#39834 i#39844 i#39866 instr*#1626 j memarg#89 memidx#157 memidx#159 memidx#161 n numtype#334 numtype#336 numtype#338 numtype#340 numtype#342 numtype#345 numtype#347 numtype#349 numtype?#20 state#1511 sz#540 x y z +[visit_exp `%;%`_config{state#1511, `instr*#1626`}(z, [`CONST`_instr{numtype#334}((at : addrtype <: numtype), i) `CONST`_instr{numtype#336}(`I32`_numtype, j) `CONST`_instr{numtype#338}(`I32`_numtype, `%`_num_{i#39622}(n)) `MEMORY.INIT`_instr{memidx#157, dataidx#21}(x, y)])] +[visit_exp state#1511] +[visit_id state#1511] +[visit_exp `instr*#1626`] +[visit_id instr*#1626] +[visit_exp (z, [`CONST`_instr{numtype#334}((at : addrtype <: numtype), i) `CONST`_instr{numtype#336}(`I32`_numtype, j) `CONST`_instr{numtype#338}(`I32`_numtype, `%`_num_{i#39622}(n)) `MEMORY.INIT`_instr{memidx#157, dataidx#21}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#334}((at : addrtype <: numtype), i) `CONST`_instr{numtype#336}(`I32`_numtype, j) `CONST`_instr{numtype#338}(`I32`_numtype, `%`_num_{i#39622}(n)) `MEMORY.INIT`_instr{memidx#157, dataidx#21}(x, y)]] +[visit_exp `CONST`_instr{numtype#334}((at : addrtype <: numtype), i)] +[visit_exp numtype#334] +[visit_id numtype#334] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#336}(`I32`_numtype, j)] +[visit_exp numtype#336] +[visit_id numtype#336] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#338}(`I32`_numtype, `%`_num_{i#39622}(n))] +[visit_exp numtype#338] +[visit_id numtype#338] +[visit_exp (`I32`_numtype, `%`_num_{i#39622}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#39622}(n)] +[visit_exp i#39622] +[visit_id i#39622] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `MEMORY.INIT`_instr{memidx#157, dataidx#21}(x, y)] +[visit_exp memidx#157] +[visit_id memidx#157] +[visit_exp dataidx#21] +[visit_id dataidx#21] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`CONST`_instr{numtype#340}((at : addrtype <: numtype), i) `CONST`_instr{numtype#342}(`I32`_numtype, `%`_num_{i#39715}($data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0)) `STORE`_instr{`numtype?#20`, memidx#159, memarg#89}(`I32`_numtype, ?(`%`_storeop_{sz#540, i#39757}(`%`_sz{i#39758}(8))), x, $memarg0) `CONST`_instr{numtype#345}((at : addrtype <: numtype), `%`_num_{i#39808}((i!`%`_num_{i#39798}.0 + 1))) `CONST`_instr{numtype#347}(`I32`_numtype, `%`_num_{i#39844}((j!`%`_num_{i#39834}.0 + 1))) `CONST`_instr{numtype#349}(`I32`_numtype, `%`_num_{i#39866}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.INIT`_instr{memidx#161, dataidx#23}(x, y)]] +[visit_exp `CONST`_instr{numtype#340}((at : addrtype <: numtype), i)] +[visit_exp numtype#340] +[visit_id numtype#340] +[visit_exp ((at : addrtype <: numtype), i)] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp i] +[visit_id i] not free +[visit_exp `CONST`_instr{numtype#342}(`I32`_numtype, `%`_num_{i#39715}($data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0))] +[visit_exp numtype#342] +[visit_id numtype#342] +[visit_exp (`I32`_numtype, `%`_num_{i#39715}($data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#39715}($data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0)] +[visit_exp i#39715] +[visit_id i#39715] +[visit_exp ($data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0)] +[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0] +[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}] +[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]] +[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1874`}] +[visit_exp $data(z, y)] +[visit_exp z] +[visit_id z] not free +[visit_exp y] +[visit_id y] not free +[visit_exp `byte*#1874`] +[visit_id byte*#1874] +[visit_exp j!`%`_num_{i#39696}.0] +[visit_exp j!`%`_num_{i#39696}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#39696] +[visit_id i#39696] +[visit_exp i#39714] +[visit_id i#39714] +[visit_exp `STORE`_instr{`numtype?#20`, memidx#159, memarg#89}(`I32`_numtype, ?(`%`_storeop_{sz#540, i#39757}(`%`_sz{i#39758}(8))), x, $memarg0)] +[visit_exp `numtype?#20`] +[visit_id numtype?#20] +[visit_exp memidx#159] +[visit_id memidx#159] +[visit_exp memarg#89] +[visit_id memarg#89] +[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#540, i#39757}(`%`_sz{i#39758}(8))), x, $memarg0)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#540, i#39757}(`%`_sz{i#39758}(8)))] +[visit_exp `%`_storeop_{sz#540, i#39757}(`%`_sz{i#39758}(8))] +[visit_exp sz#540] +[visit_id sz#540] +[visit_exp i#39757] +[visit_id i#39757] +[visit_exp (`%`_sz{i#39758}(8))] +[visit_exp `%`_sz{i#39758}(8)] +[visit_exp i#39758] +[visit_id i#39758] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x] +[visit_id x] not free +[visit_exp $memarg0] +[visit_exp `CONST`_instr{numtype#345}((at : addrtype <: numtype), `%`_num_{i#39808}((i!`%`_num_{i#39798}.0 + 1)))] +[visit_exp numtype#345] +[visit_id numtype#345] +[visit_exp ((at : addrtype <: numtype), `%`_num_{i#39808}((i!`%`_num_{i#39798}.0 + 1)))] +[visit_exp (at : addrtype <: numtype)] +[visit_exp at] +[visit_id at] not free +[visit_exp `%`_num_{i#39808}((i!`%`_num_{i#39798}.0 + 1))] +[visit_exp i#39808] +[visit_id i#39808] +[visit_exp ((i!`%`_num_{i#39798}.0 + 1))] +[visit_exp (i!`%`_num_{i#39798}.0 + 1)] +[visit_exp i!`%`_num_{i#39798}.0] +[visit_exp i!`%`_num_{i#39798}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#39798] +[visit_id i#39798] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#347}(`I32`_numtype, `%`_num_{i#39844}((j!`%`_num_{i#39834}.0 + 1)))] +[visit_exp numtype#347] +[visit_id numtype#347] +[visit_exp (`I32`_numtype, `%`_num_{i#39844}((j!`%`_num_{i#39834}.0 + 1)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#39844}((j!`%`_num_{i#39834}.0 + 1))] +[visit_exp i#39844] +[visit_id i#39844] +[visit_exp ((j!`%`_num_{i#39834}.0 + 1))] +[visit_exp (j!`%`_num_{i#39834}.0 + 1)] +[visit_exp j!`%`_num_{i#39834}.0] +[visit_exp j!`%`_num_{i#39834}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#39834] +[visit_id i#39834] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#349}(`I32`_numtype, `%`_num_{i#39866}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#349] +[visit_id numtype#349] +[visit_exp (`I32`_numtype, `%`_num_{i#39866}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#39866}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#39866] +[visit_id i#39866] +[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `MEMORY.INIT`_instr{memidx#161, dataidx#23}(x, y)] +[visit_exp memidx#161] +[visit_id memidx#161] +[visit_exp dataidx#23] +[visit_id dataidx#23] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] not free +[visit_exp y] +[visit_id y] not free +[check_dims] dataidx#25 instr*#1638 instr*#1650 state#1523 state#1535 x z +[visit_exp `%;%`_config{state#1523, `instr*#1638`}(z, [`DATA.DROP`_instr{dataidx#25}(x)])] +[visit_exp state#1523] +[visit_id state#1523] +[visit_exp `instr*#1638`] +[visit_id instr*#1638] +[visit_exp (z, [`DATA.DROP`_instr{dataidx#25}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`DATA.DROP`_instr{dataidx#25}(x)]] +[visit_exp `DATA.DROP`_instr{dataidx#25}(x)] +[visit_exp dataidx#25] +[visit_id dataidx#25] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#1535, `instr*#1650`}($with_data(z, x, []), [])] +[visit_exp state#1535] +[visit_id state#1535] +[visit_exp `instr*#1650`] +[visit_id instr*#1650] +[visit_exp ($with_data(z, x, []), [])] +[visit_exp $with_data(z, x, [])] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp []] +[visit_exp []] +[check_dims] heaptype#1343 heaptype#1345 instr*#1662 state#1547 typeidx#1555 x z +[visit_exp `%;%`_config{state#1547, `instr*#1662`}(z, [`REF.NULL`_instr{heaptype#1343}(`_IDX`_heaptype{typeidx#1555}(x))])] +[visit_exp state#1547] +[visit_id state#1547] +[visit_exp `instr*#1662`] +[visit_id instr*#1662] +[visit_exp (z, [`REF.NULL`_instr{heaptype#1343}(`_IDX`_heaptype{typeidx#1555}(x))])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.NULL`_instr{heaptype#1343}(`_IDX`_heaptype{typeidx#1555}(x))]] +[visit_exp `REF.NULL`_instr{heaptype#1343}(`_IDX`_heaptype{typeidx#1555}(x))] +[visit_exp heaptype#1343] +[visit_id heaptype#1343] +[visit_exp (`_IDX`_heaptype{typeidx#1555}(x))] +[visit_exp `_IDX`_heaptype{typeidx#1555}(x)] +[visit_exp typeidx#1555] +[visit_id typeidx#1555] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`REF.NULL`_instr{heaptype#1345}(($type(z, x) : deftype <: heaptype))]] +[visit_exp `REF.NULL`_instr{heaptype#1345}(($type(z, x) : deftype <: heaptype))] +[visit_exp heaptype#1345] +[visit_id heaptype#1345] +[visit_exp (($type(z, x) : deftype <: heaptype))] +[visit_exp ($type(z, x) : deftype <: heaptype)] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[check_dims] funcaddr#17 funcaddr*#4 funcidx#2841 i#39970 instr*#1674 state#1559 x z +[visit_exp `%;%`_config{state#1559, `instr*#1674`}(z, [`REF.FUNC`_instr{funcidx#2841}(x)])] +[visit_exp state#1559] +[visit_id state#1559] +[visit_exp `instr*#1674`] +[visit_id instr*#1674] +[visit_exp (z, [`REF.FUNC`_instr{funcidx#2841}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.FUNC`_instr{funcidx#2841}(x)]] +[visit_exp `REF.FUNC`_instr{funcidx#2841}(x)] +[visit_exp funcidx#2841] +[visit_id funcidx#2841] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#17}($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#4`}[x!`%`_idx{i#39970}.0])]] +[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#17}($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#4`}[x!`%`_idx{i#39970}.0])] +[visit_exp funcaddr#17] +[visit_id funcaddr#17] +[visit_exp ($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#4`}[x!`%`_idx{i#39970}.0])] +[visit_exp $moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#4`}[x!`%`_idx{i#39970}.0]] +[visit_exp $moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#4`}] +[visit_exp $moduleinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp `funcaddr*#4`] +[visit_id funcaddr*#4] +[visit_exp x!`%`_idx{i#39970}.0] +[visit_exp x!`%`_idx{i#39970}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#39970] +[visit_id i#39970] +[check_dims] i numtype#351 u31#3 +[visit_exp [`CONST`_instr{numtype#351}(`I32`_numtype, i) `REF.I31`_instr]] +[visit_exp `CONST`_instr{numtype#351}(`I32`_numtype, i)] +[visit_exp numtype#351] +[visit_id numtype#351] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `REF.I31`_instr] +[visit_exp ()] +[visit_exp [`REF.I31_NUM`_instr{u31#3}($wrap__(32, 31, i))]] +[visit_exp `REF.I31_NUM`_instr{u31#3}($wrap__(32, 31, i))] +[visit_exp u31#3] +[visit_id u31#3] +[visit_exp ($wrap__(32, 31, i))] +[visit_exp $wrap__(32, 31, i)] +[visit_exp 32] +[visit_exp 31] +[visit_exp i] +[visit_id i] not free +[check_dims] heaptype#1347 ht i#40032 numtype#353 ref +[visit_exp [(ref : ref <: instr) `REF.IS_NULL`_instr]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `REF.IS_NULL`_instr] +[visit_exp ()] +[visit_exp [`CONST`_instr{numtype#353}(`I32`_numtype, `%`_num_{i#40032}(1))]] +[visit_exp `CONST`_instr{numtype#353}(`I32`_numtype, `%`_num_{i#40032}(1))] +[visit_exp numtype#353] +[visit_id numtype#353] +[visit_exp (`I32`_numtype, `%`_num_{i#40032}(1))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#40032}(1)] +[visit_exp i#40032] +[visit_id i#40032] +[visit_exp (1)] +[visit_exp 1] +[visit_exp (ref = `REF.NULL`_ref{heaptype#1347}(ht))] +[visit_exp ref] +[visit_id ref] not free +[visit_exp `REF.NULL`_ref{heaptype#1347}(ht)] +[visit_exp heaptype#1347] +[visit_id heaptype#1347] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[check_dims] i#40054 numtype#355 ref +[visit_exp [(ref : ref <: instr) `REF.IS_NULL`_instr]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `REF.IS_NULL`_instr] +[visit_exp ()] +[visit_exp [`CONST`_instr{numtype#355}(`I32`_numtype, `%`_num_{i#40054}(0))]] +[visit_exp `CONST`_instr{numtype#355}(`I32`_numtype, `%`_num_{i#40054}(0))] +[visit_exp numtype#355] +[visit_id numtype#355] +[visit_exp (`I32`_numtype, `%`_num_{i#40054}(0))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#40054}(0)] +[visit_exp i#40054] +[visit_id i#40054] +[visit_exp (0)] +[visit_exp 0] +[check_dims] heaptype#1349 ht ref +[visit_exp [(ref : ref <: instr) `REF.AS_NON_NULL`_instr]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `REF.AS_NON_NULL`_instr] +[visit_exp ()] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (ref = `REF.NULL`_ref{heaptype#1349}(ht))] +[visit_exp ref] +[visit_id ref] not free +[visit_exp `REF.NULL`_ref{heaptype#1349}(ht)] +[visit_exp heaptype#1349] +[visit_id heaptype#1349] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[check_dims] ref +[visit_exp [(ref : ref <: instr) `REF.AS_NON_NULL`_instr]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `REF.AS_NON_NULL`_instr] +[visit_exp ()] +[visit_exp [(ref : ref <: instr)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] not free +[check_dims] heaptype#1351 heaptype#1353 ht_1 ht_2 i#40076 numtype#357 ref_1 ref_2 +[visit_exp [(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr]] +[visit_exp (ref_1 : ref <: instr)] +[visit_exp ref_1] +[visit_id ref_1] +[visit_exp (ref_2 : ref <: instr)] +[visit_exp ref_2] +[visit_id ref_2] +[visit_exp `REF.EQ`_instr] +[visit_exp ()] +[visit_exp [`CONST`_instr{numtype#357}(`I32`_numtype, `%`_num_{i#40076}(1))]] +[visit_exp `CONST`_instr{numtype#357}(`I32`_numtype, `%`_num_{i#40076}(1))] +[visit_exp numtype#357] +[visit_id numtype#357] +[visit_exp (`I32`_numtype, `%`_num_{i#40076}(1))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#40076}(1)] +[visit_exp i#40076] +[visit_id i#40076] +[visit_exp (1)] +[visit_exp 1] +[visit_exp ((ref_1 = `REF.NULL`_ref{heaptype#1351}(ht_1)) /\ (ref_2 = `REF.NULL`_ref{heaptype#1353}(ht_2)))] +[visit_exp (ref_1 = `REF.NULL`_ref{heaptype#1351}(ht_1))] +[visit_exp ref_1] +[visit_id ref_1] not free +[visit_exp `REF.NULL`_ref{heaptype#1351}(ht_1)] +[visit_exp heaptype#1351] +[visit_id heaptype#1351] +[visit_exp (ht_1)] +[visit_exp ht_1] +[visit_id ht_1] +[visit_exp (ref_2 = `REF.NULL`_ref{heaptype#1353}(ht_2))] +[visit_exp ref_2] +[visit_id ref_2] not free +[visit_exp `REF.NULL`_ref{heaptype#1353}(ht_2)] +[visit_exp heaptype#1353] +[visit_id heaptype#1353] +[visit_exp (ht_2)] +[visit_exp ht_2] +[visit_id ht_2] +[check_dims] i#40098 numtype#359 ref_1 ref_2 +[visit_exp [(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr]] +[visit_exp (ref_1 : ref <: instr)] +[visit_exp ref_1] +[visit_id ref_1] +[visit_exp (ref_2 : ref <: instr)] +[visit_exp ref_2] +[visit_id ref_2] +[visit_exp `REF.EQ`_instr] +[visit_exp ()] +[visit_exp [`CONST`_instr{numtype#359}(`I32`_numtype, `%`_num_{i#40098}(1))]] +[visit_exp `CONST`_instr{numtype#359}(`I32`_numtype, `%`_num_{i#40098}(1))] +[visit_exp numtype#359] +[visit_id numtype#359] +[visit_exp (`I32`_numtype, `%`_num_{i#40098}(1))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#40098}(1)] +[visit_exp i#40098] +[visit_id i#40098] +[visit_exp (1)] +[visit_exp 1] +[visit_exp (ref_1 = ref_2)] +[visit_exp ref_1] +[visit_id ref_1] not free +[visit_exp ref_2] +[visit_id ref_2] not free +[check_dims] i#40120 numtype#361 ref_1 ref_2 +[visit_exp [(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr]] +[visit_exp (ref_1 : ref <: instr)] +[visit_exp ref_1] +[visit_id ref_1] +[visit_exp (ref_2 : ref <: instr)] +[visit_exp ref_2] +[visit_id ref_2] +[visit_exp `REF.EQ`_instr] +[visit_exp ()] +[visit_exp [`CONST`_instr{numtype#361}(`I32`_numtype, `%`_num_{i#40120}(0))]] +[visit_exp `CONST`_instr{numtype#361}(`I32`_numtype, `%`_num_{i#40120}(0))] +[visit_exp numtype#361] +[visit_id numtype#361] +[visit_exp (`I32`_numtype, `%`_num_{i#40120}(0))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#40120}(0)] +[visit_exp i#40120] +[visit_id i#40120] +[visit_exp (0)] +[visit_exp 0] +[check_dims] datatype*#24 deftype*#90 deftype*#91 elemtype*#24 f frame#1931 funcidx*#61 globaltype*#25 i#40142 instr*#1686 localtype*#27 memtype*#39 moduleinst#23 numtype#363 ref reftype#3467 resulttype*#35 resulttype?#32 rt rt' s state#1571 store#1913 subtype*#23 tabletype*#32 tagtype*#24 +[visit_exp `%;%`_config{state#1571, `instr*#1686`}(`%;%`_state{store#1913, frame#1931}(s, f), [(ref : ref <: instr) `REF.TEST`_instr{reftype#3467}(rt)])] +[visit_exp state#1571] +[visit_id state#1571] +[visit_exp `instr*#1686`] +[visit_id instr*#1686] +[visit_exp (`%;%`_state{store#1913, frame#1931}(s, f), [(ref : ref <: instr) `REF.TEST`_instr{reftype#3467}(rt)])] +[visit_exp `%;%`_state{store#1913, frame#1931}(s, f)] +[visit_exp store#1913] +[visit_id store#1913] +[visit_exp frame#1931] +[visit_id frame#1931] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp [(ref : ref <: instr) `REF.TEST`_instr{reftype#3467}(rt)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `REF.TEST`_instr{reftype#3467}(rt)] +[visit_exp reftype#3467] +[visit_id reftype#3467] +[visit_exp (rt)] +[visit_exp rt] +[visit_id rt] +[visit_exp [`CONST`_instr{numtype#363}(`I32`_numtype, `%`_num_{i#40142}(1))]] +[visit_exp `CONST`_instr{numtype#363}(`I32`_numtype, `%`_num_{i#40142}(1))] +[visit_exp numtype#363] +[visit_id numtype#363] +[visit_exp (`I32`_numtype, `%`_num_{i#40142}(1))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#40142}(1)] +[visit_exp i#40142] +[visit_id i#40142] +[visit_exp (1)] +[visit_exp 1] +[visit_exp (s, ref, rt')] +[visit_exp s] +[visit_id s] not free +[visit_exp ref] +[visit_id ref] not free +[visit_exp rt'] +[visit_id rt'] +[visit_exp ({`TYPES`{`deftype*#90`} [], `RECS`{`subtype*#23`} [], `TAGS`{`tagtype*#24`} [], `GLOBALS`{`globaltype*#25`} [], `MEMS`{`memtype*#39`} [], `TABLES`{`tabletype*#32`} [], `FUNCS`{`deftype*#91`} [], `DATAS`{`datatype*#24`} [], `ELEMS`{`elemtype*#24`} [], `LOCALS`{`localtype*#27`} [], `LABELS`{`resulttype*#35`} [], `RETURN`{`resulttype?#32`} ?(), `REFS`{`funcidx*#61`} []}, rt', $inst_reftype(f.`MODULE`_frame{moduleinst#23}, rt))] +[visit_exp {`TYPES`{`deftype*#90`} [], `RECS`{`subtype*#23`} [], `TAGS`{`tagtype*#24`} [], `GLOBALS`{`globaltype*#25`} [], `MEMS`{`memtype*#39`} [], `TABLES`{`tabletype*#32`} [], `FUNCS`{`deftype*#91`} [], `DATAS`{`datatype*#24`} [], `ELEMS`{`elemtype*#24`} [], `LOCALS`{`localtype*#27`} [], `LABELS`{`resulttype*#35`} [], `RETURN`{`resulttype?#32`} ?(), `REFS`{`funcidx*#61`} []}] +[visit_exp `deftype*#90`] +[visit_id deftype*#90] +[visit_exp []] +[visit_exp `subtype*#23`] +[visit_id subtype*#23] +[visit_exp []] +[visit_exp `tagtype*#24`] +[visit_id tagtype*#24] +[visit_exp []] +[visit_exp `globaltype*#25`] +[visit_id globaltype*#25] +[visit_exp []] +[visit_exp `memtype*#39`] +[visit_id memtype*#39] +[visit_exp []] +[visit_exp `tabletype*#32`] +[visit_id tabletype*#32] +[visit_exp []] +[visit_exp `deftype*#91`] +[visit_id deftype*#91] +[visit_exp []] +[visit_exp `datatype*#24`] +[visit_id datatype*#24] +[visit_exp []] +[visit_exp `elemtype*#24`] +[visit_id elemtype*#24] +[visit_exp []] +[visit_exp `localtype*#27`] +[visit_id localtype*#27] +[visit_exp []] +[visit_exp `resulttype*#35`] +[visit_id resulttype*#35] +[visit_exp []] +[visit_exp `resulttype?#32`] +[visit_id resulttype?#32] +[visit_exp ?()] +[visit_exp `funcidx*#61`] +[visit_id funcidx*#61] +[visit_exp []] +[visit_exp rt'] +[visit_id rt'] not free +[visit_exp $inst_reftype(f.`MODULE`_frame{moduleinst#23}, rt)] +[visit_exp f.`MODULE`_frame{moduleinst#23}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#23] +[visit_id moduleinst#23] +[visit_exp rt] +[visit_id rt] not free +[check_dims] f frame#1943 i#40164 instr*#1698 numtype#365 ref reftype#3469 rt s state#1583 store#1925 +[visit_exp `%;%`_config{state#1583, `instr*#1698`}(`%;%`_state{store#1925, frame#1943}(s, f), [(ref : ref <: instr) `REF.TEST`_instr{reftype#3469}(rt)])] +[visit_exp state#1583] +[visit_id state#1583] +[visit_exp `instr*#1698`] +[visit_id instr*#1698] +[visit_exp (`%;%`_state{store#1925, frame#1943}(s, f), [(ref : ref <: instr) `REF.TEST`_instr{reftype#3469}(rt)])] +[visit_exp `%;%`_state{store#1925, frame#1943}(s, f)] +[visit_exp store#1925] +[visit_id store#1925] +[visit_exp frame#1943] +[visit_id frame#1943] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp [(ref : ref <: instr) `REF.TEST`_instr{reftype#3469}(rt)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `REF.TEST`_instr{reftype#3469}(rt)] +[visit_exp reftype#3469] +[visit_id reftype#3469] +[visit_exp (rt)] +[visit_exp rt] +[visit_id rt] +[visit_exp [`CONST`_instr{numtype#365}(`I32`_numtype, `%`_num_{i#40164}(0))]] +[visit_exp `CONST`_instr{numtype#365}(`I32`_numtype, `%`_num_{i#40164}(0))] +[visit_exp numtype#365] +[visit_id numtype#365] +[visit_exp (`I32`_numtype, `%`_num_{i#40164}(0))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#40164}(0)] +[visit_exp i#40164] +[visit_id i#40164] +[visit_exp (0)] +[visit_exp 0] +[check_dims] datatype*#25 deftype*#92 deftype*#93 elemtype*#25 f frame#1955 funcidx*#62 globaltype*#26 instr*#1710 localtype*#28 memtype*#40 moduleinst#24 ref reftype#3471 resulttype*#36 resulttype?#33 rt rt' s state#1595 store#1937 subtype*#24 tabletype*#33 tagtype*#25 +[visit_exp `%;%`_config{state#1595, `instr*#1710`}(`%;%`_state{store#1937, frame#1955}(s, f), [(ref : ref <: instr) `REF.CAST`_instr{reftype#3471}(rt)])] +[visit_exp state#1595] +[visit_id state#1595] +[visit_exp `instr*#1710`] +[visit_id instr*#1710] +[visit_exp (`%;%`_state{store#1937, frame#1955}(s, f), [(ref : ref <: instr) `REF.CAST`_instr{reftype#3471}(rt)])] +[visit_exp `%;%`_state{store#1937, frame#1955}(s, f)] +[visit_exp store#1937] +[visit_id store#1937] +[visit_exp frame#1955] +[visit_id frame#1955] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp [(ref : ref <: instr) `REF.CAST`_instr{reftype#3471}(rt)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `REF.CAST`_instr{reftype#3471}(rt)] +[visit_exp reftype#3471] +[visit_id reftype#3471] +[visit_exp (rt)] +[visit_exp rt] +[visit_id rt] +[visit_exp [(ref : ref <: instr)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] not free +[visit_exp (s, ref, rt')] +[visit_exp s] +[visit_id s] not free +[visit_exp ref] +[visit_id ref] not free +[visit_exp rt'] +[visit_id rt'] +[visit_exp ({`TYPES`{`deftype*#92`} [], `RECS`{`subtype*#24`} [], `TAGS`{`tagtype*#25`} [], `GLOBALS`{`globaltype*#26`} [], `MEMS`{`memtype*#40`} [], `TABLES`{`tabletype*#33`} [], `FUNCS`{`deftype*#93`} [], `DATAS`{`datatype*#25`} [], `ELEMS`{`elemtype*#25`} [], `LOCALS`{`localtype*#28`} [], `LABELS`{`resulttype*#36`} [], `RETURN`{`resulttype?#33`} ?(), `REFS`{`funcidx*#62`} []}, rt', $inst_reftype(f.`MODULE`_frame{moduleinst#24}, rt))] +[visit_exp {`TYPES`{`deftype*#92`} [], `RECS`{`subtype*#24`} [], `TAGS`{`tagtype*#25`} [], `GLOBALS`{`globaltype*#26`} [], `MEMS`{`memtype*#40`} [], `TABLES`{`tabletype*#33`} [], `FUNCS`{`deftype*#93`} [], `DATAS`{`datatype*#25`} [], `ELEMS`{`elemtype*#25`} [], `LOCALS`{`localtype*#28`} [], `LABELS`{`resulttype*#36`} [], `RETURN`{`resulttype?#33`} ?(), `REFS`{`funcidx*#62`} []}] +[visit_exp `deftype*#92`] +[visit_id deftype*#92] +[visit_exp []] +[visit_exp `subtype*#24`] +[visit_id subtype*#24] +[visit_exp []] +[visit_exp `tagtype*#25`] +[visit_id tagtype*#25] +[visit_exp []] +[visit_exp `globaltype*#26`] +[visit_id globaltype*#26] +[visit_exp []] +[visit_exp `memtype*#40`] +[visit_id memtype*#40] +[visit_exp []] +[visit_exp `tabletype*#33`] +[visit_id tabletype*#33] +[visit_exp []] +[visit_exp `deftype*#93`] +[visit_id deftype*#93] +[visit_exp []] +[visit_exp `datatype*#25`] +[visit_id datatype*#25] +[visit_exp []] +[visit_exp `elemtype*#25`] +[visit_id elemtype*#25] +[visit_exp []] +[visit_exp `localtype*#28`] +[visit_id localtype*#28] +[visit_exp []] +[visit_exp `resulttype*#36`] +[visit_id resulttype*#36] +[visit_exp []] +[visit_exp `resulttype?#33`] +[visit_id resulttype?#33] +[visit_exp ?()] +[visit_exp `funcidx*#62`] +[visit_id funcidx*#62] +[visit_exp []] +[visit_exp rt'] +[visit_id rt'] not free +[visit_exp $inst_reftype(f.`MODULE`_frame{moduleinst#24}, rt)] +[visit_exp f.`MODULE`_frame{moduleinst#24}] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#24] +[visit_id moduleinst#24] +[visit_exp rt] +[visit_id rt] not free +[check_dims] f frame#1967 instr*#1722 ref reftype#3473 rt s state#1607 store#1949 +[visit_exp `%;%`_config{state#1607, `instr*#1722`}(`%;%`_state{store#1949, frame#1967}(s, f), [(ref : ref <: instr) `REF.CAST`_instr{reftype#3473}(rt)])] +[visit_exp state#1607] +[visit_id state#1607] +[visit_exp `instr*#1722`] +[visit_id instr*#1722] +[visit_exp (`%;%`_state{store#1949, frame#1967}(s, f), [(ref : ref <: instr) `REF.CAST`_instr{reftype#3473}(rt)])] +[visit_exp `%;%`_state{store#1949, frame#1967}(s, f)] +[visit_exp store#1949] +[visit_id store#1949] +[visit_exp frame#1967] +[visit_id frame#1967] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp [(ref : ref <: instr) `REF.CAST`_instr{reftype#3473}(rt)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `REF.CAST`_instr{reftype#3473}(rt)] +[visit_exp reftype#3473] +[visit_id reftype#3473] +[visit_exp (rt)] +[visit_exp rt] +[visit_id rt] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] heaptype#1427 ht sx sx#404 +[visit_exp [`REF.NULL`_instr{heaptype#1427}(ht) `I31.GET`_instr{sx#404}(sx)]] +[visit_exp `REF.NULL`_instr{heaptype#1427}(ht)] +[visit_exp heaptype#1427] +[visit_id heaptype#1427] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `I31.GET`_instr{sx#404}(sx)] +[visit_exp sx#404] +[visit_id sx#404] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] i numtype#367 sx sx#406 u31#5 +[visit_exp [`REF.I31_NUM`_instr{u31#5}(i) `I31.GET`_instr{sx#406}(sx)]] +[visit_exp `REF.I31_NUM`_instr{u31#5}(i)] +[visit_exp u31#5] +[visit_id u31#5] +[visit_exp (i)] +[visit_exp i] +[visit_id i] +[visit_exp `I31.GET`_instr{sx#406}(sx)] +[visit_exp sx#406] +[visit_id sx#406] +[visit_exp (sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp [`CONST`_instr{numtype#367}(`I32`_numtype, $extend__(31, 32, sx, i))]] +[visit_exp `CONST`_instr{numtype#367}(`I32`_numtype, $extend__(31, 32, sx, i))] +[visit_exp numtype#367] +[visit_id numtype#367] +[visit_exp (`I32`_numtype, $extend__(31, 32, sx, i))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp $extend__(31, 32, sx, i)] +[visit_exp 31] +[visit_exp 32] +[visit_exp sx] +[visit_id sx] not free +[visit_exp i] +[visit_id i] not free +[check_dims] X*#12668 a deftype#9 fieldval*#3 instr*#1734 instr*#1746 mut mut?#1031 n si state#1619 state#1631 storagetype#569 structaddr#3 typeidx#1557 val x z zt +[visit_exp `%;%`_config{state#1619, `instr*#1734`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr{typeidx#1557}(x)])] +[visit_exp state#1619] +[visit_id state#1619] +[visit_exp `instr*#1734`] +[visit_id instr*#1734] +[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr{typeidx#1557}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr{typeidx#1557}(x)]] +[visit_exp (val : val <: instr)^n{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`STRUCT.NEW`_instr{typeidx#1557}(x)]] +[visit_exp `STRUCT.NEW`_instr{typeidx#1557}(x)] +[visit_exp typeidx#1557] +[visit_id typeidx#1557] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#1631, `instr*#1746`}($add_structinst(z, [si]), [`REF.STRUCT_ADDR`_instr{structaddr#3}(a)])] +[visit_exp state#1631] +[visit_id state#1631] +[visit_exp `instr*#1746`] +[visit_id instr*#1746] +[visit_exp ($add_structinst(z, [si]), [`REF.STRUCT_ADDR`_instr{structaddr#3}(a)])] +[visit_exp $add_structinst(z, [si])] +[visit_exp z] +[visit_id z] not free +[visit_exp [si]] +[visit_exp si] +[visit_id si] +[visit_exp [`REF.STRUCT_ADDR`_instr{structaddr#3}(a)]] +[visit_exp `REF.STRUCT_ADDR`_instr{structaddr#3}(a)] +[visit_exp structaddr#3] +[visit_id structaddr#3] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12668`}(`%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`})))] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `STRUCT`_comptype(`%`_list{`X*#12668`}(`%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`}))] +[visit_exp (`%`_list{`X*#12668`}(`%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`}))] +[visit_exp `%`_list{`X*#12668`}(`%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`})] +[visit_exp `X*#12668`] +[visit_id X*#12668] +[visit_exp (`%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`})] +[visit_exp `%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`}] +[scope_enter mut?] +[scope_enter mut?#1031] +[scope_enter storagetype#569] +[scope_enter zt] +[visit_exp `%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#1031`] +[visit_id mut?#1031] not free +[visit_exp storagetype#569] +[visit_id storagetype#569] not free +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_exp zt] +[visit_id zt] not free +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_id mut?#1031] not free +[visit_id storagetype#569] not free +[visit_id zt] not free +[scope_exit zt] +[scope_exit storagetype#569] +[scope_exit mut?#1031] +[scope_exit mut?] +[visit_exp n] +[visit_id n] not free +[visit_exp `mut?*`] +[visit_id mut?*] no dims +[visit_id mut?*] +[visit_exp `mut?#1031*`] +[visit_id mut?#1031*] no dims +[visit_id mut?#1031*] +[visit_exp `storagetype#569*`] +[visit_id storagetype#569*] no dims +[visit_id storagetype#569*] +[visit_exp `zt*`] +[visit_id zt*] no dims +[visit_id zt*] +[visit_exp (a = |$structinst(z)|)] +[visit_exp a] +[visit_id a] not free +[visit_exp |$structinst(z)|] +[visit_exp $structinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp (si = {`TYPE`{deftype#9} $type(z, x), `FIELDS`{`fieldval*#3`} $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}})] +[visit_exp si] +[visit_id si] not free +[visit_exp {`TYPE`{deftype#9} $type(z, x), `FIELDS`{`fieldval*#3`} $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}}] +[visit_exp deftype#9] +[visit_id deftype#9] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `fieldval*#3`] +[visit_id fieldval*#3] +[visit_exp $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}] +[scope_enter val] +[scope_enter zt] +[visit_exp $packfield_(zt, val)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[visit_id zt] not free +[scope_exit zt] +[scope_exit val] +[visit_exp n] +[visit_id n] not free +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp `zt*`] +[visit_id zt*] not free +[visit_id zt*] no dims +[check_dims] X*#12683 instr*#1758 mut mut?#1049 state#1643 storagetype#587 typeidx#1559 typeidx#1561 val x z zt +[visit_exp `%;%`_config{state#1643, `instr*#1758`}(z, [`STRUCT.NEW_DEFAULT`_instr{typeidx#1559}(x)])] +[visit_exp state#1643] +[visit_id state#1643] +[visit_exp `instr*#1758`] +[visit_id instr*#1758] +[visit_exp (z, [`STRUCT.NEW_DEFAULT`_instr{typeidx#1559}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`STRUCT.NEW_DEFAULT`_instr{typeidx#1559}(x)]] +[visit_exp `STRUCT.NEW_DEFAULT`_instr{typeidx#1559}(x)] +[visit_exp typeidx#1559] +[visit_id typeidx#1559] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`STRUCT.NEW`_instr{typeidx#1561}(x)]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`STRUCT.NEW`_instr{typeidx#1561}(x)]] +[visit_exp `STRUCT.NEW`_instr{typeidx#1561}(x)] +[visit_exp typeidx#1561] +[visit_id typeidx#1561] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12683`}(`%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`})))] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `STRUCT`_comptype(`%`_list{`X*#12683`}(`%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`}))] +[visit_exp (`%`_list{`X*#12683`}(`%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`}))] +[visit_exp `%`_list{`X*#12683`}(`%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`})] +[visit_exp `X*#12683`] +[visit_id X*#12683] +[visit_exp (`%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`})] +[visit_exp `%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`}] +[scope_enter mut?] +[scope_enter mut?#1049] +[scope_enter storagetype#587] +[scope_enter zt] +[visit_exp `%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#1049`] +[visit_id mut?#1049] not free +[visit_exp storagetype#587] +[visit_id storagetype#587] not free +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_exp zt] +[visit_id zt] not free +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_id mut?#1049] not free +[visit_id storagetype#587] not free +[visit_id zt] not free +[scope_exit zt] +[scope_exit storagetype#587] +[scope_exit mut?#1049] +[scope_exit mut?] +[visit_exp `mut?*`] +[visit_id mut?*] no dims +[visit_id mut?*] +[visit_exp `mut?#1049*`] +[visit_id mut?#1049*] no dims +[visit_id mut?#1049*] +[visit_exp `storagetype#587*`] +[visit_id storagetype#587*] no dims +[visit_id storagetype#587*] +[visit_exp `zt*`] +[visit_id zt*] no dims +[visit_id zt*] +[scope_enter val] +[scope_enter zt] +[visit_exp ($default_($unpack(zt)) = ?(val))] +[visit_exp $default_($unpack(zt))] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp ?(val)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[visit_id zt] not free +[scope_exit zt] +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp `zt*`] +[visit_id zt*] not free +[visit_id zt*] no dims +[check_dims] heaptype#1429 ht i instr*#1770 state#1655 sx sx?#13 typeidx#1563 u32#17 x z +[visit_exp `%;%`_config{state#1655, `instr*#1770`}(z, [`REF.NULL`_instr{heaptype#1429}(ht) `STRUCT.GET`_instr{`sx?#13`, typeidx#1563, u32#17}(sx?{sx <- `sx?`}, x, i)])] +[visit_exp state#1655] +[visit_id state#1655] +[visit_exp `instr*#1770`] +[visit_id instr*#1770] +[visit_exp (z, [`REF.NULL`_instr{heaptype#1429}(ht) `STRUCT.GET`_instr{`sx?#13`, typeidx#1563, u32#17}(sx?{sx <- `sx?`}, x, i)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.NULL`_instr{heaptype#1429}(ht) `STRUCT.GET`_instr{`sx?#13`, typeidx#1563, u32#17}(sx?{sx <- `sx?`}, x, i)]] +[visit_exp `REF.NULL`_instr{heaptype#1429}(ht)] +[visit_exp heaptype#1429] +[visit_id heaptype#1429] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `STRUCT.GET`_instr{`sx?#13`, typeidx#1563, u32#17}(sx?{sx <- `sx?`}, x, i)] +[visit_exp `sx?#13`] +[visit_id sx?#13] +[visit_exp typeidx#1563] +[visit_id typeidx#1563] +[visit_exp u32#17] +[visit_id u32#17] +[visit_exp (sx?{sx <- `sx?`}, x, i)] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] no dims +[visit_id sx?] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] X*#12698 a fieldval*#4 i i#40378 i#40388 instr*#1782 mut mut?#1067 state#1667 storagetype#605 structaddr#5 sx sx?#15 typeidx#1565 u32#19 x z zt +[visit_exp `%;%`_config{state#1667, `instr*#1782`}(z, [`REF.STRUCT_ADDR`_instr{structaddr#5}(a) `STRUCT.GET`_instr{`sx?#15`, typeidx#1565, u32#19}(sx?{sx <- `sx?`}, x, i)])] +[visit_exp state#1667] +[visit_id state#1667] +[visit_exp `instr*#1782`] +[visit_id instr*#1782] +[visit_exp (z, [`REF.STRUCT_ADDR`_instr{structaddr#5}(a) `STRUCT.GET`_instr{`sx?#15`, typeidx#1565, u32#19}(sx?{sx <- `sx?`}, x, i)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.STRUCT_ADDR`_instr{structaddr#5}(a) `STRUCT.GET`_instr{`sx?#15`, typeidx#1565, u32#19}(sx?{sx <- `sx?`}, x, i)]] +[visit_exp `REF.STRUCT_ADDR`_instr{structaddr#5}(a)] +[visit_exp structaddr#5] +[visit_id structaddr#5] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `STRUCT.GET`_instr{`sx?#15`, typeidx#1565, u32#19}(sx?{sx <- `sx?`}, x, i)] +[visit_exp `sx?#15`] +[visit_id sx?#15] +[visit_exp typeidx#1565] +[visit_id typeidx#1565] +[visit_exp u32#19] +[visit_id u32#19] +[visit_exp (sx?{sx <- `sx?`}, x, i)] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] no dims +[visit_id sx?] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp [($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40378}.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst{`fieldval*#4`}[i!`%`_u32{i#40388}.0]) : val <: instr)]] +[visit_exp ($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40378}.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst{`fieldval*#4`}[i!`%`_u32{i#40388}.0]) : val <: instr)] +[visit_exp $unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40378}.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst{`fieldval*#4`}[i!`%`_u32{i#40388}.0])] +[visit_exp zt*{zt <- `zt*`}[i!`%`_u32{i#40378}.0]] +[visit_exp zt*{zt <- `zt*`}] +[scope_enter zt] +[visit_exp zt] +[visit_id zt] not free +[visit_id zt] not free +[scope_exit zt] +[visit_exp `zt*`] +[visit_id zt*] no dims +[visit_id zt*] +[visit_exp i!`%`_u32{i#40378}.0] +[visit_exp i!`%`_u32{i#40378}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#40378] +[visit_id i#40378] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] not free +[visit_id sx?] no dims +[visit_exp $structinst(z)[a].`FIELDS`_structinst{`fieldval*#4`}[i!`%`_u32{i#40388}.0]] +[visit_exp $structinst(z)[a].`FIELDS`_structinst{`fieldval*#4`}] +[visit_exp $structinst(z)[a]] +[visit_exp $structinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp `fieldval*#4`] +[visit_id fieldval*#4] +[visit_exp i!`%`_u32{i#40388}.0] +[visit_exp i!`%`_u32{i#40388}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#40388] +[visit_id i#40388] +[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12698`}(`%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`})))] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `STRUCT`_comptype(`%`_list{`X*#12698`}(`%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`}))] +[visit_exp (`%`_list{`X*#12698`}(`%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`}))] +[visit_exp `%`_list{`X*#12698`}(`%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`})] +[visit_exp `X*#12698`] +[visit_id X*#12698] +[visit_exp (`%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`})] +[visit_exp `%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`}] +[scope_enter mut?] +[scope_enter mut?#1067] +[scope_enter storagetype#605] +[scope_enter zt] +[visit_exp `%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#1067`] +[visit_id mut?#1067] not free +[visit_exp storagetype#605] +[visit_id storagetype#605] not free +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_exp zt] +[visit_id zt] not free +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_id mut?#1067] not free +[visit_id storagetype#605] not free +[visit_id zt] not free +[scope_exit zt] +[scope_exit storagetype#605] +[scope_exit mut?#1067] +[scope_exit mut?] +[visit_exp `mut?*`] +[visit_id mut?*] no dims +[visit_id mut?*] +[visit_exp `mut?#1067*`] +[visit_id mut?#1067*] no dims +[visit_id mut?#1067*] +[visit_exp `storagetype#605*`] +[visit_id storagetype#605*] no dims +[visit_id storagetype#605*] +[visit_exp `zt*`] +[visit_id zt*] not free +[visit_id zt*] no dims +[check_dims] heaptype#1431 ht i instr*#1794 instr*#1806 state#1679 state#1691 typeidx#1567 u32#21 val x z +[visit_exp `%;%`_config{state#1679, `instr*#1794`}(z, [`REF.NULL`_instr{heaptype#1431}(ht) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1567, u32#21}(x, i)])] +[visit_exp state#1679] +[visit_id state#1679] +[visit_exp `instr*#1794`] +[visit_id instr*#1794] +[visit_exp (z, [`REF.NULL`_instr{heaptype#1431}(ht) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1567, u32#21}(x, i)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.NULL`_instr{heaptype#1431}(ht) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1567, u32#21}(x, i)]] +[visit_exp `REF.NULL`_instr{heaptype#1431}(ht)] +[visit_exp heaptype#1431] +[visit_id heaptype#1431] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `STRUCT.SET`_instr{typeidx#1567, u32#21}(x, i)] +[visit_exp typeidx#1567] +[visit_id typeidx#1567] +[visit_exp u32#21] +[visit_id u32#21] +[visit_exp (x, i)] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp `%;%`_config{state#1691, `instr*#1806`}(z, [`TRAP`_instr])] +[visit_exp state#1691] +[visit_id state#1691] +[visit_exp `instr*#1806`] +[visit_id instr*#1806] +[visit_exp (z, [`TRAP`_instr])] +[visit_exp z] +[visit_id z] not free +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] X*#12713 a i i#40466 i#40476 instr*#1818 instr*#1830 mut mut?#1085 state#1703 state#1715 storagetype#623 structaddr#7 typeidx#1569 u32#23 val x z zt +[visit_exp `%;%`_config{state#1703, `instr*#1818`}(z, [`REF.STRUCT_ADDR`_instr{structaddr#7}(a) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1569, u32#23}(x, i)])] +[visit_exp state#1703] +[visit_id state#1703] +[visit_exp `instr*#1818`] +[visit_id instr*#1818] +[visit_exp (z, [`REF.STRUCT_ADDR`_instr{structaddr#7}(a) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1569, u32#23}(x, i)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.STRUCT_ADDR`_instr{structaddr#7}(a) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1569, u32#23}(x, i)]] +[visit_exp `REF.STRUCT_ADDR`_instr{structaddr#7}(a)] +[visit_exp structaddr#7] +[visit_id structaddr#7] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `STRUCT.SET`_instr{typeidx#1569, u32#23}(x, i)] +[visit_exp typeidx#1569] +[visit_id typeidx#1569] +[visit_exp u32#23] +[visit_id u32#23] +[visit_exp (x, i)] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp `%;%`_config{state#1715, `instr*#1830`}($with_struct(z, a, i!`%`_u32{i#40466}.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40476}.0], val)), [])] +[visit_exp state#1715] +[visit_id state#1715] +[visit_exp `instr*#1830`] +[visit_id instr*#1830] +[visit_exp ($with_struct(z, a, i!`%`_u32{i#40466}.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40476}.0], val)), [])] +[visit_exp $with_struct(z, a, i!`%`_u32{i#40466}.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40476}.0], val))] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp i!`%`_u32{i#40466}.0] +[visit_exp i!`%`_u32{i#40466}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#40466] +[visit_id i#40466] +[visit_exp $packfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40476}.0], val)] +[visit_exp zt*{zt <- `zt*`}[i!`%`_u32{i#40476}.0]] +[visit_exp zt*{zt <- `zt*`}] +[scope_enter zt] +[visit_exp zt] +[visit_id zt] not free +[visit_id zt] not free +[scope_exit zt] +[visit_exp `zt*`] +[visit_id zt*] no dims +[visit_id zt*] +[visit_exp i!`%`_u32{i#40476}.0] +[visit_exp i!`%`_u32{i#40476}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#40476] +[visit_id i#40476] +[visit_exp val] +[visit_id val] not free +[visit_exp []] +[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12713`}(`%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`})))] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `STRUCT`_comptype(`%`_list{`X*#12713`}(`%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`}))] +[visit_exp (`%`_list{`X*#12713`}(`%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`}))] +[visit_exp `%`_list{`X*#12713`}(`%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`})] +[visit_exp `X*#12713`] +[visit_id X*#12713] +[visit_exp (`%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`})] +[visit_exp `%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`}] +[scope_enter mut?] +[scope_enter mut?#1085] +[scope_enter storagetype#623] +[scope_enter zt] +[visit_exp `%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#1085`] +[visit_id mut?#1085] not free +[visit_exp storagetype#623] +[visit_id storagetype#623] not free +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_exp zt] +[visit_id zt] not free +[visit_id mut?] not free +[visit_id mut?] no dims +[visit_id mut?#1085] not free +[visit_id storagetype#623] not free +[visit_id zt] not free +[scope_exit zt] +[scope_exit storagetype#623] +[scope_exit mut?#1085] +[scope_exit mut?] +[visit_exp `mut?*`] +[visit_id mut?*] no dims +[visit_id mut?*] +[visit_exp `mut?#1085*`] +[visit_id mut?#1085*] no dims +[visit_id mut?#1085*] +[visit_exp `storagetype#623*`] +[visit_id storagetype#623*] no dims +[visit_id storagetype#623*] +[visit_exp `zt*`] +[visit_id zt*] not free +[visit_id zt*] no dims +[check_dims] i#40512 i#40564 n numtype#369 typeidx#1571 typeidx#1573 u32#25 val x +[visit_exp [(val : val <: instr) `CONST`_instr{numtype#369}(`I32`_numtype, `%`_num_{i#40512}(n)) `ARRAY.NEW`_instr{typeidx#1571}(x)]] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `CONST`_instr{numtype#369}(`I32`_numtype, `%`_num_{i#40512}(n))] +[visit_exp numtype#369] +[visit_id numtype#369] +[visit_exp (`I32`_numtype, `%`_num_{i#40512}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#40512}(n)] +[visit_exp i#40512] +[visit_id i#40512] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.NEW`_instr{typeidx#1571}(x)] +[visit_exp typeidx#1571] +[visit_id typeidx#1571] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1573, u32#25}(x, `%`_u32{i#40564}(n))]] +[visit_exp (val : val <: instr)^n{}] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_exp n] +[visit_id n] not free +[visit_exp [`ARRAY.NEW_FIXED`_instr{typeidx#1573, u32#25}(x, `%`_u32{i#40564}(n))]] +[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#1573, u32#25}(x, `%`_u32{i#40564}(n))] +[visit_exp typeidx#1573] +[visit_id typeidx#1573] +[visit_exp u32#25] +[visit_id u32#25] +[visit_exp (x, `%`_u32{i#40564}(n))] +[visit_exp x] +[visit_id x] not free +[visit_exp `%`_u32{i#40564}(n)] +[visit_exp i#40564] +[visit_id i#40564] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[check_dims] fieldtype#39 i#40588 i#40640 instr*#1842 mut mut?#1097 n numtype#371 state#1727 storagetype#635 typeidx#1575 typeidx#1577 u32#27 val x z zt +[visit_exp `%;%`_config{state#1727, `instr*#1842`}(z, [`CONST`_instr{numtype#371}(`I32`_numtype, `%`_num_{i#40588}(n)) `ARRAY.NEW_DEFAULT`_instr{typeidx#1575}(x)])] +[visit_exp state#1727] +[visit_id state#1727] +[visit_exp `instr*#1842`] +[visit_id instr*#1842] +[visit_exp (z, [`CONST`_instr{numtype#371}(`I32`_numtype, `%`_num_{i#40588}(n)) `ARRAY.NEW_DEFAULT`_instr{typeidx#1575}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#371}(`I32`_numtype, `%`_num_{i#40588}(n)) `ARRAY.NEW_DEFAULT`_instr{typeidx#1575}(x)]] +[visit_exp `CONST`_instr{numtype#371}(`I32`_numtype, `%`_num_{i#40588}(n))] +[visit_exp numtype#371] +[visit_id numtype#371] +[visit_exp (`I32`_numtype, `%`_num_{i#40588}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#40588}(n)] +[visit_exp i#40588] +[visit_id i#40588] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.NEW_DEFAULT`_instr{typeidx#1575}(x)] +[visit_exp typeidx#1575] +[visit_id typeidx#1575] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1577, u32#27}(x, `%`_u32{i#40640}(n))]] +[visit_exp (val : val <: instr)^n{}] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp n] +[visit_id n] not free +[visit_exp [`ARRAY.NEW_FIXED`_instr{typeidx#1577, u32#27}(x, `%`_u32{i#40640}(n))]] +[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#1577, u32#27}(x, `%`_u32{i#40640}(n))] +[visit_exp typeidx#1577] +[visit_id typeidx#1577] +[visit_exp u32#27] +[visit_id u32#27] +[visit_exp (x, `%`_u32{i#40640}(n))] +[visit_exp x] +[visit_id x] not free +[visit_exp `%`_u32{i#40640}(n)] +[visit_exp i#40640] +[visit_id i#40640] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#39}(`%%`_fieldtype{`mut?#1097`, storagetype#635}(mut?{mut <- `mut?`}, zt)))] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype{fieldtype#39}(`%%`_fieldtype{`mut?#1097`, storagetype#635}(mut?{mut <- `mut?`}, zt))] +[visit_exp fieldtype#39] +[visit_id fieldtype#39] +[visit_exp (`%%`_fieldtype{`mut?#1097`, storagetype#635}(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype{`mut?#1097`, storagetype#635}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#1097`] +[visit_id mut?#1097] +[visit_exp storagetype#635] +[visit_id storagetype#635] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] +[visit_exp ($default_($unpack(zt)) = ?(val))] +[visit_exp $default_($unpack(zt))] +[visit_exp $unpack(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp ?(val)] +[visit_exp val] +[visit_id val] not free +[check_dims] a ai arrayaddr#3 deftype#10 fieldtype#41 fieldval*#5 i#40690 instr*#1854 instr*#1866 mut mut?#1109 n state#1739 state#1751 storagetype#647 typeidx#1579 u32#29 val x z zt +[visit_exp `%;%`_config{state#1739, `instr*#1854`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1579, u32#29}(x, `%`_u32{i#40690}(n))])] +[visit_exp state#1739] +[visit_id state#1739] +[visit_exp `instr*#1854`] +[visit_id instr*#1854] +[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1579, u32#29}(x, `%`_u32{i#40690}(n))])] +[visit_exp z] +[visit_id z] +[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1579, u32#29}(x, `%`_u32{i#40690}(n))]] +[visit_exp (val : val <: instr)^n{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp [`ARRAY.NEW_FIXED`_instr{typeidx#1579, u32#29}(x, `%`_u32{i#40690}(n))]] +[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#1579, u32#29}(x, `%`_u32{i#40690}(n))] +[visit_exp typeidx#1579] +[visit_id typeidx#1579] +[visit_exp u32#29] +[visit_id u32#29] +[visit_exp (x, `%`_u32{i#40690}(n))] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#40690}(n)] +[visit_exp i#40690] +[visit_id i#40690] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp `%;%`_config{state#1751, `instr*#1866`}($add_arrayinst(z, [ai]), [`REF.ARRAY_ADDR`_instr{arrayaddr#3}(a)])] +[visit_exp state#1751] +[visit_id state#1751] +[visit_exp `instr*#1866`] +[visit_id instr*#1866] +[visit_exp ($add_arrayinst(z, [ai]), [`REF.ARRAY_ADDR`_instr{arrayaddr#3}(a)])] +[visit_exp $add_arrayinst(z, [ai])] +[visit_exp z] +[visit_id z] not free +[visit_exp [ai]] +[visit_exp ai] +[visit_id ai] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#3}(a)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#3}(a)] +[visit_exp arrayaddr#3] +[visit_id arrayaddr#3] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#41}(`%%`_fieldtype{`mut?#1109`, storagetype#647}(mut?{mut <- `mut?`}, zt)))] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype{fieldtype#41}(`%%`_fieldtype{`mut?#1109`, storagetype#647}(mut?{mut <- `mut?`}, zt))] +[visit_exp fieldtype#41] +[visit_id fieldtype#41] +[visit_exp (`%%`_fieldtype{`mut?#1109`, storagetype#647}(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype{`mut?#1109`, storagetype#647}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#1109`] +[visit_id mut?#1109] +[visit_exp storagetype#647] +[visit_id storagetype#647] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] +[visit_exp ((a = |$arrayinst(z)|) /\ (ai = {`TYPE`{deftype#10} $type(z, x), `FIELDS`{`fieldval*#5`} $packfield_(zt, val)^n{val <- `val*`}}))] +[visit_exp (a = |$arrayinst(z)|)] +[visit_exp a] +[visit_id a] not free +[visit_exp |$arrayinst(z)|] +[visit_exp $arrayinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp (ai = {`TYPE`{deftype#10} $type(z, x), `FIELDS`{`fieldval*#5`} $packfield_(zt, val)^n{val <- `val*`}})] +[visit_exp ai] +[visit_id ai] not free +[visit_exp {`TYPE`{deftype#10} $type(z, x), `FIELDS`{`fieldval*#5`} $packfield_(zt, val)^n{val <- `val*`}}] +[visit_exp deftype#10] +[visit_id deftype#10] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `fieldval*#5`] +[visit_id fieldval*#5] +[visit_exp $packfield_(zt, val)^n{val <- `val*`}] +[scope_enter val] +[visit_exp $packfield_(zt, val)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp n] +[visit_id n] not free +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[check_dims] elemidx#27 i i#40752 i#40794 instr*#1878 n numtype#373 numtype#375 ref*#18 state#1763 typeidx#1581 x y z +[visit_exp `%;%`_config{state#1763, `instr*#1878`}(z, [`CONST`_instr{numtype#373}(`I32`_numtype, i) `CONST`_instr{numtype#375}(`I32`_numtype, `%`_num_{i#40752}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1581, elemidx#27}(x, y)])] +[visit_exp state#1763] +[visit_id state#1763] +[visit_exp `instr*#1878`] +[visit_id instr*#1878] +[visit_exp (z, [`CONST`_instr{numtype#373}(`I32`_numtype, i) `CONST`_instr{numtype#375}(`I32`_numtype, `%`_num_{i#40752}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1581, elemidx#27}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#373}(`I32`_numtype, i) `CONST`_instr{numtype#375}(`I32`_numtype, `%`_num_{i#40752}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1581, elemidx#27}(x, y)]] +[visit_exp `CONST`_instr{numtype#373}(`I32`_numtype, i)] +[visit_exp numtype#373] +[visit_id numtype#373] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#375}(`I32`_numtype, `%`_num_{i#40752}(n))] +[visit_exp numtype#375] +[visit_id numtype#375] +[visit_exp (`I32`_numtype, `%`_num_{i#40752}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#40752}(n)] +[visit_exp i#40752] +[visit_id i#40752] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.NEW_ELEM`_instr{typeidx#1581, elemidx#27}(x, y)] +[visit_exp typeidx#1581] +[visit_id typeidx#1581] +[visit_exp elemidx#27] +[visit_id elemidx#27] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ((i!`%`_num_{i#40794}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#18`}|)] +[visit_exp (i!`%`_num_{i#40794}.0 + n)] +[visit_exp i!`%`_num_{i#40794}.0] +[visit_exp i!`%`_num_{i#40794}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#40794] +[visit_id i#40794] +[visit_exp n] +[visit_id n] not free +[visit_exp |$elem(z, y).`REFS`_eleminst{`ref*#18`}|] +[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#18`}] +[visit_exp $elem(z, y)] +[visit_exp z] +[visit_id z] not free +[visit_exp y] +[visit_id y] not free +[visit_exp `ref*#18`] +[visit_id ref*#18] +[check_dims] elemidx#29 i i#40844 i#40910 i#40932 instr*#1890 n numtype#377 numtype#379 ref ref*#19 state#1775 typeidx#1583 typeidx#1585 u32#31 x y z +[visit_exp `%;%`_config{state#1775, `instr*#1890`}(z, [`CONST`_instr{numtype#377}(`I32`_numtype, i) `CONST`_instr{numtype#379}(`I32`_numtype, `%`_num_{i#40844}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1583, elemidx#29}(x, y)])] +[visit_exp state#1775] +[visit_id state#1775] +[visit_exp `instr*#1890`] +[visit_id instr*#1890] +[visit_exp (z, [`CONST`_instr{numtype#377}(`I32`_numtype, i) `CONST`_instr{numtype#379}(`I32`_numtype, `%`_num_{i#40844}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1583, elemidx#29}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#377}(`I32`_numtype, i) `CONST`_instr{numtype#379}(`I32`_numtype, `%`_num_{i#40844}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1583, elemidx#29}(x, y)]] +[visit_exp `CONST`_instr{numtype#377}(`I32`_numtype, i)] +[visit_exp numtype#377] +[visit_id numtype#377] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#379}(`I32`_numtype, `%`_num_{i#40844}(n))] +[visit_exp numtype#379] +[visit_id numtype#379] +[visit_exp (`I32`_numtype, `%`_num_{i#40844}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#40844}(n)] +[visit_exp i#40844] +[visit_id i#40844] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.NEW_ELEM`_instr{typeidx#1583, elemidx#29}(x, y)] +[visit_exp typeidx#1583] +[visit_id typeidx#1583] +[visit_exp elemidx#29] +[visit_id elemidx#29] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp (ref : ref <: instr)^n{ref <- `ref*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1585, u32#31}(x, `%`_u32{i#40910}(n))]] +[visit_exp (ref : ref <: instr)^n{ref <- `ref*`}] +[scope_enter ref] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] not free +[visit_id ref] not free +[scope_exit ref] +[visit_exp n] +[visit_id n] not free +[visit_exp `ref*`] +[visit_id ref*] no dims +[visit_id ref*] +[visit_exp [`ARRAY.NEW_FIXED`_instr{typeidx#1585, u32#31}(x, `%`_u32{i#40910}(n))]] +[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#1585, u32#31}(x, `%`_u32{i#40910}(n))] +[visit_exp typeidx#1585] +[visit_id typeidx#1585] +[visit_exp u32#31] +[visit_id u32#31] +[visit_exp (x, `%`_u32{i#40910}(n))] +[visit_exp x] +[visit_id x] not free +[visit_exp `%`_u32{i#40910}(n)] +[visit_exp i#40910] +[visit_id i#40910] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp (ref^n{ref <- `ref*`} = $elem(z, y).`REFS`_eleminst{`ref*#19`}[i!`%`_num_{i#40932}.0 : n])] +[visit_exp ref^n{ref <- `ref*`}] +[scope_enter ref] +[visit_exp ref] +[visit_id ref] not free +[visit_id ref] not free +[scope_exit ref] +[visit_exp n] +[visit_id n] not free +[visit_exp `ref*`] +[visit_id ref*] not free +[visit_id ref*] no dims +[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#19`}[i!`%`_num_{i#40932}.0 : n]] +[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#19`}] +[visit_exp $elem(z, y)] +[visit_exp z] +[visit_id z] not free +[visit_exp y] +[visit_id y] not free +[visit_exp `ref*#19`] +[visit_id ref*#19] +[visit_exp i!`%`_num_{i#40932}.0] +[visit_exp i!`%`_num_{i#40932}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#40932] +[visit_id i#40932] +[visit_exp n] +[visit_id n] not free +[check_dims] byte*#1875 dataidx#27 fieldtype#43 i i#40970 i#41024 instr*#1902 mut mut?#1121 n numtype#381 numtype#383 state#1787 storagetype#659 typeidx#1587 x y z zt +[visit_exp `%;%`_config{state#1787, `instr*#1902`}(z, [`CONST`_instr{numtype#381}(`I32`_numtype, i) `CONST`_instr{numtype#383}(`I32`_numtype, `%`_num_{i#40970}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1587, dataidx#27}(x, y)])] +[visit_exp state#1787] +[visit_id state#1787] +[visit_exp `instr*#1902`] +[visit_id instr*#1902] +[visit_exp (z, [`CONST`_instr{numtype#381}(`I32`_numtype, i) `CONST`_instr{numtype#383}(`I32`_numtype, `%`_num_{i#40970}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1587, dataidx#27}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#381}(`I32`_numtype, i) `CONST`_instr{numtype#383}(`I32`_numtype, `%`_num_{i#40970}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1587, dataidx#27}(x, y)]] +[visit_exp `CONST`_instr{numtype#381}(`I32`_numtype, i)] +[visit_exp numtype#381] +[visit_id numtype#381] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#383}(`I32`_numtype, `%`_num_{i#40970}(n))] +[visit_exp numtype#383] +[visit_id numtype#383] +[visit_exp (`I32`_numtype, `%`_num_{i#40970}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#40970}(n)] +[visit_exp i#40970] +[visit_id i#40970] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.NEW_DATA`_instr{typeidx#1587, dataidx#27}(x, y)] +[visit_exp typeidx#1587] +[visit_id typeidx#1587] +[visit_exp dataidx#27] +[visit_id dataidx#27] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#43}(`%%`_fieldtype{`mut?#1121`, storagetype#659}(mut?{mut <- `mut?`}, zt)))] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype{fieldtype#43}(`%%`_fieldtype{`mut?#1121`, storagetype#659}(mut?{mut <- `mut?`}, zt))] +[visit_exp fieldtype#43] +[visit_id fieldtype#43] +[visit_exp (`%%`_fieldtype{`mut?#1121`, storagetype#659}(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype{`mut?#1121`, storagetype#659}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#1121`] +[visit_id mut?#1121] +[visit_exp storagetype#659] +[visit_id storagetype#659] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] +[visit_exp ((i!`%`_num_{i#41024}.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst{`byte*#1875`}|)] +[visit_exp (i!`%`_num_{i#41024}.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp i!`%`_num_{i#41024}.0] +[visit_exp i!`%`_num_{i#41024}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#41024] +[visit_id i#41024] +[visit_exp ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ((n * $zsize(zt)) : nat <:> rat)] +[visit_exp (n * $zsize(zt))] +[visit_exp n] +[visit_id n] not free +[visit_exp $zsize(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp |$data(z, y).`BYTES`_datainst{`byte*#1875`}|] +[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1875`}] +[visit_exp $data(z, y)] +[visit_exp z] +[visit_id z] not free +[visit_exp y] +[visit_id y] not free +[visit_exp `byte*#1875`] +[visit_id byte*#1875] +[check_dims] byte*#1876 c dataidx#29 fieldtype#45 i i#41074 i#41140 i#41174 instr*#1914 mut mut?#1133 n numtype#385 numtype#387 state#1799 storagetype#671 typeidx#1589 typeidx#1591 u32#33 x y z zt +[visit_exp `%;%`_config{state#1799, `instr*#1914`}(z, [`CONST`_instr{numtype#385}(`I32`_numtype, i) `CONST`_instr{numtype#387}(`I32`_numtype, `%`_num_{i#41074}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1589, dataidx#29}(x, y)])] +[visit_exp state#1799] +[visit_id state#1799] +[visit_exp `instr*#1914`] +[visit_id instr*#1914] +[visit_exp (z, [`CONST`_instr{numtype#385}(`I32`_numtype, i) `CONST`_instr{numtype#387}(`I32`_numtype, `%`_num_{i#41074}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1589, dataidx#29}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`CONST`_instr{numtype#385}(`I32`_numtype, i) `CONST`_instr{numtype#387}(`I32`_numtype, `%`_num_{i#41074}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1589, dataidx#29}(x, y)]] +[visit_exp `CONST`_instr{numtype#385}(`I32`_numtype, i)] +[visit_exp numtype#385] +[visit_id numtype#385] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#387}(`I32`_numtype, `%`_num_{i#41074}(n))] +[visit_exp numtype#387] +[visit_id numtype#387] +[visit_exp (`I32`_numtype, `%`_num_{i#41074}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#41074}(n)] +[visit_exp i#41074] +[visit_id i#41074] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.NEW_DATA`_instr{typeidx#1589, dataidx#29}(x, y)] +[visit_exp typeidx#1589] +[visit_id typeidx#1589] +[visit_exp dataidx#29] +[visit_id dataidx#29] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp $const($cunpack(zt), $cunpacknum_(zt, c))^n{c <- `c*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1591, u32#33}(x, `%`_u32{i#41140}(n))]] +[visit_exp $const($cunpack(zt), $cunpacknum_(zt, c))^n{c <- `c*`}] +[scope_enter c] +[visit_exp $const($cunpack(zt), $cunpacknum_(zt, c))] +[visit_exp $cunpack(zt)] +[visit_exp zt] +[visit_id zt] +[visit_exp $cunpacknum_(zt, c)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp n] +[visit_id n] not free +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp [`ARRAY.NEW_FIXED`_instr{typeidx#1591, u32#33}(x, `%`_u32{i#41140}(n))]] +[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#1591, u32#33}(x, `%`_u32{i#41140}(n))] +[visit_exp typeidx#1591] +[visit_id typeidx#1591] +[visit_exp u32#33] +[visit_id u32#33] +[visit_exp (x, `%`_u32{i#41140}(n))] +[visit_exp x] +[visit_id x] not free +[visit_exp `%`_u32{i#41140}(n)] +[visit_exp i#41140] +[visit_id i#41140] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#45}(`%%`_fieldtype{`mut?#1133`, storagetype#671}(mut?{mut <- `mut?`}, zt)))] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype{fieldtype#45}(`%%`_fieldtype{`mut?#1133`, storagetype#671}(mut?{mut <- `mut?`}, zt))] +[visit_exp fieldtype#45] +[visit_id fieldtype#45] +[visit_exp (`%%`_fieldtype{`mut?#1133`, storagetype#671}(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype{`mut?#1133`, storagetype#671}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#1133`] +[visit_id mut?#1133] +[visit_exp storagetype#671] +[visit_id storagetype#671] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] not free +[visit_exp ($concatn_(syntax byte, $zbytes_(zt, c)^n{c <- `c*`}, ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) = $data(z, y).`BYTES`_datainst{`byte*#1876`}[i!`%`_num_{i#41174}.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp $concatn_(syntax byte, $zbytes_(zt, c)^n{c <- `c*`}, ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp $zbytes_(zt, c)^n{c <- `c*`}] +[scope_enter c] +[visit_exp $zbytes_(zt, c)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp n] +[visit_id n] not free +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (($zsize(zt) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ($zsize(zt) : nat <:> rat)] +[visit_exp $zsize(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1876`}[i!`%`_num_{i#41174}.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1876`}] +[visit_exp $data(z, y)] +[visit_exp z] +[visit_id z] not free +[visit_exp y] +[visit_id y] not free +[visit_exp `byte*#1876`] +[visit_id byte*#1876] +[visit_exp i!`%`_num_{i#41174}.0] +[visit_exp i!`%`_num_{i#41174}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#41174] +[visit_id i#41174] +[visit_exp ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ((n * $zsize(zt)) : nat <:> rat)] +[visit_exp (n * $zsize(zt))] +[visit_exp n] +[visit_id n] not free +[visit_exp $zsize(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[check_dims] heaptype#1433 ht i instr*#1926 numtype#389 state#1811 sx sx?#17 typeidx#1593 x z +[visit_exp `%;%`_config{state#1811, `instr*#1926`}(z, [`REF.NULL`_instr{heaptype#1433}(ht) `CONST`_instr{numtype#389}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#17`, typeidx#1593}(sx?{sx <- `sx?`}, x)])] +[visit_exp state#1811] +[visit_id state#1811] +[visit_exp `instr*#1926`] +[visit_id instr*#1926] +[visit_exp (z, [`REF.NULL`_instr{heaptype#1433}(ht) `CONST`_instr{numtype#389}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#17`, typeidx#1593}(sx?{sx <- `sx?`}, x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.NULL`_instr{heaptype#1433}(ht) `CONST`_instr{numtype#389}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#17`, typeidx#1593}(sx?{sx <- `sx?`}, x)]] +[visit_exp `REF.NULL`_instr{heaptype#1433}(ht)] +[visit_exp heaptype#1433] +[visit_id heaptype#1433] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `CONST`_instr{numtype#389}(`I32`_numtype, i)] +[visit_exp numtype#389] +[visit_id numtype#389] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `ARRAY.GET`_instr{`sx?#17`, typeidx#1593}(sx?{sx <- `sx?`}, x)] +[visit_exp `sx?#17`] +[visit_id sx?#17] +[visit_exp typeidx#1593] +[visit_id typeidx#1593] +[visit_exp (sx?{sx <- `sx?`}, x)] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] no dims +[visit_id sx?] +[visit_exp x] +[visit_id x] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] a arrayaddr#5 fieldval*#6 i i#41392 instr*#1938 numtype#391 state#1823 sx sx?#19 typeidx#1595 x z +[visit_exp `%;%`_config{state#1823, `instr*#1938`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#5}(a) `CONST`_instr{numtype#391}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#19`, typeidx#1595}(sx?{sx <- `sx?`}, x)])] +[visit_exp state#1823] +[visit_id state#1823] +[visit_exp `instr*#1938`] +[visit_id instr*#1938] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#5}(a) `CONST`_instr{numtype#391}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#19`, typeidx#1595}(sx?{sx <- `sx?`}, x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#5}(a) `CONST`_instr{numtype#391}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#19`, typeidx#1595}(sx?{sx <- `sx?`}, x)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#5}(a)] +[visit_exp arrayaddr#5] +[visit_id arrayaddr#5] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#391}(`I32`_numtype, i)] +[visit_exp numtype#391] +[visit_id numtype#391] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `ARRAY.GET`_instr{`sx?#19`, typeidx#1595}(sx?{sx <- `sx?`}, x)] +[visit_exp `sx?#19`] +[visit_id sx?#19] +[visit_exp typeidx#1595] +[visit_id typeidx#1595] +[visit_exp (sx?{sx <- `sx?`}, x)] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] no dims +[visit_id sx?] +[visit_exp x] +[visit_id x] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (i!`%`_num_{i#41392}.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#6`}|)] +[visit_exp i!`%`_num_{i#41392}.0] +[visit_exp i!`%`_num_{i#41392}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#41392] +[visit_id i#41392] +[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#6`}|] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#6`}] +[visit_exp $arrayinst(z)[a]] +[visit_exp $arrayinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp `fieldval*#6`] +[visit_id fieldval*#6] +[check_dims] a arrayaddr#7 fieldtype#47 fieldval*#7 i i#41467 instr*#1950 mut mut?#1145 numtype#393 state#1835 storagetype#683 sx sx?#21 typeidx#1597 x z zt +[visit_exp `%;%`_config{state#1835, `instr*#1950`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#7}(a) `CONST`_instr{numtype#393}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#21`, typeidx#1597}(sx?{sx <- `sx?`}, x)])] +[visit_exp state#1835] +[visit_id state#1835] +[visit_exp `instr*#1950`] +[visit_id instr*#1950] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#7}(a) `CONST`_instr{numtype#393}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#21`, typeidx#1597}(sx?{sx <- `sx?`}, x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#7}(a) `CONST`_instr{numtype#393}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#21`, typeidx#1597}(sx?{sx <- `sx?`}, x)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#7}(a)] +[visit_exp arrayaddr#7] +[visit_id arrayaddr#7] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#393}(`I32`_numtype, i)] +[visit_exp numtype#393] +[visit_id numtype#393] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `ARRAY.GET`_instr{`sx?#21`, typeidx#1597}(sx?{sx <- `sx?`}, x)] +[visit_exp `sx?#21`] +[visit_id sx?#21] +[visit_exp typeidx#1597] +[visit_id typeidx#1597] +[visit_exp (sx?{sx <- `sx?`}, x)] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] no dims +[visit_id sx?] +[visit_exp x] +[visit_id x] +[visit_exp [($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#7`}[i!`%`_num_{i#41467}.0]) : val <: instr)]] +[visit_exp ($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#7`}[i!`%`_num_{i#41467}.0]) : val <: instr)] +[visit_exp $unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#7`}[i!`%`_num_{i#41467}.0])] +[visit_exp zt] +[visit_id zt] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] not free +[visit_id sx?] no dims +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#7`}[i!`%`_num_{i#41467}.0]] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#7`}] +[visit_exp $arrayinst(z)[a]] +[visit_exp $arrayinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp `fieldval*#7`] +[visit_id fieldval*#7] +[visit_exp i!`%`_num_{i#41467}.0] +[visit_exp i!`%`_num_{i#41467}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#41467] +[visit_id i#41467] +[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#47}(`%%`_fieldtype{`mut?#1145`, storagetype#683}(mut?{mut <- `mut?`}, zt)))] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype{fieldtype#47}(`%%`_fieldtype{`mut?#1145`, storagetype#683}(mut?{mut <- `mut?`}, zt))] +[visit_exp fieldtype#47] +[visit_id fieldtype#47] +[visit_exp (`%%`_fieldtype{`mut?#1145`, storagetype#683}(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype{`mut?#1145`, storagetype#683}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#1145`] +[visit_id mut?#1145] +[visit_exp storagetype#683] +[visit_id storagetype#683] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] not free +[check_dims] heaptype#1435 ht i instr*#1962 instr*#1974 numtype#395 state#1847 state#1859 typeidx#1599 val x z +[visit_exp `%;%`_config{state#1847, `instr*#1962`}(z, [`REF.NULL`_instr{heaptype#1435}(ht) `CONST`_instr{numtype#395}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1599}(x)])] +[visit_exp state#1847] +[visit_id state#1847] +[visit_exp `instr*#1962`] +[visit_id instr*#1962] +[visit_exp (z, [`REF.NULL`_instr{heaptype#1435}(ht) `CONST`_instr{numtype#395}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1599}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.NULL`_instr{heaptype#1435}(ht) `CONST`_instr{numtype#395}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1599}(x)]] +[visit_exp `REF.NULL`_instr{heaptype#1435}(ht)] +[visit_exp heaptype#1435] +[visit_id heaptype#1435] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `CONST`_instr{numtype#395}(`I32`_numtype, i)] +[visit_exp numtype#395] +[visit_id numtype#395] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `ARRAY.SET`_instr{typeidx#1599}(x)] +[visit_exp typeidx#1599] +[visit_id typeidx#1599] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#1859, `instr*#1974`}(z, [`TRAP`_instr])] +[visit_exp state#1859] +[visit_id state#1859] +[visit_exp `instr*#1974`] +[visit_id instr*#1974] +[visit_exp (z, [`TRAP`_instr])] +[visit_exp z] +[visit_id z] not free +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] a arrayaddr#9 fieldval*#8 i i#41549 instr*#1986 instr*#1998 numtype#397 state#1871 state#1883 typeidx#1601 val x z +[visit_exp `%;%`_config{state#1871, `instr*#1986`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#9}(a) `CONST`_instr{numtype#397}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1601}(x)])] +[visit_exp state#1871] +[visit_id state#1871] +[visit_exp `instr*#1986`] +[visit_id instr*#1986] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#9}(a) `CONST`_instr{numtype#397}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1601}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#9}(a) `CONST`_instr{numtype#397}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1601}(x)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#9}(a)] +[visit_exp arrayaddr#9] +[visit_id arrayaddr#9] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#397}(`I32`_numtype, i)] +[visit_exp numtype#397] +[visit_id numtype#397] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `ARRAY.SET`_instr{typeidx#1601}(x)] +[visit_exp typeidx#1601] +[visit_id typeidx#1601] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#1883, `instr*#1998`}(z, [`TRAP`_instr])] +[visit_exp state#1883] +[visit_id state#1883] +[visit_exp `instr*#1998`] +[visit_id instr*#1998] +[visit_exp (z, [`TRAP`_instr])] +[visit_exp z] +[visit_id z] not free +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp (i!`%`_num_{i#41549}.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#8`}|)] +[visit_exp i!`%`_num_{i#41549}.0] +[visit_exp i!`%`_num_{i#41549}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#41549] +[visit_id i#41549] +[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#8`}|] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#8`}] +[visit_exp $arrayinst(z)[a]] +[visit_exp $arrayinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp `fieldval*#8`] +[visit_id fieldval*#8] +[check_dims] a arrayaddr#11 fieldtype#49 i i#41587 instr*#2010 instr*#2022 mut mut?#1157 numtype#399 state#1895 state#1907 storagetype#695 typeidx#1603 val x z zt +[visit_exp `%;%`_config{state#1895, `instr*#2010`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#11}(a) `CONST`_instr{numtype#399}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1603}(x)])] +[visit_exp state#1895] +[visit_id state#1895] +[visit_exp `instr*#2010`] +[visit_id instr*#2010] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#11}(a) `CONST`_instr{numtype#399}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1603}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#11}(a) `CONST`_instr{numtype#399}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1603}(x)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#11}(a)] +[visit_exp arrayaddr#11] +[visit_id arrayaddr#11] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#399}(`I32`_numtype, i)] +[visit_exp numtype#399] +[visit_id numtype#399] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `ARRAY.SET`_instr{typeidx#1603}(x)] +[visit_exp typeidx#1603] +[visit_id typeidx#1603] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%;%`_config{state#1907, `instr*#2022`}($with_array(z, a, i!`%`_num_{i#41587}.0, $packfield_(zt, val)), [])] +[visit_exp state#1907] +[visit_id state#1907] +[visit_exp `instr*#2022`] +[visit_id instr*#2022] +[visit_exp ($with_array(z, a, i!`%`_num_{i#41587}.0, $packfield_(zt, val)), [])] +[visit_exp $with_array(z, a, i!`%`_num_{i#41587}.0, $packfield_(zt, val))] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp i!`%`_num_{i#41587}.0] +[visit_exp i!`%`_num_{i#41587}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#41587] +[visit_id i#41587] +[visit_exp $packfield_(zt, val)] +[visit_exp zt] +[visit_id zt] +[visit_exp val] +[visit_id val] not free +[visit_exp []] +[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#49}(`%%`_fieldtype{`mut?#1157`, storagetype#695}(mut?{mut <- `mut?`}, zt)))] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype{fieldtype#49}(`%%`_fieldtype{`mut?#1157`, storagetype#695}(mut?{mut <- `mut?`}, zt))] +[visit_exp fieldtype#49] +[visit_id fieldtype#49] +[visit_exp (`%%`_fieldtype{`mut?#1157`, storagetype#695}(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype{`mut?#1157`, storagetype#695}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#1157`] +[visit_id mut?#1157] +[visit_exp storagetype#695] +[visit_id storagetype#695] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] not free +[check_dims] heaptype#1437 ht instr*#2034 state#1919 z +[visit_exp `%;%`_config{state#1919, `instr*#2034`}(z, [`REF.NULL`_instr{heaptype#1437}(ht) `ARRAY.LEN`_instr])] +[visit_exp state#1919] +[visit_id state#1919] +[visit_exp `instr*#2034`] +[visit_id instr*#2034] +[visit_exp (z, [`REF.NULL`_instr{heaptype#1437}(ht) `ARRAY.LEN`_instr])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.NULL`_instr{heaptype#1437}(ht) `ARRAY.LEN`_instr]] +[visit_exp `REF.NULL`_instr{heaptype#1437}(ht)] +[visit_exp heaptype#1437] +[visit_id heaptype#1437] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `ARRAY.LEN`_instr] +[visit_exp ()] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] a arrayaddr#13 fieldval*#9 i#41621 instr*#2046 numtype#401 state#1931 z +[visit_exp `%;%`_config{state#1931, `instr*#2046`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#13}(a) `ARRAY.LEN`_instr])] +[visit_exp state#1931] +[visit_id state#1931] +[visit_exp `instr*#2046`] +[visit_id instr*#2046] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#13}(a) `ARRAY.LEN`_instr])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#13}(a) `ARRAY.LEN`_instr]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#13}(a)] +[visit_exp arrayaddr#13] +[visit_id arrayaddr#13] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `ARRAY.LEN`_instr] +[visit_exp ()] +[visit_exp [`CONST`_instr{numtype#401}(`I32`_numtype, `%`_num_{i#41621}(|$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|))]] +[visit_exp `CONST`_instr{numtype#401}(`I32`_numtype, `%`_num_{i#41621}(|$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|))] +[visit_exp numtype#401] +[visit_id numtype#401] +[visit_exp (`I32`_numtype, `%`_num_{i#41621}(|$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#41621}(|$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|)] +[visit_exp i#41621] +[visit_id i#41621] +[visit_exp (|$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|)] +[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}] +[visit_exp $arrayinst(z)[a]] +[visit_exp $arrayinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp `fieldval*#9`] +[visit_id fieldval*#9] +[check_dims] heaptype#1439 ht i i#41659 instr*#2058 n numtype#403 numtype#405 state#1943 typeidx#1605 val x z +[visit_exp `%;%`_config{state#1943, `instr*#2058`}(z, [`REF.NULL`_instr{heaptype#1439}(ht) `CONST`_instr{numtype#403}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#405}(`I32`_numtype, `%`_num_{i#41659}(n)) `ARRAY.FILL`_instr{typeidx#1605}(x)])] +[visit_exp state#1943] +[visit_id state#1943] +[visit_exp `instr*#2058`] +[visit_id instr*#2058] +[visit_exp (z, [`REF.NULL`_instr{heaptype#1439}(ht) `CONST`_instr{numtype#403}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#405}(`I32`_numtype, `%`_num_{i#41659}(n)) `ARRAY.FILL`_instr{typeidx#1605}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.NULL`_instr{heaptype#1439}(ht) `CONST`_instr{numtype#403}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#405}(`I32`_numtype, `%`_num_{i#41659}(n)) `ARRAY.FILL`_instr{typeidx#1605}(x)]] +[visit_exp `REF.NULL`_instr{heaptype#1439}(ht)] +[visit_exp heaptype#1439] +[visit_id heaptype#1439] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `CONST`_instr{numtype#403}(`I32`_numtype, i)] +[visit_exp numtype#403] +[visit_id numtype#403] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `CONST`_instr{numtype#405}(`I32`_numtype, `%`_num_{i#41659}(n))] +[visit_exp numtype#405] +[visit_id numtype#405] +[visit_exp (`I32`_numtype, `%`_num_{i#41659}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#41659}(n)] +[visit_exp i#41659] +[visit_id i#41659] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.FILL`_instr{typeidx#1605}(x)] +[visit_exp typeidx#1605] +[visit_id typeidx#1605] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] a arrayaddr#15 fieldval*#10 i i#41711 i#41739 instr*#2070 n numtype#407 numtype#409 state#1955 typeidx#1607 val x z +[visit_exp `%;%`_config{state#1955, `instr*#2070`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#15}(a) `CONST`_instr{numtype#407}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#409}(`I32`_numtype, `%`_num_{i#41711}(n)) `ARRAY.FILL`_instr{typeidx#1607}(x)])] +[visit_exp state#1955] +[visit_id state#1955] +[visit_exp `instr*#2070`] +[visit_id instr*#2070] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#15}(a) `CONST`_instr{numtype#407}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#409}(`I32`_numtype, `%`_num_{i#41711}(n)) `ARRAY.FILL`_instr{typeidx#1607}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#15}(a) `CONST`_instr{numtype#407}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#409}(`I32`_numtype, `%`_num_{i#41711}(n)) `ARRAY.FILL`_instr{typeidx#1607}(x)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#15}(a)] +[visit_exp arrayaddr#15] +[visit_id arrayaddr#15] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#407}(`I32`_numtype, i)] +[visit_exp numtype#407] +[visit_id numtype#407] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `CONST`_instr{numtype#409}(`I32`_numtype, `%`_num_{i#41711}(n))] +[visit_exp numtype#409] +[visit_id numtype#409] +[visit_exp (`I32`_numtype, `%`_num_{i#41711}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#41711}(n)] +[visit_exp i#41711] +[visit_id i#41711] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.FILL`_instr{typeidx#1607}(x)] +[visit_exp typeidx#1607] +[visit_id typeidx#1607] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ((i!`%`_num_{i#41739}.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#10`}|)] +[visit_exp (i!`%`_num_{i#41739}.0 + n)] +[visit_exp i!`%`_num_{i#41739}.0] +[visit_exp i!`%`_num_{i#41739}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#41739] +[visit_id i#41739] +[visit_exp n] +[visit_id n] not free +[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#10`}|] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#10`}] +[visit_exp $arrayinst(z)[a]] +[visit_exp $arrayinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp `fieldval*#10`] +[visit_id fieldval*#10] +[check_dims] a arrayaddr#17 i i#41777 instr*#2082 n numtype#411 numtype#413 state#1967 typeidx#1609 val x z +[visit_exp `%;%`_config{state#1967, `instr*#2082`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#17}(a) `CONST`_instr{numtype#411}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#413}(`I32`_numtype, `%`_num_{i#41777}(n)) `ARRAY.FILL`_instr{typeidx#1609}(x)])] +[visit_exp state#1967] +[visit_id state#1967] +[visit_exp `instr*#2082`] +[visit_id instr*#2082] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#17}(a) `CONST`_instr{numtype#411}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#413}(`I32`_numtype, `%`_num_{i#41777}(n)) `ARRAY.FILL`_instr{typeidx#1609}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#17}(a) `CONST`_instr{numtype#411}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#413}(`I32`_numtype, `%`_num_{i#41777}(n)) `ARRAY.FILL`_instr{typeidx#1609}(x)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#17}(a)] +[visit_exp arrayaddr#17] +[visit_id arrayaddr#17] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#411}(`I32`_numtype, i)] +[visit_exp numtype#411] +[visit_id numtype#411] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `CONST`_instr{numtype#413}(`I32`_numtype, `%`_num_{i#41777}(n))] +[visit_exp numtype#413] +[visit_id numtype#413] +[visit_exp (`I32`_numtype, `%`_num_{i#41777}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#41777}(n)] +[visit_exp i#41777] +[visit_id i#41777] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.FILL`_instr{typeidx#1609}(x)] +[visit_exp typeidx#1609] +[visit_id typeidx#1609] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp []] +[visit_exp (n = 0)] +[visit_exp n] +[visit_id n] not free +[visit_exp 0] +[check_dims] a arrayaddr#19 arrayaddr#21 arrayaddr#23 i i#41829 i#41895 i#41905 i#41927 instr*#2094 n numtype#415 numtype#417 numtype#419 numtype#421 numtype#423 state#1979 typeidx#1611 typeidx#1613 typeidx#1615 val x z +[visit_exp `%;%`_config{state#1979, `instr*#2094`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#19}(a) `CONST`_instr{numtype#415}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#417}(`I32`_numtype, `%`_num_{i#41829}(n)) `ARRAY.FILL`_instr{typeidx#1611}(x)])] +[visit_exp state#1979] +[visit_id state#1979] +[visit_exp `instr*#2094`] +[visit_id instr*#2094] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#19}(a) `CONST`_instr{numtype#415}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#417}(`I32`_numtype, `%`_num_{i#41829}(n)) `ARRAY.FILL`_instr{typeidx#1611}(x)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#19}(a) `CONST`_instr{numtype#415}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#417}(`I32`_numtype, `%`_num_{i#41829}(n)) `ARRAY.FILL`_instr{typeidx#1611}(x)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#19}(a)] +[visit_exp arrayaddr#19] +[visit_id arrayaddr#19] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#415}(`I32`_numtype, i)] +[visit_exp numtype#415] +[visit_id numtype#415] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] +[visit_exp `CONST`_instr{numtype#417}(`I32`_numtype, `%`_num_{i#41829}(n))] +[visit_exp numtype#417] +[visit_id numtype#417] +[visit_exp (`I32`_numtype, `%`_num_{i#41829}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#41829}(n)] +[visit_exp i#41829] +[visit_id i#41829] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.FILL`_instr{typeidx#1611}(x)] +[visit_exp typeidx#1611] +[visit_id typeidx#1611] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#21}(a) `CONST`_instr{numtype#419}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1613}(x) `REF.ARRAY_ADDR`_instr{arrayaddr#23}(a) `CONST`_instr{numtype#421}(`I32`_numtype, `%`_num_{i#41905}((i!`%`_num_{i#41895}.0 + 1))) (val : val <: instr) `CONST`_instr{numtype#423}(`I32`_numtype, `%`_num_{i#41927}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.FILL`_instr{typeidx#1615}(x)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#21}(a)] +[visit_exp arrayaddr#21] +[visit_id arrayaddr#21] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `CONST`_instr{numtype#419}(`I32`_numtype, i)] +[visit_exp numtype#419] +[visit_id numtype#419] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] not free +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_exp `ARRAY.SET`_instr{typeidx#1613}(x)] +[visit_exp typeidx#1613] +[visit_id typeidx#1613] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#23}(a)] +[visit_exp arrayaddr#23] +[visit_id arrayaddr#23] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `CONST`_instr{numtype#421}(`I32`_numtype, `%`_num_{i#41905}((i!`%`_num_{i#41895}.0 + 1)))] +[visit_exp numtype#421] +[visit_id numtype#421] +[visit_exp (`I32`_numtype, `%`_num_{i#41905}((i!`%`_num_{i#41895}.0 + 1)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#41905}((i!`%`_num_{i#41895}.0 + 1))] +[visit_exp i#41905] +[visit_id i#41905] +[visit_exp ((i!`%`_num_{i#41895}.0 + 1))] +[visit_exp (i!`%`_num_{i#41895}.0 + 1)] +[visit_exp i!`%`_num_{i#41895}.0] +[visit_exp i!`%`_num_{i#41895}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#41895] +[visit_id i#41895] +[visit_exp 1] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_exp `CONST`_instr{numtype#423}(`I32`_numtype, `%`_num_{i#41927}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#423] +[visit_id numtype#423] +[visit_exp (`I32`_numtype, `%`_num_{i#41927}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#41927}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#41927] +[visit_id i#41927] +[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `ARRAY.FILL`_instr{typeidx#1615}(x)] +[visit_exp typeidx#1615] +[visit_id typeidx#1615] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[check_dims] heaptype#1441 ht_1 i#41993 i_1 i_2 instr*#2106 n numtype#425 numtype#427 numtype#429 ref state#1991 typeidx#1617 x_1 x_2 z +[visit_exp `%;%`_config{state#1991, `instr*#2106`}(z, [`REF.NULL`_instr{heaptype#1441}(ht_1) `CONST`_instr{numtype#425}(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr{numtype#427}(`I32`_numtype, i_2) `CONST`_instr{numtype#429}(`I32`_numtype, `%`_num_{i#41993}(n)) `ARRAY.COPY`_instr{typeidx#1617}(x_1, x_2)])] +[visit_exp state#1991] +[visit_id state#1991] +[visit_exp `instr*#2106`] +[visit_id instr*#2106] +[visit_exp (z, [`REF.NULL`_instr{heaptype#1441}(ht_1) `CONST`_instr{numtype#425}(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr{numtype#427}(`I32`_numtype, i_2) `CONST`_instr{numtype#429}(`I32`_numtype, `%`_num_{i#41993}(n)) `ARRAY.COPY`_instr{typeidx#1617}(x_1, x_2)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.NULL`_instr{heaptype#1441}(ht_1) `CONST`_instr{numtype#425}(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr{numtype#427}(`I32`_numtype, i_2) `CONST`_instr{numtype#429}(`I32`_numtype, `%`_num_{i#41993}(n)) `ARRAY.COPY`_instr{typeidx#1617}(x_1, x_2)]] +[visit_exp `REF.NULL`_instr{heaptype#1441}(ht_1)] +[visit_exp heaptype#1441] +[visit_id heaptype#1441] +[visit_exp (ht_1)] +[visit_exp ht_1] +[visit_id ht_1] +[visit_exp `CONST`_instr{numtype#425}(`I32`_numtype, i_1)] +[visit_exp numtype#425] +[visit_id numtype#425] +[visit_exp (`I32`_numtype, i_1)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `CONST`_instr{numtype#427}(`I32`_numtype, i_2)] +[visit_exp numtype#427] +[visit_id numtype#427] +[visit_exp (`I32`_numtype, i_2)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#429}(`I32`_numtype, `%`_num_{i#41993}(n))] +[visit_exp numtype#429] +[visit_id numtype#429] +[visit_exp (`I32`_numtype, `%`_num_{i#41993}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#41993}(n)] +[visit_exp i#41993] +[visit_id i#41993] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.COPY`_instr{typeidx#1617}(x_1, x_2)] +[visit_exp typeidx#1617] +[visit_id typeidx#1617] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] heaptype#1443 ht_2 i#42073 i_1 i_2 instr*#2118 n numtype#431 numtype#433 numtype#435 ref state#2003 typeidx#1620 x_1 x_2 z +[visit_exp `%;%`_config{state#2003, `instr*#2118`}(z, [(ref : ref <: instr) `CONST`_instr{numtype#431}(`I32`_numtype, i_1) `REF.NULL`_instr{heaptype#1443}(ht_2) `CONST`_instr{numtype#433}(`I32`_numtype, i_2) `CONST`_instr{numtype#435}(`I32`_numtype, `%`_num_{i#42073}(n)) `ARRAY.COPY`_instr{typeidx#1620}(x_1, x_2)])] +[visit_exp state#2003] +[visit_id state#2003] +[visit_exp `instr*#2118`] +[visit_id instr*#2118] +[visit_exp (z, [(ref : ref <: instr) `CONST`_instr{numtype#431}(`I32`_numtype, i_1) `REF.NULL`_instr{heaptype#1443}(ht_2) `CONST`_instr{numtype#433}(`I32`_numtype, i_2) `CONST`_instr{numtype#435}(`I32`_numtype, `%`_num_{i#42073}(n)) `ARRAY.COPY`_instr{typeidx#1620}(x_1, x_2)])] +[visit_exp z] +[visit_id z] +[visit_exp [(ref : ref <: instr) `CONST`_instr{numtype#431}(`I32`_numtype, i_1) `REF.NULL`_instr{heaptype#1443}(ht_2) `CONST`_instr{numtype#433}(`I32`_numtype, i_2) `CONST`_instr{numtype#435}(`I32`_numtype, `%`_num_{i#42073}(n)) `ARRAY.COPY`_instr{typeidx#1620}(x_1, x_2)]] +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `CONST`_instr{numtype#431}(`I32`_numtype, i_1)] +[visit_exp numtype#431] +[visit_id numtype#431] +[visit_exp (`I32`_numtype, i_1)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `REF.NULL`_instr{heaptype#1443}(ht_2)] +[visit_exp heaptype#1443] +[visit_id heaptype#1443] +[visit_exp (ht_2)] +[visit_exp ht_2] +[visit_id ht_2] +[visit_exp `CONST`_instr{numtype#433}(`I32`_numtype, i_2)] +[visit_exp numtype#433] +[visit_id numtype#433] +[visit_exp (`I32`_numtype, i_2)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#435}(`I32`_numtype, `%`_num_{i#42073}(n))] +[visit_exp numtype#435] +[visit_id numtype#435] +[visit_exp (`I32`_numtype, `%`_num_{i#42073}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#42073}(n)] +[visit_exp i#42073] +[visit_id i#42073] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.COPY`_instr{typeidx#1620}(x_1, x_2)] +[visit_exp typeidx#1620] +[visit_id typeidx#1620] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] a_1 a_2 arrayaddr#25 arrayaddr#27 fieldval*#11 i#42153 i#42195 i_1 i_2 instr*#2130 n numtype#437 numtype#439 numtype#441 state#2015 typeidx#1623 x_1 x_2 z +[visit_exp `%;%`_config{state#2015, `instr*#2130`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#25}(a_1) `CONST`_instr{numtype#437}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#27}(a_2) `CONST`_instr{numtype#439}(`I32`_numtype, i_2) `CONST`_instr{numtype#441}(`I32`_numtype, `%`_num_{i#42153}(n)) `ARRAY.COPY`_instr{typeidx#1623}(x_1, x_2)])] +[visit_exp state#2015] +[visit_id state#2015] +[visit_exp `instr*#2130`] +[visit_id instr*#2130] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#25}(a_1) `CONST`_instr{numtype#437}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#27}(a_2) `CONST`_instr{numtype#439}(`I32`_numtype, i_2) `CONST`_instr{numtype#441}(`I32`_numtype, `%`_num_{i#42153}(n)) `ARRAY.COPY`_instr{typeidx#1623}(x_1, x_2)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#25}(a_1) `CONST`_instr{numtype#437}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#27}(a_2) `CONST`_instr{numtype#439}(`I32`_numtype, i_2) `CONST`_instr{numtype#441}(`I32`_numtype, `%`_num_{i#42153}(n)) `ARRAY.COPY`_instr{typeidx#1623}(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#25}(a_1)] +[visit_exp arrayaddr#25] +[visit_id arrayaddr#25] +[visit_exp (a_1)] +[visit_exp a_1] +[visit_id a_1] +[visit_exp `CONST`_instr{numtype#437}(`I32`_numtype, i_1)] +[visit_exp numtype#437] +[visit_id numtype#437] +[visit_exp (`I32`_numtype, i_1)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#27}(a_2)] +[visit_exp arrayaddr#27] +[visit_id arrayaddr#27] +[visit_exp (a_2)] +[visit_exp a_2] +[visit_id a_2] +[visit_exp `CONST`_instr{numtype#439}(`I32`_numtype, i_2)] +[visit_exp numtype#439] +[visit_id numtype#439] +[visit_exp (`I32`_numtype, i_2)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#441}(`I32`_numtype, `%`_num_{i#42153}(n))] +[visit_exp numtype#441] +[visit_id numtype#441] +[visit_exp (`I32`_numtype, `%`_num_{i#42153}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#42153}(n)] +[visit_exp i#42153] +[visit_id i#42153] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.COPY`_instr{typeidx#1623}(x_1, x_2)] +[visit_exp typeidx#1623] +[visit_id typeidx#1623] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ((i_1!`%`_num_{i#42195}.0 + n) > |$arrayinst(z)[a_1].`FIELDS`_arrayinst{`fieldval*#11`}|)] +[visit_exp (i_1!`%`_num_{i#42195}.0 + n)] +[visit_exp i_1!`%`_num_{i#42195}.0] +[visit_exp i_1!`%`_num_{i#42195}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#42195] +[visit_id i#42195] +[visit_exp n] +[visit_id n] not free +[visit_exp |$arrayinst(z)[a_1].`FIELDS`_arrayinst{`fieldval*#11`}|] +[visit_exp $arrayinst(z)[a_1].`FIELDS`_arrayinst{`fieldval*#11`}] +[visit_exp $arrayinst(z)[a_1]] +[visit_exp $arrayinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a_1] +[visit_id a_1] not free +[visit_exp `fieldval*#11`] +[visit_id fieldval*#11] +[check_dims] a_1 a_2 arrayaddr#29 arrayaddr#31 fieldval*#12 i#42247 i#42289 i_1 i_2 instr*#2142 n numtype#443 numtype#445 numtype#447 state#2027 typeidx#1626 x_1 x_2 z +[visit_exp `%;%`_config{state#2027, `instr*#2142`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#29}(a_1) `CONST`_instr{numtype#443}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#31}(a_2) `CONST`_instr{numtype#445}(`I32`_numtype, i_2) `CONST`_instr{numtype#447}(`I32`_numtype, `%`_num_{i#42247}(n)) `ARRAY.COPY`_instr{typeidx#1626}(x_1, x_2)])] +[visit_exp state#2027] +[visit_id state#2027] +[visit_exp `instr*#2142`] +[visit_id instr*#2142] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#29}(a_1) `CONST`_instr{numtype#443}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#31}(a_2) `CONST`_instr{numtype#445}(`I32`_numtype, i_2) `CONST`_instr{numtype#447}(`I32`_numtype, `%`_num_{i#42247}(n)) `ARRAY.COPY`_instr{typeidx#1626}(x_1, x_2)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#29}(a_1) `CONST`_instr{numtype#443}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#31}(a_2) `CONST`_instr{numtype#445}(`I32`_numtype, i_2) `CONST`_instr{numtype#447}(`I32`_numtype, `%`_num_{i#42247}(n)) `ARRAY.COPY`_instr{typeidx#1626}(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#29}(a_1)] +[visit_exp arrayaddr#29] +[visit_id arrayaddr#29] +[visit_exp (a_1)] +[visit_exp a_1] +[visit_id a_1] +[visit_exp `CONST`_instr{numtype#443}(`I32`_numtype, i_1)] +[visit_exp numtype#443] +[visit_id numtype#443] +[visit_exp (`I32`_numtype, i_1)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#31}(a_2)] +[visit_exp arrayaddr#31] +[visit_id arrayaddr#31] +[visit_exp (a_2)] +[visit_exp a_2] +[visit_id a_2] +[visit_exp `CONST`_instr{numtype#445}(`I32`_numtype, i_2)] +[visit_exp numtype#445] +[visit_id numtype#445] +[visit_exp (`I32`_numtype, i_2)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#447}(`I32`_numtype, `%`_num_{i#42247}(n))] +[visit_exp numtype#447] +[visit_id numtype#447] +[visit_exp (`I32`_numtype, `%`_num_{i#42247}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#42247}(n)] +[visit_exp i#42247] +[visit_id i#42247] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.COPY`_instr{typeidx#1626}(x_1, x_2)] +[visit_exp typeidx#1626] +[visit_id typeidx#1626] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ((i_2!`%`_num_{i#42289}.0 + n) > |$arrayinst(z)[a_2].`FIELDS`_arrayinst{`fieldval*#12`}|)] +[visit_exp (i_2!`%`_num_{i#42289}.0 + n)] +[visit_exp i_2!`%`_num_{i#42289}.0] +[visit_exp i_2!`%`_num_{i#42289}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#42289] +[visit_id i#42289] +[visit_exp n] +[visit_id n] not free +[visit_exp |$arrayinst(z)[a_2].`FIELDS`_arrayinst{`fieldval*#12`}|] +[visit_exp $arrayinst(z)[a_2].`FIELDS`_arrayinst{`fieldval*#12`}] +[visit_exp $arrayinst(z)[a_2]] +[visit_exp $arrayinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a_2] +[visit_id a_2] not free +[visit_exp `fieldval*#12`] +[visit_id fieldval*#12] +[check_dims] a_1 a_2 arrayaddr#33 arrayaddr#35 i#42341 i_1 i_2 instr*#2154 n numtype#449 numtype#451 numtype#453 state#2039 typeidx#1629 x_1 x_2 z +[visit_exp `%;%`_config{state#2039, `instr*#2154`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#33}(a_1) `CONST`_instr{numtype#449}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#35}(a_2) `CONST`_instr{numtype#451}(`I32`_numtype, i_2) `CONST`_instr{numtype#453}(`I32`_numtype, `%`_num_{i#42341}(n)) `ARRAY.COPY`_instr{typeidx#1629}(x_1, x_2)])] +[visit_exp state#2039] +[visit_id state#2039] +[visit_exp `instr*#2154`] +[visit_id instr*#2154] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#33}(a_1) `CONST`_instr{numtype#449}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#35}(a_2) `CONST`_instr{numtype#451}(`I32`_numtype, i_2) `CONST`_instr{numtype#453}(`I32`_numtype, `%`_num_{i#42341}(n)) `ARRAY.COPY`_instr{typeidx#1629}(x_1, x_2)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#33}(a_1) `CONST`_instr{numtype#449}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#35}(a_2) `CONST`_instr{numtype#451}(`I32`_numtype, i_2) `CONST`_instr{numtype#453}(`I32`_numtype, `%`_num_{i#42341}(n)) `ARRAY.COPY`_instr{typeidx#1629}(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#33}(a_1)] +[visit_exp arrayaddr#33] +[visit_id arrayaddr#33] +[visit_exp (a_1)] +[visit_exp a_1] +[visit_id a_1] +[visit_exp `CONST`_instr{numtype#449}(`I32`_numtype, i_1)] +[visit_exp numtype#449] +[visit_id numtype#449] +[visit_exp (`I32`_numtype, i_1)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#35}(a_2)] +[visit_exp arrayaddr#35] +[visit_id arrayaddr#35] +[visit_exp (a_2)] +[visit_exp a_2] +[visit_id a_2] +[visit_exp `CONST`_instr{numtype#451}(`I32`_numtype, i_2)] +[visit_exp numtype#451] +[visit_id numtype#451] +[visit_exp (`I32`_numtype, i_2)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#453}(`I32`_numtype, `%`_num_{i#42341}(n))] +[visit_exp numtype#453] +[visit_id numtype#453] +[visit_exp (`I32`_numtype, `%`_num_{i#42341}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#42341}(n)] +[visit_exp i#42341] +[visit_id i#42341] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.COPY`_instr{typeidx#1629}(x_1, x_2)] +[visit_exp typeidx#1629] +[visit_id typeidx#1629] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp []] +[visit_exp (n = 0)] +[visit_exp n] +[visit_id n] not free +[visit_exp 0] +[check_dims] a_1 a_2 arrayaddr#37 arrayaddr#39 arrayaddr#41 arrayaddr#43 arrayaddr#45 arrayaddr#47 fieldtype#51 i#42421 i#42564 i#42574 i#42600 i#42610 i#42632 i#42690 i#42700 i_1 i_2 instr*#2166 mut mut?#1169 n numtype#455 numtype#457 numtype#459 numtype#461 numtype#463 numtype#465 numtype#467 numtype#469 state#2051 storagetype#707 sx sx?#23 typeidx#1632 typeidx#1635 typeidx#1637 typeidx#1639 x_1 x_2 z zt_2 +[visit_exp `%;%`_config{state#2051, `instr*#2166`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#37}(a_1) `CONST`_instr{numtype#455}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#39}(a_2) `CONST`_instr{numtype#457}(`I32`_numtype, i_2) `CONST`_instr{numtype#459}(`I32`_numtype, `%`_num_{i#42421}(n)) `ARRAY.COPY`_instr{typeidx#1632}(x_1, x_2)])] +[visit_exp state#2051] +[visit_id state#2051] +[visit_exp `instr*#2166`] +[visit_id instr*#2166] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#37}(a_1) `CONST`_instr{numtype#455}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#39}(a_2) `CONST`_instr{numtype#457}(`I32`_numtype, i_2) `CONST`_instr{numtype#459}(`I32`_numtype, `%`_num_{i#42421}(n)) `ARRAY.COPY`_instr{typeidx#1632}(x_1, x_2)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#37}(a_1) `CONST`_instr{numtype#455}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#39}(a_2) `CONST`_instr{numtype#457}(`I32`_numtype, i_2) `CONST`_instr{numtype#459}(`I32`_numtype, `%`_num_{i#42421}(n)) `ARRAY.COPY`_instr{typeidx#1632}(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#37}(a_1)] +[visit_exp arrayaddr#37] +[visit_id arrayaddr#37] +[visit_exp (a_1)] +[visit_exp a_1] +[visit_id a_1] +[visit_exp `CONST`_instr{numtype#455}(`I32`_numtype, i_1)] +[visit_exp numtype#455] +[visit_id numtype#455] +[visit_exp (`I32`_numtype, i_1)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#39}(a_2)] +[visit_exp arrayaddr#39] +[visit_id arrayaddr#39] +[visit_exp (a_2)] +[visit_exp a_2] +[visit_id a_2] +[visit_exp `CONST`_instr{numtype#457}(`I32`_numtype, i_2)] +[visit_exp numtype#457] +[visit_id numtype#457] +[visit_exp (`I32`_numtype, i_2)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#459}(`I32`_numtype, `%`_num_{i#42421}(n))] +[visit_exp numtype#459] +[visit_id numtype#459] +[visit_exp (`I32`_numtype, `%`_num_{i#42421}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#42421}(n)] +[visit_exp i#42421] +[visit_id i#42421] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.COPY`_instr{typeidx#1632}(x_1, x_2)] +[visit_exp typeidx#1632] +[visit_id typeidx#1632] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#41}(a_1) `CONST`_instr{numtype#461}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#43}(a_2) `CONST`_instr{numtype#463}(`I32`_numtype, i_2) `ARRAY.GET`_instr{`sx?#23`, typeidx#1635}(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr{typeidx#1637}(x_1) `REF.ARRAY_ADDR`_instr{arrayaddr#45}(a_1) `CONST`_instr{numtype#465}(`I32`_numtype, `%`_num_{i#42574}((i_1!`%`_num_{i#42564}.0 + 1))) `REF.ARRAY_ADDR`_instr{arrayaddr#47}(a_2) `CONST`_instr{numtype#467}(`I32`_numtype, `%`_num_{i#42610}((i_2!`%`_num_{i#42600}.0 + 1))) `CONST`_instr{numtype#469}(`I32`_numtype, `%`_num_{i#42632}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr{typeidx#1639}(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#41}(a_1)] +[visit_exp arrayaddr#41] +[visit_id arrayaddr#41] +[visit_exp (a_1)] +[visit_exp a_1] +[visit_id a_1] not free +[visit_exp `CONST`_instr{numtype#461}(`I32`_numtype, i_1)] +[visit_exp numtype#461] +[visit_id numtype#461] +[visit_exp (`I32`_numtype, i_1)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#43}(a_2)] +[visit_exp arrayaddr#43] +[visit_id arrayaddr#43] +[visit_exp (a_2)] +[visit_exp a_2] +[visit_id a_2] not free +[visit_exp `CONST`_instr{numtype#463}(`I32`_numtype, i_2)] +[visit_exp numtype#463] +[visit_id numtype#463] +[visit_exp (`I32`_numtype, i_2)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp `ARRAY.GET`_instr{`sx?#23`, typeidx#1635}(sx?{sx <- `sx?`}, x_2)] +[visit_exp `sx?#23`] +[visit_id sx?#23] +[visit_exp typeidx#1635] +[visit_id typeidx#1635] +[visit_exp (sx?{sx <- `sx?`}, x_2)] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] no dims +[visit_id sx?] +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp `ARRAY.SET`_instr{typeidx#1637}(x_1)] +[visit_exp typeidx#1637] +[visit_id typeidx#1637] +[visit_exp (x_1)] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#45}(a_1)] +[visit_exp arrayaddr#45] +[visit_id arrayaddr#45] +[visit_exp (a_1)] +[visit_exp a_1] +[visit_id a_1] not free +[visit_exp `CONST`_instr{numtype#465}(`I32`_numtype, `%`_num_{i#42574}((i_1!`%`_num_{i#42564}.0 + 1)))] +[visit_exp numtype#465] +[visit_id numtype#465] +[visit_exp (`I32`_numtype, `%`_num_{i#42574}((i_1!`%`_num_{i#42564}.0 + 1)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#42574}((i_1!`%`_num_{i#42564}.0 + 1))] +[visit_exp i#42574] +[visit_id i#42574] +[visit_exp ((i_1!`%`_num_{i#42564}.0 + 1))] +[visit_exp (i_1!`%`_num_{i#42564}.0 + 1)] +[visit_exp i_1!`%`_num_{i#42564}.0] +[visit_exp i_1!`%`_num_{i#42564}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#42564] +[visit_id i#42564] +[visit_exp 1] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#47}(a_2)] +[visit_exp arrayaddr#47] +[visit_id arrayaddr#47] +[visit_exp (a_2)] +[visit_exp a_2] +[visit_id a_2] not free +[visit_exp `CONST`_instr{numtype#467}(`I32`_numtype, `%`_num_{i#42610}((i_2!`%`_num_{i#42600}.0 + 1)))] +[visit_exp numtype#467] +[visit_id numtype#467] +[visit_exp (`I32`_numtype, `%`_num_{i#42610}((i_2!`%`_num_{i#42600}.0 + 1)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#42610}((i_2!`%`_num_{i#42600}.0 + 1))] +[visit_exp i#42610] +[visit_id i#42610] +[visit_exp ((i_2!`%`_num_{i#42600}.0 + 1))] +[visit_exp (i_2!`%`_num_{i#42600}.0 + 1)] +[visit_exp i_2!`%`_num_{i#42600}.0] +[visit_exp i_2!`%`_num_{i#42600}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#42600] +[visit_id i#42600] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#469}(`I32`_numtype, `%`_num_{i#42632}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#469] +[visit_id numtype#469] +[visit_exp (`I32`_numtype, `%`_num_{i#42632}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#42632}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#42632] +[visit_id i#42632] +[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `ARRAY.COPY`_instr{typeidx#1639}(x_1, x_2)] +[visit_exp typeidx#1639] +[visit_id typeidx#1639] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp ($type(z, x_2), `ARRAY`_comptype{fieldtype#51}(`%%`_fieldtype{`mut?#1169`, storagetype#707}(mut?{mut <- `mut?`}, zt_2)))] +[visit_exp $type(z, x_2)] +[visit_exp z] +[visit_id z] not free +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp `ARRAY`_comptype{fieldtype#51}(`%%`_fieldtype{`mut?#1169`, storagetype#707}(mut?{mut <- `mut?`}, zt_2))] +[visit_exp fieldtype#51] +[visit_id fieldtype#51] +[visit_exp (`%%`_fieldtype{`mut?#1169`, storagetype#707}(mut?{mut <- `mut?`}, zt_2))] +[visit_exp `%%`_fieldtype{`mut?#1169`, storagetype#707}(mut?{mut <- `mut?`}, zt_2)] +[visit_exp `mut?#1169`] +[visit_id mut?#1169] +[visit_exp storagetype#707] +[visit_id storagetype#707] +[visit_exp (mut?{mut <- `mut?`}, zt_2)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt_2] +[visit_id zt_2] +[visit_exp ((i_1!`%`_num_{i#42690}.0 <= i_2!`%`_num_{i#42700}.0) /\ (sx?{sx <- `sx?`} = $sx(zt_2)))] +[visit_exp (i_1!`%`_num_{i#42690}.0 <= i_2!`%`_num_{i#42700}.0)] +[visit_exp i_1!`%`_num_{i#42690}.0] +[visit_exp i_1!`%`_num_{i#42690}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#42690] +[visit_id i#42690] +[visit_exp i_2!`%`_num_{i#42700}.0] +[visit_exp i_2!`%`_num_{i#42700}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#42700] +[visit_id i#42700] +[visit_exp (sx?{sx <- `sx?`} = $sx(zt_2))] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] not free +[visit_id sx?] no dims +[visit_exp $sx(zt_2)] +[visit_exp zt_2] +[visit_id zt_2] not free +[check_dims] a_1 a_2 arrayaddr#49 arrayaddr#51 arrayaddr#53 arrayaddr#55 arrayaddr#57 arrayaddr#59 fieldtype#53 i#42752 i#42806 i#42816 i#42842 i#42852 i#42963 i_1 i_2 instr*#2178 mut mut?#1181 n numtype#471 numtype#473 numtype#475 numtype#477 numtype#479 numtype#481 numtype#483 numtype#485 state#2063 storagetype#719 sx sx?#25 typeidx#1642 typeidx#1645 typeidx#1647 typeidx#1649 x_1 x_2 z zt_2 +[visit_exp `%;%`_config{state#2063, `instr*#2178`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#49}(a_1) `CONST`_instr{numtype#471}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#51}(a_2) `CONST`_instr{numtype#473}(`I32`_numtype, i_2) `CONST`_instr{numtype#475}(`I32`_numtype, `%`_num_{i#42752}(n)) `ARRAY.COPY`_instr{typeidx#1642}(x_1, x_2)])] +[visit_exp state#2063] +[visit_id state#2063] +[visit_exp `instr*#2178`] +[visit_id instr*#2178] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#49}(a_1) `CONST`_instr{numtype#471}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#51}(a_2) `CONST`_instr{numtype#473}(`I32`_numtype, i_2) `CONST`_instr{numtype#475}(`I32`_numtype, `%`_num_{i#42752}(n)) `ARRAY.COPY`_instr{typeidx#1642}(x_1, x_2)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#49}(a_1) `CONST`_instr{numtype#471}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#51}(a_2) `CONST`_instr{numtype#473}(`I32`_numtype, i_2) `CONST`_instr{numtype#475}(`I32`_numtype, `%`_num_{i#42752}(n)) `ARRAY.COPY`_instr{typeidx#1642}(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#49}(a_1)] +[visit_exp arrayaddr#49] +[visit_id arrayaddr#49] +[visit_exp (a_1)] +[visit_exp a_1] +[visit_id a_1] +[visit_exp `CONST`_instr{numtype#471}(`I32`_numtype, i_1)] +[visit_exp numtype#471] +[visit_id numtype#471] +[visit_exp (`I32`_numtype, i_1)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#51}(a_2)] +[visit_exp arrayaddr#51] +[visit_id arrayaddr#51] +[visit_exp (a_2)] +[visit_exp a_2] +[visit_id a_2] +[visit_exp `CONST`_instr{numtype#473}(`I32`_numtype, i_2)] +[visit_exp numtype#473] +[visit_id numtype#473] +[visit_exp (`I32`_numtype, i_2)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_2] +[visit_id i_2] +[visit_exp `CONST`_instr{numtype#475}(`I32`_numtype, `%`_num_{i#42752}(n))] +[visit_exp numtype#475] +[visit_id numtype#475] +[visit_exp (`I32`_numtype, `%`_num_{i#42752}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#42752}(n)] +[visit_exp i#42752] +[visit_id i#42752] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.COPY`_instr{typeidx#1642}(x_1, x_2)] +[visit_exp typeidx#1642] +[visit_id typeidx#1642] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#53}(a_1) `CONST`_instr{numtype#477}(`I32`_numtype, `%`_num_{i#42816}(((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `REF.ARRAY_ADDR`_instr{arrayaddr#55}(a_2) `CONST`_instr{numtype#479}(`I32`_numtype, `%`_num_{i#42852}(((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.GET`_instr{`sx?#25`, typeidx#1645}(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr{typeidx#1647}(x_1) `REF.ARRAY_ADDR`_instr{arrayaddr#57}(a_1) `CONST`_instr{numtype#481}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#59}(a_2) `CONST`_instr{numtype#483}(`I32`_numtype, i_2) `CONST`_instr{numtype#485}(`I32`_numtype, `%`_num_{i#42963}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr{typeidx#1649}(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#53}(a_1)] +[visit_exp arrayaddr#53] +[visit_id arrayaddr#53] +[visit_exp (a_1)] +[visit_exp a_1] +[visit_id a_1] not free +[visit_exp `CONST`_instr{numtype#477}(`I32`_numtype, `%`_num_{i#42816}(((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#477] +[visit_id numtype#477] +[visit_exp (`I32`_numtype, `%`_num_{i#42816}(((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#42816}(((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#42816] +[visit_id i#42816] +[visit_exp (((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int)] +[visit_exp (i_1!`%`_num_{i#42806}.0 + n)] +[visit_exp i_1!`%`_num_{i#42806}.0] +[visit_exp i_1!`%`_num_{i#42806}] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp i#42806] +[visit_id i#42806] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#55}(a_2)] +[visit_exp arrayaddr#55] +[visit_id arrayaddr#55] +[visit_exp (a_2)] +[visit_exp a_2] +[visit_id a_2] not free +[visit_exp `CONST`_instr{numtype#479}(`I32`_numtype, `%`_num_{i#42852}(((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#479] +[visit_id numtype#479] +[visit_exp (`I32`_numtype, `%`_num_{i#42852}(((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#42852}(((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#42852] +[visit_id i#42852] +[visit_exp (((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int)] +[visit_exp (i_2!`%`_num_{i#42842}.0 + n)] +[visit_exp i_2!`%`_num_{i#42842}.0] +[visit_exp i_2!`%`_num_{i#42842}] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp i#42842] +[visit_id i#42842] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `ARRAY.GET`_instr{`sx?#25`, typeidx#1645}(sx?{sx <- `sx?`}, x_2)] +[visit_exp `sx?#25`] +[visit_id sx?#25] +[visit_exp typeidx#1645] +[visit_id typeidx#1645] +[visit_exp (sx?{sx <- `sx?`}, x_2)] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] no dims +[visit_id sx?] +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp `ARRAY.SET`_instr{typeidx#1647}(x_1)] +[visit_exp typeidx#1647] +[visit_id typeidx#1647] +[visit_exp (x_1)] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#57}(a_1)] +[visit_exp arrayaddr#57] +[visit_id arrayaddr#57] +[visit_exp (a_1)] +[visit_exp a_1] +[visit_id a_1] not free +[visit_exp `CONST`_instr{numtype#481}(`I32`_numtype, i_1)] +[visit_exp numtype#481] +[visit_id numtype#481] +[visit_exp (`I32`_numtype, i_1)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_1] +[visit_id i_1] not free +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#59}(a_2)] +[visit_exp arrayaddr#59] +[visit_id arrayaddr#59] +[visit_exp (a_2)] +[visit_exp a_2] +[visit_id a_2] not free +[visit_exp `CONST`_instr{numtype#483}(`I32`_numtype, i_2)] +[visit_exp numtype#483] +[visit_id numtype#483] +[visit_exp (`I32`_numtype, i_2)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i_2] +[visit_id i_2] not free +[visit_exp `CONST`_instr{numtype#485}(`I32`_numtype, `%`_num_{i#42963}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#485] +[visit_id numtype#485] +[visit_exp (`I32`_numtype, `%`_num_{i#42963}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#42963}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#42963] +[visit_id i#42963] +[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `ARRAY.COPY`_instr{typeidx#1649}(x_1, x_2)] +[visit_exp typeidx#1649] +[visit_id typeidx#1649] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp ($type(z, x_2), `ARRAY`_comptype{fieldtype#53}(`%%`_fieldtype{`mut?#1181`, storagetype#719}(mut?{mut <- `mut?`}, zt_2)))] +[visit_exp $type(z, x_2)] +[visit_exp z] +[visit_id z] not free +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp `ARRAY`_comptype{fieldtype#53}(`%%`_fieldtype{`mut?#1181`, storagetype#719}(mut?{mut <- `mut?`}, zt_2))] +[visit_exp fieldtype#53] +[visit_id fieldtype#53] +[visit_exp (`%%`_fieldtype{`mut?#1181`, storagetype#719}(mut?{mut <- `mut?`}, zt_2))] +[visit_exp `%%`_fieldtype{`mut?#1181`, storagetype#719}(mut?{mut <- `mut?`}, zt_2)] +[visit_exp `mut?#1181`] +[visit_id mut?#1181] +[visit_exp storagetype#719] +[visit_id storagetype#719] +[visit_exp (mut?{mut <- `mut?`}, zt_2)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt_2] +[visit_id zt_2] +[visit_exp (sx?{sx <- `sx?`} = $sx(zt_2))] +[visit_exp sx?{sx <- `sx?`}] +[scope_enter sx] +[visit_exp sx] +[visit_id sx] not free +[visit_id sx] not free +[scope_exit sx] +[visit_exp `sx?`] +[visit_id sx?] not free +[visit_id sx?] no dims +[visit_exp $sx(zt_2)] +[visit_exp zt_2] +[visit_id zt_2] not free +[check_dims] elemidx#31 heaptype#1445 ht i i#43055 instr*#2190 j n numtype#487 numtype#489 numtype#491 state#2075 typeidx#1652 x y z +[visit_exp `%;%`_config{state#2075, `instr*#2190`}(z, [`REF.NULL`_instr{heaptype#1445}(ht) `CONST`_instr{numtype#487}(`I32`_numtype, i) `CONST`_instr{numtype#489}(`I32`_numtype, j) `CONST`_instr{numtype#491}(`I32`_numtype, `%`_num_{i#43055}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1652, elemidx#31}(x, y)])] +[visit_exp state#2075] +[visit_id state#2075] +[visit_exp `instr*#2190`] +[visit_id instr*#2190] +[visit_exp (z, [`REF.NULL`_instr{heaptype#1445}(ht) `CONST`_instr{numtype#487}(`I32`_numtype, i) `CONST`_instr{numtype#489}(`I32`_numtype, j) `CONST`_instr{numtype#491}(`I32`_numtype, `%`_num_{i#43055}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1652, elemidx#31}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.NULL`_instr{heaptype#1445}(ht) `CONST`_instr{numtype#487}(`I32`_numtype, i) `CONST`_instr{numtype#489}(`I32`_numtype, j) `CONST`_instr{numtype#491}(`I32`_numtype, `%`_num_{i#43055}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1652, elemidx#31}(x, y)]] +[visit_exp `REF.NULL`_instr{heaptype#1445}(ht)] +[visit_exp heaptype#1445] +[visit_id heaptype#1445] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `CONST`_instr{numtype#487}(`I32`_numtype, i)] +[visit_exp numtype#487] +[visit_id numtype#487] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#489}(`I32`_numtype, j)] +[visit_exp numtype#489] +[visit_id numtype#489] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#491}(`I32`_numtype, `%`_num_{i#43055}(n))] +[visit_exp numtype#491] +[visit_id numtype#491] +[visit_exp (`I32`_numtype, `%`_num_{i#43055}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#43055}(n)] +[visit_exp i#43055] +[visit_id i#43055] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1652, elemidx#31}(x, y)] +[visit_exp typeidx#1652] +[visit_id typeidx#1652] +[visit_exp elemidx#31] +[visit_id elemidx#31] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] a arrayaddr#61 elemidx#33 fieldval*#13 i i#43135 i#43177 instr*#2202 j n numtype#493 numtype#495 numtype#497 state#2087 typeidx#1654 x y z +[visit_exp `%;%`_config{state#2087, `instr*#2202`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#61}(a) `CONST`_instr{numtype#493}(`I32`_numtype, i) `CONST`_instr{numtype#495}(`I32`_numtype, j) `CONST`_instr{numtype#497}(`I32`_numtype, `%`_num_{i#43135}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1654, elemidx#33}(x, y)])] +[visit_exp state#2087] +[visit_id state#2087] +[visit_exp `instr*#2202`] +[visit_id instr*#2202] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#61}(a) `CONST`_instr{numtype#493}(`I32`_numtype, i) `CONST`_instr{numtype#495}(`I32`_numtype, j) `CONST`_instr{numtype#497}(`I32`_numtype, `%`_num_{i#43135}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1654, elemidx#33}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#61}(a) `CONST`_instr{numtype#493}(`I32`_numtype, i) `CONST`_instr{numtype#495}(`I32`_numtype, j) `CONST`_instr{numtype#497}(`I32`_numtype, `%`_num_{i#43135}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1654, elemidx#33}(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#61}(a)] +[visit_exp arrayaddr#61] +[visit_id arrayaddr#61] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#493}(`I32`_numtype, i)] +[visit_exp numtype#493] +[visit_id numtype#493] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#495}(`I32`_numtype, j)] +[visit_exp numtype#495] +[visit_id numtype#495] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#497}(`I32`_numtype, `%`_num_{i#43135}(n))] +[visit_exp numtype#497] +[visit_id numtype#497] +[visit_exp (`I32`_numtype, `%`_num_{i#43135}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#43135}(n)] +[visit_exp i#43135] +[visit_id i#43135] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1654, elemidx#33}(x, y)] +[visit_exp typeidx#1654] +[visit_id typeidx#1654] +[visit_exp elemidx#33] +[visit_id elemidx#33] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ((i!`%`_num_{i#43177}.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#13`}|)] +[visit_exp (i!`%`_num_{i#43177}.0 + n)] +[visit_exp i!`%`_num_{i#43177}.0] +[visit_exp i!`%`_num_{i#43177}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#43177] +[visit_id i#43177] +[visit_exp n] +[visit_id n] not free +[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#13`}|] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#13`}] +[visit_exp $arrayinst(z)[a]] +[visit_exp $arrayinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp `fieldval*#13`] +[visit_id fieldval*#13] +[check_dims] a arrayaddr#63 elemidx#35 i i#43229 i#43271 instr*#2214 j n numtype#499 numtype#501 numtype#503 ref*#20 state#2099 typeidx#1656 x y z +[visit_exp `%;%`_config{state#2099, `instr*#2214`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#63}(a) `CONST`_instr{numtype#499}(`I32`_numtype, i) `CONST`_instr{numtype#501}(`I32`_numtype, j) `CONST`_instr{numtype#503}(`I32`_numtype, `%`_num_{i#43229}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1656, elemidx#35}(x, y)])] +[visit_exp state#2099] +[visit_id state#2099] +[visit_exp `instr*#2214`] +[visit_id instr*#2214] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#63}(a) `CONST`_instr{numtype#499}(`I32`_numtype, i) `CONST`_instr{numtype#501}(`I32`_numtype, j) `CONST`_instr{numtype#503}(`I32`_numtype, `%`_num_{i#43229}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1656, elemidx#35}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#63}(a) `CONST`_instr{numtype#499}(`I32`_numtype, i) `CONST`_instr{numtype#501}(`I32`_numtype, j) `CONST`_instr{numtype#503}(`I32`_numtype, `%`_num_{i#43229}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1656, elemidx#35}(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#63}(a)] +[visit_exp arrayaddr#63] +[visit_id arrayaddr#63] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#499}(`I32`_numtype, i)] +[visit_exp numtype#499] +[visit_id numtype#499] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#501}(`I32`_numtype, j)] +[visit_exp numtype#501] +[visit_id numtype#501] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#503}(`I32`_numtype, `%`_num_{i#43229}(n))] +[visit_exp numtype#503] +[visit_id numtype#503] +[visit_exp (`I32`_numtype, `%`_num_{i#43229}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#43229}(n)] +[visit_exp i#43229] +[visit_id i#43229] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1656, elemidx#35}(x, y)] +[visit_exp typeidx#1656] +[visit_id typeidx#1656] +[visit_exp elemidx#35] +[visit_id elemidx#35] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ((j!`%`_num_{i#43271}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#20`}|)] +[visit_exp (j!`%`_num_{i#43271}.0 + n)] +[visit_exp j!`%`_num_{i#43271}.0] +[visit_exp j!`%`_num_{i#43271}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#43271] +[visit_id i#43271] +[visit_exp n] +[visit_id n] not free +[visit_exp |$elem(z, y).`REFS`_eleminst{`ref*#20`}|] +[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#20`}] +[visit_exp $elem(z, y)] +[visit_exp z] +[visit_id z] not free +[visit_exp y] +[visit_id y] not free +[visit_exp `ref*#20`] +[visit_id ref*#20] +[check_dims] a arrayaddr#65 elemidx#37 i i#43335 instr*#2226 j n numtype#505 numtype#507 numtype#509 state#2111 typeidx#1658 x y z +[visit_exp `%;%`_config{state#2111, `instr*#2226`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#65}(a) `CONST`_instr{numtype#505}(`I32`_numtype, i) `CONST`_instr{numtype#507}(`I32`_numtype, j) `CONST`_instr{numtype#509}(`I32`_numtype, `%`_num_{i#43335}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1658, elemidx#37}(x, y)])] +[visit_exp state#2111] +[visit_id state#2111] +[visit_exp `instr*#2226`] +[visit_id instr*#2226] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#65}(a) `CONST`_instr{numtype#505}(`I32`_numtype, i) `CONST`_instr{numtype#507}(`I32`_numtype, j) `CONST`_instr{numtype#509}(`I32`_numtype, `%`_num_{i#43335}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1658, elemidx#37}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#65}(a) `CONST`_instr{numtype#505}(`I32`_numtype, i) `CONST`_instr{numtype#507}(`I32`_numtype, j) `CONST`_instr{numtype#509}(`I32`_numtype, `%`_num_{i#43335}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1658, elemidx#37}(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#65}(a)] +[visit_exp arrayaddr#65] +[visit_id arrayaddr#65] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#505}(`I32`_numtype, i)] +[visit_exp numtype#505] +[visit_id numtype#505] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#507}(`I32`_numtype, j)] +[visit_exp numtype#507] +[visit_id numtype#507] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#509}(`I32`_numtype, `%`_num_{i#43335}(n))] +[visit_exp numtype#509] +[visit_id numtype#509] +[visit_exp (`I32`_numtype, `%`_num_{i#43335}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#43335}(n)] +[visit_exp i#43335] +[visit_id i#43335] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1658, elemidx#37}(x, y)] +[visit_exp typeidx#1658] +[visit_id typeidx#1658] +[visit_exp elemidx#37] +[visit_id elemidx#37] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp []] +[visit_exp (n = 0)] +[visit_exp n] +[visit_id n] not free +[visit_exp 0] +[check_dims] a arrayaddr#67 arrayaddr#69 arrayaddr#71 elemidx#39 elemidx#41 i i#43415 i#43495 i#43505 i#43531 i#43541 i#43563 i#43613 instr*#2238 j n numtype#511 numtype#513 numtype#515 numtype#517 numtype#519 numtype#521 numtype#523 ref ref*#21 state#2123 typeidx#1660 typeidx#1662 typeidx#1664 x y z +[visit_exp `%;%`_config{state#2123, `instr*#2238`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#67}(a) `CONST`_instr{numtype#511}(`I32`_numtype, i) `CONST`_instr{numtype#513}(`I32`_numtype, j) `CONST`_instr{numtype#515}(`I32`_numtype, `%`_num_{i#43415}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1660, elemidx#39}(x, y)])] +[visit_exp state#2123] +[visit_id state#2123] +[visit_exp `instr*#2238`] +[visit_id instr*#2238] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#67}(a) `CONST`_instr{numtype#511}(`I32`_numtype, i) `CONST`_instr{numtype#513}(`I32`_numtype, j) `CONST`_instr{numtype#515}(`I32`_numtype, `%`_num_{i#43415}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1660, elemidx#39}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#67}(a) `CONST`_instr{numtype#511}(`I32`_numtype, i) `CONST`_instr{numtype#513}(`I32`_numtype, j) `CONST`_instr{numtype#515}(`I32`_numtype, `%`_num_{i#43415}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1660, elemidx#39}(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#67}(a)] +[visit_exp arrayaddr#67] +[visit_id arrayaddr#67] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#511}(`I32`_numtype, i)] +[visit_exp numtype#511] +[visit_id numtype#511] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#513}(`I32`_numtype, j)] +[visit_exp numtype#513] +[visit_id numtype#513] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#515}(`I32`_numtype, `%`_num_{i#43415}(n))] +[visit_exp numtype#515] +[visit_id numtype#515] +[visit_exp (`I32`_numtype, `%`_num_{i#43415}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#43415}(n)] +[visit_exp i#43415] +[visit_id i#43415] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1660, elemidx#39}(x, y)] +[visit_exp typeidx#1660] +[visit_id typeidx#1660] +[visit_exp elemidx#39] +[visit_id elemidx#39] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#69}(a) `CONST`_instr{numtype#517}(`I32`_numtype, i) (ref : ref <: instr) `ARRAY.SET`_instr{typeidx#1662}(x) `REF.ARRAY_ADDR`_instr{arrayaddr#71}(a) `CONST`_instr{numtype#519}(`I32`_numtype, `%`_num_{i#43505}((i!`%`_num_{i#43495}.0 + 1))) `CONST`_instr{numtype#521}(`I32`_numtype, `%`_num_{i#43541}((j!`%`_num_{i#43531}.0 + 1))) `CONST`_instr{numtype#523}(`I32`_numtype, `%`_num_{i#43563}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_ELEM`_instr{typeidx#1664, elemidx#41}(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#69}(a)] +[visit_exp arrayaddr#69] +[visit_id arrayaddr#69] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `CONST`_instr{numtype#517}(`I32`_numtype, i)] +[visit_exp numtype#517] +[visit_id numtype#517] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] not free +[visit_exp (ref : ref <: instr)] +[visit_exp ref] +[visit_id ref] +[visit_exp `ARRAY.SET`_instr{typeidx#1662}(x)] +[visit_exp typeidx#1662] +[visit_id typeidx#1662] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#71}(a)] +[visit_exp arrayaddr#71] +[visit_id arrayaddr#71] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `CONST`_instr{numtype#519}(`I32`_numtype, `%`_num_{i#43505}((i!`%`_num_{i#43495}.0 + 1)))] +[visit_exp numtype#519] +[visit_id numtype#519] +[visit_exp (`I32`_numtype, `%`_num_{i#43505}((i!`%`_num_{i#43495}.0 + 1)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#43505}((i!`%`_num_{i#43495}.0 + 1))] +[visit_exp i#43505] +[visit_id i#43505] +[visit_exp ((i!`%`_num_{i#43495}.0 + 1))] +[visit_exp (i!`%`_num_{i#43495}.0 + 1)] +[visit_exp i!`%`_num_{i#43495}.0] +[visit_exp i!`%`_num_{i#43495}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#43495] +[visit_id i#43495] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#521}(`I32`_numtype, `%`_num_{i#43541}((j!`%`_num_{i#43531}.0 + 1)))] +[visit_exp numtype#521] +[visit_id numtype#521] +[visit_exp (`I32`_numtype, `%`_num_{i#43541}((j!`%`_num_{i#43531}.0 + 1)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#43541}((j!`%`_num_{i#43531}.0 + 1))] +[visit_exp i#43541] +[visit_id i#43541] +[visit_exp ((j!`%`_num_{i#43531}.0 + 1))] +[visit_exp (j!`%`_num_{i#43531}.0 + 1)] +[visit_exp j!`%`_num_{i#43531}.0] +[visit_exp j!`%`_num_{i#43531}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#43531] +[visit_id i#43531] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#523}(`I32`_numtype, `%`_num_{i#43563}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#523] +[visit_id numtype#523] +[visit_exp (`I32`_numtype, `%`_num_{i#43563}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#43563}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#43563] +[visit_id i#43563] +[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1664, elemidx#41}(x, y)] +[visit_exp typeidx#1664] +[visit_id typeidx#1664] +[visit_exp elemidx#41] +[visit_id elemidx#41] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] not free +[visit_exp y] +[visit_id y] not free +[visit_exp (ref = $elem(z, y).`REFS`_eleminst{`ref*#21`}[j!`%`_num_{i#43613}.0])] +[visit_exp ref] +[visit_id ref] not free +[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#21`}[j!`%`_num_{i#43613}.0]] +[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#21`}] +[visit_exp $elem(z, y)] +[visit_exp z] +[visit_id z] not free +[visit_exp y] +[visit_id y] not free +[visit_exp `ref*#21`] +[visit_id ref*#21] +[visit_exp j!`%`_num_{i#43613}.0] +[visit_exp j!`%`_num_{i#43613}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#43613] +[visit_id i#43613] +[check_dims] dataidx#31 heaptype#1447 ht i i#43665 instr*#2250 j n numtype#525 numtype#527 numtype#529 state#2135 typeidx#1666 x y z +[visit_exp `%;%`_config{state#2135, `instr*#2250`}(z, [`REF.NULL`_instr{heaptype#1447}(ht) `CONST`_instr{numtype#525}(`I32`_numtype, i) `CONST`_instr{numtype#527}(`I32`_numtype, j) `CONST`_instr{numtype#529}(`I32`_numtype, `%`_num_{i#43665}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1666, dataidx#31}(x, y)])] +[visit_exp state#2135] +[visit_id state#2135] +[visit_exp `instr*#2250`] +[visit_id instr*#2250] +[visit_exp (z, [`REF.NULL`_instr{heaptype#1447}(ht) `CONST`_instr{numtype#525}(`I32`_numtype, i) `CONST`_instr{numtype#527}(`I32`_numtype, j) `CONST`_instr{numtype#529}(`I32`_numtype, `%`_num_{i#43665}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1666, dataidx#31}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.NULL`_instr{heaptype#1447}(ht) `CONST`_instr{numtype#525}(`I32`_numtype, i) `CONST`_instr{numtype#527}(`I32`_numtype, j) `CONST`_instr{numtype#529}(`I32`_numtype, `%`_num_{i#43665}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1666, dataidx#31}(x, y)]] +[visit_exp `REF.NULL`_instr{heaptype#1447}(ht)] +[visit_exp heaptype#1447] +[visit_id heaptype#1447] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `CONST`_instr{numtype#525}(`I32`_numtype, i)] +[visit_exp numtype#525] +[visit_id numtype#525] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#527}(`I32`_numtype, j)] +[visit_exp numtype#527] +[visit_id numtype#527] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#529}(`I32`_numtype, `%`_num_{i#43665}(n))] +[visit_exp numtype#529] +[visit_id numtype#529] +[visit_exp (`I32`_numtype, `%`_num_{i#43665}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#43665}(n)] +[visit_exp i#43665] +[visit_id i#43665] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1666, dataidx#31}(x, y)] +[visit_exp typeidx#1666] +[visit_id typeidx#1666] +[visit_exp dataidx#31] +[visit_id dataidx#31] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[check_dims] a arrayaddr#73 dataidx#33 fieldval*#14 i i#43745 i#43787 instr*#2262 j n numtype#531 numtype#533 numtype#535 state#2147 typeidx#1668 x y z +[visit_exp `%;%`_config{state#2147, `instr*#2262`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#73}(a) `CONST`_instr{numtype#531}(`I32`_numtype, i) `CONST`_instr{numtype#533}(`I32`_numtype, j) `CONST`_instr{numtype#535}(`I32`_numtype, `%`_num_{i#43745}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1668, dataidx#33}(x, y)])] +[visit_exp state#2147] +[visit_id state#2147] +[visit_exp `instr*#2262`] +[visit_id instr*#2262] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#73}(a) `CONST`_instr{numtype#531}(`I32`_numtype, i) `CONST`_instr{numtype#533}(`I32`_numtype, j) `CONST`_instr{numtype#535}(`I32`_numtype, `%`_num_{i#43745}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1668, dataidx#33}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#73}(a) `CONST`_instr{numtype#531}(`I32`_numtype, i) `CONST`_instr{numtype#533}(`I32`_numtype, j) `CONST`_instr{numtype#535}(`I32`_numtype, `%`_num_{i#43745}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1668, dataidx#33}(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#73}(a)] +[visit_exp arrayaddr#73] +[visit_id arrayaddr#73] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#531}(`I32`_numtype, i)] +[visit_exp numtype#531] +[visit_id numtype#531] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#533}(`I32`_numtype, j)] +[visit_exp numtype#533] +[visit_id numtype#533] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#535}(`I32`_numtype, `%`_num_{i#43745}(n))] +[visit_exp numtype#535] +[visit_id numtype#535] +[visit_exp (`I32`_numtype, `%`_num_{i#43745}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#43745}(n)] +[visit_exp i#43745] +[visit_id i#43745] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1668, dataidx#33}(x, y)] +[visit_exp typeidx#1668] +[visit_id typeidx#1668] +[visit_exp dataidx#33] +[visit_id dataidx#33] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ((i!`%`_num_{i#43787}.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#14`}|)] +[visit_exp (i!`%`_num_{i#43787}.0 + n)] +[visit_exp i!`%`_num_{i#43787}.0] +[visit_exp i!`%`_num_{i#43787}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#43787] +[visit_id i#43787] +[visit_exp n] +[visit_id n] not free +[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#14`}|] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#14`}] +[visit_exp $arrayinst(z)[a]] +[visit_exp $arrayinst(z)] +[visit_exp z] +[visit_id z] not free +[visit_exp a] +[visit_id a] not free +[visit_exp `fieldval*#14`] +[visit_id fieldval*#14] +[check_dims] a arrayaddr#75 byte*#1877 dataidx#35 fieldtype#55 i i#43839 i#43893 instr*#2274 j mut mut?#1193 n numtype#537 numtype#539 numtype#541 state#2159 storagetype#731 typeidx#1670 x y z zt +[visit_exp `%;%`_config{state#2159, `instr*#2274`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#75}(a) `CONST`_instr{numtype#537}(`I32`_numtype, i) `CONST`_instr{numtype#539}(`I32`_numtype, j) `CONST`_instr{numtype#541}(`I32`_numtype, `%`_num_{i#43839}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1670, dataidx#35}(x, y)])] +[visit_exp state#2159] +[visit_id state#2159] +[visit_exp `instr*#2274`] +[visit_id instr*#2274] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#75}(a) `CONST`_instr{numtype#537}(`I32`_numtype, i) `CONST`_instr{numtype#539}(`I32`_numtype, j) `CONST`_instr{numtype#541}(`I32`_numtype, `%`_num_{i#43839}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1670, dataidx#35}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#75}(a) `CONST`_instr{numtype#537}(`I32`_numtype, i) `CONST`_instr{numtype#539}(`I32`_numtype, j) `CONST`_instr{numtype#541}(`I32`_numtype, `%`_num_{i#43839}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1670, dataidx#35}(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#75}(a)] +[visit_exp arrayaddr#75] +[visit_id arrayaddr#75] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#537}(`I32`_numtype, i)] +[visit_exp numtype#537] +[visit_id numtype#537] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#539}(`I32`_numtype, j)] +[visit_exp numtype#539] +[visit_id numtype#539] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#541}(`I32`_numtype, `%`_num_{i#43839}(n))] +[visit_exp numtype#541] +[visit_id numtype#541] +[visit_exp (`I32`_numtype, `%`_num_{i#43839}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#43839}(n)] +[visit_exp i#43839] +[visit_id i#43839] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1670, dataidx#35}(x, y)] +[visit_exp typeidx#1670] +[visit_id typeidx#1670] +[visit_exp dataidx#35] +[visit_id dataidx#35] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#55}(`%%`_fieldtype{`mut?#1193`, storagetype#731}(mut?{mut <- `mut?`}, zt)))] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype{fieldtype#55}(`%%`_fieldtype{`mut?#1193`, storagetype#731}(mut?{mut <- `mut?`}, zt))] +[visit_exp fieldtype#55] +[visit_id fieldtype#55] +[visit_exp (`%%`_fieldtype{`mut?#1193`, storagetype#731}(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype{`mut?#1193`, storagetype#731}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#1193`] +[visit_id mut?#1193] +[visit_exp storagetype#731] +[visit_id storagetype#731] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] +[visit_exp ((j!`%`_num_{i#43893}.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst{`byte*#1877`}|)] +[visit_exp (j!`%`_num_{i#43893}.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp j!`%`_num_{i#43893}.0] +[visit_exp j!`%`_num_{i#43893}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#43893] +[visit_id i#43893] +[visit_exp ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ((n * $zsize(zt)) : nat <:> rat)] +[visit_exp (n * $zsize(zt))] +[visit_exp n] +[visit_id n] not free +[visit_exp $zsize(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp |$data(z, y).`BYTES`_datainst{`byte*#1877`}|] +[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1877`}] +[visit_exp $data(z, y)] +[visit_exp z] +[visit_id z] not free +[visit_exp y] +[visit_id y] not free +[visit_exp `byte*#1877`] +[visit_id byte*#1877] +[check_dims] a arrayaddr#77 dataidx#37 i i#43957 instr*#2286 j n numtype#543 numtype#545 numtype#547 state#2171 typeidx#1672 x y z +[visit_exp `%;%`_config{state#2171, `instr*#2286`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#77}(a) `CONST`_instr{numtype#543}(`I32`_numtype, i) `CONST`_instr{numtype#545}(`I32`_numtype, j) `CONST`_instr{numtype#547}(`I32`_numtype, `%`_num_{i#43957}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1672, dataidx#37}(x, y)])] +[visit_exp state#2171] +[visit_id state#2171] +[visit_exp `instr*#2286`] +[visit_id instr*#2286] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#77}(a) `CONST`_instr{numtype#543}(`I32`_numtype, i) `CONST`_instr{numtype#545}(`I32`_numtype, j) `CONST`_instr{numtype#547}(`I32`_numtype, `%`_num_{i#43957}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1672, dataidx#37}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#77}(a) `CONST`_instr{numtype#543}(`I32`_numtype, i) `CONST`_instr{numtype#545}(`I32`_numtype, j) `CONST`_instr{numtype#547}(`I32`_numtype, `%`_num_{i#43957}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1672, dataidx#37}(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#77}(a)] +[visit_exp arrayaddr#77] +[visit_id arrayaddr#77] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#543}(`I32`_numtype, i)] +[visit_exp numtype#543] +[visit_id numtype#543] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#545}(`I32`_numtype, j)] +[visit_exp numtype#545] +[visit_id numtype#545] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#547}(`I32`_numtype, `%`_num_{i#43957}(n))] +[visit_exp numtype#547] +[visit_id numtype#547] +[visit_exp (`I32`_numtype, `%`_num_{i#43957}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#43957}(n)] +[visit_exp i#43957] +[visit_id i#43957] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1672, dataidx#37}(x, y)] +[visit_exp typeidx#1672] +[visit_id typeidx#1672] +[visit_exp dataidx#37] +[visit_id dataidx#37] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp []] +[visit_exp (n = 0)] +[visit_exp n] +[visit_id n] not free +[visit_exp 0] +[check_dims] a arrayaddr#79 arrayaddr#81 arrayaddr#83 byte*#1878 c dataidx#39 dataidx#41 fieldtype#57 i i#44037 i#44117 i#44127 i#44153 i#44163 i#44185 i#44247 instr*#2298 j mut mut?#1205 n numtype#549 numtype#551 numtype#553 numtype#555 numtype#557 numtype#559 numtype#561 state#2183 storagetype#743 typeidx#1674 typeidx#1676 typeidx#1678 x y z zt +[visit_exp `%;%`_config{state#2183, `instr*#2298`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#79}(a) `CONST`_instr{numtype#549}(`I32`_numtype, i) `CONST`_instr{numtype#551}(`I32`_numtype, j) `CONST`_instr{numtype#553}(`I32`_numtype, `%`_num_{i#44037}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1674, dataidx#39}(x, y)])] +[visit_exp state#2183] +[visit_id state#2183] +[visit_exp `instr*#2298`] +[visit_id instr*#2298] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#79}(a) `CONST`_instr{numtype#549}(`I32`_numtype, i) `CONST`_instr{numtype#551}(`I32`_numtype, j) `CONST`_instr{numtype#553}(`I32`_numtype, `%`_num_{i#44037}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1674, dataidx#39}(x, y)])] +[visit_exp z] +[visit_id z] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#79}(a) `CONST`_instr{numtype#549}(`I32`_numtype, i) `CONST`_instr{numtype#551}(`I32`_numtype, j) `CONST`_instr{numtype#553}(`I32`_numtype, `%`_num_{i#44037}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1674, dataidx#39}(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#79}(a)] +[visit_exp arrayaddr#79] +[visit_id arrayaddr#79] +[visit_exp (a)] +[visit_exp a] +[visit_id a] +[visit_exp `CONST`_instr{numtype#549}(`I32`_numtype, i)] +[visit_exp numtype#549] +[visit_id numtype#549] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `CONST`_instr{numtype#551}(`I32`_numtype, j)] +[visit_exp numtype#551] +[visit_id numtype#551] +[visit_exp (`I32`_numtype, j)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp j] +[visit_id j] +[visit_exp `CONST`_instr{numtype#553}(`I32`_numtype, `%`_num_{i#44037}(n))] +[visit_exp numtype#553] +[visit_id numtype#553] +[visit_exp (`I32`_numtype, `%`_num_{i#44037}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#44037}(n)] +[visit_exp i#44037] +[visit_id i#44037] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1674, dataidx#39}(x, y)] +[visit_exp typeidx#1674] +[visit_id typeidx#1674] +[visit_exp dataidx#39] +[visit_id dataidx#39] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#81}(a) `CONST`_instr{numtype#555}(`I32`_numtype, i) $const($cunpack(zt), $cunpacknum_(zt, c)) `ARRAY.SET`_instr{typeidx#1676}(x) `REF.ARRAY_ADDR`_instr{arrayaddr#83}(a) `CONST`_instr{numtype#557}(`I32`_numtype, `%`_num_{i#44127}((i!`%`_num_{i#44117}.0 + 1))) `CONST`_instr{numtype#559}(`I32`_numtype, `%`_num_{i#44163}((j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))) `CONST`_instr{numtype#561}(`I32`_numtype, `%`_num_{i#44185}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_DATA`_instr{typeidx#1678, dataidx#41}(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#81}(a)] +[visit_exp arrayaddr#81] +[visit_id arrayaddr#81] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `CONST`_instr{numtype#555}(`I32`_numtype, i)] +[visit_exp numtype#555] +[visit_id numtype#555] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] not free +[visit_exp $const($cunpack(zt), $cunpacknum_(zt, c))] +[visit_exp $cunpack(zt)] +[visit_exp zt] +[visit_id zt] +[visit_exp $cunpacknum_(zt, c)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp c] +[visit_id c] +[visit_exp `ARRAY.SET`_instr{typeidx#1676}(x)] +[visit_exp typeidx#1676] +[visit_id typeidx#1676] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#83}(a)] +[visit_exp arrayaddr#83] +[visit_id arrayaddr#83] +[visit_exp (a)] +[visit_exp a] +[visit_id a] not free +[visit_exp `CONST`_instr{numtype#557}(`I32`_numtype, `%`_num_{i#44127}((i!`%`_num_{i#44117}.0 + 1)))] +[visit_exp numtype#557] +[visit_id numtype#557] +[visit_exp (`I32`_numtype, `%`_num_{i#44127}((i!`%`_num_{i#44117}.0 + 1)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#44127}((i!`%`_num_{i#44117}.0 + 1))] +[visit_exp i#44127] +[visit_id i#44127] +[visit_exp ((i!`%`_num_{i#44117}.0 + 1))] +[visit_exp (i!`%`_num_{i#44117}.0 + 1)] +[visit_exp i!`%`_num_{i#44117}.0] +[visit_exp i!`%`_num_{i#44117}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#44117] +[visit_id i#44117] +[visit_exp 1] +[visit_exp `CONST`_instr{numtype#559}(`I32`_numtype, `%`_num_{i#44163}((j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))))] +[visit_exp numtype#559] +[visit_id numtype#559] +[visit_exp (`I32`_numtype, `%`_num_{i#44163}((j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#44163}((j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))] +[visit_exp i#44163] +[visit_id i#44163] +[visit_exp ((j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))] +[visit_exp (j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp j!`%`_num_{i#44153}.0] +[visit_exp j!`%`_num_{i#44153}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#44153] +[visit_id i#44153] +[visit_exp ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (($zsize(zt) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ($zsize(zt) : nat <:> rat)] +[visit_exp $zsize(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_exp `CONST`_instr{numtype#561}(`I32`_numtype, `%`_num_{i#44185}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp numtype#561] +[visit_id numtype#561] +[visit_exp (`I32`_numtype, `%`_num_{i#44185}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#44185}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp i#44185] +[visit_id i#44185] +[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1678, dataidx#41}(x, y)] +[visit_exp typeidx#1678] +[visit_id typeidx#1678] +[visit_exp dataidx#41] +[visit_id dataidx#41] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] not free +[visit_exp y] +[visit_id y] not free +[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#57}(`%%`_fieldtype{`mut?#1205`, storagetype#743}(mut?{mut <- `mut?`}, zt)))] +[visit_exp $type(z, x)] +[visit_exp z] +[visit_id z] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype{fieldtype#57}(`%%`_fieldtype{`mut?#1205`, storagetype#743}(mut?{mut <- `mut?`}, zt))] +[visit_exp fieldtype#57] +[visit_id fieldtype#57] +[visit_exp (`%%`_fieldtype{`mut?#1205`, storagetype#743}(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype{`mut?#1205`, storagetype#743}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#1205`] +[visit_id mut?#1205] +[visit_exp storagetype#743] +[visit_id storagetype#743] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] not free +[visit_exp ($zbytes_(zt, c) = $data(z, y).`BYTES`_datainst{`byte*#1878`}[j!`%`_num_{i#44247}.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp $zbytes_(zt, c)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp c] +[visit_id c] not free +[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1878`}[j!`%`_num_{i#44247}.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1878`}] +[visit_exp $data(z, y)] +[visit_exp z] +[visit_id z] not free +[visit_exp y] +[visit_id y] not free +[visit_exp `byte*#1878`] +[visit_id byte*#1878] +[visit_exp j!`%`_num_{i#44247}.0] +[visit_exp j!`%`_num_{i#44247}] +[visit_exp j] +[visit_id j] not free +[visit_exp i#44247] +[visit_id i#44247] +[visit_exp ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp (($zsize(zt) : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp ($zsize(zt) : nat <:> rat)] +[visit_exp $zsize(zt)] +[visit_exp zt] +[visit_id zt] not free +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[check_dims] heaptype#1449 heaptype#1451 ht +[visit_exp [`REF.NULL`_instr{heaptype#1449}(ht) `EXTERN.CONVERT_ANY`_instr]] +[visit_exp `REF.NULL`_instr{heaptype#1449}(ht)] +[visit_exp heaptype#1449] +[visit_id heaptype#1449] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `EXTERN.CONVERT_ANY`_instr] +[visit_exp ()] +[visit_exp [`REF.NULL`_instr{heaptype#1451}(`EXTERN`_heaptype)]] +[visit_exp `REF.NULL`_instr{heaptype#1451}(`EXTERN`_heaptype)] +[visit_exp heaptype#1451] +[visit_id heaptype#1451] +[visit_exp (`EXTERN`_heaptype)] +[visit_exp `EXTERN`_heaptype] +[visit_exp ()] +[check_dims] addrref addrref#3 +[visit_exp [(addrref : addrref <: instr) `EXTERN.CONVERT_ANY`_instr]] +[visit_exp (addrref : addrref <: instr)] +[visit_exp addrref] +[visit_id addrref] +[visit_exp `EXTERN.CONVERT_ANY`_instr] +[visit_exp ()] +[visit_exp [`REF.EXTERN`_instr{addrref#3}(addrref)]] +[visit_exp `REF.EXTERN`_instr{addrref#3}(addrref)] +[visit_exp addrref#3] +[visit_id addrref#3] +[visit_exp (addrref)] +[visit_exp addrref] +[visit_id addrref] not free +[check_dims] heaptype#1453 heaptype#1455 ht +[visit_exp [`REF.NULL`_instr{heaptype#1453}(ht) `ANY.CONVERT_EXTERN`_instr]] +[visit_exp `REF.NULL`_instr{heaptype#1453}(ht)] +[visit_exp heaptype#1453] +[visit_id heaptype#1453] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp `ANY.CONVERT_EXTERN`_instr] +[visit_exp ()] +[visit_exp [`REF.NULL`_instr{heaptype#1455}(`ANY`_heaptype)]] +[visit_exp `REF.NULL`_instr{heaptype#1455}(`ANY`_heaptype)] +[visit_exp heaptype#1455] +[visit_id heaptype#1455] +[visit_exp (`ANY`_heaptype)] +[visit_exp `ANY`_heaptype] +[visit_exp ()] +[check_dims] addrref addrref#5 +[visit_exp [`REF.EXTERN`_instr{addrref#5}(addrref) `ANY.CONVERT_EXTERN`_instr]] +[visit_exp `REF.EXTERN`_instr{addrref#5}(addrref)] +[visit_exp addrref#5] +[visit_id addrref#5] +[visit_exp (addrref)] +[visit_exp addrref] +[visit_id addrref] +[visit_exp `ANY.CONVERT_EXTERN`_instr] +[visit_exp ()] +[visit_exp [(addrref : addrref <: instr)]] +[visit_exp (addrref : addrref <: instr)] +[visit_exp addrref] +[visit_id addrref] not free +[check_dims] c c_1 nt numtype#563 numtype#565 numtype#567 unop +[visit_exp [`CONST`_instr{numtype#563}(nt, c_1) `UNOP`_instr{numtype#565}(nt, unop)]] +[visit_exp `CONST`_instr{numtype#563}(nt, c_1)] +[visit_exp numtype#563] +[visit_id numtype#563] +[visit_exp (nt, c_1)] +[visit_exp nt] +[visit_id nt] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `UNOP`_instr{numtype#565}(nt, unop)] +[visit_exp numtype#565] +[visit_id numtype#565] +[visit_exp (nt, unop)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp unop] +[visit_id unop] +[visit_exp [`CONST`_instr{numtype#567}(nt, c)]] +[visit_exp `CONST`_instr{numtype#567}(nt, c)] +[visit_exp numtype#567] +[visit_id numtype#567] +[visit_exp (nt, c)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp c] +[visit_id c] +[visit_exp (c <- $unop_(nt, unop, c_1))] +[visit_exp c] +[visit_id c] not free +[visit_exp $unop_(nt, unop, c_1)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp unop] +[visit_id unop] not free +[visit_exp c_1] +[visit_id c_1] not free +[check_dims] c_1 nt numtype#569 numtype#571 unop +[visit_exp [`CONST`_instr{numtype#569}(nt, c_1) `UNOP`_instr{numtype#571}(nt, unop)]] +[visit_exp `CONST`_instr{numtype#569}(nt, c_1)] +[visit_exp numtype#569] +[visit_id numtype#569] +[visit_exp (nt, c_1)] +[visit_exp nt] +[visit_id nt] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `UNOP`_instr{numtype#571}(nt, unop)] +[visit_exp numtype#571] +[visit_id numtype#571] +[visit_exp (nt, unop)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp unop] +[visit_id unop] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ($unop_(nt, unop, c_1) = [])] +[visit_exp $unop_(nt, unop, c_1)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp unop] +[visit_id unop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp []] +[check_dims] binop c c_1 c_2 nt numtype#573 numtype#575 numtype#577 numtype#579 +[visit_exp [`CONST`_instr{numtype#573}(nt, c_1) `CONST`_instr{numtype#575}(nt, c_2) `BINOP`_instr{numtype#577}(nt, binop)]] +[visit_exp `CONST`_instr{numtype#573}(nt, c_1)] +[visit_exp numtype#573] +[visit_id numtype#573] +[visit_exp (nt, c_1)] +[visit_exp nt] +[visit_id nt] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `CONST`_instr{numtype#575}(nt, c_2)] +[visit_exp numtype#575] +[visit_id numtype#575] +[visit_exp (nt, c_2)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp c_2] +[visit_id c_2] +[visit_exp `BINOP`_instr{numtype#577}(nt, binop)] +[visit_exp numtype#577] +[visit_id numtype#577] +[visit_exp (nt, binop)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp binop] +[visit_id binop] +[visit_exp [`CONST`_instr{numtype#579}(nt, c)]] +[visit_exp `CONST`_instr{numtype#579}(nt, c)] +[visit_exp numtype#579] +[visit_id numtype#579] +[visit_exp (nt, c)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp c] +[visit_id c] +[visit_exp (c <- $binop_(nt, binop, c_1, c_2))] +[visit_exp c] +[visit_id c] not free +[visit_exp $binop_(nt, binop, c_1, c_2)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp binop] +[visit_id binop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[check_dims] binop c_1 c_2 nt numtype#581 numtype#583 numtype#585 +[visit_exp [`CONST`_instr{numtype#581}(nt, c_1) `CONST`_instr{numtype#583}(nt, c_2) `BINOP`_instr{numtype#585}(nt, binop)]] +[visit_exp `CONST`_instr{numtype#581}(nt, c_1)] +[visit_exp numtype#581] +[visit_id numtype#581] +[visit_exp (nt, c_1)] +[visit_exp nt] +[visit_id nt] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `CONST`_instr{numtype#583}(nt, c_2)] +[visit_exp numtype#583] +[visit_id numtype#583] +[visit_exp (nt, c_2)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp c_2] +[visit_id c_2] +[visit_exp `BINOP`_instr{numtype#585}(nt, binop)] +[visit_exp numtype#585] +[visit_id numtype#585] +[visit_exp (nt, binop)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp binop] +[visit_id binop] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ($binop_(nt, binop, c_1, c_2) = [])] +[visit_exp $binop_(nt, binop, c_1, c_2)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp binop] +[visit_id binop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp []] +[check_dims] c c_1 nt numtype#587 numtype#589 numtype#591 testop +[visit_exp [`CONST`_instr{numtype#587}(nt, c_1) `TESTOP`_instr{numtype#589}(nt, testop)]] +[visit_exp `CONST`_instr{numtype#587}(nt, c_1)] +[visit_exp numtype#587] +[visit_id numtype#587] +[visit_exp (nt, c_1)] +[visit_exp nt] +[visit_id nt] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `TESTOP`_instr{numtype#589}(nt, testop)] +[visit_exp numtype#589] +[visit_id numtype#589] +[visit_exp (nt, testop)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp testop] +[visit_id testop] +[visit_exp [`CONST`_instr{numtype#591}(`I32`_numtype, c)]] +[visit_exp `CONST`_instr{numtype#591}(`I32`_numtype, c)] +[visit_exp numtype#591] +[visit_id numtype#591] +[visit_exp (`I32`_numtype, c)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c = $testop_(nt, testop, c_1))] +[visit_exp c] +[visit_id c] not free +[visit_exp $testop_(nt, testop, c_1)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp testop] +[visit_id testop] not free +[visit_exp c_1] +[visit_id c_1] not free +[check_dims] c c_1 c_2 nt numtype#593 numtype#595 numtype#597 numtype#599 relop +[visit_exp [`CONST`_instr{numtype#593}(nt, c_1) `CONST`_instr{numtype#595}(nt, c_2) `RELOP`_instr{numtype#597}(nt, relop)]] +[visit_exp `CONST`_instr{numtype#593}(nt, c_1)] +[visit_exp numtype#593] +[visit_id numtype#593] +[visit_exp (nt, c_1)] +[visit_exp nt] +[visit_id nt] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `CONST`_instr{numtype#595}(nt, c_2)] +[visit_exp numtype#595] +[visit_id numtype#595] +[visit_exp (nt, c_2)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp c_2] +[visit_id c_2] +[visit_exp `RELOP`_instr{numtype#597}(nt, relop)] +[visit_exp numtype#597] +[visit_id numtype#597] +[visit_exp (nt, relop)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp relop] +[visit_id relop] +[visit_exp [`CONST`_instr{numtype#599}(`I32`_numtype, c)]] +[visit_exp `CONST`_instr{numtype#599}(`I32`_numtype, c)] +[visit_exp numtype#599] +[visit_id numtype#599] +[visit_exp (`I32`_numtype, c)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c = $relop_(nt, relop, c_1, c_2))] +[visit_exp c] +[visit_id c] not free +[visit_exp $relop_(nt, relop, c_1, c_2)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp relop] +[visit_id relop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[check_dims] c c_1 cvtop nt_1 nt_2 numtype#601 numtype#603 numtype_1#5 numtype_2#5 +[visit_exp [`CONST`_instr{numtype#601}(nt_1, c_1) `CVTOP`_instr{numtype_1#5, numtype_2#5}(nt_2, nt_1, cvtop)]] +[visit_exp `CONST`_instr{numtype#601}(nt_1, c_1)] +[visit_exp numtype#601] +[visit_id numtype#601] +[visit_exp (nt_1, c_1)] +[visit_exp nt_1] +[visit_id nt_1] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `CVTOP`_instr{numtype_1#5, numtype_2#5}(nt_2, nt_1, cvtop)] +[visit_exp numtype_1#5] +[visit_id numtype_1#5] +[visit_exp numtype_2#5] +[visit_id numtype_2#5] +[visit_exp (nt_2, nt_1, cvtop)] +[visit_exp nt_2] +[visit_id nt_2] +[visit_exp nt_1] +[visit_id nt_1] not free +[visit_exp cvtop] +[visit_id cvtop] +[visit_exp [`CONST`_instr{numtype#603}(nt_2, c)]] +[visit_exp `CONST`_instr{numtype#603}(nt_2, c)] +[visit_exp numtype#603] +[visit_id numtype#603] +[visit_exp (nt_2, c)] +[visit_exp nt_2] +[visit_id nt_2] not free +[visit_exp c] +[visit_id c] +[visit_exp (c <- $cvtop__(nt_1, nt_2, cvtop, c_1))] +[visit_exp c] +[visit_id c] not free +[visit_exp $cvtop__(nt_1, nt_2, cvtop, c_1)] +[visit_exp nt_1] +[visit_id nt_1] not free +[visit_exp nt_2] +[visit_id nt_2] not free +[visit_exp cvtop] +[visit_id cvtop] not free +[visit_exp c_1] +[visit_id c_1] not free +[check_dims] c_1 cvtop nt_1 nt_2 numtype#605 numtype_1#7 numtype_2#7 +[visit_exp [`CONST`_instr{numtype#605}(nt_1, c_1) `CVTOP`_instr{numtype_1#7, numtype_2#7}(nt_2, nt_1, cvtop)]] +[visit_exp `CONST`_instr{numtype#605}(nt_1, c_1)] +[visit_exp numtype#605] +[visit_id numtype#605] +[visit_exp (nt_1, c_1)] +[visit_exp nt_1] +[visit_id nt_1] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `CVTOP`_instr{numtype_1#7, numtype_2#7}(nt_2, nt_1, cvtop)] +[visit_exp numtype_1#7] +[visit_id numtype_1#7] +[visit_exp numtype_2#7] +[visit_id numtype_2#7] +[visit_exp (nt_2, nt_1, cvtop)] +[visit_exp nt_2] +[visit_id nt_2] +[visit_exp nt_1] +[visit_id nt_1] not free +[visit_exp cvtop] +[visit_id cvtop] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ($cvtop__(nt_1, nt_2, cvtop, c_1) = [])] +[visit_exp $cvtop__(nt_1, nt_2, cvtop, c_1)] +[visit_exp nt_1] +[visit_id nt_1] not free +[visit_exp nt_2] +[visit_id nt_2] not free +[visit_exp cvtop] +[visit_id cvtop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp []] +[check_dims] c c_1 vectype#104 vectype#106 vectype#108 vvunop vvunop#5 +[visit_exp [`VCONST`_instr{vectype#104}(`V128`_vectype, c_1) `VVUNOP`_instr{vectype#106, vvunop#5}(`V128`_vectype, vvunop)]] +[visit_exp `VCONST`_instr{vectype#104}(`V128`_vectype, c_1)] +[visit_exp vectype#104] +[visit_id vectype#104] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VVUNOP`_instr{vectype#106, vvunop#5}(`V128`_vectype, vvunop)] +[visit_exp vectype#106] +[visit_id vectype#106] +[visit_exp vvunop#5] +[visit_id vvunop#5] +[visit_exp (`V128`_vectype, vvunop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp vvunop] +[visit_id vvunop] +[visit_exp [`VCONST`_instr{vectype#108}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#108}(`V128`_vectype, c)] +[visit_exp vectype#108] +[visit_id vectype#108] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c <- $vvunop_(`V128`_vectype, vvunop, c_1))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vvunop_(`V128`_vectype, vvunop, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp vvunop] +[visit_id vvunop] not free +[visit_exp c_1] +[visit_id c_1] not free +[check_dims] c c_1 c_2 vectype#110 vectype#112 vectype#114 vectype#116 vvbinop vvbinop#5 +[visit_exp [`VCONST`_instr{vectype#110}(`V128`_vectype, c_1) `VCONST`_instr{vectype#112}(`V128`_vectype, c_2) `VVBINOP`_instr{vectype#114, vvbinop#5}(`V128`_vectype, vvbinop)]] +[visit_exp `VCONST`_instr{vectype#110}(`V128`_vectype, c_1)] +[visit_exp vectype#110] +[visit_id vectype#110] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VCONST`_instr{vectype#112}(`V128`_vectype, c_2)] +[visit_exp vectype#112] +[visit_id vectype#112] +[visit_exp (`V128`_vectype, c_2)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_2] +[visit_id c_2] +[visit_exp `VVBINOP`_instr{vectype#114, vvbinop#5}(`V128`_vectype, vvbinop)] +[visit_exp vectype#114] +[visit_id vectype#114] +[visit_exp vvbinop#5] +[visit_id vvbinop#5] +[visit_exp (`V128`_vectype, vvbinop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp vvbinop] +[visit_id vvbinop] +[visit_exp [`VCONST`_instr{vectype#116}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#116}(`V128`_vectype, c)] +[visit_exp vectype#116] +[visit_id vectype#116] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c <- $vvbinop_(`V128`_vectype, vvbinop, c_1, c_2))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vvbinop_(`V128`_vectype, vvbinop, c_1, c_2)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp vvbinop] +[visit_id vvbinop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[check_dims] c c_1 c_2 c_3 vectype#118 vectype#120 vectype#122 vectype#124 vectype#126 vvternop vvternop#5 +[visit_exp [`VCONST`_instr{vectype#118}(`V128`_vectype, c_1) `VCONST`_instr{vectype#120}(`V128`_vectype, c_2) `VCONST`_instr{vectype#122}(`V128`_vectype, c_3) `VVTERNOP`_instr{vectype#124, vvternop#5}(`V128`_vectype, vvternop)]] +[visit_exp `VCONST`_instr{vectype#118}(`V128`_vectype, c_1)] +[visit_exp vectype#118] +[visit_id vectype#118] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VCONST`_instr{vectype#120}(`V128`_vectype, c_2)] +[visit_exp vectype#120] +[visit_id vectype#120] +[visit_exp (`V128`_vectype, c_2)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_2] +[visit_id c_2] +[visit_exp `VCONST`_instr{vectype#122}(`V128`_vectype, c_3)] +[visit_exp vectype#122] +[visit_id vectype#122] +[visit_exp (`V128`_vectype, c_3)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_3] +[visit_id c_3] +[visit_exp `VVTERNOP`_instr{vectype#124, vvternop#5}(`V128`_vectype, vvternop)] +[visit_exp vectype#124] +[visit_id vectype#124] +[visit_exp vvternop#5] +[visit_id vvternop#5] +[visit_exp (`V128`_vectype, vvternop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp vvternop] +[visit_id vvternop] +[visit_exp [`VCONST`_instr{vectype#126}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#126}(`V128`_vectype, c)] +[visit_exp vectype#126] +[visit_id vectype#126] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c <- $vvternop_(`V128`_vectype, vvternop, c_1, c_2, c_3))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vvternop_(`V128`_vectype, vvternop, c_1, c_2, c_3)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp vvternop] +[visit_id vvternop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp c_3] +[visit_id c_3] not free +[check_dims] c c_1 numtype#607 vectype#128 vectype#130 vvtestop#5 +[visit_exp [`VCONST`_instr{vectype#128}(`V128`_vectype, c_1) `VVTESTOP`_instr{vectype#130, vvtestop#5}(`V128`_vectype, `ANY_TRUE`_vvtestop)]] +[visit_exp `VCONST`_instr{vectype#128}(`V128`_vectype, c_1)] +[visit_exp vectype#128] +[visit_id vectype#128] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VVTESTOP`_instr{vectype#130, vvtestop#5}(`V128`_vectype, `ANY_TRUE`_vvtestop)] +[visit_exp vectype#130] +[visit_id vectype#130] +[visit_exp vvtestop#5] +[visit_id vvtestop#5] +[visit_exp (`V128`_vectype, `ANY_TRUE`_vvtestop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `ANY_TRUE`_vvtestop] +[visit_exp ()] +[visit_exp [`CONST`_instr{numtype#607}(`I32`_numtype, c)]] +[visit_exp `CONST`_instr{numtype#607}(`I32`_numtype, c)] +[visit_exp numtype#607] +[visit_id numtype#607] +[visit_exp (`I32`_numtype, c)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c = $inez_($vsize(`V128`_vectype), c_1))] +[visit_exp c] +[visit_id c] not free +[visit_exp $inez_($vsize(`V128`_vectype), c_1)] +[visit_exp $vsize(`V128`_vectype)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] not free +[check_dims] c c_1 sh shape#681 vectype#132 vectype#134 vunop +[visit_exp [`VCONST`_instr{vectype#132}(`V128`_vectype, c_1) `VUNOP`_instr{shape#681}(sh, vunop)]] +[visit_exp `VCONST`_instr{vectype#132}(`V128`_vectype, c_1)] +[visit_exp vectype#132] +[visit_id vectype#132] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VUNOP`_instr{shape#681}(sh, vunop)] +[visit_exp shape#681] +[visit_id shape#681] +[visit_exp (sh, vunop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vunop] +[visit_id vunop] +[visit_exp [`VCONST`_instr{vectype#134}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#134}(`V128`_vectype, c)] +[visit_exp vectype#134] +[visit_id vectype#134] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c <- $vunop_(sh, vunop, c_1))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vunop_(sh, vunop, c_1)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp vunop] +[visit_id vunop] not free +[visit_exp c_1] +[visit_id c_1] not free +[check_dims] c_1 sh shape#683 vectype#136 vunop +[visit_exp [`VCONST`_instr{vectype#136}(`V128`_vectype, c_1) `VUNOP`_instr{shape#683}(sh, vunop)]] +[visit_exp `VCONST`_instr{vectype#136}(`V128`_vectype, c_1)] +[visit_exp vectype#136] +[visit_id vectype#136] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VUNOP`_instr{shape#683}(sh, vunop)] +[visit_exp shape#683] +[visit_id shape#683] +[visit_exp (sh, vunop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vunop] +[visit_id vunop] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ($vunop_(sh, vunop, c_1) = [])] +[visit_exp $vunop_(sh, vunop, c_1)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp vunop] +[visit_id vunop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp []] +[check_dims] c c_1 c_2 sh shape#685 vbinop vectype#138 vectype#140 vectype#142 +[visit_exp [`VCONST`_instr{vectype#138}(`V128`_vectype, c_1) `VCONST`_instr{vectype#140}(`V128`_vectype, c_2) `VBINOP`_instr{shape#685}(sh, vbinop)]] +[visit_exp `VCONST`_instr{vectype#138}(`V128`_vectype, c_1)] +[visit_exp vectype#138] +[visit_id vectype#138] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VCONST`_instr{vectype#140}(`V128`_vectype, c_2)] +[visit_exp vectype#140] +[visit_id vectype#140] +[visit_exp (`V128`_vectype, c_2)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_2] +[visit_id c_2] +[visit_exp `VBINOP`_instr{shape#685}(sh, vbinop)] +[visit_exp shape#685] +[visit_id shape#685] +[visit_exp (sh, vbinop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vbinop] +[visit_id vbinop] +[visit_exp [`VCONST`_instr{vectype#142}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#142}(`V128`_vectype, c)] +[visit_exp vectype#142] +[visit_id vectype#142] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c <- $vbinop_(sh, vbinop, c_1, c_2))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vbinop_(sh, vbinop, c_1, c_2)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp vbinop] +[visit_id vbinop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[check_dims] c_1 c_2 sh shape#687 vbinop vectype#144 vectype#146 +[visit_exp [`VCONST`_instr{vectype#144}(`V128`_vectype, c_1) `VCONST`_instr{vectype#146}(`V128`_vectype, c_2) `VBINOP`_instr{shape#687}(sh, vbinop)]] +[visit_exp `VCONST`_instr{vectype#144}(`V128`_vectype, c_1)] +[visit_exp vectype#144] +[visit_id vectype#144] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VCONST`_instr{vectype#146}(`V128`_vectype, c_2)] +[visit_exp vectype#146] +[visit_id vectype#146] +[visit_exp (`V128`_vectype, c_2)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_2] +[visit_id c_2] +[visit_exp `VBINOP`_instr{shape#687}(sh, vbinop)] +[visit_exp shape#687] +[visit_id shape#687] +[visit_exp (sh, vbinop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vbinop] +[visit_id vbinop] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ($vbinop_(sh, vbinop, c_1, c_2) = [])] +[visit_exp $vbinop_(sh, vbinop, c_1, c_2)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp vbinop] +[visit_id vbinop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp []] +[check_dims] c c_1 c_2 c_3 sh shape#689 vectype#148 vectype#150 vectype#152 vectype#154 vternop +[visit_exp [`VCONST`_instr{vectype#148}(`V128`_vectype, c_1) `VCONST`_instr{vectype#150}(`V128`_vectype, c_2) `VCONST`_instr{vectype#152}(`V128`_vectype, c_3) `VTERNOP`_instr{shape#689}(sh, vternop)]] +[visit_exp `VCONST`_instr{vectype#148}(`V128`_vectype, c_1)] +[visit_exp vectype#148] +[visit_id vectype#148] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VCONST`_instr{vectype#150}(`V128`_vectype, c_2)] +[visit_exp vectype#150] +[visit_id vectype#150] +[visit_exp (`V128`_vectype, c_2)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_2] +[visit_id c_2] +[visit_exp `VCONST`_instr{vectype#152}(`V128`_vectype, c_3)] +[visit_exp vectype#152] +[visit_id vectype#152] +[visit_exp (`V128`_vectype, c_3)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_3] +[visit_id c_3] +[visit_exp `VTERNOP`_instr{shape#689}(sh, vternop)] +[visit_exp shape#689] +[visit_id shape#689] +[visit_exp (sh, vternop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vternop] +[visit_id vternop] +[visit_exp [`VCONST`_instr{vectype#154}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#154}(`V128`_vectype, c)] +[visit_exp vectype#154] +[visit_id vectype#154] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c <- $vternop_(sh, vternop, c_1, c_2, c_3))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vternop_(sh, vternop, c_1, c_2, c_3)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp vternop] +[visit_id vternop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp c_3] +[visit_id c_3] not free +[check_dims] c_1 c_2 c_3 sh shape#691 vectype#156 vectype#158 vectype#160 vternop +[visit_exp [`VCONST`_instr{vectype#156}(`V128`_vectype, c_1) `VCONST`_instr{vectype#158}(`V128`_vectype, c_2) `VCONST`_instr{vectype#160}(`V128`_vectype, c_3) `VTERNOP`_instr{shape#691}(sh, vternop)]] +[visit_exp `VCONST`_instr{vectype#156}(`V128`_vectype, c_1)] +[visit_exp vectype#156] +[visit_id vectype#156] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VCONST`_instr{vectype#158}(`V128`_vectype, c_2)] +[visit_exp vectype#158] +[visit_id vectype#158] +[visit_exp (`V128`_vectype, c_2)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_2] +[visit_id c_2] +[visit_exp `VCONST`_instr{vectype#160}(`V128`_vectype, c_3)] +[visit_exp vectype#160] +[visit_id vectype#160] +[visit_exp (`V128`_vectype, c_3)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_3] +[visit_id c_3] +[visit_exp `VTERNOP`_instr{shape#691}(sh, vternop)] +[visit_exp shape#691] +[visit_id shape#691] +[visit_exp (sh, vternop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vternop] +[visit_id vternop] +[visit_exp [`TRAP`_instr]] +[visit_exp `TRAP`_instr] +[visit_exp ()] +[visit_exp ($vternop_(sh, vternop, c_1, c_2, c_3) = [])] +[visit_exp $vternop_(sh, vternop, c_1, c_2, c_3)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp vternop] +[visit_id vternop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp c_3] +[visit_id c_3] not free +[visit_exp []] +[check_dims] Jnn M c c_1 dim#7525 dim#7537 i i#45296 i#45303 i#45322 i#45329 i#45428 i#45438 lanetype#7525 lanetype#7537 numtype#609 shape#693 vectype#162 +[visit_exp [`VCONST`_instr{vectype#162}(`V128`_vectype, c_1) `VTESTOP`_instr{shape#693}(`%X%`_shape{lanetype#7525, dim#7525, i#45296}((Jnn : Jnn <: lanetype), `%`_dim{i#45303}(M)), `ALL_TRUE`_vtestop_)]] +[visit_exp `VCONST`_instr{vectype#162}(`V128`_vectype, c_1)] +[visit_exp vectype#162] +[visit_id vectype#162] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VTESTOP`_instr{shape#693}(`%X%`_shape{lanetype#7525, dim#7525, i#45296}((Jnn : Jnn <: lanetype), `%`_dim{i#45303}(M)), `ALL_TRUE`_vtestop_)] +[visit_exp shape#693] +[visit_id shape#693] +[visit_exp (`%X%`_shape{lanetype#7525, dim#7525, i#45296}((Jnn : Jnn <: lanetype), `%`_dim{i#45303}(M)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape{lanetype#7525, dim#7525, i#45296}((Jnn : Jnn <: lanetype), `%`_dim{i#45303}(M))] +[visit_exp lanetype#7525] +[visit_id lanetype#7525] +[visit_exp dim#7525] +[visit_id dim#7525] +[visit_exp i#45296] +[visit_id i#45296] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#45303}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] +[visit_exp `%`_dim{i#45303}(M)] +[visit_exp i#45303] +[visit_id i#45303] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp `ALL_TRUE`_vtestop_] +[visit_exp ()] +[visit_exp [`CONST`_instr{numtype#609}(`I32`_numtype, c)]] +[visit_exp `CONST`_instr{numtype#609}(`I32`_numtype, c)] +[visit_exp numtype#609] +[visit_id numtype#609] +[visit_exp (`I32`_numtype, c)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (i*{i <- `i*`} = $lanes_(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M)), c_1))] +[visit_exp i*{i <- `i*`}] +[scope_enter i] +[visit_exp i] +[visit_id i] not free +[visit_id i] not free +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] no dims +[visit_id i*] +[visit_exp $lanes_(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M)), c_1)] +[visit_exp `%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))] +[visit_exp lanetype#7537] +[visit_id lanetype#7537] +[visit_exp dim#7537] +[visit_id dim#7537] +[visit_exp i#45322] +[visit_id i#45322] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))] +[visit_exp (Jnn : Jnn <: lanetype)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp `%`_dim{i#45329}(M)] +[visit_exp i#45329] +[visit_id i#45329] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp (c!`%`_num_{i#45438}.0 = $prod($inez_($jsizenn(Jnn), i)!`%`_u32{i#45428}.0*{i <- `i*`, i#45428 <- `i#45428*`}))] +[visit_exp c!`%`_num_{i#45438}.0] +[visit_exp c!`%`_num_{i#45438}] +[visit_exp c] +[visit_id c] not free +[visit_exp i#45438] +[visit_id i#45438] +[visit_exp $prod($inez_($jsizenn(Jnn), i)!`%`_u32{i#45428}.0*{i <- `i*`, i#45428 <- `i#45428*`})] +[visit_exp $inez_($jsizenn(Jnn), i)!`%`_u32{i#45428}.0*{i <- `i*`, i#45428 <- `i#45428*`}] +[scope_enter i] +[scope_enter i#45428] +[visit_exp $inez_($jsizenn(Jnn), i)!`%`_u32{i#45428}.0] +[visit_exp $inez_($jsizenn(Jnn), i)!`%`_u32{i#45428}] +[visit_exp $inez_($jsizenn(Jnn), i)] +[visit_exp $jsizenn(Jnn)] +[visit_exp Jnn] +[visit_id Jnn] not free +[visit_exp i] +[visit_id i] not free +[visit_exp i#45428] +[visit_id i#45428] not free +[visit_id i] not free +[visit_id i#45428] not free +[scope_exit i#45428] +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] not free +[visit_id i*] no dims +[visit_exp `i#45428*`] +[visit_id i#45428*] no dims +[visit_id i#45428*] +[check_dims] c c_1 c_2 sh shape#695 vectype#164 vectype#166 vectype#168 vrelop +[visit_exp [`VCONST`_instr{vectype#164}(`V128`_vectype, c_1) `VCONST`_instr{vectype#166}(`V128`_vectype, c_2) `VRELOP`_instr{shape#695}(sh, vrelop)]] +[visit_exp `VCONST`_instr{vectype#164}(`V128`_vectype, c_1)] +[visit_exp vectype#164] +[visit_id vectype#164] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VCONST`_instr{vectype#166}(`V128`_vectype, c_2)] +[visit_exp vectype#166] +[visit_id vectype#166] +[visit_exp (`V128`_vectype, c_2)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_2] +[visit_id c_2] +[visit_exp `VRELOP`_instr{shape#695}(sh, vrelop)] +[visit_exp shape#695] +[visit_id shape#695] +[visit_exp (sh, vrelop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vrelop] +[visit_id vrelop] +[visit_exp [`VCONST`_instr{vectype#168}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#168}(`V128`_vectype, c)] +[visit_exp vectype#168] +[visit_id vectype#168] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c = $vrelop_(sh, vrelop, c_1, c_2))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vrelop_(sh, vrelop, c_1, c_2)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp vrelop] +[visit_id vrelop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[check_dims] c c_1 i ishape#9 numtype#611 sh vectype#170 vectype#172 vshiftop +[visit_exp [`VCONST`_instr{vectype#170}(`V128`_vectype, c_1) `CONST`_instr{numtype#611}(`I32`_numtype, i) `VSHIFTOP`_instr{ishape#9}(sh, vshiftop)]] +[visit_exp `VCONST`_instr{vectype#170}(`V128`_vectype, c_1)] +[visit_exp vectype#170] +[visit_id vectype#170] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `CONST`_instr{numtype#611}(`I32`_numtype, i)] +[visit_exp numtype#611] +[visit_id numtype#611] +[visit_exp (`I32`_numtype, i)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp `VSHIFTOP`_instr{ishape#9}(sh, vshiftop)] +[visit_exp ishape#9] +[visit_id ishape#9] +[visit_exp (sh, vshiftop)] +[visit_exp sh] +[visit_id sh] +[visit_exp vshiftop] +[visit_id vshiftop] +[visit_exp [`VCONST`_instr{vectype#172}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#172}(`V128`_vectype, c)] +[visit_exp vectype#172] +[visit_id vectype#172] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c = $vshiftop_(sh, vshiftop, c_1, i))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vshiftop_(sh, vshiftop, c_1, i)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp vshiftop] +[visit_id vshiftop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp i] +[visit_id i] not free +[check_dims] c c_1 ishape#11 numtype#613 sh vectype#174 +[visit_exp [`VCONST`_instr{vectype#174}(`V128`_vectype, c_1) `VBITMASK`_instr{ishape#11}(sh)]] +[visit_exp `VCONST`_instr{vectype#174}(`V128`_vectype, c_1)] +[visit_exp vectype#174] +[visit_id vectype#174] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VBITMASK`_instr{ishape#11}(sh)] +[visit_exp ishape#11] +[visit_id ishape#11] +[visit_exp (sh)] +[visit_exp sh] +[visit_id sh] +[visit_exp [`CONST`_instr{numtype#613}(`I32`_numtype, c)]] +[visit_exp `CONST`_instr{numtype#613}(`I32`_numtype, c)] +[visit_exp numtype#613] +[visit_id numtype#613] +[visit_exp (`I32`_numtype, c)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c = $vbitmaskop_(sh, c_1))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vbitmaskop_(sh, c_1)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp c_1] +[visit_id c_1] not free +[check_dims] bshape#9 c c_1 c_2 sh swizzlop vectype#176 vectype#178 vectype#180 +[visit_exp [`VCONST`_instr{vectype#176}(`V128`_vectype, c_1) `VCONST`_instr{vectype#178}(`V128`_vectype, c_2) `VSWIZZLOP`_instr{bshape#9}(sh, swizzlop)]] +[visit_exp `VCONST`_instr{vectype#176}(`V128`_vectype, c_1)] +[visit_exp vectype#176] +[visit_id vectype#176] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VCONST`_instr{vectype#178}(`V128`_vectype, c_2)] +[visit_exp vectype#178] +[visit_id vectype#178] +[visit_exp (`V128`_vectype, c_2)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_2] +[visit_id c_2] +[visit_exp `VSWIZZLOP`_instr{bshape#9}(sh, swizzlop)] +[visit_exp bshape#9] +[visit_id bshape#9] +[visit_exp (sh, swizzlop)] +[visit_exp sh] +[visit_id sh] +[visit_exp swizzlop] +[visit_id swizzlop] +[visit_exp [`VCONST`_instr{vectype#180}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#180}(`V128`_vectype, c)] +[visit_exp vectype#180] +[visit_id vectype#180] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c = $vswizzlop_(sh, swizzlop, c_1, c_2))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vswizzlop_(sh, swizzlop, c_1, c_2)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp swizzlop] +[visit_id swizzlop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[check_dims] bshape#11 c c_1 c_2 i i#45740 laneidx*#5 sh shape#733 vectype#182 vectype#184 vectype#186 +[visit_exp [`VCONST`_instr{vectype#182}(`V128`_vectype, c_1) `VCONST`_instr{vectype#184}(`V128`_vectype, c_2) `VSHUFFLE`_instr{bshape#11, `laneidx*#5`, i#45740, shape#733}(sh, i*{i <- `i*`})]] +[visit_exp `VCONST`_instr{vectype#182}(`V128`_vectype, c_1)] +[visit_exp vectype#182] +[visit_id vectype#182] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VCONST`_instr{vectype#184}(`V128`_vectype, c_2)] +[visit_exp vectype#184] +[visit_id vectype#184] +[visit_exp (`V128`_vectype, c_2)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_2] +[visit_id c_2] +[visit_exp `VSHUFFLE`_instr{bshape#11, `laneidx*#5`, i#45740, shape#733}(sh, i*{i <- `i*`})] +[visit_exp bshape#11] +[visit_id bshape#11] +[visit_exp `laneidx*#5`] +[visit_id laneidx*#5] +[visit_exp i#45740] +[visit_id i#45740] +[visit_exp shape#733] +[visit_id shape#733] +[visit_exp (sh, i*{i <- `i*`})] +[visit_exp sh] +[visit_id sh] +[visit_exp i*{i <- `i*`}] +[scope_enter i] +[visit_exp i] +[visit_id i] not free +[visit_id i] not free +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] no dims +[visit_id i*] +[visit_exp [`VCONST`_instr{vectype#186}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#186}(`V128`_vectype, c)] +[visit_exp vectype#186] +[visit_id vectype#186] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c = $vshufflop_(sh, i*{i <- `i*`}, c_1, c_2))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vshufflop_(sh, i*{i <- `i*`}, c_1, c_2)] +[visit_exp sh] +[visit_id sh] not free +[visit_exp i*{i <- `i*`}] +[scope_enter i] +[visit_exp i] +[visit_id i] not free +[visit_id i] not free +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] not free +[visit_id i*] no dims +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[check_dims] Lnn M c c_1 dim#7575 dim#7587 i#45836 i#45843 i#45862 i#45869 lanetype#7575 lanetype#7587 numtype#615 shape#746 vectype#188 +[visit_exp [`CONST`_instr{numtype#615}($lunpack(Lnn), c_1) `VSPLAT`_instr{shape#746}(`%X%`_shape{lanetype#7575, dim#7575, i#45836}(Lnn, `%`_dim{i#45843}(M)))]] +[visit_exp `CONST`_instr{numtype#615}($lunpack(Lnn), c_1)] +[visit_exp numtype#615] +[visit_id numtype#615] +[visit_exp ($lunpack(Lnn), c_1)] +[visit_exp $lunpack(Lnn)] +[visit_exp Lnn] +[visit_id Lnn] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VSPLAT`_instr{shape#746}(`%X%`_shape{lanetype#7575, dim#7575, i#45836}(Lnn, `%`_dim{i#45843}(M)))] +[visit_exp shape#746] +[visit_id shape#746] +[visit_exp (`%X%`_shape{lanetype#7575, dim#7575, i#45836}(Lnn, `%`_dim{i#45843}(M)))] +[visit_exp `%X%`_shape{lanetype#7575, dim#7575, i#45836}(Lnn, `%`_dim{i#45843}(M))] +[visit_exp lanetype#7575] +[visit_id lanetype#7575] +[visit_exp dim#7575] +[visit_id dim#7575] +[visit_exp i#45836] +[visit_id i#45836] +[visit_exp (Lnn, `%`_dim{i#45843}(M))] +[visit_exp Lnn] +[visit_id Lnn] not free +[visit_exp `%`_dim{i#45843}(M)] +[visit_exp i#45843] +[visit_id i#45843] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp [`VCONST`_instr{vectype#188}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#188}(`V128`_vectype, c)] +[visit_exp vectype#188] +[visit_id vectype#188] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c = $inv_lanes_(`%X%`_shape{lanetype#7587, dim#7587, i#45862}(Lnn, `%`_dim{i#45869}(M)), $lpacknum_(Lnn, c_1)^M{}))] +[visit_exp c] +[visit_id c] not free +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#7587, dim#7587, i#45862}(Lnn, `%`_dim{i#45869}(M)), $lpacknum_(Lnn, c_1)^M{})] +[visit_exp `%X%`_shape{lanetype#7587, dim#7587, i#45862}(Lnn, `%`_dim{i#45869}(M))] +[visit_exp lanetype#7587] +[visit_id lanetype#7587] +[visit_exp dim#7587] +[visit_id dim#7587] +[visit_exp i#45862] +[visit_id i#45862] +[visit_exp (Lnn, `%`_dim{i#45869}(M))] +[visit_exp Lnn] +[visit_id Lnn] not free +[visit_exp `%`_dim{i#45869}(M)] +[visit_exp i#45869] +[visit_id i#45869] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp $lpacknum_(Lnn, c_1)^M{}] +[visit_exp $lpacknum_(Lnn, c_1)] +[visit_exp Lnn] +[visit_id Lnn] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp M] +[visit_id M] not free +[check_dims] M c_1 c_2 dim#7610 dim#7622 i i#45931 i#45938 i#45957 i#45964 i#45984 laneidx#25 lanetype#7610 lanetype#7622 nt numtype#617 shape#748 sx?#27 vectype#190 +[visit_exp [`VCONST`_instr{vectype#190}(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr{shape#748, `sx?#27`, laneidx#25}(`%X%`_shape{lanetype#7610, dim#7610, i#45931}((nt : numtype <: lanetype), `%`_dim{i#45938}(M)), ?(), i)]] +[visit_exp `VCONST`_instr{vectype#190}(`V128`_vectype, c_1)] +[visit_exp vectype#190] +[visit_id vectype#190] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VEXTRACT_LANE`_instr{shape#748, `sx?#27`, laneidx#25}(`%X%`_shape{lanetype#7610, dim#7610, i#45931}((nt : numtype <: lanetype), `%`_dim{i#45938}(M)), ?(), i)] +[visit_exp shape#748] +[visit_id shape#748] +[visit_exp `sx?#27`] +[visit_id sx?#27] +[visit_exp laneidx#25] +[visit_id laneidx#25] +[visit_exp (`%X%`_shape{lanetype#7610, dim#7610, i#45931}((nt : numtype <: lanetype), `%`_dim{i#45938}(M)), ?(), i)] +[visit_exp `%X%`_shape{lanetype#7610, dim#7610, i#45931}((nt : numtype <: lanetype), `%`_dim{i#45938}(M))] +[visit_exp lanetype#7610] +[visit_id lanetype#7610] +[visit_exp dim#7610] +[visit_id dim#7610] +[visit_exp i#45931] +[visit_id i#45931] +[visit_exp ((nt : numtype <: lanetype), `%`_dim{i#45938}(M))] +[visit_exp (nt : numtype <: lanetype)] +[visit_exp nt] +[visit_id nt] +[visit_exp `%`_dim{i#45938}(M)] +[visit_exp i#45938] +[visit_id i#45938] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp ?()] +[visit_exp i] +[visit_id i] +[visit_exp [`CONST`_instr{numtype#617}(nt, c_2)]] +[visit_exp `CONST`_instr{numtype#617}(nt, c_2)] +[visit_exp numtype#617] +[visit_id numtype#617] +[visit_exp (nt, c_2)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp c_2] +[visit_id c_2] +[visit_exp (c_2 = $lanes_(`%X%`_shape{lanetype#7622, dim#7622, i#45957}((nt : numtype <: lanetype), `%`_dim{i#45964}(M)), c_1)[i!`%`_laneidx{i#45984}.0])] +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp $lanes_(`%X%`_shape{lanetype#7622, dim#7622, i#45957}((nt : numtype <: lanetype), `%`_dim{i#45964}(M)), c_1)[i!`%`_laneidx{i#45984}.0]] +[visit_exp $lanes_(`%X%`_shape{lanetype#7622, dim#7622, i#45957}((nt : numtype <: lanetype), `%`_dim{i#45964}(M)), c_1)] +[visit_exp `%X%`_shape{lanetype#7622, dim#7622, i#45957}((nt : numtype <: lanetype), `%`_dim{i#45964}(M))] +[visit_exp lanetype#7622] +[visit_id lanetype#7622] +[visit_exp dim#7622] +[visit_id dim#7622] +[visit_exp i#45957] +[visit_id i#45957] +[visit_exp ((nt : numtype <: lanetype), `%`_dim{i#45964}(M))] +[visit_exp (nt : numtype <: lanetype)] +[visit_exp nt] +[visit_id nt] not free +[visit_exp `%`_dim{i#45964}(M)] +[visit_exp i#45964] +[visit_id i#45964] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp i!`%`_laneidx{i#45984}.0] +[visit_exp i!`%`_laneidx{i#45984}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#45984] +[visit_id i#45984] +[check_dims] M c_1 c_2 dim#7639 dim#7651 i i#46018 i#46025 i#46122 i#46129 i#46149 laneidx#27 lanetype#7639 lanetype#7651 numtype#619 pt shape#750 sx sx?#29 vectype#192 +[visit_exp [`VCONST`_instr{vectype#192}(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr{shape#750, `sx?#29`, laneidx#27}(`%X%`_shape{lanetype#7639, dim#7639, i#46018}((pt : packtype <: lanetype), `%`_dim{i#46025}(M)), ?(sx), i)]] +[visit_exp `VCONST`_instr{vectype#192}(`V128`_vectype, c_1)] +[visit_exp vectype#192] +[visit_id vectype#192] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VEXTRACT_LANE`_instr{shape#750, `sx?#29`, laneidx#27}(`%X%`_shape{lanetype#7639, dim#7639, i#46018}((pt : packtype <: lanetype), `%`_dim{i#46025}(M)), ?(sx), i)] +[visit_exp shape#750] +[visit_id shape#750] +[visit_exp `sx?#29`] +[visit_id sx?#29] +[visit_exp laneidx#27] +[visit_id laneidx#27] +[visit_exp (`%X%`_shape{lanetype#7639, dim#7639, i#46018}((pt : packtype <: lanetype), `%`_dim{i#46025}(M)), ?(sx), i)] +[visit_exp `%X%`_shape{lanetype#7639, dim#7639, i#46018}((pt : packtype <: lanetype), `%`_dim{i#46025}(M))] +[visit_exp lanetype#7639] +[visit_id lanetype#7639] +[visit_exp dim#7639] +[visit_id dim#7639] +[visit_exp i#46018] +[visit_id i#46018] +[visit_exp ((pt : packtype <: lanetype), `%`_dim{i#46025}(M))] +[visit_exp (pt : packtype <: lanetype)] +[visit_exp pt] +[visit_id pt] +[visit_exp `%`_dim{i#46025}(M)] +[visit_exp i#46025] +[visit_id i#46025] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp ?(sx)] +[visit_exp sx] +[visit_id sx] +[visit_exp i] +[visit_id i] +[visit_exp [`CONST`_instr{numtype#619}(`I32`_numtype, c_2)]] +[visit_exp `CONST`_instr{numtype#619}(`I32`_numtype, c_2)] +[visit_exp numtype#619] +[visit_id numtype#619] +[visit_exp (`I32`_numtype, c_2)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp c_2] +[visit_id c_2] +[visit_exp (c_2 = $extend__($psize(pt), 32, sx, $lanes_(`%X%`_shape{lanetype#7651, dim#7651, i#46122}((pt : packtype <: lanetype), `%`_dim{i#46129}(M)), c_1)[i!`%`_laneidx{i#46149}.0]))] +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp $extend__($psize(pt), 32, sx, $lanes_(`%X%`_shape{lanetype#7651, dim#7651, i#46122}((pt : packtype <: lanetype), `%`_dim{i#46129}(M)), c_1)[i!`%`_laneidx{i#46149}.0])] +[visit_exp $psize(pt)] +[visit_exp pt] +[visit_id pt] not free +[visit_exp 32] +[visit_exp sx] +[visit_id sx] not free +[visit_exp $lanes_(`%X%`_shape{lanetype#7651, dim#7651, i#46122}((pt : packtype <: lanetype), `%`_dim{i#46129}(M)), c_1)[i!`%`_laneidx{i#46149}.0]] +[visit_exp $lanes_(`%X%`_shape{lanetype#7651, dim#7651, i#46122}((pt : packtype <: lanetype), `%`_dim{i#46129}(M)), c_1)] +[visit_exp `%X%`_shape{lanetype#7651, dim#7651, i#46122}((pt : packtype <: lanetype), `%`_dim{i#46129}(M))] +[visit_exp lanetype#7651] +[visit_id lanetype#7651] +[visit_exp dim#7651] +[visit_id dim#7651] +[visit_exp i#46122] +[visit_id i#46122] +[visit_exp ((pt : packtype <: lanetype), `%`_dim{i#46129}(M))] +[visit_exp (pt : packtype <: lanetype)] +[visit_exp pt] +[visit_id pt] not free +[visit_exp `%`_dim{i#46129}(M)] +[visit_exp i#46129] +[visit_id i#46129] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp i!`%`_laneidx{i#46149}.0] +[visit_exp i!`%`_laneidx{i#46149}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#46149] +[visit_id i#46149] +[check_dims] Lnn M c c_1 c_2 dim#7664 dim#7676 dim#7730 i i#46185 i#46192 i#46225 i#46232 i#46335 i#46342 i#46368 laneidx#29 lanetype#7664 lanetype#7676 lanetype#7730 numtype#621 shape#752 vectype#194 vectype#196 +[visit_exp [`VCONST`_instr{vectype#194}(`V128`_vectype, c_1) `CONST`_instr{numtype#621}($lunpack(Lnn), c_2) `VREPLACE_LANE`_instr{shape#752, laneidx#29}(`%X%`_shape{lanetype#7664, dim#7664, i#46185}(Lnn, `%`_dim{i#46192}(M)), i)]] +[visit_exp `VCONST`_instr{vectype#194}(`V128`_vectype, c_1)] +[visit_exp vectype#194] +[visit_id vectype#194] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `CONST`_instr{numtype#621}($lunpack(Lnn), c_2)] +[visit_exp numtype#621] +[visit_id numtype#621] +[visit_exp ($lunpack(Lnn), c_2)] +[visit_exp $lunpack(Lnn)] +[visit_exp Lnn] +[visit_id Lnn] +[visit_exp c_2] +[visit_id c_2] +[visit_exp `VREPLACE_LANE`_instr{shape#752, laneidx#29}(`%X%`_shape{lanetype#7664, dim#7664, i#46185}(Lnn, `%`_dim{i#46192}(M)), i)] +[visit_exp shape#752] +[visit_id shape#752] +[visit_exp laneidx#29] +[visit_id laneidx#29] +[visit_exp (`%X%`_shape{lanetype#7664, dim#7664, i#46185}(Lnn, `%`_dim{i#46192}(M)), i)] +[visit_exp `%X%`_shape{lanetype#7664, dim#7664, i#46185}(Lnn, `%`_dim{i#46192}(M))] +[visit_exp lanetype#7664] +[visit_id lanetype#7664] +[visit_exp dim#7664] +[visit_id dim#7664] +[visit_exp i#46185] +[visit_id i#46185] +[visit_exp (Lnn, `%`_dim{i#46192}(M))] +[visit_exp Lnn] +[visit_id Lnn] not free +[visit_exp `%`_dim{i#46192}(M)] +[visit_exp i#46192] +[visit_id i#46192] +[visit_exp (M)] +[visit_exp M] +[visit_id M] +[visit_exp i] +[visit_id i] +[visit_exp [`VCONST`_instr{vectype#196}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#196}(`V128`_vectype, c)] +[visit_exp vectype#196] +[visit_id vectype#196] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c = $inv_lanes_(`%X%`_shape{lanetype#7676, dim#7676, i#46225}(Lnn, `%`_dim{i#46232}(M)), $lanes_(`%X%`_shape{lanetype#7730, dim#7730, i#46335}(Lnn, `%`_dim{i#46342}(M)), c_1)[[i!`%`_laneidx{i#46368}.0] = $lpacknum_(Lnn, c_2)]))] +[visit_exp c] +[visit_id c] not free +[visit_exp $inv_lanes_(`%X%`_shape{lanetype#7676, dim#7676, i#46225}(Lnn, `%`_dim{i#46232}(M)), $lanes_(`%X%`_shape{lanetype#7730, dim#7730, i#46335}(Lnn, `%`_dim{i#46342}(M)), c_1)[[i!`%`_laneidx{i#46368}.0] = $lpacknum_(Lnn, c_2)])] +[visit_exp `%X%`_shape{lanetype#7676, dim#7676, i#46225}(Lnn, `%`_dim{i#46232}(M))] +[visit_exp lanetype#7676] +[visit_id lanetype#7676] +[visit_exp dim#7676] +[visit_id dim#7676] +[visit_exp i#46225] +[visit_id i#46225] +[visit_exp (Lnn, `%`_dim{i#46232}(M))] +[visit_exp Lnn] +[visit_id Lnn] not free +[visit_exp `%`_dim{i#46232}(M)] +[visit_exp i#46232] +[visit_id i#46232] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp $lanes_(`%X%`_shape{lanetype#7730, dim#7730, i#46335}(Lnn, `%`_dim{i#46342}(M)), c_1)[[i!`%`_laneidx{i#46368}.0] = $lpacknum_(Lnn, c_2)]] +[visit_exp $lanes_(`%X%`_shape{lanetype#7730, dim#7730, i#46335}(Lnn, `%`_dim{i#46342}(M)), c_1)] +[visit_exp `%X%`_shape{lanetype#7730, dim#7730, i#46335}(Lnn, `%`_dim{i#46342}(M))] +[visit_exp lanetype#7730] +[visit_id lanetype#7730] +[visit_exp dim#7730] +[visit_id dim#7730] +[visit_exp i#46335] +[visit_id i#46335] +[visit_exp (Lnn, `%`_dim{i#46342}(M))] +[visit_exp Lnn] +[visit_id Lnn] not free +[visit_exp `%`_dim{i#46342}(M)] +[visit_exp i#46342] +[visit_id i#46342] +[visit_exp (M)] +[visit_exp M] +[visit_id M] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp i!`%`_laneidx{i#46368}.0] +[visit_exp i!`%`_laneidx{i#46368}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#46368] +[visit_id i#46368] +[visit_exp $lpacknum_(Lnn, c_2)] +[visit_exp Lnn] +[visit_id Lnn] not free +[visit_exp c_2] +[visit_id c_2] not free +[check_dims] c c_1 ishape_1#17 ishape_2#17 sh_1 sh_2 vectype#198 vectype#200 vextunop +[visit_exp [`VCONST`_instr{vectype#198}(`V128`_vectype, c_1) `VEXTUNOP`_instr{ishape_1#17, ishape_2#17}(sh_2, sh_1, vextunop)]] +[visit_exp `VCONST`_instr{vectype#198}(`V128`_vectype, c_1)] +[visit_exp vectype#198] +[visit_id vectype#198] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VEXTUNOP`_instr{ishape_1#17, ishape_2#17}(sh_2, sh_1, vextunop)] +[visit_exp ishape_1#17] +[visit_id ishape_1#17] +[visit_exp ishape_2#17] +[visit_id ishape_2#17] +[visit_exp (sh_2, sh_1, vextunop)] +[visit_exp sh_2] +[visit_id sh_2] +[visit_exp sh_1] +[visit_id sh_1] +[visit_exp vextunop] +[visit_id vextunop] +[visit_exp [`VCONST`_instr{vectype#200}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#200}(`V128`_vectype, c)] +[visit_exp vectype#200] +[visit_id vectype#200] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp ($vextunop__(sh_1, sh_2, vextunop, c_1) = c)] +[visit_exp $vextunop__(sh_1, sh_2, vextunop, c_1)] +[visit_exp sh_1] +[visit_id sh_1] not free +[visit_exp sh_2] +[visit_id sh_2] not free +[visit_exp vextunop] +[visit_id vextunop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c] +[visit_id c] not free +[check_dims] c c_1 c_2 ishape_1#19 ishape_2#19 sh_1 sh_2 vectype#202 vectype#204 vectype#206 vextbinop +[visit_exp [`VCONST`_instr{vectype#202}(`V128`_vectype, c_1) `VCONST`_instr{vectype#204}(`V128`_vectype, c_2) `VEXTBINOP`_instr{ishape_1#19, ishape_2#19}(sh_2, sh_1, vextbinop)]] +[visit_exp `VCONST`_instr{vectype#202}(`V128`_vectype, c_1)] +[visit_exp vectype#202] +[visit_id vectype#202] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VCONST`_instr{vectype#204}(`V128`_vectype, c_2)] +[visit_exp vectype#204] +[visit_id vectype#204] +[visit_exp (`V128`_vectype, c_2)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_2] +[visit_id c_2] +[visit_exp `VEXTBINOP`_instr{ishape_1#19, ishape_2#19}(sh_2, sh_1, vextbinop)] +[visit_exp ishape_1#19] +[visit_id ishape_1#19] +[visit_exp ishape_2#19] +[visit_id ishape_2#19] +[visit_exp (sh_2, sh_1, vextbinop)] +[visit_exp sh_2] +[visit_id sh_2] +[visit_exp sh_1] +[visit_id sh_1] +[visit_exp vextbinop] +[visit_id vextbinop] +[visit_exp [`VCONST`_instr{vectype#206}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#206}(`V128`_vectype, c)] +[visit_exp vectype#206] +[visit_id vectype#206] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp ($vextbinop__(sh_1, sh_2, vextbinop, c_1, c_2) = c)] +[visit_exp $vextbinop__(sh_1, sh_2, vextbinop, c_1, c_2)] +[visit_exp sh_1] +[visit_id sh_1] not free +[visit_exp sh_2] +[visit_id sh_2] not free +[visit_exp vextbinop] +[visit_id vextbinop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp c] +[visit_id c] not free +[check_dims] c c_1 c_2 c_3 ishape_1#21 ishape_2#21 sh_1 sh_2 vectype#208 vectype#210 vectype#212 vectype#214 vextternop +[visit_exp [`VCONST`_instr{vectype#208}(`V128`_vectype, c_1) `VCONST`_instr{vectype#210}(`V128`_vectype, c_2) `VCONST`_instr{vectype#212}(`V128`_vectype, c_3) `VEXTTERNOP`_instr{ishape_1#21, ishape_2#21}(sh_2, sh_1, vextternop)]] +[visit_exp `VCONST`_instr{vectype#208}(`V128`_vectype, c_1)] +[visit_exp vectype#208] +[visit_id vectype#208] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VCONST`_instr{vectype#210}(`V128`_vectype, c_2)] +[visit_exp vectype#210] +[visit_id vectype#210] +[visit_exp (`V128`_vectype, c_2)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_2] +[visit_id c_2] +[visit_exp `VCONST`_instr{vectype#212}(`V128`_vectype, c_3)] +[visit_exp vectype#212] +[visit_id vectype#212] +[visit_exp (`V128`_vectype, c_3)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_3] +[visit_id c_3] +[visit_exp `VEXTTERNOP`_instr{ishape_1#21, ishape_2#21}(sh_2, sh_1, vextternop)] +[visit_exp ishape_1#21] +[visit_id ishape_1#21] +[visit_exp ishape_2#21] +[visit_id ishape_2#21] +[visit_exp (sh_2, sh_1, vextternop)] +[visit_exp sh_2] +[visit_id sh_2] +[visit_exp sh_1] +[visit_id sh_1] +[visit_exp vextternop] +[visit_id vextternop] +[visit_exp [`VCONST`_instr{vectype#214}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#214}(`V128`_vectype, c)] +[visit_exp vectype#214] +[visit_id vectype#214] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp ($vextternop__(sh_1, sh_2, vextternop, c_1, c_2, c_3) = c)] +[visit_exp $vextternop__(sh_1, sh_2, vextternop, c_1, c_2, c_3)] +[visit_exp sh_1] +[visit_id sh_1] not free +[visit_exp sh_2] +[visit_id sh_2] not free +[visit_exp vextternop] +[visit_id vextternop] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[visit_exp c_3] +[visit_id c_3] not free +[visit_exp c] +[visit_id c] not free +[check_dims] Jnn#216 Jnn#217 Jnn#218 Jnn#223 Jnn#224 c c_1 c_2 ishape_1#23 ishape_2#23 sh_1 sh_2 shape#826 shape#827 shape#828 shape#841 shape#843 sx sx#408 vectype#216 vectype#218 vectype#220 +[visit_exp [`VCONST`_instr{vectype#216}(`V128`_vectype, c_1) `VCONST`_instr{vectype#218}(`V128`_vectype, c_2) `VNARROW`_instr{ishape_1#23, ishape_2#23, sx#408, shape#826, Jnn#216, shape#827, Jnn#217, shape#828, Jnn#218}(sh_2, sh_1, sx)]] +[visit_exp `VCONST`_instr{vectype#216}(`V128`_vectype, c_1)] +[visit_exp vectype#216] +[visit_id vectype#216] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VCONST`_instr{vectype#218}(`V128`_vectype, c_2)] +[visit_exp vectype#218] +[visit_id vectype#218] +[visit_exp (`V128`_vectype, c_2)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_2] +[visit_id c_2] +[visit_exp `VNARROW`_instr{ishape_1#23, ishape_2#23, sx#408, shape#826, Jnn#216, shape#827, Jnn#217, shape#828, Jnn#218}(sh_2, sh_1, sx)] +[visit_exp ishape_1#23] +[visit_id ishape_1#23] +[visit_exp ishape_2#23] +[visit_id ishape_2#23] +[visit_exp sx#408] +[visit_id sx#408] +[visit_exp shape#826] +[visit_id shape#826] +[visit_exp Jnn#216] +[visit_id Jnn#216] +[visit_exp shape#827] +[visit_id shape#827] +[visit_exp Jnn#217] +[visit_id Jnn#217] +[visit_exp shape#828] +[visit_id shape#828] +[visit_exp Jnn#218] +[visit_id Jnn#218] +[visit_exp (sh_2, sh_1, sx)] +[visit_exp sh_2] +[visit_id sh_2] +[visit_exp sh_1] +[visit_id sh_1] +[visit_exp sx] +[visit_id sx] +[visit_exp [`VCONST`_instr{vectype#220}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#220}(`V128`_vectype, c)] +[visit_exp vectype#220] +[visit_id vectype#220] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c = $vnarrowop__(sh_1!`%`_ishape{shape#841, Jnn#223}.0, sh_2!`%`_ishape{shape#843, Jnn#224}.0, sx, c_1, c_2))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vnarrowop__(sh_1!`%`_ishape{shape#841, Jnn#223}.0, sh_2!`%`_ishape{shape#843, Jnn#224}.0, sx, c_1, c_2)] +[visit_exp sh_1!`%`_ishape{shape#841, Jnn#223}.0] +[visit_exp sh_1!`%`_ishape{shape#841, Jnn#223}] +[visit_exp sh_1] +[visit_id sh_1] not free +[visit_exp shape#841] +[visit_id shape#841] +[visit_exp Jnn#223] +[visit_id Jnn#223] +[visit_exp sh_2!`%`_ishape{shape#843, Jnn#224}.0] +[visit_exp sh_2!`%`_ishape{shape#843, Jnn#224}] +[visit_exp sh_2] +[visit_id sh_2] not free +[visit_exp shape#843] +[visit_id shape#843] +[visit_exp Jnn#224] +[visit_id Jnn#224] +[visit_exp sx] +[visit_id sx] not free +[visit_exp c_1] +[visit_id c_1] not free +[visit_exp c_2] +[visit_id c_2] not free +[check_dims] c c_1 sh_1 sh_2 shape_1#5 shape_2#5 vcvtop vectype#222 vectype#224 +[visit_exp [`VCONST`_instr{vectype#222}(`V128`_vectype, c_1) `VCVTOP`_instr{shape_1#5, shape_2#5}(sh_2, sh_1, vcvtop)]] +[visit_exp `VCONST`_instr{vectype#222}(`V128`_vectype, c_1)] +[visit_exp vectype#222] +[visit_id vectype#222] +[visit_exp (`V128`_vectype, c_1)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c_1] +[visit_id c_1] +[visit_exp `VCVTOP`_instr{shape_1#5, shape_2#5}(sh_2, sh_1, vcvtop)] +[visit_exp shape_1#5] +[visit_id shape_1#5] +[visit_exp shape_2#5] +[visit_id shape_2#5] +[visit_exp (sh_2, sh_1, vcvtop)] +[visit_exp sh_2] +[visit_id sh_2] +[visit_exp sh_1] +[visit_id sh_1] +[visit_exp vcvtop] +[visit_id vcvtop] +[visit_exp [`VCONST`_instr{vectype#224}(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr{vectype#224}(`V128`_vectype, c)] +[visit_exp vectype#224] +[visit_id vectype#224] +[visit_exp (`V128`_vectype, c)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp (c = $vcvtop__(sh_1, sh_2, vcvtop, c_1))] +[visit_exp c] +[visit_id c] not free +[visit_exp $vcvtop__(sh_1, sh_2, vcvtop, c_1)] +[visit_exp sh_1] +[visit_id sh_1] not free +[visit_exp sh_2] +[visit_id sh_2] not free +[visit_exp vcvtop] +[visit_id vcvtop] not free +[visit_exp c_1] +[visit_id c_1] not free +[check_dims] +[check_dims] instr instr*#2310 instr*#2322 state#2195 state#2207 val z z' +[visit_exp z] +[visit_id z] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp z'] +[visit_id z'] +[visit_exp val*{val <- `val*`}] +[scope_enter val] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp (`%;%`_config{state#2195, `instr*#2310`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#2207, `instr*#2322`}(z', (val : val <: instr)*{val <- `val*`}))] +[visit_exp `%;%`_config{state#2195, `instr*#2310`}(z, instr*{instr <- `instr*`})] +[visit_exp state#2195] +[visit_id state#2195] +[visit_exp `instr*#2310`] +[visit_id instr*#2310] +[visit_exp (z, instr*{instr <- `instr*`})] +[visit_exp z] +[visit_id z] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp `%;%`_config{state#2207, `instr*#2322`}(z', (val : val <: instr)*{val <- `val*`})] +[visit_exp state#2207] +[visit_id state#2207] +[visit_exp `instr*#2322`] +[visit_id instr*#2322] +[visit_exp (z', (val : val <: instr)*{val <- `val*`})] +[visit_exp z'] +[visit_id z'] not free +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[check_dims] _ +DecD alloctypes(type*) : deftype* +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $alloctypes([]) = [] +[check_dims] deftype deftype' i#46777 rectype rectype#1449 type type' x +[visit_exp type'*{type' <- `type'*`} ++ [type]] +[visit_exp type'*{type' <- `type'*`}] +[scope_enter type'] +[visit_exp type'] +[visit_id type'] not free +[visit_id type'] not free +[scope_exit type'] +[visit_exp `type'*`] +[visit_id type'*] no dims +[visit_id type'*] +[visit_exp [type]] +[visit_exp type] +[visit_id type] +[visit_exp deftype'*{deftype' <- `deftype'*`} ++ deftype*{deftype <- `deftype*`}] +[visit_exp deftype'*{deftype' <- `deftype'*`}] +[scope_enter deftype'] +[visit_exp deftype'] +[visit_id deftype'] not free +[visit_id deftype'] not free +[scope_exit deftype'] +[visit_exp `deftype'*`] +[visit_id deftype'*] no dims +[visit_id deftype'*] +[visit_exp deftype*{deftype <- `deftype*`}] +[scope_enter deftype] +[visit_exp deftype] +[visit_id deftype] not free +[visit_id deftype] not free +[scope_exit deftype] +[visit_exp `deftype*`] +[visit_id deftype*] no dims +[visit_id deftype*] +[visit_exp (deftype'*{deftype' <- `deftype'*`} = $alloctypes(type'*{type' <- `type'*`}))] +[visit_exp deftype'*{deftype' <- `deftype'*`}] +[scope_enter deftype'] +[visit_exp deftype'] +[visit_id deftype'] not free +[visit_id deftype'] not free +[scope_exit deftype'] +[visit_exp `deftype'*`] +[visit_id deftype'*] not free +[visit_id deftype'*] no dims +[visit_exp $alloctypes(type'*{type' <- `type'*`})] +[visit_exp type'*{type' <- `type'*`}] +[scope_enter type'] +[visit_exp type'] +[visit_id type'] not free +[visit_id type'] not free +[scope_exit type'] +[visit_exp `type'*`] +[visit_id type'*] not free +[visit_id type'*] no dims +[visit_exp (type = `TYPE`_type{rectype#1449}(rectype))] +[visit_exp type] +[visit_id type] not free +[visit_exp `TYPE`_type{rectype#1449}(rectype)] +[visit_exp rectype#1449] +[visit_id rectype#1449] +[visit_exp (rectype)] +[visit_exp rectype] +[visit_id rectype] +[visit_exp (deftype*{deftype <- `deftype*`} = $subst_all_deftypes($rolldt(x, rectype), (deftype' : deftype <: typeuse)*{deftype' <- `deftype'*`}))] +[visit_exp deftype*{deftype <- `deftype*`}] +[scope_enter deftype] +[visit_exp deftype] +[visit_id deftype] not free +[visit_id deftype] not free +[scope_exit deftype] +[visit_exp `deftype*`] +[visit_id deftype*] not free +[visit_id deftype*] no dims +[visit_exp $subst_all_deftypes($rolldt(x, rectype), (deftype' : deftype <: typeuse)*{deftype' <- `deftype'*`})] +[visit_exp $rolldt(x, rectype)] +[visit_exp x] +[visit_id x] +[visit_exp rectype] +[visit_id rectype] not free +[visit_exp (deftype' : deftype <: typeuse)*{deftype' <- `deftype'*`}] +[scope_enter deftype'] +[visit_exp (deftype' : deftype <: typeuse)] +[visit_exp deftype'] +[visit_id deftype'] not free +[visit_id deftype'] not free +[scope_exit deftype'] +[visit_exp `deftype'*`] +[visit_id deftype'*] not free +[visit_id deftype'*] no dims +[visit_exp (x!`%`_idx{i#46777}.0 = |deftype'*{deftype' <- `deftype'*`}|)] +[visit_exp x!`%`_idx{i#46777}.0] +[visit_exp x!`%`_idx{i#46777}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#46777] +[visit_id i#46777] +[visit_exp |deftype'*{deftype' <- `deftype'*`}|] +[visit_exp deftype'*{deftype' <- `deftype'*`}] +[scope_enter deftype'] +[visit_exp deftype'] +[visit_id deftype'] not free +[visit_id deftype'] not free +[scope_exit deftype'] +[visit_exp `deftype'*`] +[visit_id deftype'*] not free +[visit_id deftype'*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $alloctypes{`type'*` : type*, type : type, `deftype'*` : deftype*, `deftype*` : deftype*, rectype#1449 : rectype, rectype : rectype, x : idx, i#46777 : nat}(type'*{type' <- `type'*`} ++ [type]) = deftype'*{deftype' <- `deftype'*`} ++ deftype*{deftype <- `deftype*`} + -- if (deftype'*{deftype' <- `deftype'*`} = $alloctypes(type'*{type' <- `type'*`})) + -- if (type = `TYPE`_type{rectype#1449}(rectype)) + -- if (deftype*{deftype <- `deftype*`} = $subst_all_deftypes($rolldt(x, rectype), (deftype' : deftype <: typeuse)*{deftype' <- `deftype'*`})) + -- if (x!`%`_idx{i#46777}.0 = |deftype'*{deftype' <- `deftype'*`}|) +[check_dims] _ store tagtype +DecD alloctag(store : store, tagtype : tagtype) : (store, tagaddr) +[visit_id store] not free +[visit_id tagtype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] arrayinst*#6 datainst*#5 eleminst*#5 exninst*#5 funcinst*#6 globalinst*#6 meminst*#7 s structinst*#6 tableinst*#7 taginst taginst*#5 taginst*#6 tagtype tagtype#181 +[visit_exp s] +[visit_id s] +[visit_exp tagtype] +[visit_id tagtype] +[visit_exp (s +++ {`TAGS`{`taginst*#5`} [taginst], `GLOBALS`{`globalinst*#6`} [], `MEMS`{`meminst*#7`} [], `TABLES`{`tableinst*#7`} [], `FUNCS`{`funcinst*#6`} [], `DATAS`{`datainst*#5`} [], `ELEMS`{`eleminst*#5`} [], `STRUCTS`{`structinst*#6`} [], `ARRAYS`{`arrayinst*#6`} [], `EXNS`{`exninst*#5`} []}, |s.`TAGS`_store{`taginst*#6`}|)] +[visit_exp s +++ {`TAGS`{`taginst*#5`} [taginst], `GLOBALS`{`globalinst*#6`} [], `MEMS`{`meminst*#7`} [], `TABLES`{`tableinst*#7`} [], `FUNCS`{`funcinst*#6`} [], `DATAS`{`datainst*#5`} [], `ELEMS`{`eleminst*#5`} [], `STRUCTS`{`structinst*#6`} [], `ARRAYS`{`arrayinst*#6`} [], `EXNS`{`exninst*#5`} []}] +[visit_exp s] +[visit_id s] not free +[visit_exp {`TAGS`{`taginst*#5`} [taginst], `GLOBALS`{`globalinst*#6`} [], `MEMS`{`meminst*#7`} [], `TABLES`{`tableinst*#7`} [], `FUNCS`{`funcinst*#6`} [], `DATAS`{`datainst*#5`} [], `ELEMS`{`eleminst*#5`} [], `STRUCTS`{`structinst*#6`} [], `ARRAYS`{`arrayinst*#6`} [], `EXNS`{`exninst*#5`} []}] +[visit_exp `taginst*#5`] +[visit_id taginst*#5] +[visit_exp [taginst]] +[visit_exp taginst] +[visit_id taginst] +[visit_exp `globalinst*#6`] +[visit_id globalinst*#6] +[visit_exp []] +[visit_exp `meminst*#7`] +[visit_id meminst*#7] +[visit_exp []] +[visit_exp `tableinst*#7`] +[visit_id tableinst*#7] +[visit_exp []] +[visit_exp `funcinst*#6`] +[visit_id funcinst*#6] +[visit_exp []] +[visit_exp `datainst*#5`] +[visit_id datainst*#5] +[visit_exp []] +[visit_exp `eleminst*#5`] +[visit_id eleminst*#5] +[visit_exp []] +[visit_exp `structinst*#6`] +[visit_id structinst*#6] +[visit_exp []] +[visit_exp `arrayinst*#6`] +[visit_id arrayinst*#6] +[visit_exp []] +[visit_exp `exninst*#5`] +[visit_id exninst*#5] +[visit_exp []] +[visit_exp |s.`TAGS`_store{`taginst*#6`}|] +[visit_exp s.`TAGS`_store{`taginst*#6`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `taginst*#6`] +[visit_id taginst*#6] +[visit_exp (taginst = {`TYPE`{tagtype#181} tagtype})] +[visit_exp taginst] +[visit_id taginst] not free +[visit_exp {`TYPE`{tagtype#181} tagtype}] +[visit_exp tagtype#181] +[visit_id tagtype#181] +[visit_exp tagtype] +[visit_id tagtype] not free +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $alloctag{s : store, tagtype : tagtype, `taginst*#5` : taginst*, taginst : taginst, `globalinst*#6` : globalinst*, `meminst*#7` : meminst*, `tableinst*#7` : tableinst*, `funcinst*#6` : funcinst*, `datainst*#5` : datainst*, `eleminst*#5` : eleminst*, `structinst*#6` : structinst*, `arrayinst*#6` : arrayinst*, `exninst*#5` : exninst*, `taginst*#6` : taginst*, tagtype#181 : tagtype}(s, tagtype) = (s +++ {`TAGS`{`taginst*#5`} [taginst], `GLOBALS`{`globalinst*#6`} [], `MEMS`{`meminst*#7`} [], `TABLES`{`tableinst*#7`} [], `FUNCS`{`funcinst*#6`} [], `DATAS`{`datainst*#5`} [], `ELEMS`{`eleminst*#5`} [], `STRUCTS`{`structinst*#6`} [], `ARRAYS`{`arrayinst*#6`} [], `EXNS`{`exninst*#5`} []}, |s.`TAGS`_store{`taginst*#6`}|) + -- if (taginst = {`TYPE`{tagtype#181} tagtype}) +[check_dims] _ store +DecD alloctags(store : store, tagtype*) : (store, tagaddr*) +[visit_id store] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] s +[visit_exp s] +[visit_id s] +[visit_exp []] +[visit_exp (s, [])] +[visit_exp s] +[visit_id s] not free +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $alloctags{s : store}(s, []) = (s, []) +[check_dims] ja ja' s s_1 s_2 tagtype tagtype' +[visit_exp s] +[visit_id s] +[visit_exp [tagtype] ++ tagtype'*{tagtype' <- `tagtype'*`}] +[visit_exp [tagtype]] +[visit_exp tagtype] +[visit_id tagtype] +[visit_exp tagtype'*{tagtype' <- `tagtype'*`}] +[scope_enter tagtype'] +[visit_exp tagtype'] +[visit_id tagtype'] not free +[visit_id tagtype'] not free +[scope_exit tagtype'] +[visit_exp `tagtype'*`] +[visit_id tagtype'*] no dims +[visit_id tagtype'*] +[visit_exp (s_2, [ja] ++ ja'*{ja' <- `ja'*`})] +[visit_exp s_2] +[visit_id s_2] +[visit_exp [ja] ++ ja'*{ja' <- `ja'*`}] +[visit_exp [ja]] +[visit_exp ja] +[visit_id ja] +[visit_exp ja'*{ja' <- `ja'*`}] +[scope_enter ja'] +[visit_exp ja'] +[visit_id ja'] not free +[visit_id ja'] not free +[scope_exit ja'] +[visit_exp `ja'*`] +[visit_id ja'*] no dims +[visit_id ja'*] +[visit_exp ((s_1, ja) = $alloctag(s, tagtype))] +[visit_exp (s_1, ja)] +[visit_exp s_1] +[visit_id s_1] +[visit_exp ja] +[visit_id ja] not free +[visit_exp $alloctag(s, tagtype)] +[visit_exp s] +[visit_id s] not free +[visit_exp tagtype] +[visit_id tagtype] not free +[visit_exp ((s_2, ja'*{ja' <- `ja'*`}) = $alloctags(s_1, tagtype'*{tagtype' <- `tagtype'*`}))] +[visit_exp (s_2, ja'*{ja' <- `ja'*`})] +[visit_exp s_2] +[visit_id s_2] not free +[visit_exp ja'*{ja' <- `ja'*`}] +[scope_enter ja'] +[visit_exp ja'] +[visit_id ja'] not free +[visit_id ja'] not free +[scope_exit ja'] +[visit_exp `ja'*`] +[visit_id ja'*] not free +[visit_id ja'*] no dims +[visit_exp $alloctags(s_1, tagtype'*{tagtype' <- `tagtype'*`})] +[visit_exp s_1] +[visit_id s_1] not free +[visit_exp tagtype'*{tagtype' <- `tagtype'*`}] +[scope_enter tagtype'] +[visit_exp tagtype'] +[visit_id tagtype'] not free +[visit_id tagtype'] not free +[scope_exit tagtype'] +[visit_exp `tagtype'*`] +[visit_id tagtype'*] not free +[visit_id tagtype'*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $alloctags{s : store, tagtype : tagtype, `tagtype'*` : tagtype*, s_2 : store, ja : tagaddr, `ja'*` : tagaddr*, s_1 : store}(s, [tagtype] ++ tagtype'*{tagtype' <- `tagtype'*`}) = (s_2, [ja] ++ ja'*{ja' <- `ja'*`}) + -- if ((s_1, ja) = $alloctag(s, tagtype)) + -- if ((s_2, ja'*{ja' <- `ja'*`}) = $alloctags(s_1, tagtype'*{tagtype' <- `tagtype'*`})) +[check_dims] _ globaltype store val +DecD allocglobal(store : store, globaltype : globaltype, val : val) : (store, globaladdr) +[visit_id store] not free +[visit_id globaltype] not free +[visit_id val] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] arrayinst*#7 datainst*#6 eleminst*#6 exninst*#6 funcinst*#7 globalinst globalinst*#7 globalinst*#8 globaltype globaltype#2088 meminst*#8 s structinst*#7 tableinst*#8 taginst*#7 val val#3 +[visit_exp s] +[visit_id s] +[visit_exp globaltype] +[visit_id globaltype] +[visit_exp val] +[visit_id val] +[visit_exp (s +++ {`TAGS`{`taginst*#7`} [], `GLOBALS`{`globalinst*#7`} [globalinst], `MEMS`{`meminst*#8`} [], `TABLES`{`tableinst*#8`} [], `FUNCS`{`funcinst*#7`} [], `DATAS`{`datainst*#6`} [], `ELEMS`{`eleminst*#6`} [], `STRUCTS`{`structinst*#7`} [], `ARRAYS`{`arrayinst*#7`} [], `EXNS`{`exninst*#6`} []}, |s.`GLOBALS`_store{`globalinst*#8`}|)] +[visit_exp s +++ {`TAGS`{`taginst*#7`} [], `GLOBALS`{`globalinst*#7`} [globalinst], `MEMS`{`meminst*#8`} [], `TABLES`{`tableinst*#8`} [], `FUNCS`{`funcinst*#7`} [], `DATAS`{`datainst*#6`} [], `ELEMS`{`eleminst*#6`} [], `STRUCTS`{`structinst*#7`} [], `ARRAYS`{`arrayinst*#7`} [], `EXNS`{`exninst*#6`} []}] +[visit_exp s] +[visit_id s] not free +[visit_exp {`TAGS`{`taginst*#7`} [], `GLOBALS`{`globalinst*#7`} [globalinst], `MEMS`{`meminst*#8`} [], `TABLES`{`tableinst*#8`} [], `FUNCS`{`funcinst*#7`} [], `DATAS`{`datainst*#6`} [], `ELEMS`{`eleminst*#6`} [], `STRUCTS`{`structinst*#7`} [], `ARRAYS`{`arrayinst*#7`} [], `EXNS`{`exninst*#6`} []}] +[visit_exp `taginst*#7`] +[visit_id taginst*#7] +[visit_exp []] +[visit_exp `globalinst*#7`] +[visit_id globalinst*#7] +[visit_exp [globalinst]] +[visit_exp globalinst] +[visit_id globalinst] +[visit_exp `meminst*#8`] +[visit_id meminst*#8] +[visit_exp []] +[visit_exp `tableinst*#8`] +[visit_id tableinst*#8] +[visit_exp []] +[visit_exp `funcinst*#7`] +[visit_id funcinst*#7] +[visit_exp []] +[visit_exp `datainst*#6`] +[visit_id datainst*#6] +[visit_exp []] +[visit_exp `eleminst*#6`] +[visit_id eleminst*#6] +[visit_exp []] +[visit_exp `structinst*#7`] +[visit_id structinst*#7] +[visit_exp []] +[visit_exp `arrayinst*#7`] +[visit_id arrayinst*#7] +[visit_exp []] +[visit_exp `exninst*#6`] +[visit_id exninst*#6] +[visit_exp []] +[visit_exp |s.`GLOBALS`_store{`globalinst*#8`}|] +[visit_exp s.`GLOBALS`_store{`globalinst*#8`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `globalinst*#8`] +[visit_id globalinst*#8] +[visit_exp (globalinst = {`TYPE`{globaltype#2088} globaltype, `VALUE`{val#3} val})] +[visit_exp globalinst] +[visit_id globalinst] not free +[visit_exp {`TYPE`{globaltype#2088} globaltype, `VALUE`{val#3} val}] +[visit_exp globaltype#2088] +[visit_id globaltype#2088] +[visit_exp globaltype] +[visit_id globaltype] not free +[visit_exp val#3] +[visit_id val#3] +[visit_exp val] +[visit_id val] not free +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocglobal{s : store, globaltype : globaltype, val : val, `taginst*#7` : taginst*, `globalinst*#7` : globalinst*, globalinst : globalinst, `meminst*#8` : meminst*, `tableinst*#8` : tableinst*, `funcinst*#7` : funcinst*, `datainst*#6` : datainst*, `eleminst*#6` : eleminst*, `structinst*#7` : structinst*, `arrayinst*#7` : arrayinst*, `exninst*#6` : exninst*, `globalinst*#8` : globalinst*, globaltype#2088 : globaltype, val#3 : val}(s, globaltype, val) = (s +++ {`TAGS`{`taginst*#7`} [], `GLOBALS`{`globalinst*#7`} [globalinst], `MEMS`{`meminst*#8`} [], `TABLES`{`tableinst*#8`} [], `FUNCS`{`funcinst*#7`} [], `DATAS`{`datainst*#6`} [], `ELEMS`{`eleminst*#6`} [], `STRUCTS`{`structinst*#7`} [], `ARRAYS`{`arrayinst*#7`} [], `EXNS`{`exninst*#6`} []}, |s.`GLOBALS`_store{`globalinst*#8`}|) + -- if (globalinst = {`TYPE`{globaltype#2088} globaltype, `VALUE`{val#3} val}) +[check_dims] _ store +DecD allocglobals(store : store, globaltype*, val*) : (store, globaladdr*) +[visit_id store] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] s +[visit_exp s] +[visit_id s] +[visit_exp []] +[visit_exp []] +[visit_exp (s, [])] +[visit_exp s] +[visit_id s] not free +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocglobals{s : store}(s, [], []) = (s, []) +[check_dims] ga ga' globaltype globaltype' s s_1 s_2 val val' +[visit_exp s] +[visit_id s] +[visit_exp [globaltype] ++ globaltype'*{globaltype' <- `globaltype'*`}] +[visit_exp [globaltype]] +[visit_exp globaltype] +[visit_id globaltype] +[visit_exp globaltype'*{globaltype' <- `globaltype'*`}] +[scope_enter globaltype'] +[visit_exp globaltype'] +[visit_id globaltype'] not free +[visit_id globaltype'] not free +[scope_exit globaltype'] +[visit_exp `globaltype'*`] +[visit_id globaltype'*] no dims +[visit_id globaltype'*] +[visit_exp [val] ++ val'*{val' <- `val'*`}] +[visit_exp [val]] +[visit_exp val] +[visit_id val] +[visit_exp val'*{val' <- `val'*`}] +[scope_enter val'] +[visit_exp val'] +[visit_id val'] not free +[visit_id val'] not free +[scope_exit val'] +[visit_exp `val'*`] +[visit_id val'*] no dims +[visit_id val'*] +[visit_exp (s_2, [ga] ++ ga'*{ga' <- `ga'*`})] +[visit_exp s_2] +[visit_id s_2] +[visit_exp [ga] ++ ga'*{ga' <- `ga'*`}] +[visit_exp [ga]] +[visit_exp ga] +[visit_id ga] +[visit_exp ga'*{ga' <- `ga'*`}] +[scope_enter ga'] +[visit_exp ga'] +[visit_id ga'] not free +[visit_id ga'] not free +[scope_exit ga'] +[visit_exp `ga'*`] +[visit_id ga'*] no dims +[visit_id ga'*] +[visit_exp ((s_1, ga) = $allocglobal(s, globaltype, val))] +[visit_exp (s_1, ga)] +[visit_exp s_1] +[visit_id s_1] +[visit_exp ga] +[visit_id ga] not free +[visit_exp $allocglobal(s, globaltype, val)] +[visit_exp s] +[visit_id s] not free +[visit_exp globaltype] +[visit_id globaltype] not free +[visit_exp val] +[visit_id val] not free +[visit_exp ((s_2, ga'*{ga' <- `ga'*`}) = $allocglobals(s_1, globaltype'*{globaltype' <- `globaltype'*`}, val'*{val' <- `val'*`}))] +[visit_exp (s_2, ga'*{ga' <- `ga'*`})] +[visit_exp s_2] +[visit_id s_2] not free +[visit_exp ga'*{ga' <- `ga'*`}] +[scope_enter ga'] +[visit_exp ga'] +[visit_id ga'] not free +[visit_id ga'] not free +[scope_exit ga'] +[visit_exp `ga'*`] +[visit_id ga'*] not free +[visit_id ga'*] no dims +[visit_exp $allocglobals(s_1, globaltype'*{globaltype' <- `globaltype'*`}, val'*{val' <- `val'*`})] +[visit_exp s_1] +[visit_id s_1] not free +[visit_exp globaltype'*{globaltype' <- `globaltype'*`}] +[scope_enter globaltype'] +[visit_exp globaltype'] +[visit_id globaltype'] not free +[visit_id globaltype'] not free +[scope_exit globaltype'] +[visit_exp `globaltype'*`] +[visit_id globaltype'*] not free +[visit_id globaltype'*] no dims +[visit_exp val'*{val' <- `val'*`}] +[scope_enter val'] +[visit_exp val'] +[visit_id val'] not free +[visit_id val'] not free +[scope_exit val'] +[visit_exp `val'*`] +[visit_id val'*] not free +[visit_id val'*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocglobals{s : store, globaltype : globaltype, `globaltype'*` : globaltype*, val : val, `val'*` : val*, s_2 : store, ga : globaladdr, `ga'*` : globaladdr*, s_1 : store}(s, [globaltype] ++ globaltype'*{globaltype' <- `globaltype'*`}, [val] ++ val'*{val' <- `val'*`}) = (s_2, [ga] ++ ga'*{ga' <- `ga'*`}) + -- if ((s_1, ga) = $allocglobal(s, globaltype, val)) + -- if ((s_2, ga'*{ga' <- `ga'*`}) = $allocglobals(s_1, globaltype'*{globaltype' <- `globaltype'*`}, val'*{val' <- `val'*`})) +[check_dims] _ memtype store +DecD allocmem(store : store, memtype : memtype) : (store, memaddr) +[visit_id store] not free +[visit_id memtype] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] addrtype#1147 addrtype#1159 arrayinst*#8 at byte*#1879 datainst*#7 eleminst*#7 exninst*#7 funcinst*#8 globalinst*#9 i i#46867 i#46875 j limits#1147 limits#1159 meminst meminst*#10 meminst*#9 memtype#531 s structinst*#8 tableinst*#9 taginst*#8 u64#443 u64#455 u64?#419 u64?#431 +[visit_exp s] +[visit_id s] +[visit_exp `%%PAGE`_memtype{addrtype#1147, limits#1147}(at, `[%..%]`_limits{u64#443, `u64?#419`}(i, j?{j <- `j?`}))] +[visit_exp addrtype#1147] +[visit_id addrtype#1147] +[visit_exp limits#1147] +[visit_id limits#1147] +[visit_exp (at, `[%..%]`_limits{u64#443, `u64?#419`}(i, j?{j <- `j?`}))] +[visit_exp at] +[visit_id at] +[visit_exp `[%..%]`_limits{u64#443, `u64?#419`}(i, j?{j <- `j?`})] +[visit_exp u64#443] +[visit_id u64#443] +[visit_exp `u64?#419`] +[visit_id u64?#419] +[visit_exp (i, j?{j <- `j?`})] +[visit_exp i] +[visit_id i] +[visit_exp j?{j <- `j?`}] +[scope_enter j] +[visit_exp j] +[visit_id j] not free +[visit_id j] not free +[scope_exit j] +[visit_exp `j?`] +[visit_id j?] no dims +[visit_id j?] +[visit_exp (s +++ {`TAGS`{`taginst*#8`} [], `GLOBALS`{`globalinst*#9`} [], `MEMS`{`meminst*#9`} [meminst], `TABLES`{`tableinst*#9`} [], `FUNCS`{`funcinst*#8`} [], `DATAS`{`datainst*#7`} [], `ELEMS`{`eleminst*#7`} [], `STRUCTS`{`structinst*#8`} [], `ARRAYS`{`arrayinst*#8`} [], `EXNS`{`exninst*#7`} []}, |s.`MEMS`_store{`meminst*#10`}|)] +[visit_exp s +++ {`TAGS`{`taginst*#8`} [], `GLOBALS`{`globalinst*#9`} [], `MEMS`{`meminst*#9`} [meminst], `TABLES`{`tableinst*#9`} [], `FUNCS`{`funcinst*#8`} [], `DATAS`{`datainst*#7`} [], `ELEMS`{`eleminst*#7`} [], `STRUCTS`{`structinst*#8`} [], `ARRAYS`{`arrayinst*#8`} [], `EXNS`{`exninst*#7`} []}] +[visit_exp s] +[visit_id s] not free +[visit_exp {`TAGS`{`taginst*#8`} [], `GLOBALS`{`globalinst*#9`} [], `MEMS`{`meminst*#9`} [meminst], `TABLES`{`tableinst*#9`} [], `FUNCS`{`funcinst*#8`} [], `DATAS`{`datainst*#7`} [], `ELEMS`{`eleminst*#7`} [], `STRUCTS`{`structinst*#8`} [], `ARRAYS`{`arrayinst*#8`} [], `EXNS`{`exninst*#7`} []}] +[visit_exp `taginst*#8`] +[visit_id taginst*#8] +[visit_exp []] +[visit_exp `globalinst*#9`] +[visit_id globalinst*#9] +[visit_exp []] +[visit_exp `meminst*#9`] +[visit_id meminst*#9] +[visit_exp [meminst]] +[visit_exp meminst] +[visit_id meminst] +[visit_exp `tableinst*#9`] +[visit_id tableinst*#9] +[visit_exp []] +[visit_exp `funcinst*#8`] +[visit_id funcinst*#8] +[visit_exp []] +[visit_exp `datainst*#7`] +[visit_id datainst*#7] +[visit_exp []] +[visit_exp `eleminst*#7`] +[visit_id eleminst*#7] +[visit_exp []] +[visit_exp `structinst*#8`] +[visit_id structinst*#8] +[visit_exp []] +[visit_exp `arrayinst*#8`] +[visit_id arrayinst*#8] +[visit_exp []] +[visit_exp `exninst*#7`] +[visit_id exninst*#7] +[visit_exp []] +[visit_exp |s.`MEMS`_store{`meminst*#10`}|] +[visit_exp s.`MEMS`_store{`meminst*#10`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `meminst*#10`] +[visit_id meminst*#10] +[visit_exp (meminst = {`TYPE`{memtype#531} `%%PAGE`_memtype{addrtype#1159, limits#1159}(at, `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1879`} `%`_byte{i#46875}(0)^(i!`%`_u64{i#46867}.0 * (64 * $Ki)){i#46875 <- `i#46875*`}})] +[visit_exp meminst] +[visit_id meminst] not free +[visit_exp {`TYPE`{memtype#531} `%%PAGE`_memtype{addrtype#1159, limits#1159}(at, `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1879`} `%`_byte{i#46875}(0)^(i!`%`_u64{i#46867}.0 * (64 * $Ki)){i#46875 <- `i#46875*`}}] +[visit_exp memtype#531] +[visit_id memtype#531] +[visit_exp `%%PAGE`_memtype{addrtype#1159, limits#1159}(at, `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`}))] +[visit_exp addrtype#1159] +[visit_id addrtype#1159] +[visit_exp limits#1159] +[visit_id limits#1159] +[visit_exp (at, `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`}))] +[visit_exp at] +[visit_id at] not free +[visit_exp `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`})] +[visit_exp u64#455] +[visit_id u64#455] +[visit_exp `u64?#431`] +[visit_id u64?#431] +[visit_exp (i, j?{j <- `j?`})] +[visit_exp i] +[visit_id i] not free +[visit_exp j?{j <- `j?`}] +[scope_enter j] +[visit_exp j] +[visit_id j] not free +[visit_id j] not free +[scope_exit j] +[visit_exp `j?`] +[visit_id j?] not free +[visit_id j?] no dims +[visit_exp `byte*#1879`] +[visit_id byte*#1879] +[visit_exp `%`_byte{i#46875}(0)^(i!`%`_u64{i#46867}.0 * (64 * $Ki)){i#46875 <- `i#46875*`}] +[scope_enter i#46875] +[visit_exp `%`_byte{i#46875}(0)] +[visit_exp i#46875] +[visit_id i#46875] not free +[visit_exp (0)] +[visit_exp 0] +[visit_id i#46875] not free +[scope_exit i#46875] +[visit_exp (i!`%`_u64{i#46867}.0 * (64 * $Ki))] +[visit_exp i!`%`_u64{i#46867}.0] +[visit_exp i!`%`_u64{i#46867}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#46867] +[visit_id i#46867] +[visit_exp (64 * $Ki)] +[visit_exp 64] +[visit_exp $Ki] +[visit_exp `i#46875*`] +[visit_id i#46875*] no dims +[visit_id i#46875*] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocmem{s : store, addrtype#1147 : addrtype, limits#1147 : limits, at : addrtype, u64#443 : u64, `u64?#419` : u64?, i : u64, `j?` : u64?, `taginst*#8` : taginst*, `globalinst*#9` : globalinst*, `meminst*#9` : meminst*, meminst : meminst, `tableinst*#9` : tableinst*, `funcinst*#8` : funcinst*, `datainst*#7` : datainst*, `eleminst*#7` : eleminst*, `structinst*#8` : structinst*, `arrayinst*#8` : arrayinst*, `exninst*#7` : exninst*, `meminst*#10` : meminst*, memtype#531 : memtype, addrtype#1159 : addrtype, limits#1159 : limits, u64#455 : u64, `u64?#431` : u64?, `byte*#1879` : byte*, i#46867 : nat, `i#46875*` : nat*}(s, `%%PAGE`_memtype{addrtype#1147, limits#1147}(at, `[%..%]`_limits{u64#443, `u64?#419`}(i, j?{j <- `j?`}))) = (s +++ {`TAGS`{`taginst*#8`} [], `GLOBALS`{`globalinst*#9`} [], `MEMS`{`meminst*#9`} [meminst], `TABLES`{`tableinst*#9`} [], `FUNCS`{`funcinst*#8`} [], `DATAS`{`datainst*#7`} [], `ELEMS`{`eleminst*#7`} [], `STRUCTS`{`structinst*#8`} [], `ARRAYS`{`arrayinst*#8`} [], `EXNS`{`exninst*#7`} []}, |s.`MEMS`_store{`meminst*#10`}|) + -- if (meminst = {`TYPE`{memtype#531} `%%PAGE`_memtype{addrtype#1159, limits#1159}(at, `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1879`} `%`_byte{i#46875}(0)^(i!`%`_u64{i#46867}.0 * (64 * $Ki)){i#46875 <- `i#46875*`}}) +[check_dims] _ store +DecD allocmems(store : store, memtype*) : (store, memaddr*) +[visit_id store] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] s +[visit_exp s] +[visit_id s] +[visit_exp []] +[visit_exp (s, [])] +[visit_exp s] +[visit_id s] not free +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocmems{s : store}(s, []) = (s, []) +[check_dims] ma ma' memtype memtype' s s_1 s_2 +[visit_exp s] +[visit_id s] +[visit_exp [memtype] ++ memtype'*{memtype' <- `memtype'*`}] +[visit_exp [memtype]] +[visit_exp memtype] +[visit_id memtype] +[visit_exp memtype'*{memtype' <- `memtype'*`}] +[scope_enter memtype'] +[visit_exp memtype'] +[visit_id memtype'] not free +[visit_id memtype'] not free +[scope_exit memtype'] +[visit_exp `memtype'*`] +[visit_id memtype'*] no dims +[visit_id memtype'*] +[visit_exp (s_2, [ma] ++ ma'*{ma' <- `ma'*`})] +[visit_exp s_2] +[visit_id s_2] +[visit_exp [ma] ++ ma'*{ma' <- `ma'*`}] +[visit_exp [ma]] +[visit_exp ma] +[visit_id ma] +[visit_exp ma'*{ma' <- `ma'*`}] +[scope_enter ma'] +[visit_exp ma'] +[visit_id ma'] not free +[visit_id ma'] not free +[scope_exit ma'] +[visit_exp `ma'*`] +[visit_id ma'*] no dims +[visit_id ma'*] +[visit_exp ((s_1, ma) = $allocmem(s, memtype))] +[visit_exp (s_1, ma)] +[visit_exp s_1] +[visit_id s_1] +[visit_exp ma] +[visit_id ma] not free +[visit_exp $allocmem(s, memtype)] +[visit_exp s] +[visit_id s] not free +[visit_exp memtype] +[visit_id memtype] not free +[visit_exp ((s_2, ma'*{ma' <- `ma'*`}) = $allocmems(s_1, memtype'*{memtype' <- `memtype'*`}))] +[visit_exp (s_2, ma'*{ma' <- `ma'*`})] +[visit_exp s_2] +[visit_id s_2] not free +[visit_exp ma'*{ma' <- `ma'*`}] +[scope_enter ma'] +[visit_exp ma'] +[visit_id ma'] not free +[visit_id ma'] not free +[scope_exit ma'] +[visit_exp `ma'*`] +[visit_id ma'*] not free +[visit_id ma'*] no dims +[visit_exp $allocmems(s_1, memtype'*{memtype' <- `memtype'*`})] +[visit_exp s_1] +[visit_id s_1] not free +[visit_exp memtype'*{memtype' <- `memtype'*`}] +[scope_enter memtype'] +[visit_exp memtype'] +[visit_id memtype'] not free +[visit_id memtype'] not free +[scope_exit memtype'] +[visit_exp `memtype'*`] +[visit_id memtype'*] not free +[visit_id memtype'*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocmems{s : store, memtype : memtype, `memtype'*` : memtype*, s_2 : store, ma : memaddr, `ma'*` : memaddr*, s_1 : store}(s, [memtype] ++ memtype'*{memtype' <- `memtype'*`}) = (s_2, [ma] ++ ma'*{ma' <- `ma'*`}) + -- if ((s_1, ma) = $allocmem(s, memtype)) + -- if ((s_2, ma'*{ma' <- `ma'*`}) = $allocmems(s_1, memtype'*{memtype' <- `memtype'*`})) +[check_dims] _ ref store tabletype +DecD alloctable(store : store, tabletype : tabletype, ref : ref) : (store, tableaddr) +[visit_id store] not free +[visit_id tabletype] not free +[visit_id ref] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] addrtype#1219 addrtype#1231 arrayinst*#9 at datainst*#8 eleminst*#8 exninst*#8 funcinst*#9 globalinst*#10 i i#46955 j limits#1219 limits#1231 meminst*#11 ref ref*#22 reftype#3485 reftype#3497 rt s structinst*#9 tableinst tableinst*#10 tableinst*#11 tabletype#881 taginst*#9 u64#467 u64#479 u64?#443 u64?#455 +[visit_exp s] +[visit_id s] +[visit_exp `%%%`_tabletype{addrtype#1219, limits#1219, reftype#3485}(at, `[%..%]`_limits{u64#467, `u64?#443`}(i, j?{j <- `j?`}), rt)] +[visit_exp addrtype#1219] +[visit_id addrtype#1219] +[visit_exp limits#1219] +[visit_id limits#1219] +[visit_exp reftype#3485] +[visit_id reftype#3485] +[visit_exp (at, `[%..%]`_limits{u64#467, `u64?#443`}(i, j?{j <- `j?`}), rt)] +[visit_exp at] +[visit_id at] +[visit_exp `[%..%]`_limits{u64#467, `u64?#443`}(i, j?{j <- `j?`})] +[visit_exp u64#467] +[visit_id u64#467] +[visit_exp `u64?#443`] +[visit_id u64?#443] +[visit_exp (i, j?{j <- `j?`})] +[visit_exp i] +[visit_id i] +[visit_exp j?{j <- `j?`}] +[scope_enter j] +[visit_exp j] +[visit_id j] not free +[visit_id j] not free +[scope_exit j] +[visit_exp `j?`] +[visit_id j?] no dims +[visit_id j?] +[visit_exp rt] +[visit_id rt] +[visit_exp ref] +[visit_id ref] +[visit_exp (s +++ {`TAGS`{`taginst*#9`} [], `GLOBALS`{`globalinst*#10`} [], `MEMS`{`meminst*#11`} [], `TABLES`{`tableinst*#10`} [tableinst], `FUNCS`{`funcinst*#9`} [], `DATAS`{`datainst*#8`} [], `ELEMS`{`eleminst*#8`} [], `STRUCTS`{`structinst*#9`} [], `ARRAYS`{`arrayinst*#9`} [], `EXNS`{`exninst*#8`} []}, |s.`TABLES`_store{`tableinst*#11`}|)] +[visit_exp s +++ {`TAGS`{`taginst*#9`} [], `GLOBALS`{`globalinst*#10`} [], `MEMS`{`meminst*#11`} [], `TABLES`{`tableinst*#10`} [tableinst], `FUNCS`{`funcinst*#9`} [], `DATAS`{`datainst*#8`} [], `ELEMS`{`eleminst*#8`} [], `STRUCTS`{`structinst*#9`} [], `ARRAYS`{`arrayinst*#9`} [], `EXNS`{`exninst*#8`} []}] +[visit_exp s] +[visit_id s] not free +[visit_exp {`TAGS`{`taginst*#9`} [], `GLOBALS`{`globalinst*#10`} [], `MEMS`{`meminst*#11`} [], `TABLES`{`tableinst*#10`} [tableinst], `FUNCS`{`funcinst*#9`} [], `DATAS`{`datainst*#8`} [], `ELEMS`{`eleminst*#8`} [], `STRUCTS`{`structinst*#9`} [], `ARRAYS`{`arrayinst*#9`} [], `EXNS`{`exninst*#8`} []}] +[visit_exp `taginst*#9`] +[visit_id taginst*#9] +[visit_exp []] +[visit_exp `globalinst*#10`] +[visit_id globalinst*#10] +[visit_exp []] +[visit_exp `meminst*#11`] +[visit_id meminst*#11] +[visit_exp []] +[visit_exp `tableinst*#10`] +[visit_id tableinst*#10] +[visit_exp [tableinst]] +[visit_exp tableinst] +[visit_id tableinst] +[visit_exp `funcinst*#9`] +[visit_id funcinst*#9] +[visit_exp []] +[visit_exp `datainst*#8`] +[visit_id datainst*#8] +[visit_exp []] +[visit_exp `eleminst*#8`] +[visit_id eleminst*#8] +[visit_exp []] +[visit_exp `structinst*#9`] +[visit_id structinst*#9] +[visit_exp []] +[visit_exp `arrayinst*#9`] +[visit_id arrayinst*#9] +[visit_exp []] +[visit_exp `exninst*#8`] +[visit_id exninst*#8] +[visit_exp []] +[visit_exp |s.`TABLES`_store{`tableinst*#11`}|] +[visit_exp s.`TABLES`_store{`tableinst*#11`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `tableinst*#11`] +[visit_id tableinst*#11] +[visit_exp (tableinst = {`TYPE`{tabletype#881} `%%%`_tabletype{addrtype#1231, limits#1231, reftype#3497}(at, `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#22`} ref^i!`%`_u64{i#46955}.0{}})] +[visit_exp tableinst] +[visit_id tableinst] not free +[visit_exp {`TYPE`{tabletype#881} `%%%`_tabletype{addrtype#1231, limits#1231, reftype#3497}(at, `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#22`} ref^i!`%`_u64{i#46955}.0{}}] +[visit_exp tabletype#881] +[visit_id tabletype#881] +[visit_exp `%%%`_tabletype{addrtype#1231, limits#1231, reftype#3497}(at, `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`}), rt)] +[visit_exp addrtype#1231] +[visit_id addrtype#1231] +[visit_exp limits#1231] +[visit_id limits#1231] +[visit_exp reftype#3497] +[visit_id reftype#3497] +[visit_exp (at, `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`}), rt)] +[visit_exp at] +[visit_id at] not free +[visit_exp `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`})] +[visit_exp u64#479] +[visit_id u64#479] +[visit_exp `u64?#455`] +[visit_id u64?#455] +[visit_exp (i, j?{j <- `j?`})] +[visit_exp i] +[visit_id i] not free +[visit_exp j?{j <- `j?`}] +[scope_enter j] +[visit_exp j] +[visit_id j] not free +[visit_id j] not free +[scope_exit j] +[visit_exp `j?`] +[visit_id j?] not free +[visit_id j?] no dims +[visit_exp rt] +[visit_id rt] not free +[visit_exp `ref*#22`] +[visit_id ref*#22] +[visit_exp ref^i!`%`_u64{i#46955}.0{}] +[visit_exp ref] +[visit_id ref] not free +[visit_exp i!`%`_u64{i#46955}.0] +[visit_exp i!`%`_u64{i#46955}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#46955] +[visit_id i#46955] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $alloctable{s : store, addrtype#1219 : addrtype, limits#1219 : limits, reftype#3485 : reftype, at : addrtype, u64#467 : u64, `u64?#443` : u64?, i : u64, `j?` : u64?, rt : reftype, ref : ref, `taginst*#9` : taginst*, `globalinst*#10` : globalinst*, `meminst*#11` : meminst*, `tableinst*#10` : tableinst*, tableinst : tableinst, `funcinst*#9` : funcinst*, `datainst*#8` : datainst*, `eleminst*#8` : eleminst*, `structinst*#9` : structinst*, `arrayinst*#9` : arrayinst*, `exninst*#8` : exninst*, `tableinst*#11` : tableinst*, tabletype#881 : tabletype, addrtype#1231 : addrtype, limits#1231 : limits, reftype#3497 : reftype, u64#479 : u64, `u64?#455` : u64?, `ref*#22` : ref*, i#46955 : nat}(s, `%%%`_tabletype{addrtype#1219, limits#1219, reftype#3485}(at, `[%..%]`_limits{u64#467, `u64?#443`}(i, j?{j <- `j?`}), rt), ref) = (s +++ {`TAGS`{`taginst*#9`} [], `GLOBALS`{`globalinst*#10`} [], `MEMS`{`meminst*#11`} [], `TABLES`{`tableinst*#10`} [tableinst], `FUNCS`{`funcinst*#9`} [], `DATAS`{`datainst*#8`} [], `ELEMS`{`eleminst*#8`} [], `STRUCTS`{`structinst*#9`} [], `ARRAYS`{`arrayinst*#9`} [], `EXNS`{`exninst*#8`} []}, |s.`TABLES`_store{`tableinst*#11`}|) + -- if (tableinst = {`TYPE`{tabletype#881} `%%%`_tabletype{addrtype#1231, limits#1231, reftype#3497}(at, `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#22`} ref^i!`%`_u64{i#46955}.0{}}) +[check_dims] _ store +DecD alloctables(store : store, tabletype*, ref*) : (store, tableaddr*) +[visit_id store] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] s +[visit_exp s] +[visit_id s] +[visit_exp []] +[visit_exp []] +[visit_exp (s, [])] +[visit_exp s] +[visit_id s] not free +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $alloctables{s : store}(s, [], []) = (s, []) +[check_dims] ref ref' s s_1 s_2 ta ta' tabletype tabletype' +[visit_exp s] +[visit_id s] +[visit_exp [tabletype] ++ tabletype'*{tabletype' <- `tabletype'*`}] +[visit_exp [tabletype]] +[visit_exp tabletype] +[visit_id tabletype] +[visit_exp tabletype'*{tabletype' <- `tabletype'*`}] +[scope_enter tabletype'] +[visit_exp tabletype'] +[visit_id tabletype'] not free +[visit_id tabletype'] not free +[scope_exit tabletype'] +[visit_exp `tabletype'*`] +[visit_id tabletype'*] no dims +[visit_id tabletype'*] +[visit_exp [ref] ++ ref'*{ref' <- `ref'*`}] +[visit_exp [ref]] +[visit_exp ref] +[visit_id ref] +[visit_exp ref'*{ref' <- `ref'*`}] +[scope_enter ref'] +[visit_exp ref'] +[visit_id ref'] not free +[visit_id ref'] not free +[scope_exit ref'] +[visit_exp `ref'*`] +[visit_id ref'*] no dims +[visit_id ref'*] +[visit_exp (s_2, [ta] ++ ta'*{ta' <- `ta'*`})] +[visit_exp s_2] +[visit_id s_2] +[visit_exp [ta] ++ ta'*{ta' <- `ta'*`}] +[visit_exp [ta]] +[visit_exp ta] +[visit_id ta] +[visit_exp ta'*{ta' <- `ta'*`}] +[scope_enter ta'] +[visit_exp ta'] +[visit_id ta'] not free +[visit_id ta'] not free +[scope_exit ta'] +[visit_exp `ta'*`] +[visit_id ta'*] no dims +[visit_id ta'*] +[visit_exp ((s_1, ta) = $alloctable(s, tabletype, ref))] +[visit_exp (s_1, ta)] +[visit_exp s_1] +[visit_id s_1] +[visit_exp ta] +[visit_id ta] not free +[visit_exp $alloctable(s, tabletype, ref)] +[visit_exp s] +[visit_id s] not free +[visit_exp tabletype] +[visit_id tabletype] not free +[visit_exp ref] +[visit_id ref] not free +[visit_exp ((s_2, ta'*{ta' <- `ta'*`}) = $alloctables(s_1, tabletype'*{tabletype' <- `tabletype'*`}, ref'*{ref' <- `ref'*`}))] +[visit_exp (s_2, ta'*{ta' <- `ta'*`})] +[visit_exp s_2] +[visit_id s_2] not free +[visit_exp ta'*{ta' <- `ta'*`}] +[scope_enter ta'] +[visit_exp ta'] +[visit_id ta'] not free +[visit_id ta'] not free +[scope_exit ta'] +[visit_exp `ta'*`] +[visit_id ta'*] not free +[visit_id ta'*] no dims +[visit_exp $alloctables(s_1, tabletype'*{tabletype' <- `tabletype'*`}, ref'*{ref' <- `ref'*`})] +[visit_exp s_1] +[visit_id s_1] not free +[visit_exp tabletype'*{tabletype' <- `tabletype'*`}] +[scope_enter tabletype'] +[visit_exp tabletype'] +[visit_id tabletype'] not free +[visit_id tabletype'] not free +[scope_exit tabletype'] +[visit_exp `tabletype'*`] +[visit_id tabletype'*] not free +[visit_id tabletype'*] no dims +[visit_exp ref'*{ref' <- `ref'*`}] +[scope_enter ref'] +[visit_exp ref'] +[visit_id ref'] not free +[visit_id ref'] not free +[scope_exit ref'] +[visit_exp `ref'*`] +[visit_id ref'*] not free +[visit_id ref'*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $alloctables{s : store, tabletype : tabletype, `tabletype'*` : tabletype*, ref : ref, `ref'*` : ref*, s_2 : store, ta : tableaddr, `ta'*` : tableaddr*, s_1 : store}(s, [tabletype] ++ tabletype'*{tabletype' <- `tabletype'*`}, [ref] ++ ref'*{ref' <- `ref'*`}) = (s_2, [ta] ++ ta'*{ta' <- `ta'*`}) + -- if ((s_1, ta) = $alloctable(s, tabletype, ref)) + -- if ((s_2, ta'*{ta' <- `ta'*`}) = $alloctables(s_1, tabletype'*{tabletype' <- `tabletype'*`}, ref'*{ref' <- `ref'*`})) +[check_dims] _ deftype funccode moduleinst store +DecD allocfunc(store : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst) : (store, funcaddr) +[visit_id store] not free +[visit_id deftype] not free +[visit_id funccode] not free +[visit_id moduleinst] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] arrayinst*#10 datainst*#9 deftype deftype#11 eleminst*#9 exninst*#9 funccode funccode#2 funcinst funcinst*#10 funcinst*#11 globalinst*#11 meminst*#12 moduleinst moduleinst#25 s structinst*#10 tableinst*#12 taginst*#10 +[visit_exp s] +[visit_id s] +[visit_exp deftype] +[visit_id deftype] +[visit_exp funccode] +[visit_id funccode] +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp (s +++ {`TAGS`{`taginst*#10`} [], `GLOBALS`{`globalinst*#11`} [], `MEMS`{`meminst*#12`} [], `TABLES`{`tableinst*#12`} [], `FUNCS`{`funcinst*#10`} [funcinst], `DATAS`{`datainst*#9`} [], `ELEMS`{`eleminst*#9`} [], `STRUCTS`{`structinst*#10`} [], `ARRAYS`{`arrayinst*#10`} [], `EXNS`{`exninst*#9`} []}, |s.`FUNCS`_store{`funcinst*#11`}|)] +[visit_exp s +++ {`TAGS`{`taginst*#10`} [], `GLOBALS`{`globalinst*#11`} [], `MEMS`{`meminst*#12`} [], `TABLES`{`tableinst*#12`} [], `FUNCS`{`funcinst*#10`} [funcinst], `DATAS`{`datainst*#9`} [], `ELEMS`{`eleminst*#9`} [], `STRUCTS`{`structinst*#10`} [], `ARRAYS`{`arrayinst*#10`} [], `EXNS`{`exninst*#9`} []}] +[visit_exp s] +[visit_id s] not free +[visit_exp {`TAGS`{`taginst*#10`} [], `GLOBALS`{`globalinst*#11`} [], `MEMS`{`meminst*#12`} [], `TABLES`{`tableinst*#12`} [], `FUNCS`{`funcinst*#10`} [funcinst], `DATAS`{`datainst*#9`} [], `ELEMS`{`eleminst*#9`} [], `STRUCTS`{`structinst*#10`} [], `ARRAYS`{`arrayinst*#10`} [], `EXNS`{`exninst*#9`} []}] +[visit_exp `taginst*#10`] +[visit_id taginst*#10] +[visit_exp []] +[visit_exp `globalinst*#11`] +[visit_id globalinst*#11] +[visit_exp []] +[visit_exp `meminst*#12`] +[visit_id meminst*#12] +[visit_exp []] +[visit_exp `tableinst*#12`] +[visit_id tableinst*#12] +[visit_exp []] +[visit_exp `funcinst*#10`] +[visit_id funcinst*#10] +[visit_exp [funcinst]] +[visit_exp funcinst] +[visit_id funcinst] +[visit_exp `datainst*#9`] +[visit_id datainst*#9] +[visit_exp []] +[visit_exp `eleminst*#9`] +[visit_id eleminst*#9] +[visit_exp []] +[visit_exp `structinst*#10`] +[visit_id structinst*#10] +[visit_exp []] +[visit_exp `arrayinst*#10`] +[visit_id arrayinst*#10] +[visit_exp []] +[visit_exp `exninst*#9`] +[visit_id exninst*#9] +[visit_exp []] +[visit_exp |s.`FUNCS`_store{`funcinst*#11`}|] +[visit_exp s.`FUNCS`_store{`funcinst*#11`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `funcinst*#11`] +[visit_id funcinst*#11] +[visit_exp (funcinst = {`TYPE`{deftype#11} deftype, `MODULE`{moduleinst#25} moduleinst, `CODE`{funccode#2} funccode})] +[visit_exp funcinst] +[visit_id funcinst] not free +[visit_exp {`TYPE`{deftype#11} deftype, `MODULE`{moduleinst#25} moduleinst, `CODE`{funccode#2} funccode}] +[visit_exp deftype#11] +[visit_id deftype#11] +[visit_exp deftype] +[visit_id deftype] not free +[visit_exp moduleinst#25] +[visit_id moduleinst#25] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp funccode#2] +[visit_id funccode#2] +[visit_exp funccode] +[visit_id funccode] not free +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocfunc{s : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst, `taginst*#10` : taginst*, `globalinst*#11` : globalinst*, `meminst*#12` : meminst*, `tableinst*#12` : tableinst*, `funcinst*#10` : funcinst*, funcinst : funcinst, `datainst*#9` : datainst*, `eleminst*#9` : eleminst*, `structinst*#10` : structinst*, `arrayinst*#10` : arrayinst*, `exninst*#9` : exninst*, `funcinst*#11` : funcinst*, deftype#11 : deftype, moduleinst#25 : moduleinst, funccode#2 : funccode}(s, deftype, funccode, moduleinst) = (s +++ {`TAGS`{`taginst*#10`} [], `GLOBALS`{`globalinst*#11`} [], `MEMS`{`meminst*#12`} [], `TABLES`{`tableinst*#12`} [], `FUNCS`{`funcinst*#10`} [funcinst], `DATAS`{`datainst*#9`} [], `ELEMS`{`eleminst*#9`} [], `STRUCTS`{`structinst*#10`} [], `ARRAYS`{`arrayinst*#10`} [], `EXNS`{`exninst*#9`} []}, |s.`FUNCS`_store{`funcinst*#11`}|) + -- if (funcinst = {`TYPE`{deftype#11} deftype, `MODULE`{moduleinst#25} moduleinst, `CODE`{funccode#2} funccode}) +[check_dims] _ store +DecD allocfuncs(store : store, deftype*, funccode*, moduleinst*) : (store, funcaddr*) +[visit_id store] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] s +[visit_exp s] +[visit_id s] +[visit_exp []] +[visit_exp []] +[visit_exp []] +[visit_exp (s, [])] +[visit_exp s] +[visit_id s] not free +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocfuncs{s : store}(s, [], [], []) = (s, []) +[check_dims] dt dt' fa fa' funccode funccode' moduleinst moduleinst' s s_1 s_2 +[visit_exp s] +[visit_id s] +[visit_exp [dt] ++ dt'*{dt' <- `dt'*`}] +[visit_exp [dt]] +[visit_exp dt] +[visit_id dt] +[visit_exp dt'*{dt' <- `dt'*`}] +[scope_enter dt'] +[visit_exp dt'] +[visit_id dt'] not free +[visit_id dt'] not free +[scope_exit dt'] +[visit_exp `dt'*`] +[visit_id dt'*] no dims +[visit_id dt'*] +[visit_exp [funccode] ++ funccode'*{funccode' <- `funccode'*`}] +[visit_exp [funccode]] +[visit_exp funccode] +[visit_id funccode] +[visit_exp funccode'*{funccode' <- `funccode'*`}] +[scope_enter funccode'] +[visit_exp funccode'] +[visit_id funccode'] not free +[visit_id funccode'] not free +[scope_exit funccode'] +[visit_exp `funccode'*`] +[visit_id funccode'*] no dims +[visit_id funccode'*] +[visit_exp [moduleinst] ++ moduleinst'*{moduleinst' <- `moduleinst'*`}] +[visit_exp [moduleinst]] +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp moduleinst'*{moduleinst' <- `moduleinst'*`}] +[scope_enter moduleinst'] +[visit_exp moduleinst'] +[visit_id moduleinst'] not free +[visit_id moduleinst'] not free +[scope_exit moduleinst'] +[visit_exp `moduleinst'*`] +[visit_id moduleinst'*] no dims +[visit_id moduleinst'*] +[visit_exp (s_2, [fa] ++ fa'*{fa' <- `fa'*`})] +[visit_exp s_2] +[visit_id s_2] +[visit_exp [fa] ++ fa'*{fa' <- `fa'*`}] +[visit_exp [fa]] +[visit_exp fa] +[visit_id fa] +[visit_exp fa'*{fa' <- `fa'*`}] +[scope_enter fa'] +[visit_exp fa'] +[visit_id fa'] not free +[visit_id fa'] not free +[scope_exit fa'] +[visit_exp `fa'*`] +[visit_id fa'*] no dims +[visit_id fa'*] +[visit_exp ((s_1, fa) = $allocfunc(s, dt, funccode, moduleinst))] +[visit_exp (s_1, fa)] +[visit_exp s_1] +[visit_id s_1] +[visit_exp fa] +[visit_id fa] not free +[visit_exp $allocfunc(s, dt, funccode, moduleinst)] +[visit_exp s] +[visit_id s] not free +[visit_exp dt] +[visit_id dt] not free +[visit_exp funccode] +[visit_id funccode] not free +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp ((s_2, fa'*{fa' <- `fa'*`}) = $allocfuncs(s_1, dt'*{dt' <- `dt'*`}, funccode'*{funccode' <- `funccode'*`}, moduleinst'*{moduleinst' <- `moduleinst'*`}))] +[visit_exp (s_2, fa'*{fa' <- `fa'*`})] +[visit_exp s_2] +[visit_id s_2] not free +[visit_exp fa'*{fa' <- `fa'*`}] +[scope_enter fa'] +[visit_exp fa'] +[visit_id fa'] not free +[visit_id fa'] not free +[scope_exit fa'] +[visit_exp `fa'*`] +[visit_id fa'*] not free +[visit_id fa'*] no dims +[visit_exp $allocfuncs(s_1, dt'*{dt' <- `dt'*`}, funccode'*{funccode' <- `funccode'*`}, moduleinst'*{moduleinst' <- `moduleinst'*`})] +[visit_exp s_1] +[visit_id s_1] not free +[visit_exp dt'*{dt' <- `dt'*`}] +[scope_enter dt'] +[visit_exp dt'] +[visit_id dt'] not free +[visit_id dt'] not free +[scope_exit dt'] +[visit_exp `dt'*`] +[visit_id dt'*] not free +[visit_id dt'*] no dims +[visit_exp funccode'*{funccode' <- `funccode'*`}] +[scope_enter funccode'] +[visit_exp funccode'] +[visit_id funccode'] not free +[visit_id funccode'] not free +[scope_exit funccode'] +[visit_exp `funccode'*`] +[visit_id funccode'*] not free +[visit_id funccode'*] no dims +[visit_exp moduleinst'*{moduleinst' <- `moduleinst'*`}] +[scope_enter moduleinst'] +[visit_exp moduleinst'] +[visit_id moduleinst'] not free +[visit_id moduleinst'] not free +[scope_exit moduleinst'] +[visit_exp `moduleinst'*`] +[visit_id moduleinst'*] not free +[visit_id moduleinst'*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocfuncs{s : store, dt : deftype, `dt'*` : deftype*, funccode : funccode, `funccode'*` : funccode*, moduleinst : moduleinst, `moduleinst'*` : moduleinst*, s_2 : store, fa : funcaddr, `fa'*` : funcaddr*, s_1 : store}(s, [dt] ++ dt'*{dt' <- `dt'*`}, [funccode] ++ funccode'*{funccode' <- `funccode'*`}, [moduleinst] ++ moduleinst'*{moduleinst' <- `moduleinst'*`}) = (s_2, [fa] ++ fa'*{fa' <- `fa'*`}) + -- if ((s_1, fa) = $allocfunc(s, dt, funccode, moduleinst)) + -- if ((s_2, fa'*{fa' <- `fa'*`}) = $allocfuncs(s_1, dt'*{dt' <- `dt'*`}, funccode'*{funccode' <- `funccode'*`}, moduleinst'*{moduleinst' <- `moduleinst'*`})) +[check_dims] _ datatype store +DecD allocdata(store : store, datatype : datatype, byte*) : (store, dataaddr) +[visit_id store] not free +[visit_id datatype] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] arrayinst*#11 byte byte*#1880 datainst datainst*#10 datainst*#11 eleminst*#10 exninst*#10 funcinst*#12 globalinst*#12 meminst*#13 s structinst*#11 tableinst*#13 taginst*#11 +[visit_exp s] +[visit_id s] +[visit_exp `OK`_datatype] +[visit_exp ()] +[visit_exp byte*{byte <- `byte*`}] +[scope_enter byte] +[visit_exp byte] +[visit_id byte] not free +[visit_id byte] not free +[scope_exit byte] +[visit_exp `byte*`] +[visit_id byte*] no dims +[visit_id byte*] +[visit_exp (s +++ {`TAGS`{`taginst*#11`} [], `GLOBALS`{`globalinst*#12`} [], `MEMS`{`meminst*#13`} [], `TABLES`{`tableinst*#13`} [], `FUNCS`{`funcinst*#12`} [], `DATAS`{`datainst*#10`} [datainst], `ELEMS`{`eleminst*#10`} [], `STRUCTS`{`structinst*#11`} [], `ARRAYS`{`arrayinst*#11`} [], `EXNS`{`exninst*#10`} []}, |s.`DATAS`_store{`datainst*#11`}|)] +[visit_exp s +++ {`TAGS`{`taginst*#11`} [], `GLOBALS`{`globalinst*#12`} [], `MEMS`{`meminst*#13`} [], `TABLES`{`tableinst*#13`} [], `FUNCS`{`funcinst*#12`} [], `DATAS`{`datainst*#10`} [datainst], `ELEMS`{`eleminst*#10`} [], `STRUCTS`{`structinst*#11`} [], `ARRAYS`{`arrayinst*#11`} [], `EXNS`{`exninst*#10`} []}] +[visit_exp s] +[visit_id s] not free +[visit_exp {`TAGS`{`taginst*#11`} [], `GLOBALS`{`globalinst*#12`} [], `MEMS`{`meminst*#13`} [], `TABLES`{`tableinst*#13`} [], `FUNCS`{`funcinst*#12`} [], `DATAS`{`datainst*#10`} [datainst], `ELEMS`{`eleminst*#10`} [], `STRUCTS`{`structinst*#11`} [], `ARRAYS`{`arrayinst*#11`} [], `EXNS`{`exninst*#10`} []}] +[visit_exp `taginst*#11`] +[visit_id taginst*#11] +[visit_exp []] +[visit_exp `globalinst*#12`] +[visit_id globalinst*#12] +[visit_exp []] +[visit_exp `meminst*#13`] +[visit_id meminst*#13] +[visit_exp []] +[visit_exp `tableinst*#13`] +[visit_id tableinst*#13] +[visit_exp []] +[visit_exp `funcinst*#12`] +[visit_id funcinst*#12] +[visit_exp []] +[visit_exp `datainst*#10`] +[visit_id datainst*#10] +[visit_exp [datainst]] +[visit_exp datainst] +[visit_id datainst] +[visit_exp `eleminst*#10`] +[visit_id eleminst*#10] +[visit_exp []] +[visit_exp `structinst*#11`] +[visit_id structinst*#11] +[visit_exp []] +[visit_exp `arrayinst*#11`] +[visit_id arrayinst*#11] +[visit_exp []] +[visit_exp `exninst*#10`] +[visit_id exninst*#10] +[visit_exp []] +[visit_exp |s.`DATAS`_store{`datainst*#11`}|] +[visit_exp s.`DATAS`_store{`datainst*#11`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `datainst*#11`] +[visit_id datainst*#11] +[visit_exp (datainst = {`BYTES`{`byte*#1880`} byte*{byte <- `byte*`}})] +[visit_exp datainst] +[visit_id datainst] not free +[visit_exp {`BYTES`{`byte*#1880`} byte*{byte <- `byte*`}}] +[visit_exp `byte*#1880`] +[visit_id byte*#1880] +[visit_exp byte*{byte <- `byte*`}] +[scope_enter byte] +[visit_exp byte] +[visit_id byte] not free +[visit_id byte] not free +[scope_exit byte] +[visit_exp `byte*`] +[visit_id byte*] not free +[visit_id byte*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocdata{s : store, `byte*` : byte*, `taginst*#11` : taginst*, `globalinst*#12` : globalinst*, `meminst*#13` : meminst*, `tableinst*#13` : tableinst*, `funcinst*#12` : funcinst*, `datainst*#10` : datainst*, datainst : datainst, `eleminst*#10` : eleminst*, `structinst*#11` : structinst*, `arrayinst*#11` : arrayinst*, `exninst*#10` : exninst*, `datainst*#11` : datainst*, `byte*#1880` : byte*}(s, `OK`_datatype, byte*{byte <- `byte*`}) = (s +++ {`TAGS`{`taginst*#11`} [], `GLOBALS`{`globalinst*#12`} [], `MEMS`{`meminst*#13`} [], `TABLES`{`tableinst*#13`} [], `FUNCS`{`funcinst*#12`} [], `DATAS`{`datainst*#10`} [datainst], `ELEMS`{`eleminst*#10`} [], `STRUCTS`{`structinst*#11`} [], `ARRAYS`{`arrayinst*#11`} [], `EXNS`{`exninst*#10`} []}, |s.`DATAS`_store{`datainst*#11`}|) + -- if (datainst = {`BYTES`{`byte*#1880`} byte*{byte <- `byte*`}}) +[check_dims] _ store +DecD allocdatas(store : store, datatype*, byte**) : (store, dataaddr*) +[visit_id store] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] s +[visit_exp s] +[visit_id s] +[visit_exp []] +[visit_exp []] +[visit_exp (s, [])] +[visit_exp s] +[visit_id s] not free +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocdatas{s : store}(s, [], []) = (s, []) +[check_dims] b b' da da' ok ok' s s_1 s_2 +[visit_exp s] +[visit_id s] +[visit_exp [ok] ++ ok'*{ok' <- `ok'*`}] +[visit_exp [ok]] +[visit_exp ok] +[visit_id ok] +[visit_exp ok'*{ok' <- `ok'*`}] +[scope_enter ok'] +[visit_exp ok'] +[visit_id ok'] not free +[visit_id ok'] not free +[scope_exit ok'] +[visit_exp `ok'*`] +[visit_id ok'*] no dims +[visit_id ok'*] +[visit_exp [b*{b <- `b*`}] ++ b'*{b' <- `b'*`}*{`b'*` <- `b'**`}] +[visit_exp [b*{b <- `b*`}]] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp b'*{b' <- `b'*`}*{`b'*` <- `b'**`}] +[scope_enter b'*] +[visit_exp b'*{b' <- `b'*`}] +[scope_enter b'] +[visit_exp b'] +[visit_id b'] not free +[visit_id b'] not free +[scope_exit b'] +[visit_exp `b'*`] +[visit_id b'*] not free +[visit_id b'*] no dims +[visit_id b'*] not free +[visit_id b'*] no dims +[scope_exit b'*] +[visit_exp `b'**`] +[visit_id b'**] no dims +[visit_id b'**] +[visit_exp (s_2, [da] ++ da'*{da' <- `da'*`})] +[visit_exp s_2] +[visit_id s_2] +[visit_exp [da] ++ da'*{da' <- `da'*`}] +[visit_exp [da]] +[visit_exp da] +[visit_id da] +[visit_exp da'*{da' <- `da'*`}] +[scope_enter da'] +[visit_exp da'] +[visit_id da'] not free +[visit_id da'] not free +[scope_exit da'] +[visit_exp `da'*`] +[visit_id da'*] no dims +[visit_id da'*] +[visit_exp ((s_1, da) = $allocdata(s, ok, b*{b <- `b*`}))] +[visit_exp (s_1, da)] +[visit_exp s_1] +[visit_id s_1] +[visit_exp da] +[visit_id da] not free +[visit_exp $allocdata(s, ok, b*{b <- `b*`})] +[visit_exp s] +[visit_id s] not free +[visit_exp ok] +[visit_id ok] not free +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_exp ((s_2, da'*{da' <- `da'*`}) = $allocdatas(s_1, ok'*{ok' <- `ok'*`}, b'*{b' <- `b'*`}*{`b'*` <- `b'**`}))] +[visit_exp (s_2, da'*{da' <- `da'*`})] +[visit_exp s_2] +[visit_id s_2] not free +[visit_exp da'*{da' <- `da'*`}] +[scope_enter da'] +[visit_exp da'] +[visit_id da'] not free +[visit_id da'] not free +[scope_exit da'] +[visit_exp `da'*`] +[visit_id da'*] not free +[visit_id da'*] no dims +[visit_exp $allocdatas(s_1, ok'*{ok' <- `ok'*`}, b'*{b' <- `b'*`}*{`b'*` <- `b'**`})] +[visit_exp s_1] +[visit_id s_1] not free +[visit_exp ok'*{ok' <- `ok'*`}] +[scope_enter ok'] +[visit_exp ok'] +[visit_id ok'] not free +[visit_id ok'] not free +[scope_exit ok'] +[visit_exp `ok'*`] +[visit_id ok'*] not free +[visit_id ok'*] no dims +[visit_exp b'*{b' <- `b'*`}*{`b'*` <- `b'**`}] +[scope_enter b'*] +[visit_exp b'*{b' <- `b'*`}] +[scope_enter b'] +[visit_exp b'] +[visit_id b'] not free +[visit_id b'] not free +[scope_exit b'] +[visit_exp `b'*`] +[visit_id b'*] not free +[visit_id b'*] no dims +[visit_id b'*] not free +[visit_id b'*] no dims +[scope_exit b'*] +[visit_exp `b'**`] +[visit_id b'**] not free +[visit_id b'**] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocdatas{s : store, ok : datatype, `ok'*` : datatype*, `b*` : byte*, `b'**` : byte**, s_2 : store, da : dataaddr, `da'*` : dataaddr*, s_1 : store}(s, [ok] ++ ok'*{ok' <- `ok'*`}, [b*{b <- `b*`}] ++ b'*{b' <- `b'*`}*{`b'*` <- `b'**`}) = (s_2, [da] ++ da'*{da' <- `da'*`}) + -- if ((s_1, da) = $allocdata(s, ok, b*{b <- `b*`})) + -- if ((s_2, da'*{da' <- `da'*`}) = $allocdatas(s_1, ok'*{ok' <- `ok'*`}, b'*{b' <- `b'*`}*{`b'*` <- `b'**`})) +[check_dims] _ elemtype store +DecD allocelem(store : store, elemtype : elemtype, ref*) : (store, elemaddr) +[visit_id store] not free +[visit_id elemtype] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] arrayinst*#12 datainst*#12 eleminst eleminst*#11 eleminst*#12 elemtype elemtype#1 exninst*#11 funcinst*#13 globalinst*#13 meminst*#14 ref ref*#23 s structinst*#12 tableinst*#14 taginst*#12 +[visit_exp s] +[visit_id s] +[visit_exp elemtype] +[visit_id elemtype] +[visit_exp ref*{ref <- `ref*`}] +[scope_enter ref] +[visit_exp ref] +[visit_id ref] not free +[visit_id ref] not free +[scope_exit ref] +[visit_exp `ref*`] +[visit_id ref*] no dims +[visit_id ref*] +[visit_exp (s +++ {`TAGS`{`taginst*#12`} [], `GLOBALS`{`globalinst*#13`} [], `MEMS`{`meminst*#14`} [], `TABLES`{`tableinst*#14`} [], `FUNCS`{`funcinst*#13`} [], `DATAS`{`datainst*#12`} [], `ELEMS`{`eleminst*#11`} [eleminst], `STRUCTS`{`structinst*#12`} [], `ARRAYS`{`arrayinst*#12`} [], `EXNS`{`exninst*#11`} []}, |s.`ELEMS`_store{`eleminst*#12`}|)] +[visit_exp s +++ {`TAGS`{`taginst*#12`} [], `GLOBALS`{`globalinst*#13`} [], `MEMS`{`meminst*#14`} [], `TABLES`{`tableinst*#14`} [], `FUNCS`{`funcinst*#13`} [], `DATAS`{`datainst*#12`} [], `ELEMS`{`eleminst*#11`} [eleminst], `STRUCTS`{`structinst*#12`} [], `ARRAYS`{`arrayinst*#12`} [], `EXNS`{`exninst*#11`} []}] +[visit_exp s] +[visit_id s] not free +[visit_exp {`TAGS`{`taginst*#12`} [], `GLOBALS`{`globalinst*#13`} [], `MEMS`{`meminst*#14`} [], `TABLES`{`tableinst*#14`} [], `FUNCS`{`funcinst*#13`} [], `DATAS`{`datainst*#12`} [], `ELEMS`{`eleminst*#11`} [eleminst], `STRUCTS`{`structinst*#12`} [], `ARRAYS`{`arrayinst*#12`} [], `EXNS`{`exninst*#11`} []}] +[visit_exp `taginst*#12`] +[visit_id taginst*#12] +[visit_exp []] +[visit_exp `globalinst*#13`] +[visit_id globalinst*#13] +[visit_exp []] +[visit_exp `meminst*#14`] +[visit_id meminst*#14] +[visit_exp []] +[visit_exp `tableinst*#14`] +[visit_id tableinst*#14] +[visit_exp []] +[visit_exp `funcinst*#13`] +[visit_id funcinst*#13] +[visit_exp []] +[visit_exp `datainst*#12`] +[visit_id datainst*#12] +[visit_exp []] +[visit_exp `eleminst*#11`] +[visit_id eleminst*#11] +[visit_exp [eleminst]] +[visit_exp eleminst] +[visit_id eleminst] +[visit_exp `structinst*#12`] +[visit_id structinst*#12] +[visit_exp []] +[visit_exp `arrayinst*#12`] +[visit_id arrayinst*#12] +[visit_exp []] +[visit_exp `exninst*#11`] +[visit_id exninst*#11] +[visit_exp []] +[visit_exp |s.`ELEMS`_store{`eleminst*#12`}|] +[visit_exp s.`ELEMS`_store{`eleminst*#12`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `eleminst*#12`] +[visit_id eleminst*#12] +[visit_exp (eleminst = {`TYPE`{elemtype#1} elemtype, `REFS`{`ref*#23`} ref*{ref <- `ref*`}})] +[visit_exp eleminst] +[visit_id eleminst] not free +[visit_exp {`TYPE`{elemtype#1} elemtype, `REFS`{`ref*#23`} ref*{ref <- `ref*`}}] +[visit_exp elemtype#1] +[visit_id elemtype#1] +[visit_exp elemtype] +[visit_id elemtype] not free +[visit_exp `ref*#23`] +[visit_id ref*#23] +[visit_exp ref*{ref <- `ref*`}] +[scope_enter ref] +[visit_exp ref] +[visit_id ref] not free +[visit_id ref] not free +[scope_exit ref] +[visit_exp `ref*`] +[visit_id ref*] not free +[visit_id ref*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocelem{s : store, elemtype : elemtype, `ref*` : ref*, `taginst*#12` : taginst*, `globalinst*#13` : globalinst*, `meminst*#14` : meminst*, `tableinst*#14` : tableinst*, `funcinst*#13` : funcinst*, `datainst*#12` : datainst*, `eleminst*#11` : eleminst*, eleminst : eleminst, `structinst*#12` : structinst*, `arrayinst*#12` : arrayinst*, `exninst*#11` : exninst*, `eleminst*#12` : eleminst*, elemtype#1 : elemtype, `ref*#23` : ref*}(s, elemtype, ref*{ref <- `ref*`}) = (s +++ {`TAGS`{`taginst*#12`} [], `GLOBALS`{`globalinst*#13`} [], `MEMS`{`meminst*#14`} [], `TABLES`{`tableinst*#14`} [], `FUNCS`{`funcinst*#13`} [], `DATAS`{`datainst*#12`} [], `ELEMS`{`eleminst*#11`} [eleminst], `STRUCTS`{`structinst*#12`} [], `ARRAYS`{`arrayinst*#12`} [], `EXNS`{`exninst*#11`} []}, |s.`ELEMS`_store{`eleminst*#12`}|) + -- if (eleminst = {`TYPE`{elemtype#1} elemtype, `REFS`{`ref*#23`} ref*{ref <- `ref*`}}) +[check_dims] _ store +DecD allocelems(store : store, elemtype*, ref**) : (store, elemaddr*) +[visit_id store] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] s +[visit_exp s] +[visit_id s] +[visit_exp []] +[visit_exp []] +[visit_exp (s, [])] +[visit_exp s] +[visit_id s] not free +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocelems{s : store}(s, [], []) = (s, []) +[check_dims] ea ea' ref ref' rt rt' s s_1 s_2 +[visit_exp s] +[visit_id s] +[visit_exp [rt] ++ rt'*{rt' <- `rt'*`}] +[visit_exp [rt]] +[visit_exp rt] +[visit_id rt] +[visit_exp rt'*{rt' <- `rt'*`}] +[scope_enter rt'] +[visit_exp rt'] +[visit_id rt'] not free +[visit_id rt'] not free +[scope_exit rt'] +[visit_exp `rt'*`] +[visit_id rt'*] no dims +[visit_id rt'*] +[visit_exp [ref*{ref <- `ref*`}] ++ ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`}] +[visit_exp [ref*{ref <- `ref*`}]] +[visit_exp ref*{ref <- `ref*`}] +[scope_enter ref] +[visit_exp ref] +[visit_id ref] not free +[visit_id ref] not free +[scope_exit ref] +[visit_exp `ref*`] +[visit_id ref*] no dims +[visit_id ref*] +[visit_exp ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`}] +[scope_enter ref'*] +[visit_exp ref'*{ref' <- `ref'*`}] +[scope_enter ref'] +[visit_exp ref'] +[visit_id ref'] not free +[visit_id ref'] not free +[scope_exit ref'] +[visit_exp `ref'*`] +[visit_id ref'*] not free +[visit_id ref'*] no dims +[visit_id ref'*] not free +[visit_id ref'*] no dims +[scope_exit ref'*] +[visit_exp `ref'**`] +[visit_id ref'**] no dims +[visit_id ref'**] +[visit_exp (s_2, [ea] ++ ea'*{ea' <- `ea'*`})] +[visit_exp s_2] +[visit_id s_2] +[visit_exp [ea] ++ ea'*{ea' <- `ea'*`}] +[visit_exp [ea]] +[visit_exp ea] +[visit_id ea] +[visit_exp ea'*{ea' <- `ea'*`}] +[scope_enter ea'] +[visit_exp ea'] +[visit_id ea'] not free +[visit_id ea'] not free +[scope_exit ea'] +[visit_exp `ea'*`] +[visit_id ea'*] no dims +[visit_id ea'*] +[visit_exp ((s_1, ea) = $allocelem(s, rt, ref*{ref <- `ref*`}))] +[visit_exp (s_1, ea)] +[visit_exp s_1] +[visit_id s_1] +[visit_exp ea] +[visit_id ea] not free +[visit_exp $allocelem(s, rt, ref*{ref <- `ref*`})] +[visit_exp s] +[visit_id s] not free +[visit_exp rt] +[visit_id rt] not free +[visit_exp ref*{ref <- `ref*`}] +[scope_enter ref] +[visit_exp ref] +[visit_id ref] not free +[visit_id ref] not free +[scope_exit ref] +[visit_exp `ref*`] +[visit_id ref*] not free +[visit_id ref*] no dims +[visit_exp ((s_2, ea'*{ea' <- `ea'*`}) = $allocelems(s_1, rt'*{rt' <- `rt'*`}, ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`}))] +[visit_exp (s_2, ea'*{ea' <- `ea'*`})] +[visit_exp s_2] +[visit_id s_2] not free +[visit_exp ea'*{ea' <- `ea'*`}] +[scope_enter ea'] +[visit_exp ea'] +[visit_id ea'] not free +[visit_id ea'] not free +[scope_exit ea'] +[visit_exp `ea'*`] +[visit_id ea'*] not free +[visit_id ea'*] no dims +[visit_exp $allocelems(s_1, rt'*{rt' <- `rt'*`}, ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`})] +[visit_exp s_1] +[visit_id s_1] not free +[visit_exp rt'*{rt' <- `rt'*`}] +[scope_enter rt'] +[visit_exp rt'] +[visit_id rt'] not free +[visit_id rt'] not free +[scope_exit rt'] +[visit_exp `rt'*`] +[visit_id rt'*] not free +[visit_id rt'*] no dims +[visit_exp ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`}] +[scope_enter ref'*] +[visit_exp ref'*{ref' <- `ref'*`}] +[scope_enter ref'] +[visit_exp ref'] +[visit_id ref'] not free +[visit_id ref'] not free +[scope_exit ref'] +[visit_exp `ref'*`] +[visit_id ref'*] not free +[visit_id ref'*] no dims +[visit_id ref'*] not free +[visit_id ref'*] no dims +[scope_exit ref'*] +[visit_exp `ref'**`] +[visit_id ref'**] not free +[visit_id ref'**] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocelems{s : store, rt : reftype, `rt'*` : reftype*, `ref*` : ref*, `ref'**` : ref**, s_2 : store, ea : elemaddr, `ea'*` : elemaddr*, s_1 : store}(s, [rt] ++ rt'*{rt' <- `rt'*`}, [ref*{ref <- `ref*`}] ++ ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`}) = (s_2, [ea] ++ ea'*{ea' <- `ea'*`}) + -- if ((s_1, ea) = $allocelem(s, rt, ref*{ref <- `ref*`})) + -- if ((s_2, ea'*{ea' <- `ea'*`}) = $allocelems(s_1, rt'*{rt' <- `rt'*`}, ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`})) +[check_dims] export moduleinst +DecD allocexport(moduleinst : moduleinst, export : export) : exportinst +[visit_id moduleinst] not free +[visit_id export] not free +[check_dims] externaddr#1 externidx#5379 i#47111 moduleinst name name#5597 name#5599 tagaddr#8 tagaddr*#4 tagidx#17 x +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp `EXPORT`_export{name#5597, externidx#5379}(name, `TAG`_externidx{tagidx#17}(x))] +[visit_exp name#5597] +[visit_id name#5597] +[visit_exp externidx#5379] +[visit_id externidx#5379] +[visit_exp (name, `TAG`_externidx{tagidx#17}(x))] +[visit_exp name] +[visit_id name] +[visit_exp `TAG`_externidx{tagidx#17}(x)] +[visit_exp tagidx#17] +[visit_id tagidx#17] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp {`NAME`{name#5599} name, `ADDR`{externaddr#1} `TAG`_externaddr{tagaddr#8}(moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}[x!`%`_idx{i#47111}.0])}] +[visit_exp name#5599] +[visit_id name#5599] +[visit_exp name] +[visit_id name] not free +[visit_exp externaddr#1] +[visit_id externaddr#1] +[visit_exp `TAG`_externaddr{tagaddr#8}(moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}[x!`%`_idx{i#47111}.0])] +[visit_exp tagaddr#8] +[visit_id tagaddr#8] +[visit_exp (moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}[x!`%`_idx{i#47111}.0])] +[visit_exp moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}[x!`%`_idx{i#47111}.0]] +[visit_exp moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp `tagaddr*#4`] +[visit_id tagaddr*#4] +[visit_exp x!`%`_idx{i#47111}.0] +[visit_exp x!`%`_idx{i#47111}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#47111] +[visit_id i#47111] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocexport{moduleinst : moduleinst, name#5597 : name, externidx#5379 : externidx, name : name, tagidx#17 : tagidx, x : idx, name#5599 : name, externaddr#1 : externaddr, tagaddr#8 : tagaddr, `tagaddr*#4` : tagaddr*, i#47111 : nat}(moduleinst, `EXPORT`_export{name#5597, externidx#5379}(name, `TAG`_externidx{tagidx#17}(x))) = {`NAME`{name#5599} name, `ADDR`{externaddr#1} `TAG`_externaddr{tagaddr#8}(moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}[x!`%`_idx{i#47111}.0])} +[check_dims] externaddr#2 externidx#5391 globaladdr#5 globaladdr*#3 globalidx#21 i#47135 moduleinst name name#5610 name#5612 x +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp `EXPORT`_export{name#5610, externidx#5391}(name, `GLOBAL`_externidx{globalidx#21}(x))] +[visit_exp name#5610] +[visit_id name#5610] +[visit_exp externidx#5391] +[visit_id externidx#5391] +[visit_exp (name, `GLOBAL`_externidx{globalidx#21}(x))] +[visit_exp name] +[visit_id name] +[visit_exp `GLOBAL`_externidx{globalidx#21}(x)] +[visit_exp globalidx#21] +[visit_id globalidx#21] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp {`NAME`{name#5612} name, `ADDR`{externaddr#2} `GLOBAL`_externaddr{globaladdr#5}(moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}[x!`%`_idx{i#47135}.0])}] +[visit_exp name#5612] +[visit_id name#5612] +[visit_exp name] +[visit_id name] not free +[visit_exp externaddr#2] +[visit_id externaddr#2] +[visit_exp `GLOBAL`_externaddr{globaladdr#5}(moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}[x!`%`_idx{i#47135}.0])] +[visit_exp globaladdr#5] +[visit_id globaladdr#5] +[visit_exp (moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}[x!`%`_idx{i#47135}.0])] +[visit_exp moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}[x!`%`_idx{i#47135}.0]] +[visit_exp moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp `globaladdr*#3`] +[visit_id globaladdr*#3] +[visit_exp x!`%`_idx{i#47135}.0] +[visit_exp x!`%`_idx{i#47135}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#47135] +[visit_id i#47135] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocexport{moduleinst : moduleinst, name#5610 : name, externidx#5391 : externidx, name : name, globalidx#21 : globalidx, x : idx, name#5612 : name, externaddr#2 : externaddr, globaladdr#5 : globaladdr, `globaladdr*#3` : globaladdr*, i#47135 : nat}(moduleinst, `EXPORT`_export{name#5610, externidx#5391}(name, `GLOBAL`_externidx{globalidx#21}(x))) = {`NAME`{name#5612} name, `ADDR`{externaddr#2} `GLOBAL`_externaddr{globaladdr#5}(moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}[x!`%`_idx{i#47135}.0])} +[check_dims] externaddr#3 externidx#5403 i#47159 memaddr#5 memaddr*#4 memidx#163 moduleinst name name#5623 name#5625 x +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp `EXPORT`_export{name#5623, externidx#5403}(name, `MEM`_externidx{memidx#163}(x))] +[visit_exp name#5623] +[visit_id name#5623] +[visit_exp externidx#5403] +[visit_id externidx#5403] +[visit_exp (name, `MEM`_externidx{memidx#163}(x))] +[visit_exp name] +[visit_id name] +[visit_exp `MEM`_externidx{memidx#163}(x)] +[visit_exp memidx#163] +[visit_id memidx#163] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp {`NAME`{name#5625} name, `ADDR`{externaddr#3} `MEM`_externaddr{memaddr#5}(moduleinst.`MEMS`_moduleinst{`memaddr*#4`}[x!`%`_idx{i#47159}.0])}] +[visit_exp name#5625] +[visit_id name#5625] +[visit_exp name] +[visit_id name] not free +[visit_exp externaddr#3] +[visit_id externaddr#3] +[visit_exp `MEM`_externaddr{memaddr#5}(moduleinst.`MEMS`_moduleinst{`memaddr*#4`}[x!`%`_idx{i#47159}.0])] +[visit_exp memaddr#5] +[visit_id memaddr#5] +[visit_exp (moduleinst.`MEMS`_moduleinst{`memaddr*#4`}[x!`%`_idx{i#47159}.0])] +[visit_exp moduleinst.`MEMS`_moduleinst{`memaddr*#4`}[x!`%`_idx{i#47159}.0]] +[visit_exp moduleinst.`MEMS`_moduleinst{`memaddr*#4`}] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp `memaddr*#4`] +[visit_id memaddr*#4] +[visit_exp x!`%`_idx{i#47159}.0] +[visit_exp x!`%`_idx{i#47159}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#47159] +[visit_id i#47159] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocexport{moduleinst : moduleinst, name#5623 : name, externidx#5403 : externidx, name : name, memidx#163 : memidx, x : idx, name#5625 : name, externaddr#3 : externaddr, memaddr#5 : memaddr, `memaddr*#4` : memaddr*, i#47159 : nat}(moduleinst, `EXPORT`_export{name#5623, externidx#5403}(name, `MEM`_externidx{memidx#163}(x))) = {`NAME`{name#5625} name, `ADDR`{externaddr#3} `MEM`_externaddr{memaddr#5}(moduleinst.`MEMS`_moduleinst{`memaddr*#4`}[x!`%`_idx{i#47159}.0])} +[check_dims] externaddr#4 externidx#5415 i#47183 moduleinst name name#5636 name#5638 tableaddr#5 tableaddr*#4 tableidx#117 x +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp `EXPORT`_export{name#5636, externidx#5415}(name, `TABLE`_externidx{tableidx#117}(x))] +[visit_exp name#5636] +[visit_id name#5636] +[visit_exp externidx#5415] +[visit_id externidx#5415] +[visit_exp (name, `TABLE`_externidx{tableidx#117}(x))] +[visit_exp name] +[visit_id name] +[visit_exp `TABLE`_externidx{tableidx#117}(x)] +[visit_exp tableidx#117] +[visit_id tableidx#117] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp {`NAME`{name#5638} name, `ADDR`{externaddr#4} `TABLE`_externaddr{tableaddr#5}(moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}[x!`%`_idx{i#47183}.0])}] +[visit_exp name#5638] +[visit_id name#5638] +[visit_exp name] +[visit_id name] not free +[visit_exp externaddr#4] +[visit_id externaddr#4] +[visit_exp `TABLE`_externaddr{tableaddr#5}(moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}[x!`%`_idx{i#47183}.0])] +[visit_exp tableaddr#5] +[visit_id tableaddr#5] +[visit_exp (moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}[x!`%`_idx{i#47183}.0])] +[visit_exp moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}[x!`%`_idx{i#47183}.0]] +[visit_exp moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp `tableaddr*#4`] +[visit_id tableaddr*#4] +[visit_exp x!`%`_idx{i#47183}.0] +[visit_exp x!`%`_idx{i#47183}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#47183] +[visit_id i#47183] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocexport{moduleinst : moduleinst, name#5636 : name, externidx#5415 : externidx, name : name, tableidx#117 : tableidx, x : idx, name#5638 : name, externaddr#4 : externaddr, tableaddr#5 : tableaddr, `tableaddr*#4` : tableaddr*, i#47183 : nat}(moduleinst, `EXPORT`_export{name#5636, externidx#5415}(name, `TABLE`_externidx{tableidx#117}(x))) = {`NAME`{name#5638} name, `ADDR`{externaddr#4} `TABLE`_externaddr{tableaddr#5}(moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}[x!`%`_idx{i#47183}.0])} +[check_dims] externaddr#5 externidx#5427 funcaddr#19 funcaddr*#5 funcidx#2843 i#47207 moduleinst name name#5649 name#5651 x +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp `EXPORT`_export{name#5649, externidx#5427}(name, `FUNC`_externidx{funcidx#2843}(x))] +[visit_exp name#5649] +[visit_id name#5649] +[visit_exp externidx#5427] +[visit_id externidx#5427] +[visit_exp (name, `FUNC`_externidx{funcidx#2843}(x))] +[visit_exp name] +[visit_id name] +[visit_exp `FUNC`_externidx{funcidx#2843}(x)] +[visit_exp funcidx#2843] +[visit_id funcidx#2843] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp {`NAME`{name#5651} name, `ADDR`{externaddr#5} `FUNC`_externaddr{funcaddr#19}(moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}[x!`%`_idx{i#47207}.0])}] +[visit_exp name#5651] +[visit_id name#5651] +[visit_exp name] +[visit_id name] not free +[visit_exp externaddr#5] +[visit_id externaddr#5] +[visit_exp `FUNC`_externaddr{funcaddr#19}(moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}[x!`%`_idx{i#47207}.0])] +[visit_exp funcaddr#19] +[visit_id funcaddr#19] +[visit_exp (moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}[x!`%`_idx{i#47207}.0])] +[visit_exp moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}[x!`%`_idx{i#47207}.0]] +[visit_exp moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp `funcaddr*#5`] +[visit_id funcaddr*#5] +[visit_exp x!`%`_idx{i#47207}.0] +[visit_exp x!`%`_idx{i#47207}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#47207] +[visit_id i#47207] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocexport{moduleinst : moduleinst, name#5649 : name, externidx#5427 : externidx, name : name, funcidx#2843 : funcidx, x : idx, name#5651 : name, externaddr#5 : externaddr, funcaddr#19 : funcaddr, `funcaddr*#5` : funcaddr*, i#47207 : nat}(moduleinst, `EXPORT`_export{name#5649, externidx#5427}(name, `FUNC`_externidx{funcidx#2843}(x))) = {`NAME`{name#5651} name, `ADDR`{externaddr#5} `FUNC`_externaddr{funcaddr#19}(moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}[x!`%`_idx{i#47207}.0])} +[check_dims] _ moduleinst +DecD allocexports(moduleinst : moduleinst, export*) : exportinst* +[visit_id moduleinst] not free +[visit_id _] not free +[check_dims] export moduleinst +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp export*{export <- `export*`}] +[scope_enter export] +[visit_exp export] +[visit_id export] not free +[visit_id export] not free +[scope_exit export] +[visit_exp `export*`] +[visit_id export*] no dims +[visit_id export*] +[visit_exp $allocexport(moduleinst, export)*{export <- `export*`}] +[scope_enter export] +[visit_exp $allocexport(moduleinst, export)] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp export] +[visit_id export] not free +[visit_id export] not free +[scope_exit export] +[visit_exp `export*`] +[visit_id export*] not free +[visit_id export*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocexports{moduleinst : moduleinst, `export*` : export*}(moduleinst, export*{export <- `export*`}) = $allocexport(moduleinst, export)*{export <- `export*`} +[check_dims] _ module store +DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) : (store, moduleinst) +[visit_id store] not free +[visit_id module] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] aa aa_I byte byte*#2021 da data data*#101 dataaddr*#3 dataaddr*#4 datamode datamode#1985 deftype*#94 deftype*#95 dt ea elem elem*#125 elemaddr*#3 elemaddr*#4 elemmode elemmode#3087 elemtype export export*#101 exportinst*#1 exportinst*#2 expr#4459 expr#4477 expr#4495 expr#4497 expr*#3087 expr_E expr_F expr_G expr_T externaddr fa fa_I func func*#101 funcaddr*#6 funcaddr*#7 funcinst*#14 ga ga_I global global*#125 globaladdr*#4 globaladdr*#5 globaltype globaltype#2179 i#47295 i_F import import*#101 local local*#1351 local*#1353 ma ma_I mem mem*#125 memaddr*#5 memaddr*#6 memtype memtype#634 module moduleinst ref_E ref_T reftype#3705 s s_1 s_2 s_3 s_4 s_5 s_6 s_7 start start?#101 ta ta_I table table*#125 tableaddr*#5 tableaddr*#6 tabletype tabletype#998 tag tag*#101 tagaddr*#5 tagaddr*#6 tagtype tagtype#260 type type*#101 typeidx#1808 typeidx#1810 val_G x xi +[visit_exp s] +[visit_id s] +[visit_exp module] +[visit_id module] +[visit_exp externaddr*{externaddr <- `externaddr*`}] +[scope_enter externaddr] +[visit_exp externaddr] +[visit_id externaddr] not free +[visit_id externaddr] not free +[scope_exit externaddr] +[visit_exp `externaddr*`] +[visit_id externaddr*] no dims +[visit_id externaddr*] +[visit_exp val_G*{val_G <- `val_G*`}] +[scope_enter val_G] +[visit_exp val_G] +[visit_id val_G] not free +[visit_id val_G] not free +[scope_exit val_G] +[visit_exp `val_G*`] +[visit_id val_G*] no dims +[visit_id val_G*] +[visit_exp ref_T*{ref_T <- `ref_T*`}] +[scope_enter ref_T] +[visit_exp ref_T] +[visit_id ref_T] not free +[visit_id ref_T] not free +[scope_exit ref_T] +[visit_exp `ref_T*`] +[visit_id ref_T*] no dims +[visit_id ref_T*] +[visit_exp ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}] +[scope_enter ref_E*] +[visit_exp ref_E*{ref_E <- `ref_E*`}] +[scope_enter ref_E] +[visit_exp ref_E] +[visit_id ref_E] not free +[visit_id ref_E] not free +[scope_exit ref_E] +[visit_exp `ref_E*`] +[visit_id ref_E*] not free +[visit_id ref_E*] no dims +[visit_id ref_E*] not free +[visit_id ref_E*] no dims +[scope_exit ref_E*] +[visit_exp `ref_E**`] +[visit_id ref_E**] no dims +[visit_id ref_E**] +[visit_exp (s_7, moduleinst)] +[visit_exp s_7] +[visit_id s_7] +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp (module = `MODULE`_module{`type*#101`, `import*#101`, `tag*#101`, `global*#125`, `mem*#125`, `table*#125`, `func*#101`, `data*#101`, `elem*#125`, `start?#101`, `export*#101`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}))] +[visit_exp module] +[visit_id module] not free +[visit_exp `MODULE`_module{`type*#101`, `import*#101`, `tag*#101`, `global*#125`, `mem*#125`, `table*#125`, `func*#101`, `data*#101`, `elem*#125`, `start?#101`, `export*#101`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] +[visit_exp `type*#101`] +[visit_id type*#101] +[visit_exp `import*#101`] +[visit_id import*#101] +[visit_exp `tag*#101`] +[visit_id tag*#101] +[visit_exp `global*#125`] +[visit_id global*#125] +[visit_exp `mem*#125`] +[visit_id mem*#125] +[visit_exp `table*#125`] +[visit_id table*#125] +[visit_exp `func*#101`] +[visit_id func*#101] +[visit_exp `data*#101`] +[visit_id data*#101] +[visit_exp `elem*#125`] +[visit_id elem*#125] +[visit_exp `start?#101`] +[visit_id start?#101] +[visit_exp `export*#101`] +[visit_id export*#101] +[visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] +[visit_exp type*{type <- `type*`}] +[scope_enter type] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] no dims +[visit_id type*] +[visit_exp import*{import <- `import*`}] +[scope_enter import] +[visit_exp import] +[visit_id import] not free +[visit_id import] not free +[scope_exit import] +[visit_exp `import*`] +[visit_id import*] no dims +[visit_id import*] +[visit_exp tag*{tag <- `tag*`}] +[scope_enter tag] +[visit_exp tag] +[visit_id tag] not free +[visit_id tag] not free +[scope_exit tag] +[visit_exp `tag*`] +[visit_id tag*] no dims +[visit_id tag*] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] no dims +[visit_id global*] +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] no dims +[visit_id mem*] +[visit_exp table*{table <- `table*`}] +[scope_enter table] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] no dims +[visit_id table*] +[visit_exp func*{func <- `func*`}] +[scope_enter func] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] no dims +[visit_id func*] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] no dims +[visit_id data*] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] no dims +[visit_id elem*] +[visit_exp start?{start <- `start?`}] +[scope_enter start] +[visit_exp start] +[visit_id start] not free +[visit_id start] not free +[scope_exit start] +[visit_exp `start?`] +[visit_id start?] no dims +[visit_id start?] +[visit_exp export*{export <- `export*`}] +[scope_enter export] +[visit_exp export] +[visit_id export] not free +[visit_id export] not free +[scope_exit export] +[visit_exp `export*`] +[visit_id export*] no dims +[visit_id export*] +[visit_exp (tag*{tag <- `tag*`} = `TAG`_tag{tagtype#260}(tagtype)*{tagtype <- `tagtype*`, tagtype#260 <- `tagtype#260*`})] +[visit_exp tag*{tag <- `tag*`}] +[scope_enter tag] +[visit_exp tag] +[visit_id tag] not free +[visit_id tag] not free +[scope_exit tag] +[visit_exp `tag*`] +[visit_id tag*] not free +[visit_id tag*] no dims +[visit_exp `TAG`_tag{tagtype#260}(tagtype)*{tagtype <- `tagtype*`, tagtype#260 <- `tagtype#260*`}] +[scope_enter tagtype] +[scope_enter tagtype#260] +[visit_exp `TAG`_tag{tagtype#260}(tagtype)] +[visit_exp tagtype#260] +[visit_id tagtype#260] not free +[visit_exp (tagtype)] +[visit_exp tagtype] +[visit_id tagtype] not free +[visit_id tagtype] not free +[visit_id tagtype#260] not free +[scope_exit tagtype#260] +[scope_exit tagtype] +[visit_exp `tagtype*`] +[visit_id tagtype*] no dims +[visit_id tagtype*] +[visit_exp `tagtype#260*`] +[visit_id tagtype#260*] no dims +[visit_id tagtype#260*] +[visit_exp (global*{global <- `global*`} = `GLOBAL`_global{globaltype#2179, expr#4459}(globaltype, expr_G)*{expr#4459 <- `expr#4459*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2179 <- `globaltype#2179*`})] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] not free +[visit_id global*] no dims +[visit_exp `GLOBAL`_global{globaltype#2179, expr#4459}(globaltype, expr_G)*{expr#4459 <- `expr#4459*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2179 <- `globaltype#2179*`}] +[scope_enter expr#4459] +[scope_enter expr_G] +[scope_enter globaltype] +[scope_enter globaltype#2179] +[visit_exp `GLOBAL`_global{globaltype#2179, expr#4459}(globaltype, expr_G)] +[visit_exp globaltype#2179] +[visit_id globaltype#2179] not free +[visit_exp expr#4459] +[visit_id expr#4459] not free +[visit_exp (globaltype, expr_G)] +[visit_exp globaltype] +[visit_id globaltype] not free +[visit_exp expr_G] +[visit_id expr_G] not free +[visit_id expr#4459] not free +[visit_id expr_G] not free +[visit_id globaltype] not free +[visit_id globaltype#2179] not free +[scope_exit globaltype#2179] +[scope_exit globaltype] +[scope_exit expr_G] +[scope_exit expr#4459] +[visit_exp `expr#4459*`] +[visit_id expr#4459*] no dims +[visit_id expr#4459*] +[visit_exp `expr_G*`] +[visit_id expr_G*] no dims +[visit_id expr_G*] +[visit_exp `globaltype*`] +[visit_id globaltype*] no dims +[visit_id globaltype*] +[visit_exp `globaltype#2179*`] +[visit_id globaltype#2179*] no dims +[visit_id globaltype#2179*] +[visit_exp (mem*{mem <- `mem*`} = `MEMORY`_mem{memtype#634}(memtype)*{memtype <- `memtype*`, memtype#634 <- `memtype#634*`})] +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] not free +[visit_id mem*] no dims +[visit_exp `MEMORY`_mem{memtype#634}(memtype)*{memtype <- `memtype*`, memtype#634 <- `memtype#634*`}] +[scope_enter memtype] +[scope_enter memtype#634] +[visit_exp `MEMORY`_mem{memtype#634}(memtype)] +[visit_exp memtype#634] +[visit_id memtype#634] not free +[visit_exp (memtype)] +[visit_exp memtype] +[visit_id memtype] not free +[visit_id memtype] not free +[visit_id memtype#634] not free +[scope_exit memtype#634] +[scope_exit memtype] +[visit_exp `memtype*`] +[visit_id memtype*] no dims +[visit_id memtype*] +[visit_exp `memtype#634*`] +[visit_id memtype#634*] no dims +[visit_id memtype#634*] +[visit_exp (table*{table <- `table*`} = `TABLE`_table{tabletype#998, expr#4477}(tabletype, expr_T)*{expr#4477 <- `expr#4477*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#998 <- `tabletype#998*`})] +[visit_exp table*{table <- `table*`}] +[scope_enter table] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] not free +[visit_id table*] no dims +[visit_exp `TABLE`_table{tabletype#998, expr#4477}(tabletype, expr_T)*{expr#4477 <- `expr#4477*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#998 <- `tabletype#998*`}] +[scope_enter expr#4477] +[scope_enter expr_T] +[scope_enter tabletype] +[scope_enter tabletype#998] +[visit_exp `TABLE`_table{tabletype#998, expr#4477}(tabletype, expr_T)] +[visit_exp tabletype#998] +[visit_id tabletype#998] not free +[visit_exp expr#4477] +[visit_id expr#4477] not free +[visit_exp (tabletype, expr_T)] +[visit_exp tabletype] +[visit_id tabletype] not free +[visit_exp expr_T] +[visit_id expr_T] not free +[visit_id expr#4477] not free +[visit_id expr_T] not free +[visit_id tabletype] not free +[visit_id tabletype#998] not free +[scope_exit tabletype#998] +[scope_exit tabletype] +[scope_exit expr_T] +[scope_exit expr#4477] +[visit_exp `expr#4477*`] +[visit_id expr#4477*] no dims +[visit_id expr#4477*] +[visit_exp `expr_T*`] +[visit_id expr_T*] no dims +[visit_id expr_T*] +[visit_exp `tabletype*`] +[visit_id tabletype*] no dims +[visit_id tabletype*] +[visit_exp `tabletype#998*`] +[visit_id tabletype#998*] no dims +[visit_id tabletype#998*] +[visit_exp (func*{func <- `func*`} = `FUNC`_func{typeidx#1808, `local*#1351`, expr#4495}(x, local*{local <- `local*`}, expr_F)*{expr#4495 <- `expr#4495*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1351` <- `local*#1351*`, typeidx#1808 <- `typeidx#1808*`, x <- `x*`})] +[visit_exp func*{func <- `func*`}] +[scope_enter func] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] not free +[visit_id func*] no dims +[visit_exp `FUNC`_func{typeidx#1808, `local*#1351`, expr#4495}(x, local*{local <- `local*`}, expr_F)*{expr#4495 <- `expr#4495*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1351` <- `local*#1351*`, typeidx#1808 <- `typeidx#1808*`, x <- `x*`}] +[scope_enter expr#4495] +[scope_enter expr_F] +[scope_enter local*] +[scope_enter local*#1351] +[scope_enter typeidx#1808] +[scope_enter x] +[visit_exp `FUNC`_func{typeidx#1808, `local*#1351`, expr#4495}(x, local*{local <- `local*`}, expr_F)] +[visit_exp typeidx#1808] +[visit_id typeidx#1808] not free +[visit_exp `local*#1351`] +[visit_id local*#1351] not free +[visit_exp expr#4495] +[visit_id expr#4495] not free +[visit_exp (x, local*{local <- `local*`}, expr_F)] +[visit_exp x] +[visit_id x] not free +[visit_exp local*{local <- `local*`}] +[scope_enter local] +[visit_exp local] +[visit_id local] not free +[visit_id local] not free +[scope_exit local] +[visit_exp `local*`] +[visit_id local*] not free +[visit_id local*] no dims +[visit_exp expr_F] +[visit_id expr_F] not free +[visit_id expr#4495] not free +[visit_id expr_F] not free +[visit_id local*] not free +[visit_id local*] no dims +[visit_id local*#1351] not free +[visit_id typeidx#1808] not free +[visit_id x] not free +[scope_exit x] +[scope_exit typeidx#1808] +[scope_exit local*#1351] +[scope_exit local*] +[scope_exit expr_F] +[scope_exit expr#4495] +[visit_exp `expr#4495*`] +[visit_id expr#4495*] no dims +[visit_id expr#4495*] +[visit_exp `expr_F*`] +[visit_id expr_F*] no dims +[visit_id expr_F*] +[visit_exp `local**`] +[visit_id local**] no dims +[visit_id local**] +[visit_exp `local*#1351*`] +[visit_id local*#1351*] no dims +[visit_id local*#1351*] +[visit_exp `typeidx#1808*`] +[visit_id typeidx#1808*] no dims +[visit_id typeidx#1808*] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp (data*{data <- `data*`} = `DATA`_data{`byte*#2021`, datamode#1985}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2021` <- `byte*#2021*`, datamode <- `datamode*`, datamode#1985 <- `datamode#1985*`})] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] not free +[visit_id data*] no dims +[visit_exp `DATA`_data{`byte*#2021`, datamode#1985}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2021` <- `byte*#2021*`, datamode <- `datamode*`, datamode#1985 <- `datamode#1985*`}] +[scope_enter byte*] +[scope_enter byte*#2021] +[scope_enter datamode] +[scope_enter datamode#1985] +[visit_exp `DATA`_data{`byte*#2021`, datamode#1985}(byte*{byte <- `byte*`}, datamode)] +[visit_exp `byte*#2021`] +[visit_id byte*#2021] not free +[visit_exp datamode#1985] +[visit_id datamode#1985] not free +[visit_exp (byte*{byte <- `byte*`}, datamode)] +[visit_exp byte*{byte <- `byte*`}] +[scope_enter byte] +[visit_exp byte] +[visit_id byte] not free +[visit_id byte] not free +[scope_exit byte] +[visit_exp `byte*`] +[visit_id byte*] not free +[visit_id byte*] no dims +[visit_exp datamode] +[visit_id datamode] not free +[visit_id byte*] not free +[visit_id byte*] no dims +[visit_id byte*#2021] not free +[visit_id datamode] not free +[visit_id datamode#1985] not free +[scope_exit datamode#1985] +[scope_exit datamode] +[scope_exit byte*#2021] +[scope_exit byte*] +[visit_exp `byte**`] +[visit_id byte**] no dims +[visit_id byte**] +[visit_exp `byte*#2021*`] +[visit_id byte*#2021*] no dims +[visit_id byte*#2021*] +[visit_exp `datamode*`] +[visit_id datamode*] no dims +[visit_id datamode*] +[visit_exp `datamode#1985*`] +[visit_id datamode#1985*] no dims +[visit_id datamode#1985*] +[visit_exp (elem*{elem <- `elem*`} = `ELEM`_elem{reftype#3705, `expr*#3087`, elemmode#3087}(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3087 <- `elemmode#3087*`, elemtype <- `elemtype*`, `expr*#3087` <- `expr*#3087*`, `expr_E*` <- `expr_E**`, reftype#3705 <- `reftype#3705*`})] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] not free +[visit_id elem*] no dims +[visit_exp `ELEM`_elem{reftype#3705, `expr*#3087`, elemmode#3087}(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3087 <- `elemmode#3087*`, elemtype <- `elemtype*`, `expr*#3087` <- `expr*#3087*`, `expr_E*` <- `expr_E**`, reftype#3705 <- `reftype#3705*`}] +[scope_enter elemmode] +[scope_enter elemmode#3087] +[scope_enter elemtype] +[scope_enter expr*#3087] +[scope_enter expr_E*] +[scope_enter reftype#3705] +[visit_exp `ELEM`_elem{reftype#3705, `expr*#3087`, elemmode#3087}(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)] +[visit_exp reftype#3705] +[visit_id reftype#3705] not free +[visit_exp `expr*#3087`] +[visit_id expr*#3087] not free +[visit_exp elemmode#3087] +[visit_id elemmode#3087] not free +[visit_exp (elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)] +[visit_exp elemtype] +[visit_id elemtype] not free +[visit_exp expr_E*{expr_E <- `expr_E*`}] +[scope_enter expr_E] +[visit_exp expr_E] +[visit_id expr_E] not free +[visit_id expr_E] not free +[scope_exit expr_E] +[visit_exp `expr_E*`] +[visit_id expr_E*] not free +[visit_id expr_E*] no dims +[visit_exp elemmode] +[visit_id elemmode] not free +[visit_id elemmode] not free +[visit_id elemmode#3087] not free +[visit_id elemtype] not free +[visit_id expr*#3087] not free +[visit_id expr_E*] not free +[visit_id expr_E*] no dims +[visit_id reftype#3705] not free +[scope_exit reftype#3705] +[scope_exit expr_E*] +[scope_exit expr*#3087] +[scope_exit elemtype] +[scope_exit elemmode#3087] +[scope_exit elemmode] +[visit_exp `elemmode*`] +[visit_id elemmode*] no dims +[visit_id elemmode*] +[visit_exp `elemmode#3087*`] +[visit_id elemmode#3087*] no dims +[visit_id elemmode#3087*] +[visit_exp `elemtype*`] +[visit_id elemtype*] no dims +[visit_id elemtype*] +[visit_exp `expr*#3087*`] +[visit_id expr*#3087*] no dims +[visit_id expr*#3087*] +[visit_exp `expr_E**`] +[visit_id expr_E**] no dims +[visit_id expr_E**] +[visit_exp `reftype#3705*`] +[visit_id reftype#3705*] no dims +[visit_id reftype#3705*] +[visit_exp (aa_I*{aa_I <- `aa_I*`} = $tagsxa(externaddr*{externaddr <- `externaddr*`}))] +[visit_exp aa_I*{aa_I <- `aa_I*`}] +[scope_enter aa_I] +[visit_exp aa_I] +[visit_id aa_I] not free +[visit_id aa_I] not free +[scope_exit aa_I] +[visit_exp `aa_I*`] +[visit_id aa_I*] no dims +[visit_id aa_I*] +[visit_exp $tagsxa(externaddr*{externaddr <- `externaddr*`})] +[visit_exp externaddr*{externaddr <- `externaddr*`}] +[scope_enter externaddr] +[visit_exp externaddr] +[visit_id externaddr] not free +[visit_id externaddr] not free +[scope_exit externaddr] +[visit_exp `externaddr*`] +[visit_id externaddr*] not free +[visit_id externaddr*] no dims +[visit_exp (ga_I*{ga_I <- `ga_I*`} = $globalsxa(externaddr*{externaddr <- `externaddr*`}))] +[visit_exp ga_I*{ga_I <- `ga_I*`}] +[scope_enter ga_I] +[visit_exp ga_I] +[visit_id ga_I] not free +[visit_id ga_I] not free +[scope_exit ga_I] +[visit_exp `ga_I*`] +[visit_id ga_I*] no dims +[visit_id ga_I*] +[visit_exp $globalsxa(externaddr*{externaddr <- `externaddr*`})] +[visit_exp externaddr*{externaddr <- `externaddr*`}] +[scope_enter externaddr] +[visit_exp externaddr] +[visit_id externaddr] not free +[visit_id externaddr] not free +[scope_exit externaddr] +[visit_exp `externaddr*`] +[visit_id externaddr*] not free +[visit_id externaddr*] no dims +[visit_exp (ma_I*{ma_I <- `ma_I*`} = $memsxa(externaddr*{externaddr <- `externaddr*`}))] +[visit_exp ma_I*{ma_I <- `ma_I*`}] +[scope_enter ma_I] +[visit_exp ma_I] +[visit_id ma_I] not free +[visit_id ma_I] not free +[scope_exit ma_I] +[visit_exp `ma_I*`] +[visit_id ma_I*] no dims +[visit_id ma_I*] +[visit_exp $memsxa(externaddr*{externaddr <- `externaddr*`})] +[visit_exp externaddr*{externaddr <- `externaddr*`}] +[scope_enter externaddr] +[visit_exp externaddr] +[visit_id externaddr] not free +[visit_id externaddr] not free +[scope_exit externaddr] +[visit_exp `externaddr*`] +[visit_id externaddr*] not free +[visit_id externaddr*] no dims +[visit_exp (ta_I*{ta_I <- `ta_I*`} = $tablesxa(externaddr*{externaddr <- `externaddr*`}))] +[visit_exp ta_I*{ta_I <- `ta_I*`}] +[scope_enter ta_I] +[visit_exp ta_I] +[visit_id ta_I] not free +[visit_id ta_I] not free +[scope_exit ta_I] +[visit_exp `ta_I*`] +[visit_id ta_I*] no dims +[visit_id ta_I*] +[visit_exp $tablesxa(externaddr*{externaddr <- `externaddr*`})] +[visit_exp externaddr*{externaddr <- `externaddr*`}] +[scope_enter externaddr] +[visit_exp externaddr] +[visit_id externaddr] not free +[visit_id externaddr] not free +[scope_exit externaddr] +[visit_exp `externaddr*`] +[visit_id externaddr*] not free +[visit_id externaddr*] no dims +[visit_exp (fa_I*{fa_I <- `fa_I*`} = $funcsxa(externaddr*{externaddr <- `externaddr*`}))] +[visit_exp fa_I*{fa_I <- `fa_I*`}] +[scope_enter fa_I] +[visit_exp fa_I] +[visit_id fa_I] not free +[visit_id fa_I] not free +[scope_exit fa_I] +[visit_exp `fa_I*`] +[visit_id fa_I*] no dims +[visit_id fa_I*] +[visit_exp $funcsxa(externaddr*{externaddr <- `externaddr*`})] +[visit_exp externaddr*{externaddr <- `externaddr*`}] +[scope_enter externaddr] +[visit_exp externaddr] +[visit_id externaddr] not free +[visit_id externaddr] not free +[scope_exit externaddr] +[visit_exp `externaddr*`] +[visit_id externaddr*] not free +[visit_id externaddr*] no dims +[visit_exp (dt*{dt <- `dt*`} = $alloctypes(type*{type <- `type*`}))] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] no dims +[visit_id dt*] +[visit_exp $alloctypes(type*{type <- `type*`})] +[visit_exp type*{type <- `type*`}] +[scope_enter type] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] not free +[visit_id type*] no dims +[visit_exp (fa*{fa <- `fa*`} = (|s.`FUNCS`_store{`funcinst*#14`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#14` <- `funcinst*#14*`})] +[visit_exp fa*{fa <- `fa*`}] +[scope_enter fa] +[visit_exp fa] +[visit_id fa] not free +[visit_id fa] not free +[scope_exit fa] +[visit_exp `fa*`] +[visit_id fa*] no dims +[visit_id fa*] +[visit_exp (|s.`FUNCS`_store{`funcinst*#14`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#14` <- `funcinst*#14*`}] +[scope_enter i_F] +[scope_enter funcinst*#14] +[visit_exp (|s.`FUNCS`_store{`funcinst*#14`}| + i_F)] +[visit_exp |s.`FUNCS`_store{`funcinst*#14`}|] +[visit_exp s.`FUNCS`_store{`funcinst*#14`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `funcinst*#14`] +[visit_id funcinst*#14] not free +[visit_exp i_F] +[visit_id i_F] +[visit_id i_F] not free +[visit_id funcinst*#14] not free +[scope_exit funcinst*#14] +[scope_exit i_F] +[visit_exp |func*{func <- `func*`}|] +[visit_exp func*{func <- `func*`}] +[scope_enter func] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] not free +[visit_id func*] no dims +[visit_exp `funcinst*#14*`] +[visit_id funcinst*#14*] no dims +[visit_id funcinst*#14*] +[visit_exp ((s_1, aa*{aa <- `aa*`}) = $alloctags(s, $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tagtype <- `tagtype*`}))] +[visit_exp (s_1, aa*{aa <- `aa*`})] +[visit_exp s_1] +[visit_id s_1] +[visit_exp aa*{aa <- `aa*`}] +[scope_enter aa] +[visit_exp aa] +[visit_id aa] not free +[visit_id aa] not free +[scope_exit aa] +[visit_exp `aa*`] +[visit_id aa*] no dims +[visit_id aa*] +[visit_exp $alloctags(s, $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tagtype <- `tagtype*`})] +[visit_exp s] +[visit_id s] not free +[visit_exp $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tagtype <- `tagtype*`}] +[scope_enter tagtype] +[visit_exp $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp tagtype] +[visit_id tagtype] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_id tagtype] not free +[scope_exit tagtype] +[visit_exp `tagtype*`] +[visit_id tagtype*] not free +[visit_id tagtype*] no dims +[visit_exp ((s_2, ga*{ga <- `ga*`}) = $allocglobals(s_1, $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{globaltype <- `globaltype*`}, val_G*{val_G <- `val_G*`}))] +[visit_exp (s_2, ga*{ga <- `ga*`})] +[visit_exp s_2] +[visit_id s_2] +[visit_exp ga*{ga <- `ga*`}] +[scope_enter ga] +[visit_exp ga] +[visit_id ga] not free +[visit_id ga] not free +[scope_exit ga] +[visit_exp `ga*`] +[visit_id ga*] no dims +[visit_id ga*] +[visit_exp $allocglobals(s_1, $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{globaltype <- `globaltype*`}, val_G*{val_G <- `val_G*`})] +[visit_exp s_1] +[visit_id s_1] not free +[visit_exp $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{globaltype <- `globaltype*`}] +[scope_enter globaltype] +[visit_exp $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp globaltype] +[visit_id globaltype] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_id globaltype] not free +[scope_exit globaltype] +[visit_exp `globaltype*`] +[visit_id globaltype*] not free +[visit_id globaltype*] no dims +[visit_exp val_G*{val_G <- `val_G*`}] +[scope_enter val_G] +[visit_exp val_G] +[visit_id val_G] not free +[visit_id val_G] not free +[scope_exit val_G] +[visit_exp `val_G*`] +[visit_id val_G*] not free +[visit_id val_G*] no dims +[visit_exp ((s_3, ma*{ma <- `ma*`}) = $allocmems(s_2, $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{memtype <- `memtype*`}))] +[visit_exp (s_3, ma*{ma <- `ma*`})] +[visit_exp s_3] +[visit_id s_3] +[visit_exp ma*{ma <- `ma*`}] +[scope_enter ma] +[visit_exp ma] +[visit_id ma] not free +[visit_id ma] not free +[scope_exit ma] +[visit_exp `ma*`] +[visit_id ma*] no dims +[visit_id ma*] +[visit_exp $allocmems(s_2, $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{memtype <- `memtype*`})] +[visit_exp s_2] +[visit_id s_2] not free +[visit_exp $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{memtype <- `memtype*`}] +[scope_enter memtype] +[visit_exp $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp memtype] +[visit_id memtype] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_id memtype] not free +[scope_exit memtype] +[visit_exp `memtype*`] +[visit_id memtype*] not free +[visit_id memtype*] no dims +[visit_exp ((s_4, ta*{ta <- `ta*`}) = $alloctables(s_3, $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tabletype <- `tabletype*`}, ref_T*{ref_T <- `ref_T*`}))] +[visit_exp (s_4, ta*{ta <- `ta*`})] +[visit_exp s_4] +[visit_id s_4] +[visit_exp ta*{ta <- `ta*`}] +[scope_enter ta] +[visit_exp ta] +[visit_id ta] not free +[visit_id ta] not free +[scope_exit ta] +[visit_exp `ta*`] +[visit_id ta*] no dims +[visit_id ta*] +[visit_exp $alloctables(s_3, $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tabletype <- `tabletype*`}, ref_T*{ref_T <- `ref_T*`})] +[visit_exp s_3] +[visit_id s_3] not free +[visit_exp $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tabletype <- `tabletype*`}] +[scope_enter tabletype] +[visit_exp $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp tabletype] +[visit_id tabletype] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_id tabletype] not free +[scope_exit tabletype] +[visit_exp `tabletype*`] +[visit_id tabletype*] not free +[visit_id tabletype*] no dims +[visit_exp ref_T*{ref_T <- `ref_T*`}] +[scope_enter ref_T] +[visit_exp ref_T] +[visit_id ref_T] not free +[visit_id ref_T] not free +[scope_exit ref_T] +[visit_exp `ref_T*`] +[visit_id ref_T*] not free +[visit_id ref_T*] no dims +[visit_exp ((s_5, da*{da <- `da*`}) = $allocdatas(s_4, `OK`_datatype^|data*{data <- `data*`}|{}, byte*{byte <- `byte*`}*{`byte*` <- `byte**`}))] +[visit_exp (s_5, da*{da <- `da*`})] +[visit_exp s_5] +[visit_id s_5] +[visit_exp da*{da <- `da*`}] +[scope_enter da] +[visit_exp da] +[visit_id da] not free +[visit_id da] not free +[scope_exit da] +[visit_exp `da*`] +[visit_id da*] no dims +[visit_id da*] +[visit_exp $allocdatas(s_4, `OK`_datatype^|data*{data <- `data*`}|{}, byte*{byte <- `byte*`}*{`byte*` <- `byte**`})] +[visit_exp s_4] +[visit_id s_4] not free +[visit_exp `OK`_datatype^|data*{data <- `data*`}|{}] +[visit_exp `OK`_datatype] +[visit_exp ()] +[visit_exp |data*{data <- `data*`}|] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] not free +[visit_id data*] no dims +[visit_exp byte*{byte <- `byte*`}*{`byte*` <- `byte**`}] +[scope_enter byte*] +[visit_exp byte*{byte <- `byte*`}] +[scope_enter byte] +[visit_exp byte] +[visit_id byte] not free +[visit_id byte] not free +[scope_exit byte] +[visit_exp `byte*`] +[visit_id byte*] not free +[visit_id byte*] no dims +[visit_id byte*] not free +[visit_id byte*] no dims +[scope_exit byte*] +[visit_exp `byte**`] +[visit_id byte**] not free +[visit_id byte**] no dims +[visit_exp ((s_6, ea*{ea <- `ea*`}) = $allocelems(s_5, $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{elemtype <- `elemtype*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}))] +[visit_exp (s_6, ea*{ea <- `ea*`})] +[visit_exp s_6] +[visit_id s_6] +[visit_exp ea*{ea <- `ea*`}] +[scope_enter ea] +[visit_exp ea] +[visit_id ea] not free +[visit_id ea] not free +[scope_exit ea] +[visit_exp `ea*`] +[visit_id ea*] no dims +[visit_id ea*] +[visit_exp $allocelems(s_5, $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{elemtype <- `elemtype*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})] +[visit_exp s_5] +[visit_id s_5] not free +[visit_exp $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{elemtype <- `elemtype*`}] +[scope_enter elemtype] +[visit_exp $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})] +[visit_exp elemtype] +[visit_id elemtype] not free +[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp (dt : deftype <: typeuse)] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_id elemtype] not free +[scope_exit elemtype] +[visit_exp `elemtype*`] +[visit_id elemtype*] not free +[visit_id elemtype*] no dims +[visit_exp ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}] +[scope_enter ref_E*] +[visit_exp ref_E*{ref_E <- `ref_E*`}] +[scope_enter ref_E] +[visit_exp ref_E] +[visit_id ref_E] not free +[visit_id ref_E] not free +[scope_exit ref_E] +[visit_exp `ref_E*`] +[visit_id ref_E*] not free +[visit_id ref_E*] no dims +[visit_id ref_E*] not free +[visit_id ref_E*] no dims +[scope_exit ref_E*] +[visit_exp `ref_E**`] +[visit_id ref_E**] not free +[visit_id ref_E**] no dims +[visit_exp ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx{i#47295}.0]*{i#47295 <- `i#47295*`, x <- `x*`}, `FUNC`_funccode{typeidx#1810, `local*#1353`, expr#4497}(x, local*{local <- `local*`}, expr_F)*{expr#4497 <- `expr#4497*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1353` <- `local*#1353*`, typeidx#1810 <- `typeidx#1810*`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{}))] +[visit_exp (s_7, fa*{fa <- `fa*`})] +[visit_exp s_7] +[visit_id s_7] not free +[visit_exp fa*{fa <- `fa*`}] +[scope_enter fa] +[visit_exp fa] +[visit_id fa] not free +[visit_id fa] not free +[scope_exit fa] +[visit_exp `fa*`] +[visit_id fa*] not free +[visit_id fa*] no dims +[visit_exp $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx{i#47295}.0]*{i#47295 <- `i#47295*`, x <- `x*`}, `FUNC`_funccode{typeidx#1810, `local*#1353`, expr#4497}(x, local*{local <- `local*`}, expr_F)*{expr#4497 <- `expr#4497*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1353` <- `local*#1353*`, typeidx#1810 <- `typeidx#1810*`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})] +[visit_exp s_6] +[visit_id s_6] not free +[visit_exp dt*{dt <- `dt*`}[x!`%`_idx{i#47295}.0]*{i#47295 <- `i#47295*`, x <- `x*`}] +[scope_enter i#47295] +[scope_enter x] +[visit_exp dt*{dt <- `dt*`}[x!`%`_idx{i#47295}.0]] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp x!`%`_idx{i#47295}.0] +[visit_exp x!`%`_idx{i#47295}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#47295] +[visit_id i#47295] not free +[visit_id i#47295] not free +[visit_id x] not free +[scope_exit x] +[scope_exit i#47295] +[visit_exp `i#47295*`] +[visit_id i#47295*] no dims +[visit_id i#47295*] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[visit_exp `FUNC`_funccode{typeidx#1810, `local*#1353`, expr#4497}(x, local*{local <- `local*`}, expr_F)*{expr#4497 <- `expr#4497*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1353` <- `local*#1353*`, typeidx#1810 <- `typeidx#1810*`, x <- `x*`}] +[scope_enter expr#4497] +[scope_enter expr_F] +[scope_enter local*] +[scope_enter local*#1353] +[scope_enter typeidx#1810] +[scope_enter x] +[visit_exp `FUNC`_funccode{typeidx#1810, `local*#1353`, expr#4497}(x, local*{local <- `local*`}, expr_F)] +[visit_exp typeidx#1810] +[visit_id typeidx#1810] not free +[visit_exp `local*#1353`] +[visit_id local*#1353] not free +[visit_exp expr#4497] +[visit_id expr#4497] not free +[visit_exp (x, local*{local <- `local*`}, expr_F)] +[visit_exp x] +[visit_id x] not free +[visit_exp local*{local <- `local*`}] +[scope_enter local] +[visit_exp local] +[visit_id local] not free +[visit_id local] not free +[scope_exit local] +[visit_exp `local*`] +[visit_id local*] not free +[visit_id local*] no dims +[visit_exp expr_F] +[visit_id expr_F] not free +[visit_id expr#4497] not free +[visit_id expr_F] not free +[visit_id local*] not free +[visit_id local*] no dims +[visit_id local*#1353] not free +[visit_id typeidx#1810] not free +[visit_id x] not free +[scope_exit x] +[scope_exit typeidx#1810] +[scope_exit local*#1353] +[scope_exit local*] +[scope_exit expr_F] +[scope_exit expr#4497] +[visit_exp `expr#4497*`] +[visit_id expr#4497*] no dims +[visit_id expr#4497*] +[visit_exp `expr_F*`] +[visit_id expr_F*] not free +[visit_id expr_F*] no dims +[visit_exp `local**`] +[visit_id local**] not free +[visit_id local**] no dims +[visit_exp `local*#1353*`] +[visit_id local*#1353*] no dims +[visit_id local*#1353*] +[visit_exp `typeidx#1810*`] +[visit_id typeidx#1810*] no dims +[visit_id typeidx#1810*] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[visit_exp moduleinst^|func*{func <- `func*`}|{}] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp |func*{func <- `func*`}|] +[visit_exp func*{func <- `func*`}] +[scope_enter func] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] not free +[visit_id func*] no dims +[visit_exp (xi*{xi <- `xi*`} = $allocexports({`TYPES`{`deftype*#94`} [], `TAGS`{`tagaddr*#5`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#4`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#5`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#5`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#6`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#3`} [], `ELEMS`{`elemaddr*#3`} [], `EXPORTS`{`exportinst*#1`} []}, export*{export <- `export*`}))] +[visit_exp xi*{xi <- `xi*`}] +[scope_enter xi] +[visit_exp xi] +[visit_id xi] not free +[visit_id xi] not free +[scope_exit xi] +[visit_exp `xi*`] +[visit_id xi*] no dims +[visit_id xi*] +[visit_exp $allocexports({`TYPES`{`deftype*#94`} [], `TAGS`{`tagaddr*#5`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#4`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#5`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#5`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#6`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#3`} [], `ELEMS`{`elemaddr*#3`} [], `EXPORTS`{`exportinst*#1`} []}, export*{export <- `export*`})] +[visit_exp {`TYPES`{`deftype*#94`} [], `TAGS`{`tagaddr*#5`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#4`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#5`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#5`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#6`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#3`} [], `ELEMS`{`elemaddr*#3`} [], `EXPORTS`{`exportinst*#1`} []}] +[visit_exp `deftype*#94`] +[visit_id deftype*#94] +[visit_exp []] +[visit_exp `tagaddr*#5`] +[visit_id tagaddr*#5] +[visit_exp aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}] +[visit_exp aa_I*{aa_I <- `aa_I*`}] +[scope_enter aa_I] +[visit_exp aa_I] +[visit_id aa_I] not free +[visit_id aa_I] not free +[scope_exit aa_I] +[visit_exp `aa_I*`] +[visit_id aa_I*] not free +[visit_id aa_I*] no dims +[visit_exp aa*{aa <- `aa*`}] +[scope_enter aa] +[visit_exp aa] +[visit_id aa] not free +[visit_id aa] not free +[scope_exit aa] +[visit_exp `aa*`] +[visit_id aa*] not free +[visit_id aa*] no dims +[visit_exp `globaladdr*#4`] +[visit_id globaladdr*#4] +[visit_exp ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}] +[visit_exp ga_I*{ga_I <- `ga_I*`}] +[scope_enter ga_I] +[visit_exp ga_I] +[visit_id ga_I] not free +[visit_id ga_I] not free +[scope_exit ga_I] +[visit_exp `ga_I*`] +[visit_id ga_I*] not free +[visit_id ga_I*] no dims +[visit_exp ga*{ga <- `ga*`}] +[scope_enter ga] +[visit_exp ga] +[visit_id ga] not free +[visit_id ga] not free +[scope_exit ga] +[visit_exp `ga*`] +[visit_id ga*] not free +[visit_id ga*] no dims +[visit_exp `memaddr*#5`] +[visit_id memaddr*#5] +[visit_exp ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}] +[visit_exp ma_I*{ma_I <- `ma_I*`}] +[scope_enter ma_I] +[visit_exp ma_I] +[visit_id ma_I] not free +[visit_id ma_I] not free +[scope_exit ma_I] +[visit_exp `ma_I*`] +[visit_id ma_I*] not free +[visit_id ma_I*] no dims +[visit_exp ma*{ma <- `ma*`}] +[scope_enter ma] +[visit_exp ma] +[visit_id ma] not free +[visit_id ma] not free +[scope_exit ma] +[visit_exp `ma*`] +[visit_id ma*] not free +[visit_id ma*] no dims +[visit_exp `tableaddr*#5`] +[visit_id tableaddr*#5] +[visit_exp ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}] +[visit_exp ta_I*{ta_I <- `ta_I*`}] +[scope_enter ta_I] +[visit_exp ta_I] +[visit_id ta_I] not free +[visit_id ta_I] not free +[scope_exit ta_I] +[visit_exp `ta_I*`] +[visit_id ta_I*] not free +[visit_id ta_I*] no dims +[visit_exp ta*{ta <- `ta*`}] +[scope_enter ta] +[visit_exp ta] +[visit_id ta] not free +[visit_id ta] not free +[scope_exit ta] +[visit_exp `ta*`] +[visit_id ta*] not free +[visit_id ta*] no dims +[visit_exp `funcaddr*#6`] +[visit_id funcaddr*#6] +[visit_exp fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}] +[visit_exp fa_I*{fa_I <- `fa_I*`}] +[scope_enter fa_I] +[visit_exp fa_I] +[visit_id fa_I] not free +[visit_id fa_I] not free +[scope_exit fa_I] +[visit_exp `fa_I*`] +[visit_id fa_I*] not free +[visit_id fa_I*] no dims +[visit_exp fa*{fa <- `fa*`}] +[scope_enter fa] +[visit_exp fa] +[visit_id fa] not free +[visit_id fa] not free +[scope_exit fa] +[visit_exp `fa*`] +[visit_id fa*] not free +[visit_id fa*] no dims +[visit_exp `dataaddr*#3`] +[visit_id dataaddr*#3] +[visit_exp []] +[visit_exp `elemaddr*#3`] +[visit_id elemaddr*#3] +[visit_exp []] +[visit_exp `exportinst*#1`] +[visit_id exportinst*#1] +[visit_exp []] +[visit_exp export*{export <- `export*`}] +[scope_enter export] +[visit_exp export] +[visit_id export] not free +[visit_id export] not free +[scope_exit export] +[visit_exp `export*`] +[visit_id export*] not free +[visit_id export*] no dims +[visit_exp (moduleinst = {`TYPES`{`deftype*#95`} dt*{dt <- `dt*`}, `TAGS`{`tagaddr*#6`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#5`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#6`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#6`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#7`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#4`} da*{da <- `da*`}, `ELEMS`{`elemaddr*#4`} ea*{ea <- `ea*`}, `EXPORTS`{`exportinst*#2`} xi*{xi <- `xi*`}})] +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp {`TYPES`{`deftype*#95`} dt*{dt <- `dt*`}, `TAGS`{`tagaddr*#6`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#5`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#6`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#6`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#7`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#4`} da*{da <- `da*`}, `ELEMS`{`elemaddr*#4`} ea*{ea <- `ea*`}, `EXPORTS`{`exportinst*#2`} xi*{xi <- `xi*`}}] +[visit_exp `deftype*#95`] +[visit_id deftype*#95] +[visit_exp dt*{dt <- `dt*`}] +[scope_enter dt] +[visit_exp dt] +[visit_id dt] not free +[visit_id dt] not free +[scope_exit dt] +[visit_exp `dt*`] +[visit_id dt*] not free +[visit_id dt*] no dims +[visit_exp `tagaddr*#6`] +[visit_id tagaddr*#6] +[visit_exp aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}] +[visit_exp aa_I*{aa_I <- `aa_I*`}] +[scope_enter aa_I] +[visit_exp aa_I] +[visit_id aa_I] not free +[visit_id aa_I] not free +[scope_exit aa_I] +[visit_exp `aa_I*`] +[visit_id aa_I*] not free +[visit_id aa_I*] no dims +[visit_exp aa*{aa <- `aa*`}] +[scope_enter aa] +[visit_exp aa] +[visit_id aa] not free +[visit_id aa] not free +[scope_exit aa] +[visit_exp `aa*`] +[visit_id aa*] not free +[visit_id aa*] no dims +[visit_exp `globaladdr*#5`] +[visit_id globaladdr*#5] +[visit_exp ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}] +[visit_exp ga_I*{ga_I <- `ga_I*`}] +[scope_enter ga_I] +[visit_exp ga_I] +[visit_id ga_I] not free +[visit_id ga_I] not free +[scope_exit ga_I] +[visit_exp `ga_I*`] +[visit_id ga_I*] not free +[visit_id ga_I*] no dims +[visit_exp ga*{ga <- `ga*`}] +[scope_enter ga] +[visit_exp ga] +[visit_id ga] not free +[visit_id ga] not free +[scope_exit ga] +[visit_exp `ga*`] +[visit_id ga*] not free +[visit_id ga*] no dims +[visit_exp `memaddr*#6`] +[visit_id memaddr*#6] +[visit_exp ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}] +[visit_exp ma_I*{ma_I <- `ma_I*`}] +[scope_enter ma_I] +[visit_exp ma_I] +[visit_id ma_I] not free +[visit_id ma_I] not free +[scope_exit ma_I] +[visit_exp `ma_I*`] +[visit_id ma_I*] not free +[visit_id ma_I*] no dims +[visit_exp ma*{ma <- `ma*`}] +[scope_enter ma] +[visit_exp ma] +[visit_id ma] not free +[visit_id ma] not free +[scope_exit ma] +[visit_exp `ma*`] +[visit_id ma*] not free +[visit_id ma*] no dims +[visit_exp `tableaddr*#6`] +[visit_id tableaddr*#6] +[visit_exp ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}] +[visit_exp ta_I*{ta_I <- `ta_I*`}] +[scope_enter ta_I] +[visit_exp ta_I] +[visit_id ta_I] not free +[visit_id ta_I] not free +[scope_exit ta_I] +[visit_exp `ta_I*`] +[visit_id ta_I*] not free +[visit_id ta_I*] no dims +[visit_exp ta*{ta <- `ta*`}] +[scope_enter ta] +[visit_exp ta] +[visit_id ta] not free +[visit_id ta] not free +[scope_exit ta] +[visit_exp `ta*`] +[visit_id ta*] not free +[visit_id ta*] no dims +[visit_exp `funcaddr*#7`] +[visit_id funcaddr*#7] +[visit_exp fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}] +[visit_exp fa_I*{fa_I <- `fa_I*`}] +[scope_enter fa_I] +[visit_exp fa_I] +[visit_id fa_I] not free +[visit_id fa_I] not free +[scope_exit fa_I] +[visit_exp `fa_I*`] +[visit_id fa_I*] not free +[visit_id fa_I*] no dims +[visit_exp fa*{fa <- `fa*`}] +[scope_enter fa] +[visit_exp fa] +[visit_id fa] not free +[visit_id fa] not free +[scope_exit fa] +[visit_exp `fa*`] +[visit_id fa*] not free +[visit_id fa*] no dims +[visit_exp `dataaddr*#4`] +[visit_id dataaddr*#4] +[visit_exp da*{da <- `da*`}] +[scope_enter da] +[visit_exp da] +[visit_id da] not free +[visit_id da] not free +[scope_exit da] +[visit_exp `da*`] +[visit_id da*] not free +[visit_id da*] no dims +[visit_exp `elemaddr*#4`] +[visit_id elemaddr*#4] +[visit_exp ea*{ea <- `ea*`}] +[scope_enter ea] +[visit_exp ea] +[visit_id ea] not free +[visit_id ea] not free +[scope_exit ea] +[visit_exp `ea*`] +[visit_id ea*] not free +[visit_id ea*] no dims +[visit_exp `exportinst*#2`] +[visit_id exportinst*#2] +[visit_exp xi*{xi <- `xi*`}] +[scope_enter xi] +[visit_exp xi] +[visit_id xi] not free +[visit_id xi] not free +[scope_exit xi] +[visit_exp `xi*`] +[visit_id xi*] not free +[visit_id xi*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $allocmodule{s : store, module : module, `externaddr*` : externaddr*, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, s_7 : store, moduleinst : moduleinst, `type*#101` : type*, `import*#101` : import*, `tag*#101` : tag*, `global*#125` : global*, `mem*#125` : mem*, `table*#125` : table*, `func*#101` : func*, `data*#101` : data*, `elem*#125` : elem*, `start?#101` : start?, `export*#101` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `tagtype*` : tagtype*, `tagtype#260*` : tagtype*, `expr#4459*` : expr*, `expr_G*` : expr*, `globaltype*` : globaltype*, `globaltype#2179*` : globaltype*, `memtype*` : memtype*, `memtype#634*` : memtype*, `expr#4477*` : expr*, `expr_T*` : expr*, `tabletype*` : tabletype*, `tabletype#998*` : tabletype*, `expr#4495*` : expr*, `expr_F*` : expr*, `local**` : local**, `local*#1351*` : local**, `typeidx#1808*` : typeidx*, `x*` : idx*, `byte**` : byte**, `byte*#2021*` : byte**, `datamode*` : datamode*, `datamode#1985*` : datamode*, `elemmode*` : elemmode*, `elemmode#3087*` : elemmode*, `elemtype*` : elemtype*, `expr*#3087*` : expr**, `expr_E**` : expr**, `reftype#3705*` : reftype*, `aa_I*` : tagaddr*, `ga_I*` : globaladdr*, `ma_I*` : memaddr*, `ta_I*` : tableaddr*, `fa_I*` : funcaddr*, `dt*` : deftype*, `fa*` : nat*, i_F : nat, `funcinst*#14*` : funcinst**, s_1 : store, `aa*` : tagaddr*, s_2 : store, `ga*` : globaladdr*, s_3 : store, `ma*` : memaddr*, s_4 : store, `ta*` : tableaddr*, s_5 : store, `da*` : dataaddr*, s_6 : store, `ea*` : elemaddr*, `i#47295*` : nat*, `expr#4497*` : expr*, `local*#1353*` : local**, `typeidx#1810*` : typeidx*, `xi*` : exportinst*, `deftype*#94` : deftype*, `tagaddr*#5` : tagaddr*, `globaladdr*#4` : globaladdr*, `memaddr*#5` : memaddr*, `tableaddr*#5` : tableaddr*, `funcaddr*#6` : funcaddr*, `dataaddr*#3` : dataaddr*, `elemaddr*#3` : elemaddr*, `exportinst*#1` : exportinst*, `deftype*#95` : deftype*, `tagaddr*#6` : tagaddr*, `globaladdr*#5` : globaladdr*, `memaddr*#6` : memaddr*, `tableaddr*#6` : tableaddr*, `funcaddr*#7` : funcaddr*, `dataaddr*#4` : dataaddr*, `elemaddr*#4` : elemaddr*, `exportinst*#2` : exportinst*}(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}) = (s_7, moduleinst) + -- if (module = `MODULE`_module{`type*#101`, `import*#101`, `tag*#101`, `global*#125`, `mem*#125`, `table*#125`, `func*#101`, `data*#101`, `elem*#125`, `start?#101`, `export*#101`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) + -- if (tag*{tag <- `tag*`} = `TAG`_tag{tagtype#260}(tagtype)*{tagtype <- `tagtype*`, tagtype#260 <- `tagtype#260*`}) + -- if (global*{global <- `global*`} = `GLOBAL`_global{globaltype#2179, expr#4459}(globaltype, expr_G)*{expr#4459 <- `expr#4459*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2179 <- `globaltype#2179*`}) + -- if (mem*{mem <- `mem*`} = `MEMORY`_mem{memtype#634}(memtype)*{memtype <- `memtype*`, memtype#634 <- `memtype#634*`}) + -- if (table*{table <- `table*`} = `TABLE`_table{tabletype#998, expr#4477}(tabletype, expr_T)*{expr#4477 <- `expr#4477*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#998 <- `tabletype#998*`}) + -- if (func*{func <- `func*`} = `FUNC`_func{typeidx#1808, `local*#1351`, expr#4495}(x, local*{local <- `local*`}, expr_F)*{expr#4495 <- `expr#4495*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1351` <- `local*#1351*`, typeidx#1808 <- `typeidx#1808*`, x <- `x*`}) + -- if (data*{data <- `data*`} = `DATA`_data{`byte*#2021`, datamode#1985}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2021` <- `byte*#2021*`, datamode <- `datamode*`, datamode#1985 <- `datamode#1985*`}) + -- if (elem*{elem <- `elem*`} = `ELEM`_elem{reftype#3705, `expr*#3087`, elemmode#3087}(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3087 <- `elemmode#3087*`, elemtype <- `elemtype*`, `expr*#3087` <- `expr*#3087*`, `expr_E*` <- `expr_E**`, reftype#3705 <- `reftype#3705*`}) + -- if (aa_I*{aa_I <- `aa_I*`} = $tagsxa(externaddr*{externaddr <- `externaddr*`})) + -- if (ga_I*{ga_I <- `ga_I*`} = $globalsxa(externaddr*{externaddr <- `externaddr*`})) + -- if (ma_I*{ma_I <- `ma_I*`} = $memsxa(externaddr*{externaddr <- `externaddr*`})) + -- if (ta_I*{ta_I <- `ta_I*`} = $tablesxa(externaddr*{externaddr <- `externaddr*`})) + -- if (fa_I*{fa_I <- `fa_I*`} = $funcsxa(externaddr*{externaddr <- `externaddr*`})) + -- if (dt*{dt <- `dt*`} = $alloctypes(type*{type <- `type*`})) + -- if (fa*{fa <- `fa*`} = (|s.`FUNCS`_store{`funcinst*#14`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#14` <- `funcinst*#14*`}) + -- if ((s_1, aa*{aa <- `aa*`}) = $alloctags(s, $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tagtype <- `tagtype*`})) + -- if ((s_2, ga*{ga <- `ga*`}) = $allocglobals(s_1, $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{globaltype <- `globaltype*`}, val_G*{val_G <- `val_G*`})) + -- if ((s_3, ma*{ma <- `ma*`}) = $allocmems(s_2, $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{memtype <- `memtype*`})) + -- if ((s_4, ta*{ta <- `ta*`}) = $alloctables(s_3, $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tabletype <- `tabletype*`}, ref_T*{ref_T <- `ref_T*`})) + -- if ((s_5, da*{da <- `da*`}) = $allocdatas(s_4, `OK`_datatype^|data*{data <- `data*`}|{}, byte*{byte <- `byte*`}*{`byte*` <- `byte**`})) + -- if ((s_6, ea*{ea <- `ea*`}) = $allocelems(s_5, $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{elemtype <- `elemtype*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})) + -- if ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx{i#47295}.0]*{i#47295 <- `i#47295*`, x <- `x*`}, `FUNC`_funccode{typeidx#1810, `local*#1353`, expr#4497}(x, local*{local <- `local*`}, expr_F)*{expr#4497 <- `expr#4497*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1353` <- `local*#1353*`, typeidx#1810 <- `typeidx#1810*`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})) + -- if (xi*{xi <- `xi*`} = $allocexports({`TYPES`{`deftype*#94`} [], `TAGS`{`tagaddr*#5`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#4`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#5`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#5`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#6`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#3`} [], `ELEMS`{`elemaddr*#3`} [], `EXPORTS`{`exportinst*#1`} []}, export*{export <- `export*`})) + -- if (moduleinst = {`TYPES`{`deftype*#95`} dt*{dt <- `dt*`}, `TAGS`{`tagaddr*#6`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#5`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#6`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#6`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#7`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#4`} da*{da <- `da*`}, `ELEMS`{`elemaddr*#4`} ea*{ea <- `ea*`}, `EXPORTS`{`exportinst*#2`} xi*{xi <- `xi*`}}) +[check_dims] data dataidx +DecD rundata_(dataidx : dataidx, data : data) : instr* +[visit_id dataidx] not free +[visit_id data] not free +[check_dims] b byte*#2033 datamode#1997 n x +[visit_exp x] +[visit_id x] +[visit_exp `DATA`_data{`byte*#2033`, datamode#1997}(b^n{b <- `b*`}, `PASSIVE`_datamode)] +[visit_exp `byte*#2033`] +[visit_id byte*#2033] +[visit_exp datamode#1997] +[visit_id datamode#1997] +[visit_exp (b^n{b <- `b*`}, `PASSIVE`_datamode)] +[visit_exp b^n{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp n] +[visit_id n] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp `PASSIVE`_datamode] +[visit_exp ()] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $rundata_{x : idx, `byte*#2033` : byte*, datamode#1997 : datamode, n : n, `b*` : byte*}(x, `DATA`_data{`byte*#2033`, datamode#1997}(b^n{b <- `b*`}, `PASSIVE`_datamode)) = [] +[check_dims] b byte*#2045 dataidx#43 dataidx#45 datamode#2009 expr#4499 i#47393 i#47417 instr memidx#165 memidx#167 n numtype#623 numtype#625 x y +[visit_exp x] +[visit_id x] +[visit_exp `DATA`_data{`byte*#2045`, datamode#2009}(b^n{b <- `b*`}, `ACTIVE`_datamode{memidx#165, expr#4499}(y, instr*{instr <- `instr*`}))] +[visit_exp `byte*#2045`] +[visit_id byte*#2045] +[visit_exp datamode#2009] +[visit_id datamode#2009] +[visit_exp (b^n{b <- `b*`}, `ACTIVE`_datamode{memidx#165, expr#4499}(y, instr*{instr <- `instr*`}))] +[visit_exp b^n{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp n] +[visit_id n] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp `ACTIVE`_datamode{memidx#165, expr#4499}(y, instr*{instr <- `instr*`})] +[visit_exp memidx#165] +[visit_id memidx#165] +[visit_exp expr#4499] +[visit_id expr#4499] +[visit_exp (y, instr*{instr <- `instr*`})] +[visit_exp y] +[visit_id y] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp instr*{instr <- `instr*`} ++ [`CONST`_instr{numtype#623}(`I32`_numtype, `%`_num_{i#47393}(0)) `CONST`_instr{numtype#625}(`I32`_numtype, `%`_num_{i#47417}(n)) `MEMORY.INIT`_instr{memidx#167, dataidx#43}(y, x) `DATA.DROP`_instr{dataidx#45}(x)]] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp [`CONST`_instr{numtype#623}(`I32`_numtype, `%`_num_{i#47393}(0)) `CONST`_instr{numtype#625}(`I32`_numtype, `%`_num_{i#47417}(n)) `MEMORY.INIT`_instr{memidx#167, dataidx#43}(y, x) `DATA.DROP`_instr{dataidx#45}(x)]] +[visit_exp `CONST`_instr{numtype#623}(`I32`_numtype, `%`_num_{i#47393}(0))] +[visit_exp numtype#623] +[visit_id numtype#623] +[visit_exp (`I32`_numtype, `%`_num_{i#47393}(0))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#47393}(0)] +[visit_exp i#47393] +[visit_id i#47393] +[visit_exp (0)] +[visit_exp 0] +[visit_exp `CONST`_instr{numtype#625}(`I32`_numtype, `%`_num_{i#47417}(n))] +[visit_exp numtype#625] +[visit_id numtype#625] +[visit_exp (`I32`_numtype, `%`_num_{i#47417}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#47417}(n)] +[visit_exp i#47417] +[visit_id i#47417] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp `MEMORY.INIT`_instr{memidx#167, dataidx#43}(y, x)] +[visit_exp memidx#167] +[visit_id memidx#167] +[visit_exp dataidx#43] +[visit_id dataidx#43] +[visit_exp (y, x)] +[visit_exp y] +[visit_id y] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `DATA.DROP`_instr{dataidx#45}(x)] +[visit_exp dataidx#45] +[visit_id dataidx#45] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $rundata_{x : idx, `byte*#2045` : byte*, datamode#2009 : datamode, n : n, `b*` : byte*, memidx#165 : memidx, expr#4499 : expr, y : idx, `instr*` : instr*, numtype#623 : numtype, i#47393 : nat, numtype#625 : numtype, i#47417 : nat, memidx#167 : memidx, dataidx#43 : dataidx, dataidx#45 : dataidx}(x, `DATA`_data{`byte*#2045`, datamode#2009}(b^n{b <- `b*`}, `ACTIVE`_datamode{memidx#165, expr#4499}(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr{numtype#623}(`I32`_numtype, `%`_num_{i#47393}(0)) `CONST`_instr{numtype#625}(`I32`_numtype, `%`_num_{i#47417}(n)) `MEMORY.INIT`_instr{memidx#167, dataidx#43}(y, x) `DATA.DROP`_instr{dataidx#45}(x)] +[check_dims] elem elemidx +DecD runelem_(elemidx : elemidx, elem : elem) : instr* +[visit_id elemidx] not free +[visit_id elem] not free +[check_dims] e elemmode#3099 expr*#3099 n reftype#3735 rt x +[visit_exp x] +[visit_id x] +[visit_exp `ELEM`_elem{reftype#3735, `expr*#3099`, elemmode#3099}(rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)] +[visit_exp reftype#3735] +[visit_id reftype#3735] +[visit_exp `expr*#3099`] +[visit_id expr*#3099] +[visit_exp elemmode#3099] +[visit_id elemmode#3099] +[visit_exp (rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)] +[visit_exp rt] +[visit_id rt] +[visit_exp e^n{e <- `e*`}] +[scope_enter e] +[visit_exp e] +[visit_id e] not free +[visit_id e] not free +[scope_exit e] +[visit_exp n] +[visit_id n] +[visit_exp `e*`] +[visit_id e*] no dims +[visit_id e*] +[visit_exp `PASSIVE`_elemmode] +[visit_exp ()] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $runelem_{x : idx, reftype#3735 : reftype, `expr*#3099` : expr*, elemmode#3099 : elemmode, rt : reftype, n : n, `e*` : expr*}(x, `ELEM`_elem{reftype#3735, `expr*#3099`, elemmode#3099}(rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)) = [] +[check_dims] e elemidx#43 elemmode#3111 expr*#3111 n reftype#3747 rt x +[visit_exp x] +[visit_id x] +[visit_exp `ELEM`_elem{reftype#3747, `expr*#3111`, elemmode#3111}(rt, e^n{e <- `e*`}, `DECLARE`_elemmode)] +[visit_exp reftype#3747] +[visit_id reftype#3747] +[visit_exp `expr*#3111`] +[visit_id expr*#3111] +[visit_exp elemmode#3111] +[visit_id elemmode#3111] +[visit_exp (rt, e^n{e <- `e*`}, `DECLARE`_elemmode)] +[visit_exp rt] +[visit_id rt] +[visit_exp e^n{e <- `e*`}] +[scope_enter e] +[visit_exp e] +[visit_id e] not free +[visit_id e] not free +[scope_exit e] +[visit_exp n] +[visit_id n] +[visit_exp `e*`] +[visit_id e*] no dims +[visit_id e*] +[visit_exp `DECLARE`_elemmode] +[visit_exp ()] +[visit_exp [`ELEM.DROP`_instr{elemidx#43}(x)]] +[visit_exp `ELEM.DROP`_instr{elemidx#43}(x)] +[visit_exp elemidx#43] +[visit_id elemidx#43] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $runelem_{x : idx, reftype#3747 : reftype, `expr*#3111` : expr*, elemmode#3111 : elemmode, rt : reftype, n : n, `e*` : expr*, elemidx#43 : elemidx}(x, `ELEM`_elem{reftype#3747, `expr*#3111`, elemmode#3111}(rt, e^n{e <- `e*`}, `DECLARE`_elemmode)) = [`ELEM.DROP`_instr{elemidx#43}(x)] +[check_dims] e elemidx#45 elemidx#47 elemmode#3123 expr#4501 expr*#3123 i#47545 i#47569 instr n numtype#627 numtype#629 reftype#3759 rt tableidx#119 tableidx#121 x y +[visit_exp x] +[visit_id x] +[visit_exp `ELEM`_elem{reftype#3759, `expr*#3123`, elemmode#3123}(rt, e^n{e <- `e*`}, `ACTIVE`_elemmode{tableidx#119, expr#4501}(y, instr*{instr <- `instr*`}))] +[visit_exp reftype#3759] +[visit_id reftype#3759] +[visit_exp `expr*#3123`] +[visit_id expr*#3123] +[visit_exp elemmode#3123] +[visit_id elemmode#3123] +[visit_exp (rt, e^n{e <- `e*`}, `ACTIVE`_elemmode{tableidx#119, expr#4501}(y, instr*{instr <- `instr*`}))] +[visit_exp rt] +[visit_id rt] +[visit_exp e^n{e <- `e*`}] +[scope_enter e] +[visit_exp e] +[visit_id e] not free +[visit_id e] not free +[scope_exit e] +[visit_exp n] +[visit_id n] +[visit_exp `e*`] +[visit_id e*] no dims +[visit_id e*] +[visit_exp `ACTIVE`_elemmode{tableidx#119, expr#4501}(y, instr*{instr <- `instr*`})] +[visit_exp tableidx#119] +[visit_id tableidx#119] +[visit_exp expr#4501] +[visit_id expr#4501] +[visit_exp (y, instr*{instr <- `instr*`})] +[visit_exp y] +[visit_id y] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp instr*{instr <- `instr*`} ++ [`CONST`_instr{numtype#627}(`I32`_numtype, `%`_num_{i#47545}(0)) `CONST`_instr{numtype#629}(`I32`_numtype, `%`_num_{i#47569}(n)) `TABLE.INIT`_instr{tableidx#121, elemidx#45}(y, x) `ELEM.DROP`_instr{elemidx#47}(x)]] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp [`CONST`_instr{numtype#627}(`I32`_numtype, `%`_num_{i#47545}(0)) `CONST`_instr{numtype#629}(`I32`_numtype, `%`_num_{i#47569}(n)) `TABLE.INIT`_instr{tableidx#121, elemidx#45}(y, x) `ELEM.DROP`_instr{elemidx#47}(x)]] +[visit_exp `CONST`_instr{numtype#627}(`I32`_numtype, `%`_num_{i#47545}(0))] +[visit_exp numtype#627] +[visit_id numtype#627] +[visit_exp (`I32`_numtype, `%`_num_{i#47545}(0))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#47545}(0)] +[visit_exp i#47545] +[visit_id i#47545] +[visit_exp (0)] +[visit_exp 0] +[visit_exp `CONST`_instr{numtype#629}(`I32`_numtype, `%`_num_{i#47569}(n))] +[visit_exp numtype#629] +[visit_id numtype#629] +[visit_exp (`I32`_numtype, `%`_num_{i#47569}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#47569}(n)] +[visit_exp i#47569] +[visit_id i#47569] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp `TABLE.INIT`_instr{tableidx#121, elemidx#45}(y, x)] +[visit_exp tableidx#121] +[visit_id tableidx#121] +[visit_exp elemidx#45] +[visit_id elemidx#45] +[visit_exp (y, x)] +[visit_exp y] +[visit_id y] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `ELEM.DROP`_instr{elemidx#47}(x)] +[visit_exp elemidx#47] +[visit_id elemidx#47] +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $runelem_{x : idx, reftype#3759 : reftype, `expr*#3123` : expr*, elemmode#3123 : elemmode, rt : reftype, n : n, `e*` : expr*, tableidx#119 : tableidx, expr#4501 : expr, y : idx, `instr*` : instr*, numtype#627 : numtype, i#47545 : nat, numtype#629 : numtype, i#47569 : nat, tableidx#121 : tableidx, elemidx#45 : elemidx, elemidx#47 : elemidx}(x, `ELEM`_elem{reftype#3759, `expr*#3123`, elemmode#3123}(rt, e^n{e <- `e*`}, `ACTIVE`_elemmode{tableidx#119, expr#4501}(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr{numtype#627}(`I32`_numtype, `%`_num_{i#47545}(0)) `CONST`_instr{numtype#629}(`I32`_numtype, `%`_num_{i#47569}(n)) `TABLE.INIT`_instr{tableidx#121, elemidx#45}(y, x) `ELEM.DROP`_instr{elemidx#47}(x)] +[check_dims] _ state +DecD evalglobals(state : state, globaltype*, expr*) : (state, val*) +[visit_id state] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] z +[visit_exp z] +[visit_id z] +[visit_exp []] +[visit_exp []] +[visit_exp (z, [])] +[visit_exp z] +[visit_id z] not free +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $evalglobals{z : state}(z, [], []) = (z, []) +[check_dims] a expr expr' f frame#2561 frame#2573 globaladdr*#6 gt gt' moduleinst#26 s s' store#2543 store#2555 val val' z z' +[visit_exp z] +[visit_id z] +[visit_exp [gt] ++ gt'*{gt' <- `gt'*`}] +[visit_exp [gt]] +[visit_exp gt] +[visit_id gt] +[visit_exp gt'*{gt' <- `gt'*`}] +[scope_enter gt'] +[visit_exp gt'] +[visit_id gt'] not free +[visit_id gt'] not free +[scope_exit gt'] +[visit_exp `gt'*`] +[visit_id gt'*] no dims +[visit_id gt'*] +[visit_exp [expr] ++ expr'*{expr' <- `expr'*`}] +[visit_exp [expr]] +[visit_exp expr] +[visit_id expr] +[visit_exp expr'*{expr' <- `expr'*`}] +[scope_enter expr'] +[visit_exp expr'] +[visit_id expr'] not free +[visit_id expr'] not free +[scope_exit expr'] +[visit_exp `expr'*`] +[visit_id expr'*] no dims +[visit_id expr'*] +[visit_exp (z', [val] ++ val'*{val' <- `val'*`})] +[visit_exp z'] +[visit_id z'] +[visit_exp [val] ++ val'*{val' <- `val'*`}] +[visit_exp [val]] +[visit_exp val] +[visit_id val] +[visit_exp val'*{val' <- `val'*`}] +[scope_enter val'] +[visit_exp val'] +[visit_id val'] not free +[visit_id val'] not free +[scope_exit val'] +[visit_exp `val'*`] +[visit_id val'*] no dims +[visit_id val'*] +[visit_exp (z, expr, z, [val])] +[visit_exp z] +[visit_id z] not free +[visit_exp expr] +[visit_id expr] not free +[visit_exp z] +[visit_id z] not free +[visit_exp [val]] +[visit_exp val] +[visit_id val] not free +[visit_exp (z = `%;%`_state{store#2543, frame#2561}(s, f))] +[visit_exp z] +[visit_id z] not free +[visit_exp `%;%`_state{store#2543, frame#2561}(s, f)] +[visit_exp store#2543] +[visit_id store#2543] +[visit_exp frame#2561] +[visit_id frame#2561] +[visit_exp (s, f)] +[visit_exp s] +[visit_id s] +[visit_exp f] +[visit_id f] +[visit_exp ((s', a) = $allocglobal(s, gt, val))] +[visit_exp (s', a)] +[visit_exp s'] +[visit_id s'] +[visit_exp a] +[visit_id a] +[visit_exp $allocglobal(s, gt, val)] +[visit_exp s] +[visit_id s] not free +[visit_exp gt] +[visit_id gt] not free +[visit_exp val] +[visit_id val] not free +[visit_exp ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state{store#2555, frame#2573}(s', f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`}))] +[visit_exp (z', val'*{val' <- `val'*`})] +[visit_exp z'] +[visit_id z'] not free +[visit_exp val'*{val' <- `val'*`}] +[scope_enter val'] +[visit_exp val'] +[visit_id val'] not free +[visit_id val'] not free +[scope_exit val'] +[visit_exp `val'*`] +[visit_id val'*] not free +[visit_id val'*] no dims +[visit_exp $evalglobals(`%;%`_state{store#2555, frame#2573}(s', f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})] +[visit_exp `%;%`_state{store#2555, frame#2573}(s', f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]])] +[visit_exp store#2555] +[visit_id store#2555] +[visit_exp frame#2573] +[visit_id frame#2573] +[visit_exp (s', f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]])] +[visit_exp s'] +[visit_id s'] not free +[visit_exp f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]]] +[visit_exp f] +[visit_id f] not free +[visit_exp moduleinst#26] +[visit_id moduleinst#26] +[visit_exp `globaladdr*#6`] +[visit_id globaladdr*#6] +[visit_exp [a]] +[visit_exp a] +[visit_id a] not free +[visit_exp gt'*{gt' <- `gt'*`}] +[scope_enter gt'] +[visit_exp gt'] +[visit_id gt'] not free +[visit_id gt'] not free +[scope_exit gt'] +[visit_exp `gt'*`] +[visit_id gt'*] not free +[visit_id gt'*] no dims +[visit_exp expr'*{expr' <- `expr'*`}] +[scope_enter expr'] +[visit_exp expr'] +[visit_id expr'] not free +[visit_id expr'] not free +[scope_exit expr'] +[visit_exp `expr'*`] +[visit_id expr'*] not free +[visit_id expr'*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $evalglobals{z : state, gt : globaltype, `gt'*` : globaltype*, expr : expr, `expr'*` : expr*, z' : state, val : val, `val'*` : val*, store#2543 : store, frame#2561 : frame, s : store, f : frame, s' : store, a : addr, store#2555 : store, frame#2573 : frame, moduleinst#26 : moduleinst, `globaladdr*#6` : globaladdr*}(z, [gt] ++ gt'*{gt' <- `gt'*`}, [expr] ++ expr'*{expr' <- `expr'*`}) = (z', [val] ++ val'*{val' <- `val'*`}) + -- Eval_expr: `%;%~>*%;%`(z, expr, z, [val]) + -- if (z = `%;%`_state{store#2543, frame#2561}(s, f)) + -- if ((s', a) = $allocglobal(s, gt, val)) + -- if ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state{store#2555, frame#2573}(s', f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})) +[check_dims] _ module store +DecD instantiate(store : store, module : module, externaddr*) : config +[visit_id store] not free +[visit_id module] not free +[visit_id _] not free +[check_dims] byte byte*#2187 data data*#125 dataaddr*#5 datamode datamode#2151 deftype*#96 elem elem*#149 elemaddr*#5 elemmode elemmode#3277 export export*#125 exportinst*#3 expr#4805 expr#4823 expr*#3277 expr_E expr_G expr_T externaddr externtype*#168 frame#2597 frame#2645 func func*#125 funcaddr*#8 funcidx#3157 funcidx#3159 funcinst*#15 global global*#149 globaladdr*#7 globaltype globaltype#2271 i#47725 i#47785 i_D i_E i_F import import*#125 instr*#2334 instr_D instr_E instr_S mem mem*#149 memaddr*#7 module moduleinst moduleinst#27 moduleinst#28 moduleinst_0 ref_E ref_T reftype reftype#3919 s s' start start?#125 state#2219 store#2579 store#2627 table table*#149 tableaddr*#7 tabletype tabletype#1116 tag tag*#125 tagaddr*#7 type type*#125 val?*#5 val?*#6 val_G x xt_E xt_I z z' +[visit_exp s] +[visit_id s] +[visit_exp module] +[visit_id module] +[visit_exp externaddr*{externaddr <- `externaddr*`}] +[scope_enter externaddr] +[visit_exp externaddr] +[visit_id externaddr] not free +[visit_id externaddr] not free +[scope_exit externaddr] +[visit_exp `externaddr*`] +[visit_id externaddr*] no dims +[visit_id externaddr*] +[visit_exp `%;%`_config{state#2219, `instr*#2334`}(`%;%`_state{store#2627, frame#2645}(s', {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`}))] +[visit_exp state#2219] +[visit_id state#2219] +[visit_exp `instr*#2334`] +[visit_id instr*#2334] +[visit_exp (`%;%`_state{store#2627, frame#2645}(s', {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`}))] +[visit_exp `%;%`_state{store#2627, frame#2645}(s', {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst})] +[visit_exp store#2627] +[visit_id store#2627] +[visit_exp frame#2645] +[visit_id frame#2645] +[visit_exp (s', {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst})] +[visit_exp s'] +[visit_id s'] +[visit_exp {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst}] +[visit_exp `val?*#6`] +[visit_id val?*#6] +[visit_exp []] +[visit_exp moduleinst#28] +[visit_id moduleinst#28] +[visit_exp moduleinst] +[visit_id moduleinst] +[visit_exp instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})] +[visit_exp instr_E*{instr_E <- `instr_E*`}] +[scope_enter instr_E] +[visit_exp instr_E] +[visit_id instr_E] not free +[visit_id instr_E] not free +[scope_exit instr_E] +[visit_exp `instr_E*`] +[visit_id instr_E*] no dims +[visit_id instr_E*] +[visit_exp instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})] +[visit_exp instr_D*{instr_D <- `instr_D*`}] +[scope_enter instr_D] +[visit_exp instr_D] +[visit_id instr_D] not free +[visit_id instr_D] not free +[scope_exit instr_D] +[visit_exp `instr_D*`] +[visit_id instr_D*] no dims +[visit_id instr_D*] +[visit_exp lift(instr_S?{instr_S <- `instr_S?`})] +[visit_exp instr_S?{instr_S <- `instr_S?`}] +[scope_enter instr_S] +[visit_exp instr_S] +[visit_id instr_S] not free +[visit_id instr_S] not free +[scope_exit instr_S] +[visit_exp `instr_S?`] +[visit_id instr_S?] no dims +[visit_id instr_S?] +[visit_exp (module, `%->%`_moduletype{`externtype*#168`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))] +[visit_exp module] +[visit_id module] not free +[visit_exp `%->%`_moduletype{`externtype*#168`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] +[visit_exp `externtype*#168`] +[visit_id externtype*#168] +[visit_exp (xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] +[visit_exp xt_I*{xt_I <- `xt_I*`}] +[scope_enter xt_I] +[visit_exp xt_I] +[visit_id xt_I] not free +[visit_id xt_I] not free +[scope_exit xt_I] +[visit_exp `xt_I*`] +[visit_id xt_I*] no dims +[visit_id xt_I*] +[visit_exp xt_E*{xt_E <- `xt_E*`}] +[scope_enter xt_E] +[visit_exp xt_E] +[visit_id xt_E] not free +[visit_id xt_E] not free +[scope_exit xt_E] +[visit_exp `xt_E*`] +[visit_id xt_E*] no dims +[visit_id xt_E*] +[scope_enter externaddr] +[scope_enter xt_I] +[visit_exp (s, externaddr, xt_I)] +[visit_exp s] +[visit_id s] not free +[visit_exp externaddr] +[visit_id externaddr] not free +[visit_exp xt_I] +[visit_id xt_I] not free +[visit_id externaddr] not free +[visit_id xt_I] not free +[scope_exit xt_I] +[scope_exit externaddr] +[visit_exp `externaddr*`] +[visit_id externaddr*] not free +[visit_id externaddr*] no dims +[visit_exp `xt_I*`] +[visit_id xt_I*] not free +[visit_id xt_I*] no dims +[visit_exp (module = `MODULE`_module{`type*#125`, `import*#125`, `tag*#125`, `global*#149`, `mem*#149`, `table*#149`, `func*#125`, `data*#125`, `elem*#149`, `start?#125`, `export*#125`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}))] +[visit_exp module] +[visit_id module] not free +[visit_exp `MODULE`_module{`type*#125`, `import*#125`, `tag*#125`, `global*#149`, `mem*#149`, `table*#149`, `func*#125`, `data*#125`, `elem*#149`, `start?#125`, `export*#125`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] +[visit_exp `type*#125`] +[visit_id type*#125] +[visit_exp `import*#125`] +[visit_id import*#125] +[visit_exp `tag*#125`] +[visit_id tag*#125] +[visit_exp `global*#149`] +[visit_id global*#149] +[visit_exp `mem*#149`] +[visit_id mem*#149] +[visit_exp `table*#149`] +[visit_id table*#149] +[visit_exp `func*#125`] +[visit_id func*#125] +[visit_exp `data*#125`] +[visit_id data*#125] +[visit_exp `elem*#149`] +[visit_id elem*#149] +[visit_exp `start?#125`] +[visit_id start?#125] +[visit_exp `export*#125`] +[visit_id export*#125] +[visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] +[visit_exp type*{type <- `type*`}] +[scope_enter type] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] no dims +[visit_id type*] +[visit_exp import*{import <- `import*`}] +[scope_enter import] +[visit_exp import] +[visit_id import] not free +[visit_id import] not free +[scope_exit import] +[visit_exp `import*`] +[visit_id import*] no dims +[visit_id import*] +[visit_exp tag*{tag <- `tag*`}] +[scope_enter tag] +[visit_exp tag] +[visit_id tag] not free +[visit_id tag] not free +[scope_exit tag] +[visit_exp `tag*`] +[visit_id tag*] no dims +[visit_id tag*] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] no dims +[visit_id global*] +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] no dims +[visit_id mem*] +[visit_exp table*{table <- `table*`}] +[scope_enter table] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] no dims +[visit_id table*] +[visit_exp func*{func <- `func*`}] +[scope_enter func] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] no dims +[visit_id func*] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] no dims +[visit_id data*] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] no dims +[visit_id elem*] +[visit_exp start?{start <- `start?`}] +[scope_enter start] +[visit_exp start] +[visit_id start] not free +[visit_id start] not free +[scope_exit start] +[visit_exp `start?`] +[visit_id start?] no dims +[visit_id start?] +[visit_exp export*{export <- `export*`}] +[scope_enter export] +[visit_exp export] +[visit_id export] not free +[visit_id export] not free +[scope_exit export] +[visit_exp `export*`] +[visit_id export*] no dims +[visit_id export*] +[visit_exp (global*{global <- `global*`} = `GLOBAL`_global{globaltype#2271, expr#4805}(globaltype, expr_G)*{expr#4805 <- `expr#4805*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2271 <- `globaltype#2271*`})] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] not free +[visit_id global*] no dims +[visit_exp `GLOBAL`_global{globaltype#2271, expr#4805}(globaltype, expr_G)*{expr#4805 <- `expr#4805*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2271 <- `globaltype#2271*`}] +[scope_enter expr#4805] +[scope_enter expr_G] +[scope_enter globaltype] +[scope_enter globaltype#2271] +[visit_exp `GLOBAL`_global{globaltype#2271, expr#4805}(globaltype, expr_G)] +[visit_exp globaltype#2271] +[visit_id globaltype#2271] not free +[visit_exp expr#4805] +[visit_id expr#4805] not free +[visit_exp (globaltype, expr_G)] +[visit_exp globaltype] +[visit_id globaltype] not free +[visit_exp expr_G] +[visit_id expr_G] not free +[visit_id expr#4805] not free +[visit_id expr_G] not free +[visit_id globaltype] not free +[visit_id globaltype#2271] not free +[scope_exit globaltype#2271] +[scope_exit globaltype] +[scope_exit expr_G] +[scope_exit expr#4805] +[visit_exp `expr#4805*`] +[visit_id expr#4805*] no dims +[visit_id expr#4805*] +[visit_exp `expr_G*`] +[visit_id expr_G*] no dims +[visit_id expr_G*] +[visit_exp `globaltype*`] +[visit_id globaltype*] no dims +[visit_id globaltype*] +[visit_exp `globaltype#2271*`] +[visit_id globaltype#2271*] no dims +[visit_id globaltype#2271*] +[visit_exp (table*{table <- `table*`} = `TABLE`_table{tabletype#1116, expr#4823}(tabletype, expr_T)*{expr#4823 <- `expr#4823*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#1116 <- `tabletype#1116*`})] +[visit_exp table*{table <- `table*`}] +[scope_enter table] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] not free +[visit_id table*] no dims +[visit_exp `TABLE`_table{tabletype#1116, expr#4823}(tabletype, expr_T)*{expr#4823 <- `expr#4823*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#1116 <- `tabletype#1116*`}] +[scope_enter expr#4823] +[scope_enter expr_T] +[scope_enter tabletype] +[scope_enter tabletype#1116] +[visit_exp `TABLE`_table{tabletype#1116, expr#4823}(tabletype, expr_T)] +[visit_exp tabletype#1116] +[visit_id tabletype#1116] not free +[visit_exp expr#4823] +[visit_id expr#4823] not free +[visit_exp (tabletype, expr_T)] +[visit_exp tabletype] +[visit_id tabletype] not free +[visit_exp expr_T] +[visit_id expr_T] not free +[visit_id expr#4823] not free +[visit_id expr_T] not free +[visit_id tabletype] not free +[visit_id tabletype#1116] not free +[scope_exit tabletype#1116] +[scope_exit tabletype] +[scope_exit expr_T] +[scope_exit expr#4823] +[visit_exp `expr#4823*`] +[visit_id expr#4823*] no dims +[visit_id expr#4823*] +[visit_exp `expr_T*`] +[visit_id expr_T*] no dims +[visit_id expr_T*] +[visit_exp `tabletype*`] +[visit_id tabletype*] no dims +[visit_id tabletype*] +[visit_exp `tabletype#1116*`] +[visit_id tabletype#1116*] no dims +[visit_id tabletype#1116*] +[visit_exp (data*{data <- `data*`} = `DATA`_data{`byte*#2187`, datamode#2151}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2187` <- `byte*#2187*`, datamode <- `datamode*`, datamode#2151 <- `datamode#2151*`})] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] not free +[visit_id data*] no dims +[visit_exp `DATA`_data{`byte*#2187`, datamode#2151}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2187` <- `byte*#2187*`, datamode <- `datamode*`, datamode#2151 <- `datamode#2151*`}] +[scope_enter byte*] +[scope_enter byte*#2187] +[scope_enter datamode] +[scope_enter datamode#2151] +[visit_exp `DATA`_data{`byte*#2187`, datamode#2151}(byte*{byte <- `byte*`}, datamode)] +[visit_exp `byte*#2187`] +[visit_id byte*#2187] not free +[visit_exp datamode#2151] +[visit_id datamode#2151] not free +[visit_exp (byte*{byte <- `byte*`}, datamode)] +[visit_exp byte*{byte <- `byte*`}] +[scope_enter byte] +[visit_exp byte] +[visit_id byte] not free +[visit_id byte] not free +[scope_exit byte] +[visit_exp `byte*`] +[visit_id byte*] not free +[visit_id byte*] no dims +[visit_exp datamode] +[visit_id datamode] not free +[visit_id byte*] not free +[visit_id byte*] no dims +[visit_id byte*#2187] not free +[visit_id datamode] not free +[visit_id datamode#2151] not free +[scope_exit datamode#2151] +[scope_exit datamode] +[scope_exit byte*#2187] +[scope_exit byte*] +[visit_exp `byte**`] +[visit_id byte**] no dims +[visit_id byte**] +[visit_exp `byte*#2187*`] +[visit_id byte*#2187*] no dims +[visit_id byte*#2187*] +[visit_exp `datamode*`] +[visit_id datamode*] no dims +[visit_id datamode*] +[visit_exp `datamode#2151*`] +[visit_id datamode#2151*] no dims +[visit_id datamode#2151*] +[visit_exp (elem*{elem <- `elem*`} = `ELEM`_elem{reftype#3919, `expr*#3277`, elemmode#3277}(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3277 <- `elemmode#3277*`, `expr*#3277` <- `expr*#3277*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`, reftype#3919 <- `reftype#3919*`})] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] not free +[visit_id elem*] no dims +[visit_exp `ELEM`_elem{reftype#3919, `expr*#3277`, elemmode#3277}(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3277 <- `elemmode#3277*`, `expr*#3277` <- `expr*#3277*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`, reftype#3919 <- `reftype#3919*`}] +[scope_enter elemmode] +[scope_enter elemmode#3277] +[scope_enter expr*#3277] +[scope_enter expr_E*] +[scope_enter reftype] +[scope_enter reftype#3919] +[visit_exp `ELEM`_elem{reftype#3919, `expr*#3277`, elemmode#3277}(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)] +[visit_exp reftype#3919] +[visit_id reftype#3919] not free +[visit_exp `expr*#3277`] +[visit_id expr*#3277] not free +[visit_exp elemmode#3277] +[visit_id elemmode#3277] not free +[visit_exp (reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)] +[visit_exp reftype] +[visit_id reftype] not free +[visit_exp expr_E*{expr_E <- `expr_E*`}] +[scope_enter expr_E] +[visit_exp expr_E] +[visit_id expr_E] not free +[visit_id expr_E] not free +[scope_exit expr_E] +[visit_exp `expr_E*`] +[visit_id expr_E*] not free +[visit_id expr_E*] no dims +[visit_exp elemmode] +[visit_id elemmode] not free +[visit_id elemmode] not free +[visit_id elemmode#3277] not free +[visit_id expr*#3277] not free +[visit_id expr_E*] not free +[visit_id expr_E*] no dims +[visit_id reftype] not free +[visit_id reftype#3919] not free +[scope_exit reftype#3919] +[scope_exit reftype] +[scope_exit expr_E*] +[scope_exit expr*#3277] +[scope_exit elemmode#3277] +[scope_exit elemmode] +[visit_exp `elemmode*`] +[visit_id elemmode*] no dims +[visit_id elemmode*] +[visit_exp `elemmode#3277*`] +[visit_id elemmode#3277*] no dims +[visit_id elemmode#3277*] +[visit_exp `expr*#3277*`] +[visit_id expr*#3277*] no dims +[visit_id expr*#3277*] +[visit_exp `expr_E**`] +[visit_id expr_E**] no dims +[visit_id expr_E**] +[visit_exp `reftype*`] +[visit_id reftype*] no dims +[visit_id reftype*] +[visit_exp `reftype#3919*`] +[visit_id reftype#3919*] no dims +[visit_id reftype#3919*] +[visit_exp (start?{start <- `start?`} = `START`_start{funcidx#3157}(x)?{funcidx#3157 <- `funcidx#3157?`, x <- `x?`})] +[visit_exp start?{start <- `start?`}] +[scope_enter start] +[visit_exp start] +[visit_id start] not free +[visit_id start] not free +[scope_exit start] +[visit_exp `start?`] +[visit_id start?] not free +[visit_id start?] no dims +[visit_exp `START`_start{funcidx#3157}(x)?{funcidx#3157 <- `funcidx#3157?`, x <- `x?`}] +[scope_enter funcidx#3157] +[scope_enter x] +[visit_exp `START`_start{funcidx#3157}(x)] +[visit_exp funcidx#3157] +[visit_id funcidx#3157] not free +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_id funcidx#3157] not free +[visit_id x] not free +[scope_exit x] +[scope_exit funcidx#3157] +[visit_exp `funcidx#3157?`] +[visit_id funcidx#3157?] no dims +[visit_id funcidx#3157?] +[visit_exp `x?`] +[visit_id x?] no dims +[visit_id x?] +[visit_exp (moduleinst_0 = {`TYPES`{`deftype*#96`} $alloctypes(type*{type <- `type*`}), `TAGS`{`tagaddr*#7`} [], `GLOBALS`{`globaladdr*#7`} $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS`{`memaddr*#7`} [], `TABLES`{`tableaddr*#7`} [], `FUNCS`{`funcaddr*#8`} $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#15` <- `funcinst*#15*`}, `DATAS`{`dataaddr*#5`} [], `ELEMS`{`elemaddr*#5`} [], `EXPORTS`{`exportinst*#3`} []})] +[visit_exp moduleinst_0] +[visit_id moduleinst_0] +[visit_exp {`TYPES`{`deftype*#96`} $alloctypes(type*{type <- `type*`}), `TAGS`{`tagaddr*#7`} [], `GLOBALS`{`globaladdr*#7`} $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS`{`memaddr*#7`} [], `TABLES`{`tableaddr*#7`} [], `FUNCS`{`funcaddr*#8`} $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#15` <- `funcinst*#15*`}, `DATAS`{`dataaddr*#5`} [], `ELEMS`{`elemaddr*#5`} [], `EXPORTS`{`exportinst*#3`} []}] +[visit_exp `deftype*#96`] +[visit_id deftype*#96] +[visit_exp $alloctypes(type*{type <- `type*`})] +[visit_exp type*{type <- `type*`}] +[scope_enter type] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] not free +[visit_id type*] no dims +[visit_exp `tagaddr*#7`] +[visit_id tagaddr*#7] +[visit_exp []] +[visit_exp `globaladdr*#7`] +[visit_id globaladdr*#7] +[visit_exp $globalsxa(externaddr*{externaddr <- `externaddr*`})] +[visit_exp externaddr*{externaddr <- `externaddr*`}] +[scope_enter externaddr] +[visit_exp externaddr] +[visit_id externaddr] not free +[visit_id externaddr] not free +[scope_exit externaddr] +[visit_exp `externaddr*`] +[visit_id externaddr*] not free +[visit_id externaddr*] no dims +[visit_exp `memaddr*#7`] +[visit_id memaddr*#7] +[visit_exp []] +[visit_exp `tableaddr*#7`] +[visit_id tableaddr*#7] +[visit_exp []] +[visit_exp `funcaddr*#8`] +[visit_id funcaddr*#8] +[visit_exp $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#15` <- `funcinst*#15*`}] +[visit_exp $funcsxa(externaddr*{externaddr <- `externaddr*`})] +[visit_exp externaddr*{externaddr <- `externaddr*`}] +[scope_enter externaddr] +[visit_exp externaddr] +[visit_id externaddr] not free +[visit_id externaddr] not free +[scope_exit externaddr] +[visit_exp `externaddr*`] +[visit_id externaddr*] not free +[visit_id externaddr*] no dims +[visit_exp (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#15` <- `funcinst*#15*`}] +[scope_enter i_F] +[scope_enter funcinst*#15] +[visit_exp (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)] +[visit_exp |s.`FUNCS`_store{`funcinst*#15`}|] +[visit_exp s.`FUNCS`_store{`funcinst*#15`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `funcinst*#15`] +[visit_id funcinst*#15] not free +[visit_exp i_F] +[visit_id i_F] +[visit_id i_F] not free +[visit_id funcinst*#15] not free +[scope_exit funcinst*#15] +[scope_exit i_F] +[visit_exp |func*{func <- `func*`}|] +[visit_exp func*{func <- `func*`}] +[scope_enter func] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] not free +[visit_id func*] no dims +[visit_exp `funcinst*#15*`] +[visit_id funcinst*#15*] no dims +[visit_id funcinst*#15*] +[visit_exp `dataaddr*#5`] +[visit_id dataaddr*#5] +[visit_exp []] +[visit_exp `elemaddr*#5`] +[visit_id elemaddr*#5] +[visit_exp []] +[visit_exp `exportinst*#3`] +[visit_id exportinst*#3] +[visit_exp []] +[visit_exp (z = `%;%`_state{store#2579, frame#2597}(s, {`LOCALS`{`val?*#5`} [], `MODULE`{moduleinst#27} moduleinst_0}))] +[visit_exp z] +[visit_id z] +[visit_exp `%;%`_state{store#2579, frame#2597}(s, {`LOCALS`{`val?*#5`} [], `MODULE`{moduleinst#27} moduleinst_0})] +[visit_exp store#2579] +[visit_id store#2579] +[visit_exp frame#2597] +[visit_id frame#2597] +[visit_exp (s, {`LOCALS`{`val?*#5`} [], `MODULE`{moduleinst#27} moduleinst_0})] +[visit_exp s] +[visit_id s] not free +[visit_exp {`LOCALS`{`val?*#5`} [], `MODULE`{moduleinst#27} moduleinst_0}] +[visit_exp `val?*#5`] +[visit_id val?*#5] +[visit_exp []] +[visit_exp moduleinst#27] +[visit_id moduleinst#27] +[visit_exp moduleinst_0] +[visit_id moduleinst_0] not free +[visit_exp ((z', val_G*{val_G <- `val_G*`}) = $evalglobals(z, globaltype*{globaltype <- `globaltype*`}, expr_G*{expr_G <- `expr_G*`}))] +[visit_exp (z', val_G*{val_G <- `val_G*`})] +[visit_exp z'] +[visit_id z'] +[visit_exp val_G*{val_G <- `val_G*`}] +[scope_enter val_G] +[visit_exp val_G] +[visit_id val_G] not free +[visit_id val_G] not free +[scope_exit val_G] +[visit_exp `val_G*`] +[visit_id val_G*] no dims +[visit_id val_G*] +[visit_exp $evalglobals(z, globaltype*{globaltype <- `globaltype*`}, expr_G*{expr_G <- `expr_G*`})] +[visit_exp z] +[visit_id z] not free +[visit_exp globaltype*{globaltype <- `globaltype*`}] +[scope_enter globaltype] +[visit_exp globaltype] +[visit_id globaltype] not free +[visit_id globaltype] not free +[scope_exit globaltype] +[visit_exp `globaltype*`] +[visit_id globaltype*] not free +[visit_id globaltype*] no dims +[visit_exp expr_G*{expr_G <- `expr_G*`}] +[scope_enter expr_G] +[visit_exp expr_G] +[visit_id expr_G] not free +[visit_id expr_G] not free +[scope_exit expr_G] +[visit_exp `expr_G*`] +[visit_id expr_G*] not free +[visit_id expr_G*] no dims +[scope_enter expr_T] +[scope_enter ref_T] +[visit_exp (z', expr_T, z', [(ref_T : ref <: val)])] +[visit_exp z'] +[visit_id z'] not free +[visit_exp expr_T] +[visit_id expr_T] not free +[visit_exp z'] +[visit_id z'] not free +[visit_exp [(ref_T : ref <: val)]] +[visit_exp (ref_T : ref <: val)] +[visit_exp ref_T] +[visit_id ref_T] not free +[visit_id expr_T] not free +[visit_id ref_T] not free +[scope_exit ref_T] +[scope_exit expr_T] +[visit_exp `expr_T*`] +[visit_id expr_T*] not free +[visit_id expr_T*] no dims +[visit_exp `ref_T*`] +[visit_id ref_T*] no dims +[visit_id ref_T*] +[scope_enter expr_E*] +[scope_enter ref_E*] +[scope_enter expr_E] +[scope_enter ref_E] +[visit_exp (z', expr_E, z', [(ref_E : ref <: val)])] +[visit_exp z'] +[visit_id z'] not free +[visit_exp expr_E] +[visit_id expr_E] not free +[visit_exp z'] +[visit_id z'] not free +[visit_exp [(ref_E : ref <: val)]] +[visit_exp (ref_E : ref <: val)] +[visit_exp ref_E] +[visit_id ref_E] not free +[visit_id expr_E] not free +[visit_id ref_E] not free +[scope_exit ref_E] +[scope_exit expr_E] +[visit_exp `expr_E*`] +[visit_id expr_E*] not free +[visit_id expr_E*] no dims +[visit_exp `ref_E*`] +[visit_id ref_E*] not free +[visit_id ref_E*] no dims +[visit_id expr_E*] not free +[visit_id expr_E*] no dims +[visit_id ref_E*] not free +[visit_id ref_E*] no dims +[scope_exit ref_E*] +[scope_exit expr_E*] +[visit_exp `expr_E**`] +[visit_id expr_E**] not free +[visit_id expr_E**] no dims +[visit_exp `ref_E**`] +[visit_id ref_E**] no dims +[visit_id ref_E**] +[visit_exp ((s', moduleinst) = $allocmodule(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}))] +[visit_exp (s', moduleinst)] +[visit_exp s'] +[visit_id s'] not free +[visit_exp moduleinst] +[visit_id moduleinst] not free +[visit_exp $allocmodule(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})] +[visit_exp s] +[visit_id s] not free +[visit_exp module] +[visit_id module] not free +[visit_exp externaddr*{externaddr <- `externaddr*`}] +[scope_enter externaddr] +[visit_exp externaddr] +[visit_id externaddr] not free +[visit_id externaddr] not free +[scope_exit externaddr] +[visit_exp `externaddr*`] +[visit_id externaddr*] not free +[visit_id externaddr*] no dims +[visit_exp val_G*{val_G <- `val_G*`}] +[scope_enter val_G] +[visit_exp val_G] +[visit_id val_G] not free +[visit_id val_G] not free +[scope_exit val_G] +[visit_exp `val_G*`] +[visit_id val_G*] not free +[visit_id val_G*] no dims +[visit_exp ref_T*{ref_T <- `ref_T*`}] +[scope_enter ref_T] +[visit_exp ref_T] +[visit_id ref_T] not free +[visit_id ref_T] not free +[scope_exit ref_T] +[visit_exp `ref_T*`] +[visit_id ref_T*] not free +[visit_id ref_T*] no dims +[visit_exp ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}] +[scope_enter ref_E*] +[visit_exp ref_E*{ref_E <- `ref_E*`}] +[scope_enter ref_E] +[visit_exp ref_E] +[visit_id ref_E] not free +[visit_id ref_E] not free +[scope_exit ref_E] +[visit_exp `ref_E*`] +[visit_id ref_E*] not free +[visit_id ref_E*] no dims +[visit_id ref_E*] not free +[visit_id ref_E*] no dims +[scope_exit ref_E*] +[visit_exp `ref_E**`] +[visit_id ref_E**] not free +[visit_id ref_E**] no dims +[visit_exp (instr_D*{instr_D <- `instr_D*`} = $concat_(syntax instr, $rundata_(`%`_dataidx{i#47725}(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){i#47725 <- `i#47725*`}))] +[visit_exp instr_D*{instr_D <- `instr_D*`}] +[scope_enter instr_D] +[visit_exp instr_D] +[visit_id instr_D] not free +[visit_id instr_D] not free +[scope_exit instr_D] +[visit_exp `instr_D*`] +[visit_id instr_D*] not free +[visit_id instr_D*] no dims +[visit_exp $concat_(syntax instr, $rundata_(`%`_dataidx{i#47725}(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){i#47725 <- `i#47725*`})] +[visit_exp $rundata_(`%`_dataidx{i#47725}(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){i#47725 <- `i#47725*`}] +[scope_enter i_D] +[scope_enter i#47725] +[visit_exp $rundata_(`%`_dataidx{i#47725}(i_D), data*{data <- `data*`}[i_D])] +[visit_exp `%`_dataidx{i#47725}(i_D)] +[visit_exp i#47725] +[visit_id i#47725] not free +[visit_exp (i_D)] +[visit_exp i_D] +[visit_id i_D] +[visit_exp data*{data <- `data*`}[i_D]] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] not free +[visit_id data*] no dims +[visit_exp i_D] +[visit_id i_D] not free +[visit_id i_D] not free +[visit_id i#47725] not free +[scope_exit i#47725] +[scope_exit i_D] +[visit_exp |data*{data <- `data*`}|] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] not free +[visit_id data*] no dims +[visit_exp `i#47725*`] +[visit_id i#47725*] no dims +[visit_id i#47725*] +[visit_exp (instr_E*{instr_E <- `instr_E*`} = $concat_(syntax instr, $runelem_(`%`_elemidx{i#47785}(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){i#47785 <- `i#47785*`}))] +[visit_exp instr_E*{instr_E <- `instr_E*`}] +[scope_enter instr_E] +[visit_exp instr_E] +[visit_id instr_E] not free +[visit_id instr_E] not free +[scope_exit instr_E] +[visit_exp `instr_E*`] +[visit_id instr_E*] not free +[visit_id instr_E*] no dims +[visit_exp $concat_(syntax instr, $runelem_(`%`_elemidx{i#47785}(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){i#47785 <- `i#47785*`})] +[visit_exp $runelem_(`%`_elemidx{i#47785}(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){i#47785 <- `i#47785*`}] +[scope_enter i_E] +[scope_enter i#47785] +[visit_exp $runelem_(`%`_elemidx{i#47785}(i_E), elem*{elem <- `elem*`}[i_E])] +[visit_exp `%`_elemidx{i#47785}(i_E)] +[visit_exp i#47785] +[visit_id i#47785] not free +[visit_exp (i_E)] +[visit_exp i_E] +[visit_id i_E] +[visit_exp elem*{elem <- `elem*`}[i_E]] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] not free +[visit_id elem*] no dims +[visit_exp i_E] +[visit_id i_E] not free +[visit_id i_E] not free +[visit_id i#47785] not free +[scope_exit i#47785] +[scope_exit i_E] +[visit_exp |elem*{elem <- `elem*`}|] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] not free +[visit_id elem*] no dims +[visit_exp `i#47785*`] +[visit_id i#47785*] no dims +[visit_id i#47785*] +[visit_exp (instr_S?{instr_S <- `instr_S?`} = `CALL`_instr{funcidx#3159}(x)?{funcidx#3159 <- `funcidx#3159?`, x <- `x?`})] +[visit_exp instr_S?{instr_S <- `instr_S?`}] +[scope_enter instr_S] +[visit_exp instr_S] +[visit_id instr_S] not free +[visit_id instr_S] not free +[scope_exit instr_S] +[visit_exp `instr_S?`] +[visit_id instr_S?] not free +[visit_id instr_S?] no dims +[visit_exp `CALL`_instr{funcidx#3159}(x)?{funcidx#3159 <- `funcidx#3159?`, x <- `x?`}] +[scope_enter funcidx#3159] +[scope_enter x] +[visit_exp `CALL`_instr{funcidx#3159}(x)] +[visit_exp funcidx#3159] +[visit_id funcidx#3159] not free +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_id funcidx#3159] not free +[visit_id x] not free +[scope_exit x] +[scope_exit funcidx#3159] +[visit_exp `funcidx#3159?`] +[visit_id funcidx#3159?] no dims +[visit_id funcidx#3159?] +[visit_exp `x?`] +[visit_id x?] not free +[visit_id x?] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $instantiate{s : store, module : module, `externaddr*` : externaddr*, state#2219 : state, `instr*#2334` : instr*, store#2627 : store, frame#2645 : frame, s' : store, `val?*#6` : val?*, moduleinst#28 : moduleinst, moduleinst : moduleinst, `instr_E*` : instr*, `instr_D*` : instr*, `instr_S?` : instr?, `externtype*#168` : externtype*, `xt_I*` : externtype*, `xt_E*` : externtype*, `type*#125` : type*, `import*#125` : import*, `tag*#125` : tag*, `global*#149` : global*, `mem*#149` : mem*, `table*#149` : table*, `func*#125` : func*, `data*#125` : data*, `elem*#149` : elem*, `start?#125` : start?, `export*#125` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `expr#4805*` : expr*, `expr_G*` : expr*, `globaltype*` : globaltype*, `globaltype#2271*` : globaltype*, `expr#4823*` : expr*, `expr_T*` : expr*, `tabletype*` : tabletype*, `tabletype#1116*` : tabletype*, `byte**` : byte**, `byte*#2187*` : byte**, `datamode*` : datamode*, `datamode#2151*` : datamode*, `elemmode*` : elemmode*, `elemmode#3277*` : elemmode*, `expr*#3277*` : expr**, `expr_E**` : expr**, `reftype*` : reftype*, `reftype#3919*` : reftype*, `funcidx#3157?` : funcidx?, `x?` : idx?, moduleinst_0 : moduleinst, `deftype*#96` : deftype*, `tagaddr*#7` : tagaddr*, `globaladdr*#7` : globaladdr*, `memaddr*#7` : memaddr*, `tableaddr*#7` : tableaddr*, `funcaddr*#8` : funcaddr*, i_F : nat, `funcinst*#15*` : funcinst**, `dataaddr*#5` : dataaddr*, `elemaddr*#5` : elemaddr*, `exportinst*#3` : exportinst*, z : state, store#2579 : store, frame#2597 : frame, `val?*#5` : val?*, moduleinst#27 : moduleinst, z' : state, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, i_D : nat, `i#47725*` : nat*, i_E : nat, `i#47785*` : nat*, `funcidx#3159?` : funcidx?}(s, module, externaddr*{externaddr <- `externaddr*`}) = `%;%`_config{state#2219, `instr*#2334`}(`%;%`_state{store#2627, frame#2645}(s', {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})) + -- Module_ok: `|-%:%`(module, `%->%`_moduletype{`externtype*#168`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})) + -- (Externaddr_ok: `%|-%:%`(s, externaddr, xt_I))*{externaddr <- `externaddr*`, xt_I <- `xt_I*`} + -- if (module = `MODULE`_module{`type*#125`, `import*#125`, `tag*#125`, `global*#149`, `mem*#149`, `table*#149`, `func*#125`, `data*#125`, `elem*#149`, `start?#125`, `export*#125`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) + -- if (global*{global <- `global*`} = `GLOBAL`_global{globaltype#2271, expr#4805}(globaltype, expr_G)*{expr#4805 <- `expr#4805*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2271 <- `globaltype#2271*`}) + -- if (table*{table <- `table*`} = `TABLE`_table{tabletype#1116, expr#4823}(tabletype, expr_T)*{expr#4823 <- `expr#4823*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#1116 <- `tabletype#1116*`}) + -- if (data*{data <- `data*`} = `DATA`_data{`byte*#2187`, datamode#2151}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2187` <- `byte*#2187*`, datamode <- `datamode*`, datamode#2151 <- `datamode#2151*`}) + -- if (elem*{elem <- `elem*`} = `ELEM`_elem{reftype#3919, `expr*#3277`, elemmode#3277}(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3277 <- `elemmode#3277*`, `expr*#3277` <- `expr*#3277*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`, reftype#3919 <- `reftype#3919*`}) + -- if (start?{start <- `start?`} = `START`_start{funcidx#3157}(x)?{funcidx#3157 <- `funcidx#3157?`, x <- `x?`}) + -- if (moduleinst_0 = {`TYPES`{`deftype*#96`} $alloctypes(type*{type <- `type*`}), `TAGS`{`tagaddr*#7`} [], `GLOBALS`{`globaladdr*#7`} $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS`{`memaddr*#7`} [], `TABLES`{`tableaddr*#7`} [], `FUNCS`{`funcaddr*#8`} $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#15` <- `funcinst*#15*`}, `DATAS`{`dataaddr*#5`} [], `ELEMS`{`elemaddr*#5`} [], `EXPORTS`{`exportinst*#3`} []}) + -- if (z = `%;%`_state{store#2579, frame#2597}(s, {`LOCALS`{`val?*#5`} [], `MODULE`{moduleinst#27} moduleinst_0})) + -- if ((z', val_G*{val_G <- `val_G*`}) = $evalglobals(z, globaltype*{globaltype <- `globaltype*`}, expr_G*{expr_G <- `expr_G*`})) + -- (Eval_expr: `%;%~>*%;%`(z', expr_T, z', [(ref_T : ref <: val)]))*{expr_T <- `expr_T*`, ref_T <- `ref_T*`} + -- (Eval_expr: `%;%~>*%;%`(z', expr_E, z', [(ref_E : ref <: val)]))*{expr_E <- `expr_E*`, ref_E <- `ref_E*`}*{`expr_E*` <- `expr_E**`, `ref_E*` <- `ref_E**`} + -- if ((s', moduleinst) = $allocmodule(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})) + -- if (instr_D*{instr_D <- `instr_D*`} = $concat_(syntax instr, $rundata_(`%`_dataidx{i#47725}(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){i#47725 <- `i#47725*`})) + -- if (instr_E*{instr_E <- `instr_E*`} = $concat_(syntax instr, $runelem_(`%`_elemidx{i#47785}(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){i#47785 <- `i#47785*`})) + -- if (instr_S?{instr_S <- `instr_S?`} = `CALL`_instr{funcidx#3159}(x)?{funcidx#3159 <- `funcidx#3159?`, x <- `x?`}) +[check_dims] _ funcaddr store +DecD invoke(store : store, funcaddr : funcaddr, val*) : config +[visit_id store] not free +[visit_id funcaddr] not free +[visit_id _] not free +[check_dims] X*#13028 X*#13041 dataaddr*#6 deftype#12 deftype#13 deftype*#97 elemaddr*#6 exportinst*#4 frame#2657 funcaddr funcaddr#21 funcaddr*#9 funcinst*#16 funcinst*#17 globaladdr*#8 instr*#2346 memaddr*#8 moduleinst#29 resulttype#3026 s state#2231 store#2639 t_1 t_2 tableaddr*#8 tagaddr*#8 typeuse#65 val val?*#7 +[visit_exp s] +[visit_id s] +[visit_exp funcaddr] +[visit_id funcaddr] +[visit_exp val*{val <- `val*`}] +[scope_enter val] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] no dims +[visit_id val*] +[visit_exp `%;%`_config{state#2231, `instr*#2346`}(`%;%`_state{store#2639, frame#2657}(s, {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr) `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))])] +[visit_exp state#2231] +[visit_id state#2231] +[visit_exp `instr*#2346`] +[visit_id instr*#2346] +[visit_exp (`%;%`_state{store#2639, frame#2657}(s, {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr) `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))])] +[visit_exp `%;%`_state{store#2639, frame#2657}(s, {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}})] +[visit_exp store#2639] +[visit_id store#2639] +[visit_exp frame#2657] +[visit_id frame#2657] +[visit_exp (s, {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}})] +[visit_exp s] +[visit_id s] not free +[visit_exp {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}}] +[visit_exp `val?*#7`] +[visit_id val?*#7] +[visit_exp []] +[visit_exp moduleinst#29] +[visit_id moduleinst#29] +[visit_exp {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}] +[visit_exp `deftype*#97`] +[visit_id deftype*#97] +[visit_exp []] +[visit_exp `tagaddr*#8`] +[visit_id tagaddr*#8] +[visit_exp []] +[visit_exp `globaladdr*#8`] +[visit_id globaladdr*#8] +[visit_exp []] +[visit_exp `memaddr*#8`] +[visit_id memaddr*#8] +[visit_exp []] +[visit_exp `tableaddr*#8`] +[visit_id tableaddr*#8] +[visit_exp []] +[visit_exp `funcaddr*#9`] +[visit_id funcaddr*#9] +[visit_exp []] +[visit_exp `dataaddr*#6`] +[visit_id dataaddr*#6] +[visit_exp []] +[visit_exp `elemaddr*#6`] +[visit_id elemaddr*#6] +[visit_exp []] +[visit_exp `exportinst*#4`] +[visit_id exportinst*#4] +[visit_exp []] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr) `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))]] +[visit_exp (val : val <: instr)*{val <- `val*`}] +[scope_enter val] +[visit_exp (val : val <: instr)] +[visit_exp val] +[visit_id val] not free +[visit_id val] not free +[scope_exit val] +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr) `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))]] +[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr)] +[visit_exp funcaddr#21] +[visit_id funcaddr#21] +[visit_exp (funcaddr)] +[visit_exp funcaddr] +[visit_id funcaddr] not free +[visit_exp `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))] +[visit_exp typeuse#65] +[visit_id typeuse#65] +[visit_exp ((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))] +[visit_exp (s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse)] +[visit_exp s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13}] +[visit_exp s.`FUNCS`_store{`funcinst*#17`}[funcaddr]] +[visit_exp s.`FUNCS`_store{`funcinst*#17`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `funcinst*#17`] +[visit_id funcinst*#17] +[visit_exp funcaddr] +[visit_id funcaddr] not free +[visit_exp deftype#13] +[visit_id deftype#13] +[visit_exp (s.`FUNCS`_store{`funcinst*#16`}[funcaddr].`TYPE`_funcinst{deftype#12}, `FUNC%->%`_comptype{resulttype#3026}(`%`_resulttype{`X*#13028`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13041`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp s.`FUNCS`_store{`funcinst*#16`}[funcaddr].`TYPE`_funcinst{deftype#12}] +[visit_exp s.`FUNCS`_store{`funcinst*#16`}[funcaddr]] +[visit_exp s.`FUNCS`_store{`funcinst*#16`}] +[visit_exp s] +[visit_id s] not free +[visit_exp `funcinst*#16`] +[visit_id funcinst*#16] +[visit_exp funcaddr] +[visit_id funcaddr] not free +[visit_exp deftype#12] +[visit_id deftype#12] +[visit_exp `FUNC%->%`_comptype{resulttype#3026}(`%`_resulttype{`X*#13028`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13041`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#3026] +[visit_id resulttype#3026] +[visit_exp (`%`_resulttype{`X*#13028`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13041`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#13028`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#13028`] +[visit_id X*#13028] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp `%`_resulttype{`X*#13041`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#13041`] +[visit_id X*#13041] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[scope_enter t_1] +[scope_enter val] +[visit_exp (s, val, t_1)] +[visit_exp s] +[visit_id s] not free +[visit_exp val] +[visit_id val] not free +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[visit_id val] not free +[scope_exit val] +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `val*`] +[visit_id val*] not free +[visit_id val*] no dims +=> + ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec + def $invoke{s : store, funcaddr : funcaddr, `val*` : val*, state#2231 : state, `instr*#2346` : instr*, store#2639 : store, frame#2657 : frame, `val?*#7` : val?*, moduleinst#29 : moduleinst, `deftype*#97` : deftype*, `tagaddr*#8` : tagaddr*, `globaladdr*#8` : globaladdr*, `memaddr*#8` : memaddr*, `tableaddr*#8` : tableaddr*, `funcaddr*#9` : funcaddr*, `dataaddr*#6` : dataaddr*, `elemaddr*#6` : elemaddr*, `exportinst*#4` : exportinst*, funcaddr#21 : funcaddr, typeuse#65 : typeuse, `funcinst*#17` : funcinst*, deftype#13 : deftype, `funcinst*#16` : funcinst*, deftype#12 : deftype, resulttype#3026 : resulttype, `X*#13028` : valtype*, `t_1*` : valtype*, `X*#13041` : valtype*, `t_2*` : valtype*}(s, funcaddr, val*{val <- `val*`}) = `%;%`_config{state#2231, `instr*#2346`}(`%;%`_state{store#2639, frame#2657}(s, {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr) `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))]) + -- Expand: `%~~%`(s.`FUNCS`_store{`funcinst*#16`}[funcaddr].`TYPE`_funcinst{deftype#12}, `FUNC%->%`_comptype{resulttype#3026}(`%`_resulttype{`X*#13028`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13041`}(t_2*{t_2 <- `t_2*`}))) + -- (Val_ok: `%|-%:%`(s, val, t_1))*{t_1 <- `t_1*`, val <- `val*`} +ps' = +[check_dims] +[check_dims] i#47807 +dims \ = , i#47807 +[visit_exp `%`_byte{i#47807}(``)] +[visit_exp i#47807] +[visit_id i#47807] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = (N : N) +[check_dims] N +[check_dims] N i#47815 i#47823 n +dims \ N = i#47815, i#47823, n +[visit_exp `%`_uN{i#47823}(n)] +[visit_exp i#47823] +[visit_id i#47823] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `%`_byte{i#47815}(n)] +[visit_exp i#47815] +[visit_id i#47815] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp ((n < (2 ^ 7)) /\ (n < (2 ^ N)))] +[visit_exp (n < (2 ^ 7))] +[visit_exp n] +[visit_id n] not free +[visit_exp (2 ^ 7)] +[visit_exp 2] +[visit_exp 7] +[visit_exp (n < (2 ^ N))] +[visit_exp n] +[visit_id n] not free +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[check_dims] N i#47831 i#47856 i#47866 m n +dims \ N = i#47831, i#47856, i#47866, m, n +[visit_exp `%`_uN{i#47866}((((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)))] +[visit_exp i#47866] +[visit_id i#47866] +[visit_exp ((((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)))] +[visit_exp (((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat))] +[visit_exp ((2 ^ 7) * m)] +[visit_exp (2 ^ 7)] +[visit_exp 2] +[visit_exp 7] +[visit_exp m] +[visit_id m] +[visit_exp (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - ((2 ^ 7) : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp ((2 ^ 7) : nat <:> int)] +[visit_exp (2 ^ 7)] +[visit_exp 2] +[visit_exp 7] +[visit_exp `%`_byte{i#47831}(n)] +[visit_exp i#47831] +[visit_id i#47831] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp `%`_uN{i#47856}(m)] +[visit_exp i#47856] +[visit_id i#47856] +[visit_exp (m)] +[visit_exp m] +[visit_id m] not free +[visit_exp (((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (7 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp ((n >= (2 ^ 7)) /\ (N > 7))] +[visit_exp (n >= (2 ^ 7))] +[visit_exp n] +[visit_id n] not free +[visit_exp (2 ^ 7)] +[visit_exp 2] +[visit_exp 7] +[visit_exp (N > 7)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp 7] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +ps' = (N : N) +[check_dims] N +[check_dims] N i#47874 i#47882 n +dims \ N = i#47874, i#47882, n +[visit_exp `%`_sN{i#47882}((n : nat <:> int))] +[visit_exp i#47882] +[visit_id i#47882] +[visit_exp ((n : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp `%`_byte{i#47874}(n)] +[visit_exp i#47874] +[visit_id i#47874] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp ((n < (2 ^ 6)) /\ (n < (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))))] +[visit_exp (n < (2 ^ 6))] +[visit_exp n] +[visit_id n] not free +[visit_exp (2 ^ 6)] +[visit_exp 2] +[visit_exp 6] +[visit_exp (n < (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp n] +[visit_id n] not free +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[check_dims] N i#47890 i#47898 n +dims \ N = i#47890, i#47898, n +[visit_exp `%`_sN{i#47898}(((n : nat <:> int) - ((2 ^ 7) : nat <:> int)))] +[visit_exp i#47898] +[visit_id i#47898] +[visit_exp (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)))] +[visit_exp ((n : nat <:> int) - ((2 ^ 7) : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp ((2 ^ 7) : nat <:> int)] +[visit_exp (2 ^ 7)] +[visit_exp 2] +[visit_exp 7] +[visit_exp `%`_byte{i#47890}(n)] +[visit_exp i#47890] +[visit_id i#47890] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp ((((2 ^ 6) <= n) /\ (n < (2 ^ 7))) /\ ((n : nat <:> int) >= (((2 ^ 7) : nat <:> int) - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))))] +[visit_exp (((2 ^ 6) <= n) /\ (n < (2 ^ 7)))] +[visit_exp ((2 ^ 6) <= n)] +[visit_exp (2 ^ 6)] +[visit_exp 2] +[visit_exp 6] +[visit_exp n] +[visit_id n] not free +[visit_exp (n < (2 ^ 7))] +[visit_exp n] +[visit_id n] not free +[visit_exp (2 ^ 7)] +[visit_exp 2] +[visit_exp 7] +[visit_exp ((n : nat <:> int) >= (((2 ^ 7) : nat <:> int) - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp (((2 ^ 7) : nat <:> int) - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))] +[visit_exp ((2 ^ 7) : nat <:> int)] +[visit_exp (2 ^ 7)] +[visit_exp 2] +[visit_exp 7] +[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[check_dims] N i i#47906 i#47943 i#47945 n +dims \ N = i, i#47906, i#47943, i#47945, n +[visit_exp `%`_sN{i#47945}(((((2 ^ 7) * i!`%`_uN{i#47943}.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int))] +[visit_exp i#47945] +[visit_id i#47945] +[visit_exp (((((2 ^ 7) * i!`%`_uN{i#47943}.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int))] +[visit_exp ((((2 ^ 7) * i!`%`_uN{i#47943}.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (((2 ^ 7) * i!`%`_uN{i#47943}.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat))] +[visit_exp ((2 ^ 7) * i!`%`_uN{i#47943}.0)] +[visit_exp (2 ^ 7)] +[visit_exp 2] +[visit_exp 7] +[visit_exp i!`%`_uN{i#47943}.0] +[visit_exp i!`%`_uN{i#47943}] +[visit_exp i] +[visit_id i] +[visit_exp i#47943] +[visit_id i#47943] +[visit_exp (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - ((2 ^ 7) : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp ((2 ^ 7) : nat <:> int)] +[visit_exp (2 ^ 7)] +[visit_exp 2] +[visit_exp 7] +[visit_exp `%`_byte{i#47906}(n)] +[visit_exp i#47906] +[visit_id i#47906] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp i] +[visit_id i] not free +[visit_exp (((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (7 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (7 : nat <:> int)] +[visit_exp 7] +[visit_exp ((n >= (2 ^ 7)) /\ (N > 7))] +[visit_exp (n >= (2 ^ 7))] +[visit_exp n] +[visit_id n] not free +[visit_exp (2 ^ 7)] +[visit_exp 2] +[visit_exp 7] +[visit_exp (N > 7)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp 7] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +ps' = (N : N) +[check_dims] N +[check_dims] N i i#47959 i#47961 +dims \ N = i, i#47959, i#47961 +[visit_exp `%`_iN{i#47961}($inv_signed_(N, i!`%`_sN{i#47959}.0))] +[visit_exp i#47961] +[visit_id i#47961] +[visit_exp ($inv_signed_(N, i!`%`_sN{i#47959}.0))] +[visit_exp $inv_signed_(N, i!`%`_sN{i#47959}.0)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp i!`%`_sN{i#47959}.0] +[visit_exp i!`%`_sN{i#47959}] +[visit_exp i] +[visit_id i] +[visit_exp i#47959] +[visit_id i#47959] +[visit_exp i] +[visit_id i] not free +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +ps' = (N : N) +[check_dims] N +[check_dims] N b +dims \ N = b +[visit_exp $inv_fbytes_(N, b*{b <- `b*`})] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] +[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] +[visit_exp (N : nat <:> rat)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (8 : nat <:> rat)] +[visit_exp 8] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +ps' = +[check_dims] +[check_dims] i#48009 i#48033 n +dims \ = i#48009, i#48033, n +[visit_exp `%`_u32{i#48033}(n)] +[visit_exp i#48033] +[visit_id i#48033] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `%`_uN{i#48009}(n)] +[visit_exp i#48009] +[visit_id i#48009] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp 32] +ps' = +[check_dims] +[check_dims] i#48057 i#48081 n +dims \ = i#48057, i#48081, n +[visit_exp `%`_u64{i#48081}(n)] +[visit_exp i#48081] +[visit_id i#48081] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `%`_uN{i#48057}(n)] +[visit_exp i#48057] +[visit_id i#48057] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp 64] +ps' = +[check_dims] +[check_dims] i +dims \ = i +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[visit_exp 33] +ps' = +[check_dims] +[check_dims] p +dims \ = p +[visit_exp p] +[visit_id p] +[visit_exp p] +[visit_id p] not free +[visit_exp 32] +ps' = +[check_dims] +[check_dims] p +dims \ = p +[visit_exp p] +[visit_id p] +[visit_exp p] +[visit_id p] not free +[visit_exp 64] +ps' = (syntax el, grammar BX : el) +[check_dims] el +[check_dims] el i#48134 n +dims \ = el, i#48134, n +[visit_exp el^n{el <- `el*`}] +[scope_enter el] +[visit_exp el] +[visit_id el] not free +[visit_id el] not free +[scope_exit el] +[visit_exp n] +[visit_id n] +[visit_exp `el*`] +[visit_id el*] no dims +[visit_id el*] +[visit_exp `%`_u32{i#48134}(n)] +[visit_exp i#48134] +[visit_id i#48134] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[scope_enter el] +[visit_exp el] +[visit_id el] not free +[visit_id el] not free +[scope_exit el] +[visit_exp n] +[visit_id n] not free +[visit_exp `el*`] +[visit_id el*] not free +[visit_id el*] no dims +[check_dims] +[check_dims] byte +DecD cont(byte : byte) : nat +[visit_id byte] not free +[check_dims] b i#48144 i#48146 i#48148 +[visit_exp b] +[visit_id b] +[visit_exp (((b!`%`_byte{i#48148}.0 : nat <:> int) - (128 : nat <:> int)) : int <:> nat)] +[visit_exp ((b!`%`_byte{i#48148}.0 : nat <:> int) - (128 : nat <:> int))] +[visit_exp (b!`%`_byte{i#48148}.0 : nat <:> int)] +[visit_exp b!`%`_byte{i#48148}.0] +[visit_exp b!`%`_byte{i#48148}] +[visit_exp b] +[visit_id b] not free +[visit_exp i#48148] +[visit_id i#48148] +[visit_exp (128 : nat <:> int)] +[visit_exp 128] +[visit_exp ((128 < b!`%`_byte{i#48144}.0) /\ (b!`%`_byte{i#48146}.0 < 192))] +[visit_exp (128 < b!`%`_byte{i#48144}.0)] +[visit_exp 128] +[visit_exp b!`%`_byte{i#48144}.0] +[visit_exp b!`%`_byte{i#48144}] +[visit_exp b] +[visit_id b] not free +[visit_exp i#48144] +[visit_id i#48144] +[visit_exp (b!`%`_byte{i#48146}.0 < 192)] +[visit_exp b!`%`_byte{i#48146}.0] +[visit_exp b!`%`_byte{i#48146}] +[visit_exp b] +[visit_id b] not free +[visit_exp i#48146] +[visit_id i#48146] +[visit_exp 192] +=> + ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec + def $cont{b : byte, i#48148 : nat, i#48144 : nat, i#48146 : nat}(b) = (((b!`%`_byte{i#48148}.0 : nat <:> int) - (128 : nat <:> int)) : int <:> nat) + -- if ((128 < b!`%`_byte{i#48144}.0) /\ (b!`%`_byte{i#48146}.0 < 192)) +[check_dims] ch +[visit_exp ch*{ch <- `ch*`}] +[scope_enter ch] +[visit_exp ch] +[visit_id ch] not free +[visit_id ch] not free +[scope_exit ch] +[visit_exp `ch*`] +[visit_id ch*] no dims +[visit_id ch*] +[visit_exp $concat_(syntax byte, $utf8([ch])*{ch <- `ch*`})] +[visit_exp $utf8([ch])*{ch <- `ch*`}] +[scope_enter ch] +[visit_exp $utf8([ch])] +[visit_exp [ch]] +[visit_exp ch] +[visit_id ch] not free +[visit_id ch] not free +[scope_exit ch] +[visit_exp `ch*`] +[visit_id ch*] not free +[visit_id ch*] no dims +=> + ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec + def $utf8{`ch*` : char*}(ch*{ch <- `ch*`}) = $concat_(syntax byte, $utf8([ch])*{ch <- `ch*`}) +[check_dims] b ch i#48332 i#48340 i#48341 +[visit_exp [ch]] +[visit_exp ch] +[visit_id ch] +[visit_exp [b]] +[visit_exp b] +[visit_id b] +[visit_exp (ch!`%`_char{i#48332}.0 < 128)] +[visit_exp ch!`%`_char{i#48332}.0] +[visit_exp ch!`%`_char{i#48332}] +[visit_exp ch] +[visit_id ch] not free +[visit_exp i#48332] +[visit_id i#48332] +[visit_exp 128] +[visit_exp (`%`_byte{i#48341}(ch!`%`_char{i#48340}.0) = b)] +[visit_exp `%`_byte{i#48341}(ch!`%`_char{i#48340}.0)] +[visit_exp i#48341] +[visit_id i#48341] +[visit_exp (ch!`%`_char{i#48340}.0)] +[visit_exp ch!`%`_char{i#48340}.0] +[visit_exp ch!`%`_char{i#48340}] +[visit_exp ch] +[visit_id ch] not free +[visit_exp i#48340] +[visit_id i#48340] +[visit_exp b] +[visit_id b] not free +=> + ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec + def $utf8{ch : char, b : byte, i#48332 : nat, i#48341 : nat, i#48340 : nat}([ch]) = [b] + -- if (ch!`%`_char{i#48332}.0 < 128) + -- if (`%`_byte{i#48341}(ch!`%`_char{i#48340}.0) = b) +[check_dims] b_1 b_2 ch i#48356 i#48358 i#48360 i#48368 +[visit_exp [ch]] +[visit_exp ch] +[visit_id ch] +[visit_exp [b_1 b_2]] +[visit_exp b_1] +[visit_id b_1] +[visit_exp b_2] +[visit_id b_2] +[visit_exp ((128 <= ch!`%`_char{i#48356}.0) /\ (ch!`%`_char{i#48358}.0 < 2048))] +[visit_exp (128 <= ch!`%`_char{i#48356}.0)] +[visit_exp 128] +[visit_exp ch!`%`_char{i#48356}.0] +[visit_exp ch!`%`_char{i#48356}] +[visit_exp ch] +[visit_id ch] not free +[visit_exp i#48356] +[visit_id i#48356] +[visit_exp (ch!`%`_char{i#48358}.0 < 2048)] +[visit_exp ch!`%`_char{i#48358}.0] +[visit_exp ch!`%`_char{i#48358}] +[visit_exp ch] +[visit_id ch] not free +[visit_exp i#48358] +[visit_id i#48358] +[visit_exp 2048] +[visit_exp (ch!`%`_char{i#48368}.0 = (((2 ^ 6) * (((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2)))] +[visit_exp ch!`%`_char{i#48368}.0] +[visit_exp ch!`%`_char{i#48368}] +[visit_exp ch] +[visit_id ch] not free +[visit_exp i#48368] +[visit_id i#48368] +[visit_exp (((2 ^ 6) * (((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2))] +[visit_exp ((2 ^ 6) * (((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat))] +[visit_exp (2 ^ 6)] +[visit_exp 2] +[visit_exp 6] +[visit_exp (((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)] +[visit_exp ((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int))] +[visit_exp (b_1!`%`_byte{i#48360}.0 : nat <:> int)] +[visit_exp b_1!`%`_byte{i#48360}.0] +[visit_exp b_1!`%`_byte{i#48360}] +[visit_exp b_1] +[visit_id b_1] not free +[visit_exp i#48360] +[visit_id i#48360] +[visit_exp (192 : nat <:> int)] +[visit_exp 192] +[visit_exp $cont(b_2)] +[visit_exp b_2] +[visit_id b_2] not free +=> + ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec + def $utf8{ch : char, b_1 : byte, b_2 : byte, i#48356 : nat, i#48358 : nat, i#48368 : nat, i#48360 : nat}([ch]) = [b_1 b_2] + -- if ((128 <= ch!`%`_char{i#48356}.0) /\ (ch!`%`_char{i#48358}.0 < 2048)) + -- if (ch!`%`_char{i#48368}.0 = (((2 ^ 6) * (((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2))) +[check_dims] b_1 b_2 b_3 ch i#48400 i#48402 i#48404 i#48406 i#48408 i#48422 +[visit_exp [ch]] +[visit_exp ch] +[visit_id ch] +[visit_exp [b_1 b_2 b_3]] +[visit_exp b_1] +[visit_id b_1] +[visit_exp b_2] +[visit_id b_2] +[visit_exp b_3] +[visit_id b_3] +[visit_exp (((2048 <= ch!`%`_char{i#48400}.0) /\ (ch!`%`_char{i#48402}.0 < 55296)) \/ ((57344 <= ch!`%`_char{i#48404}.0) /\ (ch!`%`_char{i#48406}.0 < 65536)))] +[visit_exp ((2048 <= ch!`%`_char{i#48400}.0) /\ (ch!`%`_char{i#48402}.0 < 55296))] +[visit_exp (2048 <= ch!`%`_char{i#48400}.0)] +[visit_exp 2048] +[visit_exp ch!`%`_char{i#48400}.0] +[visit_exp ch!`%`_char{i#48400}] +[visit_exp ch] +[visit_id ch] not free +[visit_exp i#48400] +[visit_id i#48400] +[visit_exp (ch!`%`_char{i#48402}.0 < 55296)] +[visit_exp ch!`%`_char{i#48402}.0] +[visit_exp ch!`%`_char{i#48402}] +[visit_exp ch] +[visit_id ch] not free +[visit_exp i#48402] +[visit_id i#48402] +[visit_exp 55296] +[visit_exp ((57344 <= ch!`%`_char{i#48404}.0) /\ (ch!`%`_char{i#48406}.0 < 65536))] +[visit_exp (57344 <= ch!`%`_char{i#48404}.0)] +[visit_exp 57344] +[visit_exp ch!`%`_char{i#48404}.0] +[visit_exp ch!`%`_char{i#48404}] +[visit_exp ch] +[visit_id ch] not free +[visit_exp i#48404] +[visit_id i#48404] +[visit_exp (ch!`%`_char{i#48406}.0 < 65536)] +[visit_exp ch!`%`_char{i#48406}.0] +[visit_exp ch!`%`_char{i#48406}] +[visit_exp ch] +[visit_id ch] not free +[visit_exp i#48406] +[visit_id i#48406] +[visit_exp 65536] +[visit_exp (ch!`%`_char{i#48422}.0 = ((((2 ^ 12) * (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3)))] +[visit_exp ch!`%`_char{i#48422}.0] +[visit_exp ch!`%`_char{i#48422}] +[visit_exp ch] +[visit_id ch] not free +[visit_exp i#48422] +[visit_id i#48422] +[visit_exp ((((2 ^ 12) * (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3))] +[visit_exp (((2 ^ 12) * (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2)))] +[visit_exp ((2 ^ 12) * (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat))] +[visit_exp (2 ^ 12)] +[visit_exp 2] +[visit_exp 12] +[visit_exp (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)] +[visit_exp ((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int))] +[visit_exp (b_1!`%`_byte{i#48408}.0 : nat <:> int)] +[visit_exp b_1!`%`_byte{i#48408}.0] +[visit_exp b_1!`%`_byte{i#48408}] +[visit_exp b_1] +[visit_id b_1] not free +[visit_exp i#48408] +[visit_id i#48408] +[visit_exp (224 : nat <:> int)] +[visit_exp 224] +[visit_exp ((2 ^ 6) * $cont(b_2))] +[visit_exp (2 ^ 6)] +[visit_exp 2] +[visit_exp 6] +[visit_exp $cont(b_2)] +[visit_exp b_2] +[visit_id b_2] not free +[visit_exp $cont(b_3)] +[visit_exp b_3] +[visit_id b_3] not free +=> + ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec + def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte, i#48400 : nat, i#48402 : nat, i#48404 : nat, i#48406 : nat, i#48422 : nat, i#48408 : nat}([ch]) = [b_1 b_2 b_3] + -- if (((2048 <= ch!`%`_char{i#48400}.0) /\ (ch!`%`_char{i#48402}.0 < 55296)) \/ ((57344 <= ch!`%`_char{i#48404}.0) /\ (ch!`%`_char{i#48406}.0 < 65536))) + -- if (ch!`%`_char{i#48422}.0 = ((((2 ^ 12) * (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3))) +[check_dims] b_1 b_2 b_3 b_4 ch i#48460 i#48462 i#48464 i#48484 +[visit_exp [ch]] +[visit_exp ch] +[visit_id ch] +[visit_exp [b_1 b_2 b_3 b_4]] +[visit_exp b_1] +[visit_id b_1] +[visit_exp b_2] +[visit_id b_2] +[visit_exp b_3] +[visit_id b_3] +[visit_exp b_4] +[visit_id b_4] +[visit_exp ((65536 <= ch!`%`_char{i#48460}.0) /\ (ch!`%`_char{i#48462}.0 < 69632))] +[visit_exp (65536 <= ch!`%`_char{i#48460}.0)] +[visit_exp 65536] +[visit_exp ch!`%`_char{i#48460}.0] +[visit_exp ch!`%`_char{i#48460}] +[visit_exp ch] +[visit_id ch] not free +[visit_exp i#48460] +[visit_id i#48460] +[visit_exp (ch!`%`_char{i#48462}.0 < 69632)] +[visit_exp ch!`%`_char{i#48462}.0] +[visit_exp ch!`%`_char{i#48462}] +[visit_exp ch] +[visit_id ch] not free +[visit_exp i#48462] +[visit_id i#48462] +[visit_exp 69632] +[visit_exp (ch!`%`_char{i#48484}.0 = (((((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4)))] +[visit_exp ch!`%`_char{i#48484}.0] +[visit_exp ch!`%`_char{i#48484}] +[visit_exp ch] +[visit_id ch] not free +[visit_exp i#48484] +[visit_id i#48484] +[visit_exp (((((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4))] +[visit_exp ((((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3)))] +[visit_exp (((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2)))] +[visit_exp ((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat))] +[visit_exp (2 ^ 18)] +[visit_exp 2] +[visit_exp 18] +[visit_exp (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)] +[visit_exp ((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int))] +[visit_exp (b_1!`%`_byte{i#48464}.0 : nat <:> int)] +[visit_exp b_1!`%`_byte{i#48464}.0] +[visit_exp b_1!`%`_byte{i#48464}] +[visit_exp b_1] +[visit_id b_1] not free +[visit_exp i#48464] +[visit_id i#48464] +[visit_exp (240 : nat <:> int)] +[visit_exp 240] +[visit_exp ((2 ^ 12) * $cont(b_2))] +[visit_exp (2 ^ 12)] +[visit_exp 2] +[visit_exp 12] +[visit_exp $cont(b_2)] +[visit_exp b_2] +[visit_id b_2] not free +[visit_exp ((2 ^ 6) * $cont(b_3))] +[visit_exp (2 ^ 6)] +[visit_exp 2] +[visit_exp 6] +[visit_exp $cont(b_3)] +[visit_exp b_3] +[visit_id b_3] not free +[visit_exp $cont(b_4)] +[visit_exp b_4] +[visit_id b_4] not free +=> + ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec + def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte, b_4 : byte, i#48460 : nat, i#48462 : nat, i#48484 : nat, i#48464 : nat}([ch]) = [b_1 b_2 b_3 b_4] + -- if ((65536 <= ch!`%`_char{i#48460}.0) /\ (ch!`%`_char{i#48462}.0 < 69632)) + -- if (ch!`%`_char{i#48484}.0 = (((((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4))) +ps' = +[check_dims] +[check_dims] b char*#153 name +dims \ = b, char*#153, name +[visit_exp name] +[visit_id name] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp ($utf8(name!`%`_name{`char*#153`}.0) = b*{b <- `b*`})] +[visit_exp $utf8(name!`%`_name{`char*#153`}.0)] +[visit_exp name!`%`_name{`char*#153`}.0] +[visit_exp name!`%`_name{`char*#153`}] +[visit_exp name] +[visit_id name] not free +[visit_exp `char*#153`] +[visit_id char*#153] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +ps' = +[check_dims] +[check_dims] x +dims \ = x +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] x +dims \ = x +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] x +dims \ = x +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] x +dims \ = x +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] x +dims \ = x +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] x +dims \ = x +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] x +dims \ = x +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] x +dims \ = x +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] x +dims \ = x +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] l +dims \ = l +[visit_exp l] +[visit_id l] +[visit_exp l] +[visit_id l] not free +ps' = +[check_dims] +[check_dims] funcidx#3161 x +dims \ = funcidx#3161, x +[visit_exp `FUNC`_externidx{funcidx#3161}(x)] +[visit_exp funcidx#3161] +[visit_id funcidx#3161] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] tableidx#123 x +dims \ = tableidx#123, x +[visit_exp `TABLE`_externidx{tableidx#123}(x)] +[visit_exp tableidx#123] +[visit_id tableidx#123] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] memidx#169 x +dims \ = memidx#169, x +[visit_exp `MEM`_externidx{memidx#169}(x)] +[visit_exp memidx#169] +[visit_id memidx#169] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] globalidx#23 x +dims \ = globalidx#23, x +[visit_exp `GLOBAL`_externidx{globalidx#23}(x)] +[visit_exp globalidx#23] +[visit_id globalidx#23] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] tagidx#19 x +dims \ = tagidx#19, x +[visit_exp `TAG`_externidx{tagidx#19}(x)] +[visit_exp tagidx#19] +[visit_id tagidx#19] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp `F64`_numtype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `F32`_numtype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `I64`_numtype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `I32`_numtype] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp `V128`_vectype] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp `EXN`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `ARRAY`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `STRUCT`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `I31`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `EQ`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `ANY`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `EXTERN`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `FUNC`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `NONE`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `NOEXTERN`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `NOFUNC`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `NOEXN`_heaptype] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] ht +dims \ = ht +[visit_exp ht] +[visit_id ht] +[visit_exp ht] +[visit_id ht] not free +[check_dims] i#49064 typeidx#1924 x33 +dims \ = i#49064, typeidx#1924, x33 +[visit_exp `_IDX`_heaptype{typeidx#1924}($s33_to_u32(x33))] +[visit_exp typeidx#1924] +[visit_id typeidx#1924] +[visit_exp ($s33_to_u32(x33))] +[visit_exp $s33_to_u32(x33)] +[visit_exp x33] +[visit_id x33] +[visit_exp x33] +[visit_id x33] not free +[visit_exp (x33!`%`_s33{i#49064}.0 >= (0 : nat <:> int))] +[visit_exp x33!`%`_s33{i#49064}.0] +[visit_exp x33!`%`_s33{i#49064}] +[visit_exp x33] +[visit_id x33] not free +[visit_exp i#49064] +[visit_id i#49064] +[visit_exp (0 : nat <:> int)] +[visit_exp 0] +ps' = +[check_dims] +[check_dims] heaptype#1587 ht null?#1525 +dims \ = heaptype#1587, ht, null?#1525 +[visit_exp `REF`_reftype{`null?#1525`, heaptype#1587}(?(`NULL`_null), ht)] +[visit_exp `null?#1525`] +[visit_id null?#1525] +[visit_exp heaptype#1587] +[visit_id heaptype#1587] +[visit_exp (?(`NULL`_null), ht)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht] +[visit_id ht] +[visit_exp ht] +[visit_id ht] not free +[check_dims] heaptype#1599 ht null?#1537 +dims \ = heaptype#1599, ht, null?#1537 +[visit_exp `REF`_reftype{`null?#1537`, heaptype#1599}(?(), ht)] +[visit_exp `null?#1537`] +[visit_id null?#1537] +[visit_exp heaptype#1599] +[visit_id heaptype#1599] +[visit_exp (?(), ht)] +[visit_exp ?()] +[visit_exp ht] +[visit_id ht] +[visit_exp ht] +[visit_id ht] not free +[check_dims] heaptype#1611 ht null?#1549 +dims \ = heaptype#1611, ht, null?#1549 +[visit_exp `REF`_reftype{`null?#1549`, heaptype#1611}(?(`NULL`_null), ht)] +[visit_exp `null?#1549`] +[visit_id null?#1549] +[visit_exp heaptype#1611] +[visit_id heaptype#1611] +[visit_exp (?(`NULL`_null), ht)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht] +[visit_id ht] +[visit_exp ht] +[visit_id ht] not free +ps' = +[check_dims] +[check_dims] nt +dims \ = nt +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] +[visit_exp nt] +[visit_id nt] not free +[check_dims] vt +dims \ = vt +[visit_exp (vt : vectype <: valtype)] +[visit_exp vt] +[visit_id vt] +[visit_exp vt] +[visit_id vt] not free +[check_dims] rt +dims \ = rt +[visit_exp (rt : reftype <: valtype)] +[visit_exp rt] +[visit_id rt] +[visit_exp rt] +[visit_id rt] not free +ps' = +[check_dims] +[check_dims] X*#13056 t +dims \ = X*#13056, t +[visit_exp `%`_resulttype{`X*#13056`}(t*{t <- `t*`})] +[visit_exp `X*#13056`] +[visit_id X*#13056] +[visit_exp (t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ?()] +[check_dims] +dims \ = +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp `I16`_packtype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `I8`_packtype] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] t +dims \ = t +[visit_exp (t : valtype <: storagetype)] +[visit_exp t] +[visit_id t] +[visit_exp t] +[visit_id t] not free +[check_dims] pt +dims \ = pt +[visit_exp (pt : packtype <: storagetype)] +[visit_exp pt] +[visit_id pt] +[visit_exp pt] +[visit_id pt] not free +ps' = +[check_dims] +[check_dims] mut mut?#1417 storagetype#755 zt +dims \ = mut, mut?#1417, storagetype#755, zt +[visit_exp `%%`_fieldtype{`mut?#1417`, storagetype#755}(mut?{mut <- `mut?`}, zt)] +[visit_exp `mut?#1417`] +[visit_id mut?#1417] +[visit_exp storagetype#755] +[visit_id storagetype#755] +[visit_exp (mut?{mut <- `mut?`}, zt)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp zt] +[visit_id zt] +[visit_exp zt] +[visit_id zt] not free +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] not free +[visit_id mut?] no dims +ps' = +[check_dims] +[check_dims] fieldtype#59 ft +dims \ = fieldtype#59, ft +[visit_exp `ARRAY`_comptype{fieldtype#59}(ft)] +[visit_exp fieldtype#59] +[visit_id fieldtype#59] +[visit_exp (ft)] +[visit_exp ft] +[visit_id ft] +[visit_exp ft] +[visit_id ft] not free +[check_dims] X*#13071 ft +dims \ = X*#13071, ft +[visit_exp `STRUCT`_comptype(`%`_list{`X*#13071`}(ft*{ft <- `ft*`}))] +[visit_exp (`%`_list{`X*#13071`}(ft*{ft <- `ft*`}))] +[visit_exp `%`_list{`X*#13071`}(ft*{ft <- `ft*`})] +[visit_exp `X*#13071`] +[visit_id X*#13071] +[visit_exp (ft*{ft <- `ft*`})] +[visit_exp ft*{ft <- `ft*`}] +[scope_enter ft] +[visit_exp ft] +[visit_id ft] not free +[visit_id ft] not free +[scope_exit ft] +[visit_exp `ft*`] +[visit_id ft*] no dims +[visit_id ft*] +[visit_exp ft*{ft <- `ft*`}] +[scope_enter ft] +[visit_exp ft] +[visit_id ft] not free +[visit_id ft] not free +[scope_exit ft] +[visit_exp `ft*`] +[visit_id ft*] not free +[visit_id ft*] no dims +[check_dims] X*#13087 X*#13105 X*#13122 X*#13135 resulttype#3029 t_1 t_2 +dims \ = X*#13087, X*#13105, X*#13122, X*#13135, resulttype#3029, t_1, t_2 +[visit_exp `FUNC%->%`_comptype{resulttype#3029}(`%`_resulttype{`X*#13122`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13135`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#3029] +[visit_id resulttype#3029] +[visit_exp (`%`_resulttype{`X*#13122`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13135`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#13122`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#13122`] +[visit_id X*#13122] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp `%`_resulttype{`X*#13135`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#13135`] +[visit_id X*#13135] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp `%`_resulttype{`X*#13087`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#13087`] +[visit_id X*#13087] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `%`_resulttype{`X*#13105`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#13105`] +[visit_id X*#13105] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +ps' = +[check_dims] +[check_dims] comptype#449 ct final?#449 typeidx#1926 typeuse*#449 x +dims \ = comptype#449, ct, final?#449, typeidx#1926, typeuse*#449, x +[visit_exp `SUB`_subtype{`final?#449`, `typeuse*#449`, comptype#449}(?(`FINAL`_final), `_IDX`_typeuse{typeidx#1926}(x)*{typeidx#1926 <- `typeidx#1926*`, x <- `x*`}, ct)] +[visit_exp `final?#449`] +[visit_id final?#449] +[visit_exp `typeuse*#449`] +[visit_id typeuse*#449] +[visit_exp comptype#449] +[visit_id comptype#449] +[visit_exp (?(`FINAL`_final), `_IDX`_typeuse{typeidx#1926}(x)*{typeidx#1926 <- `typeidx#1926*`, x <- `x*`}, ct)] +[visit_exp ?(`FINAL`_final)] +[visit_exp `FINAL`_final] +[visit_exp ()] +[visit_exp `_IDX`_typeuse{typeidx#1926}(x)*{typeidx#1926 <- `typeidx#1926*`, x <- `x*`}] +[scope_enter typeidx#1926] +[scope_enter x] +[visit_exp `_IDX`_typeuse{typeidx#1926}(x)] +[visit_exp typeidx#1926] +[visit_id typeidx#1926] not free +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_id typeidx#1926] not free +[visit_id x] not free +[scope_exit x] +[scope_exit typeidx#1926] +[visit_exp `typeidx#1926*`] +[visit_id typeidx#1926*] no dims +[visit_id typeidx#1926*] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp ct] +[visit_id ct] +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[visit_exp ct] +[visit_id ct] not free +[check_dims] comptype#461 ct final?#461 typeidx#1928 typeuse*#461 x +dims \ = comptype#461, ct, final?#461, typeidx#1928, typeuse*#461, x +[visit_exp `SUB`_subtype{`final?#461`, `typeuse*#461`, comptype#461}(?(), `_IDX`_typeuse{typeidx#1928}(x)*{typeidx#1928 <- `typeidx#1928*`, x <- `x*`}, ct)] +[visit_exp `final?#461`] +[visit_id final?#461] +[visit_exp `typeuse*#461`] +[visit_id typeuse*#461] +[visit_exp comptype#461] +[visit_id comptype#461] +[visit_exp (?(), `_IDX`_typeuse{typeidx#1928}(x)*{typeidx#1928 <- `typeidx#1928*`, x <- `x*`}, ct)] +[visit_exp ?()] +[visit_exp `_IDX`_typeuse{typeidx#1928}(x)*{typeidx#1928 <- `typeidx#1928*`, x <- `x*`}] +[scope_enter typeidx#1928] +[scope_enter x] +[visit_exp `_IDX`_typeuse{typeidx#1928}(x)] +[visit_exp typeidx#1928] +[visit_id typeidx#1928] not free +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_id typeidx#1928] not free +[visit_id x] not free +[scope_exit x] +[scope_exit typeidx#1928] +[visit_exp `typeidx#1928*`] +[visit_id typeidx#1928*] no dims +[visit_id typeidx#1928*] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp ct] +[visit_id ct] +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[visit_exp ct] +[visit_id ct] not free +[check_dims] comptype#473 ct final?#473 typeuse*#473 +dims \ = comptype#473, ct, final?#473, typeuse*#473 +[visit_exp `SUB`_subtype{`final?#473`, `typeuse*#473`, comptype#473}(?(`FINAL`_final), [], ct)] +[visit_exp `final?#473`] +[visit_id final?#473] +[visit_exp `typeuse*#473`] +[visit_id typeuse*#473] +[visit_exp comptype#473] +[visit_id comptype#473] +[visit_exp (?(`FINAL`_final), [], ct)] +[visit_exp ?(`FINAL`_final)] +[visit_exp `FINAL`_final] +[visit_exp ()] +[visit_exp []] +[visit_exp ct] +[visit_id ct] +[visit_exp ct] +[visit_id ct] not free +ps' = +[check_dims] +[check_dims] X*#13150 st +dims \ = X*#13150, st +[visit_exp `REC`_rectype(`%`_list{`X*#13150`}(st*{st <- `st*`}))] +[visit_exp (`%`_list{`X*#13150`}(st*{st <- `st*`}))] +[visit_exp `%`_list{`X*#13150`}(st*{st <- `st*`})] +[visit_exp `X*#13150`] +[visit_id X*#13150] +[visit_exp (st*{st <- `st*`})] +[visit_exp st*{st <- `st*`}] +[scope_enter st] +[visit_exp st] +[visit_id st] not free +[visit_id st] not free +[scope_exit st] +[visit_exp `st*`] +[visit_id st*] no dims +[visit_id st*] +[visit_exp st*{st <- `st*`}] +[scope_enter st] +[visit_exp st] +[visit_id st] not free +[visit_id st] not free +[scope_exit st] +[visit_exp `st*`] +[visit_id st*] not free +[visit_id st*] no dims +[check_dims] X*#13165 st +dims \ = X*#13165, st +[visit_exp `REC`_rectype(`%`_list{`X*#13165`}([st]))] +[visit_exp (`%`_list{`X*#13165`}([st]))] +[visit_exp `%`_list{`X*#13165`}([st])] +[visit_exp `X*#13165`] +[visit_id X*#13165] +[visit_exp ([st])] +[visit_exp [st]] +[visit_exp st] +[visit_id st] +[visit_exp st] +[visit_id st] not free +ps' = +[check_dims] _ +[check_dims] i#49167 i#49191 n u64#491 u64?#467 +dims \ = i#49167, i#49191, n, u64#491, u64?#467 +[visit_exp (`I32`_addrtype, `[%..%]`_limits{u64#491, `u64?#467`}(`%`_u64{i#49191}(n), ?()))] +[visit_exp `I32`_addrtype] +[visit_exp ()] +[visit_exp `[%..%]`_limits{u64#491, `u64?#467`}(`%`_u64{i#49191}(n), ?())] +[visit_exp u64#491] +[visit_id u64#491] +[visit_exp `u64?#467`] +[visit_id u64?#467] +[visit_exp (`%`_u64{i#49191}(n), ?())] +[visit_exp `%`_u64{i#49191}(n)] +[visit_exp i#49191] +[visit_id i#49191] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp ?()] +[visit_exp `%`_u64{i#49167}(n)] +[visit_exp i#49167] +[visit_id i#49167] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[check_dims] i#49216 i#49243 i#49267 i#49289 m n u64#503 u64?#479 +dims \ = i#49216, i#49243, i#49267, i#49289, m, n, u64#503, u64?#479 +[visit_exp (`I32`_addrtype, `[%..%]`_limits{u64#503, `u64?#479`}(`%`_u64{i#49267}(n), ?(`%`_u64{i#49289}(m))))] +[visit_exp `I32`_addrtype] +[visit_exp ()] +[visit_exp `[%..%]`_limits{u64#503, `u64?#479`}(`%`_u64{i#49267}(n), ?(`%`_u64{i#49289}(m)))] +[visit_exp u64#503] +[visit_id u64#503] +[visit_exp `u64?#479`] +[visit_id u64?#479] +[visit_exp (`%`_u64{i#49267}(n), ?(`%`_u64{i#49289}(m)))] +[visit_exp `%`_u64{i#49267}(n)] +[visit_exp i#49267] +[visit_id i#49267] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp ?(`%`_u64{i#49289}(m))] +[visit_exp `%`_u64{i#49289}(m)] +[visit_exp i#49289] +[visit_id i#49289] +[visit_exp (m)] +[visit_exp m] +[visit_id m] +[visit_exp `%`_u64{i#49216}(n)] +[visit_exp i#49216] +[visit_id i#49216] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp `%`_u64{i#49243}(m)] +[visit_exp i#49243] +[visit_id i#49243] +[visit_exp (m)] +[visit_exp m] +[visit_id m] not free +[check_dims] i#49314 i#49338 n u64#515 u64?#491 +dims \ = i#49314, i#49338, n, u64#515, u64?#491 +[visit_exp (`I64`_addrtype, `[%..%]`_limits{u64#515, `u64?#491`}(`%`_u64{i#49338}(n), ?()))] +[visit_exp `I64`_addrtype] +[visit_exp ()] +[visit_exp `[%..%]`_limits{u64#515, `u64?#491`}(`%`_u64{i#49338}(n), ?())] +[visit_exp u64#515] +[visit_id u64#515] +[visit_exp `u64?#491`] +[visit_id u64?#491] +[visit_exp (`%`_u64{i#49338}(n), ?())] +[visit_exp `%`_u64{i#49338}(n)] +[visit_exp i#49338] +[visit_id i#49338] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp ?()] +[visit_exp `%`_u64{i#49314}(n)] +[visit_exp i#49314] +[visit_id i#49314] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[check_dims] i#49363 i#49390 i#49414 i#49436 m n u64#527 u64?#503 +dims \ = i#49363, i#49390, i#49414, i#49436, m, n, u64#527, u64?#503 +[visit_exp (`I64`_addrtype, `[%..%]`_limits{u64#527, `u64?#503`}(`%`_u64{i#49414}(n), ?(`%`_u64{i#49436}(m))))] +[visit_exp `I64`_addrtype] +[visit_exp ()] +[visit_exp `[%..%]`_limits{u64#527, `u64?#503`}(`%`_u64{i#49414}(n), ?(`%`_u64{i#49436}(m)))] +[visit_exp u64#527] +[visit_id u64#527] +[visit_exp `u64?#503`] +[visit_id u64?#503] +[visit_exp (`%`_u64{i#49414}(n), ?(`%`_u64{i#49436}(m)))] +[visit_exp `%`_u64{i#49414}(n)] +[visit_exp i#49414] +[visit_id i#49414] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp ?(`%`_u64{i#49436}(m))] +[visit_exp `%`_u64{i#49436}(m)] +[visit_exp i#49436] +[visit_id i#49436] +[visit_exp (m)] +[visit_exp m] +[visit_id m] +[visit_exp `%`_u64{i#49363}(n)] +[visit_exp i#49363] +[visit_id i#49363] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp `%`_u64{i#49390}(m)] +[visit_exp i#49390] +[visit_id i#49390] +[visit_exp (m)] +[visit_exp m] +[visit_id m] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = +[check_dims] +[check_dims] typeidx#1930 x +dims \ = typeidx#1930, x +[visit_exp `_IDX`_tagtype{typeidx#1930}(x)] +[visit_exp typeidx#1930] +[visit_id typeidx#1930] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] mut mut?#1469 t valtype#991 +dims \ = mut, mut?#1469, t, valtype#991 +[visit_exp `%%`_globaltype{`mut?#1469`, valtype#991}(mut?{mut <- `mut?`}, t)] +[visit_exp `mut?#1469`] +[visit_id mut?#1469] +[visit_exp valtype#991] +[visit_id valtype#991] +[visit_exp (mut?{mut <- `mut?`}, t)] +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] no dims +[visit_id mut?] +[visit_exp t] +[visit_id t] +[visit_exp t] +[visit_id t] not free +[visit_exp mut?{mut <- `mut?`}] +[scope_enter mut] +[visit_exp mut] +[visit_id mut] not free +[visit_id mut] not free +[scope_exit mut] +[visit_exp `mut?`] +[visit_id mut?] not free +[visit_id mut?] no dims +ps' = +[check_dims] +[check_dims] addrtype#1373 at lim limits#1373 +dims \ = addrtype#1373, at, lim, limits#1373 +[visit_exp `%%PAGE`_memtype{addrtype#1373, limits#1373}(at, lim)] +[visit_exp addrtype#1373] +[visit_id addrtype#1373] +[visit_exp limits#1373] +[visit_id limits#1373] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] +[visit_exp lim] +[visit_id lim] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] not free +ps' = +[check_dims] +[check_dims] addrtype#1385 at lim limits#1385 reftype#3949 rt +dims \ = addrtype#1385, at, lim, limits#1385, reftype#3949, rt +[visit_exp `%%%`_tabletype{addrtype#1385, limits#1385, reftype#3949}(at, lim, rt)] +[visit_exp addrtype#1385] +[visit_id addrtype#1385] +[visit_exp limits#1385] +[visit_id limits#1385] +[visit_exp reftype#3949] +[visit_id reftype#3949] +[visit_exp (at, lim, rt)] +[visit_exp at] +[visit_id at] +[visit_exp lim] +[visit_id lim] +[visit_exp rt] +[visit_id rt] +[visit_exp rt] +[visit_id rt] not free +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] not free +ps' = +[check_dims] +[check_dims] typeidx#1932 typeuse#67 x +dims \ = typeidx#1932, typeuse#67, x +[visit_exp `FUNC`_externtype{typeuse#67}(`_IDX`_typeuse{typeidx#1932}(x))] +[visit_exp typeuse#67] +[visit_id typeuse#67] +[visit_exp (`_IDX`_typeuse{typeidx#1932}(x))] +[visit_exp `_IDX`_typeuse{typeidx#1932}(x)] +[visit_exp typeidx#1932] +[visit_id typeidx#1932] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] tabletype#1118 tt +dims \ = tabletype#1118, tt +[visit_exp `TABLE`_externtype{tabletype#1118}(tt)] +[visit_exp tabletype#1118] +[visit_id tabletype#1118] +[visit_exp (tt)] +[visit_exp tt] +[visit_id tt] +[visit_exp tt] +[visit_id tt] not free +[check_dims] memtype#722 mt +dims \ = memtype#722, mt +[visit_exp `MEM`_externtype{memtype#722}(mt)] +[visit_exp memtype#722] +[visit_id memtype#722] +[visit_exp (mt)] +[visit_exp mt] +[visit_id mt] +[visit_exp mt] +[visit_id mt] not free +[check_dims] globaltype#2273 gt +dims \ = globaltype#2273, gt +[visit_exp `GLOBAL`_externtype{globaltype#2273}(gt)] +[visit_exp globaltype#2273] +[visit_id globaltype#2273] +[visit_exp (gt)] +[visit_exp gt] +[visit_id gt] +[visit_exp gt] +[visit_id gt] not free +[check_dims] jt tagtype#324 +dims \ = jt, tagtype#324 +[visit_exp `TAG`_externtype{tagtype#324}(jt)] +[visit_exp tagtype#324] +[visit_id tagtype#324] +[visit_exp (jt)] +[visit_exp jt] +[visit_id jt] +[visit_exp jt] +[visit_id jt] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp `UNREACHABLE`_instr] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `NOP`_instr] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `DROP`_instr] +[visit_exp ()] +[check_dims] valtype*?#11 +dims \ = valtype*?#11 +[visit_exp `SELECT`_instr{`valtype*?#11`}(?())] +[visit_exp `valtype*?#11`] +[visit_id valtype*?#11] +[visit_exp (?())] +[visit_exp ?()] +[check_dims] t valtype*?#13 +dims \ = t, valtype*?#13 +[visit_exp `SELECT`_instr{`valtype*?#13`}(?(t*{t <- `t*`}))] +[visit_exp `valtype*?#13`] +[visit_id valtype*?#13] +[visit_exp (?(t*{t <- `t*`}))] +[visit_exp ?(t*{t <- `t*`})] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] no dims +[visit_id t*] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[check_dims] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (?(), ?())] +[visit_exp ?()] +[visit_exp ?()] +[check_dims] +dims \ = +[visit_exp (?(`NULL`_null), ?())] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ?()] +[check_dims] +dims \ = +[visit_exp (?(), ?(`NULL`_null))] +[visit_exp ?()] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp (?(`NULL`_null), ?(`NULL`_null))] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] valtype?#7 +dims \ = valtype?#7 +[visit_exp `_RESULT`_blocktype{`valtype?#7`}(?())] +[visit_exp `valtype?#7`] +[visit_id valtype?#7] +[visit_exp (?())] +[visit_exp ?()] +[check_dims] t valtype?#9 +dims \ = t, valtype?#9 +[visit_exp `_RESULT`_blocktype{`valtype?#9`}(?(t))] +[visit_exp `valtype?#9`] +[visit_id valtype?#9] +[visit_exp (?(t))] +[visit_exp ?(t)] +[visit_exp t] +[visit_id t] +[visit_exp t] +[visit_id t] not free +[check_dims] i i#49559 i#49560 i#49575 typeidx#1934 +dims \ = i, i#49559, i#49560, i#49575, typeidx#1934 +[visit_exp `_IDX`_blocktype{typeidx#1934}(`%`_typeidx{i#49560}((i!`%`_s33{i#49559}.0 : int <:> nat)))] +[visit_exp typeidx#1934] +[visit_id typeidx#1934] +[visit_exp (`%`_typeidx{i#49560}((i!`%`_s33{i#49559}.0 : int <:> nat)))] +[visit_exp `%`_typeidx{i#49560}((i!`%`_s33{i#49559}.0 : int <:> nat))] +[visit_exp i#49560] +[visit_id i#49560] +[visit_exp ((i!`%`_s33{i#49559}.0 : int <:> nat))] +[visit_exp (i!`%`_s33{i#49559}.0 : int <:> nat)] +[visit_exp i!`%`_s33{i#49559}.0] +[visit_exp i!`%`_s33{i#49559}] +[visit_exp i] +[visit_id i] +[visit_exp i#49559] +[visit_id i#49559] +[visit_exp i] +[visit_id i] not free +[visit_exp (i!`%`_s33{i#49575}.0 >= (0 : nat <:> int))] +[visit_exp i!`%`_s33{i#49575}.0] +[visit_exp i!`%`_s33{i#49575}] +[visit_exp i] +[visit_id i] not free +[visit_exp i#49575] +[visit_id i#49575] +[visit_exp (0 : nat <:> int)] +[visit_exp 0] +ps' = +[check_dims] +[check_dims] blocktype#31 bt in instr*#2348 +dims \ = blocktype#31, bt, in, instr*#2348 +[visit_exp `BLOCK`_instr{blocktype#31, `instr*#2348`}(bt, in*{in <- `in*`})] +[visit_exp blocktype#31] +[visit_id blocktype#31] +[visit_exp `instr*#2348`] +[visit_id instr*#2348] +[visit_exp (bt, in*{in <- `in*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] no dims +[visit_id in*] +[visit_exp bt] +[visit_id bt] not free +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] not free +[visit_id in*] no dims +[check_dims] blocktype#33 bt in instr*#2350 +dims \ = blocktype#33, bt, in, instr*#2350 +[visit_exp `LOOP`_instr{blocktype#33, `instr*#2350`}(bt, in*{in <- `in*`})] +[visit_exp blocktype#33] +[visit_id blocktype#33] +[visit_exp `instr*#2350`] +[visit_id instr*#2350] +[visit_exp (bt, in*{in <- `in*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] no dims +[visit_id in*] +[visit_exp bt] +[visit_id bt] not free +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] not free +[visit_id in*] no dims +[check_dims] blocktype#35 bt in instr*#2352 +dims \ = blocktype#35, bt, in, instr*#2352 +[visit_exp `IF%%ELSE%`_instr{blocktype#35, `instr*#2352`}(bt, in*{in <- `in*`}, [])] +[visit_exp blocktype#35] +[visit_id blocktype#35] +[visit_exp `instr*#2352`] +[visit_id instr*#2352] +[visit_exp (bt, in*{in <- `in*`}, [])] +[visit_exp bt] +[visit_id bt] +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] no dims +[visit_id in*] +[visit_exp []] +[visit_exp bt] +[visit_id bt] not free +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] not free +[visit_id in*] no dims +[check_dims] blocktype#37 bt in_1 in_2 instr*#2355 +dims \ = blocktype#37, bt, in_1, in_2, instr*#2355 +[visit_exp `IF%%ELSE%`_instr{blocktype#37, `instr*#2355`}(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] +[visit_exp blocktype#37] +[visit_id blocktype#37] +[visit_exp `instr*#2355`] +[visit_id instr*#2355] +[visit_exp (bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp in_1*{in_1 <- `in_1*`}] +[scope_enter in_1] +[visit_exp in_1] +[visit_id in_1] not free +[visit_id in_1] not free +[scope_exit in_1] +[visit_exp `in_1*`] +[visit_id in_1*] no dims +[visit_id in_1*] +[visit_exp in_2*{in_2 <- `in_2*`}] +[scope_enter in_2] +[visit_exp in_2] +[visit_id in_2] not free +[visit_id in_2] not free +[scope_exit in_2] +[visit_exp `in_2*`] +[visit_id in_2*] no dims +[visit_id in_2*] +[visit_exp bt] +[visit_id bt] not free +[scope_enter in_1] +[visit_exp in_1] +[visit_id in_1] not free +[visit_id in_1] not free +[scope_exit in_1] +[visit_exp `in_1*`] +[visit_id in_1*] not free +[visit_id in_1*] no dims +[scope_enter in_2] +[visit_exp in_2] +[visit_id in_2] not free +[visit_id in_2] not free +[scope_exit in_2] +[visit_exp `in_2*`] +[visit_id in_2*] not free +[visit_id in_2*] no dims +ps' = +[check_dims] +[check_dims] tagidx#21 x +dims \ = tagidx#21, x +[visit_exp `THROW`_instr{tagidx#21}(x)] +[visit_exp tagidx#21] +[visit_id tagidx#21] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] +dims \ = +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[check_dims] l labelidx#101 +dims \ = l, labelidx#101 +[visit_exp `BR`_instr{labelidx#101}(l)] +[visit_exp labelidx#101] +[visit_id labelidx#101] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp l] +[visit_id l] not free +[check_dims] l labelidx#103 +dims \ = l, labelidx#103 +[visit_exp `BR_IF`_instr{labelidx#103}(l)] +[visit_exp labelidx#103] +[visit_id labelidx#103] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp l] +[visit_id l] not free +[check_dims] l l_n labelidx#105 labelidx*#54 +dims \ = l, l_n, labelidx#105, labelidx*#54 +[visit_exp `BR_TABLE`_instr{`labelidx*#54`, labelidx#105}(l*{l <- `l*`}, l_n)] +[visit_exp `labelidx*#54`] +[visit_id labelidx*#54] +[visit_exp labelidx#105] +[visit_id labelidx#105] +[visit_exp (l*{l <- `l*`}, l_n)] +[visit_exp l*{l <- `l*`}] +[scope_enter l] +[visit_exp l] +[visit_id l] not free +[visit_id l] not free +[scope_exit l] +[visit_exp `l*`] +[visit_id l*] no dims +[visit_id l*] +[visit_exp l_n] +[visit_id l_n] +[visit_exp l*{l <- `l*`}] +[scope_enter l] +[visit_exp l] +[visit_id l] not free +[visit_id l] not free +[scope_exit l] +[visit_exp `l*`] +[visit_id l*] not free +[visit_id l*] no dims +[visit_exp l_n] +[visit_id l_n] not free +[check_dims] +dims \ = +[visit_exp `RETURN`_instr] +[visit_exp ()] +[check_dims] funcidx#3163 x +dims \ = funcidx#3163, x +[visit_exp `CALL`_instr{funcidx#3163}(x)] +[visit_exp funcidx#3163] +[visit_id funcidx#3163] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] tableidx#125 typeidx#1936 typeuse#69 x y +dims \ = tableidx#125, typeidx#1936, typeuse#69, x, y +[visit_exp `CALL_INDIRECT`_instr{tableidx#125, typeuse#69}(x, `_IDX`_typeuse{typeidx#1936}(y))] +[visit_exp tableidx#125] +[visit_id tableidx#125] +[visit_exp typeuse#69] +[visit_id typeuse#69] +[visit_exp (x, `_IDX`_typeuse{typeidx#1936}(y))] +[visit_exp x] +[visit_id x] +[visit_exp `_IDX`_typeuse{typeidx#1936}(y)] +[visit_exp typeidx#1936] +[visit_id typeidx#1936] +[visit_exp (y)] +[visit_exp y] +[visit_id y] +[visit_exp y] +[visit_id y] not free +[visit_exp x] +[visit_id x] not free +[check_dims] funcidx#3165 x +dims \ = funcidx#3165, x +[visit_exp `RETURN_CALL`_instr{funcidx#3165}(x)] +[visit_exp funcidx#3165] +[visit_id funcidx#3165] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] tableidx#127 typeidx#1938 typeuse#71 x y +dims \ = tableidx#127, typeidx#1938, typeuse#71, x, y +[visit_exp `RETURN_CALL_INDIRECT`_instr{tableidx#127, typeuse#71}(x, `_IDX`_typeuse{typeidx#1938}(y))] +[visit_exp tableidx#127] +[visit_id tableidx#127] +[visit_exp typeuse#71] +[visit_id typeuse#71] +[visit_exp (x, `_IDX`_typeuse{typeidx#1938}(y))] +[visit_exp x] +[visit_id x] +[visit_exp `_IDX`_typeuse{typeidx#1938}(y)] +[visit_exp typeidx#1938] +[visit_id typeidx#1938] +[visit_exp (y)] +[visit_exp y] +[visit_id y] +[visit_exp y] +[visit_id y] not free +[visit_exp x] +[visit_id x] not free +[check_dims] typeidx#1940 typeuse#73 x +dims \ = typeidx#1940, typeuse#73, x +[visit_exp `CALL_REF`_instr{typeuse#73}(`_IDX`_typeuse{typeidx#1940}(x))] +[visit_exp typeuse#73] +[visit_id typeuse#73] +[visit_exp (`_IDX`_typeuse{typeidx#1940}(x))] +[visit_exp `_IDX`_typeuse{typeidx#1940}(x)] +[visit_exp typeidx#1940] +[visit_id typeidx#1940] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] typeidx#1942 typeuse#75 x +dims \ = typeidx#1942, typeuse#75, x +[visit_exp `RETURN_CALL_REF`_instr{typeuse#75}(`_IDX`_typeuse{typeidx#1942}(x))] +[visit_exp typeuse#75] +[visit_id typeuse#75] +[visit_exp (`_IDX`_typeuse{typeidx#1942}(x))] +[visit_exp `_IDX`_typeuse{typeidx#1942}(x)] +[visit_exp typeidx#1942] +[visit_id typeidx#1942] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] X*#13196 blocktype#39 bt c in instr*#2358 +dims \ = X*#13196, blocktype#39, bt, c, in, instr*#2358 +[visit_exp `TRY_TABLE`_instr{blocktype#39, `instr*#2358`}(bt, `%`_list{`X*#13196`}(c*{c <- `c*`}), in*{in <- `in*`})] +[visit_exp blocktype#39] +[visit_id blocktype#39] +[visit_exp `instr*#2358`] +[visit_id instr*#2358] +[visit_exp (bt, `%`_list{`X*#13196`}(c*{c <- `c*`}), in*{in <- `in*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp `%`_list{`X*#13196`}(c*{c <- `c*`})] +[visit_exp `X*#13196`] +[visit_id X*#13196] +[visit_exp (c*{c <- `c*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] no dims +[visit_id in*] +[visit_exp bt] +[visit_id bt] not free +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] not free +[visit_id in*] no dims +[check_dims] l labelidx#107 +dims \ = l, labelidx#107 +[visit_exp `BR_ON_NULL`_instr{labelidx#107}(l)] +[visit_exp labelidx#107] +[visit_id labelidx#107] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp l] +[visit_id l] not free +[check_dims] l labelidx#109 +dims \ = l, labelidx#109 +[visit_exp `BR_ON_NON_NULL`_instr{labelidx#109}(l)] +[visit_exp labelidx#109] +[visit_id labelidx#109] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp l] +[visit_id l] not free +[check_dims] heaptype#1641 heaptype#1653 ht_1 ht_2 i#50095 l labelidx#111 null?#1579 null?#1591 null_1 null_2 reftype#3963 +dims \ = heaptype#1641, heaptype#1653, ht_1, ht_2, i#50095, l, labelidx#111, null?#1579, null?#1591, null_1, null_2, reftype#3963 +[visit_exp `BR_ON_CAST`_instr{labelidx#111, reftype#3963}(l, `REF`_reftype{`null?#1579`, heaptype#1641}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#1591`, heaptype#1653}(null_2?{null_2 <- `null_2?`}, ht_2))] +[visit_exp labelidx#111] +[visit_id labelidx#111] +[visit_exp reftype#3963] +[visit_id reftype#3963] +[visit_exp (l, `REF`_reftype{`null?#1579`, heaptype#1641}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#1591`, heaptype#1653}(null_2?{null_2 <- `null_2?`}, ht_2))] +[visit_exp l] +[visit_id l] +[visit_exp `REF`_reftype{`null?#1579`, heaptype#1641}(null_1?{null_1 <- `null_1?`}, ht_1)] +[visit_exp `null?#1579`] +[visit_id null?#1579] +[visit_exp heaptype#1641] +[visit_id heaptype#1641] +[visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] +[visit_exp null_1?{null_1 <- `null_1?`}] +[scope_enter null_1] +[visit_exp null_1] +[visit_id null_1] not free +[visit_id null_1] not free +[scope_exit null_1] +[visit_exp `null_1?`] +[visit_id null_1?] no dims +[visit_id null_1?] +[visit_exp ht_1] +[visit_id ht_1] +[visit_exp `REF`_reftype{`null?#1591`, heaptype#1653}(null_2?{null_2 <- `null_2?`}, ht_2)] +[visit_exp `null?#1591`] +[visit_id null?#1591] +[visit_exp heaptype#1653] +[visit_id heaptype#1653] +[visit_exp (null_2?{null_2 <- `null_2?`}, ht_2)] +[visit_exp null_2?{null_2 <- `null_2?`}] +[scope_enter null_2] +[visit_exp null_2] +[visit_id null_2] not free +[visit_id null_2] not free +[scope_exit null_2] +[visit_exp `null_2?`] +[visit_id null_2?] no dims +[visit_id null_2?] +[visit_exp ht_2] +[visit_id ht_2] +[visit_exp `%`_u32{i#50095}(24)] +[visit_exp i#50095] +[visit_id i#50095] +[visit_exp (24)] +[visit_exp 24] +[visit_exp (null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`})] +[visit_exp null_1?{null_1 <- `null_1?`}] +[scope_enter null_1] +[visit_exp null_1] +[visit_id null_1] not free +[visit_id null_1] not free +[scope_exit null_1] +[visit_exp `null_1?`] +[visit_id null_1?] not free +[visit_id null_1?] no dims +[visit_exp null_2?{null_2 <- `null_2?`}] +[scope_enter null_2] +[visit_exp null_2] +[visit_id null_2] not free +[visit_id null_2] not free +[scope_exit null_2] +[visit_exp `null_2?`] +[visit_id null_2?] not free +[visit_id null_2?] no dims +[visit_exp l] +[visit_id l] not free +[visit_exp ht_1] +[visit_id ht_1] not free +[visit_exp ht_2] +[visit_id ht_2] not free +[check_dims] heaptype#1665 heaptype#1677 ht_1 ht_2 i#50147 l labelidx#113 null?#1603 null?#1615 null_1 null_2 reftype#3966 +dims \ = heaptype#1665, heaptype#1677, ht_1, ht_2, i#50147, l, labelidx#113, null?#1603, null?#1615, null_1, null_2, reftype#3966 +[visit_exp `BR_ON_CAST_FAIL`_instr{labelidx#113, reftype#3966}(l, `REF`_reftype{`null?#1603`, heaptype#1665}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#1615`, heaptype#1677}(null_2?{null_2 <- `null_2?`}, ht_2))] +[visit_exp labelidx#113] +[visit_id labelidx#113] +[visit_exp reftype#3966] +[visit_id reftype#3966] +[visit_exp (l, `REF`_reftype{`null?#1603`, heaptype#1665}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#1615`, heaptype#1677}(null_2?{null_2 <- `null_2?`}, ht_2))] +[visit_exp l] +[visit_id l] +[visit_exp `REF`_reftype{`null?#1603`, heaptype#1665}(null_1?{null_1 <- `null_1?`}, ht_1)] +[visit_exp `null?#1603`] +[visit_id null?#1603] +[visit_exp heaptype#1665] +[visit_id heaptype#1665] +[visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] +[visit_exp null_1?{null_1 <- `null_1?`}] +[scope_enter null_1] +[visit_exp null_1] +[visit_id null_1] not free +[visit_id null_1] not free +[scope_exit null_1] +[visit_exp `null_1?`] +[visit_id null_1?] no dims +[visit_id null_1?] +[visit_exp ht_1] +[visit_id ht_1] +[visit_exp `REF`_reftype{`null?#1615`, heaptype#1677}(null_2?{null_2 <- `null_2?`}, ht_2)] +[visit_exp `null?#1615`] +[visit_id null?#1615] +[visit_exp heaptype#1677] +[visit_id heaptype#1677] +[visit_exp (null_2?{null_2 <- `null_2?`}, ht_2)] +[visit_exp null_2?{null_2 <- `null_2?`}] +[scope_enter null_2] +[visit_exp null_2] +[visit_id null_2] not free +[visit_id null_2] not free +[scope_exit null_2] +[visit_exp `null_2?`] +[visit_id null_2?] no dims +[visit_id null_2?] +[visit_exp ht_2] +[visit_id ht_2] +[visit_exp `%`_u32{i#50147}(25)] +[visit_exp i#50147] +[visit_id i#50147] +[visit_exp (25)] +[visit_exp 25] +[visit_exp (null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`})] +[visit_exp null_1?{null_1 <- `null_1?`}] +[scope_enter null_1] +[visit_exp null_1] +[visit_id null_1] not free +[visit_id null_1] not free +[scope_exit null_1] +[visit_exp `null_1?`] +[visit_id null_1?] not free +[visit_id null_1?] no dims +[visit_exp null_2?{null_2 <- `null_2?`}] +[scope_enter null_2] +[visit_exp null_2] +[visit_id null_2] not free +[visit_id null_2] not free +[scope_exit null_2] +[visit_exp `null_2?`] +[visit_id null_2?] not free +[visit_id null_2?] no dims +[visit_exp l] +[visit_id l] not free +[visit_exp ht_1] +[visit_id ht_1] not free +[visit_exp ht_2] +[visit_id ht_2] not free +ps' = +[check_dims] +[check_dims] l labelidx#115 tagidx#23 x +dims \ = l, labelidx#115, tagidx#23, x +[visit_exp `CATCH`_catch{tagidx#23, labelidx#115}(x, l)] +[visit_exp tagidx#23] +[visit_id tagidx#23] +[visit_exp labelidx#115] +[visit_id labelidx#115] +[visit_exp (x, l)] +[visit_exp x] +[visit_id x] +[visit_exp l] +[visit_id l] +[visit_exp x] +[visit_id x] not free +[visit_exp l] +[visit_id l] not free +[check_dims] l labelidx#117 tagidx#25 x +dims \ = l, labelidx#117, tagidx#25, x +[visit_exp `CATCH_REF`_catch{tagidx#25, labelidx#117}(x, l)] +[visit_exp tagidx#25] +[visit_id tagidx#25] +[visit_exp labelidx#117] +[visit_id labelidx#117] +[visit_exp (x, l)] +[visit_exp x] +[visit_id x] +[visit_exp l] +[visit_id l] +[visit_exp x] +[visit_id x] not free +[visit_exp l] +[visit_id l] not free +[check_dims] l labelidx#119 +dims \ = l, labelidx#119 +[visit_exp `CATCH_ALL`_catch{labelidx#119}(l)] +[visit_exp labelidx#119] +[visit_id labelidx#119] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp l] +[visit_id l] not free +[check_dims] l labelidx#121 +dims \ = l, labelidx#121 +[visit_exp `CATCH_ALL_REF`_catch{labelidx#121}(l)] +[visit_exp labelidx#121] +[visit_id labelidx#121] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp l] +[visit_id l] not free +ps' = +[check_dims] +[check_dims] localidx#21 x +dims \ = localidx#21, x +[visit_exp `LOCAL.GET`_instr{localidx#21}(x)] +[visit_exp localidx#21] +[visit_id localidx#21] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] localidx#23 x +dims \ = localidx#23, x +[visit_exp `LOCAL.SET`_instr{localidx#23}(x)] +[visit_exp localidx#23] +[visit_id localidx#23] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] localidx#25 x +dims \ = localidx#25, x +[visit_exp `LOCAL.TEE`_instr{localidx#25}(x)] +[visit_exp localidx#25] +[visit_id localidx#25] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] globalidx#25 x +dims \ = globalidx#25, x +[visit_exp `GLOBAL.GET`_instr{globalidx#25}(x)] +[visit_exp globalidx#25] +[visit_id globalidx#25] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] globalidx#27 x +dims \ = globalidx#27, x +[visit_exp `GLOBAL.SET`_instr{globalidx#27}(x)] +[visit_exp globalidx#27] +[visit_id globalidx#27] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] tableidx#129 x +dims \ = tableidx#129, x +[visit_exp `TABLE.GET`_instr{tableidx#129}(x)] +[visit_exp tableidx#129] +[visit_id tableidx#129] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] tableidx#131 x +dims \ = tableidx#131, x +[visit_exp `TABLE.SET`_instr{tableidx#131}(x)] +[visit_exp tableidx#131] +[visit_id tableidx#131] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] elemidx#49 i#50586 tableidx#133 x y +dims \ = elemidx#49, i#50586, tableidx#133, x, y +[visit_exp `TABLE.INIT`_instr{tableidx#133, elemidx#49}(x, y)] +[visit_exp tableidx#133] +[visit_id tableidx#133] +[visit_exp elemidx#49] +[visit_id elemidx#49] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp `%`_u32{i#50586}(12)] +[visit_exp i#50586] +[visit_id i#50586] +[visit_exp (12)] +[visit_exp 12] +[visit_exp y] +[visit_id y] not free +[visit_exp x] +[visit_id x] not free +[check_dims] elemidx#51 i#50673 x +dims \ = elemidx#51, i#50673, x +[visit_exp `ELEM.DROP`_instr{elemidx#51}(x)] +[visit_exp elemidx#51] +[visit_id elemidx#51] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#50673}(13)] +[visit_exp i#50673] +[visit_id i#50673] +[visit_exp (13)] +[visit_exp 13] +[visit_exp x] +[visit_id x] not free +[check_dims] i#50729 tableidx#135 x_1 x_2 +dims \ = i#50729, tableidx#135, x_1, x_2 +[visit_exp `TABLE.COPY`_instr{tableidx#135}(x_1, x_2)] +[visit_exp tableidx#135] +[visit_id tableidx#135] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp `%`_u32{i#50729}(14)] +[visit_exp i#50729] +[visit_id i#50729] +[visit_exp (14)] +[visit_exp 14] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp x_2] +[visit_id x_2] not free +[check_dims] i#50816 tableidx#138 x +dims \ = i#50816, tableidx#138, x +[visit_exp `TABLE.GROW`_instr{tableidx#138}(x)] +[visit_exp tableidx#138] +[visit_id tableidx#138] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#50816}(15)] +[visit_exp i#50816] +[visit_id i#50816] +[visit_exp (15)] +[visit_exp 15] +[visit_exp x] +[visit_id x] not free +[check_dims] i#50872 tableidx#140 x +dims \ = i#50872, tableidx#140, x +[visit_exp `TABLE.SIZE`_instr{tableidx#140}(x)] +[visit_exp tableidx#140] +[visit_id tableidx#140] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#50872}(16)] +[visit_exp i#50872] +[visit_id i#50872] +[visit_exp (16)] +[visit_exp 16] +[visit_exp x] +[visit_id x] not free +[check_dims] i#50928 tableidx#142 x +dims \ = i#50928, tableidx#142, x +[visit_exp `TABLE.FILL`_instr{tableidx#142}(x)] +[visit_exp tableidx#142] +[visit_id tableidx#142] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#50928}(17)] +[visit_exp i#50928] +[visit_id i#50928] +[visit_exp (17)] +[visit_exp 17] +[visit_exp x] +[visit_id x] not free +[check_dims] +ps' = +[check_dims] +[check_dims] i#50986 i#51013 i#51035 i#51057 i#51079 m n u32#35 u64#553 +dims \ = i#50986, i#51013, i#51035, i#51057, i#51079, m, n, u32#35, u64#553 +[visit_exp (`%`_memidx{i#51035}(0), {`ALIGN`{u32#35} `%`_u32{i#51057}(n), `OFFSET`{u64#553} `%`_u64{i#51079}(m)})] +[visit_exp `%`_memidx{i#51035}(0)] +[visit_exp i#51035] +[visit_id i#51035] +[visit_exp (0)] +[visit_exp 0] +[visit_exp {`ALIGN`{u32#35} `%`_u32{i#51057}(n), `OFFSET`{u64#553} `%`_u64{i#51079}(m)}] +[visit_exp u32#35] +[visit_id u32#35] +[visit_exp `%`_u32{i#51057}(n)] +[visit_exp i#51057] +[visit_id i#51057] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp u64#553] +[visit_id u64#553] +[visit_exp `%`_u64{i#51079}(m)] +[visit_exp i#51079] +[visit_id i#51079] +[visit_exp (m)] +[visit_exp m] +[visit_id m] +[visit_exp `%`_u32{i#50986}(n)] +[visit_exp i#50986] +[visit_id i#50986] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp `%`_u64{i#51013}(m)] +[visit_exp i#51013] +[visit_id i#51013] +[visit_exp (m)] +[visit_exp m] +[visit_id m] not free +[visit_exp (n < (2 ^ 6))] +[visit_exp n] +[visit_id n] not free +[visit_exp (2 ^ 6)] +[visit_exp 2] +[visit_exp 6] +[check_dims] i#51104 i#51148 i#51182 i#51204 m n u32#36 u64#554 x +dims \ = i#51104, i#51148, i#51182, i#51204, m, n, u32#36, u64#554, x +[visit_exp (x, {`ALIGN`{u32#36} `%`_u32{i#51182}((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), `OFFSET`{u64#554} `%`_u64{i#51204}(m)})] +[visit_exp x] +[visit_id x] +[visit_exp {`ALIGN`{u32#36} `%`_u32{i#51182}((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), `OFFSET`{u64#554} `%`_u64{i#51204}(m)}] +[visit_exp u32#36] +[visit_id u32#36] +[visit_exp `%`_u32{i#51182}((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat))] +[visit_exp i#51182] +[visit_id i#51182] +[visit_exp ((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat))] +[visit_exp (((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)] +[visit_exp ((n : nat <:> int) - ((2 ^ 6) : nat <:> int))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp ((2 ^ 6) : nat <:> int)] +[visit_exp (2 ^ 6)] +[visit_exp 2] +[visit_exp 6] +[visit_exp u64#554] +[visit_id u64#554] +[visit_exp `%`_u64{i#51204}(m)] +[visit_exp i#51204] +[visit_id i#51204] +[visit_exp (m)] +[visit_exp m] +[visit_id m] +[visit_exp `%`_u32{i#51104}(n)] +[visit_exp i#51104] +[visit_id i#51104] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp x] +[visit_id x] not free +[visit_exp `%`_u64{i#51148}(m)] +[visit_exp i#51148] +[visit_id i#51148] +[visit_exp (m)] +[visit_exp m] +[visit_id m] not free +[visit_exp (((2 ^ 6) <= n) /\ (n < (2 ^ 7)))] +[visit_exp ((2 ^ 6) <= n)] +[visit_exp (2 ^ 6)] +[visit_exp 2] +[visit_exp 6] +[visit_exp n] +[visit_id n] not free +[visit_exp (n < (2 ^ 7))] +[visit_exp n] +[visit_id n] not free +[visit_exp (2 ^ 7)] +[visit_exp 2] +[visit_exp 7] +ps' = +[check_dims] +[check_dims] ao memarg#91 memidx#171 numtype?#21 x +dims \ = ao, memarg#91, memidx#171, numtype?#21, x +[visit_exp `LOAD`_instr{`numtype?#21`, memidx#171, memarg#91}(`I32`_numtype, ?(), x, ao)] +[visit_exp `numtype?#21`] +[visit_id numtype?#21] +[visit_exp memidx#171] +[visit_id memidx#171] +[visit_exp memarg#91] +[visit_id memarg#91] +[visit_exp (`I32`_numtype, ?(), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao memarg#93 memidx#173 numtype?#22 x +dims \ = ao, memarg#93, memidx#173, numtype?#22, x +[visit_exp `LOAD`_instr{`numtype?#22`, memidx#173, memarg#93}(`I64`_numtype, ?(), x, ao)] +[visit_exp `numtype?#22`] +[visit_id numtype?#22] +[visit_exp memidx#173] +[visit_id memidx#173] +[visit_exp memarg#93] +[visit_id memarg#93] +[visit_exp (`I64`_numtype, ?(), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao memarg#95 memidx#175 numtype?#23 x +dims \ = ao, memarg#95, memidx#175, numtype?#23, x +[visit_exp `LOAD`_instr{`numtype?#23`, memidx#175, memarg#95}(`F32`_numtype, ?(), x, ao)] +[visit_exp `numtype?#23`] +[visit_id numtype?#23] +[visit_exp memidx#175] +[visit_id memidx#175] +[visit_exp memarg#95] +[visit_id memarg#95] +[visit_exp (`F32`_numtype, ?(), x, ao)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao memarg#97 memidx#177 numtype?#24 x +dims \ = ao, memarg#97, memidx#177, numtype?#24, x +[visit_exp `LOAD`_instr{`numtype?#24`, memidx#177, memarg#97}(`F64`_numtype, ?(), x, ao)] +[visit_exp `numtype?#24`] +[visit_id numtype?#24] +[visit_exp memidx#177] +[visit_id memidx#177] +[visit_exp memarg#97] +[visit_id memarg#97] +[visit_exp (`F64`_numtype, ?(), x, ao)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#51346 i#51353 memarg#99 memidx#179 numtype?#25 sx#426 sz#558 x +dims \ = ao, i#51346, i#51353, memarg#99, memidx#179, numtype?#25, sx#426, sz#558, x +[visit_exp `LOAD`_instr{`numtype?#25`, memidx#179, memarg#99}(`I32`_numtype, ?(`%_%`_loadop_{sz#558, sx#426, i#51346}(`%`_sz{i#51353}(8), `S`_sx)), x, ao)] +[visit_exp `numtype?#25`] +[visit_id numtype?#25] +[visit_exp memidx#179] +[visit_id memidx#179] +[visit_exp memarg#99] +[visit_id memarg#99] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#558, sx#426, i#51346}(`%`_sz{i#51353}(8), `S`_sx)), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#558, sx#426, i#51346}(`%`_sz{i#51353}(8), `S`_sx))] +[visit_exp `%_%`_loadop_{sz#558, sx#426, i#51346}(`%`_sz{i#51353}(8), `S`_sx)] +[visit_exp sz#558] +[visit_id sz#558] +[visit_exp sx#426] +[visit_id sx#426] +[visit_exp i#51346] +[visit_id i#51346] +[visit_exp (`%`_sz{i#51353}(8), `S`_sx)] +[visit_exp `%`_sz{i#51353}(8)] +[visit_exp i#51353] +[visit_id i#51353] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#51405 i#51412 memarg#101 memidx#181 numtype?#26 sx#444 sz#576 x +dims \ = ao, i#51405, i#51412, memarg#101, memidx#181, numtype?#26, sx#444, sz#576, x +[visit_exp `LOAD`_instr{`numtype?#26`, memidx#181, memarg#101}(`I32`_numtype, ?(`%_%`_loadop_{sz#576, sx#444, i#51405}(`%`_sz{i#51412}(8), `U`_sx)), x, ao)] +[visit_exp `numtype?#26`] +[visit_id numtype?#26] +[visit_exp memidx#181] +[visit_id memidx#181] +[visit_exp memarg#101] +[visit_id memarg#101] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#576, sx#444, i#51405}(`%`_sz{i#51412}(8), `U`_sx)), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#576, sx#444, i#51405}(`%`_sz{i#51412}(8), `U`_sx))] +[visit_exp `%_%`_loadop_{sz#576, sx#444, i#51405}(`%`_sz{i#51412}(8), `U`_sx)] +[visit_exp sz#576] +[visit_id sz#576] +[visit_exp sx#444] +[visit_id sx#444] +[visit_exp i#51405] +[visit_id i#51405] +[visit_exp (`%`_sz{i#51412}(8), `U`_sx)] +[visit_exp `%`_sz{i#51412}(8)] +[visit_exp i#51412] +[visit_id i#51412] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#51464 i#51471 memarg#103 memidx#183 numtype?#27 sx#462 sz#594 x +dims \ = ao, i#51464, i#51471, memarg#103, memidx#183, numtype?#27, sx#462, sz#594, x +[visit_exp `LOAD`_instr{`numtype?#27`, memidx#183, memarg#103}(`I32`_numtype, ?(`%_%`_loadop_{sz#594, sx#462, i#51464}(`%`_sz{i#51471}(16), `S`_sx)), x, ao)] +[visit_exp `numtype?#27`] +[visit_id numtype?#27] +[visit_exp memidx#183] +[visit_id memidx#183] +[visit_exp memarg#103] +[visit_id memarg#103] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#594, sx#462, i#51464}(`%`_sz{i#51471}(16), `S`_sx)), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#594, sx#462, i#51464}(`%`_sz{i#51471}(16), `S`_sx))] +[visit_exp `%_%`_loadop_{sz#594, sx#462, i#51464}(`%`_sz{i#51471}(16), `S`_sx)] +[visit_exp sz#594] +[visit_id sz#594] +[visit_exp sx#462] +[visit_id sx#462] +[visit_exp i#51464] +[visit_id i#51464] +[visit_exp (`%`_sz{i#51471}(16), `S`_sx)] +[visit_exp `%`_sz{i#51471}(16)] +[visit_exp i#51471] +[visit_id i#51471] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#51523 i#51530 memarg#105 memidx#185 numtype?#28 sx#480 sz#612 x +dims \ = ao, i#51523, i#51530, memarg#105, memidx#185, numtype?#28, sx#480, sz#612, x +[visit_exp `LOAD`_instr{`numtype?#28`, memidx#185, memarg#105}(`I32`_numtype, ?(`%_%`_loadop_{sz#612, sx#480, i#51523}(`%`_sz{i#51530}(16), `U`_sx)), x, ao)] +[visit_exp `numtype?#28`] +[visit_id numtype?#28] +[visit_exp memidx#185] +[visit_id memidx#185] +[visit_exp memarg#105] +[visit_id memarg#105] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#612, sx#480, i#51523}(`%`_sz{i#51530}(16), `U`_sx)), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#612, sx#480, i#51523}(`%`_sz{i#51530}(16), `U`_sx))] +[visit_exp `%_%`_loadop_{sz#612, sx#480, i#51523}(`%`_sz{i#51530}(16), `U`_sx)] +[visit_exp sz#612] +[visit_id sz#612] +[visit_exp sx#480] +[visit_id sx#480] +[visit_exp i#51523] +[visit_id i#51523] +[visit_exp (`%`_sz{i#51530}(16), `U`_sx)] +[visit_exp `%`_sz{i#51530}(16)] +[visit_exp i#51530] +[visit_id i#51530] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#51582 i#51589 memarg#107 memidx#187 numtype?#29 sx#498 sz#630 x +dims \ = ao, i#51582, i#51589, memarg#107, memidx#187, numtype?#29, sx#498, sz#630, x +[visit_exp `LOAD`_instr{`numtype?#29`, memidx#187, memarg#107}(`I64`_numtype, ?(`%_%`_loadop_{sz#630, sx#498, i#51582}(`%`_sz{i#51589}(8), `S`_sx)), x, ao)] +[visit_exp `numtype?#29`] +[visit_id numtype?#29] +[visit_exp memidx#187] +[visit_id memidx#187] +[visit_exp memarg#107] +[visit_id memarg#107] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#630, sx#498, i#51582}(`%`_sz{i#51589}(8), `S`_sx)), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#630, sx#498, i#51582}(`%`_sz{i#51589}(8), `S`_sx))] +[visit_exp `%_%`_loadop_{sz#630, sx#498, i#51582}(`%`_sz{i#51589}(8), `S`_sx)] +[visit_exp sz#630] +[visit_id sz#630] +[visit_exp sx#498] +[visit_id sx#498] +[visit_exp i#51582] +[visit_id i#51582] +[visit_exp (`%`_sz{i#51589}(8), `S`_sx)] +[visit_exp `%`_sz{i#51589}(8)] +[visit_exp i#51589] +[visit_id i#51589] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#51641 i#51648 memarg#109 memidx#189 numtype?#30 sx#516 sz#648 x +dims \ = ao, i#51641, i#51648, memarg#109, memidx#189, numtype?#30, sx#516, sz#648, x +[visit_exp `LOAD`_instr{`numtype?#30`, memidx#189, memarg#109}(`I64`_numtype, ?(`%_%`_loadop_{sz#648, sx#516, i#51641}(`%`_sz{i#51648}(8), `U`_sx)), x, ao)] +[visit_exp `numtype?#30`] +[visit_id numtype?#30] +[visit_exp memidx#189] +[visit_id memidx#189] +[visit_exp memarg#109] +[visit_id memarg#109] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#648, sx#516, i#51641}(`%`_sz{i#51648}(8), `U`_sx)), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#648, sx#516, i#51641}(`%`_sz{i#51648}(8), `U`_sx))] +[visit_exp `%_%`_loadop_{sz#648, sx#516, i#51641}(`%`_sz{i#51648}(8), `U`_sx)] +[visit_exp sz#648] +[visit_id sz#648] +[visit_exp sx#516] +[visit_id sx#516] +[visit_exp i#51641] +[visit_id i#51641] +[visit_exp (`%`_sz{i#51648}(8), `U`_sx)] +[visit_exp `%`_sz{i#51648}(8)] +[visit_exp i#51648] +[visit_id i#51648] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#51700 i#51707 memarg#111 memidx#191 numtype?#31 sx#534 sz#666 x +dims \ = ao, i#51700, i#51707, memarg#111, memidx#191, numtype?#31, sx#534, sz#666, x +[visit_exp `LOAD`_instr{`numtype?#31`, memidx#191, memarg#111}(`I64`_numtype, ?(`%_%`_loadop_{sz#666, sx#534, i#51700}(`%`_sz{i#51707}(16), `S`_sx)), x, ao)] +[visit_exp `numtype?#31`] +[visit_id numtype?#31] +[visit_exp memidx#191] +[visit_id memidx#191] +[visit_exp memarg#111] +[visit_id memarg#111] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#666, sx#534, i#51700}(`%`_sz{i#51707}(16), `S`_sx)), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#666, sx#534, i#51700}(`%`_sz{i#51707}(16), `S`_sx))] +[visit_exp `%_%`_loadop_{sz#666, sx#534, i#51700}(`%`_sz{i#51707}(16), `S`_sx)] +[visit_exp sz#666] +[visit_id sz#666] +[visit_exp sx#534] +[visit_id sx#534] +[visit_exp i#51700] +[visit_id i#51700] +[visit_exp (`%`_sz{i#51707}(16), `S`_sx)] +[visit_exp `%`_sz{i#51707}(16)] +[visit_exp i#51707] +[visit_id i#51707] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#51759 i#51766 memarg#113 memidx#193 numtype?#32 sx#552 sz#684 x +dims \ = ao, i#51759, i#51766, memarg#113, memidx#193, numtype?#32, sx#552, sz#684, x +[visit_exp `LOAD`_instr{`numtype?#32`, memidx#193, memarg#113}(`I64`_numtype, ?(`%_%`_loadop_{sz#684, sx#552, i#51759}(`%`_sz{i#51766}(16), `U`_sx)), x, ao)] +[visit_exp `numtype?#32`] +[visit_id numtype?#32] +[visit_exp memidx#193] +[visit_id memidx#193] +[visit_exp memarg#113] +[visit_id memarg#113] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#684, sx#552, i#51759}(`%`_sz{i#51766}(16), `U`_sx)), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#684, sx#552, i#51759}(`%`_sz{i#51766}(16), `U`_sx))] +[visit_exp `%_%`_loadop_{sz#684, sx#552, i#51759}(`%`_sz{i#51766}(16), `U`_sx)] +[visit_exp sz#684] +[visit_id sz#684] +[visit_exp sx#552] +[visit_id sx#552] +[visit_exp i#51759] +[visit_id i#51759] +[visit_exp (`%`_sz{i#51766}(16), `U`_sx)] +[visit_exp `%`_sz{i#51766}(16)] +[visit_exp i#51766] +[visit_id i#51766] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#51818 i#51825 memarg#115 memidx#195 numtype?#33 sx#570 sz#702 x +dims \ = ao, i#51818, i#51825, memarg#115, memidx#195, numtype?#33, sx#570, sz#702, x +[visit_exp `LOAD`_instr{`numtype?#33`, memidx#195, memarg#115}(`I64`_numtype, ?(`%_%`_loadop_{sz#702, sx#570, i#51818}(`%`_sz{i#51825}(32), `S`_sx)), x, ao)] +[visit_exp `numtype?#33`] +[visit_id numtype?#33] +[visit_exp memidx#195] +[visit_id memidx#195] +[visit_exp memarg#115] +[visit_id memarg#115] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#702, sx#570, i#51818}(`%`_sz{i#51825}(32), `S`_sx)), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#702, sx#570, i#51818}(`%`_sz{i#51825}(32), `S`_sx))] +[visit_exp `%_%`_loadop_{sz#702, sx#570, i#51818}(`%`_sz{i#51825}(32), `S`_sx)] +[visit_exp sz#702] +[visit_id sz#702] +[visit_exp sx#570] +[visit_id sx#570] +[visit_exp i#51818] +[visit_id i#51818] +[visit_exp (`%`_sz{i#51825}(32), `S`_sx)] +[visit_exp `%`_sz{i#51825}(32)] +[visit_exp i#51825] +[visit_id i#51825] +[visit_exp (32)] +[visit_exp 32] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#51877 i#51884 memarg#117 memidx#197 numtype?#34 sx#588 sz#720 x +dims \ = ao, i#51877, i#51884, memarg#117, memidx#197, numtype?#34, sx#588, sz#720, x +[visit_exp `LOAD`_instr{`numtype?#34`, memidx#197, memarg#117}(`I64`_numtype, ?(`%_%`_loadop_{sz#720, sx#588, i#51877}(`%`_sz{i#51884}(32), `U`_sx)), x, ao)] +[visit_exp `numtype?#34`] +[visit_id numtype?#34] +[visit_exp memidx#197] +[visit_id memidx#197] +[visit_exp memarg#117] +[visit_id memarg#117] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#720, sx#588, i#51877}(`%`_sz{i#51884}(32), `U`_sx)), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#720, sx#588, i#51877}(`%`_sz{i#51884}(32), `U`_sx))] +[visit_exp `%_%`_loadop_{sz#720, sx#588, i#51877}(`%`_sz{i#51884}(32), `U`_sx)] +[visit_exp sz#720] +[visit_id sz#720] +[visit_exp sx#588] +[visit_id sx#588] +[visit_exp i#51877] +[visit_id i#51877] +[visit_exp (`%`_sz{i#51884}(32), `U`_sx)] +[visit_exp `%`_sz{i#51884}(32)] +[visit_exp i#51884] +[visit_id i#51884] +[visit_exp (32)] +[visit_exp 32] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao memarg#119 memidx#199 numtype?#35 x +dims \ = ao, memarg#119, memidx#199, numtype?#35, x +[visit_exp `STORE`_instr{`numtype?#35`, memidx#199, memarg#119}(`I32`_numtype, ?(), x, ao)] +[visit_exp `numtype?#35`] +[visit_id numtype?#35] +[visit_exp memidx#199] +[visit_id memidx#199] +[visit_exp memarg#119] +[visit_id memarg#119] +[visit_exp (`I32`_numtype, ?(), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao memarg#121 memidx#201 numtype?#36 x +dims \ = ao, memarg#121, memidx#201, numtype?#36, x +[visit_exp `STORE`_instr{`numtype?#36`, memidx#201, memarg#121}(`I64`_numtype, ?(), x, ao)] +[visit_exp `numtype?#36`] +[visit_id numtype?#36] +[visit_exp memidx#201] +[visit_id memidx#201] +[visit_exp memarg#121] +[visit_id memarg#121] +[visit_exp (`I64`_numtype, ?(), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao memarg#123 memidx#203 numtype?#37 x +dims \ = ao, memarg#123, memidx#203, numtype?#37, x +[visit_exp `STORE`_instr{`numtype?#37`, memidx#203, memarg#123}(`F32`_numtype, ?(), x, ao)] +[visit_exp `numtype?#37`] +[visit_id numtype?#37] +[visit_exp memidx#203] +[visit_id memidx#203] +[visit_exp memarg#123] +[visit_id memarg#123] +[visit_exp (`F32`_numtype, ?(), x, ao)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao memarg#125 memidx#205 numtype?#38 x +dims \ = ao, memarg#125, memidx#205, numtype?#38, x +[visit_exp `STORE`_instr{`numtype?#38`, memidx#205, memarg#125}(`F64`_numtype, ?(), x, ao)] +[visit_exp `numtype?#38`] +[visit_id numtype?#38] +[visit_exp memidx#205] +[visit_id memidx#205] +[visit_exp memarg#125] +[visit_id memarg#125] +[visit_exp (`F64`_numtype, ?(), x, ao)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#52055 i#52056 memarg#127 memidx#207 numtype?#39 sz#733 x +dims \ = ao, i#52055, i#52056, memarg#127, memidx#207, numtype?#39, sz#733, x +[visit_exp `STORE`_instr{`numtype?#39`, memidx#207, memarg#127}(`I32`_numtype, ?(`%`_storeop_{sz#733, i#52055}(`%`_sz{i#52056}(8))), x, ao)] +[visit_exp `numtype?#39`] +[visit_id numtype?#39] +[visit_exp memidx#207] +[visit_id memidx#207] +[visit_exp memarg#127] +[visit_id memarg#127] +[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#733, i#52055}(`%`_sz{i#52056}(8))), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#733, i#52055}(`%`_sz{i#52056}(8)))] +[visit_exp `%`_storeop_{sz#733, i#52055}(`%`_sz{i#52056}(8))] +[visit_exp sz#733] +[visit_id sz#733] +[visit_exp i#52055] +[visit_id i#52055] +[visit_exp (`%`_sz{i#52056}(8))] +[visit_exp `%`_sz{i#52056}(8)] +[visit_exp i#52056] +[visit_id i#52056] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#52123 i#52124 memarg#129 memidx#209 numtype?#40 sz#746 x +dims \ = ao, i#52123, i#52124, memarg#129, memidx#209, numtype?#40, sz#746, x +[visit_exp `STORE`_instr{`numtype?#40`, memidx#209, memarg#129}(`I32`_numtype, ?(`%`_storeop_{sz#746, i#52123}(`%`_sz{i#52124}(16))), x, ao)] +[visit_exp `numtype?#40`] +[visit_id numtype?#40] +[visit_exp memidx#209] +[visit_id memidx#209] +[visit_exp memarg#129] +[visit_id memarg#129] +[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#746, i#52123}(`%`_sz{i#52124}(16))), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#746, i#52123}(`%`_sz{i#52124}(16)))] +[visit_exp `%`_storeop_{sz#746, i#52123}(`%`_sz{i#52124}(16))] +[visit_exp sz#746] +[visit_id sz#746] +[visit_exp i#52123] +[visit_id i#52123] +[visit_exp (`%`_sz{i#52124}(16))] +[visit_exp `%`_sz{i#52124}(16)] +[visit_exp i#52124] +[visit_id i#52124] +[visit_exp (16)] +[visit_exp 16] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#52191 i#52192 memarg#131 memidx#211 numtype?#41 sz#759 x +dims \ = ao, i#52191, i#52192, memarg#131, memidx#211, numtype?#41, sz#759, x +[visit_exp `STORE`_instr{`numtype?#41`, memidx#211, memarg#131}(`I64`_numtype, ?(`%`_storeop_{sz#759, i#52191}(`%`_sz{i#52192}(8))), x, ao)] +[visit_exp `numtype?#41`] +[visit_id numtype?#41] +[visit_exp memidx#211] +[visit_id memidx#211] +[visit_exp memarg#131] +[visit_id memarg#131] +[visit_exp (`I64`_numtype, ?(`%`_storeop_{sz#759, i#52191}(`%`_sz{i#52192}(8))), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#759, i#52191}(`%`_sz{i#52192}(8)))] +[visit_exp `%`_storeop_{sz#759, i#52191}(`%`_sz{i#52192}(8))] +[visit_exp sz#759] +[visit_id sz#759] +[visit_exp i#52191] +[visit_id i#52191] +[visit_exp (`%`_sz{i#52192}(8))] +[visit_exp `%`_sz{i#52192}(8)] +[visit_exp i#52192] +[visit_id i#52192] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#52259 i#52260 memarg#133 memidx#213 numtype?#42 sz#772 x +dims \ = ao, i#52259, i#52260, memarg#133, memidx#213, numtype?#42, sz#772, x +[visit_exp `STORE`_instr{`numtype?#42`, memidx#213, memarg#133}(`I64`_numtype, ?(`%`_storeop_{sz#772, i#52259}(`%`_sz{i#52260}(16))), x, ao)] +[visit_exp `numtype?#42`] +[visit_id numtype?#42] +[visit_exp memidx#213] +[visit_id memidx#213] +[visit_exp memarg#133] +[visit_id memarg#133] +[visit_exp (`I64`_numtype, ?(`%`_storeop_{sz#772, i#52259}(`%`_sz{i#52260}(16))), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#772, i#52259}(`%`_sz{i#52260}(16)))] +[visit_exp `%`_storeop_{sz#772, i#52259}(`%`_sz{i#52260}(16))] +[visit_exp sz#772] +[visit_id sz#772] +[visit_exp i#52259] +[visit_id i#52259] +[visit_exp (`%`_sz{i#52260}(16))] +[visit_exp `%`_sz{i#52260}(16)] +[visit_exp i#52260] +[visit_id i#52260] +[visit_exp (16)] +[visit_exp 16] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#52327 i#52328 memarg#135 memidx#215 numtype?#43 sz#785 x +dims \ = ao, i#52327, i#52328, memarg#135, memidx#215, numtype?#43, sz#785, x +[visit_exp `STORE`_instr{`numtype?#43`, memidx#215, memarg#135}(`I64`_numtype, ?(`%`_storeop_{sz#785, i#52327}(`%`_sz{i#52328}(32))), x, ao)] +[visit_exp `numtype?#43`] +[visit_id numtype?#43] +[visit_exp memidx#215] +[visit_id memidx#215] +[visit_exp memarg#135] +[visit_id memarg#135] +[visit_exp (`I64`_numtype, ?(`%`_storeop_{sz#785, i#52327}(`%`_sz{i#52328}(32))), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#785, i#52327}(`%`_sz{i#52328}(32)))] +[visit_exp `%`_storeop_{sz#785, i#52327}(`%`_sz{i#52328}(32))] +[visit_exp sz#785] +[visit_id sz#785] +[visit_exp i#52327] +[visit_id i#52327] +[visit_exp (`%`_sz{i#52328}(32))] +[visit_exp `%`_sz{i#52328}(32)] +[visit_exp i#52328] +[visit_id i#52328] +[visit_exp (32)] +[visit_exp 32] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] memidx#217 x +dims \ = memidx#217, x +[visit_exp `MEMORY.SIZE`_instr{memidx#217}(x)] +[visit_exp memidx#217] +[visit_id memidx#217] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] memidx#219 x +dims \ = memidx#219, x +[visit_exp `MEMORY.GROW`_instr{memidx#219}(x)] +[visit_exp memidx#219] +[visit_id memidx#219] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] dataidx#47 i#52427 memidx#221 x y +dims \ = dataidx#47, i#52427, memidx#221, x, y +[visit_exp `MEMORY.INIT`_instr{memidx#221, dataidx#47}(x, y)] +[visit_exp memidx#221] +[visit_id memidx#221] +[visit_exp dataidx#47] +[visit_id dataidx#47] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp `%`_u32{i#52427}(8)] +[visit_exp i#52427] +[visit_id i#52427] +[visit_exp (8)] +[visit_exp 8] +[visit_exp y] +[visit_id y] not free +[visit_exp x] +[visit_id x] not free +[check_dims] dataidx#49 i#52514 x +dims \ = dataidx#49, i#52514, x +[visit_exp `DATA.DROP`_instr{dataidx#49}(x)] +[visit_exp dataidx#49] +[visit_id dataidx#49] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#52514}(9)] +[visit_exp i#52514] +[visit_id i#52514] +[visit_exp (9)] +[visit_exp 9] +[visit_exp x] +[visit_id x] not free +[check_dims] i#52570 memidx#223 x_1 x_2 +dims \ = i#52570, memidx#223, x_1, x_2 +[visit_exp `MEMORY.COPY`_instr{memidx#223}(x_1, x_2)] +[visit_exp memidx#223] +[visit_id memidx#223] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp `%`_u32{i#52570}(10)] +[visit_exp i#52570] +[visit_id i#52570] +[visit_exp (10)] +[visit_exp 10] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp x_2] +[visit_id x_2] not free +[check_dims] i#52657 memidx#226 x +dims \ = i#52657, memidx#226, x +[visit_exp `MEMORY.FILL`_instr{memidx#226}(x)] +[visit_exp memidx#226] +[visit_id memidx#226] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#52657}(11)] +[visit_exp i#52657] +[visit_id i#52657] +[visit_exp (11)] +[visit_exp 11] +[visit_exp x] +[visit_id x] not free +ps' = +[check_dims] +[check_dims] heaptype#1679 ht +dims \ = heaptype#1679, ht +[visit_exp `REF.NULL`_instr{heaptype#1679}(ht)] +[visit_exp heaptype#1679] +[visit_id heaptype#1679] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp ht] +[visit_id ht] not free +[check_dims] +dims \ = +[visit_exp `REF.IS_NULL`_instr] +[visit_exp ()] +[check_dims] funcidx#3167 x +dims \ = funcidx#3167, x +[visit_exp `REF.FUNC`_instr{funcidx#3167}(x)] +[visit_exp funcidx#3167] +[visit_id funcidx#3167] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] +dims \ = +[visit_exp `REF.EQ`_instr] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `REF.AS_NON_NULL`_instr] +[visit_exp ()] +[check_dims] heaptype#1691 ht i#52744 null?#1627 reftype#3969 +dims \ = heaptype#1691, ht, i#52744, null?#1627, reftype#3969 +[visit_exp `REF.TEST`_instr{reftype#3969}(`REF`_reftype{`null?#1627`, heaptype#1691}(?(), ht))] +[visit_exp reftype#3969] +[visit_id reftype#3969] +[visit_exp (`REF`_reftype{`null?#1627`, heaptype#1691}(?(), ht))] +[visit_exp `REF`_reftype{`null?#1627`, heaptype#1691}(?(), ht)] +[visit_exp `null?#1627`] +[visit_id null?#1627] +[visit_exp heaptype#1691] +[visit_id heaptype#1691] +[visit_exp (?(), ht)] +[visit_exp ?()] +[visit_exp ht] +[visit_id ht] +[visit_exp `%`_u32{i#52744}(20)] +[visit_exp i#52744] +[visit_id i#52744] +[visit_exp (20)] +[visit_exp 20] +[visit_exp ht] +[visit_id ht] not free +[check_dims] heaptype#1703 ht i#52769 null?#1639 reftype#3971 +dims \ = heaptype#1703, ht, i#52769, null?#1639, reftype#3971 +[visit_exp `REF.TEST`_instr{reftype#3971}(`REF`_reftype{`null?#1639`, heaptype#1703}(?(`NULL`_null), ht))] +[visit_exp reftype#3971] +[visit_id reftype#3971] +[visit_exp (`REF`_reftype{`null?#1639`, heaptype#1703}(?(`NULL`_null), ht))] +[visit_exp `REF`_reftype{`null?#1639`, heaptype#1703}(?(`NULL`_null), ht)] +[visit_exp `null?#1639`] +[visit_id null?#1639] +[visit_exp heaptype#1703] +[visit_id heaptype#1703] +[visit_exp (?(`NULL`_null), ht)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht] +[visit_id ht] +[visit_exp `%`_u32{i#52769}(21)] +[visit_exp i#52769] +[visit_id i#52769] +[visit_exp (21)] +[visit_exp 21] +[visit_exp ht] +[visit_id ht] not free +[check_dims] heaptype#1715 ht i#52794 null?#1651 reftype#3973 +dims \ = heaptype#1715, ht, i#52794, null?#1651, reftype#3973 +[visit_exp `REF.CAST`_instr{reftype#3973}(`REF`_reftype{`null?#1651`, heaptype#1715}(?(), ht))] +[visit_exp reftype#3973] +[visit_id reftype#3973] +[visit_exp (`REF`_reftype{`null?#1651`, heaptype#1715}(?(), ht))] +[visit_exp `REF`_reftype{`null?#1651`, heaptype#1715}(?(), ht)] +[visit_exp `null?#1651`] +[visit_id null?#1651] +[visit_exp heaptype#1715] +[visit_id heaptype#1715] +[visit_exp (?(), ht)] +[visit_exp ?()] +[visit_exp ht] +[visit_id ht] +[visit_exp `%`_u32{i#52794}(22)] +[visit_exp i#52794] +[visit_id i#52794] +[visit_exp (22)] +[visit_exp 22] +[visit_exp ht] +[visit_id ht] not free +[check_dims] heaptype#1727 ht i#52819 null?#1663 reftype#3975 +dims \ = heaptype#1727, ht, i#52819, null?#1663, reftype#3975 +[visit_exp `REF.CAST`_instr{reftype#3975}(`REF`_reftype{`null?#1663`, heaptype#1727}(?(`NULL`_null), ht))] +[visit_exp reftype#3975] +[visit_id reftype#3975] +[visit_exp (`REF`_reftype{`null?#1663`, heaptype#1727}(?(`NULL`_null), ht))] +[visit_exp `REF`_reftype{`null?#1663`, heaptype#1727}(?(`NULL`_null), ht)] +[visit_exp `null?#1663`] +[visit_id null?#1663] +[visit_exp heaptype#1727] +[visit_id heaptype#1727] +[visit_exp (?(`NULL`_null), ht)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht] +[visit_id ht] +[visit_exp `%`_u32{i#52819}(23)] +[visit_exp i#52819] +[visit_id i#52819] +[visit_exp (23)] +[visit_exp 23] +[visit_exp ht] +[visit_id ht] not free +ps' = +[check_dims] +[check_dims] i#52844 typeidx#1944 x +dims \ = i#52844, typeidx#1944, x +[visit_exp `STRUCT.NEW`_instr{typeidx#1944}(x)] +[visit_exp typeidx#1944] +[visit_id typeidx#1944] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#52844}(0)] +[visit_exp i#52844] +[visit_id i#52844] +[visit_exp (0)] +[visit_exp 0] +[visit_exp x] +[visit_id x] not free +[check_dims] i#52900 typeidx#1946 x +dims \ = i#52900, typeidx#1946, x +[visit_exp `STRUCT.NEW_DEFAULT`_instr{typeidx#1946}(x)] +[visit_exp typeidx#1946] +[visit_id typeidx#1946] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#52900}(1)] +[visit_exp i#52900] +[visit_id i#52900] +[visit_exp (1)] +[visit_exp 1] +[visit_exp x] +[visit_id x] not free +[check_dims] i i#52956 sx?#31 typeidx#1948 u32#37 x +dims \ = i, i#52956, sx?#31, typeidx#1948, u32#37, x +[visit_exp `STRUCT.GET`_instr{`sx?#31`, typeidx#1948, u32#37}(?(), x, i)] +[visit_exp `sx?#31`] +[visit_id sx?#31] +[visit_exp typeidx#1948] +[visit_id typeidx#1948] +[visit_exp u32#37] +[visit_id u32#37] +[visit_exp (?(), x, i)] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp `%`_u32{i#52956}(2)] +[visit_exp i#52956] +[visit_id i#52956] +[visit_exp (2)] +[visit_exp 2] +[visit_exp x] +[visit_id x] not free +[visit_exp i] +[visit_id i] not free +[check_dims] i i#53041 sx?#33 typeidx#1950 u32#39 x +dims \ = i, i#53041, sx?#33, typeidx#1950, u32#39, x +[visit_exp `STRUCT.GET`_instr{`sx?#33`, typeidx#1950, u32#39}(?(`S`_sx), x, i)] +[visit_exp `sx?#33`] +[visit_id sx?#33] +[visit_exp typeidx#1950] +[visit_id typeidx#1950] +[visit_exp u32#39] +[visit_id u32#39] +[visit_exp (?(`S`_sx), x, i)] +[visit_exp ?(`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp `%`_u32{i#53041}(3)] +[visit_exp i#53041] +[visit_id i#53041] +[visit_exp (3)] +[visit_exp 3] +[visit_exp x] +[visit_id x] not free +[visit_exp i] +[visit_id i] not free +[check_dims] i i#53148 sx?#35 typeidx#1952 u32#41 x +dims \ = i, i#53148, sx?#35, typeidx#1952, u32#41, x +[visit_exp `STRUCT.GET`_instr{`sx?#35`, typeidx#1952, u32#41}(?(`U`_sx), x, i)] +[visit_exp `sx?#35`] +[visit_id sx?#35] +[visit_exp typeidx#1952] +[visit_id typeidx#1952] +[visit_exp u32#41] +[visit_id u32#41] +[visit_exp (?(`U`_sx), x, i)] +[visit_exp ?(`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp `%`_u32{i#53148}(4)] +[visit_exp i#53148] +[visit_id i#53148] +[visit_exp (4)] +[visit_exp 4] +[visit_exp x] +[visit_id x] not free +[visit_exp i] +[visit_id i] not free +[check_dims] i i#53255 typeidx#1954 u32#43 x +dims \ = i, i#53255, typeidx#1954, u32#43, x +[visit_exp `STRUCT.SET`_instr{typeidx#1954, u32#43}(x, i)] +[visit_exp typeidx#1954] +[visit_id typeidx#1954] +[visit_exp u32#43] +[visit_id u32#43] +[visit_exp (x, i)] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp `%`_u32{i#53255}(5)] +[visit_exp i#53255] +[visit_id i#53255] +[visit_exp (5)] +[visit_exp 5] +[visit_exp x] +[visit_id x] not free +[visit_exp i] +[visit_id i] not free +ps' = +[check_dims] +[check_dims] i#53340 typeidx#1956 x +dims \ = i#53340, typeidx#1956, x +[visit_exp `ARRAY.NEW`_instr{typeidx#1956}(x)] +[visit_exp typeidx#1956] +[visit_id typeidx#1956] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#53340}(6)] +[visit_exp i#53340] +[visit_id i#53340] +[visit_exp (6)] +[visit_exp 6] +[visit_exp x] +[visit_id x] not free +[check_dims] i#53396 typeidx#1958 x +dims \ = i#53396, typeidx#1958, x +[visit_exp `ARRAY.NEW_DEFAULT`_instr{typeidx#1958}(x)] +[visit_exp typeidx#1958] +[visit_id typeidx#1958] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#53396}(7)] +[visit_exp i#53396] +[visit_id i#53396] +[visit_exp (7)] +[visit_exp 7] +[visit_exp x] +[visit_id x] not free +[check_dims] i#53452 i#53496 i#53536 n typeidx#1960 u32#45 x +dims \ = i#53452, i#53496, i#53536, n, typeidx#1960, u32#45, x +[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#1960, u32#45}(x, `%`_u32{i#53536}(n))] +[visit_exp typeidx#1960] +[visit_id typeidx#1960] +[visit_exp u32#45] +[visit_id u32#45] +[visit_exp (x, `%`_u32{i#53536}(n))] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#53536}(n)] +[visit_exp i#53536] +[visit_id i#53536] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `%`_u32{i#53452}(8)] +[visit_exp i#53452] +[visit_id i#53452] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x] +[visit_id x] not free +[visit_exp `%`_u32{i#53496}(n)] +[visit_exp i#53496] +[visit_id i#53496] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[check_dims] dataidx#51 i#53559 typeidx#1962 x y +dims \ = dataidx#51, i#53559, typeidx#1962, x, y +[visit_exp `ARRAY.NEW_DATA`_instr{typeidx#1962, dataidx#51}(x, y)] +[visit_exp typeidx#1962] +[visit_id typeidx#1962] +[visit_exp dataidx#51] +[visit_id dataidx#51] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp `%`_u32{i#53559}(9)] +[visit_exp i#53559] +[visit_id i#53559] +[visit_exp (9)] +[visit_exp 9] +[visit_exp x] +[visit_id x] not free +[visit_exp y] +[visit_id y] not free +[check_dims] elemidx#53 i#53646 typeidx#1964 x y +dims \ = elemidx#53, i#53646, typeidx#1964, x, y +[visit_exp `ARRAY.NEW_ELEM`_instr{typeidx#1964, elemidx#53}(x, y)] +[visit_exp typeidx#1964] +[visit_id typeidx#1964] +[visit_exp elemidx#53] +[visit_id elemidx#53] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp `%`_u32{i#53646}(10)] +[visit_exp i#53646] +[visit_id i#53646] +[visit_exp (10)] +[visit_exp 10] +[visit_exp x] +[visit_id x] not free +[visit_exp y] +[visit_id y] not free +[check_dims] i#53733 sx?#37 typeidx#1966 x +dims \ = i#53733, sx?#37, typeidx#1966, x +[visit_exp `ARRAY.GET`_instr{`sx?#37`, typeidx#1966}(?(), x)] +[visit_exp `sx?#37`] +[visit_id sx?#37] +[visit_exp typeidx#1966] +[visit_id typeidx#1966] +[visit_exp (?(), x)] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#53733}(11)] +[visit_exp i#53733] +[visit_id i#53733] +[visit_exp (11)] +[visit_exp 11] +[visit_exp x] +[visit_id x] not free +[check_dims] i#53789 sx?#39 typeidx#1968 x +dims \ = i#53789, sx?#39, typeidx#1968, x +[visit_exp `ARRAY.GET`_instr{`sx?#39`, typeidx#1968}(?(`S`_sx), x)] +[visit_exp `sx?#39`] +[visit_id sx?#39] +[visit_exp typeidx#1968] +[visit_id typeidx#1968] +[visit_exp (?(`S`_sx), x)] +[visit_exp ?(`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#53789}(12)] +[visit_exp i#53789] +[visit_id i#53789] +[visit_exp (12)] +[visit_exp 12] +[visit_exp x] +[visit_id x] not free +[check_dims] i#53889 sx?#41 typeidx#1970 x +dims \ = i#53889, sx?#41, typeidx#1970, x +[visit_exp `ARRAY.GET`_instr{`sx?#41`, typeidx#1970}(?(`U`_sx), x)] +[visit_exp `sx?#41`] +[visit_id sx?#41] +[visit_exp typeidx#1970] +[visit_id typeidx#1970] +[visit_exp (?(`U`_sx), x)] +[visit_exp ?(`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#53889}(13)] +[visit_exp i#53889] +[visit_id i#53889] +[visit_exp (13)] +[visit_exp 13] +[visit_exp x] +[visit_id x] not free +[check_dims] i#53989 typeidx#1972 x +dims \ = i#53989, typeidx#1972, x +[visit_exp `ARRAY.SET`_instr{typeidx#1972}(x)] +[visit_exp typeidx#1972] +[visit_id typeidx#1972] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#53989}(14)] +[visit_exp i#53989] +[visit_id i#53989] +[visit_exp (14)] +[visit_exp 14] +[visit_exp x] +[visit_id x] not free +[check_dims] i#54045 +dims \ = i#54045 +[visit_exp `ARRAY.LEN`_instr] +[visit_exp ()] +[visit_exp `%`_u32{i#54045}(15)] +[visit_exp i#54045] +[visit_id i#54045] +[visit_exp (15)] +[visit_exp 15] +[check_dims] i#54070 typeidx#1974 x +dims \ = i#54070, typeidx#1974, x +[visit_exp `ARRAY.FILL`_instr{typeidx#1974}(x)] +[visit_exp typeidx#1974] +[visit_id typeidx#1974] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#54070}(16)] +[visit_exp i#54070] +[visit_id i#54070] +[visit_exp (16)] +[visit_exp 16] +[visit_exp x] +[visit_id x] not free +[check_dims] i#54126 typeidx#1976 x_1 x_2 +dims \ = i#54126, typeidx#1976, x_1, x_2 +[visit_exp `ARRAY.COPY`_instr{typeidx#1976}(x_1, x_2)] +[visit_exp typeidx#1976] +[visit_id typeidx#1976] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp `%`_u32{i#54126}(17)] +[visit_exp i#54126] +[visit_id i#54126] +[visit_exp (17)] +[visit_exp 17] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp x_2] +[visit_id x_2] not free +[check_dims] dataidx#53 i#54213 typeidx#1979 x y +dims \ = dataidx#53, i#54213, typeidx#1979, x, y +[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1979, dataidx#53}(x, y)] +[visit_exp typeidx#1979] +[visit_id typeidx#1979] +[visit_exp dataidx#53] +[visit_id dataidx#53] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp `%`_u32{i#54213}(18)] +[visit_exp i#54213] +[visit_id i#54213] +[visit_exp (18)] +[visit_exp 18] +[visit_exp x] +[visit_id x] not free +[visit_exp y] +[visit_id y] not free +[check_dims] elemidx#55 i#54300 typeidx#1981 x y +dims \ = elemidx#55, i#54300, typeidx#1981, x, y +[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1981, elemidx#55}(x, y)] +[visit_exp typeidx#1981] +[visit_id typeidx#1981] +[visit_exp elemidx#55] +[visit_id elemidx#55] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp `%`_u32{i#54300}(19)] +[visit_exp i#54300] +[visit_id i#54300] +[visit_exp (19)] +[visit_exp 19] +[visit_exp x] +[visit_id x] not free +[visit_exp y] +[visit_id y] not free +ps' = +[check_dims] +[check_dims] i#54387 +dims \ = i#54387 +[visit_exp `ANY.CONVERT_EXTERN`_instr] +[visit_exp ()] +[visit_exp `%`_u32{i#54387}(26)] +[visit_exp i#54387] +[visit_id i#54387] +[visit_exp (26)] +[visit_exp 26] +[check_dims] i#54412 +dims \ = i#54412 +[visit_exp `EXTERN.CONVERT_ANY`_instr] +[visit_exp ()] +[visit_exp `%`_u32{i#54412}(27)] +[visit_exp i#54412] +[visit_id i#54412] +[visit_exp (27)] +[visit_exp 27] +ps' = +[check_dims] +[check_dims] i#54437 +dims \ = i#54437 +[visit_exp `REF.I31`_instr] +[visit_exp ()] +[visit_exp `%`_u32{i#54437}(28)] +[visit_exp i#54437] +[visit_id i#54437] +[visit_exp (28)] +[visit_exp 28] +[check_dims] i#54462 sx#590 +dims \ = i#54462, sx#590 +[visit_exp `I31.GET`_instr{sx#590}(`S`_sx)] +[visit_exp sx#590] +[visit_id sx#590] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#54462}(29)] +[visit_exp i#54462] +[visit_id i#54462] +[visit_exp (29)] +[visit_exp 29] +[check_dims] i#54487 sx#592 +dims \ = i#54487, sx#592 +[visit_exp `I31.GET`_instr{sx#592}(`U`_sx)] +[visit_exp sx#592] +[visit_id sx#592] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#54487}(30)] +[visit_exp i#54487] +[visit_id i#54487] +[visit_exp (30)] +[visit_exp 30] +ps' = +[check_dims] +[check_dims] i#54514 i#54540 n numtype#654 +dims \ = i#54514, i#54540, n, numtype#654 +[visit_exp `CONST`_instr{numtype#654}(`I32`_numtype, `%`_num_{i#54540}(n))] +[visit_exp numtype#654] +[visit_id numtype#654] +[visit_exp (`I32`_numtype, `%`_num_{i#54540}(n))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#54540}(n)] +[visit_exp i#54540] +[visit_id i#54540] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `%`_u32{i#54514}(n)] +[visit_exp i#54514] +[visit_id i#54514] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[check_dims] i#54565 i#54591 n numtype#656 +dims \ = i#54565, i#54591, n, numtype#656 +[visit_exp `CONST`_instr{numtype#656}(`I64`_numtype, `%`_num_{i#54591}(n))] +[visit_exp numtype#656] +[visit_id numtype#656] +[visit_exp (`I64`_numtype, `%`_num_{i#54591}(n))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `%`_num_{i#54591}(n)] +[visit_exp i#54591] +[visit_id i#54591] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `%`_u64{i#54565}(n)] +[visit_exp i#54565] +[visit_id i#54565] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[check_dims] numtype#658 p +dims \ = numtype#658, p +[visit_exp `CONST`_instr{numtype#658}(`F32`_numtype, p)] +[visit_exp numtype#658] +[visit_id numtype#658] +[visit_exp (`F32`_numtype, p)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp p] +[visit_id p] +[visit_exp p] +[visit_id p] not free +[check_dims] numtype#660 p +dims \ = numtype#660, p +[visit_exp `CONST`_instr{numtype#660}(`F64`_numtype, p)] +[visit_exp numtype#660] +[visit_id numtype#660] +[visit_exp (`F64`_numtype, p)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp p] +[visit_id p] +[visit_exp p] +[visit_id p] not free +ps' = +[check_dims] +[check_dims] numtype#662 +dims \ = numtype#662 +[visit_exp `TESTOP`_instr{numtype#662}(`I32`_numtype, `EQZ`_testop_)] +[visit_exp numtype#662] +[visit_id numtype#662] +[visit_exp (`I32`_numtype, `EQZ`_testop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `EQZ`_testop_] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] numtype#664 +dims \ = numtype#664 +[visit_exp `RELOP`_instr{numtype#664}(`I32`_numtype, `EQ`_relop_)] +[visit_exp numtype#664] +[visit_id numtype#664] +[visit_exp (`I32`_numtype, `EQ`_relop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `EQ`_relop_] +[visit_exp ()] +[check_dims] numtype#666 +dims \ = numtype#666 +[visit_exp `RELOP`_instr{numtype#666}(`I32`_numtype, `NE`_relop_)] +[visit_exp numtype#666] +[visit_id numtype#666] +[visit_exp (`I32`_numtype, `NE`_relop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `NE`_relop_] +[visit_exp ()] +[check_dims] numtype#668 sx#836 +dims \ = numtype#668, sx#836 +[visit_exp `RELOP`_instr{numtype#668}(`I32`_numtype, `LT`_relop_{sx#836}(`S`_sx))] +[visit_exp numtype#668] +[visit_id numtype#668] +[visit_exp (`I32`_numtype, `LT`_relop_{sx#836}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `LT`_relop_{sx#836}(`S`_sx)] +[visit_exp sx#836] +[visit_id sx#836] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#670 sx#960 +dims \ = numtype#670, sx#960 +[visit_exp `RELOP`_instr{numtype#670}(`I32`_numtype, `LT`_relop_{sx#960}(`U`_sx))] +[visit_exp numtype#670] +[visit_id numtype#670] +[visit_exp (`I32`_numtype, `LT`_relop_{sx#960}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `LT`_relop_{sx#960}(`U`_sx)] +[visit_exp sx#960] +[visit_id sx#960] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype#672 sx#1084 +dims \ = numtype#672, sx#1084 +[visit_exp `RELOP`_instr{numtype#672}(`I32`_numtype, `GT`_relop_{sx#1084}(`S`_sx))] +[visit_exp numtype#672] +[visit_id numtype#672] +[visit_exp (`I32`_numtype, `GT`_relop_{sx#1084}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `GT`_relop_{sx#1084}(`S`_sx)] +[visit_exp sx#1084] +[visit_id sx#1084] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#674 sx#1208 +dims \ = numtype#674, sx#1208 +[visit_exp `RELOP`_instr{numtype#674}(`I32`_numtype, `GT`_relop_{sx#1208}(`U`_sx))] +[visit_exp numtype#674] +[visit_id numtype#674] +[visit_exp (`I32`_numtype, `GT`_relop_{sx#1208}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `GT`_relop_{sx#1208}(`U`_sx)] +[visit_exp sx#1208] +[visit_id sx#1208] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype#676 sx#1332 +dims \ = numtype#676, sx#1332 +[visit_exp `RELOP`_instr{numtype#676}(`I32`_numtype, `LE`_relop_{sx#1332}(`S`_sx))] +[visit_exp numtype#676] +[visit_id numtype#676] +[visit_exp (`I32`_numtype, `LE`_relop_{sx#1332}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `LE`_relop_{sx#1332}(`S`_sx)] +[visit_exp sx#1332] +[visit_id sx#1332] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#678 sx#1456 +dims \ = numtype#678, sx#1456 +[visit_exp `RELOP`_instr{numtype#678}(`I32`_numtype, `LE`_relop_{sx#1456}(`U`_sx))] +[visit_exp numtype#678] +[visit_id numtype#678] +[visit_exp (`I32`_numtype, `LE`_relop_{sx#1456}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `LE`_relop_{sx#1456}(`U`_sx)] +[visit_exp sx#1456] +[visit_id sx#1456] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype#680 sx#1580 +dims \ = numtype#680, sx#1580 +[visit_exp `RELOP`_instr{numtype#680}(`I32`_numtype, `GE`_relop_{sx#1580}(`S`_sx))] +[visit_exp numtype#680] +[visit_id numtype#680] +[visit_exp (`I32`_numtype, `GE`_relop_{sx#1580}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `GE`_relop_{sx#1580}(`S`_sx)] +[visit_exp sx#1580] +[visit_id sx#1580] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#682 sx#1704 +dims \ = numtype#682, sx#1704 +[visit_exp `RELOP`_instr{numtype#682}(`I32`_numtype, `GE`_relop_{sx#1704}(`U`_sx))] +[visit_exp numtype#682] +[visit_id numtype#682] +[visit_exp (`I32`_numtype, `GE`_relop_{sx#1704}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `GE`_relop_{sx#1704}(`U`_sx)] +[visit_exp sx#1704] +[visit_id sx#1704] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] numtype#684 +dims \ = numtype#684 +[visit_exp `TESTOP`_instr{numtype#684}(`I64`_numtype, `EQZ`_testop_)] +[visit_exp numtype#684] +[visit_id numtype#684] +[visit_exp (`I64`_numtype, `EQZ`_testop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `EQZ`_testop_] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] numtype#686 +dims \ = numtype#686 +[visit_exp `RELOP`_instr{numtype#686}(`I64`_numtype, `EQ`_relop_)] +[visit_exp numtype#686] +[visit_id numtype#686] +[visit_exp (`I64`_numtype, `EQ`_relop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `EQ`_relop_] +[visit_exp ()] +[check_dims] numtype#688 +dims \ = numtype#688 +[visit_exp `RELOP`_instr{numtype#688}(`I64`_numtype, `NE`_relop_)] +[visit_exp numtype#688] +[visit_id numtype#688] +[visit_exp (`I64`_numtype, `NE`_relop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `NE`_relop_] +[visit_exp ()] +[check_dims] numtype#690 sx#1948 +dims \ = numtype#690, sx#1948 +[visit_exp `RELOP`_instr{numtype#690}(`I64`_numtype, `LT`_relop_{sx#1948}(`S`_sx))] +[visit_exp numtype#690] +[visit_id numtype#690] +[visit_exp (`I64`_numtype, `LT`_relop_{sx#1948}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `LT`_relop_{sx#1948}(`S`_sx)] +[visit_exp sx#1948] +[visit_id sx#1948] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#692 sx#2072 +dims \ = numtype#692, sx#2072 +[visit_exp `RELOP`_instr{numtype#692}(`I64`_numtype, `LT`_relop_{sx#2072}(`U`_sx))] +[visit_exp numtype#692] +[visit_id numtype#692] +[visit_exp (`I64`_numtype, `LT`_relop_{sx#2072}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `LT`_relop_{sx#2072}(`U`_sx)] +[visit_exp sx#2072] +[visit_id sx#2072] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype#694 sx#2196 +dims \ = numtype#694, sx#2196 +[visit_exp `RELOP`_instr{numtype#694}(`I64`_numtype, `GT`_relop_{sx#2196}(`S`_sx))] +[visit_exp numtype#694] +[visit_id numtype#694] +[visit_exp (`I64`_numtype, `GT`_relop_{sx#2196}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `GT`_relop_{sx#2196}(`S`_sx)] +[visit_exp sx#2196] +[visit_id sx#2196] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#696 sx#2320 +dims \ = numtype#696, sx#2320 +[visit_exp `RELOP`_instr{numtype#696}(`I64`_numtype, `GT`_relop_{sx#2320}(`U`_sx))] +[visit_exp numtype#696] +[visit_id numtype#696] +[visit_exp (`I64`_numtype, `GT`_relop_{sx#2320}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `GT`_relop_{sx#2320}(`U`_sx)] +[visit_exp sx#2320] +[visit_id sx#2320] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype#698 sx#2444 +dims \ = numtype#698, sx#2444 +[visit_exp `RELOP`_instr{numtype#698}(`I64`_numtype, `LE`_relop_{sx#2444}(`S`_sx))] +[visit_exp numtype#698] +[visit_id numtype#698] +[visit_exp (`I64`_numtype, `LE`_relop_{sx#2444}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `LE`_relop_{sx#2444}(`S`_sx)] +[visit_exp sx#2444] +[visit_id sx#2444] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#700 sx#2568 +dims \ = numtype#700, sx#2568 +[visit_exp `RELOP`_instr{numtype#700}(`I64`_numtype, `LE`_relop_{sx#2568}(`U`_sx))] +[visit_exp numtype#700] +[visit_id numtype#700] +[visit_exp (`I64`_numtype, `LE`_relop_{sx#2568}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `LE`_relop_{sx#2568}(`U`_sx)] +[visit_exp sx#2568] +[visit_id sx#2568] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype#702 sx#2692 +dims \ = numtype#702, sx#2692 +[visit_exp `RELOP`_instr{numtype#702}(`I64`_numtype, `GE`_relop_{sx#2692}(`S`_sx))] +[visit_exp numtype#702] +[visit_id numtype#702] +[visit_exp (`I64`_numtype, `GE`_relop_{sx#2692}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `GE`_relop_{sx#2692}(`S`_sx)] +[visit_exp sx#2692] +[visit_id sx#2692] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#704 sx#2816 +dims \ = numtype#704, sx#2816 +[visit_exp `RELOP`_instr{numtype#704}(`I64`_numtype, `GE`_relop_{sx#2816}(`U`_sx))] +[visit_exp numtype#704] +[visit_id numtype#704] +[visit_exp (`I64`_numtype, `GE`_relop_{sx#2816}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `GE`_relop_{sx#2816}(`U`_sx)] +[visit_exp sx#2816] +[visit_id sx#2816] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] numtype#706 +dims \ = numtype#706 +[visit_exp `RELOP`_instr{numtype#706}(`F32`_numtype, `EQ`_relop_)] +[visit_exp numtype#706] +[visit_id numtype#706] +[visit_exp (`F32`_numtype, `EQ`_relop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `EQ`_relop_] +[visit_exp ()] +[check_dims] numtype#708 +dims \ = numtype#708 +[visit_exp `RELOP`_instr{numtype#708}(`F32`_numtype, `NE`_relop_)] +[visit_exp numtype#708] +[visit_id numtype#708] +[visit_exp (`F32`_numtype, `NE`_relop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `NE`_relop_] +[visit_exp ()] +[check_dims] numtype#710 +dims \ = numtype#710 +[visit_exp `RELOP`_instr{numtype#710}(`F32`_numtype, `LT`_relop_)] +[visit_exp numtype#710] +[visit_id numtype#710] +[visit_exp (`F32`_numtype, `LT`_relop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `LT`_relop_] +[visit_exp ()] +[check_dims] numtype#712 +dims \ = numtype#712 +[visit_exp `RELOP`_instr{numtype#712}(`F32`_numtype, `GT`_relop_)] +[visit_exp numtype#712] +[visit_id numtype#712] +[visit_exp (`F32`_numtype, `GT`_relop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `GT`_relop_] +[visit_exp ()] +[check_dims] numtype#714 +dims \ = numtype#714 +[visit_exp `RELOP`_instr{numtype#714}(`F32`_numtype, `LE`_relop_)] +[visit_exp numtype#714] +[visit_id numtype#714] +[visit_exp (`F32`_numtype, `LE`_relop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `LE`_relop_] +[visit_exp ()] +[check_dims] numtype#716 +dims \ = numtype#716 +[visit_exp `RELOP`_instr{numtype#716}(`F32`_numtype, `GE`_relop_)] +[visit_exp numtype#716] +[visit_id numtype#716] +[visit_exp (`F32`_numtype, `GE`_relop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `GE`_relop_] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] numtype#718 +dims \ = numtype#718 +[visit_exp `RELOP`_instr{numtype#718}(`F64`_numtype, `EQ`_relop_)] +[visit_exp numtype#718] +[visit_id numtype#718] +[visit_exp (`F64`_numtype, `EQ`_relop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `EQ`_relop_] +[visit_exp ()] +[check_dims] numtype#720 +dims \ = numtype#720 +[visit_exp `RELOP`_instr{numtype#720}(`F64`_numtype, `NE`_relop_)] +[visit_exp numtype#720] +[visit_id numtype#720] +[visit_exp (`F64`_numtype, `NE`_relop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `NE`_relop_] +[visit_exp ()] +[check_dims] numtype#722 +dims \ = numtype#722 +[visit_exp `RELOP`_instr{numtype#722}(`F64`_numtype, `LT`_relop_)] +[visit_exp numtype#722] +[visit_id numtype#722] +[visit_exp (`F64`_numtype, `LT`_relop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `LT`_relop_] +[visit_exp ()] +[check_dims] numtype#724 +dims \ = numtype#724 +[visit_exp `RELOP`_instr{numtype#724}(`F64`_numtype, `GT`_relop_)] +[visit_exp numtype#724] +[visit_id numtype#724] +[visit_exp (`F64`_numtype, `GT`_relop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `GT`_relop_] +[visit_exp ()] +[check_dims] numtype#726 +dims \ = numtype#726 +[visit_exp `RELOP`_instr{numtype#726}(`F64`_numtype, `LE`_relop_)] +[visit_exp numtype#726] +[visit_id numtype#726] +[visit_exp (`F64`_numtype, `LE`_relop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `LE`_relop_] +[visit_exp ()] +[check_dims] numtype#728 +dims \ = numtype#728 +[visit_exp `RELOP`_instr{numtype#728}(`F64`_numtype, `GE`_relop_)] +[visit_exp numtype#728] +[visit_id numtype#728] +[visit_exp (`F64`_numtype, `GE`_relop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `GE`_relop_] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] numtype#730 +dims \ = numtype#730 +[visit_exp `UNOP`_instr{numtype#730}(`I32`_numtype, `CLZ`_unop_)] +[visit_exp numtype#730] +[visit_id numtype#730] +[visit_exp (`I32`_numtype, `CLZ`_unop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `CLZ`_unop_] +[visit_exp ()] +[check_dims] numtype#732 +dims \ = numtype#732 +[visit_exp `UNOP`_instr{numtype#732}(`I32`_numtype, `CTZ`_unop_)] +[visit_exp numtype#732] +[visit_id numtype#732] +[visit_exp (`I32`_numtype, `CTZ`_unop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `CTZ`_unop_] +[visit_exp ()] +[check_dims] numtype#734 +dims \ = numtype#734 +[visit_exp `UNOP`_instr{numtype#734}(`I32`_numtype, `POPCNT`_unop_)] +[visit_exp numtype#734] +[visit_id numtype#734] +[visit_exp (`I32`_numtype, `POPCNT`_unop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `POPCNT`_unop_] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] numtype#736 +dims \ = numtype#736 +[visit_exp `BINOP`_instr{numtype#736}(`I32`_numtype, `ADD`_binop_)] +[visit_exp numtype#736] +[visit_id numtype#736] +[visit_exp (`I32`_numtype, `ADD`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `ADD`_binop_] +[visit_exp ()] +[check_dims] numtype#738 +dims \ = numtype#738 +[visit_exp `BINOP`_instr{numtype#738}(`I32`_numtype, `SUB`_binop_)] +[visit_exp numtype#738] +[visit_id numtype#738] +[visit_exp (`I32`_numtype, `SUB`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `SUB`_binop_] +[visit_exp ()] +[check_dims] numtype#740 +dims \ = numtype#740 +[visit_exp `BINOP`_instr{numtype#740}(`I32`_numtype, `MUL`_binop_)] +[visit_exp numtype#740] +[visit_id numtype#740] +[visit_exp (`I32`_numtype, `MUL`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `MUL`_binop_] +[visit_exp ()] +[check_dims] numtype#742 sx#3045 +dims \ = numtype#742, sx#3045 +[visit_exp `BINOP`_instr{numtype#742}(`I32`_numtype, `DIV`_binop_{sx#3045}(`S`_sx))] +[visit_exp numtype#742] +[visit_id numtype#742] +[visit_exp (`I32`_numtype, `DIV`_binop_{sx#3045}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `DIV`_binop_{sx#3045}(`S`_sx)] +[visit_exp sx#3045] +[visit_id sx#3045] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#744 sx#3139 +dims \ = numtype#744, sx#3139 +[visit_exp `BINOP`_instr{numtype#744}(`I32`_numtype, `DIV`_binop_{sx#3139}(`U`_sx))] +[visit_exp numtype#744] +[visit_id numtype#744] +[visit_exp (`I32`_numtype, `DIV`_binop_{sx#3139}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `DIV`_binop_{sx#3139}(`U`_sx)] +[visit_exp sx#3139] +[visit_id sx#3139] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype#746 sx#3233 +dims \ = numtype#746, sx#3233 +[visit_exp `BINOP`_instr{numtype#746}(`I32`_numtype, `REM`_binop_{sx#3233}(`S`_sx))] +[visit_exp numtype#746] +[visit_id numtype#746] +[visit_exp (`I32`_numtype, `REM`_binop_{sx#3233}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `REM`_binop_{sx#3233}(`S`_sx)] +[visit_exp sx#3233] +[visit_id sx#3233] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#748 sx#3327 +dims \ = numtype#748, sx#3327 +[visit_exp `BINOP`_instr{numtype#748}(`I32`_numtype, `REM`_binop_{sx#3327}(`U`_sx))] +[visit_exp numtype#748] +[visit_id numtype#748] +[visit_exp (`I32`_numtype, `REM`_binop_{sx#3327}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `REM`_binop_{sx#3327}(`U`_sx)] +[visit_exp sx#3327] +[visit_id sx#3327] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype#750 +dims \ = numtype#750 +[visit_exp `BINOP`_instr{numtype#750}(`I32`_numtype, `AND`_binop_)] +[visit_exp numtype#750] +[visit_id numtype#750] +[visit_exp (`I32`_numtype, `AND`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `AND`_binop_] +[visit_exp ()] +[check_dims] numtype#752 +dims \ = numtype#752 +[visit_exp `BINOP`_instr{numtype#752}(`I32`_numtype, `OR`_binop_)] +[visit_exp numtype#752] +[visit_id numtype#752] +[visit_exp (`I32`_numtype, `OR`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `OR`_binop_] +[visit_exp ()] +[check_dims] numtype#754 +dims \ = numtype#754 +[visit_exp `BINOP`_instr{numtype#754}(`I32`_numtype, `XOR`_binop_)] +[visit_exp numtype#754] +[visit_id numtype#754] +[visit_exp (`I32`_numtype, `XOR`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `XOR`_binop_] +[visit_exp ()] +[check_dims] numtype#756 +dims \ = numtype#756 +[visit_exp `BINOP`_instr{numtype#756}(`I32`_numtype, `SHL`_binop_)] +[visit_exp numtype#756] +[visit_id numtype#756] +[visit_exp (`I32`_numtype, `SHL`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `SHL`_binop_] +[visit_exp ()] +[check_dims] numtype#758 sx#3601 +dims \ = numtype#758, sx#3601 +[visit_exp `BINOP`_instr{numtype#758}(`I32`_numtype, `SHR`_binop_{sx#3601}(`S`_sx))] +[visit_exp numtype#758] +[visit_id numtype#758] +[visit_exp (`I32`_numtype, `SHR`_binop_{sx#3601}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `SHR`_binop_{sx#3601}(`S`_sx)] +[visit_exp sx#3601] +[visit_id sx#3601] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#760 sx#3695 +dims \ = numtype#760, sx#3695 +[visit_exp `BINOP`_instr{numtype#760}(`I32`_numtype, `SHR`_binop_{sx#3695}(`U`_sx))] +[visit_exp numtype#760] +[visit_id numtype#760] +[visit_exp (`I32`_numtype, `SHR`_binop_{sx#3695}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `SHR`_binop_{sx#3695}(`U`_sx)] +[visit_exp sx#3695] +[visit_id sx#3695] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype#762 +dims \ = numtype#762 +[visit_exp `BINOP`_instr{numtype#762}(`I32`_numtype, `ROTL`_binop_)] +[visit_exp numtype#762] +[visit_id numtype#762] +[visit_exp (`I32`_numtype, `ROTL`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `ROTL`_binop_] +[visit_exp ()] +[check_dims] numtype#764 +dims \ = numtype#764 +[visit_exp `BINOP`_instr{numtype#764}(`I32`_numtype, `ROTR`_binop_)] +[visit_exp numtype#764] +[visit_id numtype#764] +[visit_exp (`I32`_numtype, `ROTR`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `ROTR`_binop_] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] numtype#766 +dims \ = numtype#766 +[visit_exp `UNOP`_instr{numtype#766}(`I64`_numtype, `CLZ`_unop_)] +[visit_exp numtype#766] +[visit_id numtype#766] +[visit_exp (`I64`_numtype, `CLZ`_unop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `CLZ`_unop_] +[visit_exp ()] +[check_dims] numtype#768 +dims \ = numtype#768 +[visit_exp `UNOP`_instr{numtype#768}(`I64`_numtype, `CTZ`_unop_)] +[visit_exp numtype#768] +[visit_id numtype#768] +[visit_exp (`I64`_numtype, `CTZ`_unop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `CTZ`_unop_] +[visit_exp ()] +[check_dims] numtype#770 +dims \ = numtype#770 +[visit_exp `UNOP`_instr{numtype#770}(`I64`_numtype, `POPCNT`_unop_)] +[visit_exp numtype#770] +[visit_id numtype#770] +[visit_exp (`I64`_numtype, `POPCNT`_unop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `POPCNT`_unop_] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] i#54600 i#54607 numtype#772 sz#909 +dims \ = i#54600, i#54607, numtype#772, sz#909 +[visit_exp `UNOP`_instr{numtype#772}(`I32`_numtype, `EXTEND`_unop_{sz#909, i#54600}(`%`_sz{i#54607}(8)))] +[visit_exp numtype#772] +[visit_id numtype#772] +[visit_exp (`I32`_numtype, `EXTEND`_unop_{sz#909, i#54600}(`%`_sz{i#54607}(8)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_unop_{sz#909, i#54600}(`%`_sz{i#54607}(8))] +[visit_exp sz#909] +[visit_id sz#909] +[visit_exp i#54600] +[visit_id i#54600] +[visit_exp (`%`_sz{i#54607}(8))] +[visit_exp `%`_sz{i#54607}(8)] +[visit_exp i#54607] +[visit_id i#54607] +[visit_exp (8)] +[visit_exp 8] +[check_dims] i#54616 i#54623 numtype#774 sz#943 +dims \ = i#54616, i#54623, numtype#774, sz#943 +[visit_exp `UNOP`_instr{numtype#774}(`I32`_numtype, `EXTEND`_unop_{sz#943, i#54616}(`%`_sz{i#54623}(16)))] +[visit_exp numtype#774] +[visit_id numtype#774] +[visit_exp (`I32`_numtype, `EXTEND`_unop_{sz#943, i#54616}(`%`_sz{i#54623}(16)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_unop_{sz#943, i#54616}(`%`_sz{i#54623}(16))] +[visit_exp sz#943] +[visit_id sz#943] +[visit_exp i#54616] +[visit_id i#54616] +[visit_exp (`%`_sz{i#54623}(16))] +[visit_exp `%`_sz{i#54623}(16)] +[visit_exp i#54623] +[visit_id i#54623] +[visit_exp (16)] +[visit_exp 16] +ps' = +[check_dims] +[check_dims] i#54632 i#54639 numtype#776 sz#977 +dims \ = i#54632, i#54639, numtype#776, sz#977 +[visit_exp `UNOP`_instr{numtype#776}(`I64`_numtype, `EXTEND`_unop_{sz#977, i#54632}(`%`_sz{i#54639}(8)))] +[visit_exp numtype#776] +[visit_id numtype#776] +[visit_exp (`I64`_numtype, `EXTEND`_unop_{sz#977, i#54632}(`%`_sz{i#54639}(8)))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_unop_{sz#977, i#54632}(`%`_sz{i#54639}(8))] +[visit_exp sz#977] +[visit_id sz#977] +[visit_exp i#54632] +[visit_id i#54632] +[visit_exp (`%`_sz{i#54639}(8))] +[visit_exp `%`_sz{i#54639}(8)] +[visit_exp i#54639] +[visit_id i#54639] +[visit_exp (8)] +[visit_exp 8] +[check_dims] i#54648 i#54655 numtype#778 sz#1011 +dims \ = i#54648, i#54655, numtype#778, sz#1011 +[visit_exp `UNOP`_instr{numtype#778}(`I64`_numtype, `EXTEND`_unop_{sz#1011, i#54648}(`%`_sz{i#54655}(16)))] +[visit_exp numtype#778] +[visit_id numtype#778] +[visit_exp (`I64`_numtype, `EXTEND`_unop_{sz#1011, i#54648}(`%`_sz{i#54655}(16)))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_unop_{sz#1011, i#54648}(`%`_sz{i#54655}(16))] +[visit_exp sz#1011] +[visit_id sz#1011] +[visit_exp i#54648] +[visit_id i#54648] +[visit_exp (`%`_sz{i#54655}(16))] +[visit_exp `%`_sz{i#54655}(16)] +[visit_exp i#54655] +[visit_id i#54655] +[visit_exp (16)] +[visit_exp 16] +[check_dims] i#54664 i#54671 numtype#780 sz#1045 +dims \ = i#54664, i#54671, numtype#780, sz#1045 +[visit_exp `UNOP`_instr{numtype#780}(`I64`_numtype, `EXTEND`_unop_{sz#1045, i#54664}(`%`_sz{i#54671}(32)))] +[visit_exp numtype#780] +[visit_id numtype#780] +[visit_exp (`I64`_numtype, `EXTEND`_unop_{sz#1045, i#54664}(`%`_sz{i#54671}(32)))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_unop_{sz#1045, i#54664}(`%`_sz{i#54671}(32))] +[visit_exp sz#1045] +[visit_id sz#1045] +[visit_exp i#54664] +[visit_id i#54664] +[visit_exp (`%`_sz{i#54671}(32))] +[visit_exp `%`_sz{i#54671}(32)] +[visit_exp i#54671] +[visit_id i#54671] +[visit_exp (32)] +[visit_exp 32] +ps' = +[check_dims] +[check_dims] numtype#782 +dims \ = numtype#782 +[visit_exp `BINOP`_instr{numtype#782}(`I64`_numtype, `ADD`_binop_)] +[visit_exp numtype#782] +[visit_id numtype#782] +[visit_exp (`I64`_numtype, `ADD`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `ADD`_binop_] +[visit_exp ()] +[check_dims] numtype#784 +dims \ = numtype#784 +[visit_exp `BINOP`_instr{numtype#784}(`I64`_numtype, `SUB`_binop_)] +[visit_exp numtype#784] +[visit_id numtype#784] +[visit_exp (`I64`_numtype, `SUB`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `SUB`_binop_] +[visit_exp ()] +[check_dims] numtype#786 +dims \ = numtype#786 +[visit_exp `BINOP`_instr{numtype#786}(`I64`_numtype, `MUL`_binop_)] +[visit_exp numtype#786] +[visit_id numtype#786] +[visit_exp (`I64`_numtype, `MUL`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `MUL`_binop_] +[visit_exp ()] +[check_dims] numtype#788 sx#4014 +dims \ = numtype#788, sx#4014 +[visit_exp `BINOP`_instr{numtype#788}(`I64`_numtype, `DIV`_binop_{sx#4014}(`S`_sx))] +[visit_exp numtype#788] +[visit_id numtype#788] +[visit_exp (`I64`_numtype, `DIV`_binop_{sx#4014}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `DIV`_binop_{sx#4014}(`S`_sx)] +[visit_exp sx#4014] +[visit_id sx#4014] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#790 sx#4108 +dims \ = numtype#790, sx#4108 +[visit_exp `BINOP`_instr{numtype#790}(`I64`_numtype, `DIV`_binop_{sx#4108}(`U`_sx))] +[visit_exp numtype#790] +[visit_id numtype#790] +[visit_exp (`I64`_numtype, `DIV`_binop_{sx#4108}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `DIV`_binop_{sx#4108}(`U`_sx)] +[visit_exp sx#4108] +[visit_id sx#4108] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype#792 sx#4202 +dims \ = numtype#792, sx#4202 +[visit_exp `BINOP`_instr{numtype#792}(`I64`_numtype, `REM`_binop_{sx#4202}(`S`_sx))] +[visit_exp numtype#792] +[visit_id numtype#792] +[visit_exp (`I64`_numtype, `REM`_binop_{sx#4202}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `REM`_binop_{sx#4202}(`S`_sx)] +[visit_exp sx#4202] +[visit_id sx#4202] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#794 sx#4296 +dims \ = numtype#794, sx#4296 +[visit_exp `BINOP`_instr{numtype#794}(`I64`_numtype, `REM`_binop_{sx#4296}(`U`_sx))] +[visit_exp numtype#794] +[visit_id numtype#794] +[visit_exp (`I64`_numtype, `REM`_binop_{sx#4296}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `REM`_binop_{sx#4296}(`U`_sx)] +[visit_exp sx#4296] +[visit_id sx#4296] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype#796 +dims \ = numtype#796 +[visit_exp `BINOP`_instr{numtype#796}(`I64`_numtype, `AND`_binop_)] +[visit_exp numtype#796] +[visit_id numtype#796] +[visit_exp (`I64`_numtype, `AND`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `AND`_binop_] +[visit_exp ()] +[check_dims] numtype#798 +dims \ = numtype#798 +[visit_exp `BINOP`_instr{numtype#798}(`I64`_numtype, `OR`_binop_)] +[visit_exp numtype#798] +[visit_id numtype#798] +[visit_exp (`I64`_numtype, `OR`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `OR`_binop_] +[visit_exp ()] +[check_dims] numtype#800 +dims \ = numtype#800 +[visit_exp `BINOP`_instr{numtype#800}(`I64`_numtype, `XOR`_binop_)] +[visit_exp numtype#800] +[visit_id numtype#800] +[visit_exp (`I64`_numtype, `XOR`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `XOR`_binop_] +[visit_exp ()] +[check_dims] numtype#802 +dims \ = numtype#802 +[visit_exp `BINOP`_instr{numtype#802}(`I64`_numtype, `SHL`_binop_)] +[visit_exp numtype#802] +[visit_id numtype#802] +[visit_exp (`I64`_numtype, `SHL`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `SHL`_binop_] +[visit_exp ()] +[check_dims] numtype#804 sx#4570 +dims \ = numtype#804, sx#4570 +[visit_exp `BINOP`_instr{numtype#804}(`I64`_numtype, `SHR`_binop_{sx#4570}(`S`_sx))] +[visit_exp numtype#804] +[visit_id numtype#804] +[visit_exp (`I64`_numtype, `SHR`_binop_{sx#4570}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `SHR`_binop_{sx#4570}(`S`_sx)] +[visit_exp sx#4570] +[visit_id sx#4570] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype#806 sx#4664 +dims \ = numtype#806, sx#4664 +[visit_exp `BINOP`_instr{numtype#806}(`I64`_numtype, `SHR`_binop_{sx#4664}(`U`_sx))] +[visit_exp numtype#806] +[visit_id numtype#806] +[visit_exp (`I64`_numtype, `SHR`_binop_{sx#4664}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `SHR`_binop_{sx#4664}(`U`_sx)] +[visit_exp sx#4664] +[visit_id sx#4664] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype#808 +dims \ = numtype#808 +[visit_exp `BINOP`_instr{numtype#808}(`I64`_numtype, `ROTL`_binop_)] +[visit_exp numtype#808] +[visit_id numtype#808] +[visit_exp (`I64`_numtype, `ROTL`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `ROTL`_binop_] +[visit_exp ()] +[check_dims] numtype#810 +dims \ = numtype#810 +[visit_exp `BINOP`_instr{numtype#810}(`I64`_numtype, `ROTR`_binop_)] +[visit_exp numtype#810] +[visit_id numtype#810] +[visit_exp (`I64`_numtype, `ROTR`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `ROTR`_binop_] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] numtype#812 +dims \ = numtype#812 +[visit_exp `UNOP`_instr{numtype#812}(`F32`_numtype, `ABS`_unop_)] +[visit_exp numtype#812] +[visit_id numtype#812] +[visit_exp (`F32`_numtype, `ABS`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `ABS`_unop_] +[visit_exp ()] +[check_dims] numtype#814 +dims \ = numtype#814 +[visit_exp `UNOP`_instr{numtype#814}(`F32`_numtype, `NEG`_unop_)] +[visit_exp numtype#814] +[visit_id numtype#814] +[visit_exp (`F32`_numtype, `NEG`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `NEG`_unop_] +[visit_exp ()] +[check_dims] numtype#816 +dims \ = numtype#816 +[visit_exp `UNOP`_instr{numtype#816}(`F32`_numtype, `CEIL`_unop_)] +[visit_exp numtype#816] +[visit_id numtype#816] +[visit_exp (`F32`_numtype, `CEIL`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `CEIL`_unop_] +[visit_exp ()] +[check_dims] numtype#818 +dims \ = numtype#818 +[visit_exp `UNOP`_instr{numtype#818}(`F32`_numtype, `FLOOR`_unop_)] +[visit_exp numtype#818] +[visit_id numtype#818] +[visit_exp (`F32`_numtype, `FLOOR`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `FLOOR`_unop_] +[visit_exp ()] +[check_dims] numtype#820 +dims \ = numtype#820 +[visit_exp `UNOP`_instr{numtype#820}(`F32`_numtype, `TRUNC`_unop_)] +[visit_exp numtype#820] +[visit_id numtype#820] +[visit_exp (`F32`_numtype, `TRUNC`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_unop_] +[visit_exp ()] +[check_dims] numtype#822 +dims \ = numtype#822 +[visit_exp `UNOP`_instr{numtype#822}(`F32`_numtype, `NEAREST`_unop_)] +[visit_exp numtype#822] +[visit_id numtype#822] +[visit_exp (`F32`_numtype, `NEAREST`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `NEAREST`_unop_] +[visit_exp ()] +[check_dims] numtype#824 +dims \ = numtype#824 +[visit_exp `UNOP`_instr{numtype#824}(`F32`_numtype, `SQRT`_unop_)] +[visit_exp numtype#824] +[visit_id numtype#824] +[visit_exp (`F32`_numtype, `SQRT`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `SQRT`_unop_] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] numtype#826 +dims \ = numtype#826 +[visit_exp `BINOP`_instr{numtype#826}(`F32`_numtype, `ADD`_binop_)] +[visit_exp numtype#826] +[visit_id numtype#826] +[visit_exp (`F32`_numtype, `ADD`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `ADD`_binop_] +[visit_exp ()] +[check_dims] numtype#828 +dims \ = numtype#828 +[visit_exp `BINOP`_instr{numtype#828}(`F32`_numtype, `SUB`_binop_)] +[visit_exp numtype#828] +[visit_id numtype#828] +[visit_exp (`F32`_numtype, `SUB`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `SUB`_binop_] +[visit_exp ()] +[check_dims] numtype#830 +dims \ = numtype#830 +[visit_exp `BINOP`_instr{numtype#830}(`F32`_numtype, `MUL`_binop_)] +[visit_exp numtype#830] +[visit_id numtype#830] +[visit_exp (`F32`_numtype, `MUL`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `MUL`_binop_] +[visit_exp ()] +[check_dims] numtype#832 +dims \ = numtype#832 +[visit_exp `BINOP`_instr{numtype#832}(`F32`_numtype, `DIV`_binop_)] +[visit_exp numtype#832] +[visit_id numtype#832] +[visit_exp (`F32`_numtype, `DIV`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `DIV`_binop_] +[visit_exp ()] +[check_dims] numtype#834 +dims \ = numtype#834 +[visit_exp `BINOP`_instr{numtype#834}(`F32`_numtype, `MIN`_binop_)] +[visit_exp numtype#834] +[visit_id numtype#834] +[visit_exp (`F32`_numtype, `MIN`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `MIN`_binop_] +[visit_exp ()] +[check_dims] numtype#836 +dims \ = numtype#836 +[visit_exp `BINOP`_instr{numtype#836}(`F32`_numtype, `MAX`_binop_)] +[visit_exp numtype#836] +[visit_id numtype#836] +[visit_exp (`F32`_numtype, `MAX`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `MAX`_binop_] +[visit_exp ()] +[check_dims] numtype#838 +dims \ = numtype#838 +[visit_exp `BINOP`_instr{numtype#838}(`F32`_numtype, `COPYSIGN`_binop_)] +[visit_exp numtype#838] +[visit_id numtype#838] +[visit_exp (`F32`_numtype, `COPYSIGN`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `COPYSIGN`_binop_] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] numtype#840 +dims \ = numtype#840 +[visit_exp `UNOP`_instr{numtype#840}(`F64`_numtype, `ABS`_unop_)] +[visit_exp numtype#840] +[visit_id numtype#840] +[visit_exp (`F64`_numtype, `ABS`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `ABS`_unop_] +[visit_exp ()] +[check_dims] numtype#842 +dims \ = numtype#842 +[visit_exp `UNOP`_instr{numtype#842}(`F64`_numtype, `NEG`_unop_)] +[visit_exp numtype#842] +[visit_id numtype#842] +[visit_exp (`F64`_numtype, `NEG`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `NEG`_unop_] +[visit_exp ()] +[check_dims] numtype#844 +dims \ = numtype#844 +[visit_exp `UNOP`_instr{numtype#844}(`F64`_numtype, `CEIL`_unop_)] +[visit_exp numtype#844] +[visit_id numtype#844] +[visit_exp (`F64`_numtype, `CEIL`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `CEIL`_unop_] +[visit_exp ()] +[check_dims] numtype#846 +dims \ = numtype#846 +[visit_exp `UNOP`_instr{numtype#846}(`F64`_numtype, `FLOOR`_unop_)] +[visit_exp numtype#846] +[visit_id numtype#846] +[visit_exp (`F64`_numtype, `FLOOR`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `FLOOR`_unop_] +[visit_exp ()] +[check_dims] numtype#848 +dims \ = numtype#848 +[visit_exp `UNOP`_instr{numtype#848}(`F64`_numtype, `TRUNC`_unop_)] +[visit_exp numtype#848] +[visit_id numtype#848] +[visit_exp (`F64`_numtype, `TRUNC`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_unop_] +[visit_exp ()] +[check_dims] numtype#850 +dims \ = numtype#850 +[visit_exp `UNOP`_instr{numtype#850}(`F64`_numtype, `NEAREST`_unop_)] +[visit_exp numtype#850] +[visit_id numtype#850] +[visit_exp (`F64`_numtype, `NEAREST`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `NEAREST`_unop_] +[visit_exp ()] +[check_dims] numtype#852 +dims \ = numtype#852 +[visit_exp `UNOP`_instr{numtype#852}(`F64`_numtype, `SQRT`_unop_)] +[visit_exp numtype#852] +[visit_id numtype#852] +[visit_exp (`F64`_numtype, `SQRT`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `SQRT`_unop_] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] numtype#854 +dims \ = numtype#854 +[visit_exp `BINOP`_instr{numtype#854}(`F64`_numtype, `ADD`_binop_)] +[visit_exp numtype#854] +[visit_id numtype#854] +[visit_exp (`F64`_numtype, `ADD`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `ADD`_binop_] +[visit_exp ()] +[check_dims] numtype#856 +dims \ = numtype#856 +[visit_exp `BINOP`_instr{numtype#856}(`F64`_numtype, `SUB`_binop_)] +[visit_exp numtype#856] +[visit_id numtype#856] +[visit_exp (`F64`_numtype, `SUB`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `SUB`_binop_] +[visit_exp ()] +[check_dims] numtype#858 +dims \ = numtype#858 +[visit_exp `BINOP`_instr{numtype#858}(`F64`_numtype, `MUL`_binop_)] +[visit_exp numtype#858] +[visit_id numtype#858] +[visit_exp (`F64`_numtype, `MUL`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `MUL`_binop_] +[visit_exp ()] +[check_dims] numtype#860 +dims \ = numtype#860 +[visit_exp `BINOP`_instr{numtype#860}(`F64`_numtype, `DIV`_binop_)] +[visit_exp numtype#860] +[visit_id numtype#860] +[visit_exp (`F64`_numtype, `DIV`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `DIV`_binop_] +[visit_exp ()] +[check_dims] numtype#862 +dims \ = numtype#862 +[visit_exp `BINOP`_instr{numtype#862}(`F64`_numtype, `MIN`_binop_)] +[visit_exp numtype#862] +[visit_id numtype#862] +[visit_exp (`F64`_numtype, `MIN`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `MIN`_binop_] +[visit_exp ()] +[check_dims] numtype#864 +dims \ = numtype#864 +[visit_exp `BINOP`_instr{numtype#864}(`F64`_numtype, `MAX`_binop_)] +[visit_exp numtype#864] +[visit_id numtype#864] +[visit_exp (`F64`_numtype, `MAX`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `MAX`_binop_] +[visit_exp ()] +[check_dims] numtype#866 +dims \ = numtype#866 +[visit_exp `BINOP`_instr{numtype#866}(`F64`_numtype, `COPYSIGN`_binop_)] +[visit_exp numtype#866] +[visit_id numtype#866] +[visit_exp (`F64`_numtype, `COPYSIGN`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `COPYSIGN`_binop_] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] numtype_1#9 numtype_2#9 +dims \ = numtype_1#9, numtype_2#9 +[visit_exp `CVTOP`_instr{numtype_1#9, numtype_2#9}(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] +[visit_exp numtype_1#9] +[visit_id numtype_1#9] +[visit_exp numtype_2#9] +[visit_id numtype_2#9] +[visit_exp (`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `WRAP`_cvtop__] +[visit_exp ()] +[check_dims] numtype_1#11 numtype_2#11 sx#4833 +dims \ = numtype_1#11, numtype_2#11, sx#4833 +[visit_exp `CVTOP`_instr{numtype_1#11, numtype_2#11}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#4833}(`S`_sx))] +[visit_exp numtype_1#11] +[visit_id numtype_1#11] +[visit_exp numtype_2#11] +[visit_id numtype_2#11] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#4833}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#4833}(`S`_sx)] +[visit_exp sx#4833] +[visit_id sx#4833] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype_1#13 numtype_2#13 sx#4897 +dims \ = numtype_1#13, numtype_2#13, sx#4897 +[visit_exp `CVTOP`_instr{numtype_1#13, numtype_2#13}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#4897}(`U`_sx))] +[visit_exp numtype_1#13] +[visit_id numtype_1#13] +[visit_exp numtype_2#13] +[visit_id numtype_2#13] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#4897}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#4897}(`U`_sx)] +[visit_exp sx#4897] +[visit_id sx#4897] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype_1#15 numtype_2#15 sx#4961 +dims \ = numtype_1#15, numtype_2#15, sx#4961 +[visit_exp `CVTOP`_instr{numtype_1#15, numtype_2#15}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#4961}(`S`_sx))] +[visit_exp numtype_1#15] +[visit_id numtype_1#15] +[visit_exp numtype_2#15] +[visit_id numtype_2#15] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#4961}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#4961}(`S`_sx)] +[visit_exp sx#4961] +[visit_id sx#4961] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype_1#17 numtype_2#17 sx#5025 +dims \ = numtype_1#17, numtype_2#17, sx#5025 +[visit_exp `CVTOP`_instr{numtype_1#17, numtype_2#17}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5025}(`U`_sx))] +[visit_exp numtype_1#17] +[visit_id numtype_1#17] +[visit_exp numtype_2#17] +[visit_id numtype_2#17] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5025}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#5025}(`U`_sx)] +[visit_exp sx#5025] +[visit_id sx#5025] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype_1#19 numtype_2#19 sx#5059 +dims \ = numtype_1#19, numtype_2#19, sx#5059 +[visit_exp `CVTOP`_instr{numtype_1#19, numtype_2#19}(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__{sx#5059}(`S`_sx))] +[visit_exp numtype_1#19] +[visit_id numtype_1#19] +[visit_exp numtype_2#19] +[visit_id numtype_2#19] +[visit_exp (`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__{sx#5059}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_cvtop__{sx#5059}(`S`_sx)] +[visit_exp sx#5059] +[visit_id sx#5059] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype_1#21 numtype_2#21 sx#5093 +dims \ = numtype_1#21, numtype_2#21, sx#5093 +[visit_exp `CVTOP`_instr{numtype_1#21, numtype_2#21}(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__{sx#5093}(`U`_sx))] +[visit_exp numtype_1#21] +[visit_id numtype_1#21] +[visit_exp numtype_2#21] +[visit_id numtype_2#21] +[visit_exp (`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__{sx#5093}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_cvtop__{sx#5093}(`U`_sx)] +[visit_exp sx#5093] +[visit_id sx#5093] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype_1#23 numtype_2#23 sx#5157 +dims \ = numtype_1#23, numtype_2#23, sx#5157 +[visit_exp `CVTOP`_instr{numtype_1#23, numtype_2#23}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#5157}(`S`_sx))] +[visit_exp numtype_1#23] +[visit_id numtype_1#23] +[visit_exp numtype_2#23] +[visit_id numtype_2#23] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#5157}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#5157}(`S`_sx)] +[visit_exp sx#5157] +[visit_id sx#5157] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype_1#25 numtype_2#25 sx#5221 +dims \ = numtype_1#25, numtype_2#25, sx#5221 +[visit_exp `CVTOP`_instr{numtype_1#25, numtype_2#25}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#5221}(`U`_sx))] +[visit_exp numtype_1#25] +[visit_id numtype_1#25] +[visit_exp numtype_2#25] +[visit_id numtype_2#25] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#5221}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#5221}(`U`_sx)] +[visit_exp sx#5221] +[visit_id sx#5221] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype_1#27 numtype_2#27 sx#5285 +dims \ = numtype_1#27, numtype_2#27, sx#5285 +[visit_exp `CVTOP`_instr{numtype_1#27, numtype_2#27}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5285}(`S`_sx))] +[visit_exp numtype_1#27] +[visit_id numtype_1#27] +[visit_exp numtype_2#27] +[visit_id numtype_2#27] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5285}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#5285}(`S`_sx)] +[visit_exp sx#5285] +[visit_id sx#5285] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype_1#29 numtype_2#29 sx#5349 +dims \ = numtype_1#29, numtype_2#29, sx#5349 +[visit_exp `CVTOP`_instr{numtype_1#29, numtype_2#29}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5349}(`U`_sx))] +[visit_exp numtype_1#29] +[visit_id numtype_1#29] +[visit_exp numtype_2#29] +[visit_id numtype_2#29] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5349}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#5349}(`U`_sx)] +[visit_exp sx#5349] +[visit_id sx#5349] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype_1#31 numtype_2#31 sx#5383 +dims \ = numtype_1#31, numtype_2#31, sx#5383 +[visit_exp `CVTOP`_instr{numtype_1#31, numtype_2#31}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5383}(`S`_sx))] +[visit_exp numtype_1#31] +[visit_id numtype_1#31] +[visit_exp numtype_2#31] +[visit_id numtype_2#31] +[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5383}(`S`_sx))] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#5383}(`S`_sx)] +[visit_exp sx#5383] +[visit_id sx#5383] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype_1#33 numtype_2#33 sx#5417 +dims \ = numtype_1#33, numtype_2#33, sx#5417 +[visit_exp `CVTOP`_instr{numtype_1#33, numtype_2#33}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5417}(`U`_sx))] +[visit_exp numtype_1#33] +[visit_id numtype_1#33] +[visit_exp numtype_2#33] +[visit_id numtype_2#33] +[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5417}(`U`_sx))] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#5417}(`U`_sx)] +[visit_exp sx#5417] +[visit_id sx#5417] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype_1#35 numtype_2#35 sx#5451 +dims \ = numtype_1#35, numtype_2#35, sx#5451 +[visit_exp `CVTOP`_instr{numtype_1#35, numtype_2#35}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5451}(`S`_sx))] +[visit_exp numtype_1#35] +[visit_id numtype_1#35] +[visit_exp numtype_2#35] +[visit_id numtype_2#35] +[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5451}(`S`_sx))] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#5451}(`S`_sx)] +[visit_exp sx#5451] +[visit_id sx#5451] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype_1#37 numtype_2#37 sx#5485 +dims \ = numtype_1#37, numtype_2#37, sx#5485 +[visit_exp `CVTOP`_instr{numtype_1#37, numtype_2#37}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5485}(`U`_sx))] +[visit_exp numtype_1#37] +[visit_id numtype_1#37] +[visit_exp numtype_2#37] +[visit_id numtype_2#37] +[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5485}(`U`_sx))] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#5485}(`U`_sx)] +[visit_exp sx#5485] +[visit_id sx#5485] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype_1#39 numtype_2#39 +dims \ = numtype_1#39, numtype_2#39 +[visit_exp `CVTOP`_instr{numtype_1#39, numtype_2#39}(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] +[visit_exp numtype_1#39] +[visit_id numtype_1#39] +[visit_exp numtype_2#39] +[visit_id numtype_2#39] +[visit_exp (`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `DEMOTE`_cvtop__] +[visit_exp ()] +[check_dims] numtype_1#41 numtype_2#41 sx#5519 +dims \ = numtype_1#41, numtype_2#41, sx#5519 +[visit_exp `CVTOP`_instr{numtype_1#41, numtype_2#41}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5519}(`S`_sx))] +[visit_exp numtype_1#41] +[visit_id numtype_1#41] +[visit_exp numtype_2#41] +[visit_id numtype_2#41] +[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5519}(`S`_sx))] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#5519}(`S`_sx)] +[visit_exp sx#5519] +[visit_id sx#5519] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype_1#43 numtype_2#43 sx#5553 +dims \ = numtype_1#43, numtype_2#43, sx#5553 +[visit_exp `CVTOP`_instr{numtype_1#43, numtype_2#43}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5553}(`U`_sx))] +[visit_exp numtype_1#43] +[visit_id numtype_1#43] +[visit_exp numtype_2#43] +[visit_id numtype_2#43] +[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5553}(`U`_sx))] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#5553}(`U`_sx)] +[visit_exp sx#5553] +[visit_id sx#5553] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype_1#45 numtype_2#45 sx#5587 +dims \ = numtype_1#45, numtype_2#45, sx#5587 +[visit_exp `CVTOP`_instr{numtype_1#45, numtype_2#45}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5587}(`S`_sx))] +[visit_exp numtype_1#45] +[visit_id numtype_1#45] +[visit_exp numtype_2#45] +[visit_id numtype_2#45] +[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5587}(`S`_sx))] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#5587}(`S`_sx)] +[visit_exp sx#5587] +[visit_id sx#5587] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] numtype_1#47 numtype_2#47 sx#5621 +dims \ = numtype_1#47, numtype_2#47, sx#5621 +[visit_exp `CVTOP`_instr{numtype_1#47, numtype_2#47}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5621}(`U`_sx))] +[visit_exp numtype_1#47] +[visit_id numtype_1#47] +[visit_exp numtype_2#47] +[visit_id numtype_2#47] +[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5621}(`U`_sx))] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#5621}(`U`_sx)] +[visit_exp sx#5621] +[visit_id sx#5621] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] numtype_1#49 numtype_2#49 +dims \ = numtype_1#49, numtype_2#49 +[visit_exp `CVTOP`_instr{numtype_1#49, numtype_2#49}(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] +[visit_exp numtype_1#49] +[visit_id numtype_1#49] +[visit_exp numtype_2#49] +[visit_id numtype_2#49] +[visit_exp (`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `PROMOTE`_cvtop__] +[visit_exp ()] +[check_dims] numtype_1#51 numtype_2#51 +dims \ = numtype_1#51, numtype_2#51 +[visit_exp `CVTOP`_instr{numtype_1#51, numtype_2#51}(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp numtype_1#51] +[visit_id numtype_1#51] +[visit_exp numtype_2#51] +[visit_id numtype_2#51] +[visit_exp (`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `REINTERPRET`_cvtop__] +[visit_exp ()] +[check_dims] numtype_1#53 numtype_2#53 +dims \ = numtype_1#53, numtype_2#53 +[visit_exp `CVTOP`_instr{numtype_1#53, numtype_2#53}(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp numtype_1#53] +[visit_id numtype_1#53] +[visit_exp numtype_2#53] +[visit_id numtype_2#53] +[visit_exp (`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `REINTERPRET`_cvtop__] +[visit_exp ()] +[check_dims] numtype_1#55 numtype_2#55 +dims \ = numtype_1#55, numtype_2#55 +[visit_exp `CVTOP`_instr{numtype_1#55, numtype_2#55}(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp numtype_1#55] +[visit_id numtype_1#55] +[visit_exp numtype_2#55] +[visit_id numtype_2#55] +[visit_exp (`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `REINTERPRET`_cvtop__] +[visit_exp ()] +[check_dims] numtype_1#57 numtype_2#57 +dims \ = numtype_1#57, numtype_2#57 +[visit_exp `CVTOP`_instr{numtype_1#57, numtype_2#57}(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp numtype_1#57] +[visit_id numtype_1#57] +[visit_exp numtype_2#57] +[visit_id numtype_2#57] +[visit_exp (`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `REINTERPRET`_cvtop__] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] i#54694 numtype_1#59 numtype_2#59 sx#5775 +dims \ = i#54694, numtype_1#59, numtype_2#59, sx#5775 +[visit_exp `CVTOP`_instr{numtype_1#59, numtype_2#59}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#5775}(`S`_sx))] +[visit_exp numtype_1#59] +[visit_id numtype_1#59] +[visit_exp numtype_2#59] +[visit_id numtype_2#59] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#5775}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#5775}(`S`_sx)] +[visit_exp sx#5775] +[visit_id sx#5775] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#54694}(0)] +[visit_exp i#54694] +[visit_id i#54694] +[visit_exp (0)] +[visit_exp 0] +[check_dims] i#54719 numtype_1#61 numtype_2#61 sx#5839 +dims \ = i#54719, numtype_1#61, numtype_2#61, sx#5839 +[visit_exp `CVTOP`_instr{numtype_1#61, numtype_2#61}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#5839}(`U`_sx))] +[visit_exp numtype_1#61] +[visit_id numtype_1#61] +[visit_exp numtype_2#61] +[visit_id numtype_2#61] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#5839}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#5839}(`U`_sx)] +[visit_exp sx#5839] +[visit_id sx#5839] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#54719}(1)] +[visit_exp i#54719] +[visit_id i#54719] +[visit_exp (1)] +[visit_exp 1] +[check_dims] i#54744 numtype_1#63 numtype_2#63 sx#5903 +dims \ = i#54744, numtype_1#63, numtype_2#63, sx#5903 +[visit_exp `CVTOP`_instr{numtype_1#63, numtype_2#63}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#5903}(`S`_sx))] +[visit_exp numtype_1#63] +[visit_id numtype_1#63] +[visit_exp numtype_2#63] +[visit_id numtype_2#63] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#5903}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#5903}(`S`_sx)] +[visit_exp sx#5903] +[visit_id sx#5903] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#54744}(2)] +[visit_exp i#54744] +[visit_id i#54744] +[visit_exp (2)] +[visit_exp 2] +[check_dims] i#54769 numtype_1#65 numtype_2#65 sx#5967 +dims \ = i#54769, numtype_1#65, numtype_2#65, sx#5967 +[visit_exp `CVTOP`_instr{numtype_1#65, numtype_2#65}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#5967}(`U`_sx))] +[visit_exp numtype_1#65] +[visit_id numtype_1#65] +[visit_exp numtype_2#65] +[visit_id numtype_2#65] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#5967}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#5967}(`U`_sx)] +[visit_exp sx#5967] +[visit_id sx#5967] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#54769}(3)] +[visit_exp i#54769] +[visit_id i#54769] +[visit_exp (3)] +[visit_exp 3] +[check_dims] i#54794 numtype_1#67 numtype_2#67 sx#6031 +dims \ = i#54794, numtype_1#67, numtype_2#67, sx#6031 +[visit_exp `CVTOP`_instr{numtype_1#67, numtype_2#67}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#6031}(`S`_sx))] +[visit_exp numtype_1#67] +[visit_id numtype_1#67] +[visit_exp numtype_2#67] +[visit_id numtype_2#67] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#6031}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#6031}(`S`_sx)] +[visit_exp sx#6031] +[visit_id sx#6031] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#54794}(4)] +[visit_exp i#54794] +[visit_id i#54794] +[visit_exp (4)] +[visit_exp 4] +[check_dims] i#54819 numtype_1#69 numtype_2#69 sx#6095 +dims \ = i#54819, numtype_1#69, numtype_2#69, sx#6095 +[visit_exp `CVTOP`_instr{numtype_1#69, numtype_2#69}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#6095}(`U`_sx))] +[visit_exp numtype_1#69] +[visit_id numtype_1#69] +[visit_exp numtype_2#69] +[visit_id numtype_2#69] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#6095}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#6095}(`U`_sx)] +[visit_exp sx#6095] +[visit_id sx#6095] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#54819}(5)] +[visit_exp i#54819] +[visit_id i#54819] +[visit_exp (5)] +[visit_exp 5] +[check_dims] i#54844 numtype_1#71 numtype_2#71 sx#6159 +dims \ = i#54844, numtype_1#71, numtype_2#71, sx#6159 +[visit_exp `CVTOP`_instr{numtype_1#71, numtype_2#71}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#6159}(`S`_sx))] +[visit_exp numtype_1#71] +[visit_id numtype_1#71] +[visit_exp numtype_2#71] +[visit_id numtype_2#71] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#6159}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#6159}(`S`_sx)] +[visit_exp sx#6159] +[visit_id sx#6159] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#54844}(6)] +[visit_exp i#54844] +[visit_id i#54844] +[visit_exp (6)] +[visit_exp 6] +[check_dims] i#54869 numtype_1#73 numtype_2#73 sx#6223 +dims \ = i#54869, numtype_1#73, numtype_2#73, sx#6223 +[visit_exp `CVTOP`_instr{numtype_1#73, numtype_2#73}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#6223}(`U`_sx))] +[visit_exp numtype_1#73] +[visit_id numtype_1#73] +[visit_exp numtype_2#73] +[visit_id numtype_2#73] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#6223}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#6223}(`U`_sx)] +[visit_exp sx#6223] +[visit_id sx#6223] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#54869}(7)] +[visit_exp i#54869] +[visit_id i#54869] +[visit_exp (7)] +[visit_exp 7] +ps' = +[check_dims] +[check_dims] i#54895 i#54896 i#54943 i#54944 l +dims \ = i#54895, i#54896, i#54943, i#54944, l +[visit_exp `%`_laneidx{i#54944}(l!`%`_labelidx{i#54943}.0)] +[visit_exp i#54944] +[visit_id i#54944] +[visit_exp (l!`%`_labelidx{i#54943}.0)] +[visit_exp l!`%`_labelidx{i#54943}.0] +[visit_exp l!`%`_labelidx{i#54943}] +[visit_exp l] +[visit_id l] +[visit_exp i#54943] +[visit_id i#54943] +[visit_exp `%`_byte{i#54896}(l!`%`_labelidx{i#54895}.0)] +[visit_exp i#54896] +[visit_id i#54896] +[visit_exp (l!`%`_labelidx{i#54895}.0)] +[visit_exp l!`%`_labelidx{i#54895}.0] +[visit_exp l!`%`_labelidx{i#54895}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#54895] +[visit_id i#54895] +ps' = +[check_dims] +[check_dims] ao i#54968 memarg#137 memidx#228 vectype?#14 x +dims \ = ao, i#54968, memarg#137, memidx#228, vectype?#14, x +[visit_exp `VLOAD`_instr{`vectype?#14`, memidx#228, memarg#137}(`V128`_vectype, ?(), x, ao)] +[visit_exp `vectype?#14`] +[visit_id vectype?#14] +[visit_exp memidx#228] +[visit_id memidx#228] +[visit_exp memarg#137] +[visit_id memarg#137] +[visit_exp (`V128`_vectype, ?(), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#54968}(0)] +[visit_exp i#54968] +[visit_id i#54968] +[visit_exp (0)] +[visit_exp 0] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] M#157 ao i#55019 i#55059 i#55066 memarg#139 memidx#230 sx#6240 sz#1092 vectype?#15 x +dims \ = M#157, ao, i#55019, i#55059, i#55066, memarg#139, memidx#230, sx#6240, sz#1092, vectype?#15, x +[visit_exp `VLOAD`_instr{`vectype?#15`, memidx#230, memarg#139}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1092, M#157, sx#6240, i#55059}(`%`_sz{i#55066}(8), 8, `S`_sx)), x, ao)] +[visit_exp `vectype?#15`] +[visit_id vectype?#15] +[visit_exp memidx#230] +[visit_id memidx#230] +[visit_exp memarg#139] +[visit_id memarg#139] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1092, M#157, sx#6240, i#55059}(`%`_sz{i#55066}(8), 8, `S`_sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1092, M#157, sx#6240, i#55059}(`%`_sz{i#55066}(8), 8, `S`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#1092, M#157, sx#6240, i#55059}(`%`_sz{i#55066}(8), 8, `S`_sx)] +[visit_exp sz#1092] +[visit_id sz#1092] +[visit_exp M#157] +[visit_id M#157] +[visit_exp sx#6240] +[visit_id sx#6240] +[visit_exp i#55059] +[visit_id i#55059] +[visit_exp (`%`_sz{i#55066}(8), 8, `S`_sx)] +[visit_exp `%`_sz{i#55066}(8)] +[visit_exp i#55066] +[visit_id i#55066] +[visit_exp (8)] +[visit_exp 8] +[visit_exp 8] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#55019}(1)] +[visit_exp i#55019] +[visit_id i#55019] +[visit_exp (1)] +[visit_exp 1] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] M#174 ao i#55103 i#55143 i#55150 memarg#141 memidx#232 sx#6257 sz#1139 vectype?#16 x +dims \ = M#174, ao, i#55103, i#55143, i#55150, memarg#141, memidx#232, sx#6257, sz#1139, vectype?#16, x +[visit_exp `VLOAD`_instr{`vectype?#16`, memidx#232, memarg#141}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1139, M#174, sx#6257, i#55143}(`%`_sz{i#55150}(8), 8, `U`_sx)), x, ao)] +[visit_exp `vectype?#16`] +[visit_id vectype?#16] +[visit_exp memidx#232] +[visit_id memidx#232] +[visit_exp memarg#141] +[visit_id memarg#141] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1139, M#174, sx#6257, i#55143}(`%`_sz{i#55150}(8), 8, `U`_sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1139, M#174, sx#6257, i#55143}(`%`_sz{i#55150}(8), 8, `U`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#1139, M#174, sx#6257, i#55143}(`%`_sz{i#55150}(8), 8, `U`_sx)] +[visit_exp sz#1139] +[visit_id sz#1139] +[visit_exp M#174] +[visit_id M#174] +[visit_exp sx#6257] +[visit_id sx#6257] +[visit_exp i#55143] +[visit_id i#55143] +[visit_exp (`%`_sz{i#55150}(8), 8, `U`_sx)] +[visit_exp `%`_sz{i#55150}(8)] +[visit_exp i#55150] +[visit_id i#55150] +[visit_exp (8)] +[visit_exp 8] +[visit_exp 8] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#55103}(2)] +[visit_exp i#55103] +[visit_id i#55103] +[visit_exp (2)] +[visit_exp 2] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] M#191 ao i#55187 i#55227 i#55234 memarg#143 memidx#234 sx#6274 sz#1186 vectype?#17 x +dims \ = M#191, ao, i#55187, i#55227, i#55234, memarg#143, memidx#234, sx#6274, sz#1186, vectype?#17, x +[visit_exp `VLOAD`_instr{`vectype?#17`, memidx#234, memarg#143}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1186, M#191, sx#6274, i#55227}(`%`_sz{i#55234}(16), 4, `S`_sx)), x, ao)] +[visit_exp `vectype?#17`] +[visit_id vectype?#17] +[visit_exp memidx#234] +[visit_id memidx#234] +[visit_exp memarg#143] +[visit_id memarg#143] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1186, M#191, sx#6274, i#55227}(`%`_sz{i#55234}(16), 4, `S`_sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1186, M#191, sx#6274, i#55227}(`%`_sz{i#55234}(16), 4, `S`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#1186, M#191, sx#6274, i#55227}(`%`_sz{i#55234}(16), 4, `S`_sx)] +[visit_exp sz#1186] +[visit_id sz#1186] +[visit_exp M#191] +[visit_id M#191] +[visit_exp sx#6274] +[visit_id sx#6274] +[visit_exp i#55227] +[visit_id i#55227] +[visit_exp (`%`_sz{i#55234}(16), 4, `S`_sx)] +[visit_exp `%`_sz{i#55234}(16)] +[visit_exp i#55234] +[visit_id i#55234] +[visit_exp (16)] +[visit_exp 16] +[visit_exp 4] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#55187}(3)] +[visit_exp i#55187] +[visit_id i#55187] +[visit_exp (3)] +[visit_exp 3] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] M#208 ao i#55271 i#55311 i#55318 memarg#145 memidx#236 sx#6291 sz#1233 vectype?#18 x +dims \ = M#208, ao, i#55271, i#55311, i#55318, memarg#145, memidx#236, sx#6291, sz#1233, vectype?#18, x +[visit_exp `VLOAD`_instr{`vectype?#18`, memidx#236, memarg#145}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1233, M#208, sx#6291, i#55311}(`%`_sz{i#55318}(16), 4, `U`_sx)), x, ao)] +[visit_exp `vectype?#18`] +[visit_id vectype?#18] +[visit_exp memidx#236] +[visit_id memidx#236] +[visit_exp memarg#145] +[visit_id memarg#145] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1233, M#208, sx#6291, i#55311}(`%`_sz{i#55318}(16), 4, `U`_sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1233, M#208, sx#6291, i#55311}(`%`_sz{i#55318}(16), 4, `U`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#1233, M#208, sx#6291, i#55311}(`%`_sz{i#55318}(16), 4, `U`_sx)] +[visit_exp sz#1233] +[visit_id sz#1233] +[visit_exp M#208] +[visit_id M#208] +[visit_exp sx#6291] +[visit_id sx#6291] +[visit_exp i#55311] +[visit_id i#55311] +[visit_exp (`%`_sz{i#55318}(16), 4, `U`_sx)] +[visit_exp `%`_sz{i#55318}(16)] +[visit_exp i#55318] +[visit_id i#55318] +[visit_exp (16)] +[visit_exp 16] +[visit_exp 4] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#55271}(4)] +[visit_exp i#55271] +[visit_id i#55271] +[visit_exp (4)] +[visit_exp 4] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] M#225 ao i#55355 i#55395 i#55402 memarg#147 memidx#238 sx#6308 sz#1280 vectype?#19 x +dims \ = M#225, ao, i#55355, i#55395, i#55402, memarg#147, memidx#238, sx#6308, sz#1280, vectype?#19, x +[visit_exp `VLOAD`_instr{`vectype?#19`, memidx#238, memarg#147}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1280, M#225, sx#6308, i#55395}(`%`_sz{i#55402}(32), 2, `S`_sx)), x, ao)] +[visit_exp `vectype?#19`] +[visit_id vectype?#19] +[visit_exp memidx#238] +[visit_id memidx#238] +[visit_exp memarg#147] +[visit_id memarg#147] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1280, M#225, sx#6308, i#55395}(`%`_sz{i#55402}(32), 2, `S`_sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1280, M#225, sx#6308, i#55395}(`%`_sz{i#55402}(32), 2, `S`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#1280, M#225, sx#6308, i#55395}(`%`_sz{i#55402}(32), 2, `S`_sx)] +[visit_exp sz#1280] +[visit_id sz#1280] +[visit_exp M#225] +[visit_id M#225] +[visit_exp sx#6308] +[visit_id sx#6308] +[visit_exp i#55395] +[visit_id i#55395] +[visit_exp (`%`_sz{i#55402}(32), 2, `S`_sx)] +[visit_exp `%`_sz{i#55402}(32)] +[visit_exp i#55402] +[visit_id i#55402] +[visit_exp (32)] +[visit_exp 32] +[visit_exp 2] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#55355}(5)] +[visit_exp i#55355] +[visit_id i#55355] +[visit_exp (5)] +[visit_exp 5] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] M#242 ao i#55439 i#55479 i#55486 memarg#149 memidx#240 sx#6325 sz#1327 vectype?#20 x +dims \ = M#242, ao, i#55439, i#55479, i#55486, memarg#149, memidx#240, sx#6325, sz#1327, vectype?#20, x +[visit_exp `VLOAD`_instr{`vectype?#20`, memidx#240, memarg#149}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1327, M#242, sx#6325, i#55479}(`%`_sz{i#55486}(32), 2, `U`_sx)), x, ao)] +[visit_exp `vectype?#20`] +[visit_id vectype?#20] +[visit_exp memidx#240] +[visit_id memidx#240] +[visit_exp memarg#149] +[visit_id memarg#149] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1327, M#242, sx#6325, i#55479}(`%`_sz{i#55486}(32), 2, `U`_sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1327, M#242, sx#6325, i#55479}(`%`_sz{i#55486}(32), 2, `U`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#1327, M#242, sx#6325, i#55479}(`%`_sz{i#55486}(32), 2, `U`_sx)] +[visit_exp sz#1327] +[visit_id sz#1327] +[visit_exp M#242] +[visit_id M#242] +[visit_exp sx#6325] +[visit_id sx#6325] +[visit_exp i#55479] +[visit_id i#55479] +[visit_exp (`%`_sz{i#55486}(32), 2, `U`_sx)] +[visit_exp `%`_sz{i#55486}(32)] +[visit_exp i#55486] +[visit_id i#55486] +[visit_exp (32)] +[visit_exp 32] +[visit_exp 2] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#55439}(6)] +[visit_exp i#55439] +[visit_id i#55439] +[visit_exp (6)] +[visit_exp 6] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#55523 i#55569 memarg#151 memidx#242 sz#1374 vectype?#21 x +dims \ = ao, i#55523, i#55569, memarg#151, memidx#242, sz#1374, vectype?#21, x +[visit_exp `VLOAD`_instr{`vectype?#21`, memidx#242, memarg#151}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1374}(`%`_sz{i#55569}(8))), x, ao)] +[visit_exp `vectype?#21`] +[visit_id vectype?#21] +[visit_exp memidx#242] +[visit_id memidx#242] +[visit_exp memarg#151] +[visit_id memarg#151] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1374}(`%`_sz{i#55569}(8))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SPLAT`_vloadop_{sz#1374}(`%`_sz{i#55569}(8)))] +[visit_exp `SPLAT`_vloadop_{sz#1374}(`%`_sz{i#55569}(8))] +[visit_exp sz#1374] +[visit_id sz#1374] +[visit_exp (`%`_sz{i#55569}(8))] +[visit_exp `%`_sz{i#55569}(8)] +[visit_exp i#55569] +[visit_id i#55569] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#55523}(7)] +[visit_exp i#55523] +[visit_id i#55523] +[visit_exp (7)] +[visit_exp 7] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#55606 i#55652 memarg#153 memidx#244 sz#1421 vectype?#22 x +dims \ = ao, i#55606, i#55652, memarg#153, memidx#244, sz#1421, vectype?#22, x +[visit_exp `VLOAD`_instr{`vectype?#22`, memidx#244, memarg#153}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1421}(`%`_sz{i#55652}(16))), x, ao)] +[visit_exp `vectype?#22`] +[visit_id vectype?#22] +[visit_exp memidx#244] +[visit_id memidx#244] +[visit_exp memarg#153] +[visit_id memarg#153] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1421}(`%`_sz{i#55652}(16))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SPLAT`_vloadop_{sz#1421}(`%`_sz{i#55652}(16)))] +[visit_exp `SPLAT`_vloadop_{sz#1421}(`%`_sz{i#55652}(16))] +[visit_exp sz#1421] +[visit_id sz#1421] +[visit_exp (`%`_sz{i#55652}(16))] +[visit_exp `%`_sz{i#55652}(16)] +[visit_exp i#55652] +[visit_id i#55652] +[visit_exp (16)] +[visit_exp 16] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#55606}(8)] +[visit_exp i#55606] +[visit_id i#55606] +[visit_exp (8)] +[visit_exp 8] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#55689 i#55735 memarg#155 memidx#246 sz#1468 vectype?#23 x +dims \ = ao, i#55689, i#55735, memarg#155, memidx#246, sz#1468, vectype?#23, x +[visit_exp `VLOAD`_instr{`vectype?#23`, memidx#246, memarg#155}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1468}(`%`_sz{i#55735}(32))), x, ao)] +[visit_exp `vectype?#23`] +[visit_id vectype?#23] +[visit_exp memidx#246] +[visit_id memidx#246] +[visit_exp memarg#155] +[visit_id memarg#155] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1468}(`%`_sz{i#55735}(32))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SPLAT`_vloadop_{sz#1468}(`%`_sz{i#55735}(32)))] +[visit_exp `SPLAT`_vloadop_{sz#1468}(`%`_sz{i#55735}(32))] +[visit_exp sz#1468] +[visit_id sz#1468] +[visit_exp (`%`_sz{i#55735}(32))] +[visit_exp `%`_sz{i#55735}(32)] +[visit_exp i#55735] +[visit_id i#55735] +[visit_exp (32)] +[visit_exp 32] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#55689}(9)] +[visit_exp i#55689] +[visit_id i#55689] +[visit_exp (9)] +[visit_exp 9] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#55772 i#55818 memarg#157 memidx#248 sz#1515 vectype?#24 x +dims \ = ao, i#55772, i#55818, memarg#157, memidx#248, sz#1515, vectype?#24, x +[visit_exp `VLOAD`_instr{`vectype?#24`, memidx#248, memarg#157}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1515}(`%`_sz{i#55818}(64))), x, ao)] +[visit_exp `vectype?#24`] +[visit_id vectype?#24] +[visit_exp memidx#248] +[visit_id memidx#248] +[visit_exp memarg#157] +[visit_id memarg#157] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1515}(`%`_sz{i#55818}(64))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SPLAT`_vloadop_{sz#1515}(`%`_sz{i#55818}(64)))] +[visit_exp `SPLAT`_vloadop_{sz#1515}(`%`_sz{i#55818}(64))] +[visit_exp sz#1515] +[visit_id sz#1515] +[visit_exp (`%`_sz{i#55818}(64))] +[visit_exp `%`_sz{i#55818}(64)] +[visit_exp i#55818] +[visit_id i#55818] +[visit_exp (64)] +[visit_exp 64] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#55772}(10)] +[visit_exp i#55772] +[visit_id i#55772] +[visit_exp (10)] +[visit_exp 10] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#55855 memarg#159 memidx#250 vectype#237 x +dims \ = ao, i#55855, memarg#159, memidx#250, vectype#237, x +[visit_exp `VSTORE`_instr{vectype#237, memidx#250, memarg#159}(`V128`_vectype, x, ao)] +[visit_exp vectype#237] +[visit_id vectype#237] +[visit_exp memidx#250] +[visit_id memidx#250] +[visit_exp memarg#159] +[visit_id memarg#159] +[visit_exp (`V128`_vectype, x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#55855}(11)] +[visit_exp i#55855] +[visit_id i#55855] +[visit_exp (11)] +[visit_exp 11] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i i#55906 i#55945 laneidx#31 memarg#161 memidx#252 sz#1517 vectype#239 x +dims \ = ao, i, i#55906, i#55945, laneidx#31, memarg#161, memidx#252, sz#1517, vectype#239, x +[visit_exp `VLOAD_LANE`_instr{vectype#239, sz#1517, memidx#252, memarg#161, laneidx#31}(`V128`_vectype, `%`_sz{i#55945}(8), x, ao, i)] +[visit_exp vectype#239] +[visit_id vectype#239] +[visit_exp sz#1517] +[visit_id sz#1517] +[visit_exp memidx#252] +[visit_id memidx#252] +[visit_exp memarg#161] +[visit_id memarg#161] +[visit_exp laneidx#31] +[visit_id laneidx#31] +[visit_exp (`V128`_vectype, `%`_sz{i#55945}(8), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#55945}(8)] +[visit_exp i#55945] +[visit_id i#55945] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp `%`_u32{i#55906}(84)] +[visit_exp i#55906] +[visit_id i#55906] +[visit_exp (84)] +[visit_exp 84] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[visit_exp i] +[visit_id i] not free +[check_dims] ao i i#55994 i#56033 laneidx#33 memarg#163 memidx#254 sz#1519 vectype#241 x +dims \ = ao, i, i#55994, i#56033, laneidx#33, memarg#163, memidx#254, sz#1519, vectype#241, x +[visit_exp `VLOAD_LANE`_instr{vectype#241, sz#1519, memidx#254, memarg#163, laneidx#33}(`V128`_vectype, `%`_sz{i#56033}(16), x, ao, i)] +[visit_exp vectype#241] +[visit_id vectype#241] +[visit_exp sz#1519] +[visit_id sz#1519] +[visit_exp memidx#254] +[visit_id memidx#254] +[visit_exp memarg#163] +[visit_id memarg#163] +[visit_exp laneidx#33] +[visit_id laneidx#33] +[visit_exp (`V128`_vectype, `%`_sz{i#56033}(16), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#56033}(16)] +[visit_exp i#56033] +[visit_id i#56033] +[visit_exp (16)] +[visit_exp 16] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp `%`_u32{i#55994}(85)] +[visit_exp i#55994] +[visit_id i#55994] +[visit_exp (85)] +[visit_exp 85] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[visit_exp i] +[visit_id i] not free +[check_dims] ao i i#56082 i#56121 laneidx#35 memarg#165 memidx#256 sz#1521 vectype#243 x +dims \ = ao, i, i#56082, i#56121, laneidx#35, memarg#165, memidx#256, sz#1521, vectype#243, x +[visit_exp `VLOAD_LANE`_instr{vectype#243, sz#1521, memidx#256, memarg#165, laneidx#35}(`V128`_vectype, `%`_sz{i#56121}(32), x, ao, i)] +[visit_exp vectype#243] +[visit_id vectype#243] +[visit_exp sz#1521] +[visit_id sz#1521] +[visit_exp memidx#256] +[visit_id memidx#256] +[visit_exp memarg#165] +[visit_id memarg#165] +[visit_exp laneidx#35] +[visit_id laneidx#35] +[visit_exp (`V128`_vectype, `%`_sz{i#56121}(32), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#56121}(32)] +[visit_exp i#56121] +[visit_id i#56121] +[visit_exp (32)] +[visit_exp 32] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp `%`_u32{i#56082}(86)] +[visit_exp i#56082] +[visit_id i#56082] +[visit_exp (86)] +[visit_exp 86] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[visit_exp i] +[visit_id i] not free +[check_dims] ao i i#56170 i#56209 laneidx#37 memarg#167 memidx#258 sz#1523 vectype#245 x +dims \ = ao, i, i#56170, i#56209, laneidx#37, memarg#167, memidx#258, sz#1523, vectype#245, x +[visit_exp `VLOAD_LANE`_instr{vectype#245, sz#1523, memidx#258, memarg#167, laneidx#37}(`V128`_vectype, `%`_sz{i#56209}(64), x, ao, i)] +[visit_exp vectype#245] +[visit_id vectype#245] +[visit_exp sz#1523] +[visit_id sz#1523] +[visit_exp memidx#258] +[visit_id memidx#258] +[visit_exp memarg#167] +[visit_id memarg#167] +[visit_exp laneidx#37] +[visit_id laneidx#37] +[visit_exp (`V128`_vectype, `%`_sz{i#56209}(64), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#56209}(64)] +[visit_exp i#56209] +[visit_id i#56209] +[visit_exp (64)] +[visit_exp 64] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp `%`_u32{i#56170}(87)] +[visit_exp i#56170] +[visit_id i#56170] +[visit_exp (87)] +[visit_exp 87] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[visit_exp i] +[visit_id i] not free +[check_dims] ao i i#56258 i#56297 laneidx#39 memarg#169 memidx#260 sz#1525 vectype#247 x +dims \ = ao, i, i#56258, i#56297, laneidx#39, memarg#169, memidx#260, sz#1525, vectype#247, x +[visit_exp `VSTORE_LANE`_instr{vectype#247, sz#1525, memidx#260, memarg#169, laneidx#39}(`V128`_vectype, `%`_sz{i#56297}(8), x, ao, i)] +[visit_exp vectype#247] +[visit_id vectype#247] +[visit_exp sz#1525] +[visit_id sz#1525] +[visit_exp memidx#260] +[visit_id memidx#260] +[visit_exp memarg#169] +[visit_id memarg#169] +[visit_exp laneidx#39] +[visit_id laneidx#39] +[visit_exp (`V128`_vectype, `%`_sz{i#56297}(8), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#56297}(8)] +[visit_exp i#56297] +[visit_id i#56297] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp `%`_u32{i#56258}(88)] +[visit_exp i#56258] +[visit_id i#56258] +[visit_exp (88)] +[visit_exp 88] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[visit_exp i] +[visit_id i] not free +[check_dims] ao i i#56346 i#56385 laneidx#41 memarg#171 memidx#262 sz#1527 vectype#249 x +dims \ = ao, i, i#56346, i#56385, laneidx#41, memarg#171, memidx#262, sz#1527, vectype#249, x +[visit_exp `VSTORE_LANE`_instr{vectype#249, sz#1527, memidx#262, memarg#171, laneidx#41}(`V128`_vectype, `%`_sz{i#56385}(16), x, ao, i)] +[visit_exp vectype#249] +[visit_id vectype#249] +[visit_exp sz#1527] +[visit_id sz#1527] +[visit_exp memidx#262] +[visit_id memidx#262] +[visit_exp memarg#171] +[visit_id memarg#171] +[visit_exp laneidx#41] +[visit_id laneidx#41] +[visit_exp (`V128`_vectype, `%`_sz{i#56385}(16), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#56385}(16)] +[visit_exp i#56385] +[visit_id i#56385] +[visit_exp (16)] +[visit_exp 16] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp `%`_u32{i#56346}(89)] +[visit_exp i#56346] +[visit_id i#56346] +[visit_exp (89)] +[visit_exp 89] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[visit_exp i] +[visit_id i] not free +[check_dims] ao i i#56434 i#56473 laneidx#43 memarg#173 memidx#264 sz#1529 vectype#251 x +dims \ = ao, i, i#56434, i#56473, laneidx#43, memarg#173, memidx#264, sz#1529, vectype#251, x +[visit_exp `VSTORE_LANE`_instr{vectype#251, sz#1529, memidx#264, memarg#173, laneidx#43}(`V128`_vectype, `%`_sz{i#56473}(32), x, ao, i)] +[visit_exp vectype#251] +[visit_id vectype#251] +[visit_exp sz#1529] +[visit_id sz#1529] +[visit_exp memidx#264] +[visit_id memidx#264] +[visit_exp memarg#173] +[visit_id memarg#173] +[visit_exp laneidx#43] +[visit_id laneidx#43] +[visit_exp (`V128`_vectype, `%`_sz{i#56473}(32), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#56473}(32)] +[visit_exp i#56473] +[visit_id i#56473] +[visit_exp (32)] +[visit_exp 32] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp `%`_u32{i#56434}(90)] +[visit_exp i#56434] +[visit_id i#56434] +[visit_exp (90)] +[visit_exp 90] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[visit_exp i] +[visit_id i] not free +[check_dims] ao i i#56522 i#56561 laneidx#45 memarg#175 memidx#266 sz#1531 vectype#253 x +dims \ = ao, i, i#56522, i#56561, laneidx#45, memarg#175, memidx#266, sz#1531, vectype#253, x +[visit_exp `VSTORE_LANE`_instr{vectype#253, sz#1531, memidx#266, memarg#175, laneidx#45}(`V128`_vectype, `%`_sz{i#56561}(64), x, ao, i)] +[visit_exp vectype#253] +[visit_id vectype#253] +[visit_exp sz#1531] +[visit_id sz#1531] +[visit_exp memidx#266] +[visit_id memidx#266] +[visit_exp memarg#175] +[visit_id memarg#175] +[visit_exp laneidx#45] +[visit_id laneidx#45] +[visit_exp (`V128`_vectype, `%`_sz{i#56561}(64), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#56561}(64)] +[visit_exp i#56561] +[visit_id i#56561] +[visit_exp (64)] +[visit_exp 64] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp `%`_u32{i#56522}(91)] +[visit_exp i#56522] +[visit_id i#56522] +[visit_exp (91)] +[visit_exp 91] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[visit_exp i] +[visit_id i] not free +[check_dims] ao i#56610 i#56650 i#56657 memarg#177 memidx#268 sz#1578 vectype?#25 x +dims \ = ao, i#56610, i#56650, i#56657, memarg#177, memidx#268, sz#1578, vectype?#25, x +[visit_exp `VLOAD`_instr{`vectype?#25`, memidx#268, memarg#177}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#1578, i#56650}(`%`_sz{i#56657}(32))), x, ao)] +[visit_exp `vectype?#25`] +[visit_id vectype?#25] +[visit_exp memidx#268] +[visit_id memidx#268] +[visit_exp memarg#177] +[visit_id memarg#177] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#1578, i#56650}(`%`_sz{i#56657}(32))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`ZERO`_vloadop_{sz#1578, i#56650}(`%`_sz{i#56657}(32)))] +[visit_exp `ZERO`_vloadop_{sz#1578, i#56650}(`%`_sz{i#56657}(32))] +[visit_exp sz#1578] +[visit_id sz#1578] +[visit_exp i#56650] +[visit_id i#56650] +[visit_exp (`%`_sz{i#56657}(32))] +[visit_exp `%`_sz{i#56657}(32)] +[visit_exp i#56657] +[visit_id i#56657] +[visit_exp (32)] +[visit_exp 32] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#56610}(92)] +[visit_exp i#56610] +[visit_id i#56610] +[visit_exp (92)] +[visit_exp 92] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +[check_dims] ao i#56694 i#56734 i#56741 memarg#179 memidx#270 sz#1625 vectype?#26 x +dims \ = ao, i#56694, i#56734, i#56741, memarg#179, memidx#270, sz#1625, vectype?#26, x +[visit_exp `VLOAD`_instr{`vectype?#26`, memidx#270, memarg#179}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#1625, i#56734}(`%`_sz{i#56741}(64))), x, ao)] +[visit_exp `vectype?#26`] +[visit_id vectype?#26] +[visit_exp memidx#270] +[visit_id memidx#270] +[visit_exp memarg#179] +[visit_id memarg#179] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#1625, i#56734}(`%`_sz{i#56741}(64))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`ZERO`_vloadop_{sz#1625, i#56734}(`%`_sz{i#56741}(64)))] +[visit_exp `ZERO`_vloadop_{sz#1625, i#56734}(`%`_sz{i#56741}(64))] +[visit_exp sz#1625] +[visit_id sz#1625] +[visit_exp i#56734] +[visit_id i#56734] +[visit_exp (`%`_sz{i#56741}(64))] +[visit_exp `%`_sz{i#56741}(64)] +[visit_exp i#56741] +[visit_id i#56741] +[visit_exp (64)] +[visit_exp 64] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp `%`_u32{i#56694}(93)] +[visit_exp i#56694] +[visit_id i#56694] +[visit_exp (93)] +[visit_exp 93] +[visit_exp (x, ao)] +[visit_exp x] +[visit_id x] not free +[visit_exp ao] +[visit_id ao] not free +ps' = +[check_dims] +[check_dims] b i#56778 vectype#257 +dims \ = b, i#56778, vectype#257 +[visit_exp `VCONST`_instr{vectype#257}(`V128`_vectype, $inv_ibytes_(128, b^16{b <- `b*`}))] +[visit_exp vectype#257] +[visit_id vectype#257] +[visit_exp (`V128`_vectype, $inv_ibytes_(128, b^16{b <- `b*`}))] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp $inv_ibytes_(128, b^16{b <- `b*`})] +[visit_exp 128] +[visit_exp b^16{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp 16] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp `%`_u32{i#56778}(12)] +[visit_exp i#56778] +[visit_id i#56778] +[visit_exp (12)] +[visit_exp 12] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp 16] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +ps' = +[check_dims] +[check_dims] bshape#13 dim#7789 i#56835 i#56884 i#56885 i#56888 i#56892 i#56899 i#56956 i#56957 l laneidx*#7 lanetype#7789 shape#845 shape#856 +dims \ = bshape#13, dim#7789, i#56835, i#56884, i#56885, i#56888, i#56892, i#56899, i#56956, i#56957, l, laneidx*#7, lanetype#7789, shape#845, shape#856 +[visit_exp `VSHUFFLE`_instr{bshape#13, `laneidx*#7`, i#56888, shape#845}(`%`_bshape{shape#856}(`%X%`_shape{lanetype#7789, dim#7789, i#56892}(`I8`_lanetype, `%`_dim{i#56899}(16))), `%`_laneidx{i#56957}(l!`%`_labelidx{i#56956}.0)^16{i#56956 <- `i#56956*`, i#56957 <- `i#56957*`, l <- `l*`})] +[visit_exp bshape#13] +[visit_id bshape#13] +[visit_exp `laneidx*#7`] +[visit_id laneidx*#7] +[visit_exp i#56888] +[visit_id i#56888] +[visit_exp shape#845] +[visit_id shape#845] +[visit_exp (`%`_bshape{shape#856}(`%X%`_shape{lanetype#7789, dim#7789, i#56892}(`I8`_lanetype, `%`_dim{i#56899}(16))), `%`_laneidx{i#56957}(l!`%`_labelidx{i#56956}.0)^16{i#56956 <- `i#56956*`, i#56957 <- `i#56957*`, l <- `l*`})] +[visit_exp `%`_bshape{shape#856}(`%X%`_shape{lanetype#7789, dim#7789, i#56892}(`I8`_lanetype, `%`_dim{i#56899}(16)))] +[visit_exp shape#856] +[visit_id shape#856] +[visit_exp (`%X%`_shape{lanetype#7789, dim#7789, i#56892}(`I8`_lanetype, `%`_dim{i#56899}(16)))] +[visit_exp `%X%`_shape{lanetype#7789, dim#7789, i#56892}(`I8`_lanetype, `%`_dim{i#56899}(16))] +[visit_exp lanetype#7789] +[visit_id lanetype#7789] +[visit_exp dim#7789] +[visit_id dim#7789] +[visit_exp i#56892] +[visit_id i#56892] +[visit_exp (`I8`_lanetype, `%`_dim{i#56899}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#56899}(16)] +[visit_exp i#56899] +[visit_id i#56899] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `%`_laneidx{i#56957}(l!`%`_labelidx{i#56956}.0)^16{i#56956 <- `i#56956*`, i#56957 <- `i#56957*`, l <- `l*`}] +[scope_enter i#56956] +[scope_enter i#56957] +[scope_enter l] +[visit_exp `%`_laneidx{i#56957}(l!`%`_labelidx{i#56956}.0)] +[visit_exp i#56957] +[visit_id i#56957] not free +[visit_exp (l!`%`_labelidx{i#56956}.0)] +[visit_exp l!`%`_labelidx{i#56956}.0] +[visit_exp l!`%`_labelidx{i#56956}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#56956] +[visit_id i#56956] not free +[visit_id i#56956] not free +[visit_id i#56957] not free +[visit_id l] not free +[scope_exit l] +[scope_exit i#56957] +[scope_exit i#56956] +[visit_exp 16] +[visit_exp `i#56956*`] +[visit_id i#56956*] no dims +[visit_id i#56956*] +[visit_exp `i#56957*`] +[visit_id i#56957*] no dims +[visit_id i#56957*] +[visit_exp `l*`] +[visit_id l*] no dims +[visit_id l*] +[visit_exp `%`_u32{i#56835}(13)] +[visit_exp i#56835] +[visit_id i#56835] +[visit_exp (13)] +[visit_exp 13] +[scope_enter i#56884] +[scope_enter i#56885] +[scope_enter l] +[visit_exp `%`_laneidx{i#56885}(l!`%`_labelidx{i#56884}.0)] +[visit_exp i#56885] +[visit_id i#56885] not free +[visit_exp (l!`%`_labelidx{i#56884}.0)] +[visit_exp l!`%`_labelidx{i#56884}.0] +[visit_exp l!`%`_labelidx{i#56884}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#56884] +[visit_id i#56884] not free +[visit_id i#56884] not free +[visit_id i#56885] not free +[visit_id l] not free +[scope_exit l] +[scope_exit i#56885] +[scope_exit i#56884] +[visit_exp 16] +[visit_exp `i#56884*`] +[visit_id i#56884*] no dims +[visit_id i#56884*] +[visit_exp `i#56885*`] +[visit_id i#56885*] no dims +[visit_id i#56885*] +[visit_exp `l*`] +[visit_id l*] not free +[visit_id l*] no dims +[check_dims] bshape#15 dim#7801 i#56981 i#56988 i#56995 lanetype#7801 shape#868 +dims \ = bshape#15, dim#7801, i#56981, i#56988, i#56995, lanetype#7801, shape#868 +[visit_exp `VSWIZZLOP`_instr{bshape#15}(`%`_bshape{shape#868}(`%X%`_shape{lanetype#7801, dim#7801, i#56988}(`I8`_lanetype, `%`_dim{i#56995}(16))), `SWIZZLE`_vswizzlop_)] +[visit_exp bshape#15] +[visit_id bshape#15] +[visit_exp (`%`_bshape{shape#868}(`%X%`_shape{lanetype#7801, dim#7801, i#56988}(`I8`_lanetype, `%`_dim{i#56995}(16))), `SWIZZLE`_vswizzlop_)] +[visit_exp `%`_bshape{shape#868}(`%X%`_shape{lanetype#7801, dim#7801, i#56988}(`I8`_lanetype, `%`_dim{i#56995}(16)))] +[visit_exp shape#868] +[visit_id shape#868] +[visit_exp (`%X%`_shape{lanetype#7801, dim#7801, i#56988}(`I8`_lanetype, `%`_dim{i#56995}(16)))] +[visit_exp `%X%`_shape{lanetype#7801, dim#7801, i#56988}(`I8`_lanetype, `%`_dim{i#56995}(16))] +[visit_exp lanetype#7801] +[visit_id lanetype#7801] +[visit_exp dim#7801] +[visit_id dim#7801] +[visit_exp i#56988] +[visit_id i#56988] +[visit_exp (`I8`_lanetype, `%`_dim{i#56995}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#56995}(16)] +[visit_exp i#56995] +[visit_id i#56995] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SWIZZLE`_vswizzlop_] +[visit_exp ()] +[visit_exp `%`_u32{i#56981}(14)] +[visit_exp i#56981] +[visit_id i#56981] +[visit_exp (14)] +[visit_exp 14] +[check_dims] bshape#17 dim#7858 i#57093 i#57100 i#57107 lanetype#7858 shape#895 +dims \ = bshape#17, dim#7858, i#57093, i#57100, i#57107, lanetype#7858, shape#895 +[visit_exp `VSWIZZLOP`_instr{bshape#17}(`%`_bshape{shape#895}(`%X%`_shape{lanetype#7858, dim#7858, i#57100}(`I8`_lanetype, `%`_dim{i#57107}(16))), `RELAXED_SWIZZLE`_vswizzlop_)] +[visit_exp bshape#17] +[visit_id bshape#17] +[visit_exp (`%`_bshape{shape#895}(`%X%`_shape{lanetype#7858, dim#7858, i#57100}(`I8`_lanetype, `%`_dim{i#57107}(16))), `RELAXED_SWIZZLE`_vswizzlop_)] +[visit_exp `%`_bshape{shape#895}(`%X%`_shape{lanetype#7858, dim#7858, i#57100}(`I8`_lanetype, `%`_dim{i#57107}(16)))] +[visit_exp shape#895] +[visit_id shape#895] +[visit_exp (`%X%`_shape{lanetype#7858, dim#7858, i#57100}(`I8`_lanetype, `%`_dim{i#57107}(16)))] +[visit_exp `%X%`_shape{lanetype#7858, dim#7858, i#57100}(`I8`_lanetype, `%`_dim{i#57107}(16))] +[visit_exp lanetype#7858] +[visit_id lanetype#7858] +[visit_exp dim#7858] +[visit_id dim#7858] +[visit_exp i#57100] +[visit_id i#57100] +[visit_exp (`I8`_lanetype, `%`_dim{i#57107}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#57107}(16)] +[visit_exp i#57107] +[visit_id i#57107] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `RELAXED_SWIZZLE`_vswizzlop_] +[visit_exp ()] +[visit_exp `%`_u32{i#57093}(256)] +[visit_exp i#57093] +[visit_id i#57093] +[visit_exp (256)] +[visit_exp 256] +ps' = +[check_dims] +[check_dims] dim#7915 i#57205 i#57212 i#57219 lanetype#7915 shape#912 +dims \ = dim#7915, i#57205, i#57212, i#57219, lanetype#7915, shape#912 +[visit_exp `VSPLAT`_instr{shape#912}(`%X%`_shape{lanetype#7915, dim#7915, i#57212}(`I8`_lanetype, `%`_dim{i#57219}(16)))] +[visit_exp shape#912] +[visit_id shape#912] +[visit_exp (`%X%`_shape{lanetype#7915, dim#7915, i#57212}(`I8`_lanetype, `%`_dim{i#57219}(16)))] +[visit_exp `%X%`_shape{lanetype#7915, dim#7915, i#57212}(`I8`_lanetype, `%`_dim{i#57219}(16))] +[visit_exp lanetype#7915] +[visit_id lanetype#7915] +[visit_exp dim#7915] +[visit_id dim#7915] +[visit_exp i#57212] +[visit_id i#57212] +[visit_exp (`I8`_lanetype, `%`_dim{i#57219}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#57219}(16)] +[visit_exp i#57219] +[visit_id i#57219] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `%`_u32{i#57205}(15)] +[visit_exp i#57205] +[visit_id i#57205] +[visit_exp (15)] +[visit_exp 15] +[check_dims] dim#7927 i#57242 i#57249 i#57256 lanetype#7927 shape#914 +dims \ = dim#7927, i#57242, i#57249, i#57256, lanetype#7927, shape#914 +[visit_exp `VSPLAT`_instr{shape#914}(`%X%`_shape{lanetype#7927, dim#7927, i#57249}(`I16`_lanetype, `%`_dim{i#57256}(8)))] +[visit_exp shape#914] +[visit_id shape#914] +[visit_exp (`%X%`_shape{lanetype#7927, dim#7927, i#57249}(`I16`_lanetype, `%`_dim{i#57256}(8)))] +[visit_exp `%X%`_shape{lanetype#7927, dim#7927, i#57249}(`I16`_lanetype, `%`_dim{i#57256}(8))] +[visit_exp lanetype#7927] +[visit_id lanetype#7927] +[visit_exp dim#7927] +[visit_id dim#7927] +[visit_exp i#57249] +[visit_id i#57249] +[visit_exp (`I16`_lanetype, `%`_dim{i#57256}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#57256}(8)] +[visit_exp i#57256] +[visit_id i#57256] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_u32{i#57242}(16)] +[visit_exp i#57242] +[visit_id i#57242] +[visit_exp (16)] +[visit_exp 16] +[check_dims] dim#7939 i#57279 i#57286 i#57293 lanetype#7939 shape#916 +dims \ = dim#7939, i#57279, i#57286, i#57293, lanetype#7939, shape#916 +[visit_exp `VSPLAT`_instr{shape#916}(`%X%`_shape{lanetype#7939, dim#7939, i#57286}(`I32`_lanetype, `%`_dim{i#57293}(4)))] +[visit_exp shape#916] +[visit_id shape#916] +[visit_exp (`%X%`_shape{lanetype#7939, dim#7939, i#57286}(`I32`_lanetype, `%`_dim{i#57293}(4)))] +[visit_exp `%X%`_shape{lanetype#7939, dim#7939, i#57286}(`I32`_lanetype, `%`_dim{i#57293}(4))] +[visit_exp lanetype#7939] +[visit_id lanetype#7939] +[visit_exp dim#7939] +[visit_id dim#7939] +[visit_exp i#57286] +[visit_id i#57286] +[visit_exp (`I32`_lanetype, `%`_dim{i#57293}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#57293}(4)] +[visit_exp i#57293] +[visit_id i#57293] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_u32{i#57279}(17)] +[visit_exp i#57279] +[visit_id i#57279] +[visit_exp (17)] +[visit_exp 17] +[check_dims] dim#7951 i#57316 i#57323 i#57330 lanetype#7951 shape#918 +dims \ = dim#7951, i#57316, i#57323, i#57330, lanetype#7951, shape#918 +[visit_exp `VSPLAT`_instr{shape#918}(`%X%`_shape{lanetype#7951, dim#7951, i#57323}(`I64`_lanetype, `%`_dim{i#57330}(2)))] +[visit_exp shape#918] +[visit_id shape#918] +[visit_exp (`%X%`_shape{lanetype#7951, dim#7951, i#57323}(`I64`_lanetype, `%`_dim{i#57330}(2)))] +[visit_exp `%X%`_shape{lanetype#7951, dim#7951, i#57323}(`I64`_lanetype, `%`_dim{i#57330}(2))] +[visit_exp lanetype#7951] +[visit_id lanetype#7951] +[visit_exp dim#7951] +[visit_id dim#7951] +[visit_exp i#57323] +[visit_id i#57323] +[visit_exp (`I64`_lanetype, `%`_dim{i#57330}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#57330}(2)] +[visit_exp i#57330] +[visit_id i#57330] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%`_u32{i#57316}(18)] +[visit_exp i#57316] +[visit_id i#57316] +[visit_exp (18)] +[visit_exp 18] +[check_dims] dim#7963 i#57353 i#57360 i#57367 lanetype#7963 shape#920 +dims \ = dim#7963, i#57353, i#57360, i#57367, lanetype#7963, shape#920 +[visit_exp `VSPLAT`_instr{shape#920}(`%X%`_shape{lanetype#7963, dim#7963, i#57360}(`F32`_lanetype, `%`_dim{i#57367}(4)))] +[visit_exp shape#920] +[visit_id shape#920] +[visit_exp (`%X%`_shape{lanetype#7963, dim#7963, i#57360}(`F32`_lanetype, `%`_dim{i#57367}(4)))] +[visit_exp `%X%`_shape{lanetype#7963, dim#7963, i#57360}(`F32`_lanetype, `%`_dim{i#57367}(4))] +[visit_exp lanetype#7963] +[visit_id lanetype#7963] +[visit_exp dim#7963] +[visit_id dim#7963] +[visit_exp i#57360] +[visit_id i#57360] +[visit_exp (`F32`_lanetype, `%`_dim{i#57367}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#57367}(4)] +[visit_exp i#57367] +[visit_id i#57367] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_u32{i#57353}(19)] +[visit_exp i#57353] +[visit_id i#57353] +[visit_exp (19)] +[visit_exp 19] +[check_dims] dim#7975 i#57390 i#57397 i#57404 lanetype#7975 shape#922 +dims \ = dim#7975, i#57390, i#57397, i#57404, lanetype#7975, shape#922 +[visit_exp `VSPLAT`_instr{shape#922}(`%X%`_shape{lanetype#7975, dim#7975, i#57397}(`F64`_lanetype, `%`_dim{i#57404}(2)))] +[visit_exp shape#922] +[visit_id shape#922] +[visit_exp (`%X%`_shape{lanetype#7975, dim#7975, i#57397}(`F64`_lanetype, `%`_dim{i#57404}(2)))] +[visit_exp `%X%`_shape{lanetype#7975, dim#7975, i#57397}(`F64`_lanetype, `%`_dim{i#57404}(2))] +[visit_exp lanetype#7975] +[visit_id lanetype#7975] +[visit_exp dim#7975] +[visit_id dim#7975] +[visit_exp i#57397] +[visit_id i#57397] +[visit_exp (`F64`_lanetype, `%`_dim{i#57404}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#57404}(2)] +[visit_exp i#57404] +[visit_id i#57404] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%`_u32{i#57390}(20)] +[visit_exp i#57390] +[visit_id i#57390] +[visit_exp (20)] +[visit_exp 20] +ps' = +[check_dims] +[check_dims] dim#7987 i#57427 i#57476 i#57477 i#57485 i#57492 i#57582 i#57583 l laneidx#47 lanetype#7987 shape#924 sx?#43 +dims \ = dim#7987, i#57427, i#57476, i#57477, i#57485, i#57492, i#57582, i#57583, l, laneidx#47, lanetype#7987, shape#924, sx?#43 +[visit_exp `VEXTRACT_LANE`_instr{shape#924, `sx?#43`, laneidx#47}(`%X%`_shape{lanetype#7987, dim#7987, i#57485}(`I8`_lanetype, `%`_dim{i#57492}(16)), ?(`S`_sx), `%`_laneidx{i#57583}(l!`%`_labelidx{i#57582}.0))] +[visit_exp shape#924] +[visit_id shape#924] +[visit_exp `sx?#43`] +[visit_id sx?#43] +[visit_exp laneidx#47] +[visit_id laneidx#47] +[visit_exp (`%X%`_shape{lanetype#7987, dim#7987, i#57485}(`I8`_lanetype, `%`_dim{i#57492}(16)), ?(`S`_sx), `%`_laneidx{i#57583}(l!`%`_labelidx{i#57582}.0))] +[visit_exp `%X%`_shape{lanetype#7987, dim#7987, i#57485}(`I8`_lanetype, `%`_dim{i#57492}(16))] +[visit_exp lanetype#7987] +[visit_id lanetype#7987] +[visit_exp dim#7987] +[visit_id dim#7987] +[visit_exp i#57485] +[visit_id i#57485] +[visit_exp (`I8`_lanetype, `%`_dim{i#57492}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#57492}(16)] +[visit_exp i#57492] +[visit_id i#57492] +[visit_exp (16)] +[visit_exp 16] +[visit_exp ?(`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_laneidx{i#57583}(l!`%`_labelidx{i#57582}.0)] +[visit_exp i#57583] +[visit_id i#57583] +[visit_exp (l!`%`_labelidx{i#57582}.0)] +[visit_exp l!`%`_labelidx{i#57582}.0] +[visit_exp l!`%`_labelidx{i#57582}] +[visit_exp l] +[visit_id l] +[visit_exp i#57582] +[visit_id i#57582] +[visit_exp `%`_u32{i#57427}(21)] +[visit_exp i#57427] +[visit_id i#57427] +[visit_exp (21)] +[visit_exp 21] +[visit_exp `%`_laneidx{i#57477}(l!`%`_labelidx{i#57476}.0)] +[visit_exp i#57477] +[visit_id i#57477] +[visit_exp (l!`%`_labelidx{i#57476}.0)] +[visit_exp l!`%`_labelidx{i#57476}.0] +[visit_exp l!`%`_labelidx{i#57476}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#57476] +[visit_id i#57476] +[check_dims] dim#7999 i#57607 i#57656 i#57657 i#57665 i#57672 i#57762 i#57763 l laneidx#49 lanetype#7999 shape#926 sx?#45 +dims \ = dim#7999, i#57607, i#57656, i#57657, i#57665, i#57672, i#57762, i#57763, l, laneidx#49, lanetype#7999, shape#926, sx?#45 +[visit_exp `VEXTRACT_LANE`_instr{shape#926, `sx?#45`, laneidx#49}(`%X%`_shape{lanetype#7999, dim#7999, i#57665}(`I8`_lanetype, `%`_dim{i#57672}(16)), ?(`U`_sx), `%`_laneidx{i#57763}(l!`%`_labelidx{i#57762}.0))] +[visit_exp shape#926] +[visit_id shape#926] +[visit_exp `sx?#45`] +[visit_id sx?#45] +[visit_exp laneidx#49] +[visit_id laneidx#49] +[visit_exp (`%X%`_shape{lanetype#7999, dim#7999, i#57665}(`I8`_lanetype, `%`_dim{i#57672}(16)), ?(`U`_sx), `%`_laneidx{i#57763}(l!`%`_labelidx{i#57762}.0))] +[visit_exp `%X%`_shape{lanetype#7999, dim#7999, i#57665}(`I8`_lanetype, `%`_dim{i#57672}(16))] +[visit_exp lanetype#7999] +[visit_id lanetype#7999] +[visit_exp dim#7999] +[visit_id dim#7999] +[visit_exp i#57665] +[visit_id i#57665] +[visit_exp (`I8`_lanetype, `%`_dim{i#57672}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#57672}(16)] +[visit_exp i#57672] +[visit_id i#57672] +[visit_exp (16)] +[visit_exp 16] +[visit_exp ?(`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_laneidx{i#57763}(l!`%`_labelidx{i#57762}.0)] +[visit_exp i#57763] +[visit_id i#57763] +[visit_exp (l!`%`_labelidx{i#57762}.0)] +[visit_exp l!`%`_labelidx{i#57762}.0] +[visit_exp l!`%`_labelidx{i#57762}] +[visit_exp l] +[visit_id l] +[visit_exp i#57762] +[visit_id i#57762] +[visit_exp `%`_u32{i#57607}(22)] +[visit_exp i#57607] +[visit_id i#57607] +[visit_exp (22)] +[visit_exp 22] +[visit_exp `%`_laneidx{i#57657}(l!`%`_labelidx{i#57656}.0)] +[visit_exp i#57657] +[visit_id i#57657] +[visit_exp (l!`%`_labelidx{i#57656}.0)] +[visit_exp l!`%`_labelidx{i#57656}.0] +[visit_exp l!`%`_labelidx{i#57656}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#57656] +[visit_id i#57656] +[check_dims] dim#8011 i#57787 i#57836 i#57837 i#57845 i#57852 i#57898 i#57899 l laneidx#51 lanetype#8011 shape#928 +dims \ = dim#8011, i#57787, i#57836, i#57837, i#57845, i#57852, i#57898, i#57899, l, laneidx#51, lanetype#8011, shape#928 +[visit_exp `VREPLACE_LANE`_instr{shape#928, laneidx#51}(`%X%`_shape{lanetype#8011, dim#8011, i#57845}(`I8`_lanetype, `%`_dim{i#57852}(16)), `%`_laneidx{i#57899}(l!`%`_labelidx{i#57898}.0))] +[visit_exp shape#928] +[visit_id shape#928] +[visit_exp laneidx#51] +[visit_id laneidx#51] +[visit_exp (`%X%`_shape{lanetype#8011, dim#8011, i#57845}(`I8`_lanetype, `%`_dim{i#57852}(16)), `%`_laneidx{i#57899}(l!`%`_labelidx{i#57898}.0))] +[visit_exp `%X%`_shape{lanetype#8011, dim#8011, i#57845}(`I8`_lanetype, `%`_dim{i#57852}(16))] +[visit_exp lanetype#8011] +[visit_id lanetype#8011] +[visit_exp dim#8011] +[visit_id dim#8011] +[visit_exp i#57845] +[visit_id i#57845] +[visit_exp (`I8`_lanetype, `%`_dim{i#57852}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#57852}(16)] +[visit_exp i#57852] +[visit_id i#57852] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `%`_laneidx{i#57899}(l!`%`_labelidx{i#57898}.0)] +[visit_exp i#57899] +[visit_id i#57899] +[visit_exp (l!`%`_labelidx{i#57898}.0)] +[visit_exp l!`%`_labelidx{i#57898}.0] +[visit_exp l!`%`_labelidx{i#57898}] +[visit_exp l] +[visit_id l] +[visit_exp i#57898] +[visit_id i#57898] +[visit_exp `%`_u32{i#57787}(23)] +[visit_exp i#57787] +[visit_id i#57787] +[visit_exp (23)] +[visit_exp 23] +[visit_exp `%`_laneidx{i#57837}(l!`%`_labelidx{i#57836}.0)] +[visit_exp i#57837] +[visit_id i#57837] +[visit_exp (l!`%`_labelidx{i#57836}.0)] +[visit_exp l!`%`_labelidx{i#57836}.0] +[visit_exp l!`%`_labelidx{i#57836}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#57836] +[visit_id i#57836] +[check_dims] dim#8023 i#57923 i#57972 i#57973 i#57981 i#57988 i#58078 i#58079 l laneidx#53 lanetype#8023 shape#930 sx?#47 +dims \ = dim#8023, i#57923, i#57972, i#57973, i#57981, i#57988, i#58078, i#58079, l, laneidx#53, lanetype#8023, shape#930, sx?#47 +[visit_exp `VEXTRACT_LANE`_instr{shape#930, `sx?#47`, laneidx#53}(`%X%`_shape{lanetype#8023, dim#8023, i#57981}(`I16`_lanetype, `%`_dim{i#57988}(8)), ?(`S`_sx), `%`_laneidx{i#58079}(l!`%`_labelidx{i#58078}.0))] +[visit_exp shape#930] +[visit_id shape#930] +[visit_exp `sx?#47`] +[visit_id sx?#47] +[visit_exp laneidx#53] +[visit_id laneidx#53] +[visit_exp (`%X%`_shape{lanetype#8023, dim#8023, i#57981}(`I16`_lanetype, `%`_dim{i#57988}(8)), ?(`S`_sx), `%`_laneidx{i#58079}(l!`%`_labelidx{i#58078}.0))] +[visit_exp `%X%`_shape{lanetype#8023, dim#8023, i#57981}(`I16`_lanetype, `%`_dim{i#57988}(8))] +[visit_exp lanetype#8023] +[visit_id lanetype#8023] +[visit_exp dim#8023] +[visit_id dim#8023] +[visit_exp i#57981] +[visit_id i#57981] +[visit_exp (`I16`_lanetype, `%`_dim{i#57988}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#57988}(8)] +[visit_exp i#57988] +[visit_id i#57988] +[visit_exp (8)] +[visit_exp 8] +[visit_exp ?(`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_laneidx{i#58079}(l!`%`_labelidx{i#58078}.0)] +[visit_exp i#58079] +[visit_id i#58079] +[visit_exp (l!`%`_labelidx{i#58078}.0)] +[visit_exp l!`%`_labelidx{i#58078}.0] +[visit_exp l!`%`_labelidx{i#58078}] +[visit_exp l] +[visit_id l] +[visit_exp i#58078] +[visit_id i#58078] +[visit_exp `%`_u32{i#57923}(24)] +[visit_exp i#57923] +[visit_id i#57923] +[visit_exp (24)] +[visit_exp 24] +[visit_exp `%`_laneidx{i#57973}(l!`%`_labelidx{i#57972}.0)] +[visit_exp i#57973] +[visit_id i#57973] +[visit_exp (l!`%`_labelidx{i#57972}.0)] +[visit_exp l!`%`_labelidx{i#57972}.0] +[visit_exp l!`%`_labelidx{i#57972}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#57972] +[visit_id i#57972] +[check_dims] dim#8035 i#58103 i#58152 i#58153 i#58161 i#58168 i#58258 i#58259 l laneidx#55 lanetype#8035 shape#932 sx?#49 +dims \ = dim#8035, i#58103, i#58152, i#58153, i#58161, i#58168, i#58258, i#58259, l, laneidx#55, lanetype#8035, shape#932, sx?#49 +[visit_exp `VEXTRACT_LANE`_instr{shape#932, `sx?#49`, laneidx#55}(`%X%`_shape{lanetype#8035, dim#8035, i#58161}(`I16`_lanetype, `%`_dim{i#58168}(8)), ?(`U`_sx), `%`_laneidx{i#58259}(l!`%`_labelidx{i#58258}.0))] +[visit_exp shape#932] +[visit_id shape#932] +[visit_exp `sx?#49`] +[visit_id sx?#49] +[visit_exp laneidx#55] +[visit_id laneidx#55] +[visit_exp (`%X%`_shape{lanetype#8035, dim#8035, i#58161}(`I16`_lanetype, `%`_dim{i#58168}(8)), ?(`U`_sx), `%`_laneidx{i#58259}(l!`%`_labelidx{i#58258}.0))] +[visit_exp `%X%`_shape{lanetype#8035, dim#8035, i#58161}(`I16`_lanetype, `%`_dim{i#58168}(8))] +[visit_exp lanetype#8035] +[visit_id lanetype#8035] +[visit_exp dim#8035] +[visit_id dim#8035] +[visit_exp i#58161] +[visit_id i#58161] +[visit_exp (`I16`_lanetype, `%`_dim{i#58168}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#58168}(8)] +[visit_exp i#58168] +[visit_id i#58168] +[visit_exp (8)] +[visit_exp 8] +[visit_exp ?(`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_laneidx{i#58259}(l!`%`_labelidx{i#58258}.0)] +[visit_exp i#58259] +[visit_id i#58259] +[visit_exp (l!`%`_labelidx{i#58258}.0)] +[visit_exp l!`%`_labelidx{i#58258}.0] +[visit_exp l!`%`_labelidx{i#58258}] +[visit_exp l] +[visit_id l] +[visit_exp i#58258] +[visit_id i#58258] +[visit_exp `%`_u32{i#58103}(25)] +[visit_exp i#58103] +[visit_id i#58103] +[visit_exp (25)] +[visit_exp 25] +[visit_exp `%`_laneidx{i#58153}(l!`%`_labelidx{i#58152}.0)] +[visit_exp i#58153] +[visit_id i#58153] +[visit_exp (l!`%`_labelidx{i#58152}.0)] +[visit_exp l!`%`_labelidx{i#58152}.0] +[visit_exp l!`%`_labelidx{i#58152}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#58152] +[visit_id i#58152] +[check_dims] dim#8047 i#58283 i#58332 i#58333 i#58341 i#58348 i#58394 i#58395 l laneidx#57 lanetype#8047 shape#934 +dims \ = dim#8047, i#58283, i#58332, i#58333, i#58341, i#58348, i#58394, i#58395, l, laneidx#57, lanetype#8047, shape#934 +[visit_exp `VREPLACE_LANE`_instr{shape#934, laneidx#57}(`%X%`_shape{lanetype#8047, dim#8047, i#58341}(`I16`_lanetype, `%`_dim{i#58348}(8)), `%`_laneidx{i#58395}(l!`%`_labelidx{i#58394}.0))] +[visit_exp shape#934] +[visit_id shape#934] +[visit_exp laneidx#57] +[visit_id laneidx#57] +[visit_exp (`%X%`_shape{lanetype#8047, dim#8047, i#58341}(`I16`_lanetype, `%`_dim{i#58348}(8)), `%`_laneidx{i#58395}(l!`%`_labelidx{i#58394}.0))] +[visit_exp `%X%`_shape{lanetype#8047, dim#8047, i#58341}(`I16`_lanetype, `%`_dim{i#58348}(8))] +[visit_exp lanetype#8047] +[visit_id lanetype#8047] +[visit_exp dim#8047] +[visit_id dim#8047] +[visit_exp i#58341] +[visit_id i#58341] +[visit_exp (`I16`_lanetype, `%`_dim{i#58348}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#58348}(8)] +[visit_exp i#58348] +[visit_id i#58348] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_laneidx{i#58395}(l!`%`_labelidx{i#58394}.0)] +[visit_exp i#58395] +[visit_id i#58395] +[visit_exp (l!`%`_labelidx{i#58394}.0)] +[visit_exp l!`%`_labelidx{i#58394}.0] +[visit_exp l!`%`_labelidx{i#58394}] +[visit_exp l] +[visit_id l] +[visit_exp i#58394] +[visit_id i#58394] +[visit_exp `%`_u32{i#58283}(26)] +[visit_exp i#58283] +[visit_id i#58283] +[visit_exp (26)] +[visit_exp 26] +[visit_exp `%`_laneidx{i#58333}(l!`%`_labelidx{i#58332}.0)] +[visit_exp i#58333] +[visit_id i#58333] +[visit_exp (l!`%`_labelidx{i#58332}.0)] +[visit_exp l!`%`_labelidx{i#58332}.0] +[visit_exp l!`%`_labelidx{i#58332}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#58332] +[visit_id i#58332] +[check_dims] dim#8059 i#58419 i#58468 i#58469 i#58477 i#58484 i#58530 i#58531 l laneidx#59 lanetype#8059 shape#936 sx?#51 +dims \ = dim#8059, i#58419, i#58468, i#58469, i#58477, i#58484, i#58530, i#58531, l, laneidx#59, lanetype#8059, shape#936, sx?#51 +[visit_exp `VEXTRACT_LANE`_instr{shape#936, `sx?#51`, laneidx#59}(`%X%`_shape{lanetype#8059, dim#8059, i#58477}(`I32`_lanetype, `%`_dim{i#58484}(4)), ?(), `%`_laneidx{i#58531}(l!`%`_labelidx{i#58530}.0))] +[visit_exp shape#936] +[visit_id shape#936] +[visit_exp `sx?#51`] +[visit_id sx?#51] +[visit_exp laneidx#59] +[visit_id laneidx#59] +[visit_exp (`%X%`_shape{lanetype#8059, dim#8059, i#58477}(`I32`_lanetype, `%`_dim{i#58484}(4)), ?(), `%`_laneidx{i#58531}(l!`%`_labelidx{i#58530}.0))] +[visit_exp `%X%`_shape{lanetype#8059, dim#8059, i#58477}(`I32`_lanetype, `%`_dim{i#58484}(4))] +[visit_exp lanetype#8059] +[visit_id lanetype#8059] +[visit_exp dim#8059] +[visit_id dim#8059] +[visit_exp i#58477] +[visit_id i#58477] +[visit_exp (`I32`_lanetype, `%`_dim{i#58484}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#58484}(4)] +[visit_exp i#58484] +[visit_id i#58484] +[visit_exp (4)] +[visit_exp 4] +[visit_exp ?()] +[visit_exp `%`_laneidx{i#58531}(l!`%`_labelidx{i#58530}.0)] +[visit_exp i#58531] +[visit_id i#58531] +[visit_exp (l!`%`_labelidx{i#58530}.0)] +[visit_exp l!`%`_labelidx{i#58530}.0] +[visit_exp l!`%`_labelidx{i#58530}] +[visit_exp l] +[visit_id l] +[visit_exp i#58530] +[visit_id i#58530] +[visit_exp `%`_u32{i#58419}(27)] +[visit_exp i#58419] +[visit_id i#58419] +[visit_exp (27)] +[visit_exp 27] +[visit_exp `%`_laneidx{i#58469}(l!`%`_labelidx{i#58468}.0)] +[visit_exp i#58469] +[visit_id i#58469] +[visit_exp (l!`%`_labelidx{i#58468}.0)] +[visit_exp l!`%`_labelidx{i#58468}.0] +[visit_exp l!`%`_labelidx{i#58468}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#58468] +[visit_id i#58468] +[check_dims] dim#8071 i#58555 i#58604 i#58605 i#58613 i#58620 i#58666 i#58667 l laneidx#61 lanetype#8071 shape#938 +dims \ = dim#8071, i#58555, i#58604, i#58605, i#58613, i#58620, i#58666, i#58667, l, laneidx#61, lanetype#8071, shape#938 +[visit_exp `VREPLACE_LANE`_instr{shape#938, laneidx#61}(`%X%`_shape{lanetype#8071, dim#8071, i#58613}(`I32`_lanetype, `%`_dim{i#58620}(4)), `%`_laneidx{i#58667}(l!`%`_labelidx{i#58666}.0))] +[visit_exp shape#938] +[visit_id shape#938] +[visit_exp laneidx#61] +[visit_id laneidx#61] +[visit_exp (`%X%`_shape{lanetype#8071, dim#8071, i#58613}(`I32`_lanetype, `%`_dim{i#58620}(4)), `%`_laneidx{i#58667}(l!`%`_labelidx{i#58666}.0))] +[visit_exp `%X%`_shape{lanetype#8071, dim#8071, i#58613}(`I32`_lanetype, `%`_dim{i#58620}(4))] +[visit_exp lanetype#8071] +[visit_id lanetype#8071] +[visit_exp dim#8071] +[visit_id dim#8071] +[visit_exp i#58613] +[visit_id i#58613] +[visit_exp (`I32`_lanetype, `%`_dim{i#58620}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#58620}(4)] +[visit_exp i#58620] +[visit_id i#58620] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_laneidx{i#58667}(l!`%`_labelidx{i#58666}.0)] +[visit_exp i#58667] +[visit_id i#58667] +[visit_exp (l!`%`_labelidx{i#58666}.0)] +[visit_exp l!`%`_labelidx{i#58666}.0] +[visit_exp l!`%`_labelidx{i#58666}] +[visit_exp l] +[visit_id l] +[visit_exp i#58666] +[visit_id i#58666] +[visit_exp `%`_u32{i#58555}(28)] +[visit_exp i#58555] +[visit_id i#58555] +[visit_exp (28)] +[visit_exp 28] +[visit_exp `%`_laneidx{i#58605}(l!`%`_labelidx{i#58604}.0)] +[visit_exp i#58605] +[visit_id i#58605] +[visit_exp (l!`%`_labelidx{i#58604}.0)] +[visit_exp l!`%`_labelidx{i#58604}.0] +[visit_exp l!`%`_labelidx{i#58604}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#58604] +[visit_id i#58604] +[check_dims] dim#8083 i#58691 i#58740 i#58741 i#58749 i#58756 i#58802 i#58803 l laneidx#63 lanetype#8083 shape#940 sx?#53 +dims \ = dim#8083, i#58691, i#58740, i#58741, i#58749, i#58756, i#58802, i#58803, l, laneidx#63, lanetype#8083, shape#940, sx?#53 +[visit_exp `VEXTRACT_LANE`_instr{shape#940, `sx?#53`, laneidx#63}(`%X%`_shape{lanetype#8083, dim#8083, i#58749}(`I64`_lanetype, `%`_dim{i#58756}(2)), ?(), `%`_laneidx{i#58803}(l!`%`_labelidx{i#58802}.0))] +[visit_exp shape#940] +[visit_id shape#940] +[visit_exp `sx?#53`] +[visit_id sx?#53] +[visit_exp laneidx#63] +[visit_id laneidx#63] +[visit_exp (`%X%`_shape{lanetype#8083, dim#8083, i#58749}(`I64`_lanetype, `%`_dim{i#58756}(2)), ?(), `%`_laneidx{i#58803}(l!`%`_labelidx{i#58802}.0))] +[visit_exp `%X%`_shape{lanetype#8083, dim#8083, i#58749}(`I64`_lanetype, `%`_dim{i#58756}(2))] +[visit_exp lanetype#8083] +[visit_id lanetype#8083] +[visit_exp dim#8083] +[visit_id dim#8083] +[visit_exp i#58749] +[visit_id i#58749] +[visit_exp (`I64`_lanetype, `%`_dim{i#58756}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#58756}(2)] +[visit_exp i#58756] +[visit_id i#58756] +[visit_exp (2)] +[visit_exp 2] +[visit_exp ?()] +[visit_exp `%`_laneidx{i#58803}(l!`%`_labelidx{i#58802}.0)] +[visit_exp i#58803] +[visit_id i#58803] +[visit_exp (l!`%`_labelidx{i#58802}.0)] +[visit_exp l!`%`_labelidx{i#58802}.0] +[visit_exp l!`%`_labelidx{i#58802}] +[visit_exp l] +[visit_id l] +[visit_exp i#58802] +[visit_id i#58802] +[visit_exp `%`_u32{i#58691}(29)] +[visit_exp i#58691] +[visit_id i#58691] +[visit_exp (29)] +[visit_exp 29] +[visit_exp `%`_laneidx{i#58741}(l!`%`_labelidx{i#58740}.0)] +[visit_exp i#58741] +[visit_id i#58741] +[visit_exp (l!`%`_labelidx{i#58740}.0)] +[visit_exp l!`%`_labelidx{i#58740}.0] +[visit_exp l!`%`_labelidx{i#58740}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#58740] +[visit_id i#58740] +[check_dims] dim#8095 i#58827 i#58876 i#58877 i#58885 i#58892 i#58938 i#58939 l laneidx#65 lanetype#8095 shape#942 +dims \ = dim#8095, i#58827, i#58876, i#58877, i#58885, i#58892, i#58938, i#58939, l, laneidx#65, lanetype#8095, shape#942 +[visit_exp `VREPLACE_LANE`_instr{shape#942, laneidx#65}(`%X%`_shape{lanetype#8095, dim#8095, i#58885}(`I64`_lanetype, `%`_dim{i#58892}(2)), `%`_laneidx{i#58939}(l!`%`_labelidx{i#58938}.0))] +[visit_exp shape#942] +[visit_id shape#942] +[visit_exp laneidx#65] +[visit_id laneidx#65] +[visit_exp (`%X%`_shape{lanetype#8095, dim#8095, i#58885}(`I64`_lanetype, `%`_dim{i#58892}(2)), `%`_laneidx{i#58939}(l!`%`_labelidx{i#58938}.0))] +[visit_exp `%X%`_shape{lanetype#8095, dim#8095, i#58885}(`I64`_lanetype, `%`_dim{i#58892}(2))] +[visit_exp lanetype#8095] +[visit_id lanetype#8095] +[visit_exp dim#8095] +[visit_id dim#8095] +[visit_exp i#58885] +[visit_id i#58885] +[visit_exp (`I64`_lanetype, `%`_dim{i#58892}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#58892}(2)] +[visit_exp i#58892] +[visit_id i#58892] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%`_laneidx{i#58939}(l!`%`_labelidx{i#58938}.0)] +[visit_exp i#58939] +[visit_id i#58939] +[visit_exp (l!`%`_labelidx{i#58938}.0)] +[visit_exp l!`%`_labelidx{i#58938}.0] +[visit_exp l!`%`_labelidx{i#58938}] +[visit_exp l] +[visit_id l] +[visit_exp i#58938] +[visit_id i#58938] +[visit_exp `%`_u32{i#58827}(30)] +[visit_exp i#58827] +[visit_id i#58827] +[visit_exp (30)] +[visit_exp 30] +[visit_exp `%`_laneidx{i#58877}(l!`%`_labelidx{i#58876}.0)] +[visit_exp i#58877] +[visit_id i#58877] +[visit_exp (l!`%`_labelidx{i#58876}.0)] +[visit_exp l!`%`_labelidx{i#58876}.0] +[visit_exp l!`%`_labelidx{i#58876}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#58876] +[visit_id i#58876] +[check_dims] dim#8107 i#58963 i#59012 i#59013 i#59021 i#59028 i#59074 i#59075 l laneidx#67 lanetype#8107 shape#944 sx?#55 +dims \ = dim#8107, i#58963, i#59012, i#59013, i#59021, i#59028, i#59074, i#59075, l, laneidx#67, lanetype#8107, shape#944, sx?#55 +[visit_exp `VEXTRACT_LANE`_instr{shape#944, `sx?#55`, laneidx#67}(`%X%`_shape{lanetype#8107, dim#8107, i#59021}(`F32`_lanetype, `%`_dim{i#59028}(4)), ?(), `%`_laneidx{i#59075}(l!`%`_labelidx{i#59074}.0))] +[visit_exp shape#944] +[visit_id shape#944] +[visit_exp `sx?#55`] +[visit_id sx?#55] +[visit_exp laneidx#67] +[visit_id laneidx#67] +[visit_exp (`%X%`_shape{lanetype#8107, dim#8107, i#59021}(`F32`_lanetype, `%`_dim{i#59028}(4)), ?(), `%`_laneidx{i#59075}(l!`%`_labelidx{i#59074}.0))] +[visit_exp `%X%`_shape{lanetype#8107, dim#8107, i#59021}(`F32`_lanetype, `%`_dim{i#59028}(4))] +[visit_exp lanetype#8107] +[visit_id lanetype#8107] +[visit_exp dim#8107] +[visit_id dim#8107] +[visit_exp i#59021] +[visit_id i#59021] +[visit_exp (`F32`_lanetype, `%`_dim{i#59028}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#59028}(4)] +[visit_exp i#59028] +[visit_id i#59028] +[visit_exp (4)] +[visit_exp 4] +[visit_exp ?()] +[visit_exp `%`_laneidx{i#59075}(l!`%`_labelidx{i#59074}.0)] +[visit_exp i#59075] +[visit_id i#59075] +[visit_exp (l!`%`_labelidx{i#59074}.0)] +[visit_exp l!`%`_labelidx{i#59074}.0] +[visit_exp l!`%`_labelidx{i#59074}] +[visit_exp l] +[visit_id l] +[visit_exp i#59074] +[visit_id i#59074] +[visit_exp `%`_u32{i#58963}(31)] +[visit_exp i#58963] +[visit_id i#58963] +[visit_exp (31)] +[visit_exp 31] +[visit_exp `%`_laneidx{i#59013}(l!`%`_labelidx{i#59012}.0)] +[visit_exp i#59013] +[visit_id i#59013] +[visit_exp (l!`%`_labelidx{i#59012}.0)] +[visit_exp l!`%`_labelidx{i#59012}.0] +[visit_exp l!`%`_labelidx{i#59012}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#59012] +[visit_id i#59012] +[check_dims] dim#8119 i#59099 i#59148 i#59149 i#59157 i#59164 i#59210 i#59211 l laneidx#69 lanetype#8119 shape#946 +dims \ = dim#8119, i#59099, i#59148, i#59149, i#59157, i#59164, i#59210, i#59211, l, laneidx#69, lanetype#8119, shape#946 +[visit_exp `VREPLACE_LANE`_instr{shape#946, laneidx#69}(`%X%`_shape{lanetype#8119, dim#8119, i#59157}(`F32`_lanetype, `%`_dim{i#59164}(4)), `%`_laneidx{i#59211}(l!`%`_labelidx{i#59210}.0))] +[visit_exp shape#946] +[visit_id shape#946] +[visit_exp laneidx#69] +[visit_id laneidx#69] +[visit_exp (`%X%`_shape{lanetype#8119, dim#8119, i#59157}(`F32`_lanetype, `%`_dim{i#59164}(4)), `%`_laneidx{i#59211}(l!`%`_labelidx{i#59210}.0))] +[visit_exp `%X%`_shape{lanetype#8119, dim#8119, i#59157}(`F32`_lanetype, `%`_dim{i#59164}(4))] +[visit_exp lanetype#8119] +[visit_id lanetype#8119] +[visit_exp dim#8119] +[visit_id dim#8119] +[visit_exp i#59157] +[visit_id i#59157] +[visit_exp (`F32`_lanetype, `%`_dim{i#59164}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#59164}(4)] +[visit_exp i#59164] +[visit_id i#59164] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_laneidx{i#59211}(l!`%`_labelidx{i#59210}.0)] +[visit_exp i#59211] +[visit_id i#59211] +[visit_exp (l!`%`_labelidx{i#59210}.0)] +[visit_exp l!`%`_labelidx{i#59210}.0] +[visit_exp l!`%`_labelidx{i#59210}] +[visit_exp l] +[visit_id l] +[visit_exp i#59210] +[visit_id i#59210] +[visit_exp `%`_u32{i#59099}(32)] +[visit_exp i#59099] +[visit_id i#59099] +[visit_exp (32)] +[visit_exp 32] +[visit_exp `%`_laneidx{i#59149}(l!`%`_labelidx{i#59148}.0)] +[visit_exp i#59149] +[visit_id i#59149] +[visit_exp (l!`%`_labelidx{i#59148}.0)] +[visit_exp l!`%`_labelidx{i#59148}.0] +[visit_exp l!`%`_labelidx{i#59148}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#59148] +[visit_id i#59148] +[check_dims] dim#8131 i#59235 i#59284 i#59285 i#59293 i#59300 i#59346 i#59347 l laneidx#71 lanetype#8131 shape#948 sx?#57 +dims \ = dim#8131, i#59235, i#59284, i#59285, i#59293, i#59300, i#59346, i#59347, l, laneidx#71, lanetype#8131, shape#948, sx?#57 +[visit_exp `VEXTRACT_LANE`_instr{shape#948, `sx?#57`, laneidx#71}(`%X%`_shape{lanetype#8131, dim#8131, i#59293}(`F64`_lanetype, `%`_dim{i#59300}(2)), ?(), `%`_laneidx{i#59347}(l!`%`_labelidx{i#59346}.0))] +[visit_exp shape#948] +[visit_id shape#948] +[visit_exp `sx?#57`] +[visit_id sx?#57] +[visit_exp laneidx#71] +[visit_id laneidx#71] +[visit_exp (`%X%`_shape{lanetype#8131, dim#8131, i#59293}(`F64`_lanetype, `%`_dim{i#59300}(2)), ?(), `%`_laneidx{i#59347}(l!`%`_labelidx{i#59346}.0))] +[visit_exp `%X%`_shape{lanetype#8131, dim#8131, i#59293}(`F64`_lanetype, `%`_dim{i#59300}(2))] +[visit_exp lanetype#8131] +[visit_id lanetype#8131] +[visit_exp dim#8131] +[visit_id dim#8131] +[visit_exp i#59293] +[visit_id i#59293] +[visit_exp (`F64`_lanetype, `%`_dim{i#59300}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#59300}(2)] +[visit_exp i#59300] +[visit_id i#59300] +[visit_exp (2)] +[visit_exp 2] +[visit_exp ?()] +[visit_exp `%`_laneidx{i#59347}(l!`%`_labelidx{i#59346}.0)] +[visit_exp i#59347] +[visit_id i#59347] +[visit_exp (l!`%`_labelidx{i#59346}.0)] +[visit_exp l!`%`_labelidx{i#59346}.0] +[visit_exp l!`%`_labelidx{i#59346}] +[visit_exp l] +[visit_id l] +[visit_exp i#59346] +[visit_id i#59346] +[visit_exp `%`_u32{i#59235}(33)] +[visit_exp i#59235] +[visit_id i#59235] +[visit_exp (33)] +[visit_exp 33] +[visit_exp `%`_laneidx{i#59285}(l!`%`_labelidx{i#59284}.0)] +[visit_exp i#59285] +[visit_id i#59285] +[visit_exp (l!`%`_labelidx{i#59284}.0)] +[visit_exp l!`%`_labelidx{i#59284}.0] +[visit_exp l!`%`_labelidx{i#59284}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#59284] +[visit_id i#59284] +[check_dims] dim#8143 i#59371 i#59420 i#59421 i#59429 i#59436 i#59482 i#59483 l laneidx#73 lanetype#8143 shape#950 +dims \ = dim#8143, i#59371, i#59420, i#59421, i#59429, i#59436, i#59482, i#59483, l, laneidx#73, lanetype#8143, shape#950 +[visit_exp `VREPLACE_LANE`_instr{shape#950, laneidx#73}(`%X%`_shape{lanetype#8143, dim#8143, i#59429}(`F64`_lanetype, `%`_dim{i#59436}(2)), `%`_laneidx{i#59483}(l!`%`_labelidx{i#59482}.0))] +[visit_exp shape#950] +[visit_id shape#950] +[visit_exp laneidx#73] +[visit_id laneidx#73] +[visit_exp (`%X%`_shape{lanetype#8143, dim#8143, i#59429}(`F64`_lanetype, `%`_dim{i#59436}(2)), `%`_laneidx{i#59483}(l!`%`_labelidx{i#59482}.0))] +[visit_exp `%X%`_shape{lanetype#8143, dim#8143, i#59429}(`F64`_lanetype, `%`_dim{i#59436}(2))] +[visit_exp lanetype#8143] +[visit_id lanetype#8143] +[visit_exp dim#8143] +[visit_id dim#8143] +[visit_exp i#59429] +[visit_id i#59429] +[visit_exp (`F64`_lanetype, `%`_dim{i#59436}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#59436}(2)] +[visit_exp i#59436] +[visit_id i#59436] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%`_laneidx{i#59483}(l!`%`_labelidx{i#59482}.0)] +[visit_exp i#59483] +[visit_id i#59483] +[visit_exp (l!`%`_labelidx{i#59482}.0)] +[visit_exp l!`%`_labelidx{i#59482}.0] +[visit_exp l!`%`_labelidx{i#59482}] +[visit_exp l] +[visit_id l] +[visit_exp i#59482] +[visit_id i#59482] +[visit_exp `%`_u32{i#59371}(34)] +[visit_exp i#59371] +[visit_id i#59371] +[visit_exp (34)] +[visit_exp 34] +[visit_exp `%`_laneidx{i#59421}(l!`%`_labelidx{i#59420}.0)] +[visit_exp i#59421] +[visit_id i#59421] +[visit_exp (l!`%`_labelidx{i#59420}.0)] +[visit_exp l!`%`_labelidx{i#59420}.0] +[visit_exp l!`%`_labelidx{i#59420}] +[visit_exp l] +[visit_id l] not free +[visit_exp i#59420] +[visit_id i#59420] +ps' = +[check_dims] +[check_dims] dim#8155 i#59507 i#59514 i#59521 lanetype#8155 shape#952 +dims \ = dim#8155, i#59507, i#59514, i#59521, lanetype#8155, shape#952 +[visit_exp `VRELOP`_instr{shape#952}(`%X%`_shape{lanetype#8155, dim#8155, i#59514}(`I8`_lanetype, `%`_dim{i#59521}(16)), `EQ`_vrelop_)] +[visit_exp shape#952] +[visit_id shape#952] +[visit_exp (`%X%`_shape{lanetype#8155, dim#8155, i#59514}(`I8`_lanetype, `%`_dim{i#59521}(16)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#8155, dim#8155, i#59514}(`I8`_lanetype, `%`_dim{i#59521}(16))] +[visit_exp lanetype#8155] +[visit_id lanetype#8155] +[visit_exp dim#8155] +[visit_id dim#8155] +[visit_exp i#59514] +[visit_id i#59514] +[visit_exp (`I8`_lanetype, `%`_dim{i#59521}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#59521}(16)] +[visit_exp i#59521] +[visit_id i#59521] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#59507}(35)] +[visit_exp i#59507] +[visit_id i#59507] +[visit_exp (35)] +[visit_exp 35] +[check_dims] dim#8182 i#59589 i#59596 i#59603 lanetype#8182 shape#954 +dims \ = dim#8182, i#59589, i#59596, i#59603, lanetype#8182, shape#954 +[visit_exp `VRELOP`_instr{shape#954}(`%X%`_shape{lanetype#8182, dim#8182, i#59596}(`I8`_lanetype, `%`_dim{i#59603}(16)), `NE`_vrelop_)] +[visit_exp shape#954] +[visit_id shape#954] +[visit_exp (`%X%`_shape{lanetype#8182, dim#8182, i#59596}(`I8`_lanetype, `%`_dim{i#59603}(16)), `NE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#8182, dim#8182, i#59596}(`I8`_lanetype, `%`_dim{i#59603}(16))] +[visit_exp lanetype#8182] +[visit_id lanetype#8182] +[visit_exp dim#8182] +[visit_id dim#8182] +[visit_exp i#59596] +[visit_id i#59596] +[visit_exp (`I8`_lanetype, `%`_dim{i#59603}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#59603}(16)] +[visit_exp i#59603] +[visit_id i#59603] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#59589}(36)] +[visit_exp i#59589] +[visit_id i#59589] +[visit_exp (36)] +[visit_exp 36] +[check_dims] dim#8209 i#59671 i#59678 i#59685 lanetype#8209 shape#956 sx#6659 +dims \ = dim#8209, i#59671, i#59678, i#59685, lanetype#8209, shape#956, sx#6659 +[visit_exp `VRELOP`_instr{shape#956}(`%X%`_shape{lanetype#8209, dim#8209, i#59678}(`I8`_lanetype, `%`_dim{i#59685}(16)), `LT`_vrelop_{sx#6659}(`S`_sx))] +[visit_exp shape#956] +[visit_id shape#956] +[visit_exp (`%X%`_shape{lanetype#8209, dim#8209, i#59678}(`I8`_lanetype, `%`_dim{i#59685}(16)), `LT`_vrelop_{sx#6659}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#8209, dim#8209, i#59678}(`I8`_lanetype, `%`_dim{i#59685}(16))] +[visit_exp lanetype#8209] +[visit_id lanetype#8209] +[visit_exp dim#8209] +[visit_id dim#8209] +[visit_exp i#59678] +[visit_id i#59678] +[visit_exp (`I8`_lanetype, `%`_dim{i#59685}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#59685}(16)] +[visit_exp i#59685] +[visit_id i#59685] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `LT`_vrelop_{sx#6659}(`S`_sx)] +[visit_exp sx#6659] +[visit_id sx#6659] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#59671}(37)] +[visit_exp i#59671] +[visit_id i#59671] +[visit_exp (37)] +[visit_exp 37] +[check_dims] dim#8251 i#59798 i#59805 i#59812 lanetype#8251 shape#958 sx#6783 +dims \ = dim#8251, i#59798, i#59805, i#59812, lanetype#8251, shape#958, sx#6783 +[visit_exp `VRELOP`_instr{shape#958}(`%X%`_shape{lanetype#8251, dim#8251, i#59805}(`I8`_lanetype, `%`_dim{i#59812}(16)), `LT`_vrelop_{sx#6783}(`U`_sx))] +[visit_exp shape#958] +[visit_id shape#958] +[visit_exp (`%X%`_shape{lanetype#8251, dim#8251, i#59805}(`I8`_lanetype, `%`_dim{i#59812}(16)), `LT`_vrelop_{sx#6783}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#8251, dim#8251, i#59805}(`I8`_lanetype, `%`_dim{i#59812}(16))] +[visit_exp lanetype#8251] +[visit_id lanetype#8251] +[visit_exp dim#8251] +[visit_id dim#8251] +[visit_exp i#59805] +[visit_id i#59805] +[visit_exp (`I8`_lanetype, `%`_dim{i#59812}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#59812}(16)] +[visit_exp i#59812] +[visit_id i#59812] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `LT`_vrelop_{sx#6783}(`U`_sx)] +[visit_exp sx#6783] +[visit_id sx#6783] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#59798}(38)] +[visit_exp i#59798] +[visit_id i#59798] +[visit_exp (38)] +[visit_exp 38] +[check_dims] dim#8293 i#59925 i#59932 i#59939 lanetype#8293 shape#960 sx#6907 +dims \ = dim#8293, i#59925, i#59932, i#59939, lanetype#8293, shape#960, sx#6907 +[visit_exp `VRELOP`_instr{shape#960}(`%X%`_shape{lanetype#8293, dim#8293, i#59932}(`I8`_lanetype, `%`_dim{i#59939}(16)), `GT`_vrelop_{sx#6907}(`S`_sx))] +[visit_exp shape#960] +[visit_id shape#960] +[visit_exp (`%X%`_shape{lanetype#8293, dim#8293, i#59932}(`I8`_lanetype, `%`_dim{i#59939}(16)), `GT`_vrelop_{sx#6907}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#8293, dim#8293, i#59932}(`I8`_lanetype, `%`_dim{i#59939}(16))] +[visit_exp lanetype#8293] +[visit_id lanetype#8293] +[visit_exp dim#8293] +[visit_id dim#8293] +[visit_exp i#59932] +[visit_id i#59932] +[visit_exp (`I8`_lanetype, `%`_dim{i#59939}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#59939}(16)] +[visit_exp i#59939] +[visit_id i#59939] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `GT`_vrelop_{sx#6907}(`S`_sx)] +[visit_exp sx#6907] +[visit_id sx#6907] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#59925}(39)] +[visit_exp i#59925] +[visit_id i#59925] +[visit_exp (39)] +[visit_exp 39] +[check_dims] dim#8335 i#60052 i#60059 i#60066 lanetype#8335 shape#962 sx#7031 +dims \ = dim#8335, i#60052, i#60059, i#60066, lanetype#8335, shape#962, sx#7031 +[visit_exp `VRELOP`_instr{shape#962}(`%X%`_shape{lanetype#8335, dim#8335, i#60059}(`I8`_lanetype, `%`_dim{i#60066}(16)), `GT`_vrelop_{sx#7031}(`U`_sx))] +[visit_exp shape#962] +[visit_id shape#962] +[visit_exp (`%X%`_shape{lanetype#8335, dim#8335, i#60059}(`I8`_lanetype, `%`_dim{i#60066}(16)), `GT`_vrelop_{sx#7031}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#8335, dim#8335, i#60059}(`I8`_lanetype, `%`_dim{i#60066}(16))] +[visit_exp lanetype#8335] +[visit_id lanetype#8335] +[visit_exp dim#8335] +[visit_id dim#8335] +[visit_exp i#60059] +[visit_id i#60059] +[visit_exp (`I8`_lanetype, `%`_dim{i#60066}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#60066}(16)] +[visit_exp i#60066] +[visit_id i#60066] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `GT`_vrelop_{sx#7031}(`U`_sx)] +[visit_exp sx#7031] +[visit_id sx#7031] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#60052}(40)] +[visit_exp i#60052] +[visit_id i#60052] +[visit_exp (40)] +[visit_exp 40] +[check_dims] dim#8377 i#60179 i#60186 i#60193 lanetype#8377 shape#964 sx#7155 +dims \ = dim#8377, i#60179, i#60186, i#60193, lanetype#8377, shape#964, sx#7155 +[visit_exp `VRELOP`_instr{shape#964}(`%X%`_shape{lanetype#8377, dim#8377, i#60186}(`I8`_lanetype, `%`_dim{i#60193}(16)), `LE`_vrelop_{sx#7155}(`S`_sx))] +[visit_exp shape#964] +[visit_id shape#964] +[visit_exp (`%X%`_shape{lanetype#8377, dim#8377, i#60186}(`I8`_lanetype, `%`_dim{i#60193}(16)), `LE`_vrelop_{sx#7155}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#8377, dim#8377, i#60186}(`I8`_lanetype, `%`_dim{i#60193}(16))] +[visit_exp lanetype#8377] +[visit_id lanetype#8377] +[visit_exp dim#8377] +[visit_id dim#8377] +[visit_exp i#60186] +[visit_id i#60186] +[visit_exp (`I8`_lanetype, `%`_dim{i#60193}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#60193}(16)] +[visit_exp i#60193] +[visit_id i#60193] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `LE`_vrelop_{sx#7155}(`S`_sx)] +[visit_exp sx#7155] +[visit_id sx#7155] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#60179}(41)] +[visit_exp i#60179] +[visit_id i#60179] +[visit_exp (41)] +[visit_exp 41] +[check_dims] dim#8419 i#60306 i#60313 i#60320 lanetype#8419 shape#966 sx#7279 +dims \ = dim#8419, i#60306, i#60313, i#60320, lanetype#8419, shape#966, sx#7279 +[visit_exp `VRELOP`_instr{shape#966}(`%X%`_shape{lanetype#8419, dim#8419, i#60313}(`I8`_lanetype, `%`_dim{i#60320}(16)), `LE`_vrelop_{sx#7279}(`U`_sx))] +[visit_exp shape#966] +[visit_id shape#966] +[visit_exp (`%X%`_shape{lanetype#8419, dim#8419, i#60313}(`I8`_lanetype, `%`_dim{i#60320}(16)), `LE`_vrelop_{sx#7279}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#8419, dim#8419, i#60313}(`I8`_lanetype, `%`_dim{i#60320}(16))] +[visit_exp lanetype#8419] +[visit_id lanetype#8419] +[visit_exp dim#8419] +[visit_id dim#8419] +[visit_exp i#60313] +[visit_id i#60313] +[visit_exp (`I8`_lanetype, `%`_dim{i#60320}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#60320}(16)] +[visit_exp i#60320] +[visit_id i#60320] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `LE`_vrelop_{sx#7279}(`U`_sx)] +[visit_exp sx#7279] +[visit_id sx#7279] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#60306}(42)] +[visit_exp i#60306] +[visit_id i#60306] +[visit_exp (42)] +[visit_exp 42] +[check_dims] dim#8461 i#60433 i#60440 i#60447 lanetype#8461 shape#968 sx#7403 +dims \ = dim#8461, i#60433, i#60440, i#60447, lanetype#8461, shape#968, sx#7403 +[visit_exp `VRELOP`_instr{shape#968}(`%X%`_shape{lanetype#8461, dim#8461, i#60440}(`I8`_lanetype, `%`_dim{i#60447}(16)), `GE`_vrelop_{sx#7403}(`S`_sx))] +[visit_exp shape#968] +[visit_id shape#968] +[visit_exp (`%X%`_shape{lanetype#8461, dim#8461, i#60440}(`I8`_lanetype, `%`_dim{i#60447}(16)), `GE`_vrelop_{sx#7403}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#8461, dim#8461, i#60440}(`I8`_lanetype, `%`_dim{i#60447}(16))] +[visit_exp lanetype#8461] +[visit_id lanetype#8461] +[visit_exp dim#8461] +[visit_id dim#8461] +[visit_exp i#60440] +[visit_id i#60440] +[visit_exp (`I8`_lanetype, `%`_dim{i#60447}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#60447}(16)] +[visit_exp i#60447] +[visit_id i#60447] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `GE`_vrelop_{sx#7403}(`S`_sx)] +[visit_exp sx#7403] +[visit_id sx#7403] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#60433}(43)] +[visit_exp i#60433] +[visit_id i#60433] +[visit_exp (43)] +[visit_exp 43] +[check_dims] dim#8503 i#60560 i#60567 i#60574 lanetype#8503 shape#970 sx#7527 +dims \ = dim#8503, i#60560, i#60567, i#60574, lanetype#8503, shape#970, sx#7527 +[visit_exp `VRELOP`_instr{shape#970}(`%X%`_shape{lanetype#8503, dim#8503, i#60567}(`I8`_lanetype, `%`_dim{i#60574}(16)), `GE`_vrelop_{sx#7527}(`U`_sx))] +[visit_exp shape#970] +[visit_id shape#970] +[visit_exp (`%X%`_shape{lanetype#8503, dim#8503, i#60567}(`I8`_lanetype, `%`_dim{i#60574}(16)), `GE`_vrelop_{sx#7527}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#8503, dim#8503, i#60567}(`I8`_lanetype, `%`_dim{i#60574}(16))] +[visit_exp lanetype#8503] +[visit_id lanetype#8503] +[visit_exp dim#8503] +[visit_id dim#8503] +[visit_exp i#60567] +[visit_id i#60567] +[visit_exp (`I8`_lanetype, `%`_dim{i#60574}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#60574}(16)] +[visit_exp i#60574] +[visit_id i#60574] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `GE`_vrelop_{sx#7527}(`U`_sx)] +[visit_exp sx#7527] +[visit_id sx#7527] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#60560}(44)] +[visit_exp i#60560] +[visit_id i#60560] +[visit_exp (44)] +[visit_exp 44] +ps' = +[check_dims] +[check_dims] dim#8545 i#60687 i#60694 i#60701 lanetype#8545 shape#972 +dims \ = dim#8545, i#60687, i#60694, i#60701, lanetype#8545, shape#972 +[visit_exp `VRELOP`_instr{shape#972}(`%X%`_shape{lanetype#8545, dim#8545, i#60694}(`I16`_lanetype, `%`_dim{i#60701}(8)), `EQ`_vrelop_)] +[visit_exp shape#972] +[visit_id shape#972] +[visit_exp (`%X%`_shape{lanetype#8545, dim#8545, i#60694}(`I16`_lanetype, `%`_dim{i#60701}(8)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#8545, dim#8545, i#60694}(`I16`_lanetype, `%`_dim{i#60701}(8))] +[visit_exp lanetype#8545] +[visit_id lanetype#8545] +[visit_exp dim#8545] +[visit_id dim#8545] +[visit_exp i#60694] +[visit_id i#60694] +[visit_exp (`I16`_lanetype, `%`_dim{i#60701}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#60701}(8)] +[visit_exp i#60701] +[visit_id i#60701] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#60687}(45)] +[visit_exp i#60687] +[visit_id i#60687] +[visit_exp (45)] +[visit_exp 45] +[check_dims] dim#8572 i#60769 i#60776 i#60783 lanetype#8572 shape#974 +dims \ = dim#8572, i#60769, i#60776, i#60783, lanetype#8572, shape#974 +[visit_exp `VRELOP`_instr{shape#974}(`%X%`_shape{lanetype#8572, dim#8572, i#60776}(`I16`_lanetype, `%`_dim{i#60783}(8)), `NE`_vrelop_)] +[visit_exp shape#974] +[visit_id shape#974] +[visit_exp (`%X%`_shape{lanetype#8572, dim#8572, i#60776}(`I16`_lanetype, `%`_dim{i#60783}(8)), `NE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#8572, dim#8572, i#60776}(`I16`_lanetype, `%`_dim{i#60783}(8))] +[visit_exp lanetype#8572] +[visit_id lanetype#8572] +[visit_exp dim#8572] +[visit_id dim#8572] +[visit_exp i#60776] +[visit_id i#60776] +[visit_exp (`I16`_lanetype, `%`_dim{i#60783}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#60783}(8)] +[visit_exp i#60783] +[visit_id i#60783] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#60769}(46)] +[visit_exp i#60769] +[visit_id i#60769] +[visit_exp (46)] +[visit_exp 46] +[check_dims] dim#8599 i#60851 i#60858 i#60865 lanetype#8599 shape#976 sx#7771 +dims \ = dim#8599, i#60851, i#60858, i#60865, lanetype#8599, shape#976, sx#7771 +[visit_exp `VRELOP`_instr{shape#976}(`%X%`_shape{lanetype#8599, dim#8599, i#60858}(`I16`_lanetype, `%`_dim{i#60865}(8)), `LT`_vrelop_{sx#7771}(`S`_sx))] +[visit_exp shape#976] +[visit_id shape#976] +[visit_exp (`%X%`_shape{lanetype#8599, dim#8599, i#60858}(`I16`_lanetype, `%`_dim{i#60865}(8)), `LT`_vrelop_{sx#7771}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#8599, dim#8599, i#60858}(`I16`_lanetype, `%`_dim{i#60865}(8))] +[visit_exp lanetype#8599] +[visit_id lanetype#8599] +[visit_exp dim#8599] +[visit_id dim#8599] +[visit_exp i#60858] +[visit_id i#60858] +[visit_exp (`I16`_lanetype, `%`_dim{i#60865}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#60865}(8)] +[visit_exp i#60865] +[visit_id i#60865] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `LT`_vrelop_{sx#7771}(`S`_sx)] +[visit_exp sx#7771] +[visit_id sx#7771] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#60851}(47)] +[visit_exp i#60851] +[visit_id i#60851] +[visit_exp (47)] +[visit_exp 47] +[check_dims] dim#8641 i#60978 i#60985 i#60992 lanetype#8641 shape#978 sx#7895 +dims \ = dim#8641, i#60978, i#60985, i#60992, lanetype#8641, shape#978, sx#7895 +[visit_exp `VRELOP`_instr{shape#978}(`%X%`_shape{lanetype#8641, dim#8641, i#60985}(`I16`_lanetype, `%`_dim{i#60992}(8)), `LT`_vrelop_{sx#7895}(`U`_sx))] +[visit_exp shape#978] +[visit_id shape#978] +[visit_exp (`%X%`_shape{lanetype#8641, dim#8641, i#60985}(`I16`_lanetype, `%`_dim{i#60992}(8)), `LT`_vrelop_{sx#7895}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#8641, dim#8641, i#60985}(`I16`_lanetype, `%`_dim{i#60992}(8))] +[visit_exp lanetype#8641] +[visit_id lanetype#8641] +[visit_exp dim#8641] +[visit_id dim#8641] +[visit_exp i#60985] +[visit_id i#60985] +[visit_exp (`I16`_lanetype, `%`_dim{i#60992}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#60992}(8)] +[visit_exp i#60992] +[visit_id i#60992] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `LT`_vrelop_{sx#7895}(`U`_sx)] +[visit_exp sx#7895] +[visit_id sx#7895] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#60978}(48)] +[visit_exp i#60978] +[visit_id i#60978] +[visit_exp (48)] +[visit_exp 48] +[check_dims] dim#8683 i#61105 i#61112 i#61119 lanetype#8683 shape#980 sx#8019 +dims \ = dim#8683, i#61105, i#61112, i#61119, lanetype#8683, shape#980, sx#8019 +[visit_exp `VRELOP`_instr{shape#980}(`%X%`_shape{lanetype#8683, dim#8683, i#61112}(`I16`_lanetype, `%`_dim{i#61119}(8)), `GT`_vrelop_{sx#8019}(`S`_sx))] +[visit_exp shape#980] +[visit_id shape#980] +[visit_exp (`%X%`_shape{lanetype#8683, dim#8683, i#61112}(`I16`_lanetype, `%`_dim{i#61119}(8)), `GT`_vrelop_{sx#8019}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#8683, dim#8683, i#61112}(`I16`_lanetype, `%`_dim{i#61119}(8))] +[visit_exp lanetype#8683] +[visit_id lanetype#8683] +[visit_exp dim#8683] +[visit_id dim#8683] +[visit_exp i#61112] +[visit_id i#61112] +[visit_exp (`I16`_lanetype, `%`_dim{i#61119}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#61119}(8)] +[visit_exp i#61119] +[visit_id i#61119] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `GT`_vrelop_{sx#8019}(`S`_sx)] +[visit_exp sx#8019] +[visit_id sx#8019] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#61105}(49)] +[visit_exp i#61105] +[visit_id i#61105] +[visit_exp (49)] +[visit_exp 49] +[check_dims] dim#8725 i#61232 i#61239 i#61246 lanetype#8725 shape#982 sx#8143 +dims \ = dim#8725, i#61232, i#61239, i#61246, lanetype#8725, shape#982, sx#8143 +[visit_exp `VRELOP`_instr{shape#982}(`%X%`_shape{lanetype#8725, dim#8725, i#61239}(`I16`_lanetype, `%`_dim{i#61246}(8)), `GT`_vrelop_{sx#8143}(`U`_sx))] +[visit_exp shape#982] +[visit_id shape#982] +[visit_exp (`%X%`_shape{lanetype#8725, dim#8725, i#61239}(`I16`_lanetype, `%`_dim{i#61246}(8)), `GT`_vrelop_{sx#8143}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#8725, dim#8725, i#61239}(`I16`_lanetype, `%`_dim{i#61246}(8))] +[visit_exp lanetype#8725] +[visit_id lanetype#8725] +[visit_exp dim#8725] +[visit_id dim#8725] +[visit_exp i#61239] +[visit_id i#61239] +[visit_exp (`I16`_lanetype, `%`_dim{i#61246}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#61246}(8)] +[visit_exp i#61246] +[visit_id i#61246] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `GT`_vrelop_{sx#8143}(`U`_sx)] +[visit_exp sx#8143] +[visit_id sx#8143] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#61232}(50)] +[visit_exp i#61232] +[visit_id i#61232] +[visit_exp (50)] +[visit_exp 50] +[check_dims] dim#8767 i#61359 i#61366 i#61373 lanetype#8767 shape#984 sx#8267 +dims \ = dim#8767, i#61359, i#61366, i#61373, lanetype#8767, shape#984, sx#8267 +[visit_exp `VRELOP`_instr{shape#984}(`%X%`_shape{lanetype#8767, dim#8767, i#61366}(`I16`_lanetype, `%`_dim{i#61373}(8)), `LE`_vrelop_{sx#8267}(`S`_sx))] +[visit_exp shape#984] +[visit_id shape#984] +[visit_exp (`%X%`_shape{lanetype#8767, dim#8767, i#61366}(`I16`_lanetype, `%`_dim{i#61373}(8)), `LE`_vrelop_{sx#8267}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#8767, dim#8767, i#61366}(`I16`_lanetype, `%`_dim{i#61373}(8))] +[visit_exp lanetype#8767] +[visit_id lanetype#8767] +[visit_exp dim#8767] +[visit_id dim#8767] +[visit_exp i#61366] +[visit_id i#61366] +[visit_exp (`I16`_lanetype, `%`_dim{i#61373}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#61373}(8)] +[visit_exp i#61373] +[visit_id i#61373] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `LE`_vrelop_{sx#8267}(`S`_sx)] +[visit_exp sx#8267] +[visit_id sx#8267] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#61359}(51)] +[visit_exp i#61359] +[visit_id i#61359] +[visit_exp (51)] +[visit_exp 51] +[check_dims] dim#8809 i#61486 i#61493 i#61500 lanetype#8809 shape#986 sx#8391 +dims \ = dim#8809, i#61486, i#61493, i#61500, lanetype#8809, shape#986, sx#8391 +[visit_exp `VRELOP`_instr{shape#986}(`%X%`_shape{lanetype#8809, dim#8809, i#61493}(`I16`_lanetype, `%`_dim{i#61500}(8)), `LE`_vrelop_{sx#8391}(`U`_sx))] +[visit_exp shape#986] +[visit_id shape#986] +[visit_exp (`%X%`_shape{lanetype#8809, dim#8809, i#61493}(`I16`_lanetype, `%`_dim{i#61500}(8)), `LE`_vrelop_{sx#8391}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#8809, dim#8809, i#61493}(`I16`_lanetype, `%`_dim{i#61500}(8))] +[visit_exp lanetype#8809] +[visit_id lanetype#8809] +[visit_exp dim#8809] +[visit_id dim#8809] +[visit_exp i#61493] +[visit_id i#61493] +[visit_exp (`I16`_lanetype, `%`_dim{i#61500}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#61500}(8)] +[visit_exp i#61500] +[visit_id i#61500] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `LE`_vrelop_{sx#8391}(`U`_sx)] +[visit_exp sx#8391] +[visit_id sx#8391] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#61486}(52)] +[visit_exp i#61486] +[visit_id i#61486] +[visit_exp (52)] +[visit_exp 52] +[check_dims] dim#8851 i#61613 i#61620 i#61627 lanetype#8851 shape#988 sx#8515 +dims \ = dim#8851, i#61613, i#61620, i#61627, lanetype#8851, shape#988, sx#8515 +[visit_exp `VRELOP`_instr{shape#988}(`%X%`_shape{lanetype#8851, dim#8851, i#61620}(`I16`_lanetype, `%`_dim{i#61627}(8)), `GE`_vrelop_{sx#8515}(`S`_sx))] +[visit_exp shape#988] +[visit_id shape#988] +[visit_exp (`%X%`_shape{lanetype#8851, dim#8851, i#61620}(`I16`_lanetype, `%`_dim{i#61627}(8)), `GE`_vrelop_{sx#8515}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#8851, dim#8851, i#61620}(`I16`_lanetype, `%`_dim{i#61627}(8))] +[visit_exp lanetype#8851] +[visit_id lanetype#8851] +[visit_exp dim#8851] +[visit_id dim#8851] +[visit_exp i#61620] +[visit_id i#61620] +[visit_exp (`I16`_lanetype, `%`_dim{i#61627}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#61627}(8)] +[visit_exp i#61627] +[visit_id i#61627] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `GE`_vrelop_{sx#8515}(`S`_sx)] +[visit_exp sx#8515] +[visit_id sx#8515] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#61613}(53)] +[visit_exp i#61613] +[visit_id i#61613] +[visit_exp (53)] +[visit_exp 53] +[check_dims] dim#8893 i#61740 i#61747 i#61754 lanetype#8893 shape#990 sx#8639 +dims \ = dim#8893, i#61740, i#61747, i#61754, lanetype#8893, shape#990, sx#8639 +[visit_exp `VRELOP`_instr{shape#990}(`%X%`_shape{lanetype#8893, dim#8893, i#61747}(`I16`_lanetype, `%`_dim{i#61754}(8)), `GE`_vrelop_{sx#8639}(`U`_sx))] +[visit_exp shape#990] +[visit_id shape#990] +[visit_exp (`%X%`_shape{lanetype#8893, dim#8893, i#61747}(`I16`_lanetype, `%`_dim{i#61754}(8)), `GE`_vrelop_{sx#8639}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#8893, dim#8893, i#61747}(`I16`_lanetype, `%`_dim{i#61754}(8))] +[visit_exp lanetype#8893] +[visit_id lanetype#8893] +[visit_exp dim#8893] +[visit_id dim#8893] +[visit_exp i#61747] +[visit_id i#61747] +[visit_exp (`I16`_lanetype, `%`_dim{i#61754}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#61754}(8)] +[visit_exp i#61754] +[visit_id i#61754] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `GE`_vrelop_{sx#8639}(`U`_sx)] +[visit_exp sx#8639] +[visit_id sx#8639] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#61740}(54)] +[visit_exp i#61740] +[visit_id i#61740] +[visit_exp (54)] +[visit_exp 54] +ps' = +[check_dims] +[check_dims] dim#8935 i#61867 i#61874 i#61881 lanetype#8935 shape#992 +dims \ = dim#8935, i#61867, i#61874, i#61881, lanetype#8935, shape#992 +[visit_exp `VRELOP`_instr{shape#992}(`%X%`_shape{lanetype#8935, dim#8935, i#61874}(`I32`_lanetype, `%`_dim{i#61881}(4)), `EQ`_vrelop_)] +[visit_exp shape#992] +[visit_id shape#992] +[visit_exp (`%X%`_shape{lanetype#8935, dim#8935, i#61874}(`I32`_lanetype, `%`_dim{i#61881}(4)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#8935, dim#8935, i#61874}(`I32`_lanetype, `%`_dim{i#61881}(4))] +[visit_exp lanetype#8935] +[visit_id lanetype#8935] +[visit_exp dim#8935] +[visit_id dim#8935] +[visit_exp i#61874] +[visit_id i#61874] +[visit_exp (`I32`_lanetype, `%`_dim{i#61881}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#61881}(4)] +[visit_exp i#61881] +[visit_id i#61881] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#61867}(55)] +[visit_exp i#61867] +[visit_id i#61867] +[visit_exp (55)] +[visit_exp 55] +[check_dims] dim#8962 i#61949 i#61956 i#61963 lanetype#8962 shape#994 +dims \ = dim#8962, i#61949, i#61956, i#61963, lanetype#8962, shape#994 +[visit_exp `VRELOP`_instr{shape#994}(`%X%`_shape{lanetype#8962, dim#8962, i#61956}(`I32`_lanetype, `%`_dim{i#61963}(4)), `NE`_vrelop_)] +[visit_exp shape#994] +[visit_id shape#994] +[visit_exp (`%X%`_shape{lanetype#8962, dim#8962, i#61956}(`I32`_lanetype, `%`_dim{i#61963}(4)), `NE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#8962, dim#8962, i#61956}(`I32`_lanetype, `%`_dim{i#61963}(4))] +[visit_exp lanetype#8962] +[visit_id lanetype#8962] +[visit_exp dim#8962] +[visit_id dim#8962] +[visit_exp i#61956] +[visit_id i#61956] +[visit_exp (`I32`_lanetype, `%`_dim{i#61963}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#61963}(4)] +[visit_exp i#61963] +[visit_id i#61963] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#61949}(56)] +[visit_exp i#61949] +[visit_id i#61949] +[visit_exp (56)] +[visit_exp 56] +[check_dims] dim#8989 i#62031 i#62038 i#62045 lanetype#8989 shape#996 sx#8883 +dims \ = dim#8989, i#62031, i#62038, i#62045, lanetype#8989, shape#996, sx#8883 +[visit_exp `VRELOP`_instr{shape#996}(`%X%`_shape{lanetype#8989, dim#8989, i#62038}(`I32`_lanetype, `%`_dim{i#62045}(4)), `LT`_vrelop_{sx#8883}(`S`_sx))] +[visit_exp shape#996] +[visit_id shape#996] +[visit_exp (`%X%`_shape{lanetype#8989, dim#8989, i#62038}(`I32`_lanetype, `%`_dim{i#62045}(4)), `LT`_vrelop_{sx#8883}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#8989, dim#8989, i#62038}(`I32`_lanetype, `%`_dim{i#62045}(4))] +[visit_exp lanetype#8989] +[visit_id lanetype#8989] +[visit_exp dim#8989] +[visit_id dim#8989] +[visit_exp i#62038] +[visit_id i#62038] +[visit_exp (`I32`_lanetype, `%`_dim{i#62045}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#62045}(4)] +[visit_exp i#62045] +[visit_id i#62045] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `LT`_vrelop_{sx#8883}(`S`_sx)] +[visit_exp sx#8883] +[visit_id sx#8883] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#62031}(57)] +[visit_exp i#62031] +[visit_id i#62031] +[visit_exp (57)] +[visit_exp 57] +[check_dims] dim#9031 i#62158 i#62165 i#62172 lanetype#9031 shape#998 sx#9007 +dims \ = dim#9031, i#62158, i#62165, i#62172, lanetype#9031, shape#998, sx#9007 +[visit_exp `VRELOP`_instr{shape#998}(`%X%`_shape{lanetype#9031, dim#9031, i#62165}(`I32`_lanetype, `%`_dim{i#62172}(4)), `LT`_vrelop_{sx#9007}(`U`_sx))] +[visit_exp shape#998] +[visit_id shape#998] +[visit_exp (`%X%`_shape{lanetype#9031, dim#9031, i#62165}(`I32`_lanetype, `%`_dim{i#62172}(4)), `LT`_vrelop_{sx#9007}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#9031, dim#9031, i#62165}(`I32`_lanetype, `%`_dim{i#62172}(4))] +[visit_exp lanetype#9031] +[visit_id lanetype#9031] +[visit_exp dim#9031] +[visit_id dim#9031] +[visit_exp i#62165] +[visit_id i#62165] +[visit_exp (`I32`_lanetype, `%`_dim{i#62172}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#62172}(4)] +[visit_exp i#62172] +[visit_id i#62172] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `LT`_vrelop_{sx#9007}(`U`_sx)] +[visit_exp sx#9007] +[visit_id sx#9007] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#62158}(58)] +[visit_exp i#62158] +[visit_id i#62158] +[visit_exp (58)] +[visit_exp 58] +[check_dims] dim#9073 i#62285 i#62292 i#62299 lanetype#9073 shape#1000 sx#9131 +dims \ = dim#9073, i#62285, i#62292, i#62299, lanetype#9073, shape#1000, sx#9131 +[visit_exp `VRELOP`_instr{shape#1000}(`%X%`_shape{lanetype#9073, dim#9073, i#62292}(`I32`_lanetype, `%`_dim{i#62299}(4)), `GT`_vrelop_{sx#9131}(`S`_sx))] +[visit_exp shape#1000] +[visit_id shape#1000] +[visit_exp (`%X%`_shape{lanetype#9073, dim#9073, i#62292}(`I32`_lanetype, `%`_dim{i#62299}(4)), `GT`_vrelop_{sx#9131}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#9073, dim#9073, i#62292}(`I32`_lanetype, `%`_dim{i#62299}(4))] +[visit_exp lanetype#9073] +[visit_id lanetype#9073] +[visit_exp dim#9073] +[visit_id dim#9073] +[visit_exp i#62292] +[visit_id i#62292] +[visit_exp (`I32`_lanetype, `%`_dim{i#62299}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#62299}(4)] +[visit_exp i#62299] +[visit_id i#62299] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `GT`_vrelop_{sx#9131}(`S`_sx)] +[visit_exp sx#9131] +[visit_id sx#9131] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#62285}(59)] +[visit_exp i#62285] +[visit_id i#62285] +[visit_exp (59)] +[visit_exp 59] +[check_dims] dim#9115 i#62412 i#62419 i#62426 lanetype#9115 shape#1002 sx#9255 +dims \ = dim#9115, i#62412, i#62419, i#62426, lanetype#9115, shape#1002, sx#9255 +[visit_exp `VRELOP`_instr{shape#1002}(`%X%`_shape{lanetype#9115, dim#9115, i#62419}(`I32`_lanetype, `%`_dim{i#62426}(4)), `GT`_vrelop_{sx#9255}(`U`_sx))] +[visit_exp shape#1002] +[visit_id shape#1002] +[visit_exp (`%X%`_shape{lanetype#9115, dim#9115, i#62419}(`I32`_lanetype, `%`_dim{i#62426}(4)), `GT`_vrelop_{sx#9255}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#9115, dim#9115, i#62419}(`I32`_lanetype, `%`_dim{i#62426}(4))] +[visit_exp lanetype#9115] +[visit_id lanetype#9115] +[visit_exp dim#9115] +[visit_id dim#9115] +[visit_exp i#62419] +[visit_id i#62419] +[visit_exp (`I32`_lanetype, `%`_dim{i#62426}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#62426}(4)] +[visit_exp i#62426] +[visit_id i#62426] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `GT`_vrelop_{sx#9255}(`U`_sx)] +[visit_exp sx#9255] +[visit_id sx#9255] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#62412}(60)] +[visit_exp i#62412] +[visit_id i#62412] +[visit_exp (60)] +[visit_exp 60] +[check_dims] dim#9157 i#62539 i#62546 i#62553 lanetype#9157 shape#1004 sx#9379 +dims \ = dim#9157, i#62539, i#62546, i#62553, lanetype#9157, shape#1004, sx#9379 +[visit_exp `VRELOP`_instr{shape#1004}(`%X%`_shape{lanetype#9157, dim#9157, i#62546}(`I32`_lanetype, `%`_dim{i#62553}(4)), `LE`_vrelop_{sx#9379}(`S`_sx))] +[visit_exp shape#1004] +[visit_id shape#1004] +[visit_exp (`%X%`_shape{lanetype#9157, dim#9157, i#62546}(`I32`_lanetype, `%`_dim{i#62553}(4)), `LE`_vrelop_{sx#9379}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#9157, dim#9157, i#62546}(`I32`_lanetype, `%`_dim{i#62553}(4))] +[visit_exp lanetype#9157] +[visit_id lanetype#9157] +[visit_exp dim#9157] +[visit_id dim#9157] +[visit_exp i#62546] +[visit_id i#62546] +[visit_exp (`I32`_lanetype, `%`_dim{i#62553}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#62553}(4)] +[visit_exp i#62553] +[visit_id i#62553] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `LE`_vrelop_{sx#9379}(`S`_sx)] +[visit_exp sx#9379] +[visit_id sx#9379] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#62539}(61)] +[visit_exp i#62539] +[visit_id i#62539] +[visit_exp (61)] +[visit_exp 61] +[check_dims] dim#9199 i#62666 i#62673 i#62680 lanetype#9199 shape#1006 sx#9503 +dims \ = dim#9199, i#62666, i#62673, i#62680, lanetype#9199, shape#1006, sx#9503 +[visit_exp `VRELOP`_instr{shape#1006}(`%X%`_shape{lanetype#9199, dim#9199, i#62673}(`I32`_lanetype, `%`_dim{i#62680}(4)), `LE`_vrelop_{sx#9503}(`U`_sx))] +[visit_exp shape#1006] +[visit_id shape#1006] +[visit_exp (`%X%`_shape{lanetype#9199, dim#9199, i#62673}(`I32`_lanetype, `%`_dim{i#62680}(4)), `LE`_vrelop_{sx#9503}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#9199, dim#9199, i#62673}(`I32`_lanetype, `%`_dim{i#62680}(4))] +[visit_exp lanetype#9199] +[visit_id lanetype#9199] +[visit_exp dim#9199] +[visit_id dim#9199] +[visit_exp i#62673] +[visit_id i#62673] +[visit_exp (`I32`_lanetype, `%`_dim{i#62680}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#62680}(4)] +[visit_exp i#62680] +[visit_id i#62680] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `LE`_vrelop_{sx#9503}(`U`_sx)] +[visit_exp sx#9503] +[visit_id sx#9503] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#62666}(62)] +[visit_exp i#62666] +[visit_id i#62666] +[visit_exp (62)] +[visit_exp 62] +[check_dims] dim#9241 i#62793 i#62800 i#62807 lanetype#9241 shape#1008 sx#9627 +dims \ = dim#9241, i#62793, i#62800, i#62807, lanetype#9241, shape#1008, sx#9627 +[visit_exp `VRELOP`_instr{shape#1008}(`%X%`_shape{lanetype#9241, dim#9241, i#62800}(`I32`_lanetype, `%`_dim{i#62807}(4)), `GE`_vrelop_{sx#9627}(`S`_sx))] +[visit_exp shape#1008] +[visit_id shape#1008] +[visit_exp (`%X%`_shape{lanetype#9241, dim#9241, i#62800}(`I32`_lanetype, `%`_dim{i#62807}(4)), `GE`_vrelop_{sx#9627}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#9241, dim#9241, i#62800}(`I32`_lanetype, `%`_dim{i#62807}(4))] +[visit_exp lanetype#9241] +[visit_id lanetype#9241] +[visit_exp dim#9241] +[visit_id dim#9241] +[visit_exp i#62800] +[visit_id i#62800] +[visit_exp (`I32`_lanetype, `%`_dim{i#62807}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#62807}(4)] +[visit_exp i#62807] +[visit_id i#62807] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `GE`_vrelop_{sx#9627}(`S`_sx)] +[visit_exp sx#9627] +[visit_id sx#9627] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#62793}(63)] +[visit_exp i#62793] +[visit_id i#62793] +[visit_exp (63)] +[visit_exp 63] +[check_dims] dim#9283 i#62920 i#62927 i#62934 lanetype#9283 shape#1010 sx#9751 +dims \ = dim#9283, i#62920, i#62927, i#62934, lanetype#9283, shape#1010, sx#9751 +[visit_exp `VRELOP`_instr{shape#1010}(`%X%`_shape{lanetype#9283, dim#9283, i#62927}(`I32`_lanetype, `%`_dim{i#62934}(4)), `GE`_vrelop_{sx#9751}(`U`_sx))] +[visit_exp shape#1010] +[visit_id shape#1010] +[visit_exp (`%X%`_shape{lanetype#9283, dim#9283, i#62927}(`I32`_lanetype, `%`_dim{i#62934}(4)), `GE`_vrelop_{sx#9751}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#9283, dim#9283, i#62927}(`I32`_lanetype, `%`_dim{i#62934}(4))] +[visit_exp lanetype#9283] +[visit_id lanetype#9283] +[visit_exp dim#9283] +[visit_id dim#9283] +[visit_exp i#62927] +[visit_id i#62927] +[visit_exp (`I32`_lanetype, `%`_dim{i#62934}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#62934}(4)] +[visit_exp i#62934] +[visit_id i#62934] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `GE`_vrelop_{sx#9751}(`U`_sx)] +[visit_exp sx#9751] +[visit_id sx#9751] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#62920}(64)] +[visit_exp i#62920] +[visit_id i#62920] +[visit_exp (64)] +[visit_exp 64] +ps' = +[check_dims] +[check_dims] dim#9325 i#63047 i#63054 i#63061 lanetype#9325 shape#1012 +dims \ = dim#9325, i#63047, i#63054, i#63061, lanetype#9325, shape#1012 +[visit_exp `VRELOP`_instr{shape#1012}(`%X%`_shape{lanetype#9325, dim#9325, i#63054}(`F32`_lanetype, `%`_dim{i#63061}(4)), `EQ`_vrelop_)] +[visit_exp shape#1012] +[visit_id shape#1012] +[visit_exp (`%X%`_shape{lanetype#9325, dim#9325, i#63054}(`F32`_lanetype, `%`_dim{i#63061}(4)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#9325, dim#9325, i#63054}(`F32`_lanetype, `%`_dim{i#63061}(4))] +[visit_exp lanetype#9325] +[visit_id lanetype#9325] +[visit_exp dim#9325] +[visit_id dim#9325] +[visit_exp i#63054] +[visit_id i#63054] +[visit_exp (`F32`_lanetype, `%`_dim{i#63061}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#63061}(4)] +[visit_exp i#63061] +[visit_id i#63061] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#63047}(65)] +[visit_exp i#63047] +[visit_id i#63047] +[visit_exp (65)] +[visit_exp 65] +[check_dims] dim#9367 i#63144 i#63151 i#63158 lanetype#9367 shape#1014 +dims \ = dim#9367, i#63144, i#63151, i#63158, lanetype#9367, shape#1014 +[visit_exp `VRELOP`_instr{shape#1014}(`%X%`_shape{lanetype#9367, dim#9367, i#63151}(`F32`_lanetype, `%`_dim{i#63158}(4)), `NE`_vrelop_)] +[visit_exp shape#1014] +[visit_id shape#1014] +[visit_exp (`%X%`_shape{lanetype#9367, dim#9367, i#63151}(`F32`_lanetype, `%`_dim{i#63158}(4)), `NE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#9367, dim#9367, i#63151}(`F32`_lanetype, `%`_dim{i#63158}(4))] +[visit_exp lanetype#9367] +[visit_id lanetype#9367] +[visit_exp dim#9367] +[visit_id dim#9367] +[visit_exp i#63151] +[visit_id i#63151] +[visit_exp (`F32`_lanetype, `%`_dim{i#63158}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#63158}(4)] +[visit_exp i#63158] +[visit_id i#63158] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#63144}(66)] +[visit_exp i#63144] +[visit_id i#63144] +[visit_exp (66)] +[visit_exp 66] +[check_dims] dim#9409 i#63241 i#63248 i#63255 lanetype#9409 shape#1016 +dims \ = dim#9409, i#63241, i#63248, i#63255, lanetype#9409, shape#1016 +[visit_exp `VRELOP`_instr{shape#1016}(`%X%`_shape{lanetype#9409, dim#9409, i#63248}(`F32`_lanetype, `%`_dim{i#63255}(4)), `LT`_vrelop_)] +[visit_exp shape#1016] +[visit_id shape#1016] +[visit_exp (`%X%`_shape{lanetype#9409, dim#9409, i#63248}(`F32`_lanetype, `%`_dim{i#63255}(4)), `LT`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#9409, dim#9409, i#63248}(`F32`_lanetype, `%`_dim{i#63255}(4))] +[visit_exp lanetype#9409] +[visit_id lanetype#9409] +[visit_exp dim#9409] +[visit_id dim#9409] +[visit_exp i#63248] +[visit_id i#63248] +[visit_exp (`F32`_lanetype, `%`_dim{i#63255}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#63255}(4)] +[visit_exp i#63255] +[visit_id i#63255] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `LT`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#63241}(67)] +[visit_exp i#63241] +[visit_id i#63241] +[visit_exp (67)] +[visit_exp 67] +[check_dims] dim#9451 i#63338 i#63345 i#63352 lanetype#9451 shape#1018 +dims \ = dim#9451, i#63338, i#63345, i#63352, lanetype#9451, shape#1018 +[visit_exp `VRELOP`_instr{shape#1018}(`%X%`_shape{lanetype#9451, dim#9451, i#63345}(`F32`_lanetype, `%`_dim{i#63352}(4)), `GT`_vrelop_)] +[visit_exp shape#1018] +[visit_id shape#1018] +[visit_exp (`%X%`_shape{lanetype#9451, dim#9451, i#63345}(`F32`_lanetype, `%`_dim{i#63352}(4)), `GT`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#9451, dim#9451, i#63345}(`F32`_lanetype, `%`_dim{i#63352}(4))] +[visit_exp lanetype#9451] +[visit_id lanetype#9451] +[visit_exp dim#9451] +[visit_id dim#9451] +[visit_exp i#63345] +[visit_id i#63345] +[visit_exp (`F32`_lanetype, `%`_dim{i#63352}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#63352}(4)] +[visit_exp i#63352] +[visit_id i#63352] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `GT`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#63338}(68)] +[visit_exp i#63338] +[visit_id i#63338] +[visit_exp (68)] +[visit_exp 68] +[check_dims] dim#9493 i#63435 i#63442 i#63449 lanetype#9493 shape#1020 +dims \ = dim#9493, i#63435, i#63442, i#63449, lanetype#9493, shape#1020 +[visit_exp `VRELOP`_instr{shape#1020}(`%X%`_shape{lanetype#9493, dim#9493, i#63442}(`F32`_lanetype, `%`_dim{i#63449}(4)), `LE`_vrelop_)] +[visit_exp shape#1020] +[visit_id shape#1020] +[visit_exp (`%X%`_shape{lanetype#9493, dim#9493, i#63442}(`F32`_lanetype, `%`_dim{i#63449}(4)), `LE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#9493, dim#9493, i#63442}(`F32`_lanetype, `%`_dim{i#63449}(4))] +[visit_exp lanetype#9493] +[visit_id lanetype#9493] +[visit_exp dim#9493] +[visit_id dim#9493] +[visit_exp i#63442] +[visit_id i#63442] +[visit_exp (`F32`_lanetype, `%`_dim{i#63449}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#63449}(4)] +[visit_exp i#63449] +[visit_id i#63449] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `LE`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#63435}(69)] +[visit_exp i#63435] +[visit_id i#63435] +[visit_exp (69)] +[visit_exp 69] +[check_dims] dim#9535 i#63532 i#63539 i#63546 lanetype#9535 shape#1022 +dims \ = dim#9535, i#63532, i#63539, i#63546, lanetype#9535, shape#1022 +[visit_exp `VRELOP`_instr{shape#1022}(`%X%`_shape{lanetype#9535, dim#9535, i#63539}(`F32`_lanetype, `%`_dim{i#63546}(4)), `GE`_vrelop_)] +[visit_exp shape#1022] +[visit_id shape#1022] +[visit_exp (`%X%`_shape{lanetype#9535, dim#9535, i#63539}(`F32`_lanetype, `%`_dim{i#63546}(4)), `GE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#9535, dim#9535, i#63539}(`F32`_lanetype, `%`_dim{i#63546}(4))] +[visit_exp lanetype#9535] +[visit_id lanetype#9535] +[visit_exp dim#9535] +[visit_id dim#9535] +[visit_exp i#63539] +[visit_id i#63539] +[visit_exp (`F32`_lanetype, `%`_dim{i#63546}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#63546}(4)] +[visit_exp i#63546] +[visit_id i#63546] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `GE`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#63532}(70)] +[visit_exp i#63532] +[visit_id i#63532] +[visit_exp (70)] +[visit_exp 70] +ps' = +[check_dims] +[check_dims] dim#9577 i#63629 i#63636 i#63643 lanetype#9577 shape#1024 +dims \ = dim#9577, i#63629, i#63636, i#63643, lanetype#9577, shape#1024 +[visit_exp `VRELOP`_instr{shape#1024}(`%X%`_shape{lanetype#9577, dim#9577, i#63636}(`F64`_lanetype, `%`_dim{i#63643}(2)), `EQ`_vrelop_)] +[visit_exp shape#1024] +[visit_id shape#1024] +[visit_exp (`%X%`_shape{lanetype#9577, dim#9577, i#63636}(`F64`_lanetype, `%`_dim{i#63643}(2)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#9577, dim#9577, i#63636}(`F64`_lanetype, `%`_dim{i#63643}(2))] +[visit_exp lanetype#9577] +[visit_id lanetype#9577] +[visit_exp dim#9577] +[visit_id dim#9577] +[visit_exp i#63636] +[visit_id i#63636] +[visit_exp (`F64`_lanetype, `%`_dim{i#63643}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#63643}(2)] +[visit_exp i#63643] +[visit_id i#63643] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#63629}(71)] +[visit_exp i#63629] +[visit_id i#63629] +[visit_exp (71)] +[visit_exp 71] +[check_dims] dim#9619 i#63726 i#63733 i#63740 lanetype#9619 shape#1026 +dims \ = dim#9619, i#63726, i#63733, i#63740, lanetype#9619, shape#1026 +[visit_exp `VRELOP`_instr{shape#1026}(`%X%`_shape{lanetype#9619, dim#9619, i#63733}(`F64`_lanetype, `%`_dim{i#63740}(2)), `NE`_vrelop_)] +[visit_exp shape#1026] +[visit_id shape#1026] +[visit_exp (`%X%`_shape{lanetype#9619, dim#9619, i#63733}(`F64`_lanetype, `%`_dim{i#63740}(2)), `NE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#9619, dim#9619, i#63733}(`F64`_lanetype, `%`_dim{i#63740}(2))] +[visit_exp lanetype#9619] +[visit_id lanetype#9619] +[visit_exp dim#9619] +[visit_id dim#9619] +[visit_exp i#63733] +[visit_id i#63733] +[visit_exp (`F64`_lanetype, `%`_dim{i#63740}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#63740}(2)] +[visit_exp i#63740] +[visit_id i#63740] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#63726}(72)] +[visit_exp i#63726] +[visit_id i#63726] +[visit_exp (72)] +[visit_exp 72] +[check_dims] dim#9661 i#63823 i#63830 i#63837 lanetype#9661 shape#1028 +dims \ = dim#9661, i#63823, i#63830, i#63837, lanetype#9661, shape#1028 +[visit_exp `VRELOP`_instr{shape#1028}(`%X%`_shape{lanetype#9661, dim#9661, i#63830}(`F64`_lanetype, `%`_dim{i#63837}(2)), `LT`_vrelop_)] +[visit_exp shape#1028] +[visit_id shape#1028] +[visit_exp (`%X%`_shape{lanetype#9661, dim#9661, i#63830}(`F64`_lanetype, `%`_dim{i#63837}(2)), `LT`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#9661, dim#9661, i#63830}(`F64`_lanetype, `%`_dim{i#63837}(2))] +[visit_exp lanetype#9661] +[visit_id lanetype#9661] +[visit_exp dim#9661] +[visit_id dim#9661] +[visit_exp i#63830] +[visit_id i#63830] +[visit_exp (`F64`_lanetype, `%`_dim{i#63837}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#63837}(2)] +[visit_exp i#63837] +[visit_id i#63837] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `LT`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#63823}(73)] +[visit_exp i#63823] +[visit_id i#63823] +[visit_exp (73)] +[visit_exp 73] +[check_dims] dim#9703 i#63920 i#63927 i#63934 lanetype#9703 shape#1030 +dims \ = dim#9703, i#63920, i#63927, i#63934, lanetype#9703, shape#1030 +[visit_exp `VRELOP`_instr{shape#1030}(`%X%`_shape{lanetype#9703, dim#9703, i#63927}(`F64`_lanetype, `%`_dim{i#63934}(2)), `GT`_vrelop_)] +[visit_exp shape#1030] +[visit_id shape#1030] +[visit_exp (`%X%`_shape{lanetype#9703, dim#9703, i#63927}(`F64`_lanetype, `%`_dim{i#63934}(2)), `GT`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#9703, dim#9703, i#63927}(`F64`_lanetype, `%`_dim{i#63934}(2))] +[visit_exp lanetype#9703] +[visit_id lanetype#9703] +[visit_exp dim#9703] +[visit_id dim#9703] +[visit_exp i#63927] +[visit_id i#63927] +[visit_exp (`F64`_lanetype, `%`_dim{i#63934}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#63934}(2)] +[visit_exp i#63934] +[visit_id i#63934] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `GT`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#63920}(74)] +[visit_exp i#63920] +[visit_id i#63920] +[visit_exp (74)] +[visit_exp 74] +[check_dims] dim#9745 i#64017 i#64024 i#64031 lanetype#9745 shape#1032 +dims \ = dim#9745, i#64017, i#64024, i#64031, lanetype#9745, shape#1032 +[visit_exp `VRELOP`_instr{shape#1032}(`%X%`_shape{lanetype#9745, dim#9745, i#64024}(`F64`_lanetype, `%`_dim{i#64031}(2)), `LE`_vrelop_)] +[visit_exp shape#1032] +[visit_id shape#1032] +[visit_exp (`%X%`_shape{lanetype#9745, dim#9745, i#64024}(`F64`_lanetype, `%`_dim{i#64031}(2)), `LE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#9745, dim#9745, i#64024}(`F64`_lanetype, `%`_dim{i#64031}(2))] +[visit_exp lanetype#9745] +[visit_id lanetype#9745] +[visit_exp dim#9745] +[visit_id dim#9745] +[visit_exp i#64024] +[visit_id i#64024] +[visit_exp (`F64`_lanetype, `%`_dim{i#64031}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#64031}(2)] +[visit_exp i#64031] +[visit_id i#64031] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `LE`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#64017}(75)] +[visit_exp i#64017] +[visit_id i#64017] +[visit_exp (75)] +[visit_exp 75] +[check_dims] dim#9787 i#64114 i#64121 i#64128 lanetype#9787 shape#1034 +dims \ = dim#9787, i#64114, i#64121, i#64128, lanetype#9787, shape#1034 +[visit_exp `VRELOP`_instr{shape#1034}(`%X%`_shape{lanetype#9787, dim#9787, i#64121}(`F64`_lanetype, `%`_dim{i#64128}(2)), `GE`_vrelop_)] +[visit_exp shape#1034] +[visit_id shape#1034] +[visit_exp (`%X%`_shape{lanetype#9787, dim#9787, i#64121}(`F64`_lanetype, `%`_dim{i#64128}(2)), `GE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#9787, dim#9787, i#64121}(`F64`_lanetype, `%`_dim{i#64128}(2))] +[visit_exp lanetype#9787] +[visit_id lanetype#9787] +[visit_exp dim#9787] +[visit_id dim#9787] +[visit_exp i#64121] +[visit_id i#64121] +[visit_exp (`F64`_lanetype, `%`_dim{i#64128}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#64128}(2)] +[visit_exp i#64128] +[visit_id i#64128] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `GE`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#64114}(76)] +[visit_exp i#64114] +[visit_id i#64114] +[visit_exp (76)] +[visit_exp 76] +ps' = +[check_dims] +[check_dims] i#64211 vectype#259 vvunop#7 +dims \ = i#64211, vectype#259, vvunop#7 +[visit_exp `VVUNOP`_instr{vectype#259, vvunop#7}(`V128`_vectype, `NOT`_vvunop)] +[visit_exp vectype#259] +[visit_id vectype#259] +[visit_exp vvunop#7] +[visit_id vvunop#7] +[visit_exp (`V128`_vectype, `NOT`_vvunop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `NOT`_vvunop] +[visit_exp ()] +[visit_exp `%`_u32{i#64211}(77)] +[visit_exp i#64211] +[visit_id i#64211] +[visit_exp (77)] +[visit_exp 77] +ps' = +[check_dims] +[check_dims] i#64236 vectype#261 vvbinop#7 +dims \ = i#64236, vectype#261, vvbinop#7 +[visit_exp `VVBINOP`_instr{vectype#261, vvbinop#7}(`V128`_vectype, `AND`_vvbinop)] +[visit_exp vectype#261] +[visit_id vectype#261] +[visit_exp vvbinop#7] +[visit_id vvbinop#7] +[visit_exp (`V128`_vectype, `AND`_vvbinop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `AND`_vvbinop] +[visit_exp ()] +[visit_exp `%`_u32{i#64236}(78)] +[visit_exp i#64236] +[visit_id i#64236] +[visit_exp (78)] +[visit_exp 78] +[check_dims] i#64261 vectype#263 vvbinop#9 +dims \ = i#64261, vectype#263, vvbinop#9 +[visit_exp `VVBINOP`_instr{vectype#263, vvbinop#9}(`V128`_vectype, `ANDNOT`_vvbinop)] +[visit_exp vectype#263] +[visit_id vectype#263] +[visit_exp vvbinop#9] +[visit_id vvbinop#9] +[visit_exp (`V128`_vectype, `ANDNOT`_vvbinop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `ANDNOT`_vvbinop] +[visit_exp ()] +[visit_exp `%`_u32{i#64261}(79)] +[visit_exp i#64261] +[visit_id i#64261] +[visit_exp (79)] +[visit_exp 79] +[check_dims] i#64286 vectype#265 vvbinop#11 +dims \ = i#64286, vectype#265, vvbinop#11 +[visit_exp `VVBINOP`_instr{vectype#265, vvbinop#11}(`V128`_vectype, `OR`_vvbinop)] +[visit_exp vectype#265] +[visit_id vectype#265] +[visit_exp vvbinop#11] +[visit_id vvbinop#11] +[visit_exp (`V128`_vectype, `OR`_vvbinop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `OR`_vvbinop] +[visit_exp ()] +[visit_exp `%`_u32{i#64286}(80)] +[visit_exp i#64286] +[visit_id i#64286] +[visit_exp (80)] +[visit_exp 80] +[check_dims] i#64311 vectype#267 vvbinop#13 +dims \ = i#64311, vectype#267, vvbinop#13 +[visit_exp `VVBINOP`_instr{vectype#267, vvbinop#13}(`V128`_vectype, `XOR`_vvbinop)] +[visit_exp vectype#267] +[visit_id vectype#267] +[visit_exp vvbinop#13] +[visit_id vvbinop#13] +[visit_exp (`V128`_vectype, `XOR`_vvbinop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `XOR`_vvbinop] +[visit_exp ()] +[visit_exp `%`_u32{i#64311}(81)] +[visit_exp i#64311] +[visit_id i#64311] +[visit_exp (81)] +[visit_exp 81] +ps' = +[check_dims] +[check_dims] i#64336 vectype#269 vvternop#7 +dims \ = i#64336, vectype#269, vvternop#7 +[visit_exp `VVTERNOP`_instr{vectype#269, vvternop#7}(`V128`_vectype, `BITSELECT`_vvternop)] +[visit_exp vectype#269] +[visit_id vectype#269] +[visit_exp vvternop#7] +[visit_id vvternop#7] +[visit_exp (`V128`_vectype, `BITSELECT`_vvternop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `BITSELECT`_vvternop] +[visit_exp ()] +[visit_exp `%`_u32{i#64336}(82)] +[visit_exp i#64336] +[visit_id i#64336] +[visit_exp (82)] +[visit_exp 82] +ps' = +[check_dims] +[check_dims] i#64361 vectype#271 vvtestop#7 +dims \ = i#64361, vectype#271, vvtestop#7 +[visit_exp `VVTESTOP`_instr{vectype#271, vvtestop#7}(`V128`_vectype, `ANY_TRUE`_vvtestop)] +[visit_exp vectype#271] +[visit_id vectype#271] +[visit_exp vvtestop#7] +[visit_id vvtestop#7] +[visit_exp (`V128`_vectype, `ANY_TRUE`_vvtestop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `ANY_TRUE`_vvtestop] +[visit_exp ()] +[visit_exp `%`_u32{i#64361}(83)] +[visit_exp i#64361] +[visit_id i#64361] +[visit_exp (83)] +[visit_exp 83] +ps' = +[check_dims] +[check_dims] dim#9829 i#64386 i#64393 i#64400 lanetype#9829 shape#1036 +dims \ = dim#9829, i#64386, i#64393, i#64400, lanetype#9829, shape#1036 +[visit_exp `VUNOP`_instr{shape#1036}(`%X%`_shape{lanetype#9829, dim#9829, i#64393}(`I8`_lanetype, `%`_dim{i#64400}(16)), `ABS`_vunop_)] +[visit_exp shape#1036] +[visit_id shape#1036] +[visit_exp (`%X%`_shape{lanetype#9829, dim#9829, i#64393}(`I8`_lanetype, `%`_dim{i#64400}(16)), `ABS`_vunop_)] +[visit_exp `%X%`_shape{lanetype#9829, dim#9829, i#64393}(`I8`_lanetype, `%`_dim{i#64400}(16))] +[visit_exp lanetype#9829] +[visit_id lanetype#9829] +[visit_exp dim#9829] +[visit_id dim#9829] +[visit_exp i#64393] +[visit_id i#64393] +[visit_exp (`I8`_lanetype, `%`_dim{i#64400}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#64400}(16)] +[visit_exp i#64400] +[visit_id i#64400] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#64386}(96)] +[visit_exp i#64386] +[visit_id i#64386] +[visit_exp (96)] +[visit_exp 96] +[check_dims] dim#9856 i#64468 i#64475 i#64482 lanetype#9856 shape#1038 +dims \ = dim#9856, i#64468, i#64475, i#64482, lanetype#9856, shape#1038 +[visit_exp `VUNOP`_instr{shape#1038}(`%X%`_shape{lanetype#9856, dim#9856, i#64475}(`I8`_lanetype, `%`_dim{i#64482}(16)), `NEG`_vunop_)] +[visit_exp shape#1038] +[visit_id shape#1038] +[visit_exp (`%X%`_shape{lanetype#9856, dim#9856, i#64475}(`I8`_lanetype, `%`_dim{i#64482}(16)), `NEG`_vunop_)] +[visit_exp `%X%`_shape{lanetype#9856, dim#9856, i#64475}(`I8`_lanetype, `%`_dim{i#64482}(16))] +[visit_exp lanetype#9856] +[visit_id lanetype#9856] +[visit_exp dim#9856] +[visit_id dim#9856] +[visit_exp i#64475] +[visit_id i#64475] +[visit_exp (`I8`_lanetype, `%`_dim{i#64482}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#64482}(16)] +[visit_exp i#64482] +[visit_id i#64482] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#64468}(97)] +[visit_exp i#64468] +[visit_id i#64468] +[visit_exp (97)] +[visit_exp 97] +[check_dims] dim#9883 i#64550 i#64557 i#64564 lanetype#9883 shape#1040 +dims \ = dim#9883, i#64550, i#64557, i#64564, lanetype#9883, shape#1040 +[visit_exp `VUNOP`_instr{shape#1040}(`%X%`_shape{lanetype#9883, dim#9883, i#64557}(`I8`_lanetype, `%`_dim{i#64564}(16)), `POPCNT`_vunop_)] +[visit_exp shape#1040] +[visit_id shape#1040] +[visit_exp (`%X%`_shape{lanetype#9883, dim#9883, i#64557}(`I8`_lanetype, `%`_dim{i#64564}(16)), `POPCNT`_vunop_)] +[visit_exp `%X%`_shape{lanetype#9883, dim#9883, i#64557}(`I8`_lanetype, `%`_dim{i#64564}(16))] +[visit_exp lanetype#9883] +[visit_id lanetype#9883] +[visit_exp dim#9883] +[visit_id dim#9883] +[visit_exp i#64557] +[visit_id i#64557] +[visit_exp (`I8`_lanetype, `%`_dim{i#64564}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#64564}(16)] +[visit_exp i#64564] +[visit_id i#64564] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `POPCNT`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#64550}(98)] +[visit_exp i#64550] +[visit_id i#64550] +[visit_exp (98)] +[visit_exp 98] +ps' = +[check_dims] +[check_dims] dim#9910 i#64632 i#64639 i#64646 lanetype#9910 shape#1042 +dims \ = dim#9910, i#64632, i#64639, i#64646, lanetype#9910, shape#1042 +[visit_exp `VTESTOP`_instr{shape#1042}(`%X%`_shape{lanetype#9910, dim#9910, i#64639}(`I8`_lanetype, `%`_dim{i#64646}(16)), `ALL_TRUE`_vtestop_)] +[visit_exp shape#1042] +[visit_id shape#1042] +[visit_exp (`%X%`_shape{lanetype#9910, dim#9910, i#64639}(`I8`_lanetype, `%`_dim{i#64646}(16)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape{lanetype#9910, dim#9910, i#64639}(`I8`_lanetype, `%`_dim{i#64646}(16))] +[visit_exp lanetype#9910] +[visit_id lanetype#9910] +[visit_exp dim#9910] +[visit_id dim#9910] +[visit_exp i#64639] +[visit_id i#64639] +[visit_exp (`I8`_lanetype, `%`_dim{i#64646}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#64646}(16)] +[visit_exp i#64646] +[visit_id i#64646] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `ALL_TRUE`_vtestop_] +[visit_exp ()] +[visit_exp `%`_u32{i#64632}(99)] +[visit_exp i#64632] +[visit_id i#64632] +[visit_exp (99)] +[visit_exp 99] +ps' = +[check_dims] +[check_dims] Jnn#228 dim#9937 i#64714 i#64721 i#64728 ishape#13 lanetype#9937 shape#1054 +dims \ = Jnn#228, dim#9937, i#64714, i#64721, i#64728, ishape#13, lanetype#9937, shape#1054 +[visit_exp `VBITMASK`_instr{ishape#13}(`%`_ishape{shape#1054, Jnn#228}(`%X%`_shape{lanetype#9937, dim#9937, i#64721}(`I8`_lanetype, `%`_dim{i#64728}(16))))] +[visit_exp ishape#13] +[visit_id ishape#13] +[visit_exp (`%`_ishape{shape#1054, Jnn#228}(`%X%`_shape{lanetype#9937, dim#9937, i#64721}(`I8`_lanetype, `%`_dim{i#64728}(16))))] +[visit_exp `%`_ishape{shape#1054, Jnn#228}(`%X%`_shape{lanetype#9937, dim#9937, i#64721}(`I8`_lanetype, `%`_dim{i#64728}(16)))] +[visit_exp shape#1054] +[visit_id shape#1054] +[visit_exp Jnn#228] +[visit_id Jnn#228] +[visit_exp (`%X%`_shape{lanetype#9937, dim#9937, i#64721}(`I8`_lanetype, `%`_dim{i#64728}(16)))] +[visit_exp `%X%`_shape{lanetype#9937, dim#9937, i#64721}(`I8`_lanetype, `%`_dim{i#64728}(16))] +[visit_exp lanetype#9937] +[visit_id lanetype#9937] +[visit_exp dim#9937] +[visit_id dim#9937] +[visit_exp i#64721] +[visit_id i#64721] +[visit_exp (`I8`_lanetype, `%`_dim{i#64728}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#64728}(16)] +[visit_exp i#64728] +[visit_id i#64728] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `%`_u32{i#64714}(100)] +[visit_exp i#64714] +[visit_id i#64714] +[visit_exp (100)] +[visit_exp 100] +ps' = +[check_dims] +[check_dims] Jnn#229 Jnn#230 Jnn#231 Jnn#235 Jnn#239 dim#9949 dim#9961 i#64751 i#64758 i#64765 i#64770 i#64777 ishape_1#25 ishape_2#25 lanetype#9949 lanetype#9961 shape#1056 shape#1057 shape#1058 shape#1069 shape#1081 sx#9753 +dims \ = Jnn#229, Jnn#230, Jnn#231, Jnn#235, Jnn#239, dim#9949, dim#9961, i#64751, i#64758, i#64765, i#64770, i#64777, ishape_1#25, ishape_2#25, lanetype#9949, lanetype#9961, shape#1056, shape#1057, shape#1058, shape#1069, shape#1081, sx#9753 +[visit_exp `VNARROW`_instr{ishape_1#25, ishape_2#25, sx#9753, shape#1056, Jnn#229, shape#1057, Jnn#230, shape#1058, Jnn#231}(`%`_ishape{shape#1069, Jnn#235}(`%X%`_shape{lanetype#9949, dim#9949, i#64758}(`I8`_lanetype, `%`_dim{i#64765}(16))), `%`_ishape{shape#1081, Jnn#239}(`%X%`_shape{lanetype#9961, dim#9961, i#64770}(`I16`_lanetype, `%`_dim{i#64777}(8))), `S`_sx)] +[visit_exp ishape_1#25] +[visit_id ishape_1#25] +[visit_exp ishape_2#25] +[visit_id ishape_2#25] +[visit_exp sx#9753] +[visit_id sx#9753] +[visit_exp shape#1056] +[visit_id shape#1056] +[visit_exp Jnn#229] +[visit_id Jnn#229] +[visit_exp shape#1057] +[visit_id shape#1057] +[visit_exp Jnn#230] +[visit_id Jnn#230] +[visit_exp shape#1058] +[visit_id shape#1058] +[visit_exp Jnn#231] +[visit_id Jnn#231] +[visit_exp (`%`_ishape{shape#1069, Jnn#235}(`%X%`_shape{lanetype#9949, dim#9949, i#64758}(`I8`_lanetype, `%`_dim{i#64765}(16))), `%`_ishape{shape#1081, Jnn#239}(`%X%`_shape{lanetype#9961, dim#9961, i#64770}(`I16`_lanetype, `%`_dim{i#64777}(8))), `S`_sx)] +[visit_exp `%`_ishape{shape#1069, Jnn#235}(`%X%`_shape{lanetype#9949, dim#9949, i#64758}(`I8`_lanetype, `%`_dim{i#64765}(16)))] +[visit_exp shape#1069] +[visit_id shape#1069] +[visit_exp Jnn#235] +[visit_id Jnn#235] +[visit_exp (`%X%`_shape{lanetype#9949, dim#9949, i#64758}(`I8`_lanetype, `%`_dim{i#64765}(16)))] +[visit_exp `%X%`_shape{lanetype#9949, dim#9949, i#64758}(`I8`_lanetype, `%`_dim{i#64765}(16))] +[visit_exp lanetype#9949] +[visit_id lanetype#9949] +[visit_exp dim#9949] +[visit_id dim#9949] +[visit_exp i#64758] +[visit_id i#64758] +[visit_exp (`I8`_lanetype, `%`_dim{i#64765}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#64765}(16)] +[visit_exp i#64765] +[visit_id i#64765] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `%`_ishape{shape#1081, Jnn#239}(`%X%`_shape{lanetype#9961, dim#9961, i#64770}(`I16`_lanetype, `%`_dim{i#64777}(8)))] +[visit_exp shape#1081] +[visit_id shape#1081] +[visit_exp Jnn#239] +[visit_id Jnn#239] +[visit_exp (`%X%`_shape{lanetype#9961, dim#9961, i#64770}(`I16`_lanetype, `%`_dim{i#64777}(8)))] +[visit_exp `%X%`_shape{lanetype#9961, dim#9961, i#64770}(`I16`_lanetype, `%`_dim{i#64777}(8))] +[visit_exp lanetype#9961] +[visit_id lanetype#9961] +[visit_exp dim#9961] +[visit_id dim#9961] +[visit_exp i#64770] +[visit_id i#64770] +[visit_exp (`I16`_lanetype, `%`_dim{i#64777}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#64777}(8)] +[visit_exp i#64777] +[visit_id i#64777] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#64751}(101)] +[visit_exp i#64751] +[visit_id i#64751] +[visit_exp (101)] +[visit_exp 101] +[check_dims] Jnn#240 Jnn#241 Jnn#242 Jnn#246 Jnn#250 dim#9973 dim#9985 i#64800 i#64807 i#64814 i#64819 i#64826 ishape_1#27 ishape_2#27 lanetype#9973 lanetype#9985 shape#1083 shape#1084 shape#1085 shape#1096 shape#1108 sx#9755 +dims \ = Jnn#240, Jnn#241, Jnn#242, Jnn#246, Jnn#250, dim#9973, dim#9985, i#64800, i#64807, i#64814, i#64819, i#64826, ishape_1#27, ishape_2#27, lanetype#9973, lanetype#9985, shape#1083, shape#1084, shape#1085, shape#1096, shape#1108, sx#9755 +[visit_exp `VNARROW`_instr{ishape_1#27, ishape_2#27, sx#9755, shape#1083, Jnn#240, shape#1084, Jnn#241, shape#1085, Jnn#242}(`%`_ishape{shape#1096, Jnn#246}(`%X%`_shape{lanetype#9973, dim#9973, i#64807}(`I8`_lanetype, `%`_dim{i#64814}(16))), `%`_ishape{shape#1108, Jnn#250}(`%X%`_shape{lanetype#9985, dim#9985, i#64819}(`I16`_lanetype, `%`_dim{i#64826}(8))), `U`_sx)] +[visit_exp ishape_1#27] +[visit_id ishape_1#27] +[visit_exp ishape_2#27] +[visit_id ishape_2#27] +[visit_exp sx#9755] +[visit_id sx#9755] +[visit_exp shape#1083] +[visit_id shape#1083] +[visit_exp Jnn#240] +[visit_id Jnn#240] +[visit_exp shape#1084] +[visit_id shape#1084] +[visit_exp Jnn#241] +[visit_id Jnn#241] +[visit_exp shape#1085] +[visit_id shape#1085] +[visit_exp Jnn#242] +[visit_id Jnn#242] +[visit_exp (`%`_ishape{shape#1096, Jnn#246}(`%X%`_shape{lanetype#9973, dim#9973, i#64807}(`I8`_lanetype, `%`_dim{i#64814}(16))), `%`_ishape{shape#1108, Jnn#250}(`%X%`_shape{lanetype#9985, dim#9985, i#64819}(`I16`_lanetype, `%`_dim{i#64826}(8))), `U`_sx)] +[visit_exp `%`_ishape{shape#1096, Jnn#246}(`%X%`_shape{lanetype#9973, dim#9973, i#64807}(`I8`_lanetype, `%`_dim{i#64814}(16)))] +[visit_exp shape#1096] +[visit_id shape#1096] +[visit_exp Jnn#246] +[visit_id Jnn#246] +[visit_exp (`%X%`_shape{lanetype#9973, dim#9973, i#64807}(`I8`_lanetype, `%`_dim{i#64814}(16)))] +[visit_exp `%X%`_shape{lanetype#9973, dim#9973, i#64807}(`I8`_lanetype, `%`_dim{i#64814}(16))] +[visit_exp lanetype#9973] +[visit_id lanetype#9973] +[visit_exp dim#9973] +[visit_id dim#9973] +[visit_exp i#64807] +[visit_id i#64807] +[visit_exp (`I8`_lanetype, `%`_dim{i#64814}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#64814}(16)] +[visit_exp i#64814] +[visit_id i#64814] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `%`_ishape{shape#1108, Jnn#250}(`%X%`_shape{lanetype#9985, dim#9985, i#64819}(`I16`_lanetype, `%`_dim{i#64826}(8)))] +[visit_exp shape#1108] +[visit_id shape#1108] +[visit_exp Jnn#250] +[visit_id Jnn#250] +[visit_exp (`%X%`_shape{lanetype#9985, dim#9985, i#64819}(`I16`_lanetype, `%`_dim{i#64826}(8)))] +[visit_exp `%X%`_shape{lanetype#9985, dim#9985, i#64819}(`I16`_lanetype, `%`_dim{i#64826}(8))] +[visit_exp lanetype#9985] +[visit_id lanetype#9985] +[visit_exp dim#9985] +[visit_id dim#9985] +[visit_exp i#64819] +[visit_id i#64819] +[visit_exp (`I16`_lanetype, `%`_dim{i#64826}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#64826}(8)] +[visit_exp i#64826] +[visit_id i#64826] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#64800}(102)] +[visit_exp i#64800] +[visit_id i#64800] +[visit_exp (102)] +[visit_exp 102] +ps' = +[check_dims] +[check_dims] Jnn#254 dim#9997 i#64849 i#64856 i#64863 ishape#15 lanetype#9997 shape#1120 +dims \ = Jnn#254, dim#9997, i#64849, i#64856, i#64863, ishape#15, lanetype#9997, shape#1120 +[visit_exp `VSHIFTOP`_instr{ishape#15}(`%`_ishape{shape#1120, Jnn#254}(`%X%`_shape{lanetype#9997, dim#9997, i#64856}(`I8`_lanetype, `%`_dim{i#64863}(16))), `SHL`_vshiftop_)] +[visit_exp ishape#15] +[visit_id ishape#15] +[visit_exp (`%`_ishape{shape#1120, Jnn#254}(`%X%`_shape{lanetype#9997, dim#9997, i#64856}(`I8`_lanetype, `%`_dim{i#64863}(16))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape{shape#1120, Jnn#254}(`%X%`_shape{lanetype#9997, dim#9997, i#64856}(`I8`_lanetype, `%`_dim{i#64863}(16)))] +[visit_exp shape#1120] +[visit_id shape#1120] +[visit_exp Jnn#254] +[visit_id Jnn#254] +[visit_exp (`%X%`_shape{lanetype#9997, dim#9997, i#64856}(`I8`_lanetype, `%`_dim{i#64863}(16)))] +[visit_exp `%X%`_shape{lanetype#9997, dim#9997, i#64856}(`I8`_lanetype, `%`_dim{i#64863}(16))] +[visit_exp lanetype#9997] +[visit_id lanetype#9997] +[visit_exp dim#9997] +[visit_id dim#9997] +[visit_exp i#64856] +[visit_id i#64856] +[visit_exp (`I8`_lanetype, `%`_dim{i#64863}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#64863}(16)] +[visit_exp i#64863] +[visit_id i#64863] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SHL`_vshiftop_] +[visit_exp ()] +[visit_exp `%`_u32{i#64849}(107)] +[visit_exp i#64849] +[visit_id i#64849] +[visit_exp (107)] +[visit_exp 107] +[check_dims] Jnn#258 dim#10054 i#64961 i#64968 i#64975 ishape#17 lanetype#10054 shape#1147 sx#9804 +dims \ = Jnn#258, dim#10054, i#64961, i#64968, i#64975, ishape#17, lanetype#10054, shape#1147, sx#9804 +[visit_exp `VSHIFTOP`_instr{ishape#17}(`%`_ishape{shape#1147, Jnn#258}(`%X%`_shape{lanetype#10054, dim#10054, i#64968}(`I8`_lanetype, `%`_dim{i#64975}(16))), `SHR`_vshiftop_{sx#9804}(`S`_sx))] +[visit_exp ishape#17] +[visit_id ishape#17] +[visit_exp (`%`_ishape{shape#1147, Jnn#258}(`%X%`_shape{lanetype#10054, dim#10054, i#64968}(`I8`_lanetype, `%`_dim{i#64975}(16))), `SHR`_vshiftop_{sx#9804}(`S`_sx))] +[visit_exp `%`_ishape{shape#1147, Jnn#258}(`%X%`_shape{lanetype#10054, dim#10054, i#64968}(`I8`_lanetype, `%`_dim{i#64975}(16)))] +[visit_exp shape#1147] +[visit_id shape#1147] +[visit_exp Jnn#258] +[visit_id Jnn#258] +[visit_exp (`%X%`_shape{lanetype#10054, dim#10054, i#64968}(`I8`_lanetype, `%`_dim{i#64975}(16)))] +[visit_exp `%X%`_shape{lanetype#10054, dim#10054, i#64968}(`I8`_lanetype, `%`_dim{i#64975}(16))] +[visit_exp lanetype#10054] +[visit_id lanetype#10054] +[visit_exp dim#10054] +[visit_id dim#10054] +[visit_exp i#64968] +[visit_id i#64968] +[visit_exp (`I8`_lanetype, `%`_dim{i#64975}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#64975}(16)] +[visit_exp i#64975] +[visit_id i#64975] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SHR`_vshiftop_{sx#9804}(`S`_sx)] +[visit_exp sx#9804] +[visit_id sx#9804] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#64961}(108)] +[visit_exp i#64961] +[visit_id i#64961] +[visit_exp (108)] +[visit_exp 108] +[check_dims] Jnn#262 dim#10156 i#65148 i#65155 i#65162 ishape#19 lanetype#10156 shape#1189 sx#9838 +dims \ = Jnn#262, dim#10156, i#65148, i#65155, i#65162, ishape#19, lanetype#10156, shape#1189, sx#9838 +[visit_exp `VSHIFTOP`_instr{ishape#19}(`%`_ishape{shape#1189, Jnn#262}(`%X%`_shape{lanetype#10156, dim#10156, i#65155}(`I8`_lanetype, `%`_dim{i#65162}(16))), `SHR`_vshiftop_{sx#9838}(`U`_sx))] +[visit_exp ishape#19] +[visit_id ishape#19] +[visit_exp (`%`_ishape{shape#1189, Jnn#262}(`%X%`_shape{lanetype#10156, dim#10156, i#65155}(`I8`_lanetype, `%`_dim{i#65162}(16))), `SHR`_vshiftop_{sx#9838}(`U`_sx))] +[visit_exp `%`_ishape{shape#1189, Jnn#262}(`%X%`_shape{lanetype#10156, dim#10156, i#65155}(`I8`_lanetype, `%`_dim{i#65162}(16)))] +[visit_exp shape#1189] +[visit_id shape#1189] +[visit_exp Jnn#262] +[visit_id Jnn#262] +[visit_exp (`%X%`_shape{lanetype#10156, dim#10156, i#65155}(`I8`_lanetype, `%`_dim{i#65162}(16)))] +[visit_exp `%X%`_shape{lanetype#10156, dim#10156, i#65155}(`I8`_lanetype, `%`_dim{i#65162}(16))] +[visit_exp lanetype#10156] +[visit_id lanetype#10156] +[visit_exp dim#10156] +[visit_id dim#10156] +[visit_exp i#65155] +[visit_id i#65155] +[visit_exp (`I8`_lanetype, `%`_dim{i#65162}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#65162}(16)] +[visit_exp i#65162] +[visit_id i#65162] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SHR`_vshiftop_{sx#9838}(`U`_sx)] +[visit_exp sx#9838] +[visit_id sx#9838] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#65148}(109)] +[visit_exp i#65148] +[visit_id i#65148] +[visit_exp (109)] +[visit_exp 109] +ps' = +[check_dims] +[check_dims] dim#10258 i#65335 i#65342 i#65349 lanetype#10258 shape#1221 +dims \ = dim#10258, i#65335, i#65342, i#65349, lanetype#10258, shape#1221 +[visit_exp `VBINOP`_instr{shape#1221}(`%X%`_shape{lanetype#10258, dim#10258, i#65342}(`I8`_lanetype, `%`_dim{i#65349}(16)), `ADD`_vbinop_)] +[visit_exp shape#1221] +[visit_id shape#1221] +[visit_exp (`%X%`_shape{lanetype#10258, dim#10258, i#65342}(`I8`_lanetype, `%`_dim{i#65349}(16)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#10258, dim#10258, i#65342}(`I8`_lanetype, `%`_dim{i#65349}(16))] +[visit_exp lanetype#10258] +[visit_id lanetype#10258] +[visit_exp dim#10258] +[visit_id dim#10258] +[visit_exp i#65342] +[visit_id i#65342] +[visit_exp (`I8`_lanetype, `%`_dim{i#65349}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#65349}(16)] +[visit_exp i#65349] +[visit_id i#65349] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#65335}(110)] +[visit_exp i#65335] +[visit_id i#65335] +[visit_exp (110)] +[visit_exp 110] +[check_dims] dim#10285 i#65417 i#65424 i#65431 lanetype#10285 shape#1223 sx#10022 +dims \ = dim#10285, i#65417, i#65424, i#65431, lanetype#10285, shape#1223, sx#10022 +[visit_exp `VBINOP`_instr{shape#1223}(`%X%`_shape{lanetype#10285, dim#10285, i#65424}(`I8`_lanetype, `%`_dim{i#65431}(16)), `ADD_SAT`_vbinop_{sx#10022}(`S`_sx))] +[visit_exp shape#1223] +[visit_id shape#1223] +[visit_exp (`%X%`_shape{lanetype#10285, dim#10285, i#65424}(`I8`_lanetype, `%`_dim{i#65431}(16)), `ADD_SAT`_vbinop_{sx#10022}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#10285, dim#10285, i#65424}(`I8`_lanetype, `%`_dim{i#65431}(16))] +[visit_exp lanetype#10285] +[visit_id lanetype#10285] +[visit_exp dim#10285] +[visit_id dim#10285] +[visit_exp i#65424] +[visit_id i#65424] +[visit_exp (`I8`_lanetype, `%`_dim{i#65431}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#65431}(16)] +[visit_exp i#65431] +[visit_id i#65431] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `ADD_SAT`_vbinop_{sx#10022}(`S`_sx)] +[visit_exp sx#10022] +[visit_id sx#10022] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#65417}(111)] +[visit_exp i#65417] +[visit_id i#65417] +[visit_exp (111)] +[visit_exp 111] +[check_dims] dim#10327 i#65544 i#65551 i#65558 lanetype#10327 shape#1225 sx#10146 +dims \ = dim#10327, i#65544, i#65551, i#65558, lanetype#10327, shape#1225, sx#10146 +[visit_exp `VBINOP`_instr{shape#1225}(`%X%`_shape{lanetype#10327, dim#10327, i#65551}(`I8`_lanetype, `%`_dim{i#65558}(16)), `ADD_SAT`_vbinop_{sx#10146}(`U`_sx))] +[visit_exp shape#1225] +[visit_id shape#1225] +[visit_exp (`%X%`_shape{lanetype#10327, dim#10327, i#65551}(`I8`_lanetype, `%`_dim{i#65558}(16)), `ADD_SAT`_vbinop_{sx#10146}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#10327, dim#10327, i#65551}(`I8`_lanetype, `%`_dim{i#65558}(16))] +[visit_exp lanetype#10327] +[visit_id lanetype#10327] +[visit_exp dim#10327] +[visit_id dim#10327] +[visit_exp i#65551] +[visit_id i#65551] +[visit_exp (`I8`_lanetype, `%`_dim{i#65558}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#65558}(16)] +[visit_exp i#65558] +[visit_id i#65558] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `ADD_SAT`_vbinop_{sx#10146}(`U`_sx)] +[visit_exp sx#10146] +[visit_id sx#10146] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#65544}(112)] +[visit_exp i#65544] +[visit_id i#65544] +[visit_exp (112)] +[visit_exp 112] +[check_dims] dim#10369 i#65671 i#65678 i#65685 lanetype#10369 shape#1227 +dims \ = dim#10369, i#65671, i#65678, i#65685, lanetype#10369, shape#1227 +[visit_exp `VBINOP`_instr{shape#1227}(`%X%`_shape{lanetype#10369, dim#10369, i#65678}(`I8`_lanetype, `%`_dim{i#65685}(16)), `SUB`_vbinop_)] +[visit_exp shape#1227] +[visit_id shape#1227] +[visit_exp (`%X%`_shape{lanetype#10369, dim#10369, i#65678}(`I8`_lanetype, `%`_dim{i#65685}(16)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#10369, dim#10369, i#65678}(`I8`_lanetype, `%`_dim{i#65685}(16))] +[visit_exp lanetype#10369] +[visit_id lanetype#10369] +[visit_exp dim#10369] +[visit_id dim#10369] +[visit_exp i#65678] +[visit_id i#65678] +[visit_exp (`I8`_lanetype, `%`_dim{i#65685}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#65685}(16)] +[visit_exp i#65685] +[visit_id i#65685] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#65671}(113)] +[visit_exp i#65671] +[visit_id i#65671] +[visit_exp (113)] +[visit_exp 113] +[check_dims] dim#10396 i#65753 i#65760 i#65767 lanetype#10396 shape#1229 sx#10330 +dims \ = dim#10396, i#65753, i#65760, i#65767, lanetype#10396, shape#1229, sx#10330 +[visit_exp `VBINOP`_instr{shape#1229}(`%X%`_shape{lanetype#10396, dim#10396, i#65760}(`I8`_lanetype, `%`_dim{i#65767}(16)), `SUB_SAT`_vbinop_{sx#10330}(`S`_sx))] +[visit_exp shape#1229] +[visit_id shape#1229] +[visit_exp (`%X%`_shape{lanetype#10396, dim#10396, i#65760}(`I8`_lanetype, `%`_dim{i#65767}(16)), `SUB_SAT`_vbinop_{sx#10330}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#10396, dim#10396, i#65760}(`I8`_lanetype, `%`_dim{i#65767}(16))] +[visit_exp lanetype#10396] +[visit_id lanetype#10396] +[visit_exp dim#10396] +[visit_id dim#10396] +[visit_exp i#65760] +[visit_id i#65760] +[visit_exp (`I8`_lanetype, `%`_dim{i#65767}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#65767}(16)] +[visit_exp i#65767] +[visit_id i#65767] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SUB_SAT`_vbinop_{sx#10330}(`S`_sx)] +[visit_exp sx#10330] +[visit_id sx#10330] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#65753}(114)] +[visit_exp i#65753] +[visit_id i#65753] +[visit_exp (114)] +[visit_exp 114] +[check_dims] dim#10438 i#65880 i#65887 i#65894 lanetype#10438 shape#1231 sx#10454 +dims \ = dim#10438, i#65880, i#65887, i#65894, lanetype#10438, shape#1231, sx#10454 +[visit_exp `VBINOP`_instr{shape#1231}(`%X%`_shape{lanetype#10438, dim#10438, i#65887}(`I8`_lanetype, `%`_dim{i#65894}(16)), `SUB_SAT`_vbinop_{sx#10454}(`U`_sx))] +[visit_exp shape#1231] +[visit_id shape#1231] +[visit_exp (`%X%`_shape{lanetype#10438, dim#10438, i#65887}(`I8`_lanetype, `%`_dim{i#65894}(16)), `SUB_SAT`_vbinop_{sx#10454}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#10438, dim#10438, i#65887}(`I8`_lanetype, `%`_dim{i#65894}(16))] +[visit_exp lanetype#10438] +[visit_id lanetype#10438] +[visit_exp dim#10438] +[visit_id dim#10438] +[visit_exp i#65887] +[visit_id i#65887] +[visit_exp (`I8`_lanetype, `%`_dim{i#65894}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#65894}(16)] +[visit_exp i#65894] +[visit_id i#65894] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SUB_SAT`_vbinop_{sx#10454}(`U`_sx)] +[visit_exp sx#10454] +[visit_id sx#10454] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#65880}(115)] +[visit_exp i#65880] +[visit_id i#65880] +[visit_exp (115)] +[visit_exp 115] +[check_dims] dim#10480 i#66007 i#66014 i#66021 lanetype#10480 shape#1233 sx#10578 +dims \ = dim#10480, i#66007, i#66014, i#66021, lanetype#10480, shape#1233, sx#10578 +[visit_exp `VBINOP`_instr{shape#1233}(`%X%`_shape{lanetype#10480, dim#10480, i#66014}(`I8`_lanetype, `%`_dim{i#66021}(16)), `MIN`_vbinop_{sx#10578}(`S`_sx))] +[visit_exp shape#1233] +[visit_id shape#1233] +[visit_exp (`%X%`_shape{lanetype#10480, dim#10480, i#66014}(`I8`_lanetype, `%`_dim{i#66021}(16)), `MIN`_vbinop_{sx#10578}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#10480, dim#10480, i#66014}(`I8`_lanetype, `%`_dim{i#66021}(16))] +[visit_exp lanetype#10480] +[visit_id lanetype#10480] +[visit_exp dim#10480] +[visit_id dim#10480] +[visit_exp i#66014] +[visit_id i#66014] +[visit_exp (`I8`_lanetype, `%`_dim{i#66021}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#66021}(16)] +[visit_exp i#66021] +[visit_id i#66021] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `MIN`_vbinop_{sx#10578}(`S`_sx)] +[visit_exp sx#10578] +[visit_id sx#10578] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#66007}(118)] +[visit_exp i#66007] +[visit_id i#66007] +[visit_exp (118)] +[visit_exp 118] +[check_dims] dim#10522 i#66134 i#66141 i#66148 lanetype#10522 shape#1235 sx#10702 +dims \ = dim#10522, i#66134, i#66141, i#66148, lanetype#10522, shape#1235, sx#10702 +[visit_exp `VBINOP`_instr{shape#1235}(`%X%`_shape{lanetype#10522, dim#10522, i#66141}(`I8`_lanetype, `%`_dim{i#66148}(16)), `MIN`_vbinop_{sx#10702}(`U`_sx))] +[visit_exp shape#1235] +[visit_id shape#1235] +[visit_exp (`%X%`_shape{lanetype#10522, dim#10522, i#66141}(`I8`_lanetype, `%`_dim{i#66148}(16)), `MIN`_vbinop_{sx#10702}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#10522, dim#10522, i#66141}(`I8`_lanetype, `%`_dim{i#66148}(16))] +[visit_exp lanetype#10522] +[visit_id lanetype#10522] +[visit_exp dim#10522] +[visit_id dim#10522] +[visit_exp i#66141] +[visit_id i#66141] +[visit_exp (`I8`_lanetype, `%`_dim{i#66148}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#66148}(16)] +[visit_exp i#66148] +[visit_id i#66148] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `MIN`_vbinop_{sx#10702}(`U`_sx)] +[visit_exp sx#10702] +[visit_id sx#10702] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#66134}(119)] +[visit_exp i#66134] +[visit_id i#66134] +[visit_exp (119)] +[visit_exp 119] +[check_dims] dim#10564 i#66261 i#66268 i#66275 lanetype#10564 shape#1237 sx#10826 +dims \ = dim#10564, i#66261, i#66268, i#66275, lanetype#10564, shape#1237, sx#10826 +[visit_exp `VBINOP`_instr{shape#1237}(`%X%`_shape{lanetype#10564, dim#10564, i#66268}(`I8`_lanetype, `%`_dim{i#66275}(16)), `MAX`_vbinop_{sx#10826}(`S`_sx))] +[visit_exp shape#1237] +[visit_id shape#1237] +[visit_exp (`%X%`_shape{lanetype#10564, dim#10564, i#66268}(`I8`_lanetype, `%`_dim{i#66275}(16)), `MAX`_vbinop_{sx#10826}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#10564, dim#10564, i#66268}(`I8`_lanetype, `%`_dim{i#66275}(16))] +[visit_exp lanetype#10564] +[visit_id lanetype#10564] +[visit_exp dim#10564] +[visit_id dim#10564] +[visit_exp i#66268] +[visit_id i#66268] +[visit_exp (`I8`_lanetype, `%`_dim{i#66275}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#66275}(16)] +[visit_exp i#66275] +[visit_id i#66275] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `MAX`_vbinop_{sx#10826}(`S`_sx)] +[visit_exp sx#10826] +[visit_id sx#10826] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#66261}(120)] +[visit_exp i#66261] +[visit_id i#66261] +[visit_exp (120)] +[visit_exp 120] +[check_dims] dim#10606 i#66388 i#66395 i#66402 lanetype#10606 shape#1239 sx#10950 +dims \ = dim#10606, i#66388, i#66395, i#66402, lanetype#10606, shape#1239, sx#10950 +[visit_exp `VBINOP`_instr{shape#1239}(`%X%`_shape{lanetype#10606, dim#10606, i#66395}(`I8`_lanetype, `%`_dim{i#66402}(16)), `MAX`_vbinop_{sx#10950}(`U`_sx))] +[visit_exp shape#1239] +[visit_id shape#1239] +[visit_exp (`%X%`_shape{lanetype#10606, dim#10606, i#66395}(`I8`_lanetype, `%`_dim{i#66402}(16)), `MAX`_vbinop_{sx#10950}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#10606, dim#10606, i#66395}(`I8`_lanetype, `%`_dim{i#66402}(16))] +[visit_exp lanetype#10606] +[visit_id lanetype#10606] +[visit_exp dim#10606] +[visit_id dim#10606] +[visit_exp i#66395] +[visit_id i#66395] +[visit_exp (`I8`_lanetype, `%`_dim{i#66402}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#66402}(16)] +[visit_exp i#66402] +[visit_id i#66402] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `MAX`_vbinop_{sx#10950}(`U`_sx)] +[visit_exp sx#10950] +[visit_id sx#10950] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#66388}(121)] +[visit_exp i#66388] +[visit_id i#66388] +[visit_exp (121)] +[visit_exp 121] +[check_dims] dim#10648 i#66515 i#66522 i#66529 lanetype#10648 shape#1241 +dims \ = dim#10648, i#66515, i#66522, i#66529, lanetype#10648, shape#1241 +[visit_exp `VBINOP`_instr{shape#1241}(`%X%`_shape{lanetype#10648, dim#10648, i#66522}(`I8`_lanetype, `%`_dim{i#66529}(16)), `AVGRU`_vbinop_)] +[visit_exp shape#1241] +[visit_id shape#1241] +[visit_exp (`%X%`_shape{lanetype#10648, dim#10648, i#66522}(`I8`_lanetype, `%`_dim{i#66529}(16)), `AVGRU`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#10648, dim#10648, i#66522}(`I8`_lanetype, `%`_dim{i#66529}(16))] +[visit_exp lanetype#10648] +[visit_id lanetype#10648] +[visit_exp dim#10648] +[visit_id dim#10648] +[visit_exp i#66522] +[visit_id i#66522] +[visit_exp (`I8`_lanetype, `%`_dim{i#66529}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#66529}(16)] +[visit_exp i#66529] +[visit_id i#66529] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `AVGRU`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#66515}(123)] +[visit_exp i#66515] +[visit_id i#66515] +[visit_exp (123)] +[visit_exp 123] +ps' = +[check_dims] +[check_dims] Jnn#266 Jnn#270 dim#10690 dim#10702 i#66642 i#66649 i#66656 i#66661 i#66668 ishape_1#29 ishape_2#29 lanetype#10690 lanetype#10702 shape#1253 shape#1265 sx#11104 +dims \ = Jnn#266, Jnn#270, dim#10690, dim#10702, i#66642, i#66649, i#66656, i#66661, i#66668, ishape_1#29, ishape_2#29, lanetype#10690, lanetype#10702, shape#1253, shape#1265, sx#11104 +[visit_exp `VEXTUNOP`_instr{ishape_1#29, ishape_2#29}(`%`_ishape{shape#1253, Jnn#266}(`%X%`_shape{lanetype#10690, dim#10690, i#66649}(`I16`_lanetype, `%`_dim{i#66656}(8))), `%`_ishape{shape#1265, Jnn#270}(`%X%`_shape{lanetype#10702, dim#10702, i#66661}(`I8`_lanetype, `%`_dim{i#66668}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#11104}(`S`_sx))] +[visit_exp ishape_1#29] +[visit_id ishape_1#29] +[visit_exp ishape_2#29] +[visit_id ishape_2#29] +[visit_exp (`%`_ishape{shape#1253, Jnn#266}(`%X%`_shape{lanetype#10690, dim#10690, i#66649}(`I16`_lanetype, `%`_dim{i#66656}(8))), `%`_ishape{shape#1265, Jnn#270}(`%X%`_shape{lanetype#10702, dim#10702, i#66661}(`I8`_lanetype, `%`_dim{i#66668}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#11104}(`S`_sx))] +[visit_exp `%`_ishape{shape#1253, Jnn#266}(`%X%`_shape{lanetype#10690, dim#10690, i#66649}(`I16`_lanetype, `%`_dim{i#66656}(8)))] +[visit_exp shape#1253] +[visit_id shape#1253] +[visit_exp Jnn#266] +[visit_id Jnn#266] +[visit_exp (`%X%`_shape{lanetype#10690, dim#10690, i#66649}(`I16`_lanetype, `%`_dim{i#66656}(8)))] +[visit_exp `%X%`_shape{lanetype#10690, dim#10690, i#66649}(`I16`_lanetype, `%`_dim{i#66656}(8))] +[visit_exp lanetype#10690] +[visit_id lanetype#10690] +[visit_exp dim#10690] +[visit_id dim#10690] +[visit_exp i#66649] +[visit_id i#66649] +[visit_exp (`I16`_lanetype, `%`_dim{i#66656}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#66656}(8)] +[visit_exp i#66656] +[visit_id i#66656] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#1265, Jnn#270}(`%X%`_shape{lanetype#10702, dim#10702, i#66661}(`I8`_lanetype, `%`_dim{i#66668}(16)))] +[visit_exp shape#1265] +[visit_id shape#1265] +[visit_exp Jnn#270] +[visit_id Jnn#270] +[visit_exp (`%X%`_shape{lanetype#10702, dim#10702, i#66661}(`I8`_lanetype, `%`_dim{i#66668}(16)))] +[visit_exp `%X%`_shape{lanetype#10702, dim#10702, i#66661}(`I8`_lanetype, `%`_dim{i#66668}(16))] +[visit_exp lanetype#10702] +[visit_id lanetype#10702] +[visit_exp dim#10702] +[visit_id dim#10702] +[visit_exp i#66661] +[visit_id i#66661] +[visit_exp (`I8`_lanetype, `%`_dim{i#66668}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#66668}(16)] +[visit_exp i#66668] +[visit_id i#66668] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#11104}(`S`_sx)] +[visit_exp sx#11104] +[visit_id sx#11104] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#66642}(124)] +[visit_exp i#66642] +[visit_id i#66642] +[visit_exp (124)] +[visit_exp 124] +[check_dims] Jnn#274 Jnn#278 dim#10925 dim#10937 i#67022 i#67029 i#67036 i#67041 i#67048 ishape_1#31 ishape_2#31 lanetype#10925 lanetype#10937 shape#1368 shape#1380 sx#11138 +dims \ = Jnn#274, Jnn#278, dim#10925, dim#10937, i#67022, i#67029, i#67036, i#67041, i#67048, ishape_1#31, ishape_2#31, lanetype#10925, lanetype#10937, shape#1368, shape#1380, sx#11138 +[visit_exp `VEXTUNOP`_instr{ishape_1#31, ishape_2#31}(`%`_ishape{shape#1368, Jnn#274}(`%X%`_shape{lanetype#10925, dim#10925, i#67029}(`I16`_lanetype, `%`_dim{i#67036}(8))), `%`_ishape{shape#1380, Jnn#278}(`%X%`_shape{lanetype#10937, dim#10937, i#67041}(`I8`_lanetype, `%`_dim{i#67048}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#11138}(`U`_sx))] +[visit_exp ishape_1#31] +[visit_id ishape_1#31] +[visit_exp ishape_2#31] +[visit_id ishape_2#31] +[visit_exp (`%`_ishape{shape#1368, Jnn#274}(`%X%`_shape{lanetype#10925, dim#10925, i#67029}(`I16`_lanetype, `%`_dim{i#67036}(8))), `%`_ishape{shape#1380, Jnn#278}(`%X%`_shape{lanetype#10937, dim#10937, i#67041}(`I8`_lanetype, `%`_dim{i#67048}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#11138}(`U`_sx))] +[visit_exp `%`_ishape{shape#1368, Jnn#274}(`%X%`_shape{lanetype#10925, dim#10925, i#67029}(`I16`_lanetype, `%`_dim{i#67036}(8)))] +[visit_exp shape#1368] +[visit_id shape#1368] +[visit_exp Jnn#274] +[visit_id Jnn#274] +[visit_exp (`%X%`_shape{lanetype#10925, dim#10925, i#67029}(`I16`_lanetype, `%`_dim{i#67036}(8)))] +[visit_exp `%X%`_shape{lanetype#10925, dim#10925, i#67029}(`I16`_lanetype, `%`_dim{i#67036}(8))] +[visit_exp lanetype#10925] +[visit_id lanetype#10925] +[visit_exp dim#10925] +[visit_id dim#10925] +[visit_exp i#67029] +[visit_id i#67029] +[visit_exp (`I16`_lanetype, `%`_dim{i#67036}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#67036}(8)] +[visit_exp i#67036] +[visit_id i#67036] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#1380, Jnn#278}(`%X%`_shape{lanetype#10937, dim#10937, i#67041}(`I8`_lanetype, `%`_dim{i#67048}(16)))] +[visit_exp shape#1380] +[visit_id shape#1380] +[visit_exp Jnn#278] +[visit_id Jnn#278] +[visit_exp (`%X%`_shape{lanetype#10937, dim#10937, i#67041}(`I8`_lanetype, `%`_dim{i#67048}(16)))] +[visit_exp `%X%`_shape{lanetype#10937, dim#10937, i#67041}(`I8`_lanetype, `%`_dim{i#67048}(16))] +[visit_exp lanetype#10937] +[visit_id lanetype#10937] +[visit_exp dim#10937] +[visit_id dim#10937] +[visit_exp i#67041] +[visit_id i#67041] +[visit_exp (`I8`_lanetype, `%`_dim{i#67048}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#67048}(16)] +[visit_exp i#67048] +[visit_id i#67048] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#11138}(`U`_sx)] +[visit_exp sx#11138] +[visit_id sx#11138] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#67022}(125)] +[visit_exp i#67022] +[visit_id i#67022] +[visit_exp (125)] +[visit_exp 125] +ps' = +[check_dims] +[check_dims] dim#11160 i#67402 i#67409 i#67416 lanetype#11160 shape#1473 +dims \ = dim#11160, i#67402, i#67409, i#67416, lanetype#11160, shape#1473 +[visit_exp `VUNOP`_instr{shape#1473}(`%X%`_shape{lanetype#11160, dim#11160, i#67409}(`I16`_lanetype, `%`_dim{i#67416}(8)), `ABS`_vunop_)] +[visit_exp shape#1473] +[visit_id shape#1473] +[visit_exp (`%X%`_shape{lanetype#11160, dim#11160, i#67409}(`I16`_lanetype, `%`_dim{i#67416}(8)), `ABS`_vunop_)] +[visit_exp `%X%`_shape{lanetype#11160, dim#11160, i#67409}(`I16`_lanetype, `%`_dim{i#67416}(8))] +[visit_exp lanetype#11160] +[visit_id lanetype#11160] +[visit_exp dim#11160] +[visit_id dim#11160] +[visit_exp i#67409] +[visit_id i#67409] +[visit_exp (`I16`_lanetype, `%`_dim{i#67416}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#67416}(8)] +[visit_exp i#67416] +[visit_id i#67416] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#67402}(128)] +[visit_exp i#67402] +[visit_id i#67402] +[visit_exp (128)] +[visit_exp 128] +[check_dims] dim#11187 i#67484 i#67491 i#67498 lanetype#11187 shape#1475 +dims \ = dim#11187, i#67484, i#67491, i#67498, lanetype#11187, shape#1475 +[visit_exp `VUNOP`_instr{shape#1475}(`%X%`_shape{lanetype#11187, dim#11187, i#67491}(`I16`_lanetype, `%`_dim{i#67498}(8)), `NEG`_vunop_)] +[visit_exp shape#1475] +[visit_id shape#1475] +[visit_exp (`%X%`_shape{lanetype#11187, dim#11187, i#67491}(`I16`_lanetype, `%`_dim{i#67498}(8)), `NEG`_vunop_)] +[visit_exp `%X%`_shape{lanetype#11187, dim#11187, i#67491}(`I16`_lanetype, `%`_dim{i#67498}(8))] +[visit_exp lanetype#11187] +[visit_id lanetype#11187] +[visit_exp dim#11187] +[visit_id dim#11187] +[visit_exp i#67491] +[visit_id i#67491] +[visit_exp (`I16`_lanetype, `%`_dim{i#67498}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#67498}(8)] +[visit_exp i#67498] +[visit_id i#67498] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#67484}(129)] +[visit_exp i#67484] +[visit_id i#67484] +[visit_exp (129)] +[visit_exp 129] +ps' = +[check_dims] +[check_dims] dim#11214 i#67566 i#67573 i#67580 lanetype#11214 shape#1477 +dims \ = dim#11214, i#67566, i#67573, i#67580, lanetype#11214, shape#1477 +[visit_exp `VBINOP`_instr{shape#1477}(`%X%`_shape{lanetype#11214, dim#11214, i#67573}(`I16`_lanetype, `%`_dim{i#67580}(8)), `Q15MULR_SATS`_vbinop_)] +[visit_exp shape#1477] +[visit_id shape#1477] +[visit_exp (`%X%`_shape{lanetype#11214, dim#11214, i#67573}(`I16`_lanetype, `%`_dim{i#67580}(8)), `Q15MULR_SATS`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#11214, dim#11214, i#67573}(`I16`_lanetype, `%`_dim{i#67580}(8))] +[visit_exp lanetype#11214] +[visit_id lanetype#11214] +[visit_exp dim#11214] +[visit_id dim#11214] +[visit_exp i#67573] +[visit_id i#67573] +[visit_exp (`I16`_lanetype, `%`_dim{i#67580}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#67580}(8)] +[visit_exp i#67580] +[visit_id i#67580] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `Q15MULR_SATS`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#67566}(130)] +[visit_exp i#67566] +[visit_id i#67566] +[visit_exp (130)] +[visit_exp 130] +[check_dims] dim#11256 i#67693 i#67700 i#67707 lanetype#11256 shape#1479 +dims \ = dim#11256, i#67693, i#67700, i#67707, lanetype#11256, shape#1479 +[visit_exp `VBINOP`_instr{shape#1479}(`%X%`_shape{lanetype#11256, dim#11256, i#67700}(`I16`_lanetype, `%`_dim{i#67707}(8)), `ADD`_vbinop_)] +[visit_exp shape#1479] +[visit_id shape#1479] +[visit_exp (`%X%`_shape{lanetype#11256, dim#11256, i#67700}(`I16`_lanetype, `%`_dim{i#67707}(8)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#11256, dim#11256, i#67700}(`I16`_lanetype, `%`_dim{i#67707}(8))] +[visit_exp lanetype#11256] +[visit_id lanetype#11256] +[visit_exp dim#11256] +[visit_id dim#11256] +[visit_exp i#67700] +[visit_id i#67700] +[visit_exp (`I16`_lanetype, `%`_dim{i#67707}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#67707}(8)] +[visit_exp i#67707] +[visit_id i#67707] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#67693}(142)] +[visit_exp i#67693] +[visit_id i#67693] +[visit_exp (142)] +[visit_exp 142] +[check_dims] dim#11283 i#67775 i#67782 i#67789 lanetype#11283 shape#1481 sx#11442 +dims \ = dim#11283, i#67775, i#67782, i#67789, lanetype#11283, shape#1481, sx#11442 +[visit_exp `VBINOP`_instr{shape#1481}(`%X%`_shape{lanetype#11283, dim#11283, i#67782}(`I16`_lanetype, `%`_dim{i#67789}(8)), `ADD_SAT`_vbinop_{sx#11442}(`S`_sx))] +[visit_exp shape#1481] +[visit_id shape#1481] +[visit_exp (`%X%`_shape{lanetype#11283, dim#11283, i#67782}(`I16`_lanetype, `%`_dim{i#67789}(8)), `ADD_SAT`_vbinop_{sx#11442}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#11283, dim#11283, i#67782}(`I16`_lanetype, `%`_dim{i#67789}(8))] +[visit_exp lanetype#11283] +[visit_id lanetype#11283] +[visit_exp dim#11283] +[visit_id dim#11283] +[visit_exp i#67782] +[visit_id i#67782] +[visit_exp (`I16`_lanetype, `%`_dim{i#67789}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#67789}(8)] +[visit_exp i#67789] +[visit_id i#67789] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `ADD_SAT`_vbinop_{sx#11442}(`S`_sx)] +[visit_exp sx#11442] +[visit_id sx#11442] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#67775}(143)] +[visit_exp i#67775] +[visit_id i#67775] +[visit_exp (143)] +[visit_exp 143] +[check_dims] dim#11325 i#67902 i#67909 i#67916 lanetype#11325 shape#1483 sx#11566 +dims \ = dim#11325, i#67902, i#67909, i#67916, lanetype#11325, shape#1483, sx#11566 +[visit_exp `VBINOP`_instr{shape#1483}(`%X%`_shape{lanetype#11325, dim#11325, i#67909}(`I16`_lanetype, `%`_dim{i#67916}(8)), `ADD_SAT`_vbinop_{sx#11566}(`U`_sx))] +[visit_exp shape#1483] +[visit_id shape#1483] +[visit_exp (`%X%`_shape{lanetype#11325, dim#11325, i#67909}(`I16`_lanetype, `%`_dim{i#67916}(8)), `ADD_SAT`_vbinop_{sx#11566}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#11325, dim#11325, i#67909}(`I16`_lanetype, `%`_dim{i#67916}(8))] +[visit_exp lanetype#11325] +[visit_id lanetype#11325] +[visit_exp dim#11325] +[visit_id dim#11325] +[visit_exp i#67909] +[visit_id i#67909] +[visit_exp (`I16`_lanetype, `%`_dim{i#67916}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#67916}(8)] +[visit_exp i#67916] +[visit_id i#67916] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `ADD_SAT`_vbinop_{sx#11566}(`U`_sx)] +[visit_exp sx#11566] +[visit_id sx#11566] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#67902}(144)] +[visit_exp i#67902] +[visit_id i#67902] +[visit_exp (144)] +[visit_exp 144] +[check_dims] dim#11367 i#68029 i#68036 i#68043 lanetype#11367 shape#1485 +dims \ = dim#11367, i#68029, i#68036, i#68043, lanetype#11367, shape#1485 +[visit_exp `VBINOP`_instr{shape#1485}(`%X%`_shape{lanetype#11367, dim#11367, i#68036}(`I16`_lanetype, `%`_dim{i#68043}(8)), `SUB`_vbinop_)] +[visit_exp shape#1485] +[visit_id shape#1485] +[visit_exp (`%X%`_shape{lanetype#11367, dim#11367, i#68036}(`I16`_lanetype, `%`_dim{i#68043}(8)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#11367, dim#11367, i#68036}(`I16`_lanetype, `%`_dim{i#68043}(8))] +[visit_exp lanetype#11367] +[visit_id lanetype#11367] +[visit_exp dim#11367] +[visit_id dim#11367] +[visit_exp i#68036] +[visit_id i#68036] +[visit_exp (`I16`_lanetype, `%`_dim{i#68043}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#68043}(8)] +[visit_exp i#68043] +[visit_id i#68043] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#68029}(145)] +[visit_exp i#68029] +[visit_id i#68029] +[visit_exp (145)] +[visit_exp 145] +[check_dims] dim#11394 i#68111 i#68118 i#68125 lanetype#11394 shape#1487 sx#11750 +dims \ = dim#11394, i#68111, i#68118, i#68125, lanetype#11394, shape#1487, sx#11750 +[visit_exp `VBINOP`_instr{shape#1487}(`%X%`_shape{lanetype#11394, dim#11394, i#68118}(`I16`_lanetype, `%`_dim{i#68125}(8)), `SUB_SAT`_vbinop_{sx#11750}(`S`_sx))] +[visit_exp shape#1487] +[visit_id shape#1487] +[visit_exp (`%X%`_shape{lanetype#11394, dim#11394, i#68118}(`I16`_lanetype, `%`_dim{i#68125}(8)), `SUB_SAT`_vbinop_{sx#11750}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#11394, dim#11394, i#68118}(`I16`_lanetype, `%`_dim{i#68125}(8))] +[visit_exp lanetype#11394] +[visit_id lanetype#11394] +[visit_exp dim#11394] +[visit_id dim#11394] +[visit_exp i#68118] +[visit_id i#68118] +[visit_exp (`I16`_lanetype, `%`_dim{i#68125}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#68125}(8)] +[visit_exp i#68125] +[visit_id i#68125] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `SUB_SAT`_vbinop_{sx#11750}(`S`_sx)] +[visit_exp sx#11750] +[visit_id sx#11750] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#68111}(146)] +[visit_exp i#68111] +[visit_id i#68111] +[visit_exp (146)] +[visit_exp 146] +[check_dims] dim#11436 i#68238 i#68245 i#68252 lanetype#11436 shape#1489 sx#11874 +dims \ = dim#11436, i#68238, i#68245, i#68252, lanetype#11436, shape#1489, sx#11874 +[visit_exp `VBINOP`_instr{shape#1489}(`%X%`_shape{lanetype#11436, dim#11436, i#68245}(`I16`_lanetype, `%`_dim{i#68252}(8)), `SUB_SAT`_vbinop_{sx#11874}(`U`_sx))] +[visit_exp shape#1489] +[visit_id shape#1489] +[visit_exp (`%X%`_shape{lanetype#11436, dim#11436, i#68245}(`I16`_lanetype, `%`_dim{i#68252}(8)), `SUB_SAT`_vbinop_{sx#11874}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#11436, dim#11436, i#68245}(`I16`_lanetype, `%`_dim{i#68252}(8))] +[visit_exp lanetype#11436] +[visit_id lanetype#11436] +[visit_exp dim#11436] +[visit_id dim#11436] +[visit_exp i#68245] +[visit_id i#68245] +[visit_exp (`I16`_lanetype, `%`_dim{i#68252}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#68252}(8)] +[visit_exp i#68252] +[visit_id i#68252] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `SUB_SAT`_vbinop_{sx#11874}(`U`_sx)] +[visit_exp sx#11874] +[visit_id sx#11874] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#68238}(147)] +[visit_exp i#68238] +[visit_id i#68238] +[visit_exp (147)] +[visit_exp 147] +[check_dims] dim#11478 i#68365 i#68372 i#68379 lanetype#11478 shape#1491 +dims \ = dim#11478, i#68365, i#68372, i#68379, lanetype#11478, shape#1491 +[visit_exp `VBINOP`_instr{shape#1491}(`%X%`_shape{lanetype#11478, dim#11478, i#68372}(`I16`_lanetype, `%`_dim{i#68379}(8)), `MUL`_vbinop_)] +[visit_exp shape#1491] +[visit_id shape#1491] +[visit_exp (`%X%`_shape{lanetype#11478, dim#11478, i#68372}(`I16`_lanetype, `%`_dim{i#68379}(8)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#11478, dim#11478, i#68372}(`I16`_lanetype, `%`_dim{i#68379}(8))] +[visit_exp lanetype#11478] +[visit_id lanetype#11478] +[visit_exp dim#11478] +[visit_id dim#11478] +[visit_exp i#68372] +[visit_id i#68372] +[visit_exp (`I16`_lanetype, `%`_dim{i#68379}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#68379}(8)] +[visit_exp i#68379] +[visit_id i#68379] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `MUL`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#68365}(149)] +[visit_exp i#68365] +[visit_id i#68365] +[visit_exp (149)] +[visit_exp 149] +[check_dims] dim#11505 i#68447 i#68454 i#68461 lanetype#11505 shape#1493 sx#12058 +dims \ = dim#11505, i#68447, i#68454, i#68461, lanetype#11505, shape#1493, sx#12058 +[visit_exp `VBINOP`_instr{shape#1493}(`%X%`_shape{lanetype#11505, dim#11505, i#68454}(`I16`_lanetype, `%`_dim{i#68461}(8)), `MIN`_vbinop_{sx#12058}(`S`_sx))] +[visit_exp shape#1493] +[visit_id shape#1493] +[visit_exp (`%X%`_shape{lanetype#11505, dim#11505, i#68454}(`I16`_lanetype, `%`_dim{i#68461}(8)), `MIN`_vbinop_{sx#12058}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#11505, dim#11505, i#68454}(`I16`_lanetype, `%`_dim{i#68461}(8))] +[visit_exp lanetype#11505] +[visit_id lanetype#11505] +[visit_exp dim#11505] +[visit_id dim#11505] +[visit_exp i#68454] +[visit_id i#68454] +[visit_exp (`I16`_lanetype, `%`_dim{i#68461}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#68461}(8)] +[visit_exp i#68461] +[visit_id i#68461] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `MIN`_vbinop_{sx#12058}(`S`_sx)] +[visit_exp sx#12058] +[visit_id sx#12058] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#68447}(150)] +[visit_exp i#68447] +[visit_id i#68447] +[visit_exp (150)] +[visit_exp 150] +[check_dims] dim#11547 i#68574 i#68581 i#68588 lanetype#11547 shape#1495 sx#12182 +dims \ = dim#11547, i#68574, i#68581, i#68588, lanetype#11547, shape#1495, sx#12182 +[visit_exp `VBINOP`_instr{shape#1495}(`%X%`_shape{lanetype#11547, dim#11547, i#68581}(`I16`_lanetype, `%`_dim{i#68588}(8)), `MIN`_vbinop_{sx#12182}(`U`_sx))] +[visit_exp shape#1495] +[visit_id shape#1495] +[visit_exp (`%X%`_shape{lanetype#11547, dim#11547, i#68581}(`I16`_lanetype, `%`_dim{i#68588}(8)), `MIN`_vbinop_{sx#12182}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#11547, dim#11547, i#68581}(`I16`_lanetype, `%`_dim{i#68588}(8))] +[visit_exp lanetype#11547] +[visit_id lanetype#11547] +[visit_exp dim#11547] +[visit_id dim#11547] +[visit_exp i#68581] +[visit_id i#68581] +[visit_exp (`I16`_lanetype, `%`_dim{i#68588}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#68588}(8)] +[visit_exp i#68588] +[visit_id i#68588] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `MIN`_vbinop_{sx#12182}(`U`_sx)] +[visit_exp sx#12182] +[visit_id sx#12182] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#68574}(151)] +[visit_exp i#68574] +[visit_id i#68574] +[visit_exp (151)] +[visit_exp 151] +[check_dims] dim#11589 i#68701 i#68708 i#68715 lanetype#11589 shape#1497 sx#12306 +dims \ = dim#11589, i#68701, i#68708, i#68715, lanetype#11589, shape#1497, sx#12306 +[visit_exp `VBINOP`_instr{shape#1497}(`%X%`_shape{lanetype#11589, dim#11589, i#68708}(`I16`_lanetype, `%`_dim{i#68715}(8)), `MAX`_vbinop_{sx#12306}(`S`_sx))] +[visit_exp shape#1497] +[visit_id shape#1497] +[visit_exp (`%X%`_shape{lanetype#11589, dim#11589, i#68708}(`I16`_lanetype, `%`_dim{i#68715}(8)), `MAX`_vbinop_{sx#12306}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#11589, dim#11589, i#68708}(`I16`_lanetype, `%`_dim{i#68715}(8))] +[visit_exp lanetype#11589] +[visit_id lanetype#11589] +[visit_exp dim#11589] +[visit_id dim#11589] +[visit_exp i#68708] +[visit_id i#68708] +[visit_exp (`I16`_lanetype, `%`_dim{i#68715}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#68715}(8)] +[visit_exp i#68715] +[visit_id i#68715] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `MAX`_vbinop_{sx#12306}(`S`_sx)] +[visit_exp sx#12306] +[visit_id sx#12306] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#68701}(152)] +[visit_exp i#68701] +[visit_id i#68701] +[visit_exp (152)] +[visit_exp 152] +[check_dims] dim#11631 i#68828 i#68835 i#68842 lanetype#11631 shape#1499 sx#12430 +dims \ = dim#11631, i#68828, i#68835, i#68842, lanetype#11631, shape#1499, sx#12430 +[visit_exp `VBINOP`_instr{shape#1499}(`%X%`_shape{lanetype#11631, dim#11631, i#68835}(`I16`_lanetype, `%`_dim{i#68842}(8)), `MAX`_vbinop_{sx#12430}(`U`_sx))] +[visit_exp shape#1499] +[visit_id shape#1499] +[visit_exp (`%X%`_shape{lanetype#11631, dim#11631, i#68835}(`I16`_lanetype, `%`_dim{i#68842}(8)), `MAX`_vbinop_{sx#12430}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#11631, dim#11631, i#68835}(`I16`_lanetype, `%`_dim{i#68842}(8))] +[visit_exp lanetype#11631] +[visit_id lanetype#11631] +[visit_exp dim#11631] +[visit_id dim#11631] +[visit_exp i#68835] +[visit_id i#68835] +[visit_exp (`I16`_lanetype, `%`_dim{i#68842}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#68842}(8)] +[visit_exp i#68842] +[visit_id i#68842] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `MAX`_vbinop_{sx#12430}(`U`_sx)] +[visit_exp sx#12430] +[visit_id sx#12430] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#68828}(153)] +[visit_exp i#68828] +[visit_id i#68828] +[visit_exp (153)] +[visit_exp 153] +[check_dims] dim#11673 i#68955 i#68962 i#68969 lanetype#11673 shape#1501 +dims \ = dim#11673, i#68955, i#68962, i#68969, lanetype#11673, shape#1501 +[visit_exp `VBINOP`_instr{shape#1501}(`%X%`_shape{lanetype#11673, dim#11673, i#68962}(`I16`_lanetype, `%`_dim{i#68969}(8)), `AVGRU`_vbinop_)] +[visit_exp shape#1501] +[visit_id shape#1501] +[visit_exp (`%X%`_shape{lanetype#11673, dim#11673, i#68962}(`I16`_lanetype, `%`_dim{i#68969}(8)), `AVGRU`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#11673, dim#11673, i#68962}(`I16`_lanetype, `%`_dim{i#68969}(8))] +[visit_exp lanetype#11673] +[visit_id lanetype#11673] +[visit_exp dim#11673] +[visit_id dim#11673] +[visit_exp i#68962] +[visit_id i#68962] +[visit_exp (`I16`_lanetype, `%`_dim{i#68969}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#68969}(8)] +[visit_exp i#68969] +[visit_id i#68969] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `AVGRU`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#68955}(155)] +[visit_exp i#68955] +[visit_id i#68955] +[visit_exp (155)] +[visit_exp 155] +[check_dims] dim#11715 i#69082 i#69089 i#69096 lanetype#11715 shape#1503 +dims \ = dim#11715, i#69082, i#69089, i#69096, lanetype#11715, shape#1503 +[visit_exp `VBINOP`_instr{shape#1503}(`%X%`_shape{lanetype#11715, dim#11715, i#69089}(`I16`_lanetype, `%`_dim{i#69096}(8)), `RELAXED_Q15MULRS`_vbinop_)] +[visit_exp shape#1503] +[visit_id shape#1503] +[visit_exp (`%X%`_shape{lanetype#11715, dim#11715, i#69089}(`I16`_lanetype, `%`_dim{i#69096}(8)), `RELAXED_Q15MULRS`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#11715, dim#11715, i#69089}(`I16`_lanetype, `%`_dim{i#69096}(8))] +[visit_exp lanetype#11715] +[visit_id lanetype#11715] +[visit_exp dim#11715] +[visit_id dim#11715] +[visit_exp i#69089] +[visit_id i#69089] +[visit_exp (`I16`_lanetype, `%`_dim{i#69096}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#69096}(8)] +[visit_exp i#69096] +[visit_id i#69096] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `RELAXED_Q15MULRS`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#69082}(273)] +[visit_exp i#69082] +[visit_id i#69082] +[visit_exp (273)] +[visit_exp 273] +ps' = +[check_dims] +[check_dims] dim#11757 i#69209 i#69216 i#69223 lanetype#11757 shape#1505 +dims \ = dim#11757, i#69209, i#69216, i#69223, lanetype#11757, shape#1505 +[visit_exp `VTESTOP`_instr{shape#1505}(`%X%`_shape{lanetype#11757, dim#11757, i#69216}(`I16`_lanetype, `%`_dim{i#69223}(8)), `ALL_TRUE`_vtestop_)] +[visit_exp shape#1505] +[visit_id shape#1505] +[visit_exp (`%X%`_shape{lanetype#11757, dim#11757, i#69216}(`I16`_lanetype, `%`_dim{i#69223}(8)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape{lanetype#11757, dim#11757, i#69216}(`I16`_lanetype, `%`_dim{i#69223}(8))] +[visit_exp lanetype#11757] +[visit_id lanetype#11757] +[visit_exp dim#11757] +[visit_id dim#11757] +[visit_exp i#69216] +[visit_id i#69216] +[visit_exp (`I16`_lanetype, `%`_dim{i#69223}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#69223}(8)] +[visit_exp i#69223] +[visit_id i#69223] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `ALL_TRUE`_vtestop_] +[visit_exp ()] +[visit_exp `%`_u32{i#69209}(131)] +[visit_exp i#69209] +[visit_id i#69209] +[visit_exp (131)] +[visit_exp 131] +ps' = +[check_dims] +[check_dims] Jnn#282 dim#11784 i#69291 i#69298 i#69305 ishape#21 lanetype#11784 shape#1517 +dims \ = Jnn#282, dim#11784, i#69291, i#69298, i#69305, ishape#21, lanetype#11784, shape#1517 +[visit_exp `VBITMASK`_instr{ishape#21}(`%`_ishape{shape#1517, Jnn#282}(`%X%`_shape{lanetype#11784, dim#11784, i#69298}(`I16`_lanetype, `%`_dim{i#69305}(8))))] +[visit_exp ishape#21] +[visit_id ishape#21] +[visit_exp (`%`_ishape{shape#1517, Jnn#282}(`%X%`_shape{lanetype#11784, dim#11784, i#69298}(`I16`_lanetype, `%`_dim{i#69305}(8))))] +[visit_exp `%`_ishape{shape#1517, Jnn#282}(`%X%`_shape{lanetype#11784, dim#11784, i#69298}(`I16`_lanetype, `%`_dim{i#69305}(8)))] +[visit_exp shape#1517] +[visit_id shape#1517] +[visit_exp Jnn#282] +[visit_id Jnn#282] +[visit_exp (`%X%`_shape{lanetype#11784, dim#11784, i#69298}(`I16`_lanetype, `%`_dim{i#69305}(8)))] +[visit_exp `%X%`_shape{lanetype#11784, dim#11784, i#69298}(`I16`_lanetype, `%`_dim{i#69305}(8))] +[visit_exp lanetype#11784] +[visit_id lanetype#11784] +[visit_exp dim#11784] +[visit_id dim#11784] +[visit_exp i#69298] +[visit_id i#69298] +[visit_exp (`I16`_lanetype, `%`_dim{i#69305}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#69305}(8)] +[visit_exp i#69305] +[visit_id i#69305] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_u32{i#69291}(132)] +[visit_exp i#69291] +[visit_id i#69291] +[visit_exp (132)] +[visit_exp 132] +ps' = +[check_dims] +[check_dims] Jnn#283 Jnn#284 Jnn#285 Jnn#289 Jnn#293 dim#11796 dim#11808 i#69328 i#69335 i#69342 i#69347 i#69354 ishape_1#33 ishape_2#33 lanetype#11796 lanetype#11808 shape#1519 shape#1520 shape#1521 shape#1532 shape#1544 sx#12672 +dims \ = Jnn#283, Jnn#284, Jnn#285, Jnn#289, Jnn#293, dim#11796, dim#11808, i#69328, i#69335, i#69342, i#69347, i#69354, ishape_1#33, ishape_2#33, lanetype#11796, lanetype#11808, shape#1519, shape#1520, shape#1521, shape#1532, shape#1544, sx#12672 +[visit_exp `VNARROW`_instr{ishape_1#33, ishape_2#33, sx#12672, shape#1519, Jnn#283, shape#1520, Jnn#284, shape#1521, Jnn#285}(`%`_ishape{shape#1532, Jnn#289}(`%X%`_shape{lanetype#11796, dim#11796, i#69335}(`I16`_lanetype, `%`_dim{i#69342}(8))), `%`_ishape{shape#1544, Jnn#293}(`%X%`_shape{lanetype#11808, dim#11808, i#69347}(`I32`_lanetype, `%`_dim{i#69354}(4))), `S`_sx)] +[visit_exp ishape_1#33] +[visit_id ishape_1#33] +[visit_exp ishape_2#33] +[visit_id ishape_2#33] +[visit_exp sx#12672] +[visit_id sx#12672] +[visit_exp shape#1519] +[visit_id shape#1519] +[visit_exp Jnn#283] +[visit_id Jnn#283] +[visit_exp shape#1520] +[visit_id shape#1520] +[visit_exp Jnn#284] +[visit_id Jnn#284] +[visit_exp shape#1521] +[visit_id shape#1521] +[visit_exp Jnn#285] +[visit_id Jnn#285] +[visit_exp (`%`_ishape{shape#1532, Jnn#289}(`%X%`_shape{lanetype#11796, dim#11796, i#69335}(`I16`_lanetype, `%`_dim{i#69342}(8))), `%`_ishape{shape#1544, Jnn#293}(`%X%`_shape{lanetype#11808, dim#11808, i#69347}(`I32`_lanetype, `%`_dim{i#69354}(4))), `S`_sx)] +[visit_exp `%`_ishape{shape#1532, Jnn#289}(`%X%`_shape{lanetype#11796, dim#11796, i#69335}(`I16`_lanetype, `%`_dim{i#69342}(8)))] +[visit_exp shape#1532] +[visit_id shape#1532] +[visit_exp Jnn#289] +[visit_id Jnn#289] +[visit_exp (`%X%`_shape{lanetype#11796, dim#11796, i#69335}(`I16`_lanetype, `%`_dim{i#69342}(8)))] +[visit_exp `%X%`_shape{lanetype#11796, dim#11796, i#69335}(`I16`_lanetype, `%`_dim{i#69342}(8))] +[visit_exp lanetype#11796] +[visit_id lanetype#11796] +[visit_exp dim#11796] +[visit_id dim#11796] +[visit_exp i#69335] +[visit_id i#69335] +[visit_exp (`I16`_lanetype, `%`_dim{i#69342}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#69342}(8)] +[visit_exp i#69342] +[visit_id i#69342] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#1544, Jnn#293}(`%X%`_shape{lanetype#11808, dim#11808, i#69347}(`I32`_lanetype, `%`_dim{i#69354}(4)))] +[visit_exp shape#1544] +[visit_id shape#1544] +[visit_exp Jnn#293] +[visit_id Jnn#293] +[visit_exp (`%X%`_shape{lanetype#11808, dim#11808, i#69347}(`I32`_lanetype, `%`_dim{i#69354}(4)))] +[visit_exp `%X%`_shape{lanetype#11808, dim#11808, i#69347}(`I32`_lanetype, `%`_dim{i#69354}(4))] +[visit_exp lanetype#11808] +[visit_id lanetype#11808] +[visit_exp dim#11808] +[visit_id dim#11808] +[visit_exp i#69347] +[visit_id i#69347] +[visit_exp (`I32`_lanetype, `%`_dim{i#69354}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#69354}(4)] +[visit_exp i#69354] +[visit_id i#69354] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#69328}(133)] +[visit_exp i#69328] +[visit_id i#69328] +[visit_exp (133)] +[visit_exp 133] +[check_dims] Jnn#294 Jnn#295 Jnn#296 Jnn#300 Jnn#304 dim#11820 dim#11832 i#69377 i#69384 i#69391 i#69396 i#69403 ishape_1#35 ishape_2#35 lanetype#11820 lanetype#11832 shape#1546 shape#1547 shape#1548 shape#1559 shape#1571 sx#12674 +dims \ = Jnn#294, Jnn#295, Jnn#296, Jnn#300, Jnn#304, dim#11820, dim#11832, i#69377, i#69384, i#69391, i#69396, i#69403, ishape_1#35, ishape_2#35, lanetype#11820, lanetype#11832, shape#1546, shape#1547, shape#1548, shape#1559, shape#1571, sx#12674 +[visit_exp `VNARROW`_instr{ishape_1#35, ishape_2#35, sx#12674, shape#1546, Jnn#294, shape#1547, Jnn#295, shape#1548, Jnn#296}(`%`_ishape{shape#1559, Jnn#300}(`%X%`_shape{lanetype#11820, dim#11820, i#69384}(`I16`_lanetype, `%`_dim{i#69391}(8))), `%`_ishape{shape#1571, Jnn#304}(`%X%`_shape{lanetype#11832, dim#11832, i#69396}(`I32`_lanetype, `%`_dim{i#69403}(4))), `U`_sx)] +[visit_exp ishape_1#35] +[visit_id ishape_1#35] +[visit_exp ishape_2#35] +[visit_id ishape_2#35] +[visit_exp sx#12674] +[visit_id sx#12674] +[visit_exp shape#1546] +[visit_id shape#1546] +[visit_exp Jnn#294] +[visit_id Jnn#294] +[visit_exp shape#1547] +[visit_id shape#1547] +[visit_exp Jnn#295] +[visit_id Jnn#295] +[visit_exp shape#1548] +[visit_id shape#1548] +[visit_exp Jnn#296] +[visit_id Jnn#296] +[visit_exp (`%`_ishape{shape#1559, Jnn#300}(`%X%`_shape{lanetype#11820, dim#11820, i#69384}(`I16`_lanetype, `%`_dim{i#69391}(8))), `%`_ishape{shape#1571, Jnn#304}(`%X%`_shape{lanetype#11832, dim#11832, i#69396}(`I32`_lanetype, `%`_dim{i#69403}(4))), `U`_sx)] +[visit_exp `%`_ishape{shape#1559, Jnn#300}(`%X%`_shape{lanetype#11820, dim#11820, i#69384}(`I16`_lanetype, `%`_dim{i#69391}(8)))] +[visit_exp shape#1559] +[visit_id shape#1559] +[visit_exp Jnn#300] +[visit_id Jnn#300] +[visit_exp (`%X%`_shape{lanetype#11820, dim#11820, i#69384}(`I16`_lanetype, `%`_dim{i#69391}(8)))] +[visit_exp `%X%`_shape{lanetype#11820, dim#11820, i#69384}(`I16`_lanetype, `%`_dim{i#69391}(8))] +[visit_exp lanetype#11820] +[visit_id lanetype#11820] +[visit_exp dim#11820] +[visit_id dim#11820] +[visit_exp i#69384] +[visit_id i#69384] +[visit_exp (`I16`_lanetype, `%`_dim{i#69391}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#69391}(8)] +[visit_exp i#69391] +[visit_id i#69391] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#1571, Jnn#304}(`%X%`_shape{lanetype#11832, dim#11832, i#69396}(`I32`_lanetype, `%`_dim{i#69403}(4)))] +[visit_exp shape#1571] +[visit_id shape#1571] +[visit_exp Jnn#304] +[visit_id Jnn#304] +[visit_exp (`%X%`_shape{lanetype#11832, dim#11832, i#69396}(`I32`_lanetype, `%`_dim{i#69403}(4)))] +[visit_exp `%X%`_shape{lanetype#11832, dim#11832, i#69396}(`I32`_lanetype, `%`_dim{i#69403}(4))] +[visit_exp lanetype#11832] +[visit_id lanetype#11832] +[visit_exp dim#11832] +[visit_id dim#11832] +[visit_exp i#69396] +[visit_id i#69396] +[visit_exp (`I32`_lanetype, `%`_dim{i#69403}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#69403}(4)] +[visit_exp i#69403] +[visit_id i#69403] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#69377}(134)] +[visit_exp i#69377] +[visit_id i#69377] +[visit_exp (134)] +[visit_exp 134] +ps' = +[check_dims] +[check_dims] dim#11844 dim#11856 half#56 i#69426 i#69433 i#69440 i#69445 i#69452 lanetype#11844 lanetype#11856 shape_1#7 shape_2#7 sx#12708 +dims \ = dim#11844, dim#11856, half#56, i#69426, i#69433, i#69440, i#69445, i#69452, lanetype#11844, lanetype#11856, shape_1#7, shape_2#7, sx#12708 +[visit_exp `VCVTOP`_instr{shape_1#7, shape_2#7}(`%X%`_shape{lanetype#11844, dim#11844, i#69433}(`I16`_lanetype, `%`_dim{i#69440}(8)), `%X%`_shape{lanetype#11856, dim#11856, i#69445}(`I8`_lanetype, `%`_dim{i#69452}(16)), `EXTEND`_vcvtop__{half#56, sx#12708}(`LOW`_half, `S`_sx))] +[visit_exp shape_1#7] +[visit_id shape_1#7] +[visit_exp shape_2#7] +[visit_id shape_2#7] +[visit_exp (`%X%`_shape{lanetype#11844, dim#11844, i#69433}(`I16`_lanetype, `%`_dim{i#69440}(8)), `%X%`_shape{lanetype#11856, dim#11856, i#69445}(`I8`_lanetype, `%`_dim{i#69452}(16)), `EXTEND`_vcvtop__{half#56, sx#12708}(`LOW`_half, `S`_sx))] +[visit_exp `%X%`_shape{lanetype#11844, dim#11844, i#69433}(`I16`_lanetype, `%`_dim{i#69440}(8))] +[visit_exp lanetype#11844] +[visit_id lanetype#11844] +[visit_exp dim#11844] +[visit_id dim#11844] +[visit_exp i#69433] +[visit_id i#69433] +[visit_exp (`I16`_lanetype, `%`_dim{i#69440}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#69440}(8)] +[visit_exp i#69440] +[visit_id i#69440] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%X%`_shape{lanetype#11856, dim#11856, i#69445}(`I8`_lanetype, `%`_dim{i#69452}(16))] +[visit_exp lanetype#11856] +[visit_id lanetype#11856] +[visit_exp dim#11856] +[visit_id dim#11856] +[visit_exp i#69445] +[visit_id i#69445] +[visit_exp (`I8`_lanetype, `%`_dim{i#69452}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#69452}(16)] +[visit_exp i#69452] +[visit_id i#69452] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTEND`_vcvtop__{half#56, sx#12708}(`LOW`_half, `S`_sx)] +[visit_exp half#56] +[visit_id half#56] +[visit_exp sx#12708] +[visit_id sx#12708] +[visit_exp (`LOW`_half, `S`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#69426}(135)] +[visit_exp i#69426] +[visit_id i#69426] +[visit_exp (135)] +[visit_exp 135] +[check_dims] dim#11959 dim#11971 half#90 i#69686 i#69693 i#69700 i#69705 i#69712 lanetype#11959 lanetype#11971 shape_1#9 shape_2#9 sx#12742 +dims \ = dim#11959, dim#11971, half#90, i#69686, i#69693, i#69700, i#69705, i#69712, lanetype#11959, lanetype#11971, shape_1#9, shape_2#9, sx#12742 +[visit_exp `VCVTOP`_instr{shape_1#9, shape_2#9}(`%X%`_shape{lanetype#11959, dim#11959, i#69693}(`I16`_lanetype, `%`_dim{i#69700}(8)), `%X%`_shape{lanetype#11971, dim#11971, i#69705}(`I8`_lanetype, `%`_dim{i#69712}(16)), `EXTEND`_vcvtop__{half#90, sx#12742}(`HIGH`_half, `S`_sx))] +[visit_exp shape_1#9] +[visit_id shape_1#9] +[visit_exp shape_2#9] +[visit_id shape_2#9] +[visit_exp (`%X%`_shape{lanetype#11959, dim#11959, i#69693}(`I16`_lanetype, `%`_dim{i#69700}(8)), `%X%`_shape{lanetype#11971, dim#11971, i#69705}(`I8`_lanetype, `%`_dim{i#69712}(16)), `EXTEND`_vcvtop__{half#90, sx#12742}(`HIGH`_half, `S`_sx))] +[visit_exp `%X%`_shape{lanetype#11959, dim#11959, i#69693}(`I16`_lanetype, `%`_dim{i#69700}(8))] +[visit_exp lanetype#11959] +[visit_id lanetype#11959] +[visit_exp dim#11959] +[visit_id dim#11959] +[visit_exp i#69693] +[visit_id i#69693] +[visit_exp (`I16`_lanetype, `%`_dim{i#69700}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#69700}(8)] +[visit_exp i#69700] +[visit_id i#69700] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%X%`_shape{lanetype#11971, dim#11971, i#69705}(`I8`_lanetype, `%`_dim{i#69712}(16))] +[visit_exp lanetype#11971] +[visit_id lanetype#11971] +[visit_exp dim#11971] +[visit_id dim#11971] +[visit_exp i#69705] +[visit_id i#69705] +[visit_exp (`I8`_lanetype, `%`_dim{i#69712}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#69712}(16)] +[visit_exp i#69712] +[visit_id i#69712] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTEND`_vcvtop__{half#90, sx#12742}(`HIGH`_half, `S`_sx)] +[visit_exp half#90] +[visit_id half#90] +[visit_exp sx#12742] +[visit_id sx#12742] +[visit_exp (`HIGH`_half, `S`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#69686}(136)] +[visit_exp i#69686] +[visit_id i#69686] +[visit_exp (136)] +[visit_exp 136] +[check_dims] dim#12074 dim#12086 half#124 i#69946 i#69953 i#69960 i#69965 i#69972 lanetype#12074 lanetype#12086 shape_1#11 shape_2#11 sx#12776 +dims \ = dim#12074, dim#12086, half#124, i#69946, i#69953, i#69960, i#69965, i#69972, lanetype#12074, lanetype#12086, shape_1#11, shape_2#11, sx#12776 +[visit_exp `VCVTOP`_instr{shape_1#11, shape_2#11}(`%X%`_shape{lanetype#12074, dim#12074, i#69953}(`I16`_lanetype, `%`_dim{i#69960}(8)), `%X%`_shape{lanetype#12086, dim#12086, i#69965}(`I8`_lanetype, `%`_dim{i#69972}(16)), `EXTEND`_vcvtop__{half#124, sx#12776}(`LOW`_half, `U`_sx))] +[visit_exp shape_1#11] +[visit_id shape_1#11] +[visit_exp shape_2#11] +[visit_id shape_2#11] +[visit_exp (`%X%`_shape{lanetype#12074, dim#12074, i#69953}(`I16`_lanetype, `%`_dim{i#69960}(8)), `%X%`_shape{lanetype#12086, dim#12086, i#69965}(`I8`_lanetype, `%`_dim{i#69972}(16)), `EXTEND`_vcvtop__{half#124, sx#12776}(`LOW`_half, `U`_sx))] +[visit_exp `%X%`_shape{lanetype#12074, dim#12074, i#69953}(`I16`_lanetype, `%`_dim{i#69960}(8))] +[visit_exp lanetype#12074] +[visit_id lanetype#12074] +[visit_exp dim#12074] +[visit_id dim#12074] +[visit_exp i#69953] +[visit_id i#69953] +[visit_exp (`I16`_lanetype, `%`_dim{i#69960}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#69960}(8)] +[visit_exp i#69960] +[visit_id i#69960] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%X%`_shape{lanetype#12086, dim#12086, i#69965}(`I8`_lanetype, `%`_dim{i#69972}(16))] +[visit_exp lanetype#12086] +[visit_id lanetype#12086] +[visit_exp dim#12086] +[visit_id dim#12086] +[visit_exp i#69965] +[visit_id i#69965] +[visit_exp (`I8`_lanetype, `%`_dim{i#69972}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#69972}(16)] +[visit_exp i#69972] +[visit_id i#69972] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTEND`_vcvtop__{half#124, sx#12776}(`LOW`_half, `U`_sx)] +[visit_exp half#124] +[visit_id half#124] +[visit_exp sx#12776] +[visit_id sx#12776] +[visit_exp (`LOW`_half, `U`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#69946}(137)] +[visit_exp i#69946] +[visit_id i#69946] +[visit_exp (137)] +[visit_exp 137] +[check_dims] dim#12189 dim#12201 half#158 i#70206 i#70213 i#70220 i#70225 i#70232 lanetype#12189 lanetype#12201 shape_1#13 shape_2#13 sx#12810 +dims \ = dim#12189, dim#12201, half#158, i#70206, i#70213, i#70220, i#70225, i#70232, lanetype#12189, lanetype#12201, shape_1#13, shape_2#13, sx#12810 +[visit_exp `VCVTOP`_instr{shape_1#13, shape_2#13}(`%X%`_shape{lanetype#12189, dim#12189, i#70213}(`I16`_lanetype, `%`_dim{i#70220}(8)), `%X%`_shape{lanetype#12201, dim#12201, i#70225}(`I8`_lanetype, `%`_dim{i#70232}(16)), `EXTEND`_vcvtop__{half#158, sx#12810}(`HIGH`_half, `U`_sx))] +[visit_exp shape_1#13] +[visit_id shape_1#13] +[visit_exp shape_2#13] +[visit_id shape_2#13] +[visit_exp (`%X%`_shape{lanetype#12189, dim#12189, i#70213}(`I16`_lanetype, `%`_dim{i#70220}(8)), `%X%`_shape{lanetype#12201, dim#12201, i#70225}(`I8`_lanetype, `%`_dim{i#70232}(16)), `EXTEND`_vcvtop__{half#158, sx#12810}(`HIGH`_half, `U`_sx))] +[visit_exp `%X%`_shape{lanetype#12189, dim#12189, i#70213}(`I16`_lanetype, `%`_dim{i#70220}(8))] +[visit_exp lanetype#12189] +[visit_id lanetype#12189] +[visit_exp dim#12189] +[visit_id dim#12189] +[visit_exp i#70213] +[visit_id i#70213] +[visit_exp (`I16`_lanetype, `%`_dim{i#70220}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#70220}(8)] +[visit_exp i#70220] +[visit_id i#70220] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%X%`_shape{lanetype#12201, dim#12201, i#70225}(`I8`_lanetype, `%`_dim{i#70232}(16))] +[visit_exp lanetype#12201] +[visit_id lanetype#12201] +[visit_exp dim#12201] +[visit_id dim#12201] +[visit_exp i#70225] +[visit_id i#70225] +[visit_exp (`I8`_lanetype, `%`_dim{i#70232}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#70232}(16)] +[visit_exp i#70232] +[visit_id i#70232] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTEND`_vcvtop__{half#158, sx#12810}(`HIGH`_half, `U`_sx)] +[visit_exp half#158] +[visit_id half#158] +[visit_exp sx#12810] +[visit_id sx#12810] +[visit_exp (`HIGH`_half, `U`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#70206}(138)] +[visit_exp i#70206] +[visit_id i#70206] +[visit_exp (138)] +[visit_exp 138] +ps' = +[check_dims] +[check_dims] Jnn#308 dim#12304 i#70466 i#70473 i#70480 ishape#23 lanetype#12304 shape#1583 +dims \ = Jnn#308, dim#12304, i#70466, i#70473, i#70480, ishape#23, lanetype#12304, shape#1583 +[visit_exp `VSHIFTOP`_instr{ishape#23}(`%`_ishape{shape#1583, Jnn#308}(`%X%`_shape{lanetype#12304, dim#12304, i#70473}(`I16`_lanetype, `%`_dim{i#70480}(8))), `SHL`_vshiftop_)] +[visit_exp ishape#23] +[visit_id ishape#23] +[visit_exp (`%`_ishape{shape#1583, Jnn#308}(`%X%`_shape{lanetype#12304, dim#12304, i#70473}(`I16`_lanetype, `%`_dim{i#70480}(8))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape{shape#1583, Jnn#308}(`%X%`_shape{lanetype#12304, dim#12304, i#70473}(`I16`_lanetype, `%`_dim{i#70480}(8)))] +[visit_exp shape#1583] +[visit_id shape#1583] +[visit_exp Jnn#308] +[visit_id Jnn#308] +[visit_exp (`%X%`_shape{lanetype#12304, dim#12304, i#70473}(`I16`_lanetype, `%`_dim{i#70480}(8)))] +[visit_exp `%X%`_shape{lanetype#12304, dim#12304, i#70473}(`I16`_lanetype, `%`_dim{i#70480}(8))] +[visit_exp lanetype#12304] +[visit_id lanetype#12304] +[visit_exp dim#12304] +[visit_id dim#12304] +[visit_exp i#70473] +[visit_id i#70473] +[visit_exp (`I16`_lanetype, `%`_dim{i#70480}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#70480}(8)] +[visit_exp i#70480] +[visit_id i#70480] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `SHL`_vshiftop_] +[visit_exp ()] +[visit_exp `%`_u32{i#70466}(139)] +[visit_exp i#70466] +[visit_id i#70466] +[visit_exp (139)] +[visit_exp 139] +[check_dims] Jnn#312 dim#12361 i#70578 i#70585 i#70592 ishape#25 lanetype#12361 shape#1610 sx#12859 +dims \ = Jnn#312, dim#12361, i#70578, i#70585, i#70592, ishape#25, lanetype#12361, shape#1610, sx#12859 +[visit_exp `VSHIFTOP`_instr{ishape#25}(`%`_ishape{shape#1610, Jnn#312}(`%X%`_shape{lanetype#12361, dim#12361, i#70585}(`I16`_lanetype, `%`_dim{i#70592}(8))), `SHR`_vshiftop_{sx#12859}(`S`_sx))] +[visit_exp ishape#25] +[visit_id ishape#25] +[visit_exp (`%`_ishape{shape#1610, Jnn#312}(`%X%`_shape{lanetype#12361, dim#12361, i#70585}(`I16`_lanetype, `%`_dim{i#70592}(8))), `SHR`_vshiftop_{sx#12859}(`S`_sx))] +[visit_exp `%`_ishape{shape#1610, Jnn#312}(`%X%`_shape{lanetype#12361, dim#12361, i#70585}(`I16`_lanetype, `%`_dim{i#70592}(8)))] +[visit_exp shape#1610] +[visit_id shape#1610] +[visit_exp Jnn#312] +[visit_id Jnn#312] +[visit_exp (`%X%`_shape{lanetype#12361, dim#12361, i#70585}(`I16`_lanetype, `%`_dim{i#70592}(8)))] +[visit_exp `%X%`_shape{lanetype#12361, dim#12361, i#70585}(`I16`_lanetype, `%`_dim{i#70592}(8))] +[visit_exp lanetype#12361] +[visit_id lanetype#12361] +[visit_exp dim#12361] +[visit_id dim#12361] +[visit_exp i#70585] +[visit_id i#70585] +[visit_exp (`I16`_lanetype, `%`_dim{i#70592}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#70592}(8)] +[visit_exp i#70592] +[visit_id i#70592] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `SHR`_vshiftop_{sx#12859}(`S`_sx)] +[visit_exp sx#12859] +[visit_id sx#12859] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#70578}(140)] +[visit_exp i#70578] +[visit_id i#70578] +[visit_exp (140)] +[visit_exp 140] +[check_dims] Jnn#316 dim#12463 i#70765 i#70772 i#70779 ishape#27 lanetype#12463 shape#1652 sx#12893 +dims \ = Jnn#316, dim#12463, i#70765, i#70772, i#70779, ishape#27, lanetype#12463, shape#1652, sx#12893 +[visit_exp `VSHIFTOP`_instr{ishape#27}(`%`_ishape{shape#1652, Jnn#316}(`%X%`_shape{lanetype#12463, dim#12463, i#70772}(`I16`_lanetype, `%`_dim{i#70779}(8))), `SHR`_vshiftop_{sx#12893}(`U`_sx))] +[visit_exp ishape#27] +[visit_id ishape#27] +[visit_exp (`%`_ishape{shape#1652, Jnn#316}(`%X%`_shape{lanetype#12463, dim#12463, i#70772}(`I16`_lanetype, `%`_dim{i#70779}(8))), `SHR`_vshiftop_{sx#12893}(`U`_sx))] +[visit_exp `%`_ishape{shape#1652, Jnn#316}(`%X%`_shape{lanetype#12463, dim#12463, i#70772}(`I16`_lanetype, `%`_dim{i#70779}(8)))] +[visit_exp shape#1652] +[visit_id shape#1652] +[visit_exp Jnn#316] +[visit_id Jnn#316] +[visit_exp (`%X%`_shape{lanetype#12463, dim#12463, i#70772}(`I16`_lanetype, `%`_dim{i#70779}(8)))] +[visit_exp `%X%`_shape{lanetype#12463, dim#12463, i#70772}(`I16`_lanetype, `%`_dim{i#70779}(8))] +[visit_exp lanetype#12463] +[visit_id lanetype#12463] +[visit_exp dim#12463] +[visit_id dim#12463] +[visit_exp i#70772] +[visit_id i#70772] +[visit_exp (`I16`_lanetype, `%`_dim{i#70779}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#70779}(8)] +[visit_exp i#70779] +[visit_id i#70779] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `SHR`_vshiftop_{sx#12893}(`U`_sx)] +[visit_exp sx#12893] +[visit_id sx#12893] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#70765}(141)] +[visit_exp i#70765] +[visit_id i#70765] +[visit_exp (141)] +[visit_exp 141] +ps' = +[check_dims] +[check_dims] Jnn#320 Jnn#324 dim#12565 dim#12577 half#192 i#70952 i#70959 i#70966 i#70971 i#70978 ishape_1#37 ishape_2#37 lanetype#12565 lanetype#12577 shape#1694 shape#1706 sx#12927 +dims \ = Jnn#320, Jnn#324, dim#12565, dim#12577, half#192, i#70952, i#70959, i#70966, i#70971, i#70978, ishape_1#37, ishape_2#37, lanetype#12565, lanetype#12577, shape#1694, shape#1706, sx#12927 +[visit_exp `VEXTBINOP`_instr{ishape_1#37, ishape_2#37}(`%`_ishape{shape#1694, Jnn#320}(`%X%`_shape{lanetype#12565, dim#12565, i#70959}(`I16`_lanetype, `%`_dim{i#70966}(8))), `%`_ishape{shape#1706, Jnn#324}(`%X%`_shape{lanetype#12577, dim#12577, i#70971}(`I8`_lanetype, `%`_dim{i#70978}(16))), `EXTMUL`_vextbinop__{half#192, sx#12927}(`LOW`_half, `S`_sx))] +[visit_exp ishape_1#37] +[visit_id ishape_1#37] +[visit_exp ishape_2#37] +[visit_id ishape_2#37] +[visit_exp (`%`_ishape{shape#1694, Jnn#320}(`%X%`_shape{lanetype#12565, dim#12565, i#70959}(`I16`_lanetype, `%`_dim{i#70966}(8))), `%`_ishape{shape#1706, Jnn#324}(`%X%`_shape{lanetype#12577, dim#12577, i#70971}(`I8`_lanetype, `%`_dim{i#70978}(16))), `EXTMUL`_vextbinop__{half#192, sx#12927}(`LOW`_half, `S`_sx))] +[visit_exp `%`_ishape{shape#1694, Jnn#320}(`%X%`_shape{lanetype#12565, dim#12565, i#70959}(`I16`_lanetype, `%`_dim{i#70966}(8)))] +[visit_exp shape#1694] +[visit_id shape#1694] +[visit_exp Jnn#320] +[visit_id Jnn#320] +[visit_exp (`%X%`_shape{lanetype#12565, dim#12565, i#70959}(`I16`_lanetype, `%`_dim{i#70966}(8)))] +[visit_exp `%X%`_shape{lanetype#12565, dim#12565, i#70959}(`I16`_lanetype, `%`_dim{i#70966}(8))] +[visit_exp lanetype#12565] +[visit_id lanetype#12565] +[visit_exp dim#12565] +[visit_id dim#12565] +[visit_exp i#70959] +[visit_id i#70959] +[visit_exp (`I16`_lanetype, `%`_dim{i#70966}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#70966}(8)] +[visit_exp i#70966] +[visit_id i#70966] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#1706, Jnn#324}(`%X%`_shape{lanetype#12577, dim#12577, i#70971}(`I8`_lanetype, `%`_dim{i#70978}(16)))] +[visit_exp shape#1706] +[visit_id shape#1706] +[visit_exp Jnn#324] +[visit_id Jnn#324] +[visit_exp (`%X%`_shape{lanetype#12577, dim#12577, i#70971}(`I8`_lanetype, `%`_dim{i#70978}(16)))] +[visit_exp `%X%`_shape{lanetype#12577, dim#12577, i#70971}(`I8`_lanetype, `%`_dim{i#70978}(16))] +[visit_exp lanetype#12577] +[visit_id lanetype#12577] +[visit_exp dim#12577] +[visit_id dim#12577] +[visit_exp i#70971] +[visit_id i#70971] +[visit_exp (`I8`_lanetype, `%`_dim{i#70978}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#70978}(16)] +[visit_exp i#70978] +[visit_id i#70978] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTMUL`_vextbinop__{half#192, sx#12927}(`LOW`_half, `S`_sx)] +[visit_exp half#192] +[visit_id half#192] +[visit_exp sx#12927] +[visit_id sx#12927] +[visit_exp (`LOW`_half, `S`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#70952}(156)] +[visit_exp i#70952] +[visit_id i#70952] +[visit_exp (156)] +[visit_exp 156] +[check_dims] Jnn#328 Jnn#332 dim#12800 dim#12812 half#226 i#71332 i#71339 i#71346 i#71351 i#71358 ishape_1#39 ishape_2#39 lanetype#12800 lanetype#12812 shape#1809 shape#1821 sx#12961 +dims \ = Jnn#328, Jnn#332, dim#12800, dim#12812, half#226, i#71332, i#71339, i#71346, i#71351, i#71358, ishape_1#39, ishape_2#39, lanetype#12800, lanetype#12812, shape#1809, shape#1821, sx#12961 +[visit_exp `VEXTBINOP`_instr{ishape_1#39, ishape_2#39}(`%`_ishape{shape#1809, Jnn#328}(`%X%`_shape{lanetype#12800, dim#12800, i#71339}(`I16`_lanetype, `%`_dim{i#71346}(8))), `%`_ishape{shape#1821, Jnn#332}(`%X%`_shape{lanetype#12812, dim#12812, i#71351}(`I8`_lanetype, `%`_dim{i#71358}(16))), `EXTMUL`_vextbinop__{half#226, sx#12961}(`HIGH`_half, `S`_sx))] +[visit_exp ishape_1#39] +[visit_id ishape_1#39] +[visit_exp ishape_2#39] +[visit_id ishape_2#39] +[visit_exp (`%`_ishape{shape#1809, Jnn#328}(`%X%`_shape{lanetype#12800, dim#12800, i#71339}(`I16`_lanetype, `%`_dim{i#71346}(8))), `%`_ishape{shape#1821, Jnn#332}(`%X%`_shape{lanetype#12812, dim#12812, i#71351}(`I8`_lanetype, `%`_dim{i#71358}(16))), `EXTMUL`_vextbinop__{half#226, sx#12961}(`HIGH`_half, `S`_sx))] +[visit_exp `%`_ishape{shape#1809, Jnn#328}(`%X%`_shape{lanetype#12800, dim#12800, i#71339}(`I16`_lanetype, `%`_dim{i#71346}(8)))] +[visit_exp shape#1809] +[visit_id shape#1809] +[visit_exp Jnn#328] +[visit_id Jnn#328] +[visit_exp (`%X%`_shape{lanetype#12800, dim#12800, i#71339}(`I16`_lanetype, `%`_dim{i#71346}(8)))] +[visit_exp `%X%`_shape{lanetype#12800, dim#12800, i#71339}(`I16`_lanetype, `%`_dim{i#71346}(8))] +[visit_exp lanetype#12800] +[visit_id lanetype#12800] +[visit_exp dim#12800] +[visit_id dim#12800] +[visit_exp i#71339] +[visit_id i#71339] +[visit_exp (`I16`_lanetype, `%`_dim{i#71346}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#71346}(8)] +[visit_exp i#71346] +[visit_id i#71346] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#1821, Jnn#332}(`%X%`_shape{lanetype#12812, dim#12812, i#71351}(`I8`_lanetype, `%`_dim{i#71358}(16)))] +[visit_exp shape#1821] +[visit_id shape#1821] +[visit_exp Jnn#332] +[visit_id Jnn#332] +[visit_exp (`%X%`_shape{lanetype#12812, dim#12812, i#71351}(`I8`_lanetype, `%`_dim{i#71358}(16)))] +[visit_exp `%X%`_shape{lanetype#12812, dim#12812, i#71351}(`I8`_lanetype, `%`_dim{i#71358}(16))] +[visit_exp lanetype#12812] +[visit_id lanetype#12812] +[visit_exp dim#12812] +[visit_id dim#12812] +[visit_exp i#71351] +[visit_id i#71351] +[visit_exp (`I8`_lanetype, `%`_dim{i#71358}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#71358}(16)] +[visit_exp i#71358] +[visit_id i#71358] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTMUL`_vextbinop__{half#226, sx#12961}(`HIGH`_half, `S`_sx)] +[visit_exp half#226] +[visit_id half#226] +[visit_exp sx#12961] +[visit_id sx#12961] +[visit_exp (`HIGH`_half, `S`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#71332}(157)] +[visit_exp i#71332] +[visit_id i#71332] +[visit_exp (157)] +[visit_exp 157] +[check_dims] Jnn#336 Jnn#340 dim#13035 dim#13047 half#260 i#71712 i#71719 i#71726 i#71731 i#71738 ishape_1#41 ishape_2#41 lanetype#13035 lanetype#13047 shape#1924 shape#1936 sx#12995 +dims \ = Jnn#336, Jnn#340, dim#13035, dim#13047, half#260, i#71712, i#71719, i#71726, i#71731, i#71738, ishape_1#41, ishape_2#41, lanetype#13035, lanetype#13047, shape#1924, shape#1936, sx#12995 +[visit_exp `VEXTBINOP`_instr{ishape_1#41, ishape_2#41}(`%`_ishape{shape#1924, Jnn#336}(`%X%`_shape{lanetype#13035, dim#13035, i#71719}(`I16`_lanetype, `%`_dim{i#71726}(8))), `%`_ishape{shape#1936, Jnn#340}(`%X%`_shape{lanetype#13047, dim#13047, i#71731}(`I8`_lanetype, `%`_dim{i#71738}(16))), `EXTMUL`_vextbinop__{half#260, sx#12995}(`LOW`_half, `U`_sx))] +[visit_exp ishape_1#41] +[visit_id ishape_1#41] +[visit_exp ishape_2#41] +[visit_id ishape_2#41] +[visit_exp (`%`_ishape{shape#1924, Jnn#336}(`%X%`_shape{lanetype#13035, dim#13035, i#71719}(`I16`_lanetype, `%`_dim{i#71726}(8))), `%`_ishape{shape#1936, Jnn#340}(`%X%`_shape{lanetype#13047, dim#13047, i#71731}(`I8`_lanetype, `%`_dim{i#71738}(16))), `EXTMUL`_vextbinop__{half#260, sx#12995}(`LOW`_half, `U`_sx))] +[visit_exp `%`_ishape{shape#1924, Jnn#336}(`%X%`_shape{lanetype#13035, dim#13035, i#71719}(`I16`_lanetype, `%`_dim{i#71726}(8)))] +[visit_exp shape#1924] +[visit_id shape#1924] +[visit_exp Jnn#336] +[visit_id Jnn#336] +[visit_exp (`%X%`_shape{lanetype#13035, dim#13035, i#71719}(`I16`_lanetype, `%`_dim{i#71726}(8)))] +[visit_exp `%X%`_shape{lanetype#13035, dim#13035, i#71719}(`I16`_lanetype, `%`_dim{i#71726}(8))] +[visit_exp lanetype#13035] +[visit_id lanetype#13035] +[visit_exp dim#13035] +[visit_id dim#13035] +[visit_exp i#71719] +[visit_id i#71719] +[visit_exp (`I16`_lanetype, `%`_dim{i#71726}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#71726}(8)] +[visit_exp i#71726] +[visit_id i#71726] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#1936, Jnn#340}(`%X%`_shape{lanetype#13047, dim#13047, i#71731}(`I8`_lanetype, `%`_dim{i#71738}(16)))] +[visit_exp shape#1936] +[visit_id shape#1936] +[visit_exp Jnn#340] +[visit_id Jnn#340] +[visit_exp (`%X%`_shape{lanetype#13047, dim#13047, i#71731}(`I8`_lanetype, `%`_dim{i#71738}(16)))] +[visit_exp `%X%`_shape{lanetype#13047, dim#13047, i#71731}(`I8`_lanetype, `%`_dim{i#71738}(16))] +[visit_exp lanetype#13047] +[visit_id lanetype#13047] +[visit_exp dim#13047] +[visit_id dim#13047] +[visit_exp i#71731] +[visit_id i#71731] +[visit_exp (`I8`_lanetype, `%`_dim{i#71738}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#71738}(16)] +[visit_exp i#71738] +[visit_id i#71738] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTMUL`_vextbinop__{half#260, sx#12995}(`LOW`_half, `U`_sx)] +[visit_exp half#260] +[visit_id half#260] +[visit_exp sx#12995] +[visit_id sx#12995] +[visit_exp (`LOW`_half, `U`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#71712}(158)] +[visit_exp i#71712] +[visit_id i#71712] +[visit_exp (158)] +[visit_exp 158] +[check_dims] Jnn#344 Jnn#348 dim#13270 dim#13282 half#294 i#72092 i#72099 i#72106 i#72111 i#72118 ishape_1#43 ishape_2#43 lanetype#13270 lanetype#13282 shape#2039 shape#2051 sx#13029 +dims \ = Jnn#344, Jnn#348, dim#13270, dim#13282, half#294, i#72092, i#72099, i#72106, i#72111, i#72118, ishape_1#43, ishape_2#43, lanetype#13270, lanetype#13282, shape#2039, shape#2051, sx#13029 +[visit_exp `VEXTBINOP`_instr{ishape_1#43, ishape_2#43}(`%`_ishape{shape#2039, Jnn#344}(`%X%`_shape{lanetype#13270, dim#13270, i#72099}(`I16`_lanetype, `%`_dim{i#72106}(8))), `%`_ishape{shape#2051, Jnn#348}(`%X%`_shape{lanetype#13282, dim#13282, i#72111}(`I8`_lanetype, `%`_dim{i#72118}(16))), `EXTMUL`_vextbinop__{half#294, sx#13029}(`HIGH`_half, `U`_sx))] +[visit_exp ishape_1#43] +[visit_id ishape_1#43] +[visit_exp ishape_2#43] +[visit_id ishape_2#43] +[visit_exp (`%`_ishape{shape#2039, Jnn#344}(`%X%`_shape{lanetype#13270, dim#13270, i#72099}(`I16`_lanetype, `%`_dim{i#72106}(8))), `%`_ishape{shape#2051, Jnn#348}(`%X%`_shape{lanetype#13282, dim#13282, i#72111}(`I8`_lanetype, `%`_dim{i#72118}(16))), `EXTMUL`_vextbinop__{half#294, sx#13029}(`HIGH`_half, `U`_sx))] +[visit_exp `%`_ishape{shape#2039, Jnn#344}(`%X%`_shape{lanetype#13270, dim#13270, i#72099}(`I16`_lanetype, `%`_dim{i#72106}(8)))] +[visit_exp shape#2039] +[visit_id shape#2039] +[visit_exp Jnn#344] +[visit_id Jnn#344] +[visit_exp (`%X%`_shape{lanetype#13270, dim#13270, i#72099}(`I16`_lanetype, `%`_dim{i#72106}(8)))] +[visit_exp `%X%`_shape{lanetype#13270, dim#13270, i#72099}(`I16`_lanetype, `%`_dim{i#72106}(8))] +[visit_exp lanetype#13270] +[visit_id lanetype#13270] +[visit_exp dim#13270] +[visit_id dim#13270] +[visit_exp i#72099] +[visit_id i#72099] +[visit_exp (`I16`_lanetype, `%`_dim{i#72106}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#72106}(8)] +[visit_exp i#72106] +[visit_id i#72106] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#2051, Jnn#348}(`%X%`_shape{lanetype#13282, dim#13282, i#72111}(`I8`_lanetype, `%`_dim{i#72118}(16)))] +[visit_exp shape#2051] +[visit_id shape#2051] +[visit_exp Jnn#348] +[visit_id Jnn#348] +[visit_exp (`%X%`_shape{lanetype#13282, dim#13282, i#72111}(`I8`_lanetype, `%`_dim{i#72118}(16)))] +[visit_exp `%X%`_shape{lanetype#13282, dim#13282, i#72111}(`I8`_lanetype, `%`_dim{i#72118}(16))] +[visit_exp lanetype#13282] +[visit_id lanetype#13282] +[visit_exp dim#13282] +[visit_id dim#13282] +[visit_exp i#72111] +[visit_id i#72111] +[visit_exp (`I8`_lanetype, `%`_dim{i#72118}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#72118}(16)] +[visit_exp i#72118] +[visit_id i#72118] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTMUL`_vextbinop__{half#294, sx#13029}(`HIGH`_half, `U`_sx)] +[visit_exp half#294] +[visit_id half#294] +[visit_exp sx#13029] +[visit_id sx#13029] +[visit_exp (`HIGH`_half, `U`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#72092}(159)] +[visit_exp i#72092] +[visit_id i#72092] +[visit_exp (159)] +[visit_exp 159] +[check_dims] Jnn#352 Jnn#356 dim#13505 dim#13517 i#72472 i#72479 i#72486 i#72491 i#72498 ishape_1#45 ishape_2#45 lanetype#13505 lanetype#13517 shape#2154 shape#2166 +dims \ = Jnn#352, Jnn#356, dim#13505, dim#13517, i#72472, i#72479, i#72486, i#72491, i#72498, ishape_1#45, ishape_2#45, lanetype#13505, lanetype#13517, shape#2154, shape#2166 +[visit_exp `VEXTBINOP`_instr{ishape_1#45, ishape_2#45}(`%`_ishape{shape#2154, Jnn#352}(`%X%`_shape{lanetype#13505, dim#13505, i#72479}(`I16`_lanetype, `%`_dim{i#72486}(8))), `%`_ishape{shape#2166, Jnn#356}(`%X%`_shape{lanetype#13517, dim#13517, i#72491}(`I8`_lanetype, `%`_dim{i#72498}(16))), `RELAXED_DOTS`_vextbinop__)] +[visit_exp ishape_1#45] +[visit_id ishape_1#45] +[visit_exp ishape_2#45] +[visit_id ishape_2#45] +[visit_exp (`%`_ishape{shape#2154, Jnn#352}(`%X%`_shape{lanetype#13505, dim#13505, i#72479}(`I16`_lanetype, `%`_dim{i#72486}(8))), `%`_ishape{shape#2166, Jnn#356}(`%X%`_shape{lanetype#13517, dim#13517, i#72491}(`I8`_lanetype, `%`_dim{i#72498}(16))), `RELAXED_DOTS`_vextbinop__)] +[visit_exp `%`_ishape{shape#2154, Jnn#352}(`%X%`_shape{lanetype#13505, dim#13505, i#72479}(`I16`_lanetype, `%`_dim{i#72486}(8)))] +[visit_exp shape#2154] +[visit_id shape#2154] +[visit_exp Jnn#352] +[visit_id Jnn#352] +[visit_exp (`%X%`_shape{lanetype#13505, dim#13505, i#72479}(`I16`_lanetype, `%`_dim{i#72486}(8)))] +[visit_exp `%X%`_shape{lanetype#13505, dim#13505, i#72479}(`I16`_lanetype, `%`_dim{i#72486}(8))] +[visit_exp lanetype#13505] +[visit_id lanetype#13505] +[visit_exp dim#13505] +[visit_id dim#13505] +[visit_exp i#72479] +[visit_id i#72479] +[visit_exp (`I16`_lanetype, `%`_dim{i#72486}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#72486}(8)] +[visit_exp i#72486] +[visit_id i#72486] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#2166, Jnn#356}(`%X%`_shape{lanetype#13517, dim#13517, i#72491}(`I8`_lanetype, `%`_dim{i#72498}(16)))] +[visit_exp shape#2166] +[visit_id shape#2166] +[visit_exp Jnn#356] +[visit_id Jnn#356] +[visit_exp (`%X%`_shape{lanetype#13517, dim#13517, i#72491}(`I8`_lanetype, `%`_dim{i#72498}(16)))] +[visit_exp `%X%`_shape{lanetype#13517, dim#13517, i#72491}(`I8`_lanetype, `%`_dim{i#72498}(16))] +[visit_exp lanetype#13517] +[visit_id lanetype#13517] +[visit_exp dim#13517] +[visit_id dim#13517] +[visit_exp i#72491] +[visit_id i#72491] +[visit_exp (`I8`_lanetype, `%`_dim{i#72498}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#72498}(16)] +[visit_exp i#72498] +[visit_id i#72498] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `RELAXED_DOTS`_vextbinop__] +[visit_exp ()] +[visit_exp `%`_u32{i#72472}(274)] +[visit_exp i#72472] +[visit_id i#72472] +[visit_exp (274)] +[visit_exp 274] +ps' = +[check_dims] +[check_dims] Jnn#360 Jnn#364 dim#13740 dim#13752 i#72852 i#72859 i#72866 i#72871 i#72878 ishape_1#47 ishape_2#47 lanetype#13740 lanetype#13752 shape#2269 shape#2281 sx#13093 +dims \ = Jnn#360, Jnn#364, dim#13740, dim#13752, i#72852, i#72859, i#72866, i#72871, i#72878, ishape_1#47, ishape_2#47, lanetype#13740, lanetype#13752, shape#2269, shape#2281, sx#13093 +[visit_exp `VEXTUNOP`_instr{ishape_1#47, ishape_2#47}(`%`_ishape{shape#2269, Jnn#360}(`%X%`_shape{lanetype#13740, dim#13740, i#72859}(`I32`_lanetype, `%`_dim{i#72866}(4))), `%`_ishape{shape#2281, Jnn#364}(`%X%`_shape{lanetype#13752, dim#13752, i#72871}(`I16`_lanetype, `%`_dim{i#72878}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#13093}(`S`_sx))] +[visit_exp ishape_1#47] +[visit_id ishape_1#47] +[visit_exp ishape_2#47] +[visit_id ishape_2#47] +[visit_exp (`%`_ishape{shape#2269, Jnn#360}(`%X%`_shape{lanetype#13740, dim#13740, i#72859}(`I32`_lanetype, `%`_dim{i#72866}(4))), `%`_ishape{shape#2281, Jnn#364}(`%X%`_shape{lanetype#13752, dim#13752, i#72871}(`I16`_lanetype, `%`_dim{i#72878}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#13093}(`S`_sx))] +[visit_exp `%`_ishape{shape#2269, Jnn#360}(`%X%`_shape{lanetype#13740, dim#13740, i#72859}(`I32`_lanetype, `%`_dim{i#72866}(4)))] +[visit_exp shape#2269] +[visit_id shape#2269] +[visit_exp Jnn#360] +[visit_id Jnn#360] +[visit_exp (`%X%`_shape{lanetype#13740, dim#13740, i#72859}(`I32`_lanetype, `%`_dim{i#72866}(4)))] +[visit_exp `%X%`_shape{lanetype#13740, dim#13740, i#72859}(`I32`_lanetype, `%`_dim{i#72866}(4))] +[visit_exp lanetype#13740] +[visit_id lanetype#13740] +[visit_exp dim#13740] +[visit_id dim#13740] +[visit_exp i#72859] +[visit_id i#72859] +[visit_exp (`I32`_lanetype, `%`_dim{i#72866}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#72866}(4)] +[visit_exp i#72866] +[visit_id i#72866] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#2281, Jnn#364}(`%X%`_shape{lanetype#13752, dim#13752, i#72871}(`I16`_lanetype, `%`_dim{i#72878}(8)))] +[visit_exp shape#2281] +[visit_id shape#2281] +[visit_exp Jnn#364] +[visit_id Jnn#364] +[visit_exp (`%X%`_shape{lanetype#13752, dim#13752, i#72871}(`I16`_lanetype, `%`_dim{i#72878}(8)))] +[visit_exp `%X%`_shape{lanetype#13752, dim#13752, i#72871}(`I16`_lanetype, `%`_dim{i#72878}(8))] +[visit_exp lanetype#13752] +[visit_id lanetype#13752] +[visit_exp dim#13752] +[visit_id dim#13752] +[visit_exp i#72871] +[visit_id i#72871] +[visit_exp (`I16`_lanetype, `%`_dim{i#72878}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#72878}(8)] +[visit_exp i#72878] +[visit_id i#72878] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#13093}(`S`_sx)] +[visit_exp sx#13093] +[visit_id sx#13093] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#72852}(126)] +[visit_exp i#72852] +[visit_id i#72852] +[visit_exp (126)] +[visit_exp 126] +[check_dims] Jnn#368 Jnn#372 dim#13975 dim#13987 i#73232 i#73239 i#73246 i#73251 i#73258 ishape_1#49 ishape_2#49 lanetype#13975 lanetype#13987 shape#2384 shape#2396 sx#13127 +dims \ = Jnn#368, Jnn#372, dim#13975, dim#13987, i#73232, i#73239, i#73246, i#73251, i#73258, ishape_1#49, ishape_2#49, lanetype#13975, lanetype#13987, shape#2384, shape#2396, sx#13127 +[visit_exp `VEXTUNOP`_instr{ishape_1#49, ishape_2#49}(`%`_ishape{shape#2384, Jnn#368}(`%X%`_shape{lanetype#13975, dim#13975, i#73239}(`I32`_lanetype, `%`_dim{i#73246}(4))), `%`_ishape{shape#2396, Jnn#372}(`%X%`_shape{lanetype#13987, dim#13987, i#73251}(`I16`_lanetype, `%`_dim{i#73258}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#13127}(`U`_sx))] +[visit_exp ishape_1#49] +[visit_id ishape_1#49] +[visit_exp ishape_2#49] +[visit_id ishape_2#49] +[visit_exp (`%`_ishape{shape#2384, Jnn#368}(`%X%`_shape{lanetype#13975, dim#13975, i#73239}(`I32`_lanetype, `%`_dim{i#73246}(4))), `%`_ishape{shape#2396, Jnn#372}(`%X%`_shape{lanetype#13987, dim#13987, i#73251}(`I16`_lanetype, `%`_dim{i#73258}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#13127}(`U`_sx))] +[visit_exp `%`_ishape{shape#2384, Jnn#368}(`%X%`_shape{lanetype#13975, dim#13975, i#73239}(`I32`_lanetype, `%`_dim{i#73246}(4)))] +[visit_exp shape#2384] +[visit_id shape#2384] +[visit_exp Jnn#368] +[visit_id Jnn#368] +[visit_exp (`%X%`_shape{lanetype#13975, dim#13975, i#73239}(`I32`_lanetype, `%`_dim{i#73246}(4)))] +[visit_exp `%X%`_shape{lanetype#13975, dim#13975, i#73239}(`I32`_lanetype, `%`_dim{i#73246}(4))] +[visit_exp lanetype#13975] +[visit_id lanetype#13975] +[visit_exp dim#13975] +[visit_id dim#13975] +[visit_exp i#73239] +[visit_id i#73239] +[visit_exp (`I32`_lanetype, `%`_dim{i#73246}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#73246}(4)] +[visit_exp i#73246] +[visit_id i#73246] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#2396, Jnn#372}(`%X%`_shape{lanetype#13987, dim#13987, i#73251}(`I16`_lanetype, `%`_dim{i#73258}(8)))] +[visit_exp shape#2396] +[visit_id shape#2396] +[visit_exp Jnn#372] +[visit_id Jnn#372] +[visit_exp (`%X%`_shape{lanetype#13987, dim#13987, i#73251}(`I16`_lanetype, `%`_dim{i#73258}(8)))] +[visit_exp `%X%`_shape{lanetype#13987, dim#13987, i#73251}(`I16`_lanetype, `%`_dim{i#73258}(8))] +[visit_exp lanetype#13987] +[visit_id lanetype#13987] +[visit_exp dim#13987] +[visit_id dim#13987] +[visit_exp i#73251] +[visit_id i#73251] +[visit_exp (`I16`_lanetype, `%`_dim{i#73258}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#73258}(8)] +[visit_exp i#73258] +[visit_id i#73258] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#13127}(`U`_sx)] +[visit_exp sx#13127] +[visit_id sx#13127] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#73232}(127)] +[visit_exp i#73232] +[visit_id i#73232] +[visit_exp (127)] +[visit_exp 127] +ps' = +[check_dims] +[check_dims] dim#14210 i#73612 i#73619 i#73626 lanetype#14210 shape#2489 +dims \ = dim#14210, i#73612, i#73619, i#73626, lanetype#14210, shape#2489 +[visit_exp `VUNOP`_instr{shape#2489}(`%X%`_shape{lanetype#14210, dim#14210, i#73619}(`I32`_lanetype, `%`_dim{i#73626}(4)), `ABS`_vunop_)] +[visit_exp shape#2489] +[visit_id shape#2489] +[visit_exp (`%X%`_shape{lanetype#14210, dim#14210, i#73619}(`I32`_lanetype, `%`_dim{i#73626}(4)), `ABS`_vunop_)] +[visit_exp `%X%`_shape{lanetype#14210, dim#14210, i#73619}(`I32`_lanetype, `%`_dim{i#73626}(4))] +[visit_exp lanetype#14210] +[visit_id lanetype#14210] +[visit_exp dim#14210] +[visit_id dim#14210] +[visit_exp i#73619] +[visit_id i#73619] +[visit_exp (`I32`_lanetype, `%`_dim{i#73626}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#73626}(4)] +[visit_exp i#73626] +[visit_id i#73626] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#73612}(160)] +[visit_exp i#73612] +[visit_id i#73612] +[visit_exp (160)] +[visit_exp 160] +[check_dims] dim#14237 i#73694 i#73701 i#73708 lanetype#14237 shape#2491 +dims \ = dim#14237, i#73694, i#73701, i#73708, lanetype#14237, shape#2491 +[visit_exp `VUNOP`_instr{shape#2491}(`%X%`_shape{lanetype#14237, dim#14237, i#73701}(`I32`_lanetype, `%`_dim{i#73708}(4)), `NEG`_vunop_)] +[visit_exp shape#2491] +[visit_id shape#2491] +[visit_exp (`%X%`_shape{lanetype#14237, dim#14237, i#73701}(`I32`_lanetype, `%`_dim{i#73708}(4)), `NEG`_vunop_)] +[visit_exp `%X%`_shape{lanetype#14237, dim#14237, i#73701}(`I32`_lanetype, `%`_dim{i#73708}(4))] +[visit_exp lanetype#14237] +[visit_id lanetype#14237] +[visit_exp dim#14237] +[visit_id dim#14237] +[visit_exp i#73701] +[visit_id i#73701] +[visit_exp (`I32`_lanetype, `%`_dim{i#73708}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#73708}(4)] +[visit_exp i#73708] +[visit_id i#73708] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#73694}(161)] +[visit_exp i#73694] +[visit_id i#73694] +[visit_exp (161)] +[visit_exp 161] +ps' = +[check_dims] +[check_dims] dim#14264 i#73776 i#73783 i#73790 lanetype#14264 shape#2493 +dims \ = dim#14264, i#73776, i#73783, i#73790, lanetype#14264, shape#2493 +[visit_exp `VTESTOP`_instr{shape#2493}(`%X%`_shape{lanetype#14264, dim#14264, i#73783}(`I32`_lanetype, `%`_dim{i#73790}(4)), `ALL_TRUE`_vtestop_)] +[visit_exp shape#2493] +[visit_id shape#2493] +[visit_exp (`%X%`_shape{lanetype#14264, dim#14264, i#73783}(`I32`_lanetype, `%`_dim{i#73790}(4)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape{lanetype#14264, dim#14264, i#73783}(`I32`_lanetype, `%`_dim{i#73790}(4))] +[visit_exp lanetype#14264] +[visit_id lanetype#14264] +[visit_exp dim#14264] +[visit_id dim#14264] +[visit_exp i#73783] +[visit_id i#73783] +[visit_exp (`I32`_lanetype, `%`_dim{i#73790}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#73790}(4)] +[visit_exp i#73790] +[visit_id i#73790] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `ALL_TRUE`_vtestop_] +[visit_exp ()] +[visit_exp `%`_u32{i#73776}(163)] +[visit_exp i#73776] +[visit_id i#73776] +[visit_exp (163)] +[visit_exp 163] +ps' = +[check_dims] +[check_dims] Jnn#376 dim#14291 i#73858 i#73865 i#73872 ishape#29 lanetype#14291 shape#2505 +dims \ = Jnn#376, dim#14291, i#73858, i#73865, i#73872, ishape#29, lanetype#14291, shape#2505 +[visit_exp `VBITMASK`_instr{ishape#29}(`%`_ishape{shape#2505, Jnn#376}(`%X%`_shape{lanetype#14291, dim#14291, i#73865}(`I32`_lanetype, `%`_dim{i#73872}(4))))] +[visit_exp ishape#29] +[visit_id ishape#29] +[visit_exp (`%`_ishape{shape#2505, Jnn#376}(`%X%`_shape{lanetype#14291, dim#14291, i#73865}(`I32`_lanetype, `%`_dim{i#73872}(4))))] +[visit_exp `%`_ishape{shape#2505, Jnn#376}(`%X%`_shape{lanetype#14291, dim#14291, i#73865}(`I32`_lanetype, `%`_dim{i#73872}(4)))] +[visit_exp shape#2505] +[visit_id shape#2505] +[visit_exp Jnn#376] +[visit_id Jnn#376] +[visit_exp (`%X%`_shape{lanetype#14291, dim#14291, i#73865}(`I32`_lanetype, `%`_dim{i#73872}(4)))] +[visit_exp `%X%`_shape{lanetype#14291, dim#14291, i#73865}(`I32`_lanetype, `%`_dim{i#73872}(4))] +[visit_exp lanetype#14291] +[visit_id lanetype#14291] +[visit_exp dim#14291] +[visit_id dim#14291] +[visit_exp i#73865] +[visit_id i#73865] +[visit_exp (`I32`_lanetype, `%`_dim{i#73872}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#73872}(4)] +[visit_exp i#73872] +[visit_id i#73872] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_u32{i#73858}(164)] +[visit_exp i#73858] +[visit_id i#73858] +[visit_exp (164)] +[visit_exp 164] +ps' = +[check_dims] +[check_dims] dim#14303 dim#14315 half#358 i#73895 i#73902 i#73909 i#73914 i#73921 lanetype#14303 lanetype#14315 shape_1#15 shape_2#15 sx#13161 +dims \ = dim#14303, dim#14315, half#358, i#73895, i#73902, i#73909, i#73914, i#73921, lanetype#14303, lanetype#14315, shape_1#15, shape_2#15, sx#13161 +[visit_exp `VCVTOP`_instr{shape_1#15, shape_2#15}(`%X%`_shape{lanetype#14303, dim#14303, i#73902}(`I32`_lanetype, `%`_dim{i#73909}(4)), `%X%`_shape{lanetype#14315, dim#14315, i#73914}(`I16`_lanetype, `%`_dim{i#73921}(8)), `EXTEND`_vcvtop__{half#358, sx#13161}(`LOW`_half, `S`_sx))] +[visit_exp shape_1#15] +[visit_id shape_1#15] +[visit_exp shape_2#15] +[visit_id shape_2#15] +[visit_exp (`%X%`_shape{lanetype#14303, dim#14303, i#73902}(`I32`_lanetype, `%`_dim{i#73909}(4)), `%X%`_shape{lanetype#14315, dim#14315, i#73914}(`I16`_lanetype, `%`_dim{i#73921}(8)), `EXTEND`_vcvtop__{half#358, sx#13161}(`LOW`_half, `S`_sx))] +[visit_exp `%X%`_shape{lanetype#14303, dim#14303, i#73902}(`I32`_lanetype, `%`_dim{i#73909}(4))] +[visit_exp lanetype#14303] +[visit_id lanetype#14303] +[visit_exp dim#14303] +[visit_id dim#14303] +[visit_exp i#73902] +[visit_id i#73902] +[visit_exp (`I32`_lanetype, `%`_dim{i#73909}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#73909}(4)] +[visit_exp i#73909] +[visit_id i#73909] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#14315, dim#14315, i#73914}(`I16`_lanetype, `%`_dim{i#73921}(8))] +[visit_exp lanetype#14315] +[visit_id lanetype#14315] +[visit_exp dim#14315] +[visit_id dim#14315] +[visit_exp i#73914] +[visit_id i#73914] +[visit_exp (`I16`_lanetype, `%`_dim{i#73921}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#73921}(8)] +[visit_exp i#73921] +[visit_id i#73921] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTEND`_vcvtop__{half#358, sx#13161}(`LOW`_half, `S`_sx)] +[visit_exp half#358] +[visit_id half#358] +[visit_exp sx#13161] +[visit_id sx#13161] +[visit_exp (`LOW`_half, `S`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#73895}(167)] +[visit_exp i#73895] +[visit_id i#73895] +[visit_exp (167)] +[visit_exp 167] +[check_dims] dim#14418 dim#14430 half#392 i#74155 i#74162 i#74169 i#74174 i#74181 lanetype#14418 lanetype#14430 shape_1#17 shape_2#17 sx#13195 +dims \ = dim#14418, dim#14430, half#392, i#74155, i#74162, i#74169, i#74174, i#74181, lanetype#14418, lanetype#14430, shape_1#17, shape_2#17, sx#13195 +[visit_exp `VCVTOP`_instr{shape_1#17, shape_2#17}(`%X%`_shape{lanetype#14418, dim#14418, i#74162}(`I32`_lanetype, `%`_dim{i#74169}(4)), `%X%`_shape{lanetype#14430, dim#14430, i#74174}(`I16`_lanetype, `%`_dim{i#74181}(8)), `EXTEND`_vcvtop__{half#392, sx#13195}(`HIGH`_half, `S`_sx))] +[visit_exp shape_1#17] +[visit_id shape_1#17] +[visit_exp shape_2#17] +[visit_id shape_2#17] +[visit_exp (`%X%`_shape{lanetype#14418, dim#14418, i#74162}(`I32`_lanetype, `%`_dim{i#74169}(4)), `%X%`_shape{lanetype#14430, dim#14430, i#74174}(`I16`_lanetype, `%`_dim{i#74181}(8)), `EXTEND`_vcvtop__{half#392, sx#13195}(`HIGH`_half, `S`_sx))] +[visit_exp `%X%`_shape{lanetype#14418, dim#14418, i#74162}(`I32`_lanetype, `%`_dim{i#74169}(4))] +[visit_exp lanetype#14418] +[visit_id lanetype#14418] +[visit_exp dim#14418] +[visit_id dim#14418] +[visit_exp i#74162] +[visit_id i#74162] +[visit_exp (`I32`_lanetype, `%`_dim{i#74169}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#74169}(4)] +[visit_exp i#74169] +[visit_id i#74169] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#14430, dim#14430, i#74174}(`I16`_lanetype, `%`_dim{i#74181}(8))] +[visit_exp lanetype#14430] +[visit_id lanetype#14430] +[visit_exp dim#14430] +[visit_id dim#14430] +[visit_exp i#74174] +[visit_id i#74174] +[visit_exp (`I16`_lanetype, `%`_dim{i#74181}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#74181}(8)] +[visit_exp i#74181] +[visit_id i#74181] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTEND`_vcvtop__{half#392, sx#13195}(`HIGH`_half, `S`_sx)] +[visit_exp half#392] +[visit_id half#392] +[visit_exp sx#13195] +[visit_id sx#13195] +[visit_exp (`HIGH`_half, `S`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#74155}(168)] +[visit_exp i#74155] +[visit_id i#74155] +[visit_exp (168)] +[visit_exp 168] +[check_dims] dim#14533 dim#14545 half#426 i#74415 i#74422 i#74429 i#74434 i#74441 lanetype#14533 lanetype#14545 shape_1#19 shape_2#19 sx#13229 +dims \ = dim#14533, dim#14545, half#426, i#74415, i#74422, i#74429, i#74434, i#74441, lanetype#14533, lanetype#14545, shape_1#19, shape_2#19, sx#13229 +[visit_exp `VCVTOP`_instr{shape_1#19, shape_2#19}(`%X%`_shape{lanetype#14533, dim#14533, i#74422}(`I32`_lanetype, `%`_dim{i#74429}(4)), `%X%`_shape{lanetype#14545, dim#14545, i#74434}(`I16`_lanetype, `%`_dim{i#74441}(8)), `EXTEND`_vcvtop__{half#426, sx#13229}(`LOW`_half, `U`_sx))] +[visit_exp shape_1#19] +[visit_id shape_1#19] +[visit_exp shape_2#19] +[visit_id shape_2#19] +[visit_exp (`%X%`_shape{lanetype#14533, dim#14533, i#74422}(`I32`_lanetype, `%`_dim{i#74429}(4)), `%X%`_shape{lanetype#14545, dim#14545, i#74434}(`I16`_lanetype, `%`_dim{i#74441}(8)), `EXTEND`_vcvtop__{half#426, sx#13229}(`LOW`_half, `U`_sx))] +[visit_exp `%X%`_shape{lanetype#14533, dim#14533, i#74422}(`I32`_lanetype, `%`_dim{i#74429}(4))] +[visit_exp lanetype#14533] +[visit_id lanetype#14533] +[visit_exp dim#14533] +[visit_id dim#14533] +[visit_exp i#74422] +[visit_id i#74422] +[visit_exp (`I32`_lanetype, `%`_dim{i#74429}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#74429}(4)] +[visit_exp i#74429] +[visit_id i#74429] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#14545, dim#14545, i#74434}(`I16`_lanetype, `%`_dim{i#74441}(8))] +[visit_exp lanetype#14545] +[visit_id lanetype#14545] +[visit_exp dim#14545] +[visit_id dim#14545] +[visit_exp i#74434] +[visit_id i#74434] +[visit_exp (`I16`_lanetype, `%`_dim{i#74441}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#74441}(8)] +[visit_exp i#74441] +[visit_id i#74441] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTEND`_vcvtop__{half#426, sx#13229}(`LOW`_half, `U`_sx)] +[visit_exp half#426] +[visit_id half#426] +[visit_exp sx#13229] +[visit_id sx#13229] +[visit_exp (`LOW`_half, `U`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#74415}(169)] +[visit_exp i#74415] +[visit_id i#74415] +[visit_exp (169)] +[visit_exp 169] +[check_dims] dim#14648 dim#14660 half#460 i#74675 i#74682 i#74689 i#74694 i#74701 lanetype#14648 lanetype#14660 shape_1#21 shape_2#21 sx#13263 +dims \ = dim#14648, dim#14660, half#460, i#74675, i#74682, i#74689, i#74694, i#74701, lanetype#14648, lanetype#14660, shape_1#21, shape_2#21, sx#13263 +[visit_exp `VCVTOP`_instr{shape_1#21, shape_2#21}(`%X%`_shape{lanetype#14648, dim#14648, i#74682}(`I32`_lanetype, `%`_dim{i#74689}(4)), `%X%`_shape{lanetype#14660, dim#14660, i#74694}(`I16`_lanetype, `%`_dim{i#74701}(8)), `EXTEND`_vcvtop__{half#460, sx#13263}(`HIGH`_half, `U`_sx))] +[visit_exp shape_1#21] +[visit_id shape_1#21] +[visit_exp shape_2#21] +[visit_id shape_2#21] +[visit_exp (`%X%`_shape{lanetype#14648, dim#14648, i#74682}(`I32`_lanetype, `%`_dim{i#74689}(4)), `%X%`_shape{lanetype#14660, dim#14660, i#74694}(`I16`_lanetype, `%`_dim{i#74701}(8)), `EXTEND`_vcvtop__{half#460, sx#13263}(`HIGH`_half, `U`_sx))] +[visit_exp `%X%`_shape{lanetype#14648, dim#14648, i#74682}(`I32`_lanetype, `%`_dim{i#74689}(4))] +[visit_exp lanetype#14648] +[visit_id lanetype#14648] +[visit_exp dim#14648] +[visit_id dim#14648] +[visit_exp i#74682] +[visit_id i#74682] +[visit_exp (`I32`_lanetype, `%`_dim{i#74689}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#74689}(4)] +[visit_exp i#74689] +[visit_id i#74689] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#14660, dim#14660, i#74694}(`I16`_lanetype, `%`_dim{i#74701}(8))] +[visit_exp lanetype#14660] +[visit_id lanetype#14660] +[visit_exp dim#14660] +[visit_id dim#14660] +[visit_exp i#74694] +[visit_id i#74694] +[visit_exp (`I16`_lanetype, `%`_dim{i#74701}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#74701}(8)] +[visit_exp i#74701] +[visit_id i#74701] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTEND`_vcvtop__{half#460, sx#13263}(`HIGH`_half, `U`_sx)] +[visit_exp half#460] +[visit_id half#460] +[visit_exp sx#13263] +[visit_id sx#13263] +[visit_exp (`HIGH`_half, `U`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#74675}(170)] +[visit_exp i#74675] +[visit_id i#74675] +[visit_exp (170)] +[visit_exp 170] +ps' = +[check_dims] +[check_dims] Jnn#380 dim#14763 i#74935 i#74942 i#74949 ishape#31 lanetype#14763 shape#2517 +dims \ = Jnn#380, dim#14763, i#74935, i#74942, i#74949, ishape#31, lanetype#14763, shape#2517 +[visit_exp `VSHIFTOP`_instr{ishape#31}(`%`_ishape{shape#2517, Jnn#380}(`%X%`_shape{lanetype#14763, dim#14763, i#74942}(`I32`_lanetype, `%`_dim{i#74949}(4))), `SHL`_vshiftop_)] +[visit_exp ishape#31] +[visit_id ishape#31] +[visit_exp (`%`_ishape{shape#2517, Jnn#380}(`%X%`_shape{lanetype#14763, dim#14763, i#74942}(`I32`_lanetype, `%`_dim{i#74949}(4))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape{shape#2517, Jnn#380}(`%X%`_shape{lanetype#14763, dim#14763, i#74942}(`I32`_lanetype, `%`_dim{i#74949}(4)))] +[visit_exp shape#2517] +[visit_id shape#2517] +[visit_exp Jnn#380] +[visit_id Jnn#380] +[visit_exp (`%X%`_shape{lanetype#14763, dim#14763, i#74942}(`I32`_lanetype, `%`_dim{i#74949}(4)))] +[visit_exp `%X%`_shape{lanetype#14763, dim#14763, i#74942}(`I32`_lanetype, `%`_dim{i#74949}(4))] +[visit_exp lanetype#14763] +[visit_id lanetype#14763] +[visit_exp dim#14763] +[visit_id dim#14763] +[visit_exp i#74942] +[visit_id i#74942] +[visit_exp (`I32`_lanetype, `%`_dim{i#74949}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#74949}(4)] +[visit_exp i#74949] +[visit_id i#74949] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `SHL`_vshiftop_] +[visit_exp ()] +[visit_exp `%`_u32{i#74935}(171)] +[visit_exp i#74935] +[visit_id i#74935] +[visit_exp (171)] +[visit_exp 171] +[check_dims] Jnn#384 dim#14820 i#75047 i#75054 i#75061 ishape#33 lanetype#14820 shape#2544 sx#13297 +dims \ = Jnn#384, dim#14820, i#75047, i#75054, i#75061, ishape#33, lanetype#14820, shape#2544, sx#13297 +[visit_exp `VSHIFTOP`_instr{ishape#33}(`%`_ishape{shape#2544, Jnn#384}(`%X%`_shape{lanetype#14820, dim#14820, i#75054}(`I32`_lanetype, `%`_dim{i#75061}(4))), `SHR`_vshiftop_{sx#13297}(`S`_sx))] +[visit_exp ishape#33] +[visit_id ishape#33] +[visit_exp (`%`_ishape{shape#2544, Jnn#384}(`%X%`_shape{lanetype#14820, dim#14820, i#75054}(`I32`_lanetype, `%`_dim{i#75061}(4))), `SHR`_vshiftop_{sx#13297}(`S`_sx))] +[visit_exp `%`_ishape{shape#2544, Jnn#384}(`%X%`_shape{lanetype#14820, dim#14820, i#75054}(`I32`_lanetype, `%`_dim{i#75061}(4)))] +[visit_exp shape#2544] +[visit_id shape#2544] +[visit_exp Jnn#384] +[visit_id Jnn#384] +[visit_exp (`%X%`_shape{lanetype#14820, dim#14820, i#75054}(`I32`_lanetype, `%`_dim{i#75061}(4)))] +[visit_exp `%X%`_shape{lanetype#14820, dim#14820, i#75054}(`I32`_lanetype, `%`_dim{i#75061}(4))] +[visit_exp lanetype#14820] +[visit_id lanetype#14820] +[visit_exp dim#14820] +[visit_id dim#14820] +[visit_exp i#75054] +[visit_id i#75054] +[visit_exp (`I32`_lanetype, `%`_dim{i#75061}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#75061}(4)] +[visit_exp i#75061] +[visit_id i#75061] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `SHR`_vshiftop_{sx#13297}(`S`_sx)] +[visit_exp sx#13297] +[visit_id sx#13297] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#75047}(172)] +[visit_exp i#75047] +[visit_id i#75047] +[visit_exp (172)] +[visit_exp 172] +[check_dims] Jnn#388 dim#14883 i#75169 i#75176 i#75183 ishape#35 lanetype#14883 shape#2573 sx#13316 +dims \ = Jnn#388, dim#14883, i#75169, i#75176, i#75183, ishape#35, lanetype#14883, shape#2573, sx#13316 +[visit_exp `VSHIFTOP`_instr{ishape#35}(`%`_ishape{shape#2573, Jnn#388}(`%X%`_shape{lanetype#14883, dim#14883, i#75176}(`I32`_lanetype, `%`_dim{i#75183}(4))), `SHR`_vshiftop_{sx#13316}(`U`_sx))] +[visit_exp ishape#35] +[visit_id ishape#35] +[visit_exp (`%`_ishape{shape#2573, Jnn#388}(`%X%`_shape{lanetype#14883, dim#14883, i#75176}(`I32`_lanetype, `%`_dim{i#75183}(4))), `SHR`_vshiftop_{sx#13316}(`U`_sx))] +[visit_exp `%`_ishape{shape#2573, Jnn#388}(`%X%`_shape{lanetype#14883, dim#14883, i#75176}(`I32`_lanetype, `%`_dim{i#75183}(4)))] +[visit_exp shape#2573] +[visit_id shape#2573] +[visit_exp Jnn#388] +[visit_id Jnn#388] +[visit_exp (`%X%`_shape{lanetype#14883, dim#14883, i#75176}(`I32`_lanetype, `%`_dim{i#75183}(4)))] +[visit_exp `%X%`_shape{lanetype#14883, dim#14883, i#75176}(`I32`_lanetype, `%`_dim{i#75183}(4))] +[visit_exp lanetype#14883] +[visit_id lanetype#14883] +[visit_exp dim#14883] +[visit_id dim#14883] +[visit_exp i#75176] +[visit_id i#75176] +[visit_exp (`I32`_lanetype, `%`_dim{i#75183}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#75183}(4)] +[visit_exp i#75183] +[visit_id i#75183] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `SHR`_vshiftop_{sx#13316}(`U`_sx)] +[visit_exp sx#13316] +[visit_id sx#13316] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#75169}(173)] +[visit_exp i#75169] +[visit_id i#75169] +[visit_exp (173)] +[visit_exp 173] +ps' = +[check_dims] +[check_dims] dim#14946 i#75291 i#75298 i#75305 lanetype#14946 shape#2592 +dims \ = dim#14946, i#75291, i#75298, i#75305, lanetype#14946, shape#2592 +[visit_exp `VBINOP`_instr{shape#2592}(`%X%`_shape{lanetype#14946, dim#14946, i#75298}(`I32`_lanetype, `%`_dim{i#75305}(4)), `ADD`_vbinop_)] +[visit_exp shape#2592] +[visit_id shape#2592] +[visit_exp (`%X%`_shape{lanetype#14946, dim#14946, i#75298}(`I32`_lanetype, `%`_dim{i#75305}(4)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#14946, dim#14946, i#75298}(`I32`_lanetype, `%`_dim{i#75305}(4))] +[visit_exp lanetype#14946] +[visit_id lanetype#14946] +[visit_exp dim#14946] +[visit_id dim#14946] +[visit_exp i#75298] +[visit_id i#75298] +[visit_exp (`I32`_lanetype, `%`_dim{i#75305}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#75305}(4)] +[visit_exp i#75305] +[visit_id i#75305] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#75291}(174)] +[visit_exp i#75291] +[visit_id i#75291] +[visit_exp (174)] +[visit_exp 174] +[check_dims] dim#14973 i#75373 i#75380 i#75387 lanetype#14973 shape#2594 +dims \ = dim#14973, i#75373, i#75380, i#75387, lanetype#14973, shape#2594 +[visit_exp `VBINOP`_instr{shape#2594}(`%X%`_shape{lanetype#14973, dim#14973, i#75380}(`I32`_lanetype, `%`_dim{i#75387}(4)), `SUB`_vbinop_)] +[visit_exp shape#2594] +[visit_id shape#2594] +[visit_exp (`%X%`_shape{lanetype#14973, dim#14973, i#75380}(`I32`_lanetype, `%`_dim{i#75387}(4)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#14973, dim#14973, i#75380}(`I32`_lanetype, `%`_dim{i#75387}(4))] +[visit_exp lanetype#14973] +[visit_id lanetype#14973] +[visit_exp dim#14973] +[visit_id dim#14973] +[visit_exp i#75380] +[visit_id i#75380] +[visit_exp (`I32`_lanetype, `%`_dim{i#75387}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#75387}(4)] +[visit_exp i#75387] +[visit_id i#75387] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#75373}(177)] +[visit_exp i#75373] +[visit_id i#75373] +[visit_exp (177)] +[visit_exp 177] +[check_dims] dim#15000 i#75455 i#75462 i#75469 lanetype#15000 shape#2596 +dims \ = dim#15000, i#75455, i#75462, i#75469, lanetype#15000, shape#2596 +[visit_exp `VBINOP`_instr{shape#2596}(`%X%`_shape{lanetype#15000, dim#15000, i#75462}(`I32`_lanetype, `%`_dim{i#75469}(4)), `MUL`_vbinop_)] +[visit_exp shape#2596] +[visit_id shape#2596] +[visit_exp (`%X%`_shape{lanetype#15000, dim#15000, i#75462}(`I32`_lanetype, `%`_dim{i#75469}(4)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#15000, dim#15000, i#75462}(`I32`_lanetype, `%`_dim{i#75469}(4))] +[visit_exp lanetype#15000] +[visit_id lanetype#15000] +[visit_exp dim#15000] +[visit_id dim#15000] +[visit_exp i#75462] +[visit_id i#75462] +[visit_exp (`I32`_lanetype, `%`_dim{i#75469}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#75469}(4)] +[visit_exp i#75469] +[visit_id i#75469] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MUL`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#75455}(181)] +[visit_exp i#75455] +[visit_id i#75455] +[visit_exp (181)] +[visit_exp 181] +[check_dims] dim#15027 i#75537 i#75544 i#75551 lanetype#15027 shape#2598 sx#13620 +dims \ = dim#15027, i#75537, i#75544, i#75551, lanetype#15027, shape#2598, sx#13620 +[visit_exp `VBINOP`_instr{shape#2598}(`%X%`_shape{lanetype#15027, dim#15027, i#75544}(`I32`_lanetype, `%`_dim{i#75551}(4)), `MIN`_vbinop_{sx#13620}(`S`_sx))] +[visit_exp shape#2598] +[visit_id shape#2598] +[visit_exp (`%X%`_shape{lanetype#15027, dim#15027, i#75544}(`I32`_lanetype, `%`_dim{i#75551}(4)), `MIN`_vbinop_{sx#13620}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#15027, dim#15027, i#75544}(`I32`_lanetype, `%`_dim{i#75551}(4))] +[visit_exp lanetype#15027] +[visit_id lanetype#15027] +[visit_exp dim#15027] +[visit_id dim#15027] +[visit_exp i#75544] +[visit_id i#75544] +[visit_exp (`I32`_lanetype, `%`_dim{i#75551}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#75551}(4)] +[visit_exp i#75551] +[visit_id i#75551] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MIN`_vbinop_{sx#13620}(`S`_sx)] +[visit_exp sx#13620] +[visit_id sx#13620] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#75537}(182)] +[visit_exp i#75537] +[visit_id i#75537] +[visit_exp (182)] +[visit_exp 182] +[check_dims] dim#15069 i#75664 i#75671 i#75678 lanetype#15069 shape#2600 sx#13744 +dims \ = dim#15069, i#75664, i#75671, i#75678, lanetype#15069, shape#2600, sx#13744 +[visit_exp `VBINOP`_instr{shape#2600}(`%X%`_shape{lanetype#15069, dim#15069, i#75671}(`I32`_lanetype, `%`_dim{i#75678}(4)), `MIN`_vbinop_{sx#13744}(`U`_sx))] +[visit_exp shape#2600] +[visit_id shape#2600] +[visit_exp (`%X%`_shape{lanetype#15069, dim#15069, i#75671}(`I32`_lanetype, `%`_dim{i#75678}(4)), `MIN`_vbinop_{sx#13744}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#15069, dim#15069, i#75671}(`I32`_lanetype, `%`_dim{i#75678}(4))] +[visit_exp lanetype#15069] +[visit_id lanetype#15069] +[visit_exp dim#15069] +[visit_id dim#15069] +[visit_exp i#75671] +[visit_id i#75671] +[visit_exp (`I32`_lanetype, `%`_dim{i#75678}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#75678}(4)] +[visit_exp i#75678] +[visit_id i#75678] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MIN`_vbinop_{sx#13744}(`U`_sx)] +[visit_exp sx#13744] +[visit_id sx#13744] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#75664}(183)] +[visit_exp i#75664] +[visit_id i#75664] +[visit_exp (183)] +[visit_exp 183] +[check_dims] dim#15111 i#75791 i#75798 i#75805 lanetype#15111 shape#2602 sx#13868 +dims \ = dim#15111, i#75791, i#75798, i#75805, lanetype#15111, shape#2602, sx#13868 +[visit_exp `VBINOP`_instr{shape#2602}(`%X%`_shape{lanetype#15111, dim#15111, i#75798}(`I32`_lanetype, `%`_dim{i#75805}(4)), `MAX`_vbinop_{sx#13868}(`S`_sx))] +[visit_exp shape#2602] +[visit_id shape#2602] +[visit_exp (`%X%`_shape{lanetype#15111, dim#15111, i#75798}(`I32`_lanetype, `%`_dim{i#75805}(4)), `MAX`_vbinop_{sx#13868}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#15111, dim#15111, i#75798}(`I32`_lanetype, `%`_dim{i#75805}(4))] +[visit_exp lanetype#15111] +[visit_id lanetype#15111] +[visit_exp dim#15111] +[visit_id dim#15111] +[visit_exp i#75798] +[visit_id i#75798] +[visit_exp (`I32`_lanetype, `%`_dim{i#75805}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#75805}(4)] +[visit_exp i#75805] +[visit_id i#75805] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MAX`_vbinop_{sx#13868}(`S`_sx)] +[visit_exp sx#13868] +[visit_id sx#13868] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#75791}(184)] +[visit_exp i#75791] +[visit_id i#75791] +[visit_exp (184)] +[visit_exp 184] +[check_dims] dim#15153 i#75918 i#75925 i#75932 lanetype#15153 shape#2604 sx#13992 +dims \ = dim#15153, i#75918, i#75925, i#75932, lanetype#15153, shape#2604, sx#13992 +[visit_exp `VBINOP`_instr{shape#2604}(`%X%`_shape{lanetype#15153, dim#15153, i#75925}(`I32`_lanetype, `%`_dim{i#75932}(4)), `MAX`_vbinop_{sx#13992}(`U`_sx))] +[visit_exp shape#2604] +[visit_id shape#2604] +[visit_exp (`%X%`_shape{lanetype#15153, dim#15153, i#75925}(`I32`_lanetype, `%`_dim{i#75932}(4)), `MAX`_vbinop_{sx#13992}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#15153, dim#15153, i#75925}(`I32`_lanetype, `%`_dim{i#75932}(4))] +[visit_exp lanetype#15153] +[visit_id lanetype#15153] +[visit_exp dim#15153] +[visit_id dim#15153] +[visit_exp i#75925] +[visit_id i#75925] +[visit_exp (`I32`_lanetype, `%`_dim{i#75932}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#75932}(4)] +[visit_exp i#75932] +[visit_id i#75932] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MAX`_vbinop_{sx#13992}(`U`_sx)] +[visit_exp sx#13992] +[visit_id sx#13992] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#75918}(185)] +[visit_exp i#75918] +[visit_id i#75918] +[visit_exp (185)] +[visit_exp 185] +ps' = +[check_dims] +[check_dims] Jnn#392 Jnn#396 dim#15195 dim#15207 i#76045 i#76052 i#76059 i#76064 i#76071 ishape_1#51 ishape_2#51 lanetype#15195 lanetype#15207 shape#2616 shape#2628 +dims \ = Jnn#392, Jnn#396, dim#15195, dim#15207, i#76045, i#76052, i#76059, i#76064, i#76071, ishape_1#51, ishape_2#51, lanetype#15195, lanetype#15207, shape#2616, shape#2628 +[visit_exp `VEXTBINOP`_instr{ishape_1#51, ishape_2#51}(`%`_ishape{shape#2616, Jnn#392}(`%X%`_shape{lanetype#15195, dim#15195, i#76052}(`I32`_lanetype, `%`_dim{i#76059}(4))), `%`_ishape{shape#2628, Jnn#396}(`%X%`_shape{lanetype#15207, dim#15207, i#76064}(`I16`_lanetype, `%`_dim{i#76071}(8))), `DOTS`_vextbinop__)] +[visit_exp ishape_1#51] +[visit_id ishape_1#51] +[visit_exp ishape_2#51] +[visit_id ishape_2#51] +[visit_exp (`%`_ishape{shape#2616, Jnn#392}(`%X%`_shape{lanetype#15195, dim#15195, i#76052}(`I32`_lanetype, `%`_dim{i#76059}(4))), `%`_ishape{shape#2628, Jnn#396}(`%X%`_shape{lanetype#15207, dim#15207, i#76064}(`I16`_lanetype, `%`_dim{i#76071}(8))), `DOTS`_vextbinop__)] +[visit_exp `%`_ishape{shape#2616, Jnn#392}(`%X%`_shape{lanetype#15195, dim#15195, i#76052}(`I32`_lanetype, `%`_dim{i#76059}(4)))] +[visit_exp shape#2616] +[visit_id shape#2616] +[visit_exp Jnn#392] +[visit_id Jnn#392] +[visit_exp (`%X%`_shape{lanetype#15195, dim#15195, i#76052}(`I32`_lanetype, `%`_dim{i#76059}(4)))] +[visit_exp `%X%`_shape{lanetype#15195, dim#15195, i#76052}(`I32`_lanetype, `%`_dim{i#76059}(4))] +[visit_exp lanetype#15195] +[visit_id lanetype#15195] +[visit_exp dim#15195] +[visit_id dim#15195] +[visit_exp i#76052] +[visit_id i#76052] +[visit_exp (`I32`_lanetype, `%`_dim{i#76059}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#76059}(4)] +[visit_exp i#76059] +[visit_id i#76059] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#2628, Jnn#396}(`%X%`_shape{lanetype#15207, dim#15207, i#76064}(`I16`_lanetype, `%`_dim{i#76071}(8)))] +[visit_exp shape#2628] +[visit_id shape#2628] +[visit_exp Jnn#396] +[visit_id Jnn#396] +[visit_exp (`%X%`_shape{lanetype#15207, dim#15207, i#76064}(`I16`_lanetype, `%`_dim{i#76071}(8)))] +[visit_exp `%X%`_shape{lanetype#15207, dim#15207, i#76064}(`I16`_lanetype, `%`_dim{i#76071}(8))] +[visit_exp lanetype#15207] +[visit_id lanetype#15207] +[visit_exp dim#15207] +[visit_id dim#15207] +[visit_exp i#76064] +[visit_id i#76064] +[visit_exp (`I16`_lanetype, `%`_dim{i#76071}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#76071}(8)] +[visit_exp i#76071] +[visit_id i#76071] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `DOTS`_vextbinop__] +[visit_exp ()] +[visit_exp `%`_u32{i#76045}(186)] +[visit_exp i#76045] +[visit_id i#76045] +[visit_exp (186)] +[visit_exp 186] +[check_dims] Jnn#400 Jnn#404 dim#15430 dim#15442 half#524 i#76425 i#76432 i#76439 i#76444 i#76451 ishape_1#53 ishape_2#53 lanetype#15430 lanetype#15442 shape#2731 shape#2743 sx#14056 +dims \ = Jnn#400, Jnn#404, dim#15430, dim#15442, half#524, i#76425, i#76432, i#76439, i#76444, i#76451, ishape_1#53, ishape_2#53, lanetype#15430, lanetype#15442, shape#2731, shape#2743, sx#14056 +[visit_exp `VEXTBINOP`_instr{ishape_1#53, ishape_2#53}(`%`_ishape{shape#2731, Jnn#400}(`%X%`_shape{lanetype#15430, dim#15430, i#76432}(`I32`_lanetype, `%`_dim{i#76439}(4))), `%`_ishape{shape#2743, Jnn#404}(`%X%`_shape{lanetype#15442, dim#15442, i#76444}(`I16`_lanetype, `%`_dim{i#76451}(8))), `EXTMUL`_vextbinop__{half#524, sx#14056}(`LOW`_half, `S`_sx))] +[visit_exp ishape_1#53] +[visit_id ishape_1#53] +[visit_exp ishape_2#53] +[visit_id ishape_2#53] +[visit_exp (`%`_ishape{shape#2731, Jnn#400}(`%X%`_shape{lanetype#15430, dim#15430, i#76432}(`I32`_lanetype, `%`_dim{i#76439}(4))), `%`_ishape{shape#2743, Jnn#404}(`%X%`_shape{lanetype#15442, dim#15442, i#76444}(`I16`_lanetype, `%`_dim{i#76451}(8))), `EXTMUL`_vextbinop__{half#524, sx#14056}(`LOW`_half, `S`_sx))] +[visit_exp `%`_ishape{shape#2731, Jnn#400}(`%X%`_shape{lanetype#15430, dim#15430, i#76432}(`I32`_lanetype, `%`_dim{i#76439}(4)))] +[visit_exp shape#2731] +[visit_id shape#2731] +[visit_exp Jnn#400] +[visit_id Jnn#400] +[visit_exp (`%X%`_shape{lanetype#15430, dim#15430, i#76432}(`I32`_lanetype, `%`_dim{i#76439}(4)))] +[visit_exp `%X%`_shape{lanetype#15430, dim#15430, i#76432}(`I32`_lanetype, `%`_dim{i#76439}(4))] +[visit_exp lanetype#15430] +[visit_id lanetype#15430] +[visit_exp dim#15430] +[visit_id dim#15430] +[visit_exp i#76432] +[visit_id i#76432] +[visit_exp (`I32`_lanetype, `%`_dim{i#76439}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#76439}(4)] +[visit_exp i#76439] +[visit_id i#76439] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#2743, Jnn#404}(`%X%`_shape{lanetype#15442, dim#15442, i#76444}(`I16`_lanetype, `%`_dim{i#76451}(8)))] +[visit_exp shape#2743] +[visit_id shape#2743] +[visit_exp Jnn#404] +[visit_id Jnn#404] +[visit_exp (`%X%`_shape{lanetype#15442, dim#15442, i#76444}(`I16`_lanetype, `%`_dim{i#76451}(8)))] +[visit_exp `%X%`_shape{lanetype#15442, dim#15442, i#76444}(`I16`_lanetype, `%`_dim{i#76451}(8))] +[visit_exp lanetype#15442] +[visit_id lanetype#15442] +[visit_exp dim#15442] +[visit_id dim#15442] +[visit_exp i#76444] +[visit_id i#76444] +[visit_exp (`I16`_lanetype, `%`_dim{i#76451}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#76451}(8)] +[visit_exp i#76451] +[visit_id i#76451] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTMUL`_vextbinop__{half#524, sx#14056}(`LOW`_half, `S`_sx)] +[visit_exp half#524] +[visit_id half#524] +[visit_exp sx#14056] +[visit_id sx#14056] +[visit_exp (`LOW`_half, `S`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#76425}(188)] +[visit_exp i#76425] +[visit_id i#76425] +[visit_exp (188)] +[visit_exp 188] +[check_dims] Jnn#408 Jnn#412 dim#15665 dim#15677 half#558 i#76805 i#76812 i#76819 i#76824 i#76831 ishape_1#55 ishape_2#55 lanetype#15665 lanetype#15677 shape#2846 shape#2858 sx#14090 +dims \ = Jnn#408, Jnn#412, dim#15665, dim#15677, half#558, i#76805, i#76812, i#76819, i#76824, i#76831, ishape_1#55, ishape_2#55, lanetype#15665, lanetype#15677, shape#2846, shape#2858, sx#14090 +[visit_exp `VEXTBINOP`_instr{ishape_1#55, ishape_2#55}(`%`_ishape{shape#2846, Jnn#408}(`%X%`_shape{lanetype#15665, dim#15665, i#76812}(`I32`_lanetype, `%`_dim{i#76819}(4))), `%`_ishape{shape#2858, Jnn#412}(`%X%`_shape{lanetype#15677, dim#15677, i#76824}(`I16`_lanetype, `%`_dim{i#76831}(8))), `EXTMUL`_vextbinop__{half#558, sx#14090}(`HIGH`_half, `S`_sx))] +[visit_exp ishape_1#55] +[visit_id ishape_1#55] +[visit_exp ishape_2#55] +[visit_id ishape_2#55] +[visit_exp (`%`_ishape{shape#2846, Jnn#408}(`%X%`_shape{lanetype#15665, dim#15665, i#76812}(`I32`_lanetype, `%`_dim{i#76819}(4))), `%`_ishape{shape#2858, Jnn#412}(`%X%`_shape{lanetype#15677, dim#15677, i#76824}(`I16`_lanetype, `%`_dim{i#76831}(8))), `EXTMUL`_vextbinop__{half#558, sx#14090}(`HIGH`_half, `S`_sx))] +[visit_exp `%`_ishape{shape#2846, Jnn#408}(`%X%`_shape{lanetype#15665, dim#15665, i#76812}(`I32`_lanetype, `%`_dim{i#76819}(4)))] +[visit_exp shape#2846] +[visit_id shape#2846] +[visit_exp Jnn#408] +[visit_id Jnn#408] +[visit_exp (`%X%`_shape{lanetype#15665, dim#15665, i#76812}(`I32`_lanetype, `%`_dim{i#76819}(4)))] +[visit_exp `%X%`_shape{lanetype#15665, dim#15665, i#76812}(`I32`_lanetype, `%`_dim{i#76819}(4))] +[visit_exp lanetype#15665] +[visit_id lanetype#15665] +[visit_exp dim#15665] +[visit_id dim#15665] +[visit_exp i#76812] +[visit_id i#76812] +[visit_exp (`I32`_lanetype, `%`_dim{i#76819}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#76819}(4)] +[visit_exp i#76819] +[visit_id i#76819] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#2858, Jnn#412}(`%X%`_shape{lanetype#15677, dim#15677, i#76824}(`I16`_lanetype, `%`_dim{i#76831}(8)))] +[visit_exp shape#2858] +[visit_id shape#2858] +[visit_exp Jnn#412] +[visit_id Jnn#412] +[visit_exp (`%X%`_shape{lanetype#15677, dim#15677, i#76824}(`I16`_lanetype, `%`_dim{i#76831}(8)))] +[visit_exp `%X%`_shape{lanetype#15677, dim#15677, i#76824}(`I16`_lanetype, `%`_dim{i#76831}(8))] +[visit_exp lanetype#15677] +[visit_id lanetype#15677] +[visit_exp dim#15677] +[visit_id dim#15677] +[visit_exp i#76824] +[visit_id i#76824] +[visit_exp (`I16`_lanetype, `%`_dim{i#76831}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#76831}(8)] +[visit_exp i#76831] +[visit_id i#76831] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTMUL`_vextbinop__{half#558, sx#14090}(`HIGH`_half, `S`_sx)] +[visit_exp half#558] +[visit_id half#558] +[visit_exp sx#14090] +[visit_id sx#14090] +[visit_exp (`HIGH`_half, `S`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#76805}(189)] +[visit_exp i#76805] +[visit_id i#76805] +[visit_exp (189)] +[visit_exp 189] +[check_dims] Jnn#416 Jnn#420 dim#15900 dim#15912 half#592 i#77185 i#77192 i#77199 i#77204 i#77211 ishape_1#57 ishape_2#57 lanetype#15900 lanetype#15912 shape#2961 shape#2973 sx#14124 +dims \ = Jnn#416, Jnn#420, dim#15900, dim#15912, half#592, i#77185, i#77192, i#77199, i#77204, i#77211, ishape_1#57, ishape_2#57, lanetype#15900, lanetype#15912, shape#2961, shape#2973, sx#14124 +[visit_exp `VEXTBINOP`_instr{ishape_1#57, ishape_2#57}(`%`_ishape{shape#2961, Jnn#416}(`%X%`_shape{lanetype#15900, dim#15900, i#77192}(`I32`_lanetype, `%`_dim{i#77199}(4))), `%`_ishape{shape#2973, Jnn#420}(`%X%`_shape{lanetype#15912, dim#15912, i#77204}(`I16`_lanetype, `%`_dim{i#77211}(8))), `EXTMUL`_vextbinop__{half#592, sx#14124}(`LOW`_half, `U`_sx))] +[visit_exp ishape_1#57] +[visit_id ishape_1#57] +[visit_exp ishape_2#57] +[visit_id ishape_2#57] +[visit_exp (`%`_ishape{shape#2961, Jnn#416}(`%X%`_shape{lanetype#15900, dim#15900, i#77192}(`I32`_lanetype, `%`_dim{i#77199}(4))), `%`_ishape{shape#2973, Jnn#420}(`%X%`_shape{lanetype#15912, dim#15912, i#77204}(`I16`_lanetype, `%`_dim{i#77211}(8))), `EXTMUL`_vextbinop__{half#592, sx#14124}(`LOW`_half, `U`_sx))] +[visit_exp `%`_ishape{shape#2961, Jnn#416}(`%X%`_shape{lanetype#15900, dim#15900, i#77192}(`I32`_lanetype, `%`_dim{i#77199}(4)))] +[visit_exp shape#2961] +[visit_id shape#2961] +[visit_exp Jnn#416] +[visit_id Jnn#416] +[visit_exp (`%X%`_shape{lanetype#15900, dim#15900, i#77192}(`I32`_lanetype, `%`_dim{i#77199}(4)))] +[visit_exp `%X%`_shape{lanetype#15900, dim#15900, i#77192}(`I32`_lanetype, `%`_dim{i#77199}(4))] +[visit_exp lanetype#15900] +[visit_id lanetype#15900] +[visit_exp dim#15900] +[visit_id dim#15900] +[visit_exp i#77192] +[visit_id i#77192] +[visit_exp (`I32`_lanetype, `%`_dim{i#77199}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#77199}(4)] +[visit_exp i#77199] +[visit_id i#77199] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#2973, Jnn#420}(`%X%`_shape{lanetype#15912, dim#15912, i#77204}(`I16`_lanetype, `%`_dim{i#77211}(8)))] +[visit_exp shape#2973] +[visit_id shape#2973] +[visit_exp Jnn#420] +[visit_id Jnn#420] +[visit_exp (`%X%`_shape{lanetype#15912, dim#15912, i#77204}(`I16`_lanetype, `%`_dim{i#77211}(8)))] +[visit_exp `%X%`_shape{lanetype#15912, dim#15912, i#77204}(`I16`_lanetype, `%`_dim{i#77211}(8))] +[visit_exp lanetype#15912] +[visit_id lanetype#15912] +[visit_exp dim#15912] +[visit_id dim#15912] +[visit_exp i#77204] +[visit_id i#77204] +[visit_exp (`I16`_lanetype, `%`_dim{i#77211}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#77211}(8)] +[visit_exp i#77211] +[visit_id i#77211] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTMUL`_vextbinop__{half#592, sx#14124}(`LOW`_half, `U`_sx)] +[visit_exp half#592] +[visit_id half#592] +[visit_exp sx#14124] +[visit_id sx#14124] +[visit_exp (`LOW`_half, `U`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#77185}(190)] +[visit_exp i#77185] +[visit_id i#77185] +[visit_exp (190)] +[visit_exp 190] +[check_dims] Jnn#424 Jnn#428 dim#16135 dim#16147 half#626 i#77565 i#77572 i#77579 i#77584 i#77591 ishape_1#59 ishape_2#59 lanetype#16135 lanetype#16147 shape#3076 shape#3088 sx#14158 +dims \ = Jnn#424, Jnn#428, dim#16135, dim#16147, half#626, i#77565, i#77572, i#77579, i#77584, i#77591, ishape_1#59, ishape_2#59, lanetype#16135, lanetype#16147, shape#3076, shape#3088, sx#14158 +[visit_exp `VEXTBINOP`_instr{ishape_1#59, ishape_2#59}(`%`_ishape{shape#3076, Jnn#424}(`%X%`_shape{lanetype#16135, dim#16135, i#77572}(`I32`_lanetype, `%`_dim{i#77579}(4))), `%`_ishape{shape#3088, Jnn#428}(`%X%`_shape{lanetype#16147, dim#16147, i#77584}(`I16`_lanetype, `%`_dim{i#77591}(8))), `EXTMUL`_vextbinop__{half#626, sx#14158}(`HIGH`_half, `U`_sx))] +[visit_exp ishape_1#59] +[visit_id ishape_1#59] +[visit_exp ishape_2#59] +[visit_id ishape_2#59] +[visit_exp (`%`_ishape{shape#3076, Jnn#424}(`%X%`_shape{lanetype#16135, dim#16135, i#77572}(`I32`_lanetype, `%`_dim{i#77579}(4))), `%`_ishape{shape#3088, Jnn#428}(`%X%`_shape{lanetype#16147, dim#16147, i#77584}(`I16`_lanetype, `%`_dim{i#77591}(8))), `EXTMUL`_vextbinop__{half#626, sx#14158}(`HIGH`_half, `U`_sx))] +[visit_exp `%`_ishape{shape#3076, Jnn#424}(`%X%`_shape{lanetype#16135, dim#16135, i#77572}(`I32`_lanetype, `%`_dim{i#77579}(4)))] +[visit_exp shape#3076] +[visit_id shape#3076] +[visit_exp Jnn#424] +[visit_id Jnn#424] +[visit_exp (`%X%`_shape{lanetype#16135, dim#16135, i#77572}(`I32`_lanetype, `%`_dim{i#77579}(4)))] +[visit_exp `%X%`_shape{lanetype#16135, dim#16135, i#77572}(`I32`_lanetype, `%`_dim{i#77579}(4))] +[visit_exp lanetype#16135] +[visit_id lanetype#16135] +[visit_exp dim#16135] +[visit_id dim#16135] +[visit_exp i#77572] +[visit_id i#77572] +[visit_exp (`I32`_lanetype, `%`_dim{i#77579}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#77579}(4)] +[visit_exp i#77579] +[visit_id i#77579] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#3088, Jnn#428}(`%X%`_shape{lanetype#16147, dim#16147, i#77584}(`I16`_lanetype, `%`_dim{i#77591}(8)))] +[visit_exp shape#3088] +[visit_id shape#3088] +[visit_exp Jnn#428] +[visit_id Jnn#428] +[visit_exp (`%X%`_shape{lanetype#16147, dim#16147, i#77584}(`I16`_lanetype, `%`_dim{i#77591}(8)))] +[visit_exp `%X%`_shape{lanetype#16147, dim#16147, i#77584}(`I16`_lanetype, `%`_dim{i#77591}(8))] +[visit_exp lanetype#16147] +[visit_id lanetype#16147] +[visit_exp dim#16147] +[visit_id dim#16147] +[visit_exp i#77584] +[visit_id i#77584] +[visit_exp (`I16`_lanetype, `%`_dim{i#77591}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#77591}(8)] +[visit_exp i#77591] +[visit_id i#77591] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTMUL`_vextbinop__{half#626, sx#14158}(`HIGH`_half, `U`_sx)] +[visit_exp half#626] +[visit_id half#626] +[visit_exp sx#14158] +[visit_id sx#14158] +[visit_exp (`HIGH`_half, `U`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#77565}(191)] +[visit_exp i#77565] +[visit_id i#77565] +[visit_exp (191)] +[visit_exp 191] +ps' = +[check_dims] +[check_dims] Jnn#432 Jnn#436 dim#16370 dim#16382 i#77945 i#77952 i#77959 i#77964 i#77971 ishape_1#61 ishape_2#61 lanetype#16370 lanetype#16382 shape#3191 shape#3203 +dims \ = Jnn#432, Jnn#436, dim#16370, dim#16382, i#77945, i#77952, i#77959, i#77964, i#77971, ishape_1#61, ishape_2#61, lanetype#16370, lanetype#16382, shape#3191, shape#3203 +[visit_exp `VEXTTERNOP`_instr{ishape_1#61, ishape_2#61}(`%`_ishape{shape#3191, Jnn#432}(`%X%`_shape{lanetype#16370, dim#16370, i#77952}(`I32`_lanetype, `%`_dim{i#77959}(4))), `%`_ishape{shape#3203, Jnn#436}(`%X%`_shape{lanetype#16382, dim#16382, i#77964}(`I16`_lanetype, `%`_dim{i#77971}(8))), `RELAXED_DOT_ADDS`_vextternop__)] +[visit_exp ishape_1#61] +[visit_id ishape_1#61] +[visit_exp ishape_2#61] +[visit_id ishape_2#61] +[visit_exp (`%`_ishape{shape#3191, Jnn#432}(`%X%`_shape{lanetype#16370, dim#16370, i#77952}(`I32`_lanetype, `%`_dim{i#77959}(4))), `%`_ishape{shape#3203, Jnn#436}(`%X%`_shape{lanetype#16382, dim#16382, i#77964}(`I16`_lanetype, `%`_dim{i#77971}(8))), `RELAXED_DOT_ADDS`_vextternop__)] +[visit_exp `%`_ishape{shape#3191, Jnn#432}(`%X%`_shape{lanetype#16370, dim#16370, i#77952}(`I32`_lanetype, `%`_dim{i#77959}(4)))] +[visit_exp shape#3191] +[visit_id shape#3191] +[visit_exp Jnn#432] +[visit_id Jnn#432] +[visit_exp (`%X%`_shape{lanetype#16370, dim#16370, i#77952}(`I32`_lanetype, `%`_dim{i#77959}(4)))] +[visit_exp `%X%`_shape{lanetype#16370, dim#16370, i#77952}(`I32`_lanetype, `%`_dim{i#77959}(4))] +[visit_exp lanetype#16370] +[visit_id lanetype#16370] +[visit_exp dim#16370] +[visit_id dim#16370] +[visit_exp i#77952] +[visit_id i#77952] +[visit_exp (`I32`_lanetype, `%`_dim{i#77959}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#77959}(4)] +[visit_exp i#77959] +[visit_id i#77959] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#3203, Jnn#436}(`%X%`_shape{lanetype#16382, dim#16382, i#77964}(`I16`_lanetype, `%`_dim{i#77971}(8)))] +[visit_exp shape#3203] +[visit_id shape#3203] +[visit_exp Jnn#436] +[visit_id Jnn#436] +[visit_exp (`%X%`_shape{lanetype#16382, dim#16382, i#77964}(`I16`_lanetype, `%`_dim{i#77971}(8)))] +[visit_exp `%X%`_shape{lanetype#16382, dim#16382, i#77964}(`I16`_lanetype, `%`_dim{i#77971}(8))] +[visit_exp lanetype#16382] +[visit_id lanetype#16382] +[visit_exp dim#16382] +[visit_id dim#16382] +[visit_exp i#77964] +[visit_id i#77964] +[visit_exp (`I16`_lanetype, `%`_dim{i#77971}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#77971}(8)] +[visit_exp i#77971] +[visit_id i#77971] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `RELAXED_DOT_ADDS`_vextternop__] +[visit_exp ()] +[visit_exp `%`_u32{i#77945}(275)] +[visit_exp i#77945] +[visit_id i#77945] +[visit_exp (275)] +[visit_exp 275] +ps' = +[check_dims] +[check_dims] dim#16605 i#78325 i#78332 i#78339 lanetype#16605 shape#3296 +dims \ = dim#16605, i#78325, i#78332, i#78339, lanetype#16605, shape#3296 +[visit_exp `VUNOP`_instr{shape#3296}(`%X%`_shape{lanetype#16605, dim#16605, i#78332}(`I64`_lanetype, `%`_dim{i#78339}(2)), `ABS`_vunop_)] +[visit_exp shape#3296] +[visit_id shape#3296] +[visit_exp (`%X%`_shape{lanetype#16605, dim#16605, i#78332}(`I64`_lanetype, `%`_dim{i#78339}(2)), `ABS`_vunop_)] +[visit_exp `%X%`_shape{lanetype#16605, dim#16605, i#78332}(`I64`_lanetype, `%`_dim{i#78339}(2))] +[visit_exp lanetype#16605] +[visit_id lanetype#16605] +[visit_exp dim#16605] +[visit_id dim#16605] +[visit_exp i#78332] +[visit_id i#78332] +[visit_exp (`I64`_lanetype, `%`_dim{i#78339}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#78339}(2)] +[visit_exp i#78339] +[visit_id i#78339] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#78325}(192)] +[visit_exp i#78325] +[visit_id i#78325] +[visit_exp (192)] +[visit_exp 192] +[check_dims] dim#16632 i#78407 i#78414 i#78421 lanetype#16632 shape#3298 +dims \ = dim#16632, i#78407, i#78414, i#78421, lanetype#16632, shape#3298 +[visit_exp `VUNOP`_instr{shape#3298}(`%X%`_shape{lanetype#16632, dim#16632, i#78414}(`I64`_lanetype, `%`_dim{i#78421}(2)), `NEG`_vunop_)] +[visit_exp shape#3298] +[visit_id shape#3298] +[visit_exp (`%X%`_shape{lanetype#16632, dim#16632, i#78414}(`I64`_lanetype, `%`_dim{i#78421}(2)), `NEG`_vunop_)] +[visit_exp `%X%`_shape{lanetype#16632, dim#16632, i#78414}(`I64`_lanetype, `%`_dim{i#78421}(2))] +[visit_exp lanetype#16632] +[visit_id lanetype#16632] +[visit_exp dim#16632] +[visit_id dim#16632] +[visit_exp i#78414] +[visit_id i#78414] +[visit_exp (`I64`_lanetype, `%`_dim{i#78421}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#78421}(2)] +[visit_exp i#78421] +[visit_id i#78421] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#78407}(193)] +[visit_exp i#78407] +[visit_id i#78407] +[visit_exp (193)] +[visit_exp 193] +ps' = +[check_dims] +[check_dims] dim#16659 i#78489 i#78496 i#78503 lanetype#16659 shape#3300 +dims \ = dim#16659, i#78489, i#78496, i#78503, lanetype#16659, shape#3300 +[visit_exp `VTESTOP`_instr{shape#3300}(`%X%`_shape{lanetype#16659, dim#16659, i#78496}(`I64`_lanetype, `%`_dim{i#78503}(2)), `ALL_TRUE`_vtestop_)] +[visit_exp shape#3300] +[visit_id shape#3300] +[visit_exp (`%X%`_shape{lanetype#16659, dim#16659, i#78496}(`I64`_lanetype, `%`_dim{i#78503}(2)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape{lanetype#16659, dim#16659, i#78496}(`I64`_lanetype, `%`_dim{i#78503}(2))] +[visit_exp lanetype#16659] +[visit_id lanetype#16659] +[visit_exp dim#16659] +[visit_id dim#16659] +[visit_exp i#78496] +[visit_id i#78496] +[visit_exp (`I64`_lanetype, `%`_dim{i#78503}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#78503}(2)] +[visit_exp i#78503] +[visit_id i#78503] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `ALL_TRUE`_vtestop_] +[visit_exp ()] +[visit_exp `%`_u32{i#78489}(195)] +[visit_exp i#78489] +[visit_id i#78489] +[visit_exp (195)] +[visit_exp 195] +ps' = +[check_dims] +[check_dims] Jnn#440 dim#16686 i#78571 i#78578 i#78585 ishape#37 lanetype#16686 shape#3312 +dims \ = Jnn#440, dim#16686, i#78571, i#78578, i#78585, ishape#37, lanetype#16686, shape#3312 +[visit_exp `VBITMASK`_instr{ishape#37}(`%`_ishape{shape#3312, Jnn#440}(`%X%`_shape{lanetype#16686, dim#16686, i#78578}(`I64`_lanetype, `%`_dim{i#78585}(2))))] +[visit_exp ishape#37] +[visit_id ishape#37] +[visit_exp (`%`_ishape{shape#3312, Jnn#440}(`%X%`_shape{lanetype#16686, dim#16686, i#78578}(`I64`_lanetype, `%`_dim{i#78585}(2))))] +[visit_exp `%`_ishape{shape#3312, Jnn#440}(`%X%`_shape{lanetype#16686, dim#16686, i#78578}(`I64`_lanetype, `%`_dim{i#78585}(2)))] +[visit_exp shape#3312] +[visit_id shape#3312] +[visit_exp Jnn#440] +[visit_id Jnn#440] +[visit_exp (`%X%`_shape{lanetype#16686, dim#16686, i#78578}(`I64`_lanetype, `%`_dim{i#78585}(2)))] +[visit_exp `%X%`_shape{lanetype#16686, dim#16686, i#78578}(`I64`_lanetype, `%`_dim{i#78585}(2))] +[visit_exp lanetype#16686] +[visit_id lanetype#16686] +[visit_exp dim#16686] +[visit_id dim#16686] +[visit_exp i#78578] +[visit_id i#78578] +[visit_exp (`I64`_lanetype, `%`_dim{i#78585}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#78585}(2)] +[visit_exp i#78585] +[visit_id i#78585] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%`_u32{i#78571}(196)] +[visit_exp i#78571] +[visit_id i#78571] +[visit_exp (196)] +[visit_exp 196] +ps' = +[check_dims] +[check_dims] dim#16698 dim#16710 half#660 i#78608 i#78615 i#78622 i#78627 i#78634 lanetype#16698 lanetype#16710 shape_1#23 shape_2#23 sx#14192 +dims \ = dim#16698, dim#16710, half#660, i#78608, i#78615, i#78622, i#78627, i#78634, lanetype#16698, lanetype#16710, shape_1#23, shape_2#23, sx#14192 +[visit_exp `VCVTOP`_instr{shape_1#23, shape_2#23}(`%X%`_shape{lanetype#16698, dim#16698, i#78615}(`I64`_lanetype, `%`_dim{i#78622}(2)), `%X%`_shape{lanetype#16710, dim#16710, i#78627}(`I32`_lanetype, `%`_dim{i#78634}(4)), `EXTEND`_vcvtop__{half#660, sx#14192}(`LOW`_half, `S`_sx))] +[visit_exp shape_1#23] +[visit_id shape_1#23] +[visit_exp shape_2#23] +[visit_id shape_2#23] +[visit_exp (`%X%`_shape{lanetype#16698, dim#16698, i#78615}(`I64`_lanetype, `%`_dim{i#78622}(2)), `%X%`_shape{lanetype#16710, dim#16710, i#78627}(`I32`_lanetype, `%`_dim{i#78634}(4)), `EXTEND`_vcvtop__{half#660, sx#14192}(`LOW`_half, `S`_sx))] +[visit_exp `%X%`_shape{lanetype#16698, dim#16698, i#78615}(`I64`_lanetype, `%`_dim{i#78622}(2))] +[visit_exp lanetype#16698] +[visit_id lanetype#16698] +[visit_exp dim#16698] +[visit_id dim#16698] +[visit_exp i#78615] +[visit_id i#78615] +[visit_exp (`I64`_lanetype, `%`_dim{i#78622}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#78622}(2)] +[visit_exp i#78622] +[visit_id i#78622] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#16710, dim#16710, i#78627}(`I32`_lanetype, `%`_dim{i#78634}(4))] +[visit_exp lanetype#16710] +[visit_id lanetype#16710] +[visit_exp dim#16710] +[visit_id dim#16710] +[visit_exp i#78627] +[visit_id i#78627] +[visit_exp (`I32`_lanetype, `%`_dim{i#78634}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#78634}(4)] +[visit_exp i#78634] +[visit_id i#78634] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTEND`_vcvtop__{half#660, sx#14192}(`LOW`_half, `S`_sx)] +[visit_exp half#660] +[visit_id half#660] +[visit_exp sx#14192] +[visit_id sx#14192] +[visit_exp (`LOW`_half, `S`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#78608}(199)] +[visit_exp i#78608] +[visit_id i#78608] +[visit_exp (199)] +[visit_exp 199] +[check_dims] dim#16813 dim#16825 half#694 i#78868 i#78875 i#78882 i#78887 i#78894 lanetype#16813 lanetype#16825 shape_1#25 shape_2#25 sx#14226 +dims \ = dim#16813, dim#16825, half#694, i#78868, i#78875, i#78882, i#78887, i#78894, lanetype#16813, lanetype#16825, shape_1#25, shape_2#25, sx#14226 +[visit_exp `VCVTOP`_instr{shape_1#25, shape_2#25}(`%X%`_shape{lanetype#16813, dim#16813, i#78875}(`I64`_lanetype, `%`_dim{i#78882}(2)), `%X%`_shape{lanetype#16825, dim#16825, i#78887}(`I32`_lanetype, `%`_dim{i#78894}(4)), `EXTEND`_vcvtop__{half#694, sx#14226}(`HIGH`_half, `S`_sx))] +[visit_exp shape_1#25] +[visit_id shape_1#25] +[visit_exp shape_2#25] +[visit_id shape_2#25] +[visit_exp (`%X%`_shape{lanetype#16813, dim#16813, i#78875}(`I64`_lanetype, `%`_dim{i#78882}(2)), `%X%`_shape{lanetype#16825, dim#16825, i#78887}(`I32`_lanetype, `%`_dim{i#78894}(4)), `EXTEND`_vcvtop__{half#694, sx#14226}(`HIGH`_half, `S`_sx))] +[visit_exp `%X%`_shape{lanetype#16813, dim#16813, i#78875}(`I64`_lanetype, `%`_dim{i#78882}(2))] +[visit_exp lanetype#16813] +[visit_id lanetype#16813] +[visit_exp dim#16813] +[visit_id dim#16813] +[visit_exp i#78875] +[visit_id i#78875] +[visit_exp (`I64`_lanetype, `%`_dim{i#78882}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#78882}(2)] +[visit_exp i#78882] +[visit_id i#78882] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#16825, dim#16825, i#78887}(`I32`_lanetype, `%`_dim{i#78894}(4))] +[visit_exp lanetype#16825] +[visit_id lanetype#16825] +[visit_exp dim#16825] +[visit_id dim#16825] +[visit_exp i#78887] +[visit_id i#78887] +[visit_exp (`I32`_lanetype, `%`_dim{i#78894}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#78894}(4)] +[visit_exp i#78894] +[visit_id i#78894] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTEND`_vcvtop__{half#694, sx#14226}(`HIGH`_half, `S`_sx)] +[visit_exp half#694] +[visit_id half#694] +[visit_exp sx#14226] +[visit_id sx#14226] +[visit_exp (`HIGH`_half, `S`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#78868}(200)] +[visit_exp i#78868] +[visit_id i#78868] +[visit_exp (200)] +[visit_exp 200] +[check_dims] dim#16928 dim#16940 half#728 i#79128 i#79135 i#79142 i#79147 i#79154 lanetype#16928 lanetype#16940 shape_1#27 shape_2#27 sx#14260 +dims \ = dim#16928, dim#16940, half#728, i#79128, i#79135, i#79142, i#79147, i#79154, lanetype#16928, lanetype#16940, shape_1#27, shape_2#27, sx#14260 +[visit_exp `VCVTOP`_instr{shape_1#27, shape_2#27}(`%X%`_shape{lanetype#16928, dim#16928, i#79135}(`I64`_lanetype, `%`_dim{i#79142}(2)), `%X%`_shape{lanetype#16940, dim#16940, i#79147}(`I32`_lanetype, `%`_dim{i#79154}(4)), `EXTEND`_vcvtop__{half#728, sx#14260}(`LOW`_half, `U`_sx))] +[visit_exp shape_1#27] +[visit_id shape_1#27] +[visit_exp shape_2#27] +[visit_id shape_2#27] +[visit_exp (`%X%`_shape{lanetype#16928, dim#16928, i#79135}(`I64`_lanetype, `%`_dim{i#79142}(2)), `%X%`_shape{lanetype#16940, dim#16940, i#79147}(`I32`_lanetype, `%`_dim{i#79154}(4)), `EXTEND`_vcvtop__{half#728, sx#14260}(`LOW`_half, `U`_sx))] +[visit_exp `%X%`_shape{lanetype#16928, dim#16928, i#79135}(`I64`_lanetype, `%`_dim{i#79142}(2))] +[visit_exp lanetype#16928] +[visit_id lanetype#16928] +[visit_exp dim#16928] +[visit_id dim#16928] +[visit_exp i#79135] +[visit_id i#79135] +[visit_exp (`I64`_lanetype, `%`_dim{i#79142}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#79142}(2)] +[visit_exp i#79142] +[visit_id i#79142] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#16940, dim#16940, i#79147}(`I32`_lanetype, `%`_dim{i#79154}(4))] +[visit_exp lanetype#16940] +[visit_id lanetype#16940] +[visit_exp dim#16940] +[visit_id dim#16940] +[visit_exp i#79147] +[visit_id i#79147] +[visit_exp (`I32`_lanetype, `%`_dim{i#79154}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#79154}(4)] +[visit_exp i#79154] +[visit_id i#79154] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTEND`_vcvtop__{half#728, sx#14260}(`LOW`_half, `U`_sx)] +[visit_exp half#728] +[visit_id half#728] +[visit_exp sx#14260] +[visit_id sx#14260] +[visit_exp (`LOW`_half, `U`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#79128}(201)] +[visit_exp i#79128] +[visit_id i#79128] +[visit_exp (201)] +[visit_exp 201] +[check_dims] dim#17043 dim#17055 half#762 i#79388 i#79395 i#79402 i#79407 i#79414 lanetype#17043 lanetype#17055 shape_1#29 shape_2#29 sx#14294 +dims \ = dim#17043, dim#17055, half#762, i#79388, i#79395, i#79402, i#79407, i#79414, lanetype#17043, lanetype#17055, shape_1#29, shape_2#29, sx#14294 +[visit_exp `VCVTOP`_instr{shape_1#29, shape_2#29}(`%X%`_shape{lanetype#17043, dim#17043, i#79395}(`I64`_lanetype, `%`_dim{i#79402}(2)), `%X%`_shape{lanetype#17055, dim#17055, i#79407}(`I32`_lanetype, `%`_dim{i#79414}(4)), `EXTEND`_vcvtop__{half#762, sx#14294}(`HIGH`_half, `U`_sx))] +[visit_exp shape_1#29] +[visit_id shape_1#29] +[visit_exp shape_2#29] +[visit_id shape_2#29] +[visit_exp (`%X%`_shape{lanetype#17043, dim#17043, i#79395}(`I64`_lanetype, `%`_dim{i#79402}(2)), `%X%`_shape{lanetype#17055, dim#17055, i#79407}(`I32`_lanetype, `%`_dim{i#79414}(4)), `EXTEND`_vcvtop__{half#762, sx#14294}(`HIGH`_half, `U`_sx))] +[visit_exp `%X%`_shape{lanetype#17043, dim#17043, i#79395}(`I64`_lanetype, `%`_dim{i#79402}(2))] +[visit_exp lanetype#17043] +[visit_id lanetype#17043] +[visit_exp dim#17043] +[visit_id dim#17043] +[visit_exp i#79395] +[visit_id i#79395] +[visit_exp (`I64`_lanetype, `%`_dim{i#79402}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#79402}(2)] +[visit_exp i#79402] +[visit_id i#79402] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#17055, dim#17055, i#79407}(`I32`_lanetype, `%`_dim{i#79414}(4))] +[visit_exp lanetype#17055] +[visit_id lanetype#17055] +[visit_exp dim#17055] +[visit_id dim#17055] +[visit_exp i#79407] +[visit_id i#79407] +[visit_exp (`I32`_lanetype, `%`_dim{i#79414}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#79414}(4)] +[visit_exp i#79414] +[visit_id i#79414] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTEND`_vcvtop__{half#762, sx#14294}(`HIGH`_half, `U`_sx)] +[visit_exp half#762] +[visit_id half#762] +[visit_exp sx#14294] +[visit_id sx#14294] +[visit_exp (`HIGH`_half, `U`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#79388}(202)] +[visit_exp i#79388] +[visit_id i#79388] +[visit_exp (202)] +[visit_exp 202] +ps' = +[check_dims] +[check_dims] Jnn#444 dim#17158 i#79648 i#79655 i#79662 ishape#39 lanetype#17158 shape#3324 +dims \ = Jnn#444, dim#17158, i#79648, i#79655, i#79662, ishape#39, lanetype#17158, shape#3324 +[visit_exp `VSHIFTOP`_instr{ishape#39}(`%`_ishape{shape#3324, Jnn#444}(`%X%`_shape{lanetype#17158, dim#17158, i#79655}(`I64`_lanetype, `%`_dim{i#79662}(2))), `SHL`_vshiftop_)] +[visit_exp ishape#39] +[visit_id ishape#39] +[visit_exp (`%`_ishape{shape#3324, Jnn#444}(`%X%`_shape{lanetype#17158, dim#17158, i#79655}(`I64`_lanetype, `%`_dim{i#79662}(2))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape{shape#3324, Jnn#444}(`%X%`_shape{lanetype#17158, dim#17158, i#79655}(`I64`_lanetype, `%`_dim{i#79662}(2)))] +[visit_exp shape#3324] +[visit_id shape#3324] +[visit_exp Jnn#444] +[visit_id Jnn#444] +[visit_exp (`%X%`_shape{lanetype#17158, dim#17158, i#79655}(`I64`_lanetype, `%`_dim{i#79662}(2)))] +[visit_exp `%X%`_shape{lanetype#17158, dim#17158, i#79655}(`I64`_lanetype, `%`_dim{i#79662}(2))] +[visit_exp lanetype#17158] +[visit_id lanetype#17158] +[visit_exp dim#17158] +[visit_id dim#17158] +[visit_exp i#79655] +[visit_id i#79655] +[visit_exp (`I64`_lanetype, `%`_dim{i#79662}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#79662}(2)] +[visit_exp i#79662] +[visit_id i#79662] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `SHL`_vshiftop_] +[visit_exp ()] +[visit_exp `%`_u32{i#79648}(203)] +[visit_exp i#79648] +[visit_id i#79648] +[visit_exp (203)] +[visit_exp 203] +[check_dims] Jnn#448 dim#17215 i#79760 i#79767 i#79774 ishape#41 lanetype#17215 shape#3351 sx#14328 +dims \ = Jnn#448, dim#17215, i#79760, i#79767, i#79774, ishape#41, lanetype#17215, shape#3351, sx#14328 +[visit_exp `VSHIFTOP`_instr{ishape#41}(`%`_ishape{shape#3351, Jnn#448}(`%X%`_shape{lanetype#17215, dim#17215, i#79767}(`I64`_lanetype, `%`_dim{i#79774}(2))), `SHR`_vshiftop_{sx#14328}(`S`_sx))] +[visit_exp ishape#41] +[visit_id ishape#41] +[visit_exp (`%`_ishape{shape#3351, Jnn#448}(`%X%`_shape{lanetype#17215, dim#17215, i#79767}(`I64`_lanetype, `%`_dim{i#79774}(2))), `SHR`_vshiftop_{sx#14328}(`S`_sx))] +[visit_exp `%`_ishape{shape#3351, Jnn#448}(`%X%`_shape{lanetype#17215, dim#17215, i#79767}(`I64`_lanetype, `%`_dim{i#79774}(2)))] +[visit_exp shape#3351] +[visit_id shape#3351] +[visit_exp Jnn#448] +[visit_id Jnn#448] +[visit_exp (`%X%`_shape{lanetype#17215, dim#17215, i#79767}(`I64`_lanetype, `%`_dim{i#79774}(2)))] +[visit_exp `%X%`_shape{lanetype#17215, dim#17215, i#79767}(`I64`_lanetype, `%`_dim{i#79774}(2))] +[visit_exp lanetype#17215] +[visit_id lanetype#17215] +[visit_exp dim#17215] +[visit_id dim#17215] +[visit_exp i#79767] +[visit_id i#79767] +[visit_exp (`I64`_lanetype, `%`_dim{i#79774}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#79774}(2)] +[visit_exp i#79774] +[visit_id i#79774] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `SHR`_vshiftop_{sx#14328}(`S`_sx)] +[visit_exp sx#14328] +[visit_id sx#14328] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#79760}(204)] +[visit_exp i#79760] +[visit_id i#79760] +[visit_exp (204)] +[visit_exp 204] +[check_dims] Jnn#452 dim#17278 i#79882 i#79889 i#79896 ishape#43 lanetype#17278 shape#3380 sx#14347 +dims \ = Jnn#452, dim#17278, i#79882, i#79889, i#79896, ishape#43, lanetype#17278, shape#3380, sx#14347 +[visit_exp `VSHIFTOP`_instr{ishape#43}(`%`_ishape{shape#3380, Jnn#452}(`%X%`_shape{lanetype#17278, dim#17278, i#79889}(`I64`_lanetype, `%`_dim{i#79896}(2))), `SHR`_vshiftop_{sx#14347}(`U`_sx))] +[visit_exp ishape#43] +[visit_id ishape#43] +[visit_exp (`%`_ishape{shape#3380, Jnn#452}(`%X%`_shape{lanetype#17278, dim#17278, i#79889}(`I64`_lanetype, `%`_dim{i#79896}(2))), `SHR`_vshiftop_{sx#14347}(`U`_sx))] +[visit_exp `%`_ishape{shape#3380, Jnn#452}(`%X%`_shape{lanetype#17278, dim#17278, i#79889}(`I64`_lanetype, `%`_dim{i#79896}(2)))] +[visit_exp shape#3380] +[visit_id shape#3380] +[visit_exp Jnn#452] +[visit_id Jnn#452] +[visit_exp (`%X%`_shape{lanetype#17278, dim#17278, i#79889}(`I64`_lanetype, `%`_dim{i#79896}(2)))] +[visit_exp `%X%`_shape{lanetype#17278, dim#17278, i#79889}(`I64`_lanetype, `%`_dim{i#79896}(2))] +[visit_exp lanetype#17278] +[visit_id lanetype#17278] +[visit_exp dim#17278] +[visit_id dim#17278] +[visit_exp i#79889] +[visit_id i#79889] +[visit_exp (`I64`_lanetype, `%`_dim{i#79896}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#79896}(2)] +[visit_exp i#79896] +[visit_id i#79896] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `SHR`_vshiftop_{sx#14347}(`U`_sx)] +[visit_exp sx#14347] +[visit_id sx#14347] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#79882}(205)] +[visit_exp i#79882] +[visit_id i#79882] +[visit_exp (205)] +[visit_exp 205] +ps' = +[check_dims] +[check_dims] dim#17341 i#80004 i#80011 i#80018 lanetype#17341 shape#3399 +dims \ = dim#17341, i#80004, i#80011, i#80018, lanetype#17341, shape#3399 +[visit_exp `VBINOP`_instr{shape#3399}(`%X%`_shape{lanetype#17341, dim#17341, i#80011}(`I64`_lanetype, `%`_dim{i#80018}(2)), `ADD`_vbinop_)] +[visit_exp shape#3399] +[visit_id shape#3399] +[visit_exp (`%X%`_shape{lanetype#17341, dim#17341, i#80011}(`I64`_lanetype, `%`_dim{i#80018}(2)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#17341, dim#17341, i#80011}(`I64`_lanetype, `%`_dim{i#80018}(2))] +[visit_exp lanetype#17341] +[visit_id lanetype#17341] +[visit_exp dim#17341] +[visit_id dim#17341] +[visit_exp i#80011] +[visit_id i#80011] +[visit_exp (`I64`_lanetype, `%`_dim{i#80018}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#80018}(2)] +[visit_exp i#80018] +[visit_id i#80018] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#80004}(206)] +[visit_exp i#80004] +[visit_id i#80004] +[visit_exp (206)] +[visit_exp 206] +[check_dims] dim#17368 i#80086 i#80093 i#80100 lanetype#17368 shape#3401 +dims \ = dim#17368, i#80086, i#80093, i#80100, lanetype#17368, shape#3401 +[visit_exp `VBINOP`_instr{shape#3401}(`%X%`_shape{lanetype#17368, dim#17368, i#80093}(`I64`_lanetype, `%`_dim{i#80100}(2)), `SUB`_vbinop_)] +[visit_exp shape#3401] +[visit_id shape#3401] +[visit_exp (`%X%`_shape{lanetype#17368, dim#17368, i#80093}(`I64`_lanetype, `%`_dim{i#80100}(2)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#17368, dim#17368, i#80093}(`I64`_lanetype, `%`_dim{i#80100}(2))] +[visit_exp lanetype#17368] +[visit_id lanetype#17368] +[visit_exp dim#17368] +[visit_id dim#17368] +[visit_exp i#80093] +[visit_id i#80093] +[visit_exp (`I64`_lanetype, `%`_dim{i#80100}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#80100}(2)] +[visit_exp i#80100] +[visit_id i#80100] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#80086}(209)] +[visit_exp i#80086] +[visit_id i#80086] +[visit_exp (209)] +[visit_exp 209] +[check_dims] dim#17395 i#80168 i#80175 i#80182 lanetype#17395 shape#3403 +dims \ = dim#17395, i#80168, i#80175, i#80182, lanetype#17395, shape#3403 +[visit_exp `VBINOP`_instr{shape#3403}(`%X%`_shape{lanetype#17395, dim#17395, i#80175}(`I64`_lanetype, `%`_dim{i#80182}(2)), `MUL`_vbinop_)] +[visit_exp shape#3403] +[visit_id shape#3403] +[visit_exp (`%X%`_shape{lanetype#17395, dim#17395, i#80175}(`I64`_lanetype, `%`_dim{i#80182}(2)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#17395, dim#17395, i#80175}(`I64`_lanetype, `%`_dim{i#80182}(2))] +[visit_exp lanetype#17395] +[visit_id lanetype#17395] +[visit_exp dim#17395] +[visit_id dim#17395] +[visit_exp i#80175] +[visit_id i#80175] +[visit_exp (`I64`_lanetype, `%`_dim{i#80182}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#80182}(2)] +[visit_exp i#80182] +[visit_id i#80182] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `MUL`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#80168}(213)] +[visit_exp i#80168] +[visit_id i#80168] +[visit_exp (213)] +[visit_exp 213] +ps' = +[check_dims] +[check_dims] dim#17422 i#80250 i#80257 i#80264 lanetype#17422 shape#3405 +dims \ = dim#17422, i#80250, i#80257, i#80264, lanetype#17422, shape#3405 +[visit_exp `VRELOP`_instr{shape#3405}(`%X%`_shape{lanetype#17422, dim#17422, i#80257}(`I64`_lanetype, `%`_dim{i#80264}(2)), `EQ`_vrelop_)] +[visit_exp shape#3405] +[visit_id shape#3405] +[visit_exp (`%X%`_shape{lanetype#17422, dim#17422, i#80257}(`I64`_lanetype, `%`_dim{i#80264}(2)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#17422, dim#17422, i#80257}(`I64`_lanetype, `%`_dim{i#80264}(2))] +[visit_exp lanetype#17422] +[visit_id lanetype#17422] +[visit_exp dim#17422] +[visit_id dim#17422] +[visit_exp i#80257] +[visit_id i#80257] +[visit_exp (`I64`_lanetype, `%`_dim{i#80264}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#80264}(2)] +[visit_exp i#80264] +[visit_id i#80264] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#80250}(214)] +[visit_exp i#80250] +[visit_id i#80250] +[visit_exp (214)] +[visit_exp 214] +[check_dims] dim#17449 i#80332 i#80339 i#80346 lanetype#17449 shape#3407 +dims \ = dim#17449, i#80332, i#80339, i#80346, lanetype#17449, shape#3407 +[visit_exp `VRELOP`_instr{shape#3407}(`%X%`_shape{lanetype#17449, dim#17449, i#80339}(`I64`_lanetype, `%`_dim{i#80346}(2)), `NE`_vrelop_)] +[visit_exp shape#3407] +[visit_id shape#3407] +[visit_exp (`%X%`_shape{lanetype#17449, dim#17449, i#80339}(`I64`_lanetype, `%`_dim{i#80346}(2)), `NE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#17449, dim#17449, i#80339}(`I64`_lanetype, `%`_dim{i#80346}(2))] +[visit_exp lanetype#17449] +[visit_id lanetype#17449] +[visit_exp dim#17449] +[visit_id dim#17449] +[visit_exp i#80339] +[visit_id i#80339] +[visit_exp (`I64`_lanetype, `%`_dim{i#80346}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#80346}(2)] +[visit_exp i#80346] +[visit_id i#80346] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[visit_exp `%`_u32{i#80332}(215)] +[visit_exp i#80332] +[visit_id i#80332] +[visit_exp (215)] +[visit_exp 215] +[check_dims] dim#17476 i#80414 i#80421 i#80428 lanetype#17476 shape#3409 sx#14717 +dims \ = dim#17476, i#80414, i#80421, i#80428, lanetype#17476, shape#3409, sx#14717 +[visit_exp `VRELOP`_instr{shape#3409}(`%X%`_shape{lanetype#17476, dim#17476, i#80421}(`I64`_lanetype, `%`_dim{i#80428}(2)), `LT`_vrelop_{sx#14717}(`S`_sx))] +[visit_exp shape#3409] +[visit_id shape#3409] +[visit_exp (`%X%`_shape{lanetype#17476, dim#17476, i#80421}(`I64`_lanetype, `%`_dim{i#80428}(2)), `LT`_vrelop_{sx#14717}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#17476, dim#17476, i#80421}(`I64`_lanetype, `%`_dim{i#80428}(2))] +[visit_exp lanetype#17476] +[visit_id lanetype#17476] +[visit_exp dim#17476] +[visit_id dim#17476] +[visit_exp i#80421] +[visit_id i#80421] +[visit_exp (`I64`_lanetype, `%`_dim{i#80428}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#80428}(2)] +[visit_exp i#80428] +[visit_id i#80428] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `LT`_vrelop_{sx#14717}(`S`_sx)] +[visit_exp sx#14717] +[visit_id sx#14717] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#80414}(216)] +[visit_exp i#80414] +[visit_id i#80414] +[visit_exp (216)] +[visit_exp 216] +[check_dims] dim#17505 i#80502 i#80509 i#80516 lanetype#17505 shape#3411 sx#14787 +dims \ = dim#17505, i#80502, i#80509, i#80516, lanetype#17505, shape#3411, sx#14787 +[visit_exp `VRELOP`_instr{shape#3411}(`%X%`_shape{lanetype#17505, dim#17505, i#80509}(`I64`_lanetype, `%`_dim{i#80516}(2)), `GT`_vrelop_{sx#14787}(`S`_sx))] +[visit_exp shape#3411] +[visit_id shape#3411] +[visit_exp (`%X%`_shape{lanetype#17505, dim#17505, i#80509}(`I64`_lanetype, `%`_dim{i#80516}(2)), `GT`_vrelop_{sx#14787}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#17505, dim#17505, i#80509}(`I64`_lanetype, `%`_dim{i#80516}(2))] +[visit_exp lanetype#17505] +[visit_id lanetype#17505] +[visit_exp dim#17505] +[visit_id dim#17505] +[visit_exp i#80509] +[visit_id i#80509] +[visit_exp (`I64`_lanetype, `%`_dim{i#80516}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#80516}(2)] +[visit_exp i#80516] +[visit_id i#80516] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `GT`_vrelop_{sx#14787}(`S`_sx)] +[visit_exp sx#14787] +[visit_id sx#14787] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#80502}(217)] +[visit_exp i#80502] +[visit_id i#80502] +[visit_exp (217)] +[visit_exp 217] +[check_dims] dim#17534 i#80590 i#80597 i#80604 lanetype#17534 shape#3413 sx#14857 +dims \ = dim#17534, i#80590, i#80597, i#80604, lanetype#17534, shape#3413, sx#14857 +[visit_exp `VRELOP`_instr{shape#3413}(`%X%`_shape{lanetype#17534, dim#17534, i#80597}(`I64`_lanetype, `%`_dim{i#80604}(2)), `LE`_vrelop_{sx#14857}(`S`_sx))] +[visit_exp shape#3413] +[visit_id shape#3413] +[visit_exp (`%X%`_shape{lanetype#17534, dim#17534, i#80597}(`I64`_lanetype, `%`_dim{i#80604}(2)), `LE`_vrelop_{sx#14857}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#17534, dim#17534, i#80597}(`I64`_lanetype, `%`_dim{i#80604}(2))] +[visit_exp lanetype#17534] +[visit_id lanetype#17534] +[visit_exp dim#17534] +[visit_id dim#17534] +[visit_exp i#80597] +[visit_id i#80597] +[visit_exp (`I64`_lanetype, `%`_dim{i#80604}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#80604}(2)] +[visit_exp i#80604] +[visit_id i#80604] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `LE`_vrelop_{sx#14857}(`S`_sx)] +[visit_exp sx#14857] +[visit_id sx#14857] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#80590}(218)] +[visit_exp i#80590] +[visit_id i#80590] +[visit_exp (218)] +[visit_exp 218] +[check_dims] dim#17563 i#80678 i#80685 i#80692 lanetype#17563 shape#3415 sx#14927 +dims \ = dim#17563, i#80678, i#80685, i#80692, lanetype#17563, shape#3415, sx#14927 +[visit_exp `VRELOP`_instr{shape#3415}(`%X%`_shape{lanetype#17563, dim#17563, i#80685}(`I64`_lanetype, `%`_dim{i#80692}(2)), `GE`_vrelop_{sx#14927}(`S`_sx))] +[visit_exp shape#3415] +[visit_id shape#3415] +[visit_exp (`%X%`_shape{lanetype#17563, dim#17563, i#80685}(`I64`_lanetype, `%`_dim{i#80692}(2)), `GE`_vrelop_{sx#14927}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#17563, dim#17563, i#80685}(`I64`_lanetype, `%`_dim{i#80692}(2))] +[visit_exp lanetype#17563] +[visit_id lanetype#17563] +[visit_exp dim#17563] +[visit_id dim#17563] +[visit_exp i#80685] +[visit_id i#80685] +[visit_exp (`I64`_lanetype, `%`_dim{i#80692}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#80692}(2)] +[visit_exp i#80692] +[visit_id i#80692] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `GE`_vrelop_{sx#14927}(`S`_sx)] +[visit_exp sx#14927] +[visit_id sx#14927] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#80678}(219)] +[visit_exp i#80678] +[visit_id i#80678] +[visit_exp (219)] +[visit_exp 219] +ps' = +[check_dims] +[check_dims] Jnn#456 Jnn#460 dim#17592 dim#17604 half#796 i#80766 i#80773 i#80780 i#80785 i#80792 ishape_1#63 ishape_2#63 lanetype#17592 lanetype#17604 shape#3427 shape#3439 sx#14961 +dims \ = Jnn#456, Jnn#460, dim#17592, dim#17604, half#796, i#80766, i#80773, i#80780, i#80785, i#80792, ishape_1#63, ishape_2#63, lanetype#17592, lanetype#17604, shape#3427, shape#3439, sx#14961 +[visit_exp `VEXTBINOP`_instr{ishape_1#63, ishape_2#63}(`%`_ishape{shape#3427, Jnn#456}(`%X%`_shape{lanetype#17592, dim#17592, i#80773}(`I64`_lanetype, `%`_dim{i#80780}(2))), `%`_ishape{shape#3439, Jnn#460}(`%X%`_shape{lanetype#17604, dim#17604, i#80785}(`I32`_lanetype, `%`_dim{i#80792}(4))), `EXTMUL`_vextbinop__{half#796, sx#14961}(`LOW`_half, `S`_sx))] +[visit_exp ishape_1#63] +[visit_id ishape_1#63] +[visit_exp ishape_2#63] +[visit_id ishape_2#63] +[visit_exp (`%`_ishape{shape#3427, Jnn#456}(`%X%`_shape{lanetype#17592, dim#17592, i#80773}(`I64`_lanetype, `%`_dim{i#80780}(2))), `%`_ishape{shape#3439, Jnn#460}(`%X%`_shape{lanetype#17604, dim#17604, i#80785}(`I32`_lanetype, `%`_dim{i#80792}(4))), `EXTMUL`_vextbinop__{half#796, sx#14961}(`LOW`_half, `S`_sx))] +[visit_exp `%`_ishape{shape#3427, Jnn#456}(`%X%`_shape{lanetype#17592, dim#17592, i#80773}(`I64`_lanetype, `%`_dim{i#80780}(2)))] +[visit_exp shape#3427] +[visit_id shape#3427] +[visit_exp Jnn#456] +[visit_id Jnn#456] +[visit_exp (`%X%`_shape{lanetype#17592, dim#17592, i#80773}(`I64`_lanetype, `%`_dim{i#80780}(2)))] +[visit_exp `%X%`_shape{lanetype#17592, dim#17592, i#80773}(`I64`_lanetype, `%`_dim{i#80780}(2))] +[visit_exp lanetype#17592] +[visit_id lanetype#17592] +[visit_exp dim#17592] +[visit_id dim#17592] +[visit_exp i#80773] +[visit_id i#80773] +[visit_exp (`I64`_lanetype, `%`_dim{i#80780}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#80780}(2)] +[visit_exp i#80780] +[visit_id i#80780] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%`_ishape{shape#3439, Jnn#460}(`%X%`_shape{lanetype#17604, dim#17604, i#80785}(`I32`_lanetype, `%`_dim{i#80792}(4)))] +[visit_exp shape#3439] +[visit_id shape#3439] +[visit_exp Jnn#460] +[visit_id Jnn#460] +[visit_exp (`%X%`_shape{lanetype#17604, dim#17604, i#80785}(`I32`_lanetype, `%`_dim{i#80792}(4)))] +[visit_exp `%X%`_shape{lanetype#17604, dim#17604, i#80785}(`I32`_lanetype, `%`_dim{i#80792}(4))] +[visit_exp lanetype#17604] +[visit_id lanetype#17604] +[visit_exp dim#17604] +[visit_id dim#17604] +[visit_exp i#80785] +[visit_id i#80785] +[visit_exp (`I32`_lanetype, `%`_dim{i#80792}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#80792}(4)] +[visit_exp i#80792] +[visit_id i#80792] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTMUL`_vextbinop__{half#796, sx#14961}(`LOW`_half, `S`_sx)] +[visit_exp half#796] +[visit_id half#796] +[visit_exp sx#14961] +[visit_id sx#14961] +[visit_exp (`LOW`_half, `S`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#80766}(220)] +[visit_exp i#80766] +[visit_id i#80766] +[visit_exp (220)] +[visit_exp 220] +[check_dims] Jnn#464 Jnn#468 dim#17827 dim#17839 half#830 i#81146 i#81153 i#81160 i#81165 i#81172 ishape_1#65 ishape_2#65 lanetype#17827 lanetype#17839 shape#3542 shape#3554 sx#14995 +dims \ = Jnn#464, Jnn#468, dim#17827, dim#17839, half#830, i#81146, i#81153, i#81160, i#81165, i#81172, ishape_1#65, ishape_2#65, lanetype#17827, lanetype#17839, shape#3542, shape#3554, sx#14995 +[visit_exp `VEXTBINOP`_instr{ishape_1#65, ishape_2#65}(`%`_ishape{shape#3542, Jnn#464}(`%X%`_shape{lanetype#17827, dim#17827, i#81153}(`I64`_lanetype, `%`_dim{i#81160}(2))), `%`_ishape{shape#3554, Jnn#468}(`%X%`_shape{lanetype#17839, dim#17839, i#81165}(`I32`_lanetype, `%`_dim{i#81172}(4))), `EXTMUL`_vextbinop__{half#830, sx#14995}(`HIGH`_half, `S`_sx))] +[visit_exp ishape_1#65] +[visit_id ishape_1#65] +[visit_exp ishape_2#65] +[visit_id ishape_2#65] +[visit_exp (`%`_ishape{shape#3542, Jnn#464}(`%X%`_shape{lanetype#17827, dim#17827, i#81153}(`I64`_lanetype, `%`_dim{i#81160}(2))), `%`_ishape{shape#3554, Jnn#468}(`%X%`_shape{lanetype#17839, dim#17839, i#81165}(`I32`_lanetype, `%`_dim{i#81172}(4))), `EXTMUL`_vextbinop__{half#830, sx#14995}(`HIGH`_half, `S`_sx))] +[visit_exp `%`_ishape{shape#3542, Jnn#464}(`%X%`_shape{lanetype#17827, dim#17827, i#81153}(`I64`_lanetype, `%`_dim{i#81160}(2)))] +[visit_exp shape#3542] +[visit_id shape#3542] +[visit_exp Jnn#464] +[visit_id Jnn#464] +[visit_exp (`%X%`_shape{lanetype#17827, dim#17827, i#81153}(`I64`_lanetype, `%`_dim{i#81160}(2)))] +[visit_exp `%X%`_shape{lanetype#17827, dim#17827, i#81153}(`I64`_lanetype, `%`_dim{i#81160}(2))] +[visit_exp lanetype#17827] +[visit_id lanetype#17827] +[visit_exp dim#17827] +[visit_id dim#17827] +[visit_exp i#81153] +[visit_id i#81153] +[visit_exp (`I64`_lanetype, `%`_dim{i#81160}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#81160}(2)] +[visit_exp i#81160] +[visit_id i#81160] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%`_ishape{shape#3554, Jnn#468}(`%X%`_shape{lanetype#17839, dim#17839, i#81165}(`I32`_lanetype, `%`_dim{i#81172}(4)))] +[visit_exp shape#3554] +[visit_id shape#3554] +[visit_exp Jnn#468] +[visit_id Jnn#468] +[visit_exp (`%X%`_shape{lanetype#17839, dim#17839, i#81165}(`I32`_lanetype, `%`_dim{i#81172}(4)))] +[visit_exp `%X%`_shape{lanetype#17839, dim#17839, i#81165}(`I32`_lanetype, `%`_dim{i#81172}(4))] +[visit_exp lanetype#17839] +[visit_id lanetype#17839] +[visit_exp dim#17839] +[visit_id dim#17839] +[visit_exp i#81165] +[visit_id i#81165] +[visit_exp (`I32`_lanetype, `%`_dim{i#81172}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#81172}(4)] +[visit_exp i#81172] +[visit_id i#81172] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTMUL`_vextbinop__{half#830, sx#14995}(`HIGH`_half, `S`_sx)] +[visit_exp half#830] +[visit_id half#830] +[visit_exp sx#14995] +[visit_id sx#14995] +[visit_exp (`HIGH`_half, `S`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#81146}(221)] +[visit_exp i#81146] +[visit_id i#81146] +[visit_exp (221)] +[visit_exp 221] +[check_dims] Jnn#472 Jnn#476 dim#18062 dim#18074 half#864 i#81526 i#81533 i#81540 i#81545 i#81552 ishape_1#67 ishape_2#67 lanetype#18062 lanetype#18074 shape#3657 shape#3669 sx#15029 +dims \ = Jnn#472, Jnn#476, dim#18062, dim#18074, half#864, i#81526, i#81533, i#81540, i#81545, i#81552, ishape_1#67, ishape_2#67, lanetype#18062, lanetype#18074, shape#3657, shape#3669, sx#15029 +[visit_exp `VEXTBINOP`_instr{ishape_1#67, ishape_2#67}(`%`_ishape{shape#3657, Jnn#472}(`%X%`_shape{lanetype#18062, dim#18062, i#81533}(`I64`_lanetype, `%`_dim{i#81540}(2))), `%`_ishape{shape#3669, Jnn#476}(`%X%`_shape{lanetype#18074, dim#18074, i#81545}(`I32`_lanetype, `%`_dim{i#81552}(4))), `EXTMUL`_vextbinop__{half#864, sx#15029}(`LOW`_half, `U`_sx))] +[visit_exp ishape_1#67] +[visit_id ishape_1#67] +[visit_exp ishape_2#67] +[visit_id ishape_2#67] +[visit_exp (`%`_ishape{shape#3657, Jnn#472}(`%X%`_shape{lanetype#18062, dim#18062, i#81533}(`I64`_lanetype, `%`_dim{i#81540}(2))), `%`_ishape{shape#3669, Jnn#476}(`%X%`_shape{lanetype#18074, dim#18074, i#81545}(`I32`_lanetype, `%`_dim{i#81552}(4))), `EXTMUL`_vextbinop__{half#864, sx#15029}(`LOW`_half, `U`_sx))] +[visit_exp `%`_ishape{shape#3657, Jnn#472}(`%X%`_shape{lanetype#18062, dim#18062, i#81533}(`I64`_lanetype, `%`_dim{i#81540}(2)))] +[visit_exp shape#3657] +[visit_id shape#3657] +[visit_exp Jnn#472] +[visit_id Jnn#472] +[visit_exp (`%X%`_shape{lanetype#18062, dim#18062, i#81533}(`I64`_lanetype, `%`_dim{i#81540}(2)))] +[visit_exp `%X%`_shape{lanetype#18062, dim#18062, i#81533}(`I64`_lanetype, `%`_dim{i#81540}(2))] +[visit_exp lanetype#18062] +[visit_id lanetype#18062] +[visit_exp dim#18062] +[visit_id dim#18062] +[visit_exp i#81533] +[visit_id i#81533] +[visit_exp (`I64`_lanetype, `%`_dim{i#81540}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#81540}(2)] +[visit_exp i#81540] +[visit_id i#81540] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%`_ishape{shape#3669, Jnn#476}(`%X%`_shape{lanetype#18074, dim#18074, i#81545}(`I32`_lanetype, `%`_dim{i#81552}(4)))] +[visit_exp shape#3669] +[visit_id shape#3669] +[visit_exp Jnn#476] +[visit_id Jnn#476] +[visit_exp (`%X%`_shape{lanetype#18074, dim#18074, i#81545}(`I32`_lanetype, `%`_dim{i#81552}(4)))] +[visit_exp `%X%`_shape{lanetype#18074, dim#18074, i#81545}(`I32`_lanetype, `%`_dim{i#81552}(4))] +[visit_exp lanetype#18074] +[visit_id lanetype#18074] +[visit_exp dim#18074] +[visit_id dim#18074] +[visit_exp i#81545] +[visit_id i#81545] +[visit_exp (`I32`_lanetype, `%`_dim{i#81552}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#81552}(4)] +[visit_exp i#81552] +[visit_id i#81552] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTMUL`_vextbinop__{half#864, sx#15029}(`LOW`_half, `U`_sx)] +[visit_exp half#864] +[visit_id half#864] +[visit_exp sx#15029] +[visit_id sx#15029] +[visit_exp (`LOW`_half, `U`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#81526}(222)] +[visit_exp i#81526] +[visit_id i#81526] +[visit_exp (222)] +[visit_exp 222] +[check_dims] Jnn#480 Jnn#484 dim#18297 dim#18309 half#898 i#81906 i#81913 i#81920 i#81925 i#81932 ishape_1#69 ishape_2#69 lanetype#18297 lanetype#18309 shape#3772 shape#3784 sx#15063 +dims \ = Jnn#480, Jnn#484, dim#18297, dim#18309, half#898, i#81906, i#81913, i#81920, i#81925, i#81932, ishape_1#69, ishape_2#69, lanetype#18297, lanetype#18309, shape#3772, shape#3784, sx#15063 +[visit_exp `VEXTBINOP`_instr{ishape_1#69, ishape_2#69}(`%`_ishape{shape#3772, Jnn#480}(`%X%`_shape{lanetype#18297, dim#18297, i#81913}(`I64`_lanetype, `%`_dim{i#81920}(2))), `%`_ishape{shape#3784, Jnn#484}(`%X%`_shape{lanetype#18309, dim#18309, i#81925}(`I32`_lanetype, `%`_dim{i#81932}(4))), `EXTMUL`_vextbinop__{half#898, sx#15063}(`HIGH`_half, `U`_sx))] +[visit_exp ishape_1#69] +[visit_id ishape_1#69] +[visit_exp ishape_2#69] +[visit_id ishape_2#69] +[visit_exp (`%`_ishape{shape#3772, Jnn#480}(`%X%`_shape{lanetype#18297, dim#18297, i#81913}(`I64`_lanetype, `%`_dim{i#81920}(2))), `%`_ishape{shape#3784, Jnn#484}(`%X%`_shape{lanetype#18309, dim#18309, i#81925}(`I32`_lanetype, `%`_dim{i#81932}(4))), `EXTMUL`_vextbinop__{half#898, sx#15063}(`HIGH`_half, `U`_sx))] +[visit_exp `%`_ishape{shape#3772, Jnn#480}(`%X%`_shape{lanetype#18297, dim#18297, i#81913}(`I64`_lanetype, `%`_dim{i#81920}(2)))] +[visit_exp shape#3772] +[visit_id shape#3772] +[visit_exp Jnn#480] +[visit_id Jnn#480] +[visit_exp (`%X%`_shape{lanetype#18297, dim#18297, i#81913}(`I64`_lanetype, `%`_dim{i#81920}(2)))] +[visit_exp `%X%`_shape{lanetype#18297, dim#18297, i#81913}(`I64`_lanetype, `%`_dim{i#81920}(2))] +[visit_exp lanetype#18297] +[visit_id lanetype#18297] +[visit_exp dim#18297] +[visit_id dim#18297] +[visit_exp i#81913] +[visit_id i#81913] +[visit_exp (`I64`_lanetype, `%`_dim{i#81920}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#81920}(2)] +[visit_exp i#81920] +[visit_id i#81920] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%`_ishape{shape#3784, Jnn#484}(`%X%`_shape{lanetype#18309, dim#18309, i#81925}(`I32`_lanetype, `%`_dim{i#81932}(4)))] +[visit_exp shape#3784] +[visit_id shape#3784] +[visit_exp Jnn#484] +[visit_id Jnn#484] +[visit_exp (`%X%`_shape{lanetype#18309, dim#18309, i#81925}(`I32`_lanetype, `%`_dim{i#81932}(4)))] +[visit_exp `%X%`_shape{lanetype#18309, dim#18309, i#81925}(`I32`_lanetype, `%`_dim{i#81932}(4))] +[visit_exp lanetype#18309] +[visit_id lanetype#18309] +[visit_exp dim#18309] +[visit_id dim#18309] +[visit_exp i#81925] +[visit_id i#81925] +[visit_exp (`I32`_lanetype, `%`_dim{i#81932}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#81932}(4)] +[visit_exp i#81932] +[visit_id i#81932] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTMUL`_vextbinop__{half#898, sx#15063}(`HIGH`_half, `U`_sx)] +[visit_exp half#898] +[visit_id half#898] +[visit_exp sx#15063] +[visit_id sx#15063] +[visit_exp (`HIGH`_half, `U`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#81906}(223)] +[visit_exp i#81906] +[visit_id i#81906] +[visit_exp (223)] +[visit_exp 223] +ps' = +[check_dims] +[check_dims] dim#18532 i#82286 i#82293 i#82300 lanetype#18532 shape#3877 +dims \ = dim#18532, i#82286, i#82293, i#82300, lanetype#18532, shape#3877 +[visit_exp `VUNOP`_instr{shape#3877}(`%X%`_shape{lanetype#18532, dim#18532, i#82293}(`F32`_lanetype, `%`_dim{i#82300}(4)), `CEIL`_vunop_)] +[visit_exp shape#3877] +[visit_id shape#3877] +[visit_exp (`%X%`_shape{lanetype#18532, dim#18532, i#82293}(`F32`_lanetype, `%`_dim{i#82300}(4)), `CEIL`_vunop_)] +[visit_exp `%X%`_shape{lanetype#18532, dim#18532, i#82293}(`F32`_lanetype, `%`_dim{i#82300}(4))] +[visit_exp lanetype#18532] +[visit_id lanetype#18532] +[visit_exp dim#18532] +[visit_id dim#18532] +[visit_exp i#82293] +[visit_id i#82293] +[visit_exp (`F32`_lanetype, `%`_dim{i#82300}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#82300}(4)] +[visit_exp i#82300] +[visit_id i#82300] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `CEIL`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#82286}(103)] +[visit_exp i#82286] +[visit_id i#82286] +[visit_exp (103)] +[visit_exp 103] +[check_dims] dim#18574 i#82383 i#82390 i#82397 lanetype#18574 shape#3879 +dims \ = dim#18574, i#82383, i#82390, i#82397, lanetype#18574, shape#3879 +[visit_exp `VUNOP`_instr{shape#3879}(`%X%`_shape{lanetype#18574, dim#18574, i#82390}(`F32`_lanetype, `%`_dim{i#82397}(4)), `FLOOR`_vunop_)] +[visit_exp shape#3879] +[visit_id shape#3879] +[visit_exp (`%X%`_shape{lanetype#18574, dim#18574, i#82390}(`F32`_lanetype, `%`_dim{i#82397}(4)), `FLOOR`_vunop_)] +[visit_exp `%X%`_shape{lanetype#18574, dim#18574, i#82390}(`F32`_lanetype, `%`_dim{i#82397}(4))] +[visit_exp lanetype#18574] +[visit_id lanetype#18574] +[visit_exp dim#18574] +[visit_id dim#18574] +[visit_exp i#82390] +[visit_id i#82390] +[visit_exp (`F32`_lanetype, `%`_dim{i#82397}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#82397}(4)] +[visit_exp i#82397] +[visit_id i#82397] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `FLOOR`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#82383}(104)] +[visit_exp i#82383] +[visit_id i#82383] +[visit_exp (104)] +[visit_exp 104] +[check_dims] dim#18616 i#82480 i#82487 i#82494 lanetype#18616 shape#3881 +dims \ = dim#18616, i#82480, i#82487, i#82494, lanetype#18616, shape#3881 +[visit_exp `VUNOP`_instr{shape#3881}(`%X%`_shape{lanetype#18616, dim#18616, i#82487}(`F32`_lanetype, `%`_dim{i#82494}(4)), `TRUNC`_vunop_)] +[visit_exp shape#3881] +[visit_id shape#3881] +[visit_exp (`%X%`_shape{lanetype#18616, dim#18616, i#82487}(`F32`_lanetype, `%`_dim{i#82494}(4)), `TRUNC`_vunop_)] +[visit_exp `%X%`_shape{lanetype#18616, dim#18616, i#82487}(`F32`_lanetype, `%`_dim{i#82494}(4))] +[visit_exp lanetype#18616] +[visit_id lanetype#18616] +[visit_exp dim#18616] +[visit_id dim#18616] +[visit_exp i#82487] +[visit_id i#82487] +[visit_exp (`F32`_lanetype, `%`_dim{i#82494}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#82494}(4)] +[visit_exp i#82494] +[visit_id i#82494] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `TRUNC`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#82480}(105)] +[visit_exp i#82480] +[visit_id i#82480] +[visit_exp (105)] +[visit_exp 105] +[check_dims] dim#18658 i#82577 i#82584 i#82591 lanetype#18658 shape#3883 +dims \ = dim#18658, i#82577, i#82584, i#82591, lanetype#18658, shape#3883 +[visit_exp `VUNOP`_instr{shape#3883}(`%X%`_shape{lanetype#18658, dim#18658, i#82584}(`F32`_lanetype, `%`_dim{i#82591}(4)), `NEAREST`_vunop_)] +[visit_exp shape#3883] +[visit_id shape#3883] +[visit_exp (`%X%`_shape{lanetype#18658, dim#18658, i#82584}(`F32`_lanetype, `%`_dim{i#82591}(4)), `NEAREST`_vunop_)] +[visit_exp `%X%`_shape{lanetype#18658, dim#18658, i#82584}(`F32`_lanetype, `%`_dim{i#82591}(4))] +[visit_exp lanetype#18658] +[visit_id lanetype#18658] +[visit_exp dim#18658] +[visit_id dim#18658] +[visit_exp i#82584] +[visit_id i#82584] +[visit_exp (`F32`_lanetype, `%`_dim{i#82591}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#82591}(4)] +[visit_exp i#82591] +[visit_id i#82591] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `NEAREST`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#82577}(106)] +[visit_exp i#82577] +[visit_id i#82577] +[visit_exp (106)] +[visit_exp 106] +[check_dims] dim#18700 i#82674 i#82681 i#82688 lanetype#18700 shape#3885 +dims \ = dim#18700, i#82674, i#82681, i#82688, lanetype#18700, shape#3885 +[visit_exp `VUNOP`_instr{shape#3885}(`%X%`_shape{lanetype#18700, dim#18700, i#82681}(`F32`_lanetype, `%`_dim{i#82688}(4)), `ABS`_vunop_)] +[visit_exp shape#3885] +[visit_id shape#3885] +[visit_exp (`%X%`_shape{lanetype#18700, dim#18700, i#82681}(`F32`_lanetype, `%`_dim{i#82688}(4)), `ABS`_vunop_)] +[visit_exp `%X%`_shape{lanetype#18700, dim#18700, i#82681}(`F32`_lanetype, `%`_dim{i#82688}(4))] +[visit_exp lanetype#18700] +[visit_id lanetype#18700] +[visit_exp dim#18700] +[visit_id dim#18700] +[visit_exp i#82681] +[visit_id i#82681] +[visit_exp (`F32`_lanetype, `%`_dim{i#82688}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#82688}(4)] +[visit_exp i#82688] +[visit_id i#82688] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#82674}(224)] +[visit_exp i#82674] +[visit_id i#82674] +[visit_exp (224)] +[visit_exp 224] +[check_dims] dim#18742 i#82771 i#82778 i#82785 lanetype#18742 shape#3887 +dims \ = dim#18742, i#82771, i#82778, i#82785, lanetype#18742, shape#3887 +[visit_exp `VUNOP`_instr{shape#3887}(`%X%`_shape{lanetype#18742, dim#18742, i#82778}(`F32`_lanetype, `%`_dim{i#82785}(4)), `NEG`_vunop_)] +[visit_exp shape#3887] +[visit_id shape#3887] +[visit_exp (`%X%`_shape{lanetype#18742, dim#18742, i#82778}(`F32`_lanetype, `%`_dim{i#82785}(4)), `NEG`_vunop_)] +[visit_exp `%X%`_shape{lanetype#18742, dim#18742, i#82778}(`F32`_lanetype, `%`_dim{i#82785}(4))] +[visit_exp lanetype#18742] +[visit_id lanetype#18742] +[visit_exp dim#18742] +[visit_id dim#18742] +[visit_exp i#82778] +[visit_id i#82778] +[visit_exp (`F32`_lanetype, `%`_dim{i#82785}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#82785}(4)] +[visit_exp i#82785] +[visit_id i#82785] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#82771}(225)] +[visit_exp i#82771] +[visit_id i#82771] +[visit_exp (225)] +[visit_exp 225] +[check_dims] dim#18784 i#82868 i#82875 i#82882 lanetype#18784 shape#3889 +dims \ = dim#18784, i#82868, i#82875, i#82882, lanetype#18784, shape#3889 +[visit_exp `VUNOP`_instr{shape#3889}(`%X%`_shape{lanetype#18784, dim#18784, i#82875}(`F32`_lanetype, `%`_dim{i#82882}(4)), `SQRT`_vunop_)] +[visit_exp shape#3889] +[visit_id shape#3889] +[visit_exp (`%X%`_shape{lanetype#18784, dim#18784, i#82875}(`F32`_lanetype, `%`_dim{i#82882}(4)), `SQRT`_vunop_)] +[visit_exp `%X%`_shape{lanetype#18784, dim#18784, i#82875}(`F32`_lanetype, `%`_dim{i#82882}(4))] +[visit_exp lanetype#18784] +[visit_id lanetype#18784] +[visit_exp dim#18784] +[visit_id dim#18784] +[visit_exp i#82875] +[visit_id i#82875] +[visit_exp (`F32`_lanetype, `%`_dim{i#82882}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#82882}(4)] +[visit_exp i#82882] +[visit_id i#82882] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `SQRT`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#82868}(227)] +[visit_exp i#82868] +[visit_id i#82868] +[visit_exp (227)] +[visit_exp 227] +ps' = +[check_dims] +[check_dims] dim#18826 i#82965 i#82972 i#82979 lanetype#18826 shape#3891 +dims \ = dim#18826, i#82965, i#82972, i#82979, lanetype#18826, shape#3891 +[visit_exp `VBINOP`_instr{shape#3891}(`%X%`_shape{lanetype#18826, dim#18826, i#82972}(`F32`_lanetype, `%`_dim{i#82979}(4)), `ADD`_vbinop_)] +[visit_exp shape#3891] +[visit_id shape#3891] +[visit_exp (`%X%`_shape{lanetype#18826, dim#18826, i#82972}(`F32`_lanetype, `%`_dim{i#82979}(4)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#18826, dim#18826, i#82972}(`F32`_lanetype, `%`_dim{i#82979}(4))] +[visit_exp lanetype#18826] +[visit_id lanetype#18826] +[visit_exp dim#18826] +[visit_id dim#18826] +[visit_exp i#82972] +[visit_id i#82972] +[visit_exp (`F32`_lanetype, `%`_dim{i#82979}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#82979}(4)] +[visit_exp i#82979] +[visit_id i#82979] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#82965}(228)] +[visit_exp i#82965] +[visit_id i#82965] +[visit_exp (228)] +[visit_exp 228] +[check_dims] dim#18868 i#83062 i#83069 i#83076 lanetype#18868 shape#3893 +dims \ = dim#18868, i#83062, i#83069, i#83076, lanetype#18868, shape#3893 +[visit_exp `VBINOP`_instr{shape#3893}(`%X%`_shape{lanetype#18868, dim#18868, i#83069}(`F32`_lanetype, `%`_dim{i#83076}(4)), `SUB`_vbinop_)] +[visit_exp shape#3893] +[visit_id shape#3893] +[visit_exp (`%X%`_shape{lanetype#18868, dim#18868, i#83069}(`F32`_lanetype, `%`_dim{i#83076}(4)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#18868, dim#18868, i#83069}(`F32`_lanetype, `%`_dim{i#83076}(4))] +[visit_exp lanetype#18868] +[visit_id lanetype#18868] +[visit_exp dim#18868] +[visit_id dim#18868] +[visit_exp i#83069] +[visit_id i#83069] +[visit_exp (`F32`_lanetype, `%`_dim{i#83076}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#83076}(4)] +[visit_exp i#83076] +[visit_id i#83076] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#83062}(229)] +[visit_exp i#83062] +[visit_id i#83062] +[visit_exp (229)] +[visit_exp 229] +[check_dims] dim#18910 i#83159 i#83166 i#83173 lanetype#18910 shape#3895 +dims \ = dim#18910, i#83159, i#83166, i#83173, lanetype#18910, shape#3895 +[visit_exp `VBINOP`_instr{shape#3895}(`%X%`_shape{lanetype#18910, dim#18910, i#83166}(`F32`_lanetype, `%`_dim{i#83173}(4)), `MUL`_vbinop_)] +[visit_exp shape#3895] +[visit_id shape#3895] +[visit_exp (`%X%`_shape{lanetype#18910, dim#18910, i#83166}(`F32`_lanetype, `%`_dim{i#83173}(4)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#18910, dim#18910, i#83166}(`F32`_lanetype, `%`_dim{i#83173}(4))] +[visit_exp lanetype#18910] +[visit_id lanetype#18910] +[visit_exp dim#18910] +[visit_id dim#18910] +[visit_exp i#83166] +[visit_id i#83166] +[visit_exp (`F32`_lanetype, `%`_dim{i#83173}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#83173}(4)] +[visit_exp i#83173] +[visit_id i#83173] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MUL`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#83159}(230)] +[visit_exp i#83159] +[visit_id i#83159] +[visit_exp (230)] +[visit_exp 230] +[check_dims] dim#18952 i#83256 i#83263 i#83270 lanetype#18952 shape#3897 +dims \ = dim#18952, i#83256, i#83263, i#83270, lanetype#18952, shape#3897 +[visit_exp `VBINOP`_instr{shape#3897}(`%X%`_shape{lanetype#18952, dim#18952, i#83263}(`F32`_lanetype, `%`_dim{i#83270}(4)), `DIV`_vbinop_)] +[visit_exp shape#3897] +[visit_id shape#3897] +[visit_exp (`%X%`_shape{lanetype#18952, dim#18952, i#83263}(`F32`_lanetype, `%`_dim{i#83270}(4)), `DIV`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#18952, dim#18952, i#83263}(`F32`_lanetype, `%`_dim{i#83270}(4))] +[visit_exp lanetype#18952] +[visit_id lanetype#18952] +[visit_exp dim#18952] +[visit_id dim#18952] +[visit_exp i#83263] +[visit_id i#83263] +[visit_exp (`F32`_lanetype, `%`_dim{i#83270}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#83270}(4)] +[visit_exp i#83270] +[visit_id i#83270] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `DIV`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#83256}(231)] +[visit_exp i#83256] +[visit_id i#83256] +[visit_exp (231)] +[visit_exp 231] +[check_dims] dim#18994 i#83353 i#83360 i#83367 lanetype#18994 shape#3899 +dims \ = dim#18994, i#83353, i#83360, i#83367, lanetype#18994, shape#3899 +[visit_exp `VBINOP`_instr{shape#3899}(`%X%`_shape{lanetype#18994, dim#18994, i#83360}(`F32`_lanetype, `%`_dim{i#83367}(4)), `MIN`_vbinop_)] +[visit_exp shape#3899] +[visit_id shape#3899] +[visit_exp (`%X%`_shape{lanetype#18994, dim#18994, i#83360}(`F32`_lanetype, `%`_dim{i#83367}(4)), `MIN`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#18994, dim#18994, i#83360}(`F32`_lanetype, `%`_dim{i#83367}(4))] +[visit_exp lanetype#18994] +[visit_id lanetype#18994] +[visit_exp dim#18994] +[visit_id dim#18994] +[visit_exp i#83360] +[visit_id i#83360] +[visit_exp (`F32`_lanetype, `%`_dim{i#83367}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#83367}(4)] +[visit_exp i#83367] +[visit_id i#83367] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MIN`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#83353}(232)] +[visit_exp i#83353] +[visit_id i#83353] +[visit_exp (232)] +[visit_exp 232] +[check_dims] dim#19036 i#83450 i#83457 i#83464 lanetype#19036 shape#3901 +dims \ = dim#19036, i#83450, i#83457, i#83464, lanetype#19036, shape#3901 +[visit_exp `VBINOP`_instr{shape#3901}(`%X%`_shape{lanetype#19036, dim#19036, i#83457}(`F32`_lanetype, `%`_dim{i#83464}(4)), `MAX`_vbinop_)] +[visit_exp shape#3901] +[visit_id shape#3901] +[visit_exp (`%X%`_shape{lanetype#19036, dim#19036, i#83457}(`F32`_lanetype, `%`_dim{i#83464}(4)), `MAX`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19036, dim#19036, i#83457}(`F32`_lanetype, `%`_dim{i#83464}(4))] +[visit_exp lanetype#19036] +[visit_id lanetype#19036] +[visit_exp dim#19036] +[visit_id dim#19036] +[visit_exp i#83457] +[visit_id i#83457] +[visit_exp (`F32`_lanetype, `%`_dim{i#83464}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#83464}(4)] +[visit_exp i#83464] +[visit_id i#83464] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MAX`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#83450}(233)] +[visit_exp i#83450] +[visit_id i#83450] +[visit_exp (233)] +[visit_exp 233] +[check_dims] dim#19078 i#83547 i#83554 i#83561 lanetype#19078 shape#3903 +dims \ = dim#19078, i#83547, i#83554, i#83561, lanetype#19078, shape#3903 +[visit_exp `VBINOP`_instr{shape#3903}(`%X%`_shape{lanetype#19078, dim#19078, i#83554}(`F32`_lanetype, `%`_dim{i#83561}(4)), `PMIN`_vbinop_)] +[visit_exp shape#3903] +[visit_id shape#3903] +[visit_exp (`%X%`_shape{lanetype#19078, dim#19078, i#83554}(`F32`_lanetype, `%`_dim{i#83561}(4)), `PMIN`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19078, dim#19078, i#83554}(`F32`_lanetype, `%`_dim{i#83561}(4))] +[visit_exp lanetype#19078] +[visit_id lanetype#19078] +[visit_exp dim#19078] +[visit_id dim#19078] +[visit_exp i#83554] +[visit_id i#83554] +[visit_exp (`F32`_lanetype, `%`_dim{i#83561}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#83561}(4)] +[visit_exp i#83561] +[visit_id i#83561] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `PMIN`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#83547}(234)] +[visit_exp i#83547] +[visit_id i#83547] +[visit_exp (234)] +[visit_exp 234] +[check_dims] dim#19120 i#83644 i#83651 i#83658 lanetype#19120 shape#3905 +dims \ = dim#19120, i#83644, i#83651, i#83658, lanetype#19120, shape#3905 +[visit_exp `VBINOP`_instr{shape#3905}(`%X%`_shape{lanetype#19120, dim#19120, i#83651}(`F32`_lanetype, `%`_dim{i#83658}(4)), `PMAX`_vbinop_)] +[visit_exp shape#3905] +[visit_id shape#3905] +[visit_exp (`%X%`_shape{lanetype#19120, dim#19120, i#83651}(`F32`_lanetype, `%`_dim{i#83658}(4)), `PMAX`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19120, dim#19120, i#83651}(`F32`_lanetype, `%`_dim{i#83658}(4))] +[visit_exp lanetype#19120] +[visit_id lanetype#19120] +[visit_exp dim#19120] +[visit_id dim#19120] +[visit_exp i#83651] +[visit_id i#83651] +[visit_exp (`F32`_lanetype, `%`_dim{i#83658}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#83658}(4)] +[visit_exp i#83658] +[visit_id i#83658] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `PMAX`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#83644}(235)] +[visit_exp i#83644] +[visit_id i#83644] +[visit_exp (235)] +[visit_exp 235] +[check_dims] dim#19162 i#83741 i#83748 i#83755 lanetype#19162 shape#3907 +dims \ = dim#19162, i#83741, i#83748, i#83755, lanetype#19162, shape#3907 +[visit_exp `VBINOP`_instr{shape#3907}(`%X%`_shape{lanetype#19162, dim#19162, i#83748}(`F32`_lanetype, `%`_dim{i#83755}(4)), `RELAXED_MIN`_vbinop_)] +[visit_exp shape#3907] +[visit_id shape#3907] +[visit_exp (`%X%`_shape{lanetype#19162, dim#19162, i#83748}(`F32`_lanetype, `%`_dim{i#83755}(4)), `RELAXED_MIN`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19162, dim#19162, i#83748}(`F32`_lanetype, `%`_dim{i#83755}(4))] +[visit_exp lanetype#19162] +[visit_id lanetype#19162] +[visit_exp dim#19162] +[visit_id dim#19162] +[visit_exp i#83748] +[visit_id i#83748] +[visit_exp (`F32`_lanetype, `%`_dim{i#83755}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#83755}(4)] +[visit_exp i#83755] +[visit_id i#83755] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_MIN`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#83741}(269)] +[visit_exp i#83741] +[visit_id i#83741] +[visit_exp (269)] +[visit_exp 269] +[check_dims] dim#19204 i#83838 i#83845 i#83852 lanetype#19204 shape#3909 +dims \ = dim#19204, i#83838, i#83845, i#83852, lanetype#19204, shape#3909 +[visit_exp `VBINOP`_instr{shape#3909}(`%X%`_shape{lanetype#19204, dim#19204, i#83845}(`F32`_lanetype, `%`_dim{i#83852}(4)), `RELAXED_MAX`_vbinop_)] +[visit_exp shape#3909] +[visit_id shape#3909] +[visit_exp (`%X%`_shape{lanetype#19204, dim#19204, i#83845}(`F32`_lanetype, `%`_dim{i#83852}(4)), `RELAXED_MAX`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19204, dim#19204, i#83845}(`F32`_lanetype, `%`_dim{i#83852}(4))] +[visit_exp lanetype#19204] +[visit_id lanetype#19204] +[visit_exp dim#19204] +[visit_id dim#19204] +[visit_exp i#83845] +[visit_id i#83845] +[visit_exp (`F32`_lanetype, `%`_dim{i#83852}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#83852}(4)] +[visit_exp i#83852] +[visit_id i#83852] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_MAX`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#83838}(270)] +[visit_exp i#83838] +[visit_id i#83838] +[visit_exp (270)] +[visit_exp 270] +ps' = +[check_dims] +[check_dims] dim#19246 i#83935 i#83942 i#83949 lanetype#19246 shape#3911 +dims \ = dim#19246, i#83935, i#83942, i#83949, lanetype#19246, shape#3911 +[visit_exp `VTERNOP`_instr{shape#3911}(`%X%`_shape{lanetype#19246, dim#19246, i#83942}(`F32`_lanetype, `%`_dim{i#83949}(4)), `RELAXED_MADD`_vternop_)] +[visit_exp shape#3911] +[visit_id shape#3911] +[visit_exp (`%X%`_shape{lanetype#19246, dim#19246, i#83942}(`F32`_lanetype, `%`_dim{i#83949}(4)), `RELAXED_MADD`_vternop_)] +[visit_exp `%X%`_shape{lanetype#19246, dim#19246, i#83942}(`F32`_lanetype, `%`_dim{i#83949}(4))] +[visit_exp lanetype#19246] +[visit_id lanetype#19246] +[visit_exp dim#19246] +[visit_id dim#19246] +[visit_exp i#83942] +[visit_id i#83942] +[visit_exp (`F32`_lanetype, `%`_dim{i#83949}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#83949}(4)] +[visit_exp i#83949] +[visit_id i#83949] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_MADD`_vternop_] +[visit_exp ()] +[visit_exp `%`_u32{i#83935}(261)] +[visit_exp i#83935] +[visit_id i#83935] +[visit_exp (261)] +[visit_exp 261] +[check_dims] dim#19288 i#84032 i#84039 i#84046 lanetype#19288 shape#3913 +dims \ = dim#19288, i#84032, i#84039, i#84046, lanetype#19288, shape#3913 +[visit_exp `VTERNOP`_instr{shape#3913}(`%X%`_shape{lanetype#19288, dim#19288, i#84039}(`F32`_lanetype, `%`_dim{i#84046}(4)), `RELAXED_NMADD`_vternop_)] +[visit_exp shape#3913] +[visit_id shape#3913] +[visit_exp (`%X%`_shape{lanetype#19288, dim#19288, i#84039}(`F32`_lanetype, `%`_dim{i#84046}(4)), `RELAXED_NMADD`_vternop_)] +[visit_exp `%X%`_shape{lanetype#19288, dim#19288, i#84039}(`F32`_lanetype, `%`_dim{i#84046}(4))] +[visit_exp lanetype#19288] +[visit_id lanetype#19288] +[visit_exp dim#19288] +[visit_id dim#19288] +[visit_exp i#84039] +[visit_id i#84039] +[visit_exp (`F32`_lanetype, `%`_dim{i#84046}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#84046}(4)] +[visit_exp i#84046] +[visit_id i#84046] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_NMADD`_vternop_] +[visit_exp ()] +[visit_exp `%`_u32{i#84032}(262)] +[visit_exp i#84032] +[visit_id i#84032] +[visit_exp (262)] +[visit_exp 262] +ps' = +[check_dims] +[check_dims] dim#19330 i#84129 i#84136 i#84143 lanetype#19330 shape#3915 +dims \ = dim#19330, i#84129, i#84136, i#84143, lanetype#19330, shape#3915 +[visit_exp `VUNOP`_instr{shape#3915}(`%X%`_shape{lanetype#19330, dim#19330, i#84136}(`F64`_lanetype, `%`_dim{i#84143}(2)), `CEIL`_vunop_)] +[visit_exp shape#3915] +[visit_id shape#3915] +[visit_exp (`%X%`_shape{lanetype#19330, dim#19330, i#84136}(`F64`_lanetype, `%`_dim{i#84143}(2)), `CEIL`_vunop_)] +[visit_exp `%X%`_shape{lanetype#19330, dim#19330, i#84136}(`F64`_lanetype, `%`_dim{i#84143}(2))] +[visit_exp lanetype#19330] +[visit_id lanetype#19330] +[visit_exp dim#19330] +[visit_id dim#19330] +[visit_exp i#84136] +[visit_id i#84136] +[visit_exp (`F64`_lanetype, `%`_dim{i#84143}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#84143}(2)] +[visit_exp i#84143] +[visit_id i#84143] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `CEIL`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#84129}(116)] +[visit_exp i#84129] +[visit_id i#84129] +[visit_exp (116)] +[visit_exp 116] +[check_dims] dim#19372 i#84226 i#84233 i#84240 lanetype#19372 shape#3917 +dims \ = dim#19372, i#84226, i#84233, i#84240, lanetype#19372, shape#3917 +[visit_exp `VUNOP`_instr{shape#3917}(`%X%`_shape{lanetype#19372, dim#19372, i#84233}(`F64`_lanetype, `%`_dim{i#84240}(2)), `FLOOR`_vunop_)] +[visit_exp shape#3917] +[visit_id shape#3917] +[visit_exp (`%X%`_shape{lanetype#19372, dim#19372, i#84233}(`F64`_lanetype, `%`_dim{i#84240}(2)), `FLOOR`_vunop_)] +[visit_exp `%X%`_shape{lanetype#19372, dim#19372, i#84233}(`F64`_lanetype, `%`_dim{i#84240}(2))] +[visit_exp lanetype#19372] +[visit_id lanetype#19372] +[visit_exp dim#19372] +[visit_id dim#19372] +[visit_exp i#84233] +[visit_id i#84233] +[visit_exp (`F64`_lanetype, `%`_dim{i#84240}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#84240}(2)] +[visit_exp i#84240] +[visit_id i#84240] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `FLOOR`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#84226}(117)] +[visit_exp i#84226] +[visit_id i#84226] +[visit_exp (117)] +[visit_exp 117] +[check_dims] dim#19414 i#84323 i#84330 i#84337 lanetype#19414 shape#3919 +dims \ = dim#19414, i#84323, i#84330, i#84337, lanetype#19414, shape#3919 +[visit_exp `VUNOP`_instr{shape#3919}(`%X%`_shape{lanetype#19414, dim#19414, i#84330}(`F64`_lanetype, `%`_dim{i#84337}(2)), `TRUNC`_vunop_)] +[visit_exp shape#3919] +[visit_id shape#3919] +[visit_exp (`%X%`_shape{lanetype#19414, dim#19414, i#84330}(`F64`_lanetype, `%`_dim{i#84337}(2)), `TRUNC`_vunop_)] +[visit_exp `%X%`_shape{lanetype#19414, dim#19414, i#84330}(`F64`_lanetype, `%`_dim{i#84337}(2))] +[visit_exp lanetype#19414] +[visit_id lanetype#19414] +[visit_exp dim#19414] +[visit_id dim#19414] +[visit_exp i#84330] +[visit_id i#84330] +[visit_exp (`F64`_lanetype, `%`_dim{i#84337}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#84337}(2)] +[visit_exp i#84337] +[visit_id i#84337] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `TRUNC`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#84323}(122)] +[visit_exp i#84323] +[visit_id i#84323] +[visit_exp (122)] +[visit_exp 122] +[check_dims] dim#19456 i#84420 i#84427 i#84434 lanetype#19456 shape#3921 +dims \ = dim#19456, i#84420, i#84427, i#84434, lanetype#19456, shape#3921 +[visit_exp `VUNOP`_instr{shape#3921}(`%X%`_shape{lanetype#19456, dim#19456, i#84427}(`F64`_lanetype, `%`_dim{i#84434}(2)), `NEAREST`_vunop_)] +[visit_exp shape#3921] +[visit_id shape#3921] +[visit_exp (`%X%`_shape{lanetype#19456, dim#19456, i#84427}(`F64`_lanetype, `%`_dim{i#84434}(2)), `NEAREST`_vunop_)] +[visit_exp `%X%`_shape{lanetype#19456, dim#19456, i#84427}(`F64`_lanetype, `%`_dim{i#84434}(2))] +[visit_exp lanetype#19456] +[visit_id lanetype#19456] +[visit_exp dim#19456] +[visit_id dim#19456] +[visit_exp i#84427] +[visit_id i#84427] +[visit_exp (`F64`_lanetype, `%`_dim{i#84434}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#84434}(2)] +[visit_exp i#84434] +[visit_id i#84434] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `NEAREST`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#84420}(148)] +[visit_exp i#84420] +[visit_id i#84420] +[visit_exp (148)] +[visit_exp 148] +[check_dims] dim#19498 i#84517 i#84524 i#84531 lanetype#19498 shape#3923 +dims \ = dim#19498, i#84517, i#84524, i#84531, lanetype#19498, shape#3923 +[visit_exp `VUNOP`_instr{shape#3923}(`%X%`_shape{lanetype#19498, dim#19498, i#84524}(`F64`_lanetype, `%`_dim{i#84531}(2)), `ABS`_vunop_)] +[visit_exp shape#3923] +[visit_id shape#3923] +[visit_exp (`%X%`_shape{lanetype#19498, dim#19498, i#84524}(`F64`_lanetype, `%`_dim{i#84531}(2)), `ABS`_vunop_)] +[visit_exp `%X%`_shape{lanetype#19498, dim#19498, i#84524}(`F64`_lanetype, `%`_dim{i#84531}(2))] +[visit_exp lanetype#19498] +[visit_id lanetype#19498] +[visit_exp dim#19498] +[visit_id dim#19498] +[visit_exp i#84524] +[visit_id i#84524] +[visit_exp (`F64`_lanetype, `%`_dim{i#84531}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#84531}(2)] +[visit_exp i#84531] +[visit_id i#84531] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#84517}(236)] +[visit_exp i#84517] +[visit_id i#84517] +[visit_exp (236)] +[visit_exp 236] +[check_dims] dim#19540 i#84614 i#84621 i#84628 lanetype#19540 shape#3925 +dims \ = dim#19540, i#84614, i#84621, i#84628, lanetype#19540, shape#3925 +[visit_exp `VUNOP`_instr{shape#3925}(`%X%`_shape{lanetype#19540, dim#19540, i#84621}(`F64`_lanetype, `%`_dim{i#84628}(2)), `NEG`_vunop_)] +[visit_exp shape#3925] +[visit_id shape#3925] +[visit_exp (`%X%`_shape{lanetype#19540, dim#19540, i#84621}(`F64`_lanetype, `%`_dim{i#84628}(2)), `NEG`_vunop_)] +[visit_exp `%X%`_shape{lanetype#19540, dim#19540, i#84621}(`F64`_lanetype, `%`_dim{i#84628}(2))] +[visit_exp lanetype#19540] +[visit_id lanetype#19540] +[visit_exp dim#19540] +[visit_id dim#19540] +[visit_exp i#84621] +[visit_id i#84621] +[visit_exp (`F64`_lanetype, `%`_dim{i#84628}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#84628}(2)] +[visit_exp i#84628] +[visit_id i#84628] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#84614}(237)] +[visit_exp i#84614] +[visit_id i#84614] +[visit_exp (237)] +[visit_exp 237] +[check_dims] dim#19582 i#84711 i#84718 i#84725 lanetype#19582 shape#3927 +dims \ = dim#19582, i#84711, i#84718, i#84725, lanetype#19582, shape#3927 +[visit_exp `VUNOP`_instr{shape#3927}(`%X%`_shape{lanetype#19582, dim#19582, i#84718}(`F64`_lanetype, `%`_dim{i#84725}(2)), `SQRT`_vunop_)] +[visit_exp shape#3927] +[visit_id shape#3927] +[visit_exp (`%X%`_shape{lanetype#19582, dim#19582, i#84718}(`F64`_lanetype, `%`_dim{i#84725}(2)), `SQRT`_vunop_)] +[visit_exp `%X%`_shape{lanetype#19582, dim#19582, i#84718}(`F64`_lanetype, `%`_dim{i#84725}(2))] +[visit_exp lanetype#19582] +[visit_id lanetype#19582] +[visit_exp dim#19582] +[visit_id dim#19582] +[visit_exp i#84718] +[visit_id i#84718] +[visit_exp (`F64`_lanetype, `%`_dim{i#84725}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#84725}(2)] +[visit_exp i#84725] +[visit_id i#84725] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `SQRT`_vunop_] +[visit_exp ()] +[visit_exp `%`_u32{i#84711}(239)] +[visit_exp i#84711] +[visit_id i#84711] +[visit_exp (239)] +[visit_exp 239] +ps' = +[check_dims] +[check_dims] dim#19624 i#84808 i#84815 i#84822 lanetype#19624 shape#3929 +dims \ = dim#19624, i#84808, i#84815, i#84822, lanetype#19624, shape#3929 +[visit_exp `VBINOP`_instr{shape#3929}(`%X%`_shape{lanetype#19624, dim#19624, i#84815}(`F64`_lanetype, `%`_dim{i#84822}(2)), `ADD`_vbinop_)] +[visit_exp shape#3929] +[visit_id shape#3929] +[visit_exp (`%X%`_shape{lanetype#19624, dim#19624, i#84815}(`F64`_lanetype, `%`_dim{i#84822}(2)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19624, dim#19624, i#84815}(`F64`_lanetype, `%`_dim{i#84822}(2))] +[visit_exp lanetype#19624] +[visit_id lanetype#19624] +[visit_exp dim#19624] +[visit_id dim#19624] +[visit_exp i#84815] +[visit_id i#84815] +[visit_exp (`F64`_lanetype, `%`_dim{i#84822}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#84822}(2)] +[visit_exp i#84822] +[visit_id i#84822] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#84808}(240)] +[visit_exp i#84808] +[visit_id i#84808] +[visit_exp (240)] +[visit_exp 240] +[check_dims] dim#19666 i#84905 i#84912 i#84919 lanetype#19666 shape#3931 +dims \ = dim#19666, i#84905, i#84912, i#84919, lanetype#19666, shape#3931 +[visit_exp `VBINOP`_instr{shape#3931}(`%X%`_shape{lanetype#19666, dim#19666, i#84912}(`F64`_lanetype, `%`_dim{i#84919}(2)), `SUB`_vbinop_)] +[visit_exp shape#3931] +[visit_id shape#3931] +[visit_exp (`%X%`_shape{lanetype#19666, dim#19666, i#84912}(`F64`_lanetype, `%`_dim{i#84919}(2)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19666, dim#19666, i#84912}(`F64`_lanetype, `%`_dim{i#84919}(2))] +[visit_exp lanetype#19666] +[visit_id lanetype#19666] +[visit_exp dim#19666] +[visit_id dim#19666] +[visit_exp i#84912] +[visit_id i#84912] +[visit_exp (`F64`_lanetype, `%`_dim{i#84919}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#84919}(2)] +[visit_exp i#84919] +[visit_id i#84919] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#84905}(241)] +[visit_exp i#84905] +[visit_id i#84905] +[visit_exp (241)] +[visit_exp 241] +[check_dims] dim#19708 i#85002 i#85009 i#85016 lanetype#19708 shape#3933 +dims \ = dim#19708, i#85002, i#85009, i#85016, lanetype#19708, shape#3933 +[visit_exp `VBINOP`_instr{shape#3933}(`%X%`_shape{lanetype#19708, dim#19708, i#85009}(`F64`_lanetype, `%`_dim{i#85016}(2)), `MUL`_vbinop_)] +[visit_exp shape#3933] +[visit_id shape#3933] +[visit_exp (`%X%`_shape{lanetype#19708, dim#19708, i#85009}(`F64`_lanetype, `%`_dim{i#85016}(2)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19708, dim#19708, i#85009}(`F64`_lanetype, `%`_dim{i#85016}(2))] +[visit_exp lanetype#19708] +[visit_id lanetype#19708] +[visit_exp dim#19708] +[visit_id dim#19708] +[visit_exp i#85009] +[visit_id i#85009] +[visit_exp (`F64`_lanetype, `%`_dim{i#85016}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#85016}(2)] +[visit_exp i#85016] +[visit_id i#85016] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `MUL`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#85002}(242)] +[visit_exp i#85002] +[visit_id i#85002] +[visit_exp (242)] +[visit_exp 242] +[check_dims] dim#19750 i#85099 i#85106 i#85113 lanetype#19750 shape#3935 +dims \ = dim#19750, i#85099, i#85106, i#85113, lanetype#19750, shape#3935 +[visit_exp `VBINOP`_instr{shape#3935}(`%X%`_shape{lanetype#19750, dim#19750, i#85106}(`F64`_lanetype, `%`_dim{i#85113}(2)), `DIV`_vbinop_)] +[visit_exp shape#3935] +[visit_id shape#3935] +[visit_exp (`%X%`_shape{lanetype#19750, dim#19750, i#85106}(`F64`_lanetype, `%`_dim{i#85113}(2)), `DIV`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19750, dim#19750, i#85106}(`F64`_lanetype, `%`_dim{i#85113}(2))] +[visit_exp lanetype#19750] +[visit_id lanetype#19750] +[visit_exp dim#19750] +[visit_id dim#19750] +[visit_exp i#85106] +[visit_id i#85106] +[visit_exp (`F64`_lanetype, `%`_dim{i#85113}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#85113}(2)] +[visit_exp i#85113] +[visit_id i#85113] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `DIV`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#85099}(243)] +[visit_exp i#85099] +[visit_id i#85099] +[visit_exp (243)] +[visit_exp 243] +[check_dims] dim#19792 i#85196 i#85203 i#85210 lanetype#19792 shape#3937 +dims \ = dim#19792, i#85196, i#85203, i#85210, lanetype#19792, shape#3937 +[visit_exp `VBINOP`_instr{shape#3937}(`%X%`_shape{lanetype#19792, dim#19792, i#85203}(`F64`_lanetype, `%`_dim{i#85210}(2)), `MIN`_vbinop_)] +[visit_exp shape#3937] +[visit_id shape#3937] +[visit_exp (`%X%`_shape{lanetype#19792, dim#19792, i#85203}(`F64`_lanetype, `%`_dim{i#85210}(2)), `MIN`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19792, dim#19792, i#85203}(`F64`_lanetype, `%`_dim{i#85210}(2))] +[visit_exp lanetype#19792] +[visit_id lanetype#19792] +[visit_exp dim#19792] +[visit_id dim#19792] +[visit_exp i#85203] +[visit_id i#85203] +[visit_exp (`F64`_lanetype, `%`_dim{i#85210}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#85210}(2)] +[visit_exp i#85210] +[visit_id i#85210] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `MIN`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#85196}(244)] +[visit_exp i#85196] +[visit_id i#85196] +[visit_exp (244)] +[visit_exp 244] +[check_dims] dim#19834 i#85293 i#85300 i#85307 lanetype#19834 shape#3939 +dims \ = dim#19834, i#85293, i#85300, i#85307, lanetype#19834, shape#3939 +[visit_exp `VBINOP`_instr{shape#3939}(`%X%`_shape{lanetype#19834, dim#19834, i#85300}(`F64`_lanetype, `%`_dim{i#85307}(2)), `MAX`_vbinop_)] +[visit_exp shape#3939] +[visit_id shape#3939] +[visit_exp (`%X%`_shape{lanetype#19834, dim#19834, i#85300}(`F64`_lanetype, `%`_dim{i#85307}(2)), `MAX`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19834, dim#19834, i#85300}(`F64`_lanetype, `%`_dim{i#85307}(2))] +[visit_exp lanetype#19834] +[visit_id lanetype#19834] +[visit_exp dim#19834] +[visit_id dim#19834] +[visit_exp i#85300] +[visit_id i#85300] +[visit_exp (`F64`_lanetype, `%`_dim{i#85307}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#85307}(2)] +[visit_exp i#85307] +[visit_id i#85307] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `MAX`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#85293}(245)] +[visit_exp i#85293] +[visit_id i#85293] +[visit_exp (245)] +[visit_exp 245] +[check_dims] dim#19876 i#85390 i#85397 i#85404 lanetype#19876 shape#3941 +dims \ = dim#19876, i#85390, i#85397, i#85404, lanetype#19876, shape#3941 +[visit_exp `VBINOP`_instr{shape#3941}(`%X%`_shape{lanetype#19876, dim#19876, i#85397}(`F64`_lanetype, `%`_dim{i#85404}(2)), `PMIN`_vbinop_)] +[visit_exp shape#3941] +[visit_id shape#3941] +[visit_exp (`%X%`_shape{lanetype#19876, dim#19876, i#85397}(`F64`_lanetype, `%`_dim{i#85404}(2)), `PMIN`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19876, dim#19876, i#85397}(`F64`_lanetype, `%`_dim{i#85404}(2))] +[visit_exp lanetype#19876] +[visit_id lanetype#19876] +[visit_exp dim#19876] +[visit_id dim#19876] +[visit_exp i#85397] +[visit_id i#85397] +[visit_exp (`F64`_lanetype, `%`_dim{i#85404}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#85404}(2)] +[visit_exp i#85404] +[visit_id i#85404] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `PMIN`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#85390}(246)] +[visit_exp i#85390] +[visit_id i#85390] +[visit_exp (246)] +[visit_exp 246] +[check_dims] dim#19918 i#85487 i#85494 i#85501 lanetype#19918 shape#3943 +dims \ = dim#19918, i#85487, i#85494, i#85501, lanetype#19918, shape#3943 +[visit_exp `VBINOP`_instr{shape#3943}(`%X%`_shape{lanetype#19918, dim#19918, i#85494}(`F64`_lanetype, `%`_dim{i#85501}(2)), `PMAX`_vbinop_)] +[visit_exp shape#3943] +[visit_id shape#3943] +[visit_exp (`%X%`_shape{lanetype#19918, dim#19918, i#85494}(`F64`_lanetype, `%`_dim{i#85501}(2)), `PMAX`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19918, dim#19918, i#85494}(`F64`_lanetype, `%`_dim{i#85501}(2))] +[visit_exp lanetype#19918] +[visit_id lanetype#19918] +[visit_exp dim#19918] +[visit_id dim#19918] +[visit_exp i#85494] +[visit_id i#85494] +[visit_exp (`F64`_lanetype, `%`_dim{i#85501}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#85501}(2)] +[visit_exp i#85501] +[visit_id i#85501] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `PMAX`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#85487}(247)] +[visit_exp i#85487] +[visit_id i#85487] +[visit_exp (247)] +[visit_exp 247] +[check_dims] dim#19960 i#85584 i#85591 i#85598 lanetype#19960 shape#3945 +dims \ = dim#19960, i#85584, i#85591, i#85598, lanetype#19960, shape#3945 +[visit_exp `VBINOP`_instr{shape#3945}(`%X%`_shape{lanetype#19960, dim#19960, i#85591}(`F64`_lanetype, `%`_dim{i#85598}(2)), `RELAXED_MIN`_vbinop_)] +[visit_exp shape#3945] +[visit_id shape#3945] +[visit_exp (`%X%`_shape{lanetype#19960, dim#19960, i#85591}(`F64`_lanetype, `%`_dim{i#85598}(2)), `RELAXED_MIN`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#19960, dim#19960, i#85591}(`F64`_lanetype, `%`_dim{i#85598}(2))] +[visit_exp lanetype#19960] +[visit_id lanetype#19960] +[visit_exp dim#19960] +[visit_id dim#19960] +[visit_exp i#85591] +[visit_id i#85591] +[visit_exp (`F64`_lanetype, `%`_dim{i#85598}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#85598}(2)] +[visit_exp i#85598] +[visit_id i#85598] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_MIN`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#85584}(271)] +[visit_exp i#85584] +[visit_id i#85584] +[visit_exp (271)] +[visit_exp 271] +[check_dims] dim#20002 i#85681 i#85688 i#85695 lanetype#20002 shape#3947 +dims \ = dim#20002, i#85681, i#85688, i#85695, lanetype#20002, shape#3947 +[visit_exp `VBINOP`_instr{shape#3947}(`%X%`_shape{lanetype#20002, dim#20002, i#85688}(`F64`_lanetype, `%`_dim{i#85695}(2)), `RELAXED_MAX`_vbinop_)] +[visit_exp shape#3947] +[visit_id shape#3947] +[visit_exp (`%X%`_shape{lanetype#20002, dim#20002, i#85688}(`F64`_lanetype, `%`_dim{i#85695}(2)), `RELAXED_MAX`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#20002, dim#20002, i#85688}(`F64`_lanetype, `%`_dim{i#85695}(2))] +[visit_exp lanetype#20002] +[visit_id lanetype#20002] +[visit_exp dim#20002] +[visit_id dim#20002] +[visit_exp i#85688] +[visit_id i#85688] +[visit_exp (`F64`_lanetype, `%`_dim{i#85695}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#85695}(2)] +[visit_exp i#85695] +[visit_id i#85695] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_MAX`_vbinop_] +[visit_exp ()] +[visit_exp `%`_u32{i#85681}(272)] +[visit_exp i#85681] +[visit_id i#85681] +[visit_exp (272)] +[visit_exp 272] +ps' = +[check_dims] +[check_dims] dim#20044 i#85778 i#85785 i#85792 lanetype#20044 shape#3949 +dims \ = dim#20044, i#85778, i#85785, i#85792, lanetype#20044, shape#3949 +[visit_exp `VTERNOP`_instr{shape#3949}(`%X%`_shape{lanetype#20044, dim#20044, i#85785}(`F64`_lanetype, `%`_dim{i#85792}(2)), `RELAXED_MADD`_vternop_)] +[visit_exp shape#3949] +[visit_id shape#3949] +[visit_exp (`%X%`_shape{lanetype#20044, dim#20044, i#85785}(`F64`_lanetype, `%`_dim{i#85792}(2)), `RELAXED_MADD`_vternop_)] +[visit_exp `%X%`_shape{lanetype#20044, dim#20044, i#85785}(`F64`_lanetype, `%`_dim{i#85792}(2))] +[visit_exp lanetype#20044] +[visit_id lanetype#20044] +[visit_exp dim#20044] +[visit_id dim#20044] +[visit_exp i#85785] +[visit_id i#85785] +[visit_exp (`F64`_lanetype, `%`_dim{i#85792}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#85792}(2)] +[visit_exp i#85792] +[visit_id i#85792] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_MADD`_vternop_] +[visit_exp ()] +[visit_exp `%`_u32{i#85778}(263)] +[visit_exp i#85778] +[visit_id i#85778] +[visit_exp (263)] +[visit_exp 263] +[check_dims] dim#20086 i#85875 i#85882 i#85889 lanetype#20086 shape#3951 +dims \ = dim#20086, i#85875, i#85882, i#85889, lanetype#20086, shape#3951 +[visit_exp `VTERNOP`_instr{shape#3951}(`%X%`_shape{lanetype#20086, dim#20086, i#85882}(`F64`_lanetype, `%`_dim{i#85889}(2)), `RELAXED_NMADD`_vternop_)] +[visit_exp shape#3951] +[visit_id shape#3951] +[visit_exp (`%X%`_shape{lanetype#20086, dim#20086, i#85882}(`F64`_lanetype, `%`_dim{i#85889}(2)), `RELAXED_NMADD`_vternop_)] +[visit_exp `%X%`_shape{lanetype#20086, dim#20086, i#85882}(`F64`_lanetype, `%`_dim{i#85889}(2))] +[visit_exp lanetype#20086] +[visit_id lanetype#20086] +[visit_exp dim#20086] +[visit_id dim#20086] +[visit_exp i#85882] +[visit_id i#85882] +[visit_exp (`F64`_lanetype, `%`_dim{i#85889}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#85889}(2)] +[visit_exp i#85889] +[visit_id i#85889] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_NMADD`_vternop_] +[visit_exp ()] +[visit_exp `%`_u32{i#85875}(264)] +[visit_exp i#85875] +[visit_id i#85875] +[visit_exp (264)] +[visit_exp 264] +[check_dims] dim#20128 i#85972 i#85979 i#85986 lanetype#20128 shape#3953 +dims \ = dim#20128, i#85972, i#85979, i#85986, lanetype#20128, shape#3953 +[visit_exp `VTERNOP`_instr{shape#3953}(`%X%`_shape{lanetype#20128, dim#20128, i#85979}(`I8`_lanetype, `%`_dim{i#85986}(16)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp shape#3953] +[visit_id shape#3953] +[visit_exp (`%X%`_shape{lanetype#20128, dim#20128, i#85979}(`I8`_lanetype, `%`_dim{i#85986}(16)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape{lanetype#20128, dim#20128, i#85979}(`I8`_lanetype, `%`_dim{i#85986}(16))] +[visit_exp lanetype#20128] +[visit_id lanetype#20128] +[visit_exp dim#20128] +[visit_id dim#20128] +[visit_exp i#85979] +[visit_id i#85979] +[visit_exp (`I8`_lanetype, `%`_dim{i#85986}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#85986}(16)] +[visit_exp i#85986] +[visit_id i#85986] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `RELAXED_LANESELECT`_vternop_] +[visit_exp ()] +[visit_exp `%`_u32{i#85972}(265)] +[visit_exp i#85972] +[visit_id i#85972] +[visit_exp (265)] +[visit_exp 265] +[check_dims] dim#20155 i#86054 i#86061 i#86068 lanetype#20155 shape#3955 +dims \ = dim#20155, i#86054, i#86061, i#86068, lanetype#20155, shape#3955 +[visit_exp `VTERNOP`_instr{shape#3955}(`%X%`_shape{lanetype#20155, dim#20155, i#86061}(`I16`_lanetype, `%`_dim{i#86068}(8)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp shape#3955] +[visit_id shape#3955] +[visit_exp (`%X%`_shape{lanetype#20155, dim#20155, i#86061}(`I16`_lanetype, `%`_dim{i#86068}(8)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape{lanetype#20155, dim#20155, i#86061}(`I16`_lanetype, `%`_dim{i#86068}(8))] +[visit_exp lanetype#20155] +[visit_id lanetype#20155] +[visit_exp dim#20155] +[visit_id dim#20155] +[visit_exp i#86061] +[visit_id i#86061] +[visit_exp (`I16`_lanetype, `%`_dim{i#86068}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#86068}(8)] +[visit_exp i#86068] +[visit_id i#86068] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `RELAXED_LANESELECT`_vternop_] +[visit_exp ()] +[visit_exp `%`_u32{i#86054}(266)] +[visit_exp i#86054] +[visit_id i#86054] +[visit_exp (266)] +[visit_exp 266] +[check_dims] dim#20182 i#86136 i#86143 i#86150 lanetype#20182 shape#3957 +dims \ = dim#20182, i#86136, i#86143, i#86150, lanetype#20182, shape#3957 +[visit_exp `VTERNOP`_instr{shape#3957}(`%X%`_shape{lanetype#20182, dim#20182, i#86143}(`I32`_lanetype, `%`_dim{i#86150}(4)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp shape#3957] +[visit_id shape#3957] +[visit_exp (`%X%`_shape{lanetype#20182, dim#20182, i#86143}(`I32`_lanetype, `%`_dim{i#86150}(4)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape{lanetype#20182, dim#20182, i#86143}(`I32`_lanetype, `%`_dim{i#86150}(4))] +[visit_exp lanetype#20182] +[visit_id lanetype#20182] +[visit_exp dim#20182] +[visit_id dim#20182] +[visit_exp i#86143] +[visit_id i#86143] +[visit_exp (`I32`_lanetype, `%`_dim{i#86150}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#86150}(4)] +[visit_exp i#86150] +[visit_id i#86150] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_LANESELECT`_vternop_] +[visit_exp ()] +[visit_exp `%`_u32{i#86136}(267)] +[visit_exp i#86136] +[visit_id i#86136] +[visit_exp (267)] +[visit_exp 267] +[check_dims] dim#20209 i#86218 i#86225 i#86232 lanetype#20209 shape#3959 +dims \ = dim#20209, i#86218, i#86225, i#86232, lanetype#20209, shape#3959 +[visit_exp `VTERNOP`_instr{shape#3959}(`%X%`_shape{lanetype#20209, dim#20209, i#86225}(`I64`_lanetype, `%`_dim{i#86232}(2)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp shape#3959] +[visit_id shape#3959] +[visit_exp (`%X%`_shape{lanetype#20209, dim#20209, i#86225}(`I64`_lanetype, `%`_dim{i#86232}(2)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape{lanetype#20209, dim#20209, i#86225}(`I64`_lanetype, `%`_dim{i#86232}(2))] +[visit_exp lanetype#20209] +[visit_id lanetype#20209] +[visit_exp dim#20209] +[visit_id dim#20209] +[visit_exp i#86225] +[visit_id i#86225] +[visit_exp (`I64`_lanetype, `%`_dim{i#86232}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#86232}(2)] +[visit_exp i#86232] +[visit_id i#86232] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_LANESELECT`_vternop_] +[visit_exp ()] +[visit_exp `%`_u32{i#86218}(268)] +[visit_exp i#86218] +[visit_id i#86218] +[visit_exp (268)] +[visit_exp 268] +ps' = +[check_dims] +[check_dims] dim#20236 dim#20248 i#86300 i#86307 i#86314 i#86319 i#86326 lanetype#20236 lanetype#20248 shape_1#31 shape_2#31 zero#159 +dims \ = dim#20236, dim#20248, i#86300, i#86307, i#86314, i#86319, i#86326, lanetype#20236, lanetype#20248, shape_1#31, shape_2#31, zero#159 +[visit_exp `VCVTOP`_instr{shape_1#31, shape_2#31}(`%X%`_shape{lanetype#20236, dim#20236, i#86307}(`F32`_lanetype, `%`_dim{i#86314}(4)), `%X%`_shape{lanetype#20248, dim#20248, i#86319}(`F64`_lanetype, `%`_dim{i#86326}(2)), `DEMOTE`_vcvtop__{zero#159}(`ZERO`_zero))] +[visit_exp shape_1#31] +[visit_id shape_1#31] +[visit_exp shape_2#31] +[visit_id shape_2#31] +[visit_exp (`%X%`_shape{lanetype#20236, dim#20236, i#86307}(`F32`_lanetype, `%`_dim{i#86314}(4)), `%X%`_shape{lanetype#20248, dim#20248, i#86319}(`F64`_lanetype, `%`_dim{i#86326}(2)), `DEMOTE`_vcvtop__{zero#159}(`ZERO`_zero))] +[visit_exp `%X%`_shape{lanetype#20236, dim#20236, i#86307}(`F32`_lanetype, `%`_dim{i#86314}(4))] +[visit_exp lanetype#20236] +[visit_id lanetype#20236] +[visit_exp dim#20236] +[visit_id dim#20236] +[visit_exp i#86307] +[visit_id i#86307] +[visit_exp (`F32`_lanetype, `%`_dim{i#86314}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#86314}(4)] +[visit_exp i#86314] +[visit_id i#86314] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#20248, dim#20248, i#86319}(`F64`_lanetype, `%`_dim{i#86326}(2))] +[visit_exp lanetype#20248] +[visit_id lanetype#20248] +[visit_exp dim#20248] +[visit_id dim#20248] +[visit_exp i#86319] +[visit_id i#86319] +[visit_exp (`F64`_lanetype, `%`_dim{i#86326}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#86326}(2)] +[visit_exp i#86326] +[visit_id i#86326] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `DEMOTE`_vcvtop__{zero#159}(`ZERO`_zero)] +[visit_exp zero#159] +[visit_id zero#159] +[visit_exp (`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +[visit_exp `%`_u32{i#86300}(94)] +[visit_exp i#86300] +[visit_id i#86300] +[visit_exp (94)] +[visit_exp 94] +[check_dims] dim#20501 dim#20513 i#86770 i#86777 i#86784 i#86789 i#86796 lanetype#20501 lanetype#20513 shape_1#33 shape_2#33 +dims \ = dim#20501, dim#20513, i#86770, i#86777, i#86784, i#86789, i#86796, lanetype#20501, lanetype#20513, shape_1#33, shape_2#33 +[visit_exp `VCVTOP`_instr{shape_1#33, shape_2#33}(`%X%`_shape{lanetype#20501, dim#20501, i#86777}(`F64`_lanetype, `%`_dim{i#86784}(2)), `%X%`_shape{lanetype#20513, dim#20513, i#86789}(`F32`_lanetype, `%`_dim{i#86796}(4)), `PROMOTELOW`_vcvtop__)] +[visit_exp shape_1#33] +[visit_id shape_1#33] +[visit_exp shape_2#33] +[visit_id shape_2#33] +[visit_exp (`%X%`_shape{lanetype#20501, dim#20501, i#86777}(`F64`_lanetype, `%`_dim{i#86784}(2)), `%X%`_shape{lanetype#20513, dim#20513, i#86789}(`F32`_lanetype, `%`_dim{i#86796}(4)), `PROMOTELOW`_vcvtop__)] +[visit_exp `%X%`_shape{lanetype#20501, dim#20501, i#86777}(`F64`_lanetype, `%`_dim{i#86784}(2))] +[visit_exp lanetype#20501] +[visit_id lanetype#20501] +[visit_exp dim#20501] +[visit_id dim#20501] +[visit_exp i#86777] +[visit_id i#86777] +[visit_exp (`F64`_lanetype, `%`_dim{i#86784}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#86784}(2)] +[visit_exp i#86784] +[visit_id i#86784] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#20513, dim#20513, i#86789}(`F32`_lanetype, `%`_dim{i#86796}(4))] +[visit_exp lanetype#20513] +[visit_id lanetype#20513] +[visit_exp dim#20513] +[visit_id dim#20513] +[visit_exp i#86789] +[visit_id i#86789] +[visit_exp (`F32`_lanetype, `%`_dim{i#86796}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#86796}(4)] +[visit_exp i#86796] +[visit_id i#86796] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `PROMOTELOW`_vcvtop__] +[visit_exp ()] +[visit_exp `%`_u32{i#86770}(95)] +[visit_exp i#86770] +[visit_id i#86770] +[visit_exp (95)] +[visit_exp 95] +[check_dims] dim#20766 dim#20778 i#87240 i#87247 i#87254 i#87259 i#87266 lanetype#20766 lanetype#20778 shape_1#35 shape_2#35 sx#15127 zero?#135 +dims \ = dim#20766, dim#20778, i#87240, i#87247, i#87254, i#87259, i#87266, lanetype#20766, lanetype#20778, shape_1#35, shape_2#35, sx#15127, zero?#135 +[visit_exp `VCVTOP`_instr{shape_1#35, shape_2#35}(`%X%`_shape{lanetype#20766, dim#20766, i#87247}(`I32`_lanetype, `%`_dim{i#87254}(4)), `%X%`_shape{lanetype#20778, dim#20778, i#87259}(`F32`_lanetype, `%`_dim{i#87266}(4)), `TRUNC_SAT`_vcvtop__{sx#15127, `zero?#135`}(`S`_sx, ?()))] +[visit_exp shape_1#35] +[visit_id shape_1#35] +[visit_exp shape_2#35] +[visit_id shape_2#35] +[visit_exp (`%X%`_shape{lanetype#20766, dim#20766, i#87247}(`I32`_lanetype, `%`_dim{i#87254}(4)), `%X%`_shape{lanetype#20778, dim#20778, i#87259}(`F32`_lanetype, `%`_dim{i#87266}(4)), `TRUNC_SAT`_vcvtop__{sx#15127, `zero?#135`}(`S`_sx, ?()))] +[visit_exp `%X%`_shape{lanetype#20766, dim#20766, i#87247}(`I32`_lanetype, `%`_dim{i#87254}(4))] +[visit_exp lanetype#20766] +[visit_id lanetype#20766] +[visit_exp dim#20766] +[visit_id dim#20766] +[visit_exp i#87247] +[visit_id i#87247] +[visit_exp (`I32`_lanetype, `%`_dim{i#87254}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#87254}(4)] +[visit_exp i#87254] +[visit_id i#87254] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#20778, dim#20778, i#87259}(`F32`_lanetype, `%`_dim{i#87266}(4))] +[visit_exp lanetype#20778] +[visit_id lanetype#20778] +[visit_exp dim#20778] +[visit_id dim#20778] +[visit_exp i#87259] +[visit_id i#87259] +[visit_exp (`F32`_lanetype, `%`_dim{i#87266}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#87266}(4)] +[visit_exp i#87266] +[visit_id i#87266] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `TRUNC_SAT`_vcvtop__{sx#15127, `zero?#135`}(`S`_sx, ?())] +[visit_exp sx#15127] +[visit_id sx#15127] +[visit_exp `zero?#135`] +[visit_id zero?#135] +[visit_exp (`S`_sx, ?())] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp ?()] +[visit_exp `%`_u32{i#87240}(248)] +[visit_exp i#87240] +[visit_id i#87240] +[visit_exp (248)] +[visit_exp 248] +[check_dims] dim#20941 dim#20953 i#87560 i#87567 i#87574 i#87579 i#87586 lanetype#20941 lanetype#20953 shape_1#37 shape_2#37 sx#15191 zero?#199 +dims \ = dim#20941, dim#20953, i#87560, i#87567, i#87574, i#87579, i#87586, lanetype#20941, lanetype#20953, shape_1#37, shape_2#37, sx#15191, zero?#199 +[visit_exp `VCVTOP`_instr{shape_1#37, shape_2#37}(`%X%`_shape{lanetype#20941, dim#20941, i#87567}(`I32`_lanetype, `%`_dim{i#87574}(4)), `%X%`_shape{lanetype#20953, dim#20953, i#87579}(`F32`_lanetype, `%`_dim{i#87586}(4)), `TRUNC_SAT`_vcvtop__{sx#15191, `zero?#199`}(`U`_sx, ?()))] +[visit_exp shape_1#37] +[visit_id shape_1#37] +[visit_exp shape_2#37] +[visit_id shape_2#37] +[visit_exp (`%X%`_shape{lanetype#20941, dim#20941, i#87567}(`I32`_lanetype, `%`_dim{i#87574}(4)), `%X%`_shape{lanetype#20953, dim#20953, i#87579}(`F32`_lanetype, `%`_dim{i#87586}(4)), `TRUNC_SAT`_vcvtop__{sx#15191, `zero?#199`}(`U`_sx, ?()))] +[visit_exp `%X%`_shape{lanetype#20941, dim#20941, i#87567}(`I32`_lanetype, `%`_dim{i#87574}(4))] +[visit_exp lanetype#20941] +[visit_id lanetype#20941] +[visit_exp dim#20941] +[visit_id dim#20941] +[visit_exp i#87567] +[visit_id i#87567] +[visit_exp (`I32`_lanetype, `%`_dim{i#87574}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#87574}(4)] +[visit_exp i#87574] +[visit_id i#87574] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#20953, dim#20953, i#87579}(`F32`_lanetype, `%`_dim{i#87586}(4))] +[visit_exp lanetype#20953] +[visit_id lanetype#20953] +[visit_exp dim#20953] +[visit_id dim#20953] +[visit_exp i#87579] +[visit_id i#87579] +[visit_exp (`F32`_lanetype, `%`_dim{i#87586}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#87586}(4)] +[visit_exp i#87586] +[visit_id i#87586] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `TRUNC_SAT`_vcvtop__{sx#15191, `zero?#199`}(`U`_sx, ?())] +[visit_exp sx#15191] +[visit_id sx#15191] +[visit_exp `zero?#199`] +[visit_id zero?#199] +[visit_exp (`U`_sx, ?())] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp ?()] +[visit_exp `%`_u32{i#87560}(249)] +[visit_exp i#87560] +[visit_id i#87560] +[visit_exp (249)] +[visit_exp 249] +[check_dims] dim#21116 dim#21128 half?#39 i#87880 i#87887 i#87894 i#87899 i#87906 lanetype#21116 lanetype#21128 shape_1#39 shape_2#39 sx#15225 +dims \ = dim#21116, dim#21128, half?#39, i#87880, i#87887, i#87894, i#87899, i#87906, lanetype#21116, lanetype#21128, shape_1#39, shape_2#39, sx#15225 +[visit_exp `VCVTOP`_instr{shape_1#39, shape_2#39}(`%X%`_shape{lanetype#21116, dim#21116, i#87887}(`F32`_lanetype, `%`_dim{i#87894}(4)), `%X%`_shape{lanetype#21128, dim#21128, i#87899}(`I32`_lanetype, `%`_dim{i#87906}(4)), `CONVERT`_vcvtop__{`half?#39`, sx#15225}(?(), `S`_sx))] +[visit_exp shape_1#39] +[visit_id shape_1#39] +[visit_exp shape_2#39] +[visit_id shape_2#39] +[visit_exp (`%X%`_shape{lanetype#21116, dim#21116, i#87887}(`F32`_lanetype, `%`_dim{i#87894}(4)), `%X%`_shape{lanetype#21128, dim#21128, i#87899}(`I32`_lanetype, `%`_dim{i#87906}(4)), `CONVERT`_vcvtop__{`half?#39`, sx#15225}(?(), `S`_sx))] +[visit_exp `%X%`_shape{lanetype#21116, dim#21116, i#87887}(`F32`_lanetype, `%`_dim{i#87894}(4))] +[visit_exp lanetype#21116] +[visit_id lanetype#21116] +[visit_exp dim#21116] +[visit_id dim#21116] +[visit_exp i#87887] +[visit_id i#87887] +[visit_exp (`F32`_lanetype, `%`_dim{i#87894}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#87894}(4)] +[visit_exp i#87894] +[visit_id i#87894] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#21128, dim#21128, i#87899}(`I32`_lanetype, `%`_dim{i#87906}(4))] +[visit_exp lanetype#21128] +[visit_id lanetype#21128] +[visit_exp dim#21128] +[visit_id dim#21128] +[visit_exp i#87899] +[visit_id i#87899] +[visit_exp (`I32`_lanetype, `%`_dim{i#87906}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#87906}(4)] +[visit_exp i#87906] +[visit_id i#87906] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `CONVERT`_vcvtop__{`half?#39`, sx#15225}(?(), `S`_sx)] +[visit_exp `half?#39`] +[visit_id half?#39] +[visit_exp sx#15225] +[visit_id sx#15225] +[visit_exp (?(), `S`_sx)] +[visit_exp ?()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#87880}(250)] +[visit_exp i#87880] +[visit_id i#87880] +[visit_exp (250)] +[visit_exp 250] +[check_dims] dim#21321 dim#21333 half?#73 i#88290 i#88297 i#88304 i#88309 i#88316 lanetype#21321 lanetype#21333 shape_1#41 shape_2#41 sx#15259 +dims \ = dim#21321, dim#21333, half?#73, i#88290, i#88297, i#88304, i#88309, i#88316, lanetype#21321, lanetype#21333, shape_1#41, shape_2#41, sx#15259 +[visit_exp `VCVTOP`_instr{shape_1#41, shape_2#41}(`%X%`_shape{lanetype#21321, dim#21321, i#88297}(`F32`_lanetype, `%`_dim{i#88304}(4)), `%X%`_shape{lanetype#21333, dim#21333, i#88309}(`I32`_lanetype, `%`_dim{i#88316}(4)), `CONVERT`_vcvtop__{`half?#73`, sx#15259}(?(), `U`_sx))] +[visit_exp shape_1#41] +[visit_id shape_1#41] +[visit_exp shape_2#41] +[visit_id shape_2#41] +[visit_exp (`%X%`_shape{lanetype#21321, dim#21321, i#88297}(`F32`_lanetype, `%`_dim{i#88304}(4)), `%X%`_shape{lanetype#21333, dim#21333, i#88309}(`I32`_lanetype, `%`_dim{i#88316}(4)), `CONVERT`_vcvtop__{`half?#73`, sx#15259}(?(), `U`_sx))] +[visit_exp `%X%`_shape{lanetype#21321, dim#21321, i#88297}(`F32`_lanetype, `%`_dim{i#88304}(4))] +[visit_exp lanetype#21321] +[visit_id lanetype#21321] +[visit_exp dim#21321] +[visit_id dim#21321] +[visit_exp i#88297] +[visit_id i#88297] +[visit_exp (`F32`_lanetype, `%`_dim{i#88304}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#88304}(4)] +[visit_exp i#88304] +[visit_id i#88304] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#21333, dim#21333, i#88309}(`I32`_lanetype, `%`_dim{i#88316}(4))] +[visit_exp lanetype#21333] +[visit_id lanetype#21333] +[visit_exp dim#21333] +[visit_id dim#21333] +[visit_exp i#88309] +[visit_id i#88309] +[visit_exp (`I32`_lanetype, `%`_dim{i#88316}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#88316}(4)] +[visit_exp i#88316] +[visit_id i#88316] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `CONVERT`_vcvtop__{`half?#73`, sx#15259}(?(), `U`_sx)] +[visit_exp `half?#73`] +[visit_id half?#73] +[visit_exp sx#15259] +[visit_id sx#15259] +[visit_exp (?(), `U`_sx)] +[visit_exp ?()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#88290}(251)] +[visit_exp i#88290] +[visit_id i#88290] +[visit_exp (251)] +[visit_exp 251] +[check_dims] dim#21526 dim#21538 i#88700 i#88707 i#88714 i#88719 i#88726 lanetype#21526 lanetype#21538 shape_1#43 shape_2#43 sx#15323 zero?#263 +dims \ = dim#21526, dim#21538, i#88700, i#88707, i#88714, i#88719, i#88726, lanetype#21526, lanetype#21538, shape_1#43, shape_2#43, sx#15323, zero?#263 +[visit_exp `VCVTOP`_instr{shape_1#43, shape_2#43}(`%X%`_shape{lanetype#21526, dim#21526, i#88707}(`I32`_lanetype, `%`_dim{i#88714}(4)), `%X%`_shape{lanetype#21538, dim#21538, i#88719}(`F64`_lanetype, `%`_dim{i#88726}(2)), `TRUNC_SAT`_vcvtop__{sx#15323, `zero?#263`}(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp shape_1#43] +[visit_id shape_1#43] +[visit_exp shape_2#43] +[visit_id shape_2#43] +[visit_exp (`%X%`_shape{lanetype#21526, dim#21526, i#88707}(`I32`_lanetype, `%`_dim{i#88714}(4)), `%X%`_shape{lanetype#21538, dim#21538, i#88719}(`F64`_lanetype, `%`_dim{i#88726}(2)), `TRUNC_SAT`_vcvtop__{sx#15323, `zero?#263`}(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape{lanetype#21526, dim#21526, i#88707}(`I32`_lanetype, `%`_dim{i#88714}(4))] +[visit_exp lanetype#21526] +[visit_id lanetype#21526] +[visit_exp dim#21526] +[visit_id dim#21526] +[visit_exp i#88707] +[visit_id i#88707] +[visit_exp (`I32`_lanetype, `%`_dim{i#88714}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#88714}(4)] +[visit_exp i#88714] +[visit_id i#88714] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#21538, dim#21538, i#88719}(`F64`_lanetype, `%`_dim{i#88726}(2))] +[visit_exp lanetype#21538] +[visit_id lanetype#21538] +[visit_exp dim#21538] +[visit_id dim#21538] +[visit_exp i#88719] +[visit_id i#88719] +[visit_exp (`F64`_lanetype, `%`_dim{i#88726}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#88726}(2)] +[visit_exp i#88726] +[visit_id i#88726] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `TRUNC_SAT`_vcvtop__{sx#15323, `zero?#263`}(`S`_sx, ?(`ZERO`_zero))] +[visit_exp sx#15323] +[visit_id sx#15323] +[visit_exp `zero?#263`] +[visit_id zero?#263] +[visit_exp (`S`_sx, ?(`ZERO`_zero))] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp ?(`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +[visit_exp `%`_u32{i#88700}(252)] +[visit_exp i#88700] +[visit_id i#88700] +[visit_exp (252)] +[visit_exp 252] +[check_dims] dim#21701 dim#21713 i#89020 i#89027 i#89034 i#89039 i#89046 lanetype#21701 lanetype#21713 shape_1#45 shape_2#45 sx#15387 zero?#327 +dims \ = dim#21701, dim#21713, i#89020, i#89027, i#89034, i#89039, i#89046, lanetype#21701, lanetype#21713, shape_1#45, shape_2#45, sx#15387, zero?#327 +[visit_exp `VCVTOP`_instr{shape_1#45, shape_2#45}(`%X%`_shape{lanetype#21701, dim#21701, i#89027}(`I32`_lanetype, `%`_dim{i#89034}(4)), `%X%`_shape{lanetype#21713, dim#21713, i#89039}(`F64`_lanetype, `%`_dim{i#89046}(2)), `TRUNC_SAT`_vcvtop__{sx#15387, `zero?#327`}(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp shape_1#45] +[visit_id shape_1#45] +[visit_exp shape_2#45] +[visit_id shape_2#45] +[visit_exp (`%X%`_shape{lanetype#21701, dim#21701, i#89027}(`I32`_lanetype, `%`_dim{i#89034}(4)), `%X%`_shape{lanetype#21713, dim#21713, i#89039}(`F64`_lanetype, `%`_dim{i#89046}(2)), `TRUNC_SAT`_vcvtop__{sx#15387, `zero?#327`}(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape{lanetype#21701, dim#21701, i#89027}(`I32`_lanetype, `%`_dim{i#89034}(4))] +[visit_exp lanetype#21701] +[visit_id lanetype#21701] +[visit_exp dim#21701] +[visit_id dim#21701] +[visit_exp i#89027] +[visit_id i#89027] +[visit_exp (`I32`_lanetype, `%`_dim{i#89034}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#89034}(4)] +[visit_exp i#89034] +[visit_id i#89034] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#21713, dim#21713, i#89039}(`F64`_lanetype, `%`_dim{i#89046}(2))] +[visit_exp lanetype#21713] +[visit_id lanetype#21713] +[visit_exp dim#21713] +[visit_id dim#21713] +[visit_exp i#89039] +[visit_id i#89039] +[visit_exp (`F64`_lanetype, `%`_dim{i#89046}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#89046}(2)] +[visit_exp i#89046] +[visit_id i#89046] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `TRUNC_SAT`_vcvtop__{sx#15387, `zero?#327`}(`U`_sx, ?(`ZERO`_zero))] +[visit_exp sx#15387] +[visit_id sx#15387] +[visit_exp `zero?#327`] +[visit_id zero?#327] +[visit_exp (`U`_sx, ?(`ZERO`_zero))] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp ?(`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +[visit_exp `%`_u32{i#89020}(253)] +[visit_exp i#89020] +[visit_id i#89020] +[visit_exp (253)] +[visit_exp 253] +[check_dims] dim#21876 dim#21888 half?#107 i#89340 i#89347 i#89354 i#89359 i#89366 lanetype#21876 lanetype#21888 shape_1#47 shape_2#47 sx#15421 +dims \ = dim#21876, dim#21888, half?#107, i#89340, i#89347, i#89354, i#89359, i#89366, lanetype#21876, lanetype#21888, shape_1#47, shape_2#47, sx#15421 +[visit_exp `VCVTOP`_instr{shape_1#47, shape_2#47}(`%X%`_shape{lanetype#21876, dim#21876, i#89347}(`F64`_lanetype, `%`_dim{i#89354}(2)), `%X%`_shape{lanetype#21888, dim#21888, i#89359}(`I32`_lanetype, `%`_dim{i#89366}(4)), `CONVERT`_vcvtop__{`half?#107`, sx#15421}(?(`LOW`_half), `S`_sx))] +[visit_exp shape_1#47] +[visit_id shape_1#47] +[visit_exp shape_2#47] +[visit_id shape_2#47] +[visit_exp (`%X%`_shape{lanetype#21876, dim#21876, i#89347}(`F64`_lanetype, `%`_dim{i#89354}(2)), `%X%`_shape{lanetype#21888, dim#21888, i#89359}(`I32`_lanetype, `%`_dim{i#89366}(4)), `CONVERT`_vcvtop__{`half?#107`, sx#15421}(?(`LOW`_half), `S`_sx))] +[visit_exp `%X%`_shape{lanetype#21876, dim#21876, i#89347}(`F64`_lanetype, `%`_dim{i#89354}(2))] +[visit_exp lanetype#21876] +[visit_id lanetype#21876] +[visit_exp dim#21876] +[visit_id dim#21876] +[visit_exp i#89347] +[visit_id i#89347] +[visit_exp (`F64`_lanetype, `%`_dim{i#89354}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#89354}(2)] +[visit_exp i#89354] +[visit_id i#89354] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#21888, dim#21888, i#89359}(`I32`_lanetype, `%`_dim{i#89366}(4))] +[visit_exp lanetype#21888] +[visit_id lanetype#21888] +[visit_exp dim#21888] +[visit_id dim#21888] +[visit_exp i#89359] +[visit_id i#89359] +[visit_exp (`I32`_lanetype, `%`_dim{i#89366}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#89366}(4)] +[visit_exp i#89366] +[visit_id i#89366] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `CONVERT`_vcvtop__{`half?#107`, sx#15421}(?(`LOW`_half), `S`_sx)] +[visit_exp `half?#107`] +[visit_id half?#107] +[visit_exp sx#15421] +[visit_id sx#15421] +[visit_exp (?(`LOW`_half), `S`_sx)] +[visit_exp ?(`LOW`_half)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#89340}(254)] +[visit_exp i#89340] +[visit_id i#89340] +[visit_exp (254)] +[visit_exp 254] +[check_dims] dim#22081 dim#22093 half?#141 i#89750 i#89757 i#89764 i#89769 i#89776 lanetype#22081 lanetype#22093 shape_1#49 shape_2#49 sx#15455 +dims \ = dim#22081, dim#22093, half?#141, i#89750, i#89757, i#89764, i#89769, i#89776, lanetype#22081, lanetype#22093, shape_1#49, shape_2#49, sx#15455 +[visit_exp `VCVTOP`_instr{shape_1#49, shape_2#49}(`%X%`_shape{lanetype#22081, dim#22081, i#89757}(`F64`_lanetype, `%`_dim{i#89764}(2)), `%X%`_shape{lanetype#22093, dim#22093, i#89769}(`I32`_lanetype, `%`_dim{i#89776}(4)), `CONVERT`_vcvtop__{`half?#141`, sx#15455}(?(`LOW`_half), `U`_sx))] +[visit_exp shape_1#49] +[visit_id shape_1#49] +[visit_exp shape_2#49] +[visit_id shape_2#49] +[visit_exp (`%X%`_shape{lanetype#22081, dim#22081, i#89757}(`F64`_lanetype, `%`_dim{i#89764}(2)), `%X%`_shape{lanetype#22093, dim#22093, i#89769}(`I32`_lanetype, `%`_dim{i#89776}(4)), `CONVERT`_vcvtop__{`half?#141`, sx#15455}(?(`LOW`_half), `U`_sx))] +[visit_exp `%X%`_shape{lanetype#22081, dim#22081, i#89757}(`F64`_lanetype, `%`_dim{i#89764}(2))] +[visit_exp lanetype#22081] +[visit_id lanetype#22081] +[visit_exp dim#22081] +[visit_id dim#22081] +[visit_exp i#89757] +[visit_id i#89757] +[visit_exp (`F64`_lanetype, `%`_dim{i#89764}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#89764}(2)] +[visit_exp i#89764] +[visit_id i#89764] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#22093, dim#22093, i#89769}(`I32`_lanetype, `%`_dim{i#89776}(4))] +[visit_exp lanetype#22093] +[visit_id lanetype#22093] +[visit_exp dim#22093] +[visit_id dim#22093] +[visit_exp i#89769] +[visit_id i#89769] +[visit_exp (`I32`_lanetype, `%`_dim{i#89776}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#89776}(4)] +[visit_exp i#89776] +[visit_id i#89776] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `CONVERT`_vcvtop__{`half?#141`, sx#15455}(?(`LOW`_half), `U`_sx)] +[visit_exp `half?#141`] +[visit_id half?#141] +[visit_exp sx#15455] +[visit_id sx#15455] +[visit_exp (?(`LOW`_half), `U`_sx)] +[visit_exp ?(`LOW`_half)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp `%`_u32{i#89750}(255)] +[visit_exp i#89750] +[visit_id i#89750] +[visit_exp (255)] +[visit_exp 255] +[check_dims] dim#22286 dim#22298 i#90160 i#90167 i#90174 i#90179 i#90186 lanetype#22286 lanetype#22298 shape_1#51 shape_2#51 sx#15519 zero?#391 +dims \ = dim#22286, dim#22298, i#90160, i#90167, i#90174, i#90179, i#90186, lanetype#22286, lanetype#22298, shape_1#51, shape_2#51, sx#15519, zero?#391 +[visit_exp `VCVTOP`_instr{shape_1#51, shape_2#51}(`%X%`_shape{lanetype#22286, dim#22286, i#90167}(`I32`_lanetype, `%`_dim{i#90174}(4)), `%X%`_shape{lanetype#22298, dim#22298, i#90179}(`F32`_lanetype, `%`_dim{i#90186}(4)), `RELAXED_TRUNC`_vcvtop__{sx#15519, `zero?#391`}(`S`_sx, ?()))] +[visit_exp shape_1#51] +[visit_id shape_1#51] +[visit_exp shape_2#51] +[visit_id shape_2#51] +[visit_exp (`%X%`_shape{lanetype#22286, dim#22286, i#90167}(`I32`_lanetype, `%`_dim{i#90174}(4)), `%X%`_shape{lanetype#22298, dim#22298, i#90179}(`F32`_lanetype, `%`_dim{i#90186}(4)), `RELAXED_TRUNC`_vcvtop__{sx#15519, `zero?#391`}(`S`_sx, ?()))] +[visit_exp `%X%`_shape{lanetype#22286, dim#22286, i#90167}(`I32`_lanetype, `%`_dim{i#90174}(4))] +[visit_exp lanetype#22286] +[visit_id lanetype#22286] +[visit_exp dim#22286] +[visit_id dim#22286] +[visit_exp i#90167] +[visit_id i#90167] +[visit_exp (`I32`_lanetype, `%`_dim{i#90174}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#90174}(4)] +[visit_exp i#90174] +[visit_id i#90174] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#22298, dim#22298, i#90179}(`F32`_lanetype, `%`_dim{i#90186}(4))] +[visit_exp lanetype#22298] +[visit_id lanetype#22298] +[visit_exp dim#22298] +[visit_id dim#22298] +[visit_exp i#90179] +[visit_id i#90179] +[visit_exp (`F32`_lanetype, `%`_dim{i#90186}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#90186}(4)] +[visit_exp i#90186] +[visit_id i#90186] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#15519, `zero?#391`}(`S`_sx, ?())] +[visit_exp sx#15519] +[visit_id sx#15519] +[visit_exp `zero?#391`] +[visit_id zero?#391] +[visit_exp (`S`_sx, ?())] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp ?()] +[visit_exp `%`_u32{i#90160}(257)] +[visit_exp i#90160] +[visit_id i#90160] +[visit_exp (257)] +[visit_exp 257] +[check_dims] dim#22461 dim#22473 i#90480 i#90487 i#90494 i#90499 i#90506 lanetype#22461 lanetype#22473 shape_1#53 shape_2#53 sx#15583 zero?#455 +dims \ = dim#22461, dim#22473, i#90480, i#90487, i#90494, i#90499, i#90506, lanetype#22461, lanetype#22473, shape_1#53, shape_2#53, sx#15583, zero?#455 +[visit_exp `VCVTOP`_instr{shape_1#53, shape_2#53}(`%X%`_shape{lanetype#22461, dim#22461, i#90487}(`I32`_lanetype, `%`_dim{i#90494}(4)), `%X%`_shape{lanetype#22473, dim#22473, i#90499}(`F32`_lanetype, `%`_dim{i#90506}(4)), `RELAXED_TRUNC`_vcvtop__{sx#15583, `zero?#455`}(`U`_sx, ?()))] +[visit_exp shape_1#53] +[visit_id shape_1#53] +[visit_exp shape_2#53] +[visit_id shape_2#53] +[visit_exp (`%X%`_shape{lanetype#22461, dim#22461, i#90487}(`I32`_lanetype, `%`_dim{i#90494}(4)), `%X%`_shape{lanetype#22473, dim#22473, i#90499}(`F32`_lanetype, `%`_dim{i#90506}(4)), `RELAXED_TRUNC`_vcvtop__{sx#15583, `zero?#455`}(`U`_sx, ?()))] +[visit_exp `%X%`_shape{lanetype#22461, dim#22461, i#90487}(`I32`_lanetype, `%`_dim{i#90494}(4))] +[visit_exp lanetype#22461] +[visit_id lanetype#22461] +[visit_exp dim#22461] +[visit_id dim#22461] +[visit_exp i#90487] +[visit_id i#90487] +[visit_exp (`I32`_lanetype, `%`_dim{i#90494}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#90494}(4)] +[visit_exp i#90494] +[visit_id i#90494] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#22473, dim#22473, i#90499}(`F32`_lanetype, `%`_dim{i#90506}(4))] +[visit_exp lanetype#22473] +[visit_id lanetype#22473] +[visit_exp dim#22473] +[visit_id dim#22473] +[visit_exp i#90499] +[visit_id i#90499] +[visit_exp (`F32`_lanetype, `%`_dim{i#90506}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#90506}(4)] +[visit_exp i#90506] +[visit_id i#90506] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#15583, `zero?#455`}(`U`_sx, ?())] +[visit_exp sx#15583] +[visit_id sx#15583] +[visit_exp `zero?#455`] +[visit_id zero?#455] +[visit_exp (`U`_sx, ?())] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp ?()] +[visit_exp `%`_u32{i#90480}(258)] +[visit_exp i#90480] +[visit_id i#90480] +[visit_exp (258)] +[visit_exp 258] +[check_dims] dim#22636 dim#22648 i#90800 i#90807 i#90814 i#90819 i#90826 lanetype#22636 lanetype#22648 shape_1#55 shape_2#55 sx#15647 zero?#519 +dims \ = dim#22636, dim#22648, i#90800, i#90807, i#90814, i#90819, i#90826, lanetype#22636, lanetype#22648, shape_1#55, shape_2#55, sx#15647, zero?#519 +[visit_exp `VCVTOP`_instr{shape_1#55, shape_2#55}(`%X%`_shape{lanetype#22636, dim#22636, i#90807}(`I32`_lanetype, `%`_dim{i#90814}(4)), `%X%`_shape{lanetype#22648, dim#22648, i#90819}(`F64`_lanetype, `%`_dim{i#90826}(2)), `RELAXED_TRUNC`_vcvtop__{sx#15647, `zero?#519`}(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp shape_1#55] +[visit_id shape_1#55] +[visit_exp shape_2#55] +[visit_id shape_2#55] +[visit_exp (`%X%`_shape{lanetype#22636, dim#22636, i#90807}(`I32`_lanetype, `%`_dim{i#90814}(4)), `%X%`_shape{lanetype#22648, dim#22648, i#90819}(`F64`_lanetype, `%`_dim{i#90826}(2)), `RELAXED_TRUNC`_vcvtop__{sx#15647, `zero?#519`}(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape{lanetype#22636, dim#22636, i#90807}(`I32`_lanetype, `%`_dim{i#90814}(4))] +[visit_exp lanetype#22636] +[visit_id lanetype#22636] +[visit_exp dim#22636] +[visit_id dim#22636] +[visit_exp i#90807] +[visit_id i#90807] +[visit_exp (`I32`_lanetype, `%`_dim{i#90814}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#90814}(4)] +[visit_exp i#90814] +[visit_id i#90814] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#22648, dim#22648, i#90819}(`F64`_lanetype, `%`_dim{i#90826}(2))] +[visit_exp lanetype#22648] +[visit_id lanetype#22648] +[visit_exp dim#22648] +[visit_id dim#22648] +[visit_exp i#90819] +[visit_id i#90819] +[visit_exp (`F64`_lanetype, `%`_dim{i#90826}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#90826}(2)] +[visit_exp i#90826] +[visit_id i#90826] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#15647, `zero?#519`}(`S`_sx, ?(`ZERO`_zero))] +[visit_exp sx#15647] +[visit_id sx#15647] +[visit_exp `zero?#519`] +[visit_id zero?#519] +[visit_exp (`S`_sx, ?(`ZERO`_zero))] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp ?(`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +[visit_exp `%`_u32{i#90800}(259)] +[visit_exp i#90800] +[visit_id i#90800] +[visit_exp (259)] +[visit_exp 259] +[check_dims] dim#22811 dim#22823 i#91120 i#91127 i#91134 i#91139 i#91146 lanetype#22811 lanetype#22823 shape_1#57 shape_2#57 sx#15711 zero?#583 +dims \ = dim#22811, dim#22823, i#91120, i#91127, i#91134, i#91139, i#91146, lanetype#22811, lanetype#22823, shape_1#57, shape_2#57, sx#15711, zero?#583 +[visit_exp `VCVTOP`_instr{shape_1#57, shape_2#57}(`%X%`_shape{lanetype#22811, dim#22811, i#91127}(`I32`_lanetype, `%`_dim{i#91134}(4)), `%X%`_shape{lanetype#22823, dim#22823, i#91139}(`F64`_lanetype, `%`_dim{i#91146}(2)), `RELAXED_TRUNC`_vcvtop__{sx#15711, `zero?#583`}(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp shape_1#57] +[visit_id shape_1#57] +[visit_exp shape_2#57] +[visit_id shape_2#57] +[visit_exp (`%X%`_shape{lanetype#22811, dim#22811, i#91127}(`I32`_lanetype, `%`_dim{i#91134}(4)), `%X%`_shape{lanetype#22823, dim#22823, i#91139}(`F64`_lanetype, `%`_dim{i#91146}(2)), `RELAXED_TRUNC`_vcvtop__{sx#15711, `zero?#583`}(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape{lanetype#22811, dim#22811, i#91127}(`I32`_lanetype, `%`_dim{i#91134}(4))] +[visit_exp lanetype#22811] +[visit_id lanetype#22811] +[visit_exp dim#22811] +[visit_id dim#22811] +[visit_exp i#91127] +[visit_id i#91127] +[visit_exp (`I32`_lanetype, `%`_dim{i#91134}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#91134}(4)] +[visit_exp i#91134] +[visit_id i#91134] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#22823, dim#22823, i#91139}(`F64`_lanetype, `%`_dim{i#91146}(2))] +[visit_exp lanetype#22823] +[visit_id lanetype#22823] +[visit_exp dim#22823] +[visit_id dim#22823] +[visit_exp i#91139] +[visit_id i#91139] +[visit_exp (`F64`_lanetype, `%`_dim{i#91146}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#91146}(2)] +[visit_exp i#91146] +[visit_id i#91146] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#15711, `zero?#583`}(`U`_sx, ?(`ZERO`_zero))] +[visit_exp sx#15711] +[visit_id sx#15711] +[visit_exp `zero?#583`] +[visit_id zero?#583] +[visit_exp (`U`_sx, ?(`ZERO`_zero))] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp ?(`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +[visit_exp `%`_u32{i#91120}(260)] +[visit_exp i#91120] +[visit_id i#91120] +[visit_exp (260)] +[visit_exp 260] +ps' = +[check_dims] +[check_dims] in +dims \ = in +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] no dims +[visit_id in*] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] not free +[visit_id in*] no dims +[check_dims] +ps' = (N : N, syntax en, grammar BX : en*) +[check_dims] N en +[check_dims] N en i#91425 i#91448 len +dims \ N = en, i#91425, i#91448, len +[visit_exp en*{en <- `en*`}] +[scope_enter en] +[visit_exp en] +[visit_id en] not free +[visit_id en] not free +[scope_exit en] +[visit_exp `en*`] +[visit_id en*] no dims +[visit_id en*] +[visit_exp `%`_byte{i#91425}(N)] +[visit_exp i#91425] +[visit_id i#91425] +[visit_exp (N)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp `%`_u32{i#91448}(len)] +[visit_exp i#91448] +[visit_id i#91448] +[visit_exp (len)] +[visit_exp len] +[visit_id len] +[visit_exp en*{en <- `en*`}] +[scope_enter en] +[visit_exp en] +[visit_id en] not free +[visit_id en] not free +[scope_exit en] +[visit_exp `en*`] +[visit_id en*] not free +[visit_id en*] no dims +[visit_exp (len = 0)] +[visit_exp len] +[visit_id len] not free +[visit_exp 0] +[check_dims] N +dims \ N = +[visit_exp []] +[visit_id N] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp []] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ((), ()).1] +[visit_exp ((), ())] +[visit_exp ()] +[visit_exp ()] +[visit_exp 0] +ps' = +[check_dims] +[check_dims] qt rectype#1727 +dims \ = qt, rectype#1727 +[visit_exp `TYPE`_type{rectype#1727}(qt)] +[visit_exp rectype#1727] +[visit_id rectype#1727] +[visit_exp (qt)] +[visit_exp qt] +[visit_id qt] +[visit_exp qt] +[visit_id qt] not free +ps' = +[check_dims] +[check_dims] ty +dims \ = ty +[visit_exp ty*{ty <- `ty*`}] +[scope_enter ty] +[visit_exp ty] +[visit_id ty] not free +[visit_id ty] not free +[scope_exit ty] +[visit_exp `ty*`] +[visit_id ty*] no dims +[visit_id ty*] +[visit_exp ty*{ty <- `ty*`}] +[scope_enter ty] +[visit_exp ty] +[visit_id ty] not free +[visit_id ty] not free +[scope_exit ty] +[visit_exp `ty*`] +[visit_id ty*] not free +[visit_id ty*] no dims +[visit_exp 1] +ps' = +[check_dims] +[check_dims] externtype#247 name#6185 nm_1 nm_2 xt +dims \ = externtype#247, name#6185, nm_1, nm_2, xt +[visit_exp `IMPORT`_import{name#6185, externtype#247}(nm_1, nm_2, xt)] +[visit_exp name#6185] +[visit_id name#6185] +[visit_exp externtype#247] +[visit_id externtype#247] +[visit_exp (nm_1, nm_2, xt)] +[visit_exp nm_1] +[visit_id nm_1] +[visit_exp nm_2] +[visit_id nm_2] +[visit_exp xt] +[visit_id xt] +[visit_exp nm_1] +[visit_id nm_1] not free +[visit_exp nm_2] +[visit_id nm_2] not free +[visit_exp xt] +[visit_id xt] not free +ps' = +[check_dims] +[check_dims] im +dims \ = im +[visit_exp im*{im <- `im*`}] +[scope_enter im] +[visit_exp im] +[visit_id im] not free +[visit_id im] not free +[scope_exit im] +[visit_exp `im*`] +[visit_id im*] no dims +[visit_id im*] +[visit_exp im*{im <- `im*`}] +[scope_enter im] +[visit_exp im] +[visit_id im] not free +[visit_id im] not free +[scope_exit im] +[visit_exp `im*`] +[visit_id im*] not free +[visit_id im*] no dims +[visit_exp 2] +ps' = +[check_dims] +[check_dims] x +dims \ = x +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[visit_exp 3] +ps' = +[check_dims] +[check_dims] addrtype#1433 at expr#4835 heaptype#1729 heaptype#1741 ht lim limits#1433 null?#1675 reftype#3999 tabletype#1130 tt +dims \ = addrtype#1433, at, expr#4835, heaptype#1729, heaptype#1741, ht, lim, limits#1433, null?#1675, reftype#3999, tabletype#1130, tt +[visit_exp `TABLE`_table{tabletype#1130, expr#4835}(tt, [`REF.NULL`_instr{heaptype#1729}(ht)])] +[visit_exp tabletype#1130] +[visit_id tabletype#1130] +[visit_exp expr#4835] +[visit_id expr#4835] +[visit_exp (tt, [`REF.NULL`_instr{heaptype#1729}(ht)])] +[visit_exp tt] +[visit_id tt] +[visit_exp [`REF.NULL`_instr{heaptype#1729}(ht)]] +[visit_exp `REF.NULL`_instr{heaptype#1729}(ht)] +[visit_exp heaptype#1729] +[visit_id heaptype#1729] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp tt] +[visit_id tt] not free +[visit_exp (tt = `%%%`_tabletype{addrtype#1433, limits#1433, reftype#3999}(at, lim, `REF`_reftype{`null?#1675`, heaptype#1741}(`NULL`_null?{}, ht)))] +[visit_exp tt] +[visit_id tt] not free +[visit_exp `%%%`_tabletype{addrtype#1433, limits#1433, reftype#3999}(at, lim, `REF`_reftype{`null?#1675`, heaptype#1741}(`NULL`_null?{}, ht))] +[visit_exp addrtype#1433] +[visit_id addrtype#1433] +[visit_exp limits#1433] +[visit_id limits#1433] +[visit_exp reftype#3999] +[visit_id reftype#3999] +[visit_exp (at, lim, `REF`_reftype{`null?#1675`, heaptype#1741}(`NULL`_null?{}, ht))] +[visit_exp at] +[visit_id at] +[visit_exp lim] +[visit_id lim] +[visit_exp `REF`_reftype{`null?#1675`, heaptype#1741}(`NULL`_null?{}, ht)] +[visit_exp `null?#1675`] +[visit_id null?#1675] +[visit_exp heaptype#1741] +[visit_id heaptype#1741] +[visit_exp (`NULL`_null?{}, ht)] +[visit_exp `NULL`_null?{}] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp ht] +[visit_id ht] not free +[check_dims] e expr#4847 tabletype#1142 tt +dims \ = e, expr#4847, tabletype#1142, tt +[visit_exp `TABLE`_table{tabletype#1142, expr#4847}(tt, e)] +[visit_exp tabletype#1142] +[visit_id tabletype#1142] +[visit_exp expr#4847] +[visit_id expr#4847] +[visit_exp (tt, e)] +[visit_exp tt] +[visit_id tt] +[visit_exp e] +[visit_id e] +[visit_exp tt] +[visit_id tt] not free +[visit_exp e] +[visit_id e] not free +ps' = +[check_dims] +[check_dims] tab +dims \ = tab +[visit_exp tab*{tab <- `tab*`}] +[scope_enter tab] +[visit_exp tab] +[visit_id tab] not free +[visit_id tab] not free +[scope_exit tab] +[visit_exp `tab*`] +[visit_id tab*] no dims +[visit_id tab*] +[visit_exp tab*{tab <- `tab*`}] +[scope_enter tab] +[visit_exp tab] +[visit_id tab] not free +[visit_id tab] not free +[scope_exit tab] +[visit_exp `tab*`] +[visit_id tab*] not free +[visit_id tab*] no dims +[visit_exp 4] +ps' = +[check_dims] +[check_dims] memtype#734 mt +dims \ = memtype#734, mt +[visit_exp `MEMORY`_mem{memtype#734}(mt)] +[visit_exp memtype#734] +[visit_id memtype#734] +[visit_exp (mt)] +[visit_exp mt] +[visit_id mt] +[visit_exp mt] +[visit_id mt] not free +ps' = +[check_dims] +[check_dims] mem +dims \ = mem +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] no dims +[visit_id mem*] +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] not free +[visit_id mem*] no dims +[visit_exp 5] +ps' = +[check_dims] +[check_dims] e expr#4883 globaltype#2285 gt +dims \ = e, expr#4883, globaltype#2285, gt +[visit_exp `GLOBAL`_global{globaltype#2285, expr#4883}(gt, e)] +[visit_exp globaltype#2285] +[visit_id globaltype#2285] +[visit_exp expr#4883] +[visit_id expr#4883] +[visit_exp (gt, e)] +[visit_exp gt] +[visit_id gt] +[visit_exp e] +[visit_id e] +[visit_exp gt] +[visit_id gt] not free +[visit_exp e] +[visit_id e] not free +ps' = +[check_dims] +[check_dims] glob +dims \ = glob +[visit_exp glob*{glob <- `glob*`}] +[scope_enter glob] +[visit_exp glob] +[visit_id glob] not free +[visit_id glob] not free +[scope_exit glob] +[visit_exp `glob*`] +[visit_id glob*] no dims +[visit_id glob*] +[visit_exp glob*{glob <- `glob*`}] +[scope_enter glob] +[visit_exp glob] +[visit_id glob] not free +[visit_id glob] not free +[scope_exit glob] +[visit_exp `glob*`] +[visit_id glob*] not free +[visit_id glob*] no dims +[visit_exp 6] +ps' = +[check_dims] +[check_dims] externidx#5797 name#6238 nm xx +dims \ = externidx#5797, name#6238, nm, xx +[visit_exp `EXPORT`_export{name#6238, externidx#5797}(nm, xx)] +[visit_exp name#6238] +[visit_id name#6238] +[visit_exp externidx#5797] +[visit_id externidx#5797] +[visit_exp (nm, xx)] +[visit_exp nm] +[visit_id nm] +[visit_exp xx] +[visit_id xx] +[visit_exp nm] +[visit_id nm] not free +[visit_exp xx] +[visit_id xx] not free +ps' = +[check_dims] +[check_dims] ex +dims \ = ex +[visit_exp ex*{ex <- `ex*`}] +[scope_enter ex] +[visit_exp ex] +[visit_id ex] not free +[visit_id ex] not free +[scope_exit ex] +[visit_exp `ex*`] +[visit_id ex*] no dims +[visit_id ex*] +[visit_exp ex*{ex <- `ex*`}] +[scope_enter ex] +[visit_exp ex] +[visit_id ex] not free +[visit_id ex] not free +[scope_exit ex] +[visit_exp `ex*`] +[visit_id ex*] not free +[visit_id ex*] no dims +[visit_exp 7] +ps' = +[check_dims] +[check_dims] funcidx#3179 x +dims \ = funcidx#3179, x +[visit_exp [`START`_start{funcidx#3179}(x)]] +[visit_exp `START`_start{funcidx#3179}(x)] +[visit_exp funcidx#3179] +[visit_id funcidx#3179] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] +ps' = +[check_dims] +[check_dims] startopt +dims \ = startopt +[visit_exp $opt_(syntax start, startopt)] +[visit_exp startopt] +[visit_id startopt] +[visit_exp startopt] +[visit_id startopt] not free +[visit_exp 8] +ps' = +[check_dims] +[check_dims] heaptype#1753 null?#1687 +dims \ = heaptype#1753, null?#1687 +[visit_exp `REF`_reftype{`null?#1687`, heaptype#1753}(?(`NULL`_null), `FUNC`_heaptype)] +[visit_exp `null?#1687`] +[visit_id null?#1687] +[visit_exp heaptype#1753] +[visit_id heaptype#1753] +[visit_exp (?(`NULL`_null), `FUNC`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `FUNC`_heaptype] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] e_o elemmode#3307 expr#4909 expr*#3307 funcidx#3213 heaptype#1765 i#91592 i#91655 null?#1699 reftype#4023 tableidx#144 y +dims \ = e_o, elemmode#3307, expr#4909, expr*#3307, funcidx#3213, heaptype#1765, i#91592, i#91655, null?#1699, reftype#4023, tableidx#144, y +[visit_exp `ELEM`_elem{reftype#4023, `expr*#3307`, elemmode#3307}(`REF`_reftype{`null?#1699`, heaptype#1765}(?(), `FUNC`_heaptype), [`REF.FUNC`_instr{funcidx#3213}(y)*{funcidx#3213 <- `funcidx#3213*`, y <- `y*`}], `ACTIVE`_elemmode{tableidx#144, expr#4909}(`%`_tableidx{i#91655}(0), e_o))] +[visit_exp reftype#4023] +[visit_id reftype#4023] +[visit_exp `expr*#3307`] +[visit_id expr*#3307] +[visit_exp elemmode#3307] +[visit_id elemmode#3307] +[visit_exp (`REF`_reftype{`null?#1699`, heaptype#1765}(?(), `FUNC`_heaptype), [`REF.FUNC`_instr{funcidx#3213}(y)*{funcidx#3213 <- `funcidx#3213*`, y <- `y*`}], `ACTIVE`_elemmode{tableidx#144, expr#4909}(`%`_tableidx{i#91655}(0), e_o))] +[visit_exp `REF`_reftype{`null?#1699`, heaptype#1765}(?(), `FUNC`_heaptype)] +[visit_exp `null?#1699`] +[visit_id null?#1699] +[visit_exp heaptype#1765] +[visit_id heaptype#1765] +[visit_exp (?(), `FUNC`_heaptype)] +[visit_exp ?()] +[visit_exp `FUNC`_heaptype] +[visit_exp ()] +[visit_exp [`REF.FUNC`_instr{funcidx#3213}(y)*{funcidx#3213 <- `funcidx#3213*`, y <- `y*`}]] +[visit_exp `REF.FUNC`_instr{funcidx#3213}(y)*{funcidx#3213 <- `funcidx#3213*`, y <- `y*`}] +[scope_enter funcidx#3213] +[scope_enter y] +[visit_exp `REF.FUNC`_instr{funcidx#3213}(y)] +[visit_exp funcidx#3213] +[visit_id funcidx#3213] not free +[visit_exp (y)] +[visit_exp y] +[visit_id y] not free +[visit_id funcidx#3213] not free +[visit_id y] not free +[scope_exit y] +[scope_exit funcidx#3213] +[visit_exp `funcidx#3213*`] +[visit_id funcidx#3213*] no dims +[visit_id funcidx#3213*] +[visit_exp `y*`] +[visit_id y*] no dims +[visit_id y*] +[visit_exp `ACTIVE`_elemmode{tableidx#144, expr#4909}(`%`_tableidx{i#91655}(0), e_o)] +[visit_exp tableidx#144] +[visit_id tableidx#144] +[visit_exp expr#4909] +[visit_id expr#4909] +[visit_exp (`%`_tableidx{i#91655}(0), e_o)] +[visit_exp `%`_tableidx{i#91655}(0)] +[visit_exp i#91655] +[visit_id i#91655] +[visit_exp (0)] +[visit_exp 0] +[visit_exp e_o] +[visit_id e_o] +[visit_exp `%`_u32{i#91592}(0)] +[visit_exp i#91592] +[visit_id i#91592] +[visit_exp (0)] +[visit_exp 0] +[visit_exp e_o] +[visit_id e_o] not free +[visit_exp y*{y <- `y*`}] +[scope_enter y] +[visit_exp y] +[visit_id y] not free +[visit_id y] not free +[scope_exit y] +[visit_exp `y*`] +[visit_id y*] not free +[visit_id y*] no dims +[check_dims] elemmode#3319 expr*#3319 funcidx#3215 i#91678 reftype#4035 rt y +dims \ = elemmode#3319, expr*#3319, funcidx#3215, i#91678, reftype#4035, rt, y +[visit_exp `ELEM`_elem{reftype#4035, `expr*#3319`, elemmode#3319}(rt, [`REF.FUNC`_instr{funcidx#3215}(y)*{funcidx#3215 <- `funcidx#3215*`, y <- `y*`}], `PASSIVE`_elemmode)] +[visit_exp reftype#4035] +[visit_id reftype#4035] +[visit_exp `expr*#3319`] +[visit_id expr*#3319] +[visit_exp elemmode#3319] +[visit_id elemmode#3319] +[visit_exp (rt, [`REF.FUNC`_instr{funcidx#3215}(y)*{funcidx#3215 <- `funcidx#3215*`, y <- `y*`}], `PASSIVE`_elemmode)] +[visit_exp rt] +[visit_id rt] +[visit_exp [`REF.FUNC`_instr{funcidx#3215}(y)*{funcidx#3215 <- `funcidx#3215*`, y <- `y*`}]] +[visit_exp `REF.FUNC`_instr{funcidx#3215}(y)*{funcidx#3215 <- `funcidx#3215*`, y <- `y*`}] +[scope_enter funcidx#3215] +[scope_enter y] +[visit_exp `REF.FUNC`_instr{funcidx#3215}(y)] +[visit_exp funcidx#3215] +[visit_id funcidx#3215] not free +[visit_exp (y)] +[visit_exp y] +[visit_id y] not free +[visit_id funcidx#3215] not free +[visit_id y] not free +[scope_exit y] +[scope_exit funcidx#3215] +[visit_exp `funcidx#3215*`] +[visit_id funcidx#3215*] no dims +[visit_id funcidx#3215*] +[visit_exp `y*`] +[visit_id y*] no dims +[visit_id y*] +[visit_exp `PASSIVE`_elemmode] +[visit_exp ()] +[visit_exp `%`_u32{i#91678}(1)] +[visit_exp i#91678] +[visit_id i#91678] +[visit_exp (1)] +[visit_exp 1] +[visit_exp rt] +[visit_id rt] not free +[visit_exp y*{y <- `y*`}] +[scope_enter y] +[visit_exp y] +[visit_id y] not free +[visit_id y] not free +[scope_exit y] +[visit_exp `y*`] +[visit_id y*] not free +[visit_id y*] no dims +[check_dims] e elemmode#3331 expr#4911 expr*#3331 funcidx#3217 i#91742 reftype#4047 rt tableidx#146 x y +dims \ = e, elemmode#3331, expr#4911, expr*#3331, funcidx#3217, i#91742, reftype#4047, rt, tableidx#146, x, y +[visit_exp `ELEM`_elem{reftype#4047, `expr*#3331`, elemmode#3331}(rt, [`REF.FUNC`_instr{funcidx#3217}(y)*{funcidx#3217 <- `funcidx#3217*`, y <- `y*`}], `ACTIVE`_elemmode{tableidx#146, expr#4911}(x, e))] +[visit_exp reftype#4047] +[visit_id reftype#4047] +[visit_exp `expr*#3331`] +[visit_id expr*#3331] +[visit_exp elemmode#3331] +[visit_id elemmode#3331] +[visit_exp (rt, [`REF.FUNC`_instr{funcidx#3217}(y)*{funcidx#3217 <- `funcidx#3217*`, y <- `y*`}], `ACTIVE`_elemmode{tableidx#146, expr#4911}(x, e))] +[visit_exp rt] +[visit_id rt] +[visit_exp [`REF.FUNC`_instr{funcidx#3217}(y)*{funcidx#3217 <- `funcidx#3217*`, y <- `y*`}]] +[visit_exp `REF.FUNC`_instr{funcidx#3217}(y)*{funcidx#3217 <- `funcidx#3217*`, y <- `y*`}] +[scope_enter funcidx#3217] +[scope_enter y] +[visit_exp `REF.FUNC`_instr{funcidx#3217}(y)] +[visit_exp funcidx#3217] +[visit_id funcidx#3217] not free +[visit_exp (y)] +[visit_exp y] +[visit_id y] not free +[visit_id funcidx#3217] not free +[visit_id y] not free +[scope_exit y] +[scope_exit funcidx#3217] +[visit_exp `funcidx#3217*`] +[visit_id funcidx#3217*] no dims +[visit_id funcidx#3217*] +[visit_exp `y*`] +[visit_id y*] no dims +[visit_id y*] +[visit_exp `ACTIVE`_elemmode{tableidx#146, expr#4911}(x, e)] +[visit_exp tableidx#146] +[visit_id tableidx#146] +[visit_exp expr#4911] +[visit_id expr#4911] +[visit_exp (x, e)] +[visit_exp x] +[visit_id x] +[visit_exp e] +[visit_id e] +[visit_exp `%`_u32{i#91742}(2)] +[visit_exp i#91742] +[visit_id i#91742] +[visit_exp (2)] +[visit_exp 2] +[visit_exp x] +[visit_id x] not free +[visit_exp e] +[visit_id e] not free +[visit_exp rt] +[visit_id rt] not free +[visit_exp y*{y <- `y*`}] +[scope_enter y] +[visit_exp y] +[visit_id y] not free +[visit_id y] not free +[scope_exit y] +[visit_exp `y*`] +[visit_id y*] not free +[visit_id y*] no dims +[check_dims] elemmode#3343 expr*#3343 funcidx#3219 i#91837 reftype#4059 rt y +dims \ = elemmode#3343, expr*#3343, funcidx#3219, i#91837, reftype#4059, rt, y +[visit_exp `ELEM`_elem{reftype#4059, `expr*#3343`, elemmode#3343}(rt, [`REF.FUNC`_instr{funcidx#3219}(y)*{funcidx#3219 <- `funcidx#3219*`, y <- `y*`}], `DECLARE`_elemmode)] +[visit_exp reftype#4059] +[visit_id reftype#4059] +[visit_exp `expr*#3343`] +[visit_id expr*#3343] +[visit_exp elemmode#3343] +[visit_id elemmode#3343] +[visit_exp (rt, [`REF.FUNC`_instr{funcidx#3219}(y)*{funcidx#3219 <- `funcidx#3219*`, y <- `y*`}], `DECLARE`_elemmode)] +[visit_exp rt] +[visit_id rt] +[visit_exp [`REF.FUNC`_instr{funcidx#3219}(y)*{funcidx#3219 <- `funcidx#3219*`, y <- `y*`}]] +[visit_exp `REF.FUNC`_instr{funcidx#3219}(y)*{funcidx#3219 <- `funcidx#3219*`, y <- `y*`}] +[scope_enter funcidx#3219] +[scope_enter y] +[visit_exp `REF.FUNC`_instr{funcidx#3219}(y)] +[visit_exp funcidx#3219] +[visit_id funcidx#3219] not free +[visit_exp (y)] +[visit_exp y] +[visit_id y] not free +[visit_id funcidx#3219] not free +[visit_id y] not free +[scope_exit y] +[scope_exit funcidx#3219] +[visit_exp `funcidx#3219*`] +[visit_id funcidx#3219*] no dims +[visit_id funcidx#3219*] +[visit_exp `y*`] +[visit_id y*] no dims +[visit_id y*] +[visit_exp `DECLARE`_elemmode] +[visit_exp ()] +[visit_exp `%`_u32{i#91837}(3)] +[visit_exp i#91837] +[visit_id i#91837] +[visit_exp (3)] +[visit_exp 3] +[visit_exp rt] +[visit_id rt] not free +[visit_exp y*{y <- `y*`}] +[scope_enter y] +[visit_exp y] +[visit_id y] not free +[visit_id y] not free +[scope_exit y] +[visit_exp `y*`] +[visit_id y*] not free +[visit_id y*] no dims +[check_dims] e e_O elemmode#3355 expr#4913 expr*#3355 heaptype#1813 i#91901 i#91925 null?#1747 reftype#4071 tableidx#148 +dims \ = e, e_O, elemmode#3355, expr#4913, expr*#3355, heaptype#1813, i#91901, i#91925, null?#1747, reftype#4071, tableidx#148 +[visit_exp `ELEM`_elem{reftype#4071, `expr*#3355`, elemmode#3355}(`REF`_reftype{`null?#1747`, heaptype#1813}(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#148, expr#4913}(`%`_tableidx{i#91925}(0), e_O))] +[visit_exp reftype#4071] +[visit_id reftype#4071] +[visit_exp `expr*#3355`] +[visit_id expr*#3355] +[visit_exp elemmode#3355] +[visit_id elemmode#3355] +[visit_exp (`REF`_reftype{`null?#1747`, heaptype#1813}(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#148, expr#4913}(`%`_tableidx{i#91925}(0), e_O))] +[visit_exp `REF`_reftype{`null?#1747`, heaptype#1813}(?(`NULL`_null), `FUNC`_heaptype)] +[visit_exp `null?#1747`] +[visit_id null?#1747] +[visit_exp heaptype#1813] +[visit_id heaptype#1813] +[visit_exp (?(`NULL`_null), `FUNC`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `FUNC`_heaptype] +[visit_exp ()] +[visit_exp e*{e <- `e*`}] +[scope_enter e] +[visit_exp e] +[visit_id e] not free +[visit_id e] not free +[scope_exit e] +[visit_exp `e*`] +[visit_id e*] no dims +[visit_id e*] +[visit_exp `ACTIVE`_elemmode{tableidx#148, expr#4913}(`%`_tableidx{i#91925}(0), e_O)] +[visit_exp tableidx#148] +[visit_id tableidx#148] +[visit_exp expr#4913] +[visit_id expr#4913] +[visit_exp (`%`_tableidx{i#91925}(0), e_O)] +[visit_exp `%`_tableidx{i#91925}(0)] +[visit_exp i#91925] +[visit_id i#91925] +[visit_exp (0)] +[visit_exp 0] +[visit_exp e_O] +[visit_id e_O] +[visit_exp `%`_u32{i#91901}(4)] +[visit_exp i#91901] +[visit_id i#91901] +[visit_exp (4)] +[visit_exp 4] +[visit_exp e_O] +[visit_id e_O] not free +[visit_exp e*{e <- `e*`}] +[scope_enter e] +[visit_exp e] +[visit_id e] not free +[visit_id e] not free +[scope_exit e] +[visit_exp `e*`] +[visit_id e*] not free +[visit_id e*] no dims +[check_dims] e elemmode#3367 expr*#3367 i#91948 reftype#4083 rt +dims \ = e, elemmode#3367, expr*#3367, i#91948, reftype#4083, rt +[visit_exp `ELEM`_elem{reftype#4083, `expr*#3367`, elemmode#3367}(rt, e*{e <- `e*`}, `PASSIVE`_elemmode)] +[visit_exp reftype#4083] +[visit_id reftype#4083] +[visit_exp `expr*#3367`] +[visit_id expr*#3367] +[visit_exp elemmode#3367] +[visit_id elemmode#3367] +[visit_exp (rt, e*{e <- `e*`}, `PASSIVE`_elemmode)] +[visit_exp rt] +[visit_id rt] +[visit_exp e*{e <- `e*`}] +[scope_enter e] +[visit_exp e] +[visit_id e] not free +[visit_id e] not free +[scope_exit e] +[visit_exp `e*`] +[visit_id e*] no dims +[visit_id e*] +[visit_exp `PASSIVE`_elemmode] +[visit_exp ()] +[visit_exp `%`_u32{i#91948}(5)] +[visit_exp i#91948] +[visit_id i#91948] +[visit_exp (5)] +[visit_exp 5] +[visit_exp rt] +[visit_id rt] not free +[visit_exp e*{e <- `e*`}] +[scope_enter e] +[visit_exp e] +[visit_id e] not free +[visit_id e] not free +[scope_exit e] +[visit_exp `e*`] +[visit_id e*] not free +[visit_id e*] no dims +[check_dims] e e_O elemmode#3379 expr#4915 expr*#3379 heaptype#1837 i#91973 null?#1771 reftype#4095 tableidx#150 x +dims \ = e, e_O, elemmode#3379, expr#4915, expr*#3379, heaptype#1837, i#91973, null?#1771, reftype#4095, tableidx#150, x +[visit_exp `ELEM`_elem{reftype#4095, `expr*#3379`, elemmode#3379}(`REF`_reftype{`null?#1771`, heaptype#1837}(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#150, expr#4915}(x, e_O))] +[visit_exp reftype#4095] +[visit_id reftype#4095] +[visit_exp `expr*#3379`] +[visit_id expr*#3379] +[visit_exp elemmode#3379] +[visit_id elemmode#3379] +[visit_exp (`REF`_reftype{`null?#1771`, heaptype#1837}(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#150, expr#4915}(x, e_O))] +[visit_exp `REF`_reftype{`null?#1771`, heaptype#1837}(?(`NULL`_null), `FUNC`_heaptype)] +[visit_exp `null?#1771`] +[visit_id null?#1771] +[visit_exp heaptype#1837] +[visit_id heaptype#1837] +[visit_exp (?(`NULL`_null), `FUNC`_heaptype)] +[visit_exp ?(`NULL`_null)] +[visit_exp `NULL`_null] +[visit_exp ()] +[visit_exp `FUNC`_heaptype] +[visit_exp ()] +[visit_exp e*{e <- `e*`}] +[scope_enter e] +[visit_exp e] +[visit_id e] not free +[visit_id e] not free +[scope_exit e] +[visit_exp `e*`] +[visit_id e*] no dims +[visit_id e*] +[visit_exp `ACTIVE`_elemmode{tableidx#150, expr#4915}(x, e_O)] +[visit_exp tableidx#150] +[visit_id tableidx#150] +[visit_exp expr#4915] +[visit_id expr#4915] +[visit_exp (x, e_O)] +[visit_exp x] +[visit_id x] +[visit_exp e_O] +[visit_id e_O] +[visit_exp `%`_u32{i#91973}(6)] +[visit_exp i#91973] +[visit_id i#91973] +[visit_exp (6)] +[visit_exp 6] +[visit_exp x] +[visit_id x] not free +[visit_exp e_O] +[visit_id e_O] not free +[visit_exp e*{e <- `e*`}] +[scope_enter e] +[visit_exp e] +[visit_id e] not free +[visit_id e] not free +[scope_exit e] +[visit_exp `e*`] +[visit_id e*] not free +[visit_id e*] no dims +[check_dims] e elemmode#3391 expr*#3391 i#92029 reftype#4107 rt +dims \ = e, elemmode#3391, expr*#3391, i#92029, reftype#4107, rt +[visit_exp `ELEM`_elem{reftype#4107, `expr*#3391`, elemmode#3391}(rt, e*{e <- `e*`}, `DECLARE`_elemmode)] +[visit_exp reftype#4107] +[visit_id reftype#4107] +[visit_exp `expr*#3391`] +[visit_id expr*#3391] +[visit_exp elemmode#3391] +[visit_id elemmode#3391] +[visit_exp (rt, e*{e <- `e*`}, `DECLARE`_elemmode)] +[visit_exp rt] +[visit_id rt] +[visit_exp e*{e <- `e*`}] +[scope_enter e] +[visit_exp e] +[visit_id e] not free +[visit_id e] not free +[scope_exit e] +[visit_exp `e*`] +[visit_id e*] no dims +[visit_id e*] +[visit_exp `DECLARE`_elemmode] +[visit_exp ()] +[visit_exp `%`_u32{i#92029}(7)] +[visit_exp i#92029] +[visit_id i#92029] +[visit_exp (7)] +[visit_exp 7] +[visit_exp rt] +[visit_id rt] not free +[visit_exp e*{e <- `e*`}] +[scope_enter e] +[visit_exp e] +[visit_id e] not free +[visit_id e] not free +[scope_exit e] +[visit_exp `e*`] +[visit_id e*] not free +[visit_id e*] no dims +ps' = +[check_dims] +[check_dims] elem +dims \ = elem +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] no dims +[visit_id elem*] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] not free +[visit_id elem*] no dims +[visit_exp 9] +[check_dims] +ps' = +[check_dims] +[check_dims] i#92056 n t valtype#1033 +dims \ = i#92056, n, t, valtype#1033 +[visit_exp `LOCAL`_local{valtype#1033}(t)^n{valtype#1033 <- `valtype#1033*`}] +[scope_enter valtype#1033] +[visit_exp `LOCAL`_local{valtype#1033}(t)] +[visit_exp valtype#1033] +[visit_id valtype#1033] not free +[visit_exp (t)] +[visit_exp t] +[visit_id t] +[visit_id valtype#1033] not free +[scope_exit valtype#1033] +[visit_exp n] +[visit_id n] +[visit_exp `valtype#1033*`] +[visit_id valtype#1033*] no dims +[visit_id valtype#1033*] +[visit_exp `%`_u32{i#92056}(n)] +[visit_exp i#92056] +[visit_id i#92056] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp t] +[visit_id t] not free +ps' = +[check_dims] +[check_dims] e loc +dims \ = e, loc +[visit_exp ($concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`}), e)] +[visit_exp $concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`})] +[visit_exp loc*{loc <- `loc*`}*{`loc*` <- `loc**`}] +[scope_enter loc*] +[visit_exp loc*{loc <- `loc*`}] +[scope_enter loc] +[visit_exp loc] +[visit_id loc] not free +[visit_id loc] not free +[scope_exit loc] +[visit_exp `loc*`] +[visit_id loc*] not free +[visit_id loc*] no dims +[visit_id loc*] not free +[visit_id loc*] no dims +[scope_exit loc*] +[visit_exp `loc**`] +[visit_id loc**] no dims +[visit_id loc**] +[visit_exp e] +[visit_id e] +[visit_exp loc*{loc <- `loc*`}*{`loc*` <- `loc**`}] +[scope_enter loc*] +[visit_exp loc*{loc <- `loc*`}] +[scope_enter loc] +[visit_exp loc] +[visit_id loc] not free +[visit_id loc] not free +[scope_exit loc] +[visit_exp `loc*`] +[visit_id loc*] not free +[visit_id loc*] no dims +[visit_id loc*] not free +[visit_id loc*] no dims +[scope_exit loc*] +[visit_exp `loc**`] +[visit_id loc**] not free +[visit_id loc**] no dims +[visit_exp e] +[visit_id e] not free +[visit_exp (|$concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`})| < (2 ^ 32))] +[visit_exp |$concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`})|] +[visit_exp $concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`})] +[visit_exp loc*{loc <- `loc*`}*{`loc*` <- `loc**`}] +[scope_enter loc*] +[visit_exp loc*{loc <- `loc*`}] +[scope_enter loc] +[visit_exp loc] +[visit_id loc] not free +[visit_id loc] not free +[scope_exit loc] +[visit_exp `loc*`] +[visit_id loc*] not free +[visit_id loc*] no dims +[visit_id loc*] not free +[visit_id loc*] no dims +[scope_exit loc*] +[visit_exp `loc**`] +[visit_id loc**] not free +[visit_id loc**] no dims +[visit_exp (2 ^ 32)] +[visit_exp 2] +[visit_exp 32] +ps' = +[check_dims] +[check_dims] code i#92081 len +dims \ = code, i#92081, len +[visit_exp code] +[visit_id code] +[visit_exp `%`_u32{i#92081}(len)] +[visit_exp i#92081] +[visit_id i#92081] +[visit_exp (len)] +[visit_exp len] +[visit_id len] +[visit_exp code] +[visit_id code] not free +[visit_exp (len = 0)] +[visit_exp len] +[visit_id len] not free +[visit_exp 0] +ps' = +[check_dims] +[check_dims] code +dims \ = code +[visit_exp code*{code <- `code*`}] +[scope_enter code] +[visit_exp code] +[visit_id code] not free +[visit_id code] not free +[scope_exit code] +[visit_exp `code*`] +[visit_id code*] no dims +[visit_id code*] +[visit_exp code*{code <- `code*`}] +[scope_enter code] +[visit_exp code] +[visit_id code] not free +[visit_id code] not free +[scope_exit code] +[visit_exp `code*`] +[visit_id code*] not free +[visit_id code*] no dims +[visit_exp 10] +ps' = +[check_dims] +[check_dims] b byte*#2217 datamode#2181 e expr#4917 i#92106 i#92154 memidx#272 +dims \ = b, byte*#2217, datamode#2181, e, expr#4917, i#92106, i#92154, memidx#272 +[visit_exp `DATA`_data{`byte*#2217`, datamode#2181}(b*{b <- `b*`}, `ACTIVE`_datamode{memidx#272, expr#4917}(`%`_memidx{i#92154}(0), e))] +[visit_exp `byte*#2217`] +[visit_id byte*#2217] +[visit_exp datamode#2181] +[visit_id datamode#2181] +[visit_exp (b*{b <- `b*`}, `ACTIVE`_datamode{memidx#272, expr#4917}(`%`_memidx{i#92154}(0), e))] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp `ACTIVE`_datamode{memidx#272, expr#4917}(`%`_memidx{i#92154}(0), e)] +[visit_exp memidx#272] +[visit_id memidx#272] +[visit_exp expr#4917] +[visit_id expr#4917] +[visit_exp (`%`_memidx{i#92154}(0), e)] +[visit_exp `%`_memidx{i#92154}(0)] +[visit_exp i#92154] +[visit_id i#92154] +[visit_exp (0)] +[visit_exp 0] +[visit_exp e] +[visit_id e] +[visit_exp `%`_u32{i#92106}(0)] +[visit_exp i#92106] +[visit_id i#92106] +[visit_exp (0)] +[visit_exp 0] +[visit_exp e] +[visit_id e] not free +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[check_dims] b byte*#2229 datamode#2193 i#92177 +dims \ = b, byte*#2229, datamode#2193, i#92177 +[visit_exp `DATA`_data{`byte*#2229`, datamode#2193}(b*{b <- `b*`}, `PASSIVE`_datamode)] +[visit_exp `byte*#2229`] +[visit_id byte*#2229] +[visit_exp datamode#2193] +[visit_id datamode#2193] +[visit_exp (b*{b <- `b*`}, `PASSIVE`_datamode)] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp `PASSIVE`_datamode] +[visit_exp ()] +[visit_exp `%`_u32{i#92177}(1)] +[visit_exp i#92177] +[visit_id i#92177] +[visit_exp (1)] +[visit_exp 1] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[check_dims] b byte*#2241 datamode#2205 e expr#4919 i#92226 memidx#274 x +dims \ = b, byte*#2241, datamode#2205, e, expr#4919, i#92226, memidx#274, x +[visit_exp `DATA`_data{`byte*#2241`, datamode#2205}(b*{b <- `b*`}, `ACTIVE`_datamode{memidx#274, expr#4919}(x, e))] +[visit_exp `byte*#2241`] +[visit_id byte*#2241] +[visit_exp datamode#2205] +[visit_id datamode#2205] +[visit_exp (b*{b <- `b*`}, `ACTIVE`_datamode{memidx#274, expr#4919}(x, e))] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp `ACTIVE`_datamode{memidx#274, expr#4919}(x, e)] +[visit_exp memidx#274] +[visit_id memidx#274] +[visit_exp expr#4919] +[visit_id expr#4919] +[visit_exp (x, e)] +[visit_exp x] +[visit_id x] +[visit_exp e] +[visit_id e] +[visit_exp `%`_u32{i#92226}(2)] +[visit_exp i#92226] +[visit_id i#92226] +[visit_exp (2)] +[visit_exp 2] +[visit_exp x] +[visit_id x] not free +[visit_exp e] +[visit_id e] not free +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +ps' = +[check_dims] +[check_dims] data +dims \ = data +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] no dims +[visit_id data*] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] not free +[visit_id data*] no dims +[visit_exp 11] +ps' = +[check_dims] +[check_dims] i#92308 i#92330 n +dims \ = i#92308, i#92330, n +[visit_exp [`%`_u32{i#92330}(n)]] +[visit_exp `%`_u32{i#92330}(n)] +[visit_exp i#92330] +[visit_id i#92330] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `%`_u32{i#92308}(n)] +[visit_exp i#92308] +[visit_id i#92308] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[check_dims] +ps' = +[check_dims] +[check_dims] nopt +dims \ = nopt +[visit_exp $opt_(syntax u32, nopt)] +[visit_exp nopt] +[visit_id nopt] +[visit_exp nopt] +[visit_id nopt] not free +[visit_exp 12] +ps' = +[check_dims] +[check_dims] jt tagtype#336 +dims \ = jt, tagtype#336 +[visit_exp `TAG`_tag{tagtype#336}(jt)] +[visit_exp tagtype#336] +[visit_id tagtype#336] +[visit_exp (jt)] +[visit_exp jt] +[visit_id jt] +[visit_exp jt] +[visit_id jt] not free +ps' = +[check_dims] +[check_dims] tag +dims \ = tag +[visit_exp tag*{tag <- `tag*`}] +[scope_enter tag] +[visit_exp tag] +[visit_id tag] not free +[visit_id tag] not free +[scope_exit tag] +[visit_exp `tag*`] +[visit_id tag*] no dims +[visit_id tag*] +[visit_exp tag*{tag <- `tag*`}] +[scope_enter tag] +[visit_exp tag] +[visit_id tag] not free +[visit_id tag] not free +[scope_exit tag] +[visit_exp `tag*`] +[visit_id tag*] not free +[visit_id tag*] no dims +[visit_exp 13] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ((), ()).1] +[visit_exp ((), ())] +[visit_exp ()] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ((), ()).1] +[visit_exp ((), ())] +[visit_exp ()] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] data data*#143 elem elem*#167 export export*#143 expr expr#5253 func func*#143 global global*#167 i#92509 import import*#143 local local*#1601 mem mem*#167 n start start?#143 table table*#167 tag tag*#143 type type*#143 typeidx typeidx#2117 +dims \ = data, data*#143, elem, elem*#167, export, export*#143, expr, expr#5253, func, func*#143, global, global*#167, i#92509, import, import*#143, local, local*#1601, mem, mem*#167, n, start, start?#143, table, table*#167, tag, tag*#143, type, type*#143, typeidx, typeidx#2117 +[visit_exp `MODULE`_module{`type*#143`, `import*#143`, `tag*#143`, `global*#167`, `mem*#167`, `table*#167`, `func*#143`, `data*#143`, `elem*#167`, `start?#143`, `export*#143`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] +[visit_exp `type*#143`] +[visit_id type*#143] +[visit_exp `import*#143`] +[visit_id import*#143] +[visit_exp `tag*#143`] +[visit_id tag*#143] +[visit_exp `global*#167`] +[visit_id global*#167] +[visit_exp `mem*#167`] +[visit_id mem*#167] +[visit_exp `table*#167`] +[visit_id table*#167] +[visit_exp `func*#143`] +[visit_id func*#143] +[visit_exp `data*#143`] +[visit_id data*#143] +[visit_exp `elem*#167`] +[visit_id elem*#167] +[visit_exp `start?#143`] +[visit_id start?#143] +[visit_exp `export*#143`] +[visit_id export*#143] +[visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] +[visit_exp type*{type <- `type*`}] +[scope_enter type] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] no dims +[visit_id type*] +[visit_exp import*{import <- `import*`}] +[scope_enter import] +[visit_exp import] +[visit_id import] not free +[visit_id import] not free +[scope_exit import] +[visit_exp `import*`] +[visit_id import*] no dims +[visit_id import*] +[visit_exp tag*{tag <- `tag*`}] +[scope_enter tag] +[visit_exp tag] +[visit_id tag] not free +[visit_id tag] not free +[scope_exit tag] +[visit_exp `tag*`] +[visit_id tag*] no dims +[visit_id tag*] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] no dims +[visit_id global*] +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] no dims +[visit_id mem*] +[visit_exp table*{table <- `table*`}] +[scope_enter table] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] no dims +[visit_id table*] +[visit_exp func*{func <- `func*`}] +[scope_enter func] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] no dims +[visit_id func*] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] no dims +[visit_id data*] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] no dims +[visit_id elem*] +[visit_exp start?{start <- `start?`}] +[scope_enter start] +[visit_exp start] +[visit_id start] not free +[visit_id start] not free +[scope_exit start] +[visit_exp `start?`] +[visit_id start?] no dims +[visit_id start?] +[visit_exp export*{export <- `export*`}] +[scope_enter export] +[visit_exp export] +[visit_id export] not free +[visit_id export] not free +[scope_exit export] +[visit_exp `export*`] +[visit_id export*] no dims +[visit_id export*] +[visit_exp type*{type <- `type*`}] +[scope_enter type] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] not free +[visit_id type*] no dims +[visit_exp import*{import <- `import*`}] +[scope_enter import] +[visit_exp import] +[visit_id import] not free +[visit_id import] not free +[scope_exit import] +[visit_exp `import*`] +[visit_id import*] not free +[visit_id import*] no dims +[visit_exp typeidx*{typeidx <- `typeidx*`}] +[scope_enter typeidx] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_id typeidx] not free +[scope_exit typeidx] +[visit_exp `typeidx*`] +[visit_id typeidx*] no dims +[visit_id typeidx*] +[visit_exp table*{table <- `table*`}] +[scope_enter table] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] not free +[visit_id table*] no dims +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] not free +[visit_id mem*] no dims +[visit_exp tag*{tag <- `tag*`}] +[scope_enter tag] +[visit_exp tag] +[visit_id tag] not free +[visit_id tag] not free +[scope_exit tag] +[visit_exp `tag*`] +[visit_id tag*] not free +[visit_id tag*] no dims +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] not free +[visit_id global*] no dims +[visit_exp export*{export <- `export*`}] +[scope_enter export] +[visit_exp export] +[visit_id export] not free +[visit_id export] not free +[scope_exit export] +[visit_exp `export*`] +[visit_id export*] not free +[visit_id export*] no dims +[visit_exp start?{start <- `start?`}] +[scope_enter start] +[visit_exp start] +[visit_id start] not free +[visit_id start] not free +[scope_exit start] +[visit_exp `start?`] +[visit_id start?] not free +[visit_id start?] no dims +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] not free +[visit_id elem*] no dims +[visit_exp `%`_u32{i#92509}(n)?{i#92509 <- `i#92509?`, n <- `n?`}] +[scope_enter i#92509] +[scope_enter n] +[visit_exp `%`_u32{i#92509}(n)] +[visit_exp i#92509] +[visit_id i#92509] not free +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_id i#92509] not free +[visit_id n] not free +[scope_exit n] +[scope_exit i#92509] +[visit_exp `i#92509?`] +[visit_id i#92509?] no dims +[visit_id i#92509?] +[visit_exp `n?`] +[visit_id n?] no dims +[visit_id n?] +[visit_exp (local*{local <- `local*`}, expr)*{expr <- `expr*`, `local*` <- `local**`}] +[scope_enter expr] +[scope_enter local*] +[visit_exp (local*{local <- `local*`}, expr)] +[visit_exp local*{local <- `local*`}] +[scope_enter local] +[visit_exp local] +[visit_id local] not free +[visit_id local] not free +[scope_exit local] +[visit_exp `local*`] +[visit_id local*] not free +[visit_id local*] no dims +[visit_exp expr] +[visit_id expr] not free +[visit_id expr] not free +[visit_id local*] not free +[visit_id local*] no dims +[scope_exit local*] +[scope_exit expr] +[visit_exp `expr*`] +[visit_id expr*] no dims +[visit_id expr*] +[visit_exp `local**`] +[visit_id local**] no dims +[visit_id local**] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] not free +[visit_id data*] no dims +[scope_enter n] +[visit_exp (n = |data*{data <- `data*`}|)] +[visit_exp n] +[visit_id n] not free +[visit_exp |data*{data <- `data*`}|] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] not free +[visit_id data*] no dims +[visit_id n] not free +[scope_exit n] +[visit_exp `n?`] +[visit_id n?] not free +[visit_id n?] no dims +[visit_exp ((n?{n <- `n?`} =/= ?()) \/ ($dataidx_funcs(func*{func <- `func*`}) = []))] +[visit_exp (n?{n <- `n?`} =/= ?())] +[visit_exp n?{n <- `n?`}] +[scope_enter n] +[visit_exp n] +[visit_id n] not free +[visit_id n] not free +[scope_exit n] +[visit_exp `n?`] +[visit_id n?] not free +[visit_id n?] no dims +[visit_exp ?()] +[visit_exp ($dataidx_funcs(func*{func <- `func*`}) = [])] +[visit_exp $dataidx_funcs(func*{func <- `func*`})] +[visit_exp func*{func <- `func*`}] +[scope_enter func] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] not free +[visit_id func*] no dims +[visit_exp []] +[scope_enter expr] +[scope_enter expr#5253] +[scope_enter func] +[scope_enter local*] +[scope_enter local*#1601] +[scope_enter typeidx] +[scope_enter typeidx#2117] +[visit_exp (func = `FUNC`_func{typeidx#2117, `local*#1601`, expr#5253}(typeidx, local*{local <- `local*`}, expr))] +[visit_exp func] +[visit_id func] not free +[visit_exp `FUNC`_func{typeidx#2117, `local*#1601`, expr#5253}(typeidx, local*{local <- `local*`}, expr)] +[visit_exp typeidx#2117] +[visit_id typeidx#2117] not free +[visit_exp `local*#1601`] +[visit_id local*#1601] not free +[visit_exp expr#5253] +[visit_id expr#5253] not free +[visit_exp (typeidx, local*{local <- `local*`}, expr)] +[visit_exp typeidx] +[visit_id typeidx] not free +[visit_exp local*{local <- `local*`}] +[scope_enter local] +[visit_exp local] +[visit_id local] not free +[visit_id local] not free +[scope_exit local] +[visit_exp `local*`] +[visit_id local*] not free +[visit_id local*] no dims +[visit_exp expr] +[visit_id expr] not free +[visit_id expr] not free +[visit_id expr#5253] not free +[visit_id func] not free +[visit_id local*] not free +[visit_id local*] no dims +[visit_id local*#1601] not free +[visit_id typeidx] not free +[visit_id typeidx#2117] not free +[scope_exit typeidx#2117] +[scope_exit typeidx] +[scope_exit local*#1601] +[scope_exit local*] +[scope_exit func] +[scope_exit expr#5253] +[scope_exit expr] +[visit_exp `expr*`] +[visit_id expr*] not free +[visit_id expr*] no dims +[visit_exp `expr#5253*`] +[visit_id expr#5253*] no dims +[visit_id expr#5253*] +[visit_exp `func*`] +[visit_id func*] not free +[visit_id func*] no dims +[visit_exp `local**`] +[visit_id local**] not free +[visit_id local**] no dims +[visit_exp `local*#1601*`] +[visit_id local*#1601*] no dims +[visit_id local*#1601*] +[visit_exp `typeidx*`] +[visit_id typeidx*] not free +[visit_id typeidx*] no dims +[visit_exp `typeidx#2117*`] +[visit_id typeidx#2117*] no dims +[visit_id typeidx#2117*] +ps' = +[check_dims] +[check_dims] i#92557 +dims \ = , i#92557 +[visit_exp `%`_char{i#92557}(``)] +[visit_exp i#92557] +[visit_id i#92557] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#92565 +dims \ = , i#92565 +[visit_exp `%`_char{i#92565}(``)] +[visit_exp i#92565] +[visit_id i#92565] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp [``]] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp [``]] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp [``]] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp [``]] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] c i#92597 i#92599 +dims \ = , c, i#92597, i#92599 +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp c] +[visit_id c] +[visit_exp ((c!`%`_char{i#92597}.0 =/= 10) /\ (c!`%`_char{i#92599}.0 =/= 13))] +[visit_exp (c!`%`_char{i#92597}.0 =/= 10)] +[visit_exp c!`%`_char{i#92597}.0] +[visit_exp c!`%`_char{i#92597}] +[visit_exp c] +[visit_id c] not free +[visit_exp i#92597] +[visit_id i#92597] +[visit_exp 10] +[visit_exp (c!`%`_char{i#92599}.0 =/= 13)] +[visit_exp c!`%`_char{i#92599}.0] +[visit_exp c!`%`_char{i#92599}] +[visit_exp c] +[visit_id c] not free +[visit_exp i#92599] +[visit_id i#92599] +[visit_exp 13] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] c i#92625 i#92635 +dims \ = , c, i#92625, i#92635 +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp c] +[visit_id c] +[visit_exp ((c =/= `%`_char{i#92625}(59)) /\ (c =/= `%`_char{i#92635}(40)))] +[visit_exp (c =/= `%`_char{i#92625}(59))] +[visit_exp c] +[visit_id c] not free +[visit_exp `%`_char{i#92625}(59)] +[visit_exp i#92625] +[visit_id i#92625] +[visit_exp (59)] +[visit_exp 59] +[visit_exp (c =/= `%`_char{i#92635}(40))] +[visit_exp c] +[visit_id c] not free +[visit_exp `%`_char{i#92635}(40)] +[visit_exp i#92635] +[visit_id i#92635] +[visit_exp (40)] +[visit_exp 40] +[check_dims] c i#92657 i#92667 +dims \ = , c, i#92657, i#92667 +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp c] +[visit_id c] +[visit_exp ((c =/= `%`_char{i#92657}(59)) /\ (c =/= `%`_char{i#92667}(41)))] +[visit_exp (c =/= `%`_char{i#92657}(59))] +[visit_exp c] +[visit_id c] not free +[visit_exp `%`_char{i#92657}(59)] +[visit_exp i#92657] +[visit_id i#92657] +[visit_exp (59)] +[visit_exp 59] +[visit_exp (c =/= `%`_char{i#92667}(41))] +[visit_exp c] +[visit_id c] not free +[visit_exp `%`_char{i#92667}(41)] +[visit_exp i#92667] +[visit_id i#92667] +[visit_exp (41)] +[visit_exp 41] +[check_dims] c i#92689 i#92699 +dims \ = , c, i#92689, i#92699 +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp c] +[visit_id c] +[visit_exp ((c =/= `%`_char{i#92689}(59)) /\ (c =/= `%`_char{i#92699}(40)))] +[visit_exp (c =/= `%`_char{i#92689}(59))] +[visit_exp c] +[visit_id c] not free +[visit_exp `%`_char{i#92689}(59)] +[visit_exp i#92689] +[visit_id i#92689] +[visit_exp (59)] +[visit_exp 59] +[visit_exp (c =/= `%`_char{i#92699}(40))] +[visit_exp c] +[visit_id c] not free +[visit_exp `%`_char{i#92699}(40)] +[visit_exp i#92699] +[visit_id i#92699] +[visit_exp (40)] +[visit_exp 40] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp [``]] +[visit_exp ``] +[visit_id ] not free +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp + (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[check_dims] +dims \ = +[visit_exp + (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[check_dims] +dims \ = +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +ps' = +[check_dims] +[check_dims] +[visit_exp 0] +[visit_exp 9] +ps' = +[check_dims] +[check_dims] d +dims \ = d +[visit_exp d] +[visit_id d] +[visit_exp d] +[visit_id d] not free +[check_dims] +[visit_exp 10] +[visit_exp 15] +[check_dims] +[visit_exp 10] +[visit_exp 15] +ps' = +[check_dims] +[check_dims] d +dims \ = d +[visit_exp d] +[visit_id d] +[visit_exp d] +[visit_id d] not free +[check_dims] d n +dims \ = d, n +[visit_exp ((10 * n) + d)] +[visit_exp (10 * n)] +[visit_exp 10] +[visit_exp n] +[visit_id n] +[visit_exp d] +[visit_id d] +[visit_exp n] +[visit_id n] not free +[visit_exp d] +[visit_id d] not free +ps' = +[check_dims] +[check_dims] h +dims \ = h +[visit_exp h] +[visit_id h] +[visit_exp h] +[visit_id h] not free +[check_dims] h n +dims \ = h, n +[visit_exp ((16 * n) + h)] +[visit_exp (16 * n)] +[visit_exp 16] +[visit_exp n] +[visit_id n] +[visit_exp h] +[visit_id h] +[visit_exp n] +[visit_id n] not free +[visit_exp h] +[visit_id h] not free +ps' = (N : N) +[check_dims] N +[check_dims] N i#92715 n +dims \ N = i#92715, n +[visit_exp `%`_uN{i#92715}(n)] +[visit_exp i#92715] +[visit_id i#92715] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp n] +[visit_id n] not free +[visit_exp (n < (2 ^ N))] +[visit_exp n] +[visit_id n] not free +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[check_dims] N i#92723 n +dims \ N = i#92723, n +[visit_exp `%`_uN{i#92723}(n)] +[visit_exp i#92723] +[visit_id i#92723] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp n] +[visit_id n] not free +[visit_exp (n < (2 ^ N))] +[visit_exp n] +[visit_id n] not free +[visit_exp (2 ^ N)] +[visit_exp 2] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +ps' = (N : N) +[check_dims] N +[check_dims] N i#92731 i#92739 n s +dims \ N = i#92731, i#92739, n, s +[visit_exp `%`_sN{i#92739}((s * (n : nat <:> int)))] +[visit_exp i#92739] +[visit_id i#92739] +[visit_exp ((s * (n : nat <:> int)))] +[visit_exp (s * (n : nat <:> int))] +[visit_exp s] +[visit_id s] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] +[visit_exp s] +[visit_id s] not free +[visit_exp `%`_uN{i#92731}(n)] +[visit_exp i#92731] +[visit_id i#92731] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp ((- ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) <= (s * (n : nat <:> int))) /\ ((s * (n : nat <:> int)) < ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)))] +[visit_exp (- ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) <= (s * (n : nat <:> int)))] +[visit_exp - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp (s * (n : nat <:> int))] +[visit_exp s] +[visit_id s] not free +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp ((s * (n : nat <:> int)) < ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))] +[visit_exp (s * (n : nat <:> int))] +[visit_exp s] +[visit_id s] not free +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] +[visit_exp (N : nat <:> int)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +ps' = (N : N) +[check_dims] N +[check_dims] N i#92747 i#92755 n +dims \ N = i#92747, i#92755, n +[visit_exp `%`_iN{i#92755}(n)] +[visit_exp i#92755] +[visit_id i#92755] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `%`_uN{i#92747}(n)] +[visit_exp i#92747] +[visit_id i#92747] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[check_dims] N i i#92769 i#92771 +dims \ N = i, i#92769, i#92771 +[visit_exp `%`_iN{i#92771}($inv_signed_(N, i!`%`_sN{i#92769}.0))] +[visit_exp i#92771] +[visit_id i#92771] +[visit_exp ($inv_signed_(N, i!`%`_sN{i#92769}.0))] +[visit_exp $inv_signed_(N, i!`%`_sN{i#92769}.0)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp i!`%`_sN{i#92769}.0] +[visit_exp i!`%`_sN{i#92769}] +[visit_exp i] +[visit_id i] +[visit_exp i#92769] +[visit_id i#92769] +[visit_exp i] +[visit_id i] not free +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +ps' = +[check_dims] +[check_dims] d +dims \ = d +[visit_exp ((d : nat <:> rat) / (10 : nat <:> rat))] +[visit_exp (d : nat <:> rat)] +[visit_exp d] +[visit_id d] +[visit_exp (10 : nat <:> rat)] +[visit_exp 10] +[visit_exp d] +[visit_id d] not free +[check_dims] d p +dims \ = d, p +[visit_exp (((d + ((p / (10 : nat <:> rat)) : rat <:> nat)) : nat <:> rat) / (10 : nat <:> rat))] +[visit_exp ((d + ((p / (10 : nat <:> rat)) : rat <:> nat)) : nat <:> rat)] +[visit_exp (d + ((p / (10 : nat <:> rat)) : rat <:> nat))] +[visit_exp d] +[visit_id d] +[visit_exp ((p / (10 : nat <:> rat)) : rat <:> nat)] +[visit_exp (p / (10 : nat <:> rat))] +[visit_exp p] +[visit_id p] +[visit_exp (10 : nat <:> rat)] +[visit_exp 10] +[visit_exp (10 : nat <:> rat)] +[visit_exp 10] +[visit_exp d] +[visit_id d] not free +[visit_exp p] +[visit_id p] not free +ps' = +[check_dims] +[check_dims] h +dims \ = h +[visit_exp ((h : nat <:> rat) / (16 : nat <:> rat))] +[visit_exp (h : nat <:> rat)] +[visit_exp h] +[visit_id h] +[visit_exp (16 : nat <:> rat)] +[visit_exp 16] +[visit_exp h] +[visit_id h] not free +[check_dims] h p +dims \ = h, p +[visit_exp (((h + ((p / (16 : nat <:> rat)) : rat <:> nat)) : nat <:> rat) / (16 : nat <:> rat))] +[visit_exp ((h + ((p / (16 : nat <:> rat)) : rat <:> nat)) : nat <:> rat)] +[visit_exp (h + ((p / (16 : nat <:> rat)) : rat <:> nat))] +[visit_exp h] +[visit_id h] +[visit_exp ((p / (16 : nat <:> rat)) : rat <:> nat)] +[visit_exp (p / (16 : nat <:> rat))] +[visit_exp p] +[visit_id p] +[visit_exp (16 : nat <:> rat)] +[visit_exp 16] +[visit_exp (16 : nat <:> rat)] +[visit_exp 16] +[visit_exp h] +[visit_id h] not free +[visit_exp p] +[visit_id p] not free +ps' = +[check_dims] +[check_dims] p +dims \ = p +[visit_exp (p : nat <:> rat)] +[visit_exp p] +[visit_id p] +[visit_exp p] +[visit_id p] not free +[check_dims] p q +dims \ = p, q +[visit_exp ((p + (q : rat <:> nat)) : nat <:> rat)] +[visit_exp (p + (q : rat <:> nat))] +[visit_exp p] +[visit_id p] +[visit_exp (q : rat <:> nat)] +[visit_exp q] +[visit_id q] +[visit_exp p] +[visit_id p] not free +[visit_exp q] +[visit_id q] not free +ps' = +[check_dims] +[check_dims] p +dims \ = p +[visit_exp (p : nat <:> rat)] +[visit_exp p] +[visit_id p] +[visit_exp p] +[visit_id p] not free +[check_dims] p q +dims \ = p, q +[visit_exp ((p + (q : rat <:> nat)) : nat <:> rat)] +[visit_exp (p + (q : rat <:> nat))] +[visit_exp p] +[visit_id p] +[visit_exp (q : rat <:> nat)] +[visit_exp q] +[visit_id q] +[visit_exp p] +[visit_id p] not free +[visit_exp q] +[visit_id q] not free +[check_dims] N rat +DecD ieee_(N : N, rat : rat) : fNmag(N) +[visit_id N] not free +[visit_id rat] not free +[visit_exp N] +[visit_id N] not free +[check_dims] +ps' = +[check_dims] +[check_dims] ee p s +dims \ = ee, p, s +[visit_exp (p * ((10 ^ ((s * (ee : nat <:> int)) : int <:> nat)) : nat <:> rat))] +[visit_exp p] +[visit_id p] +[visit_exp ((10 ^ ((s * (ee : nat <:> int)) : int <:> nat)) : nat <:> rat)] +[visit_exp (10 ^ ((s * (ee : nat <:> int)) : int <:> nat))] +[visit_exp 10] +[visit_exp ((s * (ee : nat <:> int)) : int <:> nat)] +[visit_exp (s * (ee : nat <:> int))] +[visit_exp s] +[visit_id s] +[visit_exp (ee : nat <:> int)] +[visit_exp ee] +[visit_id ee] +[visit_exp p] +[visit_id p] not free +[visit_exp s] +[visit_id s] not free +[visit_exp ee] +[visit_id ee] not free +ps' = +[check_dims] +[check_dims] ee p s +dims \ = ee, p, s +[visit_exp (p * ((2 ^ ((s * (ee : nat <:> int)) : int <:> nat)) : nat <:> rat))] +[visit_exp p] +[visit_id p] +[visit_exp ((2 ^ ((s * (ee : nat <:> int)) : int <:> nat)) : nat <:> rat)] +[visit_exp (2 ^ ((s * (ee : nat <:> int)) : int <:> nat))] +[visit_exp 2] +[visit_exp ((s * (ee : nat <:> int)) : int <:> nat)] +[visit_exp (s * (ee : nat <:> int))] +[visit_exp s] +[visit_id s] +[visit_exp (ee : nat <:> int)] +[visit_exp ee] +[visit_id ee] +[visit_exp p] +[visit_id p] not free +[visit_exp s] +[visit_id s] not free +[visit_exp ee] +[visit_id ee] not free +ps' = (N : N) +[check_dims] N +[check_dims] N q +dims \ N = q +[visit_exp $ieee_(N, q)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp q] +[visit_id q] +[visit_exp q] +[visit_id q] not free +[visit_exp ($ieee_(N, q) =/= `INF`_fNmag)] +[visit_exp $ieee_(N, q)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp q] +[visit_id q] not free +[visit_exp `INF`_fNmag] +[visit_exp ()] +[check_dims] N q +dims \ N = q +[visit_exp $ieee_(N, q)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp q] +[visit_id q] +[visit_exp q] +[visit_id q] not free +[visit_exp ($ieee_(N, q) =/= `INF`_fNmag)] +[visit_exp $ieee_(N, q)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_exp q] +[visit_id q] not free +[visit_exp `INF`_fNmag] +[visit_exp ()] +[check_dims] N +dims \ N = +[visit_exp `INF`_fNmag] +[visit_exp ()] +[check_dims] N m#7 +dims \ N = m#7 +[visit_exp `NAN`_fNmag{m#7}($canon_(N))] +[visit_exp m#7] +[visit_id m#7] +[visit_exp ($canon_(N))] +[visit_exp $canon_(N)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[check_dims] N m#9 n +dims \ N = m#9, n +[visit_exp `NAN`_fNmag{m#9}(n)] +[visit_exp m#9] +[visit_id m#9] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp n] +[visit_id n] not free +[visit_exp ((1 <= n) /\ (n < (2 ^ $signif(N))))] +[visit_exp (1 <= n)] +[visit_exp 1] +[visit_exp n] +[visit_id n] not free +[visit_exp (n < (2 ^ $signif(N)))] +[visit_exp n] +[visit_id n] not free +[visit_exp (2 ^ $signif(N))] +[visit_exp 2] +[visit_exp $signif(N)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +ps' = (N : N) +[check_dims] N +[check_dims] N q +dims \ N = q +[visit_exp `POS`_fN(q)] +[visit_exp (q)] +[visit_exp q] +[visit_id q] +[visit_exp + (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp q] +[visit_id q] not free +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[check_dims] N q +dims \ N = q +[visit_exp `NEG`_fN(q)] +[visit_exp (q)] +[visit_exp q] +[visit_id q] +[visit_exp - (1 : nat <:> int)] +[visit_exp (1 : nat <:> int)] +[visit_exp 1] +[visit_exp q] +[visit_id q] not free +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_id N] not free +[visit_exp N] +[visit_id N] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp 8] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp 32] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp 64] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp 8] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp 16] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp 32] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp 64] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp 128] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp 32] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp 64] +ps' = +[check_dims] +[check_dims] c i#93014 i#93016 i#93024 i#93034 +dims \ = c, i#93014, i#93016, i#93024, i#93034 +[visit_exp c] +[visit_id c] +[visit_exp c] +[visit_id c] not free +[visit_exp ((((c!`%`_char{i#93014}.0 >= 32) /\ (c!`%`_char{i#93016}.0 =/= 127)) /\ (c =/= `%`_char{i#93024}(34))) /\ (c =/= `%`_char{i#93034}(92)))] +[visit_exp (((c!`%`_char{i#93014}.0 >= 32) /\ (c!`%`_char{i#93016}.0 =/= 127)) /\ (c =/= `%`_char{i#93024}(34)))] +[visit_exp ((c!`%`_char{i#93014}.0 >= 32) /\ (c!`%`_char{i#93016}.0 =/= 127))] +[visit_exp (c!`%`_char{i#93014}.0 >= 32)] +[visit_exp c!`%`_char{i#93014}.0] +[visit_exp c!`%`_char{i#93014}] +[visit_exp c] +[visit_id c] not free +[visit_exp i#93014] +[visit_id i#93014] +[visit_exp 32] +[visit_exp (c!`%`_char{i#93016}.0 =/= 127)] +[visit_exp c!`%`_char{i#93016}.0] +[visit_exp c!`%`_char{i#93016}] +[visit_exp c] +[visit_id c] not free +[visit_exp i#93016] +[visit_id i#93016] +[visit_exp 127] +[visit_exp (c =/= `%`_char{i#93024}(34))] +[visit_exp c] +[visit_id c] not free +[visit_exp `%`_char{i#93024}(34)] +[visit_exp i#93024] +[visit_id i#93024] +[visit_exp (34)] +[visit_exp 34] +[visit_exp (c =/= `%`_char{i#93034}(92))] +[visit_exp c] +[visit_id c] not free +[visit_exp `%`_char{i#93034}(92)] +[visit_exp i#93034] +[visit_id i#93034] +[visit_exp (92)] +[visit_exp 92] +[check_dims] i#93044 +dims \ = i#93044 +[visit_exp `%`_char{i#93044}(9)] +[visit_exp i#93044] +[visit_id i#93044] +[visit_exp (9)] +[visit_exp 9] +[check_dims] i#93052 +dims \ = i#93052 +[visit_exp `%`_char{i#93052}(10)] +[visit_exp i#93052] +[visit_id i#93052] +[visit_exp (10)] +[visit_exp 10] +[check_dims] i#93060 +dims \ = i#93060 +[visit_exp `%`_char{i#93060}(13)] +[visit_exp i#93060] +[visit_id i#93060] +[visit_exp (13)] +[visit_exp 13] +[check_dims] i#93068 +dims \ = i#93068 +[visit_exp `%`_char{i#93068}(34)] +[visit_exp i#93068] +[visit_id i#93068] +[visit_exp (34)] +[visit_exp 34] +[check_dims] i#93076 +dims \ = i#93076 +[visit_exp `%`_char{i#93076}(39)] +[visit_exp i#93076] +[visit_id i#93076] +[visit_exp (39)] +[visit_exp 39] +[check_dims] i#93084 +dims \ = i#93084 +[visit_exp `%`_char{i#93084}(92)] +[visit_exp i#93084] +[visit_id i#93084] +[visit_exp (92)] +[visit_exp 92] +[check_dims] i#93092 n +dims \ = i#93092, n +[visit_exp `%`_char{i#93092}(n)] +[visit_exp i#93092] +[visit_id i#93092] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp n] +[visit_id n] not free +[visit_exp ((n < 55296) \/ ((59392 <= n) /\ (n < 1114112)))] +[visit_exp (n < 55296)] +[visit_exp n] +[visit_id n] not free +[visit_exp 55296] +[visit_exp ((59392 <= n) /\ (n < 1114112))] +[visit_exp (59392 <= n)] +[visit_exp 59392] +[visit_exp n] +[visit_id n] not free +[visit_exp (n < 1114112)] +[visit_exp n] +[visit_id n] not free +[visit_exp 1114112] +ps' = +[check_dims] +[check_dims] c +dims \ = c +[visit_exp $utf8([c])] +[visit_exp [c]] +[visit_exp c] +[visit_id c] +[visit_exp c] +[visit_id c] not free +[check_dims] h_1 h_2 i#93132 +dims \ = h_1, h_2, i#93132 +[visit_exp [`%`_byte{i#93132}(((16 * h_1) + h_2))]] +[visit_exp `%`_byte{i#93132}(((16 * h_1) + h_2))] +[visit_exp i#93132] +[visit_id i#93132] +[visit_exp (((16 * h_1) + h_2))] +[visit_exp ((16 * h_1) + h_2)] +[visit_exp (16 * h_1)] +[visit_exp 16] +[visit_exp h_1] +[visit_id h_1] +[visit_exp h_2] +[visit_id h_2] +[visit_exp h_1] +[visit_id h_1] not free +[visit_exp h_2] +[visit_id h_2] not free +ps' = +[check_dims] +[check_dims] b +dims \ = b +[visit_exp $concat_(syntax byte, b*{b <- `b*`}*{`b*` <- `b**`})] +[visit_exp b*{b <- `b*`}*{`b*` <- `b**`}] +[scope_enter b*] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_id b*] not free +[visit_id b*] no dims +[scope_exit b*] +[visit_exp `b**`] +[visit_id b**] no dims +[visit_id b**] +[scope_enter b*] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_id b*] not free +[visit_id b*] no dims +[scope_exit b*] +[visit_exp `b**`] +[visit_id b**] not free +[visit_id b**] no dims +[visit_exp (|$concat_(syntax byte, b*{b <- `b*`}*{`b*` <- `b**`})| < (2 ^ 32))] +[visit_exp |$concat_(syntax byte, b*{b <- `b*`}*{`b*` <- `b**`})|] +[visit_exp $concat_(syntax byte, b*{b <- `b*`}*{`b*` <- `b**`})] +[visit_exp b*{b <- `b*`}*{`b*` <- `b**`}] +[scope_enter b*] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_id b*] not free +[visit_id b*] no dims +[scope_exit b*] +[visit_exp `b**`] +[visit_id b**] not free +[visit_id b**] no dims +[visit_exp (2 ^ 32)] +[visit_exp 2] +[visit_exp 32] +ps' = (syntax el, grammar TX : el) +[check_dims] el +[check_dims] el +dims \ = el +[visit_exp el*{el <- `el*`}] +[scope_enter el] +[visit_exp el] +[visit_id el] not free +[visit_id el] not free +[scope_exit el] +[visit_exp `el*`] +[visit_id el*] no dims +[visit_id el*] +[scope_enter el] +[visit_exp el] +[visit_id el] not free +[visit_id el] not free +[scope_exit el] +[visit_exp `el*`] +[visit_id el*] not free +[visit_id el*] no dims +[visit_exp (|el*{el <- `el*`}| < (2 ^ 32))] +[visit_exp |el*{el <- `el*`}|] +[visit_exp el*{el <- `el*`}] +[scope_enter el] +[visit_exp el] +[visit_id el] not free +[visit_id el] not free +[scope_exit el] +[visit_exp `el*`] +[visit_id el*] not free +[visit_id el*] no dims +[visit_exp (2 ^ 32)] +[visit_exp 2] +[visit_exp 32] +ps' = +[check_dims] +[check_dims] b c char*#207 +dims \ = b, c, char*#207 +[visit_exp `%`_name{`char*#207`}(c*{c <- `c*`})] +[visit_exp `char*#207`] +[visit_id char*#207] +[visit_exp (c*{c <- `c*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp (b*{b <- `b*`} = $utf8(c*{c <- `c*`}))] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_exp $utf8(c*{c <- `c*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +ps' = +[check_dims] +[check_dims] i#93304 +dims \ = , i#93304 +[visit_exp `%`_char{i#93304}(``)] +[visit_exp i#93304] +[visit_id i#93304] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93312 +dims \ = , i#93312 +[visit_exp `%`_char{i#93312}(``)] +[visit_exp i#93312] +[visit_id i#93312] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93320 +dims \ = , i#93320 +[visit_exp `%`_char{i#93320}(``)] +[visit_exp i#93320] +[visit_id i#93320] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93328 +dims \ = , i#93328 +[visit_exp `%`_char{i#93328}(``)] +[visit_exp i#93328] +[visit_id i#93328] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93336 +dims \ = , i#93336 +[visit_exp `%`_char{i#93336}(``)] +[visit_exp i#93336] +[visit_id i#93336] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93344 +dims \ = , i#93344 +[visit_exp `%`_char{i#93344}(``)] +[visit_exp i#93344] +[visit_id i#93344] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93352 +dims \ = , i#93352 +[visit_exp `%`_char{i#93352}(``)] +[visit_exp i#93352] +[visit_id i#93352] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93360 +dims \ = , i#93360 +[visit_exp `%`_char{i#93360}(``)] +[visit_exp i#93360] +[visit_id i#93360] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93368 +dims \ = , i#93368 +[visit_exp `%`_char{i#93368}(``)] +[visit_exp i#93368] +[visit_id i#93368] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93376 +dims \ = , i#93376 +[visit_exp `%`_char{i#93376}(``)] +[visit_exp i#93376] +[visit_id i#93376] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93384 +dims \ = , i#93384 +[visit_exp `%`_char{i#93384}(``)] +[visit_exp i#93384] +[visit_id i#93384] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93392 +dims \ = , i#93392 +[visit_exp `%`_char{i#93392}(``)] +[visit_exp i#93392] +[visit_id i#93392] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93400 +dims \ = , i#93400 +[visit_exp `%`_char{i#93400}(``)] +[visit_exp i#93400] +[visit_id i#93400] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93408 +dims \ = , i#93408 +[visit_exp `%`_char{i#93408}(``)] +[visit_exp i#93408] +[visit_id i#93408] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93416 +dims \ = , i#93416 +[visit_exp `%`_char{i#93416}(``)] +[visit_exp i#93416] +[visit_id i#93416] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93424 +dims \ = , i#93424 +[visit_exp `%`_char{i#93424}(``)] +[visit_exp i#93424] +[visit_id i#93424] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93432 +dims \ = , i#93432 +[visit_exp `%`_char{i#93432}(``)] +[visit_exp i#93432] +[visit_id i#93432] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93440 +dims \ = , i#93440 +[visit_exp `%`_char{i#93440}(``)] +[visit_exp i#93440] +[visit_id i#93440] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93448 +dims \ = , i#93448 +[visit_exp `%`_char{i#93448}(``)] +[visit_exp i#93448] +[visit_id i#93448] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93456 +dims \ = , i#93456 +[visit_exp `%`_char{i#93456}(``)] +[visit_exp i#93456] +[visit_id i#93456] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93464 +dims \ = , i#93464 +[visit_exp `%`_char{i#93464}(``)] +[visit_exp i#93464] +[visit_id i#93464] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93472 +dims \ = , i#93472 +[visit_exp `%`_char{i#93472}(``)] +[visit_exp i#93472] +[visit_id i#93472] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93480 +dims \ = , i#93480 +[visit_exp `%`_char{i#93480}(``)] +[visit_exp i#93480] +[visit_id i#93480] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93488 +dims \ = , i#93488 +[visit_exp `%`_char{i#93488}(``)] +[visit_exp i#93488] +[visit_id i#93488] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93496 +dims \ = , i#93496 +[visit_exp `%`_char{i#93496}(``)] +[visit_exp i#93496] +[visit_id i#93496] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[check_dims] i#93504 +dims \ = , i#93504 +[visit_exp `%`_char{i#93504}(``)] +[visit_exp i#93504] +[visit_id i#93504] +[visit_exp (``)] +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] c char*#213 +dims \ = c, char*#213 +[visit_exp `%`_name{`char*#213`}(c*{c <- `c*`})] +[visit_exp `char*#213`] +[visit_id char*#213] +[visit_exp (c*{c <- `c*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[check_dims] c char*#219 char*#225 +dims \ = c, char*#219, char*#225 +[visit_exp `%`_name{`char*#225`}(c*{c <- `c*`})] +[visit_exp `char*#225`] +[visit_id char*#225] +[visit_exp (c*{c <- `c*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp `%`_name{`char*#219`}(c*{c <- `c*`})] +[visit_exp `char*#219`] +[visit_id char*#219] +[visit_exp (c*{c <- `c*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp (|c*{c <- `c*`}| > 0)] +[visit_exp |c*{c <- `c*`}|] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp 0] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name?*] no dims +[visit_id name?*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name?*] no dims +[visit_id name?*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name?*] no dims +[visit_id name?*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name?*] no dims +[visit_id name?*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name?*] no dims +[visit_id name?*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name?*] no dims +[visit_id name?*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name?*] no dims +[visit_id name?*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name?*] no dims +[visit_id name?*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name?*] no dims +[visit_id name?*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name?*] no dims +[visit_id name?*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id name?**] no dims +[visit_id name?**] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id deftype?*] no dims +[visit_id deftype?*] +[check_dims] +[check_dims] _ +DecD concat_idctxt(idctxt*) : idctxt +[visit_id _] not free +[check_dims] deftype?*#1 name?*#1 name?*#10 name?*#2 name?*#3 name?*#4 name?*#5 name?*#6 name?*#7 name?*#8 name?*#9 name?**#1 +[visit_exp []] +[visit_exp {`TYPES`{`name?*#1`} [], `TAGS`{`name?*#2`} [], `GLOBALS`{`name?*#3`} [], `MEMS`{`name?*#4`} [], `TABLES`{`name?*#5`} [], `FUNCS`{`name?*#6`} [], `DATAS`{`name?*#7`} [], `ELEMS`{`name?*#8`} [], `LOCALS`{`name?*#9`} [], `LABELS`{`name?*#10`} [], `FIELDS`{`name?**#1`} [], `TYPEDEFS`{`deftype?*#1`} []}] +[visit_exp `name?*#1`] +[visit_id name?*#1] +[visit_exp []] +[visit_exp `name?*#2`] +[visit_id name?*#2] +[visit_exp []] +[visit_exp `name?*#3`] +[visit_id name?*#3] +[visit_exp []] +[visit_exp `name?*#4`] +[visit_id name?*#4] +[visit_exp []] +[visit_exp `name?*#5`] +[visit_id name?*#5] +[visit_exp []] +[visit_exp `name?*#6`] +[visit_id name?*#6] +[visit_exp []] +[visit_exp `name?*#7`] +[visit_id name?*#7] +[visit_exp []] +[visit_exp `name?*#8`] +[visit_id name?*#8] +[visit_exp []] +[visit_exp `name?*#9`] +[visit_id name?*#9] +[visit_exp []] +[visit_exp `name?*#10`] +[visit_id name?*#10] +[visit_exp []] +[visit_exp `name?**#1`] +[visit_id name?**#1] +[visit_exp []] +[visit_exp `deftype?*#1`] +[visit_id deftype?*#1] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec + def $concat_idctxt{`name?*#1` : name?*, `name?*#2` : name?*, `name?*#3` : name?*, `name?*#4` : name?*, `name?*#5` : name?*, `name?*#6` : name?*, `name?*#7` : name?*, `name?*#8` : name?*, `name?*#9` : name?*, `name?*#10` : name?*, `name?**#1` : name?**, `deftype?*#1` : deftype?*}([]) = {`TYPES`{`name?*#1`} [], `TAGS`{`name?*#2`} [], `GLOBALS`{`name?*#3`} [], `MEMS`{`name?*#4`} [], `TABLES`{`name?*#5`} [], `FUNCS`{`name?*#6`} [], `DATAS`{`name?*#7`} [], `ELEMS`{`name?*#8`} [], `LOCALS`{`name?*#9`} [], `LABELS`{`name?*#10`} [], `FIELDS`{`name?**#1`} [], `TYPEDEFS`{`deftype?*#1`} []} +[check_dims] I I' +[visit_exp [I] ++ I'*{I' <- `I'*`}] +[visit_exp [I]] +[visit_exp I] +[visit_id I] +[visit_exp I'*{I' <- `I'*`}] +[scope_enter I'] +[visit_exp I'] +[visit_id I'] not free +[visit_id I'] not free +[scope_exit I'] +[visit_exp `I'*`] +[visit_id I'*] no dims +[visit_id I'*] +[visit_exp I +++ $concat_idctxt(I'*{I' <- `I'*`})] +[visit_exp I] +[visit_id I] not free +[visit_exp $concat_idctxt(I'*{I' <- `I'*`})] +[visit_exp I'*{I' <- `I'*`}] +[scope_enter I'] +[visit_exp I'] +[visit_id I'] not free +[visit_id I'] not free +[scope_exit I'] +[visit_exp `I'*`] +[visit_id I'*] not free +[visit_id I'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec + def $concat_idctxt{I : I, `I'*` : I*}([I] ++ I'*{I' <- `I'*`}) = I +++ $concat_idctxt(I'*{I' <- `I'*`}) +[check_dims] +[check_dims] I char*#743 char*#761 field name?*#100 name?*#130 name?*#160 name?*#190 name?*#220 name?*#250 name?*#280 name?*#310 name?*#40 name?*#70 name?**#2 +[visit_exp I] +[visit_id I] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`TYPES`_I{`name?*#40`}))] +[visit_exp $concatopt_(syntax name, I.`TYPES`_I{`name?*#40`})] +[visit_exp I.`TYPES`_I{`name?*#40`}] +[visit_exp I] +[visit_id I] not free +[visit_exp `name?*#40`] +[visit_id name?*#40] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`TAGS`_I{`name?*#70`}))] +[visit_exp $concatopt_(syntax name, I.`TAGS`_I{`name?*#70`})] +[visit_exp I.`TAGS`_I{`name?*#70`}] +[visit_exp I] +[visit_id I] not free +[visit_exp `name?*#70`] +[visit_id name?*#70] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`GLOBALS`_I{`name?*#100`}))] +[visit_exp $concatopt_(syntax name, I.`GLOBALS`_I{`name?*#100`})] +[visit_exp I.`GLOBALS`_I{`name?*#100`}] +[visit_exp I] +[visit_id I] not free +[visit_exp `name?*#100`] +[visit_id name?*#100] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`MEMS`_I{`name?*#130`}))] +[visit_exp $concatopt_(syntax name, I.`MEMS`_I{`name?*#130`})] +[visit_exp I.`MEMS`_I{`name?*#130`}] +[visit_exp I] +[visit_id I] not free +[visit_exp `name?*#130`] +[visit_id name?*#130] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`TABLES`_I{`name?*#160`}))] +[visit_exp $concatopt_(syntax name, I.`TABLES`_I{`name?*#160`})] +[visit_exp I.`TABLES`_I{`name?*#160`}] +[visit_exp I] +[visit_id I] not free +[visit_exp `name?*#160`] +[visit_id name?*#160] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`FUNCS`_I{`name?*#190`}))] +[visit_exp $concatopt_(syntax name, I.`FUNCS`_I{`name?*#190`})] +[visit_exp I.`FUNCS`_I{`name?*#190`}] +[visit_exp I] +[visit_id I] not free +[visit_exp `name?*#190`] +[visit_id name?*#190] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`DATAS`_I{`name?*#220`}))] +[visit_exp $concatopt_(syntax name, I.`DATAS`_I{`name?*#220`})] +[visit_exp I.`DATAS`_I{`name?*#220`}] +[visit_exp I] +[visit_id I] not free +[visit_exp `name?*#220`] +[visit_id name?*#220] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`ELEMS`_I{`name?*#250`}))] +[visit_exp $concatopt_(syntax name, I.`ELEMS`_I{`name?*#250`})] +[visit_exp I.`ELEMS`_I{`name?*#250`}] +[visit_exp I] +[visit_id I] not free +[visit_exp `name?*#250`] +[visit_id name?*#250] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`LOCALS`_I{`name?*#280`}))] +[visit_exp $concatopt_(syntax name, I.`LOCALS`_I{`name?*#280`})] +[visit_exp I.`LOCALS`_I{`name?*#280`}] +[visit_exp I] +[visit_id I] not free +[visit_exp `name?*#280`] +[visit_id name?*#280] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`LABELS`_I{`name?*#310`}))] +[visit_exp $concatopt_(syntax name, I.`LABELS`_I{`name?*#310`})] +[visit_exp I.`LABELS`_I{`name?*#310`}] +[visit_exp I] +[visit_id I] not free +[visit_exp `name?*#310`] +[visit_id name?*#310] +[scope_enter char*#743] +[scope_enter field*] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, [?(`%`_name{`char*#743`}(field*{field <- `field*`}))]))] +[visit_exp $concatopt_(syntax name, [?(`%`_name{`char*#743`}(field*{field <- `field*`}))])] +[visit_exp [?(`%`_name{`char*#743`}(field*{field <- `field*`}))]] +[visit_exp ?(`%`_name{`char*#743`}(field*{field <- `field*`}))] +[visit_exp `%`_name{`char*#743`}(field*{field <- `field*`})] +[visit_exp `char*#743`] +[visit_id char*#743] not free +[visit_exp (field*{field <- `field*`})] +[visit_exp field*{field <- `field*`}] +[scope_enter field] +[visit_exp field] +[visit_id field] not free +[visit_id field] not free +[scope_exit field] +[visit_exp `field*`] +[visit_id field*] not free +[visit_id field*] no dims +[visit_id char*#743] not free +[visit_id field*] not free +[visit_id field*] no dims +[scope_exit field*] +[scope_exit char*#743] +[visit_exp `char*#743*`] +[visit_id char*#743*] no dims +[visit_id char*#743*] +[visit_exp `field**`] +[visit_id field**] no dims +[visit_id field**] +[visit_exp ([?(`%`_name{`char*#761`}(field*{field <- `field*`}))*{`char*#761` <- `char*#761*`, `field*` <- `field**`}] = I.`FIELDS`_I{`name?**#2`})] +[visit_exp [?(`%`_name{`char*#761`}(field*{field <- `field*`}))*{`char*#761` <- `char*#761*`, `field*` <- `field**`}]] +[visit_exp ?(`%`_name{`char*#761`}(field*{field <- `field*`}))*{`char*#761` <- `char*#761*`, `field*` <- `field**`}] +[scope_enter char*#761] +[scope_enter field*] +[visit_exp ?(`%`_name{`char*#761`}(field*{field <- `field*`}))] +[visit_exp `%`_name{`char*#761`}(field*{field <- `field*`})] +[visit_exp `char*#761`] +[visit_id char*#761] not free +[visit_exp (field*{field <- `field*`})] +[visit_exp field*{field <- `field*`}] +[scope_enter field] +[visit_exp field] +[visit_id field] not free +[visit_id field] not free +[scope_exit field] +[visit_exp `field*`] +[visit_id field*] not free +[visit_id field*] no dims +[visit_id char*#761] not free +[visit_id field*] not free +[visit_id field*] no dims +[scope_exit field*] +[scope_exit char*#761] +[visit_exp `char*#761*`] +[visit_id char*#761*] no dims +[visit_id char*#761*] +[visit_exp `field**`] +[visit_id field**] not free +[visit_id field**] no dims +[visit_exp I.`FIELDS`_I{`name?**#2`}] +[visit_exp I] +[visit_id I] not free +[visit_exp `name?**#2`] +[visit_id name?**#2] +ps' = (ids : name?*) +[check_dims] ids +[check_dims] ids x +dims \ ids = x +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[check_dims] i#94485 id ids x +dims \ ids = i#94485, id, x +[visit_exp x] +[visit_id x] +[visit_exp id] +[visit_id id] +[visit_exp (ids[x!`%`_idx{i#94485}.0] = ?(id))] +[visit_exp ids[x!`%`_idx{i#94485}.0]] +[visit_exp ids] +[visit_id ids] not free +[visit_id ids] no dims +[visit_exp x!`%`_idx{i#94485}.0] +[visit_exp x!`%`_idx{i#94485}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#94485] +[visit_id i#94485] +[visit_exp ?(id)] +[visit_exp id] +[visit_id id] not free +[visit_id ids] not free +ps' = (I : I) +[check_dims] I +[check_dims] I name?*#322 +dims \ I = , name?*#322 +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp I.`TYPES`_I{`name?*#322`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#322`] +[visit_id name?*#322] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I name?*#334 +dims \ I = , name?*#334 +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp I.`TAGS`_I{`name?*#334`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#334`] +[visit_id name?*#334] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I name?*#346 +dims \ I = , name?*#346 +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp I.`GLOBALS`_I{`name?*#346`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#346`] +[visit_id name?*#346] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I name?*#358 +dims \ I = , name?*#358 +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp I.`MEMS`_I{`name?*#358`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#358`] +[visit_id name?*#358] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I name?*#370 +dims \ I = , name?*#370 +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp I.`TABLES`_I{`name?*#370`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#370`] +[visit_id name?*#370] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I name?*#382 +dims \ I = , name?*#382 +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp I.`FUNCS`_I{`name?*#382`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#382`] +[visit_id name?*#382] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I name?*#394 +dims \ I = , name?*#394 +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp I.`DATAS`_I{`name?*#394`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#394`] +[visit_id name?*#394] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I name?*#406 +dims \ I = , name?*#406 +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp I.`ELEMS`_I{`name?*#406`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#406`] +[visit_id name?*#406] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I name?*#418 +dims \ I = , name?*#418 +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp I.`LOCALS`_I{`name?*#418`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#418`] +[visit_id name?*#418] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I name?*#430 +dims \ I = , name?*#430 +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp I.`LABELS`_I{`name?*#430`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#430`] +[visit_id name?*#430] +[visit_id I] not free +ps' = (I : I, x : idx) +[check_dims] I x +[check_dims] I i#95162 name?**#14 x +dims \ I x = , i#95162, name?**#14 +[visit_exp ``] +[visit_id ] +[visit_exp ``] +[visit_id ] not free +[visit_exp I.`FIELDS`_I{`name?**#14`}[x!`%`_idx{i#95162}.0]] +[visit_exp I.`FIELDS`_I{`name?**#14`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?**#14`] +[visit_id name?**#14] +[visit_exp x!`%`_idx{i#95162}.0] +[visit_exp x!`%`_idx{i#95162}] +[visit_exp x] +[visit_id x] not free +[visit_id x] no dims +[visit_exp i#95162] +[visit_id i#95162] +[visit_id I] not free +[visit_id x] not free +ps' = (I : I) +[check_dims] I +[check_dims] I tagidx#27 x +dims \ I = tagidx#27, x +[visit_exp `TAG`_externidx{tagidx#27}(x)] +[visit_exp tagidx#27] +[visit_id tagidx#27] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I globalidx#29 x +dims \ I = globalidx#29, x +[visit_exp `GLOBAL`_externidx{globalidx#29}(x)] +[visit_exp globalidx#29] +[visit_id globalidx#29] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I memidx#276 x +dims \ I = memidx#276, x +[visit_exp `MEM`_externidx{memidx#276}(x)] +[visit_exp memidx#276] +[visit_id memidx#276] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I tableidx#152 x +dims \ I = tableidx#152, x +[visit_exp `TABLE`_externidx{tableidx#152}(x)] +[visit_exp tableidx#152] +[visit_id tableidx#152] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I funcidx#3381 x +dims \ I = funcidx#3381, x +[visit_exp `FUNC`_externidx{funcidx#3381}(x)] +[visit_exp funcidx#3381] +[visit_id funcidx#3381] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp `I32`_numtype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `I64`_numtype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `F32`_numtype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `F64`_numtype] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp `V128`_vectype] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp `ANY`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `EQ`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `I31`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `STRUCT`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `ARRAY`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `NONE`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `FUNC`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `NOFUNC`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `EXN`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `NOEXN`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `EXTERN`_heaptype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `NOEXTERN`_heaptype] +[visit_exp ()] +ps' = (I : I) +[check_dims] I +[check_dims] I ht +dims \ I = ht +[visit_exp ht] +[visit_id ht] +[visit_exp ht] +[visit_id ht] not free +[check_dims] I typeidx#2119 x +dims \ I = typeidx#2119, x +[visit_exp `_IDX`_heaptype{typeidx#2119}(x)] +[visit_exp typeidx#2119] +[visit_id typeidx#2119] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp `NULL`_null] +[visit_exp ()] +ps' = (I : I) +[check_dims] I +[check_dims] I heaptype#1861 ht null null?#1795 +dims \ I = heaptype#1861, ht, null, null?#1795 +[visit_exp `REF`_reftype{`null?#1795`, heaptype#1861}(null?{null <- `null?`}, ht)] +[visit_exp `null?#1795`] +[visit_id null?#1795] +[visit_exp heaptype#1861] +[visit_id heaptype#1861] +[visit_exp (null?{null <- `null?`}, ht)] +[visit_exp null?{null <- `null?`}] +[scope_enter null] +[visit_exp null] +[visit_id null] not free +[visit_id null] not free +[scope_exit null] +[visit_exp `null?`] +[visit_id null?] no dims +[visit_id null?] +[visit_exp ht] +[visit_id ht] +[visit_exp null?{null <- `null?`}] +[scope_enter null] +[visit_exp null] +[visit_id null] not free +[visit_id null] not free +[scope_exit null] +[visit_exp `null?`] +[visit_id null?] not free +[visit_id null?] no dims +[visit_exp ht] +[visit_id ht] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I nt +dims \ I = nt +[visit_exp (nt : numtype <: valtype)] +[visit_exp nt] +[visit_id nt] +[visit_exp nt] +[visit_id nt] not free +[check_dims] I vt +dims \ I = vt +[visit_exp (vt : vectype <: valtype)] +[visit_exp vt] +[visit_id vt] +[visit_exp vt] +[visit_id vt] not free +[check_dims] I rt +dims \ I = rt +[visit_exp (rt : reftype <: valtype)] +[visit_exp rt] +[visit_id rt] +[visit_exp rt] +[visit_id rt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp `I8`_packtype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `I16`_packtype] +[visit_exp ()] +ps' = (I : I) +[check_dims] I +[check_dims] I t +dims \ I = t +[visit_exp (t : valtype <: storagetype)] +[visit_exp t] +[visit_id t] +[visit_exp t] +[visit_id t] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I pt +dims \ I = pt +[visit_exp (pt : packtype <: storagetype)] +[visit_exp pt] +[visit_id pt] +[visit_exp pt] +[visit_id pt] not free +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I mut?#1499 storagetype#801 zt +dims \ I = mut?#1499, storagetype#801, zt +[visit_exp `%%`_fieldtype{`mut?#1499`, storagetype#801}(?(), zt)] +[visit_exp `mut?#1499`] +[visit_id mut?#1499] +[visit_exp storagetype#801] +[visit_id storagetype#801] +[visit_exp (?(), zt)] +[visit_exp ?()] +[visit_exp zt] +[visit_id zt] +[visit_exp zt] +[visit_id zt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I mut?#1511 storagetype#813 zt +dims \ I = mut?#1511, storagetype#813, zt +[visit_exp `%%`_fieldtype{`mut?#1511`, storagetype#813}(?(`MUT`_mut), zt)] +[visit_exp `mut?#1511`] +[visit_id mut?#1511] +[visit_exp storagetype#813] +[visit_id storagetype#813] +[visit_exp (?(`MUT`_mut), zt)] +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp zt] +[visit_id zt] +[visit_exp zt] +[visit_id zt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I _ +[check_dims] I char*#963 char*#969 ft id +dims \ I = char*#963, char*#969, ft, id +[visit_exp (ft, ?(`%`_name{`char*#969`}(lift(id?{id <- `id?`}))))] +[visit_exp ft] +[visit_id ft] +[visit_exp ?(`%`_name{`char*#969`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#969`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#969`] +[visit_id char*#969] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp ?(`%`_name{`char*#963`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#963`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#963`] +[visit_id char*#963] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp ft] +[visit_id ft] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = (I : I) +[check_dims] I _ +[check_dims] I +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = (I : I) +[check_dims] I _ +[check_dims] I char*#975 char*#981 id t +dims \ I = char*#975, char*#981, id, t +[visit_exp (t, ?(`%`_name{`char*#981`}(lift(id?{id <- `id?`}))))] +[visit_exp t] +[visit_id t] +[visit_exp ?(`%`_name{`char*#981`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#981`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#981`] +[visit_id char*#981] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp ?(`%`_name{`char*#975`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#975`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#975`] +[visit_id char*#975] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp t] +[visit_id t] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = (I : I) +[check_dims] I _ +[check_dims] I +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = (I : I) +[check_dims] I +[check_dims] I t +dims \ I = t +[visit_exp t] +[visit_id t] +[visit_exp t] +[visit_id t] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I _ +[check_dims] I X*#13361 _ char*#1005 char*#987 deftype?*#2 ft id name?*#431 name?*#432 name?*#433 name?*#434 name?*#435 name?*#436 name?*#437 name?*#438 name?*#439 name?*#440 name?**#15 +dims \ I = X*#13361, _, char*#1005, char*#987, deftype?*#2, ft, id, name?*#431, name?*#432, name?*#433, name?*#434, name?*#435, name?*#436, name?*#437, name?*#438, name?*#439, name?*#440, name?**#15 +[visit_exp (`STRUCT`_comptype(`%`_list{`X*#13361`}(ft*{ft <- `ft*`})), {`TYPES`{`name?*#431`} [], `TAGS`{`name?*#432`} [], `GLOBALS`{`name?*#433`} [], `MEMS`{`name?*#434`} [], `TABLES`{`name?*#435`} [], `FUNCS`{`name?*#436`} [], `DATAS`{`name?*#437`} [], `ELEMS`{`name?*#438`} [], `LOCALS`{`name?*#439`} [], `LABELS`{`name?*#440`} [], `FIELDS`{`name?**#15`} [?(`%`_name{`char*#1005`}(lift(id?{id <- `id?`})))*{`char*#1005` <- `char*#1005*`, `id?` <- `id?*`}], `TYPEDEFS`{`deftype?*#2`} []})] +[visit_exp `STRUCT`_comptype(`%`_list{`X*#13361`}(ft*{ft <- `ft*`}))] +[visit_exp (`%`_list{`X*#13361`}(ft*{ft <- `ft*`}))] +[visit_exp `%`_list{`X*#13361`}(ft*{ft <- `ft*`})] +[visit_exp `X*#13361`] +[visit_id X*#13361] +[visit_exp (ft*{ft <- `ft*`})] +[visit_exp ft*{ft <- `ft*`}] +[scope_enter ft] +[visit_exp ft] +[visit_id ft] not free +[visit_id ft] not free +[scope_exit ft] +[visit_exp `ft*`] +[visit_id ft*] no dims +[visit_id ft*] +[visit_exp {`TYPES`{`name?*#431`} [], `TAGS`{`name?*#432`} [], `GLOBALS`{`name?*#433`} [], `MEMS`{`name?*#434`} [], `TABLES`{`name?*#435`} [], `FUNCS`{`name?*#436`} [], `DATAS`{`name?*#437`} [], `ELEMS`{`name?*#438`} [], `LOCALS`{`name?*#439`} [], `LABELS`{`name?*#440`} [], `FIELDS`{`name?**#15`} [?(`%`_name{`char*#1005`}(lift(id?{id <- `id?`})))*{`char*#1005` <- `char*#1005*`, `id?` <- `id?*`}], `TYPEDEFS`{`deftype?*#2`} []}] +[visit_exp `name?*#431`] +[visit_id name?*#431] +[visit_exp []] +[visit_exp `name?*#432`] +[visit_id name?*#432] +[visit_exp []] +[visit_exp `name?*#433`] +[visit_id name?*#433] +[visit_exp []] +[visit_exp `name?*#434`] +[visit_id name?*#434] +[visit_exp []] +[visit_exp `name?*#435`] +[visit_id name?*#435] +[visit_exp []] +[visit_exp `name?*#436`] +[visit_id name?*#436] +[visit_exp []] +[visit_exp `name?*#437`] +[visit_id name?*#437] +[visit_exp []] +[visit_exp `name?*#438`] +[visit_id name?*#438] +[visit_exp []] +[visit_exp `name?*#439`] +[visit_id name?*#439] +[visit_exp []] +[visit_exp `name?*#440`] +[visit_id name?*#440] +[visit_exp []] +[visit_exp `name?**#15`] +[visit_id name?**#15] +[visit_exp [?(`%`_name{`char*#1005`}(lift(id?{id <- `id?`})))*{`char*#1005` <- `char*#1005*`, `id?` <- `id?*`}]] +[visit_exp ?(`%`_name{`char*#1005`}(lift(id?{id <- `id?`})))*{`char*#1005` <- `char*#1005*`, `id?` <- `id?*`}] +[scope_enter char*#1005] +[scope_enter id?] +[visit_exp ?(`%`_name{`char*#1005`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1005`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1005`] +[visit_id char*#1005] not free +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_id char*#1005] not free +[visit_id id?] not free +[visit_id id?] no dims +[scope_exit id?] +[scope_exit char*#1005] +[visit_exp `char*#1005*`] +[visit_id char*#1005*] no dims +[visit_id char*#1005*] +[visit_exp `id?*`] +[visit_id id?*] no dims +[visit_id id?*] +[visit_exp `deftype?*#2`] +[visit_id deftype?*#2] +[visit_exp []] +[visit_exp (ft, ?(`%`_name{`char*#987`}(lift(id?{id <- `id?`}))))*{`char*#987` <- `char*#987*`, ft <- `ft*`, `id?` <- `id?*`}] +[scope_enter char*#987] +[scope_enter ft] +[scope_enter id?] +[visit_exp (ft, ?(`%`_name{`char*#987`}(lift(id?{id <- `id?`}))))] +[visit_exp ft] +[visit_id ft] not free +[visit_exp ?(`%`_name{`char*#987`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#987`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#987`] +[visit_id char*#987] not free +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_id char*#987] not free +[visit_id ft] not free +[visit_id id?] not free +[visit_id id?] no dims +[scope_exit id?] +[scope_exit ft] +[scope_exit char*#987] +[visit_exp `char*#987*`] +[visit_id char*#987*] no dims +[visit_id char*#987*] +[visit_exp `ft*`] +[visit_id ft*] not free +[visit_id ft*] no dims +[visit_exp `id?*`] +[visit_id id?*] not free +[visit_id id?*] no dims +[visit_id _] not free +[visit_id _] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I deftype?*#3 fieldtype#61 ft name?*#441 name?*#442 name?*#443 name?*#444 name?*#445 name?*#446 name?*#447 name?*#448 name?*#449 name?*#450 name?**#16 +dims \ I = deftype?*#3, fieldtype#61, ft, name?*#441, name?*#442, name?*#443, name?*#444, name?*#445, name?*#446, name?*#447, name?*#448, name?*#449, name?*#450, name?**#16 +[visit_exp (`ARRAY`_comptype{fieldtype#61}(ft), {`TYPES`{`name?*#441`} [], `TAGS`{`name?*#442`} [], `GLOBALS`{`name?*#443`} [], `MEMS`{`name?*#444`} [], `TABLES`{`name?*#445`} [], `FUNCS`{`name?*#446`} [], `DATAS`{`name?*#447`} [], `ELEMS`{`name?*#448`} [], `LOCALS`{`name?*#449`} [], `LABELS`{`name?*#450`} [], `FIELDS`{`name?**#16`} [], `TYPEDEFS`{`deftype?*#3`} []})] +[visit_exp `ARRAY`_comptype{fieldtype#61}(ft)] +[visit_exp fieldtype#61] +[visit_id fieldtype#61] +[visit_exp (ft)] +[visit_exp ft] +[visit_id ft] +[visit_exp {`TYPES`{`name?*#441`} [], `TAGS`{`name?*#442`} [], `GLOBALS`{`name?*#443`} [], `MEMS`{`name?*#444`} [], `TABLES`{`name?*#445`} [], `FUNCS`{`name?*#446`} [], `DATAS`{`name?*#447`} [], `ELEMS`{`name?*#448`} [], `LOCALS`{`name?*#449`} [], `LABELS`{`name?*#450`} [], `FIELDS`{`name?**#16`} [], `TYPEDEFS`{`deftype?*#3`} []}] +[visit_exp `name?*#441`] +[visit_id name?*#441] +[visit_exp []] +[visit_exp `name?*#442`] +[visit_id name?*#442] +[visit_exp []] +[visit_exp `name?*#443`] +[visit_id name?*#443] +[visit_exp []] +[visit_exp `name?*#444`] +[visit_id name?*#444] +[visit_exp []] +[visit_exp `name?*#445`] +[visit_id name?*#445] +[visit_exp []] +[visit_exp `name?*#446`] +[visit_id name?*#446] +[visit_exp []] +[visit_exp `name?*#447`] +[visit_id name?*#447] +[visit_exp []] +[visit_exp `name?*#448`] +[visit_id name?*#448] +[visit_exp []] +[visit_exp `name?*#449`] +[visit_id name?*#449] +[visit_exp []] +[visit_exp `name?*#450`] +[visit_id name?*#450] +[visit_exp []] +[visit_exp `name?**#16`] +[visit_id name?**#16] +[visit_exp []] +[visit_exp `deftype?*#3`] +[visit_id deftype?*#3] +[visit_exp []] +[visit_exp ft] +[visit_id ft] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I X*#13376 X*#13389 _ char*#1011 deftype?*#4 id name?*#451 name?*#452 name?*#453 name?*#454 name?*#455 name?*#456 name?*#457 name?*#458 name?*#459 name?*#460 name?**#17 resulttype#3032 t_1 t_2 +dims \ I = X*#13376, X*#13389, _, char*#1011, deftype?*#4, id, name?*#451, name?*#452, name?*#453, name?*#454, name?*#455, name?*#456, name?*#457, name?*#458, name?*#459, name?*#460, name?**#17, resulttype#3032, t_1, t_2 +[visit_exp (`FUNC%->%`_comptype{resulttype#3032}(`%`_resulttype{`X*#13376`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13389`}(t_2*{t_2 <- `t_2*`})), {`TYPES`{`name?*#451`} [], `TAGS`{`name?*#452`} [], `GLOBALS`{`name?*#453`} [], `MEMS`{`name?*#454`} [], `TABLES`{`name?*#455`} [], `FUNCS`{`name?*#456`} [], `DATAS`{`name?*#457`} [], `ELEMS`{`name?*#458`} [], `LOCALS`{`name?*#459`} [], `LABELS`{`name?*#460`} [], `FIELDS`{`name?**#17`} [], `TYPEDEFS`{`deftype?*#4`} []})] +[visit_exp `FUNC%->%`_comptype{resulttype#3032}(`%`_resulttype{`X*#13376`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13389`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#3032] +[visit_id resulttype#3032] +[visit_exp (`%`_resulttype{`X*#13376`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13389`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#13376`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#13376`] +[visit_id X*#13376] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp `%`_resulttype{`X*#13389`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#13389`] +[visit_id X*#13389] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp {`TYPES`{`name?*#451`} [], `TAGS`{`name?*#452`} [], `GLOBALS`{`name?*#453`} [], `MEMS`{`name?*#454`} [], `TABLES`{`name?*#455`} [], `FUNCS`{`name?*#456`} [], `DATAS`{`name?*#457`} [], `ELEMS`{`name?*#458`} [], `LOCALS`{`name?*#459`} [], `LABELS`{`name?*#460`} [], `FIELDS`{`name?**#17`} [], `TYPEDEFS`{`deftype?*#4`} []}] +[visit_exp `name?*#451`] +[visit_id name?*#451] +[visit_exp []] +[visit_exp `name?*#452`] +[visit_id name?*#452] +[visit_exp []] +[visit_exp `name?*#453`] +[visit_id name?*#453] +[visit_exp []] +[visit_exp `name?*#454`] +[visit_id name?*#454] +[visit_exp []] +[visit_exp `name?*#455`] +[visit_id name?*#455] +[visit_exp []] +[visit_exp `name?*#456`] +[visit_id name?*#456] +[visit_exp []] +[visit_exp `name?*#457`] +[visit_id name?*#457] +[visit_exp []] +[visit_exp `name?*#458`] +[visit_id name?*#458] +[visit_exp []] +[visit_exp `name?*#459`] +[visit_id name?*#459] +[visit_exp []] +[visit_exp `name?*#460`] +[visit_id name?*#460] +[visit_exp []] +[visit_exp `name?**#17`] +[visit_id name?**#17] +[visit_exp []] +[visit_exp `deftype?*#4`] +[visit_id deftype?*#4] +[visit_exp []] +[visit_exp (t_1, ?(`%`_name{`char*#1011`}(lift(id?{id <- `id?`}))))*{`char*#1011` <- `char*#1011*`, `id?` <- `id?*`, t_1 <- `t_1*`}] +[scope_enter char*#1011] +[scope_enter id?] +[scope_enter t_1] +[visit_exp (t_1, ?(`%`_name{`char*#1011`}(lift(id?{id <- `id?`}))))] +[visit_exp t_1] +[visit_id t_1] not free +[visit_exp ?(`%`_name{`char*#1011`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1011`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1011`] +[visit_id char*#1011] not free +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_id char*#1011] not free +[visit_id id?] not free +[visit_id id?] no dims +[visit_id t_1] not free +[scope_exit t_1] +[scope_exit id?] +[scope_exit char*#1011] +[visit_exp `char*#1011*`] +[visit_id char*#1011*] no dims +[visit_id char*#1011*] +[visit_exp `id?*`] +[visit_id id?*] no dims +[visit_id id?*] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_id _] not free +[visit_id _] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp `FINAL`_final] +[visit_exp ()] +ps' = (I : I) +[check_dims] I _ +[check_dims] I I' comptype#523 ct fin final?#523 typeidx#2121 typeuse*#523 x +dims \ I = I', comptype#523, ct, fin, final?#523, typeidx#2121, typeuse*#523, x +[visit_exp (`SUB`_subtype{`final?#523`, `typeuse*#523`, comptype#523}(fin?{fin <- `fin?`}, `_IDX`_typeuse{typeidx#2121}(x)*{typeidx#2121 <- `typeidx#2121*`, x <- `x*`}, ct), I')] +[visit_exp `SUB`_subtype{`final?#523`, `typeuse*#523`, comptype#523}(fin?{fin <- `fin?`}, `_IDX`_typeuse{typeidx#2121}(x)*{typeidx#2121 <- `typeidx#2121*`, x <- `x*`}, ct)] +[visit_exp `final?#523`] +[visit_id final?#523] +[visit_exp `typeuse*#523`] +[visit_id typeuse*#523] +[visit_exp comptype#523] +[visit_id comptype#523] +[visit_exp (fin?{fin <- `fin?`}, `_IDX`_typeuse{typeidx#2121}(x)*{typeidx#2121 <- `typeidx#2121*`, x <- `x*`}, ct)] +[visit_exp fin?{fin <- `fin?`}] +[scope_enter fin] +[visit_exp fin] +[visit_id fin] not free +[visit_id fin] not free +[scope_exit fin] +[visit_exp `fin?`] +[visit_id fin?] no dims +[visit_id fin?] +[visit_exp `_IDX`_typeuse{typeidx#2121}(x)*{typeidx#2121 <- `typeidx#2121*`, x <- `x*`}] +[scope_enter typeidx#2121] +[scope_enter x] +[visit_exp `_IDX`_typeuse{typeidx#2121}(x)] +[visit_exp typeidx#2121] +[visit_id typeidx#2121] not free +[visit_exp (x)] +[visit_exp x] +[visit_id x] not free +[visit_id typeidx#2121] not free +[visit_id x] not free +[scope_exit x] +[scope_exit typeidx#2121] +[visit_exp `typeidx#2121*`] +[visit_id typeidx#2121*] no dims +[visit_id typeidx#2121*] +[visit_exp `x*`] +[visit_id x*] no dims +[visit_id x*] +[visit_exp ct] +[visit_id ct] +[visit_exp I'] +[visit_id I'] +[visit_exp fin?{fin <- `fin?`}] +[scope_enter fin] +[visit_exp fin] +[visit_id fin] not free +[visit_id fin] not free +[scope_exit fin] +[visit_exp `fin?`] +[visit_id fin?] not free +[visit_id fin?] no dims +[visit_exp x*{x <- `x*`}] +[scope_enter x] +[visit_exp x] +[visit_id x] not free +[visit_id x] not free +[scope_exit x] +[visit_exp `x*`] +[visit_id x*] not free +[visit_id x*] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp (ct, I')] +[visit_exp ct] +[visit_id ct] not free +[visit_exp I'] +[visit_id I'] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = (I : I) +[check_dims] I _ +[check_dims] I +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = (I : I) +[check_dims] I _ +[check_dims] I I' char*#1017 char*#1023 deftype?*#5 id name?*#461 name?*#462 name?*#463 name?*#464 name?*#465 name?*#466 name?*#467 name?*#468 name?*#469 name?*#470 name?**#18 st +dims \ I = I', char*#1017, char*#1023, deftype?*#5, id, name?*#461, name?*#462, name?*#463, name?*#464, name?*#465, name?*#466, name?*#467, name?*#468, name?*#469, name?*#470, name?**#18, st +[visit_exp (st, I' +++ {`TYPES`{`name?*#461`} [?(`%`_name{`char*#1023`}(lift(id?{id <- `id?`})))], `TAGS`{`name?*#462`} [], `GLOBALS`{`name?*#463`} [], `MEMS`{`name?*#464`} [], `TABLES`{`name?*#465`} [], `FUNCS`{`name?*#466`} [], `DATAS`{`name?*#467`} [], `ELEMS`{`name?*#468`} [], `LOCALS`{`name?*#469`} [], `LABELS`{`name?*#470`} [], `FIELDS`{`name?**#18`} [], `TYPEDEFS`{`deftype?*#5`} []})] +[visit_exp st] +[visit_id st] +[visit_exp I' +++ {`TYPES`{`name?*#461`} [?(`%`_name{`char*#1023`}(lift(id?{id <- `id?`})))], `TAGS`{`name?*#462`} [], `GLOBALS`{`name?*#463`} [], `MEMS`{`name?*#464`} [], `TABLES`{`name?*#465`} [], `FUNCS`{`name?*#466`} [], `DATAS`{`name?*#467`} [], `ELEMS`{`name?*#468`} [], `LOCALS`{`name?*#469`} [], `LABELS`{`name?*#470`} [], `FIELDS`{`name?**#18`} [], `TYPEDEFS`{`deftype?*#5`} []}] +[visit_exp I'] +[visit_id I'] +[visit_exp {`TYPES`{`name?*#461`} [?(`%`_name{`char*#1023`}(lift(id?{id <- `id?`})))], `TAGS`{`name?*#462`} [], `GLOBALS`{`name?*#463`} [], `MEMS`{`name?*#464`} [], `TABLES`{`name?*#465`} [], `FUNCS`{`name?*#466`} [], `DATAS`{`name?*#467`} [], `ELEMS`{`name?*#468`} [], `LOCALS`{`name?*#469`} [], `LABELS`{`name?*#470`} [], `FIELDS`{`name?**#18`} [], `TYPEDEFS`{`deftype?*#5`} []}] +[visit_exp `name?*#461`] +[visit_id name?*#461] +[visit_exp [?(`%`_name{`char*#1023`}(lift(id?{id <- `id?`})))]] +[visit_exp ?(`%`_name{`char*#1023`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1023`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1023`] +[visit_id char*#1023] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp `name?*#462`] +[visit_id name?*#462] +[visit_exp []] +[visit_exp `name?*#463`] +[visit_id name?*#463] +[visit_exp []] +[visit_exp `name?*#464`] +[visit_id name?*#464] +[visit_exp []] +[visit_exp `name?*#465`] +[visit_id name?*#465] +[visit_exp []] +[visit_exp `name?*#466`] +[visit_id name?*#466] +[visit_exp []] +[visit_exp `name?*#467`] +[visit_id name?*#467] +[visit_exp []] +[visit_exp `name?*#468`] +[visit_id name?*#468] +[visit_exp []] +[visit_exp `name?*#469`] +[visit_id name?*#469] +[visit_exp []] +[visit_exp `name?*#470`] +[visit_id name?*#470] +[visit_exp []] +[visit_exp `name?**#18`] +[visit_id name?**#18] +[visit_exp []] +[visit_exp `deftype?*#5`] +[visit_id deftype?*#5] +[visit_exp []] +[visit_exp ?(`%`_name{`char*#1017`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1017`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1017`] +[visit_id char*#1017] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp (st, I')] +[visit_exp st] +[visit_id st] not free +[visit_exp I'] +[visit_id I'] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = (I : I) +[check_dims] I _ +[check_dims] I I' X*#13404 _ st +dims \ I = I', X*#13404, _, st +[visit_exp (`REC`_rectype(`%`_list{`X*#13404`}(st*{st <- `st*`})), $concat_idctxt(I'*{I' <- `I'*`}))] +[visit_exp `REC`_rectype(`%`_list{`X*#13404`}(st*{st <- `st*`}))] +[visit_exp (`%`_list{`X*#13404`}(st*{st <- `st*`}))] +[visit_exp `%`_list{`X*#13404`}(st*{st <- `st*`})] +[visit_exp `X*#13404`] +[visit_id X*#13404] +[visit_exp (st*{st <- `st*`})] +[visit_exp st*{st <- `st*`}] +[scope_enter st] +[visit_exp st] +[visit_id st] not free +[visit_id st] not free +[scope_exit st] +[visit_exp `st*`] +[visit_id st*] no dims +[visit_id st*] +[visit_exp $concat_idctxt(I'*{I' <- `I'*`})] +[visit_exp I'*{I' <- `I'*`}] +[scope_enter I'] +[visit_exp I'] +[visit_id I'] not free +[visit_id I'] not free +[scope_exit I'] +[visit_exp `I'*`] +[visit_id I'*] no dims +[visit_id I'*] +[visit_exp (st, I')*{I' <- `I'*`, st <- `st*`}] +[scope_enter I'] +[scope_enter st] +[visit_exp (st, I')] +[visit_exp st] +[visit_id st] not free +[visit_exp I'] +[visit_id I'] not free +[visit_id I'] not free +[visit_id st] not free +[scope_exit st] +[scope_exit I'] +[visit_exp `I'*`] +[visit_id I'*] not free +[visit_id I'*] no dims +[visit_exp `st*`] +[visit_id st*] not free +[visit_id st*] no dims +[visit_id _] not free +[visit_id _] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = (I : I) +[check_dims] I _ +[check_dims] I +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp `I32`_addrtype] +[visit_exp ()] +[check_dims] +dims \ = +[visit_exp `I64`_addrtype] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] +ps' = +[check_dims] +[check_dims] i#95568 i#95590 n u64#571 u64?#545 +dims \ = i#95568, i#95590, n, u64#571, u64?#545 +[visit_exp `[%..%]`_limits{u64#571, `u64?#545`}(`%`_u64{i#95590}(n), ?())] +[visit_exp u64#571] +[visit_id u64#571] +[visit_exp `u64?#545`] +[visit_id u64?#545] +[visit_exp (`%`_u64{i#95590}(n), ?())] +[visit_exp `%`_u64{i#95590}(n)] +[visit_exp i#95590] +[visit_id i#95590] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp ?()] +[visit_exp `%`_u64{i#95568}(n)] +[visit_exp i#95568] +[visit_id i#95568] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[check_dims] i#95615 i#95642 i#95666 i#95688 m n u64#583 u64?#557 +dims \ = i#95615, i#95642, i#95666, i#95688, m, n, u64#583, u64?#557 +[visit_exp `[%..%]`_limits{u64#583, `u64?#557`}(`%`_u64{i#95666}(n), ?(`%`_u64{i#95688}(m)))] +[visit_exp u64#583] +[visit_id u64#583] +[visit_exp `u64?#557`] +[visit_id u64?#557] +[visit_exp (`%`_u64{i#95666}(n), ?(`%`_u64{i#95688}(m)))] +[visit_exp `%`_u64{i#95666}(n)] +[visit_exp i#95666] +[visit_id i#95666] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp ?(`%`_u64{i#95688}(m))] +[visit_exp `%`_u64{i#95688}(m)] +[visit_exp i#95688] +[visit_id i#95688] +[visit_exp (m)] +[visit_exp m] +[visit_id m] +[visit_exp `%`_u64{i#95615}(n)] +[visit_exp i#95615] +[visit_id i#95615] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp `%`_u64{i#95642}(m)] +[visit_exp i#95642] +[visit_id i#95642] +[visit_exp (m)] +[visit_exp m] +[visit_id m] not free +ps' = (I : I) +[check_dims] I +[check_dims] I I' typeidx#2123 x +dims \ I = I', typeidx#2123, x +[visit_exp `_IDX`_tagtype{typeidx#2123}(x)] +[visit_exp typeidx#2123] +[visit_id typeidx#2123] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp (x, I')] +[visit_exp x] +[visit_id x] not free +[visit_exp I'] +[visit_id I'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I mut?#1561 t valtype#1167 +dims \ I = mut?#1561, t, valtype#1167 +[visit_exp `%%`_globaltype{`mut?#1561`, valtype#1167}(?(), t)] +[visit_exp `mut?#1561`] +[visit_id mut?#1561] +[visit_exp valtype#1167] +[visit_id valtype#1167] +[visit_exp (?(), t)] +[visit_exp ?()] +[visit_exp t] +[visit_id t] +[visit_exp t] +[visit_id t] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I mut?#1573 t valtype#1179 +dims \ I = mut?#1573, t, valtype#1179 +[visit_exp `%%`_globaltype{`mut?#1573`, valtype#1179}(?(`MUT`_mut), t)] +[visit_exp `mut?#1573`] +[visit_id mut?#1573] +[visit_exp valtype#1179] +[visit_id valtype#1179] +[visit_exp (?(`MUT`_mut), t)] +[visit_exp ?(`MUT`_mut)] +[visit_exp `MUT`_mut] +[visit_exp ()] +[visit_exp t] +[visit_id t] +[visit_exp t] +[visit_id t] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I addrtype#1483 at lim limits#1483 +dims \ I = addrtype#1483, at, lim, limits#1483 +[visit_exp `%%PAGE`_memtype{addrtype#1483, limits#1483}(at, lim)] +[visit_exp addrtype#1483] +[visit_id addrtype#1483] +[visit_exp limits#1483] +[visit_id limits#1483] +[visit_exp (at, lim)] +[visit_exp at] +[visit_id at] +[visit_exp lim] +[visit_id lim] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] not free +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I addrtype#1495 at lim limits#1495 reftype#4291 rt +dims \ I = addrtype#1495, at, lim, limits#1495, reftype#4291, rt +[visit_exp `%%%`_tabletype{addrtype#1495, limits#1495, reftype#4291}(at, lim, rt)] +[visit_exp addrtype#1495] +[visit_id addrtype#1495] +[visit_exp limits#1495] +[visit_id limits#1495] +[visit_exp reftype#4291] +[visit_id reftype#4291] +[visit_exp (at, lim, rt)] +[visit_exp at] +[visit_id at] +[visit_exp lim] +[visit_id lim] +[visit_exp rt] +[visit_id rt] +[visit_exp at] +[visit_id at] not free +[visit_exp lim] +[visit_id lim] not free +[visit_exp rt] +[visit_id rt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I _ +[check_dims] I char*#1029 char*#1035 deftype?*#6 id jt name?*#471 name?*#472 name?*#473 name?*#474 name?*#475 name?*#476 name?*#477 name?*#478 name?*#479 name?*#480 name?**#19 tagtype#436 +dims \ I = char*#1029, char*#1035, deftype?*#6, id, jt, name?*#471, name?*#472, name?*#473, name?*#474, name?*#475, name?*#476, name?*#477, name?*#478, name?*#479, name?*#480, name?**#19, tagtype#436 +[visit_exp (`TAG`_externtype{tagtype#436}(jt), {`TYPES`{`name?*#471`} [], `TAGS`{`name?*#472`} [?(`%`_name{`char*#1035`}(lift(id?{id <- `id?`})))], `GLOBALS`{`name?*#473`} [], `MEMS`{`name?*#474`} [], `TABLES`{`name?*#475`} [], `FUNCS`{`name?*#476`} [], `DATAS`{`name?*#477`} [], `ELEMS`{`name?*#478`} [], `LOCALS`{`name?*#479`} [], `LABELS`{`name?*#480`} [], `FIELDS`{`name?**#19`} [], `TYPEDEFS`{`deftype?*#6`} []})] +[visit_exp `TAG`_externtype{tagtype#436}(jt)] +[visit_exp tagtype#436] +[visit_id tagtype#436] +[visit_exp (jt)] +[visit_exp jt] +[visit_id jt] +[visit_exp {`TYPES`{`name?*#471`} [], `TAGS`{`name?*#472`} [?(`%`_name{`char*#1035`}(lift(id?{id <- `id?`})))], `GLOBALS`{`name?*#473`} [], `MEMS`{`name?*#474`} [], `TABLES`{`name?*#475`} [], `FUNCS`{`name?*#476`} [], `DATAS`{`name?*#477`} [], `ELEMS`{`name?*#478`} [], `LOCALS`{`name?*#479`} [], `LABELS`{`name?*#480`} [], `FIELDS`{`name?**#19`} [], `TYPEDEFS`{`deftype?*#6`} []}] +[visit_exp `name?*#471`] +[visit_id name?*#471] +[visit_exp []] +[visit_exp `name?*#472`] +[visit_id name?*#472] +[visit_exp [?(`%`_name{`char*#1035`}(lift(id?{id <- `id?`})))]] +[visit_exp ?(`%`_name{`char*#1035`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1035`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1035`] +[visit_id char*#1035] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp `name?*#473`] +[visit_id name?*#473] +[visit_exp []] +[visit_exp `name?*#474`] +[visit_id name?*#474] +[visit_exp []] +[visit_exp `name?*#475`] +[visit_id name?*#475] +[visit_exp []] +[visit_exp `name?*#476`] +[visit_id name?*#476] +[visit_exp []] +[visit_exp `name?*#477`] +[visit_id name?*#477] +[visit_exp []] +[visit_exp `name?*#478`] +[visit_id name?*#478] +[visit_exp []] +[visit_exp `name?*#479`] +[visit_id name?*#479] +[visit_exp []] +[visit_exp `name?*#480`] +[visit_id name?*#480] +[visit_exp []] +[visit_exp `name?**#19`] +[visit_id name?**#19] +[visit_exp []] +[visit_exp `deftype?*#6`] +[visit_id deftype?*#6] +[visit_exp []] +[visit_exp ?(`%`_name{`char*#1029`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1029`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1029`] +[visit_id char*#1029] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp jt] +[visit_id jt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I char*#1041 char*#1047 deftype?*#7 globaltype#2397 gt id name?*#481 name?*#482 name?*#483 name?*#484 name?*#485 name?*#486 name?*#487 name?*#488 name?*#489 name?*#490 name?**#20 +dims \ I = char*#1041, char*#1047, deftype?*#7, globaltype#2397, gt, id, name?*#481, name?*#482, name?*#483, name?*#484, name?*#485, name?*#486, name?*#487, name?*#488, name?*#489, name?*#490, name?**#20 +[visit_exp (`GLOBAL`_externtype{globaltype#2397}(gt), {`TYPES`{`name?*#481`} [], `TAGS`{`name?*#482`} [], `GLOBALS`{`name?*#483`} [?(`%`_name{`char*#1047`}(lift(id?{id <- `id?`})))], `MEMS`{`name?*#484`} [], `TABLES`{`name?*#485`} [], `FUNCS`{`name?*#486`} [], `DATAS`{`name?*#487`} [], `ELEMS`{`name?*#488`} [], `LOCALS`{`name?*#489`} [], `LABELS`{`name?*#490`} [], `FIELDS`{`name?**#20`} [], `TYPEDEFS`{`deftype?*#7`} []})] +[visit_exp `GLOBAL`_externtype{globaltype#2397}(gt)] +[visit_exp globaltype#2397] +[visit_id globaltype#2397] +[visit_exp (gt)] +[visit_exp gt] +[visit_id gt] +[visit_exp {`TYPES`{`name?*#481`} [], `TAGS`{`name?*#482`} [], `GLOBALS`{`name?*#483`} [?(`%`_name{`char*#1047`}(lift(id?{id <- `id?`})))], `MEMS`{`name?*#484`} [], `TABLES`{`name?*#485`} [], `FUNCS`{`name?*#486`} [], `DATAS`{`name?*#487`} [], `ELEMS`{`name?*#488`} [], `LOCALS`{`name?*#489`} [], `LABELS`{`name?*#490`} [], `FIELDS`{`name?**#20`} [], `TYPEDEFS`{`deftype?*#7`} []}] +[visit_exp `name?*#481`] +[visit_id name?*#481] +[visit_exp []] +[visit_exp `name?*#482`] +[visit_id name?*#482] +[visit_exp []] +[visit_exp `name?*#483`] +[visit_id name?*#483] +[visit_exp [?(`%`_name{`char*#1047`}(lift(id?{id <- `id?`})))]] +[visit_exp ?(`%`_name{`char*#1047`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1047`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1047`] +[visit_id char*#1047] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp `name?*#484`] +[visit_id name?*#484] +[visit_exp []] +[visit_exp `name?*#485`] +[visit_id name?*#485] +[visit_exp []] +[visit_exp `name?*#486`] +[visit_id name?*#486] +[visit_exp []] +[visit_exp `name?*#487`] +[visit_id name?*#487] +[visit_exp []] +[visit_exp `name?*#488`] +[visit_id name?*#488] +[visit_exp []] +[visit_exp `name?*#489`] +[visit_id name?*#489] +[visit_exp []] +[visit_exp `name?*#490`] +[visit_id name?*#490] +[visit_exp []] +[visit_exp `name?**#20`] +[visit_id name?**#20] +[visit_exp []] +[visit_exp `deftype?*#7`] +[visit_id deftype?*#7] +[visit_exp []] +[visit_exp ?(`%`_name{`char*#1041`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1041`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1041`] +[visit_id char*#1041] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp gt] +[visit_id gt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I char*#1053 char*#1059 deftype?*#8 id memtype#858 mt name?*#491 name?*#492 name?*#493 name?*#494 name?*#495 name?*#496 name?*#497 name?*#498 name?*#499 name?*#500 name?**#21 +dims \ I = char*#1053, char*#1059, deftype?*#8, id, memtype#858, mt, name?*#491, name?*#492, name?*#493, name?*#494, name?*#495, name?*#496, name?*#497, name?*#498, name?*#499, name?*#500, name?**#21 +[visit_exp (`MEM`_externtype{memtype#858}(mt), {`TYPES`{`name?*#491`} [], `TAGS`{`name?*#492`} [], `GLOBALS`{`name?*#493`} [], `MEMS`{`name?*#494`} [?(`%`_name{`char*#1059`}(lift(id?{id <- `id?`})))], `TABLES`{`name?*#495`} [], `FUNCS`{`name?*#496`} [], `DATAS`{`name?*#497`} [], `ELEMS`{`name?*#498`} [], `LOCALS`{`name?*#499`} [], `LABELS`{`name?*#500`} [], `FIELDS`{`name?**#21`} [], `TYPEDEFS`{`deftype?*#8`} []})] +[visit_exp `MEM`_externtype{memtype#858}(mt)] +[visit_exp memtype#858] +[visit_id memtype#858] +[visit_exp (mt)] +[visit_exp mt] +[visit_id mt] +[visit_exp {`TYPES`{`name?*#491`} [], `TAGS`{`name?*#492`} [], `GLOBALS`{`name?*#493`} [], `MEMS`{`name?*#494`} [?(`%`_name{`char*#1059`}(lift(id?{id <- `id?`})))], `TABLES`{`name?*#495`} [], `FUNCS`{`name?*#496`} [], `DATAS`{`name?*#497`} [], `ELEMS`{`name?*#498`} [], `LOCALS`{`name?*#499`} [], `LABELS`{`name?*#500`} [], `FIELDS`{`name?**#21`} [], `TYPEDEFS`{`deftype?*#8`} []}] +[visit_exp `name?*#491`] +[visit_id name?*#491] +[visit_exp []] +[visit_exp `name?*#492`] +[visit_id name?*#492] +[visit_exp []] +[visit_exp `name?*#493`] +[visit_id name?*#493] +[visit_exp []] +[visit_exp `name?*#494`] +[visit_id name?*#494] +[visit_exp [?(`%`_name{`char*#1059`}(lift(id?{id <- `id?`})))]] +[visit_exp ?(`%`_name{`char*#1059`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1059`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1059`] +[visit_id char*#1059] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp `name?*#495`] +[visit_id name?*#495] +[visit_exp []] +[visit_exp `name?*#496`] +[visit_id name?*#496] +[visit_exp []] +[visit_exp `name?*#497`] +[visit_id name?*#497] +[visit_exp []] +[visit_exp `name?*#498`] +[visit_id name?*#498] +[visit_exp []] +[visit_exp `name?*#499`] +[visit_id name?*#499] +[visit_exp []] +[visit_exp `name?*#500`] +[visit_id name?*#500] +[visit_exp []] +[visit_exp `name?**#21`] +[visit_id name?**#21] +[visit_exp []] +[visit_exp `deftype?*#8`] +[visit_id deftype?*#8] +[visit_exp []] +[visit_exp ?(`%`_name{`char*#1053`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1053`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1053`] +[visit_id char*#1053] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp mt] +[visit_id mt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I char*#1065 char*#1071 deftype?*#9 id name?*#501 name?*#502 name?*#503 name?*#504 name?*#505 name?*#506 name?*#507 name?*#508 name?*#509 name?*#510 name?**#22 tabletype#1280 tt +dims \ I = char*#1065, char*#1071, deftype?*#9, id, name?*#501, name?*#502, name?*#503, name?*#504, name?*#505, name?*#506, name?*#507, name?*#508, name?*#509, name?*#510, name?**#22, tabletype#1280, tt +[visit_exp (`TABLE`_externtype{tabletype#1280}(tt), {`TYPES`{`name?*#501`} [], `TAGS`{`name?*#502`} [], `GLOBALS`{`name?*#503`} [], `MEMS`{`name?*#504`} [], `TABLES`{`name?*#505`} [?(`%`_name{`char*#1071`}(lift(id?{id <- `id?`})))], `FUNCS`{`name?*#506`} [], `DATAS`{`name?*#507`} [], `ELEMS`{`name?*#508`} [], `LOCALS`{`name?*#509`} [], `LABELS`{`name?*#510`} [], `FIELDS`{`name?**#22`} [], `TYPEDEFS`{`deftype?*#9`} []})] +[visit_exp `TABLE`_externtype{tabletype#1280}(tt)] +[visit_exp tabletype#1280] +[visit_id tabletype#1280] +[visit_exp (tt)] +[visit_exp tt] +[visit_id tt] +[visit_exp {`TYPES`{`name?*#501`} [], `TAGS`{`name?*#502`} [], `GLOBALS`{`name?*#503`} [], `MEMS`{`name?*#504`} [], `TABLES`{`name?*#505`} [?(`%`_name{`char*#1071`}(lift(id?{id <- `id?`})))], `FUNCS`{`name?*#506`} [], `DATAS`{`name?*#507`} [], `ELEMS`{`name?*#508`} [], `LOCALS`{`name?*#509`} [], `LABELS`{`name?*#510`} [], `FIELDS`{`name?**#22`} [], `TYPEDEFS`{`deftype?*#9`} []}] +[visit_exp `name?*#501`] +[visit_id name?*#501] +[visit_exp []] +[visit_exp `name?*#502`] +[visit_id name?*#502] +[visit_exp []] +[visit_exp `name?*#503`] +[visit_id name?*#503] +[visit_exp []] +[visit_exp `name?*#504`] +[visit_id name?*#504] +[visit_exp []] +[visit_exp `name?*#505`] +[visit_id name?*#505] +[visit_exp [?(`%`_name{`char*#1071`}(lift(id?{id <- `id?`})))]] +[visit_exp ?(`%`_name{`char*#1071`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1071`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1071`] +[visit_id char*#1071] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp `name?*#506`] +[visit_id name?*#506] +[visit_exp []] +[visit_exp `name?*#507`] +[visit_id name?*#507] +[visit_exp []] +[visit_exp `name?*#508`] +[visit_id name?*#508] +[visit_exp []] +[visit_exp `name?*#509`] +[visit_id name?*#509] +[visit_exp []] +[visit_exp `name?*#510`] +[visit_id name?*#510] +[visit_exp []] +[visit_exp `name?**#22`] +[visit_id name?**#22] +[visit_exp []] +[visit_exp `deftype?*#9`] +[visit_id deftype?*#9] +[visit_exp []] +[visit_exp ?(`%`_name{`char*#1065`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1065`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1065`] +[visit_id char*#1065] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp tt] +[visit_id tt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I I' char*#1077 char*#1083 deftype?*#10 id name?*#511 name?*#512 name?*#513 name?*#514 name?*#515 name?*#516 name?*#517 name?*#518 name?*#519 name?*#520 name?**#23 typeidx#2125 typeuse#77 x +dims \ I = I', char*#1077, char*#1083, deftype?*#10, id, name?*#511, name?*#512, name?*#513, name?*#514, name?*#515, name?*#516, name?*#517, name?*#518, name?*#519, name?*#520, name?**#23, typeidx#2125, typeuse#77, x +[visit_exp (`FUNC`_externtype{typeuse#77}(`_IDX`_typeuse{typeidx#2125}(x)), {`TYPES`{`name?*#511`} [], `TAGS`{`name?*#512`} [], `GLOBALS`{`name?*#513`} [], `MEMS`{`name?*#514`} [], `TABLES`{`name?*#515`} [], `FUNCS`{`name?*#516`} [?(`%`_name{`char*#1083`}(lift(id?{id <- `id?`})))], `DATAS`{`name?*#517`} [], `ELEMS`{`name?*#518`} [], `LOCALS`{`name?*#519`} [], `LABELS`{`name?*#520`} [], `FIELDS`{`name?**#23`} [], `TYPEDEFS`{`deftype?*#10`} []})] +[visit_exp `FUNC`_externtype{typeuse#77}(`_IDX`_typeuse{typeidx#2125}(x))] +[visit_exp typeuse#77] +[visit_id typeuse#77] +[visit_exp (`_IDX`_typeuse{typeidx#2125}(x))] +[visit_exp `_IDX`_typeuse{typeidx#2125}(x)] +[visit_exp typeidx#2125] +[visit_id typeidx#2125] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp {`TYPES`{`name?*#511`} [], `TAGS`{`name?*#512`} [], `GLOBALS`{`name?*#513`} [], `MEMS`{`name?*#514`} [], `TABLES`{`name?*#515`} [], `FUNCS`{`name?*#516`} [?(`%`_name{`char*#1083`}(lift(id?{id <- `id?`})))], `DATAS`{`name?*#517`} [], `ELEMS`{`name?*#518`} [], `LOCALS`{`name?*#519`} [], `LABELS`{`name?*#520`} [], `FIELDS`{`name?**#23`} [], `TYPEDEFS`{`deftype?*#10`} []}] +[visit_exp `name?*#511`] +[visit_id name?*#511] +[visit_exp []] +[visit_exp `name?*#512`] +[visit_id name?*#512] +[visit_exp []] +[visit_exp `name?*#513`] +[visit_id name?*#513] +[visit_exp []] +[visit_exp `name?*#514`] +[visit_id name?*#514] +[visit_exp []] +[visit_exp `name?*#515`] +[visit_id name?*#515] +[visit_exp []] +[visit_exp `name?*#516`] +[visit_id name?*#516] +[visit_exp [?(`%`_name{`char*#1083`}(lift(id?{id <- `id?`})))]] +[visit_exp ?(`%`_name{`char*#1083`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1083`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1083`] +[visit_id char*#1083] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp `name?*#517`] +[visit_id name?*#517] +[visit_exp []] +[visit_exp `name?*#518`] +[visit_id name?*#518] +[visit_exp []] +[visit_exp `name?*#519`] +[visit_id name?*#519] +[visit_exp []] +[visit_exp `name?*#520`] +[visit_id name?*#520] +[visit_exp []] +[visit_exp `name?**#23`] +[visit_id name?**#23] +[visit_exp []] +[visit_exp `deftype?*#10`] +[visit_id deftype?*#10] +[visit_exp []] +[visit_exp ?(`%`_name{`char*#1077`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1077`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1077`] +[visit_id char*#1077] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp (x, I')] +[visit_exp x] +[visit_id x] not free +[visit_exp I'] +[visit_id I'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = (I : I) +[check_dims] I _ +[check_dims] I I' X*#13419 X*#13434 X*#13447 char*#1113 comptype#577 deftype?*#11 deftype?*#12 final?#577 i i#95899 n#1503 name?*#521 name?*#522 name?*#523 name?*#524 name?*#525 name?*#526 name?*#527 name?*#528 name?*#529 name?*#530 name?**#24 rectype#1807 resulttype#3035 st t_1 t_2 typeuse*#577 x +dims \ I = I', X*#13419, X*#13434, X*#13447, char*#1113, comptype#577, deftype?*#11, deftype?*#12, final?#577, i, i#95899, n#1503, name?*#521, name?*#522, name?*#523, name?*#524, name?*#525, name?*#526, name?*#527, name?*#528, name?*#529, name?*#530, name?**#24, rectype#1807, resulttype#3035, st, t_1, t_2, typeuse*#577, x +[visit_exp (x, I')] +[visit_exp x] +[visit_id x] +[visit_exp I'] +[visit_id I'] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp (I.`TYPEDEFS`_I{`deftype?*#11`}[x!`%`_idx{i#95899}.0] = ?(`_DEF`_deftype{rectype#1807, n#1503}(`REC`_rectype(`%`_list{`X*#13419`}(st*{st <- `st*`})), i)))] +[visit_exp I.`TYPEDEFS`_I{`deftype?*#11`}[x!`%`_idx{i#95899}.0]] +[visit_exp I.`TYPEDEFS`_I{`deftype?*#11`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `deftype?*#11`] +[visit_id deftype?*#11] +[visit_exp x!`%`_idx{i#95899}.0] +[visit_exp x!`%`_idx{i#95899}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#95899] +[visit_id i#95899] +[visit_exp ?(`_DEF`_deftype{rectype#1807, n#1503}(`REC`_rectype(`%`_list{`X*#13419`}(st*{st <- `st*`})), i))] +[visit_exp `_DEF`_deftype{rectype#1807, n#1503}(`REC`_rectype(`%`_list{`X*#13419`}(st*{st <- `st*`})), i)] +[visit_exp rectype#1807] +[visit_id rectype#1807] +[visit_exp n#1503] +[visit_id n#1503] +[visit_exp (`REC`_rectype(`%`_list{`X*#13419`}(st*{st <- `st*`})), i)] +[visit_exp `REC`_rectype(`%`_list{`X*#13419`}(st*{st <- `st*`}))] +[visit_exp (`%`_list{`X*#13419`}(st*{st <- `st*`}))] +[visit_exp `%`_list{`X*#13419`}(st*{st <- `st*`})] +[visit_exp `X*#13419`] +[visit_id X*#13419] +[visit_exp (st*{st <- `st*`})] +[visit_exp st*{st <- `st*`}] +[scope_enter st] +[visit_exp st] +[visit_id st] not free +[visit_id st] not free +[scope_exit st] +[visit_exp `st*`] +[visit_id st*] no dims +[visit_id st*] +[visit_exp i] +[visit_id i] +[visit_exp (st*{st <- `st*`}[i] = `SUB`_subtype{`final?#577`, `typeuse*#577`, comptype#577}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3035}(`%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`}))))] +[visit_exp st*{st <- `st*`}[i]] +[visit_exp st*{st <- `st*`}] +[scope_enter st] +[visit_exp st] +[visit_id st] not free +[visit_id st] not free +[scope_exit st] +[visit_exp `st*`] +[visit_id st*] not free +[visit_id st*] no dims +[visit_exp i] +[visit_id i] not free +[visit_exp `SUB`_subtype{`final?#577`, `typeuse*#577`, comptype#577}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3035}(`%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp `final?#577`] +[visit_id final?#577] +[visit_exp `typeuse*#577`] +[visit_id typeuse*#577] +[visit_exp comptype#577] +[visit_id comptype#577] +[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3035}(`%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp ?(`FINAL`_final)] +[visit_exp `FINAL`_final] +[visit_exp ()] +[visit_exp []] +[visit_exp `FUNC%->%`_comptype{resulttype#3035}(`%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#3035] +[visit_id resulttype#3035] +[visit_exp (`%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#13434`] +[visit_id X*#13434] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#13447`] +[visit_id X*#13447] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (I' = {`TYPES`{`name?*#521`} [], `TAGS`{`name?*#522`} [], `GLOBALS`{`name?*#523`} [], `MEMS`{`name?*#524`} [], `TABLES`{`name?*#525`} [], `FUNCS`{`name?*#526`} [], `DATAS`{`name?*#527`} [], `ELEMS`{`name?*#528`} [], `LOCALS`{`name?*#529`} ?(`%`_name{`char*#1113`}([]))^|t_1*{t_1 <- `t_1*`}|{`char*#1113` <- `char*#1113*`}, `LABELS`{`name?*#530`} [], `FIELDS`{`name?**#24`} [], `TYPEDEFS`{`deftype?*#12`} []})] +[visit_exp I'] +[visit_id I'] not free +[visit_exp {`TYPES`{`name?*#521`} [], `TAGS`{`name?*#522`} [], `GLOBALS`{`name?*#523`} [], `MEMS`{`name?*#524`} [], `TABLES`{`name?*#525`} [], `FUNCS`{`name?*#526`} [], `DATAS`{`name?*#527`} [], `ELEMS`{`name?*#528`} [], `LOCALS`{`name?*#529`} ?(`%`_name{`char*#1113`}([]))^|t_1*{t_1 <- `t_1*`}|{`char*#1113` <- `char*#1113*`}, `LABELS`{`name?*#530`} [], `FIELDS`{`name?**#24`} [], `TYPEDEFS`{`deftype?*#12`} []}] +[visit_exp `name?*#521`] +[visit_id name?*#521] +[visit_exp []] +[visit_exp `name?*#522`] +[visit_id name?*#522] +[visit_exp []] +[visit_exp `name?*#523`] +[visit_id name?*#523] +[visit_exp []] +[visit_exp `name?*#524`] +[visit_id name?*#524] +[visit_exp []] +[visit_exp `name?*#525`] +[visit_id name?*#525] +[visit_exp []] +[visit_exp `name?*#526`] +[visit_id name?*#526] +[visit_exp []] +[visit_exp `name?*#527`] +[visit_id name?*#527] +[visit_exp []] +[visit_exp `name?*#528`] +[visit_id name?*#528] +[visit_exp []] +[visit_exp `name?*#529`] +[visit_id name?*#529] +[visit_exp ?(`%`_name{`char*#1113`}([]))^|t_1*{t_1 <- `t_1*`}|{`char*#1113` <- `char*#1113*`}] +[scope_enter char*#1113] +[visit_exp ?(`%`_name{`char*#1113`}([]))] +[visit_exp `%`_name{`char*#1113`}([])] +[visit_exp `char*#1113`] +[visit_id char*#1113] not free +[visit_exp ([])] +[visit_exp []] +[visit_id char*#1113] not free +[scope_exit char*#1113] +[visit_exp |t_1*{t_1 <- `t_1*`}|] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `char*#1113*`] +[visit_id char*#1113*] no dims +[visit_id char*#1113*] +[visit_exp `name?*#530`] +[visit_id name?*#530] +[visit_exp []] +[visit_exp `name?**#24`] +[visit_id name?**#24] +[visit_exp []] +[visit_exp `deftype?*#12`] +[visit_id deftype?*#12] +[visit_exp []] +[check_dims] I I' X*#13462 X*#13477 X*#13490 char*#1119 char*#1137 comptype#601 deftype?*#13 deftype?*#14 final?#601 i i#95968 id n#1515 name?*#531 name?*#532 name?*#533 name?*#534 name?*#535 name?*#536 name?*#537 name?*#538 name?*#539 name?*#540 name?**#25 rectype#1819 resulttype#3038 st t_1 t_2 typeuse*#601 x +dims \ I = I', X*#13462, X*#13477, X*#13490, char*#1119, char*#1137, comptype#601, deftype?*#13, deftype?*#14, final?#601, i, i#95968, id, n#1515, name?*#531, name?*#532, name?*#533, name?*#534, name?*#535, name?*#536, name?*#537, name?*#538, name?*#539, name?*#540, name?**#25, rectype#1819, resulttype#3038, st, t_1, t_2, typeuse*#601, x +[visit_exp (x, I')] +[visit_exp x] +[visit_id x] +[visit_exp I'] +[visit_id I'] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp (t_1, ?(`%`_name{`char*#1119`}(lift(id?{id <- `id?`}))))*{`char*#1119` <- `char*#1119*`, `id?` <- `id?*`, t_1 <- `t_1*`}] +[scope_enter char*#1119] +[scope_enter id?] +[scope_enter t_1] +[visit_exp (t_1, ?(`%`_name{`char*#1119`}(lift(id?{id <- `id?`}))))] +[visit_exp t_1] +[visit_id t_1] not free +[visit_exp ?(`%`_name{`char*#1119`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1119`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1119`] +[visit_id char*#1119] not free +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_id char*#1119] not free +[visit_id id?] not free +[visit_id id?] no dims +[visit_id t_1] not free +[scope_exit t_1] +[scope_exit id?] +[scope_exit char*#1119] +[visit_exp `char*#1119*`] +[visit_id char*#1119*] no dims +[visit_id char*#1119*] +[visit_exp `id?*`] +[visit_id id?*] no dims +[visit_id id?*] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp (I.`TYPEDEFS`_I{`deftype?*#13`}[x!`%`_idx{i#95968}.0] = ?(`_DEF`_deftype{rectype#1819, n#1515}(`REC`_rectype(`%`_list{`X*#13462`}(st*{st <- `st*`})), i)))] +[visit_exp I.`TYPEDEFS`_I{`deftype?*#13`}[x!`%`_idx{i#95968}.0]] +[visit_exp I.`TYPEDEFS`_I{`deftype?*#13`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `deftype?*#13`] +[visit_id deftype?*#13] +[visit_exp x!`%`_idx{i#95968}.0] +[visit_exp x!`%`_idx{i#95968}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#95968] +[visit_id i#95968] +[visit_exp ?(`_DEF`_deftype{rectype#1819, n#1515}(`REC`_rectype(`%`_list{`X*#13462`}(st*{st <- `st*`})), i))] +[visit_exp `_DEF`_deftype{rectype#1819, n#1515}(`REC`_rectype(`%`_list{`X*#13462`}(st*{st <- `st*`})), i)] +[visit_exp rectype#1819] +[visit_id rectype#1819] +[visit_exp n#1515] +[visit_id n#1515] +[visit_exp (`REC`_rectype(`%`_list{`X*#13462`}(st*{st <- `st*`})), i)] +[visit_exp `REC`_rectype(`%`_list{`X*#13462`}(st*{st <- `st*`}))] +[visit_exp (`%`_list{`X*#13462`}(st*{st <- `st*`}))] +[visit_exp `%`_list{`X*#13462`}(st*{st <- `st*`})] +[visit_exp `X*#13462`] +[visit_id X*#13462] +[visit_exp (st*{st <- `st*`})] +[visit_exp st*{st <- `st*`}] +[scope_enter st] +[visit_exp st] +[visit_id st] not free +[visit_id st] not free +[scope_exit st] +[visit_exp `st*`] +[visit_id st*] no dims +[visit_id st*] +[visit_exp i] +[visit_id i] +[visit_exp (st*{st <- `st*`}[i] = `SUB`_subtype{`final?#601`, `typeuse*#601`, comptype#601}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3038}(`%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`}))))] +[visit_exp st*{st <- `st*`}[i]] +[visit_exp st*{st <- `st*`}] +[scope_enter st] +[visit_exp st] +[visit_id st] not free +[visit_id st] not free +[scope_exit st] +[visit_exp `st*`] +[visit_id st*] not free +[visit_id st*] no dims +[visit_exp i] +[visit_id i] not free +[visit_exp `SUB`_subtype{`final?#601`, `typeuse*#601`, comptype#601}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3038}(`%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp `final?#601`] +[visit_id final?#601] +[visit_exp `typeuse*#601`] +[visit_id typeuse*#601] +[visit_exp comptype#601] +[visit_id comptype#601] +[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3038}(`%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp ?(`FINAL`_final)] +[visit_exp `FINAL`_final] +[visit_exp ()] +[visit_exp []] +[visit_exp `FUNC%->%`_comptype{resulttype#3038}(`%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#3038] +[visit_id resulttype#3038] +[visit_exp (`%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#13477`] +[visit_id X*#13477] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#13490`] +[visit_id X*#13490] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp (I' = {`TYPES`{`name?*#531`} [], `TAGS`{`name?*#532`} [], `GLOBALS`{`name?*#533`} [], `MEMS`{`name?*#534`} [], `TABLES`{`name?*#535`} [], `FUNCS`{`name?*#536`} [], `DATAS`{`name?*#537`} [], `ELEMS`{`name?*#538`} [], `LOCALS`{`name?*#539`} ?(`%`_name{`char*#1137`}(lift(id?{id <- `id?`})))*{`char*#1137` <- `char*#1137*`, `id?` <- `id?*`}, `LABELS`{`name?*#540`} [], `FIELDS`{`name?**#25`} [], `TYPEDEFS`{`deftype?*#14`} []})] +[visit_exp I'] +[visit_id I'] not free +[visit_exp {`TYPES`{`name?*#531`} [], `TAGS`{`name?*#532`} [], `GLOBALS`{`name?*#533`} [], `MEMS`{`name?*#534`} [], `TABLES`{`name?*#535`} [], `FUNCS`{`name?*#536`} [], `DATAS`{`name?*#537`} [], `ELEMS`{`name?*#538`} [], `LOCALS`{`name?*#539`} ?(`%`_name{`char*#1137`}(lift(id?{id <- `id?`})))*{`char*#1137` <- `char*#1137*`, `id?` <- `id?*`}, `LABELS`{`name?*#540`} [], `FIELDS`{`name?**#25`} [], `TYPEDEFS`{`deftype?*#14`} []}] +[visit_exp `name?*#531`] +[visit_id name?*#531] +[visit_exp []] +[visit_exp `name?*#532`] +[visit_id name?*#532] +[visit_exp []] +[visit_exp `name?*#533`] +[visit_id name?*#533] +[visit_exp []] +[visit_exp `name?*#534`] +[visit_id name?*#534] +[visit_exp []] +[visit_exp `name?*#535`] +[visit_id name?*#535] +[visit_exp []] +[visit_exp `name?*#536`] +[visit_id name?*#536] +[visit_exp []] +[visit_exp `name?*#537`] +[visit_id name?*#537] +[visit_exp []] +[visit_exp `name?*#538`] +[visit_id name?*#538] +[visit_exp []] +[visit_exp `name?*#539`] +[visit_id name?*#539] +[visit_exp ?(`%`_name{`char*#1137`}(lift(id?{id <- `id?`})))*{`char*#1137` <- `char*#1137*`, `id?` <- `id?*`}] +[scope_enter char*#1137] +[scope_enter id?] +[visit_exp ?(`%`_name{`char*#1137`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1137`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1137`] +[visit_id char*#1137] not free +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_id char*#1137] not free +[visit_id id?] not free +[visit_id id?] no dims +[scope_exit id?] +[scope_exit char*#1137] +[visit_exp `char*#1137*`] +[visit_id char*#1137*] no dims +[visit_id char*#1137*] +[visit_exp `id?*`] +[visit_id id?*] not free +[visit_id id?*] no dims +[visit_exp `name?*#540`] +[visit_id name?*#540] +[visit_exp []] +[visit_exp `name?**#25`] +[visit_id name?**#25] +[visit_exp []] +[visit_exp `deftype?*#14`] +[visit_id deftype?*#14] +[visit_exp []] +[visit_exp I'] +[visit_id I'] not free +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = (I : I) +[check_dims] I _ +[check_dims] I X*#13515 X*#13528 X*#13541 X*#13566 X*#13579 X*#13592 char*#1143 comptype#613 comptype#625 deftype?*#15 deftype?*#16 final?#613 final?#625 i i#96043 i#96053 id n#1527 n#1539 rectype#1831 rectype#1843 resulttype#3041 resulttype#3044 t_1 t_2 typeuse*#613 typeuse*#625 x +[visit_exp (t_1, ?(`%`_name{`char*#1143`}(lift(id?{id <- `id?`}))))*{`char*#1143` <- `char*#1143*`, `id?` <- `id?*`, t_1 <- `t_1*`}] +[scope_enter char*#1143] +[scope_enter id?] +[scope_enter t_1] +[visit_exp (t_1, ?(`%`_name{`char*#1143`}(lift(id?{id <- `id?`}))))] +[visit_exp t_1] +[visit_id t_1] not free +[visit_exp ?(`%`_name{`char*#1143`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1143`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1143`] +[visit_id char*#1143] not free +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_id char*#1143] not free +[visit_id id?] not free +[visit_id id?] no dims +[visit_id t_1] not free +[scope_exit t_1] +[scope_exit id?] +[scope_exit char*#1143] +[visit_exp `char*#1143*`] +[visit_id char*#1143*] no dims +[visit_id char*#1143*] +[visit_exp `id?*`] +[visit_id id?*] no dims +[visit_id id?*] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp x] +[visit_id x] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp (I.`TYPEDEFS`_I{`deftype?*#15`}[x!`%`_idx{i#96043}.0] = ?(`_DEF`_deftype{rectype#1831, n#1527}(`REC`_rectype(`%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))])), 0)))] +[visit_exp I.`TYPEDEFS`_I{`deftype?*#15`}[x!`%`_idx{i#96043}.0]] +[visit_exp I.`TYPEDEFS`_I{`deftype?*#15`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `deftype?*#15`] +[visit_id deftype?*#15] +[visit_exp x!`%`_idx{i#96043}.0] +[visit_exp x!`%`_idx{i#96043}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#96043] +[visit_id i#96043] +[visit_exp ?(`_DEF`_deftype{rectype#1831, n#1527}(`REC`_rectype(`%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))])), 0))] +[visit_exp `_DEF`_deftype{rectype#1831, n#1527}(`REC`_rectype(`%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))])), 0)] +[visit_exp rectype#1831] +[visit_id rectype#1831] +[visit_exp n#1527] +[visit_id n#1527] +[visit_exp (`REC`_rectype(`%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))])), 0)] +[visit_exp `REC`_rectype(`%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))]))] +[visit_exp (`%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))]))] +[visit_exp `%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))])] +[visit_exp `X*#13515`] +[visit_id X*#13515] +[visit_exp ([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))])] +[visit_exp [`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))]] +[visit_exp `SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp `final?#613`] +[visit_id final?#613] +[visit_exp `typeuse*#613`] +[visit_id typeuse*#613] +[visit_exp comptype#613] +[visit_id comptype#613] +[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp ?(`FINAL`_final)] +[visit_exp `FINAL`_final] +[visit_exp ()] +[visit_exp []] +[visit_exp `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#3041] +[visit_id resulttype#3041] +[visit_exp (`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#13528`] +[visit_id X*#13528] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#13541`] +[visit_id X*#13541] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp 0] +[scope_enter i] +[scope_enter X*#13566] +[scope_enter X*#13579] +[scope_enter X*#13592] +[scope_enter comptype#625] +[scope_enter deftype?*#16] +[scope_enter final?#625] +[scope_enter n#1539] +[scope_enter rectype#1843] +[scope_enter resulttype#3044] +[scope_enter typeuse*#625] +[visit_exp (I.`TYPEDEFS`_I{`deftype?*#16`}[i] =/= ?(`_DEF`_deftype{rectype#1843, n#1539}(`REC`_rectype(`%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))])), 0)))] +[visit_exp I.`TYPEDEFS`_I{`deftype?*#16`}[i]] +[visit_exp I.`TYPEDEFS`_I{`deftype?*#16`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `deftype?*#16`] +[visit_id deftype?*#16] not free +[visit_exp i] +[visit_id i] +[visit_exp ?(`_DEF`_deftype{rectype#1843, n#1539}(`REC`_rectype(`%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))])), 0))] +[visit_exp `_DEF`_deftype{rectype#1843, n#1539}(`REC`_rectype(`%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))])), 0)] +[visit_exp rectype#1843] +[visit_id rectype#1843] not free +[visit_exp n#1539] +[visit_id n#1539] not free +[visit_exp (`REC`_rectype(`%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))])), 0)] +[visit_exp `REC`_rectype(`%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))]))] +[visit_exp (`%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))]))] +[visit_exp `%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))])] +[visit_exp `X*#13566`] +[visit_id X*#13566] not free +[visit_exp ([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))])] +[visit_exp [`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))]] +[visit_exp `SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp `final?#625`] +[visit_id final?#625] not free +[visit_exp `typeuse*#625`] +[visit_id typeuse*#625] not free +[visit_exp comptype#625] +[visit_id comptype#625] not free +[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp ?(`FINAL`_final)] +[visit_exp `FINAL`_final] +[visit_exp ()] +[visit_exp []] +[visit_exp `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#3044] +[visit_id resulttype#3044] not free +[visit_exp (`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#13579`] +[visit_id X*#13579] not free +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#13592`] +[visit_id X*#13592] not free +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp 0] +[visit_id i] not free +[visit_id X*#13566] not free +[visit_id X*#13579] not free +[visit_id X*#13592] not free +[visit_id comptype#625] not free +[visit_id deftype?*#16] not free +[visit_id final?#625] not free +[visit_id n#1539] not free +[visit_id rectype#1843] not free +[visit_id resulttype#3044] not free +[visit_id typeuse*#625] not free +[scope_exit typeuse*#625] +[scope_exit resulttype#3044] +[scope_exit rectype#1843] +[scope_exit n#1539] +[scope_exit final?#625] +[scope_exit deftype?*#16] +[scope_exit comptype#625] +[scope_exit X*#13592] +[scope_exit X*#13579] +[scope_exit X*#13566] +[scope_exit i] +[visit_exp x!`%`_idx{i#96053}.0] +[visit_exp x!`%`_idx{i#96053}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#96053] +[visit_id i#96053] +[visit_exp `X*#13566*`] +[visit_id X*#13566*] no dims +[visit_id X*#13566*] +[visit_exp `X*#13579*`] +[visit_id X*#13579*] no dims +[visit_id X*#13579*] +[visit_exp `X*#13592*`] +[visit_id X*#13592*] no dims +[visit_id X*#13592*] +[visit_exp `comptype#625*`] +[visit_id comptype#625*] no dims +[visit_id comptype#625*] +[visit_exp `deftype?*#16*`] +[visit_id deftype?*#16*] no dims +[visit_id deftype?*#16*] +[visit_exp `final?#625*`] +[visit_id final?#625*] no dims +[visit_id final?#625*] +[visit_exp `n#1539*`] +[visit_id n#1539*] no dims +[visit_id n#1539*] +[visit_exp `rectype#1843*`] +[visit_id rectype#1843*] no dims +[visit_id rectype#1843*] +[visit_exp `resulttype#3044*`] +[visit_id resulttype#3044*] no dims +[visit_id resulttype#3044*] +[visit_exp `typeuse*#625*`] +[visit_id typeuse*#625*] no dims +[visit_id typeuse*#625*] +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = (I : I) +[check_dims] I _ +[check_dims] I deftype?*#17 name?*#541 name?*#542 name?*#543 name?*#544 name?*#545 name?*#546 name?*#547 name?*#548 name?*#549 name?*#550 name?**#26 +dims \ I = deftype?*#17, name?*#541, name?*#542, name?*#543, name?*#544, name?*#545, name?*#546, name?*#547, name?*#548, name?*#549, name?*#550, name?**#26 +[visit_exp (?(), {`TYPES`{`name?*#541`} [], `TAGS`{`name?*#542`} [], `GLOBALS`{`name?*#543`} [], `MEMS`{`name?*#544`} [], `TABLES`{`name?*#545`} [], `FUNCS`{`name?*#546`} [], `DATAS`{`name?*#547`} [], `ELEMS`{`name?*#548`} [], `LOCALS`{`name?*#549`} [], `LABELS`{`name?*#550`} [], `FIELDS`{`name?**#26`} [], `TYPEDEFS`{`deftype?*#17`} []} +++ I)] +[visit_exp ?()] +[visit_exp {`TYPES`{`name?*#541`} [], `TAGS`{`name?*#542`} [], `GLOBALS`{`name?*#543`} [], `MEMS`{`name?*#544`} [], `TABLES`{`name?*#545`} [], `FUNCS`{`name?*#546`} [], `DATAS`{`name?*#547`} [], `ELEMS`{`name?*#548`} [], `LOCALS`{`name?*#549`} [], `LABELS`{`name?*#550`} [], `FIELDS`{`name?**#26`} [], `TYPEDEFS`{`deftype?*#17`} []} +++ I] +[visit_exp {`TYPES`{`name?*#541`} [], `TAGS`{`name?*#542`} [], `GLOBALS`{`name?*#543`} [], `MEMS`{`name?*#544`} [], `TABLES`{`name?*#545`} [], `FUNCS`{`name?*#546`} [], `DATAS`{`name?*#547`} [], `ELEMS`{`name?*#548`} [], `LOCALS`{`name?*#549`} [], `LABELS`{`name?*#550`} [], `FIELDS`{`name?**#26`} [], `TYPEDEFS`{`deftype?*#17`} []}] +[visit_exp `name?*#541`] +[visit_id name?*#541] +[visit_exp []] +[visit_exp `name?*#542`] +[visit_id name?*#542] +[visit_exp []] +[visit_exp `name?*#543`] +[visit_id name?*#543] +[visit_exp []] +[visit_exp `name?*#544`] +[visit_id name?*#544] +[visit_exp []] +[visit_exp `name?*#545`] +[visit_id name?*#545] +[visit_exp []] +[visit_exp `name?*#546`] +[visit_id name?*#546] +[visit_exp []] +[visit_exp `name?*#547`] +[visit_id name?*#547] +[visit_exp []] +[visit_exp `name?*#548`] +[visit_id name?*#548] +[visit_exp []] +[visit_exp `name?*#549`] +[visit_id name?*#549] +[visit_exp []] +[visit_exp `name?*#550`] +[visit_id name?*#550] +[visit_exp []] +[visit_exp `name?**#26`] +[visit_id name?**#26] +[visit_exp []] +[visit_exp `deftype?*#17`] +[visit_id deftype?*#17] +[visit_exp []] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I deftype?*#18 id name?*#551 name?*#552 name?*#553 name?*#554 name?*#555 name?*#556 name?*#557 name?*#558 name?*#559 name?*#560 name?*#566 name?**#27 +dims \ I = deftype?*#18, id, name?*#551, name?*#552, name?*#553, name?*#554, name?*#555, name?*#556, name?*#557, name?*#558, name?*#559, name?*#560, name?*#566, name?**#27 +[visit_exp (?(id), {`TYPES`{`name?*#551`} [], `TAGS`{`name?*#552`} [], `GLOBALS`{`name?*#553`} [], `MEMS`{`name?*#554`} [], `TABLES`{`name?*#555`} [], `FUNCS`{`name?*#556`} [], `DATAS`{`name?*#557`} [], `ELEMS`{`name?*#558`} [], `LOCALS`{`name?*#559`} [], `LABELS`{`name?*#560`} [?(id)], `FIELDS`{`name?**#27`} [], `TYPEDEFS`{`deftype?*#18`} []} +++ I)] +[visit_exp ?(id)] +[visit_exp id] +[visit_id id] +[visit_exp {`TYPES`{`name?*#551`} [], `TAGS`{`name?*#552`} [], `GLOBALS`{`name?*#553`} [], `MEMS`{`name?*#554`} [], `TABLES`{`name?*#555`} [], `FUNCS`{`name?*#556`} [], `DATAS`{`name?*#557`} [], `ELEMS`{`name?*#558`} [], `LOCALS`{`name?*#559`} [], `LABELS`{`name?*#560`} [?(id)], `FIELDS`{`name?**#27`} [], `TYPEDEFS`{`deftype?*#18`} []} +++ I] +[visit_exp {`TYPES`{`name?*#551`} [], `TAGS`{`name?*#552`} [], `GLOBALS`{`name?*#553`} [], `MEMS`{`name?*#554`} [], `TABLES`{`name?*#555`} [], `FUNCS`{`name?*#556`} [], `DATAS`{`name?*#557`} [], `ELEMS`{`name?*#558`} [], `LOCALS`{`name?*#559`} [], `LABELS`{`name?*#560`} [?(id)], `FIELDS`{`name?**#27`} [], `TYPEDEFS`{`deftype?*#18`} []}] +[visit_exp `name?*#551`] +[visit_id name?*#551] +[visit_exp []] +[visit_exp `name?*#552`] +[visit_id name?*#552] +[visit_exp []] +[visit_exp `name?*#553`] +[visit_id name?*#553] +[visit_exp []] +[visit_exp `name?*#554`] +[visit_id name?*#554] +[visit_exp []] +[visit_exp `name?*#555`] +[visit_id name?*#555] +[visit_exp []] +[visit_exp `name?*#556`] +[visit_id name?*#556] +[visit_exp []] +[visit_exp `name?*#557`] +[visit_id name?*#557] +[visit_exp []] +[visit_exp `name?*#558`] +[visit_id name?*#558] +[visit_exp []] +[visit_exp `name?*#559`] +[visit_id name?*#559] +[visit_exp []] +[visit_exp `name?*#560`] +[visit_id name?*#560] +[visit_exp [?(id)]] +[visit_exp ?(id)] +[visit_exp id] +[visit_id id] not free +[visit_exp `name?**#27`] +[visit_id name?**#27] +[visit_exp []] +[visit_exp `deftype?*#18`] +[visit_id deftype?*#18] +[visit_exp []] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp id] +[visit_id id] not free +[visit_exp ~ (?(id) <- I.`LABELS`_I{`name?*#566`})] +[visit_exp (?(id) <- I.`LABELS`_I{`name?*#566`})] +[visit_exp ?(id)] +[visit_exp id] +[visit_id id] not free +[visit_exp I.`LABELS`_I{`name?*#566`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#566`] +[visit_id name?*#566] +[check_dims] I deftype?*#19 i#96077 i#96087 id name?*#567 name?*#568 name?*#569 name?*#570 name?*#571 name?*#572 name?*#573 name?*#574 name?*#575 name?*#576 name?*#577 name?*#578 name?**#28 x +dims \ I = deftype?*#19, i#96077, i#96087, id, name?*#567, name?*#568, name?*#569, name?*#570, name?*#571, name?*#572, name?*#573, name?*#574, name?*#575, name?*#576, name?*#577, name?*#578, name?**#28, x +[visit_exp (?(id), {`TYPES`{`name?*#567`} [], `TAGS`{`name?*#568`} [], `GLOBALS`{`name?*#569`} [], `MEMS`{`name?*#570`} [], `TABLES`{`name?*#571`} [], `FUNCS`{`name?*#572`} [], `DATAS`{`name?*#573`} [], `ELEMS`{`name?*#574`} [], `LOCALS`{`name?*#575`} [], `LABELS`{`name?*#576`} [?(id)], `FIELDS`{`name?**#28`} [], `TYPEDEFS`{`deftype?*#19`} []} +++ I[`LABELS`_I{`name?*#577`}[x!`%`_idx{i#96077}.0] = ?()])] +[visit_exp ?(id)] +[visit_exp id] +[visit_id id] +[visit_exp {`TYPES`{`name?*#567`} [], `TAGS`{`name?*#568`} [], `GLOBALS`{`name?*#569`} [], `MEMS`{`name?*#570`} [], `TABLES`{`name?*#571`} [], `FUNCS`{`name?*#572`} [], `DATAS`{`name?*#573`} [], `ELEMS`{`name?*#574`} [], `LOCALS`{`name?*#575`} [], `LABELS`{`name?*#576`} [?(id)], `FIELDS`{`name?**#28`} [], `TYPEDEFS`{`deftype?*#19`} []} +++ I[`LABELS`_I{`name?*#577`}[x!`%`_idx{i#96077}.0] = ?()]] +[visit_exp {`TYPES`{`name?*#567`} [], `TAGS`{`name?*#568`} [], `GLOBALS`{`name?*#569`} [], `MEMS`{`name?*#570`} [], `TABLES`{`name?*#571`} [], `FUNCS`{`name?*#572`} [], `DATAS`{`name?*#573`} [], `ELEMS`{`name?*#574`} [], `LOCALS`{`name?*#575`} [], `LABELS`{`name?*#576`} [?(id)], `FIELDS`{`name?**#28`} [], `TYPEDEFS`{`deftype?*#19`} []}] +[visit_exp `name?*#567`] +[visit_id name?*#567] +[visit_exp []] +[visit_exp `name?*#568`] +[visit_id name?*#568] +[visit_exp []] +[visit_exp `name?*#569`] +[visit_id name?*#569] +[visit_exp []] +[visit_exp `name?*#570`] +[visit_id name?*#570] +[visit_exp []] +[visit_exp `name?*#571`] +[visit_id name?*#571] +[visit_exp []] +[visit_exp `name?*#572`] +[visit_id name?*#572] +[visit_exp []] +[visit_exp `name?*#573`] +[visit_id name?*#573] +[visit_exp []] +[visit_exp `name?*#574`] +[visit_id name?*#574] +[visit_exp []] +[visit_exp `name?*#575`] +[visit_id name?*#575] +[visit_exp []] +[visit_exp `name?*#576`] +[visit_id name?*#576] +[visit_exp [?(id)]] +[visit_exp ?(id)] +[visit_exp id] +[visit_id id] not free +[visit_exp `name?**#28`] +[visit_id name?**#28] +[visit_exp []] +[visit_exp `deftype?*#19`] +[visit_id deftype?*#19] +[visit_exp []] +[visit_exp I[`LABELS`_I{`name?*#577`}[x!`%`_idx{i#96077}.0] = ?()]] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#577`] +[visit_id name?*#577] +[visit_exp x!`%`_idx{i#96077}.0] +[visit_exp x!`%`_idx{i#96077}] +[visit_exp x] +[visit_id x] +[visit_exp i#96077] +[visit_id i#96077] +[visit_exp ?()] +[visit_exp id] +[visit_id id] not free +[visit_exp (?(id) = I.`LABELS`_I{`name?*#578`}[x!`%`_idx{i#96087}.0])] +[visit_exp ?(id)] +[visit_exp id] +[visit_id id] not free +[visit_exp I.`LABELS`_I{`name?*#578`}[x!`%`_idx{i#96087}.0]] +[visit_exp I.`LABELS`_I{`name?*#578`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#578`] +[visit_id name?*#578] +[visit_exp x!`%`_idx{i#96087}.0] +[visit_exp x!`%`_idx{i#96087}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#96087] +[visit_id i#96087] +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = (I : I) +[check_dims] I +[check_dims] I in +dims \ I = in +[visit_exp in] +[visit_id in] +[visit_exp in] +[visit_id in] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I in +dims \ I = in +[visit_exp in] +[visit_id in] +[visit_exp in] +[visit_id in] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I in +dims \ I = in +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] no dims +[visit_id in*] +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] not free +[visit_id in*] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I in +dims \ I = in +[visit_exp $concat_(syntax instr, in*{in <- `in*`}*{`in*` <- `in**`})] +[visit_exp in*{in <- `in*`}*{`in*` <- `in**`}] +[scope_enter in*] +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] not free +[visit_id in*] no dims +[visit_id in*] not free +[visit_id in*] no dims +[scope_exit in*] +[visit_exp `in**`] +[visit_id in**] no dims +[visit_id in**] +[visit_exp in*{in <- `in*`}*{`in*` <- `in**`}] +[scope_enter in*] +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] not free +[visit_id in*] no dims +[visit_id in*] not free +[visit_id in*] no dims +[scope_exit in*] +[visit_exp `in**`] +[visit_id in**] not free +[visit_id in**] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I I' +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I'] +[visit_id I'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I'] +[visit_id I'] not free +[check_dims] I I' +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I'] +[visit_id I'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I'] +[visit_id I'] not free +[check_dims] I I' in_1 in_2 +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp in_1*{in_1 <- `in_1*`}] +[scope_enter in_1] +[visit_exp in_1] +[visit_id in_1] not free +[visit_id in_1] not free +[scope_exit in_1] +[visit_exp `in_1*`] +[visit_id in_1*] no dims +[visit_id in_1*] +[visit_exp I'] +[visit_id I'] +[scope_enter in_2*] +[visit_exp in_2*{in_2 <- `in_2*`}] +[scope_enter in_2] +[visit_exp in_2] +[visit_id in_2] not free +[visit_id in_2] not free +[scope_exit in_2] +[visit_exp `in_2*`] +[visit_id in_2*] not free +[visit_id in_2*] no dims +[visit_exp I'] +[visit_id I'] not free +[visit_id in_2*] not free +[visit_id in_2*] no dims +[scope_exit in_2*] +[visit_exp `in_2*?`] +[visit_id in_2*?] no dims +[visit_id in_2*?] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp in_1*{in_1 <- `in_1*`}] +[scope_enter in_1] +[visit_exp in_1] +[visit_id in_1] not free +[visit_id in_1] not free +[scope_exit in_1] +[visit_exp `in_1*`] +[visit_id in_1*] not free +[visit_id in_1*] no dims +[visit_exp I'] +[visit_id I'] not free +[scope_enter in_2*] +[visit_exp in_2*{in_2 <- `in_2*`}] +[scope_enter in_2] +[visit_exp in_2] +[visit_id in_2] not free +[visit_id in_2] not free +[scope_exit in_2] +[visit_exp `in_2*`] +[visit_id in_2*] not free +[visit_id in_2*] no dims +[visit_exp I'] +[visit_id I'] not free +[visit_id in_2*] not free +[visit_id in_2*] no dims +[scope_exit in_2*] +[visit_exp `in_2*?`] +[visit_id in_2*?] not free +[visit_id in_2*?] no dims +[check_dims] I I' +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I'] +[visit_id I'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I'] +[visit_id I'] not free +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +dims \ I = +[visit_exp `UNREACHABLE`_instr] +[visit_exp ()] +[check_dims] I +dims \ I = +[visit_exp `NOP`_instr] +[visit_exp ()] +[check_dims] I +dims \ I = +[visit_exp `DROP`_instr] +[visit_exp ()] +[check_dims] I t valtype*?#15 +dims \ I = t, valtype*?#15 +[visit_exp `SELECT`_instr{`valtype*?#15`}(t*{t <- `t*`}?{`t*` <- `t*?`})] +[visit_exp `valtype*?#15`] +[visit_id valtype*?#15] +[visit_exp (t*{t <- `t*`}?{`t*` <- `t*?`})] +[visit_exp t*{t <- `t*`}?{`t*` <- `t*?`}] +[scope_enter t*] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_id t*] not free +[visit_id t*] no dims +[scope_exit t*] +[visit_exp `t*?`] +[visit_id t*?] no dims +[visit_id t*?] +[scope_enter t*] +[visit_exp t*{t <- `t*`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t*`] +[visit_id t*] not free +[visit_id t*] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id t*] not free +[visit_id t*] no dims +[scope_exit t*] +[visit_exp `t*?`] +[visit_id t*?] not free +[visit_id t*?] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I t valtype?#11 +dims \ I = t, valtype?#11 +[visit_exp `_RESULT`_blocktype{`valtype?#11`}(t?{t <- `t?`})] +[visit_exp `valtype?#11`] +[visit_id valtype?#11] +[visit_exp (t?{t <- `t?`})] +[visit_exp t?{t <- `t?`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t?`] +[visit_id t?] no dims +[visit_id t?] +[visit_exp t?{t <- `t?`}] +[scope_enter t] +[visit_exp t] +[visit_id t] not free +[visit_id t] not free +[scope_exit t] +[visit_exp `t?`] +[visit_id t?] not free +[visit_id t?] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I I' char*#1231 deftype?*#20 name?*#579 name?*#580 name?*#581 name?*#582 name?*#583 name?*#584 name?*#585 name?*#586 name?*#587 name?*#588 name?**#29 typeidx#2127 x +dims \ I = I', char*#1231, deftype?*#20, name?*#579, name?*#580, name?*#581, name?*#582, name?*#583, name?*#584, name?*#585, name?*#586, name?*#587, name?*#588, name?**#29, typeidx#2127, x +[visit_exp `_IDX`_blocktype{typeidx#2127}(x)] +[visit_exp typeidx#2127] +[visit_id typeidx#2127] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp (x, I')] +[visit_exp x] +[visit_id x] not free +[visit_exp I'] +[visit_id I'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp (I' = {`TYPES`{`name?*#579`} [], `TAGS`{`name?*#580`} [], `GLOBALS`{`name?*#581`} [], `MEMS`{`name?*#582`} [], `TABLES`{`name?*#583`} [], `FUNCS`{`name?*#584`} [], `DATAS`{`name?*#585`} [], `ELEMS`{`name?*#586`} [], `LOCALS`{`name?*#587`} ?(`%`_name{`char*#1231`}([]))*{`char*#1231` <- `char*#1231*`}, `LABELS`{`name?*#588`} [], `FIELDS`{`name?**#29`} [], `TYPEDEFS`{`deftype?*#20`} []})] +[visit_exp I'] +[visit_id I'] not free +[visit_exp {`TYPES`{`name?*#579`} [], `TAGS`{`name?*#580`} [], `GLOBALS`{`name?*#581`} [], `MEMS`{`name?*#582`} [], `TABLES`{`name?*#583`} [], `FUNCS`{`name?*#584`} [], `DATAS`{`name?*#585`} [], `ELEMS`{`name?*#586`} [], `LOCALS`{`name?*#587`} ?(`%`_name{`char*#1231`}([]))*{`char*#1231` <- `char*#1231*`}, `LABELS`{`name?*#588`} [], `FIELDS`{`name?**#29`} [], `TYPEDEFS`{`deftype?*#20`} []}] +[visit_exp `name?*#579`] +[visit_id name?*#579] +[visit_exp []] +[visit_exp `name?*#580`] +[visit_id name?*#580] +[visit_exp []] +[visit_exp `name?*#581`] +[visit_id name?*#581] +[visit_exp []] +[visit_exp `name?*#582`] +[visit_id name?*#582] +[visit_exp []] +[visit_exp `name?*#583`] +[visit_id name?*#583] +[visit_exp []] +[visit_exp `name?*#584`] +[visit_id name?*#584] +[visit_exp []] +[visit_exp `name?*#585`] +[visit_id name?*#585] +[visit_exp []] +[visit_exp `name?*#586`] +[visit_id name?*#586] +[visit_exp []] +[visit_exp `name?*#587`] +[visit_id name?*#587] +[visit_exp ?(`%`_name{`char*#1231`}([]))*{`char*#1231` <- `char*#1231*`}] +[scope_enter char*#1231] +[visit_exp ?(`%`_name{`char*#1231`}([]))] +[visit_exp `%`_name{`char*#1231`}([])] +[visit_exp `char*#1231`] +[visit_id char*#1231] not free +[visit_exp ([])] +[visit_exp []] +[visit_id char*#1231] not free +[scope_exit char*#1231] +[visit_exp `char*#1231*`] +[visit_id char*#1231*] no dims +[visit_id char*#1231*] +[visit_exp `name?*#588`] +[visit_id name?*#588] +[visit_exp []] +[visit_exp `name?**#29`] +[visit_id name?**#29] +[visit_exp []] +[visit_exp `deftype?*#20`] +[visit_id deftype?*#20] +[visit_exp []] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I I' blocktype#41 bt char*#1237 char*#1243 id id' in instr*#2360 +dims \ I = I', blocktype#41, bt, char*#1237, char*#1243, id, id', in, instr*#2360 +[visit_exp `BLOCK`_instr{blocktype#41, `instr*#2360`}(bt, in*{in <- `in*`})] +[visit_exp blocktype#41] +[visit_id blocktype#41] +[visit_exp `instr*#2360`] +[visit_id instr*#2360] +[visit_exp (bt, in*{in <- `in*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] no dims +[visit_id in*] +[visit_exp (?(`%`_name{`char*#1237`}(lift(id?{id <- `id?`}))), I')] +[visit_exp ?(`%`_name{`char*#1237`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1237`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1237`] +[visit_id char*#1237] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp I'] +[visit_id I'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp bt] +[visit_id bt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] not free +[visit_id in*] no dims +[visit_exp I'] +[visit_id I'] not free +[visit_exp ?(`%`_name{`char*#1243`}(lift(id'?{id' <- `id'?`})))] +[visit_exp `%`_name{`char*#1243`}(lift(id'?{id' <- `id'?`}))] +[visit_exp `char*#1243`] +[visit_id char*#1243] +[visit_exp (lift(id'?{id' <- `id'?`}))] +[visit_exp lift(id'?{id' <- `id'?`})] +[visit_exp id'?{id' <- `id'?`}] +[scope_enter id'] +[visit_exp id'] +[visit_id id'] not free +[visit_id id'] not free +[scope_exit id'] +[visit_exp `id'?`] +[visit_id id'?] no dims +[visit_id id'?] +[visit_exp ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`}))] +[visit_exp (id'?{id' <- `id'?`} = ?())] +[visit_exp id'?{id' <- `id'?`}] +[scope_enter id'] +[visit_exp id'] +[visit_id id'] not free +[visit_id id'] not free +[scope_exit id'] +[visit_exp `id'?`] +[visit_id id'?] not free +[visit_id id'?] no dims +[visit_exp ?()] +[visit_exp (id'?{id' <- `id'?`} = id?{id <- `id?`})] +[visit_exp id'?{id' <- `id'?`}] +[scope_enter id'] +[visit_exp id'] +[visit_id id'] not free +[visit_id id'] not free +[scope_exit id'] +[visit_exp `id'?`] +[visit_id id'?] not free +[visit_id id'?] no dims +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[check_dims] I I' blocktype#43 bt char*#1249 char*#1255 id id' in instr*#2362 +dims \ I = I', blocktype#43, bt, char*#1249, char*#1255, id, id', in, instr*#2362 +[visit_exp `LOOP`_instr{blocktype#43, `instr*#2362`}(bt, in*{in <- `in*`})] +[visit_exp blocktype#43] +[visit_id blocktype#43] +[visit_exp `instr*#2362`] +[visit_id instr*#2362] +[visit_exp (bt, in*{in <- `in*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] no dims +[visit_id in*] +[visit_exp (?(`%`_name{`char*#1249`}(lift(id?{id <- `id?`}))), I')] +[visit_exp ?(`%`_name{`char*#1249`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1249`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1249`] +[visit_id char*#1249] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp I'] +[visit_id I'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp bt] +[visit_id bt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] not free +[visit_id in*] no dims +[visit_exp I'] +[visit_id I'] not free +[visit_exp ?(`%`_name{`char*#1255`}(lift(id'?{id' <- `id'?`})))] +[visit_exp `%`_name{`char*#1255`}(lift(id'?{id' <- `id'?`}))] +[visit_exp `char*#1255`] +[visit_id char*#1255] +[visit_exp (lift(id'?{id' <- `id'?`}))] +[visit_exp lift(id'?{id' <- `id'?`})] +[visit_exp id'?{id' <- `id'?`}] +[scope_enter id'] +[visit_exp id'] +[visit_id id'] not free +[visit_id id'] not free +[scope_exit id'] +[visit_exp `id'?`] +[visit_id id'?] no dims +[visit_id id'?] +[visit_exp ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`}))] +[visit_exp (id'?{id' <- `id'?`} = ?())] +[visit_exp id'?{id' <- `id'?`}] +[scope_enter id'] +[visit_exp id'] +[visit_id id'] not free +[visit_id id'] not free +[scope_exit id'] +[visit_exp `id'?`] +[visit_id id'?] not free +[visit_id id'?] no dims +[visit_exp ?()] +[visit_exp (id'?{id' <- `id'?`} = id?{id <- `id?`})] +[visit_exp id'?{id' <- `id'?`}] +[scope_enter id'] +[visit_exp id'] +[visit_id id'] not free +[visit_id id'] not free +[scope_exit id'] +[visit_exp `id'?`] +[visit_id id'?] not free +[visit_id id'?] no dims +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[check_dims] I I' blocktype#45 bt char*#1261 char*#1267 char*#1273 id id_1 id_2 in_1 in_2 instr*#2364 +dims \ I = I', blocktype#45, bt, char*#1261, char*#1267, char*#1273, id, id_1, id_2, in_1, in_2, instr*#2364 +[visit_exp `IF%%ELSE%`_instr{blocktype#45, `instr*#2364`}(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] +[visit_exp blocktype#45] +[visit_id blocktype#45] +[visit_exp `instr*#2364`] +[visit_id instr*#2364] +[visit_exp (bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp in_1*{in_1 <- `in_1*`}] +[scope_enter in_1] +[visit_exp in_1] +[visit_id in_1] not free +[visit_id in_1] not free +[scope_exit in_1] +[visit_exp `in_1*`] +[visit_id in_1*] no dims +[visit_id in_1*] +[visit_exp in_2*{in_2 <- `in_2*`}] +[scope_enter in_2] +[visit_exp in_2] +[visit_id in_2] not free +[visit_id in_2] not free +[scope_exit in_2] +[visit_exp `in_2*`] +[visit_id in_2*] no dims +[visit_id in_2*] +[visit_exp (?(`%`_name{`char*#1261`}(lift(id?{id <- `id?`}))), I')] +[visit_exp ?(`%`_name{`char*#1261`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1261`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1261`] +[visit_id char*#1261] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp I'] +[visit_id I'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp bt] +[visit_id bt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp in_1*{in_1 <- `in_1*`}] +[scope_enter in_1] +[visit_exp in_1] +[visit_id in_1] not free +[visit_id in_1] not free +[scope_exit in_1] +[visit_exp `in_1*`] +[visit_id in_1*] not free +[visit_id in_1*] no dims +[visit_exp I'] +[visit_id I'] not free +[visit_exp ?(`%`_name{`char*#1267`}(lift(id_1?{id_1 <- `id_1?`})))] +[visit_exp `%`_name{`char*#1267`}(lift(id_1?{id_1 <- `id_1?`}))] +[visit_exp `char*#1267`] +[visit_id char*#1267] +[visit_exp (lift(id_1?{id_1 <- `id_1?`}))] +[visit_exp lift(id_1?{id_1 <- `id_1?`})] +[visit_exp id_1?{id_1 <- `id_1?`}] +[scope_enter id_1] +[visit_exp id_1] +[visit_id id_1] not free +[visit_id id_1] not free +[scope_exit id_1] +[visit_exp `id_1?`] +[visit_id id_1?] no dims +[visit_id id_1?] +[visit_exp in_2*{in_2 <- `in_2*`}] +[scope_enter in_2] +[visit_exp in_2] +[visit_id in_2] not free +[visit_id in_2] not free +[scope_exit in_2] +[visit_exp `in_2*`] +[visit_id in_2*] not free +[visit_id in_2*] no dims +[visit_exp I'] +[visit_id I'] not free +[visit_exp ?(`%`_name{`char*#1273`}(lift(id_2?{id_2 <- `id_2?`})))] +[visit_exp `%`_name{`char*#1273`}(lift(id_2?{id_2 <- `id_2?`}))] +[visit_exp `char*#1273`] +[visit_id char*#1273] +[visit_exp (lift(id_2?{id_2 <- `id_2?`}))] +[visit_exp lift(id_2?{id_2 <- `id_2?`})] +[visit_exp id_2?{id_2 <- `id_2?`}] +[scope_enter id_2] +[visit_exp id_2] +[visit_id id_2] not free +[visit_id id_2] not free +[scope_exit id_2] +[visit_exp `id_2?`] +[visit_id id_2?] no dims +[visit_id id_2?] +[visit_exp (((id_1?{id_1 <- `id_1?`} = ?()) \/ (id_1?{id_1 <- `id_1?`} = id?{id <- `id?`})) /\ ((id_2?{id_2 <- `id_2?`} = ?()) \/ (id_2?{id_2 <- `id_2?`} = id?{id <- `id?`})))] +[visit_exp ((id_1?{id_1 <- `id_1?`} = ?()) \/ (id_1?{id_1 <- `id_1?`} = id?{id <- `id?`}))] +[visit_exp (id_1?{id_1 <- `id_1?`} = ?())] +[visit_exp id_1?{id_1 <- `id_1?`}] +[scope_enter id_1] +[visit_exp id_1] +[visit_id id_1] not free +[visit_id id_1] not free +[scope_exit id_1] +[visit_exp `id_1?`] +[visit_id id_1?] not free +[visit_id id_1?] no dims +[visit_exp ?()] +[visit_exp (id_1?{id_1 <- `id_1?`} = id?{id <- `id?`})] +[visit_exp id_1?{id_1 <- `id_1?`}] +[scope_enter id_1] +[visit_exp id_1] +[visit_id id_1] not free +[visit_id id_1] not free +[scope_exit id_1] +[visit_exp `id_1?`] +[visit_id id_1?] not free +[visit_id id_1?] no dims +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp ((id_2?{id_2 <- `id_2?`} = ?()) \/ (id_2?{id_2 <- `id_2?`} = id?{id <- `id?`}))] +[visit_exp (id_2?{id_2 <- `id_2?`} = ?())] +[visit_exp id_2?{id_2 <- `id_2?`}] +[scope_enter id_2] +[visit_exp id_2] +[visit_id id_2] not free +[visit_id id_2] not free +[scope_exit id_2] +[visit_exp `id_2?`] +[visit_id id_2?] not free +[visit_id id_2?] no dims +[visit_exp ?()] +[visit_exp (id_2?{id_2 <- `id_2?`} = id?{id <- `id?`})] +[visit_exp id_2?{id_2 <- `id_2?`}] +[scope_enter id_2] +[visit_exp id_2] +[visit_id id_2] not free +[visit_id id_2] not free +[scope_exit id_2] +[visit_exp `id_2?`] +[visit_id id_2?] not free +[visit_id id_2?] no dims +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[check_dims] I I' X*#13607 blocktype#47 bt c char*#1279 char*#1285 id id' in instr*#2367 +dims \ I = I', X*#13607, blocktype#47, bt, c, char*#1279, char*#1285, id, id', in, instr*#2367 +[visit_exp `TRY_TABLE`_instr{blocktype#47, `instr*#2367`}(bt, `%`_list{`X*#13607`}(c*{c <- `c*`}), in*{in <- `in*`})] +[visit_exp blocktype#47] +[visit_id blocktype#47] +[visit_exp `instr*#2367`] +[visit_id instr*#2367] +[visit_exp (bt, `%`_list{`X*#13607`}(c*{c <- `c*`}), in*{in <- `in*`})] +[visit_exp bt] +[visit_id bt] +[visit_exp `%`_list{`X*#13607`}(c*{c <- `c*`})] +[visit_exp `X*#13607`] +[visit_id X*#13607] +[visit_exp (c*{c <- `c*`})] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] no dims +[visit_id in*] +[visit_exp (?(`%`_name{`char*#1279`}(lift(id?{id <- `id?`}))), I')] +[visit_exp ?(`%`_name{`char*#1279`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1279`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1279`] +[visit_id char*#1279] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp I'] +[visit_id I'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp bt] +[visit_id bt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] not free +[visit_id in*] no dims +[visit_exp I'] +[visit_id I'] not free +[visit_exp ?(`%`_name{`char*#1285`}(lift(id'?{id' <- `id'?`})))] +[visit_exp `%`_name{`char*#1285`}(lift(id'?{id' <- `id'?`}))] +[visit_exp `char*#1285`] +[visit_id char*#1285] +[visit_exp (lift(id'?{id' <- `id'?`}))] +[visit_exp lift(id'?{id' <- `id'?`})] +[visit_exp id'?{id' <- `id'?`}] +[scope_enter id'] +[visit_exp id'] +[visit_id id'] not free +[visit_id id'] not free +[scope_exit id'] +[visit_exp `id'?`] +[visit_id id'?] no dims +[visit_id id'?] +[visit_exp ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`}))] +[visit_exp (id'?{id' <- `id'?`} = ?())] +[visit_exp id'?{id' <- `id'?`}] +[scope_enter id'] +[visit_exp id'] +[visit_id id'] not free +[visit_id id'] not free +[scope_exit id'] +[visit_exp `id'?`] +[visit_id id'?] not free +[visit_id id'?] no dims +[visit_exp ?()] +[visit_exp (id'?{id' <- `id'?`} = id?{id <- `id?`})] +[visit_exp id'?{id' <- `id'?`}] +[scope_enter id'] +[visit_exp id'] +[visit_id id'] not free +[visit_id id'] not free +[scope_exit id'] +[visit_exp `id'?`] +[visit_id id'?] not free +[visit_id id'?] no dims +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I l labelidx#123 tagidx#29 x +dims \ I = l, labelidx#123, tagidx#29, x +[visit_exp `CATCH`_catch{tagidx#29, labelidx#123}(x, l)] +[visit_exp tagidx#29] +[visit_id tagidx#29] +[visit_exp labelidx#123] +[visit_id labelidx#123] +[visit_exp (x, l)] +[visit_exp x] +[visit_id x] +[visit_exp l] +[visit_id l] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp l] +[visit_id l] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I l labelidx#125 tagidx#31 x +dims \ I = l, labelidx#125, tagidx#31, x +[visit_exp `CATCH_REF`_catch{tagidx#31, labelidx#125}(x, l)] +[visit_exp tagidx#31] +[visit_id tagidx#31] +[visit_exp labelidx#125] +[visit_id labelidx#125] +[visit_exp (x, l)] +[visit_exp x] +[visit_id x] +[visit_exp l] +[visit_id l] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp l] +[visit_id l] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I l labelidx#127 +dims \ I = l, labelidx#127 +[visit_exp `CATCH_ALL`_catch{labelidx#127}(l)] +[visit_exp labelidx#127] +[visit_id labelidx#127] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp l] +[visit_id l] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I l labelidx#129 +dims \ I = l, labelidx#129 +[visit_exp `CATCH_ALL_REF`_catch{labelidx#129}(l)] +[visit_exp labelidx#129] +[visit_id labelidx#129] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp l] +[visit_id l] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I l labelidx#131 +dims \ I = l, labelidx#131 +[visit_exp `BR`_instr{labelidx#131}(l)] +[visit_exp labelidx#131] +[visit_id labelidx#131] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp l] +[visit_id l] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I l labelidx#133 +dims \ I = l, labelidx#133 +[visit_exp `BR_IF`_instr{labelidx#133}(l)] +[visit_exp labelidx#133] +[visit_id labelidx#133] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp l] +[visit_id l] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I l l' labelidx#135 labelidx*#56 +dims \ I = l, l', labelidx#135, labelidx*#56 +[visit_exp `BR_TABLE`_instr{`labelidx*#56`, labelidx#135}(l*{l <- `l*`}, l')] +[visit_exp `labelidx*#56`] +[visit_id labelidx*#56] +[visit_exp labelidx#135] +[visit_id labelidx#135] +[visit_exp (l*{l <- `l*`}, l')] +[visit_exp l*{l <- `l*`}] +[scope_enter l] +[visit_exp l] +[visit_id l] not free +[visit_id l] not free +[scope_exit l] +[visit_exp `l*`] +[visit_id l*] no dims +[visit_id l*] +[visit_exp l'] +[visit_id l'] +[visit_exp l*{l <- `l*`}] +[scope_enter l] +[visit_exp l] +[visit_id l] not free +[visit_id l] not free +[scope_exit l] +[visit_exp `l*`] +[visit_id l*] not free +[visit_id l*] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp l'] +[visit_id l'] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I l labelidx#137 +dims \ I = l, labelidx#137 +[visit_exp `BR_ON_NULL`_instr{labelidx#137}(l)] +[visit_exp labelidx#137] +[visit_id labelidx#137] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp l] +[visit_id l] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I l labelidx#139 +dims \ I = l, labelidx#139 +[visit_exp `BR_ON_NON_NULL`_instr{labelidx#139}(l)] +[visit_exp labelidx#139] +[visit_id labelidx#139] +[visit_exp (l)] +[visit_exp l] +[visit_id l] +[visit_exp l] +[visit_id l] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I l labelidx#141 reftype#4305 rt_1 rt_2 +dims \ I = l, labelidx#141, reftype#4305, rt_1, rt_2 +[visit_exp `BR_ON_CAST`_instr{labelidx#141, reftype#4305}(l, rt_1, rt_2)] +[visit_exp labelidx#141] +[visit_id labelidx#141] +[visit_exp reftype#4305] +[visit_id reftype#4305] +[visit_exp (l, rt_1, rt_2)] +[visit_exp l] +[visit_id l] +[visit_exp rt_1] +[visit_id rt_1] +[visit_exp rt_2] +[visit_id rt_2] +[visit_exp l] +[visit_id l] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp rt_1] +[visit_id rt_1] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp rt_2] +[visit_id rt_2] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I l labelidx#143 reftype#4308 rt_1 rt_2 +dims \ I = l, labelidx#143, reftype#4308, rt_1, rt_2 +[visit_exp `BR_ON_CAST_FAIL`_instr{labelidx#143, reftype#4308}(l, rt_1, rt_2)] +[visit_exp labelidx#143] +[visit_id labelidx#143] +[visit_exp reftype#4308] +[visit_id reftype#4308] +[visit_exp (l, rt_1, rt_2)] +[visit_exp l] +[visit_id l] +[visit_exp rt_1] +[visit_id rt_1] +[visit_exp rt_2] +[visit_id rt_2] +[visit_exp l] +[visit_id l] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp rt_1] +[visit_id rt_1] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp rt_2] +[visit_id rt_2] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I funcidx#3383 x +dims \ I = funcidx#3383, x +[visit_exp `CALL`_instr{funcidx#3383}(x)] +[visit_exp funcidx#3383] +[visit_id funcidx#3383] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I typeidx#2129 typeuse#79 x +dims \ I = typeidx#2129, typeuse#79, x +[visit_exp `CALL_REF`_instr{typeuse#79}(`_IDX`_typeuse{typeidx#2129}(x))] +[visit_exp typeuse#79] +[visit_id typeuse#79] +[visit_exp (`_IDX`_typeuse{typeidx#2129}(x))] +[visit_exp `_IDX`_typeuse{typeidx#2129}(x)] +[visit_exp typeidx#2129] +[visit_id typeidx#2129] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I I' char*#1315 deftype?*#21 name?*#589 name?*#590 name?*#591 name?*#592 name?*#593 name?*#594 name?*#595 name?*#596 name?*#597 name?*#598 name?**#30 tableidx#154 typeidx#2131 typeuse#81 x y +dims \ I = I', char*#1315, deftype?*#21, name?*#589, name?*#590, name?*#591, name?*#592, name?*#593, name?*#594, name?*#595, name?*#596, name?*#597, name?*#598, name?**#30, tableidx#154, typeidx#2131, typeuse#81, x, y +[visit_exp `CALL_INDIRECT`_instr{tableidx#154, typeuse#81}(x, `_IDX`_typeuse{typeidx#2131}(y))] +[visit_exp tableidx#154] +[visit_id tableidx#154] +[visit_exp typeuse#81] +[visit_id typeuse#81] +[visit_exp (x, `_IDX`_typeuse{typeidx#2131}(y))] +[visit_exp x] +[visit_id x] +[visit_exp `_IDX`_typeuse{typeidx#2131}(y)] +[visit_exp typeidx#2131] +[visit_id typeidx#2131] +[visit_exp (y)] +[visit_exp y] +[visit_id y] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp (y, I')] +[visit_exp y] +[visit_id y] not free +[visit_exp I'] +[visit_id I'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp (I' = {`TYPES`{`name?*#589`} [], `TAGS`{`name?*#590`} [], `GLOBALS`{`name?*#591`} [], `MEMS`{`name?*#592`} [], `TABLES`{`name?*#593`} [], `FUNCS`{`name?*#594`} [], `DATAS`{`name?*#595`} [], `ELEMS`{`name?*#596`} [], `LOCALS`{`name?*#597`} ?(`%`_name{`char*#1315`}([]))*{`char*#1315` <- `char*#1315*`}, `LABELS`{`name?*#598`} [], `FIELDS`{`name?**#30`} [], `TYPEDEFS`{`deftype?*#21`} []})] +[visit_exp I'] +[visit_id I'] not free +[visit_exp {`TYPES`{`name?*#589`} [], `TAGS`{`name?*#590`} [], `GLOBALS`{`name?*#591`} [], `MEMS`{`name?*#592`} [], `TABLES`{`name?*#593`} [], `FUNCS`{`name?*#594`} [], `DATAS`{`name?*#595`} [], `ELEMS`{`name?*#596`} [], `LOCALS`{`name?*#597`} ?(`%`_name{`char*#1315`}([]))*{`char*#1315` <- `char*#1315*`}, `LABELS`{`name?*#598`} [], `FIELDS`{`name?**#30`} [], `TYPEDEFS`{`deftype?*#21`} []}] +[visit_exp `name?*#589`] +[visit_id name?*#589] +[visit_exp []] +[visit_exp `name?*#590`] +[visit_id name?*#590] +[visit_exp []] +[visit_exp `name?*#591`] +[visit_id name?*#591] +[visit_exp []] +[visit_exp `name?*#592`] +[visit_id name?*#592] +[visit_exp []] +[visit_exp `name?*#593`] +[visit_id name?*#593] +[visit_exp []] +[visit_exp `name?*#594`] +[visit_id name?*#594] +[visit_exp []] +[visit_exp `name?*#595`] +[visit_id name?*#595] +[visit_exp []] +[visit_exp `name?*#596`] +[visit_id name?*#596] +[visit_exp []] +[visit_exp `name?*#597`] +[visit_id name?*#597] +[visit_exp ?(`%`_name{`char*#1315`}([]))*{`char*#1315` <- `char*#1315*`}] +[scope_enter char*#1315] +[visit_exp ?(`%`_name{`char*#1315`}([]))] +[visit_exp `%`_name{`char*#1315`}([])] +[visit_exp `char*#1315`] +[visit_id char*#1315] not free +[visit_exp ([])] +[visit_exp []] +[visit_id char*#1315] not free +[scope_exit char*#1315] +[visit_exp `char*#1315*`] +[visit_id char*#1315*] no dims +[visit_id char*#1315*] +[visit_exp `name?*#598`] +[visit_id name?*#598] +[visit_exp []] +[visit_exp `name?**#30`] +[visit_id name?**#30] +[visit_exp []] +[visit_exp `deftype?*#21`] +[visit_id deftype?*#21] +[visit_exp []] +[check_dims] I +dims \ I = +[visit_exp `RETURN`_instr] +[visit_exp ()] +[check_dims] I funcidx#3385 x +dims \ I = funcidx#3385, x +[visit_exp `RETURN_CALL`_instr{funcidx#3385}(x)] +[visit_exp funcidx#3385] +[visit_id funcidx#3385] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I typeidx#2133 typeuse#83 x +dims \ I = typeidx#2133, typeuse#83, x +[visit_exp `RETURN_CALL_REF`_instr{typeuse#83}(`_IDX`_typeuse{typeidx#2133}(x))] +[visit_exp typeuse#83] +[visit_id typeuse#83] +[visit_exp (`_IDX`_typeuse{typeidx#2133}(x))] +[visit_exp `_IDX`_typeuse{typeidx#2133}(x)] +[visit_exp typeidx#2133] +[visit_id typeidx#2133] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I I' char*#1345 deftype?*#22 name?*#599 name?*#600 name?*#601 name?*#602 name?*#603 name?*#604 name?*#605 name?*#606 name?*#607 name?*#608 name?**#31 tableidx#156 typeidx#2135 typeuse#85 x y +dims \ I = I', char*#1345, deftype?*#22, name?*#599, name?*#600, name?*#601, name?*#602, name?*#603, name?*#604, name?*#605, name?*#606, name?*#607, name?*#608, name?**#31, tableidx#156, typeidx#2135, typeuse#85, x, y +[visit_exp `RETURN_CALL_INDIRECT`_instr{tableidx#156, typeuse#85}(x, `_IDX`_typeuse{typeidx#2135}(y))] +[visit_exp tableidx#156] +[visit_id tableidx#156] +[visit_exp typeuse#85] +[visit_id typeuse#85] +[visit_exp (x, `_IDX`_typeuse{typeidx#2135}(y))] +[visit_exp x] +[visit_id x] +[visit_exp `_IDX`_typeuse{typeidx#2135}(y)] +[visit_exp typeidx#2135] +[visit_id typeidx#2135] +[visit_exp (y)] +[visit_exp y] +[visit_id y] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp (y, I')] +[visit_exp y] +[visit_id y] not free +[visit_exp I'] +[visit_id I'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp (I' = {`TYPES`{`name?*#599`} [], `TAGS`{`name?*#600`} [], `GLOBALS`{`name?*#601`} [], `MEMS`{`name?*#602`} [], `TABLES`{`name?*#603`} [], `FUNCS`{`name?*#604`} [], `DATAS`{`name?*#605`} [], `ELEMS`{`name?*#606`} [], `LOCALS`{`name?*#607`} ?(`%`_name{`char*#1345`}([]))*{`char*#1345` <- `char*#1345*`}, `LABELS`{`name?*#608`} [], `FIELDS`{`name?**#31`} [], `TYPEDEFS`{`deftype?*#22`} []})] +[visit_exp I'] +[visit_id I'] not free +[visit_exp {`TYPES`{`name?*#599`} [], `TAGS`{`name?*#600`} [], `GLOBALS`{`name?*#601`} [], `MEMS`{`name?*#602`} [], `TABLES`{`name?*#603`} [], `FUNCS`{`name?*#604`} [], `DATAS`{`name?*#605`} [], `ELEMS`{`name?*#606`} [], `LOCALS`{`name?*#607`} ?(`%`_name{`char*#1345`}([]))*{`char*#1345` <- `char*#1345*`}, `LABELS`{`name?*#608`} [], `FIELDS`{`name?**#31`} [], `TYPEDEFS`{`deftype?*#22`} []}] +[visit_exp `name?*#599`] +[visit_id name?*#599] +[visit_exp []] +[visit_exp `name?*#600`] +[visit_id name?*#600] +[visit_exp []] +[visit_exp `name?*#601`] +[visit_id name?*#601] +[visit_exp []] +[visit_exp `name?*#602`] +[visit_id name?*#602] +[visit_exp []] +[visit_exp `name?*#603`] +[visit_id name?*#603] +[visit_exp []] +[visit_exp `name?*#604`] +[visit_id name?*#604] +[visit_exp []] +[visit_exp `name?*#605`] +[visit_id name?*#605] +[visit_exp []] +[visit_exp `name?*#606`] +[visit_id name?*#606] +[visit_exp []] +[visit_exp `name?*#607`] +[visit_id name?*#607] +[visit_exp ?(`%`_name{`char*#1345`}([]))*{`char*#1345` <- `char*#1345*`}] +[scope_enter char*#1345] +[visit_exp ?(`%`_name{`char*#1345`}([]))] +[visit_exp `%`_name{`char*#1345`}([])] +[visit_exp `char*#1345`] +[visit_id char*#1345] not free +[visit_exp ([])] +[visit_exp []] +[visit_id char*#1345] not free +[scope_exit char*#1345] +[visit_exp `char*#1345*`] +[visit_id char*#1345*] no dims +[visit_id char*#1345*] +[visit_exp `name?*#608`] +[visit_id name?*#608] +[visit_exp []] +[visit_exp `name?**#31`] +[visit_id name?**#31] +[visit_exp []] +[visit_exp `deftype?*#22`] +[visit_id deftype?*#22] +[visit_exp []] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I tagidx#33 x +dims \ I = tagidx#33, x +[visit_exp `THROW`_instr{tagidx#33}(x)] +[visit_exp tagidx#33] +[visit_id tagidx#33] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I +dims \ I = +[visit_exp `THROW_REF`_instr] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I localidx#27 x +dims \ I = localidx#27, x +[visit_exp `LOCAL.GET`_instr{localidx#27}(x)] +[visit_exp localidx#27] +[visit_id localidx#27] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I localidx#29 x +dims \ I = localidx#29, x +[visit_exp `LOCAL.SET`_instr{localidx#29}(x)] +[visit_exp localidx#29] +[visit_id localidx#29] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I localidx#31 x +dims \ I = localidx#31, x +[visit_exp `LOCAL.TEE`_instr{localidx#31}(x)] +[visit_exp localidx#31] +[visit_id localidx#31] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I globalidx#31 x +dims \ I = globalidx#31, x +[visit_exp `GLOBAL.GET`_instr{globalidx#31}(x)] +[visit_exp globalidx#31] +[visit_id globalidx#31] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I globalidx#33 x +dims \ I = globalidx#33, x +[visit_exp `GLOBAL.SET`_instr{globalidx#33}(x)] +[visit_exp globalidx#33] +[visit_id globalidx#33] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I tableidx#158 x +dims \ I = tableidx#158, x +[visit_exp `TABLE.GET`_instr{tableidx#158}(x)] +[visit_exp tableidx#158] +[visit_id tableidx#158] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I tableidx#160 x +dims \ I = tableidx#160, x +[visit_exp `TABLE.SET`_instr{tableidx#160}(x)] +[visit_exp tableidx#160] +[visit_id tableidx#160] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I tableidx#162 x +dims \ I = tableidx#162, x +[visit_exp `TABLE.SIZE`_instr{tableidx#162}(x)] +[visit_exp tableidx#162] +[visit_id tableidx#162] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I tableidx#164 x +dims \ I = tableidx#164, x +[visit_exp `TABLE.GROW`_instr{tableidx#164}(x)] +[visit_exp tableidx#164] +[visit_id tableidx#164] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I tableidx#166 x +dims \ I = tableidx#166, x +[visit_exp `TABLE.FILL`_instr{tableidx#166}(x)] +[visit_exp tableidx#166] +[visit_id tableidx#166] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I tableidx#168 x_1 x_2 +dims \ I = tableidx#168, x_1, x_2 +[visit_exp `TABLE.COPY`_instr{tableidx#168}(x_1, x_2)] +[visit_exp tableidx#168] +[visit_id tableidx#168] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I elemidx#57 tableidx#171 x y +dims \ I = elemidx#57, tableidx#171, x, y +[visit_exp `TABLE.INIT`_instr{tableidx#171, elemidx#57}(x, y)] +[visit_exp tableidx#171] +[visit_id tableidx#171] +[visit_exp elemidx#57] +[visit_id elemidx#57] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp y] +[visit_id y] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I elemidx#59 x +dims \ I = elemidx#59, x +[visit_exp `ELEM.DROP`_instr{elemidx#59}(x)] +[visit_exp elemidx#59] +[visit_id elemidx#59] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (N : N) +[check_dims] N +[check_dims] N i#97540 i#97567 i#97591 i#97613 m n u32#47 u64#609 +dims \ N = i#97540, i#97567, i#97591, i#97613, m, n, u32#47, u64#609 +[visit_exp {`ALIGN`{u32#47} `%`_u32{i#97591}(n), `OFFSET`{u64#609} `%`_u64{i#97613}(m)}] +[visit_exp u32#47] +[visit_id u32#47] +[visit_exp `%`_u32{i#97591}(n)] +[visit_exp i#97591] +[visit_id i#97591] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp u64#609] +[visit_id u64#609] +[visit_exp `%`_u64{i#97613}(m)] +[visit_exp i#97613] +[visit_id i#97613] +[visit_exp (m)] +[visit_exp m] +[visit_id m] +[visit_exp `%`_u64{i#97540}(n)] +[visit_exp i#97540] +[visit_id i#97540] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp `%`_u64{i#97567}(m)] +[visit_exp i#97567] +[visit_id i#97567] +[visit_exp (m)] +[visit_exp m] +[visit_id m] not free +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_id N] not free +ps' = +[check_dims] +[check_dims] i#97638 i#97664 n +dims \ = i#97638, i#97664, n +[visit_exp `%`_u64{i#97664}(n)] +[visit_exp i#97664] +[visit_id i#97664] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `%`_u64{i#97638}(n)] +[visit_exp i#97638] +[visit_id i#97638] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[check_dims] i#97686 +dims \ = i#97686 +[visit_exp `%`_u64{i#97686}(0)] +[visit_exp i#97686] +[visit_id i#97686] +[visit_exp (0)] +[visit_exp 0] +ps' = (N : N) +[check_dims] N +[check_dims] N i#97711 i#97737 m n +dims \ N = i#97711, i#97737, m, n +[visit_exp `%`_u64{i#97737}(m)] +[visit_exp i#97737] +[visit_id i#97737] +[visit_exp (m)] +[visit_exp m] +[visit_id m] +[visit_exp `%`_u64{i#97711}(m)] +[visit_exp i#97711] +[visit_id i#97711] +[visit_exp (m)] +[visit_exp m] +[visit_id m] not free +[visit_exp (m = (2 ^ n))] +[visit_exp m] +[visit_id m] not free +[visit_exp (2 ^ n)] +[visit_exp 2] +[visit_exp n] +[visit_id n] +[check_dims] N i#97761 +dims \ N = i#97761 +[visit_exp `%`_u64{i#97761}(N)] +[visit_exp i#97761] +[visit_id i#97761] +[visit_exp (N)] +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[visit_id N] not free +ps' = +[check_dims] +[check_dims] i +dims \ = i +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +ps' = (I : I) +[check_dims] I +[check_dims] I ao memarg#181 memidx#278 numtype?#44 x +dims \ I = ao, memarg#181, memidx#278, numtype?#44, x +[visit_exp `LOAD`_instr{`numtype?#44`, memidx#278, memarg#181}(`I32`_numtype, ?(), x, ao)] +[visit_exp `numtype?#44`] +[visit_id numtype?#44] +[visit_exp memidx#278] +[visit_id memidx#278] +[visit_exp memarg#181] +[visit_id memarg#181] +[visit_exp (`I32`_numtype, ?(), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 4] +[check_dims] I ao memarg#183 memidx#280 numtype?#45 x +dims \ I = ao, memarg#183, memidx#280, numtype?#45, x +[visit_exp `LOAD`_instr{`numtype?#45`, memidx#280, memarg#183}(`I64`_numtype, ?(), x, ao)] +[visit_exp `numtype?#45`] +[visit_id numtype?#45] +[visit_exp memidx#280] +[visit_id memidx#280] +[visit_exp memarg#183] +[visit_id memarg#183] +[visit_exp (`I64`_numtype, ?(), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[check_dims] I ao memarg#185 memidx#282 numtype?#46 x +dims \ I = ao, memarg#185, memidx#282, numtype?#46, x +[visit_exp `LOAD`_instr{`numtype?#46`, memidx#282, memarg#185}(`F32`_numtype, ?(), x, ao)] +[visit_exp `numtype?#46`] +[visit_id numtype?#46] +[visit_exp memidx#282] +[visit_id memidx#282] +[visit_exp memarg#185] +[visit_id memarg#185] +[visit_exp (`F32`_numtype, ?(), x, ao)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 4] +[check_dims] I ao memarg#187 memidx#284 numtype?#47 x +dims \ I = ao, memarg#187, memidx#284, numtype?#47, x +[visit_exp `LOAD`_instr{`numtype?#47`, memidx#284, memarg#187}(`F64`_numtype, ?(), x, ao)] +[visit_exp `numtype?#47`] +[visit_id numtype?#47] +[visit_exp memidx#284] +[visit_id memidx#284] +[visit_exp memarg#187] +[visit_id memarg#187] +[visit_exp (`F64`_numtype, ?(), x, ao)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[check_dims] I ao i#97957 i#97964 memarg#189 memidx#286 numtype?#48 sx#15729 sz#1643 x +dims \ I = ao, i#97957, i#97964, memarg#189, memidx#286, numtype?#48, sx#15729, sz#1643, x +[visit_exp `LOAD`_instr{`numtype?#48`, memidx#286, memarg#189}(`I32`_numtype, ?(`%_%`_loadop_{sz#1643, sx#15729, i#97957}(`%`_sz{i#97964}(8), `S`_sx)), x, ao)] +[visit_exp `numtype?#48`] +[visit_id numtype?#48] +[visit_exp memidx#286] +[visit_id memidx#286] +[visit_exp memarg#189] +[visit_id memarg#189] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#1643, sx#15729, i#97957}(`%`_sz{i#97964}(8), `S`_sx)), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#1643, sx#15729, i#97957}(`%`_sz{i#97964}(8), `S`_sx))] +[visit_exp `%_%`_loadop_{sz#1643, sx#15729, i#97957}(`%`_sz{i#97964}(8), `S`_sx)] +[visit_exp sz#1643] +[visit_id sz#1643] +[visit_exp sx#15729] +[visit_id sx#15729] +[visit_exp i#97957] +[visit_id i#97957] +[visit_exp (`%`_sz{i#97964}(8), `S`_sx)] +[visit_exp `%`_sz{i#97964}(8)] +[visit_exp i#97964] +[visit_id i#97964] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 1] +[check_dims] I ao i#98021 i#98028 memarg#191 memidx#288 numtype?#49 sx#15747 sz#1661 x +dims \ I = ao, i#98021, i#98028, memarg#191, memidx#288, numtype?#49, sx#15747, sz#1661, x +[visit_exp `LOAD`_instr{`numtype?#49`, memidx#288, memarg#191}(`I32`_numtype, ?(`%_%`_loadop_{sz#1661, sx#15747, i#98021}(`%`_sz{i#98028}(8), `U`_sx)), x, ao)] +[visit_exp `numtype?#49`] +[visit_id numtype?#49] +[visit_exp memidx#288] +[visit_id memidx#288] +[visit_exp memarg#191] +[visit_id memarg#191] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#1661, sx#15747, i#98021}(`%`_sz{i#98028}(8), `U`_sx)), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#1661, sx#15747, i#98021}(`%`_sz{i#98028}(8), `U`_sx))] +[visit_exp `%_%`_loadop_{sz#1661, sx#15747, i#98021}(`%`_sz{i#98028}(8), `U`_sx)] +[visit_exp sz#1661] +[visit_id sz#1661] +[visit_exp sx#15747] +[visit_id sx#15747] +[visit_exp i#98021] +[visit_id i#98021] +[visit_exp (`%`_sz{i#98028}(8), `U`_sx)] +[visit_exp `%`_sz{i#98028}(8)] +[visit_exp i#98028] +[visit_id i#98028] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 1] +[check_dims] I ao i#98085 i#98092 memarg#193 memidx#290 numtype?#50 sx#15765 sz#1679 x +dims \ I = ao, i#98085, i#98092, memarg#193, memidx#290, numtype?#50, sx#15765, sz#1679, x +[visit_exp `LOAD`_instr{`numtype?#50`, memidx#290, memarg#193}(`I32`_numtype, ?(`%_%`_loadop_{sz#1679, sx#15765, i#98085}(`%`_sz{i#98092}(16), `S`_sx)), x, ao)] +[visit_exp `numtype?#50`] +[visit_id numtype?#50] +[visit_exp memidx#290] +[visit_id memidx#290] +[visit_exp memarg#193] +[visit_id memarg#193] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#1679, sx#15765, i#98085}(`%`_sz{i#98092}(16), `S`_sx)), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#1679, sx#15765, i#98085}(`%`_sz{i#98092}(16), `S`_sx))] +[visit_exp `%_%`_loadop_{sz#1679, sx#15765, i#98085}(`%`_sz{i#98092}(16), `S`_sx)] +[visit_exp sz#1679] +[visit_id sz#1679] +[visit_exp sx#15765] +[visit_id sx#15765] +[visit_exp i#98085] +[visit_id i#98085] +[visit_exp (`%`_sz{i#98092}(16), `S`_sx)] +[visit_exp `%`_sz{i#98092}(16)] +[visit_exp i#98092] +[visit_id i#98092] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 2] +[check_dims] I ao i#98149 i#98156 memarg#195 memidx#292 numtype?#51 sx#15783 sz#1697 x +dims \ I = ao, i#98149, i#98156, memarg#195, memidx#292, numtype?#51, sx#15783, sz#1697, x +[visit_exp `LOAD`_instr{`numtype?#51`, memidx#292, memarg#195}(`I32`_numtype, ?(`%_%`_loadop_{sz#1697, sx#15783, i#98149}(`%`_sz{i#98156}(16), `U`_sx)), x, ao)] +[visit_exp `numtype?#51`] +[visit_id numtype?#51] +[visit_exp memidx#292] +[visit_id memidx#292] +[visit_exp memarg#195] +[visit_id memarg#195] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#1697, sx#15783, i#98149}(`%`_sz{i#98156}(16), `U`_sx)), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#1697, sx#15783, i#98149}(`%`_sz{i#98156}(16), `U`_sx))] +[visit_exp `%_%`_loadop_{sz#1697, sx#15783, i#98149}(`%`_sz{i#98156}(16), `U`_sx)] +[visit_exp sz#1697] +[visit_id sz#1697] +[visit_exp sx#15783] +[visit_id sx#15783] +[visit_exp i#98149] +[visit_id i#98149] +[visit_exp (`%`_sz{i#98156}(16), `U`_sx)] +[visit_exp `%`_sz{i#98156}(16)] +[visit_exp i#98156] +[visit_id i#98156] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 2] +[check_dims] I ao i#98213 i#98220 memarg#197 memidx#294 numtype?#52 sx#15801 sz#1715 x +dims \ I = ao, i#98213, i#98220, memarg#197, memidx#294, numtype?#52, sx#15801, sz#1715, x +[visit_exp `LOAD`_instr{`numtype?#52`, memidx#294, memarg#197}(`I64`_numtype, ?(`%_%`_loadop_{sz#1715, sx#15801, i#98213}(`%`_sz{i#98220}(8), `S`_sx)), x, ao)] +[visit_exp `numtype?#52`] +[visit_id numtype?#52] +[visit_exp memidx#294] +[visit_id memidx#294] +[visit_exp memarg#197] +[visit_id memarg#197] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#1715, sx#15801, i#98213}(`%`_sz{i#98220}(8), `S`_sx)), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#1715, sx#15801, i#98213}(`%`_sz{i#98220}(8), `S`_sx))] +[visit_exp `%_%`_loadop_{sz#1715, sx#15801, i#98213}(`%`_sz{i#98220}(8), `S`_sx)] +[visit_exp sz#1715] +[visit_id sz#1715] +[visit_exp sx#15801] +[visit_id sx#15801] +[visit_exp i#98213] +[visit_id i#98213] +[visit_exp (`%`_sz{i#98220}(8), `S`_sx)] +[visit_exp `%`_sz{i#98220}(8)] +[visit_exp i#98220] +[visit_id i#98220] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 1] +[check_dims] I ao i#98277 i#98284 memarg#199 memidx#296 numtype?#53 sx#15819 sz#1733 x +dims \ I = ao, i#98277, i#98284, memarg#199, memidx#296, numtype?#53, sx#15819, sz#1733, x +[visit_exp `LOAD`_instr{`numtype?#53`, memidx#296, memarg#199}(`I64`_numtype, ?(`%_%`_loadop_{sz#1733, sx#15819, i#98277}(`%`_sz{i#98284}(8), `U`_sx)), x, ao)] +[visit_exp `numtype?#53`] +[visit_id numtype?#53] +[visit_exp memidx#296] +[visit_id memidx#296] +[visit_exp memarg#199] +[visit_id memarg#199] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#1733, sx#15819, i#98277}(`%`_sz{i#98284}(8), `U`_sx)), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#1733, sx#15819, i#98277}(`%`_sz{i#98284}(8), `U`_sx))] +[visit_exp `%_%`_loadop_{sz#1733, sx#15819, i#98277}(`%`_sz{i#98284}(8), `U`_sx)] +[visit_exp sz#1733] +[visit_id sz#1733] +[visit_exp sx#15819] +[visit_id sx#15819] +[visit_exp i#98277] +[visit_id i#98277] +[visit_exp (`%`_sz{i#98284}(8), `U`_sx)] +[visit_exp `%`_sz{i#98284}(8)] +[visit_exp i#98284] +[visit_id i#98284] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 1] +[check_dims] I ao i#98341 i#98348 memarg#201 memidx#298 numtype?#54 sx#15837 sz#1751 x +dims \ I = ao, i#98341, i#98348, memarg#201, memidx#298, numtype?#54, sx#15837, sz#1751, x +[visit_exp `LOAD`_instr{`numtype?#54`, memidx#298, memarg#201}(`I64`_numtype, ?(`%_%`_loadop_{sz#1751, sx#15837, i#98341}(`%`_sz{i#98348}(16), `S`_sx)), x, ao)] +[visit_exp `numtype?#54`] +[visit_id numtype?#54] +[visit_exp memidx#298] +[visit_id memidx#298] +[visit_exp memarg#201] +[visit_id memarg#201] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#1751, sx#15837, i#98341}(`%`_sz{i#98348}(16), `S`_sx)), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#1751, sx#15837, i#98341}(`%`_sz{i#98348}(16), `S`_sx))] +[visit_exp `%_%`_loadop_{sz#1751, sx#15837, i#98341}(`%`_sz{i#98348}(16), `S`_sx)] +[visit_exp sz#1751] +[visit_id sz#1751] +[visit_exp sx#15837] +[visit_id sx#15837] +[visit_exp i#98341] +[visit_id i#98341] +[visit_exp (`%`_sz{i#98348}(16), `S`_sx)] +[visit_exp `%`_sz{i#98348}(16)] +[visit_exp i#98348] +[visit_id i#98348] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 2] +[check_dims] I ao i#98405 i#98412 memarg#203 memidx#300 numtype?#55 sx#15855 sz#1769 x +dims \ I = ao, i#98405, i#98412, memarg#203, memidx#300, numtype?#55, sx#15855, sz#1769, x +[visit_exp `LOAD`_instr{`numtype?#55`, memidx#300, memarg#203}(`I64`_numtype, ?(`%_%`_loadop_{sz#1769, sx#15855, i#98405}(`%`_sz{i#98412}(16), `U`_sx)), x, ao)] +[visit_exp `numtype?#55`] +[visit_id numtype?#55] +[visit_exp memidx#300] +[visit_id memidx#300] +[visit_exp memarg#203] +[visit_id memarg#203] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#1769, sx#15855, i#98405}(`%`_sz{i#98412}(16), `U`_sx)), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#1769, sx#15855, i#98405}(`%`_sz{i#98412}(16), `U`_sx))] +[visit_exp `%_%`_loadop_{sz#1769, sx#15855, i#98405}(`%`_sz{i#98412}(16), `U`_sx)] +[visit_exp sz#1769] +[visit_id sz#1769] +[visit_exp sx#15855] +[visit_id sx#15855] +[visit_exp i#98405] +[visit_id i#98405] +[visit_exp (`%`_sz{i#98412}(16), `U`_sx)] +[visit_exp `%`_sz{i#98412}(16)] +[visit_exp i#98412] +[visit_id i#98412] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 2] +[check_dims] I ao i#98469 i#98476 memarg#205 memidx#302 numtype?#56 sx#15873 sz#1787 x +dims \ I = ao, i#98469, i#98476, memarg#205, memidx#302, numtype?#56, sx#15873, sz#1787, x +[visit_exp `LOAD`_instr{`numtype?#56`, memidx#302, memarg#205}(`I64`_numtype, ?(`%_%`_loadop_{sz#1787, sx#15873, i#98469}(`%`_sz{i#98476}(32), `S`_sx)), x, ao)] +[visit_exp `numtype?#56`] +[visit_id numtype?#56] +[visit_exp memidx#302] +[visit_id memidx#302] +[visit_exp memarg#205] +[visit_id memarg#205] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#1787, sx#15873, i#98469}(`%`_sz{i#98476}(32), `S`_sx)), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#1787, sx#15873, i#98469}(`%`_sz{i#98476}(32), `S`_sx))] +[visit_exp `%_%`_loadop_{sz#1787, sx#15873, i#98469}(`%`_sz{i#98476}(32), `S`_sx)] +[visit_exp sz#1787] +[visit_id sz#1787] +[visit_exp sx#15873] +[visit_id sx#15873] +[visit_exp i#98469] +[visit_id i#98469] +[visit_exp (`%`_sz{i#98476}(32), `S`_sx)] +[visit_exp `%`_sz{i#98476}(32)] +[visit_exp i#98476] +[visit_id i#98476] +[visit_exp (32)] +[visit_exp 32] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 4] +[check_dims] I ao i#98533 i#98540 memarg#207 memidx#304 numtype?#57 sx#15891 sz#1805 x +dims \ I = ao, i#98533, i#98540, memarg#207, memidx#304, numtype?#57, sx#15891, sz#1805, x +[visit_exp `LOAD`_instr{`numtype?#57`, memidx#304, memarg#207}(`I64`_numtype, ?(`%_%`_loadop_{sz#1805, sx#15891, i#98533}(`%`_sz{i#98540}(32), `U`_sx)), x, ao)] +[visit_exp `numtype?#57`] +[visit_id numtype?#57] +[visit_exp memidx#304] +[visit_id memidx#304] +[visit_exp memarg#207] +[visit_id memarg#207] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#1805, sx#15891, i#98533}(`%`_sz{i#98540}(32), `U`_sx)), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%_%`_loadop_{sz#1805, sx#15891, i#98533}(`%`_sz{i#98540}(32), `U`_sx))] +[visit_exp `%_%`_loadop_{sz#1805, sx#15891, i#98533}(`%`_sz{i#98540}(32), `U`_sx)] +[visit_exp sz#1805] +[visit_id sz#1805] +[visit_exp sx#15891] +[visit_id sx#15891] +[visit_exp i#98533] +[visit_id i#98533] +[visit_exp (`%`_sz{i#98540}(32), `U`_sx)] +[visit_exp `%`_sz{i#98540}(32)] +[visit_exp i#98540] +[visit_id i#98540] +[visit_exp (32)] +[visit_exp 32] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 4] +[check_dims] I ao memarg#209 memidx#306 vectype?#27 x +dims \ I = ao, memarg#209, memidx#306, vectype?#27, x +[visit_exp `VLOAD`_instr{`vectype?#27`, memidx#306, memarg#209}(`V128`_vectype, ?(), x, ao)] +[visit_exp `vectype?#27`] +[visit_id vectype?#27] +[visit_exp memidx#306] +[visit_id memidx#306] +[visit_exp memarg#209] +[visit_id memarg#209] +[visit_exp (`V128`_vectype, ?(), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 16] +[check_dims] I M#349 ao i#98628 i#98635 memarg#211 memidx#308 sx#15908 sz#1852 vectype?#28 x +dims \ I = M#349, ao, i#98628, i#98635, memarg#211, memidx#308, sx#15908, sz#1852, vectype?#28, x +[visit_exp `VLOAD`_instr{`vectype?#28`, memidx#308, memarg#211}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1852, M#349, sx#15908, i#98628}(`%`_sz{i#98635}(8), 8, `S`_sx)), x, ao)] +[visit_exp `vectype?#28`] +[visit_id vectype?#28] +[visit_exp memidx#308] +[visit_id memidx#308] +[visit_exp memarg#211] +[visit_id memarg#211] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1852, M#349, sx#15908, i#98628}(`%`_sz{i#98635}(8), 8, `S`_sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1852, M#349, sx#15908, i#98628}(`%`_sz{i#98635}(8), 8, `S`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#1852, M#349, sx#15908, i#98628}(`%`_sz{i#98635}(8), 8, `S`_sx)] +[visit_exp sz#1852] +[visit_id sz#1852] +[visit_exp M#349] +[visit_id M#349] +[visit_exp sx#15908] +[visit_id sx#15908] +[visit_exp i#98628] +[visit_id i#98628] +[visit_exp (`%`_sz{i#98635}(8), 8, `S`_sx)] +[visit_exp `%`_sz{i#98635}(8)] +[visit_exp i#98635] +[visit_id i#98635] +[visit_exp (8)] +[visit_exp 8] +[visit_exp 8] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[check_dims] I M#366 ao i#98692 i#98699 memarg#213 memidx#310 sx#15925 sz#1899 vectype?#29 x +dims \ I = M#366, ao, i#98692, i#98699, memarg#213, memidx#310, sx#15925, sz#1899, vectype?#29, x +[visit_exp `VLOAD`_instr{`vectype?#29`, memidx#310, memarg#213}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1899, M#366, sx#15925, i#98692}(`%`_sz{i#98699}(8), 8, `U`_sx)), x, ao)] +[visit_exp `vectype?#29`] +[visit_id vectype?#29] +[visit_exp memidx#310] +[visit_id memidx#310] +[visit_exp memarg#213] +[visit_id memarg#213] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1899, M#366, sx#15925, i#98692}(`%`_sz{i#98699}(8), 8, `U`_sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1899, M#366, sx#15925, i#98692}(`%`_sz{i#98699}(8), 8, `U`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#1899, M#366, sx#15925, i#98692}(`%`_sz{i#98699}(8), 8, `U`_sx)] +[visit_exp sz#1899] +[visit_id sz#1899] +[visit_exp M#366] +[visit_id M#366] +[visit_exp sx#15925] +[visit_id sx#15925] +[visit_exp i#98692] +[visit_id i#98692] +[visit_exp (`%`_sz{i#98699}(8), 8, `U`_sx)] +[visit_exp `%`_sz{i#98699}(8)] +[visit_exp i#98699] +[visit_id i#98699] +[visit_exp (8)] +[visit_exp 8] +[visit_exp 8] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[check_dims] I M#383 ao i#98756 i#98763 memarg#215 memidx#312 sx#15942 sz#1946 vectype?#30 x +dims \ I = M#383, ao, i#98756, i#98763, memarg#215, memidx#312, sx#15942, sz#1946, vectype?#30, x +[visit_exp `VLOAD`_instr{`vectype?#30`, memidx#312, memarg#215}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1946, M#383, sx#15942, i#98756}(`%`_sz{i#98763}(16), 4, `S`_sx)), x, ao)] +[visit_exp `vectype?#30`] +[visit_id vectype?#30] +[visit_exp memidx#312] +[visit_id memidx#312] +[visit_exp memarg#215] +[visit_id memarg#215] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1946, M#383, sx#15942, i#98756}(`%`_sz{i#98763}(16), 4, `S`_sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1946, M#383, sx#15942, i#98756}(`%`_sz{i#98763}(16), 4, `S`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#1946, M#383, sx#15942, i#98756}(`%`_sz{i#98763}(16), 4, `S`_sx)] +[visit_exp sz#1946] +[visit_id sz#1946] +[visit_exp M#383] +[visit_id M#383] +[visit_exp sx#15942] +[visit_id sx#15942] +[visit_exp i#98756] +[visit_id i#98756] +[visit_exp (`%`_sz{i#98763}(16), 4, `S`_sx)] +[visit_exp `%`_sz{i#98763}(16)] +[visit_exp i#98763] +[visit_id i#98763] +[visit_exp (16)] +[visit_exp 16] +[visit_exp 4] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[check_dims] I M#400 ao i#98820 i#98827 memarg#217 memidx#314 sx#15959 sz#1993 vectype?#31 x +dims \ I = M#400, ao, i#98820, i#98827, memarg#217, memidx#314, sx#15959, sz#1993, vectype?#31, x +[visit_exp `VLOAD`_instr{`vectype?#31`, memidx#314, memarg#217}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1993, M#400, sx#15959, i#98820}(`%`_sz{i#98827}(16), 4, `U`_sx)), x, ao)] +[visit_exp `vectype?#31`] +[visit_id vectype?#31] +[visit_exp memidx#314] +[visit_id memidx#314] +[visit_exp memarg#217] +[visit_id memarg#217] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1993, M#400, sx#15959, i#98820}(`%`_sz{i#98827}(16), 4, `U`_sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1993, M#400, sx#15959, i#98820}(`%`_sz{i#98827}(16), 4, `U`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#1993, M#400, sx#15959, i#98820}(`%`_sz{i#98827}(16), 4, `U`_sx)] +[visit_exp sz#1993] +[visit_id sz#1993] +[visit_exp M#400] +[visit_id M#400] +[visit_exp sx#15959] +[visit_id sx#15959] +[visit_exp i#98820] +[visit_id i#98820] +[visit_exp (`%`_sz{i#98827}(16), 4, `U`_sx)] +[visit_exp `%`_sz{i#98827}(16)] +[visit_exp i#98827] +[visit_id i#98827] +[visit_exp (16)] +[visit_exp 16] +[visit_exp 4] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[check_dims] I M#417 ao i#98884 i#98891 memarg#219 memidx#316 sx#15976 sz#2040 vectype?#32 x +dims \ I = M#417, ao, i#98884, i#98891, memarg#219, memidx#316, sx#15976, sz#2040, vectype?#32, x +[visit_exp `VLOAD`_instr{`vectype?#32`, memidx#316, memarg#219}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#2040, M#417, sx#15976, i#98884}(`%`_sz{i#98891}(32), 2, `S`_sx)), x, ao)] +[visit_exp `vectype?#32`] +[visit_id vectype?#32] +[visit_exp memidx#316] +[visit_id memidx#316] +[visit_exp memarg#219] +[visit_id memarg#219] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#2040, M#417, sx#15976, i#98884}(`%`_sz{i#98891}(32), 2, `S`_sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#2040, M#417, sx#15976, i#98884}(`%`_sz{i#98891}(32), 2, `S`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#2040, M#417, sx#15976, i#98884}(`%`_sz{i#98891}(32), 2, `S`_sx)] +[visit_exp sz#2040] +[visit_id sz#2040] +[visit_exp M#417] +[visit_id M#417] +[visit_exp sx#15976] +[visit_id sx#15976] +[visit_exp i#98884] +[visit_id i#98884] +[visit_exp (`%`_sz{i#98891}(32), 2, `S`_sx)] +[visit_exp `%`_sz{i#98891}(32)] +[visit_exp i#98891] +[visit_id i#98891] +[visit_exp (32)] +[visit_exp 32] +[visit_exp 2] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[check_dims] I M#434 ao i#98948 i#98955 memarg#221 memidx#318 sx#15993 sz#2087 vectype?#33 x +dims \ I = M#434, ao, i#98948, i#98955, memarg#221, memidx#318, sx#15993, sz#2087, vectype?#33, x +[visit_exp `VLOAD`_instr{`vectype?#33`, memidx#318, memarg#221}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#2087, M#434, sx#15993, i#98948}(`%`_sz{i#98955}(32), 2, `U`_sx)), x, ao)] +[visit_exp `vectype?#33`] +[visit_id vectype?#33] +[visit_exp memidx#318] +[visit_id memidx#318] +[visit_exp memarg#221] +[visit_id memarg#221] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#2087, M#434, sx#15993, i#98948}(`%`_sz{i#98955}(32), 2, `U`_sx)), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#2087, M#434, sx#15993, i#98948}(`%`_sz{i#98955}(32), 2, `U`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_{sz#2087, M#434, sx#15993, i#98948}(`%`_sz{i#98955}(32), 2, `U`_sx)] +[visit_exp sz#2087] +[visit_id sz#2087] +[visit_exp M#434] +[visit_id M#434] +[visit_exp sx#15993] +[visit_id sx#15993] +[visit_exp i#98948] +[visit_id i#98948] +[visit_exp (`%`_sz{i#98955}(32), 2, `U`_sx)] +[visit_exp `%`_sz{i#98955}(32)] +[visit_exp i#98955] +[visit_id i#98955] +[visit_exp (32)] +[visit_exp 32] +[visit_exp 2] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[check_dims] I ao i#99018 memarg#223 memidx#320 sz#2134 vectype?#34 x +dims \ I = ao, i#99018, memarg#223, memidx#320, sz#2134, vectype?#34, x +[visit_exp `VLOAD`_instr{`vectype?#34`, memidx#320, memarg#223}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2134}(`%`_sz{i#99018}(8))), x, ao)] +[visit_exp `vectype?#34`] +[visit_id vectype?#34] +[visit_exp memidx#320] +[visit_id memidx#320] +[visit_exp memarg#223] +[visit_id memarg#223] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2134}(`%`_sz{i#99018}(8))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SPLAT`_vloadop_{sz#2134}(`%`_sz{i#99018}(8)))] +[visit_exp `SPLAT`_vloadop_{sz#2134}(`%`_sz{i#99018}(8))] +[visit_exp sz#2134] +[visit_id sz#2134] +[visit_exp (`%`_sz{i#99018}(8))] +[visit_exp `%`_sz{i#99018}(8)] +[visit_exp i#99018] +[visit_id i#99018] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 1] +[check_dims] I ao i#99081 memarg#225 memidx#322 sz#2181 vectype?#35 x +dims \ I = ao, i#99081, memarg#225, memidx#322, sz#2181, vectype?#35, x +[visit_exp `VLOAD`_instr{`vectype?#35`, memidx#322, memarg#225}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2181}(`%`_sz{i#99081}(16))), x, ao)] +[visit_exp `vectype?#35`] +[visit_id vectype?#35] +[visit_exp memidx#322] +[visit_id memidx#322] +[visit_exp memarg#225] +[visit_id memarg#225] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2181}(`%`_sz{i#99081}(16))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SPLAT`_vloadop_{sz#2181}(`%`_sz{i#99081}(16)))] +[visit_exp `SPLAT`_vloadop_{sz#2181}(`%`_sz{i#99081}(16))] +[visit_exp sz#2181] +[visit_id sz#2181] +[visit_exp (`%`_sz{i#99081}(16))] +[visit_exp `%`_sz{i#99081}(16)] +[visit_exp i#99081] +[visit_id i#99081] +[visit_exp (16)] +[visit_exp 16] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 2] +[check_dims] I ao i#99144 memarg#227 memidx#324 sz#2228 vectype?#36 x +dims \ I = ao, i#99144, memarg#227, memidx#324, sz#2228, vectype?#36, x +[visit_exp `VLOAD`_instr{`vectype?#36`, memidx#324, memarg#227}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2228}(`%`_sz{i#99144}(32))), x, ao)] +[visit_exp `vectype?#36`] +[visit_id vectype?#36] +[visit_exp memidx#324] +[visit_id memidx#324] +[visit_exp memarg#227] +[visit_id memarg#227] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2228}(`%`_sz{i#99144}(32))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SPLAT`_vloadop_{sz#2228}(`%`_sz{i#99144}(32)))] +[visit_exp `SPLAT`_vloadop_{sz#2228}(`%`_sz{i#99144}(32))] +[visit_exp sz#2228] +[visit_id sz#2228] +[visit_exp (`%`_sz{i#99144}(32))] +[visit_exp `%`_sz{i#99144}(32)] +[visit_exp i#99144] +[visit_id i#99144] +[visit_exp (32)] +[visit_exp 32] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 4] +[check_dims] I ao i#99207 memarg#229 memidx#326 sz#2275 vectype?#37 x +dims \ I = ao, i#99207, memarg#229, memidx#326, sz#2275, vectype?#37, x +[visit_exp `VLOAD`_instr{`vectype?#37`, memidx#326, memarg#229}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2275}(`%`_sz{i#99207}(64))), x, ao)] +[visit_exp `vectype?#37`] +[visit_id vectype?#37] +[visit_exp memidx#326] +[visit_id memidx#326] +[visit_exp memarg#229] +[visit_id memarg#229] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2275}(`%`_sz{i#99207}(64))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`SPLAT`_vloadop_{sz#2275}(`%`_sz{i#99207}(64)))] +[visit_exp `SPLAT`_vloadop_{sz#2275}(`%`_sz{i#99207}(64))] +[visit_exp sz#2275] +[visit_id sz#2275] +[visit_exp (`%`_sz{i#99207}(64))] +[visit_exp `%`_sz{i#99207}(64)] +[visit_exp i#99207] +[visit_id i#99207] +[visit_exp (64)] +[visit_exp 64] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[check_dims] I ao i#99264 i#99271 memarg#231 memidx#328 sz#2322 vectype?#38 x +dims \ I = ao, i#99264, i#99271, memarg#231, memidx#328, sz#2322, vectype?#38, x +[visit_exp `VLOAD`_instr{`vectype?#38`, memidx#328, memarg#231}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#2322, i#99264}(`%`_sz{i#99271}(32))), x, ao)] +[visit_exp `vectype?#38`] +[visit_id vectype?#38] +[visit_exp memidx#328] +[visit_id memidx#328] +[visit_exp memarg#231] +[visit_id memarg#231] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#2322, i#99264}(`%`_sz{i#99271}(32))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`ZERO`_vloadop_{sz#2322, i#99264}(`%`_sz{i#99271}(32)))] +[visit_exp `ZERO`_vloadop_{sz#2322, i#99264}(`%`_sz{i#99271}(32))] +[visit_exp sz#2322] +[visit_id sz#2322] +[visit_exp i#99264] +[visit_id i#99264] +[visit_exp (`%`_sz{i#99271}(32))] +[visit_exp `%`_sz{i#99271}(32)] +[visit_exp i#99271] +[visit_id i#99271] +[visit_exp (32)] +[visit_exp 32] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 4] +[check_dims] I ao i#99328 i#99335 memarg#233 memidx#330 sz#2369 vectype?#39 x +dims \ I = ao, i#99328, i#99335, memarg#233, memidx#330, sz#2369, vectype?#39, x +[visit_exp `VLOAD`_instr{`vectype?#39`, memidx#330, memarg#233}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#2369, i#99328}(`%`_sz{i#99335}(64))), x, ao)] +[visit_exp `vectype?#39`] +[visit_id vectype?#39] +[visit_exp memidx#330] +[visit_id memidx#330] +[visit_exp memarg#233] +[visit_id memarg#233] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#2369, i#99328}(`%`_sz{i#99335}(64))), x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp ?(`ZERO`_vloadop_{sz#2369, i#99328}(`%`_sz{i#99335}(64)))] +[visit_exp `ZERO`_vloadop_{sz#2369, i#99328}(`%`_sz{i#99335}(64))] +[visit_exp sz#2369] +[visit_id sz#2369] +[visit_exp i#99328] +[visit_id i#99328] +[visit_exp (`%`_sz{i#99335}(64))] +[visit_exp `%`_sz{i#99335}(64)] +[visit_exp i#99335] +[visit_id i#99335] +[visit_exp (64)] +[visit_exp 64] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[check_dims] I ao i i#99391 laneidx#75 memarg#235 memidx#332 sz#2371 vectype#286 x +dims \ I = ao, i, i#99391, laneidx#75, memarg#235, memidx#332, sz#2371, vectype#286, x +[visit_exp `VLOAD_LANE`_instr{vectype#286, sz#2371, memidx#332, memarg#235, laneidx#75}(`V128`_vectype, `%`_sz{i#99391}(8), x, ao, i)] +[visit_exp vectype#286] +[visit_id vectype#286] +[visit_exp sz#2371] +[visit_id sz#2371] +[visit_exp memidx#332] +[visit_id memidx#332] +[visit_exp memarg#235] +[visit_id memarg#235] +[visit_exp laneidx#75] +[visit_id laneidx#75] +[visit_exp (`V128`_vectype, `%`_sz{i#99391}(8), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#99391}(8)] +[visit_exp i#99391] +[visit_id i#99391] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 1] +[visit_exp i] +[visit_id i] not free +[check_dims] I ao i i#99459 laneidx#77 memarg#237 memidx#334 sz#2373 vectype#288 x +dims \ I = ao, i, i#99459, laneidx#77, memarg#237, memidx#334, sz#2373, vectype#288, x +[visit_exp `VLOAD_LANE`_instr{vectype#288, sz#2373, memidx#334, memarg#237, laneidx#77}(`V128`_vectype, `%`_sz{i#99459}(16), x, ao, i)] +[visit_exp vectype#288] +[visit_id vectype#288] +[visit_exp sz#2373] +[visit_id sz#2373] +[visit_exp memidx#334] +[visit_id memidx#334] +[visit_exp memarg#237] +[visit_id memarg#237] +[visit_exp laneidx#77] +[visit_id laneidx#77] +[visit_exp (`V128`_vectype, `%`_sz{i#99459}(16), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#99459}(16)] +[visit_exp i#99459] +[visit_id i#99459] +[visit_exp (16)] +[visit_exp 16] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 2] +[visit_exp i] +[visit_id i] not free +[check_dims] I ao i i#99527 laneidx#79 memarg#239 memidx#336 sz#2375 vectype#290 x +dims \ I = ao, i, i#99527, laneidx#79, memarg#239, memidx#336, sz#2375, vectype#290, x +[visit_exp `VLOAD_LANE`_instr{vectype#290, sz#2375, memidx#336, memarg#239, laneidx#79}(`V128`_vectype, `%`_sz{i#99527}(32), x, ao, i)] +[visit_exp vectype#290] +[visit_id vectype#290] +[visit_exp sz#2375] +[visit_id sz#2375] +[visit_exp memidx#336] +[visit_id memidx#336] +[visit_exp memarg#239] +[visit_id memarg#239] +[visit_exp laneidx#79] +[visit_id laneidx#79] +[visit_exp (`V128`_vectype, `%`_sz{i#99527}(32), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#99527}(32)] +[visit_exp i#99527] +[visit_id i#99527] +[visit_exp (32)] +[visit_exp 32] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 4] +[visit_exp i] +[visit_id i] not free +[check_dims] I ao i i#99595 laneidx#81 memarg#241 memidx#338 sz#2377 vectype#292 x +dims \ I = ao, i, i#99595, laneidx#81, memarg#241, memidx#338, sz#2377, vectype#292, x +[visit_exp `VLOAD_LANE`_instr{vectype#292, sz#2377, memidx#338, memarg#241, laneidx#81}(`V128`_vectype, `%`_sz{i#99595}(64), x, ao, i)] +[visit_exp vectype#292] +[visit_id vectype#292] +[visit_exp sz#2377] +[visit_id sz#2377] +[visit_exp memidx#338] +[visit_id memidx#338] +[visit_exp memarg#241] +[visit_id memarg#241] +[visit_exp laneidx#81] +[visit_id laneidx#81] +[visit_exp (`V128`_vectype, `%`_sz{i#99595}(64), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#99595}(64)] +[visit_exp i#99595] +[visit_id i#99595] +[visit_exp (64)] +[visit_exp 64] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[visit_exp i] +[visit_id i] not free +[check_dims] I ao memarg#243 memidx#340 numtype?#58 x +dims \ I = ao, memarg#243, memidx#340, numtype?#58, x +[visit_exp `STORE`_instr{`numtype?#58`, memidx#340, memarg#243}(`I32`_numtype, ?(), x, ao)] +[visit_exp `numtype?#58`] +[visit_id numtype?#58] +[visit_exp memidx#340] +[visit_id memidx#340] +[visit_exp memarg#243] +[visit_id memarg#243] +[visit_exp (`I32`_numtype, ?(), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 4] +[check_dims] I ao memarg#245 memidx#342 numtype?#59 x +dims \ I = ao, memarg#245, memidx#342, numtype?#59, x +[visit_exp `STORE`_instr{`numtype?#59`, memidx#342, memarg#245}(`I64`_numtype, ?(), x, ao)] +[visit_exp `numtype?#59`] +[visit_id numtype?#59] +[visit_exp memidx#342] +[visit_id memidx#342] +[visit_exp memarg#245] +[visit_id memarg#245] +[visit_exp (`I64`_numtype, ?(), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[check_dims] I ao memarg#247 memidx#344 numtype?#60 x +dims \ I = ao, memarg#247, memidx#344, numtype?#60, x +[visit_exp `STORE`_instr{`numtype?#60`, memidx#344, memarg#247}(`F32`_numtype, ?(), x, ao)] +[visit_exp `numtype?#60`] +[visit_id numtype?#60] +[visit_exp memidx#344] +[visit_id memidx#344] +[visit_exp memarg#247] +[visit_id memarg#247] +[visit_exp (`F32`_numtype, ?(), x, ao)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 4] +[check_dims] I ao memarg#249 memidx#346 numtype?#61 x +dims \ I = ao, memarg#249, memidx#346, numtype?#61, x +[visit_exp `STORE`_instr{`numtype?#61`, memidx#346, memarg#249}(`F64`_numtype, ?(), x, ao)] +[visit_exp `numtype?#61`] +[visit_id numtype?#61] +[visit_exp memidx#346] +[visit_id memidx#346] +[visit_exp memarg#249] +[visit_id memarg#249] +[visit_exp (`F64`_numtype, ?(), x, ao)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[check_dims] I ao i#99803 i#99804 memarg#251 memidx#348 numtype?#62 sz#2390 x +dims \ I = ao, i#99803, i#99804, memarg#251, memidx#348, numtype?#62, sz#2390, x +[visit_exp `STORE`_instr{`numtype?#62`, memidx#348, memarg#251}(`I32`_numtype, ?(`%`_storeop_{sz#2390, i#99803}(`%`_sz{i#99804}(8))), x, ao)] +[visit_exp `numtype?#62`] +[visit_id numtype?#62] +[visit_exp memidx#348] +[visit_id memidx#348] +[visit_exp memarg#251] +[visit_id memarg#251] +[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#2390, i#99803}(`%`_sz{i#99804}(8))), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#2390, i#99803}(`%`_sz{i#99804}(8)))] +[visit_exp `%`_storeop_{sz#2390, i#99803}(`%`_sz{i#99804}(8))] +[visit_exp sz#2390] +[visit_id sz#2390] +[visit_exp i#99803] +[visit_id i#99803] +[visit_exp (`%`_sz{i#99804}(8))] +[visit_exp `%`_sz{i#99804}(8)] +[visit_exp i#99804] +[visit_id i#99804] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 1] +[check_dims] I ao i#99876 i#99877 memarg#253 memidx#350 numtype?#63 sz#2403 x +dims \ I = ao, i#99876, i#99877, memarg#253, memidx#350, numtype?#63, sz#2403, x +[visit_exp `STORE`_instr{`numtype?#63`, memidx#350, memarg#253}(`I32`_numtype, ?(`%`_storeop_{sz#2403, i#99876}(`%`_sz{i#99877}(16))), x, ao)] +[visit_exp `numtype?#63`] +[visit_id numtype?#63] +[visit_exp memidx#350] +[visit_id memidx#350] +[visit_exp memarg#253] +[visit_id memarg#253] +[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#2403, i#99876}(`%`_sz{i#99877}(16))), x, ao)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#2403, i#99876}(`%`_sz{i#99877}(16)))] +[visit_exp `%`_storeop_{sz#2403, i#99876}(`%`_sz{i#99877}(16))] +[visit_exp sz#2403] +[visit_id sz#2403] +[visit_exp i#99876] +[visit_id i#99876] +[visit_exp (`%`_sz{i#99877}(16))] +[visit_exp `%`_sz{i#99877}(16)] +[visit_exp i#99877] +[visit_id i#99877] +[visit_exp (16)] +[visit_exp 16] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 2] +[check_dims] I ao i#99949 i#99950 memarg#255 memidx#352 numtype?#64 sz#2416 x +dims \ I = ao, i#99949, i#99950, memarg#255, memidx#352, numtype?#64, sz#2416, x +[visit_exp `STORE`_instr{`numtype?#64`, memidx#352, memarg#255}(`I64`_numtype, ?(`%`_storeop_{sz#2416, i#99949}(`%`_sz{i#99950}(8))), x, ao)] +[visit_exp `numtype?#64`] +[visit_id numtype?#64] +[visit_exp memidx#352] +[visit_id memidx#352] +[visit_exp memarg#255] +[visit_id memarg#255] +[visit_exp (`I64`_numtype, ?(`%`_storeop_{sz#2416, i#99949}(`%`_sz{i#99950}(8))), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#2416, i#99949}(`%`_sz{i#99950}(8)))] +[visit_exp `%`_storeop_{sz#2416, i#99949}(`%`_sz{i#99950}(8))] +[visit_exp sz#2416] +[visit_id sz#2416] +[visit_exp i#99949] +[visit_id i#99949] +[visit_exp (`%`_sz{i#99950}(8))] +[visit_exp `%`_sz{i#99950}(8)] +[visit_exp i#99950] +[visit_id i#99950] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 1] +[check_dims] I ao i#100022 i#100023 memarg#257 memidx#354 numtype?#65 sz#2429 x +dims \ I = ao, i#100022, i#100023, memarg#257, memidx#354, numtype?#65, sz#2429, x +[visit_exp `STORE`_instr{`numtype?#65`, memidx#354, memarg#257}(`I64`_numtype, ?(`%`_storeop_{sz#2429, i#100022}(`%`_sz{i#100023}(16))), x, ao)] +[visit_exp `numtype?#65`] +[visit_id numtype?#65] +[visit_exp memidx#354] +[visit_id memidx#354] +[visit_exp memarg#257] +[visit_id memarg#257] +[visit_exp (`I64`_numtype, ?(`%`_storeop_{sz#2429, i#100022}(`%`_sz{i#100023}(16))), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#2429, i#100022}(`%`_sz{i#100023}(16)))] +[visit_exp `%`_storeop_{sz#2429, i#100022}(`%`_sz{i#100023}(16))] +[visit_exp sz#2429] +[visit_id sz#2429] +[visit_exp i#100022] +[visit_id i#100022] +[visit_exp (`%`_sz{i#100023}(16))] +[visit_exp `%`_sz{i#100023}(16)] +[visit_exp i#100023] +[visit_id i#100023] +[visit_exp (16)] +[visit_exp 16] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 2] +[check_dims] I ao i#100095 i#100096 memarg#259 memidx#356 numtype?#66 sz#2442 x +dims \ I = ao, i#100095, i#100096, memarg#259, memidx#356, numtype?#66, sz#2442, x +[visit_exp `STORE`_instr{`numtype?#66`, memidx#356, memarg#259}(`I64`_numtype, ?(`%`_storeop_{sz#2442, i#100095}(`%`_sz{i#100096}(32))), x, ao)] +[visit_exp `numtype?#66`] +[visit_id numtype?#66] +[visit_exp memidx#356] +[visit_id memidx#356] +[visit_exp memarg#259] +[visit_id memarg#259] +[visit_exp (`I64`_numtype, ?(`%`_storeop_{sz#2442, i#100095}(`%`_sz{i#100096}(32))), x, ao)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp ?(`%`_storeop_{sz#2442, i#100095}(`%`_sz{i#100096}(32)))] +[visit_exp `%`_storeop_{sz#2442, i#100095}(`%`_sz{i#100096}(32))] +[visit_exp sz#2442] +[visit_id sz#2442] +[visit_exp i#100095] +[visit_id i#100095] +[visit_exp (`%`_sz{i#100096}(32))] +[visit_exp `%`_sz{i#100096}(32)] +[visit_exp i#100096] +[visit_id i#100096] +[visit_exp (32)] +[visit_exp 32] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 4] +[check_dims] I ao memarg#261 memidx#358 vectype#294 x +dims \ I = ao, memarg#261, memidx#358, vectype#294, x +[visit_exp `VSTORE`_instr{vectype#294, memidx#358, memarg#261}(`V128`_vectype, x, ao)] +[visit_exp vectype#294] +[visit_id vectype#294] +[visit_exp memidx#358] +[visit_id memidx#358] +[visit_exp memarg#261] +[visit_id memarg#261] +[visit_exp (`V128`_vectype, x, ao)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 16] +[check_dims] I ao i i#100183 laneidx#83 memarg#263 memidx#360 sz#2444 vectype#296 x +dims \ I = ao, i, i#100183, laneidx#83, memarg#263, memidx#360, sz#2444, vectype#296, x +[visit_exp `VSTORE_LANE`_instr{vectype#296, sz#2444, memidx#360, memarg#263, laneidx#83}(`V128`_vectype, `%`_sz{i#100183}(8), x, ao, i)] +[visit_exp vectype#296] +[visit_id vectype#296] +[visit_exp sz#2444] +[visit_id sz#2444] +[visit_exp memidx#360] +[visit_id memidx#360] +[visit_exp memarg#263] +[visit_id memarg#263] +[visit_exp laneidx#83] +[visit_id laneidx#83] +[visit_exp (`V128`_vectype, `%`_sz{i#100183}(8), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#100183}(8)] +[visit_exp i#100183] +[visit_id i#100183] +[visit_exp (8)] +[visit_exp 8] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 1] +[visit_exp i] +[visit_id i] not free +[check_dims] I ao i i#100251 laneidx#85 memarg#265 memidx#362 sz#2446 vectype#298 x +dims \ I = ao, i, i#100251, laneidx#85, memarg#265, memidx#362, sz#2446, vectype#298, x +[visit_exp `VSTORE_LANE`_instr{vectype#298, sz#2446, memidx#362, memarg#265, laneidx#85}(`V128`_vectype, `%`_sz{i#100251}(16), x, ao, i)] +[visit_exp vectype#298] +[visit_id vectype#298] +[visit_exp sz#2446] +[visit_id sz#2446] +[visit_exp memidx#362] +[visit_id memidx#362] +[visit_exp memarg#265] +[visit_id memarg#265] +[visit_exp laneidx#85] +[visit_id laneidx#85] +[visit_exp (`V128`_vectype, `%`_sz{i#100251}(16), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#100251}(16)] +[visit_exp i#100251] +[visit_id i#100251] +[visit_exp (16)] +[visit_exp 16] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 2] +[visit_exp i] +[visit_id i] not free +[check_dims] I ao i i#100319 laneidx#87 memarg#267 memidx#364 sz#2448 vectype#300 x +dims \ I = ao, i, i#100319, laneidx#87, memarg#267, memidx#364, sz#2448, vectype#300, x +[visit_exp `VSTORE_LANE`_instr{vectype#300, sz#2448, memidx#364, memarg#267, laneidx#87}(`V128`_vectype, `%`_sz{i#100319}(32), x, ao, i)] +[visit_exp vectype#300] +[visit_id vectype#300] +[visit_exp sz#2448] +[visit_id sz#2448] +[visit_exp memidx#364] +[visit_id memidx#364] +[visit_exp memarg#267] +[visit_id memarg#267] +[visit_exp laneidx#87] +[visit_id laneidx#87] +[visit_exp (`V128`_vectype, `%`_sz{i#100319}(32), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#100319}(32)] +[visit_exp i#100319] +[visit_id i#100319] +[visit_exp (32)] +[visit_exp 32] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 4] +[visit_exp i] +[visit_id i] not free +[check_dims] I ao i i#100387 laneidx#89 memarg#269 memidx#366 sz#2450 vectype#302 x +dims \ I = ao, i, i#100387, laneidx#89, memarg#269, memidx#366, sz#2450, vectype#302, x +[visit_exp `VSTORE_LANE`_instr{vectype#302, sz#2450, memidx#366, memarg#269, laneidx#89}(`V128`_vectype, `%`_sz{i#100387}(64), x, ao, i)] +[visit_exp vectype#302] +[visit_id vectype#302] +[visit_exp sz#2450] +[visit_id sz#2450] +[visit_exp memidx#366] +[visit_id memidx#366] +[visit_exp memarg#269] +[visit_id memarg#269] +[visit_exp laneidx#89] +[visit_id laneidx#89] +[visit_exp (`V128`_vectype, `%`_sz{i#100387}(64), x, ao, i)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `%`_sz{i#100387}(64)] +[visit_exp i#100387] +[visit_id i#100387] +[visit_exp (64)] +[visit_exp 64] +[visit_exp x] +[visit_id x] +[visit_exp ao] +[visit_id ao] +[visit_exp i] +[visit_id i] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ao] +[visit_id ao] not free +[visit_exp 8] +[visit_exp i] +[visit_id i] not free +[check_dims] I memidx#368 x +dims \ I = memidx#368, x +[visit_exp `MEMORY.SIZE`_instr{memidx#368}(x)] +[visit_exp memidx#368] +[visit_id memidx#368] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I memidx#370 x +dims \ I = memidx#370, x +[visit_exp `MEMORY.GROW`_instr{memidx#370}(x)] +[visit_exp memidx#370] +[visit_id memidx#370] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I memidx#372 x +dims \ I = memidx#372, x +[visit_exp `MEMORY.FILL`_instr{memidx#372}(x)] +[visit_exp memidx#372] +[visit_id memidx#372] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I memidx#374 x_1 x_2 +dims \ I = memidx#374, x_1, x_2 +[visit_exp `MEMORY.COPY`_instr{memidx#374}(x_1, x_2)] +[visit_exp memidx#374] +[visit_id memidx#374] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I dataidx#55 memidx#377 x y +dims \ I = dataidx#55, memidx#377, x, y +[visit_exp `MEMORY.INIT`_instr{memidx#377, dataidx#55}(x, y)] +[visit_exp memidx#377] +[visit_id memidx#377] +[visit_exp dataidx#55] +[visit_id dataidx#55] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp y] +[visit_id y] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +[visit_exp 4] +[visit_exp 4] +[check_dims] I +[visit_exp 8] +[visit_exp 8] +[check_dims] I +[visit_exp 4] +[visit_exp 4] +[check_dims] I +[visit_exp 8] +[visit_exp 8] +[check_dims] I +[visit_exp 1] +[visit_exp 1] +[check_dims] I +[visit_exp 1] +[visit_exp 1] +[check_dims] I +[visit_exp 2] +[visit_exp 2] +[check_dims] I +[visit_exp 2] +[visit_exp 2] +[check_dims] I +[visit_exp 1] +[visit_exp 1] +[check_dims] I +[visit_exp 1] +[visit_exp 1] +[check_dims] I +[visit_exp 2] +[visit_exp 2] +[check_dims] I +[visit_exp 2] +[visit_exp 2] +[check_dims] I +[visit_exp 4] +[visit_exp 4] +[check_dims] I +[visit_exp 4] +[visit_exp 4] +[check_dims] I +[visit_exp 16] +[visit_exp 16] +[check_dims] I +[visit_exp 8] +[visit_exp 8] +[check_dims] I +[visit_exp 8] +[visit_exp 8] +[check_dims] I +[visit_exp 8] +[visit_exp 8] +[check_dims] I +[visit_exp 8] +[visit_exp 8] +[check_dims] I +[visit_exp 8] +[visit_exp 8] +[check_dims] I +[visit_exp 8] +[visit_exp 8] +[check_dims] I +[visit_exp 1] +[visit_exp 1] +[check_dims] I +[visit_exp 2] +[visit_exp 2] +[check_dims] I +[visit_exp 4] +[visit_exp 4] +[check_dims] I +[visit_exp 8] +[visit_exp 8] +[check_dims] I +[visit_exp 4] +[visit_exp 4] +[check_dims] I +[visit_exp 8] +[visit_exp 8] +[check_dims] I +[visit_exp 1] +[visit_exp 1] +[check_dims] I +[visit_exp 2] +[visit_exp 2] +[check_dims] I +[visit_exp 4] +[visit_exp 4] +[check_dims] I +[visit_exp 8] +[visit_exp 8] +[check_dims] I +[visit_exp 4] +[visit_exp 4] +[check_dims] I +[visit_exp 8] +[visit_exp 8] +[check_dims] I +[visit_exp 4] +[visit_exp 4] +[check_dims] I +[visit_exp 8] +[visit_exp 8] +[check_dims] I +[visit_exp 1] +[visit_exp 1] +[check_dims] I +[visit_exp 2] +[visit_exp 2] +[check_dims] I +[visit_exp 1] +[visit_exp 1] +[check_dims] I +[visit_exp 2] +[visit_exp 2] +[check_dims] I +[visit_exp 4] +[visit_exp 4] +[check_dims] I +[visit_exp 16] +[visit_exp 16] +[check_dims] I +[visit_exp 1] +[visit_exp 1] +[check_dims] I +[visit_exp 2] +[visit_exp 1] +[check_dims] I +[visit_exp 4] +[visit_exp 1] +[check_dims] I +[visit_exp 8] +[visit_exp 1] +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[check_dims] I +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dataidx#57 x +dims \ I = dataidx#57, x +[visit_exp `DATA.DROP`_instr{dataidx#57}(x)] +[visit_exp dataidx#57] +[visit_id dataidx#57] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I heaptype#1929 ht +dims \ I = heaptype#1929, ht +[visit_exp `REF.NULL`_instr{heaptype#1929}(ht)] +[visit_exp heaptype#1929] +[visit_id heaptype#1929] +[visit_exp (ht)] +[visit_exp ht] +[visit_id ht] +[visit_exp ht] +[visit_id ht] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I funcidx#3387 x +dims \ I = funcidx#3387, x +[visit_exp `REF.FUNC`_instr{funcidx#3387}(x)] +[visit_exp funcidx#3387] +[visit_id funcidx#3387] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I +dims \ I = +[visit_exp `REF.IS_NULL`_instr] +[visit_exp ()] +[check_dims] I +dims \ I = +[visit_exp `REF.AS_NON_NULL`_instr] +[visit_exp ()] +[check_dims] I +dims \ I = +[visit_exp `REF.EQ`_instr] +[visit_exp ()] +[check_dims] I reftype#4311 rt +dims \ I = reftype#4311, rt +[visit_exp `REF.TEST`_instr{reftype#4311}(rt)] +[visit_exp reftype#4311] +[visit_id reftype#4311] +[visit_exp (rt)] +[visit_exp rt] +[visit_id rt] +[visit_exp rt] +[visit_id rt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I reftype#4313 rt +dims \ I = reftype#4313, rt +[visit_exp `REF.CAST`_instr{reftype#4313}(rt)] +[visit_exp reftype#4313] +[visit_id reftype#4313] +[visit_exp (rt)] +[visit_exp rt] +[visit_id rt] +[visit_exp rt] +[visit_id rt] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +dims \ I = +[visit_exp `REF.I31`_instr] +[visit_exp ()] +[check_dims] I sx#16085 +dims \ I = sx#16085 +[visit_exp `I31.GET`_instr{sx#16085}(`S`_sx)] +[visit_exp sx#16085] +[visit_id sx#16085] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I sx#16087 +dims \ I = sx#16087 +[visit_exp `I31.GET`_instr{sx#16087}(`U`_sx)] +[visit_exp sx#16087] +[visit_id sx#16087] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I typeidx#2137 x +dims \ I = typeidx#2137, x +[visit_exp `STRUCT.NEW`_instr{typeidx#2137}(x)] +[visit_exp typeidx#2137] +[visit_id typeidx#2137] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I typeidx#2139 x +dims \ I = typeidx#2139, x +[visit_exp `STRUCT.NEW_DEFAULT`_instr{typeidx#2139}(x)] +[visit_exp typeidx#2139] +[visit_id typeidx#2139] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I i sx?#59 typeidx#2141 u32#48 x +dims \ I = i, sx?#59, typeidx#2141, u32#48, x +[visit_exp `STRUCT.GET`_instr{`sx?#59`, typeidx#2141, u32#48}(?(), x, i)] +[visit_exp `sx?#59`] +[visit_id sx?#59] +[visit_exp typeidx#2141] +[visit_id typeidx#2141] +[visit_exp u32#48] +[visit_id u32#48] +[visit_exp (?(), x, i)] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp i] +[visit_id i] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp x] +[visit_id x] not free +[check_dims] I i sx?#61 typeidx#2143 u32#50 x +dims \ I = i, sx?#61, typeidx#2143, u32#50, x +[visit_exp `STRUCT.GET`_instr{`sx?#61`, typeidx#2143, u32#50}(?(`S`_sx), x, i)] +[visit_exp `sx?#61`] +[visit_id sx?#61] +[visit_exp typeidx#2143] +[visit_id typeidx#2143] +[visit_exp u32#50] +[visit_id u32#50] +[visit_exp (?(`S`_sx), x, i)] +[visit_exp ?(`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp i] +[visit_id i] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp x] +[visit_id x] not free +[check_dims] I i sx?#63 typeidx#2145 u32#52 x +dims \ I = i, sx?#63, typeidx#2145, u32#52, x +[visit_exp `STRUCT.GET`_instr{`sx?#63`, typeidx#2145, u32#52}(?(`U`_sx), x, i)] +[visit_exp `sx?#63`] +[visit_id sx?#63] +[visit_exp typeidx#2145] +[visit_id typeidx#2145] +[visit_exp u32#52] +[visit_id u32#52] +[visit_exp (?(`U`_sx), x, i)] +[visit_exp ?(`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp i] +[visit_id i] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp x] +[visit_id x] not free +[check_dims] I i typeidx#2147 u32#54 x +dims \ I = i, typeidx#2147, u32#54, x +[visit_exp `STRUCT.SET`_instr{typeidx#2147, u32#54}(x, i)] +[visit_exp typeidx#2147] +[visit_id typeidx#2147] +[visit_exp u32#54] +[visit_id u32#54] +[visit_exp (x, i)] +[visit_exp x] +[visit_id x] +[visit_exp i] +[visit_id i] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp i] +[visit_id i] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp x] +[visit_id x] not free +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I typeidx#2149 x +dims \ I = typeidx#2149, x +[visit_exp `ARRAY.NEW`_instr{typeidx#2149}(x)] +[visit_exp typeidx#2149] +[visit_id typeidx#2149] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I typeidx#2151 x +dims \ I = typeidx#2151, x +[visit_exp `ARRAY.NEW_DEFAULT`_instr{typeidx#2151}(x)] +[visit_exp typeidx#2151] +[visit_id typeidx#2151] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I i#101266 i#101306 n typeidx#2153 u32#56 x +dims \ I = i#101266, i#101306, n, typeidx#2153, u32#56, x +[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#2153, u32#56}(x, `%`_u32{i#101306}(n))] +[visit_exp typeidx#2153] +[visit_id typeidx#2153] +[visit_exp u32#56] +[visit_id u32#56] +[visit_exp (x, `%`_u32{i#101306}(n))] +[visit_exp x] +[visit_id x] +[visit_exp `%`_u32{i#101306}(n)] +[visit_exp i#101306] +[visit_id i#101306] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `%`_u32{i#101266}(n)] +[visit_exp i#101266] +[visit_id i#101266] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[check_dims] I dataidx#59 typeidx#2155 x y +dims \ I = dataidx#59, typeidx#2155, x, y +[visit_exp `ARRAY.NEW_DATA`_instr{typeidx#2155, dataidx#59}(x, y)] +[visit_exp typeidx#2155] +[visit_id typeidx#2155] +[visit_exp dataidx#59] +[visit_id dataidx#59] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp y] +[visit_id y] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I elemidx#61 typeidx#2157 x y +dims \ I = elemidx#61, typeidx#2157, x, y +[visit_exp `ARRAY.NEW_ELEM`_instr{typeidx#2157, elemidx#61}(x, y)] +[visit_exp typeidx#2157] +[visit_id typeidx#2157] +[visit_exp elemidx#61] +[visit_id elemidx#61] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp y] +[visit_id y] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I sx?#65 typeidx#2159 x +dims \ I = sx?#65, typeidx#2159, x +[visit_exp `ARRAY.GET`_instr{`sx?#65`, typeidx#2159}(?(), x)] +[visit_exp `sx?#65`] +[visit_id sx?#65] +[visit_exp typeidx#2159] +[visit_id typeidx#2159] +[visit_exp (?(), x)] +[visit_exp ?()] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I sx?#67 typeidx#2161 x +dims \ I = sx?#67, typeidx#2161, x +[visit_exp `ARRAY.GET`_instr{`sx?#67`, typeidx#2161}(?(`S`_sx), x)] +[visit_exp `sx?#67`] +[visit_id sx?#67] +[visit_exp typeidx#2161] +[visit_id typeidx#2161] +[visit_exp (?(`S`_sx), x)] +[visit_exp ?(`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I sx?#69 typeidx#2163 x +dims \ I = sx?#69, typeidx#2163, x +[visit_exp `ARRAY.GET`_instr{`sx?#69`, typeidx#2163}(?(`U`_sx), x)] +[visit_exp `sx?#69`] +[visit_id sx?#69] +[visit_exp typeidx#2163] +[visit_id typeidx#2163] +[visit_exp (?(`U`_sx), x)] +[visit_exp ?(`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I typeidx#2165 x +dims \ I = typeidx#2165, x +[visit_exp `ARRAY.SET`_instr{typeidx#2165}(x)] +[visit_exp typeidx#2165] +[visit_id typeidx#2165] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I +dims \ I = +[visit_exp `ARRAY.LEN`_instr] +[visit_exp ()] +[check_dims] I typeidx#2167 x +dims \ I = typeidx#2167, x +[visit_exp `ARRAY.FILL`_instr{typeidx#2167}(x)] +[visit_exp typeidx#2167] +[visit_id typeidx#2167] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I typeidx#2169 x_1 x_2 +dims \ I = typeidx#2169, x_1, x_2 +[visit_exp `ARRAY.COPY`_instr{typeidx#2169}(x_1, x_2)] +[visit_exp typeidx#2169] +[visit_id typeidx#2169] +[visit_exp (x_1, x_2)] +[visit_exp x_1] +[visit_id x_1] +[visit_exp x_2] +[visit_id x_2] +[visit_exp x_1] +[visit_id x_1] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp x_2] +[visit_id x_2] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I dataidx#61 typeidx#2172 x y +dims \ I = dataidx#61, typeidx#2172, x, y +[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#2172, dataidx#61}(x, y)] +[visit_exp typeidx#2172] +[visit_id typeidx#2172] +[visit_exp dataidx#61] +[visit_id dataidx#61] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp y] +[visit_id y] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I elemidx#63 typeidx#2174 x y +dims \ I = elemidx#63, typeidx#2174, x, y +[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#2174, elemidx#63}(x, y)] +[visit_exp typeidx#2174] +[visit_id typeidx#2174] +[visit_exp elemidx#63] +[visit_id elemidx#63] +[visit_exp (x, y)] +[visit_exp x] +[visit_id x] +[visit_exp y] +[visit_id y] +[visit_exp x] +[visit_id x] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp y] +[visit_id y] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +dims \ I = +[visit_exp `ANY.CONVERT_EXTERN`_instr] +[visit_exp ()] +[check_dims] I +dims \ I = +[visit_exp `EXTERN.CONVERT_ANY`_instr] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I c numtype#891 +dims \ I = c, numtype#891 +[visit_exp `CONST`_instr{numtype#891}(`I32`_numtype, c)] +[visit_exp numtype#891] +[visit_id numtype#891] +[visit_exp (`I32`_numtype, c)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp c] +[visit_id c] not free +[check_dims] I c numtype#893 +dims \ I = c, numtype#893 +[visit_exp `CONST`_instr{numtype#893}(`I64`_numtype, c)] +[visit_exp numtype#893] +[visit_id numtype#893] +[visit_exp (`I64`_numtype, c)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp c] +[visit_id c] not free +[check_dims] I c numtype#895 +dims \ I = c, numtype#895 +[visit_exp `CONST`_instr{numtype#895}(`F32`_numtype, c)] +[visit_exp numtype#895] +[visit_id numtype#895] +[visit_exp (`F32`_numtype, c)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp c] +[visit_id c] not free +[check_dims] I c numtype#897 +dims \ I = c, numtype#897 +[visit_exp `CONST`_instr{numtype#897}(`F64`_numtype, c)] +[visit_exp numtype#897] +[visit_id numtype#897] +[visit_exp (`F64`_numtype, c)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp c] +[visit_id c] +[visit_exp c] +[visit_id c] not free +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#899 +dims \ I = numtype#899 +[visit_exp `TESTOP`_instr{numtype#899}(`I32`_numtype, `EQZ`_testop_)] +[visit_exp numtype#899] +[visit_id numtype#899] +[visit_exp (`I32`_numtype, `EQZ`_testop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `EQZ`_testop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#901 +dims \ I = numtype#901 +[visit_exp `TESTOP`_instr{numtype#901}(`I64`_numtype, `EQZ`_testop_)] +[visit_exp numtype#901] +[visit_id numtype#901] +[visit_exp (`I64`_numtype, `EQZ`_testop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `EQZ`_testop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#903 +dims \ I = numtype#903 +[visit_exp `RELOP`_instr{numtype#903}(`I32`_numtype, `EQ`_relop_)] +[visit_exp numtype#903] +[visit_id numtype#903] +[visit_exp (`I32`_numtype, `EQ`_relop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `EQ`_relop_] +[visit_exp ()] +[check_dims] I numtype#905 +dims \ I = numtype#905 +[visit_exp `RELOP`_instr{numtype#905}(`I32`_numtype, `NE`_relop_)] +[visit_exp numtype#905] +[visit_id numtype#905] +[visit_exp (`I32`_numtype, `NE`_relop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `NE`_relop_] +[visit_exp ()] +[check_dims] I numtype#907 sx#16331 +dims \ I = numtype#907, sx#16331 +[visit_exp `RELOP`_instr{numtype#907}(`I32`_numtype, `LT`_relop_{sx#16331}(`S`_sx))] +[visit_exp numtype#907] +[visit_id numtype#907] +[visit_exp (`I32`_numtype, `LT`_relop_{sx#16331}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `LT`_relop_{sx#16331}(`S`_sx)] +[visit_exp sx#16331] +[visit_id sx#16331] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#909 sx#16455 +dims \ I = numtype#909, sx#16455 +[visit_exp `RELOP`_instr{numtype#909}(`I32`_numtype, `LT`_relop_{sx#16455}(`U`_sx))] +[visit_exp numtype#909] +[visit_id numtype#909] +[visit_exp (`I32`_numtype, `LT`_relop_{sx#16455}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `LT`_relop_{sx#16455}(`U`_sx)] +[visit_exp sx#16455] +[visit_id sx#16455] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype#911 sx#16579 +dims \ I = numtype#911, sx#16579 +[visit_exp `RELOP`_instr{numtype#911}(`I32`_numtype, `GT`_relop_{sx#16579}(`S`_sx))] +[visit_exp numtype#911] +[visit_id numtype#911] +[visit_exp (`I32`_numtype, `GT`_relop_{sx#16579}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `GT`_relop_{sx#16579}(`S`_sx)] +[visit_exp sx#16579] +[visit_id sx#16579] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#913 sx#16703 +dims \ I = numtype#913, sx#16703 +[visit_exp `RELOP`_instr{numtype#913}(`I32`_numtype, `GT`_relop_{sx#16703}(`U`_sx))] +[visit_exp numtype#913] +[visit_id numtype#913] +[visit_exp (`I32`_numtype, `GT`_relop_{sx#16703}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `GT`_relop_{sx#16703}(`U`_sx)] +[visit_exp sx#16703] +[visit_id sx#16703] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype#915 sx#16827 +dims \ I = numtype#915, sx#16827 +[visit_exp `RELOP`_instr{numtype#915}(`I32`_numtype, `LE`_relop_{sx#16827}(`S`_sx))] +[visit_exp numtype#915] +[visit_id numtype#915] +[visit_exp (`I32`_numtype, `LE`_relop_{sx#16827}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `LE`_relop_{sx#16827}(`S`_sx)] +[visit_exp sx#16827] +[visit_id sx#16827] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#917 sx#16951 +dims \ I = numtype#917, sx#16951 +[visit_exp `RELOP`_instr{numtype#917}(`I32`_numtype, `LE`_relop_{sx#16951}(`U`_sx))] +[visit_exp numtype#917] +[visit_id numtype#917] +[visit_exp (`I32`_numtype, `LE`_relop_{sx#16951}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `LE`_relop_{sx#16951}(`U`_sx)] +[visit_exp sx#16951] +[visit_id sx#16951] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype#919 sx#17075 +dims \ I = numtype#919, sx#17075 +[visit_exp `RELOP`_instr{numtype#919}(`I32`_numtype, `GE`_relop_{sx#17075}(`S`_sx))] +[visit_exp numtype#919] +[visit_id numtype#919] +[visit_exp (`I32`_numtype, `GE`_relop_{sx#17075}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `GE`_relop_{sx#17075}(`S`_sx)] +[visit_exp sx#17075] +[visit_id sx#17075] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#921 sx#17199 +dims \ I = numtype#921, sx#17199 +[visit_exp `RELOP`_instr{numtype#921}(`I32`_numtype, `GE`_relop_{sx#17199}(`U`_sx))] +[visit_exp numtype#921] +[visit_id numtype#921] +[visit_exp (`I32`_numtype, `GE`_relop_{sx#17199}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `GE`_relop_{sx#17199}(`U`_sx)] +[visit_exp sx#17199] +[visit_id sx#17199] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#923 +dims \ I = numtype#923 +[visit_exp `RELOP`_instr{numtype#923}(`I64`_numtype, `EQ`_relop_)] +[visit_exp numtype#923] +[visit_id numtype#923] +[visit_exp (`I64`_numtype, `EQ`_relop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `EQ`_relop_] +[visit_exp ()] +[check_dims] I numtype#925 +dims \ I = numtype#925 +[visit_exp `RELOP`_instr{numtype#925}(`I64`_numtype, `NE`_relop_)] +[visit_exp numtype#925] +[visit_id numtype#925] +[visit_exp (`I64`_numtype, `NE`_relop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `NE`_relop_] +[visit_exp ()] +[check_dims] I numtype#927 sx#17443 +dims \ I = numtype#927, sx#17443 +[visit_exp `RELOP`_instr{numtype#927}(`I64`_numtype, `LT`_relop_{sx#17443}(`S`_sx))] +[visit_exp numtype#927] +[visit_id numtype#927] +[visit_exp (`I64`_numtype, `LT`_relop_{sx#17443}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `LT`_relop_{sx#17443}(`S`_sx)] +[visit_exp sx#17443] +[visit_id sx#17443] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#929 sx#17567 +dims \ I = numtype#929, sx#17567 +[visit_exp `RELOP`_instr{numtype#929}(`I64`_numtype, `LT`_relop_{sx#17567}(`U`_sx))] +[visit_exp numtype#929] +[visit_id numtype#929] +[visit_exp (`I64`_numtype, `LT`_relop_{sx#17567}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `LT`_relop_{sx#17567}(`U`_sx)] +[visit_exp sx#17567] +[visit_id sx#17567] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype#931 sx#17691 +dims \ I = numtype#931, sx#17691 +[visit_exp `RELOP`_instr{numtype#931}(`I64`_numtype, `GT`_relop_{sx#17691}(`S`_sx))] +[visit_exp numtype#931] +[visit_id numtype#931] +[visit_exp (`I64`_numtype, `GT`_relop_{sx#17691}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `GT`_relop_{sx#17691}(`S`_sx)] +[visit_exp sx#17691] +[visit_id sx#17691] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#933 sx#17815 +dims \ I = numtype#933, sx#17815 +[visit_exp `RELOP`_instr{numtype#933}(`I64`_numtype, `GT`_relop_{sx#17815}(`U`_sx))] +[visit_exp numtype#933] +[visit_id numtype#933] +[visit_exp (`I64`_numtype, `GT`_relop_{sx#17815}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `GT`_relop_{sx#17815}(`U`_sx)] +[visit_exp sx#17815] +[visit_id sx#17815] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype#935 sx#17939 +dims \ I = numtype#935, sx#17939 +[visit_exp `RELOP`_instr{numtype#935}(`I64`_numtype, `LE`_relop_{sx#17939}(`S`_sx))] +[visit_exp numtype#935] +[visit_id numtype#935] +[visit_exp (`I64`_numtype, `LE`_relop_{sx#17939}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `LE`_relop_{sx#17939}(`S`_sx)] +[visit_exp sx#17939] +[visit_id sx#17939] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#937 sx#18063 +dims \ I = numtype#937, sx#18063 +[visit_exp `RELOP`_instr{numtype#937}(`I64`_numtype, `LE`_relop_{sx#18063}(`U`_sx))] +[visit_exp numtype#937] +[visit_id numtype#937] +[visit_exp (`I64`_numtype, `LE`_relop_{sx#18063}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `LE`_relop_{sx#18063}(`U`_sx)] +[visit_exp sx#18063] +[visit_id sx#18063] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype#939 sx#18187 +dims \ I = numtype#939, sx#18187 +[visit_exp `RELOP`_instr{numtype#939}(`I64`_numtype, `GE`_relop_{sx#18187}(`S`_sx))] +[visit_exp numtype#939] +[visit_id numtype#939] +[visit_exp (`I64`_numtype, `GE`_relop_{sx#18187}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `GE`_relop_{sx#18187}(`S`_sx)] +[visit_exp sx#18187] +[visit_id sx#18187] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#941 sx#18311 +dims \ I = numtype#941, sx#18311 +[visit_exp `RELOP`_instr{numtype#941}(`I64`_numtype, `GE`_relop_{sx#18311}(`U`_sx))] +[visit_exp numtype#941] +[visit_id numtype#941] +[visit_exp (`I64`_numtype, `GE`_relop_{sx#18311}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `GE`_relop_{sx#18311}(`U`_sx)] +[visit_exp sx#18311] +[visit_id sx#18311] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#943 +dims \ I = numtype#943 +[visit_exp `RELOP`_instr{numtype#943}(`F32`_numtype, `EQ`_relop_)] +[visit_exp numtype#943] +[visit_id numtype#943] +[visit_exp (`F32`_numtype, `EQ`_relop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `EQ`_relop_] +[visit_exp ()] +[check_dims] I numtype#945 +dims \ I = numtype#945 +[visit_exp `RELOP`_instr{numtype#945}(`F32`_numtype, `NE`_relop_)] +[visit_exp numtype#945] +[visit_id numtype#945] +[visit_exp (`F32`_numtype, `NE`_relop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `NE`_relop_] +[visit_exp ()] +[check_dims] I numtype#947 +dims \ I = numtype#947 +[visit_exp `RELOP`_instr{numtype#947}(`F32`_numtype, `LT`_relop_)] +[visit_exp numtype#947] +[visit_id numtype#947] +[visit_exp (`F32`_numtype, `LT`_relop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `LT`_relop_] +[visit_exp ()] +[check_dims] I numtype#949 +dims \ I = numtype#949 +[visit_exp `RELOP`_instr{numtype#949}(`F32`_numtype, `GT`_relop_)] +[visit_exp numtype#949] +[visit_id numtype#949] +[visit_exp (`F32`_numtype, `GT`_relop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `GT`_relop_] +[visit_exp ()] +[check_dims] I numtype#951 +dims \ I = numtype#951 +[visit_exp `RELOP`_instr{numtype#951}(`F32`_numtype, `LE`_relop_)] +[visit_exp numtype#951] +[visit_id numtype#951] +[visit_exp (`F32`_numtype, `LE`_relop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `LE`_relop_] +[visit_exp ()] +[check_dims] I numtype#953 +dims \ I = numtype#953 +[visit_exp `RELOP`_instr{numtype#953}(`F32`_numtype, `GE`_relop_)] +[visit_exp numtype#953] +[visit_id numtype#953] +[visit_exp (`F32`_numtype, `GE`_relop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `GE`_relop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#955 +dims \ I = numtype#955 +[visit_exp `RELOP`_instr{numtype#955}(`F64`_numtype, `EQ`_relop_)] +[visit_exp numtype#955] +[visit_id numtype#955] +[visit_exp (`F64`_numtype, `EQ`_relop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `EQ`_relop_] +[visit_exp ()] +[check_dims] I numtype#957 +dims \ I = numtype#957 +[visit_exp `RELOP`_instr{numtype#957}(`F64`_numtype, `NE`_relop_)] +[visit_exp numtype#957] +[visit_id numtype#957] +[visit_exp (`F64`_numtype, `NE`_relop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `NE`_relop_] +[visit_exp ()] +[check_dims] I numtype#959 +dims \ I = numtype#959 +[visit_exp `RELOP`_instr{numtype#959}(`F64`_numtype, `LT`_relop_)] +[visit_exp numtype#959] +[visit_id numtype#959] +[visit_exp (`F64`_numtype, `LT`_relop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `LT`_relop_] +[visit_exp ()] +[check_dims] I numtype#961 +dims \ I = numtype#961 +[visit_exp `RELOP`_instr{numtype#961}(`F64`_numtype, `GT`_relop_)] +[visit_exp numtype#961] +[visit_id numtype#961] +[visit_exp (`F64`_numtype, `GT`_relop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `GT`_relop_] +[visit_exp ()] +[check_dims] I numtype#963 +dims \ I = numtype#963 +[visit_exp `RELOP`_instr{numtype#963}(`F64`_numtype, `LE`_relop_)] +[visit_exp numtype#963] +[visit_id numtype#963] +[visit_exp (`F64`_numtype, `LE`_relop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `LE`_relop_] +[visit_exp ()] +[check_dims] I numtype#965 +dims \ I = numtype#965 +[visit_exp `RELOP`_instr{numtype#965}(`F64`_numtype, `GE`_relop_)] +[visit_exp numtype#965] +[visit_id numtype#965] +[visit_exp (`F64`_numtype, `GE`_relop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `GE`_relop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#967 +dims \ I = numtype#967 +[visit_exp `UNOP`_instr{numtype#967}(`I32`_numtype, `CLZ`_unop_)] +[visit_exp numtype#967] +[visit_id numtype#967] +[visit_exp (`I32`_numtype, `CLZ`_unop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `CLZ`_unop_] +[visit_exp ()] +[check_dims] I numtype#969 +dims \ I = numtype#969 +[visit_exp `UNOP`_instr{numtype#969}(`I32`_numtype, `CTZ`_unop_)] +[visit_exp numtype#969] +[visit_id numtype#969] +[visit_exp (`I32`_numtype, `CTZ`_unop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `CTZ`_unop_] +[visit_exp ()] +[check_dims] I numtype#971 +dims \ I = numtype#971 +[visit_exp `UNOP`_instr{numtype#971}(`I32`_numtype, `POPCNT`_unop_)] +[visit_exp numtype#971] +[visit_id numtype#971] +[visit_exp (`I32`_numtype, `POPCNT`_unop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `POPCNT`_unop_] +[visit_exp ()] +[check_dims] I i#101930 i#101937 numtype#973 sz#2529 +dims \ I = i#101930, i#101937, numtype#973, sz#2529 +[visit_exp `UNOP`_instr{numtype#973}(`I32`_numtype, `EXTEND`_unop_{sz#2529, i#101930}(`%`_sz{i#101937}(8)))] +[visit_exp numtype#973] +[visit_id numtype#973] +[visit_exp (`I32`_numtype, `EXTEND`_unop_{sz#2529, i#101930}(`%`_sz{i#101937}(8)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_unop_{sz#2529, i#101930}(`%`_sz{i#101937}(8))] +[visit_exp sz#2529] +[visit_id sz#2529] +[visit_exp i#101930] +[visit_id i#101930] +[visit_exp (`%`_sz{i#101937}(8))] +[visit_exp `%`_sz{i#101937}(8)] +[visit_exp i#101937] +[visit_id i#101937] +[visit_exp (8)] +[visit_exp 8] +[check_dims] I i#101946 i#101953 numtype#975 sz#2563 +dims \ I = i#101946, i#101953, numtype#975, sz#2563 +[visit_exp `UNOP`_instr{numtype#975}(`I32`_numtype, `EXTEND`_unop_{sz#2563, i#101946}(`%`_sz{i#101953}(16)))] +[visit_exp numtype#975] +[visit_id numtype#975] +[visit_exp (`I32`_numtype, `EXTEND`_unop_{sz#2563, i#101946}(`%`_sz{i#101953}(16)))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_unop_{sz#2563, i#101946}(`%`_sz{i#101953}(16))] +[visit_exp sz#2563] +[visit_id sz#2563] +[visit_exp i#101946] +[visit_id i#101946] +[visit_exp (`%`_sz{i#101953}(16))] +[visit_exp `%`_sz{i#101953}(16)] +[visit_exp i#101953] +[visit_id i#101953] +[visit_exp (16)] +[visit_exp 16] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#977 +dims \ I = numtype#977 +[visit_exp `UNOP`_instr{numtype#977}(`I64`_numtype, `CLZ`_unop_)] +[visit_exp numtype#977] +[visit_id numtype#977] +[visit_exp (`I64`_numtype, `CLZ`_unop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `CLZ`_unop_] +[visit_exp ()] +[check_dims] I numtype#979 +dims \ I = numtype#979 +[visit_exp `UNOP`_instr{numtype#979}(`I64`_numtype, `CTZ`_unop_)] +[visit_exp numtype#979] +[visit_id numtype#979] +[visit_exp (`I64`_numtype, `CTZ`_unop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `CTZ`_unop_] +[visit_exp ()] +[check_dims] I numtype#981 +dims \ I = numtype#981 +[visit_exp `UNOP`_instr{numtype#981}(`I64`_numtype, `POPCNT`_unop_)] +[visit_exp numtype#981] +[visit_id numtype#981] +[visit_exp (`I64`_numtype, `POPCNT`_unop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `POPCNT`_unop_] +[visit_exp ()] +[check_dims] I i#101962 i#101969 numtype#983 sz#2642 +dims \ I = i#101962, i#101969, numtype#983, sz#2642 +[visit_exp `UNOP`_instr{numtype#983}(`I64`_numtype, `EXTEND`_unop_{sz#2642, i#101962}(`%`_sz{i#101969}(8)))] +[visit_exp numtype#983] +[visit_id numtype#983] +[visit_exp (`I64`_numtype, `EXTEND`_unop_{sz#2642, i#101962}(`%`_sz{i#101969}(8)))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_unop_{sz#2642, i#101962}(`%`_sz{i#101969}(8))] +[visit_exp sz#2642] +[visit_id sz#2642] +[visit_exp i#101962] +[visit_id i#101962] +[visit_exp (`%`_sz{i#101969}(8))] +[visit_exp `%`_sz{i#101969}(8)] +[visit_exp i#101969] +[visit_id i#101969] +[visit_exp (8)] +[visit_exp 8] +[check_dims] I i#101978 i#101985 numtype#985 sz#2676 +dims \ I = i#101978, i#101985, numtype#985, sz#2676 +[visit_exp `UNOP`_instr{numtype#985}(`I64`_numtype, `EXTEND`_unop_{sz#2676, i#101978}(`%`_sz{i#101985}(16)))] +[visit_exp numtype#985] +[visit_id numtype#985] +[visit_exp (`I64`_numtype, `EXTEND`_unop_{sz#2676, i#101978}(`%`_sz{i#101985}(16)))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_unop_{sz#2676, i#101978}(`%`_sz{i#101985}(16))] +[visit_exp sz#2676] +[visit_id sz#2676] +[visit_exp i#101978] +[visit_id i#101978] +[visit_exp (`%`_sz{i#101985}(16))] +[visit_exp `%`_sz{i#101985}(16)] +[visit_exp i#101985] +[visit_id i#101985] +[visit_exp (16)] +[visit_exp 16] +[check_dims] I i#101994 i#102001 numtype#987 sz#2710 +dims \ I = i#101994, i#102001, numtype#987, sz#2710 +[visit_exp `UNOP`_instr{numtype#987}(`I64`_numtype, `EXTEND`_unop_{sz#2710, i#101994}(`%`_sz{i#102001}(32)))] +[visit_exp numtype#987] +[visit_id numtype#987] +[visit_exp (`I64`_numtype, `EXTEND`_unop_{sz#2710, i#101994}(`%`_sz{i#102001}(32)))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_unop_{sz#2710, i#101994}(`%`_sz{i#102001}(32))] +[visit_exp sz#2710] +[visit_id sz#2710] +[visit_exp i#101994] +[visit_id i#101994] +[visit_exp (`%`_sz{i#102001}(32))] +[visit_exp `%`_sz{i#102001}(32)] +[visit_exp i#102001] +[visit_id i#102001] +[visit_exp (32)] +[visit_exp 32] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#989 +dims \ I = numtype#989 +[visit_exp `UNOP`_instr{numtype#989}(`F32`_numtype, `ABS`_unop_)] +[visit_exp numtype#989] +[visit_id numtype#989] +[visit_exp (`F32`_numtype, `ABS`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `ABS`_unop_] +[visit_exp ()] +[check_dims] I numtype#991 +dims \ I = numtype#991 +[visit_exp `UNOP`_instr{numtype#991}(`F32`_numtype, `NEG`_unop_)] +[visit_exp numtype#991] +[visit_id numtype#991] +[visit_exp (`F32`_numtype, `NEG`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `NEG`_unop_] +[visit_exp ()] +[check_dims] I numtype#993 +dims \ I = numtype#993 +[visit_exp `UNOP`_instr{numtype#993}(`F32`_numtype, `SQRT`_unop_)] +[visit_exp numtype#993] +[visit_id numtype#993] +[visit_exp (`F32`_numtype, `SQRT`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `SQRT`_unop_] +[visit_exp ()] +[check_dims] I numtype#995 +dims \ I = numtype#995 +[visit_exp `UNOP`_instr{numtype#995}(`F32`_numtype, `CEIL`_unop_)] +[visit_exp numtype#995] +[visit_id numtype#995] +[visit_exp (`F32`_numtype, `CEIL`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `CEIL`_unop_] +[visit_exp ()] +[check_dims] I numtype#997 +dims \ I = numtype#997 +[visit_exp `UNOP`_instr{numtype#997}(`F32`_numtype, `FLOOR`_unop_)] +[visit_exp numtype#997] +[visit_id numtype#997] +[visit_exp (`F32`_numtype, `FLOOR`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `FLOOR`_unop_] +[visit_exp ()] +[check_dims] I numtype#999 +dims \ I = numtype#999 +[visit_exp `UNOP`_instr{numtype#999}(`F32`_numtype, `TRUNC`_unop_)] +[visit_exp numtype#999] +[visit_id numtype#999] +[visit_exp (`F32`_numtype, `TRUNC`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_unop_] +[visit_exp ()] +[check_dims] I numtype#1001 +dims \ I = numtype#1001 +[visit_exp `UNOP`_instr{numtype#1001}(`F32`_numtype, `NEAREST`_unop_)] +[visit_exp numtype#1001] +[visit_id numtype#1001] +[visit_exp (`F32`_numtype, `NEAREST`_unop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `NEAREST`_unop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#1003 +dims \ I = numtype#1003 +[visit_exp `UNOP`_instr{numtype#1003}(`F64`_numtype, `ABS`_unop_)] +[visit_exp numtype#1003] +[visit_id numtype#1003] +[visit_exp (`F64`_numtype, `ABS`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `ABS`_unop_] +[visit_exp ()] +[check_dims] I numtype#1005 +dims \ I = numtype#1005 +[visit_exp `UNOP`_instr{numtype#1005}(`F64`_numtype, `NEG`_unop_)] +[visit_exp numtype#1005] +[visit_id numtype#1005] +[visit_exp (`F64`_numtype, `NEG`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `NEG`_unop_] +[visit_exp ()] +[check_dims] I numtype#1007 +dims \ I = numtype#1007 +[visit_exp `UNOP`_instr{numtype#1007}(`F64`_numtype, `SQRT`_unop_)] +[visit_exp numtype#1007] +[visit_id numtype#1007] +[visit_exp (`F64`_numtype, `SQRT`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `SQRT`_unop_] +[visit_exp ()] +[check_dims] I numtype#1009 +dims \ I = numtype#1009 +[visit_exp `UNOP`_instr{numtype#1009}(`F64`_numtype, `CEIL`_unop_)] +[visit_exp numtype#1009] +[visit_id numtype#1009] +[visit_exp (`F64`_numtype, `CEIL`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `CEIL`_unop_] +[visit_exp ()] +[check_dims] I numtype#1011 +dims \ I = numtype#1011 +[visit_exp `UNOP`_instr{numtype#1011}(`F64`_numtype, `FLOOR`_unop_)] +[visit_exp numtype#1011] +[visit_id numtype#1011] +[visit_exp (`F64`_numtype, `FLOOR`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `FLOOR`_unop_] +[visit_exp ()] +[check_dims] I numtype#1013 +dims \ I = numtype#1013 +[visit_exp `UNOP`_instr{numtype#1013}(`F64`_numtype, `TRUNC`_unop_)] +[visit_exp numtype#1013] +[visit_id numtype#1013] +[visit_exp (`F64`_numtype, `TRUNC`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_unop_] +[visit_exp ()] +[check_dims] I numtype#1015 +dims \ I = numtype#1015 +[visit_exp `UNOP`_instr{numtype#1015}(`F64`_numtype, `NEAREST`_unop_)] +[visit_exp numtype#1015] +[visit_id numtype#1015] +[visit_exp (`F64`_numtype, `NEAREST`_unop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `NEAREST`_unop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#1017 +dims \ I = numtype#1017 +[visit_exp `BINOP`_instr{numtype#1017}(`I32`_numtype, `ADD`_binop_)] +[visit_exp numtype#1017] +[visit_id numtype#1017] +[visit_exp (`I32`_numtype, `ADD`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `ADD`_binop_] +[visit_exp ()] +[check_dims] I numtype#1019 +dims \ I = numtype#1019 +[visit_exp `BINOP`_instr{numtype#1019}(`I32`_numtype, `SUB`_binop_)] +[visit_exp numtype#1019] +[visit_id numtype#1019] +[visit_exp (`I32`_numtype, `SUB`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `SUB`_binop_] +[visit_exp ()] +[check_dims] I numtype#1021 +dims \ I = numtype#1021 +[visit_exp `BINOP`_instr{numtype#1021}(`I32`_numtype, `MUL`_binop_)] +[visit_exp numtype#1021] +[visit_id numtype#1021] +[visit_exp (`I32`_numtype, `MUL`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `MUL`_binop_] +[visit_exp ()] +[check_dims] I numtype#1023 sx#18540 +dims \ I = numtype#1023, sx#18540 +[visit_exp `BINOP`_instr{numtype#1023}(`I32`_numtype, `DIV`_binop_{sx#18540}(`S`_sx))] +[visit_exp numtype#1023] +[visit_id numtype#1023] +[visit_exp (`I32`_numtype, `DIV`_binop_{sx#18540}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `DIV`_binop_{sx#18540}(`S`_sx)] +[visit_exp sx#18540] +[visit_id sx#18540] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#1025 sx#18634 +dims \ I = numtype#1025, sx#18634 +[visit_exp `BINOP`_instr{numtype#1025}(`I32`_numtype, `DIV`_binop_{sx#18634}(`U`_sx))] +[visit_exp numtype#1025] +[visit_id numtype#1025] +[visit_exp (`I32`_numtype, `DIV`_binop_{sx#18634}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `DIV`_binop_{sx#18634}(`U`_sx)] +[visit_exp sx#18634] +[visit_id sx#18634] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype#1027 sx#18728 +dims \ I = numtype#1027, sx#18728 +[visit_exp `BINOP`_instr{numtype#1027}(`I32`_numtype, `REM`_binop_{sx#18728}(`S`_sx))] +[visit_exp numtype#1027] +[visit_id numtype#1027] +[visit_exp (`I32`_numtype, `REM`_binop_{sx#18728}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `REM`_binop_{sx#18728}(`S`_sx)] +[visit_exp sx#18728] +[visit_id sx#18728] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#1029 sx#18822 +dims \ I = numtype#1029, sx#18822 +[visit_exp `BINOP`_instr{numtype#1029}(`I32`_numtype, `REM`_binop_{sx#18822}(`U`_sx))] +[visit_exp numtype#1029] +[visit_id numtype#1029] +[visit_exp (`I32`_numtype, `REM`_binop_{sx#18822}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `REM`_binop_{sx#18822}(`U`_sx)] +[visit_exp sx#18822] +[visit_id sx#18822] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype#1031 +dims \ I = numtype#1031 +[visit_exp `BINOP`_instr{numtype#1031}(`I32`_numtype, `AND`_binop_)] +[visit_exp numtype#1031] +[visit_id numtype#1031] +[visit_exp (`I32`_numtype, `AND`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `AND`_binop_] +[visit_exp ()] +[check_dims] I numtype#1033 +dims \ I = numtype#1033 +[visit_exp `BINOP`_instr{numtype#1033}(`I32`_numtype, `OR`_binop_)] +[visit_exp numtype#1033] +[visit_id numtype#1033] +[visit_exp (`I32`_numtype, `OR`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `OR`_binop_] +[visit_exp ()] +[check_dims] I numtype#1035 +dims \ I = numtype#1035 +[visit_exp `BINOP`_instr{numtype#1035}(`I32`_numtype, `XOR`_binop_)] +[visit_exp numtype#1035] +[visit_id numtype#1035] +[visit_exp (`I32`_numtype, `XOR`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `XOR`_binop_] +[visit_exp ()] +[check_dims] I numtype#1037 +dims \ I = numtype#1037 +[visit_exp `BINOP`_instr{numtype#1037}(`I32`_numtype, `SHL`_binop_)] +[visit_exp numtype#1037] +[visit_id numtype#1037] +[visit_exp (`I32`_numtype, `SHL`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `SHL`_binop_] +[visit_exp ()] +[check_dims] I numtype#1039 sx#19096 +dims \ I = numtype#1039, sx#19096 +[visit_exp `BINOP`_instr{numtype#1039}(`I32`_numtype, `SHR`_binop_{sx#19096}(`S`_sx))] +[visit_exp numtype#1039] +[visit_id numtype#1039] +[visit_exp (`I32`_numtype, `SHR`_binop_{sx#19096}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `SHR`_binop_{sx#19096}(`S`_sx)] +[visit_exp sx#19096] +[visit_id sx#19096] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#1041 sx#19190 +dims \ I = numtype#1041, sx#19190 +[visit_exp `BINOP`_instr{numtype#1041}(`I32`_numtype, `SHR`_binop_{sx#19190}(`U`_sx))] +[visit_exp numtype#1041] +[visit_id numtype#1041] +[visit_exp (`I32`_numtype, `SHR`_binop_{sx#19190}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `SHR`_binop_{sx#19190}(`U`_sx)] +[visit_exp sx#19190] +[visit_id sx#19190] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype#1043 +dims \ I = numtype#1043 +[visit_exp `BINOP`_instr{numtype#1043}(`I32`_numtype, `ROTL`_binop_)] +[visit_exp numtype#1043] +[visit_id numtype#1043] +[visit_exp (`I32`_numtype, `ROTL`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `ROTL`_binop_] +[visit_exp ()] +[check_dims] I numtype#1045 +dims \ I = numtype#1045 +[visit_exp `BINOP`_instr{numtype#1045}(`I32`_numtype, `ROTR`_binop_)] +[visit_exp numtype#1045] +[visit_id numtype#1045] +[visit_exp (`I32`_numtype, `ROTR`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `ROTR`_binop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#1047 +dims \ I = numtype#1047 +[visit_exp `BINOP`_instr{numtype#1047}(`I64`_numtype, `ADD`_binop_)] +[visit_exp numtype#1047] +[visit_id numtype#1047] +[visit_exp (`I64`_numtype, `ADD`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `ADD`_binop_] +[visit_exp ()] +[check_dims] I numtype#1049 +dims \ I = numtype#1049 +[visit_exp `BINOP`_instr{numtype#1049}(`I64`_numtype, `SUB`_binop_)] +[visit_exp numtype#1049] +[visit_id numtype#1049] +[visit_exp (`I64`_numtype, `SUB`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `SUB`_binop_] +[visit_exp ()] +[check_dims] I numtype#1051 +dims \ I = numtype#1051 +[visit_exp `BINOP`_instr{numtype#1051}(`I64`_numtype, `MUL`_binop_)] +[visit_exp numtype#1051] +[visit_id numtype#1051] +[visit_exp (`I64`_numtype, `MUL`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `MUL`_binop_] +[visit_exp ()] +[check_dims] I numtype#1053 sx#19509 +dims \ I = numtype#1053, sx#19509 +[visit_exp `BINOP`_instr{numtype#1053}(`I64`_numtype, `DIV`_binop_{sx#19509}(`S`_sx))] +[visit_exp numtype#1053] +[visit_id numtype#1053] +[visit_exp (`I64`_numtype, `DIV`_binop_{sx#19509}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `DIV`_binop_{sx#19509}(`S`_sx)] +[visit_exp sx#19509] +[visit_id sx#19509] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#1055 sx#19603 +dims \ I = numtype#1055, sx#19603 +[visit_exp `BINOP`_instr{numtype#1055}(`I64`_numtype, `DIV`_binop_{sx#19603}(`U`_sx))] +[visit_exp numtype#1055] +[visit_id numtype#1055] +[visit_exp (`I64`_numtype, `DIV`_binop_{sx#19603}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `DIV`_binop_{sx#19603}(`U`_sx)] +[visit_exp sx#19603] +[visit_id sx#19603] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype#1057 sx#19697 +dims \ I = numtype#1057, sx#19697 +[visit_exp `BINOP`_instr{numtype#1057}(`I64`_numtype, `REM`_binop_{sx#19697}(`S`_sx))] +[visit_exp numtype#1057] +[visit_id numtype#1057] +[visit_exp (`I64`_numtype, `REM`_binop_{sx#19697}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `REM`_binop_{sx#19697}(`S`_sx)] +[visit_exp sx#19697] +[visit_id sx#19697] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#1059 sx#19791 +dims \ I = numtype#1059, sx#19791 +[visit_exp `BINOP`_instr{numtype#1059}(`I64`_numtype, `REM`_binop_{sx#19791}(`U`_sx))] +[visit_exp numtype#1059] +[visit_id numtype#1059] +[visit_exp (`I64`_numtype, `REM`_binop_{sx#19791}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `REM`_binop_{sx#19791}(`U`_sx)] +[visit_exp sx#19791] +[visit_id sx#19791] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype#1061 +dims \ I = numtype#1061 +[visit_exp `BINOP`_instr{numtype#1061}(`I64`_numtype, `AND`_binop_)] +[visit_exp numtype#1061] +[visit_id numtype#1061] +[visit_exp (`I64`_numtype, `AND`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `AND`_binop_] +[visit_exp ()] +[check_dims] I numtype#1063 +dims \ I = numtype#1063 +[visit_exp `BINOP`_instr{numtype#1063}(`I64`_numtype, `OR`_binop_)] +[visit_exp numtype#1063] +[visit_id numtype#1063] +[visit_exp (`I64`_numtype, `OR`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `OR`_binop_] +[visit_exp ()] +[check_dims] I numtype#1065 +dims \ I = numtype#1065 +[visit_exp `BINOP`_instr{numtype#1065}(`I64`_numtype, `XOR`_binop_)] +[visit_exp numtype#1065] +[visit_id numtype#1065] +[visit_exp (`I64`_numtype, `XOR`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `XOR`_binop_] +[visit_exp ()] +[check_dims] I numtype#1067 +dims \ I = numtype#1067 +[visit_exp `BINOP`_instr{numtype#1067}(`I64`_numtype, `SHL`_binop_)] +[visit_exp numtype#1067] +[visit_id numtype#1067] +[visit_exp (`I64`_numtype, `SHL`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `SHL`_binop_] +[visit_exp ()] +[check_dims] I numtype#1069 sx#20065 +dims \ I = numtype#1069, sx#20065 +[visit_exp `BINOP`_instr{numtype#1069}(`I64`_numtype, `SHR`_binop_{sx#20065}(`S`_sx))] +[visit_exp numtype#1069] +[visit_id numtype#1069] +[visit_exp (`I64`_numtype, `SHR`_binop_{sx#20065}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `SHR`_binop_{sx#20065}(`S`_sx)] +[visit_exp sx#20065] +[visit_id sx#20065] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype#1071 sx#20159 +dims \ I = numtype#1071, sx#20159 +[visit_exp `BINOP`_instr{numtype#1071}(`I64`_numtype, `SHR`_binop_{sx#20159}(`U`_sx))] +[visit_exp numtype#1071] +[visit_id numtype#1071] +[visit_exp (`I64`_numtype, `SHR`_binop_{sx#20159}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `SHR`_binop_{sx#20159}(`U`_sx)] +[visit_exp sx#20159] +[visit_id sx#20159] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype#1073 +dims \ I = numtype#1073 +[visit_exp `BINOP`_instr{numtype#1073}(`I64`_numtype, `ROTL`_binop_)] +[visit_exp numtype#1073] +[visit_id numtype#1073] +[visit_exp (`I64`_numtype, `ROTL`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `ROTL`_binop_] +[visit_exp ()] +[check_dims] I numtype#1075 +dims \ I = numtype#1075 +[visit_exp `BINOP`_instr{numtype#1075}(`I64`_numtype, `ROTR`_binop_)] +[visit_exp numtype#1075] +[visit_id numtype#1075] +[visit_exp (`I64`_numtype, `ROTR`_binop_)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `ROTR`_binop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#1077 +dims \ I = numtype#1077 +[visit_exp `BINOP`_instr{numtype#1077}(`F32`_numtype, `ADD`_binop_)] +[visit_exp numtype#1077] +[visit_id numtype#1077] +[visit_exp (`F32`_numtype, `ADD`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `ADD`_binop_] +[visit_exp ()] +[check_dims] I numtype#1079 +dims \ I = numtype#1079 +[visit_exp `BINOP`_instr{numtype#1079}(`F32`_numtype, `SUB`_binop_)] +[visit_exp numtype#1079] +[visit_id numtype#1079] +[visit_exp (`F32`_numtype, `SUB`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `SUB`_binop_] +[visit_exp ()] +[check_dims] I numtype#1081 +dims \ I = numtype#1081 +[visit_exp `BINOP`_instr{numtype#1081}(`F32`_numtype, `MUL`_binop_)] +[visit_exp numtype#1081] +[visit_id numtype#1081] +[visit_exp (`F32`_numtype, `MUL`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `MUL`_binop_] +[visit_exp ()] +[check_dims] I numtype#1083 +dims \ I = numtype#1083 +[visit_exp `BINOP`_instr{numtype#1083}(`F32`_numtype, `DIV`_binop_)] +[visit_exp numtype#1083] +[visit_id numtype#1083] +[visit_exp (`F32`_numtype, `DIV`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `DIV`_binop_] +[visit_exp ()] +[check_dims] I numtype#1085 +dims \ I = numtype#1085 +[visit_exp `BINOP`_instr{numtype#1085}(`F32`_numtype, `MIN`_binop_)] +[visit_exp numtype#1085] +[visit_id numtype#1085] +[visit_exp (`F32`_numtype, `MIN`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `MIN`_binop_] +[visit_exp ()] +[check_dims] I numtype#1087 +dims \ I = numtype#1087 +[visit_exp `BINOP`_instr{numtype#1087}(`F32`_numtype, `MAX`_binop_)] +[visit_exp numtype#1087] +[visit_id numtype#1087] +[visit_exp (`F32`_numtype, `MAX`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `MAX`_binop_] +[visit_exp ()] +[check_dims] I numtype#1089 +dims \ I = numtype#1089 +[visit_exp `BINOP`_instr{numtype#1089}(`F32`_numtype, `COPYSIGN`_binop_)] +[visit_exp numtype#1089] +[visit_id numtype#1089] +[visit_exp (`F32`_numtype, `COPYSIGN`_binop_)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `COPYSIGN`_binop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype#1091 +dims \ I = numtype#1091 +[visit_exp `BINOP`_instr{numtype#1091}(`F64`_numtype, `ADD`_binop_)] +[visit_exp numtype#1091] +[visit_id numtype#1091] +[visit_exp (`F64`_numtype, `ADD`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `ADD`_binop_] +[visit_exp ()] +[check_dims] I numtype#1093 +dims \ I = numtype#1093 +[visit_exp `BINOP`_instr{numtype#1093}(`F64`_numtype, `SUB`_binop_)] +[visit_exp numtype#1093] +[visit_id numtype#1093] +[visit_exp (`F64`_numtype, `SUB`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `SUB`_binop_] +[visit_exp ()] +[check_dims] I numtype#1095 +dims \ I = numtype#1095 +[visit_exp `BINOP`_instr{numtype#1095}(`F64`_numtype, `MUL`_binop_)] +[visit_exp numtype#1095] +[visit_id numtype#1095] +[visit_exp (`F64`_numtype, `MUL`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `MUL`_binop_] +[visit_exp ()] +[check_dims] I numtype#1097 +dims \ I = numtype#1097 +[visit_exp `BINOP`_instr{numtype#1097}(`F64`_numtype, `DIV`_binop_)] +[visit_exp numtype#1097] +[visit_id numtype#1097] +[visit_exp (`F64`_numtype, `DIV`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `DIV`_binop_] +[visit_exp ()] +[check_dims] I numtype#1099 +dims \ I = numtype#1099 +[visit_exp `BINOP`_instr{numtype#1099}(`F64`_numtype, `MIN`_binop_)] +[visit_exp numtype#1099] +[visit_id numtype#1099] +[visit_exp (`F64`_numtype, `MIN`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `MIN`_binop_] +[visit_exp ()] +[check_dims] I numtype#1101 +dims \ I = numtype#1101 +[visit_exp `BINOP`_instr{numtype#1101}(`F64`_numtype, `MAX`_binop_)] +[visit_exp numtype#1101] +[visit_id numtype#1101] +[visit_exp (`F64`_numtype, `MAX`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `MAX`_binop_] +[visit_exp ()] +[check_dims] I numtype#1103 +dims \ I = numtype#1103 +[visit_exp `BINOP`_instr{numtype#1103}(`F64`_numtype, `COPYSIGN`_binop_)] +[visit_exp numtype#1103] +[visit_id numtype#1103] +[visit_exp (`F64`_numtype, `COPYSIGN`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `COPYSIGN`_binop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype_1#75 numtype_2#75 +dims \ I = numtype_1#75, numtype_2#75 +[visit_exp `CVTOP`_instr{numtype_1#75, numtype_2#75}(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] +[visit_exp numtype_1#75] +[visit_id numtype_1#75] +[visit_exp numtype_2#75] +[visit_id numtype_2#75] +[visit_exp (`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `WRAP`_cvtop__] +[visit_exp ()] +[check_dims] I numtype_1#77 numtype_2#77 sx#20328 +dims \ I = numtype_1#77, numtype_2#77, sx#20328 +[visit_exp `CVTOP`_instr{numtype_1#77, numtype_2#77}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20328}(`S`_sx))] +[visit_exp numtype_1#77] +[visit_id numtype_1#77] +[visit_exp numtype_2#77] +[visit_id numtype_2#77] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20328}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#20328}(`S`_sx)] +[visit_exp sx#20328] +[visit_id sx#20328] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype_1#79 numtype_2#79 sx#20392 +dims \ I = numtype_1#79, numtype_2#79, sx#20392 +[visit_exp `CVTOP`_instr{numtype_1#79, numtype_2#79}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20392}(`U`_sx))] +[visit_exp numtype_1#79] +[visit_id numtype_1#79] +[visit_exp numtype_2#79] +[visit_id numtype_2#79] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20392}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#20392}(`U`_sx)] +[visit_exp sx#20392] +[visit_id sx#20392] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype_1#81 numtype_2#81 sx#20456 +dims \ I = numtype_1#81, numtype_2#81, sx#20456 +[visit_exp `CVTOP`_instr{numtype_1#81, numtype_2#81}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#20456}(`S`_sx))] +[visit_exp numtype_1#81] +[visit_id numtype_1#81] +[visit_exp numtype_2#81] +[visit_id numtype_2#81] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#20456}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#20456}(`S`_sx)] +[visit_exp sx#20456] +[visit_id sx#20456] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype_1#83 numtype_2#83 sx#20520 +dims \ I = numtype_1#83, numtype_2#83, sx#20520 +[visit_exp `CVTOP`_instr{numtype_1#83, numtype_2#83}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#20520}(`U`_sx))] +[visit_exp numtype_1#83] +[visit_id numtype_1#83] +[visit_exp numtype_2#83] +[visit_id numtype_2#83] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#20520}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#20520}(`U`_sx)] +[visit_exp sx#20520] +[visit_id sx#20520] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype_1#85 numtype_2#85 sx#20584 +dims \ I = numtype_1#85, numtype_2#85, sx#20584 +[visit_exp `CVTOP`_instr{numtype_1#85, numtype_2#85}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#20584}(`S`_sx))] +[visit_exp numtype_1#85] +[visit_id numtype_1#85] +[visit_exp numtype_2#85] +[visit_id numtype_2#85] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#20584}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#20584}(`S`_sx)] +[visit_exp sx#20584] +[visit_id sx#20584] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype_1#87 numtype_2#87 sx#20648 +dims \ I = numtype_1#87, numtype_2#87, sx#20648 +[visit_exp `CVTOP`_instr{numtype_1#87, numtype_2#87}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#20648}(`U`_sx))] +[visit_exp numtype_1#87] +[visit_id numtype_1#87] +[visit_exp numtype_2#87] +[visit_id numtype_2#87] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#20648}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#20648}(`U`_sx)] +[visit_exp sx#20648] +[visit_id sx#20648] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype_1#89 numtype_2#89 sx#20712 +dims \ I = numtype_1#89, numtype_2#89, sx#20712 +[visit_exp `CVTOP`_instr{numtype_1#89, numtype_2#89}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#20712}(`S`_sx))] +[visit_exp numtype_1#89] +[visit_id numtype_1#89] +[visit_exp numtype_2#89] +[visit_id numtype_2#89] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#20712}(`S`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#20712}(`S`_sx)] +[visit_exp sx#20712] +[visit_id sx#20712] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype_1#91 numtype_2#91 sx#20776 +dims \ I = numtype_1#91, numtype_2#91, sx#20776 +[visit_exp `CVTOP`_instr{numtype_1#91, numtype_2#91}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#20776}(`U`_sx))] +[visit_exp numtype_1#91] +[visit_id numtype_1#91] +[visit_exp numtype_2#91] +[visit_id numtype_2#91] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#20776}(`U`_sx))] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#20776}(`U`_sx)] +[visit_exp sx#20776] +[visit_id sx#20776] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype_1#93 numtype_2#93 sx#20810 +dims \ I = numtype_1#93, numtype_2#93, sx#20810 +[visit_exp `CVTOP`_instr{numtype_1#93, numtype_2#93}(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__{sx#20810}(`S`_sx))] +[visit_exp numtype_1#93] +[visit_id numtype_1#93] +[visit_exp numtype_2#93] +[visit_id numtype_2#93] +[visit_exp (`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__{sx#20810}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_cvtop__{sx#20810}(`S`_sx)] +[visit_exp sx#20810] +[visit_id sx#20810] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype_1#95 numtype_2#95 sx#20844 +dims \ I = numtype_1#95, numtype_2#95, sx#20844 +[visit_exp `CVTOP`_instr{numtype_1#95, numtype_2#95}(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__{sx#20844}(`U`_sx))] +[visit_exp numtype_1#95] +[visit_id numtype_1#95] +[visit_exp numtype_2#95] +[visit_id numtype_2#95] +[visit_exp (`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__{sx#20844}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `EXTEND`_cvtop__{sx#20844}(`U`_sx)] +[visit_exp sx#20844] +[visit_id sx#20844] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype_1#97 numtype_2#97 sx#20908 +dims \ I = numtype_1#97, numtype_2#97, sx#20908 +[visit_exp `CVTOP`_instr{numtype_1#97, numtype_2#97}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20908}(`S`_sx))] +[visit_exp numtype_1#97] +[visit_id numtype_1#97] +[visit_exp numtype_2#97] +[visit_id numtype_2#97] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20908}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#20908}(`S`_sx)] +[visit_exp sx#20908] +[visit_id sx#20908] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype_1#99 numtype_2#99 sx#20972 +dims \ I = numtype_1#99, numtype_2#99, sx#20972 +[visit_exp `CVTOP`_instr{numtype_1#99, numtype_2#99}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20972}(`U`_sx))] +[visit_exp numtype_1#99] +[visit_id numtype_1#99] +[visit_exp numtype_2#99] +[visit_id numtype_2#99] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20972}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#20972}(`U`_sx)] +[visit_exp sx#20972] +[visit_id sx#20972] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype_1#101 numtype_2#101 sx#21036 +dims \ I = numtype_1#101, numtype_2#101, sx#21036 +[visit_exp `CVTOP`_instr{numtype_1#101, numtype_2#101}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#21036}(`S`_sx))] +[visit_exp numtype_1#101] +[visit_id numtype_1#101] +[visit_exp numtype_2#101] +[visit_id numtype_2#101] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#21036}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#21036}(`S`_sx)] +[visit_exp sx#21036] +[visit_id sx#21036] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype_1#103 numtype_2#103 sx#21100 +dims \ I = numtype_1#103, numtype_2#103, sx#21100 +[visit_exp `CVTOP`_instr{numtype_1#103, numtype_2#103}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#21100}(`U`_sx))] +[visit_exp numtype_1#103] +[visit_id numtype_1#103] +[visit_exp numtype_2#103] +[visit_id numtype_2#103] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#21100}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC`_cvtop__{sx#21100}(`U`_sx)] +[visit_exp sx#21100] +[visit_id sx#21100] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype_1#105 numtype_2#105 sx#21164 +dims \ I = numtype_1#105, numtype_2#105, sx#21164 +[visit_exp `CVTOP`_instr{numtype_1#105, numtype_2#105}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#21164}(`S`_sx))] +[visit_exp numtype_1#105] +[visit_id numtype_1#105] +[visit_exp numtype_2#105] +[visit_id numtype_2#105] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#21164}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#21164}(`S`_sx)] +[visit_exp sx#21164] +[visit_id sx#21164] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype_1#107 numtype_2#107 sx#21228 +dims \ I = numtype_1#107, numtype_2#107, sx#21228 +[visit_exp `CVTOP`_instr{numtype_1#107, numtype_2#107}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#21228}(`U`_sx))] +[visit_exp numtype_1#107] +[visit_id numtype_1#107] +[visit_exp numtype_2#107] +[visit_id numtype_2#107] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#21228}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#21228}(`U`_sx)] +[visit_exp sx#21228] +[visit_id sx#21228] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype_1#109 numtype_2#109 sx#21292 +dims \ I = numtype_1#109, numtype_2#109, sx#21292 +[visit_exp `CVTOP`_instr{numtype_1#109, numtype_2#109}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#21292}(`S`_sx))] +[visit_exp numtype_1#109] +[visit_id numtype_1#109] +[visit_exp numtype_2#109] +[visit_id numtype_2#109] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#21292}(`S`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#21292}(`S`_sx)] +[visit_exp sx#21292] +[visit_id sx#21292] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype_1#111 numtype_2#111 sx#21356 +dims \ I = numtype_1#111, numtype_2#111, sx#21356 +[visit_exp `CVTOP`_instr{numtype_1#111, numtype_2#111}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#21356}(`U`_sx))] +[visit_exp numtype_1#111] +[visit_id numtype_1#111] +[visit_exp numtype_2#111] +[visit_id numtype_2#111] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#21356}(`U`_sx))] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `TRUNC_SAT`_cvtop__{sx#21356}(`U`_sx)] +[visit_exp sx#21356] +[visit_id sx#21356] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype_1#113 numtype_2#113 +dims \ I = numtype_1#113, numtype_2#113 +[visit_exp `CVTOP`_instr{numtype_1#113, numtype_2#113}(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] +[visit_exp numtype_1#113] +[visit_id numtype_1#113] +[visit_exp numtype_2#113] +[visit_id numtype_2#113] +[visit_exp (`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `DEMOTE`_cvtop__] +[visit_exp ()] +[check_dims] I numtype_1#115 numtype_2#115 sx#21390 +dims \ I = numtype_1#115, numtype_2#115, sx#21390 +[visit_exp `CVTOP`_instr{numtype_1#115, numtype_2#115}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21390}(`S`_sx))] +[visit_exp numtype_1#115] +[visit_id numtype_1#115] +[visit_exp numtype_2#115] +[visit_id numtype_2#115] +[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21390}(`S`_sx))] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#21390}(`S`_sx)] +[visit_exp sx#21390] +[visit_id sx#21390] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype_1#117 numtype_2#117 sx#21424 +dims \ I = numtype_1#117, numtype_2#117, sx#21424 +[visit_exp `CVTOP`_instr{numtype_1#117, numtype_2#117}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21424}(`U`_sx))] +[visit_exp numtype_1#117] +[visit_id numtype_1#117] +[visit_exp numtype_2#117] +[visit_id numtype_2#117] +[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21424}(`U`_sx))] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#21424}(`U`_sx)] +[visit_exp sx#21424] +[visit_id sx#21424] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype_1#119 numtype_2#119 sx#21458 +dims \ I = numtype_1#119, numtype_2#119, sx#21458 +[visit_exp `CVTOP`_instr{numtype_1#119, numtype_2#119}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21458}(`S`_sx))] +[visit_exp numtype_1#119] +[visit_id numtype_1#119] +[visit_exp numtype_2#119] +[visit_id numtype_2#119] +[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21458}(`S`_sx))] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#21458}(`S`_sx)] +[visit_exp sx#21458] +[visit_id sx#21458] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype_1#121 numtype_2#121 sx#21492 +dims \ I = numtype_1#121, numtype_2#121, sx#21492 +[visit_exp `CVTOP`_instr{numtype_1#121, numtype_2#121}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21492}(`U`_sx))] +[visit_exp numtype_1#121] +[visit_id numtype_1#121] +[visit_exp numtype_2#121] +[visit_id numtype_2#121] +[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21492}(`U`_sx))] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#21492}(`U`_sx)] +[visit_exp sx#21492] +[visit_id sx#21492] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype_1#123 numtype_2#123 +dims \ I = numtype_1#123, numtype_2#123 +[visit_exp `CVTOP`_instr{numtype_1#123, numtype_2#123}(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] +[visit_exp numtype_1#123] +[visit_id numtype_1#123] +[visit_exp numtype_2#123] +[visit_id numtype_2#123] +[visit_exp (`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `PROMOTE`_cvtop__] +[visit_exp ()] +[check_dims] I numtype_1#125 numtype_2#125 sx#21526 +dims \ I = numtype_1#125, numtype_2#125, sx#21526 +[visit_exp `CVTOP`_instr{numtype_1#125, numtype_2#125}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21526}(`S`_sx))] +[visit_exp numtype_1#125] +[visit_id numtype_1#125] +[visit_exp numtype_2#125] +[visit_id numtype_2#125] +[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21526}(`S`_sx))] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#21526}(`S`_sx)] +[visit_exp sx#21526] +[visit_id sx#21526] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype_1#127 numtype_2#127 sx#21560 +dims \ I = numtype_1#127, numtype_2#127, sx#21560 +[visit_exp `CVTOP`_instr{numtype_1#127, numtype_2#127}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21560}(`U`_sx))] +[visit_exp numtype_1#127] +[visit_id numtype_1#127] +[visit_exp numtype_2#127] +[visit_id numtype_2#127] +[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21560}(`U`_sx))] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#21560}(`U`_sx)] +[visit_exp sx#21560] +[visit_id sx#21560] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I numtype_1#129 numtype_2#129 sx#21594 +dims \ I = numtype_1#129, numtype_2#129, sx#21594 +[visit_exp `CVTOP`_instr{numtype_1#129, numtype_2#129}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21594}(`S`_sx))] +[visit_exp numtype_1#129] +[visit_id numtype_1#129] +[visit_exp numtype_2#129] +[visit_id numtype_2#129] +[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21594}(`S`_sx))] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#21594}(`S`_sx)] +[visit_exp sx#21594] +[visit_id sx#21594] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I numtype_1#131 numtype_2#131 sx#21628 +dims \ I = numtype_1#131, numtype_2#131, sx#21628 +[visit_exp `CVTOP`_instr{numtype_1#131, numtype_2#131}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21628}(`U`_sx))] +[visit_exp numtype_1#131] +[visit_id numtype_1#131] +[visit_exp numtype_2#131] +[visit_id numtype_2#131] +[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21628}(`U`_sx))] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `CONVERT`_cvtop__{sx#21628}(`U`_sx)] +[visit_exp sx#21628] +[visit_id sx#21628] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I numtype_1#133 numtype_2#133 +dims \ I = numtype_1#133, numtype_2#133 +[visit_exp `CVTOP`_instr{numtype_1#133, numtype_2#133}(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp numtype_1#133] +[visit_id numtype_1#133] +[visit_exp numtype_2#133] +[visit_id numtype_2#133] +[visit_exp (`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `REINTERPRET`_cvtop__] +[visit_exp ()] +[check_dims] I numtype_1#135 numtype_2#135 +dims \ I = numtype_1#135, numtype_2#135 +[visit_exp `CVTOP`_instr{numtype_1#135, numtype_2#135}(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp numtype_1#135] +[visit_id numtype_1#135] +[visit_exp numtype_2#135] +[visit_id numtype_2#135] +[visit_exp (`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `REINTERPRET`_cvtop__] +[visit_exp ()] +[check_dims] I numtype_1#137 numtype_2#137 +dims \ I = numtype_1#137, numtype_2#137 +[visit_exp `CVTOP`_instr{numtype_1#137, numtype_2#137}(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp numtype_1#137] +[visit_id numtype_1#137] +[visit_exp numtype_2#137] +[visit_id numtype_2#137] +[visit_exp (`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp `F32`_numtype] +[visit_exp ()] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `REINTERPRET`_cvtop__] +[visit_exp ()] +[check_dims] I numtype_1#139 numtype_2#139 +dims \ I = numtype_1#139, numtype_2#139 +[visit_exp `CVTOP`_instr{numtype_1#139, numtype_2#139}(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp numtype_1#139] +[visit_id numtype_1#139] +[visit_exp numtype_2#139] +[visit_id numtype_2#139] +[visit_exp (`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `I64`_numtype] +[visit_exp ()] +[visit_exp `REINTERPRET`_cvtop__] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I c vectype#304 +dims \ I = c, vectype#304 +[visit_exp `VCONST`_instr{vectype#304}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`})))] +[visit_exp vectype#304] +[visit_id vectype#304] +[visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`})))] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`}))] +[visit_exp 128] +[visit_exp $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`})] +[visit_exp $ibytes_(8, c)*{c <- `c*`}] +[scope_enter c] +[visit_exp $ibytes_(8, c)] +[visit_exp 8] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp 16] +[check_dims] I c vectype#306 +dims \ I = c, vectype#306 +[visit_exp `VCONST`_instr{vectype#306}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`})))] +[visit_exp vectype#306] +[visit_id vectype#306] +[visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`})))] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`}))] +[visit_exp 128] +[visit_exp $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`})] +[visit_exp $ibytes_(16, c)*{c <- `c*`}] +[scope_enter c] +[visit_exp $ibytes_(16, c)] +[visit_exp 16] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp 8] +[check_dims] I c vectype#308 +dims \ I = c, vectype#308 +[visit_exp `VCONST`_instr{vectype#308}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`})))] +[visit_exp vectype#308] +[visit_id vectype#308] +[visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`})))] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`}))] +[visit_exp 128] +[visit_exp $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`})] +[visit_exp $ibytes_(32, c)*{c <- `c*`}] +[scope_enter c] +[visit_exp $ibytes_(32, c)] +[visit_exp 32] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp 4] +[check_dims] I c vectype#310 +dims \ I = c, vectype#310 +[visit_exp `VCONST`_instr{vectype#310}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`})))] +[visit_exp vectype#310] +[visit_id vectype#310] +[visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`})))] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`}))] +[visit_exp 128] +[visit_exp $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`})] +[visit_exp $ibytes_(64, c)*{c <- `c*`}] +[scope_enter c] +[visit_exp $ibytes_(64, c)] +[visit_exp 64] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp 2] +[check_dims] I c vectype#312 +dims \ I = c, vectype#312 +[visit_exp `VCONST`_instr{vectype#312}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`})))] +[visit_exp vectype#312] +[visit_id vectype#312] +[visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`})))] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`}))] +[visit_exp 128] +[visit_exp $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`})] +[visit_exp $fbytes_(32, c)*{c <- `c*`}] +[scope_enter c] +[visit_exp $fbytes_(32, c)] +[visit_exp 32] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp 4] +[check_dims] I c vectype#314 +dims \ I = c, vectype#314 +[visit_exp `VCONST`_instr{vectype#314}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`})))] +[visit_exp vectype#314] +[visit_id vectype#314] +[visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`})))] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`}))] +[visit_exp 128] +[visit_exp $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`})] +[visit_exp $fbytes_(64, c)*{c <- `c*`}] +[scope_enter c] +[visit_exp $fbytes_(64, c)] +[visit_exp 64] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] no dims +[visit_id c*] +[visit_exp c*{c <- `c*`}] +[scope_enter c] +[visit_exp c] +[visit_id c] not free +[visit_id c] not free +[scope_exit c] +[visit_exp `c*`] +[visit_id c*] not free +[visit_id c*] no dims +[visit_exp 2] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I bshape#19 dim#22986 i i#103376 i#103380 i#103387 laneidx*#9 lanetype#22986 shape#3961 shape#3972 +dims \ I = bshape#19, dim#22986, i, i#103376, i#103380, i#103387, laneidx*#9, lanetype#22986, shape#3961, shape#3972 +[visit_exp `VSHUFFLE`_instr{bshape#19, `laneidx*#9`, i#103376, shape#3961}(`%`_bshape{shape#3972}(`%X%`_shape{lanetype#22986, dim#22986, i#103380}(`I8`_lanetype, `%`_dim{i#103387}(16))), i*{i <- `i*`})] +[visit_exp bshape#19] +[visit_id bshape#19] +[visit_exp `laneidx*#9`] +[visit_id laneidx*#9] +[visit_exp i#103376] +[visit_id i#103376] +[visit_exp shape#3961] +[visit_id shape#3961] +[visit_exp (`%`_bshape{shape#3972}(`%X%`_shape{lanetype#22986, dim#22986, i#103380}(`I8`_lanetype, `%`_dim{i#103387}(16))), i*{i <- `i*`})] +[visit_exp `%`_bshape{shape#3972}(`%X%`_shape{lanetype#22986, dim#22986, i#103380}(`I8`_lanetype, `%`_dim{i#103387}(16)))] +[visit_exp shape#3972] +[visit_id shape#3972] +[visit_exp (`%X%`_shape{lanetype#22986, dim#22986, i#103380}(`I8`_lanetype, `%`_dim{i#103387}(16)))] +[visit_exp `%X%`_shape{lanetype#22986, dim#22986, i#103380}(`I8`_lanetype, `%`_dim{i#103387}(16))] +[visit_exp lanetype#22986] +[visit_id lanetype#22986] +[visit_exp dim#22986] +[visit_id dim#22986] +[visit_exp i#103380] +[visit_id i#103380] +[visit_exp (`I8`_lanetype, `%`_dim{i#103387}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#103387}(16)] +[visit_exp i#103387] +[visit_id i#103387] +[visit_exp (16)] +[visit_exp 16] +[visit_exp i*{i <- `i*`}] +[scope_enter i] +[visit_exp i] +[visit_id i] not free +[visit_id i] not free +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] no dims +[visit_id i*] +[visit_exp i*{i <- `i*`}] +[scope_enter i] +[visit_exp i] +[visit_id i] not free +[visit_id i] not free +[scope_exit i] +[visit_exp `i*`] +[visit_id i*] not free +[visit_id i*] no dims +[visit_exp 16] +[check_dims] I bshape#21 dim#22998 i#103415 i#103422 lanetype#22998 shape#3984 +dims \ I = bshape#21, dim#22998, i#103415, i#103422, lanetype#22998, shape#3984 +[visit_exp `VSWIZZLOP`_instr{bshape#21}(`%`_bshape{shape#3984}(`%X%`_shape{lanetype#22998, dim#22998, i#103415}(`I8`_lanetype, `%`_dim{i#103422}(16))), `SWIZZLE`_vswizzlop_)] +[visit_exp bshape#21] +[visit_id bshape#21] +[visit_exp (`%`_bshape{shape#3984}(`%X%`_shape{lanetype#22998, dim#22998, i#103415}(`I8`_lanetype, `%`_dim{i#103422}(16))), `SWIZZLE`_vswizzlop_)] +[visit_exp `%`_bshape{shape#3984}(`%X%`_shape{lanetype#22998, dim#22998, i#103415}(`I8`_lanetype, `%`_dim{i#103422}(16)))] +[visit_exp shape#3984] +[visit_id shape#3984] +[visit_exp (`%X%`_shape{lanetype#22998, dim#22998, i#103415}(`I8`_lanetype, `%`_dim{i#103422}(16)))] +[visit_exp `%X%`_shape{lanetype#22998, dim#22998, i#103415}(`I8`_lanetype, `%`_dim{i#103422}(16))] +[visit_exp lanetype#22998] +[visit_id lanetype#22998] +[visit_exp dim#22998] +[visit_id dim#22998] +[visit_exp i#103415] +[visit_id i#103415] +[visit_exp (`I8`_lanetype, `%`_dim{i#103422}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#103422}(16)] +[visit_exp i#103422] +[visit_id i#103422] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SWIZZLE`_vswizzlop_] +[visit_exp ()] +[check_dims] I bshape#23 dim#23055 i#103502 i#103509 lanetype#23055 shape#4011 +dims \ I = bshape#23, dim#23055, i#103502, i#103509, lanetype#23055, shape#4011 +[visit_exp `VSWIZZLOP`_instr{bshape#23}(`%`_bshape{shape#4011}(`%X%`_shape{lanetype#23055, dim#23055, i#103502}(`I8`_lanetype, `%`_dim{i#103509}(16))), `RELAXED_SWIZZLE`_vswizzlop_)] +[visit_exp bshape#23] +[visit_id bshape#23] +[visit_exp (`%`_bshape{shape#4011}(`%X%`_shape{lanetype#23055, dim#23055, i#103502}(`I8`_lanetype, `%`_dim{i#103509}(16))), `RELAXED_SWIZZLE`_vswizzlop_)] +[visit_exp `%`_bshape{shape#4011}(`%X%`_shape{lanetype#23055, dim#23055, i#103502}(`I8`_lanetype, `%`_dim{i#103509}(16)))] +[visit_exp shape#4011] +[visit_id shape#4011] +[visit_exp (`%X%`_shape{lanetype#23055, dim#23055, i#103502}(`I8`_lanetype, `%`_dim{i#103509}(16)))] +[visit_exp `%X%`_shape{lanetype#23055, dim#23055, i#103502}(`I8`_lanetype, `%`_dim{i#103509}(16))] +[visit_exp lanetype#23055] +[visit_id lanetype#23055] +[visit_exp dim#23055] +[visit_id dim#23055] +[visit_exp i#103502] +[visit_id i#103502] +[visit_exp (`I8`_lanetype, `%`_dim{i#103509}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#103509}(16)] +[visit_exp i#103509] +[visit_id i#103509] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `RELAXED_SWIZZLE`_vswizzlop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#23112 i#103589 i#103596 lanetype#23112 shape#4028 +dims \ I = dim#23112, i#103589, i#103596, lanetype#23112, shape#4028 +[visit_exp `VSPLAT`_instr{shape#4028}(`%X%`_shape{lanetype#23112, dim#23112, i#103589}(`I8`_lanetype, `%`_dim{i#103596}(16)))] +[visit_exp shape#4028] +[visit_id shape#4028] +[visit_exp (`%X%`_shape{lanetype#23112, dim#23112, i#103589}(`I8`_lanetype, `%`_dim{i#103596}(16)))] +[visit_exp `%X%`_shape{lanetype#23112, dim#23112, i#103589}(`I8`_lanetype, `%`_dim{i#103596}(16))] +[visit_exp lanetype#23112] +[visit_id lanetype#23112] +[visit_exp dim#23112] +[visit_id dim#23112] +[visit_exp i#103589] +[visit_id i#103589] +[visit_exp (`I8`_lanetype, `%`_dim{i#103596}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#103596}(16)] +[visit_exp i#103596] +[visit_id i#103596] +[visit_exp (16)] +[visit_exp 16] +[check_dims] I dim#23124 i#103601 i#103608 lanetype#23124 shape#4030 +dims \ I = dim#23124, i#103601, i#103608, lanetype#23124, shape#4030 +[visit_exp `VSPLAT`_instr{shape#4030}(`%X%`_shape{lanetype#23124, dim#23124, i#103601}(`I16`_lanetype, `%`_dim{i#103608}(8)))] +[visit_exp shape#4030] +[visit_id shape#4030] +[visit_exp (`%X%`_shape{lanetype#23124, dim#23124, i#103601}(`I16`_lanetype, `%`_dim{i#103608}(8)))] +[visit_exp `%X%`_shape{lanetype#23124, dim#23124, i#103601}(`I16`_lanetype, `%`_dim{i#103608}(8))] +[visit_exp lanetype#23124] +[visit_id lanetype#23124] +[visit_exp dim#23124] +[visit_id dim#23124] +[visit_exp i#103601] +[visit_id i#103601] +[visit_exp (`I16`_lanetype, `%`_dim{i#103608}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#103608}(8)] +[visit_exp i#103608] +[visit_id i#103608] +[visit_exp (8)] +[visit_exp 8] +[check_dims] I dim#23136 i#103613 i#103620 lanetype#23136 shape#4032 +dims \ I = dim#23136, i#103613, i#103620, lanetype#23136, shape#4032 +[visit_exp `VSPLAT`_instr{shape#4032}(`%X%`_shape{lanetype#23136, dim#23136, i#103613}(`I32`_lanetype, `%`_dim{i#103620}(4)))] +[visit_exp shape#4032] +[visit_id shape#4032] +[visit_exp (`%X%`_shape{lanetype#23136, dim#23136, i#103613}(`I32`_lanetype, `%`_dim{i#103620}(4)))] +[visit_exp `%X%`_shape{lanetype#23136, dim#23136, i#103613}(`I32`_lanetype, `%`_dim{i#103620}(4))] +[visit_exp lanetype#23136] +[visit_id lanetype#23136] +[visit_exp dim#23136] +[visit_id dim#23136] +[visit_exp i#103613] +[visit_id i#103613] +[visit_exp (`I32`_lanetype, `%`_dim{i#103620}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#103620}(4)] +[visit_exp i#103620] +[visit_id i#103620] +[visit_exp (4)] +[visit_exp 4] +[check_dims] I dim#23148 i#103625 i#103632 lanetype#23148 shape#4034 +dims \ I = dim#23148, i#103625, i#103632, lanetype#23148, shape#4034 +[visit_exp `VSPLAT`_instr{shape#4034}(`%X%`_shape{lanetype#23148, dim#23148, i#103625}(`I64`_lanetype, `%`_dim{i#103632}(2)))] +[visit_exp shape#4034] +[visit_id shape#4034] +[visit_exp (`%X%`_shape{lanetype#23148, dim#23148, i#103625}(`I64`_lanetype, `%`_dim{i#103632}(2)))] +[visit_exp `%X%`_shape{lanetype#23148, dim#23148, i#103625}(`I64`_lanetype, `%`_dim{i#103632}(2))] +[visit_exp lanetype#23148] +[visit_id lanetype#23148] +[visit_exp dim#23148] +[visit_id dim#23148] +[visit_exp i#103625] +[visit_id i#103625] +[visit_exp (`I64`_lanetype, `%`_dim{i#103632}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#103632}(2)] +[visit_exp i#103632] +[visit_id i#103632] +[visit_exp (2)] +[visit_exp 2] +[check_dims] I dim#23160 i#103637 i#103644 lanetype#23160 shape#4036 +dims \ I = dim#23160, i#103637, i#103644, lanetype#23160, shape#4036 +[visit_exp `VSPLAT`_instr{shape#4036}(`%X%`_shape{lanetype#23160, dim#23160, i#103637}(`F32`_lanetype, `%`_dim{i#103644}(4)))] +[visit_exp shape#4036] +[visit_id shape#4036] +[visit_exp (`%X%`_shape{lanetype#23160, dim#23160, i#103637}(`F32`_lanetype, `%`_dim{i#103644}(4)))] +[visit_exp `%X%`_shape{lanetype#23160, dim#23160, i#103637}(`F32`_lanetype, `%`_dim{i#103644}(4))] +[visit_exp lanetype#23160] +[visit_id lanetype#23160] +[visit_exp dim#23160] +[visit_id dim#23160] +[visit_exp i#103637] +[visit_id i#103637] +[visit_exp (`F32`_lanetype, `%`_dim{i#103644}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#103644}(4)] +[visit_exp i#103644] +[visit_id i#103644] +[visit_exp (4)] +[visit_exp 4] +[check_dims] I dim#23172 i#103649 i#103656 lanetype#23172 shape#4038 +dims \ I = dim#23172, i#103649, i#103656, lanetype#23172, shape#4038 +[visit_exp `VSPLAT`_instr{shape#4038}(`%X%`_shape{lanetype#23172, dim#23172, i#103649}(`F64`_lanetype, `%`_dim{i#103656}(2)))] +[visit_exp shape#4038] +[visit_id shape#4038] +[visit_exp (`%X%`_shape{lanetype#23172, dim#23172, i#103649}(`F64`_lanetype, `%`_dim{i#103656}(2)))] +[visit_exp `%X%`_shape{lanetype#23172, dim#23172, i#103649}(`F64`_lanetype, `%`_dim{i#103656}(2))] +[visit_exp lanetype#23172] +[visit_id lanetype#23172] +[visit_exp dim#23172] +[visit_id dim#23172] +[visit_exp i#103649] +[visit_id i#103649] +[visit_exp (`F64`_lanetype, `%`_dim{i#103656}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#103656}(2)] +[visit_exp i#103656] +[visit_id i#103656] +[visit_exp (2)] +[visit_exp 2] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#23184 i i#103678 i#103685 laneidx#91 lanetype#23184 shape#4040 sx?#71 +dims \ I = dim#23184, i, i#103678, i#103685, laneidx#91, lanetype#23184, shape#4040, sx?#71 +[visit_exp `VEXTRACT_LANE`_instr{shape#4040, `sx?#71`, laneidx#91}(`%X%`_shape{lanetype#23184, dim#23184, i#103678}(`I8`_lanetype, `%`_dim{i#103685}(16)), ?(`S`_sx), i)] +[visit_exp shape#4040] +[visit_id shape#4040] +[visit_exp `sx?#71`] +[visit_id sx?#71] +[visit_exp laneidx#91] +[visit_id laneidx#91] +[visit_exp (`%X%`_shape{lanetype#23184, dim#23184, i#103678}(`I8`_lanetype, `%`_dim{i#103685}(16)), ?(`S`_sx), i)] +[visit_exp `%X%`_shape{lanetype#23184, dim#23184, i#103678}(`I8`_lanetype, `%`_dim{i#103685}(16))] +[visit_exp lanetype#23184] +[visit_id lanetype#23184] +[visit_exp dim#23184] +[visit_id dim#23184] +[visit_exp i#103678] +[visit_id i#103678] +[visit_exp (`I8`_lanetype, `%`_dim{i#103685}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#103685}(16)] +[visit_exp i#103685] +[visit_id i#103685] +[visit_exp (16)] +[visit_exp 16] +[visit_exp ?(`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[check_dims] I dim#23196 i i#103763 i#103770 laneidx#93 lanetype#23196 shape#4042 sx?#73 +dims \ I = dim#23196, i, i#103763, i#103770, laneidx#93, lanetype#23196, shape#4042, sx?#73 +[visit_exp `VEXTRACT_LANE`_instr{shape#4042, `sx?#73`, laneidx#93}(`%X%`_shape{lanetype#23196, dim#23196, i#103763}(`I8`_lanetype, `%`_dim{i#103770}(16)), ?(`U`_sx), i)] +[visit_exp shape#4042] +[visit_id shape#4042] +[visit_exp `sx?#73`] +[visit_id sx?#73] +[visit_exp laneidx#93] +[visit_id laneidx#93] +[visit_exp (`%X%`_shape{lanetype#23196, dim#23196, i#103763}(`I8`_lanetype, `%`_dim{i#103770}(16)), ?(`U`_sx), i)] +[visit_exp `%X%`_shape{lanetype#23196, dim#23196, i#103763}(`I8`_lanetype, `%`_dim{i#103770}(16))] +[visit_exp lanetype#23196] +[visit_id lanetype#23196] +[visit_exp dim#23196] +[visit_id dim#23196] +[visit_exp i#103763] +[visit_id i#103763] +[visit_exp (`I8`_lanetype, `%`_dim{i#103770}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#103770}(16)] +[visit_exp i#103770] +[visit_id i#103770] +[visit_exp (16)] +[visit_exp 16] +[visit_exp ?(`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[check_dims] I dim#23208 i i#103848 i#103855 laneidx#95 lanetype#23208 shape#4044 sx?#75 +dims \ I = dim#23208, i, i#103848, i#103855, laneidx#95, lanetype#23208, shape#4044, sx?#75 +[visit_exp `VEXTRACT_LANE`_instr{shape#4044, `sx?#75`, laneidx#95}(`%X%`_shape{lanetype#23208, dim#23208, i#103848}(`I16`_lanetype, `%`_dim{i#103855}(8)), ?(`S`_sx), i)] +[visit_exp shape#4044] +[visit_id shape#4044] +[visit_exp `sx?#75`] +[visit_id sx?#75] +[visit_exp laneidx#95] +[visit_id laneidx#95] +[visit_exp (`%X%`_shape{lanetype#23208, dim#23208, i#103848}(`I16`_lanetype, `%`_dim{i#103855}(8)), ?(`S`_sx), i)] +[visit_exp `%X%`_shape{lanetype#23208, dim#23208, i#103848}(`I16`_lanetype, `%`_dim{i#103855}(8))] +[visit_exp lanetype#23208] +[visit_id lanetype#23208] +[visit_exp dim#23208] +[visit_id dim#23208] +[visit_exp i#103848] +[visit_id i#103848] +[visit_exp (`I16`_lanetype, `%`_dim{i#103855}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#103855}(8)] +[visit_exp i#103855] +[visit_id i#103855] +[visit_exp (8)] +[visit_exp 8] +[visit_exp ?(`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[check_dims] I dim#23220 i i#103933 i#103940 laneidx#97 lanetype#23220 shape#4046 sx?#77 +dims \ I = dim#23220, i, i#103933, i#103940, laneidx#97, lanetype#23220, shape#4046, sx?#77 +[visit_exp `VEXTRACT_LANE`_instr{shape#4046, `sx?#77`, laneidx#97}(`%X%`_shape{lanetype#23220, dim#23220, i#103933}(`I16`_lanetype, `%`_dim{i#103940}(8)), ?(`U`_sx), i)] +[visit_exp shape#4046] +[visit_id shape#4046] +[visit_exp `sx?#77`] +[visit_id sx?#77] +[visit_exp laneidx#97] +[visit_id laneidx#97] +[visit_exp (`%X%`_shape{lanetype#23220, dim#23220, i#103933}(`I16`_lanetype, `%`_dim{i#103940}(8)), ?(`U`_sx), i)] +[visit_exp `%X%`_shape{lanetype#23220, dim#23220, i#103933}(`I16`_lanetype, `%`_dim{i#103940}(8))] +[visit_exp lanetype#23220] +[visit_id lanetype#23220] +[visit_exp dim#23220] +[visit_id dim#23220] +[visit_exp i#103933] +[visit_id i#103933] +[visit_exp (`I16`_lanetype, `%`_dim{i#103940}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#103940}(8)] +[visit_exp i#103940] +[visit_id i#103940] +[visit_exp (8)] +[visit_exp 8] +[visit_exp ?(`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[check_dims] I dim#23232 i i#104018 i#104025 laneidx#99 lanetype#23232 shape#4048 sx?#79 +dims \ I = dim#23232, i, i#104018, i#104025, laneidx#99, lanetype#23232, shape#4048, sx?#79 +[visit_exp `VEXTRACT_LANE`_instr{shape#4048, `sx?#79`, laneidx#99}(`%X%`_shape{lanetype#23232, dim#23232, i#104018}(`I32`_lanetype, `%`_dim{i#104025}(4)), ?(), i)] +[visit_exp shape#4048] +[visit_id shape#4048] +[visit_exp `sx?#79`] +[visit_id sx?#79] +[visit_exp laneidx#99] +[visit_id laneidx#99] +[visit_exp (`%X%`_shape{lanetype#23232, dim#23232, i#104018}(`I32`_lanetype, `%`_dim{i#104025}(4)), ?(), i)] +[visit_exp `%X%`_shape{lanetype#23232, dim#23232, i#104018}(`I32`_lanetype, `%`_dim{i#104025}(4))] +[visit_exp lanetype#23232] +[visit_id lanetype#23232] +[visit_exp dim#23232] +[visit_id dim#23232] +[visit_exp i#104018] +[visit_id i#104018] +[visit_exp (`I32`_lanetype, `%`_dim{i#104025}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104025}(4)] +[visit_exp i#104025] +[visit_id i#104025] +[visit_exp (4)] +[visit_exp 4] +[visit_exp ?()] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[check_dims] I dim#23244 i i#104059 i#104066 laneidx#101 lanetype#23244 shape#4050 sx?#81 +dims \ I = dim#23244, i, i#104059, i#104066, laneidx#101, lanetype#23244, shape#4050, sx?#81 +[visit_exp `VEXTRACT_LANE`_instr{shape#4050, `sx?#81`, laneidx#101}(`%X%`_shape{lanetype#23244, dim#23244, i#104059}(`I64`_lanetype, `%`_dim{i#104066}(2)), ?(), i)] +[visit_exp shape#4050] +[visit_id shape#4050] +[visit_exp `sx?#81`] +[visit_id sx?#81] +[visit_exp laneidx#101] +[visit_id laneidx#101] +[visit_exp (`%X%`_shape{lanetype#23244, dim#23244, i#104059}(`I64`_lanetype, `%`_dim{i#104066}(2)), ?(), i)] +[visit_exp `%X%`_shape{lanetype#23244, dim#23244, i#104059}(`I64`_lanetype, `%`_dim{i#104066}(2))] +[visit_exp lanetype#23244] +[visit_id lanetype#23244] +[visit_exp dim#23244] +[visit_id dim#23244] +[visit_exp i#104059] +[visit_id i#104059] +[visit_exp (`I64`_lanetype, `%`_dim{i#104066}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104066}(2)] +[visit_exp i#104066] +[visit_id i#104066] +[visit_exp (2)] +[visit_exp 2] +[visit_exp ?()] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[check_dims] I dim#23256 i i#104100 i#104107 laneidx#103 lanetype#23256 shape#4052 sx?#83 +dims \ I = dim#23256, i, i#104100, i#104107, laneidx#103, lanetype#23256, shape#4052, sx?#83 +[visit_exp `VEXTRACT_LANE`_instr{shape#4052, `sx?#83`, laneidx#103}(`%X%`_shape{lanetype#23256, dim#23256, i#104100}(`F32`_lanetype, `%`_dim{i#104107}(4)), ?(), i)] +[visit_exp shape#4052] +[visit_id shape#4052] +[visit_exp `sx?#83`] +[visit_id sx?#83] +[visit_exp laneidx#103] +[visit_id laneidx#103] +[visit_exp (`%X%`_shape{lanetype#23256, dim#23256, i#104100}(`F32`_lanetype, `%`_dim{i#104107}(4)), ?(), i)] +[visit_exp `%X%`_shape{lanetype#23256, dim#23256, i#104100}(`F32`_lanetype, `%`_dim{i#104107}(4))] +[visit_exp lanetype#23256] +[visit_id lanetype#23256] +[visit_exp dim#23256] +[visit_id dim#23256] +[visit_exp i#104100] +[visit_id i#104100] +[visit_exp (`F32`_lanetype, `%`_dim{i#104107}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104107}(4)] +[visit_exp i#104107] +[visit_id i#104107] +[visit_exp (4)] +[visit_exp 4] +[visit_exp ?()] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[check_dims] I dim#23268 i i#104141 i#104148 laneidx#105 lanetype#23268 shape#4054 sx?#85 +dims \ I = dim#23268, i, i#104141, i#104148, laneidx#105, lanetype#23268, shape#4054, sx?#85 +[visit_exp `VEXTRACT_LANE`_instr{shape#4054, `sx?#85`, laneidx#105}(`%X%`_shape{lanetype#23268, dim#23268, i#104141}(`F64`_lanetype, `%`_dim{i#104148}(2)), ?(), i)] +[visit_exp shape#4054] +[visit_id shape#4054] +[visit_exp `sx?#85`] +[visit_id sx?#85] +[visit_exp laneidx#105] +[visit_id laneidx#105] +[visit_exp (`%X%`_shape{lanetype#23268, dim#23268, i#104141}(`F64`_lanetype, `%`_dim{i#104148}(2)), ?(), i)] +[visit_exp `%X%`_shape{lanetype#23268, dim#23268, i#104141}(`F64`_lanetype, `%`_dim{i#104148}(2))] +[visit_exp lanetype#23268] +[visit_id lanetype#23268] +[visit_exp dim#23268] +[visit_id dim#23268] +[visit_exp i#104141] +[visit_id i#104141] +[visit_exp (`F64`_lanetype, `%`_dim{i#104148}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104148}(2)] +[visit_exp i#104148] +[visit_id i#104148] +[visit_exp (2)] +[visit_exp 2] +[visit_exp ?()] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[check_dims] I dim#23280 i i#104182 i#104189 laneidx#107 lanetype#23280 shape#4056 +dims \ I = dim#23280, i, i#104182, i#104189, laneidx#107, lanetype#23280, shape#4056 +[visit_exp `VREPLACE_LANE`_instr{shape#4056, laneidx#107}(`%X%`_shape{lanetype#23280, dim#23280, i#104182}(`I8`_lanetype, `%`_dim{i#104189}(16)), i)] +[visit_exp shape#4056] +[visit_id shape#4056] +[visit_exp laneidx#107] +[visit_id laneidx#107] +[visit_exp (`%X%`_shape{lanetype#23280, dim#23280, i#104182}(`I8`_lanetype, `%`_dim{i#104189}(16)), i)] +[visit_exp `%X%`_shape{lanetype#23280, dim#23280, i#104182}(`I8`_lanetype, `%`_dim{i#104189}(16))] +[visit_exp lanetype#23280] +[visit_id lanetype#23280] +[visit_exp dim#23280] +[visit_id dim#23280] +[visit_exp i#104182] +[visit_id i#104182] +[visit_exp (`I8`_lanetype, `%`_dim{i#104189}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104189}(16)] +[visit_exp i#104189] +[visit_id i#104189] +[visit_exp (16)] +[visit_exp 16] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[check_dims] I dim#23292 i i#104223 i#104230 laneidx#109 lanetype#23292 shape#4058 +dims \ I = dim#23292, i, i#104223, i#104230, laneidx#109, lanetype#23292, shape#4058 +[visit_exp `VREPLACE_LANE`_instr{shape#4058, laneidx#109}(`%X%`_shape{lanetype#23292, dim#23292, i#104223}(`I16`_lanetype, `%`_dim{i#104230}(8)), i)] +[visit_exp shape#4058] +[visit_id shape#4058] +[visit_exp laneidx#109] +[visit_id laneidx#109] +[visit_exp (`%X%`_shape{lanetype#23292, dim#23292, i#104223}(`I16`_lanetype, `%`_dim{i#104230}(8)), i)] +[visit_exp `%X%`_shape{lanetype#23292, dim#23292, i#104223}(`I16`_lanetype, `%`_dim{i#104230}(8))] +[visit_exp lanetype#23292] +[visit_id lanetype#23292] +[visit_exp dim#23292] +[visit_id dim#23292] +[visit_exp i#104223] +[visit_id i#104223] +[visit_exp (`I16`_lanetype, `%`_dim{i#104230}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104230}(8)] +[visit_exp i#104230] +[visit_id i#104230] +[visit_exp (8)] +[visit_exp 8] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[check_dims] I dim#23304 i i#104264 i#104271 laneidx#111 lanetype#23304 shape#4060 +dims \ I = dim#23304, i, i#104264, i#104271, laneidx#111, lanetype#23304, shape#4060 +[visit_exp `VREPLACE_LANE`_instr{shape#4060, laneidx#111}(`%X%`_shape{lanetype#23304, dim#23304, i#104264}(`I32`_lanetype, `%`_dim{i#104271}(4)), i)] +[visit_exp shape#4060] +[visit_id shape#4060] +[visit_exp laneidx#111] +[visit_id laneidx#111] +[visit_exp (`%X%`_shape{lanetype#23304, dim#23304, i#104264}(`I32`_lanetype, `%`_dim{i#104271}(4)), i)] +[visit_exp `%X%`_shape{lanetype#23304, dim#23304, i#104264}(`I32`_lanetype, `%`_dim{i#104271}(4))] +[visit_exp lanetype#23304] +[visit_id lanetype#23304] +[visit_exp dim#23304] +[visit_id dim#23304] +[visit_exp i#104264] +[visit_id i#104264] +[visit_exp (`I32`_lanetype, `%`_dim{i#104271}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104271}(4)] +[visit_exp i#104271] +[visit_id i#104271] +[visit_exp (4)] +[visit_exp 4] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[check_dims] I dim#23316 i i#104305 i#104312 laneidx#113 lanetype#23316 shape#4062 +dims \ I = dim#23316, i, i#104305, i#104312, laneidx#113, lanetype#23316, shape#4062 +[visit_exp `VREPLACE_LANE`_instr{shape#4062, laneidx#113}(`%X%`_shape{lanetype#23316, dim#23316, i#104305}(`I64`_lanetype, `%`_dim{i#104312}(2)), i)] +[visit_exp shape#4062] +[visit_id shape#4062] +[visit_exp laneidx#113] +[visit_id laneidx#113] +[visit_exp (`%X%`_shape{lanetype#23316, dim#23316, i#104305}(`I64`_lanetype, `%`_dim{i#104312}(2)), i)] +[visit_exp `%X%`_shape{lanetype#23316, dim#23316, i#104305}(`I64`_lanetype, `%`_dim{i#104312}(2))] +[visit_exp lanetype#23316] +[visit_id lanetype#23316] +[visit_exp dim#23316] +[visit_id dim#23316] +[visit_exp i#104305] +[visit_id i#104305] +[visit_exp (`I64`_lanetype, `%`_dim{i#104312}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104312}(2)] +[visit_exp i#104312] +[visit_id i#104312] +[visit_exp (2)] +[visit_exp 2] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[check_dims] I dim#23328 i i#104346 i#104353 laneidx#115 lanetype#23328 shape#4064 +dims \ I = dim#23328, i, i#104346, i#104353, laneidx#115, lanetype#23328, shape#4064 +[visit_exp `VREPLACE_LANE`_instr{shape#4064, laneidx#115}(`%X%`_shape{lanetype#23328, dim#23328, i#104346}(`F32`_lanetype, `%`_dim{i#104353}(4)), i)] +[visit_exp shape#4064] +[visit_id shape#4064] +[visit_exp laneidx#115] +[visit_id laneidx#115] +[visit_exp (`%X%`_shape{lanetype#23328, dim#23328, i#104346}(`F32`_lanetype, `%`_dim{i#104353}(4)), i)] +[visit_exp `%X%`_shape{lanetype#23328, dim#23328, i#104346}(`F32`_lanetype, `%`_dim{i#104353}(4))] +[visit_exp lanetype#23328] +[visit_id lanetype#23328] +[visit_exp dim#23328] +[visit_id dim#23328] +[visit_exp i#104346] +[visit_id i#104346] +[visit_exp (`F32`_lanetype, `%`_dim{i#104353}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104353}(4)] +[visit_exp i#104353] +[visit_id i#104353] +[visit_exp (4)] +[visit_exp 4] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[check_dims] I dim#23340 i i#104387 i#104394 laneidx#117 lanetype#23340 shape#4066 +dims \ I = dim#23340, i, i#104387, i#104394, laneidx#117, lanetype#23340, shape#4066 +[visit_exp `VREPLACE_LANE`_instr{shape#4066, laneidx#117}(`%X%`_shape{lanetype#23340, dim#23340, i#104387}(`F64`_lanetype, `%`_dim{i#104394}(2)), i)] +[visit_exp shape#4066] +[visit_id shape#4066] +[visit_exp laneidx#117] +[visit_id laneidx#117] +[visit_exp (`%X%`_shape{lanetype#23340, dim#23340, i#104387}(`F64`_lanetype, `%`_dim{i#104394}(2)), i)] +[visit_exp `%X%`_shape{lanetype#23340, dim#23340, i#104387}(`F64`_lanetype, `%`_dim{i#104394}(2))] +[visit_exp lanetype#23340] +[visit_id lanetype#23340] +[visit_exp dim#23340] +[visit_id dim#23340] +[visit_exp i#104387] +[visit_id i#104387] +[visit_exp (`F64`_lanetype, `%`_dim{i#104394}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104394}(2)] +[visit_exp i#104394] +[visit_id i#104394] +[visit_exp (2)] +[visit_exp 2] +[visit_exp i] +[visit_id i] +[visit_exp i] +[visit_id i] not free +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I vectype#316 vvtestop#9 +dims \ I = vectype#316, vvtestop#9 +[visit_exp `VVTESTOP`_instr{vectype#316, vvtestop#9}(`V128`_vectype, `ANY_TRUE`_vvtestop)] +[visit_exp vectype#316] +[visit_id vectype#316] +[visit_exp vvtestop#9] +[visit_id vvtestop#9] +[visit_exp (`V128`_vectype, `ANY_TRUE`_vvtestop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `ANY_TRUE`_vvtestop] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#23352 i#104411 i#104418 lanetype#23352 shape#4068 +dims \ I = dim#23352, i#104411, i#104418, lanetype#23352, shape#4068 +[visit_exp `VTESTOP`_instr{shape#4068}(`%X%`_shape{lanetype#23352, dim#23352, i#104411}(`I8`_lanetype, `%`_dim{i#104418}(16)), `ALL_TRUE`_vtestop_)] +[visit_exp shape#4068] +[visit_id shape#4068] +[visit_exp (`%X%`_shape{lanetype#23352, dim#23352, i#104411}(`I8`_lanetype, `%`_dim{i#104418}(16)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape{lanetype#23352, dim#23352, i#104411}(`I8`_lanetype, `%`_dim{i#104418}(16))] +[visit_exp lanetype#23352] +[visit_id lanetype#23352] +[visit_exp dim#23352] +[visit_id dim#23352] +[visit_exp i#104411] +[visit_id i#104411] +[visit_exp (`I8`_lanetype, `%`_dim{i#104418}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104418}(16)] +[visit_exp i#104418] +[visit_id i#104418] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `ALL_TRUE`_vtestop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#23379 i#104468 i#104475 lanetype#23379 shape#4070 +dims \ I = dim#23379, i#104468, i#104475, lanetype#23379, shape#4070 +[visit_exp `VTESTOP`_instr{shape#4070}(`%X%`_shape{lanetype#23379, dim#23379, i#104468}(`I16`_lanetype, `%`_dim{i#104475}(8)), `ALL_TRUE`_vtestop_)] +[visit_exp shape#4070] +[visit_id shape#4070] +[visit_exp (`%X%`_shape{lanetype#23379, dim#23379, i#104468}(`I16`_lanetype, `%`_dim{i#104475}(8)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape{lanetype#23379, dim#23379, i#104468}(`I16`_lanetype, `%`_dim{i#104475}(8))] +[visit_exp lanetype#23379] +[visit_id lanetype#23379] +[visit_exp dim#23379] +[visit_id dim#23379] +[visit_exp i#104468] +[visit_id i#104468] +[visit_exp (`I16`_lanetype, `%`_dim{i#104475}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104475}(8)] +[visit_exp i#104475] +[visit_id i#104475] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `ALL_TRUE`_vtestop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#23406 i#104525 i#104532 lanetype#23406 shape#4072 +dims \ I = dim#23406, i#104525, i#104532, lanetype#23406, shape#4072 +[visit_exp `VTESTOP`_instr{shape#4072}(`%X%`_shape{lanetype#23406, dim#23406, i#104525}(`I32`_lanetype, `%`_dim{i#104532}(4)), `ALL_TRUE`_vtestop_)] +[visit_exp shape#4072] +[visit_id shape#4072] +[visit_exp (`%X%`_shape{lanetype#23406, dim#23406, i#104525}(`I32`_lanetype, `%`_dim{i#104532}(4)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape{lanetype#23406, dim#23406, i#104525}(`I32`_lanetype, `%`_dim{i#104532}(4))] +[visit_exp lanetype#23406] +[visit_id lanetype#23406] +[visit_exp dim#23406] +[visit_id dim#23406] +[visit_exp i#104525] +[visit_id i#104525] +[visit_exp (`I32`_lanetype, `%`_dim{i#104532}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104532}(4)] +[visit_exp i#104532] +[visit_id i#104532] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `ALL_TRUE`_vtestop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#23433 i#104582 i#104589 lanetype#23433 shape#4074 +dims \ I = dim#23433, i#104582, i#104589, lanetype#23433, shape#4074 +[visit_exp `VTESTOP`_instr{shape#4074}(`%X%`_shape{lanetype#23433, dim#23433, i#104582}(`I64`_lanetype, `%`_dim{i#104589}(2)), `ALL_TRUE`_vtestop_)] +[visit_exp shape#4074] +[visit_id shape#4074] +[visit_exp (`%X%`_shape{lanetype#23433, dim#23433, i#104582}(`I64`_lanetype, `%`_dim{i#104589}(2)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape{lanetype#23433, dim#23433, i#104582}(`I64`_lanetype, `%`_dim{i#104589}(2))] +[visit_exp lanetype#23433] +[visit_id lanetype#23433] +[visit_exp dim#23433] +[visit_id dim#23433] +[visit_exp i#104582] +[visit_id i#104582] +[visit_exp (`I64`_lanetype, `%`_dim{i#104589}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104589}(2)] +[visit_exp i#104589] +[visit_id i#104589] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `ALL_TRUE`_vtestop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#23460 i#104639 i#104646 lanetype#23460 shape#4076 +dims \ I = dim#23460, i#104639, i#104646, lanetype#23460, shape#4076 +[visit_exp `VRELOP`_instr{shape#4076}(`%X%`_shape{lanetype#23460, dim#23460, i#104639}(`I8`_lanetype, `%`_dim{i#104646}(16)), `EQ`_vrelop_)] +[visit_exp shape#4076] +[visit_id shape#4076] +[visit_exp (`%X%`_shape{lanetype#23460, dim#23460, i#104639}(`I8`_lanetype, `%`_dim{i#104646}(16)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#23460, dim#23460, i#104639}(`I8`_lanetype, `%`_dim{i#104646}(16))] +[visit_exp lanetype#23460] +[visit_id lanetype#23460] +[visit_exp dim#23460] +[visit_id dim#23460] +[visit_exp i#104639] +[visit_id i#104639] +[visit_exp (`I8`_lanetype, `%`_dim{i#104646}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104646}(16)] +[visit_exp i#104646] +[visit_id i#104646] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[check_dims] I dim#23487 i#104696 i#104703 lanetype#23487 shape#4078 +dims \ I = dim#23487, i#104696, i#104703, lanetype#23487, shape#4078 +[visit_exp `VRELOP`_instr{shape#4078}(`%X%`_shape{lanetype#23487, dim#23487, i#104696}(`I8`_lanetype, `%`_dim{i#104703}(16)), `NE`_vrelop_)] +[visit_exp shape#4078] +[visit_id shape#4078] +[visit_exp (`%X%`_shape{lanetype#23487, dim#23487, i#104696}(`I8`_lanetype, `%`_dim{i#104703}(16)), `NE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#23487, dim#23487, i#104696}(`I8`_lanetype, `%`_dim{i#104703}(16))] +[visit_exp lanetype#23487] +[visit_id lanetype#23487] +[visit_exp dim#23487] +[visit_id dim#23487] +[visit_exp i#104696] +[visit_id i#104696] +[visit_exp (`I8`_lanetype, `%`_dim{i#104703}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104703}(16)] +[visit_exp i#104703] +[visit_id i#104703] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[check_dims] I dim#23514 i#104753 i#104760 lanetype#23514 shape#4080 sx#21962 +dims \ I = dim#23514, i#104753, i#104760, lanetype#23514, shape#4080, sx#21962 +[visit_exp `VRELOP`_instr{shape#4080}(`%X%`_shape{lanetype#23514, dim#23514, i#104753}(`I8`_lanetype, `%`_dim{i#104760}(16)), `LT`_vrelop_{sx#21962}(`S`_sx))] +[visit_exp shape#4080] +[visit_id shape#4080] +[visit_exp (`%X%`_shape{lanetype#23514, dim#23514, i#104753}(`I8`_lanetype, `%`_dim{i#104760}(16)), `LT`_vrelop_{sx#21962}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#23514, dim#23514, i#104753}(`I8`_lanetype, `%`_dim{i#104760}(16))] +[visit_exp lanetype#23514] +[visit_id lanetype#23514] +[visit_exp dim#23514] +[visit_id dim#23514] +[visit_exp i#104753] +[visit_id i#104753] +[visit_exp (`I8`_lanetype, `%`_dim{i#104760}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104760}(16)] +[visit_exp i#104760] +[visit_id i#104760] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `LT`_vrelop_{sx#21962}(`S`_sx)] +[visit_exp sx#21962] +[visit_id sx#21962] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#23556 i#104855 i#104862 lanetype#23556 shape#4082 sx#22086 +dims \ I = dim#23556, i#104855, i#104862, lanetype#23556, shape#4082, sx#22086 +[visit_exp `VRELOP`_instr{shape#4082}(`%X%`_shape{lanetype#23556, dim#23556, i#104855}(`I8`_lanetype, `%`_dim{i#104862}(16)), `LT`_vrelop_{sx#22086}(`U`_sx))] +[visit_exp shape#4082] +[visit_id shape#4082] +[visit_exp (`%X%`_shape{lanetype#23556, dim#23556, i#104855}(`I8`_lanetype, `%`_dim{i#104862}(16)), `LT`_vrelop_{sx#22086}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#23556, dim#23556, i#104855}(`I8`_lanetype, `%`_dim{i#104862}(16))] +[visit_exp lanetype#23556] +[visit_id lanetype#23556] +[visit_exp dim#23556] +[visit_id dim#23556] +[visit_exp i#104855] +[visit_id i#104855] +[visit_exp (`I8`_lanetype, `%`_dim{i#104862}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104862}(16)] +[visit_exp i#104862] +[visit_id i#104862] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `LT`_vrelop_{sx#22086}(`U`_sx)] +[visit_exp sx#22086] +[visit_id sx#22086] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#23598 i#104957 i#104964 lanetype#23598 shape#4084 sx#22210 +dims \ I = dim#23598, i#104957, i#104964, lanetype#23598, shape#4084, sx#22210 +[visit_exp `VRELOP`_instr{shape#4084}(`%X%`_shape{lanetype#23598, dim#23598, i#104957}(`I8`_lanetype, `%`_dim{i#104964}(16)), `GT`_vrelop_{sx#22210}(`S`_sx))] +[visit_exp shape#4084] +[visit_id shape#4084] +[visit_exp (`%X%`_shape{lanetype#23598, dim#23598, i#104957}(`I8`_lanetype, `%`_dim{i#104964}(16)), `GT`_vrelop_{sx#22210}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#23598, dim#23598, i#104957}(`I8`_lanetype, `%`_dim{i#104964}(16))] +[visit_exp lanetype#23598] +[visit_id lanetype#23598] +[visit_exp dim#23598] +[visit_id dim#23598] +[visit_exp i#104957] +[visit_id i#104957] +[visit_exp (`I8`_lanetype, `%`_dim{i#104964}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#104964}(16)] +[visit_exp i#104964] +[visit_id i#104964] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `GT`_vrelop_{sx#22210}(`S`_sx)] +[visit_exp sx#22210] +[visit_id sx#22210] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#23640 i#105059 i#105066 lanetype#23640 shape#4086 sx#22334 +dims \ I = dim#23640, i#105059, i#105066, lanetype#23640, shape#4086, sx#22334 +[visit_exp `VRELOP`_instr{shape#4086}(`%X%`_shape{lanetype#23640, dim#23640, i#105059}(`I8`_lanetype, `%`_dim{i#105066}(16)), `GT`_vrelop_{sx#22334}(`U`_sx))] +[visit_exp shape#4086] +[visit_id shape#4086] +[visit_exp (`%X%`_shape{lanetype#23640, dim#23640, i#105059}(`I8`_lanetype, `%`_dim{i#105066}(16)), `GT`_vrelop_{sx#22334}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#23640, dim#23640, i#105059}(`I8`_lanetype, `%`_dim{i#105066}(16))] +[visit_exp lanetype#23640] +[visit_id lanetype#23640] +[visit_exp dim#23640] +[visit_id dim#23640] +[visit_exp i#105059] +[visit_id i#105059] +[visit_exp (`I8`_lanetype, `%`_dim{i#105066}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#105066}(16)] +[visit_exp i#105066] +[visit_id i#105066] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `GT`_vrelop_{sx#22334}(`U`_sx)] +[visit_exp sx#22334] +[visit_id sx#22334] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#23682 i#105161 i#105168 lanetype#23682 shape#4088 sx#22458 +dims \ I = dim#23682, i#105161, i#105168, lanetype#23682, shape#4088, sx#22458 +[visit_exp `VRELOP`_instr{shape#4088}(`%X%`_shape{lanetype#23682, dim#23682, i#105161}(`I8`_lanetype, `%`_dim{i#105168}(16)), `LE`_vrelop_{sx#22458}(`S`_sx))] +[visit_exp shape#4088] +[visit_id shape#4088] +[visit_exp (`%X%`_shape{lanetype#23682, dim#23682, i#105161}(`I8`_lanetype, `%`_dim{i#105168}(16)), `LE`_vrelop_{sx#22458}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#23682, dim#23682, i#105161}(`I8`_lanetype, `%`_dim{i#105168}(16))] +[visit_exp lanetype#23682] +[visit_id lanetype#23682] +[visit_exp dim#23682] +[visit_id dim#23682] +[visit_exp i#105161] +[visit_id i#105161] +[visit_exp (`I8`_lanetype, `%`_dim{i#105168}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#105168}(16)] +[visit_exp i#105168] +[visit_id i#105168] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `LE`_vrelop_{sx#22458}(`S`_sx)] +[visit_exp sx#22458] +[visit_id sx#22458] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#23724 i#105263 i#105270 lanetype#23724 shape#4090 sx#22582 +dims \ I = dim#23724, i#105263, i#105270, lanetype#23724, shape#4090, sx#22582 +[visit_exp `VRELOP`_instr{shape#4090}(`%X%`_shape{lanetype#23724, dim#23724, i#105263}(`I8`_lanetype, `%`_dim{i#105270}(16)), `LE`_vrelop_{sx#22582}(`U`_sx))] +[visit_exp shape#4090] +[visit_id shape#4090] +[visit_exp (`%X%`_shape{lanetype#23724, dim#23724, i#105263}(`I8`_lanetype, `%`_dim{i#105270}(16)), `LE`_vrelop_{sx#22582}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#23724, dim#23724, i#105263}(`I8`_lanetype, `%`_dim{i#105270}(16))] +[visit_exp lanetype#23724] +[visit_id lanetype#23724] +[visit_exp dim#23724] +[visit_id dim#23724] +[visit_exp i#105263] +[visit_id i#105263] +[visit_exp (`I8`_lanetype, `%`_dim{i#105270}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#105270}(16)] +[visit_exp i#105270] +[visit_id i#105270] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `LE`_vrelop_{sx#22582}(`U`_sx)] +[visit_exp sx#22582] +[visit_id sx#22582] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#23766 i#105365 i#105372 lanetype#23766 shape#4092 sx#22706 +dims \ I = dim#23766, i#105365, i#105372, lanetype#23766, shape#4092, sx#22706 +[visit_exp `VRELOP`_instr{shape#4092}(`%X%`_shape{lanetype#23766, dim#23766, i#105365}(`I8`_lanetype, `%`_dim{i#105372}(16)), `GE`_vrelop_{sx#22706}(`S`_sx))] +[visit_exp shape#4092] +[visit_id shape#4092] +[visit_exp (`%X%`_shape{lanetype#23766, dim#23766, i#105365}(`I8`_lanetype, `%`_dim{i#105372}(16)), `GE`_vrelop_{sx#22706}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#23766, dim#23766, i#105365}(`I8`_lanetype, `%`_dim{i#105372}(16))] +[visit_exp lanetype#23766] +[visit_id lanetype#23766] +[visit_exp dim#23766] +[visit_id dim#23766] +[visit_exp i#105365] +[visit_id i#105365] +[visit_exp (`I8`_lanetype, `%`_dim{i#105372}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#105372}(16)] +[visit_exp i#105372] +[visit_id i#105372] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `GE`_vrelop_{sx#22706}(`S`_sx)] +[visit_exp sx#22706] +[visit_id sx#22706] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#23808 i#105467 i#105474 lanetype#23808 shape#4094 sx#22830 +dims \ I = dim#23808, i#105467, i#105474, lanetype#23808, shape#4094, sx#22830 +[visit_exp `VRELOP`_instr{shape#4094}(`%X%`_shape{lanetype#23808, dim#23808, i#105467}(`I8`_lanetype, `%`_dim{i#105474}(16)), `GE`_vrelop_{sx#22830}(`U`_sx))] +[visit_exp shape#4094] +[visit_id shape#4094] +[visit_exp (`%X%`_shape{lanetype#23808, dim#23808, i#105467}(`I8`_lanetype, `%`_dim{i#105474}(16)), `GE`_vrelop_{sx#22830}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#23808, dim#23808, i#105467}(`I8`_lanetype, `%`_dim{i#105474}(16))] +[visit_exp lanetype#23808] +[visit_id lanetype#23808] +[visit_exp dim#23808] +[visit_id dim#23808] +[visit_exp i#105467] +[visit_id i#105467] +[visit_exp (`I8`_lanetype, `%`_dim{i#105474}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#105474}(16)] +[visit_exp i#105474] +[visit_id i#105474] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `GE`_vrelop_{sx#22830}(`U`_sx)] +[visit_exp sx#22830] +[visit_id sx#22830] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#23850 i#105569 i#105576 lanetype#23850 shape#4096 +dims \ I = dim#23850, i#105569, i#105576, lanetype#23850, shape#4096 +[visit_exp `VRELOP`_instr{shape#4096}(`%X%`_shape{lanetype#23850, dim#23850, i#105569}(`I16`_lanetype, `%`_dim{i#105576}(8)), `EQ`_vrelop_)] +[visit_exp shape#4096] +[visit_id shape#4096] +[visit_exp (`%X%`_shape{lanetype#23850, dim#23850, i#105569}(`I16`_lanetype, `%`_dim{i#105576}(8)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#23850, dim#23850, i#105569}(`I16`_lanetype, `%`_dim{i#105576}(8))] +[visit_exp lanetype#23850] +[visit_id lanetype#23850] +[visit_exp dim#23850] +[visit_id dim#23850] +[visit_exp i#105569] +[visit_id i#105569] +[visit_exp (`I16`_lanetype, `%`_dim{i#105576}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#105576}(8)] +[visit_exp i#105576] +[visit_id i#105576] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[check_dims] I dim#23877 i#105626 i#105633 lanetype#23877 shape#4098 +dims \ I = dim#23877, i#105626, i#105633, lanetype#23877, shape#4098 +[visit_exp `VRELOP`_instr{shape#4098}(`%X%`_shape{lanetype#23877, dim#23877, i#105626}(`I16`_lanetype, `%`_dim{i#105633}(8)), `NE`_vrelop_)] +[visit_exp shape#4098] +[visit_id shape#4098] +[visit_exp (`%X%`_shape{lanetype#23877, dim#23877, i#105626}(`I16`_lanetype, `%`_dim{i#105633}(8)), `NE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#23877, dim#23877, i#105626}(`I16`_lanetype, `%`_dim{i#105633}(8))] +[visit_exp lanetype#23877] +[visit_id lanetype#23877] +[visit_exp dim#23877] +[visit_id dim#23877] +[visit_exp i#105626] +[visit_id i#105626] +[visit_exp (`I16`_lanetype, `%`_dim{i#105633}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#105633}(8)] +[visit_exp i#105633] +[visit_id i#105633] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[check_dims] I dim#23904 i#105683 i#105690 lanetype#23904 shape#4100 sx#23074 +dims \ I = dim#23904, i#105683, i#105690, lanetype#23904, shape#4100, sx#23074 +[visit_exp `VRELOP`_instr{shape#4100}(`%X%`_shape{lanetype#23904, dim#23904, i#105683}(`I16`_lanetype, `%`_dim{i#105690}(8)), `LT`_vrelop_{sx#23074}(`S`_sx))] +[visit_exp shape#4100] +[visit_id shape#4100] +[visit_exp (`%X%`_shape{lanetype#23904, dim#23904, i#105683}(`I16`_lanetype, `%`_dim{i#105690}(8)), `LT`_vrelop_{sx#23074}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#23904, dim#23904, i#105683}(`I16`_lanetype, `%`_dim{i#105690}(8))] +[visit_exp lanetype#23904] +[visit_id lanetype#23904] +[visit_exp dim#23904] +[visit_id dim#23904] +[visit_exp i#105683] +[visit_id i#105683] +[visit_exp (`I16`_lanetype, `%`_dim{i#105690}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#105690}(8)] +[visit_exp i#105690] +[visit_id i#105690] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `LT`_vrelop_{sx#23074}(`S`_sx)] +[visit_exp sx#23074] +[visit_id sx#23074] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#23946 i#105785 i#105792 lanetype#23946 shape#4102 sx#23198 +dims \ I = dim#23946, i#105785, i#105792, lanetype#23946, shape#4102, sx#23198 +[visit_exp `VRELOP`_instr{shape#4102}(`%X%`_shape{lanetype#23946, dim#23946, i#105785}(`I16`_lanetype, `%`_dim{i#105792}(8)), `LT`_vrelop_{sx#23198}(`U`_sx))] +[visit_exp shape#4102] +[visit_id shape#4102] +[visit_exp (`%X%`_shape{lanetype#23946, dim#23946, i#105785}(`I16`_lanetype, `%`_dim{i#105792}(8)), `LT`_vrelop_{sx#23198}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#23946, dim#23946, i#105785}(`I16`_lanetype, `%`_dim{i#105792}(8))] +[visit_exp lanetype#23946] +[visit_id lanetype#23946] +[visit_exp dim#23946] +[visit_id dim#23946] +[visit_exp i#105785] +[visit_id i#105785] +[visit_exp (`I16`_lanetype, `%`_dim{i#105792}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#105792}(8)] +[visit_exp i#105792] +[visit_id i#105792] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `LT`_vrelop_{sx#23198}(`U`_sx)] +[visit_exp sx#23198] +[visit_id sx#23198] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#23988 i#105887 i#105894 lanetype#23988 shape#4104 sx#23322 +dims \ I = dim#23988, i#105887, i#105894, lanetype#23988, shape#4104, sx#23322 +[visit_exp `VRELOP`_instr{shape#4104}(`%X%`_shape{lanetype#23988, dim#23988, i#105887}(`I16`_lanetype, `%`_dim{i#105894}(8)), `GT`_vrelop_{sx#23322}(`S`_sx))] +[visit_exp shape#4104] +[visit_id shape#4104] +[visit_exp (`%X%`_shape{lanetype#23988, dim#23988, i#105887}(`I16`_lanetype, `%`_dim{i#105894}(8)), `GT`_vrelop_{sx#23322}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#23988, dim#23988, i#105887}(`I16`_lanetype, `%`_dim{i#105894}(8))] +[visit_exp lanetype#23988] +[visit_id lanetype#23988] +[visit_exp dim#23988] +[visit_id dim#23988] +[visit_exp i#105887] +[visit_id i#105887] +[visit_exp (`I16`_lanetype, `%`_dim{i#105894}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#105894}(8)] +[visit_exp i#105894] +[visit_id i#105894] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `GT`_vrelop_{sx#23322}(`S`_sx)] +[visit_exp sx#23322] +[visit_id sx#23322] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#24030 i#105989 i#105996 lanetype#24030 shape#4106 sx#23446 +dims \ I = dim#24030, i#105989, i#105996, lanetype#24030, shape#4106, sx#23446 +[visit_exp `VRELOP`_instr{shape#4106}(`%X%`_shape{lanetype#24030, dim#24030, i#105989}(`I16`_lanetype, `%`_dim{i#105996}(8)), `GT`_vrelop_{sx#23446}(`U`_sx))] +[visit_exp shape#4106] +[visit_id shape#4106] +[visit_exp (`%X%`_shape{lanetype#24030, dim#24030, i#105989}(`I16`_lanetype, `%`_dim{i#105996}(8)), `GT`_vrelop_{sx#23446}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#24030, dim#24030, i#105989}(`I16`_lanetype, `%`_dim{i#105996}(8))] +[visit_exp lanetype#24030] +[visit_id lanetype#24030] +[visit_exp dim#24030] +[visit_id dim#24030] +[visit_exp i#105989] +[visit_id i#105989] +[visit_exp (`I16`_lanetype, `%`_dim{i#105996}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#105996}(8)] +[visit_exp i#105996] +[visit_id i#105996] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `GT`_vrelop_{sx#23446}(`U`_sx)] +[visit_exp sx#23446] +[visit_id sx#23446] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#24072 i#106091 i#106098 lanetype#24072 shape#4108 sx#23570 +dims \ I = dim#24072, i#106091, i#106098, lanetype#24072, shape#4108, sx#23570 +[visit_exp `VRELOP`_instr{shape#4108}(`%X%`_shape{lanetype#24072, dim#24072, i#106091}(`I16`_lanetype, `%`_dim{i#106098}(8)), `LE`_vrelop_{sx#23570}(`S`_sx))] +[visit_exp shape#4108] +[visit_id shape#4108] +[visit_exp (`%X%`_shape{lanetype#24072, dim#24072, i#106091}(`I16`_lanetype, `%`_dim{i#106098}(8)), `LE`_vrelop_{sx#23570}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#24072, dim#24072, i#106091}(`I16`_lanetype, `%`_dim{i#106098}(8))] +[visit_exp lanetype#24072] +[visit_id lanetype#24072] +[visit_exp dim#24072] +[visit_id dim#24072] +[visit_exp i#106091] +[visit_id i#106091] +[visit_exp (`I16`_lanetype, `%`_dim{i#106098}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#106098}(8)] +[visit_exp i#106098] +[visit_id i#106098] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `LE`_vrelop_{sx#23570}(`S`_sx)] +[visit_exp sx#23570] +[visit_id sx#23570] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#24114 i#106193 i#106200 lanetype#24114 shape#4110 sx#23694 +dims \ I = dim#24114, i#106193, i#106200, lanetype#24114, shape#4110, sx#23694 +[visit_exp `VRELOP`_instr{shape#4110}(`%X%`_shape{lanetype#24114, dim#24114, i#106193}(`I16`_lanetype, `%`_dim{i#106200}(8)), `LE`_vrelop_{sx#23694}(`U`_sx))] +[visit_exp shape#4110] +[visit_id shape#4110] +[visit_exp (`%X%`_shape{lanetype#24114, dim#24114, i#106193}(`I16`_lanetype, `%`_dim{i#106200}(8)), `LE`_vrelop_{sx#23694}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#24114, dim#24114, i#106193}(`I16`_lanetype, `%`_dim{i#106200}(8))] +[visit_exp lanetype#24114] +[visit_id lanetype#24114] +[visit_exp dim#24114] +[visit_id dim#24114] +[visit_exp i#106193] +[visit_id i#106193] +[visit_exp (`I16`_lanetype, `%`_dim{i#106200}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#106200}(8)] +[visit_exp i#106200] +[visit_id i#106200] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `LE`_vrelop_{sx#23694}(`U`_sx)] +[visit_exp sx#23694] +[visit_id sx#23694] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#24156 i#106295 i#106302 lanetype#24156 shape#4112 sx#23818 +dims \ I = dim#24156, i#106295, i#106302, lanetype#24156, shape#4112, sx#23818 +[visit_exp `VRELOP`_instr{shape#4112}(`%X%`_shape{lanetype#24156, dim#24156, i#106295}(`I16`_lanetype, `%`_dim{i#106302}(8)), `GE`_vrelop_{sx#23818}(`S`_sx))] +[visit_exp shape#4112] +[visit_id shape#4112] +[visit_exp (`%X%`_shape{lanetype#24156, dim#24156, i#106295}(`I16`_lanetype, `%`_dim{i#106302}(8)), `GE`_vrelop_{sx#23818}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#24156, dim#24156, i#106295}(`I16`_lanetype, `%`_dim{i#106302}(8))] +[visit_exp lanetype#24156] +[visit_id lanetype#24156] +[visit_exp dim#24156] +[visit_id dim#24156] +[visit_exp i#106295] +[visit_id i#106295] +[visit_exp (`I16`_lanetype, `%`_dim{i#106302}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#106302}(8)] +[visit_exp i#106302] +[visit_id i#106302] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `GE`_vrelop_{sx#23818}(`S`_sx)] +[visit_exp sx#23818] +[visit_id sx#23818] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#24198 i#106397 i#106404 lanetype#24198 shape#4114 sx#23942 +dims \ I = dim#24198, i#106397, i#106404, lanetype#24198, shape#4114, sx#23942 +[visit_exp `VRELOP`_instr{shape#4114}(`%X%`_shape{lanetype#24198, dim#24198, i#106397}(`I16`_lanetype, `%`_dim{i#106404}(8)), `GE`_vrelop_{sx#23942}(`U`_sx))] +[visit_exp shape#4114] +[visit_id shape#4114] +[visit_exp (`%X%`_shape{lanetype#24198, dim#24198, i#106397}(`I16`_lanetype, `%`_dim{i#106404}(8)), `GE`_vrelop_{sx#23942}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#24198, dim#24198, i#106397}(`I16`_lanetype, `%`_dim{i#106404}(8))] +[visit_exp lanetype#24198] +[visit_id lanetype#24198] +[visit_exp dim#24198] +[visit_id dim#24198] +[visit_exp i#106397] +[visit_id i#106397] +[visit_exp (`I16`_lanetype, `%`_dim{i#106404}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#106404}(8)] +[visit_exp i#106404] +[visit_id i#106404] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `GE`_vrelop_{sx#23942}(`U`_sx)] +[visit_exp sx#23942] +[visit_id sx#23942] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#24240 i#106499 i#106506 lanetype#24240 shape#4116 +dims \ I = dim#24240, i#106499, i#106506, lanetype#24240, shape#4116 +[visit_exp `VRELOP`_instr{shape#4116}(`%X%`_shape{lanetype#24240, dim#24240, i#106499}(`I32`_lanetype, `%`_dim{i#106506}(4)), `EQ`_vrelop_)] +[visit_exp shape#4116] +[visit_id shape#4116] +[visit_exp (`%X%`_shape{lanetype#24240, dim#24240, i#106499}(`I32`_lanetype, `%`_dim{i#106506}(4)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#24240, dim#24240, i#106499}(`I32`_lanetype, `%`_dim{i#106506}(4))] +[visit_exp lanetype#24240] +[visit_id lanetype#24240] +[visit_exp dim#24240] +[visit_id dim#24240] +[visit_exp i#106499] +[visit_id i#106499] +[visit_exp (`I32`_lanetype, `%`_dim{i#106506}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#106506}(4)] +[visit_exp i#106506] +[visit_id i#106506] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[check_dims] I dim#24267 i#106556 i#106563 lanetype#24267 shape#4118 +dims \ I = dim#24267, i#106556, i#106563, lanetype#24267, shape#4118 +[visit_exp `VRELOP`_instr{shape#4118}(`%X%`_shape{lanetype#24267, dim#24267, i#106556}(`I32`_lanetype, `%`_dim{i#106563}(4)), `NE`_vrelop_)] +[visit_exp shape#4118] +[visit_id shape#4118] +[visit_exp (`%X%`_shape{lanetype#24267, dim#24267, i#106556}(`I32`_lanetype, `%`_dim{i#106563}(4)), `NE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#24267, dim#24267, i#106556}(`I32`_lanetype, `%`_dim{i#106563}(4))] +[visit_exp lanetype#24267] +[visit_id lanetype#24267] +[visit_exp dim#24267] +[visit_id dim#24267] +[visit_exp i#106556] +[visit_id i#106556] +[visit_exp (`I32`_lanetype, `%`_dim{i#106563}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#106563}(4)] +[visit_exp i#106563] +[visit_id i#106563] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[check_dims] I dim#24294 i#106613 i#106620 lanetype#24294 shape#4120 sx#24186 +dims \ I = dim#24294, i#106613, i#106620, lanetype#24294, shape#4120, sx#24186 +[visit_exp `VRELOP`_instr{shape#4120}(`%X%`_shape{lanetype#24294, dim#24294, i#106613}(`I32`_lanetype, `%`_dim{i#106620}(4)), `LT`_vrelop_{sx#24186}(`S`_sx))] +[visit_exp shape#4120] +[visit_id shape#4120] +[visit_exp (`%X%`_shape{lanetype#24294, dim#24294, i#106613}(`I32`_lanetype, `%`_dim{i#106620}(4)), `LT`_vrelop_{sx#24186}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#24294, dim#24294, i#106613}(`I32`_lanetype, `%`_dim{i#106620}(4))] +[visit_exp lanetype#24294] +[visit_id lanetype#24294] +[visit_exp dim#24294] +[visit_id dim#24294] +[visit_exp i#106613] +[visit_id i#106613] +[visit_exp (`I32`_lanetype, `%`_dim{i#106620}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#106620}(4)] +[visit_exp i#106620] +[visit_id i#106620] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `LT`_vrelop_{sx#24186}(`S`_sx)] +[visit_exp sx#24186] +[visit_id sx#24186] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#24336 i#106715 i#106722 lanetype#24336 shape#4122 sx#24310 +dims \ I = dim#24336, i#106715, i#106722, lanetype#24336, shape#4122, sx#24310 +[visit_exp `VRELOP`_instr{shape#4122}(`%X%`_shape{lanetype#24336, dim#24336, i#106715}(`I32`_lanetype, `%`_dim{i#106722}(4)), `LT`_vrelop_{sx#24310}(`U`_sx))] +[visit_exp shape#4122] +[visit_id shape#4122] +[visit_exp (`%X%`_shape{lanetype#24336, dim#24336, i#106715}(`I32`_lanetype, `%`_dim{i#106722}(4)), `LT`_vrelop_{sx#24310}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#24336, dim#24336, i#106715}(`I32`_lanetype, `%`_dim{i#106722}(4))] +[visit_exp lanetype#24336] +[visit_id lanetype#24336] +[visit_exp dim#24336] +[visit_id dim#24336] +[visit_exp i#106715] +[visit_id i#106715] +[visit_exp (`I32`_lanetype, `%`_dim{i#106722}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#106722}(4)] +[visit_exp i#106722] +[visit_id i#106722] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `LT`_vrelop_{sx#24310}(`U`_sx)] +[visit_exp sx#24310] +[visit_id sx#24310] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#24378 i#106817 i#106824 lanetype#24378 shape#4124 sx#24434 +dims \ I = dim#24378, i#106817, i#106824, lanetype#24378, shape#4124, sx#24434 +[visit_exp `VRELOP`_instr{shape#4124}(`%X%`_shape{lanetype#24378, dim#24378, i#106817}(`I32`_lanetype, `%`_dim{i#106824}(4)), `GT`_vrelop_{sx#24434}(`S`_sx))] +[visit_exp shape#4124] +[visit_id shape#4124] +[visit_exp (`%X%`_shape{lanetype#24378, dim#24378, i#106817}(`I32`_lanetype, `%`_dim{i#106824}(4)), `GT`_vrelop_{sx#24434}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#24378, dim#24378, i#106817}(`I32`_lanetype, `%`_dim{i#106824}(4))] +[visit_exp lanetype#24378] +[visit_id lanetype#24378] +[visit_exp dim#24378] +[visit_id dim#24378] +[visit_exp i#106817] +[visit_id i#106817] +[visit_exp (`I32`_lanetype, `%`_dim{i#106824}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#106824}(4)] +[visit_exp i#106824] +[visit_id i#106824] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `GT`_vrelop_{sx#24434}(`S`_sx)] +[visit_exp sx#24434] +[visit_id sx#24434] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#24420 i#106919 i#106926 lanetype#24420 shape#4126 sx#24558 +dims \ I = dim#24420, i#106919, i#106926, lanetype#24420, shape#4126, sx#24558 +[visit_exp `VRELOP`_instr{shape#4126}(`%X%`_shape{lanetype#24420, dim#24420, i#106919}(`I32`_lanetype, `%`_dim{i#106926}(4)), `GT`_vrelop_{sx#24558}(`U`_sx))] +[visit_exp shape#4126] +[visit_id shape#4126] +[visit_exp (`%X%`_shape{lanetype#24420, dim#24420, i#106919}(`I32`_lanetype, `%`_dim{i#106926}(4)), `GT`_vrelop_{sx#24558}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#24420, dim#24420, i#106919}(`I32`_lanetype, `%`_dim{i#106926}(4))] +[visit_exp lanetype#24420] +[visit_id lanetype#24420] +[visit_exp dim#24420] +[visit_id dim#24420] +[visit_exp i#106919] +[visit_id i#106919] +[visit_exp (`I32`_lanetype, `%`_dim{i#106926}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#106926}(4)] +[visit_exp i#106926] +[visit_id i#106926] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `GT`_vrelop_{sx#24558}(`U`_sx)] +[visit_exp sx#24558] +[visit_id sx#24558] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#24462 i#107021 i#107028 lanetype#24462 shape#4128 sx#24682 +dims \ I = dim#24462, i#107021, i#107028, lanetype#24462, shape#4128, sx#24682 +[visit_exp `VRELOP`_instr{shape#4128}(`%X%`_shape{lanetype#24462, dim#24462, i#107021}(`I32`_lanetype, `%`_dim{i#107028}(4)), `LE`_vrelop_{sx#24682}(`S`_sx))] +[visit_exp shape#4128] +[visit_id shape#4128] +[visit_exp (`%X%`_shape{lanetype#24462, dim#24462, i#107021}(`I32`_lanetype, `%`_dim{i#107028}(4)), `LE`_vrelop_{sx#24682}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#24462, dim#24462, i#107021}(`I32`_lanetype, `%`_dim{i#107028}(4))] +[visit_exp lanetype#24462] +[visit_id lanetype#24462] +[visit_exp dim#24462] +[visit_id dim#24462] +[visit_exp i#107021] +[visit_id i#107021] +[visit_exp (`I32`_lanetype, `%`_dim{i#107028}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#107028}(4)] +[visit_exp i#107028] +[visit_id i#107028] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `LE`_vrelop_{sx#24682}(`S`_sx)] +[visit_exp sx#24682] +[visit_id sx#24682] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#24504 i#107123 i#107130 lanetype#24504 shape#4130 sx#24806 +dims \ I = dim#24504, i#107123, i#107130, lanetype#24504, shape#4130, sx#24806 +[visit_exp `VRELOP`_instr{shape#4130}(`%X%`_shape{lanetype#24504, dim#24504, i#107123}(`I32`_lanetype, `%`_dim{i#107130}(4)), `LE`_vrelop_{sx#24806}(`U`_sx))] +[visit_exp shape#4130] +[visit_id shape#4130] +[visit_exp (`%X%`_shape{lanetype#24504, dim#24504, i#107123}(`I32`_lanetype, `%`_dim{i#107130}(4)), `LE`_vrelop_{sx#24806}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#24504, dim#24504, i#107123}(`I32`_lanetype, `%`_dim{i#107130}(4))] +[visit_exp lanetype#24504] +[visit_id lanetype#24504] +[visit_exp dim#24504] +[visit_id dim#24504] +[visit_exp i#107123] +[visit_id i#107123] +[visit_exp (`I32`_lanetype, `%`_dim{i#107130}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#107130}(4)] +[visit_exp i#107130] +[visit_id i#107130] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `LE`_vrelop_{sx#24806}(`U`_sx)] +[visit_exp sx#24806] +[visit_id sx#24806] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#24546 i#107225 i#107232 lanetype#24546 shape#4132 sx#24930 +dims \ I = dim#24546, i#107225, i#107232, lanetype#24546, shape#4132, sx#24930 +[visit_exp `VRELOP`_instr{shape#4132}(`%X%`_shape{lanetype#24546, dim#24546, i#107225}(`I32`_lanetype, `%`_dim{i#107232}(4)), `GE`_vrelop_{sx#24930}(`S`_sx))] +[visit_exp shape#4132] +[visit_id shape#4132] +[visit_exp (`%X%`_shape{lanetype#24546, dim#24546, i#107225}(`I32`_lanetype, `%`_dim{i#107232}(4)), `GE`_vrelop_{sx#24930}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#24546, dim#24546, i#107225}(`I32`_lanetype, `%`_dim{i#107232}(4))] +[visit_exp lanetype#24546] +[visit_id lanetype#24546] +[visit_exp dim#24546] +[visit_id dim#24546] +[visit_exp i#107225] +[visit_id i#107225] +[visit_exp (`I32`_lanetype, `%`_dim{i#107232}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#107232}(4)] +[visit_exp i#107232] +[visit_id i#107232] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `GE`_vrelop_{sx#24930}(`S`_sx)] +[visit_exp sx#24930] +[visit_id sx#24930] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#24588 i#107327 i#107334 lanetype#24588 shape#4134 sx#25054 +dims \ I = dim#24588, i#107327, i#107334, lanetype#24588, shape#4134, sx#25054 +[visit_exp `VRELOP`_instr{shape#4134}(`%X%`_shape{lanetype#24588, dim#24588, i#107327}(`I32`_lanetype, `%`_dim{i#107334}(4)), `GE`_vrelop_{sx#25054}(`U`_sx))] +[visit_exp shape#4134] +[visit_id shape#4134] +[visit_exp (`%X%`_shape{lanetype#24588, dim#24588, i#107327}(`I32`_lanetype, `%`_dim{i#107334}(4)), `GE`_vrelop_{sx#25054}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#24588, dim#24588, i#107327}(`I32`_lanetype, `%`_dim{i#107334}(4))] +[visit_exp lanetype#24588] +[visit_id lanetype#24588] +[visit_exp dim#24588] +[visit_id dim#24588] +[visit_exp i#107327] +[visit_id i#107327] +[visit_exp (`I32`_lanetype, `%`_dim{i#107334}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#107334}(4)] +[visit_exp i#107334] +[visit_id i#107334] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `GE`_vrelop_{sx#25054}(`U`_sx)] +[visit_exp sx#25054] +[visit_id sx#25054] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#24630 i#107429 i#107436 lanetype#24630 shape#4136 +dims \ I = dim#24630, i#107429, i#107436, lanetype#24630, shape#4136 +[visit_exp `VRELOP`_instr{shape#4136}(`%X%`_shape{lanetype#24630, dim#24630, i#107429}(`I64`_lanetype, `%`_dim{i#107436}(2)), `EQ`_vrelop_)] +[visit_exp shape#4136] +[visit_id shape#4136] +[visit_exp (`%X%`_shape{lanetype#24630, dim#24630, i#107429}(`I64`_lanetype, `%`_dim{i#107436}(2)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#24630, dim#24630, i#107429}(`I64`_lanetype, `%`_dim{i#107436}(2))] +[visit_exp lanetype#24630] +[visit_id lanetype#24630] +[visit_exp dim#24630] +[visit_id dim#24630] +[visit_exp i#107429] +[visit_id i#107429] +[visit_exp (`I64`_lanetype, `%`_dim{i#107436}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#107436}(2)] +[visit_exp i#107436] +[visit_id i#107436] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[check_dims] I dim#24657 i#107486 i#107493 lanetype#24657 shape#4138 +dims \ I = dim#24657, i#107486, i#107493, lanetype#24657, shape#4138 +[visit_exp `VRELOP`_instr{shape#4138}(`%X%`_shape{lanetype#24657, dim#24657, i#107486}(`I64`_lanetype, `%`_dim{i#107493}(2)), `NE`_vrelop_)] +[visit_exp shape#4138] +[visit_id shape#4138] +[visit_exp (`%X%`_shape{lanetype#24657, dim#24657, i#107486}(`I64`_lanetype, `%`_dim{i#107493}(2)), `NE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#24657, dim#24657, i#107486}(`I64`_lanetype, `%`_dim{i#107493}(2))] +[visit_exp lanetype#24657] +[visit_id lanetype#24657] +[visit_exp dim#24657] +[visit_id dim#24657] +[visit_exp i#107486] +[visit_id i#107486] +[visit_exp (`I64`_lanetype, `%`_dim{i#107493}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#107493}(2)] +[visit_exp i#107493] +[visit_id i#107493] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[check_dims] I dim#24684 i#107543 i#107550 lanetype#24684 shape#4140 sx#25298 +dims \ I = dim#24684, i#107543, i#107550, lanetype#24684, shape#4140, sx#25298 +[visit_exp `VRELOP`_instr{shape#4140}(`%X%`_shape{lanetype#24684, dim#24684, i#107543}(`I64`_lanetype, `%`_dim{i#107550}(2)), `LT`_vrelop_{sx#25298}(`S`_sx))] +[visit_exp shape#4140] +[visit_id shape#4140] +[visit_exp (`%X%`_shape{lanetype#24684, dim#24684, i#107543}(`I64`_lanetype, `%`_dim{i#107550}(2)), `LT`_vrelop_{sx#25298}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#24684, dim#24684, i#107543}(`I64`_lanetype, `%`_dim{i#107550}(2))] +[visit_exp lanetype#24684] +[visit_id lanetype#24684] +[visit_exp dim#24684] +[visit_id dim#24684] +[visit_exp i#107543] +[visit_id i#107543] +[visit_exp (`I64`_lanetype, `%`_dim{i#107550}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#107550}(2)] +[visit_exp i#107550] +[visit_id i#107550] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `LT`_vrelop_{sx#25298}(`S`_sx)] +[visit_exp sx#25298] +[visit_id sx#25298] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#24726 i#107645 i#107652 lanetype#24726 shape#4142 sx#25422 +dims \ I = dim#24726, i#107645, i#107652, lanetype#24726, shape#4142, sx#25422 +[visit_exp `VRELOP`_instr{shape#4142}(`%X%`_shape{lanetype#24726, dim#24726, i#107645}(`I64`_lanetype, `%`_dim{i#107652}(2)), `GT`_vrelop_{sx#25422}(`S`_sx))] +[visit_exp shape#4142] +[visit_id shape#4142] +[visit_exp (`%X%`_shape{lanetype#24726, dim#24726, i#107645}(`I64`_lanetype, `%`_dim{i#107652}(2)), `GT`_vrelop_{sx#25422}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#24726, dim#24726, i#107645}(`I64`_lanetype, `%`_dim{i#107652}(2))] +[visit_exp lanetype#24726] +[visit_id lanetype#24726] +[visit_exp dim#24726] +[visit_id dim#24726] +[visit_exp i#107645] +[visit_id i#107645] +[visit_exp (`I64`_lanetype, `%`_dim{i#107652}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#107652}(2)] +[visit_exp i#107652] +[visit_id i#107652] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `GT`_vrelop_{sx#25422}(`S`_sx)] +[visit_exp sx#25422] +[visit_id sx#25422] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#24768 i#107747 i#107754 lanetype#24768 shape#4144 sx#25546 +dims \ I = dim#24768, i#107747, i#107754, lanetype#24768, shape#4144, sx#25546 +[visit_exp `VRELOP`_instr{shape#4144}(`%X%`_shape{lanetype#24768, dim#24768, i#107747}(`I64`_lanetype, `%`_dim{i#107754}(2)), `LE`_vrelop_{sx#25546}(`S`_sx))] +[visit_exp shape#4144] +[visit_id shape#4144] +[visit_exp (`%X%`_shape{lanetype#24768, dim#24768, i#107747}(`I64`_lanetype, `%`_dim{i#107754}(2)), `LE`_vrelop_{sx#25546}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#24768, dim#24768, i#107747}(`I64`_lanetype, `%`_dim{i#107754}(2))] +[visit_exp lanetype#24768] +[visit_id lanetype#24768] +[visit_exp dim#24768] +[visit_id dim#24768] +[visit_exp i#107747] +[visit_id i#107747] +[visit_exp (`I64`_lanetype, `%`_dim{i#107754}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#107754}(2)] +[visit_exp i#107754] +[visit_id i#107754] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `LE`_vrelop_{sx#25546}(`S`_sx)] +[visit_exp sx#25546] +[visit_id sx#25546] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#24810 i#107849 i#107856 lanetype#24810 shape#4146 sx#25670 +dims \ I = dim#24810, i#107849, i#107856, lanetype#24810, shape#4146, sx#25670 +[visit_exp `VRELOP`_instr{shape#4146}(`%X%`_shape{lanetype#24810, dim#24810, i#107849}(`I64`_lanetype, `%`_dim{i#107856}(2)), `GE`_vrelop_{sx#25670}(`S`_sx))] +[visit_exp shape#4146] +[visit_id shape#4146] +[visit_exp (`%X%`_shape{lanetype#24810, dim#24810, i#107849}(`I64`_lanetype, `%`_dim{i#107856}(2)), `GE`_vrelop_{sx#25670}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#24810, dim#24810, i#107849}(`I64`_lanetype, `%`_dim{i#107856}(2))] +[visit_exp lanetype#24810] +[visit_id lanetype#24810] +[visit_exp dim#24810] +[visit_id dim#24810] +[visit_exp i#107849] +[visit_id i#107849] +[visit_exp (`I64`_lanetype, `%`_dim{i#107856}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#107856}(2)] +[visit_exp i#107856] +[visit_id i#107856] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `GE`_vrelop_{sx#25670}(`S`_sx)] +[visit_exp sx#25670] +[visit_id sx#25670] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#24852 i#107951 i#107958 lanetype#24852 shape#4148 +dims \ I = dim#24852, i#107951, i#107958, lanetype#24852, shape#4148 +[visit_exp `VRELOP`_instr{shape#4148}(`%X%`_shape{lanetype#24852, dim#24852, i#107951}(`F32`_lanetype, `%`_dim{i#107958}(4)), `EQ`_vrelop_)] +[visit_exp shape#4148] +[visit_id shape#4148] +[visit_exp (`%X%`_shape{lanetype#24852, dim#24852, i#107951}(`F32`_lanetype, `%`_dim{i#107958}(4)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#24852, dim#24852, i#107951}(`F32`_lanetype, `%`_dim{i#107958}(4))] +[visit_exp lanetype#24852] +[visit_id lanetype#24852] +[visit_exp dim#24852] +[visit_id dim#24852] +[visit_exp i#107951] +[visit_id i#107951] +[visit_exp (`F32`_lanetype, `%`_dim{i#107958}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#107958}(4)] +[visit_exp i#107958] +[visit_id i#107958] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[check_dims] I dim#24894 i#108023 i#108030 lanetype#24894 shape#4150 +dims \ I = dim#24894, i#108023, i#108030, lanetype#24894, shape#4150 +[visit_exp `VRELOP`_instr{shape#4150}(`%X%`_shape{lanetype#24894, dim#24894, i#108023}(`F32`_lanetype, `%`_dim{i#108030}(4)), `NE`_vrelop_)] +[visit_exp shape#4150] +[visit_id shape#4150] +[visit_exp (`%X%`_shape{lanetype#24894, dim#24894, i#108023}(`F32`_lanetype, `%`_dim{i#108030}(4)), `NE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#24894, dim#24894, i#108023}(`F32`_lanetype, `%`_dim{i#108030}(4))] +[visit_exp lanetype#24894] +[visit_id lanetype#24894] +[visit_exp dim#24894] +[visit_id dim#24894] +[visit_exp i#108023] +[visit_id i#108023] +[visit_exp (`F32`_lanetype, `%`_dim{i#108030}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108030}(4)] +[visit_exp i#108030] +[visit_id i#108030] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[check_dims] I dim#24936 i#108095 i#108102 lanetype#24936 shape#4152 +dims \ I = dim#24936, i#108095, i#108102, lanetype#24936, shape#4152 +[visit_exp `VRELOP`_instr{shape#4152}(`%X%`_shape{lanetype#24936, dim#24936, i#108095}(`F32`_lanetype, `%`_dim{i#108102}(4)), `LT`_vrelop_)] +[visit_exp shape#4152] +[visit_id shape#4152] +[visit_exp (`%X%`_shape{lanetype#24936, dim#24936, i#108095}(`F32`_lanetype, `%`_dim{i#108102}(4)), `LT`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#24936, dim#24936, i#108095}(`F32`_lanetype, `%`_dim{i#108102}(4))] +[visit_exp lanetype#24936] +[visit_id lanetype#24936] +[visit_exp dim#24936] +[visit_id dim#24936] +[visit_exp i#108095] +[visit_id i#108095] +[visit_exp (`F32`_lanetype, `%`_dim{i#108102}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108102}(4)] +[visit_exp i#108102] +[visit_id i#108102] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `LT`_vrelop_] +[visit_exp ()] +[check_dims] I dim#24978 i#108167 i#108174 lanetype#24978 shape#4154 +dims \ I = dim#24978, i#108167, i#108174, lanetype#24978, shape#4154 +[visit_exp `VRELOP`_instr{shape#4154}(`%X%`_shape{lanetype#24978, dim#24978, i#108167}(`F32`_lanetype, `%`_dim{i#108174}(4)), `GT`_vrelop_)] +[visit_exp shape#4154] +[visit_id shape#4154] +[visit_exp (`%X%`_shape{lanetype#24978, dim#24978, i#108167}(`F32`_lanetype, `%`_dim{i#108174}(4)), `GT`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#24978, dim#24978, i#108167}(`F32`_lanetype, `%`_dim{i#108174}(4))] +[visit_exp lanetype#24978] +[visit_id lanetype#24978] +[visit_exp dim#24978] +[visit_id dim#24978] +[visit_exp i#108167] +[visit_id i#108167] +[visit_exp (`F32`_lanetype, `%`_dim{i#108174}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108174}(4)] +[visit_exp i#108174] +[visit_id i#108174] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `GT`_vrelop_] +[visit_exp ()] +[check_dims] I dim#25020 i#108239 i#108246 lanetype#25020 shape#4156 +dims \ I = dim#25020, i#108239, i#108246, lanetype#25020, shape#4156 +[visit_exp `VRELOP`_instr{shape#4156}(`%X%`_shape{lanetype#25020, dim#25020, i#108239}(`F32`_lanetype, `%`_dim{i#108246}(4)), `LE`_vrelop_)] +[visit_exp shape#4156] +[visit_id shape#4156] +[visit_exp (`%X%`_shape{lanetype#25020, dim#25020, i#108239}(`F32`_lanetype, `%`_dim{i#108246}(4)), `LE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#25020, dim#25020, i#108239}(`F32`_lanetype, `%`_dim{i#108246}(4))] +[visit_exp lanetype#25020] +[visit_id lanetype#25020] +[visit_exp dim#25020] +[visit_id dim#25020] +[visit_exp i#108239] +[visit_id i#108239] +[visit_exp (`F32`_lanetype, `%`_dim{i#108246}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108246}(4)] +[visit_exp i#108246] +[visit_id i#108246] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `LE`_vrelop_] +[visit_exp ()] +[check_dims] I dim#25062 i#108311 i#108318 lanetype#25062 shape#4158 +dims \ I = dim#25062, i#108311, i#108318, lanetype#25062, shape#4158 +[visit_exp `VRELOP`_instr{shape#4158}(`%X%`_shape{lanetype#25062, dim#25062, i#108311}(`F32`_lanetype, `%`_dim{i#108318}(4)), `GE`_vrelop_)] +[visit_exp shape#4158] +[visit_id shape#4158] +[visit_exp (`%X%`_shape{lanetype#25062, dim#25062, i#108311}(`F32`_lanetype, `%`_dim{i#108318}(4)), `GE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#25062, dim#25062, i#108311}(`F32`_lanetype, `%`_dim{i#108318}(4))] +[visit_exp lanetype#25062] +[visit_id lanetype#25062] +[visit_exp dim#25062] +[visit_id dim#25062] +[visit_exp i#108311] +[visit_id i#108311] +[visit_exp (`F32`_lanetype, `%`_dim{i#108318}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108318}(4)] +[visit_exp i#108318] +[visit_id i#108318] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `GE`_vrelop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#25104 i#108383 i#108390 lanetype#25104 shape#4160 +dims \ I = dim#25104, i#108383, i#108390, lanetype#25104, shape#4160 +[visit_exp `VRELOP`_instr{shape#4160}(`%X%`_shape{lanetype#25104, dim#25104, i#108383}(`F64`_lanetype, `%`_dim{i#108390}(2)), `EQ`_vrelop_)] +[visit_exp shape#4160] +[visit_id shape#4160] +[visit_exp (`%X%`_shape{lanetype#25104, dim#25104, i#108383}(`F64`_lanetype, `%`_dim{i#108390}(2)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#25104, dim#25104, i#108383}(`F64`_lanetype, `%`_dim{i#108390}(2))] +[visit_exp lanetype#25104] +[visit_id lanetype#25104] +[visit_exp dim#25104] +[visit_id dim#25104] +[visit_exp i#108383] +[visit_id i#108383] +[visit_exp (`F64`_lanetype, `%`_dim{i#108390}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108390}(2)] +[visit_exp i#108390] +[visit_id i#108390] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `EQ`_vrelop_] +[visit_exp ()] +[check_dims] I dim#25146 i#108455 i#108462 lanetype#25146 shape#4162 +dims \ I = dim#25146, i#108455, i#108462, lanetype#25146, shape#4162 +[visit_exp `VRELOP`_instr{shape#4162}(`%X%`_shape{lanetype#25146, dim#25146, i#108455}(`F64`_lanetype, `%`_dim{i#108462}(2)), `NE`_vrelop_)] +[visit_exp shape#4162] +[visit_id shape#4162] +[visit_exp (`%X%`_shape{lanetype#25146, dim#25146, i#108455}(`F64`_lanetype, `%`_dim{i#108462}(2)), `NE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#25146, dim#25146, i#108455}(`F64`_lanetype, `%`_dim{i#108462}(2))] +[visit_exp lanetype#25146] +[visit_id lanetype#25146] +[visit_exp dim#25146] +[visit_id dim#25146] +[visit_exp i#108455] +[visit_id i#108455] +[visit_exp (`F64`_lanetype, `%`_dim{i#108462}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108462}(2)] +[visit_exp i#108462] +[visit_id i#108462] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `NE`_vrelop_] +[visit_exp ()] +[check_dims] I dim#25188 i#108527 i#108534 lanetype#25188 shape#4164 +dims \ I = dim#25188, i#108527, i#108534, lanetype#25188, shape#4164 +[visit_exp `VRELOP`_instr{shape#4164}(`%X%`_shape{lanetype#25188, dim#25188, i#108527}(`F64`_lanetype, `%`_dim{i#108534}(2)), `LT`_vrelop_)] +[visit_exp shape#4164] +[visit_id shape#4164] +[visit_exp (`%X%`_shape{lanetype#25188, dim#25188, i#108527}(`F64`_lanetype, `%`_dim{i#108534}(2)), `LT`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#25188, dim#25188, i#108527}(`F64`_lanetype, `%`_dim{i#108534}(2))] +[visit_exp lanetype#25188] +[visit_id lanetype#25188] +[visit_exp dim#25188] +[visit_id dim#25188] +[visit_exp i#108527] +[visit_id i#108527] +[visit_exp (`F64`_lanetype, `%`_dim{i#108534}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108534}(2)] +[visit_exp i#108534] +[visit_id i#108534] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `LT`_vrelop_] +[visit_exp ()] +[check_dims] I dim#25230 i#108599 i#108606 lanetype#25230 shape#4166 +dims \ I = dim#25230, i#108599, i#108606, lanetype#25230, shape#4166 +[visit_exp `VRELOP`_instr{shape#4166}(`%X%`_shape{lanetype#25230, dim#25230, i#108599}(`F64`_lanetype, `%`_dim{i#108606}(2)), `GT`_vrelop_)] +[visit_exp shape#4166] +[visit_id shape#4166] +[visit_exp (`%X%`_shape{lanetype#25230, dim#25230, i#108599}(`F64`_lanetype, `%`_dim{i#108606}(2)), `GT`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#25230, dim#25230, i#108599}(`F64`_lanetype, `%`_dim{i#108606}(2))] +[visit_exp lanetype#25230] +[visit_id lanetype#25230] +[visit_exp dim#25230] +[visit_id dim#25230] +[visit_exp i#108599] +[visit_id i#108599] +[visit_exp (`F64`_lanetype, `%`_dim{i#108606}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108606}(2)] +[visit_exp i#108606] +[visit_id i#108606] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `GT`_vrelop_] +[visit_exp ()] +[check_dims] I dim#25272 i#108671 i#108678 lanetype#25272 shape#4168 +dims \ I = dim#25272, i#108671, i#108678, lanetype#25272, shape#4168 +[visit_exp `VRELOP`_instr{shape#4168}(`%X%`_shape{lanetype#25272, dim#25272, i#108671}(`F64`_lanetype, `%`_dim{i#108678}(2)), `LE`_vrelop_)] +[visit_exp shape#4168] +[visit_id shape#4168] +[visit_exp (`%X%`_shape{lanetype#25272, dim#25272, i#108671}(`F64`_lanetype, `%`_dim{i#108678}(2)), `LE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#25272, dim#25272, i#108671}(`F64`_lanetype, `%`_dim{i#108678}(2))] +[visit_exp lanetype#25272] +[visit_id lanetype#25272] +[visit_exp dim#25272] +[visit_id dim#25272] +[visit_exp i#108671] +[visit_id i#108671] +[visit_exp (`F64`_lanetype, `%`_dim{i#108678}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108678}(2)] +[visit_exp i#108678] +[visit_id i#108678] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `LE`_vrelop_] +[visit_exp ()] +[check_dims] I dim#25314 i#108743 i#108750 lanetype#25314 shape#4170 +dims \ I = dim#25314, i#108743, i#108750, lanetype#25314, shape#4170 +[visit_exp `VRELOP`_instr{shape#4170}(`%X%`_shape{lanetype#25314, dim#25314, i#108743}(`F64`_lanetype, `%`_dim{i#108750}(2)), `GE`_vrelop_)] +[visit_exp shape#4170] +[visit_id shape#4170] +[visit_exp (`%X%`_shape{lanetype#25314, dim#25314, i#108743}(`F64`_lanetype, `%`_dim{i#108750}(2)), `GE`_vrelop_)] +[visit_exp `%X%`_shape{lanetype#25314, dim#25314, i#108743}(`F64`_lanetype, `%`_dim{i#108750}(2))] +[visit_exp lanetype#25314] +[visit_id lanetype#25314] +[visit_exp dim#25314] +[visit_id dim#25314] +[visit_exp i#108743] +[visit_id i#108743] +[visit_exp (`F64`_lanetype, `%`_dim{i#108750}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108750}(2)] +[visit_exp i#108750] +[visit_id i#108750] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `GE`_vrelop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I vectype#318 vvunop#9 +dims \ I = vectype#318, vvunop#9 +[visit_exp `VVUNOP`_instr{vectype#318, vvunop#9}(`V128`_vectype, `NOT`_vvunop)] +[visit_exp vectype#318] +[visit_id vectype#318] +[visit_exp vvunop#9] +[visit_id vvunop#9] +[visit_exp (`V128`_vectype, `NOT`_vvunop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `NOT`_vvunop] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#25356 i#108815 i#108822 lanetype#25356 shape#4172 +dims \ I = dim#25356, i#108815, i#108822, lanetype#25356, shape#4172 +[visit_exp `VUNOP`_instr{shape#4172}(`%X%`_shape{lanetype#25356, dim#25356, i#108815}(`I8`_lanetype, `%`_dim{i#108822}(16)), `ABS`_vunop_)] +[visit_exp shape#4172] +[visit_id shape#4172] +[visit_exp (`%X%`_shape{lanetype#25356, dim#25356, i#108815}(`I8`_lanetype, `%`_dim{i#108822}(16)), `ABS`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25356, dim#25356, i#108815}(`I8`_lanetype, `%`_dim{i#108822}(16))] +[visit_exp lanetype#25356] +[visit_id lanetype#25356] +[visit_exp dim#25356] +[visit_id dim#25356] +[visit_exp i#108815] +[visit_id i#108815] +[visit_exp (`I8`_lanetype, `%`_dim{i#108822}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108822}(16)] +[visit_exp i#108822] +[visit_id i#108822] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[check_dims] I dim#25383 i#108872 i#108879 lanetype#25383 shape#4174 +dims \ I = dim#25383, i#108872, i#108879, lanetype#25383, shape#4174 +[visit_exp `VUNOP`_instr{shape#4174}(`%X%`_shape{lanetype#25383, dim#25383, i#108872}(`I8`_lanetype, `%`_dim{i#108879}(16)), `NEG`_vunop_)] +[visit_exp shape#4174] +[visit_id shape#4174] +[visit_exp (`%X%`_shape{lanetype#25383, dim#25383, i#108872}(`I8`_lanetype, `%`_dim{i#108879}(16)), `NEG`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25383, dim#25383, i#108872}(`I8`_lanetype, `%`_dim{i#108879}(16))] +[visit_exp lanetype#25383] +[visit_id lanetype#25383] +[visit_exp dim#25383] +[visit_id dim#25383] +[visit_exp i#108872] +[visit_id i#108872] +[visit_exp (`I8`_lanetype, `%`_dim{i#108879}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108879}(16)] +[visit_exp i#108879] +[visit_id i#108879] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[check_dims] I dim#25410 i#108929 i#108936 lanetype#25410 shape#4176 +dims \ I = dim#25410, i#108929, i#108936, lanetype#25410, shape#4176 +[visit_exp `VUNOP`_instr{shape#4176}(`%X%`_shape{lanetype#25410, dim#25410, i#108929}(`I8`_lanetype, `%`_dim{i#108936}(16)), `POPCNT`_vunop_)] +[visit_exp shape#4176] +[visit_id shape#4176] +[visit_exp (`%X%`_shape{lanetype#25410, dim#25410, i#108929}(`I8`_lanetype, `%`_dim{i#108936}(16)), `POPCNT`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25410, dim#25410, i#108929}(`I8`_lanetype, `%`_dim{i#108936}(16))] +[visit_exp lanetype#25410] +[visit_id lanetype#25410] +[visit_exp dim#25410] +[visit_id dim#25410] +[visit_exp i#108929] +[visit_id i#108929] +[visit_exp (`I8`_lanetype, `%`_dim{i#108936}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108936}(16)] +[visit_exp i#108936] +[visit_id i#108936] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `POPCNT`_vunop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#25437 i#108986 i#108993 lanetype#25437 shape#4178 +dims \ I = dim#25437, i#108986, i#108993, lanetype#25437, shape#4178 +[visit_exp `VUNOP`_instr{shape#4178}(`%X%`_shape{lanetype#25437, dim#25437, i#108986}(`I16`_lanetype, `%`_dim{i#108993}(8)), `ABS`_vunop_)] +[visit_exp shape#4178] +[visit_id shape#4178] +[visit_exp (`%X%`_shape{lanetype#25437, dim#25437, i#108986}(`I16`_lanetype, `%`_dim{i#108993}(8)), `ABS`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25437, dim#25437, i#108986}(`I16`_lanetype, `%`_dim{i#108993}(8))] +[visit_exp lanetype#25437] +[visit_id lanetype#25437] +[visit_exp dim#25437] +[visit_id dim#25437] +[visit_exp i#108986] +[visit_id i#108986] +[visit_exp (`I16`_lanetype, `%`_dim{i#108993}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#108993}(8)] +[visit_exp i#108993] +[visit_id i#108993] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[check_dims] I dim#25464 i#109043 i#109050 lanetype#25464 shape#4180 +dims \ I = dim#25464, i#109043, i#109050, lanetype#25464, shape#4180 +[visit_exp `VUNOP`_instr{shape#4180}(`%X%`_shape{lanetype#25464, dim#25464, i#109043}(`I16`_lanetype, `%`_dim{i#109050}(8)), `NEG`_vunop_)] +[visit_exp shape#4180] +[visit_id shape#4180] +[visit_exp (`%X%`_shape{lanetype#25464, dim#25464, i#109043}(`I16`_lanetype, `%`_dim{i#109050}(8)), `NEG`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25464, dim#25464, i#109043}(`I16`_lanetype, `%`_dim{i#109050}(8))] +[visit_exp lanetype#25464] +[visit_id lanetype#25464] +[visit_exp dim#25464] +[visit_id dim#25464] +[visit_exp i#109043] +[visit_id i#109043] +[visit_exp (`I16`_lanetype, `%`_dim{i#109050}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109050}(8)] +[visit_exp i#109050] +[visit_id i#109050] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#25491 i#109100 i#109107 lanetype#25491 shape#4182 +dims \ I = dim#25491, i#109100, i#109107, lanetype#25491, shape#4182 +[visit_exp `VUNOP`_instr{shape#4182}(`%X%`_shape{lanetype#25491, dim#25491, i#109100}(`I32`_lanetype, `%`_dim{i#109107}(4)), `ABS`_vunop_)] +[visit_exp shape#4182] +[visit_id shape#4182] +[visit_exp (`%X%`_shape{lanetype#25491, dim#25491, i#109100}(`I32`_lanetype, `%`_dim{i#109107}(4)), `ABS`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25491, dim#25491, i#109100}(`I32`_lanetype, `%`_dim{i#109107}(4))] +[visit_exp lanetype#25491] +[visit_id lanetype#25491] +[visit_exp dim#25491] +[visit_id dim#25491] +[visit_exp i#109100] +[visit_id i#109100] +[visit_exp (`I32`_lanetype, `%`_dim{i#109107}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109107}(4)] +[visit_exp i#109107] +[visit_id i#109107] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[check_dims] I dim#25518 i#109157 i#109164 lanetype#25518 shape#4184 +dims \ I = dim#25518, i#109157, i#109164, lanetype#25518, shape#4184 +[visit_exp `VUNOP`_instr{shape#4184}(`%X%`_shape{lanetype#25518, dim#25518, i#109157}(`I32`_lanetype, `%`_dim{i#109164}(4)), `NEG`_vunop_)] +[visit_exp shape#4184] +[visit_id shape#4184] +[visit_exp (`%X%`_shape{lanetype#25518, dim#25518, i#109157}(`I32`_lanetype, `%`_dim{i#109164}(4)), `NEG`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25518, dim#25518, i#109157}(`I32`_lanetype, `%`_dim{i#109164}(4))] +[visit_exp lanetype#25518] +[visit_id lanetype#25518] +[visit_exp dim#25518] +[visit_id dim#25518] +[visit_exp i#109157] +[visit_id i#109157] +[visit_exp (`I32`_lanetype, `%`_dim{i#109164}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109164}(4)] +[visit_exp i#109164] +[visit_id i#109164] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#25545 i#109214 i#109221 lanetype#25545 shape#4186 +dims \ I = dim#25545, i#109214, i#109221, lanetype#25545, shape#4186 +[visit_exp `VUNOP`_instr{shape#4186}(`%X%`_shape{lanetype#25545, dim#25545, i#109214}(`I64`_lanetype, `%`_dim{i#109221}(2)), `ABS`_vunop_)] +[visit_exp shape#4186] +[visit_id shape#4186] +[visit_exp (`%X%`_shape{lanetype#25545, dim#25545, i#109214}(`I64`_lanetype, `%`_dim{i#109221}(2)), `ABS`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25545, dim#25545, i#109214}(`I64`_lanetype, `%`_dim{i#109221}(2))] +[visit_exp lanetype#25545] +[visit_id lanetype#25545] +[visit_exp dim#25545] +[visit_id dim#25545] +[visit_exp i#109214] +[visit_id i#109214] +[visit_exp (`I64`_lanetype, `%`_dim{i#109221}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109221}(2)] +[visit_exp i#109221] +[visit_id i#109221] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[check_dims] I dim#25572 i#109271 i#109278 lanetype#25572 shape#4188 +dims \ I = dim#25572, i#109271, i#109278, lanetype#25572, shape#4188 +[visit_exp `VUNOP`_instr{shape#4188}(`%X%`_shape{lanetype#25572, dim#25572, i#109271}(`I64`_lanetype, `%`_dim{i#109278}(2)), `NEG`_vunop_)] +[visit_exp shape#4188] +[visit_id shape#4188] +[visit_exp (`%X%`_shape{lanetype#25572, dim#25572, i#109271}(`I64`_lanetype, `%`_dim{i#109278}(2)), `NEG`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25572, dim#25572, i#109271}(`I64`_lanetype, `%`_dim{i#109278}(2))] +[visit_exp lanetype#25572] +[visit_id lanetype#25572] +[visit_exp dim#25572] +[visit_id dim#25572] +[visit_exp i#109271] +[visit_id i#109271] +[visit_exp (`I64`_lanetype, `%`_dim{i#109278}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109278}(2)] +[visit_exp i#109278] +[visit_id i#109278] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#25599 i#109328 i#109335 lanetype#25599 shape#4190 +dims \ I = dim#25599, i#109328, i#109335, lanetype#25599, shape#4190 +[visit_exp `VUNOP`_instr{shape#4190}(`%X%`_shape{lanetype#25599, dim#25599, i#109328}(`F32`_lanetype, `%`_dim{i#109335}(4)), `ABS`_vunop_)] +[visit_exp shape#4190] +[visit_id shape#4190] +[visit_exp (`%X%`_shape{lanetype#25599, dim#25599, i#109328}(`F32`_lanetype, `%`_dim{i#109335}(4)), `ABS`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25599, dim#25599, i#109328}(`F32`_lanetype, `%`_dim{i#109335}(4))] +[visit_exp lanetype#25599] +[visit_id lanetype#25599] +[visit_exp dim#25599] +[visit_id dim#25599] +[visit_exp i#109328] +[visit_id i#109328] +[visit_exp (`F32`_lanetype, `%`_dim{i#109335}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109335}(4)] +[visit_exp i#109335] +[visit_id i#109335] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[check_dims] I dim#25641 i#109400 i#109407 lanetype#25641 shape#4192 +dims \ I = dim#25641, i#109400, i#109407, lanetype#25641, shape#4192 +[visit_exp `VUNOP`_instr{shape#4192}(`%X%`_shape{lanetype#25641, dim#25641, i#109400}(`F32`_lanetype, `%`_dim{i#109407}(4)), `NEG`_vunop_)] +[visit_exp shape#4192] +[visit_id shape#4192] +[visit_exp (`%X%`_shape{lanetype#25641, dim#25641, i#109400}(`F32`_lanetype, `%`_dim{i#109407}(4)), `NEG`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25641, dim#25641, i#109400}(`F32`_lanetype, `%`_dim{i#109407}(4))] +[visit_exp lanetype#25641] +[visit_id lanetype#25641] +[visit_exp dim#25641] +[visit_id dim#25641] +[visit_exp i#109400] +[visit_id i#109400] +[visit_exp (`F32`_lanetype, `%`_dim{i#109407}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109407}(4)] +[visit_exp i#109407] +[visit_id i#109407] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[check_dims] I dim#25683 i#109472 i#109479 lanetype#25683 shape#4194 +dims \ I = dim#25683, i#109472, i#109479, lanetype#25683, shape#4194 +[visit_exp `VUNOP`_instr{shape#4194}(`%X%`_shape{lanetype#25683, dim#25683, i#109472}(`F32`_lanetype, `%`_dim{i#109479}(4)), `SQRT`_vunop_)] +[visit_exp shape#4194] +[visit_id shape#4194] +[visit_exp (`%X%`_shape{lanetype#25683, dim#25683, i#109472}(`F32`_lanetype, `%`_dim{i#109479}(4)), `SQRT`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25683, dim#25683, i#109472}(`F32`_lanetype, `%`_dim{i#109479}(4))] +[visit_exp lanetype#25683] +[visit_id lanetype#25683] +[visit_exp dim#25683] +[visit_id dim#25683] +[visit_exp i#109472] +[visit_id i#109472] +[visit_exp (`F32`_lanetype, `%`_dim{i#109479}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109479}(4)] +[visit_exp i#109479] +[visit_id i#109479] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `SQRT`_vunop_] +[visit_exp ()] +[check_dims] I dim#25725 i#109544 i#109551 lanetype#25725 shape#4196 +dims \ I = dim#25725, i#109544, i#109551, lanetype#25725, shape#4196 +[visit_exp `VUNOP`_instr{shape#4196}(`%X%`_shape{lanetype#25725, dim#25725, i#109544}(`F32`_lanetype, `%`_dim{i#109551}(4)), `CEIL`_vunop_)] +[visit_exp shape#4196] +[visit_id shape#4196] +[visit_exp (`%X%`_shape{lanetype#25725, dim#25725, i#109544}(`F32`_lanetype, `%`_dim{i#109551}(4)), `CEIL`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25725, dim#25725, i#109544}(`F32`_lanetype, `%`_dim{i#109551}(4))] +[visit_exp lanetype#25725] +[visit_id lanetype#25725] +[visit_exp dim#25725] +[visit_id dim#25725] +[visit_exp i#109544] +[visit_id i#109544] +[visit_exp (`F32`_lanetype, `%`_dim{i#109551}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109551}(4)] +[visit_exp i#109551] +[visit_id i#109551] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `CEIL`_vunop_] +[visit_exp ()] +[check_dims] I dim#25767 i#109616 i#109623 lanetype#25767 shape#4198 +dims \ I = dim#25767, i#109616, i#109623, lanetype#25767, shape#4198 +[visit_exp `VUNOP`_instr{shape#4198}(`%X%`_shape{lanetype#25767, dim#25767, i#109616}(`F32`_lanetype, `%`_dim{i#109623}(4)), `FLOOR`_vunop_)] +[visit_exp shape#4198] +[visit_id shape#4198] +[visit_exp (`%X%`_shape{lanetype#25767, dim#25767, i#109616}(`F32`_lanetype, `%`_dim{i#109623}(4)), `FLOOR`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25767, dim#25767, i#109616}(`F32`_lanetype, `%`_dim{i#109623}(4))] +[visit_exp lanetype#25767] +[visit_id lanetype#25767] +[visit_exp dim#25767] +[visit_id dim#25767] +[visit_exp i#109616] +[visit_id i#109616] +[visit_exp (`F32`_lanetype, `%`_dim{i#109623}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109623}(4)] +[visit_exp i#109623] +[visit_id i#109623] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `FLOOR`_vunop_] +[visit_exp ()] +[check_dims] I dim#25809 i#109688 i#109695 lanetype#25809 shape#4200 +dims \ I = dim#25809, i#109688, i#109695, lanetype#25809, shape#4200 +[visit_exp `VUNOP`_instr{shape#4200}(`%X%`_shape{lanetype#25809, dim#25809, i#109688}(`F32`_lanetype, `%`_dim{i#109695}(4)), `TRUNC`_vunop_)] +[visit_exp shape#4200] +[visit_id shape#4200] +[visit_exp (`%X%`_shape{lanetype#25809, dim#25809, i#109688}(`F32`_lanetype, `%`_dim{i#109695}(4)), `TRUNC`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25809, dim#25809, i#109688}(`F32`_lanetype, `%`_dim{i#109695}(4))] +[visit_exp lanetype#25809] +[visit_id lanetype#25809] +[visit_exp dim#25809] +[visit_id dim#25809] +[visit_exp i#109688] +[visit_id i#109688] +[visit_exp (`F32`_lanetype, `%`_dim{i#109695}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109695}(4)] +[visit_exp i#109695] +[visit_id i#109695] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `TRUNC`_vunop_] +[visit_exp ()] +[check_dims] I dim#25851 i#109760 i#109767 lanetype#25851 shape#4202 +dims \ I = dim#25851, i#109760, i#109767, lanetype#25851, shape#4202 +[visit_exp `VUNOP`_instr{shape#4202}(`%X%`_shape{lanetype#25851, dim#25851, i#109760}(`F32`_lanetype, `%`_dim{i#109767}(4)), `NEAREST`_vunop_)] +[visit_exp shape#4202] +[visit_id shape#4202] +[visit_exp (`%X%`_shape{lanetype#25851, dim#25851, i#109760}(`F32`_lanetype, `%`_dim{i#109767}(4)), `NEAREST`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25851, dim#25851, i#109760}(`F32`_lanetype, `%`_dim{i#109767}(4))] +[visit_exp lanetype#25851] +[visit_id lanetype#25851] +[visit_exp dim#25851] +[visit_id dim#25851] +[visit_exp i#109760] +[visit_id i#109760] +[visit_exp (`F32`_lanetype, `%`_dim{i#109767}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109767}(4)] +[visit_exp i#109767] +[visit_id i#109767] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `NEAREST`_vunop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#25893 i#109832 i#109839 lanetype#25893 shape#4204 +dims \ I = dim#25893, i#109832, i#109839, lanetype#25893, shape#4204 +[visit_exp `VUNOP`_instr{shape#4204}(`%X%`_shape{lanetype#25893, dim#25893, i#109832}(`F64`_lanetype, `%`_dim{i#109839}(2)), `ABS`_vunop_)] +[visit_exp shape#4204] +[visit_id shape#4204] +[visit_exp (`%X%`_shape{lanetype#25893, dim#25893, i#109832}(`F64`_lanetype, `%`_dim{i#109839}(2)), `ABS`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25893, dim#25893, i#109832}(`F64`_lanetype, `%`_dim{i#109839}(2))] +[visit_exp lanetype#25893] +[visit_id lanetype#25893] +[visit_exp dim#25893] +[visit_id dim#25893] +[visit_exp i#109832] +[visit_id i#109832] +[visit_exp (`F64`_lanetype, `%`_dim{i#109839}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109839}(2)] +[visit_exp i#109839] +[visit_id i#109839] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `ABS`_vunop_] +[visit_exp ()] +[check_dims] I dim#25935 i#109904 i#109911 lanetype#25935 shape#4206 +dims \ I = dim#25935, i#109904, i#109911, lanetype#25935, shape#4206 +[visit_exp `VUNOP`_instr{shape#4206}(`%X%`_shape{lanetype#25935, dim#25935, i#109904}(`F64`_lanetype, `%`_dim{i#109911}(2)), `NEG`_vunop_)] +[visit_exp shape#4206] +[visit_id shape#4206] +[visit_exp (`%X%`_shape{lanetype#25935, dim#25935, i#109904}(`F64`_lanetype, `%`_dim{i#109911}(2)), `NEG`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25935, dim#25935, i#109904}(`F64`_lanetype, `%`_dim{i#109911}(2))] +[visit_exp lanetype#25935] +[visit_id lanetype#25935] +[visit_exp dim#25935] +[visit_id dim#25935] +[visit_exp i#109904] +[visit_id i#109904] +[visit_exp (`F64`_lanetype, `%`_dim{i#109911}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109911}(2)] +[visit_exp i#109911] +[visit_id i#109911] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `NEG`_vunop_] +[visit_exp ()] +[check_dims] I dim#25977 i#109976 i#109983 lanetype#25977 shape#4208 +dims \ I = dim#25977, i#109976, i#109983, lanetype#25977, shape#4208 +[visit_exp `VUNOP`_instr{shape#4208}(`%X%`_shape{lanetype#25977, dim#25977, i#109976}(`F64`_lanetype, `%`_dim{i#109983}(2)), `SQRT`_vunop_)] +[visit_exp shape#4208] +[visit_id shape#4208] +[visit_exp (`%X%`_shape{lanetype#25977, dim#25977, i#109976}(`F64`_lanetype, `%`_dim{i#109983}(2)), `SQRT`_vunop_)] +[visit_exp `%X%`_shape{lanetype#25977, dim#25977, i#109976}(`F64`_lanetype, `%`_dim{i#109983}(2))] +[visit_exp lanetype#25977] +[visit_id lanetype#25977] +[visit_exp dim#25977] +[visit_id dim#25977] +[visit_exp i#109976] +[visit_id i#109976] +[visit_exp (`F64`_lanetype, `%`_dim{i#109983}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#109983}(2)] +[visit_exp i#109983] +[visit_id i#109983] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `SQRT`_vunop_] +[visit_exp ()] +[check_dims] I dim#26019 i#110048 i#110055 lanetype#26019 shape#4210 +dims \ I = dim#26019, i#110048, i#110055, lanetype#26019, shape#4210 +[visit_exp `VUNOP`_instr{shape#4210}(`%X%`_shape{lanetype#26019, dim#26019, i#110048}(`F64`_lanetype, `%`_dim{i#110055}(2)), `CEIL`_vunop_)] +[visit_exp shape#4210] +[visit_id shape#4210] +[visit_exp (`%X%`_shape{lanetype#26019, dim#26019, i#110048}(`F64`_lanetype, `%`_dim{i#110055}(2)), `CEIL`_vunop_)] +[visit_exp `%X%`_shape{lanetype#26019, dim#26019, i#110048}(`F64`_lanetype, `%`_dim{i#110055}(2))] +[visit_exp lanetype#26019] +[visit_id lanetype#26019] +[visit_exp dim#26019] +[visit_id dim#26019] +[visit_exp i#110048] +[visit_id i#110048] +[visit_exp (`F64`_lanetype, `%`_dim{i#110055}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#110055}(2)] +[visit_exp i#110055] +[visit_id i#110055] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `CEIL`_vunop_] +[visit_exp ()] +[check_dims] I dim#26061 i#110120 i#110127 lanetype#26061 shape#4212 +dims \ I = dim#26061, i#110120, i#110127, lanetype#26061, shape#4212 +[visit_exp `VUNOP`_instr{shape#4212}(`%X%`_shape{lanetype#26061, dim#26061, i#110120}(`F64`_lanetype, `%`_dim{i#110127}(2)), `FLOOR`_vunop_)] +[visit_exp shape#4212] +[visit_id shape#4212] +[visit_exp (`%X%`_shape{lanetype#26061, dim#26061, i#110120}(`F64`_lanetype, `%`_dim{i#110127}(2)), `FLOOR`_vunop_)] +[visit_exp `%X%`_shape{lanetype#26061, dim#26061, i#110120}(`F64`_lanetype, `%`_dim{i#110127}(2))] +[visit_exp lanetype#26061] +[visit_id lanetype#26061] +[visit_exp dim#26061] +[visit_id dim#26061] +[visit_exp i#110120] +[visit_id i#110120] +[visit_exp (`F64`_lanetype, `%`_dim{i#110127}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#110127}(2)] +[visit_exp i#110127] +[visit_id i#110127] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `FLOOR`_vunop_] +[visit_exp ()] +[check_dims] I dim#26103 i#110192 i#110199 lanetype#26103 shape#4214 +dims \ I = dim#26103, i#110192, i#110199, lanetype#26103, shape#4214 +[visit_exp `VUNOP`_instr{shape#4214}(`%X%`_shape{lanetype#26103, dim#26103, i#110192}(`F64`_lanetype, `%`_dim{i#110199}(2)), `TRUNC`_vunop_)] +[visit_exp shape#4214] +[visit_id shape#4214] +[visit_exp (`%X%`_shape{lanetype#26103, dim#26103, i#110192}(`F64`_lanetype, `%`_dim{i#110199}(2)), `TRUNC`_vunop_)] +[visit_exp `%X%`_shape{lanetype#26103, dim#26103, i#110192}(`F64`_lanetype, `%`_dim{i#110199}(2))] +[visit_exp lanetype#26103] +[visit_id lanetype#26103] +[visit_exp dim#26103] +[visit_id dim#26103] +[visit_exp i#110192] +[visit_id i#110192] +[visit_exp (`F64`_lanetype, `%`_dim{i#110199}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#110199}(2)] +[visit_exp i#110199] +[visit_id i#110199] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `TRUNC`_vunop_] +[visit_exp ()] +[check_dims] I dim#26145 i#110264 i#110271 lanetype#26145 shape#4216 +dims \ I = dim#26145, i#110264, i#110271, lanetype#26145, shape#4216 +[visit_exp `VUNOP`_instr{shape#4216}(`%X%`_shape{lanetype#26145, dim#26145, i#110264}(`F64`_lanetype, `%`_dim{i#110271}(2)), `NEAREST`_vunop_)] +[visit_exp shape#4216] +[visit_id shape#4216] +[visit_exp (`%X%`_shape{lanetype#26145, dim#26145, i#110264}(`F64`_lanetype, `%`_dim{i#110271}(2)), `NEAREST`_vunop_)] +[visit_exp `%X%`_shape{lanetype#26145, dim#26145, i#110264}(`F64`_lanetype, `%`_dim{i#110271}(2))] +[visit_exp lanetype#26145] +[visit_id lanetype#26145] +[visit_exp dim#26145] +[visit_id dim#26145] +[visit_exp i#110264] +[visit_id i#110264] +[visit_exp (`F64`_lanetype, `%`_dim{i#110271}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#110271}(2)] +[visit_exp i#110271] +[visit_id i#110271] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `NEAREST`_vunop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I vectype#320 vvbinop#15 +dims \ I = vectype#320, vvbinop#15 +[visit_exp `VVBINOP`_instr{vectype#320, vvbinop#15}(`V128`_vectype, `AND`_vvbinop)] +[visit_exp vectype#320] +[visit_id vectype#320] +[visit_exp vvbinop#15] +[visit_id vvbinop#15] +[visit_exp (`V128`_vectype, `AND`_vvbinop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `AND`_vvbinop] +[visit_exp ()] +[check_dims] I vectype#322 vvbinop#17 +dims \ I = vectype#322, vvbinop#17 +[visit_exp `VVBINOP`_instr{vectype#322, vvbinop#17}(`V128`_vectype, `ANDNOT`_vvbinop)] +[visit_exp vectype#322] +[visit_id vectype#322] +[visit_exp vvbinop#17] +[visit_id vvbinop#17] +[visit_exp (`V128`_vectype, `ANDNOT`_vvbinop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `ANDNOT`_vvbinop] +[visit_exp ()] +[check_dims] I vectype#324 vvbinop#19 +dims \ I = vectype#324, vvbinop#19 +[visit_exp `VVBINOP`_instr{vectype#324, vvbinop#19}(`V128`_vectype, `OR`_vvbinop)] +[visit_exp vectype#324] +[visit_id vectype#324] +[visit_exp vvbinop#19] +[visit_id vvbinop#19] +[visit_exp (`V128`_vectype, `OR`_vvbinop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `OR`_vvbinop] +[visit_exp ()] +[check_dims] I vectype#326 vvbinop#21 +dims \ I = vectype#326, vvbinop#21 +[visit_exp `VVBINOP`_instr{vectype#326, vvbinop#21}(`V128`_vectype, `XOR`_vvbinop)] +[visit_exp vectype#326] +[visit_id vectype#326] +[visit_exp vvbinop#21] +[visit_id vvbinop#21] +[visit_exp (`V128`_vectype, `XOR`_vvbinop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `XOR`_vvbinop] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#26187 i#110336 i#110343 lanetype#26187 shape#4218 +dims \ I = dim#26187, i#110336, i#110343, lanetype#26187, shape#4218 +[visit_exp `VBINOP`_instr{shape#4218}(`%X%`_shape{lanetype#26187, dim#26187, i#110336}(`I8`_lanetype, `%`_dim{i#110343}(16)), `ADD`_vbinop_)] +[visit_exp shape#4218] +[visit_id shape#4218] +[visit_exp (`%X%`_shape{lanetype#26187, dim#26187, i#110336}(`I8`_lanetype, `%`_dim{i#110343}(16)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#26187, dim#26187, i#110336}(`I8`_lanetype, `%`_dim{i#110343}(16))] +[visit_exp lanetype#26187] +[visit_id lanetype#26187] +[visit_exp dim#26187] +[visit_id dim#26187] +[visit_exp i#110336] +[visit_id i#110336] +[visit_exp (`I8`_lanetype, `%`_dim{i#110343}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#110343}(16)] +[visit_exp i#110343] +[visit_id i#110343] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[check_dims] I dim#26214 i#110393 i#110400 lanetype#26214 shape#4220 sx#25854 +dims \ I = dim#26214, i#110393, i#110400, lanetype#26214, shape#4220, sx#25854 +[visit_exp `VBINOP`_instr{shape#4220}(`%X%`_shape{lanetype#26214, dim#26214, i#110393}(`I8`_lanetype, `%`_dim{i#110400}(16)), `ADD_SAT`_vbinop_{sx#25854}(`S`_sx))] +[visit_exp shape#4220] +[visit_id shape#4220] +[visit_exp (`%X%`_shape{lanetype#26214, dim#26214, i#110393}(`I8`_lanetype, `%`_dim{i#110400}(16)), `ADD_SAT`_vbinop_{sx#25854}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#26214, dim#26214, i#110393}(`I8`_lanetype, `%`_dim{i#110400}(16))] +[visit_exp lanetype#26214] +[visit_id lanetype#26214] +[visit_exp dim#26214] +[visit_id dim#26214] +[visit_exp i#110393] +[visit_id i#110393] +[visit_exp (`I8`_lanetype, `%`_dim{i#110400}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#110400}(16)] +[visit_exp i#110400] +[visit_id i#110400] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `ADD_SAT`_vbinop_{sx#25854}(`S`_sx)] +[visit_exp sx#25854] +[visit_id sx#25854] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#26256 i#110495 i#110502 lanetype#26256 shape#4222 sx#25978 +dims \ I = dim#26256, i#110495, i#110502, lanetype#26256, shape#4222, sx#25978 +[visit_exp `VBINOP`_instr{shape#4222}(`%X%`_shape{lanetype#26256, dim#26256, i#110495}(`I8`_lanetype, `%`_dim{i#110502}(16)), `ADD_SAT`_vbinop_{sx#25978}(`U`_sx))] +[visit_exp shape#4222] +[visit_id shape#4222] +[visit_exp (`%X%`_shape{lanetype#26256, dim#26256, i#110495}(`I8`_lanetype, `%`_dim{i#110502}(16)), `ADD_SAT`_vbinop_{sx#25978}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#26256, dim#26256, i#110495}(`I8`_lanetype, `%`_dim{i#110502}(16))] +[visit_exp lanetype#26256] +[visit_id lanetype#26256] +[visit_exp dim#26256] +[visit_id dim#26256] +[visit_exp i#110495] +[visit_id i#110495] +[visit_exp (`I8`_lanetype, `%`_dim{i#110502}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#110502}(16)] +[visit_exp i#110502] +[visit_id i#110502] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `ADD_SAT`_vbinop_{sx#25978}(`U`_sx)] +[visit_exp sx#25978] +[visit_id sx#25978] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#26298 i#110597 i#110604 lanetype#26298 shape#4224 +dims \ I = dim#26298, i#110597, i#110604, lanetype#26298, shape#4224 +[visit_exp `VBINOP`_instr{shape#4224}(`%X%`_shape{lanetype#26298, dim#26298, i#110597}(`I8`_lanetype, `%`_dim{i#110604}(16)), `SUB`_vbinop_)] +[visit_exp shape#4224] +[visit_id shape#4224] +[visit_exp (`%X%`_shape{lanetype#26298, dim#26298, i#110597}(`I8`_lanetype, `%`_dim{i#110604}(16)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#26298, dim#26298, i#110597}(`I8`_lanetype, `%`_dim{i#110604}(16))] +[visit_exp lanetype#26298] +[visit_id lanetype#26298] +[visit_exp dim#26298] +[visit_id dim#26298] +[visit_exp i#110597] +[visit_id i#110597] +[visit_exp (`I8`_lanetype, `%`_dim{i#110604}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#110604}(16)] +[visit_exp i#110604] +[visit_id i#110604] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[check_dims] I dim#26325 i#110654 i#110661 lanetype#26325 shape#4226 sx#26162 +dims \ I = dim#26325, i#110654, i#110661, lanetype#26325, shape#4226, sx#26162 +[visit_exp `VBINOP`_instr{shape#4226}(`%X%`_shape{lanetype#26325, dim#26325, i#110654}(`I8`_lanetype, `%`_dim{i#110661}(16)), `SUB_SAT`_vbinop_{sx#26162}(`S`_sx))] +[visit_exp shape#4226] +[visit_id shape#4226] +[visit_exp (`%X%`_shape{lanetype#26325, dim#26325, i#110654}(`I8`_lanetype, `%`_dim{i#110661}(16)), `SUB_SAT`_vbinop_{sx#26162}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#26325, dim#26325, i#110654}(`I8`_lanetype, `%`_dim{i#110661}(16))] +[visit_exp lanetype#26325] +[visit_id lanetype#26325] +[visit_exp dim#26325] +[visit_id dim#26325] +[visit_exp i#110654] +[visit_id i#110654] +[visit_exp (`I8`_lanetype, `%`_dim{i#110661}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#110661}(16)] +[visit_exp i#110661] +[visit_id i#110661] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SUB_SAT`_vbinop_{sx#26162}(`S`_sx)] +[visit_exp sx#26162] +[visit_id sx#26162] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#26367 i#110756 i#110763 lanetype#26367 shape#4228 sx#26286 +dims \ I = dim#26367, i#110756, i#110763, lanetype#26367, shape#4228, sx#26286 +[visit_exp `VBINOP`_instr{shape#4228}(`%X%`_shape{lanetype#26367, dim#26367, i#110756}(`I8`_lanetype, `%`_dim{i#110763}(16)), `SUB_SAT`_vbinop_{sx#26286}(`U`_sx))] +[visit_exp shape#4228] +[visit_id shape#4228] +[visit_exp (`%X%`_shape{lanetype#26367, dim#26367, i#110756}(`I8`_lanetype, `%`_dim{i#110763}(16)), `SUB_SAT`_vbinop_{sx#26286}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#26367, dim#26367, i#110756}(`I8`_lanetype, `%`_dim{i#110763}(16))] +[visit_exp lanetype#26367] +[visit_id lanetype#26367] +[visit_exp dim#26367] +[visit_id dim#26367] +[visit_exp i#110756] +[visit_id i#110756] +[visit_exp (`I8`_lanetype, `%`_dim{i#110763}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#110763}(16)] +[visit_exp i#110763] +[visit_id i#110763] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SUB_SAT`_vbinop_{sx#26286}(`U`_sx)] +[visit_exp sx#26286] +[visit_id sx#26286] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#26409 i#110858 i#110865 lanetype#26409 shape#4230 sx#26410 +dims \ I = dim#26409, i#110858, i#110865, lanetype#26409, shape#4230, sx#26410 +[visit_exp `VBINOP`_instr{shape#4230}(`%X%`_shape{lanetype#26409, dim#26409, i#110858}(`I8`_lanetype, `%`_dim{i#110865}(16)), `MIN`_vbinop_{sx#26410}(`S`_sx))] +[visit_exp shape#4230] +[visit_id shape#4230] +[visit_exp (`%X%`_shape{lanetype#26409, dim#26409, i#110858}(`I8`_lanetype, `%`_dim{i#110865}(16)), `MIN`_vbinop_{sx#26410}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#26409, dim#26409, i#110858}(`I8`_lanetype, `%`_dim{i#110865}(16))] +[visit_exp lanetype#26409] +[visit_id lanetype#26409] +[visit_exp dim#26409] +[visit_id dim#26409] +[visit_exp i#110858] +[visit_id i#110858] +[visit_exp (`I8`_lanetype, `%`_dim{i#110865}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#110865}(16)] +[visit_exp i#110865] +[visit_id i#110865] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `MIN`_vbinop_{sx#26410}(`S`_sx)] +[visit_exp sx#26410] +[visit_id sx#26410] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#26451 i#110960 i#110967 lanetype#26451 shape#4232 sx#26534 +dims \ I = dim#26451, i#110960, i#110967, lanetype#26451, shape#4232, sx#26534 +[visit_exp `VBINOP`_instr{shape#4232}(`%X%`_shape{lanetype#26451, dim#26451, i#110960}(`I8`_lanetype, `%`_dim{i#110967}(16)), `MIN`_vbinop_{sx#26534}(`U`_sx))] +[visit_exp shape#4232] +[visit_id shape#4232] +[visit_exp (`%X%`_shape{lanetype#26451, dim#26451, i#110960}(`I8`_lanetype, `%`_dim{i#110967}(16)), `MIN`_vbinop_{sx#26534}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#26451, dim#26451, i#110960}(`I8`_lanetype, `%`_dim{i#110967}(16))] +[visit_exp lanetype#26451] +[visit_id lanetype#26451] +[visit_exp dim#26451] +[visit_id dim#26451] +[visit_exp i#110960] +[visit_id i#110960] +[visit_exp (`I8`_lanetype, `%`_dim{i#110967}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#110967}(16)] +[visit_exp i#110967] +[visit_id i#110967] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `MIN`_vbinop_{sx#26534}(`U`_sx)] +[visit_exp sx#26534] +[visit_id sx#26534] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#26493 i#111062 i#111069 lanetype#26493 shape#4234 sx#26658 +dims \ I = dim#26493, i#111062, i#111069, lanetype#26493, shape#4234, sx#26658 +[visit_exp `VBINOP`_instr{shape#4234}(`%X%`_shape{lanetype#26493, dim#26493, i#111062}(`I8`_lanetype, `%`_dim{i#111069}(16)), `MAX`_vbinop_{sx#26658}(`S`_sx))] +[visit_exp shape#4234] +[visit_id shape#4234] +[visit_exp (`%X%`_shape{lanetype#26493, dim#26493, i#111062}(`I8`_lanetype, `%`_dim{i#111069}(16)), `MAX`_vbinop_{sx#26658}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#26493, dim#26493, i#111062}(`I8`_lanetype, `%`_dim{i#111069}(16))] +[visit_exp lanetype#26493] +[visit_id lanetype#26493] +[visit_exp dim#26493] +[visit_id dim#26493] +[visit_exp i#111062] +[visit_id i#111062] +[visit_exp (`I8`_lanetype, `%`_dim{i#111069}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#111069}(16)] +[visit_exp i#111069] +[visit_id i#111069] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `MAX`_vbinop_{sx#26658}(`S`_sx)] +[visit_exp sx#26658] +[visit_id sx#26658] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#26535 i#111164 i#111171 lanetype#26535 shape#4236 sx#26782 +dims \ I = dim#26535, i#111164, i#111171, lanetype#26535, shape#4236, sx#26782 +[visit_exp `VBINOP`_instr{shape#4236}(`%X%`_shape{lanetype#26535, dim#26535, i#111164}(`I8`_lanetype, `%`_dim{i#111171}(16)), `MAX`_vbinop_{sx#26782}(`U`_sx))] +[visit_exp shape#4236] +[visit_id shape#4236] +[visit_exp (`%X%`_shape{lanetype#26535, dim#26535, i#111164}(`I8`_lanetype, `%`_dim{i#111171}(16)), `MAX`_vbinop_{sx#26782}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#26535, dim#26535, i#111164}(`I8`_lanetype, `%`_dim{i#111171}(16))] +[visit_exp lanetype#26535] +[visit_id lanetype#26535] +[visit_exp dim#26535] +[visit_id dim#26535] +[visit_exp i#111164] +[visit_id i#111164] +[visit_exp (`I8`_lanetype, `%`_dim{i#111171}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#111171}(16)] +[visit_exp i#111171] +[visit_id i#111171] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `MAX`_vbinop_{sx#26782}(`U`_sx)] +[visit_exp sx#26782] +[visit_id sx#26782] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#26577 i#111266 i#111273 lanetype#26577 shape#4238 +dims \ I = dim#26577, i#111266, i#111273, lanetype#26577, shape#4238 +[visit_exp `VBINOP`_instr{shape#4238}(`%X%`_shape{lanetype#26577, dim#26577, i#111266}(`I8`_lanetype, `%`_dim{i#111273}(16)), `AVGRU`_vbinop_)] +[visit_exp shape#4238] +[visit_id shape#4238] +[visit_exp (`%X%`_shape{lanetype#26577, dim#26577, i#111266}(`I8`_lanetype, `%`_dim{i#111273}(16)), `AVGRU`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#26577, dim#26577, i#111266}(`I8`_lanetype, `%`_dim{i#111273}(16))] +[visit_exp lanetype#26577] +[visit_id lanetype#26577] +[visit_exp dim#26577] +[visit_id dim#26577] +[visit_exp i#111266] +[visit_id i#111266] +[visit_exp (`I8`_lanetype, `%`_dim{i#111273}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#111273}(16)] +[visit_exp i#111273] +[visit_id i#111273] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `AVGRU`_vbinop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#26619 i#111368 i#111375 lanetype#26619 shape#4240 +dims \ I = dim#26619, i#111368, i#111375, lanetype#26619, shape#4240 +[visit_exp `VBINOP`_instr{shape#4240}(`%X%`_shape{lanetype#26619, dim#26619, i#111368}(`I16`_lanetype, `%`_dim{i#111375}(8)), `ADD`_vbinop_)] +[visit_exp shape#4240] +[visit_id shape#4240] +[visit_exp (`%X%`_shape{lanetype#26619, dim#26619, i#111368}(`I16`_lanetype, `%`_dim{i#111375}(8)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#26619, dim#26619, i#111368}(`I16`_lanetype, `%`_dim{i#111375}(8))] +[visit_exp lanetype#26619] +[visit_id lanetype#26619] +[visit_exp dim#26619] +[visit_id dim#26619] +[visit_exp i#111368] +[visit_id i#111368] +[visit_exp (`I16`_lanetype, `%`_dim{i#111375}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#111375}(8)] +[visit_exp i#111375] +[visit_id i#111375] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[check_dims] I dim#26646 i#111425 i#111432 lanetype#26646 shape#4242 sx#27086 +dims \ I = dim#26646, i#111425, i#111432, lanetype#26646, shape#4242, sx#27086 +[visit_exp `VBINOP`_instr{shape#4242}(`%X%`_shape{lanetype#26646, dim#26646, i#111425}(`I16`_lanetype, `%`_dim{i#111432}(8)), `ADD_SAT`_vbinop_{sx#27086}(`S`_sx))] +[visit_exp shape#4242] +[visit_id shape#4242] +[visit_exp (`%X%`_shape{lanetype#26646, dim#26646, i#111425}(`I16`_lanetype, `%`_dim{i#111432}(8)), `ADD_SAT`_vbinop_{sx#27086}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#26646, dim#26646, i#111425}(`I16`_lanetype, `%`_dim{i#111432}(8))] +[visit_exp lanetype#26646] +[visit_id lanetype#26646] +[visit_exp dim#26646] +[visit_id dim#26646] +[visit_exp i#111425] +[visit_id i#111425] +[visit_exp (`I16`_lanetype, `%`_dim{i#111432}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#111432}(8)] +[visit_exp i#111432] +[visit_id i#111432] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `ADD_SAT`_vbinop_{sx#27086}(`S`_sx)] +[visit_exp sx#27086] +[visit_id sx#27086] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#26688 i#111527 i#111534 lanetype#26688 shape#4244 sx#27210 +dims \ I = dim#26688, i#111527, i#111534, lanetype#26688, shape#4244, sx#27210 +[visit_exp `VBINOP`_instr{shape#4244}(`%X%`_shape{lanetype#26688, dim#26688, i#111527}(`I16`_lanetype, `%`_dim{i#111534}(8)), `ADD_SAT`_vbinop_{sx#27210}(`U`_sx))] +[visit_exp shape#4244] +[visit_id shape#4244] +[visit_exp (`%X%`_shape{lanetype#26688, dim#26688, i#111527}(`I16`_lanetype, `%`_dim{i#111534}(8)), `ADD_SAT`_vbinop_{sx#27210}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#26688, dim#26688, i#111527}(`I16`_lanetype, `%`_dim{i#111534}(8))] +[visit_exp lanetype#26688] +[visit_id lanetype#26688] +[visit_exp dim#26688] +[visit_id dim#26688] +[visit_exp i#111527] +[visit_id i#111527] +[visit_exp (`I16`_lanetype, `%`_dim{i#111534}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#111534}(8)] +[visit_exp i#111534] +[visit_id i#111534] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `ADD_SAT`_vbinop_{sx#27210}(`U`_sx)] +[visit_exp sx#27210] +[visit_id sx#27210] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#26730 i#111629 i#111636 lanetype#26730 shape#4246 +dims \ I = dim#26730, i#111629, i#111636, lanetype#26730, shape#4246 +[visit_exp `VBINOP`_instr{shape#4246}(`%X%`_shape{lanetype#26730, dim#26730, i#111629}(`I16`_lanetype, `%`_dim{i#111636}(8)), `SUB`_vbinop_)] +[visit_exp shape#4246] +[visit_id shape#4246] +[visit_exp (`%X%`_shape{lanetype#26730, dim#26730, i#111629}(`I16`_lanetype, `%`_dim{i#111636}(8)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#26730, dim#26730, i#111629}(`I16`_lanetype, `%`_dim{i#111636}(8))] +[visit_exp lanetype#26730] +[visit_id lanetype#26730] +[visit_exp dim#26730] +[visit_id dim#26730] +[visit_exp i#111629] +[visit_id i#111629] +[visit_exp (`I16`_lanetype, `%`_dim{i#111636}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#111636}(8)] +[visit_exp i#111636] +[visit_id i#111636] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[check_dims] I dim#26757 i#111686 i#111693 lanetype#26757 shape#4248 sx#27394 +dims \ I = dim#26757, i#111686, i#111693, lanetype#26757, shape#4248, sx#27394 +[visit_exp `VBINOP`_instr{shape#4248}(`%X%`_shape{lanetype#26757, dim#26757, i#111686}(`I16`_lanetype, `%`_dim{i#111693}(8)), `SUB_SAT`_vbinop_{sx#27394}(`S`_sx))] +[visit_exp shape#4248] +[visit_id shape#4248] +[visit_exp (`%X%`_shape{lanetype#26757, dim#26757, i#111686}(`I16`_lanetype, `%`_dim{i#111693}(8)), `SUB_SAT`_vbinop_{sx#27394}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#26757, dim#26757, i#111686}(`I16`_lanetype, `%`_dim{i#111693}(8))] +[visit_exp lanetype#26757] +[visit_id lanetype#26757] +[visit_exp dim#26757] +[visit_id dim#26757] +[visit_exp i#111686] +[visit_id i#111686] +[visit_exp (`I16`_lanetype, `%`_dim{i#111693}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#111693}(8)] +[visit_exp i#111693] +[visit_id i#111693] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `SUB_SAT`_vbinop_{sx#27394}(`S`_sx)] +[visit_exp sx#27394] +[visit_id sx#27394] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#26799 i#111788 i#111795 lanetype#26799 shape#4250 sx#27518 +dims \ I = dim#26799, i#111788, i#111795, lanetype#26799, shape#4250, sx#27518 +[visit_exp `VBINOP`_instr{shape#4250}(`%X%`_shape{lanetype#26799, dim#26799, i#111788}(`I16`_lanetype, `%`_dim{i#111795}(8)), `SUB_SAT`_vbinop_{sx#27518}(`U`_sx))] +[visit_exp shape#4250] +[visit_id shape#4250] +[visit_exp (`%X%`_shape{lanetype#26799, dim#26799, i#111788}(`I16`_lanetype, `%`_dim{i#111795}(8)), `SUB_SAT`_vbinop_{sx#27518}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#26799, dim#26799, i#111788}(`I16`_lanetype, `%`_dim{i#111795}(8))] +[visit_exp lanetype#26799] +[visit_id lanetype#26799] +[visit_exp dim#26799] +[visit_id dim#26799] +[visit_exp i#111788] +[visit_id i#111788] +[visit_exp (`I16`_lanetype, `%`_dim{i#111795}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#111795}(8)] +[visit_exp i#111795] +[visit_id i#111795] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `SUB_SAT`_vbinop_{sx#27518}(`U`_sx)] +[visit_exp sx#27518] +[visit_id sx#27518] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#26841 i#111890 i#111897 lanetype#26841 shape#4252 +dims \ I = dim#26841, i#111890, i#111897, lanetype#26841, shape#4252 +[visit_exp `VBINOP`_instr{shape#4252}(`%X%`_shape{lanetype#26841, dim#26841, i#111890}(`I16`_lanetype, `%`_dim{i#111897}(8)), `MUL`_vbinop_)] +[visit_exp shape#4252] +[visit_id shape#4252] +[visit_exp (`%X%`_shape{lanetype#26841, dim#26841, i#111890}(`I16`_lanetype, `%`_dim{i#111897}(8)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#26841, dim#26841, i#111890}(`I16`_lanetype, `%`_dim{i#111897}(8))] +[visit_exp lanetype#26841] +[visit_id lanetype#26841] +[visit_exp dim#26841] +[visit_id dim#26841] +[visit_exp i#111890] +[visit_id i#111890] +[visit_exp (`I16`_lanetype, `%`_dim{i#111897}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#111897}(8)] +[visit_exp i#111897] +[visit_id i#111897] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `MUL`_vbinop_] +[visit_exp ()] +[check_dims] I dim#26868 i#111947 i#111954 lanetype#26868 shape#4254 sx#27702 +dims \ I = dim#26868, i#111947, i#111954, lanetype#26868, shape#4254, sx#27702 +[visit_exp `VBINOP`_instr{shape#4254}(`%X%`_shape{lanetype#26868, dim#26868, i#111947}(`I16`_lanetype, `%`_dim{i#111954}(8)), `MIN`_vbinop_{sx#27702}(`S`_sx))] +[visit_exp shape#4254] +[visit_id shape#4254] +[visit_exp (`%X%`_shape{lanetype#26868, dim#26868, i#111947}(`I16`_lanetype, `%`_dim{i#111954}(8)), `MIN`_vbinop_{sx#27702}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#26868, dim#26868, i#111947}(`I16`_lanetype, `%`_dim{i#111954}(8))] +[visit_exp lanetype#26868] +[visit_id lanetype#26868] +[visit_exp dim#26868] +[visit_id dim#26868] +[visit_exp i#111947] +[visit_id i#111947] +[visit_exp (`I16`_lanetype, `%`_dim{i#111954}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#111954}(8)] +[visit_exp i#111954] +[visit_id i#111954] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `MIN`_vbinop_{sx#27702}(`S`_sx)] +[visit_exp sx#27702] +[visit_id sx#27702] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#26910 i#112049 i#112056 lanetype#26910 shape#4256 sx#27826 +dims \ I = dim#26910, i#112049, i#112056, lanetype#26910, shape#4256, sx#27826 +[visit_exp `VBINOP`_instr{shape#4256}(`%X%`_shape{lanetype#26910, dim#26910, i#112049}(`I16`_lanetype, `%`_dim{i#112056}(8)), `MIN`_vbinop_{sx#27826}(`U`_sx))] +[visit_exp shape#4256] +[visit_id shape#4256] +[visit_exp (`%X%`_shape{lanetype#26910, dim#26910, i#112049}(`I16`_lanetype, `%`_dim{i#112056}(8)), `MIN`_vbinop_{sx#27826}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#26910, dim#26910, i#112049}(`I16`_lanetype, `%`_dim{i#112056}(8))] +[visit_exp lanetype#26910] +[visit_id lanetype#26910] +[visit_exp dim#26910] +[visit_id dim#26910] +[visit_exp i#112049] +[visit_id i#112049] +[visit_exp (`I16`_lanetype, `%`_dim{i#112056}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#112056}(8)] +[visit_exp i#112056] +[visit_id i#112056] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `MIN`_vbinop_{sx#27826}(`U`_sx)] +[visit_exp sx#27826] +[visit_id sx#27826] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#26952 i#112151 i#112158 lanetype#26952 shape#4258 sx#27950 +dims \ I = dim#26952, i#112151, i#112158, lanetype#26952, shape#4258, sx#27950 +[visit_exp `VBINOP`_instr{shape#4258}(`%X%`_shape{lanetype#26952, dim#26952, i#112151}(`I16`_lanetype, `%`_dim{i#112158}(8)), `MAX`_vbinop_{sx#27950}(`S`_sx))] +[visit_exp shape#4258] +[visit_id shape#4258] +[visit_exp (`%X%`_shape{lanetype#26952, dim#26952, i#112151}(`I16`_lanetype, `%`_dim{i#112158}(8)), `MAX`_vbinop_{sx#27950}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#26952, dim#26952, i#112151}(`I16`_lanetype, `%`_dim{i#112158}(8))] +[visit_exp lanetype#26952] +[visit_id lanetype#26952] +[visit_exp dim#26952] +[visit_id dim#26952] +[visit_exp i#112151] +[visit_id i#112151] +[visit_exp (`I16`_lanetype, `%`_dim{i#112158}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#112158}(8)] +[visit_exp i#112158] +[visit_id i#112158] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `MAX`_vbinop_{sx#27950}(`S`_sx)] +[visit_exp sx#27950] +[visit_id sx#27950] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#26994 i#112253 i#112260 lanetype#26994 shape#4260 sx#28074 +dims \ I = dim#26994, i#112253, i#112260, lanetype#26994, shape#4260, sx#28074 +[visit_exp `VBINOP`_instr{shape#4260}(`%X%`_shape{lanetype#26994, dim#26994, i#112253}(`I16`_lanetype, `%`_dim{i#112260}(8)), `MAX`_vbinop_{sx#28074}(`U`_sx))] +[visit_exp shape#4260] +[visit_id shape#4260] +[visit_exp (`%X%`_shape{lanetype#26994, dim#26994, i#112253}(`I16`_lanetype, `%`_dim{i#112260}(8)), `MAX`_vbinop_{sx#28074}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#26994, dim#26994, i#112253}(`I16`_lanetype, `%`_dim{i#112260}(8))] +[visit_exp lanetype#26994] +[visit_id lanetype#26994] +[visit_exp dim#26994] +[visit_id dim#26994] +[visit_exp i#112253] +[visit_id i#112253] +[visit_exp (`I16`_lanetype, `%`_dim{i#112260}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#112260}(8)] +[visit_exp i#112260] +[visit_id i#112260] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `MAX`_vbinop_{sx#28074}(`U`_sx)] +[visit_exp sx#28074] +[visit_id sx#28074] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#27036 i#112355 i#112362 lanetype#27036 shape#4262 +dims \ I = dim#27036, i#112355, i#112362, lanetype#27036, shape#4262 +[visit_exp `VBINOP`_instr{shape#4262}(`%X%`_shape{lanetype#27036, dim#27036, i#112355}(`I16`_lanetype, `%`_dim{i#112362}(8)), `AVGRU`_vbinop_)] +[visit_exp shape#4262] +[visit_id shape#4262] +[visit_exp (`%X%`_shape{lanetype#27036, dim#27036, i#112355}(`I16`_lanetype, `%`_dim{i#112362}(8)), `AVGRU`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27036, dim#27036, i#112355}(`I16`_lanetype, `%`_dim{i#112362}(8))] +[visit_exp lanetype#27036] +[visit_id lanetype#27036] +[visit_exp dim#27036] +[visit_id dim#27036] +[visit_exp i#112355] +[visit_id i#112355] +[visit_exp (`I16`_lanetype, `%`_dim{i#112362}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#112362}(8)] +[visit_exp i#112362] +[visit_id i#112362] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `AVGRU`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27078 i#112457 i#112464 lanetype#27078 shape#4264 +dims \ I = dim#27078, i#112457, i#112464, lanetype#27078, shape#4264 +[visit_exp `VBINOP`_instr{shape#4264}(`%X%`_shape{lanetype#27078, dim#27078, i#112457}(`I16`_lanetype, `%`_dim{i#112464}(8)), `Q15MULR_SATS`_vbinop_)] +[visit_exp shape#4264] +[visit_id shape#4264] +[visit_exp (`%X%`_shape{lanetype#27078, dim#27078, i#112457}(`I16`_lanetype, `%`_dim{i#112464}(8)), `Q15MULR_SATS`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27078, dim#27078, i#112457}(`I16`_lanetype, `%`_dim{i#112464}(8))] +[visit_exp lanetype#27078] +[visit_id lanetype#27078] +[visit_exp dim#27078] +[visit_id dim#27078] +[visit_exp i#112457] +[visit_id i#112457] +[visit_exp (`I16`_lanetype, `%`_dim{i#112464}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#112464}(8)] +[visit_exp i#112464] +[visit_id i#112464] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `Q15MULR_SATS`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27120 i#112559 i#112566 lanetype#27120 shape#4266 +dims \ I = dim#27120, i#112559, i#112566, lanetype#27120, shape#4266 +[visit_exp `VBINOP`_instr{shape#4266}(`%X%`_shape{lanetype#27120, dim#27120, i#112559}(`I16`_lanetype, `%`_dim{i#112566}(8)), `RELAXED_Q15MULRS`_vbinop_)] +[visit_exp shape#4266] +[visit_id shape#4266] +[visit_exp (`%X%`_shape{lanetype#27120, dim#27120, i#112559}(`I16`_lanetype, `%`_dim{i#112566}(8)), `RELAXED_Q15MULRS`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27120, dim#27120, i#112559}(`I16`_lanetype, `%`_dim{i#112566}(8))] +[visit_exp lanetype#27120] +[visit_id lanetype#27120] +[visit_exp dim#27120] +[visit_id dim#27120] +[visit_exp i#112559] +[visit_id i#112559] +[visit_exp (`I16`_lanetype, `%`_dim{i#112566}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#112566}(8)] +[visit_exp i#112566] +[visit_id i#112566] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `RELAXED_Q15MULRS`_vbinop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#27162 i#112661 i#112668 lanetype#27162 shape#4268 +dims \ I = dim#27162, i#112661, i#112668, lanetype#27162, shape#4268 +[visit_exp `VBINOP`_instr{shape#4268}(`%X%`_shape{lanetype#27162, dim#27162, i#112661}(`I32`_lanetype, `%`_dim{i#112668}(4)), `ADD`_vbinop_)] +[visit_exp shape#4268] +[visit_id shape#4268] +[visit_exp (`%X%`_shape{lanetype#27162, dim#27162, i#112661}(`I32`_lanetype, `%`_dim{i#112668}(4)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27162, dim#27162, i#112661}(`I32`_lanetype, `%`_dim{i#112668}(4))] +[visit_exp lanetype#27162] +[visit_id lanetype#27162] +[visit_exp dim#27162] +[visit_id dim#27162] +[visit_exp i#112661] +[visit_id i#112661] +[visit_exp (`I32`_lanetype, `%`_dim{i#112668}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#112668}(4)] +[visit_exp i#112668] +[visit_id i#112668] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27189 i#112718 i#112725 lanetype#27189 shape#4270 +dims \ I = dim#27189, i#112718, i#112725, lanetype#27189, shape#4270 +[visit_exp `VBINOP`_instr{shape#4270}(`%X%`_shape{lanetype#27189, dim#27189, i#112718}(`I32`_lanetype, `%`_dim{i#112725}(4)), `SUB`_vbinop_)] +[visit_exp shape#4270] +[visit_id shape#4270] +[visit_exp (`%X%`_shape{lanetype#27189, dim#27189, i#112718}(`I32`_lanetype, `%`_dim{i#112725}(4)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27189, dim#27189, i#112718}(`I32`_lanetype, `%`_dim{i#112725}(4))] +[visit_exp lanetype#27189] +[visit_id lanetype#27189] +[visit_exp dim#27189] +[visit_id dim#27189] +[visit_exp i#112718] +[visit_id i#112718] +[visit_exp (`I32`_lanetype, `%`_dim{i#112725}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#112725}(4)] +[visit_exp i#112725] +[visit_id i#112725] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27216 i#112775 i#112782 lanetype#27216 shape#4272 +dims \ I = dim#27216, i#112775, i#112782, lanetype#27216, shape#4272 +[visit_exp `VBINOP`_instr{shape#4272}(`%X%`_shape{lanetype#27216, dim#27216, i#112775}(`I32`_lanetype, `%`_dim{i#112782}(4)), `MUL`_vbinop_)] +[visit_exp shape#4272] +[visit_id shape#4272] +[visit_exp (`%X%`_shape{lanetype#27216, dim#27216, i#112775}(`I32`_lanetype, `%`_dim{i#112782}(4)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27216, dim#27216, i#112775}(`I32`_lanetype, `%`_dim{i#112782}(4))] +[visit_exp lanetype#27216] +[visit_id lanetype#27216] +[visit_exp dim#27216] +[visit_id dim#27216] +[visit_exp i#112775] +[visit_id i#112775] +[visit_exp (`I32`_lanetype, `%`_dim{i#112782}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#112782}(4)] +[visit_exp i#112782] +[visit_id i#112782] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MUL`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27243 i#112832 i#112839 lanetype#27243 shape#4274 sx#28738 +dims \ I = dim#27243, i#112832, i#112839, lanetype#27243, shape#4274, sx#28738 +[visit_exp `VBINOP`_instr{shape#4274}(`%X%`_shape{lanetype#27243, dim#27243, i#112832}(`I32`_lanetype, `%`_dim{i#112839}(4)), `MIN`_vbinop_{sx#28738}(`S`_sx))] +[visit_exp shape#4274] +[visit_id shape#4274] +[visit_exp (`%X%`_shape{lanetype#27243, dim#27243, i#112832}(`I32`_lanetype, `%`_dim{i#112839}(4)), `MIN`_vbinop_{sx#28738}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#27243, dim#27243, i#112832}(`I32`_lanetype, `%`_dim{i#112839}(4))] +[visit_exp lanetype#27243] +[visit_id lanetype#27243] +[visit_exp dim#27243] +[visit_id dim#27243] +[visit_exp i#112832] +[visit_id i#112832] +[visit_exp (`I32`_lanetype, `%`_dim{i#112839}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#112839}(4)] +[visit_exp i#112839] +[visit_id i#112839] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MIN`_vbinop_{sx#28738}(`S`_sx)] +[visit_exp sx#28738] +[visit_id sx#28738] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#27285 i#112934 i#112941 lanetype#27285 shape#4276 sx#28862 +dims \ I = dim#27285, i#112934, i#112941, lanetype#27285, shape#4276, sx#28862 +[visit_exp `VBINOP`_instr{shape#4276}(`%X%`_shape{lanetype#27285, dim#27285, i#112934}(`I32`_lanetype, `%`_dim{i#112941}(4)), `MIN`_vbinop_{sx#28862}(`U`_sx))] +[visit_exp shape#4276] +[visit_id shape#4276] +[visit_exp (`%X%`_shape{lanetype#27285, dim#27285, i#112934}(`I32`_lanetype, `%`_dim{i#112941}(4)), `MIN`_vbinop_{sx#28862}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#27285, dim#27285, i#112934}(`I32`_lanetype, `%`_dim{i#112941}(4))] +[visit_exp lanetype#27285] +[visit_id lanetype#27285] +[visit_exp dim#27285] +[visit_id dim#27285] +[visit_exp i#112934] +[visit_id i#112934] +[visit_exp (`I32`_lanetype, `%`_dim{i#112941}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#112941}(4)] +[visit_exp i#112941] +[visit_id i#112941] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MIN`_vbinop_{sx#28862}(`U`_sx)] +[visit_exp sx#28862] +[visit_id sx#28862] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#27327 i#113036 i#113043 lanetype#27327 shape#4278 sx#28986 +dims \ I = dim#27327, i#113036, i#113043, lanetype#27327, shape#4278, sx#28986 +[visit_exp `VBINOP`_instr{shape#4278}(`%X%`_shape{lanetype#27327, dim#27327, i#113036}(`I32`_lanetype, `%`_dim{i#113043}(4)), `MAX`_vbinop_{sx#28986}(`S`_sx))] +[visit_exp shape#4278] +[visit_id shape#4278] +[visit_exp (`%X%`_shape{lanetype#27327, dim#27327, i#113036}(`I32`_lanetype, `%`_dim{i#113043}(4)), `MAX`_vbinop_{sx#28986}(`S`_sx))] +[visit_exp `%X%`_shape{lanetype#27327, dim#27327, i#113036}(`I32`_lanetype, `%`_dim{i#113043}(4))] +[visit_exp lanetype#27327] +[visit_id lanetype#27327] +[visit_exp dim#27327] +[visit_id dim#27327] +[visit_exp i#113036] +[visit_id i#113036] +[visit_exp (`I32`_lanetype, `%`_dim{i#113043}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113043}(4)] +[visit_exp i#113043] +[visit_id i#113043] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MAX`_vbinop_{sx#28986}(`S`_sx)] +[visit_exp sx#28986] +[visit_id sx#28986] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#27369 i#113138 i#113145 lanetype#27369 shape#4280 sx#29110 +dims \ I = dim#27369, i#113138, i#113145, lanetype#27369, shape#4280, sx#29110 +[visit_exp `VBINOP`_instr{shape#4280}(`%X%`_shape{lanetype#27369, dim#27369, i#113138}(`I32`_lanetype, `%`_dim{i#113145}(4)), `MAX`_vbinop_{sx#29110}(`U`_sx))] +[visit_exp shape#4280] +[visit_id shape#4280] +[visit_exp (`%X%`_shape{lanetype#27369, dim#27369, i#113138}(`I32`_lanetype, `%`_dim{i#113145}(4)), `MAX`_vbinop_{sx#29110}(`U`_sx))] +[visit_exp `%X%`_shape{lanetype#27369, dim#27369, i#113138}(`I32`_lanetype, `%`_dim{i#113145}(4))] +[visit_exp lanetype#27369] +[visit_id lanetype#27369] +[visit_exp dim#27369] +[visit_id dim#27369] +[visit_exp i#113138] +[visit_id i#113138] +[visit_exp (`I32`_lanetype, `%`_dim{i#113145}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113145}(4)] +[visit_exp i#113145] +[visit_id i#113145] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MAX`_vbinop_{sx#29110}(`U`_sx)] +[visit_exp sx#29110] +[visit_id sx#29110] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#27411 i#113240 i#113247 lanetype#27411 shape#4282 +dims \ I = dim#27411, i#113240, i#113247, lanetype#27411, shape#4282 +[visit_exp `VBINOP`_instr{shape#4282}(`%X%`_shape{lanetype#27411, dim#27411, i#113240}(`I64`_lanetype, `%`_dim{i#113247}(2)), `ADD`_vbinop_)] +[visit_exp shape#4282] +[visit_id shape#4282] +[visit_exp (`%X%`_shape{lanetype#27411, dim#27411, i#113240}(`I64`_lanetype, `%`_dim{i#113247}(2)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27411, dim#27411, i#113240}(`I64`_lanetype, `%`_dim{i#113247}(2))] +[visit_exp lanetype#27411] +[visit_id lanetype#27411] +[visit_exp dim#27411] +[visit_id dim#27411] +[visit_exp i#113240] +[visit_id i#113240] +[visit_exp (`I64`_lanetype, `%`_dim{i#113247}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113247}(2)] +[visit_exp i#113247] +[visit_id i#113247] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27438 i#113297 i#113304 lanetype#27438 shape#4284 +dims \ I = dim#27438, i#113297, i#113304, lanetype#27438, shape#4284 +[visit_exp `VBINOP`_instr{shape#4284}(`%X%`_shape{lanetype#27438, dim#27438, i#113297}(`I64`_lanetype, `%`_dim{i#113304}(2)), `SUB`_vbinop_)] +[visit_exp shape#4284] +[visit_id shape#4284] +[visit_exp (`%X%`_shape{lanetype#27438, dim#27438, i#113297}(`I64`_lanetype, `%`_dim{i#113304}(2)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27438, dim#27438, i#113297}(`I64`_lanetype, `%`_dim{i#113304}(2))] +[visit_exp lanetype#27438] +[visit_id lanetype#27438] +[visit_exp dim#27438] +[visit_id dim#27438] +[visit_exp i#113297] +[visit_id i#113297] +[visit_exp (`I64`_lanetype, `%`_dim{i#113304}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113304}(2)] +[visit_exp i#113304] +[visit_id i#113304] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27465 i#113354 i#113361 lanetype#27465 shape#4286 +dims \ I = dim#27465, i#113354, i#113361, lanetype#27465, shape#4286 +[visit_exp `VBINOP`_instr{shape#4286}(`%X%`_shape{lanetype#27465, dim#27465, i#113354}(`I64`_lanetype, `%`_dim{i#113361}(2)), `MUL`_vbinop_)] +[visit_exp shape#4286] +[visit_id shape#4286] +[visit_exp (`%X%`_shape{lanetype#27465, dim#27465, i#113354}(`I64`_lanetype, `%`_dim{i#113361}(2)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27465, dim#27465, i#113354}(`I64`_lanetype, `%`_dim{i#113361}(2))] +[visit_exp lanetype#27465] +[visit_id lanetype#27465] +[visit_exp dim#27465] +[visit_id dim#27465] +[visit_exp i#113354] +[visit_id i#113354] +[visit_exp (`I64`_lanetype, `%`_dim{i#113361}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113361}(2)] +[visit_exp i#113361] +[visit_id i#113361] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `MUL`_vbinop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#27492 i#113411 i#113418 lanetype#27492 shape#4288 +dims \ I = dim#27492, i#113411, i#113418, lanetype#27492, shape#4288 +[visit_exp `VBINOP`_instr{shape#4288}(`%X%`_shape{lanetype#27492, dim#27492, i#113411}(`F32`_lanetype, `%`_dim{i#113418}(4)), `ADD`_vbinop_)] +[visit_exp shape#4288] +[visit_id shape#4288] +[visit_exp (`%X%`_shape{lanetype#27492, dim#27492, i#113411}(`F32`_lanetype, `%`_dim{i#113418}(4)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27492, dim#27492, i#113411}(`F32`_lanetype, `%`_dim{i#113418}(4))] +[visit_exp lanetype#27492] +[visit_id lanetype#27492] +[visit_exp dim#27492] +[visit_id dim#27492] +[visit_exp i#113411] +[visit_id i#113411] +[visit_exp (`F32`_lanetype, `%`_dim{i#113418}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113418}(4)] +[visit_exp i#113418] +[visit_id i#113418] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27534 i#113483 i#113490 lanetype#27534 shape#4290 +dims \ I = dim#27534, i#113483, i#113490, lanetype#27534, shape#4290 +[visit_exp `VBINOP`_instr{shape#4290}(`%X%`_shape{lanetype#27534, dim#27534, i#113483}(`F32`_lanetype, `%`_dim{i#113490}(4)), `SUB`_vbinop_)] +[visit_exp shape#4290] +[visit_id shape#4290] +[visit_exp (`%X%`_shape{lanetype#27534, dim#27534, i#113483}(`F32`_lanetype, `%`_dim{i#113490}(4)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27534, dim#27534, i#113483}(`F32`_lanetype, `%`_dim{i#113490}(4))] +[visit_exp lanetype#27534] +[visit_id lanetype#27534] +[visit_exp dim#27534] +[visit_id dim#27534] +[visit_exp i#113483] +[visit_id i#113483] +[visit_exp (`F32`_lanetype, `%`_dim{i#113490}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113490}(4)] +[visit_exp i#113490] +[visit_id i#113490] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27576 i#113555 i#113562 lanetype#27576 shape#4292 +dims \ I = dim#27576, i#113555, i#113562, lanetype#27576, shape#4292 +[visit_exp `VBINOP`_instr{shape#4292}(`%X%`_shape{lanetype#27576, dim#27576, i#113555}(`F32`_lanetype, `%`_dim{i#113562}(4)), `MUL`_vbinop_)] +[visit_exp shape#4292] +[visit_id shape#4292] +[visit_exp (`%X%`_shape{lanetype#27576, dim#27576, i#113555}(`F32`_lanetype, `%`_dim{i#113562}(4)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27576, dim#27576, i#113555}(`F32`_lanetype, `%`_dim{i#113562}(4))] +[visit_exp lanetype#27576] +[visit_id lanetype#27576] +[visit_exp dim#27576] +[visit_id dim#27576] +[visit_exp i#113555] +[visit_id i#113555] +[visit_exp (`F32`_lanetype, `%`_dim{i#113562}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113562}(4)] +[visit_exp i#113562] +[visit_id i#113562] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MUL`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27618 i#113627 i#113634 lanetype#27618 shape#4294 +dims \ I = dim#27618, i#113627, i#113634, lanetype#27618, shape#4294 +[visit_exp `VBINOP`_instr{shape#4294}(`%X%`_shape{lanetype#27618, dim#27618, i#113627}(`F32`_lanetype, `%`_dim{i#113634}(4)), `DIV`_vbinop_)] +[visit_exp shape#4294] +[visit_id shape#4294] +[visit_exp (`%X%`_shape{lanetype#27618, dim#27618, i#113627}(`F32`_lanetype, `%`_dim{i#113634}(4)), `DIV`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27618, dim#27618, i#113627}(`F32`_lanetype, `%`_dim{i#113634}(4))] +[visit_exp lanetype#27618] +[visit_id lanetype#27618] +[visit_exp dim#27618] +[visit_id dim#27618] +[visit_exp i#113627] +[visit_id i#113627] +[visit_exp (`F32`_lanetype, `%`_dim{i#113634}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113634}(4)] +[visit_exp i#113634] +[visit_id i#113634] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `DIV`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27660 i#113699 i#113706 lanetype#27660 shape#4296 +dims \ I = dim#27660, i#113699, i#113706, lanetype#27660, shape#4296 +[visit_exp `VBINOP`_instr{shape#4296}(`%X%`_shape{lanetype#27660, dim#27660, i#113699}(`F32`_lanetype, `%`_dim{i#113706}(4)), `MIN`_vbinop_)] +[visit_exp shape#4296] +[visit_id shape#4296] +[visit_exp (`%X%`_shape{lanetype#27660, dim#27660, i#113699}(`F32`_lanetype, `%`_dim{i#113706}(4)), `MIN`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27660, dim#27660, i#113699}(`F32`_lanetype, `%`_dim{i#113706}(4))] +[visit_exp lanetype#27660] +[visit_id lanetype#27660] +[visit_exp dim#27660] +[visit_id dim#27660] +[visit_exp i#113699] +[visit_id i#113699] +[visit_exp (`F32`_lanetype, `%`_dim{i#113706}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113706}(4)] +[visit_exp i#113706] +[visit_id i#113706] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MIN`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27702 i#113771 i#113778 lanetype#27702 shape#4298 +dims \ I = dim#27702, i#113771, i#113778, lanetype#27702, shape#4298 +[visit_exp `VBINOP`_instr{shape#4298}(`%X%`_shape{lanetype#27702, dim#27702, i#113771}(`F32`_lanetype, `%`_dim{i#113778}(4)), `MAX`_vbinop_)] +[visit_exp shape#4298] +[visit_id shape#4298] +[visit_exp (`%X%`_shape{lanetype#27702, dim#27702, i#113771}(`F32`_lanetype, `%`_dim{i#113778}(4)), `MAX`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27702, dim#27702, i#113771}(`F32`_lanetype, `%`_dim{i#113778}(4))] +[visit_exp lanetype#27702] +[visit_id lanetype#27702] +[visit_exp dim#27702] +[visit_id dim#27702] +[visit_exp i#113771] +[visit_id i#113771] +[visit_exp (`F32`_lanetype, `%`_dim{i#113778}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113778}(4)] +[visit_exp i#113778] +[visit_id i#113778] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `MAX`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27744 i#113843 i#113850 lanetype#27744 shape#4300 +dims \ I = dim#27744, i#113843, i#113850, lanetype#27744, shape#4300 +[visit_exp `VBINOP`_instr{shape#4300}(`%X%`_shape{lanetype#27744, dim#27744, i#113843}(`F32`_lanetype, `%`_dim{i#113850}(4)), `PMIN`_vbinop_)] +[visit_exp shape#4300] +[visit_id shape#4300] +[visit_exp (`%X%`_shape{lanetype#27744, dim#27744, i#113843}(`F32`_lanetype, `%`_dim{i#113850}(4)), `PMIN`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27744, dim#27744, i#113843}(`F32`_lanetype, `%`_dim{i#113850}(4))] +[visit_exp lanetype#27744] +[visit_id lanetype#27744] +[visit_exp dim#27744] +[visit_id dim#27744] +[visit_exp i#113843] +[visit_id i#113843] +[visit_exp (`F32`_lanetype, `%`_dim{i#113850}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113850}(4)] +[visit_exp i#113850] +[visit_id i#113850] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `PMIN`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27786 i#113915 i#113922 lanetype#27786 shape#4302 +dims \ I = dim#27786, i#113915, i#113922, lanetype#27786, shape#4302 +[visit_exp `VBINOP`_instr{shape#4302}(`%X%`_shape{lanetype#27786, dim#27786, i#113915}(`F32`_lanetype, `%`_dim{i#113922}(4)), `PMAX`_vbinop_)] +[visit_exp shape#4302] +[visit_id shape#4302] +[visit_exp (`%X%`_shape{lanetype#27786, dim#27786, i#113915}(`F32`_lanetype, `%`_dim{i#113922}(4)), `PMAX`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27786, dim#27786, i#113915}(`F32`_lanetype, `%`_dim{i#113922}(4))] +[visit_exp lanetype#27786] +[visit_id lanetype#27786] +[visit_exp dim#27786] +[visit_id dim#27786] +[visit_exp i#113915] +[visit_id i#113915] +[visit_exp (`F32`_lanetype, `%`_dim{i#113922}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113922}(4)] +[visit_exp i#113922] +[visit_id i#113922] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `PMAX`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27828 i#113987 i#113994 lanetype#27828 shape#4304 +dims \ I = dim#27828, i#113987, i#113994, lanetype#27828, shape#4304 +[visit_exp `VBINOP`_instr{shape#4304}(`%X%`_shape{lanetype#27828, dim#27828, i#113987}(`F32`_lanetype, `%`_dim{i#113994}(4)), `RELAXED_MIN`_vbinop_)] +[visit_exp shape#4304] +[visit_id shape#4304] +[visit_exp (`%X%`_shape{lanetype#27828, dim#27828, i#113987}(`F32`_lanetype, `%`_dim{i#113994}(4)), `RELAXED_MIN`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27828, dim#27828, i#113987}(`F32`_lanetype, `%`_dim{i#113994}(4))] +[visit_exp lanetype#27828] +[visit_id lanetype#27828] +[visit_exp dim#27828] +[visit_id dim#27828] +[visit_exp i#113987] +[visit_id i#113987] +[visit_exp (`F32`_lanetype, `%`_dim{i#113994}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#113994}(4)] +[visit_exp i#113994] +[visit_id i#113994] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_MIN`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27870 i#114059 i#114066 lanetype#27870 shape#4306 +dims \ I = dim#27870, i#114059, i#114066, lanetype#27870, shape#4306 +[visit_exp `VBINOP`_instr{shape#4306}(`%X%`_shape{lanetype#27870, dim#27870, i#114059}(`F32`_lanetype, `%`_dim{i#114066}(4)), `RELAXED_MAX`_vbinop_)] +[visit_exp shape#4306] +[visit_id shape#4306] +[visit_exp (`%X%`_shape{lanetype#27870, dim#27870, i#114059}(`F32`_lanetype, `%`_dim{i#114066}(4)), `RELAXED_MAX`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27870, dim#27870, i#114059}(`F32`_lanetype, `%`_dim{i#114066}(4))] +[visit_exp lanetype#27870] +[visit_id lanetype#27870] +[visit_exp dim#27870] +[visit_id dim#27870] +[visit_exp i#114059] +[visit_id i#114059] +[visit_exp (`F32`_lanetype, `%`_dim{i#114066}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114066}(4)] +[visit_exp i#114066] +[visit_id i#114066] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_MAX`_vbinop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#27912 i#114131 i#114138 lanetype#27912 shape#4308 +dims \ I = dim#27912, i#114131, i#114138, lanetype#27912, shape#4308 +[visit_exp `VBINOP`_instr{shape#4308}(`%X%`_shape{lanetype#27912, dim#27912, i#114131}(`F64`_lanetype, `%`_dim{i#114138}(2)), `ADD`_vbinop_)] +[visit_exp shape#4308] +[visit_id shape#4308] +[visit_exp (`%X%`_shape{lanetype#27912, dim#27912, i#114131}(`F64`_lanetype, `%`_dim{i#114138}(2)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27912, dim#27912, i#114131}(`F64`_lanetype, `%`_dim{i#114138}(2))] +[visit_exp lanetype#27912] +[visit_id lanetype#27912] +[visit_exp dim#27912] +[visit_id dim#27912] +[visit_exp i#114131] +[visit_id i#114131] +[visit_exp (`F64`_lanetype, `%`_dim{i#114138}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114138}(2)] +[visit_exp i#114138] +[visit_id i#114138] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `ADD`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27954 i#114203 i#114210 lanetype#27954 shape#4310 +dims \ I = dim#27954, i#114203, i#114210, lanetype#27954, shape#4310 +[visit_exp `VBINOP`_instr{shape#4310}(`%X%`_shape{lanetype#27954, dim#27954, i#114203}(`F64`_lanetype, `%`_dim{i#114210}(2)), `SUB`_vbinop_)] +[visit_exp shape#4310] +[visit_id shape#4310] +[visit_exp (`%X%`_shape{lanetype#27954, dim#27954, i#114203}(`F64`_lanetype, `%`_dim{i#114210}(2)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27954, dim#27954, i#114203}(`F64`_lanetype, `%`_dim{i#114210}(2))] +[visit_exp lanetype#27954] +[visit_id lanetype#27954] +[visit_exp dim#27954] +[visit_id dim#27954] +[visit_exp i#114203] +[visit_id i#114203] +[visit_exp (`F64`_lanetype, `%`_dim{i#114210}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114210}(2)] +[visit_exp i#114210] +[visit_id i#114210] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `SUB`_vbinop_] +[visit_exp ()] +[check_dims] I dim#27996 i#114275 i#114282 lanetype#27996 shape#4312 +dims \ I = dim#27996, i#114275, i#114282, lanetype#27996, shape#4312 +[visit_exp `VBINOP`_instr{shape#4312}(`%X%`_shape{lanetype#27996, dim#27996, i#114275}(`F64`_lanetype, `%`_dim{i#114282}(2)), `MUL`_vbinop_)] +[visit_exp shape#4312] +[visit_id shape#4312] +[visit_exp (`%X%`_shape{lanetype#27996, dim#27996, i#114275}(`F64`_lanetype, `%`_dim{i#114282}(2)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#27996, dim#27996, i#114275}(`F64`_lanetype, `%`_dim{i#114282}(2))] +[visit_exp lanetype#27996] +[visit_id lanetype#27996] +[visit_exp dim#27996] +[visit_id dim#27996] +[visit_exp i#114275] +[visit_id i#114275] +[visit_exp (`F64`_lanetype, `%`_dim{i#114282}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114282}(2)] +[visit_exp i#114282] +[visit_id i#114282] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `MUL`_vbinop_] +[visit_exp ()] +[check_dims] I dim#28038 i#114347 i#114354 lanetype#28038 shape#4314 +dims \ I = dim#28038, i#114347, i#114354, lanetype#28038, shape#4314 +[visit_exp `VBINOP`_instr{shape#4314}(`%X%`_shape{lanetype#28038, dim#28038, i#114347}(`F64`_lanetype, `%`_dim{i#114354}(2)), `DIV`_vbinop_)] +[visit_exp shape#4314] +[visit_id shape#4314] +[visit_exp (`%X%`_shape{lanetype#28038, dim#28038, i#114347}(`F64`_lanetype, `%`_dim{i#114354}(2)), `DIV`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#28038, dim#28038, i#114347}(`F64`_lanetype, `%`_dim{i#114354}(2))] +[visit_exp lanetype#28038] +[visit_id lanetype#28038] +[visit_exp dim#28038] +[visit_id dim#28038] +[visit_exp i#114347] +[visit_id i#114347] +[visit_exp (`F64`_lanetype, `%`_dim{i#114354}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114354}(2)] +[visit_exp i#114354] +[visit_id i#114354] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `DIV`_vbinop_] +[visit_exp ()] +[check_dims] I dim#28080 i#114419 i#114426 lanetype#28080 shape#4316 +dims \ I = dim#28080, i#114419, i#114426, lanetype#28080, shape#4316 +[visit_exp `VBINOP`_instr{shape#4316}(`%X%`_shape{lanetype#28080, dim#28080, i#114419}(`F64`_lanetype, `%`_dim{i#114426}(2)), `MIN`_vbinop_)] +[visit_exp shape#4316] +[visit_id shape#4316] +[visit_exp (`%X%`_shape{lanetype#28080, dim#28080, i#114419}(`F64`_lanetype, `%`_dim{i#114426}(2)), `MIN`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#28080, dim#28080, i#114419}(`F64`_lanetype, `%`_dim{i#114426}(2))] +[visit_exp lanetype#28080] +[visit_id lanetype#28080] +[visit_exp dim#28080] +[visit_id dim#28080] +[visit_exp i#114419] +[visit_id i#114419] +[visit_exp (`F64`_lanetype, `%`_dim{i#114426}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114426}(2)] +[visit_exp i#114426] +[visit_id i#114426] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `MIN`_vbinop_] +[visit_exp ()] +[check_dims] I dim#28122 i#114491 i#114498 lanetype#28122 shape#4318 +dims \ I = dim#28122, i#114491, i#114498, lanetype#28122, shape#4318 +[visit_exp `VBINOP`_instr{shape#4318}(`%X%`_shape{lanetype#28122, dim#28122, i#114491}(`F64`_lanetype, `%`_dim{i#114498}(2)), `MAX`_vbinop_)] +[visit_exp shape#4318] +[visit_id shape#4318] +[visit_exp (`%X%`_shape{lanetype#28122, dim#28122, i#114491}(`F64`_lanetype, `%`_dim{i#114498}(2)), `MAX`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#28122, dim#28122, i#114491}(`F64`_lanetype, `%`_dim{i#114498}(2))] +[visit_exp lanetype#28122] +[visit_id lanetype#28122] +[visit_exp dim#28122] +[visit_id dim#28122] +[visit_exp i#114491] +[visit_id i#114491] +[visit_exp (`F64`_lanetype, `%`_dim{i#114498}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114498}(2)] +[visit_exp i#114498] +[visit_id i#114498] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `MAX`_vbinop_] +[visit_exp ()] +[check_dims] I dim#28164 i#114563 i#114570 lanetype#28164 shape#4320 +dims \ I = dim#28164, i#114563, i#114570, lanetype#28164, shape#4320 +[visit_exp `VBINOP`_instr{shape#4320}(`%X%`_shape{lanetype#28164, dim#28164, i#114563}(`F64`_lanetype, `%`_dim{i#114570}(2)), `PMIN`_vbinop_)] +[visit_exp shape#4320] +[visit_id shape#4320] +[visit_exp (`%X%`_shape{lanetype#28164, dim#28164, i#114563}(`F64`_lanetype, `%`_dim{i#114570}(2)), `PMIN`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#28164, dim#28164, i#114563}(`F64`_lanetype, `%`_dim{i#114570}(2))] +[visit_exp lanetype#28164] +[visit_id lanetype#28164] +[visit_exp dim#28164] +[visit_id dim#28164] +[visit_exp i#114563] +[visit_id i#114563] +[visit_exp (`F64`_lanetype, `%`_dim{i#114570}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114570}(2)] +[visit_exp i#114570] +[visit_id i#114570] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `PMIN`_vbinop_] +[visit_exp ()] +[check_dims] I dim#28206 i#114635 i#114642 lanetype#28206 shape#4322 +dims \ I = dim#28206, i#114635, i#114642, lanetype#28206, shape#4322 +[visit_exp `VBINOP`_instr{shape#4322}(`%X%`_shape{lanetype#28206, dim#28206, i#114635}(`F64`_lanetype, `%`_dim{i#114642}(2)), `PMAX`_vbinop_)] +[visit_exp shape#4322] +[visit_id shape#4322] +[visit_exp (`%X%`_shape{lanetype#28206, dim#28206, i#114635}(`F64`_lanetype, `%`_dim{i#114642}(2)), `PMAX`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#28206, dim#28206, i#114635}(`F64`_lanetype, `%`_dim{i#114642}(2))] +[visit_exp lanetype#28206] +[visit_id lanetype#28206] +[visit_exp dim#28206] +[visit_id dim#28206] +[visit_exp i#114635] +[visit_id i#114635] +[visit_exp (`F64`_lanetype, `%`_dim{i#114642}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114642}(2)] +[visit_exp i#114642] +[visit_id i#114642] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `PMAX`_vbinop_] +[visit_exp ()] +[check_dims] I dim#28248 i#114707 i#114714 lanetype#28248 shape#4324 +dims \ I = dim#28248, i#114707, i#114714, lanetype#28248, shape#4324 +[visit_exp `VBINOP`_instr{shape#4324}(`%X%`_shape{lanetype#28248, dim#28248, i#114707}(`F64`_lanetype, `%`_dim{i#114714}(2)), `RELAXED_MIN`_vbinop_)] +[visit_exp shape#4324] +[visit_id shape#4324] +[visit_exp (`%X%`_shape{lanetype#28248, dim#28248, i#114707}(`F64`_lanetype, `%`_dim{i#114714}(2)), `RELAXED_MIN`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#28248, dim#28248, i#114707}(`F64`_lanetype, `%`_dim{i#114714}(2))] +[visit_exp lanetype#28248] +[visit_id lanetype#28248] +[visit_exp dim#28248] +[visit_id dim#28248] +[visit_exp i#114707] +[visit_id i#114707] +[visit_exp (`F64`_lanetype, `%`_dim{i#114714}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114714}(2)] +[visit_exp i#114714] +[visit_id i#114714] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_MIN`_vbinop_] +[visit_exp ()] +[check_dims] I dim#28290 i#114779 i#114786 lanetype#28290 shape#4326 +dims \ I = dim#28290, i#114779, i#114786, lanetype#28290, shape#4326 +[visit_exp `VBINOP`_instr{shape#4326}(`%X%`_shape{lanetype#28290, dim#28290, i#114779}(`F64`_lanetype, `%`_dim{i#114786}(2)), `RELAXED_MAX`_vbinop_)] +[visit_exp shape#4326] +[visit_id shape#4326] +[visit_exp (`%X%`_shape{lanetype#28290, dim#28290, i#114779}(`F64`_lanetype, `%`_dim{i#114786}(2)), `RELAXED_MAX`_vbinop_)] +[visit_exp `%X%`_shape{lanetype#28290, dim#28290, i#114779}(`F64`_lanetype, `%`_dim{i#114786}(2))] +[visit_exp lanetype#28290] +[visit_id lanetype#28290] +[visit_exp dim#28290] +[visit_id dim#28290] +[visit_exp i#114779] +[visit_id i#114779] +[visit_exp (`F64`_lanetype, `%`_dim{i#114786}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114786}(2)] +[visit_exp i#114786] +[visit_id i#114786] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_MAX`_vbinop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I vectype#328 vvternop#9 +dims \ I = vectype#328, vvternop#9 +[visit_exp `VVTERNOP`_instr{vectype#328, vvternop#9}(`V128`_vectype, `BITSELECT`_vvternop)] +[visit_exp vectype#328] +[visit_id vectype#328] +[visit_exp vvternop#9] +[visit_id vvternop#9] +[visit_exp (`V128`_vectype, `BITSELECT`_vvternop)] +[visit_exp `V128`_vectype] +[visit_exp ()] +[visit_exp `BITSELECT`_vvternop] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#28332 i#114851 i#114858 lanetype#28332 shape#4328 +dims \ I = dim#28332, i#114851, i#114858, lanetype#28332, shape#4328 +[visit_exp `VTERNOP`_instr{shape#4328}(`%X%`_shape{lanetype#28332, dim#28332, i#114851}(`I8`_lanetype, `%`_dim{i#114858}(16)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp shape#4328] +[visit_id shape#4328] +[visit_exp (`%X%`_shape{lanetype#28332, dim#28332, i#114851}(`I8`_lanetype, `%`_dim{i#114858}(16)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape{lanetype#28332, dim#28332, i#114851}(`I8`_lanetype, `%`_dim{i#114858}(16))] +[visit_exp lanetype#28332] +[visit_id lanetype#28332] +[visit_exp dim#28332] +[visit_id dim#28332] +[visit_exp i#114851] +[visit_id i#114851] +[visit_exp (`I8`_lanetype, `%`_dim{i#114858}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114858}(16)] +[visit_exp i#114858] +[visit_id i#114858] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `RELAXED_LANESELECT`_vternop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#28359 i#114908 i#114915 lanetype#28359 shape#4330 +dims \ I = dim#28359, i#114908, i#114915, lanetype#28359, shape#4330 +[visit_exp `VTERNOP`_instr{shape#4330}(`%X%`_shape{lanetype#28359, dim#28359, i#114908}(`I16`_lanetype, `%`_dim{i#114915}(8)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp shape#4330] +[visit_id shape#4330] +[visit_exp (`%X%`_shape{lanetype#28359, dim#28359, i#114908}(`I16`_lanetype, `%`_dim{i#114915}(8)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape{lanetype#28359, dim#28359, i#114908}(`I16`_lanetype, `%`_dim{i#114915}(8))] +[visit_exp lanetype#28359] +[visit_id lanetype#28359] +[visit_exp dim#28359] +[visit_id dim#28359] +[visit_exp i#114908] +[visit_id i#114908] +[visit_exp (`I16`_lanetype, `%`_dim{i#114915}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114915}(8)] +[visit_exp i#114915] +[visit_id i#114915] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `RELAXED_LANESELECT`_vternop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#28386 i#114965 i#114972 lanetype#28386 shape#4332 +dims \ I = dim#28386, i#114965, i#114972, lanetype#28386, shape#4332 +[visit_exp `VTERNOP`_instr{shape#4332}(`%X%`_shape{lanetype#28386, dim#28386, i#114965}(`I32`_lanetype, `%`_dim{i#114972}(4)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp shape#4332] +[visit_id shape#4332] +[visit_exp (`%X%`_shape{lanetype#28386, dim#28386, i#114965}(`I32`_lanetype, `%`_dim{i#114972}(4)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape{lanetype#28386, dim#28386, i#114965}(`I32`_lanetype, `%`_dim{i#114972}(4))] +[visit_exp lanetype#28386] +[visit_id lanetype#28386] +[visit_exp dim#28386] +[visit_id dim#28386] +[visit_exp i#114965] +[visit_id i#114965] +[visit_exp (`I32`_lanetype, `%`_dim{i#114972}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#114972}(4)] +[visit_exp i#114972] +[visit_id i#114972] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_LANESELECT`_vternop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#28413 i#115022 i#115029 lanetype#28413 shape#4334 +dims \ I = dim#28413, i#115022, i#115029, lanetype#28413, shape#4334 +[visit_exp `VTERNOP`_instr{shape#4334}(`%X%`_shape{lanetype#28413, dim#28413, i#115022}(`I64`_lanetype, `%`_dim{i#115029}(2)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp shape#4334] +[visit_id shape#4334] +[visit_exp (`%X%`_shape{lanetype#28413, dim#28413, i#115022}(`I64`_lanetype, `%`_dim{i#115029}(2)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape{lanetype#28413, dim#28413, i#115022}(`I64`_lanetype, `%`_dim{i#115029}(2))] +[visit_exp lanetype#28413] +[visit_id lanetype#28413] +[visit_exp dim#28413] +[visit_id dim#28413] +[visit_exp i#115022] +[visit_id i#115022] +[visit_exp (`I64`_lanetype, `%`_dim{i#115029}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#115029}(2)] +[visit_exp i#115029] +[visit_id i#115029] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_LANESELECT`_vternop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#28440 i#115079 i#115086 lanetype#28440 shape#4336 +dims \ I = dim#28440, i#115079, i#115086, lanetype#28440, shape#4336 +[visit_exp `VTERNOP`_instr{shape#4336}(`%X%`_shape{lanetype#28440, dim#28440, i#115079}(`F32`_lanetype, `%`_dim{i#115086}(4)), `RELAXED_MADD`_vternop_)] +[visit_exp shape#4336] +[visit_id shape#4336] +[visit_exp (`%X%`_shape{lanetype#28440, dim#28440, i#115079}(`F32`_lanetype, `%`_dim{i#115086}(4)), `RELAXED_MADD`_vternop_)] +[visit_exp `%X%`_shape{lanetype#28440, dim#28440, i#115079}(`F32`_lanetype, `%`_dim{i#115086}(4))] +[visit_exp lanetype#28440] +[visit_id lanetype#28440] +[visit_exp dim#28440] +[visit_id dim#28440] +[visit_exp i#115079] +[visit_id i#115079] +[visit_exp (`F32`_lanetype, `%`_dim{i#115086}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#115086}(4)] +[visit_exp i#115086] +[visit_id i#115086] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_MADD`_vternop_] +[visit_exp ()] +[check_dims] I dim#28482 i#115151 i#115158 lanetype#28482 shape#4338 +dims \ I = dim#28482, i#115151, i#115158, lanetype#28482, shape#4338 +[visit_exp `VTERNOP`_instr{shape#4338}(`%X%`_shape{lanetype#28482, dim#28482, i#115151}(`F32`_lanetype, `%`_dim{i#115158}(4)), `RELAXED_NMADD`_vternop_)] +[visit_exp shape#4338] +[visit_id shape#4338] +[visit_exp (`%X%`_shape{lanetype#28482, dim#28482, i#115151}(`F32`_lanetype, `%`_dim{i#115158}(4)), `RELAXED_NMADD`_vternop_)] +[visit_exp `%X%`_shape{lanetype#28482, dim#28482, i#115151}(`F32`_lanetype, `%`_dim{i#115158}(4))] +[visit_exp lanetype#28482] +[visit_id lanetype#28482] +[visit_exp dim#28482] +[visit_id dim#28482] +[visit_exp i#115151] +[visit_id i#115151] +[visit_exp (`F32`_lanetype, `%`_dim{i#115158}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#115158}(4)] +[visit_exp i#115158] +[visit_id i#115158] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_NMADD`_vternop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#28524 i#115223 i#115230 lanetype#28524 shape#4340 +dims \ I = dim#28524, i#115223, i#115230, lanetype#28524, shape#4340 +[visit_exp `VTERNOP`_instr{shape#4340}(`%X%`_shape{lanetype#28524, dim#28524, i#115223}(`F64`_lanetype, `%`_dim{i#115230}(2)), `RELAXED_MADD`_vternop_)] +[visit_exp shape#4340] +[visit_id shape#4340] +[visit_exp (`%X%`_shape{lanetype#28524, dim#28524, i#115223}(`F64`_lanetype, `%`_dim{i#115230}(2)), `RELAXED_MADD`_vternop_)] +[visit_exp `%X%`_shape{lanetype#28524, dim#28524, i#115223}(`F64`_lanetype, `%`_dim{i#115230}(2))] +[visit_exp lanetype#28524] +[visit_id lanetype#28524] +[visit_exp dim#28524] +[visit_id dim#28524] +[visit_exp i#115223] +[visit_id i#115223] +[visit_exp (`F64`_lanetype, `%`_dim{i#115230}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#115230}(2)] +[visit_exp i#115230] +[visit_id i#115230] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_MADD`_vternop_] +[visit_exp ()] +[check_dims] I dim#28566 i#115295 i#115302 lanetype#28566 shape#4342 +dims \ I = dim#28566, i#115295, i#115302, lanetype#28566, shape#4342 +[visit_exp `VTERNOP`_instr{shape#4342}(`%X%`_shape{lanetype#28566, dim#28566, i#115295}(`F64`_lanetype, `%`_dim{i#115302}(2)), `RELAXED_NMADD`_vternop_)] +[visit_exp shape#4342] +[visit_id shape#4342] +[visit_exp (`%X%`_shape{lanetype#28566, dim#28566, i#115295}(`F64`_lanetype, `%`_dim{i#115302}(2)), `RELAXED_NMADD`_vternop_)] +[visit_exp `%X%`_shape{lanetype#28566, dim#28566, i#115295}(`F64`_lanetype, `%`_dim{i#115302}(2))] +[visit_exp lanetype#28566] +[visit_id lanetype#28566] +[visit_exp dim#28566] +[visit_id dim#28566] +[visit_exp i#115295] +[visit_id i#115295] +[visit_exp (`F64`_lanetype, `%`_dim{i#115302}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#115302}(2)] +[visit_exp i#115302] +[visit_id i#115302] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_NMADD`_vternop_] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#488 dim#28608 i#115367 i#115374 ishape#45 lanetype#28608 shape#4354 +dims \ I = Jnn#488, dim#28608, i#115367, i#115374, ishape#45, lanetype#28608, shape#4354 +[visit_exp `VSHIFTOP`_instr{ishape#45}(`%`_ishape{shape#4354, Jnn#488}(`%X%`_shape{lanetype#28608, dim#28608, i#115367}(`I8`_lanetype, `%`_dim{i#115374}(16))), `SHL`_vshiftop_)] +[visit_exp ishape#45] +[visit_id ishape#45] +[visit_exp (`%`_ishape{shape#4354, Jnn#488}(`%X%`_shape{lanetype#28608, dim#28608, i#115367}(`I8`_lanetype, `%`_dim{i#115374}(16))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape{shape#4354, Jnn#488}(`%X%`_shape{lanetype#28608, dim#28608, i#115367}(`I8`_lanetype, `%`_dim{i#115374}(16)))] +[visit_exp shape#4354] +[visit_id shape#4354] +[visit_exp Jnn#488] +[visit_id Jnn#488] +[visit_exp (`%X%`_shape{lanetype#28608, dim#28608, i#115367}(`I8`_lanetype, `%`_dim{i#115374}(16)))] +[visit_exp `%X%`_shape{lanetype#28608, dim#28608, i#115367}(`I8`_lanetype, `%`_dim{i#115374}(16))] +[visit_exp lanetype#28608] +[visit_id lanetype#28608] +[visit_exp dim#28608] +[visit_id dim#28608] +[visit_exp i#115367] +[visit_id i#115367] +[visit_exp (`I8`_lanetype, `%`_dim{i#115374}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#115374}(16)] +[visit_exp i#115374] +[visit_id i#115374] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SHL`_vshiftop_] +[visit_exp ()] +[check_dims] I Jnn#492 dim#28665 i#115454 i#115461 ishape#47 lanetype#28665 shape#4381 sx#29339 +dims \ I = Jnn#492, dim#28665, i#115454, i#115461, ishape#47, lanetype#28665, shape#4381, sx#29339 +[visit_exp `VSHIFTOP`_instr{ishape#47}(`%`_ishape{shape#4381, Jnn#492}(`%X%`_shape{lanetype#28665, dim#28665, i#115454}(`I8`_lanetype, `%`_dim{i#115461}(16))), `SHR`_vshiftop_{sx#29339}(`S`_sx))] +[visit_exp ishape#47] +[visit_id ishape#47] +[visit_exp (`%`_ishape{shape#4381, Jnn#492}(`%X%`_shape{lanetype#28665, dim#28665, i#115454}(`I8`_lanetype, `%`_dim{i#115461}(16))), `SHR`_vshiftop_{sx#29339}(`S`_sx))] +[visit_exp `%`_ishape{shape#4381, Jnn#492}(`%X%`_shape{lanetype#28665, dim#28665, i#115454}(`I8`_lanetype, `%`_dim{i#115461}(16)))] +[visit_exp shape#4381] +[visit_id shape#4381] +[visit_exp Jnn#492] +[visit_id Jnn#492] +[visit_exp (`%X%`_shape{lanetype#28665, dim#28665, i#115454}(`I8`_lanetype, `%`_dim{i#115461}(16)))] +[visit_exp `%X%`_shape{lanetype#28665, dim#28665, i#115454}(`I8`_lanetype, `%`_dim{i#115461}(16))] +[visit_exp lanetype#28665] +[visit_id lanetype#28665] +[visit_exp dim#28665] +[visit_id dim#28665] +[visit_exp i#115454] +[visit_id i#115454] +[visit_exp (`I8`_lanetype, `%`_dim{i#115461}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#115461}(16)] +[visit_exp i#115461] +[visit_id i#115461] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SHR`_vshiftop_{sx#29339}(`S`_sx)] +[visit_exp sx#29339] +[visit_id sx#29339] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#496 dim#28767 i#115616 i#115623 ishape#49 lanetype#28767 shape#4423 sx#29373 +dims \ I = Jnn#496, dim#28767, i#115616, i#115623, ishape#49, lanetype#28767, shape#4423, sx#29373 +[visit_exp `VSHIFTOP`_instr{ishape#49}(`%`_ishape{shape#4423, Jnn#496}(`%X%`_shape{lanetype#28767, dim#28767, i#115616}(`I8`_lanetype, `%`_dim{i#115623}(16))), `SHR`_vshiftop_{sx#29373}(`U`_sx))] +[visit_exp ishape#49] +[visit_id ishape#49] +[visit_exp (`%`_ishape{shape#4423, Jnn#496}(`%X%`_shape{lanetype#28767, dim#28767, i#115616}(`I8`_lanetype, `%`_dim{i#115623}(16))), `SHR`_vshiftop_{sx#29373}(`U`_sx))] +[visit_exp `%`_ishape{shape#4423, Jnn#496}(`%X%`_shape{lanetype#28767, dim#28767, i#115616}(`I8`_lanetype, `%`_dim{i#115623}(16)))] +[visit_exp shape#4423] +[visit_id shape#4423] +[visit_exp Jnn#496] +[visit_id Jnn#496] +[visit_exp (`%X%`_shape{lanetype#28767, dim#28767, i#115616}(`I8`_lanetype, `%`_dim{i#115623}(16)))] +[visit_exp `%X%`_shape{lanetype#28767, dim#28767, i#115616}(`I8`_lanetype, `%`_dim{i#115623}(16))] +[visit_exp lanetype#28767] +[visit_id lanetype#28767] +[visit_exp dim#28767] +[visit_id dim#28767] +[visit_exp i#115616] +[visit_id i#115616] +[visit_exp (`I8`_lanetype, `%`_dim{i#115623}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#115623}(16)] +[visit_exp i#115623] +[visit_id i#115623] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `SHR`_vshiftop_{sx#29373}(`U`_sx)] +[visit_exp sx#29373] +[visit_id sx#29373] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#500 dim#28869 i#115778 i#115785 ishape#51 lanetype#28869 shape#4465 +dims \ I = Jnn#500, dim#28869, i#115778, i#115785, ishape#51, lanetype#28869, shape#4465 +[visit_exp `VSHIFTOP`_instr{ishape#51}(`%`_ishape{shape#4465, Jnn#500}(`%X%`_shape{lanetype#28869, dim#28869, i#115778}(`I16`_lanetype, `%`_dim{i#115785}(8))), `SHL`_vshiftop_)] +[visit_exp ishape#51] +[visit_id ishape#51] +[visit_exp (`%`_ishape{shape#4465, Jnn#500}(`%X%`_shape{lanetype#28869, dim#28869, i#115778}(`I16`_lanetype, `%`_dim{i#115785}(8))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape{shape#4465, Jnn#500}(`%X%`_shape{lanetype#28869, dim#28869, i#115778}(`I16`_lanetype, `%`_dim{i#115785}(8)))] +[visit_exp shape#4465] +[visit_id shape#4465] +[visit_exp Jnn#500] +[visit_id Jnn#500] +[visit_exp (`%X%`_shape{lanetype#28869, dim#28869, i#115778}(`I16`_lanetype, `%`_dim{i#115785}(8)))] +[visit_exp `%X%`_shape{lanetype#28869, dim#28869, i#115778}(`I16`_lanetype, `%`_dim{i#115785}(8))] +[visit_exp lanetype#28869] +[visit_id lanetype#28869] +[visit_exp dim#28869] +[visit_id dim#28869] +[visit_exp i#115778] +[visit_id i#115778] +[visit_exp (`I16`_lanetype, `%`_dim{i#115785}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#115785}(8)] +[visit_exp i#115785] +[visit_id i#115785] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `SHL`_vshiftop_] +[visit_exp ()] +[check_dims] I Jnn#504 dim#28926 i#115865 i#115872 ishape#53 lanetype#28926 shape#4492 sx#29422 +dims \ I = Jnn#504, dim#28926, i#115865, i#115872, ishape#53, lanetype#28926, shape#4492, sx#29422 +[visit_exp `VSHIFTOP`_instr{ishape#53}(`%`_ishape{shape#4492, Jnn#504}(`%X%`_shape{lanetype#28926, dim#28926, i#115865}(`I16`_lanetype, `%`_dim{i#115872}(8))), `SHR`_vshiftop_{sx#29422}(`S`_sx))] +[visit_exp ishape#53] +[visit_id ishape#53] +[visit_exp (`%`_ishape{shape#4492, Jnn#504}(`%X%`_shape{lanetype#28926, dim#28926, i#115865}(`I16`_lanetype, `%`_dim{i#115872}(8))), `SHR`_vshiftop_{sx#29422}(`S`_sx))] +[visit_exp `%`_ishape{shape#4492, Jnn#504}(`%X%`_shape{lanetype#28926, dim#28926, i#115865}(`I16`_lanetype, `%`_dim{i#115872}(8)))] +[visit_exp shape#4492] +[visit_id shape#4492] +[visit_exp Jnn#504] +[visit_id Jnn#504] +[visit_exp (`%X%`_shape{lanetype#28926, dim#28926, i#115865}(`I16`_lanetype, `%`_dim{i#115872}(8)))] +[visit_exp `%X%`_shape{lanetype#28926, dim#28926, i#115865}(`I16`_lanetype, `%`_dim{i#115872}(8))] +[visit_exp lanetype#28926] +[visit_id lanetype#28926] +[visit_exp dim#28926] +[visit_id dim#28926] +[visit_exp i#115865] +[visit_id i#115865] +[visit_exp (`I16`_lanetype, `%`_dim{i#115872}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#115872}(8)] +[visit_exp i#115872] +[visit_id i#115872] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `SHR`_vshiftop_{sx#29422}(`S`_sx)] +[visit_exp sx#29422] +[visit_id sx#29422] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#508 dim#29028 i#116027 i#116034 ishape#55 lanetype#29028 shape#4534 sx#29456 +dims \ I = Jnn#508, dim#29028, i#116027, i#116034, ishape#55, lanetype#29028, shape#4534, sx#29456 +[visit_exp `VSHIFTOP`_instr{ishape#55}(`%`_ishape{shape#4534, Jnn#508}(`%X%`_shape{lanetype#29028, dim#29028, i#116027}(`I16`_lanetype, `%`_dim{i#116034}(8))), `SHR`_vshiftop_{sx#29456}(`U`_sx))] +[visit_exp ishape#55] +[visit_id ishape#55] +[visit_exp (`%`_ishape{shape#4534, Jnn#508}(`%X%`_shape{lanetype#29028, dim#29028, i#116027}(`I16`_lanetype, `%`_dim{i#116034}(8))), `SHR`_vshiftop_{sx#29456}(`U`_sx))] +[visit_exp `%`_ishape{shape#4534, Jnn#508}(`%X%`_shape{lanetype#29028, dim#29028, i#116027}(`I16`_lanetype, `%`_dim{i#116034}(8)))] +[visit_exp shape#4534] +[visit_id shape#4534] +[visit_exp Jnn#508] +[visit_id Jnn#508] +[visit_exp (`%X%`_shape{lanetype#29028, dim#29028, i#116027}(`I16`_lanetype, `%`_dim{i#116034}(8)))] +[visit_exp `%X%`_shape{lanetype#29028, dim#29028, i#116027}(`I16`_lanetype, `%`_dim{i#116034}(8))] +[visit_exp lanetype#29028] +[visit_id lanetype#29028] +[visit_exp dim#29028] +[visit_id dim#29028] +[visit_exp i#116027] +[visit_id i#116027] +[visit_exp (`I16`_lanetype, `%`_dim{i#116034}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#116034}(8)] +[visit_exp i#116034] +[visit_id i#116034] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `SHR`_vshiftop_{sx#29456}(`U`_sx)] +[visit_exp sx#29456] +[visit_id sx#29456] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#512 dim#29130 i#116189 i#116196 ishape#57 lanetype#29130 shape#4576 +dims \ I = Jnn#512, dim#29130, i#116189, i#116196, ishape#57, lanetype#29130, shape#4576 +[visit_exp `VSHIFTOP`_instr{ishape#57}(`%`_ishape{shape#4576, Jnn#512}(`%X%`_shape{lanetype#29130, dim#29130, i#116189}(`I32`_lanetype, `%`_dim{i#116196}(4))), `SHL`_vshiftop_)] +[visit_exp ishape#57] +[visit_id ishape#57] +[visit_exp (`%`_ishape{shape#4576, Jnn#512}(`%X%`_shape{lanetype#29130, dim#29130, i#116189}(`I32`_lanetype, `%`_dim{i#116196}(4))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape{shape#4576, Jnn#512}(`%X%`_shape{lanetype#29130, dim#29130, i#116189}(`I32`_lanetype, `%`_dim{i#116196}(4)))] +[visit_exp shape#4576] +[visit_id shape#4576] +[visit_exp Jnn#512] +[visit_id Jnn#512] +[visit_exp (`%X%`_shape{lanetype#29130, dim#29130, i#116189}(`I32`_lanetype, `%`_dim{i#116196}(4)))] +[visit_exp `%X%`_shape{lanetype#29130, dim#29130, i#116189}(`I32`_lanetype, `%`_dim{i#116196}(4))] +[visit_exp lanetype#29130] +[visit_id lanetype#29130] +[visit_exp dim#29130] +[visit_id dim#29130] +[visit_exp i#116189] +[visit_id i#116189] +[visit_exp (`I32`_lanetype, `%`_dim{i#116196}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#116196}(4)] +[visit_exp i#116196] +[visit_id i#116196] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `SHL`_vshiftop_] +[visit_exp ()] +[check_dims] I Jnn#516 dim#29187 i#116276 i#116283 ishape#59 lanetype#29187 shape#4603 sx#29505 +dims \ I = Jnn#516, dim#29187, i#116276, i#116283, ishape#59, lanetype#29187, shape#4603, sx#29505 +[visit_exp `VSHIFTOP`_instr{ishape#59}(`%`_ishape{shape#4603, Jnn#516}(`%X%`_shape{lanetype#29187, dim#29187, i#116276}(`I32`_lanetype, `%`_dim{i#116283}(4))), `SHR`_vshiftop_{sx#29505}(`S`_sx))] +[visit_exp ishape#59] +[visit_id ishape#59] +[visit_exp (`%`_ishape{shape#4603, Jnn#516}(`%X%`_shape{lanetype#29187, dim#29187, i#116276}(`I32`_lanetype, `%`_dim{i#116283}(4))), `SHR`_vshiftop_{sx#29505}(`S`_sx))] +[visit_exp `%`_ishape{shape#4603, Jnn#516}(`%X%`_shape{lanetype#29187, dim#29187, i#116276}(`I32`_lanetype, `%`_dim{i#116283}(4)))] +[visit_exp shape#4603] +[visit_id shape#4603] +[visit_exp Jnn#516] +[visit_id Jnn#516] +[visit_exp (`%X%`_shape{lanetype#29187, dim#29187, i#116276}(`I32`_lanetype, `%`_dim{i#116283}(4)))] +[visit_exp `%X%`_shape{lanetype#29187, dim#29187, i#116276}(`I32`_lanetype, `%`_dim{i#116283}(4))] +[visit_exp lanetype#29187] +[visit_id lanetype#29187] +[visit_exp dim#29187] +[visit_id dim#29187] +[visit_exp i#116276] +[visit_id i#116276] +[visit_exp (`I32`_lanetype, `%`_dim{i#116283}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#116283}(4)] +[visit_exp i#116283] +[visit_id i#116283] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `SHR`_vshiftop_{sx#29505}(`S`_sx)] +[visit_exp sx#29505] +[visit_id sx#29505] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#520 dim#29289 i#116438 i#116445 ishape#61 lanetype#29289 shape#4645 sx#29539 +dims \ I = Jnn#520, dim#29289, i#116438, i#116445, ishape#61, lanetype#29289, shape#4645, sx#29539 +[visit_exp `VSHIFTOP`_instr{ishape#61}(`%`_ishape{shape#4645, Jnn#520}(`%X%`_shape{lanetype#29289, dim#29289, i#116438}(`I32`_lanetype, `%`_dim{i#116445}(4))), `SHR`_vshiftop_{sx#29539}(`U`_sx))] +[visit_exp ishape#61] +[visit_id ishape#61] +[visit_exp (`%`_ishape{shape#4645, Jnn#520}(`%X%`_shape{lanetype#29289, dim#29289, i#116438}(`I32`_lanetype, `%`_dim{i#116445}(4))), `SHR`_vshiftop_{sx#29539}(`U`_sx))] +[visit_exp `%`_ishape{shape#4645, Jnn#520}(`%X%`_shape{lanetype#29289, dim#29289, i#116438}(`I32`_lanetype, `%`_dim{i#116445}(4)))] +[visit_exp shape#4645] +[visit_id shape#4645] +[visit_exp Jnn#520] +[visit_id Jnn#520] +[visit_exp (`%X%`_shape{lanetype#29289, dim#29289, i#116438}(`I32`_lanetype, `%`_dim{i#116445}(4)))] +[visit_exp `%X%`_shape{lanetype#29289, dim#29289, i#116438}(`I32`_lanetype, `%`_dim{i#116445}(4))] +[visit_exp lanetype#29289] +[visit_id lanetype#29289] +[visit_exp dim#29289] +[visit_id dim#29289] +[visit_exp i#116438] +[visit_id i#116438] +[visit_exp (`I32`_lanetype, `%`_dim{i#116445}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#116445}(4)] +[visit_exp i#116445] +[visit_id i#116445] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `SHR`_vshiftop_{sx#29539}(`U`_sx)] +[visit_exp sx#29539] +[visit_id sx#29539] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#524 dim#29391 i#116600 i#116607 ishape#63 lanetype#29391 shape#4687 +dims \ I = Jnn#524, dim#29391, i#116600, i#116607, ishape#63, lanetype#29391, shape#4687 +[visit_exp `VSHIFTOP`_instr{ishape#63}(`%`_ishape{shape#4687, Jnn#524}(`%X%`_shape{lanetype#29391, dim#29391, i#116600}(`I64`_lanetype, `%`_dim{i#116607}(2))), `SHL`_vshiftop_)] +[visit_exp ishape#63] +[visit_id ishape#63] +[visit_exp (`%`_ishape{shape#4687, Jnn#524}(`%X%`_shape{lanetype#29391, dim#29391, i#116600}(`I64`_lanetype, `%`_dim{i#116607}(2))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape{shape#4687, Jnn#524}(`%X%`_shape{lanetype#29391, dim#29391, i#116600}(`I64`_lanetype, `%`_dim{i#116607}(2)))] +[visit_exp shape#4687] +[visit_id shape#4687] +[visit_exp Jnn#524] +[visit_id Jnn#524] +[visit_exp (`%X%`_shape{lanetype#29391, dim#29391, i#116600}(`I64`_lanetype, `%`_dim{i#116607}(2)))] +[visit_exp `%X%`_shape{lanetype#29391, dim#29391, i#116600}(`I64`_lanetype, `%`_dim{i#116607}(2))] +[visit_exp lanetype#29391] +[visit_id lanetype#29391] +[visit_exp dim#29391] +[visit_id dim#29391] +[visit_exp i#116600] +[visit_id i#116600] +[visit_exp (`I64`_lanetype, `%`_dim{i#116607}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#116607}(2)] +[visit_exp i#116607] +[visit_id i#116607] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `SHL`_vshiftop_] +[visit_exp ()] +[check_dims] I Jnn#528 dim#29448 i#116687 i#116694 ishape#65 lanetype#29448 shape#4714 sx#29588 +dims \ I = Jnn#528, dim#29448, i#116687, i#116694, ishape#65, lanetype#29448, shape#4714, sx#29588 +[visit_exp `VSHIFTOP`_instr{ishape#65}(`%`_ishape{shape#4714, Jnn#528}(`%X%`_shape{lanetype#29448, dim#29448, i#116687}(`I64`_lanetype, `%`_dim{i#116694}(2))), `SHR`_vshiftop_{sx#29588}(`S`_sx))] +[visit_exp ishape#65] +[visit_id ishape#65] +[visit_exp (`%`_ishape{shape#4714, Jnn#528}(`%X%`_shape{lanetype#29448, dim#29448, i#116687}(`I64`_lanetype, `%`_dim{i#116694}(2))), `SHR`_vshiftop_{sx#29588}(`S`_sx))] +[visit_exp `%`_ishape{shape#4714, Jnn#528}(`%X%`_shape{lanetype#29448, dim#29448, i#116687}(`I64`_lanetype, `%`_dim{i#116694}(2)))] +[visit_exp shape#4714] +[visit_id shape#4714] +[visit_exp Jnn#528] +[visit_id Jnn#528] +[visit_exp (`%X%`_shape{lanetype#29448, dim#29448, i#116687}(`I64`_lanetype, `%`_dim{i#116694}(2)))] +[visit_exp `%X%`_shape{lanetype#29448, dim#29448, i#116687}(`I64`_lanetype, `%`_dim{i#116694}(2))] +[visit_exp lanetype#29448] +[visit_id lanetype#29448] +[visit_exp dim#29448] +[visit_id dim#29448] +[visit_exp i#116687] +[visit_id i#116687] +[visit_exp (`I64`_lanetype, `%`_dim{i#116694}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#116694}(2)] +[visit_exp i#116694] +[visit_id i#116694] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `SHR`_vshiftop_{sx#29588}(`S`_sx)] +[visit_exp sx#29588] +[visit_id sx#29588] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#532 dim#29550 i#116849 i#116856 ishape#67 lanetype#29550 shape#4756 sx#29622 +dims \ I = Jnn#532, dim#29550, i#116849, i#116856, ishape#67, lanetype#29550, shape#4756, sx#29622 +[visit_exp `VSHIFTOP`_instr{ishape#67}(`%`_ishape{shape#4756, Jnn#532}(`%X%`_shape{lanetype#29550, dim#29550, i#116849}(`I64`_lanetype, `%`_dim{i#116856}(2))), `SHR`_vshiftop_{sx#29622}(`U`_sx))] +[visit_exp ishape#67] +[visit_id ishape#67] +[visit_exp (`%`_ishape{shape#4756, Jnn#532}(`%X%`_shape{lanetype#29550, dim#29550, i#116849}(`I64`_lanetype, `%`_dim{i#116856}(2))), `SHR`_vshiftop_{sx#29622}(`U`_sx))] +[visit_exp `%`_ishape{shape#4756, Jnn#532}(`%X%`_shape{lanetype#29550, dim#29550, i#116849}(`I64`_lanetype, `%`_dim{i#116856}(2)))] +[visit_exp shape#4756] +[visit_id shape#4756] +[visit_exp Jnn#532] +[visit_id Jnn#532] +[visit_exp (`%X%`_shape{lanetype#29550, dim#29550, i#116849}(`I64`_lanetype, `%`_dim{i#116856}(2)))] +[visit_exp `%X%`_shape{lanetype#29550, dim#29550, i#116849}(`I64`_lanetype, `%`_dim{i#116856}(2))] +[visit_exp lanetype#29550] +[visit_id lanetype#29550] +[visit_exp dim#29550] +[visit_id dim#29550] +[visit_exp i#116849] +[visit_id i#116849] +[visit_exp (`I64`_lanetype, `%`_dim{i#116856}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#116856}(2)] +[visit_exp i#116856] +[visit_id i#116856] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `SHR`_vshiftop_{sx#29622}(`U`_sx)] +[visit_exp sx#29622] +[visit_id sx#29622] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#536 dim#29652 i#117011 i#117018 ishape#69 lanetype#29652 shape#4798 +dims \ I = Jnn#536, dim#29652, i#117011, i#117018, ishape#69, lanetype#29652, shape#4798 +[visit_exp `VBITMASK`_instr{ishape#69}(`%`_ishape{shape#4798, Jnn#536}(`%X%`_shape{lanetype#29652, dim#29652, i#117011}(`I8`_lanetype, `%`_dim{i#117018}(16))))] +[visit_exp ishape#69] +[visit_id ishape#69] +[visit_exp (`%`_ishape{shape#4798, Jnn#536}(`%X%`_shape{lanetype#29652, dim#29652, i#117011}(`I8`_lanetype, `%`_dim{i#117018}(16))))] +[visit_exp `%`_ishape{shape#4798, Jnn#536}(`%X%`_shape{lanetype#29652, dim#29652, i#117011}(`I8`_lanetype, `%`_dim{i#117018}(16)))] +[visit_exp shape#4798] +[visit_id shape#4798] +[visit_exp Jnn#536] +[visit_id Jnn#536] +[visit_exp (`%X%`_shape{lanetype#29652, dim#29652, i#117011}(`I8`_lanetype, `%`_dim{i#117018}(16)))] +[visit_exp `%X%`_shape{lanetype#29652, dim#29652, i#117011}(`I8`_lanetype, `%`_dim{i#117018}(16))] +[visit_exp lanetype#29652] +[visit_id lanetype#29652] +[visit_exp dim#29652] +[visit_id dim#29652] +[visit_exp i#117011] +[visit_id i#117011] +[visit_exp (`I8`_lanetype, `%`_dim{i#117018}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117018}(16)] +[visit_exp i#117018] +[visit_id i#117018] +[visit_exp (16)] +[visit_exp 16] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#540 dim#29664 i#117023 i#117030 ishape#71 lanetype#29664 shape#4810 +dims \ I = Jnn#540, dim#29664, i#117023, i#117030, ishape#71, lanetype#29664, shape#4810 +[visit_exp `VBITMASK`_instr{ishape#71}(`%`_ishape{shape#4810, Jnn#540}(`%X%`_shape{lanetype#29664, dim#29664, i#117023}(`I16`_lanetype, `%`_dim{i#117030}(8))))] +[visit_exp ishape#71] +[visit_id ishape#71] +[visit_exp (`%`_ishape{shape#4810, Jnn#540}(`%X%`_shape{lanetype#29664, dim#29664, i#117023}(`I16`_lanetype, `%`_dim{i#117030}(8))))] +[visit_exp `%`_ishape{shape#4810, Jnn#540}(`%X%`_shape{lanetype#29664, dim#29664, i#117023}(`I16`_lanetype, `%`_dim{i#117030}(8)))] +[visit_exp shape#4810] +[visit_id shape#4810] +[visit_exp Jnn#540] +[visit_id Jnn#540] +[visit_exp (`%X%`_shape{lanetype#29664, dim#29664, i#117023}(`I16`_lanetype, `%`_dim{i#117030}(8)))] +[visit_exp `%X%`_shape{lanetype#29664, dim#29664, i#117023}(`I16`_lanetype, `%`_dim{i#117030}(8))] +[visit_exp lanetype#29664] +[visit_id lanetype#29664] +[visit_exp dim#29664] +[visit_id dim#29664] +[visit_exp i#117023] +[visit_id i#117023] +[visit_exp (`I16`_lanetype, `%`_dim{i#117030}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117030}(8)] +[visit_exp i#117030] +[visit_id i#117030] +[visit_exp (8)] +[visit_exp 8] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#544 dim#29676 i#117035 i#117042 ishape#73 lanetype#29676 shape#4822 +dims \ I = Jnn#544, dim#29676, i#117035, i#117042, ishape#73, lanetype#29676, shape#4822 +[visit_exp `VBITMASK`_instr{ishape#73}(`%`_ishape{shape#4822, Jnn#544}(`%X%`_shape{lanetype#29676, dim#29676, i#117035}(`I32`_lanetype, `%`_dim{i#117042}(4))))] +[visit_exp ishape#73] +[visit_id ishape#73] +[visit_exp (`%`_ishape{shape#4822, Jnn#544}(`%X%`_shape{lanetype#29676, dim#29676, i#117035}(`I32`_lanetype, `%`_dim{i#117042}(4))))] +[visit_exp `%`_ishape{shape#4822, Jnn#544}(`%X%`_shape{lanetype#29676, dim#29676, i#117035}(`I32`_lanetype, `%`_dim{i#117042}(4)))] +[visit_exp shape#4822] +[visit_id shape#4822] +[visit_exp Jnn#544] +[visit_id Jnn#544] +[visit_exp (`%X%`_shape{lanetype#29676, dim#29676, i#117035}(`I32`_lanetype, `%`_dim{i#117042}(4)))] +[visit_exp `%X%`_shape{lanetype#29676, dim#29676, i#117035}(`I32`_lanetype, `%`_dim{i#117042}(4))] +[visit_exp lanetype#29676] +[visit_id lanetype#29676] +[visit_exp dim#29676] +[visit_id dim#29676] +[visit_exp i#117035] +[visit_id i#117035] +[visit_exp (`I32`_lanetype, `%`_dim{i#117042}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117042}(4)] +[visit_exp i#117042] +[visit_id i#117042] +[visit_exp (4)] +[visit_exp 4] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#548 dim#29688 i#117047 i#117054 ishape#75 lanetype#29688 shape#4834 +dims \ I = Jnn#548, dim#29688, i#117047, i#117054, ishape#75, lanetype#29688, shape#4834 +[visit_exp `VBITMASK`_instr{ishape#75}(`%`_ishape{shape#4834, Jnn#548}(`%X%`_shape{lanetype#29688, dim#29688, i#117047}(`I64`_lanetype, `%`_dim{i#117054}(2))))] +[visit_exp ishape#75] +[visit_id ishape#75] +[visit_exp (`%`_ishape{shape#4834, Jnn#548}(`%X%`_shape{lanetype#29688, dim#29688, i#117047}(`I64`_lanetype, `%`_dim{i#117054}(2))))] +[visit_exp `%`_ishape{shape#4834, Jnn#548}(`%X%`_shape{lanetype#29688, dim#29688, i#117047}(`I64`_lanetype, `%`_dim{i#117054}(2)))] +[visit_exp shape#4834] +[visit_id shape#4834] +[visit_exp Jnn#548] +[visit_id Jnn#548] +[visit_exp (`%X%`_shape{lanetype#29688, dim#29688, i#117047}(`I64`_lanetype, `%`_dim{i#117054}(2)))] +[visit_exp `%X%`_shape{lanetype#29688, dim#29688, i#117047}(`I64`_lanetype, `%`_dim{i#117054}(2))] +[visit_exp lanetype#29688] +[visit_id lanetype#29688] +[visit_exp dim#29688] +[visit_id dim#29688] +[visit_exp i#117047] +[visit_id i#117047] +[visit_exp (`I64`_lanetype, `%`_dim{i#117054}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117054}(2)] +[visit_exp i#117054] +[visit_id i#117054] +[visit_exp (2)] +[visit_exp 2] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#549 Jnn#550 Jnn#551 Jnn#555 Jnn#559 dim#29700 dim#29712 i#117059 i#117066 i#117071 i#117078 ishape_1#71 ishape_2#71 lanetype#29700 lanetype#29712 shape#4836 shape#4837 shape#4838 shape#4849 shape#4861 sx#29624 +dims \ I = Jnn#549, Jnn#550, Jnn#551, Jnn#555, Jnn#559, dim#29700, dim#29712, i#117059, i#117066, i#117071, i#117078, ishape_1#71, ishape_2#71, lanetype#29700, lanetype#29712, shape#4836, shape#4837, shape#4838, shape#4849, shape#4861, sx#29624 +[visit_exp `VNARROW`_instr{ishape_1#71, ishape_2#71, sx#29624, shape#4836, Jnn#549, shape#4837, Jnn#550, shape#4838, Jnn#551}(`%`_ishape{shape#4849, Jnn#555}(`%X%`_shape{lanetype#29700, dim#29700, i#117059}(`I8`_lanetype, `%`_dim{i#117066}(16))), `%`_ishape{shape#4861, Jnn#559}(`%X%`_shape{lanetype#29712, dim#29712, i#117071}(`I16`_lanetype, `%`_dim{i#117078}(8))), `S`_sx)] +[visit_exp ishape_1#71] +[visit_id ishape_1#71] +[visit_exp ishape_2#71] +[visit_id ishape_2#71] +[visit_exp sx#29624] +[visit_id sx#29624] +[visit_exp shape#4836] +[visit_id shape#4836] +[visit_exp Jnn#549] +[visit_id Jnn#549] +[visit_exp shape#4837] +[visit_id shape#4837] +[visit_exp Jnn#550] +[visit_id Jnn#550] +[visit_exp shape#4838] +[visit_id shape#4838] +[visit_exp Jnn#551] +[visit_id Jnn#551] +[visit_exp (`%`_ishape{shape#4849, Jnn#555}(`%X%`_shape{lanetype#29700, dim#29700, i#117059}(`I8`_lanetype, `%`_dim{i#117066}(16))), `%`_ishape{shape#4861, Jnn#559}(`%X%`_shape{lanetype#29712, dim#29712, i#117071}(`I16`_lanetype, `%`_dim{i#117078}(8))), `S`_sx)] +[visit_exp `%`_ishape{shape#4849, Jnn#555}(`%X%`_shape{lanetype#29700, dim#29700, i#117059}(`I8`_lanetype, `%`_dim{i#117066}(16)))] +[visit_exp shape#4849] +[visit_id shape#4849] +[visit_exp Jnn#555] +[visit_id Jnn#555] +[visit_exp (`%X%`_shape{lanetype#29700, dim#29700, i#117059}(`I8`_lanetype, `%`_dim{i#117066}(16)))] +[visit_exp `%X%`_shape{lanetype#29700, dim#29700, i#117059}(`I8`_lanetype, `%`_dim{i#117066}(16))] +[visit_exp lanetype#29700] +[visit_id lanetype#29700] +[visit_exp dim#29700] +[visit_id dim#29700] +[visit_exp i#117059] +[visit_id i#117059] +[visit_exp (`I8`_lanetype, `%`_dim{i#117066}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117066}(16)] +[visit_exp i#117066] +[visit_id i#117066] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `%`_ishape{shape#4861, Jnn#559}(`%X%`_shape{lanetype#29712, dim#29712, i#117071}(`I16`_lanetype, `%`_dim{i#117078}(8)))] +[visit_exp shape#4861] +[visit_id shape#4861] +[visit_exp Jnn#559] +[visit_id Jnn#559] +[visit_exp (`%X%`_shape{lanetype#29712, dim#29712, i#117071}(`I16`_lanetype, `%`_dim{i#117078}(8)))] +[visit_exp `%X%`_shape{lanetype#29712, dim#29712, i#117071}(`I16`_lanetype, `%`_dim{i#117078}(8))] +[visit_exp lanetype#29712] +[visit_id lanetype#29712] +[visit_exp dim#29712] +[visit_id dim#29712] +[visit_exp i#117071] +[visit_id i#117071] +[visit_exp (`I16`_lanetype, `%`_dim{i#117078}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117078}(8)] +[visit_exp i#117078] +[visit_id i#117078] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#560 Jnn#561 Jnn#562 Jnn#566 Jnn#570 dim#29724 dim#29736 i#117083 i#117090 i#117095 i#117102 ishape_1#73 ishape_2#73 lanetype#29724 lanetype#29736 shape#4863 shape#4864 shape#4865 shape#4876 shape#4888 sx#29626 +dims \ I = Jnn#560, Jnn#561, Jnn#562, Jnn#566, Jnn#570, dim#29724, dim#29736, i#117083, i#117090, i#117095, i#117102, ishape_1#73, ishape_2#73, lanetype#29724, lanetype#29736, shape#4863, shape#4864, shape#4865, shape#4876, shape#4888, sx#29626 +[visit_exp `VNARROW`_instr{ishape_1#73, ishape_2#73, sx#29626, shape#4863, Jnn#560, shape#4864, Jnn#561, shape#4865, Jnn#562}(`%`_ishape{shape#4876, Jnn#566}(`%X%`_shape{lanetype#29724, dim#29724, i#117083}(`I8`_lanetype, `%`_dim{i#117090}(16))), `%`_ishape{shape#4888, Jnn#570}(`%X%`_shape{lanetype#29736, dim#29736, i#117095}(`I16`_lanetype, `%`_dim{i#117102}(8))), `U`_sx)] +[visit_exp ishape_1#73] +[visit_id ishape_1#73] +[visit_exp ishape_2#73] +[visit_id ishape_2#73] +[visit_exp sx#29626] +[visit_id sx#29626] +[visit_exp shape#4863] +[visit_id shape#4863] +[visit_exp Jnn#560] +[visit_id Jnn#560] +[visit_exp shape#4864] +[visit_id shape#4864] +[visit_exp Jnn#561] +[visit_id Jnn#561] +[visit_exp shape#4865] +[visit_id shape#4865] +[visit_exp Jnn#562] +[visit_id Jnn#562] +[visit_exp (`%`_ishape{shape#4876, Jnn#566}(`%X%`_shape{lanetype#29724, dim#29724, i#117083}(`I8`_lanetype, `%`_dim{i#117090}(16))), `%`_ishape{shape#4888, Jnn#570}(`%X%`_shape{lanetype#29736, dim#29736, i#117095}(`I16`_lanetype, `%`_dim{i#117102}(8))), `U`_sx)] +[visit_exp `%`_ishape{shape#4876, Jnn#566}(`%X%`_shape{lanetype#29724, dim#29724, i#117083}(`I8`_lanetype, `%`_dim{i#117090}(16)))] +[visit_exp shape#4876] +[visit_id shape#4876] +[visit_exp Jnn#566] +[visit_id Jnn#566] +[visit_exp (`%X%`_shape{lanetype#29724, dim#29724, i#117083}(`I8`_lanetype, `%`_dim{i#117090}(16)))] +[visit_exp `%X%`_shape{lanetype#29724, dim#29724, i#117083}(`I8`_lanetype, `%`_dim{i#117090}(16))] +[visit_exp lanetype#29724] +[visit_id lanetype#29724] +[visit_exp dim#29724] +[visit_id dim#29724] +[visit_exp i#117083] +[visit_id i#117083] +[visit_exp (`I8`_lanetype, `%`_dim{i#117090}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117090}(16)] +[visit_exp i#117090] +[visit_id i#117090] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `%`_ishape{shape#4888, Jnn#570}(`%X%`_shape{lanetype#29736, dim#29736, i#117095}(`I16`_lanetype, `%`_dim{i#117102}(8)))] +[visit_exp shape#4888] +[visit_id shape#4888] +[visit_exp Jnn#570] +[visit_id Jnn#570] +[visit_exp (`%X%`_shape{lanetype#29736, dim#29736, i#117095}(`I16`_lanetype, `%`_dim{i#117102}(8)))] +[visit_exp `%X%`_shape{lanetype#29736, dim#29736, i#117095}(`I16`_lanetype, `%`_dim{i#117102}(8))] +[visit_exp lanetype#29736] +[visit_id lanetype#29736] +[visit_exp dim#29736] +[visit_id dim#29736] +[visit_exp i#117095] +[visit_id i#117095] +[visit_exp (`I16`_lanetype, `%`_dim{i#117102}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117102}(8)] +[visit_exp i#117102] +[visit_id i#117102] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#571 Jnn#572 Jnn#573 Jnn#577 Jnn#581 dim#29748 dim#29760 i#117107 i#117114 i#117119 i#117126 ishape_1#75 ishape_2#75 lanetype#29748 lanetype#29760 shape#4890 shape#4891 shape#4892 shape#4903 shape#4915 sx#29628 +dims \ I = Jnn#571, Jnn#572, Jnn#573, Jnn#577, Jnn#581, dim#29748, dim#29760, i#117107, i#117114, i#117119, i#117126, ishape_1#75, ishape_2#75, lanetype#29748, lanetype#29760, shape#4890, shape#4891, shape#4892, shape#4903, shape#4915, sx#29628 +[visit_exp `VNARROW`_instr{ishape_1#75, ishape_2#75, sx#29628, shape#4890, Jnn#571, shape#4891, Jnn#572, shape#4892, Jnn#573}(`%`_ishape{shape#4903, Jnn#577}(`%X%`_shape{lanetype#29748, dim#29748, i#117107}(`I16`_lanetype, `%`_dim{i#117114}(8))), `%`_ishape{shape#4915, Jnn#581}(`%X%`_shape{lanetype#29760, dim#29760, i#117119}(`I32`_lanetype, `%`_dim{i#117126}(4))), `S`_sx)] +[visit_exp ishape_1#75] +[visit_id ishape_1#75] +[visit_exp ishape_2#75] +[visit_id ishape_2#75] +[visit_exp sx#29628] +[visit_id sx#29628] +[visit_exp shape#4890] +[visit_id shape#4890] +[visit_exp Jnn#571] +[visit_id Jnn#571] +[visit_exp shape#4891] +[visit_id shape#4891] +[visit_exp Jnn#572] +[visit_id Jnn#572] +[visit_exp shape#4892] +[visit_id shape#4892] +[visit_exp Jnn#573] +[visit_id Jnn#573] +[visit_exp (`%`_ishape{shape#4903, Jnn#577}(`%X%`_shape{lanetype#29748, dim#29748, i#117107}(`I16`_lanetype, `%`_dim{i#117114}(8))), `%`_ishape{shape#4915, Jnn#581}(`%X%`_shape{lanetype#29760, dim#29760, i#117119}(`I32`_lanetype, `%`_dim{i#117126}(4))), `S`_sx)] +[visit_exp `%`_ishape{shape#4903, Jnn#577}(`%X%`_shape{lanetype#29748, dim#29748, i#117107}(`I16`_lanetype, `%`_dim{i#117114}(8)))] +[visit_exp shape#4903] +[visit_id shape#4903] +[visit_exp Jnn#577] +[visit_id Jnn#577] +[visit_exp (`%X%`_shape{lanetype#29748, dim#29748, i#117107}(`I16`_lanetype, `%`_dim{i#117114}(8)))] +[visit_exp `%X%`_shape{lanetype#29748, dim#29748, i#117107}(`I16`_lanetype, `%`_dim{i#117114}(8))] +[visit_exp lanetype#29748] +[visit_id lanetype#29748] +[visit_exp dim#29748] +[visit_id dim#29748] +[visit_exp i#117107] +[visit_id i#117107] +[visit_exp (`I16`_lanetype, `%`_dim{i#117114}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117114}(8)] +[visit_exp i#117114] +[visit_id i#117114] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#4915, Jnn#581}(`%X%`_shape{lanetype#29760, dim#29760, i#117119}(`I32`_lanetype, `%`_dim{i#117126}(4)))] +[visit_exp shape#4915] +[visit_id shape#4915] +[visit_exp Jnn#581] +[visit_id Jnn#581] +[visit_exp (`%X%`_shape{lanetype#29760, dim#29760, i#117119}(`I32`_lanetype, `%`_dim{i#117126}(4)))] +[visit_exp `%X%`_shape{lanetype#29760, dim#29760, i#117119}(`I32`_lanetype, `%`_dim{i#117126}(4))] +[visit_exp lanetype#29760] +[visit_id lanetype#29760] +[visit_exp dim#29760] +[visit_id dim#29760] +[visit_exp i#117119] +[visit_id i#117119] +[visit_exp (`I32`_lanetype, `%`_dim{i#117126}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117126}(4)] +[visit_exp i#117126] +[visit_id i#117126] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#582 Jnn#583 Jnn#584 Jnn#588 Jnn#592 dim#29772 dim#29784 i#117131 i#117138 i#117143 i#117150 ishape_1#77 ishape_2#77 lanetype#29772 lanetype#29784 shape#4917 shape#4918 shape#4919 shape#4930 shape#4942 sx#29630 +dims \ I = Jnn#582, Jnn#583, Jnn#584, Jnn#588, Jnn#592, dim#29772, dim#29784, i#117131, i#117138, i#117143, i#117150, ishape_1#77, ishape_2#77, lanetype#29772, lanetype#29784, shape#4917, shape#4918, shape#4919, shape#4930, shape#4942, sx#29630 +[visit_exp `VNARROW`_instr{ishape_1#77, ishape_2#77, sx#29630, shape#4917, Jnn#582, shape#4918, Jnn#583, shape#4919, Jnn#584}(`%`_ishape{shape#4930, Jnn#588}(`%X%`_shape{lanetype#29772, dim#29772, i#117131}(`I16`_lanetype, `%`_dim{i#117138}(8))), `%`_ishape{shape#4942, Jnn#592}(`%X%`_shape{lanetype#29784, dim#29784, i#117143}(`I32`_lanetype, `%`_dim{i#117150}(4))), `U`_sx)] +[visit_exp ishape_1#77] +[visit_id ishape_1#77] +[visit_exp ishape_2#77] +[visit_id ishape_2#77] +[visit_exp sx#29630] +[visit_id sx#29630] +[visit_exp shape#4917] +[visit_id shape#4917] +[visit_exp Jnn#582] +[visit_id Jnn#582] +[visit_exp shape#4918] +[visit_id shape#4918] +[visit_exp Jnn#583] +[visit_id Jnn#583] +[visit_exp shape#4919] +[visit_id shape#4919] +[visit_exp Jnn#584] +[visit_id Jnn#584] +[visit_exp (`%`_ishape{shape#4930, Jnn#588}(`%X%`_shape{lanetype#29772, dim#29772, i#117131}(`I16`_lanetype, `%`_dim{i#117138}(8))), `%`_ishape{shape#4942, Jnn#592}(`%X%`_shape{lanetype#29784, dim#29784, i#117143}(`I32`_lanetype, `%`_dim{i#117150}(4))), `U`_sx)] +[visit_exp `%`_ishape{shape#4930, Jnn#588}(`%X%`_shape{lanetype#29772, dim#29772, i#117131}(`I16`_lanetype, `%`_dim{i#117138}(8)))] +[visit_exp shape#4930] +[visit_id shape#4930] +[visit_exp Jnn#588] +[visit_id Jnn#588] +[visit_exp (`%X%`_shape{lanetype#29772, dim#29772, i#117131}(`I16`_lanetype, `%`_dim{i#117138}(8)))] +[visit_exp `%X%`_shape{lanetype#29772, dim#29772, i#117131}(`I16`_lanetype, `%`_dim{i#117138}(8))] +[visit_exp lanetype#29772] +[visit_id lanetype#29772] +[visit_exp dim#29772] +[visit_id dim#29772] +[visit_exp i#117131] +[visit_id i#117131] +[visit_exp (`I16`_lanetype, `%`_dim{i#117138}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117138}(8)] +[visit_exp i#117138] +[visit_id i#117138] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#4942, Jnn#592}(`%X%`_shape{lanetype#29784, dim#29784, i#117143}(`I32`_lanetype, `%`_dim{i#117150}(4)))] +[visit_exp shape#4942] +[visit_id shape#4942] +[visit_exp Jnn#592] +[visit_id Jnn#592] +[visit_exp (`%X%`_shape{lanetype#29784, dim#29784, i#117143}(`I32`_lanetype, `%`_dim{i#117150}(4)))] +[visit_exp `%X%`_shape{lanetype#29784, dim#29784, i#117143}(`I32`_lanetype, `%`_dim{i#117150}(4))] +[visit_exp lanetype#29784] +[visit_id lanetype#29784] +[visit_exp dim#29784] +[visit_id dim#29784] +[visit_exp i#117143] +[visit_id i#117143] +[visit_exp (`I32`_lanetype, `%`_dim{i#117150}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117150}(4)] +[visit_exp i#117150] +[visit_id i#117150] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#29796 dim#29808 half#1172 i#117155 i#117162 i#117167 i#117174 lanetype#29796 lanetype#29808 shape_1#59 shape_2#59 sx#29664 +dims \ I = dim#29796, dim#29808, half#1172, i#117155, i#117162, i#117167, i#117174, lanetype#29796, lanetype#29808, shape_1#59, shape_2#59, sx#29664 +[visit_exp `VCVTOP`_instr{shape_1#59, shape_2#59}(`%X%`_shape{lanetype#29796, dim#29796, i#117155}(`I16`_lanetype, `%`_dim{i#117162}(8)), `%X%`_shape{lanetype#29808, dim#29808, i#117167}(`I8`_lanetype, `%`_dim{i#117174}(16)), `EXTEND`_vcvtop__{half#1172, sx#29664}(`LOW`_half, `S`_sx))] +[visit_exp shape_1#59] +[visit_id shape_1#59] +[visit_exp shape_2#59] +[visit_id shape_2#59] +[visit_exp (`%X%`_shape{lanetype#29796, dim#29796, i#117155}(`I16`_lanetype, `%`_dim{i#117162}(8)), `%X%`_shape{lanetype#29808, dim#29808, i#117167}(`I8`_lanetype, `%`_dim{i#117174}(16)), `EXTEND`_vcvtop__{half#1172, sx#29664}(`LOW`_half, `S`_sx))] +[visit_exp `%X%`_shape{lanetype#29796, dim#29796, i#117155}(`I16`_lanetype, `%`_dim{i#117162}(8))] +[visit_exp lanetype#29796] +[visit_id lanetype#29796] +[visit_exp dim#29796] +[visit_id dim#29796] +[visit_exp i#117155] +[visit_id i#117155] +[visit_exp (`I16`_lanetype, `%`_dim{i#117162}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117162}(8)] +[visit_exp i#117162] +[visit_id i#117162] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%X%`_shape{lanetype#29808, dim#29808, i#117167}(`I8`_lanetype, `%`_dim{i#117174}(16))] +[visit_exp lanetype#29808] +[visit_id lanetype#29808] +[visit_exp dim#29808] +[visit_id dim#29808] +[visit_exp i#117167] +[visit_id i#117167] +[visit_exp (`I8`_lanetype, `%`_dim{i#117174}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117174}(16)] +[visit_exp i#117174] +[visit_id i#117174] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTEND`_vcvtop__{half#1172, sx#29664}(`LOW`_half, `S`_sx)] +[visit_exp half#1172] +[visit_id half#1172] +[visit_exp sx#29664] +[visit_id sx#29664] +[visit_exp (`LOW`_half, `S`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#29911 dim#29923 half#1206 i#117390 i#117397 i#117402 i#117409 lanetype#29911 lanetype#29923 shape_1#61 shape_2#61 sx#29698 +dims \ I = dim#29911, dim#29923, half#1206, i#117390, i#117397, i#117402, i#117409, lanetype#29911, lanetype#29923, shape_1#61, shape_2#61, sx#29698 +[visit_exp `VCVTOP`_instr{shape_1#61, shape_2#61}(`%X%`_shape{lanetype#29911, dim#29911, i#117390}(`I16`_lanetype, `%`_dim{i#117397}(8)), `%X%`_shape{lanetype#29923, dim#29923, i#117402}(`I8`_lanetype, `%`_dim{i#117409}(16)), `EXTEND`_vcvtop__{half#1206, sx#29698}(`LOW`_half, `U`_sx))] +[visit_exp shape_1#61] +[visit_id shape_1#61] +[visit_exp shape_2#61] +[visit_id shape_2#61] +[visit_exp (`%X%`_shape{lanetype#29911, dim#29911, i#117390}(`I16`_lanetype, `%`_dim{i#117397}(8)), `%X%`_shape{lanetype#29923, dim#29923, i#117402}(`I8`_lanetype, `%`_dim{i#117409}(16)), `EXTEND`_vcvtop__{half#1206, sx#29698}(`LOW`_half, `U`_sx))] +[visit_exp `%X%`_shape{lanetype#29911, dim#29911, i#117390}(`I16`_lanetype, `%`_dim{i#117397}(8))] +[visit_exp lanetype#29911] +[visit_id lanetype#29911] +[visit_exp dim#29911] +[visit_id dim#29911] +[visit_exp i#117390] +[visit_id i#117390] +[visit_exp (`I16`_lanetype, `%`_dim{i#117397}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117397}(8)] +[visit_exp i#117397] +[visit_id i#117397] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%X%`_shape{lanetype#29923, dim#29923, i#117402}(`I8`_lanetype, `%`_dim{i#117409}(16))] +[visit_exp lanetype#29923] +[visit_id lanetype#29923] +[visit_exp dim#29923] +[visit_id dim#29923] +[visit_exp i#117402] +[visit_id i#117402] +[visit_exp (`I8`_lanetype, `%`_dim{i#117409}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117409}(16)] +[visit_exp i#117409] +[visit_id i#117409] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTEND`_vcvtop__{half#1206, sx#29698}(`LOW`_half, `U`_sx)] +[visit_exp half#1206] +[visit_id half#1206] +[visit_exp sx#29698] +[visit_id sx#29698] +[visit_exp (`LOW`_half, `U`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#30026 dim#30038 half#1240 i#117625 i#117632 i#117637 i#117644 lanetype#30026 lanetype#30038 shape_1#63 shape_2#63 sx#29732 +dims \ I = dim#30026, dim#30038, half#1240, i#117625, i#117632, i#117637, i#117644, lanetype#30026, lanetype#30038, shape_1#63, shape_2#63, sx#29732 +[visit_exp `VCVTOP`_instr{shape_1#63, shape_2#63}(`%X%`_shape{lanetype#30026, dim#30026, i#117625}(`I16`_lanetype, `%`_dim{i#117632}(8)), `%X%`_shape{lanetype#30038, dim#30038, i#117637}(`I8`_lanetype, `%`_dim{i#117644}(16)), `EXTEND`_vcvtop__{half#1240, sx#29732}(`HIGH`_half, `S`_sx))] +[visit_exp shape_1#63] +[visit_id shape_1#63] +[visit_exp shape_2#63] +[visit_id shape_2#63] +[visit_exp (`%X%`_shape{lanetype#30026, dim#30026, i#117625}(`I16`_lanetype, `%`_dim{i#117632}(8)), `%X%`_shape{lanetype#30038, dim#30038, i#117637}(`I8`_lanetype, `%`_dim{i#117644}(16)), `EXTEND`_vcvtop__{half#1240, sx#29732}(`HIGH`_half, `S`_sx))] +[visit_exp `%X%`_shape{lanetype#30026, dim#30026, i#117625}(`I16`_lanetype, `%`_dim{i#117632}(8))] +[visit_exp lanetype#30026] +[visit_id lanetype#30026] +[visit_exp dim#30026] +[visit_id dim#30026] +[visit_exp i#117625] +[visit_id i#117625] +[visit_exp (`I16`_lanetype, `%`_dim{i#117632}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117632}(8)] +[visit_exp i#117632] +[visit_id i#117632] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%X%`_shape{lanetype#30038, dim#30038, i#117637}(`I8`_lanetype, `%`_dim{i#117644}(16))] +[visit_exp lanetype#30038] +[visit_id lanetype#30038] +[visit_exp dim#30038] +[visit_id dim#30038] +[visit_exp i#117637] +[visit_id i#117637] +[visit_exp (`I8`_lanetype, `%`_dim{i#117644}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117644}(16)] +[visit_exp i#117644] +[visit_id i#117644] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTEND`_vcvtop__{half#1240, sx#29732}(`HIGH`_half, `S`_sx)] +[visit_exp half#1240] +[visit_id half#1240] +[visit_exp sx#29732] +[visit_id sx#29732] +[visit_exp (`HIGH`_half, `S`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#30141 dim#30153 half#1274 i#117860 i#117867 i#117872 i#117879 lanetype#30141 lanetype#30153 shape_1#65 shape_2#65 sx#29766 +dims \ I = dim#30141, dim#30153, half#1274, i#117860, i#117867, i#117872, i#117879, lanetype#30141, lanetype#30153, shape_1#65, shape_2#65, sx#29766 +[visit_exp `VCVTOP`_instr{shape_1#65, shape_2#65}(`%X%`_shape{lanetype#30141, dim#30141, i#117860}(`I16`_lanetype, `%`_dim{i#117867}(8)), `%X%`_shape{lanetype#30153, dim#30153, i#117872}(`I8`_lanetype, `%`_dim{i#117879}(16)), `EXTEND`_vcvtop__{half#1274, sx#29766}(`HIGH`_half, `U`_sx))] +[visit_exp shape_1#65] +[visit_id shape_1#65] +[visit_exp shape_2#65] +[visit_id shape_2#65] +[visit_exp (`%X%`_shape{lanetype#30141, dim#30141, i#117860}(`I16`_lanetype, `%`_dim{i#117867}(8)), `%X%`_shape{lanetype#30153, dim#30153, i#117872}(`I8`_lanetype, `%`_dim{i#117879}(16)), `EXTEND`_vcvtop__{half#1274, sx#29766}(`HIGH`_half, `U`_sx))] +[visit_exp `%X%`_shape{lanetype#30141, dim#30141, i#117860}(`I16`_lanetype, `%`_dim{i#117867}(8))] +[visit_exp lanetype#30141] +[visit_id lanetype#30141] +[visit_exp dim#30141] +[visit_id dim#30141] +[visit_exp i#117860] +[visit_id i#117860] +[visit_exp (`I16`_lanetype, `%`_dim{i#117867}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117867}(8)] +[visit_exp i#117867] +[visit_id i#117867] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%X%`_shape{lanetype#30153, dim#30153, i#117872}(`I8`_lanetype, `%`_dim{i#117879}(16))] +[visit_exp lanetype#30153] +[visit_id lanetype#30153] +[visit_exp dim#30153] +[visit_id dim#30153] +[visit_exp i#117872] +[visit_id i#117872] +[visit_exp (`I8`_lanetype, `%`_dim{i#117879}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#117879}(16)] +[visit_exp i#117879] +[visit_id i#117879] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTEND`_vcvtop__{half#1274, sx#29766}(`HIGH`_half, `U`_sx)] +[visit_exp half#1274] +[visit_id half#1274] +[visit_exp sx#29766] +[visit_id sx#29766] +[visit_exp (`HIGH`_half, `U`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#30256 dim#30268 half#1308 i#118095 i#118102 i#118107 i#118114 lanetype#30256 lanetype#30268 shape_1#67 shape_2#67 sx#29800 +dims \ I = dim#30256, dim#30268, half#1308, i#118095, i#118102, i#118107, i#118114, lanetype#30256, lanetype#30268, shape_1#67, shape_2#67, sx#29800 +[visit_exp `VCVTOP`_instr{shape_1#67, shape_2#67}(`%X%`_shape{lanetype#30256, dim#30256, i#118095}(`I32`_lanetype, `%`_dim{i#118102}(4)), `%X%`_shape{lanetype#30268, dim#30268, i#118107}(`I16`_lanetype, `%`_dim{i#118114}(8)), `EXTEND`_vcvtop__{half#1308, sx#29800}(`LOW`_half, `S`_sx))] +[visit_exp shape_1#67] +[visit_id shape_1#67] +[visit_exp shape_2#67] +[visit_id shape_2#67] +[visit_exp (`%X%`_shape{lanetype#30256, dim#30256, i#118095}(`I32`_lanetype, `%`_dim{i#118102}(4)), `%X%`_shape{lanetype#30268, dim#30268, i#118107}(`I16`_lanetype, `%`_dim{i#118114}(8)), `EXTEND`_vcvtop__{half#1308, sx#29800}(`LOW`_half, `S`_sx))] +[visit_exp `%X%`_shape{lanetype#30256, dim#30256, i#118095}(`I32`_lanetype, `%`_dim{i#118102}(4))] +[visit_exp lanetype#30256] +[visit_id lanetype#30256] +[visit_exp dim#30256] +[visit_id dim#30256] +[visit_exp i#118095] +[visit_id i#118095] +[visit_exp (`I32`_lanetype, `%`_dim{i#118102}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#118102}(4)] +[visit_exp i#118102] +[visit_id i#118102] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#30268, dim#30268, i#118107}(`I16`_lanetype, `%`_dim{i#118114}(8))] +[visit_exp lanetype#30268] +[visit_id lanetype#30268] +[visit_exp dim#30268] +[visit_id dim#30268] +[visit_exp i#118107] +[visit_id i#118107] +[visit_exp (`I16`_lanetype, `%`_dim{i#118114}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#118114}(8)] +[visit_exp i#118114] +[visit_id i#118114] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTEND`_vcvtop__{half#1308, sx#29800}(`LOW`_half, `S`_sx)] +[visit_exp half#1308] +[visit_id half#1308] +[visit_exp sx#29800] +[visit_id sx#29800] +[visit_exp (`LOW`_half, `S`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#30371 dim#30383 half#1342 i#118330 i#118337 i#118342 i#118349 lanetype#30371 lanetype#30383 shape_1#69 shape_2#69 sx#29834 +dims \ I = dim#30371, dim#30383, half#1342, i#118330, i#118337, i#118342, i#118349, lanetype#30371, lanetype#30383, shape_1#69, shape_2#69, sx#29834 +[visit_exp `VCVTOP`_instr{shape_1#69, shape_2#69}(`%X%`_shape{lanetype#30371, dim#30371, i#118330}(`I32`_lanetype, `%`_dim{i#118337}(4)), `%X%`_shape{lanetype#30383, dim#30383, i#118342}(`I16`_lanetype, `%`_dim{i#118349}(8)), `EXTEND`_vcvtop__{half#1342, sx#29834}(`LOW`_half, `U`_sx))] +[visit_exp shape_1#69] +[visit_id shape_1#69] +[visit_exp shape_2#69] +[visit_id shape_2#69] +[visit_exp (`%X%`_shape{lanetype#30371, dim#30371, i#118330}(`I32`_lanetype, `%`_dim{i#118337}(4)), `%X%`_shape{lanetype#30383, dim#30383, i#118342}(`I16`_lanetype, `%`_dim{i#118349}(8)), `EXTEND`_vcvtop__{half#1342, sx#29834}(`LOW`_half, `U`_sx))] +[visit_exp `%X%`_shape{lanetype#30371, dim#30371, i#118330}(`I32`_lanetype, `%`_dim{i#118337}(4))] +[visit_exp lanetype#30371] +[visit_id lanetype#30371] +[visit_exp dim#30371] +[visit_id dim#30371] +[visit_exp i#118330] +[visit_id i#118330] +[visit_exp (`I32`_lanetype, `%`_dim{i#118337}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#118337}(4)] +[visit_exp i#118337] +[visit_id i#118337] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#30383, dim#30383, i#118342}(`I16`_lanetype, `%`_dim{i#118349}(8))] +[visit_exp lanetype#30383] +[visit_id lanetype#30383] +[visit_exp dim#30383] +[visit_id dim#30383] +[visit_exp i#118342] +[visit_id i#118342] +[visit_exp (`I16`_lanetype, `%`_dim{i#118349}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#118349}(8)] +[visit_exp i#118349] +[visit_id i#118349] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTEND`_vcvtop__{half#1342, sx#29834}(`LOW`_half, `U`_sx)] +[visit_exp half#1342] +[visit_id half#1342] +[visit_exp sx#29834] +[visit_id sx#29834] +[visit_exp (`LOW`_half, `U`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#30486 dim#30498 half#1376 i#118565 i#118572 i#118577 i#118584 lanetype#30486 lanetype#30498 shape_1#71 shape_2#71 sx#29868 +dims \ I = dim#30486, dim#30498, half#1376, i#118565, i#118572, i#118577, i#118584, lanetype#30486, lanetype#30498, shape_1#71, shape_2#71, sx#29868 +[visit_exp `VCVTOP`_instr{shape_1#71, shape_2#71}(`%X%`_shape{lanetype#30486, dim#30486, i#118565}(`I32`_lanetype, `%`_dim{i#118572}(4)), `%X%`_shape{lanetype#30498, dim#30498, i#118577}(`I16`_lanetype, `%`_dim{i#118584}(8)), `EXTEND`_vcvtop__{half#1376, sx#29868}(`HIGH`_half, `S`_sx))] +[visit_exp shape_1#71] +[visit_id shape_1#71] +[visit_exp shape_2#71] +[visit_id shape_2#71] +[visit_exp (`%X%`_shape{lanetype#30486, dim#30486, i#118565}(`I32`_lanetype, `%`_dim{i#118572}(4)), `%X%`_shape{lanetype#30498, dim#30498, i#118577}(`I16`_lanetype, `%`_dim{i#118584}(8)), `EXTEND`_vcvtop__{half#1376, sx#29868}(`HIGH`_half, `S`_sx))] +[visit_exp `%X%`_shape{lanetype#30486, dim#30486, i#118565}(`I32`_lanetype, `%`_dim{i#118572}(4))] +[visit_exp lanetype#30486] +[visit_id lanetype#30486] +[visit_exp dim#30486] +[visit_id dim#30486] +[visit_exp i#118565] +[visit_id i#118565] +[visit_exp (`I32`_lanetype, `%`_dim{i#118572}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#118572}(4)] +[visit_exp i#118572] +[visit_id i#118572] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#30498, dim#30498, i#118577}(`I16`_lanetype, `%`_dim{i#118584}(8))] +[visit_exp lanetype#30498] +[visit_id lanetype#30498] +[visit_exp dim#30498] +[visit_id dim#30498] +[visit_exp i#118577] +[visit_id i#118577] +[visit_exp (`I16`_lanetype, `%`_dim{i#118584}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#118584}(8)] +[visit_exp i#118584] +[visit_id i#118584] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTEND`_vcvtop__{half#1376, sx#29868}(`HIGH`_half, `S`_sx)] +[visit_exp half#1376] +[visit_id half#1376] +[visit_exp sx#29868] +[visit_id sx#29868] +[visit_exp (`HIGH`_half, `S`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#30601 dim#30613 half#1410 i#118800 i#118807 i#118812 i#118819 lanetype#30601 lanetype#30613 shape_1#73 shape_2#73 sx#29902 +dims \ I = dim#30601, dim#30613, half#1410, i#118800, i#118807, i#118812, i#118819, lanetype#30601, lanetype#30613, shape_1#73, shape_2#73, sx#29902 +[visit_exp `VCVTOP`_instr{shape_1#73, shape_2#73}(`%X%`_shape{lanetype#30601, dim#30601, i#118800}(`I32`_lanetype, `%`_dim{i#118807}(4)), `%X%`_shape{lanetype#30613, dim#30613, i#118812}(`I16`_lanetype, `%`_dim{i#118819}(8)), `EXTEND`_vcvtop__{half#1410, sx#29902}(`HIGH`_half, `U`_sx))] +[visit_exp shape_1#73] +[visit_id shape_1#73] +[visit_exp shape_2#73] +[visit_id shape_2#73] +[visit_exp (`%X%`_shape{lanetype#30601, dim#30601, i#118800}(`I32`_lanetype, `%`_dim{i#118807}(4)), `%X%`_shape{lanetype#30613, dim#30613, i#118812}(`I16`_lanetype, `%`_dim{i#118819}(8)), `EXTEND`_vcvtop__{half#1410, sx#29902}(`HIGH`_half, `U`_sx))] +[visit_exp `%X%`_shape{lanetype#30601, dim#30601, i#118800}(`I32`_lanetype, `%`_dim{i#118807}(4))] +[visit_exp lanetype#30601] +[visit_id lanetype#30601] +[visit_exp dim#30601] +[visit_id dim#30601] +[visit_exp i#118800] +[visit_id i#118800] +[visit_exp (`I32`_lanetype, `%`_dim{i#118807}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#118807}(4)] +[visit_exp i#118807] +[visit_id i#118807] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#30613, dim#30613, i#118812}(`I16`_lanetype, `%`_dim{i#118819}(8))] +[visit_exp lanetype#30613] +[visit_id lanetype#30613] +[visit_exp dim#30613] +[visit_id dim#30613] +[visit_exp i#118812] +[visit_id i#118812] +[visit_exp (`I16`_lanetype, `%`_dim{i#118819}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#118819}(8)] +[visit_exp i#118819] +[visit_id i#118819] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTEND`_vcvtop__{half#1410, sx#29902}(`HIGH`_half, `U`_sx)] +[visit_exp half#1410] +[visit_id half#1410] +[visit_exp sx#29902] +[visit_id sx#29902] +[visit_exp (`HIGH`_half, `U`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#30716 dim#30728 i#119035 i#119042 i#119047 i#119054 lanetype#30716 lanetype#30728 shape_1#75 shape_2#75 sx#29966 zero?#647 +dims \ I = dim#30716, dim#30728, i#119035, i#119042, i#119047, i#119054, lanetype#30716, lanetype#30728, shape_1#75, shape_2#75, sx#29966, zero?#647 +[visit_exp `VCVTOP`_instr{shape_1#75, shape_2#75}(`%X%`_shape{lanetype#30716, dim#30716, i#119035}(`I32`_lanetype, `%`_dim{i#119042}(4)), `%X%`_shape{lanetype#30728, dim#30728, i#119047}(`F32`_lanetype, `%`_dim{i#119054}(4)), `TRUNC_SAT`_vcvtop__{sx#29966, `zero?#647`}(`S`_sx, ?()))] +[visit_exp shape_1#75] +[visit_id shape_1#75] +[visit_exp shape_2#75] +[visit_id shape_2#75] +[visit_exp (`%X%`_shape{lanetype#30716, dim#30716, i#119035}(`I32`_lanetype, `%`_dim{i#119042}(4)), `%X%`_shape{lanetype#30728, dim#30728, i#119047}(`F32`_lanetype, `%`_dim{i#119054}(4)), `TRUNC_SAT`_vcvtop__{sx#29966, `zero?#647`}(`S`_sx, ?()))] +[visit_exp `%X%`_shape{lanetype#30716, dim#30716, i#119035}(`I32`_lanetype, `%`_dim{i#119042}(4))] +[visit_exp lanetype#30716] +[visit_id lanetype#30716] +[visit_exp dim#30716] +[visit_id dim#30716] +[visit_exp i#119035] +[visit_id i#119035] +[visit_exp (`I32`_lanetype, `%`_dim{i#119042}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#119042}(4)] +[visit_exp i#119042] +[visit_id i#119042] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#30728, dim#30728, i#119047}(`F32`_lanetype, `%`_dim{i#119054}(4))] +[visit_exp lanetype#30728] +[visit_id lanetype#30728] +[visit_exp dim#30728] +[visit_id dim#30728] +[visit_exp i#119047] +[visit_id i#119047] +[visit_exp (`F32`_lanetype, `%`_dim{i#119054}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#119054}(4)] +[visit_exp i#119054] +[visit_id i#119054] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `TRUNC_SAT`_vcvtop__{sx#29966, `zero?#647`}(`S`_sx, ?())] +[visit_exp sx#29966] +[visit_id sx#29966] +[visit_exp `zero?#647`] +[visit_id zero?#647] +[visit_exp (`S`_sx, ?())] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp ?()] +[check_dims] I dim#30891 dim#30903 i#119330 i#119337 i#119342 i#119349 lanetype#30891 lanetype#30903 shape_1#77 shape_2#77 sx#30030 zero?#711 +dims \ I = dim#30891, dim#30903, i#119330, i#119337, i#119342, i#119349, lanetype#30891, lanetype#30903, shape_1#77, shape_2#77, sx#30030, zero?#711 +[visit_exp `VCVTOP`_instr{shape_1#77, shape_2#77}(`%X%`_shape{lanetype#30891, dim#30891, i#119330}(`I32`_lanetype, `%`_dim{i#119337}(4)), `%X%`_shape{lanetype#30903, dim#30903, i#119342}(`F32`_lanetype, `%`_dim{i#119349}(4)), `TRUNC_SAT`_vcvtop__{sx#30030, `zero?#711`}(`U`_sx, ?()))] +[visit_exp shape_1#77] +[visit_id shape_1#77] +[visit_exp shape_2#77] +[visit_id shape_2#77] +[visit_exp (`%X%`_shape{lanetype#30891, dim#30891, i#119330}(`I32`_lanetype, `%`_dim{i#119337}(4)), `%X%`_shape{lanetype#30903, dim#30903, i#119342}(`F32`_lanetype, `%`_dim{i#119349}(4)), `TRUNC_SAT`_vcvtop__{sx#30030, `zero?#711`}(`U`_sx, ?()))] +[visit_exp `%X%`_shape{lanetype#30891, dim#30891, i#119330}(`I32`_lanetype, `%`_dim{i#119337}(4))] +[visit_exp lanetype#30891] +[visit_id lanetype#30891] +[visit_exp dim#30891] +[visit_id dim#30891] +[visit_exp i#119330] +[visit_id i#119330] +[visit_exp (`I32`_lanetype, `%`_dim{i#119337}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#119337}(4)] +[visit_exp i#119337] +[visit_id i#119337] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#30903, dim#30903, i#119342}(`F32`_lanetype, `%`_dim{i#119349}(4))] +[visit_exp lanetype#30903] +[visit_id lanetype#30903] +[visit_exp dim#30903] +[visit_id dim#30903] +[visit_exp i#119342] +[visit_id i#119342] +[visit_exp (`F32`_lanetype, `%`_dim{i#119349}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#119349}(4)] +[visit_exp i#119349] +[visit_id i#119349] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `TRUNC_SAT`_vcvtop__{sx#30030, `zero?#711`}(`U`_sx, ?())] +[visit_exp sx#30030] +[visit_id sx#30030] +[visit_exp `zero?#711`] +[visit_id zero?#711] +[visit_exp (`U`_sx, ?())] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp ?()] +[check_dims] I dim#31066 dim#31078 i#119625 i#119632 i#119637 i#119644 lanetype#31066 lanetype#31078 shape_1#79 shape_2#79 sx#30094 zero?#775 +dims \ I = dim#31066, dim#31078, i#119625, i#119632, i#119637, i#119644, lanetype#31066, lanetype#31078, shape_1#79, shape_2#79, sx#30094, zero?#775 +[visit_exp `VCVTOP`_instr{shape_1#79, shape_2#79}(`%X%`_shape{lanetype#31066, dim#31066, i#119625}(`I32`_lanetype, `%`_dim{i#119632}(4)), `%X%`_shape{lanetype#31078, dim#31078, i#119637}(`F64`_lanetype, `%`_dim{i#119644}(2)), `TRUNC_SAT`_vcvtop__{sx#30094, `zero?#775`}(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp shape_1#79] +[visit_id shape_1#79] +[visit_exp shape_2#79] +[visit_id shape_2#79] +[visit_exp (`%X%`_shape{lanetype#31066, dim#31066, i#119625}(`I32`_lanetype, `%`_dim{i#119632}(4)), `%X%`_shape{lanetype#31078, dim#31078, i#119637}(`F64`_lanetype, `%`_dim{i#119644}(2)), `TRUNC_SAT`_vcvtop__{sx#30094, `zero?#775`}(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape{lanetype#31066, dim#31066, i#119625}(`I32`_lanetype, `%`_dim{i#119632}(4))] +[visit_exp lanetype#31066] +[visit_id lanetype#31066] +[visit_exp dim#31066] +[visit_id dim#31066] +[visit_exp i#119625] +[visit_id i#119625] +[visit_exp (`I32`_lanetype, `%`_dim{i#119632}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#119632}(4)] +[visit_exp i#119632] +[visit_id i#119632] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#31078, dim#31078, i#119637}(`F64`_lanetype, `%`_dim{i#119644}(2))] +[visit_exp lanetype#31078] +[visit_id lanetype#31078] +[visit_exp dim#31078] +[visit_id dim#31078] +[visit_exp i#119637] +[visit_id i#119637] +[visit_exp (`F64`_lanetype, `%`_dim{i#119644}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#119644}(2)] +[visit_exp i#119644] +[visit_id i#119644] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `TRUNC_SAT`_vcvtop__{sx#30094, `zero?#775`}(`S`_sx, ?(`ZERO`_zero))] +[visit_exp sx#30094] +[visit_id sx#30094] +[visit_exp `zero?#775`] +[visit_id zero?#775] +[visit_exp (`S`_sx, ?(`ZERO`_zero))] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp ?(`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +[check_dims] I dim#31241 dim#31253 i#119920 i#119927 i#119932 i#119939 lanetype#31241 lanetype#31253 shape_1#81 shape_2#81 sx#30158 zero?#839 +dims \ I = dim#31241, dim#31253, i#119920, i#119927, i#119932, i#119939, lanetype#31241, lanetype#31253, shape_1#81, shape_2#81, sx#30158, zero?#839 +[visit_exp `VCVTOP`_instr{shape_1#81, shape_2#81}(`%X%`_shape{lanetype#31241, dim#31241, i#119920}(`I32`_lanetype, `%`_dim{i#119927}(4)), `%X%`_shape{lanetype#31253, dim#31253, i#119932}(`F64`_lanetype, `%`_dim{i#119939}(2)), `TRUNC_SAT`_vcvtop__{sx#30158, `zero?#839`}(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp shape_1#81] +[visit_id shape_1#81] +[visit_exp shape_2#81] +[visit_id shape_2#81] +[visit_exp (`%X%`_shape{lanetype#31241, dim#31241, i#119920}(`I32`_lanetype, `%`_dim{i#119927}(4)), `%X%`_shape{lanetype#31253, dim#31253, i#119932}(`F64`_lanetype, `%`_dim{i#119939}(2)), `TRUNC_SAT`_vcvtop__{sx#30158, `zero?#839`}(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape{lanetype#31241, dim#31241, i#119920}(`I32`_lanetype, `%`_dim{i#119927}(4))] +[visit_exp lanetype#31241] +[visit_id lanetype#31241] +[visit_exp dim#31241] +[visit_id dim#31241] +[visit_exp i#119920] +[visit_id i#119920] +[visit_exp (`I32`_lanetype, `%`_dim{i#119927}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#119927}(4)] +[visit_exp i#119927] +[visit_id i#119927] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#31253, dim#31253, i#119932}(`F64`_lanetype, `%`_dim{i#119939}(2))] +[visit_exp lanetype#31253] +[visit_id lanetype#31253] +[visit_exp dim#31253] +[visit_id dim#31253] +[visit_exp i#119932] +[visit_id i#119932] +[visit_exp (`F64`_lanetype, `%`_dim{i#119939}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#119939}(2)] +[visit_exp i#119939] +[visit_id i#119939] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `TRUNC_SAT`_vcvtop__{sx#30158, `zero?#839`}(`U`_sx, ?(`ZERO`_zero))] +[visit_exp sx#30158] +[visit_id sx#30158] +[visit_exp `zero?#839`] +[visit_id zero?#839] +[visit_exp (`U`_sx, ?(`ZERO`_zero))] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp ?(`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +[check_dims] I dim#31416 dim#31428 i#120215 i#120222 i#120227 i#120234 lanetype#31416 lanetype#31428 shape_1#83 shape_2#83 sx#30222 zero?#903 +dims \ I = dim#31416, dim#31428, i#120215, i#120222, i#120227, i#120234, lanetype#31416, lanetype#31428, shape_1#83, shape_2#83, sx#30222, zero?#903 +[visit_exp `VCVTOP`_instr{shape_1#83, shape_2#83}(`%X%`_shape{lanetype#31416, dim#31416, i#120215}(`I32`_lanetype, `%`_dim{i#120222}(4)), `%X%`_shape{lanetype#31428, dim#31428, i#120227}(`F32`_lanetype, `%`_dim{i#120234}(4)), `RELAXED_TRUNC`_vcvtop__{sx#30222, `zero?#903`}(`S`_sx, ?()))] +[visit_exp shape_1#83] +[visit_id shape_1#83] +[visit_exp shape_2#83] +[visit_id shape_2#83] +[visit_exp (`%X%`_shape{lanetype#31416, dim#31416, i#120215}(`I32`_lanetype, `%`_dim{i#120222}(4)), `%X%`_shape{lanetype#31428, dim#31428, i#120227}(`F32`_lanetype, `%`_dim{i#120234}(4)), `RELAXED_TRUNC`_vcvtop__{sx#30222, `zero?#903`}(`S`_sx, ?()))] +[visit_exp `%X%`_shape{lanetype#31416, dim#31416, i#120215}(`I32`_lanetype, `%`_dim{i#120222}(4))] +[visit_exp lanetype#31416] +[visit_id lanetype#31416] +[visit_exp dim#31416] +[visit_id dim#31416] +[visit_exp i#120215] +[visit_id i#120215] +[visit_exp (`I32`_lanetype, `%`_dim{i#120222}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#120222}(4)] +[visit_exp i#120222] +[visit_id i#120222] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#31428, dim#31428, i#120227}(`F32`_lanetype, `%`_dim{i#120234}(4))] +[visit_exp lanetype#31428] +[visit_id lanetype#31428] +[visit_exp dim#31428] +[visit_id dim#31428] +[visit_exp i#120227] +[visit_id i#120227] +[visit_exp (`F32`_lanetype, `%`_dim{i#120234}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#120234}(4)] +[visit_exp i#120234] +[visit_id i#120234] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#30222, `zero?#903`}(`S`_sx, ?())] +[visit_exp sx#30222] +[visit_id sx#30222] +[visit_exp `zero?#903`] +[visit_id zero?#903] +[visit_exp (`S`_sx, ?())] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp ?()] +[check_dims] I dim#31591 dim#31603 i#120510 i#120517 i#120522 i#120529 lanetype#31591 lanetype#31603 shape_1#85 shape_2#85 sx#30286 zero?#967 +dims \ I = dim#31591, dim#31603, i#120510, i#120517, i#120522, i#120529, lanetype#31591, lanetype#31603, shape_1#85, shape_2#85, sx#30286, zero?#967 +[visit_exp `VCVTOP`_instr{shape_1#85, shape_2#85}(`%X%`_shape{lanetype#31591, dim#31591, i#120510}(`I32`_lanetype, `%`_dim{i#120517}(4)), `%X%`_shape{lanetype#31603, dim#31603, i#120522}(`F32`_lanetype, `%`_dim{i#120529}(4)), `RELAXED_TRUNC`_vcvtop__{sx#30286, `zero?#967`}(`U`_sx, ?()))] +[visit_exp shape_1#85] +[visit_id shape_1#85] +[visit_exp shape_2#85] +[visit_id shape_2#85] +[visit_exp (`%X%`_shape{lanetype#31591, dim#31591, i#120510}(`I32`_lanetype, `%`_dim{i#120517}(4)), `%X%`_shape{lanetype#31603, dim#31603, i#120522}(`F32`_lanetype, `%`_dim{i#120529}(4)), `RELAXED_TRUNC`_vcvtop__{sx#30286, `zero?#967`}(`U`_sx, ?()))] +[visit_exp `%X%`_shape{lanetype#31591, dim#31591, i#120510}(`I32`_lanetype, `%`_dim{i#120517}(4))] +[visit_exp lanetype#31591] +[visit_id lanetype#31591] +[visit_exp dim#31591] +[visit_id dim#31591] +[visit_exp i#120510] +[visit_id i#120510] +[visit_exp (`I32`_lanetype, `%`_dim{i#120517}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#120517}(4)] +[visit_exp i#120517] +[visit_id i#120517] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#31603, dim#31603, i#120522}(`F32`_lanetype, `%`_dim{i#120529}(4))] +[visit_exp lanetype#31603] +[visit_id lanetype#31603] +[visit_exp dim#31603] +[visit_id dim#31603] +[visit_exp i#120522] +[visit_id i#120522] +[visit_exp (`F32`_lanetype, `%`_dim{i#120529}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#120529}(4)] +[visit_exp i#120529] +[visit_id i#120529] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#30286, `zero?#967`}(`U`_sx, ?())] +[visit_exp sx#30286] +[visit_id sx#30286] +[visit_exp `zero?#967`] +[visit_id zero?#967] +[visit_exp (`U`_sx, ?())] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp ?()] +[check_dims] I dim#31766 dim#31778 i#120805 i#120812 i#120817 i#120824 lanetype#31766 lanetype#31778 shape_1#87 shape_2#87 sx#30350 zero?#1031 +dims \ I = dim#31766, dim#31778, i#120805, i#120812, i#120817, i#120824, lanetype#31766, lanetype#31778, shape_1#87, shape_2#87, sx#30350, zero?#1031 +[visit_exp `VCVTOP`_instr{shape_1#87, shape_2#87}(`%X%`_shape{lanetype#31766, dim#31766, i#120805}(`I32`_lanetype, `%`_dim{i#120812}(4)), `%X%`_shape{lanetype#31778, dim#31778, i#120817}(`F64`_lanetype, `%`_dim{i#120824}(2)), `RELAXED_TRUNC`_vcvtop__{sx#30350, `zero?#1031`}(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp shape_1#87] +[visit_id shape_1#87] +[visit_exp shape_2#87] +[visit_id shape_2#87] +[visit_exp (`%X%`_shape{lanetype#31766, dim#31766, i#120805}(`I32`_lanetype, `%`_dim{i#120812}(4)), `%X%`_shape{lanetype#31778, dim#31778, i#120817}(`F64`_lanetype, `%`_dim{i#120824}(2)), `RELAXED_TRUNC`_vcvtop__{sx#30350, `zero?#1031`}(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape{lanetype#31766, dim#31766, i#120805}(`I32`_lanetype, `%`_dim{i#120812}(4))] +[visit_exp lanetype#31766] +[visit_id lanetype#31766] +[visit_exp dim#31766] +[visit_id dim#31766] +[visit_exp i#120805] +[visit_id i#120805] +[visit_exp (`I32`_lanetype, `%`_dim{i#120812}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#120812}(4)] +[visit_exp i#120812] +[visit_id i#120812] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#31778, dim#31778, i#120817}(`F64`_lanetype, `%`_dim{i#120824}(2))] +[visit_exp lanetype#31778] +[visit_id lanetype#31778] +[visit_exp dim#31778] +[visit_id dim#31778] +[visit_exp i#120817] +[visit_id i#120817] +[visit_exp (`F64`_lanetype, `%`_dim{i#120824}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#120824}(2)] +[visit_exp i#120824] +[visit_id i#120824] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#30350, `zero?#1031`}(`S`_sx, ?(`ZERO`_zero))] +[visit_exp sx#30350] +[visit_id sx#30350] +[visit_exp `zero?#1031`] +[visit_id zero?#1031] +[visit_exp (`S`_sx, ?(`ZERO`_zero))] +[visit_exp `S`_sx] +[visit_exp ()] +[visit_exp ?(`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +[check_dims] I dim#31941 dim#31953 i#121100 i#121107 i#121112 i#121119 lanetype#31941 lanetype#31953 shape_1#89 shape_2#89 sx#30414 zero?#1095 +dims \ I = dim#31941, dim#31953, i#121100, i#121107, i#121112, i#121119, lanetype#31941, lanetype#31953, shape_1#89, shape_2#89, sx#30414, zero?#1095 +[visit_exp `VCVTOP`_instr{shape_1#89, shape_2#89}(`%X%`_shape{lanetype#31941, dim#31941, i#121100}(`I32`_lanetype, `%`_dim{i#121107}(4)), `%X%`_shape{lanetype#31953, dim#31953, i#121112}(`F64`_lanetype, `%`_dim{i#121119}(2)), `RELAXED_TRUNC`_vcvtop__{sx#30414, `zero?#1095`}(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp shape_1#89] +[visit_id shape_1#89] +[visit_exp shape_2#89] +[visit_id shape_2#89] +[visit_exp (`%X%`_shape{lanetype#31941, dim#31941, i#121100}(`I32`_lanetype, `%`_dim{i#121107}(4)), `%X%`_shape{lanetype#31953, dim#31953, i#121112}(`F64`_lanetype, `%`_dim{i#121119}(2)), `RELAXED_TRUNC`_vcvtop__{sx#30414, `zero?#1095`}(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape{lanetype#31941, dim#31941, i#121100}(`I32`_lanetype, `%`_dim{i#121107}(4))] +[visit_exp lanetype#31941] +[visit_id lanetype#31941] +[visit_exp dim#31941] +[visit_id dim#31941] +[visit_exp i#121100] +[visit_id i#121100] +[visit_exp (`I32`_lanetype, `%`_dim{i#121107}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#121107}(4)] +[visit_exp i#121107] +[visit_id i#121107] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#31953, dim#31953, i#121112}(`F64`_lanetype, `%`_dim{i#121119}(2))] +[visit_exp lanetype#31953] +[visit_id lanetype#31953] +[visit_exp dim#31953] +[visit_id dim#31953] +[visit_exp i#121112] +[visit_id i#121112] +[visit_exp (`F64`_lanetype, `%`_dim{i#121119}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#121119}(2)] +[visit_exp i#121119] +[visit_id i#121119] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#30414, `zero?#1095`}(`U`_sx, ?(`ZERO`_zero))] +[visit_exp sx#30414] +[visit_id sx#30414] +[visit_exp `zero?#1095`] +[visit_id zero?#1095] +[visit_exp (`U`_sx, ?(`ZERO`_zero))] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_exp ?(`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#32116 dim#32128 half#1444 i#121395 i#121402 i#121407 i#121414 lanetype#32116 lanetype#32128 shape_1#91 shape_2#91 sx#30448 +dims \ I = dim#32116, dim#32128, half#1444, i#121395, i#121402, i#121407, i#121414, lanetype#32116, lanetype#32128, shape_1#91, shape_2#91, sx#30448 +[visit_exp `VCVTOP`_instr{shape_1#91, shape_2#91}(`%X%`_shape{lanetype#32116, dim#32116, i#121395}(`I64`_lanetype, `%`_dim{i#121402}(2)), `%X%`_shape{lanetype#32128, dim#32128, i#121407}(`I32`_lanetype, `%`_dim{i#121414}(4)), `EXTEND`_vcvtop__{half#1444, sx#30448}(`LOW`_half, `S`_sx))] +[visit_exp shape_1#91] +[visit_id shape_1#91] +[visit_exp shape_2#91] +[visit_id shape_2#91] +[visit_exp (`%X%`_shape{lanetype#32116, dim#32116, i#121395}(`I64`_lanetype, `%`_dim{i#121402}(2)), `%X%`_shape{lanetype#32128, dim#32128, i#121407}(`I32`_lanetype, `%`_dim{i#121414}(4)), `EXTEND`_vcvtop__{half#1444, sx#30448}(`LOW`_half, `S`_sx))] +[visit_exp `%X%`_shape{lanetype#32116, dim#32116, i#121395}(`I64`_lanetype, `%`_dim{i#121402}(2))] +[visit_exp lanetype#32116] +[visit_id lanetype#32116] +[visit_exp dim#32116] +[visit_id dim#32116] +[visit_exp i#121395] +[visit_id i#121395] +[visit_exp (`I64`_lanetype, `%`_dim{i#121402}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#121402}(2)] +[visit_exp i#121402] +[visit_id i#121402] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#32128, dim#32128, i#121407}(`I32`_lanetype, `%`_dim{i#121414}(4))] +[visit_exp lanetype#32128] +[visit_id lanetype#32128] +[visit_exp dim#32128] +[visit_id dim#32128] +[visit_exp i#121407] +[visit_id i#121407] +[visit_exp (`I32`_lanetype, `%`_dim{i#121414}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#121414}(4)] +[visit_exp i#121414] +[visit_id i#121414] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTEND`_vcvtop__{half#1444, sx#30448}(`LOW`_half, `S`_sx)] +[visit_exp half#1444] +[visit_id half#1444] +[visit_exp sx#30448] +[visit_id sx#30448] +[visit_exp (`LOW`_half, `S`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#32231 dim#32243 half#1478 i#121630 i#121637 i#121642 i#121649 lanetype#32231 lanetype#32243 shape_1#93 shape_2#93 sx#30482 +dims \ I = dim#32231, dim#32243, half#1478, i#121630, i#121637, i#121642, i#121649, lanetype#32231, lanetype#32243, shape_1#93, shape_2#93, sx#30482 +[visit_exp `VCVTOP`_instr{shape_1#93, shape_2#93}(`%X%`_shape{lanetype#32231, dim#32231, i#121630}(`I64`_lanetype, `%`_dim{i#121637}(2)), `%X%`_shape{lanetype#32243, dim#32243, i#121642}(`I32`_lanetype, `%`_dim{i#121649}(4)), `EXTEND`_vcvtop__{half#1478, sx#30482}(`LOW`_half, `U`_sx))] +[visit_exp shape_1#93] +[visit_id shape_1#93] +[visit_exp shape_2#93] +[visit_id shape_2#93] +[visit_exp (`%X%`_shape{lanetype#32231, dim#32231, i#121630}(`I64`_lanetype, `%`_dim{i#121637}(2)), `%X%`_shape{lanetype#32243, dim#32243, i#121642}(`I32`_lanetype, `%`_dim{i#121649}(4)), `EXTEND`_vcvtop__{half#1478, sx#30482}(`LOW`_half, `U`_sx))] +[visit_exp `%X%`_shape{lanetype#32231, dim#32231, i#121630}(`I64`_lanetype, `%`_dim{i#121637}(2))] +[visit_exp lanetype#32231] +[visit_id lanetype#32231] +[visit_exp dim#32231] +[visit_id dim#32231] +[visit_exp i#121630] +[visit_id i#121630] +[visit_exp (`I64`_lanetype, `%`_dim{i#121637}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#121637}(2)] +[visit_exp i#121637] +[visit_id i#121637] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#32243, dim#32243, i#121642}(`I32`_lanetype, `%`_dim{i#121649}(4))] +[visit_exp lanetype#32243] +[visit_id lanetype#32243] +[visit_exp dim#32243] +[visit_id dim#32243] +[visit_exp i#121642] +[visit_id i#121642] +[visit_exp (`I32`_lanetype, `%`_dim{i#121649}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#121649}(4)] +[visit_exp i#121649] +[visit_id i#121649] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTEND`_vcvtop__{half#1478, sx#30482}(`LOW`_half, `U`_sx)] +[visit_exp half#1478] +[visit_id half#1478] +[visit_exp sx#30482] +[visit_id sx#30482] +[visit_exp (`LOW`_half, `U`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I dim#32346 dim#32358 half#1512 i#121865 i#121872 i#121877 i#121884 lanetype#32346 lanetype#32358 shape_1#95 shape_2#95 sx#30516 +dims \ I = dim#32346, dim#32358, half#1512, i#121865, i#121872, i#121877, i#121884, lanetype#32346, lanetype#32358, shape_1#95, shape_2#95, sx#30516 +[visit_exp `VCVTOP`_instr{shape_1#95, shape_2#95}(`%X%`_shape{lanetype#32346, dim#32346, i#121865}(`I64`_lanetype, `%`_dim{i#121872}(2)), `%X%`_shape{lanetype#32358, dim#32358, i#121877}(`I32`_lanetype, `%`_dim{i#121884}(4)), `EXTEND`_vcvtop__{half#1512, sx#30516}(`HIGH`_half, `S`_sx))] +[visit_exp shape_1#95] +[visit_id shape_1#95] +[visit_exp shape_2#95] +[visit_id shape_2#95] +[visit_exp (`%X%`_shape{lanetype#32346, dim#32346, i#121865}(`I64`_lanetype, `%`_dim{i#121872}(2)), `%X%`_shape{lanetype#32358, dim#32358, i#121877}(`I32`_lanetype, `%`_dim{i#121884}(4)), `EXTEND`_vcvtop__{half#1512, sx#30516}(`HIGH`_half, `S`_sx))] +[visit_exp `%X%`_shape{lanetype#32346, dim#32346, i#121865}(`I64`_lanetype, `%`_dim{i#121872}(2))] +[visit_exp lanetype#32346] +[visit_id lanetype#32346] +[visit_exp dim#32346] +[visit_id dim#32346] +[visit_exp i#121865] +[visit_id i#121865] +[visit_exp (`I64`_lanetype, `%`_dim{i#121872}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#121872}(2)] +[visit_exp i#121872] +[visit_id i#121872] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#32358, dim#32358, i#121877}(`I32`_lanetype, `%`_dim{i#121884}(4))] +[visit_exp lanetype#32358] +[visit_id lanetype#32358] +[visit_exp dim#32358] +[visit_id dim#32358] +[visit_exp i#121877] +[visit_id i#121877] +[visit_exp (`I32`_lanetype, `%`_dim{i#121884}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#121884}(4)] +[visit_exp i#121884] +[visit_id i#121884] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTEND`_vcvtop__{half#1512, sx#30516}(`HIGH`_half, `S`_sx)] +[visit_exp half#1512] +[visit_id half#1512] +[visit_exp sx#30516] +[visit_id sx#30516] +[visit_exp (`HIGH`_half, `S`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#32461 dim#32473 half#1546 i#122100 i#122107 i#122112 i#122119 lanetype#32461 lanetype#32473 shape_1#97 shape_2#97 sx#30550 +dims \ I = dim#32461, dim#32473, half#1546, i#122100, i#122107, i#122112, i#122119, lanetype#32461, lanetype#32473, shape_1#97, shape_2#97, sx#30550 +[visit_exp `VCVTOP`_instr{shape_1#97, shape_2#97}(`%X%`_shape{lanetype#32461, dim#32461, i#122100}(`I64`_lanetype, `%`_dim{i#122107}(2)), `%X%`_shape{lanetype#32473, dim#32473, i#122112}(`I32`_lanetype, `%`_dim{i#122119}(4)), `EXTEND`_vcvtop__{half#1546, sx#30550}(`HIGH`_half, `U`_sx))] +[visit_exp shape_1#97] +[visit_id shape_1#97] +[visit_exp shape_2#97] +[visit_id shape_2#97] +[visit_exp (`%X%`_shape{lanetype#32461, dim#32461, i#122100}(`I64`_lanetype, `%`_dim{i#122107}(2)), `%X%`_shape{lanetype#32473, dim#32473, i#122112}(`I32`_lanetype, `%`_dim{i#122119}(4)), `EXTEND`_vcvtop__{half#1546, sx#30550}(`HIGH`_half, `U`_sx))] +[visit_exp `%X%`_shape{lanetype#32461, dim#32461, i#122100}(`I64`_lanetype, `%`_dim{i#122107}(2))] +[visit_exp lanetype#32461] +[visit_id lanetype#32461] +[visit_exp dim#32461] +[visit_id dim#32461] +[visit_exp i#122100] +[visit_id i#122100] +[visit_exp (`I64`_lanetype, `%`_dim{i#122107}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#122107}(2)] +[visit_exp i#122107] +[visit_id i#122107] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#32473, dim#32473, i#122112}(`I32`_lanetype, `%`_dim{i#122119}(4))] +[visit_exp lanetype#32473] +[visit_id lanetype#32473] +[visit_exp dim#32473] +[visit_id dim#32473] +[visit_exp i#122112] +[visit_id i#122112] +[visit_exp (`I32`_lanetype, `%`_dim{i#122119}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#122119}(4)] +[visit_exp i#122119] +[visit_id i#122119] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTEND`_vcvtop__{half#1546, sx#30550}(`HIGH`_half, `U`_sx)] +[visit_exp half#1546] +[visit_id half#1546] +[visit_exp sx#30550] +[visit_id sx#30550] +[visit_exp (`HIGH`_half, `U`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#32576 dim#32588 i#122335 i#122342 i#122347 i#122354 lanetype#32576 lanetype#32588 shape_1#99 shape_2#99 zero#2143 +dims \ I = dim#32576, dim#32588, i#122335, i#122342, i#122347, i#122354, lanetype#32576, lanetype#32588, shape_1#99, shape_2#99, zero#2143 +[visit_exp `VCVTOP`_instr{shape_1#99, shape_2#99}(`%X%`_shape{lanetype#32576, dim#32576, i#122335}(`F32`_lanetype, `%`_dim{i#122342}(4)), `%X%`_shape{lanetype#32588, dim#32588, i#122347}(`F64`_lanetype, `%`_dim{i#122354}(2)), `DEMOTE`_vcvtop__{zero#2143}(`ZERO`_zero))] +[visit_exp shape_1#99] +[visit_id shape_1#99] +[visit_exp shape_2#99] +[visit_id shape_2#99] +[visit_exp (`%X%`_shape{lanetype#32576, dim#32576, i#122335}(`F32`_lanetype, `%`_dim{i#122342}(4)), `%X%`_shape{lanetype#32588, dim#32588, i#122347}(`F64`_lanetype, `%`_dim{i#122354}(2)), `DEMOTE`_vcvtop__{zero#2143}(`ZERO`_zero))] +[visit_exp `%X%`_shape{lanetype#32576, dim#32576, i#122335}(`F32`_lanetype, `%`_dim{i#122342}(4))] +[visit_exp lanetype#32576] +[visit_id lanetype#32576] +[visit_exp dim#32576] +[visit_id dim#32576] +[visit_exp i#122335] +[visit_id i#122335] +[visit_exp (`F32`_lanetype, `%`_dim{i#122342}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#122342}(4)] +[visit_exp i#122342] +[visit_id i#122342] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#32588, dim#32588, i#122347}(`F64`_lanetype, `%`_dim{i#122354}(2))] +[visit_exp lanetype#32588] +[visit_id lanetype#32588] +[visit_exp dim#32588] +[visit_id dim#32588] +[visit_exp i#122347] +[visit_id i#122347] +[visit_exp (`F64`_lanetype, `%`_dim{i#122354}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#122354}(2)] +[visit_exp i#122354] +[visit_id i#122354] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `DEMOTE`_vcvtop__{zero#2143}(`ZERO`_zero)] +[visit_exp zero#2143] +[visit_id zero#2143] +[visit_exp (`ZERO`_zero)] +[visit_exp `ZERO`_zero] +[visit_exp ()] +[check_dims] I dim#32841 dim#32853 half?#175 i#122780 i#122787 i#122792 i#122799 lanetype#32841 lanetype#32853 shape_1#101 shape_2#101 sx#30584 +dims \ I = dim#32841, dim#32853, half?#175, i#122780, i#122787, i#122792, i#122799, lanetype#32841, lanetype#32853, shape_1#101, shape_2#101, sx#30584 +[visit_exp `VCVTOP`_instr{shape_1#101, shape_2#101}(`%X%`_shape{lanetype#32841, dim#32841, i#122780}(`F32`_lanetype, `%`_dim{i#122787}(4)), `%X%`_shape{lanetype#32853, dim#32853, i#122792}(`I32`_lanetype, `%`_dim{i#122799}(4)), `CONVERT`_vcvtop__{`half?#175`, sx#30584}(?(), `S`_sx))] +[visit_exp shape_1#101] +[visit_id shape_1#101] +[visit_exp shape_2#101] +[visit_id shape_2#101] +[visit_exp (`%X%`_shape{lanetype#32841, dim#32841, i#122780}(`F32`_lanetype, `%`_dim{i#122787}(4)), `%X%`_shape{lanetype#32853, dim#32853, i#122792}(`I32`_lanetype, `%`_dim{i#122799}(4)), `CONVERT`_vcvtop__{`half?#175`, sx#30584}(?(), `S`_sx))] +[visit_exp `%X%`_shape{lanetype#32841, dim#32841, i#122780}(`F32`_lanetype, `%`_dim{i#122787}(4))] +[visit_exp lanetype#32841] +[visit_id lanetype#32841] +[visit_exp dim#32841] +[visit_id dim#32841] +[visit_exp i#122780] +[visit_id i#122780] +[visit_exp (`F32`_lanetype, `%`_dim{i#122787}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#122787}(4)] +[visit_exp i#122787] +[visit_id i#122787] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#32853, dim#32853, i#122792}(`I32`_lanetype, `%`_dim{i#122799}(4))] +[visit_exp lanetype#32853] +[visit_id lanetype#32853] +[visit_exp dim#32853] +[visit_id dim#32853] +[visit_exp i#122792] +[visit_id i#122792] +[visit_exp (`I32`_lanetype, `%`_dim{i#122799}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#122799}(4)] +[visit_exp i#122799] +[visit_id i#122799] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `CONVERT`_vcvtop__{`half?#175`, sx#30584}(?(), `S`_sx)] +[visit_exp `half?#175`] +[visit_id half?#175] +[visit_exp sx#30584] +[visit_id sx#30584] +[visit_exp (?(), `S`_sx)] +[visit_exp ?()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#33046 dim#33058 half?#209 i#123165 i#123172 i#123177 i#123184 lanetype#33046 lanetype#33058 shape_1#103 shape_2#103 sx#30618 +dims \ I = dim#33046, dim#33058, half?#209, i#123165, i#123172, i#123177, i#123184, lanetype#33046, lanetype#33058, shape_1#103, shape_2#103, sx#30618 +[visit_exp `VCVTOP`_instr{shape_1#103, shape_2#103}(`%X%`_shape{lanetype#33046, dim#33046, i#123165}(`F32`_lanetype, `%`_dim{i#123172}(4)), `%X%`_shape{lanetype#33058, dim#33058, i#123177}(`I32`_lanetype, `%`_dim{i#123184}(4)), `CONVERT`_vcvtop__{`half?#209`, sx#30618}(?(), `U`_sx))] +[visit_exp shape_1#103] +[visit_id shape_1#103] +[visit_exp shape_2#103] +[visit_id shape_2#103] +[visit_exp (`%X%`_shape{lanetype#33046, dim#33046, i#123165}(`F32`_lanetype, `%`_dim{i#123172}(4)), `%X%`_shape{lanetype#33058, dim#33058, i#123177}(`I32`_lanetype, `%`_dim{i#123184}(4)), `CONVERT`_vcvtop__{`half?#209`, sx#30618}(?(), `U`_sx))] +[visit_exp `%X%`_shape{lanetype#33046, dim#33046, i#123165}(`F32`_lanetype, `%`_dim{i#123172}(4))] +[visit_exp lanetype#33046] +[visit_id lanetype#33046] +[visit_exp dim#33046] +[visit_id dim#33046] +[visit_exp i#123165] +[visit_id i#123165] +[visit_exp (`F32`_lanetype, `%`_dim{i#123172}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#123172}(4)] +[visit_exp i#123172] +[visit_id i#123172] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%X%`_shape{lanetype#33058, dim#33058, i#123177}(`I32`_lanetype, `%`_dim{i#123184}(4))] +[visit_exp lanetype#33058] +[visit_id lanetype#33058] +[visit_exp dim#33058] +[visit_id dim#33058] +[visit_exp i#123177] +[visit_id i#123177] +[visit_exp (`I32`_lanetype, `%`_dim{i#123184}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#123184}(4)] +[visit_exp i#123184] +[visit_id i#123184] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `CONVERT`_vcvtop__{`half?#209`, sx#30618}(?(), `U`_sx)] +[visit_exp `half?#209`] +[visit_id half?#209] +[visit_exp sx#30618] +[visit_id sx#30618] +[visit_exp (?(), `U`_sx)] +[visit_exp ?()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I dim#33251 dim#33263 i#123550 i#123557 i#123562 i#123569 lanetype#33251 lanetype#33263 shape_1#105 shape_2#105 +dims \ I = dim#33251, dim#33263, i#123550, i#123557, i#123562, i#123569, lanetype#33251, lanetype#33263, shape_1#105, shape_2#105 +[visit_exp `VCVTOP`_instr{shape_1#105, shape_2#105}(`%X%`_shape{lanetype#33251, dim#33251, i#123550}(`F64`_lanetype, `%`_dim{i#123557}(2)), `%X%`_shape{lanetype#33263, dim#33263, i#123562}(`F32`_lanetype, `%`_dim{i#123569}(4)), `PROMOTELOW`_vcvtop__)] +[visit_exp shape_1#105] +[visit_id shape_1#105] +[visit_exp shape_2#105] +[visit_id shape_2#105] +[visit_exp (`%X%`_shape{lanetype#33251, dim#33251, i#123550}(`F64`_lanetype, `%`_dim{i#123557}(2)), `%X%`_shape{lanetype#33263, dim#33263, i#123562}(`F32`_lanetype, `%`_dim{i#123569}(4)), `PROMOTELOW`_vcvtop__)] +[visit_exp `%X%`_shape{lanetype#33251, dim#33251, i#123550}(`F64`_lanetype, `%`_dim{i#123557}(2))] +[visit_exp lanetype#33251] +[visit_id lanetype#33251] +[visit_exp dim#33251] +[visit_id dim#33251] +[visit_exp i#123550] +[visit_id i#123550] +[visit_exp (`F64`_lanetype, `%`_dim{i#123557}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#123557}(2)] +[visit_exp i#123557] +[visit_id i#123557] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#33263, dim#33263, i#123562}(`F32`_lanetype, `%`_dim{i#123569}(4))] +[visit_exp lanetype#33263] +[visit_id lanetype#33263] +[visit_exp dim#33263] +[visit_id dim#33263] +[visit_exp i#123562] +[visit_id i#123562] +[visit_exp (`F32`_lanetype, `%`_dim{i#123569}(4))] +[visit_exp `F32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#123569}(4)] +[visit_exp i#123569] +[visit_id i#123569] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `PROMOTELOW`_vcvtop__] +[visit_exp ()] +[check_dims] I dim#33516 dim#33528 half?#243 i#123995 i#124002 i#124007 i#124014 lanetype#33516 lanetype#33528 shape_1#107 shape_2#107 sx#30652 +dims \ I = dim#33516, dim#33528, half?#243, i#123995, i#124002, i#124007, i#124014, lanetype#33516, lanetype#33528, shape_1#107, shape_2#107, sx#30652 +[visit_exp `VCVTOP`_instr{shape_1#107, shape_2#107}(`%X%`_shape{lanetype#33516, dim#33516, i#123995}(`F64`_lanetype, `%`_dim{i#124002}(2)), `%X%`_shape{lanetype#33528, dim#33528, i#124007}(`I32`_lanetype, `%`_dim{i#124014}(4)), `CONVERT`_vcvtop__{`half?#243`, sx#30652}(?(`LOW`_half), `S`_sx))] +[visit_exp shape_1#107] +[visit_id shape_1#107] +[visit_exp shape_2#107] +[visit_id shape_2#107] +[visit_exp (`%X%`_shape{lanetype#33516, dim#33516, i#123995}(`F64`_lanetype, `%`_dim{i#124002}(2)), `%X%`_shape{lanetype#33528, dim#33528, i#124007}(`I32`_lanetype, `%`_dim{i#124014}(4)), `CONVERT`_vcvtop__{`half?#243`, sx#30652}(?(`LOW`_half), `S`_sx))] +[visit_exp `%X%`_shape{lanetype#33516, dim#33516, i#123995}(`F64`_lanetype, `%`_dim{i#124002}(2))] +[visit_exp lanetype#33516] +[visit_id lanetype#33516] +[visit_exp dim#33516] +[visit_id dim#33516] +[visit_exp i#123995] +[visit_id i#123995] +[visit_exp (`F64`_lanetype, `%`_dim{i#124002}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#124002}(2)] +[visit_exp i#124002] +[visit_id i#124002] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#33528, dim#33528, i#124007}(`I32`_lanetype, `%`_dim{i#124014}(4))] +[visit_exp lanetype#33528] +[visit_id lanetype#33528] +[visit_exp dim#33528] +[visit_id dim#33528] +[visit_exp i#124007] +[visit_id i#124007] +[visit_exp (`I32`_lanetype, `%`_dim{i#124014}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#124014}(4)] +[visit_exp i#124014] +[visit_id i#124014] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `CONVERT`_vcvtop__{`half?#243`, sx#30652}(?(`LOW`_half), `S`_sx)] +[visit_exp `half?#243`] +[visit_id half?#243] +[visit_exp sx#30652] +[visit_id sx#30652] +[visit_exp (?(`LOW`_half), `S`_sx)] +[visit_exp ?(`LOW`_half)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I dim#33721 dim#33733 half?#277 i#124380 i#124387 i#124392 i#124399 lanetype#33721 lanetype#33733 shape_1#109 shape_2#109 sx#30686 +dims \ I = dim#33721, dim#33733, half?#277, i#124380, i#124387, i#124392, i#124399, lanetype#33721, lanetype#33733, shape_1#109, shape_2#109, sx#30686 +[visit_exp `VCVTOP`_instr{shape_1#109, shape_2#109}(`%X%`_shape{lanetype#33721, dim#33721, i#124380}(`F64`_lanetype, `%`_dim{i#124387}(2)), `%X%`_shape{lanetype#33733, dim#33733, i#124392}(`I32`_lanetype, `%`_dim{i#124399}(4)), `CONVERT`_vcvtop__{`half?#277`, sx#30686}(?(`LOW`_half), `U`_sx))] +[visit_exp shape_1#109] +[visit_id shape_1#109] +[visit_exp shape_2#109] +[visit_id shape_2#109] +[visit_exp (`%X%`_shape{lanetype#33721, dim#33721, i#124380}(`F64`_lanetype, `%`_dim{i#124387}(2)), `%X%`_shape{lanetype#33733, dim#33733, i#124392}(`I32`_lanetype, `%`_dim{i#124399}(4)), `CONVERT`_vcvtop__{`half?#277`, sx#30686}(?(`LOW`_half), `U`_sx))] +[visit_exp `%X%`_shape{lanetype#33721, dim#33721, i#124380}(`F64`_lanetype, `%`_dim{i#124387}(2))] +[visit_exp lanetype#33721] +[visit_id lanetype#33721] +[visit_exp dim#33721] +[visit_id dim#33721] +[visit_exp i#124380] +[visit_id i#124380] +[visit_exp (`F64`_lanetype, `%`_dim{i#124387}(2))] +[visit_exp `F64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#124387}(2)] +[visit_exp i#124387] +[visit_id i#124387] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%X%`_shape{lanetype#33733, dim#33733, i#124392}(`I32`_lanetype, `%`_dim{i#124399}(4))] +[visit_exp lanetype#33733] +[visit_id lanetype#33733] +[visit_exp dim#33733] +[visit_id dim#33733] +[visit_exp i#124392] +[visit_id i#124392] +[visit_exp (`I32`_lanetype, `%`_dim{i#124399}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#124399}(4)] +[visit_exp i#124399] +[visit_id i#124399] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `CONVERT`_vcvtop__{`half?#277`, sx#30686}(?(`LOW`_half), `U`_sx)] +[visit_exp `half?#277`] +[visit_id half?#277] +[visit_exp sx#30686] +[visit_id sx#30686] +[visit_exp (?(`LOW`_half), `U`_sx)] +[visit_exp ?(`LOW`_half)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#596 Jnn#600 dim#33926 dim#33938 i#124765 i#124772 i#124777 i#124784 ishape_1#79 ishape_2#79 lanetype#33926 lanetype#33938 shape#4954 shape#4966 sx#30720 +dims \ I = Jnn#596, Jnn#600, dim#33926, dim#33938, i#124765, i#124772, i#124777, i#124784, ishape_1#79, ishape_2#79, lanetype#33926, lanetype#33938, shape#4954, shape#4966, sx#30720 +[visit_exp `VEXTUNOP`_instr{ishape_1#79, ishape_2#79}(`%`_ishape{shape#4954, Jnn#596}(`%X%`_shape{lanetype#33926, dim#33926, i#124765}(`I16`_lanetype, `%`_dim{i#124772}(8))), `%`_ishape{shape#4966, Jnn#600}(`%X%`_shape{lanetype#33938, dim#33938, i#124777}(`I8`_lanetype, `%`_dim{i#124784}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#30720}(`S`_sx))] +[visit_exp ishape_1#79] +[visit_id ishape_1#79] +[visit_exp ishape_2#79] +[visit_id ishape_2#79] +[visit_exp (`%`_ishape{shape#4954, Jnn#596}(`%X%`_shape{lanetype#33926, dim#33926, i#124765}(`I16`_lanetype, `%`_dim{i#124772}(8))), `%`_ishape{shape#4966, Jnn#600}(`%X%`_shape{lanetype#33938, dim#33938, i#124777}(`I8`_lanetype, `%`_dim{i#124784}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#30720}(`S`_sx))] +[visit_exp `%`_ishape{shape#4954, Jnn#596}(`%X%`_shape{lanetype#33926, dim#33926, i#124765}(`I16`_lanetype, `%`_dim{i#124772}(8)))] +[visit_exp shape#4954] +[visit_id shape#4954] +[visit_exp Jnn#596] +[visit_id Jnn#596] +[visit_exp (`%X%`_shape{lanetype#33926, dim#33926, i#124765}(`I16`_lanetype, `%`_dim{i#124772}(8)))] +[visit_exp `%X%`_shape{lanetype#33926, dim#33926, i#124765}(`I16`_lanetype, `%`_dim{i#124772}(8))] +[visit_exp lanetype#33926] +[visit_id lanetype#33926] +[visit_exp dim#33926] +[visit_id dim#33926] +[visit_exp i#124765] +[visit_id i#124765] +[visit_exp (`I16`_lanetype, `%`_dim{i#124772}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#124772}(8)] +[visit_exp i#124772] +[visit_id i#124772] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#4966, Jnn#600}(`%X%`_shape{lanetype#33938, dim#33938, i#124777}(`I8`_lanetype, `%`_dim{i#124784}(16)))] +[visit_exp shape#4966] +[visit_id shape#4966] +[visit_exp Jnn#600] +[visit_id Jnn#600] +[visit_exp (`%X%`_shape{lanetype#33938, dim#33938, i#124777}(`I8`_lanetype, `%`_dim{i#124784}(16)))] +[visit_exp `%X%`_shape{lanetype#33938, dim#33938, i#124777}(`I8`_lanetype, `%`_dim{i#124784}(16))] +[visit_exp lanetype#33938] +[visit_id lanetype#33938] +[visit_exp dim#33938] +[visit_id dim#33938] +[visit_exp i#124777] +[visit_id i#124777] +[visit_exp (`I8`_lanetype, `%`_dim{i#124784}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#124784}(16)] +[visit_exp i#124784] +[visit_id i#124784] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#30720}(`S`_sx)] +[visit_exp sx#30720] +[visit_id sx#30720] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#604 Jnn#608 dim#34161 dim#34173 i#125120 i#125127 i#125132 i#125139 ishape_1#81 ishape_2#81 lanetype#34161 lanetype#34173 shape#5069 shape#5081 sx#30754 +dims \ I = Jnn#604, Jnn#608, dim#34161, dim#34173, i#125120, i#125127, i#125132, i#125139, ishape_1#81, ishape_2#81, lanetype#34161, lanetype#34173, shape#5069, shape#5081, sx#30754 +[visit_exp `VEXTUNOP`_instr{ishape_1#81, ishape_2#81}(`%`_ishape{shape#5069, Jnn#604}(`%X%`_shape{lanetype#34161, dim#34161, i#125120}(`I16`_lanetype, `%`_dim{i#125127}(8))), `%`_ishape{shape#5081, Jnn#608}(`%X%`_shape{lanetype#34173, dim#34173, i#125132}(`I8`_lanetype, `%`_dim{i#125139}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#30754}(`U`_sx))] +[visit_exp ishape_1#81] +[visit_id ishape_1#81] +[visit_exp ishape_2#81] +[visit_id ishape_2#81] +[visit_exp (`%`_ishape{shape#5069, Jnn#604}(`%X%`_shape{lanetype#34161, dim#34161, i#125120}(`I16`_lanetype, `%`_dim{i#125127}(8))), `%`_ishape{shape#5081, Jnn#608}(`%X%`_shape{lanetype#34173, dim#34173, i#125132}(`I8`_lanetype, `%`_dim{i#125139}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#30754}(`U`_sx))] +[visit_exp `%`_ishape{shape#5069, Jnn#604}(`%X%`_shape{lanetype#34161, dim#34161, i#125120}(`I16`_lanetype, `%`_dim{i#125127}(8)))] +[visit_exp shape#5069] +[visit_id shape#5069] +[visit_exp Jnn#604] +[visit_id Jnn#604] +[visit_exp (`%X%`_shape{lanetype#34161, dim#34161, i#125120}(`I16`_lanetype, `%`_dim{i#125127}(8)))] +[visit_exp `%X%`_shape{lanetype#34161, dim#34161, i#125120}(`I16`_lanetype, `%`_dim{i#125127}(8))] +[visit_exp lanetype#34161] +[visit_id lanetype#34161] +[visit_exp dim#34161] +[visit_id dim#34161] +[visit_exp i#125120] +[visit_id i#125120] +[visit_exp (`I16`_lanetype, `%`_dim{i#125127}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#125127}(8)] +[visit_exp i#125127] +[visit_id i#125127] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#5081, Jnn#608}(`%X%`_shape{lanetype#34173, dim#34173, i#125132}(`I8`_lanetype, `%`_dim{i#125139}(16)))] +[visit_exp shape#5081] +[visit_id shape#5081] +[visit_exp Jnn#608] +[visit_id Jnn#608] +[visit_exp (`%X%`_shape{lanetype#34173, dim#34173, i#125132}(`I8`_lanetype, `%`_dim{i#125139}(16)))] +[visit_exp `%X%`_shape{lanetype#34173, dim#34173, i#125132}(`I8`_lanetype, `%`_dim{i#125139}(16))] +[visit_exp lanetype#34173] +[visit_id lanetype#34173] +[visit_exp dim#34173] +[visit_id dim#34173] +[visit_exp i#125132] +[visit_id i#125132] +[visit_exp (`I8`_lanetype, `%`_dim{i#125139}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#125139}(16)] +[visit_exp i#125139] +[visit_id i#125139] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#30754}(`U`_sx)] +[visit_exp sx#30754] +[visit_id sx#30754] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#612 Jnn#616 dim#34396 dim#34408 i#125475 i#125482 i#125487 i#125494 ishape_1#83 ishape_2#83 lanetype#34396 lanetype#34408 shape#5184 shape#5196 sx#30788 +dims \ I = Jnn#612, Jnn#616, dim#34396, dim#34408, i#125475, i#125482, i#125487, i#125494, ishape_1#83, ishape_2#83, lanetype#34396, lanetype#34408, shape#5184, shape#5196, sx#30788 +[visit_exp `VEXTUNOP`_instr{ishape_1#83, ishape_2#83}(`%`_ishape{shape#5184, Jnn#612}(`%X%`_shape{lanetype#34396, dim#34396, i#125475}(`I32`_lanetype, `%`_dim{i#125482}(4))), `%`_ishape{shape#5196, Jnn#616}(`%X%`_shape{lanetype#34408, dim#34408, i#125487}(`I16`_lanetype, `%`_dim{i#125494}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#30788}(`S`_sx))] +[visit_exp ishape_1#83] +[visit_id ishape_1#83] +[visit_exp ishape_2#83] +[visit_id ishape_2#83] +[visit_exp (`%`_ishape{shape#5184, Jnn#612}(`%X%`_shape{lanetype#34396, dim#34396, i#125475}(`I32`_lanetype, `%`_dim{i#125482}(4))), `%`_ishape{shape#5196, Jnn#616}(`%X%`_shape{lanetype#34408, dim#34408, i#125487}(`I16`_lanetype, `%`_dim{i#125494}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#30788}(`S`_sx))] +[visit_exp `%`_ishape{shape#5184, Jnn#612}(`%X%`_shape{lanetype#34396, dim#34396, i#125475}(`I32`_lanetype, `%`_dim{i#125482}(4)))] +[visit_exp shape#5184] +[visit_id shape#5184] +[visit_exp Jnn#612] +[visit_id Jnn#612] +[visit_exp (`%X%`_shape{lanetype#34396, dim#34396, i#125475}(`I32`_lanetype, `%`_dim{i#125482}(4)))] +[visit_exp `%X%`_shape{lanetype#34396, dim#34396, i#125475}(`I32`_lanetype, `%`_dim{i#125482}(4))] +[visit_exp lanetype#34396] +[visit_id lanetype#34396] +[visit_exp dim#34396] +[visit_id dim#34396] +[visit_exp i#125475] +[visit_id i#125475] +[visit_exp (`I32`_lanetype, `%`_dim{i#125482}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#125482}(4)] +[visit_exp i#125482] +[visit_id i#125482] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#5196, Jnn#616}(`%X%`_shape{lanetype#34408, dim#34408, i#125487}(`I16`_lanetype, `%`_dim{i#125494}(8)))] +[visit_exp shape#5196] +[visit_id shape#5196] +[visit_exp Jnn#616] +[visit_id Jnn#616] +[visit_exp (`%X%`_shape{lanetype#34408, dim#34408, i#125487}(`I16`_lanetype, `%`_dim{i#125494}(8)))] +[visit_exp `%X%`_shape{lanetype#34408, dim#34408, i#125487}(`I16`_lanetype, `%`_dim{i#125494}(8))] +[visit_exp lanetype#34408] +[visit_id lanetype#34408] +[visit_exp dim#34408] +[visit_id dim#34408] +[visit_exp i#125487] +[visit_id i#125487] +[visit_exp (`I16`_lanetype, `%`_dim{i#125494}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#125494}(8)] +[visit_exp i#125494] +[visit_id i#125494] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#30788}(`S`_sx)] +[visit_exp sx#30788] +[visit_id sx#30788] +[visit_exp (`S`_sx)] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#620 Jnn#624 dim#34631 dim#34643 i#125830 i#125837 i#125842 i#125849 ishape_1#85 ishape_2#85 lanetype#34631 lanetype#34643 shape#5299 shape#5311 sx#30822 +dims \ I = Jnn#620, Jnn#624, dim#34631, dim#34643, i#125830, i#125837, i#125842, i#125849, ishape_1#85, ishape_2#85, lanetype#34631, lanetype#34643, shape#5299, shape#5311, sx#30822 +[visit_exp `VEXTUNOP`_instr{ishape_1#85, ishape_2#85}(`%`_ishape{shape#5299, Jnn#620}(`%X%`_shape{lanetype#34631, dim#34631, i#125830}(`I32`_lanetype, `%`_dim{i#125837}(4))), `%`_ishape{shape#5311, Jnn#624}(`%X%`_shape{lanetype#34643, dim#34643, i#125842}(`I16`_lanetype, `%`_dim{i#125849}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#30822}(`U`_sx))] +[visit_exp ishape_1#85] +[visit_id ishape_1#85] +[visit_exp ishape_2#85] +[visit_id ishape_2#85] +[visit_exp (`%`_ishape{shape#5299, Jnn#620}(`%X%`_shape{lanetype#34631, dim#34631, i#125830}(`I32`_lanetype, `%`_dim{i#125837}(4))), `%`_ishape{shape#5311, Jnn#624}(`%X%`_shape{lanetype#34643, dim#34643, i#125842}(`I16`_lanetype, `%`_dim{i#125849}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#30822}(`U`_sx))] +[visit_exp `%`_ishape{shape#5299, Jnn#620}(`%X%`_shape{lanetype#34631, dim#34631, i#125830}(`I32`_lanetype, `%`_dim{i#125837}(4)))] +[visit_exp shape#5299] +[visit_id shape#5299] +[visit_exp Jnn#620] +[visit_id Jnn#620] +[visit_exp (`%X%`_shape{lanetype#34631, dim#34631, i#125830}(`I32`_lanetype, `%`_dim{i#125837}(4)))] +[visit_exp `%X%`_shape{lanetype#34631, dim#34631, i#125830}(`I32`_lanetype, `%`_dim{i#125837}(4))] +[visit_exp lanetype#34631] +[visit_id lanetype#34631] +[visit_exp dim#34631] +[visit_id dim#34631] +[visit_exp i#125830] +[visit_id i#125830] +[visit_exp (`I32`_lanetype, `%`_dim{i#125837}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#125837}(4)] +[visit_exp i#125837] +[visit_id i#125837] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#5311, Jnn#624}(`%X%`_shape{lanetype#34643, dim#34643, i#125842}(`I16`_lanetype, `%`_dim{i#125849}(8)))] +[visit_exp shape#5311] +[visit_id shape#5311] +[visit_exp Jnn#624] +[visit_id Jnn#624] +[visit_exp (`%X%`_shape{lanetype#34643, dim#34643, i#125842}(`I16`_lanetype, `%`_dim{i#125849}(8)))] +[visit_exp `%X%`_shape{lanetype#34643, dim#34643, i#125842}(`I16`_lanetype, `%`_dim{i#125849}(8))] +[visit_exp lanetype#34643] +[visit_id lanetype#34643] +[visit_exp dim#34643] +[visit_id dim#34643] +[visit_exp i#125842] +[visit_id i#125842] +[visit_exp (`I16`_lanetype, `%`_dim{i#125849}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#125849}(8)] +[visit_exp i#125849] +[visit_id i#125849] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#30822}(`U`_sx)] +[visit_exp sx#30822] +[visit_id sx#30822] +[visit_exp (`U`_sx)] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#628 Jnn#632 dim#34866 dim#34878 half#1820 i#126185 i#126192 i#126197 i#126204 ishape_1#87 ishape_2#87 lanetype#34866 lanetype#34878 shape#5414 shape#5426 sx#30856 +dims \ I = Jnn#628, Jnn#632, dim#34866, dim#34878, half#1820, i#126185, i#126192, i#126197, i#126204, ishape_1#87, ishape_2#87, lanetype#34866, lanetype#34878, shape#5414, shape#5426, sx#30856 +[visit_exp `VEXTBINOP`_instr{ishape_1#87, ishape_2#87}(`%`_ishape{shape#5414, Jnn#628}(`%X%`_shape{lanetype#34866, dim#34866, i#126185}(`I16`_lanetype, `%`_dim{i#126192}(8))), `%`_ishape{shape#5426, Jnn#632}(`%X%`_shape{lanetype#34878, dim#34878, i#126197}(`I8`_lanetype, `%`_dim{i#126204}(16))), `EXTMUL`_vextbinop__{half#1820, sx#30856}(`LOW`_half, `S`_sx))] +[visit_exp ishape_1#87] +[visit_id ishape_1#87] +[visit_exp ishape_2#87] +[visit_id ishape_2#87] +[visit_exp (`%`_ishape{shape#5414, Jnn#628}(`%X%`_shape{lanetype#34866, dim#34866, i#126185}(`I16`_lanetype, `%`_dim{i#126192}(8))), `%`_ishape{shape#5426, Jnn#632}(`%X%`_shape{lanetype#34878, dim#34878, i#126197}(`I8`_lanetype, `%`_dim{i#126204}(16))), `EXTMUL`_vextbinop__{half#1820, sx#30856}(`LOW`_half, `S`_sx))] +[visit_exp `%`_ishape{shape#5414, Jnn#628}(`%X%`_shape{lanetype#34866, dim#34866, i#126185}(`I16`_lanetype, `%`_dim{i#126192}(8)))] +[visit_exp shape#5414] +[visit_id shape#5414] +[visit_exp Jnn#628] +[visit_id Jnn#628] +[visit_exp (`%X%`_shape{lanetype#34866, dim#34866, i#126185}(`I16`_lanetype, `%`_dim{i#126192}(8)))] +[visit_exp `%X%`_shape{lanetype#34866, dim#34866, i#126185}(`I16`_lanetype, `%`_dim{i#126192}(8))] +[visit_exp lanetype#34866] +[visit_id lanetype#34866] +[visit_exp dim#34866] +[visit_id dim#34866] +[visit_exp i#126185] +[visit_id i#126185] +[visit_exp (`I16`_lanetype, `%`_dim{i#126192}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#126192}(8)] +[visit_exp i#126192] +[visit_id i#126192] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#5426, Jnn#632}(`%X%`_shape{lanetype#34878, dim#34878, i#126197}(`I8`_lanetype, `%`_dim{i#126204}(16)))] +[visit_exp shape#5426] +[visit_id shape#5426] +[visit_exp Jnn#632] +[visit_id Jnn#632] +[visit_exp (`%X%`_shape{lanetype#34878, dim#34878, i#126197}(`I8`_lanetype, `%`_dim{i#126204}(16)))] +[visit_exp `%X%`_shape{lanetype#34878, dim#34878, i#126197}(`I8`_lanetype, `%`_dim{i#126204}(16))] +[visit_exp lanetype#34878] +[visit_id lanetype#34878] +[visit_exp dim#34878] +[visit_id dim#34878] +[visit_exp i#126197] +[visit_id i#126197] +[visit_exp (`I8`_lanetype, `%`_dim{i#126204}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#126204}(16)] +[visit_exp i#126204] +[visit_id i#126204] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTMUL`_vextbinop__{half#1820, sx#30856}(`LOW`_half, `S`_sx)] +[visit_exp half#1820] +[visit_id half#1820] +[visit_exp sx#30856] +[visit_id sx#30856] +[visit_exp (`LOW`_half, `S`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#636 Jnn#640 dim#35101 dim#35113 half#1854 i#126540 i#126547 i#126552 i#126559 ishape_1#89 ishape_2#89 lanetype#35101 lanetype#35113 shape#5529 shape#5541 sx#30890 +dims \ I = Jnn#636, Jnn#640, dim#35101, dim#35113, half#1854, i#126540, i#126547, i#126552, i#126559, ishape_1#89, ishape_2#89, lanetype#35101, lanetype#35113, shape#5529, shape#5541, sx#30890 +[visit_exp `VEXTBINOP`_instr{ishape_1#89, ishape_2#89}(`%`_ishape{shape#5529, Jnn#636}(`%X%`_shape{lanetype#35101, dim#35101, i#126540}(`I16`_lanetype, `%`_dim{i#126547}(8))), `%`_ishape{shape#5541, Jnn#640}(`%X%`_shape{lanetype#35113, dim#35113, i#126552}(`I8`_lanetype, `%`_dim{i#126559}(16))), `EXTMUL`_vextbinop__{half#1854, sx#30890}(`LOW`_half, `U`_sx))] +[visit_exp ishape_1#89] +[visit_id ishape_1#89] +[visit_exp ishape_2#89] +[visit_id ishape_2#89] +[visit_exp (`%`_ishape{shape#5529, Jnn#636}(`%X%`_shape{lanetype#35101, dim#35101, i#126540}(`I16`_lanetype, `%`_dim{i#126547}(8))), `%`_ishape{shape#5541, Jnn#640}(`%X%`_shape{lanetype#35113, dim#35113, i#126552}(`I8`_lanetype, `%`_dim{i#126559}(16))), `EXTMUL`_vextbinop__{half#1854, sx#30890}(`LOW`_half, `U`_sx))] +[visit_exp `%`_ishape{shape#5529, Jnn#636}(`%X%`_shape{lanetype#35101, dim#35101, i#126540}(`I16`_lanetype, `%`_dim{i#126547}(8)))] +[visit_exp shape#5529] +[visit_id shape#5529] +[visit_exp Jnn#636] +[visit_id Jnn#636] +[visit_exp (`%X%`_shape{lanetype#35101, dim#35101, i#126540}(`I16`_lanetype, `%`_dim{i#126547}(8)))] +[visit_exp `%X%`_shape{lanetype#35101, dim#35101, i#126540}(`I16`_lanetype, `%`_dim{i#126547}(8))] +[visit_exp lanetype#35101] +[visit_id lanetype#35101] +[visit_exp dim#35101] +[visit_id dim#35101] +[visit_exp i#126540] +[visit_id i#126540] +[visit_exp (`I16`_lanetype, `%`_dim{i#126547}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#126547}(8)] +[visit_exp i#126547] +[visit_id i#126547] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#5541, Jnn#640}(`%X%`_shape{lanetype#35113, dim#35113, i#126552}(`I8`_lanetype, `%`_dim{i#126559}(16)))] +[visit_exp shape#5541] +[visit_id shape#5541] +[visit_exp Jnn#640] +[visit_id Jnn#640] +[visit_exp (`%X%`_shape{lanetype#35113, dim#35113, i#126552}(`I8`_lanetype, `%`_dim{i#126559}(16)))] +[visit_exp `%X%`_shape{lanetype#35113, dim#35113, i#126552}(`I8`_lanetype, `%`_dim{i#126559}(16))] +[visit_exp lanetype#35113] +[visit_id lanetype#35113] +[visit_exp dim#35113] +[visit_id dim#35113] +[visit_exp i#126552] +[visit_id i#126552] +[visit_exp (`I8`_lanetype, `%`_dim{i#126559}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#126559}(16)] +[visit_exp i#126559] +[visit_id i#126559] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTMUL`_vextbinop__{half#1854, sx#30890}(`LOW`_half, `U`_sx)] +[visit_exp half#1854] +[visit_id half#1854] +[visit_exp sx#30890] +[visit_id sx#30890] +[visit_exp (`LOW`_half, `U`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I Jnn#644 Jnn#648 dim#35336 dim#35348 half#1888 i#126895 i#126902 i#126907 i#126914 ishape_1#91 ishape_2#91 lanetype#35336 lanetype#35348 shape#5644 shape#5656 sx#30924 +dims \ I = Jnn#644, Jnn#648, dim#35336, dim#35348, half#1888, i#126895, i#126902, i#126907, i#126914, ishape_1#91, ishape_2#91, lanetype#35336, lanetype#35348, shape#5644, shape#5656, sx#30924 +[visit_exp `VEXTBINOP`_instr{ishape_1#91, ishape_2#91}(`%`_ishape{shape#5644, Jnn#644}(`%X%`_shape{lanetype#35336, dim#35336, i#126895}(`I16`_lanetype, `%`_dim{i#126902}(8))), `%`_ishape{shape#5656, Jnn#648}(`%X%`_shape{lanetype#35348, dim#35348, i#126907}(`I8`_lanetype, `%`_dim{i#126914}(16))), `EXTMUL`_vextbinop__{half#1888, sx#30924}(`HIGH`_half, `S`_sx))] +[visit_exp ishape_1#91] +[visit_id ishape_1#91] +[visit_exp ishape_2#91] +[visit_id ishape_2#91] +[visit_exp (`%`_ishape{shape#5644, Jnn#644}(`%X%`_shape{lanetype#35336, dim#35336, i#126895}(`I16`_lanetype, `%`_dim{i#126902}(8))), `%`_ishape{shape#5656, Jnn#648}(`%X%`_shape{lanetype#35348, dim#35348, i#126907}(`I8`_lanetype, `%`_dim{i#126914}(16))), `EXTMUL`_vextbinop__{half#1888, sx#30924}(`HIGH`_half, `S`_sx))] +[visit_exp `%`_ishape{shape#5644, Jnn#644}(`%X%`_shape{lanetype#35336, dim#35336, i#126895}(`I16`_lanetype, `%`_dim{i#126902}(8)))] +[visit_exp shape#5644] +[visit_id shape#5644] +[visit_exp Jnn#644] +[visit_id Jnn#644] +[visit_exp (`%X%`_shape{lanetype#35336, dim#35336, i#126895}(`I16`_lanetype, `%`_dim{i#126902}(8)))] +[visit_exp `%X%`_shape{lanetype#35336, dim#35336, i#126895}(`I16`_lanetype, `%`_dim{i#126902}(8))] +[visit_exp lanetype#35336] +[visit_id lanetype#35336] +[visit_exp dim#35336] +[visit_id dim#35336] +[visit_exp i#126895] +[visit_id i#126895] +[visit_exp (`I16`_lanetype, `%`_dim{i#126902}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#126902}(8)] +[visit_exp i#126902] +[visit_id i#126902] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#5656, Jnn#648}(`%X%`_shape{lanetype#35348, dim#35348, i#126907}(`I8`_lanetype, `%`_dim{i#126914}(16)))] +[visit_exp shape#5656] +[visit_id shape#5656] +[visit_exp Jnn#648] +[visit_id Jnn#648] +[visit_exp (`%X%`_shape{lanetype#35348, dim#35348, i#126907}(`I8`_lanetype, `%`_dim{i#126914}(16)))] +[visit_exp `%X%`_shape{lanetype#35348, dim#35348, i#126907}(`I8`_lanetype, `%`_dim{i#126914}(16))] +[visit_exp lanetype#35348] +[visit_id lanetype#35348] +[visit_exp dim#35348] +[visit_id dim#35348] +[visit_exp i#126907] +[visit_id i#126907] +[visit_exp (`I8`_lanetype, `%`_dim{i#126914}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#126914}(16)] +[visit_exp i#126914] +[visit_id i#126914] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTMUL`_vextbinop__{half#1888, sx#30924}(`HIGH`_half, `S`_sx)] +[visit_exp half#1888] +[visit_id half#1888] +[visit_exp sx#30924] +[visit_id sx#30924] +[visit_exp (`HIGH`_half, `S`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#652 Jnn#656 dim#35571 dim#35583 half#1922 i#127250 i#127257 i#127262 i#127269 ishape_1#93 ishape_2#93 lanetype#35571 lanetype#35583 shape#5759 shape#5771 sx#30958 +dims \ I = Jnn#652, Jnn#656, dim#35571, dim#35583, half#1922, i#127250, i#127257, i#127262, i#127269, ishape_1#93, ishape_2#93, lanetype#35571, lanetype#35583, shape#5759, shape#5771, sx#30958 +[visit_exp `VEXTBINOP`_instr{ishape_1#93, ishape_2#93}(`%`_ishape{shape#5759, Jnn#652}(`%X%`_shape{lanetype#35571, dim#35571, i#127250}(`I16`_lanetype, `%`_dim{i#127257}(8))), `%`_ishape{shape#5771, Jnn#656}(`%X%`_shape{lanetype#35583, dim#35583, i#127262}(`I8`_lanetype, `%`_dim{i#127269}(16))), `EXTMUL`_vextbinop__{half#1922, sx#30958}(`HIGH`_half, `U`_sx))] +[visit_exp ishape_1#93] +[visit_id ishape_1#93] +[visit_exp ishape_2#93] +[visit_id ishape_2#93] +[visit_exp (`%`_ishape{shape#5759, Jnn#652}(`%X%`_shape{lanetype#35571, dim#35571, i#127250}(`I16`_lanetype, `%`_dim{i#127257}(8))), `%`_ishape{shape#5771, Jnn#656}(`%X%`_shape{lanetype#35583, dim#35583, i#127262}(`I8`_lanetype, `%`_dim{i#127269}(16))), `EXTMUL`_vextbinop__{half#1922, sx#30958}(`HIGH`_half, `U`_sx))] +[visit_exp `%`_ishape{shape#5759, Jnn#652}(`%X%`_shape{lanetype#35571, dim#35571, i#127250}(`I16`_lanetype, `%`_dim{i#127257}(8)))] +[visit_exp shape#5759] +[visit_id shape#5759] +[visit_exp Jnn#652] +[visit_id Jnn#652] +[visit_exp (`%X%`_shape{lanetype#35571, dim#35571, i#127250}(`I16`_lanetype, `%`_dim{i#127257}(8)))] +[visit_exp `%X%`_shape{lanetype#35571, dim#35571, i#127250}(`I16`_lanetype, `%`_dim{i#127257}(8))] +[visit_exp lanetype#35571] +[visit_id lanetype#35571] +[visit_exp dim#35571] +[visit_id dim#35571] +[visit_exp i#127250] +[visit_id i#127250] +[visit_exp (`I16`_lanetype, `%`_dim{i#127257}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#127257}(8)] +[visit_exp i#127257] +[visit_id i#127257] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `%`_ishape{shape#5771, Jnn#656}(`%X%`_shape{lanetype#35583, dim#35583, i#127262}(`I8`_lanetype, `%`_dim{i#127269}(16)))] +[visit_exp shape#5771] +[visit_id shape#5771] +[visit_exp Jnn#656] +[visit_id Jnn#656] +[visit_exp (`%X%`_shape{lanetype#35583, dim#35583, i#127262}(`I8`_lanetype, `%`_dim{i#127269}(16)))] +[visit_exp `%X%`_shape{lanetype#35583, dim#35583, i#127262}(`I8`_lanetype, `%`_dim{i#127269}(16))] +[visit_exp lanetype#35583] +[visit_id lanetype#35583] +[visit_exp dim#35583] +[visit_id dim#35583] +[visit_exp i#127262] +[visit_id i#127262] +[visit_exp (`I8`_lanetype, `%`_dim{i#127269}(16))] +[visit_exp `I8`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#127269}(16)] +[visit_exp i#127269] +[visit_id i#127269] +[visit_exp (16)] +[visit_exp 16] +[visit_exp `EXTMUL`_vextbinop__{half#1922, sx#30958}(`HIGH`_half, `U`_sx)] +[visit_exp half#1922] +[visit_id half#1922] +[visit_exp sx#30958] +[visit_id sx#30958] +[visit_exp (`HIGH`_half, `U`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#660 Jnn#664 dim#35806 dim#35818 half#1956 i#127605 i#127612 i#127617 i#127624 ishape_1#95 ishape_2#95 lanetype#35806 lanetype#35818 shape#5874 shape#5886 sx#30992 +dims \ I = Jnn#660, Jnn#664, dim#35806, dim#35818, half#1956, i#127605, i#127612, i#127617, i#127624, ishape_1#95, ishape_2#95, lanetype#35806, lanetype#35818, shape#5874, shape#5886, sx#30992 +[visit_exp `VEXTBINOP`_instr{ishape_1#95, ishape_2#95}(`%`_ishape{shape#5874, Jnn#660}(`%X%`_shape{lanetype#35806, dim#35806, i#127605}(`I32`_lanetype, `%`_dim{i#127612}(4))), `%`_ishape{shape#5886, Jnn#664}(`%X%`_shape{lanetype#35818, dim#35818, i#127617}(`I16`_lanetype, `%`_dim{i#127624}(8))), `EXTMUL`_vextbinop__{half#1956, sx#30992}(`LOW`_half, `S`_sx))] +[visit_exp ishape_1#95] +[visit_id ishape_1#95] +[visit_exp ishape_2#95] +[visit_id ishape_2#95] +[visit_exp (`%`_ishape{shape#5874, Jnn#660}(`%X%`_shape{lanetype#35806, dim#35806, i#127605}(`I32`_lanetype, `%`_dim{i#127612}(4))), `%`_ishape{shape#5886, Jnn#664}(`%X%`_shape{lanetype#35818, dim#35818, i#127617}(`I16`_lanetype, `%`_dim{i#127624}(8))), `EXTMUL`_vextbinop__{half#1956, sx#30992}(`LOW`_half, `S`_sx))] +[visit_exp `%`_ishape{shape#5874, Jnn#660}(`%X%`_shape{lanetype#35806, dim#35806, i#127605}(`I32`_lanetype, `%`_dim{i#127612}(4)))] +[visit_exp shape#5874] +[visit_id shape#5874] +[visit_exp Jnn#660] +[visit_id Jnn#660] +[visit_exp (`%X%`_shape{lanetype#35806, dim#35806, i#127605}(`I32`_lanetype, `%`_dim{i#127612}(4)))] +[visit_exp `%X%`_shape{lanetype#35806, dim#35806, i#127605}(`I32`_lanetype, `%`_dim{i#127612}(4))] +[visit_exp lanetype#35806] +[visit_id lanetype#35806] +[visit_exp dim#35806] +[visit_id dim#35806] +[visit_exp i#127605] +[visit_id i#127605] +[visit_exp (`I32`_lanetype, `%`_dim{i#127612}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#127612}(4)] +[visit_exp i#127612] +[visit_id i#127612] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#5886, Jnn#664}(`%X%`_shape{lanetype#35818, dim#35818, i#127617}(`I16`_lanetype, `%`_dim{i#127624}(8)))] +[visit_exp shape#5886] +[visit_id shape#5886] +[visit_exp Jnn#664] +[visit_id Jnn#664] +[visit_exp (`%X%`_shape{lanetype#35818, dim#35818, i#127617}(`I16`_lanetype, `%`_dim{i#127624}(8)))] +[visit_exp `%X%`_shape{lanetype#35818, dim#35818, i#127617}(`I16`_lanetype, `%`_dim{i#127624}(8))] +[visit_exp lanetype#35818] +[visit_id lanetype#35818] +[visit_exp dim#35818] +[visit_id dim#35818] +[visit_exp i#127617] +[visit_id i#127617] +[visit_exp (`I16`_lanetype, `%`_dim{i#127624}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#127624}(8)] +[visit_exp i#127624] +[visit_id i#127624] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTMUL`_vextbinop__{half#1956, sx#30992}(`LOW`_half, `S`_sx)] +[visit_exp half#1956] +[visit_id half#1956] +[visit_exp sx#30992] +[visit_id sx#30992] +[visit_exp (`LOW`_half, `S`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#668 Jnn#672 dim#36041 dim#36053 half#1990 i#127960 i#127967 i#127972 i#127979 ishape_1#97 ishape_2#97 lanetype#36041 lanetype#36053 shape#5989 shape#6001 sx#31026 +dims \ I = Jnn#668, Jnn#672, dim#36041, dim#36053, half#1990, i#127960, i#127967, i#127972, i#127979, ishape_1#97, ishape_2#97, lanetype#36041, lanetype#36053, shape#5989, shape#6001, sx#31026 +[visit_exp `VEXTBINOP`_instr{ishape_1#97, ishape_2#97}(`%`_ishape{shape#5989, Jnn#668}(`%X%`_shape{lanetype#36041, dim#36041, i#127960}(`I32`_lanetype, `%`_dim{i#127967}(4))), `%`_ishape{shape#6001, Jnn#672}(`%X%`_shape{lanetype#36053, dim#36053, i#127972}(`I16`_lanetype, `%`_dim{i#127979}(8))), `EXTMUL`_vextbinop__{half#1990, sx#31026}(`LOW`_half, `U`_sx))] +[visit_exp ishape_1#97] +[visit_id ishape_1#97] +[visit_exp ishape_2#97] +[visit_id ishape_2#97] +[visit_exp (`%`_ishape{shape#5989, Jnn#668}(`%X%`_shape{lanetype#36041, dim#36041, i#127960}(`I32`_lanetype, `%`_dim{i#127967}(4))), `%`_ishape{shape#6001, Jnn#672}(`%X%`_shape{lanetype#36053, dim#36053, i#127972}(`I16`_lanetype, `%`_dim{i#127979}(8))), `EXTMUL`_vextbinop__{half#1990, sx#31026}(`LOW`_half, `U`_sx))] +[visit_exp `%`_ishape{shape#5989, Jnn#668}(`%X%`_shape{lanetype#36041, dim#36041, i#127960}(`I32`_lanetype, `%`_dim{i#127967}(4)))] +[visit_exp shape#5989] +[visit_id shape#5989] +[visit_exp Jnn#668] +[visit_id Jnn#668] +[visit_exp (`%X%`_shape{lanetype#36041, dim#36041, i#127960}(`I32`_lanetype, `%`_dim{i#127967}(4)))] +[visit_exp `%X%`_shape{lanetype#36041, dim#36041, i#127960}(`I32`_lanetype, `%`_dim{i#127967}(4))] +[visit_exp lanetype#36041] +[visit_id lanetype#36041] +[visit_exp dim#36041] +[visit_id dim#36041] +[visit_exp i#127960] +[visit_id i#127960] +[visit_exp (`I32`_lanetype, `%`_dim{i#127967}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#127967}(4)] +[visit_exp i#127967] +[visit_id i#127967] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#6001, Jnn#672}(`%X%`_shape{lanetype#36053, dim#36053, i#127972}(`I16`_lanetype, `%`_dim{i#127979}(8)))] +[visit_exp shape#6001] +[visit_id shape#6001] +[visit_exp Jnn#672] +[visit_id Jnn#672] +[visit_exp (`%X%`_shape{lanetype#36053, dim#36053, i#127972}(`I16`_lanetype, `%`_dim{i#127979}(8)))] +[visit_exp `%X%`_shape{lanetype#36053, dim#36053, i#127972}(`I16`_lanetype, `%`_dim{i#127979}(8))] +[visit_exp lanetype#36053] +[visit_id lanetype#36053] +[visit_exp dim#36053] +[visit_id dim#36053] +[visit_exp i#127972] +[visit_id i#127972] +[visit_exp (`I16`_lanetype, `%`_dim{i#127979}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#127979}(8)] +[visit_exp i#127979] +[visit_id i#127979] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTMUL`_vextbinop__{half#1990, sx#31026}(`LOW`_half, `U`_sx)] +[visit_exp half#1990] +[visit_id half#1990] +[visit_exp sx#31026] +[visit_id sx#31026] +[visit_exp (`LOW`_half, `U`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I Jnn#676 Jnn#680 dim#36276 dim#36288 half#2024 i#128315 i#128322 i#128327 i#128334 ishape_1#99 ishape_2#99 lanetype#36276 lanetype#36288 shape#6104 shape#6116 sx#31060 +dims \ I = Jnn#676, Jnn#680, dim#36276, dim#36288, half#2024, i#128315, i#128322, i#128327, i#128334, ishape_1#99, ishape_2#99, lanetype#36276, lanetype#36288, shape#6104, shape#6116, sx#31060 +[visit_exp `VEXTBINOP`_instr{ishape_1#99, ishape_2#99}(`%`_ishape{shape#6104, Jnn#676}(`%X%`_shape{lanetype#36276, dim#36276, i#128315}(`I32`_lanetype, `%`_dim{i#128322}(4))), `%`_ishape{shape#6116, Jnn#680}(`%X%`_shape{lanetype#36288, dim#36288, i#128327}(`I16`_lanetype, `%`_dim{i#128334}(8))), `EXTMUL`_vextbinop__{half#2024, sx#31060}(`HIGH`_half, `S`_sx))] +[visit_exp ishape_1#99] +[visit_id ishape_1#99] +[visit_exp ishape_2#99] +[visit_id ishape_2#99] +[visit_exp (`%`_ishape{shape#6104, Jnn#676}(`%X%`_shape{lanetype#36276, dim#36276, i#128315}(`I32`_lanetype, `%`_dim{i#128322}(4))), `%`_ishape{shape#6116, Jnn#680}(`%X%`_shape{lanetype#36288, dim#36288, i#128327}(`I16`_lanetype, `%`_dim{i#128334}(8))), `EXTMUL`_vextbinop__{half#2024, sx#31060}(`HIGH`_half, `S`_sx))] +[visit_exp `%`_ishape{shape#6104, Jnn#676}(`%X%`_shape{lanetype#36276, dim#36276, i#128315}(`I32`_lanetype, `%`_dim{i#128322}(4)))] +[visit_exp shape#6104] +[visit_id shape#6104] +[visit_exp Jnn#676] +[visit_id Jnn#676] +[visit_exp (`%X%`_shape{lanetype#36276, dim#36276, i#128315}(`I32`_lanetype, `%`_dim{i#128322}(4)))] +[visit_exp `%X%`_shape{lanetype#36276, dim#36276, i#128315}(`I32`_lanetype, `%`_dim{i#128322}(4))] +[visit_exp lanetype#36276] +[visit_id lanetype#36276] +[visit_exp dim#36276] +[visit_id dim#36276] +[visit_exp i#128315] +[visit_id i#128315] +[visit_exp (`I32`_lanetype, `%`_dim{i#128322}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#128322}(4)] +[visit_exp i#128322] +[visit_id i#128322] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#6116, Jnn#680}(`%X%`_shape{lanetype#36288, dim#36288, i#128327}(`I16`_lanetype, `%`_dim{i#128334}(8)))] +[visit_exp shape#6116] +[visit_id shape#6116] +[visit_exp Jnn#680] +[visit_id Jnn#680] +[visit_exp (`%X%`_shape{lanetype#36288, dim#36288, i#128327}(`I16`_lanetype, `%`_dim{i#128334}(8)))] +[visit_exp `%X%`_shape{lanetype#36288, dim#36288, i#128327}(`I16`_lanetype, `%`_dim{i#128334}(8))] +[visit_exp lanetype#36288] +[visit_id lanetype#36288] +[visit_exp dim#36288] +[visit_id dim#36288] +[visit_exp i#128327] +[visit_id i#128327] +[visit_exp (`I16`_lanetype, `%`_dim{i#128334}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#128334}(8)] +[visit_exp i#128334] +[visit_id i#128334] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTMUL`_vextbinop__{half#2024, sx#31060}(`HIGH`_half, `S`_sx)] +[visit_exp half#2024] +[visit_id half#2024] +[visit_exp sx#31060] +[visit_id sx#31060] +[visit_exp (`HIGH`_half, `S`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#684 Jnn#688 dim#36511 dim#36523 half#2058 i#128670 i#128677 i#128682 i#128689 ishape_1#101 ishape_2#101 lanetype#36511 lanetype#36523 shape#6219 shape#6231 sx#31094 +dims \ I = Jnn#684, Jnn#688, dim#36511, dim#36523, half#2058, i#128670, i#128677, i#128682, i#128689, ishape_1#101, ishape_2#101, lanetype#36511, lanetype#36523, shape#6219, shape#6231, sx#31094 +[visit_exp `VEXTBINOP`_instr{ishape_1#101, ishape_2#101}(`%`_ishape{shape#6219, Jnn#684}(`%X%`_shape{lanetype#36511, dim#36511, i#128670}(`I32`_lanetype, `%`_dim{i#128677}(4))), `%`_ishape{shape#6231, Jnn#688}(`%X%`_shape{lanetype#36523, dim#36523, i#128682}(`I16`_lanetype, `%`_dim{i#128689}(8))), `EXTMUL`_vextbinop__{half#2058, sx#31094}(`HIGH`_half, `U`_sx))] +[visit_exp ishape_1#101] +[visit_id ishape_1#101] +[visit_exp ishape_2#101] +[visit_id ishape_2#101] +[visit_exp (`%`_ishape{shape#6219, Jnn#684}(`%X%`_shape{lanetype#36511, dim#36511, i#128670}(`I32`_lanetype, `%`_dim{i#128677}(4))), `%`_ishape{shape#6231, Jnn#688}(`%X%`_shape{lanetype#36523, dim#36523, i#128682}(`I16`_lanetype, `%`_dim{i#128689}(8))), `EXTMUL`_vextbinop__{half#2058, sx#31094}(`HIGH`_half, `U`_sx))] +[visit_exp `%`_ishape{shape#6219, Jnn#684}(`%X%`_shape{lanetype#36511, dim#36511, i#128670}(`I32`_lanetype, `%`_dim{i#128677}(4)))] +[visit_exp shape#6219] +[visit_id shape#6219] +[visit_exp Jnn#684] +[visit_id Jnn#684] +[visit_exp (`%X%`_shape{lanetype#36511, dim#36511, i#128670}(`I32`_lanetype, `%`_dim{i#128677}(4)))] +[visit_exp `%X%`_shape{lanetype#36511, dim#36511, i#128670}(`I32`_lanetype, `%`_dim{i#128677}(4))] +[visit_exp lanetype#36511] +[visit_id lanetype#36511] +[visit_exp dim#36511] +[visit_id dim#36511] +[visit_exp i#128670] +[visit_id i#128670] +[visit_exp (`I32`_lanetype, `%`_dim{i#128677}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#128677}(4)] +[visit_exp i#128677] +[visit_id i#128677] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#6231, Jnn#688}(`%X%`_shape{lanetype#36523, dim#36523, i#128682}(`I16`_lanetype, `%`_dim{i#128689}(8)))] +[visit_exp shape#6231] +[visit_id shape#6231] +[visit_exp Jnn#688] +[visit_id Jnn#688] +[visit_exp (`%X%`_shape{lanetype#36523, dim#36523, i#128682}(`I16`_lanetype, `%`_dim{i#128689}(8)))] +[visit_exp `%X%`_shape{lanetype#36523, dim#36523, i#128682}(`I16`_lanetype, `%`_dim{i#128689}(8))] +[visit_exp lanetype#36523] +[visit_id lanetype#36523] +[visit_exp dim#36523] +[visit_id dim#36523] +[visit_exp i#128682] +[visit_id i#128682] +[visit_exp (`I16`_lanetype, `%`_dim{i#128689}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#128689}(8)] +[visit_exp i#128689] +[visit_id i#128689] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `EXTMUL`_vextbinop__{half#2058, sx#31094}(`HIGH`_half, `U`_sx)] +[visit_exp half#2058] +[visit_id half#2058] +[visit_exp sx#31094] +[visit_id sx#31094] +[visit_exp (`HIGH`_half, `U`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I Jnn#692 Jnn#696 dim#36746 dim#36758 i#129025 i#129032 i#129037 i#129044 ishape_1#103 ishape_2#103 lanetype#36746 lanetype#36758 shape#6334 shape#6346 +dims \ I = Jnn#692, Jnn#696, dim#36746, dim#36758, i#129025, i#129032, i#129037, i#129044, ishape_1#103, ishape_2#103, lanetype#36746, lanetype#36758, shape#6334, shape#6346 +[visit_exp `VEXTBINOP`_instr{ishape_1#103, ishape_2#103}(`%`_ishape{shape#6334, Jnn#692}(`%X%`_shape{lanetype#36746, dim#36746, i#129025}(`I32`_lanetype, `%`_dim{i#129032}(4))), `%`_ishape{shape#6346, Jnn#696}(`%X%`_shape{lanetype#36758, dim#36758, i#129037}(`I16`_lanetype, `%`_dim{i#129044}(8))), `DOTS`_vextbinop__)] +[visit_exp ishape_1#103] +[visit_id ishape_1#103] +[visit_exp ishape_2#103] +[visit_id ishape_2#103] +[visit_exp (`%`_ishape{shape#6334, Jnn#692}(`%X%`_shape{lanetype#36746, dim#36746, i#129025}(`I32`_lanetype, `%`_dim{i#129032}(4))), `%`_ishape{shape#6346, Jnn#696}(`%X%`_shape{lanetype#36758, dim#36758, i#129037}(`I16`_lanetype, `%`_dim{i#129044}(8))), `DOTS`_vextbinop__)] +[visit_exp `%`_ishape{shape#6334, Jnn#692}(`%X%`_shape{lanetype#36746, dim#36746, i#129025}(`I32`_lanetype, `%`_dim{i#129032}(4)))] +[visit_exp shape#6334] +[visit_id shape#6334] +[visit_exp Jnn#692] +[visit_id Jnn#692] +[visit_exp (`%X%`_shape{lanetype#36746, dim#36746, i#129025}(`I32`_lanetype, `%`_dim{i#129032}(4)))] +[visit_exp `%X%`_shape{lanetype#36746, dim#36746, i#129025}(`I32`_lanetype, `%`_dim{i#129032}(4))] +[visit_exp lanetype#36746] +[visit_id lanetype#36746] +[visit_exp dim#36746] +[visit_id dim#36746] +[visit_exp i#129025] +[visit_id i#129025] +[visit_exp (`I32`_lanetype, `%`_dim{i#129032}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#129032}(4)] +[visit_exp i#129032] +[visit_id i#129032] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `%`_ishape{shape#6346, Jnn#696}(`%X%`_shape{lanetype#36758, dim#36758, i#129037}(`I16`_lanetype, `%`_dim{i#129044}(8)))] +[visit_exp shape#6346] +[visit_id shape#6346] +[visit_exp Jnn#696] +[visit_id Jnn#696] +[visit_exp (`%X%`_shape{lanetype#36758, dim#36758, i#129037}(`I16`_lanetype, `%`_dim{i#129044}(8)))] +[visit_exp `%X%`_shape{lanetype#36758, dim#36758, i#129037}(`I16`_lanetype, `%`_dim{i#129044}(8))] +[visit_exp lanetype#36758] +[visit_id lanetype#36758] +[visit_exp dim#36758] +[visit_id dim#36758] +[visit_exp i#129037] +[visit_id i#129037] +[visit_exp (`I16`_lanetype, `%`_dim{i#129044}(8))] +[visit_exp `I16`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#129044}(8)] +[visit_exp i#129044] +[visit_id i#129044] +[visit_exp (8)] +[visit_exp 8] +[visit_exp `DOTS`_vextbinop__] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I Jnn#700 Jnn#704 dim#36981 dim#36993 half#2122 i#129380 i#129387 i#129392 i#129399 ishape_1#105 ishape_2#105 lanetype#36981 lanetype#36993 shape#6449 shape#6461 sx#31158 +dims \ I = Jnn#700, Jnn#704, dim#36981, dim#36993, half#2122, i#129380, i#129387, i#129392, i#129399, ishape_1#105, ishape_2#105, lanetype#36981, lanetype#36993, shape#6449, shape#6461, sx#31158 +[visit_exp `VEXTBINOP`_instr{ishape_1#105, ishape_2#105}(`%`_ishape{shape#6449, Jnn#700}(`%X%`_shape{lanetype#36981, dim#36981, i#129380}(`I64`_lanetype, `%`_dim{i#129387}(2))), `%`_ishape{shape#6461, Jnn#704}(`%X%`_shape{lanetype#36993, dim#36993, i#129392}(`I32`_lanetype, `%`_dim{i#129399}(4))), `EXTMUL`_vextbinop__{half#2122, sx#31158}(`LOW`_half, `S`_sx))] +[visit_exp ishape_1#105] +[visit_id ishape_1#105] +[visit_exp ishape_2#105] +[visit_id ishape_2#105] +[visit_exp (`%`_ishape{shape#6449, Jnn#700}(`%X%`_shape{lanetype#36981, dim#36981, i#129380}(`I64`_lanetype, `%`_dim{i#129387}(2))), `%`_ishape{shape#6461, Jnn#704}(`%X%`_shape{lanetype#36993, dim#36993, i#129392}(`I32`_lanetype, `%`_dim{i#129399}(4))), `EXTMUL`_vextbinop__{half#2122, sx#31158}(`LOW`_half, `S`_sx))] +[visit_exp `%`_ishape{shape#6449, Jnn#700}(`%X%`_shape{lanetype#36981, dim#36981, i#129380}(`I64`_lanetype, `%`_dim{i#129387}(2)))] +[visit_exp shape#6449] +[visit_id shape#6449] +[visit_exp Jnn#700] +[visit_id Jnn#700] +[visit_exp (`%X%`_shape{lanetype#36981, dim#36981, i#129380}(`I64`_lanetype, `%`_dim{i#129387}(2)))] +[visit_exp `%X%`_shape{lanetype#36981, dim#36981, i#129380}(`I64`_lanetype, `%`_dim{i#129387}(2))] +[visit_exp lanetype#36981] +[visit_id lanetype#36981] +[visit_exp dim#36981] +[visit_id dim#36981] +[visit_exp i#129380] +[visit_id i#129380] +[visit_exp (`I64`_lanetype, `%`_dim{i#129387}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#129387}(2)] +[visit_exp i#129387] +[visit_id i#129387] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%`_ishape{shape#6461, Jnn#704}(`%X%`_shape{lanetype#36993, dim#36993, i#129392}(`I32`_lanetype, `%`_dim{i#129399}(4)))] +[visit_exp shape#6461] +[visit_id shape#6461] +[visit_exp Jnn#704] +[visit_id Jnn#704] +[visit_exp (`%X%`_shape{lanetype#36993, dim#36993, i#129392}(`I32`_lanetype, `%`_dim{i#129399}(4)))] +[visit_exp `%X%`_shape{lanetype#36993, dim#36993, i#129392}(`I32`_lanetype, `%`_dim{i#129399}(4))] +[visit_exp lanetype#36993] +[visit_id lanetype#36993] +[visit_exp dim#36993] +[visit_id dim#36993] +[visit_exp i#129392] +[visit_id i#129392] +[visit_exp (`I32`_lanetype, `%`_dim{i#129399}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#129399}(4)] +[visit_exp i#129399] +[visit_id i#129399] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTMUL`_vextbinop__{half#2122, sx#31158}(`LOW`_half, `S`_sx)] +[visit_exp half#2122] +[visit_id half#2122] +[visit_exp sx#31158] +[visit_id sx#31158] +[visit_exp (`LOW`_half, `S`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#708 Jnn#712 dim#37216 dim#37228 half#2156 i#129735 i#129742 i#129747 i#129754 ishape_1#107 ishape_2#107 lanetype#37216 lanetype#37228 shape#6564 shape#6576 sx#31192 +dims \ I = Jnn#708, Jnn#712, dim#37216, dim#37228, half#2156, i#129735, i#129742, i#129747, i#129754, ishape_1#107, ishape_2#107, lanetype#37216, lanetype#37228, shape#6564, shape#6576, sx#31192 +[visit_exp `VEXTBINOP`_instr{ishape_1#107, ishape_2#107}(`%`_ishape{shape#6564, Jnn#708}(`%X%`_shape{lanetype#37216, dim#37216, i#129735}(`I64`_lanetype, `%`_dim{i#129742}(2))), `%`_ishape{shape#6576, Jnn#712}(`%X%`_shape{lanetype#37228, dim#37228, i#129747}(`I32`_lanetype, `%`_dim{i#129754}(4))), `EXTMUL`_vextbinop__{half#2156, sx#31192}(`LOW`_half, `U`_sx))] +[visit_exp ishape_1#107] +[visit_id ishape_1#107] +[visit_exp ishape_2#107] +[visit_id ishape_2#107] +[visit_exp (`%`_ishape{shape#6564, Jnn#708}(`%X%`_shape{lanetype#37216, dim#37216, i#129735}(`I64`_lanetype, `%`_dim{i#129742}(2))), `%`_ishape{shape#6576, Jnn#712}(`%X%`_shape{lanetype#37228, dim#37228, i#129747}(`I32`_lanetype, `%`_dim{i#129754}(4))), `EXTMUL`_vextbinop__{half#2156, sx#31192}(`LOW`_half, `U`_sx))] +[visit_exp `%`_ishape{shape#6564, Jnn#708}(`%X%`_shape{lanetype#37216, dim#37216, i#129735}(`I64`_lanetype, `%`_dim{i#129742}(2)))] +[visit_exp shape#6564] +[visit_id shape#6564] +[visit_exp Jnn#708] +[visit_id Jnn#708] +[visit_exp (`%X%`_shape{lanetype#37216, dim#37216, i#129735}(`I64`_lanetype, `%`_dim{i#129742}(2)))] +[visit_exp `%X%`_shape{lanetype#37216, dim#37216, i#129735}(`I64`_lanetype, `%`_dim{i#129742}(2))] +[visit_exp lanetype#37216] +[visit_id lanetype#37216] +[visit_exp dim#37216] +[visit_id dim#37216] +[visit_exp i#129735] +[visit_id i#129735] +[visit_exp (`I64`_lanetype, `%`_dim{i#129742}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#129742}(2)] +[visit_exp i#129742] +[visit_id i#129742] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%`_ishape{shape#6576, Jnn#712}(`%X%`_shape{lanetype#37228, dim#37228, i#129747}(`I32`_lanetype, `%`_dim{i#129754}(4)))] +[visit_exp shape#6576] +[visit_id shape#6576] +[visit_exp Jnn#712] +[visit_id Jnn#712] +[visit_exp (`%X%`_shape{lanetype#37228, dim#37228, i#129747}(`I32`_lanetype, `%`_dim{i#129754}(4)))] +[visit_exp `%X%`_shape{lanetype#37228, dim#37228, i#129747}(`I32`_lanetype, `%`_dim{i#129754}(4))] +[visit_exp lanetype#37228] +[visit_id lanetype#37228] +[visit_exp dim#37228] +[visit_id dim#37228] +[visit_exp i#129747] +[visit_id i#129747] +[visit_exp (`I32`_lanetype, `%`_dim{i#129754}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#129754}(4)] +[visit_exp i#129754] +[visit_id i#129754] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTMUL`_vextbinop__{half#2156, sx#31192}(`LOW`_half, `U`_sx)] +[visit_exp half#2156] +[visit_id half#2156] +[visit_exp sx#31192] +[visit_id sx#31192] +[visit_exp (`LOW`_half, `U`_sx)] +[visit_exp `LOW`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[check_dims] I Jnn#716 Jnn#720 dim#37451 dim#37463 half#2190 i#130090 i#130097 i#130102 i#130109 ishape_1#109 ishape_2#109 lanetype#37451 lanetype#37463 shape#6679 shape#6691 sx#31226 +dims \ I = Jnn#716, Jnn#720, dim#37451, dim#37463, half#2190, i#130090, i#130097, i#130102, i#130109, ishape_1#109, ishape_2#109, lanetype#37451, lanetype#37463, shape#6679, shape#6691, sx#31226 +[visit_exp `VEXTBINOP`_instr{ishape_1#109, ishape_2#109}(`%`_ishape{shape#6679, Jnn#716}(`%X%`_shape{lanetype#37451, dim#37451, i#130090}(`I64`_lanetype, `%`_dim{i#130097}(2))), `%`_ishape{shape#6691, Jnn#720}(`%X%`_shape{lanetype#37463, dim#37463, i#130102}(`I32`_lanetype, `%`_dim{i#130109}(4))), `EXTMUL`_vextbinop__{half#2190, sx#31226}(`HIGH`_half, `S`_sx))] +[visit_exp ishape_1#109] +[visit_id ishape_1#109] +[visit_exp ishape_2#109] +[visit_id ishape_2#109] +[visit_exp (`%`_ishape{shape#6679, Jnn#716}(`%X%`_shape{lanetype#37451, dim#37451, i#130090}(`I64`_lanetype, `%`_dim{i#130097}(2))), `%`_ishape{shape#6691, Jnn#720}(`%X%`_shape{lanetype#37463, dim#37463, i#130102}(`I32`_lanetype, `%`_dim{i#130109}(4))), `EXTMUL`_vextbinop__{half#2190, sx#31226}(`HIGH`_half, `S`_sx))] +[visit_exp `%`_ishape{shape#6679, Jnn#716}(`%X%`_shape{lanetype#37451, dim#37451, i#130090}(`I64`_lanetype, `%`_dim{i#130097}(2)))] +[visit_exp shape#6679] +[visit_id shape#6679] +[visit_exp Jnn#716] +[visit_id Jnn#716] +[visit_exp (`%X%`_shape{lanetype#37451, dim#37451, i#130090}(`I64`_lanetype, `%`_dim{i#130097}(2)))] +[visit_exp `%X%`_shape{lanetype#37451, dim#37451, i#130090}(`I64`_lanetype, `%`_dim{i#130097}(2))] +[visit_exp lanetype#37451] +[visit_id lanetype#37451] +[visit_exp dim#37451] +[visit_id dim#37451] +[visit_exp i#130090] +[visit_id i#130090] +[visit_exp (`I64`_lanetype, `%`_dim{i#130097}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#130097}(2)] +[visit_exp i#130097] +[visit_id i#130097] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%`_ishape{shape#6691, Jnn#720}(`%X%`_shape{lanetype#37463, dim#37463, i#130102}(`I32`_lanetype, `%`_dim{i#130109}(4)))] +[visit_exp shape#6691] +[visit_id shape#6691] +[visit_exp Jnn#720] +[visit_id Jnn#720] +[visit_exp (`%X%`_shape{lanetype#37463, dim#37463, i#130102}(`I32`_lanetype, `%`_dim{i#130109}(4)))] +[visit_exp `%X%`_shape{lanetype#37463, dim#37463, i#130102}(`I32`_lanetype, `%`_dim{i#130109}(4))] +[visit_exp lanetype#37463] +[visit_id lanetype#37463] +[visit_exp dim#37463] +[visit_id dim#37463] +[visit_exp i#130102] +[visit_id i#130102] +[visit_exp (`I32`_lanetype, `%`_dim{i#130109}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#130109}(4)] +[visit_exp i#130109] +[visit_id i#130109] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTMUL`_vextbinop__{half#2190, sx#31226}(`HIGH`_half, `S`_sx)] +[visit_exp half#2190] +[visit_id half#2190] +[visit_exp sx#31226] +[visit_id sx#31226] +[visit_exp (`HIGH`_half, `S`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `S`_sx] +[visit_exp ()] +[check_dims] I Jnn#724 Jnn#728 dim#37686 dim#37698 half#2224 i#130445 i#130452 i#130457 i#130464 ishape_1#111 ishape_2#111 lanetype#37686 lanetype#37698 shape#6794 shape#6806 sx#31260 +dims \ I = Jnn#724, Jnn#728, dim#37686, dim#37698, half#2224, i#130445, i#130452, i#130457, i#130464, ishape_1#111, ishape_2#111, lanetype#37686, lanetype#37698, shape#6794, shape#6806, sx#31260 +[visit_exp `VEXTBINOP`_instr{ishape_1#111, ishape_2#111}(`%`_ishape{shape#6794, Jnn#724}(`%X%`_shape{lanetype#37686, dim#37686, i#130445}(`I64`_lanetype, `%`_dim{i#130452}(2))), `%`_ishape{shape#6806, Jnn#728}(`%X%`_shape{lanetype#37698, dim#37698, i#130457}(`I32`_lanetype, `%`_dim{i#130464}(4))), `EXTMUL`_vextbinop__{half#2224, sx#31260}(`HIGH`_half, `U`_sx))] +[visit_exp ishape_1#111] +[visit_id ishape_1#111] +[visit_exp ishape_2#111] +[visit_id ishape_2#111] +[visit_exp (`%`_ishape{shape#6794, Jnn#724}(`%X%`_shape{lanetype#37686, dim#37686, i#130445}(`I64`_lanetype, `%`_dim{i#130452}(2))), `%`_ishape{shape#6806, Jnn#728}(`%X%`_shape{lanetype#37698, dim#37698, i#130457}(`I32`_lanetype, `%`_dim{i#130464}(4))), `EXTMUL`_vextbinop__{half#2224, sx#31260}(`HIGH`_half, `U`_sx))] +[visit_exp `%`_ishape{shape#6794, Jnn#724}(`%X%`_shape{lanetype#37686, dim#37686, i#130445}(`I64`_lanetype, `%`_dim{i#130452}(2)))] +[visit_exp shape#6794] +[visit_id shape#6794] +[visit_exp Jnn#724] +[visit_id Jnn#724] +[visit_exp (`%X%`_shape{lanetype#37686, dim#37686, i#130445}(`I64`_lanetype, `%`_dim{i#130452}(2)))] +[visit_exp `%X%`_shape{lanetype#37686, dim#37686, i#130445}(`I64`_lanetype, `%`_dim{i#130452}(2))] +[visit_exp lanetype#37686] +[visit_id lanetype#37686] +[visit_exp dim#37686] +[visit_id dim#37686] +[visit_exp i#130445] +[visit_id i#130445] +[visit_exp (`I64`_lanetype, `%`_dim{i#130452}(2))] +[visit_exp `I64`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#130452}(2)] +[visit_exp i#130452] +[visit_id i#130452] +[visit_exp (2)] +[visit_exp 2] +[visit_exp `%`_ishape{shape#6806, Jnn#728}(`%X%`_shape{lanetype#37698, dim#37698, i#130457}(`I32`_lanetype, `%`_dim{i#130464}(4)))] +[visit_exp shape#6806] +[visit_id shape#6806] +[visit_exp Jnn#728] +[visit_id Jnn#728] +[visit_exp (`%X%`_shape{lanetype#37698, dim#37698, i#130457}(`I32`_lanetype, `%`_dim{i#130464}(4)))] +[visit_exp `%X%`_shape{lanetype#37698, dim#37698, i#130457}(`I32`_lanetype, `%`_dim{i#130464}(4))] +[visit_exp lanetype#37698] +[visit_id lanetype#37698] +[visit_exp dim#37698] +[visit_id dim#37698] +[visit_exp i#130457] +[visit_id i#130457] +[visit_exp (`I32`_lanetype, `%`_dim{i#130464}(4))] +[visit_exp `I32`_lanetype] +[visit_exp ()] +[visit_exp `%`_dim{i#130464}(4)] +[visit_exp i#130464] +[visit_id i#130464] +[visit_exp (4)] +[visit_exp 4] +[visit_exp `EXTMUL`_vextbinop__{half#2224, sx#31260}(`HIGH`_half, `U`_sx)] +[visit_exp half#2224] +[visit_id half#2224] +[visit_exp sx#31260] +[visit_id sx#31260] +[visit_exp (`HIGH`_half, `U`_sx)] +[visit_exp `HIGH`_half] +[visit_exp ()] +[visit_exp `U`_sx] +[visit_exp ()] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I in +dims \ I = in +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] no dims +[visit_id in*] +[visit_exp in*{in <- `in*`}] +[scope_enter in] +[visit_exp in] +[visit_id in] not free +[visit_id in] not free +[scope_exit in] +[visit_exp `in*`] +[visit_id in*] not free +[visit_id in*] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I _ +[check_dims] I I' I'' X*#13622 deftype?*#23 i n n#1569 name?*#609 name?*#610 name?*#611 name?*#612 name?*#613 name?*#614 name?*#615 name?*#616 name?*#617 name?*#618 name?**#32 qt rectype#1855 rectype#1885 st +dims \ I = I', I'', X*#13622, deftype?*#23, i, n, n#1569, name?*#609, name?*#610, name?*#611, name?*#612, name?*#613, name?*#614, name?*#615, name?*#616, name?*#617, name?*#618, name?**#32, qt, rectype#1855, rectype#1885, st +[visit_exp (`TYPE`_type{rectype#1855}(qt), I' +++ I'')] +[visit_exp `TYPE`_type{rectype#1855}(qt)] +[visit_exp rectype#1855] +[visit_id rectype#1855] +[visit_exp (qt)] +[visit_exp qt] +[visit_id qt] +[visit_exp I' +++ I''] +[visit_exp I'] +[visit_id I'] +[visit_exp I''] +[visit_id I''] +[visit_exp (qt, I')] +[visit_exp qt] +[visit_id qt] not free +[visit_exp I'] +[visit_id I'] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp (qt = `REC`_rectype(`%`_list{`X*#13622`}(st^n{st <- `st*`})))] +[visit_exp qt] +[visit_id qt] not free +[visit_exp `REC`_rectype(`%`_list{`X*#13622`}(st^n{st <- `st*`}))] +[visit_exp (`%`_list{`X*#13622`}(st^n{st <- `st*`}))] +[visit_exp `%`_list{`X*#13622`}(st^n{st <- `st*`})] +[visit_exp `X*#13622`] +[visit_id X*#13622] +[visit_exp (st^n{st <- `st*`})] +[visit_exp st^n{st <- `st*`}] +[scope_enter st] +[visit_exp st] +[visit_id st] not free +[visit_id st] not free +[scope_exit st] +[visit_exp n] +[visit_id n] +[visit_exp `st*`] +[visit_id st*] no dims +[visit_id st*] +[visit_exp (I'' = {`TYPES`{`name?*#609`} [], `TAGS`{`name?*#610`} [], `GLOBALS`{`name?*#611`} [], `MEMS`{`name?*#612`} [], `TABLES`{`name?*#613`} [], `FUNCS`{`name?*#614`} [], `DATAS`{`name?*#615`} [], `ELEMS`{`name?*#616`} [], `LOCALS`{`name?*#617`} [], `LABELS`{`name?*#618`} [], `FIELDS`{`name?**#32`} [], `TYPEDEFS`{`deftype?*#23`} ?(`_DEF`_deftype{rectype#1885, n#1569}(qt, i))^(i +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] +DecD dots : () +ps' = (I : I) +[check_dims] I +[check_dims] I +dims \ I = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I +dims \ I = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +dims \ I = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I +dims \ I = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +dims \ I = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I +dims \ I = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] I +dims \ I = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +dims \ I = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I +dims \ I = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I +dims \ I = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I +dims \ I = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I +dims \ I = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I char*#1519 char*#1531 id id' name?*#754 +[visit_exp ?(`%`_name{`char*#1519`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1519`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1519`] +[visit_id char*#1519] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp id'] +[visit_id id'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ((`%`_name{`char*#1531`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TAGS`_I{`name?*#754`})))] +[visit_exp (`%`_name{`char*#1531`}(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name{`char*#1531`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1531`] +[visit_id char*#1531] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp id'] +[visit_id id'] not free +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TAGS`_I{`name?*#754`}))] +[visit_exp (id?{id <- `id?`} = ?())] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp ?()] +[visit_exp ~ (?(id') <- I.`TAGS`_I{`name?*#754`})] +[visit_exp (?(id') <- I.`TAGS`_I{`name?*#754`})] +[visit_exp ?(id')] +[visit_exp id'] +[visit_id id'] not free +[visit_exp I.`TAGS`_I{`name?*#754`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#754`] +[visit_id name?*#754] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I char*#1553 char*#1565 id id' name?*#760 +[visit_exp ?(`%`_name{`char*#1553`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1553`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1553`] +[visit_id char*#1553] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp id'] +[visit_id id'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ((`%`_name{`char*#1565`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`GLOBALS`_I{`name?*#760`})))] +[visit_exp (`%`_name{`char*#1565`}(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name{`char*#1565`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1565`] +[visit_id char*#1565] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp id'] +[visit_id id'] not free +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`GLOBALS`_I{`name?*#760`}))] +[visit_exp (id?{id <- `id?`} = ?())] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp ?()] +[visit_exp ~ (?(id') <- I.`GLOBALS`_I{`name?*#760`})] +[visit_exp (?(id') <- I.`GLOBALS`_I{`name?*#760`})] +[visit_exp ?(id')] +[visit_exp id'] +[visit_id id'] not free +[visit_exp I.`GLOBALS`_I{`name?*#760`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#760`] +[visit_id name?*#760] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I char*#1587 char*#1599 id id' name?*#766 +[visit_exp ?(`%`_name{`char*#1587`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1587`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1587`] +[visit_id char*#1587] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp id'] +[visit_id id'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ((`%`_name{`char*#1599`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I{`name?*#766`})))] +[visit_exp (`%`_name{`char*#1599`}(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name{`char*#1599`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1599`] +[visit_id char*#1599] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp id'] +[visit_id id'] not free +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I{`name?*#766`}))] +[visit_exp (id?{id <- `id?`} = ?())] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp ?()] +[visit_exp ~ (?(id') <- I.`MEMS`_I{`name?*#766`})] +[visit_exp (?(id') <- I.`MEMS`_I{`name?*#766`})] +[visit_exp ?(id')] +[visit_exp id'] +[visit_id id'] not free +[visit_exp I.`MEMS`_I{`name?*#766`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#766`] +[visit_id name?*#766] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I char*#1621 char*#1633 id id' name?*#772 +[visit_exp ?(`%`_name{`char*#1621`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1621`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1621`] +[visit_id char*#1621] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp id'] +[visit_id id'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ((`%`_name{`char*#1633`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I{`name?*#772`})))] +[visit_exp (`%`_name{`char*#1633`}(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name{`char*#1633`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1633`] +[visit_id char*#1633] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp id'] +[visit_id id'] not free +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I{`name?*#772`}))] +[visit_exp (id?{id <- `id?`} = ?())] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp ?()] +[visit_exp ~ (?(id') <- I.`TABLES`_I{`name?*#772`})] +[visit_exp (?(id') <- I.`TABLES`_I{`name?*#772`})] +[visit_exp ?(id')] +[visit_exp id'] +[visit_id id'] not free +[visit_exp I.`TABLES`_I{`name?*#772`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#772`] +[visit_id name?*#772] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I char*#1655 char*#1667 id id' name?*#778 +[visit_exp ?(`%`_name{`char*#1655`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1655`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1655`] +[visit_id char*#1655] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp id'] +[visit_id id'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ((`%`_name{`char*#1667`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`FUNCS`_I{`name?*#778`})))] +[visit_exp (`%`_name{`char*#1667`}(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name{`char*#1667`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1667`] +[visit_id char*#1667] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp id'] +[visit_id id'] not free +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`FUNCS`_I{`name?*#778`}))] +[visit_exp (id?{id <- `id?`} = ?())] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp ?()] +[visit_exp ~ (?(id') <- I.`FUNCS`_I{`name?*#778`})] +[visit_exp (?(id') <- I.`FUNCS`_I{`name?*#778`})] +[visit_exp ?(id')] +[visit_exp id'] +[visit_id id'] not free +[visit_exp I.`FUNCS`_I{`name?*#778`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#778`] +[visit_id name?*#778] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I at at' b char*#1689 char*#1707 i#131658 i#131685 id id' n name?*#784 +[visit_exp ?(`%`_name{`char*#1689`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1689`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1689`] +[visit_id char*#1689] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp at?{at <- `at?`}] +[scope_enter at] +[visit_exp at] +[visit_id at] not free +[visit_id at] not free +[scope_exit at] +[visit_exp `at?`] +[visit_id at?] no dims +[visit_id at?] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] no dims +[visit_id b*] +[visit_exp id'] +[visit_id id'] +[visit_exp at?{at <- `at?`}] +[scope_enter at] +[visit_exp at] +[visit_id at] not free +[visit_id at] not free +[scope_exit at] +[visit_exp `at?`] +[visit_id at?] not free +[visit_id at?] no dims +[visit_exp `%`_u64{i#131658}(n)] +[visit_exp i#131658] +[visit_id i#131658] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `%`_u64{i#131685}(n)] +[visit_exp i#131685] +[visit_id i#131685] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp id'] +[visit_id id'] not free +[visit_exp at'] +[visit_id at'] +[visit_exp ((`%`_name{`char*#1707`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I{`name?*#784`})))] +[visit_exp (`%`_name{`char*#1707`}(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name{`char*#1707`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1707`] +[visit_id char*#1707] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp id'] +[visit_id id'] not free +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I{`name?*#784`}))] +[visit_exp (id?{id <- `id?`} = ?())] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp ?()] +[visit_exp ~ (?(id') <- I.`MEMS`_I{`name?*#784`})] +[visit_exp (?(id') <- I.`MEMS`_I{`name?*#784`})] +[visit_exp ?(id')] +[visit_exp id'] +[visit_id id'] not free +[visit_exp I.`MEMS`_I{`name?*#784`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#784`] +[visit_id name?*#784] +[visit_exp ((at?{at <- `at?`} = ?(at')) \/ ((at?{at <- `at?`} = ?()) /\ (at' = `I32`_addrtype)))] +[visit_exp (at?{at <- `at?`} = ?(at'))] +[visit_exp at?{at <- `at?`}] +[scope_enter at] +[visit_exp at] +[visit_id at] not free +[visit_id at] not free +[scope_exit at] +[visit_exp `at?`] +[visit_id at?] not free +[visit_id at?] no dims +[visit_exp ?(at')] +[visit_exp at'] +[visit_id at'] not free +[visit_exp ((at?{at <- `at?`} = ?()) /\ (at' = `I32`_addrtype))] +[visit_exp (at?{at <- `at?`} = ?())] +[visit_exp at?{at <- `at?`}] +[scope_enter at] +[visit_exp at] +[visit_id at] not free +[visit_id at] not free +[scope_exit at] +[visit_exp `at?`] +[visit_id at?] not free +[visit_id at?] no dims +[visit_exp ?()] +[visit_exp (at' = `I32`_addrtype)] +[visit_exp at'] +[visit_id at'] not free +[visit_exp `I32`_addrtype] +[visit_exp ()] +[visit_exp ((n : nat <:> int) = $ceilz((((|b*{b <- `b*`}| : nat <:> rat) / (64 : nat <:> rat)) * ($Ki : nat <:> rat))))] +[visit_exp (n : nat <:> int)] +[visit_exp n] +[visit_id n] not free +[visit_exp $ceilz((((|b*{b <- `b*`}| : nat <:> rat) / (64 : nat <:> rat)) * ($Ki : nat <:> rat)))] +[visit_exp (((|b*{b <- `b*`}| : nat <:> rat) / (64 : nat <:> rat)) * ($Ki : nat <:> rat))] +[visit_exp ((|b*{b <- `b*`}| : nat <:> rat) / (64 : nat <:> rat))] +[visit_exp (|b*{b <- `b*`}| : nat <:> rat)] +[visit_exp |b*{b <- `b*`}|] +[visit_exp b*{b <- `b*`}] +[scope_enter b] +[visit_exp b] +[visit_id b] not free +[visit_id b] not free +[scope_exit b] +[visit_exp `b*`] +[visit_id b*] not free +[visit_id b*] no dims +[visit_exp (64 : nat <:> rat)] +[visit_exp 64] +[visit_exp ($Ki : nat <:> rat)] +[visit_exp $Ki] +[visit_id I] not free +ps' = (I : I) +[check_dims] I +[check_dims] I at at' char*#1729 char*#1747 e i#131750 i#131777 id id' n name?*#790 rt +[visit_exp ?(`%`_name{`char*#1729`}(lift(id?{id <- `id?`})))] +[visit_exp `%`_name{`char*#1729`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1729`] +[visit_id char*#1729] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] no dims +[visit_id id?] +[visit_exp at?{at <- `at?`}] +[scope_enter at] +[visit_exp at] +[visit_id at] not free +[visit_id at] not free +[scope_exit at] +[visit_exp `at?`] +[visit_id at?] no dims +[visit_id at?] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp (rt, e*{e <- `e*`})] +[visit_exp rt] +[visit_id rt] +[visit_exp e*{e <- `e*`}] +[scope_enter e] +[visit_exp e] +[visit_id e] not free +[visit_id e] not free +[scope_exit e] +[visit_exp `e*`] +[visit_id e*] no dims +[visit_id e*] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp id'] +[visit_id id'] +[visit_exp at?{at <- `at?`}] +[scope_enter at] +[visit_exp at] +[visit_id at] not free +[visit_id at] not free +[scope_exit at] +[visit_exp `at?`] +[visit_id at?] not free +[visit_id at?] no dims +[visit_exp `%`_u64{i#131750}(n)] +[visit_exp i#131750] +[visit_id i#131750] +[visit_exp (n)] +[visit_exp n] +[visit_id n] +[visit_exp `%`_u64{i#131777}(n)] +[visit_exp i#131777] +[visit_id i#131777] +[visit_exp (n)] +[visit_exp n] +[visit_id n] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp id'] +[visit_id id'] not free +[visit_exp at'] +[visit_id at'] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp ((`%`_name{`char*#1747`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I{`name?*#790`})))] +[visit_exp (`%`_name{`char*#1747`}(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name{`char*#1747`}(lift(id?{id <- `id?`}))] +[visit_exp `char*#1747`] +[visit_id char*#1747] +[visit_exp (lift(id?{id <- `id?`}))] +[visit_exp lift(id?{id <- `id?`})] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp id'] +[visit_id id'] not free +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I{`name?*#790`}))] +[visit_exp (id?{id <- `id?`} = ?())] +[visit_exp id?{id <- `id?`}] +[scope_enter id] +[visit_exp id] +[visit_id id] not free +[visit_id id] not free +[scope_exit id] +[visit_exp `id?`] +[visit_id id?] not free +[visit_id id?] no dims +[visit_exp ?()] +[visit_exp ~ (?(id') <- I.`TABLES`_I{`name?*#790`})] +[visit_exp (?(id') <- I.`TABLES`_I{`name?*#790`})] +[visit_exp ?(id')] +[visit_exp id'] +[visit_id id'] not free +[visit_exp I.`TABLES`_I{`name?*#790`}] +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_exp `name?*#790`] +[visit_id name?*#790] +[visit_exp ((at?{at <- `at?`} = ?(at')) \/ ((at?{at <- `at?`} = ?()) /\ (at' = `I32`_addrtype)))] +[visit_exp (at?{at <- `at?`} = ?(at'))] +[visit_exp at?{at <- `at?`}] +[scope_enter at] +[visit_exp at] +[visit_id at] not free +[visit_id at] not free +[scope_exit at] +[visit_exp `at?`] +[visit_id at?] not free +[visit_id at?] no dims +[visit_exp ?(at')] +[visit_exp at'] +[visit_id at'] not free +[visit_exp ((at?{at <- `at?`} = ?()) /\ (at' = `I32`_addrtype))] +[visit_exp (at?{at <- `at?`} = ?())] +[visit_exp at?{at <- `at?`}] +[scope_enter at] +[visit_exp at] +[visit_id at] not free +[visit_id at] not free +[scope_exit at] +[visit_exp `at?`] +[visit_id at?] not free +[visit_id at?] no dims +[visit_exp ?()] +[visit_exp (at' = `I32`_addrtype)] +[visit_exp at'] +[visit_id at'] not free +[visit_exp `I32`_addrtype] +[visit_exp ()] +[visit_exp (n = |e*{e <- `e*`}|)] +[visit_exp n] +[visit_id n] not free +[visit_exp |e*{e <- `e*`}|] +[visit_exp e*{e <- `e*`}] +[scope_enter e] +[visit_exp e] +[visit_id e] not free +[visit_id e] not free +[scope_exit e] +[visit_exp `e*`] +[visit_id e*] not free +[visit_id e*] no dims +[visit_id I] not free +[check_dims] +[check_dims] _ +DecD typesd(decl*) : type* +[visit_id _] not free +[check_dims] _ +DecD importsd(decl*) : import* +[visit_id _] not free +[check_dims] _ +DecD tagsd(decl*) : tag* +[visit_id _] not free +[check_dims] _ +DecD globalsd(decl*) : global* +[visit_id _] not free +[check_dims] _ +DecD memsd(decl*) : mem* +[visit_id _] not free +[check_dims] _ +DecD tablesd(decl*) : table* +[visit_id _] not free +[check_dims] _ +DecD funcsd(decl*) : func* +[visit_id _] not free +[check_dims] _ +DecD datasd(decl*) : data* +[visit_id _] not free +[check_dims] _ +DecD elemsd(decl*) : elem* +[visit_id _] not free +[check_dims] _ +DecD startsd(decl*) : start* +[visit_id _] not free +[check_dims] _ +DecD exportsd(decl*) : export* +[visit_id _] not free +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $typesd([]) = [] +[check_dims] decl' type +[visit_exp [(type : type <: decl)] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [(type : type <: decl)]] +[visit_exp (type : type <: decl)] +[visit_exp type] +[visit_id type] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp [type] ++ $typesd(decl'*{decl' <- `decl'*`})] +[visit_exp [type]] +[visit_exp type] +[visit_id type] not free +[visit_exp $typesd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $typesd{type : type, `decl'*` : decl*}([(type : type <: decl)] ++ decl'*{decl' <- `decl'*`}) = [type] ++ $typesd(decl'*{decl' <- `decl'*`}) +[check_dims] decl decl' +[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [decl]] +[visit_exp decl] +[visit_id decl] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp $typesd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $typesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $typesd(decl'*{decl' <- `decl'*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $importsd([]) = [] +[check_dims] decl' import +[visit_exp [(import : import <: decl)] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [(import : import <: decl)]] +[visit_exp (import : import <: decl)] +[visit_exp import] +[visit_id import] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp [import] ++ $importsd(decl'*{decl' <- `decl'*`})] +[visit_exp [import]] +[visit_exp import] +[visit_id import] not free +[visit_exp $importsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $importsd{import : import, `decl'*` : decl*}([(import : import <: decl)] ++ decl'*{decl' <- `decl'*`}) = [import] ++ $importsd(decl'*{decl' <- `decl'*`}) +[check_dims] decl decl' +[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [decl]] +[visit_exp decl] +[visit_id decl] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp $importsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $importsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $importsd(decl'*{decl' <- `decl'*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $tagsd([]) = [] +[check_dims] decl' tag +[visit_exp [(tag : tag <: decl)] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [(tag : tag <: decl)]] +[visit_exp (tag : tag <: decl)] +[visit_exp tag] +[visit_id tag] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp [tag] ++ $tagsd(decl'*{decl' <- `decl'*`})] +[visit_exp [tag]] +[visit_exp tag] +[visit_id tag] not free +[visit_exp $tagsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $tagsd{tag : tag, `decl'*` : decl*}([(tag : tag <: decl)] ++ decl'*{decl' <- `decl'*`}) = [tag] ++ $tagsd(decl'*{decl' <- `decl'*`}) +[check_dims] decl decl' +[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [decl]] +[visit_exp decl] +[visit_id decl] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp $tagsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $tagsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tagsd(decl'*{decl' <- `decl'*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $globalsd([]) = [] +[check_dims] decl' global +[visit_exp [(global : global <: decl)] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [(global : global <: decl)]] +[visit_exp (global : global <: decl)] +[visit_exp global] +[visit_id global] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp [global] ++ $globalsd(decl'*{decl' <- `decl'*`})] +[visit_exp [global]] +[visit_exp global] +[visit_id global] not free +[visit_exp $globalsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $globalsd{global : global, `decl'*` : decl*}([(global : global <: decl)] ++ decl'*{decl' <- `decl'*`}) = [global] ++ $globalsd(decl'*{decl' <- `decl'*`}) +[check_dims] decl decl' +[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [decl]] +[visit_exp decl] +[visit_id decl] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp $globalsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $globalsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $globalsd(decl'*{decl' <- `decl'*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $memsd([]) = [] +[check_dims] decl' mem +[visit_exp [(mem : mem <: decl)] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [(mem : mem <: decl)]] +[visit_exp (mem : mem <: decl)] +[visit_exp mem] +[visit_id mem] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp [mem] ++ $memsd(decl'*{decl' <- `decl'*`})] +[visit_exp [mem]] +[visit_exp mem] +[visit_id mem] not free +[visit_exp $memsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $memsd{mem : mem, `decl'*` : decl*}([(mem : mem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [mem] ++ $memsd(decl'*{decl' <- `decl'*`}) +[check_dims] decl decl' +[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [decl]] +[visit_exp decl] +[visit_id decl] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp $memsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $memsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $memsd(decl'*{decl' <- `decl'*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $tablesd([]) = [] +[check_dims] decl' table +[visit_exp [(table : table <: decl)] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [(table : table <: decl)]] +[visit_exp (table : table <: decl)] +[visit_exp table] +[visit_id table] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp [table] ++ $tablesd(decl'*{decl' <- `decl'*`})] +[visit_exp [table]] +[visit_exp table] +[visit_id table] not free +[visit_exp $tablesd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $tablesd{table : table, `decl'*` : decl*}([(table : table <: decl)] ++ decl'*{decl' <- `decl'*`}) = [table] ++ $tablesd(decl'*{decl' <- `decl'*`}) +[check_dims] decl decl' +[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [decl]] +[visit_exp decl] +[visit_id decl] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp $tablesd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $tablesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tablesd(decl'*{decl' <- `decl'*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $funcsd([]) = [] +[check_dims] decl' func +[visit_exp [(func : func <: decl)] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [(func : func <: decl)]] +[visit_exp (func : func <: decl)] +[visit_exp func] +[visit_id func] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp [func] ++ $funcsd(decl'*{decl' <- `decl'*`})] +[visit_exp [func]] +[visit_exp func] +[visit_id func] not free +[visit_exp $funcsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $funcsd{func : func, `decl'*` : decl*}([(func : func <: decl)] ++ decl'*{decl' <- `decl'*`}) = [func] ++ $funcsd(decl'*{decl' <- `decl'*`}) +[check_dims] decl decl' +[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [decl]] +[visit_exp decl] +[visit_id decl] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp $funcsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $funcsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $funcsd(decl'*{decl' <- `decl'*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $datasd([]) = [] +[check_dims] data decl' +[visit_exp [(data : data <: decl)] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [(data : data <: decl)]] +[visit_exp (data : data <: decl)] +[visit_exp data] +[visit_id data] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp [data] ++ $datasd(decl'*{decl' <- `decl'*`})] +[visit_exp [data]] +[visit_exp data] +[visit_id data] not free +[visit_exp $datasd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $datasd{data : data, `decl'*` : decl*}([(data : data <: decl)] ++ decl'*{decl' <- `decl'*`}) = [data] ++ $datasd(decl'*{decl' <- `decl'*`}) +[check_dims] decl decl' +[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [decl]] +[visit_exp decl] +[visit_id decl] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp $datasd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $datasd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $datasd(decl'*{decl' <- `decl'*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $elemsd([]) = [] +[check_dims] decl' elem +[visit_exp [(elem : elem <: decl)] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [(elem : elem <: decl)]] +[visit_exp (elem : elem <: decl)] +[visit_exp elem] +[visit_id elem] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp [elem] ++ $elemsd(decl'*{decl' <- `decl'*`})] +[visit_exp [elem]] +[visit_exp elem] +[visit_id elem] not free +[visit_exp $elemsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $elemsd{elem : elem, `decl'*` : decl*}([(elem : elem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [elem] ++ $elemsd(decl'*{decl' <- `decl'*`}) +[check_dims] decl decl' +[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [decl]] +[visit_exp decl] +[visit_id decl] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp $elemsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $elemsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $elemsd(decl'*{decl' <- `decl'*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $startsd([]) = [] +[check_dims] decl' start +[visit_exp [(start : start <: decl)] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [(start : start <: decl)]] +[visit_exp (start : start <: decl)] +[visit_exp start] +[visit_id start] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp [start] ++ $startsd(decl'*{decl' <- `decl'*`})] +[visit_exp [start]] +[visit_exp start] +[visit_id start] not free +[visit_exp $startsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $startsd{start : start, `decl'*` : decl*}([(start : start <: decl)] ++ decl'*{decl' <- `decl'*`}) = [start] ++ $startsd(decl'*{decl' <- `decl'*`}) +[check_dims] decl decl' +[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [decl]] +[visit_exp decl] +[visit_id decl] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp $startsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $startsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $startsd(decl'*{decl' <- `decl'*`}) + -- otherwise +[check_dims] +[visit_exp []] +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $exportsd([]) = [] +[check_dims] decl' export +[visit_exp [(export : export <: decl)] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [(export : export <: decl)]] +[visit_exp (export : export <: decl)] +[visit_exp export] +[visit_id export] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp [export] ++ $exportsd(decl'*{decl' <- `decl'*`})] +[visit_exp [export]] +[visit_exp export] +[visit_id export] not free +[visit_exp $exportsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $exportsd{export : export, `decl'*` : decl*}([(export : export <: decl)] ++ decl'*{decl' <- `decl'*`}) = [export] ++ $exportsd(decl'*{decl' <- `decl'*`}) +[check_dims] decl decl' +[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] +[visit_exp [decl]] +[visit_exp decl] +[visit_id decl] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp $exportsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $exportsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $exportsd(decl'*{decl' <- `decl'*`}) + -- otherwise +[check_dims] _ +DecD ordered(decl*) : bool +[visit_id _] not free +[check_dims] decl' +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] no dims +[visit_id decl'*] +[visit_exp true] +[visit_exp ($importsd(decl'*{decl' <- `decl'*`}) = [])] +[visit_exp $importsd(decl'*{decl' <- `decl'*`})] +[visit_exp decl'*{decl' <- `decl'*`}] +[scope_enter decl'] +[visit_exp decl'] +[visit_id decl'] not free +[visit_id decl'] not free +[scope_exit decl'] +[visit_exp `decl'*`] +[visit_id decl'*] not free +[visit_id decl'*] no dims +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $ordered{`decl'*` : decl*}(decl'*{decl' <- `decl'*`}) = true + -- if ($importsd(decl'*{decl' <- `decl'*`}) = []) +[check_dims] decl_1 decl_2 import +[visit_exp decl_1*{decl_1 <- `decl_1*`} ++ [(import : import <: decl)] ++ decl_2*{decl_2 <- `decl_2*`}] +[visit_exp decl_1*{decl_1 <- `decl_1*`}] +[scope_enter decl_1] +[visit_exp decl_1] +[visit_id decl_1] not free +[visit_id decl_1] not free +[scope_exit decl_1] +[visit_exp `decl_1*`] +[visit_id decl_1*] no dims +[visit_id decl_1*] +[visit_exp [(import : import <: decl)] ++ decl_2*{decl_2 <- `decl_2*`}] +[visit_exp [(import : import <: decl)]] +[visit_exp (import : import <: decl)] +[visit_exp import] +[visit_id import] +[visit_exp decl_2*{decl_2 <- `decl_2*`}] +[scope_enter decl_2] +[visit_exp decl_2] +[visit_id decl_2] not free +[visit_id decl_2] not free +[scope_exit decl_2] +[visit_exp `decl_2*`] +[visit_id decl_2*] no dims +[visit_id decl_2*] +[visit_exp (((((($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($memsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($tablesd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($funcsd(decl_1*{decl_1 <- `decl_1*`}) = []))] +[visit_exp ((((($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($memsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($tablesd(decl_1*{decl_1 <- `decl_1*`}) = []))] +[visit_exp (((($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($memsd(decl_1*{decl_1 <- `decl_1*`}) = []))] +[visit_exp ((($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = []))] +[visit_exp (($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = []))] +[visit_exp ($importsd(decl_1*{decl_1 <- `decl_1*`}) = [])] +[visit_exp $importsd(decl_1*{decl_1 <- `decl_1*`})] +[visit_exp decl_1*{decl_1 <- `decl_1*`}] +[scope_enter decl_1] +[visit_exp decl_1] +[visit_id decl_1] not free +[visit_id decl_1] not free +[scope_exit decl_1] +[visit_exp `decl_1*`] +[visit_id decl_1*] not free +[visit_id decl_1*] no dims +[visit_exp []] +[visit_exp ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])] +[visit_exp $tagsd(decl_1*{decl_1 <- `decl_1*`})] +[visit_exp decl_1*{decl_1 <- `decl_1*`}] +[scope_enter decl_1] +[visit_exp decl_1] +[visit_id decl_1] not free +[visit_id decl_1] not free +[scope_exit decl_1] +[visit_exp `decl_1*`] +[visit_id decl_1*] not free +[visit_id decl_1*] no dims +[visit_exp []] +[visit_exp ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = [])] +[visit_exp $globalsd(decl_1*{decl_1 <- `decl_1*`})] +[visit_exp decl_1*{decl_1 <- `decl_1*`}] +[scope_enter decl_1] +[visit_exp decl_1] +[visit_id decl_1] not free +[visit_id decl_1] not free +[scope_exit decl_1] +[visit_exp `decl_1*`] +[visit_id decl_1*] not free +[visit_id decl_1*] no dims +[visit_exp []] +[visit_exp ($memsd(decl_1*{decl_1 <- `decl_1*`}) = [])] +[visit_exp $memsd(decl_1*{decl_1 <- `decl_1*`})] +[visit_exp decl_1*{decl_1 <- `decl_1*`}] +[scope_enter decl_1] +[visit_exp decl_1] +[visit_id decl_1] not free +[visit_id decl_1] not free +[scope_exit decl_1] +[visit_exp `decl_1*`] +[visit_id decl_1*] not free +[visit_id decl_1*] no dims +[visit_exp []] +[visit_exp ($tablesd(decl_1*{decl_1 <- `decl_1*`}) = [])] +[visit_exp $tablesd(decl_1*{decl_1 <- `decl_1*`})] +[visit_exp decl_1*{decl_1 <- `decl_1*`}] +[scope_enter decl_1] +[visit_exp decl_1] +[visit_id decl_1] not free +[visit_id decl_1] not free +[scope_exit decl_1] +[visit_exp `decl_1*`] +[visit_id decl_1*] not free +[visit_id decl_1*] no dims +[visit_exp []] +[visit_exp ($funcsd(decl_1*{decl_1 <- `decl_1*`}) = [])] +[visit_exp $funcsd(decl_1*{decl_1 <- `decl_1*`})] +[visit_exp decl_1*{decl_1 <- `decl_1*`}] +[scope_enter decl_1] +[visit_exp decl_1] +[visit_id decl_1] not free +[visit_id decl_1] not free +[scope_exit decl_1] +[visit_exp `decl_1*`] +[visit_id decl_1*] not free +[visit_id decl_1*] no dims +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + def $ordered{`decl_1*` : decl*, import : import, `decl_2*` : decl*}(decl_1*{decl_1 <- `decl_1*`} ++ [(import : import <: decl)] ++ decl_2*{decl_2 <- `decl_2*`}) = (((((($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($memsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($tablesd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($funcsd(decl_1*{decl_1 <- `decl_1*`}) = [])) +ps' = (I : I) +[check_dims] I _ +[check_dims] I _ +dims \ I = , _ +[visit_exp (`` : (type, idctxt) <: (decl, idctxt))] +[visit_exp ``] +[visit_id ] +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I _ +dims \ I = , _ +[visit_exp (`` : (import, idctxt) <: (decl, idctxt))] +[visit_exp ``] +[visit_id ] +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I _ +dims \ I = , _ +[visit_exp (`` : (tag, idctxt) <: (decl, idctxt))] +[visit_exp ``] +[visit_id ] +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I _ +dims \ I = , _ +[visit_exp (`` : (global, idctxt) <: (decl, idctxt))] +[visit_exp ``] +[visit_id ] +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I _ +dims \ I = , _ +[visit_exp (`` : (mem, idctxt) <: (decl, idctxt))] +[visit_exp ``] +[visit_id ] +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I _ +dims \ I = , _ +[visit_exp (`` : (table, idctxt) <: (decl, idctxt))] +[visit_exp ``] +[visit_id ] +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I _ +dims \ I = , _ +[visit_exp (`` : (func, idctxt) <: (decl, idctxt))] +[visit_exp ``] +[visit_id ] +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I _ +dims \ I = , _ +[visit_exp (`` : (data, idctxt) <: (decl, idctxt))] +[visit_exp ``] +[visit_id ] +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I _ +dims \ I = , _ +[visit_exp (`` : (elem, idctxt) <: (decl, idctxt))] +[visit_exp ``] +[visit_id ] +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I _ +dims \ I = , _ +[visit_exp (`` : (start, idctxt) <: (decl, idctxt))] +[visit_exp ``] +[visit_id ] +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[check_dims] I _ +dims \ I = , _ +[visit_exp (`` : (export, idctxt) <: (decl, idctxt))] +[visit_exp ``] +[visit_id ] +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +ps' = +[check_dims] +[check_dims] I I' data data*#155 decl elem elem*#179 export export*#155 func func*#155 global global*#179 import import*#155 mem mem*#179 start start?#155 table table*#179 tag tag*#155 type type*#155 +dims \ = I, I', data, data*#155, decl, elem, elem*#179, export, export*#155, func, func*#155, global, global*#179, import, import*#155, mem, mem*#179, start, start?#155, table, table*#179, tag, tag*#155, type, type*#155 +[visit_exp `MODULE`_module{`type*#155`, `import*#155`, `tag*#155`, `global*#179`, `mem*#179`, `table*#179`, `func*#155`, `data*#155`, `elem*#179`, `start?#155`, `export*#155`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] +[visit_exp `type*#155`] +[visit_id type*#155] +[visit_exp `import*#155`] +[visit_id import*#155] +[visit_exp `tag*#155`] +[visit_id tag*#155] +[visit_exp `global*#179`] +[visit_id global*#179] +[visit_exp `mem*#179`] +[visit_id mem*#179] +[visit_exp `table*#179`] +[visit_id table*#179] +[visit_exp `func*#155`] +[visit_id func*#155] +[visit_exp `data*#155`] +[visit_id data*#155] +[visit_exp `elem*#179`] +[visit_id elem*#179] +[visit_exp `start?#155`] +[visit_id start?#155] +[visit_exp `export*#155`] +[visit_id export*#155] +[visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] +[visit_exp type*{type <- `type*`}] +[scope_enter type] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] no dims +[visit_id type*] +[visit_exp import*{import <- `import*`}] +[scope_enter import] +[visit_exp import] +[visit_id import] not free +[visit_id import] not free +[scope_exit import] +[visit_exp `import*`] +[visit_id import*] no dims +[visit_id import*] +[visit_exp tag*{tag <- `tag*`}] +[scope_enter tag] +[visit_exp tag] +[visit_id tag] not free +[visit_id tag] not free +[scope_exit tag] +[visit_exp `tag*`] +[visit_id tag*] no dims +[visit_id tag*] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] no dims +[visit_id global*] +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] no dims +[visit_id mem*] +[visit_exp table*{table <- `table*`}] +[scope_enter table] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] no dims +[visit_id table*] +[visit_exp func*{func <- `func*`}] +[scope_enter func] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] no dims +[visit_id func*] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] no dims +[visit_id data*] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] no dims +[visit_id elem*] +[visit_exp start?{start <- `start?`}] +[scope_enter start] +[visit_exp start] +[visit_id start] not free +[visit_id start] not free +[scope_exit start] +[visit_exp `start?`] +[visit_id start?] no dims +[visit_id start?] +[visit_exp export*{export <- `export*`}] +[scope_enter export] +[visit_exp export] +[visit_id export] not free +[visit_id export] not free +[scope_exit export] +[visit_exp `export*`] +[visit_id export*] no dims +[visit_id export*] +[visit_exp (decl, I)*{I <- `I*`, decl <- `decl*`}] +[scope_enter I] +[scope_enter decl] +[visit_exp (decl, I)] +[visit_exp decl] +[visit_id decl] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] not free +[visit_id decl] not free +[scope_exit decl] +[scope_exit I] +[visit_exp `I*`] +[visit_id I*] no dims +[visit_id I*] +[visit_exp `decl*`] +[visit_id decl*] no dims +[visit_id decl*] +[visit_exp I'] +[visit_id I'] +[visit_exp (I' = $concat_idctxt(I*{I <- `I*`}))] +[visit_exp I'] +[visit_id I'] not free +[visit_exp $concat_idctxt(I*{I <- `I*`})] +[visit_exp I*{I <- `I*`}] +[scope_enter I] +[visit_exp I] +[visit_id I] not free +[visit_id I] not free +[scope_exit I] +[visit_exp `I*`] +[visit_id I*] not free +[visit_id I*] no dims +[visit_exp I'] +[visit_id I'] not free +[visit_exp (type*{type <- `type*`} = $typesd(decl*{decl <- `decl*`}))] +[visit_exp type*{type <- `type*`}] +[scope_enter type] +[visit_exp type] +[visit_id type] not free +[visit_id type] not free +[scope_exit type] +[visit_exp `type*`] +[visit_id type*] not free +[visit_id type*] no dims +[visit_exp $typesd(decl*{decl <- `decl*`})] +[visit_exp decl*{decl <- `decl*`}] +[scope_enter decl] +[visit_exp decl] +[visit_id decl] not free +[visit_id decl] not free +[scope_exit decl] +[visit_exp `decl*`] +[visit_id decl*] not free +[visit_id decl*] no dims +[visit_exp (import*{import <- `import*`} = $importsd(decl*{decl <- `decl*`}))] +[visit_exp import*{import <- `import*`}] +[scope_enter import] +[visit_exp import] +[visit_id import] not free +[visit_id import] not free +[scope_exit import] +[visit_exp `import*`] +[visit_id import*] not free +[visit_id import*] no dims +[visit_exp $importsd(decl*{decl <- `decl*`})] +[visit_exp decl*{decl <- `decl*`}] +[scope_enter decl] +[visit_exp decl] +[visit_id decl] not free +[visit_id decl] not free +[scope_exit decl] +[visit_exp `decl*`] +[visit_id decl*] not free +[visit_id decl*] no dims +[visit_exp (tag*{tag <- `tag*`} = $tagsd(decl*{decl <- `decl*`}))] +[visit_exp tag*{tag <- `tag*`}] +[scope_enter tag] +[visit_exp tag] +[visit_id tag] not free +[visit_id tag] not free +[scope_exit tag] +[visit_exp `tag*`] +[visit_id tag*] not free +[visit_id tag*] no dims +[visit_exp $tagsd(decl*{decl <- `decl*`})] +[visit_exp decl*{decl <- `decl*`}] +[scope_enter decl] +[visit_exp decl] +[visit_id decl] not free +[visit_id decl] not free +[scope_exit decl] +[visit_exp `decl*`] +[visit_id decl*] not free +[visit_id decl*] no dims +[visit_exp (global*{global <- `global*`} = $globalsd(decl*{decl <- `decl*`}))] +[visit_exp global*{global <- `global*`}] +[scope_enter global] +[visit_exp global] +[visit_id global] not free +[visit_id global] not free +[scope_exit global] +[visit_exp `global*`] +[visit_id global*] not free +[visit_id global*] no dims +[visit_exp $globalsd(decl*{decl <- `decl*`})] +[visit_exp decl*{decl <- `decl*`}] +[scope_enter decl] +[visit_exp decl] +[visit_id decl] not free +[visit_id decl] not free +[scope_exit decl] +[visit_exp `decl*`] +[visit_id decl*] not free +[visit_id decl*] no dims +[visit_exp (mem*{mem <- `mem*`} = $memsd(decl*{decl <- `decl*`}))] +[visit_exp mem*{mem <- `mem*`}] +[scope_enter mem] +[visit_exp mem] +[visit_id mem] not free +[visit_id mem] not free +[scope_exit mem] +[visit_exp `mem*`] +[visit_id mem*] not free +[visit_id mem*] no dims +[visit_exp $memsd(decl*{decl <- `decl*`})] +[visit_exp decl*{decl <- `decl*`}] +[scope_enter decl] +[visit_exp decl] +[visit_id decl] not free +[visit_id decl] not free +[scope_exit decl] +[visit_exp `decl*`] +[visit_id decl*] not free +[visit_id decl*] no dims +[visit_exp (table*{table <- `table*`} = $tablesd(decl*{decl <- `decl*`}))] +[visit_exp table*{table <- `table*`}] +[scope_enter table] +[visit_exp table] +[visit_id table] not free +[visit_id table] not free +[scope_exit table] +[visit_exp `table*`] +[visit_id table*] not free +[visit_id table*] no dims +[visit_exp $tablesd(decl*{decl <- `decl*`})] +[visit_exp decl*{decl <- `decl*`}] +[scope_enter decl] +[visit_exp decl] +[visit_id decl] not free +[visit_id decl] not free +[scope_exit decl] +[visit_exp `decl*`] +[visit_id decl*] not free +[visit_id decl*] no dims +[visit_exp (func*{func <- `func*`} = $funcsd(decl*{decl <- `decl*`}))] +[visit_exp func*{func <- `func*`}] +[scope_enter func] +[visit_exp func] +[visit_id func] not free +[visit_id func] not free +[scope_exit func] +[visit_exp `func*`] +[visit_id func*] not free +[visit_id func*] no dims +[visit_exp $funcsd(decl*{decl <- `decl*`})] +[visit_exp decl*{decl <- `decl*`}] +[scope_enter decl] +[visit_exp decl] +[visit_id decl] not free +[visit_id decl] not free +[scope_exit decl] +[visit_exp `decl*`] +[visit_id decl*] not free +[visit_id decl*] no dims +[visit_exp (data*{data <- `data*`} = $datasd(decl*{decl <- `decl*`}))] +[visit_exp data*{data <- `data*`}] +[scope_enter data] +[visit_exp data] +[visit_id data] not free +[visit_id data] not free +[scope_exit data] +[visit_exp `data*`] +[visit_id data*] not free +[visit_id data*] no dims +[visit_exp $datasd(decl*{decl <- `decl*`})] +[visit_exp decl*{decl <- `decl*`}] +[scope_enter decl] +[visit_exp decl] +[visit_id decl] not free +[visit_id decl] not free +[scope_exit decl] +[visit_exp `decl*`] +[visit_id decl*] not free +[visit_id decl*] no dims +[visit_exp (elem*{elem <- `elem*`} = $elemsd(decl*{decl <- `decl*`}))] +[visit_exp elem*{elem <- `elem*`}] +[scope_enter elem] +[visit_exp elem] +[visit_id elem] not free +[visit_id elem] not free +[scope_exit elem] +[visit_exp `elem*`] +[visit_id elem*] not free +[visit_id elem*] no dims +[visit_exp $elemsd(decl*{decl <- `decl*`})] +[visit_exp decl*{decl <- `decl*`}] +[scope_enter decl] +[visit_exp decl] +[visit_id decl] not free +[visit_id decl] not free +[scope_exit decl] +[visit_exp `decl*`] +[visit_id decl*] not free +[visit_id decl*] no dims +[visit_exp (lift(start?{start <- `start?`}) = $startsd(decl*{decl <- `decl*`}))] +[visit_exp lift(start?{start <- `start?`})] +[visit_exp start?{start <- `start?`}] +[scope_enter start] +[visit_exp start] +[visit_id start] not free +[visit_id start] not free +[scope_exit start] +[visit_exp `start?`] +[visit_id start?] not free +[visit_id start?] no dims +[visit_exp $startsd(decl*{decl <- `decl*`})] +[visit_exp decl*{decl <- `decl*`}] +[scope_enter decl] +[visit_exp decl] +[visit_id decl] not free +[visit_id decl] not free +[scope_exit decl] +[visit_exp `decl*`] +[visit_id decl*] not free +[visit_id decl*] no dims +[visit_exp (export*{export <- `export*`} = $exportsd(decl*{decl <- `decl*`}))] +[visit_exp export*{export <- `export*`}] +[scope_enter export] +[visit_exp export] +[visit_id export] not free +[visit_id export] not free +[scope_exit export] +[visit_exp `export*`] +[visit_id export*] not free +[visit_id export*] no dims +[visit_exp $exportsd(decl*{decl <- `decl*`})] +[visit_exp decl*{decl <- `decl*`}] +[scope_enter decl] +[visit_exp decl] +[visit_id decl] not free +[visit_id decl] not free +[scope_exit decl] +[visit_exp `decl*`] +[visit_id decl*] not free +[visit_id decl*] no dims +[visit_exp $ordered(decl*{decl <- `decl*`})] +[visit_exp decl*{decl <- `decl*`}] +[scope_enter decl] +[visit_exp decl] +[visit_id decl] not free +[visit_id decl] not free +[scope_exit decl] +[visit_exp `decl*`] +[visit_id decl*] not free +[visit_id decl*] no dims +ps' = +[check_dims] +[check_dims] I +[scope_enter I] +[visit_exp I] +[visit_id I] not free +[visit_id I] not free +[scope_exit I] +[visit_exp `I*`] +[visit_id I*] no dims +[visit_id I*] +[scope_enter I] +[visit_exp I] +[visit_id I] not free +[visit_id I] not free +[scope_exit I] +[visit_exp `I*`] +[visit_id I*] not free +[visit_id I*] no dims +ps' = (I : I) +[check_dims] I _ +[check_dims] I +dims \ I = +[visit_exp [``]] +[visit_exp ``] +[visit_id ] +[visit_exp [``]] +[visit_exp ``] +[visit_id ] not free +[visit_exp I] +[visit_id I] not free +[visit_id I] no dims +[visit_id I] not free +[visit_id _] not free +[visit_id _] no dims +[visit_id _] not free +[visit_id _] no dims +[check_dims] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id A_1] no dims +[visit_id A_1] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id A_n] no dims +[visit_id A_n] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id A_1] no dims +[visit_id A_1] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id A_2] no dims +[visit_id A_2] +[check_dims] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id A_1] no dims +[visit_id A_1] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id A_2] no dims +[visit_id A_2] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id recorddots] no dims +[visit_id recorddots] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[check_dims] conclusion premise_1 premise_2 premise_n +[visit_exp conclusion] +[visit_id conclusion] +[visit_exp premise_1] +[visit_id premise_1] +[visit_exp premise_2] +[visit_id premise_2] +[visit_exp ()] +[visit_exp premise_n] +[visit_id premise_n] +[check_dims] +[check_dims] C X*#13813 X*#13862 localidx*#1817 numtype#1105 resulttype#3064 +[visit_exp C] +[visit_id C] +[visit_exp [`BINOP`_instr{numtype#1105}(`I32`_numtype, `ADD`_binop_)]] +[visit_exp `BINOP`_instr{numtype#1105}(`I32`_numtype, `ADD`_binop_)] +[visit_exp numtype#1105] +[visit_id numtype#1105] +[visit_exp (`I32`_numtype, `ADD`_binop_)] +[visit_exp `I32`_numtype] +[visit_exp ()] +[visit_exp `ADD`_binop_] +[visit_exp ()] +[visit_exp `%->_%%`_instrtype{resulttype#3064, `localidx*#1817`}(`%`_resulttype{`X*#13813`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#13862`}([`I32`_valtype]))] +[visit_exp resulttype#3064] +[visit_id resulttype#3064] +[visit_exp `localidx*#1817`] +[visit_id localidx*#1817] +[visit_exp (`%`_resulttype{`X*#13813`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#13862`}([`I32`_valtype]))] +[visit_exp `%`_resulttype{`X*#13813`}([`I32`_valtype `I32`_valtype])] +[visit_exp `X*#13813`] +[visit_id X*#13813] +[visit_exp ([`I32`_valtype `I32`_valtype])] +[visit_exp [`I32`_valtype `I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp `I32`_valtype] +[visit_exp ()] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#13862`}([`I32`_valtype])] +[visit_exp `X*#13862`] +[visit_id X*#13862] +[visit_exp ([`I32`_valtype])] +[visit_exp [`I32`_valtype]] +[visit_exp `I32`_valtype] +[visit_exp ()] +[check_dims] C X*#13883 X*#13932 globalidx#35 globaltype*#27 i#131877 localidx*#1829 mut mut?#1609 resulttype#3084 t valtype#1343 x +[visit_exp C] +[visit_id C] +[visit_exp [`GLOBAL.GET`_instr{globalidx#35}(x)]] +[visit_exp `GLOBAL.GET`_instr{globalidx#35}(x)] +[visit_exp globalidx#35] +[visit_id globalidx#35] +[visit_exp (x)] +[visit_exp x] +[visit_id x] +[visit_exp `%->_%%`_instrtype{resulttype#3084, `localidx*#1829`}(`%`_resulttype{`X*#13883`}([]), [], `%`_resulttype{`X*#13932`}([t]))] +[visit_exp resulttype#3084] +[visit_id resulttype#3084] +[visit_exp `localidx*#1829`] +[visit_id localidx*#1829] +[visit_exp (`%`_resulttype{`X*#13883`}([]), [], `%`_resulttype{`X*#13932`}([t]))] +[visit_exp `%`_resulttype{`X*#13883`}([])] +[visit_exp `X*#13883`] +[visit_id X*#13883] +[visit_exp ([])] +[visit_exp []] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#13932`}([t])] +[visit_exp `X*#13932`] +[visit_id X*#13932] +[visit_exp ([t])] +[visit_exp [t]] +[visit_exp t] +[visit_id t] +[visit_exp (C.`GLOBALS`_context{`globaltype*#27`}[x!`%`_idx{i#131877}.0] = `%%`_globaltype{`mut?#1609`, valtype#1343}(?(mut), t))] +[visit_exp C.`GLOBALS`_context{`globaltype*#27`}[x!`%`_idx{i#131877}.0]] +[visit_exp C.`GLOBALS`_context{`globaltype*#27`}] +[visit_exp C] +[visit_id C] not free +[visit_exp `globaltype*#27`] +[visit_id globaltype*#27] +[visit_exp x!`%`_idx{i#131877}.0] +[visit_exp x!`%`_idx{i#131877}] +[visit_exp x] +[visit_id x] not free +[visit_exp i#131877] +[visit_id i#131877] +[visit_exp `%%`_globaltype{`mut?#1609`, valtype#1343}(?(mut), t)] +[visit_exp `mut?#1609`] +[visit_id mut?#1609] +[visit_exp valtype#1343] +[visit_id valtype#1343] +[visit_exp (?(mut), t)] +[visit_exp ?(mut)] +[visit_exp mut] +[visit_id mut] +[visit_exp t] +[visit_id t] not free +[check_dims] C X*#13943 X*#13994 X*#14005 X*#14056 X*#14067 X*#14080 X*#14131 blocktype blocktype#49 datatype*#26 deftype*#98 deftype*#99 elemtype*#26 funcidx*#63 globaltype*#28 instr instr*#2369 localidx*#1841 localidx*#1853 localidx*#1865 localtype*#29 memtype*#41 resulttype#3104 resulttype#3124 resulttype#3144 resulttype*#37 resulttype?#34 subtype*#25 t_1 t_2 tabletype*#34 tagtype*#26 +[visit_exp C] +[visit_id C] +[visit_exp [`BLOCK`_instr{blocktype#49, `instr*#2369`}(blocktype, instr*{instr <- `instr*`})]] +[visit_exp `BLOCK`_instr{blocktype#49, `instr*#2369`}(blocktype, instr*{instr <- `instr*`})] +[visit_exp blocktype#49] +[visit_id blocktype#49] +[visit_exp `instr*#2369`] +[visit_id instr*#2369] +[visit_exp (blocktype, instr*{instr <- `instr*`})] +[visit_exp blocktype] +[visit_id blocktype] +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] no dims +[visit_id instr*] +[visit_exp `%->_%%`_instrtype{resulttype#3104, `localidx*#1841`}(`%`_resulttype{`X*#13943`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#13994`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#3104] +[visit_id resulttype#3104] +[visit_exp `localidx*#1841`] +[visit_id localidx*#1841] +[visit_exp (`%`_resulttype{`X*#13943`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#13994`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#13943`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#13943`] +[visit_id X*#13943] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] no dims +[visit_id t_1*] +[visit_exp []] +[visit_exp `%`_resulttype{`X*#13994`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#13994`] +[visit_id X*#13994] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] no dims +[visit_id t_2*] +[visit_exp (C, blocktype, `%->_%%`_instrtype{resulttype#3124, `localidx*#1853`}(`%`_resulttype{`X*#14005`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14056`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp C] +[visit_id C] not free +[visit_exp blocktype] +[visit_id blocktype] not free +[visit_exp `%->_%%`_instrtype{resulttype#3124, `localidx*#1853`}(`%`_resulttype{`X*#14005`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14056`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#3124] +[visit_id resulttype#3124] +[visit_exp `localidx*#1853`] +[visit_id localidx*#1853] +[visit_exp (`%`_resulttype{`X*#14005`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14056`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#14005`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#14005`] +[visit_id X*#14005] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#14056`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#14056`] +[visit_id X*#14056] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp ({`TYPES`{`deftype*#98`} [], `RECS`{`subtype*#25`} [], `TAGS`{`tagtype*#26`} [], `GLOBALS`{`globaltype*#28`} [], `MEMS`{`memtype*#41`} [], `TABLES`{`tabletype*#34`} [], `FUNCS`{`deftype*#99`} [], `DATAS`{`datatype*#26`} [], `ELEMS`{`elemtype*#26`} [], `LOCALS`{`localtype*#29`} [], `LABELS`{`resulttype*#37`} [`%`_resulttype{`X*#14067`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#34`} ?(), `REFS`{`funcidx*#63`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#3144, `localidx*#1865`}(`%`_resulttype{`X*#14080`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14131`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp {`TYPES`{`deftype*#98`} [], `RECS`{`subtype*#25`} [], `TAGS`{`tagtype*#26`} [], `GLOBALS`{`globaltype*#28`} [], `MEMS`{`memtype*#41`} [], `TABLES`{`tabletype*#34`} [], `FUNCS`{`deftype*#99`} [], `DATAS`{`datatype*#26`} [], `ELEMS`{`elemtype*#26`} [], `LOCALS`{`localtype*#29`} [], `LABELS`{`resulttype*#37`} [`%`_resulttype{`X*#14067`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#34`} ?(), `REFS`{`funcidx*#63`} []} +++ C] +[visit_exp {`TYPES`{`deftype*#98`} [], `RECS`{`subtype*#25`} [], `TAGS`{`tagtype*#26`} [], `GLOBALS`{`globaltype*#28`} [], `MEMS`{`memtype*#41`} [], `TABLES`{`tabletype*#34`} [], `FUNCS`{`deftype*#99`} [], `DATAS`{`datatype*#26`} [], `ELEMS`{`elemtype*#26`} [], `LOCALS`{`localtype*#29`} [], `LABELS`{`resulttype*#37`} [`%`_resulttype{`X*#14067`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#34`} ?(), `REFS`{`funcidx*#63`} []}] +[visit_exp `deftype*#98`] +[visit_id deftype*#98] +[visit_exp []] +[visit_exp `subtype*#25`] +[visit_id subtype*#25] +[visit_exp []] +[visit_exp `tagtype*#26`] +[visit_id tagtype*#26] +[visit_exp []] +[visit_exp `globaltype*#28`] +[visit_id globaltype*#28] +[visit_exp []] +[visit_exp `memtype*#41`] +[visit_id memtype*#41] +[visit_exp []] +[visit_exp `tabletype*#34`] +[visit_id tabletype*#34] +[visit_exp []] +[visit_exp `deftype*#99`] +[visit_id deftype*#99] +[visit_exp []] +[visit_exp `datatype*#26`] +[visit_id datatype*#26] +[visit_exp []] +[visit_exp `elemtype*#26`] +[visit_id elemtype*#26] +[visit_exp []] +[visit_exp `localtype*#29`] +[visit_id localtype*#29] +[visit_exp []] +[visit_exp `resulttype*#37`] +[visit_id resulttype*#37] +[visit_exp [`%`_resulttype{`X*#14067`}(t_2*{t_2 <- `t_2*`})]] +[visit_exp `%`_resulttype{`X*#14067`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#14067`] +[visit_id X*#14067] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[visit_exp `resulttype?#34`] +[visit_id resulttype?#34] +[visit_exp ?()] +[visit_exp `funcidx*#63`] +[visit_id funcidx*#63] +[visit_exp []] +[visit_exp C] +[visit_id C] not free +[visit_exp instr*{instr <- `instr*`}] +[scope_enter instr] +[visit_exp instr] +[visit_id instr] not free +[visit_id instr] not free +[scope_exit instr] +[visit_exp `instr*`] +[visit_id instr*] not free +[visit_id instr*] no dims +[visit_exp `%->_%%`_instrtype{resulttype#3144, `localidx*#1865`}(`%`_resulttype{`X*#14080`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14131`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp resulttype#3144] +[visit_id resulttype#3144] +[visit_exp `localidx*#1865`] +[visit_id localidx*#1865] +[visit_exp (`%`_resulttype{`X*#14080`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14131`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype{`X*#14080`}(t_1*{t_1 <- `t_1*`})] +[visit_exp `X*#14080`] +[visit_id X*#14080] +[visit_exp (t_1*{t_1 <- `t_1*`})] +[visit_exp t_1*{t_1 <- `t_1*`}] +[scope_enter t_1] +[visit_exp t_1] +[visit_id t_1] not free +[visit_id t_1] not free +[scope_exit t_1] +[visit_exp `t_1*`] +[visit_id t_1*] not free +[visit_id t_1*] no dims +[visit_exp []] +[visit_exp `%`_resulttype{`X*#14131`}(t_2*{t_2 <- `t_2*`})] +[visit_exp `X*#14131`] +[visit_id X*#14131] +[visit_exp (t_2*{t_2 <- `t_2*`})] +[visit_exp t_2*{t_2 <- `t_2*`}] +[scope_enter t_2] +[visit_exp t_2] +[visit_id t_2] not free +[visit_id t_2] not free +[scope_exit t_2] +[visit_exp `t_2*`] +[visit_id t_2*] not free +[visit_id t_2*] no dims +[check_dims] +[check_dims] numtype#1107 numtype#1109 numtype#1111 numtype#1113 numtype#1115 q_1 q_3 q_4 +[visit_exp [`CONST`_instr{numtype#1107}(`F64`_numtype, q_1) `CONST`_instr{numtype#1109}(`F64`_numtype, q_4) `CONST`_instr{numtype#1111}(`F64`_numtype, q_3) `BINOP`_instr{numtype#1113}(`F64`_numtype, `ADD`_binop_) `BINOP`_instr{numtype#1115}(`F64`_numtype, `MUL`_binop_)]] +[visit_exp `CONST`_instr{numtype#1107}(`F64`_numtype, q_1)] +[visit_exp numtype#1107] +[visit_id numtype#1107] +[visit_exp (`F64`_numtype, q_1)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp q_1] +[visit_id q_1] +[visit_exp `CONST`_instr{numtype#1109}(`F64`_numtype, q_4)] +[visit_exp numtype#1109] +[visit_id numtype#1109] +[visit_exp (`F64`_numtype, q_4)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp q_4] +[visit_id q_4] +[visit_exp `CONST`_instr{numtype#1111}(`F64`_numtype, q_3)] +[visit_exp numtype#1111] +[visit_id numtype#1111] +[visit_exp (`F64`_numtype, q_3)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp q_3] +[visit_id q_3] +[visit_exp `BINOP`_instr{numtype#1113}(`F64`_numtype, `ADD`_binop_)] +[visit_exp numtype#1113] +[visit_id numtype#1113] +[visit_exp (`F64`_numtype, `ADD`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `ADD`_binop_] +[visit_exp ()] +[visit_exp `BINOP`_instr{numtype#1115}(`F64`_numtype, `MUL`_binop_)] +[visit_exp numtype#1115] +[visit_id numtype#1115] +[visit_exp (`F64`_numtype, `MUL`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `MUL`_binop_] +[visit_exp ()] +[check_dims] numtype#1117 numtype#1119 numtype#1121 q_1 q_5 +[visit_exp [`CONST`_instr{numtype#1117}(`F64`_numtype, q_1) `CONST`_instr{numtype#1119}(`F64`_numtype, q_5) `BINOP`_instr{numtype#1121}(`F64`_numtype, `MUL`_binop_)]] +[visit_exp `CONST`_instr{numtype#1117}(`F64`_numtype, q_1)] +[visit_exp numtype#1117] +[visit_id numtype#1117] +[visit_exp (`F64`_numtype, q_1)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp q_1] +[visit_id q_1] +[visit_exp `CONST`_instr{numtype#1119}(`F64`_numtype, q_5)] +[visit_exp numtype#1119] +[visit_id numtype#1119] +[visit_exp (`F64`_numtype, q_5)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp q_5] +[visit_id q_5] +[visit_exp `BINOP`_instr{numtype#1121}(`F64`_numtype, `MUL`_binop_)] +[visit_exp numtype#1121] +[visit_id numtype#1121] +[visit_exp (`F64`_numtype, `MUL`_binop_)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp `MUL`_binop_] +[visit_exp ()] +[check_dims] numtype#1123 q_6 +[visit_exp [`CONST`_instr{numtype#1123}(`F64`_numtype, q_6)]] +[visit_exp `CONST`_instr{numtype#1123}(`F64`_numtype, q_6)] +[visit_exp numtype#1123] +[visit_id numtype#1123] +[visit_exp (`F64`_numtype, q_6)] +[visit_exp `F64`_numtype] +[visit_exp ()] +[visit_exp q_6] +[visit_id q_6] +[check_dims] +DecD instrdots : instr* +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id n] no dims +[visit_id n] +[visit_id instr*] no dims +[visit_id instr*] +[check_dims] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[visit_id n] no dims +[visit_id n] +[visit_id frame] no dims +[visit_id frame] +[check_dims] +[check_dims] X Y _ store +DecD allocX(syntax X, syntax Y, store : store, X : X, Y : Y) : (store, addr) +[visit_id store] not free +[visit_id X] not free +[visit_id Y] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] X Y _ store +DecD allocXs(syntax X, syntax Y, store : store, X*, Y*) : (store, addr*) +[visit_id store] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[visit_id _] not free +[check_dims] s +[visit_exp s] +[visit_id s] +[visit_exp []] +[visit_exp []] +[visit_exp (s, [])] +[visit_exp s] +[visit_id s] not free +[visit_exp []] +=> + ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec + def $allocXs{syntax X, syntax Y, s : store}(syntax X, syntax Y, s, [], []) = (s, []) +[check_dims] X X' Y Y' a a' s s_1 s_2 +[visit_exp s] +[visit_id s] +[visit_exp [X] ++ X'*{X' <- `X'*`}] +[visit_exp [X]] +[visit_exp X] +[visit_id X] +[visit_exp X'*{X' <- `X'*`}] +[scope_enter X'] +[visit_exp X'] +[visit_id X'] not free +[visit_id X'] not free +[scope_exit X'] +[visit_exp `X'*`] +[visit_id X'*] no dims +[visit_id X'*] +[visit_exp [Y] ++ Y'*{Y' <- `Y'*`}] +[visit_exp [Y]] +[visit_exp Y] +[visit_id Y] +[visit_exp Y'*{Y' <- `Y'*`}] +[scope_enter Y'] +[visit_exp Y'] +[visit_id Y'] not free +[visit_id Y'] not free +[scope_exit Y'] +[visit_exp `Y'*`] +[visit_id Y'*] no dims +[visit_id Y'*] +[visit_exp (s_2, [a] ++ a'*{a' <- `a'*`})] +[visit_exp s_2] +[visit_id s_2] +[visit_exp [a] ++ a'*{a' <- `a'*`}] +[visit_exp [a]] +[visit_exp a] +[visit_id a] +[visit_exp a'*{a' <- `a'*`}] +[scope_enter a'] +[visit_exp a'] +[visit_id a'] not free +[visit_id a'] not free +[scope_exit a'] +[visit_exp `a'*`] +[visit_id a'*] no dims +[visit_id a'*] +[visit_exp ((s_1, a) = $allocX(syntax X, syntax Y, s, X, Y))] +[visit_exp (s_1, a)] +[visit_exp s_1] +[visit_id s_1] +[visit_exp a] +[visit_id a] not free +[visit_exp $allocX(syntax X, syntax Y, s, X, Y)] +[visit_exp s] +[visit_id s] not free +[visit_exp X] +[visit_id X] not free +[visit_exp Y] +[visit_id Y] not free +[visit_exp ((s_2, a'*{a' <- `a'*`}) = $allocXs(syntax X, syntax Y, s_1, X'*{X' <- `X'*`}, Y'*{Y' <- `Y'*`}))] +[visit_exp (s_2, a'*{a' <- `a'*`})] +[visit_exp s_2] +[visit_id s_2] not free +[visit_exp a'*{a' <- `a'*`}] +[scope_enter a'] +[visit_exp a'] +[visit_id a'] not free +[visit_id a'] not free +[scope_exit a'] +[visit_exp `a'*`] +[visit_id a'*] not free +[visit_id a'*] no dims +[visit_exp $allocXs(syntax X, syntax Y, s_1, X'*{X' <- `X'*`}, Y'*{Y' <- `Y'*`})] +[visit_exp s_1] +[visit_id s_1] not free +[visit_exp X'*{X' <- `X'*`}] +[scope_enter X'] +[visit_exp X'] +[visit_id X'] not free +[visit_id X'] not free +[scope_exit X'] +[visit_exp `X'*`] +[visit_id X'*] not free +[visit_id X'*] no dims +[visit_exp Y'*{Y' <- `Y'*`}] +[scope_enter Y'] +[visit_exp Y'] +[visit_id Y'] not free +[visit_id Y'] not free +[scope_exit Y'] +[visit_exp `Y'*`] +[visit_id Y'*] not free +[visit_id Y'*] no dims +=> + ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec + def $allocXs{syntax X, syntax Y, s : store, X : X, `X'*` : X*, Y : Y, `Y'*` : Y*, s_2 : store, a : addr, `a'*` : addr*, s_1 : store}(syntax X, syntax Y, s, [X] ++ X'*{X' <- `X'*`}, [Y] ++ Y'*{Y' <- `Y'*`}) = (s_2, [a] ++ a'*{a' <- `a'*`}) + -- if ((s_1, a) = $allocX(syntax X, syntax Y, s, X, Y)) + -- if ((s_2, a'*{a' <- `a'*`}) = $allocXs(syntax X, syntax Y, s_1, X'*{X' <- `X'*`}, Y'*{Y' <- `Y'*`})) +[check_dims] +[check_dims] +[visit_exp 0] +[check_dims] X +DecD var(syntax X) : nat +[check_dims] +[visit_exp 0] +=> + ;; ../../../../specification/wasm-3.0/X.4-notation.binary.spectec + def $var{syntax X}(syntax X) = 0 +ps' = (syntax X) +[check_dims] X +[check_dims] +dims \ = +[visit_exp ((), ()).1] +[visit_exp ((), ())] +[visit_exp ()] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp $var(syntax A)] +[check_dims] +dims \ = +[visit_exp $var(syntax A)] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = (syntax X) +[check_dims] X +[check_dims] +dims \ = +[visit_exp ((), ()).1] +[visit_exp ((), ())] +[visit_exp ()] +[visit_exp ()] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp $var(syntax A)] +[check_dims] +dims \ = +[visit_exp $var(syntax A)] +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +ps' = +[check_dims] +[check_dims] +dims \ = +[visit_exp (``, ()).1] +[visit_exp (``, ())] +[visit_exp ``] +[visit_id ] +[visit_exp ()] +[visit_exp ``] +[visit_id ] not free +[check_dims] +[check_dims] +[check_dims] +ps' = +[check_dims] +[check_dims] ;; ../../../../specification/wasm-3.0/0.1-aux.vars.spectec syntax N = nat @@ -87,7 +111646,7 @@ def $concatn_(syntax X, X**, nat : nat) : X* ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec:19.1-19.38 def $concatn_{syntax X, n : n}(syntax X, [], n) = [] ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec:20.1-20.73 - def $concatn_{syntax X, `w*` : X*, n : n, `w'**` : X**}(syntax X, [w^n{w <- `w*`}] ++ w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}, n) = w^n{w <- `w*`} ++ $concatn_(syntax X, w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}, n) + def $concatn_{syntax X, n : n, `w*` : X*, `w'**` : X**}(syntax X, [w^n{w <- `w*`}] ++ w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}, n) = w^n{w <- `w*`} ++ $concatn_(syntax X, w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}, n) } ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec @@ -187,17 +111746,17 @@ syntax byte = -- if ((i >= 0) /\ (i <= 255)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax uN{N : N}(N) = +syntax uN(N : N)(N) = | `%`{i : nat}(i : nat) -- if ((i >= 0) /\ (i <= ((((2 ^ N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax sN{N : N}(N) = +syntax sN(N : N)(N) = | `%`{i : int}(i : int) -- if ((((i >= - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) /\ (i <= - (1 : nat <:> int))) \/ (i = (0 : nat <:> int))) \/ ((i >= + (1 : nat <:> int)) /\ (i <= (+ ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax iN{N : N}(N) = uN(N) +syntax iN(N : N)(N) = uN(N) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax u8 = uN(8) @@ -248,19 +111807,19 @@ def $E(N : N) : nat syntax exp = int ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax fNmag{N : N}(N) = - | NORM{m : m, exp : exp}(m : m, exp : exp) +syntax fNmag(N : N)(N) = + | `NORM`{m : m, exp : exp}(m : m, exp : exp) -- if ((m < (2 ^ $M(N))) /\ ((((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) <= exp) /\ (exp <= (((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))))) - | SUBNORM{m : m, exp : exp}(m : m) + | `SUBNORM`{m : m, exp : exp}(m : m) -- if ((m < (2 ^ $M(N))) /\ (((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) = exp)) - | INF - | NAN{m : m}(m : m) + | `INF` + | `NAN`{m : m}(m : m) -- if ((1 <= m) /\ (m < (2 ^ $M(N)))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax fN{N : N}(N) = - | POS{fNmag : fNmag(N)}(fNmag : fNmag(N)) - | NEG{fNmag : fNmag(N)}(fNmag : fNmag(N)) +syntax fN(N : N)(N) = + | `POS`(fNmag(N)) + | `NEG`(fNmag(N)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax f32 = fN(32) @@ -271,17 +111830,17 @@ syntax f64 = fN(64) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $fzero(N : N) : fN(N) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fzero{N : N}(N) = POS_fN(SUBNORM_fNmag(0)) + def $fzero{N : N, m#1 : m, exp#1 : exp}(N) = `POS`_fN(`SUBNORM`_fNmag{m#1, exp#1}(0)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $fnat(N : N, nat : nat) : fN(N) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fnat{N : N, n : n}(N, n) = POS_fN(NORM_fNmag(n, (0 : nat <:> int))) + def $fnat{N : N, n : n, m#3 : m, exp#2 : exp}(N, n) = `POS`_fN(`NORM`_fNmag{m#3, exp#2}(n, (0 : nat <:> int))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $fone(N : N) : fN(N) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fone{N : N}(N) = POS_fN(NORM_fNmag(1, (0 : nat <:> int))) + def $fone{N : N, m#5 : m, exp#4 : exp}(N) = `POS`_fN(`NORM`_fNmag{m#5, exp#4}(1, (0 : nat <:> int))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $canon_(N : N) : nat @@ -289,14 +111848,14 @@ def $canon_(N : N) : nat def $canon_{N : N}(N) = (2 ^ ((($signif(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax vN{N : N}(N) = uN(N) +syntax vN(N : N)(N) = uN(N) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax v128 = vN(128) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax list{syntax X}(syntax X) = - | `%`{`X*` : X*}(X*{X <- `X*`} : X*) +syntax list(syntax X)(syntax X) = + | `%`{`X*` : X*}(`X*` : X*) -- if (|X*{X <- `X*`}| < (2 ^ 32)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec @@ -307,8 +111866,8 @@ syntax char = ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec def $cont(byte : byte) : nat ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - def $cont{b : byte}(b) = (((b!`%`_byte.0 : nat <:> int) - (128 : nat <:> int)) : int <:> nat) - -- if ((128 < b!`%`_byte.0) /\ (b!`%`_byte.0 < 192)) + def $cont{b : byte, i#48148 : nat, i#48144 : nat, i#48146 : nat}(b) = (((b!`%`_byte{i#48148}.0 : nat <:> int) - (128 : nat <:> int)) : int <:> nat) + -- if ((128 < b!`%`_byte{i#48144}.0) /\ (b!`%`_byte{i#48146}.0 < 192)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec rec { @@ -318,26 +111877,26 @@ def $utf8(char*) : byte* ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:48.1-48.44 def $utf8{`ch*` : char*}(ch*{ch <- `ch*`}) = $concat_(syntax byte, $utf8([ch])*{ch <- `ch*`}) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:49.1-51.15 - def $utf8{ch : char, b : byte}([ch]) = [b] - -- if (ch!`%`_char.0 < 128) - -- if (`%`_byte(ch!`%`_char.0) = b) + def $utf8{ch : char, b : byte, i#48332 : nat, i#48341 : nat, i#48340 : nat}([ch]) = [b] + -- if (ch!`%`_char{i#48332}.0 < 128) + -- if (`%`_byte{i#48341}(ch!`%`_char{i#48340}.0) = b) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:52.1-54.46 - def $utf8{ch : char, b_1 : byte, b_2 : byte}([ch]) = [b_1 b_2] - -- if ((128 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 2048)) - -- if (ch!`%`_char.0 = (((2 ^ 6) * (((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2))) + def $utf8{ch : char, b_1 : byte, b_2 : byte, i#48356 : nat, i#48358 : nat, i#48368 : nat, i#48360 : nat}([ch]) = [b_1 b_2] + -- if ((128 <= ch!`%`_char{i#48356}.0) /\ (ch!`%`_char{i#48358}.0 < 2048)) + -- if (ch!`%`_char{i#48368}.0 = (((2 ^ 6) * (((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2))) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:55.1-57.64 - def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte}([ch]) = [b_1 b_2 b_3] - -- if (((2048 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 55296)) \/ ((57344 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 65536))) - -- if (ch!`%`_char.0 = ((((2 ^ 12) * (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3))) + def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte, i#48400 : nat, i#48402 : nat, i#48404 : nat, i#48406 : nat, i#48422 : nat, i#48408 : nat}([ch]) = [b_1 b_2 b_3] + -- if (((2048 <= ch!`%`_char{i#48400}.0) /\ (ch!`%`_char{i#48402}.0 < 55296)) \/ ((57344 <= ch!`%`_char{i#48404}.0) /\ (ch!`%`_char{i#48406}.0 < 65536))) + -- if (ch!`%`_char{i#48422}.0 = ((((2 ^ 12) * (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3))) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:58.1-60.82 - def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte, b_4 : byte}([ch]) = [b_1 b_2 b_3 b_4] - -- if ((65536 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 69632)) - -- if (ch!`%`_char.0 = (((((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4))) + def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte, b_4 : byte, i#48460 : nat, i#48462 : nat, i#48484 : nat, i#48464 : nat}([ch]) = [b_1 b_2 b_3 b_4] + -- if ((65536 <= ch!`%`_char{i#48460}.0) /\ (ch!`%`_char{i#48462}.0 < 69632)) + -- if (ch!`%`_char{i#48484}.0 = (((((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4))) } ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax name = - | `%`{`char*` : char*}(char*{char <- `char*`} : char*) + | `%`{`char*` : char*}(`char*` : char*) -- if (|$utf8(char*{char <- `char*`})| < (2 ^ 32)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec @@ -381,11 +111940,11 @@ syntax fieldidx = idx ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax externidx = - | FUNC{funcidx : funcidx}(funcidx : funcidx) - | GLOBAL{globalidx : globalidx}(globalidx : globalidx) - | TABLE{tableidx : tableidx}(tableidx : tableidx) - | MEM{memidx : memidx}(memidx : memidx) - | TAG{tagidx : tagidx}(tagidx : tagidx) + | `FUNC`{funcidx : funcidx}(funcidx : funcidx) + | `GLOBAL`{globalidx : globalidx}(globalidx : globalidx) + | `TABLE`{tableidx : tableidx}(tableidx : tableidx) + | `MEM`{memidx : memidx}(memidx : memidx) + | `TAG`{tagidx : tagidx}(tagidx : tagidx) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec rec { @@ -395,7 +111954,7 @@ def $funcsxx(externidx*) : typeidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:133.1-133.24 def $funcsxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:134.1-134.45 - def $funcsxx{x : idx, `xx*` : externidx*}([FUNC_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $funcsxx(xx*{xx <- `xx*`}) + def $funcsxx{funcidx#1 : funcidx, x : idx, `xx*` : externidx*}([`FUNC`_externidx{funcidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $funcsxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:135.1-135.58 def $funcsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $funcsxx(xx*{xx <- `xx*`}) -- otherwise @@ -409,7 +111968,7 @@ def $globalsxx(externidx*) : globalidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:137.1-137.26 def $globalsxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:138.1-138.51 - def $globalsxx{x : idx, `xx*` : externidx*}([GLOBAL_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $globalsxx(xx*{xx <- `xx*`}) + def $globalsxx{globalidx#1 : globalidx, x : idx, `xx*` : externidx*}([`GLOBAL`_externidx{globalidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $globalsxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:139.1-139.62 def $globalsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $globalsxx(xx*{xx <- `xx*`}) -- otherwise @@ -423,7 +111982,7 @@ def $tablesxx(externidx*) : tableidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:141.1-141.25 def $tablesxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:142.1-142.48 - def $tablesxx{x : idx, `xx*` : externidx*}([TABLE_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tablesxx(xx*{xx <- `xx*`}) + def $tablesxx{tableidx#1 : tableidx, x : idx, `xx*` : externidx*}([`TABLE`_externidx{tableidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tablesxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:143.1-143.60 def $tablesxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $tablesxx(xx*{xx <- `xx*`}) -- otherwise @@ -437,7 +111996,7 @@ def $memsxx(externidx*) : memidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:145.1-145.23 def $memsxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:146.1-146.42 - def $memsxx{x : idx, `xx*` : externidx*}([MEM_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $memsxx(xx*{xx <- `xx*`}) + def $memsxx{memidx#1 : memidx, x : idx, `xx*` : externidx*}([`MEM`_externidx{memidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $memsxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:147.1-147.56 def $memsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $memsxx(xx*{xx <- `xx*`}) -- otherwise @@ -451,7 +112010,7 @@ def $tagsxx(externidx*) : tagidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:149.1-149.23 def $tagsxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:150.1-150.42 - def $tagsxx{x : idx, `xx*` : externidx*}([TAG_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tagsxx(xx*{xx <- `xx*`}) + def $tagsxx{tagidx#1 : tagidx, x : idx, `xx*` : externidx*}([`TAG`_externidx{tagidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tagsxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:151.1-151.56 def $tagsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $tagsxx(xx*{xx <- `xx*`}) -- otherwise @@ -460,21 +112019,21 @@ def $tagsxx(externidx*) : tagidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax free = { - TYPES{`typeidx*` : typeidx*} typeidx*, - FUNCS{`funcidx*` : funcidx*} funcidx*, - GLOBALS{`globalidx*` : globalidx*} globalidx*, - TABLES{`tableidx*` : tableidx*} tableidx*, - MEMS{`memidx*` : memidx*} memidx*, - ELEMS{`elemidx*` : elemidx*} elemidx*, - DATAS{`dataidx*` : dataidx*} dataidx*, - LOCALS{`localidx*` : localidx*} localidx*, - LABELS{`labelidx*` : labelidx*} labelidx* + `TYPES`{`typeidx*` : typeidx*} typeidx*, + `FUNCS`{`funcidx*` : funcidx*} funcidx*, + `GLOBALS`{`globalidx*` : globalidx*} globalidx*, + `TABLES`{`tableidx*` : tableidx*} tableidx*, + `MEMS`{`memidx*` : memidx*} memidx*, + `ELEMS`{`elemidx*` : elemidx*} elemidx*, + `DATAS`{`dataidx*` : dataidx*} dataidx*, + `LOCALS`{`localidx*` : localidx*} localidx*, + `LABELS`{`labelidx*` : labelidx*} labelidx* } ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_opt(free?) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_opt(?()) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_opt{`typeidx*#1` : typeidx*, `funcidx*#1` : funcidx*, `globalidx*#1` : globalidx*, `tableidx*#1` : tableidx*, `memidx*#1` : memidx*, `elemidx*#1` : elemidx*, `dataidx*#1` : dataidx*, `localidx*#1` : localidx*, `labelidx*#1` : labelidx*}(?()) = {`TYPES`{`typeidx*#1`} [], `FUNCS`{`funcidx*#1`} [], `GLOBALS`{`globalidx*#1`} [], `TABLES`{`tableidx*#1`} [], `MEMS`{`memidx*#1`} [], `ELEMS`{`elemidx*#1`} [], `DATAS`{`dataidx*#1`} [], `LOCALS`{`localidx*#1`} [], `LABELS`{`labelidx*#1`} []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_opt{free : free}(?(free)) = free @@ -484,7 +112043,7 @@ rec { ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:170.1-170.29 def $free_list(free*) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:175.1-175.25 - def $free_list([]) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_list{`typeidx*#2` : typeidx*, `funcidx*#2` : funcidx*, `globalidx*#2` : globalidx*, `tableidx*#2` : tableidx*, `memidx*#2` : memidx*, `elemidx*#2` : elemidx*, `dataidx*#2` : dataidx*, `localidx*#2` : localidx*, `labelidx*#2` : labelidx*}([]) = {`TYPES`{`typeidx*#2`} [], `FUNCS`{`funcidx*#2`} [], `GLOBALS`{`globalidx*#2`} [], `TABLES`{`tableidx*#2`} [], `MEMS`{`memidx*#2`} [], `ELEMS`{`elemidx*#2`} [], `DATAS`{`dataidx*#2`} [], `LOCALS`{`localidx*#2`} [], `LABELS`{`labelidx*#2`} []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:176.1-176.57 def $free_list{free : free, `free'*` : free*}([free] ++ free'*{free' <- `free'*`}) = free +++ $free_list(free'*{free' <- `free'*`}) } @@ -492,321 +112051,321 @@ def $free_list(free*) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_typeidx(typeidx : typeidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_typeidx{typeidx : typeidx}(typeidx) = {TYPES [typeidx], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_typeidx{typeidx : typeidx, `typeidx*#3` : typeidx*, `funcidx*#3` : funcidx*, `globalidx*#3` : globalidx*, `tableidx*#3` : tableidx*, `memidx*#3` : memidx*, `elemidx*#3` : elemidx*, `dataidx*#3` : dataidx*, `localidx*#3` : localidx*, `labelidx*#3` : labelidx*}(typeidx) = {`TYPES`{`typeidx*#3`} [typeidx], `FUNCS`{`funcidx*#3`} [], `GLOBALS`{`globalidx*#3`} [], `TABLES`{`tableidx*#3`} [], `MEMS`{`memidx*#3`} [], `ELEMS`{`elemidx*#3`} [], `DATAS`{`dataidx*#3`} [], `LOCALS`{`localidx*#3`} [], `LABELS`{`labelidx*#3`} []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_funcidx(funcidx : funcidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_funcidx{funcidx : funcidx}(funcidx) = {TYPES [], FUNCS [funcidx], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_funcidx{funcidx : funcidx, `typeidx*#4` : typeidx*, `funcidx*#4` : funcidx*, `globalidx*#4` : globalidx*, `tableidx*#4` : tableidx*, `memidx*#4` : memidx*, `elemidx*#4` : elemidx*, `dataidx*#4` : dataidx*, `localidx*#4` : localidx*, `labelidx*#4` : labelidx*}(funcidx) = {`TYPES`{`typeidx*#4`} [], `FUNCS`{`funcidx*#4`} [funcidx], `GLOBALS`{`globalidx*#4`} [], `TABLES`{`tableidx*#4`} [], `MEMS`{`memidx*#4`} [], `ELEMS`{`elemidx*#4`} [], `DATAS`{`dataidx*#4`} [], `LOCALS`{`localidx*#4`} [], `LABELS`{`labelidx*#4`} []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_globalidx(globalidx : globalidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_globalidx{globalidx : globalidx}(globalidx) = {TYPES [], FUNCS [], GLOBALS [globalidx], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_globalidx{globalidx : globalidx, `typeidx*#5` : typeidx*, `funcidx*#5` : funcidx*, `globalidx*#5` : globalidx*, `tableidx*#5` : tableidx*, `memidx*#5` : memidx*, `elemidx*#5` : elemidx*, `dataidx*#5` : dataidx*, `localidx*#5` : localidx*, `labelidx*#5` : labelidx*}(globalidx) = {`TYPES`{`typeidx*#5`} [], `FUNCS`{`funcidx*#5`} [], `GLOBALS`{`globalidx*#5`} [globalidx], `TABLES`{`tableidx*#5`} [], `MEMS`{`memidx*#5`} [], `ELEMS`{`elemidx*#5`} [], `DATAS`{`dataidx*#5`} [], `LOCALS`{`localidx*#5`} [], `LABELS`{`labelidx*#5`} []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_tableidx(tableidx : tableidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_tableidx{tableidx : tableidx}(tableidx) = {TYPES [], FUNCS [], GLOBALS [], TABLES [tableidx], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_tableidx{tableidx : tableidx, `typeidx*#6` : typeidx*, `funcidx*#6` : funcidx*, `globalidx*#6` : globalidx*, `tableidx*#6` : tableidx*, `memidx*#6` : memidx*, `elemidx*#6` : elemidx*, `dataidx*#6` : dataidx*, `localidx*#6` : localidx*, `labelidx*#6` : labelidx*}(tableidx) = {`TYPES`{`typeidx*#6`} [], `FUNCS`{`funcidx*#6`} [], `GLOBALS`{`globalidx*#6`} [], `TABLES`{`tableidx*#6`} [tableidx], `MEMS`{`memidx*#6`} [], `ELEMS`{`elemidx*#6`} [], `DATAS`{`dataidx*#6`} [], `LOCALS`{`localidx*#6`} [], `LABELS`{`labelidx*#6`} []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_memidx(memidx : memidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_memidx{memidx : memidx}(memidx) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [memidx], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_memidx{memidx : memidx, `typeidx*#7` : typeidx*, `funcidx*#7` : funcidx*, `globalidx*#7` : globalidx*, `tableidx*#7` : tableidx*, `memidx*#7` : memidx*, `elemidx*#7` : elemidx*, `dataidx*#7` : dataidx*, `localidx*#7` : localidx*, `labelidx*#7` : labelidx*}(memidx) = {`TYPES`{`typeidx*#7`} [], `FUNCS`{`funcidx*#7`} [], `GLOBALS`{`globalidx*#7`} [], `TABLES`{`tableidx*#7`} [], `MEMS`{`memidx*#7`} [memidx], `ELEMS`{`elemidx*#7`} [], `DATAS`{`dataidx*#7`} [], `LOCALS`{`localidx*#7`} [], `LABELS`{`labelidx*#7`} []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_elemidx(elemidx : elemidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_elemidx{elemidx : elemidx}(elemidx) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [elemidx], DATAS [], LOCALS [], LABELS []} + def $free_elemidx{elemidx : elemidx, `typeidx*#8` : typeidx*, `funcidx*#8` : funcidx*, `globalidx*#8` : globalidx*, `tableidx*#8` : tableidx*, `memidx*#8` : memidx*, `elemidx*#8` : elemidx*, `dataidx*#8` : dataidx*, `localidx*#8` : localidx*, `labelidx*#8` : labelidx*}(elemidx) = {`TYPES`{`typeidx*#8`} [], `FUNCS`{`funcidx*#8`} [], `GLOBALS`{`globalidx*#8`} [], `TABLES`{`tableidx*#8`} [], `MEMS`{`memidx*#8`} [], `ELEMS`{`elemidx*#8`} [elemidx], `DATAS`{`dataidx*#8`} [], `LOCALS`{`localidx*#8`} [], `LABELS`{`labelidx*#8`} []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_dataidx(dataidx : dataidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_dataidx{dataidx : dataidx}(dataidx) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [dataidx], LOCALS [], LABELS []} + def $free_dataidx{dataidx : dataidx, `typeidx*#9` : typeidx*, `funcidx*#9` : funcidx*, `globalidx*#9` : globalidx*, `tableidx*#9` : tableidx*, `memidx*#9` : memidx*, `elemidx*#9` : elemidx*, `dataidx*#9` : dataidx*, `localidx*#9` : localidx*, `labelidx*#9` : labelidx*}(dataidx) = {`TYPES`{`typeidx*#9`} [], `FUNCS`{`funcidx*#9`} [], `GLOBALS`{`globalidx*#9`} [], `TABLES`{`tableidx*#9`} [], `MEMS`{`memidx*#9`} [], `ELEMS`{`elemidx*#9`} [], `DATAS`{`dataidx*#9`} [dataidx], `LOCALS`{`localidx*#9`} [], `LABELS`{`labelidx*#9`} []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_localidx(localidx : localidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_localidx{localidx : localidx}(localidx) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [localidx], LABELS []} + def $free_localidx{localidx : localidx, `typeidx*#10` : typeidx*, `funcidx*#10` : funcidx*, `globalidx*#10` : globalidx*, `tableidx*#10` : tableidx*, `memidx*#10` : memidx*, `elemidx*#10` : elemidx*, `dataidx*#10` : dataidx*, `localidx*#10` : localidx*, `labelidx*#10` : labelidx*}(localidx) = {`TYPES`{`typeidx*#10`} [], `FUNCS`{`funcidx*#10`} [], `GLOBALS`{`globalidx*#10`} [], `TABLES`{`tableidx*#10`} [], `MEMS`{`memidx*#10`} [], `ELEMS`{`elemidx*#10`} [], `DATAS`{`dataidx*#10`} [], `LOCALS`{`localidx*#10`} [localidx], `LABELS`{`labelidx*#10`} []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_labelidx(labelidx : labelidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_labelidx{labelidx : labelidx}(labelidx) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS [labelidx]} + def $free_labelidx{labelidx : labelidx, `typeidx*#11` : typeidx*, `funcidx*#11` : funcidx*, `globalidx*#11` : globalidx*, `tableidx*#11` : tableidx*, `memidx*#11` : memidx*, `elemidx*#11` : elemidx*, `dataidx*#11` : dataidx*, `localidx*#11` : localidx*, `labelidx*#11` : labelidx*}(labelidx) = {`TYPES`{`typeidx*#11`} [], `FUNCS`{`funcidx*#11`} [], `GLOBALS`{`globalidx*#11`} [], `TABLES`{`tableidx*#11`} [], `MEMS`{`memidx*#11`} [], `ELEMS`{`elemidx*#11`} [], `DATAS`{`dataidx*#11`} [], `LOCALS`{`localidx*#11`} [], `LABELS`{`labelidx*#11`} [labelidx]} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_externidx(externidx : externidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{funcidx : funcidx}(FUNC_externidx(funcidx)) = $free_funcidx(funcidx) + def $free_externidx{funcidx#3 : funcidx, funcidx : funcidx}(`FUNC`_externidx{funcidx#3}(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{globalidx : globalidx}(GLOBAL_externidx(globalidx)) = $free_globalidx(globalidx) + def $free_externidx{globalidx#3 : globalidx, globalidx : globalidx}(`GLOBAL`_externidx{globalidx#3}(globalidx)) = $free_globalidx(globalidx) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{tableidx : tableidx}(TABLE_externidx(tableidx)) = $free_tableidx(tableidx) + def $free_externidx{tableidx#3 : tableidx, tableidx : tableidx}(`TABLE`_externidx{tableidx#3}(tableidx)) = $free_tableidx(tableidx) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{memidx : memidx}(MEM_externidx(memidx)) = $free_memidx(memidx) + def $free_externidx{memidx#3 : memidx, memidx : memidx}(`MEM`_externidx{memidx#3}(memidx)) = $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax null = - | NULL + | `NULL` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax addrtype = - | I32 - | I64 + | `I32` + | `I64` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax numtype = - | I32 - | I64 - | F32 - | F64 + | `I32` + | `I64` + | `F32` + | `F64` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax vectype = - | V128 + | `V128` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax consttype = - | I32 - | I64 - | F32 - | F64 - | V128 + | `I32` + | `I64` + | `F32` + | `F64` + | `V128` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax absheaptype = - | ANY - | EQ - | I31 - | STRUCT - | ARRAY - | NONE - | FUNC - | NOFUNC - | EXN - | NOEXN - | EXTERN - | NOEXTERN - | BOT + | `ANY` + | `EQ` + | `I31` + | `STRUCT` + | `ARRAY` + | `NONE` + | `FUNC` + | `NOFUNC` + | `EXN` + | `NOEXN` + | `EXTERN` + | `NOEXTERN` + | `BOT` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax mut = - | MUT + | `MUT` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax final = - | FINAL + | `FINAL` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec rec { ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:37.1-38.43 syntax typeuse = - | _IDX{typeidx : typeidx}(typeidx : typeidx) - | _DEF{rectype : rectype, n : n}(rectype : rectype, n : n) - | REC{n : n}(n : n) + | `_IDX`{typeidx : typeidx}(typeidx : typeidx) + | `_DEF`{rectype : rectype, n : n}(rectype : rectype, n : n) + | `REC`{n : n}(n : n) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:43.1-44.26 syntax heaptype = - | ANY - | EQ - | I31 - | STRUCT - | ARRAY - | NONE - | FUNC - | NOFUNC - | EXN - | NOEXN - | EXTERN - | NOEXTERN - | BOT - | _IDX{typeidx : typeidx}(typeidx : typeidx) - | REC{n : n}(n : n) - | _DEF{rectype : rectype, n : n}(rectype : rectype, n : n) + | `ANY` + | `EQ` + | `I31` + | `STRUCT` + | `ARRAY` + | `NONE` + | `FUNC` + | `NOFUNC` + | `EXN` + | `NOEXN` + | `EXTERN` + | `NOEXTERN` + | `BOT` + | `_IDX`{typeidx : typeidx}(typeidx : typeidx) + | `_DEF`{rectype : rectype, n : n}(rectype : rectype, n : n) + | `REC`{n : n}(n : n) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:51.1-52.14 syntax valtype = - | I32 - | I64 - | F32 - | F64 - | V128 - | REF{`null?` : null?, heaptype : heaptype}(null?{null <- `null?`} : null?, heaptype : heaptype) - | BOT + | `I32` + | `I64` + | `F32` + | `F64` + | `V128` + | `REF`{`null?` : null?, heaptype : heaptype}(`null?` : null?, heaptype : heaptype) + | `BOT` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:92.1-92.66 syntax storagetype = - | BOT - | I32 - | I64 - | F32 - | F64 - | V128 - | REF{`null?` : null?, heaptype : heaptype}(null?{null <- `null?`} : null?, heaptype : heaptype) - | I8 - | I16 + | `I32` + | `I64` + | `F32` + | `F64` + | `V128` + | `REF`{`null?` : null?, heaptype : heaptype}(`null?` : null?, heaptype : heaptype) + | `BOT` + | `I8` + | `I16` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:102.1-103.16 syntax resulttype = list(syntax valtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:112.1-112.61 syntax fieldtype = - | `%%`{`mut?` : mut?, storagetype : storagetype}(mut?{mut <- `mut?`} : mut?, storagetype : storagetype) + | `%%`{`mut?` : mut?, storagetype : storagetype}(`mut?` : mut?, storagetype : storagetype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:114.1-117.34 syntax comptype = - | STRUCT{list : list(syntax fieldtype)}(list : list(syntax fieldtype)) - | ARRAY{fieldtype : fieldtype}(fieldtype : fieldtype) - | `FUNC%->%`{resulttype : resulttype}(resulttype : resulttype, resulttype) + | `STRUCT`(list(syntax fieldtype)) + | `ARRAY`{fieldtype : fieldtype}(fieldtype : fieldtype) + | `FUNC%->%`{resulttype : resulttype}(resulttype : resulttype, resulttype : resulttype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:119.1-120.33 syntax subtype = - | SUB{`final?` : final?, `typeuse*` : typeuse*, comptype : comptype}(final?{final <- `final?`} : final?, typeuse*{typeuse <- `typeuse*`} : typeuse*, comptype : comptype) + | `SUB`{`final?` : final?, `typeuse*` : typeuse*, comptype : comptype}(`final?` : final?, `typeuse*` : typeuse*, comptype : comptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:122.1-123.22 syntax rectype = - | REC{list : list(syntax subtype)}(list : list(syntax subtype)) + | `REC`(list(syntax subtype)) } ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax deftype = - | _DEF{rectype : rectype, n : n}(rectype : rectype, n : n) + | `_DEF`{rectype : rectype, n : n}(rectype : rectype, n : n) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax typevar = - | _IDX{typeidx : typeidx}(typeidx : typeidx) - | REC{n : n}(n : n) + | `_IDX`{typeidx : typeidx}(typeidx : typeidx) + | `REC`{n : n}(n : n) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax reftype = - | REF{`null?` : null?, heaptype : heaptype}(null?{null <- `null?`} : null?, heaptype : heaptype) + | `REF`{`null?` : null?, heaptype : heaptype}(`null?` : null?, heaptype : heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Inn = - | I32 - | I64 + | `I32` + | `I64` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Fnn = - | F32 - | F64 + | `F32` + | `F64` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Vnn = - | V128 + | `V128` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Cnn = - | I32 - | I64 - | F32 - | F64 - | V128 + | `I32` + | `I64` + | `F32` + | `F64` + | `V128` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $ANYREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $ANYREF = REF_reftype(?(NULL_null), ANY_heaptype) + def $ANYREF{`null?#11` : null?, heaptype#11 : heaptype} = `REF`_reftype{`null?#11`, heaptype#11}(?(`NULL`_null), `ANY`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $EQREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EQREF = REF_reftype(?(NULL_null), EQ_heaptype) + def $EQREF{`null?#23` : null?, heaptype#23 : heaptype} = `REF`_reftype{`null?#23`, heaptype#23}(?(`NULL`_null), `EQ`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $I31REF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $I31REF = REF_reftype(?(NULL_null), I31_heaptype) + def $I31REF{`null?#35` : null?, heaptype#35 : heaptype} = `REF`_reftype{`null?#35`, heaptype#35}(?(`NULL`_null), `I31`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $STRUCTREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $STRUCTREF = REF_reftype(?(NULL_null), STRUCT_heaptype) + def $STRUCTREF{`null?#47` : null?, heaptype#47 : heaptype} = `REF`_reftype{`null?#47`, heaptype#47}(?(`NULL`_null), `STRUCT`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $ARRAYREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $ARRAYREF = REF_reftype(?(NULL_null), ARRAY_heaptype) + def $ARRAYREF{`null?#59` : null?, heaptype#59 : heaptype} = `REF`_reftype{`null?#59`, heaptype#59}(?(`NULL`_null), `ARRAY`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $FUNCREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $FUNCREF = REF_reftype(?(NULL_null), FUNC_heaptype) + def $FUNCREF{`null?#71` : null?, heaptype#71 : heaptype} = `REF`_reftype{`null?#71`, heaptype#71}(?(`NULL`_null), `FUNC`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $EXNREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EXNREF = REF_reftype(?(NULL_null), EXN_heaptype) + def $EXNREF{`null?#83` : null?, heaptype#83 : heaptype} = `REF`_reftype{`null?#83`, heaptype#83}(?(`NULL`_null), `EXN`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $EXTERNREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EXTERNREF = REF_reftype(?(NULL_null), EXTERN_heaptype) + def $EXTERNREF{`null?#95` : null?, heaptype#95 : heaptype} = `REF`_reftype{`null?#95`, heaptype#95}(?(`NULL`_null), `EXTERN`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $NULLREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLREF = REF_reftype(?(NULL_null), NONE_heaptype) + def $NULLREF{`null?#107` : null?, heaptype#107 : heaptype} = `REF`_reftype{`null?#107`, heaptype#107}(?(`NULL`_null), `NONE`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $NULLFUNCREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLFUNCREF = REF_reftype(?(NULL_null), NOFUNC_heaptype) + def $NULLFUNCREF{`null?#119` : null?, heaptype#119 : heaptype} = `REF`_reftype{`null?#119`, heaptype#119}(?(`NULL`_null), `NOFUNC`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $NULLEXNREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLEXNREF = REF_reftype(?(NULL_null), NOEXN_heaptype) + def $NULLEXNREF{`null?#131` : null?, heaptype#131 : heaptype} = `REF`_reftype{`null?#131`, heaptype#131}(?(`NULL`_null), `NOEXN`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $NULLEXTERNREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLEXTERNREF = REF_reftype(?(NULL_null), NOEXTERN_heaptype) + def $NULLEXTERNREF{`null?#143` : null?, heaptype#143 : heaptype} = `REF`_reftype{`null?#143`, heaptype#143}(?(`NULL`_null), `NOEXTERN`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax packtype = - | I8 - | I16 + | `I8` + | `I16` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax lanetype = - | I32 - | I64 - | F32 - | F64 - | I8 - | I16 + | `I32` + | `I64` + | `F32` + | `F64` + | `I8` + | `I16` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Pnn = packtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Jnn = - | I32 - | I64 - | I8 - | I16 + | `I32` + | `I64` + | `I8` + | `I16` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Lnn = - | I32 - | I64 - | F32 - | F64 - | I8 - | I16 + | `I32` + | `I64` + | `F32` + | `F64` + | `I8` + | `I16` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax limits = - | `[%..%]`{u64 : u64}(u64 : u64, u64?) + | `[%..%]`{u64 : u64, `u64?` : u64?}(u64 : u64, `u64?` : u64?) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax tagtype = typeuse ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax globaltype = - | `%%`{`mut?` : mut?, valtype : valtype}(mut?{mut <- `mut?`} : mut?, valtype : valtype) + | `%%`{`mut?` : mut?, valtype : valtype}(`mut?` : mut?, valtype : valtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax memtype = @@ -818,70 +112377,70 @@ syntax tabletype = ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax datatype = - | OK + | `OK` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax elemtype = reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax externtype = - | TAG{tagtype : tagtype}(tagtype : tagtype) - | GLOBAL{globaltype : globaltype}(globaltype : globaltype) - | MEM{memtype : memtype}(memtype : memtype) - | TABLE{tabletype : tabletype}(tabletype : tabletype) - | FUNC{typeuse : typeuse}(typeuse : typeuse) + | `TAG`{tagtype : tagtype}(tagtype : tagtype) + | `GLOBAL`{globaltype : globaltype}(globaltype : globaltype) + | `MEM`{memtype : memtype}(memtype : memtype) + | `TABLE`{tabletype : tabletype}(tabletype : tabletype) + | `FUNC`{typeuse : typeuse}(typeuse : typeuse) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax moduletype = - | `%->%`{`externtype*` : externtype*}(externtype*{externtype <- `externtype*`} : externtype*, externtype*) + | `%->%`{`externtype*` : externtype*}(`externtype*` : externtype*, `externtype*` : externtype*) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $IN(N : N) : Inn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $IN(32) = I32_Inn + def $IN(32) = `I32`_Inn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $IN(64) = I64_Inn + def $IN(64) = `I64`_Inn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $FN(N : N) : Fnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $FN(32) = F32_Fnn + def $FN(32) = `F32`_Fnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $FN(64) = F64_Fnn + def $FN(64) = `F64`_Fnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $JN(N : N) : Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $JN(8) = I8_Jnn + def $JN(8) = `I8`_Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $JN(16) = I16_Jnn + def $JN(16) = `I16`_Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $JN(32) = I32_Jnn + def $JN(32) = `I32`_Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $JN(64) = I64_Jnn + def $JN(64) = `I64`_Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $size(numtype : numtype) : nat ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $size(I32_numtype) = 32 + def $size(`I32`_numtype) = 32 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $size(I64_numtype) = 64 + def $size(`I64`_numtype) = 64 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $size(F32_numtype) = 32 + def $size(`F32`_numtype) = 32 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $size(F64_numtype) = 64 + def $size(`F64`_numtype) = 64 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $vsize(vectype : vectype) : nat ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $vsize(V128_vectype) = 128 + def $vsize(`V128`_vectype) = 128 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $psize(packtype : packtype) : nat ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $psize(I8_packtype) = 8 + def $psize(`I8`_packtype) = 8 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $psize(I16_packtype) = 16 + def $psize(`I16`_packtype) = 16 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $lsize(lanetype : lanetype) : nat @@ -917,25 +112476,25 @@ def $fsize(Fnn : Fnn) : nat ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $inv_isize(nat : nat) : Inn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_isize(32) = I32_Inn + def $inv_isize(32) = `I32`_Inn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_isize(64) = I64_Inn + def $inv_isize(64) = `I64`_Inn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $inv_jsize(nat : nat) : Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_jsize(8) = I8_Jnn + def $inv_jsize(8) = `I8`_Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_jsize(16) = I16_Jnn + def $inv_jsize(16) = `I16`_Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $inv_jsize{n : n}(n) = ($inv_isize(n) : Inn <: Jnn) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $inv_fsize(nat : nat) : Fnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_fsize(32) = F32_Fnn + def $inv_fsize(32) = `F32`_Fnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_fsize(64) = F64_Fnn + def $inv_fsize(64) = `F64`_Fnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $sizenn(numtype : numtype) : nat @@ -992,21 +112551,21 @@ def $lunpack(lanetype : lanetype) : numtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $lunpack{numtype : numtype}((numtype : numtype <: lanetype)) = numtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $lunpack{packtype : packtype}((packtype : packtype <: lanetype)) = I32_numtype + def $lunpack{packtype : packtype}((packtype : packtype <: lanetype)) = `I32`_numtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $unpack(storagetype : storagetype) : valtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $unpack{valtype : valtype}((valtype : valtype <: storagetype)) = valtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $unpack{packtype : packtype}((packtype : packtype <: storagetype)) = I32_valtype + def $unpack{packtype : packtype}((packtype : packtype <: storagetype)) = `I32`_valtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $nunpack(storagetype : storagetype) : numtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $nunpack{numtype : numtype}((numtype : numtype <: storagetype)) = numtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $nunpack{packtype : packtype}((packtype : packtype <: storagetype)) = I32_numtype + def $nunpack{packtype : packtype}((packtype : packtype <: storagetype)) = `I32`_numtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $vunpack(storagetype : storagetype) : vectype @@ -1018,7 +112577,7 @@ def $cunpack(storagetype : storagetype) : consttype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $cunpack{consttype : consttype}((consttype : consttype <: storagetype)) = consttype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $cunpack{packtype : packtype}((packtype : packtype <: storagetype)) = I32_consttype + def $cunpack{packtype : packtype}((packtype : packtype <: storagetype)) = `I32`_consttype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $cunpack{lanetype : lanetype}((lanetype : lanetype <: storagetype)) = ($lunpack(lanetype) : numtype <: consttype) @@ -1034,9 +112593,9 @@ def $minat(addrtype : addrtype, addrtype : addrtype) : addrtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $diffrt(reftype : reftype, reftype : reftype) : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $diffrt{`null_1?` : null?, ht_1 : heaptype, ht_2 : heaptype}(REF_reftype(null_1?{null_1 <- `null_1?`}, ht_1), REF_reftype(?(NULL_null), ht_2)) = REF_reftype(?(), ht_1) + def $diffrt{`null?#155` : null?, heaptype#155 : heaptype, `null_1?` : null?, ht_1 : heaptype, `null?#167` : null?, heaptype#167 : heaptype, ht_2 : heaptype, `null?#179` : null?, heaptype#179 : heaptype}(`REF`_reftype{`null?#155`, heaptype#155}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#167`, heaptype#167}(?(`NULL`_null), ht_2)) = `REF`_reftype{`null?#179`, heaptype#179}(?(), ht_1) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $diffrt{`null_1?` : null?, ht_1 : heaptype, ht_2 : heaptype}(REF_reftype(null_1?{null_1 <- `null_1?`}, ht_1), REF_reftype(?(), ht_2)) = REF_reftype(null_1?{null_1 <- `null_1?`}, ht_1) + def $diffrt{`null?#191` : null?, heaptype#191 : heaptype, `null_1?` : null?, ht_1 : heaptype, `null?#203` : null?, heaptype#203 : heaptype, ht_2 : heaptype, `null?#215` : null?, heaptype#215 : heaptype}(`REF`_reftype{`null?#191`, heaptype#191}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#203`, heaptype#203}(?(), ht_2)) = `REF`_reftype{`null?#215`, heaptype#215}(null_1?{null_1 <- `null_1?`}, ht_1) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $as_deftype(typeuse : typeuse) : deftype @@ -1051,7 +112610,7 @@ def $tagsxt(externtype*) : tagtype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:314.1-314.23 def $tagsxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:315.1-315.44 - def $tagsxt{jt : tagtype, `xt*` : externtype*}([TAG_externtype(jt)] ++ xt*{xt <- `xt*`}) = [jt] ++ $tagsxt(xt*{xt <- `xt*`}) + def $tagsxt{tagtype#1 : tagtype, jt : tagtype, `xt*` : externtype*}([`TAG`_externtype{tagtype#1}(jt)] ++ xt*{xt <- `xt*`}) = [jt] ++ $tagsxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:316.1-316.57 def $tagsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $tagsxt(xt*{xt <- `xt*`}) -- otherwise @@ -1065,7 +112624,7 @@ def $globalsxt(externtype*) : globaltype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:318.1-318.26 def $globalsxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:319.1-319.53 - def $globalsxt{gt : globaltype, `xt*` : externtype*}([GLOBAL_externtype(gt)] ++ xt*{xt <- `xt*`}) = [gt] ++ $globalsxt(xt*{xt <- `xt*`}) + def $globalsxt{globaltype#1 : globaltype, gt : globaltype, `xt*` : externtype*}([`GLOBAL`_externtype{globaltype#1}(gt)] ++ xt*{xt <- `xt*`}) = [gt] ++ $globalsxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:320.1-320.63 def $globalsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $globalsxt(xt*{xt <- `xt*`}) -- otherwise @@ -1079,7 +112638,7 @@ def $memsxt(externtype*) : memtype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:322.1-322.23 def $memsxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:323.1-323.44 - def $memsxt{mt : memtype, `xt*` : externtype*}([MEM_externtype(mt)] ++ xt*{xt <- `xt*`}) = [mt] ++ $memsxt(xt*{xt <- `xt*`}) + def $memsxt{memtype#1 : memtype, mt : memtype, `xt*` : externtype*}([`MEM`_externtype{memtype#1}(mt)] ++ xt*{xt <- `xt*`}) = [mt] ++ $memsxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:324.1-324.57 def $memsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $memsxt(xt*{xt <- `xt*`}) -- otherwise @@ -1093,7 +112652,7 @@ def $tablesxt(externtype*) : tabletype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:326.1-326.25 def $tablesxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:327.1-327.50 - def $tablesxt{tt : tabletype, `xt*` : externtype*}([TABLE_externtype(tt)] ++ xt*{xt <- `xt*`}) = [tt] ++ $tablesxt(xt*{xt <- `xt*`}) + def $tablesxt{tabletype#1 : tabletype, tt : tabletype, `xt*` : externtype*}([`TABLE`_externtype{tabletype#1}(tt)] ++ xt*{xt <- `xt*`}) = [tt] ++ $tablesxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:328.1-328.61 def $tablesxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $tablesxt(xt*{xt <- `xt*`}) -- otherwise @@ -1107,7 +112666,7 @@ def $funcsxt(externtype*) : deftype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:330.1-330.24 def $funcsxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:331.1-331.47 - def $funcsxt{dt : deftype, `xt*` : externtype*}([FUNC_externtype((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}) = [dt] ++ $funcsxt(xt*{xt <- `xt*`}) + def $funcsxt{typeuse#1 : typeuse, dt : deftype, `xt*` : externtype*}([`FUNC`_externtype{typeuse#1}((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}) = [dt] ++ $funcsxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:332.1-332.59 def $funcsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $funcsxt(xt*{xt <- `xt*`}) -- otherwise @@ -1136,9 +112695,9 @@ def $minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:402.1-402.39 def $minus_recs([], []) = ([], []) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:403.1-403.63 - def $minus_recs{n : n, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*}([REC_typevar(n)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) + def $minus_recs{n#53 : n, n : n, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*}([`REC`_typevar{n#53}(n)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:404.1-405.45 - def $minus_recs{x : idx, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*, `tv'*` : typevar*, `tu'*` : typeuse*}([_IDX_typevar(x)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = ([_IDX_typevar(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) + def $minus_recs{typeidx#1 : typeidx, x : idx, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*, typeidx#3 : typeidx, `tv'*` : typevar*, `tu'*` : typeuse*}([`_IDX`_typevar{typeidx#1}(x)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = ([`_IDX`_typevar{typeidx#3}(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) -- if ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) } @@ -1180,7 +112739,7 @@ def $subst_heaptype(heaptype : heaptype, typevar*, typeuse*) : heaptype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:344.1-344.112 def $subst_reftype(reftype : reftype, typevar*, typeuse*) : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:380.1-380.87 - def $subst_reftype{`null?` : null?, ht : heaptype, `tv*` : typevar*, `tu*` : typeuse*}(REF_reftype(null?{null <- `null?`}, ht), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = REF_reftype(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_reftype{`null?#227` : null?, heaptype#227 : heaptype, `null?` : null?, ht : heaptype, `tv*` : typevar*, `tu*` : typeuse*, `null?#239` : null?, heaptype#239 : heaptype}(`REF`_reftype{`null?#227`, heaptype#227}(null?{null <- `null?`}, ht), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REF`_reftype{`null?#239`, heaptype#239}(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:345.1-345.112 def $subst_valtype(valtype : valtype, typevar*, typeuse*) : valtype @@ -1191,7 +112750,7 @@ def $subst_valtype(valtype : valtype, typevar*, typeuse*) : valtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:384.1-384.64 def $subst_valtype{rt : reftype, `tv*` : typevar*, `tu*` : typeuse*}((rt : reftype <: valtype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : reftype <: valtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:385.1-385.40 - def $subst_valtype{`tv*` : typevar*, `tu*` : typeuse*}(BOT_valtype, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = BOT_valtype + def $subst_valtype{`tv*` : typevar*, `tu*` : typeuse*}(`BOT`_valtype, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `BOT`_valtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:348.1-348.112 def $subst_storagetype(storagetype : storagetype, typevar*, typeuse*) : storagetype @@ -1203,32 +112762,32 @@ def $subst_storagetype(storagetype : storagetype, typevar*, typeuse*) : storaget ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:349.1-349.112 def $subst_fieldtype(fieldtype : fieldtype, typevar*, typeuse*) : fieldtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:392.1-392.82 - def $subst_fieldtype{`mut?` : mut?, zt : storagetype, `tv*` : typevar*, `tu*` : typeuse*}(`%%`_fieldtype(mut?{mut <- `mut?`}, zt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_fieldtype(mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_fieldtype{`mut?#67` : mut?, storagetype#11 : storagetype, `mut?` : mut?, zt : storagetype, `tv*` : typevar*, `tu*` : typeuse*, `mut?#79` : mut?, storagetype#23 : storagetype}(`%%`_fieldtype{`mut?#67`, storagetype#11}(mut?{mut <- `mut?`}, zt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_fieldtype{`mut?#79`, storagetype#23}(mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:351.1-351.112 def $subst_comptype(comptype : comptype, typevar*, typeuse*) : comptype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:394.1-394.85 - def $subst_comptype{`ft*` : fieldtype*, `tv*` : typevar*, `tu*` : typeuse*}(STRUCT_comptype(`%`_list(ft*{ft <- `ft*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = STRUCT_comptype(`%`_list($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})) + def $subst_comptype{`X*#11` : fieldtype*, `ft*` : fieldtype*, `tv*` : typevar*, `tu*` : typeuse*, `X*#26` : fieldtype*}(`STRUCT`_comptype(`%`_list{`X*#11`}(ft*{ft <- `ft*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `STRUCT`_comptype(`%`_list{`X*#26`}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:395.1-395.81 - def $subst_comptype{ft : fieldtype, `tv*` : typevar*, `tu*` : typeuse*}(ARRAY_comptype(ft), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ARRAY_comptype($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_comptype{fieldtype#1 : fieldtype, ft : fieldtype, `tv*` : typevar*, `tu*` : typeuse*, fieldtype#3 : fieldtype}(`ARRAY`_comptype{fieldtype#1}(ft), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `ARRAY`_comptype{fieldtype#3}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:396.1-396.123 - def $subst_comptype{`t_1*` : valtype*, `t_2*` : valtype*, `tv*` : typevar*, `tu*` : typeuse*}(`FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC%->%`_comptype(`%`_resulttype($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})) + def $subst_comptype{resulttype#1 : resulttype, `X*#41` : valtype*, `t_1*` : valtype*, `X*#54` : valtype*, `t_2*` : valtype*, `tv*` : typevar*, `tu*` : typeuse*, resulttype#4 : resulttype, `X*#69` : valtype*, `X*#82` : valtype*}(`FUNC%->%`_comptype{resulttype#1}(`%`_resulttype{`X*#41`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#54`}(t_2*{t_2 <- `t_2*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC%->%`_comptype{resulttype#4}(`%`_resulttype{`X*#69`}($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype{`X*#82`}($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:352.1-352.112 def $subst_subtype(subtype : subtype, typevar*, typeuse*) : subtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:398.1-399.74 - def $subst_subtype{`final?` : final?, `tu'*` : typeuse*, ct : comptype, `tv*` : typevar*, `tu*` : typeuse*}(SUB_subtype(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = SUB_subtype(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_subtype{`final?#11` : final?, `typeuse*#11` : typeuse*, comptype#11 : comptype, `final?` : final?, `tu'*` : typeuse*, ct : comptype, `tv*` : typevar*, `tu*` : typeuse*, `final?#23` : final?, `typeuse*#23` : typeuse*, comptype#23 : comptype}(`SUB`_subtype{`final?#11`, `typeuse*#11`, comptype#11}(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `SUB`_subtype{`final?#23`, `typeuse*#23`, comptype#23}(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:353.1-353.112 def $subst_rectype(rectype : rectype, typevar*, typeuse*) : rectype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:407.1-408.45 - def $subst_rectype{`st*` : subtype*, `tv*` : typevar*, `tu*` : typeuse*, `tv'*` : typevar*, `tu'*` : typeuse*}(REC_rectype(`%`_list(st*{st <- `st*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = REC_rectype(`%`_list($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})) + def $subst_rectype{`X*#97` : subtype*, `st*` : subtype*, `tv*` : typevar*, `tu*` : typeuse*, `X*#112` : subtype*, `tv'*` : typevar*, `tu'*` : typeuse*}(`REC`_rectype(`%`_list{`X*#97`}(st*{st <- `st*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REC`_rectype(`%`_list{`X*#112`}($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})) -- if ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:354.1-354.112 def $subst_deftype(deftype : deftype, typevar*, typeuse*) : deftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:413.1-413.80 - def $subst_deftype{qt : rectype, i : n, `tv*` : typevar*, `tu*` : typeuse*}(_DEF_deftype(qt, i), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = _DEF_deftype($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i) + def $subst_deftype{rectype#63 : rectype, n#65 : n, qt : rectype, i : n, `tv*` : typevar*, `tu*` : typeuse*, rectype#75 : rectype, n#77 : n}(`_DEF`_deftype{rectype#63, n#65}(qt, i), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `_DEF`_deftype{rectype#75, n#77}($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i) } ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec @@ -1244,80 +112803,80 @@ def $subst_tagtype(tagtype : tagtype, typevar*, typeuse*) : tagtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_globaltype(globaltype : globaltype, typevar*, typeuse*) : globaltype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_globaltype{`mut?` : mut?, t : valtype, `tv*` : typevar*, `tu*` : typeuse*}(`%%`_globaltype(mut?{mut <- `mut?`}, t), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_globaltype(mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_globaltype{`mut?#149` : mut?, valtype#67 : valtype, `mut?` : mut?, t : valtype, `tv*` : typevar*, `tu*` : typeuse*, `mut?#161` : mut?, valtype#79 : valtype}(`%%`_globaltype{`mut?#149`, valtype#67}(mut?{mut <- `mut?`}, t), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_globaltype{`mut?#161`, valtype#79}(mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_memtype(memtype : memtype, typevar*, typeuse*) : memtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_memtype{at : addrtype, lim : limits, `tv*` : typevar*, `tu*` : typeuse*}(`%%PAGE`_memtype(at, lim), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%PAGE`_memtype(at, lim) + def $subst_memtype{addrtype#91 : addrtype, limits#91 : limits, at : addrtype, lim : limits, `tv*` : typevar*, `tu*` : typeuse*, addrtype#103 : addrtype, limits#103 : limits}(`%%PAGE`_memtype{addrtype#91, limits#91}(at, lim), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%PAGE`_memtype{addrtype#103, limits#103}(at, lim) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_tabletype(tabletype : tabletype, typevar*, typeuse*) : tabletype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_tabletype{at : addrtype, lim : limits, rt : reftype, `tv*` : typevar*, `tu*` : typeuse*}(`%%%`_tabletype(at, lim, rt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%%`_tabletype(at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_tabletype{addrtype#115 : addrtype, limits#115 : limits, reftype#51 : reftype, at : addrtype, lim : limits, rt : reftype, `tv*` : typevar*, `tu*` : typeuse*, addrtype#127 : addrtype, limits#127 : limits, reftype#63 : reftype}(`%%%`_tabletype{addrtype#115, limits#115, reftype#51}(at, lim, rt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%%`_tabletype{addrtype#127, limits#127, reftype#63}(at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_externtype(externtype : externtype, typevar*, typeuse*) : externtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{jt : tagtype, `tv*` : typevar*, `tu*` : typeuse*}(TAG_externtype(jt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = TAG_externtype($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_externtype{tagtype#3 : tagtype, jt : tagtype, `tv*` : typevar*, `tu*` : typeuse*, tagtype#5 : tagtype}(`TAG`_externtype{tagtype#3}(jt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TAG`_externtype{tagtype#5}($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{gt : globaltype, `tv*` : typevar*, `tu*` : typeuse*}(GLOBAL_externtype(gt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = GLOBAL_externtype($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_externtype{globaltype#3 : globaltype, gt : globaltype, `tv*` : typevar*, `tu*` : typeuse*, globaltype#5 : globaltype}(`GLOBAL`_externtype{globaltype#3}(gt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `GLOBAL`_externtype{globaltype#5}($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{tt : tabletype, `tv*` : typevar*, `tu*` : typeuse*}(TABLE_externtype(tt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = TABLE_externtype($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_externtype{tabletype#3 : tabletype, tt : tabletype, `tv*` : typevar*, `tu*` : typeuse*, tabletype#5 : tabletype}(`TABLE`_externtype{tabletype#3}(tt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TABLE`_externtype{tabletype#5}($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{mt : memtype, `tv*` : typevar*, `tu*` : typeuse*}(MEM_externtype(mt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = MEM_externtype($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_externtype{memtype#3 : memtype, mt : memtype, `tv*` : typevar*, `tu*` : typeuse*, memtype#5 : memtype}(`MEM`_externtype{memtype#3}(mt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `MEM`_externtype{memtype#5}($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{dt : deftype, `tv*` : typevar*, `tu*` : typeuse*}(FUNC_externtype((dt : deftype <: typeuse)), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = FUNC_externtype(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)) + def $subst_externtype{typeuse#3 : typeuse, dt : deftype, `tv*` : typevar*, `tu*` : typeuse*, typeuse#5 : typeuse}(`FUNC`_externtype{typeuse#3}((dt : deftype <: typeuse)), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC`_externtype{typeuse#5}(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_moduletype{`xt_1*` : externtype*, `xt_2*` : externtype*, `tv*` : typevar*, `tu*` : typeuse*}(`%->%`_moduletype(xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`}), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%->%`_moduletype($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`}) + def $subst_moduletype{`externtype*#18` : externtype*, `xt_1*` : externtype*, `xt_2*` : externtype*, `tv*` : typevar*, `tu*` : typeuse*, `externtype*#38` : externtype*}(`%->%`_moduletype{`externtype*#18`}(xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`}), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%->%`_moduletype{`externtype*#38`}($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_all_valtype(valtype : valtype, typeuse*) : valtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_valtype{t : valtype, `tu*` : typeuse*, n : n, `i*` : nat*}(t, tu^n{tu <- `tu*`}) = $subst_valtype(t, _IDX_typevar(`%`_typeidx(i))^(i%`_comptype(resulttype_1, resulttype_2)) = $free_resulttype(resulttype_1) +++ $free_resulttype(resulttype_2) + def $free_comptype{resulttype#7 : resulttype, resulttype_1 : resulttype, resulttype_2 : resulttype}(`FUNC%->%`_comptype{resulttype#7}(resulttype_1, resulttype_2)) = $free_resulttype(resulttype_1) +++ $free_resulttype(resulttype_2) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:494.1-494.34 def $free_subtype(subtype : subtype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:553.1-554.66 - def $free_subtype{`final?` : final?, `typeuse*` : typeuse*, comptype : comptype}(SUB_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) = $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`}) +++ $free_comptype(comptype) + def $free_subtype{`final?#179` : final?, `typeuse*#179` : typeuse*, comptype#179 : comptype, `final?` : final?, `typeuse*` : typeuse*, comptype : comptype}(`SUB`_subtype{`final?#179`, `typeuse*#179`, comptype#179}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) = $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`}) +++ $free_comptype(comptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:495.1-495.34 def $free_rectype(rectype : rectype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:556.1-556.70 - def $free_rectype{`subtype*` : subtype*}(REC_rectype(`%`_list(subtype*{subtype <- `subtype*`}))) = $free_list($free_subtype(subtype)*{subtype <- `subtype*`}) + def $free_rectype{`X*#302` : subtype*, `subtype*` : subtype*}(`REC`_rectype(`%`_list{`X*#302`}(subtype*{subtype <- `subtype*`}))) = $free_list($free_subtype(subtype)*{subtype <- `subtype*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:523.1-523.34 def $free_deftype(deftype : deftype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:524.1-524.59 - def $free_deftype{rectype : rectype, n : n}(_DEF_deftype(rectype, n)) = $free_rectype(rectype) + def $free_deftype{rectype#241 : rectype, n#247 : n, rectype : rectype, n : n}(`_DEF`_deftype{rectype#241, n#247}(rectype, n)) = $free_rectype(rectype) } ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec @@ -1489,22 +113048,22 @@ def $free_tagtype(tagtype : tagtype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_globaltype(globaltype : globaltype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_globaltype{`mut?` : mut?, valtype : valtype}(`%%`_globaltype(mut?{mut <- `mut?`}, valtype)) = $free_valtype(valtype) + def $free_globaltype{`mut?#253` : mut?, valtype#127 : valtype, `mut?` : mut?, valtype : valtype}(`%%`_globaltype{`mut?#253`, valtype#127}(mut?{mut <- `mut?`}, valtype)) = $free_valtype(valtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_memtype(memtype : memtype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_memtype{addrtype : addrtype, limits : limits}(`%%PAGE`_memtype(addrtype, limits)) = $free_addrtype((addrtype : addrtype <: numtype)) + def $free_memtype{addrtype#211 : addrtype, limits#211 : limits, addrtype : addrtype, limits : limits}(`%%PAGE`_memtype{addrtype#211, limits#211}(addrtype, limits)) = $free_addrtype((addrtype : addrtype <: numtype)) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_tabletype(tabletype : tabletype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_tabletype{addrtype : addrtype, limits : limits, reftype : reftype}(`%%%`_tabletype(addrtype, limits, reftype)) = $free_addrtype((addrtype : addrtype <: numtype)) +++ $free_reftype(reftype) + def $free_tabletype{addrtype#223 : addrtype, limits#223 : limits, reftype#111 : reftype, addrtype : addrtype, limits : limits, reftype : reftype}(`%%%`_tabletype{addrtype#223, limits#223, reftype#111}(addrtype, limits, reftype)) = $free_addrtype((addrtype : addrtype <: numtype)) +++ $free_reftype(reftype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_datatype(datatype : datatype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_datatype(OK_datatype) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_datatype{`typeidx*#19` : typeidx*, `funcidx*#19` : funcidx*, `globalidx*#19` : globalidx*, `tableidx*#19` : tableidx*, `memidx*#19` : memidx*, `elemidx*#19` : elemidx*, `dataidx*#19` : dataidx*, `localidx*#19` : localidx*, `labelidx*#19` : labelidx*}(`OK`_datatype) = {`TYPES`{`typeidx*#19`} [], `FUNCS`{`funcidx*#19`} [], `GLOBALS`{`globalidx*#19`} [], `TABLES`{`tableidx*#19`} [], `MEMS`{`memidx*#19`} [], `ELEMS`{`elemidx*#19`} [], `DATAS`{`dataidx*#19`} [], `LOCALS`{`localidx*#19`} [], `LABELS`{`labelidx*#19`} []} ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_elemtype(elemtype : elemtype) : free @@ -1514,20 +113073,20 @@ def $free_elemtype(elemtype : elemtype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_externtype(externtype : externtype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{tagtype : tagtype}(TAG_externtype(tagtype)) = $free_tagtype(tagtype) + def $free_externtype{tagtype#7 : tagtype, tagtype : tagtype}(`TAG`_externtype{tagtype#7}(tagtype)) = $free_tagtype(tagtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{globaltype : globaltype}(GLOBAL_externtype(globaltype)) = $free_globaltype(globaltype) + def $free_externtype{globaltype#7 : globaltype, globaltype : globaltype}(`GLOBAL`_externtype{globaltype#7}(globaltype)) = $free_globaltype(globaltype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{memtype : memtype}(MEM_externtype(memtype)) = $free_memtype(memtype) + def $free_externtype{memtype#7 : memtype, memtype : memtype}(`MEM`_externtype{memtype#7}(memtype)) = $free_memtype(memtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{tabletype : tabletype}(TABLE_externtype(tabletype)) = $free_tabletype(tabletype) + def $free_externtype{tabletype#7 : tabletype, tabletype : tabletype}(`TABLE`_externtype{tabletype#7}(tabletype)) = $free_tabletype(tabletype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{typeuse : typeuse}(FUNC_externtype(typeuse)) = $free_typeuse(typeuse) + def $free_externtype{typeuse#7 : typeuse, typeuse : typeuse}(`FUNC`_externtype{typeuse#7}(typeuse)) = $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_moduletype(moduletype : moduletype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_moduletype{`externtype_1*` : externtype*, `externtype_2*` : externtype*}(`%->%`_moduletype(externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})) = $free_list($free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`}) +++ $free_list($free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`}) + def $free_moduletype{`externtype*#88` : externtype*, `externtype_1*` : externtype*, `externtype_2*` : externtype*}(`%->%`_moduletype{`externtype*#88`}(externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})) = $free_list($free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`}) +++ $free_list($free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax num_(numtype : numtype) @@ -1540,7 +113099,7 @@ syntax num_(numtype : numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax pack_{Pnn : Pnn}(Pnn) = iN($psizenn(Pnn)) +syntax pack_(Pnn : Pnn)(Pnn) = iN($psizenn(Pnn)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax lane_(lanetype : lanetype) @@ -1557,7 +113116,7 @@ syntax lane_(lanetype : lanetype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vec_{Vnn : Vnn}(Vnn) = vN($vsize(Vnn)) +syntax vec_(Vnn : Vnn)(Vnn) = vN($vsize(Vnn)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax lit_(storagetype : storagetype) @@ -1580,116 +113139,116 @@ syntax sz = ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax sx = - | U - | S + | `U` + | `S` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax unop_(numtype : numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax unop_{Inn : Inn}((Inn : Inn <: numtype)) = - | CLZ - | CTZ - | POPCNT - | EXTEND{sz : sz}(sz : sz) - -- if (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype))) + | `CLZ` + | `CTZ` + | `POPCNT` + | `EXTEND`{sz : sz, i#1051 : nat}(sz : sz) + -- if (sz!`%`_sz{i#1051}.0 < $sizenn((Inn : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax unop_{Fnn : Fnn}((Fnn : Fnn <: numtype)) = - | ABS - | NEG - | SQRT - | CEIL - | FLOOR - | TRUNC - | NEAREST + | `ABS` + | `NEG` + | `SQRT` + | `CEIL` + | `FLOOR` + | `TRUNC` + | `NEAREST` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax binop_(numtype : numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax binop_{Inn : Inn}((Inn : Inn <: numtype)) = - | ADD - | SUB - | MUL - | DIV{sx : sx}(sx : sx) - | REM{sx : sx}(sx : sx) - | AND - | OR - | XOR - | SHL - | SHR{sx : sx}(sx : sx) - | ROTL - | ROTR + | `ADD` + | `SUB` + | `MUL` + | `DIV`{sx : sx}(sx : sx) + | `REM`{sx : sx}(sx : sx) + | `AND` + | `OR` + | `XOR` + | `SHL` + | `SHR`{sx : sx}(sx : sx) + | `ROTL` + | `ROTR` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax binop_{Fnn : Fnn}((Fnn : Fnn <: numtype)) = - | ADD - | SUB - | MUL - | DIV - | MIN - | MAX - | COPYSIGN + | `ADD` + | `SUB` + | `MUL` + | `DIV` + | `MIN` + | `MAX` + | `COPYSIGN` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax testop_{Inn : Inn}((Inn : Inn <: numtype)) = - | EQZ +syntax testop_(Inn : Inn)((Inn : Inn <: numtype)) = + | `EQZ` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax relop_(numtype : numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax relop_{Inn : Inn}((Inn : Inn <: numtype)) = - | EQ - | NE - | LT{sx : sx}(sx : sx) - | GT{sx : sx}(sx : sx) - | LE{sx : sx}(sx : sx) - | GE{sx : sx}(sx : sx) + | `EQ` + | `NE` + | `LT`{sx : sx}(sx : sx) + | `GT`{sx : sx}(sx : sx) + | `LE`{sx : sx}(sx : sx) + | `GE`{sx : sx}(sx : sx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax relop_{Fnn : Fnn}((Fnn : Fnn <: numtype)) = - | EQ - | NE - | LT - | GT - | LE - | GE + | `EQ` + | `NE` + | `LT` + | `GT` + | `LE` + | `GE` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax cvtop__(numtype_1 : numtype, numtype_2 : numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax cvtop__{Inn_1 : Inn, Inn_2 : Inn}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype)) = - | EXTEND{sx : sx}(sx : sx) + | `EXTEND`{sx : sx}(sx : sx) -- if ($sizenn1((Inn_1 : Inn <: numtype)) < $sizenn2((Inn_2 : Inn <: numtype))) - | WRAP + | `WRAP` -- if ($sizenn1((Inn_1 : Inn <: numtype)) > $sizenn2((Inn_2 : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax cvtop__{Inn_1 : Inn, Fnn_2 : Fnn}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype)) = - | CONVERT{sx : sx}(sx : sx) - | REINTERPRET + | `CONVERT`{sx : sx}(sx : sx) + | `REINTERPRET` -- if ($sizenn1((Inn_1 : Inn <: numtype)) = $sizenn2((Fnn_2 : Fnn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax cvtop__{Fnn_1 : Fnn, Inn_2 : Inn}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype)) = - | TRUNC{sx : sx}(sx : sx) - | TRUNC_SAT{sx : sx}(sx : sx) - | REINTERPRET + | `TRUNC`{sx : sx}(sx : sx) + | `TRUNC_SAT`{sx : sx}(sx : sx) + | `REINTERPRET` -- if ($sizenn1((Fnn_1 : Fnn <: numtype)) = $sizenn2((Inn_2 : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype)) = - | PROMOTE + | `PROMOTE` -- if ($sizenn1((Fnn_1 : Fnn <: numtype)) < $sizenn2((Fnn_2 : Fnn <: numtype))) - | DEMOTE + | `DEMOTE` -- if ($sizenn1((Fnn_1 : Fnn <: numtype)) > $sizenn2((Fnn_2 : Fnn <: numtype))) @@ -1700,23 +113259,23 @@ syntax dim = ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax shape = - | `%X%`{lanetype : lanetype, dim : dim}(lanetype : lanetype, dim : dim) - -- if (($lsize(lanetype) * dim!`%`_dim.0) = 128) + | `%X%`{lanetype : lanetype, dim : dim, i#1053 : nat}(lanetype : lanetype, dim : dim) + -- if (($lsize(lanetype) * dim!`%`_dim{i#1053}.0) = 128) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $dim(shape : shape) : dim ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $dim{Lnn : Lnn, N : N}(`%X%`_shape(Lnn, `%`_dim(N))) = `%`_dim(N) + def $dim{lanetype#11 : lanetype, dim#11 : dim, i#1058 : nat, Lnn : Lnn, i#1065 : nat, N : N, i#1073 : nat}(`%X%`_shape{lanetype#11, dim#11, i#1058}(Lnn, `%`_dim{i#1065}(N))) = `%`_dim{i#1073}(N) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $lanetype(shape : shape) : lanetype ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $lanetype{Lnn : Lnn, N : N}(`%X%`_shape(Lnn, `%`_dim(N))) = Lnn + def $lanetype{lanetype#23 : lanetype, dim#23 : dim, i#1078 : nat, Lnn : Lnn, i#1085 : nat, N : N}(`%X%`_shape{lanetype#23, dim#23, i#1078}(Lnn, `%`_dim{i#1085}(N))) = Lnn ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $unpackshape(shape : shape) : numtype ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $unpackshape{Lnn : Lnn, N : N}(`%X%`_shape(Lnn, `%`_dim(N))) = $lunpack(Lnn) + def $unpackshape{lanetype#35 : lanetype, dim#35 : dim, i#1090 : nat, Lnn : Lnn, i#1097 : nat, N : N}(`%X%`_shape{lanetype#35, dim#35, i#1090}(Lnn, `%`_dim{i#1097}(N))) = $lunpack(Lnn) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax ishape = @@ -1726,68 +113285,68 @@ syntax ishape = ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax bshape = | `%`{shape : shape}(shape : shape) - -- if ($lanetype(shape) = I8_lanetype) + -- if ($lanetype(shape) = `I8`_lanetype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax zero = - | ZERO + | `ZERO` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax half = - | LOW - | HIGH + | `LOW` + | `HIGH` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vvunop = - | NOT + | `NOT` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vvbinop = - | AND - | ANDNOT - | OR - | XOR + | `AND` + | `ANDNOT` + | `OR` + | `XOR` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vvternop = - | BITSELECT + | `BITSELECT` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vvtestop = - | ANY_TRUE + | `ANY_TRUE` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vunop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vunop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = - | ABS - | NEG - | POPCNT + syntax vunop_{lanetype#65 : lanetype, dim#65 : dim, i#1108 : nat, Jnn : Jnn, i#1115 : nat, M : M}(`%X%`_shape{lanetype#65, dim#65, i#1108}((Jnn : Jnn <: lanetype), `%`_dim{i#1115}(M))) = + | `ABS` + | `NEG` + | `POPCNT` -- if ($lsizenn((Jnn : Jnn <: lanetype)) = 8) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vunop_{Fnn : Fnn, M : M}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))) = - | ABS - | NEG - | SQRT - | CEIL - | FLOOR - | TRUNC - | NEAREST + syntax vunop_{lanetype#77 : lanetype, dim#77 : dim, i#1120 : nat, Fnn : Fnn, i#1127 : nat, M : M}(`%X%`_shape{lanetype#77, dim#77, i#1120}((Fnn : Fnn <: lanetype), `%`_dim{i#1127}(M))) = + | `ABS` + | `NEG` + | `SQRT` + | `CEIL` + | `FLOOR` + | `TRUNC` + | `NEAREST` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vbinop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vbinop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = - | ADD - | SUB - | ADD_SAT{sx : sx}(sx : sx) + syntax vbinop_{lanetype#89 : lanetype, dim#89 : dim, i#1132 : nat, Jnn : Jnn, i#1139 : nat, M : M}(`%X%`_shape{lanetype#89, dim#89, i#1132}((Jnn : Jnn <: lanetype), `%`_dim{i#1139}(M))) = + | `ADD` + | `SUB` + | `ADD_SAT`{sx : sx}(sx : sx) -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 16) - | SUB_SAT{sx : sx}(sx : sx) + | `SUB_SAT`{sx : sx}(sx : sx) -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 16) - | MUL + | `MUL` -- if ($lsizenn((Jnn : Jnn <: lanetype)) >= 16) | `AVGRU` -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 16) @@ -1795,87 +113354,87 @@ syntax vbinop_(shape : shape) -- if ($lsizenn((Jnn : Jnn <: lanetype)) = 16) | `RELAXED_Q15MULRS` -- if ($lsizenn((Jnn : Jnn <: lanetype)) = 16) - | MIN{sx : sx}(sx : sx) + | `MIN`{sx : sx}(sx : sx) -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 32) - | MAX{sx : sx}(sx : sx) + | `MAX`{sx : sx}(sx : sx) -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 32) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vbinop_{Fnn : Fnn, M : M}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))) = - | ADD - | SUB - | MUL - | DIV - | MIN - | MAX - | PMIN - | PMAX - | RELAXED_MIN - | RELAXED_MAX + syntax vbinop_{lanetype#101 : lanetype, dim#101 : dim, i#1144 : nat, Fnn : Fnn, i#1151 : nat, M : M}(`%X%`_shape{lanetype#101, dim#101, i#1144}((Fnn : Fnn <: lanetype), `%`_dim{i#1151}(M))) = + | `ADD` + | `SUB` + | `MUL` + | `DIV` + | `MIN` + | `MAX` + | `PMIN` + | `PMAX` + | `RELAXED_MIN` + | `RELAXED_MAX` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vternop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vternop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = - | RELAXED_LANESELECT + syntax vternop_{lanetype#113 : lanetype, dim#113 : dim, i#1156 : nat, Jnn : Jnn, i#1163 : nat, M : M}(`%X%`_shape{lanetype#113, dim#113, i#1156}((Jnn : Jnn <: lanetype), `%`_dim{i#1163}(M))) = + | `RELAXED_LANESELECT` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vternop_{Fnn : Fnn, M : M}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))) = - | RELAXED_MADD - | RELAXED_NMADD + syntax vternop_{lanetype#125 : lanetype, dim#125 : dim, i#1168 : nat, Fnn : Fnn, i#1175 : nat, M : M}(`%X%`_shape{lanetype#125, dim#125, i#1168}((Fnn : Fnn <: lanetype), `%`_dim{i#1175}(M))) = + | `RELAXED_MADD` + | `RELAXED_NMADD` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vtestop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = - | ALL_TRUE +syntax vtestop_(lanetype#137 : lanetype, dim#137 : dim, i#1180 : nat, Jnn : Jnn, i#1187 : nat, M : M)(`%X%`_shape{lanetype#137, dim#137, i#1180}((Jnn : Jnn <: lanetype), `%`_dim{i#1187}(M))) = + | `ALL_TRUE` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vrelop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vrelop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = - | EQ - | NE - | LT{sx : sx}(sx : sx) - -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = S_sx)) - | GT{sx : sx}(sx : sx) - -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = S_sx)) - | LE{sx : sx}(sx : sx) - -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = S_sx)) - | GE{sx : sx}(sx : sx) - -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = S_sx)) + syntax vrelop_{lanetype#149 : lanetype, dim#149 : dim, i#1192 : nat, Jnn : Jnn, i#1199 : nat, M : M}(`%X%`_shape{lanetype#149, dim#149, i#1192}((Jnn : Jnn <: lanetype), `%`_dim{i#1199}(M))) = + | `EQ` + | `NE` + | `LT`{sx : sx}(sx : sx) + -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx)) + | `GT`{sx : sx}(sx : sx) + -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx)) + | `LE`{sx : sx}(sx : sx) + -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx)) + | `GE`{sx : sx}(sx : sx) + -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vrelop_{Fnn : Fnn, M : M}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))) = - | EQ - | NE - | LT - | GT - | LE - | GE + syntax vrelop_{lanetype#161 : lanetype, dim#161 : dim, i#1204 : nat, Fnn : Fnn, i#1211 : nat, M : M}(`%X%`_shape{lanetype#161, dim#161, i#1204}((Fnn : Fnn <: lanetype), `%`_dim{i#1211}(M))) = + | `EQ` + | `NE` + | `LT` + | `GT` + | `LE` + | `GE` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vshiftop_{Jnn : Jnn, M : M}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))) = - | SHL - | SHR{sx : sx}(sx : sx) +syntax vshiftop_(shape#11 : shape, Jnn#4 : Jnn, lanetype#173 : lanetype, dim#173 : dim, i#1216 : nat, Jnn : Jnn, i#1223 : nat, M : M)(`%`_ishape{shape#11, Jnn#4}(`%X%`_shape{lanetype#173, dim#173, i#1216}((Jnn : Jnn <: lanetype), `%`_dim{i#1223}(M)))) = + | `SHL` + | `SHR`{sx : sx}(sx : sx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vswizzlop_{M : M}(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(M)))) = - | SWIZZLE - | RELAXED_SWIZZLE +syntax vswizzlop_(shape#23 : shape, lanetype#185 : lanetype, dim#185 : dim, i#1228 : nat, i#1235 : nat, M : M)(`%`_bshape{shape#23}(`%X%`_shape{lanetype#185, dim#185, i#1228}(`I8`_lanetype, `%`_dim{i#1235}(M)))) = + | `SWIZZLE` + | `RELAXED_SWIZZLE` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))) = - | EXTADD_PAIRWISE{sx : sx}(sx : sx) +syntax vextunop__(shape#35 : shape, Jnn#8 : Jnn, lanetype#197 : lanetype, dim#197 : dim, i#1240 : nat, Jnn_1 : Jnn, i#1247 : nat, M_1 : M, shape#47 : shape, Jnn#12 : Jnn, lanetype#209 : lanetype, dim#209 : dim, i#1252 : nat, Jnn_2 : Jnn, i#1259 : nat, M_2 : M)(`%`_ishape{shape#35, Jnn#8}(`%X%`_shape{lanetype#197, dim#197, i#1240}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1247}(M_1))), `%`_ishape{shape#47, Jnn#12}(`%X%`_shape{lanetype#209, dim#209, i#1252}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1259}(M_2)))) = + | `EXTADD_PAIRWISE`{sx : sx}(sx : sx) -- if ((16 <= (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) <= 32))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))) = - | EXTMUL{half : half, sx : sx}(half : half, sx : sx) +syntax vextbinop__(shape#59 : shape, Jnn#16 : Jnn, lanetype#221 : lanetype, dim#221 : dim, i#1264 : nat, Jnn_1 : Jnn, i#1271 : nat, M_1 : M, shape#71 : shape, Jnn#20 : Jnn, lanetype#233 : lanetype, dim#233 : dim, i#1276 : nat, Jnn_2 : Jnn, i#1283 : nat, M_2 : M)(`%`_ishape{shape#59, Jnn#16}(`%X%`_shape{lanetype#221, dim#221, i#1264}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1271}(M_1))), `%`_ishape{shape#71, Jnn#20}(`%X%`_shape{lanetype#233, dim#233, i#1276}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1283}(M_2)))) = + | `EXTMUL`{half : half, sx : sx}(half : half, sx : sx) -- if (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) >= 16)) | `DOTS` -- if (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) @@ -1883,35 +113442,35 @@ syntax vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M}(`%`_ishape(`%X%`_ -- if (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 16)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vextternop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))) = +syntax vextternop__(shape#83 : shape, Jnn#24 : Jnn, lanetype#245 : lanetype, dim#245 : dim, i#1288 : nat, Jnn_1 : Jnn, i#1295 : nat, M_1 : M, shape#95 : shape, Jnn#28 : Jnn, lanetype#257 : lanetype, dim#257 : dim, i#1300 : nat, Jnn_2 : Jnn, i#1307 : nat, M_2 : M)(`%`_ishape{shape#83, Jnn#24}(`%X%`_shape{lanetype#245, dim#245, i#1288}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1295}(M_1))), `%`_ishape{shape#95, Jnn#28}(`%X%`_shape{lanetype#257, dim#257, i#1300}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1307}(M_2)))) = | `RELAXED_DOT_ADDS` -- if (((4 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vcvtop__(shape_1 : shape, shape_2 : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vcvtop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))) = - | EXTEND{half : half, sx : sx}(half : half, sx : sx) + syntax vcvtop__{lanetype#269 : lanetype, dim#269 : dim, i#1312 : nat, Jnn_1 : Jnn, i#1319 : nat, M_1 : M, lanetype#281 : lanetype, dim#281 : dim, i#1324 : nat, Jnn_2 : Jnn, i#1331 : nat, M_2 : M}(`%X%`_shape{lanetype#269, dim#269, i#1312}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1319}(M_1)), `%X%`_shape{lanetype#281, dim#281, i#1324}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1331}(M_2))) = + | `EXTEND`{half : half, sx : sx}(half : half, sx : sx) -- if ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vcvtop__{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))) = - | CONVERT{`half?` : half?, sx : sx}(half?{half <- `half?`} : half?, sx : sx) - -- if (((($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32)) /\ (half?{half <- `half?`} = ?())) \/ (($sizenn2((Fnn_2 : Fnn <: numtype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (half?{half <- `half?`} = ?(LOW_half)))) + syntax vcvtop__{lanetype#293 : lanetype, dim#293 : dim, i#1336 : nat, Jnn_1 : Jnn, i#1343 : nat, M_1 : M, lanetype#305 : lanetype, dim#305 : dim, i#1348 : nat, Fnn_2 : Fnn, i#1355 : nat, M_2 : M}(`%X%`_shape{lanetype#293, dim#293, i#1336}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1343}(M_1)), `%X%`_shape{lanetype#305, dim#305, i#1348}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#1355}(M_2))) = + | `CONVERT`{`half?` : half?, sx : sx}(`half?` : half?, sx : sx) + -- if (((($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32)) /\ (half?{half <- `half?`} = ?())) \/ (($sizenn2((Fnn_2 : Fnn <: numtype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (half?{half <- `half?`} = ?(`LOW`_half)))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vcvtop__{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))) = - | TRUNC_SAT{sx : sx, `zero?` : zero?}(sx : sx, zero?{zero <- `zero?`} : zero?) - -- if (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(ZERO_zero)))) - | RELAXED_TRUNC{sx : sx, `zero?` : zero?}(sx : sx, zero?{zero <- `zero?`} : zero?) - -- if (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(ZERO_zero)))) + syntax vcvtop__{lanetype#317 : lanetype, dim#317 : dim, i#1360 : nat, Fnn_1 : Fnn, i#1367 : nat, M_1 : M, lanetype#329 : lanetype, dim#329 : dim, i#1372 : nat, Jnn_2 : Jnn, i#1379 : nat, M_2 : M}(`%X%`_shape{lanetype#317, dim#317, i#1360}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#1367}(M_1)), `%X%`_shape{lanetype#329, dim#329, i#1372}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1379}(M_2))) = + | `TRUNC_SAT`{sx : sx, `zero?` : zero?}(sx : sx, `zero?` : zero?) + -- if (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero)))) + | `RELAXED_TRUNC`{sx : sx, `zero?` : zero?}(sx : sx, `zero?` : zero?) + -- if (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero)))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))) = - | DEMOTE{zero : zero}(zero : zero) + syntax vcvtop__{lanetype#341 : lanetype, dim#341 : dim, i#1384 : nat, Fnn_1 : Fnn, i#1391 : nat, M_1 : M, lanetype#353 : lanetype, dim#353 : dim, i#1396 : nat, Fnn_2 : Fnn, i#1403 : nat, M_2 : M}(`%X%`_shape{lanetype#341, dim#341, i#1384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#1391}(M_1)), `%X%`_shape{lanetype#353, dim#353, i#1396}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#1403}(M_2))) = + | `DEMOTE`{zero : zero}(zero : zero) -- if ($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $sizenn2((Fnn_2 : Fnn <: numtype)))) | `PROMOTELOW` -- if ((2 * $sizenn1((Fnn_1 : Fnn <: numtype))) = $sizenn2((Fnn_2 : Fnn <: numtype))) @@ -1920,32 +113479,32 @@ syntax vcvtop__(shape_1 : shape, shape_2 : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax memarg = { - ALIGN{u32 : u32} u32, - OFFSET{u64 : u64} u64 + `ALIGN`{u32 : u32} u32, + `OFFSET`{u64 : u64} u64 } ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax loadop_{Inn : Inn}((Inn : Inn <: numtype)) = - | `%_%`{sz : sz, sx : sx}(sz : sz, sx : sx) - -- if (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype))) +syntax loadop_(Inn : Inn)((Inn : Inn <: numtype)) = + | `%_%`{sz : sz, sx : sx, i#1405 : nat}(sz : sz, sx : sx) + -- if (sz!`%`_sz{i#1405}.0 < $sizenn((Inn : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax storeop_{Inn : Inn}((Inn : Inn <: numtype)) = - | `%`{sz : sz}(sz : sz) - -- if (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype))) +syntax storeop_(Inn : Inn)((Inn : Inn <: numtype)) = + | `%`{sz : sz, i#1407 : nat}(sz : sz) + -- if (sz!`%`_sz{i#1407}.0 < $sizenn((Inn : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vloadop_{vectype : vectype}(vectype) = - | `SHAPE%X%_%`{sz : sz, M : M, sx : sx}(sz : sz, M : M, sx : sx) - -- if (((sz!`%`_sz.0 * M) : nat <:> rat) = (($vsize(vectype) : nat <:> rat) / (2 : nat <:> rat))) - | SPLAT{sz : sz}(sz : sz) - | ZERO{sz : sz}(sz : sz) - -- if (sz!`%`_sz.0 >= 32) +syntax vloadop_(vectype : vectype)(vectype) = + | `SHAPE%X%_%`{sz : sz, M : M, sx : sx, i#1409 : nat}(sz : sz, M : M, sx : sx) + -- if (((sz!`%`_sz{i#1409}.0 * M) : nat <:> rat) = (($vsize(vectype) : nat <:> rat) / (2 : nat <:> rat))) + | `SPLAT`{sz : sz}(sz : sz) + | `ZERO`{sz : sz, i#1411 : nat}(sz : sz) + -- if (sz!`%`_sz{i#1411}.0 >= 32) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax blocktype = - | _RESULT{`valtype?` : valtype?}(valtype?{valtype <- `valtype?`} : valtype?) - | _IDX{typeidx : typeidx}(typeidx : typeidx) + | `_RESULT`{`valtype?` : valtype?}(`valtype?` : valtype?) + | `_IDX`{typeidx : typeidx}(typeidx : typeidx) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax addr = nat @@ -1970,21 +113529,21 @@ rec { ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:35.1-42.23 syntax addrref = - | REF.I31_NUM{u31 : u31}(u31 : u31) - | REF.STRUCT_ADDR{structaddr : structaddr}(structaddr : structaddr) - | REF.ARRAY_ADDR{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) - | REF.FUNC_ADDR{funcaddr : funcaddr}(funcaddr : funcaddr) - | REF.EXN_ADDR{exnaddr : exnaddr}(exnaddr : exnaddr) - | REF.HOST_ADDR{hostaddr : hostaddr}(hostaddr : hostaddr) - | REF.EXTERN{addrref : addrref}(addrref : addrref) + | `REF.I31_NUM`{u31 : u31}(u31 : u31) + | `REF.STRUCT_ADDR`{structaddr : structaddr}(structaddr : structaddr) + | `REF.ARRAY_ADDR`{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) + | `REF.FUNC_ADDR`{funcaddr : funcaddr}(funcaddr : funcaddr) + | `REF.EXN_ADDR`{exnaddr : exnaddr}(exnaddr : exnaddr) + | `REF.HOST_ADDR`{hostaddr : hostaddr}(hostaddr : hostaddr) + | `REF.EXTERN`{addrref : addrref}(addrref : addrref) } ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax catch = - | CATCH{tagidx : tagidx, labelidx : labelidx}(tagidx : tagidx, labelidx : labelidx) - | CATCH_REF{tagidx : tagidx, labelidx : labelidx}(tagidx : tagidx, labelidx : labelidx) - | CATCH_ALL{labelidx : labelidx}(labelidx : labelidx) - | CATCH_ALL_REF{labelidx : labelidx}(labelidx : labelidx) + | `CATCH`{tagidx : tagidx, labelidx : labelidx}(tagidx : tagidx, labelidx : labelidx) + | `CATCH_REF`{tagidx : tagidx, labelidx : labelidx}(tagidx : tagidx, labelidx : labelidx) + | `CATCH_ALL`{labelidx : labelidx}(labelidx : labelidx) + | `CATCH_ALL_REF`{labelidx : labelidx}(labelidx : labelidx) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax dataaddr = addr @@ -2006,51 +113565,51 @@ syntax tagaddr = addr ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax externaddr = - | TAG{tagaddr : tagaddr}(tagaddr : tagaddr) - | GLOBAL{globaladdr : globaladdr}(globaladdr : globaladdr) - | MEM{memaddr : memaddr}(memaddr : memaddr) - | TABLE{tableaddr : tableaddr}(tableaddr : tableaddr) - | FUNC{funcaddr : funcaddr}(funcaddr : funcaddr) + | `TAG`{tagaddr : tagaddr}(tagaddr : tagaddr) + | `GLOBAL`{globaladdr : globaladdr}(globaladdr : globaladdr) + | `MEM`{memaddr : memaddr}(memaddr : memaddr) + | `TABLE`{tableaddr : tableaddr}(tableaddr : tableaddr) + | `FUNC`{funcaddr : funcaddr}(funcaddr : funcaddr) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax exportinst = { - NAME{name : name} name, - ADDR{externaddr : externaddr} externaddr + `NAME`{name : name} name, + `ADDR`{externaddr : externaddr} externaddr } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax moduleinst = { - TYPES{`deftype*` : deftype*} deftype*, - TAGS{`tagaddr*` : tagaddr*} tagaddr*, - GLOBALS{`globaladdr*` : globaladdr*} globaladdr*, - MEMS{`memaddr*` : memaddr*} memaddr*, - TABLES{`tableaddr*` : tableaddr*} tableaddr*, - FUNCS{`funcaddr*` : funcaddr*} funcaddr*, - DATAS{`dataaddr*` : dataaddr*} dataaddr*, - ELEMS{`elemaddr*` : elemaddr*} elemaddr*, - EXPORTS{`exportinst*` : exportinst*} exportinst* + `TYPES`{`deftype*` : deftype*} deftype*, + `TAGS`{`tagaddr*` : tagaddr*} tagaddr*, + `GLOBALS`{`globaladdr*` : globaladdr*} globaladdr*, + `MEMS`{`memaddr*` : memaddr*} memaddr*, + `TABLES`{`tableaddr*` : tableaddr*} tableaddr*, + `FUNCS`{`funcaddr*` : funcaddr*} funcaddr*, + `DATAS`{`dataaddr*` : dataaddr*} dataaddr*, + `ELEMS`{`elemaddr*` : elemaddr*} elemaddr*, + `EXPORTS`{`exportinst*` : exportinst*} exportinst* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax val = - | CONST{numtype : numtype, num_ : num_(numtype)}(numtype : numtype, num_ : num_(numtype)) - | VCONST{vectype : vectype, vec_ : vec_(vectype)}(vectype : vectype, vec_ : vec_(vectype)) - | REF.NULL{heaptype : heaptype}(heaptype : heaptype) - | REF.I31_NUM{u31 : u31}(u31 : u31) - | REF.STRUCT_ADDR{structaddr : structaddr}(structaddr : structaddr) - | REF.ARRAY_ADDR{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) - | REF.FUNC_ADDR{funcaddr : funcaddr}(funcaddr : funcaddr) - | REF.EXN_ADDR{exnaddr : exnaddr}(exnaddr : exnaddr) - | REF.HOST_ADDR{hostaddr : hostaddr}(hostaddr : hostaddr) - | REF.EXTERN{addrref : addrref}(addrref : addrref) + | `CONST`{numtype : numtype}(numtype : numtype, num_(numtype)) + | `VCONST`{vectype : vectype}(vectype : vectype, vec_(vectype)) + | `REF.I31_NUM`{u31 : u31}(u31 : u31) + | `REF.STRUCT_ADDR`{structaddr : structaddr}(structaddr : structaddr) + | `REF.ARRAY_ADDR`{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) + | `REF.FUNC_ADDR`{funcaddr : funcaddr}(funcaddr : funcaddr) + | `REF.EXN_ADDR`{exnaddr : exnaddr}(exnaddr : exnaddr) + | `REF.HOST_ADDR`{hostaddr : hostaddr}(hostaddr : hostaddr) + | `REF.EXTERN`{addrref : addrref}(addrref : addrref) + | `REF.NULL`{heaptype : heaptype}(heaptype : heaptype) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax frame = { - LOCALS{`val?*` : val?*} val?*, - MODULE{moduleinst : moduleinst} moduleinst + `LOCALS`{`val?*` : val?*} val?*, + `MODULE`{moduleinst : moduleinst} moduleinst } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec @@ -2058,124 +113617,124 @@ rec { ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:136.1-142.9 syntax instr = - | NOP - | UNREACHABLE - | DROP - | SELECT{`valtype*?` : valtype*?}(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`} : valtype*?) - | BLOCK{blocktype : blocktype, `instr*` : instr*}(blocktype : blocktype, instr*{instr <- `instr*`} : instr*) - | LOOP{blocktype : blocktype, `instr*` : instr*}(blocktype : blocktype, instr*{instr <- `instr*`} : instr*) - | `IF%%ELSE%`{blocktype : blocktype, `instr*` : instr*}(blocktype : blocktype, instr*{instr <- `instr*`} : instr*, instr*) - | BR{labelidx : labelidx}(labelidx : labelidx) - | BR_IF{labelidx : labelidx}(labelidx : labelidx) - | BR_TABLE{`labelidx*` : labelidx*}(labelidx*{labelidx <- `labelidx*`} : labelidx*, labelidx) - | BR_ON_NULL{labelidx : labelidx}(labelidx : labelidx) - | BR_ON_NON_NULL{labelidx : labelidx}(labelidx : labelidx) - | BR_ON_CAST{labelidx : labelidx, reftype : reftype}(labelidx : labelidx, reftype : reftype, reftype) - | BR_ON_CAST_FAIL{labelidx : labelidx, reftype : reftype}(labelidx : labelidx, reftype : reftype, reftype) - | CALL{funcidx : funcidx}(funcidx : funcidx) - | CALL_REF{typeuse : typeuse}(typeuse : typeuse) - | CALL_INDIRECT{tableidx : tableidx, typeuse : typeuse}(tableidx : tableidx, typeuse : typeuse) - | RETURN - | RETURN_CALL{funcidx : funcidx}(funcidx : funcidx) - | RETURN_CALL_REF{typeuse : typeuse}(typeuse : typeuse) - | RETURN_CALL_INDIRECT{tableidx : tableidx, typeuse : typeuse}(tableidx : tableidx, typeuse : typeuse) - | THROW{tagidx : tagidx}(tagidx : tagidx) - | THROW_REF - | TRY_TABLE{blocktype : blocktype, list : list(syntax catch), `instr*` : instr*}(blocktype : blocktype, list : list(syntax catch), instr*{instr <- `instr*`} : instr*) - | LOCAL.GET{localidx : localidx}(localidx : localidx) - | LOCAL.SET{localidx : localidx}(localidx : localidx) - | LOCAL.TEE{localidx : localidx}(localidx : localidx) - | GLOBAL.GET{globalidx : globalidx}(globalidx : globalidx) - | GLOBAL.SET{globalidx : globalidx}(globalidx : globalidx) - | TABLE.GET{tableidx : tableidx}(tableidx : tableidx) - | TABLE.SET{tableidx : tableidx}(tableidx : tableidx) - | TABLE.SIZE{tableidx : tableidx}(tableidx : tableidx) - | TABLE.GROW{tableidx : tableidx}(tableidx : tableidx) - | TABLE.FILL{tableidx : tableidx}(tableidx : tableidx) - | TABLE.COPY{tableidx : tableidx}(tableidx : tableidx, tableidx) - | TABLE.INIT{tableidx : tableidx, elemidx : elemidx}(tableidx : tableidx, elemidx : elemidx) - | ELEM.DROP{elemidx : elemidx}(elemidx : elemidx) - | LOAD{numtype : numtype, `loadop_?` : loadop_(numtype)?, memidx : memidx, memarg : memarg}(numtype : numtype, loadop_?{loadop_ <- `loadop_?`} : loadop_(numtype)?, memidx : memidx, memarg : memarg) - | STORE{numtype : numtype, `storeop_?` : storeop_(numtype)?, memidx : memidx, memarg : memarg}(numtype : numtype, storeop_?{storeop_ <- `storeop_?`} : storeop_(numtype)?, memidx : memidx, memarg : memarg) - | VLOAD{vectype : vectype, `vloadop_?` : vloadop_(vectype)?, memidx : memidx, memarg : memarg}(vectype : vectype, vloadop_?{vloadop_ <- `vloadop_?`} : vloadop_(vectype)?, memidx : memidx, memarg : memarg) - | VLOAD_LANE{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx) - | VSTORE{vectype : vectype, memidx : memidx, memarg : memarg}(vectype : vectype, memidx : memidx, memarg : memarg) - | VSTORE_LANE{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx) - | MEMORY.SIZE{memidx : memidx}(memidx : memidx) - | MEMORY.GROW{memidx : memidx}(memidx : memidx) - | MEMORY.FILL{memidx : memidx}(memidx : memidx) - | MEMORY.COPY{memidx : memidx}(memidx : memidx, memidx) - | MEMORY.INIT{memidx : memidx, dataidx : dataidx}(memidx : memidx, dataidx : dataidx) - | DATA.DROP{dataidx : dataidx}(dataidx : dataidx) - | REF.NULL{heaptype : heaptype}(heaptype : heaptype) - | REF.IS_NULL - | REF.AS_NON_NULL - | REF.EQ - | REF.TEST{reftype : reftype}(reftype : reftype) - | REF.CAST{reftype : reftype}(reftype : reftype) - | REF.FUNC{funcidx : funcidx}(funcidx : funcidx) - | REF.I31 - | I31.GET{sx : sx}(sx : sx) - | STRUCT.NEW{typeidx : typeidx}(typeidx : typeidx) - | STRUCT.NEW_DEFAULT{typeidx : typeidx}(typeidx : typeidx) - | STRUCT.GET{`sx?` : sx?, typeidx : typeidx, u32 : u32}(sx?{sx <- `sx?`} : sx?, typeidx : typeidx, u32 : u32) - | STRUCT.SET{typeidx : typeidx, u32 : u32}(typeidx : typeidx, u32 : u32) - | ARRAY.NEW{typeidx : typeidx}(typeidx : typeidx) - | ARRAY.NEW_DEFAULT{typeidx : typeidx}(typeidx : typeidx) - | ARRAY.NEW_FIXED{typeidx : typeidx, u32 : u32}(typeidx : typeidx, u32 : u32) - | ARRAY.NEW_DATA{typeidx : typeidx, dataidx : dataidx}(typeidx : typeidx, dataidx : dataidx) - | ARRAY.NEW_ELEM{typeidx : typeidx, elemidx : elemidx}(typeidx : typeidx, elemidx : elemidx) - | ARRAY.GET{`sx?` : sx?, typeidx : typeidx}(sx?{sx <- `sx?`} : sx?, typeidx : typeidx) - | ARRAY.SET{typeidx : typeidx}(typeidx : typeidx) - | ARRAY.LEN - | ARRAY.FILL{typeidx : typeidx}(typeidx : typeidx) - | ARRAY.COPY{typeidx : typeidx}(typeidx : typeidx, typeidx) - | ARRAY.INIT_DATA{typeidx : typeidx, dataidx : dataidx}(typeidx : typeidx, dataidx : dataidx) - | ARRAY.INIT_ELEM{typeidx : typeidx, elemidx : elemidx}(typeidx : typeidx, elemidx : elemidx) - | EXTERN.CONVERT_ANY - | ANY.CONVERT_EXTERN - | CONST{numtype : numtype, num_ : num_(numtype)}(numtype : numtype, num_ : num_(numtype)) - | UNOP{numtype : numtype, unop_ : unop_(numtype)}(numtype : numtype, unop_ : unop_(numtype)) - | BINOP{numtype : numtype, binop_ : binop_(numtype)}(numtype : numtype, binop_ : binop_(numtype)) - | TESTOP{numtype : numtype, testop_ : testop_(numtype)}(numtype : numtype, testop_ : testop_(numtype)) - | RELOP{numtype : numtype, relop_ : relop_(numtype)}(numtype : numtype, relop_ : relop_(numtype)) - | CVTOP{numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype_2, numtype_1)}(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype_2, numtype_1)) - | VCONST{vectype : vectype, vec_ : vec_(vectype)}(vectype : vectype, vec_ : vec_(vectype)) - | VVUNOP{vectype : vectype, vvunop : vvunop}(vectype : vectype, vvunop : vvunop) - | VVBINOP{vectype : vectype, vvbinop : vvbinop}(vectype : vectype, vvbinop : vvbinop) - | VVTERNOP{vectype : vectype, vvternop : vvternop}(vectype : vectype, vvternop : vvternop) - | VVTESTOP{vectype : vectype, vvtestop : vvtestop}(vectype : vectype, vvtestop : vvtestop) - | VUNOP{shape : shape, vunop_ : vunop_(shape)}(shape : shape, vunop_ : vunop_(shape)) - | VBINOP{shape : shape, vbinop_ : vbinop_(shape)}(shape : shape, vbinop_ : vbinop_(shape)) - | VTERNOP{shape : shape, vternop_ : vternop_(shape)}(shape : shape, vternop_ : vternop_(shape)) - | VTESTOP{shape : shape, vtestop_ : vtestop_(shape)}(shape : shape, vtestop_ : vtestop_(shape)) - | VRELOP{shape : shape, vrelop_ : vrelop_(shape)}(shape : shape, vrelop_ : vrelop_(shape)) - | VSHIFTOP{ishape : ishape, vshiftop_ : vshiftop_(ishape)}(ishape : ishape, vshiftop_ : vshiftop_(ishape)) - | VBITMASK{ishape : ishape}(ishape : ishape) - | VSWIZZLOP{bshape : bshape, vswizzlop_ : vswizzlop_(bshape)}(bshape : bshape, vswizzlop_ : vswizzlop_(bshape)) - | VSHUFFLE{bshape : bshape, `laneidx*` : laneidx*}(bshape : bshape, laneidx*{laneidx <- `laneidx*`} : laneidx*) - -- if (`%`_dim(|laneidx*{laneidx <- `laneidx*`}|) = $dim(bshape!`%`_bshape.0)) - | VEXTUNOP{ishape_1 : ishape, ishape_2 : ishape, vextunop__ : vextunop__(ishape_2, ishape_1)}(ishape_1 : ishape, ishape_2 : ishape, vextunop__ : vextunop__(ishape_2, ishape_1)) - | VEXTBINOP{ishape_1 : ishape, ishape_2 : ishape, vextbinop__ : vextbinop__(ishape_2, ishape_1)}(ishape_1 : ishape, ishape_2 : ishape, vextbinop__ : vextbinop__(ishape_2, ishape_1)) - | VEXTTERNOP{ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextternop__(ishape_2, ishape_1)}(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextternop__(ishape_2, ishape_1)) - | VNARROW{ishape_1 : ishape, ishape_2 : ishape, sx : sx}(ishape_1 : ishape, ishape_2 : ishape, sx : sx) - -- if (($lsize($lanetype(ishape_2!`%`_ishape.0)) = (2 * $lsize($lanetype(ishape_1!`%`_ishape.0)))) /\ ((2 * $lsize($lanetype(ishape_1!`%`_ishape.0))) <= 32)) - | VCVTOP{shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_2, shape_1)}(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_2, shape_1)) - | VSPLAT{shape : shape}(shape : shape) - | VEXTRACT_LANE{shape : shape, `sx?` : sx?, laneidx : laneidx}(shape : shape, sx?{sx <- `sx?`} : sx?, laneidx : laneidx) - -- if ((sx?{sx <- `sx?`} = ?()) <=> ($lanetype(shape) <- [I32_lanetype I64_lanetype F32_lanetype F64_lanetype])) - | VREPLACE_LANE{shape : shape, laneidx : laneidx}(shape : shape, laneidx : laneidx) - | REF.I31_NUM{u31 : u31}(u31 : u31) - | REF.STRUCT_ADDR{structaddr : structaddr}(structaddr : structaddr) - | REF.ARRAY_ADDR{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) - | REF.FUNC_ADDR{funcaddr : funcaddr}(funcaddr : funcaddr) - | REF.EXN_ADDR{exnaddr : exnaddr}(exnaddr : exnaddr) - | REF.HOST_ADDR{hostaddr : hostaddr}(hostaddr : hostaddr) - | REF.EXTERN{addrref : addrref}(addrref : addrref) - | `LABEL_%{%}%`{n : n, `instr*` : instr*}(n : n, instr*{instr <- `instr*`} : instr*, instr*) - | `FRAME_%{%}%`{n : n, frame : frame, `instr*` : instr*}(n : n, frame : frame, instr*{instr <- `instr*`} : instr*) - | `HANDLER_%{%}%`{n : n, `catch*` : catch*, `instr*` : instr*}(n : n, catch*{catch <- `catch*`} : catch*, instr*{instr <- `instr*`} : instr*) - | TRAP + | `NOP` + | `UNREACHABLE` + | `DROP` + | `SELECT`{`valtype*?` : valtype*?}(`valtype*?` : valtype*?) + | `BLOCK`{blocktype : blocktype, `instr*` : instr*}(blocktype : blocktype, `instr*` : instr*) + | `LOOP`{blocktype : blocktype, `instr*` : instr*}(blocktype : blocktype, `instr*` : instr*) + | `IF%%ELSE%`{blocktype : blocktype, `instr*` : instr*}(blocktype : blocktype, `instr*` : instr*, `instr*` : instr*) + | `BR`{labelidx : labelidx}(labelidx : labelidx) + | `BR_IF`{labelidx : labelidx}(labelidx : labelidx) + | `BR_TABLE`{`labelidx*` : labelidx*, labelidx : labelidx}(`labelidx*` : labelidx*, labelidx : labelidx) + | `BR_ON_NULL`{labelidx : labelidx}(labelidx : labelidx) + | `BR_ON_NON_NULL`{labelidx : labelidx}(labelidx : labelidx) + | `BR_ON_CAST`{labelidx : labelidx, reftype : reftype}(labelidx : labelidx, reftype : reftype, reftype : reftype) + | `BR_ON_CAST_FAIL`{labelidx : labelidx, reftype : reftype}(labelidx : labelidx, reftype : reftype, reftype : reftype) + | `CALL`{funcidx : funcidx}(funcidx : funcidx) + | `CALL_REF`{typeuse : typeuse}(typeuse : typeuse) + | `CALL_INDIRECT`{tableidx : tableidx, typeuse : typeuse}(tableidx : tableidx, typeuse : typeuse) + | `RETURN` + | `RETURN_CALL`{funcidx : funcidx}(funcidx : funcidx) + | `RETURN_CALL_REF`{typeuse : typeuse}(typeuse : typeuse) + | `RETURN_CALL_INDIRECT`{tableidx : tableidx, typeuse : typeuse}(tableidx : tableidx, typeuse : typeuse) + | `THROW`{tagidx : tagidx}(tagidx : tagidx) + | `THROW_REF` + | `TRY_TABLE`{blocktype : blocktype, `instr*` : instr*}(blocktype : blocktype, list(syntax catch), `instr*` : instr*) + | `LOCAL.GET`{localidx : localidx}(localidx : localidx) + | `LOCAL.SET`{localidx : localidx}(localidx : localidx) + | `LOCAL.TEE`{localidx : localidx}(localidx : localidx) + | `GLOBAL.GET`{globalidx : globalidx}(globalidx : globalidx) + | `GLOBAL.SET`{globalidx : globalidx}(globalidx : globalidx) + | `TABLE.GET`{tableidx : tableidx}(tableidx : tableidx) + | `TABLE.SET`{tableidx : tableidx}(tableidx : tableidx) + | `TABLE.SIZE`{tableidx : tableidx}(tableidx : tableidx) + | `TABLE.GROW`{tableidx : tableidx}(tableidx : tableidx) + | `TABLE.FILL`{tableidx : tableidx}(tableidx : tableidx) + | `TABLE.COPY`{tableidx : tableidx}(tableidx : tableidx, tableidx : tableidx) + | `TABLE.INIT`{tableidx : tableidx, elemidx : elemidx}(tableidx : tableidx, elemidx : elemidx) + | `ELEM.DROP`{elemidx : elemidx}(elemidx : elemidx) + | `LOAD`{`numtype?` : numtype?, memidx : memidx, memarg : memarg}(numtype : numtype, loadop_(numtype)?, memidx : memidx, memarg : memarg) + | `STORE`{`numtype?` : numtype?, memidx : memidx, memarg : memarg}(numtype : numtype, storeop_(numtype)?, memidx : memidx, memarg : memarg) + | `VLOAD`{`vectype?` : vectype?, memidx : memidx, memarg : memarg}(vectype : vectype, vloadop_(vectype)?, memidx : memidx, memarg : memarg) + | `VLOAD_LANE`{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx) + | `VSTORE`{vectype : vectype, memidx : memidx, memarg : memarg}(vectype : vectype, memidx : memidx, memarg : memarg) + | `VSTORE_LANE`{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx) + | `MEMORY.SIZE`{memidx : memidx}(memidx : memidx) + | `MEMORY.GROW`{memidx : memidx}(memidx : memidx) + | `MEMORY.FILL`{memidx : memidx}(memidx : memidx) + | `MEMORY.COPY`{memidx : memidx}(memidx : memidx, memidx : memidx) + | `MEMORY.INIT`{memidx : memidx, dataidx : dataidx}(memidx : memidx, dataidx : dataidx) + | `DATA.DROP`{dataidx : dataidx}(dataidx : dataidx) + | `REF.NULL`{heaptype : heaptype}(heaptype : heaptype) + | `REF.IS_NULL` + | `REF.AS_NON_NULL` + | `REF.EQ` + | `REF.TEST`{reftype : reftype}(reftype : reftype) + | `REF.CAST`{reftype : reftype}(reftype : reftype) + | `REF.FUNC`{funcidx : funcidx}(funcidx : funcidx) + | `REF.I31` + | `I31.GET`{sx : sx}(sx : sx) + | `STRUCT.NEW`{typeidx : typeidx}(typeidx : typeidx) + | `STRUCT.NEW_DEFAULT`{typeidx : typeidx}(typeidx : typeidx) + | `STRUCT.GET`{`sx?` : sx?, typeidx : typeidx, u32 : u32}(`sx?` : sx?, typeidx : typeidx, u32 : u32) + | `STRUCT.SET`{typeidx : typeidx, u32 : u32}(typeidx : typeidx, u32 : u32) + | `ARRAY.NEW`{typeidx : typeidx}(typeidx : typeidx) + | `ARRAY.NEW_DEFAULT`{typeidx : typeidx}(typeidx : typeidx) + | `ARRAY.NEW_FIXED`{typeidx : typeidx, u32 : u32}(typeidx : typeidx, u32 : u32) + | `ARRAY.NEW_DATA`{typeidx : typeidx, dataidx : dataidx}(typeidx : typeidx, dataidx : dataidx) + | `ARRAY.NEW_ELEM`{typeidx : typeidx, elemidx : elemidx}(typeidx : typeidx, elemidx : elemidx) + | `ARRAY.GET`{`sx?` : sx?, typeidx : typeidx}(`sx?` : sx?, typeidx : typeidx) + | `ARRAY.SET`{typeidx : typeidx}(typeidx : typeidx) + | `ARRAY.LEN` + | `ARRAY.FILL`{typeidx : typeidx}(typeidx : typeidx) + | `ARRAY.COPY`{typeidx : typeidx}(typeidx : typeidx, typeidx : typeidx) + | `ARRAY.INIT_DATA`{typeidx : typeidx, dataidx : dataidx}(typeidx : typeidx, dataidx : dataidx) + | `ARRAY.INIT_ELEM`{typeidx : typeidx, elemidx : elemidx}(typeidx : typeidx, elemidx : elemidx) + | `EXTERN.CONVERT_ANY` + | `ANY.CONVERT_EXTERN` + | `CONST`{numtype : numtype}(numtype : numtype, num_(numtype)) + | `UNOP`{numtype : numtype}(numtype : numtype, unop_(numtype)) + | `BINOP`{numtype : numtype}(numtype : numtype, binop_(numtype)) + | `TESTOP`{numtype : numtype}(numtype : numtype, testop_(numtype)) + | `RELOP`{numtype : numtype}(numtype : numtype, relop_(numtype)) + | `CVTOP`{numtype_1 : numtype, numtype_2 : numtype}(numtype_1 : numtype, numtype_2 : numtype, cvtop__(numtype_2, numtype_1)) + | `VCONST`{vectype : vectype}(vectype : vectype, vec_(vectype)) + | `VVUNOP`{vectype : vectype, vvunop : vvunop}(vectype : vectype, vvunop : vvunop) + | `VVBINOP`{vectype : vectype, vvbinop : vvbinop}(vectype : vectype, vvbinop : vvbinop) + | `VVTERNOP`{vectype : vectype, vvternop : vvternop}(vectype : vectype, vvternop : vvternop) + | `VVTESTOP`{vectype : vectype, vvtestop : vvtestop}(vectype : vectype, vvtestop : vvtestop) + | `VUNOP`{shape : shape}(shape : shape, vunop_(shape)) + | `VBINOP`{shape : shape}(shape : shape, vbinop_(shape)) + | `VTERNOP`{shape : shape}(shape : shape, vternop_(shape)) + | `VTESTOP`{shape : shape}(shape : shape, vtestop_(shape)) + | `VRELOP`{shape : shape}(shape : shape, vrelop_(shape)) + | `VSHIFTOP`{ishape : ishape}(ishape : ishape, vshiftop_(ishape)) + | `VBITMASK`{ishape : ishape}(ishape : ishape) + | `VSWIZZLOP`{bshape : bshape}(bshape : bshape, vswizzlop_(bshape)) + | `VSHUFFLE`{bshape : bshape, `laneidx*` : laneidx*, i#1432 : nat, shape#109 : shape}(bshape : bshape, `laneidx*` : laneidx*) + -- if (`%`_dim{i#1432}(|laneidx*{laneidx <- `laneidx*`}|) = $dim(bshape!`%`_bshape{shape#109}.0)) + | `VEXTUNOP`{ishape_1 : ishape, ishape_2 : ishape}(ishape_1 : ishape, ishape_2 : ishape, vextunop__(ishape_2, ishape_1)) + | `VEXTBINOP`{ishape_1 : ishape, ishape_2 : ishape}(ishape_1 : ishape, ishape_2 : ishape, vextbinop__(ishape_2, ishape_1)) + | `VEXTTERNOP`{ishape_1 : ishape, ishape_2 : ishape}(ishape_1 : ishape, ishape_2 : ishape, vextternop__(ishape_2, ishape_1)) + | `VNARROW`{ishape_1 : ishape, ishape_2 : ishape, sx : sx, shape#149 : shape, Jnn#44 : Jnn, shape#147 : shape, Jnn#43 : Jnn, shape#151 : shape, Jnn#45 : Jnn}(ishape_1 : ishape, ishape_2 : ishape, sx : sx) + -- if (($lsize($lanetype(ishape_2!`%`_ishape{shape#149, Jnn#44}.0)) = (2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#147, Jnn#43}.0)))) /\ ((2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#151, Jnn#45}.0))) <= 32)) + | `VCVTOP`{shape_1 : shape, shape_2 : shape}(shape_1 : shape, shape_2 : shape, vcvtop__(shape_2, shape_1)) + | `VSPLAT`{shape : shape}(shape : shape) + | `VEXTRACT_LANE`{shape : shape, `sx?` : sx?, laneidx : laneidx}(shape : shape, `sx?` : sx?, laneidx : laneidx) + -- if ((sx?{sx <- `sx?`} = ?()) <=> ($lanetype(shape) <- [`I32`_lanetype `I64`_lanetype `F32`_lanetype `F64`_lanetype])) + | `VREPLACE_LANE`{shape : shape, laneidx : laneidx}(shape : shape, laneidx : laneidx) + | `REF.I31_NUM`{u31 : u31}(u31 : u31) + | `REF.STRUCT_ADDR`{structaddr : structaddr}(structaddr : structaddr) + | `REF.ARRAY_ADDR`{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) + | `REF.FUNC_ADDR`{funcaddr : funcaddr}(funcaddr : funcaddr) + | `REF.EXN_ADDR`{exnaddr : exnaddr}(exnaddr : exnaddr) + | `REF.HOST_ADDR`{hostaddr : hostaddr}(hostaddr : hostaddr) + | `REF.EXTERN`{addrref : addrref}(addrref : addrref) + | `LABEL_%{%}%`{n : n, `instr*` : instr*}(n : n, `instr*` : instr*, `instr*` : instr*) + | `FRAME_%{%}%`{n : n, frame : frame, `instr*` : instr*}(n : n, frame : frame, `instr*` : instr*) + | `HANDLER_%{%}%`{n : n, `catch*` : catch*, `instr*` : instr*}(n : n, `catch*` : catch*, `instr*` : instr*) + | `TRAP` } ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec @@ -2184,26 +113743,26 @@ syntax expr = instr* ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $memarg0 : memarg ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $memarg0 = {ALIGN `%`_u32(0), OFFSET `%`_u64(0)} + def $memarg0{u32#1 : u32, i#1467 : nat, u64#37 : u64, i#1487 : nat} = {`ALIGN`{u32#1} `%`_u32{i#1467}(0), `OFFSET`{u64#37} `%`_u64{i#1487}(0)} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $const(consttype : consttype, lit_ : lit_((consttype : consttype <: storagetype))) : instr ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $const{numtype : numtype, c : lit_((numtype : numtype <: storagetype))}((numtype : numtype <: consttype), c) = CONST_instr(numtype, c) + def $const{numtype : numtype, c : lit_(((numtype : numtype <: consttype) : consttype <: storagetype)), numtype#1 : numtype}((numtype : numtype <: consttype), c) = `CONST`_instr{numtype#1}(numtype, c) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $const{vectype : vectype, c : lit_((vectype : vectype <: storagetype))}((vectype : vectype <: consttype), c) = VCONST_instr(vectype, c) + def $const{vectype : vectype, c : lit_(((vectype : vectype <: consttype) : consttype <: storagetype)), vectype#1 : vectype}((vectype : vectype <: consttype), c) = `VCONST`_instr{vectype#1}(vectype, c) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $free_shape(shape : shape) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_shape{lanetype : lanetype, dim : dim}(`%X%`_shape(lanetype, dim)) = $free_lanetype(lanetype) + def $free_shape{lanetype#445 : lanetype, dim#445 : dim, i#1518 : nat, lanetype : lanetype, dim : dim}(`%X%`_shape{lanetype#445, dim#445, i#1518}(lanetype, dim)) = $free_lanetype(lanetype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $free_blocktype(blocktype : blocktype) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_blocktype{`valtype?` : valtype?}(_RESULT_blocktype(valtype?{valtype <- `valtype?`})) = $free_opt($free_valtype(valtype)?{valtype <- `valtype?`}) + def $free_blocktype{`valtype?#1` : valtype?, `valtype?` : valtype?}(`_RESULT`_blocktype{`valtype?#1`}(valtype?{valtype <- `valtype?`})) = $free_opt($free_valtype(valtype)?{valtype <- `valtype?`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_blocktype{typeidx : typeidx}(_IDX_blocktype(typeidx)) = $free_typeidx(typeidx) + def $free_blocktype{typeidx#27 : typeidx, typeidx : typeidx}(`_IDX`_blocktype{typeidx#27}(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec rec { @@ -2213,9 +113772,9 @@ def $shift_labelidxs(labelidx*) : labelidx* ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:573.1-573.32 def $shift_labelidxs([]) = [] ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:574.1-574.66 - def $shift_labelidxs{`labelidx'*` : labelidx*}([`%`_labelidx(0)] ++ labelidx'*{labelidx' <- `labelidx'*`}) = $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) + def $shift_labelidxs{i#3333 : nat, `labelidx'*` : labelidx*}([`%`_labelidx{i#3333}(0)] ++ labelidx'*{labelidx' <- `labelidx'*`}) = $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:575.1-575.91 - def $shift_labelidxs{labelidx : labelidx, `labelidx'*` : labelidx*}([labelidx] ++ labelidx'*{labelidx' <- `labelidx'*`}) = [`%`_labelidx((((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] ++ $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) + def $shift_labelidxs{labelidx : labelidx, `labelidx'*` : labelidx*, i#3557 : nat, i#3547 : nat}([labelidx] ++ labelidx'*{labelidx' <- `labelidx'*`}) = [`%`_labelidx{i#3557}((((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] ++ $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) } ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec @@ -2224,212 +113783,212 @@ rec { ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:417.1-417.30 def $free_instr(instr : instr) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:428.1-428.26 - def $free_instr(NOP_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_instr{`typeidx*#20` : typeidx*, `funcidx*#20` : funcidx*, `globalidx*#20` : globalidx*, `tableidx*#20` : tableidx*, `memidx*#20` : memidx*, `elemidx*#20` : elemidx*, `dataidx*#20` : dataidx*, `localidx*#20` : localidx*, `labelidx*#20` : labelidx*}(`NOP`_instr) = {`TYPES`{`typeidx*#20`} [], `FUNCS`{`funcidx*#20`} [], `GLOBALS`{`globalidx*#20`} [], `TABLES`{`tableidx*#20`} [], `MEMS`{`memidx*#20`} [], `ELEMS`{`elemidx*#20`} [], `DATAS`{`dataidx*#20`} [], `LOCALS`{`localidx*#20`} [], `LABELS`{`labelidx*#20`} []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:429.1-429.34 - def $free_instr(UNREACHABLE_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_instr{`typeidx*#21` : typeidx*, `funcidx*#21` : funcidx*, `globalidx*#21` : globalidx*, `tableidx*#21` : tableidx*, `memidx*#21` : memidx*, `elemidx*#21` : elemidx*, `dataidx*#21` : dataidx*, `localidx*#21` : localidx*, `labelidx*#21` : labelidx*}(`UNREACHABLE`_instr) = {`TYPES`{`typeidx*#21`} [], `FUNCS`{`funcidx*#21`} [], `GLOBALS`{`globalidx*#21`} [], `TABLES`{`tableidx*#21`} [], `MEMS`{`memidx*#21`} [], `ELEMS`{`elemidx*#21`} [], `DATAS`{`dataidx*#21`} [], `LOCALS`{`localidx*#21`} [], `LABELS`{`labelidx*#21`} []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:430.1-430.27 - def $free_instr(DROP_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_instr{`typeidx*#22` : typeidx*, `funcidx*#22` : funcidx*, `globalidx*#22` : globalidx*, `tableidx*#22` : tableidx*, `memidx*#22` : memidx*, `elemidx*#22` : elemidx*, `dataidx*#22` : dataidx*, `localidx*#22` : localidx*, `labelidx*#22` : labelidx*}(`DROP`_instr) = {`TYPES`{`typeidx*#22`} [], `FUNCS`{`funcidx*#22`} [], `GLOBALS`{`globalidx*#22`} [], `TABLES`{`tableidx*#22`} [], `MEMS`{`memidx*#22`} [], `ELEMS`{`elemidx*#22`} [], `DATAS`{`dataidx*#22`} [], `LOCALS`{`localidx*#22`} [], `LABELS`{`labelidx*#22`} []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:431.1-431.86 - def $free_instr{`valtype*?` : valtype*?}(SELECT_instr(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})) = $free_opt($free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`}) + def $free_instr{`valtype*?#1` : valtype*?, `valtype*?` : valtype*?}(`SELECT`_instr{`valtype*?#1`}(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})) = $free_opt($free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:433.1-433.92 - def $free_instr{blocktype : blocktype, `instr*` : instr*}(BLOCK_instr(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) + def $free_instr{blocktype#1 : blocktype, `instr*#1` : instr*, blocktype : blocktype, `instr*` : instr*}(`BLOCK`_instr{blocktype#1, `instr*#1`}(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:434.1-434.91 - def $free_instr{blocktype : blocktype, `instr*` : instr*}(LOOP_instr(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) + def $free_instr{blocktype#3 : blocktype, `instr*#3` : instr*, blocktype : blocktype, `instr*` : instr*}(`LOOP`_instr{blocktype#3, `instr*#3`}(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:435.1-436.79 - def $free_instr{blocktype : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}(`IF%%ELSE%`_instr(blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})) = $free_blocktype(blocktype) +++ $free_block(instr_1*{instr_1 <- `instr_1*`}) +++ $free_block(instr_2*{instr_2 <- `instr_2*`}) + def $free_instr{blocktype#5 : blocktype, `instr*#5` : instr*, blocktype : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}(`IF%%ELSE%`_instr{blocktype#5, `instr*#5`}(blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})) = $free_blocktype(blocktype) +++ $free_block(instr_1*{instr_1 <- `instr_1*`}) +++ $free_block(instr_2*{instr_2 <- `instr_2*`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:438.1-438.56 - def $free_instr{labelidx : labelidx}(BR_instr(labelidx)) = $free_labelidx(labelidx) + def $free_instr{labelidx#1 : labelidx, labelidx : labelidx}(`BR`_instr{labelidx#1}(labelidx)) = $free_labelidx(labelidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:439.1-439.59 - def $free_instr{labelidx : labelidx}(BR_IF_instr(labelidx)) = $free_labelidx(labelidx) + def $free_instr{labelidx#3 : labelidx, labelidx : labelidx}(`BR_IF`_instr{labelidx#3}(labelidx)) = $free_labelidx(labelidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:440.1-441.69 - def $free_instr{`labelidx*` : labelidx*, labelidx' : labelidx}(BR_TABLE_instr(labelidx*{labelidx <- `labelidx*`}, labelidx')) = $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`}) +++ $free_labelidx(labelidx') + def $free_instr{`labelidx*#23` : labelidx*, labelidx#5 : labelidx, `labelidx*` : labelidx*, labelidx' : labelidx}(`BR_TABLE`_instr{`labelidx*#23`, labelidx#5}(labelidx*{labelidx <- `labelidx*`}, labelidx')) = $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`}) +++ $free_labelidx(labelidx') ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:442.1-442.64 - def $free_instr{labelidx : labelidx}(BR_ON_NULL_instr(labelidx)) = $free_labelidx(labelidx) + def $free_instr{labelidx#7 : labelidx, labelidx : labelidx}(`BR_ON_NULL`_instr{labelidx#7}(labelidx)) = $free_labelidx(labelidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:443.1-443.68 - def $free_instr{labelidx : labelidx}(BR_ON_NON_NULL_instr(labelidx)) = $free_labelidx(labelidx) + def $free_instr{labelidx#9 : labelidx, labelidx : labelidx}(`BR_ON_NON_NULL`_instr{labelidx#9}(labelidx)) = $free_labelidx(labelidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:444.1-445.83 - def $free_instr{labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(BR_ON_CAST_instr(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) + def $free_instr{labelidx#11 : labelidx, reftype#125 : reftype, labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST`_instr{labelidx#11, reftype#125}(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:446.1-447.83 - def $free_instr{labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(BR_ON_CAST_FAIL_instr(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) + def $free_instr{labelidx#13 : labelidx, reftype#128 : reftype, labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST_FAIL`_instr{labelidx#13, reftype#128}(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:449.1-449.55 - def $free_instr{funcidx : funcidx}(CALL_instr(funcidx)) = $free_funcidx(funcidx) + def $free_instr{funcidx#5 : funcidx, funcidx : funcidx}(`CALL`_instr{funcidx#5}(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:450.1-450.59 - def $free_instr{typeuse : typeuse}(CALL_REF_instr(typeuse)) = $free_typeuse(typeuse) + def $free_instr{typeuse#9 : typeuse, typeuse : typeuse}(`CALL_REF`_instr{typeuse#9}(typeuse)) = $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:451.1-452.53 - def $free_instr{tableidx : tableidx, typeuse : typeuse}(CALL_INDIRECT_instr(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) + def $free_instr{tableidx#5 : tableidx, typeuse#11 : typeuse, tableidx : tableidx, typeuse : typeuse}(`CALL_INDIRECT`_instr{tableidx#5, typeuse#11}(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:453.1-453.29 - def $free_instr(RETURN_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_instr{`typeidx*#23` : typeidx*, `funcidx*#23` : funcidx*, `globalidx*#23` : globalidx*, `tableidx*#23` : tableidx*, `memidx*#23` : memidx*, `elemidx*#23` : elemidx*, `dataidx*#23` : dataidx*, `localidx*#23` : localidx*, `labelidx*#25` : labelidx*}(`RETURN`_instr) = {`TYPES`{`typeidx*#23`} [], `FUNCS`{`funcidx*#23`} [], `GLOBALS`{`globalidx*#23`} [], `TABLES`{`tableidx*#23`} [], `MEMS`{`memidx*#23`} [], `ELEMS`{`elemidx*#23`} [], `DATAS`{`dataidx*#23`} [], `LOCALS`{`localidx*#23`} [], `LABELS`{`labelidx*#25`} []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:454.1-454.62 - def $free_instr{funcidx : funcidx}(RETURN_CALL_instr(funcidx)) = $free_funcidx(funcidx) + def $free_instr{funcidx#7 : funcidx, funcidx : funcidx}(`RETURN_CALL`_instr{funcidx#7}(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:455.1-455.66 - def $free_instr{typeuse : typeuse}(RETURN_CALL_REF_instr(typeuse)) = $free_typeuse(typeuse) + def $free_instr{typeuse#13 : typeuse, typeuse : typeuse}(`RETURN_CALL_REF`_instr{typeuse#13}(typeuse)) = $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:456.1-457.53 - def $free_instr{tableidx : tableidx, typeuse : typeuse}(RETURN_CALL_INDIRECT_instr(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) + def $free_instr{tableidx#7 : tableidx, typeuse#15 : typeuse, tableidx : tableidx, typeuse : typeuse}(`RETURN_CALL_INDIRECT`_instr{tableidx#7, typeuse#15}(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:459.1-459.63 - def $free_instr{numtype : numtype, numlit : num_(numtype)}(CONST_instr(numtype, numlit)) = $free_numtype(numtype) + def $free_instr{numtype#3 : numtype, numtype : numtype, numlit : num_(numtype)}(`CONST`_instr{numtype#3}(numtype, numlit)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:460.1-460.60 - def $free_instr{numtype : numtype, unop : unop_(numtype)}(UNOP_instr(numtype, unop)) = $free_numtype(numtype) + def $free_instr{numtype#5 : numtype, numtype : numtype, unop : unop_(numtype)}(`UNOP`_instr{numtype#5}(numtype, unop)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:461.1-461.62 - def $free_instr{numtype : numtype, binop : binop_(numtype)}(BINOP_instr(numtype, binop)) = $free_numtype(numtype) + def $free_instr{numtype#7 : numtype, numtype : numtype, binop : binop_(numtype)}(`BINOP`_instr{numtype#7}(numtype, binop)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:462.1-462.64 - def $free_instr{numtype : numtype, testop : testop_(numtype)}(TESTOP_instr(numtype, testop)) = $free_numtype(numtype) + def $free_instr{numtype#9 : numtype, numtype : numtype, testop : testop_(numtype)}(`TESTOP`_instr{numtype#9}(numtype, testop)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:463.1-463.62 - def $free_instr{numtype : numtype, relop : relop_(numtype)}(RELOP_instr(numtype, relop)) = $free_numtype(numtype) + def $free_instr{numtype#11 : numtype, numtype : numtype, relop : relop_(numtype)}(`RELOP`_instr{numtype#11}(numtype, relop)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:464.1-465.55 - def $free_instr{numtype_1 : numtype, numtype_2 : numtype, cvtop : cvtop__(numtype_2, numtype_1)}(CVTOP_instr(numtype_1, numtype_2, cvtop)) = $free_numtype(numtype_1) +++ $free_numtype(numtype_2) + def $free_instr{numtype_1#1 : numtype, numtype_2#1 : numtype, numtype_1 : numtype, numtype_2 : numtype, cvtop : cvtop__(numtype_2, numtype_1)}(`CVTOP`_instr{numtype_1#1, numtype_2#1}(numtype_1, numtype_2, cvtop)) = $free_numtype(numtype_1) +++ $free_numtype(numtype_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:467.1-467.64 - def $free_instr{vectype : vectype, veclit : vec_(vectype)}(VCONST_instr(vectype, veclit)) = $free_vectype(vectype) + def $free_instr{vectype#3 : vectype, vectype : vectype, veclit : vec_(vectype)}(`VCONST`_instr{vectype#3}(vectype, veclit)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:468.1-468.64 - def $free_instr{vectype : vectype, vvunop : vvunop}(VVUNOP_instr(vectype, vvunop)) = $free_vectype(vectype) + def $free_instr{vectype#5 : vectype, vvunop#1 : vvunop, vectype : vectype, vvunop : vvunop}(`VVUNOP`_instr{vectype#5, vvunop#1}(vectype, vvunop)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:469.1-469.66 - def $free_instr{vectype : vectype, vvbinop : vvbinop}(VVBINOP_instr(vectype, vvbinop)) = $free_vectype(vectype) + def $free_instr{vectype#7 : vectype, vvbinop#1 : vvbinop, vectype : vectype, vvbinop : vvbinop}(`VVBINOP`_instr{vectype#7, vvbinop#1}(vectype, vvbinop)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:470.1-470.68 - def $free_instr{vectype : vectype, vvternop : vvternop}(VVTERNOP_instr(vectype, vvternop)) = $free_vectype(vectype) + def $free_instr{vectype#9 : vectype, vvternop#1 : vvternop, vectype : vectype, vvternop : vvternop}(`VVTERNOP`_instr{vectype#9, vvternop#1}(vectype, vvternop)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:471.1-471.68 - def $free_instr{vectype : vectype, vvtestop : vvtestop}(VVTESTOP_instr(vectype, vvtestop)) = $free_vectype(vectype) + def $free_instr{vectype#11 : vectype, vvtestop#1 : vvtestop, vectype : vectype, vvtestop : vvtestop}(`VVTESTOP`_instr{vectype#11, vvtestop#1}(vectype, vvtestop)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:472.1-472.56 - def $free_instr{shape : shape, vunop : vunop_(shape)}(VUNOP_instr(shape, vunop)) = $free_shape(shape) + def $free_instr{shape#153 : shape, shape : shape, vunop : vunop_(shape)}(`VUNOP`_instr{shape#153}(shape, vunop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:473.1-473.58 - def $free_instr{shape : shape, vbinop : vbinop_(shape)}(VBINOP_instr(shape, vbinop)) = $free_shape(shape) + def $free_instr{shape#155 : shape, shape : shape, vbinop : vbinop_(shape)}(`VBINOP`_instr{shape#155}(shape, vbinop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:474.1-474.60 - def $free_instr{shape : shape, vternop : vternop_(shape)}(VTERNOP_instr(shape, vternop)) = $free_shape(shape) + def $free_instr{shape#157 : shape, shape : shape, vternop : vternop_(shape)}(`VTERNOP`_instr{shape#157}(shape, vternop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:475.1-475.60 - def $free_instr{shape : shape, vtestop : vtestop_(shape)}(VTESTOP_instr(shape, vtestop)) = $free_shape(shape) + def $free_instr{shape#159 : shape, shape : shape, vtestop : vtestop_(shape)}(`VTESTOP`_instr{shape#159}(shape, vtestop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:476.1-476.58 - def $free_instr{shape : shape, vrelop : vrelop_(shape)}(VRELOP_instr(shape, vrelop)) = $free_shape(shape) + def $free_instr{shape#161 : shape, shape : shape, vrelop : vrelop_(shape)}(`VRELOP`_instr{shape#161}(shape, vrelop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:477.1-477.64 - def $free_instr{ishape : ishape, vshiftop : vshiftop_(ishape)}(VSHIFTOP_instr(ishape, vshiftop)) = $free_shape(ishape!`%`_ishape.0) + def $free_instr{ishape#1 : ishape, ishape : ishape, vshiftop : vshiftop_(ishape), shape#169 : shape, Jnn#48 : Jnn}(`VSHIFTOP`_instr{ishape#1}(ishape, vshiftop)) = $free_shape(ishape!`%`_ishape{shape#169, Jnn#48}.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:478.1-478.55 - def $free_instr{ishape : ishape}(VBITMASK_instr(ishape)) = $free_shape(ishape!`%`_ishape.0) + def $free_instr{ishape#3 : ishape, ishape : ishape, shape#177 : shape, Jnn#51 : Jnn}(`VBITMASK`_instr{ishape#3}(ishape)) = $free_shape(ishape!`%`_ishape{shape#177, Jnn#51}.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:479.1-479.66 - def $free_instr{bshape : bshape, vswizzlop : vswizzlop_(bshape)}(VSWIZZLOP_instr(bshape, vswizzlop)) = $free_shape(bshape!`%`_bshape.0) + def $free_instr{bshape#1 : bshape, bshape : bshape, vswizzlop : vswizzlop_(bshape), shape#185 : shape}(`VSWIZZLOP`_instr{bshape#1}(bshape, vswizzlop)) = $free_shape(bshape!`%`_bshape{shape#185}.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:480.1-480.64 - def $free_instr{bshape : bshape, `laneidx*` : laneidx*}(VSHUFFLE_instr(bshape, laneidx*{laneidx <- `laneidx*`})) = $free_shape(bshape!`%`_bshape.0) + def $free_instr{bshape#3 : bshape, `laneidx*#1` : laneidx*, i#1902 : nat, shape#187 : shape, bshape : bshape, `laneidx*` : laneidx*, shape#194 : shape}(`VSHUFFLE`_instr{bshape#3, `laneidx*#1`, i#1902, shape#187}(bshape, laneidx*{laneidx <- `laneidx*`})) = $free_shape(bshape!`%`_bshape{shape#194}.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:481.1-482.49 - def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextunop : vextunop__(ishape_2, ishape_1)}(VEXTUNOP_instr(ishape_1, ishape_2, vextunop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) + def $free_instr{ishape_1#1 : ishape, ishape_2#1 : ishape, ishape_1 : ishape, ishape_2 : ishape, vextunop : vextunop__(ishape_2, ishape_1), shape#208 : shape, Jnn#56 : Jnn, shape#210 : shape, Jnn#57 : Jnn}(`VEXTUNOP`_instr{ishape_1#1, ishape_2#1}(ishape_1, ishape_2, vextunop)) = $free_shape(ishape_1!`%`_ishape{shape#208, Jnn#56}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#210, Jnn#57}.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:483.1-484.49 - def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextbinop : vextbinop__(ishape_2, ishape_1)}(VEXTBINOP_instr(ishape_1, ishape_2, vextbinop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) + def $free_instr{ishape_1#3 : ishape, ishape_2#3 : ishape, ishape_1 : ishape, ishape_2 : ishape, vextbinop : vextbinop__(ishape_2, ishape_1), shape#224 : shape, Jnn#62 : Jnn, shape#226 : shape, Jnn#63 : Jnn}(`VEXTBINOP`_instr{ishape_1#3, ishape_2#3}(ishape_1, ishape_2, vextbinop)) = $free_shape(ishape_1!`%`_ishape{shape#224, Jnn#62}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#226, Jnn#63}.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:485.1-486.49 - def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextternop : vextternop__(ishape_2, ishape_1)}(VEXTTERNOP_instr(ishape_1, ishape_2, vextternop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) + def $free_instr{ishape_1#5 : ishape, ishape_2#5 : ishape, ishape_1 : ishape, ishape_2 : ishape, vextternop : vextternop__(ishape_2, ishape_1), shape#240 : shape, Jnn#68 : Jnn, shape#242 : shape, Jnn#69 : Jnn}(`VEXTTERNOP`_instr{ishape_1#5, ishape_2#5}(ishape_1, ishape_2, vextternop)) = $free_shape(ishape_1!`%`_ishape{shape#240, Jnn#68}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#242, Jnn#69}.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:487.1-488.49 - def $free_instr{ishape_1 : ishape, ishape_2 : ishape, sx : sx}(VNARROW_instr(ishape_1, ishape_2, sx)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) + def $free_instr{ishape_1#7 : ishape, ishape_2#7 : ishape, sx#1 : sx, shape#244 : shape, Jnn#70 : Jnn, shape#245 : shape, Jnn#71 : Jnn, shape#246 : shape, Jnn#72 : Jnn, ishape_1 : ishape, ishape_2 : ishape, sx : sx, shape#259 : shape, Jnn#77 : Jnn, shape#261 : shape, Jnn#78 : Jnn}(`VNARROW`_instr{ishape_1#7, ishape_2#7, sx#1, shape#244, Jnn#70, shape#245, Jnn#71, shape#246, Jnn#72}(ishape_1, ishape_2, sx)) = $free_shape(ishape_1!`%`_ishape{shape#259, Jnn#77}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#261, Jnn#78}.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:489.1-490.47 - def $free_instr{shape_1 : shape, shape_2 : shape, vcvtop : vcvtop__(shape_2, shape_1)}(VCVTOP_instr(shape_1, shape_2, vcvtop)) = $free_shape(shape_1) +++ $free_shape(shape_2) + def $free_instr{shape_1#1 : shape, shape_2#1 : shape, shape_1 : shape, shape_2 : shape, vcvtop : vcvtop__(shape_2, shape_1)}(`VCVTOP`_instr{shape_1#1, shape_2#1}(shape_1, shape_2, vcvtop)) = $free_shape(shape_1) +++ $free_shape(shape_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:491.1-491.51 - def $free_instr{shape : shape}(VSPLAT_instr(shape)) = $free_shape(shape) + def $free_instr{shape#263 : shape, shape : shape}(`VSPLAT`_instr{shape#263}(shape)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:492.1-492.70 - def $free_instr{shape : shape, `sx?` : sx?, laneidx : laneidx}(VEXTRACT_LANE_instr(shape, sx?{sx <- `sx?`}, laneidx)) = $free_shape(shape) + def $free_instr{shape#265 : shape, `sx?#1` : sx?, laneidx#1 : laneidx, shape : shape, `sx?` : sx?, laneidx : laneidx}(`VEXTRACT_LANE`_instr{shape#265, `sx?#1`, laneidx#1}(shape, sx?{sx <- `sx?`}, laneidx)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:493.1-493.66 - def $free_instr{shape : shape, laneidx : laneidx}(VREPLACE_LANE_instr(shape, laneidx)) = $free_shape(shape) + def $free_instr{shape#267 : shape, laneidx#3 : laneidx, shape : shape, laneidx : laneidx}(`VREPLACE_LANE`_instr{shape#267, laneidx#3}(shape, laneidx)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:495.1-495.62 - def $free_instr{heaptype : heaptype}(REF.NULL_instr(heaptype)) = $free_heaptype(heaptype) + def $free_instr{heaptype#373 : heaptype, heaptype : heaptype}(`REF.NULL`_instr{heaptype#373}(heaptype)) = $free_heaptype(heaptype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:496.1-496.34 - def $free_instr(REF.IS_NULL_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_instr{`typeidx*#24` : typeidx*, `funcidx*#24` : funcidx*, `globalidx*#24` : globalidx*, `tableidx*#24` : tableidx*, `memidx*#24` : memidx*, `elemidx*#24` : elemidx*, `dataidx*#24` : dataidx*, `localidx*#24` : localidx*, `labelidx*#26` : labelidx*}(`REF.IS_NULL`_instr) = {`TYPES`{`typeidx*#24`} [], `FUNCS`{`funcidx*#24`} [], `GLOBALS`{`globalidx*#24`} [], `TABLES`{`tableidx*#24`} [], `MEMS`{`memidx*#24`} [], `ELEMS`{`elemidx*#24`} [], `DATAS`{`dataidx*#24`} [], `LOCALS`{`localidx*#24`} [], `LABELS`{`labelidx*#26`} []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:497.1-497.38 - def $free_instr(REF.AS_NON_NULL_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_instr{`typeidx*#25` : typeidx*, `funcidx*#25` : funcidx*, `globalidx*#25` : globalidx*, `tableidx*#25` : tableidx*, `memidx*#25` : memidx*, `elemidx*#25` : elemidx*, `dataidx*#25` : dataidx*, `localidx*#25` : localidx*, `labelidx*#27` : labelidx*}(`REF.AS_NON_NULL`_instr) = {`TYPES`{`typeidx*#25`} [], `FUNCS`{`funcidx*#25`} [], `GLOBALS`{`globalidx*#25`} [], `TABLES`{`tableidx*#25`} [], `MEMS`{`memidx*#25`} [], `ELEMS`{`elemidx*#25`} [], `DATAS`{`dataidx*#25`} [], `LOCALS`{`localidx*#25`} [], `LABELS`{`labelidx*#27`} []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:498.1-498.29 - def $free_instr(REF.EQ_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_instr{`typeidx*#26` : typeidx*, `funcidx*#26` : funcidx*, `globalidx*#26` : globalidx*, `tableidx*#26` : tableidx*, `memidx*#26` : memidx*, `elemidx*#26` : elemidx*, `dataidx*#26` : dataidx*, `localidx*#26` : localidx*, `labelidx*#28` : labelidx*}(`REF.EQ`_instr) = {`TYPES`{`typeidx*#26`} [], `FUNCS`{`funcidx*#26`} [], `GLOBALS`{`globalidx*#26`} [], `TABLES`{`tableidx*#26`} [], `MEMS`{`memidx*#26`} [], `ELEMS`{`elemidx*#26`} [], `DATAS`{`dataidx*#26`} [], `LOCALS`{`localidx*#26`} [], `LABELS`{`labelidx*#28`} []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:499.1-499.59 - def $free_instr{reftype : reftype}(REF.TEST_instr(reftype)) = $free_reftype(reftype) + def $free_instr{reftype#131 : reftype, reftype : reftype}(`REF.TEST`_instr{reftype#131}(reftype)) = $free_reftype(reftype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:500.1-500.59 - def $free_instr{reftype : reftype}(REF.CAST_instr(reftype)) = $free_reftype(reftype) + def $free_instr{reftype#133 : reftype, reftype : reftype}(`REF.CAST`_instr{reftype#133}(reftype)) = $free_reftype(reftype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:501.1-501.59 - def $free_instr{funcidx : funcidx}(REF.FUNC_instr(funcidx)) = $free_funcidx(funcidx) + def $free_instr{funcidx#9 : funcidx, funcidx : funcidx}(`REF.FUNC`_instr{funcidx#9}(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:502.1-502.30 - def $free_instr(REF.I31_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_instr{`typeidx*#27` : typeidx*, `funcidx*#27` : funcidx*, `globalidx*#27` : globalidx*, `tableidx*#27` : tableidx*, `memidx*#27` : memidx*, `elemidx*#27` : elemidx*, `dataidx*#27` : dataidx*, `localidx*#27` : localidx*, `labelidx*#29` : labelidx*}(`REF.I31`_instr) = {`TYPES`{`typeidx*#27`} [], `FUNCS`{`funcidx*#27`} [], `GLOBALS`{`globalidx*#27`} [], `TABLES`{`tableidx*#27`} [], `MEMS`{`memidx*#27`} [], `ELEMS`{`elemidx*#27`} [], `DATAS`{`dataidx*#27`} [], `LOCALS`{`localidx*#27`} [], `LABELS`{`labelidx*#29`} []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:504.1-504.33 - def $free_instr{sx : sx}(I31.GET_instr(sx)) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_instr{sx#3 : sx, sx : sx, `typeidx*#28` : typeidx*, `funcidx*#28` : funcidx*, `globalidx*#28` : globalidx*, `tableidx*#28` : tableidx*, `memidx*#28` : memidx*, `elemidx*#28` : elemidx*, `dataidx*#28` : dataidx*, `localidx*#28` : localidx*, `labelidx*#30` : labelidx*}(`I31.GET`_instr{sx#3}(sx)) = {`TYPES`{`typeidx*#28`} [], `FUNCS`{`funcidx*#28`} [], `GLOBALS`{`globalidx*#28`} [], `TABLES`{`tableidx*#28`} [], `MEMS`{`memidx*#28`} [], `ELEMS`{`elemidx*#28`} [], `DATAS`{`dataidx*#28`} [], `LOCALS`{`localidx*#28`} [], `LABELS`{`labelidx*#30`} []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:506.1-506.41 - def $free_instr{typeidx : typeidx}(STRUCT.NEW_instr(typeidx)) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_instr{typeidx#29 : typeidx, typeidx : typeidx, `typeidx*#29` : typeidx*, `funcidx*#29` : funcidx*, `globalidx*#29` : globalidx*, `tableidx*#29` : tableidx*, `memidx*#29` : memidx*, `elemidx*#29` : elemidx*, `dataidx*#29` : dataidx*, `localidx*#29` : localidx*, `labelidx*#31` : labelidx*}(`STRUCT.NEW`_instr{typeidx#29}(typeidx)) = {`TYPES`{`typeidx*#29`} [], `FUNCS`{`funcidx*#29`} [], `GLOBALS`{`globalidx*#29`} [], `TABLES`{`tableidx*#29`} [], `MEMS`{`memidx*#29`} [], `ELEMS`{`elemidx*#29`} [], `DATAS`{`dataidx*#29`} [], `LOCALS`{`localidx*#29`} [], `LABELS`{`labelidx*#31`} []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:507.1-507.69 - def $free_instr{typeidx : typeidx}(STRUCT.NEW_DEFAULT_instr(typeidx)) = $free_typeidx(typeidx) + def $free_instr{typeidx#31 : typeidx, typeidx : typeidx}(`STRUCT.NEW_DEFAULT`_instr{typeidx#31}(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:508.1-508.69 - def $free_instr{`sx?` : sx?, typeidx : typeidx, u32 : u32}(STRUCT.GET_instr(sx?{sx <- `sx?`}, typeidx, u32)) = $free_typeidx(typeidx) + def $free_instr{`sx?#3` : sx?, typeidx#33 : typeidx, u32#2 : u32, `sx?` : sx?, typeidx : typeidx, u32 : u32}(`STRUCT.GET`_instr{`sx?#3`, typeidx#33, u32#2}(sx?{sx <- `sx?`}, typeidx, u32)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:509.1-509.65 - def $free_instr{typeidx : typeidx, u32 : u32}(STRUCT.SET_instr(typeidx, u32)) = $free_typeidx(typeidx) + def $free_instr{typeidx#35 : typeidx, u32#4 : u32, typeidx : typeidx, u32 : u32}(`STRUCT.SET`_instr{typeidx#35, u32#4}(typeidx, u32)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:511.1-511.60 - def $free_instr{typeidx : typeidx}(ARRAY.NEW_instr(typeidx)) = $free_typeidx(typeidx) + def $free_instr{typeidx#37 : typeidx, typeidx : typeidx}(`ARRAY.NEW`_instr{typeidx#37}(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:512.1-512.68 - def $free_instr{typeidx : typeidx}(ARRAY.NEW_DEFAULT_instr(typeidx)) = $free_typeidx(typeidx) + def $free_instr{typeidx#39 : typeidx, typeidx : typeidx}(`ARRAY.NEW_DEFAULT`_instr{typeidx#39}(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:513.1-513.70 - def $free_instr{typeidx : typeidx, u32 : u32}(ARRAY.NEW_FIXED_instr(typeidx, u32)) = $free_typeidx(typeidx) + def $free_instr{typeidx#41 : typeidx, u32#6 : u32, typeidx : typeidx, u32 : u32}(`ARRAY.NEW_FIXED`_instr{typeidx#41, u32#6}(typeidx, u32)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:514.1-515.51 - def $free_instr{typeidx : typeidx, dataidx : dataidx}(ARRAY.NEW_DATA_instr(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) + def $free_instr{typeidx#43 : typeidx, dataidx#1 : dataidx, typeidx : typeidx, dataidx : dataidx}(`ARRAY.NEW_DATA`_instr{typeidx#43, dataidx#1}(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:516.1-517.51 - def $free_instr{typeidx : typeidx, elemidx : elemidx}(ARRAY.NEW_ELEM_instr(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) + def $free_instr{typeidx#45 : typeidx, elemidx#1 : elemidx, typeidx : typeidx, elemidx : elemidx}(`ARRAY.NEW_ELEM`_instr{typeidx#45, elemidx#1}(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:518.1-518.64 - def $free_instr{`sx?` : sx?, typeidx : typeidx}(ARRAY.GET_instr(sx?{sx <- `sx?`}, typeidx)) = $free_typeidx(typeidx) + def $free_instr{`sx?#5` : sx?, typeidx#47 : typeidx, `sx?` : sx?, typeidx : typeidx}(`ARRAY.GET`_instr{`sx?#5`, typeidx#47}(sx?{sx <- `sx?`}, typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:519.1-519.60 - def $free_instr{typeidx : typeidx}(ARRAY.SET_instr(typeidx)) = $free_typeidx(typeidx) + def $free_instr{typeidx#49 : typeidx, typeidx : typeidx}(`ARRAY.SET`_instr{typeidx#49}(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:520.1-520.32 - def $free_instr(ARRAY.LEN_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_instr{`typeidx*#30` : typeidx*, `funcidx*#30` : funcidx*, `globalidx*#30` : globalidx*, `tableidx*#30` : tableidx*, `memidx*#30` : memidx*, `elemidx*#30` : elemidx*, `dataidx*#30` : dataidx*, `localidx*#30` : localidx*, `labelidx*#32` : labelidx*}(`ARRAY.LEN`_instr) = {`TYPES`{`typeidx*#30`} [], `FUNCS`{`funcidx*#30`} [], `GLOBALS`{`globalidx*#30`} [], `TABLES`{`tableidx*#30`} [], `MEMS`{`memidx*#30`} [], `ELEMS`{`elemidx*#30`} [], `DATAS`{`dataidx*#30`} [], `LOCALS`{`localidx*#30`} [], `LABELS`{`labelidx*#32`} []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:521.1-521.61 - def $free_instr{typeidx : typeidx}(ARRAY.FILL_instr(typeidx)) = $free_typeidx(typeidx) + def $free_instr{typeidx#51 : typeidx, typeidx : typeidx}(`ARRAY.FILL`_instr{typeidx#51}(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:522.1-523.55 - def $free_instr{typeidx_1 : typeidx, typeidx_2 : typeidx}(ARRAY.COPY_instr(typeidx_1, typeidx_2)) = $free_typeidx(typeidx_1) +++ $free_typeidx(typeidx_2) + def $free_instr{typeidx#53 : typeidx, typeidx_1 : typeidx, typeidx_2 : typeidx}(`ARRAY.COPY`_instr{typeidx#53}(typeidx_1, typeidx_2)) = $free_typeidx(typeidx_1) +++ $free_typeidx(typeidx_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:524.1-525.51 - def $free_instr{typeidx : typeidx, dataidx : dataidx}(ARRAY.INIT_DATA_instr(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) + def $free_instr{typeidx#56 : typeidx, dataidx#3 : dataidx, typeidx : typeidx, dataidx : dataidx}(`ARRAY.INIT_DATA`_instr{typeidx#56, dataidx#3}(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:526.1-527.51 - def $free_instr{typeidx : typeidx, elemidx : elemidx}(ARRAY.INIT_ELEM_instr(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) + def $free_instr{typeidx#58 : typeidx, elemidx#3 : elemidx, typeidx : typeidx, elemidx : elemidx}(`ARRAY.INIT_ELEM`_instr{typeidx#58, elemidx#3}(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:529.1-529.41 - def $free_instr(EXTERN.CONVERT_ANY_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_instr{`typeidx*#31` : typeidx*, `funcidx*#31` : funcidx*, `globalidx*#31` : globalidx*, `tableidx*#31` : tableidx*, `memidx*#31` : memidx*, `elemidx*#31` : elemidx*, `dataidx*#31` : dataidx*, `localidx*#31` : localidx*, `labelidx*#33` : labelidx*}(`EXTERN.CONVERT_ANY`_instr) = {`TYPES`{`typeidx*#31`} [], `FUNCS`{`funcidx*#31`} [], `GLOBALS`{`globalidx*#31`} [], `TABLES`{`tableidx*#31`} [], `MEMS`{`memidx*#31`} [], `ELEMS`{`elemidx*#31`} [], `DATAS`{`dataidx*#31`} [], `LOCALS`{`localidx*#31`} [], `LABELS`{`labelidx*#33`} []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:530.1-530.41 - def $free_instr(ANY.CONVERT_EXTERN_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_instr{`typeidx*#32` : typeidx*, `funcidx*#32` : funcidx*, `globalidx*#32` : globalidx*, `tableidx*#32` : tableidx*, `memidx*#32` : memidx*, `elemidx*#32` : elemidx*, `dataidx*#32` : dataidx*, `localidx*#32` : localidx*, `labelidx*#34` : labelidx*}(`ANY.CONVERT_EXTERN`_instr) = {`TYPES`{`typeidx*#32`} [], `FUNCS`{`funcidx*#32`} [], `GLOBALS`{`globalidx*#32`} [], `TABLES`{`tableidx*#32`} [], `MEMS`{`memidx*#32`} [], `ELEMS`{`elemidx*#32`} [], `DATAS`{`dataidx*#32`} [], `LOCALS`{`localidx*#32`} [], `LABELS`{`labelidx*#34`} []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:532.1-532.63 - def $free_instr{localidx : localidx}(LOCAL.GET_instr(localidx)) = $free_localidx(localidx) + def $free_instr{localidx#1 : localidx, localidx : localidx}(`LOCAL.GET`_instr{localidx#1}(localidx)) = $free_localidx(localidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:533.1-533.63 - def $free_instr{localidx : localidx}(LOCAL.SET_instr(localidx)) = $free_localidx(localidx) + def $free_instr{localidx#3 : localidx, localidx : localidx}(`LOCAL.SET`_instr{localidx#3}(localidx)) = $free_localidx(localidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:534.1-534.63 - def $free_instr{localidx : localidx}(LOCAL.TEE_instr(localidx)) = $free_localidx(localidx) + def $free_instr{localidx#5 : localidx, localidx : localidx}(`LOCAL.TEE`_instr{localidx#5}(localidx)) = $free_localidx(localidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:536.1-536.67 - def $free_instr{globalidx : globalidx}(GLOBAL.GET_instr(globalidx)) = $free_globalidx(globalidx) + def $free_instr{globalidx#5 : globalidx, globalidx : globalidx}(`GLOBAL.GET`_instr{globalidx#5}(globalidx)) = $free_globalidx(globalidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:537.1-537.67 - def $free_instr{globalidx : globalidx}(GLOBAL.SET_instr(globalidx)) = $free_globalidx(globalidx) + def $free_instr{globalidx#7 : globalidx, globalidx : globalidx}(`GLOBAL.SET`_instr{globalidx#7}(globalidx)) = $free_globalidx(globalidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:539.1-539.63 - def $free_instr{tableidx : tableidx}(TABLE.GET_instr(tableidx)) = $free_tableidx(tableidx) + def $free_instr{tableidx#9 : tableidx, tableidx : tableidx}(`TABLE.GET`_instr{tableidx#9}(tableidx)) = $free_tableidx(tableidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:540.1-540.63 - def $free_instr{tableidx : tableidx}(TABLE.SET_instr(tableidx)) = $free_tableidx(tableidx) + def $free_instr{tableidx#11 : tableidx, tableidx : tableidx}(`TABLE.SET`_instr{tableidx#11}(tableidx)) = $free_tableidx(tableidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:541.1-541.64 - def $free_instr{tableidx : tableidx}(TABLE.SIZE_instr(tableidx)) = $free_tableidx(tableidx) + def $free_instr{tableidx#13 : tableidx, tableidx : tableidx}(`TABLE.SIZE`_instr{tableidx#13}(tableidx)) = $free_tableidx(tableidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:542.1-542.64 - def $free_instr{tableidx : tableidx}(TABLE.GROW_instr(tableidx)) = $free_tableidx(tableidx) + def $free_instr{tableidx#15 : tableidx, tableidx : tableidx}(`TABLE.GROW`_instr{tableidx#15}(tableidx)) = $free_tableidx(tableidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:543.1-543.64 - def $free_instr{tableidx : tableidx}(TABLE.FILL_instr(tableidx)) = $free_tableidx(tableidx) + def $free_instr{tableidx#17 : tableidx, tableidx : tableidx}(`TABLE.FILL`_instr{tableidx#17}(tableidx)) = $free_tableidx(tableidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:544.1-545.59 - def $free_instr{tableidx_1 : tableidx, tableidx_2 : tableidx}(TABLE.COPY_instr(tableidx_1, tableidx_2)) = $free_tableidx(tableidx_1) +++ $free_tableidx(tableidx_2) + def $free_instr{tableidx#19 : tableidx, tableidx_1 : tableidx, tableidx_2 : tableidx}(`TABLE.COPY`_instr{tableidx#19}(tableidx_1, tableidx_2)) = $free_tableidx(tableidx_1) +++ $free_tableidx(tableidx_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:546.1-547.53 - def $free_instr{tableidx : tableidx, elemidx : elemidx}(TABLE.INIT_instr(tableidx, elemidx)) = $free_tableidx(tableidx) +++ $free_elemidx(elemidx) + def $free_instr{tableidx#22 : tableidx, elemidx#5 : elemidx, tableidx : tableidx, elemidx : elemidx}(`TABLE.INIT`_instr{tableidx#22, elemidx#5}(tableidx, elemidx)) = $free_tableidx(tableidx) +++ $free_elemidx(elemidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:548.1-548.60 - def $free_instr{elemidx : elemidx}(ELEM.DROP_instr(elemidx)) = $free_elemidx(elemidx) + def $free_instr{elemidx#7 : elemidx, elemidx : elemidx}(`ELEM.DROP`_instr{elemidx#7}(elemidx)) = $free_elemidx(elemidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:550.1-551.49 - def $free_instr{numtype : numtype, `loadop?` : loadop_(numtype)?, memidx : memidx, memarg : memarg}(LOAD_instr(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) + def $free_instr{`numtype?#1` : numtype?, memidx#5 : memidx, memarg#1 : memarg, numtype : numtype, `loadop?` : loadop_(numtype)?, memidx : memidx, memarg : memarg}(`LOAD`_instr{`numtype?#1`, memidx#5, memarg#1}(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:552.1-553.49 - def $free_instr{numtype : numtype, `storeop?` : storeop_(numtype)?, memidx : memidx, memarg : memarg}(STORE_instr(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) + def $free_instr{`numtype?#2` : numtype?, memidx#7 : memidx, memarg#3 : memarg, numtype : numtype, `storeop?` : storeop_(numtype)?, memidx : memidx, memarg : memarg}(`STORE`_instr{`numtype?#2`, memidx#7, memarg#3}(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:554.1-555.49 - def $free_instr{vectype : vectype, `vloadop?` : vloadop_(vectype)?, memidx : memidx, memarg : memarg}(VLOAD_instr(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) + def $free_instr{`vectype?#1` : vectype?, memidx#9 : memidx, memarg#5 : memarg, vectype : vectype, `vloadop?` : vloadop_(vectype)?, memidx : memidx, memarg : memarg}(`VLOAD`_instr{`vectype?#1`, memidx#9, memarg#5}(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:556.1-557.49 - def $free_instr{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(VLOAD_LANE_instr(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) + def $free_instr{vectype#14 : vectype, sz#1 : sz, memidx#11 : memidx, memarg#7 : memarg, laneidx#5 : laneidx, vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VLOAD_LANE`_instr{vectype#14, sz#1, memidx#11, memarg#7, laneidx#5}(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:558.1-559.49 - def $free_instr{vectype : vectype, memidx : memidx, memarg : memarg}(VSTORE_instr(vectype, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) + def $free_instr{vectype#16 : vectype, memidx#13 : memidx, memarg#9 : memarg, vectype : vectype, memidx : memidx, memarg : memarg}(`VSTORE`_instr{vectype#16, memidx#13, memarg#9}(vectype, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:560.1-561.49 - def $free_instr{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(VSTORE_LANE_instr(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) + def $free_instr{vectype#18 : vectype, sz#3 : sz, memidx#15 : memidx, memarg#11 : memarg, laneidx#7 : laneidx, vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VSTORE_LANE`_instr{vectype#18, sz#3, memidx#15, memarg#11, laneidx#7}(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:562.1-562.59 - def $free_instr{memidx : memidx}(MEMORY.SIZE_instr(memidx)) = $free_memidx(memidx) + def $free_instr{memidx#17 : memidx, memidx : memidx}(`MEMORY.SIZE`_instr{memidx#17}(memidx)) = $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:563.1-563.59 - def $free_instr{memidx : memidx}(MEMORY.GROW_instr(memidx)) = $free_memidx(memidx) + def $free_instr{memidx#19 : memidx, memidx : memidx}(`MEMORY.GROW`_instr{memidx#19}(memidx)) = $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:564.1-564.59 - def $free_instr{memidx : memidx}(MEMORY.FILL_instr(memidx)) = $free_memidx(memidx) + def $free_instr{memidx#21 : memidx, memidx : memidx}(`MEMORY.FILL`_instr{memidx#21}(memidx)) = $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:565.1-566.51 - def $free_instr{memidx_1 : memidx, memidx_2 : memidx}(MEMORY.COPY_instr(memidx_1, memidx_2)) = $free_memidx(memidx_1) +++ $free_memidx(memidx_2) + def $free_instr{memidx#23 : memidx, memidx_1 : memidx, memidx_2 : memidx}(`MEMORY.COPY`_instr{memidx#23}(memidx_1, memidx_2)) = $free_memidx(memidx_1) +++ $free_memidx(memidx_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:567.1-568.49 - def $free_instr{memidx : memidx, dataidx : dataidx}(MEMORY.INIT_instr(memidx, dataidx)) = $free_memidx(memidx) +++ $free_dataidx(dataidx) + def $free_instr{memidx#26 : memidx, dataidx#5 : dataidx, memidx : memidx, dataidx : dataidx}(`MEMORY.INIT`_instr{memidx#26, dataidx#5}(memidx, dataidx)) = $free_memidx(memidx) +++ $free_dataidx(dataidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:569.1-569.60 - def $free_instr{dataidx : dataidx}(DATA.DROP_instr(dataidx)) = $free_dataidx(dataidx) + def $free_instr{dataidx#7 : dataidx, dataidx : dataidx}(`DATA.DROP`_instr{dataidx#7}(dataidx)) = $free_dataidx(dataidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:418.1-418.31 def $free_block(instr*) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:577.1-578.47 - def $free_block{`instr*` : instr*, free : free}(instr*{instr <- `instr*`}) = free[LABELS_free = $shift_labelidxs(free.LABELS_free)] + def $free_block{`instr*` : instr*, free : free, `labelidx*#35` : labelidx*, `labelidx*#44` : labelidx*}(instr*{instr <- `instr*`}) = free[`LABELS`_free{`labelidx*#35`} = $shift_labelidxs(free.`LABELS`_free{`labelidx*#44`})] -- if (free = $free_list($free_instr(instr)*{instr <- `instr*`})) } @@ -2440,162 +113999,162 @@ def $free_expr(expr : expr) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax elemmode = - | ACTIVE{tableidx : tableidx, expr : expr}(tableidx : tableidx, expr : expr) - | PASSIVE - | DECLARE + | `ACTIVE`{tableidx : tableidx, expr : expr}(tableidx : tableidx, expr : expr) + | `PASSIVE` + | `DECLARE` ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax datamode = - | ACTIVE{memidx : memidx, expr : expr}(memidx : memidx, expr : expr) - | PASSIVE + | `ACTIVE`{memidx : memidx, expr : expr}(memidx : memidx, expr : expr) + | `PASSIVE` ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax type = - | TYPE{rectype : rectype}(rectype : rectype) + | `TYPE`{rectype : rectype}(rectype : rectype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax tag = - | TAG{tagtype : tagtype}(tagtype : tagtype) + | `TAG`{tagtype : tagtype}(tagtype : tagtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax global = - | GLOBAL{globaltype : globaltype, expr : expr}(globaltype : globaltype, expr : expr) + | `GLOBAL`{globaltype : globaltype, expr : expr}(globaltype : globaltype, expr : expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax mem = - | MEMORY{memtype : memtype}(memtype : memtype) + | `MEMORY`{memtype : memtype}(memtype : memtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax table = - | TABLE{tabletype : tabletype, expr : expr}(tabletype : tabletype, expr : expr) + | `TABLE`{tabletype : tabletype, expr : expr}(tabletype : tabletype, expr : expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax data = - | DATA{`byte*` : byte*, datamode : datamode}(byte*{byte <- `byte*`} : byte*, datamode : datamode) + | `DATA`{`byte*` : byte*, datamode : datamode}(`byte*` : byte*, datamode : datamode) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax local = - | LOCAL{valtype : valtype}(valtype : valtype) + | `LOCAL`{valtype : valtype}(valtype : valtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax func = - | FUNC{typeidx : typeidx, `local*` : local*, expr : expr}(typeidx : typeidx, local*{local <- `local*`} : local*, expr : expr) + | `FUNC`{typeidx : typeidx, `local*` : local*, expr : expr}(typeidx : typeidx, `local*` : local*, expr : expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax elem = - | ELEM{reftype : reftype, `expr*` : expr*, elemmode : elemmode}(reftype : reftype, expr*{expr <- `expr*`} : expr*, elemmode : elemmode) + | `ELEM`{reftype : reftype, `expr*` : expr*, elemmode : elemmode}(reftype : reftype, `expr*` : expr*, elemmode : elemmode) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax start = - | START{funcidx : funcidx}(funcidx : funcidx) + | `START`{funcidx : funcidx}(funcidx : funcidx) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax import = - | IMPORT{name : name, externtype : externtype}(name : name, name, externtype : externtype) + | `IMPORT`{name : name, externtype : externtype}(name : name, name : name, externtype : externtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax export = - | EXPORT{name : name, externidx : externidx}(name : name, externidx : externidx) + | `EXPORT`{name : name, externidx : externidx}(name : name, externidx : externidx) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax module = - | MODULE{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*}(type*{type <- `type*`} : type*, import*{import <- `import*`} : import*, tag*{tag <- `tag*`} : tag*, global*{global <- `global*`} : global*, mem*{mem <- `mem*`} : mem*, table*{table <- `table*`} : table*, func*{func <- `func*`} : func*, data*{data <- `data*`} : data*, elem*{elem <- `elem*`} : elem*, start?{start <- `start?`} : start?, export*{export <- `export*`} : export*) + | `MODULE`{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*}(`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_type(type : type) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_type{rectype : rectype}(TYPE_type(rectype)) = $free_rectype(rectype) + def $free_type{rectype#265 : rectype, rectype : rectype}(`TYPE`_type{rectype#265}(rectype)) = $free_rectype(rectype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_tag(tag : tag) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_tag{tagtype : tagtype}(TAG_tag(tagtype)) = $free_tagtype(tagtype) + def $free_tag{tagtype#19 : tagtype, tagtype : tagtype}(`TAG`_tag{tagtype#19}(tagtype)) = $free_tagtype(tagtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_global(global : global) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_global{globaltype : globaltype, expr : expr}(GLOBAL_global(globaltype, expr)) = $free_globaltype(globaltype) +++ $free_expr(expr) + def $free_global{globaltype#19 : globaltype, expr#11 : expr, globaltype : globaltype, expr : expr}(`GLOBAL`_global{globaltype#19, expr#11}(globaltype, expr)) = $free_globaltype(globaltype) +++ $free_expr(expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_mem(mem : mem) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_mem{memtype : memtype}(MEMORY_mem(memtype)) = $free_memtype(memtype) + def $free_mem{memtype#19 : memtype, memtype : memtype}(`MEMORY`_mem{memtype#19}(memtype)) = $free_memtype(memtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_table(table : table) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_table{tabletype : tabletype, expr : expr}(TABLE_table(tabletype, expr)) = $free_tabletype(tabletype) +++ $free_expr(expr) + def $free_table{tabletype#19 : tabletype, expr#23 : expr, tabletype : tabletype, expr : expr}(`TABLE`_table{tabletype#19, expr#23}(tabletype, expr)) = $free_tabletype(tabletype) +++ $free_expr(expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_local(local : local) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_local{t : valtype}(LOCAL_local(t)) = $free_valtype(t) + def $free_local{valtype#163 : valtype, t : valtype}(`LOCAL`_local{valtype#163}(t)) = $free_valtype(t) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_func(func : func) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_func{typeidx : typeidx, `local*` : local*, expr : expr}(FUNC_func(typeidx, local*{local <- `local*`}, expr)) = $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[LOCALS_free = []] + def $free_func{typeidx#70 : typeidx, `local*#11` : local*, expr#35 : expr, typeidx : typeidx, `local*` : local*, expr : expr, `localidx*#33` : localidx*}(`FUNC`_func{typeidx#70, `local*#11`, expr#35}(typeidx, local*{local <- `local*`}, expr)) = $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[`LOCALS`_free{`localidx*#33`} = []] ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_datamode(datamode : datamode) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_datamode{memidx : memidx, expr : expr}(ACTIVE_datamode(memidx, expr)) = $free_memidx(memidx) +++ $free_expr(expr) + def $free_datamode{memidx#28 : memidx, expr#39 : expr, memidx : memidx, expr : expr}(`ACTIVE`_datamode{memidx#28, expr#39}(memidx, expr)) = $free_memidx(memidx) +++ $free_expr(expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_datamode(PASSIVE_datamode) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_datamode{`typeidx*#35` : typeidx*, `funcidx*#35` : funcidx*, `globalidx*#35` : globalidx*, `tableidx*#35` : tableidx*, `memidx*#35` : memidx*, `elemidx*#35` : elemidx*, `dataidx*#35` : dataidx*, `localidx*#36` : localidx*, `labelidx*#47` : labelidx*}(`PASSIVE`_datamode) = {`TYPES`{`typeidx*#35`} [], `FUNCS`{`funcidx*#35`} [], `GLOBALS`{`globalidx*#35`} [], `TABLES`{`tableidx*#35`} [], `MEMS`{`memidx*#35`} [], `ELEMS`{`elemidx*#35`} [], `DATAS`{`dataidx*#35`} [], `LOCALS`{`localidx*#36`} [], `LABELS`{`labelidx*#47`} []} ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_data(data : data) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_data{`byte*` : byte*, datamode : datamode}(DATA_data(byte*{byte <- `byte*`}, datamode)) = $free_datamode(datamode) + def $free_data{`byte*#11` : byte*, datamode#11 : datamode, `byte*` : byte*, datamode : datamode}(`DATA`_data{`byte*#11`, datamode#11}(byte*{byte <- `byte*`}, datamode)) = $free_datamode(datamode) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_elemmode(elemmode : elemmode) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode{tableidx : tableidx, expr : expr}(ACTIVE_elemmode(tableidx, expr)) = $free_tableidx(tableidx) +++ $free_expr(expr) + def $free_elemmode{tableidx#24 : tableidx, expr#37 : expr, tableidx : tableidx, expr : expr}(`ACTIVE`_elemmode{tableidx#24, expr#37}(tableidx, expr)) = $free_tableidx(tableidx) +++ $free_expr(expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode(PASSIVE_elemmode) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_elemmode{`typeidx*#33` : typeidx*, `funcidx*#33` : funcidx*, `globalidx*#33` : globalidx*, `tableidx*#33` : tableidx*, `memidx*#33` : memidx*, `elemidx*#33` : elemidx*, `dataidx*#33` : dataidx*, `localidx*#34` : localidx*, `labelidx*#45` : labelidx*}(`PASSIVE`_elemmode) = {`TYPES`{`typeidx*#33`} [], `FUNCS`{`funcidx*#33`} [], `GLOBALS`{`globalidx*#33`} [], `TABLES`{`tableidx*#33`} [], `MEMS`{`memidx*#33`} [], `ELEMS`{`elemidx*#33`} [], `DATAS`{`dataidx*#33`} [], `LOCALS`{`localidx*#34`} [], `LABELS`{`labelidx*#45`} []} ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode(DECLARE_elemmode) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} + def $free_elemmode{`typeidx*#34` : typeidx*, `funcidx*#34` : funcidx*, `globalidx*#34` : globalidx*, `tableidx*#34` : tableidx*, `memidx*#34` : memidx*, `elemidx*#34` : elemidx*, `dataidx*#34` : dataidx*, `localidx*#35` : localidx*, `labelidx*#46` : labelidx*}(`DECLARE`_elemmode) = {`TYPES`{`typeidx*#34`} [], `FUNCS`{`funcidx*#34`} [], `GLOBALS`{`globalidx*#34`} [], `TABLES`{`tableidx*#34`} [], `MEMS`{`memidx*#34`} [], `ELEMS`{`elemidx*#34`} [], `DATAS`{`dataidx*#34`} [], `LOCALS`{`localidx*#35`} [], `LABELS`{`labelidx*#46`} []} ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_elem(elem : elem) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elem{reftype : reftype, `expr*` : expr*, elemmode : elemmode}(ELEM_elem(reftype, expr*{expr <- `expr*`}, elemmode)) = $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`}) +++ $free_elemmode(elemmode) + def $free_elem{reftype#157 : reftype, `expr*#11` : expr*, elemmode#11 : elemmode, reftype : reftype, `expr*` : expr*, elemmode : elemmode}(`ELEM`_elem{reftype#157, `expr*#11`, elemmode#11}(reftype, expr*{expr <- `expr*`}, elemmode)) = $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`}) +++ $free_elemmode(elemmode) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_start(start : start) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_start{funcidx : funcidx}(START_start(funcidx)) = $free_funcidx(funcidx) + def $free_start{funcidx#21 : funcidx, funcidx : funcidx}(`START`_start{funcidx#21}(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_import(import : import) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_import{name_1 : name, name_2 : name, externtype : externtype}(IMPORT_import(name_1, name_2, externtype)) = $free_externtype(externtype) + def $free_import{name#18 : name, externtype#11 : externtype, name_1 : name, name_2 : name, externtype : externtype}(`IMPORT`_import{name#18, externtype#11}(name_1, name_2, externtype)) = $free_externtype(externtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_export(export : export) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_export{name : name, externidx : externidx}(EXPORT_export(name, externidx)) = $free_externidx(externidx) + def $free_export{name#31 : name, externidx#11 : externidx, name : name, externidx : externidx}(`EXPORT`_export{name#31, externidx#11}(name, externidx)) = $free_externidx(externidx) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_module(module : module) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_module{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*}(MODULE_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) = $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`}) +++ $free_list($free_export(export)*{export <- `export*`}) + def $free_module{`type*#11` : type*, `import*#11` : import*, `tag*#11` : tag*, `global*#11` : global*, `mem*#11` : mem*, `table*#11` : table*, `func*#11` : func*, `data*#11` : data*, `elem*#11` : elem*, `start?#11` : start?, `export*#11` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*}(`MODULE`_module{`type*#11`, `import*#11`, `tag*#11`, `global*#11`, `mem*#11`, `table*#11`, `func*#11`, `data*#11`, `elem*#11`, `start?#11`, `export*#11`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) = $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`}) +++ $free_list($free_export(export)*{export <- `export*`}) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $funcidx_module(module : module) : funcidx* ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $funcidx_module{module : module}(module) = $free_module(module).FUNCS_free + def $funcidx_module{module : module, `funcidx*#38` : funcidx*}(module) = $free_module(module).`FUNCS`_free{`funcidx*#38`} ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $dataidx_funcs(func*) : dataidx* ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $dataidx_funcs{`func*` : func*}(func*{func <- `func*`}) = $free_list($free_func(func)*{func <- `func*`}).DATAS_free + def $dataidx_funcs{`func*` : func*, `dataidx*#38` : dataidx*}(func*{func <- `func*`}) = $free_list($free_func(func)*{func <- `func*`}).`DATAS`_free{`dataidx*#38`} ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec syntax init = - | SET - | UNSET + | `SET` + | `UNSET` ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec syntax localtype = @@ -2603,24 +114162,24 @@ syntax localtype = ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec syntax instrtype = - | `%->_%%`{resulttype : resulttype, `localidx*` : localidx*}(resulttype : resulttype, localidx*{localidx <- `localidx*`} : localidx*, resulttype) + | `%->_%%`{resulttype : resulttype, `localidx*` : localidx*}(resulttype : resulttype, `localidx*` : localidx*, resulttype : resulttype) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec syntax context = { - TYPES{`deftype*` : deftype*} deftype*, - RECS{`subtype*` : subtype*} subtype*, - TAGS{`tagtype*` : tagtype*} tagtype*, - GLOBALS{`globaltype*` : globaltype*} globaltype*, - MEMS{`memtype*` : memtype*} memtype*, - TABLES{`tabletype*` : tabletype*} tabletype*, - FUNCS{`deftype*` : deftype*} deftype*, - DATAS{`datatype*` : datatype*} datatype*, - ELEMS{`elemtype*` : elemtype*} elemtype*, - LOCALS{`localtype*` : localtype*} localtype*, - LABELS{`resulttype*` : resulttype*} resulttype*, - RETURN{`resulttype?` : resulttype?} resulttype?, - REFS{`funcidx*` : funcidx*} funcidx* + `TYPES`{`deftype*` : deftype*} deftype*, + `RECS`{`subtype*` : subtype*} subtype*, + `TAGS`{`tagtype*` : tagtype*} tagtype*, + `GLOBALS`{`globaltype*` : globaltype*} globaltype*, + `MEMS`{`memtype*` : memtype*} memtype*, + `TABLES`{`tabletype*` : tabletype*} tabletype*, + `FUNCS`{`deftype*` : deftype*} deftype*, + `DATAS`{`datatype*` : datatype*} datatype*, + `ELEMS`{`elemtype*` : elemtype*} elemtype*, + `LOCALS`{`localtype*` : localtype*} localtype*, + `LABELS`{`resulttype*` : resulttype*} resulttype*, + `RETURN`{`resulttype?` : resulttype?} resulttype?, + `REFS`{`funcidx*` : funcidx*} funcidx* } ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec @@ -2631,7 +114190,7 @@ def $with_locals(context : context, localidx*, localtype*) : context ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec:48.1-48.34 def $with_locals{C : context}(C, [], []) = C ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec:49.1-49.90 - def $with_locals{C : context, x_1 : idx, `x*` : idx*, lct_1 : localtype, `lct*` : localtype*}(C, [x_1] ++ x*{x <- `x*`}, [lct_1] ++ lct*{lct <- `lct*`}) = $with_locals(C[LOCALS_context[x_1!`%`_idx.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`}) + def $with_locals{C : context, x_1 : idx, `x*` : idx*, lct_1 : localtype, `lct*` : localtype*, `localtype*#1` : localtype*, i#3970 : nat}(C, [x_1] ++ x*{x <- `x*`}, [lct_1] ++ lct*{lct <- `lct*`}) = $with_locals(C[`LOCALS`_context{`localtype*#1`}[x_1!`%`_idx{i#3970}.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`}) } ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec @@ -2649,32 +114208,32 @@ def $clos_deftypes(deftype*) : deftype* ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_valtype(context : context, valtype : valtype) : valtype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_valtype{C : context, t : valtype, `dt*` : deftype*}(C, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.TYPES_context)) + def $clos_valtype{C : context, t : valtype, `dt*` : deftype*, `deftype*#2` : deftype*}(C, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#2`})) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_deftype(context : context, deftype : deftype) : deftype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_deftype{C : context, dt : deftype, `dt'*` : deftype*}(C, dt) = $subst_all_deftype(dt, (dt' : deftype <: typeuse)*{dt' <- `dt'*`}) - -- if (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.TYPES_context)) + def $clos_deftype{C : context, dt : deftype, `dt'*` : deftype*, `deftype*#4` : deftype*}(C, dt) = $subst_all_deftype(dt, (dt' : deftype <: typeuse)*{dt' <- `dt'*`}) + -- if (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#4`})) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_tagtype(context : context, tagtype : tagtype) : tagtype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_tagtype{C : context, jt : tagtype, `dt*` : deftype*}(C, jt) = $subst_all_tagtype(jt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.TYPES_context)) + def $clos_tagtype{C : context, jt : tagtype, `dt*` : deftype*, `deftype*#6` : deftype*}(C, jt) = $subst_all_tagtype(jt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#6`})) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_externtype(context : context, externtype : externtype) : externtype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_externtype{C : context, xt : externtype, `dt*` : deftype*}(C, xt) = $subst_all_externtype(xt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.TYPES_context)) + def $clos_externtype{C : context, xt : externtype, `dt*` : deftype*, `deftype*#8` : deftype*}(C, xt) = $subst_all_externtype(xt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#8`})) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_moduletype(context : context, moduletype : moduletype) : moduletype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_moduletype{C : context, mmt : moduletype, `dt*` : deftype*}(C, mmt) = $subst_all_moduletype(mmt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.TYPES_context)) + def $clos_moduletype{C : context, mmt : moduletype, `dt*` : deftype*, `deftype*#10` : deftype*}(C, mmt) = $subst_all_moduletype(mmt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#10`})) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Numtype_ok: `%|-%:OK`(context, numtype) @@ -2690,11 +114249,11 @@ relation Vectype_ok: `%|-%:OK`(context, vectype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec syntax oktypeidx = - | OK{typeidx : typeidx}(typeidx : typeidx) + | `OK`{typeidx : typeidx}(typeidx : typeidx) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec syntax oktypeidxnat = - | OK{typeidx : typeidx, nat : nat}(typeidx : typeidx, nat : nat) + | `OK`{typeidx : typeidx}(typeidx : typeidx, nat) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Packtype_ok: `%|-%:OK`(context, packtype) @@ -2732,18 +114291,18 @@ def $before(typeuse : typeuse, typeidx : typeidx, nat : nat) : bool ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec def $before{deftype : deftype, x : idx, i : nat}((deftype : deftype <: typeuse), x, i) = true ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $before{typeidx : typeidx, x : idx, i : nat}(_IDX_typeuse(typeidx), x, i) = (typeidx!`%`_typeidx.0 < x!`%`_idx.0) + def $before{typeidx#240 : typeidx, typeidx : typeidx, x : idx, i : nat, i#4259 : nat, i#4269 : nat}(`_IDX`_typeuse{typeidx#240}(typeidx), x, i) = (typeidx!`%`_typeidx{i#4259}.0 < x!`%`_idx{i#4269}.0) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $before{j : n, x : idx, i : nat}(REC_typeuse(j), x, i) = (j < i) + def $before{n#515 : n, j : n, x : idx, i : nat}(`REC`_typeuse{n#515}(j), x, i) = (j < i) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec def $unrollht(context : context, heaptype : heaptype) : subtype ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec def $unrollht{C : context, deftype : deftype}(C, (deftype : deftype <: heaptype)) = $unrolldt(deftype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $unrollht{C : context, typeidx : typeidx}(C, _IDX_heaptype(typeidx)) = $unrolldt(C.TYPES_context[typeidx!`%`_typeidx.0]) + def $unrollht{C : context, typeidx#242 : typeidx, typeidx : typeidx, `deftype*#14` : deftype*, i#4303 : nat}(C, `_IDX`_heaptype{typeidx#242}(typeidx)) = $unrolldt(C.`TYPES`_context{`deftype*#14`}[typeidx!`%`_typeidx{i#4303}.0]) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $unrollht{C : context, i : n}(C, REC_heaptype(i)) = C.RECS_context[i] + def $unrollht{C : context, n#529 : n, i : n, `subtype*#2` : subtype*}(C, `REC`_heaptype{n#529}(i)) = C.`RECS`_context{`subtype*#2`}[i] ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec rec { @@ -2762,8 +114321,8 @@ relation Heaptype_ok: `%|-%:OK`(context, heaptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:10.1-10.91 relation Reftype_ok: `%|-%:OK`(context, reftype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:27.1-29.37 - rule _{C : context, heaptype : heaptype}: - `%|-%:OK`(C, REF_reftype(NULL_null?{}, heaptype)) + rule _{C : context, `null?#419` : null?, heaptype#421 : heaptype, heaptype : heaptype}: + `%|-%:OK`(C, `REF`_reftype{`null?#419`, heaptype#421}(`NULL`_null?{}, heaptype)) -- Heaptype_ok: `%|-%:OK`(C, heaptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:11.1-11.91 @@ -2785,19 +114344,19 @@ relation Valtype_ok: `%|-%:OK`(context, valtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:43.1-44.16 rule bot{C : context}: - `%|-%:OK`(C, BOT_valtype) + `%|-%:OK`(C, `BOT`_valtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:12.1-12.94 relation Typeuse_ok: `%|-%:OK`(context, typeuse) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:99.1-101.30 - rule typeidx{C : context, typeidx : typeidx, dt : deftype}: - `%|-%:OK`(C, _IDX_typeuse(typeidx)) - -- if (C.TYPES_context[typeidx!`%`_typeidx.0] = dt) + rule typeidx{C : context, typeidx#222 : typeidx, typeidx : typeidx, `deftype*#12` : deftype*, i#4125 : nat, dt : deftype}: + `%|-%:OK`(C, `_IDX`_typeuse{typeidx#222}(typeidx)) + -- if (C.`TYPES`_context{`deftype*#12`}[typeidx!`%`_typeidx{i#4125}.0] = dt) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:103.1-105.23 - rule rec{C : context, i : n, st : subtype}: - `%|-%:OK`(C, REC_typeuse(i)) - -- if (C.RECS_context[i] = st) + rule rec{C : context, n#501 : n, i : n, `subtype*#1` : subtype*, st : subtype}: + `%|-%:OK`(C, `REC`_typeuse{n#501}(i)) + -- if (C.`RECS`_context{`subtype*#1`}[i] = st) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:107.1-109.35 rule deftype{C : context, deftype : deftype}: @@ -2807,15 +114366,15 @@ relation Typeuse_ok: `%|-%:OK`(context, typeuse) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:49.1-49.100 relation Resulttype_ok: `%|-%:OK`(context, resulttype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:52.1-54.32 - rule _{C : context, `t*` : valtype*}: - `%|-%:OK`(C, `%`_resulttype(t*{t <- `t*`})) + rule _{C : context, `X*#465` : valtype*, `t*` : valtype*}: + `%|-%:OK`(C, `%`_resulttype{`X*#465`}(t*{t <- `t*`})) -- (Valtype_ok: `%|-%:OK`(C, t))*{t <- `t*`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:85.1-85.104 relation Fieldtype_ok: `%|-%:OK`(context, fieldtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:123.1-125.43 - rule _{C : context, storagetype : storagetype}: - `%|-%:OK`(C, `%%`_fieldtype(MUT_mut?{}, storagetype)) + rule _{C : context, `mut?#289` : mut?, storagetype#137 : storagetype, storagetype : storagetype}: + `%|-%:OK`(C, `%%`_fieldtype{`mut?#289`, storagetype#137}(`MUT`_mut?{}, storagetype)) -- Storagetype_ok: `%|-%:OK`(C, storagetype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:86.1-86.106 @@ -2833,98 +114392,98 @@ relation Storagetype_ok: `%|-%:OK`(context, storagetype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:87.1-87.103 relation Comptype_ok: `%|-%:OK`(context, comptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:128.1-130.42 - rule struct{C : context, `fieldtype*` : fieldtype*}: - `%|-%:OK`(C, STRUCT_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))) + rule struct{C : context, `X*#571` : fieldtype*, `fieldtype*` : fieldtype*}: + `%|-%:OK`(C, `STRUCT`_comptype(`%`_list{`X*#571`}(fieldtype*{fieldtype <- `fieldtype*`}))) -- (Fieldtype_ok: `%|-%:OK`(C, fieldtype))*{fieldtype <- `fieldtype*`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:132.1-134.39 - rule array{C : context, fieldtype : fieldtype}: - `%|-%:OK`(C, ARRAY_comptype(fieldtype)) + rule array{C : context, fieldtype#7 : fieldtype, fieldtype : fieldtype}: + `%|-%:OK`(C, `ARRAY`_comptype{fieldtype#7}(fieldtype)) -- Fieldtype_ok: `%|-%:OK`(C, fieldtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:136.1-139.35 - rule func{C : context, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:OK`(C, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype(t_1*{t_1 <- `t_1*`})) - -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`})) + rule func{C : context, resulttype#30 : resulttype, `X*#586` : valtype*, `t_1*` : valtype*, `X*#599` : valtype*, `t_2*` : valtype*, `X*#612` : valtype*, `X*#625` : valtype*}: + `%|-%:OK`(C, `FUNC%->%`_comptype{resulttype#30}(`%`_resulttype{`X*#586`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#599`}(t_2*{t_2 <- `t_2*`}))) + -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype{`X*#612`}(t_1*{t_1 <- `t_1*`})) + -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype{`X*#625`}(t_2*{t_2 <- `t_2*`})) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:88.1-88.126 relation Subtype_ok: `%|-%:%`(context, subtype, oktypeidx) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:142.1-149.49 - rule _{C : context, `x*` : idx*, comptype : comptype, x_0 : idx, `x'**` : idx**, `comptype'*` : comptype*}: - `%|-%:%`(C, SUB_subtype(FINAL_final?{}, _IDX_typeuse(x)*{x <- `x*`}, comptype), OK_oktypeidx(x_0)) + rule _{C : context, `final?#215` : final?, `typeuse*#215` : typeuse*, comptype#215 : comptype, `typeidx#224*` : typeidx*, `x*` : idx*, comptype : comptype, typeidx#236 : typeidx, x_0 : idx, `i#4171*` : nat*, `i#4181*` : nat*, `comptype#227*` : comptype*, `comptype'*` : comptype*, `deftype*#13*` : deftype**, `final?#227*` : final?*, `i#4191*` : nat*, `typeidx#238**` : typeidx**, `typeuse*#227*` : typeuse**, `x'**` : idx**}: + `%|-%:%`(C, `SUB`_subtype{`final?#215`, `typeuse*#215`, comptype#215}(`FINAL`_final?{}, `_IDX`_typeuse{typeidx#224}(x)*{typeidx#224 <- `typeidx#224*`, x <- `x*`}, comptype), `OK`_oktypeidx{typeidx#236}(x_0)) -- if (|x*{x <- `x*`}| <= 1) - -- (if (x!`%`_idx.0 < x_0!`%`_idx.0))*{x <- `x*`} - -- (if ($unrolldt(C.TYPES_context[x!`%`_idx.0]) = SUB_subtype(?(), _IDX_typeuse(x')*{x' <- `x'*`}, comptype')))*{comptype' <- `comptype'*`, x <- `x*`, `x'*` <- `x'**`} + -- (if (x!`%`_idx{i#4171}.0 < x_0!`%`_idx{i#4181}.0))*{i#4171 <- `i#4171*`, i#4181 <- `i#4181*`, x <- `x*`} + -- (if ($unrolldt(C.`TYPES`_context{`deftype*#13`}[x!`%`_idx{i#4191}.0]) = `SUB`_subtype{`final?#227`, `typeuse*#227`, comptype#227}(?(), `_IDX`_typeuse{typeidx#238}(x')*{typeidx#238 <- `typeidx#238*`, x' <- `x'*`}, comptype')))*{comptype#227 <- `comptype#227*`, comptype' <- `comptype'*`, `deftype*#13` <- `deftype*#13*`, `final?#227` <- `final?#227*`, i#4191 <- `i#4191*`, `typeidx#238*` <- `typeidx#238**`, `typeuse*#227` <- `typeuse*#227*`, x <- `x*`, `x'*` <- `x'**`} -- Comptype_ok: `%|-%:OK`(C, comptype) -- (Comptype_sub: `%|-%<:%`(C, comptype, comptype'))*{comptype' <- `comptype'*`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:89.1-89.126 relation Rectype_ok: `%|-%:%`(context, rectype, oktypeidx) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:171.1-172.23 - rule empty{C : context, x : idx}: - `%|-%:%`(C, REC_rectype(`%`_list([])), OK_oktypeidx(x)) + rule empty{C : context, `X*#650` : subtype*, typeidx#266 : typeidx, x : idx}: + `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#650`}([])), `OK`_oktypeidx{typeidx#266}(x)) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:174.1-177.48 - rule cons{C : context, subtype_1 : subtype, `subtype*` : subtype*, x : idx}: - `%|-%:%`(C, REC_rectype(`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`})), OK_oktypeidx(x)) - -- Subtype_ok: `%|-%:%`(C, subtype_1, OK_oktypeidx(x)) - -- Rectype_ok: `%|-%:%`(C, REC_rectype(`%`_list(subtype*{subtype <- `subtype*`})), OK_oktypeidx(`%`_typeidx((x!`%`_idx.0 + 1)))) + rule cons{C : context, `X*#673` : subtype*, subtype_1 : subtype, `subtype*` : subtype*, typeidx#278 : typeidx, x : idx, typeidx#290 : typeidx, `X*#686` : subtype*, typeidx#302 : typeidx, i#4407 : nat, i#4397 : nat}: + `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#673`}([subtype_1] ++ subtype*{subtype <- `subtype*`})), `OK`_oktypeidx{typeidx#278}(x)) + -- Subtype_ok: `%|-%:%`(C, subtype_1, `OK`_oktypeidx{typeidx#290}(x)) + -- Rectype_ok: `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#686`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidx{typeidx#302}(`%`_typeidx{i#4407}((x!`%`_idx{i#4397}.0 + 1)))) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:179.1-181.60 - rule _rec2{C : context, `subtype*` : subtype*, x : idx}: - `%|-%:%`(C, REC_rectype(`%`_list(subtype*{subtype <- `subtype*`})), OK_oktypeidx(x)) - -- Rectype_ok2: `%|-%:%`({TYPES [], RECS subtype*{subtype <- `subtype*`}, TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []} +++ C, REC_rectype(`%`_list(subtype*{subtype <- `subtype*`})), OK_oktypeidxnat(x, 0)) + rule _rec2{C : context, `X*#701` : subtype*, `subtype*` : subtype*, typeidx#314 : typeidx, x : idx, `deftype*#15` : deftype*, `subtype*#3` : subtype*, `tagtype*#1` : tagtype*, `globaltype*#1` : globaltype*, `memtype*#1` : memtype*, `tabletype*#1` : tabletype*, `deftype*#16` : deftype*, `datatype*#1` : datatype*, `elemtype*#1` : elemtype*, `localtype*#3` : localtype*, `resulttype*#1` : resulttype*, `resulttype?#1` : resulttype?, `funcidx*#39` : funcidx*, `X*#716` : subtype*, typeidx#326 : typeidx}: + `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#701`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidx{typeidx#314}(x)) + -- Rectype_ok2: `%|-%:%`({`TYPES`{`deftype*#15`} [], `RECS`{`subtype*#3`} subtype*{subtype <- `subtype*`}, `TAGS`{`tagtype*#1`} [], `GLOBALS`{`globaltype*#1`} [], `MEMS`{`memtype*#1`} [], `TABLES`{`tabletype*#1`} [], `FUNCS`{`deftype*#16`} [], `DATAS`{`datatype*#1`} [], `ELEMS`{`elemtype*#1`} [], `LOCALS`{`localtype*#3`} [], `LABELS`{`resulttype*#1`} [], `RETURN`{`resulttype?#1`} ?(), `REFS`{`funcidx*#39`} []} +++ C, `REC`_rectype(`%`_list{`X*#716`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat{typeidx#326}(x, 0)) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:90.1-90.126 relation Subtype_ok2: `%|-%:%`(context, subtype, oktypeidxnat) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:161.1-168.49 - rule _{C : context, `typeuse*` : typeuse*, compttype : comptype, x : idx, i : nat, `typeuse'**` : typeuse**, `comptype'*` : comptype*, comptype : comptype}: - `%|-%:%`(C, SUB_subtype(FINAL_final?{}, typeuse*{typeuse <- `typeuse*`}, compttype), OK_oktypeidxnat(x, i)) + rule _{C : context, `final?#257` : final?, `typeuse*#257` : typeuse*, comptype#257 : comptype, `typeuse*` : typeuse*, compttype : comptype, typeidx#254 : typeidx, x : idx, i : nat, `comptype#269*` : comptype*, `comptype'*` : comptype*, `final?#269*` : final?*, `typeuse'**` : typeuse**, `typeuse*#269*` : typeuse**, comptype : comptype}: + `%|-%:%`(C, `SUB`_subtype{`final?#257`, `typeuse*#257`, comptype#257}(`FINAL`_final?{}, typeuse*{typeuse <- `typeuse*`}, compttype), `OK`_oktypeidxnat{typeidx#254}(x, i)) -- if (|typeuse*{typeuse <- `typeuse*`}| <= 1) -- (if $before(typeuse, x, i))*{typeuse <- `typeuse*`} - -- (if ($unrollht(C, (typeuse : typeuse <: heaptype)) = SUB_subtype(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype')))*{comptype' <- `comptype'*`, typeuse <- `typeuse*`, `typeuse'*` <- `typeuse'**`} + -- (if ($unrollht(C, (typeuse : typeuse <: heaptype)) = `SUB`_subtype{`final?#269`, `typeuse*#269`, comptype#269}(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype')))*{comptype#269 <- `comptype#269*`, comptype' <- `comptype'*`, `final?#269` <- `final?#269*`, typeuse <- `typeuse*`, `typeuse'*` <- `typeuse'**`, `typeuse*#269` <- `typeuse*#269*`} -- Comptype_ok: `%|-%:OK`(C, comptype) -- (Comptype_sub: `%|-%<:%`(C, comptype, comptype'))*{comptype' <- `comptype'*`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:91.1-91.126 relation Rectype_ok2: `%|-%:%`(context, rectype, oktypeidxnat) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:183.1-184.24 - rule empty{C : context, x : idx, i : nat}: - `%|-%:%`(C, REC_rectype(`%`_list([])), OK_oktypeidxnat(x, i)) + rule empty{C : context, `X*#741` : subtype*, typeidx#338 : typeidx, x : idx, i : nat}: + `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#741`}([])), `OK`_oktypeidxnat{typeidx#338}(x, i)) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:186.1-189.55 - rule cons{C : context, subtype_1 : subtype, `subtype*` : subtype*, x : idx, i : nat}: - `%|-%:%`(C, REC_rectype(`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`})), OK_oktypeidxnat(x, i)) - -- Subtype_ok2: `%|-%:%`(C, subtype_1, OK_oktypeidxnat(x, i)) - -- Rectype_ok2: `%|-%:%`(C, REC_rectype(`%`_list(subtype*{subtype <- `subtype*`})), OK_oktypeidxnat(`%`_typeidx((x!`%`_idx.0 + 1)), (i + 1))) + rule cons{C : context, `X*#764` : subtype*, subtype_1 : subtype, `subtype*` : subtype*, typeidx#350 : typeidx, x : idx, i : nat, typeidx#362 : typeidx, `X*#777` : subtype*, typeidx#374 : typeidx, i#4513 : nat, i#4503 : nat}: + `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#764`}([subtype_1] ++ subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat{typeidx#350}(x, i)) + -- Subtype_ok2: `%|-%:%`(C, subtype_1, `OK`_oktypeidxnat{typeidx#362}(x, i)) + -- Rectype_ok2: `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#777`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat{typeidx#374}(`%`_typeidx{i#4513}((x!`%`_idx{i#4503}.0 + 1)), (i + 1))) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:92.1-92.102 relation Deftype_ok: `%|-%:OK`(context, deftype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:192.1-196.14 - rule _{C : context, rectype : rectype, i : n, x : idx, `subtype*` : subtype*, n : n}: - `%|-%:OK`(C, _DEF_deftype(rectype, i)) - -- Rectype_ok: `%|-%:%`(C, rectype, OK_oktypeidx(x)) - -- if (rectype = REC_rectype(`%`_list(subtype^n{subtype <- `subtype*`}))) + rule _{C : context, rectype#577 : rectype, n#541 : n, rectype : rectype, i : n, typeidx#386 : typeidx, x : idx, `X*#792` : subtype*, n : n, `subtype*` : subtype*}: + `%|-%:OK`(C, `_DEF`_deftype{rectype#577, n#541}(rectype, i)) + -- Rectype_ok: `%|-%:%`(C, rectype, `OK`_oktypeidx{typeidx#386}(x)) + -- if (rectype = `REC`_rectype(`%`_list{`X*#792`}(subtype^n{subtype <- `subtype*`}))) -- if (i < n) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:95.1-95.108 relation Comptype_sub: `%|-%<:%`(context, comptype, comptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:165.1-167.41 - rule struct{C : context, `ft_1*` : fieldtype*, `ft'_1*` : fieldtype*, `ft_2*` : fieldtype*}: - `%|-%<:%`(C, STRUCT_comptype(`%`_list(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`})), STRUCT_comptype(`%`_list(ft_2*{ft_2 <- `ft_2*`}))) + rule struct{C : context, `X*#1124` : fieldtype*, `ft_1*` : fieldtype*, `ft'_1*` : fieldtype*, `X*#1137` : fieldtype*, `ft_2*` : fieldtype*}: + `%|-%<:%`(C, `STRUCT`_comptype(`%`_list{`X*#1124`}(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`})), `STRUCT`_comptype(`%`_list{`X*#1137`}(ft_2*{ft_2 <- `ft_2*`}))) -- (Fieldtype_sub: `%|-%<:%`(C, ft_1, ft_2))*{ft_1 <- `ft_1*`, ft_2 <- `ft_2*`} ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:169.1-171.38 - rule array{C : context, ft_1 : fieldtype, ft_2 : fieldtype}: - `%|-%<:%`(C, ARRAY_comptype(ft_1), ARRAY_comptype(ft_2)) + rule array{C : context, fieldtype#11 : fieldtype, ft_1 : fieldtype, fieldtype#13 : fieldtype, ft_2 : fieldtype}: + `%|-%<:%`(C, `ARRAY`_comptype{fieldtype#11}(ft_1), `ARRAY`_comptype{fieldtype#13}(ft_2)) -- Fieldtype_sub: `%|-%<:%`(C, ft_1, ft_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:173.1-176.41 - rule func{C : context, `t_11*` : valtype*, `t_12*` : valtype*, `t_21*` : valtype*, `t_22*` : valtype*}: - `%|-%<:%`(C, `FUNC%->%`_comptype(`%`_resulttype(t_11*{t_11 <- `t_11*`}), `%`_resulttype(t_12*{t_12 <- `t_12*`})), `FUNC%->%`_comptype(`%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`}))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_11*{t_11 <- `t_11*`})) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_12*{t_12 <- `t_12*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`})) + rule func{C : context, resulttype#82 : resulttype, `X*#1152` : valtype*, `t_11*` : valtype*, `X*#1165` : valtype*, `t_12*` : valtype*, resulttype#85 : resulttype, `X*#1180` : valtype*, `t_21*` : valtype*, `X*#1193` : valtype*, `t_22*` : valtype*, `X*#1206` : valtype*, `X*#1219` : valtype*, `X*#1232` : valtype*, `X*#1245` : valtype*}: + `%|-%<:%`(C, `FUNC%->%`_comptype{resulttype#82}(`%`_resulttype{`X*#1152`}(t_11*{t_11 <- `t_11*`}), `%`_resulttype{`X*#1165`}(t_12*{t_12 <- `t_12*`})), `FUNC%->%`_comptype{resulttype#85}(`%`_resulttype{`X*#1180`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1193`}(t_22*{t_22 <- `t_22*`}))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#1206`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1219`}(t_11*{t_11 <- `t_11*`})) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#1232`}(t_12*{t_12 <- `t_12*`}), `%`_resulttype{`X*#1245`}(t_22*{t_22 <- `t_22*`})) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:96.1-96.107 relation Deftype_sub: `%|-%<:%`(context, deftype, deftype) @@ -2934,9 +114493,9 @@ relation Deftype_sub: `%|-%<:%`(context, deftype, deftype) -- if ($clos_deftype(C, deftype_1) = $clos_deftype(C, deftype_2)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:183.1-186.49 - rule super{C : context, deftype_1 : deftype, deftype_2 : deftype, `final?` : final?, `typeuse*` : typeuse*, ct : comptype, i : nat}: + rule super{C : context, deftype_1 : deftype, deftype_2 : deftype, `final?#437` : final?, `typeuse*#437` : typeuse*, comptype#437 : comptype, `final?` : final?, `typeuse*` : typeuse*, ct : comptype, i : nat}: `%|-%<:%`(C, deftype_1, deftype_2) - -- if ($unrolldt(deftype_1) = SUB_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)) + -- if ($unrolldt(deftype_1) = `SUB`_subtype{`final?#437`, `typeuse*#437`, comptype#437}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)) -- Heaptype_sub: `%|-%<:%`(C, (typeuse*{typeuse <- `typeuse*`}[i] : typeuse <: heaptype), (deftype_2 : deftype <: heaptype)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:9.1-9.104 @@ -2954,34 +114513,34 @@ relation Heaptype_sub: `%|-%<:%`(context, heaptype, heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:29.1-30.17 rule `eq-any`{C : context}: - `%|-%<:%`(C, EQ_heaptype, ANY_heaptype) + `%|-%<:%`(C, `EQ`_heaptype, `ANY`_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:32.1-33.17 rule `i31-eq`{C : context}: - `%|-%<:%`(C, I31_heaptype, EQ_heaptype) + `%|-%<:%`(C, `I31`_heaptype, `EQ`_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:35.1-36.20 rule `struct-eq`{C : context}: - `%|-%<:%`(C, STRUCT_heaptype, EQ_heaptype) + `%|-%<:%`(C, `STRUCT`_heaptype, `EQ`_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:38.1-39.19 rule `array-eq`{C : context}: - `%|-%<:%`(C, ARRAY_heaptype, EQ_heaptype) + `%|-%<:%`(C, `ARRAY`_heaptype, `EQ`_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:41.1-43.42 - rule struct{C : context, deftype : deftype, `fieldtype*` : fieldtype*}: - `%|-%<:%`(C, (deftype : deftype <: heaptype), STRUCT_heaptype) - -- Expand: `%~~%`(deftype, STRUCT_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))) + rule struct{C : context, deftype : deftype, `X*#863` : fieldtype*, `fieldtype*` : fieldtype*}: + `%|-%<:%`(C, (deftype : deftype <: heaptype), `STRUCT`_heaptype) + -- Expand: `%~~%`(deftype, `STRUCT`_comptype(`%`_list{`X*#863`}(fieldtype*{fieldtype <- `fieldtype*`}))) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:45.1-47.40 - rule array{C : context, deftype : deftype, fieldtype : fieldtype}: - `%|-%<:%`(C, (deftype : deftype <: heaptype), ARRAY_heaptype) - -- Expand: `%~~%`(deftype, ARRAY_comptype(fieldtype)) + rule array{C : context, deftype : deftype, fieldtype#9 : fieldtype, fieldtype : fieldtype}: + `%|-%<:%`(C, (deftype : deftype <: heaptype), `ARRAY`_heaptype) + -- Expand: `%~~%`(deftype, `ARRAY`_comptype{fieldtype#9}(fieldtype)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:49.1-51.42 - rule func{C : context, deftype : deftype, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%<:%`(C, (deftype : deftype <: heaptype), FUNC_heaptype) - -- Expand: `%~~%`(deftype, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule func{C : context, deftype : deftype, resulttype#39 : resulttype, `X*#878` : valtype*, `t_1*` : valtype*, `X*#891` : valtype*, `t_2*` : valtype*}: + `%|-%<:%`(C, (deftype : deftype <: heaptype), `FUNC`_heaptype) + -- Expand: `%~~%`(deftype, `FUNC%->%`_comptype{resulttype#39}(`%`_resulttype{`X*#878`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#891`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:53.1-55.46 rule def{C : context, deftype_1 : deftype, deftype_2 : deftype}: @@ -2989,54 +114548,54 @@ relation Heaptype_sub: `%|-%<:%`(context, heaptype, heaptype) -- Deftype_sub: `%|-%<:%`(C, deftype_1, deftype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:57.1-59.53 - rule `typeidx-l`{C : context, typeidx : typeidx, heaptype : heaptype}: - `%|-%<:%`(C, _IDX_heaptype(typeidx), heaptype) - -- Heaptype_sub: `%|-%<:%`(C, (C.TYPES_context[typeidx!`%`_typeidx.0] : deftype <: heaptype), heaptype) + rule `typeidx-l`{C : context, typeidx#388 : typeidx, typeidx : typeidx, heaptype : heaptype, `deftype*#17` : deftype*, i#4606 : nat}: + `%|-%<:%`(C, `_IDX`_heaptype{typeidx#388}(typeidx), heaptype) + -- Heaptype_sub: `%|-%<:%`(C, (C.`TYPES`_context{`deftype*#17`}[typeidx!`%`_typeidx{i#4606}.0] : deftype <: heaptype), heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:61.1-63.53 - rule `typeidx-r`{C : context, heaptype : heaptype, typeidx : typeidx}: - `%|-%<:%`(C, heaptype, _IDX_heaptype(typeidx)) - -- Heaptype_sub: `%|-%<:%`(C, heaptype, (C.TYPES_context[typeidx!`%`_typeidx.0] : deftype <: heaptype)) + rule `typeidx-r`{C : context, heaptype : heaptype, typeidx#390 : typeidx, typeidx : typeidx, `deftype*#18` : deftype*, i#4628 : nat}: + `%|-%<:%`(C, heaptype, `_IDX`_heaptype{typeidx#390}(typeidx)) + -- Heaptype_sub: `%|-%<:%`(C, heaptype, (C.`TYPES`_context{`deftype*#18`}[typeidx!`%`_typeidx{i#4628}.0] : deftype <: heaptype)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:65.1-67.43 - rule rec{C : context, i : n, `typeuse*` : typeuse*, j : nat, `final?` : final?, ct : comptype}: - `%|-%<:%`(C, REC_heaptype(i), (typeuse*{typeuse <- `typeuse*`}[j] : typeuse <: heaptype)) - -- if (C.RECS_context[i] = SUB_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)) + rule rec{C : context, n#573 : n, i : n, `typeuse*` : typeuse*, j : nat, `subtype*#4` : subtype*, `final?#425` : final?, `typeuse*#425` : typeuse*, comptype#425 : comptype, `final?` : final?, ct : comptype}: + `%|-%<:%`(C, `REC`_heaptype{n#573}(i), (typeuse*{typeuse <- `typeuse*`}[j] : typeuse <: heaptype)) + -- if (C.`RECS`_context{`subtype*#4`}[i] = `SUB`_subtype{`final?#425`, `typeuse*#425`, comptype#425}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:69.1-71.40 rule none{C : context, heaptype : heaptype}: - `%|-%<:%`(C, NONE_heaptype, heaptype) - -- Heaptype_sub: `%|-%<:%`(C, heaptype, ANY_heaptype) + `%|-%<:%`(C, `NONE`_heaptype, heaptype) + -- Heaptype_sub: `%|-%<:%`(C, heaptype, `ANY`_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:73.1-75.41 rule nofunc{C : context, heaptype : heaptype}: - `%|-%<:%`(C, NOFUNC_heaptype, heaptype) - -- Heaptype_sub: `%|-%<:%`(C, heaptype, FUNC_heaptype) + `%|-%<:%`(C, `NOFUNC`_heaptype, heaptype) + -- Heaptype_sub: `%|-%<:%`(C, heaptype, `FUNC`_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:77.1-79.40 rule noexn{C : context, heaptype : heaptype}: - `%|-%<:%`(C, NOEXN_heaptype, heaptype) - -- Heaptype_sub: `%|-%<:%`(C, heaptype, EXN_heaptype) + `%|-%<:%`(C, `NOEXN`_heaptype, heaptype) + -- Heaptype_sub: `%|-%<:%`(C, heaptype, `EXN`_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:81.1-83.43 rule noextern{C : context, heaptype : heaptype}: - `%|-%<:%`(C, NOEXTERN_heaptype, heaptype) - -- Heaptype_sub: `%|-%<:%`(C, heaptype, EXTERN_heaptype) + `%|-%<:%`(C, `NOEXTERN`_heaptype, heaptype) + -- Heaptype_sub: `%|-%<:%`(C, heaptype, `EXTERN`_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:85.1-86.23 rule bot{C : context, heaptype : heaptype}: - `%|-%<:%`(C, BOT_heaptype, heaptype) + `%|-%<:%`(C, `BOT`_heaptype, heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:10.1-10.103 relation Reftype_sub: `%|-%<:%`(context, reftype, reftype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:89.1-91.37 - rule nonnull{C : context, ht_1 : heaptype, ht_2 : heaptype}: - `%|-%<:%`(C, REF_reftype(?(), ht_1), REF_reftype(?(), ht_2)) + rule nonnull{C : context, `null?#449` : null?, heaptype#451 : heaptype, ht_1 : heaptype, `null?#461` : null?, heaptype#463 : heaptype, ht_2 : heaptype}: + `%|-%<:%`(C, `REF`_reftype{`null?#449`, heaptype#451}(?(), ht_1), `REF`_reftype{`null?#461`, heaptype#463}(?(), ht_2)) -- Heaptype_sub: `%|-%<:%`(C, ht_1, ht_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:93.1-95.37 - rule null{C : context, ht_1 : heaptype, ht_2 : heaptype}: - `%|-%<:%`(C, REF_reftype(NULL_null?{}, ht_1), REF_reftype(?(NULL_null), ht_2)) + rule null{C : context, `null?#473` : null?, heaptype#475 : heaptype, ht_1 : heaptype, `null?#485` : null?, heaptype#487 : heaptype, ht_2 : heaptype}: + `%|-%<:%`(C, `REF`_reftype{`null?#473`, heaptype#475}(`NULL`_null?{}, ht_1), `REF`_reftype{`null?#485`, heaptype#487}(?(`NULL`_null), ht_2)) -- Heaptype_sub: `%|-%<:%`(C, ht_1, ht_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:11.1-11.103 @@ -3058,13 +114617,13 @@ relation Valtype_sub: `%|-%<:%`(context, valtype, valtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:110.1-111.22 rule bot{C : context, valtype : valtype}: - `%|-%<:%`(C, BOT_valtype, valtype) + `%|-%<:%`(C, `BOT`_valtype, valtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:116.1-116.115 relation Resulttype_sub: `%|-%<:%`(context, resulttype, resulttype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:119.1-121.37 - rule _{C : context, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%<:%`(C, `%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})) + rule _{C : context, `X*#904` : valtype*, `t_1*` : valtype*, `X*#917` : valtype*, `t_2*` : valtype*}: + `%|-%<:%`(C, `%`_resulttype{`X*#904`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#917`}(t_2*{t_2 <- `t_2*`})) -- (Valtype_sub: `%|-%<:%`(C, t_1, t_2))*{t_1 <- `t_1*`, t_2 <- `t_2*`} ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:134.1-134.119 @@ -3082,13 +114641,13 @@ relation Storagetype_sub: `%|-%<:%`(context, storagetype, storagetype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:135.1-135.117 relation Fieldtype_sub: `%|-%<:%`(context, fieldtype, fieldtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:155.1-157.40 - rule const{C : context, zt_1 : storagetype, zt_2 : storagetype}: - `%|-%<:%`(C, `%%`_fieldtype(?(), zt_1), `%%`_fieldtype(?(), zt_2)) + rule const{C : context, `mut?#371` : mut?, storagetype#195 : storagetype, zt_1 : storagetype, `mut?#377` : mut?, storagetype#201 : storagetype, zt_2 : storagetype}: + `%|-%<:%`(C, `%%`_fieldtype{`mut?#371`, storagetype#195}(?(), zt_1), `%%`_fieldtype{`mut?#377`, storagetype#201}(?(), zt_2)) -- Storagetype_sub: `%|-%<:%`(C, zt_1, zt_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:159.1-162.40 - rule var{C : context, zt_1 : storagetype, zt_2 : storagetype}: - `%|-%<:%`(C, `%%`_fieldtype(?(MUT_mut), zt_1), `%%`_fieldtype(?(MUT_mut), zt_2)) + rule var{C : context, `mut?#389` : mut?, storagetype#213 : storagetype, zt_1 : storagetype, `mut?#401` : mut?, storagetype#225 : storagetype, zt_2 : storagetype}: + `%|-%<:%`(C, `%%`_fieldtype{`mut?#389`, storagetype#213}(?(`MUT`_mut), zt_1), `%%`_fieldtype{`mut?#401`, storagetype#225}(?(`MUT`_mut), zt_2)) -- Storagetype_sub: `%|-%<:%`(C, zt_1, zt_2) -- Storagetype_sub: `%|-%<:%`(C, zt_2, zt_1) } @@ -3096,11 +114655,11 @@ relation Fieldtype_sub: `%|-%<:%`(context, fieldtype, fieldtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Instrtype_ok: `%|-%:OK`(context, instrtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule _{C : context, `t_1*` : valtype*, `x*` : idx*, `t_2*` : valtype*, `lct*` : localtype*}: - `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype(t_1*{t_1 <- `t_1*`})) - -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`})) - -- (if (C.LOCALS_context[x!`%`_idx.0] = lct))*{lct <- `lct*`, x <- `x*`} + rule _{C : context, resulttype#27 : resulttype, `localidx*#47` : localidx*, `X*#478` : valtype*, `t_1*` : valtype*, `x*` : idx*, `X*#530` : valtype*, `t_2*` : valtype*, `X*#543` : valtype*, `X*#556` : valtype*, `i#4081*` : nat*, `lct*` : localtype*, `localtype*#2*` : localtype**}: + `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#27, `localidx*#47`}(`%`_resulttype{`X*#478`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#530`}(t_2*{t_2 <- `t_2*`}))) + -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype{`X*#543`}(t_1*{t_1 <- `t_1*`})) + -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype{`X*#556`}(t_2*{t_2 <- `t_2*`})) + -- (if (C.`LOCALS`_context{`localtype*#2`}[x!`%`_idx{i#4081}.0] = lct))*{i#4081 <- `i#4081*`, lct <- `lct*`, `localtype*#2` <- `localtype*#2*`, x <- `x*`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Expand_use: `%~~_%%`(typeuse, context, comptype) @@ -3110,97 +114669,97 @@ relation Expand_use: `%~~_%%`(typeuse, context, comptype) -- Expand: `%~~%`(deftype, comptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule typeidx{typeidx : typeidx, C : context, comptype : comptype}: - `%~~_%%`(_IDX_typeuse(typeidx), C, comptype) - -- Expand: `%~~%`(C.TYPES_context[typeidx!`%`_typeidx.0], comptype) + rule typeidx{typeidx#220 : typeidx, typeidx : typeidx, C : context, comptype : comptype, `deftype*#11` : deftype*, i#4103 : nat}: + `%~~_%%`(`_IDX`_typeuse{typeidx#220}(typeidx), C, comptype) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#11`}[typeidx!`%`_typeidx{i#4103}.0], comptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Limits_ok: `%|-%:%`(context, limits, nat) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule _{C : context, n : n, `m?` : m?, k : nat}: - `%|-%:%`(C, `[%..%]`_limits(`%`_u64(n), `%`_u64(m)?{m <- `m?`}), k) + rule _{C : context, u64#48 : u64, `u64?#47` : u64?, i#4549 : nat, n : n, `i#4584?` : nat?, `m?` : m?, k : nat}: + `%|-%:%`(C, `[%..%]`_limits{u64#48, `u64?#47`}(`%`_u64{i#4549}(n), `%`_u64{i#4584}(m)?{i#4584 <- `i#4584?`, m <- `m?`}), k) -- if (n <= k) -- (if ((n <= m) /\ (m <= k)))?{m <- `m?`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Tagtype_ok: `%|-%:OK`(context, tagtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule _{C : context, typeuse : typeuse, `t_1*` : valtype*, `t_2*` : valtype*}: + rule _{C : context, typeuse : typeuse, resulttype#33 : resulttype, `X*#807` : valtype*, `t_1*` : valtype*, `X*#820` : valtype*, `t_2*` : valtype*}: `%|-%:OK`(C, typeuse) -- Typeuse_ok: `%|-%:OK`(C, typeuse) - -- Expand_use: `%~~_%%`(typeuse, C, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Expand_use: `%~~_%%`(typeuse, C, `FUNC%->%`_comptype{resulttype#33}(`%`_resulttype{`X*#807`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#820`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Globaltype_ok: `%|-%:OK`(context, globaltype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule _{C : context, t : valtype}: - `%|-%:OK`(C, `%%`_globaltype(MUT_mut?{}, t)) + rule _{C : context, `mut?#333` : mut?, valtype#247 : valtype, t : valtype}: + `%|-%:OK`(C, `%%`_globaltype{`mut?#333`, valtype#247}(`MUT`_mut?{}, t)) -- Valtype_ok: `%|-%:OK`(C, t) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Memtype_ok: `%|-%:OK`(context, memtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule _{C : context, addrtype : addrtype, limits : limits}: - `%|-%:OK`(C, `%%PAGE`_memtype(addrtype, limits)) + rule _{C : context, addrtype#297 : addrtype, limits#297 : limits, addrtype : addrtype, limits : limits}: + `%|-%:OK`(C, `%%PAGE`_memtype{addrtype#297, limits#297}(addrtype, limits)) -- Limits_ok: `%|-%:%`(C, limits, (2 ^ 16)) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Tabletype_ok: `%|-%:OK`(context, tabletype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule _{C : context, addrtype : addrtype, limits : limits, reftype : reftype}: - `%|-%:OK`(C, `%%%`_tabletype(addrtype, limits, reftype)) + rule _{C : context, addrtype#309 : addrtype, limits#309 : limits, reftype#311 : reftype, addrtype : addrtype, limits : limits, reftype : reftype}: + `%|-%:OK`(C, `%%%`_tabletype{addrtype#309, limits#309, reftype#311}(addrtype, limits, reftype)) -- Limits_ok: `%|-%:%`(C, limits, ((((2 ^ 32) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) -- Reftype_ok: `%|-%:OK`(C, reftype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Externtype_ok: `%|-%:OK`(context, externtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule tag{C : context, tagtype : tagtype}: - `%|-%:OK`(C, TAG_externtype(tagtype)) + rule tag{C : context, tagtype#89 : tagtype, tagtype : tagtype}: + `%|-%:OK`(C, `TAG`_externtype{tagtype#89}(tagtype)) -- Tagtype_ok: `%|-%:OK`(C, tagtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule global{C : context, globaltype : globaltype}: - `%|-%:OK`(C, GLOBAL_externtype(globaltype)) + rule global{C : context, globaltype#101 : globaltype, globaltype : globaltype}: + `%|-%:OK`(C, `GLOBAL`_externtype{globaltype#101}(globaltype)) -- Globaltype_ok: `%|-%:OK`(C, globaltype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule mem{C : context, memtype : memtype}: - `%|-%:OK`(C, MEM_externtype(memtype)) + rule mem{C : context, memtype#113 : memtype, memtype : memtype}: + `%|-%:OK`(C, `MEM`_externtype{memtype#113}(memtype)) -- Memtype_ok: `%|-%:OK`(C, memtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule table{C : context, tabletype : tabletype}: - `%|-%:OK`(C, TABLE_externtype(tabletype)) + rule table{C : context, tabletype#127 : tabletype, tabletype : tabletype}: + `%|-%:OK`(C, `TABLE`_externtype{tabletype#127}(tabletype)) -- Tabletype_ok: `%|-%:OK`(C, tabletype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule func{C : context, typeuse : typeuse, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:OK`(C, FUNC_externtype(typeuse)) + rule func{C : context, typeuse#17 : typeuse, typeuse : typeuse, resulttype#36 : resulttype, `X*#835` : valtype*, `t_1*` : valtype*, `X*#848` : valtype*, `t_2*` : valtype*}: + `%|-%:OK`(C, `FUNC`_externtype{typeuse#17}(typeuse)) -- Typeuse_ok: `%|-%:OK`(C, typeuse) - -- Expand_use: `%~~_%%`(typeuse, C, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Expand_use: `%~~_%%`(typeuse, C, `FUNC%->%`_comptype{resulttype#36}(`%`_resulttype{`X*#835`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#848`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec relation Instrtype_sub: `%|-%<:%`(context, instrtype, instrtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule _{C : context, `t_11*` : valtype*, `x_1*` : idx*, `t_12*` : valtype*, `t_21*` : valtype*, `x_2*` : idx*, `t_22*` : valtype*, `x*` : idx*, `t*` : valtype*}: - `%|-%<:%`(C, `%->_%%`_instrtype(`%`_resulttype(t_11*{t_11 <- `t_11*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_12*{t_12 <- `t_12*`})), `%->_%%`_instrtype(`%`_resulttype(t_21*{t_21 <- `t_21*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_22*{t_22 <- `t_22*`}))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_11*{t_11 <- `t_11*`})) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_12*{t_12 <- `t_12*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`})) + rule _{C : context, resulttype#59 : resulttype, `localidx*#59` : localidx*, `X*#930` : valtype*, `t_11*` : valtype*, `x_1*` : idx*, `X*#982` : valtype*, `t_12*` : valtype*, resulttype#79 : resulttype, `localidx*#71` : localidx*, `X*#995` : valtype*, `t_21*` : valtype*, `x_2*` : idx*, `X*#1047` : valtype*, `t_22*` : valtype*, `X*#1060` : valtype*, `X*#1073` : valtype*, `X*#1086` : valtype*, `X*#1099` : valtype*, `x*` : idx*, `i#4865*` : nat*, `init#65*` : init*, `localtype*#4*` : localtype**, `t*` : valtype*, `valtype#271*` : valtype*}: + `%|-%<:%`(C, `%->_%%`_instrtype{resulttype#59, `localidx*#59`}(`%`_resulttype{`X*#930`}(t_11*{t_11 <- `t_11*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#982`}(t_12*{t_12 <- `t_12*`})), `%->_%%`_instrtype{resulttype#79, `localidx*#71`}(`%`_resulttype{`X*#995`}(t_21*{t_21 <- `t_21*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#1047`}(t_22*{t_22 <- `t_22*`}))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#1060`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1073`}(t_11*{t_11 <- `t_11*`})) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#1086`}(t_12*{t_12 <- `t_12*`}), `%`_resulttype{`X*#1099`}(t_22*{t_22 <- `t_22*`})) -- if (x*{x <- `x*`} = $setminus_(syntax localidx, x_2*{x_2 <- `x_2*`}, x_1*{x_1 <- `x_1*`})) - -- (if (C.LOCALS_context[x!`%`_idx.0] = `%%`_localtype(SET_init, t)))*{t <- `t*`, x <- `x*`} + -- (if (C.`LOCALS`_context{`localtype*#4`}[x!`%`_idx{i#4865}.0] = `%%`_localtype{init#65, valtype#271}(`SET`_init, t)))*{i#4865 <- `i#4865*`, init#65 <- `init#65*`, `localtype*#4` <- `localtype*#4*`, t <- `t*`, valtype#271 <- `valtype#271*`, x <- `x*`} ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec relation Limits_sub: `%|-%<:%`(context, limits, limits) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule max{C : context, n_1 : n, m_1 : m, n_2 : n, `m_2?` : m?}: - `%|-%<:%`(C, `[%..%]`_limits(`%`_u64(n_1), ?(`%`_u64(m_1))), `[%..%]`_limits(`%`_u64(n_2), `%`_u64(m_2)?{m_2 <- `m_2?`})) + rule max{C : context, u64#84 : u64, `u64?#83` : u64?, i#4887 : nat, n_1 : n, i#4909 : nat, m_1 : m, u64#96 : u64, `u64?#95` : u64?, i#4931 : nat, n_2 : n, `i#4966?` : nat?, `m_2?` : m?}: + `%|-%<:%`(C, `[%..%]`_limits{u64#84, `u64?#83`}(`%`_u64{i#4887}(n_1), ?(`%`_u64{i#4909}(m_1))), `[%..%]`_limits{u64#96, `u64?#95`}(`%`_u64{i#4931}(n_2), `%`_u64{i#4966}(m_2)?{i#4966 <- `i#4966?`, m_2 <- `m_2?`})) -- if (n_1 >= n_2) -- (if (m_1 <= m_2))?{m_2 <- `m_2?`} ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule eps{C : context, n_1 : n, n_2 : n}: - `%|-%<:%`(C, `[%..%]`_limits(`%`_u64(n_1), ?()), `[%..%]`_limits(`%`_u64(n_2), ?())) + rule eps{C : context, u64#108 : u64, `u64?#107` : u64?, i#4988 : nat, n_1 : n, u64#120 : u64, `u64?#119` : u64?, i#5010 : nat, n_2 : n}: + `%|-%<:%`(C, `[%..%]`_limits{u64#108, `u64?#107`}(`%`_u64{i#4988}(n_1), ?()), `[%..%]`_limits{u64#120, `u64?#119`}(`%`_u64{i#5010}(n_2), ?())) -- if (n_1 >= n_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec @@ -3214,28 +114773,28 @@ relation Tagtype_sub: `%|-%<:%`(context, tagtype, tagtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec relation Globaltype_sub: `%|-%<:%`(context, globaltype, globaltype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule const{C : context, valtype_1 : valtype, valtype_2 : valtype}: - `%|-%<:%`(C, `%%`_globaltype(?(), valtype_1), `%%`_globaltype(?(), valtype_2)) + rule const{C : context, `mut?#501` : mut?, valtype#277 : valtype, valtype_1 : valtype, `mut?#507` : mut?, valtype#283 : valtype, valtype_2 : valtype}: + `%|-%<:%`(C, `%%`_globaltype{`mut?#501`, valtype#277}(?(), valtype_1), `%%`_globaltype{`mut?#507`, valtype#283}(?(), valtype_2)) -- Valtype_sub: `%|-%<:%`(C, valtype_1, valtype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule var{C : context, valtype_1 : valtype, valtype_2 : valtype}: - `%|-%<:%`(C, `%%`_globaltype(?(MUT_mut), valtype_1), `%%`_globaltype(?(MUT_mut), valtype_2)) + rule var{C : context, `mut?#519` : mut?, valtype#295 : valtype, valtype_1 : valtype, `mut?#531` : mut?, valtype#307 : valtype, valtype_2 : valtype}: + `%|-%<:%`(C, `%%`_globaltype{`mut?#519`, valtype#295}(?(`MUT`_mut), valtype_1), `%%`_globaltype{`mut?#531`, valtype#307}(?(`MUT`_mut), valtype_2)) -- Valtype_sub: `%|-%<:%`(C, valtype_1, valtype_2) -- Valtype_sub: `%|-%<:%`(C, valtype_2, valtype_1) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec relation Memtype_sub: `%|-%<:%`(context, memtype, memtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule _{C : context, addrtype : addrtype, limits_1 : limits, limits_2 : limits}: - `%|-%<:%`(C, `%%PAGE`_memtype(addrtype, limits_1), `%%PAGE`_memtype(addrtype, limits_2)) + rule _{C : context, addrtype#345 : addrtype, limits#345 : limits, addrtype : addrtype, limits_1 : limits, addrtype#357 : addrtype, limits#357 : limits, limits_2 : limits}: + `%|-%<:%`(C, `%%PAGE`_memtype{addrtype#345, limits#345}(addrtype, limits_1), `%%PAGE`_memtype{addrtype#357, limits#357}(addrtype, limits_2)) -- Limits_sub: `%|-%<:%`(C, limits_1, limits_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec relation Tabletype_sub: `%|-%<:%`(context, tabletype, tabletype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule _{C : context, addrtype : addrtype, limits_1 : limits, reftype_1 : reftype, limits_2 : limits, reftype_2 : reftype}: - `%|-%<:%`(C, `%%%`_tabletype(addrtype, limits_1, reftype_1), `%%%`_tabletype(addrtype, limits_2, reftype_2)) + rule _{C : context, addrtype#369 : addrtype, limits#369 : limits, reftype#335 : reftype, addrtype : addrtype, limits_1 : limits, reftype_1 : reftype, addrtype#381 : addrtype, limits#381 : limits, reftype#347 : reftype, limits_2 : limits, reftype_2 : reftype}: + `%|-%<:%`(C, `%%%`_tabletype{addrtype#369, limits#369, reftype#335}(addrtype, limits_1, reftype_1), `%%%`_tabletype{addrtype#381, limits#381, reftype#347}(addrtype, limits_2, reftype_2)) -- Limits_sub: `%|-%<:%`(C, limits_1, limits_2) -- Reftype_sub: `%|-%<:%`(C, reftype_1, reftype_2) -- Reftype_sub: `%|-%<:%`(C, reftype_2, reftype_1) @@ -3243,78 +114802,78 @@ relation Tabletype_sub: `%|-%<:%`(context, tabletype, tabletype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec relation Externtype_sub: `%|-%<:%`(context, externtype, externtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule tag{C : context, tagtype_1 : tagtype, tagtype_2 : tagtype}: - `%|-%<:%`(C, TAG_externtype(tagtype_1), TAG_externtype(tagtype_2)) + rule tag{C : context, tagtype#91 : tagtype, tagtype_1 : tagtype, tagtype#93 : tagtype, tagtype_2 : tagtype}: + `%|-%<:%`(C, `TAG`_externtype{tagtype#91}(tagtype_1), `TAG`_externtype{tagtype#93}(tagtype_2)) -- Tagtype_sub: `%|-%<:%`(C, tagtype_1, tagtype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule global{C : context, globaltype_1 : globaltype, globaltype_2 : globaltype}: - `%|-%<:%`(C, GLOBAL_externtype(globaltype_1), GLOBAL_externtype(globaltype_2)) + rule global{C : context, globaltype#103 : globaltype, globaltype_1 : globaltype, globaltype#105 : globaltype, globaltype_2 : globaltype}: + `%|-%<:%`(C, `GLOBAL`_externtype{globaltype#103}(globaltype_1), `GLOBAL`_externtype{globaltype#105}(globaltype_2)) -- Globaltype_sub: `%|-%<:%`(C, globaltype_1, globaltype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule mem{C : context, memtype_1 : memtype, memtype_2 : memtype}: - `%|-%<:%`(C, MEM_externtype(memtype_1), MEM_externtype(memtype_2)) + rule mem{C : context, memtype#115 : memtype, memtype_1 : memtype, memtype#117 : memtype, memtype_2 : memtype}: + `%|-%<:%`(C, `MEM`_externtype{memtype#115}(memtype_1), `MEM`_externtype{memtype#117}(memtype_2)) -- Memtype_sub: `%|-%<:%`(C, memtype_1, memtype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule table{C : context, tabletype_1 : tabletype, tabletype_2 : tabletype}: - `%|-%<:%`(C, TABLE_externtype(tabletype_1), TABLE_externtype(tabletype_2)) + rule table{C : context, tabletype#129 : tabletype, tabletype_1 : tabletype, tabletype#131 : tabletype, tabletype_2 : tabletype}: + `%|-%<:%`(C, `TABLE`_externtype{tabletype#129}(tabletype_1), `TABLE`_externtype{tabletype#131}(tabletype_2)) -- Tabletype_sub: `%|-%<:%`(C, tabletype_1, tabletype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule func{C : context, deftype_1 : deftype, deftype_2 : deftype}: - `%|-%<:%`(C, FUNC_externtype((deftype_1 : deftype <: typeuse)), FUNC_externtype((deftype_2 : deftype <: typeuse))) + rule func{C : context, typeuse#19 : typeuse, deftype_1 : deftype, typeuse#21 : typeuse, deftype_2 : deftype}: + `%|-%<:%`(C, `FUNC`_externtype{typeuse#19}((deftype_1 : deftype <: typeuse)), `FUNC`_externtype{typeuse#21}((deftype_2 : deftype <: typeuse))) -- Deftype_sub: `%|-%<:%`(C, deftype_1, deftype_2) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Blocktype_ok: `%|-%:%`(context, blocktype, instrtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule valtype{C : context, `valtype?` : valtype?}: - `%|-%:%`(C, _RESULT_blocktype(valtype?{valtype <- `valtype?`}), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(valtype?{valtype <- `valtype?`})))) + rule valtype{C : context, `valtype?#3` : valtype?, `valtype?` : valtype?, resulttype#225 : resulttype, `localidx*#155` : localidx*, `X*#1681` : valtype*, `X*#1730` : valtype*}: + `%|-%:%`(C, `_RESULT`_blocktype{`valtype?#3`}(valtype?{valtype <- `valtype?`}), `%->_%%`_instrtype{resulttype#225, `localidx*#155`}(`%`_resulttype{`X*#1681`}([]), [], `%`_resulttype{`X*#1730`}(lift(valtype?{valtype <- `valtype?`})))) -- (Valtype_ok: `%|-%:OK`(C, valtype))?{valtype <- `valtype?`} ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule typeidx{C : context, typeidx : typeidx, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, _IDX_blocktype(typeidx), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Expand: `%~~%`(C.TYPES_context[typeidx!`%`_typeidx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule typeidx{C : context, typeidx#392 : typeidx, typeidx : typeidx, resulttype#245 : resulttype, `localidx*#167` : localidx*, `X*#1741` : valtype*, `t_1*` : valtype*, `X*#1792` : valtype*, `t_2*` : valtype*, `deftype*#19` : deftype*, i#5032 : nat, resulttype#248 : resulttype, `X*#1805` : valtype*, `X*#1818` : valtype*}: + `%|-%:%`(C, `_IDX`_blocktype{typeidx#392}(typeidx), `%->_%%`_instrtype{resulttype#245, `localidx*#167`}(`%`_resulttype{`X*#1741`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1792`}(t_2*{t_2 <- `t_2*`}))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#19`}[typeidx!`%`_typeidx{i#5032}.0], `FUNC%->%`_comptype{resulttype#248}(`%`_resulttype{`X*#1805`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#1818`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Catch_ok: `%|-%:OK`(context, catch) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule catch{C : context, x : idx, l : labelidx, `t*` : valtype*}: - `%|-%:OK`(C, CATCH_catch(x, l)) - -- Expand: `%~~%`($as_deftype(C.TAGS_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`}), C.LABELS_context[l!`%`_labelidx.0]) + rule catch{C : context, tagidx#5 : tagidx, labelidx#29 : labelidx, x : idx, l : labelidx, `tagtype*#8` : tagtype*, i#5946 : nat, resulttype#1012 : resulttype, `X*#5029` : valtype*, `t*` : valtype*, `X*#5052` : valtype*, `X*#5063` : valtype*, `resulttype*#18` : resulttype*, i#5956 : nat}: + `%|-%:OK`(C, `CATCH`_catch{tagidx#5, labelidx#29}(x, l)) + -- Expand: `%~~%`($as_deftype(C.`TAGS`_context{`tagtype*#8`}[x!`%`_idx{i#5946}.0]), `FUNC%->%`_comptype{resulttype#1012}(`%`_resulttype{`X*#5029`}(t*{t <- `t*`}), `%`_resulttype{`X*#5052`}([]))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#5063`}(t*{t <- `t*`}), C.`LABELS`_context{`resulttype*#18`}[l!`%`_labelidx{i#5956}.0]) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule catch_ref{C : context, x : idx, l : labelidx, `t*` : valtype*}: - `%|-%:OK`(C, CATCH_REF_catch(x, l)) - -- Expand: `%~~%`($as_deftype(C.TAGS_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`} ++ [REF_valtype(?(), EXN_heaptype)]), C.LABELS_context[l!`%`_labelidx.0]) + rule catch_ref{C : context, tagidx#7 : tagidx, labelidx#31 : labelidx, x : idx, l : labelidx, `tagtype*#9` : tagtype*, i#5992 : nat, resulttype#1015 : resulttype, `X*#5088` : valtype*, `t*` : valtype*, `X*#5111` : valtype*, `X*#5132` : valtype*, `null?#717` : null?, heaptype#719 : heaptype, `resulttype*#19` : resulttype*, i#6002 : nat}: + `%|-%:OK`(C, `CATCH_REF`_catch{tagidx#7, labelidx#31}(x, l)) + -- Expand: `%~~%`($as_deftype(C.`TAGS`_context{`tagtype*#9`}[x!`%`_idx{i#5992}.0]), `FUNC%->%`_comptype{resulttype#1015}(`%`_resulttype{`X*#5088`}(t*{t <- `t*`}), `%`_resulttype{`X*#5111`}([]))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#5132`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)]), C.`LABELS`_context{`resulttype*#19`}[l!`%`_labelidx{i#6002}.0]) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule catch_all{C : context, l : labelidx}: - `%|-%:OK`(C, CATCH_ALL_catch(l)) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype([]), C.LABELS_context[l!`%`_labelidx.0]) + rule catch_all{C : context, labelidx#33 : labelidx, l : labelidx, `X*#5163` : valtype*, `resulttype*#20` : resulttype*, i#6024 : nat}: + `%|-%:OK`(C, `CATCH_ALL`_catch{labelidx#33}(l)) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#5163`}([]), C.`LABELS`_context{`resulttype*#20`}[l!`%`_labelidx{i#6024}.0]) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule catch_all_ref{C : context, l : labelidx}: - `%|-%:OK`(C, CATCH_ALL_REF_catch(l)) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype([REF_valtype(?(), EXN_heaptype)]), C.LABELS_context[l!`%`_labelidx.0]) + rule catch_all_ref{C : context, labelidx#35 : labelidx, l : labelidx, `X*#5194` : valtype*, `null?#719` : null?, heaptype#721 : heaptype, `resulttype*#21` : resulttype*, i#6046 : nat}: + `%|-%:OK`(C, `CATCH_ALL_REF`_catch{labelidx#35}(l)) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#5194`}([`REF`_valtype{`null?#719`, heaptype#721}(?(), `EXN`_heaptype)]), C.`LABELS`_context{`resulttype*#21`}[l!`%`_labelidx{i#6046}.0]) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec def $default_(valtype : valtype) : val? ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Inn : Inn}((Inn : Inn <: valtype)) = ?(CONST_val((Inn : Inn <: numtype), `%`_num_(0))) + def $default_{Inn : Inn, numtype#37 : numtype, i#31659 : nat}((Inn : Inn <: valtype)) = ?(`CONST`_val{numtype#37}((Inn : Inn <: numtype), `%`_num_{i#31659}(0))) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Fnn : Fnn}((Fnn : Fnn <: valtype)) = ?(CONST_val((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))) + def $default_{Fnn : Fnn, numtype#39 : numtype}((Fnn : Fnn <: valtype)) = ?(`CONST`_val{numtype#39}((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Vnn : Vnn}((Vnn : Vnn <: valtype)) = ?(VCONST_val(Vnn, `%`_vec_(0))) + def $default_{Vnn : Vnn, vectype#42 : vectype, i#31681 : nat}((Vnn : Vnn <: valtype)) = ?(`VCONST`_val{vectype#42}(Vnn, `%`_vec_{i#31681}(0))) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{ht : heaptype}(REF_valtype(?(NULL_null), ht)) = ?(REF.NULL_val(ht)) + def $default_{`null?#1037` : null?, heaptype#1043 : heaptype, ht : heaptype, heaptype#1045 : heaptype}(`REF`_valtype{`null?#1037`, heaptype#1043}(?(`NULL`_null), ht)) = ?(`REF.NULL`_val{heaptype#1045}(ht)) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{ht : heaptype}(REF_valtype(?(), ht)) = ?() + def $default_{`null?#1039` : null?, heaptype#1047 : heaptype, ht : heaptype}(`REF`_valtype{`null?#1039`, heaptype#1047}(?(), ht)) = ?() ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Defaultable: `|-%DEFAULTABLE`(valtype) @@ -3326,8 +114885,8 @@ relation Defaultable: `|-%DEFAULTABLE`(valtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Memarg_ok: `|-%:%->%`(memarg, addrtype, N) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule _{n : n, m : m, at : addrtype, N : N}: - `|-%:%->%`({ALIGN `%`_u32(n), OFFSET `%`_u64(m)}, at, N) + rule _{u32#14 : u32, i#7729 : nat, n : n, u64#230 : u64, i#7751 : nat, m : m, at : addrtype, N : N}: + `|-%:%->%`({`ALIGN`{u32#14} `%`_u32{i#7729}(n), `OFFSET`{u64#230} `%`_u64{i#7751}(m)}, at, N) -- if (((2 ^ n) : nat <:> rat) <= ((N : nat <:> rat) / (8 : nat <:> rat))) -- if (m < (2 ^ $size((at : addrtype <: numtype)))) @@ -3342,610 +114901,610 @@ rec { ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:5.1-5.95 relation Instr_ok: `%|-%:%`(context, instr, instrtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:18.1-19.24 - rule nop{C : context}: - `%|-%:%`(C, NOP_instr, `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))) + rule nop{C : context, resulttype#105 : resulttype, `localidx*#83` : localidx*, `X*#1268` : valtype*, `X*#1317` : valtype*}: + `%|-%:%`(C, `NOP`_instr, `%->_%%`_instrtype{resulttype#105, `localidx*#83`}(`%`_resulttype{`X*#1268`}([]), [], `%`_resulttype{`X*#1317`}([]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:21.1-23.42 - rule unreachable{C : context, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, UNREACHABLE_instr, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule unreachable{C : context, resulttype#125 : resulttype, `localidx*#95` : localidx*, `X*#1328` : valtype*, `t_1*` : valtype*, `X*#1379` : valtype*, `t_2*` : valtype*, resulttype#145 : resulttype, `localidx*#107` : localidx*, `X*#1390` : valtype*, `X*#1441` : valtype*}: + `%|-%:%`(C, `UNREACHABLE`_instr, `%->_%%`_instrtype{resulttype#125, `localidx*#95`}(`%`_resulttype{`X*#1328`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1379`}(t_2*{t_2 <- `t_2*`}))) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#145, `localidx*#107`}(`%`_resulttype{`X*#1390`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1441`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:25.1-27.29 - rule drop{C : context, t : valtype}: - `%|-%:%`(C, DROP_instr, `%->_%%`_instrtype(`%`_resulttype([t]), [], `%`_resulttype([]))) + rule drop{C : context, resulttype#165 : resulttype, `localidx*#119` : localidx*, `X*#1452` : valtype*, t : valtype, `X*#1520` : valtype*}: + `%|-%:%`(C, `DROP`_instr, `%->_%%`_instrtype{resulttype#165, `localidx*#119`}(`%`_resulttype{`X*#1452`}([t]), [], `%`_resulttype{`X*#1520`}([]))) -- Valtype_ok: `%|-%:OK`(C, t) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:29.1-31.29 - rule `select-expl`{C : context, t : valtype}: - `%|-%:%`(C, SELECT_instr(?([t])), `%->_%%`_instrtype(`%`_resulttype([t t I32_valtype]), [], `%`_resulttype([t]))) + rule `select-expl`{C : context, `valtype*?#3` : valtype*?, t : valtype, resulttype#185 : resulttype, `localidx*#131` : localidx*, `X*#1541` : valtype*, `X*#1590` : valtype*}: + `%|-%:%`(C, `SELECT`_instr{`valtype*?#3`}(?([t])), `%->_%%`_instrtype{resulttype#185, `localidx*#131`}(`%`_resulttype{`X*#1541`}([t t `I32`_valtype]), [], `%`_resulttype{`X*#1590`}([t]))) -- Valtype_ok: `%|-%:OK`(C, t) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:33.1-37.37 - rule `select-impl`{C : context, t : valtype, t' : valtype, numtype : numtype, vectype : vectype}: - `%|-%:%`(C, SELECT_instr(?()), `%->_%%`_instrtype(`%`_resulttype([t t I32_valtype]), [], `%`_resulttype([t]))) + rule `select-impl`{C : context, `valtype*?#5` : valtype*?, resulttype#205 : resulttype, `localidx*#143` : localidx*, `X*#1611` : valtype*, t : valtype, `X*#1660` : valtype*, t' : valtype, numtype : numtype, vectype : vectype}: + `%|-%:%`(C, `SELECT`_instr{`valtype*?#5`}(?()), `%->_%%`_instrtype{resulttype#205, `localidx*#143`}(`%`_resulttype{`X*#1611`}([t t `I32`_valtype]), [], `%`_resulttype{`X*#1660`}([t]))) -- Valtype_ok: `%|-%:OK`(C, t) -- Valtype_sub: `%|-%<:%`(C, t, t') -- if ((t' = (numtype : numtype <: valtype)) \/ (t' = (vectype : vectype <: valtype))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:53.1-56.67 - rule block{C : context, bt : blocktype, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, `x*` : idx*}: - `%|-%:%`(C, BLOCK_instr(bt, instr*{instr <- `instr*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [`%`_resulttype(t_2*{t_2 <- `t_2*`})], RETURN ?(), REFS []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule block{C : context, blocktype#7 : blocktype, `instr*#8` : instr*, bt : blocktype, `instr*` : instr*, resulttype#268 : resulttype, `localidx*#179` : localidx*, `X*#1831` : valtype*, `t_1*` : valtype*, `X*#1882` : valtype*, `t_2*` : valtype*, resulttype#288 : resulttype, `localidx*#191` : localidx*, `X*#1893` : valtype*, `X*#1944` : valtype*, `deftype*#20` : deftype*, `subtype*#5` : subtype*, `tagtype*#2` : tagtype*, `globaltype*#2` : globaltype*, `memtype*#2` : memtype*, `tabletype*#2` : tabletype*, `deftype*#21` : deftype*, `datatype*#2` : datatype*, `elemtype*#2` : elemtype*, `localtype*#5` : localtype*, `resulttype*#2` : resulttype*, `X*#1955` : valtype*, `resulttype?#2` : resulttype?, `funcidx*#40` : funcidx*, resulttype#308 : resulttype, `localidx*#203` : localidx*, `X*#1968` : valtype*, `x*` : idx*, `X*#2020` : valtype*}: + `%|-%:%`(C, `BLOCK`_instr{blocktype#7, `instr*#8`}(bt, instr*{instr <- `instr*`}), `%->_%%`_instrtype{resulttype#268, `localidx*#179`}(`%`_resulttype{`X*#1831`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1882`}(t_2*{t_2 <- `t_2*`}))) + -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype{resulttype#288, `localidx*#191`}(`%`_resulttype{`X*#1893`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1944`}(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({`TYPES`{`deftype*#20`} [], `RECS`{`subtype*#5`} [], `TAGS`{`tagtype*#2`} [], `GLOBALS`{`globaltype*#2`} [], `MEMS`{`memtype*#2`} [], `TABLES`{`tabletype*#2`} [], `FUNCS`{`deftype*#21`} [], `DATAS`{`datatype*#2`} [], `ELEMS`{`elemtype*#2`} [], `LOCALS`{`localtype*#5`} [], `LABELS`{`resulttype*#2`} [`%`_resulttype{`X*#1955`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#2`} ?(), `REFS`{`funcidx*#40`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#308, `localidx*#203`}(`%`_resulttype{`X*#1968`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2020`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:58.1-61.67 - rule loop{C : context, bt : blocktype, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, `x*` : idx*}: - `%|-%:%`(C, LOOP_instr(bt, instr*{instr <- `instr*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [`%`_resulttype(t_1*{t_1 <- `t_1*`})], RETURN ?(), REFS []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule loop{C : context, blocktype#9 : blocktype, `instr*#10` : instr*, bt : blocktype, `instr*` : instr*, resulttype#328 : resulttype, `localidx*#215` : localidx*, `X*#2033` : valtype*, `t_1*` : valtype*, `X*#2084` : valtype*, `t_2*` : valtype*, resulttype#348 : resulttype, `localidx*#227` : localidx*, `X*#2095` : valtype*, `X*#2146` : valtype*, `deftype*#22` : deftype*, `subtype*#6` : subtype*, `tagtype*#3` : tagtype*, `globaltype*#3` : globaltype*, `memtype*#3` : memtype*, `tabletype*#3` : tabletype*, `deftype*#23` : deftype*, `datatype*#3` : datatype*, `elemtype*#3` : elemtype*, `localtype*#6` : localtype*, `resulttype*#3` : resulttype*, `X*#2157` : valtype*, `resulttype?#3` : resulttype?, `funcidx*#41` : funcidx*, resulttype#368 : resulttype, `localidx*#239` : localidx*, `X*#2170` : valtype*, `x*` : idx*, `X*#2222` : valtype*}: + `%|-%:%`(C, `LOOP`_instr{blocktype#9, `instr*#10`}(bt, instr*{instr <- `instr*`}), `%->_%%`_instrtype{resulttype#328, `localidx*#215`}(`%`_resulttype{`X*#2033`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2084`}(t_2*{t_2 <- `t_2*`}))) + -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype{resulttype#348, `localidx*#227`}(`%`_resulttype{`X*#2095`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2146`}(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({`TYPES`{`deftype*#22`} [], `RECS`{`subtype*#6`} [], `TAGS`{`tagtype*#3`} [], `GLOBALS`{`globaltype*#3`} [], `MEMS`{`memtype*#3`} [], `TABLES`{`tabletype*#3`} [], `FUNCS`{`deftype*#23`} [], `DATAS`{`datatype*#3`} [], `ELEMS`{`elemtype*#3`} [], `LOCALS`{`localtype*#6`} [], `LABELS`{`resulttype*#3`} [`%`_resulttype{`X*#2157`}(t_1*{t_1 <- `t_1*`})], `RETURN`{`resulttype?#3`} ?(), `REFS`{`funcidx*#41`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#368, `localidx*#239`}(`%`_resulttype{`X*#2170`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2222`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:63.1-67.71 - rule if{C : context, bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, `x_1*` : idx*, `x_2*` : idx*}: - `%|-%:%`(C, `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [I32_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [`%`_resulttype(t_2*{t_2 <- `t_2*`})], RETURN ?(), REFS []} +++ C, instr_1*{instr_1 <- `instr_1*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [`%`_resulttype(t_2*{t_2 <- `t_2*`})], RETURN ?(), REFS []} +++ C, instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule if{C : context, blocktype#11 : blocktype, `instr*#12` : instr*, bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*, resulttype#388 : resulttype, `localidx*#251` : localidx*, `X*#2245` : valtype*, `t_1*` : valtype*, `X*#2294` : valtype*, `t_2*` : valtype*, resulttype#408 : resulttype, `localidx*#263` : localidx*, `X*#2305` : valtype*, `X*#2356` : valtype*, `deftype*#24` : deftype*, `subtype*#7` : subtype*, `tagtype*#4` : tagtype*, `globaltype*#4` : globaltype*, `memtype*#4` : memtype*, `tabletype*#4` : tabletype*, `deftype*#25` : deftype*, `datatype*#4` : datatype*, `elemtype*#4` : elemtype*, `localtype*#7` : localtype*, `resulttype*#4` : resulttype*, `X*#2367` : valtype*, `resulttype?#4` : resulttype?, `funcidx*#42` : funcidx*, resulttype#428 : resulttype, `localidx*#275` : localidx*, `X*#2380` : valtype*, `x_1*` : idx*, `X*#2432` : valtype*, `deftype*#26` : deftype*, `subtype*#8` : subtype*, `tagtype*#5` : tagtype*, `globaltype*#5` : globaltype*, `memtype*#5` : memtype*, `tabletype*#5` : tabletype*, `deftype*#27` : deftype*, `datatype*#5` : datatype*, `elemtype*#5` : elemtype*, `localtype*#8` : localtype*, `resulttype*#5` : resulttype*, `X*#2445` : valtype*, `resulttype?#5` : resulttype?, `funcidx*#43` : funcidx*, resulttype#448 : resulttype, `localidx*#287` : localidx*, `X*#2458` : valtype*, `x_2*` : idx*, `X*#2510` : valtype*}: + `%|-%:%`(C, `IF%%ELSE%`_instr{blocktype#11, `instr*#12`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`}), `%->_%%`_instrtype{resulttype#388, `localidx*#251`}(`%`_resulttype{`X*#2245`}(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2294`}(t_2*{t_2 <- `t_2*`}))) + -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype{resulttype#408, `localidx*#263`}(`%`_resulttype{`X*#2305`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2356`}(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({`TYPES`{`deftype*#24`} [], `RECS`{`subtype*#7`} [], `TAGS`{`tagtype*#4`} [], `GLOBALS`{`globaltype*#4`} [], `MEMS`{`memtype*#4`} [], `TABLES`{`tabletype*#4`} [], `FUNCS`{`deftype*#25`} [], `DATAS`{`datatype*#4`} [], `ELEMS`{`elemtype*#4`} [], `LOCALS`{`localtype*#7`} [], `LABELS`{`resulttype*#4`} [`%`_resulttype{`X*#2367`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#4`} ?(), `REFS`{`funcidx*#42`} []} +++ C, instr_1*{instr_1 <- `instr_1*`}, `%->_%%`_instrtype{resulttype#428, `localidx*#275`}(`%`_resulttype{`X*#2380`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#2432`}(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({`TYPES`{`deftype*#26`} [], `RECS`{`subtype*#8`} [], `TAGS`{`tagtype*#5`} [], `GLOBALS`{`globaltype*#5`} [], `MEMS`{`memtype*#5`} [], `TABLES`{`tabletype*#5`} [], `FUNCS`{`deftype*#27`} [], `DATAS`{`datatype*#5`} [], `ELEMS`{`elemtype*#5`} [], `LOCALS`{`localtype*#8`} [], `LABELS`{`resulttype*#5`} [`%`_resulttype{`X*#2445`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#5`} ?(), `REFS`{`funcidx*#43`} []} +++ C, instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype{resulttype#448, `localidx*#287`}(`%`_resulttype{`X*#2458`}(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#2510`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:72.1-75.42 - rule br{C : context, l : labelidx, `t_1*` : valtype*, `t*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, BR_instr(l), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- if (C.LABELS_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`}) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule br{C : context, labelidx#15 : labelidx, l : labelidx, resulttype#468 : resulttype, `localidx*#299` : localidx*, `X*#2533` : valtype*, `t_1*` : valtype*, `t*` : valtype*, `X*#2582` : valtype*, `t_2*` : valtype*, `resulttype*#7` : resulttype*, i#5368 : nat, `X*#2627` : valtype*, resulttype#488 : resulttype, `localidx*#311` : localidx*, `X*#2637` : valtype*, `X*#2688` : valtype*}: + `%|-%:%`(C, `BR`_instr{labelidx#15}(l), `%->_%%`_instrtype{resulttype#468, `localidx*#299`}(`%`_resulttype{`X*#2533`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#2582`}(t_2*{t_2 <- `t_2*`}))) + -- if (C.`LABELS`_context{`resulttype*#7`}[l!`%`_labelidx{i#5368}.0]!`%`_resulttype{`X*#2627`}.0 = t*{t <- `t*`}) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#488, `localidx*#311`}(`%`_resulttype{`X*#2637`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2688`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:77.1-79.25 - rule br_if{C : context, l : labelidx, `t*` : valtype*}: - `%|-%:%`(C, BR_IF_instr(l), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [I32_valtype]), [], `%`_resulttype(t*{t <- `t*`}))) - -- if (C.LABELS_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`}) + rule br_if{C : context, labelidx#17 : labelidx, l : labelidx, resulttype#508 : resulttype, `localidx*#323` : localidx*, `X*#2709` : valtype*, `t*` : valtype*, `X*#2758` : valtype*, `resulttype*#9` : resulttype*, i#5400 : nat, `X*#2803` : valtype*}: + `%|-%:%`(C, `BR_IF`_instr{labelidx#17}(l), `%->_%%`_instrtype{resulttype#508, `localidx*#323`}(`%`_resulttype{`X*#2709`}(t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2758`}(t*{t <- `t*`}))) + -- if (C.`LABELS`_context{`resulttype*#9`}[l!`%`_labelidx{i#5400}.0]!`%`_resulttype{`X*#2803`}.0 = t*{t <- `t*`}) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:81.1-85.49 - rule br_table{C : context, `l*` : labelidx*, l' : labelidx, `t_1*` : valtype*, `t*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, BR_TABLE_instr(l*{l <- `l*`}, l'), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [I32_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- (Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`}), C.LABELS_context[l!`%`_labelidx.0]))*{l <- `l*`} - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`}), C.LABELS_context[l'!`%`_labelidx.0]) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [I32_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule br_table{C : context, `labelidx*#48` : labelidx*, labelidx#19 : labelidx, `l*` : labelidx*, l' : labelidx, resulttype#528 : resulttype, `localidx*#335` : localidx*, `X*#2823` : valtype*, `t_1*` : valtype*, `t*` : valtype*, `X*#2872` : valtype*, `t_2*` : valtype*, `X*#2883*` : valtype**, `i#5482*` : nat*, `resulttype*#10*` : resulttype**, `X*#2906` : valtype*, `resulttype*#11` : resulttype*, i#5492 : nat, resulttype#548 : resulttype, `localidx*#347` : localidx*, `X*#2939` : valtype*, `X*#2988` : valtype*}: + `%|-%:%`(C, `BR_TABLE`_instr{`labelidx*#48`, labelidx#19}(l*{l <- `l*`}, l'), `%->_%%`_instrtype{resulttype#528, `localidx*#335`}(`%`_resulttype{`X*#2823`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2872`}(t_2*{t_2 <- `t_2*`}))) + -- (Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#2883`}(t*{t <- `t*`}), C.`LABELS`_context{`resulttype*#10`}[l!`%`_labelidx{i#5482}.0]))*{`X*#2883` <- `X*#2883*`, i#5482 <- `i#5482*`, l <- `l*`, `resulttype*#10` <- `resulttype*#10*`} + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#2906`}(t*{t <- `t*`}), C.`LABELS`_context{`resulttype*#11`}[l'!`%`_labelidx{i#5492}.0]) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#548, `localidx*#347`}(`%`_resulttype{`X*#2939`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2988`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:87.1-90.31 - rule br_on_null{C : context, l : labelidx, `t*` : valtype*, ht : heaptype}: - `%|-%:%`(C, BR_ON_NULL_instr(l), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [REF_valtype(?(NULL_null), ht)]), [], `%`_resulttype(t*{t <- `t*`} ++ [REF_valtype(?(), ht)]))) - -- if (C.LABELS_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`}) + rule br_on_null{C : context, labelidx#21 : labelidx, l : labelidx, resulttype#568 : resulttype, `localidx*#359` : localidx*, `X*#3009` : valtype*, `t*` : valtype*, `null?#535` : null?, heaptype#537 : heaptype, ht : heaptype, `X*#3058` : valtype*, `null?#537` : null?, heaptype#539 : heaptype, `resulttype*#13` : resulttype*, i#5524 : nat, `X*#3103` : valtype*}: + `%|-%:%`(C, `BR_ON_NULL`_instr{labelidx#21}(l), `%->_%%`_instrtype{resulttype#568, `localidx*#359`}(`%`_resulttype{`X*#3009`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#3058`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)]))) + -- if (C.`LABELS`_context{`resulttype*#13`}[l!`%`_labelidx{i#5524}.0]!`%`_resulttype{`X*#3103`}.0 = t*{t <- `t*`}) -- Heaptype_ok: `%|-%:OK`(C, ht) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:92.1-94.40 - rule br_on_non_null{C : context, l : labelidx, `t*` : valtype*, ht : heaptype}: - `%|-%:%`(C, BR_ON_NON_NULL_instr(l), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [REF_valtype(?(NULL_null), ht)]), [], `%`_resulttype(t*{t <- `t*`}))) - -- if (C.LABELS_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [REF_valtype(NULL_null?{}, ht)])) + rule br_on_non_null{C : context, labelidx#23 : labelidx, l : labelidx, resulttype#588 : resulttype, `localidx*#371` : localidx*, `X*#3123` : valtype*, `t*` : valtype*, `null?#539` : null?, heaptype#541 : heaptype, ht : heaptype, `X*#3172` : valtype*, `resulttype*#14` : resulttype*, i#5546 : nat, `X*#3193` : valtype*, `null?#541` : null?, heaptype#543 : heaptype}: + `%|-%:%`(C, `BR_ON_NON_NULL`_instr{labelidx#23}(l), `%->_%%`_instrtype{resulttype#588, `localidx*#371`}(`%`_resulttype{`X*#3123`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#3172`}(t*{t <- `t*`}))) + -- if (C.`LABELS`_context{`resulttype*#14`}[l!`%`_labelidx{i#5546}.0] = `%`_resulttype{`X*#3193`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)])) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:96.1-102.34 - rule br_on_cast{C : context, l : labelidx, rt_1 : reftype, rt_2 : reftype, `t*` : valtype*, rt : reftype}: - `%|-%:%`(C, BR_ON_CAST_instr(l, rt_1, rt_2), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))) - -- if (C.LABELS_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])) + rule br_on_cast{C : context, labelidx#25 : labelidx, reftype#373 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype, resulttype#608 : resulttype, `localidx*#383` : localidx*, `X*#3214` : valtype*, `t*` : valtype*, `X*#3263` : valtype*, `resulttype*#15` : resulttype*, i#5568 : nat, `X*#3284` : valtype*, rt : reftype}: + `%|-%:%`(C, `BR_ON_CAST`_instr{labelidx#25, reftype#373}(l, rt_1, rt_2), `%->_%%`_instrtype{resulttype#608, `localidx*#383`}(`%`_resulttype{`X*#3214`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype{`X*#3263`}(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))) + -- if (C.`LABELS`_context{`resulttype*#15`}[l!`%`_labelidx{i#5568}.0] = `%`_resulttype{`X*#3284`}(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])) -- Reftype_ok: `%|-%:OK`(C, rt_1) -- Reftype_ok: `%|-%:OK`(C, rt_2) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt_1) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:104.1-110.49 - rule br_on_cast_fail{C : context, l : labelidx, rt_1 : reftype, rt_2 : reftype, `t*` : valtype*, rt : reftype}: - `%|-%:%`(C, BR_ON_CAST_FAIL_instr(l, rt_1, rt_2), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))) - -- if (C.LABELS_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])) + rule br_on_cast_fail{C : context, labelidx#27 : labelidx, reftype#376 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype, resulttype#628 : resulttype, `localidx*#395` : localidx*, `X*#3305` : valtype*, `t*` : valtype*, `X*#3354` : valtype*, `resulttype*#16` : resulttype*, i#5590 : nat, `X*#3375` : valtype*, rt : reftype}: + `%|-%:%`(C, `BR_ON_CAST_FAIL`_instr{labelidx#27, reftype#376}(l, rt_1, rt_2), `%->_%%`_instrtype{resulttype#628, `localidx*#395`}(`%`_resulttype{`X*#3305`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype{`X*#3354`}(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))) + -- if (C.`LABELS`_context{`resulttype*#16`}[l!`%`_labelidx{i#5590}.0] = `%`_resulttype{`X*#3375`}(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])) -- Reftype_ok: `%|-%:OK`(C, rt_1) -- Reftype_ok: `%|-%:OK`(C, rt_2) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt_1) -- Reftype_sub: `%|-%<:%`(C, $diffrt(rt_1, rt_2), rt) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:115.1-117.45 - rule call{C : context, x : idx, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, CALL_instr(x), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Expand: `%~~%`(C.FUNCS_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule call{C : context, funcidx#177 : funcidx, x : idx, resulttype#648 : resulttype, `localidx*#407` : localidx*, `X*#3386` : valtype*, `t_1*` : valtype*, `X*#3437` : valtype*, `t_2*` : valtype*, `deftype*#28` : deftype*, i#5614 : nat, resulttype#651 : resulttype, `X*#3450` : valtype*, `X*#3463` : valtype*}: + `%|-%:%`(C, `CALL`_instr{funcidx#177}(x), `%->_%%`_instrtype{resulttype#648, `localidx*#407`}(`%`_resulttype{`X*#3386`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3437`}(t_2*{t_2 <- `t_2*`}))) + -- Expand: `%~~%`(C.`FUNCS`_context{`deftype*#28`}[x!`%`_idx{i#5614}.0], `FUNC%->%`_comptype{resulttype#651}(`%`_resulttype{`X*#3450`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3463`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:119.1-121.45 - rule call_ref{C : context, x : idx, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, CALL_REF_instr(_IDX_typeuse(x)), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [REF_valtype(?(NULL_null), _IDX_heaptype(x))]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule call_ref{C : context, typeuse#23 : typeuse, typeidx#394 : typeidx, x : idx, resulttype#671 : resulttype, `localidx*#419` : localidx*, `X*#3486` : valtype*, `t_1*` : valtype*, `null?#663` : null?, heaptype#665 : heaptype, typeidx#396 : typeidx, `X*#3535` : valtype*, `t_2*` : valtype*, `deftype*#29` : deftype*, i#5652 : nat, resulttype#674 : resulttype, `X*#3548` : valtype*, `X*#3561` : valtype*}: + `%|-%:%`(C, `CALL_REF`_instr{typeuse#23}(`_IDX`_typeuse{typeidx#394}(x)), `%->_%%`_instrtype{resulttype#671, `localidx*#419`}(`%`_resulttype{`X*#3486`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))]), [], `%`_resulttype{`X*#3535`}(t_2*{t_2 <- `t_2*`}))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#29`}[x!`%`_idx{i#5652}.0], `FUNC%->%`_comptype{resulttype#674}(`%`_resulttype{`X*#3548`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3561`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:123.1-127.45 - rule call_indirect{C : context, x : idx, y : idx, `t_1*` : valtype*, at : addrtype, `t_2*` : valtype*, lim : limits, rt : reftype}: - `%|-%:%`(C, CALL_INDIRECT_instr(x, _IDX_typeuse(y)), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) - -- Reftype_sub: `%|-%<:%`(C, rt, REF_reftype(?(NULL_null), FUNC_heaptype)) - -- Expand: `%~~%`(C.TYPES_context[y!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule call_indirect{C : context, tableidx#26 : tableidx, typeuse#25 : typeuse, x : idx, typeidx#398 : typeidx, y : idx, resulttype#694 : resulttype, `localidx*#431` : localidx*, `X*#3584` : valtype*, `t_1*` : valtype*, at : addrtype, `X*#3633` : valtype*, `t_2*` : valtype*, `tabletype*#6` : tabletype*, i#5690 : nat, addrtype#441 : addrtype, limits#441 : limits, reftype#389 : reftype, lim : limits, rt : reftype, `null?#687` : null?, heaptype#689 : heaptype, `deftype*#30` : deftype*, i#5700 : nat, resulttype#697 : resulttype, `X*#3646` : valtype*, `X*#3659` : valtype*}: + `%|-%:%`(C, `CALL_INDIRECT`_instr{tableidx#26, typeuse#25}(x, `_IDX`_typeuse{typeidx#398}(y)), `%->_%%`_instrtype{resulttype#694, `localidx*#431`}(`%`_resulttype{`X*#3584`}(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#3633`}(t_2*{t_2 <- `t_2*`}))) + -- if (C.`TABLES`_context{`tabletype*#6`}[x!`%`_idx{i#5690}.0] = `%%%`_tabletype{addrtype#441, limits#441, reftype#389}(at, lim, rt)) + -- Reftype_sub: `%|-%<:%`(C, rt, `REF`_reftype{`null?#687`, heaptype#689}(?(`NULL`_null), `FUNC`_heaptype)) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#30`}[y!`%`_idx{i#5700}.0], `FUNC%->%`_comptype{resulttype#697}(`%`_resulttype{`X*#3646`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3659`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:129.1-132.42 - rule return{C : context, `t_1*` : valtype*, `t*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, RETURN_instr, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- if (C.RETURN_context = ?(`%`_resulttype(t*{t <- `t*`}))) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule return{C : context, resulttype#717 : resulttype, `localidx*#443` : localidx*, `X*#3682` : valtype*, `t_1*` : valtype*, `t*` : valtype*, `X*#3731` : valtype*, `t_2*` : valtype*, `resulttype?#8` : resulttype?, `X*#3766` : valtype*, resulttype#737 : resulttype, `localidx*#455` : localidx*, `X*#3779` : valtype*, `X*#3830` : valtype*}: + `%|-%:%`(C, `RETURN`_instr, `%->_%%`_instrtype{resulttype#717, `localidx*#443`}(`%`_resulttype{`X*#3682`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#3731`}(t_2*{t_2 <- `t_2*`}))) + -- if (C.`RETURN`_context{`resulttype?#8`} = ?(`%`_resulttype{`X*#3766`}(t*{t <- `t*`}))) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#737, `localidx*#455`}(`%`_resulttype{`X*#3779`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3830`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:135.1-140.42 - rule return_call{C : context, x : idx, `t_3*` : valtype*, `t_1*` : valtype*, `t_4*` : valtype*, `t_2*` : valtype*, `t'_2*` : valtype*}: - `%|-%:%`(C, RETURN_CALL_instr(x), `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) - -- Expand: `%~~%`(C.FUNCS_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- if (C.RETURN_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) + rule return_call{C : context, funcidx#179 : funcidx, x : idx, resulttype#757 : resulttype, `localidx*#467` : localidx*, `X*#3851` : valtype*, `t_3*` : valtype*, `t_1*` : valtype*, `X*#3900` : valtype*, `t_4*` : valtype*, `deftype*#31` : deftype*, i#5724 : nat, resulttype#760 : resulttype, `X*#3913` : valtype*, `X*#3926` : valtype*, `t_2*` : valtype*, `resulttype?#11` : resulttype?, `X*#3963` : valtype*, `t'_2*` : valtype*, `X*#3976` : valtype*, `X*#3989` : valtype*, resulttype#780 : resulttype, `localidx*#479` : localidx*, `X*#4002` : valtype*, `X*#4053` : valtype*}: + `%|-%:%`(C, `RETURN_CALL`_instr{funcidx#179}(x), `%->_%%`_instrtype{resulttype#757, `localidx*#467`}(`%`_resulttype{`X*#3851`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3900`}(t_4*{t_4 <- `t_4*`}))) + -- Expand: `%~~%`(C.`FUNCS`_context{`deftype*#31`}[x!`%`_idx{i#5724}.0], `FUNC%->%`_comptype{resulttype#760}(`%`_resulttype{`X*#3913`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3926`}(t_2*{t_2 <- `t_2*`}))) + -- if (C.`RETURN`_context{`resulttype?#11`} = ?(`%`_resulttype{`X*#3963`}(t'_2*{t'_2 <- `t'_2*`}))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#3976`}(t_2*{t_2 <- `t_2*`}), `%`_resulttype{`X*#3989`}(t'_2*{t'_2 <- `t'_2*`})) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#780, `localidx*#479`}(`%`_resulttype{`X*#4002`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4053`}(t_4*{t_4 <- `t_4*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:143.1-148.42 - rule return_call_ref{C : context, x : idx, `t_3*` : valtype*, `t_1*` : valtype*, `t_4*` : valtype*, `t_2*` : valtype*, `t'_2*` : valtype*}: - `%|-%:%`(C, RETURN_CALL_REF_instr(_IDX_typeuse(x)), `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [REF_valtype(?(NULL_null), _IDX_heaptype(x))]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- if (C.RETURN_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) + rule return_call_ref{C : context, typeuse#27 : typeuse, typeidx#400 : typeidx, x : idx, resulttype#800 : resulttype, `localidx*#491` : localidx*, `X*#4074` : valtype*, `t_3*` : valtype*, `t_1*` : valtype*, `null?#689` : null?, heaptype#691 : heaptype, typeidx#402 : typeidx, `X*#4123` : valtype*, `t_4*` : valtype*, `deftype*#32` : deftype*, i#5762 : nat, resulttype#803 : resulttype, `X*#4136` : valtype*, `X*#4149` : valtype*, `t_2*` : valtype*, `resulttype?#14` : resulttype?, `X*#4186` : valtype*, `t'_2*` : valtype*, `X*#4199` : valtype*, `X*#4212` : valtype*, resulttype#823 : resulttype, `localidx*#503` : localidx*, `X*#4225` : valtype*, `X*#4276` : valtype*}: + `%|-%:%`(C, `RETURN_CALL_REF`_instr{typeuse#27}(`_IDX`_typeuse{typeidx#400}(x)), `%->_%%`_instrtype{resulttype#800, `localidx*#491`}(`%`_resulttype{`X*#4074`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))]), [], `%`_resulttype{`X*#4123`}(t_4*{t_4 <- `t_4*`}))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#32`}[x!`%`_idx{i#5762}.0], `FUNC%->%`_comptype{resulttype#803}(`%`_resulttype{`X*#4136`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4149`}(t_2*{t_2 <- `t_2*`}))) + -- if (C.`RETURN`_context{`resulttype?#14`} = ?(`%`_resulttype{`X*#4186`}(t'_2*{t'_2 <- `t'_2*`}))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#4199`}(t_2*{t_2 <- `t_2*`}), `%`_resulttype{`X*#4212`}(t'_2*{t'_2 <- `t'_2*`})) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#823, `localidx*#503`}(`%`_resulttype{`X*#4225`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4276`}(t_4*{t_4 <- `t_4*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:151.1-159.42 - rule return_call_indirect{C : context, x : idx, y : idx, `t_3*` : valtype*, `t_1*` : valtype*, at : addrtype, `t_4*` : valtype*, lim : limits, rt : reftype, `t_2*` : valtype*, `t'_2*` : valtype*}: - `%|-%:%`(C, RETURN_CALL_INDIRECT_instr(x, _IDX_typeuse(y)), `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) - -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) - -- Reftype_sub: `%|-%<:%`(C, rt, REF_reftype(?(NULL_null), FUNC_heaptype)) - -- Expand: `%~~%`(C.TYPES_context[y!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- if (C.RETURN_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) + rule return_call_indirect{C : context, tableidx#28 : tableidx, typeuse#29 : typeuse, x : idx, typeidx#404 : typeidx, y : idx, resulttype#843 : resulttype, `localidx*#515` : localidx*, `X*#4297` : valtype*, `t_3*` : valtype*, `t_1*` : valtype*, at : addrtype, `X*#4346` : valtype*, `t_4*` : valtype*, `tabletype*#7` : tabletype*, i#5800 : nat, addrtype#453 : addrtype, limits#453 : limits, reftype#401 : reftype, lim : limits, rt : reftype, `null?#713` : null?, heaptype#715 : heaptype, `deftype*#33` : deftype*, i#5810 : nat, resulttype#846 : resulttype, `X*#4359` : valtype*, `X*#4372` : valtype*, `t_2*` : valtype*, `resulttype?#17` : resulttype?, `X*#4409` : valtype*, `t'_2*` : valtype*, `X*#4422` : valtype*, `X*#4435` : valtype*, resulttype#866 : resulttype, `localidx*#527` : localidx*, `X*#4448` : valtype*, `X*#4499` : valtype*}: + `%|-%:%`(C, `RETURN_CALL_INDIRECT`_instr{tableidx#28, typeuse#29}(x, `_IDX`_typeuse{typeidx#404}(y)), `%->_%%`_instrtype{resulttype#843, `localidx*#515`}(`%`_resulttype{`X*#4297`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#4346`}(t_4*{t_4 <- `t_4*`}))) + -- if (C.`TABLES`_context{`tabletype*#7`}[x!`%`_idx{i#5800}.0] = `%%%`_tabletype{addrtype#453, limits#453, reftype#401}(at, lim, rt)) + -- Reftype_sub: `%|-%<:%`(C, rt, `REF`_reftype{`null?#713`, heaptype#715}(?(`NULL`_null), `FUNC`_heaptype)) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#33`}[y!`%`_idx{i#5810}.0], `FUNC%->%`_comptype{resulttype#846}(`%`_resulttype{`X*#4359`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4372`}(t_2*{t_2 <- `t_2*`}))) + -- if (C.`RETURN`_context{`resulttype?#17`} = ?(`%`_resulttype{`X*#4409`}(t'_2*{t'_2 <- `t'_2*`}))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#4422`}(t_2*{t_2 <- `t_2*`}), `%`_resulttype{`X*#4435`}(t'_2*{t'_2 <- `t'_2*`})) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#866, `localidx*#527`}(`%`_resulttype{`X*#4448`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4499`}(t_4*{t_4 <- `t_4*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:166.1-169.42 - rule throw{C : context, x : idx, `t_1*` : valtype*, `t*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, THROW_instr(x), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Expand: `%~~%`($as_deftype(C.TAGS_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule throw{C : context, tagidx#3 : tagidx, x : idx, resulttype#886 : resulttype, `localidx*#539` : localidx*, `X*#4520` : valtype*, `t_1*` : valtype*, `t*` : valtype*, `X*#4569` : valtype*, `t_2*` : valtype*, `tagtype*#6` : tagtype*, i#5834 : nat, resulttype#889 : resulttype, `X*#4582` : valtype*, `X*#4605` : valtype*, resulttype#909 : resulttype, `localidx*#551` : localidx*, `X*#4616` : valtype*, `X*#4667` : valtype*}: + `%|-%:%`(C, `THROW`_instr{tagidx#3}(x), `%->_%%`_instrtype{resulttype#886, `localidx*#539`}(`%`_resulttype{`X*#4520`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#4569`}(t_2*{t_2 <- `t_2*`}))) + -- Expand: `%~~%`($as_deftype(C.`TAGS`_context{`tagtype*#6`}[x!`%`_idx{i#5834}.0]), `FUNC%->%`_comptype{resulttype#889}(`%`_resulttype{`X*#4582`}(t*{t <- `t*`}), `%`_resulttype{`X*#4605`}([]))) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#909, `localidx*#551`}(`%`_resulttype{`X*#4616`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4667`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:171.1-173.42 - rule throw_ref{C : context, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, THROW_REF_instr, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [REF_valtype(?(NULL_null), EXN_heaptype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule throw_ref{C : context, resulttype#929 : resulttype, `localidx*#563` : localidx*, `X*#4688` : valtype*, `t_1*` : valtype*, `null?#715` : null?, heaptype#717 : heaptype, `X*#4737` : valtype*, `t_2*` : valtype*, resulttype#949 : resulttype, `localidx*#575` : localidx*, `X*#4748` : valtype*, `X*#4799` : valtype*}: + `%|-%:%`(C, `THROW_REF`_instr, `%->_%%`_instrtype{resulttype#929, `localidx*#563`}(`%`_resulttype{`X*#4688`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)]), [], `%`_resulttype{`X*#4737`}(t_2*{t_2 <- `t_2*`}))) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#949, `localidx*#575`}(`%`_resulttype{`X*#4748`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4799`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:175.1-179.34 - rule try_table{C : context, bt : blocktype, `catch*` : catch*, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, `x*` : idx*}: - `%|-%:%`(C, TRY_TABLE_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [`%`_resulttype(t_2*{t_2 <- `t_2*`})], RETURN ?(), REFS []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule try_table{C : context, blocktype#13 : blocktype, `instr*#15` : instr*, bt : blocktype, `X*#4812` : catch*, `catch*` : catch*, `instr*` : instr*, resulttype#969 : resulttype, `localidx*#587` : localidx*, `X*#4825` : valtype*, `t_1*` : valtype*, `X*#4876` : valtype*, `t_2*` : valtype*, resulttype#989 : resulttype, `localidx*#599` : localidx*, `X*#4887` : valtype*, `X*#4938` : valtype*, `deftype*#34` : deftype*, `subtype*#9` : subtype*, `tagtype*#7` : tagtype*, `globaltype*#6` : globaltype*, `memtype*#6` : memtype*, `tabletype*#8` : tabletype*, `deftype*#35` : deftype*, `datatype*#6` : datatype*, `elemtype*#6` : elemtype*, `localtype*#9` : localtype*, `resulttype*#17` : resulttype*, `X*#4949` : valtype*, `resulttype?#18` : resulttype?, `funcidx*#44` : funcidx*, resulttype#1009 : resulttype, `localidx*#611` : localidx*, `X*#4962` : valtype*, `x*` : idx*, `X*#5014` : valtype*}: + `%|-%:%`(C, `TRY_TABLE`_instr{blocktype#13, `instr*#15`}(bt, `%`_list{`X*#4812`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`}), `%->_%%`_instrtype{resulttype#969, `localidx*#587`}(`%`_resulttype{`X*#4825`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4876`}(t_2*{t_2 <- `t_2*`}))) + -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype{resulttype#989, `localidx*#599`}(`%`_resulttype{`X*#4887`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4938`}(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({`TYPES`{`deftype*#34`} [], `RECS`{`subtype*#9`} [], `TAGS`{`tagtype*#7`} [], `GLOBALS`{`globaltype*#6`} [], `MEMS`{`memtype*#6`} [], `TABLES`{`tabletype*#8`} [], `FUNCS`{`deftype*#35`} [], `DATAS`{`datatype*#6`} [], `ELEMS`{`elemtype*#6`} [], `LOCALS`{`localtype*#9`} [], `LABELS`{`resulttype*#17`} [`%`_resulttype{`X*#4949`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#18`} ?(), `REFS`{`funcidx*#44`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#1009, `localidx*#611`}(`%`_resulttype{`X*#4962`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#5014`}(t_2*{t_2 <- `t_2*`}))) -- (Catch_ok: `%|-%:OK`(C, catch))*{catch <- `catch*`} ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:202.1-204.31 - rule ref.null{C : context, ht : heaptype}: - `%|-%:%`(C, REF.NULL_instr(ht), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([REF_valtype(?(NULL_null), ht)]))) + rule ref.null{C : context, heaptype#723 : heaptype, ht : heaptype, resulttype#1035 : resulttype, `localidx*#623` : localidx*, `X*#5225` : valtype*, `X*#5274` : valtype*, `null?#721` : null?, heaptype#725 : heaptype}: + `%|-%:%`(C, `REF.NULL`_instr{heaptype#723}(ht), `%->_%%`_instrtype{resulttype#1035, `localidx*#623`}(`%`_resulttype{`X*#5225`}([]), [], `%`_resulttype{`X*#5274`}([`REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)]))) -- Heaptype_ok: `%|-%:OK`(C, ht) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:206.1-209.20 - rule ref.func{C : context, x : idx, dt : deftype}: - `%|-%:%`(C, REF.FUNC_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([REF_valtype(?(), (dt : deftype <: heaptype))]))) - -- if (C.FUNCS_context[x!`%`_idx.0] = dt) - -- if (x <- C.REFS_context) + rule ref.func{C : context, funcidx#181 : funcidx, x : idx, resulttype#1055 : resulttype, `localidx*#635` : localidx*, `X*#5295` : valtype*, `X*#5344` : valtype*, `null?#723` : null?, heaptype#727 : heaptype, dt : deftype, `deftype*#36` : deftype*, i#6070 : nat, `funcidx*#47` : funcidx*}: + `%|-%:%`(C, `REF.FUNC`_instr{funcidx#181}(x), `%->_%%`_instrtype{resulttype#1055, `localidx*#635`}(`%`_resulttype{`X*#5295`}([]), [], `%`_resulttype{`X*#5344`}([`REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))]))) + -- if (C.`FUNCS`_context{`deftype*#36`}[x!`%`_idx{i#6070}.0] = dt) + -- if (x <- C.`REFS`_context{`funcidx*#47`}) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:211.1-212.34 - rule ref.i31{C : context}: - `%|-%:%`(C, REF.I31_instr, `%->_%%`_instrtype(`%`_resulttype([I32_valtype]), [], `%`_resulttype([REF_valtype(?(), I31_heaptype)]))) + rule ref.i31{C : context, resulttype#1075 : resulttype, `localidx*#647` : localidx*, `X*#5363` : valtype*, `X*#5412` : valtype*, `null?#725` : null?, heaptype#729 : heaptype}: + `%|-%:%`(C, `REF.I31`_instr, `%->_%%`_instrtype{resulttype#1075, `localidx*#647`}(`%`_resulttype{`X*#5363`}([`I32`_valtype]), [], `%`_resulttype{`X*#5412`}([`REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:214.1-216.31 - rule ref.is_null{C : context, ht : heaptype}: - `%|-%:%`(C, REF.IS_NULL_instr, `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), ht)]), [], `%`_resulttype([I32_valtype]))) + rule ref.is_null{C : context, resulttype#1095 : resulttype, `localidx*#659` : localidx*, `X*#5433` : valtype*, `null?#727` : null?, heaptype#731 : heaptype, ht : heaptype, `X*#5482` : valtype*}: + `%|-%:%`(C, `REF.IS_NULL`_instr, `%->_%%`_instrtype{resulttype#1095, `localidx*#659`}(`%`_resulttype{`X*#5433`}([`REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#5482`}([`I32`_valtype]))) -- Heaptype_ok: `%|-%:OK`(C, ht) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:218.1-220.31 - rule ref.as_non_null{C : context, ht : heaptype}: - `%|-%:%`(C, REF.AS_NON_NULL_instr, `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), ht)]), [], `%`_resulttype([REF_valtype(?(), ht)]))) + rule ref.as_non_null{C : context, resulttype#1115 : resulttype, `localidx*#671` : localidx*, `X*#5503` : valtype*, `null?#729` : null?, heaptype#733 : heaptype, ht : heaptype, `X*#5552` : valtype*, `null?#731` : null?, heaptype#735 : heaptype}: + `%|-%:%`(C, `REF.AS_NON_NULL`_instr, `%->_%%`_instrtype{resulttype#1115, `localidx*#671`}(`%`_resulttype{`X*#5503`}([`REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#5552`}([`REF`_valtype{`null?#731`, heaptype#735}(?(), ht)]))) -- Heaptype_ok: `%|-%:OK`(C, ht) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:222.1-223.51 - rule ref.eq{C : context}: - `%|-%:%`(C, REF.EQ_instr, `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), EQ_heaptype) REF_valtype(?(NULL_null), EQ_heaptype)]), [], `%`_resulttype([I32_valtype]))) + rule ref.eq{C : context, resulttype#1135 : resulttype, `localidx*#683` : localidx*, `X*#5573` : valtype*, `null?#733` : null?, heaptype#737 : heaptype, `null?#735` : null?, heaptype#739 : heaptype, `X*#5622` : valtype*}: + `%|-%:%`(C, `REF.EQ`_instr, `%->_%%`_instrtype{resulttype#1135, `localidx*#683`}(`%`_resulttype{`X*#5573`}([`REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)]), [], `%`_resulttype{`X*#5622`}([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:225.1-229.33 - rule ref.test{C : context, rt : reftype, rt' : reftype}: - `%|-%:%`(C, REF.TEST_instr(rt), `%->_%%`_instrtype(`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([I32_valtype]))) + rule ref.test{C : context, reftype#403 : reftype, rt : reftype, resulttype#1155 : resulttype, `localidx*#695` : localidx*, `X*#5633` : valtype*, rt' : reftype, `X*#5703` : valtype*}: + `%|-%:%`(C, `REF.TEST`_instr{reftype#403}(rt), `%->_%%`_instrtype{resulttype#1155, `localidx*#695`}(`%`_resulttype{`X*#5633`}([(rt' : reftype <: valtype)]), [], `%`_resulttype{`X*#5703`}([`I32`_valtype]))) -- Reftype_ok: `%|-%:OK`(C, rt) -- Reftype_ok: `%|-%:OK`(C, rt') -- Reftype_sub: `%|-%<:%`(C, rt, rt') ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:231.1-235.33 - rule ref.cast{C : context, rt : reftype, rt' : reftype}: - `%|-%:%`(C, REF.CAST_instr(rt), `%->_%%`_instrtype(`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))) + rule ref.cast{C : context, reftype#405 : reftype, rt : reftype, resulttype#1175 : resulttype, `localidx*#707` : localidx*, `X*#5714` : valtype*, rt' : reftype, `X*#5784` : valtype*}: + `%|-%:%`(C, `REF.CAST`_instr{reftype#405}(rt), `%->_%%`_instrtype{resulttype#1175, `localidx*#707`}(`%`_resulttype{`X*#5714`}([(rt' : reftype <: valtype)]), [], `%`_resulttype{`X*#5784`}([(rt : reftype <: valtype)]))) -- Reftype_ok: `%|-%:OK`(C, rt) -- Reftype_ok: `%|-%:OK`(C, rt') -- Reftype_sub: `%|-%<:%`(C, rt, rt') ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:240.1-241.42 - rule i31.get{C : context, sx : sx}: - `%|-%:%`(C, I31.GET_instr(sx), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), I31_heaptype)]), [], `%`_resulttype([I32_valtype]))) + rule i31.get{C : context, sx#5 : sx, sx : sx, resulttype#1195 : resulttype, `localidx*#719` : localidx*, `X*#5805` : valtype*, `null?#801` : null?, heaptype#805 : heaptype, `X*#5854` : valtype*}: + `%|-%:%`(C, `I31.GET`_instr{sx#5}(sx), `%->_%%`_instrtype{resulttype#1195, `localidx*#719`}(`%`_resulttype{`X*#5805`}([`REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)]), [], `%`_resulttype{`X*#5854`}([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:246.1-248.45 - rule struct.new{C : context, x : idx, `zt*` : storagetype*, `mut?*` : mut?*}: - `%|-%:%`(C, STRUCT.NEW_instr(x), `%->_%%`_instrtype(`%`_resulttype($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], STRUCT_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) + rule struct.new{C : context, typeidx#406 : typeidx, x : idx, resulttype#1215 : resulttype, `localidx*#731` : localidx*, `X*#5865` : valtype*, `zt*` : storagetype*, `X*#5916` : valtype*, `null?#803` : null?, heaptype#807 : heaptype, typeidx#408 : typeidx, `deftype*#37` : deftype*, i#6131 : nat, `X*#5929` : fieldtype*, `mut?*` : mut?*, `mut?#573*` : mut?*, `storagetype#337*` : storagetype*}: + `%|-%:%`(C, `STRUCT.NEW`_instr{typeidx#406}(x), `%->_%%`_instrtype{resulttype#1215, `localidx*#731`}(`%`_resulttype{`X*#5865`}($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype{`X*#5916`}([`REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#37`}[x!`%`_idx{i#6131}.0], `STRUCT`_comptype(`%`_list{`X*#5929`}(`%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:250.1-253.48 - rule struct.new_default{C : context, x : idx, `mut?*` : mut?*, `zt*` : storagetype*}: - `%|-%:%`(C, STRUCT.NEW_DEFAULT_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], STRUCT_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) + rule struct.new_default{C : context, typeidx#410 : typeidx, x : idx, resulttype#1235 : resulttype, `localidx*#743` : localidx*, `X*#5952` : valtype*, `X*#6001` : valtype*, `null?#805` : null?, heaptype#809 : heaptype, typeidx#412 : typeidx, `deftype*#38` : deftype*, i#6169 : nat, `X*#6014` : fieldtype*, `mut?*` : mut?*, `mut?#591*` : mut?*, `storagetype#355*` : storagetype*, `zt*` : storagetype*}: + `%|-%:%`(C, `STRUCT.NEW_DEFAULT`_instr{typeidx#410}(x), `%->_%%`_instrtype{resulttype#1235, `localidx*#743`}(`%`_resulttype{`X*#5952`}([]), [], `%`_resulttype{`X*#6001`}([`REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#38`}[x!`%`_idx{i#6169}.0], `STRUCT`_comptype(`%`_list{`X*#6014`}(`%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`}))) -- (Defaultable: `|-%DEFAULTABLE`($unpack(zt)))*{zt <- `zt*`} ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:258.1-262.39 - rule struct.get{C : context, `sx?` : sx?, x : idx, i : u32, zt : storagetype, `ft*` : fieldtype*, `mut?` : mut?}: - `%|-%:%`(C, STRUCT.GET_instr(sx?{sx <- `sx?`}, x, i), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x))]), [], `%`_resulttype([$unpack(zt)]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], STRUCT_comptype(`%`_list(ft*{ft <- `ft*`}))) - -- if (ft*{ft <- `ft*`}[i!`%`_u32.0] = `%%`_fieldtype(mut?{mut <- `mut?`}, zt)) + rule struct.get{C : context, `sx?#7` : sx?, typeidx#414 : typeidx, u32#8 : u32, `sx?` : sx?, x : idx, i : u32, resulttype#1255 : resulttype, `localidx*#755` : localidx*, `X*#6037` : valtype*, `null?#807` : null?, heaptype#811 : heaptype, typeidx#416 : typeidx, `X*#6086` : valtype*, zt : storagetype, `deftype*#39` : deftype*, i#6236 : nat, `X*#6099` : fieldtype*, `ft*` : fieldtype*, i#6246 : nat, `mut?#617` : mut?, storagetype#381 : storagetype, `mut?` : mut?}: + `%|-%:%`(C, `STRUCT.GET`_instr{`sx?#7`, typeidx#414, u32#8}(sx?{sx <- `sx?`}, x, i), `%->_%%`_instrtype{resulttype#1255, `localidx*#755`}(`%`_resulttype{`X*#6037`}([`REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))]), [], `%`_resulttype{`X*#6086`}([$unpack(zt)]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#39`}[x!`%`_idx{i#6236}.0], `STRUCT`_comptype(`%`_list{`X*#6099`}(ft*{ft <- `ft*`}))) + -- if (ft*{ft <- `ft*`}[i!`%`_u32{i#6246}.0] = `%%`_fieldtype{`mut?#617`, storagetype#381}(mut?{mut <- `mut?`}, zt)) -- if ((sx?{sx <- `sx?`} = ?()) <=> $is_packtype(zt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:264.1-267.24 - rule struct.set{C : context, x : idx, i : u32, zt : storagetype, `ft*` : fieldtype*}: - `%|-%:%`(C, STRUCT.SET_instr(x, i), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x)) $unpack(zt)]), [], `%`_resulttype([]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], STRUCT_comptype(`%`_list(ft*{ft <- `ft*`}))) - -- if (ft*{ft <- `ft*`}[i!`%`_u32.0] = `%%`_fieldtype(?(MUT_mut), zt)) + rule struct.set{C : context, typeidx#418 : typeidx, u32#10 : u32, x : idx, i : u32, resulttype#1275 : resulttype, `localidx*#767` : localidx*, `X*#6122` : valtype*, `null?#809` : null?, heaptype#813 : heaptype, typeidx#420 : typeidx, zt : storagetype, `X*#6171` : valtype*, `deftype*#40` : deftype*, i#6298 : nat, `X*#6184` : fieldtype*, `ft*` : fieldtype*, i#6308 : nat, `mut?#643` : mut?, storagetype#407 : storagetype}: + `%|-%:%`(C, `STRUCT.SET`_instr{typeidx#418, u32#10}(x, i), `%->_%%`_instrtype{resulttype#1275, `localidx*#767`}(`%`_resulttype{`X*#6122`}([`REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x)) $unpack(zt)]), [], `%`_resulttype{`X*#6171`}([]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#40`}[x!`%`_idx{i#6298}.0], `STRUCT`_comptype(`%`_list{`X*#6184`}(ft*{ft <- `ft*`}))) + -- if (ft*{ft <- `ft*`}[i!`%`_u32{i#6308}.0] = `%%`_fieldtype{`mut?#643`, storagetype#407}(?(`MUT`_mut), zt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:272.1-274.43 - rule array.new{C : context, x : idx, zt : storagetype, `mut?` : mut?}: - `%|-%:%`(C, ARRAY.NEW_instr(x), `%->_%%`_instrtype(`%`_resulttype([$unpack(zt) I32_valtype]), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule array.new{C : context, typeidx#422 : typeidx, x : idx, resulttype#1295 : resulttype, `localidx*#779` : localidx*, `X*#6207` : valtype*, zt : storagetype, `X*#6256` : valtype*, `null?#811` : null?, heaptype#815 : heaptype, typeidx#424 : typeidx, `deftype*#41` : deftype*, i#6346 : nat, fieldtype#15 : fieldtype, `mut?#655` : mut?, storagetype#419 : storagetype, `mut?` : mut?}: + `%|-%:%`(C, `ARRAY.NEW`_instr{typeidx#422}(x), `%->_%%`_instrtype{resulttype#1295, `localidx*#779`}(`%`_resulttype{`X*#6207`}([$unpack(zt) `I32`_valtype]), [], `%`_resulttype{`X*#6256`}([`REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#41`}[x!`%`_idx{i#6346}.0], `ARRAY`_comptype{fieldtype#15}(`%%`_fieldtype{`mut?#655`, storagetype#419}(mut?{mut <- `mut?`}, zt))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:276.1-279.45 - rule array.new_default{C : context, x : idx, `mut?` : mut?, zt : storagetype}: - `%|-%:%`(C, ARRAY.NEW_DEFAULT_instr(x), `%->_%%`_instrtype(`%`_resulttype([I32_valtype]), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule array.new_default{C : context, typeidx#426 : typeidx, x : idx, resulttype#1315 : resulttype, `localidx*#791` : localidx*, `X*#6275` : valtype*, `X*#6324` : valtype*, `null?#813` : null?, heaptype#817 : heaptype, typeidx#428 : typeidx, `deftype*#42` : deftype*, i#6384 : nat, fieldtype#17 : fieldtype, `mut?#667` : mut?, storagetype#431 : storagetype, `mut?` : mut?, zt : storagetype}: + `%|-%:%`(C, `ARRAY.NEW_DEFAULT`_instr{typeidx#426}(x), `%->_%%`_instrtype{resulttype#1315, `localidx*#791`}(`%`_resulttype{`X*#6275`}([`I32`_valtype]), [], `%`_resulttype{`X*#6324`}([`REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#42`}[x!`%`_idx{i#6384}.0], `ARRAY`_comptype{fieldtype#17}(`%%`_fieldtype{`mut?#667`, storagetype#431}(mut?{mut <- `mut?`}, zt))) -- Defaultable: `|-%DEFAULTABLE`($unpack(zt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:281.1-283.43 - rule array.new_fixed{C : context, x : idx, n : n, zt : storagetype, `mut?` : mut?}: - `%|-%:%`(C, ARRAY.NEW_FIXED_instr(x, `%`_u32(n)), `%->_%%`_instrtype(`%`_resulttype($unpack(zt)^n{}), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule array.new_fixed{C : context, typeidx#430 : typeidx, u32#12 : u32, x : idx, i#6422 : nat, n : n, resulttype#1335 : resulttype, `localidx*#803` : localidx*, `X*#6335` : valtype*, zt : storagetype, `X*#6386` : valtype*, `null?#815` : null?, heaptype#819 : heaptype, typeidx#432 : typeidx, `deftype*#43` : deftype*, i#6446 : nat, fieldtype#19 : fieldtype, `mut?#679` : mut?, storagetype#443 : storagetype, `mut?` : mut?}: + `%|-%:%`(C, `ARRAY.NEW_FIXED`_instr{typeidx#430, u32#12}(x, `%`_u32{i#6422}(n)), `%->_%%`_instrtype{resulttype#1335, `localidx*#803`}(`%`_resulttype{`X*#6335`}($unpack(zt)^n{}), [], `%`_resulttype{`X*#6386`}([`REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#43`}[x!`%`_idx{i#6446}.0], `ARRAY`_comptype{fieldtype#19}(`%%`_fieldtype{`mut?#679`, storagetype#443}(mut?{mut <- `mut?`}, zt))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:285.1-288.40 - rule array.new_elem{C : context, x : idx, y : idx, `mut?` : mut?, rt : reftype}: - `%|-%:%`(C, ARRAY.NEW_ELEM_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([I32_valtype I32_valtype]), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))) - -- Reftype_sub: `%|-%<:%`(C, C.ELEMS_context[y!`%`_idx.0], rt) + rule array.new_elem{C : context, typeidx#434 : typeidx, elemidx#9 : elemidx, x : idx, y : idx, resulttype#1355 : resulttype, `localidx*#815` : localidx*, `X*#6407` : valtype*, `X*#6456` : valtype*, `null?#817` : null?, heaptype#821 : heaptype, typeidx#436 : typeidx, `deftype*#44` : deftype*, i#6498 : nat, fieldtype#21 : fieldtype, `mut?#691` : mut?, storagetype#455 : storagetype, `mut?` : mut?, rt : reftype, `elemtype*#7` : elemtype*, i#6508 : nat}: + `%|-%:%`(C, `ARRAY.NEW_ELEM`_instr{typeidx#434, elemidx#9}(x, y), `%->_%%`_instrtype{resulttype#1355, `localidx*#815`}(`%`_resulttype{`X*#6407`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6456`}([`REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#44`}[x!`%`_idx{i#6498}.0], `ARRAY`_comptype{fieldtype#21}(`%%`_fieldtype{`mut?#691`, storagetype#455}(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))) + -- Reftype_sub: `%|-%<:%`(C, C.`ELEMS`_context{`elemtype*#7`}[y!`%`_idx{i#6508}.0], rt) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:290.1-294.24 - rule array.new_data{C : context, x : idx, y : idx, `mut?` : mut?, zt : storagetype, numtype : numtype, vectype : vectype}: - `%|-%:%`(C, ARRAY.NEW_DATA_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([I32_valtype I32_valtype]), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule array.new_data{C : context, typeidx#438 : typeidx, dataidx#9 : dataidx, x : idx, y : idx, resulttype#1375 : resulttype, `localidx*#827` : localidx*, `X*#6477` : valtype*, `X*#6526` : valtype*, `null?#831` : null?, heaptype#835 : heaptype, typeidx#440 : typeidx, `deftype*#45` : deftype*, i#6560 : nat, fieldtype#23 : fieldtype, `mut?#703` : mut?, storagetype#467 : storagetype, `mut?` : mut?, zt : storagetype, numtype : numtype, vectype : vectype, `datatype*#7` : datatype*, i#6570 : nat}: + `%|-%:%`(C, `ARRAY.NEW_DATA`_instr{typeidx#438, dataidx#9}(x, y), `%->_%%`_instrtype{resulttype#1375, `localidx*#827`}(`%`_resulttype{`X*#6477`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6526`}([`REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#45`}[x!`%`_idx{i#6560}.0], `ARRAY`_comptype{fieldtype#23}(`%%`_fieldtype{`mut?#703`, storagetype#467}(mut?{mut <- `mut?`}, zt))) -- if (($unpack(zt) = (numtype : numtype <: valtype)) \/ ($unpack(zt) = (vectype : vectype <: valtype))) - -- if (C.DATAS_context[y!`%`_idx.0] = OK_datatype) + -- if (C.`DATAS`_context{`datatype*#7`}[y!`%`_idx{i#6570}.0] = `OK`_datatype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:296.1-299.39 - rule array.get{C : context, `sx?` : sx?, x : idx, zt : storagetype, `mut?` : mut?}: - `%|-%:%`(C, ARRAY.GET_instr(sx?{sx <- `sx?`}, x), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x)) I32_valtype]), [], `%`_resulttype([$unpack(zt)]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule array.get{C : context, `sx?#9` : sx?, typeidx#442 : typeidx, `sx?` : sx?, x : idx, resulttype#1395 : resulttype, `localidx*#839` : localidx*, `X*#6547` : valtype*, `null?#833` : null?, heaptype#837 : heaptype, typeidx#444 : typeidx, `X*#6596` : valtype*, zt : storagetype, `deftype*#46` : deftype*, i#6645 : nat, fieldtype#25 : fieldtype, `mut?#715` : mut?, storagetype#479 : storagetype, `mut?` : mut?}: + `%|-%:%`(C, `ARRAY.GET`_instr{`sx?#9`, typeidx#442}(sx?{sx <- `sx?`}, x), `%->_%%`_instrtype{resulttype#1395, `localidx*#839`}(`%`_resulttype{`X*#6547`}([`REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x)) `I32`_valtype]), [], `%`_resulttype{`X*#6596`}([$unpack(zt)]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#46`}[x!`%`_idx{i#6645}.0], `ARRAY`_comptype{fieldtype#25}(`%%`_fieldtype{`mut?#715`, storagetype#479}(mut?{mut <- `mut?`}, zt))) -- if ((sx?{sx <- `sx?`} = ?()) <=> $is_packtype(zt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:301.1-303.42 - rule array.set{C : context, x : idx, zt : storagetype}: - `%|-%:%`(C, ARRAY.SET_instr(x), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x)) I32_valtype $unpack(zt)]), [], `%`_resulttype([]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(?(MUT_mut), zt))) + rule array.set{C : context, typeidx#446 : typeidx, x : idx, resulttype#1415 : resulttype, `localidx*#851` : localidx*, `X*#6617` : valtype*, `null?#835` : null?, heaptype#839 : heaptype, typeidx#448 : typeidx, zt : storagetype, `X*#6666` : valtype*, `deftype*#47` : deftype*, i#6683 : nat, fieldtype#27 : fieldtype, `mut?#727` : mut?, storagetype#491 : storagetype}: + `%|-%:%`(C, `ARRAY.SET`_instr{typeidx#446}(x), `%->_%%`_instrtype{resulttype#1415, `localidx*#851`}(`%`_resulttype{`X*#6617`}([`REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x)) `I32`_valtype $unpack(zt)]), [], `%`_resulttype{`X*#6666`}([]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#47`}[x!`%`_idx{i#6683}.0], `ARRAY`_comptype{fieldtype#27}(`%%`_fieldtype{`mut?#727`, storagetype#491}(?(`MUT`_mut), zt))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:305.1-306.43 - rule array.len{C : context}: - `%|-%:%`(C, ARRAY.LEN_instr, `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), ARRAY_heaptype)]), [], `%`_resulttype([I32_valtype]))) + rule array.len{C : context, resulttype#1435 : resulttype, `localidx*#863` : localidx*, `X*#6687` : valtype*, `null?#837` : null?, heaptype#841 : heaptype, `X*#6736` : valtype*}: + `%|-%:%`(C, `ARRAY.LEN`_instr, `%->_%%`_instrtype{resulttype#1435, `localidx*#863`}(`%`_resulttype{`X*#6687`}([`REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)]), [], `%`_resulttype{`X*#6736`}([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:308.1-310.42 - rule array.fill{C : context, x : idx, zt : storagetype}: - `%|-%:%`(C, ARRAY.FILL_instr(x), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x)) I32_valtype $unpack(zt) I32_valtype]), [], `%`_resulttype([]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(?(MUT_mut), zt))) + rule array.fill{C : context, typeidx#450 : typeidx, x : idx, resulttype#1455 : resulttype, `localidx*#875` : localidx*, `X*#6757` : valtype*, `null?#839` : null?, heaptype#843 : heaptype, typeidx#452 : typeidx, zt : storagetype, `X*#6806` : valtype*, `deftype*#48` : deftype*, i#6721 : nat, fieldtype#29 : fieldtype, `mut?#739` : mut?, storagetype#503 : storagetype}: + `%|-%:%`(C, `ARRAY.FILL`_instr{typeidx#450}(x), `%->_%%`_instrtype{resulttype#1455, `localidx*#875`}(`%`_resulttype{`X*#6757`}([`REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x)) `I32`_valtype $unpack(zt) `I32`_valtype]), [], `%`_resulttype{`X*#6806`}([]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#48`}[x!`%`_idx{i#6721}.0], `ARRAY`_comptype{fieldtype#29}(`%%`_fieldtype{`mut?#739`, storagetype#503}(?(`MUT`_mut), zt))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:312.1-316.40 - rule array.copy{C : context, x_1 : idx, x_2 : idx, zt_1 : storagetype, `mut?` : mut?, zt_2 : storagetype}: - `%|-%:%`(C, ARRAY.COPY_instr(x_1, x_2), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x_1)) I32_valtype REF_valtype(?(NULL_null), _IDX_heaptype(x_2)) I32_valtype I32_valtype]), [], `%`_resulttype([]))) - -- Expand: `%~~%`(C.TYPES_context[x_1!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(?(MUT_mut), zt_1))) - -- Expand: `%~~%`(C.TYPES_context[x_2!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))) + rule array.copy{C : context, typeidx#454 : typeidx, x_1 : idx, x_2 : idx, resulttype#1475 : resulttype, `localidx*#887` : localidx*, `X*#6827` : valtype*, `null?#841` : null?, heaptype#845 : heaptype, typeidx#457 : typeidx, `null?#843` : null?, heaptype#847 : heaptype, typeidx#459 : typeidx, `X*#6876` : valtype*, `deftype*#49` : deftype*, i#6787 : nat, fieldtype#31 : fieldtype, `mut?#751` : mut?, storagetype#515 : storagetype, zt_1 : storagetype, `deftype*#50` : deftype*, i#6797 : nat, fieldtype#33 : fieldtype, `mut?#763` : mut?, storagetype#527 : storagetype, `mut?` : mut?, zt_2 : storagetype}: + `%|-%:%`(C, `ARRAY.COPY`_instr{typeidx#454}(x_1, x_2), `%->_%%`_instrtype{resulttype#1475, `localidx*#887`}(`%`_resulttype{`X*#6827`}([`REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1)) `I32`_valtype `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2)) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6876`}([]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#49`}[x_1!`%`_idx{i#6787}.0], `ARRAY`_comptype{fieldtype#31}(`%%`_fieldtype{`mut?#751`, storagetype#515}(?(`MUT`_mut), zt_1))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#50`}[x_2!`%`_idx{i#6797}.0], `ARRAY`_comptype{fieldtype#33}(`%%`_fieldtype{`mut?#763`, storagetype#527}(mut?{mut <- `mut?`}, zt_2))) -- Storagetype_sub: `%|-%<:%`(C, zt_2, zt_1) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:318.1-321.44 - rule array.init_elem{C : context, x : idx, y : idx, zt : storagetype}: - `%|-%:%`(C, ARRAY.INIT_ELEM_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x)) I32_valtype I32_valtype I32_valtype]), [], `%`_resulttype([]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(?(MUT_mut), zt))) - -- Storagetype_sub: `%|-%<:%`(C, (C.ELEMS_context[y!`%`_idx.0] : reftype <: storagetype), zt) + rule array.init_elem{C : context, typeidx#461 : typeidx, elemidx#11 : elemidx, x : idx, y : idx, resulttype#1495 : resulttype, `localidx*#899` : localidx*, `X*#6897` : valtype*, `null?#845` : null?, heaptype#849 : heaptype, typeidx#463 : typeidx, `X*#6946` : valtype*, `deftype*#51` : deftype*, i#6849 : nat, fieldtype#35 : fieldtype, `mut?#775` : mut?, storagetype#539 : storagetype, zt : storagetype, `elemtype*#8` : elemtype*, i#6859 : nat}: + `%|-%:%`(C, `ARRAY.INIT_ELEM`_instr{typeidx#461, elemidx#11}(x, y), `%->_%%`_instrtype{resulttype#1495, `localidx*#899`}(`%`_resulttype{`X*#6897`}([`REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6946`}([]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#51`}[x!`%`_idx{i#6849}.0], `ARRAY`_comptype{fieldtype#35}(`%%`_fieldtype{`mut?#775`, storagetype#539}(?(`MUT`_mut), zt))) + -- Storagetype_sub: `%|-%<:%`(C, (C.`ELEMS`_context{`elemtype*#8`}[y!`%`_idx{i#6859}.0] : reftype <: storagetype), zt) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:323.1-327.24 - rule array.init_data{C : context, x : idx, y : idx, zt : storagetype, numtype : numtype, vectype : vectype}: - `%|-%:%`(C, ARRAY.INIT_DATA_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x)) I32_valtype I32_valtype I32_valtype]), [], `%`_resulttype([]))) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(?(MUT_mut), zt))) + rule array.init_data{C : context, typeidx#465 : typeidx, dataidx#11 : dataidx, x : idx, y : idx, resulttype#1515 : resulttype, `localidx*#911` : localidx*, `X*#6967` : valtype*, `null?#847` : null?, heaptype#851 : heaptype, typeidx#467 : typeidx, `X*#7016` : valtype*, `deftype*#52` : deftype*, i#6911 : nat, fieldtype#37 : fieldtype, `mut?#787` : mut?, storagetype#551 : storagetype, zt : storagetype, numtype : numtype, vectype : vectype, `datatype*#8` : datatype*, i#6921 : nat}: + `%|-%:%`(C, `ARRAY.INIT_DATA`_instr{typeidx#465, dataidx#11}(x, y), `%->_%%`_instrtype{resulttype#1515, `localidx*#911`}(`%`_resulttype{`X*#6967`}([`REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#7016`}([]))) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#52`}[x!`%`_idx{i#6911}.0], `ARRAY`_comptype{fieldtype#37}(`%%`_fieldtype{`mut?#787`, storagetype#551}(?(`MUT`_mut), zt))) -- if (($unpack(zt) = (numtype : numtype <: valtype)) \/ ($unpack(zt) = (vectype : vectype <: valtype))) - -- if (C.DATAS_context[y!`%`_idx.0] = OK_datatype) + -- if (C.`DATAS`_context{`datatype*#8`}[y!`%`_idx{i#6921}.0] = `OK`_datatype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:332.1-334.26 - rule extern.convert_any{C : context, `null_1?` : null?, `null_2?` : null?}: - `%|-%:%`(C, EXTERN.CONVERT_ANY_instr, `%->_%%`_instrtype(`%`_resulttype([REF_valtype(null_1?{null_1 <- `null_1?`}, ANY_heaptype)]), [], `%`_resulttype([REF_valtype(null_2?{null_2 <- `null_2?`}, EXTERN_heaptype)]))) + rule extern.convert_any{C : context, resulttype#1535 : resulttype, `localidx*#923` : localidx*, `X*#7037` : valtype*, `null?#849` : null?, heaptype#853 : heaptype, `null_1?` : null?, `X*#7086` : valtype*, `null?#851` : null?, heaptype#855 : heaptype, `null_2?` : null?}: + `%|-%:%`(C, `EXTERN.CONVERT_ANY`_instr, `%->_%%`_instrtype{resulttype#1535, `localidx*#923`}(`%`_resulttype{`X*#7037`}([`REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]), [], `%`_resulttype{`X*#7086`}([`REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]))) -- if (null_1?{null_1 <- `null_1?`} = null_2?{null_2 <- `null_2?`}) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:336.1-338.26 - rule any.convert_extern{C : context, `null_1?` : null?, `null_2?` : null?}: - `%|-%:%`(C, ANY.CONVERT_EXTERN_instr, `%->_%%`_instrtype(`%`_resulttype([REF_valtype(null_1?{null_1 <- `null_1?`}, EXTERN_heaptype)]), [], `%`_resulttype([REF_valtype(null_2?{null_2 <- `null_2?`}, ANY_heaptype)]))) + rule any.convert_extern{C : context, resulttype#1555 : resulttype, `localidx*#935` : localidx*, `X*#7107` : valtype*, `null?#853` : null?, heaptype#857 : heaptype, `null_1?` : null?, `X*#7156` : valtype*, `null?#855` : null?, heaptype#859 : heaptype, `null_2?` : null?}: + `%|-%:%`(C, `ANY.CONVERT_EXTERN`_instr, `%->_%%`_instrtype{resulttype#1555, `localidx*#935`}(`%`_resulttype{`X*#7107`}([`REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]), [], `%`_resulttype{`X*#7156`}([`REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]))) -- if (null_1?{null_1 <- `null_1?`} = null_2?{null_2 <- `null_2?`}) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:343.1-345.28 - rule local.get{C : context, x : idx, t : valtype}: - `%|-%:%`(C, LOCAL.GET_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))) - -- if (C.LOCALS_context[x!`%`_idx.0] = `%%`_localtype(SET_init, t)) + rule local.get{C : context, localidx#7 : localidx, x : idx, resulttype#1575 : resulttype, `localidx*#947` : localidx*, `X*#7177` : valtype*, `X*#7226` : valtype*, t : valtype, `localtype*#10` : localtype*, i#6945 : nat, init#77 : init, valtype#343 : valtype}: + `%|-%:%`(C, `LOCAL.GET`_instr{localidx#7}(x), `%->_%%`_instrtype{resulttype#1575, `localidx*#947`}(`%`_resulttype{`X*#7177`}([]), [], `%`_resulttype{`X*#7226`}([t]))) + -- if (C.`LOCALS`_context{`localtype*#10`}[x!`%`_idx{i#6945}.0] = `%%`_localtype{init#77, valtype#343}(`SET`_init, t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:347.1-349.29 - rule local.set{C : context, x : idx, t : valtype, init : init}: - `%|-%:%`(C, LOCAL.SET_instr(x), `%->_%%`_instrtype(`%`_resulttype([t]), [x], `%`_resulttype([]))) - -- if (C.LOCALS_context[x!`%`_idx.0] = `%%`_localtype(init, t)) + rule local.set{C : context, localidx#9 : localidx, x : idx, resulttype#1595 : resulttype, `localidx*#959` : localidx*, `X*#7237` : valtype*, t : valtype, `X*#7334` : valtype*, `localtype*#11` : localtype*, i#7182 : nat, init#89 : init, valtype#355 : valtype, init : init}: + `%|-%:%`(C, `LOCAL.SET`_instr{localidx#9}(x), `%->_%%`_instrtype{resulttype#1595, `localidx*#959`}(`%`_resulttype{`X*#7237`}([t]), [x], `%`_resulttype{`X*#7334`}([]))) + -- if (C.`LOCALS`_context{`localtype*#11`}[x!`%`_idx{i#7182}.0] = `%%`_localtype{init#89, valtype#355}(init, t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:351.1-353.29 - rule local.tee{C : context, x : idx, t : valtype, init : init}: - `%|-%:%`(C, LOCAL.TEE_instr(x), `%->_%%`_instrtype(`%`_resulttype([t]), [x], `%`_resulttype([t]))) - -- if (C.LOCALS_context[x!`%`_idx.0] = `%%`_localtype(init, t)) + rule local.tee{C : context, localidx#11 : localidx, x : idx, resulttype#1615 : resulttype, `localidx*#971` : localidx*, `X*#7345` : valtype*, t : valtype, `X*#7432` : valtype*, `localtype*#12` : localtype*, i#7419 : nat, init#101 : init, valtype#367 : valtype, init : init}: + `%|-%:%`(C, `LOCAL.TEE`_instr{localidx#11}(x), `%->_%%`_instrtype{resulttype#1615, `localidx*#971`}(`%`_resulttype{`X*#7345`}([t]), [x], `%`_resulttype{`X*#7432`}([t]))) + -- if (C.`LOCALS`_context{`localtype*#12`}[x!`%`_idx{i#7419}.0] = `%%`_localtype{init#101, valtype#367}(init, t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:358.1-360.30 - rule global.get{C : context, x : idx, t : valtype, `mut?` : mut?}: - `%|-%:%`(C, GLOBAL.GET_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))) - -- if (C.GLOBALS_context[x!`%`_idx.0] = `%%`_globaltype(mut?{mut <- `mut?`}, t)) + rule global.get{C : context, globalidx#9 : globalidx, x : idx, resulttype#1635 : resulttype, `localidx*#983` : localidx*, `X*#7472` : valtype*, `X*#7521` : valtype*, t : valtype, `globaltype*#7` : globaltype*, i#7443 : nat, `mut?#799` : mut?, valtype#379 : valtype, `mut?` : mut?}: + `%|-%:%`(C, `GLOBAL.GET`_instr{globalidx#9}(x), `%->_%%`_instrtype{resulttype#1635, `localidx*#983`}(`%`_resulttype{`X*#7472`}([]), [], `%`_resulttype{`X*#7521`}([t]))) + -- if (C.`GLOBALS`_context{`globaltype*#7`}[x!`%`_idx{i#7443}.0] = `%%`_globaltype{`mut?#799`, valtype#379}(mut?{mut <- `mut?`}, t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:362.1-364.29 - rule global.set{C : context, x : idx, t : valtype}: - `%|-%:%`(C, GLOBAL.SET_instr(x), `%->_%%`_instrtype(`%`_resulttype([t]), [], `%`_resulttype([]))) - -- if (C.GLOBALS_context[x!`%`_idx.0] = `%%`_globaltype(?(MUT_mut), t)) + rule global.set{C : context, globalidx#11 : globalidx, x : idx, resulttype#1655 : resulttype, `localidx*#995` : localidx*, `X*#7532` : valtype*, t : valtype, `X*#7600` : valtype*, `globaltype*#8` : globaltype*, i#7467 : nat, `mut?#811` : mut?, valtype#391 : valtype}: + `%|-%:%`(C, `GLOBAL.SET`_instr{globalidx#11}(x), `%->_%%`_instrtype{resulttype#1655, `localidx*#995`}(`%`_resulttype{`X*#7532`}([t]), [], `%`_resulttype{`X*#7600`}([]))) + -- if (C.`GLOBALS`_context{`globaltype*#8`}[x!`%`_idx{i#7467}.0] = `%%`_globaltype{`mut?#811`, valtype#391}(?(`MUT`_mut), t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:369.1-371.32 - rule table.get{C : context, x : idx, at : addrtype, rt : reftype, lim : limits}: - `%|-%:%`(C, TABLE.GET_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))) - -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + rule table.get{C : context, tableidx#30 : tableidx, x : idx, resulttype#1675 : resulttype, `localidx*#1007` : localidx*, `X*#7611` : valtype*, at : addrtype, `X*#7679` : valtype*, rt : reftype, `tabletype*#9` : tabletype*, i#7491 : nat, addrtype#465 : addrtype, limits#465 : limits, reftype#417 : reftype, lim : limits}: + `%|-%:%`(C, `TABLE.GET`_instr{tableidx#30}(x), `%->_%%`_instrtype{resulttype#1675, `localidx*#1007`}(`%`_resulttype{`X*#7611`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7679`}([(rt : reftype <: valtype)]))) + -- if (C.`TABLES`_context{`tabletype*#9`}[x!`%`_idx{i#7491}.0] = `%%%`_tabletype{addrtype#465, limits#465, reftype#417}(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:373.1-375.32 - rule table.set{C : context, x : idx, at : addrtype, rt : reftype, lim : limits}: - `%|-%:%`(C, TABLE.SET_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype)]), [], `%`_resulttype([]))) - -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + rule table.set{C : context, tableidx#32 : tableidx, x : idx, resulttype#1695 : resulttype, `localidx*#1019` : localidx*, `X*#7700` : valtype*, at : addrtype, rt : reftype, `X*#7749` : valtype*, `tabletype*#10` : tabletype*, i#7515 : nat, addrtype#477 : addrtype, limits#477 : limits, reftype#429 : reftype, lim : limits}: + `%|-%:%`(C, `TABLE.SET`_instr{tableidx#32}(x), `%->_%%`_instrtype{resulttype#1695, `localidx*#1019`}(`%`_resulttype{`X*#7700`}([(at : addrtype <: valtype) (rt : reftype <: valtype)]), [], `%`_resulttype{`X*#7749`}([]))) + -- if (C.`TABLES`_context{`tabletype*#10`}[x!`%`_idx{i#7515}.0] = `%%%`_tabletype{addrtype#477, limits#477, reftype#429}(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:377.1-379.32 - rule table.size{C : context, x : idx, at : addrtype, lim : limits, rt : reftype}: - `%|-%:%`(C, TABLE.SIZE_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))) - -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + rule table.size{C : context, tableidx#34 : tableidx, x : idx, resulttype#1715 : resulttype, `localidx*#1031` : localidx*, `X*#7770` : valtype*, `X*#7819` : valtype*, at : addrtype, `tabletype*#11` : tabletype*, i#7539 : nat, addrtype#489 : addrtype, limits#489 : limits, reftype#441 : reftype, lim : limits, rt : reftype}: + `%|-%:%`(C, `TABLE.SIZE`_instr{tableidx#34}(x), `%->_%%`_instrtype{resulttype#1715, `localidx*#1031`}(`%`_resulttype{`X*#7770`}([]), [], `%`_resulttype{`X*#7819`}([(at : addrtype <: valtype)]))) + -- if (C.`TABLES`_context{`tabletype*#11`}[x!`%`_idx{i#7539}.0] = `%%%`_tabletype{addrtype#489, limits#489, reftype#441}(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:381.1-383.32 - rule table.grow{C : context, x : idx, rt : reftype, at : addrtype, lim : limits}: - `%|-%:%`(C, TABLE.GROW_instr(x), `%->_%%`_instrtype(`%`_resulttype([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([I32_valtype]))) - -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + rule table.grow{C : context, tableidx#36 : tableidx, x : idx, resulttype#1735 : resulttype, `localidx*#1043` : localidx*, `X*#7840` : valtype*, rt : reftype, at : addrtype, `X*#7889` : valtype*, `tabletype*#12` : tabletype*, i#7563 : nat, addrtype#501 : addrtype, limits#501 : limits, reftype#453 : reftype, lim : limits}: + `%|-%:%`(C, `TABLE.GROW`_instr{tableidx#36}(x), `%->_%%`_instrtype{resulttype#1735, `localidx*#1043`}(`%`_resulttype{`X*#7840`}([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7889`}([`I32`_valtype]))) + -- if (C.`TABLES`_context{`tabletype*#12`}[x!`%`_idx{i#7563}.0] = `%%%`_tabletype{addrtype#501, limits#501, reftype#453}(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:385.1-387.32 - rule table.fill{C : context, x : idx, at : addrtype, rt : reftype, lim : limits}: - `%|-%:%`(C, TABLE.FILL_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([]))) - -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + rule table.fill{C : context, tableidx#38 : tableidx, x : idx, resulttype#1755 : resulttype, `localidx*#1055` : localidx*, `X*#7910` : valtype*, at : addrtype, rt : reftype, `X*#7959` : valtype*, `tabletype*#13` : tabletype*, i#7587 : nat, addrtype#513 : addrtype, limits#513 : limits, reftype#465 : reftype, lim : limits}: + `%|-%:%`(C, `TABLE.FILL`_instr{tableidx#38}(x), `%->_%%`_instrtype{resulttype#1755, `localidx*#1055`}(`%`_resulttype{`X*#7910`}([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7959`}([]))) + -- if (C.`TABLES`_context{`tabletype*#13`}[x!`%`_idx{i#7587}.0] = `%%%`_tabletype{addrtype#513, limits#513, reftype#465}(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:389.1-393.36 - rule table.copy{C : context, x_1 : idx, x_2 : idx, at_1 : addrtype, at_2 : addrtype, lim_1 : limits, rt_1 : reftype, lim_2 : limits, rt_2 : reftype}: - `%|-%:%`(C, TABLE.COPY_instr(x_1, x_2), `%->_%%`_instrtype(`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))) - -- if (C.TABLES_context[x_1!`%`_idx.0] = `%%%`_tabletype(at_1, lim_1, rt_1)) - -- if (C.TABLES_context[x_2!`%`_idx.0] = `%%%`_tabletype(at_2, lim_2, rt_2)) + rule table.copy{C : context, tableidx#40 : tableidx, x_1 : idx, x_2 : idx, resulttype#1775 : resulttype, `localidx*#1067` : localidx*, `X*#7980` : valtype*, at_1 : addrtype, at_2 : addrtype, `X*#8029` : valtype*, `tabletype*#14` : tabletype*, i#7625 : nat, addrtype#525 : addrtype, limits#525 : limits, reftype#477 : reftype, lim_1 : limits, rt_1 : reftype, `tabletype*#15` : tabletype*, i#7635 : nat, addrtype#537 : addrtype, limits#537 : limits, reftype#489 : reftype, lim_2 : limits, rt_2 : reftype}: + `%|-%:%`(C, `TABLE.COPY`_instr{tableidx#40}(x_1, x_2), `%->_%%`_instrtype{resulttype#1775, `localidx*#1067`}(`%`_resulttype{`X*#7980`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype{`X*#8029`}([]))) + -- if (C.`TABLES`_context{`tabletype*#14`}[x_1!`%`_idx{i#7625}.0] = `%%%`_tabletype{addrtype#525, limits#525, reftype#477}(at_1, lim_1, rt_1)) + -- if (C.`TABLES`_context{`tabletype*#15`}[x_2!`%`_idx{i#7635}.0] = `%%%`_tabletype{addrtype#537, limits#537, reftype#489}(at_2, lim_2, rt_2)) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt_1) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:395.1-399.36 - rule table.init{C : context, x : idx, y : idx, at : addrtype, lim : limits, rt_1 : reftype, rt_2 : reftype}: - `%|-%:%`(C, TABLE.INIT_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) I32_valtype I32_valtype]), [], `%`_resulttype([]))) - -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt_1)) - -- if (C.ELEMS_context[y!`%`_idx.0] = rt_2) + rule table.init{C : context, tableidx#43 : tableidx, elemidx#13 : elemidx, x : idx, y : idx, resulttype#1795 : resulttype, `localidx*#1079` : localidx*, `X*#8050` : valtype*, at : addrtype, `X*#8099` : valtype*, `tabletype*#16` : tabletype*, i#7673 : nat, addrtype#549 : addrtype, limits#549 : limits, reftype#501 : reftype, lim : limits, rt_1 : reftype, `elemtype*#9` : elemtype*, i#7683 : nat, rt_2 : reftype}: + `%|-%:%`(C, `TABLE.INIT`_instr{tableidx#43, elemidx#13}(x, y), `%->_%%`_instrtype{resulttype#1795, `localidx*#1079`}(`%`_resulttype{`X*#8050`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#8099`}([]))) + -- if (C.`TABLES`_context{`tabletype*#16`}[x!`%`_idx{i#7673}.0] = `%%%`_tabletype{addrtype#549, limits#549, reftype#501}(at, lim, rt_1)) + -- if (C.`ELEMS`_context{`elemtype*#9`}[y!`%`_idx{i#7683}.0] = rt_2) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt_1) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:401.1-403.24 - rule elem.drop{C : context, x : idx, rt : reftype}: - `%|-%:%`(C, ELEM.DROP_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))) - -- if (C.ELEMS_context[x!`%`_idx.0] = rt) + rule elem.drop{C : context, elemidx#15 : elemidx, x : idx, resulttype#1815 : resulttype, `localidx*#1091` : localidx*, `X*#8120` : valtype*, `X*#8169` : valtype*, `elemtype*#10` : elemtype*, i#7707 : nat, rt : reftype}: + `%|-%:%`(C, `ELEM.DROP`_instr{elemidx#15}(x), `%->_%%`_instrtype{resulttype#1815, `localidx*#1091`}(`%`_resulttype{`X*#8120`}([]), [], `%`_resulttype{`X*#8169`}([]))) + -- if (C.`ELEMS`_context{`elemtype*#10`}[x!`%`_idx{i#7707}.0] = rt) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:416.1-418.32 - rule memory.size{C : context, x : idx, at : addrtype, lim : limits}: - `%|-%:%`(C, MEMORY.SIZE_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule memory.size{C : context, memidx#30 : memidx, x : idx, resulttype#1835 : resulttype, `localidx*#1103` : localidx*, `X*#8190` : valtype*, `X*#8239` : valtype*, at : addrtype, `memtype*#7` : memtype*, i#7775 : nat, addrtype#561 : addrtype, limits#561 : limits, lim : limits}: + `%|-%:%`(C, `MEMORY.SIZE`_instr{memidx#30}(x), `%->_%%`_instrtype{resulttype#1835, `localidx*#1103`}(`%`_resulttype{`X*#8190`}([]), [], `%`_resulttype{`X*#8239`}([(at : addrtype <: valtype)]))) + -- if (C.`MEMS`_context{`memtype*#7`}[x!`%`_idx{i#7775}.0] = `%%PAGE`_memtype{addrtype#561, limits#561}(at, lim)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:420.1-422.32 - rule memory.grow{C : context, x : idx, at : addrtype, lim : limits}: - `%|-%:%`(C, MEMORY.GROW_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(at : addrtype <: valtype)]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule memory.grow{C : context, memidx#32 : memidx, x : idx, resulttype#1855 : resulttype, `localidx*#1115` : localidx*, `X*#8250` : valtype*, at : addrtype, `X*#8318` : valtype*, `memtype*#8` : memtype*, i#7799 : nat, addrtype#573 : addrtype, limits#573 : limits, lim : limits}: + `%|-%:%`(C, `MEMORY.GROW`_instr{memidx#32}(x), `%->_%%`_instrtype{resulttype#1855, `localidx*#1115`}(`%`_resulttype{`X*#8250`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8318`}([(at : addrtype <: valtype)]))) + -- if (C.`MEMS`_context{`memtype*#8`}[x!`%`_idx{i#7799}.0] = `%%PAGE`_memtype{addrtype#573, limits#573}(at, lim)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:424.1-426.32 - rule memory.fill{C : context, x : idx, at : addrtype, lim : limits}: - `%|-%:%`(C, MEMORY.FILL_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) I32_valtype (at : addrtype <: valtype)]), [], `%`_resulttype([]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule memory.fill{C : context, memidx#34 : memidx, x : idx, resulttype#1875 : resulttype, `localidx*#1127` : localidx*, `X*#8339` : valtype*, at : addrtype, `X*#8388` : valtype*, `memtype*#9` : memtype*, i#7823 : nat, addrtype#585 : addrtype, limits#585 : limits, lim : limits}: + `%|-%:%`(C, `MEMORY.FILL`_instr{memidx#34}(x), `%->_%%`_instrtype{resulttype#1875, `localidx*#1127`}(`%`_resulttype{`X*#8339`}([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8388`}([]))) + -- if (C.`MEMS`_context{`memtype*#9`}[x!`%`_idx{i#7823}.0] = `%%PAGE`_memtype{addrtype#585, limits#585}(at, lim)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:428.1-431.38 - rule memory.copy{C : context, x_1 : idx, x_2 : idx, at_1 : addrtype, at_2 : addrtype, lim_1 : limits, lim_2 : limits}: - `%|-%:%`(C, MEMORY.COPY_instr(x_1, x_2), `%->_%%`_instrtype(`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))) - -- if (C.MEMS_context[x_1!`%`_idx.0] = `%%PAGE`_memtype(at_1, lim_1)) - -- if (C.MEMS_context[x_2!`%`_idx.0] = `%%PAGE`_memtype(at_2, lim_2)) + rule memory.copy{C : context, memidx#36 : memidx, x_1 : idx, x_2 : idx, resulttype#1895 : resulttype, `localidx*#1139` : localidx*, `X*#8409` : valtype*, at_1 : addrtype, at_2 : addrtype, `X*#8458` : valtype*, `memtype*#10` : memtype*, i#7861 : nat, addrtype#597 : addrtype, limits#597 : limits, lim_1 : limits, `memtype*#11` : memtype*, i#7871 : nat, addrtype#609 : addrtype, limits#609 : limits, lim_2 : limits}: + `%|-%:%`(C, `MEMORY.COPY`_instr{memidx#36}(x_1, x_2), `%->_%%`_instrtype{resulttype#1895, `localidx*#1139`}(`%`_resulttype{`X*#8409`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype{`X*#8458`}([]))) + -- if (C.`MEMS`_context{`memtype*#10`}[x_1!`%`_idx{i#7861}.0] = `%%PAGE`_memtype{addrtype#597, limits#597}(at_1, lim_1)) + -- if (C.`MEMS`_context{`memtype*#11`}[x_2!`%`_idx{i#7871}.0] = `%%PAGE`_memtype{addrtype#609, limits#609}(at_2, lim_2)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:433.1-436.24 - rule memory.init{C : context, x : idx, y : idx, at : addrtype, lim : limits}: - `%|-%:%`(C, MEMORY.INIT_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) I32_valtype I32_valtype]), [], `%`_resulttype([]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) - -- if (C.DATAS_context[y!`%`_idx.0] = OK_datatype) + rule memory.init{C : context, memidx#39 : memidx, dataidx#13 : dataidx, x : idx, y : idx, resulttype#1915 : resulttype, `localidx*#1151` : localidx*, `X*#8479` : valtype*, at : addrtype, `X*#8528` : valtype*, `memtype*#12` : memtype*, i#7909 : nat, addrtype#621 : addrtype, limits#621 : limits, lim : limits, `datatype*#9` : datatype*, i#7919 : nat}: + `%|-%:%`(C, `MEMORY.INIT`_instr{memidx#39, dataidx#13}(x, y), `%->_%%`_instrtype{resulttype#1915, `localidx*#1151`}(`%`_resulttype{`X*#8479`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#8528`}([]))) + -- if (C.`MEMS`_context{`memtype*#12`}[x!`%`_idx{i#7909}.0] = `%%PAGE`_memtype{addrtype#621, limits#621}(at, lim)) + -- if (C.`DATAS`_context{`datatype*#9`}[y!`%`_idx{i#7919}.0] = `OK`_datatype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:438.1-440.24 - rule data.drop{C : context, x : idx}: - `%|-%:%`(C, DATA.DROP_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))) - -- if (C.DATAS_context[x!`%`_idx.0] = OK_datatype) + rule data.drop{C : context, dataidx#15 : dataidx, x : idx, resulttype#1935 : resulttype, `localidx*#1163` : localidx*, `X*#8549` : valtype*, `X*#8598` : valtype*, `datatype*#10` : datatype*, i#7943 : nat}: + `%|-%:%`(C, `DATA.DROP`_instr{dataidx#15}(x), `%->_%%`_instrtype{resulttype#1935, `localidx*#1163`}(`%`_resulttype{`X*#8549`}([]), [], `%`_resulttype{`X*#8598`}([]))) + -- if (C.`DATAS`_context{`datatype*#10`}[x!`%`_idx{i#7943}.0] = `OK`_datatype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:451.1-454.44 - rule `load-val`{C : context, nt : numtype, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, LOAD_instr(nt, ?(), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule `load-val`{C : context, `numtype?#3` : numtype?, memidx#41 : memidx, memarg#13 : memarg, nt : numtype, x : idx, memarg : memarg, resulttype#1955 : resulttype, `localidx*#1175` : localidx*, `X*#8609` : valtype*, at : addrtype, `X*#8677` : valtype*, `memtype*#13` : memtype*, i#7967 : nat, addrtype#633 : addrtype, limits#633 : limits, lim : limits}: + `%|-%:%`(C, `LOAD`_instr{`numtype?#3`, memidx#41, memarg#13}(nt, ?(), x, memarg), `%->_%%`_instrtype{resulttype#1955, `localidx*#1175`}(`%`_resulttype{`X*#8609`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8677`}([(nt : numtype <: valtype)]))) + -- if (C.`MEMS`_context{`memtype*#13`}[x!`%`_idx{i#7967}.0] = `%%PAGE`_memtype{addrtype#633, limits#633}(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, $size(nt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:456.1-459.36 - rule `load-pack`{C : context, Inn : Inn, M : M, sx : sx, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, LOAD_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(M), sx)), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(Inn : Inn <: valtype)]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule `load-pack`{C : context, `numtype?#4` : numtype?, memidx#43 : memidx, memarg#15 : memarg, Inn : Inn, sz#5 : sz, sx#7 : sx, i#7993 : nat, i#8000 : nat, M : M, sx : sx, x : idx, memarg : memarg, resulttype#1975 : resulttype, `localidx*#1187` : localidx*, `X*#8688` : valtype*, at : addrtype, `X*#8756` : valtype*, `memtype*#14` : memtype*, i#8024 : nat, addrtype#645 : addrtype, limits#645 : limits, lim : limits}: + `%|-%:%`(C, `LOAD`_instr{`numtype?#4`, memidx#43, memarg#15}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#5, sx#7, i#7993}(`%`_sz{i#8000}(M), sx)), x, memarg), `%->_%%`_instrtype{resulttype#1975, `localidx*#1187`}(`%`_resulttype{`X*#8688`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8756`}([(Inn : Inn <: valtype)]))) + -- if (C.`MEMS`_context{`memtype*#14`}[x!`%`_idx{i#8024}.0] = `%%PAGE`_memtype{addrtype#645, limits#645}(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, M) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:470.1-473.44 - rule `store-val`{C : context, nt : numtype, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, STORE_instr(nt, ?(), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule `store-val`{C : context, `numtype?#5` : numtype?, memidx#45 : memidx, memarg#17 : memarg, nt : numtype, x : idx, memarg : memarg, resulttype#1995 : resulttype, `localidx*#1199` : localidx*, `X*#8777` : valtype*, at : addrtype, `X*#8826` : valtype*, `memtype*#15` : memtype*, i#8048 : nat, addrtype#657 : addrtype, limits#657 : limits, lim : limits}: + `%|-%:%`(C, `STORE`_instr{`numtype?#5`, memidx#45, memarg#17}(nt, ?(), x, memarg), `%->_%%`_instrtype{resulttype#1995, `localidx*#1199`}(`%`_resulttype{`X*#8777`}([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#8826`}([]))) + -- if (C.`MEMS`_context{`memtype*#15`}[x!`%`_idx{i#8048}.0] = `%%PAGE`_memtype{addrtype#657, limits#657}(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, $size(nt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:475.1-478.36 - rule `store-pack`{C : context, Inn : Inn, M : M, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, STORE_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(M))), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype([]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule `store-pack`{C : context, `numtype?#6` : numtype?, memidx#47 : memidx, memarg#19 : memarg, Inn : Inn, sz#7 : sz, i#8091 : nat, i#8092 : nat, M : M, x : idx, memarg : memarg, resulttype#2015 : resulttype, `localidx*#1211` : localidx*, `X*#8847` : valtype*, at : addrtype, `X*#8896` : valtype*, `memtype*#16` : memtype*, i#8116 : nat, addrtype#669 : addrtype, limits#669 : limits, lim : limits}: + `%|-%:%`(C, `STORE`_instr{`numtype?#6`, memidx#47, memarg#19}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#7, i#8091}(`%`_sz{i#8092}(M))), x, memarg), `%->_%%`_instrtype{resulttype#2015, `localidx*#1211`}(`%`_resulttype{`X*#8847`}([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype{`X*#8896`}([]))) + -- if (C.`MEMS`_context{`memtype*#16`}[x!`%`_idx{i#8116}.0] = `%%PAGE`_memtype{addrtype#669, limits#669}(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, M) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:480.1-483.47 - rule `vload-val`{C : context, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, VLOAD_instr(V128_vectype, ?(), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([V128_valtype]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) - -- Memarg_ok: `|-%:%->%`(memarg, at, $vsize(V128_vectype)) + rule `vload-val`{C : context, `vectype?#2` : vectype?, memidx#49 : memidx, memarg#21 : memarg, x : idx, memarg : memarg, resulttype#2035 : resulttype, `localidx*#1223` : localidx*, `X*#8907` : valtype*, at : addrtype, `X*#8975` : valtype*, `memtype*#17` : memtype*, i#8140 : nat, addrtype#681 : addrtype, limits#681 : limits, lim : limits}: + `%|-%:%`(C, `VLOAD`_instr{`vectype?#2`, memidx#49, memarg#21}(`V128`_vectype, ?(), x, memarg), `%->_%%`_instrtype{resulttype#2035, `localidx*#1223`}(`%`_resulttype{`X*#8907`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8975`}([`V128`_valtype]))) + -- if (C.`MEMS`_context{`memtype*#17`}[x!`%`_idx{i#8140}.0] = `%%PAGE`_memtype{addrtype#681, limits#681}(at, lim)) + -- Memarg_ok: `|-%:%->%`(memarg, at, $vsize(`V128`_vectype)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:485.1-488.41 - rule `vload-pack`{C : context, M : M, N : N, sx : sx, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), N, sx)), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([V128_valtype]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule `vload-pack`{C : context, `vectype?#3` : vectype?, memidx#51 : memidx, memarg#23 : memarg, sz#54 : sz, M#16 : M, sx#24 : sx, i#8166 : nat, i#8173 : nat, M : M, N : N, sx : sx, x : idx, memarg : memarg, resulttype#2055 : resulttype, `localidx*#1235` : localidx*, `X*#8986` : valtype*, at : addrtype, `X*#9054` : valtype*, `memtype*#18` : memtype*, i#8197 : nat, addrtype#693 : addrtype, limits#693 : limits, lim : limits}: + `%|-%:%`(C, `VLOAD`_instr{`vectype?#3`, memidx#51, memarg#23}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#54, M#16, sx#24, i#8166}(`%`_sz{i#8173}(M), N, sx)), x, memarg), `%->_%%`_instrtype{resulttype#2055, `localidx*#1235`}(`%`_resulttype{`X*#8986`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9054`}([`V128`_valtype]))) + -- if (C.`MEMS`_context{`memtype*#18`}[x!`%`_idx{i#8197}.0] = `%%PAGE`_memtype{addrtype#693, limits#693}(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, (M * N)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:490.1-493.36 - rule `vload-splat`{C : context, N : N, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(N))), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([V128_valtype]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule `vload-splat`{C : context, `vectype?#4` : vectype?, memidx#53 : memidx, memarg#25 : memarg, sz#101 : sz, i#8229 : nat, N : N, x : idx, memarg : memarg, resulttype#2075 : resulttype, `localidx*#1247` : localidx*, `X*#9065` : valtype*, at : addrtype, `X*#9133` : valtype*, `memtype*#19` : memtype*, i#8253 : nat, addrtype#705 : addrtype, limits#705 : limits, lim : limits}: + `%|-%:%`(C, `VLOAD`_instr{`vectype?#4`, memidx#53, memarg#25}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#101}(`%`_sz{i#8229}(N))), x, memarg), `%->_%%`_instrtype{resulttype#2075, `localidx*#1247`}(`%`_resulttype{`X*#9065`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9133`}([`V128`_valtype]))) + -- if (C.`MEMS`_context{`memtype*#19`}[x!`%`_idx{i#8253}.0] = `%%PAGE`_memtype{addrtype#705, limits#705}(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, N) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:495.1-498.36 - rule `vload-zero`{C : context, N : N, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(N))), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([V128_valtype]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule `vload-zero`{C : context, `vectype?#5` : vectype?, memidx#55 : memidx, memarg#27 : memarg, sz#148 : sz, i#8279 : nat, i#8286 : nat, N : N, x : idx, memarg : memarg, resulttype#2095 : resulttype, `localidx*#1259` : localidx*, `X*#9144` : valtype*, at : addrtype, `X*#9212` : valtype*, `memtype*#20` : memtype*, i#8310 : nat, addrtype#717 : addrtype, limits#717 : limits, lim : limits}: + `%|-%:%`(C, `VLOAD`_instr{`vectype?#5`, memidx#55, memarg#27}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#148, i#8279}(`%`_sz{i#8286}(N))), x, memarg), `%->_%%`_instrtype{resulttype#2095, `localidx*#1259`}(`%`_resulttype{`X*#9144`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9212`}([`V128`_valtype]))) + -- if (C.`MEMS`_context{`memtype*#20`}[x!`%`_idx{i#8310}.0] = `%%PAGE`_memtype{addrtype#717, limits#717}(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, N) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:500.1-504.21 - rule vload_lane{C : context, N : N, x : idx, memarg : memarg, i : laneidx, at : addrtype, lim : limits}: - `%|-%:%`(C, VLOAD_LANE_instr(V128_vectype, `%`_sz(N), x, memarg, i), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) V128_valtype]), [], `%`_resulttype([V128_valtype]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule vload_lane{C : context, vectype#24 : vectype, sz#150 : sz, memidx#57 : memidx, memarg#29 : memarg, laneidx#9 : laneidx, i#8318 : nat, N : N, x : idx, memarg : memarg, i : laneidx, resulttype#2115 : resulttype, `localidx*#1271` : localidx*, `X*#9233` : valtype*, at : addrtype, `X*#9282` : valtype*, `memtype*#21` : memtype*, i#8356 : nat, addrtype#729 : addrtype, limits#729 : limits, lim : limits, i#8370 : nat}: + `%|-%:%`(C, `VLOAD_LANE`_instr{vectype#24, sz#150, memidx#57, memarg#29, laneidx#9}(`V128`_vectype, `%`_sz{i#8318}(N), x, memarg, i), `%->_%%`_instrtype{resulttype#2115, `localidx*#1271`}(`%`_resulttype{`X*#9233`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9282`}([`V128`_valtype]))) + -- if (C.`MEMS`_context{`memtype*#21`}[x!`%`_idx{i#8356}.0] = `%%PAGE`_memtype{addrtype#729, limits#729}(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, N) - -- if ((i!`%`_laneidx.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat))) + -- if ((i!`%`_laneidx{i#8370}.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:506.1-509.47 - rule vstore{C : context, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, VSTORE_instr(V128_vectype, x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) V128_valtype]), [], `%`_resulttype([]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) - -- Memarg_ok: `|-%:%->%`(memarg, at, $vsize(V128_vectype)) + rule vstore{C : context, vectype#26 : vectype, memidx#59 : memidx, memarg#31 : memarg, x : idx, memarg : memarg, resulttype#2135 : resulttype, `localidx*#1283` : localidx*, `X*#9303` : valtype*, at : addrtype, `X*#9352` : valtype*, `memtype*#22` : memtype*, i#8394 : nat, addrtype#741 : addrtype, limits#741 : limits, lim : limits}: + `%|-%:%`(C, `VSTORE`_instr{vectype#26, memidx#59, memarg#31}(`V128`_vectype, x, memarg), `%->_%%`_instrtype{resulttype#2135, `localidx*#1283`}(`%`_resulttype{`X*#9303`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9352`}([]))) + -- if (C.`MEMS`_context{`memtype*#22`}[x!`%`_idx{i#8394}.0] = `%%PAGE`_memtype{addrtype#741, limits#741}(at, lim)) + -- Memarg_ok: `|-%:%->%`(memarg, at, $vsize(`V128`_vectype)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:511.1-515.21 - rule vstore_lane{C : context, N : N, x : idx, memarg : memarg, i : laneidx, at : addrtype, lim : limits}: - `%|-%:%`(C, VSTORE_LANE_instr(V128_vectype, `%`_sz(N), x, memarg, i), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) V128_valtype]), [], `%`_resulttype([]))) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule vstore_lane{C : context, vectype#28 : vectype, sz#152 : sz, memidx#61 : memidx, memarg#33 : memarg, laneidx#11 : laneidx, i#8402 : nat, N : N, x : idx, memarg : memarg, i : laneidx, resulttype#2155 : resulttype, `localidx*#1295` : localidx*, `X*#9373` : valtype*, at : addrtype, `X*#9422` : valtype*, `memtype*#23` : memtype*, i#8440 : nat, addrtype#753 : addrtype, limits#753 : limits, lim : limits, i#8454 : nat}: + `%|-%:%`(C, `VSTORE_LANE`_instr{vectype#28, sz#152, memidx#61, memarg#33, laneidx#11}(`V128`_vectype, `%`_sz{i#8402}(N), x, memarg, i), `%->_%%`_instrtype{resulttype#2155, `localidx*#1295`}(`%`_resulttype{`X*#9373`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9422`}([]))) + -- if (C.`MEMS`_context{`memtype*#23`}[x!`%`_idx{i#8440}.0] = `%%PAGE`_memtype{addrtype#753, limits#753}(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, N) - -- if ((i!`%`_laneidx.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat))) + -- if ((i!`%`_laneidx{i#8454}.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:520.1-521.33 - rule const{C : context, nt : numtype, c_nt : num_(nt)}: - `%|-%:%`(C, CONST_instr(nt, c_nt), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(nt : numtype <: valtype)]))) + rule const{C : context, numtype#19 : numtype, nt : numtype, c_nt : num_(nt), resulttype#2175 : resulttype, `localidx*#1307` : localidx*, `X*#9443` : valtype*, `X*#9492` : valtype*}: + `%|-%:%`(C, `CONST`_instr{numtype#19}(nt, c_nt), `%->_%%`_instrtype{resulttype#2175, `localidx*#1307`}(`%`_resulttype{`X*#9443`}([]), [], `%`_resulttype{`X*#9492`}([(nt : numtype <: valtype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:523.1-524.34 - rule unop{C : context, nt : numtype, unop_nt : unop_(nt)}: - `%|-%:%`(C, UNOP_instr(nt, unop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))) + rule unop{C : context, numtype#21 : numtype, nt : numtype, unop_nt : unop_(nt), resulttype#2195 : resulttype, `localidx*#1319` : localidx*, `X*#9503` : valtype*, `X*#9571` : valtype*}: + `%|-%:%`(C, `UNOP`_instr{numtype#21}(nt, unop_nt), `%->_%%`_instrtype{resulttype#2195, `localidx*#1319`}(`%`_resulttype{`X*#9503`}([(nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9571`}([(nt : numtype <: valtype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:526.1-527.39 - rule binop{C : context, nt : numtype, binop_nt : binop_(nt)}: - `%|-%:%`(C, BINOP_instr(nt, binop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))) + rule binop{C : context, numtype#23 : numtype, nt : numtype, binop_nt : binop_(nt), resulttype#2215 : resulttype, `localidx*#1331` : localidx*, `X*#9592` : valtype*, `X*#9641` : valtype*}: + `%|-%:%`(C, `BINOP`_instr{numtype#23}(nt, binop_nt), `%->_%%`_instrtype{resulttype#2215, `localidx*#1331`}(`%`_resulttype{`X*#9592`}([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9641`}([(nt : numtype <: valtype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:529.1-530.39 - rule testop{C : context, nt : numtype, testop_nt : testop_(nt)}: - `%|-%:%`(C, TESTOP_instr(nt, testop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([I32_valtype]))) + rule testop{C : context, numtype#25 : numtype, nt : numtype, testop_nt : testop_(nt), resulttype#2235 : resulttype, `localidx*#1343` : localidx*, `X*#9652` : valtype*, `X*#9720` : valtype*}: + `%|-%:%`(C, `TESTOP`_instr{numtype#25}(nt, testop_nt), `%->_%%`_instrtype{resulttype#2235, `localidx*#1343`}(`%`_resulttype{`X*#9652`}([(nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9720`}([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:532.1-533.40 - rule relop{C : context, nt : numtype, relop_nt : relop_(nt)}: - `%|-%:%`(C, RELOP_instr(nt, relop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([I32_valtype]))) + rule relop{C : context, numtype#27 : numtype, nt : numtype, relop_nt : relop_(nt), resulttype#2255 : resulttype, `localidx*#1355` : localidx*, `X*#9741` : valtype*, `X*#9790` : valtype*}: + `%|-%:%`(C, `RELOP`_instr{numtype#27}(nt, relop_nt), `%->_%%`_instrtype{resulttype#2255, `localidx*#1355`}(`%`_resulttype{`X*#9741`}([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9790`}([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:535.1-536.44 - rule cvtop{C : context, nt_1 : numtype, nt_2 : numtype, cvtop : cvtop__(nt_2, nt_1)}: - `%|-%:%`(C, CVTOP_instr(nt_1, nt_2, cvtop), `%->_%%`_instrtype(`%`_resulttype([(nt_2 : numtype <: valtype)]), [], `%`_resulttype([(nt_1 : numtype <: valtype)]))) + rule cvtop{C : context, numtype_1#3 : numtype, numtype_2#3 : numtype, nt_1 : numtype, nt_2 : numtype, cvtop : cvtop__(nt_2, nt_1), resulttype#2275 : resulttype, `localidx*#1367` : localidx*, `X*#9801` : valtype*, `X*#9869` : valtype*}: + `%|-%:%`(C, `CVTOP`_instr{numtype_1#3, numtype_2#3}(nt_1, nt_2, cvtop), `%->_%%`_instrtype{resulttype#2275, `localidx*#1367`}(`%`_resulttype{`X*#9801`}([(nt_2 : numtype <: valtype)]), [], `%`_resulttype{`X*#9869`}([(nt_1 : numtype <: valtype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:541.1-542.35 - rule vconst{C : context, c : vec_(V128_Vnn)}: - `%|-%:%`(C, VCONST_instr(V128_vectype, c), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([V128_valtype]))) + rule vconst{C : context, vectype#30 : vectype, c : vec_(`V128`_Vnn), resulttype#2295 : resulttype, `localidx*#1379` : localidx*, `X*#9890` : valtype*, `X*#9939` : valtype*}: + `%|-%:%`(C, `VCONST`_instr{vectype#30}(`V128`_vectype, c), `%->_%%`_instrtype{resulttype#2295, `localidx*#1379`}(`%`_resulttype{`X*#9890`}([]), [], `%`_resulttype{`X*#9939`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:544.1-545.41 - rule vvunop{C : context, vvunop : vvunop}: - `%|-%:%`(C, VVUNOP_instr(V128_vectype, vvunop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vvunop{C : context, vectype#32 : vectype, vvunop#3 : vvunop, vvunop : vvunop, resulttype#2315 : resulttype, `localidx*#1391` : localidx*, `X*#9958` : valtype*, `X*#10007` : valtype*}: + `%|-%:%`(C, `VVUNOP`_instr{vectype#32, vvunop#3}(`V128`_vectype, vvunop), `%->_%%`_instrtype{resulttype#2315, `localidx*#1391`}(`%`_resulttype{`X*#9958`}([`V128`_valtype]), [], `%`_resulttype{`X*#10007`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:547.1-548.48 - rule vvbinop{C : context, vvbinop : vvbinop}: - `%|-%:%`(C, VVBINOP_instr(V128_vectype, vvbinop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vvbinop{C : context, vectype#34 : vectype, vvbinop#3 : vvbinop, vvbinop : vvbinop, resulttype#2335 : resulttype, `localidx*#1403` : localidx*, `X*#10028` : valtype*, `X*#10077` : valtype*}: + `%|-%:%`(C, `VVBINOP`_instr{vectype#34, vvbinop#3}(`V128`_vectype, vvbinop), `%->_%%`_instrtype{resulttype#2335, `localidx*#1403`}(`%`_resulttype{`X*#10028`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10077`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:550.1-551.55 - rule vvternop{C : context, vvternop : vvternop}: - `%|-%:%`(C, VVTERNOP_instr(V128_vectype, vvternop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vvternop{C : context, vectype#36 : vectype, vvternop#3 : vvternop, vvternop : vvternop, resulttype#2355 : resulttype, `localidx*#1415` : localidx*, `X*#10098` : valtype*, `X*#10147` : valtype*}: + `%|-%:%`(C, `VVTERNOP`_instr{vectype#36, vvternop#3}(`V128`_vectype, vvternop), `%->_%%`_instrtype{resulttype#2355, `localidx*#1415`}(`%`_resulttype{`X*#10098`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10147`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:553.1-554.44 - rule vvtestop{C : context, vvtestop : vvtestop}: - `%|-%:%`(C, VVTESTOP_instr(V128_vectype, vvtestop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([I32_valtype]))) + rule vvtestop{C : context, vectype#38 : vectype, vvtestop#3 : vvtestop, vvtestop : vvtestop, resulttype#2375 : resulttype, `localidx*#1427` : localidx*, `X*#10166` : valtype*, `X*#10215` : valtype*}: + `%|-%:%`(C, `VVTESTOP`_instr{vectype#38, vvtestop#3}(`V128`_vectype, vvtestop), `%->_%%`_instrtype{resulttype#2375, `localidx*#1427`}(`%`_resulttype{`X*#10166`}([`V128`_valtype]), [], `%`_resulttype{`X*#10215`}([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:556.1-557.37 - rule vunop{C : context, sh : shape, vunop : vunop_(sh)}: - `%|-%:%`(C, VUNOP_instr(sh, vunop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vunop{C : context, shape#269 : shape, sh : shape, vunop : vunop_(sh), resulttype#2395 : resulttype, `localidx*#1439` : localidx*, `X*#10234` : valtype*, `X*#10283` : valtype*}: + `%|-%:%`(C, `VUNOP`_instr{shape#269}(sh, vunop), `%->_%%`_instrtype{resulttype#2395, `localidx*#1439`}(`%`_resulttype{`X*#10234`}([`V128`_valtype]), [], `%`_resulttype{`X*#10283`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:559.1-560.44 - rule vbinop{C : context, sh : shape, vbinop : vbinop_(sh)}: - `%|-%:%`(C, VBINOP_instr(sh, vbinop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vbinop{C : context, shape#271 : shape, sh : shape, vbinop : vbinop_(sh), resulttype#2415 : resulttype, `localidx*#1451` : localidx*, `X*#10304` : valtype*, `X*#10353` : valtype*}: + `%|-%:%`(C, `VBINOP`_instr{shape#271}(sh, vbinop), `%->_%%`_instrtype{resulttype#2415, `localidx*#1451`}(`%`_resulttype{`X*#10304`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10353`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:562.1-563.51 - rule vternop{C : context, sh : shape, vternop : vternop_(sh)}: - `%|-%:%`(C, VTERNOP_instr(sh, vternop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vternop{C : context, shape#273 : shape, sh : shape, vternop : vternop_(sh), resulttype#2435 : resulttype, `localidx*#1463` : localidx*, `X*#10374` : valtype*, `X*#10423` : valtype*}: + `%|-%:%`(C, `VTERNOP`_instr{shape#273}(sh, vternop), `%->_%%`_instrtype{resulttype#2435, `localidx*#1463`}(`%`_resulttype{`X*#10374`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10423`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:565.1-566.40 - rule vtestop{C : context, sh : shape, vtestop : vtestop_(sh)}: - `%|-%:%`(C, VTESTOP_instr(sh, vtestop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([I32_valtype]))) + rule vtestop{C : context, shape#275 : shape, sh : shape, vtestop : vtestop_(sh), resulttype#2455 : resulttype, `localidx*#1475` : localidx*, `X*#10442` : valtype*, `X*#10491` : valtype*}: + `%|-%:%`(C, `VTESTOP`_instr{shape#275}(sh, vtestop), `%->_%%`_instrtype{resulttype#2455, `localidx*#1475`}(`%`_resulttype{`X*#10442`}([`V128`_valtype]), [], `%`_resulttype{`X*#10491`}([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:568.1-569.44 - rule vrelop{C : context, sh : shape, vrelop : vrelop_(sh)}: - `%|-%:%`(C, VRELOP_instr(sh, vrelop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vrelop{C : context, shape#277 : shape, sh : shape, vrelop : vrelop_(sh), resulttype#2475 : resulttype, `localidx*#1487` : localidx*, `X*#10512` : valtype*, `X*#10561` : valtype*}: + `%|-%:%`(C, `VRELOP`_instr{shape#277}(sh, vrelop), `%->_%%`_instrtype{resulttype#2475, `localidx*#1487`}(`%`_resulttype{`X*#10512`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10561`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:571.1-572.47 - rule vshiftop{C : context, sh : ishape, vshiftop : vshiftop_(sh)}: - `%|-%:%`(C, VSHIFTOP_instr(sh, vshiftop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype I32_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vshiftop{C : context, ishape#5 : ishape, sh : ishape, vshiftop : vshiftop_(sh), resulttype#2495 : resulttype, `localidx*#1499` : localidx*, `X*#10582` : valtype*, `X*#10631` : valtype*}: + `%|-%:%`(C, `VSHIFTOP`_instr{ishape#5}(sh, vshiftop), `%->_%%`_instrtype{resulttype#2495, `localidx*#1499`}(`%`_resulttype{`X*#10582`}([`V128`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#10631`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:574.1-575.33 - rule vbitmask{C : context, sh : ishape}: - `%|-%:%`(C, VBITMASK_instr(sh), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([I32_valtype]))) + rule vbitmask{C : context, ishape#7 : ishape, sh : ishape, resulttype#2515 : resulttype, `localidx*#1511` : localidx*, `X*#10650` : valtype*, `X*#10699` : valtype*}: + `%|-%:%`(C, `VBITMASK`_instr{ishape#7}(sh), `%->_%%`_instrtype{resulttype#2515, `localidx*#1511`}(`%`_resulttype{`X*#10650`}([`V128`_valtype]), [], `%`_resulttype{`X*#10699`}([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:577.1-578.50 - rule vswizzlop{C : context, sh : bshape, vswizzlop : vswizzlop_(sh)}: - `%|-%:%`(C, VSWIZZLOP_instr(sh, vswizzlop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vswizzlop{C : context, bshape#5 : bshape, sh : bshape, vswizzlop : vswizzlop_(sh), resulttype#2535 : resulttype, `localidx*#1523` : localidx*, `X*#10720` : valtype*, `X*#10769` : valtype*}: + `%|-%:%`(C, `VSWIZZLOP`_instr{bshape#5}(sh, vswizzlop), `%->_%%`_instrtype{resulttype#2535, `localidx*#1523`}(`%`_resulttype{`X*#10720`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10769`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:580.1-582.29 - rule vshuffle{C : context, sh : bshape, `i*` : laneidx*}: - `%|-%:%`(C, VSHUFFLE_instr(sh, i*{i <- `i*`}), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) - -- (if (i!`%`_laneidx.0 < (2 * $dim(sh!`%`_bshape.0)!`%`_dim.0)))*{i <- `i*`} + rule vshuffle{C : context, bshape#7 : bshape, `laneidx*#3` : laneidx*, i#8480 : nat, shape#297 : shape, sh : bshape, `i*` : laneidx*, resulttype#2555 : resulttype, `localidx*#1535` : localidx*, `X*#10790` : valtype*, `X*#10839` : valtype*, `i#8509*` : nat*, `i#8523*` : nat*, `shape#304*` : shape*}: + `%|-%:%`(C, `VSHUFFLE`_instr{bshape#7, `laneidx*#3`, i#8480, shape#297}(sh, i*{i <- `i*`}), `%->_%%`_instrtype{resulttype#2555, `localidx*#1535`}(`%`_resulttype{`X*#10790`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10839`}([`V128`_valtype]))) + -- (if (i!`%`_laneidx{i#8523}.0 < (2 * $dim(sh!`%`_bshape{shape#304}.0)!`%`_dim{i#8509}.0)))*{i <- `i*`, i#8509 <- `i#8509*`, i#8523 <- `i#8523*`, shape#304 <- `shape#304*`} ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:584.1-585.44 - rule vsplat{C : context, sh : shape}: - `%|-%:%`(C, VSPLAT_instr(sh), `%->_%%`_instrtype(`%`_resulttype([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([V128_valtype]))) + rule vsplat{C : context, shape#306 : shape, sh : shape, resulttype#2575 : resulttype, `localidx*#1547` : localidx*, `X*#10850` : valtype*, `X*#10916` : valtype*}: + `%|-%:%`(C, `VSPLAT`_instr{shape#306}(sh), `%->_%%`_instrtype{resulttype#2575, `localidx*#1547`}(`%`_resulttype{`X*#10850`}([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype{`X*#10916`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:587.1-589.21 - rule vextract_lane{C : context, sh : shape, `sx?` : sx?, i : laneidx}: - `%|-%:%`(C, VEXTRACT_LANE_instr(sh, sx?{sx <- `sx?`}, i), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([($unpackshape(sh) : numtype <: valtype)]))) - -- if (i!`%`_laneidx.0 < $dim(sh)!`%`_dim.0) + rule vextract_lane{C : context, shape#308 : shape, `sx?#11` : sx?, laneidx#13 : laneidx, sh : shape, `sx?` : sx?, i : laneidx, resulttype#2595 : resulttype, `localidx*#1559` : localidx*, `X*#10935` : valtype*, `X*#10984` : valtype*, i#8600 : nat, i#8602 : nat}: + `%|-%:%`(C, `VEXTRACT_LANE`_instr{shape#308, `sx?#11`, laneidx#13}(sh, sx?{sx <- `sx?`}, i), `%->_%%`_instrtype{resulttype#2595, `localidx*#1559`}(`%`_resulttype{`X*#10935`}([`V128`_valtype]), [], `%`_resulttype{`X*#10984`}([($unpackshape(sh) : numtype <: valtype)]))) + -- if (i!`%`_laneidx{i#8600}.0 < $dim(sh)!`%`_dim{i#8602}.0) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:591.1-593.21 - rule vreplace_lane{C : context, sh : shape, i : laneidx}: - `%|-%:%`(C, VREPLACE_LANE_instr(sh, i), `%->_%%`_instrtype(`%`_resulttype([V128_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([V128_valtype]))) - -- if (i!`%`_laneidx.0 < $dim(sh)!`%`_dim.0) + rule vreplace_lane{C : context, shape#310 : shape, laneidx#15 : laneidx, sh : shape, i : laneidx, resulttype#2615 : resulttype, `localidx*#1571` : localidx*, `X*#11005` : valtype*, `X*#11054` : valtype*, i#8636 : nat, i#8638 : nat}: + `%|-%:%`(C, `VREPLACE_LANE`_instr{shape#310, laneidx#15}(sh, i), `%->_%%`_instrtype{resulttype#2615, `localidx*#1571`}(`%`_resulttype{`X*#11005`}([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype{`X*#11054`}([`V128`_valtype]))) + -- if (i!`%`_laneidx{i#8636}.0 < $dim(sh)!`%`_dim{i#8638}.0) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:595.1-596.50 - rule vextunop{C : context, sh_1 : ishape, sh_2 : ishape, vextunop : vextunop__(sh_2, sh_1)}: - `%|-%:%`(C, VEXTUNOP_instr(sh_1, sh_2, vextunop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vextunop{C : context, ishape_1#9 : ishape, ishape_2#9 : ishape, sh_1 : ishape, sh_2 : ishape, vextunop : vextunop__(sh_2, sh_1), resulttype#2635 : resulttype, `localidx*#1583` : localidx*, `X*#11073` : valtype*, `X*#11122` : valtype*}: + `%|-%:%`(C, `VEXTUNOP`_instr{ishape_1#9, ishape_2#9}(sh_1, sh_2, vextunop), `%->_%%`_instrtype{resulttype#2635, `localidx*#1583`}(`%`_resulttype{`X*#11073`}([`V128`_valtype]), [], `%`_resulttype{`X*#11122`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:598.1-599.57 - rule vextbinop{C : context, sh_1 : ishape, sh_2 : ishape, vextbinop : vextbinop__(sh_2, sh_1)}: - `%|-%:%`(C, VEXTBINOP_instr(sh_1, sh_2, vextbinop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vextbinop{C : context, ishape_1#11 : ishape, ishape_2#11 : ishape, sh_1 : ishape, sh_2 : ishape, vextbinop : vextbinop__(sh_2, sh_1), resulttype#2655 : resulttype, `localidx*#1595` : localidx*, `X*#11143` : valtype*, `X*#11192` : valtype*}: + `%|-%:%`(C, `VEXTBINOP`_instr{ishape_1#11, ishape_2#11}(sh_1, sh_2, vextbinop), `%->_%%`_instrtype{resulttype#2655, `localidx*#1595`}(`%`_resulttype{`X*#11143`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11192`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:601.1-602.64 - rule vextternop{C : context, sh_1 : ishape, sh_2 : ishape, vextternop : vextternop__(sh_2, sh_1)}: - `%|-%:%`(C, VEXTTERNOP_instr(sh_1, sh_2, vextternop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vextternop{C : context, ishape_1#13 : ishape, ishape_2#13 : ishape, sh_1 : ishape, sh_2 : ishape, vextternop : vextternop__(sh_2, sh_1), resulttype#2675 : resulttype, `localidx*#1607` : localidx*, `X*#11213` : valtype*, `X*#11262` : valtype*}: + `%|-%:%`(C, `VEXTTERNOP`_instr{ishape_1#13, ishape_2#13}(sh_1, sh_2, vextternop), `%->_%%`_instrtype{resulttype#2675, `localidx*#1607`}(`%`_resulttype{`X*#11213`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11262`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:604.1-605.48 - rule vnarrow{C : context, sh_1 : ishape, sh_2 : ishape, sx : sx}: - `%|-%:%`(C, VNARROW_instr(sh_1, sh_2, sx), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vnarrow{C : context, ishape_1#15 : ishape, ishape_2#15 : ishape, sx#56 : sx, shape#348 : shape, Jnn#95 : Jnn, shape#349 : shape, Jnn#96 : Jnn, shape#350 : shape, Jnn#97 : Jnn, sh_1 : ishape, sh_2 : ishape, sx : sx, resulttype#2695 : resulttype, `localidx*#1619` : localidx*, `X*#11283` : valtype*, `X*#11332` : valtype*}: + `%|-%:%`(C, `VNARROW`_instr{ishape_1#15, ishape_2#15, sx#56, shape#348, Jnn#95, shape#349, Jnn#96, shape#350, Jnn#97}(sh_1, sh_2, sx), `%->_%%`_instrtype{resulttype#2695, `localidx*#1619`}(`%`_resulttype{`X*#11283`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11332`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:607.1-608.46 - rule vcvtop{C : context, sh_1 : shape, sh_2 : shape, vcvtop : vcvtop__(sh_2, sh_1)}: - `%|-%:%`(C, VCVTOP_instr(sh_1, sh_2, vcvtop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([V128_valtype]))) + rule vcvtop{C : context, shape_1#3 : shape, shape_2#3 : shape, sh_1 : shape, sh_2 : shape, vcvtop : vcvtop__(sh_2, sh_1), resulttype#2715 : resulttype, `localidx*#1631` : localidx*, `X*#11351` : valtype*, `X*#11400` : valtype*}: + `%|-%:%`(C, `VCVTOP`_instr{shape_1#3, shape_2#3}(sh_1, sh_2, vcvtop), `%->_%%`_instrtype{resulttype#2715, `localidx*#1631`}(`%`_resulttype{`X*#11351`}([`V128`_valtype]), [], `%`_resulttype{`X*#11400`}([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:6.1-6.96 relation Instrs_ok: `%|-%:%`(context, instr*, instrtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:613.1-614.24 - rule empty{C : context}: - `%|-%:%`(C, [], `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))) + rule empty{C : context, resulttype#2735 : resulttype, `localidx*#1643` : localidx*, `X*#11421` : valtype*, `X*#11470` : valtype*}: + `%|-%:%`(C, [], `%->_%%`_instrtype{resulttype#2735, `localidx*#1643`}(`%`_resulttype{`X*#11421`}([]), [], `%`_resulttype{`X*#11470`}([]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:617.1-621.82 - rule seq{C : context, instr_1 : instr, `instr_2*` : instr*, `t_1*` : valtype*, `x_1*` : idx*, `x_2*` : idx*, `t_3*` : valtype*, `t_2*` : valtype*, `init*` : init*, `t*` : valtype*}: - `%|-%:%`(C, [instr_1] ++ instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))) - -- Instr_ok: `%|-%:%`(C, instr_1, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- (if (C.LOCALS_context[x_1!`%`_idx.0] = `%%`_localtype(init, t)))*{init <- `init*`, t <- `t*`, x_1 <- `x_1*`} - -- Instrs_ok: `%|-%:%`($with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype(SET_init, t)*{t <- `t*`}), instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))) + rule seq{C : context, instr_1 : instr, `instr_2*` : instr*, resulttype#2755 : resulttype, `localidx*#1655` : localidx*, `X*#11481` : valtype*, `t_1*` : valtype*, `x_1*` : idx*, `x_2*` : idx*, `X*#11542` : valtype*, `t_3*` : valtype*, resulttype#2775 : resulttype, `localidx*#1667` : localidx*, `X*#11555` : valtype*, `X*#11607` : valtype*, `t_2*` : valtype*, `i#8868*` : nat*, `init*` : init*, `init#113*` : init*, `localtype*#13*` : localtype**, `t*` : valtype*, `valtype#403*` : valtype*, `init#131*` : init*, `valtype#421*` : valtype*, resulttype#2795 : resulttype, `localidx*#1679` : localidx*, `X*#11620` : valtype*, `X*#11672` : valtype*}: + `%|-%:%`(C, [instr_1] ++ instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype{resulttype#2755, `localidx*#1655`}(`%`_resulttype{`X*#11481`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11542`}(t_3*{t_3 <- `t_3*`}))) + -- Instr_ok: `%|-%:%`(C, instr_1, `%->_%%`_instrtype{resulttype#2775, `localidx*#1667`}(`%`_resulttype{`X*#11555`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#11607`}(t_2*{t_2 <- `t_2*`}))) + -- (if (C.`LOCALS`_context{`localtype*#13`}[x_1!`%`_idx{i#8868}.0] = `%%`_localtype{init#113, valtype#403}(init, t)))*{i#8868 <- `i#8868*`, init <- `init*`, init#113 <- `init#113*`, `localtype*#13` <- `localtype*#13*`, t <- `t*`, valtype#403 <- `valtype#403*`, x_1 <- `x_1*`} + -- Instrs_ok: `%|-%:%`($with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype{init#131, valtype#421}(`SET`_init, t)*{init#131 <- `init#131*`, t <- `t*`, valtype#421 <- `valtype#421*`}), instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype{resulttype#2795, `localidx*#1679`}(`%`_resulttype{`X*#11620`}(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11672`}(t_3*{t_3 <- `t_3*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:623.1-627.33 rule sub{C : context, `instr*` : instr*, it' : instrtype, it : instrtype}: @@ -3955,18 +115514,18 @@ relation Instrs_ok: `%|-%:%`(context, instr*, instrtype) -- Instrtype_ok: `%|-%:OK`(C, it') ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:630.1-633.33 - rule frame{C : context, `instr*` : instr*, `t*` : valtype*, `t_1*` : valtype*, `x*` : idx*, `t_2*` : valtype*}: - `%|-%:%`(C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`(C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype(t*{t <- `t*`})) + rule frame{C : context, `instr*` : instr*, resulttype#2865 : resulttype, `localidx*#1721` : localidx*, `X*#11695` : valtype*, `t*` : valtype*, `t_1*` : valtype*, `x*` : idx*, `X*#11755` : valtype*, `t_2*` : valtype*, resulttype#2885 : resulttype, `localidx*#1733` : localidx*, `X*#11766` : valtype*, `X*#11818` : valtype*, `X*#11831` : valtype*}: + `%|-%:%`(C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#2865, `localidx*#1721`}(`%`_resulttype{`X*#11695`}(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11755`}(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`(C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#2885, `localidx*#1733`}(`%`_resulttype{`X*#11766`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11818`}(t_2*{t_2 <- `t_2*`}))) + -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype{`X*#11831`}(t*{t <- `t*`})) } ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Expr_ok: `%|-%:%`(context, expr, resulttype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule _{C : context, `instr*` : instr*, `t*` : valtype*}: - `%|-%:%`(C, instr*{instr <- `instr*`}, `%`_resulttype(t*{t <- `t*`})) - -- Instrs_ok: `%|-%:%`(C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(t*{t <- `t*`}))) + rule _{C : context, `instr*` : instr*, `X*#11844` : valtype*, `t*` : valtype*, resulttype#2905 : resulttype, `localidx*#1745` : localidx*, `X*#11867` : valtype*, `X*#11911` : valtype*}: + `%|-%:%`(C, instr*{instr <- `instr*`}, `%`_resulttype{`X*#11844`}(t*{t <- `t*`})) + -- Instrs_ok: `%|-%:%`(C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#2905, `localidx*#1745`}(`%`_resulttype{`X*#11867`}([]), [], `%`_resulttype{`X*#11911`}(t*{t <- `t*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Nondefaultable: `|-%NONDEFAULTABLE`(valtype) @@ -3978,63 +115537,63 @@ relation Nondefaultable: `|-%NONDEFAULTABLE`(valtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Instr_const: `%|-%CONST`(context, instr) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule const{C : context, nt : numtype, c_nt : num_(nt)}: - `%|-%CONST`(C, CONST_instr(nt, c_nt)) + rule const{C : context, numtype#29 : numtype, nt : numtype, c_nt : num_(nt)}: + `%|-%CONST`(C, `CONST`_instr{numtype#29}(nt, c_nt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule vconst{C : context, vt : vectype, c_vt : vec_(vt)}: - `%|-%CONST`(C, VCONST_instr(vt, c_vt)) + rule vconst{C : context, vectype#40 : vectype, vt : vectype, c_vt : vec_(vt)}: + `%|-%CONST`(C, `VCONST`_instr{vectype#40}(vt, c_vt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule ref.null{C : context, ht : heaptype}: - `%|-%CONST`(C, REF.NULL_instr(ht)) + rule ref.null{C : context, heaptype#945 : heaptype, ht : heaptype}: + `%|-%CONST`(C, `REF.NULL`_instr{heaptype#945}(ht)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule ref.i31{C : context}: - `%|-%CONST`(C, REF.I31_instr) + `%|-%CONST`(C, `REF.I31`_instr) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule ref.func{C : context, x : idx}: - `%|-%CONST`(C, REF.FUNC_instr(x)) + rule ref.func{C : context, funcidx#183 : funcidx, x : idx}: + `%|-%CONST`(C, `REF.FUNC`_instr{funcidx#183}(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule struct.new{C : context, x : idx}: - `%|-%CONST`(C, STRUCT.NEW_instr(x)) + rule struct.new{C : context, typeidx#469 : typeidx, x : idx}: + `%|-%CONST`(C, `STRUCT.NEW`_instr{typeidx#469}(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule struct.new_default{C : context, x : idx}: - `%|-%CONST`(C, STRUCT.NEW_DEFAULT_instr(x)) + rule struct.new_default{C : context, typeidx#471 : typeidx, x : idx}: + `%|-%CONST`(C, `STRUCT.NEW_DEFAULT`_instr{typeidx#471}(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule array.new{C : context, x : idx}: - `%|-%CONST`(C, ARRAY.NEW_instr(x)) + rule array.new{C : context, typeidx#473 : typeidx, x : idx}: + `%|-%CONST`(C, `ARRAY.NEW`_instr{typeidx#473}(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule array.new_default{C : context, x : idx}: - `%|-%CONST`(C, ARRAY.NEW_DEFAULT_instr(x)) + rule array.new_default{C : context, typeidx#475 : typeidx, x : idx}: + `%|-%CONST`(C, `ARRAY.NEW_DEFAULT`_instr{typeidx#475}(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule array.new_fixed{C : context, x : idx, n : n}: - `%|-%CONST`(C, ARRAY.NEW_FIXED_instr(x, `%`_u32(n))) + rule array.new_fixed{C : context, typeidx#477 : typeidx, u32#15 : u32, x : idx, i#9243 : nat, n : n}: + `%|-%CONST`(C, `ARRAY.NEW_FIXED`_instr{typeidx#477, u32#15}(x, `%`_u32{i#9243}(n))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule any.convert_extern{C : context}: - `%|-%CONST`(C, ANY.CONVERT_EXTERN_instr) + `%|-%CONST`(C, `ANY.CONVERT_EXTERN`_instr) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule extern.convert_any{C : context}: - `%|-%CONST`(C, EXTERN.CONVERT_ANY_instr) + `%|-%CONST`(C, `EXTERN.CONVERT_ANY`_instr) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule global.get{C : context, x : idx, t : valtype}: - `%|-%CONST`(C, GLOBAL.GET_instr(x)) - -- if (C.GLOBALS_context[x!`%`_idx.0] = `%%`_globaltype(?(), t)) + rule global.get{C : context, globalidx#13 : globalidx, x : idx, `globaltype*#10` : globaltype*, i#9277 : nat, `mut?#817` : mut?, valtype#427 : valtype, t : valtype}: + `%|-%CONST`(C, `GLOBAL.GET`_instr{globalidx#13}(x)) + -- if (C.`GLOBALS`_context{`globaltype*#10`}[x!`%`_idx{i#9277}.0] = `%%`_globaltype{`mut?#817`, valtype#427}(?(), t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule binop{C : context, Inn : Inn, binop : binop_((Inn : Inn <: numtype))}: - `%|-%CONST`(C, BINOP_instr((Inn : Inn <: numtype), binop)) - -- if (Inn <- [I32_Inn I64_Inn]) - -- if (binop <- [ADD_binop_ SUB_binop_ MUL_binop_]) + rule binop{C : context, numtype#31 : numtype, Inn : Inn, binop : binop_((Inn : Inn <: numtype))}: + `%|-%CONST`(C, `BINOP`_instr{numtype#31}((Inn : Inn <: numtype), binop)) + -- if (Inn <- [`I32`_Inn `I64`_Inn]) + -- if (binop <- [`ADD`_binop_ `SUB`_binop_ `MUL`_binop_]) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Expr_const: `%|-%CONST`(context, expr) @@ -4046,114 +115605,114 @@ relation Expr_const: `%|-%CONST`(context, expr) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Expr_ok_const: `%|-%:%CONST`(context, expr, valtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule _{C : context, expr : expr, t : valtype}: + rule _{C : context, expr : expr, t : valtype, `X*#11922` : valtype*}: `%|-%:%CONST`(C, expr, t) - -- Expr_ok: `%|-%:%`(C, expr, `%`_resulttype([t])) + -- Expr_ok: `%|-%:%`(C, expr, `%`_resulttype{`X*#11922`}([t])) -- Expr_const: `%|-%CONST`(C, expr) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Type_ok: `%|-%:%`(context, type, deftype*) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, rectype : rectype, `dt*` : deftype*, x : idx}: - `%|-%:%`(C, TYPE_type(rectype), dt*{dt <- `dt*`}) - -- if (x!`%`_idx.0 = |C.TYPES_context|) + rule _{C : context, rectype#865 : rectype, rectype : rectype, `dt*` : deftype*, x : idx, i#9287 : nat, `deftype*#53` : deftype*, `deftype*#54` : deftype*, `subtype*#10` : subtype*, `tagtype*#10` : tagtype*, `globaltype*#11` : globaltype*, `memtype*#24` : memtype*, `tabletype*#17` : tabletype*, `deftype*#55` : deftype*, `datatype*#11` : datatype*, `elemtype*#11` : elemtype*, `localtype*#14` : localtype*, `resulttype*#22` : resulttype*, `resulttype?#19` : resulttype?, `funcidx*#48` : funcidx*, typeidx#489 : typeidx}: + `%|-%:%`(C, `TYPE`_type{rectype#865}(rectype), dt*{dt <- `dt*`}) + -- if (x!`%`_idx{i#9287}.0 = |C.`TYPES`_context{`deftype*#53`}|) -- if (dt*{dt <- `dt*`} = $rolldt(x, rectype)) - -- Rectype_ok: `%|-%:%`(C +++ {TYPES dt*{dt <- `dt*`}, RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, rectype, OK_oktypeidx(x)) + -- Rectype_ok: `%|-%:%`(C +++ {`TYPES`{`deftype*#54`} dt*{dt <- `dt*`}, `RECS`{`subtype*#10`} [], `TAGS`{`tagtype*#10`} [], `GLOBALS`{`globaltype*#11`} [], `MEMS`{`memtype*#24`} [], `TABLES`{`tabletype*#17`} [], `FUNCS`{`deftype*#55`} [], `DATAS`{`datatype*#11`} [], `ELEMS`{`elemtype*#11`} [], `LOCALS`{`localtype*#14`} [], `LABELS`{`resulttype*#22`} [], `RETURN`{`resulttype?#19`} ?(), `REFS`{`funcidx*#48`} []}, rectype, `OK`_oktypeidx{typeidx#489}(x)) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Tag_ok: `%|-%:%`(context, tag, tagtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, tagtype : tagtype}: - `%|-%:%`(C, TAG_tag(tagtype), $clos_tagtype(C, tagtype)) + rule _{C : context, tagtype#105 : tagtype, tagtype : tagtype}: + `%|-%:%`(C, `TAG`_tag{tagtype#105}(tagtype), $clos_tagtype(C, tagtype)) -- Tagtype_ok: `%|-%:OK`(C, tagtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Global_ok: `%|-%:%`(context, global, globaltype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, globaltype : globaltype, expr : expr, t : valtype}: - `%|-%:%`(C, GLOBAL_global(globaltype, expr), globaltype) + rule _{C : context, globaltype#117 : globaltype, expr#385 : expr, globaltype : globaltype, expr : expr, `mut?#847` : mut?, valtype#457 : valtype, t : valtype}: + `%|-%:%`(C, `GLOBAL`_global{globaltype#117, expr#385}(globaltype, expr), globaltype) -- Globaltype_ok: `%|-%:OK`(C, globaltype) - -- if (globaltype = `%%`_globaltype(MUT_mut?{}, t)) + -- if (globaltype = `%%`_globaltype{`mut?#847`, valtype#457}(`MUT`_mut?{}, t)) -- Expr_ok_const: `%|-%:%CONST`(C, expr, t) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Mem_ok: `%|-%:%`(context, mem, memtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, memtype : memtype}: - `%|-%:%`(C, MEMORY_mem(memtype), memtype) + rule _{C : context, memtype#129 : memtype, memtype : memtype}: + `%|-%:%`(C, `MEMORY`_mem{memtype#129}(memtype), memtype) -- Memtype_ok: `%|-%:OK`(C, memtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Table_ok: `%|-%:%`(context, table, tabletype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, tabletype : tabletype, expr : expr, at : addrtype, lim : limits, rt : reftype}: - `%|-%:%`(C, TABLE_table(tabletype, expr), tabletype) + rule _{C : context, tabletype#143 : tabletype, expr#397 : expr, tabletype : tabletype, expr : expr, addrtype#801 : addrtype, limits#801 : limits, reftype#531 : reftype, at : addrtype, lim : limits, rt : reftype}: + `%|-%:%`(C, `TABLE`_table{tabletype#143, expr#397}(tabletype, expr), tabletype) -- Tabletype_ok: `%|-%:OK`(C, tabletype) - -- if (tabletype = `%%%`_tabletype(at, lim, rt)) + -- if (tabletype = `%%%`_tabletype{addrtype#801, limits#801, reftype#531}(at, lim, rt)) -- Expr_ok_const: `%|-%:%CONST`(C, expr, (rt : reftype <: valtype)) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Local_ok: `%|-%:%`(context, local, localtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule set{C : context, t : valtype}: - `%|-%:%`(C, LOCAL_local(t), `%%`_localtype(SET_init, t)) + rule set{C : context, valtype#469 : valtype, t : valtype, init#143 : init, valtype#481 : valtype}: + `%|-%:%`(C, `LOCAL`_local{valtype#469}(t), `%%`_localtype{init#143, valtype#481}(`SET`_init, t)) -- Defaultable: `|-%DEFAULTABLE`(t) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule unset{C : context, t : valtype}: - `%|-%:%`(C, LOCAL_local(t), `%%`_localtype(UNSET_init, t)) + rule unset{C : context, valtype#493 : valtype, t : valtype, init#155 : init, valtype#505 : valtype}: + `%|-%:%`(C, `LOCAL`_local{valtype#493}(t), `%%`_localtype{init#155, valtype#505}(`UNSET`_init, t)) -- Nondefaultable: `|-%NONDEFAULTABLE`(t) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Func_ok: `%|-%:%`(context, func, deftype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, x : idx, `local*` : local*, expr : expr, `t_1*` : valtype*, `t_2*` : valtype*, `lct*` : localtype*}: - `%|-%:%`(C, FUNC_func(x, local*{local <- `local*`}, expr), C.TYPES_context[x!`%`_idx.0]) - -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule _{C : context, typeidx#501 : typeidx, `local*#171` : local*, expr#409 : expr, x : idx, `local*` : local*, expr : expr, `deftype*#56` : deftype*, i#9337 : nat, `deftype*#57` : deftype*, i#9347 : nat, resulttype#2908 : resulttype, `X*#11954` : valtype*, `t_1*` : valtype*, `X*#11967` : valtype*, `t_2*` : valtype*, `lct*` : localtype*, `deftype*#58` : deftype*, `subtype*#11` : subtype*, `tagtype*#11` : tagtype*, `globaltype*#12` : globaltype*, `memtype*#25` : memtype*, `tabletype*#18` : tabletype*, `deftype*#59` : deftype*, `datatype*#12` : datatype*, `elemtype*#12` : elemtype*, `localtype*#15` : localtype*, `init#191*` : init*, `valtype#559*` : valtype*, `resulttype*#23` : resulttype*, `X*#11980` : valtype*, `resulttype?#20` : resulttype?, `X*#11993` : valtype*, `funcidx*#49` : funcidx*, `X*#12006` : valtype*}: + `%|-%:%`(C, `FUNC`_func{typeidx#501, `local*#171`, expr#409}(x, local*{local <- `local*`}, expr), C.`TYPES`_context{`deftype*#56`}[x!`%`_idx{i#9337}.0]) + -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#57`}[x!`%`_idx{i#9347}.0], `FUNC%->%`_comptype{resulttype#2908}(`%`_resulttype{`X*#11954`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#11967`}(t_2*{t_2 <- `t_2*`}))) -- (Local_ok: `%|-%:%`(C, local, lct))*{lct <- `lct*`, local <- `local*`} - -- Expr_ok: `%|-%:%`(C +++ {TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS `%%`_localtype(SET_init, t_1)*{t_1 <- `t_1*`} ++ lct*{lct <- `lct*`}, LABELS [`%`_resulttype(t_2*{t_2 <- `t_2*`})], RETURN ?(`%`_resulttype(t_2*{t_2 <- `t_2*`})), REFS []}, expr, `%`_resulttype(t_2*{t_2 <- `t_2*`})) + -- Expr_ok: `%|-%:%`(C +++ {`TYPES`{`deftype*#58`} [], `RECS`{`subtype*#11`} [], `TAGS`{`tagtype*#11`} [], `GLOBALS`{`globaltype*#12`} [], `MEMS`{`memtype*#25`} [], `TABLES`{`tabletype*#18`} [], `FUNCS`{`deftype*#59`} [], `DATAS`{`datatype*#12`} [], `ELEMS`{`elemtype*#12`} [], `LOCALS`{`localtype*#15`} `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)*{init#191 <- `init#191*`, t_1 <- `t_1*`, valtype#559 <- `valtype#559*`} ++ lct*{lct <- `lct*`}, `LABELS`{`resulttype*#23`} [`%`_resulttype{`X*#11980`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#20`} ?(`%`_resulttype{`X*#11993`}(t_2*{t_2 <- `t_2*`})), `REFS`{`funcidx*#49`} []}, expr, `%`_resulttype{`X*#12006`}(t_2*{t_2 <- `t_2*`})) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Datamode_ok: `%|-%:%`(context, datamode, datatype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule passive{C : context}: - `%|-%:%`(C, PASSIVE_datamode, OK_datatype) + `%|-%:%`(C, `PASSIVE`_datamode, `OK`_datatype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule active{C : context, x : idx, expr : expr, at : addrtype, lim : limits}: - `%|-%:%`(C, ACTIVE_datamode(x, expr), OK_datatype) - -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule active{C : context, memidx#63 : memidx, expr#411 : expr, x : idx, expr : expr, `memtype*#26` : memtype*, i#9383 : nat, addrtype#813 : addrtype, limits#813 : limits, at : addrtype, lim : limits}: + `%|-%:%`(C, `ACTIVE`_datamode{memidx#63, expr#411}(x, expr), `OK`_datatype) + -- if (C.`MEMS`_context{`memtype*#26`}[x!`%`_idx{i#9383}.0] = `%%PAGE`_memtype{addrtype#813, limits#813}(at, lim)) -- Expr_ok_const: `%|-%:%CONST`(C, expr, (at : addrtype <: valtype)) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Data_ok: `%|-%:%`(context, data, datatype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, `b*` : byte*, datamode : datamode}: - `%|-%:%`(C, DATA_data(b*{b <- `b*`}, datamode), OK_datatype) - -- Datamode_ok: `%|-%:%`(C, datamode, OK_datatype) + rule _{C : context, `byte*#153` : byte*, datamode#153 : datamode, `b*` : byte*, datamode : datamode}: + `%|-%:%`(C, `DATA`_data{`byte*#153`, datamode#153}(b*{b <- `b*`}, datamode), `OK`_datatype) + -- Datamode_ok: `%|-%:%`(C, datamode, `OK`_datatype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Elemmode_ok: `%|-%:%`(context, elemmode, elemtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule passive{C : context, rt : reftype}: - `%|-%:%`(C, PASSIVE_elemmode, rt) + `%|-%:%`(C, `PASSIVE`_elemmode, rt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule declare{C : context, rt : reftype}: - `%|-%:%`(C, DECLARE_elemmode, rt) + `%|-%:%`(C, `DECLARE`_elemmode, rt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule active{C : context, x : idx, expr : expr, rt : reftype, at : addrtype, lim : limits, rt' : reftype}: - `%|-%:%`(C, ACTIVE_elemmode(x, expr), rt) - -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt')) + rule active{C : context, tableidx#45 : tableidx, expr#413 : expr, x : idx, expr : expr, rt : reftype, `tabletype*#19` : tabletype*, i#9407 : nat, addrtype#825 : addrtype, limits#825 : limits, reftype#555 : reftype, at : addrtype, lim : limits, rt' : reftype}: + `%|-%:%`(C, `ACTIVE`_elemmode{tableidx#45, expr#413}(x, expr), rt) + -- if (C.`TABLES`_context{`tabletype*#19`}[x!`%`_idx{i#9407}.0] = `%%%`_tabletype{addrtype#825, limits#825, reftype#555}(at, lim, rt')) -- Reftype_sub: `%|-%<:%`(C, rt, rt') -- Expr_ok_const: `%|-%:%CONST`(C, expr, (at : addrtype <: valtype)) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Elem_ok: `%|-%:%`(context, elem, elemtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, elemtype : elemtype, `expr*` : expr*, elemmode : elemmode}: - `%|-%:%`(C, ELEM_elem(elemtype, expr*{expr <- `expr*`}, elemmode), elemtype) + rule _{C : context, reftype#543 : reftype, `expr*#165` : expr*, elemmode#165 : elemmode, elemtype : elemtype, `expr*` : expr*, elemmode : elemmode}: + `%|-%:%`(C, `ELEM`_elem{reftype#543, `expr*#165`, elemmode#165}(elemtype, expr*{expr <- `expr*`}, elemmode), elemtype) -- Reftype_ok: `%|-%:OK`(C, elemtype) -- (Expr_ok_const: `%|-%:%CONST`(C, expr, (elemtype : reftype <: valtype)))*{expr <- `expr*`} -- Elemmode_ok: `%|-%:%`(C, elemmode, elemtype) @@ -4161,49 +115720,49 @@ relation Elem_ok: `%|-%:%`(context, elem, elemtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Start_ok: `%|-%:OK`(context, start) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, x : idx}: - `%|-%:OK`(C, START_start(x)) - -- Expand: `%~~%`(C.FUNCS_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype([]), `%`_resulttype([]))) + rule _{C : context, funcidx#195 : funcidx, x : idx, `deftype*#60` : deftype*, i#9431 : nat, resulttype#2911 : resulttype, `X*#12031` : valtype*, `X*#12052` : valtype*}: + `%|-%:OK`(C, `START`_start{funcidx#195}(x)) + -- Expand: `%~~%`(C.`FUNCS`_context{`deftype*#60`}[x!`%`_idx{i#9431}.0], `FUNC%->%`_comptype{resulttype#2911}(`%`_resulttype{`X*#12031`}([]), `%`_resulttype{`X*#12052`}([]))) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Import_ok: `%|-%:%`(context, import, externtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, name_1 : name, name_2 : name, xt : externtype}: - `%|-%:%`(C, IMPORT_import(name_1, name_2, xt), $clos_externtype(C, xt)) + rule _{C : context, name#309 : name, externtype#79 : externtype, name_1 : name, name_2 : name, xt : externtype}: + `%|-%:%`(C, `IMPORT`_import{name#309, externtype#79}(name_1, name_2, xt), $clos_externtype(C, xt)) -- Externtype_ok: `%|-%:OK`(C, xt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Externidx_ok: `%|-%:%`(context, externidx, externtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule tag{C : context, x : idx, jt : tagtype}: - `%|-%:%`(C, TAG_externidx(x), TAG_externtype(jt)) - -- if (C.TAGS_context[x!`%`_idx.0] = jt) + rule tag{C : context, tagidx#9 : tagidx, x : idx, tagtype#107 : tagtype, jt : tagtype, `tagtype*#12` : tagtype*, i#9455 : nat}: + `%|-%:%`(C, `TAG`_externidx{tagidx#9}(x), `TAG`_externtype{tagtype#107}(jt)) + -- if (C.`TAGS`_context{`tagtype*#12`}[x!`%`_idx{i#9455}.0] = jt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule global{C : context, x : idx, gt : globaltype}: - `%|-%:%`(C, GLOBAL_externidx(x), GLOBAL_externtype(gt)) - -- if (C.GLOBALS_context[x!`%`_idx.0] = gt) + rule global{C : context, globalidx#15 : globalidx, x : idx, globaltype#119 : globaltype, gt : globaltype, `globaltype*#13` : globaltype*, i#9479 : nat}: + `%|-%:%`(C, `GLOBAL`_externidx{globalidx#15}(x), `GLOBAL`_externtype{globaltype#119}(gt)) + -- if (C.`GLOBALS`_context{`globaltype*#13`}[x!`%`_idx{i#9479}.0] = gt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule mem{C : context, x : idx, mt : memtype}: - `%|-%:%`(C, MEM_externidx(x), MEM_externtype(mt)) - -- if (C.MEMS_context[x!`%`_idx.0] = mt) + rule mem{C : context, memidx#65 : memidx, x : idx, memtype#131 : memtype, mt : memtype, `memtype*#27` : memtype*, i#9503 : nat}: + `%|-%:%`(C, `MEM`_externidx{memidx#65}(x), `MEM`_externtype{memtype#131}(mt)) + -- if (C.`MEMS`_context{`memtype*#27`}[x!`%`_idx{i#9503}.0] = mt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule table{C : context, x : idx, tt : tabletype}: - `%|-%:%`(C, TABLE_externidx(x), TABLE_externtype(tt)) - -- if (C.TABLES_context[x!`%`_idx.0] = tt) + rule table{C : context, tableidx#47 : tableidx, x : idx, tabletype#145 : tabletype, tt : tabletype, `tabletype*#20` : tabletype*, i#9527 : nat}: + `%|-%:%`(C, `TABLE`_externidx{tableidx#47}(x), `TABLE`_externtype{tabletype#145}(tt)) + -- if (C.`TABLES`_context{`tabletype*#20`}[x!`%`_idx{i#9527}.0] = tt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule func{C : context, x : idx, dt : deftype}: - `%|-%:%`(C, FUNC_externidx(x), FUNC_externtype((dt : deftype <: typeuse))) - -- if (C.FUNCS_context[x!`%`_idx.0] = dt) + rule func{C : context, funcidx#197 : funcidx, x : idx, typeuse#31 : typeuse, dt : deftype, `deftype*#61` : deftype*, i#9551 : nat}: + `%|-%:%`(C, `FUNC`_externidx{funcidx#197}(x), `FUNC`_externtype{typeuse#31}((dt : deftype <: typeuse))) + -- if (C.`FUNCS`_context{`deftype*#61`}[x!`%`_idx{i#9551}.0] = dt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Export_ok: `%|-%:%%`(context, export, name, externtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, name : name, externidx : externidx, xt : externtype}: - `%|-%:%%`(C, EXPORT_export(name, externidx), name, xt) + rule _{C : context, name#322 : name, externidx#193 : externidx, name : name, externidx : externidx, xt : externtype}: + `%|-%:%%`(C, `EXPORT`_export{name#322, externidx#193}(name, externidx), name, xt) -- Externidx_ok: `%|-%:%`(C, externidx, xt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec @@ -4216,10 +115775,10 @@ relation Globals_ok: `%|-%:%`(context, global*, globaltype*) `%|-%:%`(C, [], []) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec:183.1-186.54 - rule cons{C : context, global_1 : global, `global*` : global*, gt_1 : globaltype, `gt*` : globaltype*}: + rule cons{C : context, global_1 : global, `global*` : global*, gt_1 : globaltype, `gt*` : globaltype*, `deftype*#72` : deftype*, `subtype*#17` : subtype*, `tagtype*#18` : tagtype*, `globaltype*#19` : globaltype*, `memtype*#33` : memtype*, `tabletype*#26` : tabletype*, `deftype*#73` : deftype*, `datatype*#18` : datatype*, `elemtype*#18` : elemtype*, `localtype*#21` : localtype*, `resulttype*#29` : resulttype*, `resulttype?#26` : resulttype?, `funcidx*#55` : funcidx*}: `%|-%:%`(C, [global_1] ++ global*{global <- `global*`}, [gt_1] ++ gt*{gt <- `gt*`}) -- Global_ok: `%|-%:%`(C, global_1, gt_1) - -- Globals_ok: `%|-%:%`(C +++ {TYPES [], RECS [], TAGS [], GLOBALS [gt_1], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, global*{global <- `global*`}, gt*{gt <- `gt*`}) + -- Globals_ok: `%|-%:%`(C +++ {`TYPES`{`deftype*#72`} [], `RECS`{`subtype*#17`} [], `TAGS`{`tagtype*#18`} [], `GLOBALS`{`globaltype*#19`} [gt_1], `MEMS`{`memtype*#33`} [], `TABLES`{`tabletype*#26`} [], `FUNCS`{`deftype*#73`} [], `DATAS`{`datatype*#18`} [], `ELEMS`{`elemtype*#18`} [], `LOCALS`{`localtype*#21`} [], `LABELS`{`resulttype*#29`} [], `RETURN`{`resulttype?#26`} ?(), `REFS`{`funcidx*#55`} []}, global*{global <- `global*`}, gt*{gt <- `gt*`}) } ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec @@ -4232,28 +115791,28 @@ relation Types_ok: `%|-%:%`(context, type*, deftype*) `%|-%:%`(C, [], []) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec:175.1-178.49 - rule cons{C : context, type_1 : type, `type*` : type*, `dt_1*` : deftype*, `dt*` : deftype*}: + rule cons{C : context, type_1 : type, `type*` : type*, `dt_1*` : deftype*, `dt*` : deftype*, `deftype*#70` : deftype*, `subtype*#16` : subtype*, `tagtype*#17` : tagtype*, `globaltype*#18` : globaltype*, `memtype*#32` : memtype*, `tabletype*#25` : tabletype*, `deftype*#71` : deftype*, `datatype*#17` : datatype*, `elemtype*#17` : elemtype*, `localtype*#20` : localtype*, `resulttype*#28` : resulttype*, `resulttype?#25` : resulttype?, `funcidx*#54` : funcidx*}: `%|-%:%`(C, [type_1] ++ type*{type <- `type*`}, dt_1*{dt_1 <- `dt_1*`} ++ dt*{dt <- `dt*`}) -- Type_ok: `%|-%:%`(C, type_1, dt_1*{dt_1 <- `dt_1*`}) - -- Types_ok: `%|-%:%`(C +++ {TYPES dt_1*{dt_1 <- `dt_1*`}, RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, type*{type <- `type*`}, dt*{dt <- `dt*`}) + -- Types_ok: `%|-%:%`(C +++ {`TYPES`{`deftype*#70`} dt_1*{dt_1 <- `dt_1*`}, `RECS`{`subtype*#16`} [], `TAGS`{`tagtype*#17`} [], `GLOBALS`{`globaltype*#18`} [], `MEMS`{`memtype*#32`} [], `TABLES`{`tabletype*#25`} [], `FUNCS`{`deftype*#71`} [], `DATAS`{`datatype*#17`} [], `ELEMS`{`elemtype*#17`} [], `LOCALS`{`localtype*#20`} [], `LABELS`{`resulttype*#28`} [], `RETURN`{`resulttype?#25`} ?(), `REFS`{`funcidx*#54`} []}, type*{type <- `type*`}, dt*{dt <- `dt*`}) } ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec syntax nonfuncs = - | `%%%%`{`global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*}(global*{global <- `global*`} : global*, mem*{mem <- `mem*`} : mem*, table*{table <- `table*`} : table*, elem*{elem <- `elem*`} : elem*) + | `%%%%`{`global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*}(`global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec def $funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - def $funcidx_nonfuncs{`global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*}(`%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})) = $funcidx_module(MODULE_module([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])) + def $funcidx_nonfuncs{`global*#47` : global*, `mem*#47` : mem*, `table*#47` : table*, `elem*#47` : elem*, `global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*, `type*#71` : type*, `import*#71` : import*, `tag*#71` : tag*, `global*#83` : global*, `mem*#83` : mem*, `table*#83` : table*, `func*#71` : func*, `data*#71` : data*, `elem*#83` : elem*, `start?#71` : start?, `export*#71` : export*}(`%%%%`_nonfuncs{`global*#47`, `mem*#47`, `table*#47`, `elem*#47`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})) = $funcidx_module(`MODULE`_module{`type*#71`, `import*#71`, `tag*#71`, `global*#83`, `mem*#83`, `table*#83`, `func*#71`, `data*#71`, `elem*#83`, `start?#71`, `export*#71`}([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Module_ok: `|-%:%`(module, moduletype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, C : context, `xt_I*` : externtype*, `xt_E*` : externtype*, `dt'*` : deftype*, C' : context, `jt*` : tagtype*, `gt*` : globaltype*, `mt*` : memtype*, `tt*` : tabletype*, `dt*` : deftype*, `ok*` : datatype*, `rt*` : reftype*, `nm*` : name*, `jt_I*` : tagtype*, `mt_I*` : memtype*, `tt_I*` : tabletype*, `gt_I*` : globaltype*, `dt_I*` : deftype*, `x*` : idx*}: - `|-%:%`(MODULE_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}), $clos_moduletype(C, `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))) - -- Types_ok: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, type*{type <- `type*`}, dt'*{dt' <- `dt'*`}) - -- (Import_ok: `%|-%:%`({TYPES dt'*{dt' <- `dt'*`}, RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, import, xt_I))*{import <- `import*`, xt_I <- `xt_I*`} + rule _{`type*#83` : type*, `import*#83` : import*, `tag*#83` : tag*, `global*#95` : global*, `mem*#95` : mem*, `table*#95` : table*, `func*#83` : func*, `data*#83` : data*, `elem*#95` : elem*, `start?#83` : start?, `export*#83` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, C : context, `externtype*#148` : externtype*, `xt_I*` : externtype*, `xt_E*` : externtype*, `deftype*#62` : deftype*, `subtype*#12` : subtype*, `tagtype*#13` : tagtype*, `globaltype*#14` : globaltype*, `memtype*#28` : memtype*, `tabletype*#21` : tabletype*, `deftype*#63` : deftype*, `datatype*#13` : datatype*, `elemtype*#13` : elemtype*, `localtype*#16` : localtype*, `resulttype*#24` : resulttype*, `resulttype?#21` : resulttype?, `funcidx*#50` : funcidx*, `dt'*` : deftype*, `datatype*#14*` : datatype**, `deftype*#64*` : deftype**, `deftype*#65*` : deftype**, `elemtype*#14*` : elemtype**, `funcidx*#51*` : funcidx**, `globaltype*#15*` : globaltype**, `localtype*#17*` : localtype**, `memtype*#29*` : memtype**, `resulttype*#25*` : resulttype**, `resulttype?#22*` : resulttype?*, `subtype*#13*` : subtype**, `tabletype*#22*` : tabletype**, `tagtype*#14*` : tagtype**, C' : context, `jt*` : tagtype*, `gt*` : globaltype*, `mt*` : memtype*, `tt*` : tabletype*, `dt*` : deftype*, `ok*` : datatype*, `rt*` : reftype*, `nm*` : name*, `deftype*#66` : deftype*, `subtype*#14` : subtype*, `tagtype*#15` : tagtype*, `jt_I*` : tagtype*, `globaltype*#16` : globaltype*, `memtype*#30` : memtype*, `mt_I*` : memtype*, `tabletype*#23` : tabletype*, `tt_I*` : tabletype*, `deftype*#67` : deftype*, `datatype*#15` : datatype*, `elemtype*#15` : elemtype*, `localtype*#18` : localtype*, `resulttype*#26` : resulttype*, `resulttype?#23` : resulttype?, `funcidx*#52` : funcidx*, `deftype*#68` : deftype*, `subtype*#15` : subtype*, `tagtype*#16` : tagtype*, `globaltype*#17` : globaltype*, `gt_I*` : globaltype*, `memtype*#31` : memtype*, `tabletype*#24` : tabletype*, `deftype*#69` : deftype*, `dt_I*` : deftype*, `datatype*#16` : datatype*, `elemtype*#16` : elemtype*, `localtype*#19` : localtype*, `resulttype*#27` : resulttype*, `resulttype?#24` : resulttype?, `funcidx*#53` : funcidx*, `x*` : idx*, `global*#107` : global*, `mem*#107` : mem*, `table*#107` : table*, `elem*#107` : elem*}: + `|-%:%`(`MODULE`_module{`type*#83`, `import*#83`, `tag*#83`, `global*#95`, `mem*#95`, `table*#95`, `func*#83`, `data*#83`, `elem*#95`, `start?#83`, `export*#83`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}), $clos_moduletype(C, `%->%`_moduletype{`externtype*#148`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))) + -- Types_ok: `%|-%:%`({`TYPES`{`deftype*#62`} [], `RECS`{`subtype*#12`} [], `TAGS`{`tagtype*#13`} [], `GLOBALS`{`globaltype*#14`} [], `MEMS`{`memtype*#28`} [], `TABLES`{`tabletype*#21`} [], `FUNCS`{`deftype*#63`} [], `DATAS`{`datatype*#13`} [], `ELEMS`{`elemtype*#13`} [], `LOCALS`{`localtype*#16`} [], `LABELS`{`resulttype*#24`} [], `RETURN`{`resulttype?#21`} ?(), `REFS`{`funcidx*#50`} []}, type*{type <- `type*`}, dt'*{dt' <- `dt'*`}) + -- (Import_ok: `%|-%:%`({`TYPES`{`deftype*#64`} dt'*{dt' <- `dt'*`}, `RECS`{`subtype*#13`} [], `TAGS`{`tagtype*#14`} [], `GLOBALS`{`globaltype*#15`} [], `MEMS`{`memtype*#29`} [], `TABLES`{`tabletype*#22`} [], `FUNCS`{`deftype*#65`} [], `DATAS`{`datatype*#14`} [], `ELEMS`{`elemtype*#14`} [], `LOCALS`{`localtype*#17`} [], `LABELS`{`resulttype*#25`} [], `RETURN`{`resulttype?#22`} ?(), `REFS`{`funcidx*#51`} []}, import, xt_I))*{`datatype*#14` <- `datatype*#14*`, `deftype*#64` <- `deftype*#64*`, `deftype*#65` <- `deftype*#65*`, `elemtype*#14` <- `elemtype*#14*`, `funcidx*#51` <- `funcidx*#51*`, `globaltype*#15` <- `globaltype*#15*`, import <- `import*`, `localtype*#17` <- `localtype*#17*`, `memtype*#29` <- `memtype*#29*`, `resulttype*#25` <- `resulttype*#25*`, `resulttype?#22` <- `resulttype?#22*`, `subtype*#13` <- `subtype*#13*`, `tabletype*#22` <- `tabletype*#22*`, `tagtype*#14` <- `tagtype*#14*`, xt_I <- `xt_I*`} -- (Tag_ok: `%|-%:%`(C', tag, jt))*{jt <- `jt*`, tag <- `tag*`} -- Globals_ok: `%|-%:%`(C', global*{global <- `global*`}, gt*{gt <- `gt*`}) -- (Mem_ok: `%|-%:%`(C', mem, mt))*{mem <- `mem*`, mt <- `mt*`} @@ -4264,9 +115823,9 @@ relation Module_ok: `|-%:%`(module, moduletype) -- (Start_ok: `%|-%:OK`(C, start))?{start <- `start?`} -- (Export_ok: `%|-%:%%`(C, export, nm, xt_E))*{export <- `export*`, nm <- `nm*`, xt_E <- `xt_E*`} -- if $disjoint_(syntax name, nm*{nm <- `nm*`}) - -- if (C = C' +++ {TYPES [], RECS [], TAGS jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, GLOBALS gt*{gt <- `gt*`}, MEMS mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, TABLES tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, FUNCS [], DATAS ok*{ok <- `ok*`}, ELEMS rt*{rt <- `rt*`}, LOCALS [], LABELS [], RETURN ?(), REFS []}) - -- if (C' = {TYPES dt'*{dt' <- `dt'*`}, RECS [], TAGS [], GLOBALS gt_I*{gt_I <- `gt_I*`}, MEMS [], TABLES [], FUNCS dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS x*{x <- `x*`}}) - -- if (x*{x <- `x*`} = $funcidx_nonfuncs(`%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`}))) + -- if (C = C' +++ {`TYPES`{`deftype*#66`} [], `RECS`{`subtype*#14`} [], `TAGS`{`tagtype*#15`} jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS`{`globaltype*#16`} gt*{gt <- `gt*`}, `MEMS`{`memtype*#30`} mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES`{`tabletype*#23`} tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS`{`deftype*#67`} [], `DATAS`{`datatype*#15`} ok*{ok <- `ok*`}, `ELEMS`{`elemtype*#15`} rt*{rt <- `rt*`}, `LOCALS`{`localtype*#18`} [], `LABELS`{`resulttype*#26`} [], `RETURN`{`resulttype?#23`} ?(), `REFS`{`funcidx*#52`} []}) + -- if (C' = {`TYPES`{`deftype*#68`} dt'*{dt' <- `dt'*`}, `RECS`{`subtype*#15`} [], `TAGS`{`tagtype*#16`} [], `GLOBALS`{`globaltype*#17`} gt_I*{gt_I <- `gt_I*`}, `MEMS`{`memtype*#31`} [], `TABLES`{`tabletype*#24`} [], `FUNCS`{`deftype*#69`} dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, `DATAS`{`datatype*#16`} [], `ELEMS`{`elemtype*#16`} [], `LOCALS`{`localtype*#19`} [], `LABELS`{`resulttype*#27`} [], `RETURN`{`resulttype?#24`} ?(), `REFS`{`funcidx*#53`} x*{x <- `x*`}}) + -- if (x*{x <- `x*`} = $funcidx_nonfuncs(`%%%%`_nonfuncs{`global*#107`, `mem*#107`, `table*#107`, `elem*#107`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`}))) -- if (jt_I*{jt_I <- `jt_I*`} = $tagsxt(xt_I*{xt_I <- `xt_I*`})) -- if (gt_I*{gt_I <- `gt_I*`} = $globalsxt(xt_I*{xt_I <- `xt_I*`})) -- if (mt_I*{mt_I <- `mt_I*`} = $memsxt(xt_I*{xt_I <- `xt_I*`})) @@ -4286,7 +115845,7 @@ syntax relaxed4 = ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec def $relaxed2(relaxed2 : relaxed2, syntax X, X : X, X : X) : X ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec - def $relaxed2{i : relaxed2, syntax X, X_1 : X, X_2 : X}(i, syntax X, X_1, X_2) = [X_1 X_2][i!`%`_relaxed2.0] + def $relaxed2{i : relaxed2, syntax X, X_1 : X, X_2 : X, i#9672 : nat}(i, syntax X, X_1, X_2) = [X_1 X_2][i!`%`_relaxed2{i#9672}.0] -- if $ND ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec def $relaxed2{i : relaxed2, syntax X, X_1 : X, X_2 : X}(i, syntax X, X_1, X_2) = [X_1 X_2][0] @@ -4295,7 +115854,7 @@ def $relaxed2(relaxed2 : relaxed2, syntax X, X : X, X : X) : X ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec def $relaxed4(relaxed4 : relaxed4, syntax X, X : X, X : X, X : X, X : X) : X ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec - def $relaxed4{i : relaxed4, syntax X, X_1 : X, X_2 : X, X_3 : X, X_4 : X}(i, syntax X, X_1, X_2, X_3, X_4) = [X_1 X_2 X_3 X_4][i!`%`_relaxed4.0] + def $relaxed4{i : relaxed4, syntax X, X_1 : X, X_2 : X, X_3 : X, X_4 : X, i#9686 : nat}(i, syntax X, X_1, X_2, X_3, X_4) = [X_1 X_2 X_3 X_4][i!`%`_relaxed4{i#9686}.0] -- if $ND ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec def $relaxed4{i : relaxed4, syntax X, X_1 : X, X_2 : X, X_3 : X, X_4 : X}(i, syntax X, X_1, X_2, X_3, X_4) = [X_1 X_2 X_3 X_4][0] @@ -4402,12 +115961,12 @@ def $sx(storagetype : storagetype) : sx? ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $sx{consttype : consttype}((consttype : consttype <: storagetype)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $sx{packtype : packtype}((packtype : packtype <: storagetype)) = ?(S_sx) + def $sx{packtype : packtype}((packtype : packtype <: storagetype)) = ?(`S`_sx) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $zero(lanetype : lanetype) : lane_(lanetype) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $zero{Jnn : Jnn}((Jnn : Jnn <: lanetype)) = `%`_lane_(0) + def $zero{Jnn : Jnn, i#9712 : nat}((Jnn : Jnn <: lanetype)) = `%`_lane_{i#9712}(0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $zero{Fnn : Fnn}((Fnn : Fnn <: lanetype)) = $fzero($size((Fnn : Fnn <: numtype))) @@ -4451,13 +116010,13 @@ def $sat_s_(N : N, int : int) : int ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ineg_(N : N, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ineg_{N : N, i_1 : iN(N)}(N, i_1) = `%`_iN((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) + def $ineg_{N : N, i_1 : iN(N), i#9728 : nat, i#9726 : nat}(N, i_1) = `%`_iN{i#9728}((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iabs_(N : N, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iabs_{N : N, i_1 : iN(N)}(N, i_1) = i_1 - -- if ($signed_(N, i_1!`%`_iN.0) >= (0 : nat <:> int)) + def $iabs_{N : N, i_1 : iN(N), i#9736 : nat}(N, i_1) = i_1 + -- if ($signed_(N, i_1!`%`_iN{i#9736}.0) >= (0 : nat <:> int)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iabs_{N : N, i_1 : iN(N)}(N, i_1) = $ineg_(N, i_1) -- otherwise @@ -4474,94 +116033,94 @@ def $ipopcnt_(N : N, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iextend_(N : N, M : M, sx : sx, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iextend_{N : N, M : M, i : iN(N)}(N, M, U_sx, i) = `%`_iN((i!`%`_iN.0 \ (2 ^ M))) + def $iextend_{N : N, M : M, i : iN(N), i#9776 : nat, i#9774 : nat}(N, M, `U`_sx, i) = `%`_iN{i#9776}((i!`%`_iN{i#9774}.0 \ (2 ^ M))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iextend_{N : N, M : M, i : iN(N)}(N, M, S_sx, i) = `%`_iN($inv_signed_(N, $signed_(M, (i!`%`_iN.0 \ (2 ^ M))))) + def $iextend_{N : N, M : M, i : iN(N), i#9792 : nat, i#9790 : nat}(N, M, `S`_sx, i) = `%`_iN{i#9792}($inv_signed_(N, $signed_(M, (i!`%`_iN{i#9790}.0 \ (2 ^ M))))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iadd_(N : N, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_iN(((i_1!`%`_iN.0 + i_2!`%`_iN.0) \ (2 ^ N))) + def $iadd_{N : N, i_1 : iN(N), i_2 : iN(N), i#9816 : nat, i#9812 : nat, i#9814 : nat}(N, i_1, i_2) = `%`_iN{i#9816}(((i_1!`%`_iN{i#9812}.0 + i_2!`%`_iN{i#9814}.0) \ (2 ^ N))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $isub_(N : N, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_iN(((((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) + def $isub_{N : N, i_1 : iN(N), i_2 : iN(N), i#9840 : nat, i#9836 : nat, i#9838 : nat}(N, i_1, i_2) = `%`_iN{i#9840}(((((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $imul_(N : N, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imul_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_iN(((i_1!`%`_iN.0 * i_2!`%`_iN.0) \ (2 ^ N))) + def $imul_{N : N, i_1 : iN(N), i_2 : iN(N), i#9864 : nat, i#9860 : nat, i#9862 : nat}(N, i_1, i_2) = `%`_iN{i#9864}(((i_1!`%`_iN{i#9860}.0 * i_2!`%`_iN{i#9862}.0) \ (2 ^ N))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $idiv_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)? ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N)}(N, U_sx, i_1, `%`_iN(0)) = ?() + def $idiv_{N : N, i_1 : iN(N), i#9878 : nat}(N, `U`_sx, i_1, `%`_iN{i#9878}(0)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = ?(`%`_iN(($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat))) + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N), i#9902 : nat, i#9898 : nat, i#9900 : nat}(N, `U`_sx, i_1, i_2) = ?(`%`_iN{i#9902}(($truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))) : int <:> nat))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N)}(N, S_sx, i_1, `%`_iN(0)) = ?() + def $idiv_{N : N, i_1 : iN(N), i#9916 : nat}(N, `S`_sx, i_1, `%`_iN{i#9916}(0)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = ?() - -- if ((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)) = ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat)) + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N), i#9930 : nat, i#9932 : nat}(N, `S`_sx, i_1, i_2) = ?() + -- if ((($signed_(N, i_1!`%`_iN{i#9930}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9932}.0) : int <:> rat)) = ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = ?(`%`_iN($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)))))) + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N), i#9956 : nat, i#9952 : nat, i#9954 : nat}(N, `S`_sx, i_1, i_2) = ?(`%`_iN{i#9956}($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat)))))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $irem_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)? ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N)}(N, U_sx, i_1, `%`_iN(0)) = ?() + def $irem_{N : N, i_1 : iN(N), i#9970 : nat}(N, `U`_sx, i_1, `%`_iN{i#9970}(0)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = ?(`%`_iN((((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))) + def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), i#9998 : nat, i#9996 : nat, i#9994 : nat, i#9990 : nat, i#9992 : nat}(N, `U`_sx, i_1, i_2) = ?(`%`_iN{i#9998}((((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N)}(N, S_sx, i_1, `%`_iN(0)) = ?() + def $irem_{N : N, i_1 : iN(N), i#10012 : nat}(N, `S`_sx, i_1, `%`_iN{i#10012}(0)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), j_1 : int, j_2 : int}(N, S_sx, i_1, i_2) = ?(`%`_iN($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))) - -- if ((j_1 = $signed_(N, i_1!`%`_iN.0)) /\ (j_2 = $signed_(N, i_2!`%`_iN.0))) + def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), i#10036 : nat, j_1 : int, j_2 : int, i#10026 : nat, i#10028 : nat}(N, `S`_sx, i_1, i_2) = ?(`%`_iN{i#10036}($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))) + -- if ((j_1 = $signed_(N, i_1!`%`_iN{i#10026}.0)) /\ (j_2 = $signed_(N, i_2!`%`_iN{i#10028}.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $imin_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = i_1 - -- if (i_1!`%`_iN.0 <= i_2!`%`_iN.0) + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N), i#10050 : nat, i#10052 : nat}(N, `U`_sx, i_1, i_2) = i_1 + -- if (i_1!`%`_iN{i#10050}.0 <= i_2!`%`_iN{i#10052}.0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = i_2 - -- if (i_1!`%`_iN.0 > i_2!`%`_iN.0) + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N), i#10072 : nat, i#10074 : nat}(N, `U`_sx, i_1, i_2) = i_2 + -- if (i_1!`%`_iN{i#10072}.0 > i_2!`%`_iN{i#10074}.0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = i_1 - -- if ($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0)) + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N), i#10094 : nat, i#10096 : nat}(N, `S`_sx, i_1, i_2) = i_1 + -- if ($signed_(N, i_1!`%`_iN{i#10094}.0) <= $signed_(N, i_2!`%`_iN{i#10096}.0)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = i_2 + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_2 -- otherwise ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $imax_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = i_1 - -- if (i_1!`%`_iN.0 >= i_2!`%`_iN.0) + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N), i#10134 : nat, i#10136 : nat}(N, `U`_sx, i_1, i_2) = i_1 + -- if (i_1!`%`_iN{i#10134}.0 >= i_2!`%`_iN{i#10136}.0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = i_2 - -- if (i_1!`%`_iN.0 < i_2!`%`_iN.0) + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N), i#10156 : nat, i#10158 : nat}(N, `U`_sx, i_1, i_2) = i_2 + -- if (i_1!`%`_iN{i#10156}.0 < i_2!`%`_iN{i#10158}.0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = i_1 - -- if ($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0)) + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N), i#10178 : nat, i#10180 : nat}(N, `S`_sx, i_1, i_2) = i_1 + -- if ($signed_(N, i_1!`%`_iN{i#10178}.0) >= $signed_(N, i_2!`%`_iN{i#10180}.0)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = i_2 + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_2 -- otherwise ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iadd_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int))) + def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10228 : nat, i#10224 : nat, i#10226 : nat}(N, `U`_sx, i_1, i_2) = `%`_iN{i#10228}($sat_u_(N, ((i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0) : nat <:> int))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0))))) + def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10252 : nat, i#10248 : nat, i#10250 : nat}(N, `S`_sx, i_1, i_2) = `%`_iN{i#10252}($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0))))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $isub_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)))) + def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10276 : nat, i#10272 : nat, i#10274 : nat}(N, `U`_sx, i_1, i_2) = `%`_iN{i#10276}($sat_u_(N, ((i_1!`%`_iN{i#10272}.0 : nat <:> int) - (i_2!`%`_iN{i#10274}.0 : nat <:> int)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0))))) + def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10300 : nat, i#10296 : nat, i#10298 : nat}(N, `S`_sx, i_1, i_2) = `%`_iN{i#10300}($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0))))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iq15mulr_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) @@ -4611,50 +116170,50 @@ def $irelaxed_laneselect_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)* ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ieqz_(N : N, iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ieqz_{N : N, i_1 : iN(N)}(N, i_1) = `%`_u32($bool((i_1!`%`_iN.0 = 0))) + def $ieqz_{N : N, i_1 : iN(N), i#10328 : nat, i#10318 : nat}(N, i_1) = `%`_u32{i#10328}($bool((i_1!`%`_iN{i#10318}.0 = 0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $inez_(N : N, iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $inez_{N : N, i_1 : iN(N)}(N, i_1) = `%`_u32($bool((i_1!`%`_iN.0 =/= 0))) + def $inez_{N : N, i_1 : iN(N), i#10356 : nat, i#10346 : nat}(N, i_1) = `%`_u32{i#10356}($bool((i_1!`%`_iN{i#10346}.0 =/= 0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ieq_(N : N, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ieq_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_u32($bool((i_1 = i_2))) + def $ieq_{N : N, i_1 : iN(N), i_2 : iN(N), i#10394 : nat}(N, i_1, i_2) = `%`_u32{i#10394}($bool((i_1 = i_2))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ine_(N : N, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ine_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_u32($bool((i_1 =/= i_2))) + def $ine_{N : N, i_1 : iN(N), i_2 : iN(N), i#10432 : nat}(N, i_1, i_2) = `%`_u32{i#10432}($bool((i_1 =/= i_2))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ilt_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 < i_2!`%`_iN.0))) + def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10468 : nat, i#10456 : nat, i#10458 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10468}($bool((i_1!`%`_iN{i#10456}.0 < i_2!`%`_iN{i#10458}.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0)))) + def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10504 : nat, i#10492 : nat, i#10494 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10504}($bool(($signed_(N, i_1!`%`_iN{i#10492}.0) < $signed_(N, i_2!`%`_iN{i#10494}.0)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $igt_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $igt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 > i_2!`%`_iN.0))) + def $igt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10540 : nat, i#10528 : nat, i#10530 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10540}($bool((i_1!`%`_iN{i#10528}.0 > i_2!`%`_iN{i#10530}.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $igt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0)))) + def $igt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10576 : nat, i#10564 : nat, i#10566 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10576}($bool(($signed_(N, i_1!`%`_iN{i#10564}.0) > $signed_(N, i_2!`%`_iN{i#10566}.0)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ile_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ile_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 <= i_2!`%`_iN.0))) + def $ile_{N : N, i_1 : iN(N), i_2 : iN(N), i#10612 : nat, i#10600 : nat, i#10602 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10612}($bool((i_1!`%`_iN{i#10600}.0 <= i_2!`%`_iN{i#10602}.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ile_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0)))) + def $ile_{N : N, i_1 : iN(N), i_2 : iN(N), i#10648 : nat, i#10636 : nat, i#10638 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10648}($bool(($signed_(N, i_1!`%`_iN{i#10636}.0) <= $signed_(N, i_2!`%`_iN{i#10638}.0)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ige_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 >= i_2!`%`_iN.0))) + def $ige_{N : N, i_1 : iN(N), i_2 : iN(N), i#10684 : nat, i#10672 : nat, i#10674 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10684}($bool((i_1!`%`_iN{i#10672}.0 >= i_2!`%`_iN{i#10674}.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ige_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0)))) + def $ige_{N : N, i_1 : iN(N), i_2 : iN(N), i#10720 : nat, i#10708 : nat, i#10710 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10720}($bool(($signed_(N, i_1!`%`_iN{i#10708}.0) >= $signed_(N, i_2!`%`_iN{i#10710}.0)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $fabs_(N : N, fN : fN(N)) : fN(N)* @@ -4783,543 +116342,543 @@ def $lunpacknum_(lanetype : lanetype, lane_ : lane_(lanetype)) : num_($lunpack(l ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $lunpacknum_{numtype : numtype, c : lane_((numtype : numtype <: lanetype))}((numtype : numtype <: lanetype), c) = c ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $lunpacknum_{packtype : packtype, c : lane_((packtype : packtype <: lanetype))}((packtype : packtype <: lanetype), c) = $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), U_sx, c) + def $lunpacknum_{packtype : packtype, c : lane_((packtype : packtype <: lanetype))}((packtype : packtype <: lanetype), c) = $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), `U`_sx, c) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $cunpacknum_(storagetype : storagetype, lit_ : lit_(storagetype)) : lit_(($cunpack(storagetype) : consttype <: storagetype)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $cunpacknum_{consttype : consttype, c : lit_((consttype : consttype <: storagetype))}((consttype : consttype <: storagetype), c) = c ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cunpacknum_{packtype : packtype, c : lit_((packtype : packtype <: storagetype))}((packtype : packtype <: storagetype), c) = $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), U_sx, c) + def $cunpacknum_{packtype : packtype, c : lit_((packtype : packtype <: storagetype))}((packtype : packtype <: storagetype), c) = $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), `U`_sx, c) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $unop_(numtype : numtype, unop_ : unop_(numtype), num_ : num_(numtype)) : num_(numtype)* ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), CLZ_unop_, i) = [$iclz_($sizenn((Inn : Inn <: numtype)), i)] + def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `CLZ`_unop_, i) = [$iclz_($sizenn((Inn : Inn <: numtype)), i)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), CTZ_unop_, i) = [$ictz_($sizenn((Inn : Inn <: numtype)), i)] + def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `CTZ`_unop_, i) = [$ictz_($sizenn((Inn : Inn <: numtype)), i)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), POPCNT_unop_, i) = [$ipopcnt_($sizenn((Inn : Inn <: numtype)), i)] + def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `POPCNT`_unop_, i) = [$ipopcnt_($sizenn((Inn : Inn <: numtype)), i)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, M : M, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), EXTEND_unop_(`%`_sz(M)), i) = [$iextend_($sizenn((Inn : Inn <: numtype)), M, S_sx, i)] + def $unop_{Inn : Inn, sz#154 : sz, i#10974 : nat, i#10981 : nat, M : M, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EXTEND`_unop_{sz#154, i#10974}(`%`_sz{i#10981}(M)), i) = [$iextend_($sizenn((Inn : Inn <: numtype)), M, `S`_sx, i)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), ABS_unop_, f) = $fabs_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `ABS`_unop_, f) = $fabs_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), NEG_unop_, f) = $fneg_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `NEG`_unop_, f) = $fneg_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), SQRT_unop_, f) = $fsqrt_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `SQRT`_unop_, f) = $fsqrt_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), CEIL_unop_, f) = $fceil_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `CEIL`_unop_, f) = $fceil_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), FLOOR_unop_, f) = $ffloor_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `FLOOR`_unop_, f) = $ffloor_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), TRUNC_unop_, f) = $ftrunc_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `TRUNC`_unop_, f) = $ftrunc_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), NEAREST_unop_, f) = $fnearest_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `NEAREST`_unop_, f) = $fnearest_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $binop_(numtype : numtype, binop_ : binop_(numtype), num_ : num_(numtype), num_ : num_(numtype)) : num_(numtype)* ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), ADD_binop_, i_1, i_2) = [$iadd_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `ADD`_binop_, i_1, i_2) = [$iadd_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), SUB_binop_, i_1, i_2) = [$isub_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `SUB`_binop_, i_1, i_2) = [$isub_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), MUL_binop_, i_1, i_2) = [$imul_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `MUL`_binop_, i_1, i_2) = [$imul_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), DIV_binop_(sx), i_1, i_2) = lift($idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) + def $binop_{Inn : Inn, sx#58 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `DIV`_binop_{sx#58}(sx), i_1, i_2) = lift($idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), REM_binop_(sx), i_1, i_2) = lift($irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) + def $binop_{Inn : Inn, sx#60 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `REM`_binop_{sx#60}(sx), i_1, i_2) = lift($irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), AND_binop_, i_1, i_2) = [$iand_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `AND`_binop_, i_1, i_2) = [$iand_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), OR_binop_, i_1, i_2) = [$ior_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `OR`_binop_, i_1, i_2) = [$ior_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), XOR_binop_, i_1, i_2) = [$ixor_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `XOR`_binop_, i_1, i_2) = [$ixor_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), SHL_binop_, i_1, i_2) = [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32(i_2!`%`_num_.0))] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype)), i#11714 : nat, i#11713 : nat}((Inn : Inn <: numtype), `SHL`_binop_, i_1, i_2) = [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32{i#11714}(i_2!`%`_num_{i#11713}.0))] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), SHR_binop_(sx), i_1, i_2) = [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32(i_2!`%`_num_.0))] + def $binop_{Inn : Inn, sx#62 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype)), i#11808 : nat, i#11807 : nat}((Inn : Inn <: numtype), `SHR`_binop_{sx#62}(sx), i_1, i_2) = [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32{i#11808}(i_2!`%`_num_{i#11807}.0))] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), ROTL_binop_, i_1, i_2) = [$irotl_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `ROTL`_binop_, i_1, i_2) = [$irotl_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), ROTR_binop_, i_1, i_2) = [$irotr_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `ROTR`_binop_, i_1, i_2) = [$irotr_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), ADD_binop_, f_1, f_2) = $fadd_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `ADD`_binop_, f_1, f_2) = $fadd_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), SUB_binop_, f_1, f_2) = $fsub_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `SUB`_binop_, f_1, f_2) = $fsub_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), MUL_binop_, f_1, f_2) = $fmul_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `MUL`_binop_, f_1, f_2) = $fmul_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), DIV_binop_, f_1, f_2) = $fdiv_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `DIV`_binop_, f_1, f_2) = $fdiv_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), MIN_binop_, f_1, f_2) = $fmin_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `MIN`_binop_, f_1, f_2) = $fmin_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), MAX_binop_, f_1, f_2) = $fmax_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `MAX`_binop_, f_1, f_2) = $fmax_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), COPYSIGN_binop_, f_1, f_2) = $fcopysign_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `COPYSIGN`_binop_, f_1, f_2) = $fcopysign_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $testop_(numtype : numtype, testop_ : testop_(numtype), num_ : num_(numtype)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $testop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), EQZ_testop_, i) = $ieqz_($sizenn((Inn : Inn <: numtype)), i) + def $testop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EQZ`_testop_, i) = $ieqz_($sizenn((Inn : Inn <: numtype)), i) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $relop_(numtype : numtype, relop_ : relop_(numtype), num_ : num_(numtype), num_ : num_(numtype)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), EQ_relop_, i_1, i_2) = $ieq_($sizenn((Inn : Inn <: numtype)), i_1, i_2) + def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EQ`_relop_, i_1, i_2) = $ieq_($sizenn((Inn : Inn <: numtype)), i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), NE_relop_, i_1, i_2) = $ine_($sizenn((Inn : Inn <: numtype)), i_1, i_2) + def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `NE`_relop_, i_1, i_2) = $ine_($sizenn((Inn : Inn <: numtype)), i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), LT_relop_(sx), i_1, i_2) = $ilt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) + def $relop_{Inn : Inn, sx#64 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LT`_relop_{sx#64}(sx), i_1, i_2) = $ilt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), GT_relop_(sx), i_1, i_2) = $igt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) + def $relop_{Inn : Inn, sx#66 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GT`_relop_{sx#66}(sx), i_1, i_2) = $igt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), LE_relop_(sx), i_1, i_2) = $ile_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) + def $relop_{Inn : Inn, sx#68 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LE`_relop_{sx#68}(sx), i_1, i_2) = $ile_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), GE_relop_(sx), i_1, i_2) = $ige_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) + def $relop_{Inn : Inn, sx#70 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GE`_relop_{sx#70}(sx), i_1, i_2) = $ige_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), EQ_relop_, f_1, f_2) = $feq_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `EQ`_relop_, f_1, f_2) = $feq_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), NE_relop_, f_1, f_2) = $fne_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `NE`_relop_, f_1, f_2) = $fne_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), LT_relop_, f_1, f_2) = $flt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `LT`_relop_, f_1, f_2) = $flt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), GT_relop_, f_1, f_2) = $fgt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `GT`_relop_, f_1, f_2) = $fgt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), LE_relop_, f_1, f_2) = $fle_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `LE`_relop_, f_1, f_2) = $fle_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), GE_relop_, f_1, f_2) = $fge_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `GE`_relop_, f_1, f_2) = $fge_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype_1, numtype_2), num_ : num_(numtype_1)) : num_(numtype_2)* ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), EXTEND_cvtop__(sx), i_1) = [$extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)] + def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, sx#72 : sx, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `EXTEND`_cvtop__{sx#72}(sx), i_1) = [$extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), WRAP_cvtop__, i_1) = [$wrap__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), i_1)] + def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `WRAP`_cvtop__, i_1) = [$wrap__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), i_1)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), TRUNC_cvtop__(sx), f_1) = lift($trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) + def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx#74 : sx, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC`_cvtop__{sx#74}(sx), f_1) = lift($trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), TRUNC_SAT_cvtop__(sx), f_1) = lift($trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) + def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx#76 : sx, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC_SAT`_cvtop__{sx#76}(sx), f_1) = lift($trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), CONVERT_cvtop__(sx), i_1) = [$convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)] + def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, sx#78 : sx, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), `CONVERT`_cvtop__{sx#78}(sx), i_1) = [$convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype), PROMOTE_cvtop__, f_1) = $promote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1) + def $cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype), `PROMOTE`_cvtop__, f_1) = $promote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype), DEMOTE_cvtop__, f_1) = $demote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1) + def $cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype), `DEMOTE`_cvtop__, f_1) = $demote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), REINTERPRET_cvtop__, i_1) = [$reinterpret__((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), i_1)] + def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), `REINTERPRET`_cvtop__, i_1) = [$reinterpret__((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), i_1)] -- if ($size((Inn_1 : Inn <: numtype)) = $size((Fnn_2 : Fnn <: numtype))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), REINTERPRET_cvtop__, f_1) = [$reinterpret__((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), f_1)] + def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `REINTERPRET`_cvtop__, f_1) = [$reinterpret__((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), f_1)] -- if ($size((Fnn_1 : Fnn <: numtype)) = $size((Inn_2 : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $lanes_(shape : shape, vec_ : vec_(V128_Vnn)) : lane_($lanetype(shape))* +def $lanes_(shape : shape, vec_ : vec_(`V128`_Vnn)) : lane_($lanetype(shape))* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $inv_lanes_(shape : shape, lane_($lanetype(shape))*) : vec_(V128_Vnn) +def $inv_lanes_(shape : shape, lane_($lanetype(shape))*) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $zeroop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2)) : zero? ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), EXTEND_vcvtop__(half, sx)) = ?() + def $zeroop{lanetype#801 : lanetype, dim#801 : dim, i#12568 : nat, Jnn_1 : Jnn, i#12575 : nat, M_1 : M, lanetype#813 : lanetype, dim#813 : dim, i#12580 : nat, Jnn_2 : Jnn, i#12587 : nat, M_2 : M, half#1 : half, sx#80 : sx, half : half, sx : sx}(`%X%`_shape{lanetype#801, dim#801, i#12568}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12575}(M_1)), `%X%`_shape{lanetype#813, dim#813, i#12580}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12587}(M_2)), `EXTEND`_vcvtop__{half#1, sx#80}(half, sx)) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), CONVERT_vcvtop__(half?{half <- `half?`}, sx)) = ?() + def $zeroop{lanetype#825 : lanetype, dim#825 : dim, i#12592 : nat, Jnn_1 : Jnn, i#12599 : nat, M_1 : M, lanetype#837 : lanetype, dim#837 : dim, i#12604 : nat, Fnn_2 : Fnn, i#12611 : nat, M_2 : M, `half?#1` : half?, sx#82 : sx, `half?` : half?, sx : sx}(`%X%`_shape{lanetype#825, dim#825, i#12592}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12599}(M_1)), `%X%`_shape{lanetype#837, dim#837, i#12604}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12611}(M_2)), `CONVERT`_vcvtop__{`half?#1`, sx#82}(half?{half <- `half?`}, sx)) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), TRUNC_SAT_vcvtop__(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} + def $zeroop{lanetype#864 : lanetype, dim#864 : dim, i#12631 : nat, Fnn_1 : Fnn, i#12638 : nat, M_1 : M, lanetype#876 : lanetype, dim#876 : dim, i#12643 : nat, Jnn_2 : Jnn, i#12650 : nat, M_2 : M, sx#84 : sx, `zero?#1` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#864, dim#864, i#12631}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12638}(M_1)), `%X%`_shape{lanetype#876, dim#876, i#12643}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12650}(M_2)), `TRUNC_SAT`_vcvtop__{sx#84, `zero?#1`}(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), RELAXED_TRUNC_vcvtop__(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} + def $zeroop{lanetype#918 : lanetype, dim#918 : dim, i#12685 : nat, Fnn_1 : Fnn, i#12692 : nat, M_1 : M, lanetype#930 : lanetype, dim#930 : dim, i#12697 : nat, Jnn_2 : Jnn, i#12704 : nat, M_2 : M, sx#86 : sx, `zero?#3` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#918, dim#918, i#12685}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12692}(M_1)), `%X%`_shape{lanetype#930, dim#930, i#12697}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12704}(M_2)), `RELAXED_TRUNC`_vcvtop__{sx#86, `zero?#3`}(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, zero : zero}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), DEMOTE_vcvtop__(zero)) = ?(zero) + def $zeroop{lanetype#972 : lanetype, dim#972 : dim, i#12739 : nat, Fnn_1 : Fnn, i#12746 : nat, M_1 : M, lanetype#984 : lanetype, dim#984 : dim, i#12751 : nat, Fnn_2 : Fnn, i#12758 : nat, M_2 : M, zero#1 : zero, zero : zero}(`%X%`_shape{lanetype#972, dim#972, i#12739}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12746}(M_1)), `%X%`_shape{lanetype#984, dim#984, i#12751}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12758}(M_2)), `DEMOTE`_vcvtop__{zero#1}(zero)) = ?(zero) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__) = ?() + def $zeroop{lanetype#1041 : lanetype, dim#1041 : dim, i#12808 : nat, Fnn_1 : Fnn, i#12815 : nat, M_1 : M, lanetype#1053 : lanetype, dim#1053 : dim, i#12820 : nat, Fnn_2 : Fnn, i#12827 : nat, M_2 : M}(`%X%`_shape{lanetype#1041, dim#1041, i#12808}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12815}(M_1)), `%X%`_shape{lanetype#1053, dim#1053, i#12820}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12827}(M_2)), `PROMOTELOW`_vcvtop__) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $halfop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2)) : half? ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), EXTEND_vcvtop__(half, sx)) = ?(half) + def $halfop{lanetype#1122 : lanetype, dim#1122 : dim, i#12881 : nat, Jnn_1 : Jnn, i#12888 : nat, M_1 : M, lanetype#1134 : lanetype, dim#1134 : dim, i#12893 : nat, Jnn_2 : Jnn, i#12900 : nat, M_2 : M, half#3 : half, sx#88 : sx, half : half, sx : sx}(`%X%`_shape{lanetype#1122, dim#1122, i#12881}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12888}(M_1)), `%X%`_shape{lanetype#1134, dim#1134, i#12893}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12900}(M_2)), `EXTEND`_vcvtop__{half#3, sx#88}(half, sx)) = ?(half) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), CONVERT_vcvtop__(half?{half <- `half?`}, sx)) = half?{half <- `half?`} + def $halfop{lanetype#1146 : lanetype, dim#1146 : dim, i#12905 : nat, Jnn_1 : Jnn, i#12912 : nat, M_1 : M, lanetype#1158 : lanetype, dim#1158 : dim, i#12917 : nat, Fnn_2 : Fnn, i#12924 : nat, M_2 : M, `half?#3` : half?, sx#90 : sx, `half?` : half?, sx : sx}(`%X%`_shape{lanetype#1146, dim#1146, i#12905}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12912}(M_1)), `%X%`_shape{lanetype#1158, dim#1158, i#12917}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12924}(M_2)), `CONVERT`_vcvtop__{`half?#3`, sx#90}(half?{half <- `half?`}, sx)) = half?{half <- `half?`} ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), TRUNC_SAT_vcvtop__(sx, zero?{zero <- `zero?`})) = ?() + def $halfop{lanetype#1185 : lanetype, dim#1185 : dim, i#12944 : nat, Fnn_1 : Fnn, i#12951 : nat, M_1 : M, lanetype#1197 : lanetype, dim#1197 : dim, i#12956 : nat, Jnn_2 : Jnn, i#12963 : nat, M_2 : M, sx#92 : sx, `zero?#5` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#1185, dim#1185, i#12944}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12951}(M_1)), `%X%`_shape{lanetype#1197, dim#1197, i#12956}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12963}(M_2)), `TRUNC_SAT`_vcvtop__{sx#92, `zero?#5`}(sx, zero?{zero <- `zero?`})) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), RELAXED_TRUNC_vcvtop__(sx, zero?{zero <- `zero?`})) = ?() + def $halfop{lanetype#1239 : lanetype, dim#1239 : dim, i#12998 : nat, Fnn_1 : Fnn, i#13005 : nat, M_1 : M, lanetype#1251 : lanetype, dim#1251 : dim, i#13010 : nat, Jnn_2 : Jnn, i#13017 : nat, M_2 : M, sx#94 : sx, `zero?#7` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#1239, dim#1239, i#12998}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13005}(M_1)), `%X%`_shape{lanetype#1251, dim#1251, i#13010}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#13017}(M_2)), `RELAXED_TRUNC`_vcvtop__{sx#94, `zero?#7`}(sx, zero?{zero <- `zero?`})) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, zero : zero}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), DEMOTE_vcvtop__(zero)) = ?() + def $halfop{lanetype#1293 : lanetype, dim#1293 : dim, i#13052 : nat, Fnn_1 : Fnn, i#13059 : nat, M_1 : M, lanetype#1305 : lanetype, dim#1305 : dim, i#13064 : nat, Fnn_2 : Fnn, i#13071 : nat, M_2 : M, zero#3 : zero, zero : zero}(`%X%`_shape{lanetype#1293, dim#1293, i#13052}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13059}(M_1)), `%X%`_shape{lanetype#1305, dim#1305, i#13064}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13071}(M_2)), `DEMOTE`_vcvtop__{zero#3}(zero)) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__) = ?(LOW_half) + def $halfop{lanetype#1362 : lanetype, dim#1362 : dim, i#13121 : nat, Fnn_1 : Fnn, i#13128 : nat, M_1 : M, lanetype#1374 : lanetype, dim#1374 : dim, i#13133 : nat, Fnn_2 : Fnn, i#13140 : nat, M_2 : M}(`%X%`_shape{lanetype#1362, dim#1362, i#13121}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13128}(M_1)), `%X%`_shape{lanetype#1374, dim#1374, i#13133}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13140}(M_2)), `PROMOTELOW`_vcvtop__) = ?(`LOW`_half) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $half(half : half, nat : nat, nat : nat) : nat ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $half{i : nat, j : nat}(LOW_half, i, j) = i + def $half{i : nat, j : nat}(`LOW`_half, i, j) = i ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $half{i : nat, j : nat}(HIGH_half, i, j) = j + def $half{i : nat, j : nat}(`HIGH`_half, i, j) = j ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $iswizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN.0] - -- if (i!`%`_iN.0 < |c*{c <- `c*`}|) + def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13213 : nat, i#13205 : nat}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN{i#13213}.0] + -- if (i!`%`_iN{i#13205}.0 < |c*{c <- `c*`}|) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = `%`_iN(0) + def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13239 : nat}(N, c*{c <- `c*`}, i) = `%`_iN{i#13239}(0) -- otherwise ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN.0] - -- if (i!`%`_iN.0 < |c*{c <- `c*`}|) + def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13267 : nat, i#13259 : nat}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN{i#13267}.0] + -- if (i!`%`_iN{i#13259}.0 < |c*{c <- `c*`}|) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = `%`_iN(0) - -- if ($signed_(N, i!`%`_iN.0) < (0 : nat <:> int)) + def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13295 : nat, i#13287 : nat}(N, c*{c <- `c*`}, i) = `%`_iN{i#13295}(0) + -- if ($signed_(N, i!`%`_iN{i#13287}.0) < (0 : nat <:> int)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = $relaxed2($R_swizzle, syntax iN(N), `%`_iN(0), c*{c <- `c*`}[(i!`%`_iN.0 \ |c*{c <- `c*`}|)]) + def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13333 : nat, i#13341 : nat}(N, c*{c <- `c*`}, i) = $relaxed2($R_swizzle, syntax iN(N), `%`_iN{i#13333}(0), c*{c <- `c*`}[(i!`%`_iN{i#13341}.0 \ |c*{c <- `c*`}|)]) -- otherwise ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivunop_(shape : shape, def $f_(N : N, iN : iN(N)) : iN(N), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* +def $ivunop_(shape : shape, def $f_(N : N, iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivunop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N)) : iN(N), v_1 : vec_(V128_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + def $ivunop_{lanetype#1431 : lanetype, dim#1431 : dim, i#13346 : nat, Jnn : Jnn, i#13353 : nat, M : M, def $f_(N : N, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), lanetype#1469 : lanetype, dim#1469 : dim, i#13506 : nat, i#13513 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#1443 : lanetype, dim#1443 : dim, i#13370 : nat, i#13377 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))*}(`%X%`_shape{lanetype#1431, dim#1431, i#13346}((Jnn : Jnn <: lanetype), `%`_dim{i#13353}(M)), def $f_, v_1) = [$inv_lanes_(`%X%`_shape{lanetype#1469, dim#1469, i#13506}((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M)), c*{c <- `c*`})] + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M)), v_1)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1)*{c_1 <- `c_1*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $fvunop_(shape : shape, def $f_(N : N, fN : fN(N)) : fN(N)*, vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* +def $fvunop_(shape : shape, def $f_(N : N, fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvunop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N)) : fN(N)*, v_1 : vec_(V128_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) + def $fvunop_{lanetype#1493 : lanetype, dim#1493 : dim, i#13579 : nat, Fnn : Fnn, i#13586 : nat, M : M, def $f_(N : N, fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `dim#1532*` : dim*, `i#13693*` : nat*, `i#13700*` : nat*, `lanetype#1532*` : lanetype*, lanetype#1505 : lanetype, dim#1505 : dim, i#13603 : nat, i#13610 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))*}(`%X%`_shape{lanetype#1493, dim#1493, i#13579}((Fnn : Fnn <: lanetype), `%`_dim{i#13586}(M)), def $f_, v_1) = $inv_lanes_(`%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1532 <- `dim#1532*`, i#13693 <- `i#13693*`, i#13700 <- `i#13700*`, lanetype#1532 <- `lanetype#1532*`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M)), v_1)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1)*{c_1 <- `c_1*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivbinop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* +def $ivbinop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) + def $ivbinop_{lanetype#1555 : lanetype, dim#1555 : dim, i#13738 : nat, Jnn : Jnn, i#13745 : nat, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#1619 : lanetype, dim#1619 : dim, i#14011 : nat, i#14018 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#1567 : lanetype, dim#1567 : dim, i#13774 : nat, i#13781 : nat, lanetype#1592 : lanetype, dim#1592 : dim, i#13860 : nat, i#13867 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))*}(`%X%`_shape{lanetype#1555, dim#1555, i#13738}((Jnn : Jnn <: lanetype), `%`_dim{i#13745}(M)), def $f_, v_1, v_2) = [$inv_lanes_(`%X%`_shape{lanetype#1619, dim#1619, i#14011}((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M)), c*{c <- `c*`})] + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M)), v_2)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivbinopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* +def $ivbinopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) + def $ivbinopsx_{lanetype#1643 : lanetype, dim#1643 : dim, i#14084 : nat, Jnn : Jnn, i#14091 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#1707 : lanetype, dim#1707 : dim, i#14357 : nat, i#14364 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#1655 : lanetype, dim#1655 : dim, i#14120 : nat, i#14127 : nat, lanetype#1680 : lanetype, dim#1680 : dim, i#14206 : nat, i#14213 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))*}(`%X%`_shape{lanetype#1643, dim#1643, i#14084}((Jnn : Jnn <: lanetype), `%`_dim{i#14091}(M)), def $f_, sx, v_1, v_2) = [$inv_lanes_(`%X%`_shape{lanetype#1707, dim#1707, i#14357}((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M)), c*{c <- `c*`})] + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M)), v_2)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivbinopsxnd_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* +def $ivbinopsxnd_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinopsxnd_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) + def $ivbinopsxnd_{lanetype#1731 : lanetype, dim#1731 : dim, i#14430 : nat, Jnn : Jnn, i#14437 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `dim#1803*` : dim*, `i#14919*` : nat*, `i#14926*` : nat*, `lanetype#1803*` : lanetype*, lanetype#1743 : lanetype, dim#1743 : dim, i#14466 : nat, i#14473 : nat, lanetype#1768 : lanetype, dim#1768 : dim, i#14552 : nat, i#14559 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))*}(`%X%`_shape{lanetype#1731, dim#1731, i#14430}((Jnn : Jnn <: lanetype), `%`_dim{i#14437}(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1803 <- `dim#1803*`, i#14919 <- `i#14919*`, i#14926 <- `i#14926*`, lanetype#1803 <- `lanetype#1803*`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M)), v_2)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $fvbinop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* +def $fvbinop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvbinop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) + def $fvbinop_{lanetype#1827 : lanetype, dim#1827 : dim, i#14990 : nat, Fnn : Fnn, i#14997 : nat, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `dim#1893*` : dim*, `i#15183*` : nat*, `i#15190*` : nat*, `lanetype#1893*` : lanetype*, lanetype#1839 : lanetype, dim#1839 : dim, i#15026 : nat, i#15033 : nat, lanetype#1863 : lanetype, dim#1863 : dim, i#15084 : nat, i#15091 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))*}(`%X%`_shape{lanetype#1827, dim#1827, i#14990}((Fnn : Fnn <: lanetype), `%`_dim{i#14997}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1893 <- `dim#1893*`, i#15183 <- `i#15183*`, i#15190 <- `i#15190*`, lanetype#1893 <- `lanetype#1893*`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M)), v_2)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivternopnd_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* +def $ivternopnd_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivternopnd_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), v_3 : vec_(V128_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_3)) + def $ivternopnd_{lanetype#1916 : lanetype, dim#1916 : dim, i#15228 : nat, Jnn : Jnn, i#15235 : nat, M : M, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `dim#2018*` : dim*, `i#15890*` : nat*, `i#15897*` : nat*, `lanetype#2018*` : lanetype*, lanetype#1928 : lanetype, dim#1928 : dim, i#15276 : nat, i#15283 : nat, lanetype#1953 : lanetype, dim#1953 : dim, i#15362 : nat, i#15369 : nat, lanetype#1978 : lanetype, dim#1978 : dim, i#15448 : nat, i#15455 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))*}(`%X%`_shape{lanetype#1916, dim#1916, i#15228}((Jnn : Jnn <: lanetype), `%`_dim{i#15235}(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#2018 <- `dim#2018*`, i#15890 <- `i#15890*`, i#15897 <- `i#15897*`, lanetype#2018 <- `lanetype#2018*`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M)), v_2)) + -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M)), v_3)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $fvternop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* +def $fvternop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvternop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), v_3 : vec_(V128_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_3)) + def $fvternop_{lanetype#2042 : lanetype, dim#2042 : dim, i#15961 : nat, Fnn : Fnn, i#15968 : nat, M : M, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `dim#2135*` : dim*, `i#16233*` : nat*, `i#16240*` : nat*, `lanetype#2135*` : lanetype*, lanetype#2054 : lanetype, dim#2054 : dim, i#16009 : nat, i#16016 : nat, lanetype#2078 : lanetype, dim#2078 : dim, i#16067 : nat, i#16074 : nat, lanetype#2102 : lanetype, dim#2102 : dim, i#16125 : nat, i#16132 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))*}(`%X%`_shape{lanetype#2042, dim#2042, i#15961}((Fnn : Fnn <: lanetype), `%`_dim{i#15968}(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#2135 <- `dim#2135*`, i#16233 <- `i#16233*`, i#16240 <- `i#16240*`, lanetype#2135 <- `lanetype#2135*`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M)), v_2)) + -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M)), v_3)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivrelop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $ivrelop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivrelop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), S_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) + def $ivrelop_{lanetype#2158 : lanetype, dim#2158 : dim, i#16278 : nat, Jnn : Jnn, i#16285 : nat, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2222 : lanetype, dim#2222 : dim, i#16597 : nat, i#16604 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2170 : lanetype, dim#2170 : dim, i#16314 : nat, i#16321 : nat, lanetype#2195 : lanetype, dim#2195 : dim, i#16400 : nat, i#16407 : nat, `i#16555*` : nat*, `i#16556*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))*}(`%X%`_shape{lanetype#2158, dim#2158, i#16278}((Jnn : Jnn <: lanetype), `%`_dim{i#16285}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2222, dim#2222, i#16597}((Jnn : Jnn <: lanetype), `%`_dim{i#16604}(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M)), v_2)) + -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16556}($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16555 <- `i#16555*`, i#16556 <- `i#16556*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivrelopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $ivrelopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivrelopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), S_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) + def $ivrelopsx_{lanetype#2246 : lanetype, dim#2246 : dim, i#16670 : nat, Jnn : Jnn, i#16677 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2310 : lanetype, dim#2310 : dim, i#16989 : nat, i#16996 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2258 : lanetype, dim#2258 : dim, i#16706 : nat, i#16713 : nat, lanetype#2283 : lanetype, dim#2283 : dim, i#16792 : nat, i#16799 : nat, `i#16947*` : nat*, `i#16948*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))*}(`%X%`_shape{lanetype#2246, dim#2246, i#16670}((Jnn : Jnn <: lanetype), `%`_dim{i#16677}(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2310, dim#2310, i#16989}((Jnn : Jnn <: lanetype), `%`_dim{i#16996}(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M)), v_2)) + -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16948}($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16947 <- `i#16947*`, i#16948 <- `i#16948*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $fvrelop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $fvrelop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvrelop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), Inn : Inn, `c*` : iN($sizenn((Fnn : Fnn <: numtype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Inn : Inn <: lanetype), `%`_dim(M)), `%`_lane_(c!`%`_iN.0)*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), S_sx, `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) + def $fvrelop_{lanetype#2334 : lanetype, dim#2334 : dim, i#17062 : nat, Fnn : Fnn, i#17069 : nat, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2396 : lanetype, dim#2396 : dim, i#17301 : nat, Inn : Inn, i#17308 : nat, `c*` : iN($sizenn((Fnn : Fnn <: numtype)))*, `i#17404*` : nat*, `i#17405*` : nat*, lanetype#2346 : lanetype, dim#2346 : dim, i#17098 : nat, i#17105 : nat, lanetype#2370 : lanetype, dim#2370 : dim, i#17156 : nat, i#17163 : nat, `i#17259*` : nat*, `i#17260*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))*}(`%X%`_shape{lanetype#2334, dim#2334, i#17062}((Fnn : Fnn <: lanetype), `%`_dim{i#17069}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2396, dim#2396, i#17301}((Inn : Inn <: lanetype), `%`_dim{i#17308}(M)), `%`_lane_{i#17405}(c!`%`_iN{i#17404}.0)*{c <- `c*`, i#17404 <- `i#17404*`, i#17405 <- `i#17405*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M)), v_2)) + -- if (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN{i#17260}($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#17259 <- `i#17259*`, i#17260 <- `i#17260*`}) -- if ($isize(Inn) = $fsize(Fnn)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivshiftop_(shape : shape, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), vec_ : vec_(V128_Vnn), u32 : u32) : vec_(V128_Vnn) +def $ivshiftop_(shape : shape, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshiftop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), v_1 : vec_(V128_Vnn), i : u32, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, i) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + def $ivshiftop_{lanetype#2421 : lanetype, dim#2421 : dim, i#17411 : nat, Jnn : Jnn, i#17418 : nat, M : M, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), v_1 : vec_(`V128`_Vnn), i : u32, lanetype#2459 : lanetype, dim#2459 : dim, i#17593 : nat, i#17600 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2433 : lanetype, dim#2433 : dim, i#17447 : nat, i#17454 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))*}(`%X%`_shape{lanetype#2421, dim#2421, i#17411}((Jnn : Jnn <: lanetype), `%`_dim{i#17418}(M)), def $f_, v_1, i) = $inv_lanes_(`%X%`_shape{lanetype#2459, dim#2459, i#17593}((Jnn : Jnn <: lanetype), `%`_dim{i#17600}(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M)), v_1)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, i)*{c_1 <- `c_1*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivshiftopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, vec_ : vec_(V128_Vnn), u32 : u32) : vec_(V128_Vnn) +def $ivshiftopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshiftopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, v_1 : vec_(V128_Vnn), i : u32, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, i) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + def $ivshiftopsx_{lanetype#2483 : lanetype, dim#2483 : dim, i#17666 : nat, Jnn : Jnn, i#17673 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), i : u32, lanetype#2521 : lanetype, dim#2521 : dim, i#17848 : nat, i#17855 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2495 : lanetype, dim#2495 : dim, i#17702 : nat, i#17709 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))*}(`%X%`_shape{lanetype#2483, dim#2483, i#17666}((Jnn : Jnn <: lanetype), `%`_dim{i#17673}(M)), def $f_, sx, v_1, i) = $inv_lanes_(`%X%`_shape{lanetype#2521, dim#2521, i#17848}((Jnn : Jnn <: lanetype), `%`_dim{i#17855}(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M)), v_1)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, i)*{c_1 <- `c_1*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivbitmaskop_(shape : shape, vec_ : vec_(V128_Vnn)) : u32 +def $ivbitmaskop_(shape : shape, vec_ : vec_(`V128`_Vnn)) : u32 ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbitmaskop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), c : iN(32), `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1) = $irev_(32, c) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if ($ibits_(32, c) = `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), S_sx, c_1, `%`_iN(0))!`%`_u32.0)*{c_1 <- `c_1*`} ++ `%`_bit(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){}) + def $ivbitmaskop_{lanetype#2545 : lanetype, dim#2545 : dim, i#17921 : nat, Jnn : Jnn, i#17928 : nat, M : M, v_1 : vec_(`V128`_Vnn), c : iN(32), lanetype#2557 : lanetype, dim#2557 : dim, i#17945 : nat, i#17952 : nat, `i#18238*` : nat*, `i#18256*` : nat*, `i#18257*` : nat*, `i#18272*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))*}(`%X%`_shape{lanetype#2545, dim#2545, i#17921}((Jnn : Jnn <: lanetype), `%`_dim{i#17928}(M)), v_1) = $irev_(32, c) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M)), v_1)) + -- if ($ibits_(32, c) = `%`_bit{i#18257}($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)*{c_1 <- `c_1*`, i#18238 <- `i#18238*`, i#18256 <- `i#18256*`, i#18257 <- `i#18257*`} ++ `%`_bit{i#18272}(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){i#18272 <- `i#18272*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivswizzlop_(shape : shape, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $ivswizzlop_(shape : shape, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivswizzlop_{Jnn : Jnn, M : M, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) + def $ivswizzlop_{lanetype#2584 : lanetype, dim#2584 : dim, i#18299 : nat, Jnn : Jnn, i#18306 : nat, M : M, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2648 : lanetype, dim#2648 : dim, i#18585 : nat, i#18592 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2596 : lanetype, dim#2596 : dim, i#18335 : nat, i#18342 : nat, lanetype#2621 : lanetype, dim#2621 : dim, i#18421 : nat, i#18428 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))*}(`%X%`_shape{lanetype#2584, dim#2584, i#18299}((Jnn : Jnn <: lanetype), `%`_dim{i#18306}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2648, dim#2648, i#18585}((Jnn : Jnn <: lanetype), `%`_dim{i#18592}(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M)), v_2)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1*{c_1 <- `c_1*`}, c_2)*{c_2 <- `c_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivshufflop_(shape : shape, laneidx*, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshufflop_{Jnn : Jnn, M : M, `i*` : laneidx*, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), i*{i <- `i*`}, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx.0]*{i <- `i*`}) + def $ivshufflop_{lanetype#2672 : lanetype, dim#2672 : dim, i#18658 : nat, Jnn : Jnn, i#18665 : nat, M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2760 : lanetype, dim#2760 : dim, i#19037 : nat, i#19044 : nat, lanetype#2684 : lanetype, dim#2684 : dim, i#18719 : nat, i#18726 : nat, lanetype#2709 : lanetype, dim#2709 : dim, i#18805 : nat, i#18812 : nat, `i#18958*` : nat*, `c*` : lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))*}(`%X%`_shape{lanetype#2672, dim#2672, i#18658}((Jnn : Jnn <: lanetype), `%`_dim{i#18665}(M)), i*{i <- `i*`}, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2760, dim#2760, i#19037}((Jnn : Jnn <: lanetype), `%`_dim{i#19044}(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M)), v_2)) + -- if (c*{c <- `c*`} = c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx{i#18958}.0]*{i <- `i*`, i#18958 <- `i#18958*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vvunop_(vectype : vectype, vvunop : vvunop, vec_ : vec_(vectype)) : vec_(vectype)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvunop_{Vnn : Vnn, v : vec_(Vnn)}(Vnn, NOT_vvunop, v) = [$inot_($vsizenn(Vnn), v)] + def $vvunop_{Vnn : Vnn, v : vec_(Vnn)}(Vnn, `NOT`_vvunop, v) = [$inot_($vsizenn(Vnn), v)] ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vvbinop_(vectype : vectype, vvbinop : vvbinop, vec_ : vec_(vectype), vec_ : vec_(vectype)) : vec_(vectype)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, AND_vvbinop, v_1, v_2) = [$iand_($vsizenn(Vnn), v_1, v_2)] + def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `AND`_vvbinop, v_1, v_2) = [$iand_($vsizenn(Vnn), v_1, v_2)] ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, ANDNOT_vvbinop, v_1, v_2) = [$iandnot_($vsizenn(Vnn), v_1, v_2)] + def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `ANDNOT`_vvbinop, v_1, v_2) = [$iandnot_($vsizenn(Vnn), v_1, v_2)] ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, OR_vvbinop, v_1, v_2) = [$ior_($vsizenn(Vnn), v_1, v_2)] + def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `OR`_vvbinop, v_1, v_2) = [$ior_($vsizenn(Vnn), v_1, v_2)] ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, XOR_vvbinop, v_1, v_2) = [$ixor_($vsizenn(Vnn), v_1, v_2)] + def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `XOR`_vvbinop, v_1, v_2) = [$ixor_($vsizenn(Vnn), v_1, v_2)] ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vvternop_(vectype : vectype, vvternop : vvternop, vec_ : vec_(vectype), vec_ : vec_(vectype), vec_ : vec_(vectype)) : vec_(vectype)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvternop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn), v_3 : vec_(Vnn)}(Vnn, BITSELECT_vvternop, v_1, v_2, v_3) = [$ibitselect_($vsizenn(Vnn), v_1, v_2, v_3)] + def $vvternop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn), v_3 : vec_(Vnn)}(Vnn, `BITSELECT`_vvternop, v_1, v_2, v_3) = [$ibitselect_($vsizenn(Vnn), v_1, v_2, v_3)] ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vunop_(shape : shape, vunop_ : vunop_(shape), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* +def $vunop_(shape : shape, vunop_ : vunop_(shape), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), ABS_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fabs_, v) + def $vunop_{lanetype#2845 : lanetype, dim#2845 : dim, i#19491 : nat, Fnn : Fnn, i#19498 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#2894 : lanetype, dim#2894 : dim, i#19593 : nat, i#19600 : nat}(`%X%`_shape{lanetype#2845, dim#2845, i#19491}((Fnn : Fnn <: lanetype), `%`_dim{i#19498}(M)), `ABS`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#2894, dim#2894, i#19593}((Fnn : Fnn <: lanetype), `%`_dim{i#19600}(M)), def $fabs_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), NEG_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fneg_, v) + def $vunop_{lanetype#2906 : lanetype, dim#2906 : dim, i#19615 : nat, Fnn : Fnn, i#19622 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#2955 : lanetype, dim#2955 : dim, i#19717 : nat, i#19724 : nat}(`%X%`_shape{lanetype#2906, dim#2906, i#19615}((Fnn : Fnn <: lanetype), `%`_dim{i#19622}(M)), `NEG`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#2955, dim#2955, i#19717}((Fnn : Fnn <: lanetype), `%`_dim{i#19724}(M)), def $fneg_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), SQRT_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsqrt_, v) + def $vunop_{lanetype#2967 : lanetype, dim#2967 : dim, i#19739 : nat, Fnn : Fnn, i#19746 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3016 : lanetype, dim#3016 : dim, i#19841 : nat, i#19848 : nat}(`%X%`_shape{lanetype#2967, dim#2967, i#19739}((Fnn : Fnn <: lanetype), `%`_dim{i#19746}(M)), `SQRT`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3016, dim#3016, i#19841}((Fnn : Fnn <: lanetype), `%`_dim{i#19848}(M)), def $fsqrt_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), CEIL_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fceil_, v) + def $vunop_{lanetype#3028 : lanetype, dim#3028 : dim, i#19863 : nat, Fnn : Fnn, i#19870 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3077 : lanetype, dim#3077 : dim, i#19965 : nat, i#19972 : nat}(`%X%`_shape{lanetype#3028, dim#3028, i#19863}((Fnn : Fnn <: lanetype), `%`_dim{i#19870}(M)), `CEIL`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3077, dim#3077, i#19965}((Fnn : Fnn <: lanetype), `%`_dim{i#19972}(M)), def $fceil_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), FLOOR_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ffloor_, v) + def $vunop_{lanetype#3089 : lanetype, dim#3089 : dim, i#19987 : nat, Fnn : Fnn, i#19994 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3138 : lanetype, dim#3138 : dim, i#20089 : nat, i#20096 : nat}(`%X%`_shape{lanetype#3089, dim#3089, i#19987}((Fnn : Fnn <: lanetype), `%`_dim{i#19994}(M)), `FLOOR`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3138, dim#3138, i#20089}((Fnn : Fnn <: lanetype), `%`_dim{i#20096}(M)), def $ffloor_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), TRUNC_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ftrunc_, v) + def $vunop_{lanetype#3150 : lanetype, dim#3150 : dim, i#20111 : nat, Fnn : Fnn, i#20118 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3199 : lanetype, dim#3199 : dim, i#20213 : nat, i#20220 : nat}(`%X%`_shape{lanetype#3150, dim#3150, i#20111}((Fnn : Fnn <: lanetype), `%`_dim{i#20118}(M)), `TRUNC`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3199, dim#3199, i#20213}((Fnn : Fnn <: lanetype), `%`_dim{i#20220}(M)), def $ftrunc_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), NEAREST_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fnearest_, v) + def $vunop_{lanetype#3211 : lanetype, dim#3211 : dim, i#20235 : nat, Fnn : Fnn, i#20242 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3260 : lanetype, dim#3260 : dim, i#20337 : nat, i#20344 : nat}(`%X%`_shape{lanetype#3211, dim#3211, i#20235}((Fnn : Fnn <: lanetype), `%`_dim{i#20242}(M)), `NEAREST`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3260, dim#3260, i#20337}((Fnn : Fnn <: lanetype), `%`_dim{i#20344}(M)), def $fnearest_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Jnn : Jnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), ABS_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iabs_, v) + def $vunop_{lanetype#3272 : lanetype, dim#3272 : dim, i#20359 : nat, Jnn : Jnn, i#20366 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3308 : lanetype, dim#3308 : dim, i#20448 : nat, i#20455 : nat}(`%X%`_shape{lanetype#3272, dim#3272, i#20359}((Jnn : Jnn <: lanetype), `%`_dim{i#20366}(M)), `ABS`_vunop_, v) = $ivunop_(`%X%`_shape{lanetype#3308, dim#3308, i#20448}((Jnn : Jnn <: lanetype), `%`_dim{i#20455}(M)), def $iabs_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Jnn : Jnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), NEG_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ineg_, v) + def $vunop_{lanetype#3320 : lanetype, dim#3320 : dim, i#20470 : nat, Jnn : Jnn, i#20477 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3356 : lanetype, dim#3356 : dim, i#20559 : nat, i#20566 : nat}(`%X%`_shape{lanetype#3320, dim#3320, i#20470}((Jnn : Jnn <: lanetype), `%`_dim{i#20477}(M)), `NEG`_vunop_, v) = $ivunop_(`%X%`_shape{lanetype#3356, dim#3356, i#20559}((Jnn : Jnn <: lanetype), `%`_dim{i#20566}(M)), def $ineg_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Jnn : Jnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), POPCNT_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ipopcnt_, v) + def $vunop_{lanetype#3368 : lanetype, dim#3368 : dim, i#20581 : nat, Jnn : Jnn, i#20588 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3404 : lanetype, dim#3404 : dim, i#20670 : nat, i#20677 : nat}(`%X%`_shape{lanetype#3368, dim#3368, i#20581}((Jnn : Jnn <: lanetype), `%`_dim{i#20588}(M)), `POPCNT`_vunop_, v) = $ivunop_(`%X%`_shape{lanetype#3404, dim#3404, i#20670}((Jnn : Jnn <: lanetype), `%`_dim{i#20677}(M)), def $ipopcnt_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vbinop_(shape : shape, vbinop_ : vbinop_(shape), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* +def $vbinop_(shape : shape, vbinop_ : vbinop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), ADD_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_, v_1, v_2) + def $vbinop_{lanetype#3416 : lanetype, dim#3416 : dim, i#20692 : nat, Jnn : Jnn, i#20699 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3452 : lanetype, dim#3452 : dim, i#20813 : nat, i#20820 : nat}(`%X%`_shape{lanetype#3416, dim#3416, i#20692}((Jnn : Jnn <: lanetype), `%`_dim{i#20699}(M)), `ADD`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape{lanetype#3452, dim#3452, i#20813}((Jnn : Jnn <: lanetype), `%`_dim{i#20820}(M)), def $iadd_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), SUB_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_, v_1, v_2) + def $vbinop_{lanetype#3464 : lanetype, dim#3464 : dim, i#20845 : nat, Jnn : Jnn, i#20852 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3500 : lanetype, dim#3500 : dim, i#20966 : nat, i#20973 : nat}(`%X%`_shape{lanetype#3464, dim#3464, i#20845}((Jnn : Jnn <: lanetype), `%`_dim{i#20852}(M)), `SUB`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape{lanetype#3500, dim#3500, i#20966}((Jnn : Jnn <: lanetype), `%`_dim{i#20973}(M)), def $isub_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), MUL_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imul_, v_1, v_2) + def $vbinop_{lanetype#3512 : lanetype, dim#3512 : dim, i#20998 : nat, Jnn : Jnn, i#21005 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3548 : lanetype, dim#3548 : dim, i#21119 : nat, i#21126 : nat}(`%X%`_shape{lanetype#3512, dim#3512, i#20998}((Jnn : Jnn <: lanetype), `%`_dim{i#21005}(M)), `MUL`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape{lanetype#3548, dim#3548, i#21119}((Jnn : Jnn <: lanetype), `%`_dim{i#21126}(M)), def $imul_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), ADD_SAT_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_sat_, sx, v_1, v_2) + def $vbinop_{lanetype#3560 : lanetype, dim#3560 : dim, i#21151 : nat, Jnn : Jnn, i#21158 : nat, M : M, sx#96 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3596 : lanetype, dim#3596 : dim, i#21272 : nat, i#21279 : nat}(`%X%`_shape{lanetype#3560, dim#3560, i#21151}((Jnn : Jnn <: lanetype), `%`_dim{i#21158}(M)), `ADD_SAT`_vbinop_{sx#96}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3596, dim#3596, i#21272}((Jnn : Jnn <: lanetype), `%`_dim{i#21279}(M)), def $iadd_sat_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), SUB_SAT_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_sat_, sx, v_1, v_2) + def $vbinop_{lanetype#3608 : lanetype, dim#3608 : dim, i#21304 : nat, Jnn : Jnn, i#21311 : nat, M : M, sx#98 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3644 : lanetype, dim#3644 : dim, i#21425 : nat, i#21432 : nat}(`%X%`_shape{lanetype#3608, dim#3608, i#21304}((Jnn : Jnn <: lanetype), `%`_dim{i#21311}(M)), `SUB_SAT`_vbinop_{sx#98}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3644, dim#3644, i#21425}((Jnn : Jnn <: lanetype), `%`_dim{i#21432}(M)), def $isub_sat_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), MIN_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imin_, sx, v_1, v_2) + def $vbinop_{lanetype#3656 : lanetype, dim#3656 : dim, i#21457 : nat, Jnn : Jnn, i#21464 : nat, M : M, sx#100 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3692 : lanetype, dim#3692 : dim, i#21578 : nat, i#21585 : nat}(`%X%`_shape{lanetype#3656, dim#3656, i#21457}((Jnn : Jnn <: lanetype), `%`_dim{i#21464}(M)), `MIN`_vbinop_{sx#100}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3692, dim#3692, i#21578}((Jnn : Jnn <: lanetype), `%`_dim{i#21585}(M)), def $imin_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), MAX_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imax_, sx, v_1, v_2) + def $vbinop_{lanetype#3704 : lanetype, dim#3704 : dim, i#21610 : nat, Jnn : Jnn, i#21617 : nat, M : M, sx#102 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3740 : lanetype, dim#3740 : dim, i#21731 : nat, i#21738 : nat}(`%X%`_shape{lanetype#3704, dim#3704, i#21610}((Jnn : Jnn <: lanetype), `%`_dim{i#21617}(M)), `MAX`_vbinop_{sx#102}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3740, dim#3740, i#21731}((Jnn : Jnn <: lanetype), `%`_dim{i#21738}(M)), def $imax_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `AVGRU`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iavgr_, U_sx, v_1, v_2) + def $vbinop_{lanetype#3752 : lanetype, dim#3752 : dim, i#21763 : nat, Jnn : Jnn, i#21770 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3788 : lanetype, dim#3788 : dim, i#21884 : nat, i#21891 : nat}(`%X%`_shape{lanetype#3752, dim#3752, i#21763}((Jnn : Jnn <: lanetype), `%`_dim{i#21770}(M)), `AVGRU`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3788, dim#3788, i#21884}((Jnn : Jnn <: lanetype), `%`_dim{i#21891}(M)), def $iavgr_, `U`_sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `Q15MULR_SATS`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iq15mulr_sat_, S_sx, v_1, v_2) + def $vbinop_{lanetype#3800 : lanetype, dim#3800 : dim, i#21916 : nat, Jnn : Jnn, i#21923 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3836 : lanetype, dim#3836 : dim, i#22037 : nat, i#22044 : nat}(`%X%`_shape{lanetype#3800, dim#3800, i#21916}((Jnn : Jnn <: lanetype), `%`_dim{i#21923}(M)), `Q15MULR_SATS`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3836, dim#3836, i#22037}((Jnn : Jnn <: lanetype), `%`_dim{i#22044}(M)), def $iq15mulr_sat_, `S`_sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `RELAXED_Q15MULRS`_vbinop_, v_1, v_2) = $ivbinopsxnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_q15mulr_, S_sx, v_1, v_2) + def $vbinop_{lanetype#3848 : lanetype, dim#3848 : dim, i#22069 : nat, Jnn : Jnn, i#22076 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3884 : lanetype, dim#3884 : dim, i#22190 : nat, i#22197 : nat}(`%X%`_shape{lanetype#3848, dim#3848, i#22069}((Jnn : Jnn <: lanetype), `%`_dim{i#22076}(M)), `RELAXED_Q15MULRS`_vbinop_, v_1, v_2) = $ivbinopsxnd_(`%X%`_shape{lanetype#3884, dim#3884, i#22190}((Jnn : Jnn <: lanetype), `%`_dim{i#22197}(M)), def $irelaxed_q15mulr_, `S`_sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), ADD_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fadd_, v_1, v_2) + def $vbinop_{lanetype#3896 : lanetype, dim#3896 : dim, i#22222 : nat, Fnn : Fnn, i#22229 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3945 : lanetype, dim#3945 : dim, i#22356 : nat, i#22363 : nat}(`%X%`_shape{lanetype#3896, dim#3896, i#22222}((Fnn : Fnn <: lanetype), `%`_dim{i#22229}(M)), `ADD`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#3945, dim#3945, i#22356}((Fnn : Fnn <: lanetype), `%`_dim{i#22363}(M)), def $fadd_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), SUB_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsub_, v_1, v_2) + def $vbinop_{lanetype#3957 : lanetype, dim#3957 : dim, i#22388 : nat, Fnn : Fnn, i#22395 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4006 : lanetype, dim#4006 : dim, i#22522 : nat, i#22529 : nat}(`%X%`_shape{lanetype#3957, dim#3957, i#22388}((Fnn : Fnn <: lanetype), `%`_dim{i#22395}(M)), `SUB`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4006, dim#4006, i#22522}((Fnn : Fnn <: lanetype), `%`_dim{i#22529}(M)), def $fsub_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), MUL_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmul_, v_1, v_2) + def $vbinop_{lanetype#4018 : lanetype, dim#4018 : dim, i#22554 : nat, Fnn : Fnn, i#22561 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4067 : lanetype, dim#4067 : dim, i#22688 : nat, i#22695 : nat}(`%X%`_shape{lanetype#4018, dim#4018, i#22554}((Fnn : Fnn <: lanetype), `%`_dim{i#22561}(M)), `MUL`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4067, dim#4067, i#22688}((Fnn : Fnn <: lanetype), `%`_dim{i#22695}(M)), def $fmul_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), DIV_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fdiv_, v_1, v_2) + def $vbinop_{lanetype#4079 : lanetype, dim#4079 : dim, i#22720 : nat, Fnn : Fnn, i#22727 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4128 : lanetype, dim#4128 : dim, i#22854 : nat, i#22861 : nat}(`%X%`_shape{lanetype#4079, dim#4079, i#22720}((Fnn : Fnn <: lanetype), `%`_dim{i#22727}(M)), `DIV`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4128, dim#4128, i#22854}((Fnn : Fnn <: lanetype), `%`_dim{i#22861}(M)), def $fdiv_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), MIN_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmin_, v_1, v_2) + def $vbinop_{lanetype#4140 : lanetype, dim#4140 : dim, i#22886 : nat, Fnn : Fnn, i#22893 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4189 : lanetype, dim#4189 : dim, i#23020 : nat, i#23027 : nat}(`%X%`_shape{lanetype#4140, dim#4140, i#22886}((Fnn : Fnn <: lanetype), `%`_dim{i#22893}(M)), `MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4189, dim#4189, i#23020}((Fnn : Fnn <: lanetype), `%`_dim{i#23027}(M)), def $fmin_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), MAX_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmax_, v_1, v_2) + def $vbinop_{lanetype#4201 : lanetype, dim#4201 : dim, i#23052 : nat, Fnn : Fnn, i#23059 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4250 : lanetype, dim#4250 : dim, i#23186 : nat, i#23193 : nat}(`%X%`_shape{lanetype#4201, dim#4201, i#23052}((Fnn : Fnn <: lanetype), `%`_dim{i#23059}(M)), `MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4250, dim#4250, i#23186}((Fnn : Fnn <: lanetype), `%`_dim{i#23193}(M)), def $fmax_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), PMIN_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmin_, v_1, v_2) + def $vbinop_{lanetype#4262 : lanetype, dim#4262 : dim, i#23218 : nat, Fnn : Fnn, i#23225 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4311 : lanetype, dim#4311 : dim, i#23352 : nat, i#23359 : nat}(`%X%`_shape{lanetype#4262, dim#4262, i#23218}((Fnn : Fnn <: lanetype), `%`_dim{i#23225}(M)), `PMIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4311, dim#4311, i#23352}((Fnn : Fnn <: lanetype), `%`_dim{i#23359}(M)), def $fpmin_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), PMAX_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmax_, v_1, v_2) + def $vbinop_{lanetype#4323 : lanetype, dim#4323 : dim, i#23384 : nat, Fnn : Fnn, i#23391 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4372 : lanetype, dim#4372 : dim, i#23518 : nat, i#23525 : nat}(`%X%`_shape{lanetype#4323, dim#4323, i#23384}((Fnn : Fnn <: lanetype), `%`_dim{i#23391}(M)), `PMAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4372, dim#4372, i#23518}((Fnn : Fnn <: lanetype), `%`_dim{i#23525}(M)), def $fpmax_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), RELAXED_MIN_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_min_, v_1, v_2) + def $vbinop_{lanetype#4384 : lanetype, dim#4384 : dim, i#23550 : nat, Fnn : Fnn, i#23557 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4433 : lanetype, dim#4433 : dim, i#23684 : nat, i#23691 : nat}(`%X%`_shape{lanetype#4384, dim#4384, i#23550}((Fnn : Fnn <: lanetype), `%`_dim{i#23557}(M)), `RELAXED_MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4433, dim#4433, i#23684}((Fnn : Fnn <: lanetype), `%`_dim{i#23691}(M)), def $frelaxed_min_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), RELAXED_MAX_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_max_, v_1, v_2) + def $vbinop_{lanetype#4445 : lanetype, dim#4445 : dim, i#23716 : nat, Fnn : Fnn, i#23723 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4494 : lanetype, dim#4494 : dim, i#23850 : nat, i#23857 : nat}(`%X%`_shape{lanetype#4445, dim#4445, i#23716}((Fnn : Fnn <: lanetype), `%`_dim{i#23723}(M)), `RELAXED_MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4494, dim#4494, i#23850}((Fnn : Fnn <: lanetype), `%`_dim{i#23857}(M)), def $frelaxed_max_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vternop_(shape : shape, vternop_ : vternop_(shape), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* +def $vternop_(shape : shape, vternop_ : vternop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), v_3 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), RELAXED_LANESELECT_vternop_, v_1, v_2, v_3) = $ivternopnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_laneselect_, v_1, v_2, v_3) + def $vternop_{lanetype#4506 : lanetype, dim#4506 : dim, i#23882 : nat, Jnn : Jnn, i#23889 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), lanetype#4542 : lanetype, dim#4542 : dim, i#24035 : nat, i#24042 : nat}(`%X%`_shape{lanetype#4506, dim#4506, i#23882}((Jnn : Jnn <: lanetype), `%`_dim{i#23889}(M)), `RELAXED_LANESELECT`_vternop_, v_1, v_2, v_3) = $ivternopnd_(`%X%`_shape{lanetype#4542, dim#4542, i#24035}((Jnn : Jnn <: lanetype), `%`_dim{i#24042}(M)), def $irelaxed_laneselect_, v_1, v_2, v_3) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), v_3 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), RELAXED_MADD_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_madd_, v_1, v_2, v_3) + def $vternop_{lanetype#4554 : lanetype, dim#4554 : dim, i#24077 : nat, Fnn : Fnn, i#24084 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), lanetype#4603 : lanetype, dim#4603 : dim, i#24243 : nat, i#24250 : nat}(`%X%`_shape{lanetype#4554, dim#4554, i#24077}((Fnn : Fnn <: lanetype), `%`_dim{i#24084}(M)), `RELAXED_MADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape{lanetype#4603, dim#4603, i#24243}((Fnn : Fnn <: lanetype), `%`_dim{i#24250}(M)), def $frelaxed_madd_, v_1, v_2, v_3) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), v_3 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), RELAXED_NMADD_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_nmadd_, v_1, v_2, v_3) + def $vternop_{lanetype#4615 : lanetype, dim#4615 : dim, i#24285 : nat, Fnn : Fnn, i#24292 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), lanetype#4664 : lanetype, dim#4664 : dim, i#24451 : nat, i#24458 : nat}(`%X%`_shape{lanetype#4615, dim#4615, i#24285}((Fnn : Fnn <: lanetype), `%`_dim{i#24292}(M)), `RELAXED_NMADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape{lanetype#4664, dim#4664, i#24451}((Fnn : Fnn <: lanetype), `%`_dim{i#24458}(M)), def $frelaxed_nmadd_, v_1, v_2, v_3) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vrelop_(shape : shape, vrelop_ : vrelop_(shape), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $vrelop_(shape : shape, vrelop_ : vrelop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), EQ_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ieq_, v_1, v_2) + def $vrelop_{lanetype#4676 : lanetype, dim#4676 : dim, i#24493 : nat, Jnn : Jnn, i#24500 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4688 : lanetype, dim#4688 : dim, i#24539 : nat, i#24546 : nat}(`%X%`_shape{lanetype#4676, dim#4676, i#24493}((Jnn : Jnn <: lanetype), `%`_dim{i#24500}(M)), `EQ`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape{lanetype#4688, dim#4688, i#24539}((Jnn : Jnn <: lanetype), `%`_dim{i#24546}(M)), def $ieq_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), NE_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ine_, v_1, v_2) + def $vrelop_{lanetype#4700 : lanetype, dim#4700 : dim, i#24571 : nat, Jnn : Jnn, i#24578 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4712 : lanetype, dim#4712 : dim, i#24617 : nat, i#24624 : nat}(`%X%`_shape{lanetype#4700, dim#4700, i#24571}((Jnn : Jnn <: lanetype), `%`_dim{i#24578}(M)), `NE`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape{lanetype#4712, dim#4712, i#24617}((Jnn : Jnn <: lanetype), `%`_dim{i#24624}(M)), def $ine_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), LT_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ilt_, sx, v_1, v_2) + def $vrelop_{lanetype#4724 : lanetype, dim#4724 : dim, i#24649 : nat, Jnn : Jnn, i#24656 : nat, M : M, sx#104 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4736 : lanetype, dim#4736 : dim, i#24695 : nat, i#24702 : nat}(`%X%`_shape{lanetype#4724, dim#4724, i#24649}((Jnn : Jnn <: lanetype), `%`_dim{i#24656}(M)), `LT`_vrelop_{sx#104}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4736, dim#4736, i#24695}((Jnn : Jnn <: lanetype), `%`_dim{i#24702}(M)), def $ilt_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), GT_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $igt_, sx, v_1, v_2) + def $vrelop_{lanetype#4748 : lanetype, dim#4748 : dim, i#24727 : nat, Jnn : Jnn, i#24734 : nat, M : M, sx#106 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4760 : lanetype, dim#4760 : dim, i#24773 : nat, i#24780 : nat}(`%X%`_shape{lanetype#4748, dim#4748, i#24727}((Jnn : Jnn <: lanetype), `%`_dim{i#24734}(M)), `GT`_vrelop_{sx#106}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4760, dim#4760, i#24773}((Jnn : Jnn <: lanetype), `%`_dim{i#24780}(M)), def $igt_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), LE_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ile_, sx, v_1, v_2) + def $vrelop_{lanetype#4772 : lanetype, dim#4772 : dim, i#24805 : nat, Jnn : Jnn, i#24812 : nat, M : M, sx#108 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4784 : lanetype, dim#4784 : dim, i#24851 : nat, i#24858 : nat}(`%X%`_shape{lanetype#4772, dim#4772, i#24805}((Jnn : Jnn <: lanetype), `%`_dim{i#24812}(M)), `LE`_vrelop_{sx#108}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4784, dim#4784, i#24851}((Jnn : Jnn <: lanetype), `%`_dim{i#24858}(M)), def $ile_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), GE_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ige_, sx, v_1, v_2) + def $vrelop_{lanetype#4796 : lanetype, dim#4796 : dim, i#24883 : nat, Jnn : Jnn, i#24890 : nat, M : M, sx#110 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4808 : lanetype, dim#4808 : dim, i#24929 : nat, i#24936 : nat}(`%X%`_shape{lanetype#4796, dim#4796, i#24883}((Jnn : Jnn <: lanetype), `%`_dim{i#24890}(M)), `GE`_vrelop_{sx#110}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4808, dim#4808, i#24929}((Jnn : Jnn <: lanetype), `%`_dim{i#24936}(M)), def $ige_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), EQ_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $feq_, v_1, v_2) + def $vrelop_{lanetype#4820 : lanetype, dim#4820 : dim, i#24961 : nat, Fnn : Fnn, i#24968 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4845 : lanetype, dim#4845 : dim, i#25020 : nat, i#25027 : nat}(`%X%`_shape{lanetype#4820, dim#4820, i#24961}((Fnn : Fnn <: lanetype), `%`_dim{i#24968}(M)), `EQ`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4845, dim#4845, i#25020}((Fnn : Fnn <: lanetype), `%`_dim{i#25027}(M)), def $feq_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), NE_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fne_, v_1, v_2) + def $vrelop_{lanetype#4857 : lanetype, dim#4857 : dim, i#25052 : nat, Fnn : Fnn, i#25059 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4882 : lanetype, dim#4882 : dim, i#25111 : nat, i#25118 : nat}(`%X%`_shape{lanetype#4857, dim#4857, i#25052}((Fnn : Fnn <: lanetype), `%`_dim{i#25059}(M)), `NE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4882, dim#4882, i#25111}((Fnn : Fnn <: lanetype), `%`_dim{i#25118}(M)), def $fne_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), LT_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $flt_, v_1, v_2) + def $vrelop_{lanetype#4894 : lanetype, dim#4894 : dim, i#25143 : nat, Fnn : Fnn, i#25150 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4919 : lanetype, dim#4919 : dim, i#25202 : nat, i#25209 : nat}(`%X%`_shape{lanetype#4894, dim#4894, i#25143}((Fnn : Fnn <: lanetype), `%`_dim{i#25150}(M)), `LT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4919, dim#4919, i#25202}((Fnn : Fnn <: lanetype), `%`_dim{i#25209}(M)), def $flt_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), GT_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fgt_, v_1, v_2) + def $vrelop_{lanetype#4931 : lanetype, dim#4931 : dim, i#25234 : nat, Fnn : Fnn, i#25241 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4956 : lanetype, dim#4956 : dim, i#25293 : nat, i#25300 : nat}(`%X%`_shape{lanetype#4931, dim#4931, i#25234}((Fnn : Fnn <: lanetype), `%`_dim{i#25241}(M)), `GT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4956, dim#4956, i#25293}((Fnn : Fnn <: lanetype), `%`_dim{i#25300}(M)), def $fgt_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), LE_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fle_, v_1, v_2) + def $vrelop_{lanetype#4968 : lanetype, dim#4968 : dim, i#25325 : nat, Fnn : Fnn, i#25332 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4993 : lanetype, dim#4993 : dim, i#25384 : nat, i#25391 : nat}(`%X%`_shape{lanetype#4968, dim#4968, i#25325}((Fnn : Fnn <: lanetype), `%`_dim{i#25332}(M)), `LE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4993, dim#4993, i#25384}((Fnn : Fnn <: lanetype), `%`_dim{i#25391}(M)), def $fle_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), GE_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fge_, v_1, v_2) + def $vrelop_{lanetype#5005 : lanetype, dim#5005 : dim, i#25416 : nat, Fnn : Fnn, i#25423 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5030 : lanetype, dim#5030 : dim, i#25475 : nat, i#25482 : nat}(`%X%`_shape{lanetype#5005, dim#5005, i#25416}((Fnn : Fnn <: lanetype), `%`_dim{i#25423}(M)), `GE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#5030, dim#5030, i#25475}((Fnn : Fnn <: lanetype), `%`_dim{i#25482}(M)), def $fge_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $lcvtop__(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2), lane_ : lane_($lanetype(shape_1))) : lane_($lanetype(shape_2))* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx, c_1 : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))), c : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), EXTEND_vcvtop__(half, sx), c_1) = [c] + def $lcvtop__{lanetype#5186 : lanetype, dim#5186 : dim, i#26001 : nat, Jnn_1 : Jnn, i#26008 : nat, M_1 : M, lanetype#5198 : lanetype, dim#5198 : dim, i#26013 : nat, Jnn_2 : Jnn, i#26020 : nat, M_2 : M, half#5 : half, sx#114 : sx, half : half, sx : sx, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5186, dim#5186, i#26001}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26008}(M_1)))), c : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))}(`%X%`_shape{lanetype#5186, dim#5186, i#26001}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26008}(M_1)), `%X%`_shape{lanetype#5198, dim#5198, i#26013}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#26020}(M_2)), `EXTEND`_vcvtop__{half#5, sx#114}(half, sx), c_1) = [c] -- if (c = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx, c_1 : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))), c : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), CONVERT_vcvtop__(half?{half <- `half?`}, sx), c_1) = [c] + def $lcvtop__{lanetype#5222 : lanetype, dim#5222 : dim, i#26109 : nat, Jnn_1 : Jnn, i#26116 : nat, M_1 : M, lanetype#5234 : lanetype, dim#5234 : dim, i#26121 : nat, Fnn_2 : Fnn, i#26128 : nat, M_2 : M, `half?#5` : half?, sx#116 : sx, `half?` : half?, sx : sx, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5222, dim#5222, i#26109}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26116}(M_1)))), c : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))}(`%X%`_shape{lanetype#5222, dim#5222, i#26109}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26116}(M_1)), `%X%`_shape{lanetype#5234, dim#5234, i#26121}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26128}(M_2)), `CONVERT`_vcvtop__{`half?#5`, sx#116}(half?{half <- `half?`}, sx), c_1) = [c] -- if (c = $convert__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), sx, c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Inn_2 : Inn, M_2 : M, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2)), TRUNC_SAT_vcvtop__(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) + def $lcvtop__{lanetype#5273 : lanetype, dim#5273 : dim, i#26208 : nat, Fnn_1 : Fnn, i#26215 : nat, M_1 : M, lanetype#5285 : lanetype, dim#5285 : dim, i#26220 : nat, Inn_2 : Inn, i#26227 : nat, M_2 : M, sx#148 : sx, `zero?#39` : zero?, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5273, dim#5273, i#26208}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26215}(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape{lanetype#5273, dim#5273, i#26208}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26215}(M_1)), `%X%`_shape{lanetype#5285, dim#5285, i#26220}((Inn_2 : Inn <: lanetype), `%`_dim{i#26227}(M_2)), `TRUNC_SAT`_vcvtop__{sx#148, `zero?#39`}(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) -- if (c?{c <- `c?`} = $trunc_sat__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Inn_2 : Inn, M_2 : M, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2)), RELAXED_TRUNC_vcvtop__(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) + def $lcvtop__{lanetype#5361 : lanetype, dim#5361 : dim, i#26384 : nat, Fnn_1 : Fnn, i#26391 : nat, M_1 : M, lanetype#5373 : lanetype, dim#5373 : dim, i#26396 : nat, Inn_2 : Inn, i#26403 : nat, M_2 : M, sx#180 : sx, `zero?#71` : zero?, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5361, dim#5361, i#26384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26391}(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape{lanetype#5361, dim#5361, i#26384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26391}(M_1)), `%X%`_shape{lanetype#5373, dim#5373, i#26396}((Inn_2 : Inn <: lanetype), `%`_dim{i#26403}(M_2)), `RELAXED_TRUNC`_vcvtop__{sx#180, `zero?#71`}(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) -- if (c?{c <- `c?`} = $relaxed_trunc__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), DEMOTE_vcvtop__(ZERO_zero), c_1) = c*{c <- `c*`} + def $lcvtop__{lanetype#5449 : lanetype, dim#5449 : dim, i#26560 : nat, Fnn_1 : Fnn, i#26567 : nat, M_1 : M, lanetype#5461 : lanetype, dim#5461 : dim, i#26572 : nat, Fnn_2 : Fnn, i#26579 : nat, M_2 : M, zero#125 : zero, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5449, dim#5449, i#26560}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26567}(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape{lanetype#5449, dim#5449, i#26560}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26567}(M_1)), `%X%`_shape{lanetype#5461, dim#5461, i#26572}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26579}(M_2)), `DEMOTE`_vcvtop__{zero#125}(`ZERO`_zero), c_1) = c*{c <- `c*`} -- if (c*{c <- `c*`} = $demote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__, c_1) = c*{c <- `c*`} + def $lcvtop__{lanetype#5536 : lanetype, dim#5536 : dim, i#26683 : nat, Fnn_1 : Fnn, i#26690 : nat, M_1 : M, lanetype#5548 : lanetype, dim#5548 : dim, i#26695 : nat, Fnn_2 : Fnn, i#26702 : nat, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5536, dim#5536, i#26683}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26690}(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape{lanetype#5536, dim#5536, i#26683}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26690}(M_1)), `%X%`_shape{lanetype#5548, dim#5548, i#26695}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26702}(M_2)), `PROMOTELOW`_vcvtop__, c_1) = c*{c <- `c*`} -- if (c*{c <- `c*`} = $promote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vcvtop__(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{Lnn_1 : Lnn, M : M, Lnn_2 : Lnn, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M))), v_1 : vec_(V128_Vnn), v : vec_(V128_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, v_1) = v - -- if (($halfop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?()) /\ ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?())) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M)), v_1)) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, c_1)*{c_1 <- `c_1*`})) - -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}) - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{Lnn_1 : Lnn, M_1 : M, Lnn_2 : Lnn, M_2 : M, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2))), v_1 : vec_(V128_Vnn), v : vec_(V128_Vnn), half : half, `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, v_1) = v - -- if ($halfop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(half)) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)[$half(half, 0, M_2) : M_2]) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`})) - -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}) - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{Lnn_1 : Lnn, M_1 : M, Lnn_2 : Lnn, M_2 : M, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2))), v_1 : vec_(V128_Vnn), v : vec_(V128_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, v_1) = v - -- if ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(ZERO_zero)) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`} ++ [$zero(Lnn_2)]^M_1{})) - -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}) +def $vcvtop__(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vcvtop__{lanetype#5623 : lanetype, dim#5623 : dim, i#26806 : nat, Lnn_1 : Lnn, i#26813 : nat, M : M, lanetype#5635 : lanetype, dim#5635 : dim, i#26818 : nat, Lnn_2 : Lnn, i#26825 : nat, vcvtop : vcvtop__(`%X%`_shape{lanetype#5623, dim#5623, i#26806}(Lnn_1, `%`_dim{i#26813}(M)), `%X%`_shape{lanetype#5635, dim#5635, i#26818}(Lnn_2, `%`_dim{i#26825}(M))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#5671 : lanetype, dim#5671 : dim, i#26866 : nat, i#26873 : nat, lanetype#5683 : lanetype, dim#5683 : dim, i#26878 : nat, i#26885 : nat, lanetype#5711 : lanetype, dim#5711 : dim, i#26906 : nat, i#26913 : nat, lanetype#5723 : lanetype, dim#5723 : dim, i#26918 : nat, i#26925 : nat, lanetype#5751 : lanetype, dim#5751 : dim, i#26946 : nat, i#26953 : nat, `c**` : lane_(Lnn_2)**, `dim#5867*` : dim*, `dim#5879*` : dim*, `i#27120*` : nat*, `i#27127*` : nat*, `i#27132*` : nat*, `i#27139*` : nat*, `lanetype#5867*` : lanetype*, `lanetype#5879*` : lanetype*, `dim#5914*` : dim*, `i#27181*` : nat*, `i#27188*` : nat*, `lanetype#5914*` : lanetype*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))*}(`%X%`_shape{lanetype#5623, dim#5623, i#26806}(Lnn_1, `%`_dim{i#26813}(M)), `%X%`_shape{lanetype#5635, dim#5635, i#26818}(Lnn_2, `%`_dim{i#26825}(M)), vcvtop, v_1) = v + -- if (($halfop(`%X%`_shape{lanetype#5671, dim#5671, i#26866}(Lnn_1, `%`_dim{i#26873}(M)), `%X%`_shape{lanetype#5683, dim#5683, i#26878}(Lnn_2, `%`_dim{i#26885}(M)), vcvtop) = ?()) /\ ($zeroop(`%X%`_shape{lanetype#5711, dim#5711, i#26906}(Lnn_1, `%`_dim{i#26913}(M)), `%X%`_shape{lanetype#5723, dim#5723, i#26918}(Lnn_2, `%`_dim{i#26925}(M)), vcvtop) = ?())) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M)), v_1)) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M)), `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#5867 <- `dim#5867*`, dim#5879 <- `dim#5879*`, i#27120 <- `i#27120*`, i#27127 <- `i#27127*`, i#27132 <- `i#27132*`, i#27139 <- `i#27139*`, lanetype#5867 <- `lanetype#5867*`, lanetype#5879 <- `lanetype#5879*`})) + -- if (v <- $inv_lanes_(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#5914 <- `dim#5914*`, i#27181 <- `i#27181*`, i#27188 <- `i#27188*`, lanetype#5914 <- `lanetype#5914*`}) + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vcvtop__{lanetype#5937 : lanetype, dim#5937 : dim, i#27248 : nat, Lnn_1 : Lnn, i#27255 : nat, M_1 : M, lanetype#5949 : lanetype, dim#5949 : dim, i#27260 : nat, Lnn_2 : Lnn, i#27267 : nat, M_2 : M, vcvtop : vcvtop__(`%X%`_shape{lanetype#5937, dim#5937, i#27248}(Lnn_1, `%`_dim{i#27255}(M_1)), `%X%`_shape{lanetype#5949, dim#5949, i#27260}(Lnn_2, `%`_dim{i#27267}(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#6025 : lanetype, dim#6025 : dim, i#27348 : nat, i#27355 : nat, lanetype#6037 : lanetype, dim#6037 : dim, i#27360 : nat, i#27367 : nat, half : half, lanetype#6065 : lanetype, dim#6065 : dim, i#27388 : nat, i#27395 : nat, `c**` : lane_(Lnn_2)**, `dim#6181*` : dim*, `dim#6193*` : dim*, `i#27562*` : nat*, `i#27569*` : nat*, `i#27574*` : nat*, `i#27581*` : nat*, `lanetype#6181*` : lanetype*, `lanetype#6193*` : lanetype*, `dim#6228*` : dim*, `i#27623*` : nat*, `i#27630*` : nat*, `lanetype#6228*` : lanetype*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))*}(`%X%`_shape{lanetype#5937, dim#5937, i#27248}(Lnn_1, `%`_dim{i#27255}(M_1)), `%X%`_shape{lanetype#5949, dim#5949, i#27260}(Lnn_2, `%`_dim{i#27267}(M_2)), vcvtop, v_1) = v + -- if ($halfop(`%X%`_shape{lanetype#6025, dim#6025, i#27348}(Lnn_1, `%`_dim{i#27355}(M_1)), `%X%`_shape{lanetype#6037, dim#6037, i#27360}(Lnn_2, `%`_dim{i#27367}(M_2)), vcvtop) = ?(half)) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1)), v_1)[$half(half, 0, M_2) : M_2]) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1)), `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6181 <- `dim#6181*`, dim#6193 <- `dim#6193*`, i#27562 <- `i#27562*`, i#27569 <- `i#27569*`, i#27574 <- `i#27574*`, i#27581 <- `i#27581*`, lanetype#6181 <- `lanetype#6181*`, lanetype#6193 <- `lanetype#6193*`})) + -- if (v <- $inv_lanes_(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6228 <- `dim#6228*`, i#27623 <- `i#27623*`, i#27630 <- `i#27630*`, lanetype#6228 <- `lanetype#6228*`}) + ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec + def $vcvtop__{lanetype#6251 : lanetype, dim#6251 : dim, i#27690 : nat, Lnn_1 : Lnn, i#27697 : nat, M_1 : M, lanetype#6263 : lanetype, dim#6263 : dim, i#27702 : nat, Lnn_2 : Lnn, i#27709 : nat, M_2 : M, vcvtop : vcvtop__(`%X%`_shape{lanetype#6251, dim#6251, i#27690}(Lnn_1, `%`_dim{i#27697}(M_1)), `%X%`_shape{lanetype#6263, dim#6263, i#27702}(Lnn_2, `%`_dim{i#27709}(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#6299 : lanetype, dim#6299 : dim, i#27750 : nat, i#27757 : nat, lanetype#6311 : lanetype, dim#6311 : dim, i#27762 : nat, i#27769 : nat, lanetype#6339 : lanetype, dim#6339 : dim, i#27790 : nat, i#27797 : nat, `c**` : lane_(Lnn_2)**, `dim#6501*` : dim*, `dim#6513*` : dim*, `i#28022*` : nat*, `i#28029*` : nat*, `i#28034*` : nat*, `i#28041*` : nat*, `lanetype#6501*` : lanetype*, `lanetype#6513*` : lanetype*, `dim#6548*` : dim*, `i#28083*` : nat*, `i#28090*` : nat*, `lanetype#6548*` : lanetype*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))*}(`%X%`_shape{lanetype#6251, dim#6251, i#27690}(Lnn_1, `%`_dim{i#27697}(M_1)), `%X%`_shape{lanetype#6263, dim#6263, i#27702}(Lnn_2, `%`_dim{i#27709}(M_2)), vcvtop, v_1) = v + -- if ($zeroop(`%X%`_shape{lanetype#6299, dim#6299, i#27750}(Lnn_1, `%`_dim{i#27757}(M_1)), `%X%`_shape{lanetype#6311, dim#6311, i#27762}(Lnn_2, `%`_dim{i#27769}(M_2)), vcvtop) = ?(`ZERO`_zero)) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1)), v_1)) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6501 <- `dim#6501*`, dim#6513 <- `dim#6513*`, i#28022 <- `i#28022*`, i#28029 <- `i#28029*`, i#28034 <- `i#28034*`, i#28041 <- `i#28041*`, lanetype#6501 <- `lanetype#6501*`, lanetype#6513 <- `lanetype#6513*`} ++ [$zero(Lnn_2)]^M_1{})) + -- if (v <- $inv_lanes_(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6548 <- `dim#6548*`, i#28083 <- `i#28083*`, i#28090 <- `i#28090*`, lanetype#6548 <- `lanetype#6548*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vshiftop_(ishape : ishape, vshiftop_ : vshiftop_(ishape), vec_ : vec_(V128_Vnn), u32 : u32) : vec_(V128_Vnn) +def $vshiftop_(ishape : ishape, vshiftop_ : vshiftop_(ishape), vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshiftop_{Jnn : Jnn, M : M, v : vec_(V128_Vnn), i : u32}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), SHL_vshiftop_, v, i) = $ivshiftop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishl_, v, i) + def $vshiftop_{shape#421 : shape, Jnn#119 : Jnn, lanetype#5042 : lanetype, dim#5042 : dim, i#25507 : nat, Jnn : Jnn, i#25514 : nat, M : M, v : vec_(`V128`_Vnn), i : u32, lanetype#5054 : lanetype, dim#5054 : dim, i#25553 : nat, i#25560 : nat}(`%`_ishape{shape#421, Jnn#119}(`%X%`_shape{lanetype#5042, dim#5042, i#25507}((Jnn : Jnn <: lanetype), `%`_dim{i#25514}(M))), `SHL`_vshiftop_, v, i) = $ivshiftop_(`%X%`_shape{lanetype#5054, dim#5054, i#25553}((Jnn : Jnn <: lanetype), `%`_dim{i#25560}(M)), def $ishl_, v, i) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshiftop_{Jnn : Jnn, M : M, sx : sx, v : vec_(V128_Vnn), i : u32}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), SHR_vshiftop_(sx), v, i) = $ivshiftopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishr_, sx, v, i) + def $vshiftop_{shape#433 : shape, Jnn#123 : Jnn, lanetype#5066 : lanetype, dim#5066 : dim, i#25585 : nat, Jnn : Jnn, i#25592 : nat, M : M, sx#112 : sx, sx : sx, v : vec_(`V128`_Vnn), i : u32, lanetype#5078 : lanetype, dim#5078 : dim, i#25631 : nat, i#25638 : nat}(`%`_ishape{shape#433, Jnn#123}(`%X%`_shape{lanetype#5066, dim#5066, i#25585}((Jnn : Jnn <: lanetype), `%`_dim{i#25592}(M))), `SHR`_vshiftop_{sx#112}(sx), v, i) = $ivshiftopsx_(`%X%`_shape{lanetype#5078, dim#5078, i#25631}((Jnn : Jnn <: lanetype), `%`_dim{i#25638}(M)), def $ishr_, sx, v, i) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vbitmaskop_(ishape : ishape, vec_ : vec_(V128_Vnn)) : u32 +def $vbitmaskop_(ishape : ishape, vec_ : vec_(`V128`_Vnn)) : u32 ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbitmaskop_{Jnn : Jnn, M : M, v : vec_(V128_Vnn)}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), v) = $ivbitmaskop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v) + def $vbitmaskop_{shape#445 : shape, Jnn#127 : Jnn, lanetype#5090 : lanetype, dim#5090 : dim, i#25663 : nat, Jnn : Jnn, i#25670 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#5102 : lanetype, dim#5102 : dim, i#25697 : nat, i#25704 : nat}(`%`_ishape{shape#445, Jnn#127}(`%X%`_shape{lanetype#5090, dim#5090, i#25663}((Jnn : Jnn <: lanetype), `%`_dim{i#25670}(M))), v) = $ivbitmaskop_(`%X%`_shape{lanetype#5102, dim#5102, i#25697}((Jnn : Jnn <: lanetype), `%`_dim{i#25704}(M)), v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vswizzlop_(bshape : bshape, vswizzlop_ : vswizzlop_(bshape), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $vswizzlop_(bshape : bshape, vswizzlop_ : vswizzlop_(bshape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vswizzlop_{M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(M))), SWIZZLE_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape(I8_lanetype, `%`_dim(M)), def $iswizzle_lane_, v_1, v_2) + def $vswizzlop_{shape#457 : shape, lanetype#5114 : lanetype, dim#5114 : dim, i#25719 : nat, i#25726 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5126 : lanetype, dim#5126 : dim, i#25765 : nat, i#25772 : nat}(`%`_bshape{shape#457}(`%X%`_shape{lanetype#5114, dim#5114, i#25719}(`I8`_lanetype, `%`_dim{i#25726}(M))), `SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape{lanetype#5126, dim#5126, i#25765}(`I8`_lanetype, `%`_dim{i#25772}(M)), def $iswizzle_lane_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vswizzlop_{M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(M))), RELAXED_SWIZZLE_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape(I8_lanetype, `%`_dim(M)), def $irelaxed_swizzle_lane_, v_1, v_2) + def $vswizzlop_{shape#469 : shape, lanetype#5138 : lanetype, dim#5138 : dim, i#25797 : nat, i#25804 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5150 : lanetype, dim#5150 : dim, i#25843 : nat, i#25850 : nat}(`%`_bshape{shape#469}(`%X%`_shape{lanetype#5138, dim#5138, i#25797}(`I8`_lanetype, `%`_dim{i#25804}(M))), `RELAXED_SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape{lanetype#5150, dim#5150, i#25843}(`I8`_lanetype, `%`_dim{i#25850}(M)), def $irelaxed_swizzle_lane_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vshufflop_(bshape : bshape, laneidx*, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $vshufflop_(bshape : bshape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshufflop_{M : M, `i*` : laneidx*, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(M))), i*{i <- `i*`}, v_1, v_2) = $ivshufflop_(`%X%`_shape(I8_lanetype, `%`_dim(M)), i*{i <- `i*`}, v_1, v_2) + def $vshufflop_{shape#481 : shape, lanetype#5162 : lanetype, dim#5162 : dim, i#25875 : nat, i#25882 : nat, M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5174 : lanetype, dim#5174 : dim, i#25946 : nat, i#25953 : nat}(`%`_bshape{shape#481}(`%X%`_shape{lanetype#5162, dim#5162, i#25875}(`I8`_lanetype, `%`_dim{i#25882}(M))), i*{i <- `i*`}, v_1, v_2) = $ivshufflop_(`%X%`_shape{lanetype#5174, dim#5174, i#25946}(`I8`_lanetype, `%`_dim{i#25953}(M)), i*{i <- `i*`}, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vnarrowop__(shape_1 : shape, shape_2 : shape, sx : sx, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $vnarrowop__(shape_1 : shape, shape_2 : shape, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vnarrowop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), v : vec_(V128_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), sx, v_1, v_2) = v - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)) + def $vnarrowop__{lanetype#6571 : lanetype, dim#6571 : dim, i#28150 : nat, Jnn_1 : Jnn, i#28157 : nat, M_1 : M, lanetype#6583 : lanetype, dim#6583 : dim, i#28162 : nat, Jnn_2 : Jnn, i#28169 : nat, M_2 : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#6595 : lanetype, dim#6595 : dim, i#28198 : nat, i#28205 : nat, lanetype#6620 : lanetype, dim#6620 : dim, i#28284 : nat, i#28291 : nat, `c'_1*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, lanetype#6647 : lanetype, dim#6647 : dim, i#28450 : nat, i#28457 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))*}(`%X%`_shape{lanetype#6571, dim#6571, i#28150}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28157}(M_1)), `%X%`_shape{lanetype#6583, dim#6583, i#28162}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28169}(M_2)), sx, v_1, v_2) = v + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1)), v_2)) -- if (c'_1*{c'_1 <- `c'_1*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}) -- if (c'_2*{c'_2 <- `c'_2*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_2)*{c_2 <- `c_2*`}) - -- if (v = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`})) + -- if (v = $inv_lanes_(`%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivadd_pairwise_(N : N, iN(N)*) : iN(N)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivadd_pairwise_{N : N, `i*` : iN(N)*, `j_1*` : N*, `j_2*` : N*}(N, i*{i <- `i*`}) = $iadd_(N, `%`_iN(j_1), `%`_iN(j_2))*{j_1 <- `j_1*`, j_2 <- `j_2*`} - -- if ($concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = i!`%`_iN.0*{i <- `i*`}) + def $ivadd_pairwise_{N : N, `i*` : iN(N)*, `i#29492*` : nat*, `i#29500*` : nat*, `j_1*` : N*, `j_2*` : N*, `i#29472*` : nat*}(N, i*{i <- `i*`}) = $iadd_(N, `%`_iN{i#29492}(j_1), `%`_iN{i#29500}(j_2))*{i#29492 <- `i#29492*`, i#29500 <- `i#29500*`, j_1 <- `j_1*`, j_2 <- `j_2*`} + -- if ($concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = i!`%`_iN{i#29472}.0*{i <- `i*`, i#29472 <- `i#29472*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivextunop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $ivextunop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, v_1 : vec_(V128_Vnn), `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $f_, sx, v_1) = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)) + def $ivextunop__{lanetype#6690 : lanetype, dim#6690 : dim, i#28642 : nat, Jnn_1 : Jnn, i#28649 : nat, M_1 : M, lanetype#6702 : lanetype, dim#6702 : dim, i#28654 : nat, Jnn_2 : Jnn, i#28661 : nat, M_2 : M, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), lanetype#6740 : lanetype, dim#6740 : dim, i#28862 : nat, i#28869 : nat, `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, lanetype#6714 : lanetype, dim#6714 : dim, i#28678 : nat, i#28685 : nat, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))*}(`%X%`_shape{lanetype#6690, dim#6690, i#28642}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28649}(M_1)), `%X%`_shape{lanetype#6702, dim#6702, i#28654}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28661}(M_2)), def $f_, sx, v_1) = $inv_lanes_(`%X%`_shape{lanetype#6740, dim#6740, i#28862}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28869}(M_2)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1)), v_1)) -- if (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}) -- if (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vextunop__(ishape_1 : ishape, ishape_2 : ishape, vextunop__ : vextunop__(ishape_1, ishape_2), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $vextunop__(ishape_1 : ishape, ishape_2 : ishape, vextunop__ : vextunop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, v_1 : vec_(V128_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), EXTADD_PAIRWISE_vextunop__(sx), v_1) = $ivextunop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivadd_pairwise_, sx, v_1) + def $vextunop__{shape#493 : shape, Jnn#131 : Jnn, lanetype#6864 : lanetype, dim#6864 : dim, i#29941 : nat, Jnn_1 : Jnn, i#29948 : nat, M_1 : M, shape#505 : shape, Jnn#135 : Jnn, lanetype#6876 : lanetype, dim#6876 : dim, i#29953 : nat, Jnn_2 : Jnn, i#29960 : nat, M_2 : M, sx#182 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), lanetype#6888 : lanetype, dim#6888 : dim, i#29987 : nat, i#29994 : nat, lanetype#6900 : lanetype, dim#6900 : dim, i#29999 : nat, i#30006 : nat}(`%`_ishape{shape#493, Jnn#131}(`%X%`_shape{lanetype#6864, dim#6864, i#29941}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29948}(M_1))), `%`_ishape{shape#505, Jnn#135}(`%X%`_shape{lanetype#6876, dim#6876, i#29953}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29960}(M_2))), `EXTADD_PAIRWISE`_vextunop__{sx#182}(sx), v_1) = $ivextunop__(`%X%`_shape{lanetype#6888, dim#6888, i#29987}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29994}(M_1)), `%X%`_shape{lanetype#6900, dim#6900, i#29999}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30006}(M_2)), def $ivadd_pairwise_, sx, v_1) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivdot_(N : N, iN(N)*, iN(N)*) : iN(N)* @@ -5330,15 +116889,15 @@ def $ivdot_(N : N, iN(N)*, iN(N)*) : iN(N)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivdot_sat_{N : N, `i_1*` : iN(N)*, `i_2*` : iN(N)*, `j_1*` : iN(N)*, `j_2*` : iN(N)*}(N, i_1*{i_1 <- `i_1*`}, i_2*{i_2 <- `i_2*`}) = $iadd_sat_(N, S_sx, j_1, j_2)*{j_1 <- `j_1*`, j_2 <- `j_2*`} + def $ivdot_sat_{N : N, `i_1*` : iN(N)*, `i_2*` : iN(N)*, `j_1*` : iN(N)*, `j_2*` : iN(N)*}(N, i_1*{i_1 <- `i_1*`}, i_2*{i_2 <- `i_2*`}) = $iadd_sat_(N, `S`_sx, j_1, j_2)*{j_1 <- `j_1*`, j_2 <- `j_2*`} -- if ($concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivextbinop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx : sx, sx : sx, laneidx : laneidx, laneidx : laneidx, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $ivextbinop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx : sx, sx : sx, laneidx : laneidx, laneidx : laneidx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx_1 : sx, sx_2 : sx, i : laneidx, k : laneidx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $f_, sx_1, sx_2, i, k, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)[i!`%`_laneidx.0 : k!`%`_laneidx.0]) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)[i!`%`_laneidx.0 : k!`%`_laneidx.0]) + def $ivextbinop__{lanetype#6764 : lanetype, dim#6764 : dim, i#28935 : nat, Jnn_1 : Jnn, i#28942 : nat, M_1 : M, lanetype#6776 : lanetype, dim#6776 : dim, i#28947 : nat, Jnn_2 : Jnn, i#28954 : nat, M_2 : M, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx_1 : sx, sx_2 : sx, i : laneidx, k : laneidx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#6840 : lanetype, dim#6840 : dim, i#29380 : nat, i#29387 : nat, `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, lanetype#6788 : lanetype, dim#6788 : dim, i#29007 : nat, i#29014 : nat, i#29034 : nat, i#29044 : nat, lanetype#6813 : lanetype, dim#6813 : dim, i#29113 : nat, i#29120 : nat, i#29140 : nat, i#29150 : nat, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))*}(`%X%`_shape{lanetype#6764, dim#6764, i#28935}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28942}(M_1)), `%X%`_shape{lanetype#6776, dim#6776, i#28947}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28954}(M_2)), def $f_, sx_1, sx_2, i, k, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#6840, dim#6840, i#29380}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29387}(M_2)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1)), v_1)[i!`%`_laneidx{i#29034}.0 : k!`%`_laneidx{i#29044}.0]) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1)), v_2)[i!`%`_laneidx{i#29140}.0 : k!`%`_laneidx{i#29150}.0]) -- if (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_1, c_1)*{c_1 <- `c_1*`}) -- if (c'_2*{c'_2 <- `c'_2*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_2, c_2)*{c_2 <- `c_2*`}) -- if (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`}, c'_2*{c'_2 <- `c'_2*`})) @@ -5349,48 +116908,48 @@ def $ivmul_(N : N, iN(N)*, iN(N)*) : iN(N)* def $ivmul_{N : N, `i_1*` : iN(N)*, `i_2*` : iN(N)*}(N, i_1*{i_1 <- `i_1*`}, i_2*{i_2 <- `i_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`} ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vextbinop__(ishape_1 : ishape, ishape_2 : ishape, vextbinop__ : vextbinop__(ishape_1, ishape_2), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $vextbinop__(ishape_1 : ishape, ishape_2 : ishape, vextbinop__ : vextbinop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), EXTMUL_vextbinop__(half, sx), v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivmul_, sx, sx, `%`_laneidx($half(half, 0, M_2)), `%`_laneidx(M_2), v_1, v_2) + def $vextbinop__{shape#517 : shape, Jnn#139 : Jnn, lanetype#6912 : lanetype, dim#6912 : dim, i#30021 : nat, Jnn_1 : Jnn, i#30028 : nat, M_1 : M, shape#529 : shape, Jnn#143 : Jnn, lanetype#6924 : lanetype, dim#6924 : dim, i#30033 : nat, Jnn_2 : Jnn, i#30040 : nat, M_2 : M, half#7 : half, sx#184 : sx, half : half, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#6936 : lanetype, dim#6936 : dim, i#30079 : nat, i#30086 : nat, lanetype#6948 : lanetype, dim#6948 : dim, i#30091 : nat, i#30098 : nat, i#30118 : nat, i#30140 : nat}(`%`_ishape{shape#517, Jnn#139}(`%X%`_shape{lanetype#6912, dim#6912, i#30021}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30028}(M_1))), `%`_ishape{shape#529, Jnn#143}(`%X%`_shape{lanetype#6924, dim#6924, i#30033}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30040}(M_2))), `EXTMUL`_vextbinop__{half#7, sx#184}(half, sx), v_1, v_2) = $ivextbinop__(`%X%`_shape{lanetype#6936, dim#6936, i#30079}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30086}(M_1)), `%X%`_shape{lanetype#6948, dim#6948, i#30091}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30098}(M_2)), def $ivmul_, sx, sx, `%`_laneidx{i#30118}($half(half, 0, M_2)), `%`_laneidx{i#30140}(M_2), v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_, S_sx, S_sx, `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2) + def $vextbinop__{shape#541 : shape, Jnn#147 : Jnn, lanetype#6960 : lanetype, dim#6960 : dim, i#30165 : nat, Jnn_1 : Jnn, i#30172 : nat, M_1 : M, shape#553 : shape, Jnn#151 : Jnn, lanetype#6972 : lanetype, dim#6972 : dim, i#30177 : nat, Jnn_2 : Jnn, i#30184 : nat, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#6984 : lanetype, dim#6984 : dim, i#30223 : nat, i#30230 : nat, lanetype#6996 : lanetype, dim#6996 : dim, i#30235 : nat, i#30242 : nat, i#30262 : nat, i#30284 : nat}(`%`_ishape{shape#541, Jnn#147}(`%X%`_shape{lanetype#6960, dim#6960, i#30165}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30172}(M_1))), `%`_ishape{shape#553, Jnn#151}(`%X%`_shape{lanetype#6972, dim#6972, i#30177}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30184}(M_2))), `DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape{lanetype#6984, dim#6984, i#30223}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30230}(M_1)), `%X%`_shape{lanetype#6996, dim#6996, i#30235}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30242}(M_2)), def $ivdot_, `S`_sx, `S`_sx, `%`_laneidx{i#30262}(0), `%`_laneidx{i#30284}(M_1), v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `RELAXED_DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_sat_, S_sx, $relaxed2($R_idot, syntax sx, S_sx, U_sx), `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2) + def $vextbinop__{shape#565 : shape, Jnn#155 : Jnn, lanetype#7008 : lanetype, dim#7008 : dim, i#30309 : nat, Jnn_1 : Jnn, i#30316 : nat, M_1 : M, shape#577 : shape, Jnn#159 : Jnn, lanetype#7020 : lanetype, dim#7020 : dim, i#30321 : nat, Jnn_2 : Jnn, i#30328 : nat, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#7032 : lanetype, dim#7032 : dim, i#30367 : nat, i#30374 : nat, lanetype#7044 : lanetype, dim#7044 : dim, i#30379 : nat, i#30386 : nat, i#30412 : nat, i#30434 : nat}(`%`_ishape{shape#565, Jnn#155}(`%X%`_shape{lanetype#7008, dim#7008, i#30309}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30316}(M_1))), `%`_ishape{shape#577, Jnn#159}(`%X%`_shape{lanetype#7020, dim#7020, i#30321}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30328}(M_2))), `RELAXED_DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape{lanetype#7032, dim#7032, i#30367}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30374}(M_1)), `%X%`_shape{lanetype#7044, dim#7044, i#30379}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30386}(M_2)), def $ivdot_sat_, `S`_sx, $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx), `%`_laneidx{i#30412}(0), `%`_laneidx{i#30434}(M_1), v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextternop__(ishape_1, ishape_2), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) +def $vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextternop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextternop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), c_3 : vec_(V128_Vnn), c : vec_(V128_Vnn), Jnn : Jnn, M : M, c' : vec_(V128_Vnn), c'' : vec_(V128_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `RELAXED_DOT_ADDS`_vextternop__, c_1, c_2, c_3) = c + def $vextternop__{shape#589 : shape, Jnn#163 : Jnn, lanetype#7056 : lanetype, dim#7056 : dim, i#30459 : nat, Jnn_1 : Jnn, i#30466 : nat, M_1 : M, shape#601 : shape, Jnn#167 : Jnn, lanetype#7068 : lanetype, dim#7068 : dim, i#30471 : nat, Jnn_2 : Jnn, i#30478 : nat, M_2 : M, c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), c : vec_(`V128`_Vnn), Jnn : Jnn, M : M, c' : vec_(`V128`_Vnn), shape#613 : shape, Jnn#171 : Jnn, lanetype#7080 : lanetype, dim#7080 : dim, i#30519 : nat, i#30526 : nat, shape#625 : shape, Jnn#175 : Jnn, lanetype#7092 : lanetype, dim#7092 : dim, i#30531 : nat, i#30538 : nat, c'' : vec_(`V128`_Vnn), shape#652 : shape, Jnn#179 : Jnn, lanetype#7149 : lanetype, dim#7149 : dim, i#30650 : nat, i#30657 : nat, shape#664 : shape, Jnn#183 : Jnn, lanetype#7161 : lanetype, dim#7161 : dim, i#30662 : nat, i#30669 : nat, sx#216 : sx, lanetype#7218 : lanetype, dim#7218 : dim, i#30771 : nat, i#30778 : nat}(`%`_ishape{shape#589, Jnn#163}(`%X%`_shape{lanetype#7056, dim#7056, i#30459}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30466}(M_1))), `%`_ishape{shape#601, Jnn#167}(`%X%`_shape{lanetype#7068, dim#7068, i#30471}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30478}(M_2))), `RELAXED_DOT_ADDS`_vextternop__, c_1, c_2, c_3) = c -- if ($jsizenn(Jnn) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) -- if (M = (2 * M_2)) - -- if (c' = $vextbinop__(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2)) - -- if (c'' = $vextunop__(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), EXTADD_PAIRWISE_vextunop__(S_sx), c')) - -- if (c <- $vbinop_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), ADD_vbinop_, c'', c_3)) + -- if (c' = $vextbinop__(`%`_ishape{shape#613, Jnn#171}(`%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1))), `%`_ishape{shape#625, Jnn#175}(`%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2)) + -- if (c'' = $vextunop__(`%`_ishape{shape#652, Jnn#179}(`%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M))), `%`_ishape{shape#664, Jnn#183}(`%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2))), `EXTADD_PAIRWISE`_vextunop__{sx#216}(`S`_sx), c')) + -- if (c <- $vbinop_(`%X%`_shape{lanetype#7218, dim#7218, i#30771}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30778}(M_2)), `ADD`_vbinop_, c'', c_3)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax num = - | CONST{numtype : numtype, num_ : num_(numtype)}(numtype : numtype, num_ : num_(numtype)) + | `CONST`{numtype : numtype}(numtype : numtype, num_(numtype)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax vec = - | VCONST{vectype : vectype, vec_ : vec_(vectype)}(vectype : vectype, vec_ : vec_(vectype)) + | `VCONST`{vectype : vectype}(vectype : vectype, vec_(vectype)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax ref = - | REF.I31_NUM{u31 : u31}(u31 : u31) - | REF.STRUCT_ADDR{structaddr : structaddr}(structaddr : structaddr) - | REF.ARRAY_ADDR{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) - | REF.FUNC_ADDR{funcaddr : funcaddr}(funcaddr : funcaddr) - | REF.EXN_ADDR{exnaddr : exnaddr}(exnaddr : exnaddr) - | REF.HOST_ADDR{hostaddr : hostaddr}(hostaddr : hostaddr) - | REF.EXTERN{addrref : addrref}(addrref : addrref) - | REF.NULL{heaptype : heaptype}(heaptype : heaptype) + | `REF.I31_NUM`{u31 : u31}(u31 : u31) + | `REF.STRUCT_ADDR`{structaddr : structaddr}(structaddr : structaddr) + | `REF.ARRAY_ADDR`{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) + | `REF.FUNC_ADDR`{funcaddr : funcaddr}(funcaddr : funcaddr) + | `REF.EXN_ADDR`{exnaddr : exnaddr}(exnaddr : exnaddr) + | `REF.HOST_ADDR`{hostaddr : hostaddr}(hostaddr : hostaddr) + | `REF.EXTERN`{addrref : addrref}(addrref : addrref) + | `REF.NULL`{heaptype : heaptype}(heaptype : heaptype) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax result = - | _VALS{`val*` : val*}(val*{val <- `val*`} : val*) + | `_VALS`{`val*` : val*}(`val*` : val*) | `(REF.EXN_ADDR%)THROW_REF`{exnaddr : exnaddr}(exnaddr : exnaddr) - | TRAP + | `TRAP` ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax hostfunc = @@ -5398,109 +116957,109 @@ syntax hostfunc = ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax funccode = - | FUNC{typeidx : typeidx, `local*` : local*, expr : expr}(typeidx : typeidx, local*{local <- `local*`} : local*, expr : expr) + | `FUNC`{typeidx : typeidx, `local*` : local*, expr : expr}(typeidx : typeidx, `local*` : local*, expr : expr) | `...` ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax taginst = { - TYPE{tagtype : tagtype} tagtype + `TYPE`{tagtype : tagtype} tagtype } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax globalinst = { - TYPE{globaltype : globaltype} globaltype, - VALUE{val : val} val + `TYPE`{globaltype : globaltype} globaltype, + `VALUE`{val : val} val } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax meminst = { - TYPE{memtype : memtype} memtype, - BYTES{`byte*` : byte*} byte* + `TYPE`{memtype : memtype} memtype, + `BYTES`{`byte*` : byte*} byte* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax tableinst = { - TYPE{tabletype : tabletype} tabletype, - REFS{`ref*` : ref*} ref* + `TYPE`{tabletype : tabletype} tabletype, + `REFS`{`ref*` : ref*} ref* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax funcinst = { - TYPE{deftype : deftype} deftype, - MODULE{moduleinst : moduleinst} moduleinst, - CODE{funccode : funccode} funccode + `TYPE`{deftype : deftype} deftype, + `MODULE`{moduleinst : moduleinst} moduleinst, + `CODE`{funccode : funccode} funccode } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax datainst = { - BYTES{`byte*` : byte*} byte* + `BYTES`{`byte*` : byte*} byte* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax eleminst = { - TYPE{elemtype : elemtype} elemtype, - REFS{`ref*` : ref*} ref* + `TYPE`{elemtype : elemtype} elemtype, + `REFS`{`ref*` : ref*} ref* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax packval = - | PACK{packtype : packtype, iN : iN($psizenn(packtype))}(packtype : packtype, iN : iN($psizenn(packtype))) + | `PACK`{packtype : packtype}(packtype : packtype, iN($psizenn(packtype))) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax fieldval = - | CONST{numtype : numtype, num_ : num_(numtype)}(numtype : numtype, num_ : num_(numtype)) - | VCONST{vectype : vectype, vec_ : vec_(vectype)}(vectype : vectype, vec_ : vec_(vectype)) - | REF.NULL{heaptype : heaptype}(heaptype : heaptype) - | REF.I31_NUM{u31 : u31}(u31 : u31) - | REF.STRUCT_ADDR{structaddr : structaddr}(structaddr : structaddr) - | REF.ARRAY_ADDR{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) - | REF.FUNC_ADDR{funcaddr : funcaddr}(funcaddr : funcaddr) - | REF.EXN_ADDR{exnaddr : exnaddr}(exnaddr : exnaddr) - | REF.HOST_ADDR{hostaddr : hostaddr}(hostaddr : hostaddr) - | REF.EXTERN{addrref : addrref}(addrref : addrref) - | PACK{packtype : packtype, iN : iN($psizenn(packtype))}(packtype : packtype, iN : iN($psizenn(packtype))) + | `CONST`{numtype : numtype}(numtype : numtype, num_(numtype)) + | `VCONST`{vectype : vectype}(vectype : vectype, vec_(vectype)) + | `REF.I31_NUM`{u31 : u31}(u31 : u31) + | `REF.STRUCT_ADDR`{structaddr : structaddr}(structaddr : structaddr) + | `REF.ARRAY_ADDR`{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) + | `REF.FUNC_ADDR`{funcaddr : funcaddr}(funcaddr : funcaddr) + | `REF.EXN_ADDR`{exnaddr : exnaddr}(exnaddr : exnaddr) + | `REF.HOST_ADDR`{hostaddr : hostaddr}(hostaddr : hostaddr) + | `REF.EXTERN`{addrref : addrref}(addrref : addrref) + | `REF.NULL`{heaptype : heaptype}(heaptype : heaptype) + | `PACK`{packtype : packtype}(packtype : packtype, iN($psizenn(packtype))) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax structinst = { - TYPE{deftype : deftype} deftype, - FIELDS{`fieldval*` : fieldval*} fieldval* + `TYPE`{deftype : deftype} deftype, + `FIELDS`{`fieldval*` : fieldval*} fieldval* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax arrayinst = { - TYPE{deftype : deftype} deftype, - FIELDS{`fieldval*` : fieldval*} fieldval* + `TYPE`{deftype : deftype} deftype, + `FIELDS`{`fieldval*` : fieldval*} fieldval* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax exninst = { - TAG{tagaddr : tagaddr} tagaddr, - FIELDS{`val*` : val*} val* + `TAG`{tagaddr : tagaddr} tagaddr, + `FIELDS`{`val*` : val*} val* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax store = { - TAGS{`taginst*` : taginst*} taginst*, - GLOBALS{`globalinst*` : globalinst*} globalinst*, - MEMS{`meminst*` : meminst*} meminst*, - TABLES{`tableinst*` : tableinst*} tableinst*, - FUNCS{`funcinst*` : funcinst*} funcinst*, - DATAS{`datainst*` : datainst*} datainst*, - ELEMS{`eleminst*` : eleminst*} eleminst*, - STRUCTS{`structinst*` : structinst*} structinst*, - ARRAYS{`arrayinst*` : arrayinst*} arrayinst*, - EXNS{`exninst*` : exninst*} exninst* + `TAGS`{`taginst*` : taginst*} taginst*, + `GLOBALS`{`globalinst*` : globalinst*} globalinst*, + `MEMS`{`meminst*` : meminst*} meminst*, + `TABLES`{`tableinst*` : tableinst*} tableinst*, + `FUNCS`{`funcinst*` : funcinst*} funcinst*, + `DATAS`{`datainst*` : datainst*} datainst*, + `ELEMS`{`eleminst*` : eleminst*} eleminst*, + `STRUCTS`{`structinst*` : structinst*} structinst*, + `ARRAYS`{`arrayinst*` : arrayinst*} arrayinst*, + `EXNS`{`exninst*` : exninst*} exninst* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec @@ -5509,7 +117068,7 @@ syntax state = ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax config = - | `%;%`{state : state, `instr*` : instr*}(state : state, instr*{instr <- `instr*`} : instr*) + | `%;%`{state : state, `instr*` : instr*}(state : state, `instr*` : instr*) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $Ki : nat @@ -5521,14 +117080,14 @@ def $packfield_(storagetype : storagetype, val : val) : fieldval ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $packfield_{valtype : valtype, val : val}((valtype : valtype <: storagetype), val) = (val : val <: fieldval) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $packfield_{packtype : packtype, i : num_(I32_numtype)}((packtype : packtype <: storagetype), CONST_val(I32_numtype, i)) = PACK_fieldval(packtype, $wrap__(32, $psize(packtype), i)) + def $packfield_{packtype : packtype, numtype#33 : numtype, i : num_(`I32`_numtype), packtype#1 : packtype}((packtype : packtype <: storagetype), `CONST`_val{numtype#33}(`I32`_numtype, i)) = `PACK`_fieldval{packtype#1}(packtype, $wrap__(32, $psize(packtype), i)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $unpackfield_(storagetype : storagetype, sx?, fieldval : fieldval) : val ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $unpackfield_{valtype : valtype, val : val}((valtype : valtype <: storagetype), ?(), (val : val <: fieldval)) = val ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $unpackfield_{packtype : packtype, sx : sx, i : iN($psizenn(packtype))}((packtype : packtype <: storagetype), ?(sx), PACK_fieldval(packtype, i)) = CONST_val(I32_numtype, $extend__($psize(packtype), 32, sx, i)) + def $unpackfield_{packtype : packtype, sx : sx, packtype#3 : packtype, i : iN($psizenn(packtype)), numtype#35 : numtype}((packtype : packtype <: storagetype), ?(sx), `PACK`_fieldval{packtype#3}(packtype, i)) = `CONST`_val{numtype#35}(`I32`_numtype, $extend__($psize(packtype), 32, sx, i)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec rec { @@ -5538,7 +117097,7 @@ def $tagsxa(externaddr*) : tagaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:199.1-199.23 def $tagsxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:200.1-200.42 - def $tagsxa{a : addr, `xa*` : externaddr*}([TAG_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tagsxa(xa*{xa <- `xa*`}) + def $tagsxa{tagaddr#1 : tagaddr, a : addr, `xa*` : externaddr*}([`TAG`_externaddr{tagaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tagsxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:201.1-201.57 def $tagsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $tagsxa(xa*{xa <- `xa*`}) -- otherwise @@ -5552,7 +117111,7 @@ def $globalsxa(externaddr*) : globaladdr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:203.1-203.26 def $globalsxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:204.1-204.51 - def $globalsxa{a : addr, `xa*` : externaddr*}([GLOBAL_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $globalsxa(xa*{xa <- `xa*`}) + def $globalsxa{globaladdr#1 : globaladdr, a : addr, `xa*` : externaddr*}([`GLOBAL`_externaddr{globaladdr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $globalsxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:205.1-205.63 def $globalsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $globalsxa(xa*{xa <- `xa*`}) -- otherwise @@ -5566,7 +117125,7 @@ def $memsxa(externaddr*) : memaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:207.1-207.23 def $memsxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:208.1-208.42 - def $memsxa{a : addr, `xa*` : externaddr*}([MEM_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $memsxa(xa*{xa <- `xa*`}) + def $memsxa{memaddr#1 : memaddr, a : addr, `xa*` : externaddr*}([`MEM`_externaddr{memaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $memsxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:209.1-209.57 def $memsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $memsxa(xa*{xa <- `xa*`}) -- otherwise @@ -5580,7 +117139,7 @@ def $tablesxa(externaddr*) : tableaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:211.1-211.25 def $tablesxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:212.1-212.48 - def $tablesxa{a : addr, `xa*` : externaddr*}([TABLE_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tablesxa(xa*{xa <- `xa*`}) + def $tablesxa{tableaddr#1 : tableaddr, a : addr, `xa*` : externaddr*}([`TABLE`_externaddr{tableaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tablesxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:213.1-213.61 def $tablesxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $tablesxa(xa*{xa <- `xa*`}) -- otherwise @@ -5594,7 +117153,7 @@ def $funcsxa(externaddr*) : funcaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:215.1-215.24 def $funcsxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:216.1-216.45 - def $funcsxa{a : addr, `xa*` : externaddr*}([FUNC_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $funcsxa(xa*{xa <- `xa*`}) + def $funcsxa{funcaddr#1 : funcaddr, a : addr, `xa*` : externaddr*}([`FUNC`_externaddr{funcaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $funcsxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:217.1-217.59 def $funcsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $funcsxa(xa*{xa <- `xa*`}) -- otherwise @@ -5603,212 +117162,212 @@ def $funcsxa(externaddr*) : funcaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $store(state : state) : store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $store{s : store, f : frame}(`%;%`_state(s, f)) = s + def $store{store#11 : store, frame#11 : frame, s : store, f : frame}(`%;%`_state{store#11, frame#11}(s, f)) = s ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $frame(state : state) : frame ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $frame{s : store, f : frame}(`%;%`_state(s, f)) = f + def $frame{store#23 : store, frame#23 : frame, s : store, f : frame}(`%;%`_state{store#23, frame#23}(s, f)) = f ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $tagaddr(state : state) : tagaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tagaddr{s : store, f : frame}(`%;%`_state(s, f)) = f.MODULE_frame.TAGS_moduleinst + def $tagaddr{store#35 : store, frame#35 : frame, s : store, f : frame, moduleinst#2 : moduleinst, `tagaddr*#2` : tagaddr*}(`%;%`_state{store#35, frame#35}(s, f)) = f.`MODULE`_frame{moduleinst#2}.`TAGS`_moduleinst{`tagaddr*#2`} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $moduleinst(state : state) : moduleinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $moduleinst{s : store, f : frame}(`%;%`_state(s, f)) = f.MODULE_frame + def $moduleinst{store#47 : store, frame#47 : frame, s : store, f : frame, moduleinst#3 : moduleinst}(`%;%`_state{store#47, frame#47}(s, f)) = f.`MODULE`_frame{moduleinst#3} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $taginst(state : state) : taginst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $taginst{s : store, f : frame}(`%;%`_state(s, f)) = s.TAGS_store + def $taginst{store#59 : store, frame#59 : frame, s : store, f : frame, `taginst*#2` : taginst*}(`%;%`_state{store#59, frame#59}(s, f)) = s.`TAGS`_store{`taginst*#2`} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $globalinst(state : state) : globalinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $globalinst{s : store, f : frame}(`%;%`_state(s, f)) = s.GLOBALS_store + def $globalinst{store#71 : store, frame#71 : frame, s : store, f : frame, `globalinst*#2` : globalinst*}(`%;%`_state{store#71, frame#71}(s, f)) = s.`GLOBALS`_store{`globalinst*#2`} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $meminst(state : state) : meminst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $meminst{s : store, f : frame}(`%;%`_state(s, f)) = s.MEMS_store + def $meminst{store#83 : store, frame#83 : frame, s : store, f : frame, `meminst*#2` : meminst*}(`%;%`_state{store#83, frame#83}(s, f)) = s.`MEMS`_store{`meminst*#2`} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $tableinst(state : state) : tableinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tableinst{s : store, f : frame}(`%;%`_state(s, f)) = s.TABLES_store + def $tableinst{store#95 : store, frame#95 : frame, s : store, f : frame, `tableinst*#2` : tableinst*}(`%;%`_state{store#95, frame#95}(s, f)) = s.`TABLES`_store{`tableinst*#2`} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $funcinst(state : state) : funcinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $funcinst{s : store, f : frame}(`%;%`_state(s, f)) = s.FUNCS_store + def $funcinst{store#107 : store, frame#107 : frame, s : store, f : frame, `funcinst*#2` : funcinst*}(`%;%`_state{store#107, frame#107}(s, f)) = s.`FUNCS`_store{`funcinst*#2`} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $datainst(state : state) : datainst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $datainst{s : store, f : frame}(`%;%`_state(s, f)) = s.DATAS_store + def $datainst{store#119 : store, frame#119 : frame, s : store, f : frame, `datainst*#2` : datainst*}(`%;%`_state{store#119, frame#119}(s, f)) = s.`DATAS`_store{`datainst*#2`} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $eleminst(state : state) : eleminst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $eleminst{s : store, f : frame}(`%;%`_state(s, f)) = s.ELEMS_store + def $eleminst{store#131 : store, frame#131 : frame, s : store, f : frame, `eleminst*#2` : eleminst*}(`%;%`_state{store#131, frame#131}(s, f)) = s.`ELEMS`_store{`eleminst*#2`} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $structinst(state : state) : structinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $structinst{s : store, f : frame}(`%;%`_state(s, f)) = s.STRUCTS_store + def $structinst{store#143 : store, frame#143 : frame, s : store, f : frame, `structinst*#2` : structinst*}(`%;%`_state{store#143, frame#143}(s, f)) = s.`STRUCTS`_store{`structinst*#2`} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $arrayinst(state : state) : arrayinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $arrayinst{s : store, f : frame}(`%;%`_state(s, f)) = s.ARRAYS_store + def $arrayinst{store#155 : store, frame#155 : frame, s : store, f : frame, `arrayinst*#2` : arrayinst*}(`%;%`_state{store#155, frame#155}(s, f)) = s.`ARRAYS`_store{`arrayinst*#2`} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $exninst(state : state) : exninst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $exninst{s : store, f : frame}(`%;%`_state(s, f)) = s.EXNS_store + def $exninst{store#167 : store, frame#167 : frame, s : store, f : frame, `exninst*#2` : exninst*}(`%;%`_state{store#167, frame#167}(s, f)) = s.`EXNS`_store{`exninst*#2`} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $type(state : state, typeidx : typeidx) : deftype ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $type{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = f.MODULE_frame.TYPES_moduleinst[x!`%`_idx.0] + def $type{store#179 : store, frame#179 : frame, s : store, f : frame, x : idx, moduleinst#4 : moduleinst, `deftype*#74` : deftype*, i#30957 : nat}(`%;%`_state{store#179, frame#179}(s, f), x) = f.`MODULE`_frame{moduleinst#4}.`TYPES`_moduleinst{`deftype*#74`}[x!`%`_idx{i#30957}.0] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $tag(state : state, tagidx : tagidx) : taginst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tag{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.TAGS_store[f.MODULE_frame.TAGS_moduleinst[x!`%`_idx.0]] + def $tag{store#191 : store, frame#191 : frame, s : store, f : frame, x : idx, `taginst*#3` : taginst*, moduleinst#5 : moduleinst, `tagaddr*#3` : tagaddr*, i#30979 : nat}(`%;%`_state{store#191, frame#191}(s, f), x) = s.`TAGS`_store{`taginst*#3`}[f.`MODULE`_frame{moduleinst#5}.`TAGS`_moduleinst{`tagaddr*#3`}[x!`%`_idx{i#30979}.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $global(state : state, globalidx : globalidx) : globalinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $global{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.GLOBALS_store[f.MODULE_frame.GLOBALS_moduleinst[x!`%`_idx.0]] + def $global{store#203 : store, frame#203 : frame, s : store, f : frame, x : idx, `globalinst*#3` : globalinst*, moduleinst#6 : moduleinst, `globaladdr*#1` : globaladdr*, i#31001 : nat}(`%;%`_state{store#203, frame#203}(s, f), x) = s.`GLOBALS`_store{`globalinst*#3`}[f.`MODULE`_frame{moduleinst#6}.`GLOBALS`_moduleinst{`globaladdr*#1`}[x!`%`_idx{i#31001}.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $mem(state : state, memidx : memidx) : meminst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $mem{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.MEMS_store[f.MODULE_frame.MEMS_moduleinst[x!`%`_idx.0]] + def $mem{store#215 : store, frame#215 : frame, s : store, f : frame, x : idx, `meminst*#3` : meminst*, moduleinst#7 : moduleinst, `memaddr*#1` : memaddr*, i#31023 : nat}(`%;%`_state{store#215, frame#215}(s, f), x) = s.`MEMS`_store{`meminst*#3`}[f.`MODULE`_frame{moduleinst#7}.`MEMS`_moduleinst{`memaddr*#1`}[x!`%`_idx{i#31023}.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $table(state : state, tableidx : tableidx) : tableinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $table{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.TABLES_store[f.MODULE_frame.TABLES_moduleinst[x!`%`_idx.0]] + def $table{store#227 : store, frame#227 : frame, s : store, f : frame, x : idx, `tableinst*#3` : tableinst*, moduleinst#8 : moduleinst, `tableaddr*#1` : tableaddr*, i#31045 : nat}(`%;%`_state{store#227, frame#227}(s, f), x) = s.`TABLES`_store{`tableinst*#3`}[f.`MODULE`_frame{moduleinst#8}.`TABLES`_moduleinst{`tableaddr*#1`}[x!`%`_idx{i#31045}.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $func(state : state, funcidx : funcidx) : funcinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $func{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.FUNCS_store[f.MODULE_frame.FUNCS_moduleinst[x!`%`_idx.0]] + def $func{store#239 : store, frame#239 : frame, s : store, f : frame, x : idx, `funcinst*#3` : funcinst*, moduleinst#9 : moduleinst, `funcaddr*#1` : funcaddr*, i#31067 : nat}(`%;%`_state{store#239, frame#239}(s, f), x) = s.`FUNCS`_store{`funcinst*#3`}[f.`MODULE`_frame{moduleinst#9}.`FUNCS`_moduleinst{`funcaddr*#1`}[x!`%`_idx{i#31067}.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $data(state : state, dataidx : dataidx) : datainst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $data{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.DATAS_store[f.MODULE_frame.DATAS_moduleinst[x!`%`_idx.0]] + def $data{store#251 : store, frame#251 : frame, s : store, f : frame, x : idx, `datainst*#3` : datainst*, moduleinst#10 : moduleinst, `dataaddr*#1` : dataaddr*, i#31089 : nat}(`%;%`_state{store#251, frame#251}(s, f), x) = s.`DATAS`_store{`datainst*#3`}[f.`MODULE`_frame{moduleinst#10}.`DATAS`_moduleinst{`dataaddr*#1`}[x!`%`_idx{i#31089}.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $elem(state : state, tableidx : tableidx) : eleminst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $elem{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.ELEMS_store[f.MODULE_frame.ELEMS_moduleinst[x!`%`_idx.0]] + def $elem{store#263 : store, frame#263 : frame, s : store, f : frame, x : idx, `eleminst*#3` : eleminst*, moduleinst#11 : moduleinst, `elemaddr*#1` : elemaddr*, i#31111 : nat}(`%;%`_state{store#263, frame#263}(s, f), x) = s.`ELEMS`_store{`eleminst*#3`}[f.`MODULE`_frame{moduleinst#11}.`ELEMS`_moduleinst{`elemaddr*#1`}[x!`%`_idx{i#31111}.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $local(state : state, localidx : localidx) : val? ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $local{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = f.LOCALS_frame[x!`%`_idx.0] + def $local{store#275 : store, frame#275 : frame, s : store, f : frame, x : idx, `val?*#2` : val?*, i#31143 : nat}(`%;%`_state{store#275, frame#275}(s, f), x) = f.`LOCALS`_frame{`val?*#2`}[x!`%`_idx{i#31143}.0] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_local(state : state, localidx : localidx, val : val) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_local{s : store, f : frame, x : idx, v : val}(`%;%`_state(s, f), x, v) = `%;%`_state(s, f[LOCALS_frame[x!`%`_idx.0] = ?(v)]) + def $with_local{store#287 : store, frame#287 : frame, s : store, f : frame, x : idx, v : val, store#299 : store, frame#299 : frame, `val?*#3` : val?*, i#31165 : nat}(`%;%`_state{store#287, frame#287}(s, f), x, v) = `%;%`_state{store#299, frame#299}(s, f[`LOCALS`_frame{`val?*#3`}[x!`%`_idx{i#31165}.0] = ?(v)]) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_global(state : state, globalidx : globalidx, val : val) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_global{s : store, f : frame, x : idx, v : val}(`%;%`_state(s, f), x, v) = `%;%`_state(s[GLOBALS_store[f.MODULE_frame.GLOBALS_moduleinst[x!`%`_idx.0]].VALUE_globalinst = v], f) + def $with_global{store#311 : store, frame#311 : frame, s : store, f : frame, x : idx, v : val, store#323 : store, frame#323 : frame, `globalinst*#4` : globalinst*, moduleinst#12 : moduleinst, `globaladdr*#2` : globaladdr*, i#31187 : nat, val#1 : val}(`%;%`_state{store#311, frame#311}(s, f), x, v) = `%;%`_state{store#323, frame#323}(s[`GLOBALS`_store{`globalinst*#4`}[f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}[x!`%`_idx{i#31187}.0]].`VALUE`_globalinst{val#1} = v], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_table(state : state, tableidx : tableidx, nat : nat, ref : ref) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_table{s : store, f : frame, x : idx, i : nat, r : ref}(`%;%`_state(s, f), x, i, r) = `%;%`_state(s[TABLES_store[f.MODULE_frame.TABLES_moduleinst[x!`%`_idx.0]].REFS_tableinst[i] = r], f) + def $with_table{store#335 : store, frame#335 : frame, s : store, f : frame, x : idx, i : nat, r : ref, store#347 : store, frame#347 : frame, `tableinst*#4` : tableinst*, moduleinst#13 : moduleinst, `tableaddr*#2` : tableaddr*, i#31209 : nat, `ref*#1` : ref*}(`%;%`_state{store#335, frame#335}(s, f), x, i, r) = `%;%`_state{store#347, frame#347}(s[`TABLES`_store{`tableinst*#4`}[f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}[x!`%`_idx{i#31209}.0]].`REFS`_tableinst{`ref*#1`}[i] = r], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_tableinst(state : state, tableidx : tableidx, tableinst : tableinst) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_tableinst{s : store, f : frame, x : idx, ti : tableinst}(`%;%`_state(s, f), x, ti) = `%;%`_state(s[TABLES_store[f.MODULE_frame.TABLES_moduleinst[x!`%`_idx.0]] = ti], f) + def $with_tableinst{store#359 : store, frame#359 : frame, s : store, f : frame, x : idx, ti : tableinst, store#371 : store, frame#371 : frame, `tableinst*#5` : tableinst*, moduleinst#14 : moduleinst, `tableaddr*#3` : tableaddr*, i#31231 : nat}(`%;%`_state{store#359, frame#359}(s, f), x, ti) = `%;%`_state{store#371, frame#371}(s[`TABLES`_store{`tableinst*#5`}[f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}[x!`%`_idx{i#31231}.0]] = ti], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_mem(state : state, memidx : memidx, nat : nat, nat : nat, byte*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_mem{s : store, f : frame, x : idx, i : nat, j : nat, `b*` : byte*}(`%;%`_state(s, f), x, i, j, b*{b <- `b*`}) = `%;%`_state(s[MEMS_store[f.MODULE_frame.MEMS_moduleinst[x!`%`_idx.0]].BYTES_meminst[i : j] = b*{b <- `b*`}], f) + def $with_mem{store#383 : store, frame#383 : frame, s : store, f : frame, x : idx, i : nat, j : nat, `b*` : byte*, store#395 : store, frame#395 : frame, `meminst*#4` : meminst*, moduleinst#15 : moduleinst, `memaddr*#2` : memaddr*, i#31265 : nat, `byte*#1845` : byte*}(`%;%`_state{store#383, frame#383}(s, f), x, i, j, b*{b <- `b*`}) = `%;%`_state{store#395, frame#395}(s[`MEMS`_store{`meminst*#4`}[f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}[x!`%`_idx{i#31265}.0]].`BYTES`_meminst{`byte*#1845`}[i : j] = b*{b <- `b*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_meminst(state : state, memidx : memidx, meminst : meminst) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_meminst{s : store, f : frame, x : idx, mi : meminst}(`%;%`_state(s, f), x, mi) = `%;%`_state(s[MEMS_store[f.MODULE_frame.MEMS_moduleinst[x!`%`_idx.0]] = mi], f) + def $with_meminst{store#407 : store, frame#407 : frame, s : store, f : frame, x : idx, mi : meminst, store#419 : store, frame#419 : frame, `meminst*#5` : meminst*, moduleinst#16 : moduleinst, `memaddr*#3` : memaddr*, i#31299 : nat}(`%;%`_state{store#407, frame#407}(s, f), x, mi) = `%;%`_state{store#419, frame#419}(s[`MEMS`_store{`meminst*#5`}[f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}[x!`%`_idx{i#31299}.0]] = mi], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_elem(state : state, elemidx : elemidx, ref*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_elem{s : store, f : frame, x : idx, `r*` : ref*}(`%;%`_state(s, f), x, r*{r <- `r*`}) = `%;%`_state(s[ELEMS_store[f.MODULE_frame.ELEMS_moduleinst[x!`%`_idx.0]].REFS_eleminst = r*{r <- `r*`}], f) + def $with_elem{store#431 : store, frame#431 : frame, s : store, f : frame, x : idx, `r*` : ref*, store#443 : store, frame#443 : frame, `eleminst*#4` : eleminst*, moduleinst#17 : moduleinst, `elemaddr*#2` : elemaddr*, i#31321 : nat, `ref*#2` : ref*}(`%;%`_state{store#431, frame#431}(s, f), x, r*{r <- `r*`}) = `%;%`_state{store#443, frame#443}(s[`ELEMS`_store{`eleminst*#4`}[f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}[x!`%`_idx{i#31321}.0]].`REFS`_eleminst{`ref*#2`} = r*{r <- `r*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_data(state : state, dataidx : dataidx, byte*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_data{s : store, f : frame, x : idx, `b*` : byte*}(`%;%`_state(s, f), x, b*{b <- `b*`}) = `%;%`_state(s[DATAS_store[f.MODULE_frame.DATAS_moduleinst[x!`%`_idx.0]].BYTES_datainst = b*{b <- `b*`}], f) + def $with_data{store#455 : store, frame#455 : frame, s : store, f : frame, x : idx, `b*` : byte*, store#467 : store, frame#467 : frame, `datainst*#4` : datainst*, moduleinst#18 : moduleinst, `dataaddr*#2` : dataaddr*, i#31355 : nat, `byte*#1846` : byte*}(`%;%`_state{store#455, frame#455}(s, f), x, b*{b <- `b*`}) = `%;%`_state{store#467, frame#467}(s[`DATAS`_store{`datainst*#4`}[f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}[x!`%`_idx{i#31355}.0]].`BYTES`_datainst{`byte*#1846`} = b*{b <- `b*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_struct(state : state, structaddr : structaddr, nat : nat, fieldval : fieldval) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_struct{s : store, f : frame, a : addr, i : nat, fv : fieldval}(`%;%`_state(s, f), a, i, fv) = `%;%`_state(s[STRUCTS_store[a].FIELDS_structinst[i] = fv], f) + def $with_struct{store#479 : store, frame#479 : frame, s : store, f : frame, a : addr, i : nat, fv : fieldval, store#491 : store, frame#491 : frame, `structinst*#3` : structinst*, `fieldval*#1` : fieldval*}(`%;%`_state{store#479, frame#479}(s, f), a, i, fv) = `%;%`_state{store#491, frame#491}(s[`STRUCTS`_store{`structinst*#3`}[a].`FIELDS`_structinst{`fieldval*#1`}[i] = fv], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fieldval) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_array{s : store, f : frame, a : addr, i : nat, fv : fieldval}(`%;%`_state(s, f), a, i, fv) = `%;%`_state(s[ARRAYS_store[a].FIELDS_arrayinst[i] = fv], f) + def $with_array{store#503 : store, frame#503 : frame, s : store, f : frame, a : addr, i : nat, fv : fieldval, store#515 : store, frame#515 : frame, `arrayinst*#3` : arrayinst*, `fieldval*#2` : fieldval*}(`%;%`_state{store#503, frame#503}(s, f), a, i, fv) = `%;%`_state{store#515, frame#515}(s[`ARRAYS`_store{`arrayinst*#3`}[a].`FIELDS`_arrayinst{`fieldval*#2`}[i] = fv], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $add_structinst(state : state, structinst*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_structinst{s : store, f : frame, `si*` : structinst*}(`%;%`_state(s, f), si*{si <- `si*`}) = `%;%`_state(s[STRUCTS_store =++ si*{si <- `si*`}], f) + def $add_structinst{store#527 : store, frame#527 : frame, s : store, f : frame, `si*` : structinst*, store#539 : store, frame#539 : frame, `structinst*#4` : structinst*}(`%;%`_state{store#527, frame#527}(s, f), si*{si <- `si*`}) = `%;%`_state{store#539, frame#539}(s[`STRUCTS`_store{`structinst*#4`} =++ si*{si <- `si*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $add_arrayinst(state : state, arrayinst*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_arrayinst{s : store, f : frame, `ai*` : arrayinst*}(`%;%`_state(s, f), ai*{ai <- `ai*`}) = `%;%`_state(s[ARRAYS_store =++ ai*{ai <- `ai*`}], f) + def $add_arrayinst{store#551 : store, frame#551 : frame, s : store, f : frame, `ai*` : arrayinst*, store#563 : store, frame#563 : frame, `arrayinst*#4` : arrayinst*}(`%;%`_state{store#551, frame#551}(s, f), ai*{ai <- `ai*`}) = `%;%`_state{store#563, frame#563}(s[`ARRAYS`_store{`arrayinst*#4`} =++ ai*{ai <- `ai*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $add_exninst(state : state, exninst*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_exninst{s : store, f : frame, `exn*` : exninst*}(`%;%`_state(s, f), exn*{exn <- `exn*`}) = `%;%`_state(s[EXNS_store =++ exn*{exn <- `exn*`}], f) + def $add_exninst{store#575 : store, frame#575 : frame, s : store, f : frame, `exn*` : exninst*, store#587 : store, frame#587 : frame, `exninst*#3` : exninst*}(`%;%`_state{store#575, frame#575}(s, f), exn*{exn <- `exn*`}) = `%;%`_state{store#587, frame#587}(s[`EXNS`_store{`exninst*#3`} =++ exn*{exn <- `exn*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $growtable(tableinst : tableinst, nat : nat, ref : ref) : tableinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $growtable{tableinst : tableinst, n : n, r : ref, tableinst' : tableinst, at : addrtype, i : u64, `j?` : u64?, rt : reftype, `r'*` : ref*, i' : u64}(tableinst, n, r) = tableinst' - -- if (tableinst = {TYPE `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), REFS r'*{r' <- `r'*`}}) - -- if (tableinst' = {TYPE `%%%`_tabletype(at, `[%..%]`_limits(i', j?{j <- `j?`}), rt), REFS r'*{r' <- `r'*`} ++ r^n{}}) - -- if (i'!`%`_u64.0 = (|r'*{r' <- `r'*`}| + n)) - -- (if (i'!`%`_u64.0 <= j!`%`_u64.0))?{j <- `j?`} + def $growtable{tableinst : tableinst, n : n, r : ref, tableinst' : tableinst, tabletype#875 : tabletype, addrtype#1027 : addrtype, limits#1027 : limits, reftype#3401 : reftype, at : addrtype, u64#361 : u64, `u64?#359` : u64?, i : u64, `j?` : u64?, rt : reftype, `ref*#3` : ref*, `r'*` : ref*, tabletype#876 : tabletype, addrtype#1039 : addrtype, limits#1039 : limits, reftype#3413 : reftype, u64#373 : u64, `u64?#371` : u64?, i' : u64, `ref*#4` : ref*, i#31449 : nat, `i#31467?` : nat?, `i#31477?` : nat?}(tableinst, n, r) = tableinst' + -- if (tableinst = {`TYPE`{tabletype#875} `%%%`_tabletype{addrtype#1027, limits#1027, reftype#3401}(at, `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#3`} r'*{r' <- `r'*`}}) + -- if (tableinst' = {`TYPE`{tabletype#876} `%%%`_tabletype{addrtype#1039, limits#1039, reftype#3413}(at, `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`}), rt), `REFS`{`ref*#4`} r'*{r' <- `r'*`} ++ r^n{}}) + -- if (i'!`%`_u64{i#31449}.0 = (|r'*{r' <- `r'*`}| + n)) + -- (if (i'!`%`_u64{i#31467}.0 <= j!`%`_u64{i#31477}.0))?{i#31467 <- `i#31467?`, i#31477 <- `i#31477?`, j <- `j?`} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $growmem(meminst : meminst, nat : nat) : meminst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $growmem{meminst : meminst, n : n, meminst' : meminst, at : addrtype, i : u64, `j?` : u64?, `b*` : byte*, i' : u64}(meminst, n) = meminst' - -- if (meminst = {TYPE `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), BYTES b*{b <- `b*`}}) - -- if (meminst' = {TYPE `%%PAGE`_memtype(at, `[%..%]`_limits(i', j?{j <- `j?`})), BYTES b*{b <- `b*`} ++ `%`_byte(0)^(n * (64 * $Ki)){}}) - -- if ((i'!`%`_u64.0 : nat <:> rat) = (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat))) - -- (if (i'!`%`_u64.0 <= j!`%`_u64.0))?{j <- `j?`} + def $growmem{meminst : meminst, n : n, meminst' : meminst, memtype#525 : memtype, addrtype#1051 : addrtype, limits#1051 : limits, at : addrtype, u64#385 : u64, `u64?#383` : u64?, i : u64, `j?` : u64?, `byte*#1847` : byte*, `b*` : byte*, memtype#526 : memtype, addrtype#1063 : addrtype, limits#1063 : limits, u64#397 : u64, `u64?#395` : u64?, i' : u64, `byte*#1848` : byte*, `i#31599*` : nat*, i#31609 : nat, `i#31627?` : nat?, `i#31637?` : nat?}(meminst, n) = meminst' + -- if (meminst = {`TYPE`{memtype#525} `%%PAGE`_memtype{addrtype#1051, limits#1051}(at, `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1847`} b*{b <- `b*`}}) + -- if (meminst' = {`TYPE`{memtype#526} `%%PAGE`_memtype{addrtype#1063, limits#1063}(at, `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`})), `BYTES`{`byte*#1848`} b*{b <- `b*`} ++ `%`_byte{i#31599}(0)^(n * (64 * $Ki)){i#31599 <- `i#31599*`}}) + -- if ((i'!`%`_u64{i#31609}.0 : nat <:> rat) = (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat))) + -- (if (i'!`%`_u64{i#31627}.0 <= j!`%`_u64{i#31637}.0))?{i#31627 <- `i#31627?`, i#31637 <- `i#31637?`, j <- `j?`} ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec relation Num_ok: `%|-%:%`(store, num, numtype) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - rule _{s : store, nt : numtype, c : num_(nt)}: - `%|-%:%`(s, CONST_num(nt, c), nt) + rule _{s : store, numtype#51 : numtype, nt : numtype, c : num_(nt)}: + `%|-%:%`(s, `CONST`_num{numtype#51}(nt, c), nt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec relation Vec_ok: `%|-%:%`(store, vec, vectype) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - rule _{s : store, vt : vectype, c : vec_(vt)}: - `%|-%:%`(s, VCONST_vec(vt, c), vt) + rule _{s : store, vectype#54 : vectype, vt : vectype, c : vec_(vt)}: + `%|-%:%`(s, `VCONST`_vec{vectype#54}(vt, c), vt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec rec { @@ -5816,48 +117375,48 @@ rec { ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:25.1-25.60 relation Ref_ok: `%|-%:%`(store, ref, reftype) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:35.1-37.35 - rule null{s : store, ht : heaptype, ht' : heaptype}: - `%|-%:%`(s, REF.NULL_ref(ht), REF_reftype(?(NULL_null), ht')) - -- Heaptype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, ht', ht) + rule null{s : store, heaptype#1049 : heaptype, ht : heaptype, `null?#1051` : null?, heaptype#1061 : heaptype, ht' : heaptype, `deftype*#75` : deftype*, `subtype*#18` : subtype*, `tagtype*#19` : tagtype*, `globaltype*#20` : globaltype*, `memtype*#34` : memtype*, `tabletype*#27` : tabletype*, `deftype*#76` : deftype*, `datatype*#19` : datatype*, `elemtype*#19` : elemtype*, `localtype*#22` : localtype*, `resulttype*#30` : resulttype*, `resulttype?#27` : resulttype?, `funcidx*#56` : funcidx*}: + `%|-%:%`(s, `REF.NULL`_ref{heaptype#1049}(ht), `REF`_reftype{`null?#1051`, heaptype#1061}(?(`NULL`_null), ht')) + -- Heaptype_sub: `%|-%<:%`({`TYPES`{`deftype*#75`} [], `RECS`{`subtype*#18`} [], `TAGS`{`tagtype*#19`} [], `GLOBALS`{`globaltype*#20`} [], `MEMS`{`memtype*#34`} [], `TABLES`{`tabletype*#27`} [], `FUNCS`{`deftype*#76`} [], `DATAS`{`datatype*#19`} [], `ELEMS`{`elemtype*#19`} [], `LOCALS`{`localtype*#22`} [], `LABELS`{`resulttype*#30`} [], `RETURN`{`resulttype?#27`} ?(), `REFS`{`funcidx*#56`} []}, ht', ht) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:39.1-40.33 - rule i31{s : store, i : u31}: - `%|-%:%`(s, REF.I31_NUM_ref(i), REF_reftype(?(), I31_heaptype)) + rule i31{s : store, u31#1 : u31, i : u31, `null?#1063` : null?, heaptype#1073 : heaptype}: + `%|-%:%`(s, `REF.I31_NUM`_ref{u31#1}(i), `REF`_reftype{`null?#1063`, heaptype#1073}(?(), `I31`_heaptype)) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:42.1-44.31 - rule struct{s : store, a : addr, dt : deftype}: - `%|-%:%`(s, REF.STRUCT_ADDR_ref(a), REF_reftype(?(), (dt : deftype <: heaptype))) - -- if (s.STRUCTS_store[a].TYPE_structinst = dt) + rule struct{s : store, structaddr#1 : structaddr, a : addr, `null?#1075` : null?, heaptype#1085 : heaptype, dt : deftype, `structinst*#5` : structinst*, deftype#1 : deftype}: + `%|-%:%`(s, `REF.STRUCT_ADDR`_ref{structaddr#1}(a), `REF`_reftype{`null?#1075`, heaptype#1085}(?(), (dt : deftype <: heaptype))) + -- if (s.`STRUCTS`_store{`structinst*#5`}[a].`TYPE`_structinst{deftype#1} = dt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:46.1-48.30 - rule array{s : store, a : addr, dt : deftype}: - `%|-%:%`(s, REF.ARRAY_ADDR_ref(a), REF_reftype(?(), (dt : deftype <: heaptype))) - -- if (s.ARRAYS_store[a].TYPE_arrayinst = dt) + rule array{s : store, arrayaddr#1 : arrayaddr, a : addr, `null?#1087` : null?, heaptype#1097 : heaptype, dt : deftype, `arrayinst*#5` : arrayinst*, deftype#2 : deftype}: + `%|-%:%`(s, `REF.ARRAY_ADDR`_ref{arrayaddr#1}(a), `REF`_reftype{`null?#1087`, heaptype#1097}(?(), (dt : deftype <: heaptype))) + -- if (s.`ARRAYS`_store{`arrayinst*#5`}[a].`TYPE`_arrayinst{deftype#2} = dt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:50.1-52.29 - rule func{s : store, a : addr, dt : deftype}: - `%|-%:%`(s, REF.FUNC_ADDR_ref(a), REF_reftype(?(), (dt : deftype <: heaptype))) - -- if (s.FUNCS_store[a].TYPE_funcinst = dt) + rule func{s : store, funcaddr#3 : funcaddr, a : addr, `null?#1099` : null?, heaptype#1109 : heaptype, dt : deftype, `funcinst*#4` : funcinst*, deftype#3 : deftype}: + `%|-%:%`(s, `REF.FUNC_ADDR`_ref{funcaddr#3}(a), `REF`_reftype{`null?#1099`, heaptype#1109}(?(), (dt : deftype <: heaptype))) + -- if (s.`FUNCS`_store{`funcinst*#4`}[a].`TYPE`_funcinst{deftype#3} = dt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:54.1-56.24 - rule exn{s : store, a : addr, exn : exninst}: - `%|-%:%`(s, REF.EXN_ADDR_ref(a), REF_reftype(?(), EXN_heaptype)) - -- if (s.EXNS_store[a] = exn) + rule exn{s : store, exnaddr#1 : exnaddr, a : addr, `null?#1111` : null?, heaptype#1121 : heaptype, `exninst*#4` : exninst*, exn : exninst}: + `%|-%:%`(s, `REF.EXN_ADDR`_ref{exnaddr#1}(a), `REF`_reftype{`null?#1111`, heaptype#1121}(?(), `EXN`_heaptype)) + -- if (s.`EXNS`_store{`exninst*#4`}[a] = exn) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:58.1-59.35 - rule host{s : store, a : addr}: - `%|-%:%`(s, REF.HOST_ADDR_ref(a), REF_reftype(?(), ANY_heaptype)) + rule host{s : store, hostaddr#1 : hostaddr, a : addr, `null?#1123` : null?, heaptype#1133 : heaptype}: + `%|-%:%`(s, `REF.HOST_ADDR`_ref{hostaddr#1}(a), `REF`_reftype{`null?#1123`, heaptype#1133}(?(), `ANY`_heaptype)) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:61.1-63.38 - rule extern{s : store, addrref : addrref}: - `%|-%:%`(s, REF.EXTERN_ref(addrref), REF_reftype(?(), EXTERN_heaptype)) - -- Ref_ok: `%|-%:%`(s, (addrref : addrref <: ref), REF_reftype(?(), ANY_heaptype)) + rule extern{s : store, addrref#1 : addrref, addrref : addrref, `null?#1135` : null?, heaptype#1145 : heaptype, `null?#1147` : null?, heaptype#1157 : heaptype}: + `%|-%:%`(s, `REF.EXTERN`_ref{addrref#1}(addrref), `REF`_reftype{`null?#1135`, heaptype#1145}(?(), `EXTERN`_heaptype)) + -- Ref_ok: `%|-%:%`(s, (addrref : addrref <: ref), `REF`_reftype{`null?#1147`, heaptype#1157}(?(), `ANY`_heaptype)) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:65.1-68.34 - rule sub{s : store, ref : ref, rt : reftype, rt' : reftype}: + rule sub{s : store, ref : ref, rt : reftype, rt' : reftype, `deftype*#77` : deftype*, `subtype*#19` : subtype*, `tagtype*#20` : tagtype*, `globaltype*#21` : globaltype*, `memtype*#35` : memtype*, `tabletype*#28` : tabletype*, `deftype*#78` : deftype*, `datatype*#20` : datatype*, `elemtype*#20` : elemtype*, `localtype*#23` : localtype*, `resulttype*#31` : resulttype*, `resulttype?#28` : resulttype?, `funcidx*#57` : funcidx*}: `%|-%:%`(s, ref, rt) -- Ref_ok: `%|-%:%`(s, ref, rt') - -- Reftype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, rt', rt) + -- Reftype_sub: `%|-%<:%`({`TYPES`{`deftype*#77`} [], `RECS`{`subtype*#19`} [], `TAGS`{`tagtype*#20`} [], `GLOBALS`{`globaltype*#21`} [], `MEMS`{`memtype*#35`} [], `TABLES`{`tabletype*#28`} [], `FUNCS`{`deftype*#78`} [], `DATAS`{`datatype*#20`} [], `ELEMS`{`elemtype*#20`} [], `LOCALS`{`localtype*#23`} [], `LABELS`{`resulttype*#31`} [], `RETURN`{`resulttype?#28`} ?(), `REFS`{`funcidx*#57`} []}, rt', rt) } ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec @@ -5883,994 +117442,994 @@ rec { ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:86.1-86.84 relation Externaddr_ok: `%|-%:%`(store, externaddr, externtype) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:88.1-90.28 - rule tag{s : store, a : addr, taginst : taginst}: - `%|-%:%`(s, TAG_externaddr(a), TAG_externtype(taginst.TYPE_taginst)) - -- if (s.TAGS_store[a] = taginst) + rule tag{s : store, tagaddr#3 : tagaddr, a : addr, tagtype#177 : tagtype, taginst : taginst, tagtype#179 : tagtype, `taginst*#4` : taginst*}: + `%|-%:%`(s, `TAG`_externaddr{tagaddr#3}(a), `TAG`_externtype{tagtype#177}(taginst.`TYPE`_taginst{tagtype#179})) + -- if (s.`TAGS`_store{`taginst*#4`}[a] = taginst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:92.1-94.34 - rule global{s : store, a : addr, globalinst : globalinst}: - `%|-%:%`(s, GLOBAL_externaddr(a), GLOBAL_externtype(globalinst.TYPE_globalinst)) - -- if (s.GLOBALS_store[a] = globalinst) + rule global{s : store, globaladdr#3 : globaladdr, a : addr, globaltype#2085 : globaltype, globalinst : globalinst, globaltype#2087 : globaltype, `globalinst*#5` : globalinst*}: + `%|-%:%`(s, `GLOBAL`_externaddr{globaladdr#3}(a), `GLOBAL`_externtype{globaltype#2085}(globalinst.`TYPE`_globalinst{globaltype#2087})) + -- if (s.`GLOBALS`_store{`globalinst*#5`}[a] = globalinst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:96.1-98.28 - rule mem{s : store, a : addr, meminst : meminst}: - `%|-%:%`(s, MEM_externaddr(a), MEM_externtype(meminst.TYPE_meminst)) - -- if (s.MEMS_store[a] = meminst) + rule mem{s : store, memaddr#3 : memaddr, a : addr, memtype#527 : memtype, meminst : meminst, memtype#529 : memtype, `meminst*#6` : meminst*}: + `%|-%:%`(s, `MEM`_externaddr{memaddr#3}(a), `MEM`_externtype{memtype#527}(meminst.`TYPE`_meminst{memtype#529})) + -- if (s.`MEMS`_store{`meminst*#6`}[a] = meminst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:100.1-102.32 - rule table{s : store, a : addr, tableinst : tableinst}: - `%|-%:%`(s, TABLE_externaddr(a), TABLE_externtype(tableinst.TYPE_tableinst)) - -- if (s.TABLES_store[a] = tableinst) + rule table{s : store, tableaddr#3 : tableaddr, a : addr, tabletype#877 : tabletype, tableinst : tableinst, tabletype#879 : tabletype, `tableinst*#6` : tableinst*}: + `%|-%:%`(s, `TABLE`_externaddr{tableaddr#3}(a), `TABLE`_externtype{tabletype#877}(tableinst.`TYPE`_tableinst{tabletype#879})) + -- if (s.`TABLES`_store{`tableinst*#6`}[a] = tableinst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:104.1-106.30 - rule func{s : store, a : addr, funcinst : funcinst}: - `%|-%:%`(s, FUNC_externaddr(a), FUNC_externtype((funcinst.TYPE_funcinst : deftype <: typeuse))) - -- if (s.FUNCS_store[a] = funcinst) + rule func{s : store, funcaddr#5 : funcaddr, a : addr, typeuse#33 : typeuse, funcinst : funcinst, deftype#4 : deftype, `funcinst*#5` : funcinst*}: + `%|-%:%`(s, `FUNC`_externaddr{funcaddr#5}(a), `FUNC`_externtype{typeuse#33}((funcinst.`TYPE`_funcinst{deftype#4} : deftype <: typeuse))) + -- if (s.`FUNCS`_store{`funcinst*#5`}[a] = funcinst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:108.1-111.37 - rule sub{s : store, externaddr : externaddr, xt : externtype, xt' : externtype}: + rule sub{s : store, externaddr : externaddr, xt : externtype, xt' : externtype, `deftype*#79` : deftype*, `subtype*#20` : subtype*, `tagtype*#21` : tagtype*, `globaltype*#22` : globaltype*, `memtype*#36` : memtype*, `tabletype*#29` : tabletype*, `deftype*#80` : deftype*, `datatype*#21` : datatype*, `elemtype*#21` : elemtype*, `localtype*#24` : localtype*, `resulttype*#32` : resulttype*, `resulttype?#29` : resulttype?, `funcidx*#58` : funcidx*}: `%|-%:%`(s, externaddr, xt) -- Externaddr_ok: `%|-%:%`(s, externaddr, xt') - -- Externtype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, xt', xt) + -- Externtype_sub: `%|-%<:%`({`TYPES`{`deftype*#79`} [], `RECS`{`subtype*#20`} [], `TAGS`{`tagtype*#21`} [], `GLOBALS`{`globaltype*#22`} [], `MEMS`{`memtype*#36`} [], `TABLES`{`tabletype*#29`} [], `FUNCS`{`deftype*#80`} [], `DATAS`{`datatype*#21`} [], `ELEMS`{`elemtype*#21`} [], `LOCALS`{`localtype*#24`} [], `LABELS`{`resulttype*#32`} [], `RETURN`{`resulttype?#29`} ?(), `REFS`{`funcidx*#58`} []}, xt', xt) } ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_valtype(moduleinst : moduleinst, valtype : valtype) : valtype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_valtype{moduleinst : moduleinst, t : valtype, `dt*` : deftype*}(moduleinst, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.TYPES_moduleinst) + def $inst_valtype{moduleinst : moduleinst, t : valtype, `dt*` : deftype*, `deftype*#81` : deftype*}(moduleinst, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#81`}) ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_reftype(moduleinst : moduleinst, reftype : reftype) : reftype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_reftype{moduleinst : moduleinst, rt : reftype, `dt*` : deftype*}(moduleinst, rt) = $subst_all_reftype(rt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.TYPES_moduleinst) + def $inst_reftype{moduleinst : moduleinst, rt : reftype, `dt*` : deftype*, `deftype*#82` : deftype*}(moduleinst, rt) = $subst_all_reftype(rt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#82`}) ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_globaltype(moduleinst : moduleinst, globaltype : globaltype) : globaltype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_globaltype{moduleinst : moduleinst, gt : globaltype, `dt*` : deftype*}(moduleinst, gt) = $subst_all_globaltype(gt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.TYPES_moduleinst) + def $inst_globaltype{moduleinst : moduleinst, gt : globaltype, `dt*` : deftype*, `deftype*#83` : deftype*}(moduleinst, gt) = $subst_all_globaltype(gt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#83`}) ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_memtype(moduleinst : moduleinst, memtype : memtype) : memtype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_memtype{moduleinst : moduleinst, mt : memtype, `dt*` : deftype*}(moduleinst, mt) = $subst_all_memtype(mt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.TYPES_moduleinst) + def $inst_memtype{moduleinst : moduleinst, mt : memtype, `dt*` : deftype*, `deftype*#84` : deftype*}(moduleinst, mt) = $subst_all_memtype(mt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#84`}) ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_tabletype{moduleinst : moduleinst, tt : tabletype, `dt*` : deftype*}(moduleinst, tt) = $subst_all_tabletype(tt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.TYPES_moduleinst) + def $inst_tabletype{moduleinst : moduleinst, tt : tabletype, `dt*` : deftype*, `deftype*#85` : deftype*}(moduleinst, tt) = $subst_all_tabletype(tt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#85`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec relation Step_pure: `%~>%`(instr*, instr*) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule unreachable: - `%~>%`([UNREACHABLE_instr], [TRAP_instr]) + `%~>%`([`UNREACHABLE`_instr], [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule nop: - `%~>%`([NOP_instr], []) + `%~>%`([`NOP`_instr], []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule drop{val : val}: - `%~>%`([(val : val <: instr) DROP_instr], []) + `%~>%`([(val : val <: instr) `DROP`_instr], []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `select-true`{val_1 : val, val_2 : val, c : num_(I32_numtype), `t*?` : valtype*?}: - `%~>%`([(val_1 : val <: instr) (val_2 : val <: instr) CONST_instr(I32_numtype, c) SELECT_instr(t*{t <- `t*`}?{`t*` <- `t*?`})], [(val_1 : val <: instr)]) - -- if (c!`%`_num_.0 =/= 0) + rule `select-true`{val_1 : val, val_2 : val, numtype#59 : numtype, c : num_(`I32`_numtype), `valtype*?#7` : valtype*?, `t*?` : valtype*?, i#31733 : nat}: + `%~>%`([(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr{numtype#59}(`I32`_numtype, c) `SELECT`_instr{`valtype*?#7`}(t*{t <- `t*`}?{`t*` <- `t*?`})], [(val_1 : val <: instr)]) + -- if (c!`%`_num_{i#31733}.0 =/= 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `select-false`{val_1 : val, val_2 : val, c : num_(I32_numtype), `t*?` : valtype*?}: - `%~>%`([(val_1 : val <: instr) (val_2 : val <: instr) CONST_instr(I32_numtype, c) SELECT_instr(t*{t <- `t*`}?{`t*` <- `t*?`})], [(val_2 : val <: instr)]) - -- if (c!`%`_num_.0 = 0) + rule `select-false`{val_1 : val, val_2 : val, numtype#61 : numtype, c : num_(`I32`_numtype), `valtype*?#9` : valtype*?, `t*?` : valtype*?, i#31757 : nat}: + `%~>%`([(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr{numtype#61}(`I32`_numtype, c) `SELECT`_instr{`valtype*?#9`}(t*{t <- `t*`}?{`t*` <- `t*?`})], [(val_2 : val <: instr)]) + -- if (c!`%`_num_{i#31757}.0 = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `if-true`{c : num_(I32_numtype), bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}: - `%~>%`([CONST_instr(I32_numtype, c) `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})], [BLOCK_instr(bt, instr_1*{instr_1 <- `instr_1*`})]) - -- if (c!`%`_num_.0 =/= 0) + rule `if-true`{numtype#63 : numtype, c : num_(`I32`_numtype), blocktype#21 : blocktype, `instr*#363` : instr*, bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*, blocktype#23 : blocktype, `instr*#366` : instr*, i#31807 : nat}: + `%~>%`([`CONST`_instr{numtype#63}(`I32`_numtype, c) `IF%%ELSE%`_instr{blocktype#21, `instr*#363`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})], [`BLOCK`_instr{blocktype#23, `instr*#366`}(bt, instr_1*{instr_1 <- `instr_1*`})]) + -- if (c!`%`_num_{i#31807}.0 =/= 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `if-false`{c : num_(I32_numtype), bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}: - `%~>%`([CONST_instr(I32_numtype, c) `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})], [BLOCK_instr(bt, instr_2*{instr_2 <- `instr_2*`})]) - -- if (c!`%`_num_.0 = 0) + rule `if-false`{numtype#65 : numtype, c : num_(`I32`_numtype), blocktype#25 : blocktype, `instr*#368` : instr*, bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*, blocktype#27 : blocktype, `instr*#371` : instr*, i#31831 : nat}: + `%~>%`([`CONST`_instr{numtype#65}(`I32`_numtype, c) `IF%%ELSE%`_instr{blocktype#25, `instr*#368`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})], [`BLOCK`_instr{blocktype#27, `instr*#371`}(bt, instr_2*{instr_2 <- `instr_2*`})]) + -- if (c!`%`_num_{i#31831}.0 = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `label-vals`{n : n, `instr*` : instr*, `val*` : val*}: - `%~>%`([`LABEL_%{%}%`_instr(n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})], (val : val <: instr)*{val <- `val*`}) + rule `label-vals`{n#1145 : n, `instr*#373` : instr*, n : n, `instr*` : instr*, `val*` : val*}: + `%~>%`([`LABEL_%{%}%`_instr{n#1145, `instr*#373`}(n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})], (val : val <: instr)*{val <- `val*`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br-label-zero`{n : n, `instr'*` : instr*, `val'*` : val*, `val*` : val*, l : labelidx, `instr*` : instr*}: - `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [BR_instr(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)^n{val <- `val*`} ++ instr'*{instr' <- `instr'*`}) - -- if (l!`%`_labelidx.0 = 0) + rule `br-label-zero`{n#1147 : n, `instr*#376` : instr*, n : n, `instr'*` : instr*, `val'*` : val*, `val*` : val*, labelidx#37 : labelidx, l : labelidx, `instr*` : instr*, i#31853 : nat}: + `%~>%`([`LABEL_%{%}%`_instr{n#1147, `instr*#376`}(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr{labelidx#37}(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)^n{val <- `val*`} ++ instr'*{instr' <- `instr'*`}) + -- if (l!`%`_labelidx{i#31853}.0 = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br-label-succ`{n : n, `instr'*` : instr*, `val*` : val*, l : labelidx, `instr*` : instr*}: - `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [BR_instr(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [BR_instr(`%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]) - -- if (l!`%`_labelidx.0 > 0) + rule `br-label-succ`{n#1149 : n, `instr*#379` : instr*, n : n, `instr'*` : instr*, `val*` : val*, labelidx#39 : labelidx, l : labelidx, `instr*` : instr*, labelidx#41 : labelidx, i#31901 : nat, i#31891 : nat, i#31915 : nat}: + `%~>%`([`LABEL_%{%}%`_instr{n#1149, `instr*#379`}(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#39}(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#41}(`%`_labelidx{i#31901}((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]) + -- if (l!`%`_labelidx{i#31915}.0 > 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br-handler`{n : n, `catch*` : catch*, `val*` : val*, l : labelidx, `instr*` : instr*}: - `%~>%`([`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [BR_instr(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [BR_instr(l)]) + rule `br-handler`{n#1151 : n, `catch*#1` : catch*, `instr*#382` : instr*, n : n, `catch*` : catch*, `val*` : val*, labelidx#43 : labelidx, l : labelidx, `instr*` : instr*, labelidx#45 : labelidx}: + `%~>%`([`HANDLER_%{%}%`_instr{n#1151, `catch*#1`, `instr*#382`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#43}(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#45}(l)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_if-true`{c : num_(I32_numtype), l : labelidx}: - `%~>%`([CONST_instr(I32_numtype, c) BR_IF_instr(l)], [BR_instr(l)]) - -- if (c!`%`_num_.0 =/= 0) + rule `br_if-true`{numtype#67 : numtype, c : num_(`I32`_numtype), labelidx#47 : labelidx, l : labelidx, labelidx#49 : labelidx, i#31987 : nat}: + `%~>%`([`CONST`_instr{numtype#67}(`I32`_numtype, c) `BR_IF`_instr{labelidx#47}(l)], [`BR`_instr{labelidx#49}(l)]) + -- if (c!`%`_num_{i#31987}.0 =/= 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_if-false`{c : num_(I32_numtype), l : labelidx}: - `%~>%`([CONST_instr(I32_numtype, c) BR_IF_instr(l)], []) - -- if (c!`%`_num_.0 = 0) + rule `br_if-false`{numtype#69 : numtype, c : num_(`I32`_numtype), labelidx#51 : labelidx, l : labelidx, i#32023 : nat}: + `%~>%`([`CONST`_instr{numtype#69}(`I32`_numtype, c) `BR_IF`_instr{labelidx#51}(l)], []) + -- if (c!`%`_num_{i#32023}.0 = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_table-lt`{i : num_(I32_numtype), `l*` : labelidx*, l' : labelidx}: - `%~>%`([CONST_instr(I32_numtype, i) BR_TABLE_instr(l*{l <- `l*`}, l')], [BR_instr(l*{l <- `l*`}[i!`%`_num_.0])]) - -- if (i!`%`_num_.0 < |l*{l <- `l*`}|) + rule `br_table-lt`{numtype#71 : numtype, i : num_(`I32`_numtype), `labelidx*#50` : labelidx*, labelidx#53 : labelidx, `l*` : labelidx*, l' : labelidx, labelidx#55 : labelidx, i#32131 : nat, i#32145 : nat}: + `%~>%`([`CONST`_instr{numtype#71}(`I32`_numtype, i) `BR_TABLE`_instr{`labelidx*#50`, labelidx#53}(l*{l <- `l*`}, l')], [`BR`_instr{labelidx#55}(l*{l <- `l*`}[i!`%`_num_{i#32131}.0])]) + -- if (i!`%`_num_{i#32145}.0 < |l*{l <- `l*`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_table-ge`{i : num_(I32_numtype), `l*` : labelidx*, l' : labelidx}: - `%~>%`([CONST_instr(I32_numtype, i) BR_TABLE_instr(l*{l <- `l*`}, l')], [BR_instr(l')]) - -- if (i!`%`_num_.0 >= |l*{l <- `l*`}|) + rule `br_table-ge`{numtype#73 : numtype, i : num_(`I32`_numtype), `labelidx*#52` : labelidx*, labelidx#57 : labelidx, `l*` : labelidx*, l' : labelidx, labelidx#59 : labelidx, i#32257 : nat}: + `%~>%`([`CONST`_instr{numtype#73}(`I32`_numtype, i) `BR_TABLE`_instr{`labelidx*#52`, labelidx#57}(l*{l <- `l*`}, l')], [`BR`_instr{labelidx#59}(l')]) + -- if (i!`%`_num_{i#32257}.0 >= |l*{l <- `l*`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_null-null`{val : val, l : labelidx, ht : heaptype}: - `%~>%`([(val : val <: instr) BR_ON_NULL_instr(l)], [BR_instr(l)]) - -- if (val = REF.NULL_val(ht)) + rule `br_on_null-null`{val : val, labelidx#61 : labelidx, l : labelidx, labelidx#63 : labelidx, heaptype#1207 : heaptype, ht : heaptype}: + `%~>%`([(val : val <: instr) `BR_ON_NULL`_instr{labelidx#61}(l)], [`BR`_instr{labelidx#63}(l)]) + -- if (val = `REF.NULL`_val{heaptype#1207}(ht)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_null-addr`{val : val, l : labelidx}: - `%~>%`([(val : val <: instr) BR_ON_NULL_instr(l)], [(val : val <: instr)]) + rule `br_on_null-addr`{val : val, labelidx#65 : labelidx, l : labelidx}: + `%~>%`([(val : val <: instr) `BR_ON_NULL`_instr{labelidx#65}(l)], [(val : val <: instr)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_non_null-null`{val : val, l : labelidx, ht : heaptype}: - `%~>%`([(val : val <: instr) BR_ON_NON_NULL_instr(l)], []) - -- if (val = REF.NULL_val(ht)) + rule `br_on_non_null-null`{val : val, labelidx#67 : labelidx, l : labelidx, heaptype#1209 : heaptype, ht : heaptype}: + `%~>%`([(val : val <: instr) `BR_ON_NON_NULL`_instr{labelidx#67}(l)], []) + -- if (val = `REF.NULL`_val{heaptype#1209}(ht)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_non_null-addr`{val : val, l : labelidx}: - `%~>%`([(val : val <: instr) BR_ON_NON_NULL_instr(l)], [(val : val <: instr) BR_instr(l)]) + rule `br_on_non_null-addr`{val : val, labelidx#69 : labelidx, l : labelidx, labelidx#71 : labelidx}: + `%~>%`([(val : val <: instr) `BR_ON_NON_NULL`_instr{labelidx#69}(l)], [(val : val <: instr) `BR`_instr{labelidx#71}(l)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule call_indirect{x : idx, yy : typeuse}: - `%~>%`([CALL_INDIRECT_instr(x, yy)], [TABLE.GET_instr(x) REF.CAST_instr(REF_reftype(?(NULL_null), (yy : typeuse <: heaptype))) CALL_REF_instr(yy)]) + rule call_indirect{tableidx#49 : tableidx, typeuse#57 : typeuse, x : idx, yy : typeuse, tableidx#51 : tableidx, reftype#3451 : reftype, `null?#1303` : null?, heaptype#1321 : heaptype, typeuse#59 : typeuse}: + `%~>%`([`CALL_INDIRECT`_instr{tableidx#49, typeuse#57}(x, yy)], [`TABLE.GET`_instr{tableidx#51}(x) `REF.CAST`_instr{reftype#3451}(`REF`_reftype{`null?#1303`, heaptype#1321}(?(`NULL`_null), (yy : typeuse <: heaptype))) `CALL_REF`_instr{typeuse#59}(yy)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule return_call_indirect{x : idx, yy : typeuse}: - `%~>%`([RETURN_CALL_INDIRECT_instr(x, yy)], [TABLE.GET_instr(x) REF.CAST_instr(REF_reftype(?(NULL_null), (yy : typeuse <: heaptype))) RETURN_CALL_REF_instr(yy)]) + rule return_call_indirect{tableidx#53 : tableidx, typeuse#61 : typeuse, x : idx, yy : typeuse, tableidx#55 : tableidx, reftype#3453 : reftype, `null?#1315` : null?, heaptype#1333 : heaptype, typeuse#63 : typeuse}: + `%~>%`([`RETURN_CALL_INDIRECT`_instr{tableidx#53, typeuse#61}(x, yy)], [`TABLE.GET`_instr{tableidx#55}(x) `REF.CAST`_instr{reftype#3453}(`REF`_reftype{`null?#1315`, heaptype#1333}(?(`NULL`_null), (yy : typeuse <: heaptype))) `RETURN_CALL_REF`_instr{typeuse#63}(yy)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `frame-vals`{n : n, f : frame, `val*` : val*}: - `%~>%`([`FRAME_%{%}%`_instr(n, f, (val : val <: instr)^n{val <- `val*`})], (val : val <: instr)^n{val <- `val*`}) + rule `frame-vals`{n#1177 : n, frame#947 : frame, `instr*#542` : instr*, n : n, f : frame, `val*` : val*}: + `%~>%`([`FRAME_%{%}%`_instr{n#1177, frame#947, `instr*#542`}(n, f, (val : val <: instr)^n{val <- `val*`})], (val : val <: instr)^n{val <- `val*`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return-frame`{n : n, f : frame, `val'*` : val*, `val*` : val*, `instr*` : instr*}: - `%~>%`([`FRAME_%{%}%`_instr(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [RETURN_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)^n{val <- `val*`}) + rule `return-frame`{n#1179 : n, frame#949 : frame, `instr*#544` : instr*, n : n, f : frame, `val'*` : val*, `val*` : val*, `instr*` : instr*}: + `%~>%`([`FRAME_%{%}%`_instr{n#1179, frame#949, `instr*#544`}(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)^n{val <- `val*`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return-label`{n : n, `instr'*` : instr*, `val*` : val*, `instr*` : instr*}: - `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [RETURN_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [RETURN_instr]) + rule `return-label`{n#1181 : n, `instr*#546` : instr*, n : n, `instr'*` : instr*, `val*` : val*, `instr*` : instr*}: + `%~>%`([`LABEL_%{%}%`_instr{n#1181, `instr*#546`}(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return-handler`{n : n, `catch*` : catch*, `val*` : val*, `instr*` : instr*}: - `%~>%`([`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [RETURN_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [RETURN_instr]) + rule `return-handler`{n#1183 : n, `catch*#5` : catch*, `instr*#549` : instr*, n : n, `catch*` : catch*, `val*` : val*, `instr*` : instr*}: + `%~>%`([`HANDLER_%{%}%`_instr{n#1183, `catch*#5`, `instr*#549`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `handler-vals`{n : n, `catch*` : catch*, `val*` : val*}: - `%~>%`([`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})], (val : val <: instr)*{val <- `val*`}) + rule `handler-vals`{n#1213 : n, `catch*#23` : catch*, `instr*#733` : instr*, n : n, `catch*` : catch*, `val*` : val*}: + `%~>%`([`HANDLER_%{%}%`_instr{n#1213, `catch*#23`, `instr*#733`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})], (val : val <: instr)*{val <- `val*`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `trap-instrs`{`val*` : val*, `instr*` : instr*}: - `%~>%`((val : val <: instr)*{val <- `val*`} ++ [TRAP_instr] ++ instr*{instr <- `instr*`}, [TRAP_instr]) + `%~>%`((val : val <: instr)*{val <- `val*`} ++ [`TRAP`_instr] ++ instr*{instr <- `instr*`}, [`TRAP`_instr]) -- if ((val*{val <- `val*`} =/= []) \/ (instr*{instr <- `instr*`} =/= [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `trap-label`{n : n, `instr'*` : instr*}: - `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [TRAP_instr])], [TRAP_instr]) + rule `trap-label`{n#1215 : n, `instr*#735` : instr*, n : n, `instr'*` : instr*}: + `%~>%`([`LABEL_%{%}%`_instr{n#1215, `instr*#735`}(n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])], [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `trap-frame`{n : n, f : frame}: - `%~>%`([`FRAME_%{%}%`_instr(n, f, [TRAP_instr])], [TRAP_instr]) + rule `trap-frame`{n#1217 : n, frame#1097 : frame, `instr*#738` : instr*, n : n, f : frame}: + `%~>%`([`FRAME_%{%}%`_instr{n#1217, frame#1097, `instr*#738`}(n, f, [`TRAP`_instr])], [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule local.tee{val : val, x : idx}: - `%~>%`([(val : val <: instr) LOCAL.TEE_instr(x)], [(val : val <: instr) (val : val <: instr) LOCAL.SET_instr(x)]) + rule local.tee{val : val, localidx#17 : localidx, x : idx, localidx#19 : localidx}: + `%~>%`([(val : val <: instr) `LOCAL.TEE`_instr{localidx#17}(x)], [(val : val <: instr) (val : val <: instr) `LOCAL.SET`_instr{localidx#19}(x)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule ref.i31{i : num_(I32_numtype)}: - `%~>%`([CONST_instr(I32_numtype, i) REF.I31_instr], [REF.I31_NUM_instr($wrap__(32, 31, i))]) + rule ref.i31{numtype#351 : numtype, i : num_(`I32`_numtype), u31#3 : u31}: + `%~>%`([`CONST`_instr{numtype#351}(`I32`_numtype, i) `REF.I31`_instr], [`REF.I31_NUM`_instr{u31#3}($wrap__(32, 31, i))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.is_null-true`{ref : ref, ht : heaptype}: - `%~>%`([(ref : ref <: instr) REF.IS_NULL_instr], [CONST_instr(I32_numtype, `%`_num_(1))]) - -- if (ref = REF.NULL_ref(ht)) + rule `ref.is_null-true`{ref : ref, numtype#353 : numtype, i#40032 : nat, heaptype#1347 : heaptype, ht : heaptype}: + `%~>%`([(ref : ref <: instr) `REF.IS_NULL`_instr], [`CONST`_instr{numtype#353}(`I32`_numtype, `%`_num_{i#40032}(1))]) + -- if (ref = `REF.NULL`_ref{heaptype#1347}(ht)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.is_null-false`{ref : ref}: - `%~>%`([(ref : ref <: instr) REF.IS_NULL_instr], [CONST_instr(I32_numtype, `%`_num_(0))]) + rule `ref.is_null-false`{ref : ref, numtype#355 : numtype, i#40054 : nat}: + `%~>%`([(ref : ref <: instr) `REF.IS_NULL`_instr], [`CONST`_instr{numtype#355}(`I32`_numtype, `%`_num_{i#40054}(0))]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.as_non_null-null`{ref : ref, ht : heaptype}: - `%~>%`([(ref : ref <: instr) REF.AS_NON_NULL_instr], [TRAP_instr]) - -- if (ref = REF.NULL_ref(ht)) + rule `ref.as_non_null-null`{ref : ref, heaptype#1349 : heaptype, ht : heaptype}: + `%~>%`([(ref : ref <: instr) `REF.AS_NON_NULL`_instr], [`TRAP`_instr]) + -- if (ref = `REF.NULL`_ref{heaptype#1349}(ht)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `ref.as_non_null-addr`{ref : ref}: - `%~>%`([(ref : ref <: instr) REF.AS_NON_NULL_instr], [(ref : ref <: instr)]) + `%~>%`([(ref : ref <: instr) `REF.AS_NON_NULL`_instr], [(ref : ref <: instr)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.eq-null`{ref_1 : ref, ref_2 : ref, ht_1 : heaptype, ht_2 : heaptype}: - `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) REF.EQ_instr], [CONST_instr(I32_numtype, `%`_num_(1))]) - -- if ((ref_1 = REF.NULL_ref(ht_1)) /\ (ref_2 = REF.NULL_ref(ht_2))) + rule `ref.eq-null`{ref_1 : ref, ref_2 : ref, numtype#357 : numtype, i#40076 : nat, heaptype#1351 : heaptype, ht_1 : heaptype, heaptype#1353 : heaptype, ht_2 : heaptype}: + `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [`CONST`_instr{numtype#357}(`I32`_numtype, `%`_num_{i#40076}(1))]) + -- if ((ref_1 = `REF.NULL`_ref{heaptype#1351}(ht_1)) /\ (ref_2 = `REF.NULL`_ref{heaptype#1353}(ht_2))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.eq-true`{ref_1 : ref, ref_2 : ref}: - `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) REF.EQ_instr], [CONST_instr(I32_numtype, `%`_num_(1))]) + rule `ref.eq-true`{ref_1 : ref, ref_2 : ref, numtype#359 : numtype, i#40098 : nat}: + `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [`CONST`_instr{numtype#359}(`I32`_numtype, `%`_num_{i#40098}(1))]) -- otherwise -- if (ref_1 = ref_2) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.eq-false`{ref_1 : ref, ref_2 : ref}: - `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) REF.EQ_instr], [CONST_instr(I32_numtype, `%`_num_(0))]) + rule `ref.eq-false`{ref_1 : ref, ref_2 : ref, numtype#361 : numtype, i#40120 : nat}: + `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [`CONST`_instr{numtype#361}(`I32`_numtype, `%`_num_{i#40120}(0))]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `i31.get-null`{ht : heaptype, sx : sx}: - `%~>%`([REF.NULL_instr(ht) I31.GET_instr(sx)], [TRAP_instr]) + rule `i31.get-null`{heaptype#1427 : heaptype, ht : heaptype, sx#404 : sx, sx : sx}: + `%~>%`([`REF.NULL`_instr{heaptype#1427}(ht) `I31.GET`_instr{sx#404}(sx)], [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `i31.get-num`{i : u31, sx : sx}: - `%~>%`([REF.I31_NUM_instr(i) I31.GET_instr(sx)], [CONST_instr(I32_numtype, $extend__(31, 32, sx, i))]) + rule `i31.get-num`{u31#5 : u31, i : u31, sx#406 : sx, sx : sx, numtype#367 : numtype}: + `%~>%`([`REF.I31_NUM`_instr{u31#5}(i) `I31.GET`_instr{sx#406}(sx)], [`CONST`_instr{numtype#367}(`I32`_numtype, $extend__(31, 32, sx, i))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule array.new{val : val, n : n, x : idx}: - `%~>%`([(val : val <: instr) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.NEW_instr(x)], (val : val <: instr)^n{} ++ [ARRAY.NEW_FIXED_instr(x, `%`_u32(n))]) + rule array.new{val : val, numtype#369 : numtype, i#40512 : nat, n : n, typeidx#1571 : typeidx, x : idx, typeidx#1573 : typeidx, u32#25 : u32, i#40564 : nat}: + `%~>%`([(val : val <: instr) `CONST`_instr{numtype#369}(`I32`_numtype, `%`_num_{i#40512}(n)) `ARRAY.NEW`_instr{typeidx#1571}(x)], (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1573, u32#25}(x, `%`_u32{i#40564}(n))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `extern.convert_any-null`{ht : heaptype}: - `%~>%`([REF.NULL_instr(ht) EXTERN.CONVERT_ANY_instr], [REF.NULL_instr(EXTERN_heaptype)]) + rule `extern.convert_any-null`{heaptype#1449 : heaptype, ht : heaptype, heaptype#1451 : heaptype}: + `%~>%`([`REF.NULL`_instr{heaptype#1449}(ht) `EXTERN.CONVERT_ANY`_instr], [`REF.NULL`_instr{heaptype#1451}(`EXTERN`_heaptype)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `extern.convert_any-addr`{addrref : addrref}: - `%~>%`([(addrref : addrref <: instr) EXTERN.CONVERT_ANY_instr], [REF.EXTERN_instr(addrref)]) + rule `extern.convert_any-addr`{addrref : addrref, addrref#3 : addrref}: + `%~>%`([(addrref : addrref <: instr) `EXTERN.CONVERT_ANY`_instr], [`REF.EXTERN`_instr{addrref#3}(addrref)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `any.convert_extern-null`{ht : heaptype}: - `%~>%`([REF.NULL_instr(ht) ANY.CONVERT_EXTERN_instr], [REF.NULL_instr(ANY_heaptype)]) + rule `any.convert_extern-null`{heaptype#1453 : heaptype, ht : heaptype, heaptype#1455 : heaptype}: + `%~>%`([`REF.NULL`_instr{heaptype#1453}(ht) `ANY.CONVERT_EXTERN`_instr], [`REF.NULL`_instr{heaptype#1455}(`ANY`_heaptype)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `any.convert_extern-addr`{addrref : addrref}: - `%~>%`([REF.EXTERN_instr(addrref) ANY.CONVERT_EXTERN_instr], [(addrref : addrref <: instr)]) + rule `any.convert_extern-addr`{addrref#5 : addrref, addrref : addrref}: + `%~>%`([`REF.EXTERN`_instr{addrref#5}(addrref) `ANY.CONVERT_EXTERN`_instr], [(addrref : addrref <: instr)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `unop-val`{nt : numtype, c_1 : num_(nt), unop : unop_(nt), c : num_(nt)}: - `%~>%`([CONST_instr(nt, c_1) UNOP_instr(nt, unop)], [CONST_instr(nt, c)]) + rule `unop-val`{numtype#563 : numtype, nt : numtype, c_1 : num_(nt), numtype#565 : numtype, unop : unop_(nt), numtype#567 : numtype, c : num_(nt)}: + `%~>%`([`CONST`_instr{numtype#563}(nt, c_1) `UNOP`_instr{numtype#565}(nt, unop)], [`CONST`_instr{numtype#567}(nt, c)]) -- if (c <- $unop_(nt, unop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `unop-trap`{nt : numtype, c_1 : num_(nt), unop : unop_(nt)}: - `%~>%`([CONST_instr(nt, c_1) UNOP_instr(nt, unop)], [TRAP_instr]) + rule `unop-trap`{numtype#569 : numtype, nt : numtype, c_1 : num_(nt), numtype#571 : numtype, unop : unop_(nt)}: + `%~>%`([`CONST`_instr{numtype#569}(nt, c_1) `UNOP`_instr{numtype#571}(nt, unop)], [`TRAP`_instr]) -- if ($unop_(nt, unop, c_1) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `binop-val`{nt : numtype, c_1 : num_(nt), c_2 : num_(nt), binop : binop_(nt), c : num_(nt)}: - `%~>%`([CONST_instr(nt, c_1) CONST_instr(nt, c_2) BINOP_instr(nt, binop)], [CONST_instr(nt, c)]) + rule `binop-val`{numtype#573 : numtype, nt : numtype, c_1 : num_(nt), numtype#575 : numtype, c_2 : num_(nt), numtype#577 : numtype, binop : binop_(nt), numtype#579 : numtype, c : num_(nt)}: + `%~>%`([`CONST`_instr{numtype#573}(nt, c_1) `CONST`_instr{numtype#575}(nt, c_2) `BINOP`_instr{numtype#577}(nt, binop)], [`CONST`_instr{numtype#579}(nt, c)]) -- if (c <- $binop_(nt, binop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `binop-trap`{nt : numtype, c_1 : num_(nt), c_2 : num_(nt), binop : binop_(nt)}: - `%~>%`([CONST_instr(nt, c_1) CONST_instr(nt, c_2) BINOP_instr(nt, binop)], [TRAP_instr]) + rule `binop-trap`{numtype#581 : numtype, nt : numtype, c_1 : num_(nt), numtype#583 : numtype, c_2 : num_(nt), numtype#585 : numtype, binop : binop_(nt)}: + `%~>%`([`CONST`_instr{numtype#581}(nt, c_1) `CONST`_instr{numtype#583}(nt, c_2) `BINOP`_instr{numtype#585}(nt, binop)], [`TRAP`_instr]) -- if ($binop_(nt, binop, c_1, c_2) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule testop{nt : numtype, c_1 : num_(nt), testop : testop_(nt), c : num_(I32_numtype)}: - `%~>%`([CONST_instr(nt, c_1) TESTOP_instr(nt, testop)], [CONST_instr(I32_numtype, c)]) + rule testop{numtype#587 : numtype, nt : numtype, c_1 : num_(nt), numtype#589 : numtype, testop : testop_(nt), numtype#591 : numtype, c : num_(`I32`_numtype)}: + `%~>%`([`CONST`_instr{numtype#587}(nt, c_1) `TESTOP`_instr{numtype#589}(nt, testop)], [`CONST`_instr{numtype#591}(`I32`_numtype, c)]) -- if (c = $testop_(nt, testop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule relop{nt : numtype, c_1 : num_(nt), c_2 : num_(nt), relop : relop_(nt), c : num_(I32_numtype)}: - `%~>%`([CONST_instr(nt, c_1) CONST_instr(nt, c_2) RELOP_instr(nt, relop)], [CONST_instr(I32_numtype, c)]) + rule relop{numtype#593 : numtype, nt : numtype, c_1 : num_(nt), numtype#595 : numtype, c_2 : num_(nt), numtype#597 : numtype, relop : relop_(nt), numtype#599 : numtype, c : num_(`I32`_numtype)}: + `%~>%`([`CONST`_instr{numtype#593}(nt, c_1) `CONST`_instr{numtype#595}(nt, c_2) `RELOP`_instr{numtype#597}(nt, relop)], [`CONST`_instr{numtype#599}(`I32`_numtype, c)]) -- if (c = $relop_(nt, relop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `cvtop-val`{nt_1 : numtype, c_1 : num_(nt_1), nt_2 : numtype, cvtop : cvtop__(nt_1, nt_2), c : num_(nt_2)}: - `%~>%`([CONST_instr(nt_1, c_1) CVTOP_instr(nt_2, nt_1, cvtop)], [CONST_instr(nt_2, c)]) + rule `cvtop-val`{numtype#601 : numtype, nt_1 : numtype, c_1 : num_(nt_1), numtype_1#5 : numtype, numtype_2#5 : numtype, nt_2 : numtype, cvtop : cvtop__(nt_1, nt_2), numtype#603 : numtype, c : num_(nt_2)}: + `%~>%`([`CONST`_instr{numtype#601}(nt_1, c_1) `CVTOP`_instr{numtype_1#5, numtype_2#5}(nt_2, nt_1, cvtop)], [`CONST`_instr{numtype#603}(nt_2, c)]) -- if (c <- $cvtop__(nt_1, nt_2, cvtop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `cvtop-trap`{nt_1 : numtype, c_1 : num_(nt_1), nt_2 : numtype, cvtop : cvtop__(nt_1, nt_2)}: - `%~>%`([CONST_instr(nt_1, c_1) CVTOP_instr(nt_2, nt_1, cvtop)], [TRAP_instr]) + rule `cvtop-trap`{numtype#605 : numtype, nt_1 : numtype, c_1 : num_(nt_1), numtype_1#7 : numtype, numtype_2#7 : numtype, nt_2 : numtype, cvtop : cvtop__(nt_1, nt_2)}: + `%~>%`([`CONST`_instr{numtype#605}(nt_1, c_1) `CVTOP`_instr{numtype_1#7, numtype_2#7}(nt_2, nt_1, cvtop)], [`TRAP`_instr]) -- if ($cvtop__(nt_1, nt_2, cvtop, c_1) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vvunop{c_1 : vec_(V128_Vnn), vvunop : vvunop, c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VVUNOP_instr(V128_vectype, vvunop)], [VCONST_instr(V128_vectype, c)]) - -- if (c <- $vvunop_(V128_vectype, vvunop, c_1)) + rule vvunop{vectype#104 : vectype, c_1 : vec_(`V128`_Vnn), vectype#106 : vectype, vvunop#5 : vvunop, vvunop : vvunop, vectype#108 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#104}(`V128`_vectype, c_1) `VVUNOP`_instr{vectype#106, vvunop#5}(`V128`_vectype, vvunop)], [`VCONST`_instr{vectype#108}(`V128`_vectype, c)]) + -- if (c <- $vvunop_(`V128`_vectype, vvunop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vvbinop{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), vvbinop : vvbinop, c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VVBINOP_instr(V128_vectype, vvbinop)], [VCONST_instr(V128_vectype, c)]) - -- if (c <- $vvbinop_(V128_vectype, vvbinop, c_1, c_2)) + rule vvbinop{vectype#110 : vectype, c_1 : vec_(`V128`_Vnn), vectype#112 : vectype, c_2 : vec_(`V128`_Vnn), vectype#114 : vectype, vvbinop#5 : vvbinop, vvbinop : vvbinop, vectype#116 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#110}(`V128`_vectype, c_1) `VCONST`_instr{vectype#112}(`V128`_vectype, c_2) `VVBINOP`_instr{vectype#114, vvbinop#5}(`V128`_vectype, vvbinop)], [`VCONST`_instr{vectype#116}(`V128`_vectype, c)]) + -- if (c <- $vvbinop_(`V128`_vectype, vvbinop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vvternop{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), c_3 : vec_(V128_Vnn), vvternop : vvternop, c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VCONST_instr(V128_vectype, c_3) VVTERNOP_instr(V128_vectype, vvternop)], [VCONST_instr(V128_vectype, c)]) - -- if (c <- $vvternop_(V128_vectype, vvternop, c_1, c_2, c_3)) + rule vvternop{vectype#118 : vectype, c_1 : vec_(`V128`_Vnn), vectype#120 : vectype, c_2 : vec_(`V128`_Vnn), vectype#122 : vectype, c_3 : vec_(`V128`_Vnn), vectype#124 : vectype, vvternop#5 : vvternop, vvternop : vvternop, vectype#126 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#118}(`V128`_vectype, c_1) `VCONST`_instr{vectype#120}(`V128`_vectype, c_2) `VCONST`_instr{vectype#122}(`V128`_vectype, c_3) `VVTERNOP`_instr{vectype#124, vvternop#5}(`V128`_vectype, vvternop)], [`VCONST`_instr{vectype#126}(`V128`_vectype, c)]) + -- if (c <- $vvternop_(`V128`_vectype, vvternop, c_1, c_2, c_3)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vvtestop{c_1 : vec_(V128_Vnn), c : num_(I32_numtype)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VVTESTOP_instr(V128_vectype, ANY_TRUE_vvtestop)], [CONST_instr(I32_numtype, c)]) - -- if (c = $inez_($vsize(V128_vectype), c_1)) + rule vvtestop{vectype#128 : vectype, c_1 : vec_(`V128`_Vnn), vectype#130 : vectype, vvtestop#5 : vvtestop, numtype#607 : numtype, c : num_(`I32`_numtype)}: + `%~>%`([`VCONST`_instr{vectype#128}(`V128`_vectype, c_1) `VVTESTOP`_instr{vectype#130, vvtestop#5}(`V128`_vectype, `ANY_TRUE`_vvtestop)], [`CONST`_instr{numtype#607}(`I32`_numtype, c)]) + -- if (c = $inez_($vsize(`V128`_vectype), c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vunop-val`{c_1 : vec_(V128_Vnn), sh : shape, vunop : vunop_(sh), c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VUNOP_instr(sh, vunop)], [VCONST_instr(V128_vectype, c)]) + rule `vunop-val`{vectype#132 : vectype, c_1 : vec_(`V128`_Vnn), shape#681 : shape, sh : shape, vunop : vunop_(sh), vectype#134 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#132}(`V128`_vectype, c_1) `VUNOP`_instr{shape#681}(sh, vunop)], [`VCONST`_instr{vectype#134}(`V128`_vectype, c)]) -- if (c <- $vunop_(sh, vunop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vunop-trap`{c_1 : vec_(V128_Vnn), sh : shape, vunop : vunop_(sh)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VUNOP_instr(sh, vunop)], [TRAP_instr]) + rule `vunop-trap`{vectype#136 : vectype, c_1 : vec_(`V128`_Vnn), shape#683 : shape, sh : shape, vunop : vunop_(sh)}: + `%~>%`([`VCONST`_instr{vectype#136}(`V128`_vectype, c_1) `VUNOP`_instr{shape#683}(sh, vunop)], [`TRAP`_instr]) -- if ($vunop_(sh, vunop, c_1) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vbinop-val`{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh : shape, vbinop : vbinop_(sh), c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VBINOP_instr(sh, vbinop)], [VCONST_instr(V128_vectype, c)]) + rule `vbinop-val`{vectype#138 : vectype, c_1 : vec_(`V128`_Vnn), vectype#140 : vectype, c_2 : vec_(`V128`_Vnn), shape#685 : shape, sh : shape, vbinop : vbinop_(sh), vectype#142 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#138}(`V128`_vectype, c_1) `VCONST`_instr{vectype#140}(`V128`_vectype, c_2) `VBINOP`_instr{shape#685}(sh, vbinop)], [`VCONST`_instr{vectype#142}(`V128`_vectype, c)]) -- if (c <- $vbinop_(sh, vbinop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vbinop-trap`{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh : shape, vbinop : vbinop_(sh)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VBINOP_instr(sh, vbinop)], [TRAP_instr]) + rule `vbinop-trap`{vectype#144 : vectype, c_1 : vec_(`V128`_Vnn), vectype#146 : vectype, c_2 : vec_(`V128`_Vnn), shape#687 : shape, sh : shape, vbinop : vbinop_(sh)}: + `%~>%`([`VCONST`_instr{vectype#144}(`V128`_vectype, c_1) `VCONST`_instr{vectype#146}(`V128`_vectype, c_2) `VBINOP`_instr{shape#687}(sh, vbinop)], [`TRAP`_instr]) -- if ($vbinop_(sh, vbinop, c_1, c_2) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vternop-val`{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), c_3 : vec_(V128_Vnn), sh : shape, vternop : vternop_(sh), c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VCONST_instr(V128_vectype, c_3) VTERNOP_instr(sh, vternop)], [VCONST_instr(V128_vectype, c)]) + rule `vternop-val`{vectype#148 : vectype, c_1 : vec_(`V128`_Vnn), vectype#150 : vectype, c_2 : vec_(`V128`_Vnn), vectype#152 : vectype, c_3 : vec_(`V128`_Vnn), shape#689 : shape, sh : shape, vternop : vternop_(sh), vectype#154 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#148}(`V128`_vectype, c_1) `VCONST`_instr{vectype#150}(`V128`_vectype, c_2) `VCONST`_instr{vectype#152}(`V128`_vectype, c_3) `VTERNOP`_instr{shape#689}(sh, vternop)], [`VCONST`_instr{vectype#154}(`V128`_vectype, c)]) -- if (c <- $vternop_(sh, vternop, c_1, c_2, c_3)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vternop-trap`{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), c_3 : vec_(V128_Vnn), sh : shape, vternop : vternop_(sh)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VCONST_instr(V128_vectype, c_3) VTERNOP_instr(sh, vternop)], [TRAP_instr]) + rule `vternop-trap`{vectype#156 : vectype, c_1 : vec_(`V128`_Vnn), vectype#158 : vectype, c_2 : vec_(`V128`_Vnn), vectype#160 : vectype, c_3 : vec_(`V128`_Vnn), shape#691 : shape, sh : shape, vternop : vternop_(sh)}: + `%~>%`([`VCONST`_instr{vectype#156}(`V128`_vectype, c_1) `VCONST`_instr{vectype#158}(`V128`_vectype, c_2) `VCONST`_instr{vectype#160}(`V128`_vectype, c_3) `VTERNOP`_instr{shape#691}(sh, vternop)], [`TRAP`_instr]) -- if ($vternop_(sh, vternop, c_1, c_2, c_3) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vtestop{c_1 : vec_(V128_Vnn), Jnn : Jnn, M : M, c : num_(I32_numtype), `i*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VTESTOP_instr(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), ALL_TRUE_vtestop_)], [CONST_instr(I32_numtype, c)]) - -- if (i*{i <- `i*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)) - -- if (c!`%`_num_.0 = $prod($inez_($jsizenn(Jnn), i)!`%`_u32.0*{i <- `i*`})) + rule vtestop{vectype#162 : vectype, c_1 : vec_(`V128`_Vnn), shape#693 : shape, lanetype#7525 : lanetype, dim#7525 : dim, i#45296 : nat, Jnn : Jnn, i#45303 : nat, M : M, numtype#609 : numtype, c : num_(`I32`_numtype), lanetype#7537 : lanetype, dim#7537 : dim, i#45322 : nat, i#45329 : nat, i#45438 : nat, `i#45428*` : nat*, `i*` : lane_($lanetype(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))))*}: + `%~>%`([`VCONST`_instr{vectype#162}(`V128`_vectype, c_1) `VTESTOP`_instr{shape#693}(`%X%`_shape{lanetype#7525, dim#7525, i#45296}((Jnn : Jnn <: lanetype), `%`_dim{i#45303}(M)), `ALL_TRUE`_vtestop_)], [`CONST`_instr{numtype#609}(`I32`_numtype, c)]) + -- if (i*{i <- `i*`} = $lanes_(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M)), c_1)) + -- if (c!`%`_num_{i#45438}.0 = $prod($inez_($jsizenn(Jnn), i)!`%`_u32{i#45428}.0*{i <- `i*`, i#45428 <- `i#45428*`})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vrelop{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh : shape, vrelop : vrelop_(sh), c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VRELOP_instr(sh, vrelop)], [VCONST_instr(V128_vectype, c)]) + rule vrelop{vectype#164 : vectype, c_1 : vec_(`V128`_Vnn), vectype#166 : vectype, c_2 : vec_(`V128`_Vnn), shape#695 : shape, sh : shape, vrelop : vrelop_(sh), vectype#168 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#164}(`V128`_vectype, c_1) `VCONST`_instr{vectype#166}(`V128`_vectype, c_2) `VRELOP`_instr{shape#695}(sh, vrelop)], [`VCONST`_instr{vectype#168}(`V128`_vectype, c)]) -- if (c = $vrelop_(sh, vrelop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vshiftop{c_1 : vec_(V128_Vnn), i : num_(I32_numtype), sh : ishape, vshiftop : vshiftop_(sh), c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) CONST_instr(I32_numtype, i) VSHIFTOP_instr(sh, vshiftop)], [VCONST_instr(V128_vectype, c)]) + rule vshiftop{vectype#170 : vectype, c_1 : vec_(`V128`_Vnn), numtype#611 : numtype, i : num_(`I32`_numtype), ishape#9 : ishape, sh : ishape, vshiftop : vshiftop_(sh), vectype#172 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#170}(`V128`_vectype, c_1) `CONST`_instr{numtype#611}(`I32`_numtype, i) `VSHIFTOP`_instr{ishape#9}(sh, vshiftop)], [`VCONST`_instr{vectype#172}(`V128`_vectype, c)]) -- if (c = $vshiftop_(sh, vshiftop, c_1, i)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vbitmask{c_1 : vec_(V128_Vnn), sh : ishape, c : num_(I32_numtype)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VBITMASK_instr(sh)], [CONST_instr(I32_numtype, c)]) + rule vbitmask{vectype#174 : vectype, c_1 : vec_(`V128`_Vnn), ishape#11 : ishape, sh : ishape, numtype#613 : numtype, c : num_(`I32`_numtype)}: + `%~>%`([`VCONST`_instr{vectype#174}(`V128`_vectype, c_1) `VBITMASK`_instr{ishape#11}(sh)], [`CONST`_instr{numtype#613}(`I32`_numtype, c)]) -- if (c = $vbitmaskop_(sh, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vswizzlop{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh : bshape, swizzlop : vswizzlop_(sh), c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VSWIZZLOP_instr(sh, swizzlop)], [VCONST_instr(V128_vectype, c)]) + rule vswizzlop{vectype#176 : vectype, c_1 : vec_(`V128`_Vnn), vectype#178 : vectype, c_2 : vec_(`V128`_Vnn), bshape#9 : bshape, sh : bshape, swizzlop : vswizzlop_(sh), vectype#180 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#176}(`V128`_vectype, c_1) `VCONST`_instr{vectype#178}(`V128`_vectype, c_2) `VSWIZZLOP`_instr{bshape#9}(sh, swizzlop)], [`VCONST`_instr{vectype#180}(`V128`_vectype, c)]) -- if (c = $vswizzlop_(sh, swizzlop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vshuffle{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh : bshape, `i*` : laneidx*, c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VSHUFFLE_instr(sh, i*{i <- `i*`})], [VCONST_instr(V128_vectype, c)]) + rule vshuffle{vectype#182 : vectype, c_1 : vec_(`V128`_Vnn), vectype#184 : vectype, c_2 : vec_(`V128`_Vnn), bshape#11 : bshape, `laneidx*#5` : laneidx*, i#45740 : nat, shape#733 : shape, sh : bshape, `i*` : laneidx*, vectype#186 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#182}(`V128`_vectype, c_1) `VCONST`_instr{vectype#184}(`V128`_vectype, c_2) `VSHUFFLE`_instr{bshape#11, `laneidx*#5`, i#45740, shape#733}(sh, i*{i <- `i*`})], [`VCONST`_instr{vectype#186}(`V128`_vectype, c)]) -- if (c = $vshufflop_(sh, i*{i <- `i*`}, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vsplat{Lnn : Lnn, c_1 : num_($lunpack(Lnn)), M : M, c : vec_(V128_Vnn)}: - `%~>%`([CONST_instr($lunpack(Lnn), c_1) VSPLAT_instr(`%X%`_shape(Lnn, `%`_dim(M)))], [VCONST_instr(V128_vectype, c)]) - -- if (c = $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lpacknum_(Lnn, c_1)^M{})) + rule vsplat{numtype#615 : numtype, Lnn : Lnn, c_1 : num_($lunpack(Lnn)), shape#746 : shape, lanetype#7575 : lanetype, dim#7575 : dim, i#45836 : nat, i#45843 : nat, M : M, vectype#188 : vectype, c : vec_(`V128`_Vnn), lanetype#7587 : lanetype, dim#7587 : dim, i#45862 : nat, i#45869 : nat}: + `%~>%`([`CONST`_instr{numtype#615}($lunpack(Lnn), c_1) `VSPLAT`_instr{shape#746}(`%X%`_shape{lanetype#7575, dim#7575, i#45836}(Lnn, `%`_dim{i#45843}(M)))], [`VCONST`_instr{vectype#188}(`V128`_vectype, c)]) + -- if (c = $inv_lanes_(`%X%`_shape{lanetype#7587, dim#7587, i#45862}(Lnn, `%`_dim{i#45869}(M)), $lpacknum_(Lnn, c_1)^M{})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vextract_lane-num`{c_1 : vec_(V128_Vnn), nt : numtype, M : M, i : laneidx, c_2 : num_(nt)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VEXTRACT_LANE_instr(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), ?(), i)], [CONST_instr(nt, c_2)]) - -- if (c_2 = $lanes_(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0]) + rule `vextract_lane-num`{vectype#190 : vectype, c_1 : vec_(`V128`_Vnn), shape#748 : shape, `sx?#27` : sx?, laneidx#25 : laneidx, lanetype#7610 : lanetype, dim#7610 : dim, i#45931 : nat, nt : numtype, i#45938 : nat, M : M, i : laneidx, numtype#617 : numtype, c_2 : num_(nt), lanetype#7622 : lanetype, dim#7622 : dim, i#45957 : nat, i#45964 : nat, i#45984 : nat}: + `%~>%`([`VCONST`_instr{vectype#190}(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr{shape#748, `sx?#27`, laneidx#25}(`%X%`_shape{lanetype#7610, dim#7610, i#45931}((nt : numtype <: lanetype), `%`_dim{i#45938}(M)), ?(), i)], [`CONST`_instr{numtype#617}(nt, c_2)]) + -- if (c_2 = $lanes_(`%X%`_shape{lanetype#7622, dim#7622, i#45957}((nt : numtype <: lanetype), `%`_dim{i#45964}(M)), c_1)[i!`%`_laneidx{i#45984}.0]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vextract_lane-pack`{c_1 : vec_(V128_Vnn), pt : packtype, M : M, sx : sx, i : laneidx, c_2 : num_(I32_numtype)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VEXTRACT_LANE_instr(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), ?(sx), i)], [CONST_instr(I32_numtype, c_2)]) - -- if (c_2 = $extend__($psize(pt), 32, sx, $lanes_(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0])) + rule `vextract_lane-pack`{vectype#192 : vectype, c_1 : vec_(`V128`_Vnn), shape#750 : shape, `sx?#29` : sx?, laneidx#27 : laneidx, lanetype#7639 : lanetype, dim#7639 : dim, i#46018 : nat, pt : packtype, i#46025 : nat, M : M, sx : sx, i : laneidx, numtype#619 : numtype, c_2 : num_(`I32`_numtype), lanetype#7651 : lanetype, dim#7651 : dim, i#46122 : nat, i#46129 : nat, i#46149 : nat}: + `%~>%`([`VCONST`_instr{vectype#192}(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr{shape#750, `sx?#29`, laneidx#27}(`%X%`_shape{lanetype#7639, dim#7639, i#46018}((pt : packtype <: lanetype), `%`_dim{i#46025}(M)), ?(sx), i)], [`CONST`_instr{numtype#619}(`I32`_numtype, c_2)]) + -- if (c_2 = $extend__($psize(pt), 32, sx, $lanes_(`%X%`_shape{lanetype#7651, dim#7651, i#46122}((pt : packtype <: lanetype), `%`_dim{i#46129}(M)), c_1)[i!`%`_laneidx{i#46149}.0])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vreplace_lane{c_1 : vec_(V128_Vnn), Lnn : Lnn, c_2 : num_($lunpack(Lnn)), M : M, i : laneidx, c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) CONST_instr($lunpack(Lnn), c_2) VREPLACE_LANE_instr(`%X%`_shape(Lnn, `%`_dim(M)), i)], [VCONST_instr(V128_vectype, c)]) - -- if (c = $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lanes_(`%X%`_shape(Lnn, `%`_dim(M)), c_1)[[i!`%`_laneidx.0] = $lpacknum_(Lnn, c_2)])) + rule vreplace_lane{vectype#194 : vectype, c_1 : vec_(`V128`_Vnn), numtype#621 : numtype, Lnn : Lnn, c_2 : num_($lunpack(Lnn)), shape#752 : shape, laneidx#29 : laneidx, lanetype#7664 : lanetype, dim#7664 : dim, i#46185 : nat, i#46192 : nat, M : M, i : laneidx, vectype#196 : vectype, c : vec_(`V128`_Vnn), lanetype#7676 : lanetype, dim#7676 : dim, i#46225 : nat, i#46232 : nat, lanetype#7730 : lanetype, dim#7730 : dim, i#46335 : nat, i#46342 : nat, i#46368 : nat}: + `%~>%`([`VCONST`_instr{vectype#194}(`V128`_vectype, c_1) `CONST`_instr{numtype#621}($lunpack(Lnn), c_2) `VREPLACE_LANE`_instr{shape#752, laneidx#29}(`%X%`_shape{lanetype#7664, dim#7664, i#46185}(Lnn, `%`_dim{i#46192}(M)), i)], [`VCONST`_instr{vectype#196}(`V128`_vectype, c)]) + -- if (c = $inv_lanes_(`%X%`_shape{lanetype#7676, dim#7676, i#46225}(Lnn, `%`_dim{i#46232}(M)), $lanes_(`%X%`_shape{lanetype#7730, dim#7730, i#46335}(Lnn, `%`_dim{i#46342}(M)), c_1)[[i!`%`_laneidx{i#46368}.0] = $lpacknum_(Lnn, c_2)])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vextunop{c_1 : vec_(V128_Vnn), sh_2 : ishape, sh_1 : ishape, vextunop : vextunop__(sh_1, sh_2), c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VEXTUNOP_instr(sh_2, sh_1, vextunop)], [VCONST_instr(V128_vectype, c)]) + rule vextunop{vectype#198 : vectype, c_1 : vec_(`V128`_Vnn), ishape_1#17 : ishape, ishape_2#17 : ishape, sh_2 : ishape, sh_1 : ishape, vextunop : vextunop__(sh_1, sh_2), vectype#200 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#198}(`V128`_vectype, c_1) `VEXTUNOP`_instr{ishape_1#17, ishape_2#17}(sh_2, sh_1, vextunop)], [`VCONST`_instr{vectype#200}(`V128`_vectype, c)]) -- if ($vextunop__(sh_1, sh_2, vextunop, c_1) = c) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vextbinop{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh_2 : ishape, sh_1 : ishape, vextbinop : vextbinop__(sh_1, sh_2), c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VEXTBINOP_instr(sh_2, sh_1, vextbinop)], [VCONST_instr(V128_vectype, c)]) + rule vextbinop{vectype#202 : vectype, c_1 : vec_(`V128`_Vnn), vectype#204 : vectype, c_2 : vec_(`V128`_Vnn), ishape_1#19 : ishape, ishape_2#19 : ishape, sh_2 : ishape, sh_1 : ishape, vextbinop : vextbinop__(sh_1, sh_2), vectype#206 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#202}(`V128`_vectype, c_1) `VCONST`_instr{vectype#204}(`V128`_vectype, c_2) `VEXTBINOP`_instr{ishape_1#19, ishape_2#19}(sh_2, sh_1, vextbinop)], [`VCONST`_instr{vectype#206}(`V128`_vectype, c)]) -- if ($vextbinop__(sh_1, sh_2, vextbinop, c_1, c_2) = c) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vextternop{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), c_3 : vec_(V128_Vnn), sh_2 : ishape, sh_1 : ishape, vextternop : vextternop__(sh_1, sh_2), c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VCONST_instr(V128_vectype, c_3) VEXTTERNOP_instr(sh_2, sh_1, vextternop)], [VCONST_instr(V128_vectype, c)]) + rule vextternop{vectype#208 : vectype, c_1 : vec_(`V128`_Vnn), vectype#210 : vectype, c_2 : vec_(`V128`_Vnn), vectype#212 : vectype, c_3 : vec_(`V128`_Vnn), ishape_1#21 : ishape, ishape_2#21 : ishape, sh_2 : ishape, sh_1 : ishape, vextternop : vextternop__(sh_1, sh_2), vectype#214 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#208}(`V128`_vectype, c_1) `VCONST`_instr{vectype#210}(`V128`_vectype, c_2) `VCONST`_instr{vectype#212}(`V128`_vectype, c_3) `VEXTTERNOP`_instr{ishape_1#21, ishape_2#21}(sh_2, sh_1, vextternop)], [`VCONST`_instr{vectype#214}(`V128`_vectype, c)]) -- if ($vextternop__(sh_1, sh_2, vextternop, c_1, c_2, c_3) = c) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vnarrow{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh_2 : ishape, sh_1 : ishape, sx : sx, c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VNARROW_instr(sh_2, sh_1, sx)], [VCONST_instr(V128_vectype, c)]) - -- if (c = $vnarrowop__(sh_1!`%`_ishape.0, sh_2!`%`_ishape.0, sx, c_1, c_2)) + rule vnarrow{vectype#216 : vectype, c_1 : vec_(`V128`_Vnn), vectype#218 : vectype, c_2 : vec_(`V128`_Vnn), ishape_1#23 : ishape, ishape_2#23 : ishape, sx#408 : sx, shape#826 : shape, Jnn#216 : Jnn, shape#827 : shape, Jnn#217 : Jnn, shape#828 : shape, Jnn#218 : Jnn, sh_2 : ishape, sh_1 : ishape, sx : sx, vectype#220 : vectype, c : vec_(`V128`_Vnn), shape#841 : shape, Jnn#223 : Jnn, shape#843 : shape, Jnn#224 : Jnn}: + `%~>%`([`VCONST`_instr{vectype#216}(`V128`_vectype, c_1) `VCONST`_instr{vectype#218}(`V128`_vectype, c_2) `VNARROW`_instr{ishape_1#23, ishape_2#23, sx#408, shape#826, Jnn#216, shape#827, Jnn#217, shape#828, Jnn#218}(sh_2, sh_1, sx)], [`VCONST`_instr{vectype#220}(`V128`_vectype, c)]) + -- if (c = $vnarrowop__(sh_1!`%`_ishape{shape#841, Jnn#223}.0, sh_2!`%`_ishape{shape#843, Jnn#224}.0, sx, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vcvtop{c_1 : vec_(V128_Vnn), sh_2 : shape, sh_1 : shape, vcvtop : vcvtop__(sh_1, sh_2), c : vec_(V128_Vnn)}: - `%~>%`([VCONST_instr(V128_vectype, c_1) VCVTOP_instr(sh_2, sh_1, vcvtop)], [VCONST_instr(V128_vectype, c)]) + rule vcvtop{vectype#222 : vectype, c_1 : vec_(`V128`_Vnn), shape_1#5 : shape, shape_2#5 : shape, sh_2 : shape, sh_1 : shape, vcvtop : vcvtop__(sh_1, sh_2), vectype#224 : vectype, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr{vectype#222}(`V128`_vectype, c_1) `VCVTOP`_instr{shape_1#5, shape_2#5}(sh_2, sh_1, vcvtop)], [`VCONST`_instr{vectype#224}(`V128`_vectype, c)]) -- if (c = $vcvtop__(sh_1, sh_2, vcvtop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec def $blocktype_(state : state, blocktype : blocktype) : instrtype ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - def $blocktype_{z : state, x : idx, `t_1*` : valtype*, `t_2*` : valtype*}(z, _IDX_blocktype(x)) = `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})) - -- Expand: `%~~%`($type(z, x), `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + def $blocktype_{z : state, typeidx#1551 : typeidx, x : idx, resulttype#2934 : resulttype, `localidx*#1757` : localidx*, `X*#12241` : valtype*, `t_1*` : valtype*, `X*#12292` : valtype*, `t_2*` : valtype*, resulttype#2914 : resulttype, `X*#12215` : valtype*, `X*#12228` : valtype*}(z, `_IDX`_blocktype{typeidx#1551}(x)) = `%->_%%`_instrtype{resulttype#2934, `localidx*#1757`}(`%`_resulttype{`X*#12241`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12292`}(t_2*{t_2 <- `t_2*`})) + -- Expand: `%~~%`($type(z, x), `FUNC%->%`_comptype{resulttype#2914}(`%`_resulttype{`X*#12215`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#12228`}(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - def $blocktype_{z : state, `t?` : valtype?}(z, _RESULT_blocktype(t?{t <- `t?`})) = `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(t?{t <- `t?`}))) + def $blocktype_{z : state, `valtype?#5` : valtype?, `t?` : valtype?, resulttype#2954 : resulttype, `localidx*#1769` : localidx*, `X*#12313` : valtype*, `X*#12362` : valtype*}(z, `_RESULT`_blocktype{`valtype?#5`}(t?{t <- `t?`})) = `%->_%%`_instrtype{resulttype#2954, `localidx*#1769`}(`%`_resulttype{`X*#12313`}([]), [], `%`_resulttype{`X*#12362`}(lift(t?{t <- `t?`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec relation Step_read: `%~>%`(config, instr*) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule block{z : state, `val*` : val*, m : m, bt : blocktype, `instr*` : instr*, n : n, `t_1*` : valtype*, `t_2*` : valtype*}: - `%~>%`(`%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [BLOCK_instr(bt, instr*{instr <- `instr*`})]), [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]) - -- if ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))) + rule block{state#311 : state, `instr*#337` : instr*, z : state, m : m, `val*` : val*, blocktype#15 : blocktype, `instr*#339` : instr*, bt : blocktype, `instr*` : instr*, n#1141 : n, `instr*#341` : instr*, n : n, resulttype#2974 : resulttype, `localidx*#1781` : localidx*, `X*#12373` : valtype*, `t_1*` : valtype*, `X*#12424` : valtype*, `t_2*` : valtype*}: + `%~>%`(`%;%`_config{state#311, `instr*#337`}(z, (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr{blocktype#15, `instr*#339`}(bt, instr*{instr <- `instr*`})]), [`LABEL_%{%}%`_instr{n#1141, `instr*#341`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]) + -- if ($blocktype_(z, bt) = `%->_%%`_instrtype{resulttype#2974, `localidx*#1781`}(`%`_resulttype{`X*#12373`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12424`}(t_2^n{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule loop{z : state, `val*` : val*, m : m, bt : blocktype, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, n : n}: - `%~>%`(`%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [LOOP_instr(bt, instr*{instr <- `instr*`})]), [`LABEL_%{%}%`_instr(m, [LOOP_instr(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]) - -- if ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))) + rule loop{state#323 : state, `instr*#354` : instr*, z : state, m : m, `val*` : val*, blocktype#17 : blocktype, `instr*#356` : instr*, bt : blocktype, `instr*` : instr*, n#1143 : n, `instr*#358` : instr*, blocktype#19 : blocktype, `instr*#361` : instr*, resulttype#2994 : resulttype, `localidx*#1793` : localidx*, `X*#12435` : valtype*, `t_1*` : valtype*, `X*#12486` : valtype*, n : n, `t_2*` : valtype*}: + `%~>%`(`%;%`_config{state#323, `instr*#354`}(z, (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr{blocktype#17, `instr*#356`}(bt, instr*{instr <- `instr*`})]), [`LABEL_%{%}%`_instr{n#1143, `instr*#358`}(m, [`LOOP`_instr{blocktype#19, `instr*#361`}(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]) + -- if ($blocktype_(z, bt) = `%->_%%`_instrtype{resulttype#2994, `localidx*#1793`}(`%`_resulttype{`X*#12435`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12486`}(t_2^n{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_cast-succeed`{s : store, f : frame, ref : ref, l : labelidx, rt_1 : reftype, rt_2 : reftype, rt : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) BR_ON_CAST_instr(l, rt_1, rt_2)]), [(ref : ref <: instr) BR_instr(l)]) + rule `br_on_cast-succeed`{state#335 : state, `instr*#394` : instr*, store#815 : store, frame#819 : frame, s : store, f : frame, ref : ref, labelidx#73 : labelidx, reftype#3439 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype, labelidx#75 : labelidx, rt : reftype, `deftype*#86` : deftype*, `subtype*#21` : subtype*, `tagtype*#22` : tagtype*, `globaltype*#23` : globaltype*, `memtype*#37` : memtype*, `tabletype*#30` : tabletype*, `deftype*#87` : deftype*, `datatype*#22` : datatype*, `elemtype*#22` : elemtype*, `localtype*#25` : localtype*, `resulttype*#33` : resulttype*, `resulttype?#30` : resulttype?, `funcidx*#59` : funcidx*, moduleinst#19 : moduleinst}: + `%~>%`(`%;%`_config{state#335, `instr*#394`}(`%;%`_state{store#815, frame#819}(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#73, reftype#3439}(l, rt_1, rt_2)]), [(ref : ref <: instr) `BR`_instr{labelidx#75}(l)]) -- Ref_ok: `%|-%:%`(s, ref, rt) - -- Reftype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, rt, $inst_reftype(f.MODULE_frame, rt_2)) + -- Reftype_sub: `%|-%<:%`({`TYPES`{`deftype*#86`} [], `RECS`{`subtype*#21`} [], `TAGS`{`tagtype*#22`} [], `GLOBALS`{`globaltype*#23`} [], `MEMS`{`memtype*#37`} [], `TABLES`{`tabletype*#30`} [], `FUNCS`{`deftype*#87`} [], `DATAS`{`datatype*#22`} [], `ELEMS`{`elemtype*#22`} [], `LOCALS`{`localtype*#25`} [], `LABELS`{`resulttype*#33`} [], `RETURN`{`resulttype?#30`} ?(), `REFS`{`funcidx*#59`} []}, rt, $inst_reftype(f.`MODULE`_frame{moduleinst#19}, rt_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_cast-fail`{s : store, f : frame, ref : ref, l : labelidx, rt_1 : reftype, rt_2 : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) BR_ON_CAST_instr(l, rt_1, rt_2)]), [(ref : ref <: instr)]) + rule `br_on_cast-fail`{state#347 : state, `instr*#406` : instr*, store#827 : store, frame#831 : frame, s : store, f : frame, ref : ref, labelidx#77 : labelidx, reftype#3442 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype}: + `%~>%`(`%;%`_config{state#347, `instr*#406`}(`%;%`_state{store#827, frame#831}(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#77, reftype#3442}(l, rt_1, rt_2)]), [(ref : ref <: instr)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_cast_fail-succeed`{s : store, f : frame, ref : ref, l : labelidx, rt_1 : reftype, rt_2 : reftype, rt : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) BR_ON_CAST_FAIL_instr(l, rt_1, rt_2)]), [(ref : ref <: instr)]) + rule `br_on_cast_fail-succeed`{state#359 : state, `instr*#418` : instr*, store#839 : store, frame#843 : frame, s : store, f : frame, ref : ref, labelidx#79 : labelidx, reftype#3445 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype, rt : reftype, `deftype*#88` : deftype*, `subtype*#22` : subtype*, `tagtype*#23` : tagtype*, `globaltype*#24` : globaltype*, `memtype*#38` : memtype*, `tabletype*#31` : tabletype*, `deftype*#89` : deftype*, `datatype*#23` : datatype*, `elemtype*#23` : elemtype*, `localtype*#26` : localtype*, `resulttype*#34` : resulttype*, `resulttype?#31` : resulttype?, `funcidx*#60` : funcidx*, moduleinst#20 : moduleinst}: + `%~>%`(`%;%`_config{state#359, `instr*#418`}(`%;%`_state{store#839, frame#843}(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#79, reftype#3445}(l, rt_1, rt_2)]), [(ref : ref <: instr)]) -- Ref_ok: `%|-%:%`(s, ref, rt) - -- Reftype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, rt, $inst_reftype(f.MODULE_frame, rt_2)) + -- Reftype_sub: `%|-%<:%`({`TYPES`{`deftype*#88`} [], `RECS`{`subtype*#22`} [], `TAGS`{`tagtype*#23`} [], `GLOBALS`{`globaltype*#24`} [], `MEMS`{`memtype*#38`} [], `TABLES`{`tabletype*#31`} [], `FUNCS`{`deftype*#89`} [], `DATAS`{`datatype*#23`} [], `ELEMS`{`elemtype*#23`} [], `LOCALS`{`localtype*#26`} [], `LABELS`{`resulttype*#34`} [], `RETURN`{`resulttype?#31`} ?(), `REFS`{`funcidx*#60`} []}, rt, $inst_reftype(f.`MODULE`_frame{moduleinst#20}, rt_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_cast_fail-fail`{s : store, f : frame, ref : ref, l : labelidx, rt_1 : reftype, rt_2 : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) BR_ON_CAST_FAIL_instr(l, rt_1, rt_2)]), [(ref : ref <: instr) BR_instr(l)]) + rule `br_on_cast_fail-fail`{state#371 : state, `instr*#430` : instr*, store#851 : store, frame#855 : frame, s : store, f : frame, ref : ref, labelidx#81 : labelidx, reftype#3448 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype, labelidx#83 : labelidx}: + `%~>%`(`%;%`_config{state#371, `instr*#430`}(`%;%`_state{store#851, frame#855}(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#81, reftype#3448}(l, rt_1, rt_2)]), [(ref : ref <: instr) `BR`_instr{labelidx#83}(l)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule call{z : state, x : idx, a : addr}: - `%~>%`(`%;%`_config(z, [CALL_instr(x)]), [REF.FUNC_ADDR_instr(a) CALL_REF_instr(($funcinst(z)[a].TYPE_funcinst : deftype <: typeuse))]) - -- if ($moduleinst(z).FUNCS_moduleinst[x!`%`_idx.0] = a) + rule call{state#383 : state, `instr*#442` : instr*, z : state, funcidx#2837 : funcidx, x : idx, funcaddr#7 : funcaddr, a : addr, typeuse#35 : typeuse, deftype#5 : deftype, `funcaddr*#2` : funcaddr*, i#32425 : nat}: + `%~>%`(`%;%`_config{state#383, `instr*#442`}(z, [`CALL`_instr{funcidx#2837}(x)]), [`REF.FUNC_ADDR`_instr{funcaddr#7}(a) `CALL_REF`_instr{typeuse#35}(($funcinst(z)[a].`TYPE`_funcinst{deftype#5} : deftype <: typeuse))]) + -- if ($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#2`}[x!`%`_idx{i#32425}.0] = a) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `call_ref-null`{z : state, ht : heaptype, yy : typeuse}: - `%~>%`(`%;%`_config(z, [REF.NULL_instr(ht) CALL_REF_instr(yy)]), [TRAP_instr]) + rule `call_ref-null`{state#395 : state, `instr*#454` : instr*, z : state, heaptype#1307 : heaptype, ht : heaptype, typeuse#37 : typeuse, yy : typeuse}: + `%~>%`(`%;%`_config{state#395, `instr*#454`}(z, [`REF.NULL`_instr{heaptype#1307}(ht) `CALL_REF`_instr{typeuse#37}(yy)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `call_ref-func`{z : state, `val*` : val*, n : n, a : addr, yy : typeuse, m : m, f : frame, `instr*` : instr*, fi : funcinst, `t_1*` : valtype*, `t_2*` : valtype*, x : idx, `t*` : valtype*}: - `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [REF.FUNC_ADDR_instr(a) CALL_REF_instr(yy)]), [`FRAME_%{%}%`_instr(m, f, [`LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})])]) + rule `call_ref-func`{state#407 : state, `instr*#466` : instr*, z : state, n : n, `val*` : val*, funcaddr#9 : funcaddr, a : addr, typeuse#39 : typeuse, yy : typeuse, n#1153 : n, frame#887 : frame, `instr*#468` : instr*, m : m, f : frame, n#1155 : n, `instr*#470` : instr*, `instr*` : instr*, fi : funcinst, deftype#6 : deftype, resulttype#2997 : resulttype, `X*#12499` : valtype*, `t_1*` : valtype*, `X*#12512` : valtype*, `t_2*` : valtype*, funccode#1 : funccode, typeidx#1553 : typeidx, `local*#1221` : local*, expr#4155 : expr, x : idx, `t*` : valtype*, `valtype#755*` : valtype*, `val?*#4` : val?*, moduleinst#22 : moduleinst, moduleinst#21 : moduleinst}: + `%~>%`(`%;%`_config{state#407, `instr*#466`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#9}(a) `CALL_REF`_instr{typeuse#39}(yy)]), [`FRAME_%{%}%`_instr{n#1153, frame#887, `instr*#468`}(m, f, [`LABEL_%{%}%`_instr{n#1155, `instr*#470`}(m, [], instr*{instr <- `instr*`})])]) -- if ($funcinst(z)[a] = fi) - -- Expand: `%~~%`(fi.TYPE_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))) - -- if (fi.CODE_funcinst = FUNC_funccode(x, LOCAL_local(t)*{t <- `t*`}, instr*{instr <- `instr*`})) - -- if (f = {LOCALS ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, MODULE fi.MODULE_funcinst}) + -- Expand: `%~~%`(fi.`TYPE`_funcinst{deftype#6}, `FUNC%->%`_comptype{resulttype#2997}(`%`_resulttype{`X*#12499`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12512`}(t_2^m{t_2 <- `t_2*`}))) + -- if (fi.`CODE`_funcinst{funccode#1} = `FUNC`_funccode{typeidx#1553, `local*#1221`, expr#4155}(x, `LOCAL`_local{valtype#755}(t)*{t <- `t*`, valtype#755 <- `valtype#755*`}, instr*{instr <- `instr*`})) + -- if (f = {`LOCALS`{`val?*#4`} ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, `MODULE`{moduleinst#22} fi.`MODULE`_funcinst{moduleinst#21}}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule return_call{z : state, x : idx, a : addr}: - `%~>%`(`%;%`_config(z, [RETURN_CALL_instr(x)]), [REF.FUNC_ADDR_instr(a) RETURN_CALL_REF_instr(($funcinst(z)[a].TYPE_funcinst : deftype <: typeuse))]) - -- if ($moduleinst(z).FUNCS_moduleinst[x!`%`_idx.0] = a) + rule return_call{state#419 : state, `instr*#483` : instr*, z : state, funcidx#2839 : funcidx, x : idx, funcaddr#11 : funcaddr, a : addr, typeuse#41 : typeuse, deftype#7 : deftype, `funcaddr*#3` : funcaddr*, i#32463 : nat}: + `%~>%`(`%;%`_config{state#419, `instr*#483`}(z, [`RETURN_CALL`_instr{funcidx#2839}(x)]), [`REF.FUNC_ADDR`_instr{funcaddr#11}(a) `RETURN_CALL_REF`_instr{typeuse#41}(($funcinst(z)[a].`TYPE`_funcinst{deftype#7} : deftype <: typeuse))]) + -- if ($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#3`}[x!`%`_idx{i#32463}.0] = a) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return_call_ref-label`{z : state, k : n, `instr'*` : instr*, `val*` : val*, yy : typeuse, `instr*` : instr*}: - `%~>%`(`%;%`_config(z, [`LABEL_%{%}%`_instr(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [RETURN_CALL_REF_instr(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)*{val <- `val*`} ++ [RETURN_CALL_REF_instr(yy)]) + rule `return_call_ref-label`{state#431 : state, `instr*#495` : instr*, z : state, n#1163 : n, `instr*#497` : instr*, k : n, `instr'*` : instr*, `val*` : val*, typeuse#43 : typeuse, yy : typeuse, `instr*` : instr*, typeuse#45 : typeuse}: + `%~>%`(`%;%`_config{state#431, `instr*#495`}(z, [`LABEL_%{%}%`_instr{n#1163, `instr*#497`}(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#45}(yy)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return_call_ref-handler`{z : state, k : n, `catch*` : catch*, `val*` : val*, yy : typeuse, `instr*` : instr*}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [RETURN_CALL_REF_instr(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)*{val <- `val*`} ++ [RETURN_CALL_REF_instr(yy)]) + rule `return_call_ref-handler`{state#443 : state, `instr*#510` : instr*, z : state, n#1165 : n, `catch*#3` : catch*, `instr*#512` : instr*, k : n, `catch*` : catch*, `val*` : val*, typeuse#47 : typeuse, yy : typeuse, `instr*` : instr*, typeuse#49 : typeuse}: + `%~>%`(`%;%`_config{state#443, `instr*#510`}(z, [`HANDLER_%{%}%`_instr{n#1165, `catch*#3`, `instr*#512`}(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#49}(yy)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return_call_ref-frame-null`{z : state, k : n, f : frame, `val*` : val*, ht : heaptype, yy : typeuse, `instr*` : instr*}: - `%~>%`(`%;%`_config(z, [`FRAME_%{%}%`_instr(k, f, (val : val <: instr)*{val <- `val*`} ++ [REF.NULL_instr(ht)] ++ [RETURN_CALL_REF_instr(yy)] ++ instr*{instr <- `instr*`})]), [TRAP_instr]) + rule `return_call_ref-frame-null`{state#455 : state, `instr*#524` : instr*, z : state, n#1167 : n, frame#931 : frame, `instr*#526` : instr*, k : n, f : frame, `val*` : val*, heaptype#1309 : heaptype, ht : heaptype, typeuse#51 : typeuse, yy : typeuse, `instr*` : instr*}: + `%~>%`(`%;%`_config{state#455, `instr*#524`}(z, [`FRAME_%{%}%`_instr{n#1167, frame#931, `instr*#526`}(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`})]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return_call_ref-frame-addr`{z : state, k : n, f : frame, `val'*` : val*, `val*` : val*, n : n, a : addr, yy : typeuse, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, m : m}: - `%~>%`(`%;%`_config(z, [`FRAME_%{%}%`_instr(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [REF.FUNC_ADDR_instr(a)] ++ [RETURN_CALL_REF_instr(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)^n{val <- `val*`} ++ [REF.FUNC_ADDR_instr(a) CALL_REF_instr(yy)]) - -- Expand: `%~~%`($funcinst(z)[a].TYPE_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))) + rule `return_call_ref-frame-addr`{state#467 : state, `instr*#538` : instr*, z : state, n#1169 : n, frame#939 : frame, `instr*#540` : instr*, k : n, f : frame, `val'*` : val*, n : n, `val*` : val*, funcaddr#13 : funcaddr, a : addr, typeuse#53 : typeuse, yy : typeuse, `instr*` : instr*, funcaddr#15 : funcaddr, typeuse#55 : typeuse, deftype#8 : deftype, resulttype#3000 : resulttype, `X*#12527` : valtype*, `t_1*` : valtype*, `X*#12540` : valtype*, m : m, `t_2*` : valtype*}: + `%~>%`(`%;%`_config{state#467, `instr*#538`}(z, [`FRAME_%{%}%`_instr{n#1169, frame#939, `instr*#540`}(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#15}(a) `CALL_REF`_instr{typeuse#55}(yy)]) + -- Expand: `%~~%`($funcinst(z)[a].`TYPE`_funcinst{deftype#8}, `FUNC%->%`_comptype{resulttype#3000}(`%`_resulttype{`X*#12527`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12540`}(t_2^m{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-null`{z : state, ht : heaptype}: - `%~>%`(`%;%`_config(z, [REF.NULL_instr(ht) THROW_REF_instr]), [TRAP_instr]) + rule `throw_ref-null`{state#503 : state, `instr*#585` : instr*, z : state, heaptype#1335 : heaptype, ht : heaptype}: + `%~>%`(`%;%`_config{state#503, `instr*#585`}(z, [`REF.NULL`_instr{heaptype#1335}(ht) `THROW_REF`_instr]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-instrs`{z : state, `val*` : val*, a : addr, `instr*` : instr*}: - `%~>%`(`%;%`_config(z, (val : val <: instr)*{val <- `val*`} ++ [REF.EXN_ADDR_instr(a)] ++ [THROW_REF_instr] ++ instr*{instr <- `instr*`}), [REF.EXN_ADDR_instr(a) THROW_REF_instr]) + rule `throw_ref-instrs`{state#515 : state, `instr*#597` : instr*, z : state, `val*` : val*, exnaddr#5 : exnaddr, a : addr, `instr*` : instr*, exnaddr#7 : exnaddr}: + `%~>%`(`%;%`_config{state#515, `instr*#597`}(z, (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr{exnaddr#5}(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}), [`REF.EXN_ADDR`_instr{exnaddr#7}(a) `THROW_REF`_instr]) -- if ((val*{val <- `val*`} =/= []) \/ (instr*{instr <- `instr*`} =/= [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-label`{z : state, n : n, `instr'*` : instr*, a : addr}: - `%~>%`(`%;%`_config(z, [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [REF.EXN_ADDR_instr(a) THROW_REF_instr])]), [REF.EXN_ADDR_instr(a) THROW_REF_instr]) + rule `throw_ref-label`{state#527 : state, `instr*#609` : instr*, z : state, n#1191 : n, `instr*#611` : instr*, n : n, `instr'*` : instr*, exnaddr#9 : exnaddr, a : addr, exnaddr#11 : exnaddr}: + `%~>%`(`%;%`_config{state#527, `instr*#609`}(z, [`LABEL_%{%}%`_instr{n#1191, `instr*#611`}(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr{exnaddr#11}(a) `THROW_REF`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-frame`{z : state, n : n, f : frame, a : addr}: - `%~>%`(`%;%`_config(z, [`FRAME_%{%}%`_instr(n, f, [REF.EXN_ADDR_instr(a) THROW_REF_instr])]), [REF.EXN_ADDR_instr(a) THROW_REF_instr]) + rule `throw_ref-frame`{state#539 : state, `instr*#624` : instr*, z : state, n#1193 : n, frame#1011 : frame, `instr*#626` : instr*, n : n, f : frame, exnaddr#13 : exnaddr, a : addr, exnaddr#15 : exnaddr}: + `%~>%`(`%;%`_config{state#539, `instr*#624`}(z, [`FRAME_%{%}%`_instr{n#1193, frame#1011, `instr*#626`}(n, f, [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr{exnaddr#15}(a) `THROW_REF`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-handler-empty`{z : state, n : n, a : addr}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [], [REF.EXN_ADDR_instr(a) THROW_REF_instr])]), [REF.EXN_ADDR_instr(a) THROW_REF_instr]) + rule `throw_ref-handler-empty`{state#551 : state, `instr*#638` : instr*, z : state, n#1195 : n, `catch*#7` : catch*, `instr*#640` : instr*, n : n, exnaddr#17 : exnaddr, a : addr, exnaddr#19 : exnaddr}: + `%~>%`(`%;%`_config{state#551, `instr*#638`}(z, [`HANDLER_%{%}%`_instr{n#1195, `catch*#7`, `instr*#640`}(n, [], [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr{exnaddr#19}(a) `THROW_REF`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-handler-catch`{z : state, n : n, x : idx, l : labelidx, `catch'*` : catch*, a : addr, `val*` : val*}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [CATCH_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [REF.EXN_ADDR_instr(a) THROW_REF_instr])]), (val : val <: instr)*{val <- `val*`} ++ [BR_instr(l)]) - -- if ($exninst(z)[a].TAG_exninst = $tagaddr(z)[x!`%`_idx.0]) - -- if (val*{val <- `val*`} = $exninst(z)[a].FIELDS_exninst) + rule `throw_ref-handler-catch`{state#563 : state, `instr*#652` : instr*, z : state, n#1197 : n, `catch*#9` : catch*, `instr*#654` : instr*, n : n, tagidx#13 : tagidx, labelidx#85 : labelidx, x : idx, l : labelidx, `catch'*` : catch*, exnaddr#21 : exnaddr, a : addr, `val*` : val*, labelidx#87 : labelidx, tagaddr#6 : tagaddr, i#32603 : nat, `val*#2` : val*}: + `%~>%`(`%;%`_config{state#563, `instr*#652`}(z, [`HANDLER_%{%}%`_instr{n#1197, `catch*#9`, `instr*#654`}(n, [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr])]), (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#87}(l)]) + -- if ($exninst(z)[a].`TAG`_exninst{tagaddr#6} = $tagaddr(z)[x!`%`_idx{i#32603}.0]) + -- if (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst{`val*#2`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-handler-catch_ref`{z : state, n : n, x : idx, l : labelidx, `catch'*` : catch*, a : addr, `val*` : val*}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [CATCH_REF_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [REF.EXN_ADDR_instr(a) THROW_REF_instr])]), (val : val <: instr)*{val <- `val*`} ++ [REF.EXN_ADDR_instr(a) BR_instr(l)]) - -- if ($exninst(z)[a].TAG_exninst = $tagaddr(z)[x!`%`_idx.0]) - -- if (val*{val <- `val*`} = $exninst(z)[a].FIELDS_exninst) + rule `throw_ref-handler-catch_ref`{state#575 : state, `instr*#666` : instr*, z : state, n#1199 : n, `catch*#11` : catch*, `instr*#668` : instr*, n : n, tagidx#15 : tagidx, labelidx#89 : labelidx, x : idx, l : labelidx, `catch'*` : catch*, exnaddr#23 : exnaddr, a : addr, `val*` : val*, exnaddr#25 : exnaddr, labelidx#91 : labelidx, tagaddr#7 : tagaddr, i#32651 : nat, `val*#3` : val*}: + `%~>%`(`%;%`_config{state#575, `instr*#666`}(z, [`HANDLER_%{%}%`_instr{n#1199, `catch*#11`, `instr*#668`}(n, [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr])]), (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr{exnaddr#25}(a) `BR`_instr{labelidx#91}(l)]) + -- if ($exninst(z)[a].`TAG`_exninst{tagaddr#7} = $tagaddr(z)[x!`%`_idx{i#32651}.0]) + -- if (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst{`val*#3`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-handler-catch_all`{z : state, n : n, l : labelidx, `catch'*` : catch*, a : addr}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [CATCH_ALL_catch(l)] ++ catch'*{catch' <- `catch'*`}, [REF.EXN_ADDR_instr(a) THROW_REF_instr])]), [BR_instr(l)]) + rule `throw_ref-handler-catch_all`{state#587 : state, `instr*#680` : instr*, z : state, n#1201 : n, `catch*#13` : catch*, `instr*#682` : instr*, n : n, labelidx#93 : labelidx, l : labelidx, `catch'*` : catch*, exnaddr#27 : exnaddr, a : addr, labelidx#95 : labelidx}: + `%~>%`(`%;%`_config{state#587, `instr*#680`}(z, [`HANDLER_%{%}%`_instr{n#1201, `catch*#13`, `instr*#682`}(n, [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr])]), [`BR`_instr{labelidx#95}(l)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-handler-catch_all_ref`{z : state, n : n, l : labelidx, `catch'*` : catch*, a : addr}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [CATCH_ALL_REF_catch(l)] ++ catch'*{catch' <- `catch'*`}, [REF.EXN_ADDR_instr(a) THROW_REF_instr])]), [REF.EXN_ADDR_instr(a) BR_instr(l)]) + rule `throw_ref-handler-catch_all_ref`{state#599 : state, `instr*#694` : instr*, z : state, n#1203 : n, `catch*#15` : catch*, `instr*#696` : instr*, n : n, labelidx#97 : labelidx, l : labelidx, `catch'*` : catch*, exnaddr#29 : exnaddr, a : addr, exnaddr#31 : exnaddr, labelidx#99 : labelidx}: + `%~>%`(`%;%`_config{state#599, `instr*#694`}(z, [`HANDLER_%{%}%`_instr{n#1203, `catch*#15`, `instr*#696`}(n, [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr{exnaddr#31}(a) `BR`_instr{labelidx#99}(l)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-handler-next`{z : state, n : n, catch : catch, `catch'*` : catch*, a : addr}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [catch] ++ catch'*{catch' <- `catch'*`}, [REF.EXN_ADDR_instr(a) THROW_REF_instr])]), [`HANDLER_%{%}%`_instr(n, catch'*{catch' <- `catch'*`}, [REF.EXN_ADDR_instr(a) THROW_REF_instr])]) + rule `throw_ref-handler-next`{state#611 : state, `instr*#708` : instr*, z : state, n#1205 : n, `catch*#17` : catch*, `instr*#710` : instr*, n : n, catch : catch, `catch'*` : catch*, exnaddr#33 : exnaddr, a : addr, n#1207 : n, `catch*#19` : catch*, `instr*#712` : instr*, exnaddr#35 : exnaddr}: + `%~>%`(`%;%`_config{state#611, `instr*#708`}(z, [`HANDLER_%{%}%`_instr{n#1205, `catch*#17`, `instr*#710`}(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr])]), [`HANDLER_%{%}%`_instr{n#1207, `catch*#19`, `instr*#712`}(n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#35}(a) `THROW_REF`_instr])]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule try_table{z : state, `val*` : val*, m : m, bt : blocktype, `catch*` : catch*, `instr*` : instr*, n : n, `t_1*` : valtype*, `t_2*` : valtype*}: - `%~>%`(`%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [TRY_TABLE_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]), [`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])]) - -- if ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))) + rule try_table{state#623 : state, `instr*#724` : instr*, z : state, m : m, `val*` : val*, blocktype#29 : blocktype, `instr*#726` : instr*, bt : blocktype, `X*#12591` : catch*, `catch*` : catch*, `instr*` : instr*, n#1209 : n, `catch*#21` : catch*, `instr*#728` : instr*, n : n, n#1211 : n, `instr*#730` : instr*, resulttype#3023 : resulttype, `localidx*#1805` : localidx*, `X*#12604` : valtype*, `t_1*` : valtype*, `X*#12655` : valtype*, `t_2*` : valtype*}: + `%~>%`(`%;%`_config{state#623, `instr*#724`}(z, (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr{blocktype#29, `instr*#726`}(bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]), [`HANDLER_%{%}%`_instr{n#1209, `catch*#21`, `instr*#728`}(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr{n#1211, `instr*#730`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])]) + -- if ($blocktype_(z, bt) = `%->_%%`_instrtype{resulttype#3023, `localidx*#1805`}(`%`_resulttype{`X*#12604`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12655`}(t_2^n{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule local.get{z : state, x : idx, val : val}: - `%~>%`(`%;%`_config(z, [LOCAL.GET_instr(x)]), [(val : val <: instr)]) + rule local.get{state#635 : state, `instr*#750` : instr*, z : state, localidx#13 : localidx, x : idx, val : val}: + `%~>%`(`%;%`_config{state#635, `instr*#750`}(z, [`LOCAL.GET`_instr{localidx#13}(x)]), [(val : val <: instr)]) -- if ($local(z, x) = ?(val)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule global.get{z : state, x : idx, val : val}: - `%~>%`(`%;%`_config(z, [GLOBAL.GET_instr(x)]), [(val : val <: instr)]) - -- if ($global(z, x).VALUE_globalinst = val) + rule global.get{state#671 : state, `instr*#786` : instr*, z : state, globalidx#17 : globalidx, x : idx, val : val, val#2 : val}: + `%~>%`(`%;%`_config{state#671, `instr*#786`}(z, [`GLOBAL.GET`_instr{globalidx#17}(x)]), [(val : val <: instr)]) + -- if ($global(z, x).`VALUE`_globalinst{val#2} = val) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.get-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), x : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) TABLE.GET_instr(x)]), [TRAP_instr]) - -- if (i!`%`_num_.0 >= |$table(z, x).REFS_tableinst|) + rule `table.get-oob`{state#707 : state, `instr*#822` : instr*, z : state, numtype#75 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), tableidx#57 : tableidx, x : idx, i#32897 : nat, `ref*#5` : ref*}: + `%~>%`(`%;%`_config{state#707, `instr*#822`}(z, [`CONST`_instr{numtype#75}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#57}(x)]), [`TRAP`_instr]) + -- if (i!`%`_num_{i#32897}.0 >= |$table(z, x).`REFS`_tableinst{`ref*#5`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.get-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), x : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) TABLE.GET_instr(x)]), [($table(z, x).REFS_tableinst[i!`%`_num_.0] : ref <: instr)]) - -- if (i!`%`_num_.0 < |$table(z, x).REFS_tableinst|) + rule `table.get-val`{state#719 : state, `instr*#834` : instr*, z : state, numtype#77 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), tableidx#59 : tableidx, x : idx, `ref*#6` : ref*, i#32947 : nat, i#32973 : nat, `ref*#7` : ref*}: + `%~>%`(`%;%`_config{state#719, `instr*#834`}(z, [`CONST`_instr{numtype#77}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#59}(x)]), [($table(z, x).`REFS`_tableinst{`ref*#6`}[i!`%`_num_{i#32947}.0] : ref <: instr)]) + -- if (i!`%`_num_{i#32973}.0 < |$table(z, x).`REFS`_tableinst{`ref*#7`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule table.size{z : state, x : idx, at : addrtype, n : n, lim : limits, rt : reftype}: - `%~>%`(`%;%`_config(z, [TABLE.SIZE_instr(x)]), [CONST_instr((at : addrtype <: numtype), `%`_num_(n))]) - -- if (|$table(z, x).REFS_tableinst| = n) - -- if ($table(z, x).TYPE_tableinst = `%%%`_tabletype(at, lim, rt)) + rule table.size{state#779 : state, `instr*#894` : instr*, z : state, tableidx#65 : tableidx, x : idx, numtype#83 : numtype, at : addrtype, i#33141 : nat, n : n, `ref*#10` : ref*, tabletype#880 : tabletype, addrtype#1123 : addrtype, limits#1123 : limits, reftype#3465 : reftype, lim : limits, rt : reftype}: + `%~>%`(`%;%`_config{state#779, `instr*#894`}(z, [`TABLE.SIZE`_instr{tableidx#65}(x)]), [`CONST`_instr{numtype#83}((at : addrtype <: numtype), `%`_num_{i#33141}(n))]) + -- if (|$table(z, x).`REFS`_tableinst{`ref*#10`}| = n) + -- if ($table(z, x).`TYPE`_tableinst{tabletype#880} = `%%%`_tabletype{addrtype#1123, limits#1123, reftype#3465}(at, lim, rt)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.fill-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) TABLE.FILL_instr(x)]), [TRAP_instr]) - -- if ((i!`%`_num_.0 + n) > |$table(z, x).REFS_tableinst|) + rule `table.fill-oob`{state#839 : state, `instr*#954` : instr*, z : state, numtype#93 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, numtype#95 : numtype, i#33359 : nat, n : n, tableidx#71 : tableidx, x : idx, i#33387 : nat, `ref*#12` : ref*}: + `%~>%`(`%;%`_config{state#839, `instr*#954`}(z, [`CONST`_instr{numtype#93}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#95}((at : addrtype <: numtype), `%`_num_{i#33359}(n)) `TABLE.FILL`_instr{tableidx#71}(x)]), [`TRAP`_instr]) + -- if ((i!`%`_num_{i#33387}.0 + n) > |$table(z, x).`REFS`_tableinst{`ref*#12`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.fill-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) TABLE.FILL_instr(x)]), []) + rule `table.fill-zero`{state#851 : state, `instr*#966` : instr*, z : state, numtype#97 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, numtype#99 : numtype, i#33437 : nat, n : n, tableidx#73 : tableidx, x : idx}: + `%~>%`(`%;%`_config{state#851, `instr*#966`}(z, [`CONST`_instr{numtype#97}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#99}((at : addrtype <: numtype), `%`_num_{i#33437}(n)) `TABLE.FILL`_instr{tableidx#73}(x)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.fill-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) TABLE.FILL_instr(x)]), [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) TABLE.SET_instr(x) CONST_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) TABLE.FILL_instr(x)]) + rule `table.fill-succ`{state#863 : state, `instr*#978` : instr*, z : state, numtype#101 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, numtype#103 : numtype, i#33489 : nat, n : n, tableidx#75 : tableidx, x : idx, numtype#105 : numtype, tableidx#77 : tableidx, numtype#107 : numtype, i#33565 : nat, i#33555 : nat, numtype#109 : numtype, i#33587 : nat, tableidx#79 : tableidx}: + `%~>%`(`%;%`_config{state#863, `instr*#978`}(z, [`CONST`_instr{numtype#101}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#103}((at : addrtype <: numtype), `%`_num_{i#33489}(n)) `TABLE.FILL`_instr{tableidx#75}(x)]), [`CONST`_instr{numtype#105}((at : addrtype <: numtype), i) (val : val <: instr) `TABLE.SET`_instr{tableidx#77}(x) `CONST`_instr{numtype#107}((at : addrtype <: numtype), `%`_num_{i#33565}((i!`%`_num_{i#33555}.0 + 1))) (val : val <: instr) `CONST`_instr{numtype#109}((at : addrtype <: numtype), `%`_num_{i#33587}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.FILL`_instr{tableidx#79}(x)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.copy-oob`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) TABLE.COPY_instr(x_1, x_2)]), [TRAP_instr]) - -- if (((i_1!`%`_num_.0 + n) > |$table(z, x_1).REFS_tableinst|) \/ ((i_2!`%`_num_.0 + n) > |$table(z, x_2).REFS_tableinst|)) + rule `table.copy-oob`{state#875 : state, `instr*#990` : instr*, z : state, numtype#111 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#113 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#115 : numtype, at' : addrtype, i#33653 : nat, n : n, tableidx#81 : tableidx, x_1 : idx, x_2 : idx, i#33695 : nat, `ref*#13` : ref*, i#33721 : nat, `ref*#14` : ref*}: + `%~>%`(`%;%`_config{state#875, `instr*#990`}(z, [`CONST`_instr{numtype#111}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#113}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#115}((at' : addrtype <: numtype), `%`_num_{i#33653}(n)) `TABLE.COPY`_instr{tableidx#81}(x_1, x_2)]), [`TRAP`_instr]) + -- if (((i_1!`%`_num_{i#33695}.0 + n) > |$table(z, x_1).`REFS`_tableinst{`ref*#13`}|) \/ ((i_2!`%`_num_{i#33721}.0 + n) > |$table(z, x_2).`REFS`_tableinst{`ref*#14`}|)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.copy-zero`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) TABLE.COPY_instr(x, y)]), []) + rule `table.copy-zero`{state#887 : state, `instr*#1002` : instr*, z : state, numtype#117 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#119 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#121 : numtype, at' : addrtype, i#33785 : nat, n : n, tableidx#84 : tableidx, x : idx, y : idx}: + `%~>%`(`%;%`_config{state#887, `instr*#1002`}(z, [`CONST`_instr{numtype#117}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#119}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#121}((at' : addrtype <: numtype), `%`_num_{i#33785}(n)) `TABLE.COPY`_instr{tableidx#84}(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.copy-le`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) TABLE.COPY_instr(x, y)]), [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) TABLE.GET_instr(y) TABLE.SET_instr(x) CONST_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1))) CONST_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1))) CONST_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) TABLE.COPY_instr(x, y)]) + rule `table.copy-le`{state#899 : state, `instr*#1014` : instr*, z : state, numtype#123 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#125 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#127 : numtype, at' : addrtype, i#33865 : nat, n : n, tableidx#87 : tableidx, x : idx, y : idx, numtype#129 : numtype, numtype#131 : numtype, tableidx#90 : tableidx, tableidx#92 : tableidx, numtype#133 : numtype, i#33981 : nat, i#33971 : nat, numtype#135 : numtype, i#34017 : nat, i#34007 : nat, numtype#137 : numtype, i#34039 : nat, tableidx#94 : tableidx, i#34085 : nat, i#34095 : nat}: + `%~>%`(`%;%`_config{state#899, `instr*#1014`}(z, [`CONST`_instr{numtype#123}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#125}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#127}((at' : addrtype <: numtype), `%`_num_{i#33865}(n)) `TABLE.COPY`_instr{tableidx#87}(x, y)]), [`CONST`_instr{numtype#129}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#131}((at_2 : addrtype <: numtype), i_2) `TABLE.GET`_instr{tableidx#90}(y) `TABLE.SET`_instr{tableidx#92}(x) `CONST`_instr{numtype#133}((at_1 : addrtype <: numtype), `%`_num_{i#33981}((i_1!`%`_num_{i#33971}.0 + 1))) `CONST`_instr{numtype#135}((at_2 : addrtype <: numtype), `%`_num_{i#34017}((i_2!`%`_num_{i#34007}.0 + 1))) `CONST`_instr{numtype#137}((at' : addrtype <: numtype), `%`_num_{i#34039}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr{tableidx#94}(x, y)]) -- otherwise - -- if (i_1!`%`_num_.0 <= i_2!`%`_num_.0) + -- if (i_1!`%`_num_{i#34085}.0 <= i_2!`%`_num_{i#34095}.0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.copy-gt`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) TABLE.COPY_instr(x, y)]), [CONST_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) CONST_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) TABLE.GET_instr(y) TABLE.SET_instr(x) CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) TABLE.COPY_instr(x, y)]) + rule `table.copy-gt`{state#911 : state, `instr*#1026` : instr*, z : state, numtype#139 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#141 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#143 : numtype, at' : addrtype, i#34147 : nat, n : n, tableidx#97 : tableidx, x : idx, y : idx, numtype#145 : numtype, i#34211 : nat, i#34201 : nat, numtype#147 : numtype, i#34247 : nat, i#34237 : nat, tableidx#100 : tableidx, tableidx#102 : tableidx, numtype#149 : numtype, numtype#151 : numtype, numtype#153 : numtype, i#34321 : nat, tableidx#104 : tableidx}: + `%~>%`(`%;%`_config{state#911, `instr*#1026`}(z, [`CONST`_instr{numtype#139}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#141}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#143}((at' : addrtype <: numtype), `%`_num_{i#34147}(n)) `TABLE.COPY`_instr{tableidx#97}(x, y)]), [`CONST`_instr{numtype#145}((at_1 : addrtype <: numtype), `%`_num_{i#34211}(((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr{numtype#147}((at_2 : addrtype <: numtype), `%`_num_{i#34247}(((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.GET`_instr{tableidx#100}(y) `TABLE.SET`_instr{tableidx#102}(x) `CONST`_instr{numtype#149}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#151}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#153}((at' : addrtype <: numtype), `%`_num_{i#34321}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr{tableidx#104}(x, y)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.init-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) TABLE.INIT_instr(x, y)]), [TRAP_instr]) - -- if (((i!`%`_num_.0 + n) > |$table(z, x).REFS_tableinst|) \/ ((j!`%`_num_.0 + n) > |$elem(z, y).REFS_eleminst|)) + rule `table.init-oob`{state#923 : state, `instr*#1038` : instr*, z : state, numtype#155 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#157 : numtype, j : num_(`I32`_numtype), numtype#159 : numtype, i#34401 : nat, n : n, tableidx#107 : tableidx, elemidx#17 : elemidx, x : idx, y : idx, i#34443 : nat, `ref*#15` : ref*, i#34469 : nat, `ref*#16` : ref*}: + `%~>%`(`%;%`_config{state#923, `instr*#1038`}(z, [`CONST`_instr{numtype#155}((at : addrtype <: numtype), i) `CONST`_instr{numtype#157}(`I32`_numtype, j) `CONST`_instr{numtype#159}(`I32`_numtype, `%`_num_{i#34401}(n)) `TABLE.INIT`_instr{tableidx#107, elemidx#17}(x, y)]), [`TRAP`_instr]) + -- if (((i!`%`_num_{i#34443}.0 + n) > |$table(z, x).`REFS`_tableinst{`ref*#15`}|) \/ ((j!`%`_num_{i#34469}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#16`}|)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.init-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) TABLE.INIT_instr(x, y)]), []) + rule `table.init-zero`{state#935 : state, `instr*#1050` : instr*, z : state, numtype#161 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#163 : numtype, j : num_(`I32`_numtype), numtype#165 : numtype, i#34533 : nat, n : n, tableidx#109 : tableidx, elemidx#19 : elemidx, x : idx, y : idx}: + `%~>%`(`%;%`_config{state#935, `instr*#1050`}(z, [`CONST`_instr{numtype#161}((at : addrtype <: numtype), i) `CONST`_instr{numtype#163}(`I32`_numtype, j) `CONST`_instr{numtype#165}(`I32`_numtype, `%`_num_{i#34533}(n)) `TABLE.INIT`_instr{tableidx#109, elemidx#19}(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.init-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) TABLE.INIT_instr(x, y)]), [CONST_instr((at : addrtype <: numtype), i) ($elem(z, y).REFS_eleminst[j!`%`_num_.0] : ref <: instr) TABLE.SET_instr(x) CONST_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((j!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) TABLE.INIT_instr(x, y)]) + rule `table.init-succ`{state#947 : state, `instr*#1062` : instr*, z : state, numtype#167 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#169 : numtype, j : num_(`I32`_numtype), numtype#171 : numtype, i#34613 : nat, n : n, tableidx#111 : tableidx, elemidx#21 : elemidx, x : idx, y : idx, numtype#173 : numtype, `ref*#17` : ref*, i#34675 : nat, tableidx#113 : tableidx, numtype#175 : numtype, i#34725 : nat, i#34715 : nat, numtype#177 : numtype, i#34761 : nat, i#34751 : nat, numtype#179 : numtype, i#34783 : nat, tableidx#115 : tableidx, elemidx#23 : elemidx}: + `%~>%`(`%;%`_config{state#947, `instr*#1062`}(z, [`CONST`_instr{numtype#167}((at : addrtype <: numtype), i) `CONST`_instr{numtype#169}(`I32`_numtype, j) `CONST`_instr{numtype#171}(`I32`_numtype, `%`_num_{i#34613}(n)) `TABLE.INIT`_instr{tableidx#111, elemidx#21}(x, y)]), [`CONST`_instr{numtype#173}((at : addrtype <: numtype), i) ($elem(z, y).`REFS`_eleminst{`ref*#17`}[j!`%`_num_{i#34675}.0] : ref <: instr) `TABLE.SET`_instr{tableidx#113}(x) `CONST`_instr{numtype#175}((at : addrtype <: numtype), `%`_num_{i#34725}((i!`%`_num_{i#34715}.0 + 1))) `CONST`_instr{numtype#177}(`I32`_numtype, `%`_num_{i#34761}((j!`%`_num_{i#34751}.0 + 1))) `CONST`_instr{numtype#179}(`I32`_numtype, `%`_num_{i#34783}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.INIT`_instr{tableidx#115, elemidx#23}(x, y)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `load-num-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), nt : numtype, x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) LOAD_instr(nt, ?(), x, ao)]), [TRAP_instr]) - -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) + rule `load-num-oob`{state#983 : state, `instr*#1098` : instr*, z : state, numtype#181 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `numtype?#7` : numtype?, memidx#67 : memidx, memarg#35 : memarg, nt : numtype, x : idx, ao : memarg, i#34883 : nat, u64#405 : u64, i#34893 : nat, `byte*#1849` : byte*}: + `%~>%`(`%;%`_config{state#983, `instr*#1098`}(z, [`CONST`_instr{numtype#181}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#7`, memidx#67, memarg#35}(nt, ?(), x, ao)]), [`TRAP`_instr]) + -- if (((i!`%`_num_{i#34883}.0 + ao.`OFFSET`_memarg{u64#405}!`%`_u64{i#34893}.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1849`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `load-num-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), nt : numtype, x : idx, ao : memarg, c : num_(nt)}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) LOAD_instr(nt, ?(), x, ao)]), [CONST_instr(nt, c)]) - -- if ($nbytes_(nt, c) = $mem(z, x).BYTES_meminst[(i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `load-num-val`{state#995 : state, `instr*#1110` : instr*, z : state, numtype#184 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `numtype?#8` : numtype?, memidx#69 : memidx, memarg#37 : memarg, nt : numtype, x : idx, ao : memarg, numtype#187 : numtype, c : num_(nt), `byte*#1850` : byte*, i#34963 : nat, u64#406 : u64, i#34973 : nat}: + `%~>%`(`%;%`_config{state#995, `instr*#1110`}(z, [`CONST`_instr{numtype#184}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#8`, memidx#69, memarg#37}(nt, ?(), x, ao)]), [`CONST`_instr{numtype#187}(nt, c)]) + -- if ($nbytes_(nt, c) = $mem(z, x).`BYTES`_meminst{`byte*#1850`}[(i!`%`_num_{i#34963}.0 + ao.`OFFSET`_memarg{u64#406}!`%`_u64{i#34973}.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `load-pack-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), Inn : Inn, n : n, sx : sx, x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) LOAD_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)]), [TRAP_instr]) - -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) + rule `load-pack-oob`{state#1007 : state, `instr*#1122` : instr*, z : state, numtype#189 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `numtype?#9` : numtype?, memidx#71 : memidx, memarg#39 : memarg, Inn : Inn, sz#156 : sz, sx#270 : sx, i#35021 : nat, i#35028 : nat, n : n, sx : sx, x : idx, ao : memarg, i#35060 : nat, u64#407 : u64, i#35070 : nat, `byte*#1851` : byte*}: + `%~>%`(`%;%`_config{state#1007, `instr*#1122`}(z, [`CONST`_instr{numtype#189}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#9`, memidx#71, memarg#39}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)), x, ao)]), [`TRAP`_instr]) + -- if (((i!`%`_num_{i#35060}.0 + ao.`OFFSET`_memarg{u64#407}!`%`_u64{i#35070}.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1851`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `load-pack-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), Inn : Inn, n : n, sx : sx, x : idx, ao : memarg, c : iN(n)}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) LOAD_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)]), [CONST_instr((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))]) - -- if ($ibytes_(n, c) = $mem(z, x).BYTES_meminst[(i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `load-pack-val`{state#1019 : state, `instr*#1134` : instr*, z : state, numtype#192 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `numtype?#10` : numtype?, memidx#73 : memidx, memarg#41 : memarg, Inn : Inn, sz#158 : sz, sx#272 : sx, i#35122 : nat, i#35129 : nat, n : n, sx : sx, x : idx, ao : memarg, numtype#195 : numtype, c : iN(n), `byte*#1852` : byte*, i#35199 : nat, u64#408 : u64, i#35209 : nat}: + `%~>%`(`%;%`_config{state#1019, `instr*#1134`}(z, [`CONST`_instr{numtype#192}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#10`, memidx#73, memarg#41}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)), x, ao)]), [`CONST`_instr{numtype#195}((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))]) + -- if ($ibytes_(n, c) = $mem(z, x).`BYTES`_meminst{`byte*#1852`}[(i!`%`_num_{i#35199}.0 + ao.`OFFSET`_memarg{u64#408}!`%`_u64{i#35209}.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(), x, ao)]), [TRAP_instr]) - -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + ((($vsize(V128_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) + rule `vload-oob`{state#1031 : state, `instr*#1146` : instr*, z : state, numtype#197 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#6` : vectype?, memidx#75 : memidx, memarg#43 : memarg, x : idx, ao : memarg, i#35293 : nat, u64#409 : u64, i#35303 : nat, `byte*#1853` : byte*}: + `%~>%`(`%;%`_config{state#1031, `instr*#1146`}(z, [`CONST`_instr{numtype#197}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#6`, memidx#75, memarg#43}(`V128`_vectype, ?(), x, ao)]), [`TRAP`_instr]) + -- if (((i!`%`_num_{i#35293}.0 + ao.`OFFSET`_memarg{u64#409}!`%`_u64{i#35303}.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1853`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), x : idx, ao : memarg, c : vec_(V128_Vnn)}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(), x, ao)]), [VCONST_instr(V128_vectype, c)]) - -- if ($vbytes_(V128_vectype, c) = $mem(z, x).BYTES_meminst[(i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) : ((($vsize(V128_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `vload-val`{state#1043 : state, `instr*#1158` : instr*, z : state, numtype#199 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#7` : vectype?, memidx#77 : memidx, memarg#45 : memarg, x : idx, ao : memarg, vectype#64 : vectype, c : vec_(`V128`_Vnn), `byte*#1854` : byte*, i#35387 : nat, u64#410 : u64, i#35397 : nat}: + `%~>%`(`%;%`_config{state#1043, `instr*#1158`}(z, [`CONST`_instr{numtype#199}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#7`, memidx#77, memarg#45}(`V128`_vectype, ?(), x, ao)]), [`VCONST`_instr{vectype#64}(`V128`_vectype, c)]) + -- if ($vbytes_(`V128`_vectype, c) = $mem(z, x).`BYTES`_meminst{`byte*#1854`}[(i!`%`_num_{i#35387}.0 + ao.`OFFSET`_memarg{u64#410}!`%`_u64{i#35397}.0) : ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-pack-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), M : M, K : K, sx : sx, x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)]), [TRAP_instr]) - -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) + rule `vload-pack-oob`{state#1055 : state, `instr*#1170` : instr*, z : state, numtype#201 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#8` : vectype?, memidx#79 : memidx, memarg#47 : memarg, sz#205 : sz, M#63 : M, sx#289 : sx, i#35475 : nat, i#35482 : nat, M : M, K : K, sx : sx, x : idx, ao : memarg, i#35514 : nat, u64#411 : u64, i#35524 : nat, `byte*#1855` : byte*}: + `%~>%`(`%;%`_config{state#1055, `instr*#1170`}(z, [`CONST`_instr{numtype#201}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#8`, memidx#79, memarg#47}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)), x, ao)]), [`TRAP`_instr]) + -- if (((i!`%`_num_{i#35514}.0 + ao.`OFFSET`_memarg{u64#411}!`%`_u64{i#35524}.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1855`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-pack-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), M : M, K : K, sx : sx, x : idx, ao : memarg, c : vec_(V128_Vnn), `j*` : iN(M)*, `k*` : nat*, Jnn : Jnn}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)]), [VCONST_instr(V128_vectype, c)]) - -- (if ($ibytes_(M, j) = $mem(z, x).BYTES_meminst[((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]))^(k%`(`%;%`_config{state#1067, `instr*#1182`}(z, [`CONST`_instr{numtype#203}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#9`, memidx#81, memarg#49}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)), x, ao)]), [`VCONST`_instr{vectype#68}(`V128`_vectype, c)]) + -- (if ($ibytes_(M, j) = $mem(z, x).`BYTES`_meminst{`byte*#1856`}[((i!`%`_num_{i#35641}.0 + ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]))^(k%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(N))), x, ao)]), [TRAP_instr]) - -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) + rule `vload-splat-oob`{state#1079 : state, `instr*#1194` : instr*, z : state, numtype#205 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#10` : vectype?, memidx#83 : memidx, memarg#51 : memarg, sz#299 : sz, i#35834 : nat, N : N, x : idx, ao : memarg, i#35866 : nat, u64#413 : u64, i#35876 : nat, `byte*#1857` : byte*}: + `%~>%`(`%;%`_config{state#1079, `instr*#1194`}(z, [`CONST`_instr{numtype#205}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#10`, memidx#83, memarg#51}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))), x, ao)]), [`TRAP`_instr]) + -- if (((i!`%`_num_{i#35866}.0 + ao.`OFFSET`_memarg{u64#413}!`%`_u64{i#35876}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1857`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-splat-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), N : N, x : idx, ao : memarg, c : vec_(V128_Vnn), j : iN(N), Jnn : Jnn, M : M}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(N))), x, ao)]), [VCONST_instr(V128_vectype, c)]) - -- if ($ibytes_(N, j) = $mem(z, x).BYTES_meminst[(i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `vload-splat-val`{state#1091 : state, `instr*#1206` : instr*, z : state, numtype#207 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#11` : vectype?, memidx#85 : memidx, memarg#53 : memarg, sz#346 : sz, i#35934 : nat, N : N, x : idx, ao : memarg, vectype#72 : vectype, c : vec_(`V128`_Vnn), j : iN(N), `byte*#1858` : byte*, i#35992 : nat, u64#414 : u64, i#36002 : nat, Jnn : Jnn, M : M, lanetype#7267 : lanetype, dim#7267 : dim, i#36033 : nat, i#36040 : nat, `i#36120*` : nat*, `i#36121*` : nat*}: + `%~>%`(`%;%`_config{state#1091, `instr*#1206`}(z, [`CONST`_instr{numtype#207}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#11`, memidx#85, memarg#53}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))), x, ao)]), [`VCONST`_instr{vectype#72}(`V128`_vectype, c)]) + -- if ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst{`byte*#1858`}[(i!`%`_num_{i#35992}.0 + ao.`OFFSET`_memarg{u64#414}!`%`_u64{i#36002}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) -- if (N = $jsize(Jnn)) -- if ((M : nat <:> rat) = ((128 : nat <:> rat) / (N : nat <:> rat))) - -- if (c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `%`_lane_(j!`%`_iN.0)^M{})) + -- if (c = $inv_lanes_(`%X%`_shape{lanetype#7267, dim#7267, i#36033}((Jnn : Jnn <: lanetype), `%`_dim{i#36040}(M)), `%`_lane_{i#36121}(j!`%`_iN{i#36120}.0)^M{i#36120 <- `i#36120*`, i#36121 <- `i#36121*`})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-zero-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), N : N, x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(N))), x, ao)]), [TRAP_instr]) - -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) + rule `vload-zero-oob`{state#1103 : state, `instr*#1218` : instr*, z : state, numtype#209 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#12` : vectype?, memidx#87 : memidx, memarg#55 : memarg, sz#393 : sz, i#36172 : nat, i#36179 : nat, N : N, x : idx, ao : memarg, i#36211 : nat, u64#415 : u64, i#36221 : nat, `byte*#1859` : byte*}: + `%~>%`(`%;%`_config{state#1103, `instr*#1218`}(z, [`CONST`_instr{numtype#209}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#12`, memidx#87, memarg#55}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))), x, ao)]), [`TRAP`_instr]) + -- if (((i!`%`_num_{i#36211}.0 + ao.`OFFSET`_memarg{u64#415}!`%`_u64{i#36221}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1859`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-zero-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), N : N, x : idx, ao : memarg, c : vec_(V128_Vnn), j : iN(N)}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(N))), x, ao)]), [VCONST_instr(V128_vectype, c)]) - -- if ($ibytes_(N, j) = $mem(z, x).BYTES_meminst[(i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) - -- if (c = $extend__(N, 128, U_sx, j)) + rule `vload-zero-val`{state#1115 : state, `instr*#1230` : instr*, z : state, numtype#211 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#13` : vectype?, memidx#89 : memidx, memarg#57 : memarg, sz#440 : sz, i#36273 : nat, i#36280 : nat, N : N, x : idx, ao : memarg, vectype#76 : vectype, c : vec_(`V128`_Vnn), j : iN(N), `byte*#1860` : byte*, i#36338 : nat, u64#416 : u64, i#36348 : nat}: + `%~>%`(`%;%`_config{state#1115, `instr*#1230`}(z, [`CONST`_instr{numtype#211}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#13`, memidx#89, memarg#57}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))), x, ao)]), [`VCONST`_instr{vectype#76}(`V128`_vectype, c)]) + -- if ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst{`byte*#1860`}[(i!`%`_num_{i#36338}.0 + ao.`OFFSET`_memarg{u64#416}!`%`_u64{i#36348}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + -- if (c = $extend__(N, 128, `U`_sx, j)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload_lane-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c_1 : vec_(V128_Vnn), N : N, x : idx, ao : memarg, j : laneidx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VCONST_instr(V128_vectype, c_1) VLOAD_LANE_instr(V128_vectype, `%`_sz(N), x, ao, j)]), [TRAP_instr]) - -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) + rule `vload_lane-oob`{state#1127 : state, `instr*#1242` : instr*, z : state, numtype#213 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), vectype#78 : vectype, c_1 : vec_(`V128`_Vnn), vectype#80 : vectype, sz#442 : sz, memidx#91 : memidx, memarg#59 : memarg, laneidx#17 : laneidx, i#36428 : nat, N : N, x : idx, ao : memarg, j : laneidx, i#36474 : nat, u64#417 : u64, i#36484 : nat, `byte*#1861` : byte*}: + `%~>%`(`%;%`_config{state#1127, `instr*#1242`}(z, [`CONST`_instr{numtype#213}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#78}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#80, sz#442, memidx#91, memarg#59, laneidx#17}(`V128`_vectype, `%`_sz{i#36428}(N), x, ao, j)]), [`TRAP`_instr]) + -- if (((i!`%`_num_{i#36474}.0 + ao.`OFFSET`_memarg{u64#417}!`%`_u64{i#36484}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1861`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload_lane-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c_1 : vec_(V128_Vnn), N : N, x : idx, ao : memarg, j : laneidx, c : vec_(V128_Vnn), k : iN(N), Jnn : Jnn, M : M}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VCONST_instr(V128_vectype, c_1) VLOAD_LANE_instr(V128_vectype, `%`_sz(N), x, ao, j)]), [VCONST_instr(V128_vectype, c)]) - -- if ($ibytes_(N, k) = $mem(z, x).BYTES_meminst[(i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `vload_lane-val`{state#1139 : state, `instr*#1254` : instr*, z : state, numtype#215 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), vectype#82 : vectype, c_1 : vec_(`V128`_Vnn), vectype#84 : vectype, sz#444 : sz, memidx#93 : memidx, memarg#61 : memarg, laneidx#19 : laneidx, i#36532 : nat, N : N, x : idx, ao : memarg, j : laneidx, vectype#86 : vectype, c : vec_(`V128`_Vnn), k : iN(N), `byte*#1862` : byte*, i#36604 : nat, u64#418 : u64, i#36614 : nat, Jnn : Jnn, M : M, lanetype#7292 : lanetype, dim#7292 : dim, i#36645 : nat, i#36652 : nat, lanetype#7383 : lanetype, dim#7383 : dim, i#36877 : nat, i#36884 : nat, i#36910 : nat, i#36957 : nat, i#36956 : nat}: + `%~>%`(`%;%`_config{state#1139, `instr*#1254`}(z, [`CONST`_instr{numtype#215}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#82}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#84, sz#444, memidx#93, memarg#61, laneidx#19}(`V128`_vectype, `%`_sz{i#36532}(N), x, ao, j)]), [`VCONST`_instr{vectype#86}(`V128`_vectype, c)]) + -- if ($ibytes_(N, k) = $mem(z, x).`BYTES`_meminst{`byte*#1862`}[(i!`%`_num_{i#36604}.0 + ao.`OFFSET`_memarg{u64#418}!`%`_u64{i#36614}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) -- if (N = $jsize(Jnn)) - -- if ((M : nat <:> rat) = (($vsize(V128_vectype) : nat <:> rat) / (N : nat <:> rat))) - -- if (c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)[[j!`%`_laneidx.0] = `%`_lane_(k!`%`_iN.0)])) + -- if ((M : nat <:> rat) = (($vsize(`V128`_vectype) : nat <:> rat) / (N : nat <:> rat))) + -- if (c = $inv_lanes_(`%X%`_shape{lanetype#7292, dim#7292, i#36645}((Jnn : Jnn <: lanetype), `%`_dim{i#36652}(M)), $lanes_(`%X%`_shape{lanetype#7383, dim#7383, i#36877}((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M)), c_1)[[j!`%`_laneidx{i#36910}.0] = `%`_lane_{i#36957}(k!`%`_iN{i#36956}.0)])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule memory.size{z : state, x : idx, at : addrtype, n : n, lim : limits}: - `%~>%`(`%;%`_config(z, [MEMORY.SIZE_instr(x)]), [CONST_instr((at : addrtype <: numtype), `%`_num_(n))]) - -- if ((n * (64 * $Ki)) = |$mem(z, x).BYTES_meminst|) - -- if ($mem(z, x).TYPE_meminst = `%%PAGE`_memtype(at, lim)) + rule memory.size{state#1343 : state, `instr*#1458` : instr*, z : state, memidx#111 : memidx, x : idx, numtype#245 : numtype, at : addrtype, i#37958 : nat, n : n, `byte*#1867` : byte*, memtype#530 : memtype, addrtype#1135 : addrtype, limits#1135 : limits, lim : limits}: + `%~>%`(`%;%`_config{state#1343, `instr*#1458`}(z, [`MEMORY.SIZE`_instr{memidx#111}(x)]), [`CONST`_instr{numtype#245}((at : addrtype <: numtype), `%`_num_{i#37958}(n))]) + -- if ((n * (64 * $Ki)) = |$mem(z, x).`BYTES`_meminst{`byte*#1867`}|) + -- if ($mem(z, x).`TYPE`_meminst{memtype#530} = `%%PAGE`_memtype{addrtype#1135, limits#1135}(at, lim)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.fill-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) MEMORY.FILL_instr(x)]), [TRAP_instr]) - -- if ((i!`%`_num_.0 + n) > |$mem(z, x).BYTES_meminst|) + rule `memory.fill-oob`{state#1403 : state, `instr*#1518` : instr*, z : state, numtype#255 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, numtype#257 : numtype, i#38176 : nat, n : n, memidx#117 : memidx, x : idx, i#38204 : nat, `byte*#1869` : byte*}: + `%~>%`(`%;%`_config{state#1403, `instr*#1518`}(z, [`CONST`_instr{numtype#255}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#257}((at : addrtype <: numtype), `%`_num_{i#38176}(n)) `MEMORY.FILL`_instr{memidx#117}(x)]), [`TRAP`_instr]) + -- if ((i!`%`_num_{i#38204}.0 + n) > |$mem(z, x).`BYTES`_meminst{`byte*#1869`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.fill-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) MEMORY.FILL_instr(x)]), []) + rule `memory.fill-zero`{state#1415 : state, `instr*#1530` : instr*, z : state, numtype#259 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, numtype#261 : numtype, i#38254 : nat, n : n, memidx#119 : memidx, x : idx}: + `%~>%`(`%;%`_config{state#1415, `instr*#1530`}(z, [`CONST`_instr{numtype#259}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#261}((at : addrtype <: numtype), `%`_num_{i#38254}(n)) `MEMORY.FILL`_instr{memidx#119}(x)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.fill-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) MEMORY.FILL_instr(x)]), [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0) CONST_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) MEMORY.FILL_instr(x)]) + rule `memory.fill-succ`{state#1427 : state, `instr*#1542` : instr*, z : state, numtype#263 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, numtype#265 : numtype, i#38306 : nat, n : n, memidx#121 : memidx, x : idx, numtype#267 : numtype, `numtype?#15` : numtype?, memidx#123 : memidx, memarg#79 : memarg, sz#465 : sz, i#38373 : nat, i#38374 : nat, numtype#270 : numtype, i#38424 : nat, i#38414 : nat, numtype#272 : numtype, i#38446 : nat, memidx#125 : memidx}: + `%~>%`(`%;%`_config{state#1427, `instr*#1542`}(z, [`CONST`_instr{numtype#263}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#265}((at : addrtype <: numtype), `%`_num_{i#38306}(n)) `MEMORY.FILL`_instr{memidx#121}(x)]), [`CONST`_instr{numtype#267}((at : addrtype <: numtype), i) (val : val <: instr) `STORE`_instr{`numtype?#15`, memidx#123, memarg#79}(`I32`_numtype, ?(`%`_storeop_{sz#465, i#38373}(`%`_sz{i#38374}(8))), x, $memarg0) `CONST`_instr{numtype#270}((at : addrtype <: numtype), `%`_num_{i#38424}((i!`%`_num_{i#38414}.0 + 1))) (val : val <: instr) `CONST`_instr{numtype#272}((at : addrtype <: numtype), `%`_num_{i#38446}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.FILL`_instr{memidx#125}(x)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.copy-oob`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) MEMORY.COPY_instr(x_1, x_2)]), [TRAP_instr]) - -- if (((i_1!`%`_num_.0 + n) > |$mem(z, x_1).BYTES_meminst|) \/ ((i_2!`%`_num_.0 + n) > |$mem(z, x_2).BYTES_meminst|)) + rule `memory.copy-oob`{state#1439 : state, `instr*#1554` : instr*, z : state, numtype#274 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#276 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#278 : numtype, at' : addrtype, i#38512 : nat, n : n, memidx#127 : memidx, x_1 : idx, x_2 : idx, i#38554 : nat, `byte*#1870` : byte*, i#38580 : nat, `byte*#1871` : byte*}: + `%~>%`(`%;%`_config{state#1439, `instr*#1554`}(z, [`CONST`_instr{numtype#274}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#276}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#278}((at' : addrtype <: numtype), `%`_num_{i#38512}(n)) `MEMORY.COPY`_instr{memidx#127}(x_1, x_2)]), [`TRAP`_instr]) + -- if (((i_1!`%`_num_{i#38554}.0 + n) > |$mem(z, x_1).`BYTES`_meminst{`byte*#1870`}|) \/ ((i_2!`%`_num_{i#38580}.0 + n) > |$mem(z, x_2).`BYTES`_meminst{`byte*#1871`}|)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.copy-zero`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) MEMORY.COPY_instr(x_1, x_2)]), []) + rule `memory.copy-zero`{state#1451 : state, `instr*#1566` : instr*, z : state, numtype#280 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#282 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#284 : numtype, at' : addrtype, i#38644 : nat, n : n, memidx#130 : memidx, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config{state#1451, `instr*#1566`}(z, [`CONST`_instr{numtype#280}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#282}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#284}((at' : addrtype <: numtype), `%`_num_{i#38644}(n)) `MEMORY.COPY`_instr{memidx#130}(x_1, x_2)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.copy-le`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) MEMORY.COPY_instr(x_1, x_2)]), [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(8), U_sx)), x_2, $memarg0) STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0) CONST_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1))) CONST_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1))) CONST_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) MEMORY.COPY_instr(x_1, x_2)]) + rule `memory.copy-le`{state#1463 : state, `instr*#1578` : instr*, z : state, numtype#286 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#288 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#290 : numtype, at' : addrtype, i#38724 : nat, n : n, memidx#133 : memidx, x_1 : idx, x_2 : idx, numtype#292 : numtype, numtype#294 : numtype, `numtype?#16` : numtype?, memidx#136 : memidx, memarg#81 : memarg, sz#483 : sz, sx#384 : sx, i#38802 : nat, i#38809 : nat, `numtype?#17` : numtype?, memidx#138 : memidx, memarg#83 : memarg, sz#496 : sz, i#38864 : nat, i#38865 : nat, numtype#298 : numtype, i#38915 : nat, i#38905 : nat, numtype#300 : numtype, i#38951 : nat, i#38941 : nat, numtype#302 : numtype, i#38973 : nat, memidx#140 : memidx, i#39019 : nat, i#39029 : nat}: + `%~>%`(`%;%`_config{state#1463, `instr*#1578`}(z, [`CONST`_instr{numtype#286}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#288}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#290}((at' : addrtype <: numtype), `%`_num_{i#38724}(n)) `MEMORY.COPY`_instr{memidx#133}(x_1, x_2)]), [`CONST`_instr{numtype#292}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#294}((at_2 : addrtype <: numtype), i_2) `LOAD`_instr{`numtype?#16`, memidx#136, memarg#81}(`I32`_numtype, ?(`%_%`_loadop_{sz#483, sx#384, i#38802}(`%`_sz{i#38809}(8), `U`_sx)), x_2, $memarg0) `STORE`_instr{`numtype?#17`, memidx#138, memarg#83}(`I32`_numtype, ?(`%`_storeop_{sz#496, i#38864}(`%`_sz{i#38865}(8))), x_1, $memarg0) `CONST`_instr{numtype#298}((at_1 : addrtype <: numtype), `%`_num_{i#38915}((i_1!`%`_num_{i#38905}.0 + 1))) `CONST`_instr{numtype#300}((at_2 : addrtype <: numtype), `%`_num_{i#38951}((i_2!`%`_num_{i#38941}.0 + 1))) `CONST`_instr{numtype#302}((at' : addrtype <: numtype), `%`_num_{i#38973}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr{memidx#140}(x_1, x_2)]) -- otherwise - -- if (i_1!`%`_num_.0 <= i_2!`%`_num_.0) + -- if (i_1!`%`_num_{i#39019}.0 <= i_2!`%`_num_{i#39029}.0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.copy-gt`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) MEMORY.COPY_instr(x_1, x_2)]), [CONST_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) CONST_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(8), U_sx)), x_2, $memarg0) STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0) CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) MEMORY.COPY_instr(x_1, x_2)]) + rule `memory.copy-gt`{state#1475 : state, `instr*#1590` : instr*, z : state, numtype#304 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#306 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#308 : numtype, at' : addrtype, i#39081 : nat, n : n, memidx#143 : memidx, x_1 : idx, x_2 : idx, numtype#310 : numtype, i#39145 : nat, i#39135 : nat, numtype#312 : numtype, i#39181 : nat, i#39171 : nat, `numtype?#18` : numtype?, memidx#146 : memidx, memarg#85 : memarg, sz#514 : sz, sx#402 : sx, i#39207 : nat, i#39214 : nat, `numtype?#19` : numtype?, memidx#148 : memidx, memarg#87 : memarg, sz#527 : sz, i#39269 : nat, i#39270 : nat, numtype#316 : numtype, numtype#318 : numtype, numtype#320 : numtype, i#39330 : nat, memidx#150 : memidx}: + `%~>%`(`%;%`_config{state#1475, `instr*#1590`}(z, [`CONST`_instr{numtype#304}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#306}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#308}((at' : addrtype <: numtype), `%`_num_{i#39081}(n)) `MEMORY.COPY`_instr{memidx#143}(x_1, x_2)]), [`CONST`_instr{numtype#310}((at_1 : addrtype <: numtype), `%`_num_{i#39145}(((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr{numtype#312}((at_2 : addrtype <: numtype), `%`_num_{i#39181}(((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `LOAD`_instr{`numtype?#18`, memidx#146, memarg#85}(`I32`_numtype, ?(`%_%`_loadop_{sz#514, sx#402, i#39207}(`%`_sz{i#39214}(8), `U`_sx)), x_2, $memarg0) `STORE`_instr{`numtype?#19`, memidx#148, memarg#87}(`I32`_numtype, ?(`%`_storeop_{sz#527, i#39269}(`%`_sz{i#39270}(8))), x_1, $memarg0) `CONST`_instr{numtype#316}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#318}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#320}((at' : addrtype <: numtype), `%`_num_{i#39330}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr{memidx#150}(x_1, x_2)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.init-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) MEMORY.INIT_instr(x, y)]), [TRAP_instr]) - -- if (((i!`%`_num_.0 + n) > |$mem(z, x).BYTES_meminst|) \/ ((j!`%`_num_.0 + n) > |$data(z, y).BYTES_datainst|)) + rule `memory.init-oob`{state#1487 : state, `instr*#1602` : instr*, z : state, numtype#322 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#324 : numtype, j : num_(`I32`_numtype), numtype#326 : numtype, i#39410 : nat, n : n, memidx#153 : memidx, dataidx#17 : dataidx, x : idx, y : idx, i#39452 : nat, `byte*#1872` : byte*, i#39478 : nat, `byte*#1873` : byte*}: + `%~>%`(`%;%`_config{state#1487, `instr*#1602`}(z, [`CONST`_instr{numtype#322}((at : addrtype <: numtype), i) `CONST`_instr{numtype#324}(`I32`_numtype, j) `CONST`_instr{numtype#326}(`I32`_numtype, `%`_num_{i#39410}(n)) `MEMORY.INIT`_instr{memidx#153, dataidx#17}(x, y)]), [`TRAP`_instr]) + -- if (((i!`%`_num_{i#39452}.0 + n) > |$mem(z, x).`BYTES`_meminst{`byte*#1872`}|) \/ ((j!`%`_num_{i#39478}.0 + n) > |$data(z, y).`BYTES`_datainst{`byte*#1873`}|)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.init-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) MEMORY.INIT_instr(x, y)]), []) + rule `memory.init-zero`{state#1499 : state, `instr*#1614` : instr*, z : state, numtype#328 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#330 : numtype, j : num_(`I32`_numtype), numtype#332 : numtype, i#39542 : nat, n : n, memidx#155 : memidx, dataidx#19 : dataidx, x : idx, y : idx}: + `%~>%`(`%;%`_config{state#1499, `instr*#1614`}(z, [`CONST`_instr{numtype#328}((at : addrtype <: numtype), i) `CONST`_instr{numtype#330}(`I32`_numtype, j) `CONST`_instr{numtype#332}(`I32`_numtype, `%`_num_{i#39542}(n)) `MEMORY.INIT`_instr{memidx#155, dataidx#19}(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.init-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) MEMORY.INIT_instr(x, y)]), [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, `%`_num_($data(z, y).BYTES_datainst[j!`%`_num_.0]!`%`_byte.0)) STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0) CONST_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((j!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) MEMORY.INIT_instr(x, y)]) + rule `memory.init-succ`{state#1511 : state, `instr*#1626` : instr*, z : state, numtype#334 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#336 : numtype, j : num_(`I32`_numtype), numtype#338 : numtype, i#39622 : nat, n : n, memidx#157 : memidx, dataidx#21 : dataidx, x : idx, y : idx, numtype#340 : numtype, numtype#342 : numtype, i#39715 : nat, `byte*#1874` : byte*, i#39696 : nat, i#39714 : nat, `numtype?#20` : numtype?, memidx#159 : memidx, memarg#89 : memarg, sz#540 : sz, i#39757 : nat, i#39758 : nat, numtype#345 : numtype, i#39808 : nat, i#39798 : nat, numtype#347 : numtype, i#39844 : nat, i#39834 : nat, numtype#349 : numtype, i#39866 : nat, memidx#161 : memidx, dataidx#23 : dataidx}: + `%~>%`(`%;%`_config{state#1511, `instr*#1626`}(z, [`CONST`_instr{numtype#334}((at : addrtype <: numtype), i) `CONST`_instr{numtype#336}(`I32`_numtype, j) `CONST`_instr{numtype#338}(`I32`_numtype, `%`_num_{i#39622}(n)) `MEMORY.INIT`_instr{memidx#157, dataidx#21}(x, y)]), [`CONST`_instr{numtype#340}((at : addrtype <: numtype), i) `CONST`_instr{numtype#342}(`I32`_numtype, `%`_num_{i#39715}($data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0)) `STORE`_instr{`numtype?#20`, memidx#159, memarg#89}(`I32`_numtype, ?(`%`_storeop_{sz#540, i#39757}(`%`_sz{i#39758}(8))), x, $memarg0) `CONST`_instr{numtype#345}((at : addrtype <: numtype), `%`_num_{i#39808}((i!`%`_num_{i#39798}.0 + 1))) `CONST`_instr{numtype#347}(`I32`_numtype, `%`_num_{i#39844}((j!`%`_num_{i#39834}.0 + 1))) `CONST`_instr{numtype#349}(`I32`_numtype, `%`_num_{i#39866}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.INIT`_instr{memidx#161, dataidx#23}(x, y)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.null-idx`{z : state, x : idx}: - `%~>%`(`%;%`_config(z, [REF.NULL_instr(_IDX_heaptype(x))]), [REF.NULL_instr(($type(z, x) : deftype <: heaptype))]) + rule `ref.null-idx`{state#1547 : state, `instr*#1662` : instr*, z : state, heaptype#1343 : heaptype, typeidx#1555 : typeidx, x : idx, heaptype#1345 : heaptype}: + `%~>%`(`%;%`_config{state#1547, `instr*#1662`}(z, [`REF.NULL`_instr{heaptype#1343}(`_IDX`_heaptype{typeidx#1555}(x))]), [`REF.NULL`_instr{heaptype#1345}(($type(z, x) : deftype <: heaptype))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule ref.func{z : state, x : idx}: - `%~>%`(`%;%`_config(z, [REF.FUNC_instr(x)]), [REF.FUNC_ADDR_instr($moduleinst(z).FUNCS_moduleinst[x!`%`_idx.0])]) + rule ref.func{state#1559 : state, `instr*#1674` : instr*, z : state, funcidx#2841 : funcidx, x : idx, funcaddr#17 : funcaddr, `funcaddr*#4` : funcaddr*, i#39970 : nat}: + `%~>%`(`%;%`_config{state#1559, `instr*#1674`}(z, [`REF.FUNC`_instr{funcidx#2841}(x)]), [`REF.FUNC_ADDR`_instr{funcaddr#17}($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#4`}[x!`%`_idx{i#39970}.0])]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.test-true`{s : store, f : frame, ref : ref, rt : reftype, rt' : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) REF.TEST_instr(rt)]), [CONST_instr(I32_numtype, `%`_num_(1))]) + rule `ref.test-true`{state#1571 : state, `instr*#1686` : instr*, store#1913 : store, frame#1931 : frame, s : store, f : frame, ref : ref, reftype#3467 : reftype, rt : reftype, numtype#363 : numtype, i#40142 : nat, rt' : reftype, `deftype*#90` : deftype*, `subtype*#23` : subtype*, `tagtype*#24` : tagtype*, `globaltype*#25` : globaltype*, `memtype*#39` : memtype*, `tabletype*#32` : tabletype*, `deftype*#91` : deftype*, `datatype*#24` : datatype*, `elemtype*#24` : elemtype*, `localtype*#27` : localtype*, `resulttype*#35` : resulttype*, `resulttype?#32` : resulttype?, `funcidx*#61` : funcidx*, moduleinst#23 : moduleinst}: + `%~>%`(`%;%`_config{state#1571, `instr*#1686`}(`%;%`_state{store#1913, frame#1931}(s, f), [(ref : ref <: instr) `REF.TEST`_instr{reftype#3467}(rt)]), [`CONST`_instr{numtype#363}(`I32`_numtype, `%`_num_{i#40142}(1))]) -- Ref_ok: `%|-%:%`(s, ref, rt') - -- Reftype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, rt', $inst_reftype(f.MODULE_frame, rt)) + -- Reftype_sub: `%|-%<:%`({`TYPES`{`deftype*#90`} [], `RECS`{`subtype*#23`} [], `TAGS`{`tagtype*#24`} [], `GLOBALS`{`globaltype*#25`} [], `MEMS`{`memtype*#39`} [], `TABLES`{`tabletype*#32`} [], `FUNCS`{`deftype*#91`} [], `DATAS`{`datatype*#24`} [], `ELEMS`{`elemtype*#24`} [], `LOCALS`{`localtype*#27`} [], `LABELS`{`resulttype*#35`} [], `RETURN`{`resulttype?#32`} ?(), `REFS`{`funcidx*#61`} []}, rt', $inst_reftype(f.`MODULE`_frame{moduleinst#23}, rt)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.test-false`{s : store, f : frame, ref : ref, rt : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) REF.TEST_instr(rt)]), [CONST_instr(I32_numtype, `%`_num_(0))]) + rule `ref.test-false`{state#1583 : state, `instr*#1698` : instr*, store#1925 : store, frame#1943 : frame, s : store, f : frame, ref : ref, reftype#3469 : reftype, rt : reftype, numtype#365 : numtype, i#40164 : nat}: + `%~>%`(`%;%`_config{state#1583, `instr*#1698`}(`%;%`_state{store#1925, frame#1943}(s, f), [(ref : ref <: instr) `REF.TEST`_instr{reftype#3469}(rt)]), [`CONST`_instr{numtype#365}(`I32`_numtype, `%`_num_{i#40164}(0))]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.cast-succeed`{s : store, f : frame, ref : ref, rt : reftype, rt' : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) REF.CAST_instr(rt)]), [(ref : ref <: instr)]) + rule `ref.cast-succeed`{state#1595 : state, `instr*#1710` : instr*, store#1937 : store, frame#1955 : frame, s : store, f : frame, ref : ref, reftype#3471 : reftype, rt : reftype, rt' : reftype, `deftype*#92` : deftype*, `subtype*#24` : subtype*, `tagtype*#25` : tagtype*, `globaltype*#26` : globaltype*, `memtype*#40` : memtype*, `tabletype*#33` : tabletype*, `deftype*#93` : deftype*, `datatype*#25` : datatype*, `elemtype*#25` : elemtype*, `localtype*#28` : localtype*, `resulttype*#36` : resulttype*, `resulttype?#33` : resulttype?, `funcidx*#62` : funcidx*, moduleinst#24 : moduleinst}: + `%~>%`(`%;%`_config{state#1595, `instr*#1710`}(`%;%`_state{store#1937, frame#1955}(s, f), [(ref : ref <: instr) `REF.CAST`_instr{reftype#3471}(rt)]), [(ref : ref <: instr)]) -- Ref_ok: `%|-%:%`(s, ref, rt') - -- Reftype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, rt', $inst_reftype(f.MODULE_frame, rt)) + -- Reftype_sub: `%|-%<:%`({`TYPES`{`deftype*#92`} [], `RECS`{`subtype*#24`} [], `TAGS`{`tagtype*#25`} [], `GLOBALS`{`globaltype*#26`} [], `MEMS`{`memtype*#40`} [], `TABLES`{`tabletype*#33`} [], `FUNCS`{`deftype*#93`} [], `DATAS`{`datatype*#25`} [], `ELEMS`{`elemtype*#25`} [], `LOCALS`{`localtype*#28`} [], `LABELS`{`resulttype*#36`} [], `RETURN`{`resulttype?#33`} ?(), `REFS`{`funcidx*#62`} []}, rt', $inst_reftype(f.`MODULE`_frame{moduleinst#24}, rt)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.cast-fail`{s : store, f : frame, ref : ref, rt : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) REF.CAST_instr(rt)]), [TRAP_instr]) + rule `ref.cast-fail`{state#1607 : state, `instr*#1722` : instr*, store#1949 : store, frame#1967 : frame, s : store, f : frame, ref : ref, reftype#3473 : reftype, rt : reftype}: + `%~>%`(`%;%`_config{state#1607, `instr*#1722`}(`%;%`_state{store#1949, frame#1967}(s, f), [(ref : ref <: instr) `REF.CAST`_instr{reftype#3473}(rt)]), [`TRAP`_instr]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule struct.new_default{z : state, x : idx, `val*` : val*, `mut?*` : mut?*, `zt*` : storagetype*}: - `%~>%`(`%;%`_config(z, [STRUCT.NEW_DEFAULT_instr(x)]), (val : val <: instr)*{val <- `val*`} ++ [STRUCT.NEW_instr(x)]) - -- Expand: `%~~%`($type(z, x), STRUCT_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) + rule struct.new_default{state#1643 : state, `instr*#1758` : instr*, z : state, typeidx#1559 : typeidx, x : idx, `val*` : val*, typeidx#1561 : typeidx, `X*#12683` : fieldtype*, `mut?*` : mut?*, `mut?#1049*` : mut?*, `storagetype#587*` : storagetype*, `zt*` : storagetype*}: + `%~>%`(`%;%`_config{state#1643, `instr*#1758`}(z, [`STRUCT.NEW_DEFAULT`_instr{typeidx#1559}(x)]), (val : val <: instr)*{val <- `val*`} ++ [`STRUCT.NEW`_instr{typeidx#1561}(x)]) + -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12683`}(`%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`}))) -- (if ($default_($unpack(zt)) = ?(val)))*{val <- `val*`, zt <- `zt*`} ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `struct.get-null`{z : state, ht : heaptype, `sx?` : sx?, x : idx, i : u32}: - `%~>%`(`%;%`_config(z, [REF.NULL_instr(ht) STRUCT.GET_instr(sx?{sx <- `sx?`}, x, i)]), [TRAP_instr]) + rule `struct.get-null`{state#1655 : state, `instr*#1770` : instr*, z : state, heaptype#1429 : heaptype, ht : heaptype, `sx?#13` : sx?, typeidx#1563 : typeidx, u32#17 : u32, `sx?` : sx?, x : idx, i : u32}: + `%~>%`(`%;%`_config{state#1655, `instr*#1770`}(z, [`REF.NULL`_instr{heaptype#1429}(ht) `STRUCT.GET`_instr{`sx?#13`, typeidx#1563, u32#17}(sx?{sx <- `sx?`}, x, i)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `struct.get-struct`{z : state, a : addr, `sx?` : sx?, x : idx, i : u32, `zt*` : storagetype*, `mut?*` : mut?*}: - `%~>%`(`%;%`_config(z, [REF.STRUCT_ADDR_instr(a) STRUCT.GET_instr(sx?{sx <- `sx?`}, x, i)]), [($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], sx?{sx <- `sx?`}, $structinst(z)[a].FIELDS_structinst[i!`%`_u32.0]) : val <: instr)]) - -- Expand: `%~~%`($type(z, x), STRUCT_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) + rule `struct.get-struct`{state#1667 : state, `instr*#1782` : instr*, z : state, structaddr#5 : structaddr, a : addr, `sx?#15` : sx?, typeidx#1565 : typeidx, u32#19 : u32, `sx?` : sx?, x : idx, i : u32, `zt*` : storagetype*, i#40378 : nat, `fieldval*#4` : fieldval*, i#40388 : nat, `X*#12698` : fieldtype*, `mut?*` : mut?*, `mut?#1067*` : mut?*, `storagetype#605*` : storagetype*}: + `%~>%`(`%;%`_config{state#1667, `instr*#1782`}(z, [`REF.STRUCT_ADDR`_instr{structaddr#5}(a) `STRUCT.GET`_instr{`sx?#15`, typeidx#1565, u32#19}(sx?{sx <- `sx?`}, x, i)]), [($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40378}.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst{`fieldval*#4`}[i!`%`_u32{i#40388}.0]) : val <: instr)]) + -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12698`}(`%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule array.new_default{z : state, n : n, x : idx, val : val, `mut?` : mut?, zt : storagetype}: - `%~>%`(`%;%`_config(z, [CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.NEW_DEFAULT_instr(x)]), (val : val <: instr)^n{} ++ [ARRAY.NEW_FIXED_instr(x, `%`_u32(n))]) - -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule array.new_default{state#1727 : state, `instr*#1842` : instr*, z : state, numtype#371 : numtype, i#40588 : nat, n : n, typeidx#1575 : typeidx, x : idx, val : val, typeidx#1577 : typeidx, u32#27 : u32, i#40640 : nat, fieldtype#39 : fieldtype, `mut?#1097` : mut?, storagetype#635 : storagetype, `mut?` : mut?, zt : storagetype}: + `%~>%`(`%;%`_config{state#1727, `instr*#1842`}(z, [`CONST`_instr{numtype#371}(`I32`_numtype, `%`_num_{i#40588}(n)) `ARRAY.NEW_DEFAULT`_instr{typeidx#1575}(x)]), (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1577, u32#27}(x, `%`_u32{i#40640}(n))]) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#39}(`%%`_fieldtype{`mut?#1097`, storagetype#635}(mut?{mut <- `mut?`}, zt))) -- if ($default_($unpack(zt)) = ?(val)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.new_elem-oob`{z : state, i : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.NEW_ELEM_instr(x, y)]), [TRAP_instr]) - -- if ((i!`%`_num_.0 + n) > |$elem(z, y).REFS_eleminst|) + rule `array.new_elem-oob`{state#1763 : state, `instr*#1878` : instr*, z : state, numtype#373 : numtype, i : num_(`I32`_numtype), numtype#375 : numtype, i#40752 : nat, n : n, typeidx#1581 : typeidx, elemidx#27 : elemidx, x : idx, y : idx, i#40794 : nat, `ref*#18` : ref*}: + `%~>%`(`%;%`_config{state#1763, `instr*#1878`}(z, [`CONST`_instr{numtype#373}(`I32`_numtype, i) `CONST`_instr{numtype#375}(`I32`_numtype, `%`_num_{i#40752}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1581, elemidx#27}(x, y)]), [`TRAP`_instr]) + -- if ((i!`%`_num_{i#40794}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#18`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.new_elem-alloc`{z : state, i : num_(I32_numtype), n : n, x : idx, y : idx, `ref*` : ref*}: - `%~>%`(`%;%`_config(z, [CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.NEW_ELEM_instr(x, y)]), (ref : ref <: instr)^n{ref <- `ref*`} ++ [ARRAY.NEW_FIXED_instr(x, `%`_u32(n))]) - -- if (ref^n{ref <- `ref*`} = $elem(z, y).REFS_eleminst[i!`%`_num_.0 : n]) + rule `array.new_elem-alloc`{state#1775 : state, `instr*#1890` : instr*, z : state, numtype#377 : numtype, i : num_(`I32`_numtype), numtype#379 : numtype, i#40844 : nat, n : n, typeidx#1583 : typeidx, elemidx#29 : elemidx, x : idx, y : idx, `ref*` : ref*, typeidx#1585 : typeidx, u32#31 : u32, i#40910 : nat, `ref*#19` : ref*, i#40932 : nat}: + `%~>%`(`%;%`_config{state#1775, `instr*#1890`}(z, [`CONST`_instr{numtype#377}(`I32`_numtype, i) `CONST`_instr{numtype#379}(`I32`_numtype, `%`_num_{i#40844}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1583, elemidx#29}(x, y)]), (ref : ref <: instr)^n{ref <- `ref*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1585, u32#31}(x, `%`_u32{i#40910}(n))]) + -- if (ref^n{ref <- `ref*`} = $elem(z, y).`REFS`_eleminst{`ref*#19`}[i!`%`_num_{i#40932}.0 : n]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.new_data-oob`{z : state, i : num_(I32_numtype), n : n, x : idx, y : idx, `mut?` : mut?, zt : storagetype}: - `%~>%`(`%;%`_config(z, [CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.NEW_DATA_instr(x, y)]), [TRAP_instr]) - -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) - -- if ((i!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).BYTES_datainst|) + rule `array.new_data-oob`{state#1787 : state, `instr*#1902` : instr*, z : state, numtype#381 : numtype, i : num_(`I32`_numtype), numtype#383 : numtype, i#40970 : nat, n : n, typeidx#1587 : typeidx, dataidx#27 : dataidx, x : idx, y : idx, fieldtype#43 : fieldtype, `mut?#1121` : mut?, storagetype#659 : storagetype, `mut?` : mut?, zt : storagetype, i#41024 : nat, `byte*#1875` : byte*}: + `%~>%`(`%;%`_config{state#1787, `instr*#1902`}(z, [`CONST`_instr{numtype#381}(`I32`_numtype, i) `CONST`_instr{numtype#383}(`I32`_numtype, `%`_num_{i#40970}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1587, dataidx#27}(x, y)]), [`TRAP`_instr]) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#43}(`%%`_fieldtype{`mut?#1121`, storagetype#659}(mut?{mut <- `mut?`}, zt))) + -- if ((i!`%`_num_{i#41024}.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst{`byte*#1875`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.new_data-num`{z : state, i : num_(I32_numtype), n : n, x : idx, y : idx, zt : storagetype, `c*` : lit_(zt)*, `mut?` : mut?}: - `%~>%`(`%;%`_config(z, [CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.NEW_DATA_instr(x, y)]), $const($cunpack(zt), $cunpacknum_(zt, c))^n{c <- `c*`} ++ [ARRAY.NEW_FIXED_instr(x, `%`_u32(n))]) - -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) - -- if ($concatn_(syntax byte, $zbytes_(zt, c)^n{c <- `c*`}, ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) = $data(z, y).BYTES_datainst[i!`%`_num_.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `array.new_data-num`{state#1799 : state, `instr*#1914` : instr*, z : state, numtype#385 : numtype, i : num_(`I32`_numtype), numtype#387 : numtype, i#41074 : nat, n : n, typeidx#1589 : typeidx, dataidx#29 : dataidx, x : idx, y : idx, zt : storagetype, `c*` : lit_(zt)*, typeidx#1591 : typeidx, u32#33 : u32, i#41140 : nat, fieldtype#45 : fieldtype, `mut?#1133` : mut?, storagetype#671 : storagetype, `mut?` : mut?, `byte*#1876` : byte*, i#41174 : nat}: + `%~>%`(`%;%`_config{state#1799, `instr*#1914`}(z, [`CONST`_instr{numtype#385}(`I32`_numtype, i) `CONST`_instr{numtype#387}(`I32`_numtype, `%`_num_{i#41074}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1589, dataidx#29}(x, y)]), $const($cunpack(zt), $cunpacknum_(zt, c))^n{c <- `c*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1591, u32#33}(x, `%`_u32{i#41140}(n))]) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#45}(`%%`_fieldtype{`mut?#1133`, storagetype#671}(mut?{mut <- `mut?`}, zt))) + -- if ($concatn_(syntax byte, $zbytes_(zt, c)^n{c <- `c*`}, ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) = $data(z, y).`BYTES`_datainst{`byte*#1876`}[i!`%`_num_{i#41174}.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.get-null`{z : state, ht : heaptype, i : num_(I32_numtype), `sx?` : sx?, x : idx}: - `%~>%`(`%;%`_config(z, [REF.NULL_instr(ht) CONST_instr(I32_numtype, i) ARRAY.GET_instr(sx?{sx <- `sx?`}, x)]), [TRAP_instr]) + rule `array.get-null`{state#1811 : state, `instr*#1926` : instr*, z : state, heaptype#1433 : heaptype, ht : heaptype, numtype#389 : numtype, i : num_(`I32`_numtype), `sx?#17` : sx?, typeidx#1593 : typeidx, `sx?` : sx?, x : idx}: + `%~>%`(`%;%`_config{state#1811, `instr*#1926`}(z, [`REF.NULL`_instr{heaptype#1433}(ht) `CONST`_instr{numtype#389}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#17`, typeidx#1593}(sx?{sx <- `sx?`}, x)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.get-oob`{z : state, a : addr, i : num_(I32_numtype), `sx?` : sx?, x : idx}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) ARRAY.GET_instr(sx?{sx <- `sx?`}, x)]), [TRAP_instr]) - -- if (i!`%`_num_.0 >= |$arrayinst(z)[a].FIELDS_arrayinst|) + rule `array.get-oob`{state#1823 : state, `instr*#1938` : instr*, z : state, arrayaddr#5 : arrayaddr, a : addr, numtype#391 : numtype, i : num_(`I32`_numtype), `sx?#19` : sx?, typeidx#1595 : typeidx, `sx?` : sx?, x : idx, i#41392 : nat, `fieldval*#6` : fieldval*}: + `%~>%`(`%;%`_config{state#1823, `instr*#1938`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#5}(a) `CONST`_instr{numtype#391}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#19`, typeidx#1595}(sx?{sx <- `sx?`}, x)]), [`TRAP`_instr]) + -- if (i!`%`_num_{i#41392}.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#6`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.get-array`{z : state, a : addr, i : num_(I32_numtype), `sx?` : sx?, x : idx, zt : storagetype, `mut?` : mut?}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) ARRAY.GET_instr(sx?{sx <- `sx?`}, x)]), [($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].FIELDS_arrayinst[i!`%`_num_.0]) : val <: instr)]) - -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule `array.get-array`{state#1835 : state, `instr*#1950` : instr*, z : state, arrayaddr#7 : arrayaddr, a : addr, numtype#393 : numtype, i : num_(`I32`_numtype), `sx?#21` : sx?, typeidx#1597 : typeidx, `sx?` : sx?, x : idx, zt : storagetype, `fieldval*#7` : fieldval*, i#41467 : nat, fieldtype#47 : fieldtype, `mut?#1145` : mut?, storagetype#683 : storagetype, `mut?` : mut?}: + `%~>%`(`%;%`_config{state#1835, `instr*#1950`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#7}(a) `CONST`_instr{numtype#393}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#21`, typeidx#1597}(sx?{sx <- `sx?`}, x)]), [($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#7`}[i!`%`_num_{i#41467}.0]) : val <: instr)]) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#47}(`%%`_fieldtype{`mut?#1145`, storagetype#683}(mut?{mut <- `mut?`}, zt))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.len-null`{z : state, ht : heaptype}: - `%~>%`(`%;%`_config(z, [REF.NULL_instr(ht) ARRAY.LEN_instr]), [TRAP_instr]) + rule `array.len-null`{state#1919 : state, `instr*#2034` : instr*, z : state, heaptype#1437 : heaptype, ht : heaptype}: + `%~>%`(`%;%`_config{state#1919, `instr*#2034`}(z, [`REF.NULL`_instr{heaptype#1437}(ht) `ARRAY.LEN`_instr]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.len-array`{z : state, a : addr}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) ARRAY.LEN_instr]), [CONST_instr(I32_numtype, `%`_num_(|$arrayinst(z)[a].FIELDS_arrayinst|))]) + rule `array.len-array`{state#1931 : state, `instr*#2046` : instr*, z : state, arrayaddr#13 : arrayaddr, a : addr, numtype#401 : numtype, i#41621 : nat, `fieldval*#9` : fieldval*}: + `%~>%`(`%;%`_config{state#1931, `instr*#2046`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#13}(a) `ARRAY.LEN`_instr]), [`CONST`_instr{numtype#401}(`I32`_numtype, `%`_num_{i#41621}(|$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.fill-null`{z : state, ht : heaptype, i : num_(I32_numtype), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [REF.NULL_instr(ht) CONST_instr(I32_numtype, i) (val : val <: instr) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.FILL_instr(x)]), [TRAP_instr]) + rule `array.fill-null`{state#1943 : state, `instr*#2058` : instr*, z : state, heaptype#1439 : heaptype, ht : heaptype, numtype#403 : numtype, i : num_(`I32`_numtype), val : val, numtype#405 : numtype, i#41659 : nat, n : n, typeidx#1605 : typeidx, x : idx}: + `%~>%`(`%;%`_config{state#1943, `instr*#2058`}(z, [`REF.NULL`_instr{heaptype#1439}(ht) `CONST`_instr{numtype#403}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#405}(`I32`_numtype, `%`_num_{i#41659}(n)) `ARRAY.FILL`_instr{typeidx#1605}(x)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.fill-oob`{z : state, a : addr, i : num_(I32_numtype), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) (val : val <: instr) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.FILL_instr(x)]), [TRAP_instr]) - -- if ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].FIELDS_arrayinst|) + rule `array.fill-oob`{state#1955 : state, `instr*#2070` : instr*, z : state, arrayaddr#15 : arrayaddr, a : addr, numtype#407 : numtype, i : num_(`I32`_numtype), val : val, numtype#409 : numtype, i#41711 : nat, n : n, typeidx#1607 : typeidx, x : idx, i#41739 : nat, `fieldval*#10` : fieldval*}: + `%~>%`(`%;%`_config{state#1955, `instr*#2070`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#15}(a) `CONST`_instr{numtype#407}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#409}(`I32`_numtype, `%`_num_{i#41711}(n)) `ARRAY.FILL`_instr{typeidx#1607}(x)]), [`TRAP`_instr]) + -- if ((i!`%`_num_{i#41739}.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#10`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.fill-zero`{z : state, a : addr, i : num_(I32_numtype), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) (val : val <: instr) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.FILL_instr(x)]), []) + rule `array.fill-zero`{state#1967 : state, `instr*#2082` : instr*, z : state, arrayaddr#17 : arrayaddr, a : addr, numtype#411 : numtype, i : num_(`I32`_numtype), val : val, numtype#413 : numtype, i#41777 : nat, n : n, typeidx#1609 : typeidx, x : idx}: + `%~>%`(`%;%`_config{state#1967, `instr*#2082`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#17}(a) `CONST`_instr{numtype#411}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#413}(`I32`_numtype, `%`_num_{i#41777}(n)) `ARRAY.FILL`_instr{typeidx#1609}(x)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.fill-succ`{z : state, a : addr, i : num_(I32_numtype), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) (val : val <: instr) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.FILL_instr(x)]), [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) (val : val <: instr) ARRAY.SET_instr(x) REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) ARRAY.FILL_instr(x)]) + rule `array.fill-succ`{state#1979 : state, `instr*#2094` : instr*, z : state, arrayaddr#19 : arrayaddr, a : addr, numtype#415 : numtype, i : num_(`I32`_numtype), val : val, numtype#417 : numtype, i#41829 : nat, n : n, typeidx#1611 : typeidx, x : idx, arrayaddr#21 : arrayaddr, numtype#419 : numtype, typeidx#1613 : typeidx, arrayaddr#23 : arrayaddr, numtype#421 : numtype, i#41905 : nat, i#41895 : nat, numtype#423 : numtype, i#41927 : nat, typeidx#1615 : typeidx}: + `%~>%`(`%;%`_config{state#1979, `instr*#2094`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#19}(a) `CONST`_instr{numtype#415}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#417}(`I32`_numtype, `%`_num_{i#41829}(n)) `ARRAY.FILL`_instr{typeidx#1611}(x)]), [`REF.ARRAY_ADDR`_instr{arrayaddr#21}(a) `CONST`_instr{numtype#419}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1613}(x) `REF.ARRAY_ADDR`_instr{arrayaddr#23}(a) `CONST`_instr{numtype#421}(`I32`_numtype, `%`_num_{i#41905}((i!`%`_num_{i#41895}.0 + 1))) (val : val <: instr) `CONST`_instr{numtype#423}(`I32`_numtype, `%`_num_{i#41927}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.FILL`_instr{typeidx#1615}(x)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-null1`{z : state, ht_1 : heaptype, i_1 : num_(I32_numtype), ref : ref, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [REF.NULL_instr(ht_1) CONST_instr(I32_numtype, i_1) (ref : ref <: instr) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.COPY_instr(x_1, x_2)]), [TRAP_instr]) + rule `array.copy-null1`{state#1991 : state, `instr*#2106` : instr*, z : state, heaptype#1441 : heaptype, ht_1 : heaptype, numtype#425 : numtype, i_1 : num_(`I32`_numtype), ref : ref, numtype#427 : numtype, i_2 : num_(`I32`_numtype), numtype#429 : numtype, i#41993 : nat, n : n, typeidx#1617 : typeidx, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config{state#1991, `instr*#2106`}(z, [`REF.NULL`_instr{heaptype#1441}(ht_1) `CONST`_instr{numtype#425}(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr{numtype#427}(`I32`_numtype, i_2) `CONST`_instr{numtype#429}(`I32`_numtype, `%`_num_{i#41993}(n)) `ARRAY.COPY`_instr{typeidx#1617}(x_1, x_2)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-null2`{z : state, ref : ref, i_1 : num_(I32_numtype), ht_2 : heaptype, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [(ref : ref <: instr) CONST_instr(I32_numtype, i_1) REF.NULL_instr(ht_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.COPY_instr(x_1, x_2)]), [TRAP_instr]) + rule `array.copy-null2`{state#2003 : state, `instr*#2118` : instr*, z : state, ref : ref, numtype#431 : numtype, i_1 : num_(`I32`_numtype), heaptype#1443 : heaptype, ht_2 : heaptype, numtype#433 : numtype, i_2 : num_(`I32`_numtype), numtype#435 : numtype, i#42073 : nat, n : n, typeidx#1620 : typeidx, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config{state#2003, `instr*#2118`}(z, [(ref : ref <: instr) `CONST`_instr{numtype#431}(`I32`_numtype, i_1) `REF.NULL`_instr{heaptype#1443}(ht_2) `CONST`_instr{numtype#433}(`I32`_numtype, i_2) `CONST`_instr{numtype#435}(`I32`_numtype, `%`_num_{i#42073}(n)) `ARRAY.COPY`_instr{typeidx#1620}(x_1, x_2)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-oob1`{z : state, a_1 : addr, i_1 : num_(I32_numtype), a_2 : addr, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a_1) CONST_instr(I32_numtype, i_1) REF.ARRAY_ADDR_instr(a_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.COPY_instr(x_1, x_2)]), [TRAP_instr]) - -- if ((i_1!`%`_num_.0 + n) > |$arrayinst(z)[a_1].FIELDS_arrayinst|) + rule `array.copy-oob1`{state#2015 : state, `instr*#2130` : instr*, z : state, arrayaddr#25 : arrayaddr, a_1 : addr, numtype#437 : numtype, i_1 : num_(`I32`_numtype), arrayaddr#27 : arrayaddr, a_2 : addr, numtype#439 : numtype, i_2 : num_(`I32`_numtype), numtype#441 : numtype, i#42153 : nat, n : n, typeidx#1623 : typeidx, x_1 : idx, x_2 : idx, i#42195 : nat, `fieldval*#11` : fieldval*}: + `%~>%`(`%;%`_config{state#2015, `instr*#2130`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#25}(a_1) `CONST`_instr{numtype#437}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#27}(a_2) `CONST`_instr{numtype#439}(`I32`_numtype, i_2) `CONST`_instr{numtype#441}(`I32`_numtype, `%`_num_{i#42153}(n)) `ARRAY.COPY`_instr{typeidx#1623}(x_1, x_2)]), [`TRAP`_instr]) + -- if ((i_1!`%`_num_{i#42195}.0 + n) > |$arrayinst(z)[a_1].`FIELDS`_arrayinst{`fieldval*#11`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-oob2`{z : state, a_1 : addr, i_1 : num_(I32_numtype), a_2 : addr, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a_1) CONST_instr(I32_numtype, i_1) REF.ARRAY_ADDR_instr(a_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.COPY_instr(x_1, x_2)]), [TRAP_instr]) - -- if ((i_2!`%`_num_.0 + n) > |$arrayinst(z)[a_2].FIELDS_arrayinst|) + rule `array.copy-oob2`{state#2027 : state, `instr*#2142` : instr*, z : state, arrayaddr#29 : arrayaddr, a_1 : addr, numtype#443 : numtype, i_1 : num_(`I32`_numtype), arrayaddr#31 : arrayaddr, a_2 : addr, numtype#445 : numtype, i_2 : num_(`I32`_numtype), numtype#447 : numtype, i#42247 : nat, n : n, typeidx#1626 : typeidx, x_1 : idx, x_2 : idx, i#42289 : nat, `fieldval*#12` : fieldval*}: + `%~>%`(`%;%`_config{state#2027, `instr*#2142`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#29}(a_1) `CONST`_instr{numtype#443}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#31}(a_2) `CONST`_instr{numtype#445}(`I32`_numtype, i_2) `CONST`_instr{numtype#447}(`I32`_numtype, `%`_num_{i#42247}(n)) `ARRAY.COPY`_instr{typeidx#1626}(x_1, x_2)]), [`TRAP`_instr]) + -- if ((i_2!`%`_num_{i#42289}.0 + n) > |$arrayinst(z)[a_2].`FIELDS`_arrayinst{`fieldval*#12`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-zero`{z : state, a_1 : addr, i_1 : num_(I32_numtype), a_2 : addr, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a_1) CONST_instr(I32_numtype, i_1) REF.ARRAY_ADDR_instr(a_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.COPY_instr(x_1, x_2)]), []) + rule `array.copy-zero`{state#2039 : state, `instr*#2154` : instr*, z : state, arrayaddr#33 : arrayaddr, a_1 : addr, numtype#449 : numtype, i_1 : num_(`I32`_numtype), arrayaddr#35 : arrayaddr, a_2 : addr, numtype#451 : numtype, i_2 : num_(`I32`_numtype), numtype#453 : numtype, i#42341 : nat, n : n, typeidx#1629 : typeidx, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config{state#2039, `instr*#2154`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#33}(a_1) `CONST`_instr{numtype#449}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#35}(a_2) `CONST`_instr{numtype#451}(`I32`_numtype, i_2) `CONST`_instr{numtype#453}(`I32`_numtype, `%`_num_{i#42341}(n)) `ARRAY.COPY`_instr{typeidx#1629}(x_1, x_2)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-le`{z : state, a_1 : addr, i_1 : num_(I32_numtype), a_2 : addr, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx, `sx?` : sx?, `mut?` : mut?, zt_2 : storagetype}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a_1) CONST_instr(I32_numtype, i_1) REF.ARRAY_ADDR_instr(a_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.COPY_instr(x_1, x_2)]), [REF.ARRAY_ADDR_instr(a_1) CONST_instr(I32_numtype, i_1) REF.ARRAY_ADDR_instr(a_2) CONST_instr(I32_numtype, i_2) ARRAY.GET_instr(sx?{sx <- `sx?`}, x_2) ARRAY.SET_instr(x_1) REF.ARRAY_ADDR_instr(a_1) CONST_instr(I32_numtype, `%`_num_((i_1!`%`_num_.0 + 1))) REF.ARRAY_ADDR_instr(a_2) CONST_instr(I32_numtype, `%`_num_((i_2!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) ARRAY.COPY_instr(x_1, x_2)]) + rule `array.copy-le`{state#2051 : state, `instr*#2166` : instr*, z : state, arrayaddr#37 : arrayaddr, a_1 : addr, numtype#455 : numtype, i_1 : num_(`I32`_numtype), arrayaddr#39 : arrayaddr, a_2 : addr, numtype#457 : numtype, i_2 : num_(`I32`_numtype), numtype#459 : numtype, i#42421 : nat, n : n, typeidx#1632 : typeidx, x_1 : idx, x_2 : idx, arrayaddr#41 : arrayaddr, numtype#461 : numtype, arrayaddr#43 : arrayaddr, numtype#463 : numtype, `sx?#23` : sx?, typeidx#1635 : typeidx, `sx?` : sx?, typeidx#1637 : typeidx, arrayaddr#45 : arrayaddr, numtype#465 : numtype, i#42574 : nat, i#42564 : nat, arrayaddr#47 : arrayaddr, numtype#467 : numtype, i#42610 : nat, i#42600 : nat, numtype#469 : numtype, i#42632 : nat, typeidx#1639 : typeidx, fieldtype#51 : fieldtype, `mut?#1169` : mut?, storagetype#707 : storagetype, `mut?` : mut?, zt_2 : storagetype, i#42690 : nat, i#42700 : nat}: + `%~>%`(`%;%`_config{state#2051, `instr*#2166`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#37}(a_1) `CONST`_instr{numtype#455}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#39}(a_2) `CONST`_instr{numtype#457}(`I32`_numtype, i_2) `CONST`_instr{numtype#459}(`I32`_numtype, `%`_num_{i#42421}(n)) `ARRAY.COPY`_instr{typeidx#1632}(x_1, x_2)]), [`REF.ARRAY_ADDR`_instr{arrayaddr#41}(a_1) `CONST`_instr{numtype#461}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#43}(a_2) `CONST`_instr{numtype#463}(`I32`_numtype, i_2) `ARRAY.GET`_instr{`sx?#23`, typeidx#1635}(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr{typeidx#1637}(x_1) `REF.ARRAY_ADDR`_instr{arrayaddr#45}(a_1) `CONST`_instr{numtype#465}(`I32`_numtype, `%`_num_{i#42574}((i_1!`%`_num_{i#42564}.0 + 1))) `REF.ARRAY_ADDR`_instr{arrayaddr#47}(a_2) `CONST`_instr{numtype#467}(`I32`_numtype, `%`_num_{i#42610}((i_2!`%`_num_{i#42600}.0 + 1))) `CONST`_instr{numtype#469}(`I32`_numtype, `%`_num_{i#42632}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr{typeidx#1639}(x_1, x_2)]) -- otherwise - -- Expand: `%~~%`($type(z, x_2), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))) - -- if ((i_1!`%`_num_.0 <= i_2!`%`_num_.0) /\ (sx?{sx <- `sx?`} = $sx(zt_2))) + -- Expand: `%~~%`($type(z, x_2), `ARRAY`_comptype{fieldtype#51}(`%%`_fieldtype{`mut?#1169`, storagetype#707}(mut?{mut <- `mut?`}, zt_2))) + -- if ((i_1!`%`_num_{i#42690}.0 <= i_2!`%`_num_{i#42700}.0) /\ (sx?{sx <- `sx?`} = $sx(zt_2))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-gt`{z : state, a_1 : addr, i_1 : num_(I32_numtype), a_2 : addr, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx, `sx?` : sx?, `mut?` : mut?, zt_2 : storagetype}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a_1) CONST_instr(I32_numtype, i_1) REF.ARRAY_ADDR_instr(a_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.COPY_instr(x_1, x_2)]), [REF.ARRAY_ADDR_instr(a_1) CONST_instr(I32_numtype, `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) REF.ARRAY_ADDR_instr(a_2) CONST_instr(I32_numtype, `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) ARRAY.GET_instr(sx?{sx <- `sx?`}, x_2) ARRAY.SET_instr(x_1) REF.ARRAY_ADDR_instr(a_1) CONST_instr(I32_numtype, i_1) REF.ARRAY_ADDR_instr(a_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) ARRAY.COPY_instr(x_1, x_2)]) + rule `array.copy-gt`{state#2063 : state, `instr*#2178` : instr*, z : state, arrayaddr#49 : arrayaddr, a_1 : addr, numtype#471 : numtype, i_1 : num_(`I32`_numtype), arrayaddr#51 : arrayaddr, a_2 : addr, numtype#473 : numtype, i_2 : num_(`I32`_numtype), numtype#475 : numtype, i#42752 : nat, n : n, typeidx#1642 : typeidx, x_1 : idx, x_2 : idx, arrayaddr#53 : arrayaddr, numtype#477 : numtype, i#42816 : nat, i#42806 : nat, arrayaddr#55 : arrayaddr, numtype#479 : numtype, i#42852 : nat, i#42842 : nat, `sx?#25` : sx?, typeidx#1645 : typeidx, `sx?` : sx?, typeidx#1647 : typeidx, arrayaddr#57 : arrayaddr, numtype#481 : numtype, arrayaddr#59 : arrayaddr, numtype#483 : numtype, numtype#485 : numtype, i#42963 : nat, typeidx#1649 : typeidx, fieldtype#53 : fieldtype, `mut?#1181` : mut?, storagetype#719 : storagetype, `mut?` : mut?, zt_2 : storagetype}: + `%~>%`(`%;%`_config{state#2063, `instr*#2178`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#49}(a_1) `CONST`_instr{numtype#471}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#51}(a_2) `CONST`_instr{numtype#473}(`I32`_numtype, i_2) `CONST`_instr{numtype#475}(`I32`_numtype, `%`_num_{i#42752}(n)) `ARRAY.COPY`_instr{typeidx#1642}(x_1, x_2)]), [`REF.ARRAY_ADDR`_instr{arrayaddr#53}(a_1) `CONST`_instr{numtype#477}(`I32`_numtype, `%`_num_{i#42816}(((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `REF.ARRAY_ADDR`_instr{arrayaddr#55}(a_2) `CONST`_instr{numtype#479}(`I32`_numtype, `%`_num_{i#42852}(((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.GET`_instr{`sx?#25`, typeidx#1645}(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr{typeidx#1647}(x_1) `REF.ARRAY_ADDR`_instr{arrayaddr#57}(a_1) `CONST`_instr{numtype#481}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#59}(a_2) `CONST`_instr{numtype#483}(`I32`_numtype, i_2) `CONST`_instr{numtype#485}(`I32`_numtype, `%`_num_{i#42963}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr{typeidx#1649}(x_1, x_2)]) -- otherwise - -- Expand: `%~~%`($type(z, x_2), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))) + -- Expand: `%~~%`($type(z, x_2), `ARRAY`_comptype{fieldtype#53}(`%%`_fieldtype{`mut?#1181`, storagetype#719}(mut?{mut <- `mut?`}, zt_2))) -- if (sx?{sx <- `sx?`} = $sx(zt_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-null`{z : state, ht : heaptype, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [REF.NULL_instr(ht) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.INIT_ELEM_instr(x, y)]), [TRAP_instr]) + rule `array.init_elem-null`{state#2075 : state, `instr*#2190` : instr*, z : state, heaptype#1445 : heaptype, ht : heaptype, numtype#487 : numtype, i : num_(`I32`_numtype), numtype#489 : numtype, j : num_(`I32`_numtype), numtype#491 : numtype, i#43055 : nat, n : n, typeidx#1652 : typeidx, elemidx#31 : elemidx, x : idx, y : idx}: + `%~>%`(`%;%`_config{state#2075, `instr*#2190`}(z, [`REF.NULL`_instr{heaptype#1445}(ht) `CONST`_instr{numtype#487}(`I32`_numtype, i) `CONST`_instr{numtype#489}(`I32`_numtype, j) `CONST`_instr{numtype#491}(`I32`_numtype, `%`_num_{i#43055}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1652, elemidx#31}(x, y)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-oob1`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.INIT_ELEM_instr(x, y)]), [TRAP_instr]) - -- if ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].FIELDS_arrayinst|) + rule `array.init_elem-oob1`{state#2087 : state, `instr*#2202` : instr*, z : state, arrayaddr#61 : arrayaddr, a : addr, numtype#493 : numtype, i : num_(`I32`_numtype), numtype#495 : numtype, j : num_(`I32`_numtype), numtype#497 : numtype, i#43135 : nat, n : n, typeidx#1654 : typeidx, elemidx#33 : elemidx, x : idx, y : idx, i#43177 : nat, `fieldval*#13` : fieldval*}: + `%~>%`(`%;%`_config{state#2087, `instr*#2202`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#61}(a) `CONST`_instr{numtype#493}(`I32`_numtype, i) `CONST`_instr{numtype#495}(`I32`_numtype, j) `CONST`_instr{numtype#497}(`I32`_numtype, `%`_num_{i#43135}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1654, elemidx#33}(x, y)]), [`TRAP`_instr]) + -- if ((i!`%`_num_{i#43177}.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#13`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-oob2`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.INIT_ELEM_instr(x, y)]), [TRAP_instr]) - -- if ((j!`%`_num_.0 + n) > |$elem(z, y).REFS_eleminst|) + rule `array.init_elem-oob2`{state#2099 : state, `instr*#2214` : instr*, z : state, arrayaddr#63 : arrayaddr, a : addr, numtype#499 : numtype, i : num_(`I32`_numtype), numtype#501 : numtype, j : num_(`I32`_numtype), numtype#503 : numtype, i#43229 : nat, n : n, typeidx#1656 : typeidx, elemidx#35 : elemidx, x : idx, y : idx, i#43271 : nat, `ref*#20` : ref*}: + `%~>%`(`%;%`_config{state#2099, `instr*#2214`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#63}(a) `CONST`_instr{numtype#499}(`I32`_numtype, i) `CONST`_instr{numtype#501}(`I32`_numtype, j) `CONST`_instr{numtype#503}(`I32`_numtype, `%`_num_{i#43229}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1656, elemidx#35}(x, y)]), [`TRAP`_instr]) + -- if ((j!`%`_num_{i#43271}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#20`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-zero`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.INIT_ELEM_instr(x, y)]), []) + rule `array.init_elem-zero`{state#2111 : state, `instr*#2226` : instr*, z : state, arrayaddr#65 : arrayaddr, a : addr, numtype#505 : numtype, i : num_(`I32`_numtype), numtype#507 : numtype, j : num_(`I32`_numtype), numtype#509 : numtype, i#43335 : nat, n : n, typeidx#1658 : typeidx, elemidx#37 : elemidx, x : idx, y : idx}: + `%~>%`(`%;%`_config{state#2111, `instr*#2226`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#65}(a) `CONST`_instr{numtype#505}(`I32`_numtype, i) `CONST`_instr{numtype#507}(`I32`_numtype, j) `CONST`_instr{numtype#509}(`I32`_numtype, `%`_num_{i#43335}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1658, elemidx#37}(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-succ`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx, ref : ref}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.INIT_ELEM_instr(x, y)]), [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) (ref : ref <: instr) ARRAY.SET_instr(x) REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, `%`_num_((i!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((j!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) ARRAY.INIT_ELEM_instr(x, y)]) + rule `array.init_elem-succ`{state#2123 : state, `instr*#2238` : instr*, z : state, arrayaddr#67 : arrayaddr, a : addr, numtype#511 : numtype, i : num_(`I32`_numtype), numtype#513 : numtype, j : num_(`I32`_numtype), numtype#515 : numtype, i#43415 : nat, n : n, typeidx#1660 : typeidx, elemidx#39 : elemidx, x : idx, y : idx, arrayaddr#69 : arrayaddr, numtype#517 : numtype, ref : ref, typeidx#1662 : typeidx, arrayaddr#71 : arrayaddr, numtype#519 : numtype, i#43505 : nat, i#43495 : nat, numtype#521 : numtype, i#43541 : nat, i#43531 : nat, numtype#523 : numtype, i#43563 : nat, typeidx#1664 : typeidx, elemidx#41 : elemidx, `ref*#21` : ref*, i#43613 : nat}: + `%~>%`(`%;%`_config{state#2123, `instr*#2238`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#67}(a) `CONST`_instr{numtype#511}(`I32`_numtype, i) `CONST`_instr{numtype#513}(`I32`_numtype, j) `CONST`_instr{numtype#515}(`I32`_numtype, `%`_num_{i#43415}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1660, elemidx#39}(x, y)]), [`REF.ARRAY_ADDR`_instr{arrayaddr#69}(a) `CONST`_instr{numtype#517}(`I32`_numtype, i) (ref : ref <: instr) `ARRAY.SET`_instr{typeidx#1662}(x) `REF.ARRAY_ADDR`_instr{arrayaddr#71}(a) `CONST`_instr{numtype#519}(`I32`_numtype, `%`_num_{i#43505}((i!`%`_num_{i#43495}.0 + 1))) `CONST`_instr{numtype#521}(`I32`_numtype, `%`_num_{i#43541}((j!`%`_num_{i#43531}.0 + 1))) `CONST`_instr{numtype#523}(`I32`_numtype, `%`_num_{i#43563}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_ELEM`_instr{typeidx#1664, elemidx#41}(x, y)]) -- otherwise - -- if (ref = $elem(z, y).REFS_eleminst[j!`%`_num_.0]) + -- if (ref = $elem(z, y).`REFS`_eleminst{`ref*#21`}[j!`%`_num_{i#43613}.0]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-null`{z : state, ht : heaptype, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [REF.NULL_instr(ht) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.INIT_DATA_instr(x, y)]), [TRAP_instr]) + rule `array.init_data-null`{state#2135 : state, `instr*#2250` : instr*, z : state, heaptype#1447 : heaptype, ht : heaptype, numtype#525 : numtype, i : num_(`I32`_numtype), numtype#527 : numtype, j : num_(`I32`_numtype), numtype#529 : numtype, i#43665 : nat, n : n, typeidx#1666 : typeidx, dataidx#31 : dataidx, x : idx, y : idx}: + `%~>%`(`%;%`_config{state#2135, `instr*#2250`}(z, [`REF.NULL`_instr{heaptype#1447}(ht) `CONST`_instr{numtype#525}(`I32`_numtype, i) `CONST`_instr{numtype#527}(`I32`_numtype, j) `CONST`_instr{numtype#529}(`I32`_numtype, `%`_num_{i#43665}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1666, dataidx#31}(x, y)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-oob1`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.INIT_DATA_instr(x, y)]), [TRAP_instr]) - -- if ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].FIELDS_arrayinst|) + rule `array.init_data-oob1`{state#2147 : state, `instr*#2262` : instr*, z : state, arrayaddr#73 : arrayaddr, a : addr, numtype#531 : numtype, i : num_(`I32`_numtype), numtype#533 : numtype, j : num_(`I32`_numtype), numtype#535 : numtype, i#43745 : nat, n : n, typeidx#1668 : typeidx, dataidx#33 : dataidx, x : idx, y : idx, i#43787 : nat, `fieldval*#14` : fieldval*}: + `%~>%`(`%;%`_config{state#2147, `instr*#2262`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#73}(a) `CONST`_instr{numtype#531}(`I32`_numtype, i) `CONST`_instr{numtype#533}(`I32`_numtype, j) `CONST`_instr{numtype#535}(`I32`_numtype, `%`_num_{i#43745}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1668, dataidx#33}(x, y)]), [`TRAP`_instr]) + -- if ((i!`%`_num_{i#43787}.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#14`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-oob2`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx, `mut?` : mut?, zt : storagetype}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.INIT_DATA_instr(x, y)]), [TRAP_instr]) - -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) - -- if ((j!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).BYTES_datainst|) + rule `array.init_data-oob2`{state#2159 : state, `instr*#2274` : instr*, z : state, arrayaddr#75 : arrayaddr, a : addr, numtype#537 : numtype, i : num_(`I32`_numtype), numtype#539 : numtype, j : num_(`I32`_numtype), numtype#541 : numtype, i#43839 : nat, n : n, typeidx#1670 : typeidx, dataidx#35 : dataidx, x : idx, y : idx, fieldtype#55 : fieldtype, `mut?#1193` : mut?, storagetype#731 : storagetype, `mut?` : mut?, zt : storagetype, i#43893 : nat, `byte*#1877` : byte*}: + `%~>%`(`%;%`_config{state#2159, `instr*#2274`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#75}(a) `CONST`_instr{numtype#537}(`I32`_numtype, i) `CONST`_instr{numtype#539}(`I32`_numtype, j) `CONST`_instr{numtype#541}(`I32`_numtype, `%`_num_{i#43839}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1670, dataidx#35}(x, y)]), [`TRAP`_instr]) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#55}(`%%`_fieldtype{`mut?#1193`, storagetype#731}(mut?{mut <- `mut?`}, zt))) + -- if ((j!`%`_num_{i#43893}.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst{`byte*#1877`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-zero`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.INIT_DATA_instr(x, y)]), []) + rule `array.init_data-zero`{state#2171 : state, `instr*#2286` : instr*, z : state, arrayaddr#77 : arrayaddr, a : addr, numtype#543 : numtype, i : num_(`I32`_numtype), numtype#545 : numtype, j : num_(`I32`_numtype), numtype#547 : numtype, i#43957 : nat, n : n, typeidx#1672 : typeidx, dataidx#37 : dataidx, x : idx, y : idx}: + `%~>%`(`%;%`_config{state#2171, `instr*#2286`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#77}(a) `CONST`_instr{numtype#543}(`I32`_numtype, i) `CONST`_instr{numtype#545}(`I32`_numtype, j) `CONST`_instr{numtype#547}(`I32`_numtype, `%`_num_{i#43957}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1672, dataidx#37}(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-num`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx, zt : storagetype, c : lit_(zt), `mut?` : mut?}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) ARRAY.INIT_DATA_instr(x, y)]), [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) $const($cunpack(zt), $cunpacknum_(zt, c)) ARRAY.SET_instr(x) REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, `%`_num_((i!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) ARRAY.INIT_DATA_instr(x, y)]) + rule `array.init_data-num`{state#2183 : state, `instr*#2298` : instr*, z : state, arrayaddr#79 : arrayaddr, a : addr, numtype#549 : numtype, i : num_(`I32`_numtype), numtype#551 : numtype, j : num_(`I32`_numtype), numtype#553 : numtype, i#44037 : nat, n : n, typeidx#1674 : typeidx, dataidx#39 : dataidx, x : idx, y : idx, arrayaddr#81 : arrayaddr, numtype#555 : numtype, zt : storagetype, c : lit_(zt), typeidx#1676 : typeidx, arrayaddr#83 : arrayaddr, numtype#557 : numtype, i#44127 : nat, i#44117 : nat, numtype#559 : numtype, i#44163 : nat, i#44153 : nat, numtype#561 : numtype, i#44185 : nat, typeidx#1678 : typeidx, dataidx#41 : dataidx, fieldtype#57 : fieldtype, `mut?#1205` : mut?, storagetype#743 : storagetype, `mut?` : mut?, `byte*#1878` : byte*, i#44247 : nat}: + `%~>%`(`%;%`_config{state#2183, `instr*#2298`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#79}(a) `CONST`_instr{numtype#549}(`I32`_numtype, i) `CONST`_instr{numtype#551}(`I32`_numtype, j) `CONST`_instr{numtype#553}(`I32`_numtype, `%`_num_{i#44037}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1674, dataidx#39}(x, y)]), [`REF.ARRAY_ADDR`_instr{arrayaddr#81}(a) `CONST`_instr{numtype#555}(`I32`_numtype, i) $const($cunpack(zt), $cunpacknum_(zt, c)) `ARRAY.SET`_instr{typeidx#1676}(x) `REF.ARRAY_ADDR`_instr{arrayaddr#83}(a) `CONST`_instr{numtype#557}(`I32`_numtype, `%`_num_{i#44127}((i!`%`_num_{i#44117}.0 + 1))) `CONST`_instr{numtype#559}(`I32`_numtype, `%`_num_{i#44163}((j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))) `CONST`_instr{numtype#561}(`I32`_numtype, `%`_num_{i#44185}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_DATA`_instr{typeidx#1678, dataidx#41}(x, y)]) -- otherwise - -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) - -- if ($zbytes_(zt, c) = $data(z, y).BYTES_datainst[j!`%`_num_.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#57}(`%%`_fieldtype{`mut?#1205`, storagetype#743}(mut?{mut <- `mut?`}, zt))) + -- if ($zbytes_(zt, c) = $data(z, y).`BYTES`_datainst{`byte*#1878`}[j!`%`_num_{i#44247}.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rec { @@ -6878,159 +118437,159 @@ rec { ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:5.1-5.88 relation Step: `%~>%`(config, config) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:13.1-15.34 - rule pure{z : state, `instr*` : instr*, `instr'*` : instr*}: - `%~>%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z, instr'*{instr' <- `instr'*`})) + rule pure{state#11 : state, `instr*#27` : instr*, z : state, `instr*` : instr*, state#23 : state, `instr*#39` : instr*, `instr'*` : instr*}: + `%~>%`(`%;%`_config{state#11, `instr*#27`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#23, `instr*#39`}(z, instr'*{instr' <- `instr'*`})) -- Step_pure: `%~>%`(instr*{instr <- `instr*`}, instr'*{instr' <- `instr'*`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:17.1-19.37 - rule read{z : state, `instr*` : instr*, `instr'*` : instr*}: - `%~>%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z, instr'*{instr' <- `instr'*`})) - -- Step_read: `%~>%`(`%;%`_config(z, instr*{instr <- `instr*`}), instr'*{instr' <- `instr'*`}) + rule read{state#35 : state, `instr*#51` : instr*, z : state, `instr*` : instr*, state#47 : state, `instr*#63` : instr*, `instr'*` : instr*, state#59 : state, `instr*#75` : instr*}: + `%~>%`(`%;%`_config{state#35, `instr*#51`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#47, `instr*#63`}(z, instr'*{instr' <- `instr'*`})) + -- Step_read: `%~>%`(`%;%`_config{state#59, `instr*#75`}(z, instr*{instr <- `instr*`}), instr'*{instr' <- `instr'*`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:32.1-35.41 - rule `ctxt-instrs`{z : state, `val*` : val*, `instr*` : instr*, `instr_1*` : instr*, z' : state, `instr'*` : instr*}: - `%~>%`(`%;%`_config(z, (val : val <: instr)*{val <- `val*`} ++ instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`}), `%;%`_config(z', (val : val <: instr)*{val <- `val*`} ++ instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`})) - -- Step: `%~>%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', instr'*{instr' <- `instr'*`})) + rule `ctxt-instrs`{state#167 : state, `instr*#183` : instr*, z : state, `val*` : val*, `instr*` : instr*, `instr_1*` : instr*, state#179 : state, `instr*#195` : instr*, z' : state, `instr'*` : instr*, state#191 : state, `instr*#207` : instr*, state#203 : state, `instr*#219` : instr*}: + `%~>%`(`%;%`_config{state#167, `instr*#183`}(z, (val : val <: instr)*{val <- `val*`} ++ instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`}), `%;%`_config{state#179, `instr*#195`}(z', (val : val <: instr)*{val <- `val*`} ++ instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`})) + -- Step: `%~>%`(`%;%`_config{state#191, `instr*#207`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#203, `instr*#219`}(z', instr'*{instr' <- `instr'*`})) -- if ((val*{val <- `val*`} =/= []) \/ (instr_1*{instr_1 <- `instr_1*`} =/= [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:37.1-39.36 - rule `ctxt-label`{z : state, n : n, `instr_0*` : instr*, `instr*` : instr*, z' : state, `instr'*` : instr*}: - `%~>%`(`%;%`_config(z, [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})]), `%;%`_config(z', [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})])) - -- Step: `%~>%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', instr'*{instr' <- `instr'*`})) + rule `ctxt-label`{state#215 : state, `instr*#231` : instr*, z : state, n#1127 : n, `instr*#233` : instr*, n : n, `instr_0*` : instr*, `instr*` : instr*, state#227 : state, `instr*#246` : instr*, z' : state, n#1129 : n, `instr*#248` : instr*, `instr'*` : instr*, state#239 : state, `instr*#261` : instr*, state#251 : state, `instr*#273` : instr*}: + `%~>%`(`%;%`_config{state#215, `instr*#231`}(z, [`LABEL_%{%}%`_instr{n#1127, `instr*#233`}(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})]), `%;%`_config{state#227, `instr*#246`}(z', [`LABEL_%{%}%`_instr{n#1129, `instr*#248`}(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})])) + -- Step: `%~>%`(`%;%`_config{state#239, `instr*#261`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#251, `instr*#273`}(z', instr'*{instr' <- `instr'*`})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:41.1-43.45 - rule `ctxt-frame`{s : store, f : frame, n : n, f' : frame, `instr*` : instr*, s' : store, f'' : frame, `instr'*` : instr*}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [`FRAME_%{%}%`_instr(n, f', instr*{instr <- `instr*`})]), `%;%`_config(`%;%`_state(s', f), [`FRAME_%{%}%`_instr(n, f'', instr'*{instr' <- `instr'*`})])) - -- Step: `%~>%`(`%;%`_config(`%;%`_state(s, f'), instr*{instr <- `instr*`}), `%;%`_config(`%;%`_state(s', f''), instr'*{instr' <- `instr'*`})) + rule `ctxt-frame`{state#263 : state, `instr*#285` : instr*, store#725 : store, frame#725 : frame, s : store, f : frame, n#1131 : n, frame#727 : frame, `instr*#287` : instr*, n : n, f' : frame, `instr*` : instr*, state#275 : state, `instr*#299` : instr*, store#737 : store, frame#739 : frame, s' : store, n#1133 : n, frame#741 : frame, `instr*#301` : instr*, f'' : frame, `instr'*` : instr*, state#287 : state, `instr*#313` : instr*, store#749 : store, frame#753 : frame, state#299 : state, `instr*#325` : instr*, store#761 : store, frame#765 : frame}: + `%~>%`(`%;%`_config{state#263, `instr*#285`}(`%;%`_state{store#725, frame#725}(s, f), [`FRAME_%{%}%`_instr{n#1131, frame#727, `instr*#287`}(n, f', instr*{instr <- `instr*`})]), `%;%`_config{state#275, `instr*#299`}(`%;%`_state{store#737, frame#739}(s', f), [`FRAME_%{%}%`_instr{n#1133, frame#741, `instr*#301`}(n, f'', instr'*{instr' <- `instr'*`})])) + -- Step: `%~>%`(`%;%`_config{state#287, `instr*#313`}(`%;%`_state{store#749, frame#753}(s, f'), instr*{instr <- `instr*`}), `%;%`_config{state#299, `instr*#325`}(`%;%`_state{store#761, frame#765}(s', f''), instr'*{instr' <- `instr'*`})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:227.1-231.49 - rule throw{z : state, `val*` : val*, n : n, x : idx, exn : exninst, a : addr, `t*` : valtype*}: - `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [THROW_instr(x)]), `%;%`_config($add_exninst(z, [exn]), [REF.EXN_ADDR_instr(a) THROW_REF_instr])) - -- Expand: `%~~%`($as_deftype($tag(z, x).TYPE_taginst), `FUNC%->%`_comptype(`%`_resulttype(t^n{t <- `t*`}), `%`_resulttype([]))) + rule throw{state#479 : state, `instr*#561` : instr*, z : state, n : n, `val*` : val*, tagidx#11 : tagidx, x : idx, state#491 : state, `instr*#573` : instr*, exn : exninst, exnaddr#3 : exnaddr, a : addr, tagtype#180 : tagtype, resulttype#3003 : resulttype, `X*#12555` : valtype*, `t*` : valtype*, `X*#12578` : valtype*, tagaddr#5 : tagaddr, i#32555 : nat, `val*#1` : val*}: + `%~>%`(`%;%`_config{state#479, `instr*#561`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr{tagidx#11}(x)]), `%;%`_config{state#491, `instr*#573`}($add_exninst(z, [exn]), [`REF.EXN_ADDR`_instr{exnaddr#3}(a) `THROW_REF`_instr])) + -- Expand: `%~~%`($as_deftype($tag(z, x).`TYPE`_taginst{tagtype#180}), `FUNC%->%`_comptype{resulttype#3003}(`%`_resulttype{`X*#12555`}(t^n{t <- `t*`}), `%`_resulttype{`X*#12578`}([]))) -- if (a = |$exninst(z)|) - -- if (exn = {TAG $tagaddr(z)[x!`%`_idx.0], FIELDS val^n{val <- `val*`}}) + -- if (exn = {`TAG`{tagaddr#5} $tagaddr(z)[x!`%`_idx{i#32555}.0], `FIELDS`{`val*#1`} val^n{val <- `val*`}}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:302.1-303.56 - rule local.set{z : state, val : val, x : idx}: - `%~>%`(`%;%`_config(z, [(val : val <: instr) LOCAL.SET_instr(x)]), `%;%`_config($with_local(z, x, val), [])) + rule local.set{state#647 : state, `instr*#762` : instr*, z : state, val : val, localidx#15 : localidx, x : idx, state#659 : state, `instr*#774` : instr*}: + `%~>%`(`%;%`_config{state#647, `instr*#762`}(z, [(val : val <: instr) `LOCAL.SET`_instr{localidx#15}(x)]), `%;%`_config{state#659, `instr*#774`}($with_local(z, x, val), [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:315.1-316.58 - rule global.set{z : state, val : val, x : idx}: - `%~>%`(`%;%`_config(z, [(val : val <: instr) GLOBAL.SET_instr(x)]), `%;%`_config($with_global(z, x, val), [])) + rule global.set{state#683 : state, `instr*#798` : instr*, z : state, val : val, globalidx#19 : globalidx, x : idx, state#695 : state, `instr*#810` : instr*}: + `%~>%`(`%;%`_config{state#683, `instr*#798`}(z, [(val : val <: instr) `GLOBAL.SET`_instr{globalidx#19}(x)]), `%;%`_config{state#695, `instr*#810`}($with_global(z, x, val), [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:329.1-331.33 - rule `table.set-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), ref : ref, x : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (ref : ref <: instr) TABLE.SET_instr(x)]), `%;%`_config(z, [TRAP_instr])) - -- if (i!`%`_num_.0 >= |$table(z, x).REFS_tableinst|) + rule `table.set-oob`{state#731 : state, `instr*#846` : instr*, z : state, numtype#79 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), ref : ref, tableidx#61 : tableidx, x : idx, state#743 : state, `instr*#858` : instr*, i#33027 : nat, `ref*#8` : ref*}: + `%~>%`(`%;%`_config{state#731, `instr*#846`}(z, [`CONST`_instr{numtype#79}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#61}(x)]), `%;%`_config{state#743, `instr*#858`}(z, [`TRAP`_instr])) + -- if (i!`%`_num_{i#33027}.0 >= |$table(z, x).`REFS`_tableinst{`ref*#8`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:333.1-335.32 - rule `table.set-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), ref : ref, x : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (ref : ref <: instr) TABLE.SET_instr(x)]), `%;%`_config($with_table(z, x, i!`%`_num_.0, ref), [])) - -- if (i!`%`_num_.0 < |$table(z, x).REFS_tableinst|) + rule `table.set-val`{state#755 : state, `instr*#870` : instr*, z : state, numtype#81 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), ref : ref, tableidx#63 : tableidx, x : idx, state#767 : state, `instr*#882` : instr*, i#33077 : nat, i#33103 : nat, `ref*#9` : ref*}: + `%~>%`(`%;%`_config{state#755, `instr*#870`}(z, [`CONST`_instr{numtype#81}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#63}(x)]), `%;%`_config{state#767, `instr*#882`}($with_table(z, x, i!`%`_num_{i#33077}.0, ref), [])) + -- if (i!`%`_num_{i#33103}.0 < |$table(z, x).`REFS`_tableinst{`ref*#9`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:344.1-347.46 - rule `table.grow-succeed`{z : state, ref : ref, at : addrtype, n : n, x : idx, ti : tableinst}: - `%~>%`(`%;%`_config(z, [(ref : ref <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) TABLE.GROW_instr(x)]), `%;%`_config($with_tableinst(z, x, ti), [CONST_instr((at : addrtype <: numtype), `%`_num_(|$table(z, x).REFS_tableinst|))])) + rule `table.grow-succeed`{state#791 : state, `instr*#906` : instr*, z : state, ref : ref, numtype#85 : numtype, at : addrtype, i#33189 : nat, n : n, tableidx#67 : tableidx, x : idx, state#803 : state, `instr*#918` : instr*, ti : tableinst, numtype#87 : numtype, i#33249 : nat, `ref*#11` : ref*}: + `%~>%`(`%;%`_config{state#791, `instr*#906`}(z, [(ref : ref <: instr) `CONST`_instr{numtype#85}((at : addrtype <: numtype), `%`_num_{i#33189}(n)) `TABLE.GROW`_instr{tableidx#67}(x)]), `%;%`_config{state#803, `instr*#918`}($with_tableinst(z, x, ti), [`CONST`_instr{numtype#87}((at : addrtype <: numtype), `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|))])) -- if (ti = $growtable($table(z, x), n, ref)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:349.1-350.87 - rule `table.grow-fail`{z : state, ref : ref, at : addrtype, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [(ref : ref <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) TABLE.GROW_instr(x)]), `%;%`_config(z, [CONST_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])) + rule `table.grow-fail`{state#815 : state, `instr*#930` : instr*, z : state, ref : ref, numtype#89 : numtype, at : addrtype, i#33285 : nat, n : n, tableidx#69 : tableidx, x : idx, state#827 : state, `instr*#942` : instr*, numtype#91 : numtype, i#33321 : nat}: + `%~>%`(`%;%`_config{state#815, `instr*#930`}(z, [(ref : ref <: instr) `CONST`_instr{numtype#89}((at : addrtype <: numtype), `%`_num_{i#33285}(n)) `TABLE.GROW`_instr{tableidx#69}(x)]), `%;%`_config{state#827, `instr*#942`}(z, [`CONST`_instr{numtype#91}((at : addrtype <: numtype), `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:410.1-411.51 - rule elem.drop{z : state, x : idx}: - `%~>%`(`%;%`_config(z, [ELEM.DROP_instr(x)]), `%;%`_config($with_elem(z, x, []), [])) + rule elem.drop{state#959 : state, `instr*#1074` : instr*, z : state, elemidx#25 : elemidx, x : idx, state#971 : state, `instr*#1086` : instr*}: + `%~>%`(`%;%`_config{state#959, `instr*#1074`}(z, [`ELEM.DROP`_instr{elemidx#25}(x)]), `%;%`_config{state#971, `instr*#1086`}($with_elem(z, x, []), [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:494.1-497.60 - rule `store-num-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), nt : numtype, c : num_(nt), x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(nt, c) STORE_instr(nt, ?(), x, ao)]), `%;%`_config(z, [TRAP_instr])) - -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) + rule `store-num-oob`{state#1151 : state, `instr*#1266` : instr*, z : state, numtype#217 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#219 : numtype, nt : numtype, c : num_(nt), `numtype?#11` : numtype?, memidx#95 : memidx, memarg#63 : memarg, x : idx, ao : memarg, state#1163 : state, `instr*#1278` : instr*, i#37014 : nat, u64#419 : u64, i#37024 : nat, `byte*#1863` : byte*}: + `%~>%`(`%;%`_config{state#1151, `instr*#1266`}(z, [`CONST`_instr{numtype#217}((at : addrtype <: numtype), i) `CONST`_instr{numtype#219}(nt, c) `STORE`_instr{`numtype?#11`, memidx#95, memarg#63}(nt, ?(), x, ao)]), `%;%`_config{state#1163, `instr*#1278`}(z, [`TRAP`_instr])) + -- if (((i!`%`_num_{i#37014}.0 + ao.`OFFSET`_memarg{u64#419}!`%`_u64{i#37024}.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1863`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:499.1-503.29 - rule `store-num-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), nt : numtype, c : num_(nt), x : idx, ao : memarg, `b*` : byte*}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(nt, c) STORE_instr(nt, ?(), x, ao)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) + rule `store-num-val`{state#1175 : state, `instr*#1290` : instr*, z : state, numtype#222 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#224 : numtype, nt : numtype, c : num_(nt), `numtype?#12` : numtype?, memidx#97 : memidx, memarg#65 : memarg, x : idx, ao : memarg, state#1187 : state, `instr*#1302` : instr*, i#37094 : nat, u64#420 : u64, i#37104 : nat, `b*` : byte*}: + `%~>%`(`%;%`_config{state#1175, `instr*#1290`}(z, [`CONST`_instr{numtype#222}((at : addrtype <: numtype), i) `CONST`_instr{numtype#224}(nt, c) `STORE`_instr{`numtype?#12`, memidx#97, memarg#65}(nt, ?(), x, ao)]), `%;%`_config{state#1187, `instr*#1302`}($with_mem(z, x, (i!`%`_num_{i#37094}.0 + ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) -- if (b*{b <- `b*`} = $nbytes_(nt, c)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:505.1-508.52 - rule `store-pack-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), Inn : Inn, c : num_((Inn : Inn <: numtype)), n : n, x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr((Inn : Inn <: numtype), c) STORE_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)]), `%;%`_config(z, [TRAP_instr])) - -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) + rule `store-pack-oob`{state#1199 : state, `instr*#1314` : instr*, z : state, numtype#227 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#229 : numtype, Inn : Inn, c : num_((Inn : Inn <: numtype)), `numtype?#13` : numtype?, memidx#99 : memidx, memarg#67 : memarg, sz#446 : sz, i#37199 : nat, i#37200 : nat, n : n, x : idx, ao : memarg, state#1211 : state, `instr*#1326` : instr*, i#37232 : nat, u64#421 : u64, i#37242 : nat, `byte*#1864` : byte*}: + `%~>%`(`%;%`_config{state#1199, `instr*#1314`}(z, [`CONST`_instr{numtype#227}((at : addrtype <: numtype), i) `CONST`_instr{numtype#229}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#13`, memidx#99, memarg#67}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))), x, ao)]), `%;%`_config{state#1211, `instr*#1326`}(z, [`TRAP`_instr])) + -- if (((i!`%`_num_{i#37232}.0 + ao.`OFFSET`_memarg{u64#421}!`%`_u64{i#37242}.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1864`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:510.1-514.52 - rule `store-pack-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), Inn : Inn, c : num_((Inn : Inn <: numtype)), n : n, x : idx, ao : memarg, `b*` : byte*}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr((Inn : Inn <: numtype), c) STORE_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) + rule `store-pack-val`{state#1223 : state, `instr*#1338` : instr*, z : state, numtype#232 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#234 : numtype, Inn : Inn, c : num_((Inn : Inn <: numtype)), `numtype?#14` : numtype?, memidx#101 : memidx, memarg#69 : memarg, sz#448 : sz, i#37325 : nat, i#37326 : nat, n : n, x : idx, ao : memarg, state#1235 : state, `instr*#1350` : instr*, i#37370 : nat, u64#422 : u64, i#37380 : nat, `b*` : byte*}: + `%~>%`(`%;%`_config{state#1223, `instr*#1338`}(z, [`CONST`_instr{numtype#232}((at : addrtype <: numtype), i) `CONST`_instr{numtype#234}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#14`, memidx#101, memarg#69}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))), x, ao)]), `%;%`_config{state#1235, `instr*#1350`}($with_mem(z, x, (i!`%`_num_{i#37370}.0 + ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) -- if (b*{b <- `b*`} = $ibytes_(n, $wrap__($size((Inn : Inn <: numtype)), n, c))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:516.1-519.63 - rule `vstore-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(V128_Vnn), x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VCONST_instr(V128_vectype, c) VSTORE_instr(V128_vectype, x, ao)]), `%;%`_config(z, [TRAP_instr])) - -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + ((($vsize(V128_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) + rule `vstore-oob`{state#1247 : state, `instr*#1362` : instr*, z : state, numtype#237 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), vectype#88 : vectype, c : vec_(`V128`_Vnn), vectype#90 : vectype, memidx#103 : memidx, memarg#71 : memarg, x : idx, ao : memarg, state#1259 : state, `instr*#1374` : instr*, i#37486 : nat, u64#423 : u64, i#37496 : nat, `byte*#1865` : byte*}: + `%~>%`(`%;%`_config{state#1247, `instr*#1362`}(z, [`CONST`_instr{numtype#237}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#88}(`V128`_vectype, c) `VSTORE`_instr{vectype#90, memidx#103, memarg#71}(`V128`_vectype, x, ao)]), `%;%`_config{state#1259, `instr*#1374`}(z, [`TRAP`_instr])) + -- if (((i!`%`_num_{i#37486}.0 + ao.`OFFSET`_memarg{u64#423}!`%`_u64{i#37496}.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1865`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:521.1-524.31 - rule `vstore-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(V128_Vnn), x : idx, ao : memarg, `b*` : byte*}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VCONST_instr(V128_vectype, c) VSTORE_instr(V128_vectype, x, ao)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0), ((($vsize(V128_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) - -- if (b*{b <- `b*`} = $vbytes_(V128_vectype, c)) + rule `vstore-val`{state#1271 : state, `instr*#1386` : instr*, z : state, numtype#239 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), vectype#92 : vectype, c : vec_(`V128`_Vnn), vectype#94 : vectype, memidx#105 : memidx, memarg#73 : memarg, x : idx, ao : memarg, state#1283 : state, `instr*#1398` : instr*, i#37580 : nat, u64#424 : u64, i#37590 : nat, `b*` : byte*}: + `%~>%`(`%;%`_config{state#1271, `instr*#1386`}(z, [`CONST`_instr{numtype#239}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#92}(`V128`_vectype, c) `VSTORE`_instr{vectype#94, memidx#105, memarg#73}(`V128`_vectype, x, ao)]), `%;%`_config{state#1283, `instr*#1398`}($with_mem(z, x, (i!`%`_num_{i#37580}.0 + ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) + -- if (b*{b <- `b*`} = $vbytes_(`V128`_vectype, c)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:527.1-530.50 - rule `vstore_lane-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(V128_Vnn), N : N, x : idx, ao : memarg, j : laneidx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VCONST_instr(V128_vectype, c) VSTORE_LANE_instr(V128_vectype, `%`_sz(N), x, ao, j)]), `%;%`_config(z, [TRAP_instr])) - -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + N) > |$mem(z, x).BYTES_meminst|) + rule `vstore_lane-oob`{state#1295 : state, `instr*#1410` : instr*, z : state, numtype#241 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), vectype#96 : vectype, c : vec_(`V128`_Vnn), vectype#98 : vectype, sz#450 : sz, memidx#107 : memidx, memarg#75 : memarg, laneidx#21 : laneidx, i#37660 : nat, N : N, x : idx, ao : memarg, j : laneidx, state#1307 : state, `instr*#1422` : instr*, i#37706 : nat, u64#425 : u64, i#37716 : nat, `byte*#1866` : byte*}: + `%~>%`(`%;%`_config{state#1295, `instr*#1410`}(z, [`CONST`_instr{numtype#241}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#96}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#98, sz#450, memidx#107, memarg#75, laneidx#21}(`V128`_vectype, `%`_sz{i#37660}(N), x, ao, j)]), `%;%`_config{state#1307, `instr*#1422`}(z, [`TRAP`_instr])) + -- if (((i!`%`_num_{i#37706}.0 + ao.`OFFSET`_memarg{u64#425}!`%`_u64{i#37716}.0) + N) > |$mem(z, x).`BYTES`_meminst{`byte*#1866`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:532.1-537.49 - rule `vstore_lane-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(V128_Vnn), N : N, x : idx, ao : memarg, j : laneidx, `b*` : byte*, Jnn : Jnn, M : M}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VCONST_instr(V128_vectype, c) VSTORE_LANE_instr(V128_vectype, `%`_sz(N), x, ao, j)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) + rule `vstore_lane-val`{state#1319 : state, `instr*#1434` : instr*, z : state, numtype#243 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), vectype#100 : vectype, c : vec_(`V128`_Vnn), vectype#102 : vectype, sz#452 : sz, memidx#109 : memidx, memarg#77 : memarg, laneidx#23 : laneidx, i#37764 : nat, N : N, x : idx, ao : memarg, j : laneidx, state#1331 : state, `instr*#1446` : instr*, i#37822 : nat, u64#426 : u64, i#37832 : nat, `b*` : byte*, Jnn : Jnn, M : M, i#37907 : nat, lanetype#7403 : lanetype, dim#7403 : dim, i#37855 : nat, i#37862 : nat, i#37882 : nat, i#37906 : nat}: + `%~>%`(`%;%`_config{state#1319, `instr*#1434`}(z, [`CONST`_instr{numtype#243}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#100}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#102, sz#452, memidx#109, memarg#77, laneidx#23}(`V128`_vectype, `%`_sz{i#37764}(N), x, ao, j)]), `%;%`_config{state#1331, `instr*#1446`}($with_mem(z, x, (i!`%`_num_{i#37822}.0 + ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) -- if (N = $jsize(Jnn)) -- if ((M : nat <:> rat) = ((128 : nat <:> rat) / (N : nat <:> rat))) - -- if (b*{b <- `b*`} = $ibytes_(N, `%`_iN($lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_.0))) + -- if (b*{b <- `b*`} = $ibytes_(N, `%`_iN{i#37907}($lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}.0))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:546.1-549.37 - rule `memory.grow-succeed`{z : state, at : addrtype, n : n, x : idx, mi : meminst}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), `%`_num_(n)) MEMORY.GROW_instr(x)]), `%;%`_config($with_meminst(z, x, mi), [CONST_instr((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).BYTES_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])) + rule `memory.grow-succeed`{state#1355 : state, `instr*#1470` : instr*, z : state, numtype#247 : numtype, at : addrtype, i#38006 : nat, n : n, memidx#113 : memidx, x : idx, state#1367 : state, `instr*#1482` : instr*, mi : meminst, numtype#249 : numtype, i#38066 : nat, `byte*#1868` : byte*}: + `%~>%`(`%;%`_config{state#1355, `instr*#1470`}(z, [`CONST`_instr{numtype#247}((at : addrtype <: numtype), `%`_num_{i#38006}(n)) `MEMORY.GROW`_instr{memidx#113}(x)]), `%;%`_config{state#1367, `instr*#1482`}($with_meminst(z, x, mi), [`CONST`_instr{numtype#249}((at : addrtype <: numtype), `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])) -- if (mi = $growmem($mem(z, x), n)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:551.1-552.84 - rule `memory.grow-fail`{z : state, at : addrtype, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), `%`_num_(n)) MEMORY.GROW_instr(x)]), `%;%`_config(z, [CONST_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])) + rule `memory.grow-fail`{state#1379 : state, `instr*#1494` : instr*, z : state, numtype#251 : numtype, at : addrtype, i#38102 : nat, n : n, memidx#115 : memidx, x : idx, state#1391 : state, `instr*#1506` : instr*, numtype#253 : numtype, i#38138 : nat}: + `%~>%`(`%;%`_config{state#1379, `instr*#1494`}(z, [`CONST`_instr{numtype#251}((at : addrtype <: numtype), `%`_num_{i#38102}(n)) `MEMORY.GROW`_instr{memidx#115}(x)]), `%;%`_config{state#1391, `instr*#1506`}(z, [`CONST`_instr{numtype#253}((at : addrtype <: numtype), `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:612.1-613.51 - rule data.drop{z : state, x : idx}: - `%~>%`(`%;%`_config(z, [DATA.DROP_instr(x)]), `%;%`_config($with_data(z, x, []), [])) + rule data.drop{state#1523 : state, `instr*#1638` : instr*, z : state, dataidx#25 : dataidx, x : idx, state#1535 : state, `instr*#1650` : instr*}: + `%~>%`(`%;%`_config{state#1523, `instr*#1638`}(z, [`DATA.DROP`_instr{dataidx#25}(x)]), `%;%`_config{state#1535, `instr*#1650`}($with_data(z, x, []), [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:693.1-697.65 - rule struct.new{z : state, `val*` : val*, n : n, x : idx, si : structinst, a : addr, `mut?*` : mut?*, `zt*` : storagetype*}: - `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [STRUCT.NEW_instr(x)]), `%;%`_config($add_structinst(z, [si]), [REF.STRUCT_ADDR_instr(a)])) - -- Expand: `%~~%`($type(z, x), STRUCT_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`}))) + rule struct.new{state#1619 : state, `instr*#1734` : instr*, z : state, n : n, `val*` : val*, typeidx#1557 : typeidx, x : idx, state#1631 : state, `instr*#1746` : instr*, si : structinst, structaddr#3 : structaddr, a : addr, `X*#12668` : fieldtype*, `mut?*` : mut?*, `mut?#1031*` : mut?*, `storagetype#569*` : storagetype*, `zt*` : storagetype*, deftype#9 : deftype, `fieldval*#3` : fieldval*}: + `%~>%`(`%;%`_config{state#1619, `instr*#1734`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr{typeidx#1557}(x)]), `%;%`_config{state#1631, `instr*#1746`}($add_structinst(z, [si]), [`REF.STRUCT_ADDR`_instr{structaddr#3}(a)])) + -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12668`}(`%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`}))) -- if (a = |$structinst(z)|) - -- if (si = {TYPE $type(z, x), FIELDS $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}}) + -- if (si = {`TYPE`{deftype#9} $type(z, x), `FIELDS`{`fieldval*#3`} $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:714.1-715.53 - rule `struct.set-null`{z : state, ht : heaptype, val : val, x : idx, i : u32}: - `%~>%`(`%;%`_config(z, [REF.NULL_instr(ht) (val : val <: instr) STRUCT.SET_instr(x, i)]), `%;%`_config(z, [TRAP_instr])) + rule `struct.set-null`{state#1679 : state, `instr*#1794` : instr*, z : state, heaptype#1431 : heaptype, ht : heaptype, val : val, typeidx#1567 : typeidx, u32#21 : u32, x : idx, i : u32, state#1691 : state, `instr*#1806` : instr*}: + `%~>%`(`%;%`_config{state#1679, `instr*#1794`}(z, [`REF.NULL`_instr{heaptype#1431}(ht) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1567, u32#21}(x, i)]), `%;%`_config{state#1691, `instr*#1806`}(z, [`TRAP`_instr])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:717.1-720.46 - rule `struct.set-struct`{z : state, a : addr, val : val, x : idx, i : u32, `zt*` : storagetype*, `mut?*` : mut?*}: - `%~>%`(`%;%`_config(z, [REF.STRUCT_ADDR_instr(a) (val : val <: instr) STRUCT.SET_instr(x, i)]), `%;%`_config($with_struct(z, a, i!`%`_u32.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], val)), [])) - -- Expand: `%~~%`($type(z, x), STRUCT_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) + rule `struct.set-struct`{state#1703 : state, `instr*#1818` : instr*, z : state, structaddr#7 : structaddr, a : addr, val : val, typeidx#1569 : typeidx, u32#23 : u32, x : idx, i : u32, state#1715 : state, `instr*#1830` : instr*, i#40466 : nat, `zt*` : storagetype*, i#40476 : nat, `X*#12713` : fieldtype*, `mut?*` : mut?*, `mut?#1085*` : mut?*, `storagetype#623*` : storagetype*}: + `%~>%`(`%;%`_config{state#1703, `instr*#1818`}(z, [`REF.STRUCT_ADDR`_instr{structaddr#7}(a) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1569, u32#23}(x, i)]), `%;%`_config{state#1715, `instr*#1830`}($with_struct(z, a, i!`%`_u32{i#40466}.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40476}.0], val)), [])) + -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12713`}(`%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:733.1-738.65 - rule array.new_fixed{z : state, `val*` : val*, n : n, x : idx, ai : arrayinst, a : addr, `mut?` : mut?, zt : storagetype}: - `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [ARRAY.NEW_FIXED_instr(x, `%`_u32(n))]), `%;%`_config($add_arrayinst(z, [ai]), [REF.ARRAY_ADDR_instr(a)])) - -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) - -- if ((a = |$arrayinst(z)|) /\ (ai = {TYPE $type(z, x), FIELDS $packfield_(zt, val)^n{val <- `val*`}})) + rule array.new_fixed{state#1739 : state, `instr*#1854` : instr*, z : state, n : n, `val*` : val*, typeidx#1579 : typeidx, u32#29 : u32, x : idx, i#40690 : nat, state#1751 : state, `instr*#1866` : instr*, ai : arrayinst, arrayaddr#3 : arrayaddr, a : addr, fieldtype#41 : fieldtype, `mut?#1109` : mut?, storagetype#647 : storagetype, `mut?` : mut?, zt : storagetype, deftype#10 : deftype, `fieldval*#5` : fieldval*}: + `%~>%`(`%;%`_config{state#1739, `instr*#1854`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1579, u32#29}(x, `%`_u32{i#40690}(n))]), `%;%`_config{state#1751, `instr*#1866`}($add_arrayinst(z, [ai]), [`REF.ARRAY_ADDR`_instr{arrayaddr#3}(a)])) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#41}(`%%`_fieldtype{`mut?#1109`, storagetype#647}(mut?{mut <- `mut?`}, zt))) + -- if ((a = |$arrayinst(z)|) /\ (ai = {`TYPE`{deftype#10} $type(z, x), `FIELDS`{`fieldval*#5`} $packfield_(zt, val)^n{val <- `val*`}})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:778.1-779.64 - rule `array.set-null`{z : state, ht : heaptype, i : num_(I32_numtype), val : val, x : idx}: - `%~>%`(`%;%`_config(z, [REF.NULL_instr(ht) CONST_instr(I32_numtype, i) (val : val <: instr) ARRAY.SET_instr(x)]), `%;%`_config(z, [TRAP_instr])) + rule `array.set-null`{state#1847 : state, `instr*#1962` : instr*, z : state, heaptype#1435 : heaptype, ht : heaptype, numtype#395 : numtype, i : num_(`I32`_numtype), val : val, typeidx#1599 : typeidx, x : idx, state#1859 : state, `instr*#1974` : instr*}: + `%~>%`(`%;%`_config{state#1847, `instr*#1962`}(z, [`REF.NULL`_instr{heaptype#1435}(ht) `CONST`_instr{numtype#395}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1599}(x)]), `%;%`_config{state#1859, `instr*#1974`}(z, [`TRAP`_instr])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:781.1-783.39 - rule `array.set-oob`{z : state, a : addr, i : num_(I32_numtype), val : val, x : idx}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) (val : val <: instr) ARRAY.SET_instr(x)]), `%;%`_config(z, [TRAP_instr])) - -- if (i!`%`_num_.0 >= |$arrayinst(z)[a].FIELDS_arrayinst|) + rule `array.set-oob`{state#1871 : state, `instr*#1986` : instr*, z : state, arrayaddr#9 : arrayaddr, a : addr, numtype#397 : numtype, i : num_(`I32`_numtype), val : val, typeidx#1601 : typeidx, x : idx, state#1883 : state, `instr*#1998` : instr*, i#41549 : nat, `fieldval*#8` : fieldval*}: + `%~>%`(`%;%`_config{state#1871, `instr*#1986`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#9}(a) `CONST`_instr{numtype#397}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1601}(x)]), `%;%`_config{state#1883, `instr*#1998`}(z, [`TRAP`_instr])) + -- if (i!`%`_num_{i#41549}.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#8`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:785.1-788.44 - rule `array.set-array`{z : state, a : addr, i : num_(I32_numtype), val : val, x : idx, zt : storagetype, `mut?` : mut?}: - `%~>%`(`%;%`_config(z, [REF.ARRAY_ADDR_instr(a) CONST_instr(I32_numtype, i) (val : val <: instr) ARRAY.SET_instr(x)]), `%;%`_config($with_array(z, a, i!`%`_num_.0, $packfield_(zt, val)), [])) - -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule `array.set-array`{state#1895 : state, `instr*#2010` : instr*, z : state, arrayaddr#11 : arrayaddr, a : addr, numtype#399 : numtype, i : num_(`I32`_numtype), val : val, typeidx#1603 : typeidx, x : idx, state#1907 : state, `instr*#2022` : instr*, i#41587 : nat, zt : storagetype, fieldtype#49 : fieldtype, `mut?#1157` : mut?, storagetype#695 : storagetype, `mut?` : mut?}: + `%~>%`(`%;%`_config{state#1895, `instr*#2010`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#11}(a) `CONST`_instr{numtype#399}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1603}(x)]), `%;%`_config{state#1907, `instr*#2022`}($with_array(z, a, i!`%`_num_{i#41587}.0, $packfield_(zt, val)), [])) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#49}(`%%`_fieldtype{`mut?#1157`, storagetype#695}(mut?{mut <- `mut?`}, zt))) } ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec @@ -7039,22 +118598,22 @@ rec { ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:8.1-8.92 relation Steps: `%~>*%`(config, config) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:21.1-22.26 - rule refl{z : state, `instr*` : instr*}: - `%~>*%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z, instr*{instr <- `instr*`})) + rule refl{state#71 : state, `instr*#87` : instr*, z : state, `instr*` : instr*, state#83 : state, `instr*#99` : instr*}: + `%~>*%`(`%;%`_config{state#71, `instr*#87`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#83, `instr*#99`}(z, instr*{instr <- `instr*`})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:24.1-27.44 - rule trans{z : state, `instr*` : instr*, z'' : state, `instr''*` : instr*, z' : state, `instr'*` : instr*}: - `%~>*%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z'', instr''*{instr'' <- `instr''*`})) - -- Step: `%~>%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', instr'*{instr' <- `instr'*`})) - -- Steps: `%~>*%`(`%;%`_config(z', instr'*{instr' <- `instr'*`}), `%;%`_config(z'', instr''*{instr'' <- `instr''*`})) + rule trans{state#95 : state, `instr*#111` : instr*, z : state, `instr*` : instr*, state#107 : state, `instr*#123` : instr*, z'' : state, `instr''*` : instr*, state#119 : state, `instr*#135` : instr*, state#131 : state, `instr*#147` : instr*, z' : state, `instr'*` : instr*, state#143 : state, `instr*#159` : instr*, state#155 : state, `instr*#171` : instr*}: + `%~>*%`(`%;%`_config{state#95, `instr*#111`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#107, `instr*#123`}(z'', instr''*{instr'' <- `instr''*`})) + -- Step: `%~>%`(`%;%`_config{state#119, `instr*#135`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#131, `instr*#147`}(z', instr'*{instr' <- `instr'*`})) + -- Steps: `%~>*%`(`%;%`_config{state#143, `instr*#159`}(z', instr'*{instr' <- `instr'*`}), `%;%`_config{state#155, `instr*#171`}(z'', instr''*{instr'' <- `instr''*`})) } ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec relation Eval_expr: `%;%~>*%;%`(state, expr, state, val*) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule _{z : state, `instr*` : instr*, z' : state, `val*` : val*}: + rule _{z : state, `instr*` : instr*, z' : state, `val*` : val*, state#2195 : state, `instr*#2310` : instr*, state#2207 : state, `instr*#2322` : instr*}: `%;%~>*%;%`(z, instr*{instr <- `instr*`}, z', val*{val <- `val*`}) - -- Steps: `%~>*%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', (val : val <: instr)*{val <- `val*`})) + -- Steps: `%~>*%`(`%;%`_config{state#2195, `instr*#2310`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#2207, `instr*#2322`}(z', (val : val <: instr)*{val <- `val*`})) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -7064,18 +118623,18 @@ def $alloctypes(type*) : deftype* ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec:8.1-8.27 def $alloctypes([]) = [] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec:9.1-13.24 - def $alloctypes{`type'*` : type*, type : type, `deftype'*` : deftype*, `deftype*` : deftype*, rectype : rectype, x : idx}(type'*{type' <- `type'*`} ++ [type]) = deftype'*{deftype' <- `deftype'*`} ++ deftype*{deftype <- `deftype*`} + def $alloctypes{`type'*` : type*, type : type, `deftype'*` : deftype*, `deftype*` : deftype*, rectype#1449 : rectype, rectype : rectype, x : idx, i#46777 : nat}(type'*{type' <- `type'*`} ++ [type]) = deftype'*{deftype' <- `deftype'*`} ++ deftype*{deftype <- `deftype*`} -- if (deftype'*{deftype' <- `deftype'*`} = $alloctypes(type'*{type' <- `type'*`})) - -- if (type = TYPE_type(rectype)) + -- if (type = `TYPE`_type{rectype#1449}(rectype)) -- if (deftype*{deftype <- `deftype*`} = $subst_all_deftypes($rolldt(x, rectype), (deftype' : deftype <: typeuse)*{deftype' <- `deftype'*`})) - -- if (x!`%`_idx.0 = |deftype'*{deftype' <- `deftype'*`}|) + -- if (x!`%`_idx{i#46777}.0 = |deftype'*{deftype' <- `deftype'*`}|) } ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $alloctag(store : store, tagtype : tagtype) : (store, tagaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctag{s : store, tagtype : tagtype, taginst : taginst}(s, tagtype) = (s +++ {TAGS [taginst], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], STRUCTS [], ARRAYS [], EXNS []}, |s.TAGS_store|) - -- if (taginst = {TYPE tagtype}) + def $alloctag{s : store, tagtype : tagtype, `taginst*#5` : taginst*, taginst : taginst, `globalinst*#6` : globalinst*, `meminst*#7` : meminst*, `tableinst*#7` : tableinst*, `funcinst*#6` : funcinst*, `datainst*#5` : datainst*, `eleminst*#5` : eleminst*, `structinst*#6` : structinst*, `arrayinst*#6` : arrayinst*, `exninst*#5` : exninst*, `taginst*#6` : taginst*, tagtype#181 : tagtype}(s, tagtype) = (s +++ {`TAGS`{`taginst*#5`} [taginst], `GLOBALS`{`globalinst*#6`} [], `MEMS`{`meminst*#7`} [], `TABLES`{`tableinst*#7`} [], `FUNCS`{`funcinst*#6`} [], `DATAS`{`datainst*#5`} [], `ELEMS`{`eleminst*#5`} [], `STRUCTS`{`structinst*#6`} [], `ARRAYS`{`arrayinst*#6`} [], `EXNS`{`exninst*#5`} []}, |s.`TAGS`_store{`taginst*#6`}|) + -- if (taginst = {`TYPE`{tagtype#181} tagtype}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -7093,8 +118652,8 @@ def $alloctags(store : store, tagtype*) : (store, tagaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocglobal(store : store, globaltype : globaltype, val : val) : (store, globaladdr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocglobal{s : store, globaltype : globaltype, val : val, globalinst : globalinst}(s, globaltype, val) = (s +++ {TAGS [], GLOBALS [globalinst], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], STRUCTS [], ARRAYS [], EXNS []}, |s.GLOBALS_store|) - -- if (globalinst = {TYPE globaltype, VALUE val}) + def $allocglobal{s : store, globaltype : globaltype, val : val, `taginst*#7` : taginst*, `globalinst*#7` : globalinst*, globalinst : globalinst, `meminst*#8` : meminst*, `tableinst*#8` : tableinst*, `funcinst*#7` : funcinst*, `datainst*#6` : datainst*, `eleminst*#6` : eleminst*, `structinst*#7` : structinst*, `arrayinst*#7` : arrayinst*, `exninst*#6` : exninst*, `globalinst*#8` : globalinst*, globaltype#2088 : globaltype, val#3 : val}(s, globaltype, val) = (s +++ {`TAGS`{`taginst*#7`} [], `GLOBALS`{`globalinst*#7`} [globalinst], `MEMS`{`meminst*#8`} [], `TABLES`{`tableinst*#8`} [], `FUNCS`{`funcinst*#7`} [], `DATAS`{`datainst*#6`} [], `ELEMS`{`eleminst*#6`} [], `STRUCTS`{`structinst*#7`} [], `ARRAYS`{`arrayinst*#7`} [], `EXNS`{`exninst*#6`} []}, |s.`GLOBALS`_store{`globalinst*#8`}|) + -- if (globalinst = {`TYPE`{globaltype#2088} globaltype, `VALUE`{val#3} val}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -7112,8 +118671,8 @@ def $allocglobals(store : store, globaltype*, val*) : (store, globaladdr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocmem(store : store, memtype : memtype) : (store, memaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocmem{s : store, at : addrtype, i : u64, `j?` : u64?, meminst : meminst}(s, `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`}))) = (s +++ {TAGS [], GLOBALS [], MEMS [meminst], TABLES [], FUNCS [], DATAS [], ELEMS [], STRUCTS [], ARRAYS [], EXNS []}, |s.MEMS_store|) - -- if (meminst = {TYPE `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), BYTES `%`_byte(0)^(i!`%`_u64.0 * (64 * $Ki)){}}) + def $allocmem{s : store, addrtype#1147 : addrtype, limits#1147 : limits, at : addrtype, u64#443 : u64, `u64?#419` : u64?, i : u64, `j?` : u64?, `taginst*#8` : taginst*, `globalinst*#9` : globalinst*, `meminst*#9` : meminst*, meminst : meminst, `tableinst*#9` : tableinst*, `funcinst*#8` : funcinst*, `datainst*#7` : datainst*, `eleminst*#7` : eleminst*, `structinst*#8` : structinst*, `arrayinst*#8` : arrayinst*, `exninst*#7` : exninst*, `meminst*#10` : meminst*, memtype#531 : memtype, addrtype#1159 : addrtype, limits#1159 : limits, u64#455 : u64, `u64?#431` : u64?, `byte*#1879` : byte*, i#46867 : nat, `i#46875*` : nat*}(s, `%%PAGE`_memtype{addrtype#1147, limits#1147}(at, `[%..%]`_limits{u64#443, `u64?#419`}(i, j?{j <- `j?`}))) = (s +++ {`TAGS`{`taginst*#8`} [], `GLOBALS`{`globalinst*#9`} [], `MEMS`{`meminst*#9`} [meminst], `TABLES`{`tableinst*#9`} [], `FUNCS`{`funcinst*#8`} [], `DATAS`{`datainst*#7`} [], `ELEMS`{`eleminst*#7`} [], `STRUCTS`{`structinst*#8`} [], `ARRAYS`{`arrayinst*#8`} [], `EXNS`{`exninst*#7`} []}, |s.`MEMS`_store{`meminst*#10`}|) + -- if (meminst = {`TYPE`{memtype#531} `%%PAGE`_memtype{addrtype#1159, limits#1159}(at, `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1879`} `%`_byte{i#46875}(0)^(i!`%`_u64{i#46867}.0 * (64 * $Ki)){i#46875 <- `i#46875*`}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -7131,8 +118690,8 @@ def $allocmems(store : store, memtype*) : (store, memaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $alloctable(store : store, tabletype : tabletype, ref : ref) : (store, tableaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctable{s : store, at : addrtype, i : u64, `j?` : u64?, rt : reftype, ref : ref, tableinst : tableinst}(s, `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), ref) = (s +++ {TAGS [], GLOBALS [], MEMS [], TABLES [tableinst], FUNCS [], DATAS [], ELEMS [], STRUCTS [], ARRAYS [], EXNS []}, |s.TABLES_store|) - -- if (tableinst = {TYPE `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), REFS ref^i!`%`_u64.0{}}) + def $alloctable{s : store, addrtype#1219 : addrtype, limits#1219 : limits, reftype#3485 : reftype, at : addrtype, u64#467 : u64, `u64?#443` : u64?, i : u64, `j?` : u64?, rt : reftype, ref : ref, `taginst*#9` : taginst*, `globalinst*#10` : globalinst*, `meminst*#11` : meminst*, `tableinst*#10` : tableinst*, tableinst : tableinst, `funcinst*#9` : funcinst*, `datainst*#8` : datainst*, `eleminst*#8` : eleminst*, `structinst*#9` : structinst*, `arrayinst*#9` : arrayinst*, `exninst*#8` : exninst*, `tableinst*#11` : tableinst*, tabletype#881 : tabletype, addrtype#1231 : addrtype, limits#1231 : limits, reftype#3497 : reftype, u64#479 : u64, `u64?#455` : u64?, `ref*#22` : ref*, i#46955 : nat}(s, `%%%`_tabletype{addrtype#1219, limits#1219, reftype#3485}(at, `[%..%]`_limits{u64#467, `u64?#443`}(i, j?{j <- `j?`}), rt), ref) = (s +++ {`TAGS`{`taginst*#9`} [], `GLOBALS`{`globalinst*#10`} [], `MEMS`{`meminst*#11`} [], `TABLES`{`tableinst*#10`} [tableinst], `FUNCS`{`funcinst*#9`} [], `DATAS`{`datainst*#8`} [], `ELEMS`{`eleminst*#8`} [], `STRUCTS`{`structinst*#9`} [], `ARRAYS`{`arrayinst*#9`} [], `EXNS`{`exninst*#8`} []}, |s.`TABLES`_store{`tableinst*#11`}|) + -- if (tableinst = {`TYPE`{tabletype#881} `%%%`_tabletype{addrtype#1231, limits#1231, reftype#3497}(at, `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#22`} ref^i!`%`_u64{i#46955}.0{}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -7150,8 +118709,8 @@ def $alloctables(store : store, tabletype*, ref*) : (store, tableaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocfunc(store : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst) : (store, funcaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocfunc{s : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst, funcinst : funcinst}(s, deftype, funccode, moduleinst) = (s +++ {TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [funcinst], DATAS [], ELEMS [], STRUCTS [], ARRAYS [], EXNS []}, |s.FUNCS_store|) - -- if (funcinst = {TYPE deftype, MODULE moduleinst, CODE funccode}) + def $allocfunc{s : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst, `taginst*#10` : taginst*, `globalinst*#11` : globalinst*, `meminst*#12` : meminst*, `tableinst*#12` : tableinst*, `funcinst*#10` : funcinst*, funcinst : funcinst, `datainst*#9` : datainst*, `eleminst*#9` : eleminst*, `structinst*#10` : structinst*, `arrayinst*#10` : arrayinst*, `exninst*#9` : exninst*, `funcinst*#11` : funcinst*, deftype#11 : deftype, moduleinst#25 : moduleinst, funccode#2 : funccode}(s, deftype, funccode, moduleinst) = (s +++ {`TAGS`{`taginst*#10`} [], `GLOBALS`{`globalinst*#11`} [], `MEMS`{`meminst*#12`} [], `TABLES`{`tableinst*#12`} [], `FUNCS`{`funcinst*#10`} [funcinst], `DATAS`{`datainst*#9`} [], `ELEMS`{`eleminst*#9`} [], `STRUCTS`{`structinst*#10`} [], `ARRAYS`{`arrayinst*#10`} [], `EXNS`{`exninst*#9`} []}, |s.`FUNCS`_store{`funcinst*#11`}|) + -- if (funcinst = {`TYPE`{deftype#11} deftype, `MODULE`{moduleinst#25} moduleinst, `CODE`{funccode#2} funccode}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -7169,8 +118728,8 @@ def $allocfuncs(store : store, deftype*, funccode*, moduleinst*) : (store, funca ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocdata(store : store, datatype : datatype, byte*) : (store, dataaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocdata{s : store, `byte*` : byte*, datainst : datainst}(s, OK_datatype, byte*{byte <- `byte*`}) = (s +++ {TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [datainst], ELEMS [], STRUCTS [], ARRAYS [], EXNS []}, |s.DATAS_store|) - -- if (datainst = {BYTES byte*{byte <- `byte*`}}) + def $allocdata{s : store, `byte*` : byte*, `taginst*#11` : taginst*, `globalinst*#12` : globalinst*, `meminst*#13` : meminst*, `tableinst*#13` : tableinst*, `funcinst*#12` : funcinst*, `datainst*#10` : datainst*, datainst : datainst, `eleminst*#10` : eleminst*, `structinst*#11` : structinst*, `arrayinst*#11` : arrayinst*, `exninst*#10` : exninst*, `datainst*#11` : datainst*, `byte*#1880` : byte*}(s, `OK`_datatype, byte*{byte <- `byte*`}) = (s +++ {`TAGS`{`taginst*#11`} [], `GLOBALS`{`globalinst*#12`} [], `MEMS`{`meminst*#13`} [], `TABLES`{`tableinst*#13`} [], `FUNCS`{`funcinst*#12`} [], `DATAS`{`datainst*#10`} [datainst], `ELEMS`{`eleminst*#10`} [], `STRUCTS`{`structinst*#11`} [], `ARRAYS`{`arrayinst*#11`} [], `EXNS`{`exninst*#10`} []}, |s.`DATAS`_store{`datainst*#11`}|) + -- if (datainst = {`BYTES`{`byte*#1880`} byte*{byte <- `byte*`}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -7188,8 +118747,8 @@ def $allocdatas(store : store, datatype*, byte**) : (store, dataaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocelem(store : store, elemtype : elemtype, ref*) : (store, elemaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocelem{s : store, elemtype : elemtype, `ref*` : ref*, eleminst : eleminst}(s, elemtype, ref*{ref <- `ref*`}) = (s +++ {TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [eleminst], STRUCTS [], ARRAYS [], EXNS []}, |s.ELEMS_store|) - -- if (eleminst = {TYPE elemtype, REFS ref*{ref <- `ref*`}}) + def $allocelem{s : store, elemtype : elemtype, `ref*` : ref*, `taginst*#12` : taginst*, `globalinst*#13` : globalinst*, `meminst*#14` : meminst*, `tableinst*#14` : tableinst*, `funcinst*#13` : funcinst*, `datainst*#12` : datainst*, `eleminst*#11` : eleminst*, eleminst : eleminst, `structinst*#12` : structinst*, `arrayinst*#12` : arrayinst*, `exninst*#11` : exninst*, `eleminst*#12` : eleminst*, elemtype#1 : elemtype, `ref*#23` : ref*}(s, elemtype, ref*{ref <- `ref*`}) = (s +++ {`TAGS`{`taginst*#12`} [], `GLOBALS`{`globalinst*#13`} [], `MEMS`{`meminst*#14`} [], `TABLES`{`tableinst*#14`} [], `FUNCS`{`funcinst*#13`} [], `DATAS`{`datainst*#12`} [], `ELEMS`{`eleminst*#11`} [eleminst], `STRUCTS`{`structinst*#12`} [], `ARRAYS`{`arrayinst*#12`} [], `EXNS`{`exninst*#11`} []}, |s.`ELEMS`_store{`eleminst*#12`}|) + -- if (eleminst = {`TYPE`{elemtype#1} elemtype, `REFS`{`ref*#23`} ref*{ref <- `ref*`}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -7207,15 +118766,15 @@ def $allocelems(store : store, elemtype*, ref**) : (store, elemaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocexport(moduleinst : moduleinst, export : export) : exportinst ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, EXPORT_export(name, TAG_externidx(x))) = {NAME name, ADDR TAG_externaddr(moduleinst.TAGS_moduleinst[x!`%`_idx.0])} + def $allocexport{moduleinst : moduleinst, name#5597 : name, externidx#5379 : externidx, name : name, tagidx#17 : tagidx, x : idx, name#5599 : name, externaddr#1 : externaddr, tagaddr#8 : tagaddr, `tagaddr*#4` : tagaddr*, i#47111 : nat}(moduleinst, `EXPORT`_export{name#5597, externidx#5379}(name, `TAG`_externidx{tagidx#17}(x))) = {`NAME`{name#5599} name, `ADDR`{externaddr#1} `TAG`_externaddr{tagaddr#8}(moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}[x!`%`_idx{i#47111}.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, EXPORT_export(name, GLOBAL_externidx(x))) = {NAME name, ADDR GLOBAL_externaddr(moduleinst.GLOBALS_moduleinst[x!`%`_idx.0])} + def $allocexport{moduleinst : moduleinst, name#5610 : name, externidx#5391 : externidx, name : name, globalidx#21 : globalidx, x : idx, name#5612 : name, externaddr#2 : externaddr, globaladdr#5 : globaladdr, `globaladdr*#3` : globaladdr*, i#47135 : nat}(moduleinst, `EXPORT`_export{name#5610, externidx#5391}(name, `GLOBAL`_externidx{globalidx#21}(x))) = {`NAME`{name#5612} name, `ADDR`{externaddr#2} `GLOBAL`_externaddr{globaladdr#5}(moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}[x!`%`_idx{i#47135}.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, EXPORT_export(name, MEM_externidx(x))) = {NAME name, ADDR MEM_externaddr(moduleinst.MEMS_moduleinst[x!`%`_idx.0])} + def $allocexport{moduleinst : moduleinst, name#5623 : name, externidx#5403 : externidx, name : name, memidx#163 : memidx, x : idx, name#5625 : name, externaddr#3 : externaddr, memaddr#5 : memaddr, `memaddr*#4` : memaddr*, i#47159 : nat}(moduleinst, `EXPORT`_export{name#5623, externidx#5403}(name, `MEM`_externidx{memidx#163}(x))) = {`NAME`{name#5625} name, `ADDR`{externaddr#3} `MEM`_externaddr{memaddr#5}(moduleinst.`MEMS`_moduleinst{`memaddr*#4`}[x!`%`_idx{i#47159}.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, EXPORT_export(name, TABLE_externidx(x))) = {NAME name, ADDR TABLE_externaddr(moduleinst.TABLES_moduleinst[x!`%`_idx.0])} + def $allocexport{moduleinst : moduleinst, name#5636 : name, externidx#5415 : externidx, name : name, tableidx#117 : tableidx, x : idx, name#5638 : name, externaddr#4 : externaddr, tableaddr#5 : tableaddr, `tableaddr*#4` : tableaddr*, i#47183 : nat}(moduleinst, `EXPORT`_export{name#5636, externidx#5415}(name, `TABLE`_externidx{tableidx#117}(x))) = {`NAME`{name#5638} name, `ADDR`{externaddr#4} `TABLE`_externaddr{tableaddr#5}(moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}[x!`%`_idx{i#47183}.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, EXPORT_export(name, FUNC_externidx(x))) = {NAME name, ADDR FUNC_externaddr(moduleinst.FUNCS_moduleinst[x!`%`_idx.0])} + def $allocexport{moduleinst : moduleinst, name#5649 : name, externidx#5427 : externidx, name : name, funcidx#2843 : funcidx, x : idx, name#5651 : name, externaddr#5 : externaddr, funcaddr#19 : funcaddr, `funcaddr*#5` : funcaddr*, i#47207 : nat}(moduleinst, `EXPORT`_export{name#5649, externidx#5427}(name, `FUNC`_externidx{funcidx#2843}(x))) = {`NAME`{name#5651} name, `ADDR`{externaddr#5} `FUNC`_externaddr{funcaddr#19}(moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}[x!`%`_idx{i#47207}.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocexports(moduleinst : moduleinst, export*) : exportinst* @@ -7225,47 +118784,47 @@ def $allocexports(moduleinst : moduleinst, export*) : exportinst* ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) : (store, moduleinst) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocmodule{s : store, module : module, `externaddr*` : externaddr*, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, s_7 : store, moduleinst : moduleinst, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `tagtype*` : tagtype*, `globaltype*` : globaltype*, `expr_G*` : expr*, `memtype*` : memtype*, `tabletype*` : tabletype*, `expr_T*` : expr*, `x*` : idx*, `local**` : local**, `expr_F*` : expr*, `byte**` : byte**, `datamode*` : datamode*, `elemtype*` : elemtype*, `expr_E**` : expr**, `elemmode*` : elemmode*, `aa_I*` : tagaddr*, `ga_I*` : globaladdr*, `ma_I*` : memaddr*, `ta_I*` : tableaddr*, `fa_I*` : funcaddr*, `dt*` : deftype*, `fa*` : nat*, `i_F*` : nat*, s_1 : store, `aa*` : tagaddr*, s_2 : store, `ga*` : globaladdr*, s_3 : store, `ma*` : memaddr*, s_4 : store, `ta*` : tableaddr*, s_5 : store, `da*` : dataaddr*, s_6 : store, `ea*` : elemaddr*, `xi*` : exportinst*}(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}) = (s_7, moduleinst) - -- if (module = MODULE_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) - -- if (tag*{tag <- `tag*`} = TAG_tag(tagtype)*{tagtype <- `tagtype*`}) - -- if (global*{global <- `global*`} = GLOBAL_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}) - -- if (mem*{mem <- `mem*`} = MEMORY_mem(memtype)*{memtype <- `memtype*`}) - -- if (table*{table <- `table*`} = TABLE_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}) - -- if (func*{func <- `func*`} = FUNC_func(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}) - -- if (data*{data <- `data*`} = DATA_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}) - -- if (elem*{elem <- `elem*`} = ELEM_elem(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemtype <- `elemtype*`, `expr_E*` <- `expr_E**`}) + def $allocmodule{s : store, module : module, `externaddr*` : externaddr*, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, s_7 : store, moduleinst : moduleinst, `type*#101` : type*, `import*#101` : import*, `tag*#101` : tag*, `global*#125` : global*, `mem*#125` : mem*, `table*#125` : table*, `func*#101` : func*, `data*#101` : data*, `elem*#125` : elem*, `start?#101` : start?, `export*#101` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `tagtype*` : tagtype*, `tagtype#260*` : tagtype*, `expr#4459*` : expr*, `expr_G*` : expr*, `globaltype*` : globaltype*, `globaltype#2179*` : globaltype*, `memtype*` : memtype*, `memtype#634*` : memtype*, `expr#4477*` : expr*, `expr_T*` : expr*, `tabletype*` : tabletype*, `tabletype#998*` : tabletype*, `expr#4495*` : expr*, `expr_F*` : expr*, `local**` : local**, `local*#1351*` : local**, `typeidx#1808*` : typeidx*, `x*` : idx*, `byte**` : byte**, `byte*#2021*` : byte**, `datamode*` : datamode*, `datamode#1985*` : datamode*, `elemmode*` : elemmode*, `elemmode#3087*` : elemmode*, `elemtype*` : elemtype*, `expr*#3087*` : expr**, `expr_E**` : expr**, `reftype#3705*` : reftype*, `aa_I*` : tagaddr*, `ga_I*` : globaladdr*, `ma_I*` : memaddr*, `ta_I*` : tableaddr*, `fa_I*` : funcaddr*, `dt*` : deftype*, `fa*` : nat*, i_F : nat, `funcinst*#14*` : funcinst**, s_1 : store, `aa*` : tagaddr*, s_2 : store, `ga*` : globaladdr*, s_3 : store, `ma*` : memaddr*, s_4 : store, `ta*` : tableaddr*, s_5 : store, `da*` : dataaddr*, s_6 : store, `ea*` : elemaddr*, `i#47295*` : nat*, `expr#4497*` : expr*, `local*#1353*` : local**, `typeidx#1810*` : typeidx*, `xi*` : exportinst*, `deftype*#94` : deftype*, `tagaddr*#5` : tagaddr*, `globaladdr*#4` : globaladdr*, `memaddr*#5` : memaddr*, `tableaddr*#5` : tableaddr*, `funcaddr*#6` : funcaddr*, `dataaddr*#3` : dataaddr*, `elemaddr*#3` : elemaddr*, `exportinst*#1` : exportinst*, `deftype*#95` : deftype*, `tagaddr*#6` : tagaddr*, `globaladdr*#5` : globaladdr*, `memaddr*#6` : memaddr*, `tableaddr*#6` : tableaddr*, `funcaddr*#7` : funcaddr*, `dataaddr*#4` : dataaddr*, `elemaddr*#4` : elemaddr*, `exportinst*#2` : exportinst*}(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}) = (s_7, moduleinst) + -- if (module = `MODULE`_module{`type*#101`, `import*#101`, `tag*#101`, `global*#125`, `mem*#125`, `table*#125`, `func*#101`, `data*#101`, `elem*#125`, `start?#101`, `export*#101`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) + -- if (tag*{tag <- `tag*`} = `TAG`_tag{tagtype#260}(tagtype)*{tagtype <- `tagtype*`, tagtype#260 <- `tagtype#260*`}) + -- if (global*{global <- `global*`} = `GLOBAL`_global{globaltype#2179, expr#4459}(globaltype, expr_G)*{expr#4459 <- `expr#4459*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2179 <- `globaltype#2179*`}) + -- if (mem*{mem <- `mem*`} = `MEMORY`_mem{memtype#634}(memtype)*{memtype <- `memtype*`, memtype#634 <- `memtype#634*`}) + -- if (table*{table <- `table*`} = `TABLE`_table{tabletype#998, expr#4477}(tabletype, expr_T)*{expr#4477 <- `expr#4477*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#998 <- `tabletype#998*`}) + -- if (func*{func <- `func*`} = `FUNC`_func{typeidx#1808, `local*#1351`, expr#4495}(x, local*{local <- `local*`}, expr_F)*{expr#4495 <- `expr#4495*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1351` <- `local*#1351*`, typeidx#1808 <- `typeidx#1808*`, x <- `x*`}) + -- if (data*{data <- `data*`} = `DATA`_data{`byte*#2021`, datamode#1985}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2021` <- `byte*#2021*`, datamode <- `datamode*`, datamode#1985 <- `datamode#1985*`}) + -- if (elem*{elem <- `elem*`} = `ELEM`_elem{reftype#3705, `expr*#3087`, elemmode#3087}(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3087 <- `elemmode#3087*`, elemtype <- `elemtype*`, `expr*#3087` <- `expr*#3087*`, `expr_E*` <- `expr_E**`, reftype#3705 <- `reftype#3705*`}) -- if (aa_I*{aa_I <- `aa_I*`} = $tagsxa(externaddr*{externaddr <- `externaddr*`})) -- if (ga_I*{ga_I <- `ga_I*`} = $globalsxa(externaddr*{externaddr <- `externaddr*`})) -- if (ma_I*{ma_I <- `ma_I*`} = $memsxa(externaddr*{externaddr <- `externaddr*`})) -- if (ta_I*{ta_I <- `ta_I*`} = $tablesxa(externaddr*{externaddr <- `externaddr*`})) -- if (fa_I*{fa_I <- `fa_I*`} = $funcsxa(externaddr*{externaddr <- `externaddr*`})) -- if (dt*{dt <- `dt*`} = $alloctypes(type*{type <- `type*`})) - -- if (fa*{fa <- `fa*`} = (|s.FUNCS_store| + i_F)^(i_F<|func*{func <- `func*`}|){i_F <- `i_F*`}) + -- if (fa*{fa <- `fa*`} = (|s.`FUNCS`_store{`funcinst*#14`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#14` <- `funcinst*#14*`}) -- if ((s_1, aa*{aa <- `aa*`}) = $alloctags(s, $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tagtype <- `tagtype*`})) -- if ((s_2, ga*{ga <- `ga*`}) = $allocglobals(s_1, $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{globaltype <- `globaltype*`}, val_G*{val_G <- `val_G*`})) -- if ((s_3, ma*{ma <- `ma*`}) = $allocmems(s_2, $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{memtype <- `memtype*`})) -- if ((s_4, ta*{ta <- `ta*`}) = $alloctables(s_3, $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tabletype <- `tabletype*`}, ref_T*{ref_T <- `ref_T*`})) - -- if ((s_5, da*{da <- `da*`}) = $allocdatas(s_4, OK_datatype^|data*{data <- `data*`}|{}, byte*{byte <- `byte*`}*{`byte*` <- `byte**`})) + -- if ((s_5, da*{da <- `da*`}) = $allocdatas(s_4, `OK`_datatype^|data*{data <- `data*`}|{}, byte*{byte <- `byte*`}*{`byte*` <- `byte**`})) -- if ((s_6, ea*{ea <- `ea*`}) = $allocelems(s_5, $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{elemtype <- `elemtype*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})) - -- if ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx.0]*{x <- `x*`}, FUNC_funccode(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})) - -- if (xi*{xi <- `xi*`} = $allocexports({TYPES [], TAGS aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, GLOBALS ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, MEMS ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, TABLES ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, FUNCS fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, DATAS [], ELEMS [], EXPORTS []}, export*{export <- `export*`})) - -- if (moduleinst = {TYPES dt*{dt <- `dt*`}, TAGS aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, GLOBALS ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, MEMS ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, TABLES ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, FUNCS fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, DATAS da*{da <- `da*`}, ELEMS ea*{ea <- `ea*`}, EXPORTS xi*{xi <- `xi*`}}) + -- if ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx{i#47295}.0]*{i#47295 <- `i#47295*`, x <- `x*`}, `FUNC`_funccode{typeidx#1810, `local*#1353`, expr#4497}(x, local*{local <- `local*`}, expr_F)*{expr#4497 <- `expr#4497*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1353` <- `local*#1353*`, typeidx#1810 <- `typeidx#1810*`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})) + -- if (xi*{xi <- `xi*`} = $allocexports({`TYPES`{`deftype*#94`} [], `TAGS`{`tagaddr*#5`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#4`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#5`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#5`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#6`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#3`} [], `ELEMS`{`elemaddr*#3`} [], `EXPORTS`{`exportinst*#1`} []}, export*{export <- `export*`})) + -- if (moduleinst = {`TYPES`{`deftype*#95`} dt*{dt <- `dt*`}, `TAGS`{`tagaddr*#6`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#5`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#6`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#6`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#7`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#4`} da*{da <- `da*`}, `ELEMS`{`elemaddr*#4`} ea*{ea <- `ea*`}, `EXPORTS`{`exportinst*#2`} xi*{xi <- `xi*`}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $rundata_(dataidx : dataidx, data : data) : instr* ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $rundata_{x : idx, `b*` : byte*, n : n}(x, DATA_data(b^n{b <- `b*`}, PASSIVE_datamode)) = [] + def $rundata_{x : idx, `byte*#2033` : byte*, datamode#1997 : datamode, n : n, `b*` : byte*}(x, `DATA`_data{`byte*#2033`, datamode#1997}(b^n{b <- `b*`}, `PASSIVE`_datamode)) = [] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $rundata_{x : idx, `b*` : byte*, n : n, y : idx, `instr*` : instr*}(x, DATA_data(b^n{b <- `b*`}, ACTIVE_datamode(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [CONST_instr(I32_numtype, `%`_num_(0)) CONST_instr(I32_numtype, `%`_num_(n)) MEMORY.INIT_instr(y, x) DATA.DROP_instr(x)] + def $rundata_{x : idx, `byte*#2045` : byte*, datamode#2009 : datamode, n : n, `b*` : byte*, memidx#165 : memidx, expr#4499 : expr, y : idx, `instr*` : instr*, numtype#623 : numtype, i#47393 : nat, numtype#625 : numtype, i#47417 : nat, memidx#167 : memidx, dataidx#43 : dataidx, dataidx#45 : dataidx}(x, `DATA`_data{`byte*#2045`, datamode#2009}(b^n{b <- `b*`}, `ACTIVE`_datamode{memidx#165, expr#4499}(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr{numtype#623}(`I32`_numtype, `%`_num_{i#47393}(0)) `CONST`_instr{numtype#625}(`I32`_numtype, `%`_num_{i#47417}(n)) `MEMORY.INIT`_instr{memidx#167, dataidx#43}(y, x) `DATA.DROP`_instr{dataidx#45}(x)] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $runelem_(elemidx : elemidx, elem : elem) : instr* ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, rt : reftype, `e*` : expr*, n : n}(x, ELEM_elem(rt, e^n{e <- `e*`}, PASSIVE_elemmode)) = [] + def $runelem_{x : idx, reftype#3735 : reftype, `expr*#3099` : expr*, elemmode#3099 : elemmode, rt : reftype, n : n, `e*` : expr*}(x, `ELEM`_elem{reftype#3735, `expr*#3099`, elemmode#3099}(rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)) = [] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, rt : reftype, `e*` : expr*, n : n}(x, ELEM_elem(rt, e^n{e <- `e*`}, DECLARE_elemmode)) = [ELEM.DROP_instr(x)] + def $runelem_{x : idx, reftype#3747 : reftype, `expr*#3111` : expr*, elemmode#3111 : elemmode, rt : reftype, n : n, `e*` : expr*, elemidx#43 : elemidx}(x, `ELEM`_elem{reftype#3747, `expr*#3111`, elemmode#3111}(rt, e^n{e <- `e*`}, `DECLARE`_elemmode)) = [`ELEM.DROP`_instr{elemidx#43}(x)] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, rt : reftype, `e*` : expr*, n : n, y : idx, `instr*` : instr*}(x, ELEM_elem(rt, e^n{e <- `e*`}, ACTIVE_elemmode(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [CONST_instr(I32_numtype, `%`_num_(0)) CONST_instr(I32_numtype, `%`_num_(n)) TABLE.INIT_instr(y, x) ELEM.DROP_instr(x)] + def $runelem_{x : idx, reftype#3759 : reftype, `expr*#3123` : expr*, elemmode#3123 : elemmode, rt : reftype, n : n, `e*` : expr*, tableidx#119 : tableidx, expr#4501 : expr, y : idx, `instr*` : instr*, numtype#627 : numtype, i#47545 : nat, numtype#629 : numtype, i#47569 : nat, tableidx#121 : tableidx, elemidx#45 : elemidx, elemidx#47 : elemidx}(x, `ELEM`_elem{reftype#3759, `expr*#3123`, elemmode#3123}(rt, e^n{e <- `e*`}, `ACTIVE`_elemmode{tableidx#119, expr#4501}(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr{numtype#627}(`I32`_numtype, `%`_num_{i#47545}(0)) `CONST`_instr{numtype#629}(`I32`_numtype, `%`_num_{i#47569}(n)) `TABLE.INIT`_instr{tableidx#121, elemidx#45}(y, x) `ELEM.DROP`_instr{elemidx#47}(x)] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -7275,46 +118834,46 @@ def $evalglobals(state : state, globaltype*, expr*) : (state, val*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec:161.1-161.41 def $evalglobals{z : state}(z, [], []) = (z, []) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec:162.1-167.81 - def $evalglobals{z : state, gt : globaltype, `gt'*` : globaltype*, expr : expr, `expr'*` : expr*, z' : state, val : val, `val'*` : val*, s : store, f : frame, s' : store, a : addr}(z, [gt] ++ gt'*{gt' <- `gt'*`}, [expr] ++ expr'*{expr' <- `expr'*`}) = (z', [val] ++ val'*{val' <- `val'*`}) + def $evalglobals{z : state, gt : globaltype, `gt'*` : globaltype*, expr : expr, `expr'*` : expr*, z' : state, val : val, `val'*` : val*, store#2543 : store, frame#2561 : frame, s : store, f : frame, s' : store, a : addr, store#2555 : store, frame#2573 : frame, moduleinst#26 : moduleinst, `globaladdr*#6` : globaladdr*}(z, [gt] ++ gt'*{gt' <- `gt'*`}, [expr] ++ expr'*{expr' <- `expr'*`}) = (z', [val] ++ val'*{val' <- `val'*`}) -- Eval_expr: `%;%~>*%;%`(z, expr, z, [val]) - -- if (z = `%;%`_state(s, f)) + -- if (z = `%;%`_state{store#2543, frame#2561}(s, f)) -- if ((s', a) = $allocglobal(s, gt, val)) - -- if ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state(s', f[MODULE_frame.GLOBALS_moduleinst =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})) + -- if ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state{store#2555, frame#2573}(s', f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})) } ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $instantiate(store : store, module : module, externaddr*) : config ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $instantiate{s : store, module : module, `externaddr*` : externaddr*, s' : store, moduleinst : moduleinst, `instr_E*` : instr*, `instr_D*` : instr*, `instr_S?` : instr?, `xt_I*` : externtype*, `xt_E*` : externtype*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `globaltype*` : globaltype*, `expr_G*` : expr*, `tabletype*` : tabletype*, `expr_T*` : expr*, `byte**` : byte**, `datamode*` : datamode*, `reftype*` : reftype*, `expr_E**` : expr**, `elemmode*` : elemmode*, `x?` : idx?, moduleinst_0 : moduleinst, `i_F*` : nat*, z : state, z' : state, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, `i_D*` : nat*, `i_E*` : nat*}(s, module, externaddr*{externaddr <- `externaddr*`}) = `%;%`_config(`%;%`_state(s', {LOCALS [], MODULE moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})) - -- Module_ok: `|-%:%`(module, `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})) + def $instantiate{s : store, module : module, `externaddr*` : externaddr*, state#2219 : state, `instr*#2334` : instr*, store#2627 : store, frame#2645 : frame, s' : store, `val?*#6` : val?*, moduleinst#28 : moduleinst, moduleinst : moduleinst, `instr_E*` : instr*, `instr_D*` : instr*, `instr_S?` : instr?, `externtype*#168` : externtype*, `xt_I*` : externtype*, `xt_E*` : externtype*, `type*#125` : type*, `import*#125` : import*, `tag*#125` : tag*, `global*#149` : global*, `mem*#149` : mem*, `table*#149` : table*, `func*#125` : func*, `data*#125` : data*, `elem*#149` : elem*, `start?#125` : start?, `export*#125` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `expr#4805*` : expr*, `expr_G*` : expr*, `globaltype*` : globaltype*, `globaltype#2271*` : globaltype*, `expr#4823*` : expr*, `expr_T*` : expr*, `tabletype*` : tabletype*, `tabletype#1116*` : tabletype*, `byte**` : byte**, `byte*#2187*` : byte**, `datamode*` : datamode*, `datamode#2151*` : datamode*, `elemmode*` : elemmode*, `elemmode#3277*` : elemmode*, `expr*#3277*` : expr**, `expr_E**` : expr**, `reftype*` : reftype*, `reftype#3919*` : reftype*, `funcidx#3157?` : funcidx?, `x?` : idx?, moduleinst_0 : moduleinst, `deftype*#96` : deftype*, `tagaddr*#7` : tagaddr*, `globaladdr*#7` : globaladdr*, `memaddr*#7` : memaddr*, `tableaddr*#7` : tableaddr*, `funcaddr*#8` : funcaddr*, i_F : nat, `funcinst*#15*` : funcinst**, `dataaddr*#5` : dataaddr*, `elemaddr*#5` : elemaddr*, `exportinst*#3` : exportinst*, z : state, store#2579 : store, frame#2597 : frame, `val?*#5` : val?*, moduleinst#27 : moduleinst, z' : state, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, i_D : nat, `i#47725*` : nat*, i_E : nat, `i#47785*` : nat*, `funcidx#3159?` : funcidx?}(s, module, externaddr*{externaddr <- `externaddr*`}) = `%;%`_config{state#2219, `instr*#2334`}(`%;%`_state{store#2627, frame#2645}(s', {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})) + -- Module_ok: `|-%:%`(module, `%->%`_moduletype{`externtype*#168`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})) -- (Externaddr_ok: `%|-%:%`(s, externaddr, xt_I))*{externaddr <- `externaddr*`, xt_I <- `xt_I*`} - -- if (module = MODULE_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) - -- if (global*{global <- `global*`} = GLOBAL_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}) - -- if (table*{table <- `table*`} = TABLE_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}) - -- if (data*{data <- `data*`} = DATA_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}) - -- if (elem*{elem <- `elem*`} = ELEM_elem(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`}) - -- if (start?{start <- `start?`} = START_start(x)?{x <- `x?`}) - -- if (moduleinst_0 = {TYPES $alloctypes(type*{type <- `type*`}), TAGS [], GLOBALS $globalsxa(externaddr*{externaddr <- `externaddr*`}), MEMS [], TABLES [], FUNCS $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.FUNCS_store| + i_F)^(i_F<|func*{func <- `func*`}|){i_F <- `i_F*`}, DATAS [], ELEMS [], EXPORTS []}) - -- if (z = `%;%`_state(s, {LOCALS [], MODULE moduleinst_0})) + -- if (module = `MODULE`_module{`type*#125`, `import*#125`, `tag*#125`, `global*#149`, `mem*#149`, `table*#149`, `func*#125`, `data*#125`, `elem*#149`, `start?#125`, `export*#125`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) + -- if (global*{global <- `global*`} = `GLOBAL`_global{globaltype#2271, expr#4805}(globaltype, expr_G)*{expr#4805 <- `expr#4805*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2271 <- `globaltype#2271*`}) + -- if (table*{table <- `table*`} = `TABLE`_table{tabletype#1116, expr#4823}(tabletype, expr_T)*{expr#4823 <- `expr#4823*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#1116 <- `tabletype#1116*`}) + -- if (data*{data <- `data*`} = `DATA`_data{`byte*#2187`, datamode#2151}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2187` <- `byte*#2187*`, datamode <- `datamode*`, datamode#2151 <- `datamode#2151*`}) + -- if (elem*{elem <- `elem*`} = `ELEM`_elem{reftype#3919, `expr*#3277`, elemmode#3277}(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3277 <- `elemmode#3277*`, `expr*#3277` <- `expr*#3277*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`, reftype#3919 <- `reftype#3919*`}) + -- if (start?{start <- `start?`} = `START`_start{funcidx#3157}(x)?{funcidx#3157 <- `funcidx#3157?`, x <- `x?`}) + -- if (moduleinst_0 = {`TYPES`{`deftype*#96`} $alloctypes(type*{type <- `type*`}), `TAGS`{`tagaddr*#7`} [], `GLOBALS`{`globaladdr*#7`} $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS`{`memaddr*#7`} [], `TABLES`{`tableaddr*#7`} [], `FUNCS`{`funcaddr*#8`} $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#15` <- `funcinst*#15*`}, `DATAS`{`dataaddr*#5`} [], `ELEMS`{`elemaddr*#5`} [], `EXPORTS`{`exportinst*#3`} []}) + -- if (z = `%;%`_state{store#2579, frame#2597}(s, {`LOCALS`{`val?*#5`} [], `MODULE`{moduleinst#27} moduleinst_0})) -- if ((z', val_G*{val_G <- `val_G*`}) = $evalglobals(z, globaltype*{globaltype <- `globaltype*`}, expr_G*{expr_G <- `expr_G*`})) -- (Eval_expr: `%;%~>*%;%`(z', expr_T, z', [(ref_T : ref <: val)]))*{expr_T <- `expr_T*`, ref_T <- `ref_T*`} -- (Eval_expr: `%;%~>*%;%`(z', expr_E, z', [(ref_E : ref <: val)]))*{expr_E <- `expr_E*`, ref_E <- `ref_E*`}*{`expr_E*` <- `expr_E**`, `ref_E*` <- `ref_E**`} -- if ((s', moduleinst) = $allocmodule(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})) - -- if (instr_D*{instr_D <- `instr_D*`} = $concat_(syntax instr, $rundata_(`%`_dataidx(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){i_D <- `i_D*`})) - -- if (instr_E*{instr_E <- `instr_E*`} = $concat_(syntax instr, $runelem_(`%`_elemidx(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){i_E <- `i_E*`})) - -- if (instr_S?{instr_S <- `instr_S?`} = CALL_instr(x)?{x <- `x?`}) + -- if (instr_D*{instr_D <- `instr_D*`} = $concat_(syntax instr, $rundata_(`%`_dataidx{i#47725}(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){i#47725 <- `i#47725*`})) + -- if (instr_E*{instr_E <- `instr_E*`} = $concat_(syntax instr, $runelem_(`%`_elemidx{i#47785}(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){i#47785 <- `i#47785*`})) + -- if (instr_S?{instr_S <- `instr_S?`} = `CALL`_instr{funcidx#3159}(x)?{funcidx#3159 <- `funcidx#3159?`, x <- `x?`}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $invoke(store : store, funcaddr : funcaddr, val*) : config ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $invoke{s : store, funcaddr : funcaddr, `val*` : val*, `t_1*` : valtype*, `t_2*` : valtype*}(s, funcaddr, val*{val <- `val*`}) = `%;%`_config(`%;%`_state(s, {LOCALS [], MODULE {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], EXPORTS []}}), (val : val <: instr)*{val <- `val*`} ++ [REF.FUNC_ADDR_instr(funcaddr) CALL_REF_instr((s.FUNCS_store[funcaddr].TYPE_funcinst : deftype <: typeuse))]) - -- Expand: `%~~%`(s.FUNCS_store[funcaddr].TYPE_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + def $invoke{s : store, funcaddr : funcaddr, `val*` : val*, state#2231 : state, `instr*#2346` : instr*, store#2639 : store, frame#2657 : frame, `val?*#7` : val?*, moduleinst#29 : moduleinst, `deftype*#97` : deftype*, `tagaddr*#8` : tagaddr*, `globaladdr*#8` : globaladdr*, `memaddr*#8` : memaddr*, `tableaddr*#8` : tableaddr*, `funcaddr*#9` : funcaddr*, `dataaddr*#6` : dataaddr*, `elemaddr*#6` : elemaddr*, `exportinst*#4` : exportinst*, funcaddr#21 : funcaddr, typeuse#65 : typeuse, `funcinst*#17` : funcinst*, deftype#13 : deftype, `funcinst*#16` : funcinst*, deftype#12 : deftype, resulttype#3026 : resulttype, `X*#13028` : valtype*, `t_1*` : valtype*, `X*#13041` : valtype*, `t_2*` : valtype*}(s, funcaddr, val*{val <- `val*`}) = `%;%`_config{state#2231, `instr*#2346`}(`%;%`_state{store#2639, frame#2657}(s, {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr) `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))]) + -- Expand: `%~~%`(s.`FUNCS`_store{`funcinst*#16`}[funcaddr].`TYPE`_funcinst{deftype#12}, `FUNC%->%`_comptype{resulttype#3026}(`%`_resulttype{`X*#13028`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13041`}(t_2*{t_2 <- `t_2*`}))) -- (Val_ok: `%|-%:%`(s, val, t_1))*{t_1 <- `t_1*`, val <- `val*`} ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Bbyte : byte ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{`` : nat} ``:(0x00 | ... | 0xFF) => `%`_byte(``) + prod{i#47807 : nat, `` : nat} ``:(0x00 | ... | 0xFF) => `%`_byte{i#47807}(``) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec rec { @@ -7322,29 +118881,29 @@ rec { ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:9.1-11.82 grammar BuN(N : N) : uN(N) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:10.5-10.83 - prod{n : n} `%`_byte(n):Bbyte => `%`_uN(n) + prod{i#47823 : nat, n : n, i#47815 : nat} `%`_byte{i#47815}(n):Bbyte => `%`_uN{i#47823}(n) -- if ((n < (2 ^ 7)) /\ (n < (2 ^ N))) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:11.5-11.82 - prod{n : n, m : m} {{`%`_byte(n):Bbyte} {`%`_uN(m):BuN((((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat))}} => `%`_uN((((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat))) + prod{i#47866 : nat, m : m, n : n, i#47831 : nat, i#47856 : nat} {{`%`_byte{i#47831}(n):Bbyte} {`%`_uN{i#47856}(m):BuN((((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat))}} => `%`_uN{i#47866}((((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat))) -- if ((n >= (2 ^ 7)) /\ (N > 7)) } ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar BsN(N : N) : sN(N) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{n : n} `%`_byte(n):Bbyte => `%`_sN((n : nat <:> int)) + prod{i#47882 : int, n : n, i#47874 : nat} `%`_byte{i#47874}(n):Bbyte => `%`_sN{i#47882}((n : nat <:> int)) -- if ((n < (2 ^ 6)) /\ (n < (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{n : n} `%`_byte(n):Bbyte => `%`_sN(((n : nat <:> int) - ((2 ^ 7) : nat <:> int))) + prod{i#47898 : int, n : n, i#47890 : nat} `%`_byte{i#47890}(n):Bbyte => `%`_sN{i#47898}(((n : nat <:> int) - ((2 ^ 7) : nat <:> int))) -- if ((((2 ^ 6) <= n) /\ (n < (2 ^ 7))) /\ ((n : nat <:> int) >= (((2 ^ 7) : nat <:> int) - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)))) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{n : n, i : uN((((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat))} {{`%`_byte(n):Bbyte} {i:BuN((((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat))}} => `%`_sN(((((2 ^ 7) * i!`%`_uN.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int)) + prod{i#47945 : int, i : uN((((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat)), i#47943 : nat, n : n, i#47906 : nat} {{`%`_byte{i#47906}(n):Bbyte} {i:BuN((((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat))}} => `%`_sN{i#47945}(((((2 ^ 7) * i!`%`_uN{i#47943}.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int)) -- if ((n >= (2 ^ 7)) /\ (N > 7)) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar BiN(N : N) : iN(N) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{i : sN(N)} i:BsN(N) => `%`_iN($inv_signed_(N, i!`%`_sN.0)) + prod{i#47961 : nat, i : sN(N), i#47959 : int} i:BsN(N) => `%`_iN{i#47961}($inv_signed_(N, i!`%`_sN{i#47959}.0)) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar BfN(N : N) : fN(N) @@ -7354,12 +118913,12 @@ grammar BfN(N : N) : fN(N) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Bu32 : u32 ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{n : n} `%`_uN(n):BuN(32) => `%`_u32(n) + prod{i#48033 : nat, n : n, i#48009 : nat} `%`_uN{i#48009}(n):BuN(32) => `%`_u32{i#48033}(n) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Bu64 : u64 ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{n : n} `%`_uN(n):BuN(64) => `%`_u64(n) + prod{i#48081 : nat, n : n, i#48057 : nat} `%`_uN{i#48057}(n):BuN(64) => `%`_u64{i#48081}(n) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Bs33 : s33 @@ -7379,13 +118938,13 @@ grammar Bf64 : f64 ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Blist(syntax el, grammar BX : el) : el* ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{n : n, `el*` : el*} {{`%`_u32(n):Bu32} {el:BX^n{el <- `el*`}}} => el^n{el <- `el*`} + prod{n : n, `el*` : el*, i#48134 : nat} {{`%`_u32{i#48134}(n):Bu32} {el:BX^n{el <- `el*`}}} => el^n{el <- `el*`} ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Bname : name ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{`b*` : byte*, name : name} b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte) => name - -- if ($utf8(name!`%`_name.0) = b*{b <- `b*`}) + prod{name : name, `b*` : byte*, `char*#153` : char*} b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte) => name + -- if ($utf8(name!`%`_name{`char*#153`}.0) = b*{b <- `b*`}) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Btypeidx : typeidx @@ -7440,75 +118999,75 @@ grammar Blabelidx : labelidx ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Bexternidx : externidx ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{x : idx} {{0x00} {x:Bfuncidx}} => FUNC_externidx(x) + prod{funcidx#3161 : funcidx, x : idx} {{0x00} {x:Bfuncidx}} => `FUNC`_externidx{funcidx#3161}(x) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{x : idx} {{0x01} {x:Btableidx}} => TABLE_externidx(x) + prod{tableidx#123 : tableidx, x : idx} {{0x01} {x:Btableidx}} => `TABLE`_externidx{tableidx#123}(x) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{x : idx} {{0x02} {x:Bmemidx}} => MEM_externidx(x) + prod{memidx#169 : memidx, x : idx} {{0x02} {x:Bmemidx}} => `MEM`_externidx{memidx#169}(x) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{x : idx} {{0x03} {x:Bglobalidx}} => GLOBAL_externidx(x) + prod{globalidx#23 : globalidx, x : idx} {{0x03} {x:Bglobalidx}} => `GLOBAL`_externidx{globalidx#23}(x) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{x : idx} {{0x04} {x:Btagidx}} => TAG_externidx(x) + prod{tagidx#19 : tagidx, x : idx} {{0x04} {x:Btagidx}} => `TAG`_externidx{tagidx#19}(x) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bnumtype : numtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x7C => F64_numtype + prod 0x7C => `F64`_numtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x7D => F32_numtype + prod 0x7D => `F32`_numtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x7E => I64_numtype + prod 0x7E => `I64`_numtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x7F => I32_numtype + prod 0x7F => `I32`_numtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bvectype : vectype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x7B => V128_vectype + prod 0x7B => `V128`_vectype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Babsheaptype : heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x69 => EXN_heaptype + prod 0x69 => `EXN`_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x6A => ARRAY_heaptype + prod 0x6A => `ARRAY`_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x6B => STRUCT_heaptype + prod 0x6B => `STRUCT`_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x6C => I31_heaptype + prod 0x6C => `I31`_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x6D => EQ_heaptype + prod 0x6D => `EQ`_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x6E => ANY_heaptype + prod 0x6E => `ANY`_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x6F => EXTERN_heaptype + prod 0x6F => `EXTERN`_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x70 => FUNC_heaptype + prod 0x70 => `FUNC`_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x71 => NONE_heaptype + prod 0x71 => `NONE`_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x72 => NOEXTERN_heaptype + prod 0x72 => `NOEXTERN`_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x73 => NOFUNC_heaptype + prod 0x73 => `NOFUNC`_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x74 => NOEXN_heaptype + prod 0x74 => `NOEXN`_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bheaptype : heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec prod{ht : heaptype} ht:Babsheaptype => ht ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{x33 : s33} x33:Bs33 => _IDX_heaptype($s33_to_u32(x33)) - -- if (x33!`%`_s33.0 >= (0 : nat <:> int)) + prod{typeidx#1924 : typeidx, x33 : s33, i#49064 : int} x33:Bs33 => `_IDX`_heaptype{typeidx#1924}($s33_to_u32(x33)) + -- if (x33!`%`_s33{i#49064}.0 >= (0 : nat <:> int)) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Breftype : reftype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{ht : heaptype} {{0x63} {ht:Bheaptype}} => REF_reftype(?(NULL_null), ht) + prod{`null?#1525` : null?, heaptype#1587 : heaptype, ht : heaptype} {{0x63} {ht:Bheaptype}} => `REF`_reftype{`null?#1525`, heaptype#1587}(?(`NULL`_null), ht) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{ht : heaptype} {{0x64} {ht:Bheaptype}} => REF_reftype(?(), ht) + prod{`null?#1537` : null?, heaptype#1599 : heaptype, ht : heaptype} {{0x64} {ht:Bheaptype}} => `REF`_reftype{`null?#1537`, heaptype#1599}(?(), ht) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{ht : heaptype} ht:Babsheaptype => REF_reftype(?(NULL_null), ht) + prod{`null?#1549` : null?, heaptype#1611 : heaptype, ht : heaptype} ht:Babsheaptype => `REF`_reftype{`null?#1549`, heaptype#1611}(?(`NULL`_null), ht) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bvaltype : valtype @@ -7522,21 +119081,21 @@ grammar Bvaltype : valtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bresulttype : resulttype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`t*` : valtype*} t*{t <- `t*`}:Blist(syntax valtype, grammar Bvaltype) => `%`_resulttype(t*{t <- `t*`}) + prod{`X*#13056` : valtype*, `t*` : valtype*} t*{t <- `t*`}:Blist(syntax valtype, grammar Bvaltype) => `%`_resulttype{`X*#13056`}(t*{t <- `t*`}) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bmut : mut? ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec prod 0x00 => ?() ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x01 => ?(MUT_mut) + prod 0x01 => ?(`MUT`_mut) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bpacktype : packtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x77 => I16_packtype + prod 0x77 => `I16`_packtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x78 => I8_packtype + prod 0x78 => `I8`_packtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bstoragetype : storagetype @@ -7548,76 +119107,76 @@ grammar Bstoragetype : storagetype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bfieldtype : fieldtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{zt : storagetype, `mut?` : mut?} {{zt:Bstoragetype} {mut?{mut <- `mut?`}:Bmut}} => `%%`_fieldtype(mut?{mut <- `mut?`}, zt) + prod{`mut?#1417` : mut?, storagetype#755 : storagetype, `mut?` : mut?, zt : storagetype} {{zt:Bstoragetype} {mut?{mut <- `mut?`}:Bmut}} => `%%`_fieldtype{`mut?#1417`, storagetype#755}(mut?{mut <- `mut?`}, zt) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bcomptype : comptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{ft : fieldtype} {{0x5E} {ft:Bfieldtype}} => ARRAY_comptype(ft) + prod{fieldtype#59 : fieldtype, ft : fieldtype} {{0x5E} {ft:Bfieldtype}} => `ARRAY`_comptype{fieldtype#59}(ft) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`ft*` : fieldtype*} {{0x5F} {ft*{ft <- `ft*`}:Blist(syntax fieldtype, grammar Bfieldtype)}} => STRUCT_comptype(`%`_list(ft*{ft <- `ft*`})) + prod{`X*#13071` : fieldtype*, `ft*` : fieldtype*} {{0x5F} {ft*{ft <- `ft*`}:Blist(syntax fieldtype, grammar Bfieldtype)}} => `STRUCT`_comptype(`%`_list{`X*#13071`}(ft*{ft <- `ft*`})) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`t_1*` : valtype*, `t_2*` : valtype*} {{0x60} {`%`_resulttype(t_1*{t_1 <- `t_1*`}):Bresulttype} {`%`_resulttype(t_2*{t_2 <- `t_2*`}):Bresulttype}} => `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})) + prod{resulttype#3029 : resulttype, `X*#13122` : valtype*, `t_1*` : valtype*, `X*#13135` : valtype*, `t_2*` : valtype*, `X*#13087` : valtype*, `X*#13105` : valtype*} {{0x60} {`%`_resulttype{`X*#13087`}(t_1*{t_1 <- `t_1*`}):Bresulttype} {`%`_resulttype{`X*#13105`}(t_2*{t_2 <- `t_2*`}):Bresulttype}} => `FUNC%->%`_comptype{resulttype#3029}(`%`_resulttype{`X*#13122`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13135`}(t_2*{t_2 <- `t_2*`})) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bsubtype : subtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`x*` : idx*, ct : comptype} {{0x4F} {x*{x <- `x*`}:Blist(syntax typeidx, grammar Btypeidx)} {ct:Bcomptype}} => SUB_subtype(?(FINAL_final), _IDX_typeuse(x)*{x <- `x*`}, ct) + prod{`final?#449` : final?, `typeuse*#449` : typeuse*, comptype#449 : comptype, `typeidx#1926*` : typeidx*, `x*` : idx*, ct : comptype} {{0x4F} {x*{x <- `x*`}:Blist(syntax typeidx, grammar Btypeidx)} {ct:Bcomptype}} => `SUB`_subtype{`final?#449`, `typeuse*#449`, comptype#449}(?(`FINAL`_final), `_IDX`_typeuse{typeidx#1926}(x)*{typeidx#1926 <- `typeidx#1926*`, x <- `x*`}, ct) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`x*` : idx*, ct : comptype} {{0x50} {x*{x <- `x*`}:Blist(syntax typeidx, grammar Btypeidx)} {ct:Bcomptype}} => SUB_subtype(?(), _IDX_typeuse(x)*{x <- `x*`}, ct) + prod{`final?#461` : final?, `typeuse*#461` : typeuse*, comptype#461 : comptype, `typeidx#1928*` : typeidx*, `x*` : idx*, ct : comptype} {{0x50} {x*{x <- `x*`}:Blist(syntax typeidx, grammar Btypeidx)} {ct:Bcomptype}} => `SUB`_subtype{`final?#461`, `typeuse*#461`, comptype#461}(?(), `_IDX`_typeuse{typeidx#1928}(x)*{typeidx#1928 <- `typeidx#1928*`, x <- `x*`}, ct) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{ct : comptype} ct:Bcomptype => SUB_subtype(?(FINAL_final), [], ct) + prod{`final?#473` : final?, `typeuse*#473` : typeuse*, comptype#473 : comptype, ct : comptype} ct:Bcomptype => `SUB`_subtype{`final?#473`, `typeuse*#473`, comptype#473}(?(`FINAL`_final), [], ct) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Brectype : rectype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`st*` : subtype*} {{0x4E} {st*{st <- `st*`}:Blist(syntax subtype, grammar Bsubtype)}} => REC_rectype(`%`_list(st*{st <- `st*`})) + prod{`X*#13150` : subtype*, `st*` : subtype*} {{0x4E} {st*{st <- `st*`}:Blist(syntax subtype, grammar Bsubtype)}} => `REC`_rectype(`%`_list{`X*#13150`}(st*{st <- `st*`})) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{st : subtype} st:Bsubtype => REC_rectype(`%`_list([st])) + prod{`X*#13165` : subtype*, st : subtype} st:Bsubtype => `REC`_rectype(`%`_list{`X*#13165`}([st])) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Blimits : (addrtype, limits) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{n : n} {{0x00} {`%`_u64(n):Bu64}} => (I32_addrtype, `[%..%]`_limits(`%`_u64(n), ?())) + prod{u64#491 : u64, `u64?#467` : u64?, i#49191 : nat, n : n, i#49167 : nat} {{0x00} {`%`_u64{i#49167}(n):Bu64}} => (`I32`_addrtype, `[%..%]`_limits{u64#491, `u64?#467`}(`%`_u64{i#49191}(n), ?())) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{n : n, m : m} {{0x01} {`%`_u64(n):Bu64} {`%`_u64(m):Bu64}} => (I32_addrtype, `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))) + prod{u64#503 : u64, `u64?#479` : u64?, i#49267 : nat, n : n, i#49289 : nat, m : m, i#49216 : nat, i#49243 : nat} {{0x01} {`%`_u64{i#49216}(n):Bu64} {`%`_u64{i#49243}(m):Bu64}} => (`I32`_addrtype, `[%..%]`_limits{u64#503, `u64?#479`}(`%`_u64{i#49267}(n), ?(`%`_u64{i#49289}(m)))) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{n : n} {{0x04} {`%`_u64(n):Bu64}} => (I64_addrtype, `[%..%]`_limits(`%`_u64(n), ?())) + prod{u64#515 : u64, `u64?#491` : u64?, i#49338 : nat, n : n, i#49314 : nat} {{0x04} {`%`_u64{i#49314}(n):Bu64}} => (`I64`_addrtype, `[%..%]`_limits{u64#515, `u64?#491`}(`%`_u64{i#49338}(n), ?())) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{n : n, m : m} {{0x05} {`%`_u64(n):Bu64} {`%`_u64(m):Bu64}} => (I64_addrtype, `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))) + prod{u64#527 : u64, `u64?#503` : u64?, i#49414 : nat, n : n, i#49436 : nat, m : m, i#49363 : nat, i#49390 : nat} {{0x05} {`%`_u64{i#49363}(n):Bu64} {`%`_u64{i#49390}(m):Bu64}} => (`I64`_addrtype, `[%..%]`_limits{u64#527, `u64?#503`}(`%`_u64{i#49414}(n), ?(`%`_u64{i#49436}(m)))) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Btagtype : tagtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{x : idx} {{0x00} {x:Btypeidx}} => _IDX_tagtype(x) + prod{typeidx#1930 : typeidx, x : idx} {{0x00} {x:Btypeidx}} => `_IDX`_tagtype{typeidx#1930}(x) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bglobaltype : globaltype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{t : valtype, `mut?` : mut?} {{t:Bvaltype} {mut?{mut <- `mut?`}:Bmut}} => `%%`_globaltype(mut?{mut <- `mut?`}, t) + prod{`mut?#1469` : mut?, valtype#991 : valtype, `mut?` : mut?, t : valtype} {{t:Bvaltype} {mut?{mut <- `mut?`}:Bmut}} => `%%`_globaltype{`mut?#1469`, valtype#991}(mut?{mut <- `mut?`}, t) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bmemtype : memtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{at : addrtype, lim : limits} (at, lim):Blimits => `%%PAGE`_memtype(at, lim) + prod{addrtype#1373 : addrtype, limits#1373 : limits, at : addrtype, lim : limits} (at, lim):Blimits => `%%PAGE`_memtype{addrtype#1373, limits#1373}(at, lim) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Btabletype : tabletype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{rt : reftype, at : addrtype, lim : limits} {{rt:Breftype} {(at, lim):Blimits}} => `%%%`_tabletype(at, lim, rt) + prod{addrtype#1385 : addrtype, limits#1385 : limits, reftype#3949 : reftype, at : addrtype, lim : limits, rt : reftype} {{rt:Breftype} {(at, lim):Blimits}} => `%%%`_tabletype{addrtype#1385, limits#1385, reftype#3949}(at, lim, rt) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bexterntype : externtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{x : idx} {{0x00} {x:Btypeidx}} => FUNC_externtype(_IDX_typeuse(x)) + prod{typeuse#67 : typeuse, typeidx#1932 : typeidx, x : idx} {{0x00} {x:Btypeidx}} => `FUNC`_externtype{typeuse#67}(`_IDX`_typeuse{typeidx#1932}(x)) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{tt : tabletype} {{0x01} {tt:Btabletype}} => TABLE_externtype(tt) + prod{tabletype#1118 : tabletype, tt : tabletype} {{0x01} {tt:Btabletype}} => `TABLE`_externtype{tabletype#1118}(tt) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{mt : memtype} {{0x02} {mt:Bmemtype}} => MEM_externtype(mt) + prod{memtype#722 : memtype, mt : memtype} {{0x02} {mt:Bmemtype}} => `MEM`_externtype{memtype#722}(mt) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{gt : globaltype} {{0x03} {gt:Bglobaltype}} => GLOBAL_externtype(gt) + prod{globaltype#2273 : globaltype, gt : globaltype} {{0x03} {gt:Bglobaltype}} => `GLOBAL`_externtype{globaltype#2273}(gt) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{jt : tagtype} {{0x04} {jt:Btagtype}} => TAG_externtype(jt) + prod{tagtype#324 : tagtype, jt : tagtype} {{0x04} {jt:Btagtype}} => `TAG`_externtype{tagtype#324}(jt) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec syntax castop = (null?, null?) @@ -7627,32 +119186,32 @@ grammar Bcastop : castop ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec prod 0x00 => (?(), ?()) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod 0x01 => (?(NULL_null), ?()) + prod 0x01 => (?(`NULL`_null), ?()) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod 0x02 => (?(), ?(NULL_null)) + prod 0x02 => (?(), ?(`NULL`_null)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod 0x03 => (?(NULL_null), ?(NULL_null)) + prod 0x03 => (?(`NULL`_null), ?(`NULL`_null)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec grammar Bblocktype : blocktype ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod 0x40 => _RESULT_blocktype(?()) + prod{`valtype?#7` : valtype?} 0x40 => `_RESULT`_blocktype{`valtype?#7`}(?()) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{t : valtype} t:Bvaltype => _RESULT_blocktype(?(t)) + prod{`valtype?#9` : valtype?, t : valtype} t:Bvaltype => `_RESULT`_blocktype{`valtype?#9`}(?(t)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{i : s33} i:Bs33 => _IDX_blocktype(`%`_typeidx((i!`%`_s33.0 : int <:> nat))) - -- if (i!`%`_s33.0 >= (0 : nat <:> int)) + prod{typeidx#1934 : typeidx, i#49560 : nat, i : s33, i#49559 : int, i#49575 : int} i:Bs33 => `_IDX`_blocktype{typeidx#1934}(`%`_typeidx{i#49560}((i!`%`_s33{i#49559}.0 : int <:> nat))) + -- if (i!`%`_s33{i#49575}.0 >= (0 : nat <:> int)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec grammar Bcatch : catch ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{x : idx, l : labelidx} {{0x00} {x:Btagidx} {l:Blabelidx}} => CATCH_catch(x, l) + prod{tagidx#23 : tagidx, labelidx#115 : labelidx, x : idx, l : labelidx} {{0x00} {x:Btagidx} {l:Blabelidx}} => `CATCH`_catch{tagidx#23, labelidx#115}(x, l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{x : idx, l : labelidx} {{0x01} {x:Btagidx} {l:Blabelidx}} => CATCH_REF_catch(x, l) + prod{tagidx#25 : tagidx, labelidx#117 : labelidx, x : idx, l : labelidx} {{0x01} {x:Btagidx} {l:Blabelidx}} => `CATCH_REF`_catch{tagidx#25, labelidx#117}(x, l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{l : labelidx} {{0x02} {l:Blabelidx}} => CATCH_ALL_catch(l) + prod{labelidx#119 : labelidx, l : labelidx} {{0x02} {l:Blabelidx}} => `CATCH_ALL`_catch{labelidx#119}(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{l : labelidx} {{0x03} {l:Blabelidx}} => CATCH_ALL_REF_catch(l) + prod{labelidx#121 : labelidx, l : labelidx} {{0x03} {l:Blabelidx}} => `CATCH_ALL_REF`_catch{labelidx#121}(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec syntax memidxop = (memidx, memarg) @@ -7660,16 +119219,16 @@ syntax memidxop = (memidx, memarg) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec grammar Bmemarg : memidxop ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{n : n, m : m} {{`%`_u32(n):Bu32} {`%`_u64(m):Bu64}} => (`%`_memidx(0), {ALIGN `%`_u32(n), OFFSET `%`_u64(m)}) + prod{i#51035 : nat, u32#35 : u32, i#51057 : nat, n : n, u64#553 : u64, i#51079 : nat, m : m, i#50986 : nat, i#51013 : nat} {{`%`_u32{i#50986}(n):Bu32} {`%`_u64{i#51013}(m):Bu64}} => (`%`_memidx{i#51035}(0), {`ALIGN`{u32#35} `%`_u32{i#51057}(n), `OFFSET`{u64#553} `%`_u64{i#51079}(m)}) -- if (n < (2 ^ 6)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{n : n, x : idx, m : m} {{`%`_u32(n):Bu32} {x:Bmemidx} {`%`_u64(m):Bu64}} => (x, {ALIGN `%`_u32((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), OFFSET `%`_u64(m)}) + prod{x : idx, u32#36 : u32, i#51182 : nat, n : n, u64#554 : u64, i#51204 : nat, m : m, i#51104 : nat, i#51148 : nat} {{`%`_u32{i#51104}(n):Bu32} {x:Bmemidx} {`%`_u64{i#51148}(m):Bu64}} => (x, {`ALIGN`{u32#36} `%`_u32{i#51182}((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), `OFFSET`{u64#554} `%`_u64{i#51204}(m)}) -- if (((2 ^ 6) <= n) /\ (n < (2 ^ 7))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec grammar Blaneidx : laneidx ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{l : labelidx} `%`_byte(l!`%`_labelidx.0):Bbyte => `%`_laneidx(l!`%`_labelidx.0) + prod{i#54944 : nat, l : labelidx, i#54943 : nat, i#54896 : nat, i#54895 : nat} `%`_byte{i#54896}(l!`%`_labelidx{i#54895}.0):Bbyte => `%`_laneidx{i#54944}(l!`%`_labelidx{i#54943}.0) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec rec { @@ -7677,1001 +119236,1001 @@ rec { ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:793.1-807.71 grammar Binstr : instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:8.5-8.24 - prod 0x00 => UNREACHABLE_instr + prod 0x00 => `UNREACHABLE`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:9.5-9.16 - prod 0x01 => NOP_instr + prod 0x01 => `NOP`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:10.5-10.17 - prod 0x1A => DROP_instr + prod 0x1A => `DROP`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:11.5-11.19 - prod 0x1B => SELECT_instr(?()) + prod{`valtype*?#11` : valtype*?} 0x1B => `SELECT`_instr{`valtype*?#11`}(?()) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:12.5-12.41 - prod{`t*` : valtype*} {{0x1C} {t*{t <- `t*`}:Blist(syntax valtype, grammar Bvaltype)}} => SELECT_instr(?(t*{t <- `t*`})) + prod{`valtype*?#13` : valtype*?, `t*` : valtype*} {{0x1C} {t*{t <- `t*`}:Blist(syntax valtype, grammar Bvaltype)}} => `SELECT`_instr{`valtype*?#13`}(?(t*{t <- `t*`})) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:32.5-32.57 - prod{bt : blocktype, `in*` : instr*} {{0x02} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => BLOCK_instr(bt, in*{in <- `in*`}) + prod{blocktype#31 : blocktype, `instr*#2348` : instr*, bt : blocktype, `in*` : instr*} {{0x02} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => `BLOCK`_instr{blocktype#31, `instr*#2348`}(bt, in*{in <- `in*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:33.5-33.56 - prod{bt : blocktype, `in*` : instr*} {{0x03} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => LOOP_instr(bt, in*{in <- `in*`}) + prod{blocktype#33 : blocktype, `instr*#2350` : instr*, bt : blocktype, `in*` : instr*} {{0x03} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => `LOOP`_instr{blocktype#33, `instr*#2350`}(bt, in*{in <- `in*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:34.5-34.63 - prod{bt : blocktype, `in*` : instr*} {{0x04} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => `IF%%ELSE%`_instr(bt, in*{in <- `in*`}, []) + prod{blocktype#35 : blocktype, `instr*#2352` : instr*, bt : blocktype, `in*` : instr*} {{0x04} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => `IF%%ELSE%`_instr{blocktype#35, `instr*#2352`}(bt, in*{in <- `in*`}, []) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:35.5-36.55 - prod{bt : blocktype, `in_1*` : instr*, `in_2*` : instr*} {{0x04} {bt:Bblocktype} {in_1:Binstr*{in_1 <- `in_1*`}} {0x05} {in_2:Binstr*{in_2 <- `in_2*`}} {0x0B}} => `IF%%ELSE%`_instr(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`}) + prod{blocktype#37 : blocktype, `instr*#2355` : instr*, bt : blocktype, `in_1*` : instr*, `in_2*` : instr*} {{0x04} {bt:Bblocktype} {in_1:Binstr*{in_1 <- `in_1*`}} {0x05} {in_2:Binstr*{in_2 <- `in_2*`}} {0x0B}} => `IF%%ELSE%`_instr{blocktype#37, `instr*#2355`}(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:40.5-40.30 - prod{x : idx} {{0x08} {x:Btagidx}} => THROW_instr(x) + prod{tagidx#21 : tagidx, x : idx} {{0x08} {x:Btagidx}} => `THROW`_instr{tagidx#21}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:41.5-41.22 - prod 0x0A => THROW_REF_instr + prod 0x0A => `THROW_REF`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:42.5-42.29 - prod{l : labelidx} {{0x0C} {l:Blabelidx}} => BR_instr(l) + prod{labelidx#101 : labelidx, l : labelidx} {{0x0C} {l:Blabelidx}} => `BR`_instr{labelidx#101}(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:43.5-43.32 - prod{l : labelidx} {{0x0D} {l:Blabelidx}} => BR_IF_instr(l) + prod{labelidx#103 : labelidx, l : labelidx} {{0x0D} {l:Blabelidx}} => `BR_IF`_instr{labelidx#103}(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:44.5-44.62 - prod{`l*` : labelidx*, l_n : labelidx} {{0x0E} {l*{l <- `l*`}:Blist(syntax labelidx, grammar Blabelidx)} {l_n:Blabelidx}} => BR_TABLE_instr(l*{l <- `l*`}, l_n) + prod{`labelidx*#54` : labelidx*, labelidx#105 : labelidx, `l*` : labelidx*, l_n : labelidx} {{0x0E} {l*{l <- `l*`}:Blist(syntax labelidx, grammar Blabelidx)} {l_n:Blabelidx}} => `BR_TABLE`_instr{`labelidx*#54`, labelidx#105}(l*{l <- `l*`}, l_n) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:45.5-45.19 - prod 0x0F => RETURN_instr + prod 0x0F => `RETURN`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:46.5-46.30 - prod{x : idx} {{0x10} {x:Bfuncidx}} => CALL_instr(x) + prod{funcidx#3163 : funcidx, x : idx} {{0x10} {x:Bfuncidx}} => `CALL`_instr{funcidx#3163}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:47.5-47.60 - prod{y : idx, x : idx} {{0x11} {y:Btypeidx} {x:Btableidx}} => CALL_INDIRECT_instr(x, _IDX_typeuse(y)) + prod{tableidx#125 : tableidx, typeuse#69 : typeuse, x : idx, typeidx#1936 : typeidx, y : idx} {{0x11} {y:Btypeidx} {x:Btableidx}} => `CALL_INDIRECT`_instr{tableidx#125, typeuse#69}(x, `_IDX`_typeuse{typeidx#1936}(y)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:48.5-48.37 - prod{x : idx} {{0x12} {x:Bfuncidx}} => RETURN_CALL_instr(x) + prod{funcidx#3165 : funcidx, x : idx} {{0x12} {x:Bfuncidx}} => `RETURN_CALL`_instr{funcidx#3165}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:49.5-49.67 - prod{y : idx, x : idx} {{0x13} {y:Btypeidx} {x:Btableidx}} => RETURN_CALL_INDIRECT_instr(x, _IDX_typeuse(y)) + prod{tableidx#127 : tableidx, typeuse#71 : typeuse, x : idx, typeidx#1938 : typeidx, y : idx} {{0x13} {y:Btypeidx} {x:Btableidx}} => `RETURN_CALL_INDIRECT`_instr{tableidx#127, typeuse#71}(x, `_IDX`_typeuse{typeidx#1938}(y)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:50.5-50.41 - prod{x : idx} {{0x14} {x:Btypeidx}} => CALL_REF_instr(_IDX_typeuse(x)) + prod{typeuse#73 : typeuse, typeidx#1940 : typeidx, x : idx} {{0x14} {x:Btypeidx}} => `CALL_REF`_instr{typeuse#73}(`_IDX`_typeuse{typeidx#1940}(x)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:51.5-51.48 - prod{x : idx} {{0x15} {x:Btypeidx}} => RETURN_CALL_REF_instr(_IDX_typeuse(x)) + prod{typeuse#75 : typeuse, typeidx#1942 : typeidx, x : idx} {{0x15} {x:Btypeidx}} => `RETURN_CALL_REF`_instr{typeuse#75}(`_IDX`_typeuse{typeidx#1942}(x)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:52.5-52.81 - prod{bt : blocktype, `c*` : catch*, `in*` : instr*} {{0x1F} {bt:Bblocktype} {c*{c <- `c*`}:Blist(syntax catch, grammar Bcatch)} {in:Binstr*{in <- `in*`}} {0x0B}} => TRY_TABLE_instr(bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`}) + prod{blocktype#39 : blocktype, `instr*#2358` : instr*, bt : blocktype, `X*#13196` : catch*, `c*` : catch*, `in*` : instr*} {{0x1F} {bt:Bblocktype} {c*{c <- `c*`}:Blist(syntax catch, grammar Bcatch)} {in:Binstr*{in <- `in*`}} {0x0B}} => `TRY_TABLE`_instr{blocktype#39, `instr*#2358`}(bt, `%`_list{`X*#13196`}(c*{c <- `c*`}), in*{in <- `in*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:53.5-53.37 - prod{l : labelidx} {{0xD5} {l:Blabelidx}} => BR_ON_NULL_instr(l) + prod{labelidx#107 : labelidx, l : labelidx} {{0xD5} {l:Blabelidx}} => `BR_ON_NULL`_instr{labelidx#107}(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:54.5-54.41 - prod{l : labelidx} {{0xD6} {l:Blabelidx}} => BR_ON_NON_NULL_instr(l) + prod{labelidx#109 : labelidx, l : labelidx} {{0xD6} {l:Blabelidx}} => `BR_ON_NON_NULL`_instr{labelidx#109}(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:55.5-56.100 - prod{`null_1?` : null?, `null_2?` : null?, l : labelidx, ht_1 : heaptype, ht_2 : heaptype} {{0xFB} {`%`_u32(24):Bu32} {(null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`}):Bcastop} {l:Blabelidx} {ht_1:Bheaptype} {ht_2:Bheaptype}} => BR_ON_CAST_instr(l, REF_reftype(null_1?{null_1 <- `null_1?`}, ht_1), REF_reftype(null_2?{null_2 <- `null_2?`}, ht_2)) + prod{labelidx#111 : labelidx, reftype#3963 : reftype, l : labelidx, `null?#1579` : null?, heaptype#1641 : heaptype, `null_1?` : null?, ht_1 : heaptype, `null?#1591` : null?, heaptype#1653 : heaptype, `null_2?` : null?, ht_2 : heaptype, i#50095 : nat} {{0xFB} {`%`_u32{i#50095}(24):Bu32} {(null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`}):Bcastop} {l:Blabelidx} {ht_1:Bheaptype} {ht_2:Bheaptype}} => `BR_ON_CAST`_instr{labelidx#111, reftype#3963}(l, `REF`_reftype{`null?#1579`, heaptype#1641}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#1591`, heaptype#1653}(null_2?{null_2 <- `null_2?`}, ht_2)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:57.5-58.105 - prod{`null_1?` : null?, `null_2?` : null?, l : labelidx, ht_1 : heaptype, ht_2 : heaptype} {{0xFB} {`%`_u32(25):Bu32} {(null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`}):Bcastop} {l:Blabelidx} {ht_1:Bheaptype} {ht_2:Bheaptype}} => BR_ON_CAST_FAIL_instr(l, REF_reftype(null_1?{null_1 <- `null_1?`}, ht_1), REF_reftype(null_2?{null_2 <- `null_2?`}, ht_2)) + prod{labelidx#113 : labelidx, reftype#3966 : reftype, l : labelidx, `null?#1603` : null?, heaptype#1665 : heaptype, `null_1?` : null?, ht_1 : heaptype, `null?#1615` : null?, heaptype#1677 : heaptype, `null_2?` : null?, ht_2 : heaptype, i#50147 : nat} {{0xFB} {`%`_u32{i#50147}(25):Bu32} {(null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`}):Bcastop} {l:Blabelidx} {ht_1:Bheaptype} {ht_2:Bheaptype}} => `BR_ON_CAST_FAIL`_instr{labelidx#113, reftype#3966}(l, `REF`_reftype{`null?#1603`, heaptype#1665}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#1615`, heaptype#1677}(null_2?{null_2 <- `null_2?`}, ht_2)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:71.5-71.36 - prod{x : idx} {{0x20} {x:Blocalidx}} => LOCAL.GET_instr(x) + prod{localidx#21 : localidx, x : idx} {{0x20} {x:Blocalidx}} => `LOCAL.GET`_instr{localidx#21}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:72.5-72.36 - prod{x : idx} {{0x21} {x:Blocalidx}} => LOCAL.SET_instr(x) + prod{localidx#23 : localidx, x : idx} {{0x21} {x:Blocalidx}} => `LOCAL.SET`_instr{localidx#23}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:73.5-73.36 - prod{x : idx} {{0x22} {x:Blocalidx}} => LOCAL.TEE_instr(x) + prod{localidx#25 : localidx, x : idx} {{0x22} {x:Blocalidx}} => `LOCAL.TEE`_instr{localidx#25}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:77.5-77.38 - prod{x : idx} {{0x23} {x:Bglobalidx}} => GLOBAL.GET_instr(x) + prod{globalidx#25 : globalidx, x : idx} {{0x23} {x:Bglobalidx}} => `GLOBAL.GET`_instr{globalidx#25}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:78.5-78.38 - prod{x : idx} {{0x24} {x:Bglobalidx}} => GLOBAL.SET_instr(x) + prod{globalidx#27 : globalidx, x : idx} {{0x24} {x:Bglobalidx}} => `GLOBAL.SET`_instr{globalidx#27}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:85.5-85.36 - prod{x : idx} {{0x25} {x:Btableidx}} => TABLE.GET_instr(x) + prod{tableidx#129 : tableidx, x : idx} {{0x25} {x:Btableidx}} => `TABLE.GET`_instr{tableidx#129}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:86.5-86.36 - prod{x : idx} {{0x26} {x:Btableidx}} => TABLE.SET_instr(x) + prod{tableidx#131 : tableidx, x : idx} {{0x26} {x:Btableidx}} => `TABLE.SET`_instr{tableidx#131}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:87.5-87.58 - prod{y : idx, x : idx} {{0xFC} {`%`_u32(12):Bu32} {y:Belemidx} {x:Btableidx}} => TABLE.INIT_instr(x, y) + prod{tableidx#133 : tableidx, elemidx#49 : elemidx, x : idx, y : idx, i#50586 : nat} {{0xFC} {`%`_u32{i#50586}(12):Bu32} {y:Belemidx} {x:Btableidx}} => `TABLE.INIT`_instr{tableidx#133, elemidx#49}(x, y) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:88.5-88.43 - prod{x : idx} {{0xFC} {`%`_u32(13):Bu32} {x:Belemidx}} => ELEM.DROP_instr(x) + prod{elemidx#51 : elemidx, x : idx, i#50673 : nat} {{0xFC} {`%`_u32{i#50673}(13):Bu32} {x:Belemidx}} => `ELEM.DROP`_instr{elemidx#51}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:89.5-89.67 - prod{x_1 : idx, x_2 : idx} {{0xFC} {`%`_u32(14):Bu32} {x_1:Btableidx} {x_2:Btableidx}} => TABLE.COPY_instr(x_1, x_2) + prod{tableidx#135 : tableidx, x_1 : idx, x_2 : idx, i#50729 : nat} {{0xFC} {`%`_u32{i#50729}(14):Bu32} {x_1:Btableidx} {x_2:Btableidx}} => `TABLE.COPY`_instr{tableidx#135}(x_1, x_2) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:90.5-90.45 - prod{x : idx} {{0xFC} {`%`_u32(15):Bu32} {x:Btableidx}} => TABLE.GROW_instr(x) + prod{tableidx#138 : tableidx, x : idx, i#50816 : nat} {{0xFC} {`%`_u32{i#50816}(15):Bu32} {x:Btableidx}} => `TABLE.GROW`_instr{tableidx#138}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:91.5-91.45 - prod{x : idx} {{0xFC} {`%`_u32(16):Bu32} {x:Btableidx}} => TABLE.SIZE_instr(x) + prod{tableidx#140 : tableidx, x : idx, i#50872 : nat} {{0xFC} {`%`_u32{i#50872}(16):Bu32} {x:Btableidx}} => `TABLE.SIZE`_instr{tableidx#140}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:92.5-92.45 - prod{x : idx} {{0xFC} {`%`_u32(17):Bu32} {x:Btableidx}} => TABLE.FILL_instr(x) + prod{tableidx#142 : tableidx, x : idx, i#50928 : nat} {{0xFC} {`%`_u32{i#50928}(17):Bu32} {x:Btableidx}} => `TABLE.FILL`_instr{tableidx#142}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:105.5-105.41 - prod{x : idx, ao : memarg} {{0x28} {(x, ao):Bmemarg}} => LOAD_instr(I32_numtype, ?(), x, ao) + prod{`numtype?#21` : numtype?, memidx#171 : memidx, memarg#91 : memarg, x : idx, ao : memarg} {{0x28} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#21`, memidx#171, memarg#91}(`I32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:106.5-106.41 - prod{x : idx, ao : memarg} {{0x29} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(), x, ao) + prod{`numtype?#22` : numtype?, memidx#173 : memidx, memarg#93 : memarg, x : idx, ao : memarg} {{0x29} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#22`, memidx#173, memarg#93}(`I64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:107.5-107.41 - prod{x : idx, ao : memarg} {{0x2A} {(x, ao):Bmemarg}} => LOAD_instr(F32_numtype, ?(), x, ao) + prod{`numtype?#23` : numtype?, memidx#175 : memidx, memarg#95 : memarg, x : idx, ao : memarg} {{0x2A} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#23`, memidx#175, memarg#95}(`F32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:108.5-108.41 - prod{x : idx, ao : memarg} {{0x2B} {(x, ao):Bmemarg}} => LOAD_instr(F64_numtype, ?(), x, ao) + prod{`numtype?#24` : numtype?, memidx#177 : memidx, memarg#97 : memarg, x : idx, ao : memarg} {{0x2B} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#24`, memidx#177, memarg#97}(`F64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:109.5-109.50 - prod{x : idx, ao : memarg} {{0x2C} {(x, ao):Bmemarg}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(8), S_sx)), x, ao) + prod{`numtype?#25` : numtype?, memidx#179 : memidx, memarg#99 : memarg, sz#558 : sz, sx#426 : sx, i#51346 : nat, i#51353 : nat, x : idx, ao : memarg} {{0x2C} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#25`, memidx#179, memarg#99}(`I32`_numtype, ?(`%_%`_loadop_{sz#558, sx#426, i#51346}(`%`_sz{i#51353}(8), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:110.5-110.50 - prod{x : idx, ao : memarg} {{0x2D} {(x, ao):Bmemarg}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(8), U_sx)), x, ao) + prod{`numtype?#26` : numtype?, memidx#181 : memidx, memarg#101 : memarg, sz#576 : sz, sx#444 : sx, i#51405 : nat, i#51412 : nat, x : idx, ao : memarg} {{0x2D} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#26`, memidx#181, memarg#101}(`I32`_numtype, ?(`%_%`_loadop_{sz#576, sx#444, i#51405}(`%`_sz{i#51412}(8), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:111.5-111.51 - prod{x : idx, ao : memarg} {{0x2E} {(x, ao):Bmemarg}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(16), S_sx)), x, ao) + prod{`numtype?#27` : numtype?, memidx#183 : memidx, memarg#103 : memarg, sz#594 : sz, sx#462 : sx, i#51464 : nat, i#51471 : nat, x : idx, ao : memarg} {{0x2E} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#27`, memidx#183, memarg#103}(`I32`_numtype, ?(`%_%`_loadop_{sz#594, sx#462, i#51464}(`%`_sz{i#51471}(16), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:112.5-112.51 - prod{x : idx, ao : memarg} {{0x2F} {(x, ao):Bmemarg}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(16), U_sx)), x, ao) + prod{`numtype?#28` : numtype?, memidx#185 : memidx, memarg#105 : memarg, sz#612 : sz, sx#480 : sx, i#51523 : nat, i#51530 : nat, x : idx, ao : memarg} {{0x2F} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#28`, memidx#185, memarg#105}(`I32`_numtype, ?(`%_%`_loadop_{sz#612, sx#480, i#51523}(`%`_sz{i#51530}(16), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:113.5-113.50 - prod{x : idx, ao : memarg} {{0x30} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(8), S_sx)), x, ao) + prod{`numtype?#29` : numtype?, memidx#187 : memidx, memarg#107 : memarg, sz#630 : sz, sx#498 : sx, i#51582 : nat, i#51589 : nat, x : idx, ao : memarg} {{0x30} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#29`, memidx#187, memarg#107}(`I64`_numtype, ?(`%_%`_loadop_{sz#630, sx#498, i#51582}(`%`_sz{i#51589}(8), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:114.5-114.50 - prod{x : idx, ao : memarg} {{0x31} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(8), U_sx)), x, ao) + prod{`numtype?#30` : numtype?, memidx#189 : memidx, memarg#109 : memarg, sz#648 : sz, sx#516 : sx, i#51641 : nat, i#51648 : nat, x : idx, ao : memarg} {{0x31} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#30`, memidx#189, memarg#109}(`I64`_numtype, ?(`%_%`_loadop_{sz#648, sx#516, i#51641}(`%`_sz{i#51648}(8), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:115.5-115.51 - prod{x : idx, ao : memarg} {{0x32} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(16), S_sx)), x, ao) + prod{`numtype?#31` : numtype?, memidx#191 : memidx, memarg#111 : memarg, sz#666 : sz, sx#534 : sx, i#51700 : nat, i#51707 : nat, x : idx, ao : memarg} {{0x32} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#31`, memidx#191, memarg#111}(`I64`_numtype, ?(`%_%`_loadop_{sz#666, sx#534, i#51700}(`%`_sz{i#51707}(16), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:116.5-116.51 - prod{x : idx, ao : memarg} {{0x33} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(16), U_sx)), x, ao) + prod{`numtype?#32` : numtype?, memidx#193 : memidx, memarg#113 : memarg, sz#684 : sz, sx#552 : sx, i#51759 : nat, i#51766 : nat, x : idx, ao : memarg} {{0x33} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#32`, memidx#193, memarg#113}(`I64`_numtype, ?(`%_%`_loadop_{sz#684, sx#552, i#51759}(`%`_sz{i#51766}(16), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:117.5-117.51 - prod{x : idx, ao : memarg} {{0x34} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(32), S_sx)), x, ao) + prod{`numtype?#33` : numtype?, memidx#195 : memidx, memarg#115 : memarg, sz#702 : sz, sx#570 : sx, i#51818 : nat, i#51825 : nat, x : idx, ao : memarg} {{0x34} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#33`, memidx#195, memarg#115}(`I64`_numtype, ?(`%_%`_loadop_{sz#702, sx#570, i#51818}(`%`_sz{i#51825}(32), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:118.5-118.51 - prod{x : idx, ao : memarg} {{0x35} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(32), U_sx)), x, ao) + prod{`numtype?#34` : numtype?, memidx#197 : memidx, memarg#117 : memarg, sz#720 : sz, sx#588 : sx, i#51877 : nat, i#51884 : nat, x : idx, ao : memarg} {{0x35} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#34`, memidx#197, memarg#117}(`I64`_numtype, ?(`%_%`_loadop_{sz#720, sx#588, i#51877}(`%`_sz{i#51884}(32), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:119.5-119.42 - prod{x : idx, ao : memarg} {{0x36} {(x, ao):Bmemarg}} => STORE_instr(I32_numtype, ?(), x, ao) + prod{`numtype?#35` : numtype?, memidx#199 : memidx, memarg#119 : memarg, x : idx, ao : memarg} {{0x36} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#35`, memidx#199, memarg#119}(`I32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:120.5-120.42 - prod{x : idx, ao : memarg} {{0x37} {(x, ao):Bmemarg}} => STORE_instr(I64_numtype, ?(), x, ao) + prod{`numtype?#36` : numtype?, memidx#201 : memidx, memarg#121 : memarg, x : idx, ao : memarg} {{0x37} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#36`, memidx#201, memarg#121}(`I64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:121.5-121.42 - prod{x : idx, ao : memarg} {{0x38} {(x, ao):Bmemarg}} => STORE_instr(F32_numtype, ?(), x, ao) + prod{`numtype?#37` : numtype?, memidx#203 : memidx, memarg#123 : memarg, x : idx, ao : memarg} {{0x38} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#37`, memidx#203, memarg#123}(`F32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:122.5-122.42 - prod{x : idx, ao : memarg} {{0x39} {(x, ao):Bmemarg}} => STORE_instr(F64_numtype, ?(), x, ao) + prod{`numtype?#38` : numtype?, memidx#205 : memidx, memarg#125 : memarg, x : idx, ao : memarg} {{0x39} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#38`, memidx#205, memarg#125}(`F64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:123.5-123.45 - prod{x : idx, ao : memarg} {{0x3A} {(x, ao):Bmemarg}} => STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) + prod{`numtype?#39` : numtype?, memidx#207 : memidx, memarg#127 : memarg, sz#733 : sz, i#52055 : nat, i#52056 : nat, x : idx, ao : memarg} {{0x3A} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#39`, memidx#207, memarg#127}(`I32`_numtype, ?(`%`_storeop_{sz#733, i#52055}(`%`_sz{i#52056}(8))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:124.5-124.46 - prod{x : idx, ao : memarg} {{0x3B} {(x, ao):Bmemarg}} => STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) + prod{`numtype?#40` : numtype?, memidx#209 : memidx, memarg#129 : memarg, sz#746 : sz, i#52123 : nat, i#52124 : nat, x : idx, ao : memarg} {{0x3B} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#40`, memidx#209, memarg#129}(`I32`_numtype, ?(`%`_storeop_{sz#746, i#52123}(`%`_sz{i#52124}(16))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:125.5-125.45 - prod{x : idx, ao : memarg} {{0x3C} {(x, ao):Bmemarg}} => STORE_instr(I64_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) + prod{`numtype?#41` : numtype?, memidx#211 : memidx, memarg#131 : memarg, sz#759 : sz, i#52191 : nat, i#52192 : nat, x : idx, ao : memarg} {{0x3C} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#41`, memidx#211, memarg#131}(`I64`_numtype, ?(`%`_storeop_{sz#759, i#52191}(`%`_sz{i#52192}(8))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:126.5-126.46 - prod{x : idx, ao : memarg} {{0x3D} {(x, ao):Bmemarg}} => STORE_instr(I64_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) + prod{`numtype?#42` : numtype?, memidx#213 : memidx, memarg#133 : memarg, sz#772 : sz, i#52259 : nat, i#52260 : nat, x : idx, ao : memarg} {{0x3D} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#42`, memidx#213, memarg#133}(`I64`_numtype, ?(`%`_storeop_{sz#772, i#52259}(`%`_sz{i#52260}(16))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:127.5-127.46 - prod{x : idx, ao : memarg} {{0x3E} {(x, ao):Bmemarg}} => STORE_instr(I64_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao) + prod{`numtype?#43` : numtype?, memidx#215 : memidx, memarg#135 : memarg, sz#785 : sz, i#52327 : nat, i#52328 : nat, x : idx, ao : memarg} {{0x3E} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#43`, memidx#215, memarg#135}(`I64`_numtype, ?(`%`_storeop_{sz#785, i#52327}(`%`_sz{i#52328}(32))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:128.5-128.36 - prod{x : idx} {{0x3F} {x:Bmemidx}} => MEMORY.SIZE_instr(x) + prod{memidx#217 : memidx, x : idx} {{0x3F} {x:Bmemidx}} => `MEMORY.SIZE`_instr{memidx#217}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:129.5-129.36 - prod{x : idx} {{0x40} {x:Bmemidx}} => MEMORY.GROW_instr(x) + prod{memidx#219 : memidx, x : idx} {{0x40} {x:Bmemidx}} => `MEMORY.GROW`_instr{memidx#219}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:130.5-130.56 - prod{y : idx, x : idx} {{0xFC} {`%`_u32(8):Bu32} {y:Bdataidx} {x:Bmemidx}} => MEMORY.INIT_instr(x, y) + prod{memidx#221 : memidx, dataidx#47 : dataidx, x : idx, y : idx, i#52427 : nat} {{0xFC} {`%`_u32{i#52427}(8):Bu32} {y:Bdataidx} {x:Bmemidx}} => `MEMORY.INIT`_instr{memidx#221, dataidx#47}(x, y) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:131.5-131.42 - prod{x : idx} {{0xFC} {`%`_u32(9):Bu32} {x:Bdataidx}} => DATA.DROP_instr(x) + prod{dataidx#49 : dataidx, x : idx, i#52514 : nat} {{0xFC} {`%`_u32{i#52514}(9):Bu32} {x:Bdataidx}} => `DATA.DROP`_instr{dataidx#49}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:132.5-132.64 - prod{x_1 : idx, x_2 : idx} {{0xFC} {`%`_u32(10):Bu32} {x_1:Bmemidx} {x_2:Bmemidx}} => MEMORY.COPY_instr(x_1, x_2) + prod{memidx#223 : memidx, x_1 : idx, x_2 : idx, i#52570 : nat} {{0xFC} {`%`_u32{i#52570}(10):Bu32} {x_1:Bmemidx} {x_2:Bmemidx}} => `MEMORY.COPY`_instr{memidx#223}(x_1, x_2) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:133.5-133.44 - prod{x : idx} {{0xFC} {`%`_u32(11):Bu32} {x:Bmemidx}} => MEMORY.FILL_instr(x) + prod{memidx#226 : memidx, x : idx, i#52657 : nat} {{0xFC} {`%`_u32{i#52657}(11):Bu32} {x:Bmemidx}} => `MEMORY.FILL`_instr{memidx#226}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:140.5-140.37 - prod{ht : heaptype} {{0xD0} {ht:Bheaptype}} => REF.NULL_instr(ht) + prod{heaptype#1679 : heaptype, ht : heaptype} {{0xD0} {ht:Bheaptype}} => `REF.NULL`_instr{heaptype#1679}(ht) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:141.5-141.24 - prod 0xD1 => REF.IS_NULL_instr + prod 0xD1 => `REF.IS_NULL`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:142.5-142.34 - prod{x : idx} {{0xD2} {x:Bfuncidx}} => REF.FUNC_instr(x) + prod{funcidx#3167 : funcidx, x : idx} {{0xD2} {x:Bfuncidx}} => `REF.FUNC`_instr{funcidx#3167}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:143.5-143.19 - prod 0xD3 => REF.EQ_instr + prod 0xD3 => `REF.EQ`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:144.5-144.28 - prod 0xD4 => REF.AS_NON_NULL_instr + prod 0xD4 => `REF.AS_NON_NULL`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:145.5-145.51 - prod{ht : heaptype} {{0xFB} {`%`_u32(20):Bu32} {ht:Bheaptype}} => REF.TEST_instr(REF_reftype(?(), ht)) + prod{reftype#3969 : reftype, `null?#1627` : null?, heaptype#1691 : heaptype, ht : heaptype, i#52744 : nat} {{0xFB} {`%`_u32{i#52744}(20):Bu32} {ht:Bheaptype}} => `REF.TEST`_instr{reftype#3969}(`REF`_reftype{`null?#1627`, heaptype#1691}(?(), ht)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:146.5-146.56 - prod{ht : heaptype} {{0xFB} {`%`_u32(21):Bu32} {ht:Bheaptype}} => REF.TEST_instr(REF_reftype(?(NULL_null), ht)) + prod{reftype#3971 : reftype, `null?#1639` : null?, heaptype#1703 : heaptype, ht : heaptype, i#52769 : nat} {{0xFB} {`%`_u32{i#52769}(21):Bu32} {ht:Bheaptype}} => `REF.TEST`_instr{reftype#3971}(`REF`_reftype{`null?#1639`, heaptype#1703}(?(`NULL`_null), ht)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:147.5-147.51 - prod{ht : heaptype} {{0xFB} {`%`_u32(22):Bu32} {ht:Bheaptype}} => REF.CAST_instr(REF_reftype(?(), ht)) + prod{reftype#3973 : reftype, `null?#1651` : null?, heaptype#1715 : heaptype, ht : heaptype, i#52794 : nat} {{0xFB} {`%`_u32{i#52794}(22):Bu32} {ht:Bheaptype}} => `REF.CAST`_instr{reftype#3973}(`REF`_reftype{`null?#1651`, heaptype#1715}(?(), ht)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:148.5-148.56 - prod{ht : heaptype} {{0xFB} {`%`_u32(23):Bu32} {ht:Bheaptype}} => REF.CAST_instr(REF_reftype(?(NULL_null), ht)) + prod{reftype#3975 : reftype, `null?#1663` : null?, heaptype#1727 : heaptype, ht : heaptype, i#52819 : nat} {{0xFB} {`%`_u32{i#52819}(23):Bu32} {ht:Bheaptype}} => `REF.CAST`_instr{reftype#3975}(`REF`_reftype{`null?#1663`, heaptype#1727}(?(`NULL`_null), ht)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:152.5-152.43 - prod{x : idx} {{0xFB} {`%`_u32(0):Bu32} {x:Btypeidx}} => STRUCT.NEW_instr(x) + prod{typeidx#1944 : typeidx, x : idx, i#52844 : nat} {{0xFB} {`%`_u32{i#52844}(0):Bu32} {x:Btypeidx}} => `STRUCT.NEW`_instr{typeidx#1944}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:153.5-153.51 - prod{x : idx} {{0xFB} {`%`_u32(1):Bu32} {x:Btypeidx}} => STRUCT.NEW_DEFAULT_instr(x) + prod{typeidx#1946 : typeidx, x : idx, i#52900 : nat} {{0xFB} {`%`_u32{i#52900}(1):Bu32} {x:Btypeidx}} => `STRUCT.NEW_DEFAULT`_instr{typeidx#1946}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:154.5-154.52 - prod{x : idx, i : u32} {{0xFB} {`%`_u32(2):Bu32} {x:Btypeidx} {i:Bu32}} => STRUCT.GET_instr(?(), x, i) + prod{`sx?#31` : sx?, typeidx#1948 : typeidx, u32#37 : u32, x : idx, i : u32, i#52956 : nat} {{0xFB} {`%`_u32{i#52956}(2):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr{`sx?#31`, typeidx#1948, u32#37}(?(), x, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:155.5-155.54 - prod{x : idx, i : u32} {{0xFB} {`%`_u32(3):Bu32} {x:Btypeidx} {i:Bu32}} => STRUCT.GET_instr(?(S_sx), x, i) + prod{`sx?#33` : sx?, typeidx#1950 : typeidx, u32#39 : u32, x : idx, i : u32, i#53041 : nat} {{0xFB} {`%`_u32{i#53041}(3):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr{`sx?#33`, typeidx#1950, u32#39}(?(`S`_sx), x, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:156.5-156.54 - prod{x : idx, i : u32} {{0xFB} {`%`_u32(4):Bu32} {x:Btypeidx} {i:Bu32}} => STRUCT.GET_instr(?(U_sx), x, i) + prod{`sx?#35` : sx?, typeidx#1952 : typeidx, u32#41 : u32, x : idx, i : u32, i#53148 : nat} {{0xFB} {`%`_u32{i#53148}(4):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr{`sx?#35`, typeidx#1952, u32#41}(?(`U`_sx), x, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:157.5-157.52 - prod{x : idx, i : u32} {{0xFB} {`%`_u32(5):Bu32} {x:Btypeidx} {i:Bu32}} => STRUCT.SET_instr(x, i) + prod{typeidx#1954 : typeidx, u32#43 : u32, x : idx, i : u32, i#53255 : nat} {{0xFB} {`%`_u32{i#53255}(5):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.SET`_instr{typeidx#1954, u32#43}(x, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:161.5-161.42 - prod{x : idx} {{0xFB} {`%`_u32(6):Bu32} {x:Btypeidx}} => ARRAY.NEW_instr(x) + prod{typeidx#1956 : typeidx, x : idx, i#53340 : nat} {{0xFB} {`%`_u32{i#53340}(6):Bu32} {x:Btypeidx}} => `ARRAY.NEW`_instr{typeidx#1956}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:162.5-162.50 - prod{x : idx} {{0xFB} {`%`_u32(7):Bu32} {x:Btypeidx}} => ARRAY.NEW_DEFAULT_instr(x) + prod{typeidx#1958 : typeidx, x : idx, i#53396 : nat} {{0xFB} {`%`_u32{i#53396}(7):Bu32} {x:Btypeidx}} => `ARRAY.NEW_DEFAULT`_instr{typeidx#1958}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:163.5-163.57 - prod{x : idx, n : n} {{0xFB} {`%`_u32(8):Bu32} {x:Btypeidx} {`%`_u32(n):Bu32}} => ARRAY.NEW_FIXED_instr(x, `%`_u32(n)) + prod{typeidx#1960 : typeidx, u32#45 : u32, x : idx, i#53536 : nat, n : n, i#53452 : nat, i#53496 : nat} {{0xFB} {`%`_u32{i#53452}(8):Bu32} {x:Btypeidx} {`%`_u32{i#53496}(n):Bu32}} => `ARRAY.NEW_FIXED`_instr{typeidx#1960, u32#45}(x, `%`_u32{i#53536}(n)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:164.5-164.60 - prod{x : idx, y : idx} {{0xFB} {`%`_u32(9):Bu32} {x:Btypeidx} {y:Bdataidx}} => ARRAY.NEW_DATA_instr(x, y) + prod{typeidx#1962 : typeidx, dataidx#51 : dataidx, x : idx, y : idx, i#53559 : nat} {{0xFB} {`%`_u32{i#53559}(9):Bu32} {x:Btypeidx} {y:Bdataidx}} => `ARRAY.NEW_DATA`_instr{typeidx#1962, dataidx#51}(x, y) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:165.5-165.61 - prod{x : idx, y : idx} {{0xFB} {`%`_u32(10):Bu32} {x:Btypeidx} {y:Belemidx}} => ARRAY.NEW_ELEM_instr(x, y) + prod{typeidx#1964 : typeidx, elemidx#53 : elemidx, x : idx, y : idx, i#53646 : nat} {{0xFB} {`%`_u32{i#53646}(10):Bu32} {x:Btypeidx} {y:Belemidx}} => `ARRAY.NEW_ELEM`_instr{typeidx#1964, elemidx#53}(x, y) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:166.5-166.43 - prod{x : idx} {{0xFB} {`%`_u32(11):Bu32} {x:Btypeidx}} => ARRAY.GET_instr(?(), x) + prod{`sx?#37` : sx?, typeidx#1966 : typeidx, x : idx, i#53733 : nat} {{0xFB} {`%`_u32{i#53733}(11):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr{`sx?#37`, typeidx#1966}(?(), x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:167.5-167.45 - prod{x : idx} {{0xFB} {`%`_u32(12):Bu32} {x:Btypeidx}} => ARRAY.GET_instr(?(S_sx), x) + prod{`sx?#39` : sx?, typeidx#1968 : typeidx, x : idx, i#53789 : nat} {{0xFB} {`%`_u32{i#53789}(12):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr{`sx?#39`, typeidx#1968}(?(`S`_sx), x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:168.5-168.45 - prod{x : idx} {{0xFB} {`%`_u32(13):Bu32} {x:Btypeidx}} => ARRAY.GET_instr(?(U_sx), x) + prod{`sx?#41` : sx?, typeidx#1970 : typeidx, x : idx, i#53889 : nat} {{0xFB} {`%`_u32{i#53889}(13):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr{`sx?#41`, typeidx#1970}(?(`U`_sx), x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:169.5-169.43 - prod{x : idx} {{0xFB} {`%`_u32(14):Bu32} {x:Btypeidx}} => ARRAY.SET_instr(x) + prod{typeidx#1972 : typeidx, x : idx, i#53989 : nat} {{0xFB} {`%`_u32{i#53989}(14):Bu32} {x:Btypeidx}} => `ARRAY.SET`_instr{typeidx#1972}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:170.5-170.30 - prod {{0xFB} {`%`_u32(15):Bu32}} => ARRAY.LEN_instr + prod{i#54045 : nat} {{0xFB} {`%`_u32{i#54045}(15):Bu32}} => `ARRAY.LEN`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:171.5-171.44 - prod{x : idx} {{0xFB} {`%`_u32(16):Bu32} {x:Btypeidx}} => ARRAY.FILL_instr(x) + prod{typeidx#1974 : typeidx, x : idx, i#54070 : nat} {{0xFB} {`%`_u32{i#54070}(16):Bu32} {x:Btypeidx}} => `ARRAY.FILL`_instr{typeidx#1974}(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:172.5-172.65 - prod{x_1 : idx, x_2 : idx} {{0xFB} {`%`_u32(17):Bu32} {x_1:Btypeidx} {x_2:Btypeidx}} => ARRAY.COPY_instr(x_1, x_2) + prod{typeidx#1976 : typeidx, x_1 : idx, x_2 : idx, i#54126 : nat} {{0xFB} {`%`_u32{i#54126}(17):Bu32} {x_1:Btypeidx} {x_2:Btypeidx}} => `ARRAY.COPY`_instr{typeidx#1976}(x_1, x_2) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:173.5-173.62 - prod{x : idx, y : idx} {{0xFB} {`%`_u32(18):Bu32} {x:Btypeidx} {y:Bdataidx}} => ARRAY.INIT_DATA_instr(x, y) + prod{typeidx#1979 : typeidx, dataidx#53 : dataidx, x : idx, y : idx, i#54213 : nat} {{0xFB} {`%`_u32{i#54213}(18):Bu32} {x:Btypeidx} {y:Bdataidx}} => `ARRAY.INIT_DATA`_instr{typeidx#1979, dataidx#53}(x, y) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:174.5-174.62 - prod{x : idx, y : idx} {{0xFB} {`%`_u32(19):Bu32} {x:Btypeidx} {y:Belemidx}} => ARRAY.INIT_ELEM_instr(x, y) + prod{typeidx#1981 : typeidx, elemidx#55 : elemidx, x : idx, y : idx, i#54300 : nat} {{0xFB} {`%`_u32{i#54300}(19):Bu32} {x:Btypeidx} {y:Belemidx}} => `ARRAY.INIT_ELEM`_instr{typeidx#1981, elemidx#55}(x, y) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:178.5-178.39 - prod {{0xFB} {`%`_u32(26):Bu32}} => ANY.CONVERT_EXTERN_instr + prod{i#54387 : nat} {{0xFB} {`%`_u32{i#54387}(26):Bu32}} => `ANY.CONVERT_EXTERN`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:179.5-179.39 - prod {{0xFB} {`%`_u32(27):Bu32}} => EXTERN.CONVERT_ANY_instr + prod{i#54412 : nat} {{0xFB} {`%`_u32{i#54412}(27):Bu32}} => `EXTERN.CONVERT_ANY`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:183.5-183.28 - prod {{0xFB} {`%`_u32(28):Bu32}} => REF.I31_instr + prod{i#54437 : nat} {{0xFB} {`%`_u32{i#54437}(28):Bu32}} => `REF.I31`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:184.5-184.30 - prod {{0xFB} {`%`_u32(29):Bu32}} => I31.GET_instr(S_sx) + prod{sx#590 : sx, i#54462 : nat} {{0xFB} {`%`_u32{i#54462}(29):Bu32}} => `I31.GET`_instr{sx#590}(`S`_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:185.5-185.30 - prod {{0xFB} {`%`_u32(30):Bu32}} => I31.GET_instr(U_sx) + prod{sx#592 : sx, i#54487 : nat} {{0xFB} {`%`_u32{i#54487}(30):Bu32}} => `I31.GET`_instr{sx#592}(`U`_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:192.5-192.31 - prod{n : n} {{0x41} {`%`_u32(n):Bu32}} => CONST_instr(I32_numtype, `%`_num_(n)) + prod{numtype#654 : numtype, i#54540 : nat, n : n, i#54514 : nat} {{0x41} {`%`_u32{i#54514}(n):Bu32}} => `CONST`_instr{numtype#654}(`I32`_numtype, `%`_num_{i#54540}(n)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:193.5-193.31 - prod{n : n} {{0x42} {`%`_u64(n):Bu64}} => CONST_instr(I64_numtype, `%`_num_(n)) + prod{numtype#656 : numtype, i#54591 : nat, n : n, i#54565 : nat} {{0x42} {`%`_u64{i#54565}(n):Bu64}} => `CONST`_instr{numtype#656}(`I64`_numtype, `%`_num_{i#54591}(n)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:194.5-194.31 - prod{p : f32} {{0x43} {p:Bf32}} => CONST_instr(F32_numtype, p) + prod{numtype#658 : numtype, p : f32} {{0x43} {p:Bf32}} => `CONST`_instr{numtype#658}(`F32`_numtype, p) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:195.5-195.31 - prod{p : f64} {{0x44} {p:Bf64}} => CONST_instr(F64_numtype, p) + prod{numtype#660 : numtype, p : f64} {{0x44} {p:Bf64}} => `CONST`_instr{numtype#660}(`F64`_numtype, p) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:199.5-199.27 - prod 0x45 => TESTOP_instr(I32_numtype, EQZ_testop_) + prod{numtype#662 : numtype} 0x45 => `TESTOP`_instr{numtype#662}(`I32`_numtype, `EQZ`_testop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:203.5-203.25 - prod 0x46 => RELOP_instr(I32_numtype, EQ_relop_) + prod{numtype#664 : numtype} 0x46 => `RELOP`_instr{numtype#664}(`I32`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:204.5-204.25 - prod 0x47 => RELOP_instr(I32_numtype, NE_relop_) + prod{numtype#666 : numtype} 0x47 => `RELOP`_instr{numtype#666}(`I32`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:205.5-205.27 - prod 0x48 => RELOP_instr(I32_numtype, LT_relop_(S_sx)) + prod{numtype#668 : numtype, sx#836 : sx} 0x48 => `RELOP`_instr{numtype#668}(`I32`_numtype, `LT`_relop_{sx#836}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:206.5-206.27 - prod 0x49 => RELOP_instr(I32_numtype, LT_relop_(U_sx)) + prod{numtype#670 : numtype, sx#960 : sx} 0x49 => `RELOP`_instr{numtype#670}(`I32`_numtype, `LT`_relop_{sx#960}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:207.5-207.27 - prod 0x4A => RELOP_instr(I32_numtype, GT_relop_(S_sx)) + prod{numtype#672 : numtype, sx#1084 : sx} 0x4A => `RELOP`_instr{numtype#672}(`I32`_numtype, `GT`_relop_{sx#1084}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:208.5-208.27 - prod 0x4B => RELOP_instr(I32_numtype, GT_relop_(U_sx)) + prod{numtype#674 : numtype, sx#1208 : sx} 0x4B => `RELOP`_instr{numtype#674}(`I32`_numtype, `GT`_relop_{sx#1208}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:209.5-209.27 - prod 0x4C => RELOP_instr(I32_numtype, LE_relop_(S_sx)) + prod{numtype#676 : numtype, sx#1332 : sx} 0x4C => `RELOP`_instr{numtype#676}(`I32`_numtype, `LE`_relop_{sx#1332}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:210.5-210.27 - prod 0x4D => RELOP_instr(I32_numtype, LE_relop_(U_sx)) + prod{numtype#678 : numtype, sx#1456 : sx} 0x4D => `RELOP`_instr{numtype#678}(`I32`_numtype, `LE`_relop_{sx#1456}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:211.5-211.27 - prod 0x4E => RELOP_instr(I32_numtype, GE_relop_(S_sx)) + prod{numtype#680 : numtype, sx#1580 : sx} 0x4E => `RELOP`_instr{numtype#680}(`I32`_numtype, `GE`_relop_{sx#1580}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:212.5-212.27 - prod 0x4F => RELOP_instr(I32_numtype, GE_relop_(U_sx)) + prod{numtype#682 : numtype, sx#1704 : sx} 0x4F => `RELOP`_instr{numtype#682}(`I32`_numtype, `GE`_relop_{sx#1704}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:216.5-216.27 - prod 0x50 => TESTOP_instr(I64_numtype, EQZ_testop_) + prod{numtype#684 : numtype} 0x50 => `TESTOP`_instr{numtype#684}(`I64`_numtype, `EQZ`_testop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:220.5-220.25 - prod 0x51 => RELOP_instr(I64_numtype, EQ_relop_) + prod{numtype#686 : numtype} 0x51 => `RELOP`_instr{numtype#686}(`I64`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:221.5-221.25 - prod 0x52 => RELOP_instr(I64_numtype, NE_relop_) + prod{numtype#688 : numtype} 0x52 => `RELOP`_instr{numtype#688}(`I64`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:222.5-222.27 - prod 0x53 => RELOP_instr(I64_numtype, LT_relop_(S_sx)) + prod{numtype#690 : numtype, sx#1948 : sx} 0x53 => `RELOP`_instr{numtype#690}(`I64`_numtype, `LT`_relop_{sx#1948}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:223.5-223.27 - prod 0x54 => RELOP_instr(I64_numtype, LT_relop_(U_sx)) + prod{numtype#692 : numtype, sx#2072 : sx} 0x54 => `RELOP`_instr{numtype#692}(`I64`_numtype, `LT`_relop_{sx#2072}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:224.5-224.27 - prod 0x55 => RELOP_instr(I64_numtype, GT_relop_(S_sx)) + prod{numtype#694 : numtype, sx#2196 : sx} 0x55 => `RELOP`_instr{numtype#694}(`I64`_numtype, `GT`_relop_{sx#2196}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:225.5-225.27 - prod 0x56 => RELOP_instr(I64_numtype, GT_relop_(U_sx)) + prod{numtype#696 : numtype, sx#2320 : sx} 0x56 => `RELOP`_instr{numtype#696}(`I64`_numtype, `GT`_relop_{sx#2320}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:226.5-226.27 - prod 0x57 => RELOP_instr(I64_numtype, LE_relop_(S_sx)) + prod{numtype#698 : numtype, sx#2444 : sx} 0x57 => `RELOP`_instr{numtype#698}(`I64`_numtype, `LE`_relop_{sx#2444}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:227.5-227.27 - prod 0x58 => RELOP_instr(I64_numtype, LE_relop_(U_sx)) + prod{numtype#700 : numtype, sx#2568 : sx} 0x58 => `RELOP`_instr{numtype#700}(`I64`_numtype, `LE`_relop_{sx#2568}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:228.5-228.27 - prod 0x59 => RELOP_instr(I64_numtype, GE_relop_(S_sx)) + prod{numtype#702 : numtype, sx#2692 : sx} 0x59 => `RELOP`_instr{numtype#702}(`I64`_numtype, `GE`_relop_{sx#2692}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:229.5-229.27 - prod 0x5A => RELOP_instr(I64_numtype, GE_relop_(U_sx)) + prod{numtype#704 : numtype, sx#2816 : sx} 0x5A => `RELOP`_instr{numtype#704}(`I64`_numtype, `GE`_relop_{sx#2816}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:233.5-233.25 - prod 0x5B => RELOP_instr(F32_numtype, EQ_relop_) + prod{numtype#706 : numtype} 0x5B => `RELOP`_instr{numtype#706}(`F32`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:234.5-234.25 - prod 0x5C => RELOP_instr(F32_numtype, NE_relop_) + prod{numtype#708 : numtype} 0x5C => `RELOP`_instr{numtype#708}(`F32`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:235.5-235.25 - prod 0x5D => RELOP_instr(F32_numtype, LT_relop_) + prod{numtype#710 : numtype} 0x5D => `RELOP`_instr{numtype#710}(`F32`_numtype, `LT`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:236.5-236.25 - prod 0x5E => RELOP_instr(F32_numtype, GT_relop_) + prod{numtype#712 : numtype} 0x5E => `RELOP`_instr{numtype#712}(`F32`_numtype, `GT`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:237.5-237.25 - prod 0x5F => RELOP_instr(F32_numtype, LE_relop_) + prod{numtype#714 : numtype} 0x5F => `RELOP`_instr{numtype#714}(`F32`_numtype, `LE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:238.5-238.25 - prod 0x60 => RELOP_instr(F32_numtype, GE_relop_) + prod{numtype#716 : numtype} 0x60 => `RELOP`_instr{numtype#716}(`F32`_numtype, `GE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:242.5-242.25 - prod 0x61 => RELOP_instr(F64_numtype, EQ_relop_) + prod{numtype#718 : numtype} 0x61 => `RELOP`_instr{numtype#718}(`F64`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:243.5-243.25 - prod 0x62 => RELOP_instr(F64_numtype, NE_relop_) + prod{numtype#720 : numtype} 0x62 => `RELOP`_instr{numtype#720}(`F64`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:244.5-244.25 - prod 0x63 => RELOP_instr(F64_numtype, LT_relop_) + prod{numtype#722 : numtype} 0x63 => `RELOP`_instr{numtype#722}(`F64`_numtype, `LT`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:245.5-245.25 - prod 0x64 => RELOP_instr(F64_numtype, GT_relop_) + prod{numtype#724 : numtype} 0x64 => `RELOP`_instr{numtype#724}(`F64`_numtype, `GT`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:246.5-246.25 - prod 0x65 => RELOP_instr(F64_numtype, LE_relop_) + prod{numtype#726 : numtype} 0x65 => `RELOP`_instr{numtype#726}(`F64`_numtype, `LE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:247.5-247.25 - prod 0x66 => RELOP_instr(F64_numtype, GE_relop_) + prod{numtype#728 : numtype} 0x66 => `RELOP`_instr{numtype#728}(`F64`_numtype, `GE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:251.5-251.25 - prod 0x67 => UNOP_instr(I32_numtype, CLZ_unop_) + prod{numtype#730 : numtype} 0x67 => `UNOP`_instr{numtype#730}(`I32`_numtype, `CLZ`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:252.5-252.25 - prod 0x68 => UNOP_instr(I32_numtype, CTZ_unop_) + prod{numtype#732 : numtype} 0x68 => `UNOP`_instr{numtype#732}(`I32`_numtype, `CTZ`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:253.5-253.28 - prod 0x69 => UNOP_instr(I32_numtype, POPCNT_unop_) + prod{numtype#734 : numtype} 0x69 => `UNOP`_instr{numtype#734}(`I32`_numtype, `POPCNT`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:257.5-257.26 - prod 0x6A => BINOP_instr(I32_numtype, ADD_binop_) + prod{numtype#736 : numtype} 0x6A => `BINOP`_instr{numtype#736}(`I32`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:258.5-258.26 - prod 0x6B => BINOP_instr(I32_numtype, SUB_binop_) + prod{numtype#738 : numtype} 0x6B => `BINOP`_instr{numtype#738}(`I32`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:259.5-259.26 - prod 0x6C => BINOP_instr(I32_numtype, MUL_binop_) + prod{numtype#740 : numtype} 0x6C => `BINOP`_instr{numtype#740}(`I32`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:260.5-260.28 - prod 0x6D => BINOP_instr(I32_numtype, DIV_binop_(S_sx)) + prod{numtype#742 : numtype, sx#3045 : sx} 0x6D => `BINOP`_instr{numtype#742}(`I32`_numtype, `DIV`_binop_{sx#3045}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:261.5-261.28 - prod 0x6E => BINOP_instr(I32_numtype, DIV_binop_(U_sx)) + prod{numtype#744 : numtype, sx#3139 : sx} 0x6E => `BINOP`_instr{numtype#744}(`I32`_numtype, `DIV`_binop_{sx#3139}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:262.5-262.28 - prod 0x6F => BINOP_instr(I32_numtype, REM_binop_(S_sx)) + prod{numtype#746 : numtype, sx#3233 : sx} 0x6F => `BINOP`_instr{numtype#746}(`I32`_numtype, `REM`_binop_{sx#3233}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:263.5-263.28 - prod 0x70 => BINOP_instr(I32_numtype, REM_binop_(U_sx)) + prod{numtype#748 : numtype, sx#3327 : sx} 0x70 => `BINOP`_instr{numtype#748}(`I32`_numtype, `REM`_binop_{sx#3327}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:264.5-264.26 - prod 0x71 => BINOP_instr(I32_numtype, AND_binop_) + prod{numtype#750 : numtype} 0x71 => `BINOP`_instr{numtype#750}(`I32`_numtype, `AND`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:265.5-265.25 - prod 0x72 => BINOP_instr(I32_numtype, OR_binop_) + prod{numtype#752 : numtype} 0x72 => `BINOP`_instr{numtype#752}(`I32`_numtype, `OR`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:266.5-266.26 - prod 0x73 => BINOP_instr(I32_numtype, XOR_binop_) + prod{numtype#754 : numtype} 0x73 => `BINOP`_instr{numtype#754}(`I32`_numtype, `XOR`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:267.5-267.26 - prod 0x74 => BINOP_instr(I32_numtype, SHL_binop_) + prod{numtype#756 : numtype} 0x74 => `BINOP`_instr{numtype#756}(`I32`_numtype, `SHL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:268.5-268.28 - prod 0x75 => BINOP_instr(I32_numtype, SHR_binop_(S_sx)) + prod{numtype#758 : numtype, sx#3601 : sx} 0x75 => `BINOP`_instr{numtype#758}(`I32`_numtype, `SHR`_binop_{sx#3601}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:269.5-269.28 - prod 0x76 => BINOP_instr(I32_numtype, SHR_binop_(U_sx)) + prod{numtype#760 : numtype, sx#3695 : sx} 0x76 => `BINOP`_instr{numtype#760}(`I32`_numtype, `SHR`_binop_{sx#3695}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:270.5-270.27 - prod 0x77 => BINOP_instr(I32_numtype, ROTL_binop_) + prod{numtype#762 : numtype} 0x77 => `BINOP`_instr{numtype#762}(`I32`_numtype, `ROTL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:271.5-271.27 - prod 0x78 => BINOP_instr(I32_numtype, ROTR_binop_) + prod{numtype#764 : numtype} 0x78 => `BINOP`_instr{numtype#764}(`I32`_numtype, `ROTR`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:275.5-275.25 - prod 0x79 => UNOP_instr(I64_numtype, CLZ_unop_) + prod{numtype#766 : numtype} 0x79 => `UNOP`_instr{numtype#766}(`I64`_numtype, `CLZ`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:276.5-276.25 - prod 0x7A => UNOP_instr(I64_numtype, CTZ_unop_) + prod{numtype#768 : numtype} 0x7A => `UNOP`_instr{numtype#768}(`I64`_numtype, `CTZ`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:277.5-277.28 - prod 0x7B => UNOP_instr(I64_numtype, POPCNT_unop_) + prod{numtype#770 : numtype} 0x7B => `UNOP`_instr{numtype#770}(`I64`_numtype, `POPCNT`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:281.5-281.31 - prod 0xC0 => UNOP_instr(I32_numtype, EXTEND_unop_(`%`_sz(8))) + prod{numtype#772 : numtype, sz#909 : sz, i#54600 : nat, i#54607 : nat} 0xC0 => `UNOP`_instr{numtype#772}(`I32`_numtype, `EXTEND`_unop_{sz#909, i#54600}(`%`_sz{i#54607}(8))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:282.5-282.32 - prod 0xC1 => UNOP_instr(I32_numtype, EXTEND_unop_(`%`_sz(16))) + prod{numtype#774 : numtype, sz#943 : sz, i#54616 : nat, i#54623 : nat} 0xC1 => `UNOP`_instr{numtype#774}(`I32`_numtype, `EXTEND`_unop_{sz#943, i#54616}(`%`_sz{i#54623}(16))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:286.5-286.31 - prod 0xC2 => UNOP_instr(I64_numtype, EXTEND_unop_(`%`_sz(8))) + prod{numtype#776 : numtype, sz#977 : sz, i#54632 : nat, i#54639 : nat} 0xC2 => `UNOP`_instr{numtype#776}(`I64`_numtype, `EXTEND`_unop_{sz#977, i#54632}(`%`_sz{i#54639}(8))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:287.5-287.32 - prod 0xC3 => UNOP_instr(I64_numtype, EXTEND_unop_(`%`_sz(16))) + prod{numtype#778 : numtype, sz#1011 : sz, i#54648 : nat, i#54655 : nat} 0xC3 => `UNOP`_instr{numtype#778}(`I64`_numtype, `EXTEND`_unop_{sz#1011, i#54648}(`%`_sz{i#54655}(16))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:288.5-288.32 - prod 0xC4 => UNOP_instr(I64_numtype, EXTEND_unop_(`%`_sz(32))) + prod{numtype#780 : numtype, sz#1045 : sz, i#54664 : nat, i#54671 : nat} 0xC4 => `UNOP`_instr{numtype#780}(`I64`_numtype, `EXTEND`_unop_{sz#1045, i#54664}(`%`_sz{i#54671}(32))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:292.5-292.26 - prod 0x7C => BINOP_instr(I64_numtype, ADD_binop_) + prod{numtype#782 : numtype} 0x7C => `BINOP`_instr{numtype#782}(`I64`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:293.5-293.26 - prod 0x7D => BINOP_instr(I64_numtype, SUB_binop_) + prod{numtype#784 : numtype} 0x7D => `BINOP`_instr{numtype#784}(`I64`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:294.5-294.26 - prod 0x7E => BINOP_instr(I64_numtype, MUL_binop_) + prod{numtype#786 : numtype} 0x7E => `BINOP`_instr{numtype#786}(`I64`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:295.5-295.28 - prod 0x7F => BINOP_instr(I64_numtype, DIV_binop_(S_sx)) + prod{numtype#788 : numtype, sx#4014 : sx} 0x7F => `BINOP`_instr{numtype#788}(`I64`_numtype, `DIV`_binop_{sx#4014}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:296.5-296.28 - prod 0x80 => BINOP_instr(I64_numtype, DIV_binop_(U_sx)) + prod{numtype#790 : numtype, sx#4108 : sx} 0x80 => `BINOP`_instr{numtype#790}(`I64`_numtype, `DIV`_binop_{sx#4108}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:297.5-297.28 - prod 0x81 => BINOP_instr(I64_numtype, REM_binop_(S_sx)) + prod{numtype#792 : numtype, sx#4202 : sx} 0x81 => `BINOP`_instr{numtype#792}(`I64`_numtype, `REM`_binop_{sx#4202}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:298.5-298.28 - prod 0x82 => BINOP_instr(I64_numtype, REM_binop_(U_sx)) + prod{numtype#794 : numtype, sx#4296 : sx} 0x82 => `BINOP`_instr{numtype#794}(`I64`_numtype, `REM`_binop_{sx#4296}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:299.5-299.26 - prod 0x83 => BINOP_instr(I64_numtype, AND_binop_) + prod{numtype#796 : numtype} 0x83 => `BINOP`_instr{numtype#796}(`I64`_numtype, `AND`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:300.5-300.25 - prod 0x84 => BINOP_instr(I64_numtype, OR_binop_) + prod{numtype#798 : numtype} 0x84 => `BINOP`_instr{numtype#798}(`I64`_numtype, `OR`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:301.5-301.26 - prod 0x85 => BINOP_instr(I64_numtype, XOR_binop_) + prod{numtype#800 : numtype} 0x85 => `BINOP`_instr{numtype#800}(`I64`_numtype, `XOR`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:302.5-302.26 - prod 0x86 => BINOP_instr(I64_numtype, SHL_binop_) + prod{numtype#802 : numtype} 0x86 => `BINOP`_instr{numtype#802}(`I64`_numtype, `SHL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:303.5-303.28 - prod 0x87 => BINOP_instr(I64_numtype, SHR_binop_(S_sx)) + prod{numtype#804 : numtype, sx#4570 : sx} 0x87 => `BINOP`_instr{numtype#804}(`I64`_numtype, `SHR`_binop_{sx#4570}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:304.5-304.28 - prod 0x88 => BINOP_instr(I64_numtype, SHR_binop_(U_sx)) + prod{numtype#806 : numtype, sx#4664 : sx} 0x88 => `BINOP`_instr{numtype#806}(`I64`_numtype, `SHR`_binop_{sx#4664}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:305.5-305.27 - prod 0x89 => BINOP_instr(I64_numtype, ROTL_binop_) + prod{numtype#808 : numtype} 0x89 => `BINOP`_instr{numtype#808}(`I64`_numtype, `ROTL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:306.5-306.27 - prod 0x8A => BINOP_instr(I64_numtype, ROTR_binop_) + prod{numtype#810 : numtype} 0x8A => `BINOP`_instr{numtype#810}(`I64`_numtype, `ROTR`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:310.5-310.25 - prod 0x8B => UNOP_instr(F32_numtype, ABS_unop_) + prod{numtype#812 : numtype} 0x8B => `UNOP`_instr{numtype#812}(`F32`_numtype, `ABS`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:311.5-311.25 - prod 0x8C => UNOP_instr(F32_numtype, NEG_unop_) + prod{numtype#814 : numtype} 0x8C => `UNOP`_instr{numtype#814}(`F32`_numtype, `NEG`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:312.5-312.26 - prod 0x8D => UNOP_instr(F32_numtype, CEIL_unop_) + prod{numtype#816 : numtype} 0x8D => `UNOP`_instr{numtype#816}(`F32`_numtype, `CEIL`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:313.5-313.27 - prod 0x8E => UNOP_instr(F32_numtype, FLOOR_unop_) + prod{numtype#818 : numtype} 0x8E => `UNOP`_instr{numtype#818}(`F32`_numtype, `FLOOR`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:314.5-314.27 - prod 0x8F => UNOP_instr(F32_numtype, TRUNC_unop_) + prod{numtype#820 : numtype} 0x8F => `UNOP`_instr{numtype#820}(`F32`_numtype, `TRUNC`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:315.5-315.29 - prod 0x90 => UNOP_instr(F32_numtype, NEAREST_unop_) + prod{numtype#822 : numtype} 0x90 => `UNOP`_instr{numtype#822}(`F32`_numtype, `NEAREST`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:316.5-316.26 - prod 0x91 => UNOP_instr(F32_numtype, SQRT_unop_) + prod{numtype#824 : numtype} 0x91 => `UNOP`_instr{numtype#824}(`F32`_numtype, `SQRT`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:320.5-320.26 - prod 0x92 => BINOP_instr(F32_numtype, ADD_binop_) + prod{numtype#826 : numtype} 0x92 => `BINOP`_instr{numtype#826}(`F32`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:321.5-321.26 - prod 0x93 => BINOP_instr(F32_numtype, SUB_binop_) + prod{numtype#828 : numtype} 0x93 => `BINOP`_instr{numtype#828}(`F32`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:322.5-322.26 - prod 0x94 => BINOP_instr(F32_numtype, MUL_binop_) + prod{numtype#830 : numtype} 0x94 => `BINOP`_instr{numtype#830}(`F32`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:323.5-323.26 - prod 0x95 => BINOP_instr(F32_numtype, DIV_binop_) + prod{numtype#832 : numtype} 0x95 => `BINOP`_instr{numtype#832}(`F32`_numtype, `DIV`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:324.5-324.26 - prod 0x96 => BINOP_instr(F32_numtype, MIN_binop_) + prod{numtype#834 : numtype} 0x96 => `BINOP`_instr{numtype#834}(`F32`_numtype, `MIN`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:325.5-325.26 - prod 0x97 => BINOP_instr(F32_numtype, MAX_binop_) + prod{numtype#836 : numtype} 0x97 => `BINOP`_instr{numtype#836}(`F32`_numtype, `MAX`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:326.5-326.31 - prod 0x98 => BINOP_instr(F32_numtype, COPYSIGN_binop_) + prod{numtype#838 : numtype} 0x98 => `BINOP`_instr{numtype#838}(`F32`_numtype, `COPYSIGN`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:330.5-330.25 - prod 0x99 => UNOP_instr(F64_numtype, ABS_unop_) + prod{numtype#840 : numtype} 0x99 => `UNOP`_instr{numtype#840}(`F64`_numtype, `ABS`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:331.5-331.25 - prod 0x9A => UNOP_instr(F64_numtype, NEG_unop_) + prod{numtype#842 : numtype} 0x9A => `UNOP`_instr{numtype#842}(`F64`_numtype, `NEG`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:332.5-332.26 - prod 0x9B => UNOP_instr(F64_numtype, CEIL_unop_) + prod{numtype#844 : numtype} 0x9B => `UNOP`_instr{numtype#844}(`F64`_numtype, `CEIL`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:333.5-333.27 - prod 0x9C => UNOP_instr(F64_numtype, FLOOR_unop_) + prod{numtype#846 : numtype} 0x9C => `UNOP`_instr{numtype#846}(`F64`_numtype, `FLOOR`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:334.5-334.27 - prod 0x9D => UNOP_instr(F64_numtype, TRUNC_unop_) + prod{numtype#848 : numtype} 0x9D => `UNOP`_instr{numtype#848}(`F64`_numtype, `TRUNC`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:335.5-335.29 - prod 0x9E => UNOP_instr(F64_numtype, NEAREST_unop_) + prod{numtype#850 : numtype} 0x9E => `UNOP`_instr{numtype#850}(`F64`_numtype, `NEAREST`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:336.5-336.26 - prod 0x9F => UNOP_instr(F64_numtype, SQRT_unop_) + prod{numtype#852 : numtype} 0x9F => `UNOP`_instr{numtype#852}(`F64`_numtype, `SQRT`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:340.5-340.26 - prod 0xA0 => BINOP_instr(F64_numtype, ADD_binop_) + prod{numtype#854 : numtype} 0xA0 => `BINOP`_instr{numtype#854}(`F64`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:341.5-341.26 - prod 0xA1 => BINOP_instr(F64_numtype, SUB_binop_) + prod{numtype#856 : numtype} 0xA1 => `BINOP`_instr{numtype#856}(`F64`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:342.5-342.26 - prod 0xA2 => BINOP_instr(F64_numtype, MUL_binop_) + prod{numtype#858 : numtype} 0xA2 => `BINOP`_instr{numtype#858}(`F64`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:343.5-343.26 - prod 0xA3 => BINOP_instr(F64_numtype, DIV_binop_) + prod{numtype#860 : numtype} 0xA3 => `BINOP`_instr{numtype#860}(`F64`_numtype, `DIV`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:344.5-344.26 - prod 0xA4 => BINOP_instr(F64_numtype, MIN_binop_) + prod{numtype#862 : numtype} 0xA4 => `BINOP`_instr{numtype#862}(`F64`_numtype, `MIN`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:345.5-345.26 - prod 0xA5 => BINOP_instr(F64_numtype, MAX_binop_) + prod{numtype#864 : numtype} 0xA5 => `BINOP`_instr{numtype#864}(`F64`_numtype, `MAX`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:346.5-346.31 - prod 0xA6 => BINOP_instr(F64_numtype, COPYSIGN_binop_) + prod{numtype#866 : numtype} 0xA6 => `BINOP`_instr{numtype#866}(`F64`_numtype, `COPYSIGN`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:351.5-351.31 - prod 0xA7 => CVTOP_instr(I32_numtype, I64_numtype, WRAP_cvtop__) + prod{numtype_1#9 : numtype, numtype_2#9 : numtype} 0xA7 => `CVTOP`_instr{numtype_1#9, numtype_2#9}(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:352.5-352.34 - prod 0xA8 => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_cvtop__(S_sx)) + prod{numtype_1#11 : numtype, numtype_2#11 : numtype, sx#4833 : sx} 0xA8 => `CVTOP`_instr{numtype_1#11, numtype_2#11}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#4833}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:353.5-353.34 - prod 0xA9 => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_cvtop__(U_sx)) + prod{numtype_1#13 : numtype, numtype_2#13 : numtype, sx#4897 : sx} 0xA9 => `CVTOP`_instr{numtype_1#13, numtype_2#13}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#4897}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:354.5-354.34 - prod 0xAA => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_cvtop__(S_sx)) + prod{numtype_1#15 : numtype, numtype_2#15 : numtype, sx#4961 : sx} 0xAA => `CVTOP`_instr{numtype_1#15, numtype_2#15}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#4961}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:355.5-355.34 - prod 0xAB => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_cvtop__(U_sx)) + prod{numtype_1#17 : numtype, numtype_2#17 : numtype, sx#5025 : sx} 0xAB => `CVTOP`_instr{numtype_1#17, numtype_2#17}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5025}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:356.5-356.35 - prod 0xAC => CVTOP_instr(I64_numtype, I32_numtype, EXTEND_cvtop__(S_sx)) + prod{numtype_1#19 : numtype, numtype_2#19 : numtype, sx#5059 : sx} 0xAC => `CVTOP`_instr{numtype_1#19, numtype_2#19}(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__{sx#5059}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:357.5-357.35 - prod 0xAD => CVTOP_instr(I64_numtype, I32_numtype, EXTEND_cvtop__(U_sx)) + prod{numtype_1#21 : numtype, numtype_2#21 : numtype, sx#5093 : sx} 0xAD => `CVTOP`_instr{numtype_1#21, numtype_2#21}(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__{sx#5093}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:358.5-358.34 - prod 0xAE => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_cvtop__(S_sx)) + prod{numtype_1#23 : numtype, numtype_2#23 : numtype, sx#5157 : sx} 0xAE => `CVTOP`_instr{numtype_1#23, numtype_2#23}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#5157}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:359.5-359.34 - prod 0xAF => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_cvtop__(U_sx)) + prod{numtype_1#25 : numtype, numtype_2#25 : numtype, sx#5221 : sx} 0xAF => `CVTOP`_instr{numtype_1#25, numtype_2#25}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#5221}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:360.5-360.34 - prod 0xB0 => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_cvtop__(S_sx)) + prod{numtype_1#27 : numtype, numtype_2#27 : numtype, sx#5285 : sx} 0xB0 => `CVTOP`_instr{numtype_1#27, numtype_2#27}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5285}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:361.5-361.34 - prod 0xB1 => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_cvtop__(U_sx)) + prod{numtype_1#29 : numtype, numtype_2#29 : numtype, sx#5349 : sx} 0xB1 => `CVTOP`_instr{numtype_1#29, numtype_2#29}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5349}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:362.5-362.36 - prod 0xB2 => CVTOP_instr(F32_numtype, I32_numtype, CONVERT_cvtop__(S_sx)) + prod{numtype_1#31 : numtype, numtype_2#31 : numtype, sx#5383 : sx} 0xB2 => `CVTOP`_instr{numtype_1#31, numtype_2#31}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5383}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:363.5-363.36 - prod 0xB3 => CVTOP_instr(F32_numtype, I32_numtype, CONVERT_cvtop__(U_sx)) + prod{numtype_1#33 : numtype, numtype_2#33 : numtype, sx#5417 : sx} 0xB3 => `CVTOP`_instr{numtype_1#33, numtype_2#33}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5417}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:364.5-364.36 - prod 0xB4 => CVTOP_instr(F32_numtype, I64_numtype, CONVERT_cvtop__(S_sx)) + prod{numtype_1#35 : numtype, numtype_2#35 : numtype, sx#5451 : sx} 0xB4 => `CVTOP`_instr{numtype_1#35, numtype_2#35}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5451}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:365.5-365.36 - prod 0xB5 => CVTOP_instr(F32_numtype, I64_numtype, CONVERT_cvtop__(U_sx)) + prod{numtype_1#37 : numtype, numtype_2#37 : numtype, sx#5485 : sx} 0xB5 => `CVTOP`_instr{numtype_1#37, numtype_2#37}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5485}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:366.5-366.33 - prod 0xB6 => CVTOP_instr(F32_numtype, F64_numtype, DEMOTE_cvtop__) + prod{numtype_1#39 : numtype, numtype_2#39 : numtype} 0xB6 => `CVTOP`_instr{numtype_1#39, numtype_2#39}(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:367.5-367.36 - prod 0xB7 => CVTOP_instr(F64_numtype, I32_numtype, CONVERT_cvtop__(S_sx)) + prod{numtype_1#41 : numtype, numtype_2#41 : numtype, sx#5519 : sx} 0xB7 => `CVTOP`_instr{numtype_1#41, numtype_2#41}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5519}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:368.5-368.36 - prod 0xB8 => CVTOP_instr(F64_numtype, I32_numtype, CONVERT_cvtop__(U_sx)) + prod{numtype_1#43 : numtype, numtype_2#43 : numtype, sx#5553 : sx} 0xB8 => `CVTOP`_instr{numtype_1#43, numtype_2#43}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5553}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:369.5-369.36 - prod 0xB9 => CVTOP_instr(F64_numtype, I64_numtype, CONVERT_cvtop__(S_sx)) + prod{numtype_1#45 : numtype, numtype_2#45 : numtype, sx#5587 : sx} 0xB9 => `CVTOP`_instr{numtype_1#45, numtype_2#45}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5587}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:370.5-370.36 - prod 0xBA => CVTOP_instr(F64_numtype, I64_numtype, CONVERT_cvtop__(U_sx)) + prod{numtype_1#47 : numtype, numtype_2#47 : numtype, sx#5621 : sx} 0xBA => `CVTOP`_instr{numtype_1#47, numtype_2#47}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5621}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:371.5-371.34 - prod 0xBB => CVTOP_instr(F64_numtype, F32_numtype, PROMOTE_cvtop__) + prod{numtype_1#49 : numtype, numtype_2#49 : numtype} 0xBB => `CVTOP`_instr{numtype_1#49, numtype_2#49}(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:372.5-372.38 - prod 0xBC => CVTOP_instr(I32_numtype, F32_numtype, REINTERPRET_cvtop__) + prod{numtype_1#51 : numtype, numtype_2#51 : numtype} 0xBC => `CVTOP`_instr{numtype_1#51, numtype_2#51}(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:373.5-373.38 - prod 0xBD => CVTOP_instr(I64_numtype, F64_numtype, REINTERPRET_cvtop__) + prod{numtype_1#53 : numtype, numtype_2#53 : numtype} 0xBD => `CVTOP`_instr{numtype_1#53, numtype_2#53}(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:374.5-374.38 - prod 0xBE => CVTOP_instr(F32_numtype, I32_numtype, REINTERPRET_cvtop__) + prod{numtype_1#55 : numtype, numtype_2#55 : numtype} 0xBE => `CVTOP`_instr{numtype_1#55, numtype_2#55}(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:375.5-375.38 - prod 0xBF => CVTOP_instr(F64_numtype, I64_numtype, REINTERPRET_cvtop__) + prod{numtype_1#57 : numtype, numtype_2#57 : numtype} 0xBF => `CVTOP`_instr{numtype_1#57, numtype_2#57}(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:379.5-379.45 - prod {{0xFC} {`%`_u32(0):Bu32}} => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_SAT_cvtop__(S_sx)) + prod{numtype_1#59 : numtype, numtype_2#59 : numtype, sx#5775 : sx, i#54694 : nat} {{0xFC} {`%`_u32{i#54694}(0):Bu32}} => `CVTOP`_instr{numtype_1#59, numtype_2#59}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#5775}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:380.5-380.45 - prod {{0xFC} {`%`_u32(1):Bu32}} => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_SAT_cvtop__(U_sx)) + prod{numtype_1#61 : numtype, numtype_2#61 : numtype, sx#5839 : sx, i#54719 : nat} {{0xFC} {`%`_u32{i#54719}(1):Bu32}} => `CVTOP`_instr{numtype_1#61, numtype_2#61}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#5839}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:381.5-381.45 - prod {{0xFC} {`%`_u32(2):Bu32}} => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_SAT_cvtop__(S_sx)) + prod{numtype_1#63 : numtype, numtype_2#63 : numtype, sx#5903 : sx, i#54744 : nat} {{0xFC} {`%`_u32{i#54744}(2):Bu32}} => `CVTOP`_instr{numtype_1#63, numtype_2#63}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#5903}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:382.5-382.45 - prod {{0xFC} {`%`_u32(3):Bu32}} => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_SAT_cvtop__(U_sx)) + prod{numtype_1#65 : numtype, numtype_2#65 : numtype, sx#5967 : sx, i#54769 : nat} {{0xFC} {`%`_u32{i#54769}(3):Bu32}} => `CVTOP`_instr{numtype_1#65, numtype_2#65}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#5967}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:383.5-383.45 - prod {{0xFC} {`%`_u32(4):Bu32}} => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_SAT_cvtop__(S_sx)) + prod{numtype_1#67 : numtype, numtype_2#67 : numtype, sx#6031 : sx, i#54794 : nat} {{0xFC} {`%`_u32{i#54794}(4):Bu32}} => `CVTOP`_instr{numtype_1#67, numtype_2#67}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#6031}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:384.5-384.45 - prod {{0xFC} {`%`_u32(5):Bu32}} => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_SAT_cvtop__(U_sx)) + prod{numtype_1#69 : numtype, numtype_2#69 : numtype, sx#6095 : sx, i#54819 : nat} {{0xFC} {`%`_u32{i#54819}(5):Bu32}} => `CVTOP`_instr{numtype_1#69, numtype_2#69}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#6095}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:385.5-385.45 - prod {{0xFC} {`%`_u32(6):Bu32}} => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_SAT_cvtop__(S_sx)) + prod{numtype_1#71 : numtype, numtype_2#71 : numtype, sx#6159 : sx, i#54844 : nat} {{0xFC} {`%`_u32{i#54844}(6):Bu32}} => `CVTOP`_instr{numtype_1#71, numtype_2#71}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#6159}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:386.5-386.45 - prod {{0xFC} {`%`_u32(7):Bu32}} => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_SAT_cvtop__(U_sx)) + prod{numtype_1#73 : numtype, numtype_2#73 : numtype, sx#6223 : sx, i#54869 : nat} {{0xFC} {`%`_u32{i#54869}(7):Bu32}} => `CVTOP`_instr{numtype_1#73, numtype_2#73}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#6223}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:396.5-396.50 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(0):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(), x, ao) + prod{`vectype?#14` : vectype?, memidx#228 : memidx, memarg#137 : memarg, x : idx, ao : memarg, i#54968 : nat} {{0xFD} {`%`_u32{i#54968}(0):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#14`, memidx#228, memarg#137}(`V128`_vectype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:397.5-397.70 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(1):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, S_sx)), x, ao) + prod{`vectype?#15` : vectype?, memidx#230 : memidx, memarg#139 : memarg, sz#1092 : sz, M#157 : M, sx#6240 : sx, i#55059 : nat, i#55066 : nat, x : idx, ao : memarg, i#55019 : nat} {{0xFD} {`%`_u32{i#55019}(1):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#15`, memidx#230, memarg#139}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1092, M#157, sx#6240, i#55059}(`%`_sz{i#55066}(8), 8, `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:398.5-398.70 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(2):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, U_sx)), x, ao) + prod{`vectype?#16` : vectype?, memidx#232 : memidx, memarg#141 : memarg, sz#1139 : sz, M#174 : M, sx#6257 : sx, i#55143 : nat, i#55150 : nat, x : idx, ao : memarg, i#55103 : nat} {{0xFD} {`%`_u32{i#55103}(2):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#16`, memidx#232, memarg#141}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1139, M#174, sx#6257, i#55143}(`%`_sz{i#55150}(8), 8, `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:399.5-399.71 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(3):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, S_sx)), x, ao) + prod{`vectype?#17` : vectype?, memidx#234 : memidx, memarg#143 : memarg, sz#1186 : sz, M#191 : M, sx#6274 : sx, i#55227 : nat, i#55234 : nat, x : idx, ao : memarg, i#55187 : nat} {{0xFD} {`%`_u32{i#55187}(3):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#17`, memidx#234, memarg#143}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1186, M#191, sx#6274, i#55227}(`%`_sz{i#55234}(16), 4, `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:400.5-400.71 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(4):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, U_sx)), x, ao) + prod{`vectype?#18` : vectype?, memidx#236 : memidx, memarg#145 : memarg, sz#1233 : sz, M#208 : M, sx#6291 : sx, i#55311 : nat, i#55318 : nat, x : idx, ao : memarg, i#55271 : nat} {{0xFD} {`%`_u32{i#55271}(4):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#18`, memidx#236, memarg#145}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1233, M#208, sx#6291, i#55311}(`%`_sz{i#55318}(16), 4, `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:401.5-401.71 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(5):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, S_sx)), x, ao) + prod{`vectype?#19` : vectype?, memidx#238 : memidx, memarg#147 : memarg, sz#1280 : sz, M#225 : M, sx#6308 : sx, i#55395 : nat, i#55402 : nat, x : idx, ao : memarg, i#55355 : nat} {{0xFD} {`%`_u32{i#55355}(5):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#19`, memidx#238, memarg#147}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1280, M#225, sx#6308, i#55395}(`%`_sz{i#55402}(32), 2, `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:402.5-402.71 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(6):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, U_sx)), x, ao) + prod{`vectype?#20` : vectype?, memidx#240 : memidx, memarg#149 : memarg, sz#1327 : sz, M#242 : M, sx#6325 : sx, i#55479 : nat, i#55486 : nat, x : idx, ao : memarg, i#55439 : nat} {{0xFD} {`%`_u32{i#55439}(6):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#20`, memidx#240, memarg#149}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1327, M#242, sx#6325, i#55479}(`%`_sz{i#55486}(32), 2, `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:403.5-403.61 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(7):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(8))), x, ao) + prod{`vectype?#21` : vectype?, memidx#242 : memidx, memarg#151 : memarg, sz#1374 : sz, i#55569 : nat, x : idx, ao : memarg, i#55523 : nat} {{0xFD} {`%`_u32{i#55523}(7):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#21`, memidx#242, memarg#151}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1374}(`%`_sz{i#55569}(8))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:404.5-404.62 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(8):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(16))), x, ao) + prod{`vectype?#22` : vectype?, memidx#244 : memidx, memarg#153 : memarg, sz#1421 : sz, i#55652 : nat, x : idx, ao : memarg, i#55606 : nat} {{0xFD} {`%`_u32{i#55606}(8):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#22`, memidx#244, memarg#153}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1421}(`%`_sz{i#55652}(16))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:405.5-405.62 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(9):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(32))), x, ao) + prod{`vectype?#23` : vectype?, memidx#246 : memidx, memarg#155 : memarg, sz#1468 : sz, i#55735 : nat, x : idx, ao : memarg, i#55689 : nat} {{0xFD} {`%`_u32{i#55689}(9):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#23`, memidx#246, memarg#155}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1468}(`%`_sz{i#55735}(32))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:406.5-406.63 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(10):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(64))), x, ao) + prod{`vectype?#24` : vectype?, memidx#248 : memidx, memarg#157 : memarg, sz#1515 : sz, i#55818 : nat, x : idx, ao : memarg, i#55772 : nat} {{0xFD} {`%`_u32{i#55772}(10):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#24`, memidx#248, memarg#157}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1515}(`%`_sz{i#55818}(64))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:407.5-407.52 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(11):Bu32} {(x, ao):Bmemarg}} => VSTORE_instr(V128_vectype, x, ao) + prod{vectype#237 : vectype, memidx#250 : memidx, memarg#159 : memarg, x : idx, ao : memarg, i#55855 : nat} {{0xFD} {`%`_u32{i#55855}(11):Bu32} {(x, ao):Bmemarg}} => `VSTORE`_instr{vectype#237, memidx#250, memarg#159}(`V128`_vectype, x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:408.5-408.72 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(84):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(8), x, ao, i) + prod{vectype#239 : vectype, sz#1517 : sz, memidx#252 : memidx, memarg#161 : memarg, laneidx#31 : laneidx, i#55945 : nat, x : idx, ao : memarg, i : laneidx, i#55906 : nat} {{0xFD} {`%`_u32{i#55906}(84):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr{vectype#239, sz#1517, memidx#252, memarg#161, laneidx#31}(`V128`_vectype, `%`_sz{i#55945}(8), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:409.5-409.73 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(85):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(16), x, ao, i) + prod{vectype#241 : vectype, sz#1519 : sz, memidx#254 : memidx, memarg#163 : memarg, laneidx#33 : laneidx, i#56033 : nat, x : idx, ao : memarg, i : laneidx, i#55994 : nat} {{0xFD} {`%`_u32{i#55994}(85):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr{vectype#241, sz#1519, memidx#254, memarg#163, laneidx#33}(`V128`_vectype, `%`_sz{i#56033}(16), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:410.5-410.73 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(86):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(32), x, ao, i) + prod{vectype#243 : vectype, sz#1521 : sz, memidx#256 : memidx, memarg#165 : memarg, laneidx#35 : laneidx, i#56121 : nat, x : idx, ao : memarg, i : laneidx, i#56082 : nat} {{0xFD} {`%`_u32{i#56082}(86):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr{vectype#243, sz#1521, memidx#256, memarg#165, laneidx#35}(`V128`_vectype, `%`_sz{i#56121}(32), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:411.5-411.73 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(87):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(64), x, ao, i) + prod{vectype#245 : vectype, sz#1523 : sz, memidx#258 : memidx, memarg#167 : memarg, laneidx#37 : laneidx, i#56209 : nat, x : idx, ao : memarg, i : laneidx, i#56170 : nat} {{0xFD} {`%`_u32{i#56170}(87):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr{vectype#245, sz#1523, memidx#258, memarg#167, laneidx#37}(`V128`_vectype, `%`_sz{i#56209}(64), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:412.5-412.73 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(88):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(8), x, ao, i) + prod{vectype#247 : vectype, sz#1525 : sz, memidx#260 : memidx, memarg#169 : memarg, laneidx#39 : laneidx, i#56297 : nat, x : idx, ao : memarg, i : laneidx, i#56258 : nat} {{0xFD} {`%`_u32{i#56258}(88):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr{vectype#247, sz#1525, memidx#260, memarg#169, laneidx#39}(`V128`_vectype, `%`_sz{i#56297}(8), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:413.5-413.74 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(89):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(16), x, ao, i) + prod{vectype#249 : vectype, sz#1527 : sz, memidx#262 : memidx, memarg#171 : memarg, laneidx#41 : laneidx, i#56385 : nat, x : idx, ao : memarg, i : laneidx, i#56346 : nat} {{0xFD} {`%`_u32{i#56346}(89):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr{vectype#249, sz#1527, memidx#262, memarg#171, laneidx#41}(`V128`_vectype, `%`_sz{i#56385}(16), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:414.5-414.74 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(90):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(32), x, ao, i) + prod{vectype#251 : vectype, sz#1529 : sz, memidx#264 : memidx, memarg#173 : memarg, laneidx#43 : laneidx, i#56473 : nat, x : idx, ao : memarg, i : laneidx, i#56434 : nat} {{0xFD} {`%`_u32{i#56434}(90):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr{vectype#251, sz#1529, memidx#264, memarg#173, laneidx#43}(`V128`_vectype, `%`_sz{i#56473}(32), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:415.5-415.74 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(91):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(64), x, ao, i) + prod{vectype#253 : vectype, sz#1531 : sz, memidx#266 : memidx, memarg#175 : memarg, laneidx#45 : laneidx, i#56561 : nat, x : idx, ao : memarg, i : laneidx, i#56522 : nat} {{0xFD} {`%`_u32{i#56522}(91):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr{vectype#253, sz#1531, memidx#266, memarg#175, laneidx#45}(`V128`_vectype, `%`_sz{i#56561}(64), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:416.5-416.62 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(92):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(32))), x, ao) + prod{`vectype?#25` : vectype?, memidx#268 : memidx, memarg#177 : memarg, sz#1578 : sz, i#56650 : nat, i#56657 : nat, x : idx, ao : memarg, i#56610 : nat} {{0xFD} {`%`_u32{i#56610}(92):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#25`, memidx#268, memarg#177}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#1578, i#56650}(`%`_sz{i#56657}(32))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:417.5-417.62 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(93):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(64))), x, ao) + prod{`vectype?#26` : vectype?, memidx#270 : memidx, memarg#179 : memarg, sz#1625 : sz, i#56734 : nat, i#56741 : nat, x : idx, ao : memarg, i#56694 : nat} {{0xFD} {`%`_u32{i#56694}(93):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#26`, memidx#270, memarg#179}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#1625, i#56734}(`%`_sz{i#56741}(64))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:421.5-421.72 - prod{`b*` : byte*} {{0xFD} {`%`_u32(12):Bu32} {b:Bbyte^16{b <- `b*`}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, b^16{b <- `b*`})) + prod{vectype#257 : vectype, `b*` : byte*, i#56778 : nat} {{0xFD} {`%`_u32{i#56778}(12):Bu32} {b:Bbyte^16{b <- `b*`}}} => `VCONST`_instr{vectype#257}(`V128`_vectype, $inv_ibytes_(128, b^16{b <- `b*`})) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:425.5-425.61 - prod{`l*` : labelidx*} {{0xFD} {`%`_u32(13):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx^16{l <- `l*`}}} => VSHUFFLE_instr(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(16))), `%`_laneidx(l!`%`_labelidx.0)^16{l <- `l*`}) + prod{bshape#13 : bshape, `laneidx*#7` : laneidx*, i#56888 : nat, shape#845 : shape, shape#856 : shape, lanetype#7789 : lanetype, dim#7789 : dim, i#56892 : nat, i#56899 : nat, `i#56956*` : nat*, `i#56957*` : nat*, `l*` : labelidx*, i#56835 : nat, `i#56884*` : nat*, `i#56885*` : nat*} {{0xFD} {`%`_u32{i#56835}(13):Bu32} {`%`_laneidx{i#56885}(l!`%`_labelidx{i#56884}.0):Blaneidx^16{i#56884 <- `i#56884*`, i#56885 <- `i#56885*`, l <- `l*`}}} => `VSHUFFLE`_instr{bshape#13, `laneidx*#7`, i#56888, shape#845}(`%`_bshape{shape#856}(`%X%`_shape{lanetype#7789, dim#7789, i#56892}(`I8`_lanetype, `%`_dim{i#56899}(16))), `%`_laneidx{i#56957}(l!`%`_labelidx{i#56956}.0)^16{i#56956 <- `i#56956*`, i#56957 <- `i#56957*`, l <- `l*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:426.5-426.49 - prod {{0xFD} {`%`_u32(14):Bu32}} => VSWIZZLOP_instr(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SWIZZLE_vswizzlop_) + prod{bshape#15 : bshape, shape#868 : shape, lanetype#7801 : lanetype, dim#7801 : dim, i#56988 : nat, i#56995 : nat, i#56981 : nat} {{0xFD} {`%`_u32{i#56981}(14):Bu32}} => `VSWIZZLOP`_instr{bshape#15}(`%`_bshape{shape#868}(`%X%`_shape{lanetype#7801, dim#7801, i#56988}(`I8`_lanetype, `%`_dim{i#56995}(16))), `SWIZZLE`_vswizzlop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:427.5-427.58 - prod {{0xFD} {`%`_u32(256):Bu32}} => VSWIZZLOP_instr(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(16))), RELAXED_SWIZZLE_vswizzlop_) + prod{bshape#17 : bshape, shape#895 : shape, lanetype#7858 : lanetype, dim#7858 : dim, i#57100 : nat, i#57107 : nat, i#57093 : nat} {{0xFD} {`%`_u32{i#57093}(256):Bu32}} => `VSWIZZLOP`_instr{bshape#17}(`%`_bshape{shape#895}(`%X%`_shape{lanetype#7858, dim#7858, i#57100}(`I8`_lanetype, `%`_dim{i#57107}(16))), `RELAXED_SWIZZLE`_vswizzlop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:431.5-431.38 - prod {{0xFD} {`%`_u32(15):Bu32}} => VSPLAT_instr(`%X%`_shape(I8_lanetype, `%`_dim(16))) + prod{shape#912 : shape, lanetype#7915 : lanetype, dim#7915 : dim, i#57212 : nat, i#57219 : nat, i#57205 : nat} {{0xFD} {`%`_u32{i#57205}(15):Bu32}} => `VSPLAT`_instr{shape#912}(`%X%`_shape{lanetype#7915, dim#7915, i#57212}(`I8`_lanetype, `%`_dim{i#57219}(16))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:432.5-432.38 - prod {{0xFD} {`%`_u32(16):Bu32}} => VSPLAT_instr(`%X%`_shape(I16_lanetype, `%`_dim(8))) + prod{shape#914 : shape, lanetype#7927 : lanetype, dim#7927 : dim, i#57249 : nat, i#57256 : nat, i#57242 : nat} {{0xFD} {`%`_u32{i#57242}(16):Bu32}} => `VSPLAT`_instr{shape#914}(`%X%`_shape{lanetype#7927, dim#7927, i#57249}(`I16`_lanetype, `%`_dim{i#57256}(8))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:433.5-433.38 - prod {{0xFD} {`%`_u32(17):Bu32}} => VSPLAT_instr(`%X%`_shape(I32_lanetype, `%`_dim(4))) + prod{shape#916 : shape, lanetype#7939 : lanetype, dim#7939 : dim, i#57286 : nat, i#57293 : nat, i#57279 : nat} {{0xFD} {`%`_u32{i#57279}(17):Bu32}} => `VSPLAT`_instr{shape#916}(`%X%`_shape{lanetype#7939, dim#7939, i#57286}(`I32`_lanetype, `%`_dim{i#57293}(4))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:434.5-434.38 - prod {{0xFD} {`%`_u32(18):Bu32}} => VSPLAT_instr(`%X%`_shape(I64_lanetype, `%`_dim(2))) + prod{shape#918 : shape, lanetype#7951 : lanetype, dim#7951 : dim, i#57323 : nat, i#57330 : nat, i#57316 : nat} {{0xFD} {`%`_u32{i#57316}(18):Bu32}} => `VSPLAT`_instr{shape#918}(`%X%`_shape{lanetype#7951, dim#7951, i#57323}(`I64`_lanetype, `%`_dim{i#57330}(2))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:435.5-435.38 - prod {{0xFD} {`%`_u32(19):Bu32}} => VSPLAT_instr(`%X%`_shape(F32_lanetype, `%`_dim(4))) + prod{shape#920 : shape, lanetype#7963 : lanetype, dim#7963 : dim, i#57360 : nat, i#57367 : nat, i#57353 : nat} {{0xFD} {`%`_u32{i#57353}(19):Bu32}} => `VSPLAT`_instr{shape#920}(`%X%`_shape{lanetype#7963, dim#7963, i#57360}(`F32`_lanetype, `%`_dim{i#57367}(4))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:436.5-436.38 - prod {{0xFD} {`%`_u32(20):Bu32}} => VSPLAT_instr(`%X%`_shape(F64_lanetype, `%`_dim(2))) + prod{shape#922 : shape, lanetype#7975 : lanetype, dim#7975 : dim, i#57397 : nat, i#57404 : nat, i#57390 : nat} {{0xFD} {`%`_u32{i#57390}(20):Bu32}} => `VSPLAT`_instr{shape#922}(`%X%`_shape{lanetype#7975, dim#7975, i#57397}(`F64`_lanetype, `%`_dim{i#57404}(2))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:440.5-440.60 - prod{l : labelidx} {{0xFD} {`%`_u32(21):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ?(S_sx), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#924 : shape, `sx?#43` : sx?, laneidx#47 : laneidx, lanetype#7987 : lanetype, dim#7987 : dim, i#57485 : nat, i#57492 : nat, i#57583 : nat, l : labelidx, i#57582 : nat, i#57427 : nat, i#57477 : nat, i#57476 : nat} {{0xFD} {`%`_u32{i#57427}(21):Bu32} {`%`_laneidx{i#57477}(l!`%`_labelidx{i#57476}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#924, `sx?#43`, laneidx#47}(`%X%`_shape{lanetype#7987, dim#7987, i#57485}(`I8`_lanetype, `%`_dim{i#57492}(16)), ?(`S`_sx), `%`_laneidx{i#57583}(l!`%`_labelidx{i#57582}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:441.5-441.60 - prod{l : labelidx} {{0xFD} {`%`_u32(22):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ?(U_sx), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#926 : shape, `sx?#45` : sx?, laneidx#49 : laneidx, lanetype#7999 : lanetype, dim#7999 : dim, i#57665 : nat, i#57672 : nat, i#57763 : nat, l : labelidx, i#57762 : nat, i#57607 : nat, i#57657 : nat, i#57656 : nat} {{0xFD} {`%`_u32{i#57607}(22):Bu32} {`%`_laneidx{i#57657}(l!`%`_labelidx{i#57656}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#926, `sx?#45`, laneidx#49}(`%X%`_shape{lanetype#7999, dim#7999, i#57665}(`I8`_lanetype, `%`_dim{i#57672}(16)), ?(`U`_sx), `%`_laneidx{i#57763}(l!`%`_labelidx{i#57762}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:442.5-442.58 - prod{l : labelidx} {{0xFD} {`%`_u32(23):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#928 : shape, laneidx#51 : laneidx, lanetype#8011 : lanetype, dim#8011 : dim, i#57845 : nat, i#57852 : nat, i#57899 : nat, l : labelidx, i#57898 : nat, i#57787 : nat, i#57837 : nat, i#57836 : nat} {{0xFD} {`%`_u32{i#57787}(23):Bu32} {`%`_laneidx{i#57837}(l!`%`_labelidx{i#57836}.0):Blaneidx}} => `VREPLACE_LANE`_instr{shape#928, laneidx#51}(`%X%`_shape{lanetype#8011, dim#8011, i#57845}(`I8`_lanetype, `%`_dim{i#57852}(16)), `%`_laneidx{i#57899}(l!`%`_labelidx{i#57898}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:443.5-443.60 - prod{l : labelidx} {{0xFD} {`%`_u32(24):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ?(S_sx), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#930 : shape, `sx?#47` : sx?, laneidx#53 : laneidx, lanetype#8023 : lanetype, dim#8023 : dim, i#57981 : nat, i#57988 : nat, i#58079 : nat, l : labelidx, i#58078 : nat, i#57923 : nat, i#57973 : nat, i#57972 : nat} {{0xFD} {`%`_u32{i#57923}(24):Bu32} {`%`_laneidx{i#57973}(l!`%`_labelidx{i#57972}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#930, `sx?#47`, laneidx#53}(`%X%`_shape{lanetype#8023, dim#8023, i#57981}(`I16`_lanetype, `%`_dim{i#57988}(8)), ?(`S`_sx), `%`_laneidx{i#58079}(l!`%`_labelidx{i#58078}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:444.5-444.60 - prod{l : labelidx} {{0xFD} {`%`_u32(25):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ?(U_sx), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#932 : shape, `sx?#49` : sx?, laneidx#55 : laneidx, lanetype#8035 : lanetype, dim#8035 : dim, i#58161 : nat, i#58168 : nat, i#58259 : nat, l : labelidx, i#58258 : nat, i#58103 : nat, i#58153 : nat, i#58152 : nat} {{0xFD} {`%`_u32{i#58103}(25):Bu32} {`%`_laneidx{i#58153}(l!`%`_labelidx{i#58152}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#932, `sx?#49`, laneidx#55}(`%X%`_shape{lanetype#8035, dim#8035, i#58161}(`I16`_lanetype, `%`_dim{i#58168}(8)), ?(`U`_sx), `%`_laneidx{i#58259}(l!`%`_labelidx{i#58258}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:445.5-445.58 - prod{l : labelidx} {{0xFD} {`%`_u32(26):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#934 : shape, laneidx#57 : laneidx, lanetype#8047 : lanetype, dim#8047 : dim, i#58341 : nat, i#58348 : nat, i#58395 : nat, l : labelidx, i#58394 : nat, i#58283 : nat, i#58333 : nat, i#58332 : nat} {{0xFD} {`%`_u32{i#58283}(26):Bu32} {`%`_laneidx{i#58333}(l!`%`_labelidx{i#58332}.0):Blaneidx}} => `VREPLACE_LANE`_instr{shape#934, laneidx#57}(`%X%`_shape{lanetype#8047, dim#8047, i#58341}(`I16`_lanetype, `%`_dim{i#58348}(8)), `%`_laneidx{i#58395}(l!`%`_labelidx{i#58394}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:446.5-446.58 - prod{l : labelidx} {{0xFD} {`%`_u32(27):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#936 : shape, `sx?#51` : sx?, laneidx#59 : laneidx, lanetype#8059 : lanetype, dim#8059 : dim, i#58477 : nat, i#58484 : nat, i#58531 : nat, l : labelidx, i#58530 : nat, i#58419 : nat, i#58469 : nat, i#58468 : nat} {{0xFD} {`%`_u32{i#58419}(27):Bu32} {`%`_laneidx{i#58469}(l!`%`_labelidx{i#58468}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#936, `sx?#51`, laneidx#59}(`%X%`_shape{lanetype#8059, dim#8059, i#58477}(`I32`_lanetype, `%`_dim{i#58484}(4)), ?(), `%`_laneidx{i#58531}(l!`%`_labelidx{i#58530}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:447.5-447.58 - prod{l : labelidx} {{0xFD} {`%`_u32(28):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#938 : shape, laneidx#61 : laneidx, lanetype#8071 : lanetype, dim#8071 : dim, i#58613 : nat, i#58620 : nat, i#58667 : nat, l : labelidx, i#58666 : nat, i#58555 : nat, i#58605 : nat, i#58604 : nat} {{0xFD} {`%`_u32{i#58555}(28):Bu32} {`%`_laneidx{i#58605}(l!`%`_labelidx{i#58604}.0):Blaneidx}} => `VREPLACE_LANE`_instr{shape#938, laneidx#61}(`%X%`_shape{lanetype#8071, dim#8071, i#58613}(`I32`_lanetype, `%`_dim{i#58620}(4)), `%`_laneidx{i#58667}(l!`%`_labelidx{i#58666}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:448.5-448.58 - prod{l : labelidx} {{0xFD} {`%`_u32(29):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#940 : shape, `sx?#53` : sx?, laneidx#63 : laneidx, lanetype#8083 : lanetype, dim#8083 : dim, i#58749 : nat, i#58756 : nat, i#58803 : nat, l : labelidx, i#58802 : nat, i#58691 : nat, i#58741 : nat, i#58740 : nat} {{0xFD} {`%`_u32{i#58691}(29):Bu32} {`%`_laneidx{i#58741}(l!`%`_labelidx{i#58740}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#940, `sx?#53`, laneidx#63}(`%X%`_shape{lanetype#8083, dim#8083, i#58749}(`I64`_lanetype, `%`_dim{i#58756}(2)), ?(), `%`_laneidx{i#58803}(l!`%`_labelidx{i#58802}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:449.5-449.58 - prod{l : labelidx} {{0xFD} {`%`_u32(30):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#942 : shape, laneidx#65 : laneidx, lanetype#8095 : lanetype, dim#8095 : dim, i#58885 : nat, i#58892 : nat, i#58939 : nat, l : labelidx, i#58938 : nat, i#58827 : nat, i#58877 : nat, i#58876 : nat} {{0xFD} {`%`_u32{i#58827}(30):Bu32} {`%`_laneidx{i#58877}(l!`%`_labelidx{i#58876}.0):Blaneidx}} => `VREPLACE_LANE`_instr{shape#942, laneidx#65}(`%X%`_shape{lanetype#8095, dim#8095, i#58885}(`I64`_lanetype, `%`_dim{i#58892}(2)), `%`_laneidx{i#58939}(l!`%`_labelidx{i#58938}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:450.5-450.58 - prod{l : labelidx} {{0xFD} {`%`_u32(31):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#944 : shape, `sx?#55` : sx?, laneidx#67 : laneidx, lanetype#8107 : lanetype, dim#8107 : dim, i#59021 : nat, i#59028 : nat, i#59075 : nat, l : labelidx, i#59074 : nat, i#58963 : nat, i#59013 : nat, i#59012 : nat} {{0xFD} {`%`_u32{i#58963}(31):Bu32} {`%`_laneidx{i#59013}(l!`%`_labelidx{i#59012}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#944, `sx?#55`, laneidx#67}(`%X%`_shape{lanetype#8107, dim#8107, i#59021}(`F32`_lanetype, `%`_dim{i#59028}(4)), ?(), `%`_laneidx{i#59075}(l!`%`_labelidx{i#59074}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:451.5-451.58 - prod{l : labelidx} {{0xFD} {`%`_u32(32):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#946 : shape, laneidx#69 : laneidx, lanetype#8119 : lanetype, dim#8119 : dim, i#59157 : nat, i#59164 : nat, i#59211 : nat, l : labelidx, i#59210 : nat, i#59099 : nat, i#59149 : nat, i#59148 : nat} {{0xFD} {`%`_u32{i#59099}(32):Bu32} {`%`_laneidx{i#59149}(l!`%`_labelidx{i#59148}.0):Blaneidx}} => `VREPLACE_LANE`_instr{shape#946, laneidx#69}(`%X%`_shape{lanetype#8119, dim#8119, i#59157}(`F32`_lanetype, `%`_dim{i#59164}(4)), `%`_laneidx{i#59211}(l!`%`_labelidx{i#59210}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:452.5-452.58 - prod{l : labelidx} {{0xFD} {`%`_u32(33):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#948 : shape, `sx?#57` : sx?, laneidx#71 : laneidx, lanetype#8131 : lanetype, dim#8131 : dim, i#59293 : nat, i#59300 : nat, i#59347 : nat, l : labelidx, i#59346 : nat, i#59235 : nat, i#59285 : nat, i#59284 : nat} {{0xFD} {`%`_u32{i#59235}(33):Bu32} {`%`_laneidx{i#59285}(l!`%`_labelidx{i#59284}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#948, `sx?#57`, laneidx#71}(`%X%`_shape{lanetype#8131, dim#8131, i#59293}(`F64`_lanetype, `%`_dim{i#59300}(2)), ?(), `%`_laneidx{i#59347}(l!`%`_labelidx{i#59346}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:453.5-453.58 - prod{l : labelidx} {{0xFD} {`%`_u32(34):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0)) + prod{shape#950 : shape, laneidx#73 : laneidx, lanetype#8143 : lanetype, dim#8143 : dim, i#59429 : nat, i#59436 : nat, i#59483 : nat, l : labelidx, i#59482 : nat, i#59371 : nat, i#59421 : nat, i#59420 : nat} {{0xFD} {`%`_u32{i#59371}(34):Bu32} {`%`_laneidx{i#59421}(l!`%`_labelidx{i#59420}.0):Blaneidx}} => `VREPLACE_LANE`_instr{shape#950, laneidx#73}(`%X%`_shape{lanetype#8143, dim#8143, i#59429}(`F64`_lanetype, `%`_dim{i#59436}(2)), `%`_laneidx{i#59483}(l!`%`_labelidx{i#59482}.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:457.5-457.41 - prod {{0xFD} {`%`_u32(35):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), EQ_vrelop_) + prod{shape#952 : shape, lanetype#8155 : lanetype, dim#8155 : dim, i#59514 : nat, i#59521 : nat, i#59507 : nat} {{0xFD} {`%`_u32{i#59507}(35):Bu32}} => `VRELOP`_instr{shape#952}(`%X%`_shape{lanetype#8155, dim#8155, i#59514}(`I8`_lanetype, `%`_dim{i#59521}(16)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:458.5-458.41 - prod {{0xFD} {`%`_u32(36):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), NE_vrelop_) + prod{shape#954 : shape, lanetype#8182 : lanetype, dim#8182 : dim, i#59596 : nat, i#59603 : nat, i#59589 : nat} {{0xFD} {`%`_u32{i#59589}(36):Bu32}} => `VRELOP`_instr{shape#954}(`%X%`_shape{lanetype#8182, dim#8182, i#59596}(`I8`_lanetype, `%`_dim{i#59603}(16)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:459.5-459.43 - prod {{0xFD} {`%`_u32(37):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LT_vrelop_(S_sx)) + prod{shape#956 : shape, lanetype#8209 : lanetype, dim#8209 : dim, i#59678 : nat, i#59685 : nat, sx#6659 : sx, i#59671 : nat} {{0xFD} {`%`_u32{i#59671}(37):Bu32}} => `VRELOP`_instr{shape#956}(`%X%`_shape{lanetype#8209, dim#8209, i#59678}(`I8`_lanetype, `%`_dim{i#59685}(16)), `LT`_vrelop_{sx#6659}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:460.5-460.43 - prod {{0xFD} {`%`_u32(38):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LT_vrelop_(U_sx)) + prod{shape#958 : shape, lanetype#8251 : lanetype, dim#8251 : dim, i#59805 : nat, i#59812 : nat, sx#6783 : sx, i#59798 : nat} {{0xFD} {`%`_u32{i#59798}(38):Bu32}} => `VRELOP`_instr{shape#958}(`%X%`_shape{lanetype#8251, dim#8251, i#59805}(`I8`_lanetype, `%`_dim{i#59812}(16)), `LT`_vrelop_{sx#6783}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:461.5-461.43 - prod {{0xFD} {`%`_u32(39):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GT_vrelop_(S_sx)) + prod{shape#960 : shape, lanetype#8293 : lanetype, dim#8293 : dim, i#59932 : nat, i#59939 : nat, sx#6907 : sx, i#59925 : nat} {{0xFD} {`%`_u32{i#59925}(39):Bu32}} => `VRELOP`_instr{shape#960}(`%X%`_shape{lanetype#8293, dim#8293, i#59932}(`I8`_lanetype, `%`_dim{i#59939}(16)), `GT`_vrelop_{sx#6907}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:462.5-462.43 - prod {{0xFD} {`%`_u32(40):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GT_vrelop_(U_sx)) + prod{shape#962 : shape, lanetype#8335 : lanetype, dim#8335 : dim, i#60059 : nat, i#60066 : nat, sx#7031 : sx, i#60052 : nat} {{0xFD} {`%`_u32{i#60052}(40):Bu32}} => `VRELOP`_instr{shape#962}(`%X%`_shape{lanetype#8335, dim#8335, i#60059}(`I8`_lanetype, `%`_dim{i#60066}(16)), `GT`_vrelop_{sx#7031}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:463.5-463.43 - prod {{0xFD} {`%`_u32(41):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LE_vrelop_(S_sx)) + prod{shape#964 : shape, lanetype#8377 : lanetype, dim#8377 : dim, i#60186 : nat, i#60193 : nat, sx#7155 : sx, i#60179 : nat} {{0xFD} {`%`_u32{i#60179}(41):Bu32}} => `VRELOP`_instr{shape#964}(`%X%`_shape{lanetype#8377, dim#8377, i#60186}(`I8`_lanetype, `%`_dim{i#60193}(16)), `LE`_vrelop_{sx#7155}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:464.5-464.43 - prod {{0xFD} {`%`_u32(42):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LE_vrelop_(U_sx)) + prod{shape#966 : shape, lanetype#8419 : lanetype, dim#8419 : dim, i#60313 : nat, i#60320 : nat, sx#7279 : sx, i#60306 : nat} {{0xFD} {`%`_u32{i#60306}(42):Bu32}} => `VRELOP`_instr{shape#966}(`%X%`_shape{lanetype#8419, dim#8419, i#60313}(`I8`_lanetype, `%`_dim{i#60320}(16)), `LE`_vrelop_{sx#7279}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:465.5-465.43 - prod {{0xFD} {`%`_u32(43):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GE_vrelop_(S_sx)) + prod{shape#968 : shape, lanetype#8461 : lanetype, dim#8461 : dim, i#60440 : nat, i#60447 : nat, sx#7403 : sx, i#60433 : nat} {{0xFD} {`%`_u32{i#60433}(43):Bu32}} => `VRELOP`_instr{shape#968}(`%X%`_shape{lanetype#8461, dim#8461, i#60440}(`I8`_lanetype, `%`_dim{i#60447}(16)), `GE`_vrelop_{sx#7403}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:466.5-466.43 - prod {{0xFD} {`%`_u32(44):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GE_vrelop_(U_sx)) + prod{shape#970 : shape, lanetype#8503 : lanetype, dim#8503 : dim, i#60567 : nat, i#60574 : nat, sx#7527 : sx, i#60560 : nat} {{0xFD} {`%`_u32{i#60560}(44):Bu32}} => `VRELOP`_instr{shape#970}(`%X%`_shape{lanetype#8503, dim#8503, i#60567}(`I8`_lanetype, `%`_dim{i#60574}(16)), `GE`_vrelop_{sx#7527}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:470.5-470.41 - prod {{0xFD} {`%`_u32(45):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), EQ_vrelop_) + prod{shape#972 : shape, lanetype#8545 : lanetype, dim#8545 : dim, i#60694 : nat, i#60701 : nat, i#60687 : nat} {{0xFD} {`%`_u32{i#60687}(45):Bu32}} => `VRELOP`_instr{shape#972}(`%X%`_shape{lanetype#8545, dim#8545, i#60694}(`I16`_lanetype, `%`_dim{i#60701}(8)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:471.5-471.41 - prod {{0xFD} {`%`_u32(46):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), NE_vrelop_) + prod{shape#974 : shape, lanetype#8572 : lanetype, dim#8572 : dim, i#60776 : nat, i#60783 : nat, i#60769 : nat} {{0xFD} {`%`_u32{i#60769}(46):Bu32}} => `VRELOP`_instr{shape#974}(`%X%`_shape{lanetype#8572, dim#8572, i#60776}(`I16`_lanetype, `%`_dim{i#60783}(8)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:472.5-472.43 - prod {{0xFD} {`%`_u32(47):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LT_vrelop_(S_sx)) + prod{shape#976 : shape, lanetype#8599 : lanetype, dim#8599 : dim, i#60858 : nat, i#60865 : nat, sx#7771 : sx, i#60851 : nat} {{0xFD} {`%`_u32{i#60851}(47):Bu32}} => `VRELOP`_instr{shape#976}(`%X%`_shape{lanetype#8599, dim#8599, i#60858}(`I16`_lanetype, `%`_dim{i#60865}(8)), `LT`_vrelop_{sx#7771}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:473.5-473.43 - prod {{0xFD} {`%`_u32(48):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LT_vrelop_(U_sx)) + prod{shape#978 : shape, lanetype#8641 : lanetype, dim#8641 : dim, i#60985 : nat, i#60992 : nat, sx#7895 : sx, i#60978 : nat} {{0xFD} {`%`_u32{i#60978}(48):Bu32}} => `VRELOP`_instr{shape#978}(`%X%`_shape{lanetype#8641, dim#8641, i#60985}(`I16`_lanetype, `%`_dim{i#60992}(8)), `LT`_vrelop_{sx#7895}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:474.5-474.43 - prod {{0xFD} {`%`_u32(49):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GT_vrelop_(S_sx)) + prod{shape#980 : shape, lanetype#8683 : lanetype, dim#8683 : dim, i#61112 : nat, i#61119 : nat, sx#8019 : sx, i#61105 : nat} {{0xFD} {`%`_u32{i#61105}(49):Bu32}} => `VRELOP`_instr{shape#980}(`%X%`_shape{lanetype#8683, dim#8683, i#61112}(`I16`_lanetype, `%`_dim{i#61119}(8)), `GT`_vrelop_{sx#8019}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:475.5-475.43 - prod {{0xFD} {`%`_u32(50):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GT_vrelop_(U_sx)) + prod{shape#982 : shape, lanetype#8725 : lanetype, dim#8725 : dim, i#61239 : nat, i#61246 : nat, sx#8143 : sx, i#61232 : nat} {{0xFD} {`%`_u32{i#61232}(50):Bu32}} => `VRELOP`_instr{shape#982}(`%X%`_shape{lanetype#8725, dim#8725, i#61239}(`I16`_lanetype, `%`_dim{i#61246}(8)), `GT`_vrelop_{sx#8143}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:476.5-476.43 - prod {{0xFD} {`%`_u32(51):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LE_vrelop_(S_sx)) + prod{shape#984 : shape, lanetype#8767 : lanetype, dim#8767 : dim, i#61366 : nat, i#61373 : nat, sx#8267 : sx, i#61359 : nat} {{0xFD} {`%`_u32{i#61359}(51):Bu32}} => `VRELOP`_instr{shape#984}(`%X%`_shape{lanetype#8767, dim#8767, i#61366}(`I16`_lanetype, `%`_dim{i#61373}(8)), `LE`_vrelop_{sx#8267}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:477.5-477.43 - prod {{0xFD} {`%`_u32(52):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LE_vrelop_(U_sx)) + prod{shape#986 : shape, lanetype#8809 : lanetype, dim#8809 : dim, i#61493 : nat, i#61500 : nat, sx#8391 : sx, i#61486 : nat} {{0xFD} {`%`_u32{i#61486}(52):Bu32}} => `VRELOP`_instr{shape#986}(`%X%`_shape{lanetype#8809, dim#8809, i#61493}(`I16`_lanetype, `%`_dim{i#61500}(8)), `LE`_vrelop_{sx#8391}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:478.5-478.43 - prod {{0xFD} {`%`_u32(53):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GE_vrelop_(S_sx)) + prod{shape#988 : shape, lanetype#8851 : lanetype, dim#8851 : dim, i#61620 : nat, i#61627 : nat, sx#8515 : sx, i#61613 : nat} {{0xFD} {`%`_u32{i#61613}(53):Bu32}} => `VRELOP`_instr{shape#988}(`%X%`_shape{lanetype#8851, dim#8851, i#61620}(`I16`_lanetype, `%`_dim{i#61627}(8)), `GE`_vrelop_{sx#8515}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:479.5-479.43 - prod {{0xFD} {`%`_u32(54):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GE_vrelop_(U_sx)) + prod{shape#990 : shape, lanetype#8893 : lanetype, dim#8893 : dim, i#61747 : nat, i#61754 : nat, sx#8639 : sx, i#61740 : nat} {{0xFD} {`%`_u32{i#61740}(54):Bu32}} => `VRELOP`_instr{shape#990}(`%X%`_shape{lanetype#8893, dim#8893, i#61747}(`I16`_lanetype, `%`_dim{i#61754}(8)), `GE`_vrelop_{sx#8639}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:483.5-483.41 - prod {{0xFD} {`%`_u32(55):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), EQ_vrelop_) + prod{shape#992 : shape, lanetype#8935 : lanetype, dim#8935 : dim, i#61874 : nat, i#61881 : nat, i#61867 : nat} {{0xFD} {`%`_u32{i#61867}(55):Bu32}} => `VRELOP`_instr{shape#992}(`%X%`_shape{lanetype#8935, dim#8935, i#61874}(`I32`_lanetype, `%`_dim{i#61881}(4)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:484.5-484.41 - prod {{0xFD} {`%`_u32(56):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), NE_vrelop_) + prod{shape#994 : shape, lanetype#8962 : lanetype, dim#8962 : dim, i#61956 : nat, i#61963 : nat, i#61949 : nat} {{0xFD} {`%`_u32{i#61949}(56):Bu32}} => `VRELOP`_instr{shape#994}(`%X%`_shape{lanetype#8962, dim#8962, i#61956}(`I32`_lanetype, `%`_dim{i#61963}(4)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:485.5-485.43 - prod {{0xFD} {`%`_u32(57):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LT_vrelop_(S_sx)) + prod{shape#996 : shape, lanetype#8989 : lanetype, dim#8989 : dim, i#62038 : nat, i#62045 : nat, sx#8883 : sx, i#62031 : nat} {{0xFD} {`%`_u32{i#62031}(57):Bu32}} => `VRELOP`_instr{shape#996}(`%X%`_shape{lanetype#8989, dim#8989, i#62038}(`I32`_lanetype, `%`_dim{i#62045}(4)), `LT`_vrelop_{sx#8883}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:486.5-486.43 - prod {{0xFD} {`%`_u32(58):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LT_vrelop_(U_sx)) + prod{shape#998 : shape, lanetype#9031 : lanetype, dim#9031 : dim, i#62165 : nat, i#62172 : nat, sx#9007 : sx, i#62158 : nat} {{0xFD} {`%`_u32{i#62158}(58):Bu32}} => `VRELOP`_instr{shape#998}(`%X%`_shape{lanetype#9031, dim#9031, i#62165}(`I32`_lanetype, `%`_dim{i#62172}(4)), `LT`_vrelop_{sx#9007}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:487.5-487.43 - prod {{0xFD} {`%`_u32(59):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GT_vrelop_(S_sx)) + prod{shape#1000 : shape, lanetype#9073 : lanetype, dim#9073 : dim, i#62292 : nat, i#62299 : nat, sx#9131 : sx, i#62285 : nat} {{0xFD} {`%`_u32{i#62285}(59):Bu32}} => `VRELOP`_instr{shape#1000}(`%X%`_shape{lanetype#9073, dim#9073, i#62292}(`I32`_lanetype, `%`_dim{i#62299}(4)), `GT`_vrelop_{sx#9131}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:488.5-488.43 - prod {{0xFD} {`%`_u32(60):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GT_vrelop_(U_sx)) + prod{shape#1002 : shape, lanetype#9115 : lanetype, dim#9115 : dim, i#62419 : nat, i#62426 : nat, sx#9255 : sx, i#62412 : nat} {{0xFD} {`%`_u32{i#62412}(60):Bu32}} => `VRELOP`_instr{shape#1002}(`%X%`_shape{lanetype#9115, dim#9115, i#62419}(`I32`_lanetype, `%`_dim{i#62426}(4)), `GT`_vrelop_{sx#9255}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:489.5-489.43 - prod {{0xFD} {`%`_u32(61):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LE_vrelop_(S_sx)) + prod{shape#1004 : shape, lanetype#9157 : lanetype, dim#9157 : dim, i#62546 : nat, i#62553 : nat, sx#9379 : sx, i#62539 : nat} {{0xFD} {`%`_u32{i#62539}(61):Bu32}} => `VRELOP`_instr{shape#1004}(`%X%`_shape{lanetype#9157, dim#9157, i#62546}(`I32`_lanetype, `%`_dim{i#62553}(4)), `LE`_vrelop_{sx#9379}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:490.5-490.43 - prod {{0xFD} {`%`_u32(62):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LE_vrelop_(U_sx)) + prod{shape#1006 : shape, lanetype#9199 : lanetype, dim#9199 : dim, i#62673 : nat, i#62680 : nat, sx#9503 : sx, i#62666 : nat} {{0xFD} {`%`_u32{i#62666}(62):Bu32}} => `VRELOP`_instr{shape#1006}(`%X%`_shape{lanetype#9199, dim#9199, i#62673}(`I32`_lanetype, `%`_dim{i#62680}(4)), `LE`_vrelop_{sx#9503}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:491.5-491.43 - prod {{0xFD} {`%`_u32(63):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GE_vrelop_(S_sx)) + prod{shape#1008 : shape, lanetype#9241 : lanetype, dim#9241 : dim, i#62800 : nat, i#62807 : nat, sx#9627 : sx, i#62793 : nat} {{0xFD} {`%`_u32{i#62793}(63):Bu32}} => `VRELOP`_instr{shape#1008}(`%X%`_shape{lanetype#9241, dim#9241, i#62800}(`I32`_lanetype, `%`_dim{i#62807}(4)), `GE`_vrelop_{sx#9627}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:492.5-492.43 - prod {{0xFD} {`%`_u32(64):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GE_vrelop_(U_sx)) + prod{shape#1010 : shape, lanetype#9283 : lanetype, dim#9283 : dim, i#62927 : nat, i#62934 : nat, sx#9751 : sx, i#62920 : nat} {{0xFD} {`%`_u32{i#62920}(64):Bu32}} => `VRELOP`_instr{shape#1010}(`%X%`_shape{lanetype#9283, dim#9283, i#62927}(`I32`_lanetype, `%`_dim{i#62934}(4)), `GE`_vrelop_{sx#9751}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:496.5-496.41 - prod {{0xFD} {`%`_u32(65):Bu32}} => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), EQ_vrelop_) + prod{shape#1012 : shape, lanetype#9325 : lanetype, dim#9325 : dim, i#63054 : nat, i#63061 : nat, i#63047 : nat} {{0xFD} {`%`_u32{i#63047}(65):Bu32}} => `VRELOP`_instr{shape#1012}(`%X%`_shape{lanetype#9325, dim#9325, i#63054}(`F32`_lanetype, `%`_dim{i#63061}(4)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:497.5-497.41 - prod {{0xFD} {`%`_u32(66):Bu32}} => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), NE_vrelop_) + prod{shape#1014 : shape, lanetype#9367 : lanetype, dim#9367 : dim, i#63151 : nat, i#63158 : nat, i#63144 : nat} {{0xFD} {`%`_u32{i#63144}(66):Bu32}} => `VRELOP`_instr{shape#1014}(`%X%`_shape{lanetype#9367, dim#9367, i#63151}(`F32`_lanetype, `%`_dim{i#63158}(4)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:498.5-498.41 - prod {{0xFD} {`%`_u32(67):Bu32}} => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), LT_vrelop_) + prod{shape#1016 : shape, lanetype#9409 : lanetype, dim#9409 : dim, i#63248 : nat, i#63255 : nat, i#63241 : nat} {{0xFD} {`%`_u32{i#63241}(67):Bu32}} => `VRELOP`_instr{shape#1016}(`%X%`_shape{lanetype#9409, dim#9409, i#63248}(`F32`_lanetype, `%`_dim{i#63255}(4)), `LT`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:499.5-499.41 - prod {{0xFD} {`%`_u32(68):Bu32}} => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), GT_vrelop_) + prod{shape#1018 : shape, lanetype#9451 : lanetype, dim#9451 : dim, i#63345 : nat, i#63352 : nat, i#63338 : nat} {{0xFD} {`%`_u32{i#63338}(68):Bu32}} => `VRELOP`_instr{shape#1018}(`%X%`_shape{lanetype#9451, dim#9451, i#63345}(`F32`_lanetype, `%`_dim{i#63352}(4)), `GT`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:500.5-500.41 - prod {{0xFD} {`%`_u32(69):Bu32}} => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), LE_vrelop_) + prod{shape#1020 : shape, lanetype#9493 : lanetype, dim#9493 : dim, i#63442 : nat, i#63449 : nat, i#63435 : nat} {{0xFD} {`%`_u32{i#63435}(69):Bu32}} => `VRELOP`_instr{shape#1020}(`%X%`_shape{lanetype#9493, dim#9493, i#63442}(`F32`_lanetype, `%`_dim{i#63449}(4)), `LE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:501.5-501.41 - prod {{0xFD} {`%`_u32(70):Bu32}} => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), GE_vrelop_) + prod{shape#1022 : shape, lanetype#9535 : lanetype, dim#9535 : dim, i#63539 : nat, i#63546 : nat, i#63532 : nat} {{0xFD} {`%`_u32{i#63532}(70):Bu32}} => `VRELOP`_instr{shape#1022}(`%X%`_shape{lanetype#9535, dim#9535, i#63539}(`F32`_lanetype, `%`_dim{i#63546}(4)), `GE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:505.5-505.41 - prod {{0xFD} {`%`_u32(71):Bu32}} => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), EQ_vrelop_) + prod{shape#1024 : shape, lanetype#9577 : lanetype, dim#9577 : dim, i#63636 : nat, i#63643 : nat, i#63629 : nat} {{0xFD} {`%`_u32{i#63629}(71):Bu32}} => `VRELOP`_instr{shape#1024}(`%X%`_shape{lanetype#9577, dim#9577, i#63636}(`F64`_lanetype, `%`_dim{i#63643}(2)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:506.5-506.41 - prod {{0xFD} {`%`_u32(72):Bu32}} => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), NE_vrelop_) + prod{shape#1026 : shape, lanetype#9619 : lanetype, dim#9619 : dim, i#63733 : nat, i#63740 : nat, i#63726 : nat} {{0xFD} {`%`_u32{i#63726}(72):Bu32}} => `VRELOP`_instr{shape#1026}(`%X%`_shape{lanetype#9619, dim#9619, i#63733}(`F64`_lanetype, `%`_dim{i#63740}(2)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:507.5-507.41 - prod {{0xFD} {`%`_u32(73):Bu32}} => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), LT_vrelop_) + prod{shape#1028 : shape, lanetype#9661 : lanetype, dim#9661 : dim, i#63830 : nat, i#63837 : nat, i#63823 : nat} {{0xFD} {`%`_u32{i#63823}(73):Bu32}} => `VRELOP`_instr{shape#1028}(`%X%`_shape{lanetype#9661, dim#9661, i#63830}(`F64`_lanetype, `%`_dim{i#63837}(2)), `LT`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:508.5-508.41 - prod {{0xFD} {`%`_u32(74):Bu32}} => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), GT_vrelop_) + prod{shape#1030 : shape, lanetype#9703 : lanetype, dim#9703 : dim, i#63927 : nat, i#63934 : nat, i#63920 : nat} {{0xFD} {`%`_u32{i#63920}(74):Bu32}} => `VRELOP`_instr{shape#1030}(`%X%`_shape{lanetype#9703, dim#9703, i#63927}(`F64`_lanetype, `%`_dim{i#63934}(2)), `GT`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:509.5-509.41 - prod {{0xFD} {`%`_u32(75):Bu32}} => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), LE_vrelop_) + prod{shape#1032 : shape, lanetype#9745 : lanetype, dim#9745 : dim, i#64024 : nat, i#64031 : nat, i#64017 : nat} {{0xFD} {`%`_u32{i#64017}(75):Bu32}} => `VRELOP`_instr{shape#1032}(`%X%`_shape{lanetype#9745, dim#9745, i#64024}(`F64`_lanetype, `%`_dim{i#64031}(2)), `LE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:510.5-510.41 - prod {{0xFD} {`%`_u32(76):Bu32}} => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), GE_vrelop_) + prod{shape#1034 : shape, lanetype#9787 : lanetype, dim#9787 : dim, i#64121 : nat, i#64128 : nat, i#64114 : nat} {{0xFD} {`%`_u32{i#64114}(76):Bu32}} => `VRELOP`_instr{shape#1034}(`%X%`_shape{lanetype#9787, dim#9787, i#64121}(`F64`_lanetype, `%`_dim{i#64128}(2)), `GE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:514.5-514.36 - prod {{0xFD} {`%`_u32(77):Bu32}} => VVUNOP_instr(V128_vectype, NOT_vvunop) + prod{vectype#259 : vectype, vvunop#7 : vvunop, i#64211 : nat} {{0xFD} {`%`_u32{i#64211}(77):Bu32}} => `VVUNOP`_instr{vectype#259, vvunop#7}(`V128`_vectype, `NOT`_vvunop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:518.5-518.37 - prod {{0xFD} {`%`_u32(78):Bu32}} => VVBINOP_instr(V128_vectype, AND_vvbinop) + prod{vectype#261 : vectype, vvbinop#7 : vvbinop, i#64236 : nat} {{0xFD} {`%`_u32{i#64236}(78):Bu32}} => `VVBINOP`_instr{vectype#261, vvbinop#7}(`V128`_vectype, `AND`_vvbinop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:519.5-519.40 - prod {{0xFD} {`%`_u32(79):Bu32}} => VVBINOP_instr(V128_vectype, ANDNOT_vvbinop) + prod{vectype#263 : vectype, vvbinop#9 : vvbinop, i#64261 : nat} {{0xFD} {`%`_u32{i#64261}(79):Bu32}} => `VVBINOP`_instr{vectype#263, vvbinop#9}(`V128`_vectype, `ANDNOT`_vvbinop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:520.5-520.36 - prod {{0xFD} {`%`_u32(80):Bu32}} => VVBINOP_instr(V128_vectype, OR_vvbinop) + prod{vectype#265 : vectype, vvbinop#11 : vvbinop, i#64286 : nat} {{0xFD} {`%`_u32{i#64286}(80):Bu32}} => `VVBINOP`_instr{vectype#265, vvbinop#11}(`V128`_vectype, `OR`_vvbinop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:521.5-521.37 - prod {{0xFD} {`%`_u32(81):Bu32}} => VVBINOP_instr(V128_vectype, XOR_vvbinop) + prod{vectype#267 : vectype, vvbinop#13 : vvbinop, i#64311 : nat} {{0xFD} {`%`_u32{i#64311}(81):Bu32}} => `VVBINOP`_instr{vectype#267, vvbinop#13}(`V128`_vectype, `XOR`_vvbinop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:525.5-525.44 - prod {{0xFD} {`%`_u32(82):Bu32}} => VVTERNOP_instr(V128_vectype, BITSELECT_vvternop) + prod{vectype#269 : vectype, vvternop#7 : vvternop, i#64336 : nat} {{0xFD} {`%`_u32{i#64336}(82):Bu32}} => `VVTERNOP`_instr{vectype#269, vvternop#7}(`V128`_vectype, `BITSELECT`_vvternop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:529.5-529.43 - prod {{0xFD} {`%`_u32(83):Bu32}} => VVTESTOP_instr(V128_vectype, ANY_TRUE_vvtestop) + prod{vectype#271 : vectype, vvtestop#7 : vvtestop, i#64361 : nat} {{0xFD} {`%`_u32{i#64361}(83):Bu32}} => `VVTESTOP`_instr{vectype#271, vvtestop#7}(`V128`_vectype, `ANY_TRUE`_vvtestop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:533.5-533.41 - prod {{0xFD} {`%`_u32(96):Bu32}} => VUNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ABS_vunop_) + prod{shape#1036 : shape, lanetype#9829 : lanetype, dim#9829 : dim, i#64393 : nat, i#64400 : nat, i#64386 : nat} {{0xFD} {`%`_u32{i#64386}(96):Bu32}} => `VUNOP`_instr{shape#1036}(`%X%`_shape{lanetype#9829, dim#9829, i#64393}(`I8`_lanetype, `%`_dim{i#64400}(16)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:534.5-534.41 - prod {{0xFD} {`%`_u32(97):Bu32}} => VUNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), NEG_vunop_) + prod{shape#1038 : shape, lanetype#9856 : lanetype, dim#9856 : dim, i#64475 : nat, i#64482 : nat, i#64468 : nat} {{0xFD} {`%`_u32{i#64468}(97):Bu32}} => `VUNOP`_instr{shape#1038}(`%X%`_shape{lanetype#9856, dim#9856, i#64475}(`I8`_lanetype, `%`_dim{i#64482}(16)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:535.5-535.44 - prod {{0xFD} {`%`_u32(98):Bu32}} => VUNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), POPCNT_vunop_) + prod{shape#1040 : shape, lanetype#9883 : lanetype, dim#9883 : dim, i#64557 : nat, i#64564 : nat, i#64550 : nat} {{0xFD} {`%`_u32{i#64550}(98):Bu32}} => `VUNOP`_instr{shape#1040}(`%X%`_shape{lanetype#9883, dim#9883, i#64557}(`I8`_lanetype, `%`_dim{i#64564}(16)), `POPCNT`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:539.5-539.48 - prod {{0xFD} {`%`_u32(99):Bu32}} => VTESTOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ALL_TRUE_vtestop_) + prod{shape#1042 : shape, lanetype#9910 : lanetype, dim#9910 : dim, i#64639 : nat, i#64646 : nat, i#64632 : nat} {{0xFD} {`%`_u32{i#64632}(99):Bu32}} => `VTESTOP`_instr{shape#1042}(`%X%`_shape{lanetype#9910, dim#9910, i#64639}(`I8`_lanetype, `%`_dim{i#64646}(16)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:543.5-543.41 - prod {{0xFD} {`%`_u32(100):Bu32}} => VBITMASK_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16)))) + prod{ishape#13 : ishape, shape#1054 : shape, Jnn#228 : Jnn, lanetype#9937 : lanetype, dim#9937 : dim, i#64721 : nat, i#64728 : nat, i#64714 : nat} {{0xFD} {`%`_u32{i#64714}(100):Bu32}} => `VBITMASK`_instr{ishape#13}(`%`_ishape{shape#1054, Jnn#228}(`%X%`_shape{lanetype#9937, dim#9937, i#64721}(`I8`_lanetype, `%`_dim{i#64728}(16)))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:547.5-547.53 - prod {{0xFD} {`%`_u32(101):Bu32}} => VNARROW_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), S_sx) + prod{ishape_1#25 : ishape, ishape_2#25 : ishape, sx#9753 : sx, shape#1056 : shape, Jnn#229 : Jnn, shape#1057 : shape, Jnn#230 : Jnn, shape#1058 : shape, Jnn#231 : Jnn, shape#1069 : shape, Jnn#235 : Jnn, lanetype#9949 : lanetype, dim#9949 : dim, i#64758 : nat, i#64765 : nat, shape#1081 : shape, Jnn#239 : Jnn, lanetype#9961 : lanetype, dim#9961 : dim, i#64770 : nat, i#64777 : nat, i#64751 : nat} {{0xFD} {`%`_u32{i#64751}(101):Bu32}} => `VNARROW`_instr{ishape_1#25, ishape_2#25, sx#9753, shape#1056, Jnn#229, shape#1057, Jnn#230, shape#1058, Jnn#231}(`%`_ishape{shape#1069, Jnn#235}(`%X%`_shape{lanetype#9949, dim#9949, i#64758}(`I8`_lanetype, `%`_dim{i#64765}(16))), `%`_ishape{shape#1081, Jnn#239}(`%X%`_shape{lanetype#9961, dim#9961, i#64770}(`I16`_lanetype, `%`_dim{i#64777}(8))), `S`_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:548.5-548.53 - prod {{0xFD} {`%`_u32(102):Bu32}} => VNARROW_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), U_sx) + prod{ishape_1#27 : ishape, ishape_2#27 : ishape, sx#9755 : sx, shape#1083 : shape, Jnn#240 : Jnn, shape#1084 : shape, Jnn#241 : Jnn, shape#1085 : shape, Jnn#242 : Jnn, shape#1096 : shape, Jnn#246 : Jnn, lanetype#9973 : lanetype, dim#9973 : dim, i#64807 : nat, i#64814 : nat, shape#1108 : shape, Jnn#250 : Jnn, lanetype#9985 : lanetype, dim#9985 : dim, i#64819 : nat, i#64826 : nat, i#64800 : nat} {{0xFD} {`%`_u32{i#64800}(102):Bu32}} => `VNARROW`_instr{ishape_1#27, ishape_2#27, sx#9755, shape#1083, Jnn#240, shape#1084, Jnn#241, shape#1085, Jnn#242}(`%`_ishape{shape#1096, Jnn#246}(`%X%`_shape{lanetype#9973, dim#9973, i#64807}(`I8`_lanetype, `%`_dim{i#64814}(16))), `%`_ishape{shape#1108, Jnn#250}(`%X%`_shape{lanetype#9985, dim#9985, i#64819}(`I16`_lanetype, `%`_dim{i#64826}(8))), `U`_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:552.5-552.45 - prod {{0xFD} {`%`_u32(107):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SHL_vshiftop_) + prod{ishape#15 : ishape, shape#1120 : shape, Jnn#254 : Jnn, lanetype#9997 : lanetype, dim#9997 : dim, i#64856 : nat, i#64863 : nat, i#64849 : nat} {{0xFD} {`%`_u32{i#64849}(107):Bu32}} => `VSHIFTOP`_instr{ishape#15}(`%`_ishape{shape#1120, Jnn#254}(`%X%`_shape{lanetype#9997, dim#9997, i#64856}(`I8`_lanetype, `%`_dim{i#64863}(16))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:553.5-553.47 - prod {{0xFD} {`%`_u32(108):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SHR_vshiftop_(S_sx)) + prod{ishape#17 : ishape, shape#1147 : shape, Jnn#258 : Jnn, lanetype#10054 : lanetype, dim#10054 : dim, i#64968 : nat, i#64975 : nat, sx#9804 : sx, i#64961 : nat} {{0xFD} {`%`_u32{i#64961}(108):Bu32}} => `VSHIFTOP`_instr{ishape#17}(`%`_ishape{shape#1147, Jnn#258}(`%X%`_shape{lanetype#10054, dim#10054, i#64968}(`I8`_lanetype, `%`_dim{i#64975}(16))), `SHR`_vshiftop_{sx#9804}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:554.5-554.47 - prod {{0xFD} {`%`_u32(109):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SHR_vshiftop_(U_sx)) + prod{ishape#19 : ishape, shape#1189 : shape, Jnn#262 : Jnn, lanetype#10156 : lanetype, dim#10156 : dim, i#65155 : nat, i#65162 : nat, sx#9838 : sx, i#65148 : nat} {{0xFD} {`%`_u32{i#65148}(109):Bu32}} => `VSHIFTOP`_instr{ishape#19}(`%`_ishape{shape#1189, Jnn#262}(`%X%`_shape{lanetype#10156, dim#10156, i#65155}(`I8`_lanetype, `%`_dim{i#65162}(16))), `SHR`_vshiftop_{sx#9838}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:558.5-558.43 - prod {{0xFD} {`%`_u32(110):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ADD_vbinop_) + prod{shape#1221 : shape, lanetype#10258 : lanetype, dim#10258 : dim, i#65342 : nat, i#65349 : nat, i#65335 : nat} {{0xFD} {`%`_u32{i#65335}(110):Bu32}} => `VBINOP`_instr{shape#1221}(`%X%`_shape{lanetype#10258, dim#10258, i#65342}(`I8`_lanetype, `%`_dim{i#65349}(16)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:559.5-559.49 - prod {{0xFD} {`%`_u32(111):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ADD_SAT_vbinop_(S_sx)) + prod{shape#1223 : shape, lanetype#10285 : lanetype, dim#10285 : dim, i#65424 : nat, i#65431 : nat, sx#10022 : sx, i#65417 : nat} {{0xFD} {`%`_u32{i#65417}(111):Bu32}} => `VBINOP`_instr{shape#1223}(`%X%`_shape{lanetype#10285, dim#10285, i#65424}(`I8`_lanetype, `%`_dim{i#65431}(16)), `ADD_SAT`_vbinop_{sx#10022}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:560.5-560.49 - prod {{0xFD} {`%`_u32(112):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ADD_SAT_vbinop_(U_sx)) + prod{shape#1225 : shape, lanetype#10327 : lanetype, dim#10327 : dim, i#65551 : nat, i#65558 : nat, sx#10146 : sx, i#65544 : nat} {{0xFD} {`%`_u32{i#65544}(112):Bu32}} => `VBINOP`_instr{shape#1225}(`%X%`_shape{lanetype#10327, dim#10327, i#65551}(`I8`_lanetype, `%`_dim{i#65558}(16)), `ADD_SAT`_vbinop_{sx#10146}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:561.5-561.43 - prod {{0xFD} {`%`_u32(113):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), SUB_vbinop_) + prod{shape#1227 : shape, lanetype#10369 : lanetype, dim#10369 : dim, i#65678 : nat, i#65685 : nat, i#65671 : nat} {{0xFD} {`%`_u32{i#65671}(113):Bu32}} => `VBINOP`_instr{shape#1227}(`%X%`_shape{lanetype#10369, dim#10369, i#65678}(`I8`_lanetype, `%`_dim{i#65685}(16)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:562.5-562.49 - prod {{0xFD} {`%`_u32(114):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), SUB_SAT_vbinop_(S_sx)) + prod{shape#1229 : shape, lanetype#10396 : lanetype, dim#10396 : dim, i#65760 : nat, i#65767 : nat, sx#10330 : sx, i#65753 : nat} {{0xFD} {`%`_u32{i#65753}(114):Bu32}} => `VBINOP`_instr{shape#1229}(`%X%`_shape{lanetype#10396, dim#10396, i#65760}(`I8`_lanetype, `%`_dim{i#65767}(16)), `SUB_SAT`_vbinop_{sx#10330}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:563.5-563.49 - prod {{0xFD} {`%`_u32(115):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), SUB_SAT_vbinop_(U_sx)) + prod{shape#1231 : shape, lanetype#10438 : lanetype, dim#10438 : dim, i#65887 : nat, i#65894 : nat, sx#10454 : sx, i#65880 : nat} {{0xFD} {`%`_u32{i#65880}(115):Bu32}} => `VBINOP`_instr{shape#1231}(`%X%`_shape{lanetype#10438, dim#10438, i#65887}(`I8`_lanetype, `%`_dim{i#65894}(16)), `SUB_SAT`_vbinop_{sx#10454}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:564.5-564.45 - prod {{0xFD} {`%`_u32(118):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MIN_vbinop_(S_sx)) + prod{shape#1233 : shape, lanetype#10480 : lanetype, dim#10480 : dim, i#66014 : nat, i#66021 : nat, sx#10578 : sx, i#66007 : nat} {{0xFD} {`%`_u32{i#66007}(118):Bu32}} => `VBINOP`_instr{shape#1233}(`%X%`_shape{lanetype#10480, dim#10480, i#66014}(`I8`_lanetype, `%`_dim{i#66021}(16)), `MIN`_vbinop_{sx#10578}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:565.5-565.45 - prod {{0xFD} {`%`_u32(119):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MIN_vbinop_(U_sx)) + prod{shape#1235 : shape, lanetype#10522 : lanetype, dim#10522 : dim, i#66141 : nat, i#66148 : nat, sx#10702 : sx, i#66134 : nat} {{0xFD} {`%`_u32{i#66134}(119):Bu32}} => `VBINOP`_instr{shape#1235}(`%X%`_shape{lanetype#10522, dim#10522, i#66141}(`I8`_lanetype, `%`_dim{i#66148}(16)), `MIN`_vbinop_{sx#10702}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:566.5-566.45 - prod {{0xFD} {`%`_u32(120):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MAX_vbinop_(S_sx)) + prod{shape#1237 : shape, lanetype#10564 : lanetype, dim#10564 : dim, i#66268 : nat, i#66275 : nat, sx#10826 : sx, i#66261 : nat} {{0xFD} {`%`_u32{i#66261}(120):Bu32}} => `VBINOP`_instr{shape#1237}(`%X%`_shape{lanetype#10564, dim#10564, i#66268}(`I8`_lanetype, `%`_dim{i#66275}(16)), `MAX`_vbinop_{sx#10826}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:567.5-567.45 - prod {{0xFD} {`%`_u32(121):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MAX_vbinop_(U_sx)) + prod{shape#1239 : shape, lanetype#10606 : lanetype, dim#10606 : dim, i#66395 : nat, i#66402 : nat, sx#10950 : sx, i#66388 : nat} {{0xFD} {`%`_u32{i#66388}(121):Bu32}} => `VBINOP`_instr{shape#1239}(`%X%`_shape{lanetype#10606, dim#10606, i#66395}(`I8`_lanetype, `%`_dim{i#66402}(16)), `MAX`_vbinop_{sx#10950}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:568.5-568.46 - prod {{0xFD} {`%`_u32(123):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), `AVGRU`_vbinop_) + prod{shape#1241 : shape, lanetype#10648 : lanetype, dim#10648 : dim, i#66522 : nat, i#66529 : nat, i#66515 : nat} {{0xFD} {`%`_u32{i#66515}(123):Bu32}} => `VBINOP`_instr{shape#1241}(`%X%`_shape{lanetype#10648, dim#10648, i#66522}(`I8`_lanetype, `%`_dim{i#66529}(16)), `AVGRU`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:572.5-572.70 - prod {{0xFD} {`%`_u32(124):Bu32}} => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTADD_PAIRWISE_vextunop__(S_sx)) + prod{ishape_1#29 : ishape, ishape_2#29 : ishape, shape#1253 : shape, Jnn#266 : Jnn, lanetype#10690 : lanetype, dim#10690 : dim, i#66649 : nat, i#66656 : nat, shape#1265 : shape, Jnn#270 : Jnn, lanetype#10702 : lanetype, dim#10702 : dim, i#66661 : nat, i#66668 : nat, sx#11104 : sx, i#66642 : nat} {{0xFD} {`%`_u32{i#66642}(124):Bu32}} => `VEXTUNOP`_instr{ishape_1#29, ishape_2#29}(`%`_ishape{shape#1253, Jnn#266}(`%X%`_shape{lanetype#10690, dim#10690, i#66649}(`I16`_lanetype, `%`_dim{i#66656}(8))), `%`_ishape{shape#1265, Jnn#270}(`%X%`_shape{lanetype#10702, dim#10702, i#66661}(`I8`_lanetype, `%`_dim{i#66668}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#11104}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:573.5-573.70 - prod {{0xFD} {`%`_u32(125):Bu32}} => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTADD_PAIRWISE_vextunop__(U_sx)) + prod{ishape_1#31 : ishape, ishape_2#31 : ishape, shape#1368 : shape, Jnn#274 : Jnn, lanetype#10925 : lanetype, dim#10925 : dim, i#67029 : nat, i#67036 : nat, shape#1380 : shape, Jnn#278 : Jnn, lanetype#10937 : lanetype, dim#10937 : dim, i#67041 : nat, i#67048 : nat, sx#11138 : sx, i#67022 : nat} {{0xFD} {`%`_u32{i#67022}(125):Bu32}} => `VEXTUNOP`_instr{ishape_1#31, ishape_2#31}(`%`_ishape{shape#1368, Jnn#274}(`%X%`_shape{lanetype#10925, dim#10925, i#67029}(`I16`_lanetype, `%`_dim{i#67036}(8))), `%`_ishape{shape#1380, Jnn#278}(`%X%`_shape{lanetype#10937, dim#10937, i#67041}(`I8`_lanetype, `%`_dim{i#67048}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#11138}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:577.5-577.42 - prod {{0xFD} {`%`_u32(128):Bu32}} => VUNOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ABS_vunop_) + prod{shape#1473 : shape, lanetype#11160 : lanetype, dim#11160 : dim, i#67409 : nat, i#67416 : nat, i#67402 : nat} {{0xFD} {`%`_u32{i#67402}(128):Bu32}} => `VUNOP`_instr{shape#1473}(`%X%`_shape{lanetype#11160, dim#11160, i#67409}(`I16`_lanetype, `%`_dim{i#67416}(8)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:578.5-578.42 - prod {{0xFD} {`%`_u32(129):Bu32}} => VUNOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), NEG_vunop_) + prod{shape#1475 : shape, lanetype#11187 : lanetype, dim#11187 : dim, i#67491 : nat, i#67498 : nat, i#67484 : nat} {{0xFD} {`%`_u32{i#67484}(129):Bu32}} => `VUNOP`_instr{shape#1475}(`%X%`_shape{lanetype#11187, dim#11187, i#67491}(`I16`_lanetype, `%`_dim{i#67498}(8)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:582.5-582.53 - prod {{0xFD} {`%`_u32(130):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_) + prod{shape#1477 : shape, lanetype#11214 : lanetype, dim#11214 : dim, i#67573 : nat, i#67580 : nat, i#67566 : nat} {{0xFD} {`%`_u32{i#67566}(130):Bu32}} => `VBINOP`_instr{shape#1477}(`%X%`_shape{lanetype#11214, dim#11214, i#67573}(`I16`_lanetype, `%`_dim{i#67580}(8)), `Q15MULR_SATS`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:583.5-583.43 - prod {{0xFD} {`%`_u32(142):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ADD_vbinop_) + prod{shape#1479 : shape, lanetype#11256 : lanetype, dim#11256 : dim, i#67700 : nat, i#67707 : nat, i#67693 : nat} {{0xFD} {`%`_u32{i#67693}(142):Bu32}} => `VBINOP`_instr{shape#1479}(`%X%`_shape{lanetype#11256, dim#11256, i#67700}(`I16`_lanetype, `%`_dim{i#67707}(8)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:584.5-584.49 - prod {{0xFD} {`%`_u32(143):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ADD_SAT_vbinop_(S_sx)) + prod{shape#1481 : shape, lanetype#11283 : lanetype, dim#11283 : dim, i#67782 : nat, i#67789 : nat, sx#11442 : sx, i#67775 : nat} {{0xFD} {`%`_u32{i#67775}(143):Bu32}} => `VBINOP`_instr{shape#1481}(`%X%`_shape{lanetype#11283, dim#11283, i#67782}(`I16`_lanetype, `%`_dim{i#67789}(8)), `ADD_SAT`_vbinop_{sx#11442}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:585.5-585.49 - prod {{0xFD} {`%`_u32(144):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ADD_SAT_vbinop_(U_sx)) + prod{shape#1483 : shape, lanetype#11325 : lanetype, dim#11325 : dim, i#67909 : nat, i#67916 : nat, sx#11566 : sx, i#67902 : nat} {{0xFD} {`%`_u32{i#67902}(144):Bu32}} => `VBINOP`_instr{shape#1483}(`%X%`_shape{lanetype#11325, dim#11325, i#67909}(`I16`_lanetype, `%`_dim{i#67916}(8)), `ADD_SAT`_vbinop_{sx#11566}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:586.5-586.43 - prod {{0xFD} {`%`_u32(145):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), SUB_vbinop_) + prod{shape#1485 : shape, lanetype#11367 : lanetype, dim#11367 : dim, i#68036 : nat, i#68043 : nat, i#68029 : nat} {{0xFD} {`%`_u32{i#68029}(145):Bu32}} => `VBINOP`_instr{shape#1485}(`%X%`_shape{lanetype#11367, dim#11367, i#68036}(`I16`_lanetype, `%`_dim{i#68043}(8)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:587.5-587.49 - prod {{0xFD} {`%`_u32(146):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), SUB_SAT_vbinop_(S_sx)) + prod{shape#1487 : shape, lanetype#11394 : lanetype, dim#11394 : dim, i#68118 : nat, i#68125 : nat, sx#11750 : sx, i#68111 : nat} {{0xFD} {`%`_u32{i#68111}(146):Bu32}} => `VBINOP`_instr{shape#1487}(`%X%`_shape{lanetype#11394, dim#11394, i#68118}(`I16`_lanetype, `%`_dim{i#68125}(8)), `SUB_SAT`_vbinop_{sx#11750}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:588.5-588.49 - prod {{0xFD} {`%`_u32(147):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), SUB_SAT_vbinop_(U_sx)) + prod{shape#1489 : shape, lanetype#11436 : lanetype, dim#11436 : dim, i#68245 : nat, i#68252 : nat, sx#11874 : sx, i#68238 : nat} {{0xFD} {`%`_u32{i#68238}(147):Bu32}} => `VBINOP`_instr{shape#1489}(`%X%`_shape{lanetype#11436, dim#11436, i#68245}(`I16`_lanetype, `%`_dim{i#68252}(8)), `SUB_SAT`_vbinop_{sx#11874}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:589.5-589.43 - prod {{0xFD} {`%`_u32(149):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MUL_vbinop_) + prod{shape#1491 : shape, lanetype#11478 : lanetype, dim#11478 : dim, i#68372 : nat, i#68379 : nat, i#68365 : nat} {{0xFD} {`%`_u32{i#68365}(149):Bu32}} => `VBINOP`_instr{shape#1491}(`%X%`_shape{lanetype#11478, dim#11478, i#68372}(`I16`_lanetype, `%`_dim{i#68379}(8)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:590.5-590.45 - prod {{0xFD} {`%`_u32(150):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MIN_vbinop_(S_sx)) + prod{shape#1493 : shape, lanetype#11505 : lanetype, dim#11505 : dim, i#68454 : nat, i#68461 : nat, sx#12058 : sx, i#68447 : nat} {{0xFD} {`%`_u32{i#68447}(150):Bu32}} => `VBINOP`_instr{shape#1493}(`%X%`_shape{lanetype#11505, dim#11505, i#68454}(`I16`_lanetype, `%`_dim{i#68461}(8)), `MIN`_vbinop_{sx#12058}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:591.5-591.45 - prod {{0xFD} {`%`_u32(151):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MIN_vbinop_(U_sx)) + prod{shape#1495 : shape, lanetype#11547 : lanetype, dim#11547 : dim, i#68581 : nat, i#68588 : nat, sx#12182 : sx, i#68574 : nat} {{0xFD} {`%`_u32{i#68574}(151):Bu32}} => `VBINOP`_instr{shape#1495}(`%X%`_shape{lanetype#11547, dim#11547, i#68581}(`I16`_lanetype, `%`_dim{i#68588}(8)), `MIN`_vbinop_{sx#12182}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:592.5-592.45 - prod {{0xFD} {`%`_u32(152):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MAX_vbinop_(S_sx)) + prod{shape#1497 : shape, lanetype#11589 : lanetype, dim#11589 : dim, i#68708 : nat, i#68715 : nat, sx#12306 : sx, i#68701 : nat} {{0xFD} {`%`_u32{i#68701}(152):Bu32}} => `VBINOP`_instr{shape#1497}(`%X%`_shape{lanetype#11589, dim#11589, i#68708}(`I16`_lanetype, `%`_dim{i#68715}(8)), `MAX`_vbinop_{sx#12306}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:593.5-593.45 - prod {{0xFD} {`%`_u32(153):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MAX_vbinop_(U_sx)) + prod{shape#1499 : shape, lanetype#11631 : lanetype, dim#11631 : dim, i#68835 : nat, i#68842 : nat, sx#12430 : sx, i#68828 : nat} {{0xFD} {`%`_u32{i#68828}(153):Bu32}} => `VBINOP`_instr{shape#1499}(`%X%`_shape{lanetype#11631, dim#11631, i#68835}(`I16`_lanetype, `%`_dim{i#68842}(8)), `MAX`_vbinop_{sx#12430}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:594.5-594.46 - prod {{0xFD} {`%`_u32(155):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `AVGRU`_vbinop_) + prod{shape#1501 : shape, lanetype#11673 : lanetype, dim#11673 : dim, i#68962 : nat, i#68969 : nat, i#68955 : nat} {{0xFD} {`%`_u32{i#68955}(155):Bu32}} => `VBINOP`_instr{shape#1501}(`%X%`_shape{lanetype#11673, dim#11673, i#68962}(`I16`_lanetype, `%`_dim{i#68969}(8)), `AVGRU`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:595.5-595.57 - prod {{0xFD} {`%`_u32(273):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_) + prod{shape#1503 : shape, lanetype#11715 : lanetype, dim#11715 : dim, i#69089 : nat, i#69096 : nat, i#69082 : nat} {{0xFD} {`%`_u32{i#69082}(273):Bu32}} => `VBINOP`_instr{shape#1503}(`%X%`_shape{lanetype#11715, dim#11715, i#69089}(`I16`_lanetype, `%`_dim{i#69096}(8)), `RELAXED_Q15MULRS`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:599.5-599.49 - prod {{0xFD} {`%`_u32(131):Bu32}} => VTESTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ALL_TRUE_vtestop_) + prod{shape#1505 : shape, lanetype#11757 : lanetype, dim#11757 : dim, i#69216 : nat, i#69223 : nat, i#69209 : nat} {{0xFD} {`%`_u32{i#69209}(131):Bu32}} => `VTESTOP`_instr{shape#1505}(`%X%`_shape{lanetype#11757, dim#11757, i#69216}(`I16`_lanetype, `%`_dim{i#69223}(8)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:603.5-603.41 - prod {{0xFD} {`%`_u32(132):Bu32}} => VBITMASK_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8)))) + prod{ishape#21 : ishape, shape#1517 : shape, Jnn#282 : Jnn, lanetype#11784 : lanetype, dim#11784 : dim, i#69298 : nat, i#69305 : nat, i#69291 : nat} {{0xFD} {`%`_u32{i#69291}(132):Bu32}} => `VBITMASK`_instr{ishape#21}(`%`_ishape{shape#1517, Jnn#282}(`%X%`_shape{lanetype#11784, dim#11784, i#69298}(`I16`_lanetype, `%`_dim{i#69305}(8)))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:607.5-607.53 - prod {{0xFD} {`%`_u32(133):Bu32}} => VNARROW_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), S_sx) + prod{ishape_1#33 : ishape, ishape_2#33 : ishape, sx#12672 : sx, shape#1519 : shape, Jnn#283 : Jnn, shape#1520 : shape, Jnn#284 : Jnn, shape#1521 : shape, Jnn#285 : Jnn, shape#1532 : shape, Jnn#289 : Jnn, lanetype#11796 : lanetype, dim#11796 : dim, i#69335 : nat, i#69342 : nat, shape#1544 : shape, Jnn#293 : Jnn, lanetype#11808 : lanetype, dim#11808 : dim, i#69347 : nat, i#69354 : nat, i#69328 : nat} {{0xFD} {`%`_u32{i#69328}(133):Bu32}} => `VNARROW`_instr{ishape_1#33, ishape_2#33, sx#12672, shape#1519, Jnn#283, shape#1520, Jnn#284, shape#1521, Jnn#285}(`%`_ishape{shape#1532, Jnn#289}(`%X%`_shape{lanetype#11796, dim#11796, i#69335}(`I16`_lanetype, `%`_dim{i#69342}(8))), `%`_ishape{shape#1544, Jnn#293}(`%X%`_shape{lanetype#11808, dim#11808, i#69347}(`I32`_lanetype, `%`_dim{i#69354}(4))), `S`_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:608.5-608.53 - prod {{0xFD} {`%`_u32(134):Bu32}} => VNARROW_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), U_sx) + prod{ishape_1#35 : ishape, ishape_2#35 : ishape, sx#12674 : sx, shape#1546 : shape, Jnn#294 : Jnn, shape#1547 : shape, Jnn#295 : Jnn, shape#1548 : shape, Jnn#296 : Jnn, shape#1559 : shape, Jnn#300 : Jnn, lanetype#11820 : lanetype, dim#11820 : dim, i#69384 : nat, i#69391 : nat, shape#1571 : shape, Jnn#304 : Jnn, lanetype#11832 : lanetype, dim#11832 : dim, i#69396 : nat, i#69403 : nat, i#69377 : nat} {{0xFD} {`%`_u32{i#69377}(134):Bu32}} => `VNARROW`_instr{ishape_1#35, ishape_2#35, sx#12674, shape#1546, Jnn#294, shape#1547, Jnn#295, shape#1548, Jnn#296}(`%`_ishape{shape#1559, Jnn#300}(`%X%`_shape{lanetype#11820, dim#11820, i#69384}(`I16`_lanetype, `%`_dim{i#69391}(8))), `%`_ishape{shape#1571, Jnn#304}(`%X%`_shape{lanetype#11832, dim#11832, i#69396}(`I32`_lanetype, `%`_dim{i#69403}(4))), `U`_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:612.5-612.63 - prod {{0xFD} {`%`_u32(135):Bu32}} => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(LOW_half, S_sx)) + prod{shape_1#7 : shape, shape_2#7 : shape, lanetype#11844 : lanetype, dim#11844 : dim, i#69433 : nat, i#69440 : nat, lanetype#11856 : lanetype, dim#11856 : dim, i#69445 : nat, i#69452 : nat, half#56 : half, sx#12708 : sx, i#69426 : nat} {{0xFD} {`%`_u32{i#69426}(135):Bu32}} => `VCVTOP`_instr{shape_1#7, shape_2#7}(`%X%`_shape{lanetype#11844, dim#11844, i#69433}(`I16`_lanetype, `%`_dim{i#69440}(8)), `%X%`_shape{lanetype#11856, dim#11856, i#69445}(`I8`_lanetype, `%`_dim{i#69452}(16)), `EXTEND`_vcvtop__{half#56, sx#12708}(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:613.5-613.64 - prod {{0xFD} {`%`_u32(136):Bu32}} => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(HIGH_half, S_sx)) + prod{shape_1#9 : shape, shape_2#9 : shape, lanetype#11959 : lanetype, dim#11959 : dim, i#69693 : nat, i#69700 : nat, lanetype#11971 : lanetype, dim#11971 : dim, i#69705 : nat, i#69712 : nat, half#90 : half, sx#12742 : sx, i#69686 : nat} {{0xFD} {`%`_u32{i#69686}(136):Bu32}} => `VCVTOP`_instr{shape_1#9, shape_2#9}(`%X%`_shape{lanetype#11959, dim#11959, i#69693}(`I16`_lanetype, `%`_dim{i#69700}(8)), `%X%`_shape{lanetype#11971, dim#11971, i#69705}(`I8`_lanetype, `%`_dim{i#69712}(16)), `EXTEND`_vcvtop__{half#90, sx#12742}(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:614.5-614.63 - prod {{0xFD} {`%`_u32(137):Bu32}} => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(LOW_half, U_sx)) + prod{shape_1#11 : shape, shape_2#11 : shape, lanetype#12074 : lanetype, dim#12074 : dim, i#69953 : nat, i#69960 : nat, lanetype#12086 : lanetype, dim#12086 : dim, i#69965 : nat, i#69972 : nat, half#124 : half, sx#12776 : sx, i#69946 : nat} {{0xFD} {`%`_u32{i#69946}(137):Bu32}} => `VCVTOP`_instr{shape_1#11, shape_2#11}(`%X%`_shape{lanetype#12074, dim#12074, i#69953}(`I16`_lanetype, `%`_dim{i#69960}(8)), `%X%`_shape{lanetype#12086, dim#12086, i#69965}(`I8`_lanetype, `%`_dim{i#69972}(16)), `EXTEND`_vcvtop__{half#124, sx#12776}(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:615.5-615.64 - prod {{0xFD} {`%`_u32(138):Bu32}} => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(HIGH_half, U_sx)) + prod{shape_1#13 : shape, shape_2#13 : shape, lanetype#12189 : lanetype, dim#12189 : dim, i#70213 : nat, i#70220 : nat, lanetype#12201 : lanetype, dim#12201 : dim, i#70225 : nat, i#70232 : nat, half#158 : half, sx#12810 : sx, i#70206 : nat} {{0xFD} {`%`_u32{i#70206}(138):Bu32}} => `VCVTOP`_instr{shape_1#13, shape_2#13}(`%X%`_shape{lanetype#12189, dim#12189, i#70213}(`I16`_lanetype, `%`_dim{i#70220}(8)), `%X%`_shape{lanetype#12201, dim#12201, i#70225}(`I8`_lanetype, `%`_dim{i#70232}(16)), `EXTEND`_vcvtop__{half#158, sx#12810}(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:619.5-619.45 - prod {{0xFD} {`%`_u32(139):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), SHL_vshiftop_) + prod{ishape#23 : ishape, shape#1583 : shape, Jnn#308 : Jnn, lanetype#12304 : lanetype, dim#12304 : dim, i#70473 : nat, i#70480 : nat, i#70466 : nat} {{0xFD} {`%`_u32{i#70466}(139):Bu32}} => `VSHIFTOP`_instr{ishape#23}(`%`_ishape{shape#1583, Jnn#308}(`%X%`_shape{lanetype#12304, dim#12304, i#70473}(`I16`_lanetype, `%`_dim{i#70480}(8))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:620.5-620.47 - prod {{0xFD} {`%`_u32(140):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), SHR_vshiftop_(S_sx)) + prod{ishape#25 : ishape, shape#1610 : shape, Jnn#312 : Jnn, lanetype#12361 : lanetype, dim#12361 : dim, i#70585 : nat, i#70592 : nat, sx#12859 : sx, i#70578 : nat} {{0xFD} {`%`_u32{i#70578}(140):Bu32}} => `VSHIFTOP`_instr{ishape#25}(`%`_ishape{shape#1610, Jnn#312}(`%X%`_shape{lanetype#12361, dim#12361, i#70585}(`I16`_lanetype, `%`_dim{i#70592}(8))), `SHR`_vshiftop_{sx#12859}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:621.5-621.47 - prod {{0xFD} {`%`_u32(141):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), SHR_vshiftop_(U_sx)) + prod{ishape#27 : ishape, shape#1652 : shape, Jnn#316 : Jnn, lanetype#12463 : lanetype, dim#12463 : dim, i#70772 : nat, i#70779 : nat, sx#12893 : sx, i#70765 : nat} {{0xFD} {`%`_u32{i#70765}(141):Bu32}} => `VSHIFTOP`_instr{ishape#27}(`%`_ishape{shape#1652, Jnn#316}(`%X%`_shape{lanetype#12463, dim#12463, i#70772}(`I16`_lanetype, `%`_dim{i#70779}(8))), `SHR`_vshiftop_{sx#12893}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:625.5-625.66 - prod {{0xFD} {`%`_u32(156):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(LOW_half, S_sx)) + prod{ishape_1#37 : ishape, ishape_2#37 : ishape, shape#1694 : shape, Jnn#320 : Jnn, lanetype#12565 : lanetype, dim#12565 : dim, i#70959 : nat, i#70966 : nat, shape#1706 : shape, Jnn#324 : Jnn, lanetype#12577 : lanetype, dim#12577 : dim, i#70971 : nat, i#70978 : nat, half#192 : half, sx#12927 : sx, i#70952 : nat} {{0xFD} {`%`_u32{i#70952}(156):Bu32}} => `VEXTBINOP`_instr{ishape_1#37, ishape_2#37}(`%`_ishape{shape#1694, Jnn#320}(`%X%`_shape{lanetype#12565, dim#12565, i#70959}(`I16`_lanetype, `%`_dim{i#70966}(8))), `%`_ishape{shape#1706, Jnn#324}(`%X%`_shape{lanetype#12577, dim#12577, i#70971}(`I8`_lanetype, `%`_dim{i#70978}(16))), `EXTMUL`_vextbinop__{half#192, sx#12927}(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:626.5-626.67 - prod {{0xFD} {`%`_u32(157):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(HIGH_half, S_sx)) + prod{ishape_1#39 : ishape, ishape_2#39 : ishape, shape#1809 : shape, Jnn#328 : Jnn, lanetype#12800 : lanetype, dim#12800 : dim, i#71339 : nat, i#71346 : nat, shape#1821 : shape, Jnn#332 : Jnn, lanetype#12812 : lanetype, dim#12812 : dim, i#71351 : nat, i#71358 : nat, half#226 : half, sx#12961 : sx, i#71332 : nat} {{0xFD} {`%`_u32{i#71332}(157):Bu32}} => `VEXTBINOP`_instr{ishape_1#39, ishape_2#39}(`%`_ishape{shape#1809, Jnn#328}(`%X%`_shape{lanetype#12800, dim#12800, i#71339}(`I16`_lanetype, `%`_dim{i#71346}(8))), `%`_ishape{shape#1821, Jnn#332}(`%X%`_shape{lanetype#12812, dim#12812, i#71351}(`I8`_lanetype, `%`_dim{i#71358}(16))), `EXTMUL`_vextbinop__{half#226, sx#12961}(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:627.5-627.66 - prod {{0xFD} {`%`_u32(158):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(LOW_half, U_sx)) + prod{ishape_1#41 : ishape, ishape_2#41 : ishape, shape#1924 : shape, Jnn#336 : Jnn, lanetype#13035 : lanetype, dim#13035 : dim, i#71719 : nat, i#71726 : nat, shape#1936 : shape, Jnn#340 : Jnn, lanetype#13047 : lanetype, dim#13047 : dim, i#71731 : nat, i#71738 : nat, half#260 : half, sx#12995 : sx, i#71712 : nat} {{0xFD} {`%`_u32{i#71712}(158):Bu32}} => `VEXTBINOP`_instr{ishape_1#41, ishape_2#41}(`%`_ishape{shape#1924, Jnn#336}(`%X%`_shape{lanetype#13035, dim#13035, i#71719}(`I16`_lanetype, `%`_dim{i#71726}(8))), `%`_ishape{shape#1936, Jnn#340}(`%X%`_shape{lanetype#13047, dim#13047, i#71731}(`I8`_lanetype, `%`_dim{i#71738}(16))), `EXTMUL`_vextbinop__{half#260, sx#12995}(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:628.5-628.67 - prod {{0xFD} {`%`_u32(159):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(HIGH_half, U_sx)) + prod{ishape_1#43 : ishape, ishape_2#43 : ishape, shape#2039 : shape, Jnn#344 : Jnn, lanetype#13270 : lanetype, dim#13270 : dim, i#72099 : nat, i#72106 : nat, shape#2051 : shape, Jnn#348 : Jnn, lanetype#13282 : lanetype, dim#13282 : dim, i#72111 : nat, i#72118 : nat, half#294 : half, sx#13029 : sx, i#72092 : nat} {{0xFD} {`%`_u32{i#72092}(159):Bu32}} => `VEXTBINOP`_instr{ishape_1#43, ishape_2#43}(`%`_ishape{shape#2039, Jnn#344}(`%X%`_shape{lanetype#13270, dim#13270, i#72099}(`I16`_lanetype, `%`_dim{i#72106}(8))), `%`_ishape{shape#2051, Jnn#348}(`%X%`_shape{lanetype#13282, dim#13282, i#72111}(`I8`_lanetype, `%`_dim{i#72118}(16))), `EXTMUL`_vextbinop__{half#294, sx#13029}(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:629.5-629.67 - prod {{0xFD} {`%`_u32(274):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), `RELAXED_DOTS`_vextbinop__) + prod{ishape_1#45 : ishape, ishape_2#45 : ishape, shape#2154 : shape, Jnn#352 : Jnn, lanetype#13505 : lanetype, dim#13505 : dim, i#72479 : nat, i#72486 : nat, shape#2166 : shape, Jnn#356 : Jnn, lanetype#13517 : lanetype, dim#13517 : dim, i#72491 : nat, i#72498 : nat, i#72472 : nat} {{0xFD} {`%`_u32{i#72472}(274):Bu32}} => `VEXTBINOP`_instr{ishape_1#45, ishape_2#45}(`%`_ishape{shape#2154, Jnn#352}(`%X%`_shape{lanetype#13505, dim#13505, i#72479}(`I16`_lanetype, `%`_dim{i#72486}(8))), `%`_ishape{shape#2166, Jnn#356}(`%X%`_shape{lanetype#13517, dim#13517, i#72491}(`I8`_lanetype, `%`_dim{i#72498}(16))), `RELAXED_DOTS`_vextbinop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:633.5-633.70 - prod {{0xFD} {`%`_u32(126):Bu32}} => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTADD_PAIRWISE_vextunop__(S_sx)) + prod{ishape_1#47 : ishape, ishape_2#47 : ishape, shape#2269 : shape, Jnn#360 : Jnn, lanetype#13740 : lanetype, dim#13740 : dim, i#72859 : nat, i#72866 : nat, shape#2281 : shape, Jnn#364 : Jnn, lanetype#13752 : lanetype, dim#13752 : dim, i#72871 : nat, i#72878 : nat, sx#13093 : sx, i#72852 : nat} {{0xFD} {`%`_u32{i#72852}(126):Bu32}} => `VEXTUNOP`_instr{ishape_1#47, ishape_2#47}(`%`_ishape{shape#2269, Jnn#360}(`%X%`_shape{lanetype#13740, dim#13740, i#72859}(`I32`_lanetype, `%`_dim{i#72866}(4))), `%`_ishape{shape#2281, Jnn#364}(`%X%`_shape{lanetype#13752, dim#13752, i#72871}(`I16`_lanetype, `%`_dim{i#72878}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#13093}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:634.5-634.70 - prod {{0xFD} {`%`_u32(127):Bu32}} => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTADD_PAIRWISE_vextunop__(U_sx)) + prod{ishape_1#49 : ishape, ishape_2#49 : ishape, shape#2384 : shape, Jnn#368 : Jnn, lanetype#13975 : lanetype, dim#13975 : dim, i#73239 : nat, i#73246 : nat, shape#2396 : shape, Jnn#372 : Jnn, lanetype#13987 : lanetype, dim#13987 : dim, i#73251 : nat, i#73258 : nat, sx#13127 : sx, i#73232 : nat} {{0xFD} {`%`_u32{i#73232}(127):Bu32}} => `VEXTUNOP`_instr{ishape_1#49, ishape_2#49}(`%`_ishape{shape#2384, Jnn#368}(`%X%`_shape{lanetype#13975, dim#13975, i#73239}(`I32`_lanetype, `%`_dim{i#73246}(4))), `%`_ishape{shape#2396, Jnn#372}(`%X%`_shape{lanetype#13987, dim#13987, i#73251}(`I16`_lanetype, `%`_dim{i#73258}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#13127}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:638.5-638.42 - prod {{0xFD} {`%`_u32(160):Bu32}} => VUNOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ABS_vunop_) + prod{shape#2489 : shape, lanetype#14210 : lanetype, dim#14210 : dim, i#73619 : nat, i#73626 : nat, i#73612 : nat} {{0xFD} {`%`_u32{i#73612}(160):Bu32}} => `VUNOP`_instr{shape#2489}(`%X%`_shape{lanetype#14210, dim#14210, i#73619}(`I32`_lanetype, `%`_dim{i#73626}(4)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:639.5-639.42 - prod {{0xFD} {`%`_u32(161):Bu32}} => VUNOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), NEG_vunop_) + prod{shape#2491 : shape, lanetype#14237 : lanetype, dim#14237 : dim, i#73701 : nat, i#73708 : nat, i#73694 : nat} {{0xFD} {`%`_u32{i#73694}(161):Bu32}} => `VUNOP`_instr{shape#2491}(`%X%`_shape{lanetype#14237, dim#14237, i#73701}(`I32`_lanetype, `%`_dim{i#73708}(4)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:643.5-643.49 - prod {{0xFD} {`%`_u32(163):Bu32}} => VTESTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ALL_TRUE_vtestop_) + prod{shape#2493 : shape, lanetype#14264 : lanetype, dim#14264 : dim, i#73783 : nat, i#73790 : nat, i#73776 : nat} {{0xFD} {`%`_u32{i#73776}(163):Bu32}} => `VTESTOP`_instr{shape#2493}(`%X%`_shape{lanetype#14264, dim#14264, i#73783}(`I32`_lanetype, `%`_dim{i#73790}(4)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:647.5-647.41 - prod {{0xFD} {`%`_u32(164):Bu32}} => VBITMASK_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4)))) + prod{ishape#29 : ishape, shape#2505 : shape, Jnn#376 : Jnn, lanetype#14291 : lanetype, dim#14291 : dim, i#73865 : nat, i#73872 : nat, i#73858 : nat} {{0xFD} {`%`_u32{i#73858}(164):Bu32}} => `VBITMASK`_instr{ishape#29}(`%`_ishape{shape#2505, Jnn#376}(`%X%`_shape{lanetype#14291, dim#14291, i#73865}(`I32`_lanetype, `%`_dim{i#73872}(4)))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:651.5-651.63 - prod {{0xFD} {`%`_u32(167):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(LOW_half, S_sx)) + prod{shape_1#15 : shape, shape_2#15 : shape, lanetype#14303 : lanetype, dim#14303 : dim, i#73902 : nat, i#73909 : nat, lanetype#14315 : lanetype, dim#14315 : dim, i#73914 : nat, i#73921 : nat, half#358 : half, sx#13161 : sx, i#73895 : nat} {{0xFD} {`%`_u32{i#73895}(167):Bu32}} => `VCVTOP`_instr{shape_1#15, shape_2#15}(`%X%`_shape{lanetype#14303, dim#14303, i#73902}(`I32`_lanetype, `%`_dim{i#73909}(4)), `%X%`_shape{lanetype#14315, dim#14315, i#73914}(`I16`_lanetype, `%`_dim{i#73921}(8)), `EXTEND`_vcvtop__{half#358, sx#13161}(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:652.5-652.64 - prod {{0xFD} {`%`_u32(168):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(HIGH_half, S_sx)) + prod{shape_1#17 : shape, shape_2#17 : shape, lanetype#14418 : lanetype, dim#14418 : dim, i#74162 : nat, i#74169 : nat, lanetype#14430 : lanetype, dim#14430 : dim, i#74174 : nat, i#74181 : nat, half#392 : half, sx#13195 : sx, i#74155 : nat} {{0xFD} {`%`_u32{i#74155}(168):Bu32}} => `VCVTOP`_instr{shape_1#17, shape_2#17}(`%X%`_shape{lanetype#14418, dim#14418, i#74162}(`I32`_lanetype, `%`_dim{i#74169}(4)), `%X%`_shape{lanetype#14430, dim#14430, i#74174}(`I16`_lanetype, `%`_dim{i#74181}(8)), `EXTEND`_vcvtop__{half#392, sx#13195}(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:653.5-653.63 - prod {{0xFD} {`%`_u32(169):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(LOW_half, U_sx)) + prod{shape_1#19 : shape, shape_2#19 : shape, lanetype#14533 : lanetype, dim#14533 : dim, i#74422 : nat, i#74429 : nat, lanetype#14545 : lanetype, dim#14545 : dim, i#74434 : nat, i#74441 : nat, half#426 : half, sx#13229 : sx, i#74415 : nat} {{0xFD} {`%`_u32{i#74415}(169):Bu32}} => `VCVTOP`_instr{shape_1#19, shape_2#19}(`%X%`_shape{lanetype#14533, dim#14533, i#74422}(`I32`_lanetype, `%`_dim{i#74429}(4)), `%X%`_shape{lanetype#14545, dim#14545, i#74434}(`I16`_lanetype, `%`_dim{i#74441}(8)), `EXTEND`_vcvtop__{half#426, sx#13229}(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:654.5-654.64 - prod {{0xFD} {`%`_u32(170):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(HIGH_half, U_sx)) + prod{shape_1#21 : shape, shape_2#21 : shape, lanetype#14648 : lanetype, dim#14648 : dim, i#74682 : nat, i#74689 : nat, lanetype#14660 : lanetype, dim#14660 : dim, i#74694 : nat, i#74701 : nat, half#460 : half, sx#13263 : sx, i#74675 : nat} {{0xFD} {`%`_u32{i#74675}(170):Bu32}} => `VCVTOP`_instr{shape_1#21, shape_2#21}(`%X%`_shape{lanetype#14648, dim#14648, i#74682}(`I32`_lanetype, `%`_dim{i#74689}(4)), `%X%`_shape{lanetype#14660, dim#14660, i#74694}(`I16`_lanetype, `%`_dim{i#74701}(8)), `EXTEND`_vcvtop__{half#460, sx#13263}(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:658.5-658.45 - prod {{0xFD} {`%`_u32(171):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), SHL_vshiftop_) + prod{ishape#31 : ishape, shape#2517 : shape, Jnn#380 : Jnn, lanetype#14763 : lanetype, dim#14763 : dim, i#74942 : nat, i#74949 : nat, i#74935 : nat} {{0xFD} {`%`_u32{i#74935}(171):Bu32}} => `VSHIFTOP`_instr{ishape#31}(`%`_ishape{shape#2517, Jnn#380}(`%X%`_shape{lanetype#14763, dim#14763, i#74942}(`I32`_lanetype, `%`_dim{i#74949}(4))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:659.5-659.49 - prod {{0xFD} {`%`_u32(172):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), SHR_vshiftop_(S_sx)) + prod{ishape#33 : ishape, shape#2544 : shape, Jnn#384 : Jnn, lanetype#14820 : lanetype, dim#14820 : dim, i#75054 : nat, i#75061 : nat, sx#13297 : sx, i#75047 : nat} {{0xFD} {`%`_u32{i#75047}(172):Bu32}} => `VSHIFTOP`_instr{ishape#33}(`%`_ishape{shape#2544, Jnn#384}(`%X%`_shape{lanetype#14820, dim#14820, i#75054}(`I32`_lanetype, `%`_dim{i#75061}(4))), `SHR`_vshiftop_{sx#13297}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:660.5-660.49 - prod {{0xFD} {`%`_u32(173):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), SHR_vshiftop_(U_sx)) + prod{ishape#35 : ishape, shape#2573 : shape, Jnn#388 : Jnn, lanetype#14883 : lanetype, dim#14883 : dim, i#75176 : nat, i#75183 : nat, sx#13316 : sx, i#75169 : nat} {{0xFD} {`%`_u32{i#75169}(173):Bu32}} => `VSHIFTOP`_instr{ishape#35}(`%`_ishape{shape#2573, Jnn#388}(`%X%`_shape{lanetype#14883, dim#14883, i#75176}(`I32`_lanetype, `%`_dim{i#75183}(4))), `SHR`_vshiftop_{sx#13316}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:664.5-664.43 - prod {{0xFD} {`%`_u32(174):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ADD_vbinop_) + prod{shape#2592 : shape, lanetype#14946 : lanetype, dim#14946 : dim, i#75298 : nat, i#75305 : nat, i#75291 : nat} {{0xFD} {`%`_u32{i#75291}(174):Bu32}} => `VBINOP`_instr{shape#2592}(`%X%`_shape{lanetype#14946, dim#14946, i#75298}(`I32`_lanetype, `%`_dim{i#75305}(4)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:665.5-665.43 - prod {{0xFD} {`%`_u32(177):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), SUB_vbinop_) + prod{shape#2594 : shape, lanetype#14973 : lanetype, dim#14973 : dim, i#75380 : nat, i#75387 : nat, i#75373 : nat} {{0xFD} {`%`_u32{i#75373}(177):Bu32}} => `VBINOP`_instr{shape#2594}(`%X%`_shape{lanetype#14973, dim#14973, i#75380}(`I32`_lanetype, `%`_dim{i#75387}(4)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:666.5-666.43 - prod {{0xFD} {`%`_u32(181):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MUL_vbinop_) + prod{shape#2596 : shape, lanetype#15000 : lanetype, dim#15000 : dim, i#75462 : nat, i#75469 : nat, i#75455 : nat} {{0xFD} {`%`_u32{i#75455}(181):Bu32}} => `VBINOP`_instr{shape#2596}(`%X%`_shape{lanetype#15000, dim#15000, i#75462}(`I32`_lanetype, `%`_dim{i#75469}(4)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:667.5-667.45 - prod {{0xFD} {`%`_u32(182):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MIN_vbinop_(S_sx)) + prod{shape#2598 : shape, lanetype#15027 : lanetype, dim#15027 : dim, i#75544 : nat, i#75551 : nat, sx#13620 : sx, i#75537 : nat} {{0xFD} {`%`_u32{i#75537}(182):Bu32}} => `VBINOP`_instr{shape#2598}(`%X%`_shape{lanetype#15027, dim#15027, i#75544}(`I32`_lanetype, `%`_dim{i#75551}(4)), `MIN`_vbinop_{sx#13620}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:668.5-668.45 - prod {{0xFD} {`%`_u32(183):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MIN_vbinop_(U_sx)) + prod{shape#2600 : shape, lanetype#15069 : lanetype, dim#15069 : dim, i#75671 : nat, i#75678 : nat, sx#13744 : sx, i#75664 : nat} {{0xFD} {`%`_u32{i#75664}(183):Bu32}} => `VBINOP`_instr{shape#2600}(`%X%`_shape{lanetype#15069, dim#15069, i#75671}(`I32`_lanetype, `%`_dim{i#75678}(4)), `MIN`_vbinop_{sx#13744}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:669.5-669.45 - prod {{0xFD} {`%`_u32(184):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MAX_vbinop_(S_sx)) + prod{shape#2602 : shape, lanetype#15111 : lanetype, dim#15111 : dim, i#75798 : nat, i#75805 : nat, sx#13868 : sx, i#75791 : nat} {{0xFD} {`%`_u32{i#75791}(184):Bu32}} => `VBINOP`_instr{shape#2602}(`%X%`_shape{lanetype#15111, dim#15111, i#75798}(`I32`_lanetype, `%`_dim{i#75805}(4)), `MAX`_vbinop_{sx#13868}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:670.5-670.45 - prod {{0xFD} {`%`_u32(185):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MAX_vbinop_(U_sx)) + prod{shape#2604 : shape, lanetype#15153 : lanetype, dim#15153 : dim, i#75925 : nat, i#75932 : nat, sx#13992 : sx, i#75918 : nat} {{0xFD} {`%`_u32{i#75918}(185):Bu32}} => `VBINOP`_instr{shape#2604}(`%X%`_shape{lanetype#15153, dim#15153, i#75925}(`I32`_lanetype, `%`_dim{i#75932}(4)), `MAX`_vbinop_{sx#13992}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:674.5-674.59 - prod {{0xFD} {`%`_u32(186):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `DOTS`_vextbinop__) + prod{ishape_1#51 : ishape, ishape_2#51 : ishape, shape#2616 : shape, Jnn#392 : Jnn, lanetype#15195 : lanetype, dim#15195 : dim, i#76052 : nat, i#76059 : nat, shape#2628 : shape, Jnn#396 : Jnn, lanetype#15207 : lanetype, dim#15207 : dim, i#76064 : nat, i#76071 : nat, i#76045 : nat} {{0xFD} {`%`_u32{i#76045}(186):Bu32}} => `VEXTBINOP`_instr{ishape_1#51, ishape_2#51}(`%`_ishape{shape#2616, Jnn#392}(`%X%`_shape{lanetype#15195, dim#15195, i#76052}(`I32`_lanetype, `%`_dim{i#76059}(4))), `%`_ishape{shape#2628, Jnn#396}(`%X%`_shape{lanetype#15207, dim#15207, i#76064}(`I16`_lanetype, `%`_dim{i#76071}(8))), `DOTS`_vextbinop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:675.5-675.66 - prod {{0xFD} {`%`_u32(188):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(LOW_half, S_sx)) + prod{ishape_1#53 : ishape, ishape_2#53 : ishape, shape#2731 : shape, Jnn#400 : Jnn, lanetype#15430 : lanetype, dim#15430 : dim, i#76432 : nat, i#76439 : nat, shape#2743 : shape, Jnn#404 : Jnn, lanetype#15442 : lanetype, dim#15442 : dim, i#76444 : nat, i#76451 : nat, half#524 : half, sx#14056 : sx, i#76425 : nat} {{0xFD} {`%`_u32{i#76425}(188):Bu32}} => `VEXTBINOP`_instr{ishape_1#53, ishape_2#53}(`%`_ishape{shape#2731, Jnn#400}(`%X%`_shape{lanetype#15430, dim#15430, i#76432}(`I32`_lanetype, `%`_dim{i#76439}(4))), `%`_ishape{shape#2743, Jnn#404}(`%X%`_shape{lanetype#15442, dim#15442, i#76444}(`I16`_lanetype, `%`_dim{i#76451}(8))), `EXTMUL`_vextbinop__{half#524, sx#14056}(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:676.5-676.67 - prod {{0xFD} {`%`_u32(189):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(HIGH_half, S_sx)) + prod{ishape_1#55 : ishape, ishape_2#55 : ishape, shape#2846 : shape, Jnn#408 : Jnn, lanetype#15665 : lanetype, dim#15665 : dim, i#76812 : nat, i#76819 : nat, shape#2858 : shape, Jnn#412 : Jnn, lanetype#15677 : lanetype, dim#15677 : dim, i#76824 : nat, i#76831 : nat, half#558 : half, sx#14090 : sx, i#76805 : nat} {{0xFD} {`%`_u32{i#76805}(189):Bu32}} => `VEXTBINOP`_instr{ishape_1#55, ishape_2#55}(`%`_ishape{shape#2846, Jnn#408}(`%X%`_shape{lanetype#15665, dim#15665, i#76812}(`I32`_lanetype, `%`_dim{i#76819}(4))), `%`_ishape{shape#2858, Jnn#412}(`%X%`_shape{lanetype#15677, dim#15677, i#76824}(`I16`_lanetype, `%`_dim{i#76831}(8))), `EXTMUL`_vextbinop__{half#558, sx#14090}(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:677.5-677.66 - prod {{0xFD} {`%`_u32(190):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(LOW_half, U_sx)) + prod{ishape_1#57 : ishape, ishape_2#57 : ishape, shape#2961 : shape, Jnn#416 : Jnn, lanetype#15900 : lanetype, dim#15900 : dim, i#77192 : nat, i#77199 : nat, shape#2973 : shape, Jnn#420 : Jnn, lanetype#15912 : lanetype, dim#15912 : dim, i#77204 : nat, i#77211 : nat, half#592 : half, sx#14124 : sx, i#77185 : nat} {{0xFD} {`%`_u32{i#77185}(190):Bu32}} => `VEXTBINOP`_instr{ishape_1#57, ishape_2#57}(`%`_ishape{shape#2961, Jnn#416}(`%X%`_shape{lanetype#15900, dim#15900, i#77192}(`I32`_lanetype, `%`_dim{i#77199}(4))), `%`_ishape{shape#2973, Jnn#420}(`%X%`_shape{lanetype#15912, dim#15912, i#77204}(`I16`_lanetype, `%`_dim{i#77211}(8))), `EXTMUL`_vextbinop__{half#592, sx#14124}(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:678.5-678.67 - prod {{0xFD} {`%`_u32(191):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(HIGH_half, U_sx)) + prod{ishape_1#59 : ishape, ishape_2#59 : ishape, shape#3076 : shape, Jnn#424 : Jnn, lanetype#16135 : lanetype, dim#16135 : dim, i#77572 : nat, i#77579 : nat, shape#3088 : shape, Jnn#428 : Jnn, lanetype#16147 : lanetype, dim#16147 : dim, i#77584 : nat, i#77591 : nat, half#626 : half, sx#14158 : sx, i#77565 : nat} {{0xFD} {`%`_u32{i#77565}(191):Bu32}} => `VEXTBINOP`_instr{ishape_1#59, ishape_2#59}(`%`_ishape{shape#3076, Jnn#424}(`%X%`_shape{lanetype#16135, dim#16135, i#77572}(`I32`_lanetype, `%`_dim{i#77579}(4))), `%`_ishape{shape#3088, Jnn#428}(`%X%`_shape{lanetype#16147, dim#16147, i#77584}(`I16`_lanetype, `%`_dim{i#77591}(8))), `EXTMUL`_vextbinop__{half#626, sx#14158}(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:682.5-682.72 - prod {{0xFD} {`%`_u32(275):Bu32}} => VEXTTERNOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `RELAXED_DOT_ADDS`_vextternop__) + prod{ishape_1#61 : ishape, ishape_2#61 : ishape, shape#3191 : shape, Jnn#432 : Jnn, lanetype#16370 : lanetype, dim#16370 : dim, i#77952 : nat, i#77959 : nat, shape#3203 : shape, Jnn#436 : Jnn, lanetype#16382 : lanetype, dim#16382 : dim, i#77964 : nat, i#77971 : nat, i#77945 : nat} {{0xFD} {`%`_u32{i#77945}(275):Bu32}} => `VEXTTERNOP`_instr{ishape_1#61, ishape_2#61}(`%`_ishape{shape#3191, Jnn#432}(`%X%`_shape{lanetype#16370, dim#16370, i#77952}(`I32`_lanetype, `%`_dim{i#77959}(4))), `%`_ishape{shape#3203, Jnn#436}(`%X%`_shape{lanetype#16382, dim#16382, i#77964}(`I16`_lanetype, `%`_dim{i#77971}(8))), `RELAXED_DOT_ADDS`_vextternop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:686.5-686.42 - prod {{0xFD} {`%`_u32(192):Bu32}} => VUNOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ABS_vunop_) + prod{shape#3296 : shape, lanetype#16605 : lanetype, dim#16605 : dim, i#78332 : nat, i#78339 : nat, i#78325 : nat} {{0xFD} {`%`_u32{i#78325}(192):Bu32}} => `VUNOP`_instr{shape#3296}(`%X%`_shape{lanetype#16605, dim#16605, i#78332}(`I64`_lanetype, `%`_dim{i#78339}(2)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:687.5-687.42 - prod {{0xFD} {`%`_u32(193):Bu32}} => VUNOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), NEG_vunop_) + prod{shape#3298 : shape, lanetype#16632 : lanetype, dim#16632 : dim, i#78414 : nat, i#78421 : nat, i#78407 : nat} {{0xFD} {`%`_u32{i#78407}(193):Bu32}} => `VUNOP`_instr{shape#3298}(`%X%`_shape{lanetype#16632, dim#16632, i#78414}(`I64`_lanetype, `%`_dim{i#78421}(2)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:691.5-691.49 - prod {{0xFD} {`%`_u32(195):Bu32}} => VTESTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ALL_TRUE_vtestop_) + prod{shape#3300 : shape, lanetype#16659 : lanetype, dim#16659 : dim, i#78496 : nat, i#78503 : nat, i#78489 : nat} {{0xFD} {`%`_u32{i#78489}(195):Bu32}} => `VTESTOP`_instr{shape#3300}(`%X%`_shape{lanetype#16659, dim#16659, i#78496}(`I64`_lanetype, `%`_dim{i#78503}(2)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:695.5-695.41 - prod {{0xFD} {`%`_u32(196):Bu32}} => VBITMASK_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2)))) + prod{ishape#37 : ishape, shape#3312 : shape, Jnn#440 : Jnn, lanetype#16686 : lanetype, dim#16686 : dim, i#78578 : nat, i#78585 : nat, i#78571 : nat} {{0xFD} {`%`_u32{i#78571}(196):Bu32}} => `VBITMASK`_instr{ishape#37}(`%`_ishape{shape#3312, Jnn#440}(`%X%`_shape{lanetype#16686, dim#16686, i#78578}(`I64`_lanetype, `%`_dim{i#78585}(2)))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:699.5-699.63 - prod {{0xFD} {`%`_u32(199):Bu32}} => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(LOW_half, S_sx)) + prod{shape_1#23 : shape, shape_2#23 : shape, lanetype#16698 : lanetype, dim#16698 : dim, i#78615 : nat, i#78622 : nat, lanetype#16710 : lanetype, dim#16710 : dim, i#78627 : nat, i#78634 : nat, half#660 : half, sx#14192 : sx, i#78608 : nat} {{0xFD} {`%`_u32{i#78608}(199):Bu32}} => `VCVTOP`_instr{shape_1#23, shape_2#23}(`%X%`_shape{lanetype#16698, dim#16698, i#78615}(`I64`_lanetype, `%`_dim{i#78622}(2)), `%X%`_shape{lanetype#16710, dim#16710, i#78627}(`I32`_lanetype, `%`_dim{i#78634}(4)), `EXTEND`_vcvtop__{half#660, sx#14192}(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:700.5-700.64 - prod {{0xFD} {`%`_u32(200):Bu32}} => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(HIGH_half, S_sx)) + prod{shape_1#25 : shape, shape_2#25 : shape, lanetype#16813 : lanetype, dim#16813 : dim, i#78875 : nat, i#78882 : nat, lanetype#16825 : lanetype, dim#16825 : dim, i#78887 : nat, i#78894 : nat, half#694 : half, sx#14226 : sx, i#78868 : nat} {{0xFD} {`%`_u32{i#78868}(200):Bu32}} => `VCVTOP`_instr{shape_1#25, shape_2#25}(`%X%`_shape{lanetype#16813, dim#16813, i#78875}(`I64`_lanetype, `%`_dim{i#78882}(2)), `%X%`_shape{lanetype#16825, dim#16825, i#78887}(`I32`_lanetype, `%`_dim{i#78894}(4)), `EXTEND`_vcvtop__{half#694, sx#14226}(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:701.5-701.63 - prod {{0xFD} {`%`_u32(201):Bu32}} => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(LOW_half, U_sx)) + prod{shape_1#27 : shape, shape_2#27 : shape, lanetype#16928 : lanetype, dim#16928 : dim, i#79135 : nat, i#79142 : nat, lanetype#16940 : lanetype, dim#16940 : dim, i#79147 : nat, i#79154 : nat, half#728 : half, sx#14260 : sx, i#79128 : nat} {{0xFD} {`%`_u32{i#79128}(201):Bu32}} => `VCVTOP`_instr{shape_1#27, shape_2#27}(`%X%`_shape{lanetype#16928, dim#16928, i#79135}(`I64`_lanetype, `%`_dim{i#79142}(2)), `%X%`_shape{lanetype#16940, dim#16940, i#79147}(`I32`_lanetype, `%`_dim{i#79154}(4)), `EXTEND`_vcvtop__{half#728, sx#14260}(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:702.5-702.64 - prod {{0xFD} {`%`_u32(202):Bu32}} => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(HIGH_half, U_sx)) + prod{shape_1#29 : shape, shape_2#29 : shape, lanetype#17043 : lanetype, dim#17043 : dim, i#79395 : nat, i#79402 : nat, lanetype#17055 : lanetype, dim#17055 : dim, i#79407 : nat, i#79414 : nat, half#762 : half, sx#14294 : sx, i#79388 : nat} {{0xFD} {`%`_u32{i#79388}(202):Bu32}} => `VCVTOP`_instr{shape_1#29, shape_2#29}(`%X%`_shape{lanetype#17043, dim#17043, i#79395}(`I64`_lanetype, `%`_dim{i#79402}(2)), `%X%`_shape{lanetype#17055, dim#17055, i#79407}(`I32`_lanetype, `%`_dim{i#79414}(4)), `EXTEND`_vcvtop__{half#762, sx#14294}(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:706.5-706.45 - prod {{0xFD} {`%`_u32(203):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), SHL_vshiftop_) + prod{ishape#39 : ishape, shape#3324 : shape, Jnn#444 : Jnn, lanetype#17158 : lanetype, dim#17158 : dim, i#79655 : nat, i#79662 : nat, i#79648 : nat} {{0xFD} {`%`_u32{i#79648}(203):Bu32}} => `VSHIFTOP`_instr{ishape#39}(`%`_ishape{shape#3324, Jnn#444}(`%X%`_shape{lanetype#17158, dim#17158, i#79655}(`I64`_lanetype, `%`_dim{i#79662}(2))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:707.5-707.49 - prod {{0xFD} {`%`_u32(204):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), SHR_vshiftop_(S_sx)) + prod{ishape#41 : ishape, shape#3351 : shape, Jnn#448 : Jnn, lanetype#17215 : lanetype, dim#17215 : dim, i#79767 : nat, i#79774 : nat, sx#14328 : sx, i#79760 : nat} {{0xFD} {`%`_u32{i#79760}(204):Bu32}} => `VSHIFTOP`_instr{ishape#41}(`%`_ishape{shape#3351, Jnn#448}(`%X%`_shape{lanetype#17215, dim#17215, i#79767}(`I64`_lanetype, `%`_dim{i#79774}(2))), `SHR`_vshiftop_{sx#14328}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:708.5-708.49 - prod {{0xFD} {`%`_u32(205):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), SHR_vshiftop_(U_sx)) + prod{ishape#43 : ishape, shape#3380 : shape, Jnn#452 : Jnn, lanetype#17278 : lanetype, dim#17278 : dim, i#79889 : nat, i#79896 : nat, sx#14347 : sx, i#79882 : nat} {{0xFD} {`%`_u32{i#79882}(205):Bu32}} => `VSHIFTOP`_instr{ishape#43}(`%`_ishape{shape#3380, Jnn#452}(`%X%`_shape{lanetype#17278, dim#17278, i#79889}(`I64`_lanetype, `%`_dim{i#79896}(2))), `SHR`_vshiftop_{sx#14347}(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:712.5-712.43 - prod {{0xFD} {`%`_u32(206):Bu32}} => VBINOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ADD_vbinop_) + prod{shape#3399 : shape, lanetype#17341 : lanetype, dim#17341 : dim, i#80011 : nat, i#80018 : nat, i#80004 : nat} {{0xFD} {`%`_u32{i#80004}(206):Bu32}} => `VBINOP`_instr{shape#3399}(`%X%`_shape{lanetype#17341, dim#17341, i#80011}(`I64`_lanetype, `%`_dim{i#80018}(2)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:713.5-713.43 - prod {{0xFD} {`%`_u32(209):Bu32}} => VBINOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), SUB_vbinop_) + prod{shape#3401 : shape, lanetype#17368 : lanetype, dim#17368 : dim, i#80093 : nat, i#80100 : nat, i#80086 : nat} {{0xFD} {`%`_u32{i#80086}(209):Bu32}} => `VBINOP`_instr{shape#3401}(`%X%`_shape{lanetype#17368, dim#17368, i#80093}(`I64`_lanetype, `%`_dim{i#80100}(2)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:714.5-714.43 - prod {{0xFD} {`%`_u32(213):Bu32}} => VBINOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), MUL_vbinop_) + prod{shape#3403 : shape, lanetype#17395 : lanetype, dim#17395 : dim, i#80175 : nat, i#80182 : nat, i#80168 : nat} {{0xFD} {`%`_u32{i#80168}(213):Bu32}} => `VBINOP`_instr{shape#3403}(`%X%`_shape{lanetype#17395, dim#17395, i#80175}(`I64`_lanetype, `%`_dim{i#80182}(2)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:718.5-718.42 - prod {{0xFD} {`%`_u32(214):Bu32}} => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), EQ_vrelop_) + prod{shape#3405 : shape, lanetype#17422 : lanetype, dim#17422 : dim, i#80257 : nat, i#80264 : nat, i#80250 : nat} {{0xFD} {`%`_u32{i#80250}(214):Bu32}} => `VRELOP`_instr{shape#3405}(`%X%`_shape{lanetype#17422, dim#17422, i#80257}(`I64`_lanetype, `%`_dim{i#80264}(2)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:719.5-719.42 - prod {{0xFD} {`%`_u32(215):Bu32}} => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), NE_vrelop_) + prod{shape#3407 : shape, lanetype#17449 : lanetype, dim#17449 : dim, i#80339 : nat, i#80346 : nat, i#80332 : nat} {{0xFD} {`%`_u32{i#80332}(215):Bu32}} => `VRELOP`_instr{shape#3407}(`%X%`_shape{lanetype#17449, dim#17449, i#80339}(`I64`_lanetype, `%`_dim{i#80346}(2)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:720.5-720.46 - prod {{0xFD} {`%`_u32(216):Bu32}} => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), LT_vrelop_(S_sx)) + prod{shape#3409 : shape, lanetype#17476 : lanetype, dim#17476 : dim, i#80421 : nat, i#80428 : nat, sx#14717 : sx, i#80414 : nat} {{0xFD} {`%`_u32{i#80414}(216):Bu32}} => `VRELOP`_instr{shape#3409}(`%X%`_shape{lanetype#17476, dim#17476, i#80421}(`I64`_lanetype, `%`_dim{i#80428}(2)), `LT`_vrelop_{sx#14717}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:721.5-721.46 - prod {{0xFD} {`%`_u32(217):Bu32}} => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), GT_vrelop_(S_sx)) + prod{shape#3411 : shape, lanetype#17505 : lanetype, dim#17505 : dim, i#80509 : nat, i#80516 : nat, sx#14787 : sx, i#80502 : nat} {{0xFD} {`%`_u32{i#80502}(217):Bu32}} => `VRELOP`_instr{shape#3411}(`%X%`_shape{lanetype#17505, dim#17505, i#80509}(`I64`_lanetype, `%`_dim{i#80516}(2)), `GT`_vrelop_{sx#14787}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:722.5-722.46 - prod {{0xFD} {`%`_u32(218):Bu32}} => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), LE_vrelop_(S_sx)) + prod{shape#3413 : shape, lanetype#17534 : lanetype, dim#17534 : dim, i#80597 : nat, i#80604 : nat, sx#14857 : sx, i#80590 : nat} {{0xFD} {`%`_u32{i#80590}(218):Bu32}} => `VRELOP`_instr{shape#3413}(`%X%`_shape{lanetype#17534, dim#17534, i#80597}(`I64`_lanetype, `%`_dim{i#80604}(2)), `LE`_vrelop_{sx#14857}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:723.5-723.46 - prod {{0xFD} {`%`_u32(219):Bu32}} => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), GE_vrelop_(S_sx)) + prod{shape#3415 : shape, lanetype#17563 : lanetype, dim#17563 : dim, i#80685 : nat, i#80692 : nat, sx#14927 : sx, i#80678 : nat} {{0xFD} {`%`_u32{i#80678}(219):Bu32}} => `VRELOP`_instr{shape#3415}(`%X%`_shape{lanetype#17563, dim#17563, i#80685}(`I64`_lanetype, `%`_dim{i#80692}(2)), `GE`_vrelop_{sx#14927}(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:727.5-727.66 - prod {{0xFD} {`%`_u32(220):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(LOW_half, S_sx)) + prod{ishape_1#63 : ishape, ishape_2#63 : ishape, shape#3427 : shape, Jnn#456 : Jnn, lanetype#17592 : lanetype, dim#17592 : dim, i#80773 : nat, i#80780 : nat, shape#3439 : shape, Jnn#460 : Jnn, lanetype#17604 : lanetype, dim#17604 : dim, i#80785 : nat, i#80792 : nat, half#796 : half, sx#14961 : sx, i#80766 : nat} {{0xFD} {`%`_u32{i#80766}(220):Bu32}} => `VEXTBINOP`_instr{ishape_1#63, ishape_2#63}(`%`_ishape{shape#3427, Jnn#456}(`%X%`_shape{lanetype#17592, dim#17592, i#80773}(`I64`_lanetype, `%`_dim{i#80780}(2))), `%`_ishape{shape#3439, Jnn#460}(`%X%`_shape{lanetype#17604, dim#17604, i#80785}(`I32`_lanetype, `%`_dim{i#80792}(4))), `EXTMUL`_vextbinop__{half#796, sx#14961}(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:728.5-728.67 - prod {{0xFD} {`%`_u32(221):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(HIGH_half, S_sx)) + prod{ishape_1#65 : ishape, ishape_2#65 : ishape, shape#3542 : shape, Jnn#464 : Jnn, lanetype#17827 : lanetype, dim#17827 : dim, i#81153 : nat, i#81160 : nat, shape#3554 : shape, Jnn#468 : Jnn, lanetype#17839 : lanetype, dim#17839 : dim, i#81165 : nat, i#81172 : nat, half#830 : half, sx#14995 : sx, i#81146 : nat} {{0xFD} {`%`_u32{i#81146}(221):Bu32}} => `VEXTBINOP`_instr{ishape_1#65, ishape_2#65}(`%`_ishape{shape#3542, Jnn#464}(`%X%`_shape{lanetype#17827, dim#17827, i#81153}(`I64`_lanetype, `%`_dim{i#81160}(2))), `%`_ishape{shape#3554, Jnn#468}(`%X%`_shape{lanetype#17839, dim#17839, i#81165}(`I32`_lanetype, `%`_dim{i#81172}(4))), `EXTMUL`_vextbinop__{half#830, sx#14995}(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:729.5-729.66 - prod {{0xFD} {`%`_u32(222):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(LOW_half, U_sx)) + prod{ishape_1#67 : ishape, ishape_2#67 : ishape, shape#3657 : shape, Jnn#472 : Jnn, lanetype#18062 : lanetype, dim#18062 : dim, i#81533 : nat, i#81540 : nat, shape#3669 : shape, Jnn#476 : Jnn, lanetype#18074 : lanetype, dim#18074 : dim, i#81545 : nat, i#81552 : nat, half#864 : half, sx#15029 : sx, i#81526 : nat} {{0xFD} {`%`_u32{i#81526}(222):Bu32}} => `VEXTBINOP`_instr{ishape_1#67, ishape_2#67}(`%`_ishape{shape#3657, Jnn#472}(`%X%`_shape{lanetype#18062, dim#18062, i#81533}(`I64`_lanetype, `%`_dim{i#81540}(2))), `%`_ishape{shape#3669, Jnn#476}(`%X%`_shape{lanetype#18074, dim#18074, i#81545}(`I32`_lanetype, `%`_dim{i#81552}(4))), `EXTMUL`_vextbinop__{half#864, sx#15029}(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:730.5-730.67 - prod {{0xFD} {`%`_u32(223):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(HIGH_half, U_sx)) + prod{ishape_1#69 : ishape, ishape_2#69 : ishape, shape#3772 : shape, Jnn#480 : Jnn, lanetype#18297 : lanetype, dim#18297 : dim, i#81913 : nat, i#81920 : nat, shape#3784 : shape, Jnn#484 : Jnn, lanetype#18309 : lanetype, dim#18309 : dim, i#81925 : nat, i#81932 : nat, half#898 : half, sx#15063 : sx, i#81906 : nat} {{0xFD} {`%`_u32{i#81906}(223):Bu32}} => `VEXTBINOP`_instr{ishape_1#69, ishape_2#69}(`%`_ishape{shape#3772, Jnn#480}(`%X%`_shape{lanetype#18297, dim#18297, i#81913}(`I64`_lanetype, `%`_dim{i#81920}(2))), `%`_ishape{shape#3784, Jnn#484}(`%X%`_shape{lanetype#18309, dim#18309, i#81925}(`I32`_lanetype, `%`_dim{i#81932}(4))), `EXTMUL`_vextbinop__{half#898, sx#15063}(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:734.5-734.43 - prod {{0xFD} {`%`_u32(103):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), CEIL_vunop_) + prod{shape#3877 : shape, lanetype#18532 : lanetype, dim#18532 : dim, i#82293 : nat, i#82300 : nat, i#82286 : nat} {{0xFD} {`%`_u32{i#82286}(103):Bu32}} => `VUNOP`_instr{shape#3877}(`%X%`_shape{lanetype#18532, dim#18532, i#82293}(`F32`_lanetype, `%`_dim{i#82300}(4)), `CEIL`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:735.5-735.44 - prod {{0xFD} {`%`_u32(104):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), FLOOR_vunop_) + prod{shape#3879 : shape, lanetype#18574 : lanetype, dim#18574 : dim, i#82390 : nat, i#82397 : nat, i#82383 : nat} {{0xFD} {`%`_u32{i#82383}(104):Bu32}} => `VUNOP`_instr{shape#3879}(`%X%`_shape{lanetype#18574, dim#18574, i#82390}(`F32`_lanetype, `%`_dim{i#82397}(4)), `FLOOR`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:736.5-736.44 - prod {{0xFD} {`%`_u32(105):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), TRUNC_vunop_) + prod{shape#3881 : shape, lanetype#18616 : lanetype, dim#18616 : dim, i#82487 : nat, i#82494 : nat, i#82480 : nat} {{0xFD} {`%`_u32{i#82480}(105):Bu32}} => `VUNOP`_instr{shape#3881}(`%X%`_shape{lanetype#18616, dim#18616, i#82487}(`F32`_lanetype, `%`_dim{i#82494}(4)), `TRUNC`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:737.5-737.46 - prod {{0xFD} {`%`_u32(106):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), NEAREST_vunop_) + prod{shape#3883 : shape, lanetype#18658 : lanetype, dim#18658 : dim, i#82584 : nat, i#82591 : nat, i#82577 : nat} {{0xFD} {`%`_u32{i#82577}(106):Bu32}} => `VUNOP`_instr{shape#3883}(`%X%`_shape{lanetype#18658, dim#18658, i#82584}(`F32`_lanetype, `%`_dim{i#82591}(4)), `NEAREST`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:738.5-738.42 - prod {{0xFD} {`%`_u32(224):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), ABS_vunop_) + prod{shape#3885 : shape, lanetype#18700 : lanetype, dim#18700 : dim, i#82681 : nat, i#82688 : nat, i#82674 : nat} {{0xFD} {`%`_u32{i#82674}(224):Bu32}} => `VUNOP`_instr{shape#3885}(`%X%`_shape{lanetype#18700, dim#18700, i#82681}(`F32`_lanetype, `%`_dim{i#82688}(4)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:739.5-739.42 - prod {{0xFD} {`%`_u32(225):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), NEG_vunop_) + prod{shape#3887 : shape, lanetype#18742 : lanetype, dim#18742 : dim, i#82778 : nat, i#82785 : nat, i#82771 : nat} {{0xFD} {`%`_u32{i#82771}(225):Bu32}} => `VUNOP`_instr{shape#3887}(`%X%`_shape{lanetype#18742, dim#18742, i#82778}(`F32`_lanetype, `%`_dim{i#82785}(4)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:740.5-740.43 - prod {{0xFD} {`%`_u32(227):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), SQRT_vunop_) + prod{shape#3889 : shape, lanetype#18784 : lanetype, dim#18784 : dim, i#82875 : nat, i#82882 : nat, i#82868 : nat} {{0xFD} {`%`_u32{i#82868}(227):Bu32}} => `VUNOP`_instr{shape#3889}(`%X%`_shape{lanetype#18784, dim#18784, i#82875}(`F32`_lanetype, `%`_dim{i#82882}(4)), `SQRT`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:744.5-744.43 - prod {{0xFD} {`%`_u32(228):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), ADD_vbinop_) + prod{shape#3891 : shape, lanetype#18826 : lanetype, dim#18826 : dim, i#82972 : nat, i#82979 : nat, i#82965 : nat} {{0xFD} {`%`_u32{i#82965}(228):Bu32}} => `VBINOP`_instr{shape#3891}(`%X%`_shape{lanetype#18826, dim#18826, i#82972}(`F32`_lanetype, `%`_dim{i#82979}(4)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:745.5-745.43 - prod {{0xFD} {`%`_u32(229):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), SUB_vbinop_) + prod{shape#3893 : shape, lanetype#18868 : lanetype, dim#18868 : dim, i#83069 : nat, i#83076 : nat, i#83062 : nat} {{0xFD} {`%`_u32{i#83062}(229):Bu32}} => `VBINOP`_instr{shape#3893}(`%X%`_shape{lanetype#18868, dim#18868, i#83069}(`F32`_lanetype, `%`_dim{i#83076}(4)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:746.5-746.43 - prod {{0xFD} {`%`_u32(230):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), MUL_vbinop_) + prod{shape#3895 : shape, lanetype#18910 : lanetype, dim#18910 : dim, i#83166 : nat, i#83173 : nat, i#83159 : nat} {{0xFD} {`%`_u32{i#83159}(230):Bu32}} => `VBINOP`_instr{shape#3895}(`%X%`_shape{lanetype#18910, dim#18910, i#83166}(`F32`_lanetype, `%`_dim{i#83173}(4)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:747.5-747.43 - prod {{0xFD} {`%`_u32(231):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), DIV_vbinop_) + prod{shape#3897 : shape, lanetype#18952 : lanetype, dim#18952 : dim, i#83263 : nat, i#83270 : nat, i#83256 : nat} {{0xFD} {`%`_u32{i#83256}(231):Bu32}} => `VBINOP`_instr{shape#3897}(`%X%`_shape{lanetype#18952, dim#18952, i#83263}(`F32`_lanetype, `%`_dim{i#83270}(4)), `DIV`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:748.5-748.43 - prod {{0xFD} {`%`_u32(232):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), MIN_vbinop_) + prod{shape#3899 : shape, lanetype#18994 : lanetype, dim#18994 : dim, i#83360 : nat, i#83367 : nat, i#83353 : nat} {{0xFD} {`%`_u32{i#83353}(232):Bu32}} => `VBINOP`_instr{shape#3899}(`%X%`_shape{lanetype#18994, dim#18994, i#83360}(`F32`_lanetype, `%`_dim{i#83367}(4)), `MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:749.5-749.43 - prod {{0xFD} {`%`_u32(233):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), MAX_vbinop_) + prod{shape#3901 : shape, lanetype#19036 : lanetype, dim#19036 : dim, i#83457 : nat, i#83464 : nat, i#83450 : nat} {{0xFD} {`%`_u32{i#83450}(233):Bu32}} => `VBINOP`_instr{shape#3901}(`%X%`_shape{lanetype#19036, dim#19036, i#83457}(`F32`_lanetype, `%`_dim{i#83464}(4)), `MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:750.5-750.44 - prod {{0xFD} {`%`_u32(234):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), PMIN_vbinop_) + prod{shape#3903 : shape, lanetype#19078 : lanetype, dim#19078 : dim, i#83554 : nat, i#83561 : nat, i#83547 : nat} {{0xFD} {`%`_u32{i#83547}(234):Bu32}} => `VBINOP`_instr{shape#3903}(`%X%`_shape{lanetype#19078, dim#19078, i#83554}(`F32`_lanetype, `%`_dim{i#83561}(4)), `PMIN`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:751.5-751.44 - prod {{0xFD} {`%`_u32(235):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), PMAX_vbinop_) + prod{shape#3905 : shape, lanetype#19120 : lanetype, dim#19120 : dim, i#83651 : nat, i#83658 : nat, i#83644 : nat} {{0xFD} {`%`_u32{i#83644}(235):Bu32}} => `VBINOP`_instr{shape#3905}(`%X%`_shape{lanetype#19120, dim#19120, i#83651}(`F32`_lanetype, `%`_dim{i#83658}(4)), `PMAX`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:752.5-752.51 - prod {{0xFD} {`%`_u32(269):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_MIN_vbinop_) + prod{shape#3907 : shape, lanetype#19162 : lanetype, dim#19162 : dim, i#83748 : nat, i#83755 : nat, i#83741 : nat} {{0xFD} {`%`_u32{i#83741}(269):Bu32}} => `VBINOP`_instr{shape#3907}(`%X%`_shape{lanetype#19162, dim#19162, i#83748}(`F32`_lanetype, `%`_dim{i#83755}(4)), `RELAXED_MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:753.5-753.51 - prod {{0xFD} {`%`_u32(270):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_MAX_vbinop_) + prod{shape#3909 : shape, lanetype#19204 : lanetype, dim#19204 : dim, i#83845 : nat, i#83852 : nat, i#83838 : nat} {{0xFD} {`%`_u32{i#83838}(270):Bu32}} => `VBINOP`_instr{shape#3909}(`%X%`_shape{lanetype#19204, dim#19204, i#83845}(`F32`_lanetype, `%`_dim{i#83852}(4)), `RELAXED_MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:757.5-757.53 - prod {{0xFD} {`%`_u32(261):Bu32}} => VTERNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_MADD_vternop_) + prod{shape#3911 : shape, lanetype#19246 : lanetype, dim#19246 : dim, i#83942 : nat, i#83949 : nat, i#83935 : nat} {{0xFD} {`%`_u32{i#83935}(261):Bu32}} => `VTERNOP`_instr{shape#3911}(`%X%`_shape{lanetype#19246, dim#19246, i#83942}(`F32`_lanetype, `%`_dim{i#83949}(4)), `RELAXED_MADD`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:758.5-758.54 - prod {{0xFD} {`%`_u32(262):Bu32}} => VTERNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_NMADD_vternop_) + prod{shape#3913 : shape, lanetype#19288 : lanetype, dim#19288 : dim, i#84039 : nat, i#84046 : nat, i#84032 : nat} {{0xFD} {`%`_u32{i#84032}(262):Bu32}} => `VTERNOP`_instr{shape#3913}(`%X%`_shape{lanetype#19288, dim#19288, i#84039}(`F32`_lanetype, `%`_dim{i#84046}(4)), `RELAXED_NMADD`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:762.5-762.43 - prod {{0xFD} {`%`_u32(116):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), CEIL_vunop_) + prod{shape#3915 : shape, lanetype#19330 : lanetype, dim#19330 : dim, i#84136 : nat, i#84143 : nat, i#84129 : nat} {{0xFD} {`%`_u32{i#84129}(116):Bu32}} => `VUNOP`_instr{shape#3915}(`%X%`_shape{lanetype#19330, dim#19330, i#84136}(`F64`_lanetype, `%`_dim{i#84143}(2)), `CEIL`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:763.5-763.44 - prod {{0xFD} {`%`_u32(117):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), FLOOR_vunop_) + prod{shape#3917 : shape, lanetype#19372 : lanetype, dim#19372 : dim, i#84233 : nat, i#84240 : nat, i#84226 : nat} {{0xFD} {`%`_u32{i#84226}(117):Bu32}} => `VUNOP`_instr{shape#3917}(`%X%`_shape{lanetype#19372, dim#19372, i#84233}(`F64`_lanetype, `%`_dim{i#84240}(2)), `FLOOR`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:764.5-764.44 - prod {{0xFD} {`%`_u32(122):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), TRUNC_vunop_) + prod{shape#3919 : shape, lanetype#19414 : lanetype, dim#19414 : dim, i#84330 : nat, i#84337 : nat, i#84323 : nat} {{0xFD} {`%`_u32{i#84323}(122):Bu32}} => `VUNOP`_instr{shape#3919}(`%X%`_shape{lanetype#19414, dim#19414, i#84330}(`F64`_lanetype, `%`_dim{i#84337}(2)), `TRUNC`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:765.5-765.46 - prod {{0xFD} {`%`_u32(148):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), NEAREST_vunop_) + prod{shape#3921 : shape, lanetype#19456 : lanetype, dim#19456 : dim, i#84427 : nat, i#84434 : nat, i#84420 : nat} {{0xFD} {`%`_u32{i#84420}(148):Bu32}} => `VUNOP`_instr{shape#3921}(`%X%`_shape{lanetype#19456, dim#19456, i#84427}(`F64`_lanetype, `%`_dim{i#84434}(2)), `NEAREST`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:766.5-766.42 - prod {{0xFD} {`%`_u32(236):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), ABS_vunop_) + prod{shape#3923 : shape, lanetype#19498 : lanetype, dim#19498 : dim, i#84524 : nat, i#84531 : nat, i#84517 : nat} {{0xFD} {`%`_u32{i#84517}(236):Bu32}} => `VUNOP`_instr{shape#3923}(`%X%`_shape{lanetype#19498, dim#19498, i#84524}(`F64`_lanetype, `%`_dim{i#84531}(2)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:767.5-767.42 - prod {{0xFD} {`%`_u32(237):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), NEG_vunop_) + prod{shape#3925 : shape, lanetype#19540 : lanetype, dim#19540 : dim, i#84621 : nat, i#84628 : nat, i#84614 : nat} {{0xFD} {`%`_u32{i#84614}(237):Bu32}} => `VUNOP`_instr{shape#3925}(`%X%`_shape{lanetype#19540, dim#19540, i#84621}(`F64`_lanetype, `%`_dim{i#84628}(2)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:768.5-768.43 - prod {{0xFD} {`%`_u32(239):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), SQRT_vunop_) + prod{shape#3927 : shape, lanetype#19582 : lanetype, dim#19582 : dim, i#84718 : nat, i#84725 : nat, i#84711 : nat} {{0xFD} {`%`_u32{i#84711}(239):Bu32}} => `VUNOP`_instr{shape#3927}(`%X%`_shape{lanetype#19582, dim#19582, i#84718}(`F64`_lanetype, `%`_dim{i#84725}(2)), `SQRT`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:772.5-772.43 - prod {{0xFD} {`%`_u32(240):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), ADD_vbinop_) + prod{shape#3929 : shape, lanetype#19624 : lanetype, dim#19624 : dim, i#84815 : nat, i#84822 : nat, i#84808 : nat} {{0xFD} {`%`_u32{i#84808}(240):Bu32}} => `VBINOP`_instr{shape#3929}(`%X%`_shape{lanetype#19624, dim#19624, i#84815}(`F64`_lanetype, `%`_dim{i#84822}(2)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:773.5-773.43 - prod {{0xFD} {`%`_u32(241):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), SUB_vbinop_) + prod{shape#3931 : shape, lanetype#19666 : lanetype, dim#19666 : dim, i#84912 : nat, i#84919 : nat, i#84905 : nat} {{0xFD} {`%`_u32{i#84905}(241):Bu32}} => `VBINOP`_instr{shape#3931}(`%X%`_shape{lanetype#19666, dim#19666, i#84912}(`F64`_lanetype, `%`_dim{i#84919}(2)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:774.5-774.43 - prod {{0xFD} {`%`_u32(242):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), MUL_vbinop_) + prod{shape#3933 : shape, lanetype#19708 : lanetype, dim#19708 : dim, i#85009 : nat, i#85016 : nat, i#85002 : nat} {{0xFD} {`%`_u32{i#85002}(242):Bu32}} => `VBINOP`_instr{shape#3933}(`%X%`_shape{lanetype#19708, dim#19708, i#85009}(`F64`_lanetype, `%`_dim{i#85016}(2)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:775.5-775.43 - prod {{0xFD} {`%`_u32(243):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), DIV_vbinop_) + prod{shape#3935 : shape, lanetype#19750 : lanetype, dim#19750 : dim, i#85106 : nat, i#85113 : nat, i#85099 : nat} {{0xFD} {`%`_u32{i#85099}(243):Bu32}} => `VBINOP`_instr{shape#3935}(`%X%`_shape{lanetype#19750, dim#19750, i#85106}(`F64`_lanetype, `%`_dim{i#85113}(2)), `DIV`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:776.5-776.43 - prod {{0xFD} {`%`_u32(244):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), MIN_vbinop_) + prod{shape#3937 : shape, lanetype#19792 : lanetype, dim#19792 : dim, i#85203 : nat, i#85210 : nat, i#85196 : nat} {{0xFD} {`%`_u32{i#85196}(244):Bu32}} => `VBINOP`_instr{shape#3937}(`%X%`_shape{lanetype#19792, dim#19792, i#85203}(`F64`_lanetype, `%`_dim{i#85210}(2)), `MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:777.5-777.43 - prod {{0xFD} {`%`_u32(245):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), MAX_vbinop_) + prod{shape#3939 : shape, lanetype#19834 : lanetype, dim#19834 : dim, i#85300 : nat, i#85307 : nat, i#85293 : nat} {{0xFD} {`%`_u32{i#85293}(245):Bu32}} => `VBINOP`_instr{shape#3939}(`%X%`_shape{lanetype#19834, dim#19834, i#85300}(`F64`_lanetype, `%`_dim{i#85307}(2)), `MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:778.5-778.44 - prod {{0xFD} {`%`_u32(246):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), PMIN_vbinop_) + prod{shape#3941 : shape, lanetype#19876 : lanetype, dim#19876 : dim, i#85397 : nat, i#85404 : nat, i#85390 : nat} {{0xFD} {`%`_u32{i#85390}(246):Bu32}} => `VBINOP`_instr{shape#3941}(`%X%`_shape{lanetype#19876, dim#19876, i#85397}(`F64`_lanetype, `%`_dim{i#85404}(2)), `PMIN`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:779.5-779.44 - prod {{0xFD} {`%`_u32(247):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), PMAX_vbinop_) + prod{shape#3943 : shape, lanetype#19918 : lanetype, dim#19918 : dim, i#85494 : nat, i#85501 : nat, i#85487 : nat} {{0xFD} {`%`_u32{i#85487}(247):Bu32}} => `VBINOP`_instr{shape#3943}(`%X%`_shape{lanetype#19918, dim#19918, i#85494}(`F64`_lanetype, `%`_dim{i#85501}(2)), `PMAX`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:780.5-780.51 - prod {{0xFD} {`%`_u32(271):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_MIN_vbinop_) + prod{shape#3945 : shape, lanetype#19960 : lanetype, dim#19960 : dim, i#85591 : nat, i#85598 : nat, i#85584 : nat} {{0xFD} {`%`_u32{i#85584}(271):Bu32}} => `VBINOP`_instr{shape#3945}(`%X%`_shape{lanetype#19960, dim#19960, i#85591}(`F64`_lanetype, `%`_dim{i#85598}(2)), `RELAXED_MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:781.5-781.51 - prod {{0xFD} {`%`_u32(272):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_MAX_vbinop_) + prod{shape#3947 : shape, lanetype#20002 : lanetype, dim#20002 : dim, i#85688 : nat, i#85695 : nat, i#85681 : nat} {{0xFD} {`%`_u32{i#85681}(272):Bu32}} => `VBINOP`_instr{shape#3947}(`%X%`_shape{lanetype#20002, dim#20002, i#85688}(`F64`_lanetype, `%`_dim{i#85695}(2)), `RELAXED_MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:785.5-785.53 - prod {{0xFD} {`%`_u32(263):Bu32}} => VTERNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_MADD_vternop_) + prod{shape#3949 : shape, lanetype#20044 : lanetype, dim#20044 : dim, i#85785 : nat, i#85792 : nat, i#85778 : nat} {{0xFD} {`%`_u32{i#85778}(263):Bu32}} => `VTERNOP`_instr{shape#3949}(`%X%`_shape{lanetype#20044, dim#20044, i#85785}(`F64`_lanetype, `%`_dim{i#85792}(2)), `RELAXED_MADD`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:786.5-786.54 - prod {{0xFD} {`%`_u32(264):Bu32}} => VTERNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_NMADD_vternop_) + prod{shape#3951 : shape, lanetype#20086 : lanetype, dim#20086 : dim, i#85882 : nat, i#85889 : nat, i#85875 : nat} {{0xFD} {`%`_u32{i#85875}(264):Bu32}} => `VTERNOP`_instr{shape#3951}(`%X%`_shape{lanetype#20086, dim#20086, i#85882}(`F64`_lanetype, `%`_dim{i#85889}(2)), `RELAXED_NMADD`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:787.5-787.59 - prod {{0xFD} {`%`_u32(265):Bu32}} => VTERNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), RELAXED_LANESELECT_vternop_) + prod{shape#3953 : shape, lanetype#20128 : lanetype, dim#20128 : dim, i#85979 : nat, i#85986 : nat, i#85972 : nat} {{0xFD} {`%`_u32{i#85972}(265):Bu32}} => `VTERNOP`_instr{shape#3953}(`%X%`_shape{lanetype#20128, dim#20128, i#85979}(`I8`_lanetype, `%`_dim{i#85986}(16)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:788.5-788.59 - prod {{0xFD} {`%`_u32(266):Bu32}} => VTERNOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), RELAXED_LANESELECT_vternop_) + prod{shape#3955 : shape, lanetype#20155 : lanetype, dim#20155 : dim, i#86061 : nat, i#86068 : nat, i#86054 : nat} {{0xFD} {`%`_u32{i#86054}(266):Bu32}} => `VTERNOP`_instr{shape#3955}(`%X%`_shape{lanetype#20155, dim#20155, i#86061}(`I16`_lanetype, `%`_dim{i#86068}(8)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:789.5-789.59 - prod {{0xFD} {`%`_u32(267):Bu32}} => VTERNOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), RELAXED_LANESELECT_vternop_) + prod{shape#3957 : shape, lanetype#20182 : lanetype, dim#20182 : dim, i#86143 : nat, i#86150 : nat, i#86136 : nat} {{0xFD} {`%`_u32{i#86136}(267):Bu32}} => `VTERNOP`_instr{shape#3957}(`%X%`_shape{lanetype#20182, dim#20182, i#86143}(`I32`_lanetype, `%`_dim{i#86150}(4)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:790.5-790.59 - prod {{0xFD} {`%`_u32(268):Bu32}} => VTERNOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), RELAXED_LANESELECT_vternop_) + prod{shape#3959 : shape, lanetype#20209 : lanetype, dim#20209 : dim, i#86225 : nat, i#86232 : nat, i#86218 : nat} {{0xFD} {`%`_u32{i#86218}(268):Bu32}} => `VTERNOP`_instr{shape#3959}(`%X%`_shape{lanetype#20209, dim#20209, i#86225}(`I64`_lanetype, `%`_dim{i#86232}(2)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:794.5-794.61 - prod {{0xFD} {`%`_u32(94):Bu32}} => VCVTOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), DEMOTE_vcvtop__(ZERO_zero)) + prod{shape_1#31 : shape, shape_2#31 : shape, lanetype#20236 : lanetype, dim#20236 : dim, i#86307 : nat, i#86314 : nat, lanetype#20248 : lanetype, dim#20248 : dim, i#86319 : nat, i#86326 : nat, zero#159 : zero, i#86300 : nat} {{0xFD} {`%`_u32{i#86300}(94):Bu32}} => `VCVTOP`_instr{shape_1#31, shape_2#31}(`%X%`_shape{lanetype#20236, dim#20236, i#86307}(`F32`_lanetype, `%`_dim{i#86314}(4)), `%X%`_shape{lanetype#20248, dim#20248, i#86319}(`F64`_lanetype, `%`_dim{i#86326}(2)), `DEMOTE`_vcvtop__{zero#159}(`ZERO`_zero)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:795.5-795.61 - prod {{0xFD} {`%`_u32(95):Bu32}} => VCVTOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%X%`_shape(F32_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__) + prod{shape_1#33 : shape, shape_2#33 : shape, lanetype#20501 : lanetype, dim#20501 : dim, i#86777 : nat, i#86784 : nat, lanetype#20513 : lanetype, dim#20513 : dim, i#86789 : nat, i#86796 : nat, i#86770 : nat} {{0xFD} {`%`_u32{i#86770}(95):Bu32}} => `VCVTOP`_instr{shape_1#33, shape_2#33}(`%X%`_shape{lanetype#20501, dim#20501, i#86777}(`F64`_lanetype, `%`_dim{i#86784}(2)), `%X%`_shape{lanetype#20513, dim#20513, i#86789}(`F32`_lanetype, `%`_dim{i#86796}(4)), `PROMOTELOW`_vcvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:796.5-796.62 - prod {{0xFD} {`%`_u32(248):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), TRUNC_SAT_vcvtop__(S_sx, ?())) + prod{shape_1#35 : shape, shape_2#35 : shape, lanetype#20766 : lanetype, dim#20766 : dim, i#87247 : nat, i#87254 : nat, lanetype#20778 : lanetype, dim#20778 : dim, i#87259 : nat, i#87266 : nat, sx#15127 : sx, `zero?#135` : zero?, i#87240 : nat} {{0xFD} {`%`_u32{i#87240}(248):Bu32}} => `VCVTOP`_instr{shape_1#35, shape_2#35}(`%X%`_shape{lanetype#20766, dim#20766, i#87247}(`I32`_lanetype, `%`_dim{i#87254}(4)), `%X%`_shape{lanetype#20778, dim#20778, i#87259}(`F32`_lanetype, `%`_dim{i#87266}(4)), `TRUNC_SAT`_vcvtop__{sx#15127, `zero?#135`}(`S`_sx, ?())) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:797.5-797.62 - prod {{0xFD} {`%`_u32(249):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), TRUNC_SAT_vcvtop__(U_sx, ?())) + prod{shape_1#37 : shape, shape_2#37 : shape, lanetype#20941 : lanetype, dim#20941 : dim, i#87567 : nat, i#87574 : nat, lanetype#20953 : lanetype, dim#20953 : dim, i#87579 : nat, i#87586 : nat, sx#15191 : sx, `zero?#199` : zero?, i#87560 : nat} {{0xFD} {`%`_u32{i#87560}(249):Bu32}} => `VCVTOP`_instr{shape_1#37, shape_2#37}(`%X%`_shape{lanetype#20941, dim#20941, i#87567}(`I32`_lanetype, `%`_dim{i#87574}(4)), `%X%`_shape{lanetype#20953, dim#20953, i#87579}(`F32`_lanetype, `%`_dim{i#87586}(4)), `TRUNC_SAT`_vcvtop__{sx#15191, `zero?#199`}(`U`_sx, ?())) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:798.5-798.60 - prod {{0xFD} {`%`_u32(250):Bu32}} => VCVTOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(), S_sx)) + prod{shape_1#39 : shape, shape_2#39 : shape, lanetype#21116 : lanetype, dim#21116 : dim, i#87887 : nat, i#87894 : nat, lanetype#21128 : lanetype, dim#21128 : dim, i#87899 : nat, i#87906 : nat, `half?#39` : half?, sx#15225 : sx, i#87880 : nat} {{0xFD} {`%`_u32{i#87880}(250):Bu32}} => `VCVTOP`_instr{shape_1#39, shape_2#39}(`%X%`_shape{lanetype#21116, dim#21116, i#87887}(`F32`_lanetype, `%`_dim{i#87894}(4)), `%X%`_shape{lanetype#21128, dim#21128, i#87899}(`I32`_lanetype, `%`_dim{i#87906}(4)), `CONVERT`_vcvtop__{`half?#39`, sx#15225}(?(), `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:799.5-799.60 - prod {{0xFD} {`%`_u32(251):Bu32}} => VCVTOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(), U_sx)) + prod{shape_1#41 : shape, shape_2#41 : shape, lanetype#21321 : lanetype, dim#21321 : dim, i#88297 : nat, i#88304 : nat, lanetype#21333 : lanetype, dim#21333 : dim, i#88309 : nat, i#88316 : nat, `half?#73` : half?, sx#15259 : sx, i#88290 : nat} {{0xFD} {`%`_u32{i#88290}(251):Bu32}} => `VCVTOP`_instr{shape_1#41, shape_2#41}(`%X%`_shape{lanetype#21321, dim#21321, i#88297}(`F32`_lanetype, `%`_dim{i#88304}(4)), `%X%`_shape{lanetype#21333, dim#21333, i#88309}(`I32`_lanetype, `%`_dim{i#88316}(4)), `CONVERT`_vcvtop__{`half?#73`, sx#15259}(?(), `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:800.5-800.67 - prod {{0xFD} {`%`_u32(252):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), TRUNC_SAT_vcvtop__(S_sx, ?(ZERO_zero))) + prod{shape_1#43 : shape, shape_2#43 : shape, lanetype#21526 : lanetype, dim#21526 : dim, i#88707 : nat, i#88714 : nat, lanetype#21538 : lanetype, dim#21538 : dim, i#88719 : nat, i#88726 : nat, sx#15323 : sx, `zero?#263` : zero?, i#88700 : nat} {{0xFD} {`%`_u32{i#88700}(252):Bu32}} => `VCVTOP`_instr{shape_1#43, shape_2#43}(`%X%`_shape{lanetype#21526, dim#21526, i#88707}(`I32`_lanetype, `%`_dim{i#88714}(4)), `%X%`_shape{lanetype#21538, dim#21538, i#88719}(`F64`_lanetype, `%`_dim{i#88726}(2)), `TRUNC_SAT`_vcvtop__{sx#15323, `zero?#263`}(`S`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:801.5-801.67 - prod {{0xFD} {`%`_u32(253):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), TRUNC_SAT_vcvtop__(U_sx, ?(ZERO_zero))) + prod{shape_1#45 : shape, shape_2#45 : shape, lanetype#21701 : lanetype, dim#21701 : dim, i#89027 : nat, i#89034 : nat, lanetype#21713 : lanetype, dim#21713 : dim, i#89039 : nat, i#89046 : nat, sx#15387 : sx, `zero?#327` : zero?, i#89020 : nat} {{0xFD} {`%`_u32{i#89020}(253):Bu32}} => `VCVTOP`_instr{shape_1#45, shape_2#45}(`%X%`_shape{lanetype#21701, dim#21701, i#89027}(`I32`_lanetype, `%`_dim{i#89034}(4)), `%X%`_shape{lanetype#21713, dim#21713, i#89039}(`F64`_lanetype, `%`_dim{i#89046}(2)), `TRUNC_SAT`_vcvtop__{sx#15387, `zero?#327`}(`U`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:802.5-802.64 - prod {{0xFD} {`%`_u32(254):Bu32}} => VCVTOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(LOW_half), S_sx)) + prod{shape_1#47 : shape, shape_2#47 : shape, lanetype#21876 : lanetype, dim#21876 : dim, i#89347 : nat, i#89354 : nat, lanetype#21888 : lanetype, dim#21888 : dim, i#89359 : nat, i#89366 : nat, `half?#107` : half?, sx#15421 : sx, i#89340 : nat} {{0xFD} {`%`_u32{i#89340}(254):Bu32}} => `VCVTOP`_instr{shape_1#47, shape_2#47}(`%X%`_shape{lanetype#21876, dim#21876, i#89347}(`F64`_lanetype, `%`_dim{i#89354}(2)), `%X%`_shape{lanetype#21888, dim#21888, i#89359}(`I32`_lanetype, `%`_dim{i#89366}(4)), `CONVERT`_vcvtop__{`half?#107`, sx#15421}(?(`LOW`_half), `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:803.5-803.64 - prod {{0xFD} {`%`_u32(255):Bu32}} => VCVTOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(LOW_half), U_sx)) + prod{shape_1#49 : shape, shape_2#49 : shape, lanetype#22081 : lanetype, dim#22081 : dim, i#89757 : nat, i#89764 : nat, lanetype#22093 : lanetype, dim#22093 : dim, i#89769 : nat, i#89776 : nat, `half?#141` : half?, sx#15455 : sx, i#89750 : nat} {{0xFD} {`%`_u32{i#89750}(255):Bu32}} => `VCVTOP`_instr{shape_1#49, shape_2#49}(`%X%`_shape{lanetype#22081, dim#22081, i#89757}(`F64`_lanetype, `%`_dim{i#89764}(2)), `%X%`_shape{lanetype#22093, dim#22093, i#89769}(`I32`_lanetype, `%`_dim{i#89776}(4)), `CONVERT`_vcvtop__{`half?#141`, sx#15455}(?(`LOW`_half), `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:804.5-804.66 - prod {{0xFD} {`%`_u32(257):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_TRUNC_vcvtop__(S_sx, ?())) + prod{shape_1#51 : shape, shape_2#51 : shape, lanetype#22286 : lanetype, dim#22286 : dim, i#90167 : nat, i#90174 : nat, lanetype#22298 : lanetype, dim#22298 : dim, i#90179 : nat, i#90186 : nat, sx#15519 : sx, `zero?#391` : zero?, i#90160 : nat} {{0xFD} {`%`_u32{i#90160}(257):Bu32}} => `VCVTOP`_instr{shape_1#51, shape_2#51}(`%X%`_shape{lanetype#22286, dim#22286, i#90167}(`I32`_lanetype, `%`_dim{i#90174}(4)), `%X%`_shape{lanetype#22298, dim#22298, i#90179}(`F32`_lanetype, `%`_dim{i#90186}(4)), `RELAXED_TRUNC`_vcvtop__{sx#15519, `zero?#391`}(`S`_sx, ?())) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:805.5-805.66 - prod {{0xFD} {`%`_u32(258):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_TRUNC_vcvtop__(U_sx, ?())) + prod{shape_1#53 : shape, shape_2#53 : shape, lanetype#22461 : lanetype, dim#22461 : dim, i#90487 : nat, i#90494 : nat, lanetype#22473 : lanetype, dim#22473 : dim, i#90499 : nat, i#90506 : nat, sx#15583 : sx, `zero?#455` : zero?, i#90480 : nat} {{0xFD} {`%`_u32{i#90480}(258):Bu32}} => `VCVTOP`_instr{shape_1#53, shape_2#53}(`%X%`_shape{lanetype#22461, dim#22461, i#90487}(`I32`_lanetype, `%`_dim{i#90494}(4)), `%X%`_shape{lanetype#22473, dim#22473, i#90499}(`F32`_lanetype, `%`_dim{i#90506}(4)), `RELAXED_TRUNC`_vcvtop__{sx#15583, `zero?#455`}(`U`_sx, ?())) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:806.5-806.71 - prod {{0xFD} {`%`_u32(259):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_TRUNC_vcvtop__(S_sx, ?(ZERO_zero))) + prod{shape_1#55 : shape, shape_2#55 : shape, lanetype#22636 : lanetype, dim#22636 : dim, i#90807 : nat, i#90814 : nat, lanetype#22648 : lanetype, dim#22648 : dim, i#90819 : nat, i#90826 : nat, sx#15647 : sx, `zero?#519` : zero?, i#90800 : nat} {{0xFD} {`%`_u32{i#90800}(259):Bu32}} => `VCVTOP`_instr{shape_1#55, shape_2#55}(`%X%`_shape{lanetype#22636, dim#22636, i#90807}(`I32`_lanetype, `%`_dim{i#90814}(4)), `%X%`_shape{lanetype#22648, dim#22648, i#90819}(`F64`_lanetype, `%`_dim{i#90826}(2)), `RELAXED_TRUNC`_vcvtop__{sx#15647, `zero?#519`}(`S`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:807.5-807.71 - prod {{0xFD} {`%`_u32(260):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_TRUNC_vcvtop__(U_sx, ?(ZERO_zero))) + prod{shape_1#57 : shape, shape_2#57 : shape, lanetype#22811 : lanetype, dim#22811 : dim, i#91127 : nat, i#91134 : nat, lanetype#22823 : lanetype, dim#22823 : dim, i#91139 : nat, i#91146 : nat, sx#15711 : sx, `zero?#583` : zero?, i#91120 : nat} {{0xFD} {`%`_u32{i#91120}(260):Bu32}} => `VCVTOP`_instr{shape_1#57, shape_2#57}(`%X%`_shape{lanetype#22811, dim#22811, i#91127}(`I32`_lanetype, `%`_dim{i#91134}(4)), `%X%`_shape{lanetype#22823, dim#22823, i#91139}(`F64`_lanetype, `%`_dim{i#91146}(2)), `RELAXED_TRUNC`_vcvtop__{sx#15711, `zero?#583`}(`U`_sx, ?(`ZERO`_zero))) } ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec @@ -8682,7 +120241,7 @@ grammar Bexpr : expr ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bsection_(N : N, syntax en, grammar BX : en*) : en* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{len : nat, `en*` : en*} {{`%`_byte(N):Bbyte} {`%`_u32(len):Bu32} {en*{en <- `en*`}:BX}} => en*{en <- `en*`} + prod{`en*` : en*, i#91425 : nat, i#91448 : nat, len : nat} {{`%`_byte{i#91425}(N):Bbyte} {`%`_u32{i#91448}(len):Bu32} {en*{en <- `en*`}:BX}} => en*{en <- `en*`} -- if (len = 0) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec prod eps => [] @@ -8690,17 +120249,17 @@ grammar Bsection_(N : N, syntax en, grammar BX : en*) : en* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bcustom : ()* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod {{Bname} {Bbyte*{}}} => [()] + prod {{Bname} {Bbyte*{}}} => [] ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bcustomsec : () ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod Bsection_(0, syntax (), grammar Bcustom) => () + prod Bsection_(0, syntax (), grammar Bcustom) => ((), ()).1 ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btype : type ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{qt : rectype} qt:Brectype => TYPE_type(qt) + prod{rectype#1727 : rectype, qt : rectype} qt:Brectype => `TYPE`_type{rectype#1727}(qt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btypesec : type* @@ -8710,7 +120269,7 @@ grammar Btypesec : type* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bimport : import ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {nm_2:Bname} {xt:Bexterntype}} => IMPORT_import(nm_1, nm_2, xt) + prod{name#6185 : name, externtype#247 : externtype, nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {nm_2:Bname} {xt:Bexterntype}} => `IMPORT`_import{name#6185, externtype#247}(nm_1, nm_2, xt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bimportsec : import* @@ -8725,10 +120284,10 @@ grammar Bfuncsec : typeidx* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btable : table ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{tt : tabletype, ht : heaptype, at : addrtype, lim : limits} tt:Btabletype => TABLE_table(tt, [REF.NULL_instr(ht)]) - -- if (tt = `%%%`_tabletype(at, lim, REF_reftype(NULL_null?{}, ht))) + prod{tabletype#1130 : tabletype, expr#4835 : expr, tt : tabletype, heaptype#1729 : heaptype, ht : heaptype, addrtype#1433 : addrtype, limits#1433 : limits, reftype#3999 : reftype, at : addrtype, lim : limits, `null?#1675` : null?, heaptype#1741 : heaptype} tt:Btabletype => `TABLE`_table{tabletype#1130, expr#4835}(tt, [`REF.NULL`_instr{heaptype#1729}(ht)]) + -- if (tt = `%%%`_tabletype{addrtype#1433, limits#1433, reftype#3999}(at, lim, `REF`_reftype{`null?#1675`, heaptype#1741}(`NULL`_null?{}, ht))) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{tt : tabletype, e : expr} {{0x40} {0x00} {tt:Btabletype} {e:Bexpr}} => TABLE_table(tt, e) + prod{tabletype#1142 : tabletype, expr#4847 : expr, tt : tabletype, e : expr} {{0x40} {0x00} {tt:Btabletype} {e:Bexpr}} => `TABLE`_table{tabletype#1142, expr#4847}(tt, e) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btablesec : table* @@ -8738,7 +120297,7 @@ grammar Btablesec : table* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bmem : mem ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{mt : memtype} mt:Bmemtype => MEMORY_mem(mt) + prod{memtype#734 : memtype, mt : memtype} mt:Bmemtype => `MEMORY`_mem{memtype#734}(mt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bmemsec : mem* @@ -8748,7 +120307,7 @@ grammar Bmemsec : mem* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bglobal : global ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{gt : globaltype, e : expr} {{gt:Bglobaltype} {e:Bexpr}} => GLOBAL_global(gt, e) + prod{globaltype#2285 : globaltype, expr#4883 : expr, gt : globaltype, e : expr} {{gt:Bglobaltype} {e:Bexpr}} => `GLOBAL`_global{globaltype#2285, expr#4883}(gt, e) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bglobalsec : global* @@ -8758,7 +120317,7 @@ grammar Bglobalsec : global* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bexport : export ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{nm : name, xx : externidx} {{nm:Bname} {xx:Bexternidx}} => EXPORT_export(nm, xx) + prod{name#6238 : name, externidx#5797 : externidx, nm : name, xx : externidx} {{nm:Bname} {xx:Bexternidx}} => `EXPORT`_export{name#6238, externidx#5797}(nm, xx) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bexportsec : export* @@ -8768,7 +120327,7 @@ grammar Bexportsec : export* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bstart : start* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{x : idx} x:Bfuncidx => [START_start(x)] + prod{funcidx#3179 : funcidx, x : idx} x:Bfuncidx => [`START`_start{funcidx#3179}(x)] ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec syntax startopt = start* @@ -8781,26 +120340,26 @@ grammar Bstartsec : start? ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Belemkind : reftype ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod 0x00 => REF_reftype(?(NULL_null), FUNC_heaptype) + prod{`null?#1687` : null?, heaptype#1753 : heaptype} 0x00 => `REF`_reftype{`null?#1687`, heaptype#1753}(?(`NULL`_null), `FUNC`_heaptype) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Belem : elem ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{e_o : expr, `y*` : idx*} {{`%`_u32(0):Bu32} {e_o:Bexpr} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => ELEM_elem(REF_reftype(?(), FUNC_heaptype), [REF.FUNC_instr(y)*{y <- `y*`}], ACTIVE_elemmode(`%`_tableidx(0), e_o)) + prod{reftype#4023 : reftype, `expr*#3307` : expr*, elemmode#3307 : elemmode, `null?#1699` : null?, heaptype#1765 : heaptype, `funcidx#3213*` : funcidx*, `y*` : idx*, tableidx#144 : tableidx, expr#4909 : expr, i#91655 : nat, e_o : expr, i#91592 : nat} {{`%`_u32{i#91592}(0):Bu32} {e_o:Bexpr} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem{reftype#4023, `expr*#3307`, elemmode#3307}(`REF`_reftype{`null?#1699`, heaptype#1765}(?(), `FUNC`_heaptype), [`REF.FUNC`_instr{funcidx#3213}(y)*{funcidx#3213 <- `funcidx#3213*`, y <- `y*`}], `ACTIVE`_elemmode{tableidx#144, expr#4909}(`%`_tableidx{i#91655}(0), e_o)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{rt : reftype, `y*` : idx*} {{`%`_u32(1):Bu32} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => ELEM_elem(rt, [REF.FUNC_instr(y)*{y <- `y*`}], PASSIVE_elemmode) + prod{reftype#4035 : reftype, `expr*#3319` : expr*, elemmode#3319 : elemmode, rt : reftype, `funcidx#3215*` : funcidx*, `y*` : idx*, i#91678 : nat} {{`%`_u32{i#91678}(1):Bu32} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem{reftype#4035, `expr*#3319`, elemmode#3319}(rt, [`REF.FUNC`_instr{funcidx#3215}(y)*{funcidx#3215 <- `funcidx#3215*`, y <- `y*`}], `PASSIVE`_elemmode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{x : idx, e : expr, rt : reftype, `y*` : idx*} {{`%`_u32(2):Bu32} {x:Btableidx} {e:Bexpr} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => ELEM_elem(rt, [REF.FUNC_instr(y)*{y <- `y*`}], ACTIVE_elemmode(x, e)) + prod{reftype#4047 : reftype, `expr*#3331` : expr*, elemmode#3331 : elemmode, rt : reftype, `funcidx#3217*` : funcidx*, `y*` : idx*, tableidx#146 : tableidx, expr#4911 : expr, x : idx, e : expr, i#91742 : nat} {{`%`_u32{i#91742}(2):Bu32} {x:Btableidx} {e:Bexpr} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem{reftype#4047, `expr*#3331`, elemmode#3331}(rt, [`REF.FUNC`_instr{funcidx#3217}(y)*{funcidx#3217 <- `funcidx#3217*`, y <- `y*`}], `ACTIVE`_elemmode{tableidx#146, expr#4911}(x, e)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{rt : reftype, `y*` : idx*} {{`%`_u32(3):Bu32} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => ELEM_elem(rt, [REF.FUNC_instr(y)*{y <- `y*`}], DECLARE_elemmode) + prod{reftype#4059 : reftype, `expr*#3343` : expr*, elemmode#3343 : elemmode, rt : reftype, `funcidx#3219*` : funcidx*, `y*` : idx*, i#91837 : nat} {{`%`_u32{i#91837}(3):Bu32} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem{reftype#4059, `expr*#3343`, elemmode#3343}(rt, [`REF.FUNC`_instr{funcidx#3219}(y)*{funcidx#3219 <- `funcidx#3219*`, y <- `y*`}], `DECLARE`_elemmode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{e_O : expr, `e*` : expr*} {{`%`_u32(4):Bu32} {e_O:Bexpr} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => ELEM_elem(REF_reftype(?(NULL_null), FUNC_heaptype), e*{e <- `e*`}, ACTIVE_elemmode(`%`_tableidx(0), e_O)) + prod{reftype#4071 : reftype, `expr*#3355` : expr*, elemmode#3355 : elemmode, `null?#1747` : null?, heaptype#1813 : heaptype, `e*` : expr*, tableidx#148 : tableidx, expr#4913 : expr, i#91925 : nat, e_O : expr, i#91901 : nat} {{`%`_u32{i#91901}(4):Bu32} {e_O:Bexpr} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem{reftype#4071, `expr*#3355`, elemmode#3355}(`REF`_reftype{`null?#1747`, heaptype#1813}(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#148, expr#4913}(`%`_tableidx{i#91925}(0), e_O)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{rt : reftype, `e*` : expr*} {{`%`_u32(5):Bu32} {rt:Breftype} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => ELEM_elem(rt, e*{e <- `e*`}, PASSIVE_elemmode) + prod{reftype#4083 : reftype, `expr*#3367` : expr*, elemmode#3367 : elemmode, rt : reftype, `e*` : expr*, i#91948 : nat} {{`%`_u32{i#91948}(5):Bu32} {rt:Breftype} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem{reftype#4083, `expr*#3367`, elemmode#3367}(rt, e*{e <- `e*`}, `PASSIVE`_elemmode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{x : idx, e_O : expr, `e*` : expr*} {{`%`_u32(6):Bu32} {x:Btableidx} {e_O:Bexpr} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => ELEM_elem(REF_reftype(?(NULL_null), FUNC_heaptype), e*{e <- `e*`}, ACTIVE_elemmode(x, e_O)) + prod{reftype#4095 : reftype, `expr*#3379` : expr*, elemmode#3379 : elemmode, `null?#1771` : null?, heaptype#1837 : heaptype, `e*` : expr*, tableidx#150 : tableidx, expr#4915 : expr, x : idx, e_O : expr, i#91973 : nat} {{`%`_u32{i#91973}(6):Bu32} {x:Btableidx} {e_O:Bexpr} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem{reftype#4095, `expr*#3379`, elemmode#3379}(`REF`_reftype{`null?#1771`, heaptype#1837}(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#150, expr#4915}(x, e_O)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{rt : reftype, `e*` : expr*} {{`%`_u32(7):Bu32} {rt:Breftype} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => ELEM_elem(rt, e*{e <- `e*`}, DECLARE_elemmode) + prod{reftype#4107 : reftype, `expr*#3391` : expr*, elemmode#3391 : elemmode, rt : reftype, `e*` : expr*, i#92029 : nat} {{`%`_u32{i#92029}(7):Bu32} {rt:Breftype} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem{reftype#4107, `expr*#3391`, elemmode#3391}(rt, e*{e <- `e*`}, `DECLARE`_elemmode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Belemsec : elem* @@ -8813,7 +120372,7 @@ syntax code = (local*, expr) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Blocals : local* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{n : n, t : valtype} {{`%`_u32(n):Bu32} {t:Bvaltype}} => LOCAL_local(t)^n{} + prod{t : valtype, n : n, `valtype#1033*` : valtype*, i#92056 : nat} {{`%`_u32{i#92056}(n):Bu32} {t:Bvaltype}} => `LOCAL`_local{valtype#1033}(t)^n{valtype#1033 <- `valtype#1033*`} ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bfunc : code @@ -8824,7 +120383,7 @@ grammar Bfunc : code ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bcode : code ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{len : nat, code : code} {{`%`_u32(len):Bu32} {code:Bfunc}} => code + prod{code : code, i#92081 : nat, len : nat} {{`%`_u32{i#92081}(len):Bu32} {code:Bfunc}} => code -- if (len = 0) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec @@ -8835,11 +120394,11 @@ grammar Bcodesec : code* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bdata : data ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{e : expr, `b*` : byte*} {{`%`_u32(0):Bu32} {e:Bexpr} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => DATA_data(b*{b <- `b*`}, ACTIVE_datamode(`%`_memidx(0), e)) + prod{`byte*#2217` : byte*, datamode#2181 : datamode, `b*` : byte*, memidx#272 : memidx, expr#4917 : expr, i#92154 : nat, e : expr, i#92106 : nat} {{`%`_u32{i#92106}(0):Bu32} {e:Bexpr} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => `DATA`_data{`byte*#2217`, datamode#2181}(b*{b <- `b*`}, `ACTIVE`_datamode{memidx#272, expr#4917}(`%`_memidx{i#92154}(0), e)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`b*` : byte*} {{`%`_u32(1):Bu32} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => DATA_data(b*{b <- `b*`}, PASSIVE_datamode) + prod{`byte*#2229` : byte*, datamode#2193 : datamode, `b*` : byte*, i#92177 : nat} {{`%`_u32{i#92177}(1):Bu32} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => `DATA`_data{`byte*#2229`, datamode#2193}(b*{b <- `b*`}, `PASSIVE`_datamode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{x : idx, e : expr, `b*` : byte*} {{`%`_u32(2):Bu32} {x:Bmemidx} {e:Bexpr} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => DATA_data(b*{b <- `b*`}, ACTIVE_datamode(x, e)) + prod{`byte*#2241` : byte*, datamode#2205 : datamode, `b*` : byte*, memidx#274 : memidx, expr#4919 : expr, x : idx, e : expr, i#92226 : nat} {{`%`_u32{i#92226}(2):Bu32} {x:Bmemidx} {e:Bexpr} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => `DATA`_data{`byte*#2241`, datamode#2205}(b*{b <- `b*`}, `ACTIVE`_datamode{memidx#274, expr#4919}(x, e)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bdatasec : data* @@ -8849,7 +120408,7 @@ grammar Bdatasec : data* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bdatacnt : u32* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{n : n} `%`_u32(n):Bu32 => [`%`_u32(n)] + prod{i#92330 : nat, n : n, i#92308 : nat} `%`_u32{i#92308}(n):Bu32 => [`%`_u32{i#92330}(n)] ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec syntax nopt = u32* @@ -8862,7 +120421,7 @@ grammar Bdatacntsec : u32? ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btag : tag ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{jt : tagtype} jt:Btagtype => TAG_tag(jt) + prod{tagtype#336 : tagtype, jt : tagtype} jt:Btagtype => `TAG`_tag{tagtype#336}(jt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btagsec : tag* @@ -8872,27 +120431,27 @@ grammar Btagsec : tag* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bmagic : () ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod {{0x00} {0x61} {0x73} {0x6D}} => () + prod {{0x00} {0x61} {0x73} {0x6D}} => ((), ()).1 ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bversion : () ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod {{0x01} {0x00} {0x00} {0x00}} => () + prod {{0x01} {0x00} {0x00} {0x00}} => ((), ()).1 ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bmodule : module ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`type*` : type*, `import*` : import*, `typeidx*` : typeidx*, `table*` : table*, `mem*` : mem*, `tag*` : tag*, `global*` : global*, `export*` : export*, `start?` : start?, `elem*` : elem*, `n?` : n?, `local**` : local**, `expr*` : expr*, `data*` : data*, `func*` : func*} {{Bmagic} {Bversion} {Bcustomsec*{}} {type*{type <- `type*`}:Btypesec} {Bcustomsec*{}} {import*{import <- `import*`}:Bimportsec} {Bcustomsec*{}} {typeidx*{typeidx <- `typeidx*`}:Bfuncsec} {Bcustomsec*{}} {table*{table <- `table*`}:Btablesec} {Bcustomsec*{}} {mem*{mem <- `mem*`}:Bmemsec} {Bcustomsec*{}} {tag*{tag <- `tag*`}:Btagsec} {Bcustomsec*{}} {global*{global <- `global*`}:Bglobalsec} {Bcustomsec*{}} {export*{export <- `export*`}:Bexportsec} {Bcustomsec*{}} {start?{start <- `start?`}:Bstartsec} {Bcustomsec*{}} {elem*{elem <- `elem*`}:Belemsec} {Bcustomsec*{}} {`%`_u32(n)?{n <- `n?`}:Bdatacntsec} {Bcustomsec*{}} {(local*{local <- `local*`}, expr)*{expr <- `expr*`, `local*` <- `local**`}:Bcodesec} {Bcustomsec*{}} {data*{data <- `data*`}:Bdatasec} {Bcustomsec*{}}} => MODULE_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}) + prod{`type*#143` : type*, `import*#143` : import*, `tag*#143` : tag*, `global*#167` : global*, `mem*#167` : mem*, `table*#167` : table*, `func*#143` : func*, `data*#143` : data*, `elem*#167` : elem*, `start?#143` : start?, `export*#143` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `typeidx*` : typeidx*, `i#92509?` : nat?, `n?` : n?, `expr*` : expr*, `local**` : local**, `expr#5253*` : expr*, `local*#1601*` : local**, `typeidx#2117*` : typeidx*} {Bmagic Bversion {Bcustomsec*{}} {type*{type <- `type*`}:Btypesec} {Bcustomsec*{}} {import*{import <- `import*`}:Bimportsec} {Bcustomsec*{}} {typeidx*{typeidx <- `typeidx*`}:Bfuncsec} {Bcustomsec*{}} {table*{table <- `table*`}:Btablesec} {Bcustomsec*{}} {mem*{mem <- `mem*`}:Bmemsec} {Bcustomsec*{}} {tag*{tag <- `tag*`}:Btagsec} {Bcustomsec*{}} {global*{global <- `global*`}:Bglobalsec} {Bcustomsec*{}} {export*{export <- `export*`}:Bexportsec} {Bcustomsec*{}} {start?{start <- `start?`}:Bstartsec} {Bcustomsec*{}} {elem*{elem <- `elem*`}:Belemsec} {Bcustomsec*{}} {`%`_u32{i#92509}(n)?{i#92509 <- `i#92509?`, n <- `n?`}:Bdatacntsec} {Bcustomsec*{}} {(local*{local <- `local*`}, expr)*{expr <- `expr*`, `local*` <- `local**`}:Bcodesec} {Bcustomsec*{}} {data*{data <- `data*`}:Bdatasec} {Bcustomsec*{}}} => `MODULE`_module{`type*#143`, `import*#143`, `tag*#143`, `global*#167`, `mem*#167`, `table*#167`, `func*#143`, `data*#143`, `elem*#167`, `start?#143`, `export*#143`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}) -- (if (n = |data*{data <- `data*`}|))?{n <- `n?`} -- if ((n?{n <- `n?`} =/= ?()) \/ ($dataidx_funcs(func*{func <- `func*`}) = [])) - -- (if (func = FUNC_func(typeidx, local*{local <- `local*`}, expr)))*{expr <- `expr*`, func <- `func*`, `local*` <- `local**`, typeidx <- `typeidx*`} + -- (if (func = `FUNC`_func{typeidx#2117, `local*#1601`, expr#5253}(typeidx, local*{local <- `local*`}, expr)))*{expr <- `expr*`, expr#5253 <- `expr#5253*`, func <- `func*`, `local*` <- `local**`, `local*#1601` <- `local*#1601*`, typeidx <- `typeidx*`, typeidx#2117 <- `typeidx#2117*`} ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec grammar Tchar : char ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec - prod{`` : nat} ``:(0x00 | ... | 0xD7FF) => `%`_char(``) + prod{i#92557 : nat, `` : nat} ``:(0x00 | ... | 0xD7FF) => `%`_char{i#92557}(``) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec - prod{`` : nat} ``:(0xE000 | ... | 0x10FFFF) => `%`_char(``) + prod{i#92565 : nat, `` : nat} ``:(0xE000 | ... | 0x10FFFF) => `%`_char{i#92565}(``) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec grammar Tsource : () @@ -8917,57 +120476,57 @@ grammar TfNplain : () ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tidchar : char ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:(0x30 | ... | 0x39) => `%`_char(``) + prod{i#93304 : nat, `` : nat} ``:(0x30 | ... | 0x39) => `%`_char{i#93304}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:(0x41 | ... | 0x5A) => `%`_char(``) + prod{i#93312 : nat, `` : nat} ``:(0x41 | ... | 0x5A) => `%`_char{i#93312}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:(0x61 | ... | 0x7A) => `%`_char(``) + prod{i#93320 : nat, `` : nat} ``:(0x61 | ... | 0x7A) => `%`_char{i#93320}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x21 => `%`_char(``) + prod{i#93328 : nat, `` : nat} ``:0x21 => `%`_char{i#93328}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x23 => `%`_char(``) + prod{i#93336 : nat, `` : nat} ``:0x23 => `%`_char{i#93336}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x24 => `%`_char(``) + prod{i#93344 : nat, `` : nat} ``:0x24 => `%`_char{i#93344}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x25 => `%`_char(``) + prod{i#93352 : nat, `` : nat} ``:0x25 => `%`_char{i#93352}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x26 => `%`_char(``) + prod{i#93360 : nat, `` : nat} ``:0x26 => `%`_char{i#93360}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x27 => `%`_char(``) + prod{i#93368 : nat, `` : nat} ``:0x27 => `%`_char{i#93368}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x2A => `%`_char(``) + prod{i#93376 : nat, `` : nat} ``:0x2A => `%`_char{i#93376}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x2B => `%`_char(``) + prod{i#93384 : nat, `` : nat} ``:0x2B => `%`_char{i#93384}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x2D => `%`_char(``) + prod{i#93392 : nat, `` : nat} ``:0x2D => `%`_char{i#93392}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x2E => `%`_char(``) + prod{i#93400 : nat, `` : nat} ``:0x2E => `%`_char{i#93400}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x2F => `%`_char(``) + prod{i#93408 : nat, `` : nat} ``:0x2F => `%`_char{i#93408}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x3A => `%`_char(``) + prod{i#93416 : nat, `` : nat} ``:0x3A => `%`_char{i#93416}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x3C => `%`_char(``) + prod{i#93424 : nat, `` : nat} ``:0x3C => `%`_char{i#93424}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x3D => `%`_char(``) + prod{i#93432 : nat, `` : nat} ``:0x3D => `%`_char{i#93432}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x3E => `%`_char(``) + prod{i#93440 : nat, `` : nat} ``:0x3E => `%`_char{i#93440}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x3F => `%`_char(``) + prod{i#93448 : nat, `` : nat} ``:0x3F => `%`_char{i#93448}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x40 => `%`_char(``) + prod{i#93456 : nat, `` : nat} ``:0x40 => `%`_char{i#93456}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x5C => `%`_char(``) + prod{i#93464 : nat, `` : nat} ``:0x5C => `%`_char{i#93464}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x5E => `%`_char(``) + prod{i#93472 : nat, `` : nat} ``:0x5E => `%`_char{i#93472}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x5F => `%`_char(``) + prod{i#93480 : nat, `` : nat} ``:0x5F => `%`_char{i#93480}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x60 => `%`_char(``) + prod{i#93488 : nat, `` : nat} ``:0x60 => `%`_char{i#93488}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x7C => `%`_char(``) + prod{i#93496 : nat, `` : nat} ``:0x7C => `%`_char{i#93496}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : nat} ``:0x7E => `%`_char(``) + prod{i#93504 : nat, `` : nat} ``:0x7E => `%`_char{i#93504}(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tdigit : nat @@ -9035,22 +120594,22 @@ grammar Thexnum : nat ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tstringchar : char ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{c : char} c:Tchar => c - -- if ((((c!`%`_char.0 >= 32) /\ (c!`%`_char.0 =/= 127)) /\ (c =/= `%`_char(34))) /\ (c =/= `%`_char(92))) + prod{c : char, i#93014 : nat, i#93016 : nat, i#93024 : nat, i#93034 : nat} c:Tchar => c + -- if ((((c!`%`_char{i#93014}.0 >= 32) /\ (c!`%`_char{i#93016}.0 =/= 127)) /\ (c =/= `%`_char{i#93024}(34))) /\ (c =/= `%`_char{i#93034}(92))) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod "\\t" => `%`_char(9) + prod{i#93044 : nat} "\\t" => `%`_char{i#93044}(9) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod "\\n" => `%`_char(10) + prod{i#93052 : nat} "\\n" => `%`_char{i#93052}(10) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod "\\r" => `%`_char(13) + prod{i#93060 : nat} "\\r" => `%`_char{i#93060}(13) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod "\\\"" => `%`_char(34) + prod{i#93068 : nat} "\\\"" => `%`_char{i#93068}(34) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod "\\'" => `%`_char(39) + prod{i#93076 : nat} "\\'" => `%`_char{i#93076}(39) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod "\\\\" => `%`_char(92) + prod{i#93084 : nat} "\\\\" => `%`_char{i#93084}(92) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{n : n} {{"\\u{"} {n:Thexnum} {"}"}} => `%`_char(n) + prod{i#93092 : nat, n : n} {{"\\u{"} {n:Thexnum} {"}"}} => `%`_char{i#93092}(n) -- if ((n < 55296) \/ ((59392 <= n) /\ (n < 1114112))) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec @@ -9058,7 +120617,7 @@ grammar Tstringelem : byte* ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec prod{c : char} c:Tstringchar => $utf8([c]) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{h_1 : nat, h_2 : nat} {{"\\"} {h_1:Thexdigit} {h_2:Thexdigit}} => [`%`_byte(((16 * h_1) + h_2))] + prod{i#93132 : nat, h_1 : nat, h_2 : nat} {{"\\"} {h_1:Thexdigit} {h_2:Thexdigit}} => [`%`_byte{i#93132}(((16 * h_1) + h_2))] ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tstring : byte* @@ -9069,15 +120628,15 @@ grammar Tstring : byte* ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tname : name ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`b*` : byte*, `c*` : char*} b*{b <- `b*`}:Tstring => `%`_name(c*{c <- `c*`}) + prod{`char*#207` : char*, `c*` : char*, `b*` : byte*} b*{b <- `b*`}:Tstring => `%`_name{`char*#207`}(c*{c <- `c*`}) -- if (b*{b <- `b*`} = $utf8(c*{c <- `c*`})) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tid : name ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`c*` : char*} {{"$"} {c*{c <- `c*`}:Tidchar+{}}} => `%`_name(c*{c <- `c*`}) + prod{`char*#213` : char*, `c*` : char*} {{"$"} {c*{c <- `c*`}:Tidchar+{}}} => `%`_name{`char*#213`}(c*{c <- `c*`}) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`c*` : char*} {{"$"} {`%`_name(c*{c <- `c*`}):Tname}} => `%`_name(c*{c <- `c*`}) + prod{`char*#225` : char*, `c*` : char*, `char*#219` : char*} {{"$"} {`%`_name{`char*#219`}(c*{c <- `c*`}):Tname}} => `%`_name{`char*#225`}(c*{c <- `c*`}) -- if (|c*{c <- `c*`}| > 0) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec @@ -9129,14 +120688,14 @@ grammar Tblockcomment : () ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec:60.1-64.18 grammar Tblockchar : () ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec:61.5-61.47 - prod{`` : char, c : char} ``:c:Tchar => (``, ()).1 - -- if ((c =/= `%`_char(59)) /\ (c =/= `%`_char(40))) + prod{`` : char, c : char, i#92625 : nat, i#92635 : nat} ``:c:Tchar => (``, ()).1 + -- if ((c =/= `%`_char{i#92625}(59)) /\ (c =/= `%`_char{i#92635}(40))) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec:62.5-62.47 - prod{`` : (), c : char} ``:{{";"+{}} {c:Tchar}} => (``, ()).1 - -- if ((c =/= `%`_char(59)) /\ (c =/= `%`_char(41))) + prod{`` : (), c : char, i#92657 : nat, i#92667 : nat} ``:{{";"+{}} {c:Tchar}} => (``, ()).1 + -- if ((c =/= `%`_char{i#92657}(59)) /\ (c =/= `%`_char{i#92667}(41))) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec:63.5-63.47 - prod{`` : (), c : char} ``:{{"("+{}} {c:Tchar}} => (``, ()).1 - -- if ((c =/= `%`_char(59)) /\ (c =/= `%`_char(40))) + prod{`` : (), c : char, i#92689 : nat, i#92699 : nat} ``:{{"("+{}} {c:Tchar}} => (``, ()).1 + -- if ((c =/= `%`_char{i#92689}(59)) /\ (c =/= `%`_char{i#92699}(40))) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec:64.5-64.18 prod{`` : ()} ``:Tblockcomment => (``, ()).1 } @@ -9149,8 +120708,8 @@ grammar Teof : () ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec grammar Tlinechar : () ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec - prod{`` : char, c : char} ``:c:Tchar => (``, ()).1 - -- if ((c!`%`_char.0 =/= 10) /\ (c!`%`_char.0 =/= 13)) + prod{`` : char, c : char, i#92597 : nat, i#92599 : nat} ``:c:Tchar => (``, ()).1 + -- if ((c!`%`_char{i#92597}.0 =/= 10) /\ (c!`%`_char{i#92599}.0 =/= 13)) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec grammar Tnewline : () @@ -9217,24 +120776,24 @@ grammar Tnum : nat ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar TuN(N : N) : uN(N) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{n : n} n:Tnum => `%`_uN(n) + prod{i#92715 : nat, n : n} n:Tnum => `%`_uN{i#92715}(n) -- if (n < (2 ^ N)) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{n : n} {{"0x"} {n:Thexnum}} => `%`_uN(n) + prod{i#92723 : nat, n : n} {{"0x"} {n:Thexnum}} => `%`_uN{i#92723}(n) -- if (n < (2 ^ N)) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar TsN(N : N) : sN(N) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{s : int, n : n} {{s:Tsign} {`%`_uN(n):TuN(N)}} => `%`_sN((s * (n : nat <:> int))) + prod{i#92739 : int, s : int, n : n, i#92731 : nat} {{s:Tsign} {`%`_uN{i#92731}(n):TuN(N)}} => `%`_sN{i#92739}((s * (n : nat <:> int))) -- if ((- ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) <= (s * (n : nat <:> int))) /\ ((s * (n : nat <:> int)) < ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar TiN(N : N) : iN(N) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{n : n} `%`_uN(n):TuN(N) => `%`_iN(n) + prod{i#92755 : nat, n : n, i#92747 : nat} `%`_uN{i#92747}(n):TuN(N) => `%`_iN{i#92755}(n) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i : sN(N)} i:TsN(N) => `%`_iN($inv_signed_(N, i!`%`_sN.0)) + prod{i#92771 : nat, i : sN(N), i#92769 : int} i:TsN(N) => `%`_iN{i#92771}($inv_signed_(N, i!`%`_sN{i#92769}.0)) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec rec { @@ -9289,24 +120848,24 @@ grammar Thexfloat : rat grammar TfNmag(N : N) : fNmag(N) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec prod{q : rat} q:Tfloat => $ieee_(N, q) - -- if ($ieee_(N, q) =/= INF_fNmag) + -- if ($ieee_(N, q) =/= `INF`_fNmag) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec prod{q : rat} q:Thexfloat => $ieee_(N, q) - -- if ($ieee_(N, q) =/= INF_fNmag) + -- if ($ieee_(N, q) =/= `INF`_fNmag) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod "inf" => INF_fNmag + prod "inf" => `INF`_fNmag ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod "nan" => NAN_fNmag($canon_(N)) + prod{m#7 : m} "nan" => `NAN`_fNmag{m#7}($canon_(N)) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{n : n} {{"nan:0x"} {n:Thexnum}} => NAN_fNmag(n) + prod{m#9 : m, n : n} {{"nan:0x"} {n:Thexnum}} => `NAN`_fNmag{m#9}(n) -- if ((1 <= n) /\ (n < (2 ^ $signif(N)))) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar TfN(N : N) : fN(N) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{q : fNmag(N)} {{+ (1 : nat <:> int):Tsign} {q:TfNmag(N)}} => POS_fN(q) + prod{q : fNmag(N)} {{+ (1 : nat <:> int):Tsign} {q:TfNmag(N)}} => `POS`_fN(q) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{q : fNmag(N)} {{- (1 : nat <:> int):Tsign} {q:TfNmag(N)}} => NEG_fN(q) + prod{q : fNmag(N)} {{- (1 : nat <:> int):Tsign} {q:TfNmag(N)}} => `NEG`_fN(q) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tu8 : u8 @@ -9367,18 +120926,18 @@ grammar Tlist(syntax el, grammar TX : el) : el* ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec syntax idctxt = { - TYPES{`name?*` : name?*} name?*, - TAGS{`name?*` : name?*} name?*, - GLOBALS{`name?*` : name?*} name?*, - MEMS{`name?*` : name?*} name?*, - TABLES{`name?*` : name?*} name?*, - FUNCS{`name?*` : name?*} name?*, - DATAS{`name?*` : name?*} name?*, - ELEMS{`name?*` : name?*} name?*, - LOCALS{`name?*` : name?*} name?*, - LABELS{`name?*` : name?*} name?*, - FIELDS{`name?**` : name?**} name?**, - TYPEDEFS{`deftype?*` : deftype?*} deftype?* + `TYPES`{`name?*` : name?*} name?*, + `TAGS`{`name?*` : name?*} name?*, + `GLOBALS`{`name?*` : name?*} name?*, + `MEMS`{`name?*` : name?*} name?*, + `TABLES`{`name?*` : name?*} name?*, + `FUNCS`{`name?*` : name?*} name?*, + `DATAS`{`name?*` : name?*} name?*, + `ELEMS`{`name?*` : name?*} name?*, + `LOCALS`{`name?*` : name?*} name?*, + `LABELS`{`name?*` : name?*} name?*, + `FIELDS`{`name?**` : name?**} name?**, + `TYPEDEFS`{`deftype?*` : deftype?*} deftype?* } ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec @@ -9390,164 +120949,164 @@ rec { ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec:155.1-155.56 def $concat_idctxt(idctxt*) : idctxt ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec:156.1-156.29 - def $concat_idctxt([]) = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []} - ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec:157.1-157.52 - def $concat_idctxt{I : I, I' : I}([I I']) = I +++ $concat_idctxt(I'*{}) + def $concat_idctxt{`name?*#1` : name?*, `name?*#2` : name?*, `name?*#3` : name?*, `name?*#4` : name?*, `name?*#5` : name?*, `name?*#6` : name?*, `name?*#7` : name?*, `name?*#8` : name?*, `name?*#9` : name?*, `name?*#10` : name?*, `name?**#1` : name?**, `deftype?*#1` : deftype?*}([]) = {`TYPES`{`name?*#1`} [], `TAGS`{`name?*#2`} [], `GLOBALS`{`name?*#3`} [], `MEMS`{`name?*#4`} [], `TABLES`{`name?*#5`} [], `FUNCS`{`name?*#6`} [], `DATAS`{`name?*#7`} [], `ELEMS`{`name?*#8`} [], `LOCALS`{`name?*#9`} [], `LABELS`{`name?*#10`} [], `FIELDS`{`name?**#1`} [], `TYPEDEFS`{`deftype?*#1`} []} + ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec:157.1-157.53 + def $concat_idctxt{I : I, `I'*` : I*}([I] ++ I'*{I' <- `I'*`}) = I +++ $concat_idctxt(I'*{I' <- `I'*`}) } ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec relation Idctxt_ok: `|-%:OK`(idctxt) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - rule _{I : I, `field**` : char**}: + rule _{I : I, `name?*#40` : name?*, `name?*#70` : name?*, `name?*#100` : name?*, `name?*#130` : name?*, `name?*#160` : name?*, `name?*#190` : name?*, `name?*#220` : name?*, `name?*#250` : name?*, `name?*#280` : name?*, `name?*#310` : name?*, `char*#743*` : char**, `field**` : char**, `char*#761*` : char**, `name?**#2` : name?**}: `|-%:OK`(I) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.TYPES_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.TAGS_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.GLOBALS_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.MEMS_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.TABLES_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.FUNCS_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.DATAS_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.ELEMS_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.LOCALS_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.LABELS_I)) - -- (if $disjoint_(syntax name, $concatopt_(syntax name, [?(`%`_name(field*{field <- `field*`}))])))*{`field*` <- `field**`} - -- if ([?(`%`_name(field*{field <- `field*`}))*{`field*` <- `field**`}] = I.FIELDS_I) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`TYPES`_I{`name?*#40`})) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`TAGS`_I{`name?*#70`})) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`GLOBALS`_I{`name?*#100`})) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`MEMS`_I{`name?*#130`})) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`TABLES`_I{`name?*#160`})) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`FUNCS`_I{`name?*#190`})) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`DATAS`_I{`name?*#220`})) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`ELEMS`_I{`name?*#250`})) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`LOCALS`_I{`name?*#280`})) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`LABELS`_I{`name?*#310`})) + -- (if $disjoint_(syntax name, $concatopt_(syntax name, [?(`%`_name{`char*#743`}(field*{field <- `field*`}))])))*{`char*#743` <- `char*#743*`, `field*` <- `field**`} + -- if ([?(`%`_name{`char*#761`}(field*{field <- `field*`}))*{`char*#761` <- `char*#761*`, `field*` <- `field**`}] = I.`FIELDS`_I{`name?**#2`}) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tidx_(ids : name?*) : idx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec prod{x : idx} x:Tu32 => x ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{id : name, x : idx} id:Tid => x - -- if (ids[x!`%`_idx.0] = ?(id)) + prod{x : idx, id : name, i#94485 : nat} id:Tid => x + -- if (ids[x!`%`_idx{i#94485}.0] = ?(id)) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Ttypeidx_(I : I) : typeidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.TYPES_I) => `` + prod{`` : idx, `name?*#322` : name?*} ``:Tidx_(I.`TYPES`_I{`name?*#322`}) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Ttagidx_(I : I) : tagidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.TAGS_I) => `` + prod{`` : idx, `name?*#334` : name?*} ``:Tidx_(I.`TAGS`_I{`name?*#334`}) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tglobalidx_(I : I) : globalidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.GLOBALS_I) => `` + prod{`` : idx, `name?*#346` : name?*} ``:Tidx_(I.`GLOBALS`_I{`name?*#346`}) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tmemidx_(I : I) : memidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.MEMS_I) => `` + prod{`` : idx, `name?*#358` : name?*} ``:Tidx_(I.`MEMS`_I{`name?*#358`}) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Ttableidx_(I : I) : tableidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.TABLES_I) => `` + prod{`` : idx, `name?*#370` : name?*} ``:Tidx_(I.`TABLES`_I{`name?*#370`}) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tfuncidx_(I : I) : funcidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.FUNCS_I) => `` + prod{`` : idx, `name?*#382` : name?*} ``:Tidx_(I.`FUNCS`_I{`name?*#382`}) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tdataidx_(I : I) : dataidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.DATAS_I) => `` + prod{`` : idx, `name?*#394` : name?*} ``:Tidx_(I.`DATAS`_I{`name?*#394`}) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Telemidx_(I : I) : elemidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.ELEMS_I) => `` + prod{`` : idx, `name?*#406` : name?*} ``:Tidx_(I.`ELEMS`_I{`name?*#406`}) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tlocalidx_(I : I) : localidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.LOCALS_I) => `` + prod{`` : idx, `name?*#418` : name?*} ``:Tidx_(I.`LOCALS`_I{`name?*#418`}) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tlabelidx_(I : I) : labelidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.LABELS_I) => `` + prod{`` : idx, `name?*#430` : name?*} ``:Tidx_(I.`LABELS`_I{`name?*#430`}) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tfieldidx__(I : I, x : idx) : fieldidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.FIELDS_I[x!`%`_idx.0]) => `` + prod{`` : idx, `name?**#14` : name?**, i#95162 : nat} ``:Tidx_(I.`FIELDS`_I{`name?**#14`}[x!`%`_idx{i#95162}.0]) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Texternidx_(I : I) : externidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{x : idx} {{"("} {"tag"} {x:Ttagidx_(I)} {")"}} => TAG_externidx(x) + prod{tagidx#27 : tagidx, x : idx} {{"("} {"tag"} {x:Ttagidx_(I)} {")"}} => `TAG`_externidx{tagidx#27}(x) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{x : idx} {{"("} {"global"} {x:Tglobalidx_(I)} {")"}} => GLOBAL_externidx(x) + prod{globalidx#29 : globalidx, x : idx} {{"("} {"global"} {x:Tglobalidx_(I)} {")"}} => `GLOBAL`_externidx{globalidx#29}(x) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{x : idx} {{"("} {"memory"} {x:Tmemidx_(I)} {")"}} => MEM_externidx(x) + prod{memidx#276 : memidx, x : idx} {{"("} {"memory"} {x:Tmemidx_(I)} {")"}} => `MEM`_externidx{memidx#276}(x) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{x : idx} {{"("} {"table"} {x:Ttableidx_(I)} {")"}} => TABLE_externidx(x) + prod{tableidx#152 : tableidx, x : idx} {{"("} {"table"} {x:Ttableidx_(I)} {")"}} => `TABLE`_externidx{tableidx#152}(x) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{x : idx} {{"("} {"func"} {x:Tfuncidx_(I)} {")"}} => FUNC_externidx(x) + prod{funcidx#3381 : funcidx, x : idx} {{"("} {"func"} {x:Tfuncidx_(I)} {")"}} => `FUNC`_externidx{funcidx#3381}(x) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tnumtype : numtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i32" => I32_numtype + prod "i32" => `I32`_numtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i64" => I64_numtype + prod "i64" => `I64`_numtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "f32" => F32_numtype + prod "f32" => `F32`_numtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "f64" => F64_numtype + prod "f64" => `F64`_numtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tvectype : vectype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "v128" => V128_vectype + prod "v128" => `V128`_vectype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tabsheaptype : heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "any" => ANY_heaptype + prod "any" => `ANY`_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "eq" => EQ_heaptype + prod "eq" => `EQ`_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i31" => I31_heaptype + prod "i31" => `I31`_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "struct" => STRUCT_heaptype + prod "struct" => `STRUCT`_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "array" => ARRAY_heaptype + prod "array" => `ARRAY`_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "none" => NONE_heaptype + prod "none" => `NONE`_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "func" => FUNC_heaptype + prod "func" => `FUNC`_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "nofunc" => NOFUNC_heaptype + prod "nofunc" => `NOFUNC`_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "exn" => EXN_heaptype + prod "exn" => `EXN`_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "noexn" => NOEXN_heaptype + prod "noexn" => `NOEXN`_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "extern" => EXTERN_heaptype + prod "extern" => `EXTERN`_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "noextern" => NOEXTERN_heaptype + prod "noextern" => `NOEXTERN`_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Theaptype_(I : I) : heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec prod{ht : heaptype} ht:Tabsheaptype => ht ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{x : idx} x:Ttypeidx_(I) => _IDX_heaptype(x) + prod{typeidx#2119 : typeidx, x : idx} x:Ttypeidx_(I) => `_IDX`_heaptype{typeidx#2119}(x) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tnull : null ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "null" => NULL_null + prod "null" => `NULL`_null ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Treftype_(I : I) : reftype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`null?` : null?, ht : heaptype} {{"("} {"ref"} {null?{null <- `null?`}:Tnull?{}} {ht:Theaptype_(I)} {")"}} => REF_reftype(null?{null <- `null?`}, ht) + prod{`null?#1795` : null?, heaptype#1861 : heaptype, `null?` : null?, ht : heaptype} {{"("} {"ref"} {null?{null <- `null?`}:Tnull?{}} {ht:Theaptype_(I)} {")"}} => `REF`_reftype{`null?#1795`, heaptype#1861}(null?{null <- `null?`}, ht) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tvaltype_(I : I) : valtype @@ -9561,9 +121120,9 @@ grammar Tvaltype_(I : I) : valtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tpacktype : packtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i8" => I8_packtype + prod "i8" => `I8`_packtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i16" => I16_packtype + prod "i16" => `I16`_packtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tstoragetype_(I : I) : storagetype @@ -9575,19 +121134,19 @@ grammar Tstoragetype_(I : I) : storagetype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tfieldtype_(I : I) : fieldtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{zt : storagetype} zt:Tstoragetype_(I) => `%%`_fieldtype(?(), zt) + prod{`mut?#1499` : mut?, storagetype#801 : storagetype, zt : storagetype} zt:Tstoragetype_(I) => `%%`_fieldtype{`mut?#1499`, storagetype#801}(?(), zt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{zt : storagetype} {{"("} {"mut"} {zt:Tstoragetype_(I)} {")"}} => `%%`_fieldtype(?(MUT_mut), zt) + prod{`mut?#1511` : mut?, storagetype#813 : storagetype, zt : storagetype} {{"("} {"mut"} {zt:Tstoragetype_(I)} {")"}} => `%%`_fieldtype{`mut?#1511`, storagetype#813}(?(`MUT`_mut), zt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tfield_(I : I) : (fieldtype, name?) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`id?` : char?, ft : fieldtype} {{"("} {"field"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {ft:Tfieldtype_(I)} {")"}} => (ft, ?(`%`_name(lift(id?{id <- `id?`})))) + prod{ft : fieldtype, `char*#969` : char*, `id?` : char?, `char*#963` : char*} {{"("} {"field"} {?(`%`_name{`char*#963`}(lift(id?{id <- `id?`}))):Tid?{}} {ft:Tfieldtype_(I)} {")"}} => (ft, ?(`%`_name{`char*#969`}(lift(id?{id <- `id?`})))) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tparam_(I : I) : (valtype, name?) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`id?` : char?, t : valtype} {{"("} {"param"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {t:Tvaltype_(I)} {")"}} => (t, ?(`%`_name(lift(id?{id <- `id?`})))) + prod{t : valtype, `char*#981` : char*, `id?` : char?, `char*#975` : char*} {{"("} {"param"} {?(`%`_name{`char*#975`}(lift(id?{id <- `id?`}))):Tid?{}} {t:Tvaltype_(I)} {")"}} => (t, ?(`%`_name{`char*#981`}(lift(id?{id <- `id?`})))) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tresult_(I : I) : valtype @@ -9597,124 +121156,124 @@ grammar Tresult_(I : I) : valtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tcomptype_(I : I) : (comptype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`ft*` : fieldtype*, `id?*` : char?*} {{"("} {"struct"} {(ft, ?(`%`_name(lift(id?{id <- `id?`}))))*{ft <- `ft*`, `id?` <- `id?*`}:Tlist(syntax (fieldtype, name?), grammar Tfield_(I))} {")"}} => (STRUCT_comptype(`%`_list(ft*{ft <- `ft*`})), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}], TYPEDEFS []}) + prod{`X*#13361` : fieldtype*, `ft*` : fieldtype*, `name?*#431` : name?*, `name?*#432` : name?*, `name?*#433` : name?*, `name?*#434` : name?*, `name?*#435` : name?*, `name?*#436` : name?*, `name?*#437` : name?*, `name?*#438` : name?*, `name?*#439` : name?*, `name?*#440` : name?*, `name?**#15` : name?**, `char*#1005*` : char**, `id?*` : char?*, `deftype?*#2` : deftype?*, `char*#987*` : char**} {{"("} {"struct"} {(ft, ?(`%`_name{`char*#987`}(lift(id?{id <- `id?`}))))*{`char*#987` <- `char*#987*`, ft <- `ft*`, `id?` <- `id?*`}:Tlist(syntax (fieldtype, name?), grammar Tfield_(I))} {")"}} => (`STRUCT`_comptype(`%`_list{`X*#13361`}(ft*{ft <- `ft*`})), {`TYPES`{`name?*#431`} [], `TAGS`{`name?*#432`} [], `GLOBALS`{`name?*#433`} [], `MEMS`{`name?*#434`} [], `TABLES`{`name?*#435`} [], `FUNCS`{`name?*#436`} [], `DATAS`{`name?*#437`} [], `ELEMS`{`name?*#438`} [], `LOCALS`{`name?*#439`} [], `LABELS`{`name?*#440`} [], `FIELDS`{`name?**#15`} [?(`%`_name{`char*#1005`}(lift(id?{id <- `id?`})))*{`char*#1005` <- `char*#1005*`, `id?` <- `id?*`}], `TYPEDEFS`{`deftype?*#2`} []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{ft : fieldtype} {{"("} {"array"} {ft:Tfieldtype_(I)} {")"}} => (ARRAY_comptype(ft), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{fieldtype#61 : fieldtype, ft : fieldtype, `name?*#441` : name?*, `name?*#442` : name?*, `name?*#443` : name?*, `name?*#444` : name?*, `name?*#445` : name?*, `name?*#446` : name?*, `name?*#447` : name?*, `name?*#448` : name?*, `name?*#449` : name?*, `name?*#450` : name?*, `name?**#16` : name?**, `deftype?*#3` : deftype?*} {{"("} {"array"} {ft:Tfieldtype_(I)} {")"}} => (`ARRAY`_comptype{fieldtype#61}(ft), {`TYPES`{`name?*#441`} [], `TAGS`{`name?*#442`} [], `GLOBALS`{`name?*#443`} [], `MEMS`{`name?*#444`} [], `TABLES`{`name?*#445`} [], `FUNCS`{`name?*#446`} [], `DATAS`{`name?*#447`} [], `ELEMS`{`name?*#448`} [], `LOCALS`{`name?*#449`} [], `LABELS`{`name?*#450`} [], `FIELDS`{`name?**#16`} [], `TYPEDEFS`{`deftype?*#3`} []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`t_1*` : valtype*, `id?*` : char?*, `t_2*` : valtype*} {{"("} {"func"} {(t_1, ?(`%`_name(lift(id?{id <- `id?`}))))*{`id?` <- `id?*`, t_1 <- `t_1*`}:Tlist(syntax (valtype, name?), grammar Tparam_(I))} {t_2*{t_2 <- `t_2*`}:Tlist(syntax valtype, grammar Tresult_(I))} {")"}} => (`FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{resulttype#3032 : resulttype, `X*#13376` : valtype*, `t_1*` : valtype*, `X*#13389` : valtype*, `t_2*` : valtype*, `name?*#451` : name?*, `name?*#452` : name?*, `name?*#453` : name?*, `name?*#454` : name?*, `name?*#455` : name?*, `name?*#456` : name?*, `name?*#457` : name?*, `name?*#458` : name?*, `name?*#459` : name?*, `name?*#460` : name?*, `name?**#17` : name?**, `deftype?*#4` : deftype?*, `char*#1011*` : char**, `id?*` : char?*} {{"("} {"func"} {(t_1, ?(`%`_name{`char*#1011`}(lift(id?{id <- `id?`}))))*{`char*#1011` <- `char*#1011*`, `id?` <- `id?*`, t_1 <- `t_1*`}:Tlist(syntax (valtype, name?), grammar Tparam_(I))} {t_2*{t_2 <- `t_2*`}:Tlist(syntax valtype, grammar Tresult_(I))} {")"}} => (`FUNC%->%`_comptype{resulttype#3032}(`%`_resulttype{`X*#13376`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13389`}(t_2*{t_2 <- `t_2*`})), {`TYPES`{`name?*#451`} [], `TAGS`{`name?*#452`} [], `GLOBALS`{`name?*#453`} [], `MEMS`{`name?*#454`} [], `TABLES`{`name?*#455`} [], `FUNCS`{`name?*#456`} [], `DATAS`{`name?*#457`} [], `ELEMS`{`name?*#458`} [], `LOCALS`{`name?*#459`} [], `LABELS`{`name?*#460`} [], `FIELDS`{`name?**#17`} [], `TYPEDEFS`{`deftype?*#4`} []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tfinal : final ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "final" => FINAL_final + prod "final" => `FINAL`_final ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tsubtype_(I : I) : (subtype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`fin?` : final?, `x*` : idx*, ct : comptype, I' : I} {{"("} {"sub"} {fin?{fin <- `fin?`}:Tfinal?{}} {x*{x <- `x*`}:Tlist(syntax typeidx, grammar Ttypeidx_(I))} {(ct, I'):Tcomptype_(I)} {")"}} => (SUB_subtype(fin?{fin <- `fin?`}, _IDX_typeuse(x)*{x <- `x*`}, ct), I') + prod{`final?#523` : final?, `typeuse*#523` : typeuse*, comptype#523 : comptype, `fin?` : final?, `typeidx#2121*` : typeidx*, `x*` : idx*, ct : comptype, I' : I} {{"("} {"sub"} {fin?{fin <- `fin?`}:Tfinal?{}} {x*{x <- `x*`}:Tlist(syntax typeidx, grammar Ttypeidx_(I))} {(ct, I'):Tcomptype_(I)} {")"}} => (`SUB`_subtype{`final?#523`, `typeuse*#523`, comptype#523}(fin?{fin <- `fin?`}, `_IDX`_typeuse{typeidx#2121}(x)*{typeidx#2121 <- `typeidx#2121*`, x <- `x*`}, ct), I') ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Ttypedef_(I : I) : (subtype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`id?` : char?, st : subtype, I' : I} {{"("} {"type"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(st, I'):Tsubtype_(I)} {")"}} => (st, I' +++ {TYPES [?(`%`_name(lift(id?{id <- `id?`})))], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{st : subtype, I' : I, `name?*#461` : name?*, `char*#1023` : char*, `id?` : char?, `name?*#462` : name?*, `name?*#463` : name?*, `name?*#464` : name?*, `name?*#465` : name?*, `name?*#466` : name?*, `name?*#467` : name?*, `name?*#468` : name?*, `name?*#469` : name?*, `name?*#470` : name?*, `name?**#18` : name?**, `deftype?*#5` : deftype?*, `char*#1017` : char*} {{"("} {"type"} {?(`%`_name{`char*#1017`}(lift(id?{id <- `id?`}))):Tid?{}} {(st, I'):Tsubtype_(I)} {")"}} => (st, I' +++ {`TYPES`{`name?*#461`} [?(`%`_name{`char*#1023`}(lift(id?{id <- `id?`})))], `TAGS`{`name?*#462`} [], `GLOBALS`{`name?*#463`} [], `MEMS`{`name?*#464`} [], `TABLES`{`name?*#465`} [], `FUNCS`{`name?*#466`} [], `DATAS`{`name?*#467`} [], `ELEMS`{`name?*#468`} [], `LOCALS`{`name?*#469`} [], `LABELS`{`name?*#470`} [], `FIELDS`{`name?**#18`} [], `TYPEDEFS`{`deftype?*#5`} []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Trectype_(I : I) : (rectype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`st*` : subtype*, `I'*` : I*} {{"("} {"rec"} {(st, I')*{I' <- `I'*`, st <- `st*`}:Tlist(syntax (subtype, idctxt), grammar Ttypedef_(I))} {")"}} => (REC_rectype(`%`_list(st*{st <- `st*`})), $concat_idctxt(I'*{I' <- `I'*`})) + prod{`X*#13404` : subtype*, `st*` : subtype*, `I'*` : I*} {{"("} {"rec"} {(st, I')*{I' <- `I'*`, st <- `st*`}:Tlist(syntax (subtype, idctxt), grammar Ttypedef_(I))} {")"}} => (`REC`_rectype(`%`_list{`X*#13404`}(st*{st <- `st*`})), $concat_idctxt(I'*{I' <- `I'*`})) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Taddrtype : addrtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i32" => I32_addrtype + prod "i32" => `I32`_addrtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i64" => I64_addrtype + prod "i64" => `I64`_addrtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tlimits : limits ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{n : n} `%`_u64(n):Tu64 => `[%..%]`_limits(`%`_u64(n), ?()) + prod{u64#571 : u64, `u64?#545` : u64?, i#95590 : nat, n : n, i#95568 : nat} `%`_u64{i#95568}(n):Tu64 => `[%..%]`_limits{u64#571, `u64?#545`}(`%`_u64{i#95590}(n), ?()) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{n : n, m : m} {{`%`_u64(n):Tu64} {`%`_u64(m):Tu64}} => `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m))) + prod{u64#583 : u64, `u64?#557` : u64?, i#95666 : nat, n : n, i#95688 : nat, m : m, i#95615 : nat, i#95642 : nat} {{`%`_u64{i#95615}(n):Tu64} {`%`_u64{i#95642}(m):Tu64}} => `[%..%]`_limits{u64#583, `u64?#557`}(`%`_u64{i#95666}(n), ?(`%`_u64{i#95688}(m))) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Ttypeuse_(I : I) : (typeidx, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{x : idx, I' : I, `st*` : subtype*, i : n, `t_1*` : valtype*, `t_2*` : valtype*} {{"("} {"type"} {x:Ttypeidx_(I)} {")"}} => (x, I') - -- if (I.TYPEDEFS_I[x!`%`_idx.0] = ?(_DEF_deftype(REC_rectype(`%`_list(st*{st <- `st*`})), i))) - -- if (st*{st <- `st*`}[i] = SUB_subtype(?(FINAL_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))) - -- if (I' = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS ?(`%`_name([]))^|t_1*{t_1 <- `t_1*`}|{}, LABELS [], FIELDS [], TYPEDEFS []}) + prod{x : idx, I' : I, `deftype?*#11` : deftype?*, i#95899 : nat, rectype#1807 : rectype, n#1503 : n, `X*#13419` : subtype*, `st*` : subtype*, i : n, `final?#577` : final?, `typeuse*#577` : typeuse*, comptype#577 : comptype, resulttype#3035 : resulttype, `X*#13434` : valtype*, `t_1*` : valtype*, `X*#13447` : valtype*, `t_2*` : valtype*, `name?*#521` : name?*, `name?*#522` : name?*, `name?*#523` : name?*, `name?*#524` : name?*, `name?*#525` : name?*, `name?*#526` : name?*, `name?*#527` : name?*, `name?*#528` : name?*, `name?*#529` : name?*, `char*#1113*` : char**, `name?*#530` : name?*, `name?**#24` : name?**, `deftype?*#12` : deftype?*} {{"("} {"type"} {x:Ttypeidx_(I)} {")"}} => (x, I') + -- if (I.`TYPEDEFS`_I{`deftype?*#11`}[x!`%`_idx{i#95899}.0] = ?(`_DEF`_deftype{rectype#1807, n#1503}(`REC`_rectype(`%`_list{`X*#13419`}(st*{st <- `st*`})), i))) + -- if (st*{st <- `st*`}[i] = `SUB`_subtype{`final?#577`, `typeuse*#577`, comptype#577}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3035}(`%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`})))) + -- if (I' = {`TYPES`{`name?*#521`} [], `TAGS`{`name?*#522`} [], `GLOBALS`{`name?*#523`} [], `MEMS`{`name?*#524`} [], `TABLES`{`name?*#525`} [], `FUNCS`{`name?*#526`} [], `DATAS`{`name?*#527`} [], `ELEMS`{`name?*#528`} [], `LOCALS`{`name?*#529`} ?(`%`_name{`char*#1113`}([]))^|t_1*{t_1 <- `t_1*`}|{`char*#1113` <- `char*#1113*`}, `LABELS`{`name?*#530`} [], `FIELDS`{`name?**#24`} [], `TYPEDEFS`{`deftype?*#12`} []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{x : idx, `t_1*` : valtype*, `id?*` : char?*, `t_2*` : valtype*, I' : I, `st*` : subtype*, i : n} {{"("} {"type"} {x:Ttypeidx_(I)} {")"} {(t_1, ?(`%`_name(lift(id?{id <- `id?`}))))*{`id?` <- `id?*`, t_1 <- `t_1*`}:Tparam_(I)*{}} {t_2*{t_2 <- `t_2*`}:Tresult_(I)*{}}} => (x, I') - -- if (I.TYPEDEFS_I[x!`%`_idx.0] = ?(_DEF_deftype(REC_rectype(`%`_list(st*{st <- `st*`})), i))) - -- if (st*{st <- `st*`}[i] = SUB_subtype(?(FINAL_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))) - -- if (I' = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS ?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}, LABELS [], FIELDS [], TYPEDEFS []}) + prod{x : idx, I' : I, `char*#1119*` : char**, `id?*` : char?*, `t_1*` : valtype*, `t_2*` : valtype*, `deftype?*#13` : deftype?*, i#95968 : nat, rectype#1819 : rectype, n#1515 : n, `X*#13462` : subtype*, `st*` : subtype*, i : n, `final?#601` : final?, `typeuse*#601` : typeuse*, comptype#601 : comptype, resulttype#3038 : resulttype, `X*#13477` : valtype*, `X*#13490` : valtype*, `name?*#531` : name?*, `name?*#532` : name?*, `name?*#533` : name?*, `name?*#534` : name?*, `name?*#535` : name?*, `name?*#536` : name?*, `name?*#537` : name?*, `name?*#538` : name?*, `name?*#539` : name?*, `char*#1137*` : char**, `name?*#540` : name?*, `name?**#25` : name?**, `deftype?*#14` : deftype?*} {{"("} {"type"} {x:Ttypeidx_(I)} {")"} {(t_1, ?(`%`_name{`char*#1119`}(lift(id?{id <- `id?`}))))*{`char*#1119` <- `char*#1119*`, `id?` <- `id?*`, t_1 <- `t_1*`}:Tparam_(I)*{}} {t_2*{t_2 <- `t_2*`}:Tresult_(I)*{}}} => (x, I') + -- if (I.`TYPEDEFS`_I{`deftype?*#13`}[x!`%`_idx{i#95968}.0] = ?(`_DEF`_deftype{rectype#1819, n#1515}(`REC`_rectype(`%`_list{`X*#13462`}(st*{st <- `st*`})), i))) + -- if (st*{st <- `st*`}[i] = `SUB`_subtype{`final?#601`, `typeuse*#601`, comptype#601}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3038}(`%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`})))) + -- if (I' = {`TYPES`{`name?*#531`} [], `TAGS`{`name?*#532`} [], `GLOBALS`{`name?*#533`} [], `MEMS`{`name?*#534`} [], `TABLES`{`name?*#535`} [], `FUNCS`{`name?*#536`} [], `DATAS`{`name?*#537`} [], `ELEMS`{`name?*#538`} [], `LOCALS`{`name?*#539`} ?(`%`_name{`char*#1137`}(lift(id?{id <- `id?`})))*{`char*#1137` <- `char*#1137*`, `id?` <- `id?*`}, `LABELS`{`name?*#540`} [], `FIELDS`{`name?**#25`} [], `TYPEDEFS`{`deftype?*#14`} []}) -- Idctxt_ok: `|-%:OK`(I') ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Ttagtype_(I : I) : tagtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{x : idx, I' : I} (x, I'):Ttypeuse_(I) => _IDX_tagtype(x) + prod{typeidx#2123 : typeidx, x : idx, I' : I} (x, I'):Ttypeuse_(I) => `_IDX`_tagtype{typeidx#2123}(x) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tglobaltype_(I : I) : globaltype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{t : valtype} t:Tvaltype_(I) => `%%`_globaltype(?(), t) + prod{`mut?#1561` : mut?, valtype#1167 : valtype, t : valtype} t:Tvaltype_(I) => `%%`_globaltype{`mut?#1561`, valtype#1167}(?(), t) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{t : valtype} {{"("} {"mut"} {t:Tvaltype_(I)} {")"}} => `%%`_globaltype(?(MUT_mut), t) + prod{`mut?#1573` : mut?, valtype#1179 : valtype, t : valtype} {{"("} {"mut"} {t:Tvaltype_(I)} {")"}} => `%%`_globaltype{`mut?#1573`, valtype#1179}(?(`MUT`_mut), t) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tmemtype_(I : I) : memtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{at : addrtype, lim : limits} {{at:Taddrtype} {lim:Tlimits}} => `%%PAGE`_memtype(at, lim) + prod{addrtype#1483 : addrtype, limits#1483 : limits, at : addrtype, lim : limits} {{at:Taddrtype} {lim:Tlimits}} => `%%PAGE`_memtype{addrtype#1483, limits#1483}(at, lim) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Ttabletype_(I : I) : tabletype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{at : addrtype, lim : limits, rt : reftype} {{at:Taddrtype} {lim:Tlimits} {rt:Treftype_(I)}} => `%%%`_tabletype(at, lim, rt) + prod{addrtype#1495 : addrtype, limits#1495 : limits, reftype#4291 : reftype, at : addrtype, lim : limits, rt : reftype} {{at:Taddrtype} {lim:Tlimits} {rt:Treftype_(I)}} => `%%%`_tabletype{addrtype#1495, limits#1495, reftype#4291}(at, lim, rt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Texterntype_(I : I) : (externtype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`id?` : char?, jt : tagtype} {{"("} {"tag"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {jt:Ttagtype_(I)} {")"}} => (TAG_externtype(jt), {TYPES [], TAGS [?(`%`_name(lift(id?{id <- `id?`})))], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{tagtype#436 : tagtype, jt : tagtype, `name?*#471` : name?*, `name?*#472` : name?*, `char*#1035` : char*, `id?` : char?, `name?*#473` : name?*, `name?*#474` : name?*, `name?*#475` : name?*, `name?*#476` : name?*, `name?*#477` : name?*, `name?*#478` : name?*, `name?*#479` : name?*, `name?*#480` : name?*, `name?**#19` : name?**, `deftype?*#6` : deftype?*, `char*#1029` : char*} {{"("} {"tag"} {?(`%`_name{`char*#1029`}(lift(id?{id <- `id?`}))):Tid?{}} {jt:Ttagtype_(I)} {")"}} => (`TAG`_externtype{tagtype#436}(jt), {`TYPES`{`name?*#471`} [], `TAGS`{`name?*#472`} [?(`%`_name{`char*#1035`}(lift(id?{id <- `id?`})))], `GLOBALS`{`name?*#473`} [], `MEMS`{`name?*#474`} [], `TABLES`{`name?*#475`} [], `FUNCS`{`name?*#476`} [], `DATAS`{`name?*#477`} [], `ELEMS`{`name?*#478`} [], `LOCALS`{`name?*#479`} [], `LABELS`{`name?*#480`} [], `FIELDS`{`name?**#19`} [], `TYPEDEFS`{`deftype?*#6`} []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`id?` : char?, gt : globaltype} {{"("} {"global"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {gt:Tglobaltype_(I)} {")"}} => (GLOBAL_externtype(gt), {TYPES [], TAGS [], GLOBALS [?(`%`_name(lift(id?{id <- `id?`})))], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{globaltype#2397 : globaltype, gt : globaltype, `name?*#481` : name?*, `name?*#482` : name?*, `name?*#483` : name?*, `char*#1047` : char*, `id?` : char?, `name?*#484` : name?*, `name?*#485` : name?*, `name?*#486` : name?*, `name?*#487` : name?*, `name?*#488` : name?*, `name?*#489` : name?*, `name?*#490` : name?*, `name?**#20` : name?**, `deftype?*#7` : deftype?*, `char*#1041` : char*} {{"("} {"global"} {?(`%`_name{`char*#1041`}(lift(id?{id <- `id?`}))):Tid?{}} {gt:Tglobaltype_(I)} {")"}} => (`GLOBAL`_externtype{globaltype#2397}(gt), {`TYPES`{`name?*#481`} [], `TAGS`{`name?*#482`} [], `GLOBALS`{`name?*#483`} [?(`%`_name{`char*#1047`}(lift(id?{id <- `id?`})))], `MEMS`{`name?*#484`} [], `TABLES`{`name?*#485`} [], `FUNCS`{`name?*#486`} [], `DATAS`{`name?*#487`} [], `ELEMS`{`name?*#488`} [], `LOCALS`{`name?*#489`} [], `LABELS`{`name?*#490`} [], `FIELDS`{`name?**#20`} [], `TYPEDEFS`{`deftype?*#7`} []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`id?` : char?, mt : memtype} {{"("} {"memory"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {mt:Tmemtype_(I)} {")"}} => (MEM_externtype(mt), {TYPES [], TAGS [], GLOBALS [], MEMS [?(`%`_name(lift(id?{id <- `id?`})))], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{memtype#858 : memtype, mt : memtype, `name?*#491` : name?*, `name?*#492` : name?*, `name?*#493` : name?*, `name?*#494` : name?*, `char*#1059` : char*, `id?` : char?, `name?*#495` : name?*, `name?*#496` : name?*, `name?*#497` : name?*, `name?*#498` : name?*, `name?*#499` : name?*, `name?*#500` : name?*, `name?**#21` : name?**, `deftype?*#8` : deftype?*, `char*#1053` : char*} {{"("} {"memory"} {?(`%`_name{`char*#1053`}(lift(id?{id <- `id?`}))):Tid?{}} {mt:Tmemtype_(I)} {")"}} => (`MEM`_externtype{memtype#858}(mt), {`TYPES`{`name?*#491`} [], `TAGS`{`name?*#492`} [], `GLOBALS`{`name?*#493`} [], `MEMS`{`name?*#494`} [?(`%`_name{`char*#1059`}(lift(id?{id <- `id?`})))], `TABLES`{`name?*#495`} [], `FUNCS`{`name?*#496`} [], `DATAS`{`name?*#497`} [], `ELEMS`{`name?*#498`} [], `LOCALS`{`name?*#499`} [], `LABELS`{`name?*#500`} [], `FIELDS`{`name?**#21`} [], `TYPEDEFS`{`deftype?*#8`} []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`id?` : char?, tt : tabletype} {{"("} {"table"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {tt:Ttabletype_(I)} {")"}} => (TABLE_externtype(tt), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [?(`%`_name(lift(id?{id <- `id?`})))], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{tabletype#1280 : tabletype, tt : tabletype, `name?*#501` : name?*, `name?*#502` : name?*, `name?*#503` : name?*, `name?*#504` : name?*, `name?*#505` : name?*, `char*#1071` : char*, `id?` : char?, `name?*#506` : name?*, `name?*#507` : name?*, `name?*#508` : name?*, `name?*#509` : name?*, `name?*#510` : name?*, `name?**#22` : name?**, `deftype?*#9` : deftype?*, `char*#1065` : char*} {{"("} {"table"} {?(`%`_name{`char*#1065`}(lift(id?{id <- `id?`}))):Tid?{}} {tt:Ttabletype_(I)} {")"}} => (`TABLE`_externtype{tabletype#1280}(tt), {`TYPES`{`name?*#501`} [], `TAGS`{`name?*#502`} [], `GLOBALS`{`name?*#503`} [], `MEMS`{`name?*#504`} [], `TABLES`{`name?*#505`} [?(`%`_name{`char*#1071`}(lift(id?{id <- `id?`})))], `FUNCS`{`name?*#506`} [], `DATAS`{`name?*#507`} [], `ELEMS`{`name?*#508`} [], `LOCALS`{`name?*#509`} [], `LABELS`{`name?*#510`} [], `FIELDS`{`name?**#22`} [], `TYPEDEFS`{`deftype?*#9`} []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`id?` : char?, x : idx, I' : I} {{"("} {"func"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(x, I'):Ttypeuse_(I)} {")"}} => (FUNC_externtype(_IDX_typeuse(x)), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [?(`%`_name(lift(id?{id <- `id?`})))], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{typeuse#77 : typeuse, typeidx#2125 : typeidx, x : idx, `name?*#511` : name?*, `name?*#512` : name?*, `name?*#513` : name?*, `name?*#514` : name?*, `name?*#515` : name?*, `name?*#516` : name?*, `char*#1083` : char*, `id?` : char?, `name?*#517` : name?*, `name?*#518` : name?*, `name?*#519` : name?*, `name?*#520` : name?*, `name?**#23` : name?**, `deftype?*#10` : deftype?*, `char*#1077` : char*, I' : I} {{"("} {"func"} {?(`%`_name{`char*#1077`}(lift(id?{id <- `id?`}))):Tid?{}} {(x, I'):Ttypeuse_(I)} {")"}} => (`FUNC`_externtype{typeuse#77}(`_IDX`_typeuse{typeidx#2125}(x)), {`TYPES`{`name?*#511`} [], `TAGS`{`name?*#512`} [], `GLOBALS`{`name?*#513`} [], `MEMS`{`name?*#514`} [], `TABLES`{`name?*#515`} [], `FUNCS`{`name?*#516`} [?(`%`_name{`char*#1083`}(lift(id?{id <- `id?`})))], `DATAS`{`name?*#517`} [], `ELEMS`{`name?*#518`} [], `LOCALS`{`name?*#519`} [], `LABELS`{`name?*#520`} [], `FIELDS`{`name?**#23`} [], `TYPEDEFS`{`deftype?*#10`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tlabel_(I : I) : (name?, I) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod eps => (?(), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []} +++ I) + prod{`name?*#541` : name?*, `name?*#542` : name?*, `name?*#543` : name?*, `name?*#544` : name?*, `name?*#545` : name?*, `name?*#546` : name?*, `name?*#547` : name?*, `name?*#548` : name?*, `name?*#549` : name?*, `name?*#550` : name?*, `name?**#26` : name?**, `deftype?*#17` : deftype?*} eps => (?(), {`TYPES`{`name?*#541`} [], `TAGS`{`name?*#542`} [], `GLOBALS`{`name?*#543`} [], `MEMS`{`name?*#544`} [], `TABLES`{`name?*#545`} [], `FUNCS`{`name?*#546`} [], `DATAS`{`name?*#547`} [], `ELEMS`{`name?*#548`} [], `LOCALS`{`name?*#549`} [], `LABELS`{`name?*#550`} [], `FIELDS`{`name?**#26`} [], `TYPEDEFS`{`deftype?*#17`} []} +++ I) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{id : name} id:Tid => (?(id), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [?(id)], FIELDS [], TYPEDEFS []} +++ I) - -- if ~ (?(id) <- I.LABELS_I) + prod{id : name, `name?*#551` : name?*, `name?*#552` : name?*, `name?*#553` : name?*, `name?*#554` : name?*, `name?*#555` : name?*, `name?*#556` : name?*, `name?*#557` : name?*, `name?*#558` : name?*, `name?*#559` : name?*, `name?*#560` : name?*, `name?**#27` : name?**, `deftype?*#18` : deftype?*, `name?*#566` : name?*} id:Tid => (?(id), {`TYPES`{`name?*#551`} [], `TAGS`{`name?*#552`} [], `GLOBALS`{`name?*#553`} [], `MEMS`{`name?*#554`} [], `TABLES`{`name?*#555`} [], `FUNCS`{`name?*#556`} [], `DATAS`{`name?*#557`} [], `ELEMS`{`name?*#558`} [], `LOCALS`{`name?*#559`} [], `LABELS`{`name?*#560`} [?(id)], `FIELDS`{`name?**#27`} [], `TYPEDEFS`{`deftype?*#18`} []} +++ I) + -- if ~ (?(id) <- I.`LABELS`_I{`name?*#566`}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{id : name, x : idx} id:Tid => (?(id), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [?(id)], FIELDS [], TYPEDEFS []} +++ I[LABELS_I[x!`%`_idx.0] = ?()]) - -- if (?(id) = I.LABELS_I[x!`%`_idx.0]) + prod{id : name, `name?*#567` : name?*, `name?*#568` : name?*, `name?*#569` : name?*, `name?*#570` : name?*, `name?*#571` : name?*, `name?*#572` : name?*, `name?*#573` : name?*, `name?*#574` : name?*, `name?*#575` : name?*, `name?*#576` : name?*, `name?**#28` : name?**, `deftype?*#19` : deftype?*, `name?*#577` : name?*, x : idx, i#96077 : nat, `name?*#578` : name?*, i#96087 : nat} id:Tid => (?(id), {`TYPES`{`name?*#567`} [], `TAGS`{`name?*#568`} [], `GLOBALS`{`name?*#569`} [], `MEMS`{`name?*#570`} [], `TABLES`{`name?*#571`} [], `FUNCS`{`name?*#572`} [], `DATAS`{`name?*#573`} [], `ELEMS`{`name?*#574`} [], `LOCALS`{`name?*#575`} [], `LABELS`{`name?*#576`} [?(id)], `FIELDS`{`name?**#28`} [], `TYPEDEFS`{`deftype?*#19`} []} +++ I[`LABELS`_I{`name?*#577`}[x!`%`_idx{i#96077}.0] = ?()]) + -- if (?(id) = I.`LABELS`_I{`name?*#578`}[x!`%`_idx{i#96087}.0]) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tblocktype_(I : I) : blocktype ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`t?` : valtype?} t?{t <- `t?`}:Tresult_(I)?{} => _RESULT_blocktype(t?{t <- `t?`}) + prod{`valtype?#11` : valtype?, `t?` : valtype?} t?{t <- `t?`}:Tresult_(I)?{} => `_RESULT`_blocktype{`valtype?#11`}(t?{t <- `t?`}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, I' : I} (x, I'):Ttypeuse_(I) => _IDX_blocktype(x) - -- if (I' = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS ?(`%`_name([]))*{}, LABELS [], FIELDS [], TYPEDEFS []}) + prod{typeidx#2127 : typeidx, x : idx, I' : I, `name?*#579` : name?*, `name?*#580` : name?*, `name?*#581` : name?*, `name?*#582` : name?*, `name?*#583` : name?*, `name?*#584` : name?*, `name?*#585` : name?*, `name?*#586` : name?*, `name?*#587` : name?*, `char*#1231*` : char**, `name?*#588` : name?*, `name?**#29` : name?**, `deftype?*#20` : deftype?*} (x, I'):Ttypeuse_(I) => `_IDX`_blocktype{typeidx#2127}(x) + -- if (I' = {`TYPES`{`name?*#579`} [], `TAGS`{`name?*#580`} [], `GLOBALS`{`name?*#581`} [], `MEMS`{`name?*#582`} [], `TABLES`{`name?*#583`} [], `FUNCS`{`name?*#584`} [], `DATAS`{`name?*#585`} [], `ELEMS`{`name?*#586`} [], `LOCALS`{`name?*#587`} ?(`%`_name{`char*#1231`}([]))*{`char*#1231` <- `char*#1231*`}, `LABELS`{`name?*#588`} [], `FIELDS`{`name?**#29`} [], `TYPEDEFS`{`deftype?*#20`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tcatch_(I : I) : catch ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, l : labelidx} {{"("} {"catch"} {x:Ttagidx_(I)} {l:Tlabelidx_(I)} {")"}} => CATCH_catch(x, l) + prod{tagidx#29 : tagidx, labelidx#123 : labelidx, x : idx, l : labelidx} {{"("} {"catch"} {x:Ttagidx_(I)} {l:Tlabelidx_(I)} {")"}} => `CATCH`_catch{tagidx#29, labelidx#123}(x, l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, l : labelidx} {{"("} {"catch_ref"} {x:Ttagidx_(I)} {l:Tlabelidx_(I)} {")"}} => CATCH_REF_catch(x, l) + prod{tagidx#31 : tagidx, labelidx#125 : labelidx, x : idx, l : labelidx} {{"("} {"catch_ref"} {x:Ttagidx_(I)} {l:Tlabelidx_(I)} {")"}} => `CATCH_REF`_catch{tagidx#31, labelidx#125}(x, l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx} {{"("} {"catch_all"} {l:Tlabelidx_(I)} {")"}} => CATCH_ALL_catch(l) + prod{labelidx#127 : labelidx, l : labelidx} {{"("} {"catch_all"} {l:Tlabelidx_(I)} {")"}} => `CATCH_ALL`_catch{labelidx#127}(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx} {{"("} {"catch_all_ref"} {l:Tlabelidx_(I)} {")"}} => CATCH_ALL_REF_catch(l) + prod{labelidx#129 : labelidx, l : labelidx} {{"("} {"catch_all_ref"} {l:Tlabelidx_(I)} {")"}} => `CATCH_ALL_REF`_catch{labelidx#129}(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tfoldedinstr_(I : I) : instr* @@ -9727,1013 +121286,1013 @@ grammar Tlaneidx : laneidx ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Talign_(N : N) : u64 ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{m : m, n : n} {{"align="} {`%`_u64(m):Tu64}} => `%`_u64(m) + prod{i#97737 : nat, m : m, i#97711 : nat, n : n} {{"align="} {`%`_u64{i#97711}(m):Tu64}} => `%`_u64{i#97737}(m) -- if (m = (2 ^ n)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod eps => `%`_u64(N) + prod{i#97761 : nat} eps => `%`_u64{i#97761}(N) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Toffset : u64 ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{n : n} {{"offset="} {`%`_u64(n):Tu64}} => `%`_u64(n) + prod{i#97664 : nat, n : n, i#97638 : nat} {{"offset="} {`%`_u64{i#97638}(n):Tu64}} => `%`_u64{i#97664}(n) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod eps => `%`_u64(0) + prod{i#97686 : nat} eps => `%`_u64{i#97686}(0) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tmemarg_(N : N) : memarg ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{n : n, m : m} {{`%`_u64(n):Toffset} {`%`_u64(m):Talign_(N)}} => {ALIGN `%`_u32(n), OFFSET `%`_u64(m)} + prod{u32#47 : u32, i#97591 : nat, n : n, u64#609 : u64, i#97613 : nat, m : m, i#97540 : nat, i#97567 : nat} {{`%`_u64{i#97540}(n):Toffset} {`%`_u64{i#97567}(m):Talign_(N)}} => {`ALIGN`{u32#47} `%`_u32{i#97591}(n), `OFFSET`{u64#609} `%`_u64{i#97613}(m)} ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tplaininstr_(I : I) : instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "unreachable" => UNREACHABLE_instr + prod "unreachable" => `UNREACHABLE`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "nop" => NOP_instr + prod "nop" => `NOP`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "drop" => DROP_instr + prod "drop" => `DROP`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`t*?` : valtype*?} {{"select"} {t*{t <- `t*`}:Tresult_(I)*{}?{`t*` <- `t*?`}}} => SELECT_instr(t*{t <- `t*`}?{`t*` <- `t*?`}) + prod{`valtype*?#15` : valtype*?, `t*?` : valtype*?} {{"select"} {t*{t <- `t*`}:Tresult_(I)*{}?{`t*` <- `t*?`}}} => `SELECT`_instr{`valtype*?#15`}(t*{t <- `t*`}?{`t*` <- `t*?`}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx} {{"br"} {l:Tlabelidx_(I)}} => BR_instr(l) + prod{labelidx#131 : labelidx, l : labelidx} {{"br"} {l:Tlabelidx_(I)}} => `BR`_instr{labelidx#131}(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx} {{"br_if"} {l:Tlabelidx_(I)}} => BR_IF_instr(l) + prod{labelidx#133 : labelidx, l : labelidx} {{"br_if"} {l:Tlabelidx_(I)}} => `BR_IF`_instr{labelidx#133}(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`l*` : labelidx*, l' : labelidx} {{"br_table"} {l*{l <- `l*`}:Tlabelidx_(I)*{}} {l':Tlabelidx_(I)}} => BR_TABLE_instr(l*{l <- `l*`}, l') + prod{`labelidx*#56` : labelidx*, labelidx#135 : labelidx, `l*` : labelidx*, l' : labelidx} {{"br_table"} {l*{l <- `l*`}:Tlabelidx_(I)*{}} {l':Tlabelidx_(I)}} => `BR_TABLE`_instr{`labelidx*#56`, labelidx#135}(l*{l <- `l*`}, l') ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx} {{"br_on_null"} {l:Tlabelidx_(I)}} => BR_ON_NULL_instr(l) + prod{labelidx#137 : labelidx, l : labelidx} {{"br_on_null"} {l:Tlabelidx_(I)}} => `BR_ON_NULL`_instr{labelidx#137}(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx} {{"br_on_non_null"} {l:Tlabelidx_(I)}} => BR_ON_NON_NULL_instr(l) + prod{labelidx#139 : labelidx, l : labelidx} {{"br_on_non_null"} {l:Tlabelidx_(I)}} => `BR_ON_NON_NULL`_instr{labelidx#139}(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx, rt_1 : reftype, rt_2 : reftype} {{"br_on_cast"} {l:Tlabelidx_(I)} {rt_1:Treftype_(I)} {rt_2:Treftype_(I)}} => BR_ON_CAST_instr(l, rt_1, rt_2) + prod{labelidx#141 : labelidx, reftype#4305 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype} {{"br_on_cast"} {l:Tlabelidx_(I)} {rt_1:Treftype_(I)} {rt_2:Treftype_(I)}} => `BR_ON_CAST`_instr{labelidx#141, reftype#4305}(l, rt_1, rt_2) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx, rt_1 : reftype, rt_2 : reftype} {{"br_on_cast_fail"} {l:Tlabelidx_(I)} {rt_1:Treftype_(I)} {rt_2:Treftype_(I)}} => BR_ON_CAST_FAIL_instr(l, rt_1, rt_2) + prod{labelidx#143 : labelidx, reftype#4308 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype} {{"br_on_cast_fail"} {l:Tlabelidx_(I)} {rt_1:Treftype_(I)} {rt_2:Treftype_(I)}} => `BR_ON_CAST_FAIL`_instr{labelidx#143, reftype#4308}(l, rt_1, rt_2) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"call"} {x:Tfuncidx_(I)}} => CALL_instr(x) + prod{funcidx#3383 : funcidx, x : idx} {{"call"} {x:Tfuncidx_(I)}} => `CALL`_instr{funcidx#3383}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"call_ref"} {x:Ttypeidx_(I)}} => CALL_REF_instr(_IDX_typeuse(x)) + prod{typeuse#79 : typeuse, typeidx#2129 : typeidx, x : idx} {{"call_ref"} {x:Ttypeidx_(I)}} => `CALL_REF`_instr{typeuse#79}(`_IDX`_typeuse{typeidx#2129}(x)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, y : idx, I' : I} {{"call_indirect"} {x:Ttableidx_(I)} {(y, I'):Ttypeuse_(I)}} => CALL_INDIRECT_instr(x, _IDX_typeuse(y)) - -- if (I' = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS ?(`%`_name([]))*{}, LABELS [], FIELDS [], TYPEDEFS []}) + prod{tableidx#154 : tableidx, typeuse#81 : typeuse, x : idx, typeidx#2131 : typeidx, y : idx, I' : I, `name?*#589` : name?*, `name?*#590` : name?*, `name?*#591` : name?*, `name?*#592` : name?*, `name?*#593` : name?*, `name?*#594` : name?*, `name?*#595` : name?*, `name?*#596` : name?*, `name?*#597` : name?*, `char*#1315*` : char**, `name?*#598` : name?*, `name?**#30` : name?**, `deftype?*#21` : deftype?*} {{"call_indirect"} {x:Ttableidx_(I)} {(y, I'):Ttypeuse_(I)}} => `CALL_INDIRECT`_instr{tableidx#154, typeuse#81}(x, `_IDX`_typeuse{typeidx#2131}(y)) + -- if (I' = {`TYPES`{`name?*#589`} [], `TAGS`{`name?*#590`} [], `GLOBALS`{`name?*#591`} [], `MEMS`{`name?*#592`} [], `TABLES`{`name?*#593`} [], `FUNCS`{`name?*#594`} [], `DATAS`{`name?*#595`} [], `ELEMS`{`name?*#596`} [], `LOCALS`{`name?*#597`} ?(`%`_name{`char*#1315`}([]))*{`char*#1315` <- `char*#1315*`}, `LABELS`{`name?*#598`} [], `FIELDS`{`name?**#30`} [], `TYPEDEFS`{`deftype?*#21`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "return" => RETURN_instr + prod "return" => `RETURN`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"return_call"} {x:Tfuncidx_(I)}} => RETURN_CALL_instr(x) + prod{funcidx#3385 : funcidx, x : idx} {{"return_call"} {x:Tfuncidx_(I)}} => `RETURN_CALL`_instr{funcidx#3385}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"return_call_ref"} {x:Ttypeidx_(I)}} => RETURN_CALL_REF_instr(_IDX_typeuse(x)) + prod{typeuse#83 : typeuse, typeidx#2133 : typeidx, x : idx} {{"return_call_ref"} {x:Ttypeidx_(I)}} => `RETURN_CALL_REF`_instr{typeuse#83}(`_IDX`_typeuse{typeidx#2133}(x)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, y : idx, I' : I} {{"return_call_indirect"} {x:Ttableidx_(I)} {(y, I'):Ttypeuse_(I)}} => RETURN_CALL_INDIRECT_instr(x, _IDX_typeuse(y)) - -- if (I' = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS ?(`%`_name([]))*{}, LABELS [], FIELDS [], TYPEDEFS []}) + prod{tableidx#156 : tableidx, typeuse#85 : typeuse, x : idx, typeidx#2135 : typeidx, y : idx, I' : I, `name?*#599` : name?*, `name?*#600` : name?*, `name?*#601` : name?*, `name?*#602` : name?*, `name?*#603` : name?*, `name?*#604` : name?*, `name?*#605` : name?*, `name?*#606` : name?*, `name?*#607` : name?*, `char*#1345*` : char**, `name?*#608` : name?*, `name?**#31` : name?**, `deftype?*#22` : deftype?*} {{"return_call_indirect"} {x:Ttableidx_(I)} {(y, I'):Ttypeuse_(I)}} => `RETURN_CALL_INDIRECT`_instr{tableidx#156, typeuse#85}(x, `_IDX`_typeuse{typeidx#2135}(y)) + -- if (I' = {`TYPES`{`name?*#599`} [], `TAGS`{`name?*#600`} [], `GLOBALS`{`name?*#601`} [], `MEMS`{`name?*#602`} [], `TABLES`{`name?*#603`} [], `FUNCS`{`name?*#604`} [], `DATAS`{`name?*#605`} [], `ELEMS`{`name?*#606`} [], `LOCALS`{`name?*#607`} ?(`%`_name{`char*#1345`}([]))*{`char*#1345` <- `char*#1345*`}, `LABELS`{`name?*#608`} [], `FIELDS`{`name?**#31`} [], `TYPEDEFS`{`deftype?*#22`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"throw"} {x:Ttagidx_(I)}} => THROW_instr(x) + prod{tagidx#33 : tagidx, x : idx} {{"throw"} {x:Ttagidx_(I)}} => `THROW`_instr{tagidx#33}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "throw_ref" => THROW_REF_instr + prod "throw_ref" => `THROW_REF`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"local.get"} {x:Tlocalidx_(I)}} => LOCAL.GET_instr(x) + prod{localidx#27 : localidx, x : idx} {{"local.get"} {x:Tlocalidx_(I)}} => `LOCAL.GET`_instr{localidx#27}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"local.set"} {x:Tlocalidx_(I)}} => LOCAL.SET_instr(x) + prod{localidx#29 : localidx, x : idx} {{"local.set"} {x:Tlocalidx_(I)}} => `LOCAL.SET`_instr{localidx#29}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"local.tee"} {x:Tlocalidx_(I)}} => LOCAL.TEE_instr(x) + prod{localidx#31 : localidx, x : idx} {{"local.tee"} {x:Tlocalidx_(I)}} => `LOCAL.TEE`_instr{localidx#31}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"global.get"} {x:Tglobalidx_(I)}} => GLOBAL.GET_instr(x) + prod{globalidx#31 : globalidx, x : idx} {{"global.get"} {x:Tglobalidx_(I)}} => `GLOBAL.GET`_instr{globalidx#31}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"global.set"} {x:Tglobalidx_(I)}} => GLOBAL.SET_instr(x) + prod{globalidx#33 : globalidx, x : idx} {{"global.set"} {x:Tglobalidx_(I)}} => `GLOBAL.SET`_instr{globalidx#33}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"table.get"} {x:Ttableidx_(I)}} => TABLE.GET_instr(x) + prod{tableidx#158 : tableidx, x : idx} {{"table.get"} {x:Ttableidx_(I)}} => `TABLE.GET`_instr{tableidx#158}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"table.set"} {x:Ttableidx_(I)}} => TABLE.SET_instr(x) + prod{tableidx#160 : tableidx, x : idx} {{"table.set"} {x:Ttableidx_(I)}} => `TABLE.SET`_instr{tableidx#160}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"table.size"} {x:Ttableidx_(I)}} => TABLE.SIZE_instr(x) + prod{tableidx#162 : tableidx, x : idx} {{"table.size"} {x:Ttableidx_(I)}} => `TABLE.SIZE`_instr{tableidx#162}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"table.grow"} {x:Ttableidx_(I)}} => TABLE.GROW_instr(x) + prod{tableidx#164 : tableidx, x : idx} {{"table.grow"} {x:Ttableidx_(I)}} => `TABLE.GROW`_instr{tableidx#164}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"table.fill"} {x:Ttableidx_(I)}} => TABLE.FILL_instr(x) + prod{tableidx#166 : tableidx, x : idx} {{"table.fill"} {x:Ttableidx_(I)}} => `TABLE.FILL`_instr{tableidx#166}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x_1 : idx, x_2 : idx} {{"table.copy"} {x_1:Ttableidx_(I)} {x_2:Ttableidx_(I)}} => TABLE.COPY_instr(x_1, x_2) + prod{tableidx#168 : tableidx, x_1 : idx, x_2 : idx} {{"table.copy"} {x_1:Ttableidx_(I)} {x_2:Ttableidx_(I)}} => `TABLE.COPY`_instr{tableidx#168}(x_1, x_2) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, y : idx} {{"table.init"} {x:Ttableidx_(I)} {y:Telemidx_(I)}} => TABLE.INIT_instr(x, y) + prod{tableidx#171 : tableidx, elemidx#57 : elemidx, x : idx, y : idx} {{"table.init"} {x:Ttableidx_(I)} {y:Telemidx_(I)}} => `TABLE.INIT`_instr{tableidx#171, elemidx#57}(x, y) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"elem.drop"} {x:Telemidx_(I)}} => ELEM.DROP_instr(x) + prod{elemidx#59 : elemidx, x : idx} {{"elem.drop"} {x:Telemidx_(I)}} => `ELEM.DROP`_instr{elemidx#59}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => LOAD_instr(I32_numtype, ?(), x, ao) + prod{`numtype?#44` : numtype?, memidx#278 : memidx, memarg#181 : memarg, x : idx, ao : memarg} {{"i32.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr{`numtype?#44`, memidx#278, memarg#181}(`I32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => LOAD_instr(I64_numtype, ?(), x, ao) + prod{`numtype?#45` : numtype?, memidx#280 : memidx, memarg#183 : memarg, x : idx, ao : memarg} {{"i64.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `LOAD`_instr{`numtype?#45`, memidx#280, memarg#183}(`I64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"f32.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => LOAD_instr(F32_numtype, ?(), x, ao) + prod{`numtype?#46` : numtype?, memidx#282 : memidx, memarg#185 : memarg, x : idx, ao : memarg} {{"f32.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr{`numtype?#46`, memidx#282, memarg#185}(`F32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"f64.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => LOAD_instr(F64_numtype, ?(), x, ao) + prod{`numtype?#47` : numtype?, memidx#284 : memidx, memarg#187 : memarg, x : idx, ao : memarg} {{"f64.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `LOAD`_instr{`numtype?#47`, memidx#284, memarg#187}(`F64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.load8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(8), S_sx)), x, ao) + prod{`numtype?#48` : numtype?, memidx#286 : memidx, memarg#189 : memarg, sz#1643 : sz, sx#15729 : sx, i#97957 : nat, i#97964 : nat, x : idx, ao : memarg} {{"i32.load8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr{`numtype?#48`, memidx#286, memarg#189}(`I32`_numtype, ?(`%_%`_loadop_{sz#1643, sx#15729, i#97957}(`%`_sz{i#97964}(8), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.load8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(8), U_sx)), x, ao) + prod{`numtype?#49` : numtype?, memidx#288 : memidx, memarg#191 : memarg, sz#1661 : sz, sx#15747 : sx, i#98021 : nat, i#98028 : nat, x : idx, ao : memarg} {{"i32.load8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr{`numtype?#49`, memidx#288, memarg#191}(`I32`_numtype, ?(`%_%`_loadop_{sz#1661, sx#15747, i#98021}(`%`_sz{i#98028}(8), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.load16_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(16), S_sx)), x, ao) + prod{`numtype?#50` : numtype?, memidx#290 : memidx, memarg#193 : memarg, sz#1679 : sz, sx#15765 : sx, i#98085 : nat, i#98092 : nat, x : idx, ao : memarg} {{"i32.load16_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr{`numtype?#50`, memidx#290, memarg#193}(`I32`_numtype, ?(`%_%`_loadop_{sz#1679, sx#15765, i#98085}(`%`_sz{i#98092}(16), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.load16_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(16), U_sx)), x, ao) + prod{`numtype?#51` : numtype?, memidx#292 : memidx, memarg#195 : memarg, sz#1697 : sz, sx#15783 : sx, i#98149 : nat, i#98156 : nat, x : idx, ao : memarg} {{"i32.load16_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr{`numtype?#51`, memidx#292, memarg#195}(`I32`_numtype, ?(`%_%`_loadop_{sz#1697, sx#15783, i#98149}(`%`_sz{i#98156}(16), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(8), S_sx)), x, ao) + prod{`numtype?#52` : numtype?, memidx#294 : memidx, memarg#197 : memarg, sz#1715 : sz, sx#15801 : sx, i#98213 : nat, i#98220 : nat, x : idx, ao : memarg} {{"i64.load8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr{`numtype?#52`, memidx#294, memarg#197}(`I64`_numtype, ?(`%_%`_loadop_{sz#1715, sx#15801, i#98213}(`%`_sz{i#98220}(8), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(8), U_sx)), x, ao) + prod{`numtype?#53` : numtype?, memidx#296 : memidx, memarg#199 : memarg, sz#1733 : sz, sx#15819 : sx, i#98277 : nat, i#98284 : nat, x : idx, ao : memarg} {{"i64.load8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr{`numtype?#53`, memidx#296, memarg#199}(`I64`_numtype, ?(`%_%`_loadop_{sz#1733, sx#15819, i#98277}(`%`_sz{i#98284}(8), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load16_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(16), S_sx)), x, ao) + prod{`numtype?#54` : numtype?, memidx#298 : memidx, memarg#201 : memarg, sz#1751 : sz, sx#15837 : sx, i#98341 : nat, i#98348 : nat, x : idx, ao : memarg} {{"i64.load16_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr{`numtype?#54`, memidx#298, memarg#201}(`I64`_numtype, ?(`%_%`_loadop_{sz#1751, sx#15837, i#98341}(`%`_sz{i#98348}(16), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load16_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(16), U_sx)), x, ao) + prod{`numtype?#55` : numtype?, memidx#300 : memidx, memarg#203 : memarg, sz#1769 : sz, sx#15855 : sx, i#98405 : nat, i#98412 : nat, x : idx, ao : memarg} {{"i64.load16_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr{`numtype?#55`, memidx#300, memarg#203}(`I64`_numtype, ?(`%_%`_loadop_{sz#1769, sx#15855, i#98405}(`%`_sz{i#98412}(16), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load32_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(32), S_sx)), x, ao) + prod{`numtype?#56` : numtype?, memidx#302 : memidx, memarg#205 : memarg, sz#1787 : sz, sx#15873 : sx, i#98469 : nat, i#98476 : nat, x : idx, ao : memarg} {{"i64.load32_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr{`numtype?#56`, memidx#302, memarg#205}(`I64`_numtype, ?(`%_%`_loadop_{sz#1787, sx#15873, i#98469}(`%`_sz{i#98476}(32), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load32_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(32), U_sx)), x, ao) + prod{`numtype?#57` : numtype?, memidx#304 : memidx, memarg#207 : memarg, sz#1805 : sz, sx#15891 : sx, i#98533 : nat, i#98540 : nat, x : idx, ao : memarg} {{"i64.load32_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr{`numtype?#57`, memidx#304, memarg#207}(`I64`_numtype, ?(`%_%`_loadop_{sz#1805, sx#15891, i#98533}(`%`_sz{i#98540}(32), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(16)}} => VLOAD_instr(V128_vectype, ?(), x, ao) + prod{`vectype?#27` : vectype?, memidx#306 : memidx, memarg#209 : memarg, x : idx, ao : memarg} {{"v128.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(16)}} => `VLOAD`_instr{`vectype?#27`, memidx#306, memarg#209}(`V128`_vectype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load8x8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, S_sx)), x, ao) + prod{`vectype?#28` : vectype?, memidx#308 : memidx, memarg#211 : memarg, sz#1852 : sz, M#349 : M, sx#15908 : sx, i#98628 : nat, i#98635 : nat, x : idx, ao : memarg} {{"v128.load8x8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#28`, memidx#308, memarg#211}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1852, M#349, sx#15908, i#98628}(`%`_sz{i#98635}(8), 8, `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load8x8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, U_sx)), x, ao) + prod{`vectype?#29` : vectype?, memidx#310 : memidx, memarg#213 : memarg, sz#1899 : sz, M#366 : M, sx#15925 : sx, i#98692 : nat, i#98699 : nat, x : idx, ao : memarg} {{"v128.load8x8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#29`, memidx#310, memarg#213}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1899, M#366, sx#15925, i#98692}(`%`_sz{i#98699}(8), 8, `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load16x4_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, S_sx)), x, ao) + prod{`vectype?#30` : vectype?, memidx#312 : memidx, memarg#215 : memarg, sz#1946 : sz, M#383 : M, sx#15942 : sx, i#98756 : nat, i#98763 : nat, x : idx, ao : memarg} {{"v128.load16x4_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#30`, memidx#312, memarg#215}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1946, M#383, sx#15942, i#98756}(`%`_sz{i#98763}(16), 4, `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load16x4_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, U_sx)), x, ao) + prod{`vectype?#31` : vectype?, memidx#314 : memidx, memarg#217 : memarg, sz#1993 : sz, M#400 : M, sx#15959 : sx, i#98820 : nat, i#98827 : nat, x : idx, ao : memarg} {{"v128.load16x4_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#31`, memidx#314, memarg#217}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1993, M#400, sx#15959, i#98820}(`%`_sz{i#98827}(16), 4, `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load32x2_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, S_sx)), x, ao) + prod{`vectype?#32` : vectype?, memidx#316 : memidx, memarg#219 : memarg, sz#2040 : sz, M#417 : M, sx#15976 : sx, i#98884 : nat, i#98891 : nat, x : idx, ao : memarg} {{"v128.load32x2_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#32`, memidx#316, memarg#219}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#2040, M#417, sx#15976, i#98884}(`%`_sz{i#98891}(32), 2, `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load32x2_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, U_sx)), x, ao) + prod{`vectype?#33` : vectype?, memidx#318 : memidx, memarg#221 : memarg, sz#2087 : sz, M#434 : M, sx#15993 : sx, i#98948 : nat, i#98955 : nat, x : idx, ao : memarg} {{"v128.load32x2_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#33`, memidx#318, memarg#221}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#2087, M#434, sx#15993, i#98948}(`%`_sz{i#98955}(32), 2, `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load8_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(8))), x, ao) + prod{`vectype?#34` : vectype?, memidx#320 : memidx, memarg#223 : memarg, sz#2134 : sz, i#99018 : nat, x : idx, ao : memarg} {{"v128.load8_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `VLOAD`_instr{`vectype?#34`, memidx#320, memarg#223}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2134}(`%`_sz{i#99018}(8))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load16_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(16))), x, ao) + prod{`vectype?#35` : vectype?, memidx#322 : memidx, memarg#225 : memarg, sz#2181 : sz, i#99081 : nat, x : idx, ao : memarg} {{"v128.load16_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `VLOAD`_instr{`vectype?#35`, memidx#322, memarg#225}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2181}(`%`_sz{i#99081}(16))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load32_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(32))), x, ao) + prod{`vectype?#36` : vectype?, memidx#324 : memidx, memarg#227 : memarg, sz#2228 : sz, i#99144 : nat, x : idx, ao : memarg} {{"v128.load32_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `VLOAD`_instr{`vectype?#36`, memidx#324, memarg#227}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2228}(`%`_sz{i#99144}(32))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load64_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(64))), x, ao) + prod{`vectype?#37` : vectype?, memidx#326 : memidx, memarg#229 : memarg, sz#2275 : sz, i#99207 : nat, x : idx, ao : memarg} {{"v128.load64_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#37`, memidx#326, memarg#229}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2275}(`%`_sz{i#99207}(64))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load32_zero"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(32))), x, ao) + prod{`vectype?#38` : vectype?, memidx#328 : memidx, memarg#231 : memarg, sz#2322 : sz, i#99264 : nat, i#99271 : nat, x : idx, ao : memarg} {{"v128.load32_zero"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `VLOAD`_instr{`vectype?#38`, memidx#328, memarg#231}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#2322, i#99264}(`%`_sz{i#99271}(32))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load64_zero"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(64))), x, ao) + prod{`vectype?#39` : vectype?, memidx#330 : memidx, memarg#233 : memarg, sz#2369 : sz, i#99328 : nat, i#99335 : nat, x : idx, ao : memarg} {{"v128.load64_zero"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#39`, memidx#330, memarg#233}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#2369, i#99328}(`%`_sz{i#99335}(64))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.load8_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)} {i:Tlaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(8), x, ao, i) + prod{vectype#286 : vectype, sz#2371 : sz, memidx#332 : memidx, memarg#235 : memarg, laneidx#75 : laneidx, i#99391 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.load8_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)} {i:Tlaneidx}} => `VLOAD_LANE`_instr{vectype#286, sz#2371, memidx#332, memarg#235, laneidx#75}(`V128`_vectype, `%`_sz{i#99391}(8), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.load16_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)} {i:Tlaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(16), x, ao, i) + prod{vectype#288 : vectype, sz#2373 : sz, memidx#334 : memidx, memarg#237 : memarg, laneidx#77 : laneidx, i#99459 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.load16_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)} {i:Tlaneidx}} => `VLOAD_LANE`_instr{vectype#288, sz#2373, memidx#334, memarg#237, laneidx#77}(`V128`_vectype, `%`_sz{i#99459}(16), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.load32_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)} {i:Tlaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(32), x, ao, i) + prod{vectype#290 : vectype, sz#2375 : sz, memidx#336 : memidx, memarg#239 : memarg, laneidx#79 : laneidx, i#99527 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.load32_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)} {i:Tlaneidx}} => `VLOAD_LANE`_instr{vectype#290, sz#2375, memidx#336, memarg#239, laneidx#79}(`V128`_vectype, `%`_sz{i#99527}(32), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.load64_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)} {i:Tlaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(64), x, ao, i) + prod{vectype#292 : vectype, sz#2377 : sz, memidx#338 : memidx, memarg#241 : memarg, laneidx#81 : laneidx, i#99595 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.load64_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)} {i:Tlaneidx}} => `VLOAD_LANE`_instr{vectype#292, sz#2377, memidx#338, memarg#241, laneidx#81}(`V128`_vectype, `%`_sz{i#99595}(64), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => STORE_instr(I32_numtype, ?(), x, ao) + prod{`numtype?#58` : numtype?, memidx#340 : memidx, memarg#243 : memarg, x : idx, ao : memarg} {{"i32.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `STORE`_instr{`numtype?#58`, memidx#340, memarg#243}(`I32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => STORE_instr(I64_numtype, ?(), x, ao) + prod{`numtype?#59` : numtype?, memidx#342 : memidx, memarg#245 : memarg, x : idx, ao : memarg} {{"i64.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `STORE`_instr{`numtype?#59`, memidx#342, memarg#245}(`I64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"f32.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => STORE_instr(F32_numtype, ?(), x, ao) + prod{`numtype?#60` : numtype?, memidx#344 : memidx, memarg#247 : memarg, x : idx, ao : memarg} {{"f32.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `STORE`_instr{`numtype?#60`, memidx#344, memarg#247}(`F32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"f64.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => STORE_instr(F64_numtype, ?(), x, ao) + prod{`numtype?#61` : numtype?, memidx#346 : memidx, memarg#249 : memarg, x : idx, ao : memarg} {{"f64.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `STORE`_instr{`numtype?#61`, memidx#346, memarg#249}(`F64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.store8"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) + prod{`numtype?#62` : numtype?, memidx#348 : memidx, memarg#251 : memarg, sz#2390 : sz, i#99803 : nat, i#99804 : nat, x : idx, ao : memarg} {{"i32.store8"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `STORE`_instr{`numtype?#62`, memidx#348, memarg#251}(`I32`_numtype, ?(`%`_storeop_{sz#2390, i#99803}(`%`_sz{i#99804}(8))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.store16"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) + prod{`numtype?#63` : numtype?, memidx#350 : memidx, memarg#253 : memarg, sz#2403 : sz, i#99876 : nat, i#99877 : nat, x : idx, ao : memarg} {{"i32.store16"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `STORE`_instr{`numtype?#63`, memidx#350, memarg#253}(`I32`_numtype, ?(`%`_storeop_{sz#2403, i#99876}(`%`_sz{i#99877}(16))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.store8"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => STORE_instr(I64_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) + prod{`numtype?#64` : numtype?, memidx#352 : memidx, memarg#255 : memarg, sz#2416 : sz, i#99949 : nat, i#99950 : nat, x : idx, ao : memarg} {{"i64.store8"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `STORE`_instr{`numtype?#64`, memidx#352, memarg#255}(`I64`_numtype, ?(`%`_storeop_{sz#2416, i#99949}(`%`_sz{i#99950}(8))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.store16"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => STORE_instr(I64_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) + prod{`numtype?#65` : numtype?, memidx#354 : memidx, memarg#257 : memarg, sz#2429 : sz, i#100022 : nat, i#100023 : nat, x : idx, ao : memarg} {{"i64.store16"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `STORE`_instr{`numtype?#65`, memidx#354, memarg#257}(`I64`_numtype, ?(`%`_storeop_{sz#2429, i#100022}(`%`_sz{i#100023}(16))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.store32"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => STORE_instr(I64_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao) + prod{`numtype?#66` : numtype?, memidx#356 : memidx, memarg#259 : memarg, sz#2442 : sz, i#100095 : nat, i#100096 : nat, x : idx, ao : memarg} {{"i64.store32"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `STORE`_instr{`numtype?#66`, memidx#356, memarg#259}(`I64`_numtype, ?(`%`_storeop_{sz#2442, i#100095}(`%`_sz{i#100096}(32))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(16)}} => VSTORE_instr(V128_vectype, x, ao) + prod{vectype#294 : vectype, memidx#358 : memidx, memarg#261 : memarg, x : idx, ao : memarg} {{"v128.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(16)}} => `VSTORE`_instr{vectype#294, memidx#358, memarg#261}(`V128`_vectype, x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.store8_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)} {i:Tlaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(8), x, ao, i) + prod{vectype#296 : vectype, sz#2444 : sz, memidx#360 : memidx, memarg#263 : memarg, laneidx#83 : laneidx, i#100183 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.store8_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)} {i:Tlaneidx}} => `VSTORE_LANE`_instr{vectype#296, sz#2444, memidx#360, memarg#263, laneidx#83}(`V128`_vectype, `%`_sz{i#100183}(8), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.store16_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)} {i:Tlaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(16), x, ao, i) + prod{vectype#298 : vectype, sz#2446 : sz, memidx#362 : memidx, memarg#265 : memarg, laneidx#85 : laneidx, i#100251 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.store16_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)} {i:Tlaneidx}} => `VSTORE_LANE`_instr{vectype#298, sz#2446, memidx#362, memarg#265, laneidx#85}(`V128`_vectype, `%`_sz{i#100251}(16), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.store32_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)} {i:Tlaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(32), x, ao, i) + prod{vectype#300 : vectype, sz#2448 : sz, memidx#364 : memidx, memarg#267 : memarg, laneidx#87 : laneidx, i#100319 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.store32_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)} {i:Tlaneidx}} => `VSTORE_LANE`_instr{vectype#300, sz#2448, memidx#364, memarg#267, laneidx#87}(`V128`_vectype, `%`_sz{i#100319}(32), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.store64_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)} {i:Tlaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(64), x, ao, i) + prod{vectype#302 : vectype, sz#2450 : sz, memidx#366 : memidx, memarg#269 : memarg, laneidx#89 : laneidx, i#100387 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.store64_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)} {i:Tlaneidx}} => `VSTORE_LANE`_instr{vectype#302, sz#2450, memidx#366, memarg#269, laneidx#89}(`V128`_vectype, `%`_sz{i#100387}(64), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"memory.size"} {x:Tmemidx_(I)}} => MEMORY.SIZE_instr(x) + prod{memidx#368 : memidx, x : idx} {{"memory.size"} {x:Tmemidx_(I)}} => `MEMORY.SIZE`_instr{memidx#368}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"memory.grow"} {x:Tmemidx_(I)}} => MEMORY.GROW_instr(x) + prod{memidx#370 : memidx, x : idx} {{"memory.grow"} {x:Tmemidx_(I)}} => `MEMORY.GROW`_instr{memidx#370}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"memory.fill"} {x:Tmemidx_(I)}} => MEMORY.FILL_instr(x) + prod{memidx#372 : memidx, x : idx} {{"memory.fill"} {x:Tmemidx_(I)}} => `MEMORY.FILL`_instr{memidx#372}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x_1 : idx, x_2 : idx} {{"memory.copy"} {x_1:Tmemidx_(I)} {x_2:Tmemidx_(I)}} => MEMORY.COPY_instr(x_1, x_2) + prod{memidx#374 : memidx, x_1 : idx, x_2 : idx} {{"memory.copy"} {x_1:Tmemidx_(I)} {x_2:Tmemidx_(I)}} => `MEMORY.COPY`_instr{memidx#374}(x_1, x_2) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, y : idx} {{"memory.init"} {x:Tmemidx_(I)} {y:Tdataidx_(I)}} => MEMORY.INIT_instr(x, y) + prod{memidx#377 : memidx, dataidx#55 : dataidx, x : idx, y : idx} {{"memory.init"} {x:Tmemidx_(I)} {y:Tdataidx_(I)}} => `MEMORY.INIT`_instr{memidx#377, dataidx#55}(x, y) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"data.drop"} {x:Tdataidx_(I)}} => DATA.DROP_instr(x) + prod{dataidx#57 : dataidx, x : idx} {{"data.drop"} {x:Tdataidx_(I)}} => `DATA.DROP`_instr{dataidx#57}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ht : heaptype} {{"ref.null"} {ht:Theaptype_(I)}} => REF.NULL_instr(ht) + prod{heaptype#1929 : heaptype, ht : heaptype} {{"ref.null"} {ht:Theaptype_(I)}} => `REF.NULL`_instr{heaptype#1929}(ht) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"ref.func"} {x:Tfuncidx_(I)}} => REF.FUNC_instr(x) + prod{funcidx#3387 : funcidx, x : idx} {{"ref.func"} {x:Tfuncidx_(I)}} => `REF.FUNC`_instr{funcidx#3387}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "ref.is_null" => REF.IS_NULL_instr + prod "ref.is_null" => `REF.IS_NULL`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "ref.as_non_null" => REF.AS_NON_NULL_instr + prod "ref.as_non_null" => `REF.AS_NON_NULL`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "ref.eq" => REF.EQ_instr + prod "ref.eq" => `REF.EQ`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{rt : reftype} {{"ref.test"} {rt:Treftype_(I)}} => REF.TEST_instr(rt) + prod{reftype#4311 : reftype, rt : reftype} {{"ref.test"} {rt:Treftype_(I)}} => `REF.TEST`_instr{reftype#4311}(rt) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{rt : reftype} {{"ref.cast"} {rt:Treftype_(I)}} => REF.CAST_instr(rt) + prod{reftype#4313 : reftype, rt : reftype} {{"ref.cast"} {rt:Treftype_(I)}} => `REF.CAST`_instr{reftype#4313}(rt) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "ref.i31" => REF.I31_instr + prod "ref.i31" => `REF.I31`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i31.get_s" => I31.GET_instr(S_sx) + prod{sx#16085 : sx} "i31.get_s" => `I31.GET`_instr{sx#16085}(`S`_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i31.get_u" => I31.GET_instr(U_sx) + prod{sx#16087 : sx} "i31.get_u" => `I31.GET`_instr{sx#16087}(`U`_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"struct.new"} {x:Ttypeidx_(I)}} => STRUCT.NEW_instr(x) + prod{typeidx#2137 : typeidx, x : idx} {{"struct.new"} {x:Ttypeidx_(I)}} => `STRUCT.NEW`_instr{typeidx#2137}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"struct.new_default"} {x:Ttypeidx_(I)}} => STRUCT.NEW_DEFAULT_instr(x) + prod{typeidx#2139 : typeidx, x : idx} {{"struct.new_default"} {x:Ttypeidx_(I)}} => `STRUCT.NEW_DEFAULT`_instr{typeidx#2139}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, i : fieldidx} {{"struct.get"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => STRUCT.GET_instr(?(), x, i) + prod{`sx?#59` : sx?, typeidx#2141 : typeidx, u32#48 : u32, x : idx, i : fieldidx} {{"struct.get"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr{`sx?#59`, typeidx#2141, u32#48}(?(), x, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, i : fieldidx} {{"struct.get_s"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => STRUCT.GET_instr(?(S_sx), x, i) + prod{`sx?#61` : sx?, typeidx#2143 : typeidx, u32#50 : u32, x : idx, i : fieldidx} {{"struct.get_s"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr{`sx?#61`, typeidx#2143, u32#50}(?(`S`_sx), x, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, i : fieldidx} {{"struct.get_u"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => STRUCT.GET_instr(?(U_sx), x, i) + prod{`sx?#63` : sx?, typeidx#2145 : typeidx, u32#52 : u32, x : idx, i : fieldidx} {{"struct.get_u"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr{`sx?#63`, typeidx#2145, u32#52}(?(`U`_sx), x, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, i : fieldidx} {{"struct.set"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => STRUCT.SET_instr(x, i) + prod{typeidx#2147 : typeidx, u32#54 : u32, x : idx, i : fieldidx} {{"struct.set"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.SET`_instr{typeidx#2147, u32#54}(x, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"array.new"} {x:Ttypeidx_(I)}} => ARRAY.NEW_instr(x) + prod{typeidx#2149 : typeidx, x : idx} {{"array.new"} {x:Ttypeidx_(I)}} => `ARRAY.NEW`_instr{typeidx#2149}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"array.new_default"} {x:Ttypeidx_(I)}} => ARRAY.NEW_DEFAULT_instr(x) + prod{typeidx#2151 : typeidx, x : idx} {{"array.new_default"} {x:Ttypeidx_(I)}} => `ARRAY.NEW_DEFAULT`_instr{typeidx#2151}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, n : n} {{"array.new_fixed"} {x:Ttypeidx_(I)} {`%`_u32(n):Tu32}} => ARRAY.NEW_FIXED_instr(x, `%`_u32(n)) + prod{typeidx#2153 : typeidx, u32#56 : u32, x : idx, i#101306 : nat, n : n, i#101266 : nat} {{"array.new_fixed"} {x:Ttypeidx_(I)} {`%`_u32{i#101266}(n):Tu32}} => `ARRAY.NEW_FIXED`_instr{typeidx#2153, u32#56}(x, `%`_u32{i#101306}(n)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, y : idx} {{"array.new_data"} {x:Ttypeidx_(I)} {y:Tdataidx_(I)}} => ARRAY.NEW_DATA_instr(x, y) + prod{typeidx#2155 : typeidx, dataidx#59 : dataidx, x : idx, y : idx} {{"array.new_data"} {x:Ttypeidx_(I)} {y:Tdataidx_(I)}} => `ARRAY.NEW_DATA`_instr{typeidx#2155, dataidx#59}(x, y) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, y : idx} {{"array.new_elem"} {x:Ttypeidx_(I)} {y:Telemidx_(I)}} => ARRAY.NEW_ELEM_instr(x, y) + prod{typeidx#2157 : typeidx, elemidx#61 : elemidx, x : idx, y : idx} {{"array.new_elem"} {x:Ttypeidx_(I)} {y:Telemidx_(I)}} => `ARRAY.NEW_ELEM`_instr{typeidx#2157, elemidx#61}(x, y) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"array.get"} {x:Ttypeidx_(I)}} => ARRAY.GET_instr(?(), x) + prod{`sx?#65` : sx?, typeidx#2159 : typeidx, x : idx} {{"array.get"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr{`sx?#65`, typeidx#2159}(?(), x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"array.get_s"} {x:Ttypeidx_(I)}} => ARRAY.GET_instr(?(S_sx), x) + prod{`sx?#67` : sx?, typeidx#2161 : typeidx, x : idx} {{"array.get_s"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr{`sx?#67`, typeidx#2161}(?(`S`_sx), x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"array.get_u"} {x:Ttypeidx_(I)}} => ARRAY.GET_instr(?(U_sx), x) + prod{`sx?#69` : sx?, typeidx#2163 : typeidx, x : idx} {{"array.get_u"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr{`sx?#69`, typeidx#2163}(?(`U`_sx), x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"array.set"} {x:Ttypeidx_(I)}} => ARRAY.SET_instr(x) + prod{typeidx#2165 : typeidx, x : idx} {{"array.set"} {x:Ttypeidx_(I)}} => `ARRAY.SET`_instr{typeidx#2165}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "array.len" => ARRAY.LEN_instr + prod "array.len" => `ARRAY.LEN`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"array.fill"} {x:Ttypeidx_(I)}} => ARRAY.FILL_instr(x) + prod{typeidx#2167 : typeidx, x : idx} {{"array.fill"} {x:Ttypeidx_(I)}} => `ARRAY.FILL`_instr{typeidx#2167}(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x_1 : idx, x_2 : idx} {{"array.copy"} {x_1:Ttypeidx_(I)} {x_2:Ttypeidx_(I)}} => ARRAY.COPY_instr(x_1, x_2) + prod{typeidx#2169 : typeidx, x_1 : idx, x_2 : idx} {{"array.copy"} {x_1:Ttypeidx_(I)} {x_2:Ttypeidx_(I)}} => `ARRAY.COPY`_instr{typeidx#2169}(x_1, x_2) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, y : idx} {{"array.init_data"} {x:Ttypeidx_(I)} {y:Tdataidx_(I)}} => ARRAY.INIT_DATA_instr(x, y) + prod{typeidx#2172 : typeidx, dataidx#61 : dataidx, x : idx, y : idx} {{"array.init_data"} {x:Ttypeidx_(I)} {y:Tdataidx_(I)}} => `ARRAY.INIT_DATA`_instr{typeidx#2172, dataidx#61}(x, y) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, y : idx} {{"array.init_elem"} {x:Ttypeidx_(I)} {y:Telemidx_(I)}} => ARRAY.INIT_ELEM_instr(x, y) + prod{typeidx#2174 : typeidx, elemidx#63 : elemidx, x : idx, y : idx} {{"array.init_elem"} {x:Ttypeidx_(I)} {y:Telemidx_(I)}} => `ARRAY.INIT_ELEM`_instr{typeidx#2174, elemidx#63}(x, y) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "any.convert_extern" => ANY.CONVERT_EXTERN_instr + prod "any.convert_extern" => `ANY.CONVERT_EXTERN`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "extern.convert_any" => EXTERN.CONVERT_ANY_instr + prod "extern.convert_any" => `EXTERN.CONVERT_ANY`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{c : u32} {{"i32.const"} {c:Ti32}} => CONST_instr(I32_numtype, c) + prod{numtype#891 : numtype, c : u32} {{"i32.const"} {c:Ti32}} => `CONST`_instr{numtype#891}(`I32`_numtype, c) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{c : u64} {{"i64.const"} {c:Ti64}} => CONST_instr(I64_numtype, c) + prod{numtype#893 : numtype, c : u64} {{"i64.const"} {c:Ti64}} => `CONST`_instr{numtype#893}(`I64`_numtype, c) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{c : f32} {{"f32.const"} {c:Tf32}} => CONST_instr(F32_numtype, c) + prod{numtype#895 : numtype, c : f32} {{"f32.const"} {c:Tf32}} => `CONST`_instr{numtype#895}(`F32`_numtype, c) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{c : f64} {{"f64.const"} {c:Tf64}} => CONST_instr(F64_numtype, c) + prod{numtype#897 : numtype, c : f64} {{"f64.const"} {c:Tf64}} => `CONST`_instr{numtype#897}(`F64`_numtype, c) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.eqz" => TESTOP_instr(I32_numtype, EQZ_testop_) + prod{numtype#899 : numtype} "i32.eqz" => `TESTOP`_instr{numtype#899}(`I32`_numtype, `EQZ`_testop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.eqz" => TESTOP_instr(I64_numtype, EQZ_testop_) + prod{numtype#901 : numtype} "i64.eqz" => `TESTOP`_instr{numtype#901}(`I64`_numtype, `EQZ`_testop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.eq" => RELOP_instr(I32_numtype, EQ_relop_) + prod{numtype#903 : numtype} "i32.eq" => `RELOP`_instr{numtype#903}(`I32`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.ne" => RELOP_instr(I32_numtype, NE_relop_) + prod{numtype#905 : numtype} "i32.ne" => `RELOP`_instr{numtype#905}(`I32`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.lt_s" => RELOP_instr(I32_numtype, LT_relop_(S_sx)) + prod{numtype#907 : numtype, sx#16331 : sx} "i32.lt_s" => `RELOP`_instr{numtype#907}(`I32`_numtype, `LT`_relop_{sx#16331}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.lt_u" => RELOP_instr(I32_numtype, LT_relop_(U_sx)) + prod{numtype#909 : numtype, sx#16455 : sx} "i32.lt_u" => `RELOP`_instr{numtype#909}(`I32`_numtype, `LT`_relop_{sx#16455}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.gt_s" => RELOP_instr(I32_numtype, GT_relop_(S_sx)) + prod{numtype#911 : numtype, sx#16579 : sx} "i32.gt_s" => `RELOP`_instr{numtype#911}(`I32`_numtype, `GT`_relop_{sx#16579}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.gt_u" => RELOP_instr(I32_numtype, GT_relop_(U_sx)) + prod{numtype#913 : numtype, sx#16703 : sx} "i32.gt_u" => `RELOP`_instr{numtype#913}(`I32`_numtype, `GT`_relop_{sx#16703}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.le_s" => RELOP_instr(I32_numtype, LE_relop_(S_sx)) + prod{numtype#915 : numtype, sx#16827 : sx} "i32.le_s" => `RELOP`_instr{numtype#915}(`I32`_numtype, `LE`_relop_{sx#16827}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.le_u" => RELOP_instr(I32_numtype, LE_relop_(U_sx)) + prod{numtype#917 : numtype, sx#16951 : sx} "i32.le_u" => `RELOP`_instr{numtype#917}(`I32`_numtype, `LE`_relop_{sx#16951}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.ge_s" => RELOP_instr(I32_numtype, GE_relop_(S_sx)) + prod{numtype#919 : numtype, sx#17075 : sx} "i32.ge_s" => `RELOP`_instr{numtype#919}(`I32`_numtype, `GE`_relop_{sx#17075}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.ge_u" => RELOP_instr(I32_numtype, GE_relop_(U_sx)) + prod{numtype#921 : numtype, sx#17199 : sx} "i32.ge_u" => `RELOP`_instr{numtype#921}(`I32`_numtype, `GE`_relop_{sx#17199}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.eq" => RELOP_instr(I64_numtype, EQ_relop_) + prod{numtype#923 : numtype} "i64.eq" => `RELOP`_instr{numtype#923}(`I64`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.ne" => RELOP_instr(I64_numtype, NE_relop_) + prod{numtype#925 : numtype} "i64.ne" => `RELOP`_instr{numtype#925}(`I64`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.lt_s" => RELOP_instr(I64_numtype, LT_relop_(S_sx)) + prod{numtype#927 : numtype, sx#17443 : sx} "i64.lt_s" => `RELOP`_instr{numtype#927}(`I64`_numtype, `LT`_relop_{sx#17443}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.lt_u" => RELOP_instr(I64_numtype, LT_relop_(U_sx)) + prod{numtype#929 : numtype, sx#17567 : sx} "i64.lt_u" => `RELOP`_instr{numtype#929}(`I64`_numtype, `LT`_relop_{sx#17567}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.gt_s" => RELOP_instr(I64_numtype, GT_relop_(S_sx)) + prod{numtype#931 : numtype, sx#17691 : sx} "i64.gt_s" => `RELOP`_instr{numtype#931}(`I64`_numtype, `GT`_relop_{sx#17691}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.gt_u" => RELOP_instr(I64_numtype, GT_relop_(U_sx)) + prod{numtype#933 : numtype, sx#17815 : sx} "i64.gt_u" => `RELOP`_instr{numtype#933}(`I64`_numtype, `GT`_relop_{sx#17815}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.le_s" => RELOP_instr(I64_numtype, LE_relop_(S_sx)) + prod{numtype#935 : numtype, sx#17939 : sx} "i64.le_s" => `RELOP`_instr{numtype#935}(`I64`_numtype, `LE`_relop_{sx#17939}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.le_u" => RELOP_instr(I64_numtype, LE_relop_(U_sx)) + prod{numtype#937 : numtype, sx#18063 : sx} "i64.le_u" => `RELOP`_instr{numtype#937}(`I64`_numtype, `LE`_relop_{sx#18063}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.ge_s" => RELOP_instr(I64_numtype, GE_relop_(S_sx)) + prod{numtype#939 : numtype, sx#18187 : sx} "i64.ge_s" => `RELOP`_instr{numtype#939}(`I64`_numtype, `GE`_relop_{sx#18187}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.ge_u" => RELOP_instr(I64_numtype, GE_relop_(U_sx)) + prod{numtype#941 : numtype, sx#18311 : sx} "i64.ge_u" => `RELOP`_instr{numtype#941}(`I64`_numtype, `GE`_relop_{sx#18311}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.eq" => RELOP_instr(F32_numtype, EQ_relop_) + prod{numtype#943 : numtype} "f32.eq" => `RELOP`_instr{numtype#943}(`F32`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.ne" => RELOP_instr(F32_numtype, NE_relop_) + prod{numtype#945 : numtype} "f32.ne" => `RELOP`_instr{numtype#945}(`F32`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.lt" => RELOP_instr(F32_numtype, LT_relop_) + prod{numtype#947 : numtype} "f32.lt" => `RELOP`_instr{numtype#947}(`F32`_numtype, `LT`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.gt" => RELOP_instr(F32_numtype, GT_relop_) + prod{numtype#949 : numtype} "f32.gt" => `RELOP`_instr{numtype#949}(`F32`_numtype, `GT`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.le" => RELOP_instr(F32_numtype, LE_relop_) + prod{numtype#951 : numtype} "f32.le" => `RELOP`_instr{numtype#951}(`F32`_numtype, `LE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.ge" => RELOP_instr(F32_numtype, GE_relop_) + prod{numtype#953 : numtype} "f32.ge" => `RELOP`_instr{numtype#953}(`F32`_numtype, `GE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.eq" => RELOP_instr(F64_numtype, EQ_relop_) + prod{numtype#955 : numtype} "f64.eq" => `RELOP`_instr{numtype#955}(`F64`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.ne" => RELOP_instr(F64_numtype, NE_relop_) + prod{numtype#957 : numtype} "f64.ne" => `RELOP`_instr{numtype#957}(`F64`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.lt" => RELOP_instr(F64_numtype, LT_relop_) + prod{numtype#959 : numtype} "f64.lt" => `RELOP`_instr{numtype#959}(`F64`_numtype, `LT`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.gt" => RELOP_instr(F64_numtype, GT_relop_) + prod{numtype#961 : numtype} "f64.gt" => `RELOP`_instr{numtype#961}(`F64`_numtype, `GT`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.le" => RELOP_instr(F64_numtype, LE_relop_) + prod{numtype#963 : numtype} "f64.le" => `RELOP`_instr{numtype#963}(`F64`_numtype, `LE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.ge" => RELOP_instr(F64_numtype, GE_relop_) + prod{numtype#965 : numtype} "f64.ge" => `RELOP`_instr{numtype#965}(`F64`_numtype, `GE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.clz" => UNOP_instr(I32_numtype, CLZ_unop_) + prod{numtype#967 : numtype} "i32.clz" => `UNOP`_instr{numtype#967}(`I32`_numtype, `CLZ`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.ctz" => UNOP_instr(I32_numtype, CTZ_unop_) + prod{numtype#969 : numtype} "i32.ctz" => `UNOP`_instr{numtype#969}(`I32`_numtype, `CTZ`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.popcnt" => UNOP_instr(I32_numtype, POPCNT_unop_) + prod{numtype#971 : numtype} "i32.popcnt" => `UNOP`_instr{numtype#971}(`I32`_numtype, `POPCNT`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.extend8_s" => UNOP_instr(I32_numtype, EXTEND_unop_(`%`_sz(8))) + prod{numtype#973 : numtype, sz#2529 : sz, i#101930 : nat, i#101937 : nat} "i32.extend8_s" => `UNOP`_instr{numtype#973}(`I32`_numtype, `EXTEND`_unop_{sz#2529, i#101930}(`%`_sz{i#101937}(8))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.extend16_s" => UNOP_instr(I32_numtype, EXTEND_unop_(`%`_sz(16))) + prod{numtype#975 : numtype, sz#2563 : sz, i#101946 : nat, i#101953 : nat} "i32.extend16_s" => `UNOP`_instr{numtype#975}(`I32`_numtype, `EXTEND`_unop_{sz#2563, i#101946}(`%`_sz{i#101953}(16))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.clz" => UNOP_instr(I64_numtype, CLZ_unop_) + prod{numtype#977 : numtype} "i64.clz" => `UNOP`_instr{numtype#977}(`I64`_numtype, `CLZ`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.ctz" => UNOP_instr(I64_numtype, CTZ_unop_) + prod{numtype#979 : numtype} "i64.ctz" => `UNOP`_instr{numtype#979}(`I64`_numtype, `CTZ`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.popcnt" => UNOP_instr(I64_numtype, POPCNT_unop_) + prod{numtype#981 : numtype} "i64.popcnt" => `UNOP`_instr{numtype#981}(`I64`_numtype, `POPCNT`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.extend8_s" => UNOP_instr(I64_numtype, EXTEND_unop_(`%`_sz(8))) + prod{numtype#983 : numtype, sz#2642 : sz, i#101962 : nat, i#101969 : nat} "i64.extend8_s" => `UNOP`_instr{numtype#983}(`I64`_numtype, `EXTEND`_unop_{sz#2642, i#101962}(`%`_sz{i#101969}(8))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.extend16_s" => UNOP_instr(I64_numtype, EXTEND_unop_(`%`_sz(16))) + prod{numtype#985 : numtype, sz#2676 : sz, i#101978 : nat, i#101985 : nat} "i64.extend16_s" => `UNOP`_instr{numtype#985}(`I64`_numtype, `EXTEND`_unop_{sz#2676, i#101978}(`%`_sz{i#101985}(16))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.extend32_s" => UNOP_instr(I64_numtype, EXTEND_unop_(`%`_sz(32))) + prod{numtype#987 : numtype, sz#2710 : sz, i#101994 : nat, i#102001 : nat} "i64.extend32_s" => `UNOP`_instr{numtype#987}(`I64`_numtype, `EXTEND`_unop_{sz#2710, i#101994}(`%`_sz{i#102001}(32))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.abs" => UNOP_instr(F32_numtype, ABS_unop_) + prod{numtype#989 : numtype} "f32.abs" => `UNOP`_instr{numtype#989}(`F32`_numtype, `ABS`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.neg" => UNOP_instr(F32_numtype, NEG_unop_) + prod{numtype#991 : numtype} "f32.neg" => `UNOP`_instr{numtype#991}(`F32`_numtype, `NEG`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.sqrt" => UNOP_instr(F32_numtype, SQRT_unop_) + prod{numtype#993 : numtype} "f32.sqrt" => `UNOP`_instr{numtype#993}(`F32`_numtype, `SQRT`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.ceil" => UNOP_instr(F32_numtype, CEIL_unop_) + prod{numtype#995 : numtype} "f32.ceil" => `UNOP`_instr{numtype#995}(`F32`_numtype, `CEIL`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.floor" => UNOP_instr(F32_numtype, FLOOR_unop_) + prod{numtype#997 : numtype} "f32.floor" => `UNOP`_instr{numtype#997}(`F32`_numtype, `FLOOR`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.trunc" => UNOP_instr(F32_numtype, TRUNC_unop_) + prod{numtype#999 : numtype} "f32.trunc" => `UNOP`_instr{numtype#999}(`F32`_numtype, `TRUNC`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.nearest" => UNOP_instr(F32_numtype, NEAREST_unop_) + prod{numtype#1001 : numtype} "f32.nearest" => `UNOP`_instr{numtype#1001}(`F32`_numtype, `NEAREST`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.abs" => UNOP_instr(F64_numtype, ABS_unop_) + prod{numtype#1003 : numtype} "f64.abs" => `UNOP`_instr{numtype#1003}(`F64`_numtype, `ABS`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.neg" => UNOP_instr(F64_numtype, NEG_unop_) + prod{numtype#1005 : numtype} "f64.neg" => `UNOP`_instr{numtype#1005}(`F64`_numtype, `NEG`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.sqrt" => UNOP_instr(F64_numtype, SQRT_unop_) + prod{numtype#1007 : numtype} "f64.sqrt" => `UNOP`_instr{numtype#1007}(`F64`_numtype, `SQRT`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.ceil" => UNOP_instr(F64_numtype, CEIL_unop_) + prod{numtype#1009 : numtype} "f64.ceil" => `UNOP`_instr{numtype#1009}(`F64`_numtype, `CEIL`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.floor" => UNOP_instr(F64_numtype, FLOOR_unop_) + prod{numtype#1011 : numtype} "f64.floor" => `UNOP`_instr{numtype#1011}(`F64`_numtype, `FLOOR`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.trunc" => UNOP_instr(F64_numtype, TRUNC_unop_) + prod{numtype#1013 : numtype} "f64.trunc" => `UNOP`_instr{numtype#1013}(`F64`_numtype, `TRUNC`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.nearest" => UNOP_instr(F64_numtype, NEAREST_unop_) + prod{numtype#1015 : numtype} "f64.nearest" => `UNOP`_instr{numtype#1015}(`F64`_numtype, `NEAREST`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.add" => BINOP_instr(I32_numtype, ADD_binop_) + prod{numtype#1017 : numtype} "i32.add" => `BINOP`_instr{numtype#1017}(`I32`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.sub" => BINOP_instr(I32_numtype, SUB_binop_) + prod{numtype#1019 : numtype} "i32.sub" => `BINOP`_instr{numtype#1019}(`I32`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.mul" => BINOP_instr(I32_numtype, MUL_binop_) + prod{numtype#1021 : numtype} "i32.mul" => `BINOP`_instr{numtype#1021}(`I32`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.div_s" => BINOP_instr(I32_numtype, DIV_binop_(S_sx)) + prod{numtype#1023 : numtype, sx#18540 : sx} "i32.div_s" => `BINOP`_instr{numtype#1023}(`I32`_numtype, `DIV`_binop_{sx#18540}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.div_u" => BINOP_instr(I32_numtype, DIV_binop_(U_sx)) + prod{numtype#1025 : numtype, sx#18634 : sx} "i32.div_u" => `BINOP`_instr{numtype#1025}(`I32`_numtype, `DIV`_binop_{sx#18634}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.rem_s" => BINOP_instr(I32_numtype, REM_binop_(S_sx)) + prod{numtype#1027 : numtype, sx#18728 : sx} "i32.rem_s" => `BINOP`_instr{numtype#1027}(`I32`_numtype, `REM`_binop_{sx#18728}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.rem_u" => BINOP_instr(I32_numtype, REM_binop_(U_sx)) + prod{numtype#1029 : numtype, sx#18822 : sx} "i32.rem_u" => `BINOP`_instr{numtype#1029}(`I32`_numtype, `REM`_binop_{sx#18822}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.and" => BINOP_instr(I32_numtype, AND_binop_) + prod{numtype#1031 : numtype} "i32.and" => `BINOP`_instr{numtype#1031}(`I32`_numtype, `AND`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.or" => BINOP_instr(I32_numtype, OR_binop_) + prod{numtype#1033 : numtype} "i32.or" => `BINOP`_instr{numtype#1033}(`I32`_numtype, `OR`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.xor" => BINOP_instr(I32_numtype, XOR_binop_) + prod{numtype#1035 : numtype} "i32.xor" => `BINOP`_instr{numtype#1035}(`I32`_numtype, `XOR`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.shl" => BINOP_instr(I32_numtype, SHL_binop_) + prod{numtype#1037 : numtype} "i32.shl" => `BINOP`_instr{numtype#1037}(`I32`_numtype, `SHL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.shr_s" => BINOP_instr(I32_numtype, SHR_binop_(S_sx)) + prod{numtype#1039 : numtype, sx#19096 : sx} "i32.shr_s" => `BINOP`_instr{numtype#1039}(`I32`_numtype, `SHR`_binop_{sx#19096}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.shr_u" => BINOP_instr(I32_numtype, SHR_binop_(U_sx)) + prod{numtype#1041 : numtype, sx#19190 : sx} "i32.shr_u" => `BINOP`_instr{numtype#1041}(`I32`_numtype, `SHR`_binop_{sx#19190}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.rotl" => BINOP_instr(I32_numtype, ROTL_binop_) + prod{numtype#1043 : numtype} "i32.rotl" => `BINOP`_instr{numtype#1043}(`I32`_numtype, `ROTL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.rotr" => BINOP_instr(I32_numtype, ROTR_binop_) + prod{numtype#1045 : numtype} "i32.rotr" => `BINOP`_instr{numtype#1045}(`I32`_numtype, `ROTR`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.add" => BINOP_instr(I64_numtype, ADD_binop_) + prod{numtype#1047 : numtype} "i64.add" => `BINOP`_instr{numtype#1047}(`I64`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.sub" => BINOP_instr(I64_numtype, SUB_binop_) + prod{numtype#1049 : numtype} "i64.sub" => `BINOP`_instr{numtype#1049}(`I64`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.mul" => BINOP_instr(I64_numtype, MUL_binop_) + prod{numtype#1051 : numtype} "i64.mul" => `BINOP`_instr{numtype#1051}(`I64`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.div_s" => BINOP_instr(I64_numtype, DIV_binop_(S_sx)) + prod{numtype#1053 : numtype, sx#19509 : sx} "i64.div_s" => `BINOP`_instr{numtype#1053}(`I64`_numtype, `DIV`_binop_{sx#19509}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.div_u" => BINOP_instr(I64_numtype, DIV_binop_(U_sx)) + prod{numtype#1055 : numtype, sx#19603 : sx} "i64.div_u" => `BINOP`_instr{numtype#1055}(`I64`_numtype, `DIV`_binop_{sx#19603}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.rem_s" => BINOP_instr(I64_numtype, REM_binop_(S_sx)) + prod{numtype#1057 : numtype, sx#19697 : sx} "i64.rem_s" => `BINOP`_instr{numtype#1057}(`I64`_numtype, `REM`_binop_{sx#19697}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.rem_u" => BINOP_instr(I64_numtype, REM_binop_(U_sx)) + prod{numtype#1059 : numtype, sx#19791 : sx} "i64.rem_u" => `BINOP`_instr{numtype#1059}(`I64`_numtype, `REM`_binop_{sx#19791}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.and" => BINOP_instr(I64_numtype, AND_binop_) + prod{numtype#1061 : numtype} "i64.and" => `BINOP`_instr{numtype#1061}(`I64`_numtype, `AND`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.or" => BINOP_instr(I64_numtype, OR_binop_) + prod{numtype#1063 : numtype} "i64.or" => `BINOP`_instr{numtype#1063}(`I64`_numtype, `OR`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.xor" => BINOP_instr(I64_numtype, XOR_binop_) + prod{numtype#1065 : numtype} "i64.xor" => `BINOP`_instr{numtype#1065}(`I64`_numtype, `XOR`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.shl" => BINOP_instr(I64_numtype, SHL_binop_) + prod{numtype#1067 : numtype} "i64.shl" => `BINOP`_instr{numtype#1067}(`I64`_numtype, `SHL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.shr_s" => BINOP_instr(I64_numtype, SHR_binop_(S_sx)) + prod{numtype#1069 : numtype, sx#20065 : sx} "i64.shr_s" => `BINOP`_instr{numtype#1069}(`I64`_numtype, `SHR`_binop_{sx#20065}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.shr_u" => BINOP_instr(I64_numtype, SHR_binop_(U_sx)) + prod{numtype#1071 : numtype, sx#20159 : sx} "i64.shr_u" => `BINOP`_instr{numtype#1071}(`I64`_numtype, `SHR`_binop_{sx#20159}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.rotl" => BINOP_instr(I64_numtype, ROTL_binop_) + prod{numtype#1073 : numtype} "i64.rotl" => `BINOP`_instr{numtype#1073}(`I64`_numtype, `ROTL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.rotr" => BINOP_instr(I64_numtype, ROTR_binop_) + prod{numtype#1075 : numtype} "i64.rotr" => `BINOP`_instr{numtype#1075}(`I64`_numtype, `ROTR`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.add" => BINOP_instr(F32_numtype, ADD_binop_) + prod{numtype#1077 : numtype} "f32.add" => `BINOP`_instr{numtype#1077}(`F32`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.sub" => BINOP_instr(F32_numtype, SUB_binop_) + prod{numtype#1079 : numtype} "f32.sub" => `BINOP`_instr{numtype#1079}(`F32`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.mul" => BINOP_instr(F32_numtype, MUL_binop_) + prod{numtype#1081 : numtype} "f32.mul" => `BINOP`_instr{numtype#1081}(`F32`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.div" => BINOP_instr(F32_numtype, DIV_binop_) + prod{numtype#1083 : numtype} "f32.div" => `BINOP`_instr{numtype#1083}(`F32`_numtype, `DIV`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.min" => BINOP_instr(F32_numtype, MIN_binop_) + prod{numtype#1085 : numtype} "f32.min" => `BINOP`_instr{numtype#1085}(`F32`_numtype, `MIN`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.max" => BINOP_instr(F32_numtype, MAX_binop_) + prod{numtype#1087 : numtype} "f32.max" => `BINOP`_instr{numtype#1087}(`F32`_numtype, `MAX`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.copysign" => BINOP_instr(F32_numtype, COPYSIGN_binop_) + prod{numtype#1089 : numtype} "f32.copysign" => `BINOP`_instr{numtype#1089}(`F32`_numtype, `COPYSIGN`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.add" => BINOP_instr(F64_numtype, ADD_binop_) + prod{numtype#1091 : numtype} "f64.add" => `BINOP`_instr{numtype#1091}(`F64`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.sub" => BINOP_instr(F64_numtype, SUB_binop_) + prod{numtype#1093 : numtype} "f64.sub" => `BINOP`_instr{numtype#1093}(`F64`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.mul" => BINOP_instr(F64_numtype, MUL_binop_) + prod{numtype#1095 : numtype} "f64.mul" => `BINOP`_instr{numtype#1095}(`F64`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.div" => BINOP_instr(F64_numtype, DIV_binop_) + prod{numtype#1097 : numtype} "f64.div" => `BINOP`_instr{numtype#1097}(`F64`_numtype, `DIV`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.min" => BINOP_instr(F64_numtype, MIN_binop_) + prod{numtype#1099 : numtype} "f64.min" => `BINOP`_instr{numtype#1099}(`F64`_numtype, `MIN`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.max" => BINOP_instr(F64_numtype, MAX_binop_) + prod{numtype#1101 : numtype} "f64.max" => `BINOP`_instr{numtype#1101}(`F64`_numtype, `MAX`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.copysign" => BINOP_instr(F64_numtype, COPYSIGN_binop_) + prod{numtype#1103 : numtype} "f64.copysign" => `BINOP`_instr{numtype#1103}(`F64`_numtype, `COPYSIGN`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.wrap_i64" => CVTOP_instr(I32_numtype, I64_numtype, WRAP_cvtop__) + prod{numtype_1#75 : numtype, numtype_2#75 : numtype} "i32.wrap_i64" => `CVTOP`_instr{numtype_1#75, numtype_2#75}(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_f32_s" => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_cvtop__(S_sx)) + prod{numtype_1#77 : numtype, numtype_2#77 : numtype, sx#20328 : sx} "i32.trunc_f32_s" => `CVTOP`_instr{numtype_1#77, numtype_2#77}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20328}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_f32_u" => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_cvtop__(U_sx)) + prod{numtype_1#79 : numtype, numtype_2#79 : numtype, sx#20392 : sx} "i32.trunc_f32_u" => `CVTOP`_instr{numtype_1#79, numtype_2#79}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20392}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_f64_s" => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_cvtop__(S_sx)) + prod{numtype_1#81 : numtype, numtype_2#81 : numtype, sx#20456 : sx} "i32.trunc_f64_s" => `CVTOP`_instr{numtype_1#81, numtype_2#81}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#20456}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_f64_u" => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_cvtop__(U_sx)) + prod{numtype_1#83 : numtype, numtype_2#83 : numtype, sx#20520 : sx} "i32.trunc_f64_u" => `CVTOP`_instr{numtype_1#83, numtype_2#83}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#20520}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_sat_f32_s" => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_SAT_cvtop__(S_sx)) + prod{numtype_1#85 : numtype, numtype_2#85 : numtype, sx#20584 : sx} "i32.trunc_sat_f32_s" => `CVTOP`_instr{numtype_1#85, numtype_2#85}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#20584}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_sat_f32_u" => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_SAT_cvtop__(U_sx)) + prod{numtype_1#87 : numtype, numtype_2#87 : numtype, sx#20648 : sx} "i32.trunc_sat_f32_u" => `CVTOP`_instr{numtype_1#87, numtype_2#87}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#20648}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_sat_f64_s" => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_SAT_cvtop__(S_sx)) + prod{numtype_1#89 : numtype, numtype_2#89 : numtype, sx#20712 : sx} "i32.trunc_sat_f64_s" => `CVTOP`_instr{numtype_1#89, numtype_2#89}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#20712}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_sat_f64_u" => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_SAT_cvtop__(U_sx)) + prod{numtype_1#91 : numtype, numtype_2#91 : numtype, sx#20776 : sx} "i32.trunc_sat_f64_u" => `CVTOP`_instr{numtype_1#91, numtype_2#91}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#20776}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.extend_i64_s" => CVTOP_instr(I64_numtype, I64_numtype, EXTEND_cvtop__(S_sx)) + prod{numtype_1#93 : numtype, numtype_2#93 : numtype, sx#20810 : sx} "i64.extend_i64_s" => `CVTOP`_instr{numtype_1#93, numtype_2#93}(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__{sx#20810}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.extend_i64_u" => CVTOP_instr(I64_numtype, I64_numtype, EXTEND_cvtop__(U_sx)) + prod{numtype_1#95 : numtype, numtype_2#95 : numtype, sx#20844 : sx} "i64.extend_i64_u" => `CVTOP`_instr{numtype_1#95, numtype_2#95}(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__{sx#20844}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_f32_s" => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_cvtop__(S_sx)) + prod{numtype_1#97 : numtype, numtype_2#97 : numtype, sx#20908 : sx} "i64.trunc_f32_s" => `CVTOP`_instr{numtype_1#97, numtype_2#97}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20908}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_f32_u" => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_cvtop__(U_sx)) + prod{numtype_1#99 : numtype, numtype_2#99 : numtype, sx#20972 : sx} "i64.trunc_f32_u" => `CVTOP`_instr{numtype_1#99, numtype_2#99}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20972}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_f64_s" => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_cvtop__(S_sx)) + prod{numtype_1#101 : numtype, numtype_2#101 : numtype, sx#21036 : sx} "i64.trunc_f64_s" => `CVTOP`_instr{numtype_1#101, numtype_2#101}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#21036}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_f64_u" => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_cvtop__(U_sx)) + prod{numtype_1#103 : numtype, numtype_2#103 : numtype, sx#21100 : sx} "i64.trunc_f64_u" => `CVTOP`_instr{numtype_1#103, numtype_2#103}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#21100}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_sat_f32_s" => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_SAT_cvtop__(S_sx)) + prod{numtype_1#105 : numtype, numtype_2#105 : numtype, sx#21164 : sx} "i64.trunc_sat_f32_s" => `CVTOP`_instr{numtype_1#105, numtype_2#105}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#21164}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_sat_f32_u" => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_SAT_cvtop__(U_sx)) + prod{numtype_1#107 : numtype, numtype_2#107 : numtype, sx#21228 : sx} "i64.trunc_sat_f32_u" => `CVTOP`_instr{numtype_1#107, numtype_2#107}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#21228}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_sat_f64_s" => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_SAT_cvtop__(S_sx)) + prod{numtype_1#109 : numtype, numtype_2#109 : numtype, sx#21292 : sx} "i64.trunc_sat_f64_s" => `CVTOP`_instr{numtype_1#109, numtype_2#109}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#21292}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_sat_f64_u" => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_SAT_cvtop__(U_sx)) + prod{numtype_1#111 : numtype, numtype_2#111 : numtype, sx#21356 : sx} "i64.trunc_sat_f64_u" => `CVTOP`_instr{numtype_1#111, numtype_2#111}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#21356}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.demote_f64" => CVTOP_instr(F32_numtype, F64_numtype, DEMOTE_cvtop__) + prod{numtype_1#113 : numtype, numtype_2#113 : numtype} "f32.demote_f64" => `CVTOP`_instr{numtype_1#113, numtype_2#113}(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.convert_i32_s" => CVTOP_instr(F32_numtype, I32_numtype, CONVERT_cvtop__(S_sx)) + prod{numtype_1#115 : numtype, numtype_2#115 : numtype, sx#21390 : sx} "f32.convert_i32_s" => `CVTOP`_instr{numtype_1#115, numtype_2#115}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21390}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.convert_i32_u" => CVTOP_instr(F32_numtype, I32_numtype, CONVERT_cvtop__(U_sx)) + prod{numtype_1#117 : numtype, numtype_2#117 : numtype, sx#21424 : sx} "f32.convert_i32_u" => `CVTOP`_instr{numtype_1#117, numtype_2#117}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21424}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.convert_i64_s" => CVTOP_instr(F32_numtype, I64_numtype, CONVERT_cvtop__(S_sx)) + prod{numtype_1#119 : numtype, numtype_2#119 : numtype, sx#21458 : sx} "f32.convert_i64_s" => `CVTOP`_instr{numtype_1#119, numtype_2#119}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21458}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.convert_i64_u" => CVTOP_instr(F32_numtype, I64_numtype, CONVERT_cvtop__(U_sx)) + prod{numtype_1#121 : numtype, numtype_2#121 : numtype, sx#21492 : sx} "f32.convert_i64_u" => `CVTOP`_instr{numtype_1#121, numtype_2#121}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21492}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.promote_f32" => CVTOP_instr(F64_numtype, F32_numtype, PROMOTE_cvtop__) + prod{numtype_1#123 : numtype, numtype_2#123 : numtype} "f64.promote_f32" => `CVTOP`_instr{numtype_1#123, numtype_2#123}(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.convert_i32_s" => CVTOP_instr(F64_numtype, I32_numtype, CONVERT_cvtop__(S_sx)) + prod{numtype_1#125 : numtype, numtype_2#125 : numtype, sx#21526 : sx} "f64.convert_i32_s" => `CVTOP`_instr{numtype_1#125, numtype_2#125}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21526}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.convert_i32_u" => CVTOP_instr(F64_numtype, I32_numtype, CONVERT_cvtop__(U_sx)) + prod{numtype_1#127 : numtype, numtype_2#127 : numtype, sx#21560 : sx} "f64.convert_i32_u" => `CVTOP`_instr{numtype_1#127, numtype_2#127}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21560}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.convert_i64_s" => CVTOP_instr(F64_numtype, I64_numtype, CONVERT_cvtop__(S_sx)) + prod{numtype_1#129 : numtype, numtype_2#129 : numtype, sx#21594 : sx} "f64.convert_i64_s" => `CVTOP`_instr{numtype_1#129, numtype_2#129}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21594}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.convert_i64_u" => CVTOP_instr(F64_numtype, I64_numtype, CONVERT_cvtop__(U_sx)) + prod{numtype_1#131 : numtype, numtype_2#131 : numtype, sx#21628 : sx} "f64.convert_i64_u" => `CVTOP`_instr{numtype_1#131, numtype_2#131}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21628}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.reinterpret_f32" => CVTOP_instr(I32_numtype, F32_numtype, REINTERPRET_cvtop__) + prod{numtype_1#133 : numtype, numtype_2#133 : numtype} "i32.reinterpret_f32" => `CVTOP`_instr{numtype_1#133, numtype_2#133}(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.reinterpret_f64" => CVTOP_instr(I64_numtype, F64_numtype, REINTERPRET_cvtop__) + prod{numtype_1#135 : numtype, numtype_2#135 : numtype} "i64.reinterpret_f64" => `CVTOP`_instr{numtype_1#135, numtype_2#135}(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.reinterpret_i32" => CVTOP_instr(F32_numtype, I32_numtype, REINTERPRET_cvtop__) + prod{numtype_1#137 : numtype, numtype_2#137 : numtype} "f32.reinterpret_i32" => `CVTOP`_instr{numtype_1#137, numtype_2#137}(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.reinterpret_i64" => CVTOP_instr(F64_numtype, I64_numtype, REINTERPRET_cvtop__) + prod{numtype_1#139 : numtype, numtype_2#139 : numtype} "f64.reinterpret_i64" => `CVTOP`_instr{numtype_1#139, numtype_2#139}(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`c*` : u8*} {{"v128.const"} {"i8x16"} {c*{c <- `c*`}:Ti8^16{}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`}))) + prod{vectype#304 : vectype, `c*` : u8*} {{"v128.const"} {"i8x16"} {c*{c <- `c*`}:Ti8^16{}}} => `VCONST`_instr{vectype#304}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`c*` : u16*} {{"v128.const"} {"i16x8"} {c*{c <- `c*`}:Ti16^8{}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`}))) + prod{vectype#306 : vectype, `c*` : u16*} {{"v128.const"} {"i16x8"} {c*{c <- `c*`}:Ti16^8{}}} => `VCONST`_instr{vectype#306}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`c*` : u32*} {{"v128.const"} {"i32x4"} {c*{c <- `c*`}:Ti32^4{}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`}))) + prod{vectype#308 : vectype, `c*` : u32*} {{"v128.const"} {"i32x4"} {c*{c <- `c*`}:Ti32^4{}}} => `VCONST`_instr{vectype#308}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`c*` : u64*} {{"v128.const"} {"i64x2"} {c*{c <- `c*`}:Ti64^2{}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`}))) + prod{vectype#310 : vectype, `c*` : u64*} {{"v128.const"} {"i64x2"} {c*{c <- `c*`}:Ti64^2{}}} => `VCONST`_instr{vectype#310}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`c*` : f32*} {{"v128.const"} {"f32x4"} {c*{c <- `c*`}:Tf32^4{}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`}))) + prod{vectype#312 : vectype, `c*` : f32*} {{"v128.const"} {"f32x4"} {c*{c <- `c*`}:Tf32^4{}}} => `VCONST`_instr{vectype#312}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`c*` : f64*} {{"v128.const"} {"f64x2"} {c*{c <- `c*`}:Tf64^2{}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`}))) + prod{vectype#314 : vectype, `c*` : f64*} {{"v128.const"} {"f64x2"} {c*{c <- `c*`}:Tf64^2{}}} => `VCONST`_instr{vectype#314}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`i*` : laneidx*} {{"i8x16.shuffle"} {i*{i <- `i*`}:Tlaneidx^16{}}} => VSHUFFLE_instr(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(16))), i*{i <- `i*`}) + prod{bshape#19 : bshape, `laneidx*#9` : laneidx*, i#103376 : nat, shape#3961 : shape, shape#3972 : shape, lanetype#22986 : lanetype, dim#22986 : dim, i#103380 : nat, i#103387 : nat, `i*` : laneidx*} {{"i8x16.shuffle"} {i*{i <- `i*`}:Tlaneidx^16{}}} => `VSHUFFLE`_instr{bshape#19, `laneidx*#9`, i#103376, shape#3961}(`%`_bshape{shape#3972}(`%X%`_shape{lanetype#22986, dim#22986, i#103380}(`I8`_lanetype, `%`_dim{i#103387}(16))), i*{i <- `i*`}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.swizzle" => VSWIZZLOP_instr(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SWIZZLE_vswizzlop_) + prod{bshape#21 : bshape, shape#3984 : shape, lanetype#22998 : lanetype, dim#22998 : dim, i#103415 : nat, i#103422 : nat} "i8x16.swizzle" => `VSWIZZLOP`_instr{bshape#21}(`%`_bshape{shape#3984}(`%X%`_shape{lanetype#22998, dim#22998, i#103415}(`I8`_lanetype, `%`_dim{i#103422}(16))), `SWIZZLE`_vswizzlop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.relaxed_swizzle" => VSWIZZLOP_instr(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(16))), RELAXED_SWIZZLE_vswizzlop_) + prod{bshape#23 : bshape, shape#4011 : shape, lanetype#23055 : lanetype, dim#23055 : dim, i#103502 : nat, i#103509 : nat} "i8x16.relaxed_swizzle" => `VSWIZZLOP`_instr{bshape#23}(`%`_bshape{shape#4011}(`%X%`_shape{lanetype#23055, dim#23055, i#103502}(`I8`_lanetype, `%`_dim{i#103509}(16))), `RELAXED_SWIZZLE`_vswizzlop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.splat" => VSPLAT_instr(`%X%`_shape(I8_lanetype, `%`_dim(16))) + prod{shape#4028 : shape, lanetype#23112 : lanetype, dim#23112 : dim, i#103589 : nat, i#103596 : nat} "i8x16.splat" => `VSPLAT`_instr{shape#4028}(`%X%`_shape{lanetype#23112, dim#23112, i#103589}(`I8`_lanetype, `%`_dim{i#103596}(16))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.splat" => VSPLAT_instr(`%X%`_shape(I16_lanetype, `%`_dim(8))) + prod{shape#4030 : shape, lanetype#23124 : lanetype, dim#23124 : dim, i#103601 : nat, i#103608 : nat} "i16x8.splat" => `VSPLAT`_instr{shape#4030}(`%X%`_shape{lanetype#23124, dim#23124, i#103601}(`I16`_lanetype, `%`_dim{i#103608}(8))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.splat" => VSPLAT_instr(`%X%`_shape(I32_lanetype, `%`_dim(4))) + prod{shape#4032 : shape, lanetype#23136 : lanetype, dim#23136 : dim, i#103613 : nat, i#103620 : nat} "i32x4.splat" => `VSPLAT`_instr{shape#4032}(`%X%`_shape{lanetype#23136, dim#23136, i#103613}(`I32`_lanetype, `%`_dim{i#103620}(4))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.splat" => VSPLAT_instr(`%X%`_shape(I64_lanetype, `%`_dim(2))) + prod{shape#4034 : shape, lanetype#23148 : lanetype, dim#23148 : dim, i#103625 : nat, i#103632 : nat} "i64x2.splat" => `VSPLAT`_instr{shape#4034}(`%X%`_shape{lanetype#23148, dim#23148, i#103625}(`I64`_lanetype, `%`_dim{i#103632}(2))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.splat" => VSPLAT_instr(`%X%`_shape(F32_lanetype, `%`_dim(4))) + prod{shape#4036 : shape, lanetype#23160 : lanetype, dim#23160 : dim, i#103637 : nat, i#103644 : nat} "f32x4.splat" => `VSPLAT`_instr{shape#4036}(`%X%`_shape{lanetype#23160, dim#23160, i#103637}(`F32`_lanetype, `%`_dim{i#103644}(4))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.splat" => VSPLAT_instr(`%X%`_shape(F64_lanetype, `%`_dim(2))) + prod{shape#4038 : shape, lanetype#23172 : lanetype, dim#23172 : dim, i#103649 : nat, i#103656 : nat} "f64x2.splat" => `VSPLAT`_instr{shape#4038}(`%X%`_shape{lanetype#23172, dim#23172, i#103649}(`F64`_lanetype, `%`_dim{i#103656}(2))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i8x16.extract_lane_s"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ?(S_sx), i) + prod{shape#4040 : shape, `sx?#71` : sx?, laneidx#91 : laneidx, lanetype#23184 : lanetype, dim#23184 : dim, i#103678 : nat, i#103685 : nat, i : laneidx} {{"i8x16.extract_lane_s"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4040, `sx?#71`, laneidx#91}(`%X%`_shape{lanetype#23184, dim#23184, i#103678}(`I8`_lanetype, `%`_dim{i#103685}(16)), ?(`S`_sx), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i8x16.extract_lane_u"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ?(U_sx), i) + prod{shape#4042 : shape, `sx?#73` : sx?, laneidx#93 : laneidx, lanetype#23196 : lanetype, dim#23196 : dim, i#103763 : nat, i#103770 : nat, i : laneidx} {{"i8x16.extract_lane_u"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4042, `sx?#73`, laneidx#93}(`%X%`_shape{lanetype#23196, dim#23196, i#103763}(`I8`_lanetype, `%`_dim{i#103770}(16)), ?(`U`_sx), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i16x8.extract_lane_s"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ?(S_sx), i) + prod{shape#4044 : shape, `sx?#75` : sx?, laneidx#95 : laneidx, lanetype#23208 : lanetype, dim#23208 : dim, i#103848 : nat, i#103855 : nat, i : laneidx} {{"i16x8.extract_lane_s"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4044, `sx?#75`, laneidx#95}(`%X%`_shape{lanetype#23208, dim#23208, i#103848}(`I16`_lanetype, `%`_dim{i#103855}(8)), ?(`S`_sx), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i16x8.extract_lane_u"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ?(U_sx), i) + prod{shape#4046 : shape, `sx?#77` : sx?, laneidx#97 : laneidx, lanetype#23220 : lanetype, dim#23220 : dim, i#103933 : nat, i#103940 : nat, i : laneidx} {{"i16x8.extract_lane_u"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4046, `sx?#77`, laneidx#97}(`%X%`_shape{lanetype#23220, dim#23220, i#103933}(`I16`_lanetype, `%`_dim{i#103940}(8)), ?(`U`_sx), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i32x4.extract_lane"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ?(), i) + prod{shape#4048 : shape, `sx?#79` : sx?, laneidx#99 : laneidx, lanetype#23232 : lanetype, dim#23232 : dim, i#104018 : nat, i#104025 : nat, i : laneidx} {{"i32x4.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4048, `sx?#79`, laneidx#99}(`%X%`_shape{lanetype#23232, dim#23232, i#104018}(`I32`_lanetype, `%`_dim{i#104025}(4)), ?(), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i64x2.extract_lane"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ?(), i) + prod{shape#4050 : shape, `sx?#81` : sx?, laneidx#101 : laneidx, lanetype#23244 : lanetype, dim#23244 : dim, i#104059 : nat, i#104066 : nat, i : laneidx} {{"i64x2.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4050, `sx?#81`, laneidx#101}(`%X%`_shape{lanetype#23244, dim#23244, i#104059}(`I64`_lanetype, `%`_dim{i#104066}(2)), ?(), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"f32x4.extract_lane"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), ?(), i) + prod{shape#4052 : shape, `sx?#83` : sx?, laneidx#103 : laneidx, lanetype#23256 : lanetype, dim#23256 : dim, i#104100 : nat, i#104107 : nat, i : laneidx} {{"f32x4.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4052, `sx?#83`, laneidx#103}(`%X%`_shape{lanetype#23256, dim#23256, i#104100}(`F32`_lanetype, `%`_dim{i#104107}(4)), ?(), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"f64x2.extract_lane"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), ?(), i) + prod{shape#4054 : shape, `sx?#85` : sx?, laneidx#105 : laneidx, lanetype#23268 : lanetype, dim#23268 : dim, i#104141 : nat, i#104148 : nat, i : laneidx} {{"f64x2.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4054, `sx?#85`, laneidx#105}(`%X%`_shape{lanetype#23268, dim#23268, i#104141}(`F64`_lanetype, `%`_dim{i#104148}(2)), ?(), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i8x16.replace_lane"} {i:Tlaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), i) + prod{shape#4056 : shape, laneidx#107 : laneidx, lanetype#23280 : lanetype, dim#23280 : dim, i#104182 : nat, i#104189 : nat, i : laneidx} {{"i8x16.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr{shape#4056, laneidx#107}(`%X%`_shape{lanetype#23280, dim#23280, i#104182}(`I8`_lanetype, `%`_dim{i#104189}(16)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i16x8.replace_lane"} {i:Tlaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), i) + prod{shape#4058 : shape, laneidx#109 : laneidx, lanetype#23292 : lanetype, dim#23292 : dim, i#104223 : nat, i#104230 : nat, i : laneidx} {{"i16x8.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr{shape#4058, laneidx#109}(`%X%`_shape{lanetype#23292, dim#23292, i#104223}(`I16`_lanetype, `%`_dim{i#104230}(8)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i32x4.replace_lane"} {i:Tlaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), i) + prod{shape#4060 : shape, laneidx#111 : laneidx, lanetype#23304 : lanetype, dim#23304 : dim, i#104264 : nat, i#104271 : nat, i : laneidx} {{"i32x4.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr{shape#4060, laneidx#111}(`%X%`_shape{lanetype#23304, dim#23304, i#104264}(`I32`_lanetype, `%`_dim{i#104271}(4)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i64x2.replace_lane"} {i:Tlaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), i) + prod{shape#4062 : shape, laneidx#113 : laneidx, lanetype#23316 : lanetype, dim#23316 : dim, i#104305 : nat, i#104312 : nat, i : laneidx} {{"i64x2.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr{shape#4062, laneidx#113}(`%X%`_shape{lanetype#23316, dim#23316, i#104305}(`I64`_lanetype, `%`_dim{i#104312}(2)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"f32x4.replace_lane"} {i:Tlaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), i) + prod{shape#4064 : shape, laneidx#115 : laneidx, lanetype#23328 : lanetype, dim#23328 : dim, i#104346 : nat, i#104353 : nat, i : laneidx} {{"f32x4.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr{shape#4064, laneidx#115}(`%X%`_shape{lanetype#23328, dim#23328, i#104346}(`F32`_lanetype, `%`_dim{i#104353}(4)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"f64x2.replace_lane"} {i:Tlaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), i) + prod{shape#4066 : shape, laneidx#117 : laneidx, lanetype#23340 : lanetype, dim#23340 : dim, i#104387 : nat, i#104394 : nat, i : laneidx} {{"f64x2.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr{shape#4066, laneidx#117}(`%X%`_shape{lanetype#23340, dim#23340, i#104387}(`F64`_lanetype, `%`_dim{i#104394}(2)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.any_true" => VVTESTOP_instr(V128_vectype, ANY_TRUE_vvtestop) + prod{vectype#316 : vectype, vvtestop#9 : vvtestop} "v128.any_true" => `VVTESTOP`_instr{vectype#316, vvtestop#9}(`V128`_vectype, `ANY_TRUE`_vvtestop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.all_true" => VTESTOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ALL_TRUE_vtestop_) + prod{shape#4068 : shape, lanetype#23352 : lanetype, dim#23352 : dim, i#104411 : nat, i#104418 : nat} "i8x16.all_true" => `VTESTOP`_instr{shape#4068}(`%X%`_shape{lanetype#23352, dim#23352, i#104411}(`I8`_lanetype, `%`_dim{i#104418}(16)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.all_true" => VTESTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ALL_TRUE_vtestop_) + prod{shape#4070 : shape, lanetype#23379 : lanetype, dim#23379 : dim, i#104468 : nat, i#104475 : nat} "i16x8.all_true" => `VTESTOP`_instr{shape#4070}(`%X%`_shape{lanetype#23379, dim#23379, i#104468}(`I16`_lanetype, `%`_dim{i#104475}(8)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.all_true" => VTESTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ALL_TRUE_vtestop_) + prod{shape#4072 : shape, lanetype#23406 : lanetype, dim#23406 : dim, i#104525 : nat, i#104532 : nat} "i32x4.all_true" => `VTESTOP`_instr{shape#4072}(`%X%`_shape{lanetype#23406, dim#23406, i#104525}(`I32`_lanetype, `%`_dim{i#104532}(4)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.all_true" => VTESTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ALL_TRUE_vtestop_) + prod{shape#4074 : shape, lanetype#23433 : lanetype, dim#23433 : dim, i#104582 : nat, i#104589 : nat} "i64x2.all_true" => `VTESTOP`_instr{shape#4074}(`%X%`_shape{lanetype#23433, dim#23433, i#104582}(`I64`_lanetype, `%`_dim{i#104589}(2)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.eq" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), EQ_vrelop_) + prod{shape#4076 : shape, lanetype#23460 : lanetype, dim#23460 : dim, i#104639 : nat, i#104646 : nat} "i8x16.eq" => `VRELOP`_instr{shape#4076}(`%X%`_shape{lanetype#23460, dim#23460, i#104639}(`I8`_lanetype, `%`_dim{i#104646}(16)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.ne" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), NE_vrelop_) + prod{shape#4078 : shape, lanetype#23487 : lanetype, dim#23487 : dim, i#104696 : nat, i#104703 : nat} "i8x16.ne" => `VRELOP`_instr{shape#4078}(`%X%`_shape{lanetype#23487, dim#23487, i#104696}(`I8`_lanetype, `%`_dim{i#104703}(16)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.lt_s" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LT_vrelop_(S_sx)) + prod{shape#4080 : shape, lanetype#23514 : lanetype, dim#23514 : dim, i#104753 : nat, i#104760 : nat, sx#21962 : sx} "i8x16.lt_s" => `VRELOP`_instr{shape#4080}(`%X%`_shape{lanetype#23514, dim#23514, i#104753}(`I8`_lanetype, `%`_dim{i#104760}(16)), `LT`_vrelop_{sx#21962}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.lt_u" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LT_vrelop_(U_sx)) + prod{shape#4082 : shape, lanetype#23556 : lanetype, dim#23556 : dim, i#104855 : nat, i#104862 : nat, sx#22086 : sx} "i8x16.lt_u" => `VRELOP`_instr{shape#4082}(`%X%`_shape{lanetype#23556, dim#23556, i#104855}(`I8`_lanetype, `%`_dim{i#104862}(16)), `LT`_vrelop_{sx#22086}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.gt_s" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GT_vrelop_(S_sx)) + prod{shape#4084 : shape, lanetype#23598 : lanetype, dim#23598 : dim, i#104957 : nat, i#104964 : nat, sx#22210 : sx} "i8x16.gt_s" => `VRELOP`_instr{shape#4084}(`%X%`_shape{lanetype#23598, dim#23598, i#104957}(`I8`_lanetype, `%`_dim{i#104964}(16)), `GT`_vrelop_{sx#22210}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.gt_u" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GT_vrelop_(U_sx)) + prod{shape#4086 : shape, lanetype#23640 : lanetype, dim#23640 : dim, i#105059 : nat, i#105066 : nat, sx#22334 : sx} "i8x16.gt_u" => `VRELOP`_instr{shape#4086}(`%X%`_shape{lanetype#23640, dim#23640, i#105059}(`I8`_lanetype, `%`_dim{i#105066}(16)), `GT`_vrelop_{sx#22334}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.le_s" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LE_vrelop_(S_sx)) + prod{shape#4088 : shape, lanetype#23682 : lanetype, dim#23682 : dim, i#105161 : nat, i#105168 : nat, sx#22458 : sx} "i8x16.le_s" => `VRELOP`_instr{shape#4088}(`%X%`_shape{lanetype#23682, dim#23682, i#105161}(`I8`_lanetype, `%`_dim{i#105168}(16)), `LE`_vrelop_{sx#22458}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.le_u" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LE_vrelop_(U_sx)) + prod{shape#4090 : shape, lanetype#23724 : lanetype, dim#23724 : dim, i#105263 : nat, i#105270 : nat, sx#22582 : sx} "i8x16.le_u" => `VRELOP`_instr{shape#4090}(`%X%`_shape{lanetype#23724, dim#23724, i#105263}(`I8`_lanetype, `%`_dim{i#105270}(16)), `LE`_vrelop_{sx#22582}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.ge_s" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GE_vrelop_(S_sx)) + prod{shape#4092 : shape, lanetype#23766 : lanetype, dim#23766 : dim, i#105365 : nat, i#105372 : nat, sx#22706 : sx} "i8x16.ge_s" => `VRELOP`_instr{shape#4092}(`%X%`_shape{lanetype#23766, dim#23766, i#105365}(`I8`_lanetype, `%`_dim{i#105372}(16)), `GE`_vrelop_{sx#22706}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.ge_u" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GE_vrelop_(U_sx)) + prod{shape#4094 : shape, lanetype#23808 : lanetype, dim#23808 : dim, i#105467 : nat, i#105474 : nat, sx#22830 : sx} "i8x16.ge_u" => `VRELOP`_instr{shape#4094}(`%X%`_shape{lanetype#23808, dim#23808, i#105467}(`I8`_lanetype, `%`_dim{i#105474}(16)), `GE`_vrelop_{sx#22830}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.eq" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), EQ_vrelop_) + prod{shape#4096 : shape, lanetype#23850 : lanetype, dim#23850 : dim, i#105569 : nat, i#105576 : nat} "i16x8.eq" => `VRELOP`_instr{shape#4096}(`%X%`_shape{lanetype#23850, dim#23850, i#105569}(`I16`_lanetype, `%`_dim{i#105576}(8)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.ne" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), NE_vrelop_) + prod{shape#4098 : shape, lanetype#23877 : lanetype, dim#23877 : dim, i#105626 : nat, i#105633 : nat} "i16x8.ne" => `VRELOP`_instr{shape#4098}(`%X%`_shape{lanetype#23877, dim#23877, i#105626}(`I16`_lanetype, `%`_dim{i#105633}(8)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.lt_s" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LT_vrelop_(S_sx)) + prod{shape#4100 : shape, lanetype#23904 : lanetype, dim#23904 : dim, i#105683 : nat, i#105690 : nat, sx#23074 : sx} "i16x8.lt_s" => `VRELOP`_instr{shape#4100}(`%X%`_shape{lanetype#23904, dim#23904, i#105683}(`I16`_lanetype, `%`_dim{i#105690}(8)), `LT`_vrelop_{sx#23074}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.lt_u" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LT_vrelop_(U_sx)) + prod{shape#4102 : shape, lanetype#23946 : lanetype, dim#23946 : dim, i#105785 : nat, i#105792 : nat, sx#23198 : sx} "i16x8.lt_u" => `VRELOP`_instr{shape#4102}(`%X%`_shape{lanetype#23946, dim#23946, i#105785}(`I16`_lanetype, `%`_dim{i#105792}(8)), `LT`_vrelop_{sx#23198}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.gt_s" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GT_vrelop_(S_sx)) + prod{shape#4104 : shape, lanetype#23988 : lanetype, dim#23988 : dim, i#105887 : nat, i#105894 : nat, sx#23322 : sx} "i16x8.gt_s" => `VRELOP`_instr{shape#4104}(`%X%`_shape{lanetype#23988, dim#23988, i#105887}(`I16`_lanetype, `%`_dim{i#105894}(8)), `GT`_vrelop_{sx#23322}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.gt_u" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GT_vrelop_(U_sx)) + prod{shape#4106 : shape, lanetype#24030 : lanetype, dim#24030 : dim, i#105989 : nat, i#105996 : nat, sx#23446 : sx} "i16x8.gt_u" => `VRELOP`_instr{shape#4106}(`%X%`_shape{lanetype#24030, dim#24030, i#105989}(`I16`_lanetype, `%`_dim{i#105996}(8)), `GT`_vrelop_{sx#23446}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.le_s" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LE_vrelop_(S_sx)) + prod{shape#4108 : shape, lanetype#24072 : lanetype, dim#24072 : dim, i#106091 : nat, i#106098 : nat, sx#23570 : sx} "i16x8.le_s" => `VRELOP`_instr{shape#4108}(`%X%`_shape{lanetype#24072, dim#24072, i#106091}(`I16`_lanetype, `%`_dim{i#106098}(8)), `LE`_vrelop_{sx#23570}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.le_u" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LE_vrelop_(U_sx)) + prod{shape#4110 : shape, lanetype#24114 : lanetype, dim#24114 : dim, i#106193 : nat, i#106200 : nat, sx#23694 : sx} "i16x8.le_u" => `VRELOP`_instr{shape#4110}(`%X%`_shape{lanetype#24114, dim#24114, i#106193}(`I16`_lanetype, `%`_dim{i#106200}(8)), `LE`_vrelop_{sx#23694}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.ge_s" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GE_vrelop_(S_sx)) + prod{shape#4112 : shape, lanetype#24156 : lanetype, dim#24156 : dim, i#106295 : nat, i#106302 : nat, sx#23818 : sx} "i16x8.ge_s" => `VRELOP`_instr{shape#4112}(`%X%`_shape{lanetype#24156, dim#24156, i#106295}(`I16`_lanetype, `%`_dim{i#106302}(8)), `GE`_vrelop_{sx#23818}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.ge_u" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GE_vrelop_(U_sx)) + prod{shape#4114 : shape, lanetype#24198 : lanetype, dim#24198 : dim, i#106397 : nat, i#106404 : nat, sx#23942 : sx} "i16x8.ge_u" => `VRELOP`_instr{shape#4114}(`%X%`_shape{lanetype#24198, dim#24198, i#106397}(`I16`_lanetype, `%`_dim{i#106404}(8)), `GE`_vrelop_{sx#23942}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.eq" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), EQ_vrelop_) + prod{shape#4116 : shape, lanetype#24240 : lanetype, dim#24240 : dim, i#106499 : nat, i#106506 : nat} "i32x4.eq" => `VRELOP`_instr{shape#4116}(`%X%`_shape{lanetype#24240, dim#24240, i#106499}(`I32`_lanetype, `%`_dim{i#106506}(4)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.ne" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), NE_vrelop_) + prod{shape#4118 : shape, lanetype#24267 : lanetype, dim#24267 : dim, i#106556 : nat, i#106563 : nat} "i32x4.ne" => `VRELOP`_instr{shape#4118}(`%X%`_shape{lanetype#24267, dim#24267, i#106556}(`I32`_lanetype, `%`_dim{i#106563}(4)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.lt_s" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LT_vrelop_(S_sx)) + prod{shape#4120 : shape, lanetype#24294 : lanetype, dim#24294 : dim, i#106613 : nat, i#106620 : nat, sx#24186 : sx} "i32x4.lt_s" => `VRELOP`_instr{shape#4120}(`%X%`_shape{lanetype#24294, dim#24294, i#106613}(`I32`_lanetype, `%`_dim{i#106620}(4)), `LT`_vrelop_{sx#24186}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.lt_u" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LT_vrelop_(U_sx)) + prod{shape#4122 : shape, lanetype#24336 : lanetype, dim#24336 : dim, i#106715 : nat, i#106722 : nat, sx#24310 : sx} "i32x4.lt_u" => `VRELOP`_instr{shape#4122}(`%X%`_shape{lanetype#24336, dim#24336, i#106715}(`I32`_lanetype, `%`_dim{i#106722}(4)), `LT`_vrelop_{sx#24310}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.gt_s" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GT_vrelop_(S_sx)) + prod{shape#4124 : shape, lanetype#24378 : lanetype, dim#24378 : dim, i#106817 : nat, i#106824 : nat, sx#24434 : sx} "i32x4.gt_s" => `VRELOP`_instr{shape#4124}(`%X%`_shape{lanetype#24378, dim#24378, i#106817}(`I32`_lanetype, `%`_dim{i#106824}(4)), `GT`_vrelop_{sx#24434}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.gt_u" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GT_vrelop_(U_sx)) + prod{shape#4126 : shape, lanetype#24420 : lanetype, dim#24420 : dim, i#106919 : nat, i#106926 : nat, sx#24558 : sx} "i32x4.gt_u" => `VRELOP`_instr{shape#4126}(`%X%`_shape{lanetype#24420, dim#24420, i#106919}(`I32`_lanetype, `%`_dim{i#106926}(4)), `GT`_vrelop_{sx#24558}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.le_s" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LE_vrelop_(S_sx)) + prod{shape#4128 : shape, lanetype#24462 : lanetype, dim#24462 : dim, i#107021 : nat, i#107028 : nat, sx#24682 : sx} "i32x4.le_s" => `VRELOP`_instr{shape#4128}(`%X%`_shape{lanetype#24462, dim#24462, i#107021}(`I32`_lanetype, `%`_dim{i#107028}(4)), `LE`_vrelop_{sx#24682}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.le_u" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LE_vrelop_(U_sx)) + prod{shape#4130 : shape, lanetype#24504 : lanetype, dim#24504 : dim, i#107123 : nat, i#107130 : nat, sx#24806 : sx} "i32x4.le_u" => `VRELOP`_instr{shape#4130}(`%X%`_shape{lanetype#24504, dim#24504, i#107123}(`I32`_lanetype, `%`_dim{i#107130}(4)), `LE`_vrelop_{sx#24806}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.ge_s" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GE_vrelop_(S_sx)) + prod{shape#4132 : shape, lanetype#24546 : lanetype, dim#24546 : dim, i#107225 : nat, i#107232 : nat, sx#24930 : sx} "i32x4.ge_s" => `VRELOP`_instr{shape#4132}(`%X%`_shape{lanetype#24546, dim#24546, i#107225}(`I32`_lanetype, `%`_dim{i#107232}(4)), `GE`_vrelop_{sx#24930}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.ge_u" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GE_vrelop_(U_sx)) + prod{shape#4134 : shape, lanetype#24588 : lanetype, dim#24588 : dim, i#107327 : nat, i#107334 : nat, sx#25054 : sx} "i32x4.ge_u" => `VRELOP`_instr{shape#4134}(`%X%`_shape{lanetype#24588, dim#24588, i#107327}(`I32`_lanetype, `%`_dim{i#107334}(4)), `GE`_vrelop_{sx#25054}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.eq" => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), EQ_vrelop_) + prod{shape#4136 : shape, lanetype#24630 : lanetype, dim#24630 : dim, i#107429 : nat, i#107436 : nat} "i64x2.eq" => `VRELOP`_instr{shape#4136}(`%X%`_shape{lanetype#24630, dim#24630, i#107429}(`I64`_lanetype, `%`_dim{i#107436}(2)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.ne" => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), NE_vrelop_) + prod{shape#4138 : shape, lanetype#24657 : lanetype, dim#24657 : dim, i#107486 : nat, i#107493 : nat} "i64x2.ne" => `VRELOP`_instr{shape#4138}(`%X%`_shape{lanetype#24657, dim#24657, i#107486}(`I64`_lanetype, `%`_dim{i#107493}(2)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.lt_s" => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), LT_vrelop_(S_sx)) + prod{shape#4140 : shape, lanetype#24684 : lanetype, dim#24684 : dim, i#107543 : nat, i#107550 : nat, sx#25298 : sx} "i64x2.lt_s" => `VRELOP`_instr{shape#4140}(`%X%`_shape{lanetype#24684, dim#24684, i#107543}(`I64`_lanetype, `%`_dim{i#107550}(2)), `LT`_vrelop_{sx#25298}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.gt_s" => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), GT_vrelop_(S_sx)) + prod{shape#4142 : shape, lanetype#24726 : lanetype, dim#24726 : dim, i#107645 : nat, i#107652 : nat, sx#25422 : sx} "i64x2.gt_s" => `VRELOP`_instr{shape#4142}(`%X%`_shape{lanetype#24726, dim#24726, i#107645}(`I64`_lanetype, `%`_dim{i#107652}(2)), `GT`_vrelop_{sx#25422}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.le_s" => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), LE_vrelop_(S_sx)) + prod{shape#4144 : shape, lanetype#24768 : lanetype, dim#24768 : dim, i#107747 : nat, i#107754 : nat, sx#25546 : sx} "i64x2.le_s" => `VRELOP`_instr{shape#4144}(`%X%`_shape{lanetype#24768, dim#24768, i#107747}(`I64`_lanetype, `%`_dim{i#107754}(2)), `LE`_vrelop_{sx#25546}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.ge_s" => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), GE_vrelop_(S_sx)) + prod{shape#4146 : shape, lanetype#24810 : lanetype, dim#24810 : dim, i#107849 : nat, i#107856 : nat, sx#25670 : sx} "i64x2.ge_s" => `VRELOP`_instr{shape#4146}(`%X%`_shape{lanetype#24810, dim#24810, i#107849}(`I64`_lanetype, `%`_dim{i#107856}(2)), `GE`_vrelop_{sx#25670}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.eq" => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), EQ_vrelop_) + prod{shape#4148 : shape, lanetype#24852 : lanetype, dim#24852 : dim, i#107951 : nat, i#107958 : nat} "f32x4.eq" => `VRELOP`_instr{shape#4148}(`%X%`_shape{lanetype#24852, dim#24852, i#107951}(`F32`_lanetype, `%`_dim{i#107958}(4)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.ne" => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), NE_vrelop_) + prod{shape#4150 : shape, lanetype#24894 : lanetype, dim#24894 : dim, i#108023 : nat, i#108030 : nat} "f32x4.ne" => `VRELOP`_instr{shape#4150}(`%X%`_shape{lanetype#24894, dim#24894, i#108023}(`F32`_lanetype, `%`_dim{i#108030}(4)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.lt" => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), LT_vrelop_) + prod{shape#4152 : shape, lanetype#24936 : lanetype, dim#24936 : dim, i#108095 : nat, i#108102 : nat} "f32x4.lt" => `VRELOP`_instr{shape#4152}(`%X%`_shape{lanetype#24936, dim#24936, i#108095}(`F32`_lanetype, `%`_dim{i#108102}(4)), `LT`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.gt" => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), GT_vrelop_) + prod{shape#4154 : shape, lanetype#24978 : lanetype, dim#24978 : dim, i#108167 : nat, i#108174 : nat} "f32x4.gt" => `VRELOP`_instr{shape#4154}(`%X%`_shape{lanetype#24978, dim#24978, i#108167}(`F32`_lanetype, `%`_dim{i#108174}(4)), `GT`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.le" => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), LE_vrelop_) + prod{shape#4156 : shape, lanetype#25020 : lanetype, dim#25020 : dim, i#108239 : nat, i#108246 : nat} "f32x4.le" => `VRELOP`_instr{shape#4156}(`%X%`_shape{lanetype#25020, dim#25020, i#108239}(`F32`_lanetype, `%`_dim{i#108246}(4)), `LE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.ge" => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), GE_vrelop_) + prod{shape#4158 : shape, lanetype#25062 : lanetype, dim#25062 : dim, i#108311 : nat, i#108318 : nat} "f32x4.ge" => `VRELOP`_instr{shape#4158}(`%X%`_shape{lanetype#25062, dim#25062, i#108311}(`F32`_lanetype, `%`_dim{i#108318}(4)), `GE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.eq" => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), EQ_vrelop_) + prod{shape#4160 : shape, lanetype#25104 : lanetype, dim#25104 : dim, i#108383 : nat, i#108390 : nat} "f64x2.eq" => `VRELOP`_instr{shape#4160}(`%X%`_shape{lanetype#25104, dim#25104, i#108383}(`F64`_lanetype, `%`_dim{i#108390}(2)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.ne" => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), NE_vrelop_) + prod{shape#4162 : shape, lanetype#25146 : lanetype, dim#25146 : dim, i#108455 : nat, i#108462 : nat} "f64x2.ne" => `VRELOP`_instr{shape#4162}(`%X%`_shape{lanetype#25146, dim#25146, i#108455}(`F64`_lanetype, `%`_dim{i#108462}(2)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.lt" => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), LT_vrelop_) + prod{shape#4164 : shape, lanetype#25188 : lanetype, dim#25188 : dim, i#108527 : nat, i#108534 : nat} "f64x2.lt" => `VRELOP`_instr{shape#4164}(`%X%`_shape{lanetype#25188, dim#25188, i#108527}(`F64`_lanetype, `%`_dim{i#108534}(2)), `LT`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.gt" => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), GT_vrelop_) + prod{shape#4166 : shape, lanetype#25230 : lanetype, dim#25230 : dim, i#108599 : nat, i#108606 : nat} "f64x2.gt" => `VRELOP`_instr{shape#4166}(`%X%`_shape{lanetype#25230, dim#25230, i#108599}(`F64`_lanetype, `%`_dim{i#108606}(2)), `GT`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.le" => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), LE_vrelop_) + prod{shape#4168 : shape, lanetype#25272 : lanetype, dim#25272 : dim, i#108671 : nat, i#108678 : nat} "f64x2.le" => `VRELOP`_instr{shape#4168}(`%X%`_shape{lanetype#25272, dim#25272, i#108671}(`F64`_lanetype, `%`_dim{i#108678}(2)), `LE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.ge" => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), GE_vrelop_) + prod{shape#4170 : shape, lanetype#25314 : lanetype, dim#25314 : dim, i#108743 : nat, i#108750 : nat} "f64x2.ge" => `VRELOP`_instr{shape#4170}(`%X%`_shape{lanetype#25314, dim#25314, i#108743}(`F64`_lanetype, `%`_dim{i#108750}(2)), `GE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.not" => VVUNOP_instr(V128_vectype, NOT_vvunop) + prod{vectype#318 : vectype, vvunop#9 : vvunop} "v128.not" => `VVUNOP`_instr{vectype#318, vvunop#9}(`V128`_vectype, `NOT`_vvunop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.abs" => VUNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ABS_vunop_) + prod{shape#4172 : shape, lanetype#25356 : lanetype, dim#25356 : dim, i#108815 : nat, i#108822 : nat} "i8x16.abs" => `VUNOP`_instr{shape#4172}(`%X%`_shape{lanetype#25356, dim#25356, i#108815}(`I8`_lanetype, `%`_dim{i#108822}(16)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.neg" => VUNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), NEG_vunop_) + prod{shape#4174 : shape, lanetype#25383 : lanetype, dim#25383 : dim, i#108872 : nat, i#108879 : nat} "i8x16.neg" => `VUNOP`_instr{shape#4174}(`%X%`_shape{lanetype#25383, dim#25383, i#108872}(`I8`_lanetype, `%`_dim{i#108879}(16)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.popcnt" => VUNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), POPCNT_vunop_) + prod{shape#4176 : shape, lanetype#25410 : lanetype, dim#25410 : dim, i#108929 : nat, i#108936 : nat} "i8x16.popcnt" => `VUNOP`_instr{shape#4176}(`%X%`_shape{lanetype#25410, dim#25410, i#108929}(`I8`_lanetype, `%`_dim{i#108936}(16)), `POPCNT`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.abs" => VUNOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ABS_vunop_) + prod{shape#4178 : shape, lanetype#25437 : lanetype, dim#25437 : dim, i#108986 : nat, i#108993 : nat} "i16x8.abs" => `VUNOP`_instr{shape#4178}(`%X%`_shape{lanetype#25437, dim#25437, i#108986}(`I16`_lanetype, `%`_dim{i#108993}(8)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.neg" => VUNOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), NEG_vunop_) + prod{shape#4180 : shape, lanetype#25464 : lanetype, dim#25464 : dim, i#109043 : nat, i#109050 : nat} "i16x8.neg" => `VUNOP`_instr{shape#4180}(`%X%`_shape{lanetype#25464, dim#25464, i#109043}(`I16`_lanetype, `%`_dim{i#109050}(8)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.abs" => VUNOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ABS_vunop_) + prod{shape#4182 : shape, lanetype#25491 : lanetype, dim#25491 : dim, i#109100 : nat, i#109107 : nat} "i32x4.abs" => `VUNOP`_instr{shape#4182}(`%X%`_shape{lanetype#25491, dim#25491, i#109100}(`I32`_lanetype, `%`_dim{i#109107}(4)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.neg" => VUNOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), NEG_vunop_) + prod{shape#4184 : shape, lanetype#25518 : lanetype, dim#25518 : dim, i#109157 : nat, i#109164 : nat} "i32x4.neg" => `VUNOP`_instr{shape#4184}(`%X%`_shape{lanetype#25518, dim#25518, i#109157}(`I32`_lanetype, `%`_dim{i#109164}(4)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.abs" => VUNOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ABS_vunop_) + prod{shape#4186 : shape, lanetype#25545 : lanetype, dim#25545 : dim, i#109214 : nat, i#109221 : nat} "i64x2.abs" => `VUNOP`_instr{shape#4186}(`%X%`_shape{lanetype#25545, dim#25545, i#109214}(`I64`_lanetype, `%`_dim{i#109221}(2)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.neg" => VUNOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), NEG_vunop_) + prod{shape#4188 : shape, lanetype#25572 : lanetype, dim#25572 : dim, i#109271 : nat, i#109278 : nat} "i64x2.neg" => `VUNOP`_instr{shape#4188}(`%X%`_shape{lanetype#25572, dim#25572, i#109271}(`I64`_lanetype, `%`_dim{i#109278}(2)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.abs" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), ABS_vunop_) + prod{shape#4190 : shape, lanetype#25599 : lanetype, dim#25599 : dim, i#109328 : nat, i#109335 : nat} "f32x4.abs" => `VUNOP`_instr{shape#4190}(`%X%`_shape{lanetype#25599, dim#25599, i#109328}(`F32`_lanetype, `%`_dim{i#109335}(4)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.neg" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), NEG_vunop_) + prod{shape#4192 : shape, lanetype#25641 : lanetype, dim#25641 : dim, i#109400 : nat, i#109407 : nat} "f32x4.neg" => `VUNOP`_instr{shape#4192}(`%X%`_shape{lanetype#25641, dim#25641, i#109400}(`F32`_lanetype, `%`_dim{i#109407}(4)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.sqrt" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), SQRT_vunop_) + prod{shape#4194 : shape, lanetype#25683 : lanetype, dim#25683 : dim, i#109472 : nat, i#109479 : nat} "f32x4.sqrt" => `VUNOP`_instr{shape#4194}(`%X%`_shape{lanetype#25683, dim#25683, i#109472}(`F32`_lanetype, `%`_dim{i#109479}(4)), `SQRT`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.ceil" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), CEIL_vunop_) + prod{shape#4196 : shape, lanetype#25725 : lanetype, dim#25725 : dim, i#109544 : nat, i#109551 : nat} "f32x4.ceil" => `VUNOP`_instr{shape#4196}(`%X%`_shape{lanetype#25725, dim#25725, i#109544}(`F32`_lanetype, `%`_dim{i#109551}(4)), `CEIL`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.floor" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), FLOOR_vunop_) + prod{shape#4198 : shape, lanetype#25767 : lanetype, dim#25767 : dim, i#109616 : nat, i#109623 : nat} "f32x4.floor" => `VUNOP`_instr{shape#4198}(`%X%`_shape{lanetype#25767, dim#25767, i#109616}(`F32`_lanetype, `%`_dim{i#109623}(4)), `FLOOR`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.trunc" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), TRUNC_vunop_) + prod{shape#4200 : shape, lanetype#25809 : lanetype, dim#25809 : dim, i#109688 : nat, i#109695 : nat} "f32x4.trunc" => `VUNOP`_instr{shape#4200}(`%X%`_shape{lanetype#25809, dim#25809, i#109688}(`F32`_lanetype, `%`_dim{i#109695}(4)), `TRUNC`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.nearest" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), NEAREST_vunop_) + prod{shape#4202 : shape, lanetype#25851 : lanetype, dim#25851 : dim, i#109760 : nat, i#109767 : nat} "f32x4.nearest" => `VUNOP`_instr{shape#4202}(`%X%`_shape{lanetype#25851, dim#25851, i#109760}(`F32`_lanetype, `%`_dim{i#109767}(4)), `NEAREST`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.abs" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), ABS_vunop_) + prod{shape#4204 : shape, lanetype#25893 : lanetype, dim#25893 : dim, i#109832 : nat, i#109839 : nat} "f64x2.abs" => `VUNOP`_instr{shape#4204}(`%X%`_shape{lanetype#25893, dim#25893, i#109832}(`F64`_lanetype, `%`_dim{i#109839}(2)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.neg" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), NEG_vunop_) + prod{shape#4206 : shape, lanetype#25935 : lanetype, dim#25935 : dim, i#109904 : nat, i#109911 : nat} "f64x2.neg" => `VUNOP`_instr{shape#4206}(`%X%`_shape{lanetype#25935, dim#25935, i#109904}(`F64`_lanetype, `%`_dim{i#109911}(2)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.sqrt" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), SQRT_vunop_) + prod{shape#4208 : shape, lanetype#25977 : lanetype, dim#25977 : dim, i#109976 : nat, i#109983 : nat} "f64x2.sqrt" => `VUNOP`_instr{shape#4208}(`%X%`_shape{lanetype#25977, dim#25977, i#109976}(`F64`_lanetype, `%`_dim{i#109983}(2)), `SQRT`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.ceil" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), CEIL_vunop_) + prod{shape#4210 : shape, lanetype#26019 : lanetype, dim#26019 : dim, i#110048 : nat, i#110055 : nat} "f64x2.ceil" => `VUNOP`_instr{shape#4210}(`%X%`_shape{lanetype#26019, dim#26019, i#110048}(`F64`_lanetype, `%`_dim{i#110055}(2)), `CEIL`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.floor" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), FLOOR_vunop_) + prod{shape#4212 : shape, lanetype#26061 : lanetype, dim#26061 : dim, i#110120 : nat, i#110127 : nat} "f64x2.floor" => `VUNOP`_instr{shape#4212}(`%X%`_shape{lanetype#26061, dim#26061, i#110120}(`F64`_lanetype, `%`_dim{i#110127}(2)), `FLOOR`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.trunc" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), TRUNC_vunop_) + prod{shape#4214 : shape, lanetype#26103 : lanetype, dim#26103 : dim, i#110192 : nat, i#110199 : nat} "f64x2.trunc" => `VUNOP`_instr{shape#4214}(`%X%`_shape{lanetype#26103, dim#26103, i#110192}(`F64`_lanetype, `%`_dim{i#110199}(2)), `TRUNC`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.nearest" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), NEAREST_vunop_) + prod{shape#4216 : shape, lanetype#26145 : lanetype, dim#26145 : dim, i#110264 : nat, i#110271 : nat} "f64x2.nearest" => `VUNOP`_instr{shape#4216}(`%X%`_shape{lanetype#26145, dim#26145, i#110264}(`F64`_lanetype, `%`_dim{i#110271}(2)), `NEAREST`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.and" => VVBINOP_instr(V128_vectype, AND_vvbinop) + prod{vectype#320 : vectype, vvbinop#15 : vvbinop} "v128.and" => `VVBINOP`_instr{vectype#320, vvbinop#15}(`V128`_vectype, `AND`_vvbinop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.andnot" => VVBINOP_instr(V128_vectype, ANDNOT_vvbinop) + prod{vectype#322 : vectype, vvbinop#17 : vvbinop} "v128.andnot" => `VVBINOP`_instr{vectype#322, vvbinop#17}(`V128`_vectype, `ANDNOT`_vvbinop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.or" => VVBINOP_instr(V128_vectype, OR_vvbinop) + prod{vectype#324 : vectype, vvbinop#19 : vvbinop} "v128.or" => `VVBINOP`_instr{vectype#324, vvbinop#19}(`V128`_vectype, `OR`_vvbinop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.xor" => VVBINOP_instr(V128_vectype, XOR_vvbinop) + prod{vectype#326 : vectype, vvbinop#21 : vvbinop} "v128.xor" => `VVBINOP`_instr{vectype#326, vvbinop#21}(`V128`_vectype, `XOR`_vvbinop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.add" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ADD_vbinop_) + prod{shape#4218 : shape, lanetype#26187 : lanetype, dim#26187 : dim, i#110336 : nat, i#110343 : nat} "i8x16.add" => `VBINOP`_instr{shape#4218}(`%X%`_shape{lanetype#26187, dim#26187, i#110336}(`I8`_lanetype, `%`_dim{i#110343}(16)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.add_sat_s" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ADD_SAT_vbinop_(S_sx)) + prod{shape#4220 : shape, lanetype#26214 : lanetype, dim#26214 : dim, i#110393 : nat, i#110400 : nat, sx#25854 : sx} "i8x16.add_sat_s" => `VBINOP`_instr{shape#4220}(`%X%`_shape{lanetype#26214, dim#26214, i#110393}(`I8`_lanetype, `%`_dim{i#110400}(16)), `ADD_SAT`_vbinop_{sx#25854}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.add_sat_u" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ADD_SAT_vbinop_(U_sx)) + prod{shape#4222 : shape, lanetype#26256 : lanetype, dim#26256 : dim, i#110495 : nat, i#110502 : nat, sx#25978 : sx} "i8x16.add_sat_u" => `VBINOP`_instr{shape#4222}(`%X%`_shape{lanetype#26256, dim#26256, i#110495}(`I8`_lanetype, `%`_dim{i#110502}(16)), `ADD_SAT`_vbinop_{sx#25978}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.sub" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), SUB_vbinop_) + prod{shape#4224 : shape, lanetype#26298 : lanetype, dim#26298 : dim, i#110597 : nat, i#110604 : nat} "i8x16.sub" => `VBINOP`_instr{shape#4224}(`%X%`_shape{lanetype#26298, dim#26298, i#110597}(`I8`_lanetype, `%`_dim{i#110604}(16)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.sub_sat_s" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), SUB_SAT_vbinop_(S_sx)) + prod{shape#4226 : shape, lanetype#26325 : lanetype, dim#26325 : dim, i#110654 : nat, i#110661 : nat, sx#26162 : sx} "i8x16.sub_sat_s" => `VBINOP`_instr{shape#4226}(`%X%`_shape{lanetype#26325, dim#26325, i#110654}(`I8`_lanetype, `%`_dim{i#110661}(16)), `SUB_SAT`_vbinop_{sx#26162}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.sub_sat_u" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), SUB_SAT_vbinop_(U_sx)) + prod{shape#4228 : shape, lanetype#26367 : lanetype, dim#26367 : dim, i#110756 : nat, i#110763 : nat, sx#26286 : sx} "i8x16.sub_sat_u" => `VBINOP`_instr{shape#4228}(`%X%`_shape{lanetype#26367, dim#26367, i#110756}(`I8`_lanetype, `%`_dim{i#110763}(16)), `SUB_SAT`_vbinop_{sx#26286}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.min_s" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MIN_vbinop_(S_sx)) + prod{shape#4230 : shape, lanetype#26409 : lanetype, dim#26409 : dim, i#110858 : nat, i#110865 : nat, sx#26410 : sx} "i8x16.min_s" => `VBINOP`_instr{shape#4230}(`%X%`_shape{lanetype#26409, dim#26409, i#110858}(`I8`_lanetype, `%`_dim{i#110865}(16)), `MIN`_vbinop_{sx#26410}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.min_u" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MIN_vbinop_(U_sx)) + prod{shape#4232 : shape, lanetype#26451 : lanetype, dim#26451 : dim, i#110960 : nat, i#110967 : nat, sx#26534 : sx} "i8x16.min_u" => `VBINOP`_instr{shape#4232}(`%X%`_shape{lanetype#26451, dim#26451, i#110960}(`I8`_lanetype, `%`_dim{i#110967}(16)), `MIN`_vbinop_{sx#26534}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.max_s" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MAX_vbinop_(S_sx)) + prod{shape#4234 : shape, lanetype#26493 : lanetype, dim#26493 : dim, i#111062 : nat, i#111069 : nat, sx#26658 : sx} "i8x16.max_s" => `VBINOP`_instr{shape#4234}(`%X%`_shape{lanetype#26493, dim#26493, i#111062}(`I8`_lanetype, `%`_dim{i#111069}(16)), `MAX`_vbinop_{sx#26658}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.max_u" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MAX_vbinop_(U_sx)) + prod{shape#4236 : shape, lanetype#26535 : lanetype, dim#26535 : dim, i#111164 : nat, i#111171 : nat, sx#26782 : sx} "i8x16.max_u" => `VBINOP`_instr{shape#4236}(`%X%`_shape{lanetype#26535, dim#26535, i#111164}(`I8`_lanetype, `%`_dim{i#111171}(16)), `MAX`_vbinop_{sx#26782}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.avgr_u" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), `AVGRU`_vbinop_) + prod{shape#4238 : shape, lanetype#26577 : lanetype, dim#26577 : dim, i#111266 : nat, i#111273 : nat} "i8x16.avgr_u" => `VBINOP`_instr{shape#4238}(`%X%`_shape{lanetype#26577, dim#26577, i#111266}(`I8`_lanetype, `%`_dim{i#111273}(16)), `AVGRU`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.add" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ADD_vbinop_) + prod{shape#4240 : shape, lanetype#26619 : lanetype, dim#26619 : dim, i#111368 : nat, i#111375 : nat} "i16x8.add" => `VBINOP`_instr{shape#4240}(`%X%`_shape{lanetype#26619, dim#26619, i#111368}(`I16`_lanetype, `%`_dim{i#111375}(8)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.add_sat_s" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ADD_SAT_vbinop_(S_sx)) + prod{shape#4242 : shape, lanetype#26646 : lanetype, dim#26646 : dim, i#111425 : nat, i#111432 : nat, sx#27086 : sx} "i16x8.add_sat_s" => `VBINOP`_instr{shape#4242}(`%X%`_shape{lanetype#26646, dim#26646, i#111425}(`I16`_lanetype, `%`_dim{i#111432}(8)), `ADD_SAT`_vbinop_{sx#27086}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.add_sat_u" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ADD_SAT_vbinop_(U_sx)) + prod{shape#4244 : shape, lanetype#26688 : lanetype, dim#26688 : dim, i#111527 : nat, i#111534 : nat, sx#27210 : sx} "i16x8.add_sat_u" => `VBINOP`_instr{shape#4244}(`%X%`_shape{lanetype#26688, dim#26688, i#111527}(`I16`_lanetype, `%`_dim{i#111534}(8)), `ADD_SAT`_vbinop_{sx#27210}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.sub" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), SUB_vbinop_) + prod{shape#4246 : shape, lanetype#26730 : lanetype, dim#26730 : dim, i#111629 : nat, i#111636 : nat} "i16x8.sub" => `VBINOP`_instr{shape#4246}(`%X%`_shape{lanetype#26730, dim#26730, i#111629}(`I16`_lanetype, `%`_dim{i#111636}(8)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.sub_sat_s" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), SUB_SAT_vbinop_(S_sx)) + prod{shape#4248 : shape, lanetype#26757 : lanetype, dim#26757 : dim, i#111686 : nat, i#111693 : nat, sx#27394 : sx} "i16x8.sub_sat_s" => `VBINOP`_instr{shape#4248}(`%X%`_shape{lanetype#26757, dim#26757, i#111686}(`I16`_lanetype, `%`_dim{i#111693}(8)), `SUB_SAT`_vbinop_{sx#27394}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.sub_sat_u" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), SUB_SAT_vbinop_(U_sx)) + prod{shape#4250 : shape, lanetype#26799 : lanetype, dim#26799 : dim, i#111788 : nat, i#111795 : nat, sx#27518 : sx} "i16x8.sub_sat_u" => `VBINOP`_instr{shape#4250}(`%X%`_shape{lanetype#26799, dim#26799, i#111788}(`I16`_lanetype, `%`_dim{i#111795}(8)), `SUB_SAT`_vbinop_{sx#27518}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.mul" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MUL_vbinop_) + prod{shape#4252 : shape, lanetype#26841 : lanetype, dim#26841 : dim, i#111890 : nat, i#111897 : nat} "i16x8.mul" => `VBINOP`_instr{shape#4252}(`%X%`_shape{lanetype#26841, dim#26841, i#111890}(`I16`_lanetype, `%`_dim{i#111897}(8)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.min_s" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MIN_vbinop_(S_sx)) + prod{shape#4254 : shape, lanetype#26868 : lanetype, dim#26868 : dim, i#111947 : nat, i#111954 : nat, sx#27702 : sx} "i16x8.min_s" => `VBINOP`_instr{shape#4254}(`%X%`_shape{lanetype#26868, dim#26868, i#111947}(`I16`_lanetype, `%`_dim{i#111954}(8)), `MIN`_vbinop_{sx#27702}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.min_u" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MIN_vbinop_(U_sx)) + prod{shape#4256 : shape, lanetype#26910 : lanetype, dim#26910 : dim, i#112049 : nat, i#112056 : nat, sx#27826 : sx} "i16x8.min_u" => `VBINOP`_instr{shape#4256}(`%X%`_shape{lanetype#26910, dim#26910, i#112049}(`I16`_lanetype, `%`_dim{i#112056}(8)), `MIN`_vbinop_{sx#27826}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.max_s" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MAX_vbinop_(S_sx)) + prod{shape#4258 : shape, lanetype#26952 : lanetype, dim#26952 : dim, i#112151 : nat, i#112158 : nat, sx#27950 : sx} "i16x8.max_s" => `VBINOP`_instr{shape#4258}(`%X%`_shape{lanetype#26952, dim#26952, i#112151}(`I16`_lanetype, `%`_dim{i#112158}(8)), `MAX`_vbinop_{sx#27950}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.max_u" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MAX_vbinop_(U_sx)) + prod{shape#4260 : shape, lanetype#26994 : lanetype, dim#26994 : dim, i#112253 : nat, i#112260 : nat, sx#28074 : sx} "i16x8.max_u" => `VBINOP`_instr{shape#4260}(`%X%`_shape{lanetype#26994, dim#26994, i#112253}(`I16`_lanetype, `%`_dim{i#112260}(8)), `MAX`_vbinop_{sx#28074}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.avgr_u" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `AVGRU`_vbinop_) + prod{shape#4262 : shape, lanetype#27036 : lanetype, dim#27036 : dim, i#112355 : nat, i#112362 : nat} "i16x8.avgr_u" => `VBINOP`_instr{shape#4262}(`%X%`_shape{lanetype#27036, dim#27036, i#112355}(`I16`_lanetype, `%`_dim{i#112362}(8)), `AVGRU`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.q15mulr_sat_s" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_) + prod{shape#4264 : shape, lanetype#27078 : lanetype, dim#27078 : dim, i#112457 : nat, i#112464 : nat} "i16x8.q15mulr_sat_s" => `VBINOP`_instr{shape#4264}(`%X%`_shape{lanetype#27078, dim#27078, i#112457}(`I16`_lanetype, `%`_dim{i#112464}(8)), `Q15MULR_SATS`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.relaxed_q15mulr_s" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_) + prod{shape#4266 : shape, lanetype#27120 : lanetype, dim#27120 : dim, i#112559 : nat, i#112566 : nat} "i16x8.relaxed_q15mulr_s" => `VBINOP`_instr{shape#4266}(`%X%`_shape{lanetype#27120, dim#27120, i#112559}(`I16`_lanetype, `%`_dim{i#112566}(8)), `RELAXED_Q15MULRS`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.add" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ADD_vbinop_) + prod{shape#4268 : shape, lanetype#27162 : lanetype, dim#27162 : dim, i#112661 : nat, i#112668 : nat} "i32x4.add" => `VBINOP`_instr{shape#4268}(`%X%`_shape{lanetype#27162, dim#27162, i#112661}(`I32`_lanetype, `%`_dim{i#112668}(4)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.sub" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), SUB_vbinop_) + prod{shape#4270 : shape, lanetype#27189 : lanetype, dim#27189 : dim, i#112718 : nat, i#112725 : nat} "i32x4.sub" => `VBINOP`_instr{shape#4270}(`%X%`_shape{lanetype#27189, dim#27189, i#112718}(`I32`_lanetype, `%`_dim{i#112725}(4)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.mul" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MUL_vbinop_) + prod{shape#4272 : shape, lanetype#27216 : lanetype, dim#27216 : dim, i#112775 : nat, i#112782 : nat} "i32x4.mul" => `VBINOP`_instr{shape#4272}(`%X%`_shape{lanetype#27216, dim#27216, i#112775}(`I32`_lanetype, `%`_dim{i#112782}(4)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.min_s" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MIN_vbinop_(S_sx)) + prod{shape#4274 : shape, lanetype#27243 : lanetype, dim#27243 : dim, i#112832 : nat, i#112839 : nat, sx#28738 : sx} "i32x4.min_s" => `VBINOP`_instr{shape#4274}(`%X%`_shape{lanetype#27243, dim#27243, i#112832}(`I32`_lanetype, `%`_dim{i#112839}(4)), `MIN`_vbinop_{sx#28738}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.min_u" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MIN_vbinop_(U_sx)) + prod{shape#4276 : shape, lanetype#27285 : lanetype, dim#27285 : dim, i#112934 : nat, i#112941 : nat, sx#28862 : sx} "i32x4.min_u" => `VBINOP`_instr{shape#4276}(`%X%`_shape{lanetype#27285, dim#27285, i#112934}(`I32`_lanetype, `%`_dim{i#112941}(4)), `MIN`_vbinop_{sx#28862}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.max_s" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MAX_vbinop_(S_sx)) + prod{shape#4278 : shape, lanetype#27327 : lanetype, dim#27327 : dim, i#113036 : nat, i#113043 : nat, sx#28986 : sx} "i32x4.max_s" => `VBINOP`_instr{shape#4278}(`%X%`_shape{lanetype#27327, dim#27327, i#113036}(`I32`_lanetype, `%`_dim{i#113043}(4)), `MAX`_vbinop_{sx#28986}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.max_u" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MAX_vbinop_(U_sx)) + prod{shape#4280 : shape, lanetype#27369 : lanetype, dim#27369 : dim, i#113138 : nat, i#113145 : nat, sx#29110 : sx} "i32x4.max_u" => `VBINOP`_instr{shape#4280}(`%X%`_shape{lanetype#27369, dim#27369, i#113138}(`I32`_lanetype, `%`_dim{i#113145}(4)), `MAX`_vbinop_{sx#29110}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.add" => VBINOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ADD_vbinop_) + prod{shape#4282 : shape, lanetype#27411 : lanetype, dim#27411 : dim, i#113240 : nat, i#113247 : nat} "i64x2.add" => `VBINOP`_instr{shape#4282}(`%X%`_shape{lanetype#27411, dim#27411, i#113240}(`I64`_lanetype, `%`_dim{i#113247}(2)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.sub" => VBINOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), SUB_vbinop_) + prod{shape#4284 : shape, lanetype#27438 : lanetype, dim#27438 : dim, i#113297 : nat, i#113304 : nat} "i64x2.sub" => `VBINOP`_instr{shape#4284}(`%X%`_shape{lanetype#27438, dim#27438, i#113297}(`I64`_lanetype, `%`_dim{i#113304}(2)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.mul" => VBINOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), MUL_vbinop_) + prod{shape#4286 : shape, lanetype#27465 : lanetype, dim#27465 : dim, i#113354 : nat, i#113361 : nat} "i64x2.mul" => `VBINOP`_instr{shape#4286}(`%X%`_shape{lanetype#27465, dim#27465, i#113354}(`I64`_lanetype, `%`_dim{i#113361}(2)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.add" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), ADD_vbinop_) + prod{shape#4288 : shape, lanetype#27492 : lanetype, dim#27492 : dim, i#113411 : nat, i#113418 : nat} "f32x4.add" => `VBINOP`_instr{shape#4288}(`%X%`_shape{lanetype#27492, dim#27492, i#113411}(`F32`_lanetype, `%`_dim{i#113418}(4)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.sub" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), SUB_vbinop_) + prod{shape#4290 : shape, lanetype#27534 : lanetype, dim#27534 : dim, i#113483 : nat, i#113490 : nat} "f32x4.sub" => `VBINOP`_instr{shape#4290}(`%X%`_shape{lanetype#27534, dim#27534, i#113483}(`F32`_lanetype, `%`_dim{i#113490}(4)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.mul" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), MUL_vbinop_) + prod{shape#4292 : shape, lanetype#27576 : lanetype, dim#27576 : dim, i#113555 : nat, i#113562 : nat} "f32x4.mul" => `VBINOP`_instr{shape#4292}(`%X%`_shape{lanetype#27576, dim#27576, i#113555}(`F32`_lanetype, `%`_dim{i#113562}(4)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.div" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), DIV_vbinop_) + prod{shape#4294 : shape, lanetype#27618 : lanetype, dim#27618 : dim, i#113627 : nat, i#113634 : nat} "f32x4.div" => `VBINOP`_instr{shape#4294}(`%X%`_shape{lanetype#27618, dim#27618, i#113627}(`F32`_lanetype, `%`_dim{i#113634}(4)), `DIV`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.min" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), MIN_vbinop_) + prod{shape#4296 : shape, lanetype#27660 : lanetype, dim#27660 : dim, i#113699 : nat, i#113706 : nat} "f32x4.min" => `VBINOP`_instr{shape#4296}(`%X%`_shape{lanetype#27660, dim#27660, i#113699}(`F32`_lanetype, `%`_dim{i#113706}(4)), `MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.max" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), MAX_vbinop_) + prod{shape#4298 : shape, lanetype#27702 : lanetype, dim#27702 : dim, i#113771 : nat, i#113778 : nat} "f32x4.max" => `VBINOP`_instr{shape#4298}(`%X%`_shape{lanetype#27702, dim#27702, i#113771}(`F32`_lanetype, `%`_dim{i#113778}(4)), `MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.pmin" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), PMIN_vbinop_) + prod{shape#4300 : shape, lanetype#27744 : lanetype, dim#27744 : dim, i#113843 : nat, i#113850 : nat} "f32x4.pmin" => `VBINOP`_instr{shape#4300}(`%X%`_shape{lanetype#27744, dim#27744, i#113843}(`F32`_lanetype, `%`_dim{i#113850}(4)), `PMIN`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.pmax" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), PMAX_vbinop_) + prod{shape#4302 : shape, lanetype#27786 : lanetype, dim#27786 : dim, i#113915 : nat, i#113922 : nat} "f32x4.pmax" => `VBINOP`_instr{shape#4302}(`%X%`_shape{lanetype#27786, dim#27786, i#113915}(`F32`_lanetype, `%`_dim{i#113922}(4)), `PMAX`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.relaxed_min" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_MIN_vbinop_) + prod{shape#4304 : shape, lanetype#27828 : lanetype, dim#27828 : dim, i#113987 : nat, i#113994 : nat} "f32x4.relaxed_min" => `VBINOP`_instr{shape#4304}(`%X%`_shape{lanetype#27828, dim#27828, i#113987}(`F32`_lanetype, `%`_dim{i#113994}(4)), `RELAXED_MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.relaxed_max" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_MAX_vbinop_) + prod{shape#4306 : shape, lanetype#27870 : lanetype, dim#27870 : dim, i#114059 : nat, i#114066 : nat} "f32x4.relaxed_max" => `VBINOP`_instr{shape#4306}(`%X%`_shape{lanetype#27870, dim#27870, i#114059}(`F32`_lanetype, `%`_dim{i#114066}(4)), `RELAXED_MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.add" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), ADD_vbinop_) + prod{shape#4308 : shape, lanetype#27912 : lanetype, dim#27912 : dim, i#114131 : nat, i#114138 : nat} "f64x2.add" => `VBINOP`_instr{shape#4308}(`%X%`_shape{lanetype#27912, dim#27912, i#114131}(`F64`_lanetype, `%`_dim{i#114138}(2)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.sub" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), SUB_vbinop_) + prod{shape#4310 : shape, lanetype#27954 : lanetype, dim#27954 : dim, i#114203 : nat, i#114210 : nat} "f64x2.sub" => `VBINOP`_instr{shape#4310}(`%X%`_shape{lanetype#27954, dim#27954, i#114203}(`F64`_lanetype, `%`_dim{i#114210}(2)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.mul" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), MUL_vbinop_) + prod{shape#4312 : shape, lanetype#27996 : lanetype, dim#27996 : dim, i#114275 : nat, i#114282 : nat} "f64x2.mul" => `VBINOP`_instr{shape#4312}(`%X%`_shape{lanetype#27996, dim#27996, i#114275}(`F64`_lanetype, `%`_dim{i#114282}(2)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.div" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), DIV_vbinop_) + prod{shape#4314 : shape, lanetype#28038 : lanetype, dim#28038 : dim, i#114347 : nat, i#114354 : nat} "f64x2.div" => `VBINOP`_instr{shape#4314}(`%X%`_shape{lanetype#28038, dim#28038, i#114347}(`F64`_lanetype, `%`_dim{i#114354}(2)), `DIV`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.min" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), MIN_vbinop_) + prod{shape#4316 : shape, lanetype#28080 : lanetype, dim#28080 : dim, i#114419 : nat, i#114426 : nat} "f64x2.min" => `VBINOP`_instr{shape#4316}(`%X%`_shape{lanetype#28080, dim#28080, i#114419}(`F64`_lanetype, `%`_dim{i#114426}(2)), `MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.max" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), MAX_vbinop_) + prod{shape#4318 : shape, lanetype#28122 : lanetype, dim#28122 : dim, i#114491 : nat, i#114498 : nat} "f64x2.max" => `VBINOP`_instr{shape#4318}(`%X%`_shape{lanetype#28122, dim#28122, i#114491}(`F64`_lanetype, `%`_dim{i#114498}(2)), `MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.pmin" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), PMIN_vbinop_) + prod{shape#4320 : shape, lanetype#28164 : lanetype, dim#28164 : dim, i#114563 : nat, i#114570 : nat} "f64x2.pmin" => `VBINOP`_instr{shape#4320}(`%X%`_shape{lanetype#28164, dim#28164, i#114563}(`F64`_lanetype, `%`_dim{i#114570}(2)), `PMIN`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.pmax" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), PMAX_vbinop_) + prod{shape#4322 : shape, lanetype#28206 : lanetype, dim#28206 : dim, i#114635 : nat, i#114642 : nat} "f64x2.pmax" => `VBINOP`_instr{shape#4322}(`%X%`_shape{lanetype#28206, dim#28206, i#114635}(`F64`_lanetype, `%`_dim{i#114642}(2)), `PMAX`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.relaxed_min" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_MIN_vbinop_) + prod{shape#4324 : shape, lanetype#28248 : lanetype, dim#28248 : dim, i#114707 : nat, i#114714 : nat} "f64x2.relaxed_min" => `VBINOP`_instr{shape#4324}(`%X%`_shape{lanetype#28248, dim#28248, i#114707}(`F64`_lanetype, `%`_dim{i#114714}(2)), `RELAXED_MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.relaxed_max" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_MAX_vbinop_) + prod{shape#4326 : shape, lanetype#28290 : lanetype, dim#28290 : dim, i#114779 : nat, i#114786 : nat} "f64x2.relaxed_max" => `VBINOP`_instr{shape#4326}(`%X%`_shape{lanetype#28290, dim#28290, i#114779}(`F64`_lanetype, `%`_dim{i#114786}(2)), `RELAXED_MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.bitselect" => VVTERNOP_instr(V128_vectype, BITSELECT_vvternop) + prod{vectype#328 : vectype, vvternop#9 : vvternop} "v128.bitselect" => `VVTERNOP`_instr{vectype#328, vvternop#9}(`V128`_vectype, `BITSELECT`_vvternop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.relaxed_laneselect" => VTERNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), RELAXED_LANESELECT_vternop_) + prod{shape#4328 : shape, lanetype#28332 : lanetype, dim#28332 : dim, i#114851 : nat, i#114858 : nat} "i8x16.relaxed_laneselect" => `VTERNOP`_instr{shape#4328}(`%X%`_shape{lanetype#28332, dim#28332, i#114851}(`I8`_lanetype, `%`_dim{i#114858}(16)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.relaxed_laneselect" => VTERNOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), RELAXED_LANESELECT_vternop_) + prod{shape#4330 : shape, lanetype#28359 : lanetype, dim#28359 : dim, i#114908 : nat, i#114915 : nat} "i16x8.relaxed_laneselect" => `VTERNOP`_instr{shape#4330}(`%X%`_shape{lanetype#28359, dim#28359, i#114908}(`I16`_lanetype, `%`_dim{i#114915}(8)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.relaxed_laneselect" => VTERNOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), RELAXED_LANESELECT_vternop_) + prod{shape#4332 : shape, lanetype#28386 : lanetype, dim#28386 : dim, i#114965 : nat, i#114972 : nat} "i32x4.relaxed_laneselect" => `VTERNOP`_instr{shape#4332}(`%X%`_shape{lanetype#28386, dim#28386, i#114965}(`I32`_lanetype, `%`_dim{i#114972}(4)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.relaxed_laneselect" => VTERNOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), RELAXED_LANESELECT_vternop_) + prod{shape#4334 : shape, lanetype#28413 : lanetype, dim#28413 : dim, i#115022 : nat, i#115029 : nat} "i64x2.relaxed_laneselect" => `VTERNOP`_instr{shape#4334}(`%X%`_shape{lanetype#28413, dim#28413, i#115022}(`I64`_lanetype, `%`_dim{i#115029}(2)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.relaxed_madd" => VTERNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_MADD_vternop_) + prod{shape#4336 : shape, lanetype#28440 : lanetype, dim#28440 : dim, i#115079 : nat, i#115086 : nat} "f32x4.relaxed_madd" => `VTERNOP`_instr{shape#4336}(`%X%`_shape{lanetype#28440, dim#28440, i#115079}(`F32`_lanetype, `%`_dim{i#115086}(4)), `RELAXED_MADD`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.relaxed_nmadd" => VTERNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_NMADD_vternop_) + prod{shape#4338 : shape, lanetype#28482 : lanetype, dim#28482 : dim, i#115151 : nat, i#115158 : nat} "f32x4.relaxed_nmadd" => `VTERNOP`_instr{shape#4338}(`%X%`_shape{lanetype#28482, dim#28482, i#115151}(`F32`_lanetype, `%`_dim{i#115158}(4)), `RELAXED_NMADD`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.relaxed_madd" => VTERNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_MADD_vternop_) + prod{shape#4340 : shape, lanetype#28524 : lanetype, dim#28524 : dim, i#115223 : nat, i#115230 : nat} "f64x2.relaxed_madd" => `VTERNOP`_instr{shape#4340}(`%X%`_shape{lanetype#28524, dim#28524, i#115223}(`F64`_lanetype, `%`_dim{i#115230}(2)), `RELAXED_MADD`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.relaxed_nmadd" => VTERNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_NMADD_vternop_) + prod{shape#4342 : shape, lanetype#28566 : lanetype, dim#28566 : dim, i#115295 : nat, i#115302 : nat} "f64x2.relaxed_nmadd" => `VTERNOP`_instr{shape#4342}(`%X%`_shape{lanetype#28566, dim#28566, i#115295}(`F64`_lanetype, `%`_dim{i#115302}(2)), `RELAXED_NMADD`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.shl" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SHL_vshiftop_) + prod{ishape#45 : ishape, shape#4354 : shape, Jnn#488 : Jnn, lanetype#28608 : lanetype, dim#28608 : dim, i#115367 : nat, i#115374 : nat} "i8x16.shl" => `VSHIFTOP`_instr{ishape#45}(`%`_ishape{shape#4354, Jnn#488}(`%X%`_shape{lanetype#28608, dim#28608, i#115367}(`I8`_lanetype, `%`_dim{i#115374}(16))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.shr_s" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SHR_vshiftop_(S_sx)) + prod{ishape#47 : ishape, shape#4381 : shape, Jnn#492 : Jnn, lanetype#28665 : lanetype, dim#28665 : dim, i#115454 : nat, i#115461 : nat, sx#29339 : sx} "i8x16.shr_s" => `VSHIFTOP`_instr{ishape#47}(`%`_ishape{shape#4381, Jnn#492}(`%X%`_shape{lanetype#28665, dim#28665, i#115454}(`I8`_lanetype, `%`_dim{i#115461}(16))), `SHR`_vshiftop_{sx#29339}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.shr_u" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SHR_vshiftop_(U_sx)) + prod{ishape#49 : ishape, shape#4423 : shape, Jnn#496 : Jnn, lanetype#28767 : lanetype, dim#28767 : dim, i#115616 : nat, i#115623 : nat, sx#29373 : sx} "i8x16.shr_u" => `VSHIFTOP`_instr{ishape#49}(`%`_ishape{shape#4423, Jnn#496}(`%X%`_shape{lanetype#28767, dim#28767, i#115616}(`I8`_lanetype, `%`_dim{i#115623}(16))), `SHR`_vshiftop_{sx#29373}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.shl" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), SHL_vshiftop_) + prod{ishape#51 : ishape, shape#4465 : shape, Jnn#500 : Jnn, lanetype#28869 : lanetype, dim#28869 : dim, i#115778 : nat, i#115785 : nat} "i16x8.shl" => `VSHIFTOP`_instr{ishape#51}(`%`_ishape{shape#4465, Jnn#500}(`%X%`_shape{lanetype#28869, dim#28869, i#115778}(`I16`_lanetype, `%`_dim{i#115785}(8))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.shr_s" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), SHR_vshiftop_(S_sx)) + prod{ishape#53 : ishape, shape#4492 : shape, Jnn#504 : Jnn, lanetype#28926 : lanetype, dim#28926 : dim, i#115865 : nat, i#115872 : nat, sx#29422 : sx} "i16x8.shr_s" => `VSHIFTOP`_instr{ishape#53}(`%`_ishape{shape#4492, Jnn#504}(`%X%`_shape{lanetype#28926, dim#28926, i#115865}(`I16`_lanetype, `%`_dim{i#115872}(8))), `SHR`_vshiftop_{sx#29422}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.shr_u" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), SHR_vshiftop_(U_sx)) + prod{ishape#55 : ishape, shape#4534 : shape, Jnn#508 : Jnn, lanetype#29028 : lanetype, dim#29028 : dim, i#116027 : nat, i#116034 : nat, sx#29456 : sx} "i16x8.shr_u" => `VSHIFTOP`_instr{ishape#55}(`%`_ishape{shape#4534, Jnn#508}(`%X%`_shape{lanetype#29028, dim#29028, i#116027}(`I16`_lanetype, `%`_dim{i#116034}(8))), `SHR`_vshiftop_{sx#29456}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.shl" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), SHL_vshiftop_) + prod{ishape#57 : ishape, shape#4576 : shape, Jnn#512 : Jnn, lanetype#29130 : lanetype, dim#29130 : dim, i#116189 : nat, i#116196 : nat} "i32x4.shl" => `VSHIFTOP`_instr{ishape#57}(`%`_ishape{shape#4576, Jnn#512}(`%X%`_shape{lanetype#29130, dim#29130, i#116189}(`I32`_lanetype, `%`_dim{i#116196}(4))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.shr_s" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), SHR_vshiftop_(S_sx)) + prod{ishape#59 : ishape, shape#4603 : shape, Jnn#516 : Jnn, lanetype#29187 : lanetype, dim#29187 : dim, i#116276 : nat, i#116283 : nat, sx#29505 : sx} "i32x4.shr_s" => `VSHIFTOP`_instr{ishape#59}(`%`_ishape{shape#4603, Jnn#516}(`%X%`_shape{lanetype#29187, dim#29187, i#116276}(`I32`_lanetype, `%`_dim{i#116283}(4))), `SHR`_vshiftop_{sx#29505}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.shr_u" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), SHR_vshiftop_(U_sx)) + prod{ishape#61 : ishape, shape#4645 : shape, Jnn#520 : Jnn, lanetype#29289 : lanetype, dim#29289 : dim, i#116438 : nat, i#116445 : nat, sx#29539 : sx} "i32x4.shr_u" => `VSHIFTOP`_instr{ishape#61}(`%`_ishape{shape#4645, Jnn#520}(`%X%`_shape{lanetype#29289, dim#29289, i#116438}(`I32`_lanetype, `%`_dim{i#116445}(4))), `SHR`_vshiftop_{sx#29539}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.shl" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), SHL_vshiftop_) + prod{ishape#63 : ishape, shape#4687 : shape, Jnn#524 : Jnn, lanetype#29391 : lanetype, dim#29391 : dim, i#116600 : nat, i#116607 : nat} "i64x2.shl" => `VSHIFTOP`_instr{ishape#63}(`%`_ishape{shape#4687, Jnn#524}(`%X%`_shape{lanetype#29391, dim#29391, i#116600}(`I64`_lanetype, `%`_dim{i#116607}(2))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.shr_s" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), SHR_vshiftop_(S_sx)) + prod{ishape#65 : ishape, shape#4714 : shape, Jnn#528 : Jnn, lanetype#29448 : lanetype, dim#29448 : dim, i#116687 : nat, i#116694 : nat, sx#29588 : sx} "i64x2.shr_s" => `VSHIFTOP`_instr{ishape#65}(`%`_ishape{shape#4714, Jnn#528}(`%X%`_shape{lanetype#29448, dim#29448, i#116687}(`I64`_lanetype, `%`_dim{i#116694}(2))), `SHR`_vshiftop_{sx#29588}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.shr_u" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), SHR_vshiftop_(U_sx)) + prod{ishape#67 : ishape, shape#4756 : shape, Jnn#532 : Jnn, lanetype#29550 : lanetype, dim#29550 : dim, i#116849 : nat, i#116856 : nat, sx#29622 : sx} "i64x2.shr_u" => `VSHIFTOP`_instr{ishape#67}(`%`_ishape{shape#4756, Jnn#532}(`%X%`_shape{lanetype#29550, dim#29550, i#116849}(`I64`_lanetype, `%`_dim{i#116856}(2))), `SHR`_vshiftop_{sx#29622}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.bitmask" => VBITMASK_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16)))) + prod{ishape#69 : ishape, shape#4798 : shape, Jnn#536 : Jnn, lanetype#29652 : lanetype, dim#29652 : dim, i#117011 : nat, i#117018 : nat} "i8x16.bitmask" => `VBITMASK`_instr{ishape#69}(`%`_ishape{shape#4798, Jnn#536}(`%X%`_shape{lanetype#29652, dim#29652, i#117011}(`I8`_lanetype, `%`_dim{i#117018}(16)))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.bitmask" => VBITMASK_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8)))) + prod{ishape#71 : ishape, shape#4810 : shape, Jnn#540 : Jnn, lanetype#29664 : lanetype, dim#29664 : dim, i#117023 : nat, i#117030 : nat} "i16x8.bitmask" => `VBITMASK`_instr{ishape#71}(`%`_ishape{shape#4810, Jnn#540}(`%X%`_shape{lanetype#29664, dim#29664, i#117023}(`I16`_lanetype, `%`_dim{i#117030}(8)))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.bitmask" => VBITMASK_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4)))) + prod{ishape#73 : ishape, shape#4822 : shape, Jnn#544 : Jnn, lanetype#29676 : lanetype, dim#29676 : dim, i#117035 : nat, i#117042 : nat} "i32x4.bitmask" => `VBITMASK`_instr{ishape#73}(`%`_ishape{shape#4822, Jnn#544}(`%X%`_shape{lanetype#29676, dim#29676, i#117035}(`I32`_lanetype, `%`_dim{i#117042}(4)))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.bitmask" => VBITMASK_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2)))) + prod{ishape#75 : ishape, shape#4834 : shape, Jnn#548 : Jnn, lanetype#29688 : lanetype, dim#29688 : dim, i#117047 : nat, i#117054 : nat} "i64x2.bitmask" => `VBITMASK`_instr{ishape#75}(`%`_ishape{shape#4834, Jnn#548}(`%X%`_shape{lanetype#29688, dim#29688, i#117047}(`I64`_lanetype, `%`_dim{i#117054}(2)))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.narrow_i16x8_s" => VNARROW_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), S_sx) + prod{ishape_1#71 : ishape, ishape_2#71 : ishape, sx#29624 : sx, shape#4836 : shape, Jnn#549 : Jnn, shape#4837 : shape, Jnn#550 : Jnn, shape#4838 : shape, Jnn#551 : Jnn, shape#4849 : shape, Jnn#555 : Jnn, lanetype#29700 : lanetype, dim#29700 : dim, i#117059 : nat, i#117066 : nat, shape#4861 : shape, Jnn#559 : Jnn, lanetype#29712 : lanetype, dim#29712 : dim, i#117071 : nat, i#117078 : nat} "i8x16.narrow_i16x8_s" => `VNARROW`_instr{ishape_1#71, ishape_2#71, sx#29624, shape#4836, Jnn#549, shape#4837, Jnn#550, shape#4838, Jnn#551}(`%`_ishape{shape#4849, Jnn#555}(`%X%`_shape{lanetype#29700, dim#29700, i#117059}(`I8`_lanetype, `%`_dim{i#117066}(16))), `%`_ishape{shape#4861, Jnn#559}(`%X%`_shape{lanetype#29712, dim#29712, i#117071}(`I16`_lanetype, `%`_dim{i#117078}(8))), `S`_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.narrow_i16x8_u" => VNARROW_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), U_sx) + prod{ishape_1#73 : ishape, ishape_2#73 : ishape, sx#29626 : sx, shape#4863 : shape, Jnn#560 : Jnn, shape#4864 : shape, Jnn#561 : Jnn, shape#4865 : shape, Jnn#562 : Jnn, shape#4876 : shape, Jnn#566 : Jnn, lanetype#29724 : lanetype, dim#29724 : dim, i#117083 : nat, i#117090 : nat, shape#4888 : shape, Jnn#570 : Jnn, lanetype#29736 : lanetype, dim#29736 : dim, i#117095 : nat, i#117102 : nat} "i8x16.narrow_i16x8_u" => `VNARROW`_instr{ishape_1#73, ishape_2#73, sx#29626, shape#4863, Jnn#560, shape#4864, Jnn#561, shape#4865, Jnn#562}(`%`_ishape{shape#4876, Jnn#566}(`%X%`_shape{lanetype#29724, dim#29724, i#117083}(`I8`_lanetype, `%`_dim{i#117090}(16))), `%`_ishape{shape#4888, Jnn#570}(`%X%`_shape{lanetype#29736, dim#29736, i#117095}(`I16`_lanetype, `%`_dim{i#117102}(8))), `U`_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.narrow_i32x4_s" => VNARROW_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), S_sx) + prod{ishape_1#75 : ishape, ishape_2#75 : ishape, sx#29628 : sx, shape#4890 : shape, Jnn#571 : Jnn, shape#4891 : shape, Jnn#572 : Jnn, shape#4892 : shape, Jnn#573 : Jnn, shape#4903 : shape, Jnn#577 : Jnn, lanetype#29748 : lanetype, dim#29748 : dim, i#117107 : nat, i#117114 : nat, shape#4915 : shape, Jnn#581 : Jnn, lanetype#29760 : lanetype, dim#29760 : dim, i#117119 : nat, i#117126 : nat} "i16x8.narrow_i32x4_s" => `VNARROW`_instr{ishape_1#75, ishape_2#75, sx#29628, shape#4890, Jnn#571, shape#4891, Jnn#572, shape#4892, Jnn#573}(`%`_ishape{shape#4903, Jnn#577}(`%X%`_shape{lanetype#29748, dim#29748, i#117107}(`I16`_lanetype, `%`_dim{i#117114}(8))), `%`_ishape{shape#4915, Jnn#581}(`%X%`_shape{lanetype#29760, dim#29760, i#117119}(`I32`_lanetype, `%`_dim{i#117126}(4))), `S`_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.narrow_i32x4_u" => VNARROW_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), U_sx) + prod{ishape_1#77 : ishape, ishape_2#77 : ishape, sx#29630 : sx, shape#4917 : shape, Jnn#582 : Jnn, shape#4918 : shape, Jnn#583 : Jnn, shape#4919 : shape, Jnn#584 : Jnn, shape#4930 : shape, Jnn#588 : Jnn, lanetype#29772 : lanetype, dim#29772 : dim, i#117131 : nat, i#117138 : nat, shape#4942 : shape, Jnn#592 : Jnn, lanetype#29784 : lanetype, dim#29784 : dim, i#117143 : nat, i#117150 : nat} "i16x8.narrow_i32x4_u" => `VNARROW`_instr{ishape_1#77, ishape_2#77, sx#29630, shape#4917, Jnn#582, shape#4918, Jnn#583, shape#4919, Jnn#584}(`%`_ishape{shape#4930, Jnn#588}(`%X%`_shape{lanetype#29772, dim#29772, i#117131}(`I16`_lanetype, `%`_dim{i#117138}(8))), `%`_ishape{shape#4942, Jnn#592}(`%X%`_shape{lanetype#29784, dim#29784, i#117143}(`I32`_lanetype, `%`_dim{i#117150}(4))), `U`_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extend_low_i8x16_s" => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(LOW_half, S_sx)) + prod{shape_1#59 : shape, shape_2#59 : shape, lanetype#29796 : lanetype, dim#29796 : dim, i#117155 : nat, i#117162 : nat, lanetype#29808 : lanetype, dim#29808 : dim, i#117167 : nat, i#117174 : nat, half#1172 : half, sx#29664 : sx} "i16x8.extend_low_i8x16_s" => `VCVTOP`_instr{shape_1#59, shape_2#59}(`%X%`_shape{lanetype#29796, dim#29796, i#117155}(`I16`_lanetype, `%`_dim{i#117162}(8)), `%X%`_shape{lanetype#29808, dim#29808, i#117167}(`I8`_lanetype, `%`_dim{i#117174}(16)), `EXTEND`_vcvtop__{half#1172, sx#29664}(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extend_low_i8x16_u" => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(LOW_half, U_sx)) + prod{shape_1#61 : shape, shape_2#61 : shape, lanetype#29911 : lanetype, dim#29911 : dim, i#117390 : nat, i#117397 : nat, lanetype#29923 : lanetype, dim#29923 : dim, i#117402 : nat, i#117409 : nat, half#1206 : half, sx#29698 : sx} "i16x8.extend_low_i8x16_u" => `VCVTOP`_instr{shape_1#61, shape_2#61}(`%X%`_shape{lanetype#29911, dim#29911, i#117390}(`I16`_lanetype, `%`_dim{i#117397}(8)), `%X%`_shape{lanetype#29923, dim#29923, i#117402}(`I8`_lanetype, `%`_dim{i#117409}(16)), `EXTEND`_vcvtop__{half#1206, sx#29698}(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extend_high_i8x16_s" => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(HIGH_half, S_sx)) + prod{shape_1#63 : shape, shape_2#63 : shape, lanetype#30026 : lanetype, dim#30026 : dim, i#117625 : nat, i#117632 : nat, lanetype#30038 : lanetype, dim#30038 : dim, i#117637 : nat, i#117644 : nat, half#1240 : half, sx#29732 : sx} "i16x8.extend_high_i8x16_s" => `VCVTOP`_instr{shape_1#63, shape_2#63}(`%X%`_shape{lanetype#30026, dim#30026, i#117625}(`I16`_lanetype, `%`_dim{i#117632}(8)), `%X%`_shape{lanetype#30038, dim#30038, i#117637}(`I8`_lanetype, `%`_dim{i#117644}(16)), `EXTEND`_vcvtop__{half#1240, sx#29732}(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extend_high_i8x16_u" => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(HIGH_half, U_sx)) + prod{shape_1#65 : shape, shape_2#65 : shape, lanetype#30141 : lanetype, dim#30141 : dim, i#117860 : nat, i#117867 : nat, lanetype#30153 : lanetype, dim#30153 : dim, i#117872 : nat, i#117879 : nat, half#1274 : half, sx#29766 : sx} "i16x8.extend_high_i8x16_u" => `VCVTOP`_instr{shape_1#65, shape_2#65}(`%X%`_shape{lanetype#30141, dim#30141, i#117860}(`I16`_lanetype, `%`_dim{i#117867}(8)), `%X%`_shape{lanetype#30153, dim#30153, i#117872}(`I8`_lanetype, `%`_dim{i#117879}(16)), `EXTEND`_vcvtop__{half#1274, sx#29766}(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extend_low_i16x8_s" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(LOW_half, S_sx)) + prod{shape_1#67 : shape, shape_2#67 : shape, lanetype#30256 : lanetype, dim#30256 : dim, i#118095 : nat, i#118102 : nat, lanetype#30268 : lanetype, dim#30268 : dim, i#118107 : nat, i#118114 : nat, half#1308 : half, sx#29800 : sx} "i32x4.extend_low_i16x8_s" => `VCVTOP`_instr{shape_1#67, shape_2#67}(`%X%`_shape{lanetype#30256, dim#30256, i#118095}(`I32`_lanetype, `%`_dim{i#118102}(4)), `%X%`_shape{lanetype#30268, dim#30268, i#118107}(`I16`_lanetype, `%`_dim{i#118114}(8)), `EXTEND`_vcvtop__{half#1308, sx#29800}(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extend_low_i16x8_u" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(LOW_half, U_sx)) + prod{shape_1#69 : shape, shape_2#69 : shape, lanetype#30371 : lanetype, dim#30371 : dim, i#118330 : nat, i#118337 : nat, lanetype#30383 : lanetype, dim#30383 : dim, i#118342 : nat, i#118349 : nat, half#1342 : half, sx#29834 : sx} "i32x4.extend_low_i16x8_u" => `VCVTOP`_instr{shape_1#69, shape_2#69}(`%X%`_shape{lanetype#30371, dim#30371, i#118330}(`I32`_lanetype, `%`_dim{i#118337}(4)), `%X%`_shape{lanetype#30383, dim#30383, i#118342}(`I16`_lanetype, `%`_dim{i#118349}(8)), `EXTEND`_vcvtop__{half#1342, sx#29834}(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extend_high_i16x8_s" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(HIGH_half, S_sx)) + prod{shape_1#71 : shape, shape_2#71 : shape, lanetype#30486 : lanetype, dim#30486 : dim, i#118565 : nat, i#118572 : nat, lanetype#30498 : lanetype, dim#30498 : dim, i#118577 : nat, i#118584 : nat, half#1376 : half, sx#29868 : sx} "i32x4.extend_high_i16x8_s" => `VCVTOP`_instr{shape_1#71, shape_2#71}(`%X%`_shape{lanetype#30486, dim#30486, i#118565}(`I32`_lanetype, `%`_dim{i#118572}(4)), `%X%`_shape{lanetype#30498, dim#30498, i#118577}(`I16`_lanetype, `%`_dim{i#118584}(8)), `EXTEND`_vcvtop__{half#1376, sx#29868}(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extend_high_i16x8_u" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(HIGH_half, U_sx)) + prod{shape_1#73 : shape, shape_2#73 : shape, lanetype#30601 : lanetype, dim#30601 : dim, i#118800 : nat, i#118807 : nat, lanetype#30613 : lanetype, dim#30613 : dim, i#118812 : nat, i#118819 : nat, half#1410 : half, sx#29902 : sx} "i32x4.extend_high_i16x8_u" => `VCVTOP`_instr{shape_1#73, shape_2#73}(`%X%`_shape{lanetype#30601, dim#30601, i#118800}(`I32`_lanetype, `%`_dim{i#118807}(4)), `%X%`_shape{lanetype#30613, dim#30613, i#118812}(`I16`_lanetype, `%`_dim{i#118819}(8)), `EXTEND`_vcvtop__{half#1410, sx#29902}(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.trunc_sat_f32x4_s" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), TRUNC_SAT_vcvtop__(S_sx, ?())) + prod{shape_1#75 : shape, shape_2#75 : shape, lanetype#30716 : lanetype, dim#30716 : dim, i#119035 : nat, i#119042 : nat, lanetype#30728 : lanetype, dim#30728 : dim, i#119047 : nat, i#119054 : nat, sx#29966 : sx, `zero?#647` : zero?} "i32x4.trunc_sat_f32x4_s" => `VCVTOP`_instr{shape_1#75, shape_2#75}(`%X%`_shape{lanetype#30716, dim#30716, i#119035}(`I32`_lanetype, `%`_dim{i#119042}(4)), `%X%`_shape{lanetype#30728, dim#30728, i#119047}(`F32`_lanetype, `%`_dim{i#119054}(4)), `TRUNC_SAT`_vcvtop__{sx#29966, `zero?#647`}(`S`_sx, ?())) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.trunc_sat_f32x4_u" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), TRUNC_SAT_vcvtop__(U_sx, ?())) + prod{shape_1#77 : shape, shape_2#77 : shape, lanetype#30891 : lanetype, dim#30891 : dim, i#119330 : nat, i#119337 : nat, lanetype#30903 : lanetype, dim#30903 : dim, i#119342 : nat, i#119349 : nat, sx#30030 : sx, `zero?#711` : zero?} "i32x4.trunc_sat_f32x4_u" => `VCVTOP`_instr{shape_1#77, shape_2#77}(`%X%`_shape{lanetype#30891, dim#30891, i#119330}(`I32`_lanetype, `%`_dim{i#119337}(4)), `%X%`_shape{lanetype#30903, dim#30903, i#119342}(`F32`_lanetype, `%`_dim{i#119349}(4)), `TRUNC_SAT`_vcvtop__{sx#30030, `zero?#711`}(`U`_sx, ?())) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.trunc_sat_f64x2_s_zero" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), TRUNC_SAT_vcvtop__(S_sx, ?(ZERO_zero))) + prod{shape_1#79 : shape, shape_2#79 : shape, lanetype#31066 : lanetype, dim#31066 : dim, i#119625 : nat, i#119632 : nat, lanetype#31078 : lanetype, dim#31078 : dim, i#119637 : nat, i#119644 : nat, sx#30094 : sx, `zero?#775` : zero?} "i32x4.trunc_sat_f64x2_s_zero" => `VCVTOP`_instr{shape_1#79, shape_2#79}(`%X%`_shape{lanetype#31066, dim#31066, i#119625}(`I32`_lanetype, `%`_dim{i#119632}(4)), `%X%`_shape{lanetype#31078, dim#31078, i#119637}(`F64`_lanetype, `%`_dim{i#119644}(2)), `TRUNC_SAT`_vcvtop__{sx#30094, `zero?#775`}(`S`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.trunc_sat_f64x2_u_zero" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), TRUNC_SAT_vcvtop__(U_sx, ?(ZERO_zero))) + prod{shape_1#81 : shape, shape_2#81 : shape, lanetype#31241 : lanetype, dim#31241 : dim, i#119920 : nat, i#119927 : nat, lanetype#31253 : lanetype, dim#31253 : dim, i#119932 : nat, i#119939 : nat, sx#30158 : sx, `zero?#839` : zero?} "i32x4.trunc_sat_f64x2_u_zero" => `VCVTOP`_instr{shape_1#81, shape_2#81}(`%X%`_shape{lanetype#31241, dim#31241, i#119920}(`I32`_lanetype, `%`_dim{i#119927}(4)), `%X%`_shape{lanetype#31253, dim#31253, i#119932}(`F64`_lanetype, `%`_dim{i#119939}(2)), `TRUNC_SAT`_vcvtop__{sx#30158, `zero?#839`}(`U`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.relaxed_trunc_f32x4_s" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_TRUNC_vcvtop__(S_sx, ?())) + prod{shape_1#83 : shape, shape_2#83 : shape, lanetype#31416 : lanetype, dim#31416 : dim, i#120215 : nat, i#120222 : nat, lanetype#31428 : lanetype, dim#31428 : dim, i#120227 : nat, i#120234 : nat, sx#30222 : sx, `zero?#903` : zero?} "i32x4.relaxed_trunc_f32x4_s" => `VCVTOP`_instr{shape_1#83, shape_2#83}(`%X%`_shape{lanetype#31416, dim#31416, i#120215}(`I32`_lanetype, `%`_dim{i#120222}(4)), `%X%`_shape{lanetype#31428, dim#31428, i#120227}(`F32`_lanetype, `%`_dim{i#120234}(4)), `RELAXED_TRUNC`_vcvtop__{sx#30222, `zero?#903`}(`S`_sx, ?())) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.relaxed_trunc_f32x4_u" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_TRUNC_vcvtop__(U_sx, ?())) + prod{shape_1#85 : shape, shape_2#85 : shape, lanetype#31591 : lanetype, dim#31591 : dim, i#120510 : nat, i#120517 : nat, lanetype#31603 : lanetype, dim#31603 : dim, i#120522 : nat, i#120529 : nat, sx#30286 : sx, `zero?#967` : zero?} "i32x4.relaxed_trunc_f32x4_u" => `VCVTOP`_instr{shape_1#85, shape_2#85}(`%X%`_shape{lanetype#31591, dim#31591, i#120510}(`I32`_lanetype, `%`_dim{i#120517}(4)), `%X%`_shape{lanetype#31603, dim#31603, i#120522}(`F32`_lanetype, `%`_dim{i#120529}(4)), `RELAXED_TRUNC`_vcvtop__{sx#30286, `zero?#967`}(`U`_sx, ?())) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.relaxed_trunc_f64x2_s_zero" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_TRUNC_vcvtop__(S_sx, ?(ZERO_zero))) + prod{shape_1#87 : shape, shape_2#87 : shape, lanetype#31766 : lanetype, dim#31766 : dim, i#120805 : nat, i#120812 : nat, lanetype#31778 : lanetype, dim#31778 : dim, i#120817 : nat, i#120824 : nat, sx#30350 : sx, `zero?#1031` : zero?} "i32x4.relaxed_trunc_f64x2_s_zero" => `VCVTOP`_instr{shape_1#87, shape_2#87}(`%X%`_shape{lanetype#31766, dim#31766, i#120805}(`I32`_lanetype, `%`_dim{i#120812}(4)), `%X%`_shape{lanetype#31778, dim#31778, i#120817}(`F64`_lanetype, `%`_dim{i#120824}(2)), `RELAXED_TRUNC`_vcvtop__{sx#30350, `zero?#1031`}(`S`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.relaxed_trunc_f64x2_u_zero" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_TRUNC_vcvtop__(U_sx, ?(ZERO_zero))) + prod{shape_1#89 : shape, shape_2#89 : shape, lanetype#31941 : lanetype, dim#31941 : dim, i#121100 : nat, i#121107 : nat, lanetype#31953 : lanetype, dim#31953 : dim, i#121112 : nat, i#121119 : nat, sx#30414 : sx, `zero?#1095` : zero?} "i32x4.relaxed_trunc_f64x2_u_zero" => `VCVTOP`_instr{shape_1#89, shape_2#89}(`%X%`_shape{lanetype#31941, dim#31941, i#121100}(`I32`_lanetype, `%`_dim{i#121107}(4)), `%X%`_shape{lanetype#31953, dim#31953, i#121112}(`F64`_lanetype, `%`_dim{i#121119}(2)), `RELAXED_TRUNC`_vcvtop__{sx#30414, `zero?#1095`}(`U`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extend_low_i32x4_s" => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(LOW_half, S_sx)) + prod{shape_1#91 : shape, shape_2#91 : shape, lanetype#32116 : lanetype, dim#32116 : dim, i#121395 : nat, i#121402 : nat, lanetype#32128 : lanetype, dim#32128 : dim, i#121407 : nat, i#121414 : nat, half#1444 : half, sx#30448 : sx} "i64x2.extend_low_i32x4_s" => `VCVTOP`_instr{shape_1#91, shape_2#91}(`%X%`_shape{lanetype#32116, dim#32116, i#121395}(`I64`_lanetype, `%`_dim{i#121402}(2)), `%X%`_shape{lanetype#32128, dim#32128, i#121407}(`I32`_lanetype, `%`_dim{i#121414}(4)), `EXTEND`_vcvtop__{half#1444, sx#30448}(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extend_low_i32x4_u" => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(LOW_half, U_sx)) + prod{shape_1#93 : shape, shape_2#93 : shape, lanetype#32231 : lanetype, dim#32231 : dim, i#121630 : nat, i#121637 : nat, lanetype#32243 : lanetype, dim#32243 : dim, i#121642 : nat, i#121649 : nat, half#1478 : half, sx#30482 : sx} "i64x2.extend_low_i32x4_u" => `VCVTOP`_instr{shape_1#93, shape_2#93}(`%X%`_shape{lanetype#32231, dim#32231, i#121630}(`I64`_lanetype, `%`_dim{i#121637}(2)), `%X%`_shape{lanetype#32243, dim#32243, i#121642}(`I32`_lanetype, `%`_dim{i#121649}(4)), `EXTEND`_vcvtop__{half#1478, sx#30482}(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extend_high_i32x4_s" => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(HIGH_half, S_sx)) + prod{shape_1#95 : shape, shape_2#95 : shape, lanetype#32346 : lanetype, dim#32346 : dim, i#121865 : nat, i#121872 : nat, lanetype#32358 : lanetype, dim#32358 : dim, i#121877 : nat, i#121884 : nat, half#1512 : half, sx#30516 : sx} "i64x2.extend_high_i32x4_s" => `VCVTOP`_instr{shape_1#95, shape_2#95}(`%X%`_shape{lanetype#32346, dim#32346, i#121865}(`I64`_lanetype, `%`_dim{i#121872}(2)), `%X%`_shape{lanetype#32358, dim#32358, i#121877}(`I32`_lanetype, `%`_dim{i#121884}(4)), `EXTEND`_vcvtop__{half#1512, sx#30516}(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extend_high_i32x4_u" => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(HIGH_half, U_sx)) + prod{shape_1#97 : shape, shape_2#97 : shape, lanetype#32461 : lanetype, dim#32461 : dim, i#122100 : nat, i#122107 : nat, lanetype#32473 : lanetype, dim#32473 : dim, i#122112 : nat, i#122119 : nat, half#1546 : half, sx#30550 : sx} "i64x2.extend_high_i32x4_u" => `VCVTOP`_instr{shape_1#97, shape_2#97}(`%X%`_shape{lanetype#32461, dim#32461, i#122100}(`I64`_lanetype, `%`_dim{i#122107}(2)), `%X%`_shape{lanetype#32473, dim#32473, i#122112}(`I32`_lanetype, `%`_dim{i#122119}(4)), `EXTEND`_vcvtop__{half#1546, sx#30550}(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.demote_f64x2_zero" => VCVTOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), DEMOTE_vcvtop__(ZERO_zero)) + prod{shape_1#99 : shape, shape_2#99 : shape, lanetype#32576 : lanetype, dim#32576 : dim, i#122335 : nat, i#122342 : nat, lanetype#32588 : lanetype, dim#32588 : dim, i#122347 : nat, i#122354 : nat, zero#2143 : zero} "f32x4.demote_f64x2_zero" => `VCVTOP`_instr{shape_1#99, shape_2#99}(`%X%`_shape{lanetype#32576, dim#32576, i#122335}(`F32`_lanetype, `%`_dim{i#122342}(4)), `%X%`_shape{lanetype#32588, dim#32588, i#122347}(`F64`_lanetype, `%`_dim{i#122354}(2)), `DEMOTE`_vcvtop__{zero#2143}(`ZERO`_zero)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.convert_i32x4_s" => VCVTOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(), S_sx)) + prod{shape_1#101 : shape, shape_2#101 : shape, lanetype#32841 : lanetype, dim#32841 : dim, i#122780 : nat, i#122787 : nat, lanetype#32853 : lanetype, dim#32853 : dim, i#122792 : nat, i#122799 : nat, `half?#175` : half?, sx#30584 : sx} "f32x4.convert_i32x4_s" => `VCVTOP`_instr{shape_1#101, shape_2#101}(`%X%`_shape{lanetype#32841, dim#32841, i#122780}(`F32`_lanetype, `%`_dim{i#122787}(4)), `%X%`_shape{lanetype#32853, dim#32853, i#122792}(`I32`_lanetype, `%`_dim{i#122799}(4)), `CONVERT`_vcvtop__{`half?#175`, sx#30584}(?(), `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.convert_i32x4_u" => VCVTOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(), U_sx)) + prod{shape_1#103 : shape, shape_2#103 : shape, lanetype#33046 : lanetype, dim#33046 : dim, i#123165 : nat, i#123172 : nat, lanetype#33058 : lanetype, dim#33058 : dim, i#123177 : nat, i#123184 : nat, `half?#209` : half?, sx#30618 : sx} "f32x4.convert_i32x4_u" => `VCVTOP`_instr{shape_1#103, shape_2#103}(`%X%`_shape{lanetype#33046, dim#33046, i#123165}(`F32`_lanetype, `%`_dim{i#123172}(4)), `%X%`_shape{lanetype#33058, dim#33058, i#123177}(`I32`_lanetype, `%`_dim{i#123184}(4)), `CONVERT`_vcvtop__{`half?#209`, sx#30618}(?(), `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.promote_low_f32x4" => VCVTOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%X%`_shape(F32_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__) + prod{shape_1#105 : shape, shape_2#105 : shape, lanetype#33251 : lanetype, dim#33251 : dim, i#123550 : nat, i#123557 : nat, lanetype#33263 : lanetype, dim#33263 : dim, i#123562 : nat, i#123569 : nat} "f64x2.promote_low_f32x4" => `VCVTOP`_instr{shape_1#105, shape_2#105}(`%X%`_shape{lanetype#33251, dim#33251, i#123550}(`F64`_lanetype, `%`_dim{i#123557}(2)), `%X%`_shape{lanetype#33263, dim#33263, i#123562}(`F32`_lanetype, `%`_dim{i#123569}(4)), `PROMOTELOW`_vcvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.convert_low_i32x4_s" => VCVTOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(LOW_half), S_sx)) + prod{shape_1#107 : shape, shape_2#107 : shape, lanetype#33516 : lanetype, dim#33516 : dim, i#123995 : nat, i#124002 : nat, lanetype#33528 : lanetype, dim#33528 : dim, i#124007 : nat, i#124014 : nat, `half?#243` : half?, sx#30652 : sx} "f64x2.convert_low_i32x4_s" => `VCVTOP`_instr{shape_1#107, shape_2#107}(`%X%`_shape{lanetype#33516, dim#33516, i#123995}(`F64`_lanetype, `%`_dim{i#124002}(2)), `%X%`_shape{lanetype#33528, dim#33528, i#124007}(`I32`_lanetype, `%`_dim{i#124014}(4)), `CONVERT`_vcvtop__{`half?#243`, sx#30652}(?(`LOW`_half), `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.convert_low_i32x4_u" => VCVTOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(LOW_half), U_sx)) + prod{shape_1#109 : shape, shape_2#109 : shape, lanetype#33721 : lanetype, dim#33721 : dim, i#124380 : nat, i#124387 : nat, lanetype#33733 : lanetype, dim#33733 : dim, i#124392 : nat, i#124399 : nat, `half?#277` : half?, sx#30686 : sx} "f64x2.convert_low_i32x4_u" => `VCVTOP`_instr{shape_1#109, shape_2#109}(`%X%`_shape{lanetype#33721, dim#33721, i#124380}(`F64`_lanetype, `%`_dim{i#124387}(2)), `%X%`_shape{lanetype#33733, dim#33733, i#124392}(`I32`_lanetype, `%`_dim{i#124399}(4)), `CONVERT`_vcvtop__{`half?#277`, sx#30686}(?(`LOW`_half), `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extadd_pairwise_i8x16_s" => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTADD_PAIRWISE_vextunop__(S_sx)) + prod{ishape_1#79 : ishape, ishape_2#79 : ishape, shape#4954 : shape, Jnn#596 : Jnn, lanetype#33926 : lanetype, dim#33926 : dim, i#124765 : nat, i#124772 : nat, shape#4966 : shape, Jnn#600 : Jnn, lanetype#33938 : lanetype, dim#33938 : dim, i#124777 : nat, i#124784 : nat, sx#30720 : sx} "i16x8.extadd_pairwise_i8x16_s" => `VEXTUNOP`_instr{ishape_1#79, ishape_2#79}(`%`_ishape{shape#4954, Jnn#596}(`%X%`_shape{lanetype#33926, dim#33926, i#124765}(`I16`_lanetype, `%`_dim{i#124772}(8))), `%`_ishape{shape#4966, Jnn#600}(`%X%`_shape{lanetype#33938, dim#33938, i#124777}(`I8`_lanetype, `%`_dim{i#124784}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#30720}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extadd_pairwise_i8x16_u" => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTADD_PAIRWISE_vextunop__(U_sx)) + prod{ishape_1#81 : ishape, ishape_2#81 : ishape, shape#5069 : shape, Jnn#604 : Jnn, lanetype#34161 : lanetype, dim#34161 : dim, i#125120 : nat, i#125127 : nat, shape#5081 : shape, Jnn#608 : Jnn, lanetype#34173 : lanetype, dim#34173 : dim, i#125132 : nat, i#125139 : nat, sx#30754 : sx} "i16x8.extadd_pairwise_i8x16_u" => `VEXTUNOP`_instr{ishape_1#81, ishape_2#81}(`%`_ishape{shape#5069, Jnn#604}(`%X%`_shape{lanetype#34161, dim#34161, i#125120}(`I16`_lanetype, `%`_dim{i#125127}(8))), `%`_ishape{shape#5081, Jnn#608}(`%X%`_shape{lanetype#34173, dim#34173, i#125132}(`I8`_lanetype, `%`_dim{i#125139}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#30754}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extadd_pairwise_i16x8_s" => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTADD_PAIRWISE_vextunop__(S_sx)) + prod{ishape_1#83 : ishape, ishape_2#83 : ishape, shape#5184 : shape, Jnn#612 : Jnn, lanetype#34396 : lanetype, dim#34396 : dim, i#125475 : nat, i#125482 : nat, shape#5196 : shape, Jnn#616 : Jnn, lanetype#34408 : lanetype, dim#34408 : dim, i#125487 : nat, i#125494 : nat, sx#30788 : sx} "i32x4.extadd_pairwise_i16x8_s" => `VEXTUNOP`_instr{ishape_1#83, ishape_2#83}(`%`_ishape{shape#5184, Jnn#612}(`%X%`_shape{lanetype#34396, dim#34396, i#125475}(`I32`_lanetype, `%`_dim{i#125482}(4))), `%`_ishape{shape#5196, Jnn#616}(`%X%`_shape{lanetype#34408, dim#34408, i#125487}(`I16`_lanetype, `%`_dim{i#125494}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#30788}(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extadd_pairwise_i16x8_u" => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTADD_PAIRWISE_vextunop__(U_sx)) + prod{ishape_1#85 : ishape, ishape_2#85 : ishape, shape#5299 : shape, Jnn#620 : Jnn, lanetype#34631 : lanetype, dim#34631 : dim, i#125830 : nat, i#125837 : nat, shape#5311 : shape, Jnn#624 : Jnn, lanetype#34643 : lanetype, dim#34643 : dim, i#125842 : nat, i#125849 : nat, sx#30822 : sx} "i32x4.extadd_pairwise_i16x8_u" => `VEXTUNOP`_instr{ishape_1#85, ishape_2#85}(`%`_ishape{shape#5299, Jnn#620}(`%X%`_shape{lanetype#34631, dim#34631, i#125830}(`I32`_lanetype, `%`_dim{i#125837}(4))), `%`_ishape{shape#5311, Jnn#624}(`%X%`_shape{lanetype#34643, dim#34643, i#125842}(`I16`_lanetype, `%`_dim{i#125849}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#30822}(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extmul_low_i8x16_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(LOW_half, S_sx)) + prod{ishape_1#87 : ishape, ishape_2#87 : ishape, shape#5414 : shape, Jnn#628 : Jnn, lanetype#34866 : lanetype, dim#34866 : dim, i#126185 : nat, i#126192 : nat, shape#5426 : shape, Jnn#632 : Jnn, lanetype#34878 : lanetype, dim#34878 : dim, i#126197 : nat, i#126204 : nat, half#1820 : half, sx#30856 : sx} "i16x8.extmul_low_i8x16_s" => `VEXTBINOP`_instr{ishape_1#87, ishape_2#87}(`%`_ishape{shape#5414, Jnn#628}(`%X%`_shape{lanetype#34866, dim#34866, i#126185}(`I16`_lanetype, `%`_dim{i#126192}(8))), `%`_ishape{shape#5426, Jnn#632}(`%X%`_shape{lanetype#34878, dim#34878, i#126197}(`I8`_lanetype, `%`_dim{i#126204}(16))), `EXTMUL`_vextbinop__{half#1820, sx#30856}(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extmul_low_i8x16_u" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(LOW_half, U_sx)) + prod{ishape_1#89 : ishape, ishape_2#89 : ishape, shape#5529 : shape, Jnn#636 : Jnn, lanetype#35101 : lanetype, dim#35101 : dim, i#126540 : nat, i#126547 : nat, shape#5541 : shape, Jnn#640 : Jnn, lanetype#35113 : lanetype, dim#35113 : dim, i#126552 : nat, i#126559 : nat, half#1854 : half, sx#30890 : sx} "i16x8.extmul_low_i8x16_u" => `VEXTBINOP`_instr{ishape_1#89, ishape_2#89}(`%`_ishape{shape#5529, Jnn#636}(`%X%`_shape{lanetype#35101, dim#35101, i#126540}(`I16`_lanetype, `%`_dim{i#126547}(8))), `%`_ishape{shape#5541, Jnn#640}(`%X%`_shape{lanetype#35113, dim#35113, i#126552}(`I8`_lanetype, `%`_dim{i#126559}(16))), `EXTMUL`_vextbinop__{half#1854, sx#30890}(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extmul_high_i8x16_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(HIGH_half, S_sx)) + prod{ishape_1#91 : ishape, ishape_2#91 : ishape, shape#5644 : shape, Jnn#644 : Jnn, lanetype#35336 : lanetype, dim#35336 : dim, i#126895 : nat, i#126902 : nat, shape#5656 : shape, Jnn#648 : Jnn, lanetype#35348 : lanetype, dim#35348 : dim, i#126907 : nat, i#126914 : nat, half#1888 : half, sx#30924 : sx} "i16x8.extmul_high_i8x16_s" => `VEXTBINOP`_instr{ishape_1#91, ishape_2#91}(`%`_ishape{shape#5644, Jnn#644}(`%X%`_shape{lanetype#35336, dim#35336, i#126895}(`I16`_lanetype, `%`_dim{i#126902}(8))), `%`_ishape{shape#5656, Jnn#648}(`%X%`_shape{lanetype#35348, dim#35348, i#126907}(`I8`_lanetype, `%`_dim{i#126914}(16))), `EXTMUL`_vextbinop__{half#1888, sx#30924}(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extmul_high_i8x16_u" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(HIGH_half, U_sx)) + prod{ishape_1#93 : ishape, ishape_2#93 : ishape, shape#5759 : shape, Jnn#652 : Jnn, lanetype#35571 : lanetype, dim#35571 : dim, i#127250 : nat, i#127257 : nat, shape#5771 : shape, Jnn#656 : Jnn, lanetype#35583 : lanetype, dim#35583 : dim, i#127262 : nat, i#127269 : nat, half#1922 : half, sx#30958 : sx} "i16x8.extmul_high_i8x16_u" => `VEXTBINOP`_instr{ishape_1#93, ishape_2#93}(`%`_ishape{shape#5759, Jnn#652}(`%X%`_shape{lanetype#35571, dim#35571, i#127250}(`I16`_lanetype, `%`_dim{i#127257}(8))), `%`_ishape{shape#5771, Jnn#656}(`%X%`_shape{lanetype#35583, dim#35583, i#127262}(`I8`_lanetype, `%`_dim{i#127269}(16))), `EXTMUL`_vextbinop__{half#1922, sx#30958}(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extmul_low_i16x8_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(LOW_half, S_sx)) + prod{ishape_1#95 : ishape, ishape_2#95 : ishape, shape#5874 : shape, Jnn#660 : Jnn, lanetype#35806 : lanetype, dim#35806 : dim, i#127605 : nat, i#127612 : nat, shape#5886 : shape, Jnn#664 : Jnn, lanetype#35818 : lanetype, dim#35818 : dim, i#127617 : nat, i#127624 : nat, half#1956 : half, sx#30992 : sx} "i32x4.extmul_low_i16x8_s" => `VEXTBINOP`_instr{ishape_1#95, ishape_2#95}(`%`_ishape{shape#5874, Jnn#660}(`%X%`_shape{lanetype#35806, dim#35806, i#127605}(`I32`_lanetype, `%`_dim{i#127612}(4))), `%`_ishape{shape#5886, Jnn#664}(`%X%`_shape{lanetype#35818, dim#35818, i#127617}(`I16`_lanetype, `%`_dim{i#127624}(8))), `EXTMUL`_vextbinop__{half#1956, sx#30992}(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extmul_low_i16x8_u" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(LOW_half, U_sx)) + prod{ishape_1#97 : ishape, ishape_2#97 : ishape, shape#5989 : shape, Jnn#668 : Jnn, lanetype#36041 : lanetype, dim#36041 : dim, i#127960 : nat, i#127967 : nat, shape#6001 : shape, Jnn#672 : Jnn, lanetype#36053 : lanetype, dim#36053 : dim, i#127972 : nat, i#127979 : nat, half#1990 : half, sx#31026 : sx} "i32x4.extmul_low_i16x8_u" => `VEXTBINOP`_instr{ishape_1#97, ishape_2#97}(`%`_ishape{shape#5989, Jnn#668}(`%X%`_shape{lanetype#36041, dim#36041, i#127960}(`I32`_lanetype, `%`_dim{i#127967}(4))), `%`_ishape{shape#6001, Jnn#672}(`%X%`_shape{lanetype#36053, dim#36053, i#127972}(`I16`_lanetype, `%`_dim{i#127979}(8))), `EXTMUL`_vextbinop__{half#1990, sx#31026}(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extmul_high_i16x8_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(HIGH_half, S_sx)) + prod{ishape_1#99 : ishape, ishape_2#99 : ishape, shape#6104 : shape, Jnn#676 : Jnn, lanetype#36276 : lanetype, dim#36276 : dim, i#128315 : nat, i#128322 : nat, shape#6116 : shape, Jnn#680 : Jnn, lanetype#36288 : lanetype, dim#36288 : dim, i#128327 : nat, i#128334 : nat, half#2024 : half, sx#31060 : sx} "i32x4.extmul_high_i16x8_s" => `VEXTBINOP`_instr{ishape_1#99, ishape_2#99}(`%`_ishape{shape#6104, Jnn#676}(`%X%`_shape{lanetype#36276, dim#36276, i#128315}(`I32`_lanetype, `%`_dim{i#128322}(4))), `%`_ishape{shape#6116, Jnn#680}(`%X%`_shape{lanetype#36288, dim#36288, i#128327}(`I16`_lanetype, `%`_dim{i#128334}(8))), `EXTMUL`_vextbinop__{half#2024, sx#31060}(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extmul_high_i16x8_u" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(HIGH_half, U_sx)) + prod{ishape_1#101 : ishape, ishape_2#101 : ishape, shape#6219 : shape, Jnn#684 : Jnn, lanetype#36511 : lanetype, dim#36511 : dim, i#128670 : nat, i#128677 : nat, shape#6231 : shape, Jnn#688 : Jnn, lanetype#36523 : lanetype, dim#36523 : dim, i#128682 : nat, i#128689 : nat, half#2058 : half, sx#31094 : sx} "i32x4.extmul_high_i16x8_u" => `VEXTBINOP`_instr{ishape_1#101, ishape_2#101}(`%`_ishape{shape#6219, Jnn#684}(`%X%`_shape{lanetype#36511, dim#36511, i#128670}(`I32`_lanetype, `%`_dim{i#128677}(4))), `%`_ishape{shape#6231, Jnn#688}(`%X%`_shape{lanetype#36523, dim#36523, i#128682}(`I16`_lanetype, `%`_dim{i#128689}(8))), `EXTMUL`_vextbinop__{half#2058, sx#31094}(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.dot_i16x8_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `DOTS`_vextbinop__) + prod{ishape_1#103 : ishape, ishape_2#103 : ishape, shape#6334 : shape, Jnn#692 : Jnn, lanetype#36746 : lanetype, dim#36746 : dim, i#129025 : nat, i#129032 : nat, shape#6346 : shape, Jnn#696 : Jnn, lanetype#36758 : lanetype, dim#36758 : dim, i#129037 : nat, i#129044 : nat} "i32x4.dot_i16x8_s" => `VEXTBINOP`_instr{ishape_1#103, ishape_2#103}(`%`_ishape{shape#6334, Jnn#692}(`%X%`_shape{lanetype#36746, dim#36746, i#129025}(`I32`_lanetype, `%`_dim{i#129032}(4))), `%`_ishape{shape#6346, Jnn#696}(`%X%`_shape{lanetype#36758, dim#36758, i#129037}(`I16`_lanetype, `%`_dim{i#129044}(8))), `DOTS`_vextbinop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extmul_low_i32x4_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(LOW_half, S_sx)) + prod{ishape_1#105 : ishape, ishape_2#105 : ishape, shape#6449 : shape, Jnn#700 : Jnn, lanetype#36981 : lanetype, dim#36981 : dim, i#129380 : nat, i#129387 : nat, shape#6461 : shape, Jnn#704 : Jnn, lanetype#36993 : lanetype, dim#36993 : dim, i#129392 : nat, i#129399 : nat, half#2122 : half, sx#31158 : sx} "i64x2.extmul_low_i32x4_s" => `VEXTBINOP`_instr{ishape_1#105, ishape_2#105}(`%`_ishape{shape#6449, Jnn#700}(`%X%`_shape{lanetype#36981, dim#36981, i#129380}(`I64`_lanetype, `%`_dim{i#129387}(2))), `%`_ishape{shape#6461, Jnn#704}(`%X%`_shape{lanetype#36993, dim#36993, i#129392}(`I32`_lanetype, `%`_dim{i#129399}(4))), `EXTMUL`_vextbinop__{half#2122, sx#31158}(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extmul_low_i32x4_u" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(LOW_half, U_sx)) + prod{ishape_1#107 : ishape, ishape_2#107 : ishape, shape#6564 : shape, Jnn#708 : Jnn, lanetype#37216 : lanetype, dim#37216 : dim, i#129735 : nat, i#129742 : nat, shape#6576 : shape, Jnn#712 : Jnn, lanetype#37228 : lanetype, dim#37228 : dim, i#129747 : nat, i#129754 : nat, half#2156 : half, sx#31192 : sx} "i64x2.extmul_low_i32x4_u" => `VEXTBINOP`_instr{ishape_1#107, ishape_2#107}(`%`_ishape{shape#6564, Jnn#708}(`%X%`_shape{lanetype#37216, dim#37216, i#129735}(`I64`_lanetype, `%`_dim{i#129742}(2))), `%`_ishape{shape#6576, Jnn#712}(`%X%`_shape{lanetype#37228, dim#37228, i#129747}(`I32`_lanetype, `%`_dim{i#129754}(4))), `EXTMUL`_vextbinop__{half#2156, sx#31192}(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extmul_high_i32x4_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(HIGH_half, S_sx)) + prod{ishape_1#109 : ishape, ishape_2#109 : ishape, shape#6679 : shape, Jnn#716 : Jnn, lanetype#37451 : lanetype, dim#37451 : dim, i#130090 : nat, i#130097 : nat, shape#6691 : shape, Jnn#720 : Jnn, lanetype#37463 : lanetype, dim#37463 : dim, i#130102 : nat, i#130109 : nat, half#2190 : half, sx#31226 : sx} "i64x2.extmul_high_i32x4_s" => `VEXTBINOP`_instr{ishape_1#109, ishape_2#109}(`%`_ishape{shape#6679, Jnn#716}(`%X%`_shape{lanetype#37451, dim#37451, i#130090}(`I64`_lanetype, `%`_dim{i#130097}(2))), `%`_ishape{shape#6691, Jnn#720}(`%X%`_shape{lanetype#37463, dim#37463, i#130102}(`I32`_lanetype, `%`_dim{i#130109}(4))), `EXTMUL`_vextbinop__{half#2190, sx#31226}(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extmul_high_i32x4_u" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(HIGH_half, U_sx)) + prod{ishape_1#111 : ishape, ishape_2#111 : ishape, shape#6794 : shape, Jnn#724 : Jnn, lanetype#37686 : lanetype, dim#37686 : dim, i#130445 : nat, i#130452 : nat, shape#6806 : shape, Jnn#728 : Jnn, lanetype#37698 : lanetype, dim#37698 : dim, i#130457 : nat, i#130464 : nat, half#2224 : half, sx#31260 : sx} "i64x2.extmul_high_i32x4_u" => `VEXTBINOP`_instr{ishape_1#111, ishape_2#111}(`%`_ishape{shape#6794, Jnn#724}(`%X%`_shape{lanetype#37686, dim#37686, i#130445}(`I64`_lanetype, `%`_dim{i#130452}(2))), `%`_ishape{shape#6806, Jnn#728}(`%X%`_shape{lanetype#37698, dim#37698, i#130457}(`I32`_lanetype, `%`_dim{i#130464}(4))), `EXTMUL`_vextbinop__{half#2224, sx#31260}(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec rec { @@ -10755,16 +122314,16 @@ grammar Tinstrs_(I : I) : instr* ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:88.1-90.65 grammar Tblockinstr_(I : I) : instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:63.5-67.35 - prod{`id?` : char?, I' : I, bt : blocktype, `in*` : instr*, `id'?` : char?} {{"block"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id'?{id' <- `id'?`}))):Tid?{}}} => BLOCK_instr(bt, in*{in <- `in*`}) + prod{blocktype#41 : blocktype, `instr*#2360` : instr*, bt : blocktype, `in*` : instr*, `char*#1237` : char*, `id?` : char?, I' : I, `char*#1243` : char*, `id'?` : char?} {{"block"} {(?(`%`_name{`char*#1237`}(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name{`char*#1243`}(lift(id'?{id' <- `id'?`}))):Tid?{}}} => `BLOCK`_instr{blocktype#41, `instr*#2360`}(bt, in*{in <- `in*`}) -- if ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`})) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:68.5-72.35 - prod{`id?` : char?, I' : I, bt : blocktype, `in*` : instr*, `id'?` : char?} {{"loop"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id'?{id' <- `id'?`}))):Tid?{}}} => LOOP_instr(bt, in*{in <- `in*`}) + prod{blocktype#43 : blocktype, `instr*#2362` : instr*, bt : blocktype, `in*` : instr*, `char*#1249` : char*, `id?` : char?, I' : I, `char*#1255` : char*, `id'?` : char?} {{"loop"} {(?(`%`_name{`char*#1249`}(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name{`char*#1255`}(lift(id'?{id' <- `id'?`}))):Tid?{}}} => `LOOP`_instr{blocktype#43, `instr*#2362`}(bt, in*{in <- `in*`}) -- if ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`})) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:73.5-79.71 - prod{`id?` : char?, I' : I, bt : blocktype, `in_1*` : instr*, `id_1?` : char?, `in_2*` : instr*, `id_2?` : char?} {{"if"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in_1*{in_1 <- `in_1*`}:Tinstrs_(I')} {"else"} {?(`%`_name(lift(id_1?{id_1 <- `id_1?`}))):Tid?{}} {in_2*{in_2 <- `in_2*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id_2?{id_2 <- `id_2?`}))):Tid?{}}} => `IF%%ELSE%`_instr(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`}) + prod{blocktype#45 : blocktype, `instr*#2364` : instr*, bt : blocktype, `in_1*` : instr*, `in_2*` : instr*, `char*#1261` : char*, `id?` : char?, I' : I, `char*#1267` : char*, `id_1?` : char?, `char*#1273` : char*, `id_2?` : char?} {{"if"} {(?(`%`_name{`char*#1261`}(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in_1*{in_1 <- `in_1*`}:Tinstrs_(I')} {"else"} {?(`%`_name{`char*#1267`}(lift(id_1?{id_1 <- `id_1?`}))):Tid?{}} {in_2*{in_2 <- `in_2*`}:Tinstrs_(I')} {"end"} {?(`%`_name{`char*#1273`}(lift(id_2?{id_2 <- `id_2?`}))):Tid?{}}} => `IF%%ELSE%`_instr{blocktype#45, `instr*#2364`}(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`}) -- if (((id_1?{id_1 <- `id_1?`} = ?()) \/ (id_1?{id_1 <- `id_1?`} = id?{id <- `id?`})) /\ ((id_2?{id_2 <- `id_2?`} = ?()) \/ (id_2?{id_2 <- `id_2?`} = id?{id <- `id?`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:80.5-85.35 - prod{`id?` : char?, I' : I, bt : blocktype, `c*` : catch*, `in*` : instr*, `id'?` : char?} {{"try_table"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {c*{c <- `c*`}:Tcatch_(I)*{}} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id'?{id' <- `id'?`}))):Tid?{}}} => TRY_TABLE_instr(bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`}) + prod{blocktype#47 : blocktype, `instr*#2367` : instr*, bt : blocktype, `X*#13607` : catch*, `c*` : catch*, `in*` : instr*, `char*#1279` : char*, `id?` : char?, I' : I, `char*#1285` : char*, `id'?` : char?} {{"try_table"} {(?(`%`_name{`char*#1279`}(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {c*{c <- `c*`}:Tcatch_(I)*{}} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name{`char*#1285`}(lift(id'?{id' <- `id'?`}))):Tid?{}}} => `TRY_TABLE`_instr{blocktype#47, `instr*#2367`}(bt, `%`_list{`X*#13607`}(c*{c <- `c*`}), in*{in <- `in*`}) -- if ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`})) } @@ -10776,39 +122335,39 @@ grammar Texpr_(I : I) : expr ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Ttype_(I : I) : (type, idctxt) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{qt : rectype, I' : I, I'' : I, `st*` : subtype*, n : n, `i*` : nat*} (qt, I'):Trectype_(I) => (TYPE_type(qt), I' +++ I'') - -- if (qt = REC_rectype(`%`_list(st^n{st <- `st*`}))) - -- if (I'' = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS ?(_DEF_deftype(qt, i))^(i (`TYPE`_type{rectype#1855}(qt), I' +++ I'') + -- if (qt = `REC`_rectype(`%`_list{`X*#13622`}(st^n{st <- `st*`}))) + -- if (I'' = {`TYPES`{`name?*#609`} [], `TAGS`{`name?*#610`} [], `GLOBALS`{`name?*#611`} [], `MEMS`{`name?*#612`} [], `TABLES`{`name?*#613`} [], `FUNCS`{`name?*#614`} [], `DATAS`{`name?*#615`} [], `ELEMS`{`name?*#616`} [], `LOCALS`{`name?*#617`} [], `LABELS`{`name?*#618`} [], `FIELDS`{`name?**#32`} [], `TYPEDEFS`{`deftype?*#23`} ?(`_DEF`_deftype{rectype#1885, n#1569}(qt, i))^(i (TAG_tag(jt), {TYPES [], TAGS [?(`%`_name(lift(id?{id <- `id?`})))], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{tagtype#448 : tagtype, jt : tagtype, `name?*#619` : name?*, `name?*#620` : name?*, `char*#1357` : char*, `id?` : char?, `name?*#621` : name?*, `name?*#622` : name?*, `name?*#623` : name?*, `name?*#624` : name?*, `name?*#625` : name?*, `name?*#626` : name?*, `name?*#627` : name?*, `name?*#628` : name?*, `name?**#33` : name?**, `deftype?*#24` : deftype?*, `char*#1351` : char*} {{"("} {"tag"} {?(`%`_name{`char*#1351`}(lift(id?{id <- `id?`}))):Tid?{}} {jt:Ttagtype_(I)} {")"}} => (`TAG`_tag{tagtype#448}(jt), {`TYPES`{`name?*#619`} [], `TAGS`{`name?*#620`} [?(`%`_name{`char*#1357`}(lift(id?{id <- `id?`})))], `GLOBALS`{`name?*#621`} [], `MEMS`{`name?*#622`} [], `TABLES`{`name?*#623`} [], `FUNCS`{`name?*#624`} [], `DATAS`{`name?*#625`} [], `ELEMS`{`name?*#626`} [], `LOCALS`{`name?*#627`} [], `LABELS`{`name?*#628`} [], `FIELDS`{`name?**#33`} [], `TYPEDEFS`{`deftype?*#24`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Tglobal_(I : I) : (global, idctxt) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`id?` : char?, gt : globaltype, e : expr} {{"("} {"global"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {gt:Tglobaltype_(I)} {e:Texpr_(I)} {")"}} => (GLOBAL_global(gt, e), {TYPES [], TAGS [], GLOBALS [?(`%`_name(lift(id?{id <- `id?`})))], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{globaltype#2409 : globaltype, expr#5265 : expr, gt : globaltype, e : expr, `name?*#629` : name?*, `name?*#630` : name?*, `name?*#631` : name?*, `char*#1369` : char*, `id?` : char?, `name?*#632` : name?*, `name?*#633` : name?*, `name?*#634` : name?*, `name?*#635` : name?*, `name?*#636` : name?*, `name?*#637` : name?*, `name?*#638` : name?*, `name?**#34` : name?**, `deftype?*#25` : deftype?*, `char*#1363` : char*} {{"("} {"global"} {?(`%`_name{`char*#1363`}(lift(id?{id <- `id?`}))):Tid?{}} {gt:Tglobaltype_(I)} {e:Texpr_(I)} {")"}} => (`GLOBAL`_global{globaltype#2409, expr#5265}(gt, e), {`TYPES`{`name?*#629`} [], `TAGS`{`name?*#630`} [], `GLOBALS`{`name?*#631`} [?(`%`_name{`char*#1369`}(lift(id?{id <- `id?`})))], `MEMS`{`name?*#632`} [], `TABLES`{`name?*#633`} [], `FUNCS`{`name?*#634`} [], `DATAS`{`name?*#635`} [], `ELEMS`{`name?*#636`} [], `LOCALS`{`name?*#637`} [], `LABELS`{`name?*#638`} [], `FIELDS`{`name?**#34`} [], `TYPEDEFS`{`deftype?*#25`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Tmem_(I : I) : (mem, idctxt) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`id?` : char?, mt : memtype} {{"("} {"memory"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {mt:Tmemtype_(I)} {")"}} => (MEMORY_mem(mt), {TYPES [], TAGS [], GLOBALS [], MEMS [?(`%`_name(lift(id?{id <- `id?`})))], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{memtype#870 : memtype, mt : memtype, `name?*#639` : name?*, `name?*#640` : name?*, `name?*#641` : name?*, `name?*#642` : name?*, `char*#1381` : char*, `id?` : char?, `name?*#643` : name?*, `name?*#644` : name?*, `name?*#645` : name?*, `name?*#646` : name?*, `name?*#647` : name?*, `name?*#648` : name?*, `name?**#35` : name?**, `deftype?*#26` : deftype?*, `char*#1375` : char*} {{"("} {"memory"} {?(`%`_name{`char*#1375`}(lift(id?{id <- `id?`}))):Tid?{}} {mt:Tmemtype_(I)} {")"}} => (`MEMORY`_mem{memtype#870}(mt), {`TYPES`{`name?*#639`} [], `TAGS`{`name?*#640`} [], `GLOBALS`{`name?*#641`} [], `MEMS`{`name?*#642`} [?(`%`_name{`char*#1381`}(lift(id?{id <- `id?`})))], `TABLES`{`name?*#643`} [], `FUNCS`{`name?*#644`} [], `DATAS`{`name?*#645`} [], `ELEMS`{`name?*#646`} [], `LOCALS`{`name?*#647`} [], `LABELS`{`name?*#648`} [], `FIELDS`{`name?**#35`} [], `TYPEDEFS`{`deftype?*#26`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Ttable_(I : I) : (table, idctxt) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`id?` : char?, tt : tabletype, e : expr} {{"("} {"table"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {tt:Ttabletype_(I)} {e:Texpr_(I)} {")"}} => (TABLE_table(tt, e), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [?(`%`_name(lift(id?{id <- `id?`})))], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{tabletype#1292 : tabletype, expr#5277 : expr, tt : tabletype, e : expr, `name?*#649` : name?*, `name?*#650` : name?*, `name?*#651` : name?*, `name?*#652` : name?*, `name?*#653` : name?*, `char*#1393` : char*, `id?` : char?, `name?*#654` : name?*, `name?*#655` : name?*, `name?*#656` : name?*, `name?*#657` : name?*, `name?*#658` : name?*, `name?**#36` : name?**, `deftype?*#27` : deftype?*, `char*#1387` : char*} {{"("} {"table"} {?(`%`_name{`char*#1387`}(lift(id?{id <- `id?`}))):Tid?{}} {tt:Ttabletype_(I)} {e:Texpr_(I)} {")"}} => (`TABLE`_table{tabletype#1292, expr#5277}(tt, e), {`TYPES`{`name?*#649`} [], `TAGS`{`name?*#650`} [], `GLOBALS`{`name?*#651`} [], `MEMS`{`name?*#652`} [], `TABLES`{`name?*#653`} [?(`%`_name{`char*#1393`}(lift(id?{id <- `id?`})))], `FUNCS`{`name?*#654`} [], `DATAS`{`name?*#655`} [], `ELEMS`{`name?*#656`} [], `LOCALS`{`name?*#657`} [], `LABELS`{`name?*#658`} [], `FIELDS`{`name?**#36`} [], `TYPEDEFS`{`deftype?*#27`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Tlocal_(I : I) : (local*, idctxt) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`id?` : char?, t : valtype} {{"("} {"local"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {t:Tvaltype_(I)} {")"}} => ([LOCAL_local(t)], {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [?(`%`_name(lift(id?{id <- `id?`})))], LABELS [], FIELDS [], TYPEDEFS []}) + prod{valtype#1331 : valtype, t : valtype, `name?*#669` : name?*, `name?*#670` : name?*, `name?*#671` : name?*, `name?*#672` : name?*, `name?*#673` : name?*, `name?*#674` : name?*, `name?*#675` : name?*, `name?*#676` : name?*, `name?*#677` : name?*, `char*#1417` : char*, `id?` : char?, `name?*#678` : name?*, `name?**#38` : name?**, `deftype?*#29` : deftype?*, `char*#1411` : char*} {{"("} {"local"} {?(`%`_name{`char*#1411`}(lift(id?{id <- `id?`}))):Tid?{}} {t:Tvaltype_(I)} {")"}} => ([`LOCAL`_local{valtype#1331}(t)], {`TYPES`{`name?*#669`} [], `TAGS`{`name?*#670`} [], `GLOBALS`{`name?*#671`} [], `MEMS`{`name?*#672`} [], `TABLES`{`name?*#673`} [], `FUNCS`{`name?*#674`} [], `DATAS`{`name?*#675`} [], `ELEMS`{`name?*#676`} [], `LOCALS`{`name?*#677`} [?(`%`_name{`char*#1417`}(lift(id?{id <- `id?`})))], `LABELS`{`name?*#678`} [], `FIELDS`{`name?**#38`} [], `TYPEDEFS`{`deftype?*#29`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Tfunc_(I : I) : (func, idctxt) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`id?` : char?, x : idx, I_1 : I, `loc**` : local**, `I_2*` : I*, e : expr, I' : I} {{"("} {"func"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(x, I_1):Ttypeuse_(I)} {(loc*{loc <- `loc*`}, I_2):Tlocal_(I)*{I_2 <- `I_2*`, `loc*` <- `loc**`}} {e:Texpr_(I')} {")"}} => (FUNC_func(x, $concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`}), e), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [?(`%`_name(lift(id?{id <- `id?`})))], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{typeidx#2186 : typeidx, `local*#1613` : local*, expr#5289 : expr, x : idx, `loc**` : local**, e : expr, `name?*#659` : name?*, `name?*#660` : name?*, `name?*#661` : name?*, `name?*#662` : name?*, `name?*#663` : name?*, `name?*#664` : name?*, `char*#1405` : char*, `id?` : char?, `name?*#665` : name?*, `name?*#666` : name?*, `name?*#667` : name?*, `name?*#668` : name?*, `name?**#37` : name?**, `deftype?*#28` : deftype?*, `char*#1399` : char*, I_1 : I, `I_2*` : I*, I' : I} {{"("} {"func"} {?(`%`_name{`char*#1399`}(lift(id?{id <- `id?`}))):Tid?{}} {(x, I_1):Ttypeuse_(I)} {(loc*{loc <- `loc*`}, I_2):Tlocal_(I)*{I_2 <- `I_2*`, `loc*` <- `loc**`}} {e:Texpr_(I')} {")"}} => (`FUNC`_func{typeidx#2186, `local*#1613`, expr#5289}(x, $concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`}), e), {`TYPES`{`name?*#659`} [], `TAGS`{`name?*#660`} [], `GLOBALS`{`name?*#661`} [], `MEMS`{`name?*#662`} [], `TABLES`{`name?*#663`} [], `FUNCS`{`name?*#664`} [?(`%`_name{`char*#1405`}(lift(id?{id <- `id?`})))], `DATAS`{`name?*#665`} [], `ELEMS`{`name?*#666`} [], `LOCALS`{`name?*#667`} [], `LABELS`{`name?*#668`} [], `FIELDS`{`name?**#37`} [], `TYPEDEFS`{`deftype?*#28`} []}) -- if (I' = I +++ I_1 +++ $concat_idctxt(I_2*{I_2 <- `I_2*`})) -- Idctxt_ok: `|-%:OK`(I') @@ -10830,9 +122389,9 @@ grammar Toffset_(I : I) : expr ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Tdata_(I : I) : (data, idctxt) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`id?` : char?, `b*` : byte*} {{"("} {"data"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {b*{b <- `b*`}:Tdatastring} {")"}} => (DATA_data(b*{b <- `b*`}, PASSIVE_datamode), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [?(`%`_name(lift(id?{id <- `id?`})))], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{`byte*#2413` : byte*, datamode#2377 : datamode, `b*` : byte*, `name?*#679` : name?*, `name?*#680` : name?*, `name?*#681` : name?*, `name?*#682` : name?*, `name?*#683` : name?*, `name?*#684` : name?*, `name?*#685` : name?*, `char*#1429` : char*, `id?` : char?, `name?*#686` : name?*, `name?*#687` : name?*, `name?*#688` : name?*, `name?**#39` : name?**, `deftype?*#30` : deftype?*, `char*#1423` : char*} {{"("} {"data"} {?(`%`_name{`char*#1423`}(lift(id?{id <- `id?`}))):Tid?{}} {b*{b <- `b*`}:Tdatastring} {")"}} => (`DATA`_data{`byte*#2413`, datamode#2377}(b*{b <- `b*`}, `PASSIVE`_datamode), {`TYPES`{`name?*#679`} [], `TAGS`{`name?*#680`} [], `GLOBALS`{`name?*#681`} [], `MEMS`{`name?*#682`} [], `TABLES`{`name?*#683`} [], `FUNCS`{`name?*#684`} [], `DATAS`{`name?*#685`} [?(`%`_name{`char*#1429`}(lift(id?{id <- `id?`})))], `ELEMS`{`name?*#686`} [], `LOCALS`{`name?*#687`} [], `LABELS`{`name?*#688`} [], `FIELDS`{`name?**#39`} [], `TYPEDEFS`{`deftype?*#30`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`id?` : char?, x : idx, e : expr, `b*` : byte*} {{"("} {"data"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {x:Tmemuse_(I)} {e:Toffset_(I)} {b*{b <- `b*`}:Tdatastring} {")"}} => (DATA_data(b*{b <- `b*`}, ACTIVE_datamode(x, e)), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [?(`%`_name(lift(id?{id <- `id?`})))], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{`byte*#2425` : byte*, datamode#2389 : datamode, `b*` : byte*, memidx#379 : memidx, expr#5291 : expr, x : idx, e : expr, `name?*#689` : name?*, `name?*#690` : name?*, `name?*#691` : name?*, `name?*#692` : name?*, `name?*#693` : name?*, `name?*#694` : name?*, `name?*#695` : name?*, `char*#1441` : char*, `id?` : char?, `name?*#696` : name?*, `name?*#697` : name?*, `name?*#698` : name?*, `name?**#40` : name?**, `deftype?*#31` : deftype?*, `char*#1435` : char*} {{"("} {"data"} {?(`%`_name{`char*#1435`}(lift(id?{id <- `id?`}))):Tid?{}} {x:Tmemuse_(I)} {e:Toffset_(I)} {b*{b <- `b*`}:Tdatastring} {")"}} => (`DATA`_data{`byte*#2425`, datamode#2389}(b*{b <- `b*`}, `ACTIVE`_datamode{memidx#379, expr#5291}(x, e)), {`TYPES`{`name?*#689`} [], `TAGS`{`name?*#690`} [], `GLOBALS`{`name?*#691`} [], `MEMS`{`name?*#692`} [], `TABLES`{`name?*#693`} [], `FUNCS`{`name?*#694`} [], `DATAS`{`name?*#695`} [?(`%`_name{`char*#1441`}(lift(id?{id <- `id?`})))], `ELEMS`{`name?*#696`} [], `LOCALS`{`name?*#697`} [], `LABELS`{`name?*#698`} [], `FIELDS`{`name?**#40`} [], `TYPEDEFS`{`deftype?*#31`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Telemlist_(I : I) : (reftype, expr*) @@ -10847,11 +122406,11 @@ grammar Ttableuse_(I : I) : tableidx ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Telem_(I : I) : (elem, idctxt) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`id?` : char?, rt : reftype, `e*` : expr*} {{"("} {"elem"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (ELEM_elem(rt, e*{e <- `e*`}, PASSIVE_elemmode), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [?(`%`_name(lift(id?{id <- `id?`})))], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{reftype#4361 : reftype, `expr*#3575` : expr*, elemmode#3575 : elemmode, rt : reftype, `e*` : expr*, `name?*#699` : name?*, `name?*#700` : name?*, `name?*#701` : name?*, `name?*#702` : name?*, `name?*#703` : name?*, `name?*#704` : name?*, `name?*#705` : name?*, `name?*#706` : name?*, `char*#1453` : char*, `id?` : char?, `name?*#707` : name?*, `name?*#708` : name?*, `name?**#41` : name?**, `deftype?*#32` : deftype?*, `char*#1447` : char*} {{"("} {"elem"} {?(`%`_name{`char*#1447`}(lift(id?{id <- `id?`}))):Tid?{}} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (`ELEM`_elem{reftype#4361, `expr*#3575`, elemmode#3575}(rt, e*{e <- `e*`}, `PASSIVE`_elemmode), {`TYPES`{`name?*#699`} [], `TAGS`{`name?*#700`} [], `GLOBALS`{`name?*#701`} [], `MEMS`{`name?*#702`} [], `TABLES`{`name?*#703`} [], `FUNCS`{`name?*#704`} [], `DATAS`{`name?*#705`} [], `ELEMS`{`name?*#706`} [?(`%`_name{`char*#1453`}(lift(id?{id <- `id?`})))], `LOCALS`{`name?*#707`} [], `LABELS`{`name?*#708`} [], `FIELDS`{`name?**#41`} [], `TYPEDEFS`{`deftype?*#32`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`id?` : char?, x : idx, e' : expr, rt : reftype, `e*` : expr*} {{"("} {"elem"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {x:Ttableuse_(I)} {e':Toffset_(I)} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (ELEM_elem(rt, e*{e <- `e*`}, ACTIVE_elemmode(x, e')), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [?(`%`_name(lift(id?{id <- `id?`})))], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{reftype#4373 : reftype, `expr*#3587` : expr*, elemmode#3587 : elemmode, rt : reftype, `e*` : expr*, tableidx#173 : tableidx, expr#5293 : expr, x : idx, e' : expr, `name?*#709` : name?*, `name?*#710` : name?*, `name?*#711` : name?*, `name?*#712` : name?*, `name?*#713` : name?*, `name?*#714` : name?*, `name?*#715` : name?*, `name?*#716` : name?*, `char*#1465` : char*, `id?` : char?, `name?*#717` : name?*, `name?*#718` : name?*, `name?**#42` : name?**, `deftype?*#33` : deftype?*, `char*#1459` : char*} {{"("} {"elem"} {?(`%`_name{`char*#1459`}(lift(id?{id <- `id?`}))):Tid?{}} {x:Ttableuse_(I)} {e':Toffset_(I)} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (`ELEM`_elem{reftype#4373, `expr*#3587`, elemmode#3587}(rt, e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#173, expr#5293}(x, e')), {`TYPES`{`name?*#709`} [], `TAGS`{`name?*#710`} [], `GLOBALS`{`name?*#711`} [], `MEMS`{`name?*#712`} [], `TABLES`{`name?*#713`} [], `FUNCS`{`name?*#714`} [], `DATAS`{`name?*#715`} [], `ELEMS`{`name?*#716`} [?(`%`_name{`char*#1465`}(lift(id?{id <- `id?`})))], `LOCALS`{`name?*#717`} [], `LABELS`{`name?*#718`} [], `FIELDS`{`name?**#42`} [], `TYPEDEFS`{`deftype?*#33`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`id?` : char?, rt : reftype, `e*` : expr*} {{"("} {"elem"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {"declare"} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (ELEM_elem(rt, e*{e <- `e*`}, DECLARE_elemmode), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [?(`%`_name(lift(id?{id <- `id?`})))], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{reftype#4385 : reftype, `expr*#3599` : expr*, elemmode#3599 : elemmode, rt : reftype, `e*` : expr*, `name?*#719` : name?*, `name?*#720` : name?*, `name?*#721` : name?*, `name?*#722` : name?*, `name?*#723` : name?*, `name?*#724` : name?*, `name?*#725` : name?*, `name?*#726` : name?*, `char*#1477` : char*, `id?` : char?, `name?*#727` : name?*, `name?*#728` : name?*, `name?**#43` : name?**, `deftype?*#34` : deftype?*, `char*#1471` : char*} {{"("} {"elem"} {?(`%`_name{`char*#1471`}(lift(id?{id <- `id?`}))):Tid?{}} {"declare"} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (`ELEM`_elem{reftype#4385, `expr*#3599`, elemmode#3599}(rt, e*{e <- `e*`}, `DECLARE`_elemmode), {`TYPES`{`name?*#719`} [], `TAGS`{`name?*#720`} [], `GLOBALS`{`name?*#721`} [], `MEMS`{`name?*#722`} [], `TABLES`{`name?*#723`} [], `FUNCS`{`name?*#724`} [], `DATAS`{`name?*#725`} [], `ELEMS`{`name?*#726`} [?(`%`_name{`char*#1477`}(lift(id?{id <- `id?`})))], `LOCALS`{`name?*#727`} [], `LABELS`{`name?*#728`} [], `FIELDS`{`name?**#43`} [], `TYPEDEFS`{`deftype?*#34`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Telemexpr_(I : I) : expr @@ -10861,17 +122420,17 @@ grammar Telemexpr_(I : I) : expr ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Tstart_(I : I) : (start, idctxt) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{x : idx} {{"("} {"start"} {x:Tfuncidx_(I)} {")"}} => (START_start(x), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{funcidx#3399 : funcidx, x : idx, `name?*#729` : name?*, `name?*#730` : name?*, `name?*#731` : name?*, `name?*#732` : name?*, `name?*#733` : name?*, `name?*#734` : name?*, `name?*#735` : name?*, `name?*#736` : name?*, `name?*#737` : name?*, `name?*#738` : name?*, `name?**#44` : name?**, `deftype?*#35` : deftype?*} {{"("} {"start"} {x:Tfuncidx_(I)} {")"}} => (`START`_start{funcidx#3399}(x), {`TYPES`{`name?*#729`} [], `TAGS`{`name?*#730`} [], `GLOBALS`{`name?*#731`} [], `MEMS`{`name?*#732`} [], `TABLES`{`name?*#733`} [], `FUNCS`{`name?*#734`} [], `DATAS`{`name?*#735`} [], `ELEMS`{`name?*#736`} [], `LOCALS`{`name?*#737`} [], `LABELS`{`name?*#738`} [], `FIELDS`{`name?**#44`} [], `TYPEDEFS`{`deftype?*#35`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Timport_(I : I) : (import, idctxt) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{nm_1 : name, nm_2 : name, xt : externtype, I' : I} {{"("} {"import"} {nm_1:Tname} {nm_2:Tname} {(xt, I'):Texterntype_(I)} {")"}} => (IMPORT_import(nm_1, nm_2, xt), I') + prod{name#6556 : name, externtype#345 : externtype, nm_1 : name, nm_2 : name, xt : externtype, I' : I} {{"("} {"import"} {nm_1:Tname} {nm_2:Tname} {(xt, I'):Texterntype_(I)} {")"}} => (`IMPORT`_import{name#6556, externtype#345}(nm_1, nm_2, xt), I') ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Texport_(I : I) : (export, idctxt) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{nm : name, xx : externidx} {{"("} {"export"} {nm:Tname} {xx:Texternidx_(I)} {")"}} => (EXPORT_export(nm, xx), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) + prod{name#6569 : name, externidx#6009 : externidx, nm : name, xx : externidx, `name?*#739` : name?*, `name?*#740` : name?*, `name?*#741` : name?*, `name?*#742` : name?*, `name?*#743` : name?*, `name?*#744` : name?*, `name?*#745` : name?*, `name?*#746` : name?*, `name?*#747` : name?*, `name?*#748` : name?*, `name?**#45` : name?**, `deftype?*#36` : deftype?*} {{"("} {"export"} {nm:Tname} {xx:Texternidx_(I)} {")"}} => (`EXPORT`_export{name#6569, externidx#6009}(nm, xx), {`TYPES`{`name?*#739`} [], `TAGS`{`name?*#740`} [], `GLOBALS`{`name?*#741`} [], `MEMS`{`name?*#742`} [], `TABLES`{`name?*#743`} [], `FUNCS`{`name?*#744`} [], `DATAS`{`name?*#745`} [], `ELEMS`{`name?*#746`} [], `LOCALS`{`name?*#747`} [], `LABELS`{`name?*#748`} [], `FIELDS`{`name?**#45`} [], `TYPEDEFS`{`deftype?*#36`} []}) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Texportdots : () @@ -10948,17 +122507,17 @@ grammar Telemtable_(I : I) : () ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec syntax decl = - | TYPE{rectype : rectype}(rectype : rectype) - | IMPORT{name : name, externtype : externtype}(name : name, name, externtype : externtype) - | TAG{tagtype : tagtype}(tagtype : tagtype) - | GLOBAL{globaltype : globaltype, expr : expr}(globaltype : globaltype, expr : expr) - | MEMORY{memtype : memtype}(memtype : memtype) - | TABLE{tabletype : tabletype, expr : expr}(tabletype : tabletype, expr : expr) - | FUNC{typeidx : typeidx, `local*` : local*, expr : expr}(typeidx : typeidx, local*{local <- `local*`} : local*, expr : expr) - | DATA{`byte*` : byte*, datamode : datamode}(byte*{byte <- `byte*`} : byte*, datamode : datamode) - | ELEM{reftype : reftype, `expr*` : expr*, elemmode : elemmode}(reftype : reftype, expr*{expr <- `expr*`} : expr*, elemmode : elemmode) - | START{funcidx : funcidx}(funcidx : funcidx) - | EXPORT{name : name, externidx : externidx}(name : name, externidx : externidx) + | `TYPE`{rectype : rectype}(rectype : rectype) + | `IMPORT`{name : name, externtype : externtype}(name : name, name : name, externtype : externtype) + | `TAG`{tagtype : tagtype}(tagtype : tagtype) + | `GLOBAL`{globaltype : globaltype, expr : expr}(globaltype : globaltype, expr : expr) + | `MEMORY`{memtype : memtype}(memtype : memtype) + | `TABLE`{tabletype : tabletype, expr : expr}(tabletype : tabletype, expr : expr) + | `FUNC`{typeidx : typeidx, `local*` : local*, expr : expr}(typeidx : typeidx, `local*` : local*, expr : expr) + | `DATA`{`byte*` : byte*, datamode : datamode}(`byte*` : byte*, datamode : datamode) + | `ELEM`{reftype : reftype, `expr*` : expr*, elemmode : elemmode}(reftype : reftype, `expr*` : expr*, elemmode : elemmode) + | `START`{funcidx : funcidx}(funcidx : funcidx) + | `EXPORT`{name : name, externidx : externidx}(name : name, externidx : externidx) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { @@ -11150,7 +122709,7 @@ grammar Tdecl_(I : I) : (decl, idctxt) ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec grammar Tmodule : module ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`decl*` : decl*, `I*` : I*, I' : I, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*} {{"("} {"module"} {Tid?{}} {(decl, I)*{I <- `I*`, decl <- `decl*`}:Tdecl_(I')*{}} {")"}} => MODULE_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}) + prod{`type*#155` : type*, `import*#155` : import*, `tag*#155` : tag*, `global*#179` : global*, `mem*#179` : mem*, `table*#179` : table*, `func*#155` : func*, `data*#155` : data*, `elem*#179` : elem*, `start?#155` : start?, `export*#155` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `I*` : I*, `decl*` : decl*, I' : I} {{"("} {"module"} {Tid?{}} {(decl, I)*{I <- `I*`, decl <- `decl*`}:Tdecl_(I')*{}} {")"}} => `MODULE`_module{`type*#155`, `import*#155`, `tag*#155`, `global*#179`, `mem*#179`, `table*#179`, `func*#155`, `data*#155`, `elem*#179`, `start?#155`, `export*#155`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}) -- if (I' = $concat_idctxt(I*{I <- `I*`})) -- Idctxt_ok: `|-%:OK`(I') -- if (type*{type <- `type*`} = $typesd(decl*{decl <- `decl*`})) @@ -11179,14 +122738,14 @@ syntax B = nat ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax sym = - | _FIRST{A_1 : A}(A_1 : A) - | _DOTS - | _LAST{A_n : A}(A_n : A) + | `_FIRST`{A_1 : A}(A_1 : A) + | `_DOTS` + | `_LAST`{A_n : A}(A_n : A) ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax symsplit = - | _FIRST{A_1 : A}(A_1 : A) - | _LAST{A_2 : A}(A_2 : A) + | `_FIRST`{A_1 : A}(A_1 : A) + | `_LAST`{A_2 : A}(A_2 : A) ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax recorddots = () @@ -11194,14 +122753,14 @@ syntax recorddots = () ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax record = { - FIELD_1{A_1 : A} A, - FIELD_2{A_2 : A} A, + `FIELD_1`{A_1 : A} A, + `FIELD_2`{A_2 : A} A, `...`{recorddots : recorddots} recorddots } ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax pth = - | PTHSYNTAX + | `PTHSYNTAX` ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec syntax T = nat @@ -11228,41 +122787,41 @@ rec { ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec:20.1-20.83 relation NotationTypingInstrScheme: `%|-%:%`(context, instr*, instrtype) ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec:22.1-23.38 - rule i32.add{C : context}: - `%|-%:%`(C, [BINOP_instr(I32_numtype, ADD_binop_)], `%->_%%`_instrtype(`%`_resulttype([I32_valtype I32_valtype]), [], `%`_resulttype([I32_valtype]))) + rule i32.add{C : context, numtype#1105 : numtype, resulttype#3064 : resulttype, `localidx*#1817` : localidx*, `X*#13813` : valtype*, `X*#13862` : valtype*}: + `%|-%:%`(C, [`BINOP`_instr{numtype#1105}(`I32`_numtype, `ADD`_binop_)], `%->_%%`_instrtype{resulttype#3064, `localidx*#1817`}(`%`_resulttype{`X*#13813`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#13862`}([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec:25.1-27.29 - rule global.get{C : context, x : idx, t : valtype, mut : mut}: - `%|-%:%`(C, [GLOBAL.GET_instr(x)], `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))) - -- if (C.GLOBALS_context[x!`%`_idx.0] = `%%`_globaltype(?(mut), t)) + rule global.get{C : context, globalidx#35 : globalidx, x : idx, resulttype#3084 : resulttype, `localidx*#1829` : localidx*, `X*#13883` : valtype*, `X*#13932` : valtype*, t : valtype, `globaltype*#27` : globaltype*, i#131877 : nat, `mut?#1609` : mut?, valtype#1343 : valtype, mut : mut}: + `%|-%:%`(C, [`GLOBAL.GET`_instr{globalidx#35}(x)], `%->_%%`_instrtype{resulttype#3084, `localidx*#1829`}(`%`_resulttype{`X*#13883`}([]), [], `%`_resulttype{`X*#13932`}([t]))) + -- if (C.`GLOBALS`_context{`globaltype*#27`}[x!`%`_idx{i#131877}.0] = `%%`_globaltype{`mut?#1609`, valtype#1343}(?(mut), t)) ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec:29.1-32.78 - rule block{C : context, blocktype : blocktype, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, [BLOCK_instr(blocktype, instr*{instr <- `instr*`})], `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Blocktype_ok: `%|-%:%`(C, blocktype, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- NotationTypingInstrScheme: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [`%`_resulttype(t_2*{t_2 <- `t_2*`})], RETURN ?(), REFS []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + rule block{C : context, blocktype#49 : blocktype, `instr*#2369` : instr*, blocktype : blocktype, `instr*` : instr*, resulttype#3104 : resulttype, `localidx*#1841` : localidx*, `X*#13943` : valtype*, `t_1*` : valtype*, `X*#13994` : valtype*, `t_2*` : valtype*, resulttype#3124 : resulttype, `localidx*#1853` : localidx*, `X*#14005` : valtype*, `X*#14056` : valtype*, `deftype*#98` : deftype*, `subtype*#25` : subtype*, `tagtype*#26` : tagtype*, `globaltype*#28` : globaltype*, `memtype*#41` : memtype*, `tabletype*#34` : tabletype*, `deftype*#99` : deftype*, `datatype*#26` : datatype*, `elemtype*#26` : elemtype*, `localtype*#29` : localtype*, `resulttype*#37` : resulttype*, `X*#14067` : valtype*, `resulttype?#34` : resulttype?, `funcidx*#63` : funcidx*, resulttype#3144 : resulttype, `localidx*#1865` : localidx*, `X*#14080` : valtype*, `X*#14131` : valtype*}: + `%|-%:%`(C, [`BLOCK`_instr{blocktype#49, `instr*#2369`}(blocktype, instr*{instr <- `instr*`})], `%->_%%`_instrtype{resulttype#3104, `localidx*#1841`}(`%`_resulttype{`X*#13943`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#13994`}(t_2*{t_2 <- `t_2*`}))) + -- Blocktype_ok: `%|-%:%`(C, blocktype, `%->_%%`_instrtype{resulttype#3124, `localidx*#1853`}(`%`_resulttype{`X*#14005`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14056`}(t_2*{t_2 <- `t_2*`}))) + -- NotationTypingInstrScheme: `%|-%:%`({`TYPES`{`deftype*#98`} [], `RECS`{`subtype*#25`} [], `TAGS`{`tagtype*#26`} [], `GLOBALS`{`globaltype*#28`} [], `MEMS`{`memtype*#41`} [], `TABLES`{`tabletype*#34`} [], `FUNCS`{`deftype*#99`} [], `DATAS`{`datatype*#26`} [], `ELEMS`{`elemtype*#26`} [], `LOCALS`{`localtype*#29`} [], `LABELS`{`resulttype*#37`} [`%`_resulttype{`X*#14067`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#34`} ?(), `REFS`{`funcidx*#63`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#3144, `localidx*#1865`}(`%`_resulttype{`X*#14080`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14131`}(t_2*{t_2 <- `t_2*`}))) } ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec relation NotationReduct: `~>%`(instr*) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec - rule 2{q_1 : num_(F64_numtype), q_4 : num_(F64_numtype), q_3 : num_(F64_numtype)}: - `~>%`([CONST_instr(F64_numtype, q_1) CONST_instr(F64_numtype, q_4) CONST_instr(F64_numtype, q_3) BINOP_instr(F64_numtype, ADD_binop_) BINOP_instr(F64_numtype, MUL_binop_)]) + rule 2{numtype#1107 : numtype, q_1 : num_(`F64`_numtype), numtype#1109 : numtype, q_4 : num_(`F64`_numtype), numtype#1111 : numtype, q_3 : num_(`F64`_numtype), numtype#1113 : numtype, numtype#1115 : numtype}: + `~>%`([`CONST`_instr{numtype#1107}(`F64`_numtype, q_1) `CONST`_instr{numtype#1109}(`F64`_numtype, q_4) `CONST`_instr{numtype#1111}(`F64`_numtype, q_3) `BINOP`_instr{numtype#1113}(`F64`_numtype, `ADD`_binop_) `BINOP`_instr{numtype#1115}(`F64`_numtype, `MUL`_binop_)]) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec - rule 3{q_1 : num_(F64_numtype), q_5 : num_(F64_numtype)}: - `~>%`([CONST_instr(F64_numtype, q_1) CONST_instr(F64_numtype, q_5) BINOP_instr(F64_numtype, MUL_binop_)]) + rule 3{numtype#1117 : numtype, q_1 : num_(`F64`_numtype), numtype#1119 : numtype, q_5 : num_(`F64`_numtype), numtype#1121 : numtype}: + `~>%`([`CONST`_instr{numtype#1117}(`F64`_numtype, q_1) `CONST`_instr{numtype#1119}(`F64`_numtype, q_5) `BINOP`_instr{numtype#1121}(`F64`_numtype, `MUL`_binop_)]) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec - rule 4{q_6 : num_(F64_numtype)}: - `~>%`([CONST_instr(F64_numtype, q_6)]) + rule 4{numtype#1123 : numtype, q_6 : num_(`F64`_numtype)}: + `~>%`([`CONST`_instr{numtype#1123}(`F64`_numtype, q_6)]) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec def $instrdots : instr* ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec syntax label = - | `LABEL_%{%}`{n : n, `instr*` : instr*}(n : n, instr*{instr <- `instr*`} : instr*) + | `LABEL_%{%}`{n : n, `instr*` : instr*}(n : n, `instr*` : instr*) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec syntax callframe = @@ -11297,7 +122856,7 @@ def $var(syntax X) : nat ;; ../../../../specification/wasm-3.0/X.4-notation.binary.spectec grammar Bvar(syntax X) : () ;; ../../../../specification/wasm-3.0/X.4-notation.binary.spectec - prod 0x00 => () + prod 0x00 => ((), ()).1 ;; ../../../../specification/wasm-3.0/X.4-notation.binary.spectec grammar Bsym : A @@ -11309,14 +122868,14 @@ grammar Bsym : A ;; ../../../../specification/wasm-3.0/X.4-notation.binary.spectec grammar Bsymsplit : () ;; ../../../../specification/wasm-3.0/X.4-notation.binary.spectec - prod{`` : ()} ``:Bvar(syntax B) => `` + prod{`` : ()} ``:Bvar(syntax B) => (``, ()).1 ;; ../../../../specification/wasm-3.0/X.4-notation.binary.spectec - prod{`` : ()} ``:Bvar(syntax B) => `` + prod{`` : ()} ``:Bvar(syntax B) => (``, ()).1 ;; ../../../../specification/wasm-3.0/X.5-notation.text.spectec grammar Tvar(syntax X) : () ;; ../../../../specification/wasm-3.0/X.5-notation.text.spectec - prod 0x00 => () + prod 0x00 => ((), ()).1 ;; ../../../../specification/wasm-3.0/X.5-notation.text.spectec grammar Tsym : A @@ -11328,9 +122887,9 @@ grammar Tsym : A ;; ../../../../specification/wasm-3.0/X.5-notation.text.spectec grammar Tsymsplit : () ;; ../../../../specification/wasm-3.0/X.5-notation.text.spectec - prod{`` : ()} ``:Tvar(syntax B) => `` + prod{`` : ()} ``:Tvar(syntax B) => (``, ()).1 ;; ../../../../specification/wasm-3.0/X.5-notation.text.spectec - prod{`` : ()} ``:Tvar(syntax B) => `` + prod{`` : ()} ``:Tvar(syntax B) => (``, ()).1 ;; ../../../../specification/wasm-3.0/X.5-notation.text.spectec syntax abbreviated = () @@ -11345,5 +122904,2522 @@ syntax syntax = () grammar Tabbrev : () == IL Validation... +[] n* nat* +[] n* nat* +[] n* nat* +[] n* nat* +[] X* X* +[] X** X** +[] X* X* +[] X* X* +[] X** X** +[] X* X* +[] X* X^n +[] X** X^n* +[] X* X^n +[] X* X^n +[] X** X^n* +[] X* X^n +[] X? X? +[] X?* X?* +[] X? X? +[] X? X? +[] X?* X?* +[] X? X? +[] X* X* +[] X* X* +[] X* X* +[] X* X* +[] X* X* +[] X* X* +[] X* X* +[] X* X* +[] X* X* +[] X* X* +[] X* X* +[] X* X* +[] X* X* +[] X* X* +[] X** X** +[] X* X* +[] X* X* +[] X** X** +[] X* X* +[] X** X** +[] X* X* +[] X* X* +[] X** X** +[] X* X* +[] X** X** +[] X* X* +[] X* X* +[] X** X** +[] X* X* +[] X* X* +[] X** X** +[] X* X* +[] X* X* +[] X** X** +[] X* X* +[] X* X* +[] X* X* +[] char* char* +[] char* char* +[] char* char* +[] char* char* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] externidx* externidx* +[] free* free* +[] free* free* +[] null? null? +[] null? null? +[] null? null? +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] null? null? +[] typevar* typevar* +[] typeuse* typeuse* +[] null? null? +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] mut? mut? +[] typevar* typevar* +[] typeuse* typeuse* +[] mut? mut? +[] typevar* typevar* +[] typeuse* typeuse* +[] fieldtype* fieldtype* +[] typevar* typevar* +[] typeuse* typeuse* +[] fieldtype* fieldtype* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] valtype* valtype* +[] valtype* valtype* +[] typevar* typevar* +[] typeuse* typeuse* +[] valtype* valtype* +[] typevar* typevar* +[] typeuse* typeuse* +[] valtype* valtype* +[] typevar* typevar* +[] typeuse* typeuse* +[] final? final? +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] final? final? +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] subtype* subtype* +[] typevar* typevar* +[] typeuse* typeuse* +[] subtype* subtype* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] mut? mut? +[] typevar* typevar* +[] typeuse* typeuse* +[] mut? mut? +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] typevar* typevar* +[] typeuse* typeuse* +[] externtype* externtype* +[] externtype* externtype* +[] typevar* typevar* +[] typeuse* typeuse* +[] externtype* externtype* +[] typevar* typevar* +[] typeuse* typeuse* +[] externtype* externtype* +[] typevar* typevar* +[] typeuse* typeuse* +[] typeuse* typeuse^n +[] nat* nat^n +[] typeidx* typeidx^n +[] typeuse* typeuse^n +[] typeuse* typeuse^n +[] nat* nat^n +[] typeidx* typeidx^n +[] typeuse* typeuse^n +[] typeuse* typeuse^n +[] nat* nat^n +[] typeidx* typeidx^n +[] typeuse* typeuse^n +[] typeuse* typeuse^n +[] nat* nat^n +[] typeidx* typeidx^n +[] typeuse* typeuse^n +[] typeuse* typeuse^n +[] nat* nat^n +[] typeidx* typeidx^n +[] typeuse* typeuse^n +[] typeuse* typeuse^n +[] nat* nat^n +[] typeidx* typeidx^n +[] typeuse* typeuse^n +[] typeuse* typeuse^n +[] nat* nat^n +[] typeidx* typeidx^n +[] typeuse* typeuse^n +[] typeuse* typeuse^n +[] nat* nat^n +[] typeidx* typeidx^n +[] typeuse* typeuse^n +[] typeuse* typeuse^n +[] nat* nat^n +[] typeidx* typeidx^n +[] typeuse* typeuse^n +[] typeuse* typeuse* +[] deftype* deftype* +[] typeuse* typeuse* +[] typeuse* typeuse* +[] deftype* deftype* +[] typeuse* typeuse* +[] nat** nat^n^n +[] nat** nat^n^n +[] n** n^n^n +[] subtype* subtype^n +[] typeidx** typeidx^n^n +[] nat* nat^n +[] nat* nat^n +[] typeidx* typeidx^n +[] n* n^n +[] subtype* subtype^n +[] n** n^n^n +[] n** n^n^n +[] rectype** rectype^n^n +[] subtype* subtype^n +[] n* n^n +[] n* n^n +[] rectype* rectype^n +[] subtype* subtype^n +[] subtype** subtype*^n +[] n* n^n +[] rectype* rectype^n +[] subtype* subtype^n +[] subtype* subtype^n +[] subtype* subtype* +[] subtype* subtype* +[] subtype* subtype* +[] final? final? +[] typeuse* typeuse* +[] null? null? +[] valtype* valtype* +[] valtype* valtype* +[] mut? mut? +[] fieldtype* fieldtype* +[] fieldtype* fieldtype* +[] final? final? +[] typeuse* typeuse* +[] typeuse* typeuse* +[] subtype* subtype* +[] subtype* subtype* +[] mut? mut? +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] externtype* externtype* +[] half? half? +[] half? half? +[] half? half? +[] half? half? +[] zero? zero? +[] zero? zero? +[] zero? zero? +[] zero? zero? +[] zero? zero? +[] zero? zero? +[] zero? zero? +[] zero? zero? +[] laneidx* laneidx* +[] laneidx* laneidx* +[] sx? sx? +[] sx? sx? +[] valtype? valtype? +[] valtype? valtype? +[] labelidx* labelidx* +[] labelidx* labelidx* +[] labelidx* labelidx* +[] labelidx* labelidx* +[] valtype*? valtype*? +[] valtype* valtype* +[] valtype*? valtype*? +[] valtype* valtype* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] labelidx* labelidx* +[] labelidx* labelidx* +[] laneidx* laneidx* +[] sx? sx? +[] sx? sx? +[] sx? sx? +[] loadop_(numtype)? loadop_(numtype)? +[] storeop_(numtype)? storeop_(numtype)? +[] vloadop_(vectype)? vloadop_(vectype)? +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] local* local* +[] local* local* +[] byte* byte* +[] expr* expr* +[] expr* expr* +[] type* type* +[] import* import* +[] tag* tag* +[] global* global* +[] mem* mem* +[] table* table* +[] func* func* +[] data* data* +[] elem* elem* +[] start? start? +[] export* export* +[] type* type* +[] tag* tag* +[] global* global* +[] mem* mem* +[] table* table* +[] func* func* +[] data* data* +[] elem* elem* +[] start? start? +[] import* import* +[] export* export* +[] func* func* +[] func* func* +[] func* func* +[] idx* localidx* +[] localtype* localtype* +[] idx* localidx* +[] localtype* localtype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] valtype* valtype* +[] valtype* valtype* +[] fieldtype* fieldtype* +[] fieldtype* fieldtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] typeidx* typeidx* +[] idx* typeidx* +[] idx* idx* +[] idx* idx* +[] nat* nat* +[] nat* nat* +[] idx* idx* +[] comptype* comptype* +[] comptype* comptype* +[] deftype** deftype** +[] final?* final?* +[] nat* nat* +[] typeidx** typeidx** +[] typeuse** typeuse** +[] idx* idx* +[] idx** typeidx** +[] typeidx* typeidx* +[] idx* typeidx* +[] comptype* comptype* +[] subtype* subtype* +[] subtype* subtype* +[] subtype* subtype* +[] subtype* subtype* +[] subtype* subtype* +[] typeuse* typeuse* +[] typeuse* typeuse* +[] typeuse* typeuse* +[] typeuse* typeuse* +[] comptype* comptype* +[] comptype* comptype* +[] final?* final?* +[] typeuse* typeuse* +[] typeuse** typeuse** +[] typeuse** typeuse** +[] typeuse* typeuse* +[] comptype* comptype* +[] subtype* subtype* +[] subtype* subtype* +[] subtype* subtype^n +[] fieldtype* fieldtype* +[] fieldtype* fieldtype* +[] fieldtype* fieldtype* +[] fieldtype* fieldtype* +[] fieldtype* fieldtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] final? final? +[] typeuse* typeuse* +[] typeuse* typeuse* +[] typeuse* typeuse* +[] fieldtype* fieldtype* +[] valtype* valtype* +[] valtype* valtype* +[] typeuse* typeuse* +[] typeuse* typeuse* +[] final? final? +[] typeuse* typeuse* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] idx* localidx* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] nat* nat* +[] localtype* localtype* +[] localtype** localtype** +[] idx* idx* +[] nat? nat? +[] m? nat? +[] m? nat? +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] idx* localidx* +[] valtype* valtype* +[] valtype* valtype* +[] idx* localidx* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] idx* localidx* +[] idx* localidx* +[] idx* localidx* +[] idx* localidx* +[] nat* nat* +[] init* init* +[] localtype** localtype** +[] valtype* valtype* +[] valtype* valtype* +[] idx* idx* +[] nat? nat? +[] m? nat? +[] m? nat? +[] valtype? valtype? +[] valtype? valtype? +[] valtype? valtype? +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] instr* instr* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] instr* instr* +[] valtype* valtype* +[] idx* localidx* +[] valtype* valtype* +[] instr* instr* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] instr* instr* +[] valtype* valtype* +[] idx* localidx* +[] valtype* valtype* +[] instr* instr* +[] instr* instr* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] instr* instr* +[] valtype* valtype* +[] idx* localidx* +[] valtype* valtype* +[] valtype* valtype* +[] instr* instr* +[] valtype* valtype* +[] idx* localidx* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] labelidx* labelidx* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype** valtype** +[] nat* nat* +[] labelidx* labelidx* +[] resulttype** resulttype** +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] catch* catch* +[] instr* instr* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] instr* instr* +[] valtype* valtype* +[] idx* localidx* +[] valtype* valtype* +[] catch* catch* +[] storagetype* storagetype* +[] mut?* mut?* +[] mut?* mut?* +[] storagetype* storagetype* +[] storagetype* storagetype* +[] mut? mut? +[] mut?* mut?* +[] mut?* mut?* +[] storagetype* storagetype* +[] storagetype* storagetype* +[] mut? mut? +[] storagetype* storagetype* +[] sx? sx? +[] fieldtype* fieldtype* +[] fieldtype* fieldtype* +[] fieldtype* fieldtype* +[] fieldtype* fieldtype* +[] mut? mut? +[] sx? sx? +[] sx? sx? +[] fieldtype* fieldtype* +[] fieldtype* fieldtype* +[] fieldtype* fieldtype* +[] fieldtype* fieldtype* +[] mut? mut? +[] mut? mut? +[] mut? mut? +[] mut? mut? +[] mut? mut? +[] sx? sx? +[] mut? mut? +[] sx? sx? +[] sx? sx? +[] mut? mut? +[] null? null? +[] null? null? +[] null? null? +[] null? null? +[] null? null? +[] null? null? +[] null? null? +[] null? null? +[] null? null? +[] null? null? +[] mut? mut? +[] laneidx* laneidx* +[] laneidx* laneidx* +[] nat* nat* +[] nat* nat* +[] shape* shape* +[] sx? sx? +[] instr* instr* +[] valtype* valtype* +[] idx* localidx* +[] idx* localidx* +[] valtype* valtype* +[] valtype* valtype* +[] idx* localidx* +[] valtype* valtype* +[] nat* nat* +[] init* init* +[] init* init* +[] localtype** localtype** +[] valtype* valtype* +[] valtype* valtype* +[] idx* idx* +[] idx* localidx* +[] init* init* +[] valtype* valtype* +[] valtype* valtype* +[] instr* instr* +[] valtype* valtype* +[] idx* localidx* +[] valtype* valtype* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] valtype* valtype* +[] valtype* valtype* +[] idx* localidx* +[] valtype* valtype* +[] valtype* valtype* +[] instr* instr* +[] valtype* valtype* +[] idx* localidx* +[] valtype* valtype* +[] valtype* valtype* +[] instr* instr* +[] valtype* valtype* +[] instr* instr* +[] valtype* valtype* +[] instr* instr* +[] instr* instr* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] local* local* +[] valtype* valtype* +[] valtype* valtype* +[] localtype* localtype* +[] local* local* +[] init* init* +[] valtype* valtype* +[] valtype* valtype* +[] localtype* localtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] byte* byte* +[] expr* expr* +[] expr* expr* +[] global* global* +[] globaltype* globaltype* +[] global* global* +[] globaltype* globaltype* +[] type* type* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] type* type* +[] deftype* deftype* +[] global* global* +[] mem* mem* +[] table* table* +[] elem* elem* +[] global* global* +[] mem* mem* +[] table* table* +[] elem* elem* +[] type* type* +[] import* import* +[] tag* tag* +[] global* global* +[] mem* mem* +[] table* table* +[] func* func* +[] data* data* +[] elem* elem* +[] start? start? +[] export* export* +[] externtype* externtype* +[] externtype* externtype* +[] type* type* +[] deftype* deftype* +[] datatype** datatype** +[] deftype** deftype** +[] deftype** deftype** +[] elemtype** elemtype** +[] funcidx** funcidx** +[] globaltype** globaltype** +[] import* import* +[] localtype** localtype** +[] memtype** memtype** +[] resulttype** resulttype** +[] resulttype?* resulttype?* +[] subtype** subtype** +[] tabletype** tabletype** +[] tagtype** tagtype** +[] externtype* externtype* +[] deftype* deftype* +[] tagtype* tagtype* +[] tag* tag* +[] global* global* +[] globaltype* globaltype* +[] mem* mem* +[] memtype* memtype* +[] table* table* +[] tabletype* tabletype* +[] deftype* deftype* +[] func* func* +[] data* data* +[] datatype* datatype* +[] elem* elem* +[] reftype* elemtype* +[] start? start? +[] export* export* +[] name* name* +[] externtype* externtype* +[] name* name* +[] tagtype* tagtype* +[] tagtype* tagtype* +[] globaltype* globaltype* +[] memtype* memtype* +[] memtype* memtype* +[] tabletype* tabletype* +[] tabletype* tabletype* +[] datatype* datatype* +[] reftype* elemtype* +[] deftype* deftype* +[] globaltype* globaltype* +[] deftype* deftype* +[] deftype* deftype* +[] idx* funcidx* +[] idx* funcidx* +[] idx* funcidx* +[] global* global* +[] mem* mem* +[] table* table* +[] elem* elem* +[] tagtype* tagtype* +[] tagtype* tagtype* +[] externtype* externtype* +[] globaltype* globaltype* +[] globaltype* globaltype* +[] externtype* externtype* +[] memtype* memtype* +[] memtype* memtype* +[] externtype* externtype* +[] tabletype* tabletype* +[] tabletype* tabletype* +[] externtype* externtype* +[] deftype* deftype* +[] deftype* deftype* +[] externtype* externtype* +[] half? half? +[] zero? zero? +[] zero? zero? +[] zero? zero? +[] zero? zero? +[] half? half? +[] half? half? +[] zero? zero? +[] zero? zero? +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#1469, dim#1469, i#13506}((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_((Fnn : Fnn <: lanetype))** lane_($lanetype(`%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M))))** +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lane_((Fnn : Fnn <: lanetype))* lane_($lanetype(`%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))* +[] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** +[] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* +[] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** +[] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* +[] lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#1619, dim#1619, i#14011}((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#1707, dim#1707, i#14357}((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_((Jnn : Jnn <: lanetype))** lane_($lanetype(`%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M))))** +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lane_((Jnn : Jnn <: lanetype))* lane_($lanetype(`%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))* +[] lane_((Jnn : Jnn <: lanetype))** lane_((Jnn : Jnn <: lanetype))** +[] lane_((Jnn : Jnn <: lanetype))* lane_((Jnn : Jnn <: lanetype))* +[] lane_((Jnn : Jnn <: lanetype))** lane_((Jnn : Jnn <: lanetype))** +[] lane_((Jnn : Jnn <: lanetype))* lane_((Jnn : Jnn <: lanetype))* +[] lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_((Fnn : Fnn <: lanetype))** lane_($lanetype(`%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M))))** +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lane_((Fnn : Fnn <: lanetype))* lane_($lanetype(`%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))* +[] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** +[] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* +[] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** +[] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* +[] lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] lane_((Jnn : Jnn <: lanetype))** lane_($lanetype(`%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M))))** +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lane_((Jnn : Jnn <: lanetype))* lane_($lanetype(`%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))* +[] lane_((Jnn : Jnn <: lanetype))** lane_((Jnn : Jnn <: lanetype))** +[] lane_((Jnn : Jnn <: lanetype))* lane_((Jnn : Jnn <: lanetype))* +[] lane_((Jnn : Jnn <: lanetype))** lane_((Jnn : Jnn <: lanetype))** +[] lane_((Jnn : Jnn <: lanetype))* lane_((Jnn : Jnn <: lanetype))* +[] lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_((Fnn : Fnn <: lanetype))** lane_($lanetype(`%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M))))** +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lane_((Fnn : Fnn <: lanetype))* lane_($lanetype(`%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))* +[] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** +[] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* +[] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** +[] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* +[] lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#2222, dim#2222, i#16597}((Jnn : Jnn <: lanetype), `%`_dim{i#16604}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] nat* nat* +[] nat* nat* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#2310, dim#2310, i#16989}((Jnn : Jnn <: lanetype), `%`_dim{i#16996}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] nat* nat* +[] nat* nat* +[] iN($sizenn((Fnn : Fnn <: numtype)))* iN($sizenn((Fnn : Fnn <: numtype)))* +[] nat* nat* +[] nat* nat* +[] lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))* +[] iN($sizenn((Fnn : Fnn <: numtype)))* iN($sizenn((Fnn : Fnn <: numtype)))* +[] iN($sizenn((Fnn : Fnn <: numtype)))* iN($sizenn((Fnn : Fnn <: numtype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] nat* nat* +[] nat* nat* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#2459, dim#2459, i#17593}((Jnn : Jnn <: lanetype), `%`_dim{i#17600}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#2521, dim#2521, i#17848}((Jnn : Jnn <: lanetype), `%`_dim{i#17855}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] nat* nat* +[] nat* nat* +[] nat* nat* +[] nat* nat^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat) +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#2648, dim#2648, i#18585}((Jnn : Jnn <: lanetype), `%`_dim{i#18592}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] laneidx* laneidx* +[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2760, dim#2760, i#19037}((Jnn : Jnn <: lanetype), `%`_dim{i#19044}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* +[] laneidx* laneidx* +[] nat* nat* +[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* +[] half? half? +[] zero? zero? +[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? lane_($lanetype(`%X%`_shape{lanetype#5285, dim#5285, i#26220}((Inn_2 : Inn <: lanetype), `%`_dim{i#26227}(M_2))))? +[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? iN($lsizenn2((Inn_2 : Inn <: lanetype)))? +[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? iN($lsizenn2((Inn_2 : Inn <: lanetype)))? +[] zero? zero? +[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? lane_($lanetype(`%X%`_shape{lanetype#5373, dim#5373, i#26396}((Inn_2 : Inn <: lanetype), `%`_dim{i#26403}(M_2))))? +[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? iN($lsizenn2((Inn_2 : Inn <: lanetype)))? +[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? iN($lsizenn2((Inn_2 : Inn <: lanetype)))? +[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#5461, dim#5461, i#26572}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26579}(M_2))))* +[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* +[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* +[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#5548, dim#5548, i#26695}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26702}(M_2))))* +[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* +[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))* lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))* lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))* +[] lane_(Lnn_2)** lane_(Lnn_2)** +[] lane_(Lnn_2)* lane_(Lnn_2)* +[] lane_(Lnn_2)** lane_(Lnn_2)** +[] lane_(Lnn_2)* lane_(Lnn_2)* +[] lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))* lane_($lanetype(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M))))* +[] dim* dim* +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lanetype* lanetype* +[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M))))** +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M))))* +[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M))))** +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))* +[] lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))* +[] lane_(Lnn_2)** lane_(Lnn_2)** +[] lane_(Lnn_2)* lane_(Lnn_2)* +[] lane_(Lnn_2)** lane_(Lnn_2)** +[] lane_(Lnn_2)* lane_(Lnn_2)* +[] lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1))))* +[] dim* dim* +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lanetype* lanetype* +[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2))))** +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2))))* +[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2))))** +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2))))* +[] lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))* +[] lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))* +[] lane_(Lnn_2)** lane_(Lnn_2)** +[] lane_(Lnn_2)* lane_(Lnn_2)* +[] lane_(Lnn_2)** lane_(Lnn_2)** +[] lane_(Lnn_2)* lane_(Lnn_2)* +[] lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1))))* +[] dim* dim* +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lanetype* lanetype* +[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2))))** +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2))))* +[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2))))** +[] dim* dim* +[] nat* nat* +[] nat* nat* +[] lanetype* lanetype* +[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2))))* +[] laneidx* laneidx* +[] laneidx* laneidx* +[] lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))* +[] lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))* +[] lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))* +[] lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))* +[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* iN($lsize((Jnn_2 : Jnn <: lanetype)))* +[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* iN($lsize((Jnn_2 : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))* iN($lsize((Jnn_1 : Jnn <: lanetype)))* +[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* iN($lsize((Jnn_2 : Jnn <: lanetype)))* +[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* iN($lsize((Jnn_2 : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))* iN($lsize((Jnn_1 : Jnn <: lanetype)))* +[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2))))* +[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2))))* +[] iN(N)* iN(N)* +[] nat* nat* +[] nat* nat* +[] N* nat* +[] N* nat* +[] N* N* +[] N* N* +[] N* N* +[] N* N* +[] iN(N)* iN(N)* +[] nat* nat* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#6740, dim#6740, i#28862}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28869}(M_2))))* +[] lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))* +[] lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))* iN($lsizenn1((Jnn_1 : Jnn <: lanetype)))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#6840, dim#6840, i#29380}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29387}(M_2))))* +[] lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))* +[] lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))* +[] lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))* +[] lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))* iN($lsizenn1((Jnn_1 : Jnn <: lanetype)))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))* iN($lsizenn1((Jnn_1 : Jnn <: lanetype)))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] iN(N)* iN(N)* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] byte* byte* +[] byte* byte* +[] ref* ref* +[] ref* ref* +[] byte* byte* +[] byte* byte* +[] structinst* structinst* +[] structinst* structinst* +[] arrayinst* arrayinst* +[] arrayinst* arrayinst* +[] exninst* exninst* +[] exninst* exninst* +[] u64? u64? +[] ref* ref* +[] u64? u64? +[] ref* ref* +[] ref* ref* +[] ref* ref* +[] nat? nat? +[] nat? nat? +[] u64? u64? +[] u64? u64? +[] byte* byte* +[] u64? u64? +[] byte* byte* +[] nat* nat^(n * (64 * $Ki)) +[] byte* byte* +[] byte* byte* +[] nat? nat? +[] nat? nat? +[] u64? u64? +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] valtype*? valtype*? +[] valtype* valtype* +[] valtype*? valtype*? +[] valtype* valtype* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] val* val* +[] val* val* +[] instr* instr* +[] val* val* +[] val* val^n +[] instr* instr* +[] val* val^n +[] instr* instr* +[] instr* instr* +[] val* val* +[] instr* instr* +[] val* val* +[] catch* catch* +[] val* val* +[] instr* instr* +[] val* val* +[] labelidx* labelidx* +[] labelidx* labelidx* +[] labelidx* labelidx* +[] labelidx* labelidx* +[] labelidx* labelidx* +[] labelidx* labelidx* +[] labelidx* labelidx* +[] labelidx* labelidx* +[] val* val^n +[] val* val^n +[] val* val* +[] val* val^n +[] instr* instr* +[] val* val^n +[] instr* instr* +[] val* val* +[] instr* instr* +[] val* val* +[] catch* catch* +[] val* val* +[] instr* instr* +[] val* val* +[] catch* catch* +[] val* val* +[] val* val* +[] val* val* +[] instr* instr* +[] val* val* +[] val* val* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] lane_($lanetype(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))))* lane_($lanetype(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))))* lane_($lanetype(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))))* +[] lane_($lanetype(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))))* iN($jsizenn(Jnn))* +[] nat* nat* +[] laneidx* laneidx* +[] laneidx* laneidx* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype? valtype? +[] valtype? valtype? +[] val* val^m +[] instr* instr* +[] val* val^m +[] instr* instr* +[] valtype* valtype^m +[] valtype* valtype^n +[] val* val^m +[] instr* instr* +[] instr* instr* +[] val* val^m +[] instr* instr* +[] valtype* valtype^m +[] valtype* valtype^n +[] val* val^n +[] instr* instr* +[] valtype* valtype^n +[] valtype* valtype^m +[] valtype* valtype* +[] valtype* valtype* +[] instr* instr* +[] val* val^n +[] valtype* valtype* +[] instr* instr* +[] val* val* +[] instr* instr* +[] val* val* +[] catch* catch* +[] val* val* +[] instr* instr* +[] val* val* +[] val* val* +[] instr* instr* +[] val* val* +[] val* val^n +[] instr* instr* +[] val* val^n +[] valtype* valtype^n +[] valtype* valtype^m +[] val* val* +[] instr* instr* +[] val* val* +[] val* val* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] catch* catch* +[] val* val* +[] val* val* +[] val* val* +[] catch* catch* +[] val* val* +[] val* val* +[] val* val* +[] catch* catch* +[] catch* catch* +[] catch* catch* +[] catch* catch* +[] val* val^m +[] catch* catch* +[] instr* instr* +[] catch* catch* +[] val* val^m +[] instr* instr* +[] valtype* valtype^m +[] valtype* valtype^n +[] byte** byte*^K +[] nat* nat^K +[] nat* nat^K +[] iN(M)* iN(M)^K +[] u64* u64^K +[] iN(M)* iN(M)^K +[] nat* nat^M +[] nat* nat^M +[] val* val* +[] mut?* mut?* +[] mut?* mut?* +[] storagetype* storagetype* +[] storagetype* storagetype* +[] mut? mut? +[] val* val* +[] storagetype* storagetype* +[] sx? sx? +[] sx? sx? +[] storagetype* storagetype* +[] storagetype* storagetype* +[] sx? sx? +[] mut?* mut?* +[] mut?* mut?* +[] storagetype* storagetype* +[] storagetype* storagetype* +[] mut? mut? +[] mut? mut? +[] ref* ref^n +[] ref* ref^n +[] ref* ref^n +[] mut? mut? +[] lit_(zt)* lit_(zt)^n +[] mut? mut? +[] lit_(zt)* lit_(zt)^n +[] lit_(zt)* lit_(zt)^n +[] sx? sx? +[] sx? sx? +[] sx? sx? +[] sx? sx? +[] mut? mut? +[] sx? sx? +[] mut? mut? +[] sx? sx? +[] sx? sx? +[] sx? sx? +[] mut? mut? +[] sx? sx? +[] sx? sx? +[] mut? mut? +[] mut? mut? +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] val* val* +[] instr* instr* +[] instr* instr* +[] val* val* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] val* val* +[] val* val* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] val* val^n +[] valtype* valtype^n +[] val* val^n +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] val* val^n +[] mut?* mut?^n +[] mut?* mut?^n +[] storagetype* storagetype^n +[] storagetype* storagetype^n +[] mut? mut? +[] val* val^n +[] storagetype* storagetype^n +[] storagetype* storagetype* +[] storagetype* storagetype* +[] mut?* mut?* +[] mut?* mut?* +[] storagetype* storagetype* +[] storagetype* storagetype* +[] mut? mut? +[] val* val^n +[] mut? mut? +[] val* val^n +[] mut? mut? +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] val* val* +[] instr* instr* +[] val* val* +[] type* type* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] type* type* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] deftype* deftype* +[] tagtype* tagtype* +[] tagaddr* tagaddr* +[] tagaddr* tagaddr* +[] tagaddr* tagaddr* +[] tagtype* tagtype* +[] globaltype* globaltype* +[] val* val* +[] globaladdr* globaladdr* +[] globaladdr* globaladdr* +[] globaladdr* globaladdr* +[] globaltype* globaltype* +[] val* val* +[] u64? u64? +[] u64? u64? +[] nat* nat^(i!`%`_u64{i#46867}.0 * (64 * $Ki)) +[] memtype* memtype* +[] memaddr* memaddr* +[] memaddr* memaddr* +[] memaddr* memaddr* +[] memtype* memtype* +[] u64? u64? +[] u64? u64? +[] tabletype* tabletype* +[] ref* ref* +[] tableaddr* tableaddr* +[] tableaddr* tableaddr* +[] tableaddr* tableaddr* +[] tabletype* tabletype* +[] ref* ref* +[] deftype* deftype* +[] funccode* funccode* +[] moduleinst* moduleinst* +[] funcaddr* funcaddr* +[] funcaddr* funcaddr* +[] funcaddr* funcaddr* +[] deftype* deftype* +[] funccode* funccode* +[] moduleinst* moduleinst* +[] byte* byte* +[] byte* byte* +[] datatype* datatype* +[] byte* byte* +[] byte** byte** +[] byte* byte* +[] dataaddr* dataaddr* +[] byte* byte* +[] dataaddr* dataaddr* +[] dataaddr* dataaddr* +[] datatype* datatype* +[] byte** byte** +[] byte* byte* +[] ref* ref* +[] ref* ref* +[] reftype* elemtype* +[] ref* ref* +[] ref** ref** +[] ref* ref* +[] elemaddr* elemaddr* +[] ref* ref* +[] elemaddr* elemaddr* +[] elemaddr* elemaddr* +[] reftype* elemtype* +[] ref** ref** +[] ref* ref* +[] export* export* +[] export* export* +[] externaddr* externaddr* +[] val* val* +[] ref* ref* +[] ref** ref** +[] ref* ref* +[] type* type* +[] import* import* +[] tag* tag* +[] global* global* +[] mem* mem* +[] table* table* +[] func* func* +[] data* data* +[] elem* elem* +[] start? start? +[] export* export* +[] tag* tag* +[] tag* tag* +[] tagtype* tagtype* +[] tagtype* tagtype* +[] global* global* +[] global* global* +[] expr* expr* +[] expr* expr* +[] globaltype* globaltype* +[] globaltype* globaltype* +[] mem* mem* +[] mem* mem* +[] memtype* memtype* +[] memtype* memtype* +[] table* table* +[] table* table* +[] expr* expr* +[] expr* expr* +[] tabletype* tabletype* +[] tabletype* tabletype* +[] func* func* +[] func* func* +[] expr* expr* +[] expr* expr* +[] local** local** +[] local** local** +[] typeidx* typeidx* +[] idx* typeidx* +[] local* local* +[] data* data* +[] data* data* +[] byte** byte** +[] byte** byte** +[] datamode* datamode* +[] datamode* datamode* +[] byte* byte* +[] elem* elem* +[] elem* elem* +[] elemmode* elemmode* +[] elemmode* elemmode* +[] elemtype* reftype* +[] expr** expr** +[] expr** expr** +[] reftype* reftype* +[] expr* expr* +[] tagaddr* tagaddr* +[] tagaddr* tagaddr* +[] externaddr* externaddr* +[] globaladdr* globaladdr* +[] globaladdr* globaladdr* +[] externaddr* externaddr* +[] memaddr* memaddr* +[] memaddr* memaddr* +[] externaddr* externaddr* +[] tableaddr* tableaddr* +[] tableaddr* tableaddr* +[] externaddr* externaddr* +[] funcaddr* funcaddr* +[] funcaddr* funcaddr* +[] externaddr* externaddr* +[] deftype* deftype* +[] deftype* deftype* +[] type* type* +[] nat* nat* +[] nat* nat* +[] func* func* +[] func* func* +[] funcinst** funcinst*^|func*{}| +[] tagaddr* tagaddr* +[] tagaddr* tagaddr* +[] tagtype* tagtype* +[] deftype* deftype* +[] globaladdr* globaladdr* +[] globaladdr* globaladdr* +[] globaltype* globaltype* +[] deftype* deftype* +[] val* val* +[] memaddr* memaddr* +[] memaddr* memaddr* +[] memtype* memtype* +[] deftype* deftype* +[] tableaddr* tableaddr* +[] tableaddr* tableaddr* +[] tabletype* tabletype* +[] deftype* deftype* +[] ref* ref* +[] dataaddr* dataaddr* +[] dataaddr* dataaddr* +[] data* data* +[] data* data* +[] byte** byte** +[] byte* byte* +[] elemaddr* elemaddr* +[] elemaddr* elemaddr* +[] elemtype* reftype* +[] deftype* deftype* +[] ref** ref** +[] ref* ref* +[] nat* funcaddr* +[] nat* funcaddr* +[] nat* nat* +[] idx* idx* +[] deftype* deftype* +[] deftype* deftype* +[] expr* expr* +[] expr* expr* +[] local** local** +[] local** local** +[] typeidx* typeidx* +[] idx* typeidx* +[] local* local* +[] func* func* +[] func* func* +[] exportinst* exportinst* +[] exportinst* exportinst* +[] tagaddr* tagaddr* +[] tagaddr* tagaddr* +[] globaladdr* globaladdr* +[] globaladdr* globaladdr* +[] memaddr* memaddr* +[] memaddr* memaddr* +[] tableaddr* tableaddr* +[] tableaddr* tableaddr* +[] funcaddr* funcaddr* +[] nat* funcaddr* +[] export* export* +[] deftype* deftype* +[] tagaddr* tagaddr* +[] tagaddr* tagaddr* +[] globaladdr* globaladdr* +[] globaladdr* globaladdr* +[] memaddr* memaddr* +[] memaddr* memaddr* +[] tableaddr* tableaddr* +[] tableaddr* tableaddr* +[] funcaddr* funcaddr* +[] nat* funcaddr* +[] dataaddr* dataaddr* +[] elemaddr* elemaddr* +[] exportinst* exportinst* +[] byte* byte^n +[] byte* byte^n +[] instr* instr* +[] instr* instr* +[] expr* expr^n +[] expr* expr^n +[] expr* expr^n +[] instr* instr* +[] instr* instr* +[] globaltype* globaltype* +[] expr* expr* +[] val* val* +[] val* val* +[] val* val* +[] globaltype* globaltype* +[] expr* expr* +[] externaddr* externaddr* +[] instr* instr* +[] instr* instr* +[] instr? instr? +[] externtype* externtype* +[] externtype* externtype* +[] externaddr* externaddr* +[] externtype* externtype* +[] type* type* +[] import* import* +[] tag* tag* +[] global* global* +[] mem* mem* +[] table* table* +[] func* func* +[] data* data* +[] elem* elem* +[] start? start? +[] export* export* +[] global* global* +[] global* global* +[] expr* expr* +[] expr* expr* +[] globaltype* globaltype* +[] globaltype* globaltype* +[] table* table* +[] table* table* +[] expr* expr* +[] expr* expr* +[] tabletype* tabletype* +[] tabletype* tabletype* +[] data* data* +[] data* data* +[] byte** byte** +[] byte** byte** +[] datamode* datamode* +[] datamode* datamode* +[] byte* byte* +[] elem* elem* +[] elem* elem* +[] elemmode* elemmode* +[] elemmode* elemmode* +[] expr** expr** +[] expr** expr** +[] reftype* reftype* +[] reftype* reftype* +[] expr* expr* +[] start? start? +[] start? start? +[] funcidx? funcidx? +[] idx? funcidx? +[] type* type* +[] externaddr* externaddr* +[] externaddr* externaddr* +[] func* func* +[] func* func* +[] funcinst** funcinst*^|func*{}| +[] val* val* +[] val* val* +[] globaltype* globaltype* +[] expr* expr* +[] expr* expr* +[] ref* ref* +[] expr** expr** +[] ref** ref** +[] expr* expr* +[] ref* ref* +[] externaddr* externaddr* +[] val* val* +[] ref* ref* +[] ref** ref** +[] ref* ref* +[] instr* instr* +[] instr* instr* +[] data* data* +[] data* data* +[] nat* nat^|data*{}| +[] data* data* +[] data* data* +[] instr* instr* +[] instr* instr* +[] elem* elem* +[] elem* elem* +[] nat* nat^|elem*{}| +[] elem* elem* +[] elem* elem* +[] instr? instr? +[] instr? instr? +[] funcidx? funcidx? +[] idx? funcidx? +[] val* val* +[] val* val* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] val* val* +[] byte* byte* +[] byte* byte* +[] el* el^n +[] el* el^n +[] byte* byte* +[] byte* byte* +[] valtype* valtype* +[] valtype* valtype* +[] mut? mut? +[] mut? mut? +[] fieldtype* fieldtype* +[] fieldtype* fieldtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] idx* typeidx* +[] typeidx* typeidx* +[] idx* typeidx* +[] idx* typeidx* +[] typeidx* typeidx* +[] idx* typeidx* +[] subtype* subtype* +[] subtype* subtype* +[] mut? mut? +[] mut? mut? +[] valtype* valtype* +[] valtype* valtype* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] instr* instr* +[] labelidx* labelidx* +[] labelidx* labelidx* +[] catch* catch* +[] instr* instr* +[] catch* catch* +[] instr* instr* +[] null? null? +[] null? null? +[] null? null? +[] null? null? +[] null? null? +[] null? null? +[] null? null? +[] null? null? +[] byte* byte^16 +[] byte* byte^16 +[] nat* nat^16 +[] nat* nat^16 +[] labelidx* labelidx^16 +[] nat* nat^16 +[] nat* nat^16 +[] labelidx* labelidx^16 +[] instr* instr* +[] instr* instr* +[] en* en* +[] en* en* +[] type* type* +[] type* type* +[] import* import* +[] import* import* +[] idx* typeidx* +[] idx* typeidx* +[] table* table* +[] table* table* +[] mem* mem* +[] mem* mem* +[] global* global* +[] global* global* +[] export* export* +[] export* export* +[] idx* funcidx* +[] funcidx* funcidx* +[] idx* funcidx* +[] idx* funcidx* +[] funcidx* funcidx* +[] idx* funcidx* +[] idx* funcidx* +[] funcidx* funcidx* +[] idx* funcidx* +[] idx* funcidx* +[] funcidx* funcidx* +[] idx* funcidx* +[] expr* expr* +[] expr* expr* +[] expr* expr* +[] expr* expr* +[] expr* expr* +[] expr* expr* +[] expr* expr* +[] expr* expr* +[] elem* elem* +[] elem* elem* +[] valtype* valtype^n +[] local** local** +[] local* local* +[] local** local** +[] local* local* +[] local** local** +[] local* local* +[] local** local** +[] local* local* +[] code* code* +[] code* code* +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] byte* byte* +[] data* data* +[] data* data* +[] tag* tag* +[] tag* tag* +[] type* type* +[] import* import* +[] typeidx* typeidx* +[] table* table* +[] mem* mem* +[] tag* tag* +[] global* global* +[] export* export* +[] start? start? +[] elem* elem* +[] nat? nat? +[] n? nat? +[] expr* expr* +[] local** local** +[] local* local* +[] data* data* +[] type* type* +[] import* import* +[] tag* tag* +[] global* global* +[] mem* mem* +[] table* table* +[] func* func* +[] data* data* +[] elem* elem* +[] start? start? +[] export* export* +[] n? nat? +[] data* data* +[] data* data* +[] n? n? +[] n? n? +[] func* func* +[] func* func* +[] expr* expr* +[] expr* expr* +[] func* func* +[] local** local** +[] local** local** +[] typeidx* typeidx* +[] typeidx* typeidx* +[] local* local* +[] byte** byte** +[] byte* byte* +[] byte** byte** +[] byte* byte* +[] byte** byte** +[] byte* byte* +[] byte** byte** +[] byte* byte* +[] byte* byte* +[] char* char* +[] byte* byte* +[] byte* byte* +[] char* char* +[] char* char* +[] char* char* +[] char* char* +[] char* char* +[] char* char* +[] char* char* +[] el* el* +[] el* el* +[] el* el* +[] el* el* +[] I* idctxt* +[] I* idctxt* +[] char** char** +[] char** char** +[] char* char* +[] char** char** +[] char** char** +[] char** char** +[] char** char** +[] char* char* +[] null? null? +[] null? null? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char** char** +[] fieldtype* fieldtype* +[] char?* char?* +[] char? char? +[] fieldtype* fieldtype* +[] char** char** +[] char?* char?* +[] char? char? +[] char** char** +[] char?* char?* +[] valtype* valtype* +[] char? char? +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] final? final? +[] idx* typeidx* +[] final? final? +[] typeidx* typeidx* +[] idx* typeidx* +[] char? char? +[] char? char? +[] I* idctxt* +[] subtype* subtype* +[] subtype* subtype* +[] I* idctxt* +[] subtype* subtype* +[] subtype* subtype* +[] subtype* subtype* +[] subtype* subtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] char** char*^|t_1*{}| +[] char** char** +[] char?* char?* +[] valtype* valtype* +[] char? char? +[] valtype* valtype* +[] subtype* subtype* +[] subtype* subtype* +[] subtype* subtype* +[] subtype* subtype* +[] valtype* valtype* +[] valtype* valtype* +[] char** char** +[] char?* char?* +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] valtype? valtype? +[] valtype? valtype? +[] char** char** +[] valtype*? valtype*? +[] valtype* valtype* +[] valtype*? valtype*? +[] valtype* valtype* +[] labelidx* labelidx* +[] labelidx* labelidx* +[] char** char** +[] char** char** +[] u8* u8* +[] u8* iN(8)* +[] u16* u16* +[] u16* iN(16)* +[] u32* u32* +[] u32* iN(32)* +[] u64* u64* +[] u64* iN(64)* +[] f32* f32* +[] f32* fN(32)* +[] f64* f64* +[] f64* fN(64)* +[] laneidx* laneidx* +[] laneidx* laneidx* +[] instr* instr* +[] instr* instr* +[] instr** instr** +[] instr* instr* +[] instr** instr** +[] instr* instr* +[] char? char? +[] instr* instr* +[] char? char? +[] instr* instr* +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] instr* instr* +[] char? char? +[] instr* instr* +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] instr* instr* +[] char? char? +[] instr* instr* +[] char? char? +[] instr* instr* +[] instr* instr* +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] catch* catch* +[] instr* instr* +[] char? char? +[] catch* catch* +[] instr* instr* +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] instr* instr* +[] instr* instr* +[] subtype* subtype^n +[] n* n^n +[] rectype* rectype^n +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] char? char? +[] I* idctxt* +[] local** local** +[] local* local* +[] local** local** +[] local* local* +[] char? char? +[] I* idctxt* +[] byte** byte** +[] byte* byte* +[] byte** byte** +[] byte* byte* +[] char? char? +[] byte* byte* +[] byte* byte* +[] char? char? +[] char? char? +[] byte* byte* +[] byte* byte* +[] char? char? +[] expr* expr* +[] expr* expr* +[] char? char? +[] expr* expr* +[] expr* expr* +[] char? char? +[] char? char? +[] expr* expr* +[] expr* expr* +[] char? char? +[] char? char? +[] expr* expr* +[] expr* expr* +[] char? char? +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] decl* decl* +[] I* idctxt* +[] decl* decl* +[] type* type* +[] import* import* +[] tag* tag* +[] global* global* +[] mem* mem* +[] table* table* +[] func* func* +[] data* data* +[] elem* elem* +[] start? start? +[] export* export* +[] I* idctxt* +[] type* type* +[] type* type* +[] decl* decl* +[] import* import* +[] import* import* +[] decl* decl* +[] tag* tag* +[] tag* tag* +[] decl* decl* +[] global* global* +[] global* global* +[] decl* decl* +[] mem* mem* +[] mem* mem* +[] decl* decl* +[] table* table* +[] table* table* +[] decl* decl* +[] func* func* +[] func* func* +[] decl* decl* +[] data* data* +[] data* data* +[] decl* decl* +[] elem* elem* +[] elem* elem* +[] decl* decl* +[] start? start? +[] start? start? +[] decl* decl* +[] export* export* +[] export* export* +[] decl* decl* +[] decl* decl* +[] instr* instr* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] valtype* valtype* +[] instr* instr* +[] valtype* valtype* +[] valtype* valtype* +[] X* X* +[] Y* Y* +[] addr* addr* +[] addr* addr* +[] addr* addr* +[] X* X* +[] Y* Y* == Complete. ``` diff --git a/spectec/test-frontend/test.spectec b/spectec/test-frontend/test.spectec index 14b46a4ec8..d170e52544 100644 --- a/spectec/test-frontend/test.spectec +++ b/spectec/test-frontend/test.spectec @@ -116,6 +116,9 @@ def $testemptyn6(eps 0) = 0 def $testemptyn6(0) = 0 def $testemptyn6("" 0) = 0 def $testemptyn6("" "" "" 0) = 0 +def $testemptyn6([] 0) = 0 +def $testemptyn6([""] 0) = 0 +def $testemptyn6(["" "" ""] 0) = 0 def $testemptyn6(([]) 0) = 0 def $testemptyn6(([""]) 0) = 0 def $testemptyn6((["" "" ""]) 0) = 0 From 0a5dd163906ab6cec76f8b72ff38380311f950aa Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Mon, 19 Jan 2026 14:53:50 +0100 Subject: [PATCH 14/23] Deactivate quantifier args --- ...dules.spectec => 6.4-text.modules.spectec} | 0 spectec/src/frontend/det.ml | 6 +- spectec/src/frontend/dim.ml | 10 +- spectec/src/frontend/dim.mli | 1 + spectec/src/frontend/elab.ml | 105 ++++---- spectec/src/il/iter.ml | 16 +- spectec/src/il/valid.ml | 245 +++++++++--------- 7 files changed, 200 insertions(+), 183 deletions(-) rename specification/wasm-3.0/{6.3-text.modules.spectec => 6.4-text.modules.spectec} (100%) diff --git a/specification/wasm-3.0/6.3-text.modules.spectec b/specification/wasm-3.0/6.4-text.modules.spectec similarity index 100% rename from specification/wasm-3.0/6.3-text.modules.spectec rename to specification/wasm-3.0/6.4-text.modules.spectec diff --git a/spectec/src/frontend/det.ml b/spectec/src/frontend/det.ml index 00cb5ca031..a9968c9cd2 100644 --- a/spectec/src/frontend/det.ml +++ b/spectec/src/frontend/det.ml @@ -5,6 +5,7 @@ open Il.Free include Xl.Gen_free let det_list = free_list +let det_list_dep = free_list_dep (* Iterations *) @@ -25,10 +26,11 @@ and det_typ t = match t.it with | VarT (_x, as_) -> det_list det_arg as_ | BoolT | NumT _ | TextT -> empty - | TupT xts -> det_list det_typbind xts + | TupT xts -> det_list_dep det_typbind bound_typbind xts | IterT (t1, iter) -> det_typ t1 ++ det_iter iter -and det_typbind (x, t) = bound_varid x ++ det_typ t +and det_typbind (_x, t) = det_typ t +and bound_typbind (x, _t) = bound_varid x (* Expressions *) diff --git a/spectec/src/frontend/dim.ml b/spectec/src/frontend/dim.ml index c950598883..9296739c9f 100644 --- a/spectec/src/frontend/dim.ml +++ b/spectec/src/frontend/dim.ml @@ -492,8 +492,9 @@ and annot_exp side dims e : exp * occur = let e2', occur2 = annot_exp side dims e2 in BinE (op, nt, e1', e2'), union occur1 occur2 | CmpE (op, nt, e1, e2) -> - let e1', occur1 = annot_exp side dims e1 in - let e2', occur2 = annot_exp side dims e2 in + let side' = if op = `EqOp then `Lhs else side in + let e1', occur1 = annot_exp side' dims e1 in + let e2', occur2 = annot_exp side' dims e2 in CmpE (op, nt, e1', e2'), union occur1 occur2 | IdxE (e1, e2) -> let e1', occur1 = annot_exp side dims e1 in @@ -721,7 +722,10 @@ let annot_arg = annot_top annot_arg let annot_param = annot_top annot_param -(* Restriction *) +(* Environment manipulation *) + +let union dims1 dims2 = + Map.union (fun _ _ y -> Some y) dims1 dims2 let restrict dims bound = Map.filter Il.Free.(fun x _ -> Set.mem x bound.varid) dims diff --git a/spectec/src/frontend/dim.mli b/spectec/src/frontend/dim.mli index f358818ff3..939231e6db 100644 --- a/spectec/src/frontend/dim.mli +++ b/spectec/src/frontend/dim.mli @@ -20,4 +20,5 @@ val annot_prem : dims -> prem -> prem val annot_arg : dims -> arg -> arg val annot_param : dims -> param -> param +val union : dims -> dims -> dims val restrict : dims -> Il.Free.sets -> dims diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index 4e5ce4610c..ae0f1c1201 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -409,7 +409,7 @@ let make_quants_iter_arg env (free : Il.Free.sets) dims : Il.quant list ref * (m let scope_enter x t = Printf.printf "[scope_enter %s]\n%!" x.it; let varenv = env.vars in - env.vars <- bind "variable" env.vars x t; + if x.it <> "_" then env.vars <- Map.add x.it (x.at, t) env.vars; varenv let scope_exit x varenv = @@ -498,7 +498,9 @@ let infer_quants env env' dims det ps' as' ts' es' gs' prs' at : Il.quant list = let env' = annot_env env' dims in Debug.(log_at "il.infer_quants" at (fun _ -> +Printf.sprintf "\n ps'=[%s]" Il.Debug.(list il_param ps') ^ Printf.sprintf "\n as'=[%s]" Il.Debug.(list il_arg as') ^ +Printf.sprintf "\n ts'=[%s]" Il.Debug.(list il_typ ts') ^ Printf.sprintf "\n es'=[%s]" Il.Debug.(list il_exp es') ^ Printf.sprintf "\n gs'=[%s]" Il.Debug.(list il_sym gs') ^ Printf.sprintf "\n prs'=[%s]" Il.Debug.(list il_prem prs') ^ @@ -774,8 +776,8 @@ let expand_notation env t = Il.Eval.(match_list match_arg (to_il_env env) Il.Subst.empty as' as_) |> Option.map (fun s -> let mixop, (qs, t, _prems), _ = Il.Subst.subst_typcase s tc in - let qs', s' = refresh_quants env qs in - let t' = Il.Subst.subst_typ s' t in + let qs', _s' = refresh_quants env qs in + let t' = (*Il.Subst.subst_typ s'*) t in qs', t', mixop, Mixop.apply mixop (untup_typ' t') ) | _, _ -> None @@ -1305,20 +1307,25 @@ and elab_typenum env outer_dims tid (te : typenum) : Il.typ * (Il.exp -> numtyp and elab_typ_notation env outer_dims tid at (t : typ) (prems : prem nl_list) : Il.mixop * Il.quant list * Il.typ * Il.prem list = assert (valid_tid tid); - let env' = local_env env in - let mixop, xts' = elab_typ_notation' env' tid t in + let env1 = local_env env in + let mixop, xts' = elab_typ_notation' env1 tid t in let xs', ts' = List.split xts' in - let prems' = List.concat (map_filter_nl_list (elab_prem env') prems) in + let dims1 = Dim.check outer_dims [] [] ts' [] [] [] in + let ts' = List.map (Dim.annot_typ dims1) ts' in + let t' = Il.TupT (List.combine xs' ts') $ t.at in + let det1 = Det.det_typ t' in + infer_no_quants env dims1 det1 [] [] [t'] [] [] [] at; + + let env2 = local_env env1 in + let prems' = List.concat (map_filter_nl_list (elab_prem env2) prems) in Printf.printf "--- 1 ---\n%!"; - let dims = Dim.check outer_dims [] [] ts' [] [] prems' in + let dims2 = Dim.check (Dim.union outer_dims dims1) [] [] [] [] [] prems' in Printf.printf "--- 2 ---\n%!"; - let ts' = List.map (Dim.annot_typ dims) ts' in - let prems' = List.map (Dim.annot_prem dims) prems' in + let prems' = List.map (Dim.annot_prem dims2) prems' in Printf.printf "--- 3 ---\n%!"; - let t' = Il.TupT (List.combine xs' ts') $ t.at in - let det = Det.(det_typ t' ++ det_list det_prem prems') in + let det2 = Det.(det_list det_prem prems') in Printf.printf "--- 4 ---\n%!"; - let qs = infer_quants env env' dims det [] [] [t'] [] [] prems' at in + let qs = infer_quants env1 env2 dims2 det2 [] [] [] [] [] prems' at in mixop, qs, t', prems' (* Debug.(log_in_at "il.infer_quants" at @@ -1534,10 +1541,10 @@ and infer_exp' env e : (Il.exp' * Il.typ') attempt = if dots = Dots then error e1.at "used record type is only partially defined at this point"; let* _, (qs, tF, prems), _ = attempt (find_field tfs atom e1.at) t1 in - let qs', s = refresh_quants env qs in - let qas' = il_args_of_params qs' in - let tF' = Il.Subst.subst_typ s tF in - let e' = Il.DotE (e1', elab_atom atom (expand_id env t1), qas') in + let qs', _s = refresh_quants env qs in + let _qas' = il_args_of_params qs' in + let tF' = (*Il.Subst.subst_typ s*) tF in + let e' = Il.DotE (e1', elab_atom atom (expand_id env t1), [](*qas'*)) in let e'' = if prems = [] then e' else Il.ProjE (e' $$ e.at % tF', 0) in Ok (e'', tF'.it) | CommaE (e1, e2) -> @@ -1825,18 +1832,18 @@ and elab_expfields env tid (efs : expfield list) (tfs : Il.typfield list) (t0 : | [], [] -> Ok [] | (atom1, e)::efs2, (atom2, (qs, tF, prems), _)::tfs2 when atom1.it = atom2.it -> let* e' = elab_exp env e tF in - let qs', s = refresh_quants env qs in - let* efs2' = elab_expfields env tid efs2 (List.map (Il.Subst.subst_typfield s) tfs2) t0 at in + let _qs', _s = refresh_quants env qs in + let* efs2' = elab_expfields env tid efs2 ((*List.map (Il.Subst.subst_typfield s)*) tfs2) t0 at in let e' = if prems = [] then e' else tup_exp' [e'] e.at in - Ok ((elab_atom atom1 tid, il_args_of_params qs', e') :: efs2') + Ok ((elab_atom atom1 tid, [](*il_args_of_params qs'*), e') :: efs2') | _, (atom, (qs, t, prems), _)::tfs2 -> let atom' = string_of_atom atom in - let qs', s = refresh_quants env qs in - let t' = Il.Subst.subst_typ s t in + let _qs', _s = refresh_quants env qs in + let t' = (*Il.Subst.subst_typ s*) t in let* e1' = cast_empty ("omitted record field `" ^ atom' ^ "`") env t' at in let e' = if prems = [] then e1' else tup_exp' [e1'] at in let* efs2' = elab_expfields env tid efs tfs2 t0 at in - Ok ((elab_atom atom tid, il_args_of_params qs', e') :: efs2') + Ok ((elab_atom atom tid, [](*il_args_of_params qs'*), e') :: efs2') | (atom, e)::_, [] -> fail_atom e.at atom t0 "undefined or misplaced record field" @@ -1873,8 +1880,8 @@ and elab_exp_notation env tid (e : exp) (qs, t1, mixop, not) t : Il.exp attempt (* Convert notation into applications of mixin operators *) assert (valid_tid tid); let* es', s = elab_exp_notation' env tid e not in - let qas' = Il.Subst.subst_args s (il_args_of_params qs) in - Ok (Il.CaseE (mixop, qas', Il.TupE es' $$ e.at % t1) $$ e.at % t) + let _qas' = Il.Subst.subst_args s (il_args_of_params qs) in + Ok (Il.CaseE (mixop, [](*qas'*), Il.TupE es' $$ e.at % t1) $$ e.at % t) and elab_exp_notation' env tid (e : exp) not : (Il.exp list * Il.Subst.t) attempt = Debug.(log_at "el.elab_exp_notation" e.at @@ -2069,12 +2076,12 @@ and elab_exp_variant env tid (e : exp) (tcs : Il.typcase list) t at : Il.exp att in let* atom = head e in let* mixop, (qs, tC, _prems), _ = attempt (find_case_atom tcs atom atom.at) t in - let qs', s = refresh_quants env qs in - let* xts = as_tup_typ "tuple" env Check (Il.Subst.subst_typ s tC) e.at in + let qs', _s = refresh_quants env qs in + let* xts = as_tup_typ "tuple" env Check ((*Il.Subst.subst_typ s*) tC) e.at in let not = Mixop.apply mixop xts in let* es', s = elab_exp_notation' env tid e not in - let qas' = Il.Subst.subst_args s (il_args_of_params qs') in - Ok (Il.CaseE (mixop, qas', tup_exp' es' e.at) $$ at % t) + let _qas' = Il.Subst.subst_args s (il_args_of_params qs') in + Ok (Il.CaseE (mixop, [](*qas'*), tup_exp' es' e.at) $$ at % t) (* @@ -2108,10 +2115,10 @@ and elab_path' env (p : path) (t : Il.typ) : (Il.path' * Il.typ) attempt = if dots = Dots then error p1.at "used record type is only partially defined at this point"; let* _, (qs, tF, _prems), _ = attempt (find_field tfs atom p1.at) t1 in - let qs', s = refresh_quants env qs in - let qas' = il_args_of_params qs' in - let tF' = Il.Subst.subst_typ s tF in - Ok (Il.DotP (p1', elab_atom atom (expand_id env t1), qas'), tF') + let qs', _s = refresh_quants env qs in + let _qas' = il_args_of_params qs' in + let tF' = (*Il.Subst.subst_typ s*) tF in + Ok (Il.DotP (p1', elab_atom atom (expand_id env t1), [](*qas'*)), tF') and cast_empty phrase env (t : Il.typ) at : Il.exp attempt = @@ -2171,22 +2178,22 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = (match expand_def env t1', expand_def env t2' with | (Il.VariantT [mixop1, (qs1, tC1, _), _], NoDots), (Il.VariantT [mixop2, (qs2, tC2, _), _], NoDots) -> - let qs1', s1 = refresh_quants env qs1 in - let qs2', s2 = refresh_quants env qs2 in - let tC1' = Il.Subst.subst_typ s1 tC1 in - let tC2' = Il.Subst.subst_typ s2 tC2 in - let qas1' = il_args_of_params qs1' in - let qas2' = il_args_of_params qs2' in + let qs1', _s1 = refresh_quants env qs1 in + let qs2', _s2 = refresh_quants env qs2 in + let tC1' = (*Il.Subst.subst_typ s1*) tC1 in + let tC2' = (*Il.Subst.subst_typ s2*) tC2 in + let _qas1' = il_args_of_params qs1' in + let _qas2' = il_args_of_params qs2' in if mixop1 = mixop2 then ( (* Two ConT's with the same operator can be cast pointwise *) let ts1 = match tC1'.it with Il.TupT xts -> List.map snd xts | _ -> [tC1'] in let ts2 = match tC2'.it with Il.TupT xts -> List.map snd xts | _ -> [tC2'] in - let e'' = Il.UncaseE (e', mixop1, qas1') $$ e'.at % tC1' in + let e'' = Il.UncaseE (e', mixop1, [](*qas1'*)) $$ e'.at % tC1' in let es' = List.mapi (fun i t1I -> Il.ProjE (e'', i) $$ e''.at % t1I) ts1 in let* es'' = map2_attempt (fun eI' (t1I, t2I) -> cast_exp phrase env eI' t1I t2I) es' (List.combine ts1 ts2) in - Ok (Il.CaseE (mixop2, qas2', tup_exp' es'' e'.at)) + Ok (Il.CaseE (mixop2, [](*qas2'*), tup_exp' es'' e'.at)) ) else ( @@ -2202,7 +2209,7 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = ) in match expand env tC1' with | Il.TupT [_, t11'] -> - let e'' = Il.UncaseE (e', mixop1, qas1') $$ e'.at % t11' in + let e'' = Il.UncaseE (e', mixop1, [](*qas1'*)) $$ e'.at % t11' in cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t11') t11' t2' | _ -> fail_typ2 env e'.at phrase t1 t2 "" ) @@ -2263,12 +2270,12 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = (il_typ (reduce env t2)) ) ); - let qs1', s1 = refresh_quants env qs1 in - let tC1' = Il.Subst.subst_typ s1 tC1 in - let qas1' = il_args_of_params qs1' in + let qs1', _s1 = refresh_quants env qs1 in + let tC1' = (*Il.Subst.subst_typ s1*) tC1 in + let _qas1' = il_args_of_params qs1' in match expand env tC1' with | Il.TupT [_, t11'] -> - let e'' = Il.UncaseE (e', mixop1, qas1') $$ e'.at % t11' in + let e'' = Il.UncaseE (e', mixop1, [](*qas1'*)) $$ e'.at % t11' in cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t11') t11' t2' | _ -> fail_typ2 env e'.at phrase t1 t2 "" ); @@ -2282,13 +2289,13 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = (match expand_def env t2' with | Il.VariantT [mixop2, (qs2, tC2, _), _], NoDots -> (* A ConT payload can be cast to the ConT *) - let qs2', s2 = refresh_quants env qs2 in - let tC2' = Il.Subst.subst_typ s2 tC2 in - let qas2' = il_args_of_params qs2' in + let qs2', _s2 = refresh_quants env qs2 in + let tC2' = (*Il.Subst.subst_typ s2*) tC2 in + let _qas2' = il_args_of_params qs2' in (match expand env tC2' with | Il.TupT [_, t21'] -> let* e1' = cast_exp phrase env e' t1' t21' in - Ok (Il.CaseE (mixop2, qas2', Il.TupE [e1'] $$ e'.at % tC2')) + Ok (Il.CaseE (mixop2, [](*qas2'*), Il.TupE [e1'] $$ e'.at % tC2')) | _ -> fail_typ2 env e'.at phrase t1 t2 "" ) diff --git a/spectec/src/il/iter.ml b/spectec/src/il/iter.ml index f872202931..3526649d1a 100644 --- a/spectec/src/il/iter.ml +++ b/spectec/src/il/iter.ml @@ -120,13 +120,19 @@ and dots _ = () and numtyp _nt = () and optyp = function #Bool.typ -> () | #Num.typ as nt -> numtyp nt -and typ t = +and typ ?(prems = []) t = visit_typ t; match t.it with | VarT (x, as_) -> typid x; args as_ | BoolT | TextT -> () | NumT nt -> numtyp nt - | TupT ets -> list (pair varid typ) ets + | TupT [] -> list prem prems + | TupT ((x, t)::xts) -> + typ t; + let scope = scope_enter x t in + varid x; + typ (TupT xts $ t.at) ~prems; + scope_exit x scope | IterT (t1, it) -> typ t1; iter it and deftyp t = @@ -136,8 +142,10 @@ and deftyp t = | StructT tfs -> list typfield tfs | VariantT tcs -> list typcase tcs -and typfield (at, (ps, t, prs), hs) = atom at; params ps; typ t; prems prs; hints hs -and typcase (op, (ps, t, prs), hs) = mixop op; params ps; typ t; prems prs; hints hs +and typfield (at, (ps, t, prems), hs) = + atom at; params ps; typ t ~prems; hints hs +and typcase (op, (ps, t, prems), hs) = + mixop op; params ps; typ t ~prems; hints hs (* Expressions *) diff --git a/spectec/src/il/valid.ml b/spectec/src/il/valid.ml index 9fbd23ff04..64ed471500 100644 --- a/spectec/src/il/valid.ml +++ b/spectec/src/il/valid.ml @@ -12,8 +12,6 @@ let error at msg = Error.error at "validation" msg (* Environment *) -let local_env envr = ref !envr - let find_field fs atom at = match List.find_opt (fun (atom', _, _) -> Eq.eq_atom atom' atom) fs with | Some (_, x, _) -> x @@ -178,6 +176,10 @@ let valid_list valid_x_y env xs ys at = string_of_int (List.length ys) ^ ", got " ^ string_of_int (List.length xs)); List.iter2 (valid_x_y env) xs ys +let rec valid_binders valid_x env xs : Env.t = + match xs with + | [] -> env + | x::xs -> valid_binders valid_x (valid_x env x) xs let rec valid_iter ?(side = `Rhs) env iter : Env.t = match iter with @@ -208,48 +210,51 @@ Printf.printf "[] %s %s\n%!" (Debug.il_typ t) (Debug.il_typ e.note); (* Types *) -and valid_typ env t = +and valid_typ env t = ignore (valid_typ_bind env t) + +and valid_typ_bind env t : Env.t = Debug.(log_at "il.valid_typ" t.at (fun _ -> fmt "%s" (il_typ t)) (Fun.const "ok") ) @@ fun _ -> match t.it with | VarT (id, as_) -> let ps, _insts = Env.find_typ env id in - ignore (valid_args env as_ ps Subst.empty t.at) + ignore (valid_args env as_ ps Subst.empty t.at); + env | BoolT | NumT _ | TextT -> - () + env | TupT [] -> - () - | TupT ((x, t)::xts) -> - valid_typ env t; - valid_typ (Env.bind_var env x t) (TupT xts $ t.at) + env + | TupT ((x1, t1)::xts) -> + valid_typ env t1; + valid_typ_bind (Env.bind_var env x1 t1) (TupT xts $ t.at) | IterT (t1, iter) -> match iter with | ListN (e, _) -> error e.at "definite iterator not allowed in type" | _ -> let env' = valid_iter env iter in - valid_typ env' t1 + valid_typ env' t1; + env -and valid_deftyp envr dt = +and valid_deftyp env dt = match dt.it with | AliasT t -> - valid_typ !envr t + valid_typ env t | StructT tfs -> check_mixops "record" "field" (List.map (fun (atom, _, _) -> Mixop.Atom atom) tfs) dt.at; - List.iter (valid_typfield envr) tfs + List.iter (valid_typfield env) tfs | VariantT tcs -> check_mixops "variant" "case" (List.map (fun (op, _, _) -> op) tcs) dt.at; - List.iter (valid_typcase envr) tcs + List.iter (valid_typcase env) tcs -and valid_typfield envr (_atom, (qs, t, prems), _hints) = - let envr' = local_env envr in - List.iter (valid_quant envr') qs; - valid_typ !envr' t; - List.iter (valid_prem !envr') prems +and valid_typfield env (_atom, (qs, t, prems), _hints) = + let env' = valid_typ_bind env t in + let env'' = valid_quants env' qs in + List.iter (valid_prem env'') prems -and valid_typcase envr (mixop, (qs, t, prems), _hints) = +and valid_typcase env (mixop, (qs, t, prems), _hints) = Debug.(log_at "il.valid_typcase" t.at (fun _ -> fmt "%s %s" (il_quants qs) (il_typ t)) (fun _ -> "ok") @@ -261,11 +266,10 @@ and valid_typcase envr (mixop, (qs, t, prems), _hints) = in if Mixop.arity mixop <> arity then error t.at ("inconsistent arity in mixin notation, `" ^ string_of_mixop mixop ^ - "` applied to " ^ typ_string !envr t); - let envr' = local_env envr in - List.iter (valid_quant envr') qs; - valid_typ !envr' t; - List.iter (valid_prem !envr') prems + "` applied to " ^ typ_string env t); + let env' = valid_typ_bind env t in + let env'' = valid_quants env' qs in + List.iter (valid_prem env'') prems (* Expressions *) @@ -289,11 +293,11 @@ and infer_exp (env : Env.t) e : typ = | ExtE (e1, _, _) | CompE (e1, _) -> infer_exp env e1 | StrE _ -> error e.at "cannot infer type of record" - | DotE (e1, atom, as_) -> + | DotE (e1, atom, _as_) -> let tfs = as_struct_typ "expression" env Infer (infer_exp env e1) e1.at in - let qs, t, _prems = find_field tfs atom e1.at in - let s = valid_args env as_ qs Subst.empty e.at in - Subst.subst_typ s t + let _qs, t, _prems = find_field tfs atom e1.at in + (*let s = valid_args env as_ qs Subst.empty e.at in + Subst.subst_typ s*) t | TupE es -> TupT (List.map (fun eI -> "_" $ eI.at, infer_exp env eI) es) $ e.at | CallE (x, as_) -> @@ -307,12 +311,12 @@ and infer_exp (env : Env.t) e : typ = let t1 = infer_exp env e1 in let xts = as_tup_typ "expression" env Infer t1 e1.at in proj_tup_typ i xts e1 e.at - | UncaseE (e1, op, as_) -> + | UncaseE (e1, op, _as_) -> let t1 = infer_exp env e1 in (match as_variant_typ "expression" env Infer t1 e1.at with - | [(op', (qs, t, _), _)] when Eq.eq_mixop op op' -> - let s = valid_args env as_ qs Subst.empty e.at in - Subst.subst_typ s t + | [(op', (_qs, t, _), _)] when Eq.eq_mixop op op' -> + (*let s = valid_args env as_ qs Subst.empty e.at in + Subst.subst_typ s*) t | _ -> error e.at "invalid case projection"; ) | OptE _ -> error e.at "cannot infer type of option" @@ -411,13 +415,13 @@ try | StrE efs -> let tfs = as_struct_typ "record" env Check t e.at in valid_list (valid_expfield ~side) env efs tfs e.at - | DotE (e1, atom, as_) -> + | DotE (e1, atom, _as_) -> let t1 = infer_exp env e1 in valid_exp env e1 t1; let tfs = as_struct_typ "expression" env Check t1 e1.at in - let qs, t', _prems = find_field tfs atom e1.at in - let s = valid_args env as_ qs Subst.empty e.at in - equiv_typ env (Subst.subst_typ s t') t e.at + let _qs, t', _prems = find_field tfs atom e1.at in + (*let s = valid_args env as_ qs Subst.empty e.at in*) + equiv_typ env ((*Subst.subst_typ s*) t') t e.at | CompE (e1, e2) -> let _ = as_comp_typ "expression" env Check t e.at in valid_exp env e1 t; @@ -461,13 +465,13 @@ try let side' = if List.length xts > 1 then `Rhs else side in valid_exp ~side:side' env e1 (TupT xts $ t1.at); equiv_typ env (proj_tup_typ i xts e1 e.at) t e.at - | UncaseE (e1, op, as_) -> + | UncaseE (e1, op, _as_) -> let t1 = infer_exp env e1 in valid_exp ~side env e1 t1; (match as_variant_typ "expression" env Infer t1 e1.at with - | [(op', (qs, t', _), _)] when Eq.eq_mixop op op' -> - let s = valid_args env as_ qs Subst.empty e.at in - equiv_typ env (Subst.subst_typ s t') t e.at + | [(op', (_qs, t', _), _)] when Eq.eq_mixop op op' -> + (*let s = valid_args env as_ qs Subst.empty e.at in*) + equiv_typ env ((*Subst.subst_typ s*) t') t e.at | _ -> error e.at "invalid case projection"; ) | OptE eo -> @@ -490,11 +494,11 @@ try let _typ1 = as_iter_typ List "list" env Check t e.at in valid_exp env e1 t; valid_exp env e2 t - | CaseE (op, as_, e1) -> + | CaseE (op, _as_, e1) -> let cases = as_variant_typ "case" env Check t e.at in - let qs, t1, _prems = find_case cases op e1.at in - let s = valid_args env as_ qs Subst.empty e.at in - valid_exp ~side env e1 (Subst.subst_typ s t1) + let _qs, t1, _prems = find_case cases op e1.at in + (*let s = valid_args env as_ qs Subst.empty e.at in*) + valid_exp ~side env e1 ((*Subst.subst_typ s*) t1) | CvtE (e1, nt1, nt2) -> valid_exp ~side env e1 (NumT nt1 $ e1.at); equiv_typ env (NumT nt2 $e.at) t e.at; @@ -526,8 +530,8 @@ and valid_expfield ~side env (atom1, as_, e) (atom2, (qs, t, _prems), _) = ) ); if not (Eq.eq_atom atom1 atom2) then error e.at "unexpected record field"; - let s = valid_args env as_ qs Subst.empty e.at in - valid_exp ~side env e (Subst.subst_typ s t) + (*let s = valid_args env as_ qs Subst.empty e.at in*) + valid_exp ~side env e ((*Subst.subst_typ s*) t) and valid_path env p t : typ = valid_typ env t; @@ -544,12 +548,12 @@ and valid_path env p t : typ = valid_exp env e2 (NumT `NatT $ e2.at); let _ = as_list_typ "path" env Check t1 p1.at in t1 - | DotP (p1, atom, as_) -> + | DotP (p1, atom, _as_) -> let t1 = valid_path env p1 t in let tfs = as_struct_typ "path" env Check t1 p1.at in - let qs, t, _prems = find_field tfs atom p1.at in - let s = valid_args env as_ qs Subst.empty p.at in - Subst.subst_typ s t + let _qs, t, _prems = find_field tfs atom p1.at in + (*let s = valid_args env as_ qs Subst.empty p.at in + Subst.subst_typ s*) t in equiv_typ env p.note t' p.at; t' @@ -664,51 +668,50 @@ and valid_args env as_ ps s at : Subst.t = let s' = valid_arg env a p s in valid_args env as' ps' s' at -and valid_param envr p = +and valid_param env p : Env.t = match p.it with | ExpP (x, t) -> - valid_typ !envr t; - envr := Env.bind_var !envr x t + valid_typ env t; + Env.bind_var env x t | TypP x -> - envr := Env.bind_typ !envr x ([], []) + Env.bind_typ env x ([], []) | DefP (x, ps, t) -> - let envr' = local_env envr in - List.iter (valid_param envr') ps; - valid_typ !envr' t; - envr := Env.bind_def !envr x (ps, t, []) + let env' = valid_params env ps in + valid_typ env' t; + Env.bind_def env x (ps, t, []) | GramP (x, ps, t) -> - let envr' = local_env envr in - List.iter (valid_param envr') ps; - valid_typ !envr' t; - envr := Env.bind_gram !envr x (ps, t, []) + let env' = valid_params env ps in + valid_typ env' t; + Env.bind_gram env x (ps, t, []) -and valid_quant envr q = valid_param envr q +and valid_quant env q = valid_param env q -let valid_inst envr ps inst = +and valid_params env ps = valid_binders valid_param env ps +and valid_quants env qs = valid_binders valid_quant env qs + +let valid_inst env ps inst = Debug.(log_in "il.valid_inst" line); Debug.(log_in_at "il.valid_inst" inst.at (fun _ -> fmt "(%s) = ..." (il_params ps)) ); match inst.it with | InstD (qs, as_, dt) -> - let envr' = local_env envr in - List.iter (valid_quant envr') qs; - let _s = valid_args !envr' as_ ps Subst.empty inst.at in - valid_deftyp envr' dt + let env' = valid_quants env qs in + let _s = valid_args env' as_ ps Subst.empty inst.at in + valid_deftyp env' dt -let valid_rule envr mixop t rule = +let valid_rule env mixop t rule = Debug.(log_in "il.valid_rule" line); Debug.(log_in_at "il.valid_rule" rule.at (fun _ -> fmt "%s : %s = ..." (il_mixop mixop) (il_typ t)) ); match rule.it with | RuleD (_x, qs, mixop', e, prems) -> - let envr' = local_env envr in - List.iter (valid_quant envr') qs; - valid_expmix ~side:`Lhs !envr' mixop' e (mixop, t) e.at; - List.iter (valid_prem !envr') prems + let env' = valid_quants env qs in + valid_expmix ~side:`Lhs env' mixop' e (mixop, t) e.at; + List.iter (valid_prem env') prems -let valid_clause envr x ps t clause = +let valid_clause env x ps t clause = Debug.(log_in "il.valid_clause" line); Debug.(log_in_at "il.valid_clause" clause.at (fun _ -> fmt ": (%s) -> %s" (il_params ps) (il_typ t)) @@ -716,79 +719,71 @@ let valid_clause envr x ps t clause = try match clause.it with | DefD (qs, as_, e, prems) -> - let envr' = local_env envr in - List.iter (valid_quant envr') qs; - let s = valid_args !envr' as_ ps Subst.empty clause.at in - valid_exp !envr' e (Subst.subst_typ s t); - List.iter (valid_prem !envr') prems + let env' = valid_quants env qs in + let s = valid_args env' as_ ps Subst.empty clause.at in + valid_exp env' e (Subst.subst_typ s t); + List.iter (valid_prem env') prems with exn -> let bt = Printexc.get_raw_backtrace () in Printf.eprintf "[valid_clause] %s\n%!" (Debug.il_clause x clause); Printexc.raise_with_backtrace exn bt -let valid_prod envr ps t prod = +let valid_prod env ps t prod = Debug.(log_in "il.valid_prod" line); Debug.(log_in_at "il.valid_prod" prod.at (fun _ -> fmt ": (%s) -> %s" (il_params ps) (il_typ t)) ); match prod.it with | ProdD (qs, g, e, prems) -> - let envr' = local_env envr in - List.iter (valid_quant envr') qs; - let _t' = valid_sym !envr' g in - valid_exp !envr' e t; - List.iter (valid_prem !envr') prems + let env' = valid_quants env qs in + let _t' = valid_sym env' g in + valid_exp env' e t; + List.iter (valid_prem env') prems -let infer_def envr d = +let infer_def env d : Env.t = match d.it with | TypD (x, ps, _insts) -> - let envr' = local_env envr in - List.iter (valid_param envr') ps; - envr := Env.bind_typ !envr x (ps, []) + let _env' = valid_params env ps in + Env.bind_typ env x (ps, []) | RelD (x, mixop, t, rules) -> - valid_typcase envr (mixop, ([], t, []), []); - envr := Env.bind_rel !envr x (mixop, t, rules) + valid_typ env t; + Env.bind_rel env x (mixop, t, rules) | DecD (x, ps, t, clauses) -> - let envr' = local_env envr in - List.iter (valid_param envr') ps; - valid_typ !envr' t; - envr := Env.bind_def !envr x (ps, t, clauses) + let env' = valid_params env ps in + valid_typ env' t; + Env.bind_def env x (ps, t, clauses) | GramD (x, ps, t, prods) -> - let envr' = local_env envr in - List.iter (valid_param envr') ps; - valid_typ !envr' t; - envr := Env.bind_gram !envr x (ps, t, prods) - | _ -> () + let env' = valid_params env ps in + valid_typ env' t; + Env.bind_gram env x (ps, t, prods) + | _ -> env -let rec valid_def envr d = +let rec valid_def env d : Env.t = Debug.(log_in "il.valid_def" line); Debug.(log_in_at "il.valid_def" d.at (fun _ -> il_def d)); match d.it with | TypD (x, ps, insts) -> - let envr' = local_env envr in - List.iter (valid_param envr') ps; - List.iter (valid_inst envr ps) insts; - envr := Env.bind_typ !envr x (ps, insts); + let env' = valid_params env ps in + List.iter (valid_inst env' ps) insts; + Env.bind_typ env x (ps, insts); | RelD (x, mixop, t, rules) -> - valid_typcase envr (mixop, ([], t, []), []); - List.iter (valid_rule envr mixop t) rules; - envr := Env.bind_rel !envr x (mixop, t, rules) + valid_typcase env (mixop, ([], t, []), []); + List.iter (valid_rule env mixop t) rules; + Env.bind_rel env x (mixop, t, rules) | DecD (x, ps, t, clauses) -> - let envr' = local_env envr in - List.iter (valid_param envr') ps; - valid_typ !envr' t; - List.iter (valid_clause envr x ps t) clauses; - envr := Env.bind_def !envr x (ps, t, clauses) + let env' = valid_params env ps in + valid_typ env' t; + List.iter (valid_clause env' x ps t) clauses; + Env.bind_def env x (ps, t, clauses) | GramD (x, ps, t, prods) -> - let envr' = local_env envr in - List.iter (valid_param envr') ps; - valid_typ !envr' t; - List.iter (valid_prod envr' ps t) prods; - envr := Env.bind_gram !envr x (ps, t, prods) + let env' = valid_params env ps in + valid_typ env' t; + List.iter (valid_prod env' ps t) prods; + Env.bind_gram env x (ps, t, prods) | RecD ds -> - List.iter (infer_def envr) ds; - List.iter (valid_def envr) ds; + let env' = valid_binders infer_def env ds in + let env' = valid_binders valid_def env' ds in List.iter (fun d -> match (List.hd ds).it, d.it with | HintD _, _ | _, HintD _ @@ -799,13 +794,13 @@ let rec valid_def envr d = | _, _ -> error (List.hd ds).at (" " ^ string_of_region d.at ^ ": invalid recursion between definitions of different sort") - ) ds + ) ds; + env' | HintD _ -> - () + env (* Scripts *) let valid ds = - let envr = ref Env.empty in - List.iter (valid_def envr) ds + ignore (valid_binders valid_def Env.empty ds) From c41eb8bbe31ab0a2ca68a001b8ca337d130584bf Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Mon, 19 Jan 2026 15:44:37 +0100 Subject: [PATCH 15/23] Remove quantifier args --- spectec/src/backend-ast/print.ml | 12 ++-- spectec/src/frontend/det.ml | 20 +++--- spectec/src/frontend/dim.ml | 44 +++++------- spectec/src/frontend/elab.ml | 96 ++++++++++---------------- spectec/src/il/ast.ml | 10 +-- spectec/src/il/eq.ml | 20 +++--- spectec/src/il/eval.ml | 56 +++++++-------- spectec/src/il/free.ml | 7 +- spectec/src/il/iter.ml | 10 +-- spectec/src/il/print.ml | 36 ++++------ spectec/src/il/subst.ml | 14 ++-- spectec/src/il/valid.ml | 40 +++++------ spectec/src/il2al/animate.ml | 4 +- spectec/src/il2al/encode.ml | 10 +-- spectec/src/il2al/free.ml | 11 ++- spectec/src/il2al/il2al_util.ml | 4 +- spectec/src/il2al/il_walk.ml | 8 +-- spectec/src/il2al/translate.ml | 38 +++++----- spectec/src/il2al/unify.ml | 24 +++---- spectec/src/middlend/sideconditions.ml | 13 ++-- spectec/src/middlend/sub.ml | 18 ++--- spectec/src/middlend/totalize.ml | 10 +-- spectec/src/middlend/unthe.ml | 13 ++-- 23 files changed, 226 insertions(+), 292 deletions(-) diff --git a/spectec/src/backend-ast/print.ml b/spectec/src/backend-ast/print.ml index 64fc502885..2881cfe170 100644 --- a/spectec/src/backend-ast/print.ml +++ b/spectec/src/backend-ast/print.ml @@ -109,7 +109,7 @@ and exp e = | UpdE (e1, p, e2) -> Node ("upd", [exp e1; path p; exp e2]) | ExtE (e1, p, e2) -> Node ("ext", [exp e1; path p; exp e2]) | StrE efs -> Node ("struct", List.map expfield efs) - | DotE (e1, at, as_) -> Node ("dot", [exp e1; mixop (Mixop.Atom at)] @ List.map arg as_) + | DotE (e1, at) -> Node ("dot", [exp e1; mixop (Mixop.Atom at)]) | CompE (e1, e2) -> Node ("comp", [exp e1; exp e2]) | MemE (e1, e2) -> Node ("mem", [exp e1; exp e2]) | LenE e1 -> Node ("len", [exp e1]) @@ -117,8 +117,8 @@ and exp e = | CallE (x, as1) -> Node ("call", id x :: List.map arg as1) | IterE (e1, it) -> Node ("iter", [exp e1] @ iterexp it) | ProjE (e1, i) -> Node ("proj", [exp e1; Atom (string_of_int i)]) - | CaseE (op, as_, e1) -> Node ("case", [mixop op] @ List.map arg as_ @ [exp e1]) - | UncaseE (e1, op, as_) -> Node ("uncase", [exp e1; mixop op] @ List.map arg as_) + | CaseE (op, e1) -> Node ("case", [mixop op; exp e1]) + | UncaseE (e1, op) -> Node ("uncase", [exp e1; mixop op]) | OptE eo -> Node ("opt", List.map exp (Option.to_list eo)) | TheE e1 -> Node ("unopt", [exp e1]) | ListE es -> Node ("list", List.map exp es) @@ -127,15 +127,15 @@ and exp e = | CvtE (e1, nt1, nt2) -> Node ("cvt", [numtyp nt1; numtyp nt2; exp e1]) | SubE (e1, t1, t2) -> Node ("sub", [typ t1; typ t2; exp e1]) -and expfield (at, as_, e) = - Node ("field", [mixop (Mixop.Atom at)] @ List.map arg as_ @ [exp e]) +and expfield (at, e) = + Node ("field", [mixop (Mixop.Atom at); exp e]) and path p = match p.it with | RootP -> Atom "root" | IdxP (p1, e) -> Node ("idx", [path p1; exp e]) | SliceP (p1, e1, e2) -> Node ("slice", [path p1; exp e1; exp e2]) - | DotP (p1, at, as_) -> Node ("dot", [path p1; mixop (Mixop.Atom at)] @ List.map arg as_) + | DotP (p1, at) -> Node ("dot", [path p1; mixop (Mixop.Atom at)]) and iterexp (it, xes) = iter it :: List.map (fun (x, e) -> Node ("dom", [id x; exp e])) xes diff --git a/spectec/src/frontend/det.ml b/spectec/src/frontend/det.ml index a9968c9cd2..509cee111e 100644 --- a/spectec/src/frontend/det.ml +++ b/spectec/src/frontend/det.ml @@ -50,7 +50,7 @@ and det_exp e = | BinE (#Xl.Num.binop, _, e1, e2) | CatE (e1, e2) -> det_exp e1 ++ det_exp e2 | OptE eo -> free_opt det_exp eo | ListE es | TupE es -> det_list det_exp es - | CaseE (_, as_, e1) | UncaseE (e1, _, as_) -> det_exp e1 ++ det_list det_arg as_ + | CaseE (_, e1) | UncaseE (e1, _) -> det_exp e1 | StrE efs -> det_list det_expfield efs | IterE (e1, ite) -> det_iterexp (det_exp e1) ite (* As a special hack to work with bijective functions, @@ -61,7 +61,7 @@ and det_exp e = | IdxE _ | SliceE _ | UpdE _ | ExtE _ | CompE _ | MemE _ | ProjE _ | DotE _ | LenE _ -> det_idx_exp e -and det_expfield (_, as_, e) = det_list det_quant_arg as_ ++ det_exp e +and det_expfield (_, e) = det_exp e and det_iterexp s1 (it, xes) = s1 -- free_list bound_varid (List.map fst xes) ++ @@ -90,8 +90,7 @@ and det_idx_exp e = ) @@ fun _ -> match e.it with | VarE _ -> empty - | LiftE e1 | SubE (e1, _, _) -> det_idx_exp e1 - | CaseE (_, as_, e1) -> det_list det_quant_arg as_ ++ det_idx_exp e1 + | LiftE e1 | SubE (e1, _, _) | CaseE (_, e1) -> det_idx_exp e1 | OptE eo -> free_opt det_idx_exp eo | ListE es | TupE es -> det_list det_idx_exp es | StrE efs -> det_list det_idx_expfield efs @@ -100,8 +99,8 @@ and det_idx_exp e = | IdxE (e1, e2) -> det_quant_exp e1 ++ det_exp e2 | _ -> det_quant_exp e -and det_idx_expfield (_, as_, e) = - det_list det_quant_arg as_ ++ det_idx_exp e +and det_idx_expfield (_, e) = + det_idx_exp e and det_idx_iter iter = match iter with @@ -133,16 +132,15 @@ and det_quant_exp e = det_quant_exp e1 ++ det_quant_exp e2 ++ det_quant_exp e3 | UpdE (e1, p, e2) | ExtE (e1, p, e2) -> det_quant_exp e1 ++ det_quant_path p ++ det_quant_exp e2 - | DotE (e1, _, as_) | CaseE (_, as_, e1) | UncaseE(e1, _, as_) -> - det_list det_arg as_ ++ det_quant_exp e1 + | DotE (e1, _) | CaseE (_, e1) | UncaseE (e1, _) -> det_quant_exp e1 | OptE eo -> free_opt det_quant_exp eo | ListE es | TupE es -> det_list det_quant_exp es | StrE efs -> det_list det_quant_expfield efs | IterE (e1, ite) -> det_quant_iterexp (det_quant_exp e1) ite | CallE (_, as_) -> det_list det_quant_arg as_ -and det_quant_expfield (_, as_, e) = - det_list det_quant_arg as_ ++ det_quant_exp e +and det_quant_expfield (_, e) = + det_quant_exp e and det_quant_iterexp s1 (it, xes) = s1 -- free_list bound_varid (List.map fst xes) ++ @@ -156,7 +154,7 @@ and det_quant_path p = | IdxP (p1, e) -> det_quant_path p1 ++ det_quant_exp e | SliceP (p1, e1, e2) -> det_quant_path p1 ++ det_quant_exp e1 ++ det_quant_exp e2 - | DotP (p1, _, as_) -> det_quant_path p1 ++ det_list det_quant_arg as_ + | DotP (p1, _) -> det_quant_path p1 and det_quant_iter iter = match iter with diff --git a/spectec/src/frontend/dim.ml b/spectec/src/frontend/dim.ml index 9296739c9f..ff031e534a 100644 --- a/spectec/src/frontend/dim.ml +++ b/spectec/src/frontend/dim.ml @@ -205,11 +205,10 @@ and check_exp dims ctx e = List.iter (check_exp dims ctx) es | StrE efs -> List.iter (check_expfield dims ctx) efs - | DotE (e1, _, as_) - | CaseE (_, as_, e1) - | UncaseE (e1, _, as_) -> - check_exp dims ctx e1; - List.iter (check_arg dims ctx) as_ + | DotE (e1, _) + | CaseE (_, e1) + | UncaseE (e1, _) -> + check_exp dims ctx e1 | CallE (_, as_) -> List.iter (check_arg dims ctx) as_ | IterE (e1, ite) -> @@ -219,9 +218,8 @@ and check_exp dims ctx e = check_typ dims ctx t1; check_typ dims ctx t2 -and check_expfield dims ctx (_, as_, e) = - List.iter (check_arg dims ctx) as_; - check_exp dims ctx e +and check_expfield dims ctx (_, e) = + check_exp dims ctx e and check_path dims ctx p = match p.it with @@ -233,9 +231,8 @@ and check_path dims ctx p = check_path dims ctx p1; check_exp dims ctx e1; check_exp dims ctx e2 - | DotP (p1, _, as_) -> - check_path dims ctx p1; - List.iter (check_arg dims ctx) as_ + | DotP (p1, _) -> + check_path dims ctx p1 and check_sym dims ctx g = match g.it with @@ -518,10 +515,9 @@ and annot_exp side dims e : exp * occur = | StrE efs -> let efs', occurs = List.split (List.map (annot_expfield side dims) efs) in StrE efs', List.fold_left union Map.empty occurs - | DotE (e1, atom, as_) -> + | DotE (e1, atom) -> let e1', occur1 = annot_exp side dims e1 in - let as', occurs = List.split (List.map (annot_arg dims) as_) in - DotE (e1', atom, as'), List.fold_left union occur1 occurs + DotE (e1', atom), occur1 | CompE (e1, e2) -> let e1', occur1 = annot_exp side dims e1 in let e2', occur2 = annot_exp side dims e2 in @@ -542,10 +538,9 @@ and annot_exp side dims e : exp * occur = | ProjE (e1, i) -> let e1', occur1 = annot_exp side dims e1 in ProjE (e1', i), occur1 - | UncaseE (e1, op, as_) -> + | UncaseE (e1, op) -> let e1', occur1 = annot_exp side dims e1 in - let as', occurs = List.split (List.map (annot_arg dims) as_) in - UncaseE (e1', op, as'), List.fold_left union occur1 occurs + UncaseE (e1', op), occur1 | OptE None -> OptE None, Map.empty | OptE (Some e1) -> @@ -568,10 +563,9 @@ and annot_exp side dims e : exp * occur = let e1', occur1 = annot_exp side dims e1 in let e2', occur2 = annot_exp side dims e2 in CatE (e1', e2'), union occur1 occur2 - | CaseE (atom, as_, e1) -> - let as', occurs = List.split (List.map (annot_arg dims) as_) in + | CaseE (atom, e1) -> let e1', occur1 = annot_exp side dims e1 in - CaseE (atom, as', e1'), List.fold_left union occur1 occurs + CaseE (atom, e1'), occur1 | CvtE (e1, nt1, nt2) -> let e1', occur1 = annot_exp side dims e1 in CvtE (e1', nt1, nt2), occur1 @@ -582,10 +576,9 @@ and annot_exp side dims e : exp * occur = SubE (e1', t1', t2'), union occur1 (union occur2 occur3) in {e with it}, occur -and annot_expfield side dims (atom, as_, e) : expfield * occur = - let as', occurs = List.split (List.map (annot_arg dims) as_) in +and annot_expfield side dims (atom, e) : expfield * occur = let e', occur = annot_exp side dims e in - (atom, as', e'), List.fold_left union occur occurs + (atom, e'), occur and annot_path dims p : path * occur = let it, occur = @@ -600,10 +593,9 @@ and annot_path dims p : path * occur = let e1', occur2 = annot_exp `Rhs dims e1 in let e2', occur3 = annot_exp `Rhs dims e2 in SliceP (p1', e1', e2'), union occur1 (union occur2 occur3) - | DotP (p1, atom, as_) -> + | DotP (p1, atom) -> let p1', occur1 = annot_path dims p1 in - let as', occurs = List.split (List.map (annot_arg dims) as_) in - DotP (p1', atom, as'), List.fold_left union occur1 occurs + DotP (p1', atom), occur1 in {p with it}, occur and annot_sym dims g : sym * occur = diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index ae0f1c1201..83836a881d 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -346,8 +346,6 @@ let il_arg_of_param p = | Il.GramP (id, _, _) -> Il.GramA (Il.VarG (id, []) $ id.at) ) $ p.at -let il_args_of_params = List.map il_arg_of_param - let to_il_var (_at, t) = t let to_il_def (_at, (ps, t, clauses)) = (ps, t, List.map snd clauses) let to_il_gram (_at, (ps, t, prods, _)) = (ps, t, List.map snd prods) @@ -1540,13 +1538,10 @@ and infer_exp' env e : (Il.exp' * Il.typ') attempt = let* tfs, dots = as_struct_typ "expression" env Infer t1 e1.at in if dots = Dots then error e1.at "used record type is only partially defined at this point"; - let* _, (qs, tF, prems), _ = attempt (find_field tfs atom e1.at) t1 in - let qs', _s = refresh_quants env qs in - let _qas' = il_args_of_params qs' in - let tF' = (*Il.Subst.subst_typ s*) tF in - let e' = Il.DotE (e1', elab_atom atom (expand_id env t1), [](*qas'*)) in - let e'' = if prems = [] then e' else Il.ProjE (e' $$ e.at % tF', 0) in - Ok (e'', tF'.it) + let* _, (_qs, tF, prems), _ = attempt (find_field tfs atom e1.at) t1 in + let e' = Il.DotE (e1', elab_atom atom (expand_id env t1)) in + let e'' = if prems = [] then e' else Il.ProjE (e' $$ e.at % tF, 0) in + Ok (e'', tF.it) | CommaE (e1, e2) -> let* e1', t1 = infer_exp env e1 in let* tfs, dots = as_struct_typ "expression" env Infer t1 e1.at in @@ -1556,7 +1551,7 @@ and infer_exp' env e : (Il.exp' * Il.typ') attempt = (* TODO(4, rossberg): this is a bit of a hack, can we avoid it? *) (match e2.it with | SeqE ({it = AtomE atom; at; _} :: es2) -> - let* _t2 = attempt (find_field tfs atom at) t1 in + let* _ = attempt (find_field tfs atom at) t1 in let e2 = match es2 with [e2] -> e2 | _ -> SeqE es2 $ e2.at in let* e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t1 in Ok (Il.CompE (e2', e1'), t1.it) @@ -1743,7 +1738,7 @@ and elab_exp_plain' env (e : exp) (t : Il.typ) : Il.exp' attempt = (* TODO(4, rossberg): this is a bit of a hack, can we avoid it? *) (match e2.it with | SeqE ({it = AtomE atom; at; _} :: es2) -> - let* _t2 = attempt (find_field tfs atom at) t in + let* _ = attempt (find_field tfs atom at) t in let e2 = match es2 with [e2] -> e2 | _ -> SeqE es2 $ e2.at in let* e2' = elab_exp env (StrE [Elem (atom, e2)] $ e2.at) t in Ok (Il.CompE (e2', e1')) @@ -1830,20 +1825,17 @@ and elab_expfields env tid (efs : expfield list) (tfs : Il.typfield list) (t0 : assert (valid_tid tid); match efs, tfs with | [], [] -> Ok [] - | (atom1, e)::efs2, (atom2, (qs, tF, prems), _)::tfs2 when atom1.it = atom2.it -> + | (atom1, e)::efs2, (atom2, (_qs, tF, prems), _)::tfs2 when atom1.it = atom2.it -> let* e' = elab_exp env e tF in - let _qs', _s = refresh_quants env qs in - let* efs2' = elab_expfields env tid efs2 ((*List.map (Il.Subst.subst_typfield s)*) tfs2) t0 at in + let* efs2' = elab_expfields env tid efs2 tfs2 t0 at in let e' = if prems = [] then e' else tup_exp' [e'] e.at in - Ok ((elab_atom atom1 tid, [](*il_args_of_params qs'*), e') :: efs2') - | _, (atom, (qs, t, prems), _)::tfs2 -> + Ok ((elab_atom atom1 tid, e') :: efs2') + | _, (atom, (_qs, tF, prems), _)::tfs2 -> let atom' = string_of_atom atom in - let _qs', _s = refresh_quants env qs in - let t' = (*Il.Subst.subst_typ s*) t in - let* e1' = cast_empty ("omitted record field `" ^ atom' ^ "`") env t' at in + let* e1' = cast_empty ("omitted record field `" ^ atom' ^ "`") env tF at in let e' = if prems = [] then e1' else tup_exp' [e1'] at in let* efs2' = elab_expfields env tid efs tfs2 t0 at in - Ok ((elab_atom atom tid, [](*il_args_of_params qs'*), e') :: efs2') + Ok ((elab_atom atom tid, e') :: efs2') | (atom, e)::_, [] -> fail_atom e.at atom t0 "undefined or misplaced record field" @@ -1876,12 +1868,11 @@ and elab_exp_iter' env (es : exp list) (t1, iter) t at : Il.exp' attempt = | _, (List1 | ListN _) -> assert false -and elab_exp_notation env tid (e : exp) (qs, t1, mixop, not) t : Il.exp attempt = +and elab_exp_notation env tid (e : exp) (_qs, t1, mixop, not) t : Il.exp attempt = (* Convert notation into applications of mixin operators *) assert (valid_tid tid); - let* es', s = elab_exp_notation' env tid e not in - let _qas' = Il.Subst.subst_args s (il_args_of_params qs) in - Ok (Il.CaseE (mixop, [](*qas'*), Il.TupE es' $$ e.at % t1) $$ e.at % t) + let* es', _s = elab_exp_notation' env tid e not in + Ok (Il.CaseE (mixop, Il.TupE es' $$ e.at % t1) $$ e.at % t) and elab_exp_notation' env tid (e : exp) not : (Il.exp list * Il.Subst.t) attempt = Debug.(log_at "el.elab_exp_notation" e.at @@ -2075,13 +2066,11 @@ and elab_exp_variant env tid (e : exp) (tcs : Il.typcase list) t at : Il.exp att | _ -> fail_typ env at "expression" t in let* atom = head e in - let* mixop, (qs, tC, _prems), _ = attempt (find_case_atom tcs atom atom.at) t in - let qs', _s = refresh_quants env qs in - let* xts = as_tup_typ "tuple" env Check ((*Il.Subst.subst_typ s*) tC) e.at in + let* mixop, (_qs, tC, _prems), _ = attempt (find_case_atom tcs atom atom.at) t in + let* xts = as_tup_typ "tuple" env Check tC e.at in let not = Mixop.apply mixop xts in - let* es', s = elab_exp_notation' env tid e not in - let _qas' = Il.Subst.subst_args s (il_args_of_params qs') in - Ok (Il.CaseE (mixop, [](*qas'*), tup_exp' es' e.at) $$ at % t) + let* es', _s = elab_exp_notation' env tid e not in + Ok (Il.CaseE (mixop, tup_exp' es' e.at) $$ at % t) (* @@ -2114,11 +2103,8 @@ and elab_path' env (p : path) (t : Il.typ) : (Il.path' * Il.typ) attempt = let* tfs, dots = as_struct_typ "path" env Check t1 p1.at in if dots = Dots then error p1.at "used record type is only partially defined at this point"; - let* _, (qs, tF, _prems), _ = attempt (find_field tfs atom p1.at) t1 in - let qs', _s = refresh_quants env qs in - let _qas' = il_args_of_params qs' in - let tF' = (*Il.Subst.subst_typ s*) tF in - Ok (Il.DotP (p1', elab_atom atom (expand_id env t1), [](*qas'*)), tF') + let* _, (_qs, tF, _prems), _ = attempt (find_field tfs atom p1.at) t1 in + Ok (Il.DotP (p1', elab_atom atom (expand_id env t1)), tF) and cast_empty phrase env (t : Il.typ) at : Il.exp attempt = @@ -2176,24 +2162,18 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = | Il.VarT (x1, _), Il.VarT (x2, _) -> (match expand_def env t1', expand_def env t2' with - | (Il.VariantT [mixop1, (qs1, tC1, _), _], NoDots), - (Il.VariantT [mixop2, (qs2, tC2, _), _], NoDots) -> - let qs1', _s1 = refresh_quants env qs1 in - let qs2', _s2 = refresh_quants env qs2 in - let tC1' = (*Il.Subst.subst_typ s1*) tC1 in - let tC2' = (*Il.Subst.subst_typ s2*) tC2 in - let _qas1' = il_args_of_params qs1' in - let _qas2' = il_args_of_params qs2' in + | (Il.VariantT [mixop1, (_qs1, tC1, _), _], NoDots), + (Il.VariantT [mixop2, (_qs2, tC2, _), _], NoDots) -> if mixop1 = mixop2 then ( (* Two ConT's with the same operator can be cast pointwise *) - let ts1 = match tC1'.it with Il.TupT xts -> List.map snd xts | _ -> [tC1'] in - let ts2 = match tC2'.it with Il.TupT xts -> List.map snd xts | _ -> [tC2'] in - let e'' = Il.UncaseE (e', mixop1, [](*qas1'*)) $$ e'.at % tC1' in + let ts1 = match tC1.it with Il.TupT xts -> List.map snd xts | _ -> [tC1] in + let ts2 = match tC2.it with Il.TupT xts -> List.map snd xts | _ -> [tC2] in + let e'' = Il.UncaseE (e', mixop1) $$ e'.at % tC1 in let es' = List.mapi (fun i t1I -> Il.ProjE (e'', i) $$ e''.at % t1I) ts1 in let* es'' = map2_attempt (fun eI' (t1I, t2I) -> cast_exp phrase env eI' t1I t2I) es' (List.combine ts1 ts2) in - Ok (Il.CaseE (mixop2, [](*qas2'*), tup_exp' es'' e'.at)) + Ok (Il.CaseE (mixop2, tup_exp' es'' e'.at)) ) else ( @@ -2207,9 +2187,9 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = (il_typ (reduce env t2)) ) ) in - match expand env tC1' with + match expand env tC1 with | Il.TupT [_, t11'] -> - let e'' = Il.UncaseE (e', mixop1, [](*qas1'*)) $$ e'.at % t11' in + let e'' = Il.UncaseE (e', mixop1) $$ e'.at % t11' in cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t11') t11' t2' | _ -> fail_typ2 env e'.at phrase t1 t2 "" ) @@ -2246,7 +2226,7 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = | Il.VarT _, _ -> (match expand_def env t1' with - | Il.VariantT [mixop1, (qs1, tC1, _), _], NoDots -> + | Il.VariantT [mixop1, (_qs1, tC1, _), _], NoDots -> choice env [ (fun env -> (* A ConT can always be cast to a (singleton) iteration *) @@ -2270,12 +2250,9 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = (il_typ (reduce env t2)) ) ); - let qs1', _s1 = refresh_quants env qs1 in - let tC1' = (*Il.Subst.subst_typ s1*) tC1 in - let _qas1' = il_args_of_params qs1' in - match expand env tC1' with + match expand env tC1 with | Il.TupT [_, t11'] -> - let e'' = Il.UncaseE (e', mixop1, [](*qas1'*)) $$ e'.at % t11' in + let e'' = Il.UncaseE (e', mixop1) $$ e'.at % t11' in cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t11') t11' t2' | _ -> fail_typ2 env e'.at phrase t1 t2 "" ); @@ -2287,15 +2264,12 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = | _, Il.VarT _ -> (match expand_def env t2' with - | Il.VariantT [mixop2, (qs2, tC2, _), _], NoDots -> + | Il.VariantT [mixop2, (_qs2, tC2, _), _], NoDots -> (* A ConT payload can be cast to the ConT *) - let qs2', _s2 = refresh_quants env qs2 in - let tC2' = (*Il.Subst.subst_typ s2*) tC2 in - let _qas2' = il_args_of_params qs2' in - (match expand env tC2' with + (match expand env tC2 with | Il.TupT [_, t21'] -> let* e1' = cast_exp phrase env e' t1' t21' in - Ok (Il.CaseE (mixop2, [](*qas2'*), Il.TupE [e1'] $$ e'.at % tC2')) + Ok (Il.CaseE (mixop2, Il.TupE [e1'] $$ e'.at % tC2)) | _ -> fail_typ2 env e'.at phrase t1 t2 "" ) diff --git a/spectec/src/il/ast.ml b/spectec/src/il/ast.ml index 20fc47e754..4fda78c452 100644 --- a/spectec/src/il/ast.ml +++ b/spectec/src/il/ast.ml @@ -61,12 +61,12 @@ and exp' = | CmpE of cmpop * optyp * exp * exp (* exp cmpop exp *) | TupE of exp list (* ( exp* ) *) | ProjE of exp * int (* exp.i *) - | CaseE of mixop * arg list * exp (* atom exp? *) - | UncaseE of exp * mixop * arg list (* exp!mixop *) + | CaseE of mixop * exp (* atom exp? *) + | UncaseE of exp * mixop (* exp!mixop *) | OptE of exp option (* exp? *) | TheE of exp (* exp! *) | StrE of expfield list (* { expfield* } *) - | DotE of exp * atom * arg list (* exp.atom *) + | DotE of exp * atom (* exp.atom *) | CompE of exp * exp (* exp @ exp *) | ListE of exp list (* [exp ... exp] *) | LiftE of exp (* exp : _? <: _* *) @@ -82,14 +82,14 @@ and exp' = | CvtE of exp * numtyp * numtyp (* exp : typ1 <:> typ2 *) | SubE of exp * typ * typ (* exp : typ1 <: typ2 *) -and expfield = atom * arg list * exp (* atom exp *) +and expfield = atom * exp (* atom exp *) and path = (path', typ) note_phrase and path' = | RootP (* *) | IdxP of path * exp (* path[exp] *) | SliceP of path * exp * exp (* path[exp : exp] *) - | DotP of path * atom * arg list (* path.atom *) + | DotP of path * atom (* path.atom *) and iterexp = iter * (id * exp) list diff --git a/spectec/src/il/eq.ml b/spectec/src/il/eq.ml index 91787ad3bc..05d0a0e52e 100644 --- a/spectec/src/il/eq.ml +++ b/spectec/src/il/eq.ml @@ -86,26 +86,26 @@ and eq_exp e1 e2 = | TupE es1, TupE es2 | ListE es1, ListE es2 -> eq_list eq_exp es1 es2 | StrE efs1, StrE efs2 -> eq_list eq_expfield efs1 efs2 - | DotE (e11, atom1, _as1), DotE (e21, atom2, _as2) -> - eq_exp e11 e21 && eq_atom atom1 atom2 (*&& eq_list eq_arg as1 as2*) - | UncaseE (e1, op1, _as1), UncaseE (e2, op2, _as2) -> - eq_mixop op1 op2 && eq_exp e1 e2 (*&& eq_list eq_arg as1 as2*) + | DotE (e11, atom1), DotE (e21, atom2) -> + eq_exp e11 e21 && eq_atom atom1 atom2 + | UncaseE (e1, op1), UncaseE (e2, op2) -> + eq_mixop op1 op2 && eq_exp e1 e2 | CallE (x1, as1), CallE (x2, as2) -> eq_id x1 x2 && eq_list eq_arg as1 as2 | IterE (e11, iter1), IterE (e21, iter2) -> eq_exp e11 e21 && eq_iterexp iter1 iter2 | OptE eo1, OptE eo2 -> eq_opt eq_exp eo1 eo2 | ProjE (e1, i1), ProjE (e2, i2) -> eq_exp e1 e2 && i1 = i2 | TheE e1, TheE e2 -> eq_exp e1 e2 - | CaseE (op1, _as1, e1), CaseE (op2, _as2, e2) -> - eq_mixop op1 op2 (*&& eq_list eq_arg as1 as2*) && eq_exp e1 e2 + | CaseE (op1, e1), CaseE (op2, e2) -> + eq_mixop op1 op2 && eq_exp e1 e2 | CvtE (e1, nt11, nt12), CvtE (e2, nt21, nt22) -> eq_exp e1 e2 && nt11 = nt21 && nt12 = nt22 | SubE (e1, t11, t12), SubE (e2, t21, t22) -> eq_exp e1 e2 && eq_typ t11 t21 && eq_typ t12 t22 | _, _ -> e1.it = e2.it -and eq_expfield (atom1, _as1, e1) (atom2, _as2, e2) = - eq_atom atom1 atom2 (*&& eq_list eq_arg as1 as2*) && eq_exp e1 e2 +and eq_expfield (atom1, e1) (atom2, e2) = + eq_atom atom1 atom2 && eq_exp e1 e2 and eq_path p1 p2 = match p1.it, p2.it with @@ -113,8 +113,8 @@ and eq_path p1 p2 = | IdxP (p11, e1), IdxP (p21, e2) -> eq_path p11 p21 && eq_exp e1 e2 | SliceP (p11, e11, e12), SliceP (p21, e21, e22) -> eq_path p11 p21 && eq_exp e11 e21 && eq_exp e12 e22 - | DotP (p11, atom1, _as1), DotP (p21, atom2, _as2) -> - eq_path p11 p21 && eq_atom atom1 atom2 (*&& eq_list eq_arg as1 as2*) + | DotP (p11, atom1), DotP (p21, atom2) -> + eq_path p11 p21 && eq_atom atom1 atom2 | _, _ -> p1.it = p2.it and eq_iterexp (iter1, xes1) (iter2, xes2) = diff --git a/spectec/src/il/eval.ml b/spectec/src/il/eval.ml index 2d1f2d8837..ac6da6e9a1 100644 --- a/spectec/src/il/eval.ml +++ b/spectec/src/il/eval.ml @@ -136,8 +136,8 @@ and is_normal_exp e = | BoolE _ | NumE _ | TextE _ -> true | ListE es | TupE es -> List.for_all is_normal_exp es | OptE None -> true - | OptE (Some e) | CaseE (_, _, e) | SubE (e, _, _) -> is_normal_exp e - | StrE efs -> List.for_all (fun (_, _, e) -> is_normal_exp e) efs + | OptE (Some e) | CaseE (_, e) | SubE (e, _, _) -> is_normal_exp e + | StrE efs -> List.for_all (fun (_, e) -> is_normal_exp e) efs | _ -> false and reduce_exp env e : exp = @@ -221,13 +221,11 @@ and reduce_exp env e : exp = else ExtE (e', p', e2') $> e' ) | StrE efs -> StrE (List.map (reduce_expfield env) efs) $> e - | DotE (e1, atom, as_) -> + | DotE (e1, atom) -> let e1' = reduce_exp env e1 in (match e1'.it with - | StrE efs -> - let _, _, e = List.find (fun (atomN, _, _) -> Atom.eq atomN atom) efs in - e - | _ -> DotE (e1', atom, List.map (reduce_arg env) as_) $> e + | StrE efs -> snd (List.find (fun (atomN, _) -> Atom.eq atomN atom) efs) + | _ -> DotE (e1', atom) $> e ) | CompE (e1, e2) -> (* TODO(4, rossberg): avoid overlap with CatE? *) @@ -238,10 +236,9 @@ and reduce_exp env e : exp = | OptE None, OptE _ -> e2'.it | OptE _, OptE None -> e1'.it | StrE efs1, StrE efs2 -> - let merge (atom1, as1, e1) (atom2, as2, e2) = + let merge (atom1, e1) (atom2, e2) = assert (Atom.eq atom1 atom2); - let s = Option.get (match_list match_arg env Subst.empty as1 as2) in - (atom1, as1, reduce_exp env (CompE (e1, Subst.subst_exp s e2) $> e1)) + (atom1, reduce_exp env (CompE (e1, e2) $> e1)) in (try StrE (List.map2 merge efs1 efs2) @@ -329,11 +326,11 @@ and reduce_exp env e : exp = | TupE es -> List.nth es i | _ -> ProjE (e1', i) $> e ) - | UncaseE (e1, mixop, as_) -> + | UncaseE (e1, mixop) -> let e1' = reduce_exp env e1 in (match e1'.it with - | CaseE (_, _, e11') -> e11' - | _ -> UncaseE (e1', mixop, List.map (reduce_arg env) as_) $> e + | CaseE (_, e11') -> e11' + | _ -> UncaseE (e1', mixop) $> e ) | OptE eo -> OptE (Option.map (reduce_exp env) eo) $> e | TheE e1 -> @@ -359,8 +356,7 @@ and reduce_exp env e : exp = | OptE _, OptE None -> e1'.it | _ -> CatE (e1', e2') ) $> e - | CaseE (op, as_, e1) -> - CaseE (op, List.map (reduce_arg env) as_, reduce_exp env e1) $> e + | CaseE (op, e1) -> CaseE (op, reduce_exp env e1) $> e | CvtE (e1, _nt1, nt2) -> let e1' = reduce_exp env e1 in (match e1'.it with @@ -410,8 +406,8 @@ and reduce_iter env = function and reduce_iterexp env (iter, xes) = (reduce_iter env iter, List.map (fun (id, e) -> id, reduce_exp env e) xes) -and reduce_expfield env (atom, as_, e) : expfield = - (atom, List.map (reduce_arg env) as_, reduce_exp env e) +and reduce_expfield env (atom, e) : expfield = + (atom, reduce_exp env e) and reduce_path env e p f = match p.it with @@ -440,17 +436,17 @@ and reduce_path env e p f = f e' (SliceP (p1', e1', e2') $> p) in reduce_path env e p1 f' - | DotP (p1, atom, as_) -> + | DotP (p1, atom) -> let f' e' p1' = match e'.it with | StrE efs -> - StrE (List.map (fun (atomI, asI, eI) -> + StrE (List.map (fun (atomI, eI) -> if Eq.eq_atom atomI atom - then (atomI, asI, f eI p1') - else (atomI, asI, eI) + then (atomI, f eI p1') + else (atomI, eI) ) efs) $> e' | _ -> - f e' (DotP (p1', atom, as_) $> p) + f e' (DotP (p1', atom) $> p) in reduce_path env e p1 f' @@ -643,15 +639,14 @@ and match_exp' env s e1 e2 : subst option = match_exp' env s e11 e21 | LenE e11, LenE e21 -> match_exp' env s e11 e21 *) - | CaseE (op1, as1, e11), CaseE (op2, as2, e21) when Eq.eq_mixop op1 op2 -> - let* s' = match_list match_arg env s as1 as2 in - match_exp' env s' e11 e21 + | CaseE (op1, e11), CaseE (op2, e21) when Eq.eq_mixop op1 op2 -> + match_exp' env s e11 e21 (* | CallE (id1, args1), CallE (id2, args2) when id1.it = id2.it -> match_list match_arg env s args1 args2 *) - | _, UncaseE (e21, mixop, as_) -> - match_exp' env s (CaseE (mixop, as_, e1) $$ e1.at % e21.note) e21 + | _, UncaseE (e21, mixop) -> + match_exp' env s (CaseE (mixop, e1) $$ e1.at % e21.note) e21 | _, ProjE (e21, 0) -> (* only valid on unary tuples! *) match_exp' env s (TupE [e1] $$ e1.at % e21.note) e21 (* @@ -727,7 +722,7 @@ and match_exp' env s e1 e2 : subst option = | BoolE _, BoolT | NumE _, NumT _ | TextE _, TextT -> true - | CaseE (op, _, _), VarT _ -> + | CaseE (op, _), VarT _ -> (match (reduce_typdef env t21).it with | VariantT tcs -> (* Assumes that we only have shallow subtyping. *) @@ -745,10 +740,9 @@ and match_exp' env s e1 e2 : subst option = | _, _ -> raise Irred -and match_expfield env s (atom1, as1, e1) (atom2, as2, e2) = +and match_expfield env s (atom1, e1) (atom2, e2) = if not (Eq.eq_atom atom1 atom2) then None else - let* s' = match_list match_arg env s as1 as2 in - match_exp' env s' e1 (Subst.subst_exp s e2) + match_exp' env s e1 (Subst.subst_exp s e2) and match_iterexp env s (iter1, _ids1) (iter2, _ids2) = match_iter env s iter1 iter2 diff --git a/spectec/src/il/free.ml b/spectec/src/il/free.ml index f306593888..cb4a107043 100644 --- a/spectec/src/il/free.ml +++ b/spectec/src/il/free.ml @@ -70,21 +70,20 @@ and free_exp e = | TupE es | ListE es -> free_list free_exp es | UpdE (e1, p, e2) | ExtE (e1, p, e2) -> free_exp e1 ++ free_path p ++ free_exp e2 | StrE efs -> free_list free_expfield efs - | DotE (e1, _, as_) -> free_exp e1 ++ free_args as_ - | CaseE (_, as_, e1) | UncaseE (e1, _, as_) -> free_args as_ ++ free_exp e1 + | DotE (e1, _) | CaseE (_, e1) | UncaseE (e1, _) -> free_exp e1 | CallE (x, as1) -> free_defid x ++ free_args as1 | IterE (e1, ite) -> (free_exp e1 -- bound_iterexp ite) ++ free_iterexp ite | CvtE (e1, _nt1, _nt2) -> free_exp e1 | SubE (e1, t1, t2) -> free_exp e1 ++ free_typ t1 ++ free_typ t2 -and free_expfield (_, as_, e) = free_args as_ ++ free_exp e +and free_expfield (_, e) = free_exp e and free_path p = match p.it with | RootP -> empty | IdxP (p1, e) -> free_path p1 ++ free_exp e | SliceP (p1, e1, e2) -> free_path p1 ++ free_exp e1 ++ free_exp e2 - | DotP (p1, _atom, as_) -> free_path p1 ++ free_args as_ + | DotP (p1, _atom) -> free_path p1 and free_iterexp (iter, xes) = free_iter iter ++ free_list free_exp (List.map snd xes) diff --git a/spectec/src/il/iter.ml b/spectec/src/il/iter.ml index 3526649d1a..02826645d1 100644 --- a/spectec/src/il/iter.ml +++ b/spectec/src/il/iter.ml @@ -162,11 +162,11 @@ and exp e = | CmpE (op, ot, e1, e2) -> cmpop op; optyp ot; exp e1; exp e2 | TupE es | ListE es -> list exp es | ProjE (e1, _) | TheE e1 | LiftE e1 | LenE e1 -> exp e1 - | CaseE (op, as_, e1) -> mixop op; args as_; exp e1 - | UncaseE (e1, op, as_) -> exp e1; mixop op; args as_ + | CaseE (op, e1) -> mixop op; exp e1 + | UncaseE (e1, op) -> exp e1; mixop op | OptE eo -> opt exp eo | StrE efs -> list expfield efs - | DotE (e1, at, as_) -> exp e1; atom at; args as_ + | DotE (e1, at) -> exp e1; atom at | CompE (e1, e2) | MemE (e1, e2) | CatE (e1, e2) | IdxE (e1, e2) -> exp e1; exp e2 | SliceE (e1, e2, e3) -> exp e1; exp e2; exp e3 | UpdE (e1, p, e2) | ExtE (e1, p, e2) -> exp e1; path p; exp e2 @@ -175,7 +175,7 @@ and exp e = | CvtE (e1, nt1, nt2) -> exp e1; numtyp nt1; numtyp nt2 | SubE (e1, t1, t2) -> exp e1; typ t1; typ t2 -and expfield (at, as_, e) = atom at; args as_; exp e +and expfield (at, e) = atom at; exp e and path p = visit_path p; @@ -183,7 +183,7 @@ and path p = | RootP -> () | IdxP (p1, e) -> path p1; exp e | SliceP (p1, e1, e2) -> path p1; exp e1; exp e2 - | DotP (p1, at, as_) -> path p1; atom at; args as_ + | DotP (p1, at) -> path p1; atom at (* Grammars *) diff --git a/spectec/src/il/print.ml b/spectec/src/il/print.ml index 38c539a6ef..7a051335d5 100644 --- a/spectec/src/il/print.ml +++ b/spectec/src/il/print.ml @@ -132,10 +132,9 @@ and string_of_exp e = string_of_exp e1 ^ "[" ^ string_of_path p ^ " =++ " ^ string_of_exp e2 ^ "]" | StrE efs -> "{" ^ concat ", " (List.map string_of_expfield efs) ^ "}" - | DotE (e1, atom, as_) -> + | DotE (e1, atom) -> string_of_exp e1 ^ "." ^ - string_of_mixop (Mixop.Atom atom) ^ "_" ^ string_of_typ_name e1.note ^ - string_of_quantargs as_ + string_of_mixop (Mixop.Atom atom) ^ "_" ^ string_of_typ_name e1.note | CompE (e1, e2) -> string_of_exp e1 ^ " +++ " ^ string_of_exp e2 | MemE (e1, e2) -> "(" ^ string_of_exp e1 ^ " <- " ^ string_of_exp e2 ^ ")" | LenE e1 -> "|" ^ string_of_exp e1 ^ "|" @@ -143,19 +142,16 @@ and string_of_exp e = | CallE (x, as1) -> "$" ^ string_of_id x ^ string_of_args as1 | IterE (e1, iter) -> string_of_exp e1 ^ string_of_iterexp iter | ProjE (e1, i) -> string_of_exp e1 ^ "." ^ string_of_int i - | UncaseE (e1, op, as_) -> + | UncaseE (e1, op) -> string_of_exp e1 ^ "!" ^ - string_of_mixop op ^ "_" ^ string_of_typ_name e1.note ^ - string_of_quantargs as_ + string_of_mixop op ^ "_" ^ string_of_typ_name e1.note | OptE eo -> "?(" ^ string_of_exps "" (Option.to_list eo) ^ ")" | TheE e1 -> "!(" ^ string_of_exp e1 ^ ")" | ListE es -> "[" ^ string_of_exps " " es ^ "]" | LiftE e1 -> "lift(" ^ string_of_exp e1 ^ ")" | CatE (e1, e2) -> string_of_exp e1 ^ " ++ " ^ string_of_exp e2 - | CaseE (op, as_, e1) -> - string_of_mixop op ^ "_" ^ string_of_typ_name e.note ^ - string_of_quantargs as_ ^ - string_of_exp_args e1 + | CaseE (op, e1) -> + string_of_mixop op ^ "_" ^ string_of_typ_name e.note ^ string_of_exp_args e1 | CvtE (e1, nt1, nt2) -> "(" ^ string_of_exp e1 ^ " : " ^ string_of_numtyp nt1 ^ " <:> " ^ string_of_numtyp nt2 ^ ")" | SubE (e1, t1, t2) -> @@ -172,10 +168,8 @@ and string_of_exp_args e = and string_of_exps sep es = concat sep (List.map string_of_exp es) -and string_of_expfield (atom, as_, e) = - string_of_mixop (Mixop.Atom atom) ^ - string_of_quantargs as_ ^ - " " ^ string_of_exp e +and string_of_expfield (atom, e) = + string_of_mixop (Mixop.Atom atom) ^ " " ^ string_of_exp e and string_of_path p = (if !print_notes then "(" else "") ^ @@ -185,13 +179,11 @@ and string_of_path p = string_of_path p1 ^ "[" ^ string_of_exp e ^ "]" | SliceP (p1, e1, e2) -> string_of_path p1 ^ "[" ^ string_of_exp e1 ^ " : " ^ string_of_exp e2 ^ "]" - | DotP ({it = RootP; note; _}, atom, as_) -> - string_of_mixop (Mixop.Atom atom) ^ "_" ^ string_of_typ_name note ^ - string_of_quantargs as_ - | DotP (p1, atom, as_) -> + | DotP ({it = RootP; note; _}, atom) -> + string_of_mixop (Mixop.Atom atom) ^ "_" ^ string_of_typ_name note + | DotP (p1, atom) -> string_of_path p1 ^ "." ^ - string_of_mixop (Mixop.Atom atom) ^ "_" ^ string_of_typ_name p1.note ^ - string_of_quantargs as_ + string_of_mixop (Mixop.Atom atom) ^ "_" ^ string_of_typ_name p1.note ) ^ (if !print_notes then ")@[" ^ string_of_typ p.note ^ "]" else "") @@ -246,10 +238,6 @@ and string_of_args = function | [] -> "" | as_ -> "(" ^ concat ", " (List.map string_of_arg as_) ^ ")" -and string_of_quantargs = function - | [] -> "" - | as_ -> "{" ^ concat ", " (List.map string_of_arg as_) ^ "}" - and string_of_param p = match p.it with | ExpP (x, t) -> diff --git a/spectec/src/il/subst.ml b/spectec/src/il/subst.ml index a009bd5a04..abe73a00c2 100644 --- a/spectec/src/il/subst.ml +++ b/spectec/src/il/subst.ml @@ -180,7 +180,7 @@ and subst_exp s e = | UpdE (e1, p, e2) -> UpdE (subst_exp s e1, subst_path s p, subst_exp s e2) | ExtE (e1, p, e2) -> ExtE (subst_exp s e1, subst_path s p, subst_exp s e2) | StrE efs -> StrE (subst_list subst_expfield s efs) - | DotE (e1, atom, as_) -> DotE (subst_exp s e1, atom, subst_args s as_) + | DotE (e1, atom) -> DotE (subst_exp s e1, atom) | CompE (e1, e2) -> CompE (subst_exp s e1, subst_exp s e2) | MemE (e1, e2) -> MemE (subst_exp s e1, subst_exp s e2) | LenE e1 -> LenE (subst_exp s e1) @@ -190,23 +190,23 @@ and subst_exp s e = let e1', it' = subst_iterexp s subst_exp e1 iterexp in IterE (e1', it') | ProjE (e1, i) -> ProjE (subst_exp s e1, i) - | UncaseE (e1, op, as_) -> + | UncaseE (e1, op) -> let e1' = subst_exp s e1 in assert (match e1'.note.it with VarT _ -> true | _ -> false); - UncaseE (subst_exp s e1, op, subst_args s as_) + UncaseE (subst_exp s e1, op) | OptE eo -> OptE (subst_opt subst_exp s eo) | TheE e -> TheE (subst_exp s e) | ListE es -> ListE (subst_list subst_exp s es) | LiftE e -> LiftE (subst_exp s e) | CatE (e1, e2) -> CatE (subst_exp s e1, subst_exp s e2) - | CaseE (op, as_, e1) -> + | CaseE (op, e1) -> assert (match e.note.it with VarT _ -> true | _ -> false); - CaseE (op, subst_args s as_, subst_exp s e1) + CaseE (op, subst_exp s e1) | CvtE (e1, nt1, nt2) -> CvtE (subst_exp s e1, nt1, nt2) | SubE (e1, t1, t2) -> SubE (subst_exp s e1, subst_typ s t1, subst_typ s t2) ) $$ e.at % subst_typ s e.note -and subst_expfield s (atom, as_, e) = (atom, subst_args s as_, subst_exp s e) +and subst_expfield s (atom, e) = (atom, subst_exp s e) and subst_path s p = (match p.it with @@ -214,7 +214,7 @@ and subst_path s p = | IdxP (p1, e) -> IdxP (subst_path s p1, subst_exp s e) | SliceP (p1, e1, e2) -> SliceP (subst_path s p1, subst_exp s e1, subst_exp s e2) - | DotP (p1, atom, as_) -> DotP (subst_path s p1, atom, subst_args s as_) + | DotP (p1, atom) -> DotP (subst_path s p1, atom) ) $$ p.at % subst_typ s p.note diff --git a/spectec/src/il/valid.ml b/spectec/src/il/valid.ml index 64ed471500..312a15bf00 100644 --- a/spectec/src/il/valid.ml +++ b/spectec/src/il/valid.ml @@ -293,11 +293,10 @@ and infer_exp (env : Env.t) e : typ = | ExtE (e1, _, _) | CompE (e1, _) -> infer_exp env e1 | StrE _ -> error e.at "cannot infer type of record" - | DotE (e1, atom, _as_) -> + | DotE (e1, atom) -> let tfs = as_struct_typ "expression" env Infer (infer_exp env e1) e1.at in let _qs, t, _prems = find_field tfs atom e1.at in - (*let s = valid_args env as_ qs Subst.empty e.at in - Subst.subst_typ s*) t + t | TupE es -> TupT (List.map (fun eI -> "_" $ eI.at, infer_exp env eI) es) $ e.at | CallE (x, as_) -> @@ -311,12 +310,10 @@ and infer_exp (env : Env.t) e : typ = let t1 = infer_exp env e1 in let xts = as_tup_typ "expression" env Infer t1 e1.at in proj_tup_typ i xts e1 e.at - | UncaseE (e1, op, _as_) -> + | UncaseE (e1, op) -> let t1 = infer_exp env e1 in (match as_variant_typ "expression" env Infer t1 e1.at with - | [(op', (_qs, t, _), _)] when Eq.eq_mixop op op' -> - (*let s = valid_args env as_ qs Subst.empty e.at in - Subst.subst_typ s*) t + | [(op', (_, t, _), _)] when Eq.eq_mixop op op' -> t | _ -> error e.at "invalid case projection"; ) | OptE _ -> error e.at "cannot infer type of option" @@ -415,13 +412,12 @@ try | StrE efs -> let tfs = as_struct_typ "record" env Check t e.at in valid_list (valid_expfield ~side) env efs tfs e.at - | DotE (e1, atom, _as_) -> + | DotE (e1, atom) -> let t1 = infer_exp env e1 in valid_exp env e1 t1; let tfs = as_struct_typ "expression" env Check t1 e1.at in let _qs, t', _prems = find_field tfs atom e1.at in - (*let s = valid_args env as_ qs Subst.empty e.at in*) - equiv_typ env ((*Subst.subst_typ s*) t') t e.at + equiv_typ env t' t e.at | CompE (e1, e2) -> let _ = as_comp_typ "expression" env Check t e.at in valid_exp env e1 t; @@ -465,13 +461,12 @@ try let side' = if List.length xts > 1 then `Rhs else side in valid_exp ~side:side' env e1 (TupT xts $ t1.at); equiv_typ env (proj_tup_typ i xts e1 e.at) t e.at - | UncaseE (e1, op, _as_) -> + | UncaseE (e1, op) -> let t1 = infer_exp env e1 in valid_exp ~side env e1 t1; (match as_variant_typ "expression" env Infer t1 e1.at with | [(op', (_qs, t', _), _)] when Eq.eq_mixop op op' -> - (*let s = valid_args env as_ qs Subst.empty e.at in*) - equiv_typ env ((*Subst.subst_typ s*) t') t e.at + equiv_typ env t' t e.at | _ -> error e.at "invalid case projection"; ) | OptE eo -> @@ -494,11 +489,10 @@ try let _typ1 = as_iter_typ List "list" env Check t e.at in valid_exp env e1 t; valid_exp env e2 t - | CaseE (op, _as_, e1) -> + | CaseE (op, e1) -> let cases = as_variant_typ "case" env Check t e.at in let _qs, t1, _prems = find_case cases op e1.at in - (*let s = valid_args env as_ qs Subst.empty e.at in*) - valid_exp ~side env e1 ((*Subst.subst_typ s*) t1) + valid_exp ~side env e1 t1 | CvtE (e1, nt1, nt2) -> valid_exp ~side env e1 (NumT nt1 $ e1.at); equiv_typ env (NumT nt2 $e.at) t e.at; @@ -522,16 +516,15 @@ and valid_expmix ?(side = `Rhs) env mixop e (mixop', t) at = ); valid_exp ~side env e t -and valid_expfield ~side env (atom1, as_, e) (atom2, (qs, t, _prems), _) = +and valid_expfield ~side env (atom1, e) (atom2, (qs, t, _prems), _) = Debug.(log_in_at "il.valid_expfield" e.at - (fun _ -> fmt "%s%s %s :%s %s%s %s" - (il_atom atom1) (il_args as_) (il_exp e) (il_side side) + (fun _ -> fmt "%s %s :%s %s%s %s" + (il_atom atom1) (il_exp e) (il_side side) (il_atom atom2) (il_quants qs) (il_typ t) ) ); if not (Eq.eq_atom atom1 atom2) then error e.at "unexpected record field"; - (*let s = valid_args env as_ qs Subst.empty e.at in*) - valid_exp ~side env e ((*Subst.subst_typ s*) t) + valid_exp ~side env e t and valid_path env p t : typ = valid_typ env t; @@ -548,12 +541,11 @@ and valid_path env p t : typ = valid_exp env e2 (NumT `NatT $ e2.at); let _ = as_list_typ "path" env Check t1 p1.at in t1 - | DotP (p1, atom, _as_) -> + | DotP (p1, atom) -> let t1 = valid_path env p1 t in let tfs = as_struct_typ "path" env Check t1 p1.at in let _qs, t, _prems = find_field tfs atom p1.at in - (*let s = valid_args env as_ qs Subst.empty p.at in - Subst.subst_typ s*) t + t in equiv_typ env p.note t' p.at; t' diff --git a/spectec/src/il2al/animate.ml b/spectec/src/il2al/animate.ml index 2ab200995d..5a19fe4614 100644 --- a/spectec/src/il2al/animate.ml +++ b/spectec/src/il2al/animate.ml @@ -114,7 +114,7 @@ and recover_iterexp iterexp pr = Source.map (recover_iterexp' iterexp) pr (* is this assign premise a if-let? *) let is_cond_assign prem = match prem.it with - | LetPr ({it = CaseE (_, _, _); _}, _, _) -> true + | LetPr ({it = CaseE (_, _); _}, _, _) -> true | _ -> false (* is this assign premise encoded premise for popping one value? *) @@ -251,7 +251,7 @@ let is_not_lhs e = match e.it with (* Hack to handle RETURN_CALL_ADDR, eventually should be removed *) let is_atomic_lhs e = match e.it with -| CaseE (op, _, { it = CaseE (Xl.Mixop.(Infix (Arg (), {it = Arrow; _}, Arg ())), _, { it = TupE [ { it = IterE (_, (ListN _, _)); _} ; { it = IterE (_, (ListN _, _)); _} ] ; _} ); _ }) -> +| CaseE (op, { it = CaseE (Xl.Mixop.(Infix (Arg (), {it = Arrow; _}, Arg ())), { it = TupE [ { it = IterE (_, (ListN _, _)); _} ; { it = IterE (_, (ListN _, _)); _} ] ; _} ); _ }) -> Il2al_util.case_head op = "FUNC" | _ -> false diff --git a/spectec/src/il2al/encode.ml b/spectec/src/il2al/encode.ml index 79728a0dfd..238ef53b7b 100644 --- a/spectec/src/il2al/encode.ml +++ b/spectec/src/il2al/encode.ml @@ -33,12 +33,12 @@ let is_case e = | _ -> false let case_of_case e = match e.it with - | CaseE (mixop, _, _) -> mixop + | CaseE (mixop, _) -> mixop | _ -> error e.at "cannot get case of case expression" let args_of_case e = match e.it with - | CaseE (_, _, { it = TupE exps; _ }) -> exps - | CaseE (_, _, exp) -> [ exp ] + | CaseE (_, { it = TupE exps; _ }) -> exps + | CaseE (_, exp) -> [ exp ] | _ -> error e.at "cannot get arguments of case expression" let is_context e = @@ -135,7 +135,7 @@ let encode_stack stack = let args', inner_stack = Lib.List.split_last args in let mixop' = Il2al_util.split_last_case mixop in - let e1 = { e with it = CaseE (mixop', [], TupE args' $$ no_region % (mk_varT "")) } in + let e1 = { e with it = CaseE (mixop', TupE args' $$ no_region % (mk_varT "")) } in let e2 = (mk_varE "ctxt" "contextT") in let pr = LetPr (e1, e2, free_ids e1) $ e2.at in @@ -152,7 +152,7 @@ let encode_stack stack = (* Encode lhs *) let encode_lhs lhs = match lhs.it with - | CaseE (Xl.Mixop.(Infix (Arg (), {it = Semicolon; _}, Arg ())), [], {it = TupE [z; stack]; _}) -> + | CaseE (Xl.Mixop.(Infix (Arg (), {it = Semicolon; _}, Arg ())), {it = TupE [z; stack]; _}) -> let prem = LetPr (z, mk_varE "state" "stateT", free_ids z) $ z.at in prem :: encode_stack stack | _ -> diff --git a/spectec/src/il2al/free.ml b/spectec/src/il2al/free.ml index 8b3edc17b6..273b3e6fac 100644 --- a/spectec/src/il2al/free.ml +++ b/spectec/src/il2al/free.ml @@ -24,8 +24,8 @@ let rec free_exp ignore_listN e = | CvtE (e1, _, _) | UnE (_, _, e1) | LiftE e1 | LenE e1 | TheE e1 | SubE (e1, _, _) | ProjE (e1, _) -> f e1 - | DotE (e1, _, al) | CaseE (_, al, e1) | UncaseE (e1, _, al) -> - f e1 ++ free_list fa al + | DotE (e1, _) | CaseE (_, e1) | UncaseE (e1, _) -> + f e1 | BinE (_, _, e1, e2) | CmpE (_, _, e1, e2) | IdxE (e1, e2) | CompE (e1, e2) | MemE (e1, e2) | CatE (e1, e2) -> free_list f [e1; e2] | SliceE (e1, e2, e3) -> free_list f [e1; e2; e3] @@ -40,8 +40,8 @@ let rec free_exp ignore_listN e = let bound, free2 = fi iter in free1 -- bound ++ free2 -and free_expfield ignore_listN (_, al, e) = - free_list (free_arg ignore_listN) al ++ free_exp ignore_listN e +and free_expfield ignore_listN (_, e) = + free_exp ignore_listN e and free_arg ignore_listN arg = let f = free_exp ignore_listN in @@ -54,13 +54,12 @@ and free_arg ignore_listN arg = and free_path ignore_listN p = let f = free_exp ignore_listN in let fp = free_path ignore_listN in - let fa = free_arg ignore_listN in match p.it with | RootP -> empty | IdxP (p1, e) -> fp p1 ++ f e | SliceP (p1, e1, e2) -> fp p1 ++ f e1 ++ f e2 - | DotP (p1, _, al) -> fp p1 ++ free_list fa al + | DotP (p1, _) -> fp p1 and free_iterexp ignore_listN (iter, xes) = let f = free_exp ignore_listN in diff --git a/spectec/src/il2al/il2al_util.ml b/spectec/src/il2al/il2al_util.ml index 30ae84708f..72e1826c4b 100644 --- a/spectec/src/il2al/il2al_util.ml +++ b/spectec/src/il2al/il2al_util.ml @@ -52,7 +52,7 @@ let replace_lhs lhs pr = let case_of_case e = match e.it with - | CaseE (mixop, _, _) -> mixop + | CaseE (mixop, _) -> mixop | _ -> error e.at (Printf.sprintf "expected a CaseE, but got `%s`" (Il.Print.string_of_exp e)) @@ -308,7 +308,7 @@ let is_val exp = | _ -> () ); match exp.it with - | CaseE (mixop, _, _) -> ( + | CaseE (mixop, _) -> ( match List.find_opt (Il.Eq.eq_mixop mixop) !val_mixops with | Some _ -> true | None -> false diff --git a/spectec/src/il2al/il_walk.ml b/spectec/src/il2al/il_walk.ml index 02757fdaac..8c8ddf246c 100644 --- a/spectec/src/il2al/il_walk.ml +++ b/spectec/src/il2al/il_walk.ml @@ -35,22 +35,22 @@ let rec transform_exp t e = | SliceE (e1, e2, e3) -> SliceE (t_exp e1, t_exp e2, t_exp e3) | UpdE (e1, p, e2) -> UpdE (t_exp e1, p, t_exp e2) | ExtE (e1, p, e2) -> ExtE (t_exp e1, p, t_exp e2) - | StrE efs -> StrE (List.map (fun (a, as_, e) -> (a, List.map (transform_arg t) as_, t_exp e)) efs) - | DotE (e1, atom, as1) -> DotE (t_exp e1, atom, List.map (transform_arg t) as1) + | StrE efs -> StrE (List.map (fun (a, e) -> (a, t_exp e)) efs) + | DotE (e1, atom) -> DotE (t_exp e1, atom) | CompE (e1, e2) -> CompE (t_exp e1, t_exp e2) | LenE e1 -> LenE (t_exp e1) | TupE es -> TupE ((List.map t_exp) es) | CallE (id, as1) -> CallE (id, List.map (transform_arg t) as1) | IterE (e1, iter) -> IterE (t_exp e1, transform_iterexp t iter) (* TODO iter *) | ProjE (e1, i) -> ProjE (t_exp e1, i) - | UncaseE (e1, op, as1) -> UncaseE (t_exp e1, op, List.map (transform_arg t) as1) + | UncaseE (e1, op) -> UncaseE (t_exp e1, op) | OptE eo -> OptE ((Option.map t_exp) eo) | TheE e1 -> TheE (t_exp e1) | ListE es -> ListE ((List.map t_exp) es) | LiftE e1 -> LiftE (t_exp e1) | CatE (e1, e2) -> CatE (t_exp e1, t_exp e2) | MemE (e1, e2) -> MemE (t_exp e1, t_exp e2) - | CaseE (mixop, as1, e1) -> CaseE (mixop, List.map (transform_arg t) as1, t_exp e1) + | CaseE (mixop, e1) -> CaseE (mixop, t_exp e1) | SubE (e1, _t1, t2) -> SubE (t_exp e1, _t1, t2) in f { e with it } diff --git a/spectec/src/il2al/translate.ml b/spectec/src/il2al/translate.ml index 1b94ae1a59..e04c6763e2 100644 --- a/spectec/src/il2al/translate.ml +++ b/spectec/src/il2al/translate.ml @@ -44,17 +44,17 @@ let typ_state_arg = Il.TupT [field typ_store; field typ_frame] $ Source.no_regio let split_config (exp: Il.exp): Il.exp * Il.exp = assert(is_config exp); match exp.it with - | Il.CaseE (Mixop.(Infix (Arg (), {it = Atom.Semicolon; _}, Arg ())), _, {it = TupE [ e1; e2 ]; _}) + | Il.CaseE (Mixop.(Infix (Arg (), {it = Atom.Semicolon; _}, Arg ())), {it = TupE [ e1; e2 ]; _}) when is_state e1 -> e1, e2 - | Il.CaseE (Mixop.(Infix (Arg (), {it = Atom.Semicolon; _}, Arg ())), _, {it = TupE [ e1; e2 ]; _}) + | Il.CaseE (Mixop.(Infix (Arg (), {it = Atom.Semicolon; _}, Arg ())), {it = TupE [ e1; e2 ]; _}) when is_frame e1 -> let store = Il.StrE [] $$ e1.at % typ_store in - let state = Il.CaseE (Mixop.(Infix (Arg (), Atom.Semicolon $$ e1.at % Atom.info "", Arg ())), [], Il.TupE [ store; e1 ] $$ e1.at % typ_state_arg) $$ e1.at % typ_state in + let state = Il.CaseE (Mixop.(Infix (Arg (), Atom.Semicolon $$ e1.at % Atom.info "", Arg ())), Il.TupE [ store; e1 ] $$ e1.at % typ_state_arg) $$ e1.at % typ_state in state, e2 - | Il.CaseE (Mixop.(Infix (Arg (), {it = Atom.Semicolon; _}, Arg ())), _, {it = TupE [ e1; e2 ]; _}) + | Il.CaseE (Mixop.(Infix (Arg (), {it = Atom.Semicolon; _}, Arg ())), {it = TupE [ e1; e2 ]; _}) when is_store e1 -> let frame = Il.StrE [] $$ e1.at % typ_frame in - let state = Il.CaseE (Mixop.(Infix (Arg (), Atom.Semicolon $$ e1.at % Atom.info "", Arg ())), [], Il.TupE [ e1; frame ] $$ e1.at % typ_state_arg) $$ e1.at % typ_state in + let state = Il.CaseE (Mixop.(Infix (Arg (), Atom.Semicolon $$ e1.at % Atom.info "", Arg ())), Il.TupE [ e1; frame ] $$ e1.at % typ_state_arg) $$ e1.at % typ_state in state, e2 | _ -> error exp.at (sprintf "can not recognize `%s` as a `config` expression" (Il.Print.string_of_exp exp)) @@ -62,7 +62,7 @@ let split_config (exp: Il.exp): Il.exp * Il.exp = let split_state (exp: Il.exp): Il.exp * Il.exp = assert(is_state exp); match exp.it with - | Il.CaseE (Mixop.(Infix (Arg (), {it = Atom.Semicolon; _}, Arg ())), _, {it = TupE [ e1; e2 ]; _}) + | Il.CaseE (Mixop.(Infix (Arg (), {it = Atom.Semicolon; _}, Arg ())), {it = TupE [ e1; e2 ]; _}) when is_store e1 && is_frame e2 -> e1, e2 | _ -> error exp.at (sprintf "can not recognize `%s` as a `state` expression" (Il.Print.string_of_exp exp)) @@ -87,8 +87,8 @@ let is_case e = | _ -> false let args_of_case e = match e.it with - | Il.CaseE (_, _, { it = Il.TupE exps; _ }) -> exps - | Il.CaseE (_, _, exp) -> [ exp ] + | Il.CaseE (_, { it = Il.TupE exps; _ }) -> exps + | Il.CaseE (_, exp) -> [ exp ] | _ -> error e.at (sprintf "cannot get arguments of case expression `%s`" (Il.Print.string_of_exp e)) let is_simple_separator = function @@ -146,7 +146,7 @@ let rec is_wasm_value e = (* TODO: use hint? *) match e.it with | Il.SubE (e, _, _) -> is_wasm_value e - | Il.CaseE (op, _, _) when + | Il.CaseE (op, _) when List.mem (case_head op) [ "CONST"; "VCONST"; @@ -198,7 +198,7 @@ and translate_exp exp = | Il.IterE (inner_exp, iterexp) -> iterE (translate_exp inner_exp, translate_iterexp iterexp) ~at ~note (* property access *) - | Il.DotE (inner_exp, ({it = Atom _; _} as atom), _) -> + | Il.DotE (inner_exp, ({it = Atom _; _} as atom)) -> accE (translate_exp inner_exp, dotP atom) ~at ~note (* concatenation of records *) | Il.CompE (exp1, exp2) -> compE (translate_exp exp1, translate_exp exp2) ~at ~note @@ -237,7 +237,7 @@ and translate_exp exp = (* Record expression *) | Il.StrE expfields -> let f acc = function - | {it = Atom.Atom _; _} as atom, _, fieldexp -> + | {it = Atom.Atom _; _} as atom, fieldexp -> let expr = translate_exp fieldexp in Record.add atom expr acc | _ -> error_exp exp "AL record expression" @@ -245,7 +245,7 @@ and translate_exp exp = let record = List.fold_left f Record.empty expfields in strE record ~at ~note (* CaseE *) - | Il.CaseE (op, _, e) -> ( + | Il.CaseE (op, e) -> ( let exps = match e.it with | TupE exps -> exps @@ -267,7 +267,7 @@ and translate_exp exp = else error_exp exp "arity mismatch for CaseE mixop and args" ) - | Il.UncaseE (e, op, _) -> + | Il.UncaseE (e, op) -> (match op with | Mixop.Arg () -> translate_exp e | _ -> yetE (Il.Print.string_of_exp exp) ~at ~note @@ -304,7 +304,7 @@ and translate_path path = | Il.RootP -> [] | Il.IdxP (p, e) -> (translate_path' p) @ [ idxP (translate_exp e) ~at ] | Il.SliceP (p, e1, e2) -> (translate_path' p) @ [ sliceP (translate_exp e1, translate_exp e2) ~at ] - | Il.DotP (p, ({it = Atom _; _} as atom), _) -> + | Il.DotP (p, ({it = Atom _; _} as atom)) -> (translate_path' p) @ [ dotP atom ~at ] | _ -> assert false in @@ -319,12 +319,12 @@ and translate_iterexp (iter, xes) = let insert_assert exp = let at = exp.at in match exp.it with - | Il.CaseE (op, _, _) when List.mem (case_head op) context_names -> + | Il.CaseE (op, _) when List.mem (case_head op) context_names -> assertI (contextKindE (atom_of_name (case_head op) "evalctx") ~note:boolT) ~at:at | Il.IterE (_, (Il.ListN (e, None), _)) -> assertI (topValuesE (translate_exp e) ~at ~note:boolT) ~at:at | Il.IterE (_, (Il.List, _)) -> nopI () ~at:at - | Il.CaseE (op, _, { it = Il.TupE (ty' :: _); _ }) + | Il.CaseE (op, { it = Il.TupE (ty' :: _); _ }) when case_head op = "CONST" -> assertI (topValueE (Some (translate_exp ty')) ~note:boolT) ~at:at | _ -> @@ -426,7 +426,7 @@ let rec translate_rhs exp = let at = exp.at in match exp.it with (* Trap *) - | Il.CaseE (op, _, _) when case_head op = "TRAP" -> [ trapI () ~at ] + | Il.CaseE (op, _) when case_head op = "TRAP" -> [ trapI () ~at ] (* Context *) | _ when is_context exp -> translate_context_rhs exp (* Config *) @@ -1042,7 +1042,7 @@ let to_frame_instr r = let rec e_to_frame_instr e = match e with - | {it = Il.Ast.CaseE (Mixop.(Infix (Arg (), {it = Semicolon; _}, Arg ())), _, {it = TupE [lhs; rhs]; _}); _} -> + | {it = Il.Ast.CaseE (Mixop.(Infix (Arg (), {it = Semicolon; _}, Arg ())), {it = TupE [lhs; rhs]; _}); _} -> let i = e_to_frame_instr lhs in if i = [] then e_to_frame_instr rhs else i | {it = Il.Ast.VarE _; note = {it = Il.Ast.VarT ({it = "frame"; _}, _); _}; _} -> @@ -1102,7 +1102,7 @@ let translate_context ctx = let at = ctx.at in match ctx.it with - | Il.CaseE (case, _, { it = Il.TupE args; _ }) when List.mem (case_head case) context_names -> + | Il.CaseE (case, { it = Il.TupE args; _ }) when List.mem (case_head case) context_names -> let atom = Option.get (Mixop.head case) in let destruct = caseE (case, List.map translate_exp args) ~note:evalctxT ~at in [ diff --git a/spectec/src/il2al/unify.ml b/spectec/src/il2al/unify.ml index 190005c3f2..fba8cba1c4 100644 --- a/spectec/src/il2al/unify.ml +++ b/spectec/src/il2al/unify.ml @@ -122,10 +122,10 @@ let rec overlap env e1 e2 = if eq_exp e1 e2 then e1 else UpdE (overlap env e1 e2, path1, overlap env e1' e2') |> replace_it | ExtE (e1, path1, e1'), ExtE (e2, path2, e2') when eq_path path1 path2 -> ExtE (overlap env e1 e2, path1, overlap env e1' e2') |> replace_it - | StrE efs1, StrE efs2 when List.map (fun (a, _, _) -> a) efs1 = List.map (fun (a, _, _) -> a) efs2 -> - StrE (List.map2 (fun (a1, as1, e1) (_, as2, e2) -> (a1, List.map2 (overlap_arg env) as1 as2, overlap env e1 e2)) efs1 efs2) |> replace_it - | DotE (e1, atom1, as1), DotE (e2, atom2, as2) when eq_atom atom1 atom2 -> - DotE (overlap env e1 e2, atom1, List.map2 (overlap_arg env) as1 as2) |> replace_it + | StrE efs1, StrE efs2 when List.map (fun (a, _) -> a) efs1 = List.map (fun (a, _) -> a) efs2 -> + StrE (List.map2 (fun (a1, e1) (_, e2) -> (a1, overlap env e1 e2)) efs1 efs2) |> replace_it + | DotE (e1, atom1), DotE (e2, atom2) when eq_atom atom1 atom2 -> + DotE (overlap env e1 e2, atom1) |> replace_it | CompE (e1, e1'), CompE (e2, e2') -> CompE (overlap env e1 e2, overlap env e1' e2') |> replace_it | LenE e1, LenE e2 -> @@ -138,8 +138,8 @@ let rec overlap env e1 e2 = if eq_exp e1 e2 then e1 else IterE (overlap env e1 e2, itere1) |> replace_it | ProjE (e1, i1), ProjE (e2, i2) when i1 = i2 -> ProjE (overlap env e1 e2, i1) |> replace_it - | UncaseE (e1, op1, as1), UncaseE (e2, op2, as2) when eq_mixop op1 op2 -> - UncaseE (overlap env e1 e2, op1, List.map2 (overlap_arg env) as1 as2) |> replace_it + | UncaseE (e1, op1), UncaseE (e2, op2) when eq_mixop op1 op2 -> + UncaseE (overlap env e1 e2, op1) |> replace_it | OptE (Some e1), OptE (Some e2) -> OptE (Some (overlap env e1 e2)) |> replace_it | TheE e1, TheE e2 -> @@ -152,8 +152,8 @@ let rec overlap env e1 e2 = if eq_exp e1 e2 then e1 else CatE (overlap env e1 e2, overlap env e1' e2') |> replace_it | MemE (e1, e1'), MemE (e2, e2') -> MemE (overlap env e1 e2, overlap env e1' e2') |> replace_it - | CaseE (mixop1, as1, e1), CaseE (mixop2, as2, e2) when eq_mixop mixop1 mixop2 -> - CaseE (mixop1, List.map2 (overlap_arg env) as1 as2, overlap env e1 e2) |> replace_it + | CaseE (mixop1, e1), CaseE (mixop2, e2) when eq_mixop mixop1 mixop2 -> + CaseE (mixop1, overlap env e1 e2) |> replace_it | SubE (e1, typ1, typ1'), SubE (e2, typ2, typ2') when eq_typ typ1 typ2 && eq_typ typ1' typ2' -> SubE (overlap env e1 e2, typ1, typ1') |> replace_it (* HARDCODE: Prevent vals overlapped into instr *) @@ -235,13 +235,13 @@ let rec collect_unified template e = if eq_exp template e then [], [] else | CompE (e1, e1'), CompE (e2, e2') | CatE (e1, e1'), CatE (e2, e2') | MemE (e1, e1'), MemE (e2, e2') -> pairwise_concat (collect_unified e1 e2) (collect_unified e1' e2') - | DotE (e1, _, as1), DotE (e2, _, as2) - | UncaseE (e1, _, as1), UncaseE (e2, _, as2) - | CaseE (_, as1, e1), CaseE (_, as2, e2) -> pairwise_concat (collect_unified e1 e2) (collect_unified_args as1 as2) + | DotE (e1, _), DotE (e2, _) + | UncaseE (e1, _), UncaseE (e2, _) + | CaseE (_, e1), CaseE (_, e2) -> collect_unified e1 e2 | SliceE (e1, e1', e1''), SliceE (e2, e2', e2'') -> pairwise_concat (pairwise_concat (collect_unified e1 e2) (collect_unified e1' e2')) (collect_unified e1'' e2'') | StrE efs1, StrE efs2 -> - List.fold_left2 (fun acc (_, as1, e1) (_, as2, e2) -> pairwise_concat acc (pairwise_concat (collect_unified e1 e2) (collect_unified_args as1 as2))) ([], []) efs1 efs2 + List.fold_left2 (fun acc (_, e1) (_, e2) -> pairwise_concat acc (collect_unified e1 e2)) ([], []) efs1 efs2 | TupE es1, TupE es2 | ListE es1, ListE es2 -> List.fold_left2 (fun acc e1 e2 -> pairwise_concat acc (collect_unified e1 e2)) ([], []) es1 es2 diff --git a/spectec/src/middlend/sideconditions.ml b/spectec/src/middlend/sideconditions.ml index 43a616b772..51252340e3 100644 --- a/spectec/src/middlend/sideconditions.ml +++ b/spectec/src/middlend/sideconditions.ml @@ -96,13 +96,12 @@ let rec t_exp env e : prem list = -> t_exp env exp1 @ t_path env path @ t_exp env exp2 | CallE (_, args) -> List.concat_map (t_arg env) args - | CaseE (_, args, exp) - | UncaseE (exp, _, args) - | DotE (exp, _, args) - -> List.concat_map (t_arg env) args @ t_exp env exp + | CaseE (_, exp) + | UncaseE (exp, _) + | DotE (exp, _) + -> t_exp env exp | StrE fields - -> List.concat_map (fun (_, args, exp) -> - List.concat_map (t_arg env) args @ t_exp env exp) fields + -> List.concat_map (fun (_, exp) -> t_exp env exp) fields | TupE es | ListE es -> List.concat_map (t_exp env) es | IterE (e1, iterexp) @@ -121,7 +120,7 @@ and t_path env path = match path.it with | RootP -> [] | IdxP (path, e) -> t_path env path @ t_exp env e | SliceP (path, e1, e2) -> t_path env path @ t_exp env e1 @ t_exp env e2 - | DotP (path, _, args) -> t_path env path @ List.concat_map (t_arg env) args + | DotP (path, _) -> t_path env path and t_arg env arg = match arg.it with | ExpA exp -> t_exp env exp diff --git a/spectec/src/middlend/sub.ml b/spectec/src/middlend/sub.ml index 2c0180853b..fc3efee899 100644 --- a/spectec/src/middlend/sub.ml +++ b/spectec/src/middlend/sub.ml @@ -148,8 +148,8 @@ and t_exp' env = function | SliceE (exp1, exp2, exp3) -> SliceE (t_exp env exp1, t_exp env exp2, t_exp env exp3) | UpdE (exp1, path, exp2) -> UpdE (t_exp env exp1, t_path env path, t_exp env exp2) | ExtE (exp1, path, exp2) -> ExtE (t_exp env exp1, t_path env path, t_exp env exp2) - | StrE fields -> StrE (List.map (fun (a, args, e) -> a, t_args env args, t_exp env e) fields) - | DotE (e, a, args) -> DotE (t_exp env e, a, t_args env args) + | StrE fields -> StrE (List.map (fun (a, e) -> a, t_exp env e) fields) + | DotE (e, a) -> DotE (t_exp env e, a) | CompE (exp1, exp2) -> CompE (t_exp env exp1, t_exp env exp2) | LiftE exp -> LiftE (t_exp env exp) | LenE exp -> LenE (t_exp env exp) @@ -157,14 +157,14 @@ and t_exp' env = function | CallE (a, args) -> CallE (a, t_args env args) | IterE (e, iterexp) -> IterE (t_exp env e, t_iterexp env iterexp) | ProjE (e, i) -> ProjE (t_exp env e, i) - | UncaseE (e, mixop, args) -> UncaseE (t_exp env e, mixop, t_args env args) + | UncaseE (e, mixop) -> UncaseE (t_exp env e, mixop) | OptE None -> OptE None | OptE (Some exp) -> OptE (Some exp) | TheE exp -> TheE exp | ListE es -> ListE (List.map (t_exp env) es) | CatE (exp1, exp2) -> CatE (t_exp env exp1, t_exp env exp2) | MemE (exp1, exp2) -> MemE (t_exp env exp1, t_exp env exp2) - | CaseE (mixop, args, e) -> CaseE (mixop, t_args env args, t_exp env e) + | CaseE (mixop, e) -> CaseE (mixop, t_exp env e) | CvtE (exp, t1, t2) -> CvtE (t_exp env exp, t1, t2) | SubE (e, t1, t2) -> SubE (e, t1, t2) @@ -179,7 +179,7 @@ and t_path' env = function | RootP -> RootP | IdxP (path, e) -> IdxP (t_path env path, t_exp env e) | SliceP (path, e1, e2) -> SliceP (t_path env path, t_exp env e1, t_exp env e2) - | DotP (path, a, args) -> DotP (t_path env path, a, t_args env args) + | DotP (path, a) -> DotP (t_path env path, a) and t_path env x = { x with it = t_path' env x.it; note = t_typ env x.note } @@ -334,14 +334,14 @@ let insert_injections env (def : def) : def list = in let xe = TupE xes $$ no_region % arg_typ in DefD (params, - [ExpA (CaseE (a, [], xe) $$ no_region % real_ty) $ no_region], - CaseE (a, [], xe) $$ no_region % sup_ty, []) $ no_region + [ExpA (CaseE (a, xe) $$ no_region % real_ty) $ no_region], + CaseE (a, xe) $$ no_region % sup_ty, []) $ no_region | _ -> let x = "x" $ no_region in let xe = VarE x $$ no_region % arg_typ in DefD ([ExpP (x, arg_typ) $ x.at], - [ExpA (CaseE (a, [], xe) $$ no_region % real_ty) $ no_region], - CaseE (a, [], xe) $$ no_region % sup_ty, []) $ no_region + [ExpA (CaseE (a, xe) $$ no_region % real_ty) $ no_region], + CaseE (a, xe) $$ no_region % sup_ty, []) $ no_region ) cases_sub in DecD (name, params_sub @ params_sup' @ [ExpP ("_" $ no_region, sub_ty) $ no_region], sup_ty, clauses) $ no_region ) pairs diff --git a/spectec/src/middlend/totalize.ml b/spectec/src/middlend/totalize.ml index b4495e351e..2ca9ef6375 100644 --- a/spectec/src/middlend/totalize.ml +++ b/spectec/src/middlend/totalize.ml @@ -86,15 +86,15 @@ and t_exp' env = function | SliceE (exp1, exp2, exp3) -> SliceE (t_exp env exp1, t_exp env exp2, t_exp env exp3) | UpdE (exp1, path, exp2) -> UpdE (t_exp env exp1, t_path env path, t_exp env exp2) | ExtE (exp1, path, exp2) -> ExtE (t_exp env exp1, t_path env path, t_exp env exp2) - | StrE fields -> StrE (List.map (fun (a, args, e) -> a, List.map (t_arg env) args, t_exp env e) fields) - | DotE (e, a, args) -> DotE (t_exp env e, a, List.map (t_arg env) args) + | StrE fields -> StrE (List.map (fun (a, e) -> a, t_exp env e) fields) + | DotE (e, a) -> DotE (t_exp env e, a) | CompE (exp1, exp2) -> CompE (t_exp env exp1, t_exp env exp2) | LenE exp -> LenE (t_exp env exp) | TupE es -> TupE (List.map (t_exp env) es) | CallE (a, args) -> CallE (a, List.map (t_arg env) args) | IterE (e, iterexp) -> IterE (t_exp env e, t_iterexp env iterexp) | ProjE (e, i) -> ProjE (t_exp env e, i) - | UncaseE (e, mixop, args) -> UncaseE (t_exp env e, mixop, List.map (t_arg env) args) + | UncaseE (e, mixop) -> UncaseE (t_exp env e, mixop) | OptE None -> OptE None | OptE (Some exp) -> OptE (Some (t_exp env exp)) | TheE exp -> TheE (t_exp env exp) @@ -102,7 +102,7 @@ and t_exp' env = function | LiftE exp -> LiftE (t_exp env exp) | CatE (exp1, exp2) -> CatE (t_exp env exp1, t_exp env exp2) | MemE (exp1, exp2) -> MemE (t_exp env exp1, t_exp env exp2) - | CaseE (mixop, args, e) -> CaseE (mixop, List.map (t_arg env) args, t_exp env e) + | CaseE (mixop, e) -> CaseE (mixop, t_exp env e) | CvtE (exp, t1, t2) -> CvtE (t_exp env exp, t1, t2) | SubE (exp, t1, t2) -> SubE (t_exp env exp, t_typ env t1, t_typ env t2) @@ -117,7 +117,7 @@ and t_path' env = function | RootP -> RootP | IdxP (path, e) -> IdxP (t_path env path, t_exp env e) | SliceP (path, e1, e2) -> SliceP (t_path env path, t_exp env e1, t_exp env e2) - | DotP (path, a, args) -> DotP (t_path env path, a, List.map (t_arg env) args) + | DotP (path, a) -> DotP (t_path env path, a) and t_path env x = { x with it = t_path' env x.it; note = t_typ env x.note } diff --git a/spectec/src/middlend/unthe.ml b/spectec/src/middlend/unthe.ml index 2d3d5c9a13..7f4e024637 100644 --- a/spectec/src/middlend/unthe.ml +++ b/spectec/src/middlend/unthe.ml @@ -117,7 +117,6 @@ and t_exp2 n = phrase t_exp' n and t_e n x k = unary t_exp n x k and t_ee n x k = binary t_exp t_exp n x k -and t_eas n x k = binary t_exp (fun n xs -> t_list t_arg n xs Fun.id) n x k and t_eee n x k = ternary t_exp t_exp t_exp n x k and t_epe n x k = ternary t_exp t_path t_exp n x k @@ -126,15 +125,15 @@ and t_exp' n e : eqns * exp' = | VarE _ | BoolE _ | NumE _ | TextE _ | OptE None -> [], e | UnE (uo, nto, exp) -> t_e n exp (fun exp' -> UnE (uo, nto, exp')) - | DotE (exp, a, args) -> t_eas n (exp, args) (fun (exp', args') -> DotE (exp', a, args')) + | DotE (exp, a) -> t_e n exp (fun exp' -> DotE (exp', a)) | LenE exp -> t_e n exp (fun exp' -> LenE exp') | CallE (f, args) -> t_list t_arg n args (fun args' -> CallE (f, args')) | ProjE (exp, i) -> t_e n exp (fun exp' -> ProjE (exp', i)) - | UncaseE (exp, mo, args) -> t_eas n (exp, args) (fun (exp', args') -> UncaseE (exp', mo, args')) + | UncaseE (exp, mo) -> t_e n exp (fun exp' -> UncaseE (exp', mo)) | OptE (Some exp) -> t_e n exp (fun exp' -> OptE (Some exp')) | TheE exp -> t_e n exp (fun exp' -> TheE exp') | LiftE exp -> t_e n exp (fun exp' -> LiftE exp') - | CaseE (mixop, args, exp) -> t_eas n (exp, args) (fun (exp', args') -> CaseE (mixop, args', exp')) + | CaseE (mixop, exp) -> t_e n exp (fun exp' -> CaseE (mixop, exp')) | CvtE (exp, a, b) -> t_e n exp (fun exp' -> CvtE (exp', a, b)) | SubE (exp, a, b) -> t_e n exp (fun exp' -> SubE (exp', a, b)) @@ -161,8 +160,8 @@ and t_exp' n e : eqns * exp' = let iterexp''' = update_iterexp_vars (Il.Free.free_exp e') iterexp'' in eqns1' @ eqns2, IterE (e', iterexp''') -and t_field n ((a, args, e) : expfield) = - binary (fun n xs -> t_list t_arg n xs Fun.id) t_exp n (args, e) (fun (args', e') -> (a, args', e')) +and t_field n ((a, e) : expfield) = + unary t_exp n e (fun e' -> (a, e')) and t_iterexp n iterexp = binary t_iter t_iterparams n iterexp Fun.id @@ -183,7 +182,7 @@ and t_path' n path = match path with | RootP -> [], path | IdxP (path, e) -> binary t_path t_exp n (path, e) (fun (path', e') -> IdxP (path', e')) | SliceP (path, e1, e2) -> ternary t_path t_exp t_exp n (path, e1, e2) (fun (path', e1', e2') -> SliceP (path', e1', e2')) - | DotP (path, a, args) -> binary t_path (fun n xs -> t_list t_arg n xs Fun.id) n (path, args) (fun (path', args') -> DotP (path', a, args')) + | DotP (path, a) -> unary t_path n path (fun path' -> DotP (path', a)) and t_arg n = phrase t_arg' n From 4c29c3b0e4211395f8d492138c24458de9b2bcfc Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Mon, 19 Jan 2026 16:26:27 +0100 Subject: [PATCH 16/23] Reorder field/case quantifiers --- spectec/src/al/valid.ml | 10 +- spectec/src/backend-ast/print.ml | 8 +- spectec/src/frontend/elab.ml | 82 +- spectec/src/il/ast.ml | 4 +- spectec/src/il/eq.ml | 10 +- spectec/src/il/eval.ml | 16 +- spectec/src/il/free.ml | 8 +- spectec/src/il/fresh.ml | 6 +- spectec/src/il/fresh.mli | 2 + spectec/src/il/iter.ml | 14 +- spectec/src/il/print.ml | 11 +- spectec/src/il/subst.ml | 27 +- spectec/src/il/subst.mli | 2 - spectec/src/il/valid.ml | 28 +- spectec/src/middlend/sub.ml | 10 +- spectec/src/middlend/totalize.ml | 8 +- spectec/test-frontend/TEST.md | 71675 ++++++++++------------------- 17 files changed, 23445 insertions(+), 48476 deletions(-) diff --git a/spectec/src/al/valid.ml b/spectec/src/al/valid.ml index a202345b89..fe90248c01 100644 --- a/spectec/src/al/valid.ml +++ b/spectec/src/al/valid.ml @@ -131,7 +131,7 @@ let rec unify_deftyp_opt (deftyp: deftyp) : typ option = | StructT _ -> None | VariantT typcases when List.for_all (fun (mixop', _, _) -> is_trivial_mixop mixop') typcases -> - typcases |> List.map (fun (_mixop, (_bs, typ, _ps), _hs) -> typ) |> unify_typs_opt + typcases |> List.map (fun (_mixop, (typ, _qs, _ps), _hs) -> typ) |> unify_typs_opt | _ -> None and unify_deftyps_opt : deftyp list -> typ option = function @@ -229,7 +229,7 @@ let rec get_typfields_of_inst (inst: inst) : typfield list = match dt.it with | StructT typfields -> typfields | AliasT typ -> get_typfields typ - | VariantT [mixop, (_, typ, _), _] when is_trivial_mixop mixop -> + | VariantT [mixop, (typ, _, _), _] when is_trivial_mixop mixop -> get_typfields typ (* TODO: some variants of struct type *) | VariantT _ -> [] @@ -282,7 +282,7 @@ let check_evalctx source typ = | _ -> error_mismatch source typ (varT "evalctx") let check_field source source_typ expr_record typfield = - let atom, (_, typ, _), _ = typfield in + let atom, (typ, _, _), _ = typfield in (* TODO: Use record api *) let f e = e |> fst |> Atom.eq atom in match List.find_opt f expr_record with @@ -446,7 +446,7 @@ let access (source: source) (typ: typ) (path: path) : typ = | DotP atom -> let typfields = get_typfields typ in match List.find_opt (fun (field, _, _) -> Atom.eq field atom) typfields with - | Some (_, (_, typ', _), _) -> typ' + | Some (_, (typ', _, _), _) -> typ' | None -> error_field source typ atom @@ -571,7 +571,7 @@ and valid_expr env (expr: expr) : unit = | _ -> List.iter (valid_expr env) exprs; let tcs = get_typcases source expr.note in - let _binds, typ, _prems = find_case source tcs op in + let typ, _qs, _prems = find_case source tcs op in check_case source exprs typ; ) | CallE (id, args) -> diff --git a/spectec/src/backend-ast/print.ml b/spectec/src/backend-ast/print.ml index 2881cfe170..924e6901bf 100644 --- a/spectec/src/backend-ast/print.ml +++ b/spectec/src/backend-ast/print.ml @@ -86,11 +86,11 @@ and deftyp dt = and typbind (x, t) = Node ("bind", [id x; typ t]) -and typfield (at, (ps, t, prs), _hints) = - Node ("field", mixop (Mixop.Atom at) :: List.map param ps @ typ t :: List.map prem prs) +and typfield (at, (t, qs, prs), _hints) = + Node ("field", mixop (Mixop.Atom at) :: typ t :: List.map param qs @ List.map prem prs) -and typcase (op, (ps, t, prs), _hints) = - Node ("case", mixop op :: List.map param ps @ typ t :: List.map prem prs) +and typcase (op, (t, qs, prs), _hints) = + Node ("case", mixop op :: typ t :: List.map param qs @ List.map prem prs) (* Expressions *) diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index 83836a881d..dea6feaaf9 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -319,19 +319,6 @@ let bound_env env = } -let bind_quant env q = - match q.it with - | Il.ExpP (x, t) -> env.vars <- bind "variable" env.vars x t - | Il.TypP x -> env.typs <- bind "syntax type" env.typs x ([], Opaque) - | Il.DefP (x, ps, t) -> env.defs <- bind "definition" env.defs x (ps, t, []) - | Il.GramP (x, ps, t) -> env.grams <- bind "grammar" env.grams x (ps, t, [], None) - -let refresh_quants env qs = - let qs', s = Il.Fresh.refresh_quants qs in - List.iter (bind_quant env) qs'; - qs', s - - (* let vars env outer_dims = Map.union (fun _ _ y -> Some y) @@ -773,10 +760,8 @@ let expand_notation env t = let as_ = List.map il_arg_of_param ps in Il.Eval.(match_list match_arg (to_il_env env) Il.Subst.empty as' as_) |> Option.map (fun s -> - let mixop, (qs, t, _prems), _ = Il.Subst.subst_typcase s tc in - let qs', _s' = refresh_quants env qs in - let t' = (*Il.Subst.subst_typ s'*) t in - qs', t', mixop, Mixop.apply mixop (untup_typ' t') + let mixop, (t, _qs, _prems), _ = Il.Subst.subst_typcase s tc in + t, mixop, Mixop.apply mixop (untup_typ' t) ) | _, _ -> None ) @@ -873,7 +858,7 @@ let as_iter_notation_typ_opt env t : (typ * iter) option = let as_empty_notation_typ_opt env t : unit option = match expand_notation env t with - | Some (_, _, _, Seq []) -> Some () + | Some (_, _, Seq []) -> Some () | _ -> None @@ -916,17 +901,13 @@ let rec as_cat_typ phrase env dir t at : unit attempt = | Il.StructT tfs, dots -> if dots = Dots then error at "used record type is only partially defined at this point"; - iter_attempt (fun (_, (qs, t, _), _) -> - let env' = if qs = [] then env else local_env env in - List.iter (bind_quant env') qs; - as_cat_typ phrase env' dir t at - ) tfs + iter_attempt (fun (_, (t, _, _), _) -> as_cat_typ phrase env dir t at) tfs | _ -> fail at (phrase ^ "'s type " ^ typ_string env t ^ " is not concatenable") -let as_notation_typ phrase env dir t at : (Il.quant list * Il.typ * _ Mixop.mixop * notation) attempt = +let as_notation_typ phrase env dir t at : (Il.typ * _ Mixop.mixop * notation) attempt = match expand_notation env t with - | Some x -> Ok x + | Some not -> Ok not | _ -> fail_dir_typ env at phrase dir t "_ ... _" let is_x_typ as_x_typ env t = @@ -1225,9 +1206,8 @@ and elab_typ_definition env outer_dims tid (t : typ) : dots * Il.deftyp * dots = let nt = match t'.it with Il.NumT nt -> nt | _ -> assert false in let x = "i" $ t.at in let eid' = Il.VarE x $$ t.at % t' in - let qs = [Il.ExpP (x, t') $ t.at] in let prems' = [Il.IfPr (fe' eid' nt) $ t.at] in - let tc' = (Mixop.Arg (), (qs, Il.TupT [(x, t')] $ t.at, prems'), []) in + let tc' = (Mixop.Arg (), (Il.TupT [(x, t')] $ t.at, [], prems'), []) in NoDots, Il.VariantT [tc'] $ t.at, NoDots | _ -> let t' = elab_typ env t in @@ -1241,7 +1221,7 @@ and typ_rep env t : Il.typ = match expand env t with | Il.VarT _ as t' -> (match expand_def env (t' $ t.at) with - | Il.VariantT [_, (_, t1, _), _], NoDots -> typ_rep env t1 + | Il.VariantT [_, (t1, _, _), _], NoDots -> typ_rep env t1 | _ -> t' $ t.at ) | Il.TupT [_, t1] -> typ_rep env t1 @@ -1249,26 +1229,26 @@ and typ_rep env t : Il.typ = and elab_typfield env outer_dims tid at (tf : typfield) : Il.typfield = let atom, (t, prems), hints = tf in - let _mixop, qs, t', prems' = elab_typ_notation env outer_dims tid at t prems in + let _mixop, t', qs, prems' = elab_typ_notation env outer_dims tid at t prems in let hints' = elab_hints tid "" hints in let t'' = match t'.it with | Il.TupT [(_, t1')] when prems' = [] -> t1' | _ -> t' in - (elab_atom atom tid, (qs, t'', prems'), hints') + (elab_atom atom tid, (t'', qs, prems'), hints') and elab_typcase env outer_dims tid at (tc : typcase) : Il.typcase = let _atom, (t, prems), hints = tc in - let mixop, qs, t', prems' = elab_typ_notation env outer_dims tid at t prems in + let mixop, t', qs, prems' = elab_typ_notation env outer_dims tid at t prems in let hints' = elab_hints tid "" hints in - (mixop, (qs, t', prems'), hints') + (mixop, (t', qs, prems'), hints') and elab_typcon env outer_dims tid at (tc : typcon) : Il.typcase = let (t, prems), hints = tc in - let mixop, qs, t', prems' = elab_typ_notation env outer_dims tid at t prems in + let mixop, t', qs, prems' = elab_typ_notation env outer_dims tid at t prems in let hints' = elab_hints tid tid.it hints in - (mixop, (qs, t', prems'), hints') + (mixop, (t', qs, prems'), hints') and elab_typenum env outer_dims tid (te : typenum) : Il.typ * (Il.exp -> numtyp -> Il.exp) = assert (valid_tid tid); @@ -1303,7 +1283,7 @@ and elab_typenum env outer_dims tid (te : typenum) : Il.typ * (Il.exp -> numtyp and elab_typ_notation env outer_dims tid at (t : typ) (prems : prem nl_list) : - Il.mixop * Il.quant list * Il.typ * Il.prem list = + Il.mixop * Il.typ * Il.quant list * Il.prem list = assert (valid_tid tid); let env1 = local_env env in let mixop, xts' = elab_typ_notation' env1 tid t in @@ -1324,7 +1304,7 @@ Printf.printf "--- 3 ---\n%!"; let det2 = Det.(det_list det_prem prems') in Printf.printf "--- 4 ---\n%!"; let qs = infer_quants env1 env2 dims2 det2 [] [] [] [] [] prems' at in - mixop, qs, t', prems' + mixop, t', qs, prems' (* Debug.(log_in_at "il.infer_quants" at (fun _ -> @@ -1538,7 +1518,7 @@ and infer_exp' env e : (Il.exp' * Il.typ') attempt = let* tfs, dots = as_struct_typ "expression" env Infer t1 e1.at in if dots = Dots then error e1.at "used record type is only partially defined at this point"; - let* _, (_qs, tF, prems), _ = attempt (find_field tfs atom e1.at) t1 in + let* _, (tF, _qs, prems), _ = attempt (find_field tfs atom e1.at) t1 in let e' = Il.DotE (e1', elab_atom atom (expand_id env t1)) in let e'' = if prems = [] then e' else Il.ProjE (e' $$ e.at % tF, 0) in Ok (e'', tF.it) @@ -1825,12 +1805,12 @@ and elab_expfields env tid (efs : expfield list) (tfs : Il.typfield list) (t0 : assert (valid_tid tid); match efs, tfs with | [], [] -> Ok [] - | (atom1, e)::efs2, (atom2, (_qs, tF, prems), _)::tfs2 when atom1.it = atom2.it -> + | (atom1, e)::efs2, (atom2, (tF, _qs, prems), _)::tfs2 when atom1.it = atom2.it -> let* e' = elab_exp env e tF in let* efs2' = elab_expfields env tid efs2 tfs2 t0 at in let e' = if prems = [] then e' else tup_exp' [e'] e.at in Ok ((elab_atom atom1 tid, e') :: efs2') - | _, (atom, (_qs, tF, prems), _)::tfs2 -> + | _, (atom, (tF, _qs, prems), _)::tfs2 -> let atom' = string_of_atom atom in let* e1' = cast_empty ("omitted record field `" ^ atom' ^ "`") env tF at in let e' = if prems = [] then e1' else tup_exp' [e1'] at in @@ -1868,7 +1848,7 @@ and elab_exp_iter' env (es : exp list) (t1, iter) t at : Il.exp' attempt = | _, (List1 | ListN _) -> assert false -and elab_exp_notation env tid (e : exp) (_qs, t1, mixop, not) t : Il.exp attempt = +and elab_exp_notation env tid (e : exp) (t1, mixop, not) t : Il.exp attempt = (* Convert notation into applications of mixin operators *) assert (valid_tid tid); let* es', _s = elab_exp_notation' env tid e not in @@ -2066,7 +2046,7 @@ and elab_exp_variant env tid (e : exp) (tcs : Il.typcase list) t at : Il.exp att | _ -> fail_typ env at "expression" t in let* atom = head e in - let* mixop, (_qs, tC, _prems), _ = attempt (find_case_atom tcs atom atom.at) t in + let* mixop, (tC, _, _), _ = attempt (find_case_atom tcs atom atom.at) t in let* xts = as_tup_typ "tuple" env Check tC e.at in let not = Mixop.apply mixop xts in let* es', _s = elab_exp_notation' env tid e not in @@ -2103,7 +2083,7 @@ and elab_path' env (p : path) (t : Il.typ) : (Il.path' * Il.typ) attempt = let* tfs, dots = as_struct_typ "path" env Check t1 p1.at in if dots = Dots then error p1.at "used record type is only partially defined at this point"; - let* _, (_qs, tF, _prems), _ = attempt (find_field tfs atom p1.at) t1 in + let* _, (tF, _, _), _ = attempt (find_field tfs atom p1.at) t1 in Ok (Il.DotP (p1', elab_atom atom (expand_id env t1)), tF) @@ -2118,7 +2098,7 @@ and cast_empty phrase env (t : Il.typ) at : Il.exp attempt = | Il.IterT (_, List) -> Ok (Il.ListE [] $$ at % t) | VarT _ when is_notation_typ env t -> (match expand_notation env t with - | Some (_, _, _, Mixop.Seq []) -> Ok (Il.ListE [] $$ at % t) + | Some (_, _, Mixop.Seq []) -> Ok (Il.ListE [] $$ at % t) | _ -> fail_typ env at phrase t ) (* @@ -2162,8 +2142,8 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = | Il.VarT (x1, _), Il.VarT (x2, _) -> (match expand_def env t1', expand_def env t2' with - | (Il.VariantT [mixop1, (_qs1, tC1, _), _], NoDots), - (Il.VariantT [mixop2, (_qs2, tC2, _), _], NoDots) -> + | (Il.VariantT [mixop1, (tC1, _, _), _], NoDots), + (Il.VariantT [mixop2, (tC2, _, _), _], NoDots) -> if mixop1 = mixop2 then ( (* Two ConT's with the same operator can be cast pointwise *) @@ -2198,11 +2178,9 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = let* () = (* Shallow breadth subtyping on variants *) match - iter_attempt (fun (mixop, (qs1, tC1, _prems1), _) -> - let* _, (qs2, tC2, _prems2), _ = - attempt (find_case tcs2 mixop t1.at) t2 in - (* TODO(2, rossberg): this should take alpha-equivalence into account *) - if Il.Eq.(eq_list eq_param qs1 qs2) && equiv_typ env tC1 tC2 then + iter_attempt (fun (mixop, (tC1, _, _), _) -> + let* _, (tC2, _, _), _ = attempt (find_case tcs2 mixop t1.at) t2 in + if equiv_typ env tC1 tC2 then Ok () else fail_mixop e'.at mixop t1 "type mismatch for case" @@ -2226,7 +2204,7 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = | Il.VarT _, _ -> (match expand_def env t1' with - | Il.VariantT [mixop1, (_qs1, tC1, _), _], NoDots -> + | Il.VariantT [mixop1, (tC1, _, _), _], NoDots -> choice env [ (fun env -> (* A ConT can always be cast to a (singleton) iteration *) @@ -2264,7 +2242,7 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = | _, Il.VarT _ -> (match expand_def env t2' with - | Il.VariantT [mixop2, (_qs2, tC2, _), _], NoDots -> + | Il.VariantT [mixop2, (tC2, _, _), _], NoDots -> (* A ConT payload can be cast to the ConT *) (match expand env tC2 with | Il.TupT [_, t21'] -> diff --git a/spectec/src/il/ast.ml b/spectec/src/il/ast.ml index 4fda78c452..2360d83af4 100644 --- a/spectec/src/il/ast.ml +++ b/spectec/src/il/ast.ml @@ -40,8 +40,8 @@ and deftyp' = | StructT of typfield list (* record type *) | VariantT of typcase list (* variant type *) -and typfield = atom * (quant list * typ * prem list) * hint list (* record field *) -and typcase = mixop * (quant list * typ * prem list) * hint list (* variant case *) +and typfield = atom * (typ * quant list * prem list) * hint list (* record field *) +and typcase = mixop * (typ * quant list * prem list) * hint list (* variant case *) (* Expressions *) diff --git a/spectec/src/il/eq.ml b/spectec/src/il/eq.ml index 05d0a0e52e..fe6d6f54ea 100644 --- a/spectec/src/il/eq.ml +++ b/spectec/src/il/eq.ml @@ -54,11 +54,13 @@ and eq_deftyp dt1 dt2 = | VariantT tcs1, VariantT tcs2 -> eq_list eq_typcase tcs1 tcs2 | _, _ -> false -and eq_typfield (atom1, (_binds1, t1, prems1), _) (atom2, (_binds2, t2, prems2), _) = - eq_atom atom1 atom2 && eq_typ t1 t2 && eq_list eq_prem prems1 prems2 +and eq_typfield (atom1, (t1, qs1, prems1), _) (atom2, (t2, qs2, prems2), _) = + eq_atom atom1 atom2 && eq_typ t1 t2 && + eq_list eq_param qs1 qs2 && eq_list eq_prem prems1 prems2 -and eq_typcase (op1, (_binds1, t1, prems1), _) (op2, (_binds2, t2, prems2), _) = - eq_mixop op1 op2 && eq_typ t1 t2 && eq_list eq_prem prems1 prems2 +and eq_typcase (op1, (t1, qs1, prems1), _) (op2, (t2, qs2, prems2), _) = + eq_mixop op1 op2 && eq_typ t1 t2 && + eq_list eq_param qs1 qs2 && eq_list eq_prem prems1 prems2 (* Expressions *) diff --git a/spectec/src/il/eval.ml b/spectec/src/il/eval.ml index ac6da6e9a1..74a2de6f6e 100644 --- a/spectec/src/il/eval.ml +++ b/spectec/src/il/eval.ml @@ -921,16 +921,16 @@ and sub_typ env t1 t2 = | VarT _, VarT _ -> (match (reduce_typdef env t1').it, (reduce_typdef env t2').it with | StructT tfs1, StructT tfs2 -> - List.for_all (fun (atom, (_ps2, t2, prems2), _) -> + List.for_all (fun (atom, (t2, _qs2, prems2), _) -> match find_field tfs1 atom with - | Some (_ps1, t1, prems1) -> + | Some (t1, _qs1, prems1) -> sub_typ env t1 t2 && sub_prems env prems1 prems2 | None -> false ) tfs2 | VariantT tcs1, VariantT tcs2 -> - List.for_all (fun (mixop, (_ps1, t1, prems1), _) -> + List.for_all (fun (mixop, (t1, _qs1, prems1), _) -> match find_case tcs2 mixop with - | Some (_ps2, t2, prems2) -> + | Some (t2, _qs2, prems2) -> sub_typ env t1 t2 && sub_prems env prems1 prems2 | None -> false ) tcs1 @@ -965,16 +965,16 @@ and disj_typ env t1 t2 = (match (reduce_typdef env t1).it, (reduce_typdef env t2).it with | StructT tfs1, StructT tfs2 -> unordered (atoms tfs1) (atoms tfs2) || - List.exists (fun (atom, (_ps2, t2, _prems2), _) -> + List.exists (fun (atom, (t2, _qs2, _prems2), _) -> match find_field tfs1 atom with - | Some (_ps1, t1, _prems1) -> disj_typ env t1 t2 + | Some (t1, _qs1, _prems1) -> disj_typ env t1 t2 | None -> true ) tfs2 | VariantT tcs1, VariantT tcs2 -> Set.disjoint (mixops tcs1) (mixops tcs2) || - List.exists (fun (atom, (_ps1, t1, _prems1), _) -> + List.exists (fun (atom, (t1, _qs1, _prems1), _) -> match find_case tcs2 atom with - | Some (_ps2, t2, _prems2) -> disj_typ env t1 t2 + | Some (t2, _qs2, _prems2) -> disj_typ env t1 t2 | None -> false ) tcs1 | _, _ -> true diff --git a/spectec/src/il/free.ml b/spectec/src/il/free.ml index cb4a107043..9820ccf7c9 100644 --- a/spectec/src/il/free.ml +++ b/spectec/src/il/free.ml @@ -46,10 +46,10 @@ and free_deftyp dt = | StructT tfs -> free_list free_typfield tfs | VariantT tcs -> free_list free_typcase tcs -and free_typfield (_, (qs, t, prems), _) = - free_quants qs ++ (free_typ t ++ free_prems prems -- bound_quants qs -- bound_typ t) -and free_typcase (_, (qs, t, prems), _) = - free_quants qs ++ (free_typ t ++ free_prems prems -- bound_quants qs -- bound_typ t) +and free_typfield (_, (t, qs, prems), _) = + free_typ t ++ (free_quants qs ++ (free_prems prems -- bound_quants qs) -- bound_typ t) +and free_typcase (_, (t, qs, prems), _) = + free_typ t ++ (free_quants qs ++ (free_prems prems -- bound_quants qs) -- bound_typ t) (* Expressions *) diff --git a/spectec/src/il/fresh.ml b/spectec/src/il/fresh.ml index 222eb026ac..a13b3f7bf0 100644 --- a/spectec/src/il/fresh.ml +++ b/spectec/src/il/fresh.ml @@ -1,4 +1,3 @@ -open Ast open Util.Source module Map = Map.Make(String) @@ -36,9 +35,7 @@ let refresh_varid = refresh_id varids let refresh_defid = refresh_id defids let refresh_gramid = refresh_id gramids -let _ = Subst.Fresh.refresh_varid := refresh_varid - - +(* let refresh_quant s q = match q.it with | ExpP (x, t) -> @@ -65,3 +62,4 @@ let refresh_quant s q = let refresh_quants qs = let s, qs' = List.fold_left_map refresh_quant Subst.empty qs in qs', s +*) diff --git a/spectec/src/il/fresh.mli b/spectec/src/il/fresh.mli index 2ce6fea073..bae8cc561a 100644 --- a/spectec/src/il/fresh.mli +++ b/spectec/src/il/fresh.mli @@ -10,4 +10,6 @@ val refresh_varid : id -> id val refresh_defid : id -> id val refresh_gramid : id -> id +(* val refresh_quants : quant list -> quant list * Subst.t +*) diff --git a/spectec/src/il/iter.ml b/spectec/src/il/iter.ml index 02826645d1..44b7fb80bd 100644 --- a/spectec/src/il/iter.ml +++ b/spectec/src/il/iter.ml @@ -120,18 +120,18 @@ and dots _ = () and numtyp _nt = () and optyp = function #Bool.typ -> () | #Num.typ as nt -> numtyp nt -and typ ?(prems = []) t = +and typ ?(quants = []) ?(prems = []) t = visit_typ t; match t.it with | VarT (x, as_) -> typid x; args as_ | BoolT | TextT -> () | NumT nt -> numtyp nt - | TupT [] -> list prem prems + | TupT [] -> params quants; list prem prems | TupT ((x, t)::xts) -> typ t; let scope = scope_enter x t in varid x; - typ (TupT xts $ t.at) ~prems; + typ (TupT xts $ t.at) ~quants ~prems; scope_exit x scope | IterT (t1, it) -> typ t1; iter it @@ -142,10 +142,10 @@ and deftyp t = | StructT tfs -> list typfield tfs | VariantT tcs -> list typcase tcs -and typfield (at, (ps, t, prems), hs) = - atom at; params ps; typ t ~prems; hints hs -and typcase (op, (ps, t, prems), hs) = - mixop op; params ps; typ t ~prems; hints hs +and typfield (at, (t, quants, prems), hs) = + atom at; typ t ~quants ~prems; hints hs +and typcase (op, (t, quants, prems), hs) = + mixop op; typ t ~quants ~prems; hints hs (* Expressions *) diff --git a/spectec/src/il/print.ml b/spectec/src/il/print.ml index 7a051335d5..a85fde43af 100644 --- a/spectec/src/il/print.ml +++ b/spectec/src/il/print.ml @@ -95,15 +95,16 @@ and string_of_deftyp ?(layout = `H) dt = | VariantT tcs -> "\n | " ^ concat "\n | " (List.map (string_of_typcase ~layout) tcs) -and string_of_typfield ?(layout = `H) (atom, (qs, t, prems), _hints) = - string_of_mixop (Mixop.Atom atom) ^ - string_of_quants qs ^ " " ^ string_of_typ t ^ +and string_of_typfield ?(layout = `H) (atom, (t, qs, prems), _hints) = + string_of_mixop (Mixop.Atom atom) ^ " " ^ string_of_typ t ^ if layout = `H && prems <> [] then " -- .." else + string_of_quants qs ^ " " ^ concat "" (List.map (prefix "\n -- " string_of_prem) prems) -and string_of_typcase ?(layout = `H) (op, (qs, t, prems), _hints) = - string_of_mixop op ^ string_of_quants qs ^ string_of_typ_args t ^ +and string_of_typcase ?(layout = `H) (op, (t, qs, prems), _hints) = + string_of_mixop op ^ string_of_typ_args t ^ if layout = `H && prems <> [] then " -- .." else + string_of_quants qs ^ " " ^ concat "" (List.map (prefix "\n -- " string_of_prem) prems) diff --git a/spectec/src/il/subst.ml b/spectec/src/il/subst.ml index abe73a00c2..475c377f6e 100644 --- a/spectec/src/il/subst.ml +++ b/spectec/src/il/subst.ml @@ -1,11 +1,6 @@ open Util.Source open Ast -module Fresh = -struct - let refresh_varid = ref (fun _ -> assert false) -end - (* Data Structure *) @@ -100,12 +95,12 @@ and subst_iterexp : 'a. subst -> (subst -> 'a -> 'a) -> 'a -> _ -> 'a * _ = let it', xxts1 = match it with | ListN (e, Some x) -> - let x' = !Fresh.refresh_varid x in + let x' = Fresh.refresh_varid x in ListN (e, Some x'), [(x, x', NumT `NatT $ x.at)] | _ -> it, [] in let it'' = subst_iter s it' in - let xes' = List.map (fun (x, e) -> !Fresh.refresh_varid x, subst_exp s e) xes in + let xes' = List.map (fun (x, e) -> Fresh.refresh_varid x, subst_exp s e) xes in let xxts = List.map2 (fun (x, _) (x', e') -> x, x', e'.note) xes xes' in let s' = List.fold_left (fun s (x, x', t) -> @@ -138,7 +133,7 @@ and subst_typ' s t = and subst_tup_typ s = function | [] -> [], s | (x, t)::xts -> - let x' = !Fresh.refresh_varid x in + let x' = Fresh.refresh_varid x in let t' = subst_typ s t in let s' = add_varid s x (VarE x' $$ x'.at % t') in let xts', s'' = subst_tup_typ s' xts in @@ -151,15 +146,15 @@ and subst_deftyp s dt = | VariantT tcs -> VariantT (subst_list subst_typcase s tcs) ) $ dt.at -and subst_typfield s (atom, (qs, t, prems), hints) = - let qs', s' = subst_quants s qs in - let t', s'' = subst_typ' s' t in - (atom, (qs', t', subst_list subst_prem s'' prems), hints) +and subst_typfield s (atom, (t, qs, prems), hints) = + let t', s' = subst_typ' s t in + let qs', s'' = subst_quants s' qs in + (atom, (t', qs', subst_list subst_prem s'' prems), hints) -and subst_typcase s (op, (qs, t, prems), hints) = - let qs', s' = subst_quants s qs in - let t', s'' = subst_typ' s' t in - (op, (qs', t', subst_list subst_prem s'' prems), hints) +and subst_typcase s (op, (t, qs, prems), hints) = + let t', s' = subst_typ' s t in + let qs', s'' = subst_quants s' qs in + (op, (t', qs', subst_list subst_prem s'' prems), hints) (* Expressions *) diff --git a/spectec/src/il/subst.mli b/spectec/src/il/subst.mli index a0f51bc7d7..c8fd8fc5d8 100644 --- a/spectec/src/il/subst.mli +++ b/spectec/src/il/subst.mli @@ -43,5 +43,3 @@ val subst_args : subst -> arg list -> arg list val subst_params : subst -> param list -> param list * subst val subst_list : (subst -> 'a -> 'a) -> subst -> 'a list -> 'a list - -module Fresh : sig val refresh_varid : (id -> id) ref end diff --git a/spectec/src/il/valid.ml b/spectec/src/il/valid.ml index 312a15bf00..a564f088f1 100644 --- a/spectec/src/il/valid.ml +++ b/spectec/src/il/valid.ml @@ -81,7 +81,7 @@ let rec as_comp_typ phrase env dir t at = match expand_typdef env t with | AliasT {it = IterT _; _} -> () | StructT tfs -> - List.iter (fun (_, (_, t, _), _) -> as_comp_typ phrase env dir t at) tfs + List.iter (fun (_, (t, _, _), _) -> as_comp_typ phrase env dir t at) tfs | _ -> error at (phrase ^ "'s type `" ^ string_of_typ t ^ "` is not composable") @@ -249,14 +249,14 @@ and valid_deftyp env dt = check_mixops "variant" "case" (List.map (fun (op, _, _) -> op) tcs) dt.at; List.iter (valid_typcase env) tcs -and valid_typfield env (_atom, (qs, t, prems), _hints) = +and valid_typfield env (_atom, (t, qs, prems), _hints) = let env' = valid_typ_bind env t in let env'' = valid_quants env' qs in List.iter (valid_prem env'') prems -and valid_typcase env (mixop, (qs, t, prems), _hints) = +and valid_typcase env (mixop, (t, qs, prems), _hints) = Debug.(log_at "il.valid_typcase" t.at - (fun _ -> fmt "%s %s" (il_quants qs) (il_typ t)) + (fun _ -> fmt "%s" (il_typ t)) (fun _ -> "ok") ) @@ fun _ -> let arity = @@ -295,7 +295,7 @@ and infer_exp (env : Env.t) e : typ = | StrE _ -> error e.at "cannot infer type of record" | DotE (e1, atom) -> let tfs = as_struct_typ "expression" env Infer (infer_exp env e1) e1.at in - let _qs, t, _prems = find_field tfs atom e1.at in + let t, _qs, _prems = find_field tfs atom e1.at in t | TupE es -> TupT (List.map (fun eI -> "_" $ eI.at, infer_exp env eI) es) $ e.at @@ -313,7 +313,7 @@ and infer_exp (env : Env.t) e : typ = | UncaseE (e1, op) -> let t1 = infer_exp env e1 in (match as_variant_typ "expression" env Infer t1 e1.at with - | [(op', (_, t, _), _)] when Eq.eq_mixop op op' -> t + | [(op', (t, _, _), _)] when Eq.eq_mixop op op' -> t | _ -> error e.at "invalid case projection"; ) | OptE _ -> error e.at "cannot infer type of option" @@ -416,7 +416,7 @@ try let t1 = infer_exp env e1 in valid_exp env e1 t1; let tfs = as_struct_typ "expression" env Check t1 e1.at in - let _qs, t', _prems = find_field tfs atom e1.at in + let t', _qs, _prems = find_field tfs atom e1.at in equiv_typ env t' t e.at | CompE (e1, e2) -> let _ = as_comp_typ "expression" env Check t e.at in @@ -465,7 +465,7 @@ try let t1 = infer_exp env e1 in valid_exp ~side env e1 t1; (match as_variant_typ "expression" env Infer t1 e1.at with - | [(op', (_qs, t', _), _)] when Eq.eq_mixop op op' -> + | [(op', (t', _, _), _)] when Eq.eq_mixop op op' -> equiv_typ env t' t e.at | _ -> error e.at "invalid case projection"; ) @@ -491,7 +491,7 @@ try valid_exp env e2 t | CaseE (op, e1) -> let cases = as_variant_typ "case" env Check t e.at in - let _qs, t1, _prems = find_case cases op e1.at in + let t1, _qs, _prems = find_case cases op e1.at in valid_exp ~side env e1 t1 | CvtE (e1, nt1, nt2) -> valid_exp ~side env e1 (NumT nt1 $ e1.at); @@ -516,11 +516,11 @@ and valid_expmix ?(side = `Rhs) env mixop e (mixop', t) at = ); valid_exp ~side env e t -and valid_expfield ~side env (atom1, e) (atom2, (qs, t, _prems), _) = +and valid_expfield ~side env (atom1, e) (atom2, (t, _qs, _prems), _) = Debug.(log_in_at "il.valid_expfield" e.at - (fun _ -> fmt "%s %s :%s %s%s %s" + (fun _ -> fmt "%s %s :%s %s %s" (il_atom atom1) (il_exp e) (il_side side) - (il_atom atom2) (il_quants qs) (il_typ t) + (il_atom atom2) (il_typ t) ) ); if not (Eq.eq_atom atom1 atom2) then error e.at "unexpected record field"; @@ -544,7 +544,7 @@ and valid_path env p t : typ = | DotP (p1, atom) -> let t1 = valid_path env p1 t in let tfs = as_struct_typ "path" env Check t1 p1.at in - let _qs, t, _prems = find_field tfs atom p1.at in + let t, _qs, _prems = find_field tfs atom p1.at in t in equiv_typ env p.note t' p.at; @@ -760,7 +760,7 @@ let rec valid_def env d : Env.t = List.iter (valid_inst env' ps) insts; Env.bind_typ env x (ps, insts); | RelD (x, mixop, t, rules) -> - valid_typcase env (mixop, ([], t, []), []); + valid_typcase env (mixop, (t, [], []), []); List.iter (valid_rule env mixop t) rules; Env.bind_rel env x (mixop, t, rules) | DecD (x, ps, t, clauses) -> diff --git a/spectec/src/middlend/sub.ml b/spectec/src/middlend/sub.ml index fc3efee899..1db340d051 100644 --- a/spectec/src/middlend/sub.ml +++ b/spectec/src/middlend/sub.ml @@ -132,10 +132,10 @@ and t_deftyp' env = function | StructT typfields -> StructT (List.map (t_typfield env) typfields) | VariantT typcases -> VariantT (List.map (t_typcase env) typcases) -and t_typfield env (atom, (params, t, prems), hints) = - (atom, (t_params env params, t_typ env t, t_prems env prems), hints) -and t_typcase env (atom, (params, t, prems), hints) = - (atom, (t_params env params, t_typ env t, t_prems env prems), hints) +and t_typfield env (atom, (t, quants, prems), hints) = + (atom, (t_typ env t, t_params env quants, t_prems env prems), hints) +and t_typcase env (atom, (t, quants, prems), hints) = + (atom, (t_typ env t, t_params env quants, t_prems env prems), hints) and t_exp2 env x = { x with it = t_exp' env x.it; note = t_typ env x.note } @@ -323,7 +323,7 @@ let insert_injections env (def : def) : def list = let sub_ty = VarT (sub, List.map arg_of_param params_sub) $ no_region in let sup_ty = VarT (sup, List.map arg_of_param params_sup') $ no_region in let real_ty = VarT (real_id_sub, args_sub) $ no_region in - let clauses = List.map (fun (a, (_params, arg_typ, _prems), _hints) -> + let clauses = List.map (fun (a, (arg_typ, _quants, _prems), _hints) -> match arg_typ.it with | TupT ts -> let params = List.mapi (fun i (_, arg_typ_i) -> ExpP ("x" ^ string_of_int i $ no_region, arg_typ_i) $ no_region) ts in diff --git a/spectec/src/middlend/totalize.ml b/spectec/src/middlend/totalize.ml index 2ca9ef6375..c9813e737a 100644 --- a/spectec/src/middlend/totalize.ml +++ b/spectec/src/middlend/totalize.ml @@ -67,10 +67,10 @@ and t_deftyp' env = function | StructT typfields -> StructT (List.map (t_typfield env) typfields) | VariantT typcases -> VariantT (List.map (t_typcase env) typcases) -and t_typfield env (atom, (params, t, prems), hints) = - (atom, (t_params env params, t_typ env t, t_prems env prems), hints) -and t_typcase env (atom, (params, t, prems), hints) = - (atom, (t_params env params, t_typ env t, t_prems env prems), hints) +and t_typfield env (atom, (t, quants, prems), hints) = + (atom, (t_typ env t, t_params env quants, t_prems env prems), hints) +and t_typcase env (atom, (t, quants, prems), hints) = + (atom, (t_typ env t, t_params env quants, t_prems env prems), hints) (* Expr traversal *) diff --git a/spectec/test-frontend/TEST.md b/spectec/test-frontend/TEST.md index b0f48b7235..ac85b7e222 100644 --- a/spectec/test-frontend/TEST.md +++ b/spectec/test-frontend/TEST.md @@ -3,41 +3,54 @@ ```sh $ (../src/exe-spectec/main.exe test.spectec -o test.tex && cat test.tex) [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] ---- 1 --- [check_dims] ---- 2 --- ---- 3 --- ---- 4 --- +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- [check_dims] testmixfix DecD testmixfix(testmixfix : testmixfix) : nat* [visit_id testmixfix] not free @@ -107,127 +120,185 @@ DecD testmixfix(testmixfix : testmixfix) : nat* [check_dims] [check_dims] [check_dims] ---- 1 --- [check_dims] ---- 2 --- ---- 3 --- ---- 4 --- +[scope_enter opt] +[visit_id opt] not free [visit_id opt] no dims -[visit_id opt] +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit opt] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter O?] +[visit_id O?] not free [visit_id O?] no dims -[visit_id O?] +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit O?] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter list] +[visit_id list] not free [visit_id list] no dims -[visit_id list] +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit list] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter L*] +[visit_id L*] not free [visit_id L*] no dims -[visit_id L*] +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit L*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims -[check_dims] +[scope_exit _] +[scope_exit _] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter opt] +[visit_id opt] not free [visit_id opt] no dims -[visit_id opt] +[scope_enter _] [visit_id _] not free [visit_id _] no dims -[check_dims] +[scope_exit _] +[scope_exit opt] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter O?] +[visit_id O?] not free [visit_id O?] no dims -[visit_id O?] +[scope_enter _] [visit_id _] not free [visit_id _] no dims -[check_dims] +[scope_exit _] +[scope_exit O?] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims -[check_dims] +[scope_exit _] +[scope_exit _] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter list] +[visit_id list] not free [visit_id list] no dims -[visit_id list] +[scope_enter _] [visit_id _] not free [visit_id _] no dims -[check_dims] +[scope_exit _] +[scope_exit list] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter L*] +[visit_id L*] not free [visit_id L*] no dims -[visit_id L*] +[scope_enter _] [visit_id _] not free [visit_id _] no dims -[check_dims] +[scope_exit _] +[scope_exit L*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- [check_dims] variant DecD testemptyv1(variant : variant) : nat [visit_id variant] not free -[check_dims] opt opt#1 -[visit_exp `V1`_variant{opt#1}(opt, 0)] -[visit_exp opt#1] -[visit_id opt#1] +[check_dims] opt +[visit_exp `V1`_variant(opt, 0)] [visit_exp (opt, 0)] [visit_exp opt] [visit_id opt] @@ -235,33 +306,27 @@ DecD testemptyv1(variant : variant) : nat [visit_exp 0] => ;; test.spectec - def $testemptyv1{opt#1 : opt, opt : opt}(`V1`_variant{opt#1}(opt, 0)) = 0 -[check_dims] opt#3 -[visit_exp `V1`_variant{opt#3}(?(), 0)] -[visit_exp opt#3] -[visit_id opt#3] + def $testemptyv1{opt : opt}(`V1`_variant(opt, 0)) = 0 +[check_dims] +[visit_exp `V1`_variant(?(), 0)] [visit_exp (?(), 0)] [visit_exp ?()] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyv1{opt#3 : opt}(`V1`_variant{opt#3}(?(), 0)) = 0 -[check_dims] opt#5 -[visit_exp `V1`_variant{opt#5}(?(), 0)] -[visit_exp opt#5] -[visit_id opt#5] + def $testemptyv1(`V1`_variant(?(), 0)) = 0 +[check_dims] +[visit_exp `V1`_variant(?(), 0)] [visit_exp (?(), 0)] [visit_exp ?()] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyv1{opt#5 : opt}(`V1`_variant{opt#5}(?(), 0)) = 0 -[check_dims] opt#7 -[visit_exp `V1`_variant{opt#7}(?(`O`_O), 0)] -[visit_exp opt#7] -[visit_id opt#7] + def $testemptyv1(`V1`_variant(?(), 0)) = 0 +[check_dims] +[visit_exp `V1`_variant(?(`O`_O), 0)] [visit_exp (?(`O`_O), 0)] [visit_exp ?(`O`_O)] [visit_exp `O`_O] @@ -270,36 +335,30 @@ DecD testemptyv1(variant : variant) : nat [visit_exp 0] => ;; test.spectec - def $testemptyv1{opt#7 : opt}(`V1`_variant{opt#7}(?(`O`_O), 0)) = 0 + def $testemptyv1(`V1`_variant(?(`O`_O), 0)) = 0 [check_dims] variant DecD testemptyv2(variant : variant) : nat [visit_id variant] not free -[check_dims] O?#1 -[visit_exp `V2`_variant{`O?#1`}(?(), 0)] -[visit_exp `O?#1`] -[visit_id O?#1] +[check_dims] +[visit_exp `V2`_variant(?(), 0)] [visit_exp (?(), 0)] [visit_exp ?()] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyv2{`O?#1` : O?}(`V2`_variant{`O?#1`}(?(), 0)) = 0 -[check_dims] O?#3 -[visit_exp `V2`_variant{`O?#3`}(?(), 0)] -[visit_exp `O?#3`] -[visit_id O?#3] + def $testemptyv2(`V2`_variant(?(), 0)) = 0 +[check_dims] +[visit_exp `V2`_variant(?(), 0)] [visit_exp (?(), 0)] [visit_exp ?()] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyv2{`O?#3` : O?}(`V2`_variant{`O?#3`}(?(), 0)) = 0 -[check_dims] O?#5 -[visit_exp `V2`_variant{`O?#5`}(?(`O`_O), 0)] -[visit_exp `O?#5`] -[visit_id O?#5] + def $testemptyv2(`V2`_variant(?(), 0)) = 0 +[check_dims] +[visit_exp `V2`_variant(?(`O`_O), 0)] [visit_exp (?(`O`_O), 0)] [visit_exp ?(`O`_O)] [visit_exp `O`_O] @@ -308,7 +367,7 @@ DecD testemptyv2(variant : variant) : nat [visit_exp 0] => ;; test.spectec - def $testemptyv2{`O?#5` : O?}(`V2`_variant{`O?#5`}(?(`O`_O), 0)) = 0 + def $testemptyv2(`V2`_variant(?(`O`_O), 0)) = 0 [check_dims] variant DecD testemptyv3(variant : variant) : nat [visit_id variant] not free @@ -343,10 +402,8 @@ DecD testemptyv3(variant : variant) : nat [check_dims] variant DecD testemptyv4(variant : variant) : nat [visit_id variant] not free -[check_dims] list list#1 -[visit_exp `V4`_variant{list#1}(list, 0)] -[visit_exp list#1] -[visit_id list#1] +[check_dims] list +[visit_exp `V4`_variant(list, 0)] [visit_exp (list, 0)] [visit_exp list] [visit_id list] @@ -354,33 +411,27 @@ DecD testemptyv4(variant : variant) : nat [visit_exp 0] => ;; test.spectec - def $testemptyv4{list#1 : list, list : list}(`V4`_variant{list#1}(list, 0)) = 0 -[check_dims] list#3 -[visit_exp `V4`_variant{list#3}([], 0)] -[visit_exp list#3] -[visit_id list#3] + def $testemptyv4{list : list}(`V4`_variant(list, 0)) = 0 +[check_dims] +[visit_exp `V4`_variant([], 0)] [visit_exp ([], 0)] [visit_exp []] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyv4{list#3 : list}(`V4`_variant{list#3}([], 0)) = 0 -[check_dims] list#5 -[visit_exp `V4`_variant{list#5}([], 0)] -[visit_exp list#5] -[visit_id list#5] + def $testemptyv4(`V4`_variant([], 0)) = 0 +[check_dims] +[visit_exp `V4`_variant([], 0)] [visit_exp ([], 0)] [visit_exp []] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyv4{list#5 : list}(`V4`_variant{list#5}([], 0)) = 0 -[check_dims] list#7 -[visit_exp `V4`_variant{list#7}([`L`_L], 0)] -[visit_exp list#7] -[visit_id list#7] + def $testemptyv4(`V4`_variant([], 0)) = 0 +[check_dims] +[visit_exp `V4`_variant([`L`_L], 0)] [visit_exp ([`L`_L], 0)] [visit_exp [`L`_L]] [visit_exp `L`_L] @@ -389,11 +440,9 @@ DecD testemptyv4(variant : variant) : nat [visit_exp 0] => ;; test.spectec - def $testemptyv4{list#7 : list}(`V4`_variant{list#7}([`L`_L], 0)) = 0 -[check_dims] list#9 -[visit_exp `V4`_variant{list#9}([`L`_L `L`_L `L`_L], 0)] -[visit_exp list#9] -[visit_id list#9] + def $testemptyv4(`V4`_variant([`L`_L], 0)) = 0 +[check_dims] +[visit_exp `V4`_variant([`L`_L `L`_L `L`_L], 0)] [visit_exp ([`L`_L `L`_L `L`_L], 0)] [visit_exp [`L`_L `L`_L `L`_L]] [visit_exp `L`_L] @@ -406,22 +455,18 @@ DecD testemptyv4(variant : variant) : nat [visit_exp 0] => ;; test.spectec - def $testemptyv4{list#9 : list}(`V4`_variant{list#9}([`L`_L `L`_L `L`_L], 0)) = 0 -[check_dims] list#11 -[visit_exp `V4`_variant{list#11}([], 0)] -[visit_exp list#11] -[visit_id list#11] + def $testemptyv4(`V4`_variant([`L`_L `L`_L `L`_L], 0)) = 0 +[check_dims] +[visit_exp `V4`_variant([], 0)] [visit_exp ([], 0)] [visit_exp []] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyv4{list#11 : list}(`V4`_variant{list#11}([], 0)) = 0 -[check_dims] list#13 -[visit_exp `V4`_variant{list#13}([`L`_L], 0)] -[visit_exp list#13] -[visit_id list#13] + def $testemptyv4(`V4`_variant([], 0)) = 0 +[check_dims] +[visit_exp `V4`_variant([`L`_L], 0)] [visit_exp ([`L`_L], 0)] [visit_exp [`L`_L]] [visit_exp `L`_L] @@ -430,11 +475,9 @@ DecD testemptyv4(variant : variant) : nat [visit_exp 0] => ;; test.spectec - def $testemptyv4{list#13 : list}(`V4`_variant{list#13}([`L`_L], 0)) = 0 -[check_dims] list#15 -[visit_exp `V4`_variant{list#15}([`L`_L `L`_L `L`_L], 0)] -[visit_exp list#15] -[visit_id list#15] + def $testemptyv4(`V4`_variant([`L`_L], 0)) = 0 +[check_dims] +[visit_exp `V4`_variant([`L`_L `L`_L `L`_L], 0)] [visit_exp ([`L`_L `L`_L `L`_L], 0)] [visit_exp [`L`_L `L`_L `L`_L]] [visit_exp `L`_L] @@ -447,36 +490,30 @@ DecD testemptyv4(variant : variant) : nat [visit_exp 0] => ;; test.spectec - def $testemptyv4{list#15 : list}(`V4`_variant{list#15}([`L`_L `L`_L `L`_L], 0)) = 0 + def $testemptyv4(`V4`_variant([`L`_L `L`_L `L`_L], 0)) = 0 [check_dims] variant DecD testemptyv5(variant : variant) : nat [visit_id variant] not free -[check_dims] L*#1 -[visit_exp `V5`_variant{`L*#1`}([], 0)] -[visit_exp `L*#1`] -[visit_id L*#1] +[check_dims] +[visit_exp `V5`_variant([], 0)] [visit_exp ([], 0)] [visit_exp []] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyv5{`L*#1` : L*}(`V5`_variant{`L*#1`}([], 0)) = 0 -[check_dims] L*#3 -[visit_exp `V5`_variant{`L*#3`}([], 0)] -[visit_exp `L*#3`] -[visit_id L*#3] + def $testemptyv5(`V5`_variant([], 0)) = 0 +[check_dims] +[visit_exp `V5`_variant([], 0)] [visit_exp ([], 0)] [visit_exp []] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyv5{`L*#3` : L*}(`V5`_variant{`L*#3`}([], 0)) = 0 -[check_dims] L*#5 -[visit_exp `V5`_variant{`L*#5`}([`L`_L], 0)] -[visit_exp `L*#5`] -[visit_id L*#5] + def $testemptyv5(`V5`_variant([], 0)) = 0 +[check_dims] +[visit_exp `V5`_variant([`L`_L], 0)] [visit_exp ([`L`_L], 0)] [visit_exp [`L`_L]] [visit_exp `L`_L] @@ -485,11 +522,9 @@ DecD testemptyv5(variant : variant) : nat [visit_exp 0] => ;; test.spectec - def $testemptyv5{`L*#5` : L*}(`V5`_variant{`L*#5`}([`L`_L], 0)) = 0 -[check_dims] L*#7 -[visit_exp `V5`_variant{`L*#7`}([`L`_L `L`_L `L`_L], 0)] -[visit_exp `L*#7`] -[visit_id L*#7] + def $testemptyv5(`V5`_variant([`L`_L], 0)) = 0 +[check_dims] +[visit_exp `V5`_variant([`L`_L `L`_L `L`_L], 0)] [visit_exp ([`L`_L `L`_L `L`_L], 0)] [visit_exp [`L`_L `L`_L `L`_L]] [visit_exp `L`_L] @@ -502,22 +537,18 @@ DecD testemptyv5(variant : variant) : nat [visit_exp 0] => ;; test.spectec - def $testemptyv5{`L*#7` : L*}(`V5`_variant{`L*#7`}([`L`_L `L`_L `L`_L], 0)) = 0 -[check_dims] L*#9 -[visit_exp `V5`_variant{`L*#9`}([], 0)] -[visit_exp `L*#9`] -[visit_id L*#9] + def $testemptyv5(`V5`_variant([`L`_L `L`_L `L`_L], 0)) = 0 +[check_dims] +[visit_exp `V5`_variant([], 0)] [visit_exp ([], 0)] [visit_exp []] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyv5{`L*#9` : L*}(`V5`_variant{`L*#9`}([], 0)) = 0 -[check_dims] L*#11 -[visit_exp `V5`_variant{`L*#11`}([`L`_L], 0)] -[visit_exp `L*#11`] -[visit_id L*#11] + def $testemptyv5(`V5`_variant([], 0)) = 0 +[check_dims] +[visit_exp `V5`_variant([`L`_L], 0)] [visit_exp ([`L`_L], 0)] [visit_exp [`L`_L]] [visit_exp `L`_L] @@ -526,11 +557,9 @@ DecD testemptyv5(variant : variant) : nat [visit_exp 0] => ;; test.spectec - def $testemptyv5{`L*#11` : L*}(`V5`_variant{`L*#11`}([`L`_L], 0)) = 0 -[check_dims] L*#13 -[visit_exp `V5`_variant{`L*#13`}([`L`_L `L`_L `L`_L], 0)] -[visit_exp `L*#13`] -[visit_id L*#13] + def $testemptyv5(`V5`_variant([`L`_L], 0)) = 0 +[check_dims] +[visit_exp `V5`_variant([`L`_L `L`_L `L`_L], 0)] [visit_exp ([`L`_L `L`_L `L`_L], 0)] [visit_exp [`L`_L `L`_L `L`_L]] [visit_exp `L`_L] @@ -543,7 +572,7 @@ DecD testemptyv5(variant : variant) : nat [visit_exp 0] => ;; test.spectec - def $testemptyv5{`L*#13` : L*}(`V5`_variant{`L*#13`}([`L`_L `L`_L `L`_L], 0)) = 0 + def $testemptyv5(`V5`_variant([`L`_L `L`_L `L`_L], 0)) = 0 [check_dims] variant DecD testemptyv6(variant : variant) : nat [visit_id variant] not free @@ -619,10 +648,8 @@ DecD testemptyv6(variant : variant) : nat [check_dims] notation1 DecD testemptyn1(notation1 : notation1) : nat [visit_id notation1] not free -[check_dims] opt opt#19 -[visit_exp `%%`_notation1{opt#19}(opt, 0)] -[visit_exp opt#19] -[visit_id opt#19] +[check_dims] opt +[visit_exp `%%`_notation1(opt, 0)] [visit_exp (opt, 0)] [visit_exp opt] [visit_id opt] @@ -630,33 +657,27 @@ DecD testemptyn1(notation1 : notation1) : nat [visit_exp 0] => ;; test.spectec - def $testemptyn1{opt#19 : opt, opt : opt}(`%%`_notation1{opt#19}(opt, 0)) = 0 -[check_dims] opt#31 -[visit_exp `%%`_notation1{opt#31}(?(), 0)] -[visit_exp opt#31] -[visit_id opt#31] + def $testemptyn1{opt : opt}(`%%`_notation1(opt, 0)) = 0 +[check_dims] +[visit_exp `%%`_notation1(?(), 0)] [visit_exp (?(), 0)] [visit_exp ?()] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyn1{opt#31 : opt}(`%%`_notation1{opt#31}(?(), 0)) = 0 -[check_dims] opt#37 -[visit_exp `%%`_notation1{opt#37}(?(), 0)] -[visit_exp opt#37] -[visit_id opt#37] + def $testemptyn1(`%%`_notation1(?(), 0)) = 0 +[check_dims] +[visit_exp `%%`_notation1(?(), 0)] [visit_exp (?(), 0)] [visit_exp ?()] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyn1{opt#37 : opt}(`%%`_notation1{opt#37}(?(), 0)) = 0 -[check_dims] opt#51 -[visit_exp `%%`_notation1{opt#51}(?(`O`_O), 0)] -[visit_exp opt#51] -[visit_id opt#51] + def $testemptyn1(`%%`_notation1(?(), 0)) = 0 +[check_dims] +[visit_exp `%%`_notation1(?(`O`_O), 0)] [visit_exp (?(`O`_O), 0)] [visit_exp ?(`O`_O)] [visit_exp `O`_O] @@ -665,36 +686,30 @@ DecD testemptyn1(notation1 : notation1) : nat [visit_exp 0] => ;; test.spectec - def $testemptyn1{opt#51 : opt}(`%%`_notation1{opt#51}(?(`O`_O), 0)) = 0 + def $testemptyn1(`%%`_notation1(?(`O`_O), 0)) = 0 [check_dims] notation2 DecD testemptyn2(notation2 : notation2) : nat [visit_id notation2] not free -[check_dims] O?#17 -[visit_exp `%%`_notation2{`O?#17`}(?(), 0)] -[visit_exp `O?#17`] -[visit_id O?#17] +[check_dims] +[visit_exp `%%`_notation2(?(), 0)] [visit_exp (?(), 0)] [visit_exp ?()] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyn2{`O?#17` : O?}(`%%`_notation2{`O?#17`}(?(), 0)) = 0 -[check_dims] O?#23 -[visit_exp `%%`_notation2{`O?#23`}(?(), 0)] -[visit_exp `O?#23`] -[visit_id O?#23] + def $testemptyn2(`%%`_notation2(?(), 0)) = 0 +[check_dims] +[visit_exp `%%`_notation2(?(), 0)] [visit_exp (?(), 0)] [visit_exp ?()] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyn2{`O?#23` : O?}(`%%`_notation2{`O?#23`}(?(), 0)) = 0 -[check_dims] O?#37 -[visit_exp `%%`_notation2{`O?#37`}(?(`O`_O), 0)] -[visit_exp `O?#37`] -[visit_id O?#37] + def $testemptyn2(`%%`_notation2(?(), 0)) = 0 +[check_dims] +[visit_exp `%%`_notation2(?(`O`_O), 0)] [visit_exp (?(`O`_O), 0)] [visit_exp ?(`O`_O)] [visit_exp `O`_O] @@ -703,7 +718,7 @@ DecD testemptyn2(notation2 : notation2) : nat [visit_exp 0] => ;; test.spectec - def $testemptyn2{`O?#37` : O?}(`%%`_notation2{`O?#37`}(?(`O`_O), 0)) = 0 + def $testemptyn2(`%%`_notation2(?(`O`_O), 0)) = 0 [check_dims] notation3 DecD testemptyn3(notation3 : notation3) : nat [visit_id notation3] not free @@ -738,10 +753,8 @@ DecD testemptyn3(notation3 : notation3) : nat [check_dims] notation4 DecD testemptyn4(notation4 : notation4) : nat [visit_id notation4] not free -[check_dims] list list#27 -[visit_exp `%%`_notation4{list#27}(list, 0)] -[visit_exp list#27] -[visit_id list#27] +[check_dims] list +[visit_exp `%%`_notation4(list, 0)] [visit_exp (list, 0)] [visit_exp list] [visit_id list] @@ -749,33 +762,27 @@ DecD testemptyn4(notation4 : notation4) : nat [visit_exp 0] => ;; test.spectec - def $testemptyn4{list#27 : list, list : list}(`%%`_notation4{list#27}(list, 0)) = 0 -[check_dims] list#39 -[visit_exp `%%`_notation4{list#39}([], 0)] -[visit_exp list#39] -[visit_id list#39] + def $testemptyn4{list : list}(`%%`_notation4(list, 0)) = 0 +[check_dims] +[visit_exp `%%`_notation4([], 0)] [visit_exp ([], 0)] [visit_exp []] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyn4{list#39 : list}(`%%`_notation4{list#39}([], 0)) = 0 -[check_dims] list#45 -[visit_exp `%%`_notation4{list#45}([], 0)] -[visit_exp list#45] -[visit_id list#45] + def $testemptyn4(`%%`_notation4([], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation4([], 0)] [visit_exp ([], 0)] [visit_exp []] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyn4{list#45 : list}(`%%`_notation4{list#45}([], 0)) = 0 -[check_dims] list#59 -[visit_exp `%%`_notation4{list#59}([`L`_L], 0)] -[visit_exp list#59] -[visit_id list#59] + def $testemptyn4(`%%`_notation4([], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation4([`L`_L], 0)] [visit_exp ([`L`_L], 0)] [visit_exp [`L`_L]] [visit_exp `L`_L] @@ -784,11 +791,9 @@ DecD testemptyn4(notation4 : notation4) : nat [visit_exp 0] => ;; test.spectec - def $testemptyn4{list#59 : list}(`%%`_notation4{list#59}([`L`_L], 0)) = 0 -[check_dims] list#71 -[visit_exp `%%`_notation4{list#71}([`L`_L `L`_L `L`_L], 0)] -[visit_exp list#71] -[visit_id list#71] + def $testemptyn4(`%%`_notation4([`L`_L], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation4([`L`_L `L`_L `L`_L], 0)] [visit_exp ([`L`_L `L`_L `L`_L], 0)] [visit_exp [`L`_L `L`_L `L`_L]] [visit_exp `L`_L] @@ -801,22 +806,18 @@ DecD testemptyn4(notation4 : notation4) : nat [visit_exp 0] => ;; test.spectec - def $testemptyn4{list#71 : list}(`%%`_notation4{list#71}([`L`_L `L`_L `L`_L], 0)) = 0 -[check_dims] list#83 -[visit_exp `%%`_notation4{list#83}([], 0)] -[visit_exp list#83] -[visit_id list#83] + def $testemptyn4(`%%`_notation4([`L`_L `L`_L `L`_L], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation4([], 0)] [visit_exp ([], 0)] [visit_exp []] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyn4{list#83 : list}(`%%`_notation4{list#83}([], 0)) = 0 -[check_dims] list#95 -[visit_exp `%%`_notation4{list#95}([`L`_L], 0)] -[visit_exp list#95] -[visit_id list#95] + def $testemptyn4(`%%`_notation4([], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation4([`L`_L], 0)] [visit_exp ([`L`_L], 0)] [visit_exp [`L`_L]] [visit_exp `L`_L] @@ -825,11 +826,9 @@ DecD testemptyn4(notation4 : notation4) : nat [visit_exp 0] => ;; test.spectec - def $testemptyn4{list#95 : list}(`%%`_notation4{list#95}([`L`_L], 0)) = 0 -[check_dims] list#107 -[visit_exp `%%`_notation4{list#107}([`L`_L `L`_L `L`_L], 0)] -[visit_exp list#107] -[visit_id list#107] + def $testemptyn4(`%%`_notation4([`L`_L], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation4([`L`_L `L`_L `L`_L], 0)] [visit_exp ([`L`_L `L`_L `L`_L], 0)] [visit_exp [`L`_L `L`_L `L`_L]] [visit_exp `L`_L] @@ -842,36 +841,30 @@ DecD testemptyn4(notation4 : notation4) : nat [visit_exp 0] => ;; test.spectec - def $testemptyn4{list#107 : list}(`%%`_notation4{list#107}([`L`_L `L`_L `L`_L], 0)) = 0 + def $testemptyn4(`%%`_notation4([`L`_L `L`_L `L`_L], 0)) = 0 [check_dims] notation5 DecD testemptyn5(notation5 : notation5) : nat [visit_id notation5] not free -[check_dims] L*#25 -[visit_exp `%%`_notation5{`L*#25`}([], 0)] -[visit_exp `L*#25`] -[visit_id L*#25] +[check_dims] +[visit_exp `%%`_notation5([], 0)] [visit_exp ([], 0)] [visit_exp []] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyn5{`L*#25` : L*}(`%%`_notation5{`L*#25`}([], 0)) = 0 -[check_dims] L*#31 -[visit_exp `%%`_notation5{`L*#31`}([], 0)] -[visit_exp `L*#31`] -[visit_id L*#31] + def $testemptyn5(`%%`_notation5([], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation5([], 0)] [visit_exp ([], 0)] [visit_exp []] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyn5{`L*#31` : L*}(`%%`_notation5{`L*#31`}([], 0)) = 0 -[check_dims] L*#45 -[visit_exp `%%`_notation5{`L*#45`}([`L`_L], 0)] -[visit_exp `L*#45`] -[visit_id L*#45] + def $testemptyn5(`%%`_notation5([], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation5([`L`_L], 0)] [visit_exp ([`L`_L], 0)] [visit_exp [`L`_L]] [visit_exp `L`_L] @@ -880,11 +873,9 @@ DecD testemptyn5(notation5 : notation5) : nat [visit_exp 0] => ;; test.spectec - def $testemptyn5{`L*#45` : L*}(`%%`_notation5{`L*#45`}([`L`_L], 0)) = 0 -[check_dims] L*#57 -[visit_exp `%%`_notation5{`L*#57`}([`L`_L `L`_L `L`_L], 0)] -[visit_exp `L*#57`] -[visit_id L*#57] + def $testemptyn5(`%%`_notation5([`L`_L], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation5([`L`_L `L`_L `L`_L], 0)] [visit_exp ([`L`_L `L`_L `L`_L], 0)] [visit_exp [`L`_L `L`_L `L`_L]] [visit_exp `L`_L] @@ -897,22 +888,18 @@ DecD testemptyn5(notation5 : notation5) : nat [visit_exp 0] => ;; test.spectec - def $testemptyn5{`L*#57` : L*}(`%%`_notation5{`L*#57`}([`L`_L `L`_L `L`_L], 0)) = 0 -[check_dims] L*#69 -[visit_exp `%%`_notation5{`L*#69`}([], 0)] -[visit_exp `L*#69`] -[visit_id L*#69] + def $testemptyn5(`%%`_notation5([`L`_L `L`_L `L`_L], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation5([], 0)] [visit_exp ([], 0)] [visit_exp []] [visit_exp 0] [visit_exp 0] => ;; test.spectec - def $testemptyn5{`L*#69` : L*}(`%%`_notation5{`L*#69`}([], 0)) = 0 -[check_dims] L*#81 -[visit_exp `%%`_notation5{`L*#81`}([`L`_L], 0)] -[visit_exp `L*#81`] -[visit_id L*#81] + def $testemptyn5(`%%`_notation5([], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation5([`L`_L], 0)] [visit_exp ([`L`_L], 0)] [visit_exp [`L`_L]] [visit_exp `L`_L] @@ -921,11 +908,9 @@ DecD testemptyn5(notation5 : notation5) : nat [visit_exp 0] => ;; test.spectec - def $testemptyn5{`L*#81` : L*}(`%%`_notation5{`L*#81`}([`L`_L], 0)) = 0 -[check_dims] L*#93 -[visit_exp `%%`_notation5{`L*#93`}([`L`_L `L`_L `L`_L], 0)] -[visit_exp `L*#93`] -[visit_id L*#93] + def $testemptyn5(`%%`_notation5([`L`_L], 0)) = 0 +[check_dims] +[visit_exp `%%`_notation5([`L`_L `L`_L `L`_L], 0)] [visit_exp ([`L`_L `L`_L `L`_L], 0)] [visit_exp [`L`_L `L`_L `L`_L]] [visit_exp `L`_L] @@ -938,7 +923,7 @@ DecD testemptyn5(notation5 : notation5) : nat [visit_exp 0] => ;; test.spectec - def $testemptyn5{`L*#93` : L*}(`%%`_notation5{`L*#93`}([`L`_L `L`_L `L`_L], 0)) = 0 + def $testemptyn5(`%%`_notation5([`L`_L `L`_L `L`_L], 0)) = 0 [check_dims] notation6 DecD testemptyn6(notation6 : notation6) : nat [visit_id notation6] not free @@ -1906,6 +1891,7 @@ DecD mmmm(int : int, int : int) : int [check_dims] int [visit_id int] not free [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- @@ -1915,6 +1901,7 @@ DecD mmmm(int : int, int : int) : int [visit_exp (1 : nat <:> int)] [visit_exp 1] [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- @@ -1924,6 +1911,7 @@ DecD mmmm(int : int, int : int) : int [visit_exp (7 : nat <:> int)] [visit_exp 7] [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- @@ -1933,6 +1921,7 @@ DecD mmmm(int : int, int : int) : int [visit_exp (1 : nat <:> int)] [visit_exp 1] [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- @@ -4514,37 +4503,50 @@ DecD E(N : N) : nat ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $E{N : N}(N) = $expon(N) [check_dims] N +[check_dims] N +[visit_exp N] +[visit_id N] not free +[visit_id N] no dims +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] --- 1 --- [check_dims] N --- 2 --- --- 3 --- --- 4 --- -[visit_id _] not free -[visit_id _] no dims +[check_dims] N [visit_exp N] [visit_id N] not free [visit_id N] no dims +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] --- 1 --- [check_dims] N --- 2 --- --- 3 --- --- 4 --- -[visit_id _] not free -[visit_id _] no dims -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims [visit_exp N] [visit_id N] [check_dims] [check_dims] N +[check_dims] N +[scope_enter m] +[visit_id m] not free +[visit_id m] no dims +[scope_enter exp] +[visit_id exp] not free +[visit_id exp] no dims +[scope_exit exp] +[scope_exit m] --- 1 --- [check_dims] N exp m --- 2 --- --- 3 --- --- 4 --- -[visit_id m] -[visit_id exp] [visit_exp ((m < (2 ^ $M(N))) /\ ((((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) <= exp) /\ (exp <= (((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int)))))] [visit_exp (m < (2 ^ $M(N)))] [visit_exp m] @@ -4592,12 +4594,16 @@ DecD E(N : N) : nat [visit_exp 1] [visit_exp (1 : nat <:> int)] [visit_exp 1] +[check_dims] N +[scope_enter m] +[visit_id m] not free +[visit_id m] no dims +[scope_exit m] --- 1 --- [check_dims] N exp m --- 2 --- --- 3 --- --- 4 --- -[visit_id m] [visit_exp ((m < (2 ^ $M(N))) /\ (((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) = exp))] [visit_exp (m < (2 ^ $M(N)))] [visit_exp m] @@ -4626,17 +4632,22 @@ DecD E(N : N) : nat [visit_exp 1] [visit_exp exp] [visit_id exp] +[check_dims] N --- 1 --- [check_dims] N --- 2 --- --- 3 --- --- 4 --- +[check_dims] N +[scope_enter m] +[visit_id m] not free +[visit_id m] no dims +[scope_exit m] --- 1 --- [check_dims] N m --- 2 --- --- 3 --- --- 4 --- -[visit_id m] [visit_exp ((1 <= m) /\ (m < (2 ^ $M(N))))] [visit_exp (1 <= m)] [visit_exp 1] @@ -4660,39 +4671,31 @@ DecD fzero(N : N) : fN(N) [visit_id N] not free [visit_exp N] [visit_id N] not free -[check_dims] N exp#1 m#1 +[check_dims] N [visit_exp N] [visit_id N] -[visit_exp `POS`_fN(`SUBNORM`_fNmag{m#1, exp#1}(0))] -[visit_exp (`SUBNORM`_fNmag{m#1, exp#1}(0))] -[visit_exp `SUBNORM`_fNmag{m#1, exp#1}(0)] -[visit_exp m#1] -[visit_id m#1] -[visit_exp exp#1] -[visit_id exp#1] +[visit_exp `POS`_fN(`SUBNORM`_fNmag(0))] +[visit_exp (`SUBNORM`_fNmag(0))] +[visit_exp `SUBNORM`_fNmag(0)] [visit_exp (0)] [visit_exp 0] => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fzero{N : N, m#1 : m, exp#1 : exp}(N) = `POS`_fN(`SUBNORM`_fNmag{m#1, exp#1}(0)) + def $fzero{N : N}(N) = `POS`_fN(`SUBNORM`_fNmag(0)) [check_dims] N nat DecD fnat(N : N, nat : nat) : fN(N) [visit_id N] not free [visit_id nat] not free [visit_exp N] [visit_id N] not free -[check_dims] N exp#2 m#3 n +[check_dims] N n [visit_exp N] [visit_id N] [visit_exp n] [visit_id n] -[visit_exp `POS`_fN(`NORM`_fNmag{m#3, exp#2}(n, (0 : nat <:> int)))] -[visit_exp (`NORM`_fNmag{m#3, exp#2}(n, (0 : nat <:> int)))] -[visit_exp `NORM`_fNmag{m#3, exp#2}(n, (0 : nat <:> int))] -[visit_exp m#3] -[visit_id m#3] -[visit_exp exp#2] -[visit_id exp#2] +[visit_exp `POS`_fN(`NORM`_fNmag(n, (0 : nat <:> int)))] +[visit_exp (`NORM`_fNmag(n, (0 : nat <:> int)))] +[visit_exp `NORM`_fNmag(n, (0 : nat <:> int))] [visit_exp (n, (0 : nat <:> int))] [visit_exp n] [visit_id n] not free @@ -4700,29 +4703,25 @@ DecD fnat(N : N, nat : nat) : fN(N) [visit_exp 0] => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fnat{N : N, n : n, m#3 : m, exp#2 : exp}(N, n) = `POS`_fN(`NORM`_fNmag{m#3, exp#2}(n, (0 : nat <:> int))) + def $fnat{N : N, n : n}(N, n) = `POS`_fN(`NORM`_fNmag(n, (0 : nat <:> int))) [check_dims] N DecD fone(N : N) : fN(N) [visit_id N] not free [visit_exp N] [visit_id N] not free -[check_dims] N exp#4 m#5 +[check_dims] N [visit_exp N] [visit_id N] -[visit_exp `POS`_fN(`NORM`_fNmag{m#5, exp#4}(1, (0 : nat <:> int)))] -[visit_exp (`NORM`_fNmag{m#5, exp#4}(1, (0 : nat <:> int)))] -[visit_exp `NORM`_fNmag{m#5, exp#4}(1, (0 : nat <:> int))] -[visit_exp m#5] -[visit_id m#5] -[visit_exp exp#4] -[visit_id exp#4] +[visit_exp `POS`_fN(`NORM`_fNmag(1, (0 : nat <:> int)))] +[visit_exp (`NORM`_fNmag(1, (0 : nat <:> int)))] +[visit_exp `NORM`_fNmag(1, (0 : nat <:> int))] [visit_exp (1, (0 : nat <:> int))] [visit_exp 1] [visit_exp (0 : nat <:> int)] [visit_exp 0] => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fone{N : N, m#5 : m, exp#4 : exp}(N) = `POS`_fN(`NORM`_fNmag{m#5, exp#4}(1, (0 : nat <:> int))) + def $fone{N : N}(N) = `POS`_fN(`NORM`_fNmag(1, (0 : nat <:> int))) [check_dims] N DecD canon_(N : N) : nat [visit_id N] not free @@ -4747,13 +4746,16 @@ DecD canon_(N : N) : nat [visit_id N] [check_dims] [check_dims] +[check_dims] +[scope_enter X*] +[visit_id X*] not free +[visit_id X*] no dims +[scope_exit X*] --- 1 --- [check_dims] X --- 2 --- --- 3 --- --- 4 --- -[visit_id X*] no dims -[visit_id X*] [visit_exp (|X*{X <- `X*`}| < (2 ^ 32))] [visit_exp |X*{X <- `X*`}|] [visit_exp X*{X <- `X*`}] @@ -4779,13 +4781,16 @@ DecD canon_(N : N) : nat DecD utf8(char*) : byte* [visit_id _] not free [check_dims] +[check_dims] +[scope_enter char*] +[visit_id char*] not free +[visit_id char*] no dims +[scope_exit char*] --- 1 --- [check_dims] char --- 2 --- --- 3 --- --- 4 --- -[visit_id char*] no dims -[visit_id char*] [visit_exp (|$utf8(char*{char <- `char*`})| < (2 ^ 32))] [visit_exp |$utf8(char*{char <- `char*`})|] [visit_exp $utf8(char*{char <- `char*`})] @@ -4816,41 +4821,56 @@ DecD utf8(char*) : byte* [check_dims] [check_dims] [check_dims] ---- 1 --- [check_dims] ---- 2 --- ---- 3 --- ---- 4 --- +[scope_enter funcidx] +[visit_id funcidx] not free [visit_id funcidx] no dims -[visit_id funcidx] +[scope_exit funcidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter globalidx] +[visit_id globalidx] not free [visit_id globalidx] no dims -[visit_id globalidx] +[scope_exit globalidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tableidx] +[visit_id tableidx] not free [visit_id tableidx] no dims -[visit_id tableidx] +[scope_exit tableidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter memidx] +[visit_id memidx] not free [visit_id memidx] no dims -[visit_id memidx] +[scope_exit memidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tagidx] +[visit_id tagidx] not free [visit_id tagidx] no dims -[visit_id tagidx] +[scope_exit tagidx] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- [check_dims] [check_dims] [check_dims] @@ -4877,12 +4897,10 @@ DecD tagsxx(externidx*) : tagidx* => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $funcsxx([]) = [] -[check_dims] funcidx#1 x xx -[visit_exp [`FUNC`_externidx{funcidx#1}(x)] ++ xx*{xx <- `xx*`}] -[visit_exp [`FUNC`_externidx{funcidx#1}(x)]] -[visit_exp `FUNC`_externidx{funcidx#1}(x)] -[visit_exp funcidx#1] -[visit_id funcidx#1] +[check_dims] x xx +[visit_exp [`FUNC`_externidx(x)] ++ xx*{xx <- `xx*`}] +[visit_exp [`FUNC`_externidx(x)]] +[visit_exp `FUNC`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -4911,7 +4929,7 @@ DecD tagsxx(externidx*) : tagidx* [visit_id xx*] no dims => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $funcsxx{funcidx#1 : funcidx, x : idx, `xx*` : externidx*}([`FUNC`_externidx{funcidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $funcsxx(xx*{xx <- `xx*`}) + def $funcsxx{x : idx, `xx*` : externidx*}([`FUNC`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $funcsxx(xx*{xx <- `xx*`}) [check_dims] externidx xx [visit_exp [externidx] ++ xx*{xx <- `xx*`}] [visit_exp [externidx]] @@ -4946,12 +4964,10 @@ DecD tagsxx(externidx*) : tagidx* => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $globalsxx([]) = [] -[check_dims] globalidx#1 x xx -[visit_exp [`GLOBAL`_externidx{globalidx#1}(x)] ++ xx*{xx <- `xx*`}] -[visit_exp [`GLOBAL`_externidx{globalidx#1}(x)]] -[visit_exp `GLOBAL`_externidx{globalidx#1}(x)] -[visit_exp globalidx#1] -[visit_id globalidx#1] +[check_dims] x xx +[visit_exp [`GLOBAL`_externidx(x)] ++ xx*{xx <- `xx*`}] +[visit_exp [`GLOBAL`_externidx(x)]] +[visit_exp `GLOBAL`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -4980,7 +4996,7 @@ DecD tagsxx(externidx*) : tagidx* [visit_id xx*] no dims => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $globalsxx{globalidx#1 : globalidx, x : idx, `xx*` : externidx*}([`GLOBAL`_externidx{globalidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $globalsxx(xx*{xx <- `xx*`}) + def $globalsxx{x : idx, `xx*` : externidx*}([`GLOBAL`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $globalsxx(xx*{xx <- `xx*`}) [check_dims] externidx xx [visit_exp [externidx] ++ xx*{xx <- `xx*`}] [visit_exp [externidx]] @@ -5015,12 +5031,10 @@ DecD tagsxx(externidx*) : tagidx* => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $tablesxx([]) = [] -[check_dims] tableidx#1 x xx -[visit_exp [`TABLE`_externidx{tableidx#1}(x)] ++ xx*{xx <- `xx*`}] -[visit_exp [`TABLE`_externidx{tableidx#1}(x)]] -[visit_exp `TABLE`_externidx{tableidx#1}(x)] -[visit_exp tableidx#1] -[visit_id tableidx#1] +[check_dims] x xx +[visit_exp [`TABLE`_externidx(x)] ++ xx*{xx <- `xx*`}] +[visit_exp [`TABLE`_externidx(x)]] +[visit_exp `TABLE`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -5049,7 +5063,7 @@ DecD tagsxx(externidx*) : tagidx* [visit_id xx*] no dims => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $tablesxx{tableidx#1 : tableidx, x : idx, `xx*` : externidx*}([`TABLE`_externidx{tableidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tablesxx(xx*{xx <- `xx*`}) + def $tablesxx{x : idx, `xx*` : externidx*}([`TABLE`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tablesxx(xx*{xx <- `xx*`}) [check_dims] externidx xx [visit_exp [externidx] ++ xx*{xx <- `xx*`}] [visit_exp [externidx]] @@ -5084,12 +5098,10 @@ DecD tagsxx(externidx*) : tagidx* => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $memsxx([]) = [] -[check_dims] memidx#1 x xx -[visit_exp [`MEM`_externidx{memidx#1}(x)] ++ xx*{xx <- `xx*`}] -[visit_exp [`MEM`_externidx{memidx#1}(x)]] -[visit_exp `MEM`_externidx{memidx#1}(x)] -[visit_exp memidx#1] -[visit_id memidx#1] +[check_dims] x xx +[visit_exp [`MEM`_externidx(x)] ++ xx*{xx <- `xx*`}] +[visit_exp [`MEM`_externidx(x)]] +[visit_exp `MEM`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -5118,7 +5130,7 @@ DecD tagsxx(externidx*) : tagidx* [visit_id xx*] no dims => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $memsxx{memidx#1 : memidx, x : idx, `xx*` : externidx*}([`MEM`_externidx{memidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $memsxx(xx*{xx <- `xx*`}) + def $memsxx{x : idx, `xx*` : externidx*}([`MEM`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $memsxx(xx*{xx <- `xx*`}) [check_dims] externidx xx [visit_exp [externidx] ++ xx*{xx <- `xx*`}] [visit_exp [externidx]] @@ -5153,12 +5165,10 @@ DecD tagsxx(externidx*) : tagidx* => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $tagsxx([]) = [] -[check_dims] tagidx#1 x xx -[visit_exp [`TAG`_externidx{tagidx#1}(x)] ++ xx*{xx <- `xx*`}] -[visit_exp [`TAG`_externidx{tagidx#1}(x)]] -[visit_exp `TAG`_externidx{tagidx#1}(x)] -[visit_exp tagidx#1] -[visit_id tagidx#1] +[check_dims] x xx +[visit_exp [`TAG`_externidx(x)] ++ xx*{xx <- `xx*`}] +[visit_exp [`TAG`_externidx(x)]] +[visit_exp `TAG`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -5187,7 +5197,7 @@ DecD tagsxx(externidx*) : tagidx* [visit_id xx*] no dims => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $tagsxx{tagidx#1 : tagidx, x : idx, `xx*` : externidx*}([`TAG`_externidx{tagidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tagsxx(xx*{xx <- `xx*`}) + def $tagsxx{x : idx, `xx*` : externidx*}([`TAG`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tagsxx(xx*{xx <- `xx*`}) [check_dims] externidx xx [visit_exp [externidx] ++ xx*{xx <- `xx*`}] [visit_exp [externidx]] @@ -5217,108 +5227,117 @@ DecD tagsxx(externidx*) : tagidx* def $tagsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $tagsxx(xx*{xx <- `xx*`}) -- otherwise [check_dims] ---- 1 --- [check_dims] ---- 2 --- ---- 3 --- ---- 4 --- +[scope_enter typeidx*] +[visit_id typeidx*] not free [visit_id typeidx*] no dims -[visit_id typeidx*] +[scope_exit typeidx*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter funcidx*] +[visit_id funcidx*] not free [visit_id funcidx*] no dims -[visit_id funcidx*] +[scope_exit funcidx*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter globalidx*] +[visit_id globalidx*] not free [visit_id globalidx*] no dims -[visit_id globalidx*] +[scope_exit globalidx*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tableidx*] +[visit_id tableidx*] not free [visit_id tableidx*] no dims -[visit_id tableidx*] +[scope_exit tableidx*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter memidx*] +[visit_id memidx*] not free [visit_id memidx*] no dims -[visit_id memidx*] +[scope_exit memidx*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter elemidx*] +[visit_id elemidx*] not free [visit_id elemidx*] no dims -[visit_id elemidx*] +[scope_exit elemidx*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter dataidx*] +[visit_id dataidx*] not free [visit_id dataidx*] no dims -[visit_id dataidx*] +[scope_exit dataidx*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter localidx*] +[visit_id localidx*] not free [visit_id localidx*] no dims -[visit_id localidx*] +[scope_exit localidx*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter labelidx*] +[visit_id labelidx*] not free [visit_id labelidx*] no dims -[visit_id labelidx*] +[scope_exit labelidx*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- [check_dims] _ DecD free_opt(free?) : free [visit_id _] not free [check_dims] _ DecD free_list(free*) : free [visit_id _] not free -[check_dims] dataidx*#1 elemidx*#1 funcidx*#1 globalidx*#1 labelidx*#1 localidx*#1 memidx*#1 tableidx*#1 typeidx*#1 +[check_dims] [visit_exp ?()] -[visit_exp {`TYPES`{`typeidx*#1`} [], `FUNCS`{`funcidx*#1`} [], `GLOBALS`{`globalidx*#1`} [], `TABLES`{`tableidx*#1`} [], `MEMS`{`memidx*#1`} [], `ELEMS`{`elemidx*#1`} [], `DATAS`{`dataidx*#1`} [], `LOCALS`{`localidx*#1`} [], `LABELS`{`labelidx*#1`} []}] -[visit_exp `typeidx*#1`] -[visit_id typeidx*#1] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#1`] -[visit_id funcidx*#1] [visit_exp []] -[visit_exp `globalidx*#1`] -[visit_id globalidx*#1] [visit_exp []] -[visit_exp `tableidx*#1`] -[visit_id tableidx*#1] [visit_exp []] -[visit_exp `memidx*#1`] -[visit_id memidx*#1] [visit_exp []] -[visit_exp `elemidx*#1`] -[visit_id elemidx*#1] [visit_exp []] -[visit_exp `dataidx*#1`] -[visit_id dataidx*#1] [visit_exp []] -[visit_exp `localidx*#1`] -[visit_id localidx*#1] [visit_exp []] -[visit_exp `labelidx*#1`] -[visit_id labelidx*#1] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_opt{`typeidx*#1` : typeidx*, `funcidx*#1` : funcidx*, `globalidx*#1` : globalidx*, `tableidx*#1` : tableidx*, `memidx*#1` : memidx*, `elemidx*#1` : elemidx*, `dataidx*#1` : dataidx*, `localidx*#1` : localidx*, `labelidx*#1` : labelidx*}(?()) = {`TYPES`{`typeidx*#1`} [], `FUNCS`{`funcidx*#1`} [], `GLOBALS`{`globalidx*#1`} [], `TABLES`{`tableidx*#1`} [], `MEMS`{`memidx*#1`} [], `ELEMS`{`elemidx*#1`} [], `DATAS`{`dataidx*#1`} [], `LOCALS`{`localidx*#1`} [], `LABELS`{`labelidx*#1`} []} + def $free_opt(?()) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} [check_dims] free [visit_exp ?(free)] [visit_exp free] @@ -5328,39 +5347,21 @@ DecD free_list(free*) : free => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_opt{free : free}(?(free)) = free -[check_dims] dataidx*#2 elemidx*#2 funcidx*#2 globalidx*#2 labelidx*#2 localidx*#2 memidx*#2 tableidx*#2 typeidx*#2 +[check_dims] [visit_exp []] -[visit_exp {`TYPES`{`typeidx*#2`} [], `FUNCS`{`funcidx*#2`} [], `GLOBALS`{`globalidx*#2`} [], `TABLES`{`tableidx*#2`} [], `MEMS`{`memidx*#2`} [], `ELEMS`{`elemidx*#2`} [], `DATAS`{`dataidx*#2`} [], `LOCALS`{`localidx*#2`} [], `LABELS`{`labelidx*#2`} []}] -[visit_exp `typeidx*#2`] -[visit_id typeidx*#2] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#2`] -[visit_id funcidx*#2] [visit_exp []] -[visit_exp `globalidx*#2`] -[visit_id globalidx*#2] [visit_exp []] -[visit_exp `tableidx*#2`] -[visit_id tableidx*#2] [visit_exp []] -[visit_exp `memidx*#2`] -[visit_id memidx*#2] [visit_exp []] -[visit_exp `elemidx*#2`] -[visit_id elemidx*#2] [visit_exp []] -[visit_exp `dataidx*#2`] -[visit_id dataidx*#2] [visit_exp []] -[visit_exp `localidx*#2`] -[visit_id localidx*#2] [visit_exp []] -[visit_exp `labelidx*#2`] -[visit_id labelidx*#2] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_list{`typeidx*#2` : typeidx*, `funcidx*#2` : funcidx*, `globalidx*#2` : globalidx*, `tableidx*#2` : tableidx*, `memidx*#2` : memidx*, `elemidx*#2` : elemidx*, `dataidx*#2` : dataidx*, `localidx*#2` : localidx*, `labelidx*#2` : labelidx*}([]) = {`TYPES`{`typeidx*#2`} [], `FUNCS`{`funcidx*#2`} [], `GLOBALS`{`globalidx*#2`} [], `TABLES`{`tableidx*#2`} [], `MEMS`{`memidx*#2`} [], `ELEMS`{`elemidx*#2`} [], `DATAS`{`dataidx*#2`} [], `LOCALS`{`localidx*#2`} [], `LABELS`{`labelidx*#2`} []} + def $free_list([]) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} [check_dims] free free' [visit_exp [free] ++ free'*{free' <- `free'*`}] [visit_exp [free]] @@ -5421,334 +5422,170 @@ DecD free_labelidx(labelidx : labelidx) : free [check_dims] externidx DecD free_externidx(externidx : externidx) : free [visit_id externidx] not free -[check_dims] dataidx*#3 elemidx*#3 funcidx*#3 globalidx*#3 labelidx*#3 localidx*#3 memidx*#3 tableidx*#3 typeidx typeidx*#3 +[check_dims] typeidx [visit_exp typeidx] [visit_id typeidx] -[visit_exp {`TYPES`{`typeidx*#3`} [typeidx], `FUNCS`{`funcidx*#3`} [], `GLOBALS`{`globalidx*#3`} [], `TABLES`{`tableidx*#3`} [], `MEMS`{`memidx*#3`} [], `ELEMS`{`elemidx*#3`} [], `DATAS`{`dataidx*#3`} [], `LOCALS`{`localidx*#3`} [], `LABELS`{`labelidx*#3`} []}] -[visit_exp `typeidx*#3`] -[visit_id typeidx*#3] +[visit_exp {`TYPES` [typeidx], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp [typeidx]] [visit_exp typeidx] [visit_id typeidx] not free -[visit_exp `funcidx*#3`] -[visit_id funcidx*#3] [visit_exp []] -[visit_exp `globalidx*#3`] -[visit_id globalidx*#3] [visit_exp []] -[visit_exp `tableidx*#3`] -[visit_id tableidx*#3] [visit_exp []] -[visit_exp `memidx*#3`] -[visit_id memidx*#3] [visit_exp []] -[visit_exp `elemidx*#3`] -[visit_id elemidx*#3] [visit_exp []] -[visit_exp `dataidx*#3`] -[visit_id dataidx*#3] [visit_exp []] -[visit_exp `localidx*#3`] -[visit_id localidx*#3] [visit_exp []] -[visit_exp `labelidx*#3`] -[visit_id labelidx*#3] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_typeidx{typeidx : typeidx, `typeidx*#3` : typeidx*, `funcidx*#3` : funcidx*, `globalidx*#3` : globalidx*, `tableidx*#3` : tableidx*, `memidx*#3` : memidx*, `elemidx*#3` : elemidx*, `dataidx*#3` : dataidx*, `localidx*#3` : localidx*, `labelidx*#3` : labelidx*}(typeidx) = {`TYPES`{`typeidx*#3`} [typeidx], `FUNCS`{`funcidx*#3`} [], `GLOBALS`{`globalidx*#3`} [], `TABLES`{`tableidx*#3`} [], `MEMS`{`memidx*#3`} [], `ELEMS`{`elemidx*#3`} [], `DATAS`{`dataidx*#3`} [], `LOCALS`{`localidx*#3`} [], `LABELS`{`labelidx*#3`} []} -[check_dims] dataidx*#4 elemidx*#4 funcidx funcidx*#4 globalidx*#4 labelidx*#4 localidx*#4 memidx*#4 tableidx*#4 typeidx*#4 + def $free_typeidx{typeidx : typeidx}(typeidx) = {`TYPES` [typeidx], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] funcidx [visit_exp funcidx] [visit_id funcidx] -[visit_exp {`TYPES`{`typeidx*#4`} [], `FUNCS`{`funcidx*#4`} [funcidx], `GLOBALS`{`globalidx*#4`} [], `TABLES`{`tableidx*#4`} [], `MEMS`{`memidx*#4`} [], `ELEMS`{`elemidx*#4`} [], `DATAS`{`dataidx*#4`} [], `LOCALS`{`localidx*#4`} [], `LABELS`{`labelidx*#4`} []}] -[visit_exp `typeidx*#4`] -[visit_id typeidx*#4] +[visit_exp {`TYPES` [], `FUNCS` [funcidx], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#4`] -[visit_id funcidx*#4] [visit_exp [funcidx]] [visit_exp funcidx] [visit_id funcidx] not free -[visit_exp `globalidx*#4`] -[visit_id globalidx*#4] [visit_exp []] -[visit_exp `tableidx*#4`] -[visit_id tableidx*#4] [visit_exp []] -[visit_exp `memidx*#4`] -[visit_id memidx*#4] [visit_exp []] -[visit_exp `elemidx*#4`] -[visit_id elemidx*#4] [visit_exp []] -[visit_exp `dataidx*#4`] -[visit_id dataidx*#4] [visit_exp []] -[visit_exp `localidx*#4`] -[visit_id localidx*#4] [visit_exp []] -[visit_exp `labelidx*#4`] -[visit_id labelidx*#4] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_funcidx{funcidx : funcidx, `typeidx*#4` : typeidx*, `funcidx*#4` : funcidx*, `globalidx*#4` : globalidx*, `tableidx*#4` : tableidx*, `memidx*#4` : memidx*, `elemidx*#4` : elemidx*, `dataidx*#4` : dataidx*, `localidx*#4` : localidx*, `labelidx*#4` : labelidx*}(funcidx) = {`TYPES`{`typeidx*#4`} [], `FUNCS`{`funcidx*#4`} [funcidx], `GLOBALS`{`globalidx*#4`} [], `TABLES`{`tableidx*#4`} [], `MEMS`{`memidx*#4`} [], `ELEMS`{`elemidx*#4`} [], `DATAS`{`dataidx*#4`} [], `LOCALS`{`localidx*#4`} [], `LABELS`{`labelidx*#4`} []} -[check_dims] dataidx*#5 elemidx*#5 funcidx*#5 globalidx globalidx*#5 labelidx*#5 localidx*#5 memidx*#5 tableidx*#5 typeidx*#5 + def $free_funcidx{funcidx : funcidx}(funcidx) = {`TYPES` [], `FUNCS` [funcidx], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] globalidx [visit_exp globalidx] [visit_id globalidx] -[visit_exp {`TYPES`{`typeidx*#5`} [], `FUNCS`{`funcidx*#5`} [], `GLOBALS`{`globalidx*#5`} [globalidx], `TABLES`{`tableidx*#5`} [], `MEMS`{`memidx*#5`} [], `ELEMS`{`elemidx*#5`} [], `DATAS`{`dataidx*#5`} [], `LOCALS`{`localidx*#5`} [], `LABELS`{`labelidx*#5`} []}] -[visit_exp `typeidx*#5`] -[visit_id typeidx*#5] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [globalidx], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#5`] -[visit_id funcidx*#5] [visit_exp []] -[visit_exp `globalidx*#5`] -[visit_id globalidx*#5] [visit_exp [globalidx]] [visit_exp globalidx] [visit_id globalidx] not free -[visit_exp `tableidx*#5`] -[visit_id tableidx*#5] [visit_exp []] -[visit_exp `memidx*#5`] -[visit_id memidx*#5] [visit_exp []] -[visit_exp `elemidx*#5`] -[visit_id elemidx*#5] [visit_exp []] -[visit_exp `dataidx*#5`] -[visit_id dataidx*#5] [visit_exp []] -[visit_exp `localidx*#5`] -[visit_id localidx*#5] [visit_exp []] -[visit_exp `labelidx*#5`] -[visit_id labelidx*#5] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_globalidx{globalidx : globalidx, `typeidx*#5` : typeidx*, `funcidx*#5` : funcidx*, `globalidx*#5` : globalidx*, `tableidx*#5` : tableidx*, `memidx*#5` : memidx*, `elemidx*#5` : elemidx*, `dataidx*#5` : dataidx*, `localidx*#5` : localidx*, `labelidx*#5` : labelidx*}(globalidx) = {`TYPES`{`typeidx*#5`} [], `FUNCS`{`funcidx*#5`} [], `GLOBALS`{`globalidx*#5`} [globalidx], `TABLES`{`tableidx*#5`} [], `MEMS`{`memidx*#5`} [], `ELEMS`{`elemidx*#5`} [], `DATAS`{`dataidx*#5`} [], `LOCALS`{`localidx*#5`} [], `LABELS`{`labelidx*#5`} []} -[check_dims] dataidx*#6 elemidx*#6 funcidx*#6 globalidx*#6 labelidx*#6 localidx*#6 memidx*#6 tableidx tableidx*#6 typeidx*#6 + def $free_globalidx{globalidx : globalidx}(globalidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [globalidx], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] tableidx [visit_exp tableidx] [visit_id tableidx] -[visit_exp {`TYPES`{`typeidx*#6`} [], `FUNCS`{`funcidx*#6`} [], `GLOBALS`{`globalidx*#6`} [], `TABLES`{`tableidx*#6`} [tableidx], `MEMS`{`memidx*#6`} [], `ELEMS`{`elemidx*#6`} [], `DATAS`{`dataidx*#6`} [], `LOCALS`{`localidx*#6`} [], `LABELS`{`labelidx*#6`} []}] -[visit_exp `typeidx*#6`] -[visit_id typeidx*#6] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [tableidx], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#6`] -[visit_id funcidx*#6] [visit_exp []] -[visit_exp `globalidx*#6`] -[visit_id globalidx*#6] [visit_exp []] -[visit_exp `tableidx*#6`] -[visit_id tableidx*#6] [visit_exp [tableidx]] [visit_exp tableidx] [visit_id tableidx] not free -[visit_exp `memidx*#6`] -[visit_id memidx*#6] [visit_exp []] -[visit_exp `elemidx*#6`] -[visit_id elemidx*#6] [visit_exp []] -[visit_exp `dataidx*#6`] -[visit_id dataidx*#6] [visit_exp []] -[visit_exp `localidx*#6`] -[visit_id localidx*#6] [visit_exp []] -[visit_exp `labelidx*#6`] -[visit_id labelidx*#6] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_tableidx{tableidx : tableidx, `typeidx*#6` : typeidx*, `funcidx*#6` : funcidx*, `globalidx*#6` : globalidx*, `tableidx*#6` : tableidx*, `memidx*#6` : memidx*, `elemidx*#6` : elemidx*, `dataidx*#6` : dataidx*, `localidx*#6` : localidx*, `labelidx*#6` : labelidx*}(tableidx) = {`TYPES`{`typeidx*#6`} [], `FUNCS`{`funcidx*#6`} [], `GLOBALS`{`globalidx*#6`} [], `TABLES`{`tableidx*#6`} [tableidx], `MEMS`{`memidx*#6`} [], `ELEMS`{`elemidx*#6`} [], `DATAS`{`dataidx*#6`} [], `LOCALS`{`localidx*#6`} [], `LABELS`{`labelidx*#6`} []} -[check_dims] dataidx*#7 elemidx*#7 funcidx*#7 globalidx*#7 labelidx*#7 localidx*#7 memidx memidx*#7 tableidx*#7 typeidx*#7 + def $free_tableidx{tableidx : tableidx}(tableidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [tableidx], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] memidx [visit_exp memidx] [visit_id memidx] -[visit_exp {`TYPES`{`typeidx*#7`} [], `FUNCS`{`funcidx*#7`} [], `GLOBALS`{`globalidx*#7`} [], `TABLES`{`tableidx*#7`} [], `MEMS`{`memidx*#7`} [memidx], `ELEMS`{`elemidx*#7`} [], `DATAS`{`dataidx*#7`} [], `LOCALS`{`localidx*#7`} [], `LABELS`{`labelidx*#7`} []}] -[visit_exp `typeidx*#7`] -[visit_id typeidx*#7] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [memidx], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#7`] -[visit_id funcidx*#7] [visit_exp []] -[visit_exp `globalidx*#7`] -[visit_id globalidx*#7] [visit_exp []] -[visit_exp `tableidx*#7`] -[visit_id tableidx*#7] [visit_exp []] -[visit_exp `memidx*#7`] -[visit_id memidx*#7] [visit_exp [memidx]] [visit_exp memidx] [visit_id memidx] not free -[visit_exp `elemidx*#7`] -[visit_id elemidx*#7] [visit_exp []] -[visit_exp `dataidx*#7`] -[visit_id dataidx*#7] [visit_exp []] -[visit_exp `localidx*#7`] -[visit_id localidx*#7] [visit_exp []] -[visit_exp `labelidx*#7`] -[visit_id labelidx*#7] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_memidx{memidx : memidx, `typeidx*#7` : typeidx*, `funcidx*#7` : funcidx*, `globalidx*#7` : globalidx*, `tableidx*#7` : tableidx*, `memidx*#7` : memidx*, `elemidx*#7` : elemidx*, `dataidx*#7` : dataidx*, `localidx*#7` : localidx*, `labelidx*#7` : labelidx*}(memidx) = {`TYPES`{`typeidx*#7`} [], `FUNCS`{`funcidx*#7`} [], `GLOBALS`{`globalidx*#7`} [], `TABLES`{`tableidx*#7`} [], `MEMS`{`memidx*#7`} [memidx], `ELEMS`{`elemidx*#7`} [], `DATAS`{`dataidx*#7`} [], `LOCALS`{`localidx*#7`} [], `LABELS`{`labelidx*#7`} []} -[check_dims] dataidx*#8 elemidx elemidx*#8 funcidx*#8 globalidx*#8 labelidx*#8 localidx*#8 memidx*#8 tableidx*#8 typeidx*#8 + def $free_memidx{memidx : memidx}(memidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [memidx], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] elemidx [visit_exp elemidx] [visit_id elemidx] -[visit_exp {`TYPES`{`typeidx*#8`} [], `FUNCS`{`funcidx*#8`} [], `GLOBALS`{`globalidx*#8`} [], `TABLES`{`tableidx*#8`} [], `MEMS`{`memidx*#8`} [], `ELEMS`{`elemidx*#8`} [elemidx], `DATAS`{`dataidx*#8`} [], `LOCALS`{`localidx*#8`} [], `LABELS`{`labelidx*#8`} []}] -[visit_exp `typeidx*#8`] -[visit_id typeidx*#8] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [elemidx], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#8`] -[visit_id funcidx*#8] [visit_exp []] -[visit_exp `globalidx*#8`] -[visit_id globalidx*#8] [visit_exp []] -[visit_exp `tableidx*#8`] -[visit_id tableidx*#8] [visit_exp []] -[visit_exp `memidx*#8`] -[visit_id memidx*#8] [visit_exp []] -[visit_exp `elemidx*#8`] -[visit_id elemidx*#8] [visit_exp [elemidx]] [visit_exp elemidx] [visit_id elemidx] not free -[visit_exp `dataidx*#8`] -[visit_id dataidx*#8] [visit_exp []] -[visit_exp `localidx*#8`] -[visit_id localidx*#8] [visit_exp []] -[visit_exp `labelidx*#8`] -[visit_id labelidx*#8] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_elemidx{elemidx : elemidx, `typeidx*#8` : typeidx*, `funcidx*#8` : funcidx*, `globalidx*#8` : globalidx*, `tableidx*#8` : tableidx*, `memidx*#8` : memidx*, `elemidx*#8` : elemidx*, `dataidx*#8` : dataidx*, `localidx*#8` : localidx*, `labelidx*#8` : labelidx*}(elemidx) = {`TYPES`{`typeidx*#8`} [], `FUNCS`{`funcidx*#8`} [], `GLOBALS`{`globalidx*#8`} [], `TABLES`{`tableidx*#8`} [], `MEMS`{`memidx*#8`} [], `ELEMS`{`elemidx*#8`} [elemidx], `DATAS`{`dataidx*#8`} [], `LOCALS`{`localidx*#8`} [], `LABELS`{`labelidx*#8`} []} -[check_dims] dataidx dataidx*#9 elemidx*#9 funcidx*#9 globalidx*#9 labelidx*#9 localidx*#9 memidx*#9 tableidx*#9 typeidx*#9 + def $free_elemidx{elemidx : elemidx}(elemidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [elemidx], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] dataidx [visit_exp dataidx] [visit_id dataidx] -[visit_exp {`TYPES`{`typeidx*#9`} [], `FUNCS`{`funcidx*#9`} [], `GLOBALS`{`globalidx*#9`} [], `TABLES`{`tableidx*#9`} [], `MEMS`{`memidx*#9`} [], `ELEMS`{`elemidx*#9`} [], `DATAS`{`dataidx*#9`} [dataidx], `LOCALS`{`localidx*#9`} [], `LABELS`{`labelidx*#9`} []}] -[visit_exp `typeidx*#9`] -[visit_id typeidx*#9] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [dataidx], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#9`] -[visit_id funcidx*#9] [visit_exp []] -[visit_exp `globalidx*#9`] -[visit_id globalidx*#9] [visit_exp []] -[visit_exp `tableidx*#9`] -[visit_id tableidx*#9] [visit_exp []] -[visit_exp `memidx*#9`] -[visit_id memidx*#9] [visit_exp []] -[visit_exp `elemidx*#9`] -[visit_id elemidx*#9] [visit_exp []] -[visit_exp `dataidx*#9`] -[visit_id dataidx*#9] [visit_exp [dataidx]] [visit_exp dataidx] [visit_id dataidx] not free -[visit_exp `localidx*#9`] -[visit_id localidx*#9] [visit_exp []] -[visit_exp `labelidx*#9`] -[visit_id labelidx*#9] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_dataidx{dataidx : dataidx, `typeidx*#9` : typeidx*, `funcidx*#9` : funcidx*, `globalidx*#9` : globalidx*, `tableidx*#9` : tableidx*, `memidx*#9` : memidx*, `elemidx*#9` : elemidx*, `dataidx*#9` : dataidx*, `localidx*#9` : localidx*, `labelidx*#9` : labelidx*}(dataidx) = {`TYPES`{`typeidx*#9`} [], `FUNCS`{`funcidx*#9`} [], `GLOBALS`{`globalidx*#9`} [], `TABLES`{`tableidx*#9`} [], `MEMS`{`memidx*#9`} [], `ELEMS`{`elemidx*#9`} [], `DATAS`{`dataidx*#9`} [dataidx], `LOCALS`{`localidx*#9`} [], `LABELS`{`labelidx*#9`} []} -[check_dims] dataidx*#10 elemidx*#10 funcidx*#10 globalidx*#10 labelidx*#10 localidx localidx*#10 memidx*#10 tableidx*#10 typeidx*#10 + def $free_dataidx{dataidx : dataidx}(dataidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [dataidx], `LOCALS` [], `LABELS` []} +[check_dims] localidx [visit_exp localidx] [visit_id localidx] -[visit_exp {`TYPES`{`typeidx*#10`} [], `FUNCS`{`funcidx*#10`} [], `GLOBALS`{`globalidx*#10`} [], `TABLES`{`tableidx*#10`} [], `MEMS`{`memidx*#10`} [], `ELEMS`{`elemidx*#10`} [], `DATAS`{`dataidx*#10`} [], `LOCALS`{`localidx*#10`} [localidx], `LABELS`{`labelidx*#10`} []}] -[visit_exp `typeidx*#10`] -[visit_id typeidx*#10] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [localidx], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#10`] -[visit_id funcidx*#10] [visit_exp []] -[visit_exp `globalidx*#10`] -[visit_id globalidx*#10] [visit_exp []] -[visit_exp `tableidx*#10`] -[visit_id tableidx*#10] [visit_exp []] -[visit_exp `memidx*#10`] -[visit_id memidx*#10] [visit_exp []] -[visit_exp `elemidx*#10`] -[visit_id elemidx*#10] [visit_exp []] -[visit_exp `dataidx*#10`] -[visit_id dataidx*#10] [visit_exp []] -[visit_exp `localidx*#10`] -[visit_id localidx*#10] [visit_exp [localidx]] [visit_exp localidx] [visit_id localidx] not free -[visit_exp `labelidx*#10`] -[visit_id labelidx*#10] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_localidx{localidx : localidx, `typeidx*#10` : typeidx*, `funcidx*#10` : funcidx*, `globalidx*#10` : globalidx*, `tableidx*#10` : tableidx*, `memidx*#10` : memidx*, `elemidx*#10` : elemidx*, `dataidx*#10` : dataidx*, `localidx*#10` : localidx*, `labelidx*#10` : labelidx*}(localidx) = {`TYPES`{`typeidx*#10`} [], `FUNCS`{`funcidx*#10`} [], `GLOBALS`{`globalidx*#10`} [], `TABLES`{`tableidx*#10`} [], `MEMS`{`memidx*#10`} [], `ELEMS`{`elemidx*#10`} [], `DATAS`{`dataidx*#10`} [], `LOCALS`{`localidx*#10`} [localidx], `LABELS`{`labelidx*#10`} []} -[check_dims] dataidx*#11 elemidx*#11 funcidx*#11 globalidx*#11 labelidx labelidx*#11 localidx*#11 memidx*#11 tableidx*#11 typeidx*#11 + def $free_localidx{localidx : localidx}(localidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [localidx], `LABELS` []} +[check_dims] labelidx [visit_exp labelidx] [visit_id labelidx] -[visit_exp {`TYPES`{`typeidx*#11`} [], `FUNCS`{`funcidx*#11`} [], `GLOBALS`{`globalidx*#11`} [], `TABLES`{`tableidx*#11`} [], `MEMS`{`memidx*#11`} [], `ELEMS`{`elemidx*#11`} [], `DATAS`{`dataidx*#11`} [], `LOCALS`{`localidx*#11`} [], `LABELS`{`labelidx*#11`} [labelidx]}] -[visit_exp `typeidx*#11`] -[visit_id typeidx*#11] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` [labelidx]}] [visit_exp []] -[visit_exp `funcidx*#11`] -[visit_id funcidx*#11] [visit_exp []] -[visit_exp `globalidx*#11`] -[visit_id globalidx*#11] [visit_exp []] -[visit_exp `tableidx*#11`] -[visit_id tableidx*#11] [visit_exp []] -[visit_exp `memidx*#11`] -[visit_id memidx*#11] [visit_exp []] -[visit_exp `elemidx*#11`] -[visit_id elemidx*#11] [visit_exp []] -[visit_exp `dataidx*#11`] -[visit_id dataidx*#11] [visit_exp []] -[visit_exp `localidx*#11`] -[visit_id localidx*#11] [visit_exp []] -[visit_exp `labelidx*#11`] -[visit_id labelidx*#11] [visit_exp [labelidx]] [visit_exp labelidx] [visit_id labelidx] not free => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_labelidx{labelidx : labelidx, `typeidx*#11` : typeidx*, `funcidx*#11` : funcidx*, `globalidx*#11` : globalidx*, `tableidx*#11` : tableidx*, `memidx*#11` : memidx*, `elemidx*#11` : elemidx*, `dataidx*#11` : dataidx*, `localidx*#11` : localidx*, `labelidx*#11` : labelidx*}(labelidx) = {`TYPES`{`typeidx*#11`} [], `FUNCS`{`funcidx*#11`} [], `GLOBALS`{`globalidx*#11`} [], `TABLES`{`tableidx*#11`} [], `MEMS`{`memidx*#11`} [], `ELEMS`{`elemidx*#11`} [], `DATAS`{`dataidx*#11`} [], `LOCALS`{`localidx*#11`} [], `LABELS`{`labelidx*#11`} [labelidx]} -[check_dims] funcidx funcidx#3 -[visit_exp `FUNC`_externidx{funcidx#3}(funcidx)] -[visit_exp funcidx#3] -[visit_id funcidx#3] + def $free_labelidx{labelidx : labelidx}(labelidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` [labelidx]} +[check_dims] funcidx +[visit_exp `FUNC`_externidx(funcidx)] [visit_exp (funcidx)] [visit_exp funcidx] [visit_id funcidx] @@ -5757,11 +5594,9 @@ DecD free_externidx(externidx : externidx) : free [visit_id funcidx] not free => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{funcidx#3 : funcidx, funcidx : funcidx}(`FUNC`_externidx{funcidx#3}(funcidx)) = $free_funcidx(funcidx) -[check_dims] globalidx globalidx#3 -[visit_exp `GLOBAL`_externidx{globalidx#3}(globalidx)] -[visit_exp globalidx#3] -[visit_id globalidx#3] + def $free_externidx{funcidx : funcidx}(`FUNC`_externidx(funcidx)) = $free_funcidx(funcidx) +[check_dims] globalidx +[visit_exp `GLOBAL`_externidx(globalidx)] [visit_exp (globalidx)] [visit_exp globalidx] [visit_id globalidx] @@ -5770,11 +5605,9 @@ DecD free_externidx(externidx : externidx) : free [visit_id globalidx] not free => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{globalidx#3 : globalidx, globalidx : globalidx}(`GLOBAL`_externidx{globalidx#3}(globalidx)) = $free_globalidx(globalidx) -[check_dims] tableidx tableidx#3 -[visit_exp `TABLE`_externidx{tableidx#3}(tableidx)] -[visit_exp tableidx#3] -[visit_id tableidx#3] + def $free_externidx{globalidx : globalidx}(`GLOBAL`_externidx(globalidx)) = $free_globalidx(globalidx) +[check_dims] tableidx +[visit_exp `TABLE`_externidx(tableidx)] [visit_exp (tableidx)] [visit_exp tableidx] [visit_id tableidx] @@ -5783,11 +5616,9 @@ DecD free_externidx(externidx : externidx) : free [visit_id tableidx] not free => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{tableidx#3 : tableidx, tableidx : tableidx}(`TABLE`_externidx{tableidx#3}(tableidx)) = $free_tableidx(tableidx) -[check_dims] memidx memidx#3 -[visit_exp `MEM`_externidx{memidx#3}(memidx)] -[visit_exp memidx#3] -[visit_id memidx#3] + def $free_externidx{tableidx : tableidx}(`TABLE`_externidx(tableidx)) = $free_tableidx(tableidx) +[check_dims] memidx +[visit_exp `MEM`_externidx(memidx)] [visit_exp (memidx)] [visit_exp memidx] [visit_id memidx] @@ -5796,7 +5627,8 @@ DecD free_externidx(externidx : externidx) : free [visit_id memidx] not free => ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{memidx#3 : memidx, memidx : memidx}(`MEM`_externidx{memidx#3}(memidx)) = $free_memidx(memidx) + def $free_externidx{memidx : memidx}(`MEM`_externidx(memidx)) = $free_memidx(memidx) +[check_dims] [check_dims] --- 1 --- [check_dims] @@ -5804,38 +5636,45 @@ DecD free_externidx(externidx : externidx) : free --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- @@ -5843,124 +5682,160 @@ DecD free_externidx(externidx : externidx) : free --- 4 --- [check_dims] [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] +[check_dims] +[scope_enter rectype] +[visit_id rectype] not free +[visit_id rectype] no dims +[scope_enter n] +[visit_id n] not free +[visit_id n] no dims +[scope_exit n] +[scope_exit rectype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id rectype] no dims -[visit_id rectype] -[visit_id n] no dims -[visit_id n] [check_dims] +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free +[visit_id typeidx] no dims +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id typeidx] no dims -[visit_id typeidx] [check_dims] +[check_dims] +[scope_enter n] +[visit_id n] not free +[visit_id n] no dims +[scope_exit n] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id n] no dims -[visit_id n] [check_dims] +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free +[visit_id typeidx] no dims +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id typeidx] no dims -[visit_id typeidx] +[check_dims] +[scope_enter n] +[visit_id n] not free +[visit_id n] no dims +[scope_exit n] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id n] no dims -[visit_id n] [check_dims] [check_dims] +[check_dims] +[scope_enter null?] +[visit_id null?] not free +[visit_id null?] no dims +[scope_enter heaptype] +[visit_id heaptype] not free +[visit_id heaptype] no dims +[scope_exit heaptype] +[scope_exit null?] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id null?] no dims -[visit_id null?] -[visit_id heaptype] no dims -[visit_id heaptype] +[check_dims] [check_dims] [check_dims] --- 1 --- @@ -5969,28 +5844,33 @@ DecD free_externidx(externidx : externidx) : free --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- @@ -6021,12 +5901,8 @@ DecD NULLFUNCREF : reftype DecD NULLEXNREF : reftype [check_dims] DecD NULLEXTERNREF : reftype -[check_dims] heaptype#11 null?#11 -[visit_exp `REF`_reftype{`null?#11`, heaptype#11}(?(`NULL`_null), `ANY`_heaptype)] -[visit_exp `null?#11`] -[visit_id null?#11] -[visit_exp heaptype#11] -[visit_id heaptype#11] +[check_dims] +[visit_exp `REF`_reftype(?(`NULL`_null), `ANY`_heaptype)] [visit_exp (?(`NULL`_null), `ANY`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -6035,13 +5911,9 @@ DecD NULLEXTERNREF : reftype [visit_exp ()] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $ANYREF{`null?#11` : null?, heaptype#11 : heaptype} = `REF`_reftype{`null?#11`, heaptype#11}(?(`NULL`_null), `ANY`_heaptype) -[check_dims] heaptype#23 null?#23 -[visit_exp `REF`_reftype{`null?#23`, heaptype#23}(?(`NULL`_null), `EQ`_heaptype)] -[visit_exp `null?#23`] -[visit_id null?#23] -[visit_exp heaptype#23] -[visit_id heaptype#23] + def $ANYREF = `REF`_reftype(?(`NULL`_null), `ANY`_heaptype) +[check_dims] +[visit_exp `REF`_reftype(?(`NULL`_null), `EQ`_heaptype)] [visit_exp (?(`NULL`_null), `EQ`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -6050,13 +5922,9 @@ DecD NULLEXTERNREF : reftype [visit_exp ()] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EQREF{`null?#23` : null?, heaptype#23 : heaptype} = `REF`_reftype{`null?#23`, heaptype#23}(?(`NULL`_null), `EQ`_heaptype) -[check_dims] heaptype#35 null?#35 -[visit_exp `REF`_reftype{`null?#35`, heaptype#35}(?(`NULL`_null), `I31`_heaptype)] -[visit_exp `null?#35`] -[visit_id null?#35] -[visit_exp heaptype#35] -[visit_id heaptype#35] + def $EQREF = `REF`_reftype(?(`NULL`_null), `EQ`_heaptype) +[check_dims] +[visit_exp `REF`_reftype(?(`NULL`_null), `I31`_heaptype)] [visit_exp (?(`NULL`_null), `I31`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -6065,13 +5933,9 @@ DecD NULLEXTERNREF : reftype [visit_exp ()] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $I31REF{`null?#35` : null?, heaptype#35 : heaptype} = `REF`_reftype{`null?#35`, heaptype#35}(?(`NULL`_null), `I31`_heaptype) -[check_dims] heaptype#47 null?#47 -[visit_exp `REF`_reftype{`null?#47`, heaptype#47}(?(`NULL`_null), `STRUCT`_heaptype)] -[visit_exp `null?#47`] -[visit_id null?#47] -[visit_exp heaptype#47] -[visit_id heaptype#47] + def $I31REF = `REF`_reftype(?(`NULL`_null), `I31`_heaptype) +[check_dims] +[visit_exp `REF`_reftype(?(`NULL`_null), `STRUCT`_heaptype)] [visit_exp (?(`NULL`_null), `STRUCT`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -6080,13 +5944,9 @@ DecD NULLEXTERNREF : reftype [visit_exp ()] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $STRUCTREF{`null?#47` : null?, heaptype#47 : heaptype} = `REF`_reftype{`null?#47`, heaptype#47}(?(`NULL`_null), `STRUCT`_heaptype) -[check_dims] heaptype#59 null?#59 -[visit_exp `REF`_reftype{`null?#59`, heaptype#59}(?(`NULL`_null), `ARRAY`_heaptype)] -[visit_exp `null?#59`] -[visit_id null?#59] -[visit_exp heaptype#59] -[visit_id heaptype#59] + def $STRUCTREF = `REF`_reftype(?(`NULL`_null), `STRUCT`_heaptype) +[check_dims] +[visit_exp `REF`_reftype(?(`NULL`_null), `ARRAY`_heaptype)] [visit_exp (?(`NULL`_null), `ARRAY`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -6095,13 +5955,9 @@ DecD NULLEXTERNREF : reftype [visit_exp ()] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $ARRAYREF{`null?#59` : null?, heaptype#59 : heaptype} = `REF`_reftype{`null?#59`, heaptype#59}(?(`NULL`_null), `ARRAY`_heaptype) -[check_dims] heaptype#71 null?#71 -[visit_exp `REF`_reftype{`null?#71`, heaptype#71}(?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp `null?#71`] -[visit_id null?#71] -[visit_exp heaptype#71] -[visit_id heaptype#71] + def $ARRAYREF = `REF`_reftype(?(`NULL`_null), `ARRAY`_heaptype) +[check_dims] +[visit_exp `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)] [visit_exp (?(`NULL`_null), `FUNC`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -6110,13 +5966,9 @@ DecD NULLEXTERNREF : reftype [visit_exp ()] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $FUNCREF{`null?#71` : null?, heaptype#71 : heaptype} = `REF`_reftype{`null?#71`, heaptype#71}(?(`NULL`_null), `FUNC`_heaptype) -[check_dims] heaptype#83 null?#83 -[visit_exp `REF`_reftype{`null?#83`, heaptype#83}(?(`NULL`_null), `EXN`_heaptype)] -[visit_exp `null?#83`] -[visit_id null?#83] -[visit_exp heaptype#83] -[visit_id heaptype#83] + def $FUNCREF = `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype) +[check_dims] +[visit_exp `REF`_reftype(?(`NULL`_null), `EXN`_heaptype)] [visit_exp (?(`NULL`_null), `EXN`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -6125,13 +5977,9 @@ DecD NULLEXTERNREF : reftype [visit_exp ()] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EXNREF{`null?#83` : null?, heaptype#83 : heaptype} = `REF`_reftype{`null?#83`, heaptype#83}(?(`NULL`_null), `EXN`_heaptype) -[check_dims] heaptype#95 null?#95 -[visit_exp `REF`_reftype{`null?#95`, heaptype#95}(?(`NULL`_null), `EXTERN`_heaptype)] -[visit_exp `null?#95`] -[visit_id null?#95] -[visit_exp heaptype#95] -[visit_id heaptype#95] + def $EXNREF = `REF`_reftype(?(`NULL`_null), `EXN`_heaptype) +[check_dims] +[visit_exp `REF`_reftype(?(`NULL`_null), `EXTERN`_heaptype)] [visit_exp (?(`NULL`_null), `EXTERN`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -6140,13 +5988,9 @@ DecD NULLEXTERNREF : reftype [visit_exp ()] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EXTERNREF{`null?#95` : null?, heaptype#95 : heaptype} = `REF`_reftype{`null?#95`, heaptype#95}(?(`NULL`_null), `EXTERN`_heaptype) -[check_dims] heaptype#107 null?#107 -[visit_exp `REF`_reftype{`null?#107`, heaptype#107}(?(`NULL`_null), `NONE`_heaptype)] -[visit_exp `null?#107`] -[visit_id null?#107] -[visit_exp heaptype#107] -[visit_id heaptype#107] + def $EXTERNREF = `REF`_reftype(?(`NULL`_null), `EXTERN`_heaptype) +[check_dims] +[visit_exp `REF`_reftype(?(`NULL`_null), `NONE`_heaptype)] [visit_exp (?(`NULL`_null), `NONE`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -6155,13 +5999,9 @@ DecD NULLEXTERNREF : reftype [visit_exp ()] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLREF{`null?#107` : null?, heaptype#107 : heaptype} = `REF`_reftype{`null?#107`, heaptype#107}(?(`NULL`_null), `NONE`_heaptype) -[check_dims] heaptype#119 null?#119 -[visit_exp `REF`_reftype{`null?#119`, heaptype#119}(?(`NULL`_null), `NOFUNC`_heaptype)] -[visit_exp `null?#119`] -[visit_id null?#119] -[visit_exp heaptype#119] -[visit_id heaptype#119] + def $NULLREF = `REF`_reftype(?(`NULL`_null), `NONE`_heaptype) +[check_dims] +[visit_exp `REF`_reftype(?(`NULL`_null), `NOFUNC`_heaptype)] [visit_exp (?(`NULL`_null), `NOFUNC`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -6170,13 +6010,9 @@ DecD NULLEXTERNREF : reftype [visit_exp ()] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLFUNCREF{`null?#119` : null?, heaptype#119 : heaptype} = `REF`_reftype{`null?#119`, heaptype#119}(?(`NULL`_null), `NOFUNC`_heaptype) -[check_dims] heaptype#131 null?#131 -[visit_exp `REF`_reftype{`null?#131`, heaptype#131}(?(`NULL`_null), `NOEXN`_heaptype)] -[visit_exp `null?#131`] -[visit_id null?#131] -[visit_exp heaptype#131] -[visit_id heaptype#131] + def $NULLFUNCREF = `REF`_reftype(?(`NULL`_null), `NOFUNC`_heaptype) +[check_dims] +[visit_exp `REF`_reftype(?(`NULL`_null), `NOEXN`_heaptype)] [visit_exp (?(`NULL`_null), `NOEXN`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -6185,13 +6021,9 @@ DecD NULLEXTERNREF : reftype [visit_exp ()] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLEXNREF{`null?#131` : null?, heaptype#131 : heaptype} = `REF`_reftype{`null?#131`, heaptype#131}(?(`NULL`_null), `NOEXN`_heaptype) -[check_dims] heaptype#143 null?#143 -[visit_exp `REF`_reftype{`null?#143`, heaptype#143}(?(`NULL`_null), `NOEXTERN`_heaptype)] -[visit_exp `null?#143`] -[visit_id null?#143] -[visit_exp heaptype#143] -[visit_id heaptype#143] + def $NULLEXNREF = `REF`_reftype(?(`NULL`_null), `NOEXN`_heaptype) +[check_dims] +[visit_exp `REF`_reftype(?(`NULL`_null), `NOEXTERN`_heaptype)] [visit_exp (?(`NULL`_null), `NOEXTERN`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -6200,13 +6032,15 @@ DecD NULLEXTERNREF : reftype [visit_exp ()] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLEXTERNREF{`null?#143` : null?, heaptype#143 : heaptype} = `REF`_reftype{`null?#143`, heaptype#143}(?(`NULL`_null), `NOEXTERN`_heaptype) + def $NULLEXTERNREF = `REF`_reftype(?(`NULL`_null), `NOEXTERN`_heaptype) +[check_dims] [check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- @@ -6219,115 +6053,159 @@ DecD NULLEXTERNREF : reftype [check_dims] [check_dims] [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] ---- 1 --- [check_dims] ---- 2 --- ---- 3 --- ---- 4 --- +[scope_enter mut?] +[visit_id mut?] not free [visit_id mut?] no dims -[visit_id mut?] +[scope_enter storagetype] +[visit_id storagetype] not free [visit_id storagetype] no dims -[visit_id storagetype] -[check_dims] +[scope_exit storagetype] +[scope_exit mut?] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter fieldtype] +[visit_id fieldtype] not free [visit_id fieldtype] no dims -[visit_id fieldtype] +[scope_exit fieldtype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter resulttype] +[visit_id resulttype] not free [visit_id resulttype] no dims -[visit_id resulttype] +[scope_enter resulttype] [visit_id resulttype] not free [visit_id resulttype] no dims -[check_dims] +[scope_exit resulttype] +[scope_exit resulttype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter final?] +[visit_id final?] not free [visit_id final?] no dims -[visit_id final?] +[scope_enter typeuse*] +[visit_id typeuse*] not free [visit_id typeuse*] no dims -[visit_id typeuse*] +[scope_enter comptype] +[visit_id comptype] not free [visit_id comptype] no dims -[visit_id comptype] -[check_dims] +[scope_exit comptype] +[scope_exit typeuse*] +[scope_exit final?] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter _] [visit_id _] not free [visit_id _] no dims -[check_dims] +[scope_exit _] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id u64] no dims -[visit_id u64] -[visit_id u64?] no dims -[visit_id u64?] [check_dims] [check_dims] +[scope_enter u64] +[visit_id u64] not free +[visit_id u64] no dims +[scope_enter u64?] +[visit_id u64?] not free +[visit_id u64?] no dims +[scope_exit u64?] +[scope_exit u64] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[check_dims] +[scope_enter mut?] +[visit_id mut?] not free [visit_id mut?] no dims -[visit_id mut?] +[scope_enter valtype] +[visit_id valtype] not free [visit_id valtype] no dims -[visit_id valtype] -[check_dims] +[scope_exit valtype] +[scope_exit mut?] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter addrtype] +[visit_id addrtype] not free [visit_id addrtype] no dims -[visit_id addrtype] +[scope_enter limits] +[visit_id limits] not free [visit_id limits] no dims -[visit_id limits] -[check_dims] +[scope_exit limits] +[scope_exit addrtype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter addrtype] +[visit_id addrtype] not free [visit_id addrtype] no dims -[visit_id addrtype] +[scope_enter limits] +[visit_id limits] not free [visit_id limits] no dims -[visit_id limits] +[scope_enter reftype] +[visit_id reftype] not free [visit_id reftype] no dims -[visit_id reftype] -[check_dims] +[scope_exit reftype] +[scope_exit limits] +[scope_exit addrtype] --- 1 --- [check_dims] --- 2 --- @@ -6340,46 +6218,73 @@ DecD NULLEXTERNREF : reftype --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[check_dims] +[scope_enter tagtype] +[visit_id tagtype] not free [visit_id tagtype] no dims -[visit_id tagtype] +[scope_exit tagtype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter globaltype] +[visit_id globaltype] not free [visit_id globaltype] no dims -[visit_id globaltype] +[scope_exit globaltype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter memtype] +[visit_id memtype] not free [visit_id memtype] no dims -[visit_id memtype] +[scope_exit memtype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tabletype] +[visit_id tabletype] not free [visit_id tabletype] no dims -[visit_id tabletype] +[scope_exit tabletype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id typeuse] no dims -[visit_id typeuse] [check_dims] +[scope_enter typeuse] +[visit_id typeuse] not free +[visit_id typeuse] no dims +[scope_exit typeuse] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter externtype*] +[visit_id externtype*] not free [visit_id externtype*] no dims -[visit_id externtype*] +[scope_enter externtype*] [visit_id externtype*] not free [visit_id externtype*] no dims +[scope_exit externtype*] +[scope_exit externtype*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- [check_dims] [check_dims] [check_dims] @@ -6950,12 +6855,8 @@ DecD minat(addrtype : addrtype, addrtype : addrtype) : addrtype DecD diffrt(reftype : reftype, reftype : reftype) : reftype [visit_id reftype] not free [visit_id reftype] not free -[check_dims] heaptype#155 heaptype#167 heaptype#179 ht_1 ht_2 null?#155 null?#167 null?#179 null_1 -[visit_exp `REF`_reftype{`null?#155`, heaptype#155}(null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp `null?#155`] -[visit_id null?#155] -[visit_exp heaptype#155] -[visit_id heaptype#155] +[check_dims] ht_1 ht_2 null_1 +[visit_exp `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1)] [visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] [visit_exp null_1?{null_1 <- `null_1?`}] [scope_enter null_1] @@ -6968,35 +6869,23 @@ DecD diffrt(reftype : reftype, reftype : reftype) : reftype [visit_id null_1?] [visit_exp ht_1] [visit_id ht_1] -[visit_exp `REF`_reftype{`null?#167`, heaptype#167}(?(`NULL`_null), ht_2)] -[visit_exp `null?#167`] -[visit_id null?#167] -[visit_exp heaptype#167] -[visit_id heaptype#167] +[visit_exp `REF`_reftype(?(`NULL`_null), ht_2)] [visit_exp (?(`NULL`_null), ht_2)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] [visit_exp ht_2] [visit_id ht_2] -[visit_exp `REF`_reftype{`null?#179`, heaptype#179}(?(), ht_1)] -[visit_exp `null?#179`] -[visit_id null?#179] -[visit_exp heaptype#179] -[visit_id heaptype#179] +[visit_exp `REF`_reftype(?(), ht_1)] [visit_exp (?(), ht_1)] [visit_exp ?()] [visit_exp ht_1] [visit_id ht_1] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $diffrt{`null?#155` : null?, heaptype#155 : heaptype, `null_1?` : null?, ht_1 : heaptype, `null?#167` : null?, heaptype#167 : heaptype, ht_2 : heaptype, `null?#179` : null?, heaptype#179 : heaptype}(`REF`_reftype{`null?#155`, heaptype#155}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#167`, heaptype#167}(?(`NULL`_null), ht_2)) = `REF`_reftype{`null?#179`, heaptype#179}(?(), ht_1) -[check_dims] heaptype#191 heaptype#203 heaptype#215 ht_1 ht_2 null?#191 null?#203 null?#215 null_1 -[visit_exp `REF`_reftype{`null?#191`, heaptype#191}(null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp `null?#191`] -[visit_id null?#191] -[visit_exp heaptype#191] -[visit_id heaptype#191] + def $diffrt{`null_1?` : null?, ht_1 : heaptype, ht_2 : heaptype}(`REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(?(`NULL`_null), ht_2)) = `REF`_reftype(?(), ht_1) +[check_dims] ht_1 ht_2 null_1 +[visit_exp `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1)] [visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] [visit_exp null_1?{null_1 <- `null_1?`}] [scope_enter null_1] @@ -7009,20 +6898,12 @@ DecD diffrt(reftype : reftype, reftype : reftype) : reftype [visit_id null_1?] [visit_exp ht_1] [visit_id ht_1] -[visit_exp `REF`_reftype{`null?#203`, heaptype#203}(?(), ht_2)] -[visit_exp `null?#203`] -[visit_id null?#203] -[visit_exp heaptype#203] -[visit_id heaptype#203] +[visit_exp `REF`_reftype(?(), ht_2)] [visit_exp (?(), ht_2)] [visit_exp ?()] [visit_exp ht_2] [visit_id ht_2] -[visit_exp `REF`_reftype{`null?#215`, heaptype#215}(null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp `null?#215`] -[visit_id null?#215] -[visit_exp heaptype#215] -[visit_id heaptype#215] +[visit_exp `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1)] [visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] [visit_exp null_1?{null_1 <- `null_1?`}] [scope_enter null_1] @@ -7037,7 +6918,7 @@ DecD diffrt(reftype : reftype, reftype : reftype) : reftype [visit_id ht_1] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $diffrt{`null?#191` : null?, heaptype#191 : heaptype, `null_1?` : null?, ht_1 : heaptype, `null?#203` : null?, heaptype#203 : heaptype, ht_2 : heaptype, `null?#215` : null?, heaptype#215 : heaptype}(`REF`_reftype{`null?#191`, heaptype#191}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#203`, heaptype#203}(?(), ht_2)) = `REF`_reftype{`null?#215`, heaptype#215}(null_1?{null_1 <- `null_1?`}, ht_1) + def $diffrt{`null_1?` : null?, ht_1 : heaptype, ht_2 : heaptype}(`REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(?(), ht_2)) = `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1) [check_dims] typeuse DecD as_deftype(typeuse : typeuse) : deftype [visit_id typeuse] not free @@ -7071,12 +6952,10 @@ DecD funcsxt(externtype*) : deftype* => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $tagsxt([]) = [] -[check_dims] jt tagtype#1 xt -[visit_exp [`TAG`_externtype{tagtype#1}(jt)] ++ xt*{xt <- `xt*`}] -[visit_exp [`TAG`_externtype{tagtype#1}(jt)]] -[visit_exp `TAG`_externtype{tagtype#1}(jt)] -[visit_exp tagtype#1] -[visit_id tagtype#1] +[check_dims] jt xt +[visit_exp [`TAG`_externtype(jt)] ++ xt*{xt <- `xt*`}] +[visit_exp [`TAG`_externtype(jt)]] +[visit_exp `TAG`_externtype(jt)] [visit_exp (jt)] [visit_exp jt] [visit_id jt] @@ -7105,7 +6984,7 @@ DecD funcsxt(externtype*) : deftype* [visit_id xt*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $tagsxt{tagtype#1 : tagtype, jt : tagtype, `xt*` : externtype*}([`TAG`_externtype{tagtype#1}(jt)] ++ xt*{xt <- `xt*`}) = [jt] ++ $tagsxt(xt*{xt <- `xt*`}) + def $tagsxt{jt : tagtype, `xt*` : externtype*}([`TAG`_externtype(jt)] ++ xt*{xt <- `xt*`}) = [jt] ++ $tagsxt(xt*{xt <- `xt*`}) [check_dims] externtype xt [visit_exp [externtype] ++ xt*{xt <- `xt*`}] [visit_exp [externtype]] @@ -7140,12 +7019,10 @@ DecD funcsxt(externtype*) : deftype* => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $globalsxt([]) = [] -[check_dims] globaltype#1 gt xt -[visit_exp [`GLOBAL`_externtype{globaltype#1}(gt)] ++ xt*{xt <- `xt*`}] -[visit_exp [`GLOBAL`_externtype{globaltype#1}(gt)]] -[visit_exp `GLOBAL`_externtype{globaltype#1}(gt)] -[visit_exp globaltype#1] -[visit_id globaltype#1] +[check_dims] gt xt +[visit_exp [`GLOBAL`_externtype(gt)] ++ xt*{xt <- `xt*`}] +[visit_exp [`GLOBAL`_externtype(gt)]] +[visit_exp `GLOBAL`_externtype(gt)] [visit_exp (gt)] [visit_exp gt] [visit_id gt] @@ -7174,7 +7051,7 @@ DecD funcsxt(externtype*) : deftype* [visit_id xt*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $globalsxt{globaltype#1 : globaltype, gt : globaltype, `xt*` : externtype*}([`GLOBAL`_externtype{globaltype#1}(gt)] ++ xt*{xt <- `xt*`}) = [gt] ++ $globalsxt(xt*{xt <- `xt*`}) + def $globalsxt{gt : globaltype, `xt*` : externtype*}([`GLOBAL`_externtype(gt)] ++ xt*{xt <- `xt*`}) = [gt] ++ $globalsxt(xt*{xt <- `xt*`}) [check_dims] externtype xt [visit_exp [externtype] ++ xt*{xt <- `xt*`}] [visit_exp [externtype]] @@ -7209,12 +7086,10 @@ DecD funcsxt(externtype*) : deftype* => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $memsxt([]) = [] -[check_dims] memtype#1 mt xt -[visit_exp [`MEM`_externtype{memtype#1}(mt)] ++ xt*{xt <- `xt*`}] -[visit_exp [`MEM`_externtype{memtype#1}(mt)]] -[visit_exp `MEM`_externtype{memtype#1}(mt)] -[visit_exp memtype#1] -[visit_id memtype#1] +[check_dims] mt xt +[visit_exp [`MEM`_externtype(mt)] ++ xt*{xt <- `xt*`}] +[visit_exp [`MEM`_externtype(mt)]] +[visit_exp `MEM`_externtype(mt)] [visit_exp (mt)] [visit_exp mt] [visit_id mt] @@ -7243,7 +7118,7 @@ DecD funcsxt(externtype*) : deftype* [visit_id xt*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $memsxt{memtype#1 : memtype, mt : memtype, `xt*` : externtype*}([`MEM`_externtype{memtype#1}(mt)] ++ xt*{xt <- `xt*`}) = [mt] ++ $memsxt(xt*{xt <- `xt*`}) + def $memsxt{mt : memtype, `xt*` : externtype*}([`MEM`_externtype(mt)] ++ xt*{xt <- `xt*`}) = [mt] ++ $memsxt(xt*{xt <- `xt*`}) [check_dims] externtype xt [visit_exp [externtype] ++ xt*{xt <- `xt*`}] [visit_exp [externtype]] @@ -7278,12 +7153,10 @@ DecD funcsxt(externtype*) : deftype* => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $tablesxt([]) = [] -[check_dims] tabletype#1 tt xt -[visit_exp [`TABLE`_externtype{tabletype#1}(tt)] ++ xt*{xt <- `xt*`}] -[visit_exp [`TABLE`_externtype{tabletype#1}(tt)]] -[visit_exp `TABLE`_externtype{tabletype#1}(tt)] -[visit_exp tabletype#1] -[visit_id tabletype#1] +[check_dims] tt xt +[visit_exp [`TABLE`_externtype(tt)] ++ xt*{xt <- `xt*`}] +[visit_exp [`TABLE`_externtype(tt)]] +[visit_exp `TABLE`_externtype(tt)] [visit_exp (tt)] [visit_exp tt] [visit_id tt] @@ -7312,7 +7185,7 @@ DecD funcsxt(externtype*) : deftype* [visit_id xt*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $tablesxt{tabletype#1 : tabletype, tt : tabletype, `xt*` : externtype*}([`TABLE`_externtype{tabletype#1}(tt)] ++ xt*{xt <- `xt*`}) = [tt] ++ $tablesxt(xt*{xt <- `xt*`}) + def $tablesxt{tt : tabletype, `xt*` : externtype*}([`TABLE`_externtype(tt)] ++ xt*{xt <- `xt*`}) = [tt] ++ $tablesxt(xt*{xt <- `xt*`}) [check_dims] externtype xt [visit_exp [externtype] ++ xt*{xt <- `xt*`}] [visit_exp [externtype]] @@ -7347,12 +7220,10 @@ DecD funcsxt(externtype*) : deftype* => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $funcsxt([]) = [] -[check_dims] dt typeuse#1 xt -[visit_exp [`FUNC`_externtype{typeuse#1}((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}] -[visit_exp [`FUNC`_externtype{typeuse#1}((dt : deftype <: typeuse))]] -[visit_exp `FUNC`_externtype{typeuse#1}((dt : deftype <: typeuse))] -[visit_exp typeuse#1] -[visit_id typeuse#1] +[check_dims] dt xt +[visit_exp [`FUNC`_externtype((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}] +[visit_exp [`FUNC`_externtype((dt : deftype <: typeuse))]] +[visit_exp `FUNC`_externtype((dt : deftype <: typeuse))] [visit_exp ((dt : deftype <: typeuse))] [visit_exp (dt : deftype <: typeuse)] [visit_exp dt] @@ -7382,7 +7253,7 @@ DecD funcsxt(externtype*) : deftype* [visit_id xt*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $funcsxt{typeuse#1 : typeuse, dt : deftype, `xt*` : externtype*}([`FUNC`_externtype{typeuse#1}((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}) = [dt] ++ $funcsxt(xt*{xt <- `xt*`}) + def $funcsxt{dt : deftype, `xt*` : externtype*}([`FUNC`_externtype((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}) = [dt] ++ $funcsxt(xt*{xt <- `xt*`}) [check_dims] externtype xt [visit_exp [externtype] ++ xt*{xt <- `xt*`}] [visit_exp [externtype]] @@ -7913,12 +7784,8 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_heaptype{ht : heaptype, `tv*` : typevar*, `tu*` : typeuse*}(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ht -- otherwise -[check_dims] heaptype#227 heaptype#239 ht null null?#227 null?#239 tu tv -[visit_exp `REF`_reftype{`null?#227`, heaptype#227}(null?{null <- `null?`}, ht)] -[visit_exp `null?#227`] -[visit_id null?#227] -[visit_exp heaptype#227] -[visit_id heaptype#227] +[check_dims] ht null tu tv +[visit_exp `REF`_reftype(null?{null <- `null?`}, ht)] [visit_exp (null?{null <- `null?`}, ht)] [visit_exp null?{null <- `null?`}] [scope_enter null] @@ -7949,11 +7816,7 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `REF`_reftype{`null?#239`, heaptype#239}(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp `null?#239`] -[visit_id null?#239] -[visit_exp heaptype#239] -[visit_id heaptype#239] +[visit_exp `REF`_reftype(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp (null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp null?{null <- `null?`}] [scope_enter null] @@ -7987,7 +7850,7 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_reftype{`null?#227` : null?, heaptype#227 : heaptype, `null?` : null?, ht : heaptype, `tv*` : typevar*, `tu*` : typeuse*, `null?#239` : null?, heaptype#239 : heaptype}(`REF`_reftype{`null?#227`, heaptype#227}(null?{null <- `null?`}, ht), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REF`_reftype{`null?#239`, heaptype#239}(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_reftype{`null?` : null?, ht : heaptype, `tv*` : typevar*, `tu*` : typeuse*}(`REF`_reftype(null?{null <- `null?`}, ht), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REF`_reftype(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) [check_dims] nt tu tv [visit_exp (nt : numtype <: valtype)] [visit_exp nt] @@ -8275,12 +8138,8 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_storagetype{pt : packtype, `tv*` : typevar*, `tu*` : typeuse*}((pt : packtype <: storagetype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_packtype(pt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : packtype <: storagetype) -[check_dims] mut mut?#67 mut?#79 storagetype#11 storagetype#23 tu tv zt -[visit_exp `%%`_fieldtype{`mut?#67`, storagetype#11}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#67`] -[visit_id mut?#67] -[visit_exp storagetype#11] -[visit_id storagetype#11] +[check_dims] mut tu tv zt +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -8311,11 +8170,7 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `%%`_fieldtype{`mut?#79`, storagetype#23}(mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp `mut?#79`] -[visit_id mut?#79] -[visit_exp storagetype#23] -[visit_id storagetype#23] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp (mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -8349,13 +8204,11 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_fieldtype{`mut?#67` : mut?, storagetype#11 : storagetype, `mut?` : mut?, zt : storagetype, `tv*` : typevar*, `tu*` : typeuse*, `mut?#79` : mut?, storagetype#23 : storagetype}(`%%`_fieldtype{`mut?#67`, storagetype#11}(mut?{mut <- `mut?`}, zt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_fieldtype{`mut?#79`, storagetype#23}(mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] X*#11 X*#26 ft tu tv -[visit_exp `STRUCT`_comptype(`%`_list{`X*#11`}(ft*{ft <- `ft*`}))] -[visit_exp (`%`_list{`X*#11`}(ft*{ft <- `ft*`}))] -[visit_exp `%`_list{`X*#11`}(ft*{ft <- `ft*`})] -[visit_exp `X*#11`] -[visit_id X*#11] + def $subst_fieldtype{`mut?` : mut?, zt : storagetype, `tv*` : typevar*, `tu*` : typeuse*}(`%%`_fieldtype(mut?{mut <- `mut?`}, zt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_fieldtype(mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] ft tu tv +[visit_exp `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))] +[visit_exp (`%`_list(ft*{ft <- `ft*`}))] +[visit_exp `%`_list(ft*{ft <- `ft*`})] [visit_exp (ft*{ft <- `ft*`})] [visit_exp ft*{ft <- `ft*`}] [scope_enter ft] @@ -8384,11 +8237,9 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `STRUCT`_comptype(`%`_list{`X*#26`}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`}))] -[visit_exp (`%`_list{`X*#26`}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`}))] -[visit_exp `%`_list{`X*#26`}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})] -[visit_exp `X*#26`] -[visit_id X*#26] +[visit_exp `STRUCT`_comptype(`%`_list($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`}))] +[visit_exp (`%`_list($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`}))] +[visit_exp `%`_list($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})] [visit_exp ($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})] [visit_exp $subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`}] [scope_enter ft] @@ -8420,11 +8271,9 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_id ft*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_comptype{`X*#11` : fieldtype*, `ft*` : fieldtype*, `tv*` : typevar*, `tu*` : typeuse*, `X*#26` : fieldtype*}(`STRUCT`_comptype(`%`_list{`X*#11`}(ft*{ft <- `ft*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `STRUCT`_comptype(`%`_list{`X*#26`}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})) -[check_dims] fieldtype#1 fieldtype#3 ft tu tv -[visit_exp `ARRAY`_comptype{fieldtype#1}(ft)] -[visit_exp fieldtype#1] -[visit_id fieldtype#1] + def $subst_comptype{`ft*` : fieldtype*, `tv*` : typevar*, `tu*` : typeuse*}(`STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `STRUCT`_comptype(`%`_list($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})) +[check_dims] ft tu tv +[visit_exp `ARRAY`_comptype(ft)] [visit_exp (ft)] [visit_exp ft] [visit_id ft] @@ -8446,9 +8295,7 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `ARRAY`_comptype{fieldtype#3}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp fieldtype#3] -[visit_id fieldtype#3] +[visit_exp `ARRAY`_comptype($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp ($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp $subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] [visit_exp ft] @@ -8473,15 +8320,11 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_comptype{fieldtype#1 : fieldtype, ft : fieldtype, `tv*` : typevar*, `tu*` : typeuse*, fieldtype#3 : fieldtype}(`ARRAY`_comptype{fieldtype#1}(ft), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `ARRAY`_comptype{fieldtype#3}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] X*#41 X*#54 X*#69 X*#82 resulttype#1 resulttype#4 t_1 t_2 tu tv -[visit_exp `FUNC%->%`_comptype{resulttype#1}(`%`_resulttype{`X*#41`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#54`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#1] -[visit_id resulttype#1] -[visit_exp (`%`_resulttype{`X*#41`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#54`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#41`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#41`] -[visit_id X*#41] + def $subst_comptype{ft : fieldtype, `tv*` : typevar*, `tu*` : typeuse*}(`ARRAY`_comptype(ft), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `ARRAY`_comptype($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] t_1 t_2 tu tv +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -8492,9 +8335,7 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp `%`_resulttype{`X*#54`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#54`] -[visit_id X*#54] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -8523,13 +8364,9 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `FUNC%->%`_comptype{resulttype#4}(`%`_resulttype{`X*#69`}($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype{`X*#82`}($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`}))] -[visit_exp resulttype#4] -[visit_id resulttype#4] -[visit_exp (`%`_resulttype{`X*#69`}($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype{`X*#82`}($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#69`}($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`})] -[visit_exp `X*#69`] -[visit_id X*#69] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`})] [visit_exp ($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`})] [visit_exp $subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -8559,9 +8396,7 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `%`_resulttype{`X*#82`}($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})] -[visit_exp `X*#82`] -[visit_id X*#82] +[visit_exp `%`_resulttype($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})] [visit_exp ($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})] [visit_exp $subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -8593,15 +8428,9 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_id t_2*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_comptype{resulttype#1 : resulttype, `X*#41` : valtype*, `t_1*` : valtype*, `X*#54` : valtype*, `t_2*` : valtype*, `tv*` : typevar*, `tu*` : typeuse*, resulttype#4 : resulttype, `X*#69` : valtype*, `X*#82` : valtype*}(`FUNC%->%`_comptype{resulttype#1}(`%`_resulttype{`X*#41`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#54`}(t_2*{t_2 <- `t_2*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC%->%`_comptype{resulttype#4}(`%`_resulttype{`X*#69`}($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype{`X*#82`}($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})) -[check_dims] comptype#11 comptype#23 ct final final?#11 final?#23 tu tu' tv typeuse*#11 typeuse*#23 -[visit_exp `SUB`_subtype{`final?#11`, `typeuse*#11`, comptype#11}(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct)] -[visit_exp `final?#11`] -[visit_id final?#11] -[visit_exp `typeuse*#11`] -[visit_id typeuse*#11] -[visit_exp comptype#11] -[visit_id comptype#11] + def $subst_comptype{`t_1*` : valtype*, `t_2*` : valtype*, `tv*` : typevar*, `tu*` : typeuse*}(`FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC%->%`_comptype(`%`_resulttype($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})) +[check_dims] ct final tu tu' tv +[visit_exp `SUB`_subtype(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct)] [visit_exp (final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct)] [visit_exp final?{final <- `final?`}] [scope_enter final] @@ -8641,13 +8470,7 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `SUB`_subtype{`final?#23`, `typeuse*#23`, comptype#23}(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp `final?#23`] -[visit_id final?#23] -[visit_exp `typeuse*#23`] -[visit_id typeuse*#23] -[visit_exp comptype#23] -[visit_id comptype#23] +[visit_exp `SUB`_subtype(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp (final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp final?{final <- `final?`}] [scope_enter final] @@ -8709,13 +8532,17 @@ DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_subtype{`final?#11` : final?, `typeuse*#11` : typeuse*, comptype#11 : comptype, `final?` : final?, `tu'*` : typeuse*, ct : comptype, `tv*` : typevar*, `tu*` : typeuse*, `final?#23` : final?, `typeuse*#23` : typeuse*, comptype#23 : comptype}(`SUB`_subtype{`final?#11`, `typeuse*#11`, comptype#11}(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `SUB`_subtype{`final?#23`, `typeuse*#23`, comptype#23}(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_subtype{`final?` : final?, `tu'*` : typeuse*, ct : comptype, `tv*` : typevar*, `tu*` : typeuse*}(`SUB`_subtype(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `SUB`_subtype(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) [check_dims] _ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id _] not free [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [check_dims] [visit_exp []] [visit_exp []] @@ -8725,12 +8552,10 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $minus_recs([], []) = ([], []) -[check_dims] n n#53 tu tu_1 tv -[visit_exp [`REC`_typevar{n#53}(n)] ++ tv*{tv <- `tv*`}] -[visit_exp [`REC`_typevar{n#53}(n)]] -[visit_exp `REC`_typevar{n#53}(n)] -[visit_exp n#53] -[visit_id n#53] +[check_dims] n tu tu_1 tv +[visit_exp [`REC`_typevar(n)] ++ tv*{tv <- `tv*`}] +[visit_exp [`REC`_typevar(n)]] +[visit_exp `REC`_typevar(n)] [visit_exp (n)] [visit_exp n] [visit_id n] @@ -8777,13 +8602,11 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $minus_recs{n#53 : n, n : n, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*}([`REC`_typevar{n#53}(n)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) -[check_dims] tu tu' tu_1 tv tv' typeidx#1 typeidx#3 x -[visit_exp [`_IDX`_typevar{typeidx#1}(x)] ++ tv*{tv <- `tv*`}] -[visit_exp [`_IDX`_typevar{typeidx#1}(x)]] -[visit_exp `_IDX`_typevar{typeidx#1}(x)] -[visit_exp typeidx#1] -[visit_id typeidx#1] + def $minus_recs{n : n, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*}([`REC`_typevar(n)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) +[check_dims] tu tu' tu_1 tv tv' x +[visit_exp [`_IDX`_typevar(x)] ++ tv*{tv <- `tv*`}] +[visit_exp [`_IDX`_typevar(x)]] +[visit_exp `_IDX`_typevar(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -8809,12 +8632,10 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp ([`_IDX`_typevar{typeidx#3}(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`})] -[visit_exp [`_IDX`_typevar{typeidx#3}(x)] ++ tv'*{tv' <- `tv'*`}] -[visit_exp [`_IDX`_typevar{typeidx#3}(x)]] -[visit_exp `_IDX`_typevar{typeidx#3}(x)] -[visit_exp typeidx#3] -[visit_id typeidx#3] +[visit_exp ([`_IDX`_typevar(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`})] +[visit_exp [`_IDX`_typevar(x)] ++ tv'*{tv' <- `tv'*`}] +[visit_exp [`_IDX`_typevar(x)]] +[visit_exp `_IDX`_typevar(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free @@ -8881,14 +8702,12 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $minus_recs{typeidx#1 : typeidx, x : idx, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*, typeidx#3 : typeidx, `tv'*` : typevar*, `tu'*` : typeuse*}([`_IDX`_typevar{typeidx#1}(x)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = ([`_IDX`_typevar{typeidx#3}(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) + def $minus_recs{x : idx, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*, `tv'*` : typevar*, `tu'*` : typeuse*}([`_IDX`_typevar(x)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = ([`_IDX`_typevar(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) -- if ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] X*#112 X*#97 st tu tu' tv tv' -[visit_exp `REC`_rectype(`%`_list{`X*#97`}(st*{st <- `st*`}))] -[visit_exp (`%`_list{`X*#97`}(st*{st <- `st*`}))] -[visit_exp `%`_list{`X*#97`}(st*{st <- `st*`})] -[visit_exp `X*#97`] -[visit_id X*#97] +[check_dims] st tu tu' tv tv' +[visit_exp `REC`_rectype(`%`_list(st*{st <- `st*`}))] +[visit_exp (`%`_list(st*{st <- `st*`}))] +[visit_exp `%`_list(st*{st <- `st*`})] [visit_exp (st*{st <- `st*`})] [visit_exp st*{st <- `st*`}] [scope_enter st] @@ -8917,11 +8736,9 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `REC`_rectype(`%`_list{`X*#112`}($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`}))] -[visit_exp (`%`_list{`X*#112`}($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`}))] -[visit_exp `%`_list{`X*#112`}($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})] -[visit_exp `X*#112`] -[visit_id X*#112] +[visit_exp `REC`_rectype(`%`_list($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`}))] +[visit_exp (`%`_list($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`}))] +[visit_exp `%`_list($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})] [visit_exp ($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})] [visit_exp $subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`}] [scope_enter st] @@ -8992,14 +8809,10 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_rectype{`X*#97` : subtype*, `st*` : subtype*, `tv*` : typevar*, `tu*` : typeuse*, `X*#112` : subtype*, `tv'*` : typevar*, `tu'*` : typeuse*}(`REC`_rectype(`%`_list{`X*#97`}(st*{st <- `st*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REC`_rectype(`%`_list{`X*#112`}($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})) + def $subst_rectype{`st*` : subtype*, `tv*` : typevar*, `tu*` : typeuse*, `tv'*` : typevar*, `tu'*` : typeuse*}(`REC`_rectype(`%`_list(st*{st <- `st*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REC`_rectype(`%`_list($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})) -- if ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] i n#65 n#77 qt rectype#63 rectype#75 tu tv -[visit_exp `_DEF`_deftype{rectype#63, n#65}(qt, i)] -[visit_exp rectype#63] -[visit_id rectype#63] -[visit_exp n#65] -[visit_id n#65] +[check_dims] i qt tu tv +[visit_exp `_DEF`_deftype(qt, i)] [visit_exp (qt, i)] [visit_exp qt] [visit_id qt] @@ -9023,11 +8836,7 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `_DEF`_deftype{rectype#75, n#77}($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i)] -[visit_exp rectype#75] -[visit_id rectype#75] -[visit_exp n#77] -[visit_id n#77] +[visit_exp `_DEF`_deftype($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i)] [visit_exp ($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i)] [visit_exp $subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] [visit_exp qt] @@ -9054,7 +8863,7 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id i] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_deftype{rectype#63 : rectype, n#65 : n, qt : rectype, i : n, `tv*` : typevar*, `tu*` : typeuse*, rectype#75 : rectype, n#77 : n}(`_DEF`_deftype{rectype#63, n#65}(qt, i), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `_DEF`_deftype{rectype#75, n#77}($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i) + def $subst_deftype{qt : rectype, i : n, `tv*` : typevar*, `tu*` : typeuse*}(`_DEF`_deftype(qt, i), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `_DEF`_deftype($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i) [check_dims] tu tu' tv [visit_exp tu'] [visit_id tu'] @@ -9100,12 +8909,8 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_tagtype{tu' : typeuse, `tv*` : typevar*, `tu*` : typeuse*}(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) -[check_dims] mut mut?#149 mut?#161 t tu tv valtype#67 valtype#79 -[visit_exp `%%`_globaltype{`mut?#149`, valtype#67}(mut?{mut <- `mut?`}, t)] -[visit_exp `mut?#149`] -[visit_id mut?#149] -[visit_exp valtype#67] -[visit_id valtype#67] +[check_dims] mut t tu tv +[visit_exp `%%`_globaltype(mut?{mut <- `mut?`}, t)] [visit_exp (mut?{mut <- `mut?`}, t)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -9136,11 +8941,7 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `%%`_globaltype{`mut?#161`, valtype#79}(mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp `mut?#161`] -[visit_id mut?#161] -[visit_exp valtype#79] -[visit_id valtype#79] +[visit_exp `%%`_globaltype(mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp (mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -9174,13 +8975,9 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_globaltype{`mut?#149` : mut?, valtype#67 : valtype, `mut?` : mut?, t : valtype, `tv*` : typevar*, `tu*` : typeuse*, `mut?#161` : mut?, valtype#79 : valtype}(`%%`_globaltype{`mut?#149`, valtype#67}(mut?{mut <- `mut?`}, t), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_globaltype{`mut?#161`, valtype#79}(mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] addrtype#103 addrtype#91 at lim limits#103 limits#91 tu tv -[visit_exp `%%PAGE`_memtype{addrtype#91, limits#91}(at, lim)] -[visit_exp addrtype#91] -[visit_id addrtype#91] -[visit_exp limits#91] -[visit_id limits#91] + def $subst_globaltype{`mut?` : mut?, t : valtype, `tv*` : typevar*, `tu*` : typeuse*}(`%%`_globaltype(mut?{mut <- `mut?`}, t), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_globaltype(mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] at lim tu tv +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] @@ -9204,11 +9001,7 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `%%PAGE`_memtype{addrtype#103, limits#103}(at, lim)] -[visit_exp addrtype#103] -[visit_id addrtype#103] -[visit_exp limits#103] -[visit_id limits#103] +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free @@ -9216,15 +9009,9 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id lim] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_memtype{addrtype#91 : addrtype, limits#91 : limits, at : addrtype, lim : limits, `tv*` : typevar*, `tu*` : typeuse*, addrtype#103 : addrtype, limits#103 : limits}(`%%PAGE`_memtype{addrtype#91, limits#91}(at, lim), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%PAGE`_memtype{addrtype#103, limits#103}(at, lim) -[check_dims] addrtype#115 addrtype#127 at lim limits#115 limits#127 reftype#51 reftype#63 rt tu tv -[visit_exp `%%%`_tabletype{addrtype#115, limits#115, reftype#51}(at, lim, rt)] -[visit_exp addrtype#115] -[visit_id addrtype#115] -[visit_exp limits#115] -[visit_id limits#115] -[visit_exp reftype#51] -[visit_id reftype#51] + def $subst_memtype{at : addrtype, lim : limits, `tv*` : typevar*, `tu*` : typeuse*}(`%%PAGE`_memtype(at, lim), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%PAGE`_memtype(at, lim) +[check_dims] at lim rt tu tv +[visit_exp `%%%`_tabletype(at, lim, rt)] [visit_exp (at, lim, rt)] [visit_exp at] [visit_id at] @@ -9250,13 +9037,7 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `%%%`_tabletype{addrtype#127, limits#127, reftype#63}(at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp addrtype#127] -[visit_id addrtype#127] -[visit_exp limits#127] -[visit_id limits#127] -[visit_exp reftype#63] -[visit_id reftype#63] +[visit_exp `%%%`_tabletype(at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp (at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp at] [visit_id at] not free @@ -9285,11 +9066,9 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_tabletype{addrtype#115 : addrtype, limits#115 : limits, reftype#51 : reftype, at : addrtype, lim : limits, rt : reftype, `tv*` : typevar*, `tu*` : typeuse*, addrtype#127 : addrtype, limits#127 : limits, reftype#63 : reftype}(`%%%`_tabletype{addrtype#115, limits#115, reftype#51}(at, lim, rt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%%`_tabletype{addrtype#127, limits#127, reftype#63}(at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] jt tagtype#3 tagtype#5 tu tv -[visit_exp `TAG`_externtype{tagtype#3}(jt)] -[visit_exp tagtype#3] -[visit_id tagtype#3] + def $subst_tabletype{at : addrtype, lim : limits, rt : reftype, `tv*` : typevar*, `tu*` : typeuse*}(`%%%`_tabletype(at, lim, rt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%%`_tabletype(at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] jt tu tv +[visit_exp `TAG`_externtype(jt)] [visit_exp (jt)] [visit_exp jt] [visit_id jt] @@ -9311,9 +9090,7 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `TAG`_externtype{tagtype#5}($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp tagtype#5] -[visit_id tagtype#5] +[visit_exp `TAG`_externtype($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp ($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp $subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] [visit_exp jt] @@ -9338,11 +9115,9 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{tagtype#3 : tagtype, jt : tagtype, `tv*` : typevar*, `tu*` : typeuse*, tagtype#5 : tagtype}(`TAG`_externtype{tagtype#3}(jt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TAG`_externtype{tagtype#5}($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] globaltype#3 globaltype#5 gt tu tv -[visit_exp `GLOBAL`_externtype{globaltype#3}(gt)] -[visit_exp globaltype#3] -[visit_id globaltype#3] + def $subst_externtype{jt : tagtype, `tv*` : typevar*, `tu*` : typeuse*}(`TAG`_externtype(jt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TAG`_externtype($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] gt tu tv +[visit_exp `GLOBAL`_externtype(gt)] [visit_exp (gt)] [visit_exp gt] [visit_id gt] @@ -9364,9 +9139,7 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `GLOBAL`_externtype{globaltype#5}($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp globaltype#5] -[visit_id globaltype#5] +[visit_exp `GLOBAL`_externtype($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp ($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp $subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] [visit_exp gt] @@ -9391,11 +9164,9 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{globaltype#3 : globaltype, gt : globaltype, `tv*` : typevar*, `tu*` : typeuse*, globaltype#5 : globaltype}(`GLOBAL`_externtype{globaltype#3}(gt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `GLOBAL`_externtype{globaltype#5}($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] tabletype#3 tabletype#5 tt tu tv -[visit_exp `TABLE`_externtype{tabletype#3}(tt)] -[visit_exp tabletype#3] -[visit_id tabletype#3] + def $subst_externtype{gt : globaltype, `tv*` : typevar*, `tu*` : typeuse*}(`GLOBAL`_externtype(gt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `GLOBAL`_externtype($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] tt tu tv +[visit_exp `TABLE`_externtype(tt)] [visit_exp (tt)] [visit_exp tt] [visit_id tt] @@ -9417,9 +9188,7 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `TABLE`_externtype{tabletype#5}($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp tabletype#5] -[visit_id tabletype#5] +[visit_exp `TABLE`_externtype($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp ($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp $subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] [visit_exp tt] @@ -9444,11 +9213,9 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{tabletype#3 : tabletype, tt : tabletype, `tv*` : typevar*, `tu*` : typeuse*, tabletype#5 : tabletype}(`TABLE`_externtype{tabletype#3}(tt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TABLE`_externtype{tabletype#5}($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] memtype#3 memtype#5 mt tu tv -[visit_exp `MEM`_externtype{memtype#3}(mt)] -[visit_exp memtype#3] -[visit_id memtype#3] + def $subst_externtype{tt : tabletype, `tv*` : typevar*, `tu*` : typeuse*}(`TABLE`_externtype(tt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TABLE`_externtype($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] mt tu tv +[visit_exp `MEM`_externtype(mt)] [visit_exp (mt)] [visit_exp mt] [visit_id mt] @@ -9470,9 +9237,7 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `MEM`_externtype{memtype#5}($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp memtype#5] -[visit_id memtype#5] +[visit_exp `MEM`_externtype($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp ($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] [visit_exp $subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] [visit_exp mt] @@ -9497,11 +9262,9 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{memtype#3 : memtype, mt : memtype, `tv*` : typevar*, `tu*` : typeuse*, memtype#5 : memtype}(`MEM`_externtype{memtype#3}(mt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `MEM`_externtype{memtype#5}($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] dt tu tv typeuse#3 typeuse#5 -[visit_exp `FUNC`_externtype{typeuse#3}((dt : deftype <: typeuse))] -[visit_exp typeuse#3] -[visit_id typeuse#3] + def $subst_externtype{mt : memtype, `tv*` : typevar*, `tu*` : typeuse*}(`MEM`_externtype(mt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `MEM`_externtype($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) +[check_dims] dt tu tv +[visit_exp `FUNC`_externtype((dt : deftype <: typeuse))] [visit_exp ((dt : deftype <: typeuse))] [visit_exp (dt : deftype <: typeuse)] [visit_exp dt] @@ -9524,9 +9287,7 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `FUNC`_externtype{typeuse#5}(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse))] -[visit_exp typeuse#5] -[visit_id typeuse#5] +[visit_exp `FUNC`_externtype(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse))] [visit_exp (($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse))] [visit_exp ($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)] [visit_exp $subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] @@ -9552,11 +9313,9 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id tu*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{typeuse#3 : typeuse, dt : deftype, `tv*` : typevar*, `tu*` : typeuse*, typeuse#5 : typeuse}(`FUNC`_externtype{typeuse#3}((dt : deftype <: typeuse)), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC`_externtype{typeuse#5}(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)) -[check_dims] externtype*#18 externtype*#38 tu tv xt_1 xt_2 -[visit_exp `%->%`_moduletype{`externtype*#18`}(xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`})] -[visit_exp `externtype*#18`] -[visit_id externtype*#18] + def $subst_externtype{dt : deftype, `tv*` : typevar*, `tu*` : typeuse*}(`FUNC`_externtype((dt : deftype <: typeuse)), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC`_externtype(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)) +[check_dims] tu tv xt_1 xt_2 +[visit_exp `%->%`_moduletype(xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`})] [visit_exp (xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`})] [visit_exp xt_1*{xt_1 <- `xt_1*`}] [scope_enter xt_1] @@ -9594,9 +9353,7 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp `%->%`_moduletype{`externtype*#38`}($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`})] -[visit_exp `externtype*#38`] -[visit_id externtype*#38] +[visit_exp `%->%`_moduletype($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`})] [visit_exp ($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`})] [visit_exp $subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}] [scope_enter xt_1] @@ -9656,7 +9413,7 @@ DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) [visit_id xt_2*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_moduletype{`externtype*#18` : externtype*, `xt_1*` : externtype*, `xt_2*` : externtype*, `tv*` : typevar*, `tu*` : typeuse*, `externtype*#38` : externtype*}(`%->%`_moduletype{`externtype*#18`}(xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`}), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%->%`_moduletype{`externtype*#38`}($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`}) + def $subst_moduletype{`xt_1*` : externtype*, `xt_2*` : externtype*, `tv*` : typevar*, `tu*` : typeuse*}(`%->%`_moduletype(xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`}), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%->%`_moduletype($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`}) [check_dims] _ valtype DecD subst_all_valtype(valtype : valtype, typeuse*) : valtype [visit_id valtype] not free @@ -9693,7 +9450,7 @@ DecD subst_all_externtype(externtype : externtype, typeuse*) : externtype DecD subst_all_moduletype(moduletype : moduletype, typeuse*) : moduletype [visit_id moduletype] not free [visit_id _] not free -[check_dims] i i#779 n t tu typeidx#5 +[check_dims] i n t tu [visit_exp t] [visit_id t] [visit_exp tu^n{tu <- `tu*`}] @@ -9707,37 +9464,21 @@ DecD subst_all_moduletype(moduletype : moduletype, typeuse*) : moduletype [visit_exp `tu*`] [visit_id tu*] no dims [visit_id tu*] -[visit_exp $subst_valtype(t, `_IDX`_typevar{typeidx#5}(`%`_typeidx{i#779}(i))^(i ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_valtype{t : valtype, n : n, `tu*` : typeuse*, i : nat, `i#779*` : nat*, `typeidx#5*` : typeidx*}(t, tu^n{tu <- `tu*`}) = $subst_valtype(t, `_IDX`_typevar{typeidx#5}(`%`_typeidx{i#779}(i))^(i ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_reftype{rt : reftype, n : n, `tu*` : typeuse*, i : nat, `i#801*` : nat*, `typeidx#7*` : typeidx*}(rt, tu^n{tu <- `tu*`}) = $subst_reftype(rt, `_IDX`_typevar{typeidx#7}(`%`_typeidx{i#801}(i))^(i ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_deftype{dt : deftype, n : n, `tu*` : typeuse*, i : nat, `i#823*` : nat*, `typeidx#9*` : typeidx*}(dt, tu^n{tu <- `tu*`}) = $subst_deftype(dt, `_IDX`_typevar{typeidx#9}(`%`_typeidx{i#823}(i))^(i ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_tagtype{jt : tagtype, n : n, `tu*` : typeuse*, i : nat, `i#845*` : nat*, `typeidx#11*` : typeidx*}(jt, tu^n{tu <- `tu*`}) = $subst_tagtype(jt, `_IDX`_typevar{typeidx#11}(`%`_typeidx{i#845}(i))^(i ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_globaltype{gt : globaltype, n : n, `tu*` : typeuse*, i : nat, `i#867*` : nat*, `typeidx#13*` : typeidx*}(gt, tu^n{tu <- `tu*`}) = $subst_globaltype(gt, `_IDX`_typevar{typeidx#13}(`%`_typeidx{i#867}(i))^(i ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_memtype{mt : memtype, n : n, `tu*` : typeuse*, i : nat, `i#889*` : nat*, `typeidx#15*` : typeidx*}(mt, tu^n{tu <- `tu*`}) = $subst_memtype(mt, `_IDX`_typevar{typeidx#15}(`%`_typeidx{i#889}(i))^(i ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_tabletype{tt : tabletype, n : n, `tu*` : typeuse*, i : nat, `i#911*` : nat*, `typeidx#17*` : typeidx*}(tt, tu^n{tu <- `tu*`}) = $subst_tabletype(tt, `_IDX`_typevar{typeidx#17}(`%`_typeidx{i#911}(i))^(i ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_externtype{xt : externtype, n : n, `tu*` : typeuse*, i : nat, `i#933*` : nat*, `typeidx#19*` : typeidx*}(xt, tu^n{tu <- `tu*`}) = $subst_externtype(xt, `_IDX`_typevar{typeidx#19}(`%`_typeidx{i#933}(i))^(i ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_moduletype{mmt : moduletype, n : n, `tu*` : typeuse*, i : nat, `i#955*` : nat*, `typeidx#21*` : typeidx*}(mmt, tu^n{tu <- `tu*`}) = $subst_moduletype(mmt, `_IDX`_typevar{typeidx#21}(`%`_typeidx{i#955}(i))^(i ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $rollrt{x : idx, rectype : rectype, `X*#142` : subtype*, i : nat, n : n, `i#1003**` : nat**, `i#993**` : nat**, `n#189**` : n**, `subtype*` : subtype*, `typeidx#23**` : typeidx**, `X*#127` : subtype*}(x, rectype) = `REC`_rectype(`%`_list{`X*#142`}($subst_subtype(subtype, `_IDX`_typevar{typeidx#23}(`%`_typeidx{i#1003}((x!`%`_idx{i#993}.0 + i)))^(i ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $unrollrt{rectype : rectype, `X*#172` : subtype*, i : nat, n : n, `n#191**` : n**, `n#193**` : n**, `rectype#187**` : rectype**, `subtype*` : subtype*, `X*#157` : subtype*}(rectype) = `REC`_rectype(`%`_list{`X*#172`}($subst_subtype(subtype, `REC`_typevar{n#191}(i)^(i ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $rolldt{x : idx, rectype : rectype, n : n, `subtype*` : subtype*, i : nat, `X*#202*` : subtype**, `n#211*` : n*, `rectype#205*` : rectype*, `X*#187` : subtype*}(x, rectype) = `_DEF`_deftype{rectype#205, n#211}(`REC`_rectype(`%`_list{`X*#202`}(subtype^n{subtype <- `subtype*`})), i)^(i ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $unrolldt{rectype#217 : rectype, n#223 : n, rectype : rectype, i : n, `subtype*` : subtype*, `X*#217` : subtype*}(`_DEF`_deftype{rectype#217, n#223}(rectype, i)) = subtype*{subtype <- `subtype*`}[i] - -- if ($unrollrt(rectype) = `REC`_rectype(`%`_list{`X*#217`}(subtype*{subtype <- `subtype*`}))) -[check_dims] comptype comptype#167 deftype final final?#167 typeuse typeuse*#167 + def $unrolldt{rectype : rectype, i : n, `subtype*` : subtype*}(`_DEF`_deftype(rectype, i)) = subtype*{subtype <- `subtype*`}[i] + -- if ($unrollrt(rectype) = `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))) +[check_dims] comptype deftype final typeuse [visit_exp deftype] [visit_id deftype] [visit_exp comptype] [visit_id comptype] -[visit_exp ($unrolldt(deftype) = `SUB`_subtype{`final?#167`, `typeuse*#167`, comptype#167}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype))] +[visit_exp ($unrolldt(deftype) = `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype))] [visit_exp $unrolldt(deftype)] [visit_exp deftype] [visit_id deftype] not free -[visit_exp `SUB`_subtype{`final?#167`, `typeuse*#167`, comptype#167}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] -[visit_exp `final?#167`] -[visit_id final?#167] -[visit_exp `typeuse*#167`] -[visit_id typeuse*#167] -[visit_exp comptype#167] -[visit_id comptype#167] +[visit_exp `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] [visit_exp (final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] [visit_exp final?{final <- `final?`}] [scope_enter final] @@ -10731,8 +10193,8 @@ DecD expanddt(deftype : deftype) : comptype [visit_id comptype] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $expanddt{deftype : deftype, comptype : comptype, `final?#167` : final?, `typeuse*#167` : typeuse*, comptype#167 : comptype, `final?` : final?, `typeuse*` : typeuse*}(deftype) = comptype - -- if ($unrolldt(deftype) = `SUB`_subtype{`final?#167`, `typeuse*#167`, comptype#167}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) + def $expanddt{deftype : deftype, comptype : comptype, `final?` : final?, `typeuse*` : typeuse*}(deftype) = comptype + -- if ($unrolldt(deftype) = `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) [check_dims] numtype DecD free_addrtype(numtype : numtype) : free [visit_id numtype] not free @@ -10811,109 +10273,55 @@ DecD free_externtype(externtype : externtype) : free [check_dims] moduletype DecD free_moduletype(moduletype : moduletype) : free [visit_id moduletype] not free -[check_dims] addrtype dataidx*#12 elemidx*#12 funcidx*#12 globalidx*#12 labelidx*#12 localidx*#12 memidx*#12 tableidx*#12 typeidx*#12 +[check_dims] addrtype [visit_exp (addrtype : addrtype <: numtype)] [visit_exp addrtype] [visit_id addrtype] -[visit_exp {`TYPES`{`typeidx*#12`} [], `FUNCS`{`funcidx*#12`} [], `GLOBALS`{`globalidx*#12`} [], `TABLES`{`tableidx*#12`} [], `MEMS`{`memidx*#12`} [], `ELEMS`{`elemidx*#12`} [], `DATAS`{`dataidx*#12`} [], `LOCALS`{`localidx*#12`} [], `LABELS`{`labelidx*#12`} []}] -[visit_exp `typeidx*#12`] -[visit_id typeidx*#12] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#12`] -[visit_id funcidx*#12] [visit_exp []] -[visit_exp `globalidx*#12`] -[visit_id globalidx*#12] [visit_exp []] -[visit_exp `tableidx*#12`] -[visit_id tableidx*#12] [visit_exp []] -[visit_exp `memidx*#12`] -[visit_id memidx*#12] [visit_exp []] -[visit_exp `elemidx*#12`] -[visit_id elemidx*#12] [visit_exp []] -[visit_exp `dataidx*#12`] -[visit_id dataidx*#12] [visit_exp []] -[visit_exp `localidx*#12`] -[visit_id localidx*#12] [visit_exp []] -[visit_exp `labelidx*#12`] -[visit_id labelidx*#12] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_addrtype{addrtype : addrtype, `typeidx*#12` : typeidx*, `funcidx*#12` : funcidx*, `globalidx*#12` : globalidx*, `tableidx*#12` : tableidx*, `memidx*#12` : memidx*, `elemidx*#12` : elemidx*, `dataidx*#12` : dataidx*, `localidx*#12` : localidx*, `labelidx*#12` : labelidx*}((addrtype : addrtype <: numtype)) = {`TYPES`{`typeidx*#12`} [], `FUNCS`{`funcidx*#12`} [], `GLOBALS`{`globalidx*#12`} [], `TABLES`{`tableidx*#12`} [], `MEMS`{`memidx*#12`} [], `ELEMS`{`elemidx*#12`} [], `DATAS`{`dataidx*#12`} [], `LOCALS`{`localidx*#12`} [], `LABELS`{`labelidx*#12`} []} -[check_dims] dataidx*#13 elemidx*#13 funcidx*#13 globalidx*#13 labelidx*#13 localidx*#13 memidx*#13 numtype tableidx*#13 typeidx*#13 + def $free_addrtype{addrtype : addrtype}((addrtype : addrtype <: numtype)) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] numtype [visit_exp numtype] [visit_id numtype] -[visit_exp {`TYPES`{`typeidx*#13`} [], `FUNCS`{`funcidx*#13`} [], `GLOBALS`{`globalidx*#13`} [], `TABLES`{`tableidx*#13`} [], `MEMS`{`memidx*#13`} [], `ELEMS`{`elemidx*#13`} [], `DATAS`{`dataidx*#13`} [], `LOCALS`{`localidx*#13`} [], `LABELS`{`labelidx*#13`} []}] -[visit_exp `typeidx*#13`] -[visit_id typeidx*#13] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#13`] -[visit_id funcidx*#13] [visit_exp []] -[visit_exp `globalidx*#13`] -[visit_id globalidx*#13] [visit_exp []] -[visit_exp `tableidx*#13`] -[visit_id tableidx*#13] [visit_exp []] -[visit_exp `memidx*#13`] -[visit_id memidx*#13] [visit_exp []] -[visit_exp `elemidx*#13`] -[visit_id elemidx*#13] [visit_exp []] -[visit_exp `dataidx*#13`] -[visit_id dataidx*#13] [visit_exp []] -[visit_exp `localidx*#13`] -[visit_id localidx*#13] [visit_exp []] -[visit_exp `labelidx*#13`] -[visit_id labelidx*#13] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_numtype{numtype : numtype, `typeidx*#13` : typeidx*, `funcidx*#13` : funcidx*, `globalidx*#13` : globalidx*, `tableidx*#13` : tableidx*, `memidx*#13` : memidx*, `elemidx*#13` : elemidx*, `dataidx*#13` : dataidx*, `localidx*#13` : localidx*, `labelidx*#13` : labelidx*}(numtype) = {`TYPES`{`typeidx*#13`} [], `FUNCS`{`funcidx*#13`} [], `GLOBALS`{`globalidx*#13`} [], `TABLES`{`tableidx*#13`} [], `MEMS`{`memidx*#13`} [], `ELEMS`{`elemidx*#13`} [], `DATAS`{`dataidx*#13`} [], `LOCALS`{`localidx*#13`} [], `LABELS`{`labelidx*#13`} []} -[check_dims] dataidx*#14 elemidx*#14 funcidx*#14 globalidx*#14 labelidx*#14 localidx*#14 memidx*#14 packtype tableidx*#14 typeidx*#14 + def $free_numtype{numtype : numtype}(numtype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] packtype [visit_exp packtype] [visit_id packtype] -[visit_exp {`TYPES`{`typeidx*#14`} [], `FUNCS`{`funcidx*#14`} [], `GLOBALS`{`globalidx*#14`} [], `TABLES`{`tableidx*#14`} [], `MEMS`{`memidx*#14`} [], `ELEMS`{`elemidx*#14`} [], `DATAS`{`dataidx*#14`} [], `LOCALS`{`localidx*#14`} [], `LABELS`{`labelidx*#14`} []}] -[visit_exp `typeidx*#14`] -[visit_id typeidx*#14] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#14`] -[visit_id funcidx*#14] [visit_exp []] -[visit_exp `globalidx*#14`] -[visit_id globalidx*#14] [visit_exp []] -[visit_exp `tableidx*#14`] -[visit_id tableidx*#14] [visit_exp []] -[visit_exp `memidx*#14`] -[visit_id memidx*#14] [visit_exp []] -[visit_exp `elemidx*#14`] -[visit_id elemidx*#14] [visit_exp []] -[visit_exp `dataidx*#14`] -[visit_id dataidx*#14] [visit_exp []] -[visit_exp `localidx*#14`] -[visit_id localidx*#14] [visit_exp []] -[visit_exp `labelidx*#14`] -[visit_id labelidx*#14] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_packtype{packtype : packtype, `typeidx*#14` : typeidx*, `funcidx*#14` : funcidx*, `globalidx*#14` : globalidx*, `tableidx*#14` : tableidx*, `memidx*#14` : memidx*, `elemidx*#14` : elemidx*, `dataidx*#14` : dataidx*, `localidx*#14` : localidx*, `labelidx*#14` : labelidx*}(packtype) = {`TYPES`{`typeidx*#14`} [], `FUNCS`{`funcidx*#14`} [], `GLOBALS`{`globalidx*#14`} [], `TABLES`{`tableidx*#14`} [], `MEMS`{`memidx*#14`} [], `ELEMS`{`elemidx*#14`} [], `DATAS`{`dataidx*#14`} [], `LOCALS`{`localidx*#14`} [], `LABELS`{`labelidx*#14`} []} + def $free_packtype{packtype : packtype}(packtype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} [check_dims] numtype [visit_exp (numtype : numtype <: lanetype)] [visit_exp numtype] @@ -10934,40 +10342,22 @@ DecD free_moduletype(moduletype : moduletype) : free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_lanetype{packtype : packtype}((packtype : packtype <: lanetype)) = $free_packtype(packtype) -[check_dims] dataidx*#15 elemidx*#15 funcidx*#15 globalidx*#15 labelidx*#15 localidx*#15 memidx*#15 tableidx*#15 typeidx*#15 vectype +[check_dims] vectype [visit_exp vectype] [visit_id vectype] -[visit_exp {`TYPES`{`typeidx*#15`} [], `FUNCS`{`funcidx*#15`} [], `GLOBALS`{`globalidx*#15`} [], `TABLES`{`tableidx*#15`} [], `MEMS`{`memidx*#15`} [], `ELEMS`{`elemidx*#15`} [], `DATAS`{`dataidx*#15`} [], `LOCALS`{`localidx*#15`} [], `LABELS`{`labelidx*#15`} []}] -[visit_exp `typeidx*#15`] -[visit_id typeidx*#15] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#15`] -[visit_id funcidx*#15] [visit_exp []] -[visit_exp `globalidx*#15`] -[visit_id globalidx*#15] [visit_exp []] -[visit_exp `tableidx*#15`] -[visit_id tableidx*#15] [visit_exp []] -[visit_exp `memidx*#15`] -[visit_id memidx*#15] [visit_exp []] -[visit_exp `elemidx*#15`] -[visit_id elemidx*#15] [visit_exp []] -[visit_exp `dataidx*#15`] -[visit_id dataidx*#15] [visit_exp []] -[visit_exp `localidx*#15`] -[visit_id localidx*#15] [visit_exp []] -[visit_exp `labelidx*#15`] -[visit_id labelidx*#15] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_vectype{vectype : vectype, `typeidx*#15` : typeidx*, `funcidx*#15` : funcidx*, `globalidx*#15` : globalidx*, `tableidx*#15` : tableidx*, `memidx*#15` : memidx*, `elemidx*#15` : elemidx*, `dataidx*#15` : dataidx*, `localidx*#15` : localidx*, `labelidx*#15` : labelidx*}(vectype) = {`TYPES`{`typeidx*#15`} [], `FUNCS`{`funcidx*#15`} [], `GLOBALS`{`globalidx*#15`} [], `TABLES`{`tableidx*#15`} [], `MEMS`{`memidx*#15`} [], `ELEMS`{`elemidx*#15`} [], `DATAS`{`dataidx*#15`} [], `LOCALS`{`localidx*#15`} [], `LABELS`{`labelidx*#15`} []} + def $free_vectype{vectype : vectype}(vectype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} [check_dims] numtype [visit_exp (numtype : numtype <: consttype)] [visit_exp numtype] @@ -10988,49 +10378,27 @@ DecD free_moduletype(moduletype : moduletype) : free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_consttype{vectype : vectype}((vectype : vectype <: consttype)) = $free_vectype(vectype) -[check_dims] absheaptype dataidx*#16 elemidx*#16 funcidx*#16 globalidx*#16 labelidx*#16 localidx*#16 memidx*#16 tableidx*#16 typeidx*#16 +[check_dims] absheaptype [visit_exp absheaptype] [visit_id absheaptype] -[visit_exp {`TYPES`{`typeidx*#16`} [], `FUNCS`{`funcidx*#16`} [], `GLOBALS`{`globalidx*#16`} [], `TABLES`{`tableidx*#16`} [], `MEMS`{`memidx*#16`} [], `ELEMS`{`elemidx*#16`} [], `DATAS`{`dataidx*#16`} [], `LOCALS`{`localidx*#16`} [], `LABELS`{`labelidx*#16`} []}] -[visit_exp `typeidx*#16`] -[visit_id typeidx*#16] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#16`] -[visit_id funcidx*#16] [visit_exp []] -[visit_exp `globalidx*#16`] -[visit_id globalidx*#16] [visit_exp []] -[visit_exp `tableidx*#16`] -[visit_id tableidx*#16] [visit_exp []] -[visit_exp `memidx*#16`] -[visit_id memidx*#16] [visit_exp []] -[visit_exp `elemidx*#16`] -[visit_id elemidx*#16] [visit_exp []] -[visit_exp `dataidx*#16`] -[visit_id dataidx*#16] [visit_exp []] -[visit_exp `localidx*#16`] -[visit_id localidx*#16] [visit_exp []] -[visit_exp `labelidx*#16`] -[visit_id labelidx*#16] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_absheaptype{absheaptype : absheaptype, `typeidx*#16` : typeidx*, `funcidx*#16` : funcidx*, `globalidx*#16` : globalidx*, `tableidx*#16` : tableidx*, `memidx*#16` : memidx*, `elemidx*#16` : elemidx*, `dataidx*#16` : dataidx*, `localidx*#16` : localidx*, `labelidx*#16` : labelidx*}(absheaptype) = {`TYPES`{`typeidx*#16`} [], `FUNCS`{`funcidx*#16`} [], `GLOBALS`{`globalidx*#16`} [], `TABLES`{`tableidx*#16`} [], `MEMS`{`memidx*#16`} [], `ELEMS`{`elemidx*#16`} [], `DATAS`{`dataidx*#16`} [], `LOCALS`{`localidx*#16`} [], `LABELS`{`labelidx*#16`} []} + def $free_absheaptype{absheaptype : absheaptype}(absheaptype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} [check_dims] deftype DecD free_deftype(deftype : deftype) : free [visit_id deftype] not free -[check_dims] n n#247 rectype rectype#241 -[visit_exp `_DEF`_deftype{rectype#241, n#247}(rectype, n)] -[visit_exp rectype#241] -[visit_id rectype#241] -[visit_exp n#247] -[visit_id n#247] +[check_dims] n rectype +[visit_exp `_DEF`_deftype(rectype, n)] [visit_exp (rectype, n)] [visit_exp rectype] [visit_id rectype] @@ -11041,11 +10409,9 @@ DecD free_deftype(deftype : deftype) : free [visit_id rectype] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_deftype{rectype#241 : rectype, n#247 : n, rectype : rectype, n : n}(`_DEF`_deftype{rectype#241, n#247}(rectype, n)) = $free_rectype(rectype) -[check_dims] typeidx typeidx#25 -[visit_exp `_IDX`_typevar{typeidx#25}(typeidx)] -[visit_exp typeidx#25] -[visit_id typeidx#25] + def $free_deftype{rectype : rectype, n : n}(`_DEF`_deftype(rectype, n)) = $free_rectype(rectype) +[check_dims] typeidx +[visit_exp `_IDX`_typevar(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] @@ -11054,45 +10420,25 @@ DecD free_deftype(deftype : deftype) : free [visit_id typeidx] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_typevar{typeidx#25 : typeidx, typeidx : typeidx}(`_IDX`_typevar{typeidx#25}(typeidx)) = $free_typeidx(typeidx) -[check_dims] dataidx*#17 elemidx*#17 funcidx*#17 globalidx*#17 labelidx*#17 localidx*#17 memidx*#17 n n#249 tableidx*#17 typeidx*#17 -[visit_exp `REC`_typevar{n#249}(n)] -[visit_exp n#249] -[visit_id n#249] + def $free_typevar{typeidx : typeidx}(`_IDX`_typevar(typeidx)) = $free_typeidx(typeidx) +[check_dims] n +[visit_exp `REC`_typevar(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp {`TYPES`{`typeidx*#17`} [], `FUNCS`{`funcidx*#17`} [], `GLOBALS`{`globalidx*#17`} [], `TABLES`{`tableidx*#17`} [], `MEMS`{`memidx*#17`} [], `ELEMS`{`elemidx*#17`} [], `DATAS`{`dataidx*#17`} [], `LOCALS`{`localidx*#17`} [], `LABELS`{`labelidx*#17`} []}] -[visit_exp `typeidx*#17`] -[visit_id typeidx*#17] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#17`] -[visit_id funcidx*#17] [visit_exp []] -[visit_exp `globalidx*#17`] -[visit_id globalidx*#17] [visit_exp []] -[visit_exp `tableidx*#17`] -[visit_id tableidx*#17] [visit_exp []] -[visit_exp `memidx*#17`] -[visit_id memidx*#17] [visit_exp []] -[visit_exp `elemidx*#17`] -[visit_id elemidx*#17] [visit_exp []] -[visit_exp `dataidx*#17`] -[visit_id dataidx*#17] [visit_exp []] -[visit_exp `localidx*#17`] -[visit_id localidx*#17] [visit_exp []] -[visit_exp `labelidx*#17`] -[visit_id labelidx*#17] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_typevar{n#249 : n, n : n, `typeidx*#17` : typeidx*, `funcidx*#17` : funcidx*, `globalidx*#17` : globalidx*, `tableidx*#17` : tableidx*, `memidx*#17` : memidx*, `elemidx*#17` : elemidx*, `dataidx*#17` : dataidx*, `localidx*#17` : localidx*, `labelidx*#17` : labelidx*}(`REC`_typevar{n#249}(n)) = {`TYPES`{`typeidx*#17`} [], `FUNCS`{`funcidx*#17`} [], `GLOBALS`{`globalidx*#17`} [], `TABLES`{`tableidx*#17`} [], `MEMS`{`memidx*#17`} [], `ELEMS`{`elemidx*#17`} [], `DATAS`{`dataidx*#17`} [], `LOCALS`{`localidx*#17`} [], `LABELS`{`labelidx*#17`} []} + def $free_typevar{n : n}(`REC`_typevar(n)) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} [check_dims] typevar [visit_exp (typevar : typevar <: typeuse)] [visit_exp typevar] @@ -11133,12 +10479,8 @@ DecD free_deftype(deftype : deftype) : free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_heaptype{typeuse : typeuse}((typeuse : typeuse <: heaptype)) = $free_typeuse(typeuse) -[check_dims] heaptype heaptype#293 null null?#293 -[visit_exp `REF`_reftype{`null?#293`, heaptype#293}(null?{null <- `null?`}, heaptype)] -[visit_exp `null?#293`] -[visit_id null?#293] -[visit_exp heaptype#293] -[visit_id heaptype#293] +[check_dims] heaptype null +[visit_exp `REF`_reftype(null?{null <- `null?`}, heaptype)] [visit_exp (null?{null <- `null?`}, heaptype)] [visit_exp null?{null <- `null?`}] [scope_enter null] @@ -11156,7 +10498,7 @@ DecD free_deftype(deftype : deftype) : free [visit_id heaptype] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_reftype{`null?#293` : null?, heaptype#293 : heaptype, `null?` : null?, heaptype : heaptype}(`REF`_reftype{`null?#293`, heaptype#293}(null?{null <- `null?`}, heaptype)) = $free_heaptype(heaptype) + def $free_reftype{`null?` : null?, heaptype : heaptype}(`REF`_reftype(null?{null <- `null?`}, heaptype)) = $free_heaptype(heaptype) [check_dims] numtype [visit_exp (numtype : numtype <: valtype)] [visit_exp numtype] @@ -11187,44 +10529,24 @@ DecD free_deftype(deftype : deftype) : free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_valtype{reftype : reftype}((reftype : reftype <: valtype)) = $free_reftype(reftype) -[check_dims] dataidx*#18 elemidx*#18 funcidx*#18 globalidx*#18 labelidx*#18 localidx*#18 memidx*#18 tableidx*#18 typeidx*#18 +[check_dims] [visit_exp `BOT`_valtype] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#18`} [], `FUNCS`{`funcidx*#18`} [], `GLOBALS`{`globalidx*#18`} [], `TABLES`{`tableidx*#18`} [], `MEMS`{`memidx*#18`} [], `ELEMS`{`elemidx*#18`} [], `DATAS`{`dataidx*#18`} [], `LOCALS`{`localidx*#18`} [], `LABELS`{`labelidx*#18`} []}] -[visit_exp `typeidx*#18`] -[visit_id typeidx*#18] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#18`] -[visit_id funcidx*#18] [visit_exp []] -[visit_exp `globalidx*#18`] -[visit_id globalidx*#18] [visit_exp []] -[visit_exp `tableidx*#18`] -[visit_id tableidx*#18] [visit_exp []] -[visit_exp `memidx*#18`] -[visit_id memidx*#18] [visit_exp []] -[visit_exp `elemidx*#18`] -[visit_id elemidx*#18] [visit_exp []] -[visit_exp `dataidx*#18`] -[visit_id dataidx*#18] [visit_exp []] -[visit_exp `localidx*#18`] -[visit_id localidx*#18] [visit_exp []] -[visit_exp `labelidx*#18`] -[visit_id labelidx*#18] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_valtype{`typeidx*#18` : typeidx*, `funcidx*#18` : funcidx*, `globalidx*#18` : globalidx*, `tableidx*#18` : tableidx*, `memidx*#18` : memidx*, `elemidx*#18` : elemidx*, `dataidx*#18` : dataidx*, `localidx*#18` : localidx*, `labelidx*#18` : labelidx*}(`BOT`_valtype) = {`TYPES`{`typeidx*#18`} [], `FUNCS`{`funcidx*#18`} [], `GLOBALS`{`globalidx*#18`} [], `TABLES`{`tableidx*#18`} [], `MEMS`{`memidx*#18`} [], `ELEMS`{`elemidx*#18`} [], `DATAS`{`dataidx*#18`} [], `LOCALS`{`localidx*#18`} [], `LABELS`{`labelidx*#18`} []} -[check_dims] X*#230 valtype -[visit_exp `%`_resulttype{`X*#230`}(valtype*{valtype <- `valtype*`})] -[visit_exp `X*#230`] -[visit_id X*#230] + def $free_valtype(`BOT`_valtype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] valtype +[visit_exp `%`_resulttype(valtype*{valtype <- `valtype*`})] [visit_exp (valtype*{valtype <- `valtype*`})] [visit_exp valtype*{valtype <- `valtype*`}] [scope_enter valtype] @@ -11248,7 +10570,7 @@ DecD free_deftype(deftype : deftype) : free [visit_id valtype*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_resulttype{`X*#230` : valtype*, `valtype*` : valtype*}(`%`_resulttype{`X*#230`}(valtype*{valtype <- `valtype*`})) = $free_list($free_valtype(valtype)*{valtype <- `valtype*`}) + def $free_resulttype{`valtype*` : valtype*}(`%`_resulttype(valtype*{valtype <- `valtype*`})) = $free_list($free_valtype(valtype)*{valtype <- `valtype*`}) [check_dims] valtype [visit_exp (valtype : valtype <: storagetype)] [visit_exp valtype] @@ -11269,12 +10591,8 @@ DecD free_deftype(deftype : deftype) : free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_storagetype{packtype : packtype}((packtype : packtype <: storagetype)) = $free_packtype(packtype) -[check_dims] mut mut?#209 storagetype storagetype#93 -[visit_exp `%%`_fieldtype{`mut?#209`, storagetype#93}(mut?{mut <- `mut?`}, storagetype)] -[visit_exp `mut?#209`] -[visit_id mut?#209] -[visit_exp storagetype#93] -[visit_id storagetype#93] +[check_dims] mut storagetype +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, storagetype)] [visit_exp (mut?{mut <- `mut?`}, storagetype)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -11292,13 +10610,11 @@ DecD free_deftype(deftype : deftype) : free [visit_id storagetype] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_fieldtype{`mut?#209` : mut?, storagetype#93 : storagetype, `mut?` : mut?, storagetype : storagetype}(`%%`_fieldtype{`mut?#209`, storagetype#93}(mut?{mut <- `mut?`}, storagetype)) = $free_storagetype(storagetype) -[check_dims] X*#245 fieldtype -[visit_exp `STRUCT`_comptype(`%`_list{`X*#245`}(fieldtype*{fieldtype <- `fieldtype*`}))] -[visit_exp (`%`_list{`X*#245`}(fieldtype*{fieldtype <- `fieldtype*`}))] -[visit_exp `%`_list{`X*#245`}(fieldtype*{fieldtype <- `fieldtype*`})] -[visit_exp `X*#245`] -[visit_id X*#245] + def $free_fieldtype{`mut?` : mut?, storagetype : storagetype}(`%%`_fieldtype(mut?{mut <- `mut?`}, storagetype)) = $free_storagetype(storagetype) +[check_dims] fieldtype +[visit_exp `STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))] +[visit_exp (`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))] +[visit_exp `%`_list(fieldtype*{fieldtype <- `fieldtype*`})] [visit_exp (fieldtype*{fieldtype <- `fieldtype*`})] [visit_exp fieldtype*{fieldtype <- `fieldtype*`}] [scope_enter fieldtype] @@ -11322,11 +10638,9 @@ DecD free_deftype(deftype : deftype) : free [visit_id fieldtype*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_comptype{`X*#245` : fieldtype*, `fieldtype*` : fieldtype*}(`STRUCT`_comptype(`%`_list{`X*#245`}(fieldtype*{fieldtype <- `fieldtype*`}))) = $free_list($free_fieldtype(fieldtype)*{fieldtype <- `fieldtype*`}) -[check_dims] fieldtype fieldtype#5 -[visit_exp `ARRAY`_comptype{fieldtype#5}(fieldtype)] -[visit_exp fieldtype#5] -[visit_id fieldtype#5] + def $free_comptype{`fieldtype*` : fieldtype*}(`STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))) = $free_list($free_fieldtype(fieldtype)*{fieldtype <- `fieldtype*`}) +[check_dims] fieldtype +[visit_exp `ARRAY`_comptype(fieldtype)] [visit_exp (fieldtype)] [visit_exp fieldtype] [visit_id fieldtype] @@ -11335,11 +10649,9 @@ DecD free_deftype(deftype : deftype) : free [visit_id fieldtype] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_comptype{fieldtype#5 : fieldtype, fieldtype : fieldtype}(`ARRAY`_comptype{fieldtype#5}(fieldtype)) = $free_fieldtype(fieldtype) -[check_dims] resulttype#7 resulttype_1 resulttype_2 -[visit_exp `FUNC%->%`_comptype{resulttype#7}(resulttype_1, resulttype_2)] -[visit_exp resulttype#7] -[visit_id resulttype#7] + def $free_comptype{fieldtype : fieldtype}(`ARRAY`_comptype(fieldtype)) = $free_fieldtype(fieldtype) +[check_dims] resulttype_1 resulttype_2 +[visit_exp `FUNC%->%`_comptype(resulttype_1, resulttype_2)] [visit_exp (resulttype_1, resulttype_2)] [visit_exp resulttype_1] [visit_id resulttype_1] @@ -11354,15 +10666,9 @@ DecD free_deftype(deftype : deftype) : free [visit_id resulttype_2] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_comptype{resulttype#7 : resulttype, resulttype_1 : resulttype, resulttype_2 : resulttype}(`FUNC%->%`_comptype{resulttype#7}(resulttype_1, resulttype_2)) = $free_resulttype(resulttype_1) +++ $free_resulttype(resulttype_2) -[check_dims] comptype comptype#179 final final?#179 typeuse typeuse*#179 -[visit_exp `SUB`_subtype{`final?#179`, `typeuse*#179`, comptype#179}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] -[visit_exp `final?#179`] -[visit_id final?#179] -[visit_exp `typeuse*#179`] -[visit_id typeuse*#179] -[visit_exp comptype#179] -[visit_id comptype#179] + def $free_comptype{resulttype_1 : resulttype, resulttype_2 : resulttype}(`FUNC%->%`_comptype(resulttype_1, resulttype_2)) = $free_resulttype(resulttype_1) +++ $free_resulttype(resulttype_2) +[check_dims] comptype final typeuse +[visit_exp `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] [visit_exp (final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] [visit_exp final?{final <- `final?`}] [scope_enter final] @@ -11401,13 +10707,11 @@ DecD free_deftype(deftype : deftype) : free [visit_id comptype] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_subtype{`final?#179` : final?, `typeuse*#179` : typeuse*, comptype#179 : comptype, `final?` : final?, `typeuse*` : typeuse*, comptype : comptype}(`SUB`_subtype{`final?#179`, `typeuse*#179`, comptype#179}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) = $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`}) +++ $free_comptype(comptype) -[check_dims] X*#302 subtype -[visit_exp `REC`_rectype(`%`_list{`X*#302`}(subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list{`X*#302`}(subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list{`X*#302`}(subtype*{subtype <- `subtype*`})] -[visit_exp `X*#302`] -[visit_id X*#302] + def $free_subtype{`final?` : final?, `typeuse*` : typeuse*, comptype : comptype}(`SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) = $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`}) +++ $free_comptype(comptype) +[check_dims] subtype +[visit_exp `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list(subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list(subtype*{subtype <- `subtype*`})] [visit_exp (subtype*{subtype <- `subtype*`})] [visit_exp subtype*{subtype <- `subtype*`}] [scope_enter subtype] @@ -11431,7 +10735,7 @@ DecD free_deftype(deftype : deftype) : free [visit_id subtype*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_rectype{`X*#302` : subtype*, `subtype*` : subtype*}(`REC`_rectype(`%`_list{`X*#302`}(subtype*{subtype <- `subtype*`}))) = $free_list($free_subtype(subtype)*{subtype <- `subtype*`}) + def $free_rectype{`subtype*` : subtype*}(`REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))) = $free_list($free_subtype(subtype)*{subtype <- `subtype*`}) [check_dims] deftype [visit_exp (deftype : deftype <: typeuse)] [visit_exp deftype] @@ -11442,12 +10746,8 @@ DecD free_deftype(deftype : deftype) : free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_tagtype{deftype : deftype}((deftype : deftype <: typeuse)) = $free_deftype(deftype) -[check_dims] mut mut?#253 valtype valtype#127 -[visit_exp `%%`_globaltype{`mut?#253`, valtype#127}(mut?{mut <- `mut?`}, valtype)] -[visit_exp `mut?#253`] -[visit_id mut?#253] -[visit_exp valtype#127] -[visit_id valtype#127] +[check_dims] mut valtype +[visit_exp `%%`_globaltype(mut?{mut <- `mut?`}, valtype)] [visit_exp (mut?{mut <- `mut?`}, valtype)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -11465,13 +10765,9 @@ DecD free_deftype(deftype : deftype) : free [visit_id valtype] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_globaltype{`mut?#253` : mut?, valtype#127 : valtype, `mut?` : mut?, valtype : valtype}(`%%`_globaltype{`mut?#253`, valtype#127}(mut?{mut <- `mut?`}, valtype)) = $free_valtype(valtype) -[check_dims] addrtype addrtype#211 limits limits#211 -[visit_exp `%%PAGE`_memtype{addrtype#211, limits#211}(addrtype, limits)] -[visit_exp addrtype#211] -[visit_id addrtype#211] -[visit_exp limits#211] -[visit_id limits#211] + def $free_globaltype{`mut?` : mut?, valtype : valtype}(`%%`_globaltype(mut?{mut <- `mut?`}, valtype)) = $free_valtype(valtype) +[check_dims] addrtype limits +[visit_exp `%%PAGE`_memtype(addrtype, limits)] [visit_exp (addrtype, limits)] [visit_exp addrtype] [visit_id addrtype] @@ -11483,15 +10779,9 @@ DecD free_deftype(deftype : deftype) : free [visit_id addrtype] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_memtype{addrtype#211 : addrtype, limits#211 : limits, addrtype : addrtype, limits : limits}(`%%PAGE`_memtype{addrtype#211, limits#211}(addrtype, limits)) = $free_addrtype((addrtype : addrtype <: numtype)) -[check_dims] addrtype addrtype#223 limits limits#223 reftype reftype#111 -[visit_exp `%%%`_tabletype{addrtype#223, limits#223, reftype#111}(addrtype, limits, reftype)] -[visit_exp addrtype#223] -[visit_id addrtype#223] -[visit_exp limits#223] -[visit_id limits#223] -[visit_exp reftype#111] -[visit_id reftype#111] + def $free_memtype{addrtype : addrtype, limits : limits}(`%%PAGE`_memtype(addrtype, limits)) = $free_addrtype((addrtype : addrtype <: numtype)) +[check_dims] addrtype limits reftype +[visit_exp `%%%`_tabletype(addrtype, limits, reftype)] [visit_exp (addrtype, limits, reftype)] [visit_exp addrtype] [visit_id addrtype] @@ -11509,41 +10799,23 @@ DecD free_deftype(deftype : deftype) : free [visit_id reftype] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_tabletype{addrtype#223 : addrtype, limits#223 : limits, reftype#111 : reftype, addrtype : addrtype, limits : limits, reftype : reftype}(`%%%`_tabletype{addrtype#223, limits#223, reftype#111}(addrtype, limits, reftype)) = $free_addrtype((addrtype : addrtype <: numtype)) +++ $free_reftype(reftype) -[check_dims] dataidx*#19 elemidx*#19 funcidx*#19 globalidx*#19 labelidx*#19 localidx*#19 memidx*#19 tableidx*#19 typeidx*#19 + def $free_tabletype{addrtype : addrtype, limits : limits, reftype : reftype}(`%%%`_tabletype(addrtype, limits, reftype)) = $free_addrtype((addrtype : addrtype <: numtype)) +++ $free_reftype(reftype) +[check_dims] [visit_exp `OK`_datatype] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#19`} [], `FUNCS`{`funcidx*#19`} [], `GLOBALS`{`globalidx*#19`} [], `TABLES`{`tableidx*#19`} [], `MEMS`{`memidx*#19`} [], `ELEMS`{`elemidx*#19`} [], `DATAS`{`dataidx*#19`} [], `LOCALS`{`localidx*#19`} [], `LABELS`{`labelidx*#19`} []}] -[visit_exp `typeidx*#19`] -[visit_id typeidx*#19] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#19`] -[visit_id funcidx*#19] [visit_exp []] -[visit_exp `globalidx*#19`] -[visit_id globalidx*#19] [visit_exp []] -[visit_exp `tableidx*#19`] -[visit_id tableidx*#19] [visit_exp []] -[visit_exp `memidx*#19`] -[visit_id memidx*#19] [visit_exp []] -[visit_exp `elemidx*#19`] -[visit_id elemidx*#19] [visit_exp []] -[visit_exp `dataidx*#19`] -[visit_id dataidx*#19] [visit_exp []] -[visit_exp `localidx*#19`] -[visit_id localidx*#19] [visit_exp []] -[visit_exp `labelidx*#19`] -[visit_id labelidx*#19] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_datatype{`typeidx*#19` : typeidx*, `funcidx*#19` : funcidx*, `globalidx*#19` : globalidx*, `tableidx*#19` : tableidx*, `memidx*#19` : memidx*, `elemidx*#19` : elemidx*, `dataidx*#19` : dataidx*, `localidx*#19` : localidx*, `labelidx*#19` : labelidx*}(`OK`_datatype) = {`TYPES`{`typeidx*#19`} [], `FUNCS`{`funcidx*#19`} [], `GLOBALS`{`globalidx*#19`} [], `TABLES`{`tableidx*#19`} [], `MEMS`{`memidx*#19`} [], `ELEMS`{`elemidx*#19`} [], `DATAS`{`dataidx*#19`} [], `LOCALS`{`localidx*#19`} [], `LABELS`{`labelidx*#19`} []} + def $free_datatype(`OK`_datatype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} [check_dims] reftype [visit_exp reftype] [visit_id reftype] @@ -11553,10 +10825,8 @@ DecD free_deftype(deftype : deftype) : free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_elemtype{reftype : reftype}(reftype) = $free_reftype(reftype) -[check_dims] tagtype tagtype#7 -[visit_exp `TAG`_externtype{tagtype#7}(tagtype)] -[visit_exp tagtype#7] -[visit_id tagtype#7] +[check_dims] tagtype +[visit_exp `TAG`_externtype(tagtype)] [visit_exp (tagtype)] [visit_exp tagtype] [visit_id tagtype] @@ -11565,11 +10835,9 @@ DecD free_deftype(deftype : deftype) : free [visit_id tagtype] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{tagtype#7 : tagtype, tagtype : tagtype}(`TAG`_externtype{tagtype#7}(tagtype)) = $free_tagtype(tagtype) -[check_dims] globaltype globaltype#7 -[visit_exp `GLOBAL`_externtype{globaltype#7}(globaltype)] -[visit_exp globaltype#7] -[visit_id globaltype#7] + def $free_externtype{tagtype : tagtype}(`TAG`_externtype(tagtype)) = $free_tagtype(tagtype) +[check_dims] globaltype +[visit_exp `GLOBAL`_externtype(globaltype)] [visit_exp (globaltype)] [visit_exp globaltype] [visit_id globaltype] @@ -11578,11 +10846,9 @@ DecD free_deftype(deftype : deftype) : free [visit_id globaltype] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{globaltype#7 : globaltype, globaltype : globaltype}(`GLOBAL`_externtype{globaltype#7}(globaltype)) = $free_globaltype(globaltype) -[check_dims] memtype memtype#7 -[visit_exp `MEM`_externtype{memtype#7}(memtype)] -[visit_exp memtype#7] -[visit_id memtype#7] + def $free_externtype{globaltype : globaltype}(`GLOBAL`_externtype(globaltype)) = $free_globaltype(globaltype) +[check_dims] memtype +[visit_exp `MEM`_externtype(memtype)] [visit_exp (memtype)] [visit_exp memtype] [visit_id memtype] @@ -11591,11 +10857,9 @@ DecD free_deftype(deftype : deftype) : free [visit_id memtype] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{memtype#7 : memtype, memtype : memtype}(`MEM`_externtype{memtype#7}(memtype)) = $free_memtype(memtype) -[check_dims] tabletype tabletype#7 -[visit_exp `TABLE`_externtype{tabletype#7}(tabletype)] -[visit_exp tabletype#7] -[visit_id tabletype#7] + def $free_externtype{memtype : memtype}(`MEM`_externtype(memtype)) = $free_memtype(memtype) +[check_dims] tabletype +[visit_exp `TABLE`_externtype(tabletype)] [visit_exp (tabletype)] [visit_exp tabletype] [visit_id tabletype] @@ -11604,11 +10868,9 @@ DecD free_deftype(deftype : deftype) : free [visit_id tabletype] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{tabletype#7 : tabletype, tabletype : tabletype}(`TABLE`_externtype{tabletype#7}(tabletype)) = $free_tabletype(tabletype) -[check_dims] typeuse typeuse#7 -[visit_exp `FUNC`_externtype{typeuse#7}(typeuse)] -[visit_exp typeuse#7] -[visit_id typeuse#7] + def $free_externtype{tabletype : tabletype}(`TABLE`_externtype(tabletype)) = $free_tabletype(tabletype) +[check_dims] typeuse +[visit_exp `FUNC`_externtype(typeuse)] [visit_exp (typeuse)] [visit_exp typeuse] [visit_id typeuse] @@ -11617,11 +10879,9 @@ DecD free_deftype(deftype : deftype) : free [visit_id typeuse] not free => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{typeuse#7 : typeuse, typeuse : typeuse}(`FUNC`_externtype{typeuse#7}(typeuse)) = $free_typeuse(typeuse) -[check_dims] externtype*#88 externtype_1 externtype_2 -[visit_exp `%->%`_moduletype{`externtype*#88`}(externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})] -[visit_exp `externtype*#88`] -[visit_id externtype*#88] + def $free_externtype{typeuse : typeuse}(`FUNC`_externtype(typeuse)) = $free_typeuse(typeuse) +[check_dims] externtype_1 externtype_2 +[visit_exp `%->%`_moduletype(externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})] [visit_exp (externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})] [visit_exp externtype_1*{externtype_1 <- `externtype_1*`}] [scope_enter externtype_1] @@ -11666,7 +10926,7 @@ DecD free_deftype(deftype : deftype) : free [visit_id externtype_2*] no dims => ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_moduletype{`externtype*#88` : externtype*, `externtype_1*` : externtype*, `externtype_2*` : externtype*}(`%->%`_moduletype{`externtype*#88`}(externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})) = $free_list($free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`}) +++ $free_list($free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`}) + def $free_moduletype{`externtype_1*` : externtype*, `externtype_2*` : externtype*}(`%->%`_moduletype(externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})) = $free_list($free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`}) +++ $free_list($free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`}) [check_dims] numtype [visit_id numtype] not free [check_dims] Inn @@ -11721,11 +10981,13 @@ DecD free_deftype(deftype : deftype) : free [check_dims] [visit_exp 64] [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- @@ -11734,34 +10996,39 @@ DecD free_deftype(deftype : deftype) : free [check_dims] numtype [visit_id numtype] not free [check_dims] Inn +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn +[scope_enter sz] +[visit_id sz] not free +[visit_id sz] no dims +[scope_exit sz] --- 1 --- -[check_dims] Inn i#1051 sz +[check_dims] Inn sz --- 2 --- --- 3 --- --- 4 --- -[visit_id sz] -[visit_exp (sz!`%`_sz{i#1051}.0 < $sizenn((Inn : Inn <: numtype)))] -[visit_exp sz!`%`_sz{i#1051}.0] -[visit_exp sz!`%`_sz{i#1051}] +[visit_exp (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype)))] +[visit_exp sz!`%`_sz.0] +[visit_exp sz!`%`_sz] [visit_exp sz] [visit_id sz] not free -[visit_exp i#1051] -[visit_id i#1051] [visit_exp $sizenn((Inn : Inn <: numtype))] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] @@ -11771,36 +11038,43 @@ DecD free_deftype(deftype : deftype) : free [visit_exp Inn] [visit_id Inn] [check_dims] Fnn +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- @@ -11812,67 +11086,85 @@ DecD free_deftype(deftype : deftype) : free [check_dims] numtype [visit_id numtype] not free [check_dims] Inn +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn +[scope_enter sx] +[visit_id sx] not free [visit_id sx] no dims -[visit_id sx] +[scope_exit sx] --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- @@ -11882,36 +11174,43 @@ DecD free_deftype(deftype : deftype) : free [visit_exp Inn] [visit_id Inn] [check_dims] Fnn +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- @@ -11923,6 +11222,7 @@ DecD free_deftype(deftype : deftype) : free [check_dims] numtype [visit_id numtype] not free [check_dims] Inn +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- @@ -11934,73 +11234,93 @@ DecD free_deftype(deftype : deftype) : free [check_dims] numtype [visit_id numtype] not free [check_dims] Inn +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn +[scope_enter sx] +[visit_id sx] not free [visit_id sx] no dims -[visit_id sx] +[scope_exit sx] --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn +[scope_enter sx] +[visit_id sx] not free [visit_id sx] no dims -[visit_id sx] +[scope_exit sx] --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Inn +[scope_enter sx] +[visit_id sx] not free [visit_id sx] no dims -[visit_id sx] +[scope_exit sx] --- 1 --- [check_dims] Inn --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] [check_dims] Fnn +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn --- 1 --- [check_dims] Fnn --- 2 --- @@ -12013,13 +11333,16 @@ DecD free_deftype(deftype : deftype) : free [visit_id numtype_1] not free [visit_id numtype_2] not free [check_dims] Inn_1 Inn_2 +[check_dims] Inn_1 Inn_2 +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- [check_dims] Inn_1 Inn_2 --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] [visit_exp ($sizenn1((Inn_1 : Inn <: numtype)) < $sizenn2((Inn_2 : Inn <: numtype)))] [visit_exp $sizenn1((Inn_1 : Inn <: numtype))] [visit_exp (Inn_1 : Inn <: numtype)] @@ -12031,6 +11354,7 @@ DecD free_deftype(deftype : deftype) : free [visit_exp Inn_2] [visit_id Inn_2] not free [visit_id Inn_2] no dims +[check_dims] Inn_1 Inn_2 --- 1 --- [check_dims] Inn_1 Inn_2 --- 2 --- @@ -12054,13 +11378,17 @@ DecD free_deftype(deftype : deftype) : free [visit_exp Inn_2] [visit_id Inn_2] [check_dims] Fnn_2 Inn_1 +[check_dims] Fnn_2 Inn_1 +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- [check_dims] Fnn_2 Inn_1 --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] +[check_dims] Fnn_2 Inn_1 --- 1 --- [check_dims] Fnn_2 Inn_1 --- 2 --- @@ -12084,20 +11412,27 @@ DecD free_deftype(deftype : deftype) : free [visit_exp Fnn_2] [visit_id Fnn_2] [check_dims] Fnn_1 Inn_2 +[check_dims] Fnn_1 Inn_2 +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- [check_dims] Fnn_1 Inn_2 --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn_1 Inn_2 +[scope_enter sx] +[visit_id sx] not free [visit_id sx] no dims -[visit_id sx] +[scope_exit sx] --- 1 --- [check_dims] Fnn_1 Inn_2 --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] +[check_dims] Fnn_1 Inn_2 --- 1 --- [check_dims] Fnn_1 Inn_2 --- 2 --- @@ -12121,6 +11456,7 @@ DecD free_deftype(deftype : deftype) : free [visit_exp Inn_2] [visit_id Inn_2] [check_dims] Fnn_1 Fnn_2 +[check_dims] Fnn_1 Fnn_2 --- 1 --- [check_dims] Fnn_1 Fnn_2 --- 2 --- @@ -12137,6 +11473,7 @@ DecD free_deftype(deftype : deftype) : free [visit_exp Fnn_2] [visit_id Fnn_2] not free [visit_id Fnn_2] no dims +[check_dims] Fnn_1 Fnn_2 --- 1 --- [check_dims] Fnn_1 Fnn_2 --- 2 --- @@ -12171,71 +11508,58 @@ DecD free_deftype(deftype : deftype) : free [check_dims] [visit_exp 16] [check_dims] +[check_dims] +[scope_enter lanetype] +[visit_id lanetype] not free +[visit_id lanetype] no dims +[scope_enter dim] +[visit_id dim] not free +[visit_id dim] no dims +[scope_exit dim] +[scope_exit lanetype] --- 1 --- -[check_dims] dim i#1053 lanetype +[check_dims] dim lanetype --- 2 --- --- 3 --- --- 4 --- -[visit_id lanetype] -[visit_id dim] -[visit_exp (($lsize(lanetype) * dim!`%`_dim{i#1053}.0) = 128)] -[visit_exp ($lsize(lanetype) * dim!`%`_dim{i#1053}.0)] +[visit_exp (($lsize(lanetype) * dim!`%`_dim.0) = 128)] +[visit_exp ($lsize(lanetype) * dim!`%`_dim.0)] [visit_exp $lsize(lanetype)] [visit_exp lanetype] [visit_id lanetype] not free -[visit_exp dim!`%`_dim{i#1053}.0] -[visit_exp dim!`%`_dim{i#1053}] +[visit_exp dim!`%`_dim.0] +[visit_exp dim!`%`_dim] [visit_exp dim] [visit_id dim] not free -[visit_exp i#1053] -[visit_id i#1053] [visit_exp 128] [check_dims] shape DecD dim(shape : shape) : dim [visit_id shape] not free -[check_dims] Lnn N dim#11 i#1058 i#1065 i#1073 lanetype#11 -[visit_exp `%X%`_shape{lanetype#11, dim#11, i#1058}(Lnn, `%`_dim{i#1065}(N))] -[visit_exp lanetype#11] -[visit_id lanetype#11] -[visit_exp dim#11] -[visit_id dim#11] -[visit_exp i#1058] -[visit_id i#1058] -[visit_exp (Lnn, `%`_dim{i#1065}(N))] +[check_dims] Lnn N +[visit_exp `%X%`_shape(Lnn, `%`_dim(N))] +[visit_exp (Lnn, `%`_dim(N))] [visit_exp Lnn] [visit_id Lnn] -[visit_exp `%`_dim{i#1065}(N)] -[visit_exp i#1065] -[visit_id i#1065] +[visit_exp `%`_dim(N)] [visit_exp (N)] [visit_exp N] [visit_id N] -[visit_exp `%`_dim{i#1073}(N)] -[visit_exp i#1073] -[visit_id i#1073] +[visit_exp `%`_dim(N)] [visit_exp (N)] [visit_exp N] [visit_id N] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $dim{lanetype#11 : lanetype, dim#11 : dim, i#1058 : nat, Lnn : Lnn, i#1065 : nat, N : N, i#1073 : nat}(`%X%`_shape{lanetype#11, dim#11, i#1058}(Lnn, `%`_dim{i#1065}(N))) = `%`_dim{i#1073}(N) + def $dim{Lnn : Lnn, N : N}(`%X%`_shape(Lnn, `%`_dim(N))) = `%`_dim(N) [check_dims] shape DecD lanetype(shape : shape) : lanetype [visit_id shape] not free -[check_dims] Lnn N dim#23 i#1078 i#1085 lanetype#23 -[visit_exp `%X%`_shape{lanetype#23, dim#23, i#1078}(Lnn, `%`_dim{i#1085}(N))] -[visit_exp lanetype#23] -[visit_id lanetype#23] -[visit_exp dim#23] -[visit_id dim#23] -[visit_exp i#1078] -[visit_id i#1078] -[visit_exp (Lnn, `%`_dim{i#1085}(N))] +[check_dims] Lnn N +[visit_exp `%X%`_shape(Lnn, `%`_dim(N))] +[visit_exp (Lnn, `%`_dim(N))] [visit_exp Lnn] [visit_id Lnn] -[visit_exp `%`_dim{i#1085}(N)] -[visit_exp i#1085] -[visit_id i#1085] +[visit_exp `%`_dim(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -12243,24 +11567,16 @@ DecD lanetype(shape : shape) : lanetype [visit_id Lnn] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $lanetype{lanetype#23 : lanetype, dim#23 : dim, i#1078 : nat, Lnn : Lnn, i#1085 : nat, N : N}(`%X%`_shape{lanetype#23, dim#23, i#1078}(Lnn, `%`_dim{i#1085}(N))) = Lnn + def $lanetype{Lnn : Lnn, N : N}(`%X%`_shape(Lnn, `%`_dim(N))) = Lnn [check_dims] shape DecD unpackshape(shape : shape) : numtype [visit_id shape] not free -[check_dims] Lnn N dim#35 i#1090 i#1097 lanetype#35 -[visit_exp `%X%`_shape{lanetype#35, dim#35, i#1090}(Lnn, `%`_dim{i#1097}(N))] -[visit_exp lanetype#35] -[visit_id lanetype#35] -[visit_exp dim#35] -[visit_id dim#35] -[visit_exp i#1090] -[visit_id i#1090] -[visit_exp (Lnn, `%`_dim{i#1097}(N))] +[check_dims] Lnn N +[visit_exp `%X%`_shape(Lnn, `%`_dim(N))] +[visit_exp (Lnn, `%`_dim(N))] [visit_exp Lnn] [visit_id Lnn] -[visit_exp `%`_dim{i#1097}(N)] -[visit_exp i#1097] -[visit_id i#1097] +[visit_exp `%`_dim(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -12269,14 +11585,18 @@ DecD unpackshape(shape : shape) : numtype [visit_id Lnn] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $unpackshape{lanetype#35 : lanetype, dim#35 : dim, i#1090 : nat, Lnn : Lnn, i#1097 : nat, N : N}(`%X%`_shape{lanetype#35, dim#35, i#1090}(Lnn, `%`_dim{i#1097}(N))) = $lunpack(Lnn) + def $unpackshape{Lnn : Lnn, N : N}(`%X%`_shape(Lnn, `%`_dim(N))) = $lunpack(Lnn) [check_dims] +[check_dims] +[scope_enter shape] +[visit_id shape] not free +[visit_id shape] no dims +[scope_exit shape] --- 1 --- [check_dims] Jnn shape --- 2 --- --- 3 --- --- 4 --- -[visit_id shape] [visit_exp ($lanetype(shape) = (Jnn : Jnn <: lanetype))] [visit_exp $lanetype(shape)] [visit_exp shape] @@ -12285,12 +11605,16 @@ DecD unpackshape(shape : shape) : numtype [visit_exp Jnn] [visit_id Jnn] [check_dims] +[check_dims] +[scope_enter shape] +[visit_id shape] not free +[visit_id shape] no dims +[scope_exit shape] --- 1 --- [check_dims] shape --- 2 --- --- 3 --- --- 4 --- -[visit_id shape] [visit_exp ($lanetype(shape) = `I8`_lanetype)] [visit_exp $lanetype(shape)] [visit_exp shape] @@ -12298,56 +11622,66 @@ DecD unpackshape(shape : shape) : numtype [visit_exp `I8`_lanetype] [visit_exp ()] [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- @@ -12355,19 +11689,22 @@ DecD unpackshape(shape : shape) : numtype --- 4 --- [check_dims] shape [visit_id shape] not free -[check_dims] Jnn M dim#65 i#1108 i#1115 lanetype#65 +[check_dims] Jnn M +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn M dim#65 i#1108 i#1115 lanetype#65 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn M dim#65 i#1108 i#1115 lanetype#65 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn M dim#65 i#1108 i#1115 lanetype#65 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- @@ -12378,96 +11715,92 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn] not free [visit_id Jnn] no dims [visit_exp 8] -[visit_exp `%X%`_shape{lanetype#65, dim#65, i#1108}((Jnn : Jnn <: lanetype), `%`_dim{i#1115}(M))] -[visit_exp lanetype#65] -[visit_id lanetype#65] -[visit_exp dim#65] -[visit_id dim#65] -[visit_exp i#1108] -[visit_id i#1108] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#1115}(M))] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#1115}(M)] -[visit_exp i#1115] -[visit_id i#1115] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +[check_dims] Fnn M +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#77 i#1120 i#1127 lanetype#77 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- -[visit_exp `%X%`_shape{lanetype#77, dim#77, i#1120}((Fnn : Fnn <: lanetype), `%`_dim{i#1127}(M))] -[visit_exp lanetype#77] -[visit_id lanetype#77] -[visit_exp dim#77] -[visit_id dim#77] -[visit_exp i#1120] -[visit_id i#1120] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#1127}(M))] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#1127}(M)] -[visit_exp i#1127] -[visit_id i#1127] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] [check_dims] shape [visit_id shape] not free -[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +[check_dims] Jnn M +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Jnn M +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- -[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] [visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 16)] [visit_exp $lsizenn((Jnn : Jnn <: lanetype))] [visit_exp (Jnn : Jnn <: lanetype)] @@ -12475,13 +11808,16 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn] not free [visit_id Jnn] no dims [visit_exp 16] +[check_dims] Jnn M +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- -[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] [visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 16)] [visit_exp $lsizenn((Jnn : Jnn <: lanetype))] [visit_exp (Jnn : Jnn <: lanetype)] @@ -12489,8 +11825,9 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn] not free [visit_id Jnn] no dims [visit_exp 16] +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- @@ -12501,8 +11838,9 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn] not free [visit_id Jnn] no dims [visit_exp 16] +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- @@ -12513,8 +11851,9 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn] not free [visit_id Jnn] no dims [visit_exp 16] +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- @@ -12525,8 +11864,9 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn] not free [visit_id Jnn] no dims [visit_exp 16] +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- @@ -12537,13 +11877,16 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn] not free [visit_id Jnn] no dims [visit_exp 16] +[check_dims] Jnn M +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- -[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] [visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 32)] [visit_exp $lsizenn((Jnn : Jnn <: lanetype))] [visit_exp (Jnn : Jnn <: lanetype)] @@ -12551,13 +11894,16 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn] not free [visit_id Jnn] no dims [visit_exp 32] +[check_dims] Jnn M +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- -[check_dims] Jnn M dim#89 i#1132 i#1139 lanetype#89 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] [visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 32)] [visit_exp $lsizenn((Jnn : Jnn <: lanetype))] [visit_exp (Jnn : Jnn <: lanetype)] @@ -12565,188 +11911,168 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn] not free [visit_id Jnn] no dims [visit_exp 32] -[visit_exp `%X%`_shape{lanetype#89, dim#89, i#1132}((Jnn : Jnn <: lanetype), `%`_dim{i#1139}(M))] -[visit_exp lanetype#89] -[visit_id lanetype#89] -[visit_exp dim#89] -[visit_id dim#89] -[visit_exp i#1132] -[visit_id i#1132] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#1139}(M))] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#1139}(M)] -[visit_exp i#1139] -[visit_id i#1139] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +[check_dims] Fnn M +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#101 i#1144 i#1151 lanetype#101 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- -[visit_exp `%X%`_shape{lanetype#101, dim#101, i#1144}((Fnn : Fnn <: lanetype), `%`_dim{i#1151}(M))] -[visit_exp lanetype#101] -[visit_id lanetype#101] -[visit_exp dim#101] -[visit_id dim#101] -[visit_exp i#1144] -[visit_id i#1144] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#1151}(M))] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#1151}(M)] -[visit_exp i#1151] -[visit_id i#1151] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] [check_dims] shape [visit_id shape] not free -[check_dims] Jnn M dim#113 i#1156 i#1163 lanetype#113 +[check_dims] Jnn M +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn M dim#113 i#1156 i#1163 lanetype#113 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- -[visit_exp `%X%`_shape{lanetype#113, dim#113, i#1156}((Jnn : Jnn <: lanetype), `%`_dim{i#1163}(M))] -[visit_exp lanetype#113] -[visit_id lanetype#113] -[visit_exp dim#113] -[visit_id dim#113] -[visit_exp i#1156] -[visit_id i#1156] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#1163}(M))] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#1163}(M)] -[visit_exp i#1163] -[visit_id i#1163] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[check_dims] Fnn M dim#125 i#1168 i#1175 lanetype#125 +[check_dims] Fnn M +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#125 i#1168 i#1175 lanetype#125 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#125 i#1168 i#1175 lanetype#125 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- -[visit_exp `%X%`_shape{lanetype#125, dim#125, i#1168}((Fnn : Fnn <: lanetype), `%`_dim{i#1175}(M))] -[visit_exp lanetype#125] -[visit_id lanetype#125] -[visit_exp dim#125] -[visit_id dim#125] -[visit_exp i#1168] -[visit_id i#1168] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#1175}(M))] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#1175}(M)] -[visit_exp i#1175] -[visit_id i#1175] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] [check_dims] shape [visit_id shape] not free -[check_dims] Jnn M dim#137 i#1180 i#1187 lanetype#137 +[check_dims] Jnn M +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn M dim#137 i#1180 i#1187 lanetype#137 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- -[visit_exp `%X%`_shape{lanetype#137, dim#137, i#1180}((Jnn : Jnn <: lanetype), `%`_dim{i#1187}(M))] -[visit_exp lanetype#137] -[visit_id lanetype#137] -[visit_exp dim#137] -[visit_id dim#137] -[visit_exp i#1180] -[visit_id i#1180] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#1187}(M))] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#1187}(M)] -[visit_exp i#1187] -[visit_id i#1187] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] [check_dims] shape [visit_id shape] not free -[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 +[check_dims] Jnn M +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Jnn M +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- -[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 sx +[check_dims] Jnn M sx --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] [visit_exp (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx))] [visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) =/= 64)] [visit_exp $lsizenn((Jnn : Jnn <: lanetype))] @@ -12760,12 +12086,16 @@ DecD unpackshape(shape : shape) : numtype [visit_id sx] not free [visit_exp `S`_sx] [visit_exp ()] +[check_dims] Jnn M +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- -[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 sx +[check_dims] Jnn M sx --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] [visit_exp (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx))] [visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) =/= 64)] [visit_exp $lsizenn((Jnn : Jnn <: lanetype))] @@ -12779,12 +12109,16 @@ DecD unpackshape(shape : shape) : numtype [visit_id sx] not free [visit_exp `S`_sx] [visit_exp ()] +[check_dims] Jnn M +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- -[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 sx +[check_dims] Jnn M sx --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] [visit_exp (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx))] [visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) =/= 64)] [visit_exp $lsizenn((Jnn : Jnn <: lanetype))] @@ -12798,12 +12132,16 @@ DecD unpackshape(shape : shape) : numtype [visit_id sx] not free [visit_exp `S`_sx] [visit_exp ()] +[check_dims] Jnn M +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- -[check_dims] Jnn M dim#149 i#1192 i#1199 lanetype#149 sx +[check_dims] Jnn M sx --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] [visit_exp (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx))] [visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) =/= 64)] [visit_exp $lsizenn((Jnn : Jnn <: lanetype))] @@ -12817,153 +12155,130 @@ DecD unpackshape(shape : shape) : numtype [visit_id sx] not free [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%X%`_shape{lanetype#149, dim#149, i#1192}((Jnn : Jnn <: lanetype), `%`_dim{i#1199}(M))] -[visit_exp lanetype#149] -[visit_id lanetype#149] -[visit_exp dim#149] -[visit_id dim#149] -[visit_exp i#1192] -[visit_id i#1192] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#1199}(M))] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#1199}(M)] -[visit_exp i#1199] -[visit_id i#1199] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +[check_dims] Fnn M +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Fnn M --- 1 --- -[check_dims] Fnn M dim#161 i#1204 i#1211 lanetype#161 +[check_dims] Fnn M --- 2 --- --- 3 --- --- 4 --- -[visit_exp `%X%`_shape{lanetype#161, dim#161, i#1204}((Fnn : Fnn <: lanetype), `%`_dim{i#1211}(M))] -[visit_exp lanetype#161] -[visit_id lanetype#161] -[visit_exp dim#161] -[visit_id dim#161] -[visit_exp i#1204] -[visit_id i#1204] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#1211}(M))] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#1211}(M)] -[visit_exp i#1211] -[visit_id i#1211] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] [check_dims] ishape [visit_id ishape] not free -[check_dims] Jnn Jnn#4 M dim#173 i#1216 i#1223 lanetype#173 shape#11 +[check_dims] Jnn M +[check_dims] Jnn M --- 1 --- -[check_dims] Jnn Jnn#4 M dim#173 i#1216 i#1223 lanetype#173 shape#11 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- +[check_dims] Jnn M +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- -[check_dims] Jnn Jnn#4 M dim#173 i#1216 i#1223 lanetype#173 shape#11 +[check_dims] Jnn M --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] -[visit_exp `%`_ishape{shape#11, Jnn#4}(`%X%`_shape{lanetype#173, dim#173, i#1216}((Jnn : Jnn <: lanetype), `%`_dim{i#1223}(M)))] -[visit_exp shape#11] -[visit_id shape#11] -[visit_exp Jnn#4] -[visit_id Jnn#4] -[visit_exp (`%X%`_shape{lanetype#173, dim#173, i#1216}((Jnn : Jnn <: lanetype), `%`_dim{i#1223}(M)))] -[visit_exp `%X%`_shape{lanetype#173, dim#173, i#1216}((Jnn : Jnn <: lanetype), `%`_dim{i#1223}(M))] -[visit_exp lanetype#173] -[visit_id lanetype#173] -[visit_exp dim#173] -[visit_id dim#173] -[visit_exp i#1216] -[visit_id i#1216] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#1223}(M))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] +[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#1223}(M)] -[visit_exp i#1223] -[visit_id i#1223] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] [check_dims] bshape [visit_id bshape] not free -[check_dims] M dim#185 i#1228 i#1235 lanetype#185 shape#23 +[check_dims] M +[check_dims] M --- 1 --- -[check_dims] M dim#185 i#1228 i#1235 lanetype#185 shape#23 +[check_dims] M --- 2 --- --- 3 --- --- 4 --- +[check_dims] M --- 1 --- -[check_dims] M dim#185 i#1228 i#1235 lanetype#185 shape#23 +[check_dims] M --- 2 --- --- 3 --- --- 4 --- -[visit_exp `%`_bshape{shape#23}(`%X%`_shape{lanetype#185, dim#185, i#1228}(`I8`_lanetype, `%`_dim{i#1235}(M)))] -[visit_exp shape#23] -[visit_id shape#23] -[visit_exp (`%X%`_shape{lanetype#185, dim#185, i#1228}(`I8`_lanetype, `%`_dim{i#1235}(M)))] -[visit_exp `%X%`_shape{lanetype#185, dim#185, i#1228}(`I8`_lanetype, `%`_dim{i#1235}(M))] -[visit_exp lanetype#185] -[visit_id lanetype#185] -[visit_exp dim#185] -[visit_id dim#185] -[visit_exp i#1228] -[visit_id i#1228] -[visit_exp (`I8`_lanetype, `%`_dim{i#1235}(M))] +[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] +[visit_exp (`I8`_lanetype, `%`_dim(M))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#1235}(M)] -[visit_exp i#1235] -[visit_id i#1235] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] [check_dims] ishape_1 ishape_2 [visit_id ishape_1] not free [visit_id ishape_2] not free -[check_dims] Jnn#12 Jnn#8 Jnn_1 Jnn_2 M_1 M_2 dim#197 dim#209 i#1240 i#1247 i#1252 i#1259 lanetype#197 lanetype#209 shape#35 shape#47 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- -[check_dims] Jnn#12 Jnn#8 Jnn_1 Jnn_2 M_1 M_2 dim#197 dim#209 i#1240 i#1247 i#1252 i#1259 lanetype#197 lanetype#209 shape#35 shape#47 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] [visit_exp ((16 <= (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) <= 32)))] [visit_exp (16 <= (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))))] [visit_exp 16] @@ -12995,65 +12310,46 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn_2] not free [visit_id Jnn_2] no dims [visit_exp 32] -[visit_exp `%`_ishape{shape#35, Jnn#8}(`%X%`_shape{lanetype#197, dim#197, i#1240}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1247}(M_1)))] -[visit_exp shape#35] -[visit_id shape#35] -[visit_exp Jnn#8] -[visit_id Jnn#8] -[visit_exp (`%X%`_shape{lanetype#197, dim#197, i#1240}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1247}(M_1)))] -[visit_exp `%X%`_shape{lanetype#197, dim#197, i#1240}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1247}(M_1))] -[visit_exp lanetype#197] -[visit_id lanetype#197] -[visit_exp dim#197] -[visit_id dim#197] -[visit_exp i#1240] -[visit_id i#1240] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1247}(M_1))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#1247}(M_1)] -[visit_exp i#1247] -[visit_id i#1247] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%`_ishape{shape#47, Jnn#12}(`%X%`_shape{lanetype#209, dim#209, i#1252}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1259}(M_2)))] -[visit_exp shape#47] -[visit_id shape#47] -[visit_exp Jnn#12] -[visit_id Jnn#12] -[visit_exp (`%X%`_shape{lanetype#209, dim#209, i#1252}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1259}(M_2)))] -[visit_exp `%X%`_shape{lanetype#209, dim#209, i#1252}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1259}(M_2))] -[visit_exp lanetype#209] -[visit_id lanetype#209] -[visit_exp dim#209] -[visit_id dim#209] -[visit_exp i#1252] -[visit_id i#1252] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1259}(M_2))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#1259}(M_2)] -[visit_exp i#1259] -[visit_id i#1259] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] [check_dims] ishape_1 ishape_2 [visit_id ishape_1] not free [visit_id ishape_2] not free -[check_dims] Jnn#16 Jnn#20 Jnn_1 Jnn_2 M_1 M_2 dim#221 dim#233 i#1264 i#1271 i#1276 i#1283 lanetype#221 lanetype#233 shape#59 shape#71 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 +[scope_enter half] +[visit_id half] not free +[visit_id half] no dims +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] +[scope_exit half] --- 1 --- -[check_dims] Jnn#16 Jnn#20 Jnn_1 Jnn_2 M_1 M_2 dim#221 dim#233 i#1264 i#1271 i#1276 i#1283 lanetype#221 lanetype#233 shape#59 shape#71 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 --- 2 --- --- 3 --- --- 4 --- -[visit_id half] no dims -[visit_id half] -[visit_id sx] no dims -[visit_id sx] [visit_exp (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) >= 16))] [visit_exp ((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] [visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] @@ -13075,8 +12371,9 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn_2] not free [visit_id Jnn_2] no dims [visit_exp 16] +[check_dims] Jnn_1 Jnn_2 M_1 M_2 --- 1 --- -[check_dims] Jnn#16 Jnn#20 Jnn_1 Jnn_2 M_1 M_2 dim#221 dim#233 i#1264 i#1271 i#1276 i#1283 lanetype#221 lanetype#233 shape#59 shape#71 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 --- 2 --- --- 3 --- --- 4 --- @@ -13101,8 +12398,9 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn_2] not free [visit_id Jnn_2] no dims [visit_exp 32] +[check_dims] Jnn_1 Jnn_2 M_1 M_2 --- 1 --- -[check_dims] Jnn#16 Jnn#20 Jnn_1 Jnn_2 M_1 M_2 dim#221 dim#233 i#1264 i#1271 i#1276 i#1283 lanetype#221 lanetype#233 shape#59 shape#71 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 --- 2 --- --- 3 --- --- 4 --- @@ -13127,58 +12425,35 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn_2] not free [visit_id Jnn_2] no dims [visit_exp 16] -[visit_exp `%`_ishape{shape#59, Jnn#16}(`%X%`_shape{lanetype#221, dim#221, i#1264}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1271}(M_1)))] -[visit_exp shape#59] -[visit_id shape#59] -[visit_exp Jnn#16] -[visit_id Jnn#16] -[visit_exp (`%X%`_shape{lanetype#221, dim#221, i#1264}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1271}(M_1)))] -[visit_exp `%X%`_shape{lanetype#221, dim#221, i#1264}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1271}(M_1))] -[visit_exp lanetype#221] -[visit_id lanetype#221] -[visit_exp dim#221] -[visit_id dim#221] -[visit_exp i#1264] -[visit_id i#1264] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1271}(M_1))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#1271}(M_1)] -[visit_exp i#1271] -[visit_id i#1271] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%`_ishape{shape#71, Jnn#20}(`%X%`_shape{lanetype#233, dim#233, i#1276}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1283}(M_2)))] -[visit_exp shape#71] -[visit_id shape#71] -[visit_exp Jnn#20] -[visit_id Jnn#20] -[visit_exp (`%X%`_shape{lanetype#233, dim#233, i#1276}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1283}(M_2)))] -[visit_exp `%X%`_shape{lanetype#233, dim#233, i#1276}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1283}(M_2))] -[visit_exp lanetype#233] -[visit_id lanetype#233] -[visit_exp dim#233] -[visit_id dim#233] -[visit_exp i#1276] -[visit_id i#1276] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1283}(M_2))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#1283}(M_2)] -[visit_exp i#1283] -[visit_id i#1283] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] [check_dims] ishape_1 ishape_2 [visit_id ishape_1] not free [visit_id ishape_2] not free -[check_dims] Jnn#24 Jnn#28 Jnn_1 Jnn_2 M_1 M_2 dim#245 dim#257 i#1288 i#1295 i#1300 i#1307 lanetype#245 lanetype#257 shape#83 shape#95 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 --- 1 --- -[check_dims] Jnn#24 Jnn#28 Jnn_1 Jnn_2 M_1 M_2 dim#245 dim#257 i#1288 i#1295 i#1300 i#1307 lanetype#245 lanetype#257 shape#83 shape#95 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 --- 2 --- --- 3 --- --- 4 --- @@ -13203,65 +12478,46 @@ DecD unpackshape(shape : shape) : numtype [visit_id Jnn_2] not free [visit_id Jnn_2] no dims [visit_exp 32] -[visit_exp `%`_ishape{shape#83, Jnn#24}(`%X%`_shape{lanetype#245, dim#245, i#1288}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1295}(M_1)))] -[visit_exp shape#83] -[visit_id shape#83] -[visit_exp Jnn#24] -[visit_id Jnn#24] -[visit_exp (`%X%`_shape{lanetype#245, dim#245, i#1288}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1295}(M_1)))] -[visit_exp `%X%`_shape{lanetype#245, dim#245, i#1288}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1295}(M_1))] -[visit_exp lanetype#245] -[visit_id lanetype#245] -[visit_exp dim#245] -[visit_id dim#245] -[visit_exp i#1288] -[visit_id i#1288] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1295}(M_1))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#1295}(M_1)] -[visit_exp i#1295] -[visit_id i#1295] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%`_ishape{shape#95, Jnn#28}(`%X%`_shape{lanetype#257, dim#257, i#1300}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1307}(M_2)))] -[visit_exp shape#95] -[visit_id shape#95] -[visit_exp Jnn#28] -[visit_id Jnn#28] -[visit_exp (`%X%`_shape{lanetype#257, dim#257, i#1300}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1307}(M_2)))] -[visit_exp `%X%`_shape{lanetype#257, dim#257, i#1300}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1307}(M_2))] -[visit_exp lanetype#257] -[visit_id lanetype#257] -[visit_exp dim#257] -[visit_id dim#257] -[visit_exp i#1300] -[visit_id i#1300] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1307}(M_2))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#1307}(M_2)] -[visit_exp i#1307] -[visit_id i#1307] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] [check_dims] shape_1 shape_2 [visit_id shape_1] not free [visit_id shape_2] not free -[check_dims] Jnn_1 Jnn_2 M_1 M_2 dim#269 dim#281 i#1312 i#1319 i#1324 i#1331 lanetype#269 lanetype#281 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 +[scope_enter half] +[visit_id half] not free +[visit_id half] no dims +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] +[scope_exit half] --- 1 --- -[check_dims] Jnn_1 Jnn_2 M_1 M_2 dim#269 dim#281 i#1312 i#1319 i#1324 i#1331 lanetype#269 lanetype#281 +[check_dims] Jnn_1 Jnn_2 M_1 M_2 --- 2 --- --- 3 --- --- 4 --- -[visit_id half] no dims -[visit_id half] -[visit_id sx] no dims -[visit_id sx] [visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))))] [visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] [visit_exp (Jnn_2 : Jnn <: lanetype)] @@ -13275,50 +12531,39 @@ DecD unpackshape(shape : shape) : numtype [visit_exp Jnn_1] [visit_id Jnn_1] not free [visit_id Jnn_1] no dims -[visit_exp `%X%`_shape{lanetype#269, dim#269, i#1312}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1319}(M_1))] -[visit_exp lanetype#269] -[visit_id lanetype#269] -[visit_exp dim#269] -[visit_id dim#269] -[visit_exp i#1312] -[visit_id i#1312] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1319}(M_1))] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#1319}(M_1)] -[visit_exp i#1319] -[visit_id i#1319] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#281, dim#281, i#1324}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1331}(M_2))] -[visit_exp lanetype#281] -[visit_id lanetype#281] -[visit_exp dim#281] -[visit_id dim#281] -[visit_exp i#1324] -[visit_id i#1324] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1331}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#1331}(M_2)] -[visit_exp i#1331] -[visit_id i#1331] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[check_dims] Fnn_2 Jnn_1 M_1 M_2 dim#293 dim#305 i#1336 i#1343 i#1348 i#1355 lanetype#293 lanetype#305 +[check_dims] Fnn_2 Jnn_1 M_1 M_2 +[check_dims] Fnn_2 Jnn_1 M_1 M_2 +[scope_enter half?] +[visit_id half?] not free +[visit_id half?] no dims +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] +[scope_exit half?] --- 1 --- -[check_dims] Fnn_2 Jnn_1 M_1 M_2 dim#293 dim#305 half i#1336 i#1343 i#1348 i#1355 lanetype#293 lanetype#305 +[check_dims] Fnn_2 Jnn_1 M_1 M_2 half --- 2 --- --- 3 --- --- 4 --- -[visit_id half?] no dims -[visit_id half?] -[visit_id sx] no dims -[visit_id sx] [visit_exp (((($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32)) /\ (half?{half <- `half?`} = ?())) \/ (($sizenn2((Fnn_2 : Fnn <: numtype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (half?{half <- `half?`} = ?(`LOW`_half))))] [visit_exp ((($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32)) /\ (half?{half <- `half?`} = ?()))] [visit_exp (($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32))] @@ -13378,50 +12623,39 @@ DecD unpackshape(shape : shape) : numtype [visit_exp ?(`LOW`_half)] [visit_exp `LOW`_half] [visit_exp ()] -[visit_exp `%X%`_shape{lanetype#293, dim#293, i#1336}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1343}(M_1))] -[visit_exp lanetype#293] -[visit_id lanetype#293] -[visit_exp dim#293] -[visit_id dim#293] -[visit_exp i#1336] -[visit_id i#1336] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1343}(M_1))] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#1343}(M_1)] -[visit_exp i#1343] -[visit_id i#1343] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#305, dim#305, i#1348}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#1355}(M_2))] -[visit_exp lanetype#305] -[visit_id lanetype#305] -[visit_exp dim#305] -[visit_id dim#305] -[visit_exp i#1348] -[visit_id i#1348] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#1355}(M_2))] +[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] [visit_exp (Fnn_2 : Fnn <: lanetype)] [visit_exp Fnn_2] [visit_id Fnn_2] -[visit_exp `%`_dim{i#1355}(M_2)] -[visit_exp i#1355] -[visit_id i#1355] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#317 dim#329 i#1360 i#1367 i#1372 i#1379 lanetype#317 lanetype#329 +[check_dims] Fnn_1 Jnn_2 M_1 M_2 +[check_dims] Fnn_1 Jnn_2 M_1 M_2 +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_enter zero?] +[visit_id zero?] not free +[visit_id zero?] no dims +[scope_exit zero?] +[scope_exit sx] --- 1 --- -[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#317 dim#329 i#1360 i#1367 i#1372 i#1379 lanetype#317 lanetype#329 zero +[check_dims] Fnn_1 Jnn_2 M_1 M_2 zero --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] -[visit_id zero?] no dims -[visit_id zero?] [visit_exp (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero))))] [visit_exp ((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?()))] [visit_exp (($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32))] @@ -13481,15 +12715,20 @@ DecD unpackshape(shape : shape) : numtype [visit_exp ?(`ZERO`_zero)] [visit_exp `ZERO`_zero] [visit_exp ()] +[check_dims] Fnn_1 Jnn_2 M_1 M_2 +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_enter zero?] +[visit_id zero?] not free +[visit_id zero?] no dims +[scope_exit zero?] +[scope_exit sx] --- 1 --- -[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#317 dim#329 i#1360 i#1367 i#1372 i#1379 lanetype#317 lanetype#329 zero +[check_dims] Fnn_1 Jnn_2 M_1 M_2 zero --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] -[visit_id zero?] no dims -[visit_id zero?] [visit_exp (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero))))] [visit_exp ((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?()))] [visit_exp (($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32))] @@ -13549,48 +12788,35 @@ DecD unpackshape(shape : shape) : numtype [visit_exp ?(`ZERO`_zero)] [visit_exp `ZERO`_zero] [visit_exp ()] -[visit_exp `%X%`_shape{lanetype#317, dim#317, i#1360}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#1367}(M_1))] -[visit_exp lanetype#317] -[visit_id lanetype#317] -[visit_exp dim#317] -[visit_id dim#317] -[visit_exp i#1360] -[visit_id i#1360] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#1367}(M_1))] +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#1367}(M_1)] -[visit_exp i#1367] -[visit_id i#1367] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#329, dim#329, i#1372}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1379}(M_2))] -[visit_exp lanetype#329] -[visit_id lanetype#329] -[visit_exp dim#329] -[visit_id dim#329] -[visit_exp i#1372] -[visit_id i#1372] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1379}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#1379}(M_2)] -[visit_exp i#1379] -[visit_id i#1379] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#341 dim#353 i#1384 i#1391 i#1396 i#1403 lanetype#341 lanetype#353 +[check_dims] Fnn_1 Fnn_2 M_1 M_2 +[check_dims] Fnn_1 Fnn_2 M_1 M_2 +[scope_enter zero] +[visit_id zero] not free +[visit_id zero] no dims +[scope_exit zero] --- 1 --- -[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#341 dim#353 i#1384 i#1391 i#1396 i#1403 lanetype#341 lanetype#353 +[check_dims] Fnn_1 Fnn_2 M_1 M_2 --- 2 --- --- 3 --- --- 4 --- -[visit_id zero] no dims -[visit_id zero] [visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $sizenn2((Fnn_2 : Fnn <: numtype))))] [visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] [visit_exp (Fnn_1 : Fnn <: numtype)] @@ -13604,8 +12830,9 @@ DecD unpackshape(shape : shape) : numtype [visit_exp Fnn_2] [visit_id Fnn_2] not free [visit_id Fnn_2] no dims +[check_dims] Fnn_1 Fnn_2 M_1 M_2 --- 1 --- -[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#341 dim#353 i#1384 i#1391 i#1396 i#1403 lanetype#341 lanetype#353 +[check_dims] Fnn_1 Fnn_2 M_1 M_2 --- 2 --- --- 3 --- --- 4 --- @@ -13622,74 +12849,68 @@ DecD unpackshape(shape : shape) : numtype [visit_exp Fnn_2] [visit_id Fnn_2] not free [visit_id Fnn_2] no dims -[visit_exp `%X%`_shape{lanetype#341, dim#341, i#1384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#1391}(M_1))] -[visit_exp lanetype#341] -[visit_id lanetype#341] -[visit_exp dim#341] -[visit_id dim#341] -[visit_exp i#1384] -[visit_id i#1384] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#1391}(M_1))] +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#1391}(M_1)] -[visit_exp i#1391] -[visit_id i#1391] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#353, dim#353, i#1396}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#1403}(M_2))] -[visit_exp lanetype#353] -[visit_id lanetype#353] -[visit_exp dim#353] -[visit_id dim#353] -[visit_exp i#1396] -[visit_id i#1396] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#1403}(M_2))] +[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] [visit_exp (Fnn_2 : Fnn <: lanetype)] [visit_exp Fnn_2] [visit_id Fnn_2] -[visit_exp `%`_dim{i#1403}(M_2)] -[visit_exp i#1403] -[visit_id i#1403] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] [check_dims] +[check_dims] +[scope_enter u32] +[visit_id u32] not free +[visit_id u32] no dims +[scope_exit u32] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id u32] no dims -[visit_id u32] +[check_dims] +[scope_enter u64] +[visit_id u64] not free +[visit_id u64] no dims +[scope_exit u64] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id u64] no dims -[visit_id u64] [check_dims] [check_dims] numtype [visit_id numtype] not free [check_dims] Inn +[check_dims] Inn +[scope_enter sz] +[visit_id sz] not free +[visit_id sz] no dims +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] +[scope_exit sz] --- 1 --- -[check_dims] Inn i#1405 sz +[check_dims] Inn sz --- 2 --- --- 3 --- --- 4 --- -[visit_id sz] -[visit_id sx] no dims -[visit_id sx] -[visit_exp (sz!`%`_sz{i#1405}.0 < $sizenn((Inn : Inn <: numtype)))] -[visit_exp sz!`%`_sz{i#1405}.0] -[visit_exp sz!`%`_sz{i#1405}] +[visit_exp (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype)))] +[visit_exp sz!`%`_sz.0] +[visit_exp sz!`%`_sz] [visit_exp sz] [visit_id sz] not free -[visit_exp i#1405] -[visit_id i#1405] [visit_exp $sizenn((Inn : Inn <: numtype))] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] @@ -13701,19 +12922,21 @@ DecD unpackshape(shape : shape) : numtype [check_dims] numtype [visit_id numtype] not free [check_dims] Inn +[check_dims] Inn +[scope_enter sz] +[visit_id sz] not free +[visit_id sz] no dims +[scope_exit sz] --- 1 --- -[check_dims] Inn i#1407 sz +[check_dims] Inn sz --- 2 --- --- 3 --- --- 4 --- -[visit_id sz] -[visit_exp (sz!`%`_sz{i#1407}.0 < $sizenn((Inn : Inn <: numtype)))] -[visit_exp sz!`%`_sz{i#1407}.0] -[visit_exp sz!`%`_sz{i#1407}] +[visit_exp (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype)))] +[visit_exp sz!`%`_sz.0] +[visit_exp sz!`%`_sz] [visit_exp sz] [visit_id sz] not free -[visit_exp i#1407] -[visit_id i#1407] [visit_exp $sizenn((Inn : Inn <: numtype))] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] @@ -13723,24 +12946,31 @@ DecD unpackshape(shape : shape) : numtype [visit_exp Inn] [visit_id Inn] [check_dims] vectype +[check_dims] vectype +[scope_enter sz] +[visit_id sz] not free +[visit_id sz] no dims +[scope_enter M] +[visit_id M] not free +[visit_id M] no dims +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] +[scope_exit M] +[scope_exit sz] --- 1 --- -[check_dims] M i#1409 sz vectype +[check_dims] M sz vectype --- 2 --- --- 3 --- --- 4 --- -[visit_id sz] -[visit_id M] -[visit_id sx] no dims -[visit_id sx] -[visit_exp (((sz!`%`_sz{i#1409}.0 * M) : nat <:> rat) = (($vsize(vectype) : nat <:> rat) / (2 : nat <:> rat)))] -[visit_exp ((sz!`%`_sz{i#1409}.0 * M) : nat <:> rat)] -[visit_exp (sz!`%`_sz{i#1409}.0 * M)] -[visit_exp sz!`%`_sz{i#1409}.0] -[visit_exp sz!`%`_sz{i#1409}] +[visit_exp (((sz!`%`_sz.0 * M) : nat <:> rat) = (($vsize(vectype) : nat <:> rat) / (2 : nat <:> rat)))] +[visit_exp ((sz!`%`_sz.0 * M) : nat <:> rat)] +[visit_exp (sz!`%`_sz.0 * M)] +[visit_exp sz!`%`_sz.0] +[visit_exp sz!`%`_sz] [visit_exp sz] [visit_id sz] not free -[visit_exp i#1409] -[visit_id i#1409] [visit_exp M] [visit_id M] not free [visit_exp (($vsize(vectype) : nat <:> rat) / (2 : nat <:> rat))] @@ -13751,693 +12981,1010 @@ DecD unpackshape(shape : shape) : numtype [visit_id vectype] no dims [visit_exp (2 : nat <:> rat)] [visit_exp 2] +[check_dims] vectype +[scope_enter sz] +[visit_id sz] not free +[visit_id sz] no dims +[scope_exit sz] --- 1 --- [check_dims] vectype --- 2 --- --- 3 --- --- 4 --- +[check_dims] vectype +[scope_enter sz] +[visit_id sz] not free [visit_id sz] no dims -[visit_id sz] +[scope_exit sz] --- 1 --- -[check_dims] i#1411 sz vectype +[check_dims] sz vectype --- 2 --- --- 3 --- --- 4 --- -[visit_id sz] -[visit_exp (sz!`%`_sz{i#1411}.0 >= 32)] -[visit_exp sz!`%`_sz{i#1411}.0] -[visit_exp sz!`%`_sz{i#1411}] +[visit_exp (sz!`%`_sz.0 >= 32)] +[visit_exp sz!`%`_sz.0] +[visit_exp sz!`%`_sz] [visit_exp sz] [visit_id sz] not free -[visit_exp i#1411] -[visit_id i#1411] [visit_exp 32] [visit_exp vectype] [visit_id vectype] [check_dims] ---- 1 --- [check_dims] ---- 2 --- ---- 3 --- ---- 4 --- +[scope_enter valtype?] +[visit_id valtype?] not free [visit_id valtype?] no dims -[visit_id valtype?] +[scope_exit valtype?] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id typeidx] no dims -[visit_id typeidx] -[check_dims] [check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free +[visit_id typeidx] no dims +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id valtype*?] no dims -[visit_id valtype*?] [check_dims] +[scope_enter valtype*?] +[visit_id valtype*?] not free +[visit_id valtype*?] no dims +[scope_exit valtype*?] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter blocktype] +[visit_id blocktype] not free [visit_id blocktype] no dims -[visit_id blocktype] +[scope_enter instr*] +[visit_id instr*] not free [visit_id instr*] no dims -[visit_id instr*] +[scope_exit instr*] +[scope_exit blocktype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter blocktype] +[visit_id blocktype] not free [visit_id blocktype] no dims -[visit_id blocktype] +[scope_enter instr*] +[visit_id instr*] not free [visit_id instr*] no dims -[visit_id instr*] +[scope_exit instr*] +[scope_exit blocktype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter blocktype] +[visit_id blocktype] not free [visit_id blocktype] no dims -[visit_id blocktype] +[scope_enter instr*] +[visit_id instr*] not free [visit_id instr*] no dims -[visit_id instr*] +[scope_enter instr*] [visit_id instr*] not free [visit_id instr*] no dims -[check_dims] +[scope_exit instr*] +[scope_exit instr*] +[scope_exit blocktype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter labelidx] +[visit_id labelidx] not free [visit_id labelidx] no dims -[visit_id labelidx] +[scope_exit labelidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter labelidx] +[visit_id labelidx] not free [visit_id labelidx] no dims -[visit_id labelidx] +[scope_exit labelidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter labelidx*] +[visit_id labelidx*] not free [visit_id labelidx*] no dims -[visit_id labelidx*] +[scope_enter labelidx] +[visit_id labelidx] not free [visit_id labelidx] no dims -[visit_id labelidx] +[scope_exit labelidx] +[scope_exit labelidx*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter labelidx] +[visit_id labelidx] not free [visit_id labelidx] no dims -[visit_id labelidx] +[scope_exit labelidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter labelidx] +[visit_id labelidx] not free [visit_id labelidx] no dims -[visit_id labelidx] +[scope_exit labelidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter labelidx] +[visit_id labelidx] not free [visit_id labelidx] no dims -[visit_id labelidx] +[scope_enter reftype] +[visit_id reftype] not free [visit_id reftype] no dims -[visit_id reftype] +[scope_enter reftype] [visit_id reftype] not free [visit_id reftype] no dims +[scope_exit reftype] +[scope_exit reftype] +[scope_exit labelidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter labelidx] +[visit_id labelidx] not free [visit_id labelidx] no dims -[visit_id labelidx] +[scope_enter reftype] +[visit_id reftype] not free [visit_id reftype] no dims -[visit_id reftype] +[scope_enter reftype] [visit_id reftype] not free [visit_id reftype] no dims -[check_dims] +[scope_exit reftype] +[scope_exit reftype] +[scope_exit labelidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter funcidx] +[visit_id funcidx] not free [visit_id funcidx] no dims -[visit_id funcidx] +[scope_exit funcidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter typeuse] +[visit_id typeuse] not free [visit_id typeuse] no dims -[visit_id typeuse] +[scope_exit typeuse] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tableidx] +[visit_id tableidx] not free [visit_id tableidx] no dims -[visit_id tableidx] +[scope_enter typeuse] +[visit_id typeuse] not free [visit_id typeuse] no dims -[visit_id typeuse] +[scope_exit typeuse] +[scope_exit tableidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter funcidx] +[visit_id funcidx] not free [visit_id funcidx] no dims -[visit_id funcidx] +[scope_exit funcidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter typeuse] +[visit_id typeuse] not free [visit_id typeuse] no dims -[visit_id typeuse] +[scope_exit typeuse] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tableidx] +[visit_id tableidx] not free [visit_id tableidx] no dims -[visit_id tableidx] +[scope_enter typeuse] +[visit_id typeuse] not free [visit_id typeuse] no dims -[visit_id typeuse] -[check_dims] +[scope_exit typeuse] +[scope_exit tableidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter tagidx] +[visit_id tagidx] not free [visit_id tagidx] no dims -[visit_id tagidx] +[scope_exit tagidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter blocktype] +[visit_id blocktype] not free [visit_id blocktype] no dims -[visit_id blocktype] +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter instr*] +[visit_id instr*] not free [visit_id instr*] no dims -[visit_id instr*] -[check_dims] +[scope_exit instr*] +[scope_exit _] +[scope_exit blocktype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter tagidx] +[visit_id tagidx] not free [visit_id tagidx] no dims -[visit_id tagidx] +[scope_enter labelidx] +[visit_id labelidx] not free [visit_id labelidx] no dims -[visit_id labelidx] +[scope_exit labelidx] +[scope_exit tagidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tagidx] +[visit_id tagidx] not free [visit_id tagidx] no dims -[visit_id tagidx] +[scope_enter labelidx] +[visit_id labelidx] not free [visit_id labelidx] no dims -[visit_id labelidx] +[scope_exit labelidx] +[scope_exit tagidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter labelidx] +[visit_id labelidx] not free [visit_id labelidx] no dims -[visit_id labelidx] +[scope_exit labelidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id labelidx] no dims -[visit_id labelidx] [check_dims] +[scope_enter labelidx] +[visit_id labelidx] not free +[visit_id labelidx] no dims +[scope_exit labelidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter localidx] +[visit_id localidx] not free [visit_id localidx] no dims -[visit_id localidx] +[scope_exit localidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter localidx] +[visit_id localidx] not free [visit_id localidx] no dims -[visit_id localidx] +[scope_exit localidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id localidx] no dims -[visit_id localidx] [check_dims] +[scope_enter localidx] +[visit_id localidx] not free +[visit_id localidx] no dims +[scope_exit localidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter globalidx] +[visit_id globalidx] not free [visit_id globalidx] no dims -[visit_id globalidx] +[scope_exit globalidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id globalidx] no dims -[visit_id globalidx] [check_dims] +[scope_enter globalidx] +[visit_id globalidx] not free +[visit_id globalidx] no dims +[scope_exit globalidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter tableidx] +[visit_id tableidx] not free [visit_id tableidx] no dims -[visit_id tableidx] +[scope_exit tableidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tableidx] +[visit_id tableidx] not free [visit_id tableidx] no dims -[visit_id tableidx] +[scope_exit tableidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tableidx] +[visit_id tableidx] not free [visit_id tableidx] no dims -[visit_id tableidx] +[scope_exit tableidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tableidx] +[visit_id tableidx] not free [visit_id tableidx] no dims -[visit_id tableidx] +[scope_exit tableidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tableidx] +[visit_id tableidx] not free [visit_id tableidx] no dims -[visit_id tableidx] +[scope_exit tableidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tableidx] +[visit_id tableidx] not free [visit_id tableidx] no dims -[visit_id tableidx] +[scope_enter tableidx] [visit_id tableidx] not free [visit_id tableidx] no dims +[scope_exit tableidx] +[scope_exit tableidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tableidx] +[visit_id tableidx] not free [visit_id tableidx] no dims -[visit_id tableidx] +[scope_enter elemidx] +[visit_id elemidx] not free [visit_id elemidx] no dims -[visit_id elemidx] -[check_dims] +[scope_exit elemidx] +[scope_exit tableidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id elemidx] no dims -[visit_id elemidx] [check_dims] +[check_dims] +[scope_enter elemidx] +[visit_id elemidx] not free +[visit_id elemidx] no dims +[scope_exit elemidx] --- 1 --- -[check_dims] numtype +[check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id numtype] -[visit_id _] not free -[visit_id _] no dims +[check_dims] +[check_dims] numtype +[scope_enter numtype] +[visit_id numtype] not free [visit_exp numtype] [visit_id numtype] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_enter memidx] +[visit_id memidx] not free [visit_id memidx] no dims -[visit_id memidx] +[scope_enter memarg] +[visit_id memarg] not free [visit_id memarg] no dims -[visit_id memarg] +[scope_exit memarg] +[scope_exit memidx] +[scope_exit _] +[scope_exit numtype] --- 1 --- [check_dims] numtype --- 2 --- --- 3 --- --- 4 --- -[visit_id numtype] -[visit_id _] not free -[visit_id _] no dims +[check_dims] numtype +[scope_enter numtype] +[visit_id numtype] not free [visit_exp numtype] [visit_id numtype] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_enter memidx] +[visit_id memidx] not free [visit_id memidx] no dims -[visit_id memidx] +[scope_enter memarg] +[visit_id memarg] not free [visit_id memarg] no dims -[visit_id memarg] +[scope_exit memarg] +[scope_exit memidx] +[scope_exit _] +[scope_exit numtype] --- 1 --- -[check_dims] vectype +[check_dims] numtype --- 2 --- --- 3 --- --- 4 --- -[visit_id vectype] -[visit_id _] not free -[visit_id _] no dims +[check_dims] vectype +[scope_enter vectype] +[visit_id vectype] not free [visit_exp vectype] [visit_id vectype] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_enter memidx] +[visit_id memidx] not free [visit_id memidx] no dims -[visit_id memidx] +[scope_enter memarg] +[visit_id memarg] not free [visit_id memarg] no dims -[visit_id memarg] +[scope_exit memarg] +[scope_exit memidx] +[scope_exit _] +[scope_exit vectype] --- 1 --- -[check_dims] +[check_dims] vectype --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter vectype] +[visit_id vectype] not free [visit_id vectype] no dims -[visit_id vectype] +[scope_enter sz] +[visit_id sz] not free [visit_id sz] no dims -[visit_id sz] +[scope_enter memidx] +[visit_id memidx] not free [visit_id memidx] no dims -[visit_id memidx] +[scope_enter memarg] +[visit_id memarg] not free [visit_id memarg] no dims -[visit_id memarg] +[scope_enter laneidx] +[visit_id laneidx] not free [visit_id laneidx] no dims -[visit_id laneidx] +[scope_exit laneidx] +[scope_exit memarg] +[scope_exit memidx] +[scope_exit sz] +[scope_exit vectype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter vectype] +[visit_id vectype] not free [visit_id vectype] no dims -[visit_id vectype] +[scope_enter memidx] +[visit_id memidx] not free [visit_id memidx] no dims -[visit_id memidx] +[scope_enter memarg] +[visit_id memarg] not free [visit_id memarg] no dims -[visit_id memarg] +[scope_exit memarg] +[scope_exit memidx] +[scope_exit vectype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter vectype] +[visit_id vectype] not free [visit_id vectype] no dims -[visit_id vectype] +[scope_enter sz] +[visit_id sz] not free [visit_id sz] no dims -[visit_id sz] +[scope_enter memidx] +[visit_id memidx] not free [visit_id memidx] no dims -[visit_id memidx] +[scope_enter memarg] +[visit_id memarg] not free [visit_id memarg] no dims -[visit_id memarg] +[scope_enter laneidx] +[visit_id laneidx] not free [visit_id laneidx] no dims -[visit_id laneidx] +[scope_exit laneidx] +[scope_exit memarg] +[scope_exit memidx] +[scope_exit sz] +[scope_exit vectype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter memidx] +[visit_id memidx] not free [visit_id memidx] no dims -[visit_id memidx] +[scope_exit memidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter memidx] +[visit_id memidx] not free [visit_id memidx] no dims -[visit_id memidx] +[scope_exit memidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter memidx] +[visit_id memidx] not free [visit_id memidx] no dims -[visit_id memidx] +[scope_exit memidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter memidx] +[visit_id memidx] not free [visit_id memidx] no dims -[visit_id memidx] +[scope_enter memidx] [visit_id memidx] not free [visit_id memidx] no dims +[scope_exit memidx] +[scope_exit memidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter memidx] +[visit_id memidx] not free [visit_id memidx] no dims -[visit_id memidx] +[scope_enter dataidx] +[visit_id dataidx] not free [visit_id dataidx] no dims -[visit_id dataidx] -[check_dims] +[scope_exit dataidx] +[scope_exit memidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id dataidx] no dims -[visit_id dataidx] [check_dims] +[check_dims] +[scope_enter dataidx] +[visit_id dataidx] not free +[visit_id dataidx] no dims +[scope_exit dataidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter heaptype] +[visit_id heaptype] not free [visit_id heaptype] no dims -[visit_id heaptype] +[scope_exit heaptype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter reftype] +[visit_id reftype] not free [visit_id reftype] no dims -[visit_id reftype] +[scope_exit reftype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id reftype] no dims -[visit_id reftype] [check_dims] +[scope_enter reftype] +[visit_id reftype] not free +[visit_id reftype] no dims +[scope_exit reftype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id funcidx] no dims -[visit_id funcidx] [check_dims] +[check_dims] +[scope_enter funcidx] +[visit_id funcidx] not free +[visit_id funcidx] no dims +[scope_exit funcidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id sx] no dims -[visit_id sx] [check_dims] +[scope_enter sx] +[visit_id sx] not free +[visit_id sx] no dims +[scope_exit sx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter sx?] +[visit_id sx?] not free [visit_id sx?] no dims -[visit_id sx?] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_enter u32] +[visit_id u32] not free [visit_id u32] no dims -[visit_id u32] +[scope_exit u32] +[scope_exit typeidx] +[scope_exit sx?] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_enter u32] +[visit_id u32] not free [visit_id u32] no dims -[visit_id u32] -[check_dims] +[scope_exit u32] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_enter u32] +[visit_id u32] not free [visit_id u32] no dims -[visit_id u32] +[scope_exit u32] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_enter dataidx] +[visit_id dataidx] not free [visit_id dataidx] no dims -[visit_id dataidx] +[scope_exit dataidx] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_enter elemidx] +[visit_id elemidx] not free [visit_id elemidx] no dims -[visit_id elemidx] +[scope_exit elemidx] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter sx?] +[visit_id sx?] not free [visit_id sx?] no dims -[visit_id sx?] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_exit typeidx] +[scope_exit sx?] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_enter typeidx] [visit_id typeidx] not free [visit_id typeidx] no dims +[scope_exit typeidx] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_enter dataidx] +[visit_id dataidx] not free [visit_id dataidx] no dims -[visit_id dataidx] +[scope_exit dataidx] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_enter elemidx] +[visit_id elemidx] not free [visit_id elemidx] no dims -[visit_id elemidx] -[check_dims] +[scope_exit elemidx] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- @@ -14445,204 +13992,309 @@ DecD unpackshape(shape : shape) : numtype --- 4 --- [check_dims] --- 1 --- -[check_dims] numtype +[check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id numtype] -[visit_id _] not free -[visit_id _] no dims +[check_dims] +[check_dims] numtype +[scope_enter numtype] +[visit_id numtype] not free [visit_exp numtype] [visit_id numtype] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit numtype] --- 1 --- [check_dims] numtype --- 2 --- --- 3 --- --- 4 --- -[visit_id numtype] -[visit_id _] not free -[visit_id _] no dims +[check_dims] numtype +[scope_enter numtype] +[visit_id numtype] not free [visit_exp numtype] [visit_id numtype] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit numtype] --- 1 --- [check_dims] numtype --- 2 --- --- 3 --- --- 4 --- -[visit_id numtype] -[visit_id _] not free -[visit_id _] no dims +[check_dims] numtype +[scope_enter numtype] +[visit_id numtype] not free [visit_exp numtype] [visit_id numtype] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit numtype] --- 1 --- [check_dims] numtype --- 2 --- --- 3 --- --- 4 --- -[visit_id numtype] -[visit_id _] not free -[visit_id _] no dims +[check_dims] numtype +[scope_enter numtype] +[visit_id numtype] not free [visit_exp numtype] [visit_id numtype] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit numtype] --- 1 --- [check_dims] numtype --- 2 --- --- 3 --- --- 4 --- -[visit_id numtype] -[visit_id _] not free -[visit_id _] no dims +[check_dims] numtype +[scope_enter numtype] +[visit_id numtype] not free [visit_exp numtype] [visit_id numtype] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit numtype] --- 1 --- -[check_dims] numtype_1 numtype_2 +[check_dims] numtype --- 2 --- --- 3 --- --- 4 --- -[visit_id numtype_1] -[visit_id numtype_2] -[visit_id _] not free -[visit_id _] no dims +[check_dims] numtype_1 numtype_2 +[scope_enter numtype_1] +[visit_id numtype_1] not free +[scope_enter numtype_2] +[visit_id numtype_2] not free [visit_exp numtype_2] [visit_id numtype_2] not free [visit_exp numtype_1] [visit_id numtype_1] not free -[check_dims] +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit numtype_2] +[scope_exit numtype_1] --- 1 --- -[check_dims] vectype +[check_dims] numtype_1 numtype_2 --- 2 --- --- 3 --- --- 4 --- -[visit_id vectype] -[visit_id _] not free -[visit_id _] no dims +[check_dims] +[check_dims] vectype +[scope_enter vectype] +[visit_id vectype] not free [visit_exp vectype] [visit_id vectype] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit vectype] --- 1 --- -[check_dims] +[check_dims] vectype --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter vectype] +[visit_id vectype] not free [visit_id vectype] no dims -[visit_id vectype] +[scope_enter vvunop] +[visit_id vvunop] not free [visit_id vvunop] no dims -[visit_id vvunop] +[scope_exit vvunop] +[scope_exit vectype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter vectype] +[visit_id vectype] not free [visit_id vectype] no dims -[visit_id vectype] +[scope_enter vvbinop] +[visit_id vvbinop] not free [visit_id vvbinop] no dims -[visit_id vvbinop] +[scope_exit vvbinop] +[scope_exit vectype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter vectype] +[visit_id vectype] not free [visit_id vectype] no dims -[visit_id vectype] +[scope_enter vvternop] +[visit_id vvternop] not free [visit_id vvternop] no dims -[visit_id vvternop] +[scope_exit vvternop] +[scope_exit vectype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter vectype] +[visit_id vectype] not free [visit_id vectype] no dims -[visit_id vectype] +[scope_enter vvtestop] +[visit_id vvtestop] not free [visit_id vvtestop] no dims -[visit_id vvtestop] +[scope_exit vvtestop] +[scope_exit vectype] --- 1 --- -[check_dims] shape +[check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id shape] -[visit_id _] not free -[visit_id _] no dims +[check_dims] shape +[scope_enter shape] +[visit_id shape] not free [visit_exp shape] [visit_id shape] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit shape] --- 1 --- [check_dims] shape --- 2 --- --- 3 --- --- 4 --- -[visit_id shape] -[visit_id _] not free -[visit_id _] no dims +[check_dims] shape +[scope_enter shape] +[visit_id shape] not free [visit_exp shape] [visit_id shape] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit shape] --- 1 --- [check_dims] shape --- 2 --- --- 3 --- --- 4 --- -[visit_id shape] -[visit_id _] not free -[visit_id _] no dims +[check_dims] shape +[scope_enter shape] +[visit_id shape] not free [visit_exp shape] [visit_id shape] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit shape] --- 1 --- [check_dims] shape --- 2 --- --- 3 --- --- 4 --- -[visit_id shape] +[check_dims] shape +[scope_enter shape] +[visit_id shape] not free +[visit_exp shape] +[visit_id shape] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit shape] +--- 1 --- +[check_dims] shape +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] shape +[scope_enter shape] +[visit_id shape] not free [visit_exp shape] [visit_id shape] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit shape] --- 1 --- [check_dims] shape --- 2 --- --- 3 --- --- 4 --- -[visit_id shape] +[check_dims] ishape +[scope_enter ishape] +[visit_id ishape] not free +[visit_exp ishape] +[visit_id ishape] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims -[visit_exp shape] -[visit_id shape] not free +[scope_exit _] +[scope_exit ishape] --- 1 --- [check_dims] ishape --- 2 --- --- 3 --- --- 4 --- -[visit_id ishape] -[visit_id _] not free -[visit_id _] no dims -[visit_exp ishape] +[check_dims] +[scope_enter ishape] [visit_id ishape] not free +[visit_id ishape] no dims +[scope_exit ishape] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id ishape] no dims -[visit_id ishape] +[check_dims] bshape +[scope_enter bshape] +[visit_id bshape] not free +[visit_exp bshape] +[visit_id bshape] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit bshape] --- 1 --- [check_dims] bshape --- 2 --- --- 3 --- --- 4 --- -[visit_id bshape] -[visit_id _] not free -[visit_id _] no dims -[visit_exp bshape] +[check_dims] +[scope_enter bshape] [visit_id bshape] not free +[visit_id bshape] no dims +[scope_enter laneidx*] +[visit_id laneidx*] not free +[visit_id laneidx*] no dims +[scope_exit laneidx*] +[scope_exit bshape] --- 1 --- -[check_dims] bshape i#1432 laneidx shape#109 +[check_dims] bshape laneidx --- 2 --- --- 3 --- --- 4 --- -[visit_id bshape] -[visit_id laneidx*] no dims -[visit_id laneidx*] -[visit_exp (`%`_dim{i#1432}(|laneidx*{laneidx <- `laneidx*`}|) = $dim(bshape!`%`_bshape{shape#109}.0))] -[visit_exp `%`_dim{i#1432}(|laneidx*{laneidx <- `laneidx*`}|)] -[visit_exp i#1432] -[visit_id i#1432] +[visit_exp (`%`_dim(|laneidx*{laneidx <- `laneidx*`}|) = $dim(bshape!`%`_bshape.0))] +[visit_exp `%`_dim(|laneidx*{laneidx <- `laneidx*`}|)] [visit_exp (|laneidx*{laneidx <- `laneidx*`}|)] [visit_exp |laneidx*{laneidx <- `laneidx*`}|] [visit_exp laneidx*{laneidx <- `laneidx*`}] @@ -14654,129 +14306,163 @@ DecD unpackshape(shape : shape) : numtype [visit_exp `laneidx*`] [visit_id laneidx*] not free [visit_id laneidx*] no dims -[visit_exp $dim(bshape!`%`_bshape{shape#109}.0)] -[visit_exp bshape!`%`_bshape{shape#109}.0] -[visit_exp bshape!`%`_bshape{shape#109}] +[visit_exp $dim(bshape!`%`_bshape.0)] +[visit_exp bshape!`%`_bshape.0] +[visit_exp bshape!`%`_bshape] [visit_exp bshape] [visit_id bshape] not free -[visit_exp shape#109] -[visit_id shape#109] ---- 1 --- [check_dims] ishape_1 ishape_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_id ishape_1] -[visit_id ishape_2] -[visit_id _] not free -[visit_id _] no dims +[scope_enter ishape_1] +[visit_id ishape_1] not free +[scope_enter ishape_2] +[visit_id ishape_2] not free [visit_exp ishape_2] [visit_id ishape_2] not free [visit_exp ishape_1] [visit_id ishape_1] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit ishape_2] +[scope_exit ishape_1] --- 1 --- [check_dims] ishape_1 ishape_2 --- 2 --- --- 3 --- --- 4 --- -[visit_id ishape_1] -[visit_id ishape_2] -[visit_id _] not free -[visit_id _] no dims +[check_dims] ishape_1 ishape_2 +[scope_enter ishape_1] +[visit_id ishape_1] not free +[scope_enter ishape_2] +[visit_id ishape_2] not free [visit_exp ishape_2] [visit_id ishape_2] not free [visit_exp ishape_1] [visit_id ishape_1] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit ishape_2] +[scope_exit ishape_1] --- 1 --- [check_dims] ishape_1 ishape_2 --- 2 --- --- 3 --- --- 4 --- -[visit_id ishape_1] -[visit_id ishape_2] -[visit_id _] not free -[visit_id _] no dims +[check_dims] ishape_1 ishape_2 +[scope_enter ishape_1] +[visit_id ishape_1] not free +[scope_enter ishape_2] +[visit_id ishape_2] not free [visit_exp ishape_2] [visit_id ishape_2] not free [visit_exp ishape_1] [visit_id ishape_1] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit ishape_2] +[scope_exit ishape_1] --- 1 --- -[check_dims] Jnn#43 Jnn#44 Jnn#45 ishape_1 ishape_2 shape#147 shape#149 shape#151 +[check_dims] ishape_1 ishape_2 --- 2 --- --- 3 --- --- 4 --- -[visit_id ishape_1] -[visit_id ishape_2] +[check_dims] +[scope_enter ishape_1] +[visit_id ishape_1] not free +[visit_id ishape_1] no dims +[scope_enter ishape_2] +[visit_id ishape_2] not free +[visit_id ishape_2] no dims +[scope_enter sx] +[visit_id sx] not free [visit_id sx] no dims -[visit_id sx] -[visit_exp (($lsize($lanetype(ishape_2!`%`_ishape{shape#149, Jnn#44}.0)) = (2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#147, Jnn#43}.0)))) /\ ((2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#151, Jnn#45}.0))) <= 32))] -[visit_exp ($lsize($lanetype(ishape_2!`%`_ishape{shape#149, Jnn#44}.0)) = (2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#147, Jnn#43}.0))))] -[visit_exp $lsize($lanetype(ishape_2!`%`_ishape{shape#149, Jnn#44}.0))] -[visit_exp $lanetype(ishape_2!`%`_ishape{shape#149, Jnn#44}.0)] -[visit_exp ishape_2!`%`_ishape{shape#149, Jnn#44}.0] -[visit_exp ishape_2!`%`_ishape{shape#149, Jnn#44}] +[scope_exit sx] +[scope_exit ishape_2] +[scope_exit ishape_1] +--- 1 --- +[check_dims] ishape_1 ishape_2 +--- 2 --- +--- 3 --- +--- 4 --- +[visit_exp (($lsize($lanetype(ishape_2!`%`_ishape.0)) = (2 * $lsize($lanetype(ishape_1!`%`_ishape.0)))) /\ ((2 * $lsize($lanetype(ishape_1!`%`_ishape.0))) <= 32))] +[visit_exp ($lsize($lanetype(ishape_2!`%`_ishape.0)) = (2 * $lsize($lanetype(ishape_1!`%`_ishape.0))))] +[visit_exp $lsize($lanetype(ishape_2!`%`_ishape.0))] +[visit_exp $lanetype(ishape_2!`%`_ishape.0)] +[visit_exp ishape_2!`%`_ishape.0] +[visit_exp ishape_2!`%`_ishape] [visit_exp ishape_2] [visit_id ishape_2] not free -[visit_exp shape#149] -[visit_id shape#149] -[visit_exp Jnn#44] -[visit_id Jnn#44] -[visit_exp (2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#147, Jnn#43}.0)))] +[visit_exp (2 * $lsize($lanetype(ishape_1!`%`_ishape.0)))] [visit_exp 2] -[visit_exp $lsize($lanetype(ishape_1!`%`_ishape{shape#147, Jnn#43}.0))] -[visit_exp $lanetype(ishape_1!`%`_ishape{shape#147, Jnn#43}.0)] -[visit_exp ishape_1!`%`_ishape{shape#147, Jnn#43}.0] -[visit_exp ishape_1!`%`_ishape{shape#147, Jnn#43}] +[visit_exp $lsize($lanetype(ishape_1!`%`_ishape.0))] +[visit_exp $lanetype(ishape_1!`%`_ishape.0)] +[visit_exp ishape_1!`%`_ishape.0] +[visit_exp ishape_1!`%`_ishape] [visit_exp ishape_1] [visit_id ishape_1] not free -[visit_exp shape#147] -[visit_id shape#147] -[visit_exp Jnn#43] -[visit_id Jnn#43] -[visit_exp ((2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#151, Jnn#45}.0))) <= 32)] -[visit_exp (2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#151, Jnn#45}.0)))] +[visit_exp ((2 * $lsize($lanetype(ishape_1!`%`_ishape.0))) <= 32)] +[visit_exp (2 * $lsize($lanetype(ishape_1!`%`_ishape.0)))] [visit_exp 2] -[visit_exp $lsize($lanetype(ishape_1!`%`_ishape{shape#151, Jnn#45}.0))] -[visit_exp $lanetype(ishape_1!`%`_ishape{shape#151, Jnn#45}.0)] -[visit_exp ishape_1!`%`_ishape{shape#151, Jnn#45}.0] -[visit_exp ishape_1!`%`_ishape{shape#151, Jnn#45}] +[visit_exp $lsize($lanetype(ishape_1!`%`_ishape.0))] +[visit_exp $lanetype(ishape_1!`%`_ishape.0)] +[visit_exp ishape_1!`%`_ishape.0] +[visit_exp ishape_1!`%`_ishape] [visit_exp ishape_1] [visit_id ishape_1] not free -[visit_exp shape#151] -[visit_id shape#151] -[visit_exp Jnn#45] -[visit_id Jnn#45] [visit_exp 32] ---- 1 --- [check_dims] shape_1 shape_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_id shape_1] -[visit_id shape_2] -[visit_id _] not free -[visit_id _] no dims +[scope_enter shape_1] +[visit_id shape_1] not free +[scope_enter shape_2] +[visit_id shape_2] not free [visit_exp shape_2] [visit_id shape_2] not free [visit_exp shape_1] [visit_id shape_1] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit shape_2] +[scope_exit shape_1] --- 1 --- -[check_dims] +[check_dims] shape_1 shape_2 --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter shape] +[visit_id shape] not free [visit_id shape] no dims -[visit_id shape] +[scope_exit shape] --- 1 --- -[check_dims] shape sx +[check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id shape] +[check_dims] +[scope_enter shape] +[visit_id shape] not free +[visit_id shape] no dims +[scope_enter sx?] +[visit_id sx?] not free [visit_id sx?] no dims -[visit_id sx?] +[scope_enter laneidx] +[visit_id laneidx] not free [visit_id laneidx] no dims -[visit_id laneidx] +[scope_exit laneidx] +[scope_exit sx?] +[scope_exit shape] +--- 1 --- +[check_dims] shape sx +--- 2 --- +--- 3 --- +--- 4 --- [visit_exp ((sx?{sx <- `sx?`} = ?()) <=> ($lanetype(shape) <- [`I32`_lanetype `I64`_lanetype `F32`_lanetype `F64`_lanetype]))] [visit_exp (sx?{sx <- `sx?`} = ?())] [visit_exp sx?{sx <- `sx?`}] @@ -14802,39 +14488,36 @@ DecD unpackshape(shape : shape) : numtype [visit_exp ()] [visit_exp `F64`_lanetype] [visit_exp ()] +[check_dims] +[scope_enter shape] +[visit_id shape] not free +[visit_id shape] no dims +[scope_enter laneidx] +[visit_id laneidx] not free +[visit_id laneidx] no dims +[scope_exit laneidx] +[scope_exit shape] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id shape] no dims -[visit_id shape] -[visit_id laneidx] no dims -[visit_id laneidx] [check_dims] [check_dims] [check_dims] [check_dims] DecD memarg0 : memarg -[check_dims] i#1467 i#1487 u32#1 u64#37 -[visit_exp {`ALIGN`{u32#1} `%`_u32{i#1467}(0), `OFFSET`{u64#37} `%`_u64{i#1487}(0)}] -[visit_exp u32#1] -[visit_id u32#1] -[visit_exp `%`_u32{i#1467}(0)] -[visit_exp i#1467] -[visit_id i#1467] +[check_dims] +[visit_exp {`ALIGN` `%`_u32(0), `OFFSET` `%`_u64(0)}] +[visit_exp `%`_u32(0)] [visit_exp (0)] [visit_exp 0] -[visit_exp u64#37] -[visit_id u64#37] -[visit_exp `%`_u64{i#1487}(0)] -[visit_exp i#1487] -[visit_id i#1487] +[visit_exp `%`_u64(0)] [visit_exp (0)] [visit_exp 0] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $memarg0{u32#1 : u32, i#1467 : nat, u64#37 : u64, i#1487 : nat} = {`ALIGN`{u32#1} `%`_u32{i#1467}(0), `OFFSET`{u64#37} `%`_u64{i#1487}(0)} + def $memarg0 = {`ALIGN` `%`_u32(0), `OFFSET` `%`_u64(0)} [check_dims] consttype lit_ DecD const(consttype : consttype, lit_ : lit_((consttype : consttype <: storagetype))) : instr [visit_id consttype] not free @@ -14842,15 +14525,13 @@ DecD const(consttype : consttype, lit_ : lit_((consttype : consttype <: storaget [visit_exp (consttype : consttype <: storagetype)] [visit_exp consttype] [visit_id consttype] not free -[check_dims] c numtype numtype#1 +[check_dims] c numtype [visit_exp (numtype : numtype <: consttype)] [visit_exp numtype] [visit_id numtype] [visit_exp c] [visit_id c] -[visit_exp `CONST`_instr{numtype#1}(numtype, c)] -[visit_exp numtype#1] -[visit_id numtype#1] +[visit_exp `CONST`_instr(numtype, c)] [visit_exp (numtype, c)] [visit_exp numtype] [visit_id numtype] not free @@ -14858,16 +14539,14 @@ DecD const(consttype : consttype, lit_ : lit_((consttype : consttype <: storaget [visit_id c] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $const{numtype : numtype, c : lit_(((numtype : numtype <: consttype) : consttype <: storagetype)), numtype#1 : numtype}((numtype : numtype <: consttype), c) = `CONST`_instr{numtype#1}(numtype, c) -[check_dims] c vectype vectype#1 + def $const{numtype : numtype, c : lit_(((numtype : numtype <: consttype) : consttype <: storagetype))}((numtype : numtype <: consttype), c) = `CONST`_instr(numtype, c) +[check_dims] c vectype [visit_exp (vectype : vectype <: consttype)] [visit_exp vectype] [visit_id vectype] [visit_exp c] [visit_id c] -[visit_exp `VCONST`_instr{vectype#1}(vectype, c)] -[visit_exp vectype#1] -[visit_id vectype#1] +[visit_exp `VCONST`_instr(vectype, c)] [visit_exp (vectype, c)] [visit_exp vectype] [visit_id vectype] not free @@ -14875,7 +14554,7 @@ DecD const(consttype : consttype, lit_ : lit_((consttype : consttype <: storaget [visit_id c] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $const{vectype : vectype, c : lit_(((vectype : vectype <: consttype) : consttype <: storagetype)), vectype#1 : vectype}((vectype : vectype <: consttype), c) = `VCONST`_instr{vectype#1}(vectype, c) + def $const{vectype : vectype, c : lit_(((vectype : vectype <: consttype) : consttype <: storagetype))}((vectype : vectype <: consttype), c) = `VCONST`_instr(vectype, c) [check_dims] shape DecD free_shape(shape : shape) : free [visit_id shape] not free @@ -14891,14 +14570,8 @@ DecD free_block(instr*) : free [check_dims] expr DecD free_expr(expr : expr) : free [visit_id expr] not free -[check_dims] dim dim#445 i#1518 lanetype lanetype#445 -[visit_exp `%X%`_shape{lanetype#445, dim#445, i#1518}(lanetype, dim)] -[visit_exp lanetype#445] -[visit_id lanetype#445] -[visit_exp dim#445] -[visit_id dim#445] -[visit_exp i#1518] -[visit_id i#1518] +[check_dims] dim lanetype +[visit_exp `%X%`_shape(lanetype, dim)] [visit_exp (lanetype, dim)] [visit_exp lanetype] [visit_id lanetype] @@ -14909,11 +14582,9 @@ DecD free_expr(expr : expr) : free [visit_id lanetype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_shape{lanetype#445 : lanetype, dim#445 : dim, i#1518 : nat, lanetype : lanetype, dim : dim}(`%X%`_shape{lanetype#445, dim#445, i#1518}(lanetype, dim)) = $free_lanetype(lanetype) -[check_dims] valtype valtype?#1 -[visit_exp `_RESULT`_blocktype{`valtype?#1`}(valtype?{valtype <- `valtype?`})] -[visit_exp `valtype?#1`] -[visit_id valtype?#1] + def $free_shape{lanetype : lanetype, dim : dim}(`%X%`_shape(lanetype, dim)) = $free_lanetype(lanetype) +[check_dims] valtype +[visit_exp `_RESULT`_blocktype(valtype?{valtype <- `valtype?`})] [visit_exp (valtype?{valtype <- `valtype?`})] [visit_exp valtype?{valtype <- `valtype?`}] [scope_enter valtype] @@ -14937,11 +14608,9 @@ DecD free_expr(expr : expr) : free [visit_id valtype?] no dims => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_blocktype{`valtype?#1` : valtype?, `valtype?` : valtype?}(`_RESULT`_blocktype{`valtype?#1`}(valtype?{valtype <- `valtype?`})) = $free_opt($free_valtype(valtype)?{valtype <- `valtype?`}) -[check_dims] typeidx typeidx#27 -[visit_exp `_IDX`_blocktype{typeidx#27}(typeidx)] -[visit_exp typeidx#27] -[visit_id typeidx#27] + def $free_blocktype{`valtype?` : valtype?}(`_RESULT`_blocktype(valtype?{valtype <- `valtype?`})) = $free_opt($free_valtype(valtype)?{valtype <- `valtype?`}) +[check_dims] typeidx +[visit_exp `_IDX`_blocktype(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] @@ -14950,113 +14619,57 @@ DecD free_expr(expr : expr) : free [visit_id typeidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_blocktype{typeidx#27 : typeidx, typeidx : typeidx}(`_IDX`_blocktype{typeidx#27}(typeidx)) = $free_typeidx(typeidx) -[check_dims] dataidx*#20 elemidx*#20 funcidx*#20 globalidx*#20 labelidx*#20 localidx*#20 memidx*#20 tableidx*#20 typeidx*#20 + def $free_blocktype{typeidx : typeidx}(`_IDX`_blocktype(typeidx)) = $free_typeidx(typeidx) +[check_dims] [visit_exp `NOP`_instr] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#20`} [], `FUNCS`{`funcidx*#20`} [], `GLOBALS`{`globalidx*#20`} [], `TABLES`{`tableidx*#20`} [], `MEMS`{`memidx*#20`} [], `ELEMS`{`elemidx*#20`} [], `DATAS`{`dataidx*#20`} [], `LOCALS`{`localidx*#20`} [], `LABELS`{`labelidx*#20`} []}] -[visit_exp `typeidx*#20`] -[visit_id typeidx*#20] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#20`] -[visit_id funcidx*#20] [visit_exp []] -[visit_exp `globalidx*#20`] -[visit_id globalidx*#20] [visit_exp []] -[visit_exp `tableidx*#20`] -[visit_id tableidx*#20] [visit_exp []] -[visit_exp `memidx*#20`] -[visit_id memidx*#20] [visit_exp []] -[visit_exp `elemidx*#20`] -[visit_id elemidx*#20] [visit_exp []] -[visit_exp `dataidx*#20`] -[visit_id dataidx*#20] [visit_exp []] -[visit_exp `localidx*#20`] -[visit_id localidx*#20] [visit_exp []] -[visit_exp `labelidx*#20`] -[visit_id labelidx*#20] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`typeidx*#20` : typeidx*, `funcidx*#20` : funcidx*, `globalidx*#20` : globalidx*, `tableidx*#20` : tableidx*, `memidx*#20` : memidx*, `elemidx*#20` : elemidx*, `dataidx*#20` : dataidx*, `localidx*#20` : localidx*, `labelidx*#20` : labelidx*}(`NOP`_instr) = {`TYPES`{`typeidx*#20`} [], `FUNCS`{`funcidx*#20`} [], `GLOBALS`{`globalidx*#20`} [], `TABLES`{`tableidx*#20`} [], `MEMS`{`memidx*#20`} [], `ELEMS`{`elemidx*#20`} [], `DATAS`{`dataidx*#20`} [], `LOCALS`{`localidx*#20`} [], `LABELS`{`labelidx*#20`} []} -[check_dims] dataidx*#21 elemidx*#21 funcidx*#21 globalidx*#21 labelidx*#21 localidx*#21 memidx*#21 tableidx*#21 typeidx*#21 + def $free_instr(`NOP`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] [visit_exp `UNREACHABLE`_instr] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#21`} [], `FUNCS`{`funcidx*#21`} [], `GLOBALS`{`globalidx*#21`} [], `TABLES`{`tableidx*#21`} [], `MEMS`{`memidx*#21`} [], `ELEMS`{`elemidx*#21`} [], `DATAS`{`dataidx*#21`} [], `LOCALS`{`localidx*#21`} [], `LABELS`{`labelidx*#21`} []}] -[visit_exp `typeidx*#21`] -[visit_id typeidx*#21] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#21`] -[visit_id funcidx*#21] [visit_exp []] -[visit_exp `globalidx*#21`] -[visit_id globalidx*#21] [visit_exp []] -[visit_exp `tableidx*#21`] -[visit_id tableidx*#21] [visit_exp []] -[visit_exp `memidx*#21`] -[visit_id memidx*#21] [visit_exp []] -[visit_exp `elemidx*#21`] -[visit_id elemidx*#21] [visit_exp []] -[visit_exp `dataidx*#21`] -[visit_id dataidx*#21] [visit_exp []] -[visit_exp `localidx*#21`] -[visit_id localidx*#21] [visit_exp []] -[visit_exp `labelidx*#21`] -[visit_id labelidx*#21] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`typeidx*#21` : typeidx*, `funcidx*#21` : funcidx*, `globalidx*#21` : globalidx*, `tableidx*#21` : tableidx*, `memidx*#21` : memidx*, `elemidx*#21` : elemidx*, `dataidx*#21` : dataidx*, `localidx*#21` : localidx*, `labelidx*#21` : labelidx*}(`UNREACHABLE`_instr) = {`TYPES`{`typeidx*#21`} [], `FUNCS`{`funcidx*#21`} [], `GLOBALS`{`globalidx*#21`} [], `TABLES`{`tableidx*#21`} [], `MEMS`{`memidx*#21`} [], `ELEMS`{`elemidx*#21`} [], `DATAS`{`dataidx*#21`} [], `LOCALS`{`localidx*#21`} [], `LABELS`{`labelidx*#21`} []} -[check_dims] dataidx*#22 elemidx*#22 funcidx*#22 globalidx*#22 labelidx*#22 localidx*#22 memidx*#22 tableidx*#22 typeidx*#22 + def $free_instr(`UNREACHABLE`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] [visit_exp `DROP`_instr] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#22`} [], `FUNCS`{`funcidx*#22`} [], `GLOBALS`{`globalidx*#22`} [], `TABLES`{`tableidx*#22`} [], `MEMS`{`memidx*#22`} [], `ELEMS`{`elemidx*#22`} [], `DATAS`{`dataidx*#22`} [], `LOCALS`{`localidx*#22`} [], `LABELS`{`labelidx*#22`} []}] -[visit_exp `typeidx*#22`] -[visit_id typeidx*#22] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#22`] -[visit_id funcidx*#22] [visit_exp []] -[visit_exp `globalidx*#22`] -[visit_id globalidx*#22] [visit_exp []] -[visit_exp `tableidx*#22`] -[visit_id tableidx*#22] [visit_exp []] -[visit_exp `memidx*#22`] -[visit_id memidx*#22] [visit_exp []] -[visit_exp `elemidx*#22`] -[visit_id elemidx*#22] [visit_exp []] -[visit_exp `dataidx*#22`] -[visit_id dataidx*#22] [visit_exp []] -[visit_exp `localidx*#22`] -[visit_id localidx*#22] [visit_exp []] -[visit_exp `labelidx*#22`] -[visit_id labelidx*#22] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`typeidx*#22` : typeidx*, `funcidx*#22` : funcidx*, `globalidx*#22` : globalidx*, `tableidx*#22` : tableidx*, `memidx*#22` : memidx*, `elemidx*#22` : elemidx*, `dataidx*#22` : dataidx*, `localidx*#22` : localidx*, `labelidx*#22` : labelidx*}(`DROP`_instr) = {`TYPES`{`typeidx*#22`} [], `FUNCS`{`funcidx*#22`} [], `GLOBALS`{`globalidx*#22`} [], `TABLES`{`tableidx*#22`} [], `MEMS`{`memidx*#22`} [], `ELEMS`{`elemidx*#22`} [], `DATAS`{`dataidx*#22`} [], `LOCALS`{`localidx*#22`} [], `LABELS`{`labelidx*#22`} []} -[check_dims] valtype valtype*?#1 -[visit_exp `SELECT`_instr{`valtype*?#1`}(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})] -[visit_exp `valtype*?#1`] -[visit_id valtype*?#1] + def $free_instr(`DROP`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] valtype +[visit_exp `SELECT`_instr(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})] [visit_exp (valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})] [visit_exp valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`}] [scope_enter valtype*] @@ -15097,13 +14710,9 @@ DecD free_expr(expr : expr) : free [visit_id valtype*?] no dims => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`valtype*?#1` : valtype*?, `valtype*?` : valtype*?}(`SELECT`_instr{`valtype*?#1`}(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})) = $free_opt($free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`}) -[check_dims] blocktype blocktype#1 instr instr*#1 -[visit_exp `BLOCK`_instr{blocktype#1, `instr*#1`}(blocktype, instr*{instr <- `instr*`})] -[visit_exp blocktype#1] -[visit_id blocktype#1] -[visit_exp `instr*#1`] -[visit_id instr*#1] + def $free_instr{`valtype*?` : valtype*?}(`SELECT`_instr(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})) = $free_opt($free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`}) +[check_dims] blocktype instr +[visit_exp `BLOCK`_instr(blocktype, instr*{instr <- `instr*`})] [visit_exp (blocktype, instr*{instr <- `instr*`})] [visit_exp blocktype] [visit_id blocktype] @@ -15132,13 +14741,9 @@ DecD free_expr(expr : expr) : free [visit_id instr*] no dims => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{blocktype#1 : blocktype, `instr*#1` : instr*, blocktype : blocktype, `instr*` : instr*}(`BLOCK`_instr{blocktype#1, `instr*#1`}(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) -[check_dims] blocktype blocktype#3 instr instr*#3 -[visit_exp `LOOP`_instr{blocktype#3, `instr*#3`}(blocktype, instr*{instr <- `instr*`})] -[visit_exp blocktype#3] -[visit_id blocktype#3] -[visit_exp `instr*#3`] -[visit_id instr*#3] + def $free_instr{blocktype : blocktype, `instr*` : instr*}(`BLOCK`_instr(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) +[check_dims] blocktype instr +[visit_exp `LOOP`_instr(blocktype, instr*{instr <- `instr*`})] [visit_exp (blocktype, instr*{instr <- `instr*`})] [visit_exp blocktype] [visit_id blocktype] @@ -15167,13 +14772,9 @@ DecD free_expr(expr : expr) : free [visit_id instr*] no dims => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{blocktype#3 : blocktype, `instr*#3` : instr*, blocktype : blocktype, `instr*` : instr*}(`LOOP`_instr{blocktype#3, `instr*#3`}(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) -[check_dims] blocktype blocktype#5 instr*#5 instr_1 instr_2 -[visit_exp `IF%%ELSE%`_instr{blocktype#5, `instr*#5`}(blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp blocktype#5] -[visit_id blocktype#5] -[visit_exp `instr*#5`] -[visit_id instr*#5] + def $free_instr{blocktype : blocktype, `instr*` : instr*}(`LOOP`_instr(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) +[check_dims] blocktype instr_1 instr_2 +[visit_exp `IF%%ELSE%`_instr(blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] [visit_exp (blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] [visit_exp blocktype] [visit_id blocktype] @@ -15222,11 +14823,9 @@ DecD free_expr(expr : expr) : free [visit_id instr_2*] no dims => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{blocktype#5 : blocktype, `instr*#5` : instr*, blocktype : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}(`IF%%ELSE%`_instr{blocktype#5, `instr*#5`}(blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})) = $free_blocktype(blocktype) +++ $free_block(instr_1*{instr_1 <- `instr_1*`}) +++ $free_block(instr_2*{instr_2 <- `instr_2*`}) -[check_dims] labelidx labelidx#1 -[visit_exp `BR`_instr{labelidx#1}(labelidx)] -[visit_exp labelidx#1] -[visit_id labelidx#1] + def $free_instr{blocktype : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}(`IF%%ELSE%`_instr(blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})) = $free_blocktype(blocktype) +++ $free_block(instr_1*{instr_1 <- `instr_1*`}) +++ $free_block(instr_2*{instr_2 <- `instr_2*`}) +[check_dims] labelidx +[visit_exp `BR`_instr(labelidx)] [visit_exp (labelidx)] [visit_exp labelidx] [visit_id labelidx] @@ -15235,11 +14834,9 @@ DecD free_expr(expr : expr) : free [visit_id labelidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{labelidx#1 : labelidx, labelidx : labelidx}(`BR`_instr{labelidx#1}(labelidx)) = $free_labelidx(labelidx) -[check_dims] labelidx labelidx#3 -[visit_exp `BR_IF`_instr{labelidx#3}(labelidx)] -[visit_exp labelidx#3] -[visit_id labelidx#3] + def $free_instr{labelidx : labelidx}(`BR`_instr(labelidx)) = $free_labelidx(labelidx) +[check_dims] labelidx +[visit_exp `BR_IF`_instr(labelidx)] [visit_exp (labelidx)] [visit_exp labelidx] [visit_id labelidx] @@ -15248,13 +14845,9 @@ DecD free_expr(expr : expr) : free [visit_id labelidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{labelidx#3 : labelidx, labelidx : labelidx}(`BR_IF`_instr{labelidx#3}(labelidx)) = $free_labelidx(labelidx) -[check_dims] labelidx labelidx#5 labelidx' labelidx*#23 -[visit_exp `BR_TABLE`_instr{`labelidx*#23`, labelidx#5}(labelidx*{labelidx <- `labelidx*`}, labelidx')] -[visit_exp `labelidx*#23`] -[visit_id labelidx*#23] -[visit_exp labelidx#5] -[visit_id labelidx#5] + def $free_instr{labelidx : labelidx}(`BR_IF`_instr(labelidx)) = $free_labelidx(labelidx) +[check_dims] labelidx labelidx' +[visit_exp `BR_TABLE`_instr(labelidx*{labelidx <- `labelidx*`}, labelidx')] [visit_exp (labelidx*{labelidx <- `labelidx*`}, labelidx')] [visit_exp labelidx*{labelidx <- `labelidx*`}] [scope_enter labelidx] @@ -15284,11 +14877,9 @@ DecD free_expr(expr : expr) : free [visit_id labelidx'] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`labelidx*#23` : labelidx*, labelidx#5 : labelidx, `labelidx*` : labelidx*, labelidx' : labelidx}(`BR_TABLE`_instr{`labelidx*#23`, labelidx#5}(labelidx*{labelidx <- `labelidx*`}, labelidx')) = $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`}) +++ $free_labelidx(labelidx') -[check_dims] labelidx labelidx#7 -[visit_exp `BR_ON_NULL`_instr{labelidx#7}(labelidx)] -[visit_exp labelidx#7] -[visit_id labelidx#7] + def $free_instr{`labelidx*` : labelidx*, labelidx' : labelidx}(`BR_TABLE`_instr(labelidx*{labelidx <- `labelidx*`}, labelidx')) = $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`}) +++ $free_labelidx(labelidx') +[check_dims] labelidx +[visit_exp `BR_ON_NULL`_instr(labelidx)] [visit_exp (labelidx)] [visit_exp labelidx] [visit_id labelidx] @@ -15297,11 +14888,9 @@ DecD free_expr(expr : expr) : free [visit_id labelidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{labelidx#7 : labelidx, labelidx : labelidx}(`BR_ON_NULL`_instr{labelidx#7}(labelidx)) = $free_labelidx(labelidx) -[check_dims] labelidx labelidx#9 -[visit_exp `BR_ON_NON_NULL`_instr{labelidx#9}(labelidx)] -[visit_exp labelidx#9] -[visit_id labelidx#9] + def $free_instr{labelidx : labelidx}(`BR_ON_NULL`_instr(labelidx)) = $free_labelidx(labelidx) +[check_dims] labelidx +[visit_exp `BR_ON_NON_NULL`_instr(labelidx)] [visit_exp (labelidx)] [visit_exp labelidx] [visit_id labelidx] @@ -15310,13 +14899,9 @@ DecD free_expr(expr : expr) : free [visit_id labelidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{labelidx#9 : labelidx, labelidx : labelidx}(`BR_ON_NON_NULL`_instr{labelidx#9}(labelidx)) = $free_labelidx(labelidx) -[check_dims] labelidx labelidx#11 reftype#125 reftype_1 reftype_2 -[visit_exp `BR_ON_CAST`_instr{labelidx#11, reftype#125}(labelidx, reftype_1, reftype_2)] -[visit_exp labelidx#11] -[visit_id labelidx#11] -[visit_exp reftype#125] -[visit_id reftype#125] + def $free_instr{labelidx : labelidx}(`BR_ON_NON_NULL`_instr(labelidx)) = $free_labelidx(labelidx) +[check_dims] labelidx reftype_1 reftype_2 +[visit_exp `BR_ON_CAST`_instr(labelidx, reftype_1, reftype_2)] [visit_exp (labelidx, reftype_1, reftype_2)] [visit_exp labelidx] [visit_id labelidx] @@ -15337,13 +14922,9 @@ DecD free_expr(expr : expr) : free [visit_id reftype_2] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{labelidx#11 : labelidx, reftype#125 : reftype, labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST`_instr{labelidx#11, reftype#125}(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) -[check_dims] labelidx labelidx#13 reftype#128 reftype_1 reftype_2 -[visit_exp `BR_ON_CAST_FAIL`_instr{labelidx#13, reftype#128}(labelidx, reftype_1, reftype_2)] -[visit_exp labelidx#13] -[visit_id labelidx#13] -[visit_exp reftype#128] -[visit_id reftype#128] + def $free_instr{labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST`_instr(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) +[check_dims] labelidx reftype_1 reftype_2 +[visit_exp `BR_ON_CAST_FAIL`_instr(labelidx, reftype_1, reftype_2)] [visit_exp (labelidx, reftype_1, reftype_2)] [visit_exp labelidx] [visit_id labelidx] @@ -15364,11 +14945,9 @@ DecD free_expr(expr : expr) : free [visit_id reftype_2] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{labelidx#13 : labelidx, reftype#128 : reftype, labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST_FAIL`_instr{labelidx#13, reftype#128}(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) -[check_dims] funcidx funcidx#5 -[visit_exp `CALL`_instr{funcidx#5}(funcidx)] -[visit_exp funcidx#5] -[visit_id funcidx#5] + def $free_instr{labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST_FAIL`_instr(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) +[check_dims] funcidx +[visit_exp `CALL`_instr(funcidx)] [visit_exp (funcidx)] [visit_exp funcidx] [visit_id funcidx] @@ -15377,11 +14956,9 @@ DecD free_expr(expr : expr) : free [visit_id funcidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{funcidx#5 : funcidx, funcidx : funcidx}(`CALL`_instr{funcidx#5}(funcidx)) = $free_funcidx(funcidx) -[check_dims] typeuse typeuse#9 -[visit_exp `CALL_REF`_instr{typeuse#9}(typeuse)] -[visit_exp typeuse#9] -[visit_id typeuse#9] + def $free_instr{funcidx : funcidx}(`CALL`_instr(funcidx)) = $free_funcidx(funcidx) +[check_dims] typeuse +[visit_exp `CALL_REF`_instr(typeuse)] [visit_exp (typeuse)] [visit_exp typeuse] [visit_id typeuse] @@ -15390,13 +14967,9 @@ DecD free_expr(expr : expr) : free [visit_id typeuse] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeuse#9 : typeuse, typeuse : typeuse}(`CALL_REF`_instr{typeuse#9}(typeuse)) = $free_typeuse(typeuse) -[check_dims] tableidx tableidx#5 typeuse typeuse#11 -[visit_exp `CALL_INDIRECT`_instr{tableidx#5, typeuse#11}(tableidx, typeuse)] -[visit_exp tableidx#5] -[visit_id tableidx#5] -[visit_exp typeuse#11] -[visit_id typeuse#11] + def $free_instr{typeuse : typeuse}(`CALL_REF`_instr(typeuse)) = $free_typeuse(typeuse) +[check_dims] tableidx typeuse +[visit_exp `CALL_INDIRECT`_instr(tableidx, typeuse)] [visit_exp (tableidx, typeuse)] [visit_exp tableidx] [visit_id tableidx] @@ -15411,45 +14984,25 @@ DecD free_expr(expr : expr) : free [visit_id typeuse] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx#5 : tableidx, typeuse#11 : typeuse, tableidx : tableidx, typeuse : typeuse}(`CALL_INDIRECT`_instr{tableidx#5, typeuse#11}(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) -[check_dims] dataidx*#23 elemidx*#23 funcidx*#23 globalidx*#23 labelidx*#25 localidx*#23 memidx*#23 tableidx*#23 typeidx*#23 + def $free_instr{tableidx : tableidx, typeuse : typeuse}(`CALL_INDIRECT`_instr(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) +[check_dims] [visit_exp `RETURN`_instr] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#23`} [], `FUNCS`{`funcidx*#23`} [], `GLOBALS`{`globalidx*#23`} [], `TABLES`{`tableidx*#23`} [], `MEMS`{`memidx*#23`} [], `ELEMS`{`elemidx*#23`} [], `DATAS`{`dataidx*#23`} [], `LOCALS`{`localidx*#23`} [], `LABELS`{`labelidx*#25`} []}] -[visit_exp `typeidx*#23`] -[visit_id typeidx*#23] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#23`] -[visit_id funcidx*#23] [visit_exp []] -[visit_exp `globalidx*#23`] -[visit_id globalidx*#23] [visit_exp []] -[visit_exp `tableidx*#23`] -[visit_id tableidx*#23] [visit_exp []] -[visit_exp `memidx*#23`] -[visit_id memidx*#23] [visit_exp []] -[visit_exp `elemidx*#23`] -[visit_id elemidx*#23] [visit_exp []] -[visit_exp `dataidx*#23`] -[visit_id dataidx*#23] [visit_exp []] -[visit_exp `localidx*#23`] -[visit_id localidx*#23] [visit_exp []] -[visit_exp `labelidx*#25`] -[visit_id labelidx*#25] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`typeidx*#23` : typeidx*, `funcidx*#23` : funcidx*, `globalidx*#23` : globalidx*, `tableidx*#23` : tableidx*, `memidx*#23` : memidx*, `elemidx*#23` : elemidx*, `dataidx*#23` : dataidx*, `localidx*#23` : localidx*, `labelidx*#25` : labelidx*}(`RETURN`_instr) = {`TYPES`{`typeidx*#23`} [], `FUNCS`{`funcidx*#23`} [], `GLOBALS`{`globalidx*#23`} [], `TABLES`{`tableidx*#23`} [], `MEMS`{`memidx*#23`} [], `ELEMS`{`elemidx*#23`} [], `DATAS`{`dataidx*#23`} [], `LOCALS`{`localidx*#23`} [], `LABELS`{`labelidx*#25`} []} -[check_dims] funcidx funcidx#7 -[visit_exp `RETURN_CALL`_instr{funcidx#7}(funcidx)] -[visit_exp funcidx#7] -[visit_id funcidx#7] + def $free_instr(`RETURN`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] funcidx +[visit_exp `RETURN_CALL`_instr(funcidx)] [visit_exp (funcidx)] [visit_exp funcidx] [visit_id funcidx] @@ -15458,11 +15011,9 @@ DecD free_expr(expr : expr) : free [visit_id funcidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{funcidx#7 : funcidx, funcidx : funcidx}(`RETURN_CALL`_instr{funcidx#7}(funcidx)) = $free_funcidx(funcidx) -[check_dims] typeuse typeuse#13 -[visit_exp `RETURN_CALL_REF`_instr{typeuse#13}(typeuse)] -[visit_exp typeuse#13] -[visit_id typeuse#13] + def $free_instr{funcidx : funcidx}(`RETURN_CALL`_instr(funcidx)) = $free_funcidx(funcidx) +[check_dims] typeuse +[visit_exp `RETURN_CALL_REF`_instr(typeuse)] [visit_exp (typeuse)] [visit_exp typeuse] [visit_id typeuse] @@ -15471,13 +15022,9 @@ DecD free_expr(expr : expr) : free [visit_id typeuse] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeuse#13 : typeuse, typeuse : typeuse}(`RETURN_CALL_REF`_instr{typeuse#13}(typeuse)) = $free_typeuse(typeuse) -[check_dims] tableidx tableidx#7 typeuse typeuse#15 -[visit_exp `RETURN_CALL_INDIRECT`_instr{tableidx#7, typeuse#15}(tableidx, typeuse)] -[visit_exp tableidx#7] -[visit_id tableidx#7] -[visit_exp typeuse#15] -[visit_id typeuse#15] + def $free_instr{typeuse : typeuse}(`RETURN_CALL_REF`_instr(typeuse)) = $free_typeuse(typeuse) +[check_dims] tableidx typeuse +[visit_exp `RETURN_CALL_INDIRECT`_instr(tableidx, typeuse)] [visit_exp (tableidx, typeuse)] [visit_exp tableidx] [visit_id tableidx] @@ -15492,11 +15039,9 @@ DecD free_expr(expr : expr) : free [visit_id typeuse] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx#7 : tableidx, typeuse#15 : typeuse, tableidx : tableidx, typeuse : typeuse}(`RETURN_CALL_INDIRECT`_instr{tableidx#7, typeuse#15}(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) -[check_dims] numlit numtype numtype#3 -[visit_exp `CONST`_instr{numtype#3}(numtype, numlit)] -[visit_exp numtype#3] -[visit_id numtype#3] + def $free_instr{tableidx : tableidx, typeuse : typeuse}(`RETURN_CALL_INDIRECT`_instr(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) +[check_dims] numlit numtype +[visit_exp `CONST`_instr(numtype, numlit)] [visit_exp (numtype, numlit)] [visit_exp numtype] [visit_id numtype] @@ -15507,11 +15052,9 @@ DecD free_expr(expr : expr) : free [visit_id numtype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype#3 : numtype, numtype : numtype, numlit : num_(numtype)}(`CONST`_instr{numtype#3}(numtype, numlit)) = $free_numtype(numtype) -[check_dims] numtype numtype#5 unop -[visit_exp `UNOP`_instr{numtype#5}(numtype, unop)] -[visit_exp numtype#5] -[visit_id numtype#5] + def $free_instr{numtype : numtype, numlit : num_(numtype)}(`CONST`_instr(numtype, numlit)) = $free_numtype(numtype) +[check_dims] numtype unop +[visit_exp `UNOP`_instr(numtype, unop)] [visit_exp (numtype, unop)] [visit_exp numtype] [visit_id numtype] @@ -15522,11 +15065,9 @@ DecD free_expr(expr : expr) : free [visit_id numtype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype#5 : numtype, numtype : numtype, unop : unop_(numtype)}(`UNOP`_instr{numtype#5}(numtype, unop)) = $free_numtype(numtype) -[check_dims] binop numtype numtype#7 -[visit_exp `BINOP`_instr{numtype#7}(numtype, binop)] -[visit_exp numtype#7] -[visit_id numtype#7] + def $free_instr{numtype : numtype, unop : unop_(numtype)}(`UNOP`_instr(numtype, unop)) = $free_numtype(numtype) +[check_dims] binop numtype +[visit_exp `BINOP`_instr(numtype, binop)] [visit_exp (numtype, binop)] [visit_exp numtype] [visit_id numtype] @@ -15537,11 +15078,9 @@ DecD free_expr(expr : expr) : free [visit_id numtype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype#7 : numtype, numtype : numtype, binop : binop_(numtype)}(`BINOP`_instr{numtype#7}(numtype, binop)) = $free_numtype(numtype) -[check_dims] numtype numtype#9 testop -[visit_exp `TESTOP`_instr{numtype#9}(numtype, testop)] -[visit_exp numtype#9] -[visit_id numtype#9] + def $free_instr{numtype : numtype, binop : binop_(numtype)}(`BINOP`_instr(numtype, binop)) = $free_numtype(numtype) +[check_dims] numtype testop +[visit_exp `TESTOP`_instr(numtype, testop)] [visit_exp (numtype, testop)] [visit_exp numtype] [visit_id numtype] @@ -15552,11 +15091,9 @@ DecD free_expr(expr : expr) : free [visit_id numtype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype#9 : numtype, numtype : numtype, testop : testop_(numtype)}(`TESTOP`_instr{numtype#9}(numtype, testop)) = $free_numtype(numtype) -[check_dims] numtype numtype#11 relop -[visit_exp `RELOP`_instr{numtype#11}(numtype, relop)] -[visit_exp numtype#11] -[visit_id numtype#11] + def $free_instr{numtype : numtype, testop : testop_(numtype)}(`TESTOP`_instr(numtype, testop)) = $free_numtype(numtype) +[check_dims] numtype relop +[visit_exp `RELOP`_instr(numtype, relop)] [visit_exp (numtype, relop)] [visit_exp numtype] [visit_id numtype] @@ -15567,13 +15104,9 @@ DecD free_expr(expr : expr) : free [visit_id numtype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype#11 : numtype, numtype : numtype, relop : relop_(numtype)}(`RELOP`_instr{numtype#11}(numtype, relop)) = $free_numtype(numtype) -[check_dims] cvtop numtype_1 numtype_1#1 numtype_2 numtype_2#1 -[visit_exp `CVTOP`_instr{numtype_1#1, numtype_2#1}(numtype_1, numtype_2, cvtop)] -[visit_exp numtype_1#1] -[visit_id numtype_1#1] -[visit_exp numtype_2#1] -[visit_id numtype_2#1] + def $free_instr{numtype : numtype, relop : relop_(numtype)}(`RELOP`_instr(numtype, relop)) = $free_numtype(numtype) +[check_dims] cvtop numtype_1 numtype_2 +[visit_exp `CVTOP`_instr(numtype_1, numtype_2, cvtop)] [visit_exp (numtype_1, numtype_2, cvtop)] [visit_exp numtype_1] [visit_id numtype_1] @@ -15590,11 +15123,9 @@ DecD free_expr(expr : expr) : free [visit_id numtype_2] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype_1#1 : numtype, numtype_2#1 : numtype, numtype_1 : numtype, numtype_2 : numtype, cvtop : cvtop__(numtype_2, numtype_1)}(`CVTOP`_instr{numtype_1#1, numtype_2#1}(numtype_1, numtype_2, cvtop)) = $free_numtype(numtype_1) +++ $free_numtype(numtype_2) -[check_dims] veclit vectype vectype#3 -[visit_exp `VCONST`_instr{vectype#3}(vectype, veclit)] -[visit_exp vectype#3] -[visit_id vectype#3] + def $free_instr{numtype_1 : numtype, numtype_2 : numtype, cvtop : cvtop__(numtype_2, numtype_1)}(`CVTOP`_instr(numtype_1, numtype_2, cvtop)) = $free_numtype(numtype_1) +++ $free_numtype(numtype_2) +[check_dims] veclit vectype +[visit_exp `VCONST`_instr(vectype, veclit)] [visit_exp (vectype, veclit)] [visit_exp vectype] [visit_id vectype] @@ -15605,13 +15136,9 @@ DecD free_expr(expr : expr) : free [visit_id vectype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype#3 : vectype, vectype : vectype, veclit : vec_(vectype)}(`VCONST`_instr{vectype#3}(vectype, veclit)) = $free_vectype(vectype) -[check_dims] vectype vectype#5 vvunop vvunop#1 -[visit_exp `VVUNOP`_instr{vectype#5, vvunop#1}(vectype, vvunop)] -[visit_exp vectype#5] -[visit_id vectype#5] -[visit_exp vvunop#1] -[visit_id vvunop#1] + def $free_instr{vectype : vectype, veclit : vec_(vectype)}(`VCONST`_instr(vectype, veclit)) = $free_vectype(vectype) +[check_dims] vectype vvunop +[visit_exp `VVUNOP`_instr(vectype, vvunop)] [visit_exp (vectype, vvunop)] [visit_exp vectype] [visit_id vectype] @@ -15622,13 +15149,9 @@ DecD free_expr(expr : expr) : free [visit_id vectype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype#5 : vectype, vvunop#1 : vvunop, vectype : vectype, vvunop : vvunop}(`VVUNOP`_instr{vectype#5, vvunop#1}(vectype, vvunop)) = $free_vectype(vectype) -[check_dims] vectype vectype#7 vvbinop vvbinop#1 -[visit_exp `VVBINOP`_instr{vectype#7, vvbinop#1}(vectype, vvbinop)] -[visit_exp vectype#7] -[visit_id vectype#7] -[visit_exp vvbinop#1] -[visit_id vvbinop#1] + def $free_instr{vectype : vectype, vvunop : vvunop}(`VVUNOP`_instr(vectype, vvunop)) = $free_vectype(vectype) +[check_dims] vectype vvbinop +[visit_exp `VVBINOP`_instr(vectype, vvbinop)] [visit_exp (vectype, vvbinop)] [visit_exp vectype] [visit_id vectype] @@ -15639,13 +15162,9 @@ DecD free_expr(expr : expr) : free [visit_id vectype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype#7 : vectype, vvbinop#1 : vvbinop, vectype : vectype, vvbinop : vvbinop}(`VVBINOP`_instr{vectype#7, vvbinop#1}(vectype, vvbinop)) = $free_vectype(vectype) -[check_dims] vectype vectype#9 vvternop vvternop#1 -[visit_exp `VVTERNOP`_instr{vectype#9, vvternop#1}(vectype, vvternop)] -[visit_exp vectype#9] -[visit_id vectype#9] -[visit_exp vvternop#1] -[visit_id vvternop#1] + def $free_instr{vectype : vectype, vvbinop : vvbinop}(`VVBINOP`_instr(vectype, vvbinop)) = $free_vectype(vectype) +[check_dims] vectype vvternop +[visit_exp `VVTERNOP`_instr(vectype, vvternop)] [visit_exp (vectype, vvternop)] [visit_exp vectype] [visit_id vectype] @@ -15656,13 +15175,9 @@ DecD free_expr(expr : expr) : free [visit_id vectype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype#9 : vectype, vvternop#1 : vvternop, vectype : vectype, vvternop : vvternop}(`VVTERNOP`_instr{vectype#9, vvternop#1}(vectype, vvternop)) = $free_vectype(vectype) -[check_dims] vectype vectype#11 vvtestop vvtestop#1 -[visit_exp `VVTESTOP`_instr{vectype#11, vvtestop#1}(vectype, vvtestop)] -[visit_exp vectype#11] -[visit_id vectype#11] -[visit_exp vvtestop#1] -[visit_id vvtestop#1] + def $free_instr{vectype : vectype, vvternop : vvternop}(`VVTERNOP`_instr(vectype, vvternop)) = $free_vectype(vectype) +[check_dims] vectype vvtestop +[visit_exp `VVTESTOP`_instr(vectype, vvtestop)] [visit_exp (vectype, vvtestop)] [visit_exp vectype] [visit_id vectype] @@ -15673,11 +15188,9 @@ DecD free_expr(expr : expr) : free [visit_id vectype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype#11 : vectype, vvtestop#1 : vvtestop, vectype : vectype, vvtestop : vvtestop}(`VVTESTOP`_instr{vectype#11, vvtestop#1}(vectype, vvtestop)) = $free_vectype(vectype) -[check_dims] shape shape#153 vunop -[visit_exp `VUNOP`_instr{shape#153}(shape, vunop)] -[visit_exp shape#153] -[visit_id shape#153] + def $free_instr{vectype : vectype, vvtestop : vvtestop}(`VVTESTOP`_instr(vectype, vvtestop)) = $free_vectype(vectype) +[check_dims] shape vunop +[visit_exp `VUNOP`_instr(shape, vunop)] [visit_exp (shape, vunop)] [visit_exp shape] [visit_id shape] @@ -15688,11 +15201,9 @@ DecD free_expr(expr : expr) : free [visit_id shape] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape#153 : shape, shape : shape, vunop : vunop_(shape)}(`VUNOP`_instr{shape#153}(shape, vunop)) = $free_shape(shape) -[check_dims] shape shape#155 vbinop -[visit_exp `VBINOP`_instr{shape#155}(shape, vbinop)] -[visit_exp shape#155] -[visit_id shape#155] + def $free_instr{shape : shape, vunop : vunop_(shape)}(`VUNOP`_instr(shape, vunop)) = $free_shape(shape) +[check_dims] shape vbinop +[visit_exp `VBINOP`_instr(shape, vbinop)] [visit_exp (shape, vbinop)] [visit_exp shape] [visit_id shape] @@ -15703,11 +15214,9 @@ DecD free_expr(expr : expr) : free [visit_id shape] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape#155 : shape, shape : shape, vbinop : vbinop_(shape)}(`VBINOP`_instr{shape#155}(shape, vbinop)) = $free_shape(shape) -[check_dims] shape shape#157 vternop -[visit_exp `VTERNOP`_instr{shape#157}(shape, vternop)] -[visit_exp shape#157] -[visit_id shape#157] + def $free_instr{shape : shape, vbinop : vbinop_(shape)}(`VBINOP`_instr(shape, vbinop)) = $free_shape(shape) +[check_dims] shape vternop +[visit_exp `VTERNOP`_instr(shape, vternop)] [visit_exp (shape, vternop)] [visit_exp shape] [visit_id shape] @@ -15718,11 +15227,9 @@ DecD free_expr(expr : expr) : free [visit_id shape] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape#157 : shape, shape : shape, vternop : vternop_(shape)}(`VTERNOP`_instr{shape#157}(shape, vternop)) = $free_shape(shape) -[check_dims] shape shape#159 vtestop -[visit_exp `VTESTOP`_instr{shape#159}(shape, vtestop)] -[visit_exp shape#159] -[visit_id shape#159] + def $free_instr{shape : shape, vternop : vternop_(shape)}(`VTERNOP`_instr(shape, vternop)) = $free_shape(shape) +[check_dims] shape vtestop +[visit_exp `VTESTOP`_instr(shape, vtestop)] [visit_exp (shape, vtestop)] [visit_exp shape] [visit_id shape] @@ -15733,11 +15240,9 @@ DecD free_expr(expr : expr) : free [visit_id shape] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape#159 : shape, shape : shape, vtestop : vtestop_(shape)}(`VTESTOP`_instr{shape#159}(shape, vtestop)) = $free_shape(shape) -[check_dims] shape shape#161 vrelop -[visit_exp `VRELOP`_instr{shape#161}(shape, vrelop)] -[visit_exp shape#161] -[visit_id shape#161] + def $free_instr{shape : shape, vtestop : vtestop_(shape)}(`VTESTOP`_instr(shape, vtestop)) = $free_shape(shape) +[check_dims] shape vrelop +[visit_exp `VRELOP`_instr(shape, vrelop)] [visit_exp (shape, vrelop)] [visit_exp shape] [visit_id shape] @@ -15748,76 +15253,52 @@ DecD free_expr(expr : expr) : free [visit_id shape] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape#161 : shape, shape : shape, vrelop : vrelop_(shape)}(`VRELOP`_instr{shape#161}(shape, vrelop)) = $free_shape(shape) -[check_dims] Jnn#48 ishape ishape#1 shape#169 vshiftop -[visit_exp `VSHIFTOP`_instr{ishape#1}(ishape, vshiftop)] -[visit_exp ishape#1] -[visit_id ishape#1] + def $free_instr{shape : shape, vrelop : vrelop_(shape)}(`VRELOP`_instr(shape, vrelop)) = $free_shape(shape) +[check_dims] ishape vshiftop +[visit_exp `VSHIFTOP`_instr(ishape, vshiftop)] [visit_exp (ishape, vshiftop)] [visit_exp ishape] [visit_id ishape] [visit_exp vshiftop] [visit_id vshiftop] -[visit_exp $free_shape(ishape!`%`_ishape{shape#169, Jnn#48}.0)] -[visit_exp ishape!`%`_ishape{shape#169, Jnn#48}.0] -[visit_exp ishape!`%`_ishape{shape#169, Jnn#48}] +[visit_exp $free_shape(ishape!`%`_ishape.0)] +[visit_exp ishape!`%`_ishape.0] +[visit_exp ishape!`%`_ishape] [visit_exp ishape] [visit_id ishape] not free -[visit_exp shape#169] -[visit_id shape#169] -[visit_exp Jnn#48] -[visit_id Jnn#48] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{ishape#1 : ishape, ishape : ishape, vshiftop : vshiftop_(ishape), shape#169 : shape, Jnn#48 : Jnn}(`VSHIFTOP`_instr{ishape#1}(ishape, vshiftop)) = $free_shape(ishape!`%`_ishape{shape#169, Jnn#48}.0) -[check_dims] Jnn#51 ishape ishape#3 shape#177 -[visit_exp `VBITMASK`_instr{ishape#3}(ishape)] -[visit_exp ishape#3] -[visit_id ishape#3] + def $free_instr{ishape : ishape, vshiftop : vshiftop_(ishape)}(`VSHIFTOP`_instr(ishape, vshiftop)) = $free_shape(ishape!`%`_ishape.0) +[check_dims] ishape +[visit_exp `VBITMASK`_instr(ishape)] [visit_exp (ishape)] [visit_exp ishape] [visit_id ishape] -[visit_exp $free_shape(ishape!`%`_ishape{shape#177, Jnn#51}.0)] -[visit_exp ishape!`%`_ishape{shape#177, Jnn#51}.0] -[visit_exp ishape!`%`_ishape{shape#177, Jnn#51}] +[visit_exp $free_shape(ishape!`%`_ishape.0)] +[visit_exp ishape!`%`_ishape.0] +[visit_exp ishape!`%`_ishape] [visit_exp ishape] [visit_id ishape] not free -[visit_exp shape#177] -[visit_id shape#177] -[visit_exp Jnn#51] -[visit_id Jnn#51] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{ishape#3 : ishape, ishape : ishape, shape#177 : shape, Jnn#51 : Jnn}(`VBITMASK`_instr{ishape#3}(ishape)) = $free_shape(ishape!`%`_ishape{shape#177, Jnn#51}.0) -[check_dims] bshape bshape#1 shape#185 vswizzlop -[visit_exp `VSWIZZLOP`_instr{bshape#1}(bshape, vswizzlop)] -[visit_exp bshape#1] -[visit_id bshape#1] + def $free_instr{ishape : ishape}(`VBITMASK`_instr(ishape)) = $free_shape(ishape!`%`_ishape.0) +[check_dims] bshape vswizzlop +[visit_exp `VSWIZZLOP`_instr(bshape, vswizzlop)] [visit_exp (bshape, vswizzlop)] [visit_exp bshape] [visit_id bshape] [visit_exp vswizzlop] [visit_id vswizzlop] -[visit_exp $free_shape(bshape!`%`_bshape{shape#185}.0)] -[visit_exp bshape!`%`_bshape{shape#185}.0] -[visit_exp bshape!`%`_bshape{shape#185}] +[visit_exp $free_shape(bshape!`%`_bshape.0)] +[visit_exp bshape!`%`_bshape.0] +[visit_exp bshape!`%`_bshape] [visit_exp bshape] [visit_id bshape] not free -[visit_exp shape#185] -[visit_id shape#185] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{bshape#1 : bshape, bshape : bshape, vswizzlop : vswizzlop_(bshape), shape#185 : shape}(`VSWIZZLOP`_instr{bshape#1}(bshape, vswizzlop)) = $free_shape(bshape!`%`_bshape{shape#185}.0) -[check_dims] bshape bshape#3 i#1902 laneidx laneidx*#1 shape#187 shape#194 -[visit_exp `VSHUFFLE`_instr{bshape#3, `laneidx*#1`, i#1902, shape#187}(bshape, laneidx*{laneidx <- `laneidx*`})] -[visit_exp bshape#3] -[visit_id bshape#3] -[visit_exp `laneidx*#1`] -[visit_id laneidx*#1] -[visit_exp i#1902] -[visit_id i#1902] -[visit_exp shape#187] -[visit_id shape#187] + def $free_instr{bshape : bshape, vswizzlop : vswizzlop_(bshape)}(`VSWIZZLOP`_instr(bshape, vswizzlop)) = $free_shape(bshape!`%`_bshape.0) +[check_dims] bshape laneidx +[visit_exp `VSHUFFLE`_instr(bshape, laneidx*{laneidx <- `laneidx*`})] [visit_exp (bshape, laneidx*{laneidx <- `laneidx*`})] [visit_exp bshape] [visit_id bshape] @@ -15830,22 +15311,16 @@ DecD free_expr(expr : expr) : free [visit_exp `laneidx*`] [visit_id laneidx*] no dims [visit_id laneidx*] -[visit_exp $free_shape(bshape!`%`_bshape{shape#194}.0)] -[visit_exp bshape!`%`_bshape{shape#194}.0] -[visit_exp bshape!`%`_bshape{shape#194}] +[visit_exp $free_shape(bshape!`%`_bshape.0)] +[visit_exp bshape!`%`_bshape.0] +[visit_exp bshape!`%`_bshape] [visit_exp bshape] [visit_id bshape] not free -[visit_exp shape#194] -[visit_id shape#194] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{bshape#3 : bshape, `laneidx*#1` : laneidx*, i#1902 : nat, shape#187 : shape, bshape : bshape, `laneidx*` : laneidx*, shape#194 : shape}(`VSHUFFLE`_instr{bshape#3, `laneidx*#1`, i#1902, shape#187}(bshape, laneidx*{laneidx <- `laneidx*`})) = $free_shape(bshape!`%`_bshape{shape#194}.0) -[check_dims] Jnn#56 Jnn#57 ishape_1 ishape_1#1 ishape_2 ishape_2#1 shape#208 shape#210 vextunop -[visit_exp `VEXTUNOP`_instr{ishape_1#1, ishape_2#1}(ishape_1, ishape_2, vextunop)] -[visit_exp ishape_1#1] -[visit_id ishape_1#1] -[visit_exp ishape_2#1] -[visit_id ishape_2#1] + def $free_instr{bshape : bshape, `laneidx*` : laneidx*}(`VSHUFFLE`_instr(bshape, laneidx*{laneidx <- `laneidx*`})) = $free_shape(bshape!`%`_bshape.0) +[check_dims] ishape_1 ishape_2 vextunop +[visit_exp `VEXTUNOP`_instr(ishape_1, ishape_2, vextunop)] [visit_exp (ishape_1, ishape_2, vextunop)] [visit_exp ishape_1] [visit_id ishape_1] @@ -15853,34 +15328,22 @@ DecD free_expr(expr : expr) : free [visit_id ishape_2] [visit_exp vextunop] [visit_id vextunop] -[visit_exp $free_shape(ishape_1!`%`_ishape{shape#208, Jnn#56}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#210, Jnn#57}.0)] -[visit_exp $free_shape(ishape_1!`%`_ishape{shape#208, Jnn#56}.0)] -[visit_exp ishape_1!`%`_ishape{shape#208, Jnn#56}.0] -[visit_exp ishape_1!`%`_ishape{shape#208, Jnn#56}] +[visit_exp $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0)] +[visit_exp $free_shape(ishape_1!`%`_ishape.0)] +[visit_exp ishape_1!`%`_ishape.0] +[visit_exp ishape_1!`%`_ishape] [visit_exp ishape_1] [visit_id ishape_1] not free -[visit_exp shape#208] -[visit_id shape#208] -[visit_exp Jnn#56] -[visit_id Jnn#56] -[visit_exp $free_shape(ishape_2!`%`_ishape{shape#210, Jnn#57}.0)] -[visit_exp ishape_2!`%`_ishape{shape#210, Jnn#57}.0] -[visit_exp ishape_2!`%`_ishape{shape#210, Jnn#57}] +[visit_exp $free_shape(ishape_2!`%`_ishape.0)] +[visit_exp ishape_2!`%`_ishape.0] +[visit_exp ishape_2!`%`_ishape] [visit_exp ishape_2] [visit_id ishape_2] not free -[visit_exp shape#210] -[visit_id shape#210] -[visit_exp Jnn#57] -[visit_id Jnn#57] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{ishape_1#1 : ishape, ishape_2#1 : ishape, ishape_1 : ishape, ishape_2 : ishape, vextunop : vextunop__(ishape_2, ishape_1), shape#208 : shape, Jnn#56 : Jnn, shape#210 : shape, Jnn#57 : Jnn}(`VEXTUNOP`_instr{ishape_1#1, ishape_2#1}(ishape_1, ishape_2, vextunop)) = $free_shape(ishape_1!`%`_ishape{shape#208, Jnn#56}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#210, Jnn#57}.0) -[check_dims] Jnn#62 Jnn#63 ishape_1 ishape_1#3 ishape_2 ishape_2#3 shape#224 shape#226 vextbinop -[visit_exp `VEXTBINOP`_instr{ishape_1#3, ishape_2#3}(ishape_1, ishape_2, vextbinop)] -[visit_exp ishape_1#3] -[visit_id ishape_1#3] -[visit_exp ishape_2#3] -[visit_id ishape_2#3] + def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextunop : vextunop__(ishape_2, ishape_1)}(`VEXTUNOP`_instr(ishape_1, ishape_2, vextunop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) +[check_dims] ishape_1 ishape_2 vextbinop +[visit_exp `VEXTBINOP`_instr(ishape_1, ishape_2, vextbinop)] [visit_exp (ishape_1, ishape_2, vextbinop)] [visit_exp ishape_1] [visit_id ishape_1] @@ -15888,34 +15351,22 @@ DecD free_expr(expr : expr) : free [visit_id ishape_2] [visit_exp vextbinop] [visit_id vextbinop] -[visit_exp $free_shape(ishape_1!`%`_ishape{shape#224, Jnn#62}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#226, Jnn#63}.0)] -[visit_exp $free_shape(ishape_1!`%`_ishape{shape#224, Jnn#62}.0)] -[visit_exp ishape_1!`%`_ishape{shape#224, Jnn#62}.0] -[visit_exp ishape_1!`%`_ishape{shape#224, Jnn#62}] +[visit_exp $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0)] +[visit_exp $free_shape(ishape_1!`%`_ishape.0)] +[visit_exp ishape_1!`%`_ishape.0] +[visit_exp ishape_1!`%`_ishape] [visit_exp ishape_1] [visit_id ishape_1] not free -[visit_exp shape#224] -[visit_id shape#224] -[visit_exp Jnn#62] -[visit_id Jnn#62] -[visit_exp $free_shape(ishape_2!`%`_ishape{shape#226, Jnn#63}.0)] -[visit_exp ishape_2!`%`_ishape{shape#226, Jnn#63}.0] -[visit_exp ishape_2!`%`_ishape{shape#226, Jnn#63}] +[visit_exp $free_shape(ishape_2!`%`_ishape.0)] +[visit_exp ishape_2!`%`_ishape.0] +[visit_exp ishape_2!`%`_ishape] [visit_exp ishape_2] [visit_id ishape_2] not free -[visit_exp shape#226] -[visit_id shape#226] -[visit_exp Jnn#63] -[visit_id Jnn#63] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{ishape_1#3 : ishape, ishape_2#3 : ishape, ishape_1 : ishape, ishape_2 : ishape, vextbinop : vextbinop__(ishape_2, ishape_1), shape#224 : shape, Jnn#62 : Jnn, shape#226 : shape, Jnn#63 : Jnn}(`VEXTBINOP`_instr{ishape_1#3, ishape_2#3}(ishape_1, ishape_2, vextbinop)) = $free_shape(ishape_1!`%`_ishape{shape#224, Jnn#62}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#226, Jnn#63}.0) -[check_dims] Jnn#68 Jnn#69 ishape_1 ishape_1#5 ishape_2 ishape_2#5 shape#240 shape#242 vextternop -[visit_exp `VEXTTERNOP`_instr{ishape_1#5, ishape_2#5}(ishape_1, ishape_2, vextternop)] -[visit_exp ishape_1#5] -[visit_id ishape_1#5] -[visit_exp ishape_2#5] -[visit_id ishape_2#5] + def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextbinop : vextbinop__(ishape_2, ishape_1)}(`VEXTBINOP`_instr(ishape_1, ishape_2, vextbinop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) +[check_dims] ishape_1 ishape_2 vextternop +[visit_exp `VEXTTERNOP`_instr(ishape_1, ishape_2, vextternop)] [visit_exp (ishape_1, ishape_2, vextternop)] [visit_exp ishape_1] [visit_id ishape_1] @@ -15923,48 +15374,22 @@ DecD free_expr(expr : expr) : free [visit_id ishape_2] [visit_exp vextternop] [visit_id vextternop] -[visit_exp $free_shape(ishape_1!`%`_ishape{shape#240, Jnn#68}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#242, Jnn#69}.0)] -[visit_exp $free_shape(ishape_1!`%`_ishape{shape#240, Jnn#68}.0)] -[visit_exp ishape_1!`%`_ishape{shape#240, Jnn#68}.0] -[visit_exp ishape_1!`%`_ishape{shape#240, Jnn#68}] +[visit_exp $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0)] +[visit_exp $free_shape(ishape_1!`%`_ishape.0)] +[visit_exp ishape_1!`%`_ishape.0] +[visit_exp ishape_1!`%`_ishape] [visit_exp ishape_1] [visit_id ishape_1] not free -[visit_exp shape#240] -[visit_id shape#240] -[visit_exp Jnn#68] -[visit_id Jnn#68] -[visit_exp $free_shape(ishape_2!`%`_ishape{shape#242, Jnn#69}.0)] -[visit_exp ishape_2!`%`_ishape{shape#242, Jnn#69}.0] -[visit_exp ishape_2!`%`_ishape{shape#242, Jnn#69}] +[visit_exp $free_shape(ishape_2!`%`_ishape.0)] +[visit_exp ishape_2!`%`_ishape.0] +[visit_exp ishape_2!`%`_ishape] [visit_exp ishape_2] [visit_id ishape_2] not free -[visit_exp shape#242] -[visit_id shape#242] -[visit_exp Jnn#69] -[visit_id Jnn#69] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{ishape_1#5 : ishape, ishape_2#5 : ishape, ishape_1 : ishape, ishape_2 : ishape, vextternop : vextternop__(ishape_2, ishape_1), shape#240 : shape, Jnn#68 : Jnn, shape#242 : shape, Jnn#69 : Jnn}(`VEXTTERNOP`_instr{ishape_1#5, ishape_2#5}(ishape_1, ishape_2, vextternop)) = $free_shape(ishape_1!`%`_ishape{shape#240, Jnn#68}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#242, Jnn#69}.0) -[check_dims] Jnn#70 Jnn#71 Jnn#72 Jnn#77 Jnn#78 ishape_1 ishape_1#7 ishape_2 ishape_2#7 shape#244 shape#245 shape#246 shape#259 shape#261 sx sx#1 -[visit_exp `VNARROW`_instr{ishape_1#7, ishape_2#7, sx#1, shape#244, Jnn#70, shape#245, Jnn#71, shape#246, Jnn#72}(ishape_1, ishape_2, sx)] -[visit_exp ishape_1#7] -[visit_id ishape_1#7] -[visit_exp ishape_2#7] -[visit_id ishape_2#7] -[visit_exp sx#1] -[visit_id sx#1] -[visit_exp shape#244] -[visit_id shape#244] -[visit_exp Jnn#70] -[visit_id Jnn#70] -[visit_exp shape#245] -[visit_id shape#245] -[visit_exp Jnn#71] -[visit_id Jnn#71] -[visit_exp shape#246] -[visit_id shape#246] -[visit_exp Jnn#72] -[visit_id Jnn#72] + def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextternop : vextternop__(ishape_2, ishape_1)}(`VEXTTERNOP`_instr(ishape_1, ishape_2, vextternop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) +[check_dims] ishape_1 ishape_2 sx +[visit_exp `VNARROW`_instr(ishape_1, ishape_2, sx)] [visit_exp (ishape_1, ishape_2, sx)] [visit_exp ishape_1] [visit_id ishape_1] @@ -15972,34 +15397,22 @@ DecD free_expr(expr : expr) : free [visit_id ishape_2] [visit_exp sx] [visit_id sx] -[visit_exp $free_shape(ishape_1!`%`_ishape{shape#259, Jnn#77}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#261, Jnn#78}.0)] -[visit_exp $free_shape(ishape_1!`%`_ishape{shape#259, Jnn#77}.0)] -[visit_exp ishape_1!`%`_ishape{shape#259, Jnn#77}.0] -[visit_exp ishape_1!`%`_ishape{shape#259, Jnn#77}] +[visit_exp $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0)] +[visit_exp $free_shape(ishape_1!`%`_ishape.0)] +[visit_exp ishape_1!`%`_ishape.0] +[visit_exp ishape_1!`%`_ishape] [visit_exp ishape_1] [visit_id ishape_1] not free -[visit_exp shape#259] -[visit_id shape#259] -[visit_exp Jnn#77] -[visit_id Jnn#77] -[visit_exp $free_shape(ishape_2!`%`_ishape{shape#261, Jnn#78}.0)] -[visit_exp ishape_2!`%`_ishape{shape#261, Jnn#78}.0] -[visit_exp ishape_2!`%`_ishape{shape#261, Jnn#78}] +[visit_exp $free_shape(ishape_2!`%`_ishape.0)] +[visit_exp ishape_2!`%`_ishape.0] +[visit_exp ishape_2!`%`_ishape] [visit_exp ishape_2] [visit_id ishape_2] not free -[visit_exp shape#261] -[visit_id shape#261] -[visit_exp Jnn#78] -[visit_id Jnn#78] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{ishape_1#7 : ishape, ishape_2#7 : ishape, sx#1 : sx, shape#244 : shape, Jnn#70 : Jnn, shape#245 : shape, Jnn#71 : Jnn, shape#246 : shape, Jnn#72 : Jnn, ishape_1 : ishape, ishape_2 : ishape, sx : sx, shape#259 : shape, Jnn#77 : Jnn, shape#261 : shape, Jnn#78 : Jnn}(`VNARROW`_instr{ishape_1#7, ishape_2#7, sx#1, shape#244, Jnn#70, shape#245, Jnn#71, shape#246, Jnn#72}(ishape_1, ishape_2, sx)) = $free_shape(ishape_1!`%`_ishape{shape#259, Jnn#77}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#261, Jnn#78}.0) -[check_dims] shape_1 shape_1#1 shape_2 shape_2#1 vcvtop -[visit_exp `VCVTOP`_instr{shape_1#1, shape_2#1}(shape_1, shape_2, vcvtop)] -[visit_exp shape_1#1] -[visit_id shape_1#1] -[visit_exp shape_2#1] -[visit_id shape_2#1] + def $free_instr{ishape_1 : ishape, ishape_2 : ishape, sx : sx}(`VNARROW`_instr(ishape_1, ishape_2, sx)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) +[check_dims] shape_1 shape_2 vcvtop +[visit_exp `VCVTOP`_instr(shape_1, shape_2, vcvtop)] [visit_exp (shape_1, shape_2, vcvtop)] [visit_exp shape_1] [visit_id shape_1] @@ -16016,11 +15429,9 @@ DecD free_expr(expr : expr) : free [visit_id shape_2] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape_1#1 : shape, shape_2#1 : shape, shape_1 : shape, shape_2 : shape, vcvtop : vcvtop__(shape_2, shape_1)}(`VCVTOP`_instr{shape_1#1, shape_2#1}(shape_1, shape_2, vcvtop)) = $free_shape(shape_1) +++ $free_shape(shape_2) -[check_dims] shape shape#263 -[visit_exp `VSPLAT`_instr{shape#263}(shape)] -[visit_exp shape#263] -[visit_id shape#263] + def $free_instr{shape_1 : shape, shape_2 : shape, vcvtop : vcvtop__(shape_2, shape_1)}(`VCVTOP`_instr(shape_1, shape_2, vcvtop)) = $free_shape(shape_1) +++ $free_shape(shape_2) +[check_dims] shape +[visit_exp `VSPLAT`_instr(shape)] [visit_exp (shape)] [visit_exp shape] [visit_id shape] @@ -16029,15 +15440,9 @@ DecD free_expr(expr : expr) : free [visit_id shape] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape#263 : shape, shape : shape}(`VSPLAT`_instr{shape#263}(shape)) = $free_shape(shape) -[check_dims] laneidx laneidx#1 shape shape#265 sx sx?#1 -[visit_exp `VEXTRACT_LANE`_instr{shape#265, `sx?#1`, laneidx#1}(shape, sx?{sx <- `sx?`}, laneidx)] -[visit_exp shape#265] -[visit_id shape#265] -[visit_exp `sx?#1`] -[visit_id sx?#1] -[visit_exp laneidx#1] -[visit_id laneidx#1] + def $free_instr{shape : shape}(`VSPLAT`_instr(shape)) = $free_shape(shape) +[check_dims] laneidx shape sx +[visit_exp `VEXTRACT_LANE`_instr(shape, sx?{sx <- `sx?`}, laneidx)] [visit_exp (shape, sx?{sx <- `sx?`}, laneidx)] [visit_exp shape] [visit_id shape] @@ -16057,13 +15462,9 @@ DecD free_expr(expr : expr) : free [visit_id shape] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape#265 : shape, `sx?#1` : sx?, laneidx#1 : laneidx, shape : shape, `sx?` : sx?, laneidx : laneidx}(`VEXTRACT_LANE`_instr{shape#265, `sx?#1`, laneidx#1}(shape, sx?{sx <- `sx?`}, laneidx)) = $free_shape(shape) -[check_dims] laneidx laneidx#3 shape shape#267 -[visit_exp `VREPLACE_LANE`_instr{shape#267, laneidx#3}(shape, laneidx)] -[visit_exp shape#267] -[visit_id shape#267] -[visit_exp laneidx#3] -[visit_id laneidx#3] + def $free_instr{shape : shape, `sx?` : sx?, laneidx : laneidx}(`VEXTRACT_LANE`_instr(shape, sx?{sx <- `sx?`}, laneidx)) = $free_shape(shape) +[check_dims] laneidx shape +[visit_exp `VREPLACE_LANE`_instr(shape, laneidx)] [visit_exp (shape, laneidx)] [visit_exp shape] [visit_id shape] @@ -16074,11 +15475,9 @@ DecD free_expr(expr : expr) : free [visit_id shape] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape#267 : shape, laneidx#3 : laneidx, shape : shape, laneidx : laneidx}(`VREPLACE_LANE`_instr{shape#267, laneidx#3}(shape, laneidx)) = $free_shape(shape) -[check_dims] heaptype heaptype#373 -[visit_exp `REF.NULL`_instr{heaptype#373}(heaptype)] -[visit_exp heaptype#373] -[visit_id heaptype#373] + def $free_instr{shape : shape, laneidx : laneidx}(`VREPLACE_LANE`_instr(shape, laneidx)) = $free_shape(shape) +[check_dims] heaptype +[visit_exp `REF.NULL`_instr(heaptype)] [visit_exp (heaptype)] [visit_exp heaptype] [visit_id heaptype] @@ -16087,113 +15486,57 @@ DecD free_expr(expr : expr) : free [visit_id heaptype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{heaptype#373 : heaptype, heaptype : heaptype}(`REF.NULL`_instr{heaptype#373}(heaptype)) = $free_heaptype(heaptype) -[check_dims] dataidx*#24 elemidx*#24 funcidx*#24 globalidx*#24 labelidx*#26 localidx*#24 memidx*#24 tableidx*#24 typeidx*#24 + def $free_instr{heaptype : heaptype}(`REF.NULL`_instr(heaptype)) = $free_heaptype(heaptype) +[check_dims] [visit_exp `REF.IS_NULL`_instr] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#24`} [], `FUNCS`{`funcidx*#24`} [], `GLOBALS`{`globalidx*#24`} [], `TABLES`{`tableidx*#24`} [], `MEMS`{`memidx*#24`} [], `ELEMS`{`elemidx*#24`} [], `DATAS`{`dataidx*#24`} [], `LOCALS`{`localidx*#24`} [], `LABELS`{`labelidx*#26`} []}] -[visit_exp `typeidx*#24`] -[visit_id typeidx*#24] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#24`] -[visit_id funcidx*#24] [visit_exp []] -[visit_exp `globalidx*#24`] -[visit_id globalidx*#24] [visit_exp []] -[visit_exp `tableidx*#24`] -[visit_id tableidx*#24] [visit_exp []] -[visit_exp `memidx*#24`] -[visit_id memidx*#24] [visit_exp []] -[visit_exp `elemidx*#24`] -[visit_id elemidx*#24] [visit_exp []] -[visit_exp `dataidx*#24`] -[visit_id dataidx*#24] [visit_exp []] -[visit_exp `localidx*#24`] -[visit_id localidx*#24] [visit_exp []] -[visit_exp `labelidx*#26`] -[visit_id labelidx*#26] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`typeidx*#24` : typeidx*, `funcidx*#24` : funcidx*, `globalidx*#24` : globalidx*, `tableidx*#24` : tableidx*, `memidx*#24` : memidx*, `elemidx*#24` : elemidx*, `dataidx*#24` : dataidx*, `localidx*#24` : localidx*, `labelidx*#26` : labelidx*}(`REF.IS_NULL`_instr) = {`TYPES`{`typeidx*#24`} [], `FUNCS`{`funcidx*#24`} [], `GLOBALS`{`globalidx*#24`} [], `TABLES`{`tableidx*#24`} [], `MEMS`{`memidx*#24`} [], `ELEMS`{`elemidx*#24`} [], `DATAS`{`dataidx*#24`} [], `LOCALS`{`localidx*#24`} [], `LABELS`{`labelidx*#26`} []} -[check_dims] dataidx*#25 elemidx*#25 funcidx*#25 globalidx*#25 labelidx*#27 localidx*#25 memidx*#25 tableidx*#25 typeidx*#25 + def $free_instr(`REF.IS_NULL`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] [visit_exp `REF.AS_NON_NULL`_instr] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#25`} [], `FUNCS`{`funcidx*#25`} [], `GLOBALS`{`globalidx*#25`} [], `TABLES`{`tableidx*#25`} [], `MEMS`{`memidx*#25`} [], `ELEMS`{`elemidx*#25`} [], `DATAS`{`dataidx*#25`} [], `LOCALS`{`localidx*#25`} [], `LABELS`{`labelidx*#27`} []}] -[visit_exp `typeidx*#25`] -[visit_id typeidx*#25] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#25`] -[visit_id funcidx*#25] [visit_exp []] -[visit_exp `globalidx*#25`] -[visit_id globalidx*#25] [visit_exp []] -[visit_exp `tableidx*#25`] -[visit_id tableidx*#25] [visit_exp []] -[visit_exp `memidx*#25`] -[visit_id memidx*#25] [visit_exp []] -[visit_exp `elemidx*#25`] -[visit_id elemidx*#25] [visit_exp []] -[visit_exp `dataidx*#25`] -[visit_id dataidx*#25] [visit_exp []] -[visit_exp `localidx*#25`] -[visit_id localidx*#25] [visit_exp []] -[visit_exp `labelidx*#27`] -[visit_id labelidx*#27] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`typeidx*#25` : typeidx*, `funcidx*#25` : funcidx*, `globalidx*#25` : globalidx*, `tableidx*#25` : tableidx*, `memidx*#25` : memidx*, `elemidx*#25` : elemidx*, `dataidx*#25` : dataidx*, `localidx*#25` : localidx*, `labelidx*#27` : labelidx*}(`REF.AS_NON_NULL`_instr) = {`TYPES`{`typeidx*#25`} [], `FUNCS`{`funcidx*#25`} [], `GLOBALS`{`globalidx*#25`} [], `TABLES`{`tableidx*#25`} [], `MEMS`{`memidx*#25`} [], `ELEMS`{`elemidx*#25`} [], `DATAS`{`dataidx*#25`} [], `LOCALS`{`localidx*#25`} [], `LABELS`{`labelidx*#27`} []} -[check_dims] dataidx*#26 elemidx*#26 funcidx*#26 globalidx*#26 labelidx*#28 localidx*#26 memidx*#26 tableidx*#26 typeidx*#26 + def $free_instr(`REF.AS_NON_NULL`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] [visit_exp `REF.EQ`_instr] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#26`} [], `FUNCS`{`funcidx*#26`} [], `GLOBALS`{`globalidx*#26`} [], `TABLES`{`tableidx*#26`} [], `MEMS`{`memidx*#26`} [], `ELEMS`{`elemidx*#26`} [], `DATAS`{`dataidx*#26`} [], `LOCALS`{`localidx*#26`} [], `LABELS`{`labelidx*#28`} []}] -[visit_exp `typeidx*#26`] -[visit_id typeidx*#26] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#26`] -[visit_id funcidx*#26] [visit_exp []] -[visit_exp `globalidx*#26`] -[visit_id globalidx*#26] [visit_exp []] -[visit_exp `tableidx*#26`] -[visit_id tableidx*#26] [visit_exp []] -[visit_exp `memidx*#26`] -[visit_id memidx*#26] [visit_exp []] -[visit_exp `elemidx*#26`] -[visit_id elemidx*#26] [visit_exp []] -[visit_exp `dataidx*#26`] -[visit_id dataidx*#26] [visit_exp []] -[visit_exp `localidx*#26`] -[visit_id localidx*#26] [visit_exp []] -[visit_exp `labelidx*#28`] -[visit_id labelidx*#28] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`typeidx*#26` : typeidx*, `funcidx*#26` : funcidx*, `globalidx*#26` : globalidx*, `tableidx*#26` : tableidx*, `memidx*#26` : memidx*, `elemidx*#26` : elemidx*, `dataidx*#26` : dataidx*, `localidx*#26` : localidx*, `labelidx*#28` : labelidx*}(`REF.EQ`_instr) = {`TYPES`{`typeidx*#26`} [], `FUNCS`{`funcidx*#26`} [], `GLOBALS`{`globalidx*#26`} [], `TABLES`{`tableidx*#26`} [], `MEMS`{`memidx*#26`} [], `ELEMS`{`elemidx*#26`} [], `DATAS`{`dataidx*#26`} [], `LOCALS`{`localidx*#26`} [], `LABELS`{`labelidx*#28`} []} -[check_dims] reftype reftype#131 -[visit_exp `REF.TEST`_instr{reftype#131}(reftype)] -[visit_exp reftype#131] -[visit_id reftype#131] + def $free_instr(`REF.EQ`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] reftype +[visit_exp `REF.TEST`_instr(reftype)] [visit_exp (reftype)] [visit_exp reftype] [visit_id reftype] @@ -16202,11 +15545,9 @@ DecD free_expr(expr : expr) : free [visit_id reftype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{reftype#131 : reftype, reftype : reftype}(`REF.TEST`_instr{reftype#131}(reftype)) = $free_reftype(reftype) -[check_dims] reftype reftype#133 -[visit_exp `REF.CAST`_instr{reftype#133}(reftype)] -[visit_exp reftype#133] -[visit_id reftype#133] + def $free_instr{reftype : reftype}(`REF.TEST`_instr(reftype)) = $free_reftype(reftype) +[check_dims] reftype +[visit_exp `REF.CAST`_instr(reftype)] [visit_exp (reftype)] [visit_exp reftype] [visit_id reftype] @@ -16215,11 +15556,9 @@ DecD free_expr(expr : expr) : free [visit_id reftype] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{reftype#133 : reftype, reftype : reftype}(`REF.CAST`_instr{reftype#133}(reftype)) = $free_reftype(reftype) -[check_dims] funcidx funcidx#9 -[visit_exp `REF.FUNC`_instr{funcidx#9}(funcidx)] -[visit_exp funcidx#9] -[visit_id funcidx#9] + def $free_instr{reftype : reftype}(`REF.CAST`_instr(reftype)) = $free_reftype(reftype) +[check_dims] funcidx +[visit_exp `REF.FUNC`_instr(funcidx)] [visit_exp (funcidx)] [visit_exp funcidx] [visit_id funcidx] @@ -16228,121 +15567,61 @@ DecD free_expr(expr : expr) : free [visit_id funcidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{funcidx#9 : funcidx, funcidx : funcidx}(`REF.FUNC`_instr{funcidx#9}(funcidx)) = $free_funcidx(funcidx) -[check_dims] dataidx*#27 elemidx*#27 funcidx*#27 globalidx*#27 labelidx*#29 localidx*#27 memidx*#27 tableidx*#27 typeidx*#27 + def $free_instr{funcidx : funcidx}(`REF.FUNC`_instr(funcidx)) = $free_funcidx(funcidx) +[check_dims] [visit_exp `REF.I31`_instr] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#27`} [], `FUNCS`{`funcidx*#27`} [], `GLOBALS`{`globalidx*#27`} [], `TABLES`{`tableidx*#27`} [], `MEMS`{`memidx*#27`} [], `ELEMS`{`elemidx*#27`} [], `DATAS`{`dataidx*#27`} [], `LOCALS`{`localidx*#27`} [], `LABELS`{`labelidx*#29`} []}] -[visit_exp `typeidx*#27`] -[visit_id typeidx*#27] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#27`] -[visit_id funcidx*#27] [visit_exp []] -[visit_exp `globalidx*#27`] -[visit_id globalidx*#27] [visit_exp []] -[visit_exp `tableidx*#27`] -[visit_id tableidx*#27] [visit_exp []] -[visit_exp `memidx*#27`] -[visit_id memidx*#27] [visit_exp []] -[visit_exp `elemidx*#27`] -[visit_id elemidx*#27] [visit_exp []] -[visit_exp `dataidx*#27`] -[visit_id dataidx*#27] [visit_exp []] -[visit_exp `localidx*#27`] -[visit_id localidx*#27] [visit_exp []] -[visit_exp `labelidx*#29`] -[visit_id labelidx*#29] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`typeidx*#27` : typeidx*, `funcidx*#27` : funcidx*, `globalidx*#27` : globalidx*, `tableidx*#27` : tableidx*, `memidx*#27` : memidx*, `elemidx*#27` : elemidx*, `dataidx*#27` : dataidx*, `localidx*#27` : localidx*, `labelidx*#29` : labelidx*}(`REF.I31`_instr) = {`TYPES`{`typeidx*#27`} [], `FUNCS`{`funcidx*#27`} [], `GLOBALS`{`globalidx*#27`} [], `TABLES`{`tableidx*#27`} [], `MEMS`{`memidx*#27`} [], `ELEMS`{`elemidx*#27`} [], `DATAS`{`dataidx*#27`} [], `LOCALS`{`localidx*#27`} [], `LABELS`{`labelidx*#29`} []} -[check_dims] dataidx*#28 elemidx*#28 funcidx*#28 globalidx*#28 labelidx*#30 localidx*#28 memidx*#28 sx sx#3 tableidx*#28 typeidx*#28 -[visit_exp `I31.GET`_instr{sx#3}(sx)] -[visit_exp sx#3] -[visit_id sx#3] + def $free_instr(`REF.I31`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] sx +[visit_exp `I31.GET`_instr(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] -[visit_exp {`TYPES`{`typeidx*#28`} [], `FUNCS`{`funcidx*#28`} [], `GLOBALS`{`globalidx*#28`} [], `TABLES`{`tableidx*#28`} [], `MEMS`{`memidx*#28`} [], `ELEMS`{`elemidx*#28`} [], `DATAS`{`dataidx*#28`} [], `LOCALS`{`localidx*#28`} [], `LABELS`{`labelidx*#30`} []}] -[visit_exp `typeidx*#28`] -[visit_id typeidx*#28] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#28`] -[visit_id funcidx*#28] [visit_exp []] -[visit_exp `globalidx*#28`] -[visit_id globalidx*#28] [visit_exp []] -[visit_exp `tableidx*#28`] -[visit_id tableidx*#28] [visit_exp []] -[visit_exp `memidx*#28`] -[visit_id memidx*#28] [visit_exp []] -[visit_exp `elemidx*#28`] -[visit_id elemidx*#28] [visit_exp []] -[visit_exp `dataidx*#28`] -[visit_id dataidx*#28] [visit_exp []] -[visit_exp `localidx*#28`] -[visit_id localidx*#28] [visit_exp []] -[visit_exp `labelidx*#30`] -[visit_id labelidx*#30] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{sx#3 : sx, sx : sx, `typeidx*#28` : typeidx*, `funcidx*#28` : funcidx*, `globalidx*#28` : globalidx*, `tableidx*#28` : tableidx*, `memidx*#28` : memidx*, `elemidx*#28` : elemidx*, `dataidx*#28` : dataidx*, `localidx*#28` : localidx*, `labelidx*#30` : labelidx*}(`I31.GET`_instr{sx#3}(sx)) = {`TYPES`{`typeidx*#28`} [], `FUNCS`{`funcidx*#28`} [], `GLOBALS`{`globalidx*#28`} [], `TABLES`{`tableidx*#28`} [], `MEMS`{`memidx*#28`} [], `ELEMS`{`elemidx*#28`} [], `DATAS`{`dataidx*#28`} [], `LOCALS`{`localidx*#28`} [], `LABELS`{`labelidx*#30`} []} -[check_dims] dataidx*#29 elemidx*#29 funcidx*#29 globalidx*#29 labelidx*#31 localidx*#29 memidx*#29 tableidx*#29 typeidx typeidx#29 typeidx*#29 -[visit_exp `STRUCT.NEW`_instr{typeidx#29}(typeidx)] -[visit_exp typeidx#29] -[visit_id typeidx#29] + def $free_instr{sx : sx}(`I31.GET`_instr(sx)) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] typeidx +[visit_exp `STRUCT.NEW`_instr(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] -[visit_exp {`TYPES`{`typeidx*#29`} [], `FUNCS`{`funcidx*#29`} [], `GLOBALS`{`globalidx*#29`} [], `TABLES`{`tableidx*#29`} [], `MEMS`{`memidx*#29`} [], `ELEMS`{`elemidx*#29`} [], `DATAS`{`dataidx*#29`} [], `LOCALS`{`localidx*#29`} [], `LABELS`{`labelidx*#31`} []}] -[visit_exp `typeidx*#29`] -[visit_id typeidx*#29] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#29`] -[visit_id funcidx*#29] [visit_exp []] -[visit_exp `globalidx*#29`] -[visit_id globalidx*#29] [visit_exp []] -[visit_exp `tableidx*#29`] -[visit_id tableidx*#29] [visit_exp []] -[visit_exp `memidx*#29`] -[visit_id memidx*#29] [visit_exp []] -[visit_exp `elemidx*#29`] -[visit_id elemidx*#29] [visit_exp []] -[visit_exp `dataidx*#29`] -[visit_id dataidx*#29] [visit_exp []] -[visit_exp `localidx*#29`] -[visit_id localidx*#29] [visit_exp []] -[visit_exp `labelidx*#31`] -[visit_id labelidx*#31] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx#29 : typeidx, typeidx : typeidx, `typeidx*#29` : typeidx*, `funcidx*#29` : funcidx*, `globalidx*#29` : globalidx*, `tableidx*#29` : tableidx*, `memidx*#29` : memidx*, `elemidx*#29` : elemidx*, `dataidx*#29` : dataidx*, `localidx*#29` : localidx*, `labelidx*#31` : labelidx*}(`STRUCT.NEW`_instr{typeidx#29}(typeidx)) = {`TYPES`{`typeidx*#29`} [], `FUNCS`{`funcidx*#29`} [], `GLOBALS`{`globalidx*#29`} [], `TABLES`{`tableidx*#29`} [], `MEMS`{`memidx*#29`} [], `ELEMS`{`elemidx*#29`} [], `DATAS`{`dataidx*#29`} [], `LOCALS`{`localidx*#29`} [], `LABELS`{`labelidx*#31`} []} -[check_dims] typeidx typeidx#31 -[visit_exp `STRUCT.NEW_DEFAULT`_instr{typeidx#31}(typeidx)] -[visit_exp typeidx#31] -[visit_id typeidx#31] + def $free_instr{typeidx : typeidx}(`STRUCT.NEW`_instr(typeidx)) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] typeidx +[visit_exp `STRUCT.NEW_DEFAULT`_instr(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] @@ -16351,15 +15630,9 @@ DecD free_expr(expr : expr) : free [visit_id typeidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx#31 : typeidx, typeidx : typeidx}(`STRUCT.NEW_DEFAULT`_instr{typeidx#31}(typeidx)) = $free_typeidx(typeidx) -[check_dims] sx sx?#3 typeidx typeidx#33 u32 u32#2 -[visit_exp `STRUCT.GET`_instr{`sx?#3`, typeidx#33, u32#2}(sx?{sx <- `sx?`}, typeidx, u32)] -[visit_exp `sx?#3`] -[visit_id sx?#3] -[visit_exp typeidx#33] -[visit_id typeidx#33] -[visit_exp u32#2] -[visit_id u32#2] + def $free_instr{typeidx : typeidx}(`STRUCT.NEW_DEFAULT`_instr(typeidx)) = $free_typeidx(typeidx) +[check_dims] sx typeidx u32 +[visit_exp `STRUCT.GET`_instr(sx?{sx <- `sx?`}, typeidx, u32)] [visit_exp (sx?{sx <- `sx?`}, typeidx, u32)] [visit_exp sx?{sx <- `sx?`}] [scope_enter sx] @@ -16379,13 +15652,9 @@ DecD free_expr(expr : expr) : free [visit_id typeidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`sx?#3` : sx?, typeidx#33 : typeidx, u32#2 : u32, `sx?` : sx?, typeidx : typeidx, u32 : u32}(`STRUCT.GET`_instr{`sx?#3`, typeidx#33, u32#2}(sx?{sx <- `sx?`}, typeidx, u32)) = $free_typeidx(typeidx) -[check_dims] typeidx typeidx#35 u32 u32#4 -[visit_exp `STRUCT.SET`_instr{typeidx#35, u32#4}(typeidx, u32)] -[visit_exp typeidx#35] -[visit_id typeidx#35] -[visit_exp u32#4] -[visit_id u32#4] + def $free_instr{`sx?` : sx?, typeidx : typeidx, u32 : u32}(`STRUCT.GET`_instr(sx?{sx <- `sx?`}, typeidx, u32)) = $free_typeidx(typeidx) +[check_dims] typeidx u32 +[visit_exp `STRUCT.SET`_instr(typeidx, u32)] [visit_exp (typeidx, u32)] [visit_exp typeidx] [visit_id typeidx] @@ -16396,11 +15665,9 @@ DecD free_expr(expr : expr) : free [visit_id typeidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx#35 : typeidx, u32#4 : u32, typeidx : typeidx, u32 : u32}(`STRUCT.SET`_instr{typeidx#35, u32#4}(typeidx, u32)) = $free_typeidx(typeidx) -[check_dims] typeidx typeidx#37 -[visit_exp `ARRAY.NEW`_instr{typeidx#37}(typeidx)] -[visit_exp typeidx#37] -[visit_id typeidx#37] + def $free_instr{typeidx : typeidx, u32 : u32}(`STRUCT.SET`_instr(typeidx, u32)) = $free_typeidx(typeidx) +[check_dims] typeidx +[visit_exp `ARRAY.NEW`_instr(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] @@ -16409,11 +15676,9 @@ DecD free_expr(expr : expr) : free [visit_id typeidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx#37 : typeidx, typeidx : typeidx}(`ARRAY.NEW`_instr{typeidx#37}(typeidx)) = $free_typeidx(typeidx) -[check_dims] typeidx typeidx#39 -[visit_exp `ARRAY.NEW_DEFAULT`_instr{typeidx#39}(typeidx)] -[visit_exp typeidx#39] -[visit_id typeidx#39] + def $free_instr{typeidx : typeidx}(`ARRAY.NEW`_instr(typeidx)) = $free_typeidx(typeidx) +[check_dims] typeidx +[visit_exp `ARRAY.NEW_DEFAULT`_instr(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] @@ -16422,13 +15687,9 @@ DecD free_expr(expr : expr) : free [visit_id typeidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx#39 : typeidx, typeidx : typeidx}(`ARRAY.NEW_DEFAULT`_instr{typeidx#39}(typeidx)) = $free_typeidx(typeidx) -[check_dims] typeidx typeidx#41 u32 u32#6 -[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#41, u32#6}(typeidx, u32)] -[visit_exp typeidx#41] -[visit_id typeidx#41] -[visit_exp u32#6] -[visit_id u32#6] + def $free_instr{typeidx : typeidx}(`ARRAY.NEW_DEFAULT`_instr(typeidx)) = $free_typeidx(typeidx) +[check_dims] typeidx u32 +[visit_exp `ARRAY.NEW_FIXED`_instr(typeidx, u32)] [visit_exp (typeidx, u32)] [visit_exp typeidx] [visit_id typeidx] @@ -16439,13 +15700,9 @@ DecD free_expr(expr : expr) : free [visit_id typeidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx#41 : typeidx, u32#6 : u32, typeidx : typeidx, u32 : u32}(`ARRAY.NEW_FIXED`_instr{typeidx#41, u32#6}(typeidx, u32)) = $free_typeidx(typeidx) -[check_dims] dataidx dataidx#1 typeidx typeidx#43 -[visit_exp `ARRAY.NEW_DATA`_instr{typeidx#43, dataidx#1}(typeidx, dataidx)] -[visit_exp typeidx#43] -[visit_id typeidx#43] -[visit_exp dataidx#1] -[visit_id dataidx#1] + def $free_instr{typeidx : typeidx, u32 : u32}(`ARRAY.NEW_FIXED`_instr(typeidx, u32)) = $free_typeidx(typeidx) +[check_dims] dataidx typeidx +[visit_exp `ARRAY.NEW_DATA`_instr(typeidx, dataidx)] [visit_exp (typeidx, dataidx)] [visit_exp typeidx] [visit_id typeidx] @@ -16460,13 +15717,9 @@ DecD free_expr(expr : expr) : free [visit_id dataidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx#43 : typeidx, dataidx#1 : dataidx, typeidx : typeidx, dataidx : dataidx}(`ARRAY.NEW_DATA`_instr{typeidx#43, dataidx#1}(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) -[check_dims] elemidx elemidx#1 typeidx typeidx#45 -[visit_exp `ARRAY.NEW_ELEM`_instr{typeidx#45, elemidx#1}(typeidx, elemidx)] -[visit_exp typeidx#45] -[visit_id typeidx#45] -[visit_exp elemidx#1] -[visit_id elemidx#1] + def $free_instr{typeidx : typeidx, dataidx : dataidx}(`ARRAY.NEW_DATA`_instr(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) +[check_dims] elemidx typeidx +[visit_exp `ARRAY.NEW_ELEM`_instr(typeidx, elemidx)] [visit_exp (typeidx, elemidx)] [visit_exp typeidx] [visit_id typeidx] @@ -16481,13 +15734,9 @@ DecD free_expr(expr : expr) : free [visit_id elemidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx#45 : typeidx, elemidx#1 : elemidx, typeidx : typeidx, elemidx : elemidx}(`ARRAY.NEW_ELEM`_instr{typeidx#45, elemidx#1}(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) -[check_dims] sx sx?#5 typeidx typeidx#47 -[visit_exp `ARRAY.GET`_instr{`sx?#5`, typeidx#47}(sx?{sx <- `sx?`}, typeidx)] -[visit_exp `sx?#5`] -[visit_id sx?#5] -[visit_exp typeidx#47] -[visit_id typeidx#47] + def $free_instr{typeidx : typeidx, elemidx : elemidx}(`ARRAY.NEW_ELEM`_instr(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) +[check_dims] sx typeidx +[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, typeidx)] [visit_exp (sx?{sx <- `sx?`}, typeidx)] [visit_exp sx?{sx <- `sx?`}] [scope_enter sx] @@ -16505,11 +15754,9 @@ DecD free_expr(expr : expr) : free [visit_id typeidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`sx?#5` : sx?, typeidx#47 : typeidx, `sx?` : sx?, typeidx : typeidx}(`ARRAY.GET`_instr{`sx?#5`, typeidx#47}(sx?{sx <- `sx?`}, typeidx)) = $free_typeidx(typeidx) -[check_dims] typeidx typeidx#49 -[visit_exp `ARRAY.SET`_instr{typeidx#49}(typeidx)] -[visit_exp typeidx#49] -[visit_id typeidx#49] + def $free_instr{`sx?` : sx?, typeidx : typeidx}(`ARRAY.GET`_instr(sx?{sx <- `sx?`}, typeidx)) = $free_typeidx(typeidx) +[check_dims] typeidx +[visit_exp `ARRAY.SET`_instr(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] @@ -16518,45 +15765,25 @@ DecD free_expr(expr : expr) : free [visit_id typeidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx#49 : typeidx, typeidx : typeidx}(`ARRAY.SET`_instr{typeidx#49}(typeidx)) = $free_typeidx(typeidx) -[check_dims] dataidx*#30 elemidx*#30 funcidx*#30 globalidx*#30 labelidx*#32 localidx*#30 memidx*#30 tableidx*#30 typeidx*#30 + def $free_instr{typeidx : typeidx}(`ARRAY.SET`_instr(typeidx)) = $free_typeidx(typeidx) +[check_dims] [visit_exp `ARRAY.LEN`_instr] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#30`} [], `FUNCS`{`funcidx*#30`} [], `GLOBALS`{`globalidx*#30`} [], `TABLES`{`tableidx*#30`} [], `MEMS`{`memidx*#30`} [], `ELEMS`{`elemidx*#30`} [], `DATAS`{`dataidx*#30`} [], `LOCALS`{`localidx*#30`} [], `LABELS`{`labelidx*#32`} []}] -[visit_exp `typeidx*#30`] -[visit_id typeidx*#30] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#30`] -[visit_id funcidx*#30] [visit_exp []] -[visit_exp `globalidx*#30`] -[visit_id globalidx*#30] [visit_exp []] -[visit_exp `tableidx*#30`] -[visit_id tableidx*#30] [visit_exp []] -[visit_exp `memidx*#30`] -[visit_id memidx*#30] [visit_exp []] -[visit_exp `elemidx*#30`] -[visit_id elemidx*#30] [visit_exp []] -[visit_exp `dataidx*#30`] -[visit_id dataidx*#30] [visit_exp []] -[visit_exp `localidx*#30`] -[visit_id localidx*#30] [visit_exp []] -[visit_exp `labelidx*#32`] -[visit_id labelidx*#32] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`typeidx*#30` : typeidx*, `funcidx*#30` : funcidx*, `globalidx*#30` : globalidx*, `tableidx*#30` : tableidx*, `memidx*#30` : memidx*, `elemidx*#30` : elemidx*, `dataidx*#30` : dataidx*, `localidx*#30` : localidx*, `labelidx*#32` : labelidx*}(`ARRAY.LEN`_instr) = {`TYPES`{`typeidx*#30`} [], `FUNCS`{`funcidx*#30`} [], `GLOBALS`{`globalidx*#30`} [], `TABLES`{`tableidx*#30`} [], `MEMS`{`memidx*#30`} [], `ELEMS`{`elemidx*#30`} [], `DATAS`{`dataidx*#30`} [], `LOCALS`{`localidx*#30`} [], `LABELS`{`labelidx*#32`} []} -[check_dims] typeidx typeidx#51 -[visit_exp `ARRAY.FILL`_instr{typeidx#51}(typeidx)] -[visit_exp typeidx#51] -[visit_id typeidx#51] + def $free_instr(`ARRAY.LEN`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] typeidx +[visit_exp `ARRAY.FILL`_instr(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] @@ -16565,11 +15792,9 @@ DecD free_expr(expr : expr) : free [visit_id typeidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx#51 : typeidx, typeidx : typeidx}(`ARRAY.FILL`_instr{typeidx#51}(typeidx)) = $free_typeidx(typeidx) -[check_dims] typeidx#53 typeidx_1 typeidx_2 -[visit_exp `ARRAY.COPY`_instr{typeidx#53}(typeidx_1, typeidx_2)] -[visit_exp typeidx#53] -[visit_id typeidx#53] + def $free_instr{typeidx : typeidx}(`ARRAY.FILL`_instr(typeidx)) = $free_typeidx(typeidx) +[check_dims] typeidx_1 typeidx_2 +[visit_exp `ARRAY.COPY`_instr(typeidx_1, typeidx_2)] [visit_exp (typeidx_1, typeidx_2)] [visit_exp typeidx_1] [visit_id typeidx_1] @@ -16584,13 +15809,9 @@ DecD free_expr(expr : expr) : free [visit_id typeidx_2] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx#53 : typeidx, typeidx_1 : typeidx, typeidx_2 : typeidx}(`ARRAY.COPY`_instr{typeidx#53}(typeidx_1, typeidx_2)) = $free_typeidx(typeidx_1) +++ $free_typeidx(typeidx_2) -[check_dims] dataidx dataidx#3 typeidx typeidx#56 -[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#56, dataidx#3}(typeidx, dataidx)] -[visit_exp typeidx#56] -[visit_id typeidx#56] -[visit_exp dataidx#3] -[visit_id dataidx#3] + def $free_instr{typeidx_1 : typeidx, typeidx_2 : typeidx}(`ARRAY.COPY`_instr(typeidx_1, typeidx_2)) = $free_typeidx(typeidx_1) +++ $free_typeidx(typeidx_2) +[check_dims] dataidx typeidx +[visit_exp `ARRAY.INIT_DATA`_instr(typeidx, dataidx)] [visit_exp (typeidx, dataidx)] [visit_exp typeidx] [visit_id typeidx] @@ -16605,13 +15826,9 @@ DecD free_expr(expr : expr) : free [visit_id dataidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx#56 : typeidx, dataidx#3 : dataidx, typeidx : typeidx, dataidx : dataidx}(`ARRAY.INIT_DATA`_instr{typeidx#56, dataidx#3}(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) -[check_dims] elemidx elemidx#3 typeidx typeidx#58 -[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#58, elemidx#3}(typeidx, elemidx)] -[visit_exp typeidx#58] -[visit_id typeidx#58] -[visit_exp elemidx#3] -[visit_id elemidx#3] + def $free_instr{typeidx : typeidx, dataidx : dataidx}(`ARRAY.INIT_DATA`_instr(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) +[check_dims] elemidx typeidx +[visit_exp `ARRAY.INIT_ELEM`_instr(typeidx, elemidx)] [visit_exp (typeidx, elemidx)] [visit_exp typeidx] [visit_id typeidx] @@ -16626,79 +15843,41 @@ DecD free_expr(expr : expr) : free [visit_id elemidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx#58 : typeidx, elemidx#3 : elemidx, typeidx : typeidx, elemidx : elemidx}(`ARRAY.INIT_ELEM`_instr{typeidx#58, elemidx#3}(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) -[check_dims] dataidx*#31 elemidx*#31 funcidx*#31 globalidx*#31 labelidx*#33 localidx*#31 memidx*#31 tableidx*#31 typeidx*#31 + def $free_instr{typeidx : typeidx, elemidx : elemidx}(`ARRAY.INIT_ELEM`_instr(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) +[check_dims] [visit_exp `EXTERN.CONVERT_ANY`_instr] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#31`} [], `FUNCS`{`funcidx*#31`} [], `GLOBALS`{`globalidx*#31`} [], `TABLES`{`tableidx*#31`} [], `MEMS`{`memidx*#31`} [], `ELEMS`{`elemidx*#31`} [], `DATAS`{`dataidx*#31`} [], `LOCALS`{`localidx*#31`} [], `LABELS`{`labelidx*#33`} []}] -[visit_exp `typeidx*#31`] -[visit_id typeidx*#31] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#31`] -[visit_id funcidx*#31] [visit_exp []] -[visit_exp `globalidx*#31`] -[visit_id globalidx*#31] [visit_exp []] -[visit_exp `tableidx*#31`] -[visit_id tableidx*#31] [visit_exp []] -[visit_exp `memidx*#31`] -[visit_id memidx*#31] [visit_exp []] -[visit_exp `elemidx*#31`] -[visit_id elemidx*#31] [visit_exp []] -[visit_exp `dataidx*#31`] -[visit_id dataidx*#31] [visit_exp []] -[visit_exp `localidx*#31`] -[visit_id localidx*#31] [visit_exp []] -[visit_exp `labelidx*#33`] -[visit_id labelidx*#33] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`typeidx*#31` : typeidx*, `funcidx*#31` : funcidx*, `globalidx*#31` : globalidx*, `tableidx*#31` : tableidx*, `memidx*#31` : memidx*, `elemidx*#31` : elemidx*, `dataidx*#31` : dataidx*, `localidx*#31` : localidx*, `labelidx*#33` : labelidx*}(`EXTERN.CONVERT_ANY`_instr) = {`TYPES`{`typeidx*#31`} [], `FUNCS`{`funcidx*#31`} [], `GLOBALS`{`globalidx*#31`} [], `TABLES`{`tableidx*#31`} [], `MEMS`{`memidx*#31`} [], `ELEMS`{`elemidx*#31`} [], `DATAS`{`dataidx*#31`} [], `LOCALS`{`localidx*#31`} [], `LABELS`{`labelidx*#33`} []} -[check_dims] dataidx*#32 elemidx*#32 funcidx*#32 globalidx*#32 labelidx*#34 localidx*#32 memidx*#32 tableidx*#32 typeidx*#32 + def $free_instr(`EXTERN.CONVERT_ANY`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] [visit_exp `ANY.CONVERT_EXTERN`_instr] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#32`} [], `FUNCS`{`funcidx*#32`} [], `GLOBALS`{`globalidx*#32`} [], `TABLES`{`tableidx*#32`} [], `MEMS`{`memidx*#32`} [], `ELEMS`{`elemidx*#32`} [], `DATAS`{`dataidx*#32`} [], `LOCALS`{`localidx*#32`} [], `LABELS`{`labelidx*#34`} []}] -[visit_exp `typeidx*#32`] -[visit_id typeidx*#32] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#32`] -[visit_id funcidx*#32] [visit_exp []] -[visit_exp `globalidx*#32`] -[visit_id globalidx*#32] [visit_exp []] -[visit_exp `tableidx*#32`] -[visit_id tableidx*#32] [visit_exp []] -[visit_exp `memidx*#32`] -[visit_id memidx*#32] [visit_exp []] -[visit_exp `elemidx*#32`] -[visit_id elemidx*#32] [visit_exp []] -[visit_exp `dataidx*#32`] -[visit_id dataidx*#32] [visit_exp []] -[visit_exp `localidx*#32`] -[visit_id localidx*#32] [visit_exp []] -[visit_exp `labelidx*#34`] -[visit_id labelidx*#34] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`typeidx*#32` : typeidx*, `funcidx*#32` : funcidx*, `globalidx*#32` : globalidx*, `tableidx*#32` : tableidx*, `memidx*#32` : memidx*, `elemidx*#32` : elemidx*, `dataidx*#32` : dataidx*, `localidx*#32` : localidx*, `labelidx*#34` : labelidx*}(`ANY.CONVERT_EXTERN`_instr) = {`TYPES`{`typeidx*#32`} [], `FUNCS`{`funcidx*#32`} [], `GLOBALS`{`globalidx*#32`} [], `TABLES`{`tableidx*#32`} [], `MEMS`{`memidx*#32`} [], `ELEMS`{`elemidx*#32`} [], `DATAS`{`dataidx*#32`} [], `LOCALS`{`localidx*#32`} [], `LABELS`{`labelidx*#34`} []} -[check_dims] localidx localidx#1 -[visit_exp `LOCAL.GET`_instr{localidx#1}(localidx)] -[visit_exp localidx#1] -[visit_id localidx#1] + def $free_instr(`ANY.CONVERT_EXTERN`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] localidx +[visit_exp `LOCAL.GET`_instr(localidx)] [visit_exp (localidx)] [visit_exp localidx] [visit_id localidx] @@ -16707,11 +15886,9 @@ DecD free_expr(expr : expr) : free [visit_id localidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{localidx#1 : localidx, localidx : localidx}(`LOCAL.GET`_instr{localidx#1}(localidx)) = $free_localidx(localidx) -[check_dims] localidx localidx#3 -[visit_exp `LOCAL.SET`_instr{localidx#3}(localidx)] -[visit_exp localidx#3] -[visit_id localidx#3] + def $free_instr{localidx : localidx}(`LOCAL.GET`_instr(localidx)) = $free_localidx(localidx) +[check_dims] localidx +[visit_exp `LOCAL.SET`_instr(localidx)] [visit_exp (localidx)] [visit_exp localidx] [visit_id localidx] @@ -16720,11 +15897,9 @@ DecD free_expr(expr : expr) : free [visit_id localidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{localidx#3 : localidx, localidx : localidx}(`LOCAL.SET`_instr{localidx#3}(localidx)) = $free_localidx(localidx) -[check_dims] localidx localidx#5 -[visit_exp `LOCAL.TEE`_instr{localidx#5}(localidx)] -[visit_exp localidx#5] -[visit_id localidx#5] + def $free_instr{localidx : localidx}(`LOCAL.SET`_instr(localidx)) = $free_localidx(localidx) +[check_dims] localidx +[visit_exp `LOCAL.TEE`_instr(localidx)] [visit_exp (localidx)] [visit_exp localidx] [visit_id localidx] @@ -16733,11 +15908,9 @@ DecD free_expr(expr : expr) : free [visit_id localidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{localidx#5 : localidx, localidx : localidx}(`LOCAL.TEE`_instr{localidx#5}(localidx)) = $free_localidx(localidx) -[check_dims] globalidx globalidx#5 -[visit_exp `GLOBAL.GET`_instr{globalidx#5}(globalidx)] -[visit_exp globalidx#5] -[visit_id globalidx#5] + def $free_instr{localidx : localidx}(`LOCAL.TEE`_instr(localidx)) = $free_localidx(localidx) +[check_dims] globalidx +[visit_exp `GLOBAL.GET`_instr(globalidx)] [visit_exp (globalidx)] [visit_exp globalidx] [visit_id globalidx] @@ -16746,11 +15919,9 @@ DecD free_expr(expr : expr) : free [visit_id globalidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{globalidx#5 : globalidx, globalidx : globalidx}(`GLOBAL.GET`_instr{globalidx#5}(globalidx)) = $free_globalidx(globalidx) -[check_dims] globalidx globalidx#7 -[visit_exp `GLOBAL.SET`_instr{globalidx#7}(globalidx)] -[visit_exp globalidx#7] -[visit_id globalidx#7] + def $free_instr{globalidx : globalidx}(`GLOBAL.GET`_instr(globalidx)) = $free_globalidx(globalidx) +[check_dims] globalidx +[visit_exp `GLOBAL.SET`_instr(globalidx)] [visit_exp (globalidx)] [visit_exp globalidx] [visit_id globalidx] @@ -16759,11 +15930,9 @@ DecD free_expr(expr : expr) : free [visit_id globalidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{globalidx#7 : globalidx, globalidx : globalidx}(`GLOBAL.SET`_instr{globalidx#7}(globalidx)) = $free_globalidx(globalidx) -[check_dims] tableidx tableidx#9 -[visit_exp `TABLE.GET`_instr{tableidx#9}(tableidx)] -[visit_exp tableidx#9] -[visit_id tableidx#9] + def $free_instr{globalidx : globalidx}(`GLOBAL.SET`_instr(globalidx)) = $free_globalidx(globalidx) +[check_dims] tableidx +[visit_exp `TABLE.GET`_instr(tableidx)] [visit_exp (tableidx)] [visit_exp tableidx] [visit_id tableidx] @@ -16772,11 +15941,9 @@ DecD free_expr(expr : expr) : free [visit_id tableidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx#9 : tableidx, tableidx : tableidx}(`TABLE.GET`_instr{tableidx#9}(tableidx)) = $free_tableidx(tableidx) -[check_dims] tableidx tableidx#11 -[visit_exp `TABLE.SET`_instr{tableidx#11}(tableidx)] -[visit_exp tableidx#11] -[visit_id tableidx#11] + def $free_instr{tableidx : tableidx}(`TABLE.GET`_instr(tableidx)) = $free_tableidx(tableidx) +[check_dims] tableidx +[visit_exp `TABLE.SET`_instr(tableidx)] [visit_exp (tableidx)] [visit_exp tableidx] [visit_id tableidx] @@ -16785,11 +15952,9 @@ DecD free_expr(expr : expr) : free [visit_id tableidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx#11 : tableidx, tableidx : tableidx}(`TABLE.SET`_instr{tableidx#11}(tableidx)) = $free_tableidx(tableidx) -[check_dims] tableidx tableidx#13 -[visit_exp `TABLE.SIZE`_instr{tableidx#13}(tableidx)] -[visit_exp tableidx#13] -[visit_id tableidx#13] + def $free_instr{tableidx : tableidx}(`TABLE.SET`_instr(tableidx)) = $free_tableidx(tableidx) +[check_dims] tableidx +[visit_exp `TABLE.SIZE`_instr(tableidx)] [visit_exp (tableidx)] [visit_exp tableidx] [visit_id tableidx] @@ -16798,11 +15963,9 @@ DecD free_expr(expr : expr) : free [visit_id tableidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx#13 : tableidx, tableidx : tableidx}(`TABLE.SIZE`_instr{tableidx#13}(tableidx)) = $free_tableidx(tableidx) -[check_dims] tableidx tableidx#15 -[visit_exp `TABLE.GROW`_instr{tableidx#15}(tableidx)] -[visit_exp tableidx#15] -[visit_id tableidx#15] + def $free_instr{tableidx : tableidx}(`TABLE.SIZE`_instr(tableidx)) = $free_tableidx(tableidx) +[check_dims] tableidx +[visit_exp `TABLE.GROW`_instr(tableidx)] [visit_exp (tableidx)] [visit_exp tableidx] [visit_id tableidx] @@ -16811,11 +15974,9 @@ DecD free_expr(expr : expr) : free [visit_id tableidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx#15 : tableidx, tableidx : tableidx}(`TABLE.GROW`_instr{tableidx#15}(tableidx)) = $free_tableidx(tableidx) -[check_dims] tableidx tableidx#17 -[visit_exp `TABLE.FILL`_instr{tableidx#17}(tableidx)] -[visit_exp tableidx#17] -[visit_id tableidx#17] + def $free_instr{tableidx : tableidx}(`TABLE.GROW`_instr(tableidx)) = $free_tableidx(tableidx) +[check_dims] tableidx +[visit_exp `TABLE.FILL`_instr(tableidx)] [visit_exp (tableidx)] [visit_exp tableidx] [visit_id tableidx] @@ -16824,11 +15985,9 @@ DecD free_expr(expr : expr) : free [visit_id tableidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx#17 : tableidx, tableidx : tableidx}(`TABLE.FILL`_instr{tableidx#17}(tableidx)) = $free_tableidx(tableidx) -[check_dims] tableidx#19 tableidx_1 tableidx_2 -[visit_exp `TABLE.COPY`_instr{tableidx#19}(tableidx_1, tableidx_2)] -[visit_exp tableidx#19] -[visit_id tableidx#19] + def $free_instr{tableidx : tableidx}(`TABLE.FILL`_instr(tableidx)) = $free_tableidx(tableidx) +[check_dims] tableidx_1 tableidx_2 +[visit_exp `TABLE.COPY`_instr(tableidx_1, tableidx_2)] [visit_exp (tableidx_1, tableidx_2)] [visit_exp tableidx_1] [visit_id tableidx_1] @@ -16843,13 +16002,9 @@ DecD free_expr(expr : expr) : free [visit_id tableidx_2] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx#19 : tableidx, tableidx_1 : tableidx, tableidx_2 : tableidx}(`TABLE.COPY`_instr{tableidx#19}(tableidx_1, tableidx_2)) = $free_tableidx(tableidx_1) +++ $free_tableidx(tableidx_2) -[check_dims] elemidx elemidx#5 tableidx tableidx#22 -[visit_exp `TABLE.INIT`_instr{tableidx#22, elemidx#5}(tableidx, elemidx)] -[visit_exp tableidx#22] -[visit_id tableidx#22] -[visit_exp elemidx#5] -[visit_id elemidx#5] + def $free_instr{tableidx_1 : tableidx, tableidx_2 : tableidx}(`TABLE.COPY`_instr(tableidx_1, tableidx_2)) = $free_tableidx(tableidx_1) +++ $free_tableidx(tableidx_2) +[check_dims] elemidx tableidx +[visit_exp `TABLE.INIT`_instr(tableidx, elemidx)] [visit_exp (tableidx, elemidx)] [visit_exp tableidx] [visit_id tableidx] @@ -16864,11 +16019,9 @@ DecD free_expr(expr : expr) : free [visit_id elemidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx#22 : tableidx, elemidx#5 : elemidx, tableidx : tableidx, elemidx : elemidx}(`TABLE.INIT`_instr{tableidx#22, elemidx#5}(tableidx, elemidx)) = $free_tableidx(tableidx) +++ $free_elemidx(elemidx) -[check_dims] elemidx elemidx#7 -[visit_exp `ELEM.DROP`_instr{elemidx#7}(elemidx)] -[visit_exp elemidx#7] -[visit_id elemidx#7] + def $free_instr{tableidx : tableidx, elemidx : elemidx}(`TABLE.INIT`_instr(tableidx, elemidx)) = $free_tableidx(tableidx) +++ $free_elemidx(elemidx) +[check_dims] elemidx +[visit_exp `ELEM.DROP`_instr(elemidx)] [visit_exp (elemidx)] [visit_exp elemidx] [visit_id elemidx] @@ -16877,15 +16030,9 @@ DecD free_expr(expr : expr) : free [visit_id elemidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{elemidx#7 : elemidx, elemidx : elemidx}(`ELEM.DROP`_instr{elemidx#7}(elemidx)) = $free_elemidx(elemidx) -[check_dims] loadop memarg memarg#1 memidx memidx#5 numtype numtype?#1 -[visit_exp `LOAD`_instr{`numtype?#1`, memidx#5, memarg#1}(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)] -[visit_exp `numtype?#1`] -[visit_id numtype?#1] -[visit_exp memidx#5] -[visit_id memidx#5] -[visit_exp memarg#1] -[visit_id memarg#1] + def $free_instr{elemidx : elemidx}(`ELEM.DROP`_instr(elemidx)) = $free_elemidx(elemidx) +[check_dims] loadop memarg memidx numtype +[visit_exp `LOAD`_instr(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)] [visit_exp (numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)] [visit_exp numtype] [visit_id numtype] @@ -16911,15 +16058,9 @@ DecD free_expr(expr : expr) : free [visit_id memidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`numtype?#1` : numtype?, memidx#5 : memidx, memarg#1 : memarg, numtype : numtype, `loadop?` : loadop_(numtype)?, memidx : memidx, memarg : memarg}(`LOAD`_instr{`numtype?#1`, memidx#5, memarg#1}(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) -[check_dims] memarg memarg#3 memidx memidx#7 numtype numtype?#2 storeop -[visit_exp `STORE`_instr{`numtype?#2`, memidx#7, memarg#3}(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)] -[visit_exp `numtype?#2`] -[visit_id numtype?#2] -[visit_exp memidx#7] -[visit_id memidx#7] -[visit_exp memarg#3] -[visit_id memarg#3] + def $free_instr{numtype : numtype, `loadop?` : loadop_(numtype)?, memidx : memidx, memarg : memarg}(`LOAD`_instr(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) +[check_dims] memarg memidx numtype storeop +[visit_exp `STORE`_instr(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)] [visit_exp (numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)] [visit_exp numtype] [visit_id numtype] @@ -16945,15 +16086,9 @@ DecD free_expr(expr : expr) : free [visit_id memidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`numtype?#2` : numtype?, memidx#7 : memidx, memarg#3 : memarg, numtype : numtype, `storeop?` : storeop_(numtype)?, memidx : memidx, memarg : memarg}(`STORE`_instr{`numtype?#2`, memidx#7, memarg#3}(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) -[check_dims] memarg memarg#5 memidx memidx#9 vectype vectype?#1 vloadop -[visit_exp `VLOAD`_instr{`vectype?#1`, memidx#9, memarg#5}(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)] -[visit_exp `vectype?#1`] -[visit_id vectype?#1] -[visit_exp memidx#9] -[visit_id memidx#9] -[visit_exp memarg#5] -[visit_id memarg#5] + def $free_instr{numtype : numtype, `storeop?` : storeop_(numtype)?, memidx : memidx, memarg : memarg}(`STORE`_instr(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) +[check_dims] memarg memidx vectype vloadop +[visit_exp `VLOAD`_instr(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)] [visit_exp (vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)] [visit_exp vectype] [visit_id vectype] @@ -16979,19 +16114,9 @@ DecD free_expr(expr : expr) : free [visit_id memidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`vectype?#1` : vectype?, memidx#9 : memidx, memarg#5 : memarg, vectype : vectype, `vloadop?` : vloadop_(vectype)?, memidx : memidx, memarg : memarg}(`VLOAD`_instr{`vectype?#1`, memidx#9, memarg#5}(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) -[check_dims] laneidx laneidx#5 memarg memarg#7 memidx memidx#11 sz sz#1 vectype vectype#14 -[visit_exp `VLOAD_LANE`_instr{vectype#14, sz#1, memidx#11, memarg#7, laneidx#5}(vectype, sz, memidx, memarg, laneidx)] -[visit_exp vectype#14] -[visit_id vectype#14] -[visit_exp sz#1] -[visit_id sz#1] -[visit_exp memidx#11] -[visit_id memidx#11] -[visit_exp memarg#7] -[visit_id memarg#7] -[visit_exp laneidx#5] -[visit_id laneidx#5] + def $free_instr{vectype : vectype, `vloadop?` : vloadop_(vectype)?, memidx : memidx, memarg : memarg}(`VLOAD`_instr(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) +[check_dims] laneidx memarg memidx sz vectype +[visit_exp `VLOAD_LANE`_instr(vectype, sz, memidx, memarg, laneidx)] [visit_exp (vectype, sz, memidx, memarg, laneidx)] [visit_exp vectype] [visit_id vectype] @@ -17012,15 +16137,9 @@ DecD free_expr(expr : expr) : free [visit_id memidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype#14 : vectype, sz#1 : sz, memidx#11 : memidx, memarg#7 : memarg, laneidx#5 : laneidx, vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VLOAD_LANE`_instr{vectype#14, sz#1, memidx#11, memarg#7, laneidx#5}(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) -[check_dims] memarg memarg#9 memidx memidx#13 vectype vectype#16 -[visit_exp `VSTORE`_instr{vectype#16, memidx#13, memarg#9}(vectype, memidx, memarg)] -[visit_exp vectype#16] -[visit_id vectype#16] -[visit_exp memidx#13] -[visit_id memidx#13] -[visit_exp memarg#9] -[visit_id memarg#9] + def $free_instr{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VLOAD_LANE`_instr(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) +[check_dims] memarg memidx vectype +[visit_exp `VSTORE`_instr(vectype, memidx, memarg)] [visit_exp (vectype, memidx, memarg)] [visit_exp vectype] [visit_id vectype] @@ -17037,19 +16156,9 @@ DecD free_expr(expr : expr) : free [visit_id memidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype#16 : vectype, memidx#13 : memidx, memarg#9 : memarg, vectype : vectype, memidx : memidx, memarg : memarg}(`VSTORE`_instr{vectype#16, memidx#13, memarg#9}(vectype, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) -[check_dims] laneidx laneidx#7 memarg memarg#11 memidx memidx#15 sz sz#3 vectype vectype#18 -[visit_exp `VSTORE_LANE`_instr{vectype#18, sz#3, memidx#15, memarg#11, laneidx#7}(vectype, sz, memidx, memarg, laneidx)] -[visit_exp vectype#18] -[visit_id vectype#18] -[visit_exp sz#3] -[visit_id sz#3] -[visit_exp memidx#15] -[visit_id memidx#15] -[visit_exp memarg#11] -[visit_id memarg#11] -[visit_exp laneidx#7] -[visit_id laneidx#7] + def $free_instr{vectype : vectype, memidx : memidx, memarg : memarg}(`VSTORE`_instr(vectype, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) +[check_dims] laneidx memarg memidx sz vectype +[visit_exp `VSTORE_LANE`_instr(vectype, sz, memidx, memarg, laneidx)] [visit_exp (vectype, sz, memidx, memarg, laneidx)] [visit_exp vectype] [visit_id vectype] @@ -17070,11 +16179,9 @@ DecD free_expr(expr : expr) : free [visit_id memidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype#18 : vectype, sz#3 : sz, memidx#15 : memidx, memarg#11 : memarg, laneidx#7 : laneidx, vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VSTORE_LANE`_instr{vectype#18, sz#3, memidx#15, memarg#11, laneidx#7}(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) -[check_dims] memidx memidx#17 -[visit_exp `MEMORY.SIZE`_instr{memidx#17}(memidx)] -[visit_exp memidx#17] -[visit_id memidx#17] + def $free_instr{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VSTORE_LANE`_instr(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) +[check_dims] memidx +[visit_exp `MEMORY.SIZE`_instr(memidx)] [visit_exp (memidx)] [visit_exp memidx] [visit_id memidx] @@ -17083,11 +16190,9 @@ DecD free_expr(expr : expr) : free [visit_id memidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{memidx#17 : memidx, memidx : memidx}(`MEMORY.SIZE`_instr{memidx#17}(memidx)) = $free_memidx(memidx) -[check_dims] memidx memidx#19 -[visit_exp `MEMORY.GROW`_instr{memidx#19}(memidx)] -[visit_exp memidx#19] -[visit_id memidx#19] + def $free_instr{memidx : memidx}(`MEMORY.SIZE`_instr(memidx)) = $free_memidx(memidx) +[check_dims] memidx +[visit_exp `MEMORY.GROW`_instr(memidx)] [visit_exp (memidx)] [visit_exp memidx] [visit_id memidx] @@ -17096,11 +16201,9 @@ DecD free_expr(expr : expr) : free [visit_id memidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{memidx#19 : memidx, memidx : memidx}(`MEMORY.GROW`_instr{memidx#19}(memidx)) = $free_memidx(memidx) -[check_dims] memidx memidx#21 -[visit_exp `MEMORY.FILL`_instr{memidx#21}(memidx)] -[visit_exp memidx#21] -[visit_id memidx#21] + def $free_instr{memidx : memidx}(`MEMORY.GROW`_instr(memidx)) = $free_memidx(memidx) +[check_dims] memidx +[visit_exp `MEMORY.FILL`_instr(memidx)] [visit_exp (memidx)] [visit_exp memidx] [visit_id memidx] @@ -17109,11 +16212,9 @@ DecD free_expr(expr : expr) : free [visit_id memidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{memidx#21 : memidx, memidx : memidx}(`MEMORY.FILL`_instr{memidx#21}(memidx)) = $free_memidx(memidx) -[check_dims] memidx#23 memidx_1 memidx_2 -[visit_exp `MEMORY.COPY`_instr{memidx#23}(memidx_1, memidx_2)] -[visit_exp memidx#23] -[visit_id memidx#23] + def $free_instr{memidx : memidx}(`MEMORY.FILL`_instr(memidx)) = $free_memidx(memidx) +[check_dims] memidx_1 memidx_2 +[visit_exp `MEMORY.COPY`_instr(memidx_1, memidx_2)] [visit_exp (memidx_1, memidx_2)] [visit_exp memidx_1] [visit_id memidx_1] @@ -17128,13 +16229,9 @@ DecD free_expr(expr : expr) : free [visit_id memidx_2] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{memidx#23 : memidx, memidx_1 : memidx, memidx_2 : memidx}(`MEMORY.COPY`_instr{memidx#23}(memidx_1, memidx_2)) = $free_memidx(memidx_1) +++ $free_memidx(memidx_2) -[check_dims] dataidx dataidx#5 memidx memidx#26 -[visit_exp `MEMORY.INIT`_instr{memidx#26, dataidx#5}(memidx, dataidx)] -[visit_exp memidx#26] -[visit_id memidx#26] -[visit_exp dataidx#5] -[visit_id dataidx#5] + def $free_instr{memidx_1 : memidx, memidx_2 : memidx}(`MEMORY.COPY`_instr(memidx_1, memidx_2)) = $free_memidx(memidx_1) +++ $free_memidx(memidx_2) +[check_dims] dataidx memidx +[visit_exp `MEMORY.INIT`_instr(memidx, dataidx)] [visit_exp (memidx, dataidx)] [visit_exp memidx] [visit_id memidx] @@ -17149,11 +16246,9 @@ DecD free_expr(expr : expr) : free [visit_id dataidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{memidx#26 : memidx, dataidx#5 : dataidx, memidx : memidx, dataidx : dataidx}(`MEMORY.INIT`_instr{memidx#26, dataidx#5}(memidx, dataidx)) = $free_memidx(memidx) +++ $free_dataidx(dataidx) -[check_dims] dataidx dataidx#7 -[visit_exp `DATA.DROP`_instr{dataidx#7}(dataidx)] -[visit_exp dataidx#7] -[visit_id dataidx#7] + def $free_instr{memidx : memidx, dataidx : dataidx}(`MEMORY.INIT`_instr(memidx, dataidx)) = $free_memidx(memidx) +++ $free_dataidx(dataidx) +[check_dims] dataidx +[visit_exp `DATA.DROP`_instr(dataidx)] [visit_exp (dataidx)] [visit_exp dataidx] [visit_id dataidx] @@ -17162,7 +16257,7 @@ DecD free_expr(expr : expr) : free [visit_id dataidx] not free => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{dataidx#7 : dataidx, dataidx : dataidx}(`DATA.DROP`_instr{dataidx#7}(dataidx)) = $free_dataidx(dataidx) + def $free_instr{dataidx : dataidx}(`DATA.DROP`_instr(dataidx)) = $free_dataidx(dataidx) [check_dims] _ DecD shift_labelidxs(labelidx*) : labelidx* [visit_id _] not free @@ -17172,12 +16267,10 @@ DecD shift_labelidxs(labelidx*) : labelidx* => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $shift_labelidxs([]) = [] -[check_dims] i#3333 labelidx' -[visit_exp [`%`_labelidx{i#3333}(0)] ++ labelidx'*{labelidx' <- `labelidx'*`}] -[visit_exp [`%`_labelidx{i#3333}(0)]] -[visit_exp `%`_labelidx{i#3333}(0)] -[visit_exp i#3333] -[visit_id i#3333] +[check_dims] labelidx' +[visit_exp [`%`_labelidx(0)] ++ labelidx'*{labelidx' <- `labelidx'*`}] +[visit_exp [`%`_labelidx(0)]] +[visit_exp `%`_labelidx(0)] [visit_exp (0)] [visit_exp 0] [visit_exp labelidx'*{labelidx' <- `labelidx'*`}] @@ -17201,8 +16294,8 @@ DecD shift_labelidxs(labelidx*) : labelidx* [visit_id labelidx'*] no dims => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $shift_labelidxs{i#3333 : nat, `labelidx'*` : labelidx*}([`%`_labelidx{i#3333}(0)] ++ labelidx'*{labelidx' <- `labelidx'*`}) = $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) -[check_dims] i#3547 i#3557 labelidx labelidx' + def $shift_labelidxs{`labelidx'*` : labelidx*}([`%`_labelidx(0)] ++ labelidx'*{labelidx' <- `labelidx'*`}) = $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) +[check_dims] labelidx labelidx' [visit_exp [labelidx] ++ labelidx'*{labelidx' <- `labelidx'*`}] [visit_exp [labelidx]] [visit_exp labelidx] @@ -17216,21 +16309,17 @@ DecD shift_labelidxs(labelidx*) : labelidx* [visit_exp `labelidx'*`] [visit_id labelidx'*] no dims [visit_id labelidx'*] -[visit_exp [`%`_labelidx{i#3557}((((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] ++ $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`})] -[visit_exp [`%`_labelidx{i#3557}((((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))]] -[visit_exp `%`_labelidx{i#3557}((((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#3557] -[visit_id i#3557] -[visit_exp ((((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int))] -[visit_exp (labelidx!`%`_labelidx{i#3547}.0 : nat <:> int)] -[visit_exp labelidx!`%`_labelidx{i#3547}.0] -[visit_exp labelidx!`%`_labelidx{i#3547}] +[visit_exp [`%`_labelidx((((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] ++ $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`})] +[visit_exp [`%`_labelidx((((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))]] +[visit_exp `%`_labelidx((((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int))] +[visit_exp (labelidx!`%`_labelidx.0 : nat <:> int)] +[visit_exp labelidx!`%`_labelidx.0] +[visit_exp labelidx!`%`_labelidx] [visit_exp labelidx] [visit_id labelidx] not free -[visit_exp i#3547] -[visit_id i#3547] [visit_exp (1 : nat <:> int)] [visit_exp 1] [visit_exp $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`})] @@ -17245,8 +16334,8 @@ DecD shift_labelidxs(labelidx*) : labelidx* [visit_id labelidx'*] no dims => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $shift_labelidxs{labelidx : labelidx, `labelidx'*` : labelidx*, i#3557 : nat, i#3547 : nat}([labelidx] ++ labelidx'*{labelidx' <- `labelidx'*`}) = [`%`_labelidx{i#3557}((((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] ++ $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) -[check_dims] free instr labelidx*#35 labelidx*#44 + def $shift_labelidxs{labelidx : labelidx, `labelidx'*` : labelidx*}([labelidx] ++ labelidx'*{labelidx' <- `labelidx'*`}) = [`%`_labelidx((((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] ++ $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) +[check_dims] free instr [visit_exp instr*{instr <- `instr*`}] [scope_enter instr] [visit_exp instr] @@ -17256,17 +16345,13 @@ DecD shift_labelidxs(labelidx*) : labelidx* [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp free[`LABELS`_free{`labelidx*#35`} = $shift_labelidxs(free.`LABELS`_free{`labelidx*#44`})]] +[visit_exp free[`LABELS`_free = $shift_labelidxs(free.`LABELS`_free)]] [visit_exp free] [visit_id free] -[visit_exp `labelidx*#35`] -[visit_id labelidx*#35] -[visit_exp $shift_labelidxs(free.`LABELS`_free{`labelidx*#44`})] -[visit_exp free.`LABELS`_free{`labelidx*#44`}] +[visit_exp $shift_labelidxs(free.`LABELS`_free)] +[visit_exp free.`LABELS`_free] [visit_exp free] [visit_id free] not free -[visit_exp `labelidx*#44`] -[visit_id labelidx*#44] [visit_exp (free = $free_list($free_instr(instr)*{instr <- `instr*`}))] [visit_exp free] [visit_id free] not free @@ -17283,7 +16368,7 @@ DecD shift_labelidxs(labelidx*) : labelidx* [visit_id instr*] no dims => ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_block{`instr*` : instr*, free : free, `labelidx*#35` : labelidx*, `labelidx*#44` : labelidx*}(instr*{instr <- `instr*`}) = free[`LABELS`_free{`labelidx*#35`} = $shift_labelidxs(free.`LABELS`_free{`labelidx*#44`})] + def $free_block{`instr*` : instr*, free : free}(instr*{instr <- `instr*`}) = free[`LABELS`_free = $shift_labelidxs(free.`LABELS`_free)] -- if (free = $free_list($free_instr(instr)*{instr <- `instr*`})) [check_dims] instr [visit_exp instr*{instr <- `instr*`}] @@ -17310,20 +16395,21 @@ DecD shift_labelidxs(labelidx*) : labelidx* ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $free_expr{`instr*` : instr*}(instr*{instr <- `instr*`}) = $free_list($free_instr(instr)*{instr <- `instr*`}) [check_dims] ---- 1 --- [check_dims] ---- 2 --- ---- 3 --- ---- 4 --- +[scope_enter tableidx] +[visit_id tableidx] not free [visit_id tableidx] no dims -[visit_id tableidx] +[scope_enter expr] +[visit_id expr] not free [visit_id expr] no dims -[visit_id expr] +[scope_exit expr] +[scope_exit tableidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- @@ -17335,10 +16421,16 @@ DecD shift_labelidxs(labelidx*) : labelidx* --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter memidx] +[visit_id memidx] not free [visit_id memidx] no dims -[visit_id memidx] +[scope_enter expr] +[visit_id expr] not free [visit_id expr] no dims -[visit_id expr] +[scope_exit expr] +[scope_exit memidx] --- 1 --- [check_dims] --- 2 --- @@ -17350,144 +16442,229 @@ DecD shift_labelidxs(labelidx*) : labelidx* --- 2 --- --- 3 --- --- 4 --- -[visit_id rectype] no dims -[visit_id rectype] [check_dims] +[check_dims] +[scope_enter rectype] +[visit_id rectype] not free +[visit_id rectype] no dims +[scope_exit rectype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id tagtype] no dims -[visit_id tagtype] [check_dims] +[check_dims] +[scope_enter tagtype] +[visit_id tagtype] not free +[visit_id tagtype] no dims +[scope_exit tagtype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter globaltype] +[visit_id globaltype] not free [visit_id globaltype] no dims -[visit_id globaltype] +[scope_enter expr] +[visit_id expr] not free [visit_id expr] no dims -[visit_id expr] -[check_dims] +[scope_exit expr] +[scope_exit globaltype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id memtype] no dims -[visit_id memtype] [check_dims] +[check_dims] +[scope_enter memtype] +[visit_id memtype] not free +[visit_id memtype] no dims +[scope_exit memtype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter tabletype] +[visit_id tabletype] not free [visit_id tabletype] no dims -[visit_id tabletype] +[scope_enter expr] +[visit_id expr] not free [visit_id expr] no dims -[visit_id expr] -[check_dims] +[scope_exit expr] +[scope_exit tabletype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter byte*] +[visit_id byte*] not free [visit_id byte*] no dims -[visit_id byte*] +[scope_enter datamode] +[visit_id datamode] not free [visit_id datamode] no dims -[visit_id datamode] -[check_dims] +[scope_exit datamode] +[scope_exit byte*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id valtype] no dims -[visit_id valtype] [check_dims] +[check_dims] +[scope_enter valtype] +[visit_id valtype] not free +[visit_id valtype] no dims +[scope_exit valtype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free [visit_id typeidx] no dims -[visit_id typeidx] +[scope_enter local*] +[visit_id local*] not free [visit_id local*] no dims -[visit_id local*] +[scope_enter expr] +[visit_id expr] not free [visit_id expr] no dims -[visit_id expr] -[check_dims] +[scope_exit expr] +[scope_exit local*] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter reftype] +[visit_id reftype] not free [visit_id reftype] no dims -[visit_id reftype] +[scope_enter expr*] +[visit_id expr*] not free [visit_id expr*] no dims -[visit_id expr*] +[scope_enter elemmode] +[visit_id elemmode] not free [visit_id elemmode] no dims -[visit_id elemmode] -[check_dims] +[scope_exit elemmode] +[scope_exit expr*] +[scope_exit reftype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id funcidx] no dims -[visit_id funcidx] [check_dims] +[check_dims] +[scope_enter funcidx] +[visit_id funcidx] not free +[visit_id funcidx] no dims +[scope_exit funcidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter name] +[visit_id name] not free [visit_id name] no dims -[visit_id name] +[scope_enter name] [visit_id name] not free [visit_id name] no dims +[scope_enter externtype] +[visit_id externtype] not free [visit_id externtype] no dims -[visit_id externtype] -[check_dims] +[scope_exit externtype] +[scope_exit name] +[scope_exit name] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter name] +[visit_id name] not free [visit_id name] no dims -[visit_id name] +[scope_enter externidx] +[visit_id externidx] not free [visit_id externidx] no dims -[visit_id externidx] -[check_dims] +[scope_exit externidx] +[scope_exit name] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter type*] +[visit_id type*] not free [visit_id type*] no dims -[visit_id type*] +[scope_enter import*] +[visit_id import*] not free [visit_id import*] no dims -[visit_id import*] +[scope_enter tag*] +[visit_id tag*] not free [visit_id tag*] no dims -[visit_id tag*] +[scope_enter global*] +[visit_id global*] not free [visit_id global*] no dims -[visit_id global*] +[scope_enter mem*] +[visit_id mem*] not free [visit_id mem*] no dims -[visit_id mem*] +[scope_enter table*] +[visit_id table*] not free [visit_id table*] no dims -[visit_id table*] +[scope_enter func*] +[visit_id func*] not free [visit_id func*] no dims -[visit_id func*] +[scope_enter data*] +[visit_id data*] not free [visit_id data*] no dims -[visit_id data*] +[scope_enter elem*] +[visit_id elem*] not free [visit_id elem*] no dims -[visit_id elem*] +[scope_enter start?] +[visit_id start?] not free [visit_id start?] no dims -[visit_id start?] +[scope_enter export*] +[visit_id export*] not free [visit_id export*] no dims -[visit_id export*] +[scope_exit export*] +[scope_exit start?] +[scope_exit elem*] +[scope_exit data*] +[scope_exit func*] +[scope_exit table*] +[scope_exit mem*] +[scope_exit global*] +[scope_exit tag*] +[scope_exit import*] +[scope_exit type*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- [check_dims] [check_dims] [check_dims] @@ -17539,10 +16716,8 @@ DecD free_export(export : export) : free [check_dims] module DecD free_module(module : module) : free [visit_id module] not free -[check_dims] rectype rectype#265 -[visit_exp `TYPE`_type{rectype#265}(rectype)] -[visit_exp rectype#265] -[visit_id rectype#265] +[check_dims] rectype +[visit_exp `TYPE`_type(rectype)] [visit_exp (rectype)] [visit_exp rectype] [visit_id rectype] @@ -17551,11 +16726,9 @@ DecD free_module(module : module) : free [visit_id rectype] not free => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_type{rectype#265 : rectype, rectype : rectype}(`TYPE`_type{rectype#265}(rectype)) = $free_rectype(rectype) -[check_dims] tagtype tagtype#19 -[visit_exp `TAG`_tag{tagtype#19}(tagtype)] -[visit_exp tagtype#19] -[visit_id tagtype#19] + def $free_type{rectype : rectype}(`TYPE`_type(rectype)) = $free_rectype(rectype) +[check_dims] tagtype +[visit_exp `TAG`_tag(tagtype)] [visit_exp (tagtype)] [visit_exp tagtype] [visit_id tagtype] @@ -17564,13 +16737,9 @@ DecD free_module(module : module) : free [visit_id tagtype] not free => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_tag{tagtype#19 : tagtype, tagtype : tagtype}(`TAG`_tag{tagtype#19}(tagtype)) = $free_tagtype(tagtype) -[check_dims] expr expr#11 globaltype globaltype#19 -[visit_exp `GLOBAL`_global{globaltype#19, expr#11}(globaltype, expr)] -[visit_exp globaltype#19] -[visit_id globaltype#19] -[visit_exp expr#11] -[visit_id expr#11] + def $free_tag{tagtype : tagtype}(`TAG`_tag(tagtype)) = $free_tagtype(tagtype) +[check_dims] expr globaltype +[visit_exp `GLOBAL`_global(globaltype, expr)] [visit_exp (globaltype, expr)] [visit_exp globaltype] [visit_id globaltype] @@ -17585,11 +16754,9 @@ DecD free_module(module : module) : free [visit_id expr] not free => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_global{globaltype#19 : globaltype, expr#11 : expr, globaltype : globaltype, expr : expr}(`GLOBAL`_global{globaltype#19, expr#11}(globaltype, expr)) = $free_globaltype(globaltype) +++ $free_expr(expr) -[check_dims] memtype memtype#19 -[visit_exp `MEMORY`_mem{memtype#19}(memtype)] -[visit_exp memtype#19] -[visit_id memtype#19] + def $free_global{globaltype : globaltype, expr : expr}(`GLOBAL`_global(globaltype, expr)) = $free_globaltype(globaltype) +++ $free_expr(expr) +[check_dims] memtype +[visit_exp `MEMORY`_mem(memtype)] [visit_exp (memtype)] [visit_exp memtype] [visit_id memtype] @@ -17598,13 +16765,9 @@ DecD free_module(module : module) : free [visit_id memtype] not free => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_mem{memtype#19 : memtype, memtype : memtype}(`MEMORY`_mem{memtype#19}(memtype)) = $free_memtype(memtype) -[check_dims] expr expr#23 tabletype tabletype#19 -[visit_exp `TABLE`_table{tabletype#19, expr#23}(tabletype, expr)] -[visit_exp tabletype#19] -[visit_id tabletype#19] -[visit_exp expr#23] -[visit_id expr#23] + def $free_mem{memtype : memtype}(`MEMORY`_mem(memtype)) = $free_memtype(memtype) +[check_dims] expr tabletype +[visit_exp `TABLE`_table(tabletype, expr)] [visit_exp (tabletype, expr)] [visit_exp tabletype] [visit_id tabletype] @@ -17619,11 +16782,9 @@ DecD free_module(module : module) : free [visit_id expr] not free => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_table{tabletype#19 : tabletype, expr#23 : expr, tabletype : tabletype, expr : expr}(`TABLE`_table{tabletype#19, expr#23}(tabletype, expr)) = $free_tabletype(tabletype) +++ $free_expr(expr) -[check_dims] t valtype#163 -[visit_exp `LOCAL`_local{valtype#163}(t)] -[visit_exp valtype#163] -[visit_id valtype#163] + def $free_table{tabletype : tabletype, expr : expr}(`TABLE`_table(tabletype, expr)) = $free_tabletype(tabletype) +++ $free_expr(expr) +[check_dims] t +[visit_exp `LOCAL`_local(t)] [visit_exp (t)] [visit_exp t] [visit_id t] @@ -17632,15 +16793,9 @@ DecD free_module(module : module) : free [visit_id t] not free => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_local{valtype#163 : valtype, t : valtype}(`LOCAL`_local{valtype#163}(t)) = $free_valtype(t) -[check_dims] expr expr#35 local local*#11 localidx*#33 typeidx typeidx#70 -[visit_exp `FUNC`_func{typeidx#70, `local*#11`, expr#35}(typeidx, local*{local <- `local*`}, expr)] -[visit_exp typeidx#70] -[visit_id typeidx#70] -[visit_exp `local*#11`] -[visit_id local*#11] -[visit_exp expr#35] -[visit_id expr#35] + def $free_local{t : valtype}(`LOCAL`_local(t)) = $free_valtype(t) +[check_dims] expr local typeidx +[visit_exp `FUNC`_func(typeidx, local*{local <- `local*`}, expr)] [visit_exp (typeidx, local*{local <- `local*`}, expr)] [visit_exp typeidx] [visit_id typeidx] @@ -17655,7 +16810,7 @@ DecD free_module(module : module) : free [visit_id local*] [visit_exp expr] [visit_id expr] -[visit_exp $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[`LOCALS`_free{`localidx*#33`} = []]] +[visit_exp $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[`LOCALS`_free = []]] [visit_exp $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`})] [visit_exp $free_typeidx(typeidx)] [visit_exp typeidx] @@ -17671,22 +16826,16 @@ DecD free_module(module : module) : free [visit_exp `local*`] [visit_id local*] not free [visit_id local*] no dims -[visit_exp $free_block(expr)[`LOCALS`_free{`localidx*#33`} = []]] +[visit_exp $free_block(expr)[`LOCALS`_free = []]] [visit_exp $free_block(expr)] [visit_exp expr] [visit_id expr] not free -[visit_exp `localidx*#33`] -[visit_id localidx*#33] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_func{typeidx#70 : typeidx, `local*#11` : local*, expr#35 : expr, typeidx : typeidx, `local*` : local*, expr : expr, `localidx*#33` : localidx*}(`FUNC`_func{typeidx#70, `local*#11`, expr#35}(typeidx, local*{local <- `local*`}, expr)) = $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[`LOCALS`_free{`localidx*#33`} = []] -[check_dims] byte byte*#11 datamode datamode#11 -[visit_exp `DATA`_data{`byte*#11`, datamode#11}(byte*{byte <- `byte*`}, datamode)] -[visit_exp `byte*#11`] -[visit_id byte*#11] -[visit_exp datamode#11] -[visit_id datamode#11] + def $free_func{typeidx : typeidx, `local*` : local*, expr : expr}(`FUNC`_func(typeidx, local*{local <- `local*`}, expr)) = $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[`LOCALS`_free = []] +[check_dims] byte datamode +[visit_exp `DATA`_data(byte*{byte <- `byte*`}, datamode)] [visit_exp (byte*{byte <- `byte*`}, datamode)] [visit_exp byte*{byte <- `byte*`}] [scope_enter byte] @@ -17704,15 +16853,9 @@ DecD free_module(module : module) : free [visit_id datamode] not free => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_data{`byte*#11` : byte*, datamode#11 : datamode, `byte*` : byte*, datamode : datamode}(`DATA`_data{`byte*#11`, datamode#11}(byte*{byte <- `byte*`}, datamode)) = $free_datamode(datamode) -[check_dims] elemmode elemmode#11 expr expr*#11 reftype reftype#157 -[visit_exp `ELEM`_elem{reftype#157, `expr*#11`, elemmode#11}(reftype, expr*{expr <- `expr*`}, elemmode)] -[visit_exp reftype#157] -[visit_id reftype#157] -[visit_exp `expr*#11`] -[visit_id expr*#11] -[visit_exp elemmode#11] -[visit_id elemmode#11] + def $free_data{`byte*` : byte*, datamode : datamode}(`DATA`_data(byte*{byte <- `byte*`}, datamode)) = $free_datamode(datamode) +[check_dims] elemmode expr reftype +[visit_exp `ELEM`_elem(reftype, expr*{expr <- `expr*`}, elemmode)] [visit_exp (reftype, expr*{expr <- `expr*`}, elemmode)] [visit_exp reftype] [visit_id reftype] @@ -17748,13 +16891,9 @@ DecD free_module(module : module) : free [visit_id elemmode] not free => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elem{reftype#157 : reftype, `expr*#11` : expr*, elemmode#11 : elemmode, reftype : reftype, `expr*` : expr*, elemmode : elemmode}(`ELEM`_elem{reftype#157, `expr*#11`, elemmode#11}(reftype, expr*{expr <- `expr*`}, elemmode)) = $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`}) +++ $free_elemmode(elemmode) -[check_dims] expr expr#37 tableidx tableidx#24 -[visit_exp `ACTIVE`_elemmode{tableidx#24, expr#37}(tableidx, expr)] -[visit_exp tableidx#24] -[visit_id tableidx#24] -[visit_exp expr#37] -[visit_id expr#37] + def $free_elem{reftype : reftype, `expr*` : expr*, elemmode : elemmode}(`ELEM`_elem(reftype, expr*{expr <- `expr*`}, elemmode)) = $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`}) +++ $free_elemmode(elemmode) +[check_dims] expr tableidx +[visit_exp `ACTIVE`_elemmode(tableidx, expr)] [visit_exp (tableidx, expr)] [visit_exp tableidx] [visit_id tableidx] @@ -17769,81 +16908,41 @@ DecD free_module(module : module) : free [visit_id expr] not free => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode{tableidx#24 : tableidx, expr#37 : expr, tableidx : tableidx, expr : expr}(`ACTIVE`_elemmode{tableidx#24, expr#37}(tableidx, expr)) = $free_tableidx(tableidx) +++ $free_expr(expr) -[check_dims] dataidx*#33 elemidx*#33 funcidx*#33 globalidx*#33 labelidx*#45 localidx*#34 memidx*#33 tableidx*#33 typeidx*#33 + def $free_elemmode{tableidx : tableidx, expr : expr}(`ACTIVE`_elemmode(tableidx, expr)) = $free_tableidx(tableidx) +++ $free_expr(expr) +[check_dims] [visit_exp `PASSIVE`_elemmode] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#33`} [], `FUNCS`{`funcidx*#33`} [], `GLOBALS`{`globalidx*#33`} [], `TABLES`{`tableidx*#33`} [], `MEMS`{`memidx*#33`} [], `ELEMS`{`elemidx*#33`} [], `DATAS`{`dataidx*#33`} [], `LOCALS`{`localidx*#34`} [], `LABELS`{`labelidx*#45`} []}] -[visit_exp `typeidx*#33`] -[visit_id typeidx*#33] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#33`] -[visit_id funcidx*#33] [visit_exp []] -[visit_exp `globalidx*#33`] -[visit_id globalidx*#33] [visit_exp []] -[visit_exp `tableidx*#33`] -[visit_id tableidx*#33] [visit_exp []] -[visit_exp `memidx*#33`] -[visit_id memidx*#33] [visit_exp []] -[visit_exp `elemidx*#33`] -[visit_id elemidx*#33] [visit_exp []] -[visit_exp `dataidx*#33`] -[visit_id dataidx*#33] [visit_exp []] -[visit_exp `localidx*#34`] -[visit_id localidx*#34] [visit_exp []] -[visit_exp `labelidx*#45`] -[visit_id labelidx*#45] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode{`typeidx*#33` : typeidx*, `funcidx*#33` : funcidx*, `globalidx*#33` : globalidx*, `tableidx*#33` : tableidx*, `memidx*#33` : memidx*, `elemidx*#33` : elemidx*, `dataidx*#33` : dataidx*, `localidx*#34` : localidx*, `labelidx*#45` : labelidx*}(`PASSIVE`_elemmode) = {`TYPES`{`typeidx*#33`} [], `FUNCS`{`funcidx*#33`} [], `GLOBALS`{`globalidx*#33`} [], `TABLES`{`tableidx*#33`} [], `MEMS`{`memidx*#33`} [], `ELEMS`{`elemidx*#33`} [], `DATAS`{`dataidx*#33`} [], `LOCALS`{`localidx*#34`} [], `LABELS`{`labelidx*#45`} []} -[check_dims] dataidx*#34 elemidx*#34 funcidx*#34 globalidx*#34 labelidx*#46 localidx*#35 memidx*#34 tableidx*#34 typeidx*#34 + def $free_elemmode(`PASSIVE`_elemmode) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] [visit_exp `DECLARE`_elemmode] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#34`} [], `FUNCS`{`funcidx*#34`} [], `GLOBALS`{`globalidx*#34`} [], `TABLES`{`tableidx*#34`} [], `MEMS`{`memidx*#34`} [], `ELEMS`{`elemidx*#34`} [], `DATAS`{`dataidx*#34`} [], `LOCALS`{`localidx*#35`} [], `LABELS`{`labelidx*#46`} []}] -[visit_exp `typeidx*#34`] -[visit_id typeidx*#34] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#34`] -[visit_id funcidx*#34] [visit_exp []] -[visit_exp `globalidx*#34`] -[visit_id globalidx*#34] [visit_exp []] -[visit_exp `tableidx*#34`] -[visit_id tableidx*#34] [visit_exp []] -[visit_exp `memidx*#34`] -[visit_id memidx*#34] [visit_exp []] -[visit_exp `elemidx*#34`] -[visit_id elemidx*#34] [visit_exp []] -[visit_exp `dataidx*#34`] -[visit_id dataidx*#34] [visit_exp []] -[visit_exp `localidx*#35`] -[visit_id localidx*#35] [visit_exp []] -[visit_exp `labelidx*#46`] -[visit_id labelidx*#46] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode{`typeidx*#34` : typeidx*, `funcidx*#34` : funcidx*, `globalidx*#34` : globalidx*, `tableidx*#34` : tableidx*, `memidx*#34` : memidx*, `elemidx*#34` : elemidx*, `dataidx*#34` : dataidx*, `localidx*#35` : localidx*, `labelidx*#46` : labelidx*}(`DECLARE`_elemmode) = {`TYPES`{`typeidx*#34`} [], `FUNCS`{`funcidx*#34`} [], `GLOBALS`{`globalidx*#34`} [], `TABLES`{`tableidx*#34`} [], `MEMS`{`memidx*#34`} [], `ELEMS`{`elemidx*#34`} [], `DATAS`{`dataidx*#34`} [], `LOCALS`{`localidx*#35`} [], `LABELS`{`labelidx*#46`} []} -[check_dims] expr expr#39 memidx memidx#28 -[visit_exp `ACTIVE`_datamode{memidx#28, expr#39}(memidx, expr)] -[visit_exp memidx#28] -[visit_id memidx#28] -[visit_exp expr#39] -[visit_id expr#39] + def $free_elemmode(`DECLARE`_elemmode) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] expr memidx +[visit_exp `ACTIVE`_datamode(memidx, expr)] [visit_exp (memidx, expr)] [visit_exp memidx] [visit_id memidx] @@ -17858,45 +16957,25 @@ DecD free_module(module : module) : free [visit_id expr] not free => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_datamode{memidx#28 : memidx, expr#39 : expr, memidx : memidx, expr : expr}(`ACTIVE`_datamode{memidx#28, expr#39}(memidx, expr)) = $free_memidx(memidx) +++ $free_expr(expr) -[check_dims] dataidx*#35 elemidx*#35 funcidx*#35 globalidx*#35 labelidx*#47 localidx*#36 memidx*#35 tableidx*#35 typeidx*#35 + def $free_datamode{memidx : memidx, expr : expr}(`ACTIVE`_datamode(memidx, expr)) = $free_memidx(memidx) +++ $free_expr(expr) +[check_dims] [visit_exp `PASSIVE`_datamode] [visit_exp ()] -[visit_exp {`TYPES`{`typeidx*#35`} [], `FUNCS`{`funcidx*#35`} [], `GLOBALS`{`globalidx*#35`} [], `TABLES`{`tableidx*#35`} [], `MEMS`{`memidx*#35`} [], `ELEMS`{`elemidx*#35`} [], `DATAS`{`dataidx*#35`} [], `LOCALS`{`localidx*#36`} [], `LABELS`{`labelidx*#47`} []}] -[visit_exp `typeidx*#35`] -[visit_id typeidx*#35] +[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] [visit_exp []] -[visit_exp `funcidx*#35`] -[visit_id funcidx*#35] [visit_exp []] -[visit_exp `globalidx*#35`] -[visit_id globalidx*#35] [visit_exp []] -[visit_exp `tableidx*#35`] -[visit_id tableidx*#35] [visit_exp []] -[visit_exp `memidx*#35`] -[visit_id memidx*#35] [visit_exp []] -[visit_exp `elemidx*#35`] -[visit_id elemidx*#35] [visit_exp []] -[visit_exp `dataidx*#35`] -[visit_id dataidx*#35] [visit_exp []] -[visit_exp `localidx*#36`] -[visit_id localidx*#36] [visit_exp []] -[visit_exp `labelidx*#47`] -[visit_id labelidx*#47] [visit_exp []] => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_datamode{`typeidx*#35` : typeidx*, `funcidx*#35` : funcidx*, `globalidx*#35` : globalidx*, `tableidx*#35` : tableidx*, `memidx*#35` : memidx*, `elemidx*#35` : elemidx*, `dataidx*#35` : dataidx*, `localidx*#36` : localidx*, `labelidx*#47` : labelidx*}(`PASSIVE`_datamode) = {`TYPES`{`typeidx*#35`} [], `FUNCS`{`funcidx*#35`} [], `GLOBALS`{`globalidx*#35`} [], `TABLES`{`tableidx*#35`} [], `MEMS`{`memidx*#35`} [], `ELEMS`{`elemidx*#35`} [], `DATAS`{`dataidx*#35`} [], `LOCALS`{`localidx*#36`} [], `LABELS`{`labelidx*#47`} []} -[check_dims] funcidx funcidx#21 -[visit_exp `START`_start{funcidx#21}(funcidx)] -[visit_exp funcidx#21] -[visit_id funcidx#21] + def $free_datamode(`PASSIVE`_datamode) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} +[check_dims] funcidx +[visit_exp `START`_start(funcidx)] [visit_exp (funcidx)] [visit_exp funcidx] [visit_id funcidx] @@ -17905,13 +16984,9 @@ DecD free_module(module : module) : free [visit_id funcidx] not free => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_start{funcidx#21 : funcidx, funcidx : funcidx}(`START`_start{funcidx#21}(funcidx)) = $free_funcidx(funcidx) -[check_dims] externtype externtype#11 name#18 name_1 name_2 -[visit_exp `IMPORT`_import{name#18, externtype#11}(name_1, name_2, externtype)] -[visit_exp name#18] -[visit_id name#18] -[visit_exp externtype#11] -[visit_id externtype#11] + def $free_start{funcidx : funcidx}(`START`_start(funcidx)) = $free_funcidx(funcidx) +[check_dims] externtype name_1 name_2 +[visit_exp `IMPORT`_import(name_1, name_2, externtype)] [visit_exp (name_1, name_2, externtype)] [visit_exp name_1] [visit_id name_1] @@ -17924,13 +16999,9 @@ DecD free_module(module : module) : free [visit_id externtype] not free => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_import{name#18 : name, externtype#11 : externtype, name_1 : name, name_2 : name, externtype : externtype}(`IMPORT`_import{name#18, externtype#11}(name_1, name_2, externtype)) = $free_externtype(externtype) -[check_dims] externidx externidx#11 name name#31 -[visit_exp `EXPORT`_export{name#31, externidx#11}(name, externidx)] -[visit_exp name#31] -[visit_id name#31] -[visit_exp externidx#11] -[visit_id externidx#11] + def $free_import{name_1 : name, name_2 : name, externtype : externtype}(`IMPORT`_import(name_1, name_2, externtype)) = $free_externtype(externtype) +[check_dims] externidx name +[visit_exp `EXPORT`_export(name, externidx)] [visit_exp (name, externidx)] [visit_exp name] [visit_id name] @@ -17941,31 +17012,9 @@ DecD free_module(module : module) : free [visit_id externidx] not free => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_export{name#31 : name, externidx#11 : externidx, name : name, externidx : externidx}(`EXPORT`_export{name#31, externidx#11}(name, externidx)) = $free_externidx(externidx) -[check_dims] data data*#11 elem elem*#11 export export*#11 func func*#11 global global*#11 import import*#11 mem mem*#11 start start?#11 table table*#11 tag tag*#11 type type*#11 -[visit_exp `MODULE`_module{`type*#11`, `import*#11`, `tag*#11`, `global*#11`, `mem*#11`, `table*#11`, `func*#11`, `data*#11`, `elem*#11`, `start?#11`, `export*#11`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp `type*#11`] -[visit_id type*#11] -[visit_exp `import*#11`] -[visit_id import*#11] -[visit_exp `tag*#11`] -[visit_id tag*#11] -[visit_exp `global*#11`] -[visit_id global*#11] -[visit_exp `mem*#11`] -[visit_id mem*#11] -[visit_exp `table*#11`] -[visit_id table*#11] -[visit_exp `func*#11`] -[visit_id func*#11] -[visit_exp `data*#11`] -[visit_id data*#11] -[visit_exp `elem*#11`] -[visit_id elem*#11] -[visit_exp `start?#11`] -[visit_id start?#11] -[visit_exp `export*#11`] -[visit_id export*#11] + def $free_export{name : name, externidx : externidx}(`EXPORT`_export(name, externidx)) = $free_externidx(externidx) +[check_dims] data elem export func global import mem start table tag type +[visit_exp `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] [visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] [visit_exp type*{type <- `type*`}] [scope_enter type] @@ -18199,26 +17248,24 @@ DecD free_module(module : module) : free [visit_id export*] no dims => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_module{`type*#11` : type*, `import*#11` : import*, `tag*#11` : tag*, `global*#11` : global*, `mem*#11` : mem*, `table*#11` : table*, `func*#11` : func*, `data*#11` : data*, `elem*#11` : elem*, `start?#11` : start?, `export*#11` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*}(`MODULE`_module{`type*#11`, `import*#11`, `tag*#11`, `global*#11`, `mem*#11`, `table*#11`, `func*#11`, `data*#11`, `elem*#11`, `start?#11`, `export*#11`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) = $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`}) +++ $free_list($free_export(export)*{export <- `export*`}) + def $free_module{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*}(`MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) = $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`}) +++ $free_list($free_export(export)*{export <- `export*`}) [check_dims] module DecD funcidx_module(module : module) : funcidx* [visit_id module] not free -[check_dims] funcidx*#38 module +[check_dims] module [visit_exp module] [visit_id module] -[visit_exp $free_module(module).`FUNCS`_free{`funcidx*#38`}] +[visit_exp $free_module(module).`FUNCS`_free] [visit_exp $free_module(module)] [visit_exp module] [visit_id module] not free -[visit_exp `funcidx*#38`] -[visit_id funcidx*#38] => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $funcidx_module{module : module, `funcidx*#38` : funcidx*}(module) = $free_module(module).`FUNCS`_free{`funcidx*#38`} + def $funcidx_module{module : module}(module) = $free_module(module).`FUNCS`_free [check_dims] _ DecD dataidx_funcs(func*) : dataidx* [visit_id _] not free -[check_dims] dataidx*#38 func +[check_dims] func [visit_exp func*{func <- `func*`}] [scope_enter func] [visit_exp func] @@ -18228,7 +17275,7 @@ DecD dataidx_funcs(func*) : dataidx* [visit_exp `func*`] [visit_id func*] no dims [visit_id func*] -[visit_exp $free_list($free_func(func)*{func <- `func*`}).`DATAS`_free{`dataidx*#38`}] +[visit_exp $free_list($free_func(func)*{func <- `func*`}).`DATAS`_free] [visit_exp $free_list($free_func(func)*{func <- `func*`})] [visit_exp $free_func(func)*{func <- `func*`}] [scope_enter func] @@ -18240,17 +17287,11 @@ DecD dataidx_funcs(func*) : dataidx* [visit_exp `func*`] [visit_id func*] not free [visit_id func*] no dims -[visit_exp `dataidx*#38`] -[visit_id dataidx*#38] => ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $dataidx_funcs{`func*` : func*, `dataidx*#38` : dataidx*}(func*{func <- `func*`}) = $free_list($free_func(func)*{func <- `func*`}).`DATAS`_free{`dataidx*#38`} + def $dataidx_funcs{`func*` : func*}(func*{func <- `func*`}) = $free_list($free_func(func)*{func <- `func*`}).`DATAS`_free [check_dims] ---- 1 --- [check_dims] ---- 2 --- ---- 3 --- ---- 4 --- --- 1 --- [check_dims] --- 2 --- @@ -18262,116 +17303,173 @@ DecD dataidx_funcs(func*) : dataidx* --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter init] +[visit_id init] not free [visit_id init] no dims -[visit_id init] +[scope_enter valtype] +[visit_id valtype] not free [visit_id valtype] no dims -[visit_id valtype] -[check_dims] +[scope_exit valtype] +[scope_exit init] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter resulttype] +[visit_id resulttype] not free [visit_id resulttype] no dims -[visit_id resulttype] +[scope_enter localidx*] +[visit_id localidx*] not free [visit_id localidx*] no dims -[visit_id localidx*] +[scope_enter resulttype] [visit_id resulttype] not free [visit_id resulttype] no dims -[check_dims] -[check_dims] -[check_dims] +[scope_exit resulttype] +[scope_exit localidx*] +[scope_exit resulttype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[check_dims] +[check_dims] +[scope_enter deftype*] +[visit_id deftype*] not free [visit_id deftype*] no dims -[visit_id deftype*] +[scope_exit deftype*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter subtype*] +[visit_id subtype*] not free [visit_id subtype*] no dims -[visit_id subtype*] +[scope_exit subtype*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tagtype*] +[visit_id tagtype*] not free [visit_id tagtype*] no dims -[visit_id tagtype*] +[scope_exit tagtype*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter globaltype*] +[visit_id globaltype*] not free [visit_id globaltype*] no dims -[visit_id globaltype*] +[scope_exit globaltype*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter memtype*] +[visit_id memtype*] not free [visit_id memtype*] no dims -[visit_id memtype*] +[scope_exit memtype*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tabletype*] +[visit_id tabletype*] not free [visit_id tabletype*] no dims -[visit_id tabletype*] +[scope_exit tabletype*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter deftype*] +[visit_id deftype*] not free [visit_id deftype*] no dims -[visit_id deftype*] +[scope_exit deftype*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter datatype*] +[visit_id datatype*] not free [visit_id datatype*] no dims -[visit_id datatype*] +[scope_exit datatype*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter elemtype*] +[visit_id elemtype*] not free [visit_id elemtype*] no dims -[visit_id elemtype*] +[scope_exit elemtype*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter localtype*] +[visit_id localtype*] not free [visit_id localtype*] no dims -[visit_id localtype*] +[scope_exit localtype*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter resulttype*] +[visit_id resulttype*] not free [visit_id resulttype*] no dims -[visit_id resulttype*] +[scope_exit resulttype*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter resulttype?] +[visit_id resulttype?] not free [visit_id resulttype?] no dims -[visit_id resulttype?] +[scope_exit resulttype?] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter funcidx*] +[visit_id funcidx*] not free [visit_id funcidx*] no dims -[visit_id funcidx*] +[scope_exit funcidx*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- [check_dims] [check_dims] _ context DecD with_locals(context : context, localidx*, localtype*) : context @@ -18388,7 +17486,7 @@ DecD with_locals(context : context, localidx*, localtype*) : context => ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $with_locals{C : context}(C, [], []) = C -[check_dims] C i#3970 lct lct_1 localtype*#1 x x_1 +[check_dims] C lct lct_1 x x_1 [visit_exp C] [visit_id C] [visit_exp [x_1] ++ x*{x <- `x*`}] @@ -18417,18 +17515,14 @@ DecD with_locals(context : context, localidx*, localtype*) : context [visit_exp `lct*`] [visit_id lct*] no dims [visit_id lct*] -[visit_exp $with_locals(C[`LOCALS`_context{`localtype*#1`}[x_1!`%`_idx{i#3970}.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`})] -[visit_exp C[`LOCALS`_context{`localtype*#1`}[x_1!`%`_idx{i#3970}.0] = lct_1]] +[visit_exp $with_locals(C[`LOCALS`_context[x_1!`%`_idx.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`})] +[visit_exp C[`LOCALS`_context[x_1!`%`_idx.0] = lct_1]] [visit_exp C] [visit_id C] not free -[visit_exp `localtype*#1`] -[visit_id localtype*#1] -[visit_exp x_1!`%`_idx{i#3970}.0] -[visit_exp x_1!`%`_idx{i#3970}] +[visit_exp x_1!`%`_idx.0] +[visit_exp x_1!`%`_idx] [visit_exp x_1] [visit_id x_1] not free -[visit_exp i#3970] -[visit_id i#3970] [visit_exp lct_1] [visit_id lct_1] not free [visit_exp x*{x <- `x*`}] @@ -18451,7 +17545,7 @@ DecD with_locals(context : context, localidx*, localtype*) : context [visit_id lct*] no dims => ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $with_locals{C : context, x_1 : idx, `x*` : idx*, lct_1 : localtype, `lct*` : localtype*, `localtype*#1` : localtype*, i#3970 : nat}(C, [x_1] ++ x*{x <- `x*`}, [lct_1] ++ lct*{lct <- `lct*`}) = $with_locals(C[`LOCALS`_context{`localtype*#1`}[x_1!`%`_idx{i#3970}.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`}) + def $with_locals{C : context, x_1 : idx, `x*` : idx*, lct_1 : localtype, `lct*` : localtype*}(C, [x_1] ++ x*{x <- `x*`}, [lct_1] ++ lct*{lct <- `lct*`}) = $with_locals(C[`LOCALS`_context[x_1!`%`_idx.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`}) [check_dims] context valtype DecD clos_valtype(context : context, valtype : valtype) : valtype [visit_id context] not free @@ -18475,7 +17569,7 @@ DecD clos_moduletype(context : context, moduletype : moduletype) : moduletype [check_dims] _ DecD clos_deftypes(deftype*) : deftype* [visit_id _] not free -[check_dims] C deftype*#2 dt t +[check_dims] C dt t [visit_exp C] [visit_id C] [visit_exp t] @@ -18493,7 +17587,7 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `dt*`] [visit_id dt*] no dims [visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#2`}))] +[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context))] [visit_exp dt*{dt <- `dt*`}] [scope_enter dt] [visit_exp dt] @@ -18503,17 +17597,15 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `dt*`] [visit_id dt*] not free [visit_id dt*] no dims -[visit_exp $clos_deftypes(C.`TYPES`_context{`deftype*#2`})] -[visit_exp C.`TYPES`_context{`deftype*#2`}] +[visit_exp $clos_deftypes(C.`TYPES`_context)] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#2`] -[visit_id deftype*#2] => ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_valtype{C : context, t : valtype, `dt*` : deftype*, `deftype*#2` : deftype*}(C, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#2`})) -[check_dims] C deftype*#4 dt dt' + def $clos_valtype{C : context, t : valtype, `dt*` : deftype*}(C, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) +[check_dims] C dt dt' [visit_exp C] [visit_id C] [visit_exp dt] @@ -18531,7 +17623,7 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `dt'*`] [visit_id dt'*] no dims [visit_id dt'*] -[visit_exp (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#4`}))] +[visit_exp (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.`TYPES`_context))] [visit_exp dt'*{dt' <- `dt'*`}] [scope_enter dt'] [visit_exp dt'] @@ -18541,17 +17633,15 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `dt'*`] [visit_id dt'*] not free [visit_id dt'*] no dims -[visit_exp $clos_deftypes(C.`TYPES`_context{`deftype*#4`})] -[visit_exp C.`TYPES`_context{`deftype*#4`}] +[visit_exp $clos_deftypes(C.`TYPES`_context)] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#4`] -[visit_id deftype*#4] => ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_deftype{C : context, dt : deftype, `dt'*` : deftype*, `deftype*#4` : deftype*}(C, dt) = $subst_all_deftype(dt, (dt' : deftype <: typeuse)*{dt' <- `dt'*`}) - -- if (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#4`})) -[check_dims] C deftype*#6 dt jt + def $clos_deftype{C : context, dt : deftype, `dt'*` : deftype*}(C, dt) = $subst_all_deftype(dt, (dt' : deftype <: typeuse)*{dt' <- `dt'*`}) + -- if (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.`TYPES`_context)) +[check_dims] C dt jt [visit_exp C] [visit_id C] [visit_exp jt] @@ -18569,7 +17659,7 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `dt*`] [visit_id dt*] no dims [visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#6`}))] +[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context))] [visit_exp dt*{dt <- `dt*`}] [scope_enter dt] [visit_exp dt] @@ -18579,17 +17669,15 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `dt*`] [visit_id dt*] not free [visit_id dt*] no dims -[visit_exp $clos_deftypes(C.`TYPES`_context{`deftype*#6`})] -[visit_exp C.`TYPES`_context{`deftype*#6`}] +[visit_exp $clos_deftypes(C.`TYPES`_context)] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#6`] -[visit_id deftype*#6] => ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_tagtype{C : context, jt : tagtype, `dt*` : deftype*, `deftype*#6` : deftype*}(C, jt) = $subst_all_tagtype(jt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#6`})) -[check_dims] C deftype*#8 dt xt + def $clos_tagtype{C : context, jt : tagtype, `dt*` : deftype*}(C, jt) = $subst_all_tagtype(jt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) +[check_dims] C dt xt [visit_exp C] [visit_id C] [visit_exp xt] @@ -18607,7 +17695,7 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `dt*`] [visit_id dt*] no dims [visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#8`}))] +[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context))] [visit_exp dt*{dt <- `dt*`}] [scope_enter dt] [visit_exp dt] @@ -18617,17 +17705,15 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `dt*`] [visit_id dt*] not free [visit_id dt*] no dims -[visit_exp $clos_deftypes(C.`TYPES`_context{`deftype*#8`})] -[visit_exp C.`TYPES`_context{`deftype*#8`}] +[visit_exp $clos_deftypes(C.`TYPES`_context)] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#8`] -[visit_id deftype*#8] => ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_externtype{C : context, xt : externtype, `dt*` : deftype*, `deftype*#8` : deftype*}(C, xt) = $subst_all_externtype(xt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#8`})) -[check_dims] C deftype*#10 dt mmt + def $clos_externtype{C : context, xt : externtype, `dt*` : deftype*}(C, xt) = $subst_all_externtype(xt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) +[check_dims] C dt mmt [visit_exp C] [visit_id C] [visit_exp mmt] @@ -18645,7 +17731,7 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `dt*`] [visit_id dt*] no dims [visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#10`}))] +[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context))] [visit_exp dt*{dt <- `dt*`}] [scope_enter dt] [visit_exp dt] @@ -18655,16 +17741,14 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `dt*`] [visit_id dt*] not free [visit_id dt*] no dims -[visit_exp $clos_deftypes(C.`TYPES`_context{`deftype*#10`})] -[visit_exp C.`TYPES`_context{`deftype*#10`}] +[visit_exp $clos_deftypes(C.`TYPES`_context)] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#10`] -[visit_id deftype*#10] => ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_moduletype{C : context, mmt : moduletype, `dt*` : deftype*, `deftype*#10` : deftype*}(C, mmt) = $subst_all_moduletype(mmt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#10`})) + def $clos_moduletype{C : context, mmt : moduletype, `dt*` : deftype*}(C, mmt) = $subst_all_moduletype(mmt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) [check_dims] [visit_exp []] [visit_exp []] @@ -18766,14 +17850,10 @@ DecD clos_deftypes(deftype*) : deftype* [visit_id C] not free [visit_exp typeuse] [visit_id typeuse] not free -[check_dims] C heaptype heaptype#421 null?#419 +[check_dims] C heaptype [visit_exp C] [visit_id C] -[visit_exp `REF`_reftype{`null?#419`, heaptype#421}(`NULL`_null?{}, heaptype)] -[visit_exp `null?#419`] -[visit_id null?#419] -[visit_exp heaptype#421] -[visit_id heaptype#421] +[visit_exp `REF`_reftype(`NULL`_null?{}, heaptype)] [visit_exp (`NULL`_null?{}, heaptype)] [visit_exp `NULL`_null?{}] [visit_exp `NULL`_null] @@ -18825,12 +17905,10 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp ()] [check_dims] [check_dims] -[check_dims] C X*#465 t +[check_dims] C t [visit_exp C] [visit_id C] -[visit_exp `%`_resulttype{`X*#465`}(t*{t <- `t*`})] -[visit_exp `X*#465`] -[visit_id X*#465] +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -18852,18 +17930,12 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[check_dims] C X*#478 X*#530 X*#543 X*#556 i#4081 lct localidx*#47 localtype*#2 resulttype#27 t_1 t_2 x +[check_dims] C lct t_1 t_2 x [visit_exp C] [visit_id C] -[visit_exp `%->_%%`_instrtype{resulttype#27, `localidx*#47`}(`%`_resulttype{`X*#478`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#530`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#27] -[visit_id resulttype#27] -[visit_exp `localidx*#47`] -[visit_id localidx*#47] -[visit_exp (`%`_resulttype{`X*#478`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#530`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#478`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#478`] -[visit_id X*#478] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -18883,9 +17955,7 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `x*`] [visit_id x*] no dims [visit_id x*] -[visit_exp `%`_resulttype{`X*#530`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#530`] -[visit_id X*#530] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -18896,12 +17966,10 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C, `%`_resulttype{`X*#543`}(t_1*{t_1 <- `t_1*`}))] +[visit_exp (C, `%`_resulttype(t_1*{t_1 <- `t_1*`}))] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#543`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#543`] -[visit_id X*#543] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -18912,12 +17980,10 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp (C, `%`_resulttype{`X*#556`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp (C, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#556`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#556`] -[visit_id X*#556] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -18928,42 +17994,26 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[scope_enter i#4081] [scope_enter lct] -[scope_enter localtype*#2] [scope_enter x] -[visit_exp (C.`LOCALS`_context{`localtype*#2`}[x!`%`_idx{i#4081}.0] = lct)] -[visit_exp C.`LOCALS`_context{`localtype*#2`}[x!`%`_idx{i#4081}.0]] -[visit_exp C.`LOCALS`_context{`localtype*#2`}] +[visit_exp (C.`LOCALS`_context[x!`%`_idx.0] = lct)] +[visit_exp C.`LOCALS`_context[x!`%`_idx.0]] +[visit_exp C.`LOCALS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `localtype*#2`] -[visit_id localtype*#2] not free -[visit_exp x!`%`_idx{i#4081}.0] -[visit_exp x!`%`_idx{i#4081}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#4081] -[visit_id i#4081] not free [visit_exp lct] [visit_id lct] not free -[visit_id i#4081] not free [visit_id lct] not free -[visit_id localtype*#2] not free [visit_id x] not free [scope_exit x] -[scope_exit localtype*#2] [scope_exit lct] -[scope_exit i#4081] -[visit_exp `i#4081*`] -[visit_id i#4081*] no dims -[visit_id i#4081*] [visit_exp `lct*`] [visit_id lct*] no dims [visit_id lct*] -[visit_exp `localtype*#2*`] -[visit_id localtype*#2*] no dims -[visit_id localtype*#2*] [visit_exp `x*`] [visit_id x*] not free [visit_id x*] no dims @@ -18993,10 +18043,8 @@ DecD clos_deftypes(deftype*) : deftype* [visit_id deftype] not free [visit_exp comptype] [visit_id comptype] not free -[check_dims] C comptype deftype*#11 i#4103 typeidx typeidx#220 -[visit_exp `_IDX`_typeuse{typeidx#220}(typeidx)] -[visit_exp typeidx#220] -[visit_id typeidx#220] +[check_dims] C comptype typeidx +[visit_exp `_IDX`_typeuse(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] @@ -19004,39 +18052,43 @@ DecD clos_deftypes(deftype*) : deftype* [visit_id C] [visit_exp comptype] [visit_id comptype] -[visit_exp (C.`TYPES`_context{`deftype*#11`}[typeidx!`%`_typeidx{i#4103}.0], comptype)] -[visit_exp C.`TYPES`_context{`deftype*#11`}[typeidx!`%`_typeidx{i#4103}.0]] -[visit_exp C.`TYPES`_context{`deftype*#11`}] +[visit_exp (C.`TYPES`_context[typeidx!`%`_typeidx.0], comptype)] +[visit_exp C.`TYPES`_context[typeidx!`%`_typeidx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#11`] -[visit_id deftype*#11] -[visit_exp typeidx!`%`_typeidx{i#4103}.0] -[visit_exp typeidx!`%`_typeidx{i#4103}] +[visit_exp typeidx!`%`_typeidx.0] +[visit_exp typeidx!`%`_typeidx] [visit_exp typeidx] [visit_id typeidx] not free -[visit_exp i#4103] -[visit_id i#4103] [visit_exp comptype] [visit_id comptype] not free [check_dims] +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free +[visit_id typeidx] no dims +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id typeidx] no dims -[visit_id typeidx] [check_dims] +[check_dims] +[scope_enter typeidx] +[visit_id typeidx] not free +[visit_id typeidx] no dims +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit typeidx] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id typeidx] no dims -[visit_id typeidx] -[visit_id _] not free -[visit_id _] no dims [check_dims] [check_dims] [check_dims] @@ -19048,46 +18100,36 @@ DecD clos_deftypes(deftype*) : deftype* [check_dims] [check_dims] [check_dims] -[check_dims] C deftype*#12 dt i#4125 typeidx typeidx#222 +[check_dims] C dt typeidx [visit_exp C] [visit_id C] -[visit_exp `_IDX`_typeuse{typeidx#222}(typeidx)] -[visit_exp typeidx#222] -[visit_id typeidx#222] +[visit_exp `_IDX`_typeuse(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] -[visit_exp (C.`TYPES`_context{`deftype*#12`}[typeidx!`%`_typeidx{i#4125}.0] = dt)] -[visit_exp C.`TYPES`_context{`deftype*#12`}[typeidx!`%`_typeidx{i#4125}.0]] -[visit_exp C.`TYPES`_context{`deftype*#12`}] +[visit_exp (C.`TYPES`_context[typeidx!`%`_typeidx.0] = dt)] +[visit_exp C.`TYPES`_context[typeidx!`%`_typeidx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#12`] -[visit_id deftype*#12] -[visit_exp typeidx!`%`_typeidx{i#4125}.0] -[visit_exp typeidx!`%`_typeidx{i#4125}] +[visit_exp typeidx!`%`_typeidx.0] +[visit_exp typeidx!`%`_typeidx] [visit_exp typeidx] [visit_id typeidx] not free -[visit_exp i#4125] -[visit_id i#4125] [visit_exp dt] [visit_id dt] -[check_dims] C i n#501 st subtype*#1 +[check_dims] C i st [visit_exp C] [visit_id C] -[visit_exp `REC`_typeuse{n#501}(i)] -[visit_exp n#501] -[visit_id n#501] +[visit_exp `REC`_typeuse(i)] [visit_exp (i)] [visit_exp i] [visit_id i] -[visit_exp (C.`RECS`_context{`subtype*#1`}[i] = st)] -[visit_exp C.`RECS`_context{`subtype*#1`}[i]] -[visit_exp C.`RECS`_context{`subtype*#1`}] +[visit_exp (C.`RECS`_context[i] = st)] +[visit_exp C.`RECS`_context[i]] +[visit_exp C.`RECS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `subtype*#1`] -[visit_id subtype*#1] [visit_exp i] [visit_id i] not free [visit_exp st] @@ -19130,14 +18172,10 @@ DecD clos_deftypes(deftype*) : deftype* [visit_id C] not free [visit_exp packtype] [visit_id packtype] not free -[check_dims] C mut?#289 storagetype storagetype#137 +[check_dims] C storagetype [visit_exp C] [visit_id C] -[visit_exp `%%`_fieldtype{`mut?#289`, storagetype#137}(`MUT`_mut?{}, storagetype)] -[visit_exp `mut?#289`] -[visit_id mut?#289] -[visit_exp storagetype#137] -[visit_id storagetype#137] +[visit_exp `%%`_fieldtype(`MUT`_mut?{}, storagetype)] [visit_exp (`MUT`_mut?{}, storagetype)] [visit_exp `MUT`_mut?{}] [visit_exp `MUT`_mut] @@ -19149,14 +18187,12 @@ DecD clos_deftypes(deftype*) : deftype* [visit_id C] not free [visit_exp storagetype] [visit_id storagetype] not free -[check_dims] C X*#571 fieldtype +[check_dims] C fieldtype [visit_exp C] [visit_id C] -[visit_exp `STRUCT`_comptype(`%`_list{`X*#571`}(fieldtype*{fieldtype <- `fieldtype*`}))] -[visit_exp (`%`_list{`X*#571`}(fieldtype*{fieldtype <- `fieldtype*`}))] -[visit_exp `%`_list{`X*#571`}(fieldtype*{fieldtype <- `fieldtype*`})] -[visit_exp `X*#571`] -[visit_id X*#571] +[visit_exp `STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))] +[visit_exp (`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))] +[visit_exp `%`_list(fieldtype*{fieldtype <- `fieldtype*`})] [visit_exp (fieldtype*{fieldtype <- `fieldtype*`})] [visit_exp fieldtype*{fieldtype <- `fieldtype*`}] [scope_enter fieldtype] @@ -19178,12 +18214,10 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `fieldtype*`] [visit_id fieldtype*] not free [visit_id fieldtype*] no dims -[check_dims] C fieldtype fieldtype#7 +[check_dims] C fieldtype [visit_exp C] [visit_id C] -[visit_exp `ARRAY`_comptype{fieldtype#7}(fieldtype)] -[visit_exp fieldtype#7] -[visit_id fieldtype#7] +[visit_exp `ARRAY`_comptype(fieldtype)] [visit_exp (fieldtype)] [visit_exp fieldtype] [visit_id fieldtype] @@ -19192,16 +18226,12 @@ DecD clos_deftypes(deftype*) : deftype* [visit_id C] not free [visit_exp fieldtype] [visit_id fieldtype] not free -[check_dims] C X*#586 X*#599 X*#612 X*#625 resulttype#30 t_1 t_2 +[check_dims] C t_1 t_2 [visit_exp C] [visit_id C] -[visit_exp `FUNC%->%`_comptype{resulttype#30}(`%`_resulttype{`X*#586`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#599`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#30] -[visit_id resulttype#30] -[visit_exp (`%`_resulttype{`X*#586`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#599`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#586`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#586`] -[visit_id X*#586] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -19212,9 +18242,7 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp `%`_resulttype{`X*#599`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#599`] -[visit_id X*#599] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -19225,12 +18253,10 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C, `%`_resulttype{`X*#612`}(t_1*{t_1 <- `t_1*`}))] +[visit_exp (C, `%`_resulttype(t_1*{t_1 <- `t_1*`}))] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#612`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#612`] -[visit_id X*#612] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -19241,12 +18267,10 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp (C, `%`_resulttype{`X*#625`}(t_2*{t_2 <- `t_2*`}))] +[visit_exp (C, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#625`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#625`] -[visit_id X*#625] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -19257,44 +18281,28 @@ DecD clos_deftypes(deftype*) : deftype* [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C comptype comptype#215 comptype#227 comptype' deftype*#13 final?#215 final?#227 i#4171 i#4181 i#4191 typeidx#224 typeidx#236 typeidx#238 typeuse*#215 typeuse*#227 x x' x_0 +[check_dims] C comptype comptype' x x' x_0 [visit_exp C] [visit_id C] -[visit_exp `SUB`_subtype{`final?#215`, `typeuse*#215`, comptype#215}(`FINAL`_final?{}, `_IDX`_typeuse{typeidx#224}(x)*{typeidx#224 <- `typeidx#224*`, x <- `x*`}, comptype)] -[visit_exp `final?#215`] -[visit_id final?#215] -[visit_exp `typeuse*#215`] -[visit_id typeuse*#215] -[visit_exp comptype#215] -[visit_id comptype#215] -[visit_exp (`FINAL`_final?{}, `_IDX`_typeuse{typeidx#224}(x)*{typeidx#224 <- `typeidx#224*`, x <- `x*`}, comptype)] +[visit_exp `SUB`_subtype(`FINAL`_final?{}, `_IDX`_typeuse(x)*{x <- `x*`}, comptype)] +[visit_exp (`FINAL`_final?{}, `_IDX`_typeuse(x)*{x <- `x*`}, comptype)] [visit_exp `FINAL`_final?{}] [visit_exp `FINAL`_final] [visit_exp ()] -[visit_exp `_IDX`_typeuse{typeidx#224}(x)*{typeidx#224 <- `typeidx#224*`, x <- `x*`}] -[scope_enter typeidx#224] +[visit_exp `_IDX`_typeuse(x)*{x <- `x*`}] [scope_enter x] -[visit_exp `_IDX`_typeuse{typeidx#224}(x)] -[visit_exp typeidx#224] -[visit_id typeidx#224] not free +[visit_exp `_IDX`_typeuse(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_id typeidx#224] not free [visit_id x] not free [scope_exit x] -[scope_exit typeidx#224] -[visit_exp `typeidx#224*`] -[visit_id typeidx#224*] no dims -[visit_id typeidx#224*] [visit_exp `x*`] [visit_id x*] no dims [visit_id x*] [visit_exp comptype] [visit_id comptype] -[visit_exp `OK`_oktypeidx{typeidx#236}(x_0)] -[visit_exp typeidx#236] -[visit_id typeidx#236] +[visit_exp `OK`_oktypeidx(x_0)] [visit_exp (x_0)] [visit_exp x_0] [visit_id x_0] @@ -19310,131 +18318,60 @@ DecD clos_deftypes(deftype*) : deftype* [visit_id x*] not free [visit_id x*] no dims [visit_exp 1] -[scope_enter i#4171] -[scope_enter i#4181] [scope_enter x] -[visit_exp (x!`%`_idx{i#4171}.0 < x_0!`%`_idx{i#4181}.0)] -[visit_exp x!`%`_idx{i#4171}.0] -[visit_exp x!`%`_idx{i#4171}] +[visit_exp (x!`%`_idx.0 < x_0!`%`_idx.0)] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#4171] -[visit_id i#4171] not free -[visit_exp x_0!`%`_idx{i#4181}.0] -[visit_exp x_0!`%`_idx{i#4181}] +[visit_exp x_0!`%`_idx.0] +[visit_exp x_0!`%`_idx] [visit_exp x_0] [visit_id x_0] not free -[visit_exp i#4181] -[visit_id i#4181] not free -[visit_id i#4171] not free -[visit_id i#4181] not free [visit_id x] not free [scope_exit x] -[scope_exit i#4181] -[scope_exit i#4171] -[visit_exp `i#4171*`] -[visit_id i#4171*] no dims -[visit_id i#4171*] -[visit_exp `i#4181*`] -[visit_id i#4181*] no dims -[visit_id i#4181*] [visit_exp `x*`] [visit_id x*] not free [visit_id x*] no dims -[scope_enter comptype#227] [scope_enter comptype'] -[scope_enter deftype*#13] -[scope_enter final?#227] -[scope_enter i#4191] -[scope_enter typeidx#238*] -[scope_enter typeuse*#227] [scope_enter x] [scope_enter x'*] -[visit_exp ($unrolldt(C.`TYPES`_context{`deftype*#13`}[x!`%`_idx{i#4191}.0]) = `SUB`_subtype{`final?#227`, `typeuse*#227`, comptype#227}(?(), `_IDX`_typeuse{typeidx#238}(x')*{typeidx#238 <- `typeidx#238*`, x' <- `x'*`}, comptype'))] -[visit_exp $unrolldt(C.`TYPES`_context{`deftype*#13`}[x!`%`_idx{i#4191}.0])] -[visit_exp C.`TYPES`_context{`deftype*#13`}[x!`%`_idx{i#4191}.0]] -[visit_exp C.`TYPES`_context{`deftype*#13`}] +[visit_exp ($unrolldt(C.`TYPES`_context[x!`%`_idx.0]) = `SUB`_subtype(?(), `_IDX`_typeuse(x')*{x' <- `x'*`}, comptype'))] +[visit_exp $unrolldt(C.`TYPES`_context[x!`%`_idx.0])] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#13`] -[visit_id deftype*#13] not free -[visit_exp x!`%`_idx{i#4191}.0] -[visit_exp x!`%`_idx{i#4191}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#4191] -[visit_id i#4191] not free -[visit_exp `SUB`_subtype{`final?#227`, `typeuse*#227`, comptype#227}(?(), `_IDX`_typeuse{typeidx#238}(x')*{typeidx#238 <- `typeidx#238*`, x' <- `x'*`}, comptype')] -[visit_exp `final?#227`] -[visit_id final?#227] not free -[visit_exp `typeuse*#227`] -[visit_id typeuse*#227] not free -[visit_exp comptype#227] -[visit_id comptype#227] not free -[visit_exp (?(), `_IDX`_typeuse{typeidx#238}(x')*{typeidx#238 <- `typeidx#238*`, x' <- `x'*`}, comptype')] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `SUB`_subtype(?(), `_IDX`_typeuse(x')*{x' <- `x'*`}, comptype')] +[visit_exp (?(), `_IDX`_typeuse(x')*{x' <- `x'*`}, comptype')] [visit_exp ?()] -[visit_exp `_IDX`_typeuse{typeidx#238}(x')*{typeidx#238 <- `typeidx#238*`, x' <- `x'*`}] -[scope_enter typeidx#238] +[visit_exp `_IDX`_typeuse(x')*{x' <- `x'*`}] [scope_enter x'] -[visit_exp `_IDX`_typeuse{typeidx#238}(x')] -[visit_exp typeidx#238] -[visit_id typeidx#238] not free +[visit_exp `_IDX`_typeuse(x')] [visit_exp (x')] [visit_exp x'] [visit_id x'] not free -[visit_id typeidx#238] not free [visit_id x'] not free [scope_exit x'] -[scope_exit typeidx#238] -[visit_exp `typeidx#238*`] -[visit_id typeidx#238*] not free -[visit_id typeidx#238*] no dims [visit_exp `x'*`] [visit_id x'*] not free [visit_id x'*] no dims [visit_exp comptype'] [visit_id comptype'] not free -[visit_id comptype#227] not free [visit_id comptype'] not free -[visit_id deftype*#13] not free -[visit_id final?#227] not free -[visit_id i#4191] not free -[visit_id typeidx#238*] not free -[visit_id typeidx#238*] no dims -[visit_id typeuse*#227] not free [visit_id x] not free [visit_id x'*] not free [visit_id x'*] no dims [scope_exit x'*] [scope_exit x] -[scope_exit typeuse*#227] -[scope_exit typeidx#238*] -[scope_exit i#4191] -[scope_exit final?#227] -[scope_exit deftype*#13] [scope_exit comptype'] -[scope_exit comptype#227] -[visit_exp `comptype#227*`] -[visit_id comptype#227*] no dims -[visit_id comptype#227*] [visit_exp `comptype'*`] [visit_id comptype'*] no dims [visit_id comptype'*] -[visit_exp `deftype*#13*`] -[visit_id deftype*#13*] no dims -[visit_id deftype*#13*] -[visit_exp `final?#227*`] -[visit_id final?#227*] no dims -[visit_id final?#227*] -[visit_exp `i#4191*`] -[visit_id i#4191*] no dims -[visit_id i#4191*] -[visit_exp `typeidx#238**`] -[visit_id typeidx#238**] no dims -[visit_id typeidx#238**] -[visit_exp `typeuse*#227*`] -[visit_id typeuse*#227*] no dims -[visit_id typeuse*#227*] [visit_exp `x*`] [visit_id x*] not free [visit_id x*] no dims @@ -19476,10 +18413,8 @@ DecD before(typeuse : typeuse, typeidx : typeidx, nat : nat) : bool => ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec def $before{deftype : deftype, x : idx, i : nat}((deftype : deftype <: typeuse), x, i) = true -[check_dims] i i#4259 i#4269 typeidx typeidx#240 x -[visit_exp `_IDX`_typeuse{typeidx#240}(typeidx)] -[visit_exp typeidx#240] -[visit_id typeidx#240] +[check_dims] i typeidx x +[visit_exp `_IDX`_typeuse(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] @@ -19487,26 +18422,20 @@ DecD before(typeuse : typeuse, typeidx : typeidx, nat : nat) : bool [visit_id x] [visit_exp i] [visit_id i] -[visit_exp (typeidx!`%`_typeidx{i#4259}.0 < x!`%`_idx{i#4269}.0)] -[visit_exp typeidx!`%`_typeidx{i#4259}.0] -[visit_exp typeidx!`%`_typeidx{i#4259}] +[visit_exp (typeidx!`%`_typeidx.0 < x!`%`_idx.0)] +[visit_exp typeidx!`%`_typeidx.0] +[visit_exp typeidx!`%`_typeidx] [visit_exp typeidx] [visit_id typeidx] not free -[visit_exp i#4259] -[visit_id i#4259] -[visit_exp x!`%`_idx{i#4269}.0] -[visit_exp x!`%`_idx{i#4269}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#4269] -[visit_id i#4269] => ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $before{typeidx#240 : typeidx, typeidx : typeidx, x : idx, i : nat, i#4259 : nat, i#4269 : nat}(`_IDX`_typeuse{typeidx#240}(typeidx), x, i) = (typeidx!`%`_typeidx{i#4259}.0 < x!`%`_idx{i#4269}.0) -[check_dims] i j n#515 x -[visit_exp `REC`_typeuse{n#515}(j)] -[visit_exp n#515] -[visit_id n#515] + def $before{typeidx : typeidx, x : idx, i : nat}(`_IDX`_typeuse(typeidx), x, i) = (typeidx!`%`_typeidx.0 < x!`%`_idx.0) +[check_dims] i j x +[visit_exp `REC`_typeuse(j)] [visit_exp (j)] [visit_exp j] [visit_id j] @@ -19521,7 +18450,7 @@ DecD before(typeuse : typeuse, typeidx : typeidx, nat : nat) : bool [visit_id i] not free => ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $before{n#515 : n, j : n, x : idx, i : nat}(`REC`_typeuse{n#515}(j), x, i) = (j < i) + def $before{j : n, x : idx, i : nat}(`REC`_typeuse(j), x, i) = (j < i) [check_dims] context heaptype DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id context] not free @@ -19538,61 +18467,45 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype => ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec def $unrollht{C : context, deftype : deftype}(C, (deftype : deftype <: heaptype)) = $unrolldt(deftype) -[check_dims] C deftype*#14 i#4303 typeidx typeidx#242 +[check_dims] C typeidx [visit_exp C] [visit_id C] -[visit_exp `_IDX`_heaptype{typeidx#242}(typeidx)] -[visit_exp typeidx#242] -[visit_id typeidx#242] +[visit_exp `_IDX`_heaptype(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] -[visit_exp $unrolldt(C.`TYPES`_context{`deftype*#14`}[typeidx!`%`_typeidx{i#4303}.0])] -[visit_exp C.`TYPES`_context{`deftype*#14`}[typeidx!`%`_typeidx{i#4303}.0]] -[visit_exp C.`TYPES`_context{`deftype*#14`}] +[visit_exp $unrolldt(C.`TYPES`_context[typeidx!`%`_typeidx.0])] +[visit_exp C.`TYPES`_context[typeidx!`%`_typeidx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#14`] -[visit_id deftype*#14] -[visit_exp typeidx!`%`_typeidx{i#4303}.0] -[visit_exp typeidx!`%`_typeidx{i#4303}] +[visit_exp typeidx!`%`_typeidx.0] +[visit_exp typeidx!`%`_typeidx] [visit_exp typeidx] [visit_id typeidx] not free -[visit_exp i#4303] -[visit_id i#4303] => ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $unrollht{C : context, typeidx#242 : typeidx, typeidx : typeidx, `deftype*#14` : deftype*, i#4303 : nat}(C, `_IDX`_heaptype{typeidx#242}(typeidx)) = $unrolldt(C.`TYPES`_context{`deftype*#14`}[typeidx!`%`_typeidx{i#4303}.0]) -[check_dims] C i n#529 subtype*#2 + def $unrollht{C : context, typeidx : typeidx}(C, `_IDX`_heaptype(typeidx)) = $unrolldt(C.`TYPES`_context[typeidx!`%`_typeidx.0]) +[check_dims] C i [visit_exp C] [visit_id C] -[visit_exp `REC`_heaptype{n#529}(i)] -[visit_exp n#529] -[visit_id n#529] +[visit_exp `REC`_heaptype(i)] [visit_exp (i)] [visit_exp i] [visit_id i] -[visit_exp C.`RECS`_context{`subtype*#2`}[i]] -[visit_exp C.`RECS`_context{`subtype*#2`}] +[visit_exp C.`RECS`_context[i]] +[visit_exp C.`RECS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `subtype*#2`] -[visit_id subtype*#2] [visit_exp i] [visit_id i] not free => ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $unrollht{C : context, n#529 : n, i : n, `subtype*#2` : subtype*}(C, `REC`_heaptype{n#529}(i)) = C.`RECS`_context{`subtype*#2`}[i] -[check_dims] C compttype comptype comptype#257 comptype#269 comptype' final?#257 final?#269 i typeidx#254 typeuse typeuse' typeuse*#257 typeuse*#269 x + def $unrollht{C : context, i : n}(C, `REC`_heaptype(i)) = C.`RECS`_context[i] +[check_dims] C compttype comptype comptype' i typeuse typeuse' x [visit_exp C] [visit_id C] -[visit_exp `SUB`_subtype{`final?#257`, `typeuse*#257`, comptype#257}(`FINAL`_final?{}, typeuse*{typeuse <- `typeuse*`}, compttype)] -[visit_exp `final?#257`] -[visit_id final?#257] -[visit_exp `typeuse*#257`] -[visit_id typeuse*#257] -[visit_exp comptype#257] -[visit_id comptype#257] +[visit_exp `SUB`_subtype(`FINAL`_final?{}, typeuse*{typeuse <- `typeuse*`}, compttype)] [visit_exp (`FINAL`_final?{}, typeuse*{typeuse <- `typeuse*`}, compttype)] [visit_exp `FINAL`_final?{}] [visit_exp `FINAL`_final] @@ -19608,9 +18521,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id typeuse*] [visit_exp compttype] [visit_id compttype] -[visit_exp `OK`_oktypeidxnat{typeidx#254}(x, i)] -[visit_exp typeidx#254] -[visit_id typeidx#254] +[visit_exp `OK`_oktypeidxnat(x, i)] [visit_exp (x, i)] [visit_exp x] [visit_id x] @@ -19641,26 +18552,17 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `typeuse*`] [visit_id typeuse*] not free [visit_id typeuse*] no dims -[scope_enter comptype#269] [scope_enter comptype'] -[scope_enter final?#269] [scope_enter typeuse] [scope_enter typeuse'*] -[scope_enter typeuse*#269] -[visit_exp ($unrollht(C, (typeuse : typeuse <: heaptype)) = `SUB`_subtype{`final?#269`, `typeuse*#269`, comptype#269}(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype'))] +[visit_exp ($unrollht(C, (typeuse : typeuse <: heaptype)) = `SUB`_subtype(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype'))] [visit_exp $unrollht(C, (typeuse : typeuse <: heaptype))] [visit_exp C] [visit_id C] not free [visit_exp (typeuse : typeuse <: heaptype)] [visit_exp typeuse] [visit_id typeuse] not free -[visit_exp `SUB`_subtype{`final?#269`, `typeuse*#269`, comptype#269}(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype')] -[visit_exp `final?#269`] -[visit_id final?#269] not free -[visit_exp `typeuse*#269`] -[visit_id typeuse*#269] not free -[visit_exp comptype#269] -[visit_id comptype#269] not free +[visit_exp `SUB`_subtype(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype')] [visit_exp (?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype')] [visit_exp ?()] [visit_exp typeuse'*{typeuse' <- `typeuse'*`}] @@ -19674,37 +18576,22 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id typeuse'*] no dims [visit_exp comptype'] [visit_id comptype'] not free -[visit_id comptype#269] not free [visit_id comptype'] not free -[visit_id final?#269] not free [visit_id typeuse] not free [visit_id typeuse'*] not free [visit_id typeuse'*] no dims -[visit_id typeuse*#269] not free -[scope_exit typeuse*#269] [scope_exit typeuse'*] [scope_exit typeuse] -[scope_exit final?#269] [scope_exit comptype'] -[scope_exit comptype#269] -[visit_exp `comptype#269*`] -[visit_id comptype#269*] no dims -[visit_id comptype#269*] [visit_exp `comptype'*`] [visit_id comptype'*] no dims [visit_id comptype'*] -[visit_exp `final?#269*`] -[visit_id final?#269*] no dims -[visit_id final?#269*] [visit_exp `typeuse*`] [visit_id typeuse*] not free [visit_id typeuse*] no dims [visit_exp `typeuse'**`] [visit_id typeuse'**] no dims [visit_id typeuse'**] -[visit_exp `typeuse*#269*`] -[visit_id typeuse*#269*] no dims -[visit_id typeuse*#269*] [visit_exp (C, comptype)] [visit_exp C] [visit_id C] not free @@ -19723,30 +18610,24 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `comptype'*`] [visit_id comptype'*] not free [visit_id comptype'*] no dims -[check_dims] C X*#650 typeidx#266 x +[check_dims] C x [visit_exp C] [visit_id C] -[visit_exp `REC`_rectype(`%`_list{`X*#650`}([]))] -[visit_exp (`%`_list{`X*#650`}([]))] -[visit_exp `%`_list{`X*#650`}([])] -[visit_exp `X*#650`] -[visit_id X*#650] +[visit_exp `REC`_rectype(`%`_list([]))] +[visit_exp (`%`_list([]))] +[visit_exp `%`_list([])] [visit_exp ([])] [visit_exp []] -[visit_exp `OK`_oktypeidx{typeidx#266}(x)] -[visit_exp typeidx#266] -[visit_id typeidx#266] +[visit_exp `OK`_oktypeidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[check_dims] C X*#673 X*#686 i#4397 i#4407 subtype subtype_1 typeidx#278 typeidx#290 typeidx#302 x +[check_dims] C subtype subtype_1 x [visit_exp C] [visit_id C] -[visit_exp `REC`_rectype(`%`_list{`X*#673`}([subtype_1] ++ subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list{`X*#673`}([subtype_1] ++ subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list{`X*#673`}([subtype_1] ++ subtype*{subtype <- `subtype*`})] -[visit_exp `X*#673`] -[visit_id X*#673] +[visit_exp `REC`_rectype(`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`})] [visit_exp ([subtype_1] ++ subtype*{subtype <- `subtype*`})] [visit_exp [subtype_1] ++ subtype*{subtype <- `subtype*`}] [visit_exp [subtype_1]] @@ -19761,31 +18642,25 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `subtype*`] [visit_id subtype*] no dims [visit_id subtype*] -[visit_exp `OK`_oktypeidx{typeidx#278}(x)] -[visit_exp typeidx#278] -[visit_id typeidx#278] +[visit_exp `OK`_oktypeidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp (C, subtype_1, `OK`_oktypeidx{typeidx#290}(x))] +[visit_exp (C, subtype_1, `OK`_oktypeidx(x))] [visit_exp C] [visit_id C] not free [visit_exp subtype_1] [visit_id subtype_1] not free -[visit_exp `OK`_oktypeidx{typeidx#290}(x)] -[visit_exp typeidx#290] -[visit_id typeidx#290] +[visit_exp `OK`_oktypeidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp (C, `REC`_rectype(`%`_list{`X*#686`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidx{typeidx#302}(`%`_typeidx{i#4407}((x!`%`_idx{i#4397}.0 + 1))))] +[visit_exp (C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidx(`%`_typeidx((x!`%`_idx.0 + 1))))] [visit_exp C] [visit_id C] not free -[visit_exp `REC`_rectype(`%`_list{`X*#686`}(subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list{`X*#686`}(subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list{`X*#686`}(subtype*{subtype <- `subtype*`})] -[visit_exp `X*#686`] -[visit_id X*#686] +[visit_exp `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list(subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list(subtype*{subtype <- `subtype*`})] [visit_exp (subtype*{subtype <- `subtype*`})] [visit_exp subtype*{subtype <- `subtype*`}] [scope_enter subtype] @@ -19796,30 +18671,22 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `subtype*`] [visit_id subtype*] not free [visit_id subtype*] no dims -[visit_exp `OK`_oktypeidx{typeidx#302}(`%`_typeidx{i#4407}((x!`%`_idx{i#4397}.0 + 1)))] -[visit_exp typeidx#302] -[visit_id typeidx#302] -[visit_exp (`%`_typeidx{i#4407}((x!`%`_idx{i#4397}.0 + 1)))] -[visit_exp `%`_typeidx{i#4407}((x!`%`_idx{i#4397}.0 + 1))] -[visit_exp i#4407] -[visit_id i#4407] -[visit_exp ((x!`%`_idx{i#4397}.0 + 1))] -[visit_exp (x!`%`_idx{i#4397}.0 + 1)] -[visit_exp x!`%`_idx{i#4397}.0] -[visit_exp x!`%`_idx{i#4397}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#4397] -[visit_id i#4397] +[visit_exp `OK`_oktypeidx(`%`_typeidx((x!`%`_idx.0 + 1)))] +[visit_exp (`%`_typeidx((x!`%`_idx.0 + 1)))] +[visit_exp `%`_typeidx((x!`%`_idx.0 + 1))] +[visit_exp ((x!`%`_idx.0 + 1))] +[visit_exp (x!`%`_idx.0 + 1)] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free [visit_exp 1] -[check_dims] C X*#701 X*#716 datatype*#1 deftype*#15 deftype*#16 elemtype*#1 funcidx*#39 globaltype*#1 localtype*#3 memtype*#1 resulttype*#1 resulttype?#1 subtype subtype*#3 tabletype*#1 tagtype*#1 typeidx#314 typeidx#326 x +[check_dims] C subtype x [visit_exp C] [visit_id C] -[visit_exp `REC`_rectype(`%`_list{`X*#701`}(subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list{`X*#701`}(subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list{`X*#701`}(subtype*{subtype <- `subtype*`})] -[visit_exp `X*#701`] -[visit_id X*#701] +[visit_exp `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list(subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list(subtype*{subtype <- `subtype*`})] [visit_exp (subtype*{subtype <- `subtype*`})] [visit_exp subtype*{subtype <- `subtype*`}] [scope_enter subtype] @@ -19830,20 +18697,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `subtype*`] [visit_id subtype*] no dims [visit_id subtype*] -[visit_exp `OK`_oktypeidx{typeidx#314}(x)] -[visit_exp typeidx#314] -[visit_id typeidx#314] +[visit_exp `OK`_oktypeidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp ({`TYPES`{`deftype*#15`} [], `RECS`{`subtype*#3`} subtype*{subtype <- `subtype*`}, `TAGS`{`tagtype*#1`} [], `GLOBALS`{`globaltype*#1`} [], `MEMS`{`memtype*#1`} [], `TABLES`{`tabletype*#1`} [], `FUNCS`{`deftype*#16`} [], `DATAS`{`datatype*#1`} [], `ELEMS`{`elemtype*#1`} [], `LOCALS`{`localtype*#3`} [], `LABELS`{`resulttype*#1`} [], `RETURN`{`resulttype?#1`} ?(), `REFS`{`funcidx*#39`} []} +++ C, `REC`_rectype(`%`_list{`X*#716`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat{typeidx#326}(x, 0))] -[visit_exp {`TYPES`{`deftype*#15`} [], `RECS`{`subtype*#3`} subtype*{subtype <- `subtype*`}, `TAGS`{`tagtype*#1`} [], `GLOBALS`{`globaltype*#1`} [], `MEMS`{`memtype*#1`} [], `TABLES`{`tabletype*#1`} [], `FUNCS`{`deftype*#16`} [], `DATAS`{`datatype*#1`} [], `ELEMS`{`elemtype*#1`} [], `LOCALS`{`localtype*#3`} [], `LABELS`{`resulttype*#1`} [], `RETURN`{`resulttype?#1`} ?(), `REFS`{`funcidx*#39`} []} +++ C] -[visit_exp {`TYPES`{`deftype*#15`} [], `RECS`{`subtype*#3`} subtype*{subtype <- `subtype*`}, `TAGS`{`tagtype*#1`} [], `GLOBALS`{`globaltype*#1`} [], `MEMS`{`memtype*#1`} [], `TABLES`{`tabletype*#1`} [], `FUNCS`{`deftype*#16`} [], `DATAS`{`datatype*#1`} [], `ELEMS`{`elemtype*#1`} [], `LOCALS`{`localtype*#3`} [], `LABELS`{`resulttype*#1`} [], `RETURN`{`resulttype?#1`} ?(), `REFS`{`funcidx*#39`} []}] -[visit_exp `deftype*#15`] -[visit_id deftype*#15] -[visit_exp []] -[visit_exp `subtype*#3`] -[visit_id subtype*#3] +[visit_exp ({`TYPES` [], `RECS` subtype*{subtype <- `subtype*`}, `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []} +++ C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat(x, 0))] +[visit_exp {`TYPES` [], `RECS` subtype*{subtype <- `subtype*`}, `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []} +++ C] +[visit_exp {`TYPES` [], `RECS` subtype*{subtype <- `subtype*`}, `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] +[visit_exp []] [visit_exp subtype*{subtype <- `subtype*`}] [scope_enter subtype] [visit_exp subtype] @@ -19853,46 +18714,22 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `subtype*`] [visit_id subtype*] not free [visit_id subtype*] no dims -[visit_exp `tagtype*#1`] -[visit_id tagtype*#1] [visit_exp []] -[visit_exp `globaltype*#1`] -[visit_id globaltype*#1] [visit_exp []] -[visit_exp `memtype*#1`] -[visit_id memtype*#1] [visit_exp []] -[visit_exp `tabletype*#1`] -[visit_id tabletype*#1] [visit_exp []] -[visit_exp `deftype*#16`] -[visit_id deftype*#16] [visit_exp []] -[visit_exp `datatype*#1`] -[visit_id datatype*#1] [visit_exp []] -[visit_exp `elemtype*#1`] -[visit_id elemtype*#1] [visit_exp []] -[visit_exp `localtype*#3`] -[visit_id localtype*#3] [visit_exp []] -[visit_exp `resulttype*#1`] -[visit_id resulttype*#1] [visit_exp []] -[visit_exp `resulttype?#1`] -[visit_id resulttype?#1] [visit_exp ?()] -[visit_exp `funcidx*#39`] -[visit_id funcidx*#39] [visit_exp []] [visit_exp C] [visit_id C] not free -[visit_exp `REC`_rectype(`%`_list{`X*#716`}(subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list{`X*#716`}(subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list{`X*#716`}(subtype*{subtype <- `subtype*`})] -[visit_exp `X*#716`] -[visit_id X*#716] +[visit_exp `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list(subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list(subtype*{subtype <- `subtype*`})] [visit_exp (subtype*{subtype <- `subtype*`})] [visit_exp subtype*{subtype <- `subtype*`}] [scope_enter subtype] @@ -19903,39 +18740,31 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `subtype*`] [visit_id subtype*] not free [visit_id subtype*] no dims -[visit_exp `OK`_oktypeidxnat{typeidx#326}(x, 0)] -[visit_exp typeidx#326] -[visit_id typeidx#326] +[visit_exp `OK`_oktypeidxnat(x, 0)] [visit_exp (x, 0)] [visit_exp x] [visit_id x] not free [visit_exp 0] -[check_dims] C X*#741 i typeidx#338 x +[check_dims] C i x [visit_exp C] [visit_id C] -[visit_exp `REC`_rectype(`%`_list{`X*#741`}([]))] -[visit_exp (`%`_list{`X*#741`}([]))] -[visit_exp `%`_list{`X*#741`}([])] -[visit_exp `X*#741`] -[visit_id X*#741] +[visit_exp `REC`_rectype(`%`_list([]))] +[visit_exp (`%`_list([]))] +[visit_exp `%`_list([])] [visit_exp ([])] [visit_exp []] -[visit_exp `OK`_oktypeidxnat{typeidx#338}(x, i)] -[visit_exp typeidx#338] -[visit_id typeidx#338] +[visit_exp `OK`_oktypeidxnat(x, i)] [visit_exp (x, i)] [visit_exp x] [visit_id x] [visit_exp i] [visit_id i] -[check_dims] C X*#764 X*#777 i i#4503 i#4513 subtype subtype_1 typeidx#350 typeidx#362 typeidx#374 x +[check_dims] C i subtype subtype_1 x [visit_exp C] [visit_id C] -[visit_exp `REC`_rectype(`%`_list{`X*#764`}([subtype_1] ++ subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list{`X*#764`}([subtype_1] ++ subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list{`X*#764`}([subtype_1] ++ subtype*{subtype <- `subtype*`})] -[visit_exp `X*#764`] -[visit_id X*#764] +[visit_exp `REC`_rectype(`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`})] [visit_exp ([subtype_1] ++ subtype*{subtype <- `subtype*`})] [visit_exp [subtype_1] ++ subtype*{subtype <- `subtype*`}] [visit_exp [subtype_1]] @@ -19950,35 +18779,29 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `subtype*`] [visit_id subtype*] no dims [visit_id subtype*] -[visit_exp `OK`_oktypeidxnat{typeidx#350}(x, i)] -[visit_exp typeidx#350] -[visit_id typeidx#350] +[visit_exp `OK`_oktypeidxnat(x, i)] [visit_exp (x, i)] [visit_exp x] [visit_id x] [visit_exp i] [visit_id i] -[visit_exp (C, subtype_1, `OK`_oktypeidxnat{typeidx#362}(x, i))] +[visit_exp (C, subtype_1, `OK`_oktypeidxnat(x, i))] [visit_exp C] [visit_id C] not free [visit_exp subtype_1] [visit_id subtype_1] not free -[visit_exp `OK`_oktypeidxnat{typeidx#362}(x, i)] -[visit_exp typeidx#362] -[visit_id typeidx#362] +[visit_exp `OK`_oktypeidxnat(x, i)] [visit_exp (x, i)] [visit_exp x] [visit_id x] not free [visit_exp i] [visit_id i] not free -[visit_exp (C, `REC`_rectype(`%`_list{`X*#777`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat{typeidx#374}(`%`_typeidx{i#4513}((x!`%`_idx{i#4503}.0 + 1)), (i + 1)))] +[visit_exp (C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat(`%`_typeidx((x!`%`_idx.0 + 1)), (i + 1)))] [visit_exp C] [visit_id C] not free -[visit_exp `REC`_rectype(`%`_list{`X*#777`}(subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list{`X*#777`}(subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list{`X*#777`}(subtype*{subtype <- `subtype*`})] -[visit_exp `X*#777`] -[visit_id X*#777] +[visit_exp `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))] +[visit_exp (`%`_list(subtype*{subtype <- `subtype*`}))] +[visit_exp `%`_list(subtype*{subtype <- `subtype*`})] [visit_exp (subtype*{subtype <- `subtype*`})] [visit_exp subtype*{subtype <- `subtype*`}] [scope_enter subtype] @@ -19989,58 +18812,44 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `subtype*`] [visit_id subtype*] not free [visit_id subtype*] no dims -[visit_exp `OK`_oktypeidxnat{typeidx#374}(`%`_typeidx{i#4513}((x!`%`_idx{i#4503}.0 + 1)), (i + 1))] -[visit_exp typeidx#374] -[visit_id typeidx#374] -[visit_exp (`%`_typeidx{i#4513}((x!`%`_idx{i#4503}.0 + 1)), (i + 1))] -[visit_exp `%`_typeidx{i#4513}((x!`%`_idx{i#4503}.0 + 1))] -[visit_exp i#4513] -[visit_id i#4513] -[visit_exp ((x!`%`_idx{i#4503}.0 + 1))] -[visit_exp (x!`%`_idx{i#4503}.0 + 1)] -[visit_exp x!`%`_idx{i#4503}.0] -[visit_exp x!`%`_idx{i#4503}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#4503] -[visit_id i#4503] +[visit_exp `OK`_oktypeidxnat(`%`_typeidx((x!`%`_idx.0 + 1)), (i + 1))] +[visit_exp (`%`_typeidx((x!`%`_idx.0 + 1)), (i + 1))] +[visit_exp `%`_typeidx((x!`%`_idx.0 + 1))] +[visit_exp ((x!`%`_idx.0 + 1))] +[visit_exp (x!`%`_idx.0 + 1)] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free [visit_exp 1] [visit_exp (i + 1)] [visit_exp i] [visit_id i] not free [visit_exp 1] -[check_dims] C X*#792 i n n#541 rectype rectype#577 subtype typeidx#386 x +[check_dims] C i n rectype subtype x [visit_exp C] [visit_id C] -[visit_exp `_DEF`_deftype{rectype#577, n#541}(rectype, i)] -[visit_exp rectype#577] -[visit_id rectype#577] -[visit_exp n#541] -[visit_id n#541] +[visit_exp `_DEF`_deftype(rectype, i)] [visit_exp (rectype, i)] [visit_exp rectype] [visit_id rectype] [visit_exp i] [visit_id i] -[visit_exp (C, rectype, `OK`_oktypeidx{typeidx#386}(x))] +[visit_exp (C, rectype, `OK`_oktypeidx(x))] [visit_exp C] [visit_id C] not free [visit_exp rectype] [visit_id rectype] not free -[visit_exp `OK`_oktypeidx{typeidx#386}(x)] -[visit_exp typeidx#386] -[visit_id typeidx#386] +[visit_exp `OK`_oktypeidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp (rectype = `REC`_rectype(`%`_list{`X*#792`}(subtype^n{subtype <- `subtype*`})))] +[visit_exp (rectype = `REC`_rectype(`%`_list(subtype^n{subtype <- `subtype*`})))] [visit_exp rectype] [visit_id rectype] not free -[visit_exp `REC`_rectype(`%`_list{`X*#792`}(subtype^n{subtype <- `subtype*`}))] -[visit_exp (`%`_list{`X*#792`}(subtype^n{subtype <- `subtype*`}))] -[visit_exp `%`_list{`X*#792`}(subtype^n{subtype <- `subtype*`})] -[visit_exp `X*#792`] -[visit_id X*#792] +[visit_exp `REC`_rectype(`%`_list(subtype^n{subtype <- `subtype*`}))] +[visit_exp (`%`_list(subtype^n{subtype <- `subtype*`}))] +[visit_exp `%`_list(subtype^n{subtype <- `subtype*`})] [visit_exp (subtype^n{subtype <- `subtype*`})] [visit_exp subtype^n{subtype <- `subtype*`}] [scope_enter subtype] @@ -20064,37 +18873,23 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [check_dims] [check_dims] [check_dims] -[check_dims] C i#4549 i#4584 k m n u64#48 u64?#47 +[check_dims] C k m n [visit_exp C] [visit_id C] -[visit_exp `[%..%]`_limits{u64#48, `u64?#47`}(`%`_u64{i#4549}(n), `%`_u64{i#4584}(m)?{i#4584 <- `i#4584?`, m <- `m?`})] -[visit_exp u64#48] -[visit_id u64#48] -[visit_exp `u64?#47`] -[visit_id u64?#47] -[visit_exp (`%`_u64{i#4549}(n), `%`_u64{i#4584}(m)?{i#4584 <- `i#4584?`, m <- `m?`})] -[visit_exp `%`_u64{i#4549}(n)] -[visit_exp i#4549] -[visit_id i#4549] +[visit_exp `[%..%]`_limits(`%`_u64(n), `%`_u64(m)?{m <- `m?`})] +[visit_exp (`%`_u64(n), `%`_u64(m)?{m <- `m?`})] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `%`_u64{i#4584}(m)?{i#4584 <- `i#4584?`, m <- `m?`}] -[scope_enter i#4584] +[visit_exp `%`_u64(m)?{m <- `m?`}] [scope_enter m] -[visit_exp `%`_u64{i#4584}(m)] -[visit_exp i#4584] -[visit_id i#4584] not free +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] not free -[visit_id i#4584] not free [visit_id m] not free [scope_exit m] -[scope_exit i#4584] -[visit_exp `i#4584?`] -[visit_id i#4584?] no dims -[visit_id i#4584?] [visit_exp `m?`] [visit_id m?] no dims [visit_id m?] @@ -20122,7 +18917,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `m?`] [visit_id m?] not free [visit_id m?] no dims -[check_dims] C X*#807 X*#820 resulttype#33 t_1 t_2 typeuse +[check_dims] C t_1 t_2 typeuse [visit_exp C] [visit_id C] [visit_exp typeuse] @@ -20132,18 +18927,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp typeuse] [visit_id typeuse] not free -[visit_exp (typeuse, C, `FUNC%->%`_comptype{resulttype#33}(`%`_resulttype{`X*#807`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#820`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (typeuse, C, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp typeuse] [visit_id typeuse] not free [visit_exp C] [visit_id C] not free -[visit_exp `FUNC%->%`_comptype{resulttype#33}(`%`_resulttype{`X*#807`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#820`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#33] -[visit_id resulttype#33] -[visit_exp (`%`_resulttype{`X*#807`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#820`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#807`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#807`] -[visit_id X*#807] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -20154,9 +18945,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp `%`_resulttype{`X*#820`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#820`] -[visit_id X*#820] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -20167,14 +18956,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[check_dims] C mut?#333 t valtype#247 +[check_dims] C t [visit_exp C] [visit_id C] -[visit_exp `%%`_globaltype{`mut?#333`, valtype#247}(`MUT`_mut?{}, t)] -[visit_exp `mut?#333`] -[visit_id mut?#333] -[visit_exp valtype#247] -[visit_id valtype#247] +[visit_exp `%%`_globaltype(`MUT`_mut?{}, t)] [visit_exp (`MUT`_mut?{}, t)] [visit_exp `MUT`_mut?{}] [visit_exp `MUT`_mut] @@ -20186,14 +18971,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp t] [visit_id t] not free -[check_dims] C addrtype addrtype#297 limits limits#297 +[check_dims] C addrtype limits [visit_exp C] [visit_id C] -[visit_exp `%%PAGE`_memtype{addrtype#297, limits#297}(addrtype, limits)] -[visit_exp addrtype#297] -[visit_id addrtype#297] -[visit_exp limits#297] -[visit_id limits#297] +[visit_exp `%%PAGE`_memtype(addrtype, limits)] [visit_exp (addrtype, limits)] [visit_exp addrtype] [visit_id addrtype] @@ -20207,16 +18988,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp (2 ^ 16)] [visit_exp 2] [visit_exp 16] -[check_dims] C addrtype addrtype#309 limits limits#309 reftype reftype#311 +[check_dims] C addrtype limits reftype [visit_exp C] [visit_id C] -[visit_exp `%%%`_tabletype{addrtype#309, limits#309, reftype#311}(addrtype, limits, reftype)] -[visit_exp addrtype#309] -[visit_id addrtype#309] -[visit_exp limits#309] -[visit_id limits#309] -[visit_exp reftype#311] -[visit_id reftype#311] +[visit_exp `%%%`_tabletype(addrtype, limits, reftype)] [visit_exp (addrtype, limits, reftype)] [visit_exp addrtype] [visit_id addrtype] @@ -20242,12 +19017,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp reftype] [visit_id reftype] not free -[check_dims] C tagtype tagtype#89 +[check_dims] C tagtype [visit_exp C] [visit_id C] -[visit_exp `TAG`_externtype{tagtype#89}(tagtype)] -[visit_exp tagtype#89] -[visit_id tagtype#89] +[visit_exp `TAG`_externtype(tagtype)] [visit_exp (tagtype)] [visit_exp tagtype] [visit_id tagtype] @@ -20256,12 +19029,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp tagtype] [visit_id tagtype] not free -[check_dims] C globaltype globaltype#101 +[check_dims] C globaltype [visit_exp C] [visit_id C] -[visit_exp `GLOBAL`_externtype{globaltype#101}(globaltype)] -[visit_exp globaltype#101] -[visit_id globaltype#101] +[visit_exp `GLOBAL`_externtype(globaltype)] [visit_exp (globaltype)] [visit_exp globaltype] [visit_id globaltype] @@ -20270,12 +19041,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp globaltype] [visit_id globaltype] not free -[check_dims] C memtype memtype#113 +[check_dims] C memtype [visit_exp C] [visit_id C] -[visit_exp `MEM`_externtype{memtype#113}(memtype)] -[visit_exp memtype#113] -[visit_id memtype#113] +[visit_exp `MEM`_externtype(memtype)] [visit_exp (memtype)] [visit_exp memtype] [visit_id memtype] @@ -20284,12 +19053,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp memtype] [visit_id memtype] not free -[check_dims] C tabletype tabletype#127 +[check_dims] C tabletype [visit_exp C] [visit_id C] -[visit_exp `TABLE`_externtype{tabletype#127}(tabletype)] -[visit_exp tabletype#127] -[visit_id tabletype#127] +[visit_exp `TABLE`_externtype(tabletype)] [visit_exp (tabletype)] [visit_exp tabletype] [visit_id tabletype] @@ -20298,12 +19065,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp tabletype] [visit_id tabletype] not free -[check_dims] C X*#835 X*#848 resulttype#36 t_1 t_2 typeuse typeuse#17 +[check_dims] C t_1 t_2 typeuse [visit_exp C] [visit_id C] -[visit_exp `FUNC`_externtype{typeuse#17}(typeuse)] -[visit_exp typeuse#17] -[visit_id typeuse#17] +[visit_exp `FUNC`_externtype(typeuse)] [visit_exp (typeuse)] [visit_exp typeuse] [visit_id typeuse] @@ -20312,18 +19077,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp typeuse] [visit_id typeuse] not free -[visit_exp (typeuse, C, `FUNC%->%`_comptype{resulttype#36}(`%`_resulttype{`X*#835`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#848`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (typeuse, C, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp typeuse] [visit_id typeuse] not free [visit_exp C] [visit_id C] not free -[visit_exp `FUNC%->%`_comptype{resulttype#36}(`%`_resulttype{`X*#835`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#848`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#36] -[visit_id resulttype#36] -[visit_exp (`%`_resulttype{`X*#835`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#848`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#835`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#835`] -[visit_id X*#835] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -20334,9 +19095,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp `%`_resulttype{`X*#848`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#848`] -[visit_id X*#848] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -20427,7 +19186,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp ()] [visit_exp `EQ`_heaptype] [visit_exp ()] -[check_dims] C X*#863 deftype fieldtype +[check_dims] C deftype fieldtype [visit_exp C] [visit_id C] [visit_exp (deftype : deftype <: heaptype)] @@ -20435,14 +19194,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id deftype] [visit_exp `STRUCT`_heaptype] [visit_exp ()] -[visit_exp (deftype, `STRUCT`_comptype(`%`_list{`X*#863`}(fieldtype*{fieldtype <- `fieldtype*`})))] +[visit_exp (deftype, `STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`})))] [visit_exp deftype] [visit_id deftype] not free -[visit_exp `STRUCT`_comptype(`%`_list{`X*#863`}(fieldtype*{fieldtype <- `fieldtype*`}))] -[visit_exp (`%`_list{`X*#863`}(fieldtype*{fieldtype <- `fieldtype*`}))] -[visit_exp `%`_list{`X*#863`}(fieldtype*{fieldtype <- `fieldtype*`})] -[visit_exp `X*#863`] -[visit_id X*#863] +[visit_exp `STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))] +[visit_exp (`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))] +[visit_exp `%`_list(fieldtype*{fieldtype <- `fieldtype*`})] [visit_exp (fieldtype*{fieldtype <- `fieldtype*`})] [visit_exp fieldtype*{fieldtype <- `fieldtype*`}] [scope_enter fieldtype] @@ -20453,7 +19210,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `fieldtype*`] [visit_id fieldtype*] no dims [visit_id fieldtype*] -[check_dims] C deftype fieldtype fieldtype#9 +[check_dims] C deftype fieldtype [visit_exp C] [visit_id C] [visit_exp (deftype : deftype <: heaptype)] @@ -20461,16 +19218,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id deftype] [visit_exp `ARRAY`_heaptype] [visit_exp ()] -[visit_exp (deftype, `ARRAY`_comptype{fieldtype#9}(fieldtype))] +[visit_exp (deftype, `ARRAY`_comptype(fieldtype))] [visit_exp deftype] [visit_id deftype] not free -[visit_exp `ARRAY`_comptype{fieldtype#9}(fieldtype)] -[visit_exp fieldtype#9] -[visit_id fieldtype#9] +[visit_exp `ARRAY`_comptype(fieldtype)] [visit_exp (fieldtype)] [visit_exp fieldtype] [visit_id fieldtype] -[check_dims] C X*#878 X*#891 deftype resulttype#39 t_1 t_2 +[check_dims] C deftype t_1 t_2 [visit_exp C] [visit_id C] [visit_exp (deftype : deftype <: heaptype)] @@ -20478,16 +19233,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id deftype] [visit_exp `FUNC`_heaptype] [visit_exp ()] -[visit_exp (deftype, `FUNC%->%`_comptype{resulttype#39}(`%`_resulttype{`X*#878`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#891`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (deftype, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp deftype] [visit_id deftype] not free -[visit_exp `FUNC%->%`_comptype{resulttype#39}(`%`_resulttype{`X*#878`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#891`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#39] -[visit_id resulttype#39] -[visit_exp (`%`_resulttype{`X*#878`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#891`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#878`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#878`] -[visit_id X*#878] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -20498,9 +19249,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp `%`_resulttype{`X*#891`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#891`] -[visit_id X*#891] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -20527,70 +19276,56 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id deftype_1] not free [visit_exp deftype_2] [visit_id deftype_2] not free -[check_dims] C deftype*#17 heaptype i#4606 typeidx typeidx#388 +[check_dims] C heaptype typeidx [visit_exp C] [visit_id C] -[visit_exp `_IDX`_heaptype{typeidx#388}(typeidx)] -[visit_exp typeidx#388] -[visit_id typeidx#388] +[visit_exp `_IDX`_heaptype(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] [visit_exp heaptype] [visit_id heaptype] -[visit_exp (C, (C.`TYPES`_context{`deftype*#17`}[typeidx!`%`_typeidx{i#4606}.0] : deftype <: heaptype), heaptype)] +[visit_exp (C, (C.`TYPES`_context[typeidx!`%`_typeidx.0] : deftype <: heaptype), heaptype)] [visit_exp C] [visit_id C] not free -[visit_exp (C.`TYPES`_context{`deftype*#17`}[typeidx!`%`_typeidx{i#4606}.0] : deftype <: heaptype)] -[visit_exp C.`TYPES`_context{`deftype*#17`}[typeidx!`%`_typeidx{i#4606}.0]] -[visit_exp C.`TYPES`_context{`deftype*#17`}] +[visit_exp (C.`TYPES`_context[typeidx!`%`_typeidx.0] : deftype <: heaptype)] +[visit_exp C.`TYPES`_context[typeidx!`%`_typeidx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#17`] -[visit_id deftype*#17] -[visit_exp typeidx!`%`_typeidx{i#4606}.0] -[visit_exp typeidx!`%`_typeidx{i#4606}] +[visit_exp typeidx!`%`_typeidx.0] +[visit_exp typeidx!`%`_typeidx] [visit_exp typeidx] [visit_id typeidx] not free -[visit_exp i#4606] -[visit_id i#4606] [visit_exp heaptype] [visit_id heaptype] not free -[check_dims] C deftype*#18 heaptype i#4628 typeidx typeidx#390 +[check_dims] C heaptype typeidx [visit_exp C] [visit_id C] [visit_exp heaptype] [visit_id heaptype] -[visit_exp `_IDX`_heaptype{typeidx#390}(typeidx)] -[visit_exp typeidx#390] -[visit_id typeidx#390] +[visit_exp `_IDX`_heaptype(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] -[visit_exp (C, heaptype, (C.`TYPES`_context{`deftype*#18`}[typeidx!`%`_typeidx{i#4628}.0] : deftype <: heaptype))] +[visit_exp (C, heaptype, (C.`TYPES`_context[typeidx!`%`_typeidx.0] : deftype <: heaptype))] [visit_exp C] [visit_id C] not free [visit_exp heaptype] [visit_id heaptype] not free -[visit_exp (C.`TYPES`_context{`deftype*#18`}[typeidx!`%`_typeidx{i#4628}.0] : deftype <: heaptype)] -[visit_exp C.`TYPES`_context{`deftype*#18`}[typeidx!`%`_typeidx{i#4628}.0]] -[visit_exp C.`TYPES`_context{`deftype*#18`}] +[visit_exp (C.`TYPES`_context[typeidx!`%`_typeidx.0] : deftype <: heaptype)] +[visit_exp C.`TYPES`_context[typeidx!`%`_typeidx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#18`] -[visit_id deftype*#18] -[visit_exp typeidx!`%`_typeidx{i#4628}.0] -[visit_exp typeidx!`%`_typeidx{i#4628}] +[visit_exp typeidx!`%`_typeidx.0] +[visit_exp typeidx!`%`_typeidx] [visit_exp typeidx] [visit_id typeidx] not free -[visit_exp i#4628] -[visit_id i#4628] -[check_dims] C comptype#425 ct final final?#425 i j n#573 subtype*#4 typeuse typeuse*#425 +[check_dims] C ct final i j typeuse [visit_exp C] [visit_id C] -[visit_exp `REC`_heaptype{n#573}(i)] -[visit_exp n#573] -[visit_id n#573] +[visit_exp `REC`_heaptype(i)] [visit_exp (i)] [visit_exp i] [visit_id i] @@ -20607,22 +19342,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id typeuse*] [visit_exp j] [visit_id j] -[visit_exp (C.`RECS`_context{`subtype*#4`}[i] = `SUB`_subtype{`final?#425`, `typeuse*#425`, comptype#425}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct))] -[visit_exp C.`RECS`_context{`subtype*#4`}[i]] -[visit_exp C.`RECS`_context{`subtype*#4`}] +[visit_exp (C.`RECS`_context[i] = `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct))] +[visit_exp C.`RECS`_context[i]] +[visit_exp C.`RECS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `subtype*#4`] -[visit_id subtype*#4] [visit_exp i] [visit_id i] not free -[visit_exp `SUB`_subtype{`final?#425`, `typeuse*#425`, comptype#425}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] -[visit_exp `final?#425`] -[visit_id final?#425] -[visit_exp `typeuse*#425`] -[visit_id typeuse*#425] -[visit_exp comptype#425] -[visit_id comptype#425] +[visit_exp `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] [visit_exp (final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] [visit_exp final?{final <- `final?`}] [scope_enter final] @@ -20707,23 +19434,15 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp ()] [visit_exp heaptype] [visit_id heaptype] -[check_dims] C heaptype#451 heaptype#463 ht_1 ht_2 null?#449 null?#461 +[check_dims] C ht_1 ht_2 [visit_exp C] [visit_id C] -[visit_exp `REF`_reftype{`null?#449`, heaptype#451}(?(), ht_1)] -[visit_exp `null?#449`] -[visit_id null?#449] -[visit_exp heaptype#451] -[visit_id heaptype#451] +[visit_exp `REF`_reftype(?(), ht_1)] [visit_exp (?(), ht_1)] [visit_exp ?()] [visit_exp ht_1] [visit_id ht_1] -[visit_exp `REF`_reftype{`null?#461`, heaptype#463}(?(), ht_2)] -[visit_exp `null?#461`] -[visit_id null?#461] -[visit_exp heaptype#463] -[visit_id heaptype#463] +[visit_exp `REF`_reftype(?(), ht_2)] [visit_exp (?(), ht_2)] [visit_exp ?()] [visit_exp ht_2] @@ -20735,25 +19454,17 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id ht_1] not free [visit_exp ht_2] [visit_id ht_2] not free -[check_dims] C heaptype#475 heaptype#487 ht_1 ht_2 null?#473 null?#485 +[check_dims] C ht_1 ht_2 [visit_exp C] [visit_id C] -[visit_exp `REF`_reftype{`null?#473`, heaptype#475}(`NULL`_null?{}, ht_1)] -[visit_exp `null?#473`] -[visit_id null?#473] -[visit_exp heaptype#475] -[visit_id heaptype#475] +[visit_exp `REF`_reftype(`NULL`_null?{}, ht_1)] [visit_exp (`NULL`_null?{}, ht_1)] [visit_exp `NULL`_null?{}] [visit_exp `NULL`_null] [visit_exp ()] [visit_exp ht_1] [visit_id ht_1] -[visit_exp `REF`_reftype{`null?#485`, heaptype#487}(?(`NULL`_null), ht_2)] -[visit_exp `null?#485`] -[visit_id null?#485] -[visit_exp heaptype#487] -[visit_id heaptype#487] +[visit_exp `REF`_reftype(?(`NULL`_null), ht_2)] [visit_exp (?(`NULL`_null), ht_2)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -20824,12 +19535,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id valtype] [check_dims] [check_dims] -[check_dims] C X*#904 X*#917 t_1 t_2 +[check_dims] C t_1 t_2 [visit_exp C] [visit_id C] -[visit_exp `%`_resulttype{`X*#904`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#904`] -[visit_id X*#904] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -20840,9 +19549,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp `%`_resulttype{`X*#917`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#917`] -[visit_id X*#917] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -20872,18 +19579,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#1047 X*#1060 X*#1073 X*#1086 X*#1099 X*#930 X*#982 X*#995 i#4865 init#65 localidx*#59 localidx*#71 localtype*#4 resulttype#59 resulttype#79 t t_11 t_12 t_21 t_22 valtype#271 x x_1 x_2 +[check_dims] C t t_11 t_12 t_21 t_22 x x_1 x_2 [visit_exp C] [visit_id C] -[visit_exp `%->_%%`_instrtype{resulttype#59, `localidx*#59`}(`%`_resulttype{`X*#930`}(t_11*{t_11 <- `t_11*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#982`}(t_12*{t_12 <- `t_12*`}))] -[visit_exp resulttype#59] -[visit_id resulttype#59] -[visit_exp `localidx*#59`] -[visit_id localidx*#59] -[visit_exp (`%`_resulttype{`X*#930`}(t_11*{t_11 <- `t_11*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#982`}(t_12*{t_12 <- `t_12*`}))] -[visit_exp `%`_resulttype{`X*#930`}(t_11*{t_11 <- `t_11*`})] -[visit_exp `X*#930`] -[visit_id X*#930] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_11*{t_11 <- `t_11*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_12*{t_12 <- `t_12*`}))] +[visit_exp (`%`_resulttype(t_11*{t_11 <- `t_11*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_12*{t_12 <- `t_12*`}))] +[visit_exp `%`_resulttype(t_11*{t_11 <- `t_11*`})] [visit_exp (t_11*{t_11 <- `t_11*`})] [visit_exp t_11*{t_11 <- `t_11*`}] [scope_enter t_11] @@ -20903,9 +19604,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `x_1*`] [visit_id x_1*] no dims [visit_id x_1*] -[visit_exp `%`_resulttype{`X*#982`}(t_12*{t_12 <- `t_12*`})] -[visit_exp `X*#982`] -[visit_id X*#982] +[visit_exp `%`_resulttype(t_12*{t_12 <- `t_12*`})] [visit_exp (t_12*{t_12 <- `t_12*`})] [visit_exp t_12*{t_12 <- `t_12*`}] [scope_enter t_12] @@ -20916,15 +19615,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_12*`] [visit_id t_12*] no dims [visit_id t_12*] -[visit_exp `%->_%%`_instrtype{resulttype#79, `localidx*#71`}(`%`_resulttype{`X*#995`}(t_21*{t_21 <- `t_21*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#1047`}(t_22*{t_22 <- `t_22*`}))] -[visit_exp resulttype#79] -[visit_id resulttype#79] -[visit_exp `localidx*#71`] -[visit_id localidx*#71] -[visit_exp (`%`_resulttype{`X*#995`}(t_21*{t_21 <- `t_21*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#1047`}(t_22*{t_22 <- `t_22*`}))] -[visit_exp `%`_resulttype{`X*#995`}(t_21*{t_21 <- `t_21*`})] -[visit_exp `X*#995`] -[visit_id X*#995] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_21*{t_21 <- `t_21*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_22*{t_22 <- `t_22*`}))] +[visit_exp (`%`_resulttype(t_21*{t_21 <- `t_21*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_22*{t_22 <- `t_22*`}))] +[visit_exp `%`_resulttype(t_21*{t_21 <- `t_21*`})] [visit_exp (t_21*{t_21 <- `t_21*`})] [visit_exp t_21*{t_21 <- `t_21*`}] [scope_enter t_21] @@ -20944,9 +19637,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `x_2*`] [visit_id x_2*] no dims [visit_id x_2*] -[visit_exp `%`_resulttype{`X*#1047`}(t_22*{t_22 <- `t_22*`})] -[visit_exp `X*#1047`] -[visit_id X*#1047] +[visit_exp `%`_resulttype(t_22*{t_22 <- `t_22*`})] [visit_exp (t_22*{t_22 <- `t_22*`})] [visit_exp t_22*{t_22 <- `t_22*`}] [scope_enter t_22] @@ -20957,12 +19648,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_22*`] [visit_id t_22*] no dims [visit_id t_22*] -[visit_exp (C, `%`_resulttype{`X*#1060`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1073`}(t_11*{t_11 <- `t_11*`}))] +[visit_exp (C, `%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_11*{t_11 <- `t_11*`}))] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#1060`}(t_21*{t_21 <- `t_21*`})] -[visit_exp `X*#1060`] -[visit_id X*#1060] +[visit_exp `%`_resulttype(t_21*{t_21 <- `t_21*`})] [visit_exp (t_21*{t_21 <- `t_21*`})] [visit_exp t_21*{t_21 <- `t_21*`}] [scope_enter t_21] @@ -20973,9 +19662,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_21*`] [visit_id t_21*] not free [visit_id t_21*] no dims -[visit_exp `%`_resulttype{`X*#1073`}(t_11*{t_11 <- `t_11*`})] -[visit_exp `X*#1073`] -[visit_id X*#1073] +[visit_exp `%`_resulttype(t_11*{t_11 <- `t_11*`})] [visit_exp (t_11*{t_11 <- `t_11*`})] [visit_exp t_11*{t_11 <- `t_11*`}] [scope_enter t_11] @@ -20986,12 +19673,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_11*`] [visit_id t_11*] not free [visit_id t_11*] no dims -[visit_exp (C, `%`_resulttype{`X*#1086`}(t_12*{t_12 <- `t_12*`}), `%`_resulttype{`X*#1099`}(t_22*{t_22 <- `t_22*`}))] +[visit_exp (C, `%`_resulttype(t_12*{t_12 <- `t_12*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`}))] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#1086`}(t_12*{t_12 <- `t_12*`})] -[visit_exp `X*#1086`] -[visit_id X*#1086] +[visit_exp `%`_resulttype(t_12*{t_12 <- `t_12*`})] [visit_exp (t_12*{t_12 <- `t_12*`})] [visit_exp t_12*{t_12 <- `t_12*`}] [scope_enter t_12] @@ -21002,9 +19687,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_12*`] [visit_id t_12*] not free [visit_id t_12*] no dims -[visit_exp `%`_resulttype{`X*#1099`}(t_22*{t_22 <- `t_22*`})] -[visit_exp `X*#1099`] -[visit_id X*#1099] +[visit_exp `%`_resulttype(t_22*{t_22 <- `t_22*`})] [visit_exp (t_22*{t_22 <- `t_22*`})] [visit_exp t_22*{t_22 <- `t_22*`}] [scope_enter t_22] @@ -21044,62 +19727,30 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `x_1*`] [visit_id x_1*] not free [visit_id x_1*] no dims -[scope_enter i#4865] -[scope_enter init#65] -[scope_enter localtype*#4] [scope_enter t] -[scope_enter valtype#271] [scope_enter x] -[visit_exp (C.`LOCALS`_context{`localtype*#4`}[x!`%`_idx{i#4865}.0] = `%%`_localtype{init#65, valtype#271}(`SET`_init, t))] -[visit_exp C.`LOCALS`_context{`localtype*#4`}[x!`%`_idx{i#4865}.0]] -[visit_exp C.`LOCALS`_context{`localtype*#4`}] +[visit_exp (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(`SET`_init, t))] +[visit_exp C.`LOCALS`_context[x!`%`_idx.0]] +[visit_exp C.`LOCALS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `localtype*#4`] -[visit_id localtype*#4] not free -[visit_exp x!`%`_idx{i#4865}.0] -[visit_exp x!`%`_idx{i#4865}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#4865] -[visit_id i#4865] not free -[visit_exp `%%`_localtype{init#65, valtype#271}(`SET`_init, t)] -[visit_exp init#65] -[visit_id init#65] not free -[visit_exp valtype#271] -[visit_id valtype#271] not free +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%`_localtype(`SET`_init, t)] [visit_exp (`SET`_init, t)] [visit_exp `SET`_init] [visit_exp ()] [visit_exp t] [visit_id t] not free -[visit_id i#4865] not free -[visit_id init#65] not free -[visit_id localtype*#4] not free [visit_id t] not free -[visit_id valtype#271] not free [visit_id x] not free [scope_exit x] -[scope_exit valtype#271] [scope_exit t] -[scope_exit localtype*#4] -[scope_exit init#65] -[scope_exit i#4865] -[visit_exp `i#4865*`] -[visit_id i#4865*] no dims -[visit_id i#4865*] -[visit_exp `init#65*`] -[visit_id init#65*] no dims -[visit_id init#65*] -[visit_exp `localtype*#4*`] -[visit_id localtype*#4*] no dims -[visit_id localtype*#4*] [visit_exp `t*`] [visit_id t*] no dims [visit_id t*] -[visit_exp `valtype#271*`] -[visit_id valtype#271*] no dims -[visit_id valtype#271*] [visit_exp `x*`] [visit_id x*] not free [visit_id x*] no dims @@ -21145,23 +19796,15 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id packtype_1] not free [visit_exp packtype_2] [visit_id packtype_2] not free -[check_dims] C mut?#371 mut?#377 storagetype#195 storagetype#201 zt_1 zt_2 +[check_dims] C zt_1 zt_2 [visit_exp C] [visit_id C] -[visit_exp `%%`_fieldtype{`mut?#371`, storagetype#195}(?(), zt_1)] -[visit_exp `mut?#371`] -[visit_id mut?#371] -[visit_exp storagetype#195] -[visit_id storagetype#195] +[visit_exp `%%`_fieldtype(?(), zt_1)] [visit_exp (?(), zt_1)] [visit_exp ?()] [visit_exp zt_1] [visit_id zt_1] -[visit_exp `%%`_fieldtype{`mut?#377`, storagetype#201}(?(), zt_2)] -[visit_exp `mut?#377`] -[visit_id mut?#377] -[visit_exp storagetype#201] -[visit_id storagetype#201] +[visit_exp `%%`_fieldtype(?(), zt_2)] [visit_exp (?(), zt_2)] [visit_exp ?()] [visit_exp zt_2] @@ -21173,25 +19816,17 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id zt_1] not free [visit_exp zt_2] [visit_id zt_2] not free -[check_dims] C mut?#389 mut?#401 storagetype#213 storagetype#225 zt_1 zt_2 +[check_dims] C zt_1 zt_2 [visit_exp C] [visit_id C] -[visit_exp `%%`_fieldtype{`mut?#389`, storagetype#213}(?(`MUT`_mut), zt_1)] -[visit_exp `mut?#389`] -[visit_id mut?#389] -[visit_exp storagetype#213] -[visit_id storagetype#213] +[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt_1)] [visit_exp (?(`MUT`_mut), zt_1)] [visit_exp ?(`MUT`_mut)] [visit_exp `MUT`_mut] [visit_exp ()] [visit_exp zt_1] [visit_id zt_1] -[visit_exp `%%`_fieldtype{`mut?#401`, storagetype#225}(?(`MUT`_mut), zt_2)] -[visit_exp `mut?#401`] -[visit_id mut?#401] -[visit_exp storagetype#225] -[visit_id storagetype#225] +[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt_2)] [visit_exp (?(`MUT`_mut), zt_2)] [visit_exp ?(`MUT`_mut)] [visit_exp `MUT`_mut] @@ -21212,14 +19847,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id zt_2] not free [visit_exp zt_1] [visit_id zt_1] not free -[check_dims] C X*#1124 X*#1137 ft'_1 ft_1 ft_2 +[check_dims] C ft'_1 ft_1 ft_2 [visit_exp C] [visit_id C] -[visit_exp `STRUCT`_comptype(`%`_list{`X*#1124`}(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`}))] -[visit_exp (`%`_list{`X*#1124`}(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`}))] -[visit_exp `%`_list{`X*#1124`}(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`})] -[visit_exp `X*#1124`] -[visit_id X*#1124] +[visit_exp `STRUCT`_comptype(`%`_list(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`}))] +[visit_exp (`%`_list(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`}))] +[visit_exp `%`_list(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`})] [visit_exp (ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`})] [visit_exp ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`}] [visit_exp ft_1*{ft_1 <- `ft_1*`}] @@ -21240,11 +19873,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `ft'_1*`] [visit_id ft'_1*] no dims [visit_id ft'_1*] -[visit_exp `STRUCT`_comptype(`%`_list{`X*#1137`}(ft_2*{ft_2 <- `ft_2*`}))] -[visit_exp (`%`_list{`X*#1137`}(ft_2*{ft_2 <- `ft_2*`}))] -[visit_exp `%`_list{`X*#1137`}(ft_2*{ft_2 <- `ft_2*`})] -[visit_exp `X*#1137`] -[visit_id X*#1137] +[visit_exp `STRUCT`_comptype(`%`_list(ft_2*{ft_2 <- `ft_2*`}))] +[visit_exp (`%`_list(ft_2*{ft_2 <- `ft_2*`}))] +[visit_exp `%`_list(ft_2*{ft_2 <- `ft_2*`})] [visit_exp (ft_2*{ft_2 <- `ft_2*`})] [visit_exp ft_2*{ft_2 <- `ft_2*`}] [scope_enter ft_2] @@ -21274,18 +19905,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `ft_2*`] [visit_id ft_2*] not free [visit_id ft_2*] no dims -[check_dims] C fieldtype#11 fieldtype#13 ft_1 ft_2 +[check_dims] C ft_1 ft_2 [visit_exp C] [visit_id C] -[visit_exp `ARRAY`_comptype{fieldtype#11}(ft_1)] -[visit_exp fieldtype#11] -[visit_id fieldtype#11] +[visit_exp `ARRAY`_comptype(ft_1)] [visit_exp (ft_1)] [visit_exp ft_1] [visit_id ft_1] -[visit_exp `ARRAY`_comptype{fieldtype#13}(ft_2)] -[visit_exp fieldtype#13] -[visit_id fieldtype#13] +[visit_exp `ARRAY`_comptype(ft_2)] [visit_exp (ft_2)] [visit_exp ft_2] [visit_id ft_2] @@ -21296,16 +19923,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id ft_1] not free [visit_exp ft_2] [visit_id ft_2] not free -[check_dims] C X*#1152 X*#1165 X*#1180 X*#1193 X*#1206 X*#1219 X*#1232 X*#1245 resulttype#82 resulttype#85 t_11 t_12 t_21 t_22 +[check_dims] C t_11 t_12 t_21 t_22 [visit_exp C] [visit_id C] -[visit_exp `FUNC%->%`_comptype{resulttype#82}(`%`_resulttype{`X*#1152`}(t_11*{t_11 <- `t_11*`}), `%`_resulttype{`X*#1165`}(t_12*{t_12 <- `t_12*`}))] -[visit_exp resulttype#82] -[visit_id resulttype#82] -[visit_exp (`%`_resulttype{`X*#1152`}(t_11*{t_11 <- `t_11*`}), `%`_resulttype{`X*#1165`}(t_12*{t_12 <- `t_12*`}))] -[visit_exp `%`_resulttype{`X*#1152`}(t_11*{t_11 <- `t_11*`})] -[visit_exp `X*#1152`] -[visit_id X*#1152] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_11*{t_11 <- `t_11*`}), `%`_resulttype(t_12*{t_12 <- `t_12*`}))] +[visit_exp (`%`_resulttype(t_11*{t_11 <- `t_11*`}), `%`_resulttype(t_12*{t_12 <- `t_12*`}))] +[visit_exp `%`_resulttype(t_11*{t_11 <- `t_11*`})] [visit_exp (t_11*{t_11 <- `t_11*`})] [visit_exp t_11*{t_11 <- `t_11*`}] [scope_enter t_11] @@ -21316,9 +19939,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_11*`] [visit_id t_11*] no dims [visit_id t_11*] -[visit_exp `%`_resulttype{`X*#1165`}(t_12*{t_12 <- `t_12*`})] -[visit_exp `X*#1165`] -[visit_id X*#1165] +[visit_exp `%`_resulttype(t_12*{t_12 <- `t_12*`})] [visit_exp (t_12*{t_12 <- `t_12*`})] [visit_exp t_12*{t_12 <- `t_12*`}] [scope_enter t_12] @@ -21329,13 +19950,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_12*`] [visit_id t_12*] no dims [visit_id t_12*] -[visit_exp `FUNC%->%`_comptype{resulttype#85}(`%`_resulttype{`X*#1180`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1193`}(t_22*{t_22 <- `t_22*`}))] -[visit_exp resulttype#85] -[visit_id resulttype#85] -[visit_exp (`%`_resulttype{`X*#1180`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1193`}(t_22*{t_22 <- `t_22*`}))] -[visit_exp `%`_resulttype{`X*#1180`}(t_21*{t_21 <- `t_21*`})] -[visit_exp `X*#1180`] -[visit_id X*#1180] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`}))] +[visit_exp (`%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`}))] +[visit_exp `%`_resulttype(t_21*{t_21 <- `t_21*`})] [visit_exp (t_21*{t_21 <- `t_21*`})] [visit_exp t_21*{t_21 <- `t_21*`}] [scope_enter t_21] @@ -21346,9 +19963,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_21*`] [visit_id t_21*] no dims [visit_id t_21*] -[visit_exp `%`_resulttype{`X*#1193`}(t_22*{t_22 <- `t_22*`})] -[visit_exp `X*#1193`] -[visit_id X*#1193] +[visit_exp `%`_resulttype(t_22*{t_22 <- `t_22*`})] [visit_exp (t_22*{t_22 <- `t_22*`})] [visit_exp t_22*{t_22 <- `t_22*`}] [scope_enter t_22] @@ -21359,12 +19974,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_22*`] [visit_id t_22*] no dims [visit_id t_22*] -[visit_exp (C, `%`_resulttype{`X*#1206`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1219`}(t_11*{t_11 <- `t_11*`}))] +[visit_exp (C, `%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_11*{t_11 <- `t_11*`}))] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#1206`}(t_21*{t_21 <- `t_21*`})] -[visit_exp `X*#1206`] -[visit_id X*#1206] +[visit_exp `%`_resulttype(t_21*{t_21 <- `t_21*`})] [visit_exp (t_21*{t_21 <- `t_21*`})] [visit_exp t_21*{t_21 <- `t_21*`}] [scope_enter t_21] @@ -21375,9 +19988,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_21*`] [visit_id t_21*] not free [visit_id t_21*] no dims -[visit_exp `%`_resulttype{`X*#1219`}(t_11*{t_11 <- `t_11*`})] -[visit_exp `X*#1219`] -[visit_id X*#1219] +[visit_exp `%`_resulttype(t_11*{t_11 <- `t_11*`})] [visit_exp (t_11*{t_11 <- `t_11*`})] [visit_exp t_11*{t_11 <- `t_11*`}] [scope_enter t_11] @@ -21388,12 +19999,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_11*`] [visit_id t_11*] not free [visit_id t_11*] no dims -[visit_exp (C, `%`_resulttype{`X*#1232`}(t_12*{t_12 <- `t_12*`}), `%`_resulttype{`X*#1245`}(t_22*{t_22 <- `t_22*`}))] +[visit_exp (C, `%`_resulttype(t_12*{t_12 <- `t_12*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`}))] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#1232`}(t_12*{t_12 <- `t_12*`})] -[visit_exp `X*#1232`] -[visit_id X*#1232] +[visit_exp `%`_resulttype(t_12*{t_12 <- `t_12*`})] [visit_exp (t_12*{t_12 <- `t_12*`})] [visit_exp t_12*{t_12 <- `t_12*`}] [scope_enter t_12] @@ -21404,9 +20013,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_12*`] [visit_id t_12*] not free [visit_id t_12*] no dims -[visit_exp `%`_resulttype{`X*#1245`}(t_22*{t_22 <- `t_22*`})] -[visit_exp `X*#1245`] -[visit_id X*#1245] +[visit_exp `%`_resulttype(t_22*{t_22 <- `t_22*`})] [visit_exp (t_22*{t_22 <- `t_22*`})] [visit_exp t_22*{t_22 <- `t_22*`}] [scope_enter t_22] @@ -21435,24 +20042,18 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp deftype_2] [visit_id deftype_2] not free -[check_dims] C comptype#437 ct deftype_1 deftype_2 final final?#437 i typeuse typeuse*#437 +[check_dims] C ct deftype_1 deftype_2 final i typeuse [visit_exp C] [visit_id C] [visit_exp deftype_1] [visit_id deftype_1] [visit_exp deftype_2] [visit_id deftype_2] -[visit_exp ($unrolldt(deftype_1) = `SUB`_subtype{`final?#437`, `typeuse*#437`, comptype#437}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct))] +[visit_exp ($unrolldt(deftype_1) = `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct))] [visit_exp $unrolldt(deftype_1)] [visit_exp deftype_1] [visit_id deftype_1] not free -[visit_exp `SUB`_subtype{`final?#437`, `typeuse*#437`, comptype#437}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] -[visit_exp `final?#437`] -[visit_id final?#437] -[visit_exp `typeuse*#437`] -[visit_id typeuse*#437] -[visit_exp comptype#437] -[visit_id comptype#437] +[visit_exp `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] [visit_exp (final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] [visit_exp final?{final <- `final?`}] [scope_enter final] @@ -21499,56 +20100,34 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [check_dims] [check_dims] [check_dims] -[check_dims] C i#4887 i#4909 i#4931 i#4966 m_1 m_2 n_1 n_2 u64#84 u64#96 u64?#83 u64?#95 +[check_dims] C m_1 m_2 n_1 n_2 [visit_exp C] [visit_id C] -[visit_exp `[%..%]`_limits{u64#84, `u64?#83`}(`%`_u64{i#4887}(n_1), ?(`%`_u64{i#4909}(m_1)))] -[visit_exp u64#84] -[visit_id u64#84] -[visit_exp `u64?#83`] -[visit_id u64?#83] -[visit_exp (`%`_u64{i#4887}(n_1), ?(`%`_u64{i#4909}(m_1)))] -[visit_exp `%`_u64{i#4887}(n_1)] -[visit_exp i#4887] -[visit_id i#4887] +[visit_exp `[%..%]`_limits(`%`_u64(n_1), ?(`%`_u64(m_1)))] +[visit_exp (`%`_u64(n_1), ?(`%`_u64(m_1)))] +[visit_exp `%`_u64(n_1)] [visit_exp (n_1)] [visit_exp n_1] [visit_id n_1] -[visit_exp ?(`%`_u64{i#4909}(m_1))] -[visit_exp `%`_u64{i#4909}(m_1)] -[visit_exp i#4909] -[visit_id i#4909] +[visit_exp ?(`%`_u64(m_1))] +[visit_exp `%`_u64(m_1)] [visit_exp (m_1)] [visit_exp m_1] [visit_id m_1] -[visit_exp `[%..%]`_limits{u64#96, `u64?#95`}(`%`_u64{i#4931}(n_2), `%`_u64{i#4966}(m_2)?{i#4966 <- `i#4966?`, m_2 <- `m_2?`})] -[visit_exp u64#96] -[visit_id u64#96] -[visit_exp `u64?#95`] -[visit_id u64?#95] -[visit_exp (`%`_u64{i#4931}(n_2), `%`_u64{i#4966}(m_2)?{i#4966 <- `i#4966?`, m_2 <- `m_2?`})] -[visit_exp `%`_u64{i#4931}(n_2)] -[visit_exp i#4931] -[visit_id i#4931] +[visit_exp `[%..%]`_limits(`%`_u64(n_2), `%`_u64(m_2)?{m_2 <- `m_2?`})] +[visit_exp (`%`_u64(n_2), `%`_u64(m_2)?{m_2 <- `m_2?`})] +[visit_exp `%`_u64(n_2)] [visit_exp (n_2)] [visit_exp n_2] [visit_id n_2] -[visit_exp `%`_u64{i#4966}(m_2)?{i#4966 <- `i#4966?`, m_2 <- `m_2?`}] -[scope_enter i#4966] +[visit_exp `%`_u64(m_2)?{m_2 <- `m_2?`}] [scope_enter m_2] -[visit_exp `%`_u64{i#4966}(m_2)] -[visit_exp i#4966] -[visit_id i#4966] not free +[visit_exp `%`_u64(m_2)] [visit_exp (m_2)] [visit_exp m_2] [visit_id m_2] not free -[visit_id i#4966] not free [visit_id m_2] not free [scope_exit m_2] -[scope_exit i#4966] -[visit_exp `i#4966?`] -[visit_id i#4966?] no dims -[visit_id i#4966?] [visit_exp `m_2?`] [visit_id m_2?] no dims [visit_id m_2?] @@ -21568,31 +20147,19 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `m_2?`] [visit_id m_2?] not free [visit_id m_2?] no dims -[check_dims] C i#4988 i#5010 n_1 n_2 u64#108 u64#120 u64?#107 u64?#119 +[check_dims] C n_1 n_2 [visit_exp C] [visit_id C] -[visit_exp `[%..%]`_limits{u64#108, `u64?#107`}(`%`_u64{i#4988}(n_1), ?())] -[visit_exp u64#108] -[visit_id u64#108] -[visit_exp `u64?#107`] -[visit_id u64?#107] -[visit_exp (`%`_u64{i#4988}(n_1), ?())] -[visit_exp `%`_u64{i#4988}(n_1)] -[visit_exp i#4988] -[visit_id i#4988] +[visit_exp `[%..%]`_limits(`%`_u64(n_1), ?())] +[visit_exp (`%`_u64(n_1), ?())] +[visit_exp `%`_u64(n_1)] [visit_exp (n_1)] [visit_exp n_1] [visit_id n_1] [visit_exp ?()] -[visit_exp `[%..%]`_limits{u64#120, `u64?#119`}(`%`_u64{i#5010}(n_2), ?())] -[visit_exp u64#120] -[visit_id u64#120] -[visit_exp `u64?#119`] -[visit_id u64?#119] -[visit_exp (`%`_u64{i#5010}(n_2), ?())] -[visit_exp `%`_u64{i#5010}(n_2)] -[visit_exp i#5010] -[visit_id i#5010] +[visit_exp `[%..%]`_limits(`%`_u64(n_2), ?())] +[visit_exp (`%`_u64(n_2), ?())] +[visit_exp `%`_u64(n_2)] [visit_exp (n_2)] [visit_exp n_2] [visit_id n_2] @@ -21625,23 +20192,15 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id deftype_2] not free [visit_exp deftype_1] [visit_id deftype_1] not free -[check_dims] C mut?#501 mut?#507 valtype#277 valtype#283 valtype_1 valtype_2 +[check_dims] C valtype_1 valtype_2 [visit_exp C] [visit_id C] -[visit_exp `%%`_globaltype{`mut?#501`, valtype#277}(?(), valtype_1)] -[visit_exp `mut?#501`] -[visit_id mut?#501] -[visit_exp valtype#277] -[visit_id valtype#277] +[visit_exp `%%`_globaltype(?(), valtype_1)] [visit_exp (?(), valtype_1)] [visit_exp ?()] [visit_exp valtype_1] [visit_id valtype_1] -[visit_exp `%%`_globaltype{`mut?#507`, valtype#283}(?(), valtype_2)] -[visit_exp `mut?#507`] -[visit_id mut?#507] -[visit_exp valtype#283] -[visit_id valtype#283] +[visit_exp `%%`_globaltype(?(), valtype_2)] [visit_exp (?(), valtype_2)] [visit_exp ?()] [visit_exp valtype_2] @@ -21653,25 +20212,17 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id valtype_1] not free [visit_exp valtype_2] [visit_id valtype_2] not free -[check_dims] C mut?#519 mut?#531 valtype#295 valtype#307 valtype_1 valtype_2 +[check_dims] C valtype_1 valtype_2 [visit_exp C] [visit_id C] -[visit_exp `%%`_globaltype{`mut?#519`, valtype#295}(?(`MUT`_mut), valtype_1)] -[visit_exp `mut?#519`] -[visit_id mut?#519] -[visit_exp valtype#295] -[visit_id valtype#295] +[visit_exp `%%`_globaltype(?(`MUT`_mut), valtype_1)] [visit_exp (?(`MUT`_mut), valtype_1)] [visit_exp ?(`MUT`_mut)] [visit_exp `MUT`_mut] [visit_exp ()] [visit_exp valtype_1] [visit_id valtype_1] -[visit_exp `%%`_globaltype{`mut?#531`, valtype#307}(?(`MUT`_mut), valtype_2)] -[visit_exp `mut?#531`] -[visit_id mut?#531] -[visit_exp valtype#307] -[visit_id valtype#307] +[visit_exp `%%`_globaltype(?(`MUT`_mut), valtype_2)] [visit_exp (?(`MUT`_mut), valtype_2)] [visit_exp ?(`MUT`_mut)] [visit_exp `MUT`_mut] @@ -21692,24 +20243,16 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id valtype_2] not free [visit_exp valtype_1] [visit_id valtype_1] not free -[check_dims] C addrtype addrtype#345 addrtype#357 limits#345 limits#357 limits_1 limits_2 +[check_dims] C addrtype limits_1 limits_2 [visit_exp C] [visit_id C] -[visit_exp `%%PAGE`_memtype{addrtype#345, limits#345}(addrtype, limits_1)] -[visit_exp addrtype#345] -[visit_id addrtype#345] -[visit_exp limits#345] -[visit_id limits#345] +[visit_exp `%%PAGE`_memtype(addrtype, limits_1)] [visit_exp (addrtype, limits_1)] [visit_exp addrtype] [visit_id addrtype] [visit_exp limits_1] [visit_id limits_1] -[visit_exp `%%PAGE`_memtype{addrtype#357, limits#357}(addrtype, limits_2)] -[visit_exp addrtype#357] -[visit_id addrtype#357] -[visit_exp limits#357] -[visit_id limits#357] +[visit_exp `%%PAGE`_memtype(addrtype, limits_2)] [visit_exp (addrtype, limits_2)] [visit_exp addrtype] [visit_id addrtype] not free @@ -21722,16 +20265,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id limits_1] not free [visit_exp limits_2] [visit_id limits_2] not free -[check_dims] C addrtype addrtype#369 addrtype#381 limits#369 limits#381 limits_1 limits_2 reftype#335 reftype#347 reftype_1 reftype_2 +[check_dims] C addrtype limits_1 limits_2 reftype_1 reftype_2 [visit_exp C] [visit_id C] -[visit_exp `%%%`_tabletype{addrtype#369, limits#369, reftype#335}(addrtype, limits_1, reftype_1)] -[visit_exp addrtype#369] -[visit_id addrtype#369] -[visit_exp limits#369] -[visit_id limits#369] -[visit_exp reftype#335] -[visit_id reftype#335] +[visit_exp `%%%`_tabletype(addrtype, limits_1, reftype_1)] [visit_exp (addrtype, limits_1, reftype_1)] [visit_exp addrtype] [visit_id addrtype] @@ -21739,13 +20276,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id limits_1] [visit_exp reftype_1] [visit_id reftype_1] -[visit_exp `%%%`_tabletype{addrtype#381, limits#381, reftype#347}(addrtype, limits_2, reftype_2)] -[visit_exp addrtype#381] -[visit_id addrtype#381] -[visit_exp limits#381] -[visit_id limits#381] -[visit_exp reftype#347] -[visit_id reftype#347] +[visit_exp `%%%`_tabletype(addrtype, limits_2, reftype_2)] [visit_exp (addrtype, limits_2, reftype_2)] [visit_exp addrtype] [visit_id addrtype] not free @@ -21774,18 +20305,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id reftype_2] not free [visit_exp reftype_1] [visit_id reftype_1] not free -[check_dims] C tagtype#91 tagtype#93 tagtype_1 tagtype_2 +[check_dims] C tagtype_1 tagtype_2 [visit_exp C] [visit_id C] -[visit_exp `TAG`_externtype{tagtype#91}(tagtype_1)] -[visit_exp tagtype#91] -[visit_id tagtype#91] +[visit_exp `TAG`_externtype(tagtype_1)] [visit_exp (tagtype_1)] [visit_exp tagtype_1] [visit_id tagtype_1] -[visit_exp `TAG`_externtype{tagtype#93}(tagtype_2)] -[visit_exp tagtype#93] -[visit_id tagtype#93] +[visit_exp `TAG`_externtype(tagtype_2)] [visit_exp (tagtype_2)] [visit_exp tagtype_2] [visit_id tagtype_2] @@ -21796,18 +20323,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id tagtype_1] not free [visit_exp tagtype_2] [visit_id tagtype_2] not free -[check_dims] C globaltype#103 globaltype#105 globaltype_1 globaltype_2 +[check_dims] C globaltype_1 globaltype_2 [visit_exp C] [visit_id C] -[visit_exp `GLOBAL`_externtype{globaltype#103}(globaltype_1)] -[visit_exp globaltype#103] -[visit_id globaltype#103] +[visit_exp `GLOBAL`_externtype(globaltype_1)] [visit_exp (globaltype_1)] [visit_exp globaltype_1] [visit_id globaltype_1] -[visit_exp `GLOBAL`_externtype{globaltype#105}(globaltype_2)] -[visit_exp globaltype#105] -[visit_id globaltype#105] +[visit_exp `GLOBAL`_externtype(globaltype_2)] [visit_exp (globaltype_2)] [visit_exp globaltype_2] [visit_id globaltype_2] @@ -21818,18 +20341,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id globaltype_1] not free [visit_exp globaltype_2] [visit_id globaltype_2] not free -[check_dims] C memtype#115 memtype#117 memtype_1 memtype_2 +[check_dims] C memtype_1 memtype_2 [visit_exp C] [visit_id C] -[visit_exp `MEM`_externtype{memtype#115}(memtype_1)] -[visit_exp memtype#115] -[visit_id memtype#115] +[visit_exp `MEM`_externtype(memtype_1)] [visit_exp (memtype_1)] [visit_exp memtype_1] [visit_id memtype_1] -[visit_exp `MEM`_externtype{memtype#117}(memtype_2)] -[visit_exp memtype#117] -[visit_id memtype#117] +[visit_exp `MEM`_externtype(memtype_2)] [visit_exp (memtype_2)] [visit_exp memtype_2] [visit_id memtype_2] @@ -21840,18 +20359,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id memtype_1] not free [visit_exp memtype_2] [visit_id memtype_2] not free -[check_dims] C tabletype#129 tabletype#131 tabletype_1 tabletype_2 +[check_dims] C tabletype_1 tabletype_2 [visit_exp C] [visit_id C] -[visit_exp `TABLE`_externtype{tabletype#129}(tabletype_1)] -[visit_exp tabletype#129] -[visit_id tabletype#129] +[visit_exp `TABLE`_externtype(tabletype_1)] [visit_exp (tabletype_1)] [visit_exp tabletype_1] [visit_id tabletype_1] -[visit_exp `TABLE`_externtype{tabletype#131}(tabletype_2)] -[visit_exp tabletype#131] -[visit_id tabletype#131] +[visit_exp `TABLE`_externtype(tabletype_2)] [visit_exp (tabletype_2)] [visit_exp tabletype_2] [visit_id tabletype_2] @@ -21862,19 +20377,15 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id tabletype_1] not free [visit_exp tabletype_2] [visit_id tabletype_2] not free -[check_dims] C deftype_1 deftype_2 typeuse#19 typeuse#21 +[check_dims] C deftype_1 deftype_2 [visit_exp C] [visit_id C] -[visit_exp `FUNC`_externtype{typeuse#19}((deftype_1 : deftype <: typeuse))] -[visit_exp typeuse#19] -[visit_id typeuse#19] +[visit_exp `FUNC`_externtype((deftype_1 : deftype <: typeuse))] [visit_exp ((deftype_1 : deftype <: typeuse))] [visit_exp (deftype_1 : deftype <: typeuse)] [visit_exp deftype_1] [visit_id deftype_1] -[visit_exp `FUNC`_externtype{typeuse#21}((deftype_2 : deftype <: typeuse))] -[visit_exp typeuse#21] -[visit_id typeuse#21] +[visit_exp `FUNC`_externtype((deftype_2 : deftype <: typeuse))] [visit_exp ((deftype_2 : deftype <: typeuse))] [visit_exp (deftype_2 : deftype <: typeuse)] [visit_exp deftype_2] @@ -21891,42 +20402,28 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [check_dims] [check_dims] [check_dims] -[check_dims] C X*#1268 X*#1317 localidx*#83 resulttype#105 +[check_dims] C [visit_exp C] [visit_id C] [visit_exp `NOP`_instr] [visit_exp ()] -[visit_exp `%->_%%`_instrtype{resulttype#105, `localidx*#83`}(`%`_resulttype{`X*#1268`}([]), [], `%`_resulttype{`X*#1317`}([]))] -[visit_exp resulttype#105] -[visit_id resulttype#105] -[visit_exp `localidx*#83`] -[visit_id localidx*#83] -[visit_exp (`%`_resulttype{`X*#1268`}([]), [], `%`_resulttype{`X*#1317`}([]))] -[visit_exp `%`_resulttype{`X*#1268`}([])] -[visit_exp `X*#1268`] -[visit_id X*#1268] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#1317`}([])] -[visit_exp `X*#1317`] -[visit_id X*#1317] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[check_dims] C X*#1328 X*#1379 X*#1390 X*#1441 localidx*#107 localidx*#95 resulttype#125 resulttype#145 t_1 t_2 +[check_dims] C t_1 t_2 [visit_exp C] [visit_id C] [visit_exp `UNREACHABLE`_instr] [visit_exp ()] -[visit_exp `%->_%%`_instrtype{resulttype#125, `localidx*#95`}(`%`_resulttype{`X*#1328`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1379`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#125] -[visit_id resulttype#125] -[visit_exp `localidx*#95`] -[visit_id localidx*#95] -[visit_exp (`%`_resulttype{`X*#1328`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1379`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#1328`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#1328`] -[visit_id X*#1328] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -21938,9 +20435,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] no dims [visit_id t_1*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#1379`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#1379`] -[visit_id X*#1379] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -21951,18 +20446,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C, `%->_%%`_instrtype{resulttype#145, `localidx*#107`}(`%`_resulttype{`X*#1390`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1441`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp C] [visit_id C] not free -[visit_exp `%->_%%`_instrtype{resulttype#145, `localidx*#107`}(`%`_resulttype{`X*#1390`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1441`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#145] -[visit_id resulttype#145] -[visit_exp `localidx*#107`] -[visit_id localidx*#107] -[visit_exp (`%`_resulttype{`X*#1390`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1441`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#1390`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#1390`] -[visit_id X*#1390] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -21974,9 +20463,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] not free [visit_id t_1*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#1441`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#1441`] -[visit_id X*#1441] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -21987,28 +20474,20 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#1452 X*#1520 localidx*#119 resulttype#165 t +[check_dims] C t [visit_exp C] [visit_id C] [visit_exp `DROP`_instr] [visit_exp ()] -[visit_exp `%->_%%`_instrtype{resulttype#165, `localidx*#119`}(`%`_resulttype{`X*#1452`}([t]), [], `%`_resulttype{`X*#1520`}([]))] -[visit_exp resulttype#165] -[visit_id resulttype#165] -[visit_exp `localidx*#119`] -[visit_id localidx*#119] -[visit_exp (`%`_resulttype{`X*#1452`}([t]), [], `%`_resulttype{`X*#1520`}([]))] -[visit_exp `%`_resulttype{`X*#1452`}([t])] -[visit_exp `X*#1452`] -[visit_id X*#1452] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([t]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([t]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([t])] [visit_exp ([t])] [visit_exp [t]] [visit_exp t] [visit_id t] [visit_exp []] -[visit_exp `%`_resulttype{`X*#1520`}([])] -[visit_exp `X*#1520`] -[visit_id X*#1520] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp (C, t)] @@ -22016,26 +20495,18 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp t] [visit_id t] not free -[check_dims] C X*#1541 X*#1590 localidx*#131 resulttype#185 t valtype*?#3 +[check_dims] C t [visit_exp C] [visit_id C] -[visit_exp `SELECT`_instr{`valtype*?#3`}(?([t]))] -[visit_exp `valtype*?#3`] -[visit_id valtype*?#3] +[visit_exp `SELECT`_instr(?([t]))] [visit_exp (?([t]))] [visit_exp ?([t])] [visit_exp [t]] [visit_exp t] [visit_id t] -[visit_exp `%->_%%`_instrtype{resulttype#185, `localidx*#131`}(`%`_resulttype{`X*#1541`}([t t `I32`_valtype]), [], `%`_resulttype{`X*#1590`}([t]))] -[visit_exp resulttype#185] -[visit_id resulttype#185] -[visit_exp `localidx*#131`] -[visit_id localidx*#131] -[visit_exp (`%`_resulttype{`X*#1541`}([t t `I32`_valtype]), [], `%`_resulttype{`X*#1590`}([t]))] -[visit_exp `%`_resulttype{`X*#1541`}([t t `I32`_valtype])] -[visit_exp `X*#1541`] -[visit_id X*#1541] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([t t `I32`_valtype]), [], `%`_resulttype([t]))] +[visit_exp (`%`_resulttype([t t `I32`_valtype]), [], `%`_resulttype([t]))] +[visit_exp `%`_resulttype([t t `I32`_valtype])] [visit_exp ([t t `I32`_valtype])] [visit_exp [t t `I32`_valtype]] [visit_exp t] @@ -22045,9 +20516,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#1590`}([t])] -[visit_exp `X*#1590`] -[visit_id X*#1590] +[visit_exp `%`_resulttype([t])] [visit_exp ([t])] [visit_exp [t]] [visit_exp t] @@ -22057,23 +20526,15 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp t] [visit_id t] not free -[check_dims] C X*#1611 X*#1660 localidx*#143 numtype resulttype#205 t t' valtype*?#5 vectype +[check_dims] C numtype t t' vectype [visit_exp C] [visit_id C] -[visit_exp `SELECT`_instr{`valtype*?#5`}(?())] -[visit_exp `valtype*?#5`] -[visit_id valtype*?#5] +[visit_exp `SELECT`_instr(?())] [visit_exp (?())] [visit_exp ?()] -[visit_exp `%->_%%`_instrtype{resulttype#205, `localidx*#143`}(`%`_resulttype{`X*#1611`}([t t `I32`_valtype]), [], `%`_resulttype{`X*#1660`}([t]))] -[visit_exp resulttype#205] -[visit_id resulttype#205] -[visit_exp `localidx*#143`] -[visit_id localidx*#143] -[visit_exp (`%`_resulttype{`X*#1611`}([t t `I32`_valtype]), [], `%`_resulttype{`X*#1660`}([t]))] -[visit_exp `%`_resulttype{`X*#1611`}([t t `I32`_valtype])] -[visit_exp `X*#1611`] -[visit_id X*#1611] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([t t `I32`_valtype]), [], `%`_resulttype([t]))] +[visit_exp (`%`_resulttype([t t `I32`_valtype]), [], `%`_resulttype([t]))] +[visit_exp `%`_resulttype([t t `I32`_valtype])] [visit_exp ([t t `I32`_valtype])] [visit_exp [t t `I32`_valtype]] [visit_exp t] @@ -22083,9 +20544,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#1660`}([t])] -[visit_exp `X*#1660`] -[visit_id X*#1660] +[visit_exp `%`_resulttype([t])] [visit_exp ([t])] [visit_exp [t]] [visit_exp t] @@ -22116,12 +20575,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp vectype] [visit_id vectype] [check_dims] -[check_dims] C X*#1681 X*#1730 localidx*#155 resulttype#225 valtype valtype?#3 +[check_dims] C valtype [visit_exp C] [visit_id C] -[visit_exp `_RESULT`_blocktype{`valtype?#3`}(valtype?{valtype <- `valtype?`})] -[visit_exp `valtype?#3`] -[visit_id valtype?#3] +[visit_exp `_RESULT`_blocktype(valtype?{valtype <- `valtype?`})] [visit_exp (valtype?{valtype <- `valtype?`})] [visit_exp valtype?{valtype <- `valtype?`}] [scope_enter valtype] @@ -22132,21 +20589,13 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `valtype?`] [visit_id valtype?] no dims [visit_id valtype?] -[visit_exp `%->_%%`_instrtype{resulttype#225, `localidx*#155`}(`%`_resulttype{`X*#1681`}([]), [], `%`_resulttype{`X*#1730`}(lift(valtype?{valtype <- `valtype?`})))] -[visit_exp resulttype#225] -[visit_id resulttype#225] -[visit_exp `localidx*#155`] -[visit_id localidx*#155] -[visit_exp (`%`_resulttype{`X*#1681`}([]), [], `%`_resulttype{`X*#1730`}(lift(valtype?{valtype <- `valtype?`})))] -[visit_exp `%`_resulttype{`X*#1681`}([])] -[visit_exp `X*#1681`] -[visit_id X*#1681] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(valtype?{valtype <- `valtype?`})))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype(lift(valtype?{valtype <- `valtype?`})))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#1730`}(lift(valtype?{valtype <- `valtype?`}))] -[visit_exp `X*#1730`] -[visit_id X*#1730] +[visit_exp `%`_resulttype(lift(valtype?{valtype <- `valtype?`}))] [visit_exp (lift(valtype?{valtype <- `valtype?`}))] [visit_exp lift(valtype?{valtype <- `valtype?`})] [visit_exp valtype?{valtype <- `valtype?`}] @@ -22169,24 +20618,16 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `valtype?`] [visit_id valtype?] not free [visit_id valtype?] no dims -[check_dims] C X*#1741 X*#1792 X*#1805 X*#1818 deftype*#19 i#5032 localidx*#167 resulttype#245 resulttype#248 t_1 t_2 typeidx typeidx#392 +[check_dims] C t_1 t_2 typeidx [visit_exp C] [visit_id C] -[visit_exp `_IDX`_blocktype{typeidx#392}(typeidx)] -[visit_exp typeidx#392] -[visit_id typeidx#392] +[visit_exp `_IDX`_blocktype(typeidx)] [visit_exp (typeidx)] [visit_exp typeidx] [visit_id typeidx] -[visit_exp `%->_%%`_instrtype{resulttype#245, `localidx*#167`}(`%`_resulttype{`X*#1741`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1792`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#245] -[visit_id resulttype#245] -[visit_exp `localidx*#167`] -[visit_id localidx*#167] -[visit_exp (`%`_resulttype{`X*#1741`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1792`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#1741`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#1741`] -[visit_id X*#1741] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -22198,9 +20639,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] no dims [visit_id t_1*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#1792`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#1792`] -[visit_id X*#1792] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22211,26 +20650,18 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C.`TYPES`_context{`deftype*#19`}[typeidx!`%`_typeidx{i#5032}.0], `FUNC%->%`_comptype{resulttype#248}(`%`_resulttype{`X*#1805`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#1818`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`TYPES`_context{`deftype*#19`}[typeidx!`%`_typeidx{i#5032}.0]] -[visit_exp C.`TYPES`_context{`deftype*#19`}] +[visit_exp (C.`TYPES`_context[typeidx!`%`_typeidx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`TYPES`_context[typeidx!`%`_typeidx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#19`] -[visit_id deftype*#19] -[visit_exp typeidx!`%`_typeidx{i#5032}.0] -[visit_exp typeidx!`%`_typeidx{i#5032}] +[visit_exp typeidx!`%`_typeidx.0] +[visit_exp typeidx!`%`_typeidx] [visit_exp typeidx] [visit_id typeidx] not free -[visit_exp i#5032] -[visit_id i#5032] -[visit_exp `FUNC%->%`_comptype{resulttype#248}(`%`_resulttype{`X*#1805`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#1818`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#248] -[visit_id resulttype#248] -[visit_exp (`%`_resulttype{`X*#1805`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#1818`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#1805`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#1805`] -[visit_id X*#1805] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -22241,9 +20672,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `%`_resulttype{`X*#1818`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#1818`] -[visit_id X*#1818] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22254,14 +20683,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#1831 X*#1882 X*#1893 X*#1944 X*#1955 X*#1968 X*#2020 blocktype#7 bt datatype*#2 deftype*#20 deftype*#21 elemtype*#2 funcidx*#40 globaltype*#2 instr instr*#8 localidx*#179 localidx*#191 localidx*#203 localtype*#5 memtype*#2 resulttype#268 resulttype#288 resulttype#308 resulttype*#2 resulttype?#2 subtype*#5 t_1 t_2 tabletype*#2 tagtype*#2 x +[check_dims] C bt instr t_1 t_2 x [visit_exp C] [visit_id C] -[visit_exp `BLOCK`_instr{blocktype#7, `instr*#8`}(bt, instr*{instr <- `instr*`})] -[visit_exp blocktype#7] -[visit_id blocktype#7] -[visit_exp `instr*#8`] -[visit_id instr*#8] +[visit_exp `BLOCK`_instr(bt, instr*{instr <- `instr*`})] [visit_exp (bt, instr*{instr <- `instr*`})] [visit_exp bt] [visit_id bt] @@ -22274,15 +20699,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp `%->_%%`_instrtype{resulttype#268, `localidx*#179`}(`%`_resulttype{`X*#1831`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1882`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#268] -[visit_id resulttype#268] -[visit_exp `localidx*#179`] -[visit_id localidx*#179] -[visit_exp (`%`_resulttype{`X*#1831`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1882`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#1831`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#1831`] -[visit_id X*#1831] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -22294,9 +20713,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] no dims [visit_id t_1*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#1882`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#1882`] -[visit_id X*#1882] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22307,20 +20724,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C, bt, `%->_%%`_instrtype{resulttype#288, `localidx*#191`}(`%`_resulttype{`X*#1893`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1944`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp C] [visit_id C] not free [visit_exp bt] [visit_id bt] not free -[visit_exp `%->_%%`_instrtype{resulttype#288, `localidx*#191`}(`%`_resulttype{`X*#1893`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1944`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#288] -[visit_id resulttype#288] -[visit_exp `localidx*#191`] -[visit_id localidx*#191] -[visit_exp (`%`_resulttype{`X*#1893`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1944`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#1893`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#1893`] -[visit_id X*#1893] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -22332,9 +20743,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] not free [visit_id t_1*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#1944`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#1944`] -[visit_id X*#1944] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22345,45 +20754,21 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp ({`TYPES`{`deftype*#20`} [], `RECS`{`subtype*#5`} [], `TAGS`{`tagtype*#2`} [], `GLOBALS`{`globaltype*#2`} [], `MEMS`{`memtype*#2`} [], `TABLES`{`tabletype*#2`} [], `FUNCS`{`deftype*#21`} [], `DATAS`{`datatype*#2`} [], `ELEMS`{`elemtype*#2`} [], `LOCALS`{`localtype*#5`} [], `LABELS`{`resulttype*#2`} [`%`_resulttype{`X*#1955`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#2`} ?(), `REFS`{`funcidx*#40`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#308, `localidx*#203`}(`%`_resulttype{`X*#1968`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2020`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp {`TYPES`{`deftype*#20`} [], `RECS`{`subtype*#5`} [], `TAGS`{`tagtype*#2`} [], `GLOBALS`{`globaltype*#2`} [], `MEMS`{`memtype*#2`} [], `TABLES`{`tabletype*#2`} [], `FUNCS`{`deftype*#21`} [], `DATAS`{`datatype*#2`} [], `ELEMS`{`elemtype*#2`} [], `LOCALS`{`localtype*#5`} [], `LABELS`{`resulttype*#2`} [`%`_resulttype{`X*#1955`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#2`} ?(), `REFS`{`funcidx*#40`} []} +++ C] -[visit_exp {`TYPES`{`deftype*#20`} [], `RECS`{`subtype*#5`} [], `TAGS`{`tagtype*#2`} [], `GLOBALS`{`globaltype*#2`} [], `MEMS`{`memtype*#2`} [], `TABLES`{`tabletype*#2`} [], `FUNCS`{`deftype*#21`} [], `DATAS`{`datatype*#2`} [], `ELEMS`{`elemtype*#2`} [], `LOCALS`{`localtype*#5`} [], `LABELS`{`resulttype*#2`} [`%`_resulttype{`X*#1955`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#2`} ?(), `REFS`{`funcidx*#40`} []}] -[visit_exp `deftype*#20`] -[visit_id deftype*#20] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#5`] -[visit_id subtype*#5] [visit_exp []] -[visit_exp `tagtype*#2`] -[visit_id tagtype*#2] [visit_exp []] -[visit_exp `globaltype*#2`] -[visit_id globaltype*#2] [visit_exp []] -[visit_exp `memtype*#2`] -[visit_id memtype*#2] [visit_exp []] -[visit_exp `tabletype*#2`] -[visit_id tabletype*#2] [visit_exp []] -[visit_exp `deftype*#21`] -[visit_id deftype*#21] [visit_exp []] -[visit_exp `datatype*#2`] -[visit_id datatype*#2] [visit_exp []] -[visit_exp `elemtype*#2`] -[visit_id elemtype*#2] [visit_exp []] -[visit_exp `localtype*#5`] -[visit_id localtype*#5] [visit_exp []] -[visit_exp `resulttype*#2`] -[visit_id resulttype*#2] -[visit_exp [`%`_resulttype{`X*#1955`}(t_2*{t_2 <- `t_2*`})]] -[visit_exp `%`_resulttype{`X*#1955`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#1955`] -[visit_id X*#1955] +[visit_exp [`%`_resulttype(t_2*{t_2 <- `t_2*`})]] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22394,11 +20779,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp `resulttype?#2`] -[visit_id resulttype?#2] [visit_exp ?()] -[visit_exp `funcidx*#40`] -[visit_id funcidx*#40] [visit_exp []] [visit_exp C] [visit_id C] not free @@ -22411,15 +20792,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp `%->_%%`_instrtype{resulttype#308, `localidx*#203`}(`%`_resulttype{`X*#1968`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2020`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#308] -[visit_id resulttype#308] -[visit_exp `localidx*#203`] -[visit_id localidx*#203] -[visit_exp (`%`_resulttype{`X*#1968`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2020`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#1968`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#1968`] -[visit_id X*#1968] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -22439,9 +20814,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `x*`] [visit_id x*] no dims [visit_id x*] -[visit_exp `%`_resulttype{`X*#2020`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2020`] -[visit_id X*#2020] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22452,14 +20825,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#2033 X*#2084 X*#2095 X*#2146 X*#2157 X*#2170 X*#2222 blocktype#9 bt datatype*#3 deftype*#22 deftype*#23 elemtype*#3 funcidx*#41 globaltype*#3 instr instr*#10 localidx*#215 localidx*#227 localidx*#239 localtype*#6 memtype*#3 resulttype#328 resulttype#348 resulttype#368 resulttype*#3 resulttype?#3 subtype*#6 t_1 t_2 tabletype*#3 tagtype*#3 x +[check_dims] C bt instr t_1 t_2 x [visit_exp C] [visit_id C] -[visit_exp `LOOP`_instr{blocktype#9, `instr*#10`}(bt, instr*{instr <- `instr*`})] -[visit_exp blocktype#9] -[visit_id blocktype#9] -[visit_exp `instr*#10`] -[visit_id instr*#10] +[visit_exp `LOOP`_instr(bt, instr*{instr <- `instr*`})] [visit_exp (bt, instr*{instr <- `instr*`})] [visit_exp bt] [visit_id bt] @@ -22472,15 +20841,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp `%->_%%`_instrtype{resulttype#328, `localidx*#215`}(`%`_resulttype{`X*#2033`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2084`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#328] -[visit_id resulttype#328] -[visit_exp `localidx*#215`] -[visit_id localidx*#215] -[visit_exp (`%`_resulttype{`X*#2033`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2084`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#2033`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#2033`] -[visit_id X*#2033] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -22492,9 +20855,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] no dims [visit_id t_1*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#2084`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2084`] -[visit_id X*#2084] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22505,20 +20866,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C, bt, `%->_%%`_instrtype{resulttype#348, `localidx*#227`}(`%`_resulttype{`X*#2095`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2146`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp C] [visit_id C] not free [visit_exp bt] [visit_id bt] not free -[visit_exp `%->_%%`_instrtype{resulttype#348, `localidx*#227`}(`%`_resulttype{`X*#2095`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2146`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#348] -[visit_id resulttype#348] -[visit_exp `localidx*#227`] -[visit_id localidx*#227] -[visit_exp (`%`_resulttype{`X*#2095`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2146`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#2095`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#2095`] -[visit_id X*#2095] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -22530,9 +20885,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] not free [visit_id t_1*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#2146`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2146`] -[visit_id X*#2146] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22543,45 +20896,21 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp ({`TYPES`{`deftype*#22`} [], `RECS`{`subtype*#6`} [], `TAGS`{`tagtype*#3`} [], `GLOBALS`{`globaltype*#3`} [], `MEMS`{`memtype*#3`} [], `TABLES`{`tabletype*#3`} [], `FUNCS`{`deftype*#23`} [], `DATAS`{`datatype*#3`} [], `ELEMS`{`elemtype*#3`} [], `LOCALS`{`localtype*#6`} [], `LABELS`{`resulttype*#3`} [`%`_resulttype{`X*#2157`}(t_1*{t_1 <- `t_1*`})], `RETURN`{`resulttype?#3`} ?(), `REFS`{`funcidx*#41`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#368, `localidx*#239`}(`%`_resulttype{`X*#2170`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2222`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp {`TYPES`{`deftype*#22`} [], `RECS`{`subtype*#6`} [], `TAGS`{`tagtype*#3`} [], `GLOBALS`{`globaltype*#3`} [], `MEMS`{`memtype*#3`} [], `TABLES`{`tabletype*#3`} [], `FUNCS`{`deftype*#23`} [], `DATAS`{`datatype*#3`} [], `ELEMS`{`elemtype*#3`} [], `LOCALS`{`localtype*#6`} [], `LABELS`{`resulttype*#3`} [`%`_resulttype{`X*#2157`}(t_1*{t_1 <- `t_1*`})], `RETURN`{`resulttype?#3`} ?(), `REFS`{`funcidx*#41`} []} +++ C] -[visit_exp {`TYPES`{`deftype*#22`} [], `RECS`{`subtype*#6`} [], `TAGS`{`tagtype*#3`} [], `GLOBALS`{`globaltype*#3`} [], `MEMS`{`memtype*#3`} [], `TABLES`{`tabletype*#3`} [], `FUNCS`{`deftype*#23`} [], `DATAS`{`datatype*#3`} [], `ELEMS`{`elemtype*#3`} [], `LOCALS`{`localtype*#6`} [], `LABELS`{`resulttype*#3`} [`%`_resulttype{`X*#2157`}(t_1*{t_1 <- `t_1*`})], `RETURN`{`resulttype?#3`} ?(), `REFS`{`funcidx*#41`} []}] -[visit_exp `deftype*#22`] -[visit_id deftype*#22] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_1*{t_1 <- `t_1*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_1*{t_1 <- `t_1*`})], `RETURN` ?(), `REFS` []} +++ C] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_1*{t_1 <- `t_1*`})], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#6`] -[visit_id subtype*#6] [visit_exp []] -[visit_exp `tagtype*#3`] -[visit_id tagtype*#3] [visit_exp []] -[visit_exp `globaltype*#3`] -[visit_id globaltype*#3] [visit_exp []] -[visit_exp `memtype*#3`] -[visit_id memtype*#3] [visit_exp []] -[visit_exp `tabletype*#3`] -[visit_id tabletype*#3] [visit_exp []] -[visit_exp `deftype*#23`] -[visit_id deftype*#23] [visit_exp []] -[visit_exp `datatype*#3`] -[visit_id datatype*#3] [visit_exp []] -[visit_exp `elemtype*#3`] -[visit_id elemtype*#3] [visit_exp []] -[visit_exp `localtype*#6`] -[visit_id localtype*#6] [visit_exp []] -[visit_exp `resulttype*#3`] -[visit_id resulttype*#3] -[visit_exp [`%`_resulttype{`X*#2157`}(t_1*{t_1 <- `t_1*`})]] -[visit_exp `%`_resulttype{`X*#2157`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#2157`] -[visit_id X*#2157] +[visit_exp [`%`_resulttype(t_1*{t_1 <- `t_1*`})]] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -22592,11 +20921,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `resulttype?#3`] -[visit_id resulttype?#3] [visit_exp ?()] -[visit_exp `funcidx*#41`] -[visit_id funcidx*#41] [visit_exp []] [visit_exp C] [visit_id C] not free @@ -22609,15 +20934,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp `%->_%%`_instrtype{resulttype#368, `localidx*#239`}(`%`_resulttype{`X*#2170`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2222`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#368] -[visit_id resulttype#368] -[visit_exp `localidx*#239`] -[visit_id localidx*#239] -[visit_exp (`%`_resulttype{`X*#2170`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2222`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#2170`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#2170`] -[visit_id X*#2170] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -22637,9 +20956,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `x*`] [visit_id x*] no dims [visit_id x*] -[visit_exp `%`_resulttype{`X*#2222`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2222`] -[visit_id X*#2222] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22650,14 +20967,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#2245 X*#2294 X*#2305 X*#2356 X*#2367 X*#2380 X*#2432 X*#2445 X*#2458 X*#2510 blocktype#11 bt datatype*#4 datatype*#5 deftype*#24 deftype*#25 deftype*#26 deftype*#27 elemtype*#4 elemtype*#5 funcidx*#42 funcidx*#43 globaltype*#4 globaltype*#5 instr*#12 instr_1 instr_2 localidx*#251 localidx*#263 localidx*#275 localidx*#287 localtype*#7 localtype*#8 memtype*#4 memtype*#5 resulttype#388 resulttype#408 resulttype#428 resulttype#448 resulttype*#4 resulttype*#5 resulttype?#4 resulttype?#5 subtype*#7 subtype*#8 t_1 t_2 tabletype*#4 tabletype*#5 tagtype*#4 tagtype*#5 x_1 x_2 +[check_dims] C bt instr_1 instr_2 t_1 t_2 x_1 x_2 [visit_exp C] [visit_id C] -[visit_exp `IF%%ELSE%`_instr{blocktype#11, `instr*#12`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp blocktype#11] -[visit_id blocktype#11] -[visit_exp `instr*#12`] -[visit_id instr*#12] +[visit_exp `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] [visit_exp (bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] [visit_exp bt] [visit_id bt] @@ -22679,15 +20992,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `instr_2*`] [visit_id instr_2*] no dims [visit_id instr_2*] -[visit_exp `%->_%%`_instrtype{resulttype#388, `localidx*#251`}(`%`_resulttype{`X*#2245`}(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2294`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#388] -[visit_id resulttype#388] -[visit_exp `localidx*#251`] -[visit_id localidx*#251] -[visit_exp (`%`_resulttype{`X*#2245`}(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2294`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#2245`}(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype])] -[visit_exp `X*#2245`] -[visit_id X*#2245] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype])] [visit_exp (t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype])] [visit_exp t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]] [visit_exp t_1*{t_1 <- `t_1*`}] @@ -22703,9 +21010,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#2294`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2294`] -[visit_id X*#2294] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22716,20 +21021,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C, bt, `%->_%%`_instrtype{resulttype#408, `localidx*#263`}(`%`_resulttype{`X*#2305`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2356`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp C] [visit_id C] not free [visit_exp bt] [visit_id bt] not free -[visit_exp `%->_%%`_instrtype{resulttype#408, `localidx*#263`}(`%`_resulttype{`X*#2305`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2356`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#408] -[visit_id resulttype#408] -[visit_exp `localidx*#263`] -[visit_id localidx*#263] -[visit_exp (`%`_resulttype{`X*#2305`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2356`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#2305`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#2305`] -[visit_id X*#2305] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -22741,9 +21040,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] not free [visit_id t_1*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#2356`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2356`] -[visit_id X*#2356] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22754,45 +21051,21 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp ({`TYPES`{`deftype*#24`} [], `RECS`{`subtype*#7`} [], `TAGS`{`tagtype*#4`} [], `GLOBALS`{`globaltype*#4`} [], `MEMS`{`memtype*#4`} [], `TABLES`{`tabletype*#4`} [], `FUNCS`{`deftype*#25`} [], `DATAS`{`datatype*#4`} [], `ELEMS`{`elemtype*#4`} [], `LOCALS`{`localtype*#7`} [], `LABELS`{`resulttype*#4`} [`%`_resulttype{`X*#2367`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#4`} ?(), `REFS`{`funcidx*#42`} []} +++ C, instr_1*{instr_1 <- `instr_1*`}, `%->_%%`_instrtype{resulttype#428, `localidx*#275`}(`%`_resulttype{`X*#2380`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#2432`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp {`TYPES`{`deftype*#24`} [], `RECS`{`subtype*#7`} [], `TAGS`{`tagtype*#4`} [], `GLOBALS`{`globaltype*#4`} [], `MEMS`{`memtype*#4`} [], `TABLES`{`tabletype*#4`} [], `FUNCS`{`deftype*#25`} [], `DATAS`{`datatype*#4`} [], `ELEMS`{`elemtype*#4`} [], `LOCALS`{`localtype*#7`} [], `LABELS`{`resulttype*#4`} [`%`_resulttype{`X*#2367`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#4`} ?(), `REFS`{`funcidx*#42`} []} +++ C] -[visit_exp {`TYPES`{`deftype*#24`} [], `RECS`{`subtype*#7`} [], `TAGS`{`tagtype*#4`} [], `GLOBALS`{`globaltype*#4`} [], `MEMS`{`memtype*#4`} [], `TABLES`{`tabletype*#4`} [], `FUNCS`{`deftype*#25`} [], `DATAS`{`datatype*#4`} [], `ELEMS`{`elemtype*#4`} [], `LOCALS`{`localtype*#7`} [], `LABELS`{`resulttype*#4`} [`%`_resulttype{`X*#2367`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#4`} ?(), `REFS`{`funcidx*#42`} []}] -[visit_exp `deftype*#24`] -[visit_id deftype*#24] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr_1*{instr_1 <- `instr_1*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#7`] -[visit_id subtype*#7] [visit_exp []] -[visit_exp `tagtype*#4`] -[visit_id tagtype*#4] [visit_exp []] -[visit_exp `globaltype*#4`] -[visit_id globaltype*#4] [visit_exp []] -[visit_exp `memtype*#4`] -[visit_id memtype*#4] [visit_exp []] -[visit_exp `tabletype*#4`] -[visit_id tabletype*#4] [visit_exp []] -[visit_exp `deftype*#25`] -[visit_id deftype*#25] [visit_exp []] -[visit_exp `datatype*#4`] -[visit_id datatype*#4] [visit_exp []] -[visit_exp `elemtype*#4`] -[visit_id elemtype*#4] [visit_exp []] -[visit_exp `localtype*#7`] -[visit_id localtype*#7] [visit_exp []] -[visit_exp `resulttype*#4`] -[visit_id resulttype*#4] -[visit_exp [`%`_resulttype{`X*#2367`}(t_2*{t_2 <- `t_2*`})]] -[visit_exp `%`_resulttype{`X*#2367`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2367`] -[visit_id X*#2367] +[visit_exp [`%`_resulttype(t_2*{t_2 <- `t_2*`})]] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22803,11 +21076,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp `resulttype?#4`] -[visit_id resulttype?#4] [visit_exp ?()] -[visit_exp `funcidx*#42`] -[visit_id funcidx*#42] [visit_exp []] [visit_exp C] [visit_id C] not free @@ -22820,15 +21089,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `instr_1*`] [visit_id instr_1*] not free [visit_id instr_1*] no dims -[visit_exp `%->_%%`_instrtype{resulttype#428, `localidx*#275`}(`%`_resulttype{`X*#2380`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#2432`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#428] -[visit_id resulttype#428] -[visit_exp `localidx*#275`] -[visit_id localidx*#275] -[visit_exp (`%`_resulttype{`X*#2380`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#2432`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#2380`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#2380`] -[visit_id X*#2380] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -22848,9 +21111,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `x_1*`] [visit_id x_1*] no dims [visit_id x_1*] -[visit_exp `%`_resulttype{`X*#2432`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2432`] -[visit_id X*#2432] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22861,45 +21122,21 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp ({`TYPES`{`deftype*#26`} [], `RECS`{`subtype*#8`} [], `TAGS`{`tagtype*#5`} [], `GLOBALS`{`globaltype*#5`} [], `MEMS`{`memtype*#5`} [], `TABLES`{`tabletype*#5`} [], `FUNCS`{`deftype*#27`} [], `DATAS`{`datatype*#5`} [], `ELEMS`{`elemtype*#5`} [], `LOCALS`{`localtype*#8`} [], `LABELS`{`resulttype*#5`} [`%`_resulttype{`X*#2445`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#5`} ?(), `REFS`{`funcidx*#43`} []} +++ C, instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype{resulttype#448, `localidx*#287`}(`%`_resulttype{`X*#2458`}(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#2510`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp {`TYPES`{`deftype*#26`} [], `RECS`{`subtype*#8`} [], `TAGS`{`tagtype*#5`} [], `GLOBALS`{`globaltype*#5`} [], `MEMS`{`memtype*#5`} [], `TABLES`{`tabletype*#5`} [], `FUNCS`{`deftype*#27`} [], `DATAS`{`datatype*#5`} [], `ELEMS`{`elemtype*#5`} [], `LOCALS`{`localtype*#8`} [], `LABELS`{`resulttype*#5`} [`%`_resulttype{`X*#2445`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#5`} ?(), `REFS`{`funcidx*#43`} []} +++ C] -[visit_exp {`TYPES`{`deftype*#26`} [], `RECS`{`subtype*#8`} [], `TAGS`{`tagtype*#5`} [], `GLOBALS`{`globaltype*#5`} [], `MEMS`{`memtype*#5`} [], `TABLES`{`tabletype*#5`} [], `FUNCS`{`deftype*#27`} [], `DATAS`{`datatype*#5`} [], `ELEMS`{`elemtype*#5`} [], `LOCALS`{`localtype*#8`} [], `LABELS`{`resulttype*#5`} [`%`_resulttype{`X*#2445`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#5`} ?(), `REFS`{`funcidx*#43`} []}] -[visit_exp `deftype*#26`] -[visit_id deftype*#26] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#8`] -[visit_id subtype*#8] [visit_exp []] -[visit_exp `tagtype*#5`] -[visit_id tagtype*#5] [visit_exp []] -[visit_exp `globaltype*#5`] -[visit_id globaltype*#5] [visit_exp []] -[visit_exp `memtype*#5`] -[visit_id memtype*#5] [visit_exp []] -[visit_exp `tabletype*#5`] -[visit_id tabletype*#5] [visit_exp []] -[visit_exp `deftype*#27`] -[visit_id deftype*#27] [visit_exp []] -[visit_exp `datatype*#5`] -[visit_id datatype*#5] [visit_exp []] -[visit_exp `elemtype*#5`] -[visit_id elemtype*#5] [visit_exp []] -[visit_exp `localtype*#8`] -[visit_id localtype*#8] [visit_exp []] -[visit_exp `resulttype*#5`] -[visit_id resulttype*#5] -[visit_exp [`%`_resulttype{`X*#2445`}(t_2*{t_2 <- `t_2*`})]] -[visit_exp `%`_resulttype{`X*#2445`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2445`] -[visit_id X*#2445] +[visit_exp [`%`_resulttype(t_2*{t_2 <- `t_2*`})]] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22910,11 +21147,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp `resulttype?#5`] -[visit_id resulttype?#5] [visit_exp ?()] -[visit_exp `funcidx*#43`] -[visit_id funcidx*#43] [visit_exp []] [visit_exp C] [visit_id C] not free @@ -22927,15 +21160,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `instr_2*`] [visit_id instr_2*] not free [visit_id instr_2*] no dims -[visit_exp `%->_%%`_instrtype{resulttype#448, `localidx*#287`}(`%`_resulttype{`X*#2458`}(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#2510`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#448] -[visit_id resulttype#448] -[visit_exp `localidx*#287`] -[visit_id localidx*#287] -[visit_exp (`%`_resulttype{`X*#2458`}(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#2510`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#2458`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#2458`] -[visit_id X*#2458] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -22955,9 +21182,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `x_2*`] [visit_id x_2*] no dims [visit_id x_2*] -[visit_exp `%`_resulttype{`X*#2510`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2510`] -[visit_id X*#2510] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -22968,24 +21193,16 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#2533 X*#2582 X*#2627 X*#2637 X*#2688 i#5368 l labelidx#15 localidx*#299 localidx*#311 resulttype#468 resulttype#488 resulttype*#7 t t_1 t_2 +[check_dims] C l t t_1 t_2 [visit_exp C] [visit_id C] -[visit_exp `BR`_instr{labelidx#15}(l)] -[visit_exp labelidx#15] -[visit_id labelidx#15] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] -[visit_exp `%->_%%`_instrtype{resulttype#468, `localidx*#299`}(`%`_resulttype{`X*#2533`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#2582`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#468] -[visit_id resulttype#468] -[visit_exp `localidx*#299`] -[visit_id localidx*#299] -[visit_exp (`%`_resulttype{`X*#2533`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#2582`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#2533`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] -[visit_exp `X*#2533`] -[visit_id X*#2533] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] [visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] [visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}] [visit_exp t_1*{t_1 <- `t_1*`}] @@ -23007,9 +21224,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t*] no dims [visit_id t*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#2582`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2582`] -[visit_id X*#2582] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -23020,23 +21235,17 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C.`LABELS`_context{`resulttype*#7`}[l!`%`_labelidx{i#5368}.0]!`%`_resulttype{`X*#2627`}.0 = t*{t <- `t*`})] -[visit_exp C.`LABELS`_context{`resulttype*#7`}[l!`%`_labelidx{i#5368}.0]!`%`_resulttype{`X*#2627`}.0] -[visit_exp C.`LABELS`_context{`resulttype*#7`}[l!`%`_labelidx{i#5368}.0]!`%`_resulttype{`X*#2627`}] -[visit_exp C.`LABELS`_context{`resulttype*#7`}[l!`%`_labelidx{i#5368}.0]] -[visit_exp C.`LABELS`_context{`resulttype*#7`}] +[visit_exp (C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`})] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] +[visit_exp C.`LABELS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype*#7`] -[visit_id resulttype*#7] -[visit_exp l!`%`_labelidx{i#5368}.0] -[visit_exp l!`%`_labelidx{i#5368}] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#5368] -[visit_id i#5368] -[visit_exp `X*#2627`] -[visit_id X*#2627] [visit_exp t*{t <- `t*`}] [scope_enter t] [visit_exp t] @@ -23046,18 +21255,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[visit_exp (C, `%->_%%`_instrtype{resulttype#488, `localidx*#311`}(`%`_resulttype{`X*#2637`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2688`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp C] [visit_id C] not free -[visit_exp `%->_%%`_instrtype{resulttype#488, `localidx*#311`}(`%`_resulttype{`X*#2637`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2688`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#488] -[visit_id resulttype#488] -[visit_exp `localidx*#311`] -[visit_id localidx*#311] -[visit_exp (`%`_resulttype{`X*#2637`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2688`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#2637`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#2637`] -[visit_id X*#2637] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -23069,9 +21272,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] not free [visit_id t_1*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#2688`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2688`] -[visit_id X*#2688] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -23082,24 +21283,16 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#2709 X*#2758 X*#2803 i#5400 l labelidx#17 localidx*#323 resulttype#508 resulttype*#9 t +[check_dims] C l t [visit_exp C] [visit_id C] -[visit_exp `BR_IF`_instr{labelidx#17}(l)] -[visit_exp labelidx#17] -[visit_id labelidx#17] +[visit_exp `BR_IF`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] -[visit_exp `%->_%%`_instrtype{resulttype#508, `localidx*#323`}(`%`_resulttype{`X*#2709`}(t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2758`}(t*{t <- `t*`}))] -[visit_exp resulttype#508] -[visit_id resulttype#508] -[visit_exp `localidx*#323`] -[visit_id localidx*#323] -[visit_exp (`%`_resulttype{`X*#2709`}(t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2758`}(t*{t <- `t*`}))] -[visit_exp `%`_resulttype{`X*#2709`}(t*{t <- `t*`} ++ [`I32`_valtype])] -[visit_exp `X*#2709`] -[visit_id X*#2709] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t*{t <- `t*`}))] +[visit_exp (`%`_resulttype(t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t*{t <- `t*`}))] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [`I32`_valtype])] [visit_exp (t*{t <- `t*`} ++ [`I32`_valtype])] [visit_exp t*{t <- `t*`} ++ [`I32`_valtype]] [visit_exp t*{t <- `t*`}] @@ -23115,9 +21308,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#2758`}(t*{t <- `t*`})] -[visit_exp `X*#2758`] -[visit_id X*#2758] +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -23128,23 +21319,17 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[visit_exp (C.`LABELS`_context{`resulttype*#9`}[l!`%`_labelidx{i#5400}.0]!`%`_resulttype{`X*#2803`}.0 = t*{t <- `t*`})] -[visit_exp C.`LABELS`_context{`resulttype*#9`}[l!`%`_labelidx{i#5400}.0]!`%`_resulttype{`X*#2803`}.0] -[visit_exp C.`LABELS`_context{`resulttype*#9`}[l!`%`_labelidx{i#5400}.0]!`%`_resulttype{`X*#2803`}] -[visit_exp C.`LABELS`_context{`resulttype*#9`}[l!`%`_labelidx{i#5400}.0]] -[visit_exp C.`LABELS`_context{`resulttype*#9`}] +[visit_exp (C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`})] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] +[visit_exp C.`LABELS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype*#9`] -[visit_id resulttype*#9] -[visit_exp l!`%`_labelidx{i#5400}.0] -[visit_exp l!`%`_labelidx{i#5400}] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#5400] -[visit_id i#5400] -[visit_exp `X*#2803`] -[visit_id X*#2803] [visit_exp t*{t <- `t*`}] [scope_enter t] [visit_exp t] @@ -23154,14 +21339,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[check_dims] C X*#2823 X*#2872 X*#2883 X*#2906 X*#2939 X*#2988 i#5482 i#5492 l l' labelidx#19 labelidx*#48 localidx*#335 localidx*#347 resulttype#528 resulttype#548 resulttype*#10 resulttype*#11 t t_1 t_2 +[check_dims] C l l' t t_1 t_2 [visit_exp C] [visit_id C] -[visit_exp `BR_TABLE`_instr{`labelidx*#48`, labelidx#19}(l*{l <- `l*`}, l')] -[visit_exp `labelidx*#48`] -[visit_id labelidx*#48] -[visit_exp labelidx#19] -[visit_id labelidx#19] +[visit_exp `BR_TABLE`_instr(l*{l <- `l*`}, l')] [visit_exp (l*{l <- `l*`}, l')] [visit_exp l*{l <- `l*`}] [scope_enter l] @@ -23174,15 +21355,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id l*] [visit_exp l'] [visit_id l'] -[visit_exp `%->_%%`_instrtype{resulttype#528, `localidx*#335`}(`%`_resulttype{`X*#2823`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2872`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#528] -[visit_id resulttype#528] -[visit_exp `localidx*#335`] -[visit_id localidx*#335] -[visit_exp (`%`_resulttype{`X*#2823`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2872`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#2823`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] -[visit_exp `X*#2823`] -[visit_id X*#2823] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] [visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] [visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]] [visit_exp t_1*{t_1 <- `t_1*`}] @@ -23208,9 +21383,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#2872`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2872`] -[visit_id X*#2872] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -23221,16 +21394,11 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[scope_enter X*#2883] -[scope_enter i#5482] [scope_enter l] -[scope_enter resulttype*#10] -[visit_exp (C, `%`_resulttype{`X*#2883`}(t*{t <- `t*`}), C.`LABELS`_context{`resulttype*#10`}[l!`%`_labelidx{i#5482}.0])] +[visit_exp (C, `%`_resulttype(t*{t <- `t*`}), C.`LABELS`_context[l!`%`_labelidx.0])] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#2883`}(t*{t <- `t*`})] -[visit_exp `X*#2883`] -[visit_id X*#2883] not free +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -23241,44 +21409,23 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[visit_exp C.`LABELS`_context{`resulttype*#10`}[l!`%`_labelidx{i#5482}.0]] -[visit_exp C.`LABELS`_context{`resulttype*#10`}] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] +[visit_exp C.`LABELS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype*#10`] -[visit_id resulttype*#10] not free -[visit_exp l!`%`_labelidx{i#5482}.0] -[visit_exp l!`%`_labelidx{i#5482}] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#5482] -[visit_id i#5482] not free -[visit_id X*#2883] not free -[visit_id i#5482] not free [visit_id l] not free -[visit_id resulttype*#10] not free -[scope_exit resulttype*#10] [scope_exit l] -[scope_exit i#5482] -[scope_exit X*#2883] -[visit_exp `X*#2883*`] -[visit_id X*#2883*] no dims -[visit_id X*#2883*] -[visit_exp `i#5482*`] -[visit_id i#5482*] no dims -[visit_id i#5482*] [visit_exp `l*`] [visit_id l*] not free [visit_id l*] no dims -[visit_exp `resulttype*#10*`] -[visit_id resulttype*#10*] no dims -[visit_id resulttype*#10*] -[visit_exp (C, `%`_resulttype{`X*#2906`}(t*{t <- `t*`}), C.`LABELS`_context{`resulttype*#11`}[l'!`%`_labelidx{i#5492}.0])] +[visit_exp (C, `%`_resulttype(t*{t <- `t*`}), C.`LABELS`_context[l'!`%`_labelidx.0])] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#2906`}(t*{t <- `t*`})] -[visit_exp `X*#2906`] -[visit_id X*#2906] +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -23289,30 +21436,20 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[visit_exp C.`LABELS`_context{`resulttype*#11`}[l'!`%`_labelidx{i#5492}.0]] -[visit_exp C.`LABELS`_context{`resulttype*#11`}] +[visit_exp C.`LABELS`_context[l'!`%`_labelidx.0]] +[visit_exp C.`LABELS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype*#11`] -[visit_id resulttype*#11] -[visit_exp l'!`%`_labelidx{i#5492}.0] -[visit_exp l'!`%`_labelidx{i#5492}] +[visit_exp l'!`%`_labelidx.0] +[visit_exp l'!`%`_labelidx] [visit_exp l'] [visit_id l'] not free -[visit_exp i#5492] -[visit_id i#5492] -[visit_exp (C, `%->_%%`_instrtype{resulttype#548, `localidx*#347`}(`%`_resulttype{`X*#2939`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2988`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp C] [visit_id C] not free -[visit_exp `%->_%%`_instrtype{resulttype#548, `localidx*#347`}(`%`_resulttype{`X*#2939`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2988`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#548] -[visit_id resulttype#548] -[visit_exp `localidx*#347`] -[visit_id localidx*#347] -[visit_exp (`%`_resulttype{`X*#2939`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2988`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#2939`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] -[visit_exp `X*#2939`] -[visit_id X*#2939] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] [visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] [visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]] [visit_exp t_1*{t_1 <- `t_1*`}] @@ -23338,9 +21475,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#2988`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#2988`] -[visit_id X*#2988] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -23351,26 +21486,18 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#3009 X*#3058 X*#3103 heaptype#537 heaptype#539 ht i#5524 l labelidx#21 localidx*#359 null?#535 null?#537 resulttype#568 resulttype*#13 t +[check_dims] C ht l t [visit_exp C] [visit_id C] -[visit_exp `BR_ON_NULL`_instr{labelidx#21}(l)] -[visit_exp labelidx#21] -[visit_id labelidx#21] +[visit_exp `BR_ON_NULL`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] -[visit_exp `%->_%%`_instrtype{resulttype#568, `localidx*#359`}(`%`_resulttype{`X*#3009`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#3058`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)]))] -[visit_exp resulttype#568] -[visit_id resulttype#568] -[visit_exp `localidx*#359`] -[visit_id localidx*#359] -[visit_exp (`%`_resulttype{`X*#3009`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#3058`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)]))] -[visit_exp `%`_resulttype{`X*#3009`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)])] -[visit_exp `X*#3009`] -[visit_id X*#3009] -[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)])] -[visit_exp t*{t <- `t*`} ++ [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)]] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), ht)]))] +[visit_exp (`%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), ht)]))] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)])] +[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)])] +[visit_exp t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]] [visit_exp t*{t <- `t*`}] [scope_enter t] [visit_exp t] @@ -23380,12 +21507,8 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] no dims [visit_id t*] -[visit_exp [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)]] -[visit_exp `REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)] -[visit_exp `null?#535`] -[visit_id null?#535] -[visit_exp heaptype#537] -[visit_id heaptype#537] +[visit_exp [`REF`_valtype(?(`NULL`_null), ht)]] +[visit_exp `REF`_valtype(?(`NULL`_null), ht)] [visit_exp (?(`NULL`_null), ht)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -23393,11 +21516,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp ht] [visit_id ht] [visit_exp []] -[visit_exp `%`_resulttype{`X*#3058`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)])] -[visit_exp `X*#3058`] -[visit_id X*#3058] -[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)])] -[visit_exp t*{t <- `t*`} ++ [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)]] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), ht)])] +[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype(?(), ht)])] +[visit_exp t*{t <- `t*`} ++ [`REF`_valtype(?(), ht)]] [visit_exp t*{t <- `t*`}] [scope_enter t] [visit_exp t] @@ -23407,33 +21528,23 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[visit_exp [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)]] -[visit_exp `REF`_valtype{`null?#537`, heaptype#539}(?(), ht)] -[visit_exp `null?#537`] -[visit_id null?#537] -[visit_exp heaptype#539] -[visit_id heaptype#539] +[visit_exp [`REF`_valtype(?(), ht)]] +[visit_exp `REF`_valtype(?(), ht)] [visit_exp (?(), ht)] [visit_exp ?()] [visit_exp ht] [visit_id ht] not free -[visit_exp (C.`LABELS`_context{`resulttype*#13`}[l!`%`_labelidx{i#5524}.0]!`%`_resulttype{`X*#3103`}.0 = t*{t <- `t*`})] -[visit_exp C.`LABELS`_context{`resulttype*#13`}[l!`%`_labelidx{i#5524}.0]!`%`_resulttype{`X*#3103`}.0] -[visit_exp C.`LABELS`_context{`resulttype*#13`}[l!`%`_labelidx{i#5524}.0]!`%`_resulttype{`X*#3103`}] -[visit_exp C.`LABELS`_context{`resulttype*#13`}[l!`%`_labelidx{i#5524}.0]] -[visit_exp C.`LABELS`_context{`resulttype*#13`}] +[visit_exp (C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`})] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] +[visit_exp C.`LABELS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype*#13`] -[visit_id resulttype*#13] -[visit_exp l!`%`_labelidx{i#5524}.0] -[visit_exp l!`%`_labelidx{i#5524}] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#5524] -[visit_id i#5524] -[visit_exp `X*#3103`] -[visit_id X*#3103] [visit_exp t*{t <- `t*`}] [scope_enter t] [visit_exp t] @@ -23448,26 +21559,18 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp ht] [visit_id ht] not free -[check_dims] C X*#3123 X*#3172 X*#3193 heaptype#541 heaptype#543 ht i#5546 l labelidx#23 localidx*#371 null?#539 null?#541 resulttype#588 resulttype*#14 t +[check_dims] C ht l t [visit_exp C] [visit_id C] -[visit_exp `BR_ON_NON_NULL`_instr{labelidx#23}(l)] -[visit_exp labelidx#23] -[visit_id labelidx#23] +[visit_exp `BR_ON_NON_NULL`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] -[visit_exp `%->_%%`_instrtype{resulttype#588, `localidx*#371`}(`%`_resulttype{`X*#3123`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#3172`}(t*{t <- `t*`}))] -[visit_exp resulttype#588] -[visit_id resulttype#588] -[visit_exp `localidx*#371`] -[visit_id localidx*#371] -[visit_exp (`%`_resulttype{`X*#3123`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#3172`}(t*{t <- `t*`}))] -[visit_exp `%`_resulttype{`X*#3123`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)])] -[visit_exp `X*#3123`] -[visit_id X*#3123] -[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)])] -[visit_exp t*{t <- `t*`} ++ [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)]] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype(t*{t <- `t*`}))] +[visit_exp (`%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype(t*{t <- `t*`}))] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)])] +[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)])] +[visit_exp t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]] [visit_exp t*{t <- `t*`}] [scope_enter t] [visit_exp t] @@ -23477,12 +21580,8 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] no dims [visit_id t*] -[visit_exp [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)]] -[visit_exp `REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)] -[visit_exp `null?#539`] -[visit_id null?#539] -[visit_exp heaptype#541] -[visit_id heaptype#541] +[visit_exp [`REF`_valtype(?(`NULL`_null), ht)]] +[visit_exp `REF`_valtype(?(`NULL`_null), ht)] [visit_exp (?(`NULL`_null), ht)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -23490,9 +21589,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp ht] [visit_id ht] [visit_exp []] -[visit_exp `%`_resulttype{`X*#3172`}(t*{t <- `t*`})] -[visit_exp `X*#3172`] -[visit_id X*#3172] +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -23503,24 +21600,18 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[visit_exp (C.`LABELS`_context{`resulttype*#14`}[l!`%`_labelidx{i#5546}.0] = `%`_resulttype{`X*#3193`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)]))] -[visit_exp C.`LABELS`_context{`resulttype*#14`}[l!`%`_labelidx{i#5546}.0]] -[visit_exp C.`LABELS`_context{`resulttype*#14`}] +[visit_exp (C.`LABELS`_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(`NULL`_null?{}, ht)]))] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] +[visit_exp C.`LABELS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype*#14`] -[visit_id resulttype*#14] -[visit_exp l!`%`_labelidx{i#5546}.0] -[visit_exp l!`%`_labelidx{i#5546}] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#5546] -[visit_id i#5546] -[visit_exp `%`_resulttype{`X*#3193`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)])] -[visit_exp `X*#3193`] -[visit_id X*#3193] -[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)])] -[visit_exp t*{t <- `t*`} ++ [`REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)]] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(`NULL`_null?{}, ht)])] +[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype(`NULL`_null?{}, ht)])] +[visit_exp t*{t <- `t*`} ++ [`REF`_valtype(`NULL`_null?{}, ht)]] [visit_exp t*{t <- `t*`}] [scope_enter t] [visit_exp t] @@ -23530,26 +21621,18 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[visit_exp [`REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)]] -[visit_exp `REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)] -[visit_exp `null?#541`] -[visit_id null?#541] -[visit_exp heaptype#543] -[visit_id heaptype#543] +[visit_exp [`REF`_valtype(`NULL`_null?{}, ht)]] +[visit_exp `REF`_valtype(`NULL`_null?{}, ht)] [visit_exp (`NULL`_null?{}, ht)] [visit_exp `NULL`_null?{}] [visit_exp `NULL`_null] [visit_exp ()] [visit_exp ht] [visit_id ht] not free -[check_dims] C X*#3214 X*#3263 X*#3284 i#5568 l labelidx#25 localidx*#383 reftype#373 resulttype#608 resulttype*#15 rt rt_1 rt_2 t +[check_dims] C l rt rt_1 rt_2 t [visit_exp C] [visit_id C] -[visit_exp `BR_ON_CAST`_instr{labelidx#25, reftype#373}(l, rt_1, rt_2)] -[visit_exp labelidx#25] -[visit_id labelidx#25] -[visit_exp reftype#373] -[visit_id reftype#373] +[visit_exp `BR_ON_CAST`_instr(l, rt_1, rt_2)] [visit_exp (l, rt_1, rt_2)] [visit_exp l] [visit_id l] @@ -23557,15 +21640,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id rt_1] [visit_exp rt_2] [visit_id rt_2] -[visit_exp `%->_%%`_instrtype{resulttype#608, `localidx*#383`}(`%`_resulttype{`X*#3214`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype{`X*#3263`}(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))] -[visit_exp resulttype#608] -[visit_id resulttype#608] -[visit_exp `localidx*#383`] -[visit_id localidx*#383] -[visit_exp (`%`_resulttype{`X*#3214`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype{`X*#3263`}(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))] -[visit_exp `%`_resulttype{`X*#3214`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] -[visit_exp `X*#3214`] -[visit_id X*#3214] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))] +[visit_exp (`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] [visit_exp (t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] [visit_exp t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]] [visit_exp t*{t <- `t*`}] @@ -23582,9 +21659,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp rt_1] [visit_id rt_1] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#3263`}(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)])] -[visit_exp `X*#3263`] -[visit_id X*#3263] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)])] [visit_exp (t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)])] [visit_exp t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]] [visit_exp t*{t <- `t*`}] @@ -23603,22 +21678,16 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id rt_1] not free [visit_exp rt_2] [visit_id rt_2] not free -[visit_exp (C.`LABELS`_context{`resulttype*#15`}[l!`%`_labelidx{i#5568}.0] = `%`_resulttype{`X*#3284`}(t*{t <- `t*`} ++ [(rt : reftype <: valtype)]))] -[visit_exp C.`LABELS`_context{`resulttype*#15`}[l!`%`_labelidx{i#5568}.0]] -[visit_exp C.`LABELS`_context{`resulttype*#15`}] +[visit_exp (C.`LABELS`_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)]))] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] +[visit_exp C.`LABELS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype*#15`] -[visit_id resulttype*#15] -[visit_exp l!`%`_labelidx{i#5568}.0] -[visit_exp l!`%`_labelidx{i#5568}] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#5568] -[visit_id i#5568] -[visit_exp `%`_resulttype{`X*#3284`}(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] -[visit_exp `X*#3284`] -[visit_id X*#3284] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] [visit_exp (t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] [visit_exp t*{t <- `t*`} ++ [(rt : reftype <: valtype)]] [visit_exp t*{t <- `t*`}] @@ -23658,14 +21727,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id rt_2] not free [visit_exp rt] [visit_id rt] not free -[check_dims] C X*#3305 X*#3354 X*#3375 i#5590 l labelidx#27 localidx*#395 reftype#376 resulttype#628 resulttype*#16 rt rt_1 rt_2 t +[check_dims] C l rt rt_1 rt_2 t [visit_exp C] [visit_id C] -[visit_exp `BR_ON_CAST_FAIL`_instr{labelidx#27, reftype#376}(l, rt_1, rt_2)] -[visit_exp labelidx#27] -[visit_id labelidx#27] -[visit_exp reftype#376] -[visit_id reftype#376] +[visit_exp `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)] [visit_exp (l, rt_1, rt_2)] [visit_exp l] [visit_id l] @@ -23673,15 +21738,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id rt_1] [visit_exp rt_2] [visit_id rt_2] -[visit_exp `%->_%%`_instrtype{resulttype#628, `localidx*#395`}(`%`_resulttype{`X*#3305`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype{`X*#3354`}(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))] -[visit_exp resulttype#628] -[visit_id resulttype#628] -[visit_exp `localidx*#395`] -[visit_id localidx*#395] -[visit_exp (`%`_resulttype{`X*#3305`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype{`X*#3354`}(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))] -[visit_exp `%`_resulttype{`X*#3305`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] -[visit_exp `X*#3305`] -[visit_id X*#3305] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))] +[visit_exp (`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] [visit_exp (t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] [visit_exp t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]] [visit_exp t*{t <- `t*`}] @@ -23698,9 +21757,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp rt_1] [visit_id rt_1] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#3354`}(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)])] -[visit_exp `X*#3354`] -[visit_id X*#3354] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)])] [visit_exp (t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)])] [visit_exp t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]] [visit_exp t*{t <- `t*`}] @@ -23716,22 +21773,16 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp (rt_2 : reftype <: valtype)] [visit_exp rt_2] [visit_id rt_2] not free -[visit_exp (C.`LABELS`_context{`resulttype*#16`}[l!`%`_labelidx{i#5590}.0] = `%`_resulttype{`X*#3375`}(t*{t <- `t*`} ++ [(rt : reftype <: valtype)]))] -[visit_exp C.`LABELS`_context{`resulttype*#16`}[l!`%`_labelidx{i#5590}.0]] -[visit_exp C.`LABELS`_context{`resulttype*#16`}] +[visit_exp (C.`LABELS`_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)]))] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] +[visit_exp C.`LABELS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype*#16`] -[visit_id resulttype*#16] -[visit_exp l!`%`_labelidx{i#5590}.0] -[visit_exp l!`%`_labelidx{i#5590}] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#5590] -[visit_id i#5590] -[visit_exp `%`_resulttype{`X*#3375`}(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] -[visit_exp `X*#3375`] -[visit_id X*#3375] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] [visit_exp (t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] [visit_exp t*{t <- `t*`} ++ [(rt : reftype <: valtype)]] [visit_exp t*{t <- `t*`}] @@ -23774,24 +21825,16 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id rt_2] not free [visit_exp rt] [visit_id rt] not free -[check_dims] C X*#3386 X*#3437 X*#3450 X*#3463 deftype*#28 funcidx#177 i#5614 localidx*#407 resulttype#648 resulttype#651 t_1 t_2 x +[check_dims] C t_1 t_2 x [visit_exp C] [visit_id C] -[visit_exp `CALL`_instr{funcidx#177}(x)] -[visit_exp funcidx#177] -[visit_id funcidx#177] +[visit_exp `CALL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#648, `localidx*#407`}(`%`_resulttype{`X*#3386`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3437`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#648] -[visit_id resulttype#648] -[visit_exp `localidx*#407`] -[visit_id localidx*#407] -[visit_exp (`%`_resulttype{`X*#3386`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3437`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#3386`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#3386`] -[visit_id X*#3386] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -23803,9 +21846,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] no dims [visit_id t_1*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#3437`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#3437`] -[visit_id X*#3437] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -23816,26 +21857,18 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C.`FUNCS`_context{`deftype*#28`}[x!`%`_idx{i#5614}.0], `FUNC%->%`_comptype{resulttype#651}(`%`_resulttype{`X*#3450`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3463`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`FUNCS`_context{`deftype*#28`}[x!`%`_idx{i#5614}.0]] -[visit_exp C.`FUNCS`_context{`deftype*#28`}] +[visit_exp (C.`FUNCS`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`FUNCS`_context[x!`%`_idx.0]] +[visit_exp C.`FUNCS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#28`] -[visit_id deftype*#28] -[visit_exp x!`%`_idx{i#5614}.0] -[visit_exp x!`%`_idx{i#5614}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#5614] -[visit_id i#5614] -[visit_exp `FUNC%->%`_comptype{resulttype#651}(`%`_resulttype{`X*#3450`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3463`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#651] -[visit_id resulttype#651] -[visit_exp (`%`_resulttype{`X*#3450`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3463`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#3450`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#3450`] -[visit_id X*#3450] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -23846,9 +21879,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `%`_resulttype{`X*#3463`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#3463`] -[visit_id X*#3463] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -23859,30 +21890,20 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#3486 X*#3535 X*#3548 X*#3561 deftype*#29 heaptype#665 i#5652 localidx*#419 null?#663 resulttype#671 resulttype#674 t_1 t_2 typeidx#394 typeidx#396 typeuse#23 x +[check_dims] C t_1 t_2 x [visit_exp C] [visit_id C] -[visit_exp `CALL_REF`_instr{typeuse#23}(`_IDX`_typeuse{typeidx#394}(x))] -[visit_exp typeuse#23] -[visit_id typeuse#23] -[visit_exp (`_IDX`_typeuse{typeidx#394}(x))] -[visit_exp `_IDX`_typeuse{typeidx#394}(x)] -[visit_exp typeidx#394] -[visit_id typeidx#394] +[visit_exp `CALL_REF`_instr(`_IDX`_typeuse(x))] +[visit_exp (`_IDX`_typeuse(x))] +[visit_exp `_IDX`_typeuse(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#671, `localidx*#419`}(`%`_resulttype{`X*#3486`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))]), [], `%`_resulttype{`X*#3535`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#671] -[visit_id resulttype#671] -[visit_exp `localidx*#419`] -[visit_id localidx*#419] -[visit_exp (`%`_resulttype{`X*#3486`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))]), [], `%`_resulttype{`X*#3535`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#3486`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))])] -[visit_exp `X*#3486`] -[visit_id X*#3486] -[visit_exp (t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))])] -[visit_exp t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))]] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))])] +[visit_exp (t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))])] +[visit_exp t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] [visit_exp t_1] @@ -23892,26 +21913,18 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))]] -[visit_exp `REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))] -[visit_exp `null?#663`] -[visit_id null?#663] -[visit_exp heaptype#665] -[visit_id heaptype#665] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))] +[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]] +[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] -[visit_exp `_IDX`_heaptype{typeidx#396}(x)] -[visit_exp typeidx#396] -[visit_id typeidx#396] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#3535`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#3535`] -[visit_id X*#3535] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -23922,26 +21935,18 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C.`TYPES`_context{`deftype*#29`}[x!`%`_idx{i#5652}.0], `FUNC%->%`_comptype{resulttype#674}(`%`_resulttype{`X*#3548`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3561`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`TYPES`_context{`deftype*#29`}[x!`%`_idx{i#5652}.0]] -[visit_exp C.`TYPES`_context{`deftype*#29`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#29`] -[visit_id deftype*#29] -[visit_exp x!`%`_idx{i#5652}.0] -[visit_exp x!`%`_idx{i#5652}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#5652] -[visit_id i#5652] -[visit_exp `FUNC%->%`_comptype{resulttype#674}(`%`_resulttype{`X*#3548`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3561`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#674] -[visit_id resulttype#674] -[visit_exp (`%`_resulttype{`X*#3548`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3561`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#3548`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#3548`] -[visit_id X*#3548] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -23952,9 +21957,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `%`_resulttype{`X*#3561`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#3561`] -[visit_id X*#3561] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -23965,32 +21968,20 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#3584 X*#3633 X*#3646 X*#3659 addrtype#441 at deftype*#30 heaptype#689 i#5690 i#5700 lim limits#441 localidx*#431 null?#687 reftype#389 resulttype#694 resulttype#697 rt t_1 t_2 tableidx#26 tabletype*#6 typeidx#398 typeuse#25 x y +[check_dims] C at lim rt t_1 t_2 x y [visit_exp C] [visit_id C] -[visit_exp `CALL_INDIRECT`_instr{tableidx#26, typeuse#25}(x, `_IDX`_typeuse{typeidx#398}(y))] -[visit_exp tableidx#26] -[visit_id tableidx#26] -[visit_exp typeuse#25] -[visit_id typeuse#25] -[visit_exp (x, `_IDX`_typeuse{typeidx#398}(y))] +[visit_exp `CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y))] +[visit_exp (x, `_IDX`_typeuse(y))] [visit_exp x] [visit_id x] -[visit_exp `_IDX`_typeuse{typeidx#398}(y)] -[visit_exp typeidx#398] -[visit_id typeidx#398] +[visit_exp `_IDX`_typeuse(y)] [visit_exp (y)] [visit_exp y] [visit_id y] -[visit_exp `%->_%%`_instrtype{resulttype#694, `localidx*#431`}(`%`_resulttype{`X*#3584`}(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#3633`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#694] -[visit_id resulttype#694] -[visit_exp `localidx*#431`] -[visit_id localidx*#431] -[visit_exp (`%`_resulttype{`X*#3584`}(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#3633`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#3584`}(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] -[visit_exp `X*#3584`] -[visit_id X*#3584] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] [visit_exp (t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] [visit_exp t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]] [visit_exp t_1*{t_1 <- `t_1*`}] @@ -24007,9 +21998,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp at] [visit_id at] [visit_exp []] -[visit_exp `%`_resulttype{`X*#3633`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#3633`] -[visit_id X*#3633] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -24020,26 +22009,16 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C.`TABLES`_context{`tabletype*#6`}[x!`%`_idx{i#5690}.0] = `%%%`_tabletype{addrtype#441, limits#441, reftype#389}(at, lim, rt))] -[visit_exp C.`TABLES`_context{`tabletype*#6`}[x!`%`_idx{i#5690}.0]] -[visit_exp C.`TABLES`_context{`tabletype*#6`}] +[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] +[visit_exp C.`TABLES`_context[x!`%`_idx.0]] +[visit_exp C.`TABLES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tabletype*#6`] -[visit_id tabletype*#6] -[visit_exp x!`%`_idx{i#5690}.0] -[visit_exp x!`%`_idx{i#5690}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#5690] -[visit_id i#5690] -[visit_exp `%%%`_tabletype{addrtype#441, limits#441, reftype#389}(at, lim, rt)] -[visit_exp addrtype#441] -[visit_id addrtype#441] -[visit_exp limits#441] -[visit_id limits#441] -[visit_exp reftype#389] -[visit_id reftype#389] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%%`_tabletype(at, lim, rt)] [visit_exp (at, lim, rt)] [visit_exp at] [visit_id at] not free @@ -24047,42 +22026,30 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id lim] [visit_exp rt] [visit_id rt] -[visit_exp (C, rt, `REF`_reftype{`null?#687`, heaptype#689}(?(`NULL`_null), `FUNC`_heaptype))] +[visit_exp (C, rt, `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype))] [visit_exp C] [visit_id C] not free [visit_exp rt] [visit_id rt] not free -[visit_exp `REF`_reftype{`null?#687`, heaptype#689}(?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp `null?#687`] -[visit_id null?#687] -[visit_exp heaptype#689] -[visit_id heaptype#689] +[visit_exp `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)] [visit_exp (?(`NULL`_null), `FUNC`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] [visit_exp `FUNC`_heaptype] [visit_exp ()] -[visit_exp (C.`TYPES`_context{`deftype*#30`}[y!`%`_idx{i#5700}.0], `FUNC%->%`_comptype{resulttype#697}(`%`_resulttype{`X*#3646`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3659`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`TYPES`_context{`deftype*#30`}[y!`%`_idx{i#5700}.0]] -[visit_exp C.`TYPES`_context{`deftype*#30`}] +[visit_exp (C.`TYPES`_context[y!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`TYPES`_context[y!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#30`] -[visit_id deftype*#30] -[visit_exp y!`%`_idx{i#5700}.0] -[visit_exp y!`%`_idx{i#5700}] +[visit_exp y!`%`_idx.0] +[visit_exp y!`%`_idx] [visit_exp y] [visit_id y] not free -[visit_exp i#5700] -[visit_id i#5700] -[visit_exp `FUNC%->%`_comptype{resulttype#697}(`%`_resulttype{`X*#3646`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3659`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#697] -[visit_id resulttype#697] -[visit_exp (`%`_resulttype{`X*#3646`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3659`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#3646`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#3646`] -[visit_id X*#3646] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -24093,9 +22060,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `%`_resulttype{`X*#3659`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#3659`] -[visit_id X*#3659] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -24106,20 +22071,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#3682 X*#3731 X*#3766 X*#3779 X*#3830 localidx*#443 localidx*#455 resulttype#717 resulttype#737 resulttype?#8 t t_1 t_2 +[check_dims] C t t_1 t_2 [visit_exp C] [visit_id C] [visit_exp `RETURN`_instr] [visit_exp ()] -[visit_exp `%->_%%`_instrtype{resulttype#717, `localidx*#443`}(`%`_resulttype{`X*#3682`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#3731`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#717] -[visit_id resulttype#717] -[visit_exp `localidx*#443`] -[visit_id localidx*#443] -[visit_exp (`%`_resulttype{`X*#3682`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#3731`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#3682`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] -[visit_exp `X*#3682`] -[visit_id X*#3682] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] [visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] [visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}] [visit_exp t_1*{t_1 <- `t_1*`}] @@ -24141,9 +22100,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t*] no dims [visit_id t*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#3731`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#3731`] -[visit_id X*#3731] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -24154,16 +22111,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C.`RETURN`_context{`resulttype?#8`} = ?(`%`_resulttype{`X*#3766`}(t*{t <- `t*`})))] -[visit_exp C.`RETURN`_context{`resulttype?#8`}] +[visit_exp (C.`RETURN`_context = ?(`%`_resulttype(t*{t <- `t*`})))] +[visit_exp C.`RETURN`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype?#8`] -[visit_id resulttype?#8] -[visit_exp ?(`%`_resulttype{`X*#3766`}(t*{t <- `t*`}))] -[visit_exp `%`_resulttype{`X*#3766`}(t*{t <- `t*`})] -[visit_exp `X*#3766`] -[visit_id X*#3766] +[visit_exp ?(`%`_resulttype(t*{t <- `t*`}))] +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -24174,18 +22127,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[visit_exp (C, `%->_%%`_instrtype{resulttype#737, `localidx*#455`}(`%`_resulttype{`X*#3779`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3830`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp C] [visit_id C] not free -[visit_exp `%->_%%`_instrtype{resulttype#737, `localidx*#455`}(`%`_resulttype{`X*#3779`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3830`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#737] -[visit_id resulttype#737] -[visit_exp `localidx*#455`] -[visit_id localidx*#455] -[visit_exp (`%`_resulttype{`X*#3779`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3830`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#3779`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#3779`] -[visit_id X*#3779] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -24197,9 +22144,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] not free [visit_id t_1*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#3830`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#3830`] -[visit_id X*#3830] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -24210,24 +22155,16 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#3851 X*#3900 X*#3913 X*#3926 X*#3963 X*#3976 X*#3989 X*#4002 X*#4053 deftype*#31 funcidx#179 i#5724 localidx*#467 localidx*#479 resulttype#757 resulttype#760 resulttype#780 resulttype?#11 t'_2 t_1 t_2 t_3 t_4 x +[check_dims] C t'_2 t_1 t_2 t_3 t_4 x [visit_exp C] [visit_id C] -[visit_exp `RETURN_CALL`_instr{funcidx#179}(x)] -[visit_exp funcidx#179] -[visit_id funcidx#179] +[visit_exp `RETURN_CALL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#757, `localidx*#467`}(`%`_resulttype{`X*#3851`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3900`}(t_4*{t_4 <- `t_4*`}))] -[visit_exp resulttype#757] -[visit_id resulttype#757] -[visit_exp `localidx*#467`] -[visit_id localidx*#467] -[visit_exp (`%`_resulttype{`X*#3851`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3900`}(t_4*{t_4 <- `t_4*`}))] -[visit_exp `%`_resulttype{`X*#3851`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#3851`] -[visit_id X*#3851] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] +[visit_exp (`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] +[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`})] [visit_exp (t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`})] [visit_exp t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}] [visit_exp t_3*{t_3 <- `t_3*`}] @@ -24249,9 +22186,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] no dims [visit_id t_1*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#3900`}(t_4*{t_4 <- `t_4*`})] -[visit_exp `X*#3900`] -[visit_id X*#3900] +[visit_exp `%`_resulttype(t_4*{t_4 <- `t_4*`})] [visit_exp (t_4*{t_4 <- `t_4*`})] [visit_exp t_4*{t_4 <- `t_4*`}] [scope_enter t_4] @@ -24262,26 +22197,18 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_4*`] [visit_id t_4*] no dims [visit_id t_4*] -[visit_exp (C.`FUNCS`_context{`deftype*#31`}[x!`%`_idx{i#5724}.0], `FUNC%->%`_comptype{resulttype#760}(`%`_resulttype{`X*#3913`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3926`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`FUNCS`_context{`deftype*#31`}[x!`%`_idx{i#5724}.0]] -[visit_exp C.`FUNCS`_context{`deftype*#31`}] +[visit_exp (C.`FUNCS`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`FUNCS`_context[x!`%`_idx.0]] +[visit_exp C.`FUNCS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#31`] -[visit_id deftype*#31] -[visit_exp x!`%`_idx{i#5724}.0] -[visit_exp x!`%`_idx{i#5724}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#5724] -[visit_id i#5724] -[visit_exp `FUNC%->%`_comptype{resulttype#760}(`%`_resulttype{`X*#3913`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3926`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#760] -[visit_id resulttype#760] -[visit_exp (`%`_resulttype{`X*#3913`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3926`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#3913`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#3913`] -[visit_id X*#3913] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -24292,9 +22219,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `%`_resulttype{`X*#3926`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#3926`] -[visit_id X*#3926] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -24305,16 +22230,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C.`RETURN`_context{`resulttype?#11`} = ?(`%`_resulttype{`X*#3963`}(t'_2*{t'_2 <- `t'_2*`})))] -[visit_exp C.`RETURN`_context{`resulttype?#11`}] +[visit_exp (C.`RETURN`_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`})))] +[visit_exp C.`RETURN`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype?#11`] -[visit_id resulttype?#11] -[visit_exp ?(`%`_resulttype{`X*#3963`}(t'_2*{t'_2 <- `t'_2*`}))] -[visit_exp `%`_resulttype{`X*#3963`}(t'_2*{t'_2 <- `t'_2*`})] -[visit_exp `X*#3963`] -[visit_id X*#3963] +[visit_exp ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))] +[visit_exp `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})] [visit_exp (t'_2*{t'_2 <- `t'_2*`})] [visit_exp t'_2*{t'_2 <- `t'_2*`}] [scope_enter t'_2] @@ -24325,12 +22246,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t'_2*`] [visit_id t'_2*] no dims [visit_id t'_2*] -[visit_exp (C, `%`_resulttype{`X*#3976`}(t_2*{t_2 <- `t_2*`}), `%`_resulttype{`X*#3989`}(t'_2*{t'_2 <- `t'_2*`}))] +[visit_exp (C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#3976`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#3976`] -[visit_id X*#3976] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -24341,9 +22260,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp `%`_resulttype{`X*#3989`}(t'_2*{t'_2 <- `t'_2*`})] -[visit_exp `X*#3989`] -[visit_id X*#3989] +[visit_exp `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})] [visit_exp (t'_2*{t'_2 <- `t'_2*`})] [visit_exp t'_2*{t'_2 <- `t'_2*`}] [scope_enter t'_2] @@ -24354,18 +22271,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t'_2*`] [visit_id t'_2*] not free [visit_id t'_2*] no dims -[visit_exp (C, `%->_%%`_instrtype{resulttype#780, `localidx*#479`}(`%`_resulttype{`X*#4002`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4053`}(t_4*{t_4 <- `t_4*`})))] +[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`})))] [visit_exp C] [visit_id C] not free -[visit_exp `%->_%%`_instrtype{resulttype#780, `localidx*#479`}(`%`_resulttype{`X*#4002`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4053`}(t_4*{t_4 <- `t_4*`}))] -[visit_exp resulttype#780] -[visit_id resulttype#780] -[visit_exp `localidx*#479`] -[visit_id localidx*#479] -[visit_exp (`%`_resulttype{`X*#4002`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4053`}(t_4*{t_4 <- `t_4*`}))] -[visit_exp `%`_resulttype{`X*#4002`}(t_3*{t_3 <- `t_3*`})] -[visit_exp `X*#4002`] -[visit_id X*#4002] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] +[visit_exp (`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] +[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`})] [visit_exp (t_3*{t_3 <- `t_3*`})] [visit_exp t_3*{t_3 <- `t_3*`}] [scope_enter t_3] @@ -24377,9 +22288,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_3*] not free [visit_id t_3*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#4053`}(t_4*{t_4 <- `t_4*`})] -[visit_exp `X*#4053`] -[visit_id X*#4053] +[visit_exp `%`_resulttype(t_4*{t_4 <- `t_4*`})] [visit_exp (t_4*{t_4 <- `t_4*`})] [visit_exp t_4*{t_4 <- `t_4*`}] [scope_enter t_4] @@ -24390,30 +22299,20 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_4*`] [visit_id t_4*] not free [visit_id t_4*] no dims -[check_dims] C X*#4074 X*#4123 X*#4136 X*#4149 X*#4186 X*#4199 X*#4212 X*#4225 X*#4276 deftype*#32 heaptype#691 i#5762 localidx*#491 localidx*#503 null?#689 resulttype#800 resulttype#803 resulttype#823 resulttype?#14 t'_2 t_1 t_2 t_3 t_4 typeidx#400 typeidx#402 typeuse#27 x +[check_dims] C t'_2 t_1 t_2 t_3 t_4 x [visit_exp C] [visit_id C] -[visit_exp `RETURN_CALL_REF`_instr{typeuse#27}(`_IDX`_typeuse{typeidx#400}(x))] -[visit_exp typeuse#27] -[visit_id typeuse#27] -[visit_exp (`_IDX`_typeuse{typeidx#400}(x))] -[visit_exp `_IDX`_typeuse{typeidx#400}(x)] -[visit_exp typeidx#400] -[visit_id typeidx#400] +[visit_exp `RETURN_CALL_REF`_instr(`_IDX`_typeuse(x))] +[visit_exp (`_IDX`_typeuse(x))] +[visit_exp `_IDX`_typeuse(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#800, `localidx*#491`}(`%`_resulttype{`X*#4074`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))]), [], `%`_resulttype{`X*#4123`}(t_4*{t_4 <- `t_4*`}))] -[visit_exp resulttype#800] -[visit_id resulttype#800] -[visit_exp `localidx*#491`] -[visit_id localidx*#491] -[visit_exp (`%`_resulttype{`X*#4074`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))]), [], `%`_resulttype{`X*#4123`}(t_4*{t_4 <- `t_4*`}))] -[visit_exp `%`_resulttype{`X*#4074`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))])] -[visit_exp `X*#4074`] -[visit_id X*#4074] -[visit_exp (t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))])] -[visit_exp t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))]] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] +[visit_exp (`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] +[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))])] +[visit_exp (t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))])] +[visit_exp t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]] [visit_exp t_3*{t_3 <- `t_3*`}] [scope_enter t_3] [visit_exp t_3] @@ -24423,7 +22322,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_3*`] [visit_id t_3*] no dims [visit_id t_3*] -[visit_exp t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))]] +[visit_exp t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] [visit_exp t_1] @@ -24433,26 +22332,18 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))]] -[visit_exp `REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))] -[visit_exp `null?#689`] -[visit_id null?#689] -[visit_exp heaptype#691] -[visit_id heaptype#691] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))] +[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]] +[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] -[visit_exp `_IDX`_heaptype{typeidx#402}(x)] -[visit_exp typeidx#402] -[visit_id typeidx#402] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#4123`}(t_4*{t_4 <- `t_4*`})] -[visit_exp `X*#4123`] -[visit_id X*#4123] +[visit_exp `%`_resulttype(t_4*{t_4 <- `t_4*`})] [visit_exp (t_4*{t_4 <- `t_4*`})] [visit_exp t_4*{t_4 <- `t_4*`}] [scope_enter t_4] @@ -24463,26 +22354,18 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_4*`] [visit_id t_4*] no dims [visit_id t_4*] -[visit_exp (C.`TYPES`_context{`deftype*#32`}[x!`%`_idx{i#5762}.0], `FUNC%->%`_comptype{resulttype#803}(`%`_resulttype{`X*#4136`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4149`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`TYPES`_context{`deftype*#32`}[x!`%`_idx{i#5762}.0]] -[visit_exp C.`TYPES`_context{`deftype*#32`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#32`] -[visit_id deftype*#32] -[visit_exp x!`%`_idx{i#5762}.0] -[visit_exp x!`%`_idx{i#5762}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#5762] -[visit_id i#5762] -[visit_exp `FUNC%->%`_comptype{resulttype#803}(`%`_resulttype{`X*#4136`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4149`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#803] -[visit_id resulttype#803] -[visit_exp (`%`_resulttype{`X*#4136`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4149`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#4136`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#4136`] -[visit_id X*#4136] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -24493,9 +22376,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `%`_resulttype{`X*#4149`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#4149`] -[visit_id X*#4149] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -24506,16 +22387,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C.`RETURN`_context{`resulttype?#14`} = ?(`%`_resulttype{`X*#4186`}(t'_2*{t'_2 <- `t'_2*`})))] -[visit_exp C.`RETURN`_context{`resulttype?#14`}] +[visit_exp (C.`RETURN`_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`})))] +[visit_exp C.`RETURN`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype?#14`] -[visit_id resulttype?#14] -[visit_exp ?(`%`_resulttype{`X*#4186`}(t'_2*{t'_2 <- `t'_2*`}))] -[visit_exp `%`_resulttype{`X*#4186`}(t'_2*{t'_2 <- `t'_2*`})] -[visit_exp `X*#4186`] -[visit_id X*#4186] +[visit_exp ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))] +[visit_exp `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})] [visit_exp (t'_2*{t'_2 <- `t'_2*`})] [visit_exp t'_2*{t'_2 <- `t'_2*`}] [scope_enter t'_2] @@ -24526,12 +22403,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t'_2*`] [visit_id t'_2*] no dims [visit_id t'_2*] -[visit_exp (C, `%`_resulttype{`X*#4199`}(t_2*{t_2 <- `t_2*`}), `%`_resulttype{`X*#4212`}(t'_2*{t'_2 <- `t'_2*`}))] +[visit_exp (C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#4199`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#4199`] -[visit_id X*#4199] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -24542,9 +22417,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp `%`_resulttype{`X*#4212`}(t'_2*{t'_2 <- `t'_2*`})] -[visit_exp `X*#4212`] -[visit_id X*#4212] +[visit_exp `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})] [visit_exp (t'_2*{t'_2 <- `t'_2*`})] [visit_exp t'_2*{t'_2 <- `t'_2*`}] [scope_enter t'_2] @@ -24555,18 +22428,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t'_2*`] [visit_id t'_2*] not free [visit_id t'_2*] no dims -[visit_exp (C, `%->_%%`_instrtype{resulttype#823, `localidx*#503`}(`%`_resulttype{`X*#4225`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4276`}(t_4*{t_4 <- `t_4*`})))] +[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`})))] [visit_exp C] [visit_id C] not free -[visit_exp `%->_%%`_instrtype{resulttype#823, `localidx*#503`}(`%`_resulttype{`X*#4225`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4276`}(t_4*{t_4 <- `t_4*`}))] -[visit_exp resulttype#823] -[visit_id resulttype#823] -[visit_exp `localidx*#503`] -[visit_id localidx*#503] -[visit_exp (`%`_resulttype{`X*#4225`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4276`}(t_4*{t_4 <- `t_4*`}))] -[visit_exp `%`_resulttype{`X*#4225`}(t_3*{t_3 <- `t_3*`})] -[visit_exp `X*#4225`] -[visit_id X*#4225] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] +[visit_exp (`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] +[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`})] [visit_exp (t_3*{t_3 <- `t_3*`})] [visit_exp t_3*{t_3 <- `t_3*`}] [scope_enter t_3] @@ -24578,9 +22445,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_3*] not free [visit_id t_3*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#4276`}(t_4*{t_4 <- `t_4*`})] -[visit_exp `X*#4276`] -[visit_id X*#4276] +[visit_exp `%`_resulttype(t_4*{t_4 <- `t_4*`})] [visit_exp (t_4*{t_4 <- `t_4*`})] [visit_exp t_4*{t_4 <- `t_4*`}] [scope_enter t_4] @@ -24591,32 +22456,20 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_4*`] [visit_id t_4*] not free [visit_id t_4*] no dims -[check_dims] C X*#4297 X*#4346 X*#4359 X*#4372 X*#4409 X*#4422 X*#4435 X*#4448 X*#4499 addrtype#453 at deftype*#33 heaptype#715 i#5800 i#5810 lim limits#453 localidx*#515 localidx*#527 null?#713 reftype#401 resulttype#843 resulttype#846 resulttype#866 resulttype?#17 rt t'_2 t_1 t_2 t_3 t_4 tableidx#28 tabletype*#7 typeidx#404 typeuse#29 x y +[check_dims] C at lim rt t'_2 t_1 t_2 t_3 t_4 x y [visit_exp C] [visit_id C] -[visit_exp `RETURN_CALL_INDIRECT`_instr{tableidx#28, typeuse#29}(x, `_IDX`_typeuse{typeidx#404}(y))] -[visit_exp tableidx#28] -[visit_id tableidx#28] -[visit_exp typeuse#29] -[visit_id typeuse#29] -[visit_exp (x, `_IDX`_typeuse{typeidx#404}(y))] +[visit_exp `RETURN_CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y))] +[visit_exp (x, `_IDX`_typeuse(y))] [visit_exp x] [visit_id x] -[visit_exp `_IDX`_typeuse{typeidx#404}(y)] -[visit_exp typeidx#404] -[visit_id typeidx#404] +[visit_exp `_IDX`_typeuse(y)] [visit_exp (y)] [visit_exp y] [visit_id y] -[visit_exp `%->_%%`_instrtype{resulttype#843, `localidx*#515`}(`%`_resulttype{`X*#4297`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#4346`}(t_4*{t_4 <- `t_4*`}))] -[visit_exp resulttype#843] -[visit_id resulttype#843] -[visit_exp `localidx*#515`] -[visit_id localidx*#515] -[visit_exp (`%`_resulttype{`X*#4297`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#4346`}(t_4*{t_4 <- `t_4*`}))] -[visit_exp `%`_resulttype{`X*#4297`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] -[visit_exp `X*#4297`] -[visit_id X*#4297] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] +[visit_exp (`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] +[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] [visit_exp (t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] [visit_exp t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]] [visit_exp t_3*{t_3 <- `t_3*`}] @@ -24643,9 +22496,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp at] [visit_id at] [visit_exp []] -[visit_exp `%`_resulttype{`X*#4346`}(t_4*{t_4 <- `t_4*`})] -[visit_exp `X*#4346`] -[visit_id X*#4346] +[visit_exp `%`_resulttype(t_4*{t_4 <- `t_4*`})] [visit_exp (t_4*{t_4 <- `t_4*`})] [visit_exp t_4*{t_4 <- `t_4*`}] [scope_enter t_4] @@ -24656,26 +22507,16 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_4*`] [visit_id t_4*] no dims [visit_id t_4*] -[visit_exp (C.`TABLES`_context{`tabletype*#7`}[x!`%`_idx{i#5800}.0] = `%%%`_tabletype{addrtype#453, limits#453, reftype#401}(at, lim, rt))] -[visit_exp C.`TABLES`_context{`tabletype*#7`}[x!`%`_idx{i#5800}.0]] -[visit_exp C.`TABLES`_context{`tabletype*#7`}] +[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] +[visit_exp C.`TABLES`_context[x!`%`_idx.0]] +[visit_exp C.`TABLES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tabletype*#7`] -[visit_id tabletype*#7] -[visit_exp x!`%`_idx{i#5800}.0] -[visit_exp x!`%`_idx{i#5800}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#5800] -[visit_id i#5800] -[visit_exp `%%%`_tabletype{addrtype#453, limits#453, reftype#401}(at, lim, rt)] -[visit_exp addrtype#453] -[visit_id addrtype#453] -[visit_exp limits#453] -[visit_id limits#453] -[visit_exp reftype#401] -[visit_id reftype#401] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%%`_tabletype(at, lim, rt)] [visit_exp (at, lim, rt)] [visit_exp at] [visit_id at] not free @@ -24683,42 +22524,30 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id lim] [visit_exp rt] [visit_id rt] -[visit_exp (C, rt, `REF`_reftype{`null?#713`, heaptype#715}(?(`NULL`_null), `FUNC`_heaptype))] +[visit_exp (C, rt, `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype))] [visit_exp C] [visit_id C] not free [visit_exp rt] [visit_id rt] not free -[visit_exp `REF`_reftype{`null?#713`, heaptype#715}(?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp `null?#713`] -[visit_id null?#713] -[visit_exp heaptype#715] -[visit_id heaptype#715] +[visit_exp `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)] [visit_exp (?(`NULL`_null), `FUNC`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] [visit_exp `FUNC`_heaptype] [visit_exp ()] -[visit_exp (C.`TYPES`_context{`deftype*#33`}[y!`%`_idx{i#5810}.0], `FUNC%->%`_comptype{resulttype#846}(`%`_resulttype{`X*#4359`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4372`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`TYPES`_context{`deftype*#33`}[y!`%`_idx{i#5810}.0]] -[visit_exp C.`TYPES`_context{`deftype*#33`}] +[visit_exp (C.`TYPES`_context[y!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`TYPES`_context[y!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#33`] -[visit_id deftype*#33] -[visit_exp y!`%`_idx{i#5810}.0] -[visit_exp y!`%`_idx{i#5810}] +[visit_exp y!`%`_idx.0] +[visit_exp y!`%`_idx] [visit_exp y] [visit_id y] not free -[visit_exp i#5810] -[visit_id i#5810] -[visit_exp `FUNC%->%`_comptype{resulttype#846}(`%`_resulttype{`X*#4359`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4372`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#846] -[visit_id resulttype#846] -[visit_exp (`%`_resulttype{`X*#4359`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4372`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#4359`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#4359`] -[visit_id X*#4359] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -24729,9 +22558,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `%`_resulttype{`X*#4372`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#4372`] -[visit_id X*#4372] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -24742,16 +22569,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C.`RETURN`_context{`resulttype?#17`} = ?(`%`_resulttype{`X*#4409`}(t'_2*{t'_2 <- `t'_2*`})))] -[visit_exp C.`RETURN`_context{`resulttype?#17`}] +[visit_exp (C.`RETURN`_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`})))] +[visit_exp C.`RETURN`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype?#17`] -[visit_id resulttype?#17] -[visit_exp ?(`%`_resulttype{`X*#4409`}(t'_2*{t'_2 <- `t'_2*`}))] -[visit_exp `%`_resulttype{`X*#4409`}(t'_2*{t'_2 <- `t'_2*`})] -[visit_exp `X*#4409`] -[visit_id X*#4409] +[visit_exp ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))] +[visit_exp `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})] [visit_exp (t'_2*{t'_2 <- `t'_2*`})] [visit_exp t'_2*{t'_2 <- `t'_2*`}] [scope_enter t'_2] @@ -24762,12 +22585,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t'_2*`] [visit_id t'_2*] no dims [visit_id t'_2*] -[visit_exp (C, `%`_resulttype{`X*#4422`}(t_2*{t_2 <- `t_2*`}), `%`_resulttype{`X*#4435`}(t'_2*{t'_2 <- `t'_2*`}))] +[visit_exp (C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#4422`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#4422`] -[visit_id X*#4422] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -24778,9 +22599,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp `%`_resulttype{`X*#4435`}(t'_2*{t'_2 <- `t'_2*`})] -[visit_exp `X*#4435`] -[visit_id X*#4435] +[visit_exp `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})] [visit_exp (t'_2*{t'_2 <- `t'_2*`})] [visit_exp t'_2*{t'_2 <- `t'_2*`}] [scope_enter t'_2] @@ -24791,18 +22610,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t'_2*`] [visit_id t'_2*] not free [visit_id t'_2*] no dims -[visit_exp (C, `%->_%%`_instrtype{resulttype#866, `localidx*#527`}(`%`_resulttype{`X*#4448`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4499`}(t_4*{t_4 <- `t_4*`})))] +[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`})))] [visit_exp C] [visit_id C] not free -[visit_exp `%->_%%`_instrtype{resulttype#866, `localidx*#527`}(`%`_resulttype{`X*#4448`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4499`}(t_4*{t_4 <- `t_4*`}))] -[visit_exp resulttype#866] -[visit_id resulttype#866] -[visit_exp `localidx*#527`] -[visit_id localidx*#527] -[visit_exp (`%`_resulttype{`X*#4448`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4499`}(t_4*{t_4 <- `t_4*`}))] -[visit_exp `%`_resulttype{`X*#4448`}(t_3*{t_3 <- `t_3*`})] -[visit_exp `X*#4448`] -[visit_id X*#4448] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] +[visit_exp (`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] +[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`})] [visit_exp (t_3*{t_3 <- `t_3*`})] [visit_exp t_3*{t_3 <- `t_3*`}] [scope_enter t_3] @@ -24814,9 +22627,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_3*] not free [visit_id t_3*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#4499`}(t_4*{t_4 <- `t_4*`})] -[visit_exp `X*#4499`] -[visit_id X*#4499] +[visit_exp `%`_resulttype(t_4*{t_4 <- `t_4*`})] [visit_exp (t_4*{t_4 <- `t_4*`})] [visit_exp t_4*{t_4 <- `t_4*`}] [scope_enter t_4] @@ -24828,24 +22639,16 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_4*] not free [visit_id t_4*] no dims [check_dims] -[check_dims] C X*#4520 X*#4569 X*#4582 X*#4605 X*#4616 X*#4667 i#5834 localidx*#539 localidx*#551 resulttype#886 resulttype#889 resulttype#909 t t_1 t_2 tagidx#3 tagtype*#6 x +[check_dims] C t t_1 t_2 x [visit_exp C] [visit_id C] -[visit_exp `THROW`_instr{tagidx#3}(x)] -[visit_exp tagidx#3] -[visit_id tagidx#3] +[visit_exp `THROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#886, `localidx*#539`}(`%`_resulttype{`X*#4520`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#4569`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#886] -[visit_id resulttype#886] -[visit_exp `localidx*#539`] -[visit_id localidx*#539] -[visit_exp (`%`_resulttype{`X*#4520`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#4569`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#4520`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] -[visit_exp `X*#4520`] -[visit_id X*#4520] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] [visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] [visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}] [visit_exp t_1*{t_1 <- `t_1*`}] @@ -24867,9 +22670,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t*] no dims [visit_id t*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#4569`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#4569`] -[visit_id X*#4569] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -24880,27 +22681,19 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp ($as_deftype(C.`TAGS`_context{`tagtype*#6`}[x!`%`_idx{i#5834}.0]), `FUNC%->%`_comptype{resulttype#889}(`%`_resulttype{`X*#4582`}(t*{t <- `t*`}), `%`_resulttype{`X*#4605`}([])))] -[visit_exp $as_deftype(C.`TAGS`_context{`tagtype*#6`}[x!`%`_idx{i#5834}.0])] -[visit_exp C.`TAGS`_context{`tagtype*#6`}[x!`%`_idx{i#5834}.0]] -[visit_exp C.`TAGS`_context{`tagtype*#6`}] +[visit_exp ($as_deftype(C.`TAGS`_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([])))] +[visit_exp $as_deftype(C.`TAGS`_context[x!`%`_idx.0])] +[visit_exp C.`TAGS`_context[x!`%`_idx.0]] +[visit_exp C.`TAGS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tagtype*#6`] -[visit_id tagtype*#6] -[visit_exp x!`%`_idx{i#5834}.0] -[visit_exp x!`%`_idx{i#5834}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#5834] -[visit_id i#5834] -[visit_exp `FUNC%->%`_comptype{resulttype#889}(`%`_resulttype{`X*#4582`}(t*{t <- `t*`}), `%`_resulttype{`X*#4605`}([]))] -[visit_exp resulttype#889] -[visit_id resulttype#889] -[visit_exp (`%`_resulttype{`X*#4582`}(t*{t <- `t*`}), `%`_resulttype{`X*#4605`}([]))] -[visit_exp `%`_resulttype{`X*#4582`}(t*{t <- `t*`})] -[visit_exp `X*#4582`] -[visit_id X*#4582] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))] +[visit_exp (`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))] +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -24911,23 +22704,15 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[visit_exp `%`_resulttype{`X*#4605`}([])] -[visit_exp `X*#4605`] -[visit_id X*#4605] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C, `%->_%%`_instrtype{resulttype#909, `localidx*#551`}(`%`_resulttype{`X*#4616`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4667`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp C] [visit_id C] not free -[visit_exp `%->_%%`_instrtype{resulttype#909, `localidx*#551`}(`%`_resulttype{`X*#4616`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4667`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#909] -[visit_id resulttype#909] -[visit_exp `localidx*#551`] -[visit_id localidx*#551] -[visit_exp (`%`_resulttype{`X*#4616`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4667`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#4616`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#4616`] -[visit_id X*#4616] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -24939,9 +22724,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] not free [visit_id t_1*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#4667`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#4667`] -[visit_id X*#4667] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -24952,22 +22735,16 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#4688 X*#4737 X*#4748 X*#4799 heaptype#717 localidx*#563 localidx*#575 null?#715 resulttype#929 resulttype#949 t_1 t_2 +[check_dims] C t_1 t_2 [visit_exp C] [visit_id C] [visit_exp `THROW_REF`_instr] [visit_exp ()] -[visit_exp `%->_%%`_instrtype{resulttype#929, `localidx*#563`}(`%`_resulttype{`X*#4688`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)]), [], `%`_resulttype{`X*#4737`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#929] -[visit_id resulttype#929] -[visit_exp `localidx*#563`] -[visit_id localidx*#563] -[visit_exp (`%`_resulttype{`X*#4688`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)]), [], `%`_resulttype{`X*#4737`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#4688`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)])] -[visit_exp `X*#4688`] -[visit_id X*#4688] -[visit_exp (t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)])] -[visit_exp t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)]] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)])] +[visit_exp (t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)])] +[visit_exp t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)]] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] [visit_exp t_1] @@ -24977,12 +22754,8 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)]] -[visit_exp `REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)] -[visit_exp `null?#715`] -[visit_id null?#715] -[visit_exp heaptype#717] -[visit_id heaptype#717] +[visit_exp [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)]] +[visit_exp `REF`_valtype(?(`NULL`_null), `EXN`_heaptype)] [visit_exp (?(`NULL`_null), `EXN`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -24990,9 +22763,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `EXN`_heaptype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#4737`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#4737`] -[visit_id X*#4737] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -25003,18 +22774,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C, `%->_%%`_instrtype{resulttype#949, `localidx*#575`}(`%`_resulttype{`X*#4748`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4799`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp C] [visit_id C] not free -[visit_exp `%->_%%`_instrtype{resulttype#949, `localidx*#575`}(`%`_resulttype{`X*#4748`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4799`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#949] -[visit_id resulttype#949] -[visit_exp `localidx*#575`] -[visit_id localidx*#575] -[visit_exp (`%`_resulttype{`X*#4748`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4799`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#4748`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#4748`] -[visit_id X*#4748] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -25026,9 +22791,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] not free [visit_id t_1*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#4799`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#4799`] -[visit_id X*#4799] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -25039,20 +22802,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C X*#4812 X*#4825 X*#4876 X*#4887 X*#4938 X*#4949 X*#4962 X*#5014 blocktype#13 bt catch datatype*#6 deftype*#34 deftype*#35 elemtype*#6 funcidx*#44 globaltype*#6 instr instr*#15 localidx*#587 localidx*#599 localidx*#611 localtype*#9 memtype*#6 resulttype#1009 resulttype#969 resulttype#989 resulttype*#17 resulttype?#18 subtype*#9 t_1 t_2 tabletype*#8 tagtype*#7 x +[check_dims] C bt catch instr t_1 t_2 x [visit_exp C] [visit_id C] -[visit_exp `TRY_TABLE`_instr{blocktype#13, `instr*#15`}(bt, `%`_list{`X*#4812`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] -[visit_exp blocktype#13] -[visit_id blocktype#13] -[visit_exp `instr*#15`] -[visit_id instr*#15] -[visit_exp (bt, `%`_list{`X*#4812`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] +[visit_exp `TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] +[visit_exp (bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] [visit_exp bt] [visit_id bt] -[visit_exp `%`_list{`X*#4812`}(catch*{catch <- `catch*`})] -[visit_exp `X*#4812`] -[visit_id X*#4812] +[visit_exp `%`_list(catch*{catch <- `catch*`})] [visit_exp (catch*{catch <- `catch*`})] [visit_exp catch*{catch <- `catch*`}] [scope_enter catch] @@ -25072,15 +22829,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp `%->_%%`_instrtype{resulttype#969, `localidx*#587`}(`%`_resulttype{`X*#4825`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4876`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#969] -[visit_id resulttype#969] -[visit_exp `localidx*#587`] -[visit_id localidx*#587] -[visit_exp (`%`_resulttype{`X*#4825`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4876`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#4825`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#4825`] -[visit_id X*#4825] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -25092,9 +22843,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] no dims [visit_id t_1*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#4876`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#4876`] -[visit_id X*#4876] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -25105,20 +22854,14 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C, bt, `%->_%%`_instrtype{resulttype#989, `localidx*#599`}(`%`_resulttype{`X*#4887`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4938`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp C] [visit_id C] not free [visit_exp bt] [visit_id bt] not free -[visit_exp `%->_%%`_instrtype{resulttype#989, `localidx*#599`}(`%`_resulttype{`X*#4887`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4938`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#989] -[visit_id resulttype#989] -[visit_exp `localidx*#599`] -[visit_id localidx*#599] -[visit_exp (`%`_resulttype{`X*#4887`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4938`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#4887`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#4887`] -[visit_id X*#4887] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -25130,9 +22873,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id t_1*] not free [visit_id t_1*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#4938`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#4938`] -[visit_id X*#4938] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -25143,45 +22884,21 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp ({`TYPES`{`deftype*#34`} [], `RECS`{`subtype*#9`} [], `TAGS`{`tagtype*#7`} [], `GLOBALS`{`globaltype*#6`} [], `MEMS`{`memtype*#6`} [], `TABLES`{`tabletype*#8`} [], `FUNCS`{`deftype*#35`} [], `DATAS`{`datatype*#6`} [], `ELEMS`{`elemtype*#6`} [], `LOCALS`{`localtype*#9`} [], `LABELS`{`resulttype*#17`} [`%`_resulttype{`X*#4949`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#18`} ?(), `REFS`{`funcidx*#44`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#1009, `localidx*#611`}(`%`_resulttype{`X*#4962`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#5014`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp {`TYPES`{`deftype*#34`} [], `RECS`{`subtype*#9`} [], `TAGS`{`tagtype*#7`} [], `GLOBALS`{`globaltype*#6`} [], `MEMS`{`memtype*#6`} [], `TABLES`{`tabletype*#8`} [], `FUNCS`{`deftype*#35`} [], `DATAS`{`datatype*#6`} [], `ELEMS`{`elemtype*#6`} [], `LOCALS`{`localtype*#9`} [], `LABELS`{`resulttype*#17`} [`%`_resulttype{`X*#4949`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#18`} ?(), `REFS`{`funcidx*#44`} []} +++ C] -[visit_exp {`TYPES`{`deftype*#34`} [], `RECS`{`subtype*#9`} [], `TAGS`{`tagtype*#7`} [], `GLOBALS`{`globaltype*#6`} [], `MEMS`{`memtype*#6`} [], `TABLES`{`tabletype*#8`} [], `FUNCS`{`deftype*#35`} [], `DATAS`{`datatype*#6`} [], `ELEMS`{`elemtype*#6`} [], `LOCALS`{`localtype*#9`} [], `LABELS`{`resulttype*#17`} [`%`_resulttype{`X*#4949`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#18`} ?(), `REFS`{`funcidx*#44`} []}] -[visit_exp `deftype*#34`] -[visit_id deftype*#34] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#9`] -[visit_id subtype*#9] [visit_exp []] -[visit_exp `tagtype*#7`] -[visit_id tagtype*#7] [visit_exp []] -[visit_exp `globaltype*#6`] -[visit_id globaltype*#6] [visit_exp []] -[visit_exp `memtype*#6`] -[visit_id memtype*#6] [visit_exp []] -[visit_exp `tabletype*#8`] -[visit_id tabletype*#8] [visit_exp []] -[visit_exp `deftype*#35`] -[visit_id deftype*#35] [visit_exp []] -[visit_exp `datatype*#6`] -[visit_id datatype*#6] [visit_exp []] -[visit_exp `elemtype*#6`] -[visit_id elemtype*#6] [visit_exp []] -[visit_exp `localtype*#9`] -[visit_id localtype*#9] [visit_exp []] -[visit_exp `resulttype*#17`] -[visit_id resulttype*#17] -[visit_exp [`%`_resulttype{`X*#4949`}(t_2*{t_2 <- `t_2*`})]] -[visit_exp `%`_resulttype{`X*#4949`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#4949`] -[visit_id X*#4949] +[visit_exp [`%`_resulttype(t_2*{t_2 <- `t_2*`})]] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -25192,11 +22909,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp `resulttype?#18`] -[visit_id resulttype?#18] [visit_exp ?()] -[visit_exp `funcidx*#44`] -[visit_id funcidx*#44] [visit_exp []] [visit_exp C] [visit_id C] not free @@ -25209,15 +22922,9 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp `%->_%%`_instrtype{resulttype#1009, `localidx*#611`}(`%`_resulttype{`X*#4962`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#5014`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#1009] -[visit_id resulttype#1009] -[visit_exp `localidx*#611`] -[visit_id localidx*#611] -[visit_exp (`%`_resulttype{`X*#4962`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#5014`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#4962`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#4962`] -[visit_id X*#4962] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -25237,9 +22944,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `x*`] [visit_id x*] no dims [visit_id x*] -[visit_exp `%`_resulttype{`X*#5014`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#5014`] -[visit_id X*#5014] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -25261,40 +22966,28 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `catch*`] [visit_id catch*] not free [visit_id catch*] no dims -[check_dims] C X*#5029 X*#5052 X*#5063 i#5946 i#5956 l labelidx#29 resulttype#1012 resulttype*#18 t tagidx#5 tagtype*#8 x +[check_dims] C l t x [visit_exp C] [visit_id C] -[visit_exp `CATCH`_catch{tagidx#5, labelidx#29}(x, l)] -[visit_exp tagidx#5] -[visit_id tagidx#5] -[visit_exp labelidx#29] -[visit_id labelidx#29] +[visit_exp `CATCH`_catch(x, l)] [visit_exp (x, l)] [visit_exp x] [visit_id x] [visit_exp l] [visit_id l] -[visit_exp ($as_deftype(C.`TAGS`_context{`tagtype*#8`}[x!`%`_idx{i#5946}.0]), `FUNC%->%`_comptype{resulttype#1012}(`%`_resulttype{`X*#5029`}(t*{t <- `t*`}), `%`_resulttype{`X*#5052`}([])))] -[visit_exp $as_deftype(C.`TAGS`_context{`tagtype*#8`}[x!`%`_idx{i#5946}.0])] -[visit_exp C.`TAGS`_context{`tagtype*#8`}[x!`%`_idx{i#5946}.0]] -[visit_exp C.`TAGS`_context{`tagtype*#8`}] +[visit_exp ($as_deftype(C.`TAGS`_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([])))] +[visit_exp $as_deftype(C.`TAGS`_context[x!`%`_idx.0])] +[visit_exp C.`TAGS`_context[x!`%`_idx.0]] +[visit_exp C.`TAGS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tagtype*#8`] -[visit_id tagtype*#8] -[visit_exp x!`%`_idx{i#5946}.0] -[visit_exp x!`%`_idx{i#5946}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#5946] -[visit_id i#5946] -[visit_exp `FUNC%->%`_comptype{resulttype#1012}(`%`_resulttype{`X*#5029`}(t*{t <- `t*`}), `%`_resulttype{`X*#5052`}([]))] -[visit_exp resulttype#1012] -[visit_id resulttype#1012] -[visit_exp (`%`_resulttype{`X*#5029`}(t*{t <- `t*`}), `%`_resulttype{`X*#5052`}([]))] -[visit_exp `%`_resulttype{`X*#5029`}(t*{t <- `t*`})] -[visit_exp `X*#5029`] -[visit_id X*#5029] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))] +[visit_exp (`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))] +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -25305,17 +22998,13 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] no dims [visit_id t*] -[visit_exp `%`_resulttype{`X*#5052`}([])] -[visit_exp `X*#5052`] -[visit_id X*#5052] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C, `%`_resulttype{`X*#5063`}(t*{t <- `t*`}), C.`LABELS`_context{`resulttype*#18`}[l!`%`_labelidx{i#5956}.0])] +[visit_exp (C, `%`_resulttype(t*{t <- `t*`}), C.`LABELS`_context[l!`%`_labelidx.0])] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#5063`}(t*{t <- `t*`})] -[visit_exp `X*#5063`] -[visit_id X*#5063] +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -25326,52 +23015,36 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[visit_exp C.`LABELS`_context{`resulttype*#18`}[l!`%`_labelidx{i#5956}.0]] -[visit_exp C.`LABELS`_context{`resulttype*#18`}] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] +[visit_exp C.`LABELS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype*#18`] -[visit_id resulttype*#18] -[visit_exp l!`%`_labelidx{i#5956}.0] -[visit_exp l!`%`_labelidx{i#5956}] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#5956] -[visit_id i#5956] -[check_dims] C X*#5088 X*#5111 X*#5132 heaptype#719 i#5992 i#6002 l labelidx#31 null?#717 resulttype#1015 resulttype*#19 t tagidx#7 tagtype*#9 x +[check_dims] C l t x [visit_exp C] [visit_id C] -[visit_exp `CATCH_REF`_catch{tagidx#7, labelidx#31}(x, l)] -[visit_exp tagidx#7] -[visit_id tagidx#7] -[visit_exp labelidx#31] -[visit_id labelidx#31] +[visit_exp `CATCH_REF`_catch(x, l)] [visit_exp (x, l)] [visit_exp x] [visit_id x] [visit_exp l] [visit_id l] -[visit_exp ($as_deftype(C.`TAGS`_context{`tagtype*#9`}[x!`%`_idx{i#5992}.0]), `FUNC%->%`_comptype{resulttype#1015}(`%`_resulttype{`X*#5088`}(t*{t <- `t*`}), `%`_resulttype{`X*#5111`}([])))] -[visit_exp $as_deftype(C.`TAGS`_context{`tagtype*#9`}[x!`%`_idx{i#5992}.0])] -[visit_exp C.`TAGS`_context{`tagtype*#9`}[x!`%`_idx{i#5992}.0]] -[visit_exp C.`TAGS`_context{`tagtype*#9`}] +[visit_exp ($as_deftype(C.`TAGS`_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([])))] +[visit_exp $as_deftype(C.`TAGS`_context[x!`%`_idx.0])] +[visit_exp C.`TAGS`_context[x!`%`_idx.0]] +[visit_exp C.`TAGS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tagtype*#9`] -[visit_id tagtype*#9] -[visit_exp x!`%`_idx{i#5992}.0] -[visit_exp x!`%`_idx{i#5992}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#5992] -[visit_id i#5992] -[visit_exp `FUNC%->%`_comptype{resulttype#1015}(`%`_resulttype{`X*#5088`}(t*{t <- `t*`}), `%`_resulttype{`X*#5111`}([]))] -[visit_exp resulttype#1015] -[visit_id resulttype#1015] -[visit_exp (`%`_resulttype{`X*#5088`}(t*{t <- `t*`}), `%`_resulttype{`X*#5111`}([]))] -[visit_exp `%`_resulttype{`X*#5088`}(t*{t <- `t*`})] -[visit_exp `X*#5088`] -[visit_id X*#5088] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))] +[visit_exp (`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))] +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -25382,19 +23055,15 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] no dims [visit_id t*] -[visit_exp `%`_resulttype{`X*#5111`}([])] -[visit_exp `X*#5111`] -[visit_id X*#5111] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C, `%`_resulttype{`X*#5132`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)]), C.`LABELS`_context{`resulttype*#19`}[l!`%`_labelidx{i#6002}.0])] +[visit_exp (C, `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), `EXN`_heaptype)]), C.`LABELS`_context[l!`%`_labelidx.0])] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#5132`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)])] -[visit_exp `X*#5132`] -[visit_id X*#5132] -[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)])] -[visit_exp t*{t <- `t*`} ++ [`REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)]] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), `EXN`_heaptype)])] +[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype(?(), `EXN`_heaptype)])] +[visit_exp t*{t <- `t*`} ++ [`REF`_valtype(?(), `EXN`_heaptype)]] [visit_exp t*{t <- `t*`}] [scope_enter t] [visit_exp t] @@ -25404,126 +23073,84 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[visit_exp [`REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)]] -[visit_exp `REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)] -[visit_exp `null?#717`] -[visit_id null?#717] -[visit_exp heaptype#719] -[visit_id heaptype#719] +[visit_exp [`REF`_valtype(?(), `EXN`_heaptype)]] +[visit_exp `REF`_valtype(?(), `EXN`_heaptype)] [visit_exp (?(), `EXN`_heaptype)] [visit_exp ?()] [visit_exp `EXN`_heaptype] [visit_exp ()] -[visit_exp C.`LABELS`_context{`resulttype*#19`}[l!`%`_labelidx{i#6002}.0]] -[visit_exp C.`LABELS`_context{`resulttype*#19`}] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] +[visit_exp C.`LABELS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype*#19`] -[visit_id resulttype*#19] -[visit_exp l!`%`_labelidx{i#6002}.0] -[visit_exp l!`%`_labelidx{i#6002}] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#6002] -[visit_id i#6002] -[check_dims] C X*#5163 i#6024 l labelidx#33 resulttype*#20 +[check_dims] C l [visit_exp C] [visit_id C] -[visit_exp `CATCH_ALL`_catch{labelidx#33}(l)] -[visit_exp labelidx#33] -[visit_id labelidx#33] +[visit_exp `CATCH_ALL`_catch(l)] [visit_exp (l)] [visit_exp l] [visit_id l] -[visit_exp (C, `%`_resulttype{`X*#5163`}([]), C.`LABELS`_context{`resulttype*#20`}[l!`%`_labelidx{i#6024}.0])] +[visit_exp (C, `%`_resulttype([]), C.`LABELS`_context[l!`%`_labelidx.0])] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#5163`}([])] -[visit_exp `X*#5163`] -[visit_id X*#5163] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp C.`LABELS`_context{`resulttype*#20`}[l!`%`_labelidx{i#6024}.0]] -[visit_exp C.`LABELS`_context{`resulttype*#20`}] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] +[visit_exp C.`LABELS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype*#20`] -[visit_id resulttype*#20] -[visit_exp l!`%`_labelidx{i#6024}.0] -[visit_exp l!`%`_labelidx{i#6024}] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#6024] -[visit_id i#6024] -[check_dims] C X*#5194 heaptype#721 i#6046 l labelidx#35 null?#719 resulttype*#21 +[check_dims] C l [visit_exp C] [visit_id C] -[visit_exp `CATCH_ALL_REF`_catch{labelidx#35}(l)] -[visit_exp labelidx#35] -[visit_id labelidx#35] +[visit_exp `CATCH_ALL_REF`_catch(l)] [visit_exp (l)] [visit_exp l] [visit_id l] -[visit_exp (C, `%`_resulttype{`X*#5194`}([`REF`_valtype{`null?#719`, heaptype#721}(?(), `EXN`_heaptype)]), C.`LABELS`_context{`resulttype*#21`}[l!`%`_labelidx{i#6046}.0])] +[visit_exp (C, `%`_resulttype([`REF`_valtype(?(), `EXN`_heaptype)]), C.`LABELS`_context[l!`%`_labelidx.0])] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#5194`}([`REF`_valtype{`null?#719`, heaptype#721}(?(), `EXN`_heaptype)])] -[visit_exp `X*#5194`] -[visit_id X*#5194] -[visit_exp ([`REF`_valtype{`null?#719`, heaptype#721}(?(), `EXN`_heaptype)])] -[visit_exp [`REF`_valtype{`null?#719`, heaptype#721}(?(), `EXN`_heaptype)]] -[visit_exp `REF`_valtype{`null?#719`, heaptype#721}(?(), `EXN`_heaptype)] -[visit_exp `null?#719`] -[visit_id null?#719] -[visit_exp heaptype#721] -[visit_id heaptype#721] +[visit_exp `%`_resulttype([`REF`_valtype(?(), `EXN`_heaptype)])] +[visit_exp ([`REF`_valtype(?(), `EXN`_heaptype)])] +[visit_exp [`REF`_valtype(?(), `EXN`_heaptype)]] +[visit_exp `REF`_valtype(?(), `EXN`_heaptype)] [visit_exp (?(), `EXN`_heaptype)] [visit_exp ?()] [visit_exp `EXN`_heaptype] [visit_exp ()] -[visit_exp C.`LABELS`_context{`resulttype*#21`}[l!`%`_labelidx{i#6046}.0]] -[visit_exp C.`LABELS`_context{`resulttype*#21`}] +[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] +[visit_exp C.`LABELS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `resulttype*#21`] -[visit_id resulttype*#21] -[visit_exp l!`%`_labelidx{i#6046}.0] -[visit_exp l!`%`_labelidx{i#6046}] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#6046] -[visit_id i#6046] -[check_dims] C X*#5225 X*#5274 heaptype#723 heaptype#725 ht localidx*#623 null?#721 resulttype#1035 +[check_dims] C ht [visit_exp C] [visit_id C] -[visit_exp `REF.NULL`_instr{heaptype#723}(ht)] -[visit_exp heaptype#723] -[visit_id heaptype#723] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[visit_exp `%->_%%`_instrtype{resulttype#1035, `localidx*#623`}(`%`_resulttype{`X*#5225`}([]), [], `%`_resulttype{`X*#5274`}([`REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)]))] -[visit_exp resulttype#1035] -[visit_id resulttype#1035] -[visit_exp `localidx*#623`] -[visit_id localidx*#623] -[visit_exp (`%`_resulttype{`X*#5225`}([]), [], `%`_resulttype{`X*#5274`}([`REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)]))] -[visit_exp `%`_resulttype{`X*#5225`}([])] -[visit_exp `X*#5225`] -[visit_id X*#5225] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#5274`}([`REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)])] -[visit_exp `X*#5274`] -[visit_id X*#5274] -[visit_exp ([`REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)])] -[visit_exp [`REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)]] -[visit_exp `REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)] -[visit_exp `null?#721`] -[visit_id null?#721] -[visit_exp heaptype#725] -[visit_id heaptype#725] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), ht)])] +[visit_exp [`REF`_valtype(?(`NULL`_null), ht)]] +[visit_exp `REF`_valtype(?(`NULL`_null), ht)] [visit_exp (?(`NULL`_null), ht)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -25535,119 +23162,77 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp ht] [visit_id ht] not free -[check_dims] C X*#5295 X*#5344 deftype*#36 dt funcidx#181 funcidx*#47 heaptype#727 i#6070 localidx*#635 null?#723 resulttype#1055 x +[check_dims] C dt x [visit_exp C] [visit_id C] -[visit_exp `REF.FUNC`_instr{funcidx#181}(x)] -[visit_exp funcidx#181] -[visit_id funcidx#181] +[visit_exp `REF.FUNC`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1055, `localidx*#635`}(`%`_resulttype{`X*#5295`}([]), [], `%`_resulttype{`X*#5344`}([`REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))]))] -[visit_exp resulttype#1055] -[visit_id resulttype#1055] -[visit_exp `localidx*#635`] -[visit_id localidx*#635] -[visit_exp (`%`_resulttype{`X*#5295`}([]), [], `%`_resulttype{`X*#5344`}([`REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))]))] -[visit_exp `%`_resulttype{`X*#5295`}([])] -[visit_exp `X*#5295`] -[visit_id X*#5295] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(), (dt : deftype <: heaptype))]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(), (dt : deftype <: heaptype))]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#5344`}([`REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))])] -[visit_exp `X*#5344`] -[visit_id X*#5344] -[visit_exp ([`REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))])] -[visit_exp [`REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))]] -[visit_exp `REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))] -[visit_exp `null?#723`] -[visit_id null?#723] -[visit_exp heaptype#727] -[visit_id heaptype#727] +[visit_exp `%`_resulttype([`REF`_valtype(?(), (dt : deftype <: heaptype))])] +[visit_exp ([`REF`_valtype(?(), (dt : deftype <: heaptype))])] +[visit_exp [`REF`_valtype(?(), (dt : deftype <: heaptype))]] +[visit_exp `REF`_valtype(?(), (dt : deftype <: heaptype))] [visit_exp (?(), (dt : deftype <: heaptype))] [visit_exp ?()] [visit_exp (dt : deftype <: heaptype)] [visit_exp dt] [visit_id dt] -[visit_exp (C.`FUNCS`_context{`deftype*#36`}[x!`%`_idx{i#6070}.0] = dt)] -[visit_exp C.`FUNCS`_context{`deftype*#36`}[x!`%`_idx{i#6070}.0]] -[visit_exp C.`FUNCS`_context{`deftype*#36`}] +[visit_exp (C.`FUNCS`_context[x!`%`_idx.0] = dt)] +[visit_exp C.`FUNCS`_context[x!`%`_idx.0]] +[visit_exp C.`FUNCS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#36`] -[visit_id deftype*#36] -[visit_exp x!`%`_idx{i#6070}.0] -[visit_exp x!`%`_idx{i#6070}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#6070] -[visit_id i#6070] [visit_exp dt] [visit_id dt] not free -[visit_exp (x <- C.`REFS`_context{`funcidx*#47`})] +[visit_exp (x <- C.`REFS`_context)] [visit_exp x] [visit_id x] not free -[visit_exp C.`REFS`_context{`funcidx*#47`}] +[visit_exp C.`REFS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `funcidx*#47`] -[visit_id funcidx*#47] -[check_dims] C X*#5363 X*#5412 heaptype#729 localidx*#647 null?#725 resulttype#1075 +[check_dims] C [visit_exp C] [visit_id C] [visit_exp `REF.I31`_instr] [visit_exp ()] -[visit_exp `%->_%%`_instrtype{resulttype#1075, `localidx*#647`}(`%`_resulttype{`X*#5363`}([`I32`_valtype]), [], `%`_resulttype{`X*#5412`}([`REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)]))] -[visit_exp resulttype#1075] -[visit_id resulttype#1075] -[visit_exp `localidx*#647`] -[visit_id localidx*#647] -[visit_exp (`%`_resulttype{`X*#5363`}([`I32`_valtype]), [], `%`_resulttype{`X*#5412`}([`REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)]))] -[visit_exp `%`_resulttype{`X*#5363`}([`I32`_valtype])] -[visit_exp `X*#5363`] -[visit_id X*#5363] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `I31`_heaptype)]))] +[visit_exp (`%`_resulttype([`I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `I31`_heaptype)]))] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#5412`}([`REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)])] -[visit_exp `X*#5412`] -[visit_id X*#5412] -[visit_exp ([`REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)])] -[visit_exp [`REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)]] -[visit_exp `REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)] -[visit_exp `null?#725`] -[visit_id null?#725] -[visit_exp heaptype#729] -[visit_id heaptype#729] +[visit_exp `%`_resulttype([`REF`_valtype(?(), `I31`_heaptype)])] +[visit_exp ([`REF`_valtype(?(), `I31`_heaptype)])] +[visit_exp [`REF`_valtype(?(), `I31`_heaptype)]] +[visit_exp `REF`_valtype(?(), `I31`_heaptype)] [visit_exp (?(), `I31`_heaptype)] [visit_exp ?()] [visit_exp `I31`_heaptype] [visit_exp ()] -[check_dims] C X*#5433 X*#5482 heaptype#731 ht localidx*#659 null?#727 resulttype#1095 +[check_dims] C ht [visit_exp C] [visit_id C] [visit_exp `REF.IS_NULL`_instr] [visit_exp ()] -[visit_exp `%->_%%`_instrtype{resulttype#1095, `localidx*#659`}(`%`_resulttype{`X*#5433`}([`REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#5482`}([`I32`_valtype]))] -[visit_exp resulttype#1095] -[visit_id resulttype#1095] -[visit_exp `localidx*#659`] -[visit_id localidx*#659] -[visit_exp (`%`_resulttype{`X*#5433`}([`REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#5482`}([`I32`_valtype]))] -[visit_exp `%`_resulttype{`X*#5433`}([`REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)])] -[visit_exp `X*#5433`] -[visit_id X*#5433] -[visit_exp ([`REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)])] -[visit_exp [`REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)]] -[visit_exp `REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)] -[visit_exp `null?#727`] -[visit_id null?#727] -[visit_exp heaptype#731] -[visit_id heaptype#731] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), ht)])] +[visit_exp [`REF`_valtype(?(`NULL`_null), ht)]] +[visit_exp `REF`_valtype(?(`NULL`_null), ht)] [visit_exp (?(`NULL`_null), ht)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -25655,9 +23240,7 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp ht] [visit_id ht] [visit_exp []] -[visit_exp `%`_resulttype{`X*#5482`}([`I32`_valtype])] -[visit_exp `X*#5482`] -[visit_id X*#5482] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] @@ -25667,27 +23250,17 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp ht] [visit_id ht] not free -[check_dims] C X*#5503 X*#5552 heaptype#733 heaptype#735 ht localidx*#671 null?#729 null?#731 resulttype#1115 +[check_dims] C ht [visit_exp C] [visit_id C] [visit_exp `REF.AS_NON_NULL`_instr] [visit_exp ()] -[visit_exp `%->_%%`_instrtype{resulttype#1115, `localidx*#671`}(`%`_resulttype{`X*#5503`}([`REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#5552`}([`REF`_valtype{`null?#731`, heaptype#735}(?(), ht)]))] -[visit_exp resulttype#1115] -[visit_id resulttype#1115] -[visit_exp `localidx*#671`] -[visit_id localidx*#671] -[visit_exp (`%`_resulttype{`X*#5503`}([`REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#5552`}([`REF`_valtype{`null?#731`, heaptype#735}(?(), ht)]))] -[visit_exp `%`_resulttype{`X*#5503`}([`REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)])] -[visit_exp `X*#5503`] -[visit_id X*#5503] -[visit_exp ([`REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)])] -[visit_exp [`REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)]] -[visit_exp `REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)] -[visit_exp `null?#729`] -[visit_id null?#729] -[visit_exp heaptype#733] -[visit_id heaptype#733] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype([`REF`_valtype(?(), ht)]))] +[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype([`REF`_valtype(?(), ht)]))] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), ht)])] +[visit_exp [`REF`_valtype(?(`NULL`_null), ht)]] +[visit_exp `REF`_valtype(?(`NULL`_null), ht)] [visit_exp (?(`NULL`_null), ht)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -25695,16 +23268,10 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp ht] [visit_id ht] [visit_exp []] -[visit_exp `%`_resulttype{`X*#5552`}([`REF`_valtype{`null?#731`, heaptype#735}(?(), ht)])] -[visit_exp `X*#5552`] -[visit_id X*#5552] -[visit_exp ([`REF`_valtype{`null?#731`, heaptype#735}(?(), ht)])] -[visit_exp [`REF`_valtype{`null?#731`, heaptype#735}(?(), ht)]] -[visit_exp `REF`_valtype{`null?#731`, heaptype#735}(?(), ht)] -[visit_exp `null?#731`] -[visit_id null?#731] -[visit_exp heaptype#735] -[visit_id heaptype#735] +[visit_exp `%`_resulttype([`REF`_valtype(?(), ht)])] +[visit_exp ([`REF`_valtype(?(), ht)])] +[visit_exp [`REF`_valtype(?(), ht)]] +[visit_exp `REF`_valtype(?(), ht)] [visit_exp (?(), ht)] [visit_exp ?()] [visit_exp ht] @@ -25714,38 +23281,24 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id C] not free [visit_exp ht] [visit_id ht] not free -[check_dims] C X*#5573 X*#5622 heaptype#737 heaptype#739 localidx*#683 null?#733 null?#735 resulttype#1135 +[check_dims] C [visit_exp C] [visit_id C] [visit_exp `REF.EQ`_instr] [visit_exp ()] -[visit_exp `%->_%%`_instrtype{resulttype#1135, `localidx*#683`}(`%`_resulttype{`X*#5573`}([`REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)]), [], `%`_resulttype{`X*#5622`}([`I32`_valtype]))] -[visit_exp resulttype#1135] -[visit_id resulttype#1135] -[visit_exp `localidx*#683`] -[visit_id localidx*#683] -[visit_exp (`%`_resulttype{`X*#5573`}([`REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)]), [], `%`_resulttype{`X*#5622`}([`I32`_valtype]))] -[visit_exp `%`_resulttype{`X*#5573`}([`REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)])] -[visit_exp `X*#5573`] -[visit_id X*#5573] -[visit_exp ([`REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)])] -[visit_exp [`REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)]] -[visit_exp `REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype)] -[visit_exp `null?#733`] -[visit_id null?#733] -[visit_exp heaptype#737] -[visit_id heaptype#737] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)])] +[visit_exp [`REF`_valtype(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)]] +[visit_exp `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)] [visit_exp (?(`NULL`_null), `EQ`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] [visit_exp `EQ`_heaptype] [visit_exp ()] -[visit_exp `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)] -[visit_exp `null?#735`] -[visit_id null?#735] -[visit_exp heaptype#739] -[visit_id heaptype#739] +[visit_exp `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)] [visit_exp (?(`NULL`_null), `EQ`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -25753,40 +23306,28 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `EQ`_heaptype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#5622`}([`I32`_valtype])] -[visit_exp `X*#5622`] -[visit_id X*#5622] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] [visit_exp ()] -[check_dims] C X*#5633 X*#5703 localidx*#695 reftype#403 resulttype#1155 rt rt' +[check_dims] C rt rt' [visit_exp C] [visit_id C] -[visit_exp `REF.TEST`_instr{reftype#403}(rt)] -[visit_exp reftype#403] -[visit_id reftype#403] +[visit_exp `REF.TEST`_instr(rt)] [visit_exp (rt)] [visit_exp rt] [visit_id rt] -[visit_exp `%->_%%`_instrtype{resulttype#1155, `localidx*#695`}(`%`_resulttype{`X*#5633`}([(rt' : reftype <: valtype)]), [], `%`_resulttype{`X*#5703`}([`I32`_valtype]))] -[visit_exp resulttype#1155] -[visit_id resulttype#1155] -[visit_exp `localidx*#695`] -[visit_id localidx*#695] -[visit_exp (`%`_resulttype{`X*#5633`}([(rt' : reftype <: valtype)]), [], `%`_resulttype{`X*#5703`}([`I32`_valtype]))] -[visit_exp `%`_resulttype{`X*#5633`}([(rt' : reftype <: valtype)])] -[visit_exp `X*#5633`] -[visit_id X*#5633] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp (`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp `%`_resulttype([(rt' : reftype <: valtype)])] [visit_exp ([(rt' : reftype <: valtype)])] [visit_exp [(rt' : reftype <: valtype)]] [visit_exp (rt' : reftype <: valtype)] [visit_exp rt'] [visit_id rt'] [visit_exp []] -[visit_exp `%`_resulttype{`X*#5703`}([`I32`_valtype])] -[visit_exp `X*#5703`] -[visit_id X*#5703] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] @@ -25808,33 +23349,23 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id rt] not free [visit_exp rt'] [visit_id rt'] not free -[check_dims] C X*#5714 X*#5784 localidx*#707 reftype#405 resulttype#1175 rt rt' +[check_dims] C rt rt' [visit_exp C] [visit_id C] -[visit_exp `REF.CAST`_instr{reftype#405}(rt)] -[visit_exp reftype#405] -[visit_id reftype#405] +[visit_exp `REF.CAST`_instr(rt)] [visit_exp (rt)] [visit_exp rt] [visit_id rt] -[visit_exp `%->_%%`_instrtype{resulttype#1175, `localidx*#707`}(`%`_resulttype{`X*#5714`}([(rt' : reftype <: valtype)]), [], `%`_resulttype{`X*#5784`}([(rt : reftype <: valtype)]))] -[visit_exp resulttype#1175] -[visit_id resulttype#1175] -[visit_exp `localidx*#707`] -[visit_id localidx*#707] -[visit_exp (`%`_resulttype{`X*#5714`}([(rt' : reftype <: valtype)]), [], `%`_resulttype{`X*#5784`}([(rt : reftype <: valtype)]))] -[visit_exp `%`_resulttype{`X*#5714`}([(rt' : reftype <: valtype)])] -[visit_exp `X*#5714`] -[visit_id X*#5714] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))] +[visit_exp (`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))] +[visit_exp `%`_resulttype([(rt' : reftype <: valtype)])] [visit_exp ([(rt' : reftype <: valtype)])] [visit_exp [(rt' : reftype <: valtype)]] [visit_exp (rt' : reftype <: valtype)] [visit_exp rt'] [visit_id rt'] [visit_exp []] -[visit_exp `%`_resulttype{`X*#5784`}([(rt : reftype <: valtype)])] -[visit_exp `X*#5784`] -[visit_id X*#5784] +[visit_exp `%`_resulttype([(rt : reftype <: valtype)])] [visit_exp ([(rt : reftype <: valtype)])] [visit_exp [(rt : reftype <: valtype)]] [visit_exp (rt : reftype <: valtype)] @@ -25857,31 +23388,19 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id rt] not free [visit_exp rt'] [visit_id rt'] not free -[check_dims] C X*#5805 X*#5854 heaptype#805 localidx*#719 null?#801 resulttype#1195 sx sx#5 +[check_dims] C sx [visit_exp C] [visit_id C] -[visit_exp `I31.GET`_instr{sx#5}(sx)] -[visit_exp sx#5] -[visit_id sx#5] +[visit_exp `I31.GET`_instr(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] -[visit_exp `%->_%%`_instrtype{resulttype#1195, `localidx*#719`}(`%`_resulttype{`X*#5805`}([`REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)]), [], `%`_resulttype{`X*#5854`}([`I32`_valtype]))] -[visit_exp resulttype#1195] -[visit_id resulttype#1195] -[visit_exp `localidx*#719`] -[visit_id localidx*#719] -[visit_exp (`%`_resulttype{`X*#5805`}([`REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)]), [], `%`_resulttype{`X*#5854`}([`I32`_valtype]))] -[visit_exp `%`_resulttype{`X*#5805`}([`REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)])] -[visit_exp `X*#5805`] -[visit_id X*#5805] -[visit_exp ([`REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)])] -[visit_exp [`REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)]] -[visit_exp `REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)] -[visit_exp `null?#801`] -[visit_id null?#801] -[visit_exp heaptype#805] -[visit_id heaptype#805] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `I31`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `I31`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `I31`_heaptype)])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), `I31`_heaptype)])] +[visit_exp [`REF`_valtype(?(`NULL`_null), `I31`_heaptype)]] +[visit_exp `REF`_valtype(?(`NULL`_null), `I31`_heaptype)] [visit_exp (?(`NULL`_null), `I31`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -25889,31 +23408,21 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_exp `I31`_heaptype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#5854`}([`I32`_valtype])] -[visit_exp `X*#5854`] -[visit_id X*#5854] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] [visit_exp ()] -[check_dims] C X*#5865 X*#5916 X*#5929 deftype*#37 heaptype#807 i#6131 localidx*#731 mut mut?#573 null?#803 resulttype#1215 storagetype#337 typeidx#406 typeidx#408 x zt +[check_dims] C mut x zt [visit_exp C] [visit_id C] -[visit_exp `STRUCT.NEW`_instr{typeidx#406}(x)] -[visit_exp typeidx#406] -[visit_id typeidx#406] +[visit_exp `STRUCT.NEW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1215, `localidx*#731`}(`%`_resulttype{`X*#5865`}($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype{`X*#5916`}([`REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))]))] -[visit_exp resulttype#1215] -[visit_id resulttype#1215] -[visit_exp `localidx*#731`] -[visit_id localidx*#731] -[visit_exp (`%`_resulttype{`X*#5865`}($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype{`X*#5916`}([`REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))]))] -[visit_exp `%`_resulttype{`X*#5865`}($unpack(zt)*{zt <- `zt*`})] -[visit_exp `X*#5865`] -[visit_id X*#5865] +[visit_exp `%->_%%`_instrtype(`%`_resulttype($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp (`%`_resulttype($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp `%`_resulttype($unpack(zt)*{zt <- `zt*`})] [visit_exp ($unpack(zt)*{zt <- `zt*`})] [visit_exp $unpack(zt)*{zt <- `zt*`}] [scope_enter zt] @@ -25926,53 +23435,33 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id zt*] no dims [visit_id zt*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#5916`}([`REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))])] -[visit_exp `X*#5916`] -[visit_id X*#5916] -[visit_exp ([`REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))])] -[visit_exp [`REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))]] -[visit_exp `REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))] -[visit_exp `null?#803`] -[visit_id null?#803] -[visit_exp heaptype#807] -[visit_id heaptype#807] -[visit_exp (?(), `_IDX`_heaptype{typeidx#408}(x))] +[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] +[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] +[visit_exp (?(), `_IDX`_heaptype(x))] [visit_exp ?()] -[visit_exp `_IDX`_heaptype{typeidx#408}(x)] -[visit_exp typeidx#408] -[visit_id typeidx#408] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp (C.`TYPES`_context{`deftype*#37`}[x!`%`_idx{i#6131}.0], `STRUCT`_comptype(`%`_list{`X*#5929`}(`%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`})))] -[visit_exp C.`TYPES`_context{`deftype*#37`}[x!`%`_idx{i#6131}.0]] -[visit_exp C.`TYPES`_context{`deftype*#37`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#37`] -[visit_id deftype*#37] -[visit_exp x!`%`_idx{i#6131}.0] -[visit_exp x!`%`_idx{i#6131}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6131] -[visit_id i#6131] -[visit_exp `STRUCT`_comptype(`%`_list{`X*#5929`}(`%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`}))] -[visit_exp (`%`_list{`X*#5929`}(`%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`}))] -[visit_exp `%`_list{`X*#5929`}(`%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`})] -[visit_exp `X*#5929`] -[visit_id X*#5929] -[visit_exp (`%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`})] -[visit_exp `%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] +[visit_exp (`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] +[visit_exp `%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}] [scope_enter mut?] -[scope_enter mut?#573] -[scope_enter storagetype#337] [scope_enter zt] -[visit_exp `%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#573`] -[visit_id mut?#573] not free -[visit_exp storagetype#337] -[visit_id storagetype#337] not free +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -25987,93 +23476,55 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id zt] not free [visit_id mut?] not free [visit_id mut?] no dims -[visit_id mut?#573] not free -[visit_id storagetype#337] not free [visit_id zt] not free [scope_exit zt] -[scope_exit storagetype#337] -[scope_exit mut?#573] [scope_exit mut?] [visit_exp `mut?*`] [visit_id mut?*] no dims [visit_id mut?*] -[visit_exp `mut?#573*`] -[visit_id mut?#573*] no dims -[visit_id mut?#573*] -[visit_exp `storagetype#337*`] -[visit_id storagetype#337*] no dims -[visit_id storagetype#337*] [visit_exp `zt*`] [visit_id zt*] not free [visit_id zt*] no dims -[check_dims] C X*#5952 X*#6001 X*#6014 deftype*#38 heaptype#809 i#6169 localidx*#743 mut mut?#591 null?#805 resulttype#1235 storagetype#355 typeidx#410 typeidx#412 x zt +[check_dims] C mut x zt [visit_exp C] [visit_id C] -[visit_exp `STRUCT.NEW_DEFAULT`_instr{typeidx#410}(x)] -[visit_exp typeidx#410] -[visit_id typeidx#410] +[visit_exp `STRUCT.NEW_DEFAULT`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1235, `localidx*#743`}(`%`_resulttype{`X*#5952`}([]), [], `%`_resulttype{`X*#6001`}([`REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))]))] -[visit_exp resulttype#1235] -[visit_id resulttype#1235] -[visit_exp `localidx*#743`] -[visit_id localidx*#743] -[visit_exp (`%`_resulttype{`X*#5952`}([]), [], `%`_resulttype{`X*#6001`}([`REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))]))] -[visit_exp `%`_resulttype{`X*#5952`}([])] -[visit_exp `X*#5952`] -[visit_id X*#5952] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#6001`}([`REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))])] -[visit_exp `X*#6001`] -[visit_id X*#6001] -[visit_exp ([`REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))])] -[visit_exp [`REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))]] -[visit_exp `REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))] -[visit_exp `null?#805`] -[visit_id null?#805] -[visit_exp heaptype#809] -[visit_id heaptype#809] -[visit_exp (?(), `_IDX`_heaptype{typeidx#412}(x))] +[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] +[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] +[visit_exp (?(), `_IDX`_heaptype(x))] [visit_exp ?()] -[visit_exp `_IDX`_heaptype{typeidx#412}(x)] -[visit_exp typeidx#412] -[visit_id typeidx#412] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp (C.`TYPES`_context{`deftype*#38`}[x!`%`_idx{i#6169}.0], `STRUCT`_comptype(`%`_list{`X*#6014`}(`%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`})))] -[visit_exp C.`TYPES`_context{`deftype*#38`}[x!`%`_idx{i#6169}.0]] -[visit_exp C.`TYPES`_context{`deftype*#38`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#38`] -[visit_id deftype*#38] -[visit_exp x!`%`_idx{i#6169}.0] -[visit_exp x!`%`_idx{i#6169}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6169] -[visit_id i#6169] -[visit_exp `STRUCT`_comptype(`%`_list{`X*#6014`}(`%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`}))] -[visit_exp (`%`_list{`X*#6014`}(`%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`}))] -[visit_exp `%`_list{`X*#6014`}(`%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`})] -[visit_exp `X*#6014`] -[visit_id X*#6014] -[visit_exp (`%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`})] -[visit_exp `%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] +[visit_exp (`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] +[visit_exp `%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}] [scope_enter mut?] -[scope_enter mut?#591] -[scope_enter storagetype#355] [scope_enter zt] -[visit_exp `%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#591`] -[visit_id mut?#591] not free -[visit_exp storagetype#355] -[visit_id storagetype#355] not free +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -26088,22 +23539,12 @@ DecD unrollht(context : context, heaptype : heaptype) : subtype [visit_id zt] not free [visit_id mut?] not free [visit_id mut?] no dims -[visit_id mut?#591] not free -[visit_id storagetype#355] not free [visit_id zt] not free [scope_exit zt] -[scope_exit storagetype#355] -[scope_exit mut?#591] [scope_exit mut?] [visit_exp `mut?*`] [visit_id mut?*] no dims [visit_id mut?*] -[visit_exp `mut?#591*`] -[visit_id mut?#591*] no dims -[visit_id mut?#591*] -[visit_exp `storagetype#355*`] -[visit_id storagetype#355*] no dims -[visit_id storagetype#355*] [visit_exp `zt*`] [visit_id zt*] no dims [visit_id zt*] @@ -26132,16 +23573,10 @@ DecD is_packtype(storagetype : storagetype) : bool => ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec def $is_packtype{zt : storagetype}(zt) = (zt = ($unpack(zt) : valtype <: storagetype)) -[check_dims] C X*#6037 X*#6086 X*#6099 deftype*#39 ft heaptype#811 i i#6236 i#6246 localidx*#755 mut mut?#617 null?#807 resulttype#1255 storagetype#381 sx sx?#7 typeidx#414 typeidx#416 u32#8 x zt +[check_dims] C ft i mut sx x zt [visit_exp C] [visit_id C] -[visit_exp `STRUCT.GET`_instr{`sx?#7`, typeidx#414, u32#8}(sx?{sx <- `sx?`}, x, i)] -[visit_exp `sx?#7`] -[visit_id sx?#7] -[visit_exp typeidx#414] -[visit_id typeidx#414] -[visit_exp u32#8] -[visit_id u32#8] +[visit_exp `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)] [visit_exp (sx?{sx <- `sx?`}, x, i)] [visit_exp sx?{sx <- `sx?`}] [scope_enter sx] @@ -26156,59 +23591,39 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id x] [visit_exp i] [visit_id i] -[visit_exp `%->_%%`_instrtype{resulttype#1255, `localidx*#755`}(`%`_resulttype{`X*#6037`}([`REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))]), [], `%`_resulttype{`X*#6086`}([$unpack(zt)]))] -[visit_exp resulttype#1255] -[visit_id resulttype#1255] -[visit_exp `localidx*#755`] -[visit_id localidx*#755] -[visit_exp (`%`_resulttype{`X*#6037`}([`REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))]), [], `%`_resulttype{`X*#6086`}([$unpack(zt)]))] -[visit_exp `%`_resulttype{`X*#6037`}([`REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))])] -[visit_exp `X*#6037`] -[visit_id X*#6037] -[visit_exp ([`REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))])] -[visit_exp [`REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))]] -[visit_exp `REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))] -[visit_exp `null?#807`] -[visit_id null?#807] -[visit_exp heaptype#811] -[visit_id heaptype#811] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype([$unpack(zt)]))] +[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype([$unpack(zt)]))] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))])] +[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]] +[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] -[visit_exp `_IDX`_heaptype{typeidx#416}(x)] -[visit_exp typeidx#416] -[visit_id typeidx#416] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#6086`}([$unpack(zt)])] -[visit_exp `X*#6086`] -[visit_id X*#6086] +[visit_exp `%`_resulttype([$unpack(zt)])] [visit_exp ([$unpack(zt)])] [visit_exp [$unpack(zt)]] [visit_exp $unpack(zt)] [visit_exp zt] [visit_id zt] -[visit_exp (C.`TYPES`_context{`deftype*#39`}[x!`%`_idx{i#6236}.0], `STRUCT`_comptype(`%`_list{`X*#6099`}(ft*{ft <- `ft*`})))] -[visit_exp C.`TYPES`_context{`deftype*#39`}[x!`%`_idx{i#6236}.0]] -[visit_exp C.`TYPES`_context{`deftype*#39`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#39`] -[visit_id deftype*#39] -[visit_exp x!`%`_idx{i#6236}.0] -[visit_exp x!`%`_idx{i#6236}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6236] -[visit_id i#6236] -[visit_exp `STRUCT`_comptype(`%`_list{`X*#6099`}(ft*{ft <- `ft*`}))] -[visit_exp (`%`_list{`X*#6099`}(ft*{ft <- `ft*`}))] -[visit_exp `%`_list{`X*#6099`}(ft*{ft <- `ft*`})] -[visit_exp `X*#6099`] -[visit_id X*#6099] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))] +[visit_exp (`%`_list(ft*{ft <- `ft*`}))] +[visit_exp `%`_list(ft*{ft <- `ft*`})] [visit_exp (ft*{ft <- `ft*`})] [visit_exp ft*{ft <- `ft*`}] [scope_enter ft] @@ -26219,8 +23634,8 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `ft*`] [visit_id ft*] no dims [visit_id ft*] -[visit_exp (ft*{ft <- `ft*`}[i!`%`_u32{i#6246}.0] = `%%`_fieldtype{`mut?#617`, storagetype#381}(mut?{mut <- `mut?`}, zt))] -[visit_exp ft*{ft <- `ft*`}[i!`%`_u32{i#6246}.0]] +[visit_exp (ft*{ft <- `ft*`}[i!`%`_u32.0] = `%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp ft*{ft <- `ft*`}[i!`%`_u32.0]] [visit_exp ft*{ft <- `ft*`}] [scope_enter ft] [visit_exp ft] @@ -26230,17 +23645,11 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `ft*`] [visit_id ft*] not free [visit_id ft*] no dims -[visit_exp i!`%`_u32{i#6246}.0] -[visit_exp i!`%`_u32{i#6246}] +[visit_exp i!`%`_u32.0] +[visit_exp i!`%`_u32] [visit_exp i] [visit_id i] not free -[visit_exp i#6246] -[visit_id i#6246] -[visit_exp `%%`_fieldtype{`mut?#617`, storagetype#381}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#617`] -[visit_id mut?#617] -[visit_exp storagetype#381] -[visit_id storagetype#381] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -26268,42 +23677,26 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp $is_packtype(zt)] [visit_exp zt] [visit_id zt] not free -[check_dims] C X*#6122 X*#6171 X*#6184 deftype*#40 ft heaptype#813 i i#6298 i#6308 localidx*#767 mut?#643 null?#809 resulttype#1275 storagetype#407 typeidx#418 typeidx#420 u32#10 x zt +[check_dims] C ft i x zt [visit_exp C] [visit_id C] -[visit_exp `STRUCT.SET`_instr{typeidx#418, u32#10}(x, i)] -[visit_exp typeidx#418] -[visit_id typeidx#418] -[visit_exp u32#10] -[visit_id u32#10] +[visit_exp `STRUCT.SET`_instr(x, i)] [visit_exp (x, i)] [visit_exp x] [visit_id x] [visit_exp i] [visit_id i] -[visit_exp `%->_%%`_instrtype{resulttype#1275, `localidx*#767`}(`%`_resulttype{`X*#6122`}([`REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x)) $unpack(zt)]), [], `%`_resulttype{`X*#6171`}([]))] -[visit_exp resulttype#1275] -[visit_id resulttype#1275] -[visit_exp `localidx*#767`] -[visit_id localidx*#767] -[visit_exp (`%`_resulttype{`X*#6122`}([`REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x)) $unpack(zt)]), [], `%`_resulttype{`X*#6171`}([]))] -[visit_exp `%`_resulttype{`X*#6122`}([`REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x)) $unpack(zt)])] -[visit_exp `X*#6122`] -[visit_id X*#6122] -[visit_exp ([`REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x)) $unpack(zt)])] -[visit_exp [`REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x)) $unpack(zt)]] -[visit_exp `REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x))] -[visit_exp `null?#809`] -[visit_id null?#809] -[visit_exp heaptype#813] -[visit_id heaptype#813] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x))] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) $unpack(zt)]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) $unpack(zt)]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) $unpack(zt)])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) $unpack(zt)])] +[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) $unpack(zt)]] +[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] -[visit_exp `_IDX`_heaptype{typeidx#420}(x)] -[visit_exp typeidx#420] -[visit_id typeidx#420] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free @@ -26311,29 +23704,21 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp zt] [visit_id zt] [visit_exp []] -[visit_exp `%`_resulttype{`X*#6171`}([])] -[visit_exp `X*#6171`] -[visit_id X*#6171] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`TYPES`_context{`deftype*#40`}[x!`%`_idx{i#6298}.0], `STRUCT`_comptype(`%`_list{`X*#6184`}(ft*{ft <- `ft*`})))] -[visit_exp C.`TYPES`_context{`deftype*#40`}[x!`%`_idx{i#6298}.0]] -[visit_exp C.`TYPES`_context{`deftype*#40`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#40`] -[visit_id deftype*#40] -[visit_exp x!`%`_idx{i#6298}.0] -[visit_exp x!`%`_idx{i#6298}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6298] -[visit_id i#6298] -[visit_exp `STRUCT`_comptype(`%`_list{`X*#6184`}(ft*{ft <- `ft*`}))] -[visit_exp (`%`_list{`X*#6184`}(ft*{ft <- `ft*`}))] -[visit_exp `%`_list{`X*#6184`}(ft*{ft <- `ft*`})] -[visit_exp `X*#6184`] -[visit_id X*#6184] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))] +[visit_exp (`%`_list(ft*{ft <- `ft*`}))] +[visit_exp `%`_list(ft*{ft <- `ft*`})] [visit_exp (ft*{ft <- `ft*`})] [visit_exp ft*{ft <- `ft*`}] [scope_enter ft] @@ -26344,8 +23729,8 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `ft*`] [visit_id ft*] no dims [visit_id ft*] -[visit_exp (ft*{ft <- `ft*`}[i!`%`_u32{i#6308}.0] = `%%`_fieldtype{`mut?#643`, storagetype#407}(?(`MUT`_mut), zt))] -[visit_exp ft*{ft <- `ft*`}[i!`%`_u32{i#6308}.0]] +[visit_exp (ft*{ft <- `ft*`}[i!`%`_u32.0] = `%%`_fieldtype(?(`MUT`_mut), zt))] +[visit_exp ft*{ft <- `ft*`}[i!`%`_u32.0]] [visit_exp ft*{ft <- `ft*`}] [scope_enter ft] [visit_exp ft] @@ -26355,41 +23740,27 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `ft*`] [visit_id ft*] not free [visit_id ft*] no dims -[visit_exp i!`%`_u32{i#6308}.0] -[visit_exp i!`%`_u32{i#6308}] +[visit_exp i!`%`_u32.0] +[visit_exp i!`%`_u32] [visit_exp i] [visit_id i] not free -[visit_exp i#6308] -[visit_id i#6308] -[visit_exp `%%`_fieldtype{`mut?#643`, storagetype#407}(?(`MUT`_mut), zt)] -[visit_exp `mut?#643`] -[visit_id mut?#643] -[visit_exp storagetype#407] -[visit_id storagetype#407] +[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt)] [visit_exp (?(`MUT`_mut), zt)] [visit_exp ?(`MUT`_mut)] [visit_exp `MUT`_mut] [visit_exp ()] [visit_exp zt] [visit_id zt] not free -[check_dims] C X*#6207 X*#6256 deftype*#41 fieldtype#15 heaptype#815 i#6346 localidx*#779 mut mut?#655 null?#811 resulttype#1295 storagetype#419 typeidx#422 typeidx#424 x zt +[check_dims] C mut x zt [visit_exp C] [visit_id C] -[visit_exp `ARRAY.NEW`_instr{typeidx#422}(x)] -[visit_exp typeidx#422] -[visit_id typeidx#422] +[visit_exp `ARRAY.NEW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1295, `localidx*#779`}(`%`_resulttype{`X*#6207`}([$unpack(zt) `I32`_valtype]), [], `%`_resulttype{`X*#6256`}([`REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))]))] -[visit_exp resulttype#1295] -[visit_id resulttype#1295] -[visit_exp `localidx*#779`] -[visit_id localidx*#779] -[visit_exp (`%`_resulttype{`X*#6207`}([$unpack(zt) `I32`_valtype]), [], `%`_resulttype{`X*#6256`}([`REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))]))] -[visit_exp `%`_resulttype{`X*#6207`}([$unpack(zt) `I32`_valtype])] -[visit_exp `X*#6207`] -[visit_id X*#6207] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([$unpack(zt) `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp (`%`_resulttype([$unpack(zt) `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp `%`_resulttype([$unpack(zt) `I32`_valtype])] [visit_exp ([$unpack(zt) `I32`_valtype])] [visit_exp [$unpack(zt) `I32`_valtype]] [visit_exp $unpack(zt)] @@ -26398,46 +23769,28 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#6256`}([`REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))])] -[visit_exp `X*#6256`] -[visit_id X*#6256] -[visit_exp ([`REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))])] -[visit_exp [`REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))]] -[visit_exp `REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))] -[visit_exp `null?#811`] -[visit_id null?#811] -[visit_exp heaptype#815] -[visit_id heaptype#815] -[visit_exp (?(), `_IDX`_heaptype{typeidx#424}(x))] +[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] +[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] +[visit_exp (?(), `_IDX`_heaptype(x))] [visit_exp ?()] -[visit_exp `_IDX`_heaptype{typeidx#424}(x)] -[visit_exp typeidx#424] -[visit_id typeidx#424] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp (C.`TYPES`_context{`deftype*#41`}[x!`%`_idx{i#6346}.0], `ARRAY`_comptype{fieldtype#15}(`%%`_fieldtype{`mut?#655`, storagetype#419}(mut?{mut <- `mut?`}, zt)))] -[visit_exp C.`TYPES`_context{`deftype*#41`}[x!`%`_idx{i#6346}.0]] -[visit_exp C.`TYPES`_context{`deftype*#41`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#41`] -[visit_id deftype*#41] -[visit_exp x!`%`_idx{i#6346}.0] -[visit_exp x!`%`_idx{i#6346}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6346] -[visit_id i#6346] -[visit_exp `ARRAY`_comptype{fieldtype#15}(`%%`_fieldtype{`mut?#655`, storagetype#419}(mut?{mut <- `mut?`}, zt))] -[visit_exp fieldtype#15] -[visit_id fieldtype#15] -[visit_exp (`%%`_fieldtype{`mut?#655`, storagetype#419}(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype{`mut?#655`, storagetype#419}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#655`] -[visit_id mut?#655] -[visit_exp storagetype#419] -[visit_id storagetype#419] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -26450,69 +23803,43 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id mut?] [visit_exp zt] [visit_id zt] not free -[check_dims] C X*#6275 X*#6324 deftype*#42 fieldtype#17 heaptype#817 i#6384 localidx*#791 mut mut?#667 null?#813 resulttype#1315 storagetype#431 typeidx#426 typeidx#428 x zt +[check_dims] C mut x zt [visit_exp C] [visit_id C] -[visit_exp `ARRAY.NEW_DEFAULT`_instr{typeidx#426}(x)] -[visit_exp typeidx#426] -[visit_id typeidx#426] +[visit_exp `ARRAY.NEW_DEFAULT`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1315, `localidx*#791`}(`%`_resulttype{`X*#6275`}([`I32`_valtype]), [], `%`_resulttype{`X*#6324`}([`REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))]))] -[visit_exp resulttype#1315] -[visit_id resulttype#1315] -[visit_exp `localidx*#791`] -[visit_id localidx*#791] -[visit_exp (`%`_resulttype{`X*#6275`}([`I32`_valtype]), [], `%`_resulttype{`X*#6324`}([`REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))]))] -[visit_exp `%`_resulttype{`X*#6275`}([`I32`_valtype])] -[visit_exp `X*#6275`] -[visit_id X*#6275] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp (`%`_resulttype([`I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#6324`}([`REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))])] -[visit_exp `X*#6324`] -[visit_id X*#6324] -[visit_exp ([`REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))])] -[visit_exp [`REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))]] -[visit_exp `REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))] -[visit_exp `null?#813`] -[visit_id null?#813] -[visit_exp heaptype#817] -[visit_id heaptype#817] -[visit_exp (?(), `_IDX`_heaptype{typeidx#428}(x))] +[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] +[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] +[visit_exp (?(), `_IDX`_heaptype(x))] [visit_exp ?()] -[visit_exp `_IDX`_heaptype{typeidx#428}(x)] -[visit_exp typeidx#428] -[visit_id typeidx#428] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp (C.`TYPES`_context{`deftype*#42`}[x!`%`_idx{i#6384}.0], `ARRAY`_comptype{fieldtype#17}(`%%`_fieldtype{`mut?#667`, storagetype#431}(mut?{mut <- `mut?`}, zt)))] -[visit_exp C.`TYPES`_context{`deftype*#42`}[x!`%`_idx{i#6384}.0]] -[visit_exp C.`TYPES`_context{`deftype*#42`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#42`] -[visit_id deftype*#42] -[visit_exp x!`%`_idx{i#6384}.0] -[visit_exp x!`%`_idx{i#6384}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6384] -[visit_id i#6384] -[visit_exp `ARRAY`_comptype{fieldtype#17}(`%%`_fieldtype{`mut?#667`, storagetype#431}(mut?{mut <- `mut?`}, zt))] -[visit_exp fieldtype#17] -[visit_id fieldtype#17] -[visit_exp (`%%`_fieldtype{`mut?#667`, storagetype#431}(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype{`mut?#667`, storagetype#431}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#667`] -[visit_id mut?#667] -[visit_exp storagetype#431] -[visit_id storagetype#431] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -26528,32 +23855,20 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp $unpack(zt)] [visit_exp zt] [visit_id zt] not free -[check_dims] C X*#6335 X*#6386 deftype*#43 fieldtype#19 heaptype#819 i#6422 i#6446 localidx*#803 mut mut?#679 n null?#815 resulttype#1335 storagetype#443 typeidx#430 typeidx#432 u32#12 x zt +[check_dims] C mut n x zt [visit_exp C] [visit_id C] -[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#430, u32#12}(x, `%`_u32{i#6422}(n))] -[visit_exp typeidx#430] -[visit_id typeidx#430] -[visit_exp u32#12] -[visit_id u32#12] -[visit_exp (x, `%`_u32{i#6422}(n))] +[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] +[visit_exp (x, `%`_u32(n))] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#6422}(n)] -[visit_exp i#6422] -[visit_id i#6422] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `%->_%%`_instrtype{resulttype#1335, `localidx*#803`}(`%`_resulttype{`X*#6335`}($unpack(zt)^n{}), [], `%`_resulttype{`X*#6386`}([`REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))]))] -[visit_exp resulttype#1335] -[visit_id resulttype#1335] -[visit_exp `localidx*#803`] -[visit_id localidx*#803] -[visit_exp (`%`_resulttype{`X*#6335`}($unpack(zt)^n{}), [], `%`_resulttype{`X*#6386`}([`REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))]))] -[visit_exp `%`_resulttype{`X*#6335`}($unpack(zt)^n{})] -[visit_exp `X*#6335`] -[visit_id X*#6335] +[visit_exp `%->_%%`_instrtype(`%`_resulttype($unpack(zt)^n{}), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp (`%`_resulttype($unpack(zt)^n{}), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp `%`_resulttype($unpack(zt)^n{})] [visit_exp ($unpack(zt)^n{})] [visit_exp $unpack(zt)^n{}] [visit_exp $unpack(zt)] @@ -26562,46 +23877,28 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp n] [visit_id n] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#6386`}([`REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))])] -[visit_exp `X*#6386`] -[visit_id X*#6386] -[visit_exp ([`REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))])] -[visit_exp [`REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))]] -[visit_exp `REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))] -[visit_exp `null?#815`] -[visit_id null?#815] -[visit_exp heaptype#819] -[visit_id heaptype#819] -[visit_exp (?(), `_IDX`_heaptype{typeidx#432}(x))] +[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] +[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] +[visit_exp (?(), `_IDX`_heaptype(x))] [visit_exp ?()] -[visit_exp `_IDX`_heaptype{typeidx#432}(x)] -[visit_exp typeidx#432] -[visit_id typeidx#432] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp (C.`TYPES`_context{`deftype*#43`}[x!`%`_idx{i#6446}.0], `ARRAY`_comptype{fieldtype#19}(`%%`_fieldtype{`mut?#679`, storagetype#443}(mut?{mut <- `mut?`}, zt)))] -[visit_exp C.`TYPES`_context{`deftype*#43`}[x!`%`_idx{i#6446}.0]] -[visit_exp C.`TYPES`_context{`deftype*#43`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#43`] -[visit_id deftype*#43] -[visit_exp x!`%`_idx{i#6446}.0] -[visit_exp x!`%`_idx{i#6446}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6446] -[visit_id i#6446] -[visit_exp `ARRAY`_comptype{fieldtype#19}(`%%`_fieldtype{`mut?#679`, storagetype#443}(mut?{mut <- `mut?`}, zt))] -[visit_exp fieldtype#19] -[visit_id fieldtype#19] -[visit_exp (`%%`_fieldtype{`mut?#679`, storagetype#443}(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype{`mut?#679`, storagetype#443}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#679`] -[visit_id mut?#679] -[visit_exp storagetype#443] -[visit_id storagetype#443] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -26614,28 +23911,18 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id mut?] [visit_exp zt] [visit_id zt] not free -[check_dims] C X*#6407 X*#6456 deftype*#44 elemidx#9 elemtype*#7 fieldtype#21 heaptype#821 i#6498 i#6508 localidx*#815 mut mut?#691 null?#817 resulttype#1355 rt storagetype#455 typeidx#434 typeidx#436 x y +[check_dims] C mut rt x y [visit_exp C] [visit_id C] -[visit_exp `ARRAY.NEW_ELEM`_instr{typeidx#434, elemidx#9}(x, y)] -[visit_exp typeidx#434] -[visit_id typeidx#434] -[visit_exp elemidx#9] -[visit_id elemidx#9] +[visit_exp `ARRAY.NEW_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp `%->_%%`_instrtype{resulttype#1355, `localidx*#815`}(`%`_resulttype{`X*#6407`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6456`}([`REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))]))] -[visit_exp resulttype#1355] -[visit_id resulttype#1355] -[visit_exp `localidx*#815`] -[visit_id localidx*#815] -[visit_exp (`%`_resulttype{`X*#6407`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6456`}([`REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))]))] -[visit_exp `%`_resulttype{`X*#6407`}([`I32`_valtype `I32`_valtype])] -[visit_exp `X*#6407`] -[visit_id X*#6407] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp (`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp `%`_resulttype([`I32`_valtype `I32`_valtype])] [visit_exp ([`I32`_valtype `I32`_valtype])] [visit_exp [`I32`_valtype `I32`_valtype]] [visit_exp `I32`_valtype] @@ -26643,46 +23930,28 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#6456`}([`REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))])] -[visit_exp `X*#6456`] -[visit_id X*#6456] -[visit_exp ([`REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))])] -[visit_exp [`REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))]] -[visit_exp `REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))] -[visit_exp `null?#817`] -[visit_id null?#817] -[visit_exp heaptype#821] -[visit_id heaptype#821] -[visit_exp (?(), `_IDX`_heaptype{typeidx#436}(x))] +[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] +[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] +[visit_exp (?(), `_IDX`_heaptype(x))] [visit_exp ?()] -[visit_exp `_IDX`_heaptype{typeidx#436}(x)] -[visit_exp typeidx#436] -[visit_id typeidx#436] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp (C.`TYPES`_context{`deftype*#44`}[x!`%`_idx{i#6498}.0], `ARRAY`_comptype{fieldtype#21}(`%%`_fieldtype{`mut?#691`, storagetype#455}(mut?{mut <- `mut?`}, (rt : reftype <: storagetype))))] -[visit_exp C.`TYPES`_context{`deftype*#44`}[x!`%`_idx{i#6498}.0]] -[visit_exp C.`TYPES`_context{`deftype*#44`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, (rt : reftype <: storagetype))))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#44`] -[visit_id deftype*#44] -[visit_exp x!`%`_idx{i#6498}.0] -[visit_exp x!`%`_idx{i#6498}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6498] -[visit_id i#6498] -[visit_exp `ARRAY`_comptype{fieldtype#21}(`%%`_fieldtype{`mut?#691`, storagetype#455}(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))] -[visit_exp fieldtype#21] -[visit_id fieldtype#21] -[visit_exp (`%%`_fieldtype{`mut?#691`, storagetype#455}(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))] -[visit_exp `%%`_fieldtype{`mut?#691`, storagetype#455}(mut?{mut <- `mut?`}, (rt : reftype <: storagetype))] -[visit_exp `mut?#691`] -[visit_id mut?#691] -[visit_exp storagetype#455] -[visit_id storagetype#455] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, (rt : reftype <: storagetype))] [visit_exp (mut?{mut <- `mut?`}, (rt : reftype <: storagetype))] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -26696,45 +23965,31 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp (rt : reftype <: storagetype)] [visit_exp rt] [visit_id rt] -[visit_exp (C, C.`ELEMS`_context{`elemtype*#7`}[y!`%`_idx{i#6508}.0], rt)] +[visit_exp (C, C.`ELEMS`_context[y!`%`_idx.0], rt)] [visit_exp C] [visit_id C] not free -[visit_exp C.`ELEMS`_context{`elemtype*#7`}[y!`%`_idx{i#6508}.0]] -[visit_exp C.`ELEMS`_context{`elemtype*#7`}] +[visit_exp C.`ELEMS`_context[y!`%`_idx.0]] +[visit_exp C.`ELEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `elemtype*#7`] -[visit_id elemtype*#7] -[visit_exp y!`%`_idx{i#6508}.0] -[visit_exp y!`%`_idx{i#6508}] +[visit_exp y!`%`_idx.0] +[visit_exp y!`%`_idx] [visit_exp y] [visit_id y] not free -[visit_exp i#6508] -[visit_id i#6508] [visit_exp rt] [visit_id rt] not free -[check_dims] C X*#6477 X*#6526 dataidx#9 datatype*#7 deftype*#45 fieldtype#23 heaptype#835 i#6560 i#6570 localidx*#827 mut mut?#703 null?#831 numtype resulttype#1375 storagetype#467 typeidx#438 typeidx#440 vectype x y zt +[check_dims] C mut numtype vectype x y zt [visit_exp C] [visit_id C] -[visit_exp `ARRAY.NEW_DATA`_instr{typeidx#438, dataidx#9}(x, y)] -[visit_exp typeidx#438] -[visit_id typeidx#438] -[visit_exp dataidx#9] -[visit_id dataidx#9] +[visit_exp `ARRAY.NEW_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp `%->_%%`_instrtype{resulttype#1375, `localidx*#827`}(`%`_resulttype{`X*#6477`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6526`}([`REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))]))] -[visit_exp resulttype#1375] -[visit_id resulttype#1375] -[visit_exp `localidx*#827`] -[visit_id localidx*#827] -[visit_exp (`%`_resulttype{`X*#6477`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6526`}([`REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))]))] -[visit_exp `%`_resulttype{`X*#6477`}([`I32`_valtype `I32`_valtype])] -[visit_exp `X*#6477`] -[visit_id X*#6477] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp (`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] +[visit_exp `%`_resulttype([`I32`_valtype `I32`_valtype])] [visit_exp ([`I32`_valtype `I32`_valtype])] [visit_exp [`I32`_valtype `I32`_valtype]] [visit_exp `I32`_valtype] @@ -26742,46 +23997,28 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#6526`}([`REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))])] -[visit_exp `X*#6526`] -[visit_id X*#6526] -[visit_exp ([`REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))])] -[visit_exp [`REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))]] -[visit_exp `REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))] -[visit_exp `null?#831`] -[visit_id null?#831] -[visit_exp heaptype#835] -[visit_id heaptype#835] -[visit_exp (?(), `_IDX`_heaptype{typeidx#440}(x))] +[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] +[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] +[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] +[visit_exp (?(), `_IDX`_heaptype(x))] [visit_exp ?()] -[visit_exp `_IDX`_heaptype{typeidx#440}(x)] -[visit_exp typeidx#440] -[visit_id typeidx#440] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp (C.`TYPES`_context{`deftype*#45`}[x!`%`_idx{i#6560}.0], `ARRAY`_comptype{fieldtype#23}(`%%`_fieldtype{`mut?#703`, storagetype#467}(mut?{mut <- `mut?`}, zt)))] -[visit_exp C.`TYPES`_context{`deftype*#45`}[x!`%`_idx{i#6560}.0]] -[visit_exp C.`TYPES`_context{`deftype*#45`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#45`] -[visit_id deftype*#45] -[visit_exp x!`%`_idx{i#6560}.0] -[visit_exp x!`%`_idx{i#6560}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6560] -[visit_id i#6560] -[visit_exp `ARRAY`_comptype{fieldtype#23}(`%%`_fieldtype{`mut?#703`, storagetype#467}(mut?{mut <- `mut?`}, zt))] -[visit_exp fieldtype#23] -[visit_id fieldtype#23] -[visit_exp (`%%`_fieldtype{`mut?#703`, storagetype#467}(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype{`mut?#703`, storagetype#467}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#703`] -[visit_id mut?#703] -[visit_exp storagetype#467] -[visit_id storagetype#467] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -26809,29 +24046,21 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp (vectype : vectype <: valtype)] [visit_exp vectype] [visit_id vectype] -[visit_exp (C.`DATAS`_context{`datatype*#7`}[y!`%`_idx{i#6570}.0] = `OK`_datatype)] -[visit_exp C.`DATAS`_context{`datatype*#7`}[y!`%`_idx{i#6570}.0]] -[visit_exp C.`DATAS`_context{`datatype*#7`}] +[visit_exp (C.`DATAS`_context[y!`%`_idx.0] = `OK`_datatype)] +[visit_exp C.`DATAS`_context[y!`%`_idx.0]] +[visit_exp C.`DATAS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `datatype*#7`] -[visit_id datatype*#7] -[visit_exp y!`%`_idx{i#6570}.0] -[visit_exp y!`%`_idx{i#6570}] +[visit_exp y!`%`_idx.0] +[visit_exp y!`%`_idx] [visit_exp y] [visit_id y] not free -[visit_exp i#6570] -[visit_id i#6570] [visit_exp `OK`_datatype] [visit_exp ()] -[check_dims] C X*#6547 X*#6596 deftype*#46 fieldtype#25 heaptype#837 i#6645 localidx*#839 mut mut?#715 null?#833 resulttype#1395 storagetype#479 sx sx?#9 typeidx#442 typeidx#444 x zt +[check_dims] C mut sx x zt [visit_exp C] [visit_id C] -[visit_exp `ARRAY.GET`_instr{`sx?#9`, typeidx#442}(sx?{sx <- `sx?`}, x)] -[visit_exp `sx?#9`] -[visit_id sx?#9] -[visit_exp typeidx#442] -[visit_id typeidx#442] +[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)] [visit_exp (sx?{sx <- `sx?`}, x)] [visit_exp sx?{sx <- `sx?`}] [scope_enter sx] @@ -26844,65 +24073,41 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id sx?] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1395, `localidx*#839`}(`%`_resulttype{`X*#6547`}([`REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x)) `I32`_valtype]), [], `%`_resulttype{`X*#6596`}([$unpack(zt)]))] -[visit_exp resulttype#1395] -[visit_id resulttype#1395] -[visit_exp `localidx*#839`] -[visit_id localidx*#839] -[visit_exp (`%`_resulttype{`X*#6547`}([`REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x)) `I32`_valtype]), [], `%`_resulttype{`X*#6596`}([$unpack(zt)]))] -[visit_exp `%`_resulttype{`X*#6547`}([`REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x)) `I32`_valtype])] -[visit_exp `X*#6547`] -[visit_id X*#6547] -[visit_exp ([`REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x)) `I32`_valtype])] -[visit_exp [`REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x)) `I32`_valtype]] -[visit_exp `REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x))] -[visit_exp `null?#833`] -[visit_id null?#833] -[visit_exp heaptype#837] -[visit_id heaptype#837] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x))] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype]), [], `%`_resulttype([$unpack(zt)]))] +[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype]), [], `%`_resulttype([$unpack(zt)]))] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype])] +[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype]] +[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] -[visit_exp `_IDX`_heaptype{typeidx#444}(x)] -[visit_exp typeidx#444] -[visit_id typeidx#444] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#6596`}([$unpack(zt)])] -[visit_exp `X*#6596`] -[visit_id X*#6596] +[visit_exp `%`_resulttype([$unpack(zt)])] [visit_exp ([$unpack(zt)])] [visit_exp [$unpack(zt)]] [visit_exp $unpack(zt)] [visit_exp zt] [visit_id zt] -[visit_exp (C.`TYPES`_context{`deftype*#46`}[x!`%`_idx{i#6645}.0], `ARRAY`_comptype{fieldtype#25}(`%%`_fieldtype{`mut?#715`, storagetype#479}(mut?{mut <- `mut?`}, zt)))] -[visit_exp C.`TYPES`_context{`deftype*#46`}[x!`%`_idx{i#6645}.0]] -[visit_exp C.`TYPES`_context{`deftype*#46`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#46`] -[visit_id deftype*#46] -[visit_exp x!`%`_idx{i#6645}.0] -[visit_exp x!`%`_idx{i#6645}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6645] -[visit_id i#6645] -[visit_exp `ARRAY`_comptype{fieldtype#25}(`%%`_fieldtype{`mut?#715`, storagetype#479}(mut?{mut <- `mut?`}, zt))] -[visit_exp fieldtype#25] -[visit_id fieldtype#25] -[visit_exp (`%%`_fieldtype{`mut?#715`, storagetype#479}(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype{`mut?#715`, storagetype#479}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#715`] -[visit_id mut?#715] -[visit_exp storagetype#479] -[visit_id storagetype#479] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -26930,38 +24135,24 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp $is_packtype(zt)] [visit_exp zt] [visit_id zt] not free -[check_dims] C X*#6617 X*#6666 deftype*#47 fieldtype#27 heaptype#839 i#6683 localidx*#851 mut?#727 null?#835 resulttype#1415 storagetype#491 typeidx#446 typeidx#448 x zt +[check_dims] C x zt [visit_exp C] [visit_id C] -[visit_exp `ARRAY.SET`_instr{typeidx#446}(x)] -[visit_exp typeidx#446] -[visit_id typeidx#446] +[visit_exp `ARRAY.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1415, `localidx*#851`}(`%`_resulttype{`X*#6617`}([`REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x)) `I32`_valtype $unpack(zt)]), [], `%`_resulttype{`X*#6666`}([]))] -[visit_exp resulttype#1415] -[visit_id resulttype#1415] -[visit_exp `localidx*#851`] -[visit_id localidx*#851] -[visit_exp (`%`_resulttype{`X*#6617`}([`REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x)) `I32`_valtype $unpack(zt)]), [], `%`_resulttype{`X*#6666`}([]))] -[visit_exp `%`_resulttype{`X*#6617`}([`REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x)) `I32`_valtype $unpack(zt)])] -[visit_exp `X*#6617`] -[visit_id X*#6617] -[visit_exp ([`REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x)) `I32`_valtype $unpack(zt)])] -[visit_exp [`REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x)) `I32`_valtype $unpack(zt)]] -[visit_exp `REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x))] -[visit_exp `null?#835`] -[visit_id null?#835] -[visit_exp heaptype#839] -[visit_id heaptype#839] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x))] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt)]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt)]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt)])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt)])] +[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt)]] +[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] -[visit_exp `_IDX`_heaptype{typeidx#448}(x)] -[visit_exp typeidx#448] -[visit_id typeidx#448] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free @@ -26971,60 +24162,38 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp zt] [visit_id zt] [visit_exp []] -[visit_exp `%`_resulttype{`X*#6666`}([])] -[visit_exp `X*#6666`] -[visit_id X*#6666] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`TYPES`_context{`deftype*#47`}[x!`%`_idx{i#6683}.0], `ARRAY`_comptype{fieldtype#27}(`%%`_fieldtype{`mut?#727`, storagetype#491}(?(`MUT`_mut), zt)))] -[visit_exp C.`TYPES`_context{`deftype*#47`}[x!`%`_idx{i#6683}.0]] -[visit_exp C.`TYPES`_context{`deftype*#47`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt)))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#47`] -[visit_id deftype*#47] -[visit_exp x!`%`_idx{i#6683}.0] -[visit_exp x!`%`_idx{i#6683}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6683] -[visit_id i#6683] -[visit_exp `ARRAY`_comptype{fieldtype#27}(`%%`_fieldtype{`mut?#727`, storagetype#491}(?(`MUT`_mut), zt))] -[visit_exp fieldtype#27] -[visit_id fieldtype#27] -[visit_exp (`%%`_fieldtype{`mut?#727`, storagetype#491}(?(`MUT`_mut), zt))] -[visit_exp `%%`_fieldtype{`mut?#727`, storagetype#491}(?(`MUT`_mut), zt)] -[visit_exp `mut?#727`] -[visit_id mut?#727] -[visit_exp storagetype#491] -[visit_id storagetype#491] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))] +[visit_exp (`%%`_fieldtype(?(`MUT`_mut), zt))] +[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt)] [visit_exp (?(`MUT`_mut), zt)] [visit_exp ?(`MUT`_mut)] [visit_exp `MUT`_mut] [visit_exp ()] [visit_exp zt] [visit_id zt] not free -[check_dims] C X*#6687 X*#6736 heaptype#841 localidx*#863 null?#837 resulttype#1435 +[check_dims] C [visit_exp C] [visit_id C] [visit_exp `ARRAY.LEN`_instr] [visit_exp ()] -[visit_exp `%->_%%`_instrtype{resulttype#1435, `localidx*#863`}(`%`_resulttype{`X*#6687`}([`REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)]), [], `%`_resulttype{`X*#6736`}([`I32`_valtype]))] -[visit_exp resulttype#1435] -[visit_id resulttype#1435] -[visit_exp `localidx*#863`] -[visit_id localidx*#863] -[visit_exp (`%`_resulttype{`X*#6687`}([`REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)]), [], `%`_resulttype{`X*#6736`}([`I32`_valtype]))] -[visit_exp `%`_resulttype{`X*#6687`}([`REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)])] -[visit_exp `X*#6687`] -[visit_id X*#6687] -[visit_exp ([`REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)])] -[visit_exp [`REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)]] -[visit_exp `REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)] -[visit_exp `null?#837`] -[visit_id null?#837] -[visit_exp heaptype#841] -[visit_id heaptype#841] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)])] +[visit_exp [`REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)]] +[visit_exp `REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)] [visit_exp (?(`NULL`_null), `ARRAY`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -27032,45 +24201,29 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `ARRAY`_heaptype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#6736`}([`I32`_valtype])] -[visit_exp `X*#6736`] -[visit_id X*#6736] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] [visit_exp ()] -[check_dims] C X*#6757 X*#6806 deftype*#48 fieldtype#29 heaptype#843 i#6721 localidx*#875 mut?#739 null?#839 resulttype#1455 storagetype#503 typeidx#450 typeidx#452 x zt +[check_dims] C x zt [visit_exp C] [visit_id C] -[visit_exp `ARRAY.FILL`_instr{typeidx#450}(x)] -[visit_exp typeidx#450] -[visit_id typeidx#450] +[visit_exp `ARRAY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1455, `localidx*#875`}(`%`_resulttype{`X*#6757`}([`REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x)) `I32`_valtype $unpack(zt) `I32`_valtype]), [], `%`_resulttype{`X*#6806`}([]))] -[visit_exp resulttype#1455] -[visit_id resulttype#1455] -[visit_exp `localidx*#875`] -[visit_id localidx*#875] -[visit_exp (`%`_resulttype{`X*#6757`}([`REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x)) `I32`_valtype $unpack(zt) `I32`_valtype]), [], `%`_resulttype{`X*#6806`}([]))] -[visit_exp `%`_resulttype{`X*#6757`}([`REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x)) `I32`_valtype $unpack(zt) `I32`_valtype])] -[visit_exp `X*#6757`] -[visit_id X*#6757] -[visit_exp ([`REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x)) `I32`_valtype $unpack(zt) `I32`_valtype])] -[visit_exp [`REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x)) `I32`_valtype $unpack(zt) `I32`_valtype]] -[visit_exp `REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x))] -[visit_exp `null?#839`] -[visit_id null?#839] -[visit_exp heaptype#843] -[visit_id heaptype#843] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x))] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt) `I32`_valtype]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt) `I32`_valtype]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt) `I32`_valtype])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt) `I32`_valtype])] +[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt) `I32`_valtype]] +[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] -[visit_exp `_IDX`_heaptype{typeidx#452}(x)] -[visit_exp typeidx#452] -[visit_id typeidx#452] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free @@ -27082,90 +24235,58 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#6806`}([])] -[visit_exp `X*#6806`] -[visit_id X*#6806] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`TYPES`_context{`deftype*#48`}[x!`%`_idx{i#6721}.0], `ARRAY`_comptype{fieldtype#29}(`%%`_fieldtype{`mut?#739`, storagetype#503}(?(`MUT`_mut), zt)))] -[visit_exp C.`TYPES`_context{`deftype*#48`}[x!`%`_idx{i#6721}.0]] -[visit_exp C.`TYPES`_context{`deftype*#48`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt)))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#48`] -[visit_id deftype*#48] -[visit_exp x!`%`_idx{i#6721}.0] -[visit_exp x!`%`_idx{i#6721}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6721] -[visit_id i#6721] -[visit_exp `ARRAY`_comptype{fieldtype#29}(`%%`_fieldtype{`mut?#739`, storagetype#503}(?(`MUT`_mut), zt))] -[visit_exp fieldtype#29] -[visit_id fieldtype#29] -[visit_exp (`%%`_fieldtype{`mut?#739`, storagetype#503}(?(`MUT`_mut), zt))] -[visit_exp `%%`_fieldtype{`mut?#739`, storagetype#503}(?(`MUT`_mut), zt)] -[visit_exp `mut?#739`] -[visit_id mut?#739] -[visit_exp storagetype#503] -[visit_id storagetype#503] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))] +[visit_exp (`%%`_fieldtype(?(`MUT`_mut), zt))] +[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt)] [visit_exp (?(`MUT`_mut), zt)] [visit_exp ?(`MUT`_mut)] [visit_exp `MUT`_mut] [visit_exp ()] [visit_exp zt] [visit_id zt] not free -[check_dims] C X*#6827 X*#6876 deftype*#49 deftype*#50 fieldtype#31 fieldtype#33 heaptype#845 heaptype#847 i#6787 i#6797 localidx*#887 mut mut?#751 mut?#763 null?#841 null?#843 resulttype#1475 storagetype#515 storagetype#527 typeidx#454 typeidx#457 typeidx#459 x_1 x_2 zt_1 zt_2 +[check_dims] C mut x_1 x_2 zt_1 zt_2 [visit_exp C] [visit_id C] -[visit_exp `ARRAY.COPY`_instr{typeidx#454}(x_1, x_2)] -[visit_exp typeidx#454] -[visit_id typeidx#454] +[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] [visit_exp x_2] [visit_id x_2] -[visit_exp `%->_%%`_instrtype{resulttype#1475, `localidx*#887`}(`%`_resulttype{`X*#6827`}([`REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1)) `I32`_valtype `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2)) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6876`}([]))] -[visit_exp resulttype#1475] -[visit_id resulttype#1475] -[visit_exp `localidx*#887`] -[visit_id localidx*#887] -[visit_exp (`%`_resulttype{`X*#6827`}([`REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1)) `I32`_valtype `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2)) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6876`}([]))] -[visit_exp `%`_resulttype{`X*#6827`}([`REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1)) `I32`_valtype `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2)) `I32`_valtype `I32`_valtype])] -[visit_exp `X*#6827`] -[visit_id X*#6827] -[visit_exp ([`REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1)) `I32`_valtype `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2)) `I32`_valtype `I32`_valtype])] -[visit_exp [`REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1)) `I32`_valtype `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2)) `I32`_valtype `I32`_valtype]] -[visit_exp `REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1))] -[visit_exp `null?#841`] -[visit_id null?#841] -[visit_exp heaptype#845] -[visit_id heaptype#845] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1))] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1)) `I32`_valtype `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2)) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1)) `I32`_valtype `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2)) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1)) `I32`_valtype `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2)) `I32`_valtype `I32`_valtype])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1)) `I32`_valtype `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2)) `I32`_valtype `I32`_valtype])] +[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1)) `I32`_valtype `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2)) `I32`_valtype `I32`_valtype]] +[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1))] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x_1))] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] -[visit_exp `_IDX`_heaptype{typeidx#457}(x_1)] -[visit_exp typeidx#457] -[visit_id typeidx#457] +[visit_exp `_IDX`_heaptype(x_1)] [visit_exp (x_1)] [visit_exp x_1] [visit_id x_1] not free [visit_exp `I32`_valtype] [visit_exp ()] -[visit_exp `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2))] -[visit_exp `null?#843`] -[visit_id null?#843] -[visit_exp heaptype#847] -[visit_id heaptype#847] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2))] +[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2))] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x_2))] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] -[visit_exp `_IDX`_heaptype{typeidx#459}(x_2)] -[visit_exp typeidx#459] -[visit_id typeidx#459] +[visit_exp `_IDX`_heaptype(x_2)] [visit_exp (x_2)] [visit_exp x_2] [visit_id x_2] not free @@ -27174,61 +24295,39 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#6876`}([])] -[visit_exp `X*#6876`] -[visit_id X*#6876] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`TYPES`_context{`deftype*#49`}[x_1!`%`_idx{i#6787}.0], `ARRAY`_comptype{fieldtype#31}(`%%`_fieldtype{`mut?#751`, storagetype#515}(?(`MUT`_mut), zt_1)))] -[visit_exp C.`TYPES`_context{`deftype*#49`}[x_1!`%`_idx{i#6787}.0]] -[visit_exp C.`TYPES`_context{`deftype*#49`}] +[visit_exp (C.`TYPES`_context[x_1!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt_1)))] +[visit_exp C.`TYPES`_context[x_1!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#49`] -[visit_id deftype*#49] -[visit_exp x_1!`%`_idx{i#6787}.0] -[visit_exp x_1!`%`_idx{i#6787}] +[visit_exp x_1!`%`_idx.0] +[visit_exp x_1!`%`_idx] [visit_exp x_1] [visit_id x_1] not free -[visit_exp i#6787] -[visit_id i#6787] -[visit_exp `ARRAY`_comptype{fieldtype#31}(`%%`_fieldtype{`mut?#751`, storagetype#515}(?(`MUT`_mut), zt_1))] -[visit_exp fieldtype#31] -[visit_id fieldtype#31] -[visit_exp (`%%`_fieldtype{`mut?#751`, storagetype#515}(?(`MUT`_mut), zt_1))] -[visit_exp `%%`_fieldtype{`mut?#751`, storagetype#515}(?(`MUT`_mut), zt_1)] -[visit_exp `mut?#751`] -[visit_id mut?#751] -[visit_exp storagetype#515] -[visit_id storagetype#515] +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt_1))] +[visit_exp (`%%`_fieldtype(?(`MUT`_mut), zt_1))] +[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt_1)] [visit_exp (?(`MUT`_mut), zt_1)] [visit_exp ?(`MUT`_mut)] [visit_exp `MUT`_mut] [visit_exp ()] [visit_exp zt_1] [visit_id zt_1] -[visit_exp (C.`TYPES`_context{`deftype*#50`}[x_2!`%`_idx{i#6797}.0], `ARRAY`_comptype{fieldtype#33}(`%%`_fieldtype{`mut?#763`, storagetype#527}(mut?{mut <- `mut?`}, zt_2)))] -[visit_exp C.`TYPES`_context{`deftype*#50`}[x_2!`%`_idx{i#6797}.0]] -[visit_exp C.`TYPES`_context{`deftype*#50`}] +[visit_exp (C.`TYPES`_context[x_2!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2)))] +[visit_exp C.`TYPES`_context[x_2!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#50`] -[visit_id deftype*#50] -[visit_exp x_2!`%`_idx{i#6797}.0] -[visit_exp x_2!`%`_idx{i#6797}] +[visit_exp x_2!`%`_idx.0] +[visit_exp x_2!`%`_idx] [visit_exp x_2] [visit_id x_2] not free -[visit_exp i#6797] -[visit_id i#6797] -[visit_exp `ARRAY`_comptype{fieldtype#33}(`%%`_fieldtype{`mut?#763`, storagetype#527}(mut?{mut <- `mut?`}, zt_2))] -[visit_exp fieldtype#33] -[visit_id fieldtype#33] -[visit_exp (`%%`_fieldtype{`mut?#763`, storagetype#527}(mut?{mut <- `mut?`}, zt_2))] -[visit_exp `%%`_fieldtype{`mut?#763`, storagetype#527}(mut?{mut <- `mut?`}, zt_2)] -[visit_exp `mut?#763`] -[visit_id mut?#763] -[visit_exp storagetype#527] -[visit_id storagetype#527] +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt_2)] [visit_exp (mut?{mut <- `mut?`}, zt_2)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -27248,42 +24347,26 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id zt_2] not free [visit_exp zt_1] [visit_id zt_1] not free -[check_dims] C X*#6897 X*#6946 deftype*#51 elemidx#11 elemtype*#8 fieldtype#35 heaptype#849 i#6849 i#6859 localidx*#899 mut?#775 null?#845 resulttype#1495 storagetype#539 typeidx#461 typeidx#463 x y zt +[check_dims] C x y zt [visit_exp C] [visit_id C] -[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#461, elemidx#11}(x, y)] -[visit_exp typeidx#461] -[visit_id typeidx#461] -[visit_exp elemidx#11] -[visit_id elemidx#11] +[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp `%->_%%`_instrtype{resulttype#1495, `localidx*#899`}(`%`_resulttype{`X*#6897`}([`REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6946`}([]))] -[visit_exp resulttype#1495] -[visit_id resulttype#1495] -[visit_exp `localidx*#899`] -[visit_id localidx*#899] -[visit_exp (`%`_resulttype{`X*#6897`}([`REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6946`}([]))] -[visit_exp `%`_resulttype{`X*#6897`}([`REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] -[visit_exp `X*#6897`] -[visit_id X*#6897] -[visit_exp ([`REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] -[visit_exp [`REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]] -[visit_exp `REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x))] -[visit_exp `null?#845`] -[visit_id null?#845] -[visit_exp heaptype#849] -[visit_id heaptype#849] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x))] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] +[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]] +[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] -[visit_exp `_IDX`_heaptype{typeidx#463}(x)] -[visit_exp typeidx#463] -[visit_id typeidx#463] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free @@ -27294,93 +24377,61 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#6946`}([])] -[visit_exp `X*#6946`] -[visit_id X*#6946] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`TYPES`_context{`deftype*#51`}[x!`%`_idx{i#6849}.0], `ARRAY`_comptype{fieldtype#35}(`%%`_fieldtype{`mut?#775`, storagetype#539}(?(`MUT`_mut), zt)))] -[visit_exp C.`TYPES`_context{`deftype*#51`}[x!`%`_idx{i#6849}.0]] -[visit_exp C.`TYPES`_context{`deftype*#51`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt)))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#51`] -[visit_id deftype*#51] -[visit_exp x!`%`_idx{i#6849}.0] -[visit_exp x!`%`_idx{i#6849}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6849] -[visit_id i#6849] -[visit_exp `ARRAY`_comptype{fieldtype#35}(`%%`_fieldtype{`mut?#775`, storagetype#539}(?(`MUT`_mut), zt))] -[visit_exp fieldtype#35] -[visit_id fieldtype#35] -[visit_exp (`%%`_fieldtype{`mut?#775`, storagetype#539}(?(`MUT`_mut), zt))] -[visit_exp `%%`_fieldtype{`mut?#775`, storagetype#539}(?(`MUT`_mut), zt)] -[visit_exp `mut?#775`] -[visit_id mut?#775] -[visit_exp storagetype#539] -[visit_id storagetype#539] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))] +[visit_exp (`%%`_fieldtype(?(`MUT`_mut), zt))] +[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt)] [visit_exp (?(`MUT`_mut), zt)] [visit_exp ?(`MUT`_mut)] [visit_exp `MUT`_mut] [visit_exp ()] [visit_exp zt] [visit_id zt] -[visit_exp (C, (C.`ELEMS`_context{`elemtype*#8`}[y!`%`_idx{i#6859}.0] : reftype <: storagetype), zt)] +[visit_exp (C, (C.`ELEMS`_context[y!`%`_idx.0] : reftype <: storagetype), zt)] [visit_exp C] [visit_id C] not free -[visit_exp (C.`ELEMS`_context{`elemtype*#8`}[y!`%`_idx{i#6859}.0] : reftype <: storagetype)] -[visit_exp C.`ELEMS`_context{`elemtype*#8`}[y!`%`_idx{i#6859}.0]] -[visit_exp C.`ELEMS`_context{`elemtype*#8`}] +[visit_exp (C.`ELEMS`_context[y!`%`_idx.0] : reftype <: storagetype)] +[visit_exp C.`ELEMS`_context[y!`%`_idx.0]] +[visit_exp C.`ELEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `elemtype*#8`] -[visit_id elemtype*#8] -[visit_exp y!`%`_idx{i#6859}.0] -[visit_exp y!`%`_idx{i#6859}] +[visit_exp y!`%`_idx.0] +[visit_exp y!`%`_idx] [visit_exp y] [visit_id y] not free -[visit_exp i#6859] -[visit_id i#6859] [visit_exp zt] [visit_id zt] not free -[check_dims] C X*#6967 X*#7016 dataidx#11 datatype*#8 deftype*#52 fieldtype#37 heaptype#851 i#6911 i#6921 localidx*#911 mut?#787 null?#847 numtype resulttype#1515 storagetype#551 typeidx#465 typeidx#467 vectype x y zt +[check_dims] C numtype vectype x y zt [visit_exp C] [visit_id C] -[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#465, dataidx#11}(x, y)] -[visit_exp typeidx#465] -[visit_id typeidx#465] -[visit_exp dataidx#11] -[visit_id dataidx#11] +[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp `%->_%%`_instrtype{resulttype#1515, `localidx*#911`}(`%`_resulttype{`X*#6967`}([`REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#7016`}([]))] -[visit_exp resulttype#1515] -[visit_id resulttype#1515] -[visit_exp `localidx*#911`] -[visit_id localidx*#911] -[visit_exp (`%`_resulttype{`X*#6967`}([`REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#7016`}([]))] -[visit_exp `%`_resulttype{`X*#6967`}([`REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] -[visit_exp `X*#6967`] -[visit_id X*#6967] -[visit_exp ([`REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] -[visit_exp [`REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]] -[visit_exp `REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x))] -[visit_exp `null?#847`] -[visit_id null?#847] -[visit_exp heaptype#851] -[visit_id heaptype#851] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x))] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] +[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] +[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]] +[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] +[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] -[visit_exp `_IDX`_heaptype{typeidx#467}(x)] -[visit_exp typeidx#467] -[visit_id typeidx#467] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free @@ -27391,33 +24442,21 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#7016`}([])] -[visit_exp `X*#7016`] -[visit_id X*#7016] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`TYPES`_context{`deftype*#52`}[x!`%`_idx{i#6911}.0], `ARRAY`_comptype{fieldtype#37}(`%%`_fieldtype{`mut?#787`, storagetype#551}(?(`MUT`_mut), zt)))] -[visit_exp C.`TYPES`_context{`deftype*#52`}[x!`%`_idx{i#6911}.0]] -[visit_exp C.`TYPES`_context{`deftype*#52`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt)))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#52`] -[visit_id deftype*#52] -[visit_exp x!`%`_idx{i#6911}.0] -[visit_exp x!`%`_idx{i#6911}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6911] -[visit_id i#6911] -[visit_exp `ARRAY`_comptype{fieldtype#37}(`%%`_fieldtype{`mut?#787`, storagetype#551}(?(`MUT`_mut), zt))] -[visit_exp fieldtype#37] -[visit_id fieldtype#37] -[visit_exp (`%%`_fieldtype{`mut?#787`, storagetype#551}(?(`MUT`_mut), zt))] -[visit_exp `%%`_fieldtype{`mut?#787`, storagetype#551}(?(`MUT`_mut), zt)] -[visit_exp `mut?#787`] -[visit_id mut?#787] -[visit_exp storagetype#551] -[visit_id storagetype#551] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))] +[visit_exp (`%%`_fieldtype(?(`MUT`_mut), zt))] +[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt)] [visit_exp (?(`MUT`_mut), zt)] [visit_exp ?(`MUT`_mut)] [visit_exp `MUT`_mut] @@ -27439,42 +24478,28 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp (vectype : vectype <: valtype)] [visit_exp vectype] [visit_id vectype] -[visit_exp (C.`DATAS`_context{`datatype*#8`}[y!`%`_idx{i#6921}.0] = `OK`_datatype)] -[visit_exp C.`DATAS`_context{`datatype*#8`}[y!`%`_idx{i#6921}.0]] -[visit_exp C.`DATAS`_context{`datatype*#8`}] +[visit_exp (C.`DATAS`_context[y!`%`_idx.0] = `OK`_datatype)] +[visit_exp C.`DATAS`_context[y!`%`_idx.0]] +[visit_exp C.`DATAS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `datatype*#8`] -[visit_id datatype*#8] -[visit_exp y!`%`_idx{i#6921}.0] -[visit_exp y!`%`_idx{i#6921}] +[visit_exp y!`%`_idx.0] +[visit_exp y!`%`_idx] [visit_exp y] [visit_id y] not free -[visit_exp i#6921] -[visit_id i#6921] [visit_exp `OK`_datatype] [visit_exp ()] -[check_dims] C X*#7037 X*#7086 heaptype#853 heaptype#855 localidx*#923 null?#849 null?#851 null_1 null_2 resulttype#1535 +[check_dims] C null_1 null_2 [visit_exp C] [visit_id C] [visit_exp `EXTERN.CONVERT_ANY`_instr] [visit_exp ()] -[visit_exp `%->_%%`_instrtype{resulttype#1535, `localidx*#923`}(`%`_resulttype{`X*#7037`}([`REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]), [], `%`_resulttype{`X*#7086`}([`REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]))] -[visit_exp resulttype#1535] -[visit_id resulttype#1535] -[visit_exp `localidx*#923`] -[visit_id localidx*#923] -[visit_exp (`%`_resulttype{`X*#7037`}([`REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]), [], `%`_resulttype{`X*#7086`}([`REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]))] -[visit_exp `%`_resulttype{`X*#7037`}([`REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)])] -[visit_exp `X*#7037`] -[visit_id X*#7037] -[visit_exp ([`REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)])] -[visit_exp [`REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]] -[visit_exp `REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)] -[visit_exp `null?#849`] -[visit_id null?#849] -[visit_exp heaptype#853] -[visit_id heaptype#853] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]), [], `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]))] +[visit_exp (`%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]), [], `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]))] +[visit_exp `%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)])] +[visit_exp ([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)])] +[visit_exp [`REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]] +[visit_exp `REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)] [visit_exp (null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)] [visit_exp null_1?{null_1 <- `null_1?`}] [scope_enter null_1] @@ -27488,16 +24513,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `ANY`_heaptype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#7086`}([`REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)])] -[visit_exp `X*#7086`] -[visit_id X*#7086] -[visit_exp ([`REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)])] -[visit_exp [`REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]] -[visit_exp `REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)] -[visit_exp `null?#851`] -[visit_id null?#851] -[visit_exp heaptype#855] -[visit_id heaptype#855] +[visit_exp `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)])] +[visit_exp ([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)])] +[visit_exp [`REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]] +[visit_exp `REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)] [visit_exp (null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)] [visit_exp null_2?{null_2 <- `null_2?`}] [scope_enter null_2] @@ -27529,27 +24548,17 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `null_2?`] [visit_id null_2?] not free [visit_id null_2?] no dims -[check_dims] C X*#7107 X*#7156 heaptype#857 heaptype#859 localidx*#935 null?#853 null?#855 null_1 null_2 resulttype#1555 +[check_dims] C null_1 null_2 [visit_exp C] [visit_id C] [visit_exp `ANY.CONVERT_EXTERN`_instr] [visit_exp ()] -[visit_exp `%->_%%`_instrtype{resulttype#1555, `localidx*#935`}(`%`_resulttype{`X*#7107`}([`REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]), [], `%`_resulttype{`X*#7156`}([`REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]))] -[visit_exp resulttype#1555] -[visit_id resulttype#1555] -[visit_exp `localidx*#935`] -[visit_id localidx*#935] -[visit_exp (`%`_resulttype{`X*#7107`}([`REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]), [], `%`_resulttype{`X*#7156`}([`REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]))] -[visit_exp `%`_resulttype{`X*#7107`}([`REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)])] -[visit_exp `X*#7107`] -[visit_id X*#7107] -[visit_exp ([`REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)])] -[visit_exp [`REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]] -[visit_exp `REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)] -[visit_exp `null?#853`] -[visit_id null?#853] -[visit_exp heaptype#857] -[visit_id heaptype#857] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]), [], `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]))] +[visit_exp (`%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]), [], `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]))] +[visit_exp `%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)])] +[visit_exp ([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)])] +[visit_exp [`REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]] +[visit_exp `REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)] [visit_exp (null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)] [visit_exp null_1?{null_1 <- `null_1?`}] [scope_enter null_1] @@ -27563,16 +24572,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `EXTERN`_heaptype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#7156`}([`REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)])] -[visit_exp `X*#7156`] -[visit_id X*#7156] -[visit_exp ([`REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)])] -[visit_exp [`REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]] -[visit_exp `REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)] -[visit_exp `null?#855`] -[visit_id null?#855] -[visit_exp heaptype#859] -[visit_id heaptype#859] +[visit_exp `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)])] +[visit_exp ([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)])] +[visit_exp [`REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]] +[visit_exp `REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)] [visit_exp (null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)] [visit_exp null_2?{null_2 <- `null_2?`}] [scope_enter null_2] @@ -27604,75 +24607,49 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `null_2?`] [visit_id null_2?] not free [visit_id null_2?] no dims -[check_dims] C X*#7177 X*#7226 i#6945 init#77 localidx#7 localidx*#947 localtype*#10 resulttype#1575 t valtype#343 x +[check_dims] C t x [visit_exp C] [visit_id C] -[visit_exp `LOCAL.GET`_instr{localidx#7}(x)] -[visit_exp localidx#7] -[visit_id localidx#7] +[visit_exp `LOCAL.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1575, `localidx*#947`}(`%`_resulttype{`X*#7177`}([]), [], `%`_resulttype{`X*#7226`}([t]))] -[visit_exp resulttype#1575] -[visit_id resulttype#1575] -[visit_exp `localidx*#947`] -[visit_id localidx*#947] -[visit_exp (`%`_resulttype{`X*#7177`}([]), [], `%`_resulttype{`X*#7226`}([t]))] -[visit_exp `%`_resulttype{`X*#7177`}([])] -[visit_exp `X*#7177`] -[visit_id X*#7177] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([t]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#7226`}([t])] -[visit_exp `X*#7226`] -[visit_id X*#7226] +[visit_exp `%`_resulttype([t])] [visit_exp ([t])] [visit_exp [t]] [visit_exp t] [visit_id t] -[visit_exp (C.`LOCALS`_context{`localtype*#10`}[x!`%`_idx{i#6945}.0] = `%%`_localtype{init#77, valtype#343}(`SET`_init, t))] -[visit_exp C.`LOCALS`_context{`localtype*#10`}[x!`%`_idx{i#6945}.0]] -[visit_exp C.`LOCALS`_context{`localtype*#10`}] +[visit_exp (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(`SET`_init, t))] +[visit_exp C.`LOCALS`_context[x!`%`_idx.0]] +[visit_exp C.`LOCALS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `localtype*#10`] -[visit_id localtype*#10] -[visit_exp x!`%`_idx{i#6945}.0] -[visit_exp x!`%`_idx{i#6945}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#6945] -[visit_id i#6945] -[visit_exp `%%`_localtype{init#77, valtype#343}(`SET`_init, t)] -[visit_exp init#77] -[visit_id init#77] -[visit_exp valtype#343] -[visit_id valtype#343] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%`_localtype(`SET`_init, t)] [visit_exp (`SET`_init, t)] [visit_exp `SET`_init] [visit_exp ()] [visit_exp t] [visit_id t] not free -[check_dims] C X*#7237 X*#7334 i#7182 init init#89 localidx#9 localidx*#959 localtype*#11 resulttype#1595 t valtype#355 x +[check_dims] C init t x [visit_exp C] [visit_id C] -[visit_exp `LOCAL.SET`_instr{localidx#9}(x)] -[visit_exp localidx#9] -[visit_id localidx#9] +[visit_exp `LOCAL.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1595, `localidx*#959`}(`%`_resulttype{`X*#7237`}([t]), [x], `%`_resulttype{`X*#7334`}([]))] -[visit_exp resulttype#1595] -[visit_id resulttype#1595] -[visit_exp `localidx*#959`] -[visit_id localidx*#959] -[visit_exp (`%`_resulttype{`X*#7237`}([t]), [x], `%`_resulttype{`X*#7334`}([]))] -[visit_exp `%`_resulttype{`X*#7237`}([t])] -[visit_exp `X*#7237`] -[visit_id X*#7237] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([t]), [x], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([t]), [x], `%`_resulttype([]))] +[visit_exp `%`_resulttype([t])] [visit_exp ([t])] [visit_exp [t]] [visit_exp t] @@ -27680,52 +24657,34 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp [x]] [visit_exp x] [visit_id x] not free -[visit_exp `%`_resulttype{`X*#7334`}([])] -[visit_exp `X*#7334`] -[visit_id X*#7334] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`LOCALS`_context{`localtype*#11`}[x!`%`_idx{i#7182}.0] = `%%`_localtype{init#89, valtype#355}(init, t))] -[visit_exp C.`LOCALS`_context{`localtype*#11`}[x!`%`_idx{i#7182}.0]] -[visit_exp C.`LOCALS`_context{`localtype*#11`}] +[visit_exp (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(init, t))] +[visit_exp C.`LOCALS`_context[x!`%`_idx.0]] +[visit_exp C.`LOCALS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `localtype*#11`] -[visit_id localtype*#11] -[visit_exp x!`%`_idx{i#7182}.0] -[visit_exp x!`%`_idx{i#7182}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7182] -[visit_id i#7182] -[visit_exp `%%`_localtype{init#89, valtype#355}(init, t)] -[visit_exp init#89] -[visit_id init#89] -[visit_exp valtype#355] -[visit_id valtype#355] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%`_localtype(init, t)] [visit_exp (init, t)] [visit_exp init] [visit_id init] [visit_exp t] [visit_id t] not free -[check_dims] C X*#7345 X*#7432 i#7419 init init#101 localidx#11 localidx*#971 localtype*#12 resulttype#1615 t valtype#367 x +[check_dims] C init t x [visit_exp C] [visit_id C] -[visit_exp `LOCAL.TEE`_instr{localidx#11}(x)] -[visit_exp localidx#11] -[visit_id localidx#11] +[visit_exp `LOCAL.TEE`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1615, `localidx*#971`}(`%`_resulttype{`X*#7345`}([t]), [x], `%`_resulttype{`X*#7432`}([t]))] -[visit_exp resulttype#1615] -[visit_id resulttype#1615] -[visit_exp `localidx*#971`] -[visit_id localidx*#971] -[visit_exp (`%`_resulttype{`X*#7345`}([t]), [x], `%`_resulttype{`X*#7432`}([t]))] -[visit_exp `%`_resulttype{`X*#7345`}([t])] -[visit_exp `X*#7345`] -[visit_id X*#7345] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([t]), [x], `%`_resulttype([t]))] +[visit_exp (`%`_resulttype([t]), [x], `%`_resulttype([t]))] +[visit_exp `%`_resulttype([t])] [visit_exp ([t])] [visit_exp [t]] [visit_exp t] @@ -27733,82 +24692,54 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp [x]] [visit_exp x] [visit_id x] not free -[visit_exp `%`_resulttype{`X*#7432`}([t])] -[visit_exp `X*#7432`] -[visit_id X*#7432] +[visit_exp `%`_resulttype([t])] [visit_exp ([t])] [visit_exp [t]] [visit_exp t] [visit_id t] not free -[visit_exp (C.`LOCALS`_context{`localtype*#12`}[x!`%`_idx{i#7419}.0] = `%%`_localtype{init#101, valtype#367}(init, t))] -[visit_exp C.`LOCALS`_context{`localtype*#12`}[x!`%`_idx{i#7419}.0]] -[visit_exp C.`LOCALS`_context{`localtype*#12`}] +[visit_exp (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(init, t))] +[visit_exp C.`LOCALS`_context[x!`%`_idx.0]] +[visit_exp C.`LOCALS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `localtype*#12`] -[visit_id localtype*#12] -[visit_exp x!`%`_idx{i#7419}.0] -[visit_exp x!`%`_idx{i#7419}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7419] -[visit_id i#7419] -[visit_exp `%%`_localtype{init#101, valtype#367}(init, t)] -[visit_exp init#101] -[visit_id init#101] -[visit_exp valtype#367] -[visit_id valtype#367] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%`_localtype(init, t)] [visit_exp (init, t)] [visit_exp init] [visit_id init] [visit_exp t] [visit_id t] not free -[check_dims] C X*#7472 X*#7521 globalidx#9 globaltype*#7 i#7443 localidx*#983 mut mut?#799 resulttype#1635 t valtype#379 x +[check_dims] C mut t x [visit_exp C] [visit_id C] -[visit_exp `GLOBAL.GET`_instr{globalidx#9}(x)] -[visit_exp globalidx#9] -[visit_id globalidx#9] +[visit_exp `GLOBAL.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1635, `localidx*#983`}(`%`_resulttype{`X*#7472`}([]), [], `%`_resulttype{`X*#7521`}([t]))] -[visit_exp resulttype#1635] -[visit_id resulttype#1635] -[visit_exp `localidx*#983`] -[visit_id localidx*#983] -[visit_exp (`%`_resulttype{`X*#7472`}([]), [], `%`_resulttype{`X*#7521`}([t]))] -[visit_exp `%`_resulttype{`X*#7472`}([])] -[visit_exp `X*#7472`] -[visit_id X*#7472] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([t]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#7521`}([t])] -[visit_exp `X*#7521`] -[visit_id X*#7521] +[visit_exp `%`_resulttype([t])] [visit_exp ([t])] [visit_exp [t]] [visit_exp t] [visit_id t] -[visit_exp (C.`GLOBALS`_context{`globaltype*#7`}[x!`%`_idx{i#7443}.0] = `%%`_globaltype{`mut?#799`, valtype#379}(mut?{mut <- `mut?`}, t))] -[visit_exp C.`GLOBALS`_context{`globaltype*#7`}[x!`%`_idx{i#7443}.0]] -[visit_exp C.`GLOBALS`_context{`globaltype*#7`}] +[visit_exp (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(mut?{mut <- `mut?`}, t))] +[visit_exp C.`GLOBALS`_context[x!`%`_idx.0]] +[visit_exp C.`GLOBALS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `globaltype*#7`] -[visit_id globaltype*#7] -[visit_exp x!`%`_idx{i#7443}.0] -[visit_exp x!`%`_idx{i#7443}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7443] -[visit_id i#7443] -[visit_exp `%%`_globaltype{`mut?#799`, valtype#379}(mut?{mut <- `mut?`}, t)] -[visit_exp `mut?#799`] -[visit_id mut?#799] -[visit_exp valtype#379] -[visit_id valtype#379] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%`_globaltype(mut?{mut <- `mut?`}, t)] [visit_exp (mut?{mut <- `mut?`}, t)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -27821,110 +24752,72 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id mut?] [visit_exp t] [visit_id t] not free -[check_dims] C X*#7532 X*#7600 globalidx#11 globaltype*#8 i#7467 localidx*#995 mut?#811 resulttype#1655 t valtype#391 x +[check_dims] C t x [visit_exp C] [visit_id C] -[visit_exp `GLOBAL.SET`_instr{globalidx#11}(x)] -[visit_exp globalidx#11] -[visit_id globalidx#11] +[visit_exp `GLOBAL.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1655, `localidx*#995`}(`%`_resulttype{`X*#7532`}([t]), [], `%`_resulttype{`X*#7600`}([]))] -[visit_exp resulttype#1655] -[visit_id resulttype#1655] -[visit_exp `localidx*#995`] -[visit_id localidx*#995] -[visit_exp (`%`_resulttype{`X*#7532`}([t]), [], `%`_resulttype{`X*#7600`}([]))] -[visit_exp `%`_resulttype{`X*#7532`}([t])] -[visit_exp `X*#7532`] -[visit_id X*#7532] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([t]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([t]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([t])] [visit_exp ([t])] [visit_exp [t]] [visit_exp t] [visit_id t] [visit_exp []] -[visit_exp `%`_resulttype{`X*#7600`}([])] -[visit_exp `X*#7600`] -[visit_id X*#7600] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`GLOBALS`_context{`globaltype*#8`}[x!`%`_idx{i#7467}.0] = `%%`_globaltype{`mut?#811`, valtype#391}(?(`MUT`_mut), t))] -[visit_exp C.`GLOBALS`_context{`globaltype*#8`}[x!`%`_idx{i#7467}.0]] -[visit_exp C.`GLOBALS`_context{`globaltype*#8`}] +[visit_exp (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(?(`MUT`_mut), t))] +[visit_exp C.`GLOBALS`_context[x!`%`_idx.0]] +[visit_exp C.`GLOBALS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `globaltype*#8`] -[visit_id globaltype*#8] -[visit_exp x!`%`_idx{i#7467}.0] -[visit_exp x!`%`_idx{i#7467}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7467] -[visit_id i#7467] -[visit_exp `%%`_globaltype{`mut?#811`, valtype#391}(?(`MUT`_mut), t)] -[visit_exp `mut?#811`] -[visit_id mut?#811] -[visit_exp valtype#391] -[visit_id valtype#391] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%`_globaltype(?(`MUT`_mut), t)] [visit_exp (?(`MUT`_mut), t)] [visit_exp ?(`MUT`_mut)] [visit_exp `MUT`_mut] [visit_exp ()] [visit_exp t] [visit_id t] not free -[check_dims] C X*#7611 X*#7679 addrtype#465 at i#7491 lim limits#465 localidx*#1007 reftype#417 resulttype#1675 rt tableidx#30 tabletype*#9 x +[check_dims] C at lim rt x [visit_exp C] [visit_id C] -[visit_exp `TABLE.GET`_instr{tableidx#30}(x)] -[visit_exp tableidx#30] -[visit_id tableidx#30] +[visit_exp `TABLE.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1675, `localidx*#1007`}(`%`_resulttype{`X*#7611`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7679`}([(rt : reftype <: valtype)]))] -[visit_exp resulttype#1675] -[visit_id resulttype#1675] -[visit_exp `localidx*#1007`] -[visit_id localidx*#1007] -[visit_exp (`%`_resulttype{`X*#7611`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7679`}([(rt : reftype <: valtype)]))] -[visit_exp `%`_resulttype{`X*#7611`}([(at : addrtype <: valtype)])] -[visit_exp `X*#7611`] -[visit_id X*#7611] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype)])] [visit_exp [(at : addrtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] [visit_exp at] [visit_id at] [visit_exp []] -[visit_exp `%`_resulttype{`X*#7679`}([(rt : reftype <: valtype)])] -[visit_exp `X*#7679`] -[visit_id X*#7679] +[visit_exp `%`_resulttype([(rt : reftype <: valtype)])] [visit_exp ([(rt : reftype <: valtype)])] [visit_exp [(rt : reftype <: valtype)]] [visit_exp (rt : reftype <: valtype)] [visit_exp rt] [visit_id rt] -[visit_exp (C.`TABLES`_context{`tabletype*#9`}[x!`%`_idx{i#7491}.0] = `%%%`_tabletype{addrtype#465, limits#465, reftype#417}(at, lim, rt))] -[visit_exp C.`TABLES`_context{`tabletype*#9`}[x!`%`_idx{i#7491}.0]] -[visit_exp C.`TABLES`_context{`tabletype*#9`}] +[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] +[visit_exp C.`TABLES`_context[x!`%`_idx.0]] +[visit_exp C.`TABLES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tabletype*#9`] -[visit_id tabletype*#9] -[visit_exp x!`%`_idx{i#7491}.0] -[visit_exp x!`%`_idx{i#7491}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7491] -[visit_id i#7491] -[visit_exp `%%%`_tabletype{addrtype#465, limits#465, reftype#417}(at, lim, rt)] -[visit_exp addrtype#465] -[visit_id addrtype#465] -[visit_exp limits#465] -[visit_id limits#465] -[visit_exp reftype#417] -[visit_id reftype#417] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%%`_tabletype(at, lim, rt)] [visit_exp (at, lim, rt)] [visit_exp at] [visit_id at] not free @@ -27932,24 +24825,16 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id lim] [visit_exp rt] [visit_id rt] not free -[check_dims] C X*#7700 X*#7749 addrtype#477 at i#7515 lim limits#477 localidx*#1019 reftype#429 resulttype#1695 rt tableidx#32 tabletype*#10 x +[check_dims] C at lim rt x [visit_exp C] [visit_id C] -[visit_exp `TABLE.SET`_instr{tableidx#32}(x)] -[visit_exp tableidx#32] -[visit_id tableidx#32] +[visit_exp `TABLE.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1695, `localidx*#1019`}(`%`_resulttype{`X*#7700`}([(at : addrtype <: valtype) (rt : reftype <: valtype)]), [], `%`_resulttype{`X*#7749`}([]))] -[visit_exp resulttype#1695] -[visit_id resulttype#1695] -[visit_exp `localidx*#1019`] -[visit_id localidx*#1019] -[visit_exp (`%`_resulttype{`X*#7700`}([(at : addrtype <: valtype) (rt : reftype <: valtype)]), [], `%`_resulttype{`X*#7749`}([]))] -[visit_exp `%`_resulttype{`X*#7700`}([(at : addrtype <: valtype) (rt : reftype <: valtype)])] -[visit_exp `X*#7700`] -[visit_id X*#7700] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype)]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype)]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype)])] [visit_exp ([(at : addrtype <: valtype) (rt : reftype <: valtype)])] [visit_exp [(at : addrtype <: valtype) (rt : reftype <: valtype)]] [visit_exp (at : addrtype <: valtype)] @@ -27959,31 +24844,19 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp rt] [visit_id rt] [visit_exp []] -[visit_exp `%`_resulttype{`X*#7749`}([])] -[visit_exp `X*#7749`] -[visit_id X*#7749] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`TABLES`_context{`tabletype*#10`}[x!`%`_idx{i#7515}.0] = `%%%`_tabletype{addrtype#477, limits#477, reftype#429}(at, lim, rt))] -[visit_exp C.`TABLES`_context{`tabletype*#10`}[x!`%`_idx{i#7515}.0]] -[visit_exp C.`TABLES`_context{`tabletype*#10`}] +[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] +[visit_exp C.`TABLES`_context[x!`%`_idx.0]] +[visit_exp C.`TABLES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tabletype*#10`] -[visit_id tabletype*#10] -[visit_exp x!`%`_idx{i#7515}.0] -[visit_exp x!`%`_idx{i#7515}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7515] -[visit_id i#7515] -[visit_exp `%%%`_tabletype{addrtype#477, limits#477, reftype#429}(at, lim, rt)] -[visit_exp addrtype#477] -[visit_id addrtype#477] -[visit_exp limits#477] -[visit_id limits#477] -[visit_exp reftype#429] -[visit_id reftype#429] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%%`_tabletype(at, lim, rt)] [visit_exp (at, lim, rt)] [visit_exp at] [visit_id at] not free @@ -27991,55 +24864,35 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id lim] [visit_exp rt] [visit_id rt] not free -[check_dims] C X*#7770 X*#7819 addrtype#489 at i#7539 lim limits#489 localidx*#1031 reftype#441 resulttype#1715 rt tableidx#34 tabletype*#11 x +[check_dims] C at lim rt x [visit_exp C] [visit_id C] -[visit_exp `TABLE.SIZE`_instr{tableidx#34}(x)] -[visit_exp tableidx#34] -[visit_id tableidx#34] +[visit_exp `TABLE.SIZE`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1715, `localidx*#1031`}(`%`_resulttype{`X*#7770`}([]), [], `%`_resulttype{`X*#7819`}([(at : addrtype <: valtype)]))] -[visit_exp resulttype#1715] -[visit_id resulttype#1715] -[visit_exp `localidx*#1031`] -[visit_id localidx*#1031] -[visit_exp (`%`_resulttype{`X*#7770`}([]), [], `%`_resulttype{`X*#7819`}([(at : addrtype <: valtype)]))] -[visit_exp `%`_resulttype{`X*#7770`}([])] -[visit_exp `X*#7770`] -[visit_id X*#7770] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#7819`}([(at : addrtype <: valtype)])] -[visit_exp `X*#7819`] -[visit_id X*#7819] +[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype)])] [visit_exp [(at : addrtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] [visit_exp at] [visit_id at] -[visit_exp (C.`TABLES`_context{`tabletype*#11`}[x!`%`_idx{i#7539}.0] = `%%%`_tabletype{addrtype#489, limits#489, reftype#441}(at, lim, rt))] -[visit_exp C.`TABLES`_context{`tabletype*#11`}[x!`%`_idx{i#7539}.0]] -[visit_exp C.`TABLES`_context{`tabletype*#11`}] +[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] +[visit_exp C.`TABLES`_context[x!`%`_idx.0]] +[visit_exp C.`TABLES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tabletype*#11`] -[visit_id tabletype*#11] -[visit_exp x!`%`_idx{i#7539}.0] -[visit_exp x!`%`_idx{i#7539}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7539] -[visit_id i#7539] -[visit_exp `%%%`_tabletype{addrtype#489, limits#489, reftype#441}(at, lim, rt)] -[visit_exp addrtype#489] -[visit_id addrtype#489] -[visit_exp limits#489] -[visit_id limits#489] -[visit_exp reftype#441] -[visit_id reftype#441] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%%`_tabletype(at, lim, rt)] [visit_exp (at, lim, rt)] [visit_exp at] [visit_id at] not free @@ -28047,24 +24900,16 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id lim] [visit_exp rt] [visit_id rt] -[check_dims] C X*#7840 X*#7889 addrtype#501 at i#7563 lim limits#501 localidx*#1043 reftype#453 resulttype#1735 rt tableidx#36 tabletype*#12 x +[check_dims] C at lim rt x [visit_exp C] [visit_id C] -[visit_exp `TABLE.GROW`_instr{tableidx#36}(x)] -[visit_exp tableidx#36] -[visit_id tableidx#36] +[visit_exp `TABLE.GROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1735, `localidx*#1043`}(`%`_resulttype{`X*#7840`}([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7889`}([`I32`_valtype]))] -[visit_exp resulttype#1735] -[visit_id resulttype#1735] -[visit_exp `localidx*#1043`] -[visit_id localidx*#1043] -[visit_exp (`%`_resulttype{`X*#7840`}([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7889`}([`I32`_valtype]))] -[visit_exp `%`_resulttype{`X*#7840`}([(rt : reftype <: valtype) (at : addrtype <: valtype)])] -[visit_exp `X*#7840`] -[visit_id X*#7840] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp (`%`_resulttype([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp `%`_resulttype([(rt : reftype <: valtype) (at : addrtype <: valtype)])] [visit_exp ([(rt : reftype <: valtype) (at : addrtype <: valtype)])] [visit_exp [(rt : reftype <: valtype) (at : addrtype <: valtype)]] [visit_exp (rt : reftype <: valtype)] @@ -28074,33 +24919,21 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp at] [visit_id at] [visit_exp []] -[visit_exp `%`_resulttype{`X*#7889`}([`I32`_valtype])] -[visit_exp `X*#7889`] -[visit_id X*#7889] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] [visit_exp ()] -[visit_exp (C.`TABLES`_context{`tabletype*#12`}[x!`%`_idx{i#7563}.0] = `%%%`_tabletype{addrtype#501, limits#501, reftype#453}(at, lim, rt))] -[visit_exp C.`TABLES`_context{`tabletype*#12`}[x!`%`_idx{i#7563}.0]] -[visit_exp C.`TABLES`_context{`tabletype*#12`}] +[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] +[visit_exp C.`TABLES`_context[x!`%`_idx.0]] +[visit_exp C.`TABLES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tabletype*#12`] -[visit_id tabletype*#12] -[visit_exp x!`%`_idx{i#7563}.0] -[visit_exp x!`%`_idx{i#7563}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7563] -[visit_id i#7563] -[visit_exp `%%%`_tabletype{addrtype#501, limits#501, reftype#453}(at, lim, rt)] -[visit_exp addrtype#501] -[visit_id addrtype#501] -[visit_exp limits#501] -[visit_id limits#501] -[visit_exp reftype#453] -[visit_id reftype#453] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%%`_tabletype(at, lim, rt)] [visit_exp (at, lim, rt)] [visit_exp at] [visit_id at] not free @@ -28108,24 +24941,16 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id lim] [visit_exp rt] [visit_id rt] not free -[check_dims] C X*#7910 X*#7959 addrtype#513 at i#7587 lim limits#513 localidx*#1055 reftype#465 resulttype#1755 rt tableidx#38 tabletype*#13 x +[check_dims] C at lim rt x [visit_exp C] [visit_id C] -[visit_exp `TABLE.FILL`_instr{tableidx#38}(x)] -[visit_exp tableidx#38] -[visit_id tableidx#38] +[visit_exp `TABLE.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1755, `localidx*#1055`}(`%`_resulttype{`X*#7910`}([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7959`}([]))] -[visit_exp resulttype#1755] -[visit_id resulttype#1755] -[visit_exp `localidx*#1055`] -[visit_id localidx*#1055] -[visit_exp (`%`_resulttype{`X*#7910`}([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7959`}([]))] -[visit_exp `%`_resulttype{`X*#7910`}([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)])] -[visit_exp `X*#7910`] -[visit_id X*#7910] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)])] [visit_exp [(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] @@ -28138,31 +24963,19 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp at] [visit_id at] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#7959`}([])] -[visit_exp `X*#7959`] -[visit_id X*#7959] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`TABLES`_context{`tabletype*#13`}[x!`%`_idx{i#7587}.0] = `%%%`_tabletype{addrtype#513, limits#513, reftype#465}(at, lim, rt))] -[visit_exp C.`TABLES`_context{`tabletype*#13`}[x!`%`_idx{i#7587}.0]] -[visit_exp C.`TABLES`_context{`tabletype*#13`}] +[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] +[visit_exp C.`TABLES`_context[x!`%`_idx.0]] +[visit_exp C.`TABLES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tabletype*#13`] -[visit_id tabletype*#13] -[visit_exp x!`%`_idx{i#7587}.0] -[visit_exp x!`%`_idx{i#7587}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7587] -[visit_id i#7587] -[visit_exp `%%%`_tabletype{addrtype#513, limits#513, reftype#465}(at, lim, rt)] -[visit_exp addrtype#513] -[visit_id addrtype#513] -[visit_exp limits#513] -[visit_id limits#513] -[visit_exp reftype#465] -[visit_id reftype#465] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%%`_tabletype(at, lim, rt)] [visit_exp (at, lim, rt)] [visit_exp at] [visit_id at] not free @@ -28170,26 +24983,18 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id lim] [visit_exp rt] [visit_id rt] not free -[check_dims] C X*#7980 X*#8029 addrtype#525 addrtype#537 at_1 at_2 i#7625 i#7635 lim_1 lim_2 limits#525 limits#537 localidx*#1067 reftype#477 reftype#489 resulttype#1775 rt_1 rt_2 tableidx#40 tabletype*#14 tabletype*#15 x_1 x_2 +[check_dims] C at_1 at_2 lim_1 lim_2 rt_1 rt_2 x_1 x_2 [visit_exp C] [visit_id C] -[visit_exp `TABLE.COPY`_instr{tableidx#40}(x_1, x_2)] -[visit_exp tableidx#40] -[visit_id tableidx#40] +[visit_exp `TABLE.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] [visit_exp x_2] [visit_id x_2] -[visit_exp `%->_%%`_instrtype{resulttype#1775, `localidx*#1067`}(`%`_resulttype{`X*#7980`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype{`X*#8029`}([]))] -[visit_exp resulttype#1775] -[visit_id resulttype#1775] -[visit_exp `localidx*#1067`] -[visit_id localidx*#1067] -[visit_exp (`%`_resulttype{`X*#7980`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype{`X*#8029`}([]))] -[visit_exp `%`_resulttype{`X*#7980`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] -[visit_exp `X*#7980`] -[visit_id X*#7980] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] [visit_exp ([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] [visit_exp [(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]] [visit_exp (at_1 : addrtype <: valtype)] @@ -28205,31 +25010,19 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp at_2] [visit_id at_2] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#8029`}([])] -[visit_exp `X*#8029`] -[visit_id X*#8029] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`TABLES`_context{`tabletype*#14`}[x_1!`%`_idx{i#7625}.0] = `%%%`_tabletype{addrtype#525, limits#525, reftype#477}(at_1, lim_1, rt_1))] -[visit_exp C.`TABLES`_context{`tabletype*#14`}[x_1!`%`_idx{i#7625}.0]] -[visit_exp C.`TABLES`_context{`tabletype*#14`}] +[visit_exp (C.`TABLES`_context[x_1!`%`_idx.0] = `%%%`_tabletype(at_1, lim_1, rt_1))] +[visit_exp C.`TABLES`_context[x_1!`%`_idx.0]] +[visit_exp C.`TABLES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tabletype*#14`] -[visit_id tabletype*#14] -[visit_exp x_1!`%`_idx{i#7625}.0] -[visit_exp x_1!`%`_idx{i#7625}] +[visit_exp x_1!`%`_idx.0] +[visit_exp x_1!`%`_idx] [visit_exp x_1] [visit_id x_1] not free -[visit_exp i#7625] -[visit_id i#7625] -[visit_exp `%%%`_tabletype{addrtype#525, limits#525, reftype#477}(at_1, lim_1, rt_1)] -[visit_exp addrtype#525] -[visit_id addrtype#525] -[visit_exp limits#525] -[visit_id limits#525] -[visit_exp reftype#477] -[visit_id reftype#477] +[visit_exp `%%%`_tabletype(at_1, lim_1, rt_1)] [visit_exp (at_1, lim_1, rt_1)] [visit_exp at_1] [visit_id at_1] not free @@ -28237,26 +25030,16 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id lim_1] [visit_exp rt_1] [visit_id rt_1] -[visit_exp (C.`TABLES`_context{`tabletype*#15`}[x_2!`%`_idx{i#7635}.0] = `%%%`_tabletype{addrtype#537, limits#537, reftype#489}(at_2, lim_2, rt_2))] -[visit_exp C.`TABLES`_context{`tabletype*#15`}[x_2!`%`_idx{i#7635}.0]] -[visit_exp C.`TABLES`_context{`tabletype*#15`}] +[visit_exp (C.`TABLES`_context[x_2!`%`_idx.0] = `%%%`_tabletype(at_2, lim_2, rt_2))] +[visit_exp C.`TABLES`_context[x_2!`%`_idx.0]] +[visit_exp C.`TABLES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tabletype*#15`] -[visit_id tabletype*#15] -[visit_exp x_2!`%`_idx{i#7635}.0] -[visit_exp x_2!`%`_idx{i#7635}] +[visit_exp x_2!`%`_idx.0] +[visit_exp x_2!`%`_idx] [visit_exp x_2] [visit_id x_2] not free -[visit_exp i#7635] -[visit_id i#7635] -[visit_exp `%%%`_tabletype{addrtype#537, limits#537, reftype#489}(at_2, lim_2, rt_2)] -[visit_exp addrtype#537] -[visit_id addrtype#537] -[visit_exp limits#537] -[visit_id limits#537] -[visit_exp reftype#489] -[visit_id reftype#489] +[visit_exp `%%%`_tabletype(at_2, lim_2, rt_2)] [visit_exp (at_2, lim_2, rt_2)] [visit_exp at_2] [visit_id at_2] not free @@ -28271,28 +25054,18 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id rt_2] not free [visit_exp rt_1] [visit_id rt_1] not free -[check_dims] C X*#8050 X*#8099 addrtype#549 at elemidx#13 elemtype*#9 i#7673 i#7683 lim limits#549 localidx*#1079 reftype#501 resulttype#1795 rt_1 rt_2 tableidx#43 tabletype*#16 x y +[check_dims] C at lim rt_1 rt_2 x y [visit_exp C] [visit_id C] -[visit_exp `TABLE.INIT`_instr{tableidx#43, elemidx#13}(x, y)] -[visit_exp tableidx#43] -[visit_id tableidx#43] -[visit_exp elemidx#13] -[visit_id elemidx#13] +[visit_exp `TABLE.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp `%->_%%`_instrtype{resulttype#1795, `localidx*#1079`}(`%`_resulttype{`X*#8050`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#8099`}([]))] -[visit_exp resulttype#1795] -[visit_id resulttype#1795] -[visit_exp `localidx*#1079`] -[visit_id localidx*#1079] -[visit_exp (`%`_resulttype{`X*#8050`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#8099`}([]))] -[visit_exp `%`_resulttype{`X*#8050`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] -[visit_exp `X*#8050`] -[visit_id X*#8050] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] [visit_exp ([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] [visit_exp [(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]] [visit_exp (at : addrtype <: valtype)] @@ -28303,31 +25076,19 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#8099`}([])] -[visit_exp `X*#8099`] -[visit_id X*#8099] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`TABLES`_context{`tabletype*#16`}[x!`%`_idx{i#7673}.0] = `%%%`_tabletype{addrtype#549, limits#549, reftype#501}(at, lim, rt_1))] -[visit_exp C.`TABLES`_context{`tabletype*#16`}[x!`%`_idx{i#7673}.0]] -[visit_exp C.`TABLES`_context{`tabletype*#16`}] +[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt_1))] +[visit_exp C.`TABLES`_context[x!`%`_idx.0]] +[visit_exp C.`TABLES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tabletype*#16`] -[visit_id tabletype*#16] -[visit_exp x!`%`_idx{i#7673}.0] -[visit_exp x!`%`_idx{i#7673}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7673] -[visit_id i#7673] -[visit_exp `%%%`_tabletype{addrtype#549, limits#549, reftype#501}(at, lim, rt_1)] -[visit_exp addrtype#549] -[visit_id addrtype#549] -[visit_exp limits#549] -[visit_id limits#549] -[visit_exp reftype#501] -[visit_id reftype#501] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%%`_tabletype(at, lim, rt_1)] [visit_exp (at, lim, rt_1)] [visit_exp at] [visit_id at] not free @@ -28335,19 +25096,15 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id lim] [visit_exp rt_1] [visit_id rt_1] -[visit_exp (C.`ELEMS`_context{`elemtype*#9`}[y!`%`_idx{i#7683}.0] = rt_2)] -[visit_exp C.`ELEMS`_context{`elemtype*#9`}[y!`%`_idx{i#7683}.0]] -[visit_exp C.`ELEMS`_context{`elemtype*#9`}] +[visit_exp (C.`ELEMS`_context[y!`%`_idx.0] = rt_2)] +[visit_exp C.`ELEMS`_context[y!`%`_idx.0]] +[visit_exp C.`ELEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `elemtype*#9`] -[visit_id elemtype*#9] -[visit_exp y!`%`_idx{i#7683}.0] -[visit_exp y!`%`_idx{i#7683}] +[visit_exp y!`%`_idx.0] +[visit_exp y!`%`_idx] [visit_exp y] [visit_id y] not free -[visit_exp i#7683] -[visit_id i#7683] [visit_exp rt_2] [visit_id rt_2] [visit_exp (C, rt_2, rt_1)] @@ -28357,63 +25114,41 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id rt_2] not free [visit_exp rt_1] [visit_id rt_1] not free -[check_dims] C X*#8120 X*#8169 elemidx#15 elemtype*#10 i#7707 localidx*#1091 resulttype#1815 rt x +[check_dims] C rt x [visit_exp C] [visit_id C] -[visit_exp `ELEM.DROP`_instr{elemidx#15}(x)] -[visit_exp elemidx#15] -[visit_id elemidx#15] +[visit_exp `ELEM.DROP`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1815, `localidx*#1091`}(`%`_resulttype{`X*#8120`}([]), [], `%`_resulttype{`X*#8169`}([]))] -[visit_exp resulttype#1815] -[visit_id resulttype#1815] -[visit_exp `localidx*#1091`] -[visit_id localidx*#1091] -[visit_exp (`%`_resulttype{`X*#8120`}([]), [], `%`_resulttype{`X*#8169`}([]))] -[visit_exp `%`_resulttype{`X*#8120`}([])] -[visit_exp `X*#8120`] -[visit_id X*#8120] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#8169`}([])] -[visit_exp `X*#8169`] -[visit_id X*#8169] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`ELEMS`_context{`elemtype*#10`}[x!`%`_idx{i#7707}.0] = rt)] -[visit_exp C.`ELEMS`_context{`elemtype*#10`}[x!`%`_idx{i#7707}.0]] -[visit_exp C.`ELEMS`_context{`elemtype*#10`}] +[visit_exp (C.`ELEMS`_context[x!`%`_idx.0] = rt)] +[visit_exp C.`ELEMS`_context[x!`%`_idx.0]] +[visit_exp C.`ELEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `elemtype*#10`] -[visit_id elemtype*#10] -[visit_exp x!`%`_idx{i#7707}.0] -[visit_exp x!`%`_idx{i#7707}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#7707] -[visit_id i#7707] [visit_exp rt] [visit_id rt] [check_dims] -[check_dims] N at i#7729 i#7751 m n u32#14 u64#230 -[visit_exp {`ALIGN`{u32#14} `%`_u32{i#7729}(n), `OFFSET`{u64#230} `%`_u64{i#7751}(m)}] -[visit_exp u32#14] -[visit_id u32#14] -[visit_exp `%`_u32{i#7729}(n)] -[visit_exp i#7729] -[visit_id i#7729] +[check_dims] N at m n +[visit_exp {`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)}] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp u64#230] -[visit_id u64#230] -[visit_exp `%`_u64{i#7751}(m)] -[visit_exp i#7751] -[visit_id i#7751] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] @@ -28442,131 +25177,87 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[check_dims] C X*#8190 X*#8239 addrtype#561 at i#7775 lim limits#561 localidx*#1103 memidx#30 memtype*#7 resulttype#1835 x +[check_dims] C at lim x [visit_exp C] [visit_id C] -[visit_exp `MEMORY.SIZE`_instr{memidx#30}(x)] -[visit_exp memidx#30] -[visit_id memidx#30] +[visit_exp `MEMORY.SIZE`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1835, `localidx*#1103`}(`%`_resulttype{`X*#8190`}([]), [], `%`_resulttype{`X*#8239`}([(at : addrtype <: valtype)]))] -[visit_exp resulttype#1835] -[visit_id resulttype#1835] -[visit_exp `localidx*#1103`] -[visit_id localidx*#1103] -[visit_exp (`%`_resulttype{`X*#8190`}([]), [], `%`_resulttype{`X*#8239`}([(at : addrtype <: valtype)]))] -[visit_exp `%`_resulttype{`X*#8190`}([])] -[visit_exp `X*#8190`] -[visit_id X*#8190] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#8239`}([(at : addrtype <: valtype)])] -[visit_exp `X*#8239`] -[visit_id X*#8239] +[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype)])] [visit_exp [(at : addrtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] [visit_exp at] [visit_id at] -[visit_exp (C.`MEMS`_context{`memtype*#7`}[x!`%`_idx{i#7775}.0] = `%%PAGE`_memtype{addrtype#561, limits#561}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#7`}[x!`%`_idx{i#7775}.0]] -[visit_exp C.`MEMS`_context{`memtype*#7`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#7`] -[visit_id memtype*#7] -[visit_exp x!`%`_idx{i#7775}.0] -[visit_exp x!`%`_idx{i#7775}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7775] -[visit_id i#7775] -[visit_exp `%%PAGE`_memtype{addrtype#561, limits#561}(at, lim)] -[visit_exp addrtype#561] -[visit_id addrtype#561] -[visit_exp limits#561] -[visit_id limits#561] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free [visit_exp lim] [visit_id lim] -[check_dims] C X*#8250 X*#8318 addrtype#573 at i#7799 lim limits#573 localidx*#1115 memidx#32 memtype*#8 resulttype#1855 x +[check_dims] C at lim x [visit_exp C] [visit_id C] -[visit_exp `MEMORY.GROW`_instr{memidx#32}(x)] -[visit_exp memidx#32] -[visit_id memidx#32] +[visit_exp `MEMORY.GROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1855, `localidx*#1115`}(`%`_resulttype{`X*#8250`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8318`}([(at : addrtype <: valtype)]))] -[visit_exp resulttype#1855] -[visit_id resulttype#1855] -[visit_exp `localidx*#1115`] -[visit_id localidx*#1115] -[visit_exp (`%`_resulttype{`X*#8250`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8318`}([(at : addrtype <: valtype)]))] -[visit_exp `%`_resulttype{`X*#8250`}([(at : addrtype <: valtype)])] -[visit_exp `X*#8250`] -[visit_id X*#8250] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(at : addrtype <: valtype)]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(at : addrtype <: valtype)]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype)])] [visit_exp [(at : addrtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] [visit_exp at] [visit_id at] [visit_exp []] -[visit_exp `%`_resulttype{`X*#8318`}([(at : addrtype <: valtype)])] -[visit_exp `X*#8318`] -[visit_id X*#8318] +[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype)])] [visit_exp [(at : addrtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] [visit_exp at] [visit_id at] not free -[visit_exp (C.`MEMS`_context{`memtype*#8`}[x!`%`_idx{i#7799}.0] = `%%PAGE`_memtype{addrtype#573, limits#573}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#8`}[x!`%`_idx{i#7799}.0]] -[visit_exp C.`MEMS`_context{`memtype*#8`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#8`] -[visit_id memtype*#8] -[visit_exp x!`%`_idx{i#7799}.0] -[visit_exp x!`%`_idx{i#7799}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7799] -[visit_id i#7799] -[visit_exp `%%PAGE`_memtype{addrtype#573, limits#573}(at, lim)] -[visit_exp addrtype#573] -[visit_id addrtype#573] -[visit_exp limits#573] -[visit_id limits#573] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free [visit_exp lim] [visit_id lim] -[check_dims] C X*#8339 X*#8388 addrtype#585 at i#7823 lim limits#585 localidx*#1127 memidx#34 memtype*#9 resulttype#1875 x +[check_dims] C at lim x [visit_exp C] [visit_id C] -[visit_exp `MEMORY.FILL`_instr{memidx#34}(x)] -[visit_exp memidx#34] -[visit_id memidx#34] +[visit_exp `MEMORY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1875, `localidx*#1127`}(`%`_resulttype{`X*#8339`}([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8388`}([]))] -[visit_exp resulttype#1875] -[visit_id resulttype#1875] -[visit_exp `localidx*#1127`] -[visit_id localidx*#1127] -[visit_exp (`%`_resulttype{`X*#8339`}([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8388`}([]))] -[visit_exp `%`_resulttype{`X*#8339`}([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)])] -[visit_exp `X*#8339`] -[visit_id X*#8339] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)])] [visit_exp [(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] @@ -28578,54 +25269,36 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp at] [visit_id at] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#8388`}([])] -[visit_exp `X*#8388`] -[visit_id X*#8388] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`MEMS`_context{`memtype*#9`}[x!`%`_idx{i#7823}.0] = `%%PAGE`_memtype{addrtype#585, limits#585}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#9`}[x!`%`_idx{i#7823}.0]] -[visit_exp C.`MEMS`_context{`memtype*#9`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#9`] -[visit_id memtype*#9] -[visit_exp x!`%`_idx{i#7823}.0] -[visit_exp x!`%`_idx{i#7823}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7823] -[visit_id i#7823] -[visit_exp `%%PAGE`_memtype{addrtype#585, limits#585}(at, lim)] -[visit_exp addrtype#585] -[visit_id addrtype#585] -[visit_exp limits#585] -[visit_id limits#585] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free [visit_exp lim] [visit_id lim] -[check_dims] C X*#8409 X*#8458 addrtype#597 addrtype#609 at_1 at_2 i#7861 i#7871 lim_1 lim_2 limits#597 limits#609 localidx*#1139 memidx#36 memtype*#10 memtype*#11 resulttype#1895 x_1 x_2 +[check_dims] C at_1 at_2 lim_1 lim_2 x_1 x_2 [visit_exp C] [visit_id C] -[visit_exp `MEMORY.COPY`_instr{memidx#36}(x_1, x_2)] -[visit_exp memidx#36] -[visit_id memidx#36] +[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] [visit_exp x_2] [visit_id x_2] -[visit_exp `%->_%%`_instrtype{resulttype#1895, `localidx*#1139`}(`%`_resulttype{`X*#8409`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype{`X*#8458`}([]))] -[visit_exp resulttype#1895] -[visit_id resulttype#1895] -[visit_exp `localidx*#1139`] -[visit_id localidx*#1139] -[visit_exp (`%`_resulttype{`X*#8409`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype{`X*#8458`}([]))] -[visit_exp `%`_resulttype{`X*#8409`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] -[visit_exp `X*#8409`] -[visit_id X*#8409] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] [visit_exp ([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] [visit_exp [(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]] [visit_exp (at_1 : addrtype <: valtype)] @@ -28641,79 +25314,51 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp at_2] [visit_id at_2] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#8458`}([])] -[visit_exp `X*#8458`] -[visit_id X*#8458] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`MEMS`_context{`memtype*#10`}[x_1!`%`_idx{i#7861}.0] = `%%PAGE`_memtype{addrtype#597, limits#597}(at_1, lim_1))] -[visit_exp C.`MEMS`_context{`memtype*#10`}[x_1!`%`_idx{i#7861}.0]] -[visit_exp C.`MEMS`_context{`memtype*#10`}] +[visit_exp (C.`MEMS`_context[x_1!`%`_idx.0] = `%%PAGE`_memtype(at_1, lim_1))] +[visit_exp C.`MEMS`_context[x_1!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#10`] -[visit_id memtype*#10] -[visit_exp x_1!`%`_idx{i#7861}.0] -[visit_exp x_1!`%`_idx{i#7861}] +[visit_exp x_1!`%`_idx.0] +[visit_exp x_1!`%`_idx] [visit_exp x_1] [visit_id x_1] not free -[visit_exp i#7861] -[visit_id i#7861] -[visit_exp `%%PAGE`_memtype{addrtype#597, limits#597}(at_1, lim_1)] -[visit_exp addrtype#597] -[visit_id addrtype#597] -[visit_exp limits#597] -[visit_id limits#597] +[visit_exp `%%PAGE`_memtype(at_1, lim_1)] [visit_exp (at_1, lim_1)] [visit_exp at_1] [visit_id at_1] not free [visit_exp lim_1] [visit_id lim_1] -[visit_exp (C.`MEMS`_context{`memtype*#11`}[x_2!`%`_idx{i#7871}.0] = `%%PAGE`_memtype{addrtype#609, limits#609}(at_2, lim_2))] -[visit_exp C.`MEMS`_context{`memtype*#11`}[x_2!`%`_idx{i#7871}.0]] -[visit_exp C.`MEMS`_context{`memtype*#11`}] +[visit_exp (C.`MEMS`_context[x_2!`%`_idx.0] = `%%PAGE`_memtype(at_2, lim_2))] +[visit_exp C.`MEMS`_context[x_2!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#11`] -[visit_id memtype*#11] -[visit_exp x_2!`%`_idx{i#7871}.0] -[visit_exp x_2!`%`_idx{i#7871}] +[visit_exp x_2!`%`_idx.0] +[visit_exp x_2!`%`_idx] [visit_exp x_2] [visit_id x_2] not free -[visit_exp i#7871] -[visit_id i#7871] -[visit_exp `%%PAGE`_memtype{addrtype#609, limits#609}(at_2, lim_2)] -[visit_exp addrtype#609] -[visit_id addrtype#609] -[visit_exp limits#609] -[visit_id limits#609] +[visit_exp `%%PAGE`_memtype(at_2, lim_2)] [visit_exp (at_2, lim_2)] [visit_exp at_2] [visit_id at_2] not free [visit_exp lim_2] [visit_id lim_2] -[check_dims] C X*#8479 X*#8528 addrtype#621 at dataidx#13 datatype*#9 i#7909 i#7919 lim limits#621 localidx*#1151 memidx#39 memtype*#12 resulttype#1915 x y +[check_dims] C at lim x y [visit_exp C] [visit_id C] -[visit_exp `MEMORY.INIT`_instr{memidx#39, dataidx#13}(x, y)] -[visit_exp memidx#39] -[visit_id memidx#39] -[visit_exp dataidx#13] -[visit_id dataidx#13] +[visit_exp `MEMORY.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp `%->_%%`_instrtype{resulttype#1915, `localidx*#1151`}(`%`_resulttype{`X*#8479`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#8528`}([]))] -[visit_exp resulttype#1915] -[visit_id resulttype#1915] -[visit_exp `localidx*#1151`] -[visit_id localidx*#1151] -[visit_exp (`%`_resulttype{`X*#8479`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#8528`}([]))] -[visit_exp `%`_resulttype{`X*#8479`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] -[visit_exp `X*#8479`] -[visit_id X*#8479] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] [visit_exp ([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] [visit_exp [(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]] [visit_exp (at : addrtype <: valtype)] @@ -28724,100 +25369,66 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#8528`}([])] -[visit_exp `X*#8528`] -[visit_id X*#8528] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`MEMS`_context{`memtype*#12`}[x!`%`_idx{i#7909}.0] = `%%PAGE`_memtype{addrtype#621, limits#621}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#12`}[x!`%`_idx{i#7909}.0]] -[visit_exp C.`MEMS`_context{`memtype*#12`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#12`] -[visit_id memtype*#12] -[visit_exp x!`%`_idx{i#7909}.0] -[visit_exp x!`%`_idx{i#7909}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7909] -[visit_id i#7909] -[visit_exp `%%PAGE`_memtype{addrtype#621, limits#621}(at, lim)] -[visit_exp addrtype#621] -[visit_id addrtype#621] -[visit_exp limits#621] -[visit_id limits#621] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free [visit_exp lim] [visit_id lim] -[visit_exp (C.`DATAS`_context{`datatype*#9`}[y!`%`_idx{i#7919}.0] = `OK`_datatype)] -[visit_exp C.`DATAS`_context{`datatype*#9`}[y!`%`_idx{i#7919}.0]] -[visit_exp C.`DATAS`_context{`datatype*#9`}] +[visit_exp (C.`DATAS`_context[y!`%`_idx.0] = `OK`_datatype)] +[visit_exp C.`DATAS`_context[y!`%`_idx.0]] +[visit_exp C.`DATAS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `datatype*#9`] -[visit_id datatype*#9] -[visit_exp y!`%`_idx{i#7919}.0] -[visit_exp y!`%`_idx{i#7919}] +[visit_exp y!`%`_idx.0] +[visit_exp y!`%`_idx] [visit_exp y] [visit_id y] not free -[visit_exp i#7919] -[visit_id i#7919] [visit_exp `OK`_datatype] [visit_exp ()] -[check_dims] C X*#8549 X*#8598 dataidx#15 datatype*#10 i#7943 localidx*#1163 resulttype#1935 x +[check_dims] C x [visit_exp C] [visit_id C] -[visit_exp `DATA.DROP`_instr{dataidx#15}(x)] -[visit_exp dataidx#15] -[visit_id dataidx#15] +[visit_exp `DATA.DROP`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#1935, `localidx*#1163`}(`%`_resulttype{`X*#8549`}([]), [], `%`_resulttype{`X*#8598`}([]))] -[visit_exp resulttype#1935] -[visit_id resulttype#1935] -[visit_exp `localidx*#1163`] -[visit_id localidx*#1163] -[visit_exp (`%`_resulttype{`X*#8549`}([]), [], `%`_resulttype{`X*#8598`}([]))] -[visit_exp `%`_resulttype{`X*#8549`}([])] -[visit_exp `X*#8549`] -[visit_id X*#8549] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#8598`}([])] -[visit_exp `X*#8598`] -[visit_id X*#8598] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`DATAS`_context{`datatype*#10`}[x!`%`_idx{i#7943}.0] = `OK`_datatype)] -[visit_exp C.`DATAS`_context{`datatype*#10`}[x!`%`_idx{i#7943}.0]] -[visit_exp C.`DATAS`_context{`datatype*#10`}] +[visit_exp (C.`DATAS`_context[x!`%`_idx.0] = `OK`_datatype)] +[visit_exp C.`DATAS`_context[x!`%`_idx.0]] +[visit_exp C.`DATAS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `datatype*#10`] -[visit_id datatype*#10] -[visit_exp x!`%`_idx{i#7943}.0] -[visit_exp x!`%`_idx{i#7943}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#7943] -[visit_id i#7943] [visit_exp `OK`_datatype] [visit_exp ()] -[check_dims] C X*#8609 X*#8677 addrtype#633 at i#7967 lim limits#633 localidx*#1175 memarg memarg#13 memidx#41 memtype*#13 nt numtype?#3 resulttype#1955 x +[check_dims] C at lim memarg nt x [visit_exp C] [visit_id C] -[visit_exp `LOAD`_instr{`numtype?#3`, memidx#41, memarg#13}(nt, ?(), x, memarg)] -[visit_exp `numtype?#3`] -[visit_id numtype?#3] -[visit_exp memidx#41] -[visit_id memidx#41] -[visit_exp memarg#13] -[visit_id memarg#13] +[visit_exp `LOAD`_instr(nt, ?(), x, memarg)] [visit_exp (nt, ?(), x, memarg)] [visit_exp nt] [visit_id nt] @@ -28826,47 +25437,31 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id x] [visit_exp memarg] [visit_id memarg] -[visit_exp `%->_%%`_instrtype{resulttype#1955, `localidx*#1175`}(`%`_resulttype{`X*#8609`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8677`}([(nt : numtype <: valtype)]))] -[visit_exp resulttype#1955] -[visit_id resulttype#1955] -[visit_exp `localidx*#1175`] -[visit_id localidx*#1175] -[visit_exp (`%`_resulttype{`X*#8609`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8677`}([(nt : numtype <: valtype)]))] -[visit_exp `%`_resulttype{`X*#8609`}([(at : addrtype <: valtype)])] -[visit_exp `X*#8609`] -[visit_id X*#8609] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype)])] [visit_exp [(at : addrtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] [visit_exp at] [visit_id at] [visit_exp []] -[visit_exp `%`_resulttype{`X*#8677`}([(nt : numtype <: valtype)])] -[visit_exp `X*#8677`] -[visit_id X*#8677] +[visit_exp `%`_resulttype([(nt : numtype <: valtype)])] [visit_exp ([(nt : numtype <: valtype)])] [visit_exp [(nt : numtype <: valtype)]] [visit_exp (nt : numtype <: valtype)] [visit_exp nt] [visit_id nt] not free -[visit_exp (C.`MEMS`_context{`memtype*#13`}[x!`%`_idx{i#7967}.0] = `%%PAGE`_memtype{addrtype#633, limits#633}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#13`}[x!`%`_idx{i#7967}.0]] -[visit_exp C.`MEMS`_context{`memtype*#13`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#13`] -[visit_id memtype*#13] -[visit_exp x!`%`_idx{i#7967}.0] -[visit_exp x!`%`_idx{i#7967}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#7967] -[visit_id i#7967] -[visit_exp `%%PAGE`_memtype{addrtype#633, limits#633}(at, lim)] -[visit_exp addrtype#633] -[visit_id addrtype#633] -[visit_exp limits#633] -[visit_id limits#633] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free @@ -28880,32 +25475,18 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp $size(nt)] [visit_exp nt] [visit_id nt] not free -[check_dims] C Inn M X*#8688 X*#8756 addrtype#645 at i#7993 i#8000 i#8024 lim limits#645 localidx*#1187 memarg memarg#15 memidx#43 memtype*#14 numtype?#4 resulttype#1975 sx sx#7 sz#5 x +[check_dims] C Inn M at lim memarg sx x [visit_exp C] [visit_id C] -[visit_exp `LOAD`_instr{`numtype?#4`, memidx#43, memarg#15}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#5, sx#7, i#7993}(`%`_sz{i#8000}(M), sx)), x, memarg)] -[visit_exp `numtype?#4`] -[visit_id numtype?#4] -[visit_exp memidx#43] -[visit_id memidx#43] -[visit_exp memarg#15] -[visit_id memarg#15] -[visit_exp ((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#5, sx#7, i#7993}(`%`_sz{i#8000}(M), sx)), x, memarg)] +[visit_exp `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(M), sx)), x, memarg)] +[visit_exp ((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(M), sx)), x, memarg)] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] -[visit_exp ?(`%_%`_loadop_{sz#5, sx#7, i#7993}(`%`_sz{i#8000}(M), sx))] -[visit_exp `%_%`_loadop_{sz#5, sx#7, i#7993}(`%`_sz{i#8000}(M), sx)] -[visit_exp sz#5] -[visit_id sz#5] -[visit_exp sx#7] -[visit_id sx#7] -[visit_exp i#7993] -[visit_id i#7993] -[visit_exp (`%`_sz{i#8000}(M), sx)] -[visit_exp `%`_sz{i#8000}(M)] -[visit_exp i#8000] -[visit_id i#8000] +[visit_exp ?(`%_%`_loadop_(`%`_sz(M), sx))] +[visit_exp `%_%`_loadop_(`%`_sz(M), sx)] +[visit_exp (`%`_sz(M), sx)] +[visit_exp `%`_sz(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -28915,47 +25496,31 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id x] [visit_exp memarg] [visit_id memarg] -[visit_exp `%->_%%`_instrtype{resulttype#1975, `localidx*#1187`}(`%`_resulttype{`X*#8688`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8756`}([(Inn : Inn <: valtype)]))] -[visit_exp resulttype#1975] -[visit_id resulttype#1975] -[visit_exp `localidx*#1187`] -[visit_id localidx*#1187] -[visit_exp (`%`_resulttype{`X*#8688`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8756`}([(Inn : Inn <: valtype)]))] -[visit_exp `%`_resulttype{`X*#8688`}([(at : addrtype <: valtype)])] -[visit_exp `X*#8688`] -[visit_id X*#8688] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(Inn : Inn <: valtype)]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(Inn : Inn <: valtype)]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype)])] [visit_exp [(at : addrtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] [visit_exp at] [visit_id at] [visit_exp []] -[visit_exp `%`_resulttype{`X*#8756`}([(Inn : Inn <: valtype)])] -[visit_exp `X*#8756`] -[visit_id X*#8756] +[visit_exp `%`_resulttype([(Inn : Inn <: valtype)])] [visit_exp ([(Inn : Inn <: valtype)])] [visit_exp [(Inn : Inn <: valtype)]] [visit_exp (Inn : Inn <: valtype)] [visit_exp Inn] [visit_id Inn] not free -[visit_exp (C.`MEMS`_context{`memtype*#14`}[x!`%`_idx{i#8024}.0] = `%%PAGE`_memtype{addrtype#645, limits#645}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#14`}[x!`%`_idx{i#8024}.0]] -[visit_exp C.`MEMS`_context{`memtype*#14`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#14`] -[visit_id memtype*#14] -[visit_exp x!`%`_idx{i#8024}.0] -[visit_exp x!`%`_idx{i#8024}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#8024] -[visit_id i#8024] -[visit_exp `%%PAGE`_memtype{addrtype#645, limits#645}(at, lim)] -[visit_exp addrtype#645] -[visit_id addrtype#645] -[visit_exp limits#645] -[visit_id limits#645] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free @@ -28968,16 +25533,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id at] not free [visit_exp M] [visit_id M] not free -[check_dims] C X*#8777 X*#8826 addrtype#657 at i#8048 lim limits#657 localidx*#1199 memarg memarg#17 memidx#45 memtype*#15 nt numtype?#5 resulttype#1995 x +[check_dims] C at lim memarg nt x [visit_exp C] [visit_id C] -[visit_exp `STORE`_instr{`numtype?#5`, memidx#45, memarg#17}(nt, ?(), x, memarg)] -[visit_exp `numtype?#5`] -[visit_id numtype?#5] -[visit_exp memidx#45] -[visit_id memidx#45] -[visit_exp memarg#17] -[visit_id memarg#17] +[visit_exp `STORE`_instr(nt, ?(), x, memarg)] [visit_exp (nt, ?(), x, memarg)] [visit_exp nt] [visit_id nt] @@ -28986,15 +25545,9 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id x] [visit_exp memarg] [visit_id memarg] -[visit_exp `%->_%%`_instrtype{resulttype#1995, `localidx*#1199`}(`%`_resulttype{`X*#8777`}([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#8826`}([]))] -[visit_exp resulttype#1995] -[visit_id resulttype#1995] -[visit_exp `localidx*#1199`] -[visit_id localidx*#1199] -[visit_exp (`%`_resulttype{`X*#8777`}([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#8826`}([]))] -[visit_exp `%`_resulttype{`X*#8777`}([(at : addrtype <: valtype) (nt : numtype <: valtype)])] -[visit_exp `X*#8777`] -[visit_id X*#8777] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype) (nt : numtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype) (nt : numtype <: valtype)])] [visit_exp [(at : addrtype <: valtype) (nt : numtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] @@ -29004,29 +25557,19 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp nt] [visit_id nt] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#8826`}([])] -[visit_exp `X*#8826`] -[visit_id X*#8826] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`MEMS`_context{`memtype*#15`}[x!`%`_idx{i#8048}.0] = `%%PAGE`_memtype{addrtype#657, limits#657}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#15`}[x!`%`_idx{i#8048}.0]] -[visit_exp C.`MEMS`_context{`memtype*#15`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#15`] -[visit_id memtype*#15] -[visit_exp x!`%`_idx{i#8048}.0] -[visit_exp x!`%`_idx{i#8048}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#8048] -[visit_id i#8048] -[visit_exp `%%PAGE`_memtype{addrtype#657, limits#657}(at, lim)] -[visit_exp addrtype#657] -[visit_id addrtype#657] -[visit_exp limits#657] -[visit_id limits#657] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free @@ -29040,30 +25583,18 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp $size(nt)] [visit_exp nt] [visit_id nt] not free -[check_dims] C Inn M X*#8847 X*#8896 addrtype#669 at i#8091 i#8092 i#8116 lim limits#669 localidx*#1211 memarg memarg#19 memidx#47 memtype*#16 numtype?#6 resulttype#2015 sz#7 x +[check_dims] C Inn M at lim memarg x [visit_exp C] [visit_id C] -[visit_exp `STORE`_instr{`numtype?#6`, memidx#47, memarg#19}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#7, i#8091}(`%`_sz{i#8092}(M))), x, memarg)] -[visit_exp `numtype?#6`] -[visit_id numtype?#6] -[visit_exp memidx#47] -[visit_id memidx#47] -[visit_exp memarg#19] -[visit_id memarg#19] -[visit_exp ((Inn : Inn <: numtype), ?(`%`_storeop_{sz#7, i#8091}(`%`_sz{i#8092}(M))), x, memarg)] +[visit_exp `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(M))), x, memarg)] +[visit_exp ((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(M))), x, memarg)] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] -[visit_exp ?(`%`_storeop_{sz#7, i#8091}(`%`_sz{i#8092}(M)))] -[visit_exp `%`_storeop_{sz#7, i#8091}(`%`_sz{i#8092}(M))] -[visit_exp sz#7] -[visit_id sz#7] -[visit_exp i#8091] -[visit_id i#8091] -[visit_exp (`%`_sz{i#8092}(M))] -[visit_exp `%`_sz{i#8092}(M)] -[visit_exp i#8092] -[visit_id i#8092] +[visit_exp ?(`%`_storeop_(`%`_sz(M)))] +[visit_exp `%`_storeop_(`%`_sz(M))] +[visit_exp (`%`_sz(M))] +[visit_exp `%`_sz(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -29071,15 +25602,9 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id x] [visit_exp memarg] [visit_id memarg] -[visit_exp `%->_%%`_instrtype{resulttype#2015, `localidx*#1211`}(`%`_resulttype{`X*#8847`}([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype{`X*#8896`}([]))] -[visit_exp resulttype#2015] -[visit_id resulttype#2015] -[visit_exp `localidx*#1211`] -[visit_id localidx*#1211] -[visit_exp (`%`_resulttype{`X*#8847`}([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype{`X*#8896`}([]))] -[visit_exp `%`_resulttype{`X*#8847`}([(at : addrtype <: valtype) (Inn : Inn <: valtype)])] -[visit_exp `X*#8847`] -[visit_id X*#8847] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype) (Inn : Inn <: valtype)])] [visit_exp ([(at : addrtype <: valtype) (Inn : Inn <: valtype)])] [visit_exp [(at : addrtype <: valtype) (Inn : Inn <: valtype)]] [visit_exp (at : addrtype <: valtype)] @@ -29089,29 +25614,19 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp Inn] [visit_id Inn] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#8896`}([])] -[visit_exp `X*#8896`] -[visit_id X*#8896] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`MEMS`_context{`memtype*#16`}[x!`%`_idx{i#8116}.0] = `%%PAGE`_memtype{addrtype#669, limits#669}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#16`}[x!`%`_idx{i#8116}.0]] -[visit_exp C.`MEMS`_context{`memtype*#16`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#16`] -[visit_id memtype*#16] -[visit_exp x!`%`_idx{i#8116}.0] -[visit_exp x!`%`_idx{i#8116}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#8116] -[visit_id i#8116] -[visit_exp `%%PAGE`_memtype{addrtype#669, limits#669}(at, lim)] -[visit_exp addrtype#669] -[visit_id addrtype#669] -[visit_exp limits#669] -[visit_id limits#669] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free @@ -29124,16 +25639,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id at] not free [visit_exp M] [visit_id M] not free -[check_dims] C X*#8907 X*#8975 addrtype#681 at i#8140 lim limits#681 localidx*#1223 memarg memarg#21 memidx#49 memtype*#17 resulttype#2035 vectype?#2 x +[check_dims] C at lim memarg x [visit_exp C] [visit_id C] -[visit_exp `VLOAD`_instr{`vectype?#2`, memidx#49, memarg#21}(`V128`_vectype, ?(), x, memarg)] -[visit_exp `vectype?#2`] -[visit_id vectype?#2] -[visit_exp memidx#49] -[visit_id memidx#49] -[visit_exp memarg#21] -[visit_id memarg#21] +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(), x, memarg)] [visit_exp (`V128`_vectype, ?(), x, memarg)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -29142,46 +25651,30 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id x] [visit_exp memarg] [visit_id memarg] -[visit_exp `%->_%%`_instrtype{resulttype#2035, `localidx*#1223`}(`%`_resulttype{`X*#8907`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8975`}([`V128`_valtype]))] -[visit_exp resulttype#2035] -[visit_id resulttype#2035] -[visit_exp `localidx*#1223`] -[visit_id localidx*#1223] -[visit_exp (`%`_resulttype{`X*#8907`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8975`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#8907`}([(at : addrtype <: valtype)])] -[visit_exp `X*#8907`] -[visit_id X*#8907] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype)])] [visit_exp [(at : addrtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] [visit_exp at] [visit_id at] [visit_exp []] -[visit_exp `%`_resulttype{`X*#8975`}([`V128`_valtype])] -[visit_exp `X*#8975`] -[visit_id X*#8975] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[visit_exp (C.`MEMS`_context{`memtype*#17`}[x!`%`_idx{i#8140}.0] = `%%PAGE`_memtype{addrtype#681, limits#681}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#17`}[x!`%`_idx{i#8140}.0]] -[visit_exp C.`MEMS`_context{`memtype*#17`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#17`] -[visit_id memtype*#17] -[visit_exp x!`%`_idx{i#8140}.0] -[visit_exp x!`%`_idx{i#8140}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#8140] -[visit_id i#8140] -[visit_exp `%%PAGE`_memtype{addrtype#681, limits#681}(at, lim)] -[visit_exp addrtype#681] -[visit_id addrtype#681] -[visit_exp limits#681] -[visit_id limits#681] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free @@ -29195,33 +25688,17 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp $vsize(`V128`_vectype)] [visit_exp `V128`_vectype] [visit_exp ()] -[check_dims] C M M#16 N X*#8986 X*#9054 addrtype#693 at i#8166 i#8173 i#8197 lim limits#693 localidx*#1235 memarg memarg#23 memidx#51 memtype*#18 resulttype#2055 sx sx#24 sz#54 vectype?#3 x +[check_dims] C M N at lim memarg sx x [visit_exp C] [visit_id C] -[visit_exp `VLOAD`_instr{`vectype?#3`, memidx#51, memarg#23}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#54, M#16, sx#24, i#8166}(`%`_sz{i#8173}(M), N, sx)), x, memarg)] -[visit_exp `vectype?#3`] -[visit_id vectype?#3] -[visit_exp memidx#51] -[visit_id memidx#51] -[visit_exp memarg#23] -[visit_id memarg#23] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#54, M#16, sx#24, i#8166}(`%`_sz{i#8173}(M), N, sx)), x, memarg)] +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), N, sx)), x, memarg)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), N, sx)), x, memarg)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#54, M#16, sx#24, i#8166}(`%`_sz{i#8173}(M), N, sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#54, M#16, sx#24, i#8166}(`%`_sz{i#8173}(M), N, sx)] -[visit_exp sz#54] -[visit_id sz#54] -[visit_exp M#16] -[visit_id M#16] -[visit_exp sx#24] -[visit_id sx#24] -[visit_exp i#8166] -[visit_id i#8166] -[visit_exp (`%`_sz{i#8173}(M), N, sx)] -[visit_exp `%`_sz{i#8173}(M)] -[visit_exp i#8173] -[visit_id i#8173] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), N, sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(M), N, sx)] +[visit_exp (`%`_sz(M), N, sx)] +[visit_exp `%`_sz(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -29233,46 +25710,30 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id x] [visit_exp memarg] [visit_id memarg] -[visit_exp `%->_%%`_instrtype{resulttype#2055, `localidx*#1235`}(`%`_resulttype{`X*#8986`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9054`}([`V128`_valtype]))] -[visit_exp resulttype#2055] -[visit_id resulttype#2055] -[visit_exp `localidx*#1235`] -[visit_id localidx*#1235] -[visit_exp (`%`_resulttype{`X*#8986`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9054`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#8986`}([(at : addrtype <: valtype)])] -[visit_exp `X*#8986`] -[visit_id X*#8986] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype)])] [visit_exp [(at : addrtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] [visit_exp at] [visit_id at] [visit_exp []] -[visit_exp `%`_resulttype{`X*#9054`}([`V128`_valtype])] -[visit_exp `X*#9054`] -[visit_id X*#9054] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[visit_exp (C.`MEMS`_context{`memtype*#18`}[x!`%`_idx{i#8197}.0] = `%%PAGE`_memtype{addrtype#693, limits#693}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#18`}[x!`%`_idx{i#8197}.0]] -[visit_exp C.`MEMS`_context{`memtype*#18`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#18`] -[visit_id memtype*#18] -[visit_exp x!`%`_idx{i#8197}.0] -[visit_exp x!`%`_idx{i#8197}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#8197] -[visit_id i#8197] -[visit_exp `%%PAGE`_memtype{addrtype#693, limits#693}(at, lim)] -[visit_exp addrtype#693] -[visit_id addrtype#693] -[visit_exp limits#693] -[visit_id limits#693] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free @@ -29288,27 +25749,17 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id M] not free [visit_exp N] [visit_id N] not free -[check_dims] C N X*#9065 X*#9133 addrtype#705 at i#8229 i#8253 lim limits#705 localidx*#1247 memarg memarg#25 memidx#53 memtype*#19 resulttype#2075 sz#101 vectype?#4 x +[check_dims] C N at lim memarg x [visit_exp C] [visit_id C] -[visit_exp `VLOAD`_instr{`vectype?#4`, memidx#53, memarg#25}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#101}(`%`_sz{i#8229}(N))), x, memarg)] -[visit_exp `vectype?#4`] -[visit_id vectype?#4] -[visit_exp memidx#53] -[visit_id memidx#53] -[visit_exp memarg#25] -[visit_id memarg#25] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#101}(`%`_sz{i#8229}(N))), x, memarg)] +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, memarg)] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, memarg)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_{sz#101}(`%`_sz{i#8229}(N)))] -[visit_exp `SPLAT`_vloadop_{sz#101}(`%`_sz{i#8229}(N))] -[visit_exp sz#101] -[visit_id sz#101] -[visit_exp (`%`_sz{i#8229}(N))] -[visit_exp `%`_sz{i#8229}(N)] -[visit_exp i#8229] -[visit_id i#8229] +[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(N)))] +[visit_exp `SPLAT`_vloadop_(`%`_sz(N))] +[visit_exp (`%`_sz(N))] +[visit_exp `%`_sz(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -29316,46 +25767,30 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id x] [visit_exp memarg] [visit_id memarg] -[visit_exp `%->_%%`_instrtype{resulttype#2075, `localidx*#1247`}(`%`_resulttype{`X*#9065`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9133`}([`V128`_valtype]))] -[visit_exp resulttype#2075] -[visit_id resulttype#2075] -[visit_exp `localidx*#1247`] -[visit_id localidx*#1247] -[visit_exp (`%`_resulttype{`X*#9065`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9133`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#9065`}([(at : addrtype <: valtype)])] -[visit_exp `X*#9065`] -[visit_id X*#9065] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype)])] [visit_exp [(at : addrtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] [visit_exp at] [visit_id at] [visit_exp []] -[visit_exp `%`_resulttype{`X*#9133`}([`V128`_valtype])] -[visit_exp `X*#9133`] -[visit_id X*#9133] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[visit_exp (C.`MEMS`_context{`memtype*#19`}[x!`%`_idx{i#8253}.0] = `%%PAGE`_memtype{addrtype#705, limits#705}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#19`}[x!`%`_idx{i#8253}.0]] -[visit_exp C.`MEMS`_context{`memtype*#19`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#19`] -[visit_id memtype*#19] -[visit_exp x!`%`_idx{i#8253}.0] -[visit_exp x!`%`_idx{i#8253}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#8253] -[visit_id i#8253] -[visit_exp `%%PAGE`_memtype{addrtype#705, limits#705}(at, lim)] -[visit_exp addrtype#705] -[visit_id addrtype#705] -[visit_exp limits#705] -[visit_id limits#705] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free @@ -29368,29 +25803,17 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id at] not free [visit_exp N] [visit_id N] not free -[check_dims] C N X*#9144 X*#9212 addrtype#717 at i#8279 i#8286 i#8310 lim limits#717 localidx*#1259 memarg memarg#27 memidx#55 memtype*#20 resulttype#2095 sz#148 vectype?#5 x +[check_dims] C N at lim memarg x [visit_exp C] [visit_id C] -[visit_exp `VLOAD`_instr{`vectype?#5`, memidx#55, memarg#27}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#148, i#8279}(`%`_sz{i#8286}(N))), x, memarg)] -[visit_exp `vectype?#5`] -[visit_id vectype?#5] -[visit_exp memidx#55] -[visit_id memidx#55] -[visit_exp memarg#27] -[visit_id memarg#27] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#148, i#8279}(`%`_sz{i#8286}(N))), x, memarg)] +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, memarg)] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, memarg)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_{sz#148, i#8279}(`%`_sz{i#8286}(N)))] -[visit_exp `ZERO`_vloadop_{sz#148, i#8279}(`%`_sz{i#8286}(N))] -[visit_exp sz#148] -[visit_id sz#148] -[visit_exp i#8279] -[visit_id i#8279] -[visit_exp (`%`_sz{i#8286}(N))] -[visit_exp `%`_sz{i#8286}(N)] -[visit_exp i#8286] -[visit_id i#8286] +[visit_exp ?(`ZERO`_vloadop_(`%`_sz(N)))] +[visit_exp `ZERO`_vloadop_(`%`_sz(N))] +[visit_exp (`%`_sz(N))] +[visit_exp `%`_sz(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -29398,46 +25821,30 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id x] [visit_exp memarg] [visit_id memarg] -[visit_exp `%->_%%`_instrtype{resulttype#2095, `localidx*#1259`}(`%`_resulttype{`X*#9144`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9212`}([`V128`_valtype]))] -[visit_exp resulttype#2095] -[visit_id resulttype#2095] -[visit_exp `localidx*#1259`] -[visit_id localidx*#1259] -[visit_exp (`%`_resulttype{`X*#9144`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9212`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#9144`}([(at : addrtype <: valtype)])] -[visit_exp `X*#9144`] -[visit_id X*#9144] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] [visit_exp ([(at : addrtype <: valtype)])] [visit_exp [(at : addrtype <: valtype)]] [visit_exp (at : addrtype <: valtype)] [visit_exp at] [visit_id at] [visit_exp []] -[visit_exp `%`_resulttype{`X*#9212`}([`V128`_valtype])] -[visit_exp `X*#9212`] -[visit_id X*#9212] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[visit_exp (C.`MEMS`_context{`memtype*#20`}[x!`%`_idx{i#8310}.0] = `%%PAGE`_memtype{addrtype#717, limits#717}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#20`}[x!`%`_idx{i#8310}.0]] -[visit_exp C.`MEMS`_context{`memtype*#20`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#20`] -[visit_id memtype*#20] -[visit_exp x!`%`_idx{i#8310}.0] -[visit_exp x!`%`_idx{i#8310}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#8310] -[visit_id i#8310] -[visit_exp `%%PAGE`_memtype{addrtype#717, limits#717}(at, lim)] -[visit_exp addrtype#717] -[visit_id addrtype#717] -[visit_exp limits#717] -[visit_id limits#717] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free @@ -29450,26 +25857,14 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id at] not free [visit_exp N] [visit_id N] not free -[check_dims] C N X*#9233 X*#9282 addrtype#729 at i i#8318 i#8356 i#8370 laneidx#9 lim limits#729 localidx*#1271 memarg memarg#29 memidx#57 memtype*#21 resulttype#2115 sz#150 vectype#24 x +[check_dims] C N at i lim memarg x [visit_exp C] [visit_id C] -[visit_exp `VLOAD_LANE`_instr{vectype#24, sz#150, memidx#57, memarg#29, laneidx#9}(`V128`_vectype, `%`_sz{i#8318}(N), x, memarg, i)] -[visit_exp vectype#24] -[visit_id vectype#24] -[visit_exp sz#150] -[visit_id sz#150] -[visit_exp memidx#57] -[visit_id memidx#57] -[visit_exp memarg#29] -[visit_id memarg#29] -[visit_exp laneidx#9] -[visit_id laneidx#9] -[visit_exp (`V128`_vectype, `%`_sz{i#8318}(N), x, memarg, i)] +[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, memarg, i)] +[visit_exp (`V128`_vectype, `%`_sz(N), x, memarg, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#8318}(N)] -[visit_exp i#8318] -[visit_id i#8318] +[visit_exp `%`_sz(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -29479,15 +25874,9 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id memarg] [visit_exp i] [visit_id i] -[visit_exp `%->_%%`_instrtype{resulttype#2115, `localidx*#1271`}(`%`_resulttype{`X*#9233`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9282`}([`V128`_valtype]))] -[visit_exp resulttype#2115] -[visit_id resulttype#2115] -[visit_exp `localidx*#1271`] -[visit_id localidx*#1271] -[visit_exp (`%`_resulttype{`X*#9233`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9282`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#9233`}([(at : addrtype <: valtype) `V128`_valtype])] -[visit_exp `X*#9233`] -[visit_id X*#9233] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype) `V128`_valtype])] [visit_exp ([(at : addrtype <: valtype) `V128`_valtype])] [visit_exp [(at : addrtype <: valtype) `V128`_valtype]] [visit_exp (at : addrtype <: valtype)] @@ -29496,31 +25885,21 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#9282`}([`V128`_valtype])] -[visit_exp `X*#9282`] -[visit_id X*#9282] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[visit_exp (C.`MEMS`_context{`memtype*#21`}[x!`%`_idx{i#8356}.0] = `%%PAGE`_memtype{addrtype#729, limits#729}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#21`}[x!`%`_idx{i#8356}.0]] -[visit_exp C.`MEMS`_context{`memtype*#21`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#21`] -[visit_id memtype*#21] -[visit_exp x!`%`_idx{i#8356}.0] -[visit_exp x!`%`_idx{i#8356}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#8356] -[visit_id i#8356] -[visit_exp `%%PAGE`_memtype{addrtype#729, limits#729}(at, lim)] -[visit_exp addrtype#729] -[visit_id addrtype#729] -[visit_exp limits#729] -[visit_id limits#729] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free @@ -29533,30 +25912,22 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id at] not free [visit_exp N] [visit_id N] not free -[visit_exp ((i!`%`_laneidx{i#8370}.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat)))] -[visit_exp (i!`%`_laneidx{i#8370}.0 : nat <:> rat)] -[visit_exp i!`%`_laneidx{i#8370}.0] -[visit_exp i!`%`_laneidx{i#8370}] +[visit_exp ((i!`%`_laneidx.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat)))] +[visit_exp (i!`%`_laneidx.0 : nat <:> rat)] +[visit_exp i!`%`_laneidx.0] +[visit_exp i!`%`_laneidx] [visit_exp i] [visit_id i] not free -[visit_exp i#8370] -[visit_id i#8370] [visit_exp ((128 : nat <:> rat) / (N : nat <:> rat))] [visit_exp (128 : nat <:> rat)] [visit_exp 128] [visit_exp (N : nat <:> rat)] [visit_exp N] [visit_id N] not free -[check_dims] C X*#9303 X*#9352 addrtype#741 at i#8394 lim limits#741 localidx*#1283 memarg memarg#31 memidx#59 memtype*#22 resulttype#2135 vectype#26 x +[check_dims] C at lim memarg x [visit_exp C] [visit_id C] -[visit_exp `VSTORE`_instr{vectype#26, memidx#59, memarg#31}(`V128`_vectype, x, memarg)] -[visit_exp vectype#26] -[visit_id vectype#26] -[visit_exp memidx#59] -[visit_id memidx#59] -[visit_exp memarg#31] -[visit_id memarg#31] +[visit_exp `VSTORE`_instr(`V128`_vectype, x, memarg)] [visit_exp (`V128`_vectype, x, memarg)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -29564,15 +25935,9 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id x] [visit_exp memarg] [visit_id memarg] -[visit_exp `%->_%%`_instrtype{resulttype#2135, `localidx*#1283`}(`%`_resulttype{`X*#9303`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9352`}([]))] -[visit_exp resulttype#2135] -[visit_id resulttype#2135] -[visit_exp `localidx*#1283`] -[visit_id localidx*#1283] -[visit_exp (`%`_resulttype{`X*#9303`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9352`}([]))] -[visit_exp `%`_resulttype{`X*#9303`}([(at : addrtype <: valtype) `V128`_valtype])] -[visit_exp `X*#9303`] -[visit_id X*#9303] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype) `V128`_valtype])] [visit_exp ([(at : addrtype <: valtype) `V128`_valtype])] [visit_exp [(at : addrtype <: valtype) `V128`_valtype]] [visit_exp (at : addrtype <: valtype)] @@ -29581,29 +25946,19 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#9352`}([])] -[visit_exp `X*#9352`] -[visit_id X*#9352] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`MEMS`_context{`memtype*#22`}[x!`%`_idx{i#8394}.0] = `%%PAGE`_memtype{addrtype#741, limits#741}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#22`}[x!`%`_idx{i#8394}.0]] -[visit_exp C.`MEMS`_context{`memtype*#22`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#22`] -[visit_id memtype*#22] -[visit_exp x!`%`_idx{i#8394}.0] -[visit_exp x!`%`_idx{i#8394}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#8394] -[visit_id i#8394] -[visit_exp `%%PAGE`_memtype{addrtype#741, limits#741}(at, lim)] -[visit_exp addrtype#741] -[visit_id addrtype#741] -[visit_exp limits#741] -[visit_id limits#741] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free @@ -29617,26 +25972,14 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp $vsize(`V128`_vectype)] [visit_exp `V128`_vectype] [visit_exp ()] -[check_dims] C N X*#9373 X*#9422 addrtype#753 at i i#8402 i#8440 i#8454 laneidx#11 lim limits#753 localidx*#1295 memarg memarg#33 memidx#61 memtype*#23 resulttype#2155 sz#152 vectype#28 x +[check_dims] C N at i lim memarg x [visit_exp C] [visit_id C] -[visit_exp `VSTORE_LANE`_instr{vectype#28, sz#152, memidx#61, memarg#33, laneidx#11}(`V128`_vectype, `%`_sz{i#8402}(N), x, memarg, i)] -[visit_exp vectype#28] -[visit_id vectype#28] -[visit_exp sz#152] -[visit_id sz#152] -[visit_exp memidx#61] -[visit_id memidx#61] -[visit_exp memarg#33] -[visit_id memarg#33] -[visit_exp laneidx#11] -[visit_id laneidx#11] -[visit_exp (`V128`_vectype, `%`_sz{i#8402}(N), x, memarg, i)] +[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, memarg, i)] +[visit_exp (`V128`_vectype, `%`_sz(N), x, memarg, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#8402}(N)] -[visit_exp i#8402] -[visit_id i#8402] +[visit_exp `%`_sz(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -29646,15 +25989,9 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id memarg] [visit_exp i] [visit_id i] -[visit_exp `%->_%%`_instrtype{resulttype#2155, `localidx*#1295`}(`%`_resulttype{`X*#9373`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9422`}([]))] -[visit_exp resulttype#2155] -[visit_id resulttype#2155] -[visit_exp `localidx*#1295`] -[visit_id localidx*#1295] -[visit_exp (`%`_resulttype{`X*#9373`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9422`}([]))] -[visit_exp `%`_resulttype{`X*#9373`}([(at : addrtype <: valtype) `V128`_valtype])] -[visit_exp `X*#9373`] -[visit_id X*#9373] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([(at : addrtype <: valtype) `V128`_valtype])] [visit_exp ([(at : addrtype <: valtype) `V128`_valtype])] [visit_exp [(at : addrtype <: valtype) `V128`_valtype]] [visit_exp (at : addrtype <: valtype)] @@ -29663,29 +26000,19 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#9422`}([])] -[visit_exp `X*#9422`] -[visit_id X*#9422] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp (C.`MEMS`_context{`memtype*#23`}[x!`%`_idx{i#8440}.0] = `%%PAGE`_memtype{addrtype#753, limits#753}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#23`}[x!`%`_idx{i#8440}.0]] -[visit_exp C.`MEMS`_context{`memtype*#23`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#23`] -[visit_id memtype*#23] -[visit_exp x!`%`_idx{i#8440}.0] -[visit_exp x!`%`_idx{i#8440}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#8440] -[visit_id i#8440] -[visit_exp `%%PAGE`_memtype{addrtype#753, limits#753}(at, lim)] -[visit_exp addrtype#753] -[visit_id addrtype#753] -[visit_exp limits#753] -[visit_id limits#753] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free @@ -29698,105 +26025,75 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id at] not free [visit_exp N] [visit_id N] not free -[visit_exp ((i!`%`_laneidx{i#8454}.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat)))] -[visit_exp (i!`%`_laneidx{i#8454}.0 : nat <:> rat)] -[visit_exp i!`%`_laneidx{i#8454}.0] -[visit_exp i!`%`_laneidx{i#8454}] +[visit_exp ((i!`%`_laneidx.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat)))] +[visit_exp (i!`%`_laneidx.0 : nat <:> rat)] +[visit_exp i!`%`_laneidx.0] +[visit_exp i!`%`_laneidx] [visit_exp i] [visit_id i] not free -[visit_exp i#8454] -[visit_id i#8454] [visit_exp ((128 : nat <:> rat) / (N : nat <:> rat))] [visit_exp (128 : nat <:> rat)] [visit_exp 128] [visit_exp (N : nat <:> rat)] [visit_exp N] [visit_id N] not free -[check_dims] C X*#9443 X*#9492 c_nt localidx*#1307 nt numtype#19 resulttype#2175 +[check_dims] C c_nt nt [visit_exp C] [visit_id C] -[visit_exp `CONST`_instr{numtype#19}(nt, c_nt)] -[visit_exp numtype#19] -[visit_id numtype#19] +[visit_exp `CONST`_instr(nt, c_nt)] [visit_exp (nt, c_nt)] [visit_exp nt] [visit_id nt] [visit_exp c_nt] [visit_id c_nt] -[visit_exp `%->_%%`_instrtype{resulttype#2175, `localidx*#1307`}(`%`_resulttype{`X*#9443`}([]), [], `%`_resulttype{`X*#9492`}([(nt : numtype <: valtype)]))] -[visit_exp resulttype#2175] -[visit_id resulttype#2175] -[visit_exp `localidx*#1307`] -[visit_id localidx*#1307] -[visit_exp (`%`_resulttype{`X*#9443`}([]), [], `%`_resulttype{`X*#9492`}([(nt : numtype <: valtype)]))] -[visit_exp `%`_resulttype{`X*#9443`}([])] -[visit_exp `X*#9443`] -[visit_id X*#9443] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(nt : numtype <: valtype)]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([(nt : numtype <: valtype)]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#9492`}([(nt : numtype <: valtype)])] -[visit_exp `X*#9492`] -[visit_id X*#9492] +[visit_exp `%`_resulttype([(nt : numtype <: valtype)])] [visit_exp ([(nt : numtype <: valtype)])] [visit_exp [(nt : numtype <: valtype)]] [visit_exp (nt : numtype <: valtype)] [visit_exp nt] [visit_id nt] not free -[check_dims] C X*#9503 X*#9571 localidx*#1319 nt numtype#21 resulttype#2195 unop_nt +[check_dims] C nt unop_nt [visit_exp C] [visit_id C] -[visit_exp `UNOP`_instr{numtype#21}(nt, unop_nt)] -[visit_exp numtype#21] -[visit_id numtype#21] +[visit_exp `UNOP`_instr(nt, unop_nt)] [visit_exp (nt, unop_nt)] [visit_exp nt] [visit_id nt] [visit_exp unop_nt] [visit_id unop_nt] -[visit_exp `%->_%%`_instrtype{resulttype#2195, `localidx*#1319`}(`%`_resulttype{`X*#9503`}([(nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9571`}([(nt : numtype <: valtype)]))] -[visit_exp resulttype#2195] -[visit_id resulttype#2195] -[visit_exp `localidx*#1319`] -[visit_id localidx*#1319] -[visit_exp (`%`_resulttype{`X*#9503`}([(nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9571`}([(nt : numtype <: valtype)]))] -[visit_exp `%`_resulttype{`X*#9503`}([(nt : numtype <: valtype)])] -[visit_exp `X*#9503`] -[visit_id X*#9503] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))] +[visit_exp (`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))] +[visit_exp `%`_resulttype([(nt : numtype <: valtype)])] [visit_exp ([(nt : numtype <: valtype)])] [visit_exp [(nt : numtype <: valtype)]] [visit_exp (nt : numtype <: valtype)] [visit_exp nt] [visit_id nt] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#9571`}([(nt : numtype <: valtype)])] -[visit_exp `X*#9571`] -[visit_id X*#9571] +[visit_exp `%`_resulttype([(nt : numtype <: valtype)])] [visit_exp ([(nt : numtype <: valtype)])] [visit_exp [(nt : numtype <: valtype)]] [visit_exp (nt : numtype <: valtype)] [visit_exp nt] [visit_id nt] not free -[check_dims] C X*#9592 X*#9641 binop_nt localidx*#1331 nt numtype#23 resulttype#2215 +[check_dims] C binop_nt nt [visit_exp C] [visit_id C] -[visit_exp `BINOP`_instr{numtype#23}(nt, binop_nt)] -[visit_exp numtype#23] -[visit_id numtype#23] +[visit_exp `BINOP`_instr(nt, binop_nt)] [visit_exp (nt, binop_nt)] [visit_exp nt] [visit_id nt] [visit_exp binop_nt] [visit_id binop_nt] -[visit_exp `%->_%%`_instrtype{resulttype#2215, `localidx*#1331`}(`%`_resulttype{`X*#9592`}([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9641`}([(nt : numtype <: valtype)]))] -[visit_exp resulttype#2215] -[visit_id resulttype#2215] -[visit_exp `localidx*#1331`] -[visit_id localidx*#1331] -[visit_exp (`%`_resulttype{`X*#9592`}([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9641`}([(nt : numtype <: valtype)]))] -[visit_exp `%`_resulttype{`X*#9592`}([(nt : numtype <: valtype) (nt : numtype <: valtype)])] -[visit_exp `X*#9592`] -[visit_id X*#9592] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))] +[visit_exp (`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))] +[visit_exp `%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)])] [visit_exp ([(nt : numtype <: valtype) (nt : numtype <: valtype)])] [visit_exp [(nt : numtype <: valtype) (nt : numtype <: valtype)]] [visit_exp (nt : numtype <: valtype)] @@ -29806,67 +26103,47 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp nt] [visit_id nt] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#9641`}([(nt : numtype <: valtype)])] -[visit_exp `X*#9641`] -[visit_id X*#9641] +[visit_exp `%`_resulttype([(nt : numtype <: valtype)])] [visit_exp ([(nt : numtype <: valtype)])] [visit_exp [(nt : numtype <: valtype)]] [visit_exp (nt : numtype <: valtype)] [visit_exp nt] [visit_id nt] not free -[check_dims] C X*#9652 X*#9720 localidx*#1343 nt numtype#25 resulttype#2235 testop_nt +[check_dims] C nt testop_nt [visit_exp C] [visit_id C] -[visit_exp `TESTOP`_instr{numtype#25}(nt, testop_nt)] -[visit_exp numtype#25] -[visit_id numtype#25] +[visit_exp `TESTOP`_instr(nt, testop_nt)] [visit_exp (nt, testop_nt)] [visit_exp nt] [visit_id nt] [visit_exp testop_nt] [visit_id testop_nt] -[visit_exp `%->_%%`_instrtype{resulttype#2235, `localidx*#1343`}(`%`_resulttype{`X*#9652`}([(nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9720`}([`I32`_valtype]))] -[visit_exp resulttype#2235] -[visit_id resulttype#2235] -[visit_exp `localidx*#1343`] -[visit_id localidx*#1343] -[visit_exp (`%`_resulttype{`X*#9652`}([(nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9720`}([`I32`_valtype]))] -[visit_exp `%`_resulttype{`X*#9652`}([(nt : numtype <: valtype)])] -[visit_exp `X*#9652`] -[visit_id X*#9652] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp (`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp `%`_resulttype([(nt : numtype <: valtype)])] [visit_exp ([(nt : numtype <: valtype)])] [visit_exp [(nt : numtype <: valtype)]] [visit_exp (nt : numtype <: valtype)] [visit_exp nt] [visit_id nt] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#9720`}([`I32`_valtype])] -[visit_exp `X*#9720`] -[visit_id X*#9720] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] [visit_exp ()] -[check_dims] C X*#9741 X*#9790 localidx*#1355 nt numtype#27 relop_nt resulttype#2255 +[check_dims] C nt relop_nt [visit_exp C] [visit_id C] -[visit_exp `RELOP`_instr{numtype#27}(nt, relop_nt)] -[visit_exp numtype#27] -[visit_id numtype#27] +[visit_exp `RELOP`_instr(nt, relop_nt)] [visit_exp (nt, relop_nt)] [visit_exp nt] [visit_id nt] [visit_exp relop_nt] [visit_id relop_nt] -[visit_exp `%->_%%`_instrtype{resulttype#2255, `localidx*#1355`}(`%`_resulttype{`X*#9741`}([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9790`}([`I32`_valtype]))] -[visit_exp resulttype#2255] -[visit_id resulttype#2255] -[visit_exp `localidx*#1355`] -[visit_id localidx*#1355] -[visit_exp (`%`_resulttype{`X*#9741`}([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9790`}([`I32`_valtype]))] -[visit_exp `%`_resulttype{`X*#9741`}([(nt : numtype <: valtype) (nt : numtype <: valtype)])] -[visit_exp `X*#9741`] -[visit_id X*#9741] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp (`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp `%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)])] [visit_exp ([(nt : numtype <: valtype) (nt : numtype <: valtype)])] [visit_exp [(nt : numtype <: valtype) (nt : numtype <: valtype)]] [visit_exp (nt : numtype <: valtype)] @@ -29876,21 +26153,15 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp nt] [visit_id nt] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#9790`}([`I32`_valtype])] -[visit_exp `X*#9790`] -[visit_id X*#9790] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] [visit_exp ()] -[check_dims] C X*#9801 X*#9869 cvtop localidx*#1367 nt_1 nt_2 numtype_1#3 numtype_2#3 resulttype#2275 +[check_dims] C cvtop nt_1 nt_2 [visit_exp C] [visit_id C] -[visit_exp `CVTOP`_instr{numtype_1#3, numtype_2#3}(nt_1, nt_2, cvtop)] -[visit_exp numtype_1#3] -[visit_id numtype_1#3] -[visit_exp numtype_2#3] -[visit_id numtype_2#3] +[visit_exp `CVTOP`_instr(nt_1, nt_2, cvtop)] [visit_exp (nt_1, nt_2, cvtop)] [visit_exp nt_1] [visit_id nt_1] @@ -29898,115 +26169,75 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id nt_2] [visit_exp cvtop] [visit_id cvtop] -[visit_exp `%->_%%`_instrtype{resulttype#2275, `localidx*#1367`}(`%`_resulttype{`X*#9801`}([(nt_2 : numtype <: valtype)]), [], `%`_resulttype{`X*#9869`}([(nt_1 : numtype <: valtype)]))] -[visit_exp resulttype#2275] -[visit_id resulttype#2275] -[visit_exp `localidx*#1367`] -[visit_id localidx*#1367] -[visit_exp (`%`_resulttype{`X*#9801`}([(nt_2 : numtype <: valtype)]), [], `%`_resulttype{`X*#9869`}([(nt_1 : numtype <: valtype)]))] -[visit_exp `%`_resulttype{`X*#9801`}([(nt_2 : numtype <: valtype)])] -[visit_exp `X*#9801`] -[visit_id X*#9801] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([(nt_2 : numtype <: valtype)]), [], `%`_resulttype([(nt_1 : numtype <: valtype)]))] +[visit_exp (`%`_resulttype([(nt_2 : numtype <: valtype)]), [], `%`_resulttype([(nt_1 : numtype <: valtype)]))] +[visit_exp `%`_resulttype([(nt_2 : numtype <: valtype)])] [visit_exp ([(nt_2 : numtype <: valtype)])] [visit_exp [(nt_2 : numtype <: valtype)]] [visit_exp (nt_2 : numtype <: valtype)] [visit_exp nt_2] [visit_id nt_2] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#9869`}([(nt_1 : numtype <: valtype)])] -[visit_exp `X*#9869`] -[visit_id X*#9869] +[visit_exp `%`_resulttype([(nt_1 : numtype <: valtype)])] [visit_exp ([(nt_1 : numtype <: valtype)])] [visit_exp [(nt_1 : numtype <: valtype)]] [visit_exp (nt_1 : numtype <: valtype)] [visit_exp nt_1] [visit_id nt_1] not free -[check_dims] C X*#9890 X*#9939 c localidx*#1379 resulttype#2295 vectype#30 +[check_dims] C c [visit_exp C] [visit_id C] -[visit_exp `VCONST`_instr{vectype#30}(`V128`_vectype, c)] -[visit_exp vectype#30] -[visit_id vectype#30] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp `%->_%%`_instrtype{resulttype#2295, `localidx*#1379`}(`%`_resulttype{`X*#9890`}([]), [], `%`_resulttype{`X*#9939`}([`V128`_valtype]))] -[visit_exp resulttype#2295] -[visit_id resulttype#2295] -[visit_exp `localidx*#1379`] -[visit_id localidx*#1379] -[visit_exp (`%`_resulttype{`X*#9890`}([]), [], `%`_resulttype{`X*#9939`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#9890`}([])] -[visit_exp `X*#9890`] -[visit_id X*#9890] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#9939`}([`V128`_valtype])] -[visit_exp `X*#9939`] -[visit_id X*#9939] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#10007 X*#9958 localidx*#1391 resulttype#2315 vectype#32 vvunop vvunop#3 +[check_dims] C vvunop [visit_exp C] [visit_id C] -[visit_exp `VVUNOP`_instr{vectype#32, vvunop#3}(`V128`_vectype, vvunop)] -[visit_exp vectype#32] -[visit_id vectype#32] -[visit_exp vvunop#3] -[visit_id vvunop#3] +[visit_exp `VVUNOP`_instr(`V128`_vectype, vvunop)] [visit_exp (`V128`_vectype, vvunop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp vvunop] [visit_id vvunop] -[visit_exp `%->_%%`_instrtype{resulttype#2315, `localidx*#1391`}(`%`_resulttype{`X*#9958`}([`V128`_valtype]), [], `%`_resulttype{`X*#10007`}([`V128`_valtype]))] -[visit_exp resulttype#2315] -[visit_id resulttype#2315] -[visit_exp `localidx*#1391`] -[visit_id localidx*#1391] -[visit_exp (`%`_resulttype{`X*#9958`}([`V128`_valtype]), [], `%`_resulttype{`X*#10007`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#9958`}([`V128`_valtype])] -[visit_exp `X*#9958`] -[visit_id X*#9958] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10007`}([`V128`_valtype])] -[visit_exp `X*#10007`] -[visit_id X*#10007] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#10028 X*#10077 localidx*#1403 resulttype#2335 vectype#34 vvbinop vvbinop#3 +[check_dims] C vvbinop [visit_exp C] [visit_id C] -[visit_exp `VVBINOP`_instr{vectype#34, vvbinop#3}(`V128`_vectype, vvbinop)] -[visit_exp vectype#34] -[visit_id vectype#34] -[visit_exp vvbinop#3] -[visit_id vvbinop#3] +[visit_exp `VVBINOP`_instr(`V128`_vectype, vvbinop)] [visit_exp (`V128`_vectype, vvbinop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp vvbinop] [visit_id vvbinop] -[visit_exp `%->_%%`_instrtype{resulttype#2335, `localidx*#1403`}(`%`_resulttype{`X*#10028`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10077`}([`V128`_valtype]))] -[visit_exp resulttype#2335] -[visit_id resulttype#2335] -[visit_exp `localidx*#1403`] -[visit_id localidx*#1403] -[visit_exp (`%`_resulttype{`X*#10028`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10077`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#10028`}([`V128`_valtype `V128`_valtype])] -[visit_exp `X*#10028`] -[visit_id X*#10028] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] [visit_exp ([`V128`_valtype `V128`_valtype])] [visit_exp [`V128`_valtype `V128`_valtype]] [visit_exp `V128`_valtype] @@ -30014,35 +26245,23 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10077`}([`V128`_valtype])] -[visit_exp `X*#10077`] -[visit_id X*#10077] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#10098 X*#10147 localidx*#1415 resulttype#2355 vectype#36 vvternop vvternop#3 +[check_dims] C vvternop [visit_exp C] [visit_id C] -[visit_exp `VVTERNOP`_instr{vectype#36, vvternop#3}(`V128`_vectype, vvternop)] -[visit_exp vectype#36] -[visit_id vectype#36] -[visit_exp vvternop#3] -[visit_id vvternop#3] +[visit_exp `VVTERNOP`_instr(`V128`_vectype, vvternop)] [visit_exp (`V128`_vectype, vvternop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp vvternop] [visit_id vvternop] -[visit_exp `%->_%%`_instrtype{resulttype#2355, `localidx*#1415`}(`%`_resulttype{`X*#10098`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10147`}([`V128`_valtype]))] -[visit_exp resulttype#2355] -[visit_id resulttype#2355] -[visit_exp `localidx*#1415`] -[visit_id localidx*#1415] -[visit_exp (`%`_resulttype{`X*#10098`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10147`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#10098`}([`V128`_valtype `V128`_valtype `V128`_valtype])] -[visit_exp `X*#10098`] -[visit_id X*#10098] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype])] [visit_exp ([`V128`_valtype `V128`_valtype `V128`_valtype])] [visit_exp [`V128`_valtype `V128`_valtype `V128`_valtype]] [visit_exp `V128`_valtype] @@ -30052,99 +26271,67 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10147`}([`V128`_valtype])] -[visit_exp `X*#10147`] -[visit_id X*#10147] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#10166 X*#10215 localidx*#1427 resulttype#2375 vectype#38 vvtestop vvtestop#3 +[check_dims] C vvtestop [visit_exp C] [visit_id C] -[visit_exp `VVTESTOP`_instr{vectype#38, vvtestop#3}(`V128`_vectype, vvtestop)] -[visit_exp vectype#38] -[visit_id vectype#38] -[visit_exp vvtestop#3] -[visit_id vvtestop#3] +[visit_exp `VVTESTOP`_instr(`V128`_vectype, vvtestop)] [visit_exp (`V128`_vectype, vvtestop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp vvtestop] [visit_id vvtestop] -[visit_exp `%->_%%`_instrtype{resulttype#2375, `localidx*#1427`}(`%`_resulttype{`X*#10166`}([`V128`_valtype]), [], `%`_resulttype{`X*#10215`}([`I32`_valtype]))] -[visit_exp resulttype#2375] -[visit_id resulttype#2375] -[visit_exp `localidx*#1427`] -[visit_id localidx*#1427] -[visit_exp (`%`_resulttype{`X*#10166`}([`V128`_valtype]), [], `%`_resulttype{`X*#10215`}([`I32`_valtype]))] -[visit_exp `%`_resulttype{`X*#10166`}([`V128`_valtype])] -[visit_exp `X*#10166`] -[visit_id X*#10166] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10215`}([`I32`_valtype])] -[visit_exp `X*#10215`] -[visit_id X*#10215] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] [visit_exp ()] -[check_dims] C X*#10234 X*#10283 localidx*#1439 resulttype#2395 sh shape#269 vunop +[check_dims] C sh vunop [visit_exp C] [visit_id C] -[visit_exp `VUNOP`_instr{shape#269}(sh, vunop)] -[visit_exp shape#269] -[visit_id shape#269] +[visit_exp `VUNOP`_instr(sh, vunop)] [visit_exp (sh, vunop)] [visit_exp sh] [visit_id sh] [visit_exp vunop] [visit_id vunop] -[visit_exp `%->_%%`_instrtype{resulttype#2395, `localidx*#1439`}(`%`_resulttype{`X*#10234`}([`V128`_valtype]), [], `%`_resulttype{`X*#10283`}([`V128`_valtype]))] -[visit_exp resulttype#2395] -[visit_id resulttype#2395] -[visit_exp `localidx*#1439`] -[visit_id localidx*#1439] -[visit_exp (`%`_resulttype{`X*#10234`}([`V128`_valtype]), [], `%`_resulttype{`X*#10283`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#10234`}([`V128`_valtype])] -[visit_exp `X*#10234`] -[visit_id X*#10234] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10283`}([`V128`_valtype])] -[visit_exp `X*#10283`] -[visit_id X*#10283] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#10304 X*#10353 localidx*#1451 resulttype#2415 sh shape#271 vbinop +[check_dims] C sh vbinop [visit_exp C] [visit_id C] -[visit_exp `VBINOP`_instr{shape#271}(sh, vbinop)] -[visit_exp shape#271] -[visit_id shape#271] +[visit_exp `VBINOP`_instr(sh, vbinop)] [visit_exp (sh, vbinop)] [visit_exp sh] [visit_id sh] [visit_exp vbinop] [visit_id vbinop] -[visit_exp `%->_%%`_instrtype{resulttype#2415, `localidx*#1451`}(`%`_resulttype{`X*#10304`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10353`}([`V128`_valtype]))] -[visit_exp resulttype#2415] -[visit_id resulttype#2415] -[visit_exp `localidx*#1451`] -[visit_id localidx*#1451] -[visit_exp (`%`_resulttype{`X*#10304`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10353`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#10304`}([`V128`_valtype `V128`_valtype])] -[visit_exp `X*#10304`] -[visit_id X*#10304] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] [visit_exp ([`V128`_valtype `V128`_valtype])] [visit_exp [`V128`_valtype `V128`_valtype]] [visit_exp `V128`_valtype] @@ -30152,33 +26339,23 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10353`}([`V128`_valtype])] -[visit_exp `X*#10353`] -[visit_id X*#10353] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#10374 X*#10423 localidx*#1463 resulttype#2435 sh shape#273 vternop +[check_dims] C sh vternop [visit_exp C] [visit_id C] -[visit_exp `VTERNOP`_instr{shape#273}(sh, vternop)] -[visit_exp shape#273] -[visit_id shape#273] +[visit_exp `VTERNOP`_instr(sh, vternop)] [visit_exp (sh, vternop)] [visit_exp sh] [visit_id sh] [visit_exp vternop] [visit_id vternop] -[visit_exp `%->_%%`_instrtype{resulttype#2435, `localidx*#1463`}(`%`_resulttype{`X*#10374`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10423`}([`V128`_valtype]))] -[visit_exp resulttype#2435] -[visit_id resulttype#2435] -[visit_exp `localidx*#1463`] -[visit_id localidx*#1463] -[visit_exp (`%`_resulttype{`X*#10374`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10423`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#10374`}([`V128`_valtype `V128`_valtype `V128`_valtype])] -[visit_exp `X*#10374`] -[visit_id X*#10374] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype])] [visit_exp ([`V128`_valtype `V128`_valtype `V128`_valtype])] [visit_exp [`V128`_valtype `V128`_valtype `V128`_valtype]] [visit_exp `V128`_valtype] @@ -30188,65 +26365,45 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10423`}([`V128`_valtype])] -[visit_exp `X*#10423`] -[visit_id X*#10423] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#10442 X*#10491 localidx*#1475 resulttype#2455 sh shape#275 vtestop +[check_dims] C sh vtestop [visit_exp C] [visit_id C] -[visit_exp `VTESTOP`_instr{shape#275}(sh, vtestop)] -[visit_exp shape#275] -[visit_id shape#275] +[visit_exp `VTESTOP`_instr(sh, vtestop)] [visit_exp (sh, vtestop)] [visit_exp sh] [visit_id sh] [visit_exp vtestop] [visit_id vtestop] -[visit_exp `%->_%%`_instrtype{resulttype#2455, `localidx*#1475`}(`%`_resulttype{`X*#10442`}([`V128`_valtype]), [], `%`_resulttype{`X*#10491`}([`I32`_valtype]))] -[visit_exp resulttype#2455] -[visit_id resulttype#2455] -[visit_exp `localidx*#1475`] -[visit_id localidx*#1475] -[visit_exp (`%`_resulttype{`X*#10442`}([`V128`_valtype]), [], `%`_resulttype{`X*#10491`}([`I32`_valtype]))] -[visit_exp `%`_resulttype{`X*#10442`}([`V128`_valtype])] -[visit_exp `X*#10442`] -[visit_id X*#10442] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10491`}([`I32`_valtype])] -[visit_exp `X*#10491`] -[visit_id X*#10491] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] [visit_exp ()] -[check_dims] C X*#10512 X*#10561 localidx*#1487 resulttype#2475 sh shape#277 vrelop +[check_dims] C sh vrelop [visit_exp C] [visit_id C] -[visit_exp `VRELOP`_instr{shape#277}(sh, vrelop)] -[visit_exp shape#277] -[visit_id shape#277] +[visit_exp `VRELOP`_instr(sh, vrelop)] [visit_exp (sh, vrelop)] [visit_exp sh] [visit_id sh] [visit_exp vrelop] [visit_id vrelop] -[visit_exp `%->_%%`_instrtype{resulttype#2475, `localidx*#1487`}(`%`_resulttype{`X*#10512`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10561`}([`V128`_valtype]))] -[visit_exp resulttype#2475] -[visit_id resulttype#2475] -[visit_exp `localidx*#1487`] -[visit_id localidx*#1487] -[visit_exp (`%`_resulttype{`X*#10512`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10561`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#10512`}([`V128`_valtype `V128`_valtype])] -[visit_exp `X*#10512`] -[visit_id X*#10512] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] [visit_exp ([`V128`_valtype `V128`_valtype])] [visit_exp [`V128`_valtype `V128`_valtype]] [visit_exp `V128`_valtype] @@ -30254,33 +26411,23 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10561`}([`V128`_valtype])] -[visit_exp `X*#10561`] -[visit_id X*#10561] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#10582 X*#10631 ishape#5 localidx*#1499 resulttype#2495 sh vshiftop +[check_dims] C sh vshiftop [visit_exp C] [visit_id C] -[visit_exp `VSHIFTOP`_instr{ishape#5}(sh, vshiftop)] -[visit_exp ishape#5] -[visit_id ishape#5] +[visit_exp `VSHIFTOP`_instr(sh, vshiftop)] [visit_exp (sh, vshiftop)] [visit_exp sh] [visit_id sh] [visit_exp vshiftop] [visit_id vshiftop] -[visit_exp `%->_%%`_instrtype{resulttype#2495, `localidx*#1499`}(`%`_resulttype{`X*#10582`}([`V128`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#10631`}([`V128`_valtype]))] -[visit_exp resulttype#2495] -[visit_id resulttype#2495] -[visit_exp `localidx*#1499`] -[visit_id localidx*#1499] -[visit_exp (`%`_resulttype{`X*#10582`}([`V128`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#10631`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#10582`}([`V128`_valtype `I32`_valtype])] -[visit_exp `X*#10582`] -[visit_id X*#10582] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `I32`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype `I32`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype `I32`_valtype])] [visit_exp ([`V128`_valtype `I32`_valtype])] [visit_exp [`V128`_valtype `I32`_valtype]] [visit_exp `V128`_valtype] @@ -30288,63 +26435,43 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10631`}([`V128`_valtype])] -[visit_exp `X*#10631`] -[visit_id X*#10631] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#10650 X*#10699 ishape#7 localidx*#1511 resulttype#2515 sh +[check_dims] C sh [visit_exp C] [visit_id C] -[visit_exp `VBITMASK`_instr{ishape#7}(sh)] -[visit_exp ishape#7] -[visit_id ishape#7] +[visit_exp `VBITMASK`_instr(sh)] [visit_exp (sh)] [visit_exp sh] [visit_id sh] -[visit_exp `%->_%%`_instrtype{resulttype#2515, `localidx*#1511`}(`%`_resulttype{`X*#10650`}([`V128`_valtype]), [], `%`_resulttype{`X*#10699`}([`I32`_valtype]))] -[visit_exp resulttype#2515] -[visit_id resulttype#2515] -[visit_exp `localidx*#1511`] -[visit_id localidx*#1511] -[visit_exp (`%`_resulttype{`X*#10650`}([`V128`_valtype]), [], `%`_resulttype{`X*#10699`}([`I32`_valtype]))] -[visit_exp `%`_resulttype{`X*#10650`}([`V128`_valtype])] -[visit_exp `X*#10650`] -[visit_id X*#10650] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10699`}([`I32`_valtype])] -[visit_exp `X*#10699`] -[visit_id X*#10699] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] [visit_exp ()] -[check_dims] C X*#10720 X*#10769 bshape#5 localidx*#1523 resulttype#2535 sh vswizzlop +[check_dims] C sh vswizzlop [visit_exp C] [visit_id C] -[visit_exp `VSWIZZLOP`_instr{bshape#5}(sh, vswizzlop)] -[visit_exp bshape#5] -[visit_id bshape#5] +[visit_exp `VSWIZZLOP`_instr(sh, vswizzlop)] [visit_exp (sh, vswizzlop)] [visit_exp sh] [visit_id sh] [visit_exp vswizzlop] [visit_id vswizzlop] -[visit_exp `%->_%%`_instrtype{resulttype#2535, `localidx*#1523`}(`%`_resulttype{`X*#10720`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10769`}([`V128`_valtype]))] -[visit_exp resulttype#2535] -[visit_id resulttype#2535] -[visit_exp `localidx*#1523`] -[visit_id localidx*#1523] -[visit_exp (`%`_resulttype{`X*#10720`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10769`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#10720`}([`V128`_valtype `V128`_valtype])] -[visit_exp `X*#10720`] -[visit_id X*#10720] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] [visit_exp ([`V128`_valtype `V128`_valtype])] [visit_exp [`V128`_valtype `V128`_valtype]] [visit_exp `V128`_valtype] @@ -30352,25 +26479,15 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10769`}([`V128`_valtype])] -[visit_exp `X*#10769`] -[visit_id X*#10769] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#10790 X*#10839 bshape#7 i i#8480 i#8509 i#8523 laneidx*#3 localidx*#1535 resulttype#2555 sh shape#297 shape#304 +[check_dims] C i sh [visit_exp C] [visit_id C] -[visit_exp `VSHUFFLE`_instr{bshape#7, `laneidx*#3`, i#8480, shape#297}(sh, i*{i <- `i*`})] -[visit_exp bshape#7] -[visit_id bshape#7] -[visit_exp `laneidx*#3`] -[visit_id laneidx*#3] -[visit_exp i#8480] -[visit_id i#8480] -[visit_exp shape#297] -[visit_id shape#297] +[visit_exp `VSHUFFLE`_instr(sh, i*{i <- `i*`})] [visit_exp (sh, i*{i <- `i*`})] [visit_exp sh] [visit_id sh] @@ -30383,15 +26500,9 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `i*`] [visit_id i*] no dims [visit_id i*] -[visit_exp `%->_%%`_instrtype{resulttype#2555, `localidx*#1535`}(`%`_resulttype{`X*#10790`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10839`}([`V128`_valtype]))] -[visit_exp resulttype#2555] -[visit_id resulttype#2555] -[visit_exp `localidx*#1535`] -[visit_id localidx*#1535] -[visit_exp (`%`_resulttype{`X*#10790`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10839`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#10790`}([`V128`_valtype `V128`_valtype])] -[visit_exp `X*#10790`] -[visit_id X*#10790] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] [visit_exp ([`V128`_valtype `V128`_valtype])] [visit_exp [`V128`_valtype `V128`_valtype]] [visit_exp `V128`_valtype] @@ -30399,75 +26510,41 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10839`}([`V128`_valtype])] -[visit_exp `X*#10839`] -[visit_id X*#10839] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] [scope_enter i] -[scope_enter i#8509] -[scope_enter i#8523] -[scope_enter shape#304] -[visit_exp (i!`%`_laneidx{i#8523}.0 < (2 * $dim(sh!`%`_bshape{shape#304}.0)!`%`_dim{i#8509}.0))] -[visit_exp i!`%`_laneidx{i#8523}.0] -[visit_exp i!`%`_laneidx{i#8523}] +[visit_exp (i!`%`_laneidx.0 < (2 * $dim(sh!`%`_bshape.0)!`%`_dim.0))] +[visit_exp i!`%`_laneidx.0] +[visit_exp i!`%`_laneidx] [visit_exp i] [visit_id i] not free -[visit_exp i#8523] -[visit_id i#8523] not free -[visit_exp (2 * $dim(sh!`%`_bshape{shape#304}.0)!`%`_dim{i#8509}.0)] +[visit_exp (2 * $dim(sh!`%`_bshape.0)!`%`_dim.0)] [visit_exp 2] -[visit_exp $dim(sh!`%`_bshape{shape#304}.0)!`%`_dim{i#8509}.0] -[visit_exp $dim(sh!`%`_bshape{shape#304}.0)!`%`_dim{i#8509}] -[visit_exp $dim(sh!`%`_bshape{shape#304}.0)] -[visit_exp sh!`%`_bshape{shape#304}.0] -[visit_exp sh!`%`_bshape{shape#304}] +[visit_exp $dim(sh!`%`_bshape.0)!`%`_dim.0] +[visit_exp $dim(sh!`%`_bshape.0)!`%`_dim] +[visit_exp $dim(sh!`%`_bshape.0)] +[visit_exp sh!`%`_bshape.0] +[visit_exp sh!`%`_bshape] [visit_exp sh] [visit_id sh] not free -[visit_exp shape#304] -[visit_id shape#304] not free -[visit_exp i#8509] -[visit_id i#8509] not free [visit_id i] not free -[visit_id i#8509] not free -[visit_id i#8523] not free -[visit_id shape#304] not free -[scope_exit shape#304] -[scope_exit i#8523] -[scope_exit i#8509] [scope_exit i] [visit_exp `i*`] [visit_id i*] not free [visit_id i*] no dims -[visit_exp `i#8509*`] -[visit_id i#8509*] no dims -[visit_id i#8509*] -[visit_exp `i#8523*`] -[visit_id i#8523*] no dims -[visit_id i#8523*] -[visit_exp `shape#304*`] -[visit_id shape#304*] no dims -[visit_id shape#304*] -[check_dims] C X*#10850 X*#10916 localidx*#1547 resulttype#2575 sh shape#306 +[check_dims] C sh [visit_exp C] [visit_id C] -[visit_exp `VSPLAT`_instr{shape#306}(sh)] -[visit_exp shape#306] -[visit_id shape#306] +[visit_exp `VSPLAT`_instr(sh)] [visit_exp (sh)] [visit_exp sh] [visit_id sh] -[visit_exp `%->_%%`_instrtype{resulttype#2575, `localidx*#1547`}(`%`_resulttype{`X*#10850`}([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype{`X*#10916`}([`V128`_valtype]))] -[visit_exp resulttype#2575] -[visit_id resulttype#2575] -[visit_exp `localidx*#1547`] -[visit_id localidx*#1547] -[visit_exp (`%`_resulttype{`X*#10850`}([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype{`X*#10916`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#10850`}([($unpackshape(sh) : numtype <: valtype)])] -[visit_exp `X*#10850`] -[visit_id X*#10850] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([($unpackshape(sh) : numtype <: valtype)])] [visit_exp ([($unpackshape(sh) : numtype <: valtype)])] [visit_exp [($unpackshape(sh) : numtype <: valtype)]] [visit_exp ($unpackshape(sh) : numtype <: valtype)] @@ -30475,23 +26552,15 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp sh] [visit_id sh] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#10916`}([`V128`_valtype])] -[visit_exp `X*#10916`] -[visit_id X*#10916] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#10935 X*#10984 i i#8600 i#8602 laneidx#13 localidx*#1559 resulttype#2595 sh shape#308 sx sx?#11 +[check_dims] C i sh sx [visit_exp C] [visit_id C] -[visit_exp `VEXTRACT_LANE`_instr{shape#308, `sx?#11`, laneidx#13}(sh, sx?{sx <- `sx?`}, i)] -[visit_exp shape#308] -[visit_id shape#308] -[visit_exp `sx?#11`] -[visit_id sx?#11] -[visit_exp laneidx#13] -[visit_id laneidx#13] +[visit_exp `VEXTRACT_LANE`_instr(sh, sx?{sx <- `sx?`}, i)] [visit_exp (sh, sx?{sx <- `sx?`}, i)] [visit_exp sh] [visit_id sh] @@ -30506,65 +26575,43 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id sx?] [visit_exp i] [visit_id i] -[visit_exp `%->_%%`_instrtype{resulttype#2595, `localidx*#1559`}(`%`_resulttype{`X*#10935`}([`V128`_valtype]), [], `%`_resulttype{`X*#10984`}([($unpackshape(sh) : numtype <: valtype)]))] -[visit_exp resulttype#2595] -[visit_id resulttype#2595] -[visit_exp `localidx*#1559`] -[visit_id localidx*#1559] -[visit_exp (`%`_resulttype{`X*#10935`}([`V128`_valtype]), [], `%`_resulttype{`X*#10984`}([($unpackshape(sh) : numtype <: valtype)]))] -[visit_exp `%`_resulttype{`X*#10935`}([`V128`_valtype])] -[visit_exp `X*#10935`] -[visit_id X*#10935] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([($unpackshape(sh) : numtype <: valtype)]))] +[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([($unpackshape(sh) : numtype <: valtype)]))] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#10984`}([($unpackshape(sh) : numtype <: valtype)])] -[visit_exp `X*#10984`] -[visit_id X*#10984] +[visit_exp `%`_resulttype([($unpackshape(sh) : numtype <: valtype)])] [visit_exp ([($unpackshape(sh) : numtype <: valtype)])] [visit_exp [($unpackshape(sh) : numtype <: valtype)]] [visit_exp ($unpackshape(sh) : numtype <: valtype)] [visit_exp $unpackshape(sh)] [visit_exp sh] [visit_id sh] not free -[visit_exp (i!`%`_laneidx{i#8600}.0 < $dim(sh)!`%`_dim{i#8602}.0)] -[visit_exp i!`%`_laneidx{i#8600}.0] -[visit_exp i!`%`_laneidx{i#8600}] +[visit_exp (i!`%`_laneidx.0 < $dim(sh)!`%`_dim.0)] +[visit_exp i!`%`_laneidx.0] +[visit_exp i!`%`_laneidx] [visit_exp i] [visit_id i] not free -[visit_exp i#8600] -[visit_id i#8600] -[visit_exp $dim(sh)!`%`_dim{i#8602}.0] -[visit_exp $dim(sh)!`%`_dim{i#8602}] +[visit_exp $dim(sh)!`%`_dim.0] +[visit_exp $dim(sh)!`%`_dim] [visit_exp $dim(sh)] [visit_exp sh] [visit_id sh] not free -[visit_exp i#8602] -[visit_id i#8602] -[check_dims] C X*#11005 X*#11054 i i#8636 i#8638 laneidx#15 localidx*#1571 resulttype#2615 sh shape#310 +[check_dims] C i sh [visit_exp C] [visit_id C] -[visit_exp `VREPLACE_LANE`_instr{shape#310, laneidx#15}(sh, i)] -[visit_exp shape#310] -[visit_id shape#310] -[visit_exp laneidx#15] -[visit_id laneidx#15] +[visit_exp `VREPLACE_LANE`_instr(sh, i)] [visit_exp (sh, i)] [visit_exp sh] [visit_id sh] [visit_exp i] [visit_id i] -[visit_exp `%->_%%`_instrtype{resulttype#2615, `localidx*#1571`}(`%`_resulttype{`X*#11005`}([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype{`X*#11054`}([`V128`_valtype]))] -[visit_exp resulttype#2615] -[visit_id resulttype#2615] -[visit_exp `localidx*#1571`] -[visit_id localidx*#1571] -[visit_exp (`%`_resulttype{`X*#11005`}([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype{`X*#11054`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#11005`}([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)])] -[visit_exp `X*#11005`] -[visit_id X*#11005] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)])] [visit_exp ([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)])] [visit_exp [`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]] [visit_exp `V128`_valtype] @@ -30574,35 +26621,25 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp sh] [visit_id sh] not free [visit_exp []] -[visit_exp `%`_resulttype{`X*#11054`}([`V128`_valtype])] -[visit_exp `X*#11054`] -[visit_id X*#11054] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[visit_exp (i!`%`_laneidx{i#8636}.0 < $dim(sh)!`%`_dim{i#8638}.0)] -[visit_exp i!`%`_laneidx{i#8636}.0] -[visit_exp i!`%`_laneidx{i#8636}] +[visit_exp (i!`%`_laneidx.0 < $dim(sh)!`%`_dim.0)] +[visit_exp i!`%`_laneidx.0] +[visit_exp i!`%`_laneidx] [visit_exp i] [visit_id i] not free -[visit_exp i#8636] -[visit_id i#8636] -[visit_exp $dim(sh)!`%`_dim{i#8638}.0] -[visit_exp $dim(sh)!`%`_dim{i#8638}] +[visit_exp $dim(sh)!`%`_dim.0] +[visit_exp $dim(sh)!`%`_dim] [visit_exp $dim(sh)] [visit_exp sh] [visit_id sh] not free -[visit_exp i#8638] -[visit_id i#8638] -[check_dims] C X*#11073 X*#11122 ishape_1#9 ishape_2#9 localidx*#1583 resulttype#2635 sh_1 sh_2 vextunop +[check_dims] C sh_1 sh_2 vextunop [visit_exp C] [visit_id C] -[visit_exp `VEXTUNOP`_instr{ishape_1#9, ishape_2#9}(sh_1, sh_2, vextunop)] -[visit_exp ishape_1#9] -[visit_id ishape_1#9] -[visit_exp ishape_2#9] -[visit_id ishape_2#9] +[visit_exp `VEXTUNOP`_instr(sh_1, sh_2, vextunop)] [visit_exp (sh_1, sh_2, vextunop)] [visit_exp sh_1] [visit_id sh_1] @@ -30610,35 +26647,23 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id sh_2] [visit_exp vextunop] [visit_id vextunop] -[visit_exp `%->_%%`_instrtype{resulttype#2635, `localidx*#1583`}(`%`_resulttype{`X*#11073`}([`V128`_valtype]), [], `%`_resulttype{`X*#11122`}([`V128`_valtype]))] -[visit_exp resulttype#2635] -[visit_id resulttype#2635] -[visit_exp `localidx*#1583`] -[visit_id localidx*#1583] -[visit_exp (`%`_resulttype{`X*#11073`}([`V128`_valtype]), [], `%`_resulttype{`X*#11122`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#11073`}([`V128`_valtype])] -[visit_exp `X*#11073`] -[visit_id X*#11073] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#11122`}([`V128`_valtype])] -[visit_exp `X*#11122`] -[visit_id X*#11122] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#11143 X*#11192 ishape_1#11 ishape_2#11 localidx*#1595 resulttype#2655 sh_1 sh_2 vextbinop +[check_dims] C sh_1 sh_2 vextbinop [visit_exp C] [visit_id C] -[visit_exp `VEXTBINOP`_instr{ishape_1#11, ishape_2#11}(sh_1, sh_2, vextbinop)] -[visit_exp ishape_1#11] -[visit_id ishape_1#11] -[visit_exp ishape_2#11] -[visit_id ishape_2#11] +[visit_exp `VEXTBINOP`_instr(sh_1, sh_2, vextbinop)] [visit_exp (sh_1, sh_2, vextbinop)] [visit_exp sh_1] [visit_id sh_1] @@ -30646,15 +26671,9 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id sh_2] [visit_exp vextbinop] [visit_id vextbinop] -[visit_exp `%->_%%`_instrtype{resulttype#2655, `localidx*#1595`}(`%`_resulttype{`X*#11143`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11192`}([`V128`_valtype]))] -[visit_exp resulttype#2655] -[visit_id resulttype#2655] -[visit_exp `localidx*#1595`] -[visit_id localidx*#1595] -[visit_exp (`%`_resulttype{`X*#11143`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11192`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#11143`}([`V128`_valtype `V128`_valtype])] -[visit_exp `X*#11143`] -[visit_id X*#11143] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] [visit_exp ([`V128`_valtype `V128`_valtype])] [visit_exp [`V128`_valtype `V128`_valtype]] [visit_exp `V128`_valtype] @@ -30662,21 +26681,15 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#11192`}([`V128`_valtype])] -[visit_exp `X*#11192`] -[visit_id X*#11192] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#11213 X*#11262 ishape_1#13 ishape_2#13 localidx*#1607 resulttype#2675 sh_1 sh_2 vextternop +[check_dims] C sh_1 sh_2 vextternop [visit_exp C] [visit_id C] -[visit_exp `VEXTTERNOP`_instr{ishape_1#13, ishape_2#13}(sh_1, sh_2, vextternop)] -[visit_exp ishape_1#13] -[visit_id ishape_1#13] -[visit_exp ishape_2#13] -[visit_id ishape_2#13] +[visit_exp `VEXTTERNOP`_instr(sh_1, sh_2, vextternop)] [visit_exp (sh_1, sh_2, vextternop)] [visit_exp sh_1] [visit_id sh_1] @@ -30684,15 +26697,9 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id sh_2] [visit_exp vextternop] [visit_id vextternop] -[visit_exp `%->_%%`_instrtype{resulttype#2675, `localidx*#1607`}(`%`_resulttype{`X*#11213`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11262`}([`V128`_valtype]))] -[visit_exp resulttype#2675] -[visit_id resulttype#2675] -[visit_exp `localidx*#1607`] -[visit_id localidx*#1607] -[visit_exp (`%`_resulttype{`X*#11213`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11262`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#11213`}([`V128`_valtype `V128`_valtype `V128`_valtype])] -[visit_exp `X*#11213`] -[visit_id X*#11213] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype])] [visit_exp ([`V128`_valtype `V128`_valtype `V128`_valtype])] [visit_exp [`V128`_valtype `V128`_valtype `V128`_valtype]] [visit_exp `V128`_valtype] @@ -30702,35 +26709,15 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#11262`}([`V128`_valtype])] -[visit_exp `X*#11262`] -[visit_id X*#11262] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C Jnn#95 Jnn#96 Jnn#97 X*#11283 X*#11332 ishape_1#15 ishape_2#15 localidx*#1619 resulttype#2695 sh_1 sh_2 shape#348 shape#349 shape#350 sx sx#56 +[check_dims] C sh_1 sh_2 sx [visit_exp C] [visit_id C] -[visit_exp `VNARROW`_instr{ishape_1#15, ishape_2#15, sx#56, shape#348, Jnn#95, shape#349, Jnn#96, shape#350, Jnn#97}(sh_1, sh_2, sx)] -[visit_exp ishape_1#15] -[visit_id ishape_1#15] -[visit_exp ishape_2#15] -[visit_id ishape_2#15] -[visit_exp sx#56] -[visit_id sx#56] -[visit_exp shape#348] -[visit_id shape#348] -[visit_exp Jnn#95] -[visit_id Jnn#95] -[visit_exp shape#349] -[visit_id shape#349] -[visit_exp Jnn#96] -[visit_id Jnn#96] -[visit_exp shape#350] -[visit_id shape#350] -[visit_exp Jnn#97] -[visit_id Jnn#97] +[visit_exp `VNARROW`_instr(sh_1, sh_2, sx)] [visit_exp (sh_1, sh_2, sx)] [visit_exp sh_1] [visit_id sh_1] @@ -30738,15 +26725,9 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id sh_2] [visit_exp sx] [visit_id sx] -[visit_exp `%->_%%`_instrtype{resulttype#2695, `localidx*#1619`}(`%`_resulttype{`X*#11283`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11332`}([`V128`_valtype]))] -[visit_exp resulttype#2695] -[visit_id resulttype#2695] -[visit_exp `localidx*#1619`] -[visit_id localidx*#1619] -[visit_exp (`%`_resulttype{`X*#11283`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11332`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#11283`}([`V128`_valtype `V128`_valtype])] -[visit_exp `X*#11283`] -[visit_id X*#11283] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] [visit_exp ([`V128`_valtype `V128`_valtype])] [visit_exp [`V128`_valtype `V128`_valtype]] [visit_exp `V128`_valtype] @@ -30754,21 +26735,15 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#11332`}([`V128`_valtype])] -[visit_exp `X*#11332`] -[visit_id X*#11332] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#11351 X*#11400 localidx*#1631 resulttype#2715 sh_1 sh_2 shape_1#3 shape_2#3 vcvtop +[check_dims] C sh_1 sh_2 vcvtop [visit_exp C] [visit_id C] -[visit_exp `VCVTOP`_instr{shape_1#3, shape_2#3}(sh_1, sh_2, vcvtop)] -[visit_exp shape_1#3] -[visit_id shape_1#3] -[visit_exp shape_2#3] -[visit_id shape_2#3] +[visit_exp `VCVTOP`_instr(sh_1, sh_2, vcvtop)] [visit_exp (sh_1, sh_2, vcvtop)] [visit_exp sh_1] [visit_id sh_1] @@ -30776,49 +26751,33 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id sh_2] [visit_exp vcvtop] [visit_id vcvtop] -[visit_exp `%->_%%`_instrtype{resulttype#2715, `localidx*#1631`}(`%`_resulttype{`X*#11351`}([`V128`_valtype]), [], `%`_resulttype{`X*#11400`}([`V128`_valtype]))] -[visit_exp resulttype#2715] -[visit_id resulttype#2715] -[visit_exp `localidx*#1631`] -[visit_id localidx*#1631] -[visit_exp (`%`_resulttype{`X*#11351`}([`V128`_valtype]), [], `%`_resulttype{`X*#11400`}([`V128`_valtype]))] -[visit_exp `%`_resulttype{`X*#11351`}([`V128`_valtype])] -[visit_exp `X*#11351`] -[visit_id X*#11351] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#11400`}([`V128`_valtype])] -[visit_exp `X*#11400`] -[visit_id X*#11400] +[visit_exp `%`_resulttype([`V128`_valtype])] [visit_exp ([`V128`_valtype])] [visit_exp [`V128`_valtype]] [visit_exp `V128`_valtype] [visit_exp ()] -[check_dims] C X*#11421 X*#11470 localidx*#1643 resulttype#2735 +[check_dims] C [visit_exp C] [visit_id C] [visit_exp []] -[visit_exp `%->_%%`_instrtype{resulttype#2735, `localidx*#1643`}(`%`_resulttype{`X*#11421`}([]), [], `%`_resulttype{`X*#11470`}([]))] -[visit_exp resulttype#2735] -[visit_id resulttype#2735] -[visit_exp `localidx*#1643`] -[visit_id localidx*#1643] -[visit_exp (`%`_resulttype{`X*#11421`}([]), [], `%`_resulttype{`X*#11470`}([]))] -[visit_exp `%`_resulttype{`X*#11421`}([])] -[visit_exp `X*#11421`] -[visit_id X*#11421] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#11470`}([])] -[visit_exp `X*#11470`] -[visit_id X*#11470] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[check_dims] C X*#11481 X*#11542 X*#11555 X*#11607 X*#11620 X*#11672 i#8868 init init#113 init#131 instr_1 instr_2 localidx*#1655 localidx*#1667 localidx*#1679 localtype*#13 resulttype#2755 resulttype#2775 resulttype#2795 t t_1 t_2 t_3 valtype#403 valtype#421 x_1 x_2 +[check_dims] C init instr_1 instr_2 t t_1 t_2 t_3 x_1 x_2 [visit_exp C] [visit_id C] [visit_exp [instr_1] ++ instr_2*{instr_2 <- `instr_2*`}] @@ -30834,15 +26793,9 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `instr_2*`] [visit_id instr_2*] no dims [visit_id instr_2*] -[visit_exp `%->_%%`_instrtype{resulttype#2755, `localidx*#1655`}(`%`_resulttype{`X*#11481`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11542`}(t_3*{t_3 <- `t_3*`}))] -[visit_exp resulttype#2755] -[visit_id resulttype#2755] -[visit_exp `localidx*#1655`] -[visit_id localidx*#1655] -[visit_exp (`%`_resulttype{`X*#11481`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11542`}(t_3*{t_3 <- `t_3*`}))] -[visit_exp `%`_resulttype{`X*#11481`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#11481`] -[visit_id X*#11481] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -30872,9 +26825,7 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `x_2*`] [visit_id x_2*] no dims [visit_id x_2*] -[visit_exp `%`_resulttype{`X*#11542`}(t_3*{t_3 <- `t_3*`})] -[visit_exp `X*#11542`] -[visit_id X*#11542] +[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`})] [visit_exp (t_3*{t_3 <- `t_3*`})] [visit_exp t_3*{t_3 <- `t_3*`}] [scope_enter t_3] @@ -30885,20 +26836,14 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `t_3*`] [visit_id t_3*] no dims [visit_id t_3*] -[visit_exp (C, instr_1, `%->_%%`_instrtype{resulttype#2775, `localidx*#1667`}(`%`_resulttype{`X*#11555`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#11607`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (C, instr_1, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp C] [visit_id C] not free [visit_exp instr_1] [visit_id instr_1] not free -[visit_exp `%->_%%`_instrtype{resulttype#2775, `localidx*#1667`}(`%`_resulttype{`X*#11555`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#11607`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#2775] -[visit_id resulttype#2775] -[visit_exp `localidx*#1667`] -[visit_id localidx*#1667] -[visit_exp (`%`_resulttype{`X*#11555`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#11607`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#11555`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#11555`] -[visit_id X*#11555] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -30918,9 +26863,7 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `x_1*`] [visit_id x_1*] not free [visit_id x_1*] no dims -[visit_exp `%`_resulttype{`X*#11607`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#11607`] -[visit_id X*#11607] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -30931,73 +26874,41 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[scope_enter i#8868] [scope_enter init] -[scope_enter init#113] -[scope_enter localtype*#13] [scope_enter t] -[scope_enter valtype#403] [scope_enter x_1] -[visit_exp (C.`LOCALS`_context{`localtype*#13`}[x_1!`%`_idx{i#8868}.0] = `%%`_localtype{init#113, valtype#403}(init, t))] -[visit_exp C.`LOCALS`_context{`localtype*#13`}[x_1!`%`_idx{i#8868}.0]] -[visit_exp C.`LOCALS`_context{`localtype*#13`}] +[visit_exp (C.`LOCALS`_context[x_1!`%`_idx.0] = `%%`_localtype(init, t))] +[visit_exp C.`LOCALS`_context[x_1!`%`_idx.0]] +[visit_exp C.`LOCALS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `localtype*#13`] -[visit_id localtype*#13] not free -[visit_exp x_1!`%`_idx{i#8868}.0] -[visit_exp x_1!`%`_idx{i#8868}] +[visit_exp x_1!`%`_idx.0] +[visit_exp x_1!`%`_idx] [visit_exp x_1] [visit_id x_1] not free -[visit_exp i#8868] -[visit_id i#8868] not free -[visit_exp `%%`_localtype{init#113, valtype#403}(init, t)] -[visit_exp init#113] -[visit_id init#113] not free -[visit_exp valtype#403] -[visit_id valtype#403] not free +[visit_exp `%%`_localtype(init, t)] [visit_exp (init, t)] [visit_exp init] [visit_id init] not free [visit_exp t] [visit_id t] not free -[visit_id i#8868] not free [visit_id init] not free -[visit_id init#113] not free -[visit_id localtype*#13] not free [visit_id t] not free -[visit_id valtype#403] not free [visit_id x_1] not free [scope_exit x_1] -[scope_exit valtype#403] [scope_exit t] -[scope_exit localtype*#13] -[scope_exit init#113] [scope_exit init] -[scope_exit i#8868] -[visit_exp `i#8868*`] -[visit_id i#8868*] no dims -[visit_id i#8868*] [visit_exp `init*`] [visit_id init*] no dims [visit_id init*] -[visit_exp `init#113*`] -[visit_id init#113*] no dims -[visit_id init#113*] -[visit_exp `localtype*#13*`] -[visit_id localtype*#13*] no dims -[visit_id localtype*#13*] [visit_exp `t*`] [visit_id t*] no dims [visit_id t*] -[visit_exp `valtype#403*`] -[visit_id valtype#403*] no dims -[visit_id valtype#403*] [visit_exp `x_1*`] [visit_id x_1*] not free [visit_id x_1*] no dims -[visit_exp ($with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype{init#131, valtype#421}(`SET`_init, t)*{init#131 <- `init#131*`, t <- `t*`, valtype#421 <- `valtype#421*`}), instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype{resulttype#2795, `localidx*#1679`}(`%`_resulttype{`X*#11620`}(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11672`}(t_3*{t_3 <- `t_3*`})))] -[visit_exp $with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype{init#131, valtype#421}(`SET`_init, t)*{init#131 <- `init#131*`, t <- `t*`, valtype#421 <- `valtype#421*`})] +[visit_exp ($with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype(`SET`_init, t)*{t <- `t*`}), instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`})))] +[visit_exp $with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype(`SET`_init, t)*{t <- `t*`})] [visit_exp C] [visit_id C] not free [visit_exp x_1*{x_1 <- `x_1*`}] @@ -31009,35 +26920,19 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `x_1*`] [visit_id x_1*] not free [visit_id x_1*] no dims -[visit_exp `%%`_localtype{init#131, valtype#421}(`SET`_init, t)*{init#131 <- `init#131*`, t <- `t*`, valtype#421 <- `valtype#421*`}] -[scope_enter init#131] +[visit_exp `%%`_localtype(`SET`_init, t)*{t <- `t*`}] [scope_enter t] -[scope_enter valtype#421] -[visit_exp `%%`_localtype{init#131, valtype#421}(`SET`_init, t)] -[visit_exp init#131] -[visit_id init#131] not free -[visit_exp valtype#421] -[visit_id valtype#421] not free +[visit_exp `%%`_localtype(`SET`_init, t)] [visit_exp (`SET`_init, t)] [visit_exp `SET`_init] [visit_exp ()] [visit_exp t] [visit_id t] not free -[visit_id init#131] not free [visit_id t] not free -[visit_id valtype#421] not free -[scope_exit valtype#421] [scope_exit t] -[scope_exit init#131] -[visit_exp `init#131*`] -[visit_id init#131*] no dims -[visit_id init#131*] [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[visit_exp `valtype#421*`] -[visit_id valtype#421*] no dims -[visit_id valtype#421*] [visit_exp instr_2*{instr_2 <- `instr_2*`}] [scope_enter instr_2] [visit_exp instr_2] @@ -31047,15 +26942,9 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `instr_2*`] [visit_id instr_2*] not free [visit_id instr_2*] no dims -[visit_exp `%->_%%`_instrtype{resulttype#2795, `localidx*#1679`}(`%`_resulttype{`X*#11620`}(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11672`}(t_3*{t_3 <- `t_3*`}))] -[visit_exp resulttype#2795] -[visit_id resulttype#2795] -[visit_exp `localidx*#1679`] -[visit_id localidx*#1679] -[visit_exp (`%`_resulttype{`X*#11620`}(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11672`}(t_3*{t_3 <- `t_3*`}))] -[visit_exp `%`_resulttype{`X*#11620`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#11620`] -[visit_id X*#11620] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))] +[visit_exp (`%`_resulttype(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -31075,9 +26964,7 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `x_2*`] [visit_id x_2*] not free [visit_id x_2*] no dims -[visit_exp `%`_resulttype{`X*#11672`}(t_3*{t_3 <- `t_3*`})] -[visit_exp `X*#11672`] -[visit_id X*#11672] +[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`})] [visit_exp (t_3*{t_3 <- `t_3*`})] [visit_exp t_3*{t_3 <- `t_3*`}] [scope_enter t_3] @@ -31128,7 +27015,7 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id C] not free [visit_exp it'] [visit_id it'] not free -[check_dims] C X*#11695 X*#11755 X*#11766 X*#11818 X*#11831 instr localidx*#1721 localidx*#1733 resulttype#2865 resulttype#2885 t t_1 t_2 x +[check_dims] C instr t t_1 t_2 x [visit_exp C] [visit_id C] [visit_exp instr*{instr <- `instr*`}] @@ -31140,15 +27027,9 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp `%->_%%`_instrtype{resulttype#2865, `localidx*#1721`}(`%`_resulttype{`X*#11695`}(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11755`}(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#2865] -[visit_id resulttype#2865] -[visit_exp `localidx*#1721`] -[visit_id localidx*#1721] -[visit_exp (`%`_resulttype{`X*#11695`}(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11755`}(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#11695`}(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#11695`] -[visit_id X*#11695] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`})] [visit_exp (t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`})] [visit_exp t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}] [visit_exp t*{t <- `t*`}] @@ -31178,9 +27059,7 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `x*`] [visit_id x*] no dims [visit_id x*] -[visit_exp `%`_resulttype{`X*#11755`}(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#11755`] -[visit_id X*#11755] +[visit_exp `%`_resulttype(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`})] [visit_exp (t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`})] [visit_exp t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}] [visit_exp t*{t <- `t*`}] @@ -31201,7 +27080,7 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#2885, `localidx*#1733`}(`%`_resulttype{`X*#11766`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11818`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp C] [visit_id C] not free [visit_exp instr*{instr <- `instr*`}] @@ -31213,15 +27092,9 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp `%->_%%`_instrtype{resulttype#2885, `localidx*#1733`}(`%`_resulttype{`X*#11766`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11818`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#2885] -[visit_id resulttype#2885] -[visit_exp `localidx*#1733`] -[visit_id localidx*#1733] -[visit_exp (`%`_resulttype{`X*#11766`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11818`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#11766`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#11766`] -[visit_id X*#11766] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -31241,9 +27114,7 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `x*`] [visit_id x*] not free [visit_id x*] no dims -[visit_exp `%`_resulttype{`X*#11818`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#11818`] -[visit_id X*#11818] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -31254,12 +27125,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp (C, `%`_resulttype{`X*#11831`}(t*{t <- `t*`}))] +[visit_exp (C, `%`_resulttype(t*{t <- `t*`}))] [visit_exp C] [visit_id C] not free -[visit_exp `%`_resulttype{`X*#11831`}(t*{t <- `t*`})] -[visit_exp `X*#11831`] -[visit_id X*#11831] +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -31270,7 +27139,7 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[check_dims] C X*#11844 X*#11867 X*#11911 instr localidx*#1745 resulttype#2905 t +[check_dims] C instr t [visit_exp C] [visit_id C] [visit_exp instr*{instr <- `instr*`}] @@ -31282,9 +27151,7 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp `%`_resulttype{`X*#11844`}(t*{t <- `t*`})] -[visit_exp `X*#11844`] -[visit_id X*#11844] +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -31295,7 +27162,7 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `t*`] [visit_id t*] no dims [visit_id t*] -[visit_exp (C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#2905, `localidx*#1745`}(`%`_resulttype{`X*#11867`}([]), [], `%`_resulttype{`X*#11911`}(t*{t <- `t*`})))] +[visit_exp (C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(t*{t <- `t*`})))] [visit_exp C] [visit_id C] not free [visit_exp instr*{instr <- `instr*`}] @@ -31307,21 +27174,13 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp `%->_%%`_instrtype{resulttype#2905, `localidx*#1745`}(`%`_resulttype{`X*#11867`}([]), [], `%`_resulttype{`X*#11911`}(t*{t <- `t*`}))] -[visit_exp resulttype#2905] -[visit_id resulttype#2905] -[visit_exp `localidx*#1745`] -[visit_id localidx*#1745] -[visit_exp (`%`_resulttype{`X*#11867`}([]), [], `%`_resulttype{`X*#11911`}(t*{t <- `t*`}))] -[visit_exp `%`_resulttype{`X*#11867`}([])] -[visit_exp `X*#11867`] -[visit_id X*#11867] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(t*{t <- `t*`}))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype(t*{t <- `t*`}))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#11911`}(t*{t <- `t*`})] -[visit_exp `X*#11911`] -[visit_id X*#11911] +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -31335,34 +27194,28 @@ DecD is_packtype(storagetype : storagetype) : bool [check_dims] [check_dims] [check_dims] -[check_dims] C c_nt nt numtype#29 +[check_dims] C c_nt nt [visit_exp C] [visit_id C] -[visit_exp `CONST`_instr{numtype#29}(nt, c_nt)] -[visit_exp numtype#29] -[visit_id numtype#29] +[visit_exp `CONST`_instr(nt, c_nt)] [visit_exp (nt, c_nt)] [visit_exp nt] [visit_id nt] [visit_exp c_nt] [visit_id c_nt] -[check_dims] C c_vt vectype#40 vt +[check_dims] C c_vt vt [visit_exp C] [visit_id C] -[visit_exp `VCONST`_instr{vectype#40}(vt, c_vt)] -[visit_exp vectype#40] -[visit_id vectype#40] +[visit_exp `VCONST`_instr(vt, c_vt)] [visit_exp (vt, c_vt)] [visit_exp vt] [visit_id vt] [visit_exp c_vt] [visit_id c_vt] -[check_dims] C heaptype#945 ht +[check_dims] C ht [visit_exp C] [visit_id C] -[visit_exp `REF.NULL`_instr{heaptype#945}(ht)] -[visit_exp heaptype#945] -[visit_id heaptype#945] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] @@ -31371,65 +27224,49 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id C] [visit_exp `REF.I31`_instr] [visit_exp ()] -[check_dims] C funcidx#183 x +[check_dims] C x [visit_exp C] [visit_id C] -[visit_exp `REF.FUNC`_instr{funcidx#183}(x)] -[visit_exp funcidx#183] -[visit_id funcidx#183] +[visit_exp `REF.FUNC`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[check_dims] C typeidx#469 x +[check_dims] C x [visit_exp C] [visit_id C] -[visit_exp `STRUCT.NEW`_instr{typeidx#469}(x)] -[visit_exp typeidx#469] -[visit_id typeidx#469] +[visit_exp `STRUCT.NEW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[check_dims] C typeidx#471 x +[check_dims] C x [visit_exp C] [visit_id C] -[visit_exp `STRUCT.NEW_DEFAULT`_instr{typeidx#471}(x)] -[visit_exp typeidx#471] -[visit_id typeidx#471] +[visit_exp `STRUCT.NEW_DEFAULT`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[check_dims] C typeidx#473 x +[check_dims] C x [visit_exp C] [visit_id C] -[visit_exp `ARRAY.NEW`_instr{typeidx#473}(x)] -[visit_exp typeidx#473] -[visit_id typeidx#473] +[visit_exp `ARRAY.NEW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[check_dims] C typeidx#475 x +[check_dims] C x [visit_exp C] [visit_id C] -[visit_exp `ARRAY.NEW_DEFAULT`_instr{typeidx#475}(x)] -[visit_exp typeidx#475] -[visit_id typeidx#475] +[visit_exp `ARRAY.NEW_DEFAULT`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[check_dims] C i#9243 n typeidx#477 u32#15 x +[check_dims] C n x [visit_exp C] [visit_id C] -[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#477, u32#15}(x, `%`_u32{i#9243}(n))] -[visit_exp typeidx#477] -[visit_id typeidx#477] -[visit_exp u32#15] -[visit_id u32#15] -[visit_exp (x, `%`_u32{i#9243}(n))] +[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] +[visit_exp (x, `%`_u32(n))] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#9243}(n)] -[visit_exp i#9243] -[visit_id i#9243] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] @@ -31443,43 +27280,31 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id C] [visit_exp `EXTERN.CONVERT_ANY`_instr] [visit_exp ()] -[check_dims] C globalidx#13 globaltype*#10 i#9277 mut?#817 t valtype#427 x +[check_dims] C t x [visit_exp C] [visit_id C] -[visit_exp `GLOBAL.GET`_instr{globalidx#13}(x)] -[visit_exp globalidx#13] -[visit_id globalidx#13] +[visit_exp `GLOBAL.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp (C.`GLOBALS`_context{`globaltype*#10`}[x!`%`_idx{i#9277}.0] = `%%`_globaltype{`mut?#817`, valtype#427}(?(), t))] -[visit_exp C.`GLOBALS`_context{`globaltype*#10`}[x!`%`_idx{i#9277}.0]] -[visit_exp C.`GLOBALS`_context{`globaltype*#10`}] +[visit_exp (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(?(), t))] +[visit_exp C.`GLOBALS`_context[x!`%`_idx.0]] +[visit_exp C.`GLOBALS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `globaltype*#10`] -[visit_id globaltype*#10] -[visit_exp x!`%`_idx{i#9277}.0] -[visit_exp x!`%`_idx{i#9277}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#9277] -[visit_id i#9277] -[visit_exp `%%`_globaltype{`mut?#817`, valtype#427}(?(), t)] -[visit_exp `mut?#817`] -[visit_id mut?#817] -[visit_exp valtype#427] -[visit_id valtype#427] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%`_globaltype(?(), t)] [visit_exp (?(), t)] [visit_exp ?()] [visit_exp t] [visit_id t] -[check_dims] C Inn binop numtype#31 +[check_dims] C Inn binop [visit_exp C] [visit_id C] -[visit_exp `BINOP`_instr{numtype#31}((Inn : Inn <: numtype), binop)] -[visit_exp numtype#31] -[visit_id numtype#31] +[visit_exp `BINOP`_instr((Inn : Inn <: numtype), binop)] [visit_exp ((Inn : Inn <: numtype), binop)] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] @@ -31527,21 +27352,19 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[check_dims] C X*#11922 expr t +[check_dims] C expr t [visit_exp C] [visit_id C] [visit_exp expr] [visit_id expr] [visit_exp t] [visit_id t] -[visit_exp (C, expr, `%`_resulttype{`X*#11922`}([t]))] +[visit_exp (C, expr, `%`_resulttype([t]))] [visit_exp C] [visit_id C] not free [visit_exp expr] [visit_id expr] not free -[visit_exp `%`_resulttype{`X*#11922`}([t])] -[visit_exp `X*#11922`] -[visit_id X*#11922] +[visit_exp `%`_resulttype([t])] [visit_exp ([t])] [visit_exp [t]] [visit_exp t] @@ -31563,12 +27386,10 @@ DecD is_packtype(storagetype : storagetype) : bool [check_dims] [check_dims] [check_dims] -[check_dims] C datatype*#11 deftype*#53 deftype*#54 deftype*#55 dt elemtype*#11 funcidx*#48 globaltype*#11 i#9287 localtype*#14 memtype*#24 rectype rectype#865 resulttype*#22 resulttype?#19 subtype*#10 tabletype*#17 tagtype*#10 typeidx#489 x +[check_dims] C dt rectype x [visit_exp C] [visit_id C] -[visit_exp `TYPE`_type{rectype#865}(rectype)] -[visit_exp rectype#865] -[visit_id rectype#865] +[visit_exp `TYPE`_type(rectype)] [visit_exp (rectype)] [visit_exp rectype] [visit_id rectype] @@ -31581,19 +27402,15 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `dt*`] [visit_id dt*] no dims [visit_id dt*] -[visit_exp (x!`%`_idx{i#9287}.0 = |C.`TYPES`_context{`deftype*#53`}|)] -[visit_exp x!`%`_idx{i#9287}.0] -[visit_exp x!`%`_idx{i#9287}] +[visit_exp (x!`%`_idx.0 = |C.`TYPES`_context|)] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] -[visit_exp i#9287] -[visit_id i#9287] -[visit_exp |C.`TYPES`_context{`deftype*#53`}|] -[visit_exp C.`TYPES`_context{`deftype*#53`}] +[visit_exp |C.`TYPES`_context|] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#53`] -[visit_id deftype*#53] [visit_exp (dt*{dt <- `dt*`} = $rolldt(x, rectype))] [visit_exp dt*{dt <- `dt*`}] [scope_enter dt] @@ -31609,13 +27426,11 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id x] not free [visit_exp rectype] [visit_id rectype] not free -[visit_exp (C +++ {`TYPES`{`deftype*#54`} dt*{dt <- `dt*`}, `RECS`{`subtype*#10`} [], `TAGS`{`tagtype*#10`} [], `GLOBALS`{`globaltype*#11`} [], `MEMS`{`memtype*#24`} [], `TABLES`{`tabletype*#17`} [], `FUNCS`{`deftype*#55`} [], `DATAS`{`datatype*#11`} [], `ELEMS`{`elemtype*#11`} [], `LOCALS`{`localtype*#14`} [], `LABELS`{`resulttype*#22`} [], `RETURN`{`resulttype?#19`} ?(), `REFS`{`funcidx*#48`} []}, rectype, `OK`_oktypeidx{typeidx#489}(x))] -[visit_exp C +++ {`TYPES`{`deftype*#54`} dt*{dt <- `dt*`}, `RECS`{`subtype*#10`} [], `TAGS`{`tagtype*#10`} [], `GLOBALS`{`globaltype*#11`} [], `MEMS`{`memtype*#24`} [], `TABLES`{`tabletype*#17`} [], `FUNCS`{`deftype*#55`} [], `DATAS`{`datatype*#11`} [], `ELEMS`{`elemtype*#11`} [], `LOCALS`{`localtype*#14`} [], `LABELS`{`resulttype*#22`} [], `RETURN`{`resulttype?#19`} ?(), `REFS`{`funcidx*#48`} []}] +[visit_exp (C +++ {`TYPES` dt*{dt <- `dt*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rectype, `OK`_oktypeidx(x))] +[visit_exp C +++ {`TYPES` dt*{dt <- `dt*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp C] [visit_id C] not free -[visit_exp {`TYPES`{`deftype*#54`} dt*{dt <- `dt*`}, `RECS`{`subtype*#10`} [], `TAGS`{`tagtype*#10`} [], `GLOBALS`{`globaltype*#11`} [], `MEMS`{`memtype*#24`} [], `TABLES`{`tabletype*#17`} [], `FUNCS`{`deftype*#55`} [], `DATAS`{`datatype*#11`} [], `ELEMS`{`elemtype*#11`} [], `LOCALS`{`localtype*#14`} [], `LABELS`{`resulttype*#22`} [], `RETURN`{`resulttype?#19`} ?(), `REFS`{`funcidx*#48`} []}] -[visit_exp `deftype*#54`] -[visit_id deftype*#54] +[visit_exp {`TYPES` dt*{dt <- `dt*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp dt*{dt <- `dt*`}] [scope_enter dt] [visit_exp dt] @@ -31625,56 +27440,28 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `dt*`] [visit_id dt*] not free [visit_id dt*] no dims -[visit_exp `subtype*#10`] -[visit_id subtype*#10] [visit_exp []] -[visit_exp `tagtype*#10`] -[visit_id tagtype*#10] [visit_exp []] -[visit_exp `globaltype*#11`] -[visit_id globaltype*#11] [visit_exp []] -[visit_exp `memtype*#24`] -[visit_id memtype*#24] [visit_exp []] -[visit_exp `tabletype*#17`] -[visit_id tabletype*#17] [visit_exp []] -[visit_exp `deftype*#55`] -[visit_id deftype*#55] [visit_exp []] -[visit_exp `datatype*#11`] -[visit_id datatype*#11] [visit_exp []] -[visit_exp `elemtype*#11`] -[visit_id elemtype*#11] [visit_exp []] -[visit_exp `localtype*#14`] -[visit_id localtype*#14] [visit_exp []] -[visit_exp `resulttype*#22`] -[visit_id resulttype*#22] [visit_exp []] -[visit_exp `resulttype?#19`] -[visit_id resulttype?#19] [visit_exp ?()] -[visit_exp `funcidx*#48`] -[visit_id funcidx*#48] [visit_exp []] [visit_exp rectype] [visit_id rectype] not free -[visit_exp `OK`_oktypeidx{typeidx#489}(x)] -[visit_exp typeidx#489] -[visit_id typeidx#489] +[visit_exp `OK`_oktypeidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[check_dims] C tagtype tagtype#105 +[check_dims] C tagtype [visit_exp C] [visit_id C] -[visit_exp `TAG`_tag{tagtype#105}(tagtype)] -[visit_exp tagtype#105] -[visit_id tagtype#105] +[visit_exp `TAG`_tag(tagtype)] [visit_exp (tagtype)] [visit_exp tagtype] [visit_id tagtype] @@ -31688,14 +27475,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id C] not free [visit_exp tagtype] [visit_id tagtype] not free -[check_dims] C expr expr#385 globaltype globaltype#117 mut?#847 t valtype#457 +[check_dims] C expr globaltype t [visit_exp C] [visit_id C] -[visit_exp `GLOBAL`_global{globaltype#117, expr#385}(globaltype, expr)] -[visit_exp globaltype#117] -[visit_id globaltype#117] -[visit_exp expr#385] -[visit_id expr#385] +[visit_exp `GLOBAL`_global(globaltype, expr)] [visit_exp (globaltype, expr)] [visit_exp globaltype] [visit_id globaltype] @@ -31708,14 +27491,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id C] not free [visit_exp globaltype] [visit_id globaltype] not free -[visit_exp (globaltype = `%%`_globaltype{`mut?#847`, valtype#457}(`MUT`_mut?{}, t))] +[visit_exp (globaltype = `%%`_globaltype(`MUT`_mut?{}, t))] [visit_exp globaltype] [visit_id globaltype] not free -[visit_exp `%%`_globaltype{`mut?#847`, valtype#457}(`MUT`_mut?{}, t)] -[visit_exp `mut?#847`] -[visit_id mut?#847] -[visit_exp valtype#457] -[visit_id valtype#457] +[visit_exp `%%`_globaltype(`MUT`_mut?{}, t)] [visit_exp (`MUT`_mut?{}, t)] [visit_exp `MUT`_mut?{}] [visit_exp `MUT`_mut] @@ -31729,12 +27508,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id expr] not free [visit_exp t] [visit_id t] not free -[check_dims] C memtype memtype#129 +[check_dims] C memtype [visit_exp C] [visit_id C] -[visit_exp `MEMORY`_mem{memtype#129}(memtype)] -[visit_exp memtype#129] -[visit_id memtype#129] +[visit_exp `MEMORY`_mem(memtype)] [visit_exp (memtype)] [visit_exp memtype] [visit_id memtype] @@ -31745,14 +27522,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id C] not free [visit_exp memtype] [visit_id memtype] not free -[check_dims] C addrtype#801 at expr expr#397 lim limits#801 reftype#531 rt tabletype tabletype#143 +[check_dims] C at expr lim rt tabletype [visit_exp C] [visit_id C] -[visit_exp `TABLE`_table{tabletype#143, expr#397}(tabletype, expr)] -[visit_exp tabletype#143] -[visit_id tabletype#143] -[visit_exp expr#397] -[visit_id expr#397] +[visit_exp `TABLE`_table(tabletype, expr)] [visit_exp (tabletype, expr)] [visit_exp tabletype] [visit_id tabletype] @@ -31765,16 +27538,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id C] not free [visit_exp tabletype] [visit_id tabletype] not free -[visit_exp (tabletype = `%%%`_tabletype{addrtype#801, limits#801, reftype#531}(at, lim, rt))] +[visit_exp (tabletype = `%%%`_tabletype(at, lim, rt))] [visit_exp tabletype] [visit_id tabletype] not free -[visit_exp `%%%`_tabletype{addrtype#801, limits#801, reftype#531}(at, lim, rt)] -[visit_exp addrtype#801] -[visit_id addrtype#801] -[visit_exp limits#801] -[visit_id limits#801] -[visit_exp reftype#531] -[visit_id reftype#531] +[visit_exp `%%%`_tabletype(at, lim, rt)] [visit_exp (at, lim, rt)] [visit_exp at] [visit_id at] @@ -31790,20 +27557,14 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp (rt : reftype <: valtype)] [visit_exp rt] [visit_id rt] not free -[check_dims] C init#143 t valtype#469 valtype#481 +[check_dims] C t [visit_exp C] [visit_id C] -[visit_exp `LOCAL`_local{valtype#469}(t)] -[visit_exp valtype#469] -[visit_id valtype#469] +[visit_exp `LOCAL`_local(t)] [visit_exp (t)] [visit_exp t] [visit_id t] -[visit_exp `%%`_localtype{init#143, valtype#481}(`SET`_init, t)] -[visit_exp init#143] -[visit_id init#143] -[visit_exp valtype#481] -[visit_id valtype#481] +[visit_exp `%%`_localtype(`SET`_init, t)] [visit_exp (`SET`_init, t)] [visit_exp `SET`_init] [visit_exp ()] @@ -31811,20 +27572,14 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id t] not free [visit_exp t] [visit_id t] not free -[check_dims] C init#155 t valtype#493 valtype#505 +[check_dims] C t [visit_exp C] [visit_id C] -[visit_exp `LOCAL`_local{valtype#493}(t)] -[visit_exp valtype#493] -[visit_id valtype#493] +[visit_exp `LOCAL`_local(t)] [visit_exp (t)] [visit_exp t] [visit_id t] -[visit_exp `%%`_localtype{init#155, valtype#505}(`UNSET`_init, t)] -[visit_exp init#155] -[visit_id init#155] -[visit_exp valtype#505] -[visit_id valtype#505] +[visit_exp `%%`_localtype(`UNSET`_init, t)] [visit_exp (`UNSET`_init, t)] [visit_exp `UNSET`_init] [visit_exp ()] @@ -31832,16 +27587,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id t] not free [visit_exp t] [visit_id t] not free -[check_dims] C X*#11954 X*#11967 X*#11980 X*#11993 X*#12006 datatype*#12 deftype*#56 deftype*#57 deftype*#58 deftype*#59 elemtype*#12 expr expr#409 funcidx*#49 globaltype*#12 i#9337 i#9347 init#191 lct local local*#171 localtype*#15 memtype*#25 resulttype#2908 resulttype*#23 resulttype?#20 subtype*#11 t_1 t_2 tabletype*#18 tagtype*#11 typeidx#501 valtype#559 x +[check_dims] C expr lct local t_1 t_2 x [visit_exp C] [visit_id C] -[visit_exp `FUNC`_func{typeidx#501, `local*#171`, expr#409}(x, local*{local <- `local*`}, expr)] -[visit_exp typeidx#501] -[visit_id typeidx#501] -[visit_exp `local*#171`] -[visit_id local*#171] -[visit_exp expr#409] -[visit_id expr#409] +[visit_exp `FUNC`_func(x, local*{local <- `local*`}, expr)] [visit_exp (x, local*{local <- `local*`}, expr)] [visit_exp x] [visit_id x] @@ -31856,38 +27605,26 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id local*] [visit_exp expr] [visit_id expr] -[visit_exp C.`TYPES`_context{`deftype*#56`}[x!`%`_idx{i#9337}.0]] -[visit_exp C.`TYPES`_context{`deftype*#56`}] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#56`] -[visit_id deftype*#56] -[visit_exp x!`%`_idx{i#9337}.0] -[visit_exp x!`%`_idx{i#9337}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#9337] -[visit_id i#9337] -[visit_exp (C.`TYPES`_context{`deftype*#57`}[x!`%`_idx{i#9347}.0], `FUNC%->%`_comptype{resulttype#2908}(`%`_resulttype{`X*#11954`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#11967`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`TYPES`_context{`deftype*#57`}[x!`%`_idx{i#9347}.0]] -[visit_exp C.`TYPES`_context{`deftype*#57`}] +[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp C.`TYPES`_context[x!`%`_idx.0]] +[visit_exp C.`TYPES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#57`] -[visit_id deftype*#57] -[visit_exp x!`%`_idx{i#9347}.0] -[visit_exp x!`%`_idx{i#9347}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#9347] -[visit_id i#9347] -[visit_exp `FUNC%->%`_comptype{resulttype#2908}(`%`_resulttype{`X*#11954`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#11967`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#2908] -[visit_id resulttype#2908] -[visit_exp (`%`_resulttype{`X*#11954`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#11967`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#11954`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#11954`] -[visit_id X*#11954] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -31898,9 +27635,7 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp `%`_resulttype{`X*#11967`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#11967`] -[visit_id X*#11967] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -31930,70 +27665,34 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `local*`] [visit_id local*] not free [visit_id local*] no dims -[visit_exp (C +++ {`TYPES`{`deftype*#58`} [], `RECS`{`subtype*#11`} [], `TAGS`{`tagtype*#11`} [], `GLOBALS`{`globaltype*#12`} [], `MEMS`{`memtype*#25`} [], `TABLES`{`tabletype*#18`} [], `FUNCS`{`deftype*#59`} [], `DATAS`{`datatype*#12`} [], `ELEMS`{`elemtype*#12`} [], `LOCALS`{`localtype*#15`} `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)*{init#191 <- `init#191*`, t_1 <- `t_1*`, valtype#559 <- `valtype#559*`} ++ lct*{lct <- `lct*`}, `LABELS`{`resulttype*#23`} [`%`_resulttype{`X*#11980`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#20`} ?(`%`_resulttype{`X*#11993`}(t_2*{t_2 <- `t_2*`})), `REFS`{`funcidx*#49`} []}, expr, `%`_resulttype{`X*#12006`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp C +++ {`TYPES`{`deftype*#58`} [], `RECS`{`subtype*#11`} [], `TAGS`{`tagtype*#11`} [], `GLOBALS`{`globaltype*#12`} [], `MEMS`{`memtype*#25`} [], `TABLES`{`tabletype*#18`} [], `FUNCS`{`deftype*#59`} [], `DATAS`{`datatype*#12`} [], `ELEMS`{`elemtype*#12`} [], `LOCALS`{`localtype*#15`} `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)*{init#191 <- `init#191*`, t_1 <- `t_1*`, valtype#559 <- `valtype#559*`} ++ lct*{lct <- `lct*`}, `LABELS`{`resulttype*#23`} [`%`_resulttype{`X*#11980`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#20`} ?(`%`_resulttype{`X*#11993`}(t_2*{t_2 <- `t_2*`})), `REFS`{`funcidx*#49`} []}] +[visit_exp (C +++ {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` `%%`_localtype(`SET`_init, t_1)*{t_1 <- `t_1*`} ++ lct*{lct <- `lct*`}, `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(`%`_resulttype(t_2*{t_2 <- `t_2*`})), `REFS` []}, expr, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp C +++ {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` `%%`_localtype(`SET`_init, t_1)*{t_1 <- `t_1*`} ++ lct*{lct <- `lct*`}, `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(`%`_resulttype(t_2*{t_2 <- `t_2*`})), `REFS` []}] [visit_exp C] [visit_id C] not free -[visit_exp {`TYPES`{`deftype*#58`} [], `RECS`{`subtype*#11`} [], `TAGS`{`tagtype*#11`} [], `GLOBALS`{`globaltype*#12`} [], `MEMS`{`memtype*#25`} [], `TABLES`{`tabletype*#18`} [], `FUNCS`{`deftype*#59`} [], `DATAS`{`datatype*#12`} [], `ELEMS`{`elemtype*#12`} [], `LOCALS`{`localtype*#15`} `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)*{init#191 <- `init#191*`, t_1 <- `t_1*`, valtype#559 <- `valtype#559*`} ++ lct*{lct <- `lct*`}, `LABELS`{`resulttype*#23`} [`%`_resulttype{`X*#11980`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#20`} ?(`%`_resulttype{`X*#11993`}(t_2*{t_2 <- `t_2*`})), `REFS`{`funcidx*#49`} []}] -[visit_exp `deftype*#58`] -[visit_id deftype*#58] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` `%%`_localtype(`SET`_init, t_1)*{t_1 <- `t_1*`} ++ lct*{lct <- `lct*`}, `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(`%`_resulttype(t_2*{t_2 <- `t_2*`})), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#11`] -[visit_id subtype*#11] [visit_exp []] -[visit_exp `tagtype*#11`] -[visit_id tagtype*#11] [visit_exp []] -[visit_exp `globaltype*#12`] -[visit_id globaltype*#12] [visit_exp []] -[visit_exp `memtype*#25`] -[visit_id memtype*#25] [visit_exp []] -[visit_exp `tabletype*#18`] -[visit_id tabletype*#18] [visit_exp []] -[visit_exp `deftype*#59`] -[visit_id deftype*#59] [visit_exp []] -[visit_exp `datatype*#12`] -[visit_id datatype*#12] [visit_exp []] -[visit_exp `elemtype*#12`] -[visit_id elemtype*#12] [visit_exp []] -[visit_exp `localtype*#15`] -[visit_id localtype*#15] -[visit_exp `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)*{init#191 <- `init#191*`, t_1 <- `t_1*`, valtype#559 <- `valtype#559*`} ++ lct*{lct <- `lct*`}] -[visit_exp `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)*{init#191 <- `init#191*`, t_1 <- `t_1*`, valtype#559 <- `valtype#559*`}] -[scope_enter init#191] +[visit_exp `%%`_localtype(`SET`_init, t_1)*{t_1 <- `t_1*`} ++ lct*{lct <- `lct*`}] +[visit_exp `%%`_localtype(`SET`_init, t_1)*{t_1 <- `t_1*`}] [scope_enter t_1] -[scope_enter valtype#559] -[visit_exp `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)] -[visit_exp init#191] -[visit_id init#191] not free -[visit_exp valtype#559] -[visit_id valtype#559] not free +[visit_exp `%%`_localtype(`SET`_init, t_1)] [visit_exp (`SET`_init, t_1)] [visit_exp `SET`_init] [visit_exp ()] [visit_exp t_1] [visit_id t_1] not free -[visit_id init#191] not free [visit_id t_1] not free -[visit_id valtype#559] not free -[scope_exit valtype#559] [scope_exit t_1] -[scope_exit init#191] -[visit_exp `init#191*`] -[visit_id init#191*] no dims -[visit_id init#191*] [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `valtype#559*`] -[visit_id valtype#559*] no dims -[visit_id valtype#559*] [visit_exp lct*{lct <- `lct*`}] [scope_enter lct] [visit_exp lct] @@ -32003,12 +27702,8 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `lct*`] [visit_id lct*] not free [visit_id lct*] no dims -[visit_exp `resulttype*#23`] -[visit_id resulttype*#23] -[visit_exp [`%`_resulttype{`X*#11980`}(t_2*{t_2 <- `t_2*`})]] -[visit_exp `%`_resulttype{`X*#11980`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#11980`] -[visit_id X*#11980] +[visit_exp [`%`_resulttype(t_2*{t_2 <- `t_2*`})]] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -32019,12 +27714,8 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp `resulttype?#20`] -[visit_id resulttype?#20] -[visit_exp ?(`%`_resulttype{`X*#11993`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#11993`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#11993`] -[visit_id X*#11993] +[visit_exp ?(`%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -32035,14 +27726,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp `funcidx*#49`] -[visit_id funcidx*#49] [visit_exp []] [visit_exp expr] [visit_id expr] not free -[visit_exp `%`_resulttype{`X*#12006`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#12006`] -[visit_id X*#12006] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -32053,14 +27740,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[check_dims] C b byte*#153 datamode datamode#153 +[check_dims] C b datamode [visit_exp C] [visit_id C] -[visit_exp `DATA`_data{`byte*#153`, datamode#153}(b*{b <- `b*`}, datamode)] -[visit_exp `byte*#153`] -[visit_id byte*#153] -[visit_exp datamode#153] -[visit_id datamode#153] +[visit_exp `DATA`_data(b*{b <- `b*`}, datamode)] [visit_exp (b*{b <- `b*`}, datamode)] [visit_exp b*{b <- `b*`}] [scope_enter b] @@ -32082,16 +27765,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id datamode] not free [visit_exp `OK`_datatype] [visit_exp ()] -[check_dims] C elemmode elemmode#165 elemtype expr expr*#165 reftype#543 +[check_dims] C elemmode elemtype expr [visit_exp C] [visit_id C] -[visit_exp `ELEM`_elem{reftype#543, `expr*#165`, elemmode#165}(elemtype, expr*{expr <- `expr*`}, elemmode)] -[visit_exp reftype#543] -[visit_id reftype#543] -[visit_exp `expr*#165`] -[visit_id expr*#165] -[visit_exp elemmode#165] -[visit_id elemmode#165] +[visit_exp `ELEM`_elem(elemtype, expr*{expr <- `expr*`}, elemmode)] [visit_exp (elemtype, expr*{expr <- `expr*`}, elemmode)] [visit_exp elemtype] [visit_id elemtype] @@ -32141,14 +27818,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp ()] [visit_exp `OK`_datatype] [visit_exp ()] -[check_dims] C addrtype#813 at expr expr#411 i#9383 lim limits#813 memidx#63 memtype*#26 x +[check_dims] C at expr lim x [visit_exp C] [visit_id C] -[visit_exp `ACTIVE`_datamode{memidx#63, expr#411}(x, expr)] -[visit_exp memidx#63] -[visit_id memidx#63] -[visit_exp expr#411] -[visit_id expr#411] +[visit_exp `ACTIVE`_datamode(x, expr)] [visit_exp (x, expr)] [visit_exp x] [visit_id x] @@ -32156,24 +27829,16 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id expr] [visit_exp `OK`_datatype] [visit_exp ()] -[visit_exp (C.`MEMS`_context{`memtype*#26`}[x!`%`_idx{i#9383}.0] = `%%PAGE`_memtype{addrtype#813, limits#813}(at, lim))] -[visit_exp C.`MEMS`_context{`memtype*#26`}[x!`%`_idx{i#9383}.0]] -[visit_exp C.`MEMS`_context{`memtype*#26`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#26`] -[visit_id memtype*#26] -[visit_exp x!`%`_idx{i#9383}.0] -[visit_exp x!`%`_idx{i#9383}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#9383] -[visit_id i#9383] -[visit_exp `%%PAGE`_memtype{addrtype#813, limits#813}(at, lim)] -[visit_exp addrtype#813] -[visit_id addrtype#813] -[visit_exp limits#813] -[visit_id limits#813] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] @@ -32201,14 +27866,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp ()] [visit_exp rt] [visit_id rt] -[check_dims] C addrtype#825 at expr expr#413 i#9407 lim limits#825 reftype#555 rt rt' tableidx#45 tabletype*#19 x +[check_dims] C at expr lim rt rt' x [visit_exp C] [visit_id C] -[visit_exp `ACTIVE`_elemmode{tableidx#45, expr#413}(x, expr)] -[visit_exp tableidx#45] -[visit_id tableidx#45] -[visit_exp expr#413] -[visit_id expr#413] +[visit_exp `ACTIVE`_elemmode(x, expr)] [visit_exp (x, expr)] [visit_exp x] [visit_id x] @@ -32216,26 +27877,16 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id expr] [visit_exp rt] [visit_id rt] -[visit_exp (C.`TABLES`_context{`tabletype*#19`}[x!`%`_idx{i#9407}.0] = `%%%`_tabletype{addrtype#825, limits#825, reftype#555}(at, lim, rt'))] -[visit_exp C.`TABLES`_context{`tabletype*#19`}[x!`%`_idx{i#9407}.0]] -[visit_exp C.`TABLES`_context{`tabletype*#19`}] +[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt'))] +[visit_exp C.`TABLES`_context[x!`%`_idx.0]] +[visit_exp C.`TABLES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tabletype*#19`] -[visit_id tabletype*#19] -[visit_exp x!`%`_idx{i#9407}.0] -[visit_exp x!`%`_idx{i#9407}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#9407] -[visit_id i#9407] -[visit_exp `%%%`_tabletype{addrtype#825, limits#825, reftype#555}(at, lim, rt')] -[visit_exp addrtype#825] -[visit_id addrtype#825] -[visit_exp limits#825] -[visit_id limits#825] -[visit_exp reftype#555] -[visit_id reftype#555] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%%`_tabletype(at, lim, rt')] [visit_exp (at, lim, rt')] [visit_exp at] [visit_id at] @@ -32258,53 +27909,37 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_exp (at : addrtype <: valtype)] [visit_exp at] [visit_id at] not free -[check_dims] C X*#12031 X*#12052 deftype*#60 funcidx#195 i#9431 resulttype#2911 x +[check_dims] C x [visit_exp C] [visit_id C] -[visit_exp `START`_start{funcidx#195}(x)] -[visit_exp funcidx#195] -[visit_id funcidx#195] +[visit_exp `START`_start(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp (C.`FUNCS`_context{`deftype*#60`}[x!`%`_idx{i#9431}.0], `FUNC%->%`_comptype{resulttype#2911}(`%`_resulttype{`X*#12031`}([]), `%`_resulttype{`X*#12052`}([])))] -[visit_exp C.`FUNCS`_context{`deftype*#60`}[x!`%`_idx{i#9431}.0]] -[visit_exp C.`FUNCS`_context{`deftype*#60`}] +[visit_exp (C.`FUNCS`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype([]), `%`_resulttype([])))] +[visit_exp C.`FUNCS`_context[x!`%`_idx.0]] +[visit_exp C.`FUNCS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#60`] -[visit_id deftype*#60] -[visit_exp x!`%`_idx{i#9431}.0] -[visit_exp x!`%`_idx{i#9431}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#9431] -[visit_id i#9431] -[visit_exp `FUNC%->%`_comptype{resulttype#2911}(`%`_resulttype{`X*#12031`}([]), `%`_resulttype{`X*#12052`}([]))] -[visit_exp resulttype#2911] -[visit_id resulttype#2911] -[visit_exp (`%`_resulttype{`X*#12031`}([]), `%`_resulttype{`X*#12052`}([]))] -[visit_exp `%`_resulttype{`X*#12031`}([])] -[visit_exp `X*#12031`] -[visit_id X*#12031] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `FUNC%->%`_comptype(`%`_resulttype([]), `%`_resulttype([]))] +[visit_exp (`%`_resulttype([]), `%`_resulttype([]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] -[visit_exp `%`_resulttype{`X*#12052`}([])] -[visit_exp `X*#12052`] -[visit_id X*#12052] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [check_dims] [check_dims] [check_dims] -[check_dims] C externtype#79 name#309 name_1 name_2 xt +[check_dims] C name_1 name_2 xt [visit_exp C] [visit_id C] -[visit_exp `IMPORT`_import{name#309, externtype#79}(name_1, name_2, xt)] -[visit_exp name#309] -[visit_id name#309] -[visit_exp externtype#79] -[visit_id externtype#79] +[visit_exp `IMPORT`_import(name_1, name_2, xt)] [visit_exp (name_1, name_2, xt)] [visit_exp name_1] [visit_id name_1] @@ -32322,14 +27957,10 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id C] not free [visit_exp xt] [visit_id xt] not free -[check_dims] C externidx externidx#193 name name#322 xt +[check_dims] C externidx name xt [visit_exp C] [visit_id C] -[visit_exp `EXPORT`_export{name#322, externidx#193}(name, externidx)] -[visit_exp name#322] -[visit_id name#322] -[visit_exp externidx#193] -[visit_id externidx#193] +[visit_exp `EXPORT`_export(name, externidx)] [visit_exp (name, externidx)] [visit_exp name] [visit_id name] @@ -32346,187 +27977,148 @@ DecD is_packtype(storagetype : storagetype) : bool [visit_id externidx] not free [visit_exp xt] [visit_id xt] not free -[check_dims] C i#9455 jt tagidx#9 tagtype#107 tagtype*#12 x +[check_dims] C jt x [visit_exp C] [visit_id C] -[visit_exp `TAG`_externidx{tagidx#9}(x)] -[visit_exp tagidx#9] -[visit_id tagidx#9] +[visit_exp `TAG`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `TAG`_externtype{tagtype#107}(jt)] -[visit_exp tagtype#107] -[visit_id tagtype#107] +[visit_exp `TAG`_externtype(jt)] [visit_exp (jt)] [visit_exp jt] [visit_id jt] -[visit_exp (C.`TAGS`_context{`tagtype*#12`}[x!`%`_idx{i#9455}.0] = jt)] -[visit_exp C.`TAGS`_context{`tagtype*#12`}[x!`%`_idx{i#9455}.0]] -[visit_exp C.`TAGS`_context{`tagtype*#12`}] +[visit_exp (C.`TAGS`_context[x!`%`_idx.0] = jt)] +[visit_exp C.`TAGS`_context[x!`%`_idx.0]] +[visit_exp C.`TAGS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tagtype*#12`] -[visit_id tagtype*#12] -[visit_exp x!`%`_idx{i#9455}.0] -[visit_exp x!`%`_idx{i#9455}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#9455] -[visit_id i#9455] [visit_exp jt] [visit_id jt] not free -[check_dims] C globalidx#15 globaltype#119 globaltype*#13 gt i#9479 x +[check_dims] C gt x [visit_exp C] [visit_id C] -[visit_exp `GLOBAL`_externidx{globalidx#15}(x)] -[visit_exp globalidx#15] -[visit_id globalidx#15] +[visit_exp `GLOBAL`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `GLOBAL`_externtype{globaltype#119}(gt)] -[visit_exp globaltype#119] -[visit_id globaltype#119] +[visit_exp `GLOBAL`_externtype(gt)] [visit_exp (gt)] [visit_exp gt] [visit_id gt] -[visit_exp (C.`GLOBALS`_context{`globaltype*#13`}[x!`%`_idx{i#9479}.0] = gt)] -[visit_exp C.`GLOBALS`_context{`globaltype*#13`}[x!`%`_idx{i#9479}.0]] -[visit_exp C.`GLOBALS`_context{`globaltype*#13`}] +[visit_exp (C.`GLOBALS`_context[x!`%`_idx.0] = gt)] +[visit_exp C.`GLOBALS`_context[x!`%`_idx.0]] +[visit_exp C.`GLOBALS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `globaltype*#13`] -[visit_id globaltype*#13] -[visit_exp x!`%`_idx{i#9479}.0] -[visit_exp x!`%`_idx{i#9479}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#9479] -[visit_id i#9479] [visit_exp gt] [visit_id gt] not free -[check_dims] C i#9503 memidx#65 memtype#131 memtype*#27 mt x +[check_dims] C mt x [visit_exp C] [visit_id C] -[visit_exp `MEM`_externidx{memidx#65}(x)] -[visit_exp memidx#65] -[visit_id memidx#65] +[visit_exp `MEM`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `MEM`_externtype{memtype#131}(mt)] -[visit_exp memtype#131] -[visit_id memtype#131] +[visit_exp `MEM`_externtype(mt)] [visit_exp (mt)] [visit_exp mt] [visit_id mt] -[visit_exp (C.`MEMS`_context{`memtype*#27`}[x!`%`_idx{i#9503}.0] = mt)] -[visit_exp C.`MEMS`_context{`memtype*#27`}[x!`%`_idx{i#9503}.0]] -[visit_exp C.`MEMS`_context{`memtype*#27`}] +[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = mt)] +[visit_exp C.`MEMS`_context[x!`%`_idx.0]] +[visit_exp C.`MEMS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `memtype*#27`] -[visit_id memtype*#27] -[visit_exp x!`%`_idx{i#9503}.0] -[visit_exp x!`%`_idx{i#9503}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#9503] -[visit_id i#9503] [visit_exp mt] [visit_id mt] not free -[check_dims] C i#9527 tableidx#47 tabletype#145 tabletype*#20 tt x +[check_dims] C tt x [visit_exp C] [visit_id C] -[visit_exp `TABLE`_externidx{tableidx#47}(x)] -[visit_exp tableidx#47] -[visit_id tableidx#47] +[visit_exp `TABLE`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `TABLE`_externtype{tabletype#145}(tt)] -[visit_exp tabletype#145] -[visit_id tabletype#145] +[visit_exp `TABLE`_externtype(tt)] [visit_exp (tt)] [visit_exp tt] [visit_id tt] -[visit_exp (C.`TABLES`_context{`tabletype*#20`}[x!`%`_idx{i#9527}.0] = tt)] -[visit_exp C.`TABLES`_context{`tabletype*#20`}[x!`%`_idx{i#9527}.0]] -[visit_exp C.`TABLES`_context{`tabletype*#20`}] +[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = tt)] +[visit_exp C.`TABLES`_context[x!`%`_idx.0]] +[visit_exp C.`TABLES`_context] [visit_exp C] [visit_id C] not free -[visit_exp `tabletype*#20`] -[visit_id tabletype*#20] -[visit_exp x!`%`_idx{i#9527}.0] -[visit_exp x!`%`_idx{i#9527}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#9527] -[visit_id i#9527] [visit_exp tt] [visit_id tt] not free -[check_dims] C deftype*#61 dt funcidx#197 i#9551 typeuse#31 x +[check_dims] C dt x [visit_exp C] [visit_id C] -[visit_exp `FUNC`_externidx{funcidx#197}(x)] -[visit_exp funcidx#197] -[visit_id funcidx#197] +[visit_exp `FUNC`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `FUNC`_externtype{typeuse#31}((dt : deftype <: typeuse))] -[visit_exp typeuse#31] -[visit_id typeuse#31] +[visit_exp `FUNC`_externtype((dt : deftype <: typeuse))] [visit_exp ((dt : deftype <: typeuse))] [visit_exp (dt : deftype <: typeuse)] [visit_exp dt] [visit_id dt] -[visit_exp (C.`FUNCS`_context{`deftype*#61`}[x!`%`_idx{i#9551}.0] = dt)] -[visit_exp C.`FUNCS`_context{`deftype*#61`}[x!`%`_idx{i#9551}.0]] -[visit_exp C.`FUNCS`_context{`deftype*#61`}] +[visit_exp (C.`FUNCS`_context[x!`%`_idx.0] = dt)] +[visit_exp C.`FUNCS`_context[x!`%`_idx.0]] +[visit_exp C.`FUNCS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `deftype*#61`] -[visit_id deftype*#61] -[visit_exp x!`%`_idx{i#9551}.0] -[visit_exp x!`%`_idx{i#9551}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#9551] -[visit_id i#9551] [visit_exp dt] [visit_id dt] not free [check_dims] [check_dims] [check_dims] [check_dims] ---- 1 --- [check_dims] ---- 2 --- ---- 3 --- ---- 4 --- +[scope_enter global*] +[visit_id global*] not free [visit_id global*] no dims -[visit_id global*] +[scope_enter mem*] +[visit_id mem*] not free [visit_id mem*] no dims -[visit_id mem*] +[scope_enter table*] +[visit_id table*] not free [visit_id table*] no dims -[visit_id table*] +[scope_enter elem*] +[visit_id elem*] not free [visit_id elem*] no dims -[visit_id elem*] +[scope_exit elem*] +[scope_exit table*] +[scope_exit mem*] +[scope_exit global*] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- [check_dims] nonfuncs DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_id nonfuncs] not free -[check_dims] data*#71 elem elem*#47 elem*#83 export*#71 func*#71 global global*#47 global*#83 import*#71 mem mem*#47 mem*#83 start?#71 table table*#47 table*#83 tag*#71 type*#71 -[visit_exp `%%%%`_nonfuncs{`global*#47`, `mem*#47`, `table*#47`, `elem*#47`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] -[visit_exp `global*#47`] -[visit_id global*#47] -[visit_exp `mem*#47`] -[visit_id mem*#47] -[visit_exp `table*#47`] -[visit_id table*#47] -[visit_exp `elem*#47`] -[visit_id elem*#47] +[check_dims] elem global mem table +[visit_exp `%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] [visit_exp (global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] [visit_exp global*{global <- `global*`}] [scope_enter global] @@ -32564,30 +28156,8 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `elem*`] [visit_id elem*] no dims [visit_id elem*] -[visit_exp $funcidx_module(`MODULE`_module{`type*#71`, `import*#71`, `tag*#71`, `global*#83`, `mem*#83`, `table*#83`, `func*#71`, `data*#71`, `elem*#83`, `start?#71`, `export*#71`}([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), []))] -[visit_exp `MODULE`_module{`type*#71`, `import*#71`, `tag*#71`, `global*#83`, `mem*#83`, `table*#83`, `func*#71`, `data*#71`, `elem*#83`, `start?#71`, `export*#71`}([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])] -[visit_exp `type*#71`] -[visit_id type*#71] -[visit_exp `import*#71`] -[visit_id import*#71] -[visit_exp `tag*#71`] -[visit_id tag*#71] -[visit_exp `global*#83`] -[visit_id global*#83] -[visit_exp `mem*#83`] -[visit_id mem*#83] -[visit_exp `table*#83`] -[visit_id table*#83] -[visit_exp `func*#71`] -[visit_id func*#71] -[visit_exp `data*#71`] -[visit_id data*#71] -[visit_exp `elem*#83`] -[visit_id elem*#83] -[visit_exp `start?#71`] -[visit_id start?#71] -[visit_exp `export*#71`] -[visit_id export*#71] +[visit_exp $funcidx_module(`MODULE`_module([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), []))] +[visit_exp `MODULE`_module([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])] [visit_exp ([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])] [visit_exp []] [visit_exp []] @@ -32634,31 +28204,9 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp []] => ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - def $funcidx_nonfuncs{`global*#47` : global*, `mem*#47` : mem*, `table*#47` : table*, `elem*#47` : elem*, `global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*, `type*#71` : type*, `import*#71` : import*, `tag*#71` : tag*, `global*#83` : global*, `mem*#83` : mem*, `table*#83` : table*, `func*#71` : func*, `data*#71` : data*, `elem*#83` : elem*, `start?#71` : start?, `export*#71` : export*}(`%%%%`_nonfuncs{`global*#47`, `mem*#47`, `table*#47`, `elem*#47`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})) = $funcidx_module(`MODULE`_module{`type*#71`, `import*#71`, `tag*#71`, `global*#83`, `mem*#83`, `table*#83`, `func*#71`, `data*#71`, `elem*#83`, `start?#71`, `export*#71`}([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])) -[check_dims] C C' data data*#83 datatype*#13 datatype*#14 datatype*#15 datatype*#16 deftype*#62 deftype*#63 deftype*#64 deftype*#65 deftype*#66 deftype*#67 deftype*#68 deftype*#69 dt dt' dt_I elem elem*#107 elem*#95 elemtype*#13 elemtype*#14 elemtype*#15 elemtype*#16 export export*#83 externtype*#148 func func*#83 funcidx*#50 funcidx*#51 funcidx*#52 funcidx*#53 global global*#107 global*#95 globaltype*#14 globaltype*#15 globaltype*#16 globaltype*#17 gt gt_I import import*#83 jt jt_I localtype*#16 localtype*#17 localtype*#18 localtype*#19 mem mem*#107 mem*#95 memtype*#28 memtype*#29 memtype*#30 memtype*#31 mt mt_I nm ok resulttype*#24 resulttype*#25 resulttype*#26 resulttype*#27 resulttype?#21 resulttype?#22 resulttype?#23 resulttype?#24 rt start start?#83 subtype*#12 subtype*#13 subtype*#14 subtype*#15 table table*#107 table*#95 tabletype*#21 tabletype*#22 tabletype*#23 tabletype*#24 tag tag*#83 tagtype*#13 tagtype*#14 tagtype*#15 tagtype*#16 tt tt_I type type*#83 x xt_E xt_I -[visit_exp `MODULE`_module{`type*#83`, `import*#83`, `tag*#83`, `global*#95`, `mem*#95`, `table*#95`, `func*#83`, `data*#83`, `elem*#95`, `start?#83`, `export*#83`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp `type*#83`] -[visit_id type*#83] -[visit_exp `import*#83`] -[visit_id import*#83] -[visit_exp `tag*#83`] -[visit_id tag*#83] -[visit_exp `global*#95`] -[visit_id global*#95] -[visit_exp `mem*#95`] -[visit_id mem*#95] -[visit_exp `table*#95`] -[visit_id table*#95] -[visit_exp `func*#83`] -[visit_id func*#83] -[visit_exp `data*#83`] -[visit_id data*#83] -[visit_exp `elem*#95`] -[visit_id elem*#95] -[visit_exp `start?#83`] -[visit_id start?#83] -[visit_exp `export*#83`] -[visit_id export*#83] + def $funcidx_nonfuncs{`global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*}(`%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})) = $funcidx_module(`MODULE`_module([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])) +[check_dims] C C' data dt dt' dt_I elem export func global gt gt_I import jt jt_I mem mt mt_I nm ok rt start table tag tt tt_I type x xt_E xt_I +[visit_exp `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] [visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] [visit_exp type*{type <- `type*`}] [scope_enter type] @@ -32759,12 +28307,10 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `export*`] [visit_id export*] no dims [visit_id export*] -[visit_exp $clos_moduletype(C, `%->%`_moduletype{`externtype*#148`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))] +[visit_exp $clos_moduletype(C, `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))] [visit_exp C] [visit_id C] -[visit_exp `%->%`_moduletype{`externtype*#148`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] -[visit_exp `externtype*#148`] -[visit_id externtype*#148] +[visit_exp `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] [visit_exp (xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] [visit_exp xt_I*{xt_I <- `xt_I*`}] [scope_enter xt_I] @@ -32784,46 +28330,20 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `xt_E*`] [visit_id xt_E*] no dims [visit_id xt_E*] -[visit_exp ({`TYPES`{`deftype*#62`} [], `RECS`{`subtype*#12`} [], `TAGS`{`tagtype*#13`} [], `GLOBALS`{`globaltype*#14`} [], `MEMS`{`memtype*#28`} [], `TABLES`{`tabletype*#21`} [], `FUNCS`{`deftype*#63`} [], `DATAS`{`datatype*#13`} [], `ELEMS`{`elemtype*#13`} [], `LOCALS`{`localtype*#16`} [], `LABELS`{`resulttype*#24`} [], `RETURN`{`resulttype?#21`} ?(), `REFS`{`funcidx*#50`} []}, type*{type <- `type*`}, dt'*{dt' <- `dt'*`})] -[visit_exp {`TYPES`{`deftype*#62`} [], `RECS`{`subtype*#12`} [], `TAGS`{`tagtype*#13`} [], `GLOBALS`{`globaltype*#14`} [], `MEMS`{`memtype*#28`} [], `TABLES`{`tabletype*#21`} [], `FUNCS`{`deftype*#63`} [], `DATAS`{`datatype*#13`} [], `ELEMS`{`elemtype*#13`} [], `LOCALS`{`localtype*#16`} [], `LABELS`{`resulttype*#24`} [], `RETURN`{`resulttype?#21`} ?(), `REFS`{`funcidx*#50`} []}] -[visit_exp `deftype*#62`] -[visit_id deftype*#62] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, type*{type <- `type*`}, dt'*{dt' <- `dt'*`})] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#12`] -[visit_id subtype*#12] [visit_exp []] -[visit_exp `tagtype*#13`] -[visit_id tagtype*#13] [visit_exp []] -[visit_exp `globaltype*#14`] -[visit_id globaltype*#14] [visit_exp []] -[visit_exp `memtype*#28`] -[visit_id memtype*#28] [visit_exp []] -[visit_exp `tabletype*#21`] -[visit_id tabletype*#21] [visit_exp []] -[visit_exp `deftype*#63`] -[visit_id deftype*#63] [visit_exp []] -[visit_exp `datatype*#13`] -[visit_id datatype*#13] [visit_exp []] -[visit_exp `elemtype*#13`] -[visit_id elemtype*#13] [visit_exp []] -[visit_exp `localtype*#16`] -[visit_id localtype*#16] [visit_exp []] -[visit_exp `resulttype*#24`] -[visit_id resulttype*#24] [visit_exp []] -[visit_exp `resulttype?#21`] -[visit_id resulttype?#21] [visit_exp ?()] -[visit_exp `funcidx*#50`] -[visit_id funcidx*#50] [visit_exp []] [visit_exp type*{type <- `type*`}] [scope_enter type] @@ -32843,25 +28363,10 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `dt'*`] [visit_id dt'*] no dims [visit_id dt'*] -[scope_enter datatype*#14] -[scope_enter deftype*#64] -[scope_enter deftype*#65] -[scope_enter elemtype*#14] -[scope_enter funcidx*#51] -[scope_enter globaltype*#15] [scope_enter import] -[scope_enter localtype*#17] -[scope_enter memtype*#29] -[scope_enter resulttype*#25] -[scope_enter resulttype?#22] -[scope_enter subtype*#13] -[scope_enter tabletype*#22] -[scope_enter tagtype*#14] [scope_enter xt_I] -[visit_exp ({`TYPES`{`deftype*#64`} dt'*{dt' <- `dt'*`}, `RECS`{`subtype*#13`} [], `TAGS`{`tagtype*#14`} [], `GLOBALS`{`globaltype*#15`} [], `MEMS`{`memtype*#29`} [], `TABLES`{`tabletype*#22`} [], `FUNCS`{`deftype*#65`} [], `DATAS`{`datatype*#14`} [], `ELEMS`{`elemtype*#14`} [], `LOCALS`{`localtype*#17`} [], `LABELS`{`resulttype*#25`} [], `RETURN`{`resulttype?#22`} ?(), `REFS`{`funcidx*#51`} []}, import, xt_I)] -[visit_exp {`TYPES`{`deftype*#64`} dt'*{dt' <- `dt'*`}, `RECS`{`subtype*#13`} [], `TAGS`{`tagtype*#14`} [], `GLOBALS`{`globaltype*#15`} [], `MEMS`{`memtype*#29`} [], `TABLES`{`tabletype*#22`} [], `FUNCS`{`deftype*#65`} [], `DATAS`{`datatype*#14`} [], `ELEMS`{`elemtype*#14`} [], `LOCALS`{`localtype*#17`} [], `LABELS`{`resulttype*#25`} [], `RETURN`{`resulttype?#22`} ?(), `REFS`{`funcidx*#51`} []}] -[visit_exp `deftype*#64`] -[visit_id deftype*#64] not free +[visit_exp ({`TYPES` dt'*{dt' <- `dt'*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, import, xt_I)] +[visit_exp {`TYPES` dt'*{dt' <- `dt'*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp dt'*{dt' <- `dt'*`}] [scope_enter dt'] [visit_exp dt'] @@ -32871,118 +28376,29 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `dt'*`] [visit_id dt'*] not free [visit_id dt'*] no dims -[visit_exp `subtype*#13`] -[visit_id subtype*#13] not free [visit_exp []] -[visit_exp `tagtype*#14`] -[visit_id tagtype*#14] not free [visit_exp []] -[visit_exp `globaltype*#15`] -[visit_id globaltype*#15] not free [visit_exp []] -[visit_exp `memtype*#29`] -[visit_id memtype*#29] not free [visit_exp []] -[visit_exp `tabletype*#22`] -[visit_id tabletype*#22] not free [visit_exp []] -[visit_exp `deftype*#65`] -[visit_id deftype*#65] not free [visit_exp []] -[visit_exp `datatype*#14`] -[visit_id datatype*#14] not free [visit_exp []] -[visit_exp `elemtype*#14`] -[visit_id elemtype*#14] not free [visit_exp []] -[visit_exp `localtype*#17`] -[visit_id localtype*#17] not free [visit_exp []] -[visit_exp `resulttype*#25`] -[visit_id resulttype*#25] not free [visit_exp []] -[visit_exp `resulttype?#22`] -[visit_id resulttype?#22] not free [visit_exp ?()] -[visit_exp `funcidx*#51`] -[visit_id funcidx*#51] not free [visit_exp []] [visit_exp import] [visit_id import] not free [visit_exp xt_I] [visit_id xt_I] not free -[visit_id datatype*#14] not free -[visit_id deftype*#64] not free -[visit_id deftype*#65] not free -[visit_id elemtype*#14] not free -[visit_id funcidx*#51] not free -[visit_id globaltype*#15] not free [visit_id import] not free -[visit_id localtype*#17] not free -[visit_id memtype*#29] not free -[visit_id resulttype*#25] not free -[visit_id resulttype?#22] not free -[visit_id subtype*#13] not free -[visit_id tabletype*#22] not free -[visit_id tagtype*#14] not free [visit_id xt_I] not free [scope_exit xt_I] -[scope_exit tagtype*#14] -[scope_exit tabletype*#22] -[scope_exit subtype*#13] -[scope_exit resulttype?#22] -[scope_exit resulttype*#25] -[scope_exit memtype*#29] -[scope_exit localtype*#17] [scope_exit import] -[scope_exit globaltype*#15] -[scope_exit funcidx*#51] -[scope_exit elemtype*#14] -[scope_exit deftype*#65] -[scope_exit deftype*#64] -[scope_exit datatype*#14] -[visit_exp `datatype*#14*`] -[visit_id datatype*#14*] no dims -[visit_id datatype*#14*] -[visit_exp `deftype*#64*`] -[visit_id deftype*#64*] no dims -[visit_id deftype*#64*] -[visit_exp `deftype*#65*`] -[visit_id deftype*#65*] no dims -[visit_id deftype*#65*] -[visit_exp `elemtype*#14*`] -[visit_id elemtype*#14*] no dims -[visit_id elemtype*#14*] -[visit_exp `funcidx*#51*`] -[visit_id funcidx*#51*] no dims -[visit_id funcidx*#51*] -[visit_exp `globaltype*#15*`] -[visit_id globaltype*#15*] no dims -[visit_id globaltype*#15*] [visit_exp `import*`] [visit_id import*] not free [visit_id import*] no dims -[visit_exp `localtype*#17*`] -[visit_id localtype*#17*] no dims -[visit_id localtype*#17*] -[visit_exp `memtype*#29*`] -[visit_id memtype*#29*] no dims -[visit_id memtype*#29*] -[visit_exp `resulttype*#25*`] -[visit_id resulttype*#25*] no dims -[visit_id resulttype*#25*] -[visit_exp `resulttype?#22*`] -[visit_id resulttype?#22*] no dims -[visit_id resulttype?#22*] -[visit_exp `subtype*#13*`] -[visit_id subtype*#13*] no dims -[visit_id subtype*#13*] -[visit_exp `tabletype*#22*`] -[visit_id tabletype*#22*] no dims -[visit_id tabletype*#22*] -[visit_exp `tagtype*#14*`] -[visit_id tagtype*#14*] no dims -[visit_id tagtype*#14*] [visit_exp `xt_I*`] [visit_id xt_I*] not free [visit_id xt_I*] no dims @@ -33169,21 +28585,15 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `nm*`] [visit_id nm*] not free [visit_id nm*] no dims -[visit_exp (C = C' +++ {`TYPES`{`deftype*#66`} [], `RECS`{`subtype*#14`} [], `TAGS`{`tagtype*#15`} jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS`{`globaltype*#16`} gt*{gt <- `gt*`}, `MEMS`{`memtype*#30`} mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES`{`tabletype*#23`} tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS`{`deftype*#67`} [], `DATAS`{`datatype*#15`} ok*{ok <- `ok*`}, `ELEMS`{`elemtype*#15`} rt*{rt <- `rt*`}, `LOCALS`{`localtype*#18`} [], `LABELS`{`resulttype*#26`} [], `RETURN`{`resulttype?#23`} ?(), `REFS`{`funcidx*#52`} []})] +[visit_exp (C = C' +++ {`TYPES` [], `RECS` [], `TAGS` jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS` gt*{gt <- `gt*`}, `MEMS` mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES` tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS` [], `DATAS` ok*{ok <- `ok*`}, `ELEMS` rt*{rt <- `rt*`}, `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []})] [visit_exp C] [visit_id C] not free -[visit_exp C' +++ {`TYPES`{`deftype*#66`} [], `RECS`{`subtype*#14`} [], `TAGS`{`tagtype*#15`} jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS`{`globaltype*#16`} gt*{gt <- `gt*`}, `MEMS`{`memtype*#30`} mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES`{`tabletype*#23`} tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS`{`deftype*#67`} [], `DATAS`{`datatype*#15`} ok*{ok <- `ok*`}, `ELEMS`{`elemtype*#15`} rt*{rt <- `rt*`}, `LOCALS`{`localtype*#18`} [], `LABELS`{`resulttype*#26`} [], `RETURN`{`resulttype?#23`} ?(), `REFS`{`funcidx*#52`} []}] +[visit_exp C' +++ {`TYPES` [], `RECS` [], `TAGS` jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS` gt*{gt <- `gt*`}, `MEMS` mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES` tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS` [], `DATAS` ok*{ok <- `ok*`}, `ELEMS` rt*{rt <- `rt*`}, `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp C'] [visit_id C'] not free -[visit_exp {`TYPES`{`deftype*#66`} [], `RECS`{`subtype*#14`} [], `TAGS`{`tagtype*#15`} jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS`{`globaltype*#16`} gt*{gt <- `gt*`}, `MEMS`{`memtype*#30`} mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES`{`tabletype*#23`} tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS`{`deftype*#67`} [], `DATAS`{`datatype*#15`} ok*{ok <- `ok*`}, `ELEMS`{`elemtype*#15`} rt*{rt <- `rt*`}, `LOCALS`{`localtype*#18`} [], `LABELS`{`resulttype*#26`} [], `RETURN`{`resulttype?#23`} ?(), `REFS`{`funcidx*#52`} []}] -[visit_exp `deftype*#66`] -[visit_id deftype*#66] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS` gt*{gt <- `gt*`}, `MEMS` mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES` tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS` [], `DATAS` ok*{ok <- `ok*`}, `ELEMS` rt*{rt <- `rt*`}, `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#14`] -[visit_id subtype*#14] [visit_exp []] -[visit_exp `tagtype*#15`] -[visit_id tagtype*#15] [visit_exp jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}] [visit_exp jt_I*{jt_I <- `jt_I*`}] [scope_enter jt_I] @@ -33203,8 +28613,6 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `jt*`] [visit_id jt*] not free [visit_id jt*] no dims -[visit_exp `globaltype*#16`] -[visit_id globaltype*#16] [visit_exp gt*{gt <- `gt*`}] [scope_enter gt] [visit_exp gt] @@ -33214,8 +28622,6 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `gt*`] [visit_id gt*] not free [visit_id gt*] no dims -[visit_exp `memtype*#30`] -[visit_id memtype*#30] [visit_exp mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}] [visit_exp mt_I*{mt_I <- `mt_I*`}] [scope_enter mt_I] @@ -33235,8 +28641,6 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `mt*`] [visit_id mt*] not free [visit_id mt*] no dims -[visit_exp `tabletype*#23`] -[visit_id tabletype*#23] [visit_exp tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}] [visit_exp tt_I*{tt_I <- `tt_I*`}] [scope_enter tt_I] @@ -33256,11 +28660,7 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `tt*`] [visit_id tt*] not free [visit_id tt*] no dims -[visit_exp `deftype*#67`] -[visit_id deftype*#67] [visit_exp []] -[visit_exp `datatype*#15`] -[visit_id datatype*#15] [visit_exp ok*{ok <- `ok*`}] [scope_enter ok] [visit_exp ok] @@ -33270,8 +28670,6 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `ok*`] [visit_id ok*] not free [visit_id ok*] no dims -[visit_exp `elemtype*#15`] -[visit_id elemtype*#15] [visit_exp rt*{rt <- `rt*`}] [scope_enter rt] [visit_exp rt] @@ -33281,24 +28679,14 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `rt*`] [visit_id rt*] not free [visit_id rt*] no dims -[visit_exp `localtype*#18`] -[visit_id localtype*#18] [visit_exp []] -[visit_exp `resulttype*#26`] -[visit_id resulttype*#26] [visit_exp []] -[visit_exp `resulttype?#23`] -[visit_id resulttype?#23] [visit_exp ?()] -[visit_exp `funcidx*#52`] -[visit_id funcidx*#52] [visit_exp []] -[visit_exp (C' = {`TYPES`{`deftype*#68`} dt'*{dt' <- `dt'*`}, `RECS`{`subtype*#15`} [], `TAGS`{`tagtype*#16`} [], `GLOBALS`{`globaltype*#17`} gt_I*{gt_I <- `gt_I*`}, `MEMS`{`memtype*#31`} [], `TABLES`{`tabletype*#24`} [], `FUNCS`{`deftype*#69`} dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, `DATAS`{`datatype*#16`} [], `ELEMS`{`elemtype*#16`} [], `LOCALS`{`localtype*#19`} [], `LABELS`{`resulttype*#27`} [], `RETURN`{`resulttype?#24`} ?(), `REFS`{`funcidx*#53`} x*{x <- `x*`}})] +[visit_exp (C' = {`TYPES` dt'*{dt' <- `dt'*`}, `RECS` [], `TAGS` [], `GLOBALS` gt_I*{gt_I <- `gt_I*`}, `MEMS` [], `TABLES` [], `FUNCS` dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` x*{x <- `x*`}})] [visit_exp C'] [visit_id C'] not free -[visit_exp {`TYPES`{`deftype*#68`} dt'*{dt' <- `dt'*`}, `RECS`{`subtype*#15`} [], `TAGS`{`tagtype*#16`} [], `GLOBALS`{`globaltype*#17`} gt_I*{gt_I <- `gt_I*`}, `MEMS`{`memtype*#31`} [], `TABLES`{`tabletype*#24`} [], `FUNCS`{`deftype*#69`} dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, `DATAS`{`datatype*#16`} [], `ELEMS`{`elemtype*#16`} [], `LOCALS`{`localtype*#19`} [], `LABELS`{`resulttype*#27`} [], `RETURN`{`resulttype?#24`} ?(), `REFS`{`funcidx*#53`} x*{x <- `x*`}}] -[visit_exp `deftype*#68`] -[visit_id deftype*#68] +[visit_exp {`TYPES` dt'*{dt' <- `dt'*`}, `RECS` [], `TAGS` [], `GLOBALS` gt_I*{gt_I <- `gt_I*`}, `MEMS` [], `TABLES` [], `FUNCS` dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` x*{x <- `x*`}}] [visit_exp dt'*{dt' <- `dt'*`}] [scope_enter dt'] [visit_exp dt'] @@ -33308,14 +28696,8 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `dt'*`] [visit_id dt'*] not free [visit_id dt'*] no dims -[visit_exp `subtype*#15`] -[visit_id subtype*#15] [visit_exp []] -[visit_exp `tagtype*#16`] -[visit_id tagtype*#16] [visit_exp []] -[visit_exp `globaltype*#17`] -[visit_id globaltype*#17] [visit_exp gt_I*{gt_I <- `gt_I*`}] [scope_enter gt_I] [visit_exp gt_I] @@ -33325,14 +28707,8 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `gt_I*`] [visit_id gt_I*] no dims [visit_id gt_I*] -[visit_exp `memtype*#31`] -[visit_id memtype*#31] [visit_exp []] -[visit_exp `tabletype*#24`] -[visit_id tabletype*#24] [visit_exp []] -[visit_exp `deftype*#69`] -[visit_id deftype*#69] [visit_exp dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}] [visit_exp dt_I*{dt_I <- `dt_I*`}] [scope_enter dt_I] @@ -33352,23 +28728,11 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `dt*`] [visit_id dt*] not free [visit_id dt*] no dims -[visit_exp `datatype*#16`] -[visit_id datatype*#16] [visit_exp []] -[visit_exp `elemtype*#16`] -[visit_id elemtype*#16] [visit_exp []] -[visit_exp `localtype*#19`] -[visit_id localtype*#19] [visit_exp []] -[visit_exp `resulttype*#27`] -[visit_id resulttype*#27] [visit_exp []] -[visit_exp `resulttype?#24`] -[visit_id resulttype?#24] [visit_exp ?()] -[visit_exp `funcidx*#53`] -[visit_id funcidx*#53] [visit_exp x*{x <- `x*`}] [scope_enter x] [visit_exp x] @@ -33378,7 +28742,7 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `x*`] [visit_id x*] no dims [visit_id x*] -[visit_exp (x*{x <- `x*`} = $funcidx_nonfuncs(`%%%%`_nonfuncs{`global*#107`, `mem*#107`, `table*#107`, `elem*#107`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})))] +[visit_exp (x*{x <- `x*`} = $funcidx_nonfuncs(`%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})))] [visit_exp x*{x <- `x*`}] [scope_enter x] [visit_exp x] @@ -33388,16 +28752,8 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `x*`] [visit_id x*] not free [visit_id x*] no dims -[visit_exp $funcidx_nonfuncs(`%%%%`_nonfuncs{`global*#107`, `mem*#107`, `table*#107`, `elem*#107`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`}))] -[visit_exp `%%%%`_nonfuncs{`global*#107`, `mem*#107`, `table*#107`, `elem*#107`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] -[visit_exp `global*#107`] -[visit_id global*#107] -[visit_exp `mem*#107`] -[visit_id mem*#107] -[visit_exp `table*#107`] -[visit_id table*#107] -[visit_exp `elem*#107`] -[visit_id elem*#107] +[visit_exp $funcidx_nonfuncs(`%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`}))] +[visit_exp `%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] [visit_exp (global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] [visit_exp global*{global <- `global*`}] [scope_enter global] @@ -33540,7 +28896,7 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_id C] [visit_exp []] [visit_exp []] -[check_dims] C datatype*#17 deftype*#70 deftype*#71 dt dt_1 elemtype*#17 funcidx*#54 globaltype*#18 localtype*#20 memtype*#32 resulttype*#28 resulttype?#25 subtype*#16 tabletype*#25 tagtype*#17 type type_1 +[check_dims] C dt dt_1 type type_1 [visit_exp C] [visit_id C] [visit_exp [type_1] ++ type*{type <- `type*`}] @@ -33589,13 +28945,11 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `dt_1*`] [visit_id dt_1*] not free [visit_id dt_1*] no dims -[visit_exp (C +++ {`TYPES`{`deftype*#70`} dt_1*{dt_1 <- `dt_1*`}, `RECS`{`subtype*#16`} [], `TAGS`{`tagtype*#17`} [], `GLOBALS`{`globaltype*#18`} [], `MEMS`{`memtype*#32`} [], `TABLES`{`tabletype*#25`} [], `FUNCS`{`deftype*#71`} [], `DATAS`{`datatype*#17`} [], `ELEMS`{`elemtype*#17`} [], `LOCALS`{`localtype*#20`} [], `LABELS`{`resulttype*#28`} [], `RETURN`{`resulttype?#25`} ?(), `REFS`{`funcidx*#54`} []}, type*{type <- `type*`}, dt*{dt <- `dt*`})] -[visit_exp C +++ {`TYPES`{`deftype*#70`} dt_1*{dt_1 <- `dt_1*`}, `RECS`{`subtype*#16`} [], `TAGS`{`tagtype*#17`} [], `GLOBALS`{`globaltype*#18`} [], `MEMS`{`memtype*#32`} [], `TABLES`{`tabletype*#25`} [], `FUNCS`{`deftype*#71`} [], `DATAS`{`datatype*#17`} [], `ELEMS`{`elemtype*#17`} [], `LOCALS`{`localtype*#20`} [], `LABELS`{`resulttype*#28`} [], `RETURN`{`resulttype?#25`} ?(), `REFS`{`funcidx*#54`} []}] +[visit_exp (C +++ {`TYPES` dt_1*{dt_1 <- `dt_1*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, type*{type <- `type*`}, dt*{dt <- `dt*`})] +[visit_exp C +++ {`TYPES` dt_1*{dt_1 <- `dt_1*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp C] [visit_id C] not free -[visit_exp {`TYPES`{`deftype*#70`} dt_1*{dt_1 <- `dt_1*`}, `RECS`{`subtype*#16`} [], `TAGS`{`tagtype*#17`} [], `GLOBALS`{`globaltype*#18`} [], `MEMS`{`memtype*#32`} [], `TABLES`{`tabletype*#25`} [], `FUNCS`{`deftype*#71`} [], `DATAS`{`datatype*#17`} [], `ELEMS`{`elemtype*#17`} [], `LOCALS`{`localtype*#20`} [], `LABELS`{`resulttype*#28`} [], `RETURN`{`resulttype?#25`} ?(), `REFS`{`funcidx*#54`} []}] -[visit_exp `deftype*#70`] -[visit_id deftype*#70] +[visit_exp {`TYPES` dt_1*{dt_1 <- `dt_1*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp dt_1*{dt_1 <- `dt_1*`}] [scope_enter dt_1] [visit_exp dt_1] @@ -33605,41 +28959,17 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_exp `dt_1*`] [visit_id dt_1*] not free [visit_id dt_1*] no dims -[visit_exp `subtype*#16`] -[visit_id subtype*#16] [visit_exp []] -[visit_exp `tagtype*#17`] -[visit_id tagtype*#17] [visit_exp []] -[visit_exp `globaltype*#18`] -[visit_id globaltype*#18] [visit_exp []] -[visit_exp `memtype*#32`] -[visit_id memtype*#32] [visit_exp []] -[visit_exp `tabletype*#25`] -[visit_id tabletype*#25] [visit_exp []] -[visit_exp `deftype*#71`] -[visit_id deftype*#71] [visit_exp []] -[visit_exp `datatype*#17`] -[visit_id datatype*#17] [visit_exp []] -[visit_exp `elemtype*#17`] -[visit_id elemtype*#17] [visit_exp []] -[visit_exp `localtype*#20`] -[visit_id localtype*#20] [visit_exp []] -[visit_exp `resulttype*#28`] -[visit_id resulttype*#28] [visit_exp []] -[visit_exp `resulttype?#25`] -[visit_id resulttype?#25] [visit_exp ?()] -[visit_exp `funcidx*#54`] -[visit_id funcidx*#54] [visit_exp []] [visit_exp type*{type <- `type*`}] [scope_enter type] @@ -33664,7 +28994,7 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_id C] [visit_exp []] [visit_exp []] -[check_dims] C datatype*#18 deftype*#72 deftype*#73 elemtype*#18 funcidx*#55 global global_1 globaltype*#19 gt gt_1 localtype*#21 memtype*#33 resulttype*#29 resulttype?#26 subtype*#17 tabletype*#26 tagtype*#18 +[check_dims] C global global_1 gt gt_1 [visit_exp C] [visit_id C] [visit_exp [global_1] ++ global*{global <- `global*`}] @@ -33700,51 +29030,25 @@ DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* [visit_id global_1] not free [visit_exp gt_1] [visit_id gt_1] not free -[visit_exp (C +++ {`TYPES`{`deftype*#72`} [], `RECS`{`subtype*#17`} [], `TAGS`{`tagtype*#18`} [], `GLOBALS`{`globaltype*#19`} [gt_1], `MEMS`{`memtype*#33`} [], `TABLES`{`tabletype*#26`} [], `FUNCS`{`deftype*#73`} [], `DATAS`{`datatype*#18`} [], `ELEMS`{`elemtype*#18`} [], `LOCALS`{`localtype*#21`} [], `LABELS`{`resulttype*#29`} [], `RETURN`{`resulttype?#26`} ?(), `REFS`{`funcidx*#55`} []}, global*{global <- `global*`}, gt*{gt <- `gt*`})] -[visit_exp C +++ {`TYPES`{`deftype*#72`} [], `RECS`{`subtype*#17`} [], `TAGS`{`tagtype*#18`} [], `GLOBALS`{`globaltype*#19`} [gt_1], `MEMS`{`memtype*#33`} [], `TABLES`{`tabletype*#26`} [], `FUNCS`{`deftype*#73`} [], `DATAS`{`datatype*#18`} [], `ELEMS`{`elemtype*#18`} [], `LOCALS`{`localtype*#21`} [], `LABELS`{`resulttype*#29`} [], `RETURN`{`resulttype?#26`} ?(), `REFS`{`funcidx*#55`} []}] +[visit_exp (C +++ {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [gt_1], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, global*{global <- `global*`}, gt*{gt <- `gt*`})] +[visit_exp C +++ {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [gt_1], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp C] [visit_id C] not free -[visit_exp {`TYPES`{`deftype*#72`} [], `RECS`{`subtype*#17`} [], `TAGS`{`tagtype*#18`} [], `GLOBALS`{`globaltype*#19`} [gt_1], `MEMS`{`memtype*#33`} [], `TABLES`{`tabletype*#26`} [], `FUNCS`{`deftype*#73`} [], `DATAS`{`datatype*#18`} [], `ELEMS`{`elemtype*#18`} [], `LOCALS`{`localtype*#21`} [], `LABELS`{`resulttype*#29`} [], `RETURN`{`resulttype?#26`} ?(), `REFS`{`funcidx*#55`} []}] -[visit_exp `deftype*#72`] -[visit_id deftype*#72] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [gt_1], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#17`] -[visit_id subtype*#17] [visit_exp []] -[visit_exp `tagtype*#18`] -[visit_id tagtype*#18] [visit_exp []] -[visit_exp `globaltype*#19`] -[visit_id globaltype*#19] [visit_exp [gt_1]] [visit_exp gt_1] [visit_id gt_1] not free -[visit_exp `memtype*#33`] -[visit_id memtype*#33] [visit_exp []] -[visit_exp `tabletype*#26`] -[visit_id tabletype*#26] [visit_exp []] -[visit_exp `deftype*#73`] -[visit_id deftype*#73] [visit_exp []] -[visit_exp `datatype*#18`] -[visit_id datatype*#18] [visit_exp []] -[visit_exp `elemtype*#18`] -[visit_id elemtype*#18] [visit_exp []] -[visit_exp `localtype*#21`] -[visit_id localtype*#21] [visit_exp []] -[visit_exp `resulttype*#29`] -[visit_id resulttype*#29] [visit_exp []] -[visit_exp `resulttype?#26`] -[visit_id resulttype?#26] [visit_exp ?()] -[visit_exp `funcidx*#55`] -[visit_id funcidx*#55] [visit_exp []] [visit_exp global*{global <- `global*`}] [scope_enter global] @@ -33790,29 +29094,27 @@ DecD relaxed4(relaxed4 : relaxed4, syntax X, X : X, X : X, X : X, X : X) : X [visit_id X] not free [visit_id X] not free [visit_id X] not free -[check_dims] X_1 X_2 i i#9672 +[check_dims] X_1 X_2 i [visit_exp i] [visit_id i] [visit_exp X_1] [visit_id X_1] [visit_exp X_2] [visit_id X_2] -[visit_exp [X_1 X_2][i!`%`_relaxed2{i#9672}.0]] +[visit_exp [X_1 X_2][i!`%`_relaxed2.0]] [visit_exp [X_1 X_2]] [visit_exp X_1] [visit_id X_1] not free [visit_exp X_2] [visit_id X_2] not free -[visit_exp i!`%`_relaxed2{i#9672}.0] -[visit_exp i!`%`_relaxed2{i#9672}] +[visit_exp i!`%`_relaxed2.0] +[visit_exp i!`%`_relaxed2] [visit_exp i] [visit_id i] not free -[visit_exp i#9672] -[visit_id i#9672] [visit_exp $ND] => ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec - def $relaxed2{i : relaxed2, syntax X, X_1 : X, X_2 : X, i#9672 : nat}(i, syntax X, X_1, X_2) = [X_1 X_2][i!`%`_relaxed2{i#9672}.0] + def $relaxed2{i : relaxed2, syntax X, X_1 : X, X_2 : X}(i, syntax X, X_1, X_2) = [X_1 X_2][i!`%`_relaxed2.0] -- if $ND [check_dims] X_1 X_2 i [visit_exp i] @@ -33832,7 +29134,7 @@ DecD relaxed4(relaxed4 : relaxed4, syntax X, X : X, X : X, X : X, X : X) : X ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec def $relaxed2{i : relaxed2, syntax X, X_1 : X, X_2 : X}(i, syntax X, X_1, X_2) = [X_1 X_2][0] -- otherwise -[check_dims] X_1 X_2 X_3 X_4 i i#9686 +[check_dims] X_1 X_2 X_3 X_4 i [visit_exp i] [visit_id i] [visit_exp X_1] @@ -33843,7 +29145,7 @@ DecD relaxed4(relaxed4 : relaxed4, syntax X, X : X, X : X, X : X, X : X) : X [visit_id X_3] [visit_exp X_4] [visit_id X_4] -[visit_exp [X_1 X_2 X_3 X_4][i!`%`_relaxed4{i#9686}.0]] +[visit_exp [X_1 X_2 X_3 X_4][i!`%`_relaxed4.0]] [visit_exp [X_1 X_2 X_3 X_4]] [visit_exp X_1] [visit_id X_1] not free @@ -33853,16 +29155,14 @@ DecD relaxed4(relaxed4 : relaxed4, syntax X, X : X, X : X, X : X, X : X) : X [visit_id X_3] not free [visit_exp X_4] [visit_id X_4] not free -[visit_exp i!`%`_relaxed4{i#9686}.0] -[visit_exp i!`%`_relaxed4{i#9686}] +[visit_exp i!`%`_relaxed4.0] +[visit_exp i!`%`_relaxed4] [visit_exp i] [visit_id i] not free -[visit_exp i#9686] -[visit_id i#9686] [visit_exp $ND] => ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec - def $relaxed4{i : relaxed4, syntax X, X_1 : X, X_2 : X, X_3 : X, X_4 : X, i#9686 : nat}(i, syntax X, X_1, X_2, X_3, X_4) = [X_1 X_2 X_3 X_4][i!`%`_relaxed4{i#9686}.0] + def $relaxed4{i : relaxed4, syntax X, X_1 : X, X_2 : X, X_3 : X, X_4 : X}(i, syntax X, X_1, X_2, X_3, X_4) = [X_1 X_2 X_3 X_4][i!`%`_relaxed4.0] -- if $ND [check_dims] X_1 X_2 X_3 X_4 i [visit_exp i] @@ -34174,18 +29474,16 @@ DecD zero(lanetype : lanetype) : lane_(lanetype) [visit_id lanetype] not free [visit_exp lanetype] [visit_id lanetype] not free -[check_dims] Jnn i#9712 +[check_dims] Jnn [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_lane_{i#9712}(0)] -[visit_exp i#9712] -[visit_id i#9712] +[visit_exp `%`_lane_(0)] [visit_exp (0)] [visit_exp 0] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $zero{Jnn : Jnn, i#9712 : nat}((Jnn : Jnn <: lanetype)) = `%`_lane_{i#9712}(0) + def $zero{Jnn : Jnn}((Jnn : Jnn <: lanetype)) = `%`_lane_(0) [check_dims] Fnn [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] @@ -34756,30 +30054,26 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id iN] not free [visit_exp N] [visit_id N] not free -[check_dims] N i#9726 i#9728 i_1 +[check_dims] N i_1 [visit_exp N] [visit_id N] [visit_exp i_1] [visit_id i_1] -[visit_exp `%`_iN{i#9728}((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] -[visit_exp i#9728] -[visit_id i#9728] -[visit_exp ((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] -[visit_exp (((((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)] -[visit_exp ((((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int))] -[visit_exp (((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int))] +[visit_exp `%`_iN((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] +[visit_exp ((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] +[visit_exp (((((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)] +[visit_exp ((((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int))] +[visit_exp (((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int))] [visit_exp ((2 ^ N) : nat <:> int)] [visit_exp (2 ^ N)] [visit_exp 2] [visit_exp N] [visit_id N] not free -[visit_exp (i_1!`%`_iN{i#9726}.0 : nat <:> int)] -[visit_exp i_1!`%`_iN{i#9726}.0] -[visit_exp i_1!`%`_iN{i#9726}] +[visit_exp (i_1!`%`_iN.0 : nat <:> int)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#9726] -[visit_id i#9726] [visit_exp ((2 ^ N) : nat <:> int)] [visit_exp (2 ^ N)] [visit_exp 2] @@ -34787,30 +30081,28 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id N] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ineg_{N : N, i_1 : iN(N), i#9728 : nat, i#9726 : nat}(N, i_1) = `%`_iN{i#9728}((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) -[check_dims] N i#9736 i_1 + def $ineg_{N : N, i_1 : iN(N)}(N, i_1) = `%`_iN((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) +[check_dims] N i_1 [visit_exp N] [visit_id N] [visit_exp i_1] [visit_id i_1] [visit_exp i_1] [visit_id i_1] not free -[visit_exp ($signed_(N, i_1!`%`_iN{i#9736}.0) >= (0 : nat <:> int))] -[visit_exp $signed_(N, i_1!`%`_iN{i#9736}.0)] +[visit_exp ($signed_(N, i_1!`%`_iN.0) >= (0 : nat <:> int))] +[visit_exp $signed_(N, i_1!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_1!`%`_iN{i#9736}.0] -[visit_exp i_1!`%`_iN{i#9736}] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#9736] -[visit_id i#9736] [visit_exp (0 : nat <:> int)] [visit_exp 0] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iabs_{N : N, i_1 : iN(N), i#9736 : nat}(N, i_1) = i_1 - -- if ($signed_(N, i_1!`%`_iN{i#9736}.0) >= (0 : nat <:> int)) + def $iabs_{N : N, i_1 : iN(N)}(N, i_1) = i_1 + -- if ($signed_(N, i_1!`%`_iN.0) >= (0 : nat <:> int)) [check_dims] N i_1 [visit_exp N] [visit_id N] @@ -34825,7 +30117,7 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iabs_{N : N, i_1 : iN(N)}(N, i_1) = $ineg_(N, i_1) -- otherwise -[check_dims] M N i i#9774 i#9776 +[check_dims] M N i [visit_exp N] [visit_id N] [visit_exp M] @@ -34834,25 +30126,21 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `%`_iN{i#9776}((i!`%`_iN{i#9774}.0 \ (2 ^ M)))] -[visit_exp i#9776] -[visit_id i#9776] -[visit_exp ((i!`%`_iN{i#9774}.0 \ (2 ^ M)))] -[visit_exp (i!`%`_iN{i#9774}.0 \ (2 ^ M))] -[visit_exp i!`%`_iN{i#9774}.0] -[visit_exp i!`%`_iN{i#9774}] +[visit_exp `%`_iN((i!`%`_iN.0 \ (2 ^ M)))] +[visit_exp ((i!`%`_iN.0 \ (2 ^ M)))] +[visit_exp (i!`%`_iN.0 \ (2 ^ M))] +[visit_exp i!`%`_iN.0] +[visit_exp i!`%`_iN] [visit_exp i] [visit_id i] not free -[visit_exp i#9774] -[visit_id i#9774] [visit_exp (2 ^ M)] [visit_exp 2] [visit_exp M] [visit_id M] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iextend_{N : N, M : M, i : iN(N), i#9776 : nat, i#9774 : nat}(N, M, `U`_sx, i) = `%`_iN{i#9776}((i!`%`_iN{i#9774}.0 \ (2 ^ M))) -[check_dims] M N i i#9790 i#9792 + def $iextend_{N : N, M : M, i : iN(N)}(N, M, `U`_sx, i) = `%`_iN((i!`%`_iN.0 \ (2 ^ M))) +[check_dims] M N i [visit_exp N] [visit_id N] [visit_exp M] @@ -34861,95 +30149,79 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `%`_iN{i#9792}($inv_signed_(N, $signed_(M, (i!`%`_iN{i#9790}.0 \ (2 ^ M)))))] -[visit_exp i#9792] -[visit_id i#9792] -[visit_exp ($inv_signed_(N, $signed_(M, (i!`%`_iN{i#9790}.0 \ (2 ^ M)))))] -[visit_exp $inv_signed_(N, $signed_(M, (i!`%`_iN{i#9790}.0 \ (2 ^ M))))] +[visit_exp `%`_iN($inv_signed_(N, $signed_(M, (i!`%`_iN.0 \ (2 ^ M)))))] +[visit_exp ($inv_signed_(N, $signed_(M, (i!`%`_iN.0 \ (2 ^ M)))))] +[visit_exp $inv_signed_(N, $signed_(M, (i!`%`_iN.0 \ (2 ^ M))))] [visit_exp N] [visit_id N] not free -[visit_exp $signed_(M, (i!`%`_iN{i#9790}.0 \ (2 ^ M)))] +[visit_exp $signed_(M, (i!`%`_iN.0 \ (2 ^ M)))] [visit_exp M] [visit_id M] not free -[visit_exp (i!`%`_iN{i#9790}.0 \ (2 ^ M))] -[visit_exp i!`%`_iN{i#9790}.0] -[visit_exp i!`%`_iN{i#9790}] +[visit_exp (i!`%`_iN.0 \ (2 ^ M))] +[visit_exp i!`%`_iN.0] +[visit_exp i!`%`_iN] [visit_exp i] [visit_id i] not free -[visit_exp i#9790] -[visit_id i#9790] [visit_exp (2 ^ M)] [visit_exp 2] [visit_exp M] [visit_id M] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iextend_{N : N, M : M, i : iN(N), i#9792 : nat, i#9790 : nat}(N, M, `S`_sx, i) = `%`_iN{i#9792}($inv_signed_(N, $signed_(M, (i!`%`_iN{i#9790}.0 \ (2 ^ M))))) -[check_dims] N i#9812 i#9814 i#9816 i_1 i_2 + def $iextend_{N : N, M : M, i : iN(N)}(N, M, `S`_sx, i) = `%`_iN($inv_signed_(N, $signed_(M, (i!`%`_iN.0 \ (2 ^ M))))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp i_1] [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_iN{i#9816}(((i_1!`%`_iN{i#9812}.0 + i_2!`%`_iN{i#9814}.0) \ (2 ^ N)))] -[visit_exp i#9816] -[visit_id i#9816] -[visit_exp (((i_1!`%`_iN{i#9812}.0 + i_2!`%`_iN{i#9814}.0) \ (2 ^ N)))] -[visit_exp ((i_1!`%`_iN{i#9812}.0 + i_2!`%`_iN{i#9814}.0) \ (2 ^ N))] -[visit_exp (i_1!`%`_iN{i#9812}.0 + i_2!`%`_iN{i#9814}.0)] -[visit_exp i_1!`%`_iN{i#9812}.0] -[visit_exp i_1!`%`_iN{i#9812}] +[visit_exp `%`_iN(((i_1!`%`_iN.0 + i_2!`%`_iN.0) \ (2 ^ N)))] +[visit_exp (((i_1!`%`_iN.0 + i_2!`%`_iN.0) \ (2 ^ N)))] +[visit_exp ((i_1!`%`_iN.0 + i_2!`%`_iN.0) \ (2 ^ N))] +[visit_exp (i_1!`%`_iN.0 + i_2!`%`_iN.0)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#9812] -[visit_id i#9812] -[visit_exp i_2!`%`_iN{i#9814}.0] -[visit_exp i_2!`%`_iN{i#9814}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#9814] -[visit_id i#9814] [visit_exp (2 ^ N)] [visit_exp 2] [visit_exp N] [visit_id N] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_{N : N, i_1 : iN(N), i_2 : iN(N), i#9816 : nat, i#9812 : nat, i#9814 : nat}(N, i_1, i_2) = `%`_iN{i#9816}(((i_1!`%`_iN{i#9812}.0 + i_2!`%`_iN{i#9814}.0) \ (2 ^ N))) -[check_dims] N i#9836 i#9838 i#9840 i_1 i_2 + def $iadd_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_iN(((i_1!`%`_iN.0 + i_2!`%`_iN.0) \ (2 ^ N))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp i_1] [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_iN{i#9840}(((((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] -[visit_exp i#9840] -[visit_id i#9840] -[visit_exp (((((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] -[visit_exp ((((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)] -[visit_exp (((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int))] -[visit_exp ((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int))] -[visit_exp (((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int)] -[visit_exp ((2 ^ N) + i_1!`%`_iN{i#9836}.0)] +[visit_exp `%`_iN(((((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] +[visit_exp (((((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] +[visit_exp ((((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)] +[visit_exp (((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int))] +[visit_exp ((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int))] +[visit_exp (((2 ^ N) + i_1!`%`_iN.0) : nat <:> int)] +[visit_exp ((2 ^ N) + i_1!`%`_iN.0)] [visit_exp (2 ^ N)] [visit_exp 2] [visit_exp N] [visit_id N] not free -[visit_exp i_1!`%`_iN{i#9836}.0] -[visit_exp i_1!`%`_iN{i#9836}] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#9836] -[visit_id i#9836] -[visit_exp (i_2!`%`_iN{i#9838}.0 : nat <:> int)] -[visit_exp i_2!`%`_iN{i#9838}.0] -[visit_exp i_2!`%`_iN{i#9838}] +[visit_exp (i_2!`%`_iN.0 : nat <:> int)] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#9838] -[visit_id i#9838] [visit_exp ((2 ^ N) : nat <:> int)] [visit_exp (2 ^ N)] [visit_exp 2] @@ -34957,56 +30229,48 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id N] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_{N : N, i_1 : iN(N), i_2 : iN(N), i#9840 : nat, i#9836 : nat, i#9838 : nat}(N, i_1, i_2) = `%`_iN{i#9840}(((((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) -[check_dims] N i#9860 i#9862 i#9864 i_1 i_2 + def $isub_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_iN(((((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp i_1] [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_iN{i#9864}(((i_1!`%`_iN{i#9860}.0 * i_2!`%`_iN{i#9862}.0) \ (2 ^ N)))] -[visit_exp i#9864] -[visit_id i#9864] -[visit_exp (((i_1!`%`_iN{i#9860}.0 * i_2!`%`_iN{i#9862}.0) \ (2 ^ N)))] -[visit_exp ((i_1!`%`_iN{i#9860}.0 * i_2!`%`_iN{i#9862}.0) \ (2 ^ N))] -[visit_exp (i_1!`%`_iN{i#9860}.0 * i_2!`%`_iN{i#9862}.0)] -[visit_exp i_1!`%`_iN{i#9860}.0] -[visit_exp i_1!`%`_iN{i#9860}] +[visit_exp `%`_iN(((i_1!`%`_iN.0 * i_2!`%`_iN.0) \ (2 ^ N)))] +[visit_exp (((i_1!`%`_iN.0 * i_2!`%`_iN.0) \ (2 ^ N)))] +[visit_exp ((i_1!`%`_iN.0 * i_2!`%`_iN.0) \ (2 ^ N))] +[visit_exp (i_1!`%`_iN.0 * i_2!`%`_iN.0)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#9860] -[visit_id i#9860] -[visit_exp i_2!`%`_iN{i#9862}.0] -[visit_exp i_2!`%`_iN{i#9862}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#9862] -[visit_id i#9862] [visit_exp (2 ^ N)] [visit_exp 2] [visit_exp N] [visit_id N] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imul_{N : N, i_1 : iN(N), i_2 : iN(N), i#9864 : nat, i#9860 : nat, i#9862 : nat}(N, i_1, i_2) = `%`_iN{i#9864}(((i_1!`%`_iN{i#9860}.0 * i_2!`%`_iN{i#9862}.0) \ (2 ^ N))) -[check_dims] N i#9878 i_1 + def $imul_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_iN(((i_1!`%`_iN.0 * i_2!`%`_iN.0) \ (2 ^ N))) +[check_dims] N i_1 [visit_exp N] [visit_id N] [visit_exp `U`_sx] [visit_exp ()] [visit_exp i_1] [visit_id i_1] -[visit_exp `%`_iN{i#9878}(0)] -[visit_exp i#9878] -[visit_id i#9878] +[visit_exp `%`_iN(0)] [visit_exp (0)] [visit_exp 0] [visit_exp ?()] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i#9878 : nat}(N, `U`_sx, i_1, `%`_iN{i#9878}(0)) = ?() -[check_dims] N i#9898 i#9900 i#9902 i_1 i_2 + def $idiv_{N : N, i_1 : iN(N)}(N, `U`_sx, i_1, `%`_iN(0)) = ?() +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `U`_sx] @@ -35015,48 +30279,40 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp ?(`%`_iN{i#9902}(($truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))) : int <:> nat)))] -[visit_exp `%`_iN{i#9902}(($truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))) : int <:> nat))] -[visit_exp i#9902] -[visit_id i#9902] -[visit_exp (($truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))) : int <:> nat))] -[visit_exp ($truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))) : int <:> nat)] -[visit_exp $truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat)))] -[visit_exp ((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))] -[visit_exp (i_1!`%`_iN{i#9898}.0 : nat <:> rat)] -[visit_exp i_1!`%`_iN{i#9898}.0] -[visit_exp i_1!`%`_iN{i#9898}] +[visit_exp ?(`%`_iN(($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)))] +[visit_exp `%`_iN(($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat))] +[visit_exp (($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat))] +[visit_exp ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)] +[visit_exp $truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat)))] +[visit_exp ((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))] +[visit_exp (i_1!`%`_iN.0 : nat <:> rat)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#9898] -[visit_id i#9898] -[visit_exp (i_2!`%`_iN{i#9900}.0 : nat <:> rat)] -[visit_exp i_2!`%`_iN{i#9900}.0] -[visit_exp i_2!`%`_iN{i#9900}] +[visit_exp (i_2!`%`_iN.0 : nat <:> rat)] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#9900] -[visit_id i#9900] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N), i#9902 : nat, i#9898 : nat, i#9900 : nat}(N, `U`_sx, i_1, i_2) = ?(`%`_iN{i#9902}(($truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))) : int <:> nat))) -[check_dims] N i#9916 i_1 + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = ?(`%`_iN(($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat))) +[check_dims] N i_1 [visit_exp N] [visit_id N] [visit_exp `S`_sx] [visit_exp ()] [visit_exp i_1] [visit_id i_1] -[visit_exp `%`_iN{i#9916}(0)] -[visit_exp i#9916] -[visit_id i#9916] +[visit_exp `%`_iN(0)] [visit_exp (0)] [visit_exp 0] [visit_exp ?()] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i#9916 : nat}(N, `S`_sx, i_1, `%`_iN{i#9916}(0)) = ?() -[check_dims] N i#9930 i#9932 i_1 i_2 + def $idiv_{N : N, i_1 : iN(N)}(N, `S`_sx, i_1, `%`_iN(0)) = ?() +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `S`_sx] @@ -35066,28 +30322,24 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_exp i_2] [visit_id i_2] [visit_exp ?()] -[visit_exp ((($signed_(N, i_1!`%`_iN{i#9930}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9932}.0) : int <:> rat)) = ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat))] -[visit_exp (($signed_(N, i_1!`%`_iN{i#9930}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9932}.0) : int <:> rat))] -[visit_exp ($signed_(N, i_1!`%`_iN{i#9930}.0) : int <:> rat)] -[visit_exp $signed_(N, i_1!`%`_iN{i#9930}.0)] +[visit_exp ((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)) = ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat))] +[visit_exp (($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat))] +[visit_exp ($signed_(N, i_1!`%`_iN.0) : int <:> rat)] +[visit_exp $signed_(N, i_1!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_1!`%`_iN{i#9930}.0] -[visit_exp i_1!`%`_iN{i#9930}] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#9930] -[visit_id i#9930] -[visit_exp ($signed_(N, i_2!`%`_iN{i#9932}.0) : int <:> rat)] -[visit_exp $signed_(N, i_2!`%`_iN{i#9932}.0)] +[visit_exp ($signed_(N, i_2!`%`_iN.0) : int <:> rat)] +[visit_exp $signed_(N, i_2!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_2!`%`_iN{i#9932}.0] -[visit_exp i_2!`%`_iN{i#9932}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#9932] -[visit_id i#9932] [visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat)] [visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp 2] @@ -35100,9 +30352,9 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_exp 1] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N), i#9930 : nat, i#9932 : nat}(N, `S`_sx, i_1, i_2) = ?() - -- if ((($signed_(N, i_1!`%`_iN{i#9930}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9932}.0) : int <:> rat)) = ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat)) -[check_dims] N i#9952 i#9954 i#9956 i_1 i_2 + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = ?() + -- if ((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)) = ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat)) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `S`_sx] @@ -35111,56 +30363,48 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp ?(`%`_iN{i#9956}($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat))))))] -[visit_exp `%`_iN{i#9956}($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat)))))] -[visit_exp i#9956] -[visit_id i#9956] -[visit_exp ($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat)))))] -[visit_exp $inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat))))] +[visit_exp ?(`%`_iN($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat))))))] +[visit_exp `%`_iN($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)))))] +[visit_exp ($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)))))] +[visit_exp $inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat))))] [visit_exp N] [visit_id N] not free -[visit_exp $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat)))] -[visit_exp (($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat))] -[visit_exp ($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat)] -[visit_exp $signed_(N, i_1!`%`_iN{i#9952}.0)] +[visit_exp $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)))] +[visit_exp (($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat))] +[visit_exp ($signed_(N, i_1!`%`_iN.0) : int <:> rat)] +[visit_exp $signed_(N, i_1!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_1!`%`_iN{i#9952}.0] -[visit_exp i_1!`%`_iN{i#9952}] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#9952] -[visit_id i#9952] -[visit_exp ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat)] -[visit_exp $signed_(N, i_2!`%`_iN{i#9954}.0)] +[visit_exp ($signed_(N, i_2!`%`_iN.0) : int <:> rat)] +[visit_exp $signed_(N, i_2!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_2!`%`_iN{i#9954}.0] -[visit_exp i_2!`%`_iN{i#9954}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#9954] -[visit_id i#9954] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N), i#9956 : nat, i#9952 : nat, i#9954 : nat}(N, `S`_sx, i_1, i_2) = ?(`%`_iN{i#9956}($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat)))))) -[check_dims] N i#9970 i_1 + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = ?(`%`_iN($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)))))) +[check_dims] N i_1 [visit_exp N] [visit_id N] [visit_exp `U`_sx] [visit_exp ()] [visit_exp i_1] [visit_id i_1] -[visit_exp `%`_iN{i#9970}(0)] -[visit_exp i#9970] -[visit_id i#9970] +[visit_exp `%`_iN(0)] [visit_exp (0)] [visit_exp 0] [visit_exp ?()] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i#9970 : nat}(N, `U`_sx, i_1, `%`_iN{i#9970}(0)) = ?() -[check_dims] N i#9990 i#9992 i#9994 i#9996 i#9998 i_1 i_2 + def $irem_{N : N, i_1 : iN(N)}(N, `U`_sx, i_1, `%`_iN(0)) = ?() +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `U`_sx] @@ -35169,65 +30413,53 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp ?(`%`_iN{i#9998}((((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat)))] -[visit_exp `%`_iN{i#9998}((((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))] -[visit_exp i#9998] -[visit_id i#9998] -[visit_exp ((((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))] -[visit_exp (((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat)] -[visit_exp ((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int))] -[visit_exp (i_1!`%`_iN{i#9996}.0 : nat <:> int)] -[visit_exp i_1!`%`_iN{i#9996}.0] -[visit_exp i_1!`%`_iN{i#9996}] +[visit_exp ?(`%`_iN((((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat)))] +[visit_exp `%`_iN((((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))] +[visit_exp ((((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))] +[visit_exp (((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat)] +[visit_exp ((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int))] +[visit_exp (i_1!`%`_iN.0 : nat <:> int)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#9996] -[visit_id i#9996] -[visit_exp ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)] -[visit_exp (i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat))] -[visit_exp i_2!`%`_iN{i#9994}.0] -[visit_exp i_2!`%`_iN{i#9994}] +[visit_exp ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)] +[visit_exp (i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat))] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#9994] -[visit_id i#9994] -[visit_exp ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)] -[visit_exp $truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat)))] -[visit_exp ((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))] -[visit_exp (i_1!`%`_iN{i#9990}.0 : nat <:> rat)] -[visit_exp i_1!`%`_iN{i#9990}.0] -[visit_exp i_1!`%`_iN{i#9990}] +[visit_exp ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)] +[visit_exp $truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat)))] +[visit_exp ((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))] +[visit_exp (i_1!`%`_iN.0 : nat <:> rat)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#9990] -[visit_id i#9990] -[visit_exp (i_2!`%`_iN{i#9992}.0 : nat <:> rat)] -[visit_exp i_2!`%`_iN{i#9992}.0] -[visit_exp i_2!`%`_iN{i#9992}] +[visit_exp (i_2!`%`_iN.0 : nat <:> rat)] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#9992] -[visit_id i#9992] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), i#9998 : nat, i#9996 : nat, i#9994 : nat, i#9990 : nat, i#9992 : nat}(N, `U`_sx, i_1, i_2) = ?(`%`_iN{i#9998}((((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))) -[check_dims] N i#10012 i_1 + def $irem_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = ?(`%`_iN((((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))) +[check_dims] N i_1 [visit_exp N] [visit_id N] [visit_exp `S`_sx] [visit_exp ()] [visit_exp i_1] [visit_id i_1] -[visit_exp `%`_iN{i#10012}(0)] -[visit_exp i#10012] -[visit_id i#10012] +[visit_exp `%`_iN(0)] [visit_exp (0)] [visit_exp 0] [visit_exp ?()] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i#10012 : nat}(N, `S`_sx, i_1, `%`_iN{i#10012}(0)) = ?() -[check_dims] N i#10026 i#10028 i#10036 i_1 i_2 j_1 j_2 + def $irem_{N : N, i_1 : iN(N)}(N, `S`_sx, i_1, `%`_iN(0)) = ?() +[check_dims] N i_1 i_2 j_1 j_2 [visit_exp N] [visit_id N] [visit_exp `S`_sx] @@ -35236,10 +30468,8 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp ?(`%`_iN{i#10036}($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat))))))))] -[visit_exp `%`_iN{i#10036}($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))] -[visit_exp i#10036] -[visit_id i#10036] +[visit_exp ?(`%`_iN($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat))))))))] +[visit_exp `%`_iN($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))] [visit_exp ($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))] [visit_exp $inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat))))))] [visit_exp N] @@ -35258,36 +30488,32 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_exp (j_2 : int <:> rat)] [visit_exp j_2] [visit_id j_2] not free -[visit_exp ((j_1 = $signed_(N, i_1!`%`_iN{i#10026}.0)) /\ (j_2 = $signed_(N, i_2!`%`_iN{i#10028}.0)))] -[visit_exp (j_1 = $signed_(N, i_1!`%`_iN{i#10026}.0))] +[visit_exp ((j_1 = $signed_(N, i_1!`%`_iN.0)) /\ (j_2 = $signed_(N, i_2!`%`_iN.0)))] +[visit_exp (j_1 = $signed_(N, i_1!`%`_iN.0))] [visit_exp j_1] [visit_id j_1] not free -[visit_exp $signed_(N, i_1!`%`_iN{i#10026}.0)] +[visit_exp $signed_(N, i_1!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_1!`%`_iN{i#10026}.0] -[visit_exp i_1!`%`_iN{i#10026}] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10026] -[visit_id i#10026] -[visit_exp (j_2 = $signed_(N, i_2!`%`_iN{i#10028}.0))] +[visit_exp (j_2 = $signed_(N, i_2!`%`_iN.0))] [visit_exp j_2] [visit_id j_2] not free -[visit_exp $signed_(N, i_2!`%`_iN{i#10028}.0)] +[visit_exp $signed_(N, i_2!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_2!`%`_iN{i#10028}.0] -[visit_exp i_2!`%`_iN{i#10028}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10028] -[visit_id i#10028] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), i#10036 : nat, j_1 : int, j_2 : int, i#10026 : nat, i#10028 : nat}(N, `S`_sx, i_1, i_2) = ?(`%`_iN{i#10036}($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))) - -- if ((j_1 = $signed_(N, i_1!`%`_iN{i#10026}.0)) /\ (j_2 = $signed_(N, i_2!`%`_iN{i#10028}.0))) -[check_dims] N i#10050 i#10052 i_1 i_2 + def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), j_1 : int, j_2 : int}(N, `S`_sx, i_1, i_2) = ?(`%`_iN($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))) + -- if ((j_1 = $signed_(N, i_1!`%`_iN.0)) /\ (j_2 = $signed_(N, i_2!`%`_iN.0))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `U`_sx] @@ -35298,24 +30524,20 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_2] [visit_exp i_1] [visit_id i_1] not free -[visit_exp (i_1!`%`_iN{i#10050}.0 <= i_2!`%`_iN{i#10052}.0)] -[visit_exp i_1!`%`_iN{i#10050}.0] -[visit_exp i_1!`%`_iN{i#10050}] +[visit_exp (i_1!`%`_iN.0 <= i_2!`%`_iN.0)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10050] -[visit_id i#10050] -[visit_exp i_2!`%`_iN{i#10052}.0] -[visit_exp i_2!`%`_iN{i#10052}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10052] -[visit_id i#10052] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N), i#10050 : nat, i#10052 : nat}(N, `U`_sx, i_1, i_2) = i_1 - -- if (i_1!`%`_iN{i#10050}.0 <= i_2!`%`_iN{i#10052}.0) -[check_dims] N i#10072 i#10074 i_1 i_2 + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_1 + -- if (i_1!`%`_iN.0 <= i_2!`%`_iN.0) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `U`_sx] @@ -35326,24 +30548,20 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_2] [visit_exp i_2] [visit_id i_2] not free -[visit_exp (i_1!`%`_iN{i#10072}.0 > i_2!`%`_iN{i#10074}.0)] -[visit_exp i_1!`%`_iN{i#10072}.0] -[visit_exp i_1!`%`_iN{i#10072}] +[visit_exp (i_1!`%`_iN.0 > i_2!`%`_iN.0)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10072] -[visit_id i#10072] -[visit_exp i_2!`%`_iN{i#10074}.0] -[visit_exp i_2!`%`_iN{i#10074}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10074] -[visit_id i#10074] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N), i#10072 : nat, i#10074 : nat}(N, `U`_sx, i_1, i_2) = i_2 - -- if (i_1!`%`_iN{i#10072}.0 > i_2!`%`_iN{i#10074}.0) -[check_dims] N i#10094 i#10096 i_1 i_2 + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_2 + -- if (i_1!`%`_iN.0 > i_2!`%`_iN.0) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `S`_sx] @@ -35354,29 +30572,25 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_2] [visit_exp i_1] [visit_id i_1] not free -[visit_exp ($signed_(N, i_1!`%`_iN{i#10094}.0) <= $signed_(N, i_2!`%`_iN{i#10096}.0))] -[visit_exp $signed_(N, i_1!`%`_iN{i#10094}.0)] +[visit_exp ($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0))] +[visit_exp $signed_(N, i_1!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_1!`%`_iN{i#10094}.0] -[visit_exp i_1!`%`_iN{i#10094}] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10094] -[visit_id i#10094] -[visit_exp $signed_(N, i_2!`%`_iN{i#10096}.0)] +[visit_exp $signed_(N, i_2!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_2!`%`_iN{i#10096}.0] -[visit_exp i_2!`%`_iN{i#10096}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10096] -[visit_id i#10096] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N), i#10094 : nat, i#10096 : nat}(N, `S`_sx, i_1, i_2) = i_1 - -- if ($signed_(N, i_1!`%`_iN{i#10094}.0) <= $signed_(N, i_2!`%`_iN{i#10096}.0)) + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_1 + -- if ($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0)) [check_dims] N i_1 i_2 [visit_exp N] [visit_id N] @@ -35392,7 +30606,7 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_2 -- otherwise -[check_dims] N i#10134 i#10136 i_1 i_2 +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `U`_sx] @@ -35403,24 +30617,20 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_2] [visit_exp i_1] [visit_id i_1] not free -[visit_exp (i_1!`%`_iN{i#10134}.0 >= i_2!`%`_iN{i#10136}.0)] -[visit_exp i_1!`%`_iN{i#10134}.0] -[visit_exp i_1!`%`_iN{i#10134}] +[visit_exp (i_1!`%`_iN.0 >= i_2!`%`_iN.0)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10134] -[visit_id i#10134] -[visit_exp i_2!`%`_iN{i#10136}.0] -[visit_exp i_2!`%`_iN{i#10136}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10136] -[visit_id i#10136] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N), i#10134 : nat, i#10136 : nat}(N, `U`_sx, i_1, i_2) = i_1 - -- if (i_1!`%`_iN{i#10134}.0 >= i_2!`%`_iN{i#10136}.0) -[check_dims] N i#10156 i#10158 i_1 i_2 + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_1 + -- if (i_1!`%`_iN.0 >= i_2!`%`_iN.0) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `U`_sx] @@ -35431,24 +30641,20 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_2] [visit_exp i_2] [visit_id i_2] not free -[visit_exp (i_1!`%`_iN{i#10156}.0 < i_2!`%`_iN{i#10158}.0)] -[visit_exp i_1!`%`_iN{i#10156}.0] -[visit_exp i_1!`%`_iN{i#10156}] +[visit_exp (i_1!`%`_iN.0 < i_2!`%`_iN.0)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10156] -[visit_id i#10156] -[visit_exp i_2!`%`_iN{i#10158}.0] -[visit_exp i_2!`%`_iN{i#10158}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10158] -[visit_id i#10158] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N), i#10156 : nat, i#10158 : nat}(N, `U`_sx, i_1, i_2) = i_2 - -- if (i_1!`%`_iN{i#10156}.0 < i_2!`%`_iN{i#10158}.0) -[check_dims] N i#10178 i#10180 i_1 i_2 + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_2 + -- if (i_1!`%`_iN.0 < i_2!`%`_iN.0) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `S`_sx] @@ -35459,29 +30665,25 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_2] [visit_exp i_1] [visit_id i_1] not free -[visit_exp ($signed_(N, i_1!`%`_iN{i#10178}.0) >= $signed_(N, i_2!`%`_iN{i#10180}.0))] -[visit_exp $signed_(N, i_1!`%`_iN{i#10178}.0)] +[visit_exp ($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0))] +[visit_exp $signed_(N, i_1!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_1!`%`_iN{i#10178}.0] -[visit_exp i_1!`%`_iN{i#10178}] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10178] -[visit_id i#10178] -[visit_exp $signed_(N, i_2!`%`_iN{i#10180}.0)] +[visit_exp $signed_(N, i_2!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_2!`%`_iN{i#10180}.0] -[visit_exp i_2!`%`_iN{i#10180}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10180] -[visit_id i#10180] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N), i#10178 : nat, i#10180 : nat}(N, `S`_sx, i_1, i_2) = i_1 - -- if ($signed_(N, i_1!`%`_iN{i#10178}.0) >= $signed_(N, i_2!`%`_iN{i#10180}.0)) + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_1 + -- if ($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0)) [check_dims] N i_1 i_2 [visit_exp N] [visit_id N] @@ -35497,7 +30699,7 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_2 -- otherwise -[check_dims] N i#10224 i#10226 i#10228 i_1 i_2 +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `U`_sx] @@ -35506,31 +30708,25 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_iN{i#10228}($sat_u_(N, ((i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0) : nat <:> int)))] -[visit_exp i#10228] -[visit_id i#10228] -[visit_exp ($sat_u_(N, ((i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0) : nat <:> int)))] -[visit_exp $sat_u_(N, ((i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0) : nat <:> int))] +[visit_exp `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int)))] +[visit_exp ($sat_u_(N, ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int)))] +[visit_exp $sat_u_(N, ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int))] [visit_exp N] [visit_id N] not free -[visit_exp ((i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0) : nat <:> int)] -[visit_exp (i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0)] -[visit_exp i_1!`%`_iN{i#10224}.0] -[visit_exp i_1!`%`_iN{i#10224}] +[visit_exp ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int)] +[visit_exp (i_1!`%`_iN.0 + i_2!`%`_iN.0)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10224] -[visit_id i#10224] -[visit_exp i_2!`%`_iN{i#10226}.0] -[visit_exp i_2!`%`_iN{i#10226}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10226] -[visit_id i#10226] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10228 : nat, i#10224 : nat, i#10226 : nat}(N, `U`_sx, i_1, i_2) = `%`_iN{i#10228}($sat_u_(N, ((i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0) : nat <:> int))) -[check_dims] N i#10248 i#10250 i#10252 i_1 i_2 + def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `S`_sx] @@ -35539,39 +30735,33 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_iN{i#10252}($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0)))))] -[visit_exp i#10252] -[visit_id i#10252] -[visit_exp ($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0)))))] -[visit_exp $inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0))))] +[visit_exp `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0)))))] +[visit_exp ($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0)))))] +[visit_exp $inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0))))] [visit_exp N] [visit_id N] not free -[visit_exp $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0)))] +[visit_exp $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0)))] [visit_exp N] [visit_id N] not free -[visit_exp ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0))] -[visit_exp $signed_(N, i_1!`%`_iN{i#10248}.0)] +[visit_exp ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0))] +[visit_exp $signed_(N, i_1!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_1!`%`_iN{i#10248}.0] -[visit_exp i_1!`%`_iN{i#10248}] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10248] -[visit_id i#10248] -[visit_exp $signed_(N, i_2!`%`_iN{i#10250}.0)] +[visit_exp $signed_(N, i_2!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_2!`%`_iN{i#10250}.0] -[visit_exp i_2!`%`_iN{i#10250}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10250] -[visit_id i#10250] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10252 : nat, i#10248 : nat, i#10250 : nat}(N, `S`_sx, i_1, i_2) = `%`_iN{i#10252}($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0))))) -[check_dims] N i#10272 i#10274 i#10276 i_1 i_2 + def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0))))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `U`_sx] @@ -35580,32 +30770,26 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_iN{i#10276}($sat_u_(N, ((i_1!`%`_iN{i#10272}.0 : nat <:> int) - (i_2!`%`_iN{i#10274}.0 : nat <:> int))))] -[visit_exp i#10276] -[visit_id i#10276] -[visit_exp ($sat_u_(N, ((i_1!`%`_iN{i#10272}.0 : nat <:> int) - (i_2!`%`_iN{i#10274}.0 : nat <:> int))))] -[visit_exp $sat_u_(N, ((i_1!`%`_iN{i#10272}.0 : nat <:> int) - (i_2!`%`_iN{i#10274}.0 : nat <:> int)))] +[visit_exp `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int))))] +[visit_exp ($sat_u_(N, ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int))))] +[visit_exp $sat_u_(N, ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)))] [visit_exp N] [visit_id N] not free -[visit_exp ((i_1!`%`_iN{i#10272}.0 : nat <:> int) - (i_2!`%`_iN{i#10274}.0 : nat <:> int))] -[visit_exp (i_1!`%`_iN{i#10272}.0 : nat <:> int)] -[visit_exp i_1!`%`_iN{i#10272}.0] -[visit_exp i_1!`%`_iN{i#10272}] +[visit_exp ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int))] +[visit_exp (i_1!`%`_iN.0 : nat <:> int)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10272] -[visit_id i#10272] -[visit_exp (i_2!`%`_iN{i#10274}.0 : nat <:> int)] -[visit_exp i_2!`%`_iN{i#10274}.0] -[visit_exp i_2!`%`_iN{i#10274}] +[visit_exp (i_2!`%`_iN.0 : nat <:> int)] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10274] -[visit_id i#10274] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10276 : nat, i#10272 : nat, i#10274 : nat}(N, `U`_sx, i_1, i_2) = `%`_iN{i#10276}($sat_u_(N, ((i_1!`%`_iN{i#10272}.0 : nat <:> int) - (i_2!`%`_iN{i#10274}.0 : nat <:> int)))) -[check_dims] N i#10296 i#10298 i#10300 i_1 i_2 + def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `S`_sx] @@ -35614,90 +30798,74 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_iN{i#10300}($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0)))))] -[visit_exp i#10300] -[visit_id i#10300] -[visit_exp ($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0)))))] -[visit_exp $inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0))))] +[visit_exp `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0)))))] +[visit_exp ($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0)))))] +[visit_exp $inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0))))] [visit_exp N] [visit_id N] not free -[visit_exp $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0)))] +[visit_exp $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0)))] [visit_exp N] [visit_id N] not free -[visit_exp ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0))] -[visit_exp $signed_(N, i_1!`%`_iN{i#10296}.0)] +[visit_exp ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0))] +[visit_exp $signed_(N, i_1!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_1!`%`_iN{i#10296}.0] -[visit_exp i_1!`%`_iN{i#10296}] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10296] -[visit_id i#10296] -[visit_exp $signed_(N, i_2!`%`_iN{i#10298}.0)] +[visit_exp $signed_(N, i_2!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_2!`%`_iN{i#10298}.0] -[visit_exp i_2!`%`_iN{i#10298}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10298] -[visit_id i#10298] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10300 : nat, i#10296 : nat, i#10298 : nat}(N, `S`_sx, i_1, i_2) = `%`_iN{i#10300}($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0))))) -[check_dims] N i#10318 i#10328 i_1 + def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0))))) +[check_dims] N i_1 [visit_exp N] [visit_id N] [visit_exp i_1] [visit_id i_1] -[visit_exp `%`_u32{i#10328}($bool((i_1!`%`_iN{i#10318}.0 = 0)))] -[visit_exp i#10328] -[visit_id i#10328] -[visit_exp ($bool((i_1!`%`_iN{i#10318}.0 = 0)))] -[visit_exp $bool((i_1!`%`_iN{i#10318}.0 = 0))] -[visit_exp (i_1!`%`_iN{i#10318}.0 = 0)] -[visit_exp i_1!`%`_iN{i#10318}.0] -[visit_exp i_1!`%`_iN{i#10318}] +[visit_exp `%`_u32($bool((i_1!`%`_iN.0 = 0)))] +[visit_exp ($bool((i_1!`%`_iN.0 = 0)))] +[visit_exp $bool((i_1!`%`_iN.0 = 0))] +[visit_exp (i_1!`%`_iN.0 = 0)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10318] -[visit_id i#10318] [visit_exp 0] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ieqz_{N : N, i_1 : iN(N), i#10328 : nat, i#10318 : nat}(N, i_1) = `%`_u32{i#10328}($bool((i_1!`%`_iN{i#10318}.0 = 0))) -[check_dims] N i#10346 i#10356 i_1 + def $ieqz_{N : N, i_1 : iN(N)}(N, i_1) = `%`_u32($bool((i_1!`%`_iN.0 = 0))) +[check_dims] N i_1 [visit_exp N] [visit_id N] [visit_exp i_1] [visit_id i_1] -[visit_exp `%`_u32{i#10356}($bool((i_1!`%`_iN{i#10346}.0 =/= 0)))] -[visit_exp i#10356] -[visit_id i#10356] -[visit_exp ($bool((i_1!`%`_iN{i#10346}.0 =/= 0)))] -[visit_exp $bool((i_1!`%`_iN{i#10346}.0 =/= 0))] -[visit_exp (i_1!`%`_iN{i#10346}.0 =/= 0)] -[visit_exp i_1!`%`_iN{i#10346}.0] -[visit_exp i_1!`%`_iN{i#10346}] +[visit_exp `%`_u32($bool((i_1!`%`_iN.0 =/= 0)))] +[visit_exp ($bool((i_1!`%`_iN.0 =/= 0)))] +[visit_exp $bool((i_1!`%`_iN.0 =/= 0))] +[visit_exp (i_1!`%`_iN.0 =/= 0)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10346] -[visit_id i#10346] [visit_exp 0] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $inez_{N : N, i_1 : iN(N), i#10356 : nat, i#10346 : nat}(N, i_1) = `%`_u32{i#10356}($bool((i_1!`%`_iN{i#10346}.0 =/= 0))) -[check_dims] N i#10394 i_1 i_2 + def $inez_{N : N, i_1 : iN(N)}(N, i_1) = `%`_u32($bool((i_1!`%`_iN.0 =/= 0))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp i_1] [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_u32{i#10394}($bool((i_1 = i_2)))] -[visit_exp i#10394] -[visit_id i#10394] +[visit_exp `%`_u32($bool((i_1 = i_2)))] [visit_exp ($bool((i_1 = i_2)))] [visit_exp $bool((i_1 = i_2))] [visit_exp (i_1 = i_2)] @@ -35707,17 +30875,15 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_2] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ieq_{N : N, i_1 : iN(N), i_2 : iN(N), i#10394 : nat}(N, i_1, i_2) = `%`_u32{i#10394}($bool((i_1 = i_2))) -[check_dims] N i#10432 i_1 i_2 + def $ieq_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_u32($bool((i_1 = i_2))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp i_1] [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_u32{i#10432}($bool((i_1 =/= i_2)))] -[visit_exp i#10432] -[visit_id i#10432] +[visit_exp `%`_u32($bool((i_1 =/= i_2)))] [visit_exp ($bool((i_1 =/= i_2)))] [visit_exp $bool((i_1 =/= i_2))] [visit_exp (i_1 =/= i_2)] @@ -35727,8 +30893,8 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_2] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ine_{N : N, i_1 : iN(N), i_2 : iN(N), i#10432 : nat}(N, i_1, i_2) = `%`_u32{i#10432}($bool((i_1 =/= i_2))) -[check_dims] N i#10456 i#10458 i#10468 i_1 i_2 + def $ine_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_u32($bool((i_1 =/= i_2))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `U`_sx] @@ -35737,28 +30903,22 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_u32{i#10468}($bool((i_1!`%`_iN{i#10456}.0 < i_2!`%`_iN{i#10458}.0)))] -[visit_exp i#10468] -[visit_id i#10468] -[visit_exp ($bool((i_1!`%`_iN{i#10456}.0 < i_2!`%`_iN{i#10458}.0)))] -[visit_exp $bool((i_1!`%`_iN{i#10456}.0 < i_2!`%`_iN{i#10458}.0))] -[visit_exp (i_1!`%`_iN{i#10456}.0 < i_2!`%`_iN{i#10458}.0)] -[visit_exp i_1!`%`_iN{i#10456}.0] -[visit_exp i_1!`%`_iN{i#10456}] +[visit_exp `%`_u32($bool((i_1!`%`_iN.0 < i_2!`%`_iN.0)))] +[visit_exp ($bool((i_1!`%`_iN.0 < i_2!`%`_iN.0)))] +[visit_exp $bool((i_1!`%`_iN.0 < i_2!`%`_iN.0))] +[visit_exp (i_1!`%`_iN.0 < i_2!`%`_iN.0)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10456] -[visit_id i#10456] -[visit_exp i_2!`%`_iN{i#10458}.0] -[visit_exp i_2!`%`_iN{i#10458}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10458] -[visit_id i#10458] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10468 : nat, i#10456 : nat, i#10458 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10468}($bool((i_1!`%`_iN{i#10456}.0 < i_2!`%`_iN{i#10458}.0))) -[check_dims] N i#10492 i#10494 i#10504 i_1 i_2 + def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 < i_2!`%`_iN.0))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `S`_sx] @@ -35767,34 +30927,28 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_u32{i#10504}($bool(($signed_(N, i_1!`%`_iN{i#10492}.0) < $signed_(N, i_2!`%`_iN{i#10494}.0))))] -[visit_exp i#10504] -[visit_id i#10504] -[visit_exp ($bool(($signed_(N, i_1!`%`_iN{i#10492}.0) < $signed_(N, i_2!`%`_iN{i#10494}.0))))] -[visit_exp $bool(($signed_(N, i_1!`%`_iN{i#10492}.0) < $signed_(N, i_2!`%`_iN{i#10494}.0)))] -[visit_exp ($signed_(N, i_1!`%`_iN{i#10492}.0) < $signed_(N, i_2!`%`_iN{i#10494}.0))] -[visit_exp $signed_(N, i_1!`%`_iN{i#10492}.0)] +[visit_exp `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0))))] +[visit_exp ($bool(($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0))))] +[visit_exp $bool(($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0)))] +[visit_exp ($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0))] +[visit_exp $signed_(N, i_1!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_1!`%`_iN{i#10492}.0] -[visit_exp i_1!`%`_iN{i#10492}] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10492] -[visit_id i#10492] -[visit_exp $signed_(N, i_2!`%`_iN{i#10494}.0)] +[visit_exp $signed_(N, i_2!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_2!`%`_iN{i#10494}.0] -[visit_exp i_2!`%`_iN{i#10494}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10494] -[visit_id i#10494] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10504 : nat, i#10492 : nat, i#10494 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10504}($bool(($signed_(N, i_1!`%`_iN{i#10492}.0) < $signed_(N, i_2!`%`_iN{i#10494}.0)))) -[check_dims] N i#10528 i#10530 i#10540 i_1 i_2 + def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0)))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `U`_sx] @@ -35803,28 +30957,22 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_u32{i#10540}($bool((i_1!`%`_iN{i#10528}.0 > i_2!`%`_iN{i#10530}.0)))] -[visit_exp i#10540] -[visit_id i#10540] -[visit_exp ($bool((i_1!`%`_iN{i#10528}.0 > i_2!`%`_iN{i#10530}.0)))] -[visit_exp $bool((i_1!`%`_iN{i#10528}.0 > i_2!`%`_iN{i#10530}.0))] -[visit_exp (i_1!`%`_iN{i#10528}.0 > i_2!`%`_iN{i#10530}.0)] -[visit_exp i_1!`%`_iN{i#10528}.0] -[visit_exp i_1!`%`_iN{i#10528}] +[visit_exp `%`_u32($bool((i_1!`%`_iN.0 > i_2!`%`_iN.0)))] +[visit_exp ($bool((i_1!`%`_iN.0 > i_2!`%`_iN.0)))] +[visit_exp $bool((i_1!`%`_iN.0 > i_2!`%`_iN.0))] +[visit_exp (i_1!`%`_iN.0 > i_2!`%`_iN.0)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10528] -[visit_id i#10528] -[visit_exp i_2!`%`_iN{i#10530}.0] -[visit_exp i_2!`%`_iN{i#10530}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10530] -[visit_id i#10530] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $igt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10540 : nat, i#10528 : nat, i#10530 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10540}($bool((i_1!`%`_iN{i#10528}.0 > i_2!`%`_iN{i#10530}.0))) -[check_dims] N i#10564 i#10566 i#10576 i_1 i_2 + def $igt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 > i_2!`%`_iN.0))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `S`_sx] @@ -35833,34 +30981,28 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_u32{i#10576}($bool(($signed_(N, i_1!`%`_iN{i#10564}.0) > $signed_(N, i_2!`%`_iN{i#10566}.0))))] -[visit_exp i#10576] -[visit_id i#10576] -[visit_exp ($bool(($signed_(N, i_1!`%`_iN{i#10564}.0) > $signed_(N, i_2!`%`_iN{i#10566}.0))))] -[visit_exp $bool(($signed_(N, i_1!`%`_iN{i#10564}.0) > $signed_(N, i_2!`%`_iN{i#10566}.0)))] -[visit_exp ($signed_(N, i_1!`%`_iN{i#10564}.0) > $signed_(N, i_2!`%`_iN{i#10566}.0))] -[visit_exp $signed_(N, i_1!`%`_iN{i#10564}.0)] +[visit_exp `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0))))] +[visit_exp ($bool(($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0))))] +[visit_exp $bool(($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0)))] +[visit_exp ($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0))] +[visit_exp $signed_(N, i_1!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_1!`%`_iN{i#10564}.0] -[visit_exp i_1!`%`_iN{i#10564}] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10564] -[visit_id i#10564] -[visit_exp $signed_(N, i_2!`%`_iN{i#10566}.0)] +[visit_exp $signed_(N, i_2!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_2!`%`_iN{i#10566}.0] -[visit_exp i_2!`%`_iN{i#10566}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10566] -[visit_id i#10566] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $igt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10576 : nat, i#10564 : nat, i#10566 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10576}($bool(($signed_(N, i_1!`%`_iN{i#10564}.0) > $signed_(N, i_2!`%`_iN{i#10566}.0)))) -[check_dims] N i#10600 i#10602 i#10612 i_1 i_2 + def $igt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0)))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `U`_sx] @@ -35869,28 +31011,22 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_u32{i#10612}($bool((i_1!`%`_iN{i#10600}.0 <= i_2!`%`_iN{i#10602}.0)))] -[visit_exp i#10612] -[visit_id i#10612] -[visit_exp ($bool((i_1!`%`_iN{i#10600}.0 <= i_2!`%`_iN{i#10602}.0)))] -[visit_exp $bool((i_1!`%`_iN{i#10600}.0 <= i_2!`%`_iN{i#10602}.0))] -[visit_exp (i_1!`%`_iN{i#10600}.0 <= i_2!`%`_iN{i#10602}.0)] -[visit_exp i_1!`%`_iN{i#10600}.0] -[visit_exp i_1!`%`_iN{i#10600}] +[visit_exp `%`_u32($bool((i_1!`%`_iN.0 <= i_2!`%`_iN.0)))] +[visit_exp ($bool((i_1!`%`_iN.0 <= i_2!`%`_iN.0)))] +[visit_exp $bool((i_1!`%`_iN.0 <= i_2!`%`_iN.0))] +[visit_exp (i_1!`%`_iN.0 <= i_2!`%`_iN.0)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10600] -[visit_id i#10600] -[visit_exp i_2!`%`_iN{i#10602}.0] -[visit_exp i_2!`%`_iN{i#10602}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10602] -[visit_id i#10602] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ile_{N : N, i_1 : iN(N), i_2 : iN(N), i#10612 : nat, i#10600 : nat, i#10602 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10612}($bool((i_1!`%`_iN{i#10600}.0 <= i_2!`%`_iN{i#10602}.0))) -[check_dims] N i#10636 i#10638 i#10648 i_1 i_2 + def $ile_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 <= i_2!`%`_iN.0))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `S`_sx] @@ -35899,34 +31035,28 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_u32{i#10648}($bool(($signed_(N, i_1!`%`_iN{i#10636}.0) <= $signed_(N, i_2!`%`_iN{i#10638}.0))))] -[visit_exp i#10648] -[visit_id i#10648] -[visit_exp ($bool(($signed_(N, i_1!`%`_iN{i#10636}.0) <= $signed_(N, i_2!`%`_iN{i#10638}.0))))] -[visit_exp $bool(($signed_(N, i_1!`%`_iN{i#10636}.0) <= $signed_(N, i_2!`%`_iN{i#10638}.0)))] -[visit_exp ($signed_(N, i_1!`%`_iN{i#10636}.0) <= $signed_(N, i_2!`%`_iN{i#10638}.0))] -[visit_exp $signed_(N, i_1!`%`_iN{i#10636}.0)] +[visit_exp `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0))))] +[visit_exp ($bool(($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0))))] +[visit_exp $bool(($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0)))] +[visit_exp ($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0))] +[visit_exp $signed_(N, i_1!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_1!`%`_iN{i#10636}.0] -[visit_exp i_1!`%`_iN{i#10636}] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10636] -[visit_id i#10636] -[visit_exp $signed_(N, i_2!`%`_iN{i#10638}.0)] +[visit_exp $signed_(N, i_2!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_2!`%`_iN{i#10638}.0] -[visit_exp i_2!`%`_iN{i#10638}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10638] -[visit_id i#10638] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ile_{N : N, i_1 : iN(N), i_2 : iN(N), i#10648 : nat, i#10636 : nat, i#10638 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10648}($bool(($signed_(N, i_1!`%`_iN{i#10636}.0) <= $signed_(N, i_2!`%`_iN{i#10638}.0)))) -[check_dims] N i#10672 i#10674 i#10684 i_1 i_2 + def $ile_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0)))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `U`_sx] @@ -35935,28 +31065,22 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_u32{i#10684}($bool((i_1!`%`_iN{i#10672}.0 >= i_2!`%`_iN{i#10674}.0)))] -[visit_exp i#10684] -[visit_id i#10684] -[visit_exp ($bool((i_1!`%`_iN{i#10672}.0 >= i_2!`%`_iN{i#10674}.0)))] -[visit_exp $bool((i_1!`%`_iN{i#10672}.0 >= i_2!`%`_iN{i#10674}.0))] -[visit_exp (i_1!`%`_iN{i#10672}.0 >= i_2!`%`_iN{i#10674}.0)] -[visit_exp i_1!`%`_iN{i#10672}.0] -[visit_exp i_1!`%`_iN{i#10672}] +[visit_exp `%`_u32($bool((i_1!`%`_iN.0 >= i_2!`%`_iN.0)))] +[visit_exp ($bool((i_1!`%`_iN.0 >= i_2!`%`_iN.0)))] +[visit_exp $bool((i_1!`%`_iN.0 >= i_2!`%`_iN.0))] +[visit_exp (i_1!`%`_iN.0 >= i_2!`%`_iN.0)] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10672] -[visit_id i#10672] -[visit_exp i_2!`%`_iN{i#10674}.0] -[visit_exp i_2!`%`_iN{i#10674}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10674] -[visit_id i#10674] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ige_{N : N, i_1 : iN(N), i_2 : iN(N), i#10684 : nat, i#10672 : nat, i#10674 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10684}($bool((i_1!`%`_iN{i#10672}.0 >= i_2!`%`_iN{i#10674}.0))) -[check_dims] N i#10708 i#10710 i#10720 i_1 i_2 + def $ige_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 >= i_2!`%`_iN.0))) +[check_dims] N i_1 i_2 [visit_exp N] [visit_id N] [visit_exp `S`_sx] @@ -35965,33 +31089,27 @@ DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp `%`_u32{i#10720}($bool(($signed_(N, i_1!`%`_iN{i#10708}.0) >= $signed_(N, i_2!`%`_iN{i#10710}.0))))] -[visit_exp i#10720] -[visit_id i#10720] -[visit_exp ($bool(($signed_(N, i_1!`%`_iN{i#10708}.0) >= $signed_(N, i_2!`%`_iN{i#10710}.0))))] -[visit_exp $bool(($signed_(N, i_1!`%`_iN{i#10708}.0) >= $signed_(N, i_2!`%`_iN{i#10710}.0)))] -[visit_exp ($signed_(N, i_1!`%`_iN{i#10708}.0) >= $signed_(N, i_2!`%`_iN{i#10710}.0))] -[visit_exp $signed_(N, i_1!`%`_iN{i#10708}.0)] +[visit_exp `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0))))] +[visit_exp ($bool(($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0))))] +[visit_exp $bool(($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0)))] +[visit_exp ($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0))] +[visit_exp $signed_(N, i_1!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_1!`%`_iN{i#10708}.0] -[visit_exp i_1!`%`_iN{i#10708}] +[visit_exp i_1!`%`_iN.0] +[visit_exp i_1!`%`_iN] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#10708] -[visit_id i#10708] -[visit_exp $signed_(N, i_2!`%`_iN{i#10710}.0)] +[visit_exp $signed_(N, i_2!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i_2!`%`_iN{i#10710}.0] -[visit_exp i_2!`%`_iN{i#10710}] +[visit_exp i_2!`%`_iN.0] +[visit_exp i_2!`%`_iN] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#10710] -[visit_id i#10710] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ige_{N : N, i_1 : iN(N), i_2 : iN(N), i#10720 : nat, i#10708 : nat, i#10710 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10720}($bool(($signed_(N, i_1!`%`_iN{i#10708}.0) >= $signed_(N, i_2!`%`_iN{i#10710}.0)))) + def $ige_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0)))) [check_dims] N fN DecD fabs_(N : N, fN : fN(N)) : fN(N)* [visit_id N] not free @@ -36630,19 +31748,13 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `POPCNT`_unop_, i) = [$ipopcnt_($sizenn((Inn : Inn <: numtype)), i)] -[check_dims] Inn M i i#10974 i#10981 sz#154 +[check_dims] Inn M i [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] -[visit_exp `EXTEND`_unop_{sz#154, i#10974}(`%`_sz{i#10981}(M))] -[visit_exp sz#154] -[visit_id sz#154] -[visit_exp i#10974] -[visit_id i#10974] -[visit_exp (`%`_sz{i#10981}(M))] -[visit_exp `%`_sz{i#10981}(M)] -[visit_exp i#10981] -[visit_id i#10981] +[visit_exp `EXTEND`_unop_(`%`_sz(M))] +[visit_exp (`%`_sz(M))] +[visit_exp `%`_sz(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -36662,7 +31774,7 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id i] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, sz#154 : sz, i#10974 : nat, i#10981 : nat, M : M, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EXTEND`_unop_{sz#154, i#10974}(`%`_sz{i#10981}(M)), i) = [$iextend_($sizenn((Inn : Inn <: numtype)), M, `S`_sx, i)] + def $unop_{Inn : Inn, M : M, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EXTEND`_unop_(`%`_sz(M)), i) = [$iextend_($sizenn((Inn : Inn <: numtype)), M, `S`_sx, i)] [check_dims] Fnn f [visit_exp (Fnn : Fnn <: numtype)] [visit_exp Fnn] @@ -36858,13 +31970,11 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `MUL`_binop_, i_1, i_2) = [$imul_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[check_dims] Inn i_1 i_2 sx sx#58 +[check_dims] Inn i_1 i_2 sx [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] -[visit_exp `DIV`_binop_{sx#58}(sx)] -[visit_exp sx#58] -[visit_id sx#58] +[visit_exp `DIV`_binop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -36886,14 +31996,12 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id i_2] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx#58 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `DIV`_binop_{sx#58}(sx), i_1, i_2) = lift($idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) -[check_dims] Inn i_1 i_2 sx sx#60 + def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `DIV`_binop_(sx), i_1, i_2) = lift($idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) +[check_dims] Inn i_1 i_2 sx [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] -[visit_exp `REM`_binop_{sx#60}(sx)] -[visit_exp sx#60] -[visit_id sx#60] +[visit_exp `REM`_binop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -36915,7 +32023,7 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id i_2] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx#60 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `REM`_binop_{sx#60}(sx), i_1, i_2) = lift($irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) + def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `REM`_binop_(sx), i_1, i_2) = lift($irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) [check_dims] Inn i_1 i_2 [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] @@ -36985,7 +32093,7 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `XOR`_binop_, i_1, i_2) = [$ixor_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[check_dims] Inn i#11713 i#11714 i_1 i_2 +[check_dims] Inn i_1 i_2 [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] @@ -36995,34 +32103,28 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32{i#11714}(i_2!`%`_num_{i#11713}.0))]] -[visit_exp $ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32{i#11714}(i_2!`%`_num_{i#11713}.0))] +[visit_exp [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32(i_2!`%`_num_.0))]] +[visit_exp $ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32(i_2!`%`_num_.0))] [visit_exp $sizenn((Inn : Inn <: numtype))] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] not free [visit_exp i_1] [visit_id i_1] not free -[visit_exp `%`_u32{i#11714}(i_2!`%`_num_{i#11713}.0)] -[visit_exp i#11714] -[visit_id i#11714] -[visit_exp (i_2!`%`_num_{i#11713}.0)] -[visit_exp i_2!`%`_num_{i#11713}.0] -[visit_exp i_2!`%`_num_{i#11713}] +[visit_exp `%`_u32(i_2!`%`_num_.0)] +[visit_exp (i_2!`%`_num_.0)] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#11713] -[visit_id i#11713] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype)), i#11714 : nat, i#11713 : nat}((Inn : Inn <: numtype), `SHL`_binop_, i_1, i_2) = [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32{i#11714}(i_2!`%`_num_{i#11713}.0))] -[check_dims] Inn i#11807 i#11808 i_1 i_2 sx sx#62 + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `SHL`_binop_, i_1, i_2) = [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32(i_2!`%`_num_.0))] +[check_dims] Inn i_1 i_2 sx [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] -[visit_exp `SHR`_binop_{sx#62}(sx)] -[visit_exp sx#62] -[visit_id sx#62] +[visit_exp `SHR`_binop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -37030,8 +32132,8 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id i_1] [visit_exp i_2] [visit_id i_2] -[visit_exp [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32{i#11808}(i_2!`%`_num_{i#11807}.0))]] -[visit_exp $ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32{i#11808}(i_2!`%`_num_{i#11807}.0))] +[visit_exp [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32(i_2!`%`_num_.0))]] +[visit_exp $ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32(i_2!`%`_num_.0))] [visit_exp $sizenn((Inn : Inn <: numtype))] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] @@ -37040,19 +32142,15 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id sx] not free [visit_exp i_1] [visit_id i_1] not free -[visit_exp `%`_u32{i#11808}(i_2!`%`_num_{i#11807}.0)] -[visit_exp i#11808] -[visit_id i#11808] -[visit_exp (i_2!`%`_num_{i#11807}.0)] -[visit_exp i_2!`%`_num_{i#11807}.0] -[visit_exp i_2!`%`_num_{i#11807}] +[visit_exp `%`_u32(i_2!`%`_num_.0)] +[visit_exp (i_2!`%`_num_.0)] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#11807] -[visit_id i#11807] => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx#62 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype)), i#11808 : nat, i#11807 : nat}((Inn : Inn <: numtype), `SHR`_binop_{sx#62}(sx), i_1, i_2) = [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32{i#11808}(i_2!`%`_num_{i#11807}.0))] + def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `SHR`_binop_(sx), i_1, i_2) = [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32(i_2!`%`_num_.0))] [check_dims] Inn i_1 i_2 [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] @@ -37315,13 +32413,11 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `NE`_relop_, i_1, i_2) = $ine_($sizenn((Inn : Inn <: numtype)), i_1, i_2) -[check_dims] Inn i_1 i_2 sx sx#64 +[check_dims] Inn i_1 i_2 sx [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] -[visit_exp `LT`_relop_{sx#64}(sx)] -[visit_exp sx#64] -[visit_id sx#64] +[visit_exp `LT`_relop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -37342,14 +32438,12 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id i_2] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx#64 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LT`_relop_{sx#64}(sx), i_1, i_2) = $ilt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) -[check_dims] Inn i_1 i_2 sx sx#66 + def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LT`_relop_(sx), i_1, i_2) = $ilt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) +[check_dims] Inn i_1 i_2 sx [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] -[visit_exp `GT`_relop_{sx#66}(sx)] -[visit_exp sx#66] -[visit_id sx#66] +[visit_exp `GT`_relop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -37370,14 +32464,12 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id i_2] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx#66 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GT`_relop_{sx#66}(sx), i_1, i_2) = $igt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) -[check_dims] Inn i_1 i_2 sx sx#68 + def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GT`_relop_(sx), i_1, i_2) = $igt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) +[check_dims] Inn i_1 i_2 sx [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] -[visit_exp `LE`_relop_{sx#68}(sx)] -[visit_exp sx#68] -[visit_id sx#68] +[visit_exp `LE`_relop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -37398,14 +32490,12 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id i_2] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx#68 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LE`_relop_{sx#68}(sx), i_1, i_2) = $ile_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) -[check_dims] Inn i_1 i_2 sx sx#70 + def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LE`_relop_(sx), i_1, i_2) = $ile_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) +[check_dims] Inn i_1 i_2 sx [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] -[visit_exp `GE`_relop_{sx#70}(sx)] -[visit_exp sx#70] -[visit_id sx#70] +[visit_exp `GE`_relop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -37426,7 +32516,7 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id i_2] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx#70 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GE`_relop_{sx#70}(sx), i_1, i_2) = $ige_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) + def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GE`_relop_(sx), i_1, i_2) = $ige_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) [check_dims] Fnn f_1 f_2 [visit_exp (Fnn : Fnn <: numtype)] [visit_exp Fnn] @@ -37559,16 +32649,14 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `GE`_relop_, f_1, f_2) = $fge_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Inn_1 Inn_2 i_1 sx sx#72 +[check_dims] Inn_1 Inn_2 i_1 sx [visit_exp (Inn_1 : Inn <: numtype)] [visit_exp Inn_1] [visit_id Inn_1] [visit_exp (Inn_2 : Inn <: numtype)] [visit_exp Inn_2] [visit_id Inn_2] -[visit_exp `EXTEND`_cvtop__{sx#72}(sx)] -[visit_exp sx#72] -[visit_id sx#72] +[visit_exp `EXTEND`_cvtop__(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -37590,7 +32678,7 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id i_1] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, sx#72 : sx, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `EXTEND`_cvtop__{sx#72}(sx), i_1) = [$extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)] + def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `EXTEND`_cvtop__(sx), i_1) = [$extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)] [check_dims] Inn_1 Inn_2 i_1 [visit_exp (Inn_1 : Inn <: numtype)] [visit_exp Inn_1] @@ -37617,16 +32705,14 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `WRAP`_cvtop__, i_1) = [$wrap__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), i_1)] -[check_dims] Fnn_1 Inn_2 f_1 sx sx#74 +[check_dims] Fnn_1 Inn_2 f_1 sx [visit_exp (Fnn_1 : Fnn <: numtype)] [visit_exp Fnn_1] [visit_id Fnn_1] [visit_exp (Inn_2 : Inn <: numtype)] [visit_exp Inn_2] [visit_id Inn_2] -[visit_exp `TRUNC`_cvtop__{sx#74}(sx)] -[visit_exp sx#74] -[visit_id sx#74] +[visit_exp `TRUNC`_cvtop__(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -37648,17 +32734,15 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id f_1] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx#74 : sx, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC`_cvtop__{sx#74}(sx), f_1) = lift($trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) -[check_dims] Fnn_1 Inn_2 f_1 sx sx#76 + def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC`_cvtop__(sx), f_1) = lift($trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) +[check_dims] Fnn_1 Inn_2 f_1 sx [visit_exp (Fnn_1 : Fnn <: numtype)] [visit_exp Fnn_1] [visit_id Fnn_1] [visit_exp (Inn_2 : Inn <: numtype)] [visit_exp Inn_2] [visit_id Inn_2] -[visit_exp `TRUNC_SAT`_cvtop__{sx#76}(sx)] -[visit_exp sx#76] -[visit_id sx#76] +[visit_exp `TRUNC_SAT`_cvtop__(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -37680,17 +32764,15 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id f_1] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx#76 : sx, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC_SAT`_cvtop__{sx#76}(sx), f_1) = lift($trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) -[check_dims] Fnn_2 Inn_1 i_1 sx sx#78 + def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC_SAT`_cvtop__(sx), f_1) = lift($trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) +[check_dims] Fnn_2 Inn_1 i_1 sx [visit_exp (Inn_1 : Inn <: numtype)] [visit_exp Inn_1] [visit_id Inn_1] [visit_exp (Fnn_2 : Fnn <: numtype)] [visit_exp Fnn_2] [visit_id Fnn_2] -[visit_exp `CONVERT`_cvtop__{sx#78}(sx)] -[visit_exp sx#78] -[visit_id sx#78] +[visit_exp `CONVERT`_cvtop__(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -37712,7 +32794,7 @@ DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype [visit_id i_1] not free => ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, sx#78 : sx, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), `CONVERT`_cvtop__{sx#78}(sx), i_1) = [$convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)] + def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), `CONVERT`_cvtop__(sx), i_1) = [$convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)] [check_dims] Fnn_1 Fnn_2 f_1 [visit_exp (Fnn_1 : Fnn <: numtype)] [visit_exp Fnn_1] @@ -37858,46 +32940,26 @@ DecD zeroop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape [visit_id shape_1] not free [visit_exp shape_2] [visit_id shape_2] not free -[check_dims] Jnn_1 Jnn_2 M_1 M_2 dim#801 dim#813 half half#1 i#12568 i#12575 i#12580 i#12587 lanetype#801 lanetype#813 sx sx#80 -[visit_exp `%X%`_shape{lanetype#801, dim#801, i#12568}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12575}(M_1))] -[visit_exp lanetype#801] -[visit_id lanetype#801] -[visit_exp dim#801] -[visit_id dim#801] -[visit_exp i#12568] -[visit_id i#12568] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12575}(M_1))] +[check_dims] Jnn_1 Jnn_2 M_1 M_2 half sx +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#12575}(M_1)] -[visit_exp i#12575] -[visit_id i#12575] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#813, dim#813, i#12580}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12587}(M_2))] -[visit_exp lanetype#813] -[visit_id lanetype#813] -[visit_exp dim#813] -[visit_id dim#813] -[visit_exp i#12580] -[visit_id i#12580] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12587}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#12587}(M_2)] -[visit_exp i#12587] -[visit_id i#12587] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `EXTEND`_vcvtop__{half#1, sx#80}(half, sx)] -[visit_exp half#1] -[visit_id half#1] -[visit_exp sx#80] -[visit_id sx#80] +[visit_exp `EXTEND`_vcvtop__(half, sx)] [visit_exp (half, sx)] [visit_exp half] [visit_id half] @@ -37906,47 +32968,27 @@ DecD zeroop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape [visit_exp ?()] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{lanetype#801 : lanetype, dim#801 : dim, i#12568 : nat, Jnn_1 : Jnn, i#12575 : nat, M_1 : M, lanetype#813 : lanetype, dim#813 : dim, i#12580 : nat, Jnn_2 : Jnn, i#12587 : nat, M_2 : M, half#1 : half, sx#80 : sx, half : half, sx : sx}(`%X%`_shape{lanetype#801, dim#801, i#12568}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12575}(M_1)), `%X%`_shape{lanetype#813, dim#813, i#12580}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12587}(M_2)), `EXTEND`_vcvtop__{half#1, sx#80}(half, sx)) = ?() -[check_dims] Fnn_2 Jnn_1 M_1 M_2 dim#825 dim#837 half half?#1 i#12592 i#12599 i#12604 i#12611 lanetype#825 lanetype#837 sx sx#82 -[visit_exp `%X%`_shape{lanetype#825, dim#825, i#12592}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12599}(M_1))] -[visit_exp lanetype#825] -[visit_id lanetype#825] -[visit_exp dim#825] -[visit_id dim#825] -[visit_exp i#12592] -[visit_id i#12592] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12599}(M_1))] + def $zeroop{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `EXTEND`_vcvtop__(half, sx)) = ?() +[check_dims] Fnn_2 Jnn_1 M_1 M_2 half sx +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#12599}(M_1)] -[visit_exp i#12599] -[visit_id i#12599] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#837, dim#837, i#12604}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12611}(M_2))] -[visit_exp lanetype#837] -[visit_id lanetype#837] -[visit_exp dim#837] -[visit_id dim#837] -[visit_exp i#12604] -[visit_id i#12604] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12611}(M_2))] +[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] [visit_exp (Fnn_2 : Fnn <: lanetype)] [visit_exp Fnn_2] [visit_id Fnn_2] -[visit_exp `%`_dim{i#12611}(M_2)] -[visit_exp i#12611] -[visit_id i#12611] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `CONVERT`_vcvtop__{`half?#1`, sx#82}(half?{half <- `half?`}, sx)] -[visit_exp `half?#1`] -[visit_id half?#1] -[visit_exp sx#82] -[visit_id sx#82] +[visit_exp `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)] [visit_exp (half?{half <- `half?`}, sx)] [visit_exp half?{half <- `half?`}] [scope_enter half] @@ -37962,47 +33004,27 @@ DecD zeroop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape [visit_exp ?()] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{lanetype#825 : lanetype, dim#825 : dim, i#12592 : nat, Jnn_1 : Jnn, i#12599 : nat, M_1 : M, lanetype#837 : lanetype, dim#837 : dim, i#12604 : nat, Fnn_2 : Fnn, i#12611 : nat, M_2 : M, `half?#1` : half?, sx#82 : sx, `half?` : half?, sx : sx}(`%X%`_shape{lanetype#825, dim#825, i#12592}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12599}(M_1)), `%X%`_shape{lanetype#837, dim#837, i#12604}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12611}(M_2)), `CONVERT`_vcvtop__{`half?#1`, sx#82}(half?{half <- `half?`}, sx)) = ?() -[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#864 dim#876 i#12631 i#12638 i#12643 i#12650 lanetype#864 lanetype#876 sx sx#84 zero zero?#1 -[visit_exp `%X%`_shape{lanetype#864, dim#864, i#12631}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12638}(M_1))] -[visit_exp lanetype#864] -[visit_id lanetype#864] -[visit_exp dim#864] -[visit_id dim#864] -[visit_exp i#12631] -[visit_id i#12631] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12638}(M_1))] + def $zeroop{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)) = ?() +[check_dims] Fnn_1 Jnn_2 M_1 M_2 sx zero +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#12638}(M_1)] -[visit_exp i#12638] -[visit_id i#12638] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#876, dim#876, i#12643}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12650}(M_2))] -[visit_exp lanetype#876] -[visit_id lanetype#876] -[visit_exp dim#876] -[visit_id dim#876] -[visit_exp i#12643] -[visit_id i#12643] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12650}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#12650}(M_2)] -[visit_exp i#12650] -[visit_id i#12650] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `TRUNC_SAT`_vcvtop__{sx#84, `zero?#1`}(sx, zero?{zero <- `zero?`})] -[visit_exp sx#84] -[visit_id sx#84] -[visit_exp `zero?#1`] -[visit_id zero?#1] +[visit_exp `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})] [visit_exp (sx, zero?{zero <- `zero?`})] [visit_exp sx] [visit_id sx] @@ -38026,47 +33048,27 @@ DecD zeroop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape [visit_id zero?] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{lanetype#864 : lanetype, dim#864 : dim, i#12631 : nat, Fnn_1 : Fnn, i#12638 : nat, M_1 : M, lanetype#876 : lanetype, dim#876 : dim, i#12643 : nat, Jnn_2 : Jnn, i#12650 : nat, M_2 : M, sx#84 : sx, `zero?#1` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#864, dim#864, i#12631}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12638}(M_1)), `%X%`_shape{lanetype#876, dim#876, i#12643}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12650}(M_2)), `TRUNC_SAT`_vcvtop__{sx#84, `zero?#1`}(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} -[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#918 dim#930 i#12685 i#12692 i#12697 i#12704 lanetype#918 lanetype#930 sx sx#86 zero zero?#3 -[visit_exp `%X%`_shape{lanetype#918, dim#918, i#12685}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12692}(M_1))] -[visit_exp lanetype#918] -[visit_id lanetype#918] -[visit_exp dim#918] -[visit_id dim#918] -[visit_exp i#12685] -[visit_id i#12685] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12692}(M_1))] + def $zeroop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} +[check_dims] Fnn_1 Jnn_2 M_1 M_2 sx zero +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#12692}(M_1)] -[visit_exp i#12692] -[visit_id i#12692] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#930, dim#930, i#12697}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12704}(M_2))] -[visit_exp lanetype#930] -[visit_id lanetype#930] -[visit_exp dim#930] -[visit_id dim#930] -[visit_exp i#12697] -[visit_id i#12697] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12704}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#12704}(M_2)] -[visit_exp i#12704] -[visit_id i#12704] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#86, `zero?#3`}(sx, zero?{zero <- `zero?`})] -[visit_exp sx#86] -[visit_id sx#86] -[visit_exp `zero?#3`] -[visit_id zero?#3] +[visit_exp `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})] [visit_exp (sx, zero?{zero <- `zero?`})] [visit_exp sx] [visit_id sx] @@ -38090,45 +33092,27 @@ DecD zeroop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape [visit_id zero?] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{lanetype#918 : lanetype, dim#918 : dim, i#12685 : nat, Fnn_1 : Fnn, i#12692 : nat, M_1 : M, lanetype#930 : lanetype, dim#930 : dim, i#12697 : nat, Jnn_2 : Jnn, i#12704 : nat, M_2 : M, sx#86 : sx, `zero?#3` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#918, dim#918, i#12685}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12692}(M_1)), `%X%`_shape{lanetype#930, dim#930, i#12697}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12704}(M_2)), `RELAXED_TRUNC`_vcvtop__{sx#86, `zero?#3`}(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} -[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#972 dim#984 i#12739 i#12746 i#12751 i#12758 lanetype#972 lanetype#984 zero zero#1 -[visit_exp `%X%`_shape{lanetype#972, dim#972, i#12739}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12746}(M_1))] -[visit_exp lanetype#972] -[visit_id lanetype#972] -[visit_exp dim#972] -[visit_id dim#972] -[visit_exp i#12739] -[visit_id i#12739] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12746}(M_1))] + def $zeroop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} +[check_dims] Fnn_1 Fnn_2 M_1 M_2 zero +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#12746}(M_1)] -[visit_exp i#12746] -[visit_id i#12746] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#984, dim#984, i#12751}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12758}(M_2))] -[visit_exp lanetype#984] -[visit_id lanetype#984] -[visit_exp dim#984] -[visit_id dim#984] -[visit_exp i#12751] -[visit_id i#12751] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12758}(M_2))] +[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] [visit_exp (Fnn_2 : Fnn <: lanetype)] [visit_exp Fnn_2] [visit_id Fnn_2] -[visit_exp `%`_dim{i#12758}(M_2)] -[visit_exp i#12758] -[visit_id i#12758] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `DEMOTE`_vcvtop__{zero#1}(zero)] -[visit_exp zero#1] -[visit_id zero#1] +[visit_exp `DEMOTE`_vcvtop__(zero)] [visit_exp (zero)] [visit_exp zero] [visit_id zero] @@ -38137,39 +33121,23 @@ DecD zeroop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape [visit_id zero] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{lanetype#972 : lanetype, dim#972 : dim, i#12739 : nat, Fnn_1 : Fnn, i#12746 : nat, M_1 : M, lanetype#984 : lanetype, dim#984 : dim, i#12751 : nat, Fnn_2 : Fnn, i#12758 : nat, M_2 : M, zero#1 : zero, zero : zero}(`%X%`_shape{lanetype#972, dim#972, i#12739}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12746}(M_1)), `%X%`_shape{lanetype#984, dim#984, i#12751}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12758}(M_2)), `DEMOTE`_vcvtop__{zero#1}(zero)) = ?(zero) -[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#1041 dim#1053 i#12808 i#12815 i#12820 i#12827 lanetype#1041 lanetype#1053 -[visit_exp `%X%`_shape{lanetype#1041, dim#1041, i#12808}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12815}(M_1))] -[visit_exp lanetype#1041] -[visit_id lanetype#1041] -[visit_exp dim#1041] -[visit_id dim#1041] -[visit_exp i#12808] -[visit_id i#12808] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12815}(M_1))] + def $zeroop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, zero : zero}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `DEMOTE`_vcvtop__(zero)) = ?(zero) +[check_dims] Fnn_1 Fnn_2 M_1 M_2 +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#12815}(M_1)] -[visit_exp i#12815] -[visit_id i#12815] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#1053, dim#1053, i#12820}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12827}(M_2))] -[visit_exp lanetype#1053] -[visit_id lanetype#1053] -[visit_exp dim#1053] -[visit_id dim#1053] -[visit_exp i#12820] -[visit_id i#12820] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12827}(M_2))] +[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] [visit_exp (Fnn_2 : Fnn <: lanetype)] [visit_exp Fnn_2] [visit_id Fnn_2] -[visit_exp `%`_dim{i#12827}(M_2)] -[visit_exp i#12827] -[visit_id i#12827] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] @@ -38178,7 +33146,7 @@ DecD zeroop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape [visit_exp ?()] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{lanetype#1041 : lanetype, dim#1041 : dim, i#12808 : nat, Fnn_1 : Fnn, i#12815 : nat, M_1 : M, lanetype#1053 : lanetype, dim#1053 : dim, i#12820 : nat, Fnn_2 : Fnn, i#12827 : nat, M_2 : M}(`%X%`_shape{lanetype#1041, dim#1041, i#12808}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12815}(M_1)), `%X%`_shape{lanetype#1053, dim#1053, i#12820}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12827}(M_2)), `PROMOTELOW`_vcvtop__) = ?() + def $zeroop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__) = ?() [check_dims] shape_1 shape_2 vcvtop__ DecD halfop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2)) : half? [visit_id shape_1] not free @@ -38188,46 +33156,26 @@ DecD halfop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape [visit_id shape_1] not free [visit_exp shape_2] [visit_id shape_2] not free -[check_dims] Jnn_1 Jnn_2 M_1 M_2 dim#1122 dim#1134 half half#3 i#12881 i#12888 i#12893 i#12900 lanetype#1122 lanetype#1134 sx sx#88 -[visit_exp `%X%`_shape{lanetype#1122, dim#1122, i#12881}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12888}(M_1))] -[visit_exp lanetype#1122] -[visit_id lanetype#1122] -[visit_exp dim#1122] -[visit_id dim#1122] -[visit_exp i#12881] -[visit_id i#12881] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12888}(M_1))] +[check_dims] Jnn_1 Jnn_2 M_1 M_2 half sx +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#12888}(M_1)] -[visit_exp i#12888] -[visit_id i#12888] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#1134, dim#1134, i#12893}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12900}(M_2))] -[visit_exp lanetype#1134] -[visit_id lanetype#1134] -[visit_exp dim#1134] -[visit_id dim#1134] -[visit_exp i#12893] -[visit_id i#12893] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12900}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#12900}(M_2)] -[visit_exp i#12900] -[visit_id i#12900] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `EXTEND`_vcvtop__{half#3, sx#88}(half, sx)] -[visit_exp half#3] -[visit_id half#3] -[visit_exp sx#88] -[visit_id sx#88] +[visit_exp `EXTEND`_vcvtop__(half, sx)] [visit_exp (half, sx)] [visit_exp half] [visit_id half] @@ -38238,47 +33186,27 @@ DecD halfop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape [visit_id half] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{lanetype#1122 : lanetype, dim#1122 : dim, i#12881 : nat, Jnn_1 : Jnn, i#12888 : nat, M_1 : M, lanetype#1134 : lanetype, dim#1134 : dim, i#12893 : nat, Jnn_2 : Jnn, i#12900 : nat, M_2 : M, half#3 : half, sx#88 : sx, half : half, sx : sx}(`%X%`_shape{lanetype#1122, dim#1122, i#12881}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12888}(M_1)), `%X%`_shape{lanetype#1134, dim#1134, i#12893}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12900}(M_2)), `EXTEND`_vcvtop__{half#3, sx#88}(half, sx)) = ?(half) -[check_dims] Fnn_2 Jnn_1 M_1 M_2 dim#1146 dim#1158 half half?#3 i#12905 i#12912 i#12917 i#12924 lanetype#1146 lanetype#1158 sx sx#90 -[visit_exp `%X%`_shape{lanetype#1146, dim#1146, i#12905}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12912}(M_1))] -[visit_exp lanetype#1146] -[visit_id lanetype#1146] -[visit_exp dim#1146] -[visit_id dim#1146] -[visit_exp i#12905] -[visit_id i#12905] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12912}(M_1))] + def $halfop{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `EXTEND`_vcvtop__(half, sx)) = ?(half) +[check_dims] Fnn_2 Jnn_1 M_1 M_2 half sx +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#12912}(M_1)] -[visit_exp i#12912] -[visit_id i#12912] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#1158, dim#1158, i#12917}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12924}(M_2))] -[visit_exp lanetype#1158] -[visit_id lanetype#1158] -[visit_exp dim#1158] -[visit_id dim#1158] -[visit_exp i#12917] -[visit_id i#12917] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12924}(M_2))] +[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] [visit_exp (Fnn_2 : Fnn <: lanetype)] [visit_exp Fnn_2] [visit_id Fnn_2] -[visit_exp `%`_dim{i#12924}(M_2)] -[visit_exp i#12924] -[visit_id i#12924] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `CONVERT`_vcvtop__{`half?#3`, sx#90}(half?{half <- `half?`}, sx)] -[visit_exp `half?#3`] -[visit_id half?#3] -[visit_exp sx#90] -[visit_id sx#90] +[visit_exp `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)] [visit_exp (half?{half <- `half?`}, sx)] [visit_exp half?{half <- `half?`}] [scope_enter half] @@ -38302,47 +33230,27 @@ DecD halfop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape [visit_id half?] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{lanetype#1146 : lanetype, dim#1146 : dim, i#12905 : nat, Jnn_1 : Jnn, i#12912 : nat, M_1 : M, lanetype#1158 : lanetype, dim#1158 : dim, i#12917 : nat, Fnn_2 : Fnn, i#12924 : nat, M_2 : M, `half?#3` : half?, sx#90 : sx, `half?` : half?, sx : sx}(`%X%`_shape{lanetype#1146, dim#1146, i#12905}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12912}(M_1)), `%X%`_shape{lanetype#1158, dim#1158, i#12917}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12924}(M_2)), `CONVERT`_vcvtop__{`half?#3`, sx#90}(half?{half <- `half?`}, sx)) = half?{half <- `half?`} -[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#1185 dim#1197 i#12944 i#12951 i#12956 i#12963 lanetype#1185 lanetype#1197 sx sx#92 zero zero?#5 -[visit_exp `%X%`_shape{lanetype#1185, dim#1185, i#12944}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12951}(M_1))] -[visit_exp lanetype#1185] -[visit_id lanetype#1185] -[visit_exp dim#1185] -[visit_id dim#1185] -[visit_exp i#12944] -[visit_id i#12944] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12951}(M_1))] + def $halfop{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)) = half?{half <- `half?`} +[check_dims] Fnn_1 Jnn_2 M_1 M_2 sx zero +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#12951}(M_1)] -[visit_exp i#12951] -[visit_id i#12951] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#1197, dim#1197, i#12956}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12963}(M_2))] -[visit_exp lanetype#1197] -[visit_id lanetype#1197] -[visit_exp dim#1197] -[visit_id dim#1197] -[visit_exp i#12956] -[visit_id i#12956] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12963}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#12963}(M_2)] -[visit_exp i#12963] -[visit_id i#12963] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `TRUNC_SAT`_vcvtop__{sx#92, `zero?#5`}(sx, zero?{zero <- `zero?`})] -[visit_exp sx#92] -[visit_id sx#92] -[visit_exp `zero?#5`] -[visit_id zero?#5] +[visit_exp `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})] [visit_exp (sx, zero?{zero <- `zero?`})] [visit_exp sx] [visit_id sx] @@ -38358,47 +33266,27 @@ DecD halfop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape [visit_exp ?()] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{lanetype#1185 : lanetype, dim#1185 : dim, i#12944 : nat, Fnn_1 : Fnn, i#12951 : nat, M_1 : M, lanetype#1197 : lanetype, dim#1197 : dim, i#12956 : nat, Jnn_2 : Jnn, i#12963 : nat, M_2 : M, sx#92 : sx, `zero?#5` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#1185, dim#1185, i#12944}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12951}(M_1)), `%X%`_shape{lanetype#1197, dim#1197, i#12956}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12963}(M_2)), `TRUNC_SAT`_vcvtop__{sx#92, `zero?#5`}(sx, zero?{zero <- `zero?`})) = ?() -[check_dims] Fnn_1 Jnn_2 M_1 M_2 dim#1239 dim#1251 i#12998 i#13005 i#13010 i#13017 lanetype#1239 lanetype#1251 sx sx#94 zero zero?#7 -[visit_exp `%X%`_shape{lanetype#1239, dim#1239, i#12998}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13005}(M_1))] -[visit_exp lanetype#1239] -[visit_id lanetype#1239] -[visit_exp dim#1239] -[visit_id dim#1239] -[visit_exp i#12998] -[visit_id i#12998] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13005}(M_1))] + def $halfop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})) = ?() +[check_dims] Fnn_1 Jnn_2 M_1 M_2 sx zero +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#13005}(M_1)] -[visit_exp i#13005] -[visit_id i#13005] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#1251, dim#1251, i#13010}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#13017}(M_2))] -[visit_exp lanetype#1251] -[visit_id lanetype#1251] -[visit_exp dim#1251] -[visit_id dim#1251] -[visit_exp i#13010] -[visit_id i#13010] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#13017}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#13017}(M_2)] -[visit_exp i#13017] -[visit_id i#13017] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#94, `zero?#7`}(sx, zero?{zero <- `zero?`})] -[visit_exp sx#94] -[visit_id sx#94] -[visit_exp `zero?#7`] -[visit_id zero?#7] +[visit_exp `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})] [visit_exp (sx, zero?{zero <- `zero?`})] [visit_exp sx] [visit_id sx] @@ -38414,84 +33302,50 @@ DecD halfop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape [visit_exp ?()] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{lanetype#1239 : lanetype, dim#1239 : dim, i#12998 : nat, Fnn_1 : Fnn, i#13005 : nat, M_1 : M, lanetype#1251 : lanetype, dim#1251 : dim, i#13010 : nat, Jnn_2 : Jnn, i#13017 : nat, M_2 : M, sx#94 : sx, `zero?#7` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#1239, dim#1239, i#12998}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13005}(M_1)), `%X%`_shape{lanetype#1251, dim#1251, i#13010}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#13017}(M_2)), `RELAXED_TRUNC`_vcvtop__{sx#94, `zero?#7`}(sx, zero?{zero <- `zero?`})) = ?() -[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#1293 dim#1305 i#13052 i#13059 i#13064 i#13071 lanetype#1293 lanetype#1305 zero zero#3 -[visit_exp `%X%`_shape{lanetype#1293, dim#1293, i#13052}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13059}(M_1))] -[visit_exp lanetype#1293] -[visit_id lanetype#1293] -[visit_exp dim#1293] -[visit_id dim#1293] -[visit_exp i#13052] -[visit_id i#13052] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13059}(M_1))] + def $halfop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})) = ?() +[check_dims] Fnn_1 Fnn_2 M_1 M_2 zero +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#13059}(M_1)] -[visit_exp i#13059] -[visit_id i#13059] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#1305, dim#1305, i#13064}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13071}(M_2))] -[visit_exp lanetype#1305] -[visit_id lanetype#1305] -[visit_exp dim#1305] -[visit_id dim#1305] -[visit_exp i#13064] -[visit_id i#13064] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13071}(M_2))] +[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] [visit_exp (Fnn_2 : Fnn <: lanetype)] [visit_exp Fnn_2] [visit_id Fnn_2] -[visit_exp `%`_dim{i#13071}(M_2)] -[visit_exp i#13071] -[visit_id i#13071] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `DEMOTE`_vcvtop__{zero#3}(zero)] -[visit_exp zero#3] -[visit_id zero#3] +[visit_exp `DEMOTE`_vcvtop__(zero)] [visit_exp (zero)] [visit_exp zero] [visit_id zero] [visit_exp ?()] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{lanetype#1293 : lanetype, dim#1293 : dim, i#13052 : nat, Fnn_1 : Fnn, i#13059 : nat, M_1 : M, lanetype#1305 : lanetype, dim#1305 : dim, i#13064 : nat, Fnn_2 : Fnn, i#13071 : nat, M_2 : M, zero#3 : zero, zero : zero}(`%X%`_shape{lanetype#1293, dim#1293, i#13052}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13059}(M_1)), `%X%`_shape{lanetype#1305, dim#1305, i#13064}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13071}(M_2)), `DEMOTE`_vcvtop__{zero#3}(zero)) = ?() -[check_dims] Fnn_1 Fnn_2 M_1 M_2 dim#1362 dim#1374 i#13121 i#13128 i#13133 i#13140 lanetype#1362 lanetype#1374 -[visit_exp `%X%`_shape{lanetype#1362, dim#1362, i#13121}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13128}(M_1))] -[visit_exp lanetype#1362] -[visit_id lanetype#1362] -[visit_exp dim#1362] -[visit_id dim#1362] -[visit_exp i#13121] -[visit_id i#13121] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13128}(M_1))] + def $halfop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, zero : zero}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `DEMOTE`_vcvtop__(zero)) = ?() +[check_dims] Fnn_1 Fnn_2 M_1 M_2 +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#13128}(M_1)] -[visit_exp i#13128] -[visit_id i#13128] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#1374, dim#1374, i#13133}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13140}(M_2))] -[visit_exp lanetype#1374] -[visit_id lanetype#1374] -[visit_exp dim#1374] -[visit_id dim#1374] -[visit_exp i#13133] -[visit_id i#13133] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13140}(M_2))] +[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] [visit_exp (Fnn_2 : Fnn <: lanetype)] [visit_exp Fnn_2] [visit_id Fnn_2] -[visit_exp `%`_dim{i#13140}(M_2)] -[visit_exp i#13140] -[visit_id i#13140] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] @@ -38502,7 +33356,7 @@ DecD halfop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape [visit_exp ()] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{lanetype#1362 : lanetype, dim#1362 : dim, i#13121 : nat, Fnn_1 : Fnn, i#13128 : nat, M_1 : M, lanetype#1374 : lanetype, dim#1374 : dim, i#13133 : nat, Fnn_2 : Fnn, i#13140 : nat, M_2 : M}(`%X%`_shape{lanetype#1362, dim#1362, i#13121}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13128}(M_1)), `%X%`_shape{lanetype#1374, dim#1374, i#13133}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13140}(M_2)), `PROMOTELOW`_vcvtop__) = ?(`LOW`_half) + def $halfop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__) = ?(`LOW`_half) [check_dims] half nat DecD half(half : half, nat : nat, nat : nat) : nat [visit_id half] not free @@ -38554,7 +33408,7 @@ DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) [visit_id N] not free [visit_exp N] [visit_id N] not free -[check_dims] N c i i#13205 i#13213 +[check_dims] N c i [visit_exp N] [visit_id N] [visit_exp c*{c <- `c*`}] @@ -38568,7 +33422,7 @@ DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) [visit_id c*] [visit_exp i] [visit_id i] -[visit_exp c*{c <- `c*`}[i!`%`_iN{i#13213}.0]] +[visit_exp c*{c <- `c*`}[i!`%`_iN.0]] [visit_exp c*{c <- `c*`}] [scope_enter c] [visit_exp c] @@ -38578,19 +33432,15 @@ DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) [visit_exp `c*`] [visit_id c*] not free [visit_id c*] no dims -[visit_exp i!`%`_iN{i#13213}.0] -[visit_exp i!`%`_iN{i#13213}] +[visit_exp i!`%`_iN.0] +[visit_exp i!`%`_iN] [visit_exp i] [visit_id i] not free -[visit_exp i#13213] -[visit_id i#13213] -[visit_exp (i!`%`_iN{i#13205}.0 < |c*{c <- `c*`}|)] -[visit_exp i!`%`_iN{i#13205}.0] -[visit_exp i!`%`_iN{i#13205}] +[visit_exp (i!`%`_iN.0 < |c*{c <- `c*`}|)] +[visit_exp i!`%`_iN.0] +[visit_exp i!`%`_iN] [visit_exp i] [visit_id i] not free -[visit_exp i#13205] -[visit_id i#13205] [visit_exp |c*{c <- `c*`}|] [visit_exp c*{c <- `c*`}] [scope_enter c] @@ -38603,9 +33453,9 @@ DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) [visit_id c*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13213 : nat, i#13205 : nat}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN{i#13213}.0] - -- if (i!`%`_iN{i#13205}.0 < |c*{c <- `c*`}|) -[check_dims] N c i i#13239 + def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN.0] + -- if (i!`%`_iN.0 < |c*{c <- `c*`}|) +[check_dims] N c i [visit_exp N] [visit_id N] [visit_exp c*{c <- `c*`}] @@ -38619,16 +33469,14 @@ DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) [visit_id c*] [visit_exp i] [visit_id i] -[visit_exp `%`_iN{i#13239}(0)] -[visit_exp i#13239] -[visit_id i#13239] +[visit_exp `%`_iN(0)] [visit_exp (0)] [visit_exp 0] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13239 : nat}(N, c*{c <- `c*`}, i) = `%`_iN{i#13239}(0) + def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = `%`_iN(0) -- otherwise -[check_dims] N c i i#13259 i#13267 +[check_dims] N c i [visit_exp N] [visit_id N] [visit_exp c*{c <- `c*`}] @@ -38642,7 +33490,7 @@ DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) [visit_id c*] [visit_exp i] [visit_id i] -[visit_exp c*{c <- `c*`}[i!`%`_iN{i#13267}.0]] +[visit_exp c*{c <- `c*`}[i!`%`_iN.0]] [visit_exp c*{c <- `c*`}] [scope_enter c] [visit_exp c] @@ -38652,19 +33500,15 @@ DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) [visit_exp `c*`] [visit_id c*] not free [visit_id c*] no dims -[visit_exp i!`%`_iN{i#13267}.0] -[visit_exp i!`%`_iN{i#13267}] +[visit_exp i!`%`_iN.0] +[visit_exp i!`%`_iN] [visit_exp i] [visit_id i] not free -[visit_exp i#13267] -[visit_id i#13267] -[visit_exp (i!`%`_iN{i#13259}.0 < |c*{c <- `c*`}|)] -[visit_exp i!`%`_iN{i#13259}.0] -[visit_exp i!`%`_iN{i#13259}] +[visit_exp (i!`%`_iN.0 < |c*{c <- `c*`}|)] +[visit_exp i!`%`_iN.0] +[visit_exp i!`%`_iN] [visit_exp i] [visit_id i] not free -[visit_exp i#13259] -[visit_id i#13259] [visit_exp |c*{c <- `c*`}|] [visit_exp c*{c <- `c*`}] [scope_enter c] @@ -38677,9 +33521,9 @@ DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) [visit_id c*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13267 : nat, i#13259 : nat}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN{i#13267}.0] - -- if (i!`%`_iN{i#13259}.0 < |c*{c <- `c*`}|) -[check_dims] N c i i#13287 i#13295 + def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN.0] + -- if (i!`%`_iN.0 < |c*{c <- `c*`}|) +[check_dims] N c i [visit_exp N] [visit_id N] [visit_exp c*{c <- `c*`}] @@ -38693,28 +33537,24 @@ DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) [visit_id c*] [visit_exp i] [visit_id i] -[visit_exp `%`_iN{i#13295}(0)] -[visit_exp i#13295] -[visit_id i#13295] +[visit_exp `%`_iN(0)] [visit_exp (0)] [visit_exp 0] -[visit_exp ($signed_(N, i!`%`_iN{i#13287}.0) < (0 : nat <:> int))] -[visit_exp $signed_(N, i!`%`_iN{i#13287}.0)] +[visit_exp ($signed_(N, i!`%`_iN.0) < (0 : nat <:> int))] +[visit_exp $signed_(N, i!`%`_iN.0)] [visit_exp N] [visit_id N] not free -[visit_exp i!`%`_iN{i#13287}.0] -[visit_exp i!`%`_iN{i#13287}] +[visit_exp i!`%`_iN.0] +[visit_exp i!`%`_iN] [visit_exp i] [visit_id i] not free -[visit_exp i#13287] -[visit_id i#13287] [visit_exp (0 : nat <:> int)] [visit_exp 0] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13295 : nat, i#13287 : nat}(N, c*{c <- `c*`}, i) = `%`_iN{i#13295}(0) - -- if ($signed_(N, i!`%`_iN{i#13287}.0) < (0 : nat <:> int)) -[check_dims] N c i i#13333 i#13341 + def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = `%`_iN(0) + -- if ($signed_(N, i!`%`_iN.0) < (0 : nat <:> int)) +[check_dims] N c i [visit_exp N] [visit_id N] [visit_exp c*{c <- `c*`}] @@ -38728,16 +33568,14 @@ DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) [visit_id c*] [visit_exp i] [visit_id i] -[visit_exp $relaxed2($R_swizzle, syntax iN(N), `%`_iN{i#13333}(0), c*{c <- `c*`}[(i!`%`_iN{i#13341}.0 \ |c*{c <- `c*`}|)])] +[visit_exp $relaxed2($R_swizzle, syntax iN(N), `%`_iN(0), c*{c <- `c*`}[(i!`%`_iN.0 \ |c*{c <- `c*`}|)])] [visit_exp $R_swizzle] [visit_exp N] [visit_id N] not free -[visit_exp `%`_iN{i#13333}(0)] -[visit_exp i#13333] -[visit_id i#13333] +[visit_exp `%`_iN(0)] [visit_exp (0)] [visit_exp 0] -[visit_exp c*{c <- `c*`}[(i!`%`_iN{i#13341}.0 \ |c*{c <- `c*`}|)]] +[visit_exp c*{c <- `c*`}[(i!`%`_iN.0 \ |c*{c <- `c*`}|)]] [visit_exp c*{c <- `c*`}] [scope_enter c] [visit_exp c] @@ -38747,13 +33585,11 @@ DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) [visit_exp `c*`] [visit_id c*] not free [visit_id c*] no dims -[visit_exp (i!`%`_iN{i#13341}.0 \ |c*{c <- `c*`}|)] -[visit_exp i!`%`_iN{i#13341}.0] -[visit_exp i!`%`_iN{i#13341}] +[visit_exp (i!`%`_iN.0 \ |c*{c <- `c*`}|)] +[visit_exp i!`%`_iN.0] +[visit_exp i!`%`_iN] [visit_exp i] [visit_id i] not free -[visit_exp i#13341] -[visit_id i#13341] [visit_exp |c*{c <- `c*`}|] [visit_exp c*{c <- `c*`}] [scope_enter c] @@ -38766,7 +33602,7 @@ DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) [visit_id c*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13333 : nat, i#13341 : nat}(N, c*{c <- `c*`}, i) = $relaxed2($R_swizzle, syntax iN(N), `%`_iN{i#13333}(0), c*{c <- `c*`}[(i!`%`_iN{i#13341}.0 \ |c*{c <- `c*`}|)]) + def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = $relaxed2($R_swizzle, syntax iN(N), `%`_iN(0), c*{c <- `c*`}[(i!`%`_iN.0 \ |c*{c <- `c*`}|)]) -- otherwise [check_dims] N iN shape vec_ DecD ivunop_(shape : shape, def $f_(N : N, iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* @@ -39060,42 +33896,26 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp ()] [visit_exp `V128`_Vnn] [visit_exp ()] -[check_dims] Jnn M c c_1 dim#1431 dim#1443 dim#1469 i#13346 i#13353 i#13370 i#13377 i#13506 i#13513 lanetype#1431 lanetype#1443 lanetype#1469 v_1 -[visit_exp `%X%`_shape{lanetype#1431, dim#1431, i#13346}((Jnn : Jnn <: lanetype), `%`_dim{i#13353}(M))] -[visit_exp lanetype#1431] -[visit_id lanetype#1431] -[visit_exp dim#1431] -[visit_id dim#1431] -[visit_exp i#13346] -[visit_id i#13346] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#13353}(M))] +[check_dims] Jnn M c c_1 v_1 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#13353}(M)] -[visit_exp i#13353] -[visit_id i#13353] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] [visit_exp v_1] [visit_id v_1] -[visit_exp [$inv_lanes_(`%X%`_shape{lanetype#1469, dim#1469, i#13506}((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M)), c*{c <- `c*`})]] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1469, dim#1469, i#13506}((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#1469, dim#1469, i#13506}((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M))] -[visit_exp lanetype#1469] -[visit_id lanetype#1469] -[visit_exp dim#1469] -[visit_id dim#1469] -[visit_exp i#13506] -[visit_id i#13506] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M))] +[visit_exp [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})]] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#13513}(M)] -[visit_exp i#13513] -[visit_id i#13513] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -39108,7 +33928,7 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -39118,21 +33938,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))] -[visit_exp lanetype#1443] -[visit_id lanetype#1443] -[visit_exp dim#1443] -[visit_id dim#1443] -[visit_exp i#13370] -[visit_id i#13370] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#13377}(M)] -[visit_exp i#13377] -[visit_id i#13377] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -39164,50 +33976,30 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_1*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivunop_{lanetype#1431 : lanetype, dim#1431 : dim, i#13346 : nat, Jnn : Jnn, i#13353 : nat, M : M, def $f_(N : N, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), lanetype#1469 : lanetype, dim#1469 : dim, i#13506 : nat, i#13513 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#1443 : lanetype, dim#1443 : dim, i#13370 : nat, i#13377 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))*}(`%X%`_shape{lanetype#1431, dim#1431, i#13346}((Jnn : Jnn <: lanetype), `%`_dim{i#13353}(M)), def $f_, v_1) = [$inv_lanes_(`%X%`_shape{lanetype#1469, dim#1469, i#13506}((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M)), c*{c <- `c*`})] - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M)), v_1)) + def $ivunop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1)*{c_1 <- `c_1*`}) -[check_dims] Fnn M c c_1 dim#1493 dim#1505 dim#1532 i#13579 i#13586 i#13603 i#13610 i#13693 i#13700 lanetype#1493 lanetype#1505 lanetype#1532 v_1 -[visit_exp `%X%`_shape{lanetype#1493, dim#1493, i#13579}((Fnn : Fnn <: lanetype), `%`_dim{i#13586}(M))] -[visit_exp lanetype#1493] -[visit_id lanetype#1493] -[visit_exp dim#1493] -[visit_id dim#1493] -[visit_exp i#13579] -[visit_id i#13579] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#13586}(M))] +[check_dims] Fnn M c c_1 v_1 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#13586}(M)] -[visit_exp i#13586] -[visit_id i#13586] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] [visit_exp v_1] [visit_id v_1] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1532 <- `dim#1532*`, i#13693 <- `i#13693*`, i#13700 <- `i#13700*`, lanetype#1532 <- `lanetype#1532*`}] +[visit_exp $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}] [scope_enter c*] -[scope_enter dim#1532] -[scope_enter i#13693] -[scope_enter i#13700] -[scope_enter lanetype#1532] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M))] -[visit_exp lanetype#1532] -[visit_id lanetype#1532] not free -[visit_exp dim#1532] -[visit_id dim#1532] not free -[visit_exp i#13693] -[visit_id i#13693] not free -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#13700}(M)] -[visit_exp i#13700] -[visit_id i#13700] not free +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -39222,31 +34014,11 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c*] no dims [visit_id c*] not free [visit_id c*] no dims -[visit_id dim#1532] not free -[visit_id i#13693] not free -[visit_id i#13700] not free -[visit_id lanetype#1532] not free -[scope_exit lanetype#1532] -[scope_exit i#13700] -[scope_exit i#13693] -[scope_exit dim#1532] [scope_exit c*] [visit_exp `c**`] [visit_id c**] no dims [visit_id c**] -[visit_exp `dim#1532*`] -[visit_id dim#1532*] no dims -[visit_id dim#1532*] -[visit_exp `i#13693*`] -[visit_id i#13693*] no dims -[visit_id i#13693*] -[visit_exp `i#13700*`] -[visit_id i#13700*] no dims -[visit_id i#13700*] -[visit_exp `lanetype#1532*`] -[visit_id lanetype#1532*] no dims -[visit_id lanetype#1532*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -39256,21 +34028,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))] -[visit_exp lanetype#1505] -[visit_id lanetype#1505] -[visit_exp dim#1505] -[visit_id dim#1505] -[visit_exp i#13603] -[visit_id i#13603] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))] +[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#13610}(M)] -[visit_exp i#13610] -[visit_id i#13610] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -39314,24 +34078,16 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_1*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvunop_{lanetype#1493 : lanetype, dim#1493 : dim, i#13579 : nat, Fnn : Fnn, i#13586 : nat, M : M, def $f_(N : N, fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `dim#1532*` : dim*, `i#13693*` : nat*, `i#13700*` : nat*, `lanetype#1532*` : lanetype*, lanetype#1505 : lanetype, dim#1505 : dim, i#13603 : nat, i#13610 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))*}(`%X%`_shape{lanetype#1493, dim#1493, i#13579}((Fnn : Fnn <: lanetype), `%`_dim{i#13586}(M)), def $f_, v_1) = $inv_lanes_(`%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1532 <- `dim#1532*`, i#13693 <- `i#13693*`, i#13700 <- `i#13700*`, lanetype#1532 <- `lanetype#1532*`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M)), v_1)) + def $fvunop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1)*{c_1 <- `c_1*`})) -[check_dims] Jnn M c c_1 c_2 dim#1555 dim#1567 dim#1592 dim#1619 i#13738 i#13745 i#13774 i#13781 i#13860 i#13867 i#14011 i#14018 lanetype#1555 lanetype#1567 lanetype#1592 lanetype#1619 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#1555, dim#1555, i#13738}((Jnn : Jnn <: lanetype), `%`_dim{i#13745}(M))] -[visit_exp lanetype#1555] -[visit_id lanetype#1555] -[visit_exp dim#1555] -[visit_id dim#1555] -[visit_exp i#13738] -[visit_id i#13738] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#13745}(M))] +[check_dims] Jnn M c c_1 c_2 v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#13745}(M)] -[visit_exp i#13745] -[visit_id i#13745] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -39339,22 +34095,14 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp [$inv_lanes_(`%X%`_shape{lanetype#1619, dim#1619, i#14011}((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M)), c*{c <- `c*`})]] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1619, dim#1619, i#14011}((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#1619, dim#1619, i#14011}((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M))] -[visit_exp lanetype#1619] -[visit_id lanetype#1619] -[visit_exp dim#1619] -[visit_id dim#1619] -[visit_exp i#14011] -[visit_id i#14011] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M))] +[visit_exp [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})]] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#14018}(M)] -[visit_exp i#14018] -[visit_id i#14018] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -39367,7 +34115,7 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -39377,27 +34125,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))] -[visit_exp lanetype#1567] -[visit_id lanetype#1567] -[visit_exp dim#1567] -[visit_id dim#1567] -[visit_exp i#13774] -[visit_id i#13774] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#13781}(M)] -[visit_exp i#13781] -[visit_id i#13781] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M)), v_2))] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] [visit_exp c_2*{c_2 <- `c_2*`}] [scope_enter c_2] [visit_exp c_2] @@ -39407,21 +34147,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] no dims [visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M)), v_2)] -[visit_exp `%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))] -[visit_exp lanetype#1592] -[visit_id lanetype#1592] -[visit_exp dim#1592] -[visit_id dim#1592] -[visit_exp i#13860] -[visit_id i#13860] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#13867}(M)] -[visit_exp i#13867] -[visit_id i#13867] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -39461,25 +34193,17 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_2*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinop_{lanetype#1555 : lanetype, dim#1555 : dim, i#13738 : nat, Jnn : Jnn, i#13745 : nat, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#1619 : lanetype, dim#1619 : dim, i#14011 : nat, i#14018 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#1567 : lanetype, dim#1567 : dim, i#13774 : nat, i#13781 : nat, lanetype#1592 : lanetype, dim#1592 : dim, i#13860 : nat, i#13867 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))*}(`%X%`_shape{lanetype#1555, dim#1555, i#13738}((Jnn : Jnn <: lanetype), `%`_dim{i#13745}(M)), def $f_, v_1, v_2) = [$inv_lanes_(`%X%`_shape{lanetype#1619, dim#1619, i#14011}((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M)), c*{c <- `c*`})] - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M)), v_2)) + def $ivbinop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}) -[check_dims] Jnn M c c_1 c_2 dim#1643 dim#1655 dim#1680 dim#1707 i#14084 i#14091 i#14120 i#14127 i#14206 i#14213 i#14357 i#14364 lanetype#1643 lanetype#1655 lanetype#1680 lanetype#1707 sx v_1 v_2 -[visit_exp `%X%`_shape{lanetype#1643, dim#1643, i#14084}((Jnn : Jnn <: lanetype), `%`_dim{i#14091}(M))] -[visit_exp lanetype#1643] -[visit_id lanetype#1643] -[visit_exp dim#1643] -[visit_id dim#1643] -[visit_exp i#14084] -[visit_id i#14084] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14091}(M))] +[check_dims] Jnn M c c_1 c_2 sx v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#14091}(M)] -[visit_exp i#14091] -[visit_id i#14091] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -39489,22 +34213,14 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp [$inv_lanes_(`%X%`_shape{lanetype#1707, dim#1707, i#14357}((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M)), c*{c <- `c*`})]] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1707, dim#1707, i#14357}((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#1707, dim#1707, i#14357}((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M))] -[visit_exp lanetype#1707] -[visit_id lanetype#1707] -[visit_exp dim#1707] -[visit_id dim#1707] -[visit_exp i#14357] -[visit_id i#14357] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M))] +[visit_exp [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})]] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#14364}(M)] -[visit_exp i#14364] -[visit_id i#14364] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -39517,7 +34233,7 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -39527,27 +34243,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))] -[visit_exp lanetype#1655] -[visit_id lanetype#1655] -[visit_exp dim#1655] -[visit_id dim#1655] -[visit_exp i#14120] -[visit_id i#14120] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#14127}(M)] -[visit_exp i#14127] -[visit_id i#14127] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M)), v_2))] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] [visit_exp c_2*{c_2 <- `c_2*`}] [scope_enter c_2] [visit_exp c_2] @@ -39557,21 +34265,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] no dims [visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M)), v_2)] -[visit_exp `%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))] -[visit_exp lanetype#1680] -[visit_id lanetype#1680] -[visit_exp dim#1680] -[visit_id dim#1680] -[visit_exp i#14206] -[visit_id i#14206] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#14213}(M)] -[visit_exp i#14213] -[visit_id i#14213] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -39613,25 +34313,17 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_2*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinopsx_{lanetype#1643 : lanetype, dim#1643 : dim, i#14084 : nat, Jnn : Jnn, i#14091 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#1707 : lanetype, dim#1707 : dim, i#14357 : nat, i#14364 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#1655 : lanetype, dim#1655 : dim, i#14120 : nat, i#14127 : nat, lanetype#1680 : lanetype, dim#1680 : dim, i#14206 : nat, i#14213 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))*}(`%X%`_shape{lanetype#1643, dim#1643, i#14084}((Jnn : Jnn <: lanetype), `%`_dim{i#14091}(M)), def $f_, sx, v_1, v_2) = [$inv_lanes_(`%X%`_shape{lanetype#1707, dim#1707, i#14357}((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M)), c*{c <- `c*`})] - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M)), v_2)) + def $ivbinopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}) -[check_dims] Jnn M c c_1 c_2 dim#1731 dim#1743 dim#1768 dim#1803 i#14430 i#14437 i#14466 i#14473 i#14552 i#14559 i#14919 i#14926 lanetype#1731 lanetype#1743 lanetype#1768 lanetype#1803 sx v_1 v_2 -[visit_exp `%X%`_shape{lanetype#1731, dim#1731, i#14430}((Jnn : Jnn <: lanetype), `%`_dim{i#14437}(M))] -[visit_exp lanetype#1731] -[visit_id lanetype#1731] -[visit_exp dim#1731] -[visit_id dim#1731] -[visit_exp i#14430] -[visit_id i#14430] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14437}(M))] +[check_dims] Jnn M c c_1 c_2 sx v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#14437}(M)] -[visit_exp i#14437] -[visit_id i#14437] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -39641,27 +34333,15 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1803 <- `dim#1803*`, i#14919 <- `i#14919*`, i#14926 <- `i#14926*`, lanetype#1803 <- `lanetype#1803*`}] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}] [scope_enter c*] -[scope_enter dim#1803] -[scope_enter i#14919] -[scope_enter i#14926] -[scope_enter lanetype#1803] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M))] -[visit_exp lanetype#1803] -[visit_id lanetype#1803] not free -[visit_exp dim#1803] -[visit_id dim#1803] not free -[visit_exp i#14919] -[visit_id i#14919] not free -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#14926}(M)] -[visit_exp i#14926] -[visit_id i#14926] not free +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -39676,31 +34356,11 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c*] no dims [visit_id c*] not free [visit_id c*] no dims -[visit_id dim#1803] not free -[visit_id i#14919] not free -[visit_id i#14926] not free -[visit_id lanetype#1803] not free -[scope_exit lanetype#1803] -[scope_exit i#14926] -[scope_exit i#14919] -[scope_exit dim#1803] [scope_exit c*] [visit_exp `c**`] [visit_id c**] no dims [visit_id c**] -[visit_exp `dim#1803*`] -[visit_id dim#1803*] no dims -[visit_id dim#1803*] -[visit_exp `i#14919*`] -[visit_id i#14919*] no dims -[visit_id i#14919*] -[visit_exp `i#14926*`] -[visit_id i#14926*] no dims -[visit_id i#14926*] -[visit_exp `lanetype#1803*`] -[visit_id lanetype#1803*] no dims -[visit_id lanetype#1803*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -39710,27 +34370,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))] -[visit_exp lanetype#1743] -[visit_id lanetype#1743] -[visit_exp dim#1743] -[visit_id dim#1743] -[visit_exp i#14466] -[visit_id i#14466] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#14473}(M)] -[visit_exp i#14473] -[visit_id i#14473] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M)), v_2))] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] [visit_exp c_2*{c_2 <- `c_2*`}] [scope_enter c_2] [visit_exp c_2] @@ -39740,21 +34392,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] no dims [visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M)), v_2)] -[visit_exp `%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))] -[visit_exp lanetype#1768] -[visit_id lanetype#1768] -[visit_exp dim#1768] -[visit_id dim#1768] -[visit_exp i#14552] -[visit_id i#14552] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#14559}(M)] -[visit_exp i#14559] -[visit_id i#14559] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -39808,25 +34452,17 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_2*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinopsxnd_{lanetype#1731 : lanetype, dim#1731 : dim, i#14430 : nat, Jnn : Jnn, i#14437 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `dim#1803*` : dim*, `i#14919*` : nat*, `i#14926*` : nat*, `lanetype#1803*` : lanetype*, lanetype#1743 : lanetype, dim#1743 : dim, i#14466 : nat, i#14473 : nat, lanetype#1768 : lanetype, dim#1768 : dim, i#14552 : nat, i#14559 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))*}(`%X%`_shape{lanetype#1731, dim#1731, i#14430}((Jnn : Jnn <: lanetype), `%`_dim{i#14437}(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1803 <- `dim#1803*`, i#14919 <- `i#14919*`, i#14926 <- `i#14926*`, lanetype#1803 <- `lanetype#1803*`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M)), v_2)) + def $ivbinopsxnd_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})) -[check_dims] Fnn M c c_1 c_2 dim#1827 dim#1839 dim#1863 dim#1893 i#14990 i#14997 i#15026 i#15033 i#15084 i#15091 i#15183 i#15190 lanetype#1827 lanetype#1839 lanetype#1863 lanetype#1893 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#1827, dim#1827, i#14990}((Fnn : Fnn <: lanetype), `%`_dim{i#14997}(M))] -[visit_exp lanetype#1827] -[visit_id lanetype#1827] -[visit_exp dim#1827] -[visit_id dim#1827] -[visit_exp i#14990] -[visit_id i#14990] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#14997}(M))] +[check_dims] Fnn M c c_1 c_2 v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#14997}(M)] -[visit_exp i#14997] -[visit_id i#14997] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -39834,27 +34470,15 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1893 <- `dim#1893*`, i#15183 <- `i#15183*`, i#15190 <- `i#15190*`, lanetype#1893 <- `lanetype#1893*`}] +[visit_exp $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}] [scope_enter c*] -[scope_enter dim#1893] -[scope_enter i#15183] -[scope_enter i#15190] -[scope_enter lanetype#1893] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M))] -[visit_exp lanetype#1893] -[visit_id lanetype#1893] not free -[visit_exp dim#1893] -[visit_id dim#1893] not free -[visit_exp i#15183] -[visit_id i#15183] not free -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#15190}(M)] -[visit_exp i#15190] -[visit_id i#15190] not free +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -39869,31 +34493,11 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c*] no dims [visit_id c*] not free [visit_id c*] no dims -[visit_id dim#1893] not free -[visit_id i#15183] not free -[visit_id i#15190] not free -[visit_id lanetype#1893] not free -[scope_exit lanetype#1893] -[scope_exit i#15190] -[scope_exit i#15183] -[scope_exit dim#1893] [scope_exit c*] [visit_exp `c**`] [visit_id c**] no dims [visit_id c**] -[visit_exp `dim#1893*`] -[visit_id dim#1893*] no dims -[visit_id dim#1893*] -[visit_exp `i#15183*`] -[visit_id i#15183*] no dims -[visit_id i#15183*] -[visit_exp `i#15190*`] -[visit_id i#15190*] no dims -[visit_id i#15190*] -[visit_exp `lanetype#1893*`] -[visit_id lanetype#1893*] no dims -[visit_id lanetype#1893*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -39903,27 +34507,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))] -[visit_exp lanetype#1839] -[visit_id lanetype#1839] -[visit_exp dim#1839] -[visit_id dim#1839] -[visit_exp i#15026] -[visit_id i#15026] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))] +[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#15033}(M)] -[visit_exp i#15033] -[visit_id i#15033] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M)), v_2))] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2))] [visit_exp c_2*{c_2 <- `c_2*`}] [scope_enter c_2] [visit_exp c_2] @@ -39933,21 +34529,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] no dims [visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M)), v_2)] -[visit_exp `%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))] -[visit_exp lanetype#1863] -[visit_id lanetype#1863] -[visit_exp dim#1863] -[visit_id dim#1863] -[visit_exp i#15084] -[visit_id i#15084] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))] +[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#15091}(M)] -[visit_exp i#15091] -[visit_id i#15091] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -39999,25 +34587,17 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_2*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvbinop_{lanetype#1827 : lanetype, dim#1827 : dim, i#14990 : nat, Fnn : Fnn, i#14997 : nat, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `dim#1893*` : dim*, `i#15183*` : nat*, `i#15190*` : nat*, `lanetype#1893*` : lanetype*, lanetype#1839 : lanetype, dim#1839 : dim, i#15026 : nat, i#15033 : nat, lanetype#1863 : lanetype, dim#1863 : dim, i#15084 : nat, i#15091 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))*}(`%X%`_shape{lanetype#1827, dim#1827, i#14990}((Fnn : Fnn <: lanetype), `%`_dim{i#14997}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1893 <- `dim#1893*`, i#15183 <- `i#15183*`, i#15190 <- `i#15190*`, lanetype#1893 <- `lanetype#1893*`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M)), v_2)) + def $fvbinop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})) -[check_dims] Jnn M c c_1 c_2 c_3 dim#1916 dim#1928 dim#1953 dim#1978 dim#2018 i#15228 i#15235 i#15276 i#15283 i#15362 i#15369 i#15448 i#15455 i#15890 i#15897 lanetype#1916 lanetype#1928 lanetype#1953 lanetype#1978 lanetype#2018 v_1 v_2 v_3 -[visit_exp `%X%`_shape{lanetype#1916, dim#1916, i#15228}((Jnn : Jnn <: lanetype), `%`_dim{i#15235}(M))] -[visit_exp lanetype#1916] -[visit_id lanetype#1916] -[visit_exp dim#1916] -[visit_id dim#1916] -[visit_exp i#15228] -[visit_id i#15228] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#15235}(M))] +[check_dims] Jnn M c c_1 c_2 c_3 v_1 v_2 v_3 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#15235}(M)] -[visit_exp i#15235] -[visit_id i#15235] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -40027,27 +34607,15 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id v_2] [visit_exp v_3] [visit_id v_3] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#2018 <- `dim#2018*`, i#15890 <- `i#15890*`, i#15897 <- `i#15897*`, lanetype#2018 <- `lanetype#2018*`}] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}] [scope_enter c*] -[scope_enter dim#2018] -[scope_enter i#15890] -[scope_enter i#15897] -[scope_enter lanetype#2018] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M))] -[visit_exp lanetype#2018] -[visit_id lanetype#2018] not free -[visit_exp dim#2018] -[visit_id dim#2018] not free -[visit_exp i#15890] -[visit_id i#15890] not free -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#15897}(M)] -[visit_exp i#15897] -[visit_id i#15897] not free +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -40062,31 +34630,11 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c*] no dims [visit_id c*] not free [visit_id c*] no dims -[visit_id dim#2018] not free -[visit_id i#15890] not free -[visit_id i#15897] not free -[visit_id lanetype#2018] not free -[scope_exit lanetype#2018] -[scope_exit i#15897] -[scope_exit i#15890] -[scope_exit dim#2018] [scope_exit c*] [visit_exp `c**`] [visit_id c**] no dims [visit_id c**] -[visit_exp `dim#2018*`] -[visit_id dim#2018*] no dims -[visit_id dim#2018*] -[visit_exp `i#15890*`] -[visit_id i#15890*] no dims -[visit_id i#15890*] -[visit_exp `i#15897*`] -[visit_id i#15897*] no dims -[visit_id i#15897*] -[visit_exp `lanetype#2018*`] -[visit_id lanetype#2018*] no dims -[visit_id lanetype#2018*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -40096,27 +34644,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))] -[visit_exp lanetype#1928] -[visit_id lanetype#1928] -[visit_exp dim#1928] -[visit_id dim#1928] -[visit_exp i#15276] -[visit_id i#15276] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#15283}(M)] -[visit_exp i#15283] -[visit_id i#15283] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M)), v_2))] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] [visit_exp c_2*{c_2 <- `c_2*`}] [scope_enter c_2] [visit_exp c_2] @@ -40126,27 +34666,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] no dims [visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M)), v_2)] -[visit_exp `%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))] -[visit_exp lanetype#1953] -[visit_id lanetype#1953] -[visit_exp dim#1953] -[visit_id dim#1953] -[visit_exp i#15362] -[visit_id i#15362] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#15369}(M)] -[visit_exp i#15369] -[visit_id i#15369] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_2] [visit_id v_2] not free -[visit_exp (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M)), v_3))] +[visit_exp (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_3))] [visit_exp c_3*{c_3 <- `c_3*`}] [scope_enter c_3] [visit_exp c_3] @@ -40156,21 +34688,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_3*`] [visit_id c_3*] no dims [visit_id c_3*] -[visit_exp $lanes_(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M)), v_3)] -[visit_exp `%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))] -[visit_exp lanetype#1978] -[visit_id lanetype#1978] -[visit_exp dim#1978] -[visit_id dim#1978] -[visit_exp i#15448] -[visit_id i#15448] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_3)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#15455}(M)] -[visit_exp i#15455] -[visit_id i#15455] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -40230,26 +34754,18 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_3*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivternopnd_{lanetype#1916 : lanetype, dim#1916 : dim, i#15228 : nat, Jnn : Jnn, i#15235 : nat, M : M, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `dim#2018*` : dim*, `i#15890*` : nat*, `i#15897*` : nat*, `lanetype#2018*` : lanetype*, lanetype#1928 : lanetype, dim#1928 : dim, i#15276 : nat, i#15283 : nat, lanetype#1953 : lanetype, dim#1953 : dim, i#15362 : nat, i#15369 : nat, lanetype#1978 : lanetype, dim#1978 : dim, i#15448 : nat, i#15455 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))*}(`%X%`_shape{lanetype#1916, dim#1916, i#15228}((Jnn : Jnn <: lanetype), `%`_dim{i#15235}(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#2018 <- `dim#2018*`, i#15890 <- `i#15890*`, i#15897 <- `i#15897*`, lanetype#2018 <- `lanetype#2018*`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M)), v_2)) - -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M)), v_3)) + def $ivternopnd_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) + -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_3)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})) -[check_dims] Fnn M c c_1 c_2 c_3 dim#2042 dim#2054 dim#2078 dim#2102 dim#2135 i#15961 i#15968 i#16009 i#16016 i#16067 i#16074 i#16125 i#16132 i#16233 i#16240 lanetype#2042 lanetype#2054 lanetype#2078 lanetype#2102 lanetype#2135 v_1 v_2 v_3 -[visit_exp `%X%`_shape{lanetype#2042, dim#2042, i#15961}((Fnn : Fnn <: lanetype), `%`_dim{i#15968}(M))] -[visit_exp lanetype#2042] -[visit_id lanetype#2042] -[visit_exp dim#2042] -[visit_id dim#2042] -[visit_exp i#15961] -[visit_id i#15961] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#15968}(M))] +[check_dims] Fnn M c c_1 c_2 c_3 v_1 v_2 v_3 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#15968}(M)] -[visit_exp i#15968] -[visit_id i#15968] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -40259,27 +34775,15 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id v_2] [visit_exp v_3] [visit_id v_3] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#2135 <- `dim#2135*`, i#16233 <- `i#16233*`, i#16240 <- `i#16240*`, lanetype#2135 <- `lanetype#2135*`}] +[visit_exp $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}] [scope_enter c*] -[scope_enter dim#2135] -[scope_enter i#16233] -[scope_enter i#16240] -[scope_enter lanetype#2135] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M))] -[visit_exp lanetype#2135] -[visit_id lanetype#2135] not free -[visit_exp dim#2135] -[visit_id dim#2135] not free -[visit_exp i#16233] -[visit_id i#16233] not free -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#16240}(M)] -[visit_exp i#16240] -[visit_id i#16240] not free +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -40294,31 +34798,11 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c*] no dims [visit_id c*] not free [visit_id c*] no dims -[visit_id dim#2135] not free -[visit_id i#16233] not free -[visit_id i#16240] not free -[visit_id lanetype#2135] not free -[scope_exit lanetype#2135] -[scope_exit i#16240] -[scope_exit i#16233] -[scope_exit dim#2135] [scope_exit c*] [visit_exp `c**`] [visit_id c**] no dims [visit_id c**] -[visit_exp `dim#2135*`] -[visit_id dim#2135*] no dims -[visit_id dim#2135*] -[visit_exp `i#16233*`] -[visit_id i#16233*] no dims -[visit_id i#16233*] -[visit_exp `i#16240*`] -[visit_id i#16240*] no dims -[visit_id i#16240*] -[visit_exp `lanetype#2135*`] -[visit_id lanetype#2135*] no dims -[visit_id lanetype#2135*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -40328,27 +34812,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))] -[visit_exp lanetype#2054] -[visit_id lanetype#2054] -[visit_exp dim#2054] -[visit_id dim#2054] -[visit_exp i#16009] -[visit_id i#16009] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))] +[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#16016}(M)] -[visit_exp i#16016] -[visit_id i#16016] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M)), v_2))] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2))] [visit_exp c_2*{c_2 <- `c_2*`}] [scope_enter c_2] [visit_exp c_2] @@ -40358,27 +34834,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] no dims [visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M)), v_2)] -[visit_exp `%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))] -[visit_exp lanetype#2078] -[visit_id lanetype#2078] -[visit_exp dim#2078] -[visit_id dim#2078] -[visit_exp i#16067] -[visit_id i#16067] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))] +[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#16074}(M)] -[visit_exp i#16074] -[visit_id i#16074] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_2] [visit_id v_2] not free -[visit_exp (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M)), v_3))] +[visit_exp (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_3))] [visit_exp c_3*{c_3 <- `c_3*`}] [scope_enter c_3] [visit_exp c_3] @@ -40388,21 +34856,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_3*`] [visit_id c_3*] no dims [visit_id c_3*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M)), v_3)] -[visit_exp `%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))] -[visit_exp lanetype#2102] -[visit_id lanetype#2102] -[visit_exp dim#2102] -[visit_id dim#2102] -[visit_exp i#16125] -[visit_id i#16125] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))] +[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_3)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#16132}(M)] -[visit_exp i#16132] -[visit_id i#16132] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -40462,26 +34922,18 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_3*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvternop_{lanetype#2042 : lanetype, dim#2042 : dim, i#15961 : nat, Fnn : Fnn, i#15968 : nat, M : M, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `dim#2135*` : dim*, `i#16233*` : nat*, `i#16240*` : nat*, `lanetype#2135*` : lanetype*, lanetype#2054 : lanetype, dim#2054 : dim, i#16009 : nat, i#16016 : nat, lanetype#2078 : lanetype, dim#2078 : dim, i#16067 : nat, i#16074 : nat, lanetype#2102 : lanetype, dim#2102 : dim, i#16125 : nat, i#16132 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))*}(`%X%`_shape{lanetype#2042, dim#2042, i#15961}((Fnn : Fnn <: lanetype), `%`_dim{i#15968}(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#2135 <- `dim#2135*`, i#16233 <- `i#16233*`, i#16240 <- `i#16240*`, lanetype#2135 <- `lanetype#2135*`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M)), v_2)) - -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M)), v_3)) + def $fvternop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) + -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_3)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})) -[check_dims] Jnn M c c_1 c_2 dim#2158 dim#2170 dim#2195 dim#2222 i#16278 i#16285 i#16314 i#16321 i#16400 i#16407 i#16555 i#16556 i#16597 i#16604 lanetype#2158 lanetype#2170 lanetype#2195 lanetype#2222 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#2158, dim#2158, i#16278}((Jnn : Jnn <: lanetype), `%`_dim{i#16285}(M))] -[visit_exp lanetype#2158] -[visit_id lanetype#2158] -[visit_exp dim#2158] -[visit_id dim#2158] -[visit_exp i#16278] -[visit_id i#16278] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16285}(M))] +[check_dims] Jnn M c c_1 c_2 v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#16285}(M)] -[visit_exp i#16285] -[visit_id i#16285] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -40489,21 +34941,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2222, dim#2222, i#16597}((Jnn : Jnn <: lanetype), `%`_dim{i#16604}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#2222, dim#2222, i#16597}((Jnn : Jnn <: lanetype), `%`_dim{i#16604}(M))] -[visit_exp lanetype#2222] -[visit_id lanetype#2222] -[visit_exp dim#2222] -[visit_id dim#2222] -[visit_exp i#16597] -[visit_id i#16597] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16604}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#16604}(M)] -[visit_exp i#16604] -[visit_id i#16604] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -40516,7 +34960,7 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -40526,27 +34970,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))] -[visit_exp lanetype#2170] -[visit_id lanetype#2170] -[visit_exp dim#2170] -[visit_id dim#2170] -[visit_exp i#16314] -[visit_id i#16314] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#16321}(M)] -[visit_exp i#16321] -[visit_id i#16321] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M)), v_2))] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] [visit_exp c_2*{c_2 <- `c_2*`}] [scope_enter c_2] [visit_exp c_2] @@ -40556,27 +34992,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] no dims [visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M)), v_2)] -[visit_exp `%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))] -[visit_exp lanetype#2195] -[visit_id lanetype#2195] -[visit_exp dim#2195] -[visit_id dim#2195] -[visit_exp i#16400] -[visit_id i#16400] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#16407}(M)] -[visit_exp i#16407] -[visit_id i#16407] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_2] [visit_id v_2] not free -[visit_exp (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16556}($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16555 <- `i#16555*`, i#16556 <- `i#16556*`})] +[visit_exp (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`})] [visit_exp c*{c <- `c*`}] [scope_enter c] [visit_exp c] @@ -40586,12 +35014,10 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c*`] [visit_id c*] not free [visit_id c*] no dims -[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16556}($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16555 <- `i#16555*`, i#16556 <- `i#16556*`}] +[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}] [scope_enter c_1] [scope_enter c_2] -[scope_enter i#16555] -[scope_enter i#16556] -[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16556}($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0))] +[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0))] [visit_exp 1] [visit_exp $lsizenn((Jnn : Jnn <: lanetype))] [visit_exp (Jnn : Jnn <: lanetype)] @@ -40599,12 +35025,10 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id Jnn] not free [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_iN{i#16556}($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0)] -[visit_exp i#16556] -[visit_id i#16556] not free -[visit_exp ($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0)] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}] +[visit_exp `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0)] +[visit_exp ($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0)] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32] [visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)] [visit_exp $lsizenn((Jnn : Jnn <: lanetype))] [visit_exp (Jnn : Jnn <: lanetype)] @@ -40614,14 +35038,8 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_1] not free [visit_exp c_2] [visit_id c_2] not free -[visit_exp i#16555] -[visit_id i#16555] not free [visit_id c_1] not free [visit_id c_2] not free -[visit_id i#16555] not free -[visit_id i#16556] not free -[scope_exit i#16556] -[scope_exit i#16555] [scope_exit c_2] [scope_exit c_1] [visit_exp `c_1*`] @@ -40630,33 +35048,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] not free [visit_id c_2*] no dims -[visit_exp `i#16555*`] -[visit_id i#16555*] no dims -[visit_id i#16555*] -[visit_exp `i#16556*`] -[visit_id i#16556*] no dims -[visit_id i#16556*] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivrelop_{lanetype#2158 : lanetype, dim#2158 : dim, i#16278 : nat, Jnn : Jnn, i#16285 : nat, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2222 : lanetype, dim#2222 : dim, i#16597 : nat, i#16604 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2170 : lanetype, dim#2170 : dim, i#16314 : nat, i#16321 : nat, lanetype#2195 : lanetype, dim#2195 : dim, i#16400 : nat, i#16407 : nat, `i#16555*` : nat*, `i#16556*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))*}(`%X%`_shape{lanetype#2158, dim#2158, i#16278}((Jnn : Jnn <: lanetype), `%`_dim{i#16285}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2222, dim#2222, i#16597}((Jnn : Jnn <: lanetype), `%`_dim{i#16604}(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16556}($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16555 <- `i#16555*`, i#16556 <- `i#16556*`}) -[check_dims] Jnn M c c_1 c_2 dim#2246 dim#2258 dim#2283 dim#2310 i#16670 i#16677 i#16706 i#16713 i#16792 i#16799 i#16947 i#16948 i#16989 i#16996 lanetype#2246 lanetype#2258 lanetype#2283 lanetype#2310 sx v_1 v_2 -[visit_exp `%X%`_shape{lanetype#2246, dim#2246, i#16670}((Jnn : Jnn <: lanetype), `%`_dim{i#16677}(M))] -[visit_exp lanetype#2246] -[visit_id lanetype#2246] -[visit_exp dim#2246] -[visit_id dim#2246] -[visit_exp i#16670] -[visit_id i#16670] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16677}(M))] + def $ivrelop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) + -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) +[check_dims] Jnn M c c_1 c_2 sx v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#16677}(M)] -[visit_exp i#16677] -[visit_id i#16677] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -40666,21 +35070,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2310, dim#2310, i#16989}((Jnn : Jnn <: lanetype), `%`_dim{i#16996}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#2310, dim#2310, i#16989}((Jnn : Jnn <: lanetype), `%`_dim{i#16996}(M))] -[visit_exp lanetype#2310] -[visit_id lanetype#2310] -[visit_exp dim#2310] -[visit_id dim#2310] -[visit_exp i#16989] -[visit_id i#16989] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16996}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#16996}(M)] -[visit_exp i#16996] -[visit_id i#16996] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -40693,7 +35089,7 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -40703,27 +35099,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))] -[visit_exp lanetype#2258] -[visit_id lanetype#2258] -[visit_exp dim#2258] -[visit_id dim#2258] -[visit_exp i#16706] -[visit_id i#16706] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#16713}(M)] -[visit_exp i#16713] -[visit_id i#16713] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M)), v_2))] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] [visit_exp c_2*{c_2 <- `c_2*`}] [scope_enter c_2] [visit_exp c_2] @@ -40733,27 +35121,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] no dims [visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M)), v_2)] -[visit_exp `%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))] -[visit_exp lanetype#2283] -[visit_id lanetype#2283] -[visit_exp dim#2283] -[visit_id dim#2283] -[visit_exp i#16792] -[visit_id i#16792] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#16799}(M)] -[visit_exp i#16799] -[visit_id i#16799] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_2] [visit_id v_2] not free -[visit_exp (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16948}($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16947 <- `i#16947*`, i#16948 <- `i#16948*`})] +[visit_exp (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`})] [visit_exp c*{c <- `c*`}] [scope_enter c] [visit_exp c] @@ -40763,12 +35143,10 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c*`] [visit_id c*] not free [visit_id c*] no dims -[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16948}($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16947 <- `i#16947*`, i#16948 <- `i#16948*`}] +[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}] [scope_enter c_1] [scope_enter c_2] -[scope_enter i#16947] -[scope_enter i#16948] -[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16948}($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0))] +[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0))] [visit_exp 1] [visit_exp $lsizenn((Jnn : Jnn <: lanetype))] [visit_exp (Jnn : Jnn <: lanetype)] @@ -40776,12 +35154,10 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id Jnn] not free [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_iN{i#16948}($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0)] -[visit_exp i#16948] -[visit_id i#16948] not free -[visit_exp ($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0)] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}] +[visit_exp `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0)] +[visit_exp ($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0)] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0] +[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32] [visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)] [visit_exp $lsizenn((Jnn : Jnn <: lanetype))] [visit_exp (Jnn : Jnn <: lanetype)] @@ -40793,14 +35169,8 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_1] not free [visit_exp c_2] [visit_id c_2] not free -[visit_exp i#16947] -[visit_id i#16947] not free [visit_id c_1] not free [visit_id c_2] not free -[visit_id i#16947] not free -[visit_id i#16948] not free -[scope_exit i#16948] -[scope_exit i#16947] [scope_exit c_2] [scope_exit c_1] [visit_exp `c_1*`] @@ -40809,33 +35179,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] not free [visit_id c_2*] no dims -[visit_exp `i#16947*`] -[visit_id i#16947*] no dims -[visit_id i#16947*] -[visit_exp `i#16948*`] -[visit_id i#16948*] no dims -[visit_id i#16948*] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivrelopsx_{lanetype#2246 : lanetype, dim#2246 : dim, i#16670 : nat, Jnn : Jnn, i#16677 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2310 : lanetype, dim#2310 : dim, i#16989 : nat, i#16996 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2258 : lanetype, dim#2258 : dim, i#16706 : nat, i#16713 : nat, lanetype#2283 : lanetype, dim#2283 : dim, i#16792 : nat, i#16799 : nat, `i#16947*` : nat*, `i#16948*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))*}(`%X%`_shape{lanetype#2246, dim#2246, i#16670}((Jnn : Jnn <: lanetype), `%`_dim{i#16677}(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2310, dim#2310, i#16989}((Jnn : Jnn <: lanetype), `%`_dim{i#16996}(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16948}($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16947 <- `i#16947*`, i#16948 <- `i#16948*`}) -[check_dims] Fnn Inn M c c_1 c_2 dim#2334 dim#2346 dim#2370 dim#2396 i#17062 i#17069 i#17098 i#17105 i#17156 i#17163 i#17259 i#17260 i#17301 i#17308 i#17404 i#17405 lanetype#2334 lanetype#2346 lanetype#2370 lanetype#2396 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#2334, dim#2334, i#17062}((Fnn : Fnn <: lanetype), `%`_dim{i#17069}(M))] -[visit_exp lanetype#2334] -[visit_id lanetype#2334] -[visit_exp dim#2334] -[visit_id dim#2334] -[visit_exp i#17062] -[visit_id i#17062] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#17069}(M))] + def $ivrelopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) + -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) +[check_dims] Fnn Inn M c c_1 c_2 v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#17069}(M)] -[visit_exp i#17069] -[visit_id i#17069] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -40843,54 +35199,30 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2396, dim#2396, i#17301}((Inn : Inn <: lanetype), `%`_dim{i#17308}(M)), `%`_lane_{i#17405}(c!`%`_iN{i#17404}.0)*{c <- `c*`, i#17404 <- `i#17404*`, i#17405 <- `i#17405*`})] -[visit_exp `%X%`_shape{lanetype#2396, dim#2396, i#17301}((Inn : Inn <: lanetype), `%`_dim{i#17308}(M))] -[visit_exp lanetype#2396] -[visit_id lanetype#2396] -[visit_exp dim#2396] -[visit_id dim#2396] -[visit_exp i#17301] -[visit_id i#17301] -[visit_exp ((Inn : Inn <: lanetype), `%`_dim{i#17308}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Inn : Inn <: lanetype), `%`_dim(M)), `%`_lane_(c!`%`_iN.0)*{c <- `c*`})] +[visit_exp `%X%`_shape((Inn : Inn <: lanetype), `%`_dim(M))] +[visit_exp ((Inn : Inn <: lanetype), `%`_dim(M))] [visit_exp (Inn : Inn <: lanetype)] [visit_exp Inn] [visit_id Inn] -[visit_exp `%`_dim{i#17308}(M)] -[visit_exp i#17308] -[visit_id i#17308] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free -[visit_exp `%`_lane_{i#17405}(c!`%`_iN{i#17404}.0)*{c <- `c*`, i#17404 <- `i#17404*`, i#17405 <- `i#17405*`}] +[visit_exp `%`_lane_(c!`%`_iN.0)*{c <- `c*`}] [scope_enter c] -[scope_enter i#17404] -[scope_enter i#17405] -[visit_exp `%`_lane_{i#17405}(c!`%`_iN{i#17404}.0)] -[visit_exp i#17405] -[visit_id i#17405] not free -[visit_exp (c!`%`_iN{i#17404}.0)] -[visit_exp c!`%`_iN{i#17404}.0] -[visit_exp c!`%`_iN{i#17404}] +[visit_exp `%`_lane_(c!`%`_iN.0)] +[visit_exp (c!`%`_iN.0)] +[visit_exp c!`%`_iN.0] +[visit_exp c!`%`_iN] [visit_exp c] [visit_id c] not free -[visit_exp i#17404] -[visit_id i#17404] not free [visit_id c] not free -[visit_id i#17404] not free -[visit_id i#17405] not free -[scope_exit i#17405] -[scope_exit i#17404] [scope_exit c] [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp `i#17404*`] -[visit_id i#17404*] no dims -[visit_id i#17404*] -[visit_exp `i#17405*`] -[visit_id i#17405*] no dims -[visit_id i#17405*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -40900,27 +35232,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))] -[visit_exp lanetype#2346] -[visit_id lanetype#2346] -[visit_exp dim#2346] -[visit_id dim#2346] -[visit_exp i#17098] -[visit_id i#17098] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))] +[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#17105}(M)] -[visit_exp i#17105] -[visit_id i#17105] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M)), v_2))] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2))] [visit_exp c_2*{c_2 <- `c_2*`}] [scope_enter c_2] [visit_exp c_2] @@ -40930,27 +35254,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] no dims [visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M)), v_2)] -[visit_exp `%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))] -[visit_exp lanetype#2370] -[visit_id lanetype#2370] -[visit_exp dim#2370] -[visit_id dim#2370] -[visit_exp i#17156] -[visit_id i#17156] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))] +[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#17163}(M)] -[visit_exp i#17163] -[visit_id i#17163] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_2] [visit_id v_2] not free -[visit_exp (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN{i#17260}($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#17259 <- `i#17259*`, i#17260 <- `i#17260*`})] +[visit_exp (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`})] [visit_exp c*{c <- `c*`}] [scope_enter c] [visit_exp c] @@ -40960,12 +35276,10 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c*`] [visit_id c*] not free [visit_id c*] no dims -[visit_exp $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN{i#17260}($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#17259 <- `i#17259*`, i#17260 <- `i#17260*`}] +[visit_exp $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}] [scope_enter c_1] [scope_enter c_2] -[scope_enter i#17259] -[scope_enter i#17260] -[visit_exp $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN{i#17260}($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0))] +[visit_exp $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0))] [visit_exp 1] [visit_exp $sizenn((Fnn : Fnn <: numtype))] [visit_exp (Fnn : Fnn <: numtype)] @@ -40973,12 +35287,10 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id Fnn] not free [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_iN{i#17260}($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0)] -[visit_exp i#17260] -[visit_id i#17260] not free -[visit_exp ($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0)] -[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0] -[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}] +[visit_exp `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0)] +[visit_exp ($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0)] +[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0] +[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32] [visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)] [visit_exp $sizenn((Fnn : Fnn <: numtype))] [visit_exp (Fnn : Fnn <: numtype)] @@ -40988,14 +35300,8 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_1] not free [visit_exp c_2] [visit_id c_2] not free -[visit_exp i#17259] -[visit_id i#17259] not free [visit_id c_1] not free [visit_id c_2] not free -[visit_id i#17259] not free -[visit_id i#17260] not free -[scope_exit i#17260] -[scope_exit i#17259] [scope_exit c_2] [scope_exit c_1] [visit_exp `c_1*`] @@ -41004,12 +35310,6 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] not free [visit_id c_2*] no dims -[visit_exp `i#17259*`] -[visit_id i#17259*] no dims -[visit_id i#17259*] -[visit_exp `i#17260*`] -[visit_id i#17260*] no dims -[visit_id i#17260*] [visit_exp ($isize(Inn) = $fsize(Fnn))] [visit_exp $isize(Inn)] [visit_exp Inn] @@ -41019,26 +35319,18 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id Fnn] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvrelop_{lanetype#2334 : lanetype, dim#2334 : dim, i#17062 : nat, Fnn : Fnn, i#17069 : nat, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2396 : lanetype, dim#2396 : dim, i#17301 : nat, Inn : Inn, i#17308 : nat, `c*` : iN($sizenn((Fnn : Fnn <: numtype)))*, `i#17404*` : nat*, `i#17405*` : nat*, lanetype#2346 : lanetype, dim#2346 : dim, i#17098 : nat, i#17105 : nat, lanetype#2370 : lanetype, dim#2370 : dim, i#17156 : nat, i#17163 : nat, `i#17259*` : nat*, `i#17260*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))*}(`%X%`_shape{lanetype#2334, dim#2334, i#17062}((Fnn : Fnn <: lanetype), `%`_dim{i#17069}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2396, dim#2396, i#17301}((Inn : Inn <: lanetype), `%`_dim{i#17308}(M)), `%`_lane_{i#17405}(c!`%`_iN{i#17404}.0)*{c <- `c*`, i#17404 <- `i#17404*`, i#17405 <- `i#17405*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN{i#17260}($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#17259 <- `i#17259*`, i#17260 <- `i#17260*`}) + def $fvrelop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), Inn : Inn, `c*` : iN($sizenn((Fnn : Fnn <: numtype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Inn : Inn <: lanetype), `%`_dim(M)), `%`_lane_(c!`%`_iN.0)*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) + -- if (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) -- if ($isize(Inn) = $fsize(Fnn)) -[check_dims] Jnn M c c_1 dim#2421 dim#2433 dim#2459 i i#17411 i#17418 i#17447 i#17454 i#17593 i#17600 lanetype#2421 lanetype#2433 lanetype#2459 v_1 -[visit_exp `%X%`_shape{lanetype#2421, dim#2421, i#17411}((Jnn : Jnn <: lanetype), `%`_dim{i#17418}(M))] -[visit_exp lanetype#2421] -[visit_id lanetype#2421] -[visit_exp dim#2421] -[visit_id dim#2421] -[visit_exp i#17411] -[visit_id i#17411] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17418}(M))] +[check_dims] Jnn M c c_1 i v_1 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#17418}(M)] -[visit_exp i#17418] -[visit_id i#17418] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -41046,21 +35338,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id v_1] [visit_exp i] [visit_id i] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2459, dim#2459, i#17593}((Jnn : Jnn <: lanetype), `%`_dim{i#17600}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#2459, dim#2459, i#17593}((Jnn : Jnn <: lanetype), `%`_dim{i#17600}(M))] -[visit_exp lanetype#2459] -[visit_id lanetype#2459] -[visit_exp dim#2459] -[visit_id dim#2459] -[visit_exp i#17593] -[visit_id i#17593] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17600}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#17600}(M)] -[visit_exp i#17600] -[visit_id i#17600] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -41073,7 +35357,7 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -41083,21 +35367,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))] -[visit_exp lanetype#2433] -[visit_id lanetype#2433] -[visit_exp dim#2433] -[visit_id dim#2433] -[visit_exp i#17447] -[visit_id i#17447] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#17454}(M)] -[visit_exp i#17454] -[visit_id i#17454] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -41131,24 +35407,16 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_1*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshiftop_{lanetype#2421 : lanetype, dim#2421 : dim, i#17411 : nat, Jnn : Jnn, i#17418 : nat, M : M, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), v_1 : vec_(`V128`_Vnn), i : u32, lanetype#2459 : lanetype, dim#2459 : dim, i#17593 : nat, i#17600 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2433 : lanetype, dim#2433 : dim, i#17447 : nat, i#17454 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))*}(`%X%`_shape{lanetype#2421, dim#2421, i#17411}((Jnn : Jnn <: lanetype), `%`_dim{i#17418}(M)), def $f_, v_1, i) = $inv_lanes_(`%X%`_shape{lanetype#2459, dim#2459, i#17593}((Jnn : Jnn <: lanetype), `%`_dim{i#17600}(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M)), v_1)) + def $ivshiftop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), v_1 : vec_(`V128`_Vnn), i : u32, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, i) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, i)*{c_1 <- `c_1*`}) -[check_dims] Jnn M c c_1 dim#2483 dim#2495 dim#2521 i i#17666 i#17673 i#17702 i#17709 i#17848 i#17855 lanetype#2483 lanetype#2495 lanetype#2521 sx v_1 -[visit_exp `%X%`_shape{lanetype#2483, dim#2483, i#17666}((Jnn : Jnn <: lanetype), `%`_dim{i#17673}(M))] -[visit_exp lanetype#2483] -[visit_id lanetype#2483] -[visit_exp dim#2483] -[visit_id dim#2483] -[visit_exp i#17666] -[visit_id i#17666] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17673}(M))] +[check_dims] Jnn M c c_1 i sx v_1 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#17673}(M)] -[visit_exp i#17673] -[visit_id i#17673] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -41158,21 +35426,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id v_1] [visit_exp i] [visit_id i] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2521, dim#2521, i#17848}((Jnn : Jnn <: lanetype), `%`_dim{i#17855}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#2521, dim#2521, i#17848}((Jnn : Jnn <: lanetype), `%`_dim{i#17855}(M))] -[visit_exp lanetype#2521] -[visit_id lanetype#2521] -[visit_exp dim#2521] -[visit_id dim#2521] -[visit_exp i#17848] -[visit_id i#17848] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17855}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#17855}(M)] -[visit_exp i#17855] -[visit_id i#17855] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -41185,7 +35445,7 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -41195,21 +35455,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))] -[visit_exp lanetype#2495] -[visit_id lanetype#2495] -[visit_exp dim#2495] -[visit_id dim#2495] -[visit_exp i#17702] -[visit_id i#17702] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#17709}(M)] -[visit_exp i#17709] -[visit_id i#17709] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -41245,24 +35497,16 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_1*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshiftopsx_{lanetype#2483 : lanetype, dim#2483 : dim, i#17666 : nat, Jnn : Jnn, i#17673 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), i : u32, lanetype#2521 : lanetype, dim#2521 : dim, i#17848 : nat, i#17855 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2495 : lanetype, dim#2495 : dim, i#17702 : nat, i#17709 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))*}(`%X%`_shape{lanetype#2483, dim#2483, i#17666}((Jnn : Jnn <: lanetype), `%`_dim{i#17673}(M)), def $f_, sx, v_1, i) = $inv_lanes_(`%X%`_shape{lanetype#2521, dim#2521, i#17848}((Jnn : Jnn <: lanetype), `%`_dim{i#17855}(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M)), v_1)) + def $ivshiftopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), i : u32, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, i) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, i)*{c_1 <- `c_1*`}) -[check_dims] Jnn M c c_1 dim#2545 dim#2557 i#17921 i#17928 i#17945 i#17952 i#18238 i#18256 i#18257 i#18272 lanetype#2545 lanetype#2557 v_1 -[visit_exp `%X%`_shape{lanetype#2545, dim#2545, i#17921}((Jnn : Jnn <: lanetype), `%`_dim{i#17928}(M))] -[visit_exp lanetype#2545] -[visit_id lanetype#2545] -[visit_exp dim#2545] -[visit_id dim#2545] -[visit_exp i#17921] -[visit_id i#17921] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17928}(M))] +[check_dims] Jnn M c c_1 v_1 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#17928}(M)] -[visit_exp i#17928] -[visit_id i#17928] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -41272,7 +35516,7 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp 32] [visit_exp c] [visit_id c] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -41282,44 +35526,31 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))] -[visit_exp lanetype#2557] -[visit_id lanetype#2557] -[visit_exp dim#2557] -[visit_id dim#2557] -[visit_exp i#17945] -[visit_id i#17945] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#17952}(M)] -[visit_exp i#17952] -[visit_id i#17952] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp ($ibits_(32, c) = `%`_bit{i#18257}($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)*{c_1 <- `c_1*`, i#18238 <- `i#18238*`, i#18256 <- `i#18256*`, i#18257 <- `i#18257*`} ++ `%`_bit{i#18272}(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){i#18272 <- `i#18272*`})] +[visit_exp ($ibits_(32, c) = `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)*{c_1 <- `c_1*`} ++ `%`_bit(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){})] [visit_exp $ibits_(32, c)] [visit_exp 32] [visit_exp c] [visit_id c] not free -[visit_exp `%`_bit{i#18257}($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)*{c_1 <- `c_1*`, i#18238 <- `i#18238*`, i#18256 <- `i#18256*`, i#18257 <- `i#18257*`} ++ `%`_bit{i#18272}(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){i#18272 <- `i#18272*`}] -[visit_exp `%`_bit{i#18257}($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)*{c_1 <- `c_1*`, i#18238 <- `i#18238*`, i#18256 <- `i#18256*`, i#18257 <- `i#18257*`}] +[visit_exp `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)*{c_1 <- `c_1*`} ++ `%`_bit(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){}] +[visit_exp `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)*{c_1 <- `c_1*`}] [scope_enter c_1] -[scope_enter i#18238] -[scope_enter i#18256] -[scope_enter i#18257] -[visit_exp `%`_bit{i#18257}($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)] -[visit_exp i#18257] -[visit_id i#18257] not free -[visit_exp ($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)] -[visit_exp $ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0] -[visit_exp $ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}] -[visit_exp $ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))] +[visit_exp `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)] +[visit_exp ($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)] +[visit_exp $ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0] +[visit_exp $ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32] +[visit_exp $ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))] [visit_exp $lsizenn((Jnn : Jnn <: lanetype))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] @@ -41328,42 +35559,18 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp ()] [visit_exp c_1] [visit_id c_1] not free -[visit_exp `%`_iN{i#18238}(0)] -[visit_exp i#18238] -[visit_id i#18238] not free +[visit_exp `%`_iN(0)] [visit_exp (0)] [visit_exp 0] -[visit_exp i#18256] -[visit_id i#18256] not free [visit_id c_1] not free -[visit_id i#18238] not free -[visit_id i#18256] not free -[visit_id i#18257] not free -[scope_exit i#18257] -[scope_exit i#18256] -[scope_exit i#18238] [scope_exit c_1] [visit_exp `c_1*`] [visit_id c_1*] not free [visit_id c_1*] no dims -[visit_exp `i#18238*`] -[visit_id i#18238*] no dims -[visit_id i#18238*] -[visit_exp `i#18256*`] -[visit_id i#18256*] no dims -[visit_id i#18256*] -[visit_exp `i#18257*`] -[visit_id i#18257*] no dims -[visit_id i#18257*] -[visit_exp `%`_bit{i#18272}(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){i#18272 <- `i#18272*`}] -[scope_enter i#18272] -[visit_exp `%`_bit{i#18272}(0)] -[visit_exp i#18272] -[visit_id i#18272] not free +[visit_exp `%`_bit(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){}] +[visit_exp `%`_bit(0)] [visit_exp (0)] [visit_exp 0] -[visit_id i#18272] not free -[scope_exit i#18272] [visit_exp (((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat)] [visit_exp ((32 : nat <:> int) - (M : nat <:> int))] [visit_exp (32 : nat <:> int)] @@ -41371,29 +35578,18 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp (M : nat <:> int)] [visit_exp M] [visit_id M] not free -[visit_exp `i#18272*`] -[visit_id i#18272*] no dims -[visit_id i#18272*] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbitmaskop_{lanetype#2545 : lanetype, dim#2545 : dim, i#17921 : nat, Jnn : Jnn, i#17928 : nat, M : M, v_1 : vec_(`V128`_Vnn), c : iN(32), lanetype#2557 : lanetype, dim#2557 : dim, i#17945 : nat, i#17952 : nat, `i#18238*` : nat*, `i#18256*` : nat*, `i#18257*` : nat*, `i#18272*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))*}(`%X%`_shape{lanetype#2545, dim#2545, i#17921}((Jnn : Jnn <: lanetype), `%`_dim{i#17928}(M)), v_1) = $irev_(32, c) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M)), v_1)) - -- if ($ibits_(32, c) = `%`_bit{i#18257}($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)*{c_1 <- `c_1*`, i#18238 <- `i#18238*`, i#18256 <- `i#18256*`, i#18257 <- `i#18257*`} ++ `%`_bit{i#18272}(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){i#18272 <- `i#18272*`}) -[check_dims] Jnn M c c_1 c_2 dim#2584 dim#2596 dim#2621 dim#2648 i#18299 i#18306 i#18335 i#18342 i#18421 i#18428 i#18585 i#18592 lanetype#2584 lanetype#2596 lanetype#2621 lanetype#2648 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#2584, dim#2584, i#18299}((Jnn : Jnn <: lanetype), `%`_dim{i#18306}(M))] -[visit_exp lanetype#2584] -[visit_id lanetype#2584] -[visit_exp dim#2584] -[visit_id dim#2584] -[visit_exp i#18299] -[visit_id i#18299] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18306}(M))] + def $ivbitmaskop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), c : iN(32), `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1) = $irev_(32, c) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if ($ibits_(32, c) = `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)*{c_1 <- `c_1*`} ++ `%`_bit(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){}) +[check_dims] Jnn M c c_1 c_2 v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#18306}(M)] -[visit_exp i#18306] -[visit_id i#18306] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -41401,21 +35597,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2648, dim#2648, i#18585}((Jnn : Jnn <: lanetype), `%`_dim{i#18592}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#2648, dim#2648, i#18585}((Jnn : Jnn <: lanetype), `%`_dim{i#18592}(M))] -[visit_exp lanetype#2648] -[visit_id lanetype#2648] -[visit_exp dim#2648] -[visit_id dim#2648] -[visit_exp i#18585] -[visit_id i#18585] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18592}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#18592}(M)] -[visit_exp i#18592] -[visit_id i#18592] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -41428,7 +35616,7 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -41438,27 +35626,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))] -[visit_exp lanetype#2596] -[visit_id lanetype#2596] -[visit_exp dim#2596] -[visit_id dim#2596] -[visit_exp i#18335] -[visit_id i#18335] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#18342}(M)] -[visit_exp i#18342] -[visit_id i#18342] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M)), v_2))] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] [visit_exp c_2*{c_2 <- `c_2*`}] [scope_enter c_2] [visit_exp c_2] @@ -41468,21 +35648,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] no dims [visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M)), v_2)] -[visit_exp `%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))] -[visit_exp lanetype#2621] -[visit_id lanetype#2621] -[visit_exp dim#2621] -[visit_id dim#2621] -[visit_exp i#18421] -[visit_id i#18421] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#18428}(M)] -[visit_exp i#18428] -[visit_id i#18428] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -41523,25 +35695,17 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id c_2*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivswizzlop_{lanetype#2584 : lanetype, dim#2584 : dim, i#18299 : nat, Jnn : Jnn, i#18306 : nat, M : M, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2648 : lanetype, dim#2648 : dim, i#18585 : nat, i#18592 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2596 : lanetype, dim#2596 : dim, i#18335 : nat, i#18342 : nat, lanetype#2621 : lanetype, dim#2621 : dim, i#18421 : nat, i#18428 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))*}(`%X%`_shape{lanetype#2584, dim#2584, i#18299}((Jnn : Jnn <: lanetype), `%`_dim{i#18306}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2648, dim#2648, i#18585}((Jnn : Jnn <: lanetype), `%`_dim{i#18592}(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M)), v_2)) + def $ivswizzlop_{Jnn : Jnn, M : M, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1*{c_1 <- `c_1*`}, c_2)*{c_2 <- `c_2*`}) -[check_dims] Jnn M c c_1 c_2 dim#2672 dim#2684 dim#2709 dim#2760 i i#18658 i#18665 i#18719 i#18726 i#18805 i#18812 i#18958 i#19037 i#19044 lanetype#2672 lanetype#2684 lanetype#2709 lanetype#2760 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#2672, dim#2672, i#18658}((Jnn : Jnn <: lanetype), `%`_dim{i#18665}(M))] -[visit_exp lanetype#2672] -[visit_id lanetype#2672] -[visit_exp dim#2672] -[visit_id dim#2672] -[visit_exp i#18658] -[visit_id i#18658] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18665}(M))] +[check_dims] Jnn M c c_1 c_2 i v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#18665}(M)] -[visit_exp i#18665] -[visit_id i#18665] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -41558,21 +35722,13 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#2760, dim#2760, i#19037}((Jnn : Jnn <: lanetype), `%`_dim{i#19044}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#2760, dim#2760, i#19037}((Jnn : Jnn <: lanetype), `%`_dim{i#19044}(M))] -[visit_exp lanetype#2760] -[visit_id lanetype#2760] -[visit_exp dim#2760] -[visit_id dim#2760] -[visit_exp i#19037] -[visit_id i#19037] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#19044}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#19044}(M)] -[visit_exp i#19044] -[visit_id i#19044] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -41585,7 +35741,7 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -41595,27 +35751,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))] -[visit_exp lanetype#2684] -[visit_id lanetype#2684] -[visit_exp dim#2684] -[visit_id dim#2684] -[visit_exp i#18719] -[visit_id i#18719] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#18726}(M)] -[visit_exp i#18726] -[visit_id i#18726] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M)), v_2))] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] [visit_exp c_2*{c_2 <- `c_2*`}] [scope_enter c_2] [visit_exp c_2] @@ -41625,27 +35773,19 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] no dims [visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M)), v_2)] -[visit_exp `%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))] -[visit_exp lanetype#2709] -[visit_id lanetype#2709] -[visit_exp dim#2709] -[visit_id dim#2709] -[visit_exp i#18805] -[visit_id i#18805] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#18812}(M)] -[visit_exp i#18812] -[visit_id i#18812] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_2] [visit_id v_2] not free -[visit_exp (c*{c <- `c*`} = c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx{i#18958}.0]*{i <- `i*`, i#18958 <- `i#18958*`})] +[visit_exp (c*{c <- `c*`} = c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx.0]*{i <- `i*`})] [visit_exp c*{c <- `c*`}] [scope_enter c] [visit_exp c] @@ -41655,10 +35795,9 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c*`] [visit_id c*] not free [visit_id c*] no dims -[visit_exp c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx{i#18958}.0]*{i <- `i*`, i#18958 <- `i#18958*`}] +[visit_exp c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx.0]*{i <- `i*`}] [scope_enter i] -[scope_enter i#18958] -[visit_exp c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx{i#18958}.0]] +[visit_exp c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx.0]] [visit_exp c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] @@ -41678,28 +35817,21 @@ DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` [visit_exp `c_2*`] [visit_id c_2*] not free [visit_id c_2*] no dims -[visit_exp i!`%`_laneidx{i#18958}.0] -[visit_exp i!`%`_laneidx{i#18958}] +[visit_exp i!`%`_laneidx.0] +[visit_exp i!`%`_laneidx] [visit_exp i] [visit_id i] not free -[visit_exp i#18958] -[visit_id i#18958] not free [visit_id i] not free -[visit_id i#18958] not free -[scope_exit i#18958] [scope_exit i] [visit_exp `i*`] [visit_id i*] not free [visit_id i*] no dims -[visit_exp `i#18958*`] -[visit_id i#18958*] no dims -[visit_id i#18958*] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshufflop_{lanetype#2672 : lanetype, dim#2672 : dim, i#18658 : nat, Jnn : Jnn, i#18665 : nat, M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2760 : lanetype, dim#2760 : dim, i#19037 : nat, i#19044 : nat, lanetype#2684 : lanetype, dim#2684 : dim, i#18719 : nat, i#18726 : nat, lanetype#2709 : lanetype, dim#2709 : dim, i#18805 : nat, i#18812 : nat, `i#18958*` : nat*, `c*` : lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))*}(`%X%`_shape{lanetype#2672, dim#2672, i#18658}((Jnn : Jnn <: lanetype), `%`_dim{i#18665}(M)), i*{i <- `i*`}, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2760, dim#2760, i#19037}((Jnn : Jnn <: lanetype), `%`_dim{i#19044}(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M)), v_2)) - -- if (c*{c <- `c*`} = c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx{i#18958}.0]*{i <- `i*`, i#18958 <- `i#18958*`}) + def $ivshufflop_{Jnn : Jnn, M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), i*{i <- `i*`}, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) + -- if (c*{c <- `c*`} = c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx.0]*{i <- `i*`}) [check_dims] vec_ vectype vvunop DecD vvunop_(vectype : vectype, vvunop : vvunop, vec_ : vec_(vectype)) : vec_(vectype)* [visit_id vectype] not free @@ -42056,21 +36188,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vvternop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn), v_3 : vec_(Vnn)}(Vnn, `BITSELECT`_vvternop, v_1, v_2, v_3) = [$ibitselect_($vsizenn(Vnn), v_1, v_2, v_3)] -[check_dims] Fnn M dim#2845 dim#2894 i#19491 i#19498 i#19593 i#19600 lanetype#2845 lanetype#2894 v -[visit_exp `%X%`_shape{lanetype#2845, dim#2845, i#19491}((Fnn : Fnn <: lanetype), `%`_dim{i#19498}(M))] -[visit_exp lanetype#2845] -[visit_id lanetype#2845] -[visit_exp dim#2845] -[visit_id dim#2845] -[visit_exp i#19491] -[visit_id i#19491] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19498}(M))] +[check_dims] Fnn M v +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#19498}(M)] -[visit_exp i#19498] -[visit_id i#19498] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42078,21 +36202,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp ()] [visit_exp v] [visit_id v] -[visit_exp $fvunop_(`%X%`_shape{lanetype#2894, dim#2894, i#19593}((Fnn : Fnn <: lanetype), `%`_dim{i#19600}(M)), def $fabs_, v)] -[visit_exp `%X%`_shape{lanetype#2894, dim#2894, i#19593}((Fnn : Fnn <: lanetype), `%`_dim{i#19600}(M))] -[visit_exp lanetype#2894] -[visit_id lanetype#2894] -[visit_exp dim#2894] -[visit_id dim#2894] -[visit_exp i#19593] -[visit_id i#19593] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19600}(M))] +[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fabs_, v)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#19600}(M)] -[visit_exp i#19600] -[visit_id i#19600] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42100,22 +36216,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#2845 : lanetype, dim#2845 : dim, i#19491 : nat, Fnn : Fnn, i#19498 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#2894 : lanetype, dim#2894 : dim, i#19593 : nat, i#19600 : nat}(`%X%`_shape{lanetype#2845, dim#2845, i#19491}((Fnn : Fnn <: lanetype), `%`_dim{i#19498}(M)), `ABS`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#2894, dim#2894, i#19593}((Fnn : Fnn <: lanetype), `%`_dim{i#19600}(M)), def $fabs_, v) -[check_dims] Fnn M dim#2906 dim#2955 i#19615 i#19622 i#19717 i#19724 lanetype#2906 lanetype#2955 v -[visit_exp `%X%`_shape{lanetype#2906, dim#2906, i#19615}((Fnn : Fnn <: lanetype), `%`_dim{i#19622}(M))] -[visit_exp lanetype#2906] -[visit_id lanetype#2906] -[visit_exp dim#2906] -[visit_id dim#2906] -[visit_exp i#19615] -[visit_id i#19615] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19622}(M))] + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `ABS`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fabs_, v) +[check_dims] Fnn M v +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#19622}(M)] -[visit_exp i#19622] -[visit_id i#19622] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42123,21 +36231,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp ()] [visit_exp v] [visit_id v] -[visit_exp $fvunop_(`%X%`_shape{lanetype#2955, dim#2955, i#19717}((Fnn : Fnn <: lanetype), `%`_dim{i#19724}(M)), def $fneg_, v)] -[visit_exp `%X%`_shape{lanetype#2955, dim#2955, i#19717}((Fnn : Fnn <: lanetype), `%`_dim{i#19724}(M))] -[visit_exp lanetype#2955] -[visit_id lanetype#2955] -[visit_exp dim#2955] -[visit_id dim#2955] -[visit_exp i#19717] -[visit_id i#19717] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19724}(M))] +[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fneg_, v)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#19724}(M)] -[visit_exp i#19724] -[visit_id i#19724] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42145,22 +36245,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#2906 : lanetype, dim#2906 : dim, i#19615 : nat, Fnn : Fnn, i#19622 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#2955 : lanetype, dim#2955 : dim, i#19717 : nat, i#19724 : nat}(`%X%`_shape{lanetype#2906, dim#2906, i#19615}((Fnn : Fnn <: lanetype), `%`_dim{i#19622}(M)), `NEG`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#2955, dim#2955, i#19717}((Fnn : Fnn <: lanetype), `%`_dim{i#19724}(M)), def $fneg_, v) -[check_dims] Fnn M dim#2967 dim#3016 i#19739 i#19746 i#19841 i#19848 lanetype#2967 lanetype#3016 v -[visit_exp `%X%`_shape{lanetype#2967, dim#2967, i#19739}((Fnn : Fnn <: lanetype), `%`_dim{i#19746}(M))] -[visit_exp lanetype#2967] -[visit_id lanetype#2967] -[visit_exp dim#2967] -[visit_id dim#2967] -[visit_exp i#19739] -[visit_id i#19739] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19746}(M))] + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `NEG`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fneg_, v) +[check_dims] Fnn M v +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#19746}(M)] -[visit_exp i#19746] -[visit_id i#19746] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42168,21 +36260,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp ()] [visit_exp v] [visit_id v] -[visit_exp $fvunop_(`%X%`_shape{lanetype#3016, dim#3016, i#19841}((Fnn : Fnn <: lanetype), `%`_dim{i#19848}(M)), def $fsqrt_, v)] -[visit_exp `%X%`_shape{lanetype#3016, dim#3016, i#19841}((Fnn : Fnn <: lanetype), `%`_dim{i#19848}(M))] -[visit_exp lanetype#3016] -[visit_id lanetype#3016] -[visit_exp dim#3016] -[visit_id dim#3016] -[visit_exp i#19841] -[visit_id i#19841] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19848}(M))] +[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsqrt_, v)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#19848}(M)] -[visit_exp i#19848] -[visit_id i#19848] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42190,22 +36274,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#2967 : lanetype, dim#2967 : dim, i#19739 : nat, Fnn : Fnn, i#19746 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3016 : lanetype, dim#3016 : dim, i#19841 : nat, i#19848 : nat}(`%X%`_shape{lanetype#2967, dim#2967, i#19739}((Fnn : Fnn <: lanetype), `%`_dim{i#19746}(M)), `SQRT`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3016, dim#3016, i#19841}((Fnn : Fnn <: lanetype), `%`_dim{i#19848}(M)), def $fsqrt_, v) -[check_dims] Fnn M dim#3028 dim#3077 i#19863 i#19870 i#19965 i#19972 lanetype#3028 lanetype#3077 v -[visit_exp `%X%`_shape{lanetype#3028, dim#3028, i#19863}((Fnn : Fnn <: lanetype), `%`_dim{i#19870}(M))] -[visit_exp lanetype#3028] -[visit_id lanetype#3028] -[visit_exp dim#3028] -[visit_id dim#3028] -[visit_exp i#19863] -[visit_id i#19863] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19870}(M))] + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `SQRT`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsqrt_, v) +[check_dims] Fnn M v +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#19870}(M)] -[visit_exp i#19870] -[visit_id i#19870] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42213,21 +36289,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp ()] [visit_exp v] [visit_id v] -[visit_exp $fvunop_(`%X%`_shape{lanetype#3077, dim#3077, i#19965}((Fnn : Fnn <: lanetype), `%`_dim{i#19972}(M)), def $fceil_, v)] -[visit_exp `%X%`_shape{lanetype#3077, dim#3077, i#19965}((Fnn : Fnn <: lanetype), `%`_dim{i#19972}(M))] -[visit_exp lanetype#3077] -[visit_id lanetype#3077] -[visit_exp dim#3077] -[visit_id dim#3077] -[visit_exp i#19965] -[visit_id i#19965] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19972}(M))] +[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fceil_, v)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#19972}(M)] -[visit_exp i#19972] -[visit_id i#19972] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42235,22 +36303,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3028 : lanetype, dim#3028 : dim, i#19863 : nat, Fnn : Fnn, i#19870 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3077 : lanetype, dim#3077 : dim, i#19965 : nat, i#19972 : nat}(`%X%`_shape{lanetype#3028, dim#3028, i#19863}((Fnn : Fnn <: lanetype), `%`_dim{i#19870}(M)), `CEIL`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3077, dim#3077, i#19965}((Fnn : Fnn <: lanetype), `%`_dim{i#19972}(M)), def $fceil_, v) -[check_dims] Fnn M dim#3089 dim#3138 i#19987 i#19994 i#20089 i#20096 lanetype#3089 lanetype#3138 v -[visit_exp `%X%`_shape{lanetype#3089, dim#3089, i#19987}((Fnn : Fnn <: lanetype), `%`_dim{i#19994}(M))] -[visit_exp lanetype#3089] -[visit_id lanetype#3089] -[visit_exp dim#3089] -[visit_id dim#3089] -[visit_exp i#19987] -[visit_id i#19987] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#19994}(M))] + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `CEIL`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fceil_, v) +[check_dims] Fnn M v +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#19994}(M)] -[visit_exp i#19994] -[visit_id i#19994] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42258,21 +36318,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp ()] [visit_exp v] [visit_id v] -[visit_exp $fvunop_(`%X%`_shape{lanetype#3138, dim#3138, i#20089}((Fnn : Fnn <: lanetype), `%`_dim{i#20096}(M)), def $ffloor_, v)] -[visit_exp `%X%`_shape{lanetype#3138, dim#3138, i#20089}((Fnn : Fnn <: lanetype), `%`_dim{i#20096}(M))] -[visit_exp lanetype#3138] -[visit_id lanetype#3138] -[visit_exp dim#3138] -[visit_id dim#3138] -[visit_exp i#20089] -[visit_id i#20089] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#20096}(M))] +[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ffloor_, v)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#20096}(M)] -[visit_exp i#20096] -[visit_id i#20096] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42280,22 +36332,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3089 : lanetype, dim#3089 : dim, i#19987 : nat, Fnn : Fnn, i#19994 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3138 : lanetype, dim#3138 : dim, i#20089 : nat, i#20096 : nat}(`%X%`_shape{lanetype#3089, dim#3089, i#19987}((Fnn : Fnn <: lanetype), `%`_dim{i#19994}(M)), `FLOOR`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3138, dim#3138, i#20089}((Fnn : Fnn <: lanetype), `%`_dim{i#20096}(M)), def $ffloor_, v) -[check_dims] Fnn M dim#3150 dim#3199 i#20111 i#20118 i#20213 i#20220 lanetype#3150 lanetype#3199 v -[visit_exp `%X%`_shape{lanetype#3150, dim#3150, i#20111}((Fnn : Fnn <: lanetype), `%`_dim{i#20118}(M))] -[visit_exp lanetype#3150] -[visit_id lanetype#3150] -[visit_exp dim#3150] -[visit_id dim#3150] -[visit_exp i#20111] -[visit_id i#20111] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#20118}(M))] + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `FLOOR`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ffloor_, v) +[check_dims] Fnn M v +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#20118}(M)] -[visit_exp i#20118] -[visit_id i#20118] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42303,21 +36347,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp ()] [visit_exp v] [visit_id v] -[visit_exp $fvunop_(`%X%`_shape{lanetype#3199, dim#3199, i#20213}((Fnn : Fnn <: lanetype), `%`_dim{i#20220}(M)), def $ftrunc_, v)] -[visit_exp `%X%`_shape{lanetype#3199, dim#3199, i#20213}((Fnn : Fnn <: lanetype), `%`_dim{i#20220}(M))] -[visit_exp lanetype#3199] -[visit_id lanetype#3199] -[visit_exp dim#3199] -[visit_id dim#3199] -[visit_exp i#20213] -[visit_id i#20213] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#20220}(M))] +[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ftrunc_, v)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#20220}(M)] -[visit_exp i#20220] -[visit_id i#20220] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42325,22 +36361,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3150 : lanetype, dim#3150 : dim, i#20111 : nat, Fnn : Fnn, i#20118 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3199 : lanetype, dim#3199 : dim, i#20213 : nat, i#20220 : nat}(`%X%`_shape{lanetype#3150, dim#3150, i#20111}((Fnn : Fnn <: lanetype), `%`_dim{i#20118}(M)), `TRUNC`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3199, dim#3199, i#20213}((Fnn : Fnn <: lanetype), `%`_dim{i#20220}(M)), def $ftrunc_, v) -[check_dims] Fnn M dim#3211 dim#3260 i#20235 i#20242 i#20337 i#20344 lanetype#3211 lanetype#3260 v -[visit_exp `%X%`_shape{lanetype#3211, dim#3211, i#20235}((Fnn : Fnn <: lanetype), `%`_dim{i#20242}(M))] -[visit_exp lanetype#3211] -[visit_id lanetype#3211] -[visit_exp dim#3211] -[visit_id dim#3211] -[visit_exp i#20235] -[visit_id i#20235] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#20242}(M))] + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `TRUNC`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ftrunc_, v) +[check_dims] Fnn M v +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#20242}(M)] -[visit_exp i#20242] -[visit_id i#20242] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42348,21 +36376,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp ()] [visit_exp v] [visit_id v] -[visit_exp $fvunop_(`%X%`_shape{lanetype#3260, dim#3260, i#20337}((Fnn : Fnn <: lanetype), `%`_dim{i#20344}(M)), def $fnearest_, v)] -[visit_exp `%X%`_shape{lanetype#3260, dim#3260, i#20337}((Fnn : Fnn <: lanetype), `%`_dim{i#20344}(M))] -[visit_exp lanetype#3260] -[visit_id lanetype#3260] -[visit_exp dim#3260] -[visit_id dim#3260] -[visit_exp i#20337] -[visit_id i#20337] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#20344}(M))] +[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fnearest_, v)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#20344}(M)] -[visit_exp i#20344] -[visit_id i#20344] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42370,22 +36390,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3211 : lanetype, dim#3211 : dim, i#20235 : nat, Fnn : Fnn, i#20242 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3260 : lanetype, dim#3260 : dim, i#20337 : nat, i#20344 : nat}(`%X%`_shape{lanetype#3211, dim#3211, i#20235}((Fnn : Fnn <: lanetype), `%`_dim{i#20242}(M)), `NEAREST`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3260, dim#3260, i#20337}((Fnn : Fnn <: lanetype), `%`_dim{i#20344}(M)), def $fnearest_, v) -[check_dims] Jnn M dim#3272 dim#3308 i#20359 i#20366 i#20448 i#20455 lanetype#3272 lanetype#3308 v -[visit_exp `%X%`_shape{lanetype#3272, dim#3272, i#20359}((Jnn : Jnn <: lanetype), `%`_dim{i#20366}(M))] -[visit_exp lanetype#3272] -[visit_id lanetype#3272] -[visit_exp dim#3272] -[visit_id dim#3272] -[visit_exp i#20359] -[visit_id i#20359] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20366}(M))] + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `NEAREST`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fnearest_, v) +[check_dims] Jnn M v +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#20366}(M)] -[visit_exp i#20366] -[visit_id i#20366] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42393,21 +36405,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp ()] [visit_exp v] [visit_id v] -[visit_exp $ivunop_(`%X%`_shape{lanetype#3308, dim#3308, i#20448}((Jnn : Jnn <: lanetype), `%`_dim{i#20455}(M)), def $iabs_, v)] -[visit_exp `%X%`_shape{lanetype#3308, dim#3308, i#20448}((Jnn : Jnn <: lanetype), `%`_dim{i#20455}(M))] -[visit_exp lanetype#3308] -[visit_id lanetype#3308] -[visit_exp dim#3308] -[visit_id dim#3308] -[visit_exp i#20448] -[visit_id i#20448] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20455}(M))] +[visit_exp $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iabs_, v)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#20455}(M)] -[visit_exp i#20455] -[visit_id i#20455] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42415,22 +36419,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3272 : lanetype, dim#3272 : dim, i#20359 : nat, Jnn : Jnn, i#20366 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3308 : lanetype, dim#3308 : dim, i#20448 : nat, i#20455 : nat}(`%X%`_shape{lanetype#3272, dim#3272, i#20359}((Jnn : Jnn <: lanetype), `%`_dim{i#20366}(M)), `ABS`_vunop_, v) = $ivunop_(`%X%`_shape{lanetype#3308, dim#3308, i#20448}((Jnn : Jnn <: lanetype), `%`_dim{i#20455}(M)), def $iabs_, v) -[check_dims] Jnn M dim#3320 dim#3356 i#20470 i#20477 i#20559 i#20566 lanetype#3320 lanetype#3356 v -[visit_exp `%X%`_shape{lanetype#3320, dim#3320, i#20470}((Jnn : Jnn <: lanetype), `%`_dim{i#20477}(M))] -[visit_exp lanetype#3320] -[visit_id lanetype#3320] -[visit_exp dim#3320] -[visit_id dim#3320] -[visit_exp i#20470] -[visit_id i#20470] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20477}(M))] + def $vunop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ABS`_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iabs_, v) +[check_dims] Jnn M v +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#20477}(M)] -[visit_exp i#20477] -[visit_id i#20477] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42438,21 +36434,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp ()] [visit_exp v] [visit_id v] -[visit_exp $ivunop_(`%X%`_shape{lanetype#3356, dim#3356, i#20559}((Jnn : Jnn <: lanetype), `%`_dim{i#20566}(M)), def $ineg_, v)] -[visit_exp `%X%`_shape{lanetype#3356, dim#3356, i#20559}((Jnn : Jnn <: lanetype), `%`_dim{i#20566}(M))] -[visit_exp lanetype#3356] -[visit_id lanetype#3356] -[visit_exp dim#3356] -[visit_id dim#3356] -[visit_exp i#20559] -[visit_id i#20559] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20566}(M))] +[visit_exp $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ineg_, v)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#20566}(M)] -[visit_exp i#20566] -[visit_id i#20566] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42460,22 +36448,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3320 : lanetype, dim#3320 : dim, i#20470 : nat, Jnn : Jnn, i#20477 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3356 : lanetype, dim#3356 : dim, i#20559 : nat, i#20566 : nat}(`%X%`_shape{lanetype#3320, dim#3320, i#20470}((Jnn : Jnn <: lanetype), `%`_dim{i#20477}(M)), `NEG`_vunop_, v) = $ivunop_(`%X%`_shape{lanetype#3356, dim#3356, i#20559}((Jnn : Jnn <: lanetype), `%`_dim{i#20566}(M)), def $ineg_, v) -[check_dims] Jnn M dim#3368 dim#3404 i#20581 i#20588 i#20670 i#20677 lanetype#3368 lanetype#3404 v -[visit_exp `%X%`_shape{lanetype#3368, dim#3368, i#20581}((Jnn : Jnn <: lanetype), `%`_dim{i#20588}(M))] -[visit_exp lanetype#3368] -[visit_id lanetype#3368] -[visit_exp dim#3368] -[visit_id dim#3368] -[visit_exp i#20581] -[visit_id i#20581] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20588}(M))] + def $vunop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `NEG`_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ineg_, v) +[check_dims] Jnn M v +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#20588}(M)] -[visit_exp i#20588] -[visit_id i#20588] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42483,21 +36463,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp ()] [visit_exp v] [visit_id v] -[visit_exp $ivunop_(`%X%`_shape{lanetype#3404, dim#3404, i#20670}((Jnn : Jnn <: lanetype), `%`_dim{i#20677}(M)), def $ipopcnt_, v)] -[visit_exp `%X%`_shape{lanetype#3404, dim#3404, i#20670}((Jnn : Jnn <: lanetype), `%`_dim{i#20677}(M))] -[visit_exp lanetype#3404] -[visit_id lanetype#3404] -[visit_exp dim#3404] -[visit_id dim#3404] -[visit_exp i#20670] -[visit_id i#20670] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20677}(M))] +[visit_exp $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ipopcnt_, v)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#20677}(M)] -[visit_exp i#20677] -[visit_id i#20677] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42505,22 +36477,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3368 : lanetype, dim#3368 : dim, i#20581 : nat, Jnn : Jnn, i#20588 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3404 : lanetype, dim#3404 : dim, i#20670 : nat, i#20677 : nat}(`%X%`_shape{lanetype#3368, dim#3368, i#20581}((Jnn : Jnn <: lanetype), `%`_dim{i#20588}(M)), `POPCNT`_vunop_, v) = $ivunop_(`%X%`_shape{lanetype#3404, dim#3404, i#20670}((Jnn : Jnn <: lanetype), `%`_dim{i#20677}(M)), def $ipopcnt_, v) -[check_dims] Jnn M dim#3416 dim#3452 i#20692 i#20699 i#20813 i#20820 lanetype#3416 lanetype#3452 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#3416, dim#3416, i#20692}((Jnn : Jnn <: lanetype), `%`_dim{i#20699}(M))] -[visit_exp lanetype#3416] -[visit_id lanetype#3416] -[visit_exp dim#3416] -[visit_id dim#3416] -[visit_exp i#20692] -[visit_id i#20692] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20699}(M))] + def $vunop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `POPCNT`_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ipopcnt_, v) +[check_dims] Jnn M v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#20699}(M)] -[visit_exp i#20699] -[visit_id i#20699] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42530,21 +36494,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivbinop_(`%X%`_shape{lanetype#3452, dim#3452, i#20813}((Jnn : Jnn <: lanetype), `%`_dim{i#20820}(M)), def $iadd_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#3452, dim#3452, i#20813}((Jnn : Jnn <: lanetype), `%`_dim{i#20820}(M))] -[visit_exp lanetype#3452] -[visit_id lanetype#3452] -[visit_exp dim#3452] -[visit_id dim#3452] -[visit_exp i#20813] -[visit_id i#20813] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20820}(M))] +[visit_exp $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#20820}(M)] -[visit_exp i#20820] -[visit_id i#20820] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42554,22 +36510,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3416 : lanetype, dim#3416 : dim, i#20692 : nat, Jnn : Jnn, i#20699 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3452 : lanetype, dim#3452 : dim, i#20813 : nat, i#20820 : nat}(`%X%`_shape{lanetype#3416, dim#3416, i#20692}((Jnn : Jnn <: lanetype), `%`_dim{i#20699}(M)), `ADD`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape{lanetype#3452, dim#3452, i#20813}((Jnn : Jnn <: lanetype), `%`_dim{i#20820}(M)), def $iadd_, v_1, v_2) -[check_dims] Jnn M dim#3464 dim#3500 i#20845 i#20852 i#20966 i#20973 lanetype#3464 lanetype#3500 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#3464, dim#3464, i#20845}((Jnn : Jnn <: lanetype), `%`_dim{i#20852}(M))] -[visit_exp lanetype#3464] -[visit_id lanetype#3464] -[visit_exp dim#3464] -[visit_id dim#3464] -[visit_exp i#20845] -[visit_id i#20845] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20852}(M))] + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ADD`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_, v_1, v_2) +[check_dims] Jnn M v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#20852}(M)] -[visit_exp i#20852] -[visit_id i#20852] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42579,21 +36527,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivbinop_(`%X%`_shape{lanetype#3500, dim#3500, i#20966}((Jnn : Jnn <: lanetype), `%`_dim{i#20973}(M)), def $isub_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#3500, dim#3500, i#20966}((Jnn : Jnn <: lanetype), `%`_dim{i#20973}(M))] -[visit_exp lanetype#3500] -[visit_id lanetype#3500] -[visit_exp dim#3500] -[visit_id dim#3500] -[visit_exp i#20966] -[visit_id i#20966] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#20973}(M))] +[visit_exp $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#20973}(M)] -[visit_exp i#20973] -[visit_id i#20973] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42603,22 +36543,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3464 : lanetype, dim#3464 : dim, i#20845 : nat, Jnn : Jnn, i#20852 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3500 : lanetype, dim#3500 : dim, i#20966 : nat, i#20973 : nat}(`%X%`_shape{lanetype#3464, dim#3464, i#20845}((Jnn : Jnn <: lanetype), `%`_dim{i#20852}(M)), `SUB`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape{lanetype#3500, dim#3500, i#20966}((Jnn : Jnn <: lanetype), `%`_dim{i#20973}(M)), def $isub_, v_1, v_2) -[check_dims] Jnn M dim#3512 dim#3548 i#20998 i#21005 i#21119 i#21126 lanetype#3512 lanetype#3548 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#3512, dim#3512, i#20998}((Jnn : Jnn <: lanetype), `%`_dim{i#21005}(M))] -[visit_exp lanetype#3512] -[visit_id lanetype#3512] -[visit_exp dim#3512] -[visit_id dim#3512] -[visit_exp i#20998] -[visit_id i#20998] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21005}(M))] + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `SUB`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_, v_1, v_2) +[check_dims] Jnn M v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#21005}(M)] -[visit_exp i#21005] -[visit_id i#21005] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42628,21 +36560,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivbinop_(`%X%`_shape{lanetype#3548, dim#3548, i#21119}((Jnn : Jnn <: lanetype), `%`_dim{i#21126}(M)), def $imul_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#3548, dim#3548, i#21119}((Jnn : Jnn <: lanetype), `%`_dim{i#21126}(M))] -[visit_exp lanetype#3548] -[visit_id lanetype#3548] -[visit_exp dim#3548] -[visit_id dim#3548] -[visit_exp i#21119] -[visit_id i#21119] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21126}(M))] +[visit_exp $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imul_, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#21126}(M)] -[visit_exp i#21126] -[visit_id i#21126] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42652,28 +36576,18 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3512 : lanetype, dim#3512 : dim, i#20998 : nat, Jnn : Jnn, i#21005 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3548 : lanetype, dim#3548 : dim, i#21119 : nat, i#21126 : nat}(`%X%`_shape{lanetype#3512, dim#3512, i#20998}((Jnn : Jnn <: lanetype), `%`_dim{i#21005}(M)), `MUL`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape{lanetype#3548, dim#3548, i#21119}((Jnn : Jnn <: lanetype), `%`_dim{i#21126}(M)), def $imul_, v_1, v_2) -[check_dims] Jnn M dim#3560 dim#3596 i#21151 i#21158 i#21272 i#21279 lanetype#3560 lanetype#3596 sx sx#96 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#3560, dim#3560, i#21151}((Jnn : Jnn <: lanetype), `%`_dim{i#21158}(M))] -[visit_exp lanetype#3560] -[visit_id lanetype#3560] -[visit_exp dim#3560] -[visit_id dim#3560] -[visit_exp i#21151] -[visit_id i#21151] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21158}(M))] + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `MUL`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imul_, v_1, v_2) +[check_dims] Jnn M sx v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#21158}(M)] -[visit_exp i#21158] -[visit_id i#21158] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[visit_exp `ADD_SAT`_vbinop_{sx#96}(sx)] -[visit_exp sx#96] -[visit_id sx#96] +[visit_exp `ADD_SAT`_vbinop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -42681,21 +36595,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivbinopsx_(`%X%`_shape{lanetype#3596, dim#3596, i#21272}((Jnn : Jnn <: lanetype), `%`_dim{i#21279}(M)), def $iadd_sat_, sx, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#3596, dim#3596, i#21272}((Jnn : Jnn <: lanetype), `%`_dim{i#21279}(M))] -[visit_exp lanetype#3596] -[visit_id lanetype#3596] -[visit_exp dim#3596] -[visit_id dim#3596] -[visit_exp i#21272] -[visit_id i#21272] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21279}(M))] +[visit_exp $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_sat_, sx, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#21279}(M)] -[visit_exp i#21279] -[visit_id i#21279] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42707,28 +36613,18 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3560 : lanetype, dim#3560 : dim, i#21151 : nat, Jnn : Jnn, i#21158 : nat, M : M, sx#96 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3596 : lanetype, dim#3596 : dim, i#21272 : nat, i#21279 : nat}(`%X%`_shape{lanetype#3560, dim#3560, i#21151}((Jnn : Jnn <: lanetype), `%`_dim{i#21158}(M)), `ADD_SAT`_vbinop_{sx#96}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3596, dim#3596, i#21272}((Jnn : Jnn <: lanetype), `%`_dim{i#21279}(M)), def $iadd_sat_, sx, v_1, v_2) -[check_dims] Jnn M dim#3608 dim#3644 i#21304 i#21311 i#21425 i#21432 lanetype#3608 lanetype#3644 sx sx#98 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#3608, dim#3608, i#21304}((Jnn : Jnn <: lanetype), `%`_dim{i#21311}(M))] -[visit_exp lanetype#3608] -[visit_id lanetype#3608] -[visit_exp dim#3608] -[visit_id dim#3608] -[visit_exp i#21304] -[visit_id i#21304] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21311}(M))] + def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ADD_SAT`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_sat_, sx, v_1, v_2) +[check_dims] Jnn M sx v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#21311}(M)] -[visit_exp i#21311] -[visit_id i#21311] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[visit_exp `SUB_SAT`_vbinop_{sx#98}(sx)] -[visit_exp sx#98] -[visit_id sx#98] +[visit_exp `SUB_SAT`_vbinop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -42736,21 +36632,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivbinopsx_(`%X%`_shape{lanetype#3644, dim#3644, i#21425}((Jnn : Jnn <: lanetype), `%`_dim{i#21432}(M)), def $isub_sat_, sx, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#3644, dim#3644, i#21425}((Jnn : Jnn <: lanetype), `%`_dim{i#21432}(M))] -[visit_exp lanetype#3644] -[visit_id lanetype#3644] -[visit_exp dim#3644] -[visit_id dim#3644] -[visit_exp i#21425] -[visit_id i#21425] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21432}(M))] +[visit_exp $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_sat_, sx, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#21432}(M)] -[visit_exp i#21432] -[visit_id i#21432] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42762,28 +36650,18 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3608 : lanetype, dim#3608 : dim, i#21304 : nat, Jnn : Jnn, i#21311 : nat, M : M, sx#98 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3644 : lanetype, dim#3644 : dim, i#21425 : nat, i#21432 : nat}(`%X%`_shape{lanetype#3608, dim#3608, i#21304}((Jnn : Jnn <: lanetype), `%`_dim{i#21311}(M)), `SUB_SAT`_vbinop_{sx#98}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3644, dim#3644, i#21425}((Jnn : Jnn <: lanetype), `%`_dim{i#21432}(M)), def $isub_sat_, sx, v_1, v_2) -[check_dims] Jnn M dim#3656 dim#3692 i#21457 i#21464 i#21578 i#21585 lanetype#3656 lanetype#3692 sx sx#100 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#3656, dim#3656, i#21457}((Jnn : Jnn <: lanetype), `%`_dim{i#21464}(M))] -[visit_exp lanetype#3656] -[visit_id lanetype#3656] -[visit_exp dim#3656] -[visit_id dim#3656] -[visit_exp i#21457] -[visit_id i#21457] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21464}(M))] + def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `SUB_SAT`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_sat_, sx, v_1, v_2) +[check_dims] Jnn M sx v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#21464}(M)] -[visit_exp i#21464] -[visit_id i#21464] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[visit_exp `MIN`_vbinop_{sx#100}(sx)] -[visit_exp sx#100] -[visit_id sx#100] +[visit_exp `MIN`_vbinop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -42791,21 +36669,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivbinopsx_(`%X%`_shape{lanetype#3692, dim#3692, i#21578}((Jnn : Jnn <: lanetype), `%`_dim{i#21585}(M)), def $imin_, sx, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#3692, dim#3692, i#21578}((Jnn : Jnn <: lanetype), `%`_dim{i#21585}(M))] -[visit_exp lanetype#3692] -[visit_id lanetype#3692] -[visit_exp dim#3692] -[visit_id dim#3692] -[visit_exp i#21578] -[visit_id i#21578] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21585}(M))] +[visit_exp $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imin_, sx, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#21585}(M)] -[visit_exp i#21585] -[visit_id i#21585] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42817,28 +36687,18 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3656 : lanetype, dim#3656 : dim, i#21457 : nat, Jnn : Jnn, i#21464 : nat, M : M, sx#100 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3692 : lanetype, dim#3692 : dim, i#21578 : nat, i#21585 : nat}(`%X%`_shape{lanetype#3656, dim#3656, i#21457}((Jnn : Jnn <: lanetype), `%`_dim{i#21464}(M)), `MIN`_vbinop_{sx#100}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3692, dim#3692, i#21578}((Jnn : Jnn <: lanetype), `%`_dim{i#21585}(M)), def $imin_, sx, v_1, v_2) -[check_dims] Jnn M dim#3704 dim#3740 i#21610 i#21617 i#21731 i#21738 lanetype#3704 lanetype#3740 sx sx#102 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#3704, dim#3704, i#21610}((Jnn : Jnn <: lanetype), `%`_dim{i#21617}(M))] -[visit_exp lanetype#3704] -[visit_id lanetype#3704] -[visit_exp dim#3704] -[visit_id dim#3704] -[visit_exp i#21610] -[visit_id i#21610] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21617}(M))] + def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `MIN`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imin_, sx, v_1, v_2) +[check_dims] Jnn M sx v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#21617}(M)] -[visit_exp i#21617] -[visit_id i#21617] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[visit_exp `MAX`_vbinop_{sx#102}(sx)] -[visit_exp sx#102] -[visit_id sx#102] +[visit_exp `MAX`_vbinop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -42846,21 +36706,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivbinopsx_(`%X%`_shape{lanetype#3740, dim#3740, i#21731}((Jnn : Jnn <: lanetype), `%`_dim{i#21738}(M)), def $imax_, sx, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#3740, dim#3740, i#21731}((Jnn : Jnn <: lanetype), `%`_dim{i#21738}(M))] -[visit_exp lanetype#3740] -[visit_id lanetype#3740] -[visit_exp dim#3740] -[visit_id dim#3740] -[visit_exp i#21731] -[visit_id i#21731] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21738}(M))] +[visit_exp $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imax_, sx, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#21738}(M)] -[visit_exp i#21738] -[visit_id i#21738] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42872,22 +36724,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3704 : lanetype, dim#3704 : dim, i#21610 : nat, Jnn : Jnn, i#21617 : nat, M : M, sx#102 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3740 : lanetype, dim#3740 : dim, i#21731 : nat, i#21738 : nat}(`%X%`_shape{lanetype#3704, dim#3704, i#21610}((Jnn : Jnn <: lanetype), `%`_dim{i#21617}(M)), `MAX`_vbinop_{sx#102}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3740, dim#3740, i#21731}((Jnn : Jnn <: lanetype), `%`_dim{i#21738}(M)), def $imax_, sx, v_1, v_2) -[check_dims] Jnn M dim#3752 dim#3788 i#21763 i#21770 i#21884 i#21891 lanetype#3752 lanetype#3788 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#3752, dim#3752, i#21763}((Jnn : Jnn <: lanetype), `%`_dim{i#21770}(M))] -[visit_exp lanetype#3752] -[visit_id lanetype#3752] -[visit_exp dim#3752] -[visit_id dim#3752] -[visit_exp i#21763] -[visit_id i#21763] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21770}(M))] + def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `MAX`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imax_, sx, v_1, v_2) +[check_dims] Jnn M v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#21770}(M)] -[visit_exp i#21770] -[visit_id i#21770] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42897,21 +36741,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivbinopsx_(`%X%`_shape{lanetype#3788, dim#3788, i#21884}((Jnn : Jnn <: lanetype), `%`_dim{i#21891}(M)), def $iavgr_, `U`_sx, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#3788, dim#3788, i#21884}((Jnn : Jnn <: lanetype), `%`_dim{i#21891}(M))] -[visit_exp lanetype#3788] -[visit_id lanetype#3788] -[visit_exp dim#3788] -[visit_id dim#3788] -[visit_exp i#21884] -[visit_id i#21884] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21891}(M))] +[visit_exp $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iavgr_, `U`_sx, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#21891}(M)] -[visit_exp i#21891] -[visit_id i#21891] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42923,22 +36759,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3752 : lanetype, dim#3752 : dim, i#21763 : nat, Jnn : Jnn, i#21770 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3788 : lanetype, dim#3788 : dim, i#21884 : nat, i#21891 : nat}(`%X%`_shape{lanetype#3752, dim#3752, i#21763}((Jnn : Jnn <: lanetype), `%`_dim{i#21770}(M)), `AVGRU`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3788, dim#3788, i#21884}((Jnn : Jnn <: lanetype), `%`_dim{i#21891}(M)), def $iavgr_, `U`_sx, v_1, v_2) -[check_dims] Jnn M dim#3800 dim#3836 i#21916 i#21923 i#22037 i#22044 lanetype#3800 lanetype#3836 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#3800, dim#3800, i#21916}((Jnn : Jnn <: lanetype), `%`_dim{i#21923}(M))] -[visit_exp lanetype#3800] -[visit_id lanetype#3800] -[visit_exp dim#3800] -[visit_id dim#3800] -[visit_exp i#21916] -[visit_id i#21916] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#21923}(M))] + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `AVGRU`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iavgr_, `U`_sx, v_1, v_2) +[check_dims] Jnn M v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#21923}(M)] -[visit_exp i#21923] -[visit_id i#21923] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42948,21 +36776,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivbinopsx_(`%X%`_shape{lanetype#3836, dim#3836, i#22037}((Jnn : Jnn <: lanetype), `%`_dim{i#22044}(M)), def $iq15mulr_sat_, `S`_sx, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#3836, dim#3836, i#22037}((Jnn : Jnn <: lanetype), `%`_dim{i#22044}(M))] -[visit_exp lanetype#3836] -[visit_id lanetype#3836] -[visit_exp dim#3836] -[visit_id dim#3836] -[visit_exp i#22037] -[visit_id i#22037] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#22044}(M))] +[visit_exp $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iq15mulr_sat_, `S`_sx, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#22044}(M)] -[visit_exp i#22044] -[visit_id i#22044] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -42974,22 +36794,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3800 : lanetype, dim#3800 : dim, i#21916 : nat, Jnn : Jnn, i#21923 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3836 : lanetype, dim#3836 : dim, i#22037 : nat, i#22044 : nat}(`%X%`_shape{lanetype#3800, dim#3800, i#21916}((Jnn : Jnn <: lanetype), `%`_dim{i#21923}(M)), `Q15MULR_SATS`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3836, dim#3836, i#22037}((Jnn : Jnn <: lanetype), `%`_dim{i#22044}(M)), def $iq15mulr_sat_, `S`_sx, v_1, v_2) -[check_dims] Jnn M dim#3848 dim#3884 i#22069 i#22076 i#22190 i#22197 lanetype#3848 lanetype#3884 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#3848, dim#3848, i#22069}((Jnn : Jnn <: lanetype), `%`_dim{i#22076}(M))] -[visit_exp lanetype#3848] -[visit_id lanetype#3848] -[visit_exp dim#3848] -[visit_id dim#3848] -[visit_exp i#22069] -[visit_id i#22069] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#22076}(M))] + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `Q15MULR_SATS`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iq15mulr_sat_, `S`_sx, v_1, v_2) +[check_dims] Jnn M v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#22076}(M)] -[visit_exp i#22076] -[visit_id i#22076] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -42999,21 +36811,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivbinopsxnd_(`%X%`_shape{lanetype#3884, dim#3884, i#22190}((Jnn : Jnn <: lanetype), `%`_dim{i#22197}(M)), def $irelaxed_q15mulr_, `S`_sx, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#3884, dim#3884, i#22190}((Jnn : Jnn <: lanetype), `%`_dim{i#22197}(M))] -[visit_exp lanetype#3884] -[visit_id lanetype#3884] -[visit_exp dim#3884] -[visit_id dim#3884] -[visit_exp i#22190] -[visit_id i#22190] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#22197}(M))] +[visit_exp $ivbinopsxnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_q15mulr_, `S`_sx, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#22197}(M)] -[visit_exp i#22197] -[visit_id i#22197] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43025,22 +36829,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3848 : lanetype, dim#3848 : dim, i#22069 : nat, Jnn : Jnn, i#22076 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3884 : lanetype, dim#3884 : dim, i#22190 : nat, i#22197 : nat}(`%X%`_shape{lanetype#3848, dim#3848, i#22069}((Jnn : Jnn <: lanetype), `%`_dim{i#22076}(M)), `RELAXED_Q15MULRS`_vbinop_, v_1, v_2) = $ivbinopsxnd_(`%X%`_shape{lanetype#3884, dim#3884, i#22190}((Jnn : Jnn <: lanetype), `%`_dim{i#22197}(M)), def $irelaxed_q15mulr_, `S`_sx, v_1, v_2) -[check_dims] Fnn M dim#3896 dim#3945 i#22222 i#22229 i#22356 i#22363 lanetype#3896 lanetype#3945 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#3896, dim#3896, i#22222}((Fnn : Fnn <: lanetype), `%`_dim{i#22229}(M))] -[visit_exp lanetype#3896] -[visit_id lanetype#3896] -[visit_exp dim#3896] -[visit_id dim#3896] -[visit_exp i#22222] -[visit_id i#22222] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22229}(M))] + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `RELAXED_Q15MULRS`_vbinop_, v_1, v_2) = $ivbinopsxnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_q15mulr_, `S`_sx, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#22229}(M)] -[visit_exp i#22229] -[visit_id i#22229] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43050,21 +36846,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape{lanetype#3945, dim#3945, i#22356}((Fnn : Fnn <: lanetype), `%`_dim{i#22363}(M)), def $fadd_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#3945, dim#3945, i#22356}((Fnn : Fnn <: lanetype), `%`_dim{i#22363}(M))] -[visit_exp lanetype#3945] -[visit_id lanetype#3945] -[visit_exp dim#3945] -[visit_id dim#3945] -[visit_exp i#22356] -[visit_id i#22356] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22363}(M))] +[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fadd_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#22363}(M)] -[visit_exp i#22363] -[visit_id i#22363] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43074,22 +36862,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3896 : lanetype, dim#3896 : dim, i#22222 : nat, Fnn : Fnn, i#22229 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3945 : lanetype, dim#3945 : dim, i#22356 : nat, i#22363 : nat}(`%X%`_shape{lanetype#3896, dim#3896, i#22222}((Fnn : Fnn <: lanetype), `%`_dim{i#22229}(M)), `ADD`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#3945, dim#3945, i#22356}((Fnn : Fnn <: lanetype), `%`_dim{i#22363}(M)), def $fadd_, v_1, v_2) -[check_dims] Fnn M dim#3957 dim#4006 i#22388 i#22395 i#22522 i#22529 lanetype#3957 lanetype#4006 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#3957, dim#3957, i#22388}((Fnn : Fnn <: lanetype), `%`_dim{i#22395}(M))] -[visit_exp lanetype#3957] -[visit_id lanetype#3957] -[visit_exp dim#3957] -[visit_id dim#3957] -[visit_exp i#22388] -[visit_id i#22388] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22395}(M))] + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `ADD`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fadd_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#22395}(M)] -[visit_exp i#22395] -[visit_id i#22395] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43099,21 +36879,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape{lanetype#4006, dim#4006, i#22522}((Fnn : Fnn <: lanetype), `%`_dim{i#22529}(M)), def $fsub_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4006, dim#4006, i#22522}((Fnn : Fnn <: lanetype), `%`_dim{i#22529}(M))] -[visit_exp lanetype#4006] -[visit_id lanetype#4006] -[visit_exp dim#4006] -[visit_id dim#4006] -[visit_exp i#22522] -[visit_id i#22522] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22529}(M))] +[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsub_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#22529}(M)] -[visit_exp i#22529] -[visit_id i#22529] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43123,22 +36895,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3957 : lanetype, dim#3957 : dim, i#22388 : nat, Fnn : Fnn, i#22395 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4006 : lanetype, dim#4006 : dim, i#22522 : nat, i#22529 : nat}(`%X%`_shape{lanetype#3957, dim#3957, i#22388}((Fnn : Fnn <: lanetype), `%`_dim{i#22395}(M)), `SUB`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4006, dim#4006, i#22522}((Fnn : Fnn <: lanetype), `%`_dim{i#22529}(M)), def $fsub_, v_1, v_2) -[check_dims] Fnn M dim#4018 dim#4067 i#22554 i#22561 i#22688 i#22695 lanetype#4018 lanetype#4067 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4018, dim#4018, i#22554}((Fnn : Fnn <: lanetype), `%`_dim{i#22561}(M))] -[visit_exp lanetype#4018] -[visit_id lanetype#4018] -[visit_exp dim#4018] -[visit_id dim#4018] -[visit_exp i#22554] -[visit_id i#22554] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22561}(M))] + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `SUB`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsub_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#22561}(M)] -[visit_exp i#22561] -[visit_id i#22561] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43148,21 +36912,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape{lanetype#4067, dim#4067, i#22688}((Fnn : Fnn <: lanetype), `%`_dim{i#22695}(M)), def $fmul_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4067, dim#4067, i#22688}((Fnn : Fnn <: lanetype), `%`_dim{i#22695}(M))] -[visit_exp lanetype#4067] -[visit_id lanetype#4067] -[visit_exp dim#4067] -[visit_id dim#4067] -[visit_exp i#22688] -[visit_id i#22688] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22695}(M))] +[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmul_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#22695}(M)] -[visit_exp i#22695] -[visit_id i#22695] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43172,22 +36928,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4018 : lanetype, dim#4018 : dim, i#22554 : nat, Fnn : Fnn, i#22561 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4067 : lanetype, dim#4067 : dim, i#22688 : nat, i#22695 : nat}(`%X%`_shape{lanetype#4018, dim#4018, i#22554}((Fnn : Fnn <: lanetype), `%`_dim{i#22561}(M)), `MUL`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4067, dim#4067, i#22688}((Fnn : Fnn <: lanetype), `%`_dim{i#22695}(M)), def $fmul_, v_1, v_2) -[check_dims] Fnn M dim#4079 dim#4128 i#22720 i#22727 i#22854 i#22861 lanetype#4079 lanetype#4128 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4079, dim#4079, i#22720}((Fnn : Fnn <: lanetype), `%`_dim{i#22727}(M))] -[visit_exp lanetype#4079] -[visit_id lanetype#4079] -[visit_exp dim#4079] -[visit_id dim#4079] -[visit_exp i#22720] -[visit_id i#22720] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22727}(M))] + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `MUL`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmul_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#22727}(M)] -[visit_exp i#22727] -[visit_id i#22727] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43197,21 +36945,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape{lanetype#4128, dim#4128, i#22854}((Fnn : Fnn <: lanetype), `%`_dim{i#22861}(M)), def $fdiv_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4128, dim#4128, i#22854}((Fnn : Fnn <: lanetype), `%`_dim{i#22861}(M))] -[visit_exp lanetype#4128] -[visit_id lanetype#4128] -[visit_exp dim#4128] -[visit_id dim#4128] -[visit_exp i#22854] -[visit_id i#22854] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22861}(M))] +[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fdiv_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#22861}(M)] -[visit_exp i#22861] -[visit_id i#22861] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43221,22 +36961,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4079 : lanetype, dim#4079 : dim, i#22720 : nat, Fnn : Fnn, i#22727 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4128 : lanetype, dim#4128 : dim, i#22854 : nat, i#22861 : nat}(`%X%`_shape{lanetype#4079, dim#4079, i#22720}((Fnn : Fnn <: lanetype), `%`_dim{i#22727}(M)), `DIV`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4128, dim#4128, i#22854}((Fnn : Fnn <: lanetype), `%`_dim{i#22861}(M)), def $fdiv_, v_1, v_2) -[check_dims] Fnn M dim#4140 dim#4189 i#22886 i#22893 i#23020 i#23027 lanetype#4140 lanetype#4189 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4140, dim#4140, i#22886}((Fnn : Fnn <: lanetype), `%`_dim{i#22893}(M))] -[visit_exp lanetype#4140] -[visit_id lanetype#4140] -[visit_exp dim#4140] -[visit_id dim#4140] -[visit_exp i#22886] -[visit_id i#22886] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#22893}(M))] + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `DIV`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fdiv_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#22893}(M)] -[visit_exp i#22893] -[visit_id i#22893] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43246,21 +36978,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape{lanetype#4189, dim#4189, i#23020}((Fnn : Fnn <: lanetype), `%`_dim{i#23027}(M)), def $fmin_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4189, dim#4189, i#23020}((Fnn : Fnn <: lanetype), `%`_dim{i#23027}(M))] -[visit_exp lanetype#4189] -[visit_id lanetype#4189] -[visit_exp dim#4189] -[visit_id dim#4189] -[visit_exp i#23020] -[visit_id i#23020] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23027}(M))] +[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmin_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#23027}(M)] -[visit_exp i#23027] -[visit_id i#23027] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43270,22 +36994,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4140 : lanetype, dim#4140 : dim, i#22886 : nat, Fnn : Fnn, i#22893 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4189 : lanetype, dim#4189 : dim, i#23020 : nat, i#23027 : nat}(`%X%`_shape{lanetype#4140, dim#4140, i#22886}((Fnn : Fnn <: lanetype), `%`_dim{i#22893}(M)), `MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4189, dim#4189, i#23020}((Fnn : Fnn <: lanetype), `%`_dim{i#23027}(M)), def $fmin_, v_1, v_2) -[check_dims] Fnn M dim#4201 dim#4250 i#23052 i#23059 i#23186 i#23193 lanetype#4201 lanetype#4250 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4201, dim#4201, i#23052}((Fnn : Fnn <: lanetype), `%`_dim{i#23059}(M))] -[visit_exp lanetype#4201] -[visit_id lanetype#4201] -[visit_exp dim#4201] -[visit_id dim#4201] -[visit_exp i#23052] -[visit_id i#23052] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23059}(M))] + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmin_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#23059}(M)] -[visit_exp i#23059] -[visit_id i#23059] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43295,21 +37011,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape{lanetype#4250, dim#4250, i#23186}((Fnn : Fnn <: lanetype), `%`_dim{i#23193}(M)), def $fmax_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4250, dim#4250, i#23186}((Fnn : Fnn <: lanetype), `%`_dim{i#23193}(M))] -[visit_exp lanetype#4250] -[visit_id lanetype#4250] -[visit_exp dim#4250] -[visit_id dim#4250] -[visit_exp i#23186] -[visit_id i#23186] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23193}(M))] +[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmax_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#23193}(M)] -[visit_exp i#23193] -[visit_id i#23193] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43319,22 +37027,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4201 : lanetype, dim#4201 : dim, i#23052 : nat, Fnn : Fnn, i#23059 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4250 : lanetype, dim#4250 : dim, i#23186 : nat, i#23193 : nat}(`%X%`_shape{lanetype#4201, dim#4201, i#23052}((Fnn : Fnn <: lanetype), `%`_dim{i#23059}(M)), `MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4250, dim#4250, i#23186}((Fnn : Fnn <: lanetype), `%`_dim{i#23193}(M)), def $fmax_, v_1, v_2) -[check_dims] Fnn M dim#4262 dim#4311 i#23218 i#23225 i#23352 i#23359 lanetype#4262 lanetype#4311 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4262, dim#4262, i#23218}((Fnn : Fnn <: lanetype), `%`_dim{i#23225}(M))] -[visit_exp lanetype#4262] -[visit_id lanetype#4262] -[visit_exp dim#4262] -[visit_id dim#4262] -[visit_exp i#23218] -[visit_id i#23218] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23225}(M))] + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmax_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#23225}(M)] -[visit_exp i#23225] -[visit_id i#23225] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43344,21 +37044,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape{lanetype#4311, dim#4311, i#23352}((Fnn : Fnn <: lanetype), `%`_dim{i#23359}(M)), def $fpmin_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4311, dim#4311, i#23352}((Fnn : Fnn <: lanetype), `%`_dim{i#23359}(M))] -[visit_exp lanetype#4311] -[visit_id lanetype#4311] -[visit_exp dim#4311] -[visit_id dim#4311] -[visit_exp i#23352] -[visit_id i#23352] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23359}(M))] +[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmin_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#23359}(M)] -[visit_exp i#23359] -[visit_id i#23359] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43368,22 +37060,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4262 : lanetype, dim#4262 : dim, i#23218 : nat, Fnn : Fnn, i#23225 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4311 : lanetype, dim#4311 : dim, i#23352 : nat, i#23359 : nat}(`%X%`_shape{lanetype#4262, dim#4262, i#23218}((Fnn : Fnn <: lanetype), `%`_dim{i#23225}(M)), `PMIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4311, dim#4311, i#23352}((Fnn : Fnn <: lanetype), `%`_dim{i#23359}(M)), def $fpmin_, v_1, v_2) -[check_dims] Fnn M dim#4323 dim#4372 i#23384 i#23391 i#23518 i#23525 lanetype#4323 lanetype#4372 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4323, dim#4323, i#23384}((Fnn : Fnn <: lanetype), `%`_dim{i#23391}(M))] -[visit_exp lanetype#4323] -[visit_id lanetype#4323] -[visit_exp dim#4323] -[visit_id dim#4323] -[visit_exp i#23384] -[visit_id i#23384] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23391}(M))] + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `PMIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmin_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#23391}(M)] -[visit_exp i#23391] -[visit_id i#23391] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43393,21 +37077,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape{lanetype#4372, dim#4372, i#23518}((Fnn : Fnn <: lanetype), `%`_dim{i#23525}(M)), def $fpmax_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4372, dim#4372, i#23518}((Fnn : Fnn <: lanetype), `%`_dim{i#23525}(M))] -[visit_exp lanetype#4372] -[visit_id lanetype#4372] -[visit_exp dim#4372] -[visit_id dim#4372] -[visit_exp i#23518] -[visit_id i#23518] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23525}(M))] +[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmax_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#23525}(M)] -[visit_exp i#23525] -[visit_id i#23525] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43417,22 +37093,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4323 : lanetype, dim#4323 : dim, i#23384 : nat, Fnn : Fnn, i#23391 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4372 : lanetype, dim#4372 : dim, i#23518 : nat, i#23525 : nat}(`%X%`_shape{lanetype#4323, dim#4323, i#23384}((Fnn : Fnn <: lanetype), `%`_dim{i#23391}(M)), `PMAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4372, dim#4372, i#23518}((Fnn : Fnn <: lanetype), `%`_dim{i#23525}(M)), def $fpmax_, v_1, v_2) -[check_dims] Fnn M dim#4384 dim#4433 i#23550 i#23557 i#23684 i#23691 lanetype#4384 lanetype#4433 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4384, dim#4384, i#23550}((Fnn : Fnn <: lanetype), `%`_dim{i#23557}(M))] -[visit_exp lanetype#4384] -[visit_id lanetype#4384] -[visit_exp dim#4384] -[visit_id dim#4384] -[visit_exp i#23550] -[visit_id i#23550] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23557}(M))] + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `PMAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmax_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#23557}(M)] -[visit_exp i#23557] -[visit_id i#23557] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43442,21 +37110,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape{lanetype#4433, dim#4433, i#23684}((Fnn : Fnn <: lanetype), `%`_dim{i#23691}(M)), def $frelaxed_min_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4433, dim#4433, i#23684}((Fnn : Fnn <: lanetype), `%`_dim{i#23691}(M))] -[visit_exp lanetype#4433] -[visit_id lanetype#4433] -[visit_exp dim#4433] -[visit_id dim#4433] -[visit_exp i#23684] -[visit_id i#23684] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23691}(M))] +[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_min_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#23691}(M)] -[visit_exp i#23691] -[visit_id i#23691] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43466,22 +37126,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4384 : lanetype, dim#4384 : dim, i#23550 : nat, Fnn : Fnn, i#23557 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4433 : lanetype, dim#4433 : dim, i#23684 : nat, i#23691 : nat}(`%X%`_shape{lanetype#4384, dim#4384, i#23550}((Fnn : Fnn <: lanetype), `%`_dim{i#23557}(M)), `RELAXED_MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4433, dim#4433, i#23684}((Fnn : Fnn <: lanetype), `%`_dim{i#23691}(M)), def $frelaxed_min_, v_1, v_2) -[check_dims] Fnn M dim#4445 dim#4494 i#23716 i#23723 i#23850 i#23857 lanetype#4445 lanetype#4494 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4445, dim#4445, i#23716}((Fnn : Fnn <: lanetype), `%`_dim{i#23723}(M))] -[visit_exp lanetype#4445] -[visit_id lanetype#4445] -[visit_exp dim#4445] -[visit_id dim#4445] -[visit_exp i#23716] -[visit_id i#23716] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23723}(M))] + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_min_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#23723}(M)] -[visit_exp i#23723] -[visit_id i#23723] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43491,21 +37143,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape{lanetype#4494, dim#4494, i#23850}((Fnn : Fnn <: lanetype), `%`_dim{i#23857}(M)), def $frelaxed_max_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4494, dim#4494, i#23850}((Fnn : Fnn <: lanetype), `%`_dim{i#23857}(M))] -[visit_exp lanetype#4494] -[visit_id lanetype#4494] -[visit_exp dim#4494] -[visit_id dim#4494] -[visit_exp i#23850] -[visit_id i#23850] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#23857}(M))] +[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_max_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#23857}(M)] -[visit_exp i#23857] -[visit_id i#23857] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43515,22 +37159,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4445 : lanetype, dim#4445 : dim, i#23716 : nat, Fnn : Fnn, i#23723 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4494 : lanetype, dim#4494 : dim, i#23850 : nat, i#23857 : nat}(`%X%`_shape{lanetype#4445, dim#4445, i#23716}((Fnn : Fnn <: lanetype), `%`_dim{i#23723}(M)), `RELAXED_MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4494, dim#4494, i#23850}((Fnn : Fnn <: lanetype), `%`_dim{i#23857}(M)), def $frelaxed_max_, v_1, v_2) -[check_dims] Jnn M dim#4506 dim#4542 i#23882 i#23889 i#24035 i#24042 lanetype#4506 lanetype#4542 v_1 v_2 v_3 -[visit_exp `%X%`_shape{lanetype#4506, dim#4506, i#23882}((Jnn : Jnn <: lanetype), `%`_dim{i#23889}(M))] -[visit_exp lanetype#4506] -[visit_id lanetype#4506] -[visit_exp dim#4506] -[visit_id dim#4506] -[visit_exp i#23882] -[visit_id i#23882] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#23889}(M))] + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_max_, v_1, v_2) +[check_dims] Jnn M v_1 v_2 v_3 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#23889}(M)] -[visit_exp i#23889] -[visit_id i#23889] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43542,21 +37178,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] [visit_exp v_3] [visit_id v_3] -[visit_exp $ivternopnd_(`%X%`_shape{lanetype#4542, dim#4542, i#24035}((Jnn : Jnn <: lanetype), `%`_dim{i#24042}(M)), def $irelaxed_laneselect_, v_1, v_2, v_3)] -[visit_exp `%X%`_shape{lanetype#4542, dim#4542, i#24035}((Jnn : Jnn <: lanetype), `%`_dim{i#24042}(M))] -[visit_exp lanetype#4542] -[visit_id lanetype#4542] -[visit_exp dim#4542] -[visit_id dim#4542] -[visit_exp i#24035] -[visit_id i#24035] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24042}(M))] +[visit_exp $ivternopnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_laneselect_, v_1, v_2, v_3)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#24042}(M)] -[visit_exp i#24042] -[visit_id i#24042] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43568,22 +37196,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_3] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{lanetype#4506 : lanetype, dim#4506 : dim, i#23882 : nat, Jnn : Jnn, i#23889 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), lanetype#4542 : lanetype, dim#4542 : dim, i#24035 : nat, i#24042 : nat}(`%X%`_shape{lanetype#4506, dim#4506, i#23882}((Jnn : Jnn <: lanetype), `%`_dim{i#23889}(M)), `RELAXED_LANESELECT`_vternop_, v_1, v_2, v_3) = $ivternopnd_(`%X%`_shape{lanetype#4542, dim#4542, i#24035}((Jnn : Jnn <: lanetype), `%`_dim{i#24042}(M)), def $irelaxed_laneselect_, v_1, v_2, v_3) -[check_dims] Fnn M dim#4554 dim#4603 i#24077 i#24084 i#24243 i#24250 lanetype#4554 lanetype#4603 v_1 v_2 v_3 -[visit_exp `%X%`_shape{lanetype#4554, dim#4554, i#24077}((Fnn : Fnn <: lanetype), `%`_dim{i#24084}(M))] -[visit_exp lanetype#4554] -[visit_id lanetype#4554] -[visit_exp dim#4554] -[visit_id dim#4554] -[visit_exp i#24077] -[visit_id i#24077] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#24084}(M))] + def $vternop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `RELAXED_LANESELECT`_vternop_, v_1, v_2, v_3) = $ivternopnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_laneselect_, v_1, v_2, v_3) +[check_dims] Fnn M v_1 v_2 v_3 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#24084}(M)] -[visit_exp i#24084] -[visit_id i#24084] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43595,21 +37215,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] [visit_exp v_3] [visit_id v_3] -[visit_exp $fvternop_(`%X%`_shape{lanetype#4603, dim#4603, i#24243}((Fnn : Fnn <: lanetype), `%`_dim{i#24250}(M)), def $frelaxed_madd_, v_1, v_2, v_3)] -[visit_exp `%X%`_shape{lanetype#4603, dim#4603, i#24243}((Fnn : Fnn <: lanetype), `%`_dim{i#24250}(M))] -[visit_exp lanetype#4603] -[visit_id lanetype#4603] -[visit_exp dim#4603] -[visit_id dim#4603] -[visit_exp i#24243] -[visit_id i#24243] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#24250}(M))] +[visit_exp $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_madd_, v_1, v_2, v_3)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#24250}(M)] -[visit_exp i#24250] -[visit_id i#24250] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43621,22 +37233,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_3] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{lanetype#4554 : lanetype, dim#4554 : dim, i#24077 : nat, Fnn : Fnn, i#24084 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), lanetype#4603 : lanetype, dim#4603 : dim, i#24243 : nat, i#24250 : nat}(`%X%`_shape{lanetype#4554, dim#4554, i#24077}((Fnn : Fnn <: lanetype), `%`_dim{i#24084}(M)), `RELAXED_MADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape{lanetype#4603, dim#4603, i#24243}((Fnn : Fnn <: lanetype), `%`_dim{i#24250}(M)), def $frelaxed_madd_, v_1, v_2, v_3) -[check_dims] Fnn M dim#4615 dim#4664 i#24285 i#24292 i#24451 i#24458 lanetype#4615 lanetype#4664 v_1 v_2 v_3 -[visit_exp `%X%`_shape{lanetype#4615, dim#4615, i#24285}((Fnn : Fnn <: lanetype), `%`_dim{i#24292}(M))] -[visit_exp lanetype#4615] -[visit_id lanetype#4615] -[visit_exp dim#4615] -[visit_id dim#4615] -[visit_exp i#24285] -[visit_id i#24285] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#24292}(M))] + def $vternop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_MADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_madd_, v_1, v_2, v_3) +[check_dims] Fnn M v_1 v_2 v_3 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#24292}(M)] -[visit_exp i#24292] -[visit_id i#24292] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43648,21 +37252,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] [visit_exp v_3] [visit_id v_3] -[visit_exp $fvternop_(`%X%`_shape{lanetype#4664, dim#4664, i#24451}((Fnn : Fnn <: lanetype), `%`_dim{i#24458}(M)), def $frelaxed_nmadd_, v_1, v_2, v_3)] -[visit_exp `%X%`_shape{lanetype#4664, dim#4664, i#24451}((Fnn : Fnn <: lanetype), `%`_dim{i#24458}(M))] -[visit_exp lanetype#4664] -[visit_id lanetype#4664] -[visit_exp dim#4664] -[visit_id dim#4664] -[visit_exp i#24451] -[visit_id i#24451] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#24458}(M))] +[visit_exp $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_nmadd_, v_1, v_2, v_3)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#24458}(M)] -[visit_exp i#24458] -[visit_id i#24458] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43674,22 +37270,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_3] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{lanetype#4615 : lanetype, dim#4615 : dim, i#24285 : nat, Fnn : Fnn, i#24292 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), lanetype#4664 : lanetype, dim#4664 : dim, i#24451 : nat, i#24458 : nat}(`%X%`_shape{lanetype#4615, dim#4615, i#24285}((Fnn : Fnn <: lanetype), `%`_dim{i#24292}(M)), `RELAXED_NMADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape{lanetype#4664, dim#4664, i#24451}((Fnn : Fnn <: lanetype), `%`_dim{i#24458}(M)), def $frelaxed_nmadd_, v_1, v_2, v_3) -[check_dims] Jnn M dim#4676 dim#4688 i#24493 i#24500 i#24539 i#24546 lanetype#4676 lanetype#4688 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4676, dim#4676, i#24493}((Jnn : Jnn <: lanetype), `%`_dim{i#24500}(M))] -[visit_exp lanetype#4676] -[visit_id lanetype#4676] -[visit_exp dim#4676] -[visit_id dim#4676] -[visit_exp i#24493] -[visit_id i#24493] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24500}(M))] + def $vternop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_NMADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_nmadd_, v_1, v_2, v_3) +[check_dims] Jnn M v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#24500}(M)] -[visit_exp i#24500] -[visit_id i#24500] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43699,21 +37287,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivrelop_(`%X%`_shape{lanetype#4688, dim#4688, i#24539}((Jnn : Jnn <: lanetype), `%`_dim{i#24546}(M)), def $ieq_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4688, dim#4688, i#24539}((Jnn : Jnn <: lanetype), `%`_dim{i#24546}(M))] -[visit_exp lanetype#4688] -[visit_id lanetype#4688] -[visit_exp dim#4688] -[visit_id dim#4688] -[visit_exp i#24539] -[visit_id i#24539] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24546}(M))] +[visit_exp $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ieq_, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#24546}(M)] -[visit_exp i#24546] -[visit_id i#24546] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43723,22 +37303,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4676 : lanetype, dim#4676 : dim, i#24493 : nat, Jnn : Jnn, i#24500 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4688 : lanetype, dim#4688 : dim, i#24539 : nat, i#24546 : nat}(`%X%`_shape{lanetype#4676, dim#4676, i#24493}((Jnn : Jnn <: lanetype), `%`_dim{i#24500}(M)), `EQ`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape{lanetype#4688, dim#4688, i#24539}((Jnn : Jnn <: lanetype), `%`_dim{i#24546}(M)), def $ieq_, v_1, v_2) -[check_dims] Jnn M dim#4700 dim#4712 i#24571 i#24578 i#24617 i#24624 lanetype#4700 lanetype#4712 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4700, dim#4700, i#24571}((Jnn : Jnn <: lanetype), `%`_dim{i#24578}(M))] -[visit_exp lanetype#4700] -[visit_id lanetype#4700] -[visit_exp dim#4700] -[visit_id dim#4700] -[visit_exp i#24571] -[visit_id i#24571] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24578}(M))] + def $vrelop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `EQ`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ieq_, v_1, v_2) +[check_dims] Jnn M v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#24578}(M)] -[visit_exp i#24578] -[visit_id i#24578] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -43748,21 +37320,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivrelop_(`%X%`_shape{lanetype#4712, dim#4712, i#24617}((Jnn : Jnn <: lanetype), `%`_dim{i#24624}(M)), def $ine_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4712, dim#4712, i#24617}((Jnn : Jnn <: lanetype), `%`_dim{i#24624}(M))] -[visit_exp lanetype#4712] -[visit_id lanetype#4712] -[visit_exp dim#4712] -[visit_id dim#4712] -[visit_exp i#24617] -[visit_id i#24617] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24624}(M))] +[visit_exp $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ine_, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#24624}(M)] -[visit_exp i#24624] -[visit_id i#24624] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43772,28 +37336,18 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4700 : lanetype, dim#4700 : dim, i#24571 : nat, Jnn : Jnn, i#24578 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4712 : lanetype, dim#4712 : dim, i#24617 : nat, i#24624 : nat}(`%X%`_shape{lanetype#4700, dim#4700, i#24571}((Jnn : Jnn <: lanetype), `%`_dim{i#24578}(M)), `NE`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape{lanetype#4712, dim#4712, i#24617}((Jnn : Jnn <: lanetype), `%`_dim{i#24624}(M)), def $ine_, v_1, v_2) -[check_dims] Jnn M dim#4724 dim#4736 i#24649 i#24656 i#24695 i#24702 lanetype#4724 lanetype#4736 sx sx#104 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4724, dim#4724, i#24649}((Jnn : Jnn <: lanetype), `%`_dim{i#24656}(M))] -[visit_exp lanetype#4724] -[visit_id lanetype#4724] -[visit_exp dim#4724] -[visit_id dim#4724] -[visit_exp i#24649] -[visit_id i#24649] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24656}(M))] + def $vrelop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `NE`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ine_, v_1, v_2) +[check_dims] Jnn M sx v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#24656}(M)] -[visit_exp i#24656] -[visit_id i#24656] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[visit_exp `LT`_vrelop_{sx#104}(sx)] -[visit_exp sx#104] -[visit_id sx#104] +[visit_exp `LT`_vrelop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -43801,21 +37355,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivrelopsx_(`%X%`_shape{lanetype#4736, dim#4736, i#24695}((Jnn : Jnn <: lanetype), `%`_dim{i#24702}(M)), def $ilt_, sx, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4736, dim#4736, i#24695}((Jnn : Jnn <: lanetype), `%`_dim{i#24702}(M))] -[visit_exp lanetype#4736] -[visit_id lanetype#4736] -[visit_exp dim#4736] -[visit_id dim#4736] -[visit_exp i#24695] -[visit_id i#24695] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24702}(M))] +[visit_exp $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ilt_, sx, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#24702}(M)] -[visit_exp i#24702] -[visit_id i#24702] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43827,28 +37373,18 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4724 : lanetype, dim#4724 : dim, i#24649 : nat, Jnn : Jnn, i#24656 : nat, M : M, sx#104 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4736 : lanetype, dim#4736 : dim, i#24695 : nat, i#24702 : nat}(`%X%`_shape{lanetype#4724, dim#4724, i#24649}((Jnn : Jnn <: lanetype), `%`_dim{i#24656}(M)), `LT`_vrelop_{sx#104}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4736, dim#4736, i#24695}((Jnn : Jnn <: lanetype), `%`_dim{i#24702}(M)), def $ilt_, sx, v_1, v_2) -[check_dims] Jnn M dim#4748 dim#4760 i#24727 i#24734 i#24773 i#24780 lanetype#4748 lanetype#4760 sx sx#106 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4748, dim#4748, i#24727}((Jnn : Jnn <: lanetype), `%`_dim{i#24734}(M))] -[visit_exp lanetype#4748] -[visit_id lanetype#4748] -[visit_exp dim#4748] -[visit_id dim#4748] -[visit_exp i#24727] -[visit_id i#24727] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24734}(M))] + def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `LT`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ilt_, sx, v_1, v_2) +[check_dims] Jnn M sx v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#24734}(M)] -[visit_exp i#24734] -[visit_id i#24734] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[visit_exp `GT`_vrelop_{sx#106}(sx)] -[visit_exp sx#106] -[visit_id sx#106] +[visit_exp `GT`_vrelop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -43856,21 +37392,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivrelopsx_(`%X%`_shape{lanetype#4760, dim#4760, i#24773}((Jnn : Jnn <: lanetype), `%`_dim{i#24780}(M)), def $igt_, sx, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4760, dim#4760, i#24773}((Jnn : Jnn <: lanetype), `%`_dim{i#24780}(M))] -[visit_exp lanetype#4760] -[visit_id lanetype#4760] -[visit_exp dim#4760] -[visit_id dim#4760] -[visit_exp i#24773] -[visit_id i#24773] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24780}(M))] +[visit_exp $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $igt_, sx, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#24780}(M)] -[visit_exp i#24780] -[visit_id i#24780] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43882,28 +37410,18 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4748 : lanetype, dim#4748 : dim, i#24727 : nat, Jnn : Jnn, i#24734 : nat, M : M, sx#106 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4760 : lanetype, dim#4760 : dim, i#24773 : nat, i#24780 : nat}(`%X%`_shape{lanetype#4748, dim#4748, i#24727}((Jnn : Jnn <: lanetype), `%`_dim{i#24734}(M)), `GT`_vrelop_{sx#106}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4760, dim#4760, i#24773}((Jnn : Jnn <: lanetype), `%`_dim{i#24780}(M)), def $igt_, sx, v_1, v_2) -[check_dims] Jnn M dim#4772 dim#4784 i#24805 i#24812 i#24851 i#24858 lanetype#4772 lanetype#4784 sx sx#108 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4772, dim#4772, i#24805}((Jnn : Jnn <: lanetype), `%`_dim{i#24812}(M))] -[visit_exp lanetype#4772] -[visit_id lanetype#4772] -[visit_exp dim#4772] -[visit_id dim#4772] -[visit_exp i#24805] -[visit_id i#24805] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24812}(M))] + def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `GT`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $igt_, sx, v_1, v_2) +[check_dims] Jnn M sx v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#24812}(M)] -[visit_exp i#24812] -[visit_id i#24812] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[visit_exp `LE`_vrelop_{sx#108}(sx)] -[visit_exp sx#108] -[visit_id sx#108] +[visit_exp `LE`_vrelop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -43911,21 +37429,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivrelopsx_(`%X%`_shape{lanetype#4784, dim#4784, i#24851}((Jnn : Jnn <: lanetype), `%`_dim{i#24858}(M)), def $ile_, sx, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4784, dim#4784, i#24851}((Jnn : Jnn <: lanetype), `%`_dim{i#24858}(M))] -[visit_exp lanetype#4784] -[visit_id lanetype#4784] -[visit_exp dim#4784] -[visit_id dim#4784] -[visit_exp i#24851] -[visit_id i#24851] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24858}(M))] +[visit_exp $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ile_, sx, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#24858}(M)] -[visit_exp i#24858] -[visit_id i#24858] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43937,28 +37447,18 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4772 : lanetype, dim#4772 : dim, i#24805 : nat, Jnn : Jnn, i#24812 : nat, M : M, sx#108 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4784 : lanetype, dim#4784 : dim, i#24851 : nat, i#24858 : nat}(`%X%`_shape{lanetype#4772, dim#4772, i#24805}((Jnn : Jnn <: lanetype), `%`_dim{i#24812}(M)), `LE`_vrelop_{sx#108}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4784, dim#4784, i#24851}((Jnn : Jnn <: lanetype), `%`_dim{i#24858}(M)), def $ile_, sx, v_1, v_2) -[check_dims] Jnn M dim#4796 dim#4808 i#24883 i#24890 i#24929 i#24936 lanetype#4796 lanetype#4808 sx sx#110 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4796, dim#4796, i#24883}((Jnn : Jnn <: lanetype), `%`_dim{i#24890}(M))] -[visit_exp lanetype#4796] -[visit_id lanetype#4796] -[visit_exp dim#4796] -[visit_id dim#4796] -[visit_exp i#24883] -[visit_id i#24883] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24890}(M))] + def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `LE`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ile_, sx, v_1, v_2) +[check_dims] Jnn M sx v_1 v_2 +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#24890}(M)] -[visit_exp i#24890] -[visit_id i#24890] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[visit_exp `GE`_vrelop_{sx#110}(sx)] -[visit_exp sx#110] -[visit_id sx#110] +[visit_exp `GE`_vrelop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -43966,21 +37466,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivrelopsx_(`%X%`_shape{lanetype#4808, dim#4808, i#24929}((Jnn : Jnn <: lanetype), `%`_dim{i#24936}(M)), def $ige_, sx, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4808, dim#4808, i#24929}((Jnn : Jnn <: lanetype), `%`_dim{i#24936}(M))] -[visit_exp lanetype#4808] -[visit_id lanetype#4808] -[visit_exp dim#4808] -[visit_id dim#4808] -[visit_exp i#24929] -[visit_id i#24929] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#24936}(M))] +[visit_exp $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ige_, sx, v_1, v_2)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#24936}(M)] -[visit_exp i#24936] -[visit_id i#24936] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -43992,22 +37484,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4796 : lanetype, dim#4796 : dim, i#24883 : nat, Jnn : Jnn, i#24890 : nat, M : M, sx#110 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4808 : lanetype, dim#4808 : dim, i#24929 : nat, i#24936 : nat}(`%X%`_shape{lanetype#4796, dim#4796, i#24883}((Jnn : Jnn <: lanetype), `%`_dim{i#24890}(M)), `GE`_vrelop_{sx#110}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4808, dim#4808, i#24929}((Jnn : Jnn <: lanetype), `%`_dim{i#24936}(M)), def $ige_, sx, v_1, v_2) -[check_dims] Fnn M dim#4820 dim#4845 i#24961 i#24968 i#25020 i#25027 lanetype#4820 lanetype#4845 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4820, dim#4820, i#24961}((Fnn : Fnn <: lanetype), `%`_dim{i#24968}(M))] -[visit_exp lanetype#4820] -[visit_id lanetype#4820] -[visit_exp dim#4820] -[visit_id dim#4820] -[visit_exp i#24961] -[visit_id i#24961] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#24968}(M))] + def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `GE`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ige_, sx, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#24968}(M)] -[visit_exp i#24968] -[visit_id i#24968] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -44017,21 +37501,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvrelop_(`%X%`_shape{lanetype#4845, dim#4845, i#25020}((Fnn : Fnn <: lanetype), `%`_dim{i#25027}(M)), def $feq_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4845, dim#4845, i#25020}((Fnn : Fnn <: lanetype), `%`_dim{i#25027}(M))] -[visit_exp lanetype#4845] -[visit_id lanetype#4845] -[visit_exp dim#4845] -[visit_id dim#4845] -[visit_exp i#25020] -[visit_id i#25020] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25027}(M))] +[visit_exp $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $feq_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#25027}(M)] -[visit_exp i#25027] -[visit_id i#25027] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -44041,22 +37517,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4820 : lanetype, dim#4820 : dim, i#24961 : nat, Fnn : Fnn, i#24968 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4845 : lanetype, dim#4845 : dim, i#25020 : nat, i#25027 : nat}(`%X%`_shape{lanetype#4820, dim#4820, i#24961}((Fnn : Fnn <: lanetype), `%`_dim{i#24968}(M)), `EQ`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4845, dim#4845, i#25020}((Fnn : Fnn <: lanetype), `%`_dim{i#25027}(M)), def $feq_, v_1, v_2) -[check_dims] Fnn M dim#4857 dim#4882 i#25052 i#25059 i#25111 i#25118 lanetype#4857 lanetype#4882 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4857, dim#4857, i#25052}((Fnn : Fnn <: lanetype), `%`_dim{i#25059}(M))] -[visit_exp lanetype#4857] -[visit_id lanetype#4857] -[visit_exp dim#4857] -[visit_id dim#4857] -[visit_exp i#25052] -[visit_id i#25052] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25059}(M))] + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `EQ`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $feq_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#25059}(M)] -[visit_exp i#25059] -[visit_id i#25059] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -44066,21 +37534,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvrelop_(`%X%`_shape{lanetype#4882, dim#4882, i#25111}((Fnn : Fnn <: lanetype), `%`_dim{i#25118}(M)), def $fne_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4882, dim#4882, i#25111}((Fnn : Fnn <: lanetype), `%`_dim{i#25118}(M))] -[visit_exp lanetype#4882] -[visit_id lanetype#4882] -[visit_exp dim#4882] -[visit_id dim#4882] -[visit_exp i#25111] -[visit_id i#25111] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25118}(M))] +[visit_exp $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fne_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#25118}(M)] -[visit_exp i#25118] -[visit_id i#25118] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -44090,22 +37550,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4857 : lanetype, dim#4857 : dim, i#25052 : nat, Fnn : Fnn, i#25059 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4882 : lanetype, dim#4882 : dim, i#25111 : nat, i#25118 : nat}(`%X%`_shape{lanetype#4857, dim#4857, i#25052}((Fnn : Fnn <: lanetype), `%`_dim{i#25059}(M)), `NE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4882, dim#4882, i#25111}((Fnn : Fnn <: lanetype), `%`_dim{i#25118}(M)), def $fne_, v_1, v_2) -[check_dims] Fnn M dim#4894 dim#4919 i#25143 i#25150 i#25202 i#25209 lanetype#4894 lanetype#4919 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4894, dim#4894, i#25143}((Fnn : Fnn <: lanetype), `%`_dim{i#25150}(M))] -[visit_exp lanetype#4894] -[visit_id lanetype#4894] -[visit_exp dim#4894] -[visit_id dim#4894] -[visit_exp i#25143] -[visit_id i#25143] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25150}(M))] + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `NE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fne_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#25150}(M)] -[visit_exp i#25150] -[visit_id i#25150] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -44115,21 +37567,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvrelop_(`%X%`_shape{lanetype#4919, dim#4919, i#25202}((Fnn : Fnn <: lanetype), `%`_dim{i#25209}(M)), def $flt_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4919, dim#4919, i#25202}((Fnn : Fnn <: lanetype), `%`_dim{i#25209}(M))] -[visit_exp lanetype#4919] -[visit_id lanetype#4919] -[visit_exp dim#4919] -[visit_id dim#4919] -[visit_exp i#25202] -[visit_id i#25202] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25209}(M))] +[visit_exp $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $flt_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#25209}(M)] -[visit_exp i#25209] -[visit_id i#25209] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -44139,22 +37583,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4894 : lanetype, dim#4894 : dim, i#25143 : nat, Fnn : Fnn, i#25150 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4919 : lanetype, dim#4919 : dim, i#25202 : nat, i#25209 : nat}(`%X%`_shape{lanetype#4894, dim#4894, i#25143}((Fnn : Fnn <: lanetype), `%`_dim{i#25150}(M)), `LT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4919, dim#4919, i#25202}((Fnn : Fnn <: lanetype), `%`_dim{i#25209}(M)), def $flt_, v_1, v_2) -[check_dims] Fnn M dim#4931 dim#4956 i#25234 i#25241 i#25293 i#25300 lanetype#4931 lanetype#4956 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4931, dim#4931, i#25234}((Fnn : Fnn <: lanetype), `%`_dim{i#25241}(M))] -[visit_exp lanetype#4931] -[visit_id lanetype#4931] -[visit_exp dim#4931] -[visit_id dim#4931] -[visit_exp i#25234] -[visit_id i#25234] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25241}(M))] + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `LT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $flt_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#25241}(M)] -[visit_exp i#25241] -[visit_id i#25241] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -44164,21 +37600,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvrelop_(`%X%`_shape{lanetype#4956, dim#4956, i#25293}((Fnn : Fnn <: lanetype), `%`_dim{i#25300}(M)), def $fgt_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4956, dim#4956, i#25293}((Fnn : Fnn <: lanetype), `%`_dim{i#25300}(M))] -[visit_exp lanetype#4956] -[visit_id lanetype#4956] -[visit_exp dim#4956] -[visit_id dim#4956] -[visit_exp i#25293] -[visit_id i#25293] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25300}(M))] +[visit_exp $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fgt_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#25300}(M)] -[visit_exp i#25300] -[visit_id i#25300] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -44188,22 +37616,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4931 : lanetype, dim#4931 : dim, i#25234 : nat, Fnn : Fnn, i#25241 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4956 : lanetype, dim#4956 : dim, i#25293 : nat, i#25300 : nat}(`%X%`_shape{lanetype#4931, dim#4931, i#25234}((Fnn : Fnn <: lanetype), `%`_dim{i#25241}(M)), `GT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4956, dim#4956, i#25293}((Fnn : Fnn <: lanetype), `%`_dim{i#25300}(M)), def $fgt_, v_1, v_2) -[check_dims] Fnn M dim#4968 dim#4993 i#25325 i#25332 i#25384 i#25391 lanetype#4968 lanetype#4993 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#4968, dim#4968, i#25325}((Fnn : Fnn <: lanetype), `%`_dim{i#25332}(M))] -[visit_exp lanetype#4968] -[visit_id lanetype#4968] -[visit_exp dim#4968] -[visit_id dim#4968] -[visit_exp i#25325] -[visit_id i#25325] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25332}(M))] + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `GT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fgt_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#25332}(M)] -[visit_exp i#25332] -[visit_id i#25332] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -44213,21 +37633,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvrelop_(`%X%`_shape{lanetype#4993, dim#4993, i#25384}((Fnn : Fnn <: lanetype), `%`_dim{i#25391}(M)), def $fle_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#4993, dim#4993, i#25384}((Fnn : Fnn <: lanetype), `%`_dim{i#25391}(M))] -[visit_exp lanetype#4993] -[visit_id lanetype#4993] -[visit_exp dim#4993] -[visit_id dim#4993] -[visit_exp i#25384] -[visit_id i#25384] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25391}(M))] +[visit_exp $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fle_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#25391}(M)] -[visit_exp i#25391] -[visit_id i#25391] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -44237,22 +37649,14 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4968 : lanetype, dim#4968 : dim, i#25325 : nat, Fnn : Fnn, i#25332 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4993 : lanetype, dim#4993 : dim, i#25384 : nat, i#25391 : nat}(`%X%`_shape{lanetype#4968, dim#4968, i#25325}((Fnn : Fnn <: lanetype), `%`_dim{i#25332}(M)), `LE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4993, dim#4993, i#25384}((Fnn : Fnn <: lanetype), `%`_dim{i#25391}(M)), def $fle_, v_1, v_2) -[check_dims] Fnn M dim#5005 dim#5030 i#25416 i#25423 i#25475 i#25482 lanetype#5005 lanetype#5030 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#5005, dim#5005, i#25416}((Fnn : Fnn <: lanetype), `%`_dim{i#25423}(M))] -[visit_exp lanetype#5005] -[visit_id lanetype#5005] -[visit_exp dim#5005] -[visit_id dim#5005] -[visit_exp i#25416] -[visit_id i#25416] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25423}(M))] + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `LE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fle_, v_1, v_2) +[check_dims] Fnn M v_1 v_2 +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp `%`_dim{i#25423}(M)] -[visit_exp i#25423] -[visit_id i#25423] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -44262,21 +37666,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $fvrelop_(`%X%`_shape{lanetype#5030, dim#5030, i#25475}((Fnn : Fnn <: lanetype), `%`_dim{i#25482}(M)), def $fge_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#5030, dim#5030, i#25475}((Fnn : Fnn <: lanetype), `%`_dim{i#25482}(M))] -[visit_exp lanetype#5030] -[visit_id lanetype#5030] -[visit_exp dim#5030] -[visit_id dim#5030] -[visit_exp i#25475] -[visit_id i#25475] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim{i#25482}(M))] +[visit_exp $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fge_, v_1, v_2)] +[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] +[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] [visit_exp (Fnn : Fnn <: lanetype)] [visit_exp Fnn] [visit_id Fnn] not free -[visit_exp `%`_dim{i#25482}(M)] -[visit_exp i#25482] -[visit_id i#25482] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -44286,28 +37682,16 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#5005 : lanetype, dim#5005 : dim, i#25416 : nat, Fnn : Fnn, i#25423 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5030 : lanetype, dim#5030 : dim, i#25475 : nat, i#25482 : nat}(`%X%`_shape{lanetype#5005, dim#5005, i#25416}((Fnn : Fnn <: lanetype), `%`_dim{i#25423}(M)), `GE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#5030, dim#5030, i#25475}((Fnn : Fnn <: lanetype), `%`_dim{i#25482}(M)), def $fge_, v_1, v_2) -[check_dims] Jnn Jnn#119 M dim#5042 dim#5054 i i#25507 i#25514 i#25553 i#25560 lanetype#5042 lanetype#5054 shape#421 v -[visit_exp `%`_ishape{shape#421, Jnn#119}(`%X%`_shape{lanetype#5042, dim#5042, i#25507}((Jnn : Jnn <: lanetype), `%`_dim{i#25514}(M)))] -[visit_exp shape#421] -[visit_id shape#421] -[visit_exp Jnn#119] -[visit_id Jnn#119] -[visit_exp (`%X%`_shape{lanetype#5042, dim#5042, i#25507}((Jnn : Jnn <: lanetype), `%`_dim{i#25514}(M)))] -[visit_exp `%X%`_shape{lanetype#5042, dim#5042, i#25507}((Jnn : Jnn <: lanetype), `%`_dim{i#25514}(M))] -[visit_exp lanetype#5042] -[visit_id lanetype#5042] -[visit_exp dim#5042] -[visit_id dim#5042] -[visit_exp i#25507] -[visit_id i#25507] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#25514}(M))] + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `GE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fge_, v_1, v_2) +[check_dims] Jnn M i v +[visit_exp `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] +[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#25514}(M)] -[visit_exp i#25514] -[visit_id i#25514] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -44317,21 +37701,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v] [visit_exp i] [visit_id i] -[visit_exp $ivshiftop_(`%X%`_shape{lanetype#5054, dim#5054, i#25553}((Jnn : Jnn <: lanetype), `%`_dim{i#25560}(M)), def $ishl_, v, i)] -[visit_exp `%X%`_shape{lanetype#5054, dim#5054, i#25553}((Jnn : Jnn <: lanetype), `%`_dim{i#25560}(M))] -[visit_exp lanetype#5054] -[visit_id lanetype#5054] -[visit_exp dim#5054] -[visit_id dim#5054] -[visit_exp i#25553] -[visit_id i#25553] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#25560}(M))] +[visit_exp $ivshiftop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishl_, v, i)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#25560}(M)] -[visit_exp i#25560] -[visit_id i#25560] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -44341,34 +37717,20 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id i] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshiftop_{shape#421 : shape, Jnn#119 : Jnn, lanetype#5042 : lanetype, dim#5042 : dim, i#25507 : nat, Jnn : Jnn, i#25514 : nat, M : M, v : vec_(`V128`_Vnn), i : u32, lanetype#5054 : lanetype, dim#5054 : dim, i#25553 : nat, i#25560 : nat}(`%`_ishape{shape#421, Jnn#119}(`%X%`_shape{lanetype#5042, dim#5042, i#25507}((Jnn : Jnn <: lanetype), `%`_dim{i#25514}(M))), `SHL`_vshiftop_, v, i) = $ivshiftop_(`%X%`_shape{lanetype#5054, dim#5054, i#25553}((Jnn : Jnn <: lanetype), `%`_dim{i#25560}(M)), def $ishl_, v, i) -[check_dims] Jnn Jnn#123 M dim#5066 dim#5078 i i#25585 i#25592 i#25631 i#25638 lanetype#5066 lanetype#5078 shape#433 sx sx#112 v -[visit_exp `%`_ishape{shape#433, Jnn#123}(`%X%`_shape{lanetype#5066, dim#5066, i#25585}((Jnn : Jnn <: lanetype), `%`_dim{i#25592}(M)))] -[visit_exp shape#433] -[visit_id shape#433] -[visit_exp Jnn#123] -[visit_id Jnn#123] -[visit_exp (`%X%`_shape{lanetype#5066, dim#5066, i#25585}((Jnn : Jnn <: lanetype), `%`_dim{i#25592}(M)))] -[visit_exp `%X%`_shape{lanetype#5066, dim#5066, i#25585}((Jnn : Jnn <: lanetype), `%`_dim{i#25592}(M))] -[visit_exp lanetype#5066] -[visit_id lanetype#5066] -[visit_exp dim#5066] -[visit_id dim#5066] -[visit_exp i#25585] -[visit_id i#25585] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#25592}(M))] + def $vshiftop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn), i : u32}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `SHL`_vshiftop_, v, i) = $ivshiftop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishl_, v, i) +[check_dims] Jnn M i sx v +[visit_exp `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] +[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#25592}(M)] -[visit_exp i#25592] -[visit_id i#25592] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[visit_exp `SHR`_vshiftop_{sx#112}(sx)] -[visit_exp sx#112] -[visit_id sx#112] +[visit_exp `SHR`_vshiftop_(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] @@ -44376,21 +37738,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v] [visit_exp i] [visit_id i] -[visit_exp $ivshiftopsx_(`%X%`_shape{lanetype#5078, dim#5078, i#25631}((Jnn : Jnn <: lanetype), `%`_dim{i#25638}(M)), def $ishr_, sx, v, i)] -[visit_exp `%X%`_shape{lanetype#5078, dim#5078, i#25631}((Jnn : Jnn <: lanetype), `%`_dim{i#25638}(M))] -[visit_exp lanetype#5078] -[visit_id lanetype#5078] -[visit_exp dim#5078] -[visit_id dim#5078] -[visit_exp i#25631] -[visit_id i#25631] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#25638}(M))] +[visit_exp $ivshiftopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishr_, sx, v, i)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#25638}(M)] -[visit_exp i#25638] -[visit_id i#25638] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -44402,48 +37756,28 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id i] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshiftop_{shape#433 : shape, Jnn#123 : Jnn, lanetype#5066 : lanetype, dim#5066 : dim, i#25585 : nat, Jnn : Jnn, i#25592 : nat, M : M, sx#112 : sx, sx : sx, v : vec_(`V128`_Vnn), i : u32, lanetype#5078 : lanetype, dim#5078 : dim, i#25631 : nat, i#25638 : nat}(`%`_ishape{shape#433, Jnn#123}(`%X%`_shape{lanetype#5066, dim#5066, i#25585}((Jnn : Jnn <: lanetype), `%`_dim{i#25592}(M))), `SHR`_vshiftop_{sx#112}(sx), v, i) = $ivshiftopsx_(`%X%`_shape{lanetype#5078, dim#5078, i#25631}((Jnn : Jnn <: lanetype), `%`_dim{i#25638}(M)), def $ishr_, sx, v, i) -[check_dims] Jnn Jnn#127 M dim#5090 dim#5102 i#25663 i#25670 i#25697 i#25704 lanetype#5090 lanetype#5102 shape#445 v -[visit_exp `%`_ishape{shape#445, Jnn#127}(`%X%`_shape{lanetype#5090, dim#5090, i#25663}((Jnn : Jnn <: lanetype), `%`_dim{i#25670}(M)))] -[visit_exp shape#445] -[visit_id shape#445] -[visit_exp Jnn#127] -[visit_id Jnn#127] -[visit_exp (`%X%`_shape{lanetype#5090, dim#5090, i#25663}((Jnn : Jnn <: lanetype), `%`_dim{i#25670}(M)))] -[visit_exp `%X%`_shape{lanetype#5090, dim#5090, i#25663}((Jnn : Jnn <: lanetype), `%`_dim{i#25670}(M))] -[visit_exp lanetype#5090] -[visit_id lanetype#5090] -[visit_exp dim#5090] -[visit_id dim#5090] -[visit_exp i#25663] -[visit_id i#25663] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#25670}(M))] + def $vshiftop_{Jnn : Jnn, M : M, sx : sx, v : vec_(`V128`_Vnn), i : u32}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `SHR`_vshiftop_(sx), v, i) = $ivshiftopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishr_, sx, v, i) +[check_dims] Jnn M v +[visit_exp `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] +[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#25670}(M)] -[visit_exp i#25670] -[visit_id i#25670] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] [visit_exp v] [visit_id v] -[visit_exp $ivbitmaskop_(`%X%`_shape{lanetype#5102, dim#5102, i#25697}((Jnn : Jnn <: lanetype), `%`_dim{i#25704}(M)), v)] -[visit_exp `%X%`_shape{lanetype#5102, dim#5102, i#25697}((Jnn : Jnn <: lanetype), `%`_dim{i#25704}(M))] -[visit_exp lanetype#5102] -[visit_id lanetype#5102] -[visit_exp dim#5102] -[visit_id dim#5102] -[visit_exp i#25697] -[visit_id i#25697] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#25704}(M))] +[visit_exp $ivbitmaskop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#25704}(M)] -[visit_exp i#25704] -[visit_id i#25704] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -44451,25 +37785,15 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbitmaskop_{shape#445 : shape, Jnn#127 : Jnn, lanetype#5090 : lanetype, dim#5090 : dim, i#25663 : nat, Jnn : Jnn, i#25670 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#5102 : lanetype, dim#5102 : dim, i#25697 : nat, i#25704 : nat}(`%`_ishape{shape#445, Jnn#127}(`%X%`_shape{lanetype#5090, dim#5090, i#25663}((Jnn : Jnn <: lanetype), `%`_dim{i#25670}(M))), v) = $ivbitmaskop_(`%X%`_shape{lanetype#5102, dim#5102, i#25697}((Jnn : Jnn <: lanetype), `%`_dim{i#25704}(M)), v) -[check_dims] M dim#5114 dim#5126 i#25719 i#25726 i#25765 i#25772 lanetype#5114 lanetype#5126 shape#457 v_1 v_2 -[visit_exp `%`_bshape{shape#457}(`%X%`_shape{lanetype#5114, dim#5114, i#25719}(`I8`_lanetype, `%`_dim{i#25726}(M)))] -[visit_exp shape#457] -[visit_id shape#457] -[visit_exp (`%X%`_shape{lanetype#5114, dim#5114, i#25719}(`I8`_lanetype, `%`_dim{i#25726}(M)))] -[visit_exp `%X%`_shape{lanetype#5114, dim#5114, i#25719}(`I8`_lanetype, `%`_dim{i#25726}(M))] -[visit_exp lanetype#5114] -[visit_id lanetype#5114] -[visit_exp dim#5114] -[visit_id dim#5114] -[visit_exp i#25719] -[visit_id i#25719] -[visit_exp (`I8`_lanetype, `%`_dim{i#25726}(M))] + def $vbitmaskop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), v) = $ivbitmaskop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v) +[check_dims] M v_1 v_2 +[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] +[visit_exp (`I8`_lanetype, `%`_dim(M))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#25726}(M)] -[visit_exp i#25726] -[visit_id i#25726] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -44479,20 +37803,12 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivswizzlop_(`%X%`_shape{lanetype#5126, dim#5126, i#25765}(`I8`_lanetype, `%`_dim{i#25772}(M)), def $iswizzle_lane_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#5126, dim#5126, i#25765}(`I8`_lanetype, `%`_dim{i#25772}(M))] -[visit_exp lanetype#5126] -[visit_id lanetype#5126] -[visit_exp dim#5126] -[visit_id dim#5126] -[visit_exp i#25765] -[visit_id i#25765] -[visit_exp (`I8`_lanetype, `%`_dim{i#25772}(M))] +[visit_exp $ivswizzlop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), def $iswizzle_lane_, v_1, v_2)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] +[visit_exp (`I8`_lanetype, `%`_dim(M))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#25772}(M)] -[visit_exp i#25772] -[visit_id i#25772] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -44502,25 +37818,15 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vswizzlop_{shape#457 : shape, lanetype#5114 : lanetype, dim#5114 : dim, i#25719 : nat, i#25726 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5126 : lanetype, dim#5126 : dim, i#25765 : nat, i#25772 : nat}(`%`_bshape{shape#457}(`%X%`_shape{lanetype#5114, dim#5114, i#25719}(`I8`_lanetype, `%`_dim{i#25726}(M))), `SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape{lanetype#5126, dim#5126, i#25765}(`I8`_lanetype, `%`_dim{i#25772}(M)), def $iswizzle_lane_, v_1, v_2) -[check_dims] M dim#5138 dim#5150 i#25797 i#25804 i#25843 i#25850 lanetype#5138 lanetype#5150 shape#469 v_1 v_2 -[visit_exp `%`_bshape{shape#469}(`%X%`_shape{lanetype#5138, dim#5138, i#25797}(`I8`_lanetype, `%`_dim{i#25804}(M)))] -[visit_exp shape#469] -[visit_id shape#469] -[visit_exp (`%X%`_shape{lanetype#5138, dim#5138, i#25797}(`I8`_lanetype, `%`_dim{i#25804}(M)))] -[visit_exp `%X%`_shape{lanetype#5138, dim#5138, i#25797}(`I8`_lanetype, `%`_dim{i#25804}(M))] -[visit_exp lanetype#5138] -[visit_id lanetype#5138] -[visit_exp dim#5138] -[visit_id dim#5138] -[visit_exp i#25797] -[visit_id i#25797] -[visit_exp (`I8`_lanetype, `%`_dim{i#25804}(M))] + def $vswizzlop_{M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M))), `SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), def $iswizzle_lane_, v_1, v_2) +[check_dims] M v_1 v_2 +[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] +[visit_exp (`I8`_lanetype, `%`_dim(M))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#25804}(M)] -[visit_exp i#25804] -[visit_id i#25804] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -44530,20 +37836,12 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivswizzlop_(`%X%`_shape{lanetype#5150, dim#5150, i#25843}(`I8`_lanetype, `%`_dim{i#25850}(M)), def $irelaxed_swizzle_lane_, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#5150, dim#5150, i#25843}(`I8`_lanetype, `%`_dim{i#25850}(M))] -[visit_exp lanetype#5150] -[visit_id lanetype#5150] -[visit_exp dim#5150] -[visit_id dim#5150] -[visit_exp i#25843] -[visit_id i#25843] -[visit_exp (`I8`_lanetype, `%`_dim{i#25850}(M))] +[visit_exp $ivswizzlop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), def $irelaxed_swizzle_lane_, v_1, v_2)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] +[visit_exp (`I8`_lanetype, `%`_dim(M))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#25850}(M)] -[visit_exp i#25850] -[visit_id i#25850] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -44553,25 +37851,15 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vswizzlop_{shape#469 : shape, lanetype#5138 : lanetype, dim#5138 : dim, i#25797 : nat, i#25804 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5150 : lanetype, dim#5150 : dim, i#25843 : nat, i#25850 : nat}(`%`_bshape{shape#469}(`%X%`_shape{lanetype#5138, dim#5138, i#25797}(`I8`_lanetype, `%`_dim{i#25804}(M))), `RELAXED_SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape{lanetype#5150, dim#5150, i#25843}(`I8`_lanetype, `%`_dim{i#25850}(M)), def $irelaxed_swizzle_lane_, v_1, v_2) -[check_dims] M dim#5162 dim#5174 i i#25875 i#25882 i#25946 i#25953 lanetype#5162 lanetype#5174 shape#481 v_1 v_2 -[visit_exp `%`_bshape{shape#481}(`%X%`_shape{lanetype#5162, dim#5162, i#25875}(`I8`_lanetype, `%`_dim{i#25882}(M)))] -[visit_exp shape#481] -[visit_id shape#481] -[visit_exp (`%X%`_shape{lanetype#5162, dim#5162, i#25875}(`I8`_lanetype, `%`_dim{i#25882}(M)))] -[visit_exp `%X%`_shape{lanetype#5162, dim#5162, i#25875}(`I8`_lanetype, `%`_dim{i#25882}(M))] -[visit_exp lanetype#5162] -[visit_id lanetype#5162] -[visit_exp dim#5162] -[visit_id dim#5162] -[visit_exp i#25875] -[visit_id i#25875] -[visit_exp (`I8`_lanetype, `%`_dim{i#25882}(M))] + def $vswizzlop_{M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M))), `RELAXED_SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), def $irelaxed_swizzle_lane_, v_1, v_2) +[check_dims] M i v_1 v_2 +[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] +[visit_exp (`I8`_lanetype, `%`_dim(M))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#25882}(M)] -[visit_exp i#25882] -[visit_id i#25882] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -44588,20 +37876,12 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivshufflop_(`%X%`_shape{lanetype#5174, dim#5174, i#25946}(`I8`_lanetype, `%`_dim{i#25953}(M)), i*{i <- `i*`}, v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#5174, dim#5174, i#25946}(`I8`_lanetype, `%`_dim{i#25953}(M))] -[visit_exp lanetype#5174] -[visit_id lanetype#5174] -[visit_exp dim#5174] -[visit_id dim#5174] -[visit_exp i#25946] -[visit_id i#25946] -[visit_exp (`I8`_lanetype, `%`_dim{i#25953}(M))] +[visit_exp $ivshufflop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), i*{i <- `i*`}, v_1, v_2)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] +[visit_exp (`I8`_lanetype, `%`_dim(M))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#25953}(M)] -[visit_exp i#25953] -[visit_id i#25953] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -44620,47 +37900,27 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshufflop_{shape#481 : shape, lanetype#5162 : lanetype, dim#5162 : dim, i#25875 : nat, i#25882 : nat, M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5174 : lanetype, dim#5174 : dim, i#25946 : nat, i#25953 : nat}(`%`_bshape{shape#481}(`%X%`_shape{lanetype#5162, dim#5162, i#25875}(`I8`_lanetype, `%`_dim{i#25882}(M))), i*{i <- `i*`}, v_1, v_2) = $ivshufflop_(`%X%`_shape{lanetype#5174, dim#5174, i#25946}(`I8`_lanetype, `%`_dim{i#25953}(M)), i*{i <- `i*`}, v_1, v_2) -[check_dims] Jnn_1 Jnn_2 M_1 M_2 c c_1 dim#5186 dim#5198 half half#5 i#26001 i#26008 i#26013 i#26020 lanetype#5186 lanetype#5198 sx sx#114 -[visit_exp `%X%`_shape{lanetype#5186, dim#5186, i#26001}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26008}(M_1))] -[visit_exp lanetype#5186] -[visit_id lanetype#5186] -[visit_exp dim#5186] -[visit_id dim#5186] -[visit_exp i#26001] -[visit_id i#26001] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26008}(M_1))] + def $vshufflop_{M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M))), i*{i <- `i*`}, v_1, v_2) = $ivshufflop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), i*{i <- `i*`}, v_1, v_2) +[check_dims] Jnn_1 Jnn_2 M_1 M_2 c c_1 half sx +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#26008}(M_1)] -[visit_exp i#26008] -[visit_id i#26008] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#5198, dim#5198, i#26013}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#26020}(M_2))] -[visit_exp lanetype#5198] -[visit_id lanetype#5198] -[visit_exp dim#5198] -[visit_id dim#5198] -[visit_exp i#26013] -[visit_id i#26013] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#26020}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#26020}(M_2)] -[visit_exp i#26020] -[visit_id i#26020] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `EXTEND`_vcvtop__{half#5, sx#114}(half, sx)] -[visit_exp half#5] -[visit_id half#5] -[visit_exp sx#114] -[visit_id sx#114] +[visit_exp `EXTEND`_vcvtop__(half, sx)] [visit_exp (half, sx)] [visit_exp half] [visit_id half] @@ -44689,48 +37949,28 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id c_1] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{lanetype#5186 : lanetype, dim#5186 : dim, i#26001 : nat, Jnn_1 : Jnn, i#26008 : nat, M_1 : M, lanetype#5198 : lanetype, dim#5198 : dim, i#26013 : nat, Jnn_2 : Jnn, i#26020 : nat, M_2 : M, half#5 : half, sx#114 : sx, half : half, sx : sx, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5186, dim#5186, i#26001}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26008}(M_1)))), c : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))}(`%X%`_shape{lanetype#5186, dim#5186, i#26001}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26008}(M_1)), `%X%`_shape{lanetype#5198, dim#5198, i#26013}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#26020}(M_2)), `EXTEND`_vcvtop__{half#5, sx#114}(half, sx), c_1) = [c] + def $lcvtop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx, c_1 : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))), c : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `EXTEND`_vcvtop__(half, sx), c_1) = [c] -- if (c = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)) -[check_dims] Fnn_2 Jnn_1 M_1 M_2 c c_1 dim#5222 dim#5234 half half?#5 i#26109 i#26116 i#26121 i#26128 lanetype#5222 lanetype#5234 sx sx#116 -[visit_exp `%X%`_shape{lanetype#5222, dim#5222, i#26109}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26116}(M_1))] -[visit_exp lanetype#5222] -[visit_id lanetype#5222] -[visit_exp dim#5222] -[visit_id dim#5222] -[visit_exp i#26109] -[visit_id i#26109] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26116}(M_1))] +[check_dims] Fnn_2 Jnn_1 M_1 M_2 c c_1 half sx +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#26116}(M_1)] -[visit_exp i#26116] -[visit_id i#26116] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#5234, dim#5234, i#26121}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26128}(M_2))] -[visit_exp lanetype#5234] -[visit_id lanetype#5234] -[visit_exp dim#5234] -[visit_id dim#5234] -[visit_exp i#26121] -[visit_id i#26121] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26128}(M_2))] +[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] [visit_exp (Fnn_2 : Fnn <: lanetype)] [visit_exp Fnn_2] [visit_id Fnn_2] -[visit_exp `%`_dim{i#26128}(M_2)] -[visit_exp i#26128] -[visit_id i#26128] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `CONVERT`_vcvtop__{`half?#5`, sx#116}(half?{half <- `half?`}, sx)] -[visit_exp `half?#5`] -[visit_id half?#5] -[visit_exp sx#116] -[visit_id sx#116] +[visit_exp `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)] [visit_exp (half?{half <- `half?`}, sx)] [visit_exp half?{half <- `half?`}] [scope_enter half] @@ -44766,48 +38006,28 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id c_1] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{lanetype#5222 : lanetype, dim#5222 : dim, i#26109 : nat, Jnn_1 : Jnn, i#26116 : nat, M_1 : M, lanetype#5234 : lanetype, dim#5234 : dim, i#26121 : nat, Fnn_2 : Fnn, i#26128 : nat, M_2 : M, `half?#5` : half?, sx#116 : sx, `half?` : half?, sx : sx, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5222, dim#5222, i#26109}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26116}(M_1)))), c : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))}(`%X%`_shape{lanetype#5222, dim#5222, i#26109}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26116}(M_1)), `%X%`_shape{lanetype#5234, dim#5234, i#26121}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26128}(M_2)), `CONVERT`_vcvtop__{`half?#5`, sx#116}(half?{half <- `half?`}, sx), c_1) = [c] + def $lcvtop__{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx, c_1 : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))), c : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `CONVERT`_vcvtop__(half?{half <- `half?`}, sx), c_1) = [c] -- if (c = $convert__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), sx, c_1)) -[check_dims] Fnn_1 Inn_2 M_1 M_2 c c_1 dim#5273 dim#5285 i#26208 i#26215 i#26220 i#26227 lanetype#5273 lanetype#5285 sx sx#148 zero zero?#39 -[visit_exp `%X%`_shape{lanetype#5273, dim#5273, i#26208}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26215}(M_1))] -[visit_exp lanetype#5273] -[visit_id lanetype#5273] -[visit_exp dim#5273] -[visit_id dim#5273] -[visit_exp i#26208] -[visit_id i#26208] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26215}(M_1))] +[check_dims] Fnn_1 Inn_2 M_1 M_2 c c_1 sx zero +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#26215}(M_1)] -[visit_exp i#26215] -[visit_id i#26215] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#5285, dim#5285, i#26220}((Inn_2 : Inn <: lanetype), `%`_dim{i#26227}(M_2))] -[visit_exp lanetype#5285] -[visit_id lanetype#5285] -[visit_exp dim#5285] -[visit_id dim#5285] -[visit_exp i#26220] -[visit_id i#26220] -[visit_exp ((Inn_2 : Inn <: lanetype), `%`_dim{i#26227}(M_2))] +[visit_exp `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Inn_2 : Inn <: lanetype), `%`_dim(M_2))] [visit_exp (Inn_2 : Inn <: lanetype)] [visit_exp Inn_2] [visit_id Inn_2] -[visit_exp `%`_dim{i#26227}(M_2)] -[visit_exp i#26227] -[visit_id i#26227] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `TRUNC_SAT`_vcvtop__{sx#148, `zero?#39`}(sx, zero?{zero <- `zero?`})] -[visit_exp sx#148] -[visit_id sx#148] -[visit_exp `zero?#39`] -[visit_id zero?#39] +[visit_exp `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})] [visit_exp (sx, zero?{zero <- `zero?`})] [visit_exp sx] [visit_id sx] @@ -44857,48 +38077,28 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id c_1] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{lanetype#5273 : lanetype, dim#5273 : dim, i#26208 : nat, Fnn_1 : Fnn, i#26215 : nat, M_1 : M, lanetype#5285 : lanetype, dim#5285 : dim, i#26220 : nat, Inn_2 : Inn, i#26227 : nat, M_2 : M, sx#148 : sx, `zero?#39` : zero?, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5273, dim#5273, i#26208}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26215}(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape{lanetype#5273, dim#5273, i#26208}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26215}(M_1)), `%X%`_shape{lanetype#5285, dim#5285, i#26220}((Inn_2 : Inn <: lanetype), `%`_dim{i#26227}(M_2)), `TRUNC_SAT`_vcvtop__{sx#148, `zero?#39`}(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) + def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Inn_2 : Inn, M_2 : M, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2)), `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) -- if (c?{c <- `c?`} = $trunc_sat__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)) -[check_dims] Fnn_1 Inn_2 M_1 M_2 c c_1 dim#5361 dim#5373 i#26384 i#26391 i#26396 i#26403 lanetype#5361 lanetype#5373 sx sx#180 zero zero?#71 -[visit_exp `%X%`_shape{lanetype#5361, dim#5361, i#26384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26391}(M_1))] -[visit_exp lanetype#5361] -[visit_id lanetype#5361] -[visit_exp dim#5361] -[visit_id dim#5361] -[visit_exp i#26384] -[visit_id i#26384] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26391}(M_1))] +[check_dims] Fnn_1 Inn_2 M_1 M_2 c c_1 sx zero +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#26391}(M_1)] -[visit_exp i#26391] -[visit_id i#26391] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#5373, dim#5373, i#26396}((Inn_2 : Inn <: lanetype), `%`_dim{i#26403}(M_2))] -[visit_exp lanetype#5373] -[visit_id lanetype#5373] -[visit_exp dim#5373] -[visit_id dim#5373] -[visit_exp i#26396] -[visit_id i#26396] -[visit_exp ((Inn_2 : Inn <: lanetype), `%`_dim{i#26403}(M_2))] +[visit_exp `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Inn_2 : Inn <: lanetype), `%`_dim(M_2))] [visit_exp (Inn_2 : Inn <: lanetype)] [visit_exp Inn_2] [visit_id Inn_2] -[visit_exp `%`_dim{i#26403}(M_2)] -[visit_exp i#26403] -[visit_id i#26403] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#180, `zero?#71`}(sx, zero?{zero <- `zero?`})] -[visit_exp sx#180] -[visit_id sx#180] -[visit_exp `zero?#71`] -[visit_id zero?#71] +[visit_exp `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})] [visit_exp (sx, zero?{zero <- `zero?`})] [visit_exp sx] [visit_id sx] @@ -44948,46 +38148,28 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id c_1] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{lanetype#5361 : lanetype, dim#5361 : dim, i#26384 : nat, Fnn_1 : Fnn, i#26391 : nat, M_1 : M, lanetype#5373 : lanetype, dim#5373 : dim, i#26396 : nat, Inn_2 : Inn, i#26403 : nat, M_2 : M, sx#180 : sx, `zero?#71` : zero?, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5361, dim#5361, i#26384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26391}(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape{lanetype#5361, dim#5361, i#26384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26391}(M_1)), `%X%`_shape{lanetype#5373, dim#5373, i#26396}((Inn_2 : Inn <: lanetype), `%`_dim{i#26403}(M_2)), `RELAXED_TRUNC`_vcvtop__{sx#180, `zero?#71`}(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) + def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Inn_2 : Inn, M_2 : M, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2)), `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) -- if (c?{c <- `c?`} = $relaxed_trunc__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)) -[check_dims] Fnn_1 Fnn_2 M_1 M_2 c c_1 dim#5449 dim#5461 i#26560 i#26567 i#26572 i#26579 lanetype#5449 lanetype#5461 zero#125 -[visit_exp `%X%`_shape{lanetype#5449, dim#5449, i#26560}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26567}(M_1))] -[visit_exp lanetype#5449] -[visit_id lanetype#5449] -[visit_exp dim#5449] -[visit_id dim#5449] -[visit_exp i#26560] -[visit_id i#26560] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26567}(M_1))] +[check_dims] Fnn_1 Fnn_2 M_1 M_2 c c_1 +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#26567}(M_1)] -[visit_exp i#26567] -[visit_id i#26567] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#5461, dim#5461, i#26572}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26579}(M_2))] -[visit_exp lanetype#5461] -[visit_id lanetype#5461] -[visit_exp dim#5461] -[visit_id dim#5461] -[visit_exp i#26572] -[visit_id i#26572] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26579}(M_2))] +[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] [visit_exp (Fnn_2 : Fnn <: lanetype)] [visit_exp Fnn_2] [visit_id Fnn_2] -[visit_exp `%`_dim{i#26579}(M_2)] -[visit_exp i#26579] -[visit_id i#26579] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `DEMOTE`_vcvtop__{zero#125}(`ZERO`_zero)] -[visit_exp zero#125] -[visit_id zero#125] +[visit_exp `DEMOTE`_vcvtop__(`ZERO`_zero)] [visit_exp (`ZERO`_zero)] [visit_exp `ZERO`_zero] [visit_exp ()] @@ -45025,40 +38207,24 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id c_1] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{lanetype#5449 : lanetype, dim#5449 : dim, i#26560 : nat, Fnn_1 : Fnn, i#26567 : nat, M_1 : M, lanetype#5461 : lanetype, dim#5461 : dim, i#26572 : nat, Fnn_2 : Fnn, i#26579 : nat, M_2 : M, zero#125 : zero, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5449, dim#5449, i#26560}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26567}(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape{lanetype#5449, dim#5449, i#26560}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26567}(M_1)), `%X%`_shape{lanetype#5461, dim#5461, i#26572}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26579}(M_2)), `DEMOTE`_vcvtop__{zero#125}(`ZERO`_zero), c_1) = c*{c <- `c*`} + def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `DEMOTE`_vcvtop__(`ZERO`_zero), c_1) = c*{c <- `c*`} -- if (c*{c <- `c*`} = $demote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)) -[check_dims] Fnn_1 Fnn_2 M_1 M_2 c c_1 dim#5536 dim#5548 i#26683 i#26690 i#26695 i#26702 lanetype#5536 lanetype#5548 -[visit_exp `%X%`_shape{lanetype#5536, dim#5536, i#26683}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26690}(M_1))] -[visit_exp lanetype#5536] -[visit_id lanetype#5536] -[visit_exp dim#5536] -[visit_id dim#5536] -[visit_exp i#26683] -[visit_id i#26683] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26690}(M_1))] +[check_dims] Fnn_1 Fnn_2 M_1 M_2 c c_1 +[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] [visit_exp (Fnn_1 : Fnn <: lanetype)] [visit_exp Fnn_1] [visit_id Fnn_1] -[visit_exp `%`_dim{i#26690}(M_1)] -[visit_exp i#26690] -[visit_id i#26690] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#5548, dim#5548, i#26695}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26702}(M_2))] -[visit_exp lanetype#5548] -[visit_id lanetype#5548] -[visit_exp dim#5548] -[visit_id dim#5548] -[visit_exp i#26695] -[visit_id i#26695] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26702}(M_2))] +[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] [visit_exp (Fnn_2 : Fnn <: lanetype)] [visit_exp Fnn_2] [visit_id Fnn_2] -[visit_exp `%`_dim{i#26702}(M_2)] -[visit_exp i#26702] -[visit_id i#26702] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] @@ -45098,38 +38264,22 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id c_1] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{lanetype#5536 : lanetype, dim#5536 : dim, i#26683 : nat, Fnn_1 : Fnn, i#26690 : nat, M_1 : M, lanetype#5548 : lanetype, dim#5548 : dim, i#26695 : nat, Fnn_2 : Fnn, i#26702 : nat, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5536, dim#5536, i#26683}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26690}(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape{lanetype#5536, dim#5536, i#26683}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26690}(M_1)), `%X%`_shape{lanetype#5548, dim#5548, i#26695}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26702}(M_2)), `PROMOTELOW`_vcvtop__, c_1) = c*{c <- `c*`} + def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__, c_1) = c*{c <- `c*`} -- if (c*{c <- `c*`} = $promote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)) -[check_dims] Lnn_1 Lnn_2 M c c_1 dim#5623 dim#5635 dim#5671 dim#5683 dim#5711 dim#5723 dim#5751 dim#5867 dim#5879 dim#5914 i#26806 i#26813 i#26818 i#26825 i#26866 i#26873 i#26878 i#26885 i#26906 i#26913 i#26918 i#26925 i#26946 i#26953 i#27120 i#27127 i#27132 i#27139 i#27181 i#27188 lanetype#5623 lanetype#5635 lanetype#5671 lanetype#5683 lanetype#5711 lanetype#5723 lanetype#5751 lanetype#5867 lanetype#5879 lanetype#5914 v v_1 vcvtop -[visit_exp `%X%`_shape{lanetype#5623, dim#5623, i#26806}(Lnn_1, `%`_dim{i#26813}(M))] -[visit_exp lanetype#5623] -[visit_id lanetype#5623] -[visit_exp dim#5623] -[visit_id dim#5623] -[visit_exp i#26806] -[visit_id i#26806] -[visit_exp (Lnn_1, `%`_dim{i#26813}(M))] +[check_dims] Lnn_1 Lnn_2 M c c_1 v v_1 vcvtop +[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M))] +[visit_exp (Lnn_1, `%`_dim(M))] [visit_exp Lnn_1] [visit_id Lnn_1] -[visit_exp `%`_dim{i#26813}(M)] -[visit_exp i#26813] -[visit_id i#26813] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[visit_exp `%X%`_shape{lanetype#5635, dim#5635, i#26818}(Lnn_2, `%`_dim{i#26825}(M))] -[visit_exp lanetype#5635] -[visit_id lanetype#5635] -[visit_exp dim#5635] -[visit_id dim#5635] -[visit_exp i#26818] -[visit_id i#26818] -[visit_exp (Lnn_2, `%`_dim{i#26825}(M))] +[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M))] +[visit_exp (Lnn_2, `%`_dim(M))] [visit_exp Lnn_2] [visit_id Lnn_2] -[visit_exp `%`_dim{i#26825}(M)] -[visit_exp i#26825] -[visit_id i#26825] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -45139,82 +38289,50 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v] [visit_id v] -[visit_exp (($halfop(`%X%`_shape{lanetype#5671, dim#5671, i#26866}(Lnn_1, `%`_dim{i#26873}(M)), `%X%`_shape{lanetype#5683, dim#5683, i#26878}(Lnn_2, `%`_dim{i#26885}(M)), vcvtop) = ?()) /\ ($zeroop(`%X%`_shape{lanetype#5711, dim#5711, i#26906}(Lnn_1, `%`_dim{i#26913}(M)), `%X%`_shape{lanetype#5723, dim#5723, i#26918}(Lnn_2, `%`_dim{i#26925}(M)), vcvtop) = ?()))] -[visit_exp ($halfop(`%X%`_shape{lanetype#5671, dim#5671, i#26866}(Lnn_1, `%`_dim{i#26873}(M)), `%X%`_shape{lanetype#5683, dim#5683, i#26878}(Lnn_2, `%`_dim{i#26885}(M)), vcvtop) = ?())] -[visit_exp $halfop(`%X%`_shape{lanetype#5671, dim#5671, i#26866}(Lnn_1, `%`_dim{i#26873}(M)), `%X%`_shape{lanetype#5683, dim#5683, i#26878}(Lnn_2, `%`_dim{i#26885}(M)), vcvtop)] -[visit_exp `%X%`_shape{lanetype#5671, dim#5671, i#26866}(Lnn_1, `%`_dim{i#26873}(M))] -[visit_exp lanetype#5671] -[visit_id lanetype#5671] -[visit_exp dim#5671] -[visit_id dim#5671] -[visit_exp i#26866] -[visit_id i#26866] -[visit_exp (Lnn_1, `%`_dim{i#26873}(M))] +[visit_exp (($halfop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?()) /\ ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?()))] +[visit_exp ($halfop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?())] +[visit_exp $halfop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop)] +[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M))] +[visit_exp (Lnn_1, `%`_dim(M))] [visit_exp Lnn_1] [visit_id Lnn_1] not free -[visit_exp `%`_dim{i#26873}(M)] -[visit_exp i#26873] -[visit_id i#26873] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free -[visit_exp `%X%`_shape{lanetype#5683, dim#5683, i#26878}(Lnn_2, `%`_dim{i#26885}(M))] -[visit_exp lanetype#5683] -[visit_id lanetype#5683] -[visit_exp dim#5683] -[visit_id dim#5683] -[visit_exp i#26878] -[visit_id i#26878] -[visit_exp (Lnn_2, `%`_dim{i#26885}(M))] +[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M))] +[visit_exp (Lnn_2, `%`_dim(M))] [visit_exp Lnn_2] [visit_id Lnn_2] not free -[visit_exp `%`_dim{i#26885}(M)] -[visit_exp i#26885] -[visit_id i#26885] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp vcvtop] [visit_id vcvtop] not free [visit_exp ?()] -[visit_exp ($zeroop(`%X%`_shape{lanetype#5711, dim#5711, i#26906}(Lnn_1, `%`_dim{i#26913}(M)), `%X%`_shape{lanetype#5723, dim#5723, i#26918}(Lnn_2, `%`_dim{i#26925}(M)), vcvtop) = ?())] -[visit_exp $zeroop(`%X%`_shape{lanetype#5711, dim#5711, i#26906}(Lnn_1, `%`_dim{i#26913}(M)), `%X%`_shape{lanetype#5723, dim#5723, i#26918}(Lnn_2, `%`_dim{i#26925}(M)), vcvtop)] -[visit_exp `%X%`_shape{lanetype#5711, dim#5711, i#26906}(Lnn_1, `%`_dim{i#26913}(M))] -[visit_exp lanetype#5711] -[visit_id lanetype#5711] -[visit_exp dim#5711] -[visit_id dim#5711] -[visit_exp i#26906] -[visit_id i#26906] -[visit_exp (Lnn_1, `%`_dim{i#26913}(M))] +[visit_exp ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?())] +[visit_exp $zeroop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop)] +[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M))] +[visit_exp (Lnn_1, `%`_dim(M))] [visit_exp Lnn_1] [visit_id Lnn_1] not free -[visit_exp `%`_dim{i#26913}(M)] -[visit_exp i#26913] -[visit_id i#26913] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free -[visit_exp `%X%`_shape{lanetype#5723, dim#5723, i#26918}(Lnn_2, `%`_dim{i#26925}(M))] -[visit_exp lanetype#5723] -[visit_id lanetype#5723] -[visit_exp dim#5723] -[visit_id dim#5723] -[visit_exp i#26918] -[visit_id i#26918] -[visit_exp (Lnn_2, `%`_dim{i#26925}(M))] +[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M))] +[visit_exp (Lnn_2, `%`_dim(M))] [visit_exp Lnn_2] [visit_id Lnn_2] not free -[visit_exp `%`_dim{i#26925}(M)] -[visit_exp i#26925] -[visit_id i#26925] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp vcvtop] [visit_id vcvtop] not free [visit_exp ?()] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -45224,26 +38342,18 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M)), v_1)] -[visit_exp `%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))] -[visit_exp lanetype#5751] -[visit_id lanetype#5751] -[visit_exp dim#5751] -[visit_id dim#5751] -[visit_exp i#26946] -[visit_id i#26946] -[visit_exp (Lnn_1, `%`_dim{i#26953}(M))] +[visit_exp $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M)), v_1)] +[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M))] +[visit_exp (Lnn_1, `%`_dim(M))] [visit_exp Lnn_1] [visit_id Lnn_1] not free -[visit_exp `%`_dim{i#26953}(M)] -[visit_exp i#26953] -[visit_id i#26953] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M)), `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#5867 <- `dim#5867*`, dim#5879 <- `dim#5879*`, i#27120 <- `i#27120*`, i#27127 <- `i#27127*`, i#27132 <- `i#27132*`, i#27139 <- `i#27139*`, lanetype#5867 <- `lanetype#5867*`, lanetype#5879 <- `lanetype#5879*`}))] +[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, c_1)*{c_1 <- `c_1*`}))] [visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] [scope_enter c*] [visit_exp c*{c <- `c*`}] @@ -45261,49 +38371,25 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp `c**`] [visit_id c**] no dims [visit_id c**] -[visit_exp $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M)), `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#5867 <- `dim#5867*`, dim#5879 <- `dim#5879*`, i#27120 <- `i#27120*`, i#27127 <- `i#27127*`, i#27132 <- `i#27132*`, i#27139 <- `i#27139*`, lanetype#5867 <- `lanetype#5867*`, lanetype#5879 <- `lanetype#5879*`})] +[visit_exp $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, c_1)*{c_1 <- `c_1*`})] [visit_exp Lnn_2] [visit_id Lnn_2] not free -[visit_exp $lcvtop__(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M)), `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#5867 <- `dim#5867*`, dim#5879 <- `dim#5879*`, i#27120 <- `i#27120*`, i#27127 <- `i#27127*`, i#27132 <- `i#27132*`, i#27139 <- `i#27139*`, lanetype#5867 <- `lanetype#5867*`, lanetype#5879 <- `lanetype#5879*`}] +[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, c_1)*{c_1 <- `c_1*`}] [scope_enter c_1] -[scope_enter dim#5867] -[scope_enter dim#5879] -[scope_enter i#27120] -[scope_enter i#27127] -[scope_enter i#27132] -[scope_enter i#27139] -[scope_enter lanetype#5867] -[scope_enter lanetype#5879] -[visit_exp $lcvtop__(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M)), `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M)), vcvtop, c_1)] -[visit_exp `%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M))] -[visit_exp lanetype#5867] -[visit_id lanetype#5867] not free -[visit_exp dim#5867] -[visit_id dim#5867] not free -[visit_exp i#27120] -[visit_id i#27120] not free -[visit_exp (Lnn_1, `%`_dim{i#27127}(M))] +[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, c_1)] +[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M))] +[visit_exp (Lnn_1, `%`_dim(M))] [visit_exp Lnn_1] [visit_id Lnn_1] not free -[visit_exp `%`_dim{i#27127}(M)] -[visit_exp i#27127] -[visit_id i#27127] not free +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free -[visit_exp `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M))] -[visit_exp lanetype#5879] -[visit_id lanetype#5879] not free -[visit_exp dim#5879] -[visit_id dim#5879] not free -[visit_exp i#27132] -[visit_id i#27132] not free -[visit_exp (Lnn_2, `%`_dim{i#27139}(M))] +[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M))] +[visit_exp (Lnn_2, `%`_dim(M))] [visit_exp Lnn_2] [visit_id Lnn_2] not free -[visit_exp `%`_dim{i#27139}(M)] -[visit_exp i#27139] -[visit_id i#27139] not free +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -45312,73 +38398,21 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp c_1] [visit_id c_1] not free [visit_id c_1] not free -[visit_id dim#5867] not free -[visit_id dim#5879] not free -[visit_id i#27120] not free -[visit_id i#27127] not free -[visit_id i#27132] not free -[visit_id i#27139] not free -[visit_id lanetype#5867] not free -[visit_id lanetype#5879] not free -[scope_exit lanetype#5879] -[scope_exit lanetype#5867] -[scope_exit i#27139] -[scope_exit i#27132] -[scope_exit i#27127] -[scope_exit i#27120] -[scope_exit dim#5879] -[scope_exit dim#5867] [scope_exit c_1] [visit_exp `c_1*`] [visit_id c_1*] not free [visit_id c_1*] no dims -[visit_exp `dim#5867*`] -[visit_id dim#5867*] no dims -[visit_id dim#5867*] -[visit_exp `dim#5879*`] -[visit_id dim#5879*] no dims -[visit_id dim#5879*] -[visit_exp `i#27120*`] -[visit_id i#27120*] no dims -[visit_id i#27120*] -[visit_exp `i#27127*`] -[visit_id i#27127*] no dims -[visit_id i#27127*] -[visit_exp `i#27132*`] -[visit_id i#27132*] no dims -[visit_id i#27132*] -[visit_exp `i#27139*`] -[visit_id i#27139*] no dims -[visit_id i#27139*] -[visit_exp `lanetype#5867*`] -[visit_id lanetype#5867*] no dims -[visit_id lanetype#5867*] -[visit_exp `lanetype#5879*`] -[visit_id lanetype#5879*] no dims -[visit_id lanetype#5879*] -[visit_exp (v <- $inv_lanes_(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#5914 <- `dim#5914*`, i#27181 <- `i#27181*`, i#27188 <- `i#27188*`, lanetype#5914 <- `lanetype#5914*`})] +[visit_exp (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`})] [visit_exp v] [visit_id v] not free -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#5914 <- `dim#5914*`, i#27181 <- `i#27181*`, i#27188 <- `i#27188*`, lanetype#5914 <- `lanetype#5914*`}] +[visit_exp $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}] [scope_enter c*] -[scope_enter dim#5914] -[scope_enter i#27181] -[scope_enter i#27188] -[scope_enter lanetype#5914] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M))] -[visit_exp lanetype#5914] -[visit_id lanetype#5914] not free -[visit_exp dim#5914] -[visit_id dim#5914] not free -[visit_exp i#27181] -[visit_id i#27181] not free -[visit_exp (Lnn_2, `%`_dim{i#27188}(M))] +[visit_exp $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M)), c*{c <- `c*`})] +[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M))] +[visit_exp (Lnn_2, `%`_dim(M))] [visit_exp Lnn_2] [visit_id Lnn_2] not free -[visit_exp `%`_dim{i#27188}(M)] -[visit_exp i#27188] -[visit_id i#27188] not free +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -45393,67 +38427,31 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id c*] no dims [visit_id c*] not free [visit_id c*] no dims -[visit_id dim#5914] not free -[visit_id i#27181] not free -[visit_id i#27188] not free -[visit_id lanetype#5914] not free -[scope_exit lanetype#5914] -[scope_exit i#27188] -[scope_exit i#27181] -[scope_exit dim#5914] [scope_exit c*] [visit_exp `c**`] [visit_id c**] not free [visit_id c**] no dims -[visit_exp `dim#5914*`] -[visit_id dim#5914*] no dims -[visit_id dim#5914*] -[visit_exp `i#27181*`] -[visit_id i#27181*] no dims -[visit_id i#27181*] -[visit_exp `i#27188*`] -[visit_id i#27188*] no dims -[visit_id i#27188*] -[visit_exp `lanetype#5914*`] -[visit_id lanetype#5914*] no dims -[visit_id lanetype#5914*] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{lanetype#5623 : lanetype, dim#5623 : dim, i#26806 : nat, Lnn_1 : Lnn, i#26813 : nat, M : M, lanetype#5635 : lanetype, dim#5635 : dim, i#26818 : nat, Lnn_2 : Lnn, i#26825 : nat, vcvtop : vcvtop__(`%X%`_shape{lanetype#5623, dim#5623, i#26806}(Lnn_1, `%`_dim{i#26813}(M)), `%X%`_shape{lanetype#5635, dim#5635, i#26818}(Lnn_2, `%`_dim{i#26825}(M))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#5671 : lanetype, dim#5671 : dim, i#26866 : nat, i#26873 : nat, lanetype#5683 : lanetype, dim#5683 : dim, i#26878 : nat, i#26885 : nat, lanetype#5711 : lanetype, dim#5711 : dim, i#26906 : nat, i#26913 : nat, lanetype#5723 : lanetype, dim#5723 : dim, i#26918 : nat, i#26925 : nat, lanetype#5751 : lanetype, dim#5751 : dim, i#26946 : nat, i#26953 : nat, `c**` : lane_(Lnn_2)**, `dim#5867*` : dim*, `dim#5879*` : dim*, `i#27120*` : nat*, `i#27127*` : nat*, `i#27132*` : nat*, `i#27139*` : nat*, `lanetype#5867*` : lanetype*, `lanetype#5879*` : lanetype*, `dim#5914*` : dim*, `i#27181*` : nat*, `i#27188*` : nat*, `lanetype#5914*` : lanetype*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))*}(`%X%`_shape{lanetype#5623, dim#5623, i#26806}(Lnn_1, `%`_dim{i#26813}(M)), `%X%`_shape{lanetype#5635, dim#5635, i#26818}(Lnn_2, `%`_dim{i#26825}(M)), vcvtop, v_1) = v - -- if (($halfop(`%X%`_shape{lanetype#5671, dim#5671, i#26866}(Lnn_1, `%`_dim{i#26873}(M)), `%X%`_shape{lanetype#5683, dim#5683, i#26878}(Lnn_2, `%`_dim{i#26885}(M)), vcvtop) = ?()) /\ ($zeroop(`%X%`_shape{lanetype#5711, dim#5711, i#26906}(Lnn_1, `%`_dim{i#26913}(M)), `%X%`_shape{lanetype#5723, dim#5723, i#26918}(Lnn_2, `%`_dim{i#26925}(M)), vcvtop) = ?())) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M)), v_1)) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M)), `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#5867 <- `dim#5867*`, dim#5879 <- `dim#5879*`, i#27120 <- `i#27120*`, i#27127 <- `i#27127*`, i#27132 <- `i#27132*`, i#27139 <- `i#27139*`, lanetype#5867 <- `lanetype#5867*`, lanetype#5879 <- `lanetype#5879*`})) - -- if (v <- $inv_lanes_(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#5914 <- `dim#5914*`, i#27181 <- `i#27181*`, i#27188 <- `i#27188*`, lanetype#5914 <- `lanetype#5914*`}) -[check_dims] Lnn_1 Lnn_2 M_1 M_2 c c_1 dim#5937 dim#5949 dim#6025 dim#6037 dim#6065 dim#6181 dim#6193 dim#6228 half i#27248 i#27255 i#27260 i#27267 i#27348 i#27355 i#27360 i#27367 i#27388 i#27395 i#27562 i#27569 i#27574 i#27581 i#27623 i#27630 lanetype#5937 lanetype#5949 lanetype#6025 lanetype#6037 lanetype#6065 lanetype#6181 lanetype#6193 lanetype#6228 v v_1 vcvtop -[visit_exp `%X%`_shape{lanetype#5937, dim#5937, i#27248}(Lnn_1, `%`_dim{i#27255}(M_1))] -[visit_exp lanetype#5937] -[visit_id lanetype#5937] -[visit_exp dim#5937] -[visit_id dim#5937] -[visit_exp i#27248] -[visit_id i#27248] -[visit_exp (Lnn_1, `%`_dim{i#27255}(M_1))] + def $vcvtop__{Lnn_1 : Lnn, M : M, Lnn_2 : Lnn, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, v_1) = v + -- if (($halfop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?()) /\ ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?())) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M)), v_1)) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, c_1)*{c_1 <- `c_1*`})) + -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}) +[check_dims] Lnn_1 Lnn_2 M_1 M_2 c c_1 half v v_1 vcvtop +[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] +[visit_exp (Lnn_1, `%`_dim(M_1))] [visit_exp Lnn_1] [visit_id Lnn_1] -[visit_exp `%`_dim{i#27255}(M_1)] -[visit_exp i#27255] -[visit_id i#27255] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#5949, dim#5949, i#27260}(Lnn_2, `%`_dim{i#27267}(M_2))] -[visit_exp lanetype#5949] -[visit_id lanetype#5949] -[visit_exp dim#5949] -[visit_id dim#5949] -[visit_exp i#27260] -[visit_id i#27260] -[visit_exp (Lnn_2, `%`_dim{i#27267}(M_2))] +[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] +[visit_exp (Lnn_2, `%`_dim(M_2))] [visit_exp Lnn_2] [visit_id Lnn_2] -[visit_exp `%`_dim{i#27267}(M_2)] -[visit_exp i#27267] -[visit_id i#27267] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] @@ -45463,37 +38461,21 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v] [visit_id v] -[visit_exp ($halfop(`%X%`_shape{lanetype#6025, dim#6025, i#27348}(Lnn_1, `%`_dim{i#27355}(M_1)), `%X%`_shape{lanetype#6037, dim#6037, i#27360}(Lnn_2, `%`_dim{i#27367}(M_2)), vcvtop) = ?(half))] -[visit_exp $halfop(`%X%`_shape{lanetype#6025, dim#6025, i#27348}(Lnn_1, `%`_dim{i#27355}(M_1)), `%X%`_shape{lanetype#6037, dim#6037, i#27360}(Lnn_2, `%`_dim{i#27367}(M_2)), vcvtop)] -[visit_exp `%X%`_shape{lanetype#6025, dim#6025, i#27348}(Lnn_1, `%`_dim{i#27355}(M_1))] -[visit_exp lanetype#6025] -[visit_id lanetype#6025] -[visit_exp dim#6025] -[visit_id dim#6025] -[visit_exp i#27348] -[visit_id i#27348] -[visit_exp (Lnn_1, `%`_dim{i#27355}(M_1))] +[visit_exp ($halfop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(half))] +[visit_exp $halfop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop)] +[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] +[visit_exp (Lnn_1, `%`_dim(M_1))] [visit_exp Lnn_1] [visit_id Lnn_1] not free -[visit_exp `%`_dim{i#27355}(M_1)] -[visit_exp i#27355] -[visit_id i#27355] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free -[visit_exp `%X%`_shape{lanetype#6037, dim#6037, i#27360}(Lnn_2, `%`_dim{i#27367}(M_2))] -[visit_exp lanetype#6037] -[visit_id lanetype#6037] -[visit_exp dim#6037] -[visit_id dim#6037] -[visit_exp i#27360] -[visit_id i#27360] -[visit_exp (Lnn_2, `%`_dim{i#27367}(M_2))] +[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] +[visit_exp (Lnn_2, `%`_dim(M_2))] [visit_exp Lnn_2] [visit_id Lnn_2] not free -[visit_exp `%`_dim{i#27367}(M_2)] -[visit_exp i#27367] -[visit_id i#27367] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -45502,7 +38484,7 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp ?(half)] [visit_exp half] [visit_id half] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1)), v_1)[$half(half, 0, M_2) : M_2])] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)[$half(half, 0, M_2) : M_2])] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -45512,21 +38494,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1)), v_1)[$half(half, 0, M_2) : M_2]] -[visit_exp $lanes_(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1)), v_1)] -[visit_exp `%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))] -[visit_exp lanetype#6065] -[visit_id lanetype#6065] -[visit_exp dim#6065] -[visit_id dim#6065] -[visit_exp i#27388] -[visit_id i#27388] -[visit_exp (Lnn_1, `%`_dim{i#27395}(M_1))] +[visit_exp $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)[$half(half, 0, M_2) : M_2]] +[visit_exp $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)] +[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] +[visit_exp (Lnn_1, `%`_dim(M_1))] [visit_exp Lnn_1] [visit_id Lnn_1] not free -[visit_exp `%`_dim{i#27395}(M_1)] -[visit_exp i#27395] -[visit_id i#27395] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free @@ -45540,7 +38514,7 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id M_2] not free [visit_exp M_2] [visit_id M_2] not free -[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1)), `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6181 <- `dim#6181*`, dim#6193 <- `dim#6193*`, i#27562 <- `i#27562*`, i#27569 <- `i#27569*`, i#27574 <- `i#27574*`, i#27581 <- `i#27581*`, lanetype#6181 <- `lanetype#6181*`, lanetype#6193 <- `lanetype#6193*`}))] +[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`}))] [visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] [scope_enter c*] [visit_exp c*{c <- `c*`}] @@ -45558,49 +38532,25 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp `c**`] [visit_id c**] no dims [visit_id c**] -[visit_exp $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1)), `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6181 <- `dim#6181*`, dim#6193 <- `dim#6193*`, i#27562 <- `i#27562*`, i#27569 <- `i#27569*`, i#27574 <- `i#27574*`, i#27581 <- `i#27581*`, lanetype#6181 <- `lanetype#6181*`, lanetype#6193 <- `lanetype#6193*`})] +[visit_exp $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`})] [visit_exp Lnn_2] [visit_id Lnn_2] not free -[visit_exp $lcvtop__(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1)), `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6181 <- `dim#6181*`, dim#6193 <- `dim#6193*`, i#27562 <- `i#27562*`, i#27569 <- `i#27569*`, i#27574 <- `i#27574*`, i#27581 <- `i#27581*`, lanetype#6181 <- `lanetype#6181*`, lanetype#6193 <- `lanetype#6193*`}] +[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`}] [scope_enter c_1] -[scope_enter dim#6181] -[scope_enter dim#6193] -[scope_enter i#27562] -[scope_enter i#27569] -[scope_enter i#27574] -[scope_enter i#27581] -[scope_enter lanetype#6181] -[scope_enter lanetype#6193] -[visit_exp $lcvtop__(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1)), `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2)), vcvtop, c_1)] -[visit_exp `%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1))] -[visit_exp lanetype#6181] -[visit_id lanetype#6181] not free -[visit_exp dim#6181] -[visit_id dim#6181] not free -[visit_exp i#27562] -[visit_id i#27562] not free -[visit_exp (Lnn_1, `%`_dim{i#27569}(M_1))] +[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)] +[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] +[visit_exp (Lnn_1, `%`_dim(M_1))] [visit_exp Lnn_1] [visit_id Lnn_1] not free -[visit_exp `%`_dim{i#27569}(M_1)] -[visit_exp i#27569] -[visit_id i#27569] not free +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free -[visit_exp `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2))] -[visit_exp lanetype#6193] -[visit_id lanetype#6193] not free -[visit_exp dim#6193] -[visit_id dim#6193] not free -[visit_exp i#27574] -[visit_id i#27574] not free -[visit_exp (Lnn_2, `%`_dim{i#27581}(M_2))] +[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] +[visit_exp (Lnn_2, `%`_dim(M_2))] [visit_exp Lnn_2] [visit_id Lnn_2] not free -[visit_exp `%`_dim{i#27581}(M_2)] -[visit_exp i#27581] -[visit_id i#27581] not free +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -45609,73 +38559,21 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp c_1] [visit_id c_1] not free [visit_id c_1] not free -[visit_id dim#6181] not free -[visit_id dim#6193] not free -[visit_id i#27562] not free -[visit_id i#27569] not free -[visit_id i#27574] not free -[visit_id i#27581] not free -[visit_id lanetype#6181] not free -[visit_id lanetype#6193] not free -[scope_exit lanetype#6193] -[scope_exit lanetype#6181] -[scope_exit i#27581] -[scope_exit i#27574] -[scope_exit i#27569] -[scope_exit i#27562] -[scope_exit dim#6193] -[scope_exit dim#6181] [scope_exit c_1] [visit_exp `c_1*`] [visit_id c_1*] not free [visit_id c_1*] no dims -[visit_exp `dim#6181*`] -[visit_id dim#6181*] no dims -[visit_id dim#6181*] -[visit_exp `dim#6193*`] -[visit_id dim#6193*] no dims -[visit_id dim#6193*] -[visit_exp `i#27562*`] -[visit_id i#27562*] no dims -[visit_id i#27562*] -[visit_exp `i#27569*`] -[visit_id i#27569*] no dims -[visit_id i#27569*] -[visit_exp `i#27574*`] -[visit_id i#27574*] no dims -[visit_id i#27574*] -[visit_exp `i#27581*`] -[visit_id i#27581*] no dims -[visit_id i#27581*] -[visit_exp `lanetype#6181*`] -[visit_id lanetype#6181*] no dims -[visit_id lanetype#6181*] -[visit_exp `lanetype#6193*`] -[visit_id lanetype#6193*] no dims -[visit_id lanetype#6193*] -[visit_exp (v <- $inv_lanes_(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6228 <- `dim#6228*`, i#27623 <- `i#27623*`, i#27630 <- `i#27630*`, lanetype#6228 <- `lanetype#6228*`})] +[visit_exp (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`})] [visit_exp v] [visit_id v] not free -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6228 <- `dim#6228*`, i#27623 <- `i#27623*`, i#27630 <- `i#27630*`, lanetype#6228 <- `lanetype#6228*`}] +[visit_exp $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}] [scope_enter c*] -[scope_enter dim#6228] -[scope_enter i#27623] -[scope_enter i#27630] -[scope_enter lanetype#6228] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2))] -[visit_exp lanetype#6228] -[visit_id lanetype#6228] not free -[visit_exp dim#6228] -[visit_id dim#6228] not free -[visit_exp i#27623] -[visit_id i#27623] not free -[visit_exp (Lnn_2, `%`_dim{i#27630}(M_2))] +[visit_exp $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})] +[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] +[visit_exp (Lnn_2, `%`_dim(M_2))] [visit_exp Lnn_2] [visit_id Lnn_2] not free -[visit_exp `%`_dim{i#27630}(M_2)] -[visit_exp i#27630] -[visit_id i#27630] not free +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -45690,67 +38588,31 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id c*] no dims [visit_id c*] not free [visit_id c*] no dims -[visit_id dim#6228] not free -[visit_id i#27623] not free -[visit_id i#27630] not free -[visit_id lanetype#6228] not free -[scope_exit lanetype#6228] -[scope_exit i#27630] -[scope_exit i#27623] -[scope_exit dim#6228] [scope_exit c*] [visit_exp `c**`] [visit_id c**] not free [visit_id c**] no dims -[visit_exp `dim#6228*`] -[visit_id dim#6228*] no dims -[visit_id dim#6228*] -[visit_exp `i#27623*`] -[visit_id i#27623*] no dims -[visit_id i#27623*] -[visit_exp `i#27630*`] -[visit_id i#27630*] no dims -[visit_id i#27630*] -[visit_exp `lanetype#6228*`] -[visit_id lanetype#6228*] no dims -[visit_id lanetype#6228*] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{lanetype#5937 : lanetype, dim#5937 : dim, i#27248 : nat, Lnn_1 : Lnn, i#27255 : nat, M_1 : M, lanetype#5949 : lanetype, dim#5949 : dim, i#27260 : nat, Lnn_2 : Lnn, i#27267 : nat, M_2 : M, vcvtop : vcvtop__(`%X%`_shape{lanetype#5937, dim#5937, i#27248}(Lnn_1, `%`_dim{i#27255}(M_1)), `%X%`_shape{lanetype#5949, dim#5949, i#27260}(Lnn_2, `%`_dim{i#27267}(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#6025 : lanetype, dim#6025 : dim, i#27348 : nat, i#27355 : nat, lanetype#6037 : lanetype, dim#6037 : dim, i#27360 : nat, i#27367 : nat, half : half, lanetype#6065 : lanetype, dim#6065 : dim, i#27388 : nat, i#27395 : nat, `c**` : lane_(Lnn_2)**, `dim#6181*` : dim*, `dim#6193*` : dim*, `i#27562*` : nat*, `i#27569*` : nat*, `i#27574*` : nat*, `i#27581*` : nat*, `lanetype#6181*` : lanetype*, `lanetype#6193*` : lanetype*, `dim#6228*` : dim*, `i#27623*` : nat*, `i#27630*` : nat*, `lanetype#6228*` : lanetype*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))*}(`%X%`_shape{lanetype#5937, dim#5937, i#27248}(Lnn_1, `%`_dim{i#27255}(M_1)), `%X%`_shape{lanetype#5949, dim#5949, i#27260}(Lnn_2, `%`_dim{i#27267}(M_2)), vcvtop, v_1) = v - -- if ($halfop(`%X%`_shape{lanetype#6025, dim#6025, i#27348}(Lnn_1, `%`_dim{i#27355}(M_1)), `%X%`_shape{lanetype#6037, dim#6037, i#27360}(Lnn_2, `%`_dim{i#27367}(M_2)), vcvtop) = ?(half)) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1)), v_1)[$half(half, 0, M_2) : M_2]) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1)), `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6181 <- `dim#6181*`, dim#6193 <- `dim#6193*`, i#27562 <- `i#27562*`, i#27569 <- `i#27569*`, i#27574 <- `i#27574*`, i#27581 <- `i#27581*`, lanetype#6181 <- `lanetype#6181*`, lanetype#6193 <- `lanetype#6193*`})) - -- if (v <- $inv_lanes_(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6228 <- `dim#6228*`, i#27623 <- `i#27623*`, i#27630 <- `i#27630*`, lanetype#6228 <- `lanetype#6228*`}) -[check_dims] Lnn_1 Lnn_2 M_1 M_2 c c_1 dim#6251 dim#6263 dim#6299 dim#6311 dim#6339 dim#6501 dim#6513 dim#6548 i#27690 i#27697 i#27702 i#27709 i#27750 i#27757 i#27762 i#27769 i#27790 i#27797 i#28022 i#28029 i#28034 i#28041 i#28083 i#28090 lanetype#6251 lanetype#6263 lanetype#6299 lanetype#6311 lanetype#6339 lanetype#6501 lanetype#6513 lanetype#6548 v v_1 vcvtop -[visit_exp `%X%`_shape{lanetype#6251, dim#6251, i#27690}(Lnn_1, `%`_dim{i#27697}(M_1))] -[visit_exp lanetype#6251] -[visit_id lanetype#6251] -[visit_exp dim#6251] -[visit_id dim#6251] -[visit_exp i#27690] -[visit_id i#27690] -[visit_exp (Lnn_1, `%`_dim{i#27697}(M_1))] + def $vcvtop__{Lnn_1 : Lnn, M_1 : M, Lnn_2 : Lnn, M_2 : M, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), half : half, `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, v_1) = v + -- if ($halfop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(half)) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)[$half(half, 0, M_2) : M_2]) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`})) + -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}) +[check_dims] Lnn_1 Lnn_2 M_1 M_2 c c_1 v v_1 vcvtop +[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] +[visit_exp (Lnn_1, `%`_dim(M_1))] [visit_exp Lnn_1] [visit_id Lnn_1] -[visit_exp `%`_dim{i#27697}(M_1)] -[visit_exp i#27697] -[visit_id i#27697] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#6263, dim#6263, i#27702}(Lnn_2, `%`_dim{i#27709}(M_2))] -[visit_exp lanetype#6263] -[visit_id lanetype#6263] -[visit_exp dim#6263] -[visit_id dim#6263] -[visit_exp i#27702] -[visit_id i#27702] -[visit_exp (Lnn_2, `%`_dim{i#27709}(M_2))] +[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] +[visit_exp (Lnn_2, `%`_dim(M_2))] [visit_exp Lnn_2] [visit_id Lnn_2] -[visit_exp `%`_dim{i#27709}(M_2)] -[visit_exp i#27709] -[visit_id i#27709] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] @@ -45760,37 +38622,21 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_1] [visit_exp v] [visit_id v] -[visit_exp ($zeroop(`%X%`_shape{lanetype#6299, dim#6299, i#27750}(Lnn_1, `%`_dim{i#27757}(M_1)), `%X%`_shape{lanetype#6311, dim#6311, i#27762}(Lnn_2, `%`_dim{i#27769}(M_2)), vcvtop) = ?(`ZERO`_zero))] -[visit_exp $zeroop(`%X%`_shape{lanetype#6299, dim#6299, i#27750}(Lnn_1, `%`_dim{i#27757}(M_1)), `%X%`_shape{lanetype#6311, dim#6311, i#27762}(Lnn_2, `%`_dim{i#27769}(M_2)), vcvtop)] -[visit_exp `%X%`_shape{lanetype#6299, dim#6299, i#27750}(Lnn_1, `%`_dim{i#27757}(M_1))] -[visit_exp lanetype#6299] -[visit_id lanetype#6299] -[visit_exp dim#6299] -[visit_id dim#6299] -[visit_exp i#27750] -[visit_id i#27750] -[visit_exp (Lnn_1, `%`_dim{i#27757}(M_1))] +[visit_exp ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(`ZERO`_zero))] +[visit_exp $zeroop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop)] +[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] +[visit_exp (Lnn_1, `%`_dim(M_1))] [visit_exp Lnn_1] [visit_id Lnn_1] not free -[visit_exp `%`_dim{i#27757}(M_1)] -[visit_exp i#27757] -[visit_id i#27757] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free -[visit_exp `%X%`_shape{lanetype#6311, dim#6311, i#27762}(Lnn_2, `%`_dim{i#27769}(M_2))] -[visit_exp lanetype#6311] -[visit_id lanetype#6311] -[visit_exp dim#6311] -[visit_id dim#6311] -[visit_exp i#27762] -[visit_id i#27762] -[visit_exp (Lnn_2, `%`_dim{i#27769}(M_2))] +[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] +[visit_exp (Lnn_2, `%`_dim(M_2))] [visit_exp Lnn_2] [visit_id Lnn_2] not free -[visit_exp `%`_dim{i#27769}(M_2)] -[visit_exp i#27769] -[visit_id i#27769] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -45799,7 +38645,7 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp ?(`ZERO`_zero)] [visit_exp `ZERO`_zero] [visit_exp ()] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -45809,26 +38655,18 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1)), v_1)] -[visit_exp `%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))] -[visit_exp lanetype#6339] -[visit_id lanetype#6339] -[visit_exp dim#6339] -[visit_id dim#6339] -[visit_exp i#27790] -[visit_id i#27790] -[visit_exp (Lnn_1, `%`_dim{i#27797}(M_1))] +[visit_exp $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)] +[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] +[visit_exp (Lnn_1, `%`_dim(M_1))] [visit_exp Lnn_1] [visit_id Lnn_1] not free -[visit_exp `%`_dim{i#27797}(M_1)] -[visit_exp i#27797] -[visit_id i#27797] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6501 <- `dim#6501*`, dim#6513 <- `dim#6513*`, i#28022 <- `i#28022*`, i#28029 <- `i#28029*`, i#28034 <- `i#28034*`, i#28041 <- `i#28041*`, lanetype#6501 <- `lanetype#6501*`, lanetype#6513 <- `lanetype#6513*`} ++ [$zero(Lnn_2)]^M_1{}))] +[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`} ++ [$zero(Lnn_2)]^M_1{}))] [visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] [scope_enter c*] [visit_exp c*{c <- `c*`}] @@ -45846,50 +38684,26 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp `c**`] [visit_id c**] no dims [visit_id c**] -[visit_exp $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6501 <- `dim#6501*`, dim#6513 <- `dim#6513*`, i#28022 <- `i#28022*`, i#28029 <- `i#28029*`, i#28034 <- `i#28034*`, i#28041 <- `i#28041*`, lanetype#6501 <- `lanetype#6501*`, lanetype#6513 <- `lanetype#6513*`} ++ [$zero(Lnn_2)]^M_1{})] +[visit_exp $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`} ++ [$zero(Lnn_2)]^M_1{})] [visit_exp Lnn_2] [visit_id Lnn_2] not free -[visit_exp $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6501 <- `dim#6501*`, dim#6513 <- `dim#6513*`, i#28022 <- `i#28022*`, i#28029 <- `i#28029*`, i#28034 <- `i#28034*`, i#28041 <- `i#28041*`, lanetype#6501 <- `lanetype#6501*`, lanetype#6513 <- `lanetype#6513*`} ++ [$zero(Lnn_2)]^M_1{}] -[visit_exp $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6501 <- `dim#6501*`, dim#6513 <- `dim#6513*`, i#28022 <- `i#28022*`, i#28029 <- `i#28029*`, i#28034 <- `i#28034*`, i#28041 <- `i#28041*`, lanetype#6501 <- `lanetype#6501*`, lanetype#6513 <- `lanetype#6513*`}] +[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`} ++ [$zero(Lnn_2)]^M_1{}] +[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`}] [scope_enter c_1] -[scope_enter dim#6501] -[scope_enter dim#6513] -[scope_enter i#28022] -[scope_enter i#28029] -[scope_enter i#28034] -[scope_enter i#28041] -[scope_enter lanetype#6501] -[scope_enter lanetype#6513] -[visit_exp $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)] -[visit_exp `%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1))] -[visit_exp lanetype#6501] -[visit_id lanetype#6501] not free -[visit_exp dim#6501] -[visit_id dim#6501] not free -[visit_exp i#28022] -[visit_id i#28022] not free -[visit_exp (Lnn_1, `%`_dim{i#28029}(M_1))] +[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)] +[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] +[visit_exp (Lnn_1, `%`_dim(M_1))] [visit_exp Lnn_1] [visit_id Lnn_1] not free -[visit_exp `%`_dim{i#28029}(M_1)] -[visit_exp i#28029] -[visit_id i#28029] not free +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free -[visit_exp `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2))] -[visit_exp lanetype#6513] -[visit_id lanetype#6513] not free -[visit_exp dim#6513] -[visit_id dim#6513] not free -[visit_exp i#28034] -[visit_id i#28034] not free -[visit_exp (Lnn_2, `%`_dim{i#28041}(M_2))] +[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] +[visit_exp (Lnn_2, `%`_dim(M_2))] [visit_exp Lnn_2] [visit_id Lnn_2] not free -[visit_exp `%`_dim{i#28041}(M_2)] -[visit_exp i#28041] -[visit_id i#28041] not free +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -45898,50 +38712,10 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp c_1] [visit_id c_1] not free [visit_id c_1] not free -[visit_id dim#6501] not free -[visit_id dim#6513] not free -[visit_id i#28022] not free -[visit_id i#28029] not free -[visit_id i#28034] not free -[visit_id i#28041] not free -[visit_id lanetype#6501] not free -[visit_id lanetype#6513] not free -[scope_exit lanetype#6513] -[scope_exit lanetype#6501] -[scope_exit i#28041] -[scope_exit i#28034] -[scope_exit i#28029] -[scope_exit i#28022] -[scope_exit dim#6513] -[scope_exit dim#6501] [scope_exit c_1] [visit_exp `c_1*`] [visit_id c_1*] not free [visit_id c_1*] no dims -[visit_exp `dim#6501*`] -[visit_id dim#6501*] no dims -[visit_id dim#6501*] -[visit_exp `dim#6513*`] -[visit_id dim#6513*] no dims -[visit_id dim#6513*] -[visit_exp `i#28022*`] -[visit_id i#28022*] no dims -[visit_id i#28022*] -[visit_exp `i#28029*`] -[visit_id i#28029*] no dims -[visit_id i#28029*] -[visit_exp `i#28034*`] -[visit_id i#28034*] no dims -[visit_id i#28034*] -[visit_exp `i#28041*`] -[visit_id i#28041*] no dims -[visit_id i#28041*] -[visit_exp `lanetype#6501*`] -[visit_id lanetype#6501*] no dims -[visit_id lanetype#6501*] -[visit_exp `lanetype#6513*`] -[visit_id lanetype#6513*] no dims -[visit_id lanetype#6513*] [visit_exp [$zero(Lnn_2)]^M_1{}] [visit_exp [$zero(Lnn_2)]] [visit_exp $zero(Lnn_2)] @@ -45949,29 +38723,17 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id Lnn_2] not free [visit_exp M_1] [visit_id M_1] not free -[visit_exp (v <- $inv_lanes_(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6548 <- `dim#6548*`, i#28083 <- `i#28083*`, i#28090 <- `i#28090*`, lanetype#6548 <- `lanetype#6548*`})] +[visit_exp (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`})] [visit_exp v] [visit_id v] not free -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6548 <- `dim#6548*`, i#28083 <- `i#28083*`, i#28090 <- `i#28090*`, lanetype#6548 <- `lanetype#6548*`}] +[visit_exp $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}] [scope_enter c*] -[scope_enter dim#6548] -[scope_enter i#28083] -[scope_enter i#28090] -[scope_enter lanetype#6548] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2))] -[visit_exp lanetype#6548] -[visit_id lanetype#6548] not free -[visit_exp dim#6548] -[visit_id dim#6548] not free -[visit_exp i#28083] -[visit_id i#28083] not free -[visit_exp (Lnn_2, `%`_dim{i#28090}(M_2))] +[visit_exp $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})] +[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] +[visit_exp (Lnn_2, `%`_dim(M_2))] [visit_exp Lnn_2] [visit_id Lnn_2] not free -[visit_exp `%`_dim{i#28090}(M_2)] -[visit_exp i#28090] -[visit_id i#28090] not free +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -45986,69 +38748,33 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id c*] no dims [visit_id c*] not free [visit_id c*] no dims -[visit_id dim#6548] not free -[visit_id i#28083] not free -[visit_id i#28090] not free -[visit_id lanetype#6548] not free -[scope_exit lanetype#6548] -[scope_exit i#28090] -[scope_exit i#28083] -[scope_exit dim#6548] [scope_exit c*] [visit_exp `c**`] [visit_id c**] not free [visit_id c**] no dims -[visit_exp `dim#6548*`] -[visit_id dim#6548*] no dims -[visit_id dim#6548*] -[visit_exp `i#28083*`] -[visit_id i#28083*] no dims -[visit_id i#28083*] -[visit_exp `i#28090*`] -[visit_id i#28090*] no dims -[visit_id i#28090*] -[visit_exp `lanetype#6548*`] -[visit_id lanetype#6548*] no dims -[visit_id lanetype#6548*] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{lanetype#6251 : lanetype, dim#6251 : dim, i#27690 : nat, Lnn_1 : Lnn, i#27697 : nat, M_1 : M, lanetype#6263 : lanetype, dim#6263 : dim, i#27702 : nat, Lnn_2 : Lnn, i#27709 : nat, M_2 : M, vcvtop : vcvtop__(`%X%`_shape{lanetype#6251, dim#6251, i#27690}(Lnn_1, `%`_dim{i#27697}(M_1)), `%X%`_shape{lanetype#6263, dim#6263, i#27702}(Lnn_2, `%`_dim{i#27709}(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#6299 : lanetype, dim#6299 : dim, i#27750 : nat, i#27757 : nat, lanetype#6311 : lanetype, dim#6311 : dim, i#27762 : nat, i#27769 : nat, lanetype#6339 : lanetype, dim#6339 : dim, i#27790 : nat, i#27797 : nat, `c**` : lane_(Lnn_2)**, `dim#6501*` : dim*, `dim#6513*` : dim*, `i#28022*` : nat*, `i#28029*` : nat*, `i#28034*` : nat*, `i#28041*` : nat*, `lanetype#6501*` : lanetype*, `lanetype#6513*` : lanetype*, `dim#6548*` : dim*, `i#28083*` : nat*, `i#28090*` : nat*, `lanetype#6548*` : lanetype*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))*}(`%X%`_shape{lanetype#6251, dim#6251, i#27690}(Lnn_1, `%`_dim{i#27697}(M_1)), `%X%`_shape{lanetype#6263, dim#6263, i#27702}(Lnn_2, `%`_dim{i#27709}(M_2)), vcvtop, v_1) = v - -- if ($zeroop(`%X%`_shape{lanetype#6299, dim#6299, i#27750}(Lnn_1, `%`_dim{i#27757}(M_1)), `%X%`_shape{lanetype#6311, dim#6311, i#27762}(Lnn_2, `%`_dim{i#27769}(M_2)), vcvtop) = ?(`ZERO`_zero)) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1)), v_1)) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6501 <- `dim#6501*`, dim#6513 <- `dim#6513*`, i#28022 <- `i#28022*`, i#28029 <- `i#28029*`, i#28034 <- `i#28034*`, i#28041 <- `i#28041*`, lanetype#6501 <- `lanetype#6501*`, lanetype#6513 <- `lanetype#6513*`} ++ [$zero(Lnn_2)]^M_1{})) - -- if (v <- $inv_lanes_(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6548 <- `dim#6548*`, i#28083 <- `i#28083*`, i#28090 <- `i#28090*`, lanetype#6548 <- `lanetype#6548*`}) -[check_dims] Jnn_1 Jnn_2 M_1 M_2 c'_1 c'_2 c_1 c_2 dim#6571 dim#6583 dim#6595 dim#6620 dim#6647 i#28150 i#28157 i#28162 i#28169 i#28198 i#28205 i#28284 i#28291 i#28450 i#28457 lanetype#6571 lanetype#6583 lanetype#6595 lanetype#6620 lanetype#6647 sx v v_1 v_2 -[visit_exp `%X%`_shape{lanetype#6571, dim#6571, i#28150}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28157}(M_1))] -[visit_exp lanetype#6571] -[visit_id lanetype#6571] -[visit_exp dim#6571] -[visit_id dim#6571] -[visit_exp i#28150] -[visit_id i#28150] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28157}(M_1))] + def $vcvtop__{Lnn_1 : Lnn, M_1 : M, Lnn_2 : Lnn, M_2 : M, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, v_1) = v + -- if ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(`ZERO`_zero)) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`} ++ [$zero(Lnn_2)]^M_1{})) + -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}) +[check_dims] Jnn_1 Jnn_2 M_1 M_2 c'_1 c'_2 c_1 c_2 sx v v_1 v_2 +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#28157}(M_1)] -[visit_exp i#28157] -[visit_id i#28157] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#6583, dim#6583, i#28162}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28169}(M_2))] -[visit_exp lanetype#6583] -[visit_id lanetype#6583] -[visit_exp dim#6583] -[visit_id dim#6583] -[visit_exp i#28162] -[visit_id i#28162] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28169}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#28169}(M_2)] -[visit_exp i#28169] -[visit_id i#28169] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] @@ -46060,7 +38786,7 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id v_2] [visit_exp v] [visit_id v] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -46070,27 +38796,19 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1)), v_1)] -[visit_exp `%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))] -[visit_exp lanetype#6595] -[visit_id lanetype#6595] -[visit_exp dim#6595] -[visit_id dim#6595] -[visit_exp i#28198] -[visit_id i#28198] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))] +[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] not free -[visit_exp `%`_dim{i#28205}(M_1)] -[visit_exp i#28205] -[visit_id i#28205] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1)), v_2))] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2))] [visit_exp c_2*{c_2 <- `c_2*`}] [scope_enter c_2] [visit_exp c_2] @@ -46100,21 +38818,13 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp `c_2*`] [visit_id c_2*] no dims [visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1)), v_2)] -[visit_exp `%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))] -[visit_exp lanetype#6620] -[visit_id lanetype#6620] -[visit_exp dim#6620] -[visit_id dim#6620] -[visit_exp i#28284] -[visit_id i#28284] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))] +[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] not free -[visit_exp `%`_dim{i#28291}(M_1)] -[visit_exp i#28291] -[visit_id i#28291] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free @@ -46180,24 +38890,16 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_exp `c_2*`] [visit_id c_2*] not free [visit_id c_2*] no dims -[visit_exp (v = $inv_lanes_(`%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`}))] +[visit_exp (v = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`}))] [visit_exp v] [visit_id v] not free -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`})] -[visit_exp `%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2))] -[visit_exp lanetype#6647] -[visit_id lanetype#6647] -[visit_exp dim#6647] -[visit_id dim#6647] -[visit_exp i#28450] -[visit_id i#28450] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`})] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] not free -[visit_exp `%`_dim{i#28457}(M_2)] -[visit_exp i#28457] -[visit_id i#28457] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -46222,12 +38924,12 @@ DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextterno [visit_id c'_2*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vnarrowop__{lanetype#6571 : lanetype, dim#6571 : dim, i#28150 : nat, Jnn_1 : Jnn, i#28157 : nat, M_1 : M, lanetype#6583 : lanetype, dim#6583 : dim, i#28162 : nat, Jnn_2 : Jnn, i#28169 : nat, M_2 : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#6595 : lanetype, dim#6595 : dim, i#28198 : nat, i#28205 : nat, lanetype#6620 : lanetype, dim#6620 : dim, i#28284 : nat, i#28291 : nat, `c'_1*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, lanetype#6647 : lanetype, dim#6647 : dim, i#28450 : nat, i#28457 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))*}(`%X%`_shape{lanetype#6571, dim#6571, i#28150}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28157}(M_1)), `%X%`_shape{lanetype#6583, dim#6583, i#28162}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28169}(M_2)), sx, v_1, v_2) = v - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1)), v_2)) + def $vnarrowop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), sx, v_1, v_2) = v + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)) -- if (c'_1*{c'_1 <- `c'_1*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}) -- if (c'_2*{c'_2 <- `c'_2*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_2)*{c_2 <- `c_2*`}) - -- if (v = $inv_lanes_(`%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`})) + -- if (v = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`})) [check_dims] N _ shape_1 shape_2 sx vec_ DecD ivextunop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) [visit_id shape_1] not free @@ -46244,38 +38946,22 @@ DecD ivextunop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*) : iN(N [visit_exp ()] [visit_exp `V128`_Vnn] [visit_exp ()] -[check_dims] Jnn_1 Jnn_2 M_1 M_2 c c'_1 c_1 dim#6690 dim#6702 dim#6714 dim#6740 i#28642 i#28649 i#28654 i#28661 i#28678 i#28685 i#28862 i#28869 lanetype#6690 lanetype#6702 lanetype#6714 lanetype#6740 sx v_1 -[visit_exp `%X%`_shape{lanetype#6690, dim#6690, i#28642}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28649}(M_1))] -[visit_exp lanetype#6690] -[visit_id lanetype#6690] -[visit_exp dim#6690] -[visit_id dim#6690] -[visit_exp i#28642] -[visit_id i#28642] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28649}(M_1))] +[check_dims] Jnn_1 Jnn_2 M_1 M_2 c c'_1 c_1 sx v_1 +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#28649}(M_1)] -[visit_exp i#28649] -[visit_id i#28649] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#6702, dim#6702, i#28654}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28661}(M_2))] -[visit_exp lanetype#6702] -[visit_id lanetype#6702] -[visit_exp dim#6702] -[visit_id dim#6702] -[visit_exp i#28654] -[visit_id i#28654] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28661}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#28661}(M_2)] -[visit_exp i#28661] -[visit_id i#28661] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] @@ -46283,21 +38969,13 @@ DecD ivextunop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*) : iN(N [visit_id sx] [visit_exp v_1] [visit_id v_1] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6740, dim#6740, i#28862}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28869}(M_2)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#6740, dim#6740, i#28862}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28869}(M_2))] -[visit_exp lanetype#6740] -[visit_id lanetype#6740] -[visit_exp dim#6740] -[visit_id dim#6740] -[visit_exp i#28862] -[visit_id i#28862] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28869}(M_2))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] not free -[visit_exp `%`_dim{i#28869}(M_2)] -[visit_exp i#28869] -[visit_id i#28869] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -46310,7 +38988,7 @@ DecD ivextunop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*) : iN(N [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1)), v_1))] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1))] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -46320,21 +38998,13 @@ DecD ivextunop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*) : iN(N [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1)), v_1)] -[visit_exp `%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))] -[visit_exp lanetype#6714] -[visit_id lanetype#6714] -[visit_exp dim#6714] -[visit_id dim#6714] -[visit_exp i#28678] -[visit_id i#28678] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))] +[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] not free -[visit_exp `%`_dim{i#28685}(M_1)] -[visit_exp i#28685] -[visit_id i#28685] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free @@ -46396,8 +39066,8 @@ DecD ivextunop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*) : iN(N [visit_id c'_1*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivextunop__{lanetype#6690 : lanetype, dim#6690 : dim, i#28642 : nat, Jnn_1 : Jnn, i#28649 : nat, M_1 : M, lanetype#6702 : lanetype, dim#6702 : dim, i#28654 : nat, Jnn_2 : Jnn, i#28661 : nat, M_2 : M, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), lanetype#6740 : lanetype, dim#6740 : dim, i#28862 : nat, i#28869 : nat, `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, lanetype#6714 : lanetype, dim#6714 : dim, i#28678 : nat, i#28685 : nat, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))*}(`%X%`_shape{lanetype#6690, dim#6690, i#28642}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28649}(M_1)), `%X%`_shape{lanetype#6702, dim#6702, i#28654}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28661}(M_2)), def $f_, sx, v_1) = $inv_lanes_(`%X%`_shape{lanetype#6740, dim#6740, i#28862}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28869}(M_2)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1)), v_1)) + def $ivextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $f_, sx, v_1) = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)) -- if (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}) -- if (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`})) [check_dims] N _ laneidx shape_1 shape_2 sx vec_ @@ -46425,38 +39095,22 @@ DecD ivextbinop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*, iN(N) [visit_exp ()] [visit_exp `V128`_Vnn] [visit_exp ()] -[check_dims] Jnn_1 Jnn_2 M_1 M_2 c c'_1 c'_2 c_1 c_2 dim#6764 dim#6776 dim#6788 dim#6813 dim#6840 i i#28935 i#28942 i#28947 i#28954 i#29007 i#29014 i#29034 i#29044 i#29113 i#29120 i#29140 i#29150 i#29380 i#29387 k lanetype#6764 lanetype#6776 lanetype#6788 lanetype#6813 lanetype#6840 sx_1 sx_2 v_1 v_2 -[visit_exp `%X%`_shape{lanetype#6764, dim#6764, i#28935}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28942}(M_1))] -[visit_exp lanetype#6764] -[visit_id lanetype#6764] -[visit_exp dim#6764] -[visit_id dim#6764] -[visit_exp i#28935] -[visit_id i#28935] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28942}(M_1))] +[check_dims] Jnn_1 Jnn_2 M_1 M_2 c c'_1 c'_2 c_1 c_2 i k sx_1 sx_2 v_1 v_2 +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#28942}(M_1)] -[visit_exp i#28942] -[visit_id i#28942] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%X%`_shape{lanetype#6776, dim#6776, i#28947}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28954}(M_2))] -[visit_exp lanetype#6776] -[visit_id lanetype#6776] -[visit_exp dim#6776] -[visit_id dim#6776] -[visit_exp i#28947] -[visit_id i#28947] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28954}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#28954}(M_2)] -[visit_exp i#28954] -[visit_id i#28954] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] @@ -46472,21 +39126,13 @@ DecD ivextbinop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*, iN(N) [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#6840, dim#6840, i#29380}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29387}(M_2)), c*{c <- `c*`})] -[visit_exp `%X%`_shape{lanetype#6840, dim#6840, i#29380}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29387}(M_2))] -[visit_exp lanetype#6840] -[visit_id lanetype#6840] -[visit_exp dim#6840] -[visit_id dim#6840] -[visit_exp i#29380] -[visit_id i#29380] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29387}(M_2))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`})] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] not free -[visit_exp `%`_dim{i#29387}(M_2)] -[visit_exp i#29387] -[visit_id i#29387] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -46499,7 +39145,7 @@ DecD ivextbinop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*, iN(N) [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1)), v_1)[i!`%`_laneidx{i#29034}.0 : k!`%`_laneidx{i#29044}.0])] +[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)[i!`%`_laneidx.0 : k!`%`_laneidx.0])] [visit_exp c_1*{c_1 <- `c_1*`}] [scope_enter c_1] [visit_exp c_1] @@ -46509,40 +39155,28 @@ DecD ivextbinop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*, iN(N) [visit_exp `c_1*`] [visit_id c_1*] no dims [visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1)), v_1)[i!`%`_laneidx{i#29034}.0 : k!`%`_laneidx{i#29044}.0]] -[visit_exp $lanes_(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1)), v_1)] -[visit_exp `%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))] -[visit_exp lanetype#6788] -[visit_id lanetype#6788] -[visit_exp dim#6788] -[visit_id dim#6788] -[visit_exp i#29007] -[visit_id i#29007] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))] +[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)[i!`%`_laneidx.0 : k!`%`_laneidx.0]] +[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] not free -[visit_exp `%`_dim{i#29014}(M_1)] -[visit_exp i#29014] -[visit_id i#29014] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free [visit_exp v_1] [visit_id v_1] not free -[visit_exp i!`%`_laneidx{i#29034}.0] -[visit_exp i!`%`_laneidx{i#29034}] +[visit_exp i!`%`_laneidx.0] +[visit_exp i!`%`_laneidx] [visit_exp i] [visit_id i] not free -[visit_exp i#29034] -[visit_id i#29034] -[visit_exp k!`%`_laneidx{i#29044}.0] -[visit_exp k!`%`_laneidx{i#29044}] +[visit_exp k!`%`_laneidx.0] +[visit_exp k!`%`_laneidx] [visit_exp k] [visit_id k] not free -[visit_exp i#29044] -[visit_id i#29044] -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1)), v_2)[i!`%`_laneidx{i#29140}.0 : k!`%`_laneidx{i#29150}.0])] +[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)[i!`%`_laneidx.0 : k!`%`_laneidx.0])] [visit_exp c_2*{c_2 <- `c_2*`}] [scope_enter c_2] [visit_exp c_2] @@ -46552,39 +39186,27 @@ DecD ivextbinop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*, iN(N) [visit_exp `c_2*`] [visit_id c_2*] no dims [visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1)), v_2)[i!`%`_laneidx{i#29140}.0 : k!`%`_laneidx{i#29150}.0]] -[visit_exp $lanes_(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1)), v_2)] -[visit_exp `%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))] -[visit_exp lanetype#6813] -[visit_id lanetype#6813] -[visit_exp dim#6813] -[visit_id dim#6813] -[visit_exp i#29113] -[visit_id i#29113] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))] +[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)[i!`%`_laneidx.0 : k!`%`_laneidx.0]] +[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] not free -[visit_exp `%`_dim{i#29120}(M_1)] -[visit_exp i#29120] -[visit_id i#29120] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free [visit_exp v_2] [visit_id v_2] not free -[visit_exp i!`%`_laneidx{i#29140}.0] -[visit_exp i!`%`_laneidx{i#29140}] +[visit_exp i!`%`_laneidx.0] +[visit_exp i!`%`_laneidx] [visit_exp i] [visit_id i] not free -[visit_exp i#29140] -[visit_id i#29140] -[visit_exp k!`%`_laneidx{i#29150}.0] -[visit_exp k!`%`_laneidx{i#29150}] +[visit_exp k!`%`_laneidx.0] +[visit_exp k!`%`_laneidx] [visit_exp k] [visit_id k] not free -[visit_exp i#29150] -[visit_id i#29150] [visit_exp (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_1, c_1)*{c_1 <- `c_1*`})] [visit_exp c'_1*{c'_1 <- `c'_1*`}] [scope_enter c'_1] @@ -46680,9 +39302,9 @@ DecD ivextbinop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*, iN(N) [visit_id c'_2*] no dims => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivextbinop__{lanetype#6764 : lanetype, dim#6764 : dim, i#28935 : nat, Jnn_1 : Jnn, i#28942 : nat, M_1 : M, lanetype#6776 : lanetype, dim#6776 : dim, i#28947 : nat, Jnn_2 : Jnn, i#28954 : nat, M_2 : M, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx_1 : sx, sx_2 : sx, i : laneidx, k : laneidx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#6840 : lanetype, dim#6840 : dim, i#29380 : nat, i#29387 : nat, `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, lanetype#6788 : lanetype, dim#6788 : dim, i#29007 : nat, i#29014 : nat, i#29034 : nat, i#29044 : nat, lanetype#6813 : lanetype, dim#6813 : dim, i#29113 : nat, i#29120 : nat, i#29140 : nat, i#29150 : nat, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))*}(`%X%`_shape{lanetype#6764, dim#6764, i#28935}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28942}(M_1)), `%X%`_shape{lanetype#6776, dim#6776, i#28947}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28954}(M_2)), def $f_, sx_1, sx_2, i, k, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#6840, dim#6840, i#29380}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29387}(M_2)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1)), v_1)[i!`%`_laneidx{i#29034}.0 : k!`%`_laneidx{i#29044}.0]) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1)), v_2)[i!`%`_laneidx{i#29140}.0 : k!`%`_laneidx{i#29150}.0]) + def $ivextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx_1 : sx, sx_2 : sx, i : laneidx, k : laneidx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $f_, sx_1, sx_2, i, k, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)[i!`%`_laneidx.0 : k!`%`_laneidx.0]) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)[i!`%`_laneidx.0 : k!`%`_laneidx.0]) -- if (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_1, c_1)*{c_1 <- `c_1*`}) -- if (c'_2*{c'_2 <- `c'_2*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_2, c_2)*{c_2 <- `c_2*`}) -- if (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`}, c'_2*{c'_2 <- `c'_2*`})) @@ -46694,7 +39316,7 @@ DecD ivadd_pairwise_(N : N, iN(N)*) : iN(N)* [visit_id N] not free [visit_exp N] [visit_id N] not free -[check_dims] N i i#29472 i#29492 i#29500 j_1 j_2 +[check_dims] N i j_1 j_2 [visit_exp N] [visit_id N] [visit_exp i*{i <- `i*`}] @@ -46706,47 +39328,31 @@ DecD ivadd_pairwise_(N : N, iN(N)*) : iN(N)* [visit_exp `i*`] [visit_id i*] no dims [visit_id i*] -[visit_exp $iadd_(N, `%`_iN{i#29492}(j_1), `%`_iN{i#29500}(j_2))*{i#29492 <- `i#29492*`, i#29500 <- `i#29500*`, j_1 <- `j_1*`, j_2 <- `j_2*`}] -[scope_enter i#29492] -[scope_enter i#29500] +[visit_exp $iadd_(N, `%`_iN(j_1), `%`_iN(j_2))*{j_1 <- `j_1*`, j_2 <- `j_2*`}] [scope_enter j_1] [scope_enter j_2] -[visit_exp $iadd_(N, `%`_iN{i#29492}(j_1), `%`_iN{i#29500}(j_2))] +[visit_exp $iadd_(N, `%`_iN(j_1), `%`_iN(j_2))] [visit_exp N] [visit_id N] not free -[visit_exp `%`_iN{i#29492}(j_1)] -[visit_exp i#29492] -[visit_id i#29492] not free +[visit_exp `%`_iN(j_1)] [visit_exp (j_1)] [visit_exp j_1] [visit_id j_1] not free -[visit_exp `%`_iN{i#29500}(j_2)] -[visit_exp i#29500] -[visit_id i#29500] not free +[visit_exp `%`_iN(j_2)] [visit_exp (j_2)] [visit_exp j_2] [visit_id j_2] not free -[visit_id i#29492] not free -[visit_id i#29500] not free [visit_id j_1] not free [visit_id j_2] not free [scope_exit j_2] [scope_exit j_1] -[scope_exit i#29500] -[scope_exit i#29492] -[visit_exp `i#29492*`] -[visit_id i#29492*] no dims -[visit_id i#29492*] -[visit_exp `i#29500*`] -[visit_id i#29500*] no dims -[visit_id i#29500*] [visit_exp `j_1*`] [visit_id j_1*] no dims [visit_id j_1*] [visit_exp `j_2*`] [visit_id j_2*] no dims [visit_id j_2*] -[visit_exp ($concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = i!`%`_iN{i#29472}.0*{i <- `i*`, i#29472 <- `i#29472*`})] +[visit_exp ($concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = i!`%`_iN.0*{i <- `i*`})] [visit_exp $concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`})] [visit_exp [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}] [scope_enter j_1] @@ -46766,29 +39372,21 @@ DecD ivadd_pairwise_(N : N, iN(N)*) : iN(N)* [visit_exp `j_2*`] [visit_id j_2*] not free [visit_id j_2*] no dims -[visit_exp i!`%`_iN{i#29472}.0*{i <- `i*`, i#29472 <- `i#29472*`}] +[visit_exp i!`%`_iN.0*{i <- `i*`}] [scope_enter i] -[scope_enter i#29472] -[visit_exp i!`%`_iN{i#29472}.0] -[visit_exp i!`%`_iN{i#29472}] +[visit_exp i!`%`_iN.0] +[visit_exp i!`%`_iN] [visit_exp i] [visit_id i] not free -[visit_exp i#29472] -[visit_id i#29472] not free [visit_id i] not free -[visit_id i#29472] not free -[scope_exit i#29472] [scope_exit i] [visit_exp `i*`] [visit_id i*] not free [visit_id i*] no dims -[visit_exp `i#29472*`] -[visit_id i#29472*] no dims -[visit_id i#29472*] => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivadd_pairwise_{N : N, `i*` : iN(N)*, `i#29492*` : nat*, `i#29500*` : nat*, `j_1*` : N*, `j_2*` : N*, `i#29472*` : nat*}(N, i*{i <- `i*`}) = $iadd_(N, `%`_iN{i#29492}(j_1), `%`_iN{i#29500}(j_2))*{i#29492 <- `i#29492*`, i#29500 <- `i#29500*`, j_1 <- `j_1*`, j_2 <- `j_2*`} - -- if ($concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = i!`%`_iN{i#29472}.0*{i <- `i*`, i#29472 <- `i#29472*`}) + def $ivadd_pairwise_{N : N, `i*` : iN(N)*, `j_1*` : N*, `j_2*` : N*}(N, i*{i <- `i*`}) = $iadd_(N, `%`_iN(j_1), `%`_iN(j_2))*{j_1 <- `j_1*`, j_2 <- `j_2*`} + -- if ($concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = i!`%`_iN.0*{i <- `i*`}) [check_dims] N _ DecD ivmul_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_id N] not free @@ -47042,93 +39640,51 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivdot_sat_{N : N, `i_1*` : iN(N)*, `i_2*` : iN(N)*, `j_1*` : iN(N)*, `j_2*` : iN(N)*}(N, i_1*{i_1 <- `i_1*`}, i_2*{i_2 <- `i_2*`}) = $iadd_sat_(N, `S`_sx, j_1, j_2)*{j_1 <- `j_1*`, j_2 <- `j_2*`} -- if ($concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`}) -[check_dims] Jnn#131 Jnn#135 Jnn_1 Jnn_2 M_1 M_2 dim#6864 dim#6876 dim#6888 dim#6900 i#29941 i#29948 i#29953 i#29960 i#29987 i#29994 i#29999 i#30006 lanetype#6864 lanetype#6876 lanetype#6888 lanetype#6900 shape#493 shape#505 sx sx#182 v_1 -[visit_exp `%`_ishape{shape#493, Jnn#131}(`%X%`_shape{lanetype#6864, dim#6864, i#29941}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29948}(M_1)))] -[visit_exp shape#493] -[visit_id shape#493] -[visit_exp Jnn#131] -[visit_id Jnn#131] -[visit_exp (`%X%`_shape{lanetype#6864, dim#6864, i#29941}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29948}(M_1)))] -[visit_exp `%X%`_shape{lanetype#6864, dim#6864, i#29941}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29948}(M_1))] -[visit_exp lanetype#6864] -[visit_id lanetype#6864] -[visit_exp dim#6864] -[visit_id dim#6864] -[visit_exp i#29941] -[visit_id i#29941] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29948}(M_1))] +[check_dims] Jnn_1 Jnn_2 M_1 M_2 sx v_1 +[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#29948}(M_1)] -[visit_exp i#29948] -[visit_id i#29948] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%`_ishape{shape#505, Jnn#135}(`%X%`_shape{lanetype#6876, dim#6876, i#29953}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29960}(M_2)))] -[visit_exp shape#505] -[visit_id shape#505] -[visit_exp Jnn#135] -[visit_id Jnn#135] -[visit_exp (`%X%`_shape{lanetype#6876, dim#6876, i#29953}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29960}(M_2)))] -[visit_exp `%X%`_shape{lanetype#6876, dim#6876, i#29953}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29960}(M_2))] -[visit_exp lanetype#6876] -[visit_id lanetype#6876] -[visit_exp dim#6876] -[visit_id dim#6876] -[visit_exp i#29953] -[visit_id i#29953] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29960}(M_2))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#29960}(M_2)] -[visit_exp i#29960] -[visit_id i#29960] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#182}(sx)] -[visit_exp sx#182] -[visit_id sx#182] +[visit_exp `EXTADD_PAIRWISE`_vextunop__(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] [visit_exp v_1] [visit_id v_1] -[visit_exp $ivextunop__(`%X%`_shape{lanetype#6888, dim#6888, i#29987}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29994}(M_1)), `%X%`_shape{lanetype#6900, dim#6900, i#29999}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30006}(M_2)), def $ivadd_pairwise_, sx, v_1)] -[visit_exp `%X%`_shape{lanetype#6888, dim#6888, i#29987}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29994}(M_1))] -[visit_exp lanetype#6888] -[visit_id lanetype#6888] -[visit_exp dim#6888] -[visit_id dim#6888] -[visit_exp i#29987] -[visit_id i#29987] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29994}(M_1))] +[visit_exp $ivextunop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivadd_pairwise_, sx, v_1)] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] not free -[visit_exp `%`_dim{i#29994}(M_1)] -[visit_exp i#29994] -[visit_id i#29994] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free -[visit_exp `%X%`_shape{lanetype#6900, dim#6900, i#29999}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30006}(M_2))] -[visit_exp lanetype#6900] -[visit_id lanetype#6900] -[visit_exp dim#6900] -[visit_id dim#6900] -[visit_exp i#29999] -[visit_id i#29999] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30006}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] not free -[visit_exp `%`_dim{i#30006}(M_2)] -[visit_exp i#30006] -[visit_id i#30006] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -47138,59 +39694,31 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_id v_1] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextunop__{shape#493 : shape, Jnn#131 : Jnn, lanetype#6864 : lanetype, dim#6864 : dim, i#29941 : nat, Jnn_1 : Jnn, i#29948 : nat, M_1 : M, shape#505 : shape, Jnn#135 : Jnn, lanetype#6876 : lanetype, dim#6876 : dim, i#29953 : nat, Jnn_2 : Jnn, i#29960 : nat, M_2 : M, sx#182 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), lanetype#6888 : lanetype, dim#6888 : dim, i#29987 : nat, i#29994 : nat, lanetype#6900 : lanetype, dim#6900 : dim, i#29999 : nat, i#30006 : nat}(`%`_ishape{shape#493, Jnn#131}(`%X%`_shape{lanetype#6864, dim#6864, i#29941}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29948}(M_1))), `%`_ishape{shape#505, Jnn#135}(`%X%`_shape{lanetype#6876, dim#6876, i#29953}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29960}(M_2))), `EXTADD_PAIRWISE`_vextunop__{sx#182}(sx), v_1) = $ivextunop__(`%X%`_shape{lanetype#6888, dim#6888, i#29987}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29994}(M_1)), `%X%`_shape{lanetype#6900, dim#6900, i#29999}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30006}(M_2)), def $ivadd_pairwise_, sx, v_1) -[check_dims] Jnn#139 Jnn#143 Jnn_1 Jnn_2 M_1 M_2 dim#6912 dim#6924 dim#6936 dim#6948 half half#7 i#30021 i#30028 i#30033 i#30040 i#30079 i#30086 i#30091 i#30098 i#30118 i#30140 lanetype#6912 lanetype#6924 lanetype#6936 lanetype#6948 shape#517 shape#529 sx sx#184 v_1 v_2 -[visit_exp `%`_ishape{shape#517, Jnn#139}(`%X%`_shape{lanetype#6912, dim#6912, i#30021}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30028}(M_1)))] -[visit_exp shape#517] -[visit_id shape#517] -[visit_exp Jnn#139] -[visit_id Jnn#139] -[visit_exp (`%X%`_shape{lanetype#6912, dim#6912, i#30021}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30028}(M_1)))] -[visit_exp `%X%`_shape{lanetype#6912, dim#6912, i#30021}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30028}(M_1))] -[visit_exp lanetype#6912] -[visit_id lanetype#6912] -[visit_exp dim#6912] -[visit_id dim#6912] -[visit_exp i#30021] -[visit_id i#30021] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30028}(M_1))] + def $vextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, v_1 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTADD_PAIRWISE`_vextunop__(sx), v_1) = $ivextunop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivadd_pairwise_, sx, v_1) +[check_dims] Jnn_1 Jnn_2 M_1 M_2 half sx v_1 v_2 +[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#30028}(M_1)] -[visit_exp i#30028] -[visit_id i#30028] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%`_ishape{shape#529, Jnn#143}(`%X%`_shape{lanetype#6924, dim#6924, i#30033}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30040}(M_2)))] -[visit_exp shape#529] -[visit_id shape#529] -[visit_exp Jnn#143] -[visit_id Jnn#143] -[visit_exp (`%X%`_shape{lanetype#6924, dim#6924, i#30033}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30040}(M_2)))] -[visit_exp `%X%`_shape{lanetype#6924, dim#6924, i#30033}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30040}(M_2))] -[visit_exp lanetype#6924] -[visit_id lanetype#6924] -[visit_exp dim#6924] -[visit_id dim#6924] -[visit_exp i#30033] -[visit_id i#30033] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30040}(M_2))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#30040}(M_2)] -[visit_exp i#30040] -[visit_id i#30040] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] -[visit_exp `EXTMUL`_vextbinop__{half#7, sx#184}(half, sx)] -[visit_exp half#7] -[visit_id half#7] -[visit_exp sx#184] -[visit_id sx#184] +[visit_exp `EXTMUL`_vextbinop__(half, sx)] [visit_exp (half, sx)] [visit_exp half] [visit_id half] @@ -47200,38 +39728,22 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivextbinop__(`%X%`_shape{lanetype#6936, dim#6936, i#30079}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30086}(M_1)), `%X%`_shape{lanetype#6948, dim#6948, i#30091}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30098}(M_2)), def $ivmul_, sx, sx, `%`_laneidx{i#30118}($half(half, 0, M_2)), `%`_laneidx{i#30140}(M_2), v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#6936, dim#6936, i#30079}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30086}(M_1))] -[visit_exp lanetype#6936] -[visit_id lanetype#6936] -[visit_exp dim#6936] -[visit_id dim#6936] -[visit_exp i#30079] -[visit_id i#30079] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30086}(M_1))] +[visit_exp $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivmul_, sx, sx, `%`_laneidx($half(half, 0, M_2)), `%`_laneidx(M_2), v_1, v_2)] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] not free -[visit_exp `%`_dim{i#30086}(M_1)] -[visit_exp i#30086] -[visit_id i#30086] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free -[visit_exp `%X%`_shape{lanetype#6948, dim#6948, i#30091}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30098}(M_2))] -[visit_exp lanetype#6948] -[visit_id lanetype#6948] -[visit_exp dim#6948] -[visit_id dim#6948] -[visit_exp i#30091] -[visit_id i#30091] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30098}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] not free -[visit_exp `%`_dim{i#30098}(M_2)] -[visit_exp i#30098] -[visit_id i#30098] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -47239,9 +39751,7 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_id sx] not free [visit_exp sx] [visit_id sx] not free -[visit_exp `%`_laneidx{i#30118}($half(half, 0, M_2))] -[visit_exp i#30118] -[visit_id i#30118] +[visit_exp `%`_laneidx($half(half, 0, M_2))] [visit_exp ($half(half, 0, M_2))] [visit_exp $half(half, 0, M_2)] [visit_exp half] @@ -47249,9 +39759,7 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_exp 0] [visit_exp M_2] [visit_id M_2] not free -[visit_exp `%`_laneidx{i#30140}(M_2)] -[visit_exp i#30140] -[visit_id i#30140] +[visit_exp `%`_laneidx(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -47261,51 +39769,27 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{shape#517 : shape, Jnn#139 : Jnn, lanetype#6912 : lanetype, dim#6912 : dim, i#30021 : nat, Jnn_1 : Jnn, i#30028 : nat, M_1 : M, shape#529 : shape, Jnn#143 : Jnn, lanetype#6924 : lanetype, dim#6924 : dim, i#30033 : nat, Jnn_2 : Jnn, i#30040 : nat, M_2 : M, half#7 : half, sx#184 : sx, half : half, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#6936 : lanetype, dim#6936 : dim, i#30079 : nat, i#30086 : nat, lanetype#6948 : lanetype, dim#6948 : dim, i#30091 : nat, i#30098 : nat, i#30118 : nat, i#30140 : nat}(`%`_ishape{shape#517, Jnn#139}(`%X%`_shape{lanetype#6912, dim#6912, i#30021}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30028}(M_1))), `%`_ishape{shape#529, Jnn#143}(`%X%`_shape{lanetype#6924, dim#6924, i#30033}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30040}(M_2))), `EXTMUL`_vextbinop__{half#7, sx#184}(half, sx), v_1, v_2) = $ivextbinop__(`%X%`_shape{lanetype#6936, dim#6936, i#30079}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30086}(M_1)), `%X%`_shape{lanetype#6948, dim#6948, i#30091}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30098}(M_2)), def $ivmul_, sx, sx, `%`_laneidx{i#30118}($half(half, 0, M_2)), `%`_laneidx{i#30140}(M_2), v_1, v_2) -[check_dims] Jnn#147 Jnn#151 Jnn_1 Jnn_2 M_1 M_2 dim#6960 dim#6972 dim#6984 dim#6996 i#30165 i#30172 i#30177 i#30184 i#30223 i#30230 i#30235 i#30242 i#30262 i#30284 lanetype#6960 lanetype#6972 lanetype#6984 lanetype#6996 shape#541 shape#553 v_1 v_2 -[visit_exp `%`_ishape{shape#541, Jnn#147}(`%X%`_shape{lanetype#6960, dim#6960, i#30165}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30172}(M_1)))] -[visit_exp shape#541] -[visit_id shape#541] -[visit_exp Jnn#147] -[visit_id Jnn#147] -[visit_exp (`%X%`_shape{lanetype#6960, dim#6960, i#30165}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30172}(M_1)))] -[visit_exp `%X%`_shape{lanetype#6960, dim#6960, i#30165}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30172}(M_1))] -[visit_exp lanetype#6960] -[visit_id lanetype#6960] -[visit_exp dim#6960] -[visit_id dim#6960] -[visit_exp i#30165] -[visit_id i#30165] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30172}(M_1))] + def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTMUL`_vextbinop__(half, sx), v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivmul_, sx, sx, `%`_laneidx($half(half, 0, M_2)), `%`_laneidx(M_2), v_1, v_2) +[check_dims] Jnn_1 Jnn_2 M_1 M_2 v_1 v_2 +[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#30172}(M_1)] -[visit_exp i#30172] -[visit_id i#30172] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%`_ishape{shape#553, Jnn#151}(`%X%`_shape{lanetype#6972, dim#6972, i#30177}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30184}(M_2)))] -[visit_exp shape#553] -[visit_id shape#553] -[visit_exp Jnn#151] -[visit_id Jnn#151] -[visit_exp (`%X%`_shape{lanetype#6972, dim#6972, i#30177}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30184}(M_2)))] -[visit_exp `%X%`_shape{lanetype#6972, dim#6972, i#30177}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30184}(M_2))] -[visit_exp lanetype#6972] -[visit_id lanetype#6972] -[visit_exp dim#6972] -[visit_id dim#6972] -[visit_exp i#30177] -[visit_id i#30177] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30184}(M_2))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#30184}(M_2)] -[visit_exp i#30184] -[visit_id i#30184] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] @@ -47315,38 +39799,22 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivextbinop__(`%X%`_shape{lanetype#6984, dim#6984, i#30223}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30230}(M_1)), `%X%`_shape{lanetype#6996, dim#6996, i#30235}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30242}(M_2)), def $ivdot_, `S`_sx, `S`_sx, `%`_laneidx{i#30262}(0), `%`_laneidx{i#30284}(M_1), v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#6984, dim#6984, i#30223}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30230}(M_1))] -[visit_exp lanetype#6984] -[visit_id lanetype#6984] -[visit_exp dim#6984] -[visit_id dim#6984] -[visit_exp i#30223] -[visit_id i#30223] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30230}(M_1))] +[visit_exp $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_, `S`_sx, `S`_sx, `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2)] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] not free -[visit_exp `%`_dim{i#30230}(M_1)] -[visit_exp i#30230] -[visit_id i#30230] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free -[visit_exp `%X%`_shape{lanetype#6996, dim#6996, i#30235}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30242}(M_2))] -[visit_exp lanetype#6996] -[visit_id lanetype#6996] -[visit_exp dim#6996] -[visit_id dim#6996] -[visit_exp i#30235] -[visit_id i#30235] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30242}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] not free -[visit_exp `%`_dim{i#30242}(M_2)] -[visit_exp i#30242] -[visit_id i#30242] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -47354,14 +39822,10 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_laneidx{i#30262}(0)] -[visit_exp i#30262] -[visit_id i#30262] +[visit_exp `%`_laneidx(0)] [visit_exp (0)] [visit_exp 0] -[visit_exp `%`_laneidx{i#30284}(M_1)] -[visit_exp i#30284] -[visit_id i#30284] +[visit_exp `%`_laneidx(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free @@ -47371,51 +39835,27 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{shape#541 : shape, Jnn#147 : Jnn, lanetype#6960 : lanetype, dim#6960 : dim, i#30165 : nat, Jnn_1 : Jnn, i#30172 : nat, M_1 : M, shape#553 : shape, Jnn#151 : Jnn, lanetype#6972 : lanetype, dim#6972 : dim, i#30177 : nat, Jnn_2 : Jnn, i#30184 : nat, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#6984 : lanetype, dim#6984 : dim, i#30223 : nat, i#30230 : nat, lanetype#6996 : lanetype, dim#6996 : dim, i#30235 : nat, i#30242 : nat, i#30262 : nat, i#30284 : nat}(`%`_ishape{shape#541, Jnn#147}(`%X%`_shape{lanetype#6960, dim#6960, i#30165}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30172}(M_1))), `%`_ishape{shape#553, Jnn#151}(`%X%`_shape{lanetype#6972, dim#6972, i#30177}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30184}(M_2))), `DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape{lanetype#6984, dim#6984, i#30223}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30230}(M_1)), `%X%`_shape{lanetype#6996, dim#6996, i#30235}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30242}(M_2)), def $ivdot_, `S`_sx, `S`_sx, `%`_laneidx{i#30262}(0), `%`_laneidx{i#30284}(M_1), v_1, v_2) -[check_dims] Jnn#155 Jnn#159 Jnn_1 Jnn_2 M_1 M_2 dim#7008 dim#7020 dim#7032 dim#7044 i#30309 i#30316 i#30321 i#30328 i#30367 i#30374 i#30379 i#30386 i#30412 i#30434 lanetype#7008 lanetype#7020 lanetype#7032 lanetype#7044 shape#565 shape#577 v_1 v_2 -[visit_exp `%`_ishape{shape#565, Jnn#155}(`%X%`_shape{lanetype#7008, dim#7008, i#30309}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30316}(M_1)))] -[visit_exp shape#565] -[visit_id shape#565] -[visit_exp Jnn#155] -[visit_id Jnn#155] -[visit_exp (`%X%`_shape{lanetype#7008, dim#7008, i#30309}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30316}(M_1)))] -[visit_exp `%X%`_shape{lanetype#7008, dim#7008, i#30309}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30316}(M_1))] -[visit_exp lanetype#7008] -[visit_id lanetype#7008] -[visit_exp dim#7008] -[visit_id dim#7008] -[visit_exp i#30309] -[visit_id i#30309] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30316}(M_1))] + def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_, `S`_sx, `S`_sx, `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2) +[check_dims] Jnn_1 Jnn_2 M_1 M_2 v_1 v_2 +[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#30316}(M_1)] -[visit_exp i#30316] -[visit_id i#30316] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%`_ishape{shape#577, Jnn#159}(`%X%`_shape{lanetype#7020, dim#7020, i#30321}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30328}(M_2)))] -[visit_exp shape#577] -[visit_id shape#577] -[visit_exp Jnn#159] -[visit_id Jnn#159] -[visit_exp (`%X%`_shape{lanetype#7020, dim#7020, i#30321}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30328}(M_2)))] -[visit_exp `%X%`_shape{lanetype#7020, dim#7020, i#30321}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30328}(M_2))] -[visit_exp lanetype#7020] -[visit_id lanetype#7020] -[visit_exp dim#7020] -[visit_id dim#7020] -[visit_exp i#30321] -[visit_id i#30321] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30328}(M_2))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#30328}(M_2)] -[visit_exp i#30328] -[visit_id i#30328] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] @@ -47425,38 +39865,22 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_id v_1] [visit_exp v_2] [visit_id v_2] -[visit_exp $ivextbinop__(`%X%`_shape{lanetype#7032, dim#7032, i#30367}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30374}(M_1)), `%X%`_shape{lanetype#7044, dim#7044, i#30379}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30386}(M_2)), def $ivdot_sat_, `S`_sx, $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx), `%`_laneidx{i#30412}(0), `%`_laneidx{i#30434}(M_1), v_1, v_2)] -[visit_exp `%X%`_shape{lanetype#7032, dim#7032, i#30367}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30374}(M_1))] -[visit_exp lanetype#7032] -[visit_id lanetype#7032] -[visit_exp dim#7032] -[visit_id dim#7032] -[visit_exp i#30367] -[visit_id i#30367] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30374}(M_1))] +[visit_exp $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_sat_, `S`_sx, $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx), `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2)] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] not free -[visit_exp `%`_dim{i#30374}(M_1)] -[visit_exp i#30374] -[visit_id i#30374] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free -[visit_exp `%X%`_shape{lanetype#7044, dim#7044, i#30379}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30386}(M_2))] -[visit_exp lanetype#7044] -[visit_id lanetype#7044] -[visit_exp dim#7044] -[visit_id dim#7044] -[visit_exp i#30379] -[visit_id i#30379] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30386}(M_2))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] not free -[visit_exp `%`_dim{i#30386}(M_2)] -[visit_exp i#30386] -[visit_id i#30386] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -47468,14 +39892,10 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_laneidx{i#30412}(0)] -[visit_exp i#30412] -[visit_id i#30412] +[visit_exp `%`_laneidx(0)] [visit_exp (0)] [visit_exp 0] -[visit_exp `%`_laneidx{i#30434}(M_1)] -[visit_exp i#30434] -[visit_id i#30434] +[visit_exp `%`_laneidx(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free @@ -47485,51 +39905,27 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_id v_2] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{shape#565 : shape, Jnn#155 : Jnn, lanetype#7008 : lanetype, dim#7008 : dim, i#30309 : nat, Jnn_1 : Jnn, i#30316 : nat, M_1 : M, shape#577 : shape, Jnn#159 : Jnn, lanetype#7020 : lanetype, dim#7020 : dim, i#30321 : nat, Jnn_2 : Jnn, i#30328 : nat, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#7032 : lanetype, dim#7032 : dim, i#30367 : nat, i#30374 : nat, lanetype#7044 : lanetype, dim#7044 : dim, i#30379 : nat, i#30386 : nat, i#30412 : nat, i#30434 : nat}(`%`_ishape{shape#565, Jnn#155}(`%X%`_shape{lanetype#7008, dim#7008, i#30309}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30316}(M_1))), `%`_ishape{shape#577, Jnn#159}(`%X%`_shape{lanetype#7020, dim#7020, i#30321}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30328}(M_2))), `RELAXED_DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape{lanetype#7032, dim#7032, i#30367}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30374}(M_1)), `%X%`_shape{lanetype#7044, dim#7044, i#30379}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30386}(M_2)), def $ivdot_sat_, `S`_sx, $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx), `%`_laneidx{i#30412}(0), `%`_laneidx{i#30434}(M_1), v_1, v_2) -[check_dims] Jnn Jnn#163 Jnn#167 Jnn#171 Jnn#175 Jnn#179 Jnn#183 Jnn_1 Jnn_2 M M_1 M_2 c c' c'' c_1 c_2 c_3 dim#7056 dim#7068 dim#7080 dim#7092 dim#7149 dim#7161 dim#7218 i#30459 i#30466 i#30471 i#30478 i#30519 i#30526 i#30531 i#30538 i#30650 i#30657 i#30662 i#30669 i#30771 i#30778 lanetype#7056 lanetype#7068 lanetype#7080 lanetype#7092 lanetype#7149 lanetype#7161 lanetype#7218 shape#589 shape#601 shape#613 shape#625 shape#652 shape#664 sx#216 -[visit_exp `%`_ishape{shape#589, Jnn#163}(`%X%`_shape{lanetype#7056, dim#7056, i#30459}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30466}(M_1)))] -[visit_exp shape#589] -[visit_id shape#589] -[visit_exp Jnn#163] -[visit_id Jnn#163] -[visit_exp (`%X%`_shape{lanetype#7056, dim#7056, i#30459}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30466}(M_1)))] -[visit_exp `%X%`_shape{lanetype#7056, dim#7056, i#30459}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30466}(M_1))] -[visit_exp lanetype#7056] -[visit_id lanetype#7056] -[visit_exp dim#7056] -[visit_id dim#7056] -[visit_exp i#30459] -[visit_id i#30459] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30466}(M_1))] + def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `RELAXED_DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_sat_, `S`_sx, $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx), `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2) +[check_dims] Jnn Jnn_1 Jnn_2 M M_1 M_2 c c' c'' c_1 c_2 c_3 +[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] -[visit_exp `%`_dim{i#30466}(M_1)] -[visit_exp i#30466] -[visit_id i#30466] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] -[visit_exp `%`_ishape{shape#601, Jnn#167}(`%X%`_shape{lanetype#7068, dim#7068, i#30471}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30478}(M_2)))] -[visit_exp shape#601] -[visit_id shape#601] -[visit_exp Jnn#167] -[visit_id Jnn#167] -[visit_exp (`%X%`_shape{lanetype#7068, dim#7068, i#30471}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30478}(M_2)))] -[visit_exp `%X%`_shape{lanetype#7068, dim#7068, i#30471}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30478}(M_2))] -[visit_exp lanetype#7068] -[visit_id lanetype#7068] -[visit_exp dim#7068] -[visit_id dim#7068] -[visit_exp i#30471] -[visit_id i#30471] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30478}(M_2))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] -[visit_exp `%`_dim{i#30478}(M_2)] -[visit_exp i#30478] -[visit_id i#30478] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] @@ -47560,53 +39956,29 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_exp 2] [visit_exp M_2] [visit_id M_2] not free -[visit_exp (c' = $vextbinop__(`%`_ishape{shape#613, Jnn#171}(`%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1))), `%`_ishape{shape#625, Jnn#175}(`%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2))] +[visit_exp (c' = $vextbinop__(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2))] [visit_exp c'] [visit_id c'] -[visit_exp $vextbinop__(`%`_ishape{shape#613, Jnn#171}(`%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1))), `%`_ishape{shape#625, Jnn#175}(`%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2)] -[visit_exp `%`_ishape{shape#613, Jnn#171}(`%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1)))] -[visit_exp shape#613] -[visit_id shape#613] -[visit_exp Jnn#171] -[visit_id Jnn#171] -[visit_exp (`%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1)))] -[visit_exp `%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1))] -[visit_exp lanetype#7080] -[visit_id lanetype#7080] -[visit_exp dim#7080] -[visit_id dim#7080] -[visit_exp i#30519] -[visit_id i#30519] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1))] +[visit_exp $vextbinop__(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2)] +[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] +[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] +[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] [visit_exp (Jnn_1 : Jnn <: lanetype)] [visit_exp Jnn_1] [visit_id Jnn_1] not free -[visit_exp `%`_dim{i#30526}(M_1)] -[visit_exp i#30526] -[visit_id i#30526] +[visit_exp `%`_dim(M_1)] [visit_exp (M_1)] [visit_exp M_1] [visit_id M_1] not free -[visit_exp `%`_ishape{shape#625, Jnn#175}(`%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M)))] -[visit_exp shape#625] -[visit_id shape#625] -[visit_exp Jnn#175] -[visit_id Jnn#175] -[visit_exp (`%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M)))] -[visit_exp `%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M))] -[visit_exp lanetype#7092] -[visit_id lanetype#7092] -[visit_exp dim#7092] -[visit_id dim#7092] -[visit_exp i#30531] -[visit_id i#30531] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] +[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#30538}(M)] -[visit_exp i#30538] -[visit_id i#30538] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -47616,82 +39988,48 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_id c_1] not free [visit_exp c_2] [visit_id c_2] not free -[visit_exp (c'' = $vextunop__(`%`_ishape{shape#652, Jnn#179}(`%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M))), `%`_ishape{shape#664, Jnn#183}(`%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2))), `EXTADD_PAIRWISE`_vextunop__{sx#216}(`S`_sx), c'))] +[visit_exp (c'' = $vextunop__(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx), c'))] [visit_exp c''] [visit_id c''] -[visit_exp $vextunop__(`%`_ishape{shape#652, Jnn#179}(`%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M))), `%`_ishape{shape#664, Jnn#183}(`%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2))), `EXTADD_PAIRWISE`_vextunop__{sx#216}(`S`_sx), c')] -[visit_exp `%`_ishape{shape#652, Jnn#179}(`%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M)))] -[visit_exp shape#652] -[visit_id shape#652] -[visit_exp Jnn#179] -[visit_id Jnn#179] -[visit_exp (`%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M)))] -[visit_exp `%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M))] -[visit_exp lanetype#7149] -[visit_id lanetype#7149] -[visit_exp dim#7149] -[visit_id dim#7149] -[visit_exp i#30650] -[visit_id i#30650] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M))] +[visit_exp $vextunop__(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx), c')] +[visit_exp `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] +[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#30657}(M)] -[visit_exp i#30657] -[visit_id i#30657] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free -[visit_exp `%`_ishape{shape#664, Jnn#183}(`%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2)))] -[visit_exp shape#664] -[visit_id shape#664] -[visit_exp Jnn#183] -[visit_id Jnn#183] -[visit_exp (`%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2)))] -[visit_exp `%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2))] -[visit_exp lanetype#7161] -[visit_id lanetype#7161] -[visit_exp dim#7161] -[visit_id dim#7161] -[visit_exp i#30662] -[visit_id i#30662] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2))] +[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] not free -[visit_exp `%`_dim{i#30669}(M_2)] -[visit_exp i#30669] -[visit_id i#30669] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free -[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#216}(`S`_sx)] -[visit_exp sx#216] -[visit_id sx#216] +[visit_exp `EXTADD_PAIRWISE`_vextunop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] [visit_exp c'] [visit_id c'] not free -[visit_exp (c <- $vbinop_(`%X%`_shape{lanetype#7218, dim#7218, i#30771}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30778}(M_2)), `ADD`_vbinop_, c'', c_3))] +[visit_exp (c <- $vbinop_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `ADD`_vbinop_, c'', c_3))] [visit_exp c] [visit_id c] not free -[visit_exp $vbinop_(`%X%`_shape{lanetype#7218, dim#7218, i#30771}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30778}(M_2)), `ADD`_vbinop_, c'', c_3)] -[visit_exp `%X%`_shape{lanetype#7218, dim#7218, i#30771}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30778}(M_2))] -[visit_exp lanetype#7218] -[visit_id lanetype#7218] -[visit_exp dim#7218] -[visit_id dim#7218] -[visit_exp i#30771] -[visit_id i#30771] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30778}(M_2))] +[visit_exp $vbinop_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `ADD`_vbinop_, c'', c_3)] +[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] +[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] [visit_exp (Jnn_2 : Jnn <: lanetype)] [visit_exp Jnn_2] [visit_id Jnn_2] not free -[visit_exp `%`_dim{i#30778}(M_2)] -[visit_exp i#30778] -[visit_id i#30778] +[visit_exp `%`_dim(M_2)] [visit_exp (M_2)] [visit_exp M_2] [visit_id M_2] not free @@ -47703,12 +40041,12 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [visit_id c_3] not free => ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextternop__{shape#589 : shape, Jnn#163 : Jnn, lanetype#7056 : lanetype, dim#7056 : dim, i#30459 : nat, Jnn_1 : Jnn, i#30466 : nat, M_1 : M, shape#601 : shape, Jnn#167 : Jnn, lanetype#7068 : lanetype, dim#7068 : dim, i#30471 : nat, Jnn_2 : Jnn, i#30478 : nat, M_2 : M, c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), c : vec_(`V128`_Vnn), Jnn : Jnn, M : M, c' : vec_(`V128`_Vnn), shape#613 : shape, Jnn#171 : Jnn, lanetype#7080 : lanetype, dim#7080 : dim, i#30519 : nat, i#30526 : nat, shape#625 : shape, Jnn#175 : Jnn, lanetype#7092 : lanetype, dim#7092 : dim, i#30531 : nat, i#30538 : nat, c'' : vec_(`V128`_Vnn), shape#652 : shape, Jnn#179 : Jnn, lanetype#7149 : lanetype, dim#7149 : dim, i#30650 : nat, i#30657 : nat, shape#664 : shape, Jnn#183 : Jnn, lanetype#7161 : lanetype, dim#7161 : dim, i#30662 : nat, i#30669 : nat, sx#216 : sx, lanetype#7218 : lanetype, dim#7218 : dim, i#30771 : nat, i#30778 : nat}(`%`_ishape{shape#589, Jnn#163}(`%X%`_shape{lanetype#7056, dim#7056, i#30459}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30466}(M_1))), `%`_ishape{shape#601, Jnn#167}(`%X%`_shape{lanetype#7068, dim#7068, i#30471}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30478}(M_2))), `RELAXED_DOT_ADDS`_vextternop__, c_1, c_2, c_3) = c + def $vextternop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), c : vec_(`V128`_Vnn), Jnn : Jnn, M : M, c' : vec_(`V128`_Vnn), c'' : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `RELAXED_DOT_ADDS`_vextternop__, c_1, c_2, c_3) = c -- if ($jsizenn(Jnn) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) -- if (M = (2 * M_2)) - -- if (c' = $vextbinop__(`%`_ishape{shape#613, Jnn#171}(`%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1))), `%`_ishape{shape#625, Jnn#175}(`%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2)) - -- if (c'' = $vextunop__(`%`_ishape{shape#652, Jnn#179}(`%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M))), `%`_ishape{shape#664, Jnn#183}(`%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2))), `EXTADD_PAIRWISE`_vextunop__{sx#216}(`S`_sx), c')) - -- if (c <- $vbinop_(`%X%`_shape{lanetype#7218, dim#7218, i#30771}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30778}(M_2)), `ADD`_vbinop_, c'', c_3)) + -- if (c' = $vextbinop__(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2)) + -- if (c'' = $vextunop__(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx), c')) + -- if (c <- $vbinop_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `ADD`_vbinop_, c'', c_3)) [check_dims] [check_dims] [check_dims] @@ -47722,147 +40060,195 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* [check_dims] [check_dims] [check_dims] ---- 1 --- [check_dims] ---- 2 --- ---- 3 --- ---- 4 --- +[scope_enter tagaddr] +[visit_id tagaddr] not free [visit_id tagaddr] no dims -[visit_id tagaddr] +[scope_exit tagaddr] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter globaladdr] +[visit_id globaladdr] not free [visit_id globaladdr] no dims -[visit_id globaladdr] +[scope_exit globaladdr] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter memaddr] +[visit_id memaddr] not free [visit_id memaddr] no dims -[visit_id memaddr] +[scope_exit memaddr] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tableaddr] +[visit_id tableaddr] not free [visit_id tableaddr] no dims -[visit_id tableaddr] +[scope_exit tableaddr] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter funcaddr] +[visit_id funcaddr] not free [visit_id funcaddr] no dims -[visit_id funcaddr] +[scope_exit funcaddr] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- [check_dims] [check_dims] [check_dims] +[check_dims] numtype +[scope_enter numtype] +[visit_id numtype] not free +[visit_exp numtype] +[visit_id numtype] not free +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit numtype] --- 1 --- [check_dims] numtype --- 2 --- --- 3 --- --- 4 --- -[visit_id numtype] +[check_dims] +[check_dims] vectype +[scope_enter vectype] +[visit_id vectype] not free +[visit_exp vectype] +[visit_id vectype] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims -[visit_exp numtype] -[visit_id numtype] not free -[check_dims] +[scope_exit _] +[scope_exit vectype] --- 1 --- [check_dims] vectype --- 2 --- --- 3 --- --- 4 --- -[visit_id vectype] -[visit_id _] not free -[visit_id _] no dims -[visit_exp vectype] -[visit_id vectype] not free [check_dims] ---- 1 --- [check_dims] ---- 2 --- ---- 3 --- ---- 4 --- +[scope_enter u31] +[visit_id u31] not free [visit_id u31] no dims -[visit_id u31] +[scope_exit u31] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter structaddr] +[visit_id structaddr] not free [visit_id structaddr] no dims -[visit_id structaddr] +[scope_exit structaddr] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter arrayaddr] +[visit_id arrayaddr] not free [visit_id arrayaddr] no dims -[visit_id arrayaddr] +[scope_exit arrayaddr] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter funcaddr] +[visit_id funcaddr] not free [visit_id funcaddr] no dims -[visit_id funcaddr] +[scope_exit funcaddr] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter exnaddr] +[visit_id exnaddr] not free [visit_id exnaddr] no dims -[visit_id exnaddr] +[scope_exit exnaddr] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter hostaddr] +[visit_id hostaddr] not free [visit_id hostaddr] no dims -[visit_id hostaddr] +[scope_exit hostaddr] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id addrref] no dims -[visit_id addrref] [check_dims] +[scope_enter addrref] +[visit_id addrref] not free +[visit_id addrref] no dims +[scope_exit addrref] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id heaptype] no dims -[visit_id heaptype] [check_dims] [check_dims] +[scope_enter heaptype] +[visit_id heaptype] not free +[visit_id heaptype] no dims +[scope_exit heaptype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[check_dims] +[scope_enter val*] +[visit_id val*] not free [visit_id val*] no dims -[visit_id val*] +[scope_exit val*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter exnaddr] +[visit_id exnaddr] not free [visit_id exnaddr] no dims -[visit_id exnaddr] +[scope_exit exnaddr] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- [check_dims] -[check_dims] -[check_dims] --- 1 --- [check_dims] --- 2 --- @@ -47870,360 +40256,516 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* --- 4 --- [check_dims] [check_dims] +[check_dims] +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id tagtype] no dims -[visit_id tagtype] [check_dims] +[check_dims] +[check_dims] +[scope_enter tagtype] +[visit_id tagtype] not free +[visit_id tagtype] no dims +[scope_exit tagtype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter globaltype] +[visit_id globaltype] not free [visit_id globaltype] no dims -[visit_id globaltype] +[scope_exit globaltype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id val] no dims -[visit_id val] [check_dims] +[scope_enter val] +[visit_id val] not free +[visit_id val] no dims +[scope_exit val] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter memtype] +[visit_id memtype] not free [visit_id memtype] no dims -[visit_id memtype] +[scope_exit memtype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id byte*] no dims -[visit_id byte*] [check_dims] +[scope_enter byte*] +[visit_id byte*] not free +[visit_id byte*] no dims +[scope_exit byte*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter tabletype] +[visit_id tabletype] not free [visit_id tabletype] no dims -[visit_id tabletype] +[scope_exit tabletype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id ref*] no dims -[visit_id ref*] [check_dims] +[scope_enter ref*] +[visit_id ref*] not free +[visit_id ref*] no dims +[scope_exit ref*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter deftype] +[visit_id deftype] not free [visit_id deftype] no dims -[visit_id deftype] +[scope_exit deftype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter moduleinst] +[visit_id moduleinst] not free [visit_id moduleinst] no dims -[visit_id moduleinst] +[scope_exit moduleinst] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id funccode] no dims -[visit_id funccode] [check_dims] +[scope_enter funccode] +[visit_id funccode] not free +[visit_id funccode] no dims +[scope_exit funccode] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id byte*] no dims -[visit_id byte*] [check_dims] +[check_dims] +[scope_enter byte*] +[visit_id byte*] not free +[visit_id byte*] no dims +[scope_exit byte*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter elemtype] +[visit_id elemtype] not free [visit_id elemtype] no dims -[visit_id elemtype] +[scope_exit elemtype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id ref*] no dims -[visit_id ref*] [check_dims] +[scope_enter ref*] +[visit_id ref*] not free +[visit_id ref*] no dims +[scope_exit ref*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter name] +[visit_id name] not free [visit_id name] no dims -[visit_id name] +[scope_exit name] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id externaddr] no dims -[visit_id externaddr] [check_dims] +[scope_enter externaddr] +[visit_id externaddr] not free +[visit_id externaddr] no dims +[scope_exit externaddr] --- 1 --- -[check_dims] packtype +[check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id packtype] -[visit_id _] not free -[visit_id _] no dims +[check_dims] +[check_dims] packtype +[scope_enter packtype] +[visit_id packtype] not free [visit_exp $psizenn(packtype)] [visit_exp packtype] [visit_id packtype] not free -[check_dims] -[check_dims] +[scope_enter _] +[visit_id _] not free +[visit_id _] no dims +[scope_exit _] +[scope_exit packtype] --- 1 --- -[check_dims] +[check_dims] packtype --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[check_dims] +[scope_enter deftype] +[visit_id deftype] not free [visit_id deftype] no dims -[visit_id deftype] +[scope_exit deftype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id fieldval*] no dims -[visit_id fieldval*] [check_dims] +[scope_enter fieldval*] +[visit_id fieldval*] not free +[visit_id fieldval*] no dims +[scope_exit fieldval*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter deftype] +[visit_id deftype] not free [visit_id deftype] no dims -[visit_id deftype] +[scope_exit deftype] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id fieldval*] no dims -[visit_id fieldval*] [check_dims] +[scope_enter fieldval*] +[visit_id fieldval*] not free +[visit_id fieldval*] no dims +[scope_exit fieldval*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter tagaddr] +[visit_id tagaddr] not free [visit_id tagaddr] no dims -[visit_id tagaddr] +[scope_exit tagaddr] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id val*] no dims -[visit_id val*] [check_dims] +[scope_enter val*] +[visit_id val*] not free +[visit_id val*] no dims +[scope_exit val*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter deftype*] +[visit_id deftype*] not free [visit_id deftype*] no dims -[visit_id deftype*] +[scope_exit deftype*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tagaddr*] +[visit_id tagaddr*] not free [visit_id tagaddr*] no dims -[visit_id tagaddr*] +[scope_exit tagaddr*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter globaladdr*] +[visit_id globaladdr*] not free [visit_id globaladdr*] no dims -[visit_id globaladdr*] +[scope_exit globaladdr*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter memaddr*] +[visit_id memaddr*] not free [visit_id memaddr*] no dims -[visit_id memaddr*] +[scope_exit memaddr*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tableaddr*] +[visit_id tableaddr*] not free [visit_id tableaddr*] no dims -[visit_id tableaddr*] +[scope_exit tableaddr*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter funcaddr*] +[visit_id funcaddr*] not free [visit_id funcaddr*] no dims -[visit_id funcaddr*] +[scope_exit funcaddr*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter dataaddr*] +[visit_id dataaddr*] not free [visit_id dataaddr*] no dims -[visit_id dataaddr*] +[scope_exit dataaddr*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter elemaddr*] +[visit_id elemaddr*] not free [visit_id elemaddr*] no dims -[visit_id elemaddr*] +[scope_exit elemaddr*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id exportinst*] no dims -[visit_id exportinst*] [check_dims] +[scope_enter exportinst*] +[visit_id exportinst*] not free +[visit_id exportinst*] no dims +[scope_exit exportinst*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter taginst*] +[visit_id taginst*] not free [visit_id taginst*] no dims -[visit_id taginst*] +[scope_exit taginst*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter globalinst*] +[visit_id globalinst*] not free [visit_id globalinst*] no dims -[visit_id globalinst*] +[scope_exit globalinst*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter meminst*] +[visit_id meminst*] not free [visit_id meminst*] no dims -[visit_id meminst*] +[scope_exit meminst*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter tableinst*] +[visit_id tableinst*] not free [visit_id tableinst*] no dims -[visit_id tableinst*] +[scope_exit tableinst*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter funcinst*] +[visit_id funcinst*] not free [visit_id funcinst*] no dims -[visit_id funcinst*] +[scope_exit funcinst*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter datainst*] +[visit_id datainst*] not free [visit_id datainst*] no dims -[visit_id datainst*] +[scope_exit datainst*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter eleminst*] +[visit_id eleminst*] not free [visit_id eleminst*] no dims -[visit_id eleminst*] +[scope_exit eleminst*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter structinst*] +[visit_id structinst*] not free [visit_id structinst*] no dims -[visit_id structinst*] +[scope_exit structinst*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter arrayinst*] +[visit_id arrayinst*] not free [visit_id arrayinst*] no dims -[visit_id arrayinst*] +[scope_exit arrayinst*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id exninst*] no dims -[visit_id exninst*] [check_dims] +[scope_enter exninst*] +[visit_id exninst*] not free +[visit_id exninst*] no dims +[scope_exit exninst*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter val?*] +[visit_id val?*] not free [visit_id val?*] no dims -[visit_id val?*] +[scope_exit val?*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id moduleinst] no dims -[visit_id moduleinst] [check_dims] +[scope_enter moduleinst] +[visit_id moduleinst] not free +[visit_id moduleinst] no dims +[scope_exit moduleinst] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter n] +[visit_id n] not free [visit_id n] no dims -[visit_id n] +[scope_enter instr*] +[visit_id instr*] not free [visit_id instr*] no dims -[visit_id instr*] +[scope_enter instr*] [visit_id instr*] not free [visit_id instr*] no dims +[scope_exit instr*] +[scope_exit instr*] +[scope_exit n] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter n] +[visit_id n] not free [visit_id n] no dims -[visit_id n] +[scope_enter frame] +[visit_id frame] not free [visit_id frame] no dims -[visit_id frame] +[scope_enter instr*] +[visit_id instr*] not free [visit_id instr*] no dims -[visit_id instr*] +[scope_exit instr*] +[scope_exit frame] +[scope_exit n] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter n] +[visit_id n] not free [visit_id n] no dims -[visit_id n] +[scope_enter catch*] +[visit_id catch*] not free [visit_id catch*] no dims -[visit_id catch*] +[scope_enter instr*] +[visit_id instr*] not free [visit_id instr*] no dims -[visit_id instr*] +[scope_exit instr*] +[scope_exit catch*] +[scope_exit n] --- 1 --- [check_dims] --- 2 --- @@ -48235,20 +40777,36 @@ DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter store] +[visit_id store] not free [visit_id store] no dims -[visit_id store] +[scope_enter frame] +[visit_id frame] not free [visit_id frame] no dims -[visit_id frame] -[check_dims] +[scope_exit frame] +[scope_exit store] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[scope_enter state] +[visit_id state] not free [visit_id state] no dims -[visit_id state] +[scope_enter instr*] +[visit_id instr*] not free [visit_id instr*] no dims -[visit_id instr*] +[scope_exit instr*] +[scope_exit state] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- [check_dims] [check_dims] [check_dims] @@ -48292,21 +40850,17 @@ DecD unpackfield_(storagetype : storagetype, sx?, fieldval : fieldval) : val => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $packfield_{valtype : valtype, val : val}((valtype : valtype <: storagetype), val) = (val : val <: fieldval) -[check_dims] i numtype#33 packtype packtype#1 +[check_dims] i packtype [visit_exp (packtype : packtype <: storagetype)] [visit_exp packtype] [visit_id packtype] -[visit_exp `CONST`_val{numtype#33}(`I32`_numtype, i)] -[visit_exp numtype#33] -[visit_id numtype#33] +[visit_exp `CONST`_val(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `PACK`_fieldval{packtype#1}(packtype, $wrap__(32, $psize(packtype), i))] -[visit_exp packtype#1] -[visit_id packtype#1] +[visit_exp `PACK`_fieldval(packtype, $wrap__(32, $psize(packtype), i))] [visit_exp (packtype, $wrap__(32, $psize(packtype), i))] [visit_exp packtype] [visit_id packtype] not free @@ -48319,7 +40873,7 @@ DecD unpackfield_(storagetype : storagetype, sx?, fieldval : fieldval) : val [visit_id i] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $packfield_{packtype : packtype, numtype#33 : numtype, i : num_(`I32`_numtype), packtype#1 : packtype}((packtype : packtype <: storagetype), `CONST`_val{numtype#33}(`I32`_numtype, i)) = `PACK`_fieldval{packtype#1}(packtype, $wrap__(32, $psize(packtype), i)) + def $packfield_{packtype : packtype, i : num_(`I32`_numtype)}((packtype : packtype <: storagetype), `CONST`_val(`I32`_numtype, i)) = `PACK`_fieldval(packtype, $wrap__(32, $psize(packtype), i)) [check_dims] val valtype [visit_exp (valtype : valtype <: storagetype)] [visit_exp valtype] @@ -48333,24 +40887,20 @@ DecD unpackfield_(storagetype : storagetype, sx?, fieldval : fieldval) : val => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $unpackfield_{valtype : valtype, val : val}((valtype : valtype <: storagetype), ?(), (val : val <: fieldval)) = val -[check_dims] i numtype#35 packtype packtype#3 sx +[check_dims] i packtype sx [visit_exp (packtype : packtype <: storagetype)] [visit_exp packtype] [visit_id packtype] [visit_exp ?(sx)] [visit_exp sx] [visit_id sx] -[visit_exp `PACK`_fieldval{packtype#3}(packtype, i)] -[visit_exp packtype#3] -[visit_id packtype#3] +[visit_exp `PACK`_fieldval(packtype, i)] [visit_exp (packtype, i)] [visit_exp packtype] [visit_id packtype] not free [visit_exp i] [visit_id i] -[visit_exp `CONST`_val{numtype#35}(`I32`_numtype, $extend__($psize(packtype), 32, sx, i))] -[visit_exp numtype#35] -[visit_id numtype#35] +[visit_exp `CONST`_val(`I32`_numtype, $extend__($psize(packtype), 32, sx, i))] [visit_exp (`I32`_numtype, $extend__($psize(packtype), 32, sx, i))] [visit_exp `I32`_numtype] [visit_exp ()] @@ -48365,7 +40915,7 @@ DecD unpackfield_(storagetype : storagetype, sx?, fieldval : fieldval) : val [visit_id i] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $unpackfield_{packtype : packtype, sx : sx, packtype#3 : packtype, i : iN($psizenn(packtype)), numtype#35 : numtype}((packtype : packtype <: storagetype), ?(sx), `PACK`_fieldval{packtype#3}(packtype, i)) = `CONST`_val{numtype#35}(`I32`_numtype, $extend__($psize(packtype), 32, sx, i)) + def $unpackfield_{packtype : packtype, sx : sx, i : iN($psizenn(packtype))}((packtype : packtype <: storagetype), ?(sx), `PACK`_fieldval(packtype, i)) = `CONST`_val(`I32`_numtype, $extend__($psize(packtype), 32, sx, i)) [check_dims] _ DecD tagsxa(externaddr*) : tagaddr* [visit_id _] not free @@ -48387,12 +40937,10 @@ DecD funcsxa(externaddr*) : funcaddr* => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $tagsxa([]) = [] -[check_dims] a tagaddr#1 xa -[visit_exp [`TAG`_externaddr{tagaddr#1}(a)] ++ xa*{xa <- `xa*`}] -[visit_exp [`TAG`_externaddr{tagaddr#1}(a)]] -[visit_exp `TAG`_externaddr{tagaddr#1}(a)] -[visit_exp tagaddr#1] -[visit_id tagaddr#1] +[check_dims] a xa +[visit_exp [`TAG`_externaddr(a)] ++ xa*{xa <- `xa*`}] +[visit_exp [`TAG`_externaddr(a)]] +[visit_exp `TAG`_externaddr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] @@ -48421,7 +40969,7 @@ DecD funcsxa(externaddr*) : funcaddr* [visit_id xa*] no dims => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tagsxa{tagaddr#1 : tagaddr, a : addr, `xa*` : externaddr*}([`TAG`_externaddr{tagaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tagsxa(xa*{xa <- `xa*`}) + def $tagsxa{a : addr, `xa*` : externaddr*}([`TAG`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tagsxa(xa*{xa <- `xa*`}) [check_dims] externaddr xa [visit_exp [externaddr] ++ xa*{xa <- `xa*`}] [visit_exp [externaddr]] @@ -48456,12 +41004,10 @@ DecD funcsxa(externaddr*) : funcaddr* => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $globalsxa([]) = [] -[check_dims] a globaladdr#1 xa -[visit_exp [`GLOBAL`_externaddr{globaladdr#1}(a)] ++ xa*{xa <- `xa*`}] -[visit_exp [`GLOBAL`_externaddr{globaladdr#1}(a)]] -[visit_exp `GLOBAL`_externaddr{globaladdr#1}(a)] -[visit_exp globaladdr#1] -[visit_id globaladdr#1] +[check_dims] a xa +[visit_exp [`GLOBAL`_externaddr(a)] ++ xa*{xa <- `xa*`}] +[visit_exp [`GLOBAL`_externaddr(a)]] +[visit_exp `GLOBAL`_externaddr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] @@ -48490,7 +41036,7 @@ DecD funcsxa(externaddr*) : funcaddr* [visit_id xa*] no dims => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $globalsxa{globaladdr#1 : globaladdr, a : addr, `xa*` : externaddr*}([`GLOBAL`_externaddr{globaladdr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $globalsxa(xa*{xa <- `xa*`}) + def $globalsxa{a : addr, `xa*` : externaddr*}([`GLOBAL`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $globalsxa(xa*{xa <- `xa*`}) [check_dims] externaddr xa [visit_exp [externaddr] ++ xa*{xa <- `xa*`}] [visit_exp [externaddr]] @@ -48525,12 +41071,10 @@ DecD funcsxa(externaddr*) : funcaddr* => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $memsxa([]) = [] -[check_dims] a memaddr#1 xa -[visit_exp [`MEM`_externaddr{memaddr#1}(a)] ++ xa*{xa <- `xa*`}] -[visit_exp [`MEM`_externaddr{memaddr#1}(a)]] -[visit_exp `MEM`_externaddr{memaddr#1}(a)] -[visit_exp memaddr#1] -[visit_id memaddr#1] +[check_dims] a xa +[visit_exp [`MEM`_externaddr(a)] ++ xa*{xa <- `xa*`}] +[visit_exp [`MEM`_externaddr(a)]] +[visit_exp `MEM`_externaddr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] @@ -48559,7 +41103,7 @@ DecD funcsxa(externaddr*) : funcaddr* [visit_id xa*] no dims => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $memsxa{memaddr#1 : memaddr, a : addr, `xa*` : externaddr*}([`MEM`_externaddr{memaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $memsxa(xa*{xa <- `xa*`}) + def $memsxa{a : addr, `xa*` : externaddr*}([`MEM`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $memsxa(xa*{xa <- `xa*`}) [check_dims] externaddr xa [visit_exp [externaddr] ++ xa*{xa <- `xa*`}] [visit_exp [externaddr]] @@ -48594,12 +41138,10 @@ DecD funcsxa(externaddr*) : funcaddr* => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $tablesxa([]) = [] -[check_dims] a tableaddr#1 xa -[visit_exp [`TABLE`_externaddr{tableaddr#1}(a)] ++ xa*{xa <- `xa*`}] -[visit_exp [`TABLE`_externaddr{tableaddr#1}(a)]] -[visit_exp `TABLE`_externaddr{tableaddr#1}(a)] -[visit_exp tableaddr#1] -[visit_id tableaddr#1] +[check_dims] a xa +[visit_exp [`TABLE`_externaddr(a)] ++ xa*{xa <- `xa*`}] +[visit_exp [`TABLE`_externaddr(a)]] +[visit_exp `TABLE`_externaddr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] @@ -48628,7 +41170,7 @@ DecD funcsxa(externaddr*) : funcaddr* [visit_id xa*] no dims => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tablesxa{tableaddr#1 : tableaddr, a : addr, `xa*` : externaddr*}([`TABLE`_externaddr{tableaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tablesxa(xa*{xa <- `xa*`}) + def $tablesxa{a : addr, `xa*` : externaddr*}([`TABLE`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tablesxa(xa*{xa <- `xa*`}) [check_dims] externaddr xa [visit_exp [externaddr] ++ xa*{xa <- `xa*`}] [visit_exp [externaddr]] @@ -48663,12 +41205,10 @@ DecD funcsxa(externaddr*) : funcaddr* => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $funcsxa([]) = [] -[check_dims] a funcaddr#1 xa -[visit_exp [`FUNC`_externaddr{funcaddr#1}(a)] ++ xa*{xa <- `xa*`}] -[visit_exp [`FUNC`_externaddr{funcaddr#1}(a)]] -[visit_exp `FUNC`_externaddr{funcaddr#1}(a)] -[visit_exp funcaddr#1] -[visit_id funcaddr#1] +[check_dims] a xa +[visit_exp [`FUNC`_externaddr(a)] ++ xa*{xa <- `xa*`}] +[visit_exp [`FUNC`_externaddr(a)]] +[visit_exp `FUNC`_externaddr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] @@ -48697,7 +41237,7 @@ DecD funcsxa(externaddr*) : funcaddr* [visit_id xa*] no dims => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $funcsxa{funcaddr#1 : funcaddr, a : addr, `xa*` : externaddr*}([`FUNC`_externaddr{funcaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $funcsxa(xa*{xa <- `xa*`}) + def $funcsxa{a : addr, `xa*` : externaddr*}([`FUNC`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $funcsxa(xa*{xa <- `xa*`}) [check_dims] externaddr xa [visit_exp [externaddr] ++ xa*{xa <- `xa*`}] [visit_exp [externaddr]] @@ -48732,12 +41272,8 @@ DecD store(state : state) : store [check_dims] state DecD frame(state : state) : frame [visit_id state] not free -[check_dims] f frame#11 s store#11 -[visit_exp `%;%`_state{store#11, frame#11}(s, f)] -[visit_exp store#11] -[visit_id store#11] -[visit_exp frame#11] -[visit_id frame#11] +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -48747,13 +41283,9 @@ DecD frame(state : state) : frame [visit_id s] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $store{store#11 : store, frame#11 : frame, s : store, f : frame}(`%;%`_state{store#11, frame#11}(s, f)) = s -[check_dims] f frame#23 s store#23 -[visit_exp `%;%`_state{store#23, frame#23}(s, f)] -[visit_exp store#23] -[visit_id store#23] -[visit_exp frame#23] -[visit_id frame#23] + def $store{s : store, f : frame}(`%;%`_state(s, f)) = s +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -48763,32 +41295,24 @@ DecD frame(state : state) : frame [visit_id f] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $frame{store#23 : store, frame#23 : frame, s : store, f : frame}(`%;%`_state{store#23, frame#23}(s, f)) = f + def $frame{s : store, f : frame}(`%;%`_state(s, f)) = f [check_dims] state DecD tagaddr(state : state) : tagaddr* [visit_id state] not free -[check_dims] f frame#35 moduleinst#2 s store#35 tagaddr*#2 -[visit_exp `%;%`_state{store#35, frame#35}(s, f)] -[visit_exp store#35] -[visit_id store#35] -[visit_exp frame#35] -[visit_id frame#35] +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp f.`MODULE`_frame{moduleinst#2}.`TAGS`_moduleinst{`tagaddr*#2`}] -[visit_exp f.`MODULE`_frame{moduleinst#2}] +[visit_exp f.`MODULE`_frame.`TAGS`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#2] -[visit_id moduleinst#2] -[visit_exp `tagaddr*#2`] -[visit_id tagaddr*#2] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tagaddr{store#35 : store, frame#35 : frame, s : store, f : frame, moduleinst#2 : moduleinst, `tagaddr*#2` : tagaddr*}(`%;%`_state{store#35, frame#35}(s, f)) = f.`MODULE`_frame{moduleinst#2}.`TAGS`_moduleinst{`tagaddr*#2`} + def $tagaddr{s : store, f : frame}(`%;%`_state(s, f)) = f.`MODULE`_frame.`TAGS`_moduleinst [check_dims] state DecD moduleinst(state : state) : moduleinst [visit_id state] not free @@ -48822,215 +41346,149 @@ DecD arrayinst(state : state) : arrayinst* [check_dims] state DecD exninst(state : state) : exninst* [visit_id state] not free -[check_dims] f frame#47 moduleinst#3 s store#47 -[visit_exp `%;%`_state{store#47, frame#47}(s, f)] -[visit_exp store#47] -[visit_id store#47] -[visit_exp frame#47] -[visit_id frame#47] +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp f.`MODULE`_frame{moduleinst#3}] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#3] -[visit_id moduleinst#3] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $moduleinst{store#47 : store, frame#47 : frame, s : store, f : frame, moduleinst#3 : moduleinst}(`%;%`_state{store#47, frame#47}(s, f)) = f.`MODULE`_frame{moduleinst#3} -[check_dims] f frame#59 s store#59 taginst*#2 -[visit_exp `%;%`_state{store#59, frame#59}(s, f)] -[visit_exp store#59] -[visit_id store#59] -[visit_exp frame#59] -[visit_id frame#59] + def $moduleinst{s : store, f : frame}(`%;%`_state(s, f)) = f.`MODULE`_frame +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp s.`TAGS`_store{`taginst*#2`}] +[visit_exp s.`TAGS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `taginst*#2`] -[visit_id taginst*#2] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $taginst{store#59 : store, frame#59 : frame, s : store, f : frame, `taginst*#2` : taginst*}(`%;%`_state{store#59, frame#59}(s, f)) = s.`TAGS`_store{`taginst*#2`} -[check_dims] f frame#71 globalinst*#2 s store#71 -[visit_exp `%;%`_state{store#71, frame#71}(s, f)] -[visit_exp store#71] -[visit_id store#71] -[visit_exp frame#71] -[visit_id frame#71] + def $taginst{s : store, f : frame}(`%;%`_state(s, f)) = s.`TAGS`_store +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp s.`GLOBALS`_store{`globalinst*#2`}] +[visit_exp s.`GLOBALS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `globalinst*#2`] -[visit_id globalinst*#2] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $globalinst{store#71 : store, frame#71 : frame, s : store, f : frame, `globalinst*#2` : globalinst*}(`%;%`_state{store#71, frame#71}(s, f)) = s.`GLOBALS`_store{`globalinst*#2`} -[check_dims] f frame#83 meminst*#2 s store#83 -[visit_exp `%;%`_state{store#83, frame#83}(s, f)] -[visit_exp store#83] -[visit_id store#83] -[visit_exp frame#83] -[visit_id frame#83] + def $globalinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`GLOBALS`_store +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp s.`MEMS`_store{`meminst*#2`}] +[visit_exp s.`MEMS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `meminst*#2`] -[visit_id meminst*#2] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $meminst{store#83 : store, frame#83 : frame, s : store, f : frame, `meminst*#2` : meminst*}(`%;%`_state{store#83, frame#83}(s, f)) = s.`MEMS`_store{`meminst*#2`} -[check_dims] f frame#95 s store#95 tableinst*#2 -[visit_exp `%;%`_state{store#95, frame#95}(s, f)] -[visit_exp store#95] -[visit_id store#95] -[visit_exp frame#95] -[visit_id frame#95] + def $meminst{s : store, f : frame}(`%;%`_state(s, f)) = s.`MEMS`_store +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp s.`TABLES`_store{`tableinst*#2`}] +[visit_exp s.`TABLES`_store] [visit_exp s] [visit_id s] not free -[visit_exp `tableinst*#2`] -[visit_id tableinst*#2] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tableinst{store#95 : store, frame#95 : frame, s : store, f : frame, `tableinst*#2` : tableinst*}(`%;%`_state{store#95, frame#95}(s, f)) = s.`TABLES`_store{`tableinst*#2`} -[check_dims] f frame#107 funcinst*#2 s store#107 -[visit_exp `%;%`_state{store#107, frame#107}(s, f)] -[visit_exp store#107] -[visit_id store#107] -[visit_exp frame#107] -[visit_id frame#107] + def $tableinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`TABLES`_store +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp s.`FUNCS`_store{`funcinst*#2`}] +[visit_exp s.`FUNCS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `funcinst*#2`] -[visit_id funcinst*#2] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $funcinst{store#107 : store, frame#107 : frame, s : store, f : frame, `funcinst*#2` : funcinst*}(`%;%`_state{store#107, frame#107}(s, f)) = s.`FUNCS`_store{`funcinst*#2`} -[check_dims] datainst*#2 f frame#119 s store#119 -[visit_exp `%;%`_state{store#119, frame#119}(s, f)] -[visit_exp store#119] -[visit_id store#119] -[visit_exp frame#119] -[visit_id frame#119] + def $funcinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`FUNCS`_store +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp s.`DATAS`_store{`datainst*#2`}] +[visit_exp s.`DATAS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `datainst*#2`] -[visit_id datainst*#2] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $datainst{store#119 : store, frame#119 : frame, s : store, f : frame, `datainst*#2` : datainst*}(`%;%`_state{store#119, frame#119}(s, f)) = s.`DATAS`_store{`datainst*#2`} -[check_dims] eleminst*#2 f frame#131 s store#131 -[visit_exp `%;%`_state{store#131, frame#131}(s, f)] -[visit_exp store#131] -[visit_id store#131] -[visit_exp frame#131] -[visit_id frame#131] + def $datainst{s : store, f : frame}(`%;%`_state(s, f)) = s.`DATAS`_store +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp s.`ELEMS`_store{`eleminst*#2`}] +[visit_exp s.`ELEMS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `eleminst*#2`] -[visit_id eleminst*#2] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $eleminst{store#131 : store, frame#131 : frame, s : store, f : frame, `eleminst*#2` : eleminst*}(`%;%`_state{store#131, frame#131}(s, f)) = s.`ELEMS`_store{`eleminst*#2`} -[check_dims] f frame#143 s store#143 structinst*#2 -[visit_exp `%;%`_state{store#143, frame#143}(s, f)] -[visit_exp store#143] -[visit_id store#143] -[visit_exp frame#143] -[visit_id frame#143] + def $eleminst{s : store, f : frame}(`%;%`_state(s, f)) = s.`ELEMS`_store +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp s.`STRUCTS`_store{`structinst*#2`}] +[visit_exp s.`STRUCTS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `structinst*#2`] -[visit_id structinst*#2] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $structinst{store#143 : store, frame#143 : frame, s : store, f : frame, `structinst*#2` : structinst*}(`%;%`_state{store#143, frame#143}(s, f)) = s.`STRUCTS`_store{`structinst*#2`} -[check_dims] arrayinst*#2 f frame#155 s store#155 -[visit_exp `%;%`_state{store#155, frame#155}(s, f)] -[visit_exp store#155] -[visit_id store#155] -[visit_exp frame#155] -[visit_id frame#155] + def $structinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`STRUCTS`_store +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp s.`ARRAYS`_store{`arrayinst*#2`}] +[visit_exp s.`ARRAYS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `arrayinst*#2`] -[visit_id arrayinst*#2] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $arrayinst{store#155 : store, frame#155 : frame, s : store, f : frame, `arrayinst*#2` : arrayinst*}(`%;%`_state{store#155, frame#155}(s, f)) = s.`ARRAYS`_store{`arrayinst*#2`} -[check_dims] exninst*#2 f frame#167 s store#167 -[visit_exp `%;%`_state{store#167, frame#167}(s, f)] -[visit_exp store#167] -[visit_id store#167] -[visit_exp frame#167] -[visit_id frame#167] + def $arrayinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`ARRAYS`_store +[check_dims] f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp s.`EXNS`_store{`exninst*#2`}] +[visit_exp s.`EXNS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `exninst*#2`] -[visit_id exninst*#2] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $exninst{store#167 : store, frame#167 : frame, s : store, f : frame, `exninst*#2` : exninst*}(`%;%`_state{store#167, frame#167}(s, f)) = s.`EXNS`_store{`exninst*#2`} + def $exninst{s : store, f : frame}(`%;%`_state(s, f)) = s.`EXNS`_store [check_dims] state typeidx DecD type(state : state, typeidx : typeidx) : deftype [visit_id state] not free @@ -49067,12 +41525,8 @@ DecD elem(state : state, tableidx : tableidx) : eleminst DecD local(state : state, localidx : localidx) : val? [visit_id state] not free [visit_id localidx] not free -[check_dims] deftype*#74 f frame#179 i#30957 moduleinst#4 s store#179 x -[visit_exp `%;%`_state{store#179, frame#179}(s, f)] -[visit_exp store#179] -[visit_id store#179] -[visit_exp frame#179] -[visit_id frame#179] +[check_dims] f s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49080,30 +41534,20 @@ DecD local(state : state, localidx : localidx) : val? [visit_id f] [visit_exp x] [visit_id x] -[visit_exp f.`MODULE`_frame{moduleinst#4}.`TYPES`_moduleinst{`deftype*#74`}[x!`%`_idx{i#30957}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#4}.`TYPES`_moduleinst{`deftype*#74`}] -[visit_exp f.`MODULE`_frame{moduleinst#4}] +[visit_exp f.`MODULE`_frame.`TYPES`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`TYPES`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#4] -[visit_id moduleinst#4] -[visit_exp `deftype*#74`] -[visit_id deftype*#74] -[visit_exp x!`%`_idx{i#30957}.0] -[visit_exp x!`%`_idx{i#30957}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#30957] -[visit_id i#30957] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $type{store#179 : store, frame#179 : frame, s : store, f : frame, x : idx, moduleinst#4 : moduleinst, `deftype*#74` : deftype*, i#30957 : nat}(`%;%`_state{store#179, frame#179}(s, f), x) = f.`MODULE`_frame{moduleinst#4}.`TYPES`_moduleinst{`deftype*#74`}[x!`%`_idx{i#30957}.0] -[check_dims] f frame#191 i#30979 moduleinst#5 s store#191 tagaddr*#3 taginst*#3 x -[visit_exp `%;%`_state{store#191, frame#191}(s, f)] -[visit_exp store#191] -[visit_id store#191] -[visit_exp frame#191] -[visit_id frame#191] + def $type{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = f.`MODULE`_frame.`TYPES`_moduleinst[x!`%`_idx.0] +[check_dims] f s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49111,36 +41555,24 @@ DecD local(state : state, localidx : localidx) : val? [visit_id f] [visit_exp x] [visit_id x] -[visit_exp s.`TAGS`_store{`taginst*#3`}[f.`MODULE`_frame{moduleinst#5}.`TAGS`_moduleinst{`tagaddr*#3`}[x!`%`_idx{i#30979}.0]]] -[visit_exp s.`TAGS`_store{`taginst*#3`}] +[visit_exp s.`TAGS`_store[f.`MODULE`_frame.`TAGS`_moduleinst[x!`%`_idx.0]]] +[visit_exp s.`TAGS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `taginst*#3`] -[visit_id taginst*#3] -[visit_exp f.`MODULE`_frame{moduleinst#5}.`TAGS`_moduleinst{`tagaddr*#3`}[x!`%`_idx{i#30979}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#5}.`TAGS`_moduleinst{`tagaddr*#3`}] -[visit_exp f.`MODULE`_frame{moduleinst#5}] +[visit_exp f.`MODULE`_frame.`TAGS`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`TAGS`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#5] -[visit_id moduleinst#5] -[visit_exp `tagaddr*#3`] -[visit_id tagaddr*#3] -[visit_exp x!`%`_idx{i#30979}.0] -[visit_exp x!`%`_idx{i#30979}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#30979] -[visit_id i#30979] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tag{store#191 : store, frame#191 : frame, s : store, f : frame, x : idx, `taginst*#3` : taginst*, moduleinst#5 : moduleinst, `tagaddr*#3` : tagaddr*, i#30979 : nat}(`%;%`_state{store#191, frame#191}(s, f), x) = s.`TAGS`_store{`taginst*#3`}[f.`MODULE`_frame{moduleinst#5}.`TAGS`_moduleinst{`tagaddr*#3`}[x!`%`_idx{i#30979}.0]] -[check_dims] f frame#203 globaladdr*#1 globalinst*#3 i#31001 moduleinst#6 s store#203 x -[visit_exp `%;%`_state{store#203, frame#203}(s, f)] -[visit_exp store#203] -[visit_id store#203] -[visit_exp frame#203] -[visit_id frame#203] + def $tag{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`TAGS`_store[f.`MODULE`_frame.`TAGS`_moduleinst[x!`%`_idx.0]] +[check_dims] f s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49148,36 +41580,24 @@ DecD local(state : state, localidx : localidx) : val? [visit_id f] [visit_exp x] [visit_id x] -[visit_exp s.`GLOBALS`_store{`globalinst*#3`}[f.`MODULE`_frame{moduleinst#6}.`GLOBALS`_moduleinst{`globaladdr*#1`}[x!`%`_idx{i#31001}.0]]] -[visit_exp s.`GLOBALS`_store{`globalinst*#3`}] +[visit_exp s.`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]]] +[visit_exp s.`GLOBALS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `globalinst*#3`] -[visit_id globalinst*#3] -[visit_exp f.`MODULE`_frame{moduleinst#6}.`GLOBALS`_moduleinst{`globaladdr*#1`}[x!`%`_idx{i#31001}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#6}.`GLOBALS`_moduleinst{`globaladdr*#1`}] -[visit_exp f.`MODULE`_frame{moduleinst#6}] +[visit_exp f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`GLOBALS`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#6] -[visit_id moduleinst#6] -[visit_exp `globaladdr*#1`] -[visit_id globaladdr*#1] -[visit_exp x!`%`_idx{i#31001}.0] -[visit_exp x!`%`_idx{i#31001}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#31001] -[visit_id i#31001] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $global{store#203 : store, frame#203 : frame, s : store, f : frame, x : idx, `globalinst*#3` : globalinst*, moduleinst#6 : moduleinst, `globaladdr*#1` : globaladdr*, i#31001 : nat}(`%;%`_state{store#203, frame#203}(s, f), x) = s.`GLOBALS`_store{`globalinst*#3`}[f.`MODULE`_frame{moduleinst#6}.`GLOBALS`_moduleinst{`globaladdr*#1`}[x!`%`_idx{i#31001}.0]] -[check_dims] f frame#215 i#31023 memaddr*#1 meminst*#3 moduleinst#7 s store#215 x -[visit_exp `%;%`_state{store#215, frame#215}(s, f)] -[visit_exp store#215] -[visit_id store#215] -[visit_exp frame#215] -[visit_id frame#215] + def $global{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]] +[check_dims] f s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49185,36 +41605,24 @@ DecD local(state : state, localidx : localidx) : val? [visit_id f] [visit_exp x] [visit_id x] -[visit_exp s.`MEMS`_store{`meminst*#3`}[f.`MODULE`_frame{moduleinst#7}.`MEMS`_moduleinst{`memaddr*#1`}[x!`%`_idx{i#31023}.0]]] -[visit_exp s.`MEMS`_store{`meminst*#3`}] +[visit_exp s.`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]]] +[visit_exp s.`MEMS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `meminst*#3`] -[visit_id meminst*#3] -[visit_exp f.`MODULE`_frame{moduleinst#7}.`MEMS`_moduleinst{`memaddr*#1`}[x!`%`_idx{i#31023}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#7}.`MEMS`_moduleinst{`memaddr*#1`}] -[visit_exp f.`MODULE`_frame{moduleinst#7}] +[visit_exp f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`MEMS`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#7] -[visit_id moduleinst#7] -[visit_exp `memaddr*#1`] -[visit_id memaddr*#1] -[visit_exp x!`%`_idx{i#31023}.0] -[visit_exp x!`%`_idx{i#31023}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#31023] -[visit_id i#31023] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $mem{store#215 : store, frame#215 : frame, s : store, f : frame, x : idx, `meminst*#3` : meminst*, moduleinst#7 : moduleinst, `memaddr*#1` : memaddr*, i#31023 : nat}(`%;%`_state{store#215, frame#215}(s, f), x) = s.`MEMS`_store{`meminst*#3`}[f.`MODULE`_frame{moduleinst#7}.`MEMS`_moduleinst{`memaddr*#1`}[x!`%`_idx{i#31023}.0]] -[check_dims] f frame#227 i#31045 moduleinst#8 s store#227 tableaddr*#1 tableinst*#3 x -[visit_exp `%;%`_state{store#227, frame#227}(s, f)] -[visit_exp store#227] -[visit_id store#227] -[visit_exp frame#227] -[visit_id frame#227] + def $mem{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] +[check_dims] f s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49222,36 +41630,24 @@ DecD local(state : state, localidx : localidx) : val? [visit_id f] [visit_exp x] [visit_id x] -[visit_exp s.`TABLES`_store{`tableinst*#3`}[f.`MODULE`_frame{moduleinst#8}.`TABLES`_moduleinst{`tableaddr*#1`}[x!`%`_idx{i#31045}.0]]] -[visit_exp s.`TABLES`_store{`tableinst*#3`}] +[visit_exp s.`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]]] +[visit_exp s.`TABLES`_store] [visit_exp s] [visit_id s] not free -[visit_exp `tableinst*#3`] -[visit_id tableinst*#3] -[visit_exp f.`MODULE`_frame{moduleinst#8}.`TABLES`_moduleinst{`tableaddr*#1`}[x!`%`_idx{i#31045}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#8}.`TABLES`_moduleinst{`tableaddr*#1`}] -[visit_exp f.`MODULE`_frame{moduleinst#8}] +[visit_exp f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`TABLES`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#8] -[visit_id moduleinst#8] -[visit_exp `tableaddr*#1`] -[visit_id tableaddr*#1] -[visit_exp x!`%`_idx{i#31045}.0] -[visit_exp x!`%`_idx{i#31045}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#31045] -[visit_id i#31045] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $table{store#227 : store, frame#227 : frame, s : store, f : frame, x : idx, `tableinst*#3` : tableinst*, moduleinst#8 : moduleinst, `tableaddr*#1` : tableaddr*, i#31045 : nat}(`%;%`_state{store#227, frame#227}(s, f), x) = s.`TABLES`_store{`tableinst*#3`}[f.`MODULE`_frame{moduleinst#8}.`TABLES`_moduleinst{`tableaddr*#1`}[x!`%`_idx{i#31045}.0]] -[check_dims] f frame#239 funcaddr*#1 funcinst*#3 i#31067 moduleinst#9 s store#239 x -[visit_exp `%;%`_state{store#239, frame#239}(s, f)] -[visit_exp store#239] -[visit_id store#239] -[visit_exp frame#239] -[visit_id frame#239] + def $table{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] +[check_dims] f s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49259,36 +41655,24 @@ DecD local(state : state, localidx : localidx) : val? [visit_id f] [visit_exp x] [visit_id x] -[visit_exp s.`FUNCS`_store{`funcinst*#3`}[f.`MODULE`_frame{moduleinst#9}.`FUNCS`_moduleinst{`funcaddr*#1`}[x!`%`_idx{i#31067}.0]]] -[visit_exp s.`FUNCS`_store{`funcinst*#3`}] +[visit_exp s.`FUNCS`_store[f.`MODULE`_frame.`FUNCS`_moduleinst[x!`%`_idx.0]]] +[visit_exp s.`FUNCS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `funcinst*#3`] -[visit_id funcinst*#3] -[visit_exp f.`MODULE`_frame{moduleinst#9}.`FUNCS`_moduleinst{`funcaddr*#1`}[x!`%`_idx{i#31067}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#9}.`FUNCS`_moduleinst{`funcaddr*#1`}] -[visit_exp f.`MODULE`_frame{moduleinst#9}] +[visit_exp f.`MODULE`_frame.`FUNCS`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`FUNCS`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#9] -[visit_id moduleinst#9] -[visit_exp `funcaddr*#1`] -[visit_id funcaddr*#1] -[visit_exp x!`%`_idx{i#31067}.0] -[visit_exp x!`%`_idx{i#31067}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#31067] -[visit_id i#31067] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $func{store#239 : store, frame#239 : frame, s : store, f : frame, x : idx, `funcinst*#3` : funcinst*, moduleinst#9 : moduleinst, `funcaddr*#1` : funcaddr*, i#31067 : nat}(`%;%`_state{store#239, frame#239}(s, f), x) = s.`FUNCS`_store{`funcinst*#3`}[f.`MODULE`_frame{moduleinst#9}.`FUNCS`_moduleinst{`funcaddr*#1`}[x!`%`_idx{i#31067}.0]] -[check_dims] dataaddr*#1 datainst*#3 f frame#251 i#31089 moduleinst#10 s store#251 x -[visit_exp `%;%`_state{store#251, frame#251}(s, f)] -[visit_exp store#251] -[visit_id store#251] -[visit_exp frame#251] -[visit_id frame#251] + def $func{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`FUNCS`_store[f.`MODULE`_frame.`FUNCS`_moduleinst[x!`%`_idx.0]] +[check_dims] f s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49296,36 +41680,24 @@ DecD local(state : state, localidx : localidx) : val? [visit_id f] [visit_exp x] [visit_id x] -[visit_exp s.`DATAS`_store{`datainst*#3`}[f.`MODULE`_frame{moduleinst#10}.`DATAS`_moduleinst{`dataaddr*#1`}[x!`%`_idx{i#31089}.0]]] -[visit_exp s.`DATAS`_store{`datainst*#3`}] +[visit_exp s.`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]]] +[visit_exp s.`DATAS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `datainst*#3`] -[visit_id datainst*#3] -[visit_exp f.`MODULE`_frame{moduleinst#10}.`DATAS`_moduleinst{`dataaddr*#1`}[x!`%`_idx{i#31089}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#10}.`DATAS`_moduleinst{`dataaddr*#1`}] -[visit_exp f.`MODULE`_frame{moduleinst#10}] +[visit_exp f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`DATAS`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#10] -[visit_id moduleinst#10] -[visit_exp `dataaddr*#1`] -[visit_id dataaddr*#1] -[visit_exp x!`%`_idx{i#31089}.0] -[visit_exp x!`%`_idx{i#31089}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#31089] -[visit_id i#31089] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $data{store#251 : store, frame#251 : frame, s : store, f : frame, x : idx, `datainst*#3` : datainst*, moduleinst#10 : moduleinst, `dataaddr*#1` : dataaddr*, i#31089 : nat}(`%;%`_state{store#251, frame#251}(s, f), x) = s.`DATAS`_store{`datainst*#3`}[f.`MODULE`_frame{moduleinst#10}.`DATAS`_moduleinst{`dataaddr*#1`}[x!`%`_idx{i#31089}.0]] -[check_dims] elemaddr*#1 eleminst*#3 f frame#263 i#31111 moduleinst#11 s store#263 x -[visit_exp `%;%`_state{store#263, frame#263}(s, f)] -[visit_exp store#263] -[visit_id store#263] -[visit_exp frame#263] -[visit_id frame#263] + def $data{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]] +[check_dims] f s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49333,36 +41705,24 @@ DecD local(state : state, localidx : localidx) : val? [visit_id f] [visit_exp x] [visit_id x] -[visit_exp s.`ELEMS`_store{`eleminst*#3`}[f.`MODULE`_frame{moduleinst#11}.`ELEMS`_moduleinst{`elemaddr*#1`}[x!`%`_idx{i#31111}.0]]] -[visit_exp s.`ELEMS`_store{`eleminst*#3`}] +[visit_exp s.`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]]] +[visit_exp s.`ELEMS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `eleminst*#3`] -[visit_id eleminst*#3] -[visit_exp f.`MODULE`_frame{moduleinst#11}.`ELEMS`_moduleinst{`elemaddr*#1`}[x!`%`_idx{i#31111}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#11}.`ELEMS`_moduleinst{`elemaddr*#1`}] -[visit_exp f.`MODULE`_frame{moduleinst#11}] +[visit_exp f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`ELEMS`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#11] -[visit_id moduleinst#11] -[visit_exp `elemaddr*#1`] -[visit_id elemaddr*#1] -[visit_exp x!`%`_idx{i#31111}.0] -[visit_exp x!`%`_idx{i#31111}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#31111] -[visit_id i#31111] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $elem{store#263 : store, frame#263 : frame, s : store, f : frame, x : idx, `eleminst*#3` : eleminst*, moduleinst#11 : moduleinst, `elemaddr*#1` : elemaddr*, i#31111 : nat}(`%;%`_state{store#263, frame#263}(s, f), x) = s.`ELEMS`_store{`eleminst*#3`}[f.`MODULE`_frame{moduleinst#11}.`ELEMS`_moduleinst{`elemaddr*#1`}[x!`%`_idx{i#31111}.0]] -[check_dims] f frame#275 i#31143 s store#275 val?*#2 x -[visit_exp `%;%`_state{store#275, frame#275}(s, f)] -[visit_exp store#275] -[visit_id store#275] -[visit_exp frame#275] -[visit_id frame#275] + def $elem{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]] +[check_dims] f s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49370,21 +41730,17 @@ DecD local(state : state, localidx : localidx) : val? [visit_id f] [visit_exp x] [visit_id x] -[visit_exp f.`LOCALS`_frame{`val?*#2`}[x!`%`_idx{i#31143}.0]] -[visit_exp f.`LOCALS`_frame{`val?*#2`}] +[visit_exp f.`LOCALS`_frame[x!`%`_idx.0]] +[visit_exp f.`LOCALS`_frame] [visit_exp f] [visit_id f] not free -[visit_exp `val?*#2`] -[visit_id val?*#2] -[visit_exp x!`%`_idx{i#31143}.0] -[visit_exp x!`%`_idx{i#31143}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#31143] -[visit_id i#31143] => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $local{store#275 : store, frame#275 : frame, s : store, f : frame, x : idx, `val?*#2` : val?*, i#31143 : nat}(`%;%`_state{store#275, frame#275}(s, f), x) = f.`LOCALS`_frame{`val?*#2`}[x!`%`_idx{i#31143}.0] + def $local{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = f.`LOCALS`_frame[x!`%`_idx.0] [check_dims] localidx state val DecD with_local(state : state, localidx : localidx, val : val) : state [visit_id state] not free @@ -49440,12 +41796,8 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id arrayaddr] not free [visit_id nat] not free [visit_id fieldval] not free -[check_dims] f frame#287 frame#299 i#31165 s store#287 store#299 v val?*#3 x -[visit_exp `%;%`_state{store#287, frame#287}(s, f)] -[visit_exp store#287] -[visit_id store#287] -[visit_exp frame#287] -[visit_id frame#287] +[check_dims] f s v x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49455,37 +41807,25 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id x] [visit_exp v] [visit_id v] -[visit_exp `%;%`_state{store#299, frame#299}(s, f[`LOCALS`_frame{`val?*#3`}[x!`%`_idx{i#31165}.0] = ?(v)])] -[visit_exp store#299] -[visit_id store#299] -[visit_exp frame#299] -[visit_id frame#299] -[visit_exp (s, f[`LOCALS`_frame{`val?*#3`}[x!`%`_idx{i#31165}.0] = ?(v)])] +[visit_exp `%;%`_state(s, f[`LOCALS`_frame[x!`%`_idx.0] = ?(v)])] +[visit_exp (s, f[`LOCALS`_frame[x!`%`_idx.0] = ?(v)])] [visit_exp s] [visit_id s] not free -[visit_exp f[`LOCALS`_frame{`val?*#3`}[x!`%`_idx{i#31165}.0] = ?(v)]] +[visit_exp f[`LOCALS`_frame[x!`%`_idx.0] = ?(v)]] [visit_exp f] [visit_id f] not free -[visit_exp `val?*#3`] -[visit_id val?*#3] -[visit_exp x!`%`_idx{i#31165}.0] -[visit_exp x!`%`_idx{i#31165}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#31165] -[visit_id i#31165] [visit_exp ?(v)] [visit_exp v] [visit_id v] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_local{store#287 : store, frame#287 : frame, s : store, f : frame, x : idx, v : val, store#299 : store, frame#299 : frame, `val?*#3` : val?*, i#31165 : nat}(`%;%`_state{store#287, frame#287}(s, f), x, v) = `%;%`_state{store#299, frame#299}(s, f[`LOCALS`_frame{`val?*#3`}[x!`%`_idx{i#31165}.0] = ?(v)]) -[check_dims] f frame#311 frame#323 globaladdr*#2 globalinst*#4 i#31187 moduleinst#12 s store#311 store#323 v val#1 x -[visit_exp `%;%`_state{store#311, frame#311}(s, f)] -[visit_exp store#311] -[visit_id store#311] -[visit_exp frame#311] -[visit_id frame#311] + def $with_local{s : store, f : frame, x : idx, v : val}(`%;%`_state(s, f), x, v) = `%;%`_state(s, f[`LOCALS`_frame[x!`%`_idx.0] = ?(v)]) +[check_dims] f s v x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49495,47 +41835,29 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id x] [visit_exp v] [visit_id v] -[visit_exp `%;%`_state{store#323, frame#323}(s[`GLOBALS`_store{`globalinst*#4`}[f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}[x!`%`_idx{i#31187}.0]].`VALUE`_globalinst{val#1} = v], f)] -[visit_exp store#323] -[visit_id store#323] -[visit_exp frame#323] -[visit_id frame#323] -[visit_exp (s[`GLOBALS`_store{`globalinst*#4`}[f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}[x!`%`_idx{i#31187}.0]].`VALUE`_globalinst{val#1} = v], f)] -[visit_exp s[`GLOBALS`_store{`globalinst*#4`}[f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}[x!`%`_idx{i#31187}.0]].`VALUE`_globalinst{val#1} = v]] +[visit_exp `%;%`_state(s[`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]].`VALUE`_globalinst = v], f)] +[visit_exp (s[`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]].`VALUE`_globalinst = v], f)] +[visit_exp s[`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]].`VALUE`_globalinst = v]] [visit_exp s] [visit_id s] not free -[visit_exp `globalinst*#4`] -[visit_id globalinst*#4] -[visit_exp f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}[x!`%`_idx{i#31187}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}] -[visit_exp f.`MODULE`_frame{moduleinst#12}] +[visit_exp f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`GLOBALS`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#12] -[visit_id moduleinst#12] -[visit_exp `globaladdr*#2`] -[visit_id globaladdr*#2] -[visit_exp x!`%`_idx{i#31187}.0] -[visit_exp x!`%`_idx{i#31187}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#31187] -[visit_id i#31187] -[visit_exp val#1] -[visit_id val#1] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free [visit_exp v] [visit_id v] not free [visit_exp f] [visit_id f] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_global{store#311 : store, frame#311 : frame, s : store, f : frame, x : idx, v : val, store#323 : store, frame#323 : frame, `globalinst*#4` : globalinst*, moduleinst#12 : moduleinst, `globaladdr*#2` : globaladdr*, i#31187 : nat, val#1 : val}(`%;%`_state{store#311, frame#311}(s, f), x, v) = `%;%`_state{store#323, frame#323}(s[`GLOBALS`_store{`globalinst*#4`}[f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}[x!`%`_idx{i#31187}.0]].`VALUE`_globalinst{val#1} = v], f) -[check_dims] f frame#335 frame#347 i i#31209 moduleinst#13 r ref*#1 s store#335 store#347 tableaddr*#2 tableinst*#4 x -[visit_exp `%;%`_state{store#335, frame#335}(s, f)] -[visit_exp store#335] -[visit_id store#335] -[visit_exp frame#335] -[visit_id frame#335] + def $with_global{s : store, f : frame, x : idx, v : val}(`%;%`_state(s, f), x, v) = `%;%`_state(s[`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]].`VALUE`_globalinst = v], f) +[check_dims] f i r s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49547,34 +41869,20 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id i] [visit_exp r] [visit_id r] -[visit_exp `%;%`_state{store#347, frame#347}(s[`TABLES`_store{`tableinst*#4`}[f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}[x!`%`_idx{i#31209}.0]].`REFS`_tableinst{`ref*#1`}[i] = r], f)] -[visit_exp store#347] -[visit_id store#347] -[visit_exp frame#347] -[visit_id frame#347] -[visit_exp (s[`TABLES`_store{`tableinst*#4`}[f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}[x!`%`_idx{i#31209}.0]].`REFS`_tableinst{`ref*#1`}[i] = r], f)] -[visit_exp s[`TABLES`_store{`tableinst*#4`}[f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}[x!`%`_idx{i#31209}.0]].`REFS`_tableinst{`ref*#1`}[i] = r]] +[visit_exp `%;%`_state(s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]].`REFS`_tableinst[i] = r], f)] +[visit_exp (s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]].`REFS`_tableinst[i] = r], f)] +[visit_exp s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]].`REFS`_tableinst[i] = r]] [visit_exp s] [visit_id s] not free -[visit_exp `tableinst*#4`] -[visit_id tableinst*#4] -[visit_exp f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}[x!`%`_idx{i#31209}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}] -[visit_exp f.`MODULE`_frame{moduleinst#13}] +[visit_exp f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`TABLES`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#13] -[visit_id moduleinst#13] -[visit_exp `tableaddr*#2`] -[visit_id tableaddr*#2] -[visit_exp x!`%`_idx{i#31209}.0] -[visit_exp x!`%`_idx{i#31209}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#31209] -[visit_id i#31209] -[visit_exp `ref*#1`] -[visit_id ref*#1] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free [visit_exp i] [visit_id i] not free [visit_exp r] @@ -49583,13 +41891,9 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id f] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_table{store#335 : store, frame#335 : frame, s : store, f : frame, x : idx, i : nat, r : ref, store#347 : store, frame#347 : frame, `tableinst*#4` : tableinst*, moduleinst#13 : moduleinst, `tableaddr*#2` : tableaddr*, i#31209 : nat, `ref*#1` : ref*}(`%;%`_state{store#335, frame#335}(s, f), x, i, r) = `%;%`_state{store#347, frame#347}(s[`TABLES`_store{`tableinst*#4`}[f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}[x!`%`_idx{i#31209}.0]].`REFS`_tableinst{`ref*#1`}[i] = r], f) -[check_dims] f frame#359 frame#371 i#31231 moduleinst#14 s store#359 store#371 tableaddr*#3 tableinst*#5 ti x -[visit_exp `%;%`_state{store#359, frame#359}(s, f)] -[visit_exp store#359] -[visit_id store#359] -[visit_exp frame#359] -[visit_id frame#359] + def $with_table{s : store, f : frame, x : idx, i : nat, r : ref}(`%;%`_state(s, f), x, i, r) = `%;%`_state(s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]].`REFS`_tableinst[i] = r], f) +[check_dims] f s ti x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49599,45 +41903,29 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id x] [visit_exp ti] [visit_id ti] -[visit_exp `%;%`_state{store#371, frame#371}(s[`TABLES`_store{`tableinst*#5`}[f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}[x!`%`_idx{i#31231}.0]] = ti], f)] -[visit_exp store#371] -[visit_id store#371] -[visit_exp frame#371] -[visit_id frame#371] -[visit_exp (s[`TABLES`_store{`tableinst*#5`}[f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}[x!`%`_idx{i#31231}.0]] = ti], f)] -[visit_exp s[`TABLES`_store{`tableinst*#5`}[f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}[x!`%`_idx{i#31231}.0]] = ti]] +[visit_exp `%;%`_state(s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] = ti], f)] +[visit_exp (s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] = ti], f)] +[visit_exp s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] = ti]] [visit_exp s] [visit_id s] not free -[visit_exp `tableinst*#5`] -[visit_id tableinst*#5] -[visit_exp f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}[x!`%`_idx{i#31231}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}] -[visit_exp f.`MODULE`_frame{moduleinst#14}] +[visit_exp f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`TABLES`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#14] -[visit_id moduleinst#14] -[visit_exp `tableaddr*#3`] -[visit_id tableaddr*#3] -[visit_exp x!`%`_idx{i#31231}.0] -[visit_exp x!`%`_idx{i#31231}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#31231] -[visit_id i#31231] [visit_exp ti] [visit_id ti] not free [visit_exp f] [visit_id f] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_tableinst{store#359 : store, frame#359 : frame, s : store, f : frame, x : idx, ti : tableinst, store#371 : store, frame#371 : frame, `tableinst*#5` : tableinst*, moduleinst#14 : moduleinst, `tableaddr*#3` : tableaddr*, i#31231 : nat}(`%;%`_state{store#359, frame#359}(s, f), x, ti) = `%;%`_state{store#371, frame#371}(s[`TABLES`_store{`tableinst*#5`}[f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}[x!`%`_idx{i#31231}.0]] = ti], f) -[check_dims] b byte*#1845 f frame#383 frame#395 i i#31265 j memaddr*#2 meminst*#4 moduleinst#15 s store#383 store#395 x -[visit_exp `%;%`_state{store#383, frame#383}(s, f)] -[visit_exp store#383] -[visit_id store#383] -[visit_exp frame#383] -[visit_id frame#383] + def $with_tableinst{s : store, f : frame, x : idx, ti : tableinst}(`%;%`_state(s, f), x, ti) = `%;%`_state(s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] = ti], f) +[check_dims] b f i j s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49658,34 +41946,20 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_exp `b*`] [visit_id b*] no dims [visit_id b*] -[visit_exp `%;%`_state{store#395, frame#395}(s[`MEMS`_store{`meminst*#4`}[f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}[x!`%`_idx{i#31265}.0]].`BYTES`_meminst{`byte*#1845`}[i : j] = b*{b <- `b*`}], f)] -[visit_exp store#395] -[visit_id store#395] -[visit_exp frame#395] -[visit_id frame#395] -[visit_exp (s[`MEMS`_store{`meminst*#4`}[f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}[x!`%`_idx{i#31265}.0]].`BYTES`_meminst{`byte*#1845`}[i : j] = b*{b <- `b*`}], f)] -[visit_exp s[`MEMS`_store{`meminst*#4`}[f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}[x!`%`_idx{i#31265}.0]].`BYTES`_meminst{`byte*#1845`}[i : j] = b*{b <- `b*`}]] +[visit_exp `%;%`_state(s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]].`BYTES`_meminst[i : j] = b*{b <- `b*`}], f)] +[visit_exp (s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]].`BYTES`_meminst[i : j] = b*{b <- `b*`}], f)] +[visit_exp s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]].`BYTES`_meminst[i : j] = b*{b <- `b*`}]] [visit_exp s] [visit_id s] not free -[visit_exp `meminst*#4`] -[visit_id meminst*#4] -[visit_exp f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}[x!`%`_idx{i#31265}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}] -[visit_exp f.`MODULE`_frame{moduleinst#15}] +[visit_exp f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`MEMS`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#15] -[visit_id moduleinst#15] -[visit_exp `memaddr*#2`] -[visit_id memaddr*#2] -[visit_exp x!`%`_idx{i#31265}.0] -[visit_exp x!`%`_idx{i#31265}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#31265] -[visit_id i#31265] -[visit_exp `byte*#1845`] -[visit_id byte*#1845] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free [visit_exp i] [visit_id i] not free [visit_exp j] @@ -49703,13 +41977,9 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id f] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_mem{store#383 : store, frame#383 : frame, s : store, f : frame, x : idx, i : nat, j : nat, `b*` : byte*, store#395 : store, frame#395 : frame, `meminst*#4` : meminst*, moduleinst#15 : moduleinst, `memaddr*#2` : memaddr*, i#31265 : nat, `byte*#1845` : byte*}(`%;%`_state{store#383, frame#383}(s, f), x, i, j, b*{b <- `b*`}) = `%;%`_state{store#395, frame#395}(s[`MEMS`_store{`meminst*#4`}[f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}[x!`%`_idx{i#31265}.0]].`BYTES`_meminst{`byte*#1845`}[i : j] = b*{b <- `b*`}], f) -[check_dims] f frame#407 frame#419 i#31299 memaddr*#3 meminst*#5 mi moduleinst#16 s store#407 store#419 x -[visit_exp `%;%`_state{store#407, frame#407}(s, f)] -[visit_exp store#407] -[visit_id store#407] -[visit_exp frame#407] -[visit_id frame#407] + def $with_mem{s : store, f : frame, x : idx, i : nat, j : nat, `b*` : byte*}(`%;%`_state(s, f), x, i, j, b*{b <- `b*`}) = `%;%`_state(s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]].`BYTES`_meminst[i : j] = b*{b <- `b*`}], f) +[check_dims] f mi s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49719,45 +41989,29 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id x] [visit_exp mi] [visit_id mi] -[visit_exp `%;%`_state{store#419, frame#419}(s[`MEMS`_store{`meminst*#5`}[f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}[x!`%`_idx{i#31299}.0]] = mi], f)] -[visit_exp store#419] -[visit_id store#419] -[visit_exp frame#419] -[visit_id frame#419] -[visit_exp (s[`MEMS`_store{`meminst*#5`}[f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}[x!`%`_idx{i#31299}.0]] = mi], f)] -[visit_exp s[`MEMS`_store{`meminst*#5`}[f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}[x!`%`_idx{i#31299}.0]] = mi]] +[visit_exp `%;%`_state(s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] = mi], f)] +[visit_exp (s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] = mi], f)] +[visit_exp s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] = mi]] [visit_exp s] [visit_id s] not free -[visit_exp `meminst*#5`] -[visit_id meminst*#5] -[visit_exp f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}[x!`%`_idx{i#31299}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}] -[visit_exp f.`MODULE`_frame{moduleinst#16}] +[visit_exp f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`MEMS`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#16] -[visit_id moduleinst#16] -[visit_exp `memaddr*#3`] -[visit_id memaddr*#3] -[visit_exp x!`%`_idx{i#31299}.0] -[visit_exp x!`%`_idx{i#31299}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#31299] -[visit_id i#31299] [visit_exp mi] [visit_id mi] not free [visit_exp f] [visit_id f] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_meminst{store#407 : store, frame#407 : frame, s : store, f : frame, x : idx, mi : meminst, store#419 : store, frame#419 : frame, `meminst*#5` : meminst*, moduleinst#16 : moduleinst, `memaddr*#3` : memaddr*, i#31299 : nat}(`%;%`_state{store#407, frame#407}(s, f), x, mi) = `%;%`_state{store#419, frame#419}(s[`MEMS`_store{`meminst*#5`}[f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}[x!`%`_idx{i#31299}.0]] = mi], f) -[check_dims] elemaddr*#2 eleminst*#4 f frame#431 frame#443 i#31321 moduleinst#17 r ref*#2 s store#431 store#443 x -[visit_exp `%;%`_state{store#431, frame#431}(s, f)] -[visit_exp store#431] -[visit_id store#431] -[visit_exp frame#431] -[visit_id frame#431] + def $with_meminst{s : store, f : frame, x : idx, mi : meminst}(`%;%`_state(s, f), x, mi) = `%;%`_state(s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] = mi], f) +[check_dims] f r s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49774,34 +42028,20 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_exp `r*`] [visit_id r*] no dims [visit_id r*] -[visit_exp `%;%`_state{store#443, frame#443}(s[`ELEMS`_store{`eleminst*#4`}[f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}[x!`%`_idx{i#31321}.0]].`REFS`_eleminst{`ref*#2`} = r*{r <- `r*`}], f)] -[visit_exp store#443] -[visit_id store#443] -[visit_exp frame#443] -[visit_id frame#443] -[visit_exp (s[`ELEMS`_store{`eleminst*#4`}[f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}[x!`%`_idx{i#31321}.0]].`REFS`_eleminst{`ref*#2`} = r*{r <- `r*`}], f)] -[visit_exp s[`ELEMS`_store{`eleminst*#4`}[f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}[x!`%`_idx{i#31321}.0]].`REFS`_eleminst{`ref*#2`} = r*{r <- `r*`}]] +[visit_exp `%;%`_state(s[`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]].`REFS`_eleminst = r*{r <- `r*`}], f)] +[visit_exp (s[`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]].`REFS`_eleminst = r*{r <- `r*`}], f)] +[visit_exp s[`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]].`REFS`_eleminst = r*{r <- `r*`}]] [visit_exp s] [visit_id s] not free -[visit_exp `eleminst*#4`] -[visit_id eleminst*#4] -[visit_exp f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}[x!`%`_idx{i#31321}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}] -[visit_exp f.`MODULE`_frame{moduleinst#17}] +[visit_exp f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`ELEMS`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#17] -[visit_id moduleinst#17] -[visit_exp `elemaddr*#2`] -[visit_id elemaddr*#2] -[visit_exp x!`%`_idx{i#31321}.0] -[visit_exp x!`%`_idx{i#31321}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#31321] -[visit_id i#31321] -[visit_exp `ref*#2`] -[visit_id ref*#2] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free [visit_exp r*{r <- `r*`}] [scope_enter r] [visit_exp r] @@ -49815,13 +42055,9 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id f] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_elem{store#431 : store, frame#431 : frame, s : store, f : frame, x : idx, `r*` : ref*, store#443 : store, frame#443 : frame, `eleminst*#4` : eleminst*, moduleinst#17 : moduleinst, `elemaddr*#2` : elemaddr*, i#31321 : nat, `ref*#2` : ref*}(`%;%`_state{store#431, frame#431}(s, f), x, r*{r <- `r*`}) = `%;%`_state{store#443, frame#443}(s[`ELEMS`_store{`eleminst*#4`}[f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}[x!`%`_idx{i#31321}.0]].`REFS`_eleminst{`ref*#2`} = r*{r <- `r*`}], f) -[check_dims] b byte*#1846 dataaddr*#2 datainst*#4 f frame#455 frame#467 i#31355 moduleinst#18 s store#455 store#467 x -[visit_exp `%;%`_state{store#455, frame#455}(s, f)] -[visit_exp store#455] -[visit_id store#455] -[visit_exp frame#455] -[visit_id frame#455] + def $with_elem{s : store, f : frame, x : idx, `r*` : ref*}(`%;%`_state(s, f), x, r*{r <- `r*`}) = `%;%`_state(s[`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]].`REFS`_eleminst = r*{r <- `r*`}], f) +[check_dims] b f s x +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49838,34 +42074,20 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_exp `b*`] [visit_id b*] no dims [visit_id b*] -[visit_exp `%;%`_state{store#467, frame#467}(s[`DATAS`_store{`datainst*#4`}[f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}[x!`%`_idx{i#31355}.0]].`BYTES`_datainst{`byte*#1846`} = b*{b <- `b*`}], f)] -[visit_exp store#467] -[visit_id store#467] -[visit_exp frame#467] -[visit_id frame#467] -[visit_exp (s[`DATAS`_store{`datainst*#4`}[f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}[x!`%`_idx{i#31355}.0]].`BYTES`_datainst{`byte*#1846`} = b*{b <- `b*`}], f)] -[visit_exp s[`DATAS`_store{`datainst*#4`}[f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}[x!`%`_idx{i#31355}.0]].`BYTES`_datainst{`byte*#1846`} = b*{b <- `b*`}]] +[visit_exp `%;%`_state(s[`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]].`BYTES`_datainst = b*{b <- `b*`}], f)] +[visit_exp (s[`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]].`BYTES`_datainst = b*{b <- `b*`}], f)] +[visit_exp s[`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]].`BYTES`_datainst = b*{b <- `b*`}]] [visit_exp s] [visit_id s] not free -[visit_exp `datainst*#4`] -[visit_id datainst*#4] -[visit_exp f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}[x!`%`_idx{i#31355}.0]] -[visit_exp f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}] -[visit_exp f.`MODULE`_frame{moduleinst#18}] +[visit_exp f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]] +[visit_exp f.`MODULE`_frame.`DATAS`_moduleinst] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#18] -[visit_id moduleinst#18] -[visit_exp `dataaddr*#2`] -[visit_id dataaddr*#2] -[visit_exp x!`%`_idx{i#31355}.0] -[visit_exp x!`%`_idx{i#31355}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#31355] -[visit_id i#31355] -[visit_exp `byte*#1846`] -[visit_id byte*#1846] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free [visit_exp b*{b <- `b*`}] [scope_enter b] [visit_exp b] @@ -49879,13 +42101,9 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id f] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_data{store#455 : store, frame#455 : frame, s : store, f : frame, x : idx, `b*` : byte*, store#467 : store, frame#467 : frame, `datainst*#4` : datainst*, moduleinst#18 : moduleinst, `dataaddr*#2` : dataaddr*, i#31355 : nat, `byte*#1846` : byte*}(`%;%`_state{store#455, frame#455}(s, f), x, b*{b <- `b*`}) = `%;%`_state{store#467, frame#467}(s[`DATAS`_store{`datainst*#4`}[f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}[x!`%`_idx{i#31355}.0]].`BYTES`_datainst{`byte*#1846`} = b*{b <- `b*`}], f) -[check_dims] a f fieldval*#1 frame#479 frame#491 fv i s store#479 store#491 structinst*#3 -[visit_exp `%;%`_state{store#479, frame#479}(s, f)] -[visit_exp store#479] -[visit_id store#479] -[visit_exp frame#479] -[visit_id frame#479] + def $with_data{s : store, f : frame, x : idx, `b*` : byte*}(`%;%`_state(s, f), x, b*{b <- `b*`}) = `%;%`_state(s[`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]].`BYTES`_datainst = b*{b <- `b*`}], f) +[check_dims] a f fv i s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49897,21 +42115,13 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id i] [visit_exp fv] [visit_id fv] -[visit_exp `%;%`_state{store#491, frame#491}(s[`STRUCTS`_store{`structinst*#3`}[a].`FIELDS`_structinst{`fieldval*#1`}[i] = fv], f)] -[visit_exp store#491] -[visit_id store#491] -[visit_exp frame#491] -[visit_id frame#491] -[visit_exp (s[`STRUCTS`_store{`structinst*#3`}[a].`FIELDS`_structinst{`fieldval*#1`}[i] = fv], f)] -[visit_exp s[`STRUCTS`_store{`structinst*#3`}[a].`FIELDS`_structinst{`fieldval*#1`}[i] = fv]] +[visit_exp `%;%`_state(s[`STRUCTS`_store[a].`FIELDS`_structinst[i] = fv], f)] +[visit_exp (s[`STRUCTS`_store[a].`FIELDS`_structinst[i] = fv], f)] +[visit_exp s[`STRUCTS`_store[a].`FIELDS`_structinst[i] = fv]] [visit_exp s] [visit_id s] not free -[visit_exp `structinst*#3`] -[visit_id structinst*#3] [visit_exp a] [visit_id a] not free -[visit_exp `fieldval*#1`] -[visit_id fieldval*#1] [visit_exp i] [visit_id i] not free [visit_exp fv] @@ -49920,13 +42130,9 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id f] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_struct{store#479 : store, frame#479 : frame, s : store, f : frame, a : addr, i : nat, fv : fieldval, store#491 : store, frame#491 : frame, `structinst*#3` : structinst*, `fieldval*#1` : fieldval*}(`%;%`_state{store#479, frame#479}(s, f), a, i, fv) = `%;%`_state{store#491, frame#491}(s[`STRUCTS`_store{`structinst*#3`}[a].`FIELDS`_structinst{`fieldval*#1`}[i] = fv], f) -[check_dims] a arrayinst*#3 f fieldval*#2 frame#503 frame#515 fv i s store#503 store#515 -[visit_exp `%;%`_state{store#503, frame#503}(s, f)] -[visit_exp store#503] -[visit_id store#503] -[visit_exp frame#503] -[visit_id frame#503] + def $with_struct{s : store, f : frame, a : addr, i : nat, fv : fieldval}(`%;%`_state(s, f), a, i, fv) = `%;%`_state(s[`STRUCTS`_store[a].`FIELDS`_structinst[i] = fv], f) +[check_dims] a f fv i s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49938,21 +42144,13 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id i] [visit_exp fv] [visit_id fv] -[visit_exp `%;%`_state{store#515, frame#515}(s[`ARRAYS`_store{`arrayinst*#3`}[a].`FIELDS`_arrayinst{`fieldval*#2`}[i] = fv], f)] -[visit_exp store#515] -[visit_id store#515] -[visit_exp frame#515] -[visit_id frame#515] -[visit_exp (s[`ARRAYS`_store{`arrayinst*#3`}[a].`FIELDS`_arrayinst{`fieldval*#2`}[i] = fv], f)] -[visit_exp s[`ARRAYS`_store{`arrayinst*#3`}[a].`FIELDS`_arrayinst{`fieldval*#2`}[i] = fv]] +[visit_exp `%;%`_state(s[`ARRAYS`_store[a].`FIELDS`_arrayinst[i] = fv], f)] +[visit_exp (s[`ARRAYS`_store[a].`FIELDS`_arrayinst[i] = fv], f)] +[visit_exp s[`ARRAYS`_store[a].`FIELDS`_arrayinst[i] = fv]] [visit_exp s] [visit_id s] not free -[visit_exp `arrayinst*#3`] -[visit_id arrayinst*#3] [visit_exp a] [visit_id a] not free -[visit_exp `fieldval*#2`] -[visit_id fieldval*#2] [visit_exp i] [visit_id i] not free [visit_exp fv] @@ -49961,7 +42159,7 @@ DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fiel [visit_id f] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_array{store#503 : store, frame#503 : frame, s : store, f : frame, a : addr, i : nat, fv : fieldval, store#515 : store, frame#515 : frame, `arrayinst*#3` : arrayinst*, `fieldval*#2` : fieldval*}(`%;%`_state{store#503, frame#503}(s, f), a, i, fv) = `%;%`_state{store#515, frame#515}(s[`ARRAYS`_store{`arrayinst*#3`}[a].`FIELDS`_arrayinst{`fieldval*#2`}[i] = fv], f) + def $with_array{s : store, f : frame, a : addr, i : nat, fv : fieldval}(`%;%`_state(s, f), a, i, fv) = `%;%`_state(s[`ARRAYS`_store[a].`FIELDS`_arrayinst[i] = fv], f) [check_dims] _ state DecD add_structinst(state : state, structinst*) : state [visit_id state] not free @@ -49974,12 +42172,8 @@ DecD add_arrayinst(state : state, arrayinst*) : state DecD add_exninst(state : state, exninst*) : state [visit_id state] not free [visit_id _] not free -[check_dims] f frame#527 frame#539 s si store#527 store#539 structinst*#4 -[visit_exp `%;%`_state{store#527, frame#527}(s, f)] -[visit_exp store#527] -[visit_id store#527] -[visit_exp frame#527] -[visit_id frame#527] +[check_dims] f s si +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -49994,17 +42188,11 @@ DecD add_exninst(state : state, exninst*) : state [visit_exp `si*`] [visit_id si*] no dims [visit_id si*] -[visit_exp `%;%`_state{store#539, frame#539}(s[`STRUCTS`_store{`structinst*#4`} =++ si*{si <- `si*`}], f)] -[visit_exp store#539] -[visit_id store#539] -[visit_exp frame#539] -[visit_id frame#539] -[visit_exp (s[`STRUCTS`_store{`structinst*#4`} =++ si*{si <- `si*`}], f)] -[visit_exp s[`STRUCTS`_store{`structinst*#4`} =++ si*{si <- `si*`}]] +[visit_exp `%;%`_state(s[`STRUCTS`_store =++ si*{si <- `si*`}], f)] +[visit_exp (s[`STRUCTS`_store =++ si*{si <- `si*`}], f)] +[visit_exp s[`STRUCTS`_store =++ si*{si <- `si*`}]] [visit_exp s] [visit_id s] not free -[visit_exp `structinst*#4`] -[visit_id structinst*#4] [visit_exp si*{si <- `si*`}] [scope_enter si] [visit_exp si] @@ -50018,13 +42206,9 @@ DecD add_exninst(state : state, exninst*) : state [visit_id f] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_structinst{store#527 : store, frame#527 : frame, s : store, f : frame, `si*` : structinst*, store#539 : store, frame#539 : frame, `structinst*#4` : structinst*}(`%;%`_state{store#527, frame#527}(s, f), si*{si <- `si*`}) = `%;%`_state{store#539, frame#539}(s[`STRUCTS`_store{`structinst*#4`} =++ si*{si <- `si*`}], f) -[check_dims] ai arrayinst*#4 f frame#551 frame#563 s store#551 store#563 -[visit_exp `%;%`_state{store#551, frame#551}(s, f)] -[visit_exp store#551] -[visit_id store#551] -[visit_exp frame#551] -[visit_id frame#551] + def $add_structinst{s : store, f : frame, `si*` : structinst*}(`%;%`_state(s, f), si*{si <- `si*`}) = `%;%`_state(s[`STRUCTS`_store =++ si*{si <- `si*`}], f) +[check_dims] ai f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -50039,17 +42223,11 @@ DecD add_exninst(state : state, exninst*) : state [visit_exp `ai*`] [visit_id ai*] no dims [visit_id ai*] -[visit_exp `%;%`_state{store#563, frame#563}(s[`ARRAYS`_store{`arrayinst*#4`} =++ ai*{ai <- `ai*`}], f)] -[visit_exp store#563] -[visit_id store#563] -[visit_exp frame#563] -[visit_id frame#563] -[visit_exp (s[`ARRAYS`_store{`arrayinst*#4`} =++ ai*{ai <- `ai*`}], f)] -[visit_exp s[`ARRAYS`_store{`arrayinst*#4`} =++ ai*{ai <- `ai*`}]] +[visit_exp `%;%`_state(s[`ARRAYS`_store =++ ai*{ai <- `ai*`}], f)] +[visit_exp (s[`ARRAYS`_store =++ ai*{ai <- `ai*`}], f)] +[visit_exp s[`ARRAYS`_store =++ ai*{ai <- `ai*`}]] [visit_exp s] [visit_id s] not free -[visit_exp `arrayinst*#4`] -[visit_id arrayinst*#4] [visit_exp ai*{ai <- `ai*`}] [scope_enter ai] [visit_exp ai] @@ -50063,13 +42241,9 @@ DecD add_exninst(state : state, exninst*) : state [visit_id f] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_arrayinst{store#551 : store, frame#551 : frame, s : store, f : frame, `ai*` : arrayinst*, store#563 : store, frame#563 : frame, `arrayinst*#4` : arrayinst*}(`%;%`_state{store#551, frame#551}(s, f), ai*{ai <- `ai*`}) = `%;%`_state{store#563, frame#563}(s[`ARRAYS`_store{`arrayinst*#4`} =++ ai*{ai <- `ai*`}], f) -[check_dims] exn exninst*#3 f frame#575 frame#587 s store#575 store#587 -[visit_exp `%;%`_state{store#575, frame#575}(s, f)] -[visit_exp store#575] -[visit_id store#575] -[visit_exp frame#575] -[visit_id frame#575] + def $add_arrayinst{s : store, f : frame, `ai*` : arrayinst*}(`%;%`_state(s, f), ai*{ai <- `ai*`}) = `%;%`_state(s[`ARRAYS`_store =++ ai*{ai <- `ai*`}], f) +[check_dims] exn f s +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -50084,17 +42258,11 @@ DecD add_exninst(state : state, exninst*) : state [visit_exp `exn*`] [visit_id exn*] no dims [visit_id exn*] -[visit_exp `%;%`_state{store#587, frame#587}(s[`EXNS`_store{`exninst*#3`} =++ exn*{exn <- `exn*`}], f)] -[visit_exp store#587] -[visit_id store#587] -[visit_exp frame#587] -[visit_id frame#587] -[visit_exp (s[`EXNS`_store{`exninst*#3`} =++ exn*{exn <- `exn*`}], f)] -[visit_exp s[`EXNS`_store{`exninst*#3`} =++ exn*{exn <- `exn*`}]] +[visit_exp `%;%`_state(s[`EXNS`_store =++ exn*{exn <- `exn*`}], f)] +[visit_exp (s[`EXNS`_store =++ exn*{exn <- `exn*`}], f)] +[visit_exp s[`EXNS`_store =++ exn*{exn <- `exn*`}]] [visit_exp s] [visit_id s] not free -[visit_exp `exninst*#3`] -[visit_id exninst*#3] [visit_exp exn*{exn <- `exn*`}] [scope_enter exn] [visit_exp exn] @@ -50108,7 +42276,7 @@ DecD add_exninst(state : state, exninst*) : state [visit_id f] not free => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_exninst{store#575 : store, frame#575 : frame, s : store, f : frame, `exn*` : exninst*, store#587 : store, frame#587 : frame, `exninst*#3` : exninst*}(`%;%`_state{store#575, frame#575}(s, f), exn*{exn <- `exn*`}) = `%;%`_state{store#587, frame#587}(s[`EXNS`_store{`exninst*#3`} =++ exn*{exn <- `exn*`}], f) + def $add_exninst{s : store, f : frame, `exn*` : exninst*}(`%;%`_state(s, f), exn*{exn <- `exn*`}) = `%;%`_state(s[`EXNS`_store =++ exn*{exn <- `exn*`}], f) [check_dims] nat ref tableinst DecD growtable(tableinst : tableinst, nat : nat, ref : ref) : tableinst [visit_id tableinst] not free @@ -50118,7 +42286,7 @@ DecD growtable(tableinst : tableinst, nat : nat, ref : ref) : tableinst DecD growmem(meminst : meminst, nat : nat) : meminst [visit_id meminst] not free [visit_id nat] not free -[check_dims] addrtype#1027 addrtype#1039 at i i#31449 i#31467 i#31477 i' j limits#1027 limits#1039 n r r' ref*#3 ref*#4 reftype#3401 reftype#3413 rt tableinst tableinst' tabletype#875 tabletype#876 u64#361 u64#373 u64?#359 u64?#371 +[check_dims] at i i' j n r r' rt tableinst tableinst' [visit_exp tableinst] [visit_id tableinst] [visit_exp n] @@ -50127,27 +42295,15 @@ DecD growmem(meminst : meminst, nat : nat) : meminst [visit_id r] [visit_exp tableinst'] [visit_id tableinst'] -[visit_exp (tableinst = {`TYPE`{tabletype#875} `%%%`_tabletype{addrtype#1027, limits#1027, reftype#3401}(at, `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#3`} r'*{r' <- `r'*`}})] +[visit_exp (tableinst = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`}})] [visit_exp tableinst] [visit_id tableinst] not free -[visit_exp {`TYPE`{tabletype#875} `%%%`_tabletype{addrtype#1027, limits#1027, reftype#3401}(at, `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#3`} r'*{r' <- `r'*`}}] -[visit_exp tabletype#875] -[visit_id tabletype#875] -[visit_exp `%%%`_tabletype{addrtype#1027, limits#1027, reftype#3401}(at, `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`}), rt)] -[visit_exp addrtype#1027] -[visit_id addrtype#1027] -[visit_exp limits#1027] -[visit_id limits#1027] -[visit_exp reftype#3401] -[visit_id reftype#3401] -[visit_exp (at, `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`}), rt)] +[visit_exp {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`}}] +[visit_exp `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt)] +[visit_exp (at, `[%..%]`_limits(i, j?{j <- `j?`}), rt)] [visit_exp at] [visit_id at] -[visit_exp `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`})] -[visit_exp u64#361] -[visit_id u64#361] -[visit_exp `u64?#359`] -[visit_id u64?#359] +[visit_exp `[%..%]`_limits(i, j?{j <- `j?`})] [visit_exp (i, j?{j <- `j?`})] [visit_exp i] [visit_id i] @@ -50162,8 +42318,6 @@ DecD growmem(meminst : meminst, nat : nat) : meminst [visit_id j?] [visit_exp rt] [visit_id rt] -[visit_exp `ref*#3`] -[visit_id ref*#3] [visit_exp r'*{r' <- `r'*`}] [scope_enter r'] [visit_exp r'] @@ -50173,27 +42327,15 @@ DecD growmem(meminst : meminst, nat : nat) : meminst [visit_exp `r'*`] [visit_id r'*] no dims [visit_id r'*] -[visit_exp (tableinst' = {`TYPE`{tabletype#876} `%%%`_tabletype{addrtype#1039, limits#1039, reftype#3413}(at, `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`}), rt), `REFS`{`ref*#4`} r'*{r' <- `r'*`} ++ r^n{}})] +[visit_exp (tableinst' = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i', j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`} ++ r^n{}})] [visit_exp tableinst'] [visit_id tableinst'] not free -[visit_exp {`TYPE`{tabletype#876} `%%%`_tabletype{addrtype#1039, limits#1039, reftype#3413}(at, `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`}), rt), `REFS`{`ref*#4`} r'*{r' <- `r'*`} ++ r^n{}}] -[visit_exp tabletype#876] -[visit_id tabletype#876] -[visit_exp `%%%`_tabletype{addrtype#1039, limits#1039, reftype#3413}(at, `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`}), rt)] -[visit_exp addrtype#1039] -[visit_id addrtype#1039] -[visit_exp limits#1039] -[visit_id limits#1039] -[visit_exp reftype#3413] -[visit_id reftype#3413] -[visit_exp (at, `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`}), rt)] +[visit_exp {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i', j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`} ++ r^n{}}] +[visit_exp `%%%`_tabletype(at, `[%..%]`_limits(i', j?{j <- `j?`}), rt)] +[visit_exp (at, `[%..%]`_limits(i', j?{j <- `j?`}), rt)] [visit_exp at] [visit_id at] not free -[visit_exp `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`})] -[visit_exp u64#373] -[visit_id u64#373] -[visit_exp `u64?#371`] -[visit_id u64?#371] +[visit_exp `[%..%]`_limits(i', j?{j <- `j?`})] [visit_exp (i', j?{j <- `j?`})] [visit_exp i'] [visit_id i'] @@ -50208,8 +42350,6 @@ DecD growmem(meminst : meminst, nat : nat) : meminst [visit_id j?] no dims [visit_exp rt] [visit_id rt] not free -[visit_exp `ref*#4`] -[visit_id ref*#4] [visit_exp r'*{r' <- `r'*`} ++ r^n{}] [visit_exp r'*{r' <- `r'*`}] [scope_enter r'] @@ -50225,13 +42365,11 @@ DecD growmem(meminst : meminst, nat : nat) : meminst [visit_id r] not free [visit_exp n] [visit_id n] not free -[visit_exp (i'!`%`_u64{i#31449}.0 = (|r'*{r' <- `r'*`}| + n))] -[visit_exp i'!`%`_u64{i#31449}.0] -[visit_exp i'!`%`_u64{i#31449}] +[visit_exp (i'!`%`_u64.0 = (|r'*{r' <- `r'*`}| + n))] +[visit_exp i'!`%`_u64.0] +[visit_exp i'!`%`_u64] [visit_exp i'] [visit_id i'] not free -[visit_exp i#31449] -[visit_id i#31449] [visit_exp (|r'*{r' <- `r'*`}| + n)] [visit_exp |r'*{r' <- `r'*`}|] [visit_exp r'*{r' <- `r'*`}] @@ -50245,70 +42383,44 @@ DecD growmem(meminst : meminst, nat : nat) : meminst [visit_id r'*] no dims [visit_exp n] [visit_id n] not free -[scope_enter i#31467] -[scope_enter i#31477] [scope_enter j] -[visit_exp (i'!`%`_u64{i#31467}.0 <= j!`%`_u64{i#31477}.0)] -[visit_exp i'!`%`_u64{i#31467}.0] -[visit_exp i'!`%`_u64{i#31467}] +[visit_exp (i'!`%`_u64.0 <= j!`%`_u64.0)] +[visit_exp i'!`%`_u64.0] +[visit_exp i'!`%`_u64] [visit_exp i'] [visit_id i'] not free -[visit_exp i#31467] -[visit_id i#31467] not free -[visit_exp j!`%`_u64{i#31477}.0] -[visit_exp j!`%`_u64{i#31477}] +[visit_exp j!`%`_u64.0] +[visit_exp j!`%`_u64] [visit_exp j] [visit_id j] not free -[visit_exp i#31477] -[visit_id i#31477] not free -[visit_id i#31467] not free -[visit_id i#31477] not free [visit_id j] not free [scope_exit j] -[scope_exit i#31477] -[scope_exit i#31467] -[visit_exp `i#31467?`] -[visit_id i#31467?] no dims -[visit_id i#31467?] -[visit_exp `i#31477?`] -[visit_id i#31477?] no dims -[visit_id i#31477?] [visit_exp `j?`] [visit_id j?] not free [visit_id j?] no dims => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $growtable{tableinst : tableinst, n : n, r : ref, tableinst' : tableinst, tabletype#875 : tabletype, addrtype#1027 : addrtype, limits#1027 : limits, reftype#3401 : reftype, at : addrtype, u64#361 : u64, `u64?#359` : u64?, i : u64, `j?` : u64?, rt : reftype, `ref*#3` : ref*, `r'*` : ref*, tabletype#876 : tabletype, addrtype#1039 : addrtype, limits#1039 : limits, reftype#3413 : reftype, u64#373 : u64, `u64?#371` : u64?, i' : u64, `ref*#4` : ref*, i#31449 : nat, `i#31467?` : nat?, `i#31477?` : nat?}(tableinst, n, r) = tableinst' - -- if (tableinst = {`TYPE`{tabletype#875} `%%%`_tabletype{addrtype#1027, limits#1027, reftype#3401}(at, `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#3`} r'*{r' <- `r'*`}}) - -- if (tableinst' = {`TYPE`{tabletype#876} `%%%`_tabletype{addrtype#1039, limits#1039, reftype#3413}(at, `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`}), rt), `REFS`{`ref*#4`} r'*{r' <- `r'*`} ++ r^n{}}) - -- if (i'!`%`_u64{i#31449}.0 = (|r'*{r' <- `r'*`}| + n)) - -- (if (i'!`%`_u64{i#31467}.0 <= j!`%`_u64{i#31477}.0))?{i#31467 <- `i#31467?`, i#31477 <- `i#31477?`, j <- `j?`} -[check_dims] addrtype#1051 addrtype#1063 at b byte*#1847 byte*#1848 i i#31599 i#31609 i#31627 i#31637 i' j limits#1051 limits#1063 meminst meminst' memtype#525 memtype#526 n u64#385 u64#397 u64?#383 u64?#395 + def $growtable{tableinst : tableinst, n : n, r : ref, tableinst' : tableinst, at : addrtype, i : u64, `j?` : u64?, rt : reftype, `r'*` : ref*, i' : u64}(tableinst, n, r) = tableinst' + -- if (tableinst = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`}}) + -- if (tableinst' = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i', j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`} ++ r^n{}}) + -- if (i'!`%`_u64.0 = (|r'*{r' <- `r'*`}| + n)) + -- (if (i'!`%`_u64.0 <= j!`%`_u64.0))?{j <- `j?`} +[check_dims] at b i i' j meminst meminst' n [visit_exp meminst] [visit_id meminst] [visit_exp n] [visit_id n] [visit_exp meminst'] [visit_id meminst'] -[visit_exp (meminst = {`TYPE`{memtype#525} `%%PAGE`_memtype{addrtype#1051, limits#1051}(at, `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1847`} b*{b <- `b*`}})] +[visit_exp (meminst = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` b*{b <- `b*`}})] [visit_exp meminst] [visit_id meminst] not free -[visit_exp {`TYPE`{memtype#525} `%%PAGE`_memtype{addrtype#1051, limits#1051}(at, `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1847`} b*{b <- `b*`}}] -[visit_exp memtype#525] -[visit_id memtype#525] -[visit_exp `%%PAGE`_memtype{addrtype#1051, limits#1051}(at, `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`}))] -[visit_exp addrtype#1051] -[visit_id addrtype#1051] -[visit_exp limits#1051] -[visit_id limits#1051] -[visit_exp (at, `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`}))] +[visit_exp {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` b*{b <- `b*`}}] +[visit_exp `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`}))] +[visit_exp (at, `[%..%]`_limits(i, j?{j <- `j?`}))] [visit_exp at] [visit_id at] -[visit_exp `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`})] -[visit_exp u64#385] -[visit_id u64#385] -[visit_exp `u64?#383`] -[visit_id u64?#383] +[visit_exp `[%..%]`_limits(i, j?{j <- `j?`})] [visit_exp (i, j?{j <- `j?`})] [visit_exp i] [visit_id i] @@ -50321,8 +42433,6 @@ DecD growmem(meminst : meminst, nat : nat) : meminst [visit_exp `j?`] [visit_id j?] no dims [visit_id j?] -[visit_exp `byte*#1847`] -[visit_id byte*#1847] [visit_exp b*{b <- `b*`}] [scope_enter b] [visit_exp b] @@ -50332,25 +42442,15 @@ DecD growmem(meminst : meminst, nat : nat) : meminst [visit_exp `b*`] [visit_id b*] no dims [visit_id b*] -[visit_exp (meminst' = {`TYPE`{memtype#526} `%%PAGE`_memtype{addrtype#1063, limits#1063}(at, `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`})), `BYTES`{`byte*#1848`} b*{b <- `b*`} ++ `%`_byte{i#31599}(0)^(n * (64 * $Ki)){i#31599 <- `i#31599*`}})] +[visit_exp (meminst' = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i', j?{j <- `j?`})), `BYTES` b*{b <- `b*`} ++ `%`_byte(0)^(n * (64 * $Ki)){}})] [visit_exp meminst'] [visit_id meminst'] not free -[visit_exp {`TYPE`{memtype#526} `%%PAGE`_memtype{addrtype#1063, limits#1063}(at, `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`})), `BYTES`{`byte*#1848`} b*{b <- `b*`} ++ `%`_byte{i#31599}(0)^(n * (64 * $Ki)){i#31599 <- `i#31599*`}}] -[visit_exp memtype#526] -[visit_id memtype#526] -[visit_exp `%%PAGE`_memtype{addrtype#1063, limits#1063}(at, `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`}))] -[visit_exp addrtype#1063] -[visit_id addrtype#1063] -[visit_exp limits#1063] -[visit_id limits#1063] -[visit_exp (at, `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`}))] +[visit_exp {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i', j?{j <- `j?`})), `BYTES` b*{b <- `b*`} ++ `%`_byte(0)^(n * (64 * $Ki)){}}] +[visit_exp `%%PAGE`_memtype(at, `[%..%]`_limits(i', j?{j <- `j?`}))] +[visit_exp (at, `[%..%]`_limits(i', j?{j <- `j?`}))] [visit_exp at] [visit_id at] not free -[visit_exp `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`})] -[visit_exp u64#397] -[visit_id u64#397] -[visit_exp `u64?#395`] -[visit_id u64?#395] +[visit_exp `[%..%]`_limits(i', j?{j <- `j?`})] [visit_exp (i', j?{j <- `j?`})] [visit_exp i'] [visit_id i'] @@ -50363,9 +42463,7 @@ DecD growmem(meminst : meminst, nat : nat) : meminst [visit_exp `j?`] [visit_id j?] not free [visit_id j?] no dims -[visit_exp `byte*#1848`] -[visit_id byte*#1848] -[visit_exp b*{b <- `b*`} ++ `%`_byte{i#31599}(0)^(n * (64 * $Ki)){i#31599 <- `i#31599*`}] +[visit_exp b*{b <- `b*`} ++ `%`_byte(0)^(n * (64 * $Ki)){}] [visit_exp b*{b <- `b*`}] [scope_enter b] [visit_exp b] @@ -50375,32 +42473,22 @@ DecD growmem(meminst : meminst, nat : nat) : meminst [visit_exp `b*`] [visit_id b*] not free [visit_id b*] no dims -[visit_exp `%`_byte{i#31599}(0)^(n * (64 * $Ki)){i#31599 <- `i#31599*`}] -[scope_enter i#31599] -[visit_exp `%`_byte{i#31599}(0)] -[visit_exp i#31599] -[visit_id i#31599] not free +[visit_exp `%`_byte(0)^(n * (64 * $Ki)){}] +[visit_exp `%`_byte(0)] [visit_exp (0)] [visit_exp 0] -[visit_id i#31599] not free -[scope_exit i#31599] [visit_exp (n * (64 * $Ki))] [visit_exp n] [visit_id n] not free [visit_exp (64 * $Ki)] [visit_exp 64] [visit_exp $Ki] -[visit_exp `i#31599*`] -[visit_id i#31599*] no dims -[visit_id i#31599*] -[visit_exp ((i'!`%`_u64{i#31609}.0 : nat <:> rat) = (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat)))] -[visit_exp (i'!`%`_u64{i#31609}.0 : nat <:> rat)] -[visit_exp i'!`%`_u64{i#31609}.0] -[visit_exp i'!`%`_u64{i#31609}] +[visit_exp ((i'!`%`_u64.0 : nat <:> rat) = (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat)))] +[visit_exp (i'!`%`_u64.0 : nat <:> rat)] +[visit_exp i'!`%`_u64.0] +[visit_exp i'!`%`_u64] [visit_exp i'] [visit_id i'] not free -[visit_exp i#31609] -[visit_id i#31609] [visit_exp (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat))] [visit_exp ((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat))] [visit_exp (|b*{b <- `b*`}| : nat <:> rat)] @@ -50421,75 +42509,53 @@ DecD growmem(meminst : meminst, nat : nat) : meminst [visit_exp (n : nat <:> rat)] [visit_exp n] [visit_id n] not free -[scope_enter i#31627] -[scope_enter i#31637] [scope_enter j] -[visit_exp (i'!`%`_u64{i#31627}.0 <= j!`%`_u64{i#31637}.0)] -[visit_exp i'!`%`_u64{i#31627}.0] -[visit_exp i'!`%`_u64{i#31627}] +[visit_exp (i'!`%`_u64.0 <= j!`%`_u64.0)] +[visit_exp i'!`%`_u64.0] +[visit_exp i'!`%`_u64] [visit_exp i'] [visit_id i'] not free -[visit_exp i#31627] -[visit_id i#31627] not free -[visit_exp j!`%`_u64{i#31637}.0] -[visit_exp j!`%`_u64{i#31637}] +[visit_exp j!`%`_u64.0] +[visit_exp j!`%`_u64] [visit_exp j] [visit_id j] not free -[visit_exp i#31637] -[visit_id i#31637] not free -[visit_id i#31627] not free -[visit_id i#31637] not free [visit_id j] not free [scope_exit j] -[scope_exit i#31637] -[scope_exit i#31627] -[visit_exp `i#31627?`] -[visit_id i#31627?] no dims -[visit_id i#31627?] -[visit_exp `i#31637?`] -[visit_id i#31637?] no dims -[visit_id i#31637?] [visit_exp `j?`] [visit_id j?] not free [visit_id j?] no dims => ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $growmem{meminst : meminst, n : n, meminst' : meminst, memtype#525 : memtype, addrtype#1051 : addrtype, limits#1051 : limits, at : addrtype, u64#385 : u64, `u64?#383` : u64?, i : u64, `j?` : u64?, `byte*#1847` : byte*, `b*` : byte*, memtype#526 : memtype, addrtype#1063 : addrtype, limits#1063 : limits, u64#397 : u64, `u64?#395` : u64?, i' : u64, `byte*#1848` : byte*, `i#31599*` : nat*, i#31609 : nat, `i#31627?` : nat?, `i#31637?` : nat?}(meminst, n) = meminst' - -- if (meminst = {`TYPE`{memtype#525} `%%PAGE`_memtype{addrtype#1051, limits#1051}(at, `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1847`} b*{b <- `b*`}}) - -- if (meminst' = {`TYPE`{memtype#526} `%%PAGE`_memtype{addrtype#1063, limits#1063}(at, `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`})), `BYTES`{`byte*#1848`} b*{b <- `b*`} ++ `%`_byte{i#31599}(0)^(n * (64 * $Ki)){i#31599 <- `i#31599*`}}) - -- if ((i'!`%`_u64{i#31609}.0 : nat <:> rat) = (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat))) - -- (if (i'!`%`_u64{i#31627}.0 <= j!`%`_u64{i#31637}.0))?{i#31627 <- `i#31627?`, i#31637 <- `i#31637?`, j <- `j?`} + def $growmem{meminst : meminst, n : n, meminst' : meminst, at : addrtype, i : u64, `j?` : u64?, `b*` : byte*, i' : u64}(meminst, n) = meminst' + -- if (meminst = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` b*{b <- `b*`}}) + -- if (meminst' = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i', j?{j <- `j?`})), `BYTES` b*{b <- `b*`} ++ `%`_byte(0)^(n * (64 * $Ki)){}}) + -- if ((i'!`%`_u64.0 : nat <:> rat) = (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat))) + -- (if (i'!`%`_u64.0 <= j!`%`_u64.0))?{j <- `j?`} [check_dims] valtype DecD default_(valtype : valtype) : val? [visit_id valtype] not free -[check_dims] Inn i#31659 numtype#37 +[check_dims] Inn [visit_exp (Inn : Inn <: valtype)] [visit_exp Inn] [visit_id Inn] -[visit_exp ?(`CONST`_val{numtype#37}((Inn : Inn <: numtype), `%`_num_{i#31659}(0)))] -[visit_exp `CONST`_val{numtype#37}((Inn : Inn <: numtype), `%`_num_{i#31659}(0))] -[visit_exp numtype#37] -[visit_id numtype#37] -[visit_exp ((Inn : Inn <: numtype), `%`_num_{i#31659}(0))] +[visit_exp ?(`CONST`_val((Inn : Inn <: numtype), `%`_num_(0)))] +[visit_exp `CONST`_val((Inn : Inn <: numtype), `%`_num_(0))] +[visit_exp ((Inn : Inn <: numtype), `%`_num_(0))] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] not free -[visit_exp `%`_num_{i#31659}(0)] -[visit_exp i#31659] -[visit_id i#31659] +[visit_exp `%`_num_(0)] [visit_exp (0)] [visit_exp 0] => ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Inn : Inn, numtype#37 : numtype, i#31659 : nat}((Inn : Inn <: valtype)) = ?(`CONST`_val{numtype#37}((Inn : Inn <: numtype), `%`_num_{i#31659}(0))) -[check_dims] Fnn numtype#39 + def $default_{Inn : Inn}((Inn : Inn <: valtype)) = ?(`CONST`_val((Inn : Inn <: numtype), `%`_num_(0))) +[check_dims] Fnn [visit_exp (Fnn : Fnn <: valtype)] [visit_exp Fnn] [visit_id Fnn] -[visit_exp ?(`CONST`_val{numtype#39}((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype)))))] -[visit_exp `CONST`_val{numtype#39}((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))] -[visit_exp numtype#39] -[visit_id numtype#39] +[visit_exp ?(`CONST`_val((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype)))))] +[visit_exp `CONST`_val((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))] [visit_exp ((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))] [visit_exp (Fnn : Fnn <: numtype)] [visit_exp Fnn] @@ -50501,54 +42567,40 @@ DecD default_(valtype : valtype) : val? [visit_id Fnn] not free => ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Fnn : Fnn, numtype#39 : numtype}((Fnn : Fnn <: valtype)) = ?(`CONST`_val{numtype#39}((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))) -[check_dims] Vnn i#31681 vectype#42 + def $default_{Fnn : Fnn}((Fnn : Fnn <: valtype)) = ?(`CONST`_val((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))) +[check_dims] Vnn [visit_exp (Vnn : Vnn <: valtype)] [visit_exp Vnn] [visit_id Vnn] -[visit_exp ?(`VCONST`_val{vectype#42}(Vnn, `%`_vec_{i#31681}(0)))] -[visit_exp `VCONST`_val{vectype#42}(Vnn, `%`_vec_{i#31681}(0))] -[visit_exp vectype#42] -[visit_id vectype#42] -[visit_exp (Vnn, `%`_vec_{i#31681}(0))] +[visit_exp ?(`VCONST`_val(Vnn, `%`_vec_(0)))] +[visit_exp `VCONST`_val(Vnn, `%`_vec_(0))] +[visit_exp (Vnn, `%`_vec_(0))] [visit_exp Vnn] [visit_id Vnn] not free -[visit_exp `%`_vec_{i#31681}(0)] -[visit_exp i#31681] -[visit_id i#31681] +[visit_exp `%`_vec_(0)] [visit_exp (0)] [visit_exp 0] => ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Vnn : Vnn, vectype#42 : vectype, i#31681 : nat}((Vnn : Vnn <: valtype)) = ?(`VCONST`_val{vectype#42}(Vnn, `%`_vec_{i#31681}(0))) -[check_dims] heaptype#1043 heaptype#1045 ht null?#1037 -[visit_exp `REF`_valtype{`null?#1037`, heaptype#1043}(?(`NULL`_null), ht)] -[visit_exp `null?#1037`] -[visit_id null?#1037] -[visit_exp heaptype#1043] -[visit_id heaptype#1043] + def $default_{Vnn : Vnn}((Vnn : Vnn <: valtype)) = ?(`VCONST`_val(Vnn, `%`_vec_(0))) +[check_dims] ht +[visit_exp `REF`_valtype(?(`NULL`_null), ht)] [visit_exp (?(`NULL`_null), ht)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] [visit_exp ht] [visit_id ht] -[visit_exp ?(`REF.NULL`_val{heaptype#1045}(ht))] -[visit_exp `REF.NULL`_val{heaptype#1045}(ht)] -[visit_exp heaptype#1045] -[visit_id heaptype#1045] +[visit_exp ?(`REF.NULL`_val(ht))] +[visit_exp `REF.NULL`_val(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] not free => ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{`null?#1037` : null?, heaptype#1043 : heaptype, ht : heaptype, heaptype#1045 : heaptype}(`REF`_valtype{`null?#1037`, heaptype#1043}(?(`NULL`_null), ht)) = ?(`REF.NULL`_val{heaptype#1045}(ht)) -[check_dims] heaptype#1047 ht null?#1039 -[visit_exp `REF`_valtype{`null?#1039`, heaptype#1047}(?(), ht)] -[visit_exp `null?#1039`] -[visit_id null?#1039] -[visit_exp heaptype#1047] -[visit_id heaptype#1047] + def $default_{ht : heaptype}(`REF`_valtype(?(`NULL`_null), ht)) = ?(`REF.NULL`_val(ht)) +[check_dims] ht +[visit_exp `REF`_valtype(?(), ht)] [visit_exp (?(), ht)] [visit_exp ?()] [visit_exp ht] @@ -50556,7 +42608,7 @@ DecD default_(valtype : valtype) : val? [visit_exp ?()] => ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{`null?#1039` : null?, heaptype#1047 : heaptype, ht : heaptype}(`REF`_valtype{`null?#1039`, heaptype#1047}(?(), ht)) = ?() + def $default_{ht : heaptype}(`REF`_valtype(?(), ht)) = ?() [check_dims] t [visit_exp t] [visit_id t] @@ -50577,12 +42629,10 @@ DecD default_(valtype : valtype) : val? [check_dims] [check_dims] [check_dims] -[check_dims] c nt numtype#51 s +[check_dims] c nt s [visit_exp s] [visit_id s] -[visit_exp `CONST`_num{numtype#51}(nt, c)] -[visit_exp numtype#51] -[visit_id numtype#51] +[visit_exp `CONST`_num(nt, c)] [visit_exp (nt, c)] [visit_exp nt] [visit_id nt] @@ -50590,12 +42640,10 @@ DecD default_(valtype : valtype) : val? [visit_id c] [visit_exp nt] [visit_id nt] not free -[check_dims] c s vectype#54 vt +[check_dims] c s vt [visit_exp s] [visit_id s] -[visit_exp `VCONST`_vec{vectype#54}(vt, c)] -[visit_exp vectype#54] -[visit_id vectype#54] +[visit_exp `VCONST`_vec(vt, c)] [visit_exp (vt, c)] [visit_exp vt] [visit_id vt] @@ -50603,269 +42651,177 @@ DecD default_(valtype : valtype) : val? [visit_id c] [visit_exp vt] [visit_id vt] not free -[check_dims] datatype*#19 deftype*#75 deftype*#76 elemtype*#19 funcidx*#56 globaltype*#20 heaptype#1049 heaptype#1061 ht ht' localtype*#22 memtype*#34 null?#1051 resulttype*#30 resulttype?#27 s subtype*#18 tabletype*#27 tagtype*#19 +[check_dims] ht ht' s [visit_exp s] [visit_id s] -[visit_exp `REF.NULL`_ref{heaptype#1049}(ht)] -[visit_exp heaptype#1049] -[visit_id heaptype#1049] +[visit_exp `REF.NULL`_ref(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[visit_exp `REF`_reftype{`null?#1051`, heaptype#1061}(?(`NULL`_null), ht')] -[visit_exp `null?#1051`] -[visit_id null?#1051] -[visit_exp heaptype#1061] -[visit_id heaptype#1061] +[visit_exp `REF`_reftype(?(`NULL`_null), ht')] [visit_exp (?(`NULL`_null), ht')] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] [visit_exp ht'] [visit_id ht'] -[visit_exp ({`TYPES`{`deftype*#75`} [], `RECS`{`subtype*#18`} [], `TAGS`{`tagtype*#19`} [], `GLOBALS`{`globaltype*#20`} [], `MEMS`{`memtype*#34`} [], `TABLES`{`tabletype*#27`} [], `FUNCS`{`deftype*#76`} [], `DATAS`{`datatype*#19`} [], `ELEMS`{`elemtype*#19`} [], `LOCALS`{`localtype*#22`} [], `LABELS`{`resulttype*#30`} [], `RETURN`{`resulttype?#27`} ?(), `REFS`{`funcidx*#56`} []}, ht', ht)] -[visit_exp {`TYPES`{`deftype*#75`} [], `RECS`{`subtype*#18`} [], `TAGS`{`tagtype*#19`} [], `GLOBALS`{`globaltype*#20`} [], `MEMS`{`memtype*#34`} [], `TABLES`{`tabletype*#27`} [], `FUNCS`{`deftype*#76`} [], `DATAS`{`datatype*#19`} [], `ELEMS`{`elemtype*#19`} [], `LOCALS`{`localtype*#22`} [], `LABELS`{`resulttype*#30`} [], `RETURN`{`resulttype?#27`} ?(), `REFS`{`funcidx*#56`} []}] -[visit_exp `deftype*#75`] -[visit_id deftype*#75] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, ht', ht)] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#18`] -[visit_id subtype*#18] [visit_exp []] -[visit_exp `tagtype*#19`] -[visit_id tagtype*#19] [visit_exp []] -[visit_exp `globaltype*#20`] -[visit_id globaltype*#20] [visit_exp []] -[visit_exp `memtype*#34`] -[visit_id memtype*#34] [visit_exp []] -[visit_exp `tabletype*#27`] -[visit_id tabletype*#27] [visit_exp []] -[visit_exp `deftype*#76`] -[visit_id deftype*#76] [visit_exp []] -[visit_exp `datatype*#19`] -[visit_id datatype*#19] [visit_exp []] -[visit_exp `elemtype*#19`] -[visit_id elemtype*#19] [visit_exp []] -[visit_exp `localtype*#22`] -[visit_id localtype*#22] [visit_exp []] -[visit_exp `resulttype*#30`] -[visit_id resulttype*#30] [visit_exp []] -[visit_exp `resulttype?#27`] -[visit_id resulttype?#27] [visit_exp ?()] -[visit_exp `funcidx*#56`] -[visit_id funcidx*#56] [visit_exp []] [visit_exp ht'] [visit_id ht'] not free [visit_exp ht] [visit_id ht] not free -[check_dims] heaptype#1073 i null?#1063 s u31#1 +[check_dims] i s [visit_exp s] [visit_id s] -[visit_exp `REF.I31_NUM`_ref{u31#1}(i)] -[visit_exp u31#1] -[visit_id u31#1] +[visit_exp `REF.I31_NUM`_ref(i)] [visit_exp (i)] [visit_exp i] [visit_id i] -[visit_exp `REF`_reftype{`null?#1063`, heaptype#1073}(?(), `I31`_heaptype)] -[visit_exp `null?#1063`] -[visit_id null?#1063] -[visit_exp heaptype#1073] -[visit_id heaptype#1073] +[visit_exp `REF`_reftype(?(), `I31`_heaptype)] [visit_exp (?(), `I31`_heaptype)] [visit_exp ?()] [visit_exp `I31`_heaptype] [visit_exp ()] -[check_dims] a deftype#1 dt heaptype#1085 null?#1075 s structaddr#1 structinst*#5 +[check_dims] a dt s [visit_exp s] [visit_id s] -[visit_exp `REF.STRUCT_ADDR`_ref{structaddr#1}(a)] -[visit_exp structaddr#1] -[visit_id structaddr#1] +[visit_exp `REF.STRUCT_ADDR`_ref(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `REF`_reftype{`null?#1075`, heaptype#1085}(?(), (dt : deftype <: heaptype))] -[visit_exp `null?#1075`] -[visit_id null?#1075] -[visit_exp heaptype#1085] -[visit_id heaptype#1085] +[visit_exp `REF`_reftype(?(), (dt : deftype <: heaptype))] [visit_exp (?(), (dt : deftype <: heaptype))] [visit_exp ?()] [visit_exp (dt : deftype <: heaptype)] [visit_exp dt] [visit_id dt] -[visit_exp (s.`STRUCTS`_store{`structinst*#5`}[a].`TYPE`_structinst{deftype#1} = dt)] -[visit_exp s.`STRUCTS`_store{`structinst*#5`}[a].`TYPE`_structinst{deftype#1}] -[visit_exp s.`STRUCTS`_store{`structinst*#5`}[a]] -[visit_exp s.`STRUCTS`_store{`structinst*#5`}] +[visit_exp (s.`STRUCTS`_store[a].`TYPE`_structinst = dt)] +[visit_exp s.`STRUCTS`_store[a].`TYPE`_structinst] +[visit_exp s.`STRUCTS`_store[a]] +[visit_exp s.`STRUCTS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `structinst*#5`] -[visit_id structinst*#5] [visit_exp a] [visit_id a] not free -[visit_exp deftype#1] -[visit_id deftype#1] [visit_exp dt] [visit_id dt] not free -[check_dims] a arrayaddr#1 arrayinst*#5 deftype#2 dt heaptype#1097 null?#1087 s +[check_dims] a dt s [visit_exp s] [visit_id s] -[visit_exp `REF.ARRAY_ADDR`_ref{arrayaddr#1}(a)] -[visit_exp arrayaddr#1] -[visit_id arrayaddr#1] +[visit_exp `REF.ARRAY_ADDR`_ref(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `REF`_reftype{`null?#1087`, heaptype#1097}(?(), (dt : deftype <: heaptype))] -[visit_exp `null?#1087`] -[visit_id null?#1087] -[visit_exp heaptype#1097] -[visit_id heaptype#1097] +[visit_exp `REF`_reftype(?(), (dt : deftype <: heaptype))] [visit_exp (?(), (dt : deftype <: heaptype))] [visit_exp ?()] [visit_exp (dt : deftype <: heaptype)] [visit_exp dt] [visit_id dt] -[visit_exp (s.`ARRAYS`_store{`arrayinst*#5`}[a].`TYPE`_arrayinst{deftype#2} = dt)] -[visit_exp s.`ARRAYS`_store{`arrayinst*#5`}[a].`TYPE`_arrayinst{deftype#2}] -[visit_exp s.`ARRAYS`_store{`arrayinst*#5`}[a]] -[visit_exp s.`ARRAYS`_store{`arrayinst*#5`}] +[visit_exp (s.`ARRAYS`_store[a].`TYPE`_arrayinst = dt)] +[visit_exp s.`ARRAYS`_store[a].`TYPE`_arrayinst] +[visit_exp s.`ARRAYS`_store[a]] +[visit_exp s.`ARRAYS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `arrayinst*#5`] -[visit_id arrayinst*#5] [visit_exp a] [visit_id a] not free -[visit_exp deftype#2] -[visit_id deftype#2] [visit_exp dt] [visit_id dt] not free -[check_dims] a deftype#3 dt funcaddr#3 funcinst*#4 heaptype#1109 null?#1099 s +[check_dims] a dt s [visit_exp s] [visit_id s] -[visit_exp `REF.FUNC_ADDR`_ref{funcaddr#3}(a)] -[visit_exp funcaddr#3] -[visit_id funcaddr#3] +[visit_exp `REF.FUNC_ADDR`_ref(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `REF`_reftype{`null?#1099`, heaptype#1109}(?(), (dt : deftype <: heaptype))] -[visit_exp `null?#1099`] -[visit_id null?#1099] -[visit_exp heaptype#1109] -[visit_id heaptype#1109] +[visit_exp `REF`_reftype(?(), (dt : deftype <: heaptype))] [visit_exp (?(), (dt : deftype <: heaptype))] [visit_exp ?()] [visit_exp (dt : deftype <: heaptype)] [visit_exp dt] [visit_id dt] -[visit_exp (s.`FUNCS`_store{`funcinst*#4`}[a].`TYPE`_funcinst{deftype#3} = dt)] -[visit_exp s.`FUNCS`_store{`funcinst*#4`}[a].`TYPE`_funcinst{deftype#3}] -[visit_exp s.`FUNCS`_store{`funcinst*#4`}[a]] -[visit_exp s.`FUNCS`_store{`funcinst*#4`}] +[visit_exp (s.`FUNCS`_store[a].`TYPE`_funcinst = dt)] +[visit_exp s.`FUNCS`_store[a].`TYPE`_funcinst] +[visit_exp s.`FUNCS`_store[a]] +[visit_exp s.`FUNCS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `funcinst*#4`] -[visit_id funcinst*#4] [visit_exp a] [visit_id a] not free -[visit_exp deftype#3] -[visit_id deftype#3] [visit_exp dt] [visit_id dt] not free -[check_dims] a exn exnaddr#1 exninst*#4 heaptype#1121 null?#1111 s +[check_dims] a exn s [visit_exp s] [visit_id s] -[visit_exp `REF.EXN_ADDR`_ref{exnaddr#1}(a)] -[visit_exp exnaddr#1] -[visit_id exnaddr#1] +[visit_exp `REF.EXN_ADDR`_ref(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `REF`_reftype{`null?#1111`, heaptype#1121}(?(), `EXN`_heaptype)] -[visit_exp `null?#1111`] -[visit_id null?#1111] -[visit_exp heaptype#1121] -[visit_id heaptype#1121] +[visit_exp `REF`_reftype(?(), `EXN`_heaptype)] [visit_exp (?(), `EXN`_heaptype)] [visit_exp ?()] [visit_exp `EXN`_heaptype] [visit_exp ()] -[visit_exp (s.`EXNS`_store{`exninst*#4`}[a] = exn)] -[visit_exp s.`EXNS`_store{`exninst*#4`}[a]] -[visit_exp s.`EXNS`_store{`exninst*#4`}] +[visit_exp (s.`EXNS`_store[a] = exn)] +[visit_exp s.`EXNS`_store[a]] +[visit_exp s.`EXNS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `exninst*#4`] -[visit_id exninst*#4] [visit_exp a] [visit_id a] not free [visit_exp exn] [visit_id exn] -[check_dims] a heaptype#1133 hostaddr#1 null?#1123 s +[check_dims] a s [visit_exp s] [visit_id s] -[visit_exp `REF.HOST_ADDR`_ref{hostaddr#1}(a)] -[visit_exp hostaddr#1] -[visit_id hostaddr#1] +[visit_exp `REF.HOST_ADDR`_ref(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `REF`_reftype{`null?#1123`, heaptype#1133}(?(), `ANY`_heaptype)] -[visit_exp `null?#1123`] -[visit_id null?#1123] -[visit_exp heaptype#1133] -[visit_id heaptype#1133] +[visit_exp `REF`_reftype(?(), `ANY`_heaptype)] [visit_exp (?(), `ANY`_heaptype)] [visit_exp ?()] [visit_exp `ANY`_heaptype] [visit_exp ()] -[check_dims] addrref addrref#1 heaptype#1145 heaptype#1157 null?#1135 null?#1147 s +[check_dims] addrref s [visit_exp s] [visit_id s] -[visit_exp `REF.EXTERN`_ref{addrref#1}(addrref)] -[visit_exp addrref#1] -[visit_id addrref#1] +[visit_exp `REF.EXTERN`_ref(addrref)] [visit_exp (addrref)] [visit_exp addrref] [visit_id addrref] -[visit_exp `REF`_reftype{`null?#1135`, heaptype#1145}(?(), `EXTERN`_heaptype)] -[visit_exp `null?#1135`] -[visit_id null?#1135] -[visit_exp heaptype#1145] -[visit_id heaptype#1145] +[visit_exp `REF`_reftype(?(), `EXTERN`_heaptype)] [visit_exp (?(), `EXTERN`_heaptype)] [visit_exp ?()] [visit_exp `EXTERN`_heaptype] [visit_exp ()] -[visit_exp (s, (addrref : addrref <: ref), `REF`_reftype{`null?#1147`, heaptype#1157}(?(), `ANY`_heaptype))] +[visit_exp (s, (addrref : addrref <: ref), `REF`_reftype(?(), `ANY`_heaptype))] [visit_exp s] [visit_id s] not free [visit_exp (addrref : addrref <: ref)] [visit_exp addrref] [visit_id addrref] not free -[visit_exp `REF`_reftype{`null?#1147`, heaptype#1157}(?(), `ANY`_heaptype)] -[visit_exp `null?#1147`] -[visit_id null?#1147] -[visit_exp heaptype#1157] -[visit_id heaptype#1157] +[visit_exp `REF`_reftype(?(), `ANY`_heaptype)] [visit_exp (?(), `ANY`_heaptype)] [visit_exp ?()] [visit_exp `ANY`_heaptype] [visit_exp ()] -[check_dims] datatype*#20 deftype*#77 deftype*#78 elemtype*#20 funcidx*#57 globaltype*#21 localtype*#23 memtype*#35 ref resulttype*#31 resulttype?#28 rt rt' s subtype*#19 tabletype*#28 tagtype*#20 +[check_dims] ref rt rt' s [visit_exp s] [visit_id s] [visit_exp ref] @@ -50879,46 +42835,20 @@ DecD default_(valtype : valtype) : val? [visit_id ref] not free [visit_exp rt'] [visit_id rt'] -[visit_exp ({`TYPES`{`deftype*#77`} [], `RECS`{`subtype*#19`} [], `TAGS`{`tagtype*#20`} [], `GLOBALS`{`globaltype*#21`} [], `MEMS`{`memtype*#35`} [], `TABLES`{`tabletype*#28`} [], `FUNCS`{`deftype*#78`} [], `DATAS`{`datatype*#20`} [], `ELEMS`{`elemtype*#20`} [], `LOCALS`{`localtype*#23`} [], `LABELS`{`resulttype*#31`} [], `RETURN`{`resulttype?#28`} ?(), `REFS`{`funcidx*#57`} []}, rt', rt)] -[visit_exp {`TYPES`{`deftype*#77`} [], `RECS`{`subtype*#19`} [], `TAGS`{`tagtype*#20`} [], `GLOBALS`{`globaltype*#21`} [], `MEMS`{`memtype*#35`} [], `TABLES`{`tabletype*#28`} [], `FUNCS`{`deftype*#78`} [], `DATAS`{`datatype*#20`} [], `ELEMS`{`elemtype*#20`} [], `LOCALS`{`localtype*#23`} [], `LABELS`{`resulttype*#31`} [], `RETURN`{`resulttype?#28`} ?(), `REFS`{`funcidx*#57`} []}] -[visit_exp `deftype*#77`] -[visit_id deftype*#77] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt', rt)] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#19`] -[visit_id subtype*#19] [visit_exp []] -[visit_exp `tagtype*#20`] -[visit_id tagtype*#20] [visit_exp []] -[visit_exp `globaltype*#21`] -[visit_id globaltype*#21] [visit_exp []] -[visit_exp `memtype*#35`] -[visit_id memtype*#35] [visit_exp []] -[visit_exp `tabletype*#28`] -[visit_id tabletype*#28] [visit_exp []] -[visit_exp `deftype*#78`] -[visit_id deftype*#78] [visit_exp []] -[visit_exp `datatype*#20`] -[visit_id datatype*#20] [visit_exp []] -[visit_exp `elemtype*#20`] -[visit_id elemtype*#20] [visit_exp []] -[visit_exp `localtype*#23`] -[visit_id localtype*#23] [visit_exp []] -[visit_exp `resulttype*#31`] -[visit_id resulttype*#31] [visit_exp []] -[visit_exp `resulttype?#28`] -[visit_id resulttype?#28] [visit_exp ?()] -[visit_exp `funcidx*#57`] -[visit_id funcidx*#57] [visit_exp []] [visit_exp rt'] [visit_id rt'] not free @@ -50973,153 +42903,113 @@ DecD default_(valtype : valtype) : val? [visit_exp rt] [visit_id rt] not free [check_dims] -[check_dims] a s tagaddr#3 taginst taginst*#4 tagtype#177 tagtype#179 +[check_dims] a s taginst [visit_exp s] [visit_id s] -[visit_exp `TAG`_externaddr{tagaddr#3}(a)] -[visit_exp tagaddr#3] -[visit_id tagaddr#3] +[visit_exp `TAG`_externaddr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `TAG`_externtype{tagtype#177}(taginst.`TYPE`_taginst{tagtype#179})] -[visit_exp tagtype#177] -[visit_id tagtype#177] -[visit_exp (taginst.`TYPE`_taginst{tagtype#179})] -[visit_exp taginst.`TYPE`_taginst{tagtype#179}] +[visit_exp `TAG`_externtype(taginst.`TYPE`_taginst)] +[visit_exp (taginst.`TYPE`_taginst)] +[visit_exp taginst.`TYPE`_taginst] [visit_exp taginst] [visit_id taginst] -[visit_exp tagtype#179] -[visit_id tagtype#179] -[visit_exp (s.`TAGS`_store{`taginst*#4`}[a] = taginst)] -[visit_exp s.`TAGS`_store{`taginst*#4`}[a]] -[visit_exp s.`TAGS`_store{`taginst*#4`}] +[visit_exp (s.`TAGS`_store[a] = taginst)] +[visit_exp s.`TAGS`_store[a]] +[visit_exp s.`TAGS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `taginst*#4`] -[visit_id taginst*#4] [visit_exp a] [visit_id a] not free [visit_exp taginst] [visit_id taginst] not free -[check_dims] a globaladdr#3 globalinst globalinst*#5 globaltype#2085 globaltype#2087 s +[check_dims] a globalinst s [visit_exp s] [visit_id s] -[visit_exp `GLOBAL`_externaddr{globaladdr#3}(a)] -[visit_exp globaladdr#3] -[visit_id globaladdr#3] +[visit_exp `GLOBAL`_externaddr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `GLOBAL`_externtype{globaltype#2085}(globalinst.`TYPE`_globalinst{globaltype#2087})] -[visit_exp globaltype#2085] -[visit_id globaltype#2085] -[visit_exp (globalinst.`TYPE`_globalinst{globaltype#2087})] -[visit_exp globalinst.`TYPE`_globalinst{globaltype#2087}] +[visit_exp `GLOBAL`_externtype(globalinst.`TYPE`_globalinst)] +[visit_exp (globalinst.`TYPE`_globalinst)] +[visit_exp globalinst.`TYPE`_globalinst] [visit_exp globalinst] [visit_id globalinst] -[visit_exp globaltype#2087] -[visit_id globaltype#2087] -[visit_exp (s.`GLOBALS`_store{`globalinst*#5`}[a] = globalinst)] -[visit_exp s.`GLOBALS`_store{`globalinst*#5`}[a]] -[visit_exp s.`GLOBALS`_store{`globalinst*#5`}] +[visit_exp (s.`GLOBALS`_store[a] = globalinst)] +[visit_exp s.`GLOBALS`_store[a]] +[visit_exp s.`GLOBALS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `globalinst*#5`] -[visit_id globalinst*#5] [visit_exp a] [visit_id a] not free [visit_exp globalinst] [visit_id globalinst] not free -[check_dims] a memaddr#3 meminst meminst*#6 memtype#527 memtype#529 s +[check_dims] a meminst s [visit_exp s] [visit_id s] -[visit_exp `MEM`_externaddr{memaddr#3}(a)] -[visit_exp memaddr#3] -[visit_id memaddr#3] +[visit_exp `MEM`_externaddr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `MEM`_externtype{memtype#527}(meminst.`TYPE`_meminst{memtype#529})] -[visit_exp memtype#527] -[visit_id memtype#527] -[visit_exp (meminst.`TYPE`_meminst{memtype#529})] -[visit_exp meminst.`TYPE`_meminst{memtype#529}] +[visit_exp `MEM`_externtype(meminst.`TYPE`_meminst)] +[visit_exp (meminst.`TYPE`_meminst)] +[visit_exp meminst.`TYPE`_meminst] [visit_exp meminst] [visit_id meminst] -[visit_exp memtype#529] -[visit_id memtype#529] -[visit_exp (s.`MEMS`_store{`meminst*#6`}[a] = meminst)] -[visit_exp s.`MEMS`_store{`meminst*#6`}[a]] -[visit_exp s.`MEMS`_store{`meminst*#6`}] +[visit_exp (s.`MEMS`_store[a] = meminst)] +[visit_exp s.`MEMS`_store[a]] +[visit_exp s.`MEMS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `meminst*#6`] -[visit_id meminst*#6] [visit_exp a] [visit_id a] not free [visit_exp meminst] [visit_id meminst] not free -[check_dims] a s tableaddr#3 tableinst tableinst*#6 tabletype#877 tabletype#879 +[check_dims] a s tableinst [visit_exp s] [visit_id s] -[visit_exp `TABLE`_externaddr{tableaddr#3}(a)] -[visit_exp tableaddr#3] -[visit_id tableaddr#3] +[visit_exp `TABLE`_externaddr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `TABLE`_externtype{tabletype#877}(tableinst.`TYPE`_tableinst{tabletype#879})] -[visit_exp tabletype#877] -[visit_id tabletype#877] -[visit_exp (tableinst.`TYPE`_tableinst{tabletype#879})] -[visit_exp tableinst.`TYPE`_tableinst{tabletype#879}] +[visit_exp `TABLE`_externtype(tableinst.`TYPE`_tableinst)] +[visit_exp (tableinst.`TYPE`_tableinst)] +[visit_exp tableinst.`TYPE`_tableinst] [visit_exp tableinst] [visit_id tableinst] -[visit_exp tabletype#879] -[visit_id tabletype#879] -[visit_exp (s.`TABLES`_store{`tableinst*#6`}[a] = tableinst)] -[visit_exp s.`TABLES`_store{`tableinst*#6`}[a]] -[visit_exp s.`TABLES`_store{`tableinst*#6`}] +[visit_exp (s.`TABLES`_store[a] = tableinst)] +[visit_exp s.`TABLES`_store[a]] +[visit_exp s.`TABLES`_store] [visit_exp s] [visit_id s] not free -[visit_exp `tableinst*#6`] -[visit_id tableinst*#6] [visit_exp a] [visit_id a] not free [visit_exp tableinst] [visit_id tableinst] not free -[check_dims] a deftype#4 funcaddr#5 funcinst funcinst*#5 s typeuse#33 +[check_dims] a funcinst s [visit_exp s] [visit_id s] -[visit_exp `FUNC`_externaddr{funcaddr#5}(a)] -[visit_exp funcaddr#5] -[visit_id funcaddr#5] +[visit_exp `FUNC`_externaddr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `FUNC`_externtype{typeuse#33}((funcinst.`TYPE`_funcinst{deftype#4} : deftype <: typeuse))] -[visit_exp typeuse#33] -[visit_id typeuse#33] -[visit_exp ((funcinst.`TYPE`_funcinst{deftype#4} : deftype <: typeuse))] -[visit_exp (funcinst.`TYPE`_funcinst{deftype#4} : deftype <: typeuse)] -[visit_exp funcinst.`TYPE`_funcinst{deftype#4}] +[visit_exp `FUNC`_externtype((funcinst.`TYPE`_funcinst : deftype <: typeuse))] +[visit_exp ((funcinst.`TYPE`_funcinst : deftype <: typeuse))] +[visit_exp (funcinst.`TYPE`_funcinst : deftype <: typeuse)] +[visit_exp funcinst.`TYPE`_funcinst] [visit_exp funcinst] [visit_id funcinst] -[visit_exp deftype#4] -[visit_id deftype#4] -[visit_exp (s.`FUNCS`_store{`funcinst*#5`}[a] = funcinst)] -[visit_exp s.`FUNCS`_store{`funcinst*#5`}[a]] -[visit_exp s.`FUNCS`_store{`funcinst*#5`}] +[visit_exp (s.`FUNCS`_store[a] = funcinst)] +[visit_exp s.`FUNCS`_store[a]] +[visit_exp s.`FUNCS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `funcinst*#5`] -[visit_id funcinst*#5] [visit_exp a] [visit_id a] not free [visit_exp funcinst] [visit_id funcinst] not free -[check_dims] datatype*#21 deftype*#79 deftype*#80 elemtype*#21 externaddr funcidx*#58 globaltype*#22 localtype*#24 memtype*#36 resulttype*#32 resulttype?#29 s subtype*#20 tabletype*#29 tagtype*#21 xt xt' +[check_dims] externaddr s xt xt' [visit_exp s] [visit_id s] [visit_exp externaddr] @@ -51133,46 +43023,20 @@ DecD default_(valtype : valtype) : val? [visit_id externaddr] not free [visit_exp xt'] [visit_id xt'] -[visit_exp ({`TYPES`{`deftype*#79`} [], `RECS`{`subtype*#20`} [], `TAGS`{`tagtype*#21`} [], `GLOBALS`{`globaltype*#22`} [], `MEMS`{`memtype*#36`} [], `TABLES`{`tabletype*#29`} [], `FUNCS`{`deftype*#80`} [], `DATAS`{`datatype*#21`} [], `ELEMS`{`elemtype*#21`} [], `LOCALS`{`localtype*#24`} [], `LABELS`{`resulttype*#32`} [], `RETURN`{`resulttype?#29`} ?(), `REFS`{`funcidx*#58`} []}, xt', xt)] -[visit_exp {`TYPES`{`deftype*#79`} [], `RECS`{`subtype*#20`} [], `TAGS`{`tagtype*#21`} [], `GLOBALS`{`globaltype*#22`} [], `MEMS`{`memtype*#36`} [], `TABLES`{`tabletype*#29`} [], `FUNCS`{`deftype*#80`} [], `DATAS`{`datatype*#21`} [], `ELEMS`{`elemtype*#21`} [], `LOCALS`{`localtype*#24`} [], `LABELS`{`resulttype*#32`} [], `RETURN`{`resulttype?#29`} ?(), `REFS`{`funcidx*#58`} []}] -[visit_exp `deftype*#79`] -[visit_id deftype*#79] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, xt', xt)] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#20`] -[visit_id subtype*#20] [visit_exp []] -[visit_exp `tagtype*#21`] -[visit_id tagtype*#21] [visit_exp []] -[visit_exp `globaltype*#22`] -[visit_id globaltype*#22] [visit_exp []] -[visit_exp `memtype*#36`] -[visit_id memtype*#36] [visit_exp []] -[visit_exp `tabletype*#29`] -[visit_id tabletype*#29] [visit_exp []] -[visit_exp `deftype*#80`] -[visit_id deftype*#80] [visit_exp []] -[visit_exp `datatype*#21`] -[visit_id datatype*#21] [visit_exp []] -[visit_exp `elemtype*#21`] -[visit_id elemtype*#21] [visit_exp []] -[visit_exp `localtype*#24`] -[visit_id localtype*#24] [visit_exp []] -[visit_exp `resulttype*#32`] -[visit_id resulttype*#32] [visit_exp []] -[visit_exp `resulttype?#29`] -[visit_id resulttype?#29] [visit_exp ?()] -[visit_exp `funcidx*#58`] -[visit_id funcidx*#58] [visit_exp []] [visit_exp xt'] [visit_id xt'] not free @@ -51198,7 +43062,7 @@ DecD inst_memtype(moduleinst : moduleinst, memtype : memtype) : memtype DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_id moduleinst] not free [visit_id tabletype] not free -[check_dims] deftype*#81 dt moduleinst t +[check_dims] dt moduleinst t [visit_exp moduleinst] [visit_id moduleinst] [visit_exp t] @@ -51216,7 +43080,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `dt*`] [visit_id dt*] no dims [visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#81`})] +[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst)] [visit_exp dt*{dt <- `dt*`}] [scope_enter dt] [visit_exp dt] @@ -51226,16 +43090,14 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `dt*`] [visit_id dt*] not free [visit_id dt*] no dims -[visit_exp moduleinst.`TYPES`_moduleinst{`deftype*#81`}] +[visit_exp moduleinst.`TYPES`_moduleinst] [visit_exp moduleinst] [visit_id moduleinst] not free -[visit_exp `deftype*#81`] -[visit_id deftype*#81] => ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_valtype{moduleinst : moduleinst, t : valtype, `dt*` : deftype*, `deftype*#81` : deftype*}(moduleinst, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#81`}) -[check_dims] deftype*#82 dt moduleinst rt + def $inst_valtype{moduleinst : moduleinst, t : valtype, `dt*` : deftype*}(moduleinst, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) +[check_dims] dt moduleinst rt [visit_exp moduleinst] [visit_id moduleinst] [visit_exp rt] @@ -51253,7 +43115,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `dt*`] [visit_id dt*] no dims [visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#82`})] +[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst)] [visit_exp dt*{dt <- `dt*`}] [scope_enter dt] [visit_exp dt] @@ -51263,16 +43125,14 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `dt*`] [visit_id dt*] not free [visit_id dt*] no dims -[visit_exp moduleinst.`TYPES`_moduleinst{`deftype*#82`}] +[visit_exp moduleinst.`TYPES`_moduleinst] [visit_exp moduleinst] [visit_id moduleinst] not free -[visit_exp `deftype*#82`] -[visit_id deftype*#82] => ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_reftype{moduleinst : moduleinst, rt : reftype, `dt*` : deftype*, `deftype*#82` : deftype*}(moduleinst, rt) = $subst_all_reftype(rt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#82`}) -[check_dims] deftype*#83 dt gt moduleinst + def $inst_reftype{moduleinst : moduleinst, rt : reftype, `dt*` : deftype*}(moduleinst, rt) = $subst_all_reftype(rt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) +[check_dims] dt gt moduleinst [visit_exp moduleinst] [visit_id moduleinst] [visit_exp gt] @@ -51290,7 +43150,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `dt*`] [visit_id dt*] no dims [visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#83`})] +[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst)] [visit_exp dt*{dt <- `dt*`}] [scope_enter dt] [visit_exp dt] @@ -51300,16 +43160,14 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `dt*`] [visit_id dt*] not free [visit_id dt*] no dims -[visit_exp moduleinst.`TYPES`_moduleinst{`deftype*#83`}] +[visit_exp moduleinst.`TYPES`_moduleinst] [visit_exp moduleinst] [visit_id moduleinst] not free -[visit_exp `deftype*#83`] -[visit_id deftype*#83] => ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_globaltype{moduleinst : moduleinst, gt : globaltype, `dt*` : deftype*, `deftype*#83` : deftype*}(moduleinst, gt) = $subst_all_globaltype(gt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#83`}) -[check_dims] deftype*#84 dt moduleinst mt + def $inst_globaltype{moduleinst : moduleinst, gt : globaltype, `dt*` : deftype*}(moduleinst, gt) = $subst_all_globaltype(gt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) +[check_dims] dt moduleinst mt [visit_exp moduleinst] [visit_id moduleinst] [visit_exp mt] @@ -51327,7 +43185,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `dt*`] [visit_id dt*] no dims [visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#84`})] +[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst)] [visit_exp dt*{dt <- `dt*`}] [scope_enter dt] [visit_exp dt] @@ -51337,16 +43195,14 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `dt*`] [visit_id dt*] not free [visit_id dt*] no dims -[visit_exp moduleinst.`TYPES`_moduleinst{`deftype*#84`}] +[visit_exp moduleinst.`TYPES`_moduleinst] [visit_exp moduleinst] [visit_id moduleinst] not free -[visit_exp `deftype*#84`] -[visit_id deftype*#84] => ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_memtype{moduleinst : moduleinst, mt : memtype, `dt*` : deftype*, `deftype*#84` : deftype*}(moduleinst, mt) = $subst_all_memtype(mt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#84`}) -[check_dims] deftype*#85 dt moduleinst tt + def $inst_memtype{moduleinst : moduleinst, mt : memtype, `dt*` : deftype*}(moduleinst, mt) = $subst_all_memtype(mt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) +[check_dims] dt moduleinst tt [visit_exp moduleinst] [visit_id moduleinst] [visit_exp tt] @@ -51364,7 +43220,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `dt*`] [visit_id dt*] no dims [visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#85`})] +[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst)] [visit_exp dt*{dt <- `dt*`}] [scope_enter dt] [visit_exp dt] @@ -51374,25 +43230,19 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `dt*`] [visit_id dt*] not free [visit_id dt*] no dims -[visit_exp moduleinst.`TYPES`_moduleinst{`deftype*#85`}] +[visit_exp moduleinst.`TYPES`_moduleinst] [visit_exp moduleinst] [visit_id moduleinst] not free -[visit_exp `deftype*#85`] -[visit_id deftype*#85] => ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_tabletype{moduleinst : moduleinst, tt : tabletype, `dt*` : deftype*, `deftype*#85` : deftype*}(moduleinst, tt) = $subst_all_tabletype(tt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#85`}) + def $inst_tabletype{moduleinst : moduleinst, tt : tabletype, `dt*` : deftype*}(moduleinst, tt) = $subst_all_tabletype(tt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) [check_dims] [check_dims] [check_dims] [check_dims] -[check_dims] instr instr' instr*#27 instr*#39 state#11 state#23 z -[visit_exp `%;%`_config{state#11, `instr*#27`}(z, instr*{instr <- `instr*`})] -[visit_exp state#11] -[visit_id state#11] -[visit_exp `instr*#27`] -[visit_id instr*#27] +[check_dims] instr instr' z +[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] [visit_exp (z, instr*{instr <- `instr*`})] [visit_exp z] [visit_id z] @@ -51405,11 +43255,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp `%;%`_config{state#23, `instr*#39`}(z, instr'*{instr' <- `instr'*`})] -[visit_exp state#23] -[visit_id state#23] -[visit_exp `instr*#39`] -[visit_id instr*#39] +[visit_exp `%;%`_config(z, instr'*{instr' <- `instr'*`})] [visit_exp (z, instr'*{instr' <- `instr'*`})] [visit_exp z] [visit_id z] not free @@ -51441,12 +43287,8 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr'*`] [visit_id instr'*] not free [visit_id instr'*] no dims -[check_dims] instr instr' instr*#51 instr*#63 instr*#75 state#35 state#47 state#59 z -[visit_exp `%;%`_config{state#35, `instr*#51`}(z, instr*{instr <- `instr*`})] -[visit_exp state#35] -[visit_id state#35] -[visit_exp `instr*#51`] -[visit_id instr*#51] +[check_dims] instr instr' z +[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] [visit_exp (z, instr*{instr <- `instr*`})] [visit_exp z] [visit_id z] @@ -51459,11 +43301,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp `%;%`_config{state#47, `instr*#63`}(z, instr'*{instr' <- `instr'*`})] -[visit_exp state#47] -[visit_id state#47] -[visit_exp `instr*#63`] -[visit_id instr*#63] +[visit_exp `%;%`_config(z, instr'*{instr' <- `instr'*`})] [visit_exp (z, instr'*{instr' <- `instr'*`})] [visit_exp z] [visit_id z] not free @@ -51476,12 +43314,8 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr'*`] [visit_id instr'*] no dims [visit_id instr'*] -[visit_exp (`%;%`_config{state#59, `instr*#75`}(z, instr*{instr <- `instr*`}), instr'*{instr' <- `instr'*`})] -[visit_exp `%;%`_config{state#59, `instr*#75`}(z, instr*{instr <- `instr*`})] -[visit_exp state#59] -[visit_id state#59] -[visit_exp `instr*#75`] -[visit_id instr*#75] +[visit_exp (`%;%`_config(z, instr*{instr <- `instr*`}), instr'*{instr' <- `instr'*`})] +[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] [visit_exp (z, instr*{instr <- `instr*`})] [visit_exp z] [visit_id z] not free @@ -51503,12 +43337,8 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr'*`] [visit_id instr'*] not free [visit_id instr'*] no dims -[check_dims] instr instr*#87 instr*#99 state#71 state#83 z -[visit_exp `%;%`_config{state#71, `instr*#87`}(z, instr*{instr <- `instr*`})] -[visit_exp state#71] -[visit_id state#71] -[visit_exp `instr*#87`] -[visit_id instr*#87] +[check_dims] instr z +[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] [visit_exp (z, instr*{instr <- `instr*`})] [visit_exp z] [visit_id z] @@ -51521,11 +43351,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp `%;%`_config{state#83, `instr*#99`}(z, instr*{instr <- `instr*`})] -[visit_exp state#83] -[visit_id state#83] -[visit_exp `instr*#99`] -[visit_id instr*#99] +[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] [visit_exp (z, instr*{instr <- `instr*`})] [visit_exp z] [visit_id z] not free @@ -51538,12 +43364,8 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[check_dims] instr instr' instr'' instr*#111 instr*#123 instr*#135 instr*#147 instr*#159 instr*#171 state#107 state#119 state#131 state#143 state#155 state#95 z z' z'' -[visit_exp `%;%`_config{state#95, `instr*#111`}(z, instr*{instr <- `instr*`})] -[visit_exp state#95] -[visit_id state#95] -[visit_exp `instr*#111`] -[visit_id instr*#111] +[check_dims] instr instr' instr'' z z' z'' +[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] [visit_exp (z, instr*{instr <- `instr*`})] [visit_exp z] [visit_id z] @@ -51556,11 +43378,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp `%;%`_config{state#107, `instr*#123`}(z'', instr''*{instr'' <- `instr''*`})] -[visit_exp state#107] -[visit_id state#107] -[visit_exp `instr*#123`] -[visit_id instr*#123] +[visit_exp `%;%`_config(z'', instr''*{instr'' <- `instr''*`})] [visit_exp (z'', instr''*{instr'' <- `instr''*`})] [visit_exp z''] [visit_id z''] @@ -51573,12 +43391,8 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr''*`] [visit_id instr''*] no dims [visit_id instr''*] -[visit_exp (`%;%`_config{state#119, `instr*#135`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#131, `instr*#147`}(z', instr'*{instr' <- `instr'*`}))] -[visit_exp `%;%`_config{state#119, `instr*#135`}(z, instr*{instr <- `instr*`})] -[visit_exp state#119] -[visit_id state#119] -[visit_exp `instr*#135`] -[visit_id instr*#135] +[visit_exp (`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', instr'*{instr' <- `instr'*`}))] +[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] [visit_exp (z, instr*{instr <- `instr*`})] [visit_exp z] [visit_id z] not free @@ -51591,11 +43405,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp `%;%`_config{state#131, `instr*#147`}(z', instr'*{instr' <- `instr'*`})] -[visit_exp state#131] -[visit_id state#131] -[visit_exp `instr*#147`] -[visit_id instr*#147] +[visit_exp `%;%`_config(z', instr'*{instr' <- `instr'*`})] [visit_exp (z', instr'*{instr' <- `instr'*`})] [visit_exp z'] [visit_id z'] @@ -51608,12 +43418,8 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr'*`] [visit_id instr'*] no dims [visit_id instr'*] -[visit_exp (`%;%`_config{state#143, `instr*#159`}(z', instr'*{instr' <- `instr'*`}), `%;%`_config{state#155, `instr*#171`}(z'', instr''*{instr'' <- `instr''*`}))] -[visit_exp `%;%`_config{state#143, `instr*#159`}(z', instr'*{instr' <- `instr'*`})] -[visit_exp state#143] -[visit_id state#143] -[visit_exp `instr*#159`] -[visit_id instr*#159] +[visit_exp (`%;%`_config(z', instr'*{instr' <- `instr'*`}), `%;%`_config(z'', instr''*{instr'' <- `instr''*`}))] +[visit_exp `%;%`_config(z', instr'*{instr' <- `instr'*`})] [visit_exp (z', instr'*{instr' <- `instr'*`})] [visit_exp z'] [visit_id z'] not free @@ -51626,11 +43432,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr'*`] [visit_id instr'*] not free [visit_id instr'*] no dims -[visit_exp `%;%`_config{state#155, `instr*#171`}(z'', instr''*{instr'' <- `instr''*`})] -[visit_exp state#155] -[visit_id state#155] -[visit_exp `instr*#171`] -[visit_id instr*#171] +[visit_exp `%;%`_config(z'', instr''*{instr'' <- `instr''*`})] [visit_exp (z'', instr''*{instr'' <- `instr''*`})] [visit_exp z''] [visit_id z''] not free @@ -51643,12 +43445,8 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr''*`] [visit_id instr''*] not free [visit_id instr''*] no dims -[check_dims] instr instr' instr*#183 instr*#195 instr*#207 instr*#219 instr_1 state#167 state#179 state#191 state#203 val z z' -[visit_exp `%;%`_config{state#167, `instr*#183`}(z, (val : val <: instr)*{val <- `val*`} ++ instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`})] -[visit_exp state#167] -[visit_id state#167] -[visit_exp `instr*#183`] -[visit_id instr*#183] +[check_dims] instr instr' instr_1 val z z' +[visit_exp `%;%`_config(z, (val : val <: instr)*{val <- `val*`} ++ instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`})] [visit_exp (z, (val : val <: instr)*{val <- `val*`} ++ instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`})] [visit_exp z] [visit_id z] @@ -51682,11 +43480,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr_1*`] [visit_id instr_1*] no dims [visit_id instr_1*] -[visit_exp `%;%`_config{state#179, `instr*#195`}(z', (val : val <: instr)*{val <- `val*`} ++ instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`})] -[visit_exp state#179] -[visit_id state#179] -[visit_exp `instr*#195`] -[visit_id instr*#195] +[visit_exp `%;%`_config(z', (val : val <: instr)*{val <- `val*`} ++ instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`})] [visit_exp (z', (val : val <: instr)*{val <- `val*`} ++ instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`})] [visit_exp z'] [visit_id z'] @@ -51720,12 +43514,8 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr_1*`] [visit_id instr_1*] not free [visit_id instr_1*] no dims -[visit_exp (`%;%`_config{state#191, `instr*#207`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#203, `instr*#219`}(z', instr'*{instr' <- `instr'*`}))] -[visit_exp `%;%`_config{state#191, `instr*#207`}(z, instr*{instr <- `instr*`})] -[visit_exp state#191] -[visit_id state#191] -[visit_exp `instr*#207`] -[visit_id instr*#207] +[visit_exp (`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', instr'*{instr' <- `instr'*`}))] +[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] [visit_exp (z, instr*{instr <- `instr*`})] [visit_exp z] [visit_id z] not free @@ -51738,11 +43528,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp `%;%`_config{state#203, `instr*#219`}(z', instr'*{instr' <- `instr'*`})] -[visit_exp state#203] -[visit_id state#203] -[visit_exp `instr*#219`] -[visit_id instr*#219] +[visit_exp `%;%`_config(z', instr'*{instr' <- `instr'*`})] [visit_exp (z', instr'*{instr' <- `instr'*`})] [visit_exp z'] [visit_id z'] not free @@ -51778,21 +43564,13 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_id instr_1*] not free [visit_id instr_1*] no dims [visit_exp []] -[check_dims] instr instr' instr*#231 instr*#233 instr*#246 instr*#248 instr*#261 instr*#273 instr_0 n n#1127 n#1129 state#215 state#227 state#239 state#251 z z' -[visit_exp `%;%`_config{state#215, `instr*#231`}(z, [`LABEL_%{%}%`_instr{n#1127, `instr*#233`}(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})])] -[visit_exp state#215] -[visit_id state#215] -[visit_exp `instr*#231`] -[visit_id instr*#231] -[visit_exp (z, [`LABEL_%{%}%`_instr{n#1127, `instr*#233`}(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})])] +[check_dims] instr instr' instr_0 n z z' +[visit_exp `%;%`_config(z, [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})])] +[visit_exp (z, [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})])] [visit_exp z] [visit_id z] -[visit_exp [`LABEL_%{%}%`_instr{n#1127, `instr*#233`}(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr{n#1127, `instr*#233`}(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})] -[visit_exp n#1127] -[visit_id n#1127] -[visit_exp `instr*#233`] -[visit_id instr*#233] +[visit_exp [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})] [visit_exp (n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})] [visit_exp n] [visit_id n] @@ -51814,20 +43592,12 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp `%;%`_config{state#227, `instr*#246`}(z', [`LABEL_%{%}%`_instr{n#1129, `instr*#248`}(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})])] -[visit_exp state#227] -[visit_id state#227] -[visit_exp `instr*#246`] -[visit_id instr*#246] -[visit_exp (z', [`LABEL_%{%}%`_instr{n#1129, `instr*#248`}(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})])] +[visit_exp `%;%`_config(z', [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})])] +[visit_exp (z', [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})])] [visit_exp z'] [visit_id z'] -[visit_exp [`LABEL_%{%}%`_instr{n#1129, `instr*#248`}(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})]] -[visit_exp `LABEL_%{%}%`_instr{n#1129, `instr*#248`}(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})] -[visit_exp n#1129] -[visit_id n#1129] -[visit_exp `instr*#248`] -[visit_id instr*#248] +[visit_exp [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})]] +[visit_exp `LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})] [visit_exp (n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})] [visit_exp n] [visit_id n] not free @@ -51849,12 +43619,8 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr'*`] [visit_id instr'*] no dims [visit_id instr'*] -[visit_exp (`%;%`_config{state#239, `instr*#261`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#251, `instr*#273`}(z', instr'*{instr' <- `instr'*`}))] -[visit_exp `%;%`_config{state#239, `instr*#261`}(z, instr*{instr <- `instr*`})] -[visit_exp state#239] -[visit_id state#239] -[visit_exp `instr*#261`] -[visit_id instr*#261] +[visit_exp (`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', instr'*{instr' <- `instr'*`}))] +[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] [visit_exp (z, instr*{instr <- `instr*`})] [visit_exp z] [visit_id z] not free @@ -51867,11 +43633,7 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp `%;%`_config{state#251, `instr*#273`}(z', instr'*{instr' <- `instr'*`})] -[visit_exp state#251] -[visit_id state#251] -[visit_exp `instr*#273`] -[visit_id instr*#273] +[visit_exp `%;%`_config(z', instr'*{instr' <- `instr'*`})] [visit_exp (z', instr'*{instr' <- `instr'*`})] [visit_exp z'] [visit_id z'] not free @@ -51884,31 +43646,17 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr'*`] [visit_id instr'*] not free [visit_id instr'*] no dims -[check_dims] f f' f'' frame#725 frame#727 frame#739 frame#741 frame#753 frame#765 instr instr' instr*#285 instr*#287 instr*#299 instr*#301 instr*#313 instr*#325 n n#1131 n#1133 s s' state#263 state#275 state#287 state#299 store#725 store#737 store#749 store#761 -[visit_exp `%;%`_config{state#263, `instr*#285`}(`%;%`_state{store#725, frame#725}(s, f), [`FRAME_%{%}%`_instr{n#1131, frame#727, `instr*#287`}(n, f', instr*{instr <- `instr*`})])] -[visit_exp state#263] -[visit_id state#263] -[visit_exp `instr*#285`] -[visit_id instr*#285] -[visit_exp (`%;%`_state{store#725, frame#725}(s, f), [`FRAME_%{%}%`_instr{n#1131, frame#727, `instr*#287`}(n, f', instr*{instr <- `instr*`})])] -[visit_exp `%;%`_state{store#725, frame#725}(s, f)] -[visit_exp store#725] -[visit_id store#725] -[visit_exp frame#725] -[visit_id frame#725] +[check_dims] f f' f'' instr instr' n s s' +[visit_exp `%;%`_config(`%;%`_state(s, f), [`FRAME_%{%}%`_instr(n, f', instr*{instr <- `instr*`})])] +[visit_exp (`%;%`_state(s, f), [`FRAME_%{%}%`_instr(n, f', instr*{instr <- `instr*`})])] +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp [`FRAME_%{%}%`_instr{n#1131, frame#727, `instr*#287`}(n, f', instr*{instr <- `instr*`})]] -[visit_exp `FRAME_%{%}%`_instr{n#1131, frame#727, `instr*#287`}(n, f', instr*{instr <- `instr*`})] -[visit_exp n#1131] -[visit_id n#1131] -[visit_exp frame#727] -[visit_id frame#727] -[visit_exp `instr*#287`] -[visit_id instr*#287] +[visit_exp [`FRAME_%{%}%`_instr(n, f', instr*{instr <- `instr*`})]] +[visit_exp `FRAME_%{%}%`_instr(n, f', instr*{instr <- `instr*`})] [visit_exp (n, f', instr*{instr <- `instr*`})] [visit_exp n] [visit_id n] @@ -51923,30 +43671,16 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp `%;%`_config{state#275, `instr*#299`}(`%;%`_state{store#737, frame#739}(s', f), [`FRAME_%{%}%`_instr{n#1133, frame#741, `instr*#301`}(n, f'', instr'*{instr' <- `instr'*`})])] -[visit_exp state#275] -[visit_id state#275] -[visit_exp `instr*#299`] -[visit_id instr*#299] -[visit_exp (`%;%`_state{store#737, frame#739}(s', f), [`FRAME_%{%}%`_instr{n#1133, frame#741, `instr*#301`}(n, f'', instr'*{instr' <- `instr'*`})])] -[visit_exp `%;%`_state{store#737, frame#739}(s', f)] -[visit_exp store#737] -[visit_id store#737] -[visit_exp frame#739] -[visit_id frame#739] +[visit_exp `%;%`_config(`%;%`_state(s', f), [`FRAME_%{%}%`_instr(n, f'', instr'*{instr' <- `instr'*`})])] +[visit_exp (`%;%`_state(s', f), [`FRAME_%{%}%`_instr(n, f'', instr'*{instr' <- `instr'*`})])] +[visit_exp `%;%`_state(s', f)] [visit_exp (s', f)] [visit_exp s'] [visit_id s'] [visit_exp f] [visit_id f] not free -[visit_exp [`FRAME_%{%}%`_instr{n#1133, frame#741, `instr*#301`}(n, f'', instr'*{instr' <- `instr'*`})]] -[visit_exp `FRAME_%{%}%`_instr{n#1133, frame#741, `instr*#301`}(n, f'', instr'*{instr' <- `instr'*`})] -[visit_exp n#1133] -[visit_id n#1133] -[visit_exp frame#741] -[visit_id frame#741] -[visit_exp `instr*#301`] -[visit_id instr*#301] +[visit_exp [`FRAME_%{%}%`_instr(n, f'', instr'*{instr' <- `instr'*`})]] +[visit_exp `FRAME_%{%}%`_instr(n, f'', instr'*{instr' <- `instr'*`})] [visit_exp (n, f'', instr'*{instr' <- `instr'*`})] [visit_exp n] [visit_id n] not free @@ -51961,18 +43695,10 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr'*`] [visit_id instr'*] no dims [visit_id instr'*] -[visit_exp (`%;%`_config{state#287, `instr*#313`}(`%;%`_state{store#749, frame#753}(s, f'), instr*{instr <- `instr*`}), `%;%`_config{state#299, `instr*#325`}(`%;%`_state{store#761, frame#765}(s', f''), instr'*{instr' <- `instr'*`}))] -[visit_exp `%;%`_config{state#287, `instr*#313`}(`%;%`_state{store#749, frame#753}(s, f'), instr*{instr <- `instr*`})] -[visit_exp state#287] -[visit_id state#287] -[visit_exp `instr*#313`] -[visit_id instr*#313] -[visit_exp (`%;%`_state{store#749, frame#753}(s, f'), instr*{instr <- `instr*`})] -[visit_exp `%;%`_state{store#749, frame#753}(s, f')] -[visit_exp store#749] -[visit_id store#749] -[visit_exp frame#753] -[visit_id frame#753] +[visit_exp (`%;%`_config(`%;%`_state(s, f'), instr*{instr <- `instr*`}), `%;%`_config(`%;%`_state(s', f''), instr'*{instr' <- `instr'*`}))] +[visit_exp `%;%`_config(`%;%`_state(s, f'), instr*{instr <- `instr*`})] +[visit_exp (`%;%`_state(s, f'), instr*{instr <- `instr*`})] +[visit_exp `%;%`_state(s, f')] [visit_exp (s, f')] [visit_exp s] [visit_id s] not free @@ -51987,17 +43713,9 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp `%;%`_config{state#299, `instr*#325`}(`%;%`_state{store#761, frame#765}(s', f''), instr'*{instr' <- `instr'*`})] -[visit_exp state#299] -[visit_id state#299] -[visit_exp `instr*#325`] -[visit_id instr*#325] -[visit_exp (`%;%`_state{store#761, frame#765}(s', f''), instr'*{instr' <- `instr'*`})] -[visit_exp `%;%`_state{store#761, frame#765}(s', f'')] -[visit_exp store#761] -[visit_id store#761] -[visit_exp frame#765] -[visit_id frame#765] +[visit_exp `%;%`_config(`%;%`_state(s', f''), instr'*{instr' <- `instr'*`})] +[visit_exp (`%;%`_state(s', f''), instr'*{instr' <- `instr'*`})] +[visit_exp `%;%`_state(s', f'')] [visit_exp (s', f'')] [visit_exp s'] [visit_id s'] not free @@ -52032,25 +43750,21 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp `DROP`_instr] [visit_exp ()] [visit_exp []] -[check_dims] c i#31733 numtype#59 t val_1 val_2 valtype*?#7 -[visit_exp [(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr{numtype#59}(`I32`_numtype, c) `SELECT`_instr{`valtype*?#7`}(t*{t <- `t*`}?{`t*` <- `t*?`})]] +[check_dims] c t val_1 val_2 +[visit_exp [(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr(`I32`_numtype, c) `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})]] [visit_exp (val_1 : val <: instr)] [visit_exp val_1] [visit_id val_1] [visit_exp (val_2 : val <: instr)] [visit_exp val_2] [visit_id val_2] -[visit_exp `CONST`_instr{numtype#59}(`I32`_numtype, c)] -[visit_exp numtype#59] -[visit_id numtype#59] +[visit_exp `CONST`_instr(`I32`_numtype, c)] [visit_exp (`I32`_numtype, c)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp `SELECT`_instr{`valtype*?#7`}(t*{t <- `t*`}?{`t*` <- `t*?`})] -[visit_exp `valtype*?#7`] -[visit_id valtype*?#7] +[visit_exp `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})] [visit_exp (t*{t <- `t*`}?{`t*` <- `t*?`})] [visit_exp t*{t <- `t*`}?{`t*` <- `t*?`}] [scope_enter t*] @@ -52073,33 +43787,27 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp (val_1 : val <: instr)] [visit_exp val_1] [visit_id val_1] not free -[visit_exp (c!`%`_num_{i#31733}.0 =/= 0)] -[visit_exp c!`%`_num_{i#31733}.0] -[visit_exp c!`%`_num_{i#31733}] +[visit_exp (c!`%`_num_.0 =/= 0)] +[visit_exp c!`%`_num_.0] +[visit_exp c!`%`_num_] [visit_exp c] [visit_id c] not free -[visit_exp i#31733] -[visit_id i#31733] [visit_exp 0] -[check_dims] c i#31757 numtype#61 t val_1 val_2 valtype*?#9 -[visit_exp [(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr{numtype#61}(`I32`_numtype, c) `SELECT`_instr{`valtype*?#9`}(t*{t <- `t*`}?{`t*` <- `t*?`})]] +[check_dims] c t val_1 val_2 +[visit_exp [(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr(`I32`_numtype, c) `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})]] [visit_exp (val_1 : val <: instr)] [visit_exp val_1] [visit_id val_1] [visit_exp (val_2 : val <: instr)] [visit_exp val_2] [visit_id val_2] -[visit_exp `CONST`_instr{numtype#61}(`I32`_numtype, c)] -[visit_exp numtype#61] -[visit_id numtype#61] +[visit_exp `CONST`_instr(`I32`_numtype, c)] [visit_exp (`I32`_numtype, c)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp `SELECT`_instr{`valtype*?#9`}(t*{t <- `t*`}?{`t*` <- `t*?`})] -[visit_exp `valtype*?#9`] -[visit_id valtype*?#9] +[visit_exp `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})] [visit_exp (t*{t <- `t*`}?{`t*` <- `t*?`})] [visit_exp t*{t <- `t*`}?{`t*` <- `t*?`}] [scope_enter t*] @@ -52122,36 +43830,26 @@ DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype [visit_exp (val_2 : val <: instr)] [visit_exp val_2] [visit_id val_2] not free -[visit_exp (c!`%`_num_{i#31757}.0 = 0)] -[visit_exp c!`%`_num_{i#31757}.0] -[visit_exp c!`%`_num_{i#31757}] +[visit_exp (c!`%`_num_.0 = 0)] +[visit_exp c!`%`_num_.0] +[visit_exp c!`%`_num_] [visit_exp c] [visit_id c] not free -[visit_exp i#31757] -[visit_id i#31757] [visit_exp 0] [check_dims] blocktype state DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id state] not free [visit_id blocktype] not free -[check_dims] X*#12215 X*#12228 X*#12241 X*#12292 localidx*#1757 resulttype#2914 resulttype#2934 t_1 t_2 typeidx#1551 x z +[check_dims] t_1 t_2 x z [visit_exp z] [visit_id z] -[visit_exp `_IDX`_blocktype{typeidx#1551}(x)] -[visit_exp typeidx#1551] -[visit_id typeidx#1551] +[visit_exp `_IDX`_blocktype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#2934, `localidx*#1757`}(`%`_resulttype{`X*#12241`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12292`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#2934] -[visit_id resulttype#2934] -[visit_exp `localidx*#1757`] -[visit_id localidx*#1757] -[visit_exp (`%`_resulttype{`X*#12241`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12292`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#12241`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#12241`] -[visit_id X*#12241] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -52163,9 +43861,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id t_1*] no dims [visit_id t_1*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#12292`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#12292`] -[visit_id X*#12292] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -52176,19 +43872,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp ($type(z, x), `FUNC%->%`_comptype{resulttype#2914}(`%`_resulttype{`X*#12215`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#12228`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp ($type(z, x), `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `FUNC%->%`_comptype{resulttype#2914}(`%`_resulttype{`X*#12215`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#12228`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#2914] -[visit_id resulttype#2914] -[visit_exp (`%`_resulttype{`X*#12215`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#12228`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#12215`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#12215`] -[visit_id X*#12215] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -52199,9 +43891,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `%`_resulttype{`X*#12228`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#12228`] -[visit_id X*#12228] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -52214,14 +43904,12 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id t_2*] no dims => ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - def $blocktype_{z : state, typeidx#1551 : typeidx, x : idx, resulttype#2934 : resulttype, `localidx*#1757` : localidx*, `X*#12241` : valtype*, `t_1*` : valtype*, `X*#12292` : valtype*, `t_2*` : valtype*, resulttype#2914 : resulttype, `X*#12215` : valtype*, `X*#12228` : valtype*}(z, `_IDX`_blocktype{typeidx#1551}(x)) = `%->_%%`_instrtype{resulttype#2934, `localidx*#1757`}(`%`_resulttype{`X*#12241`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12292`}(t_2*{t_2 <- `t_2*`})) - -- Expand: `%~~%`($type(z, x), `FUNC%->%`_comptype{resulttype#2914}(`%`_resulttype{`X*#12215`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#12228`}(t_2*{t_2 <- `t_2*`}))) -[check_dims] X*#12313 X*#12362 localidx*#1769 resulttype#2954 t valtype?#5 z + def $blocktype_{z : state, x : idx, `t_1*` : valtype*, `t_2*` : valtype*}(z, `_IDX`_blocktype(x)) = `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})) + -- Expand: `%~~%`($type(z, x), `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) +[check_dims] t z [visit_exp z] [visit_id z] -[visit_exp `_RESULT`_blocktype{`valtype?#5`}(t?{t <- `t?`})] -[visit_exp `valtype?#5`] -[visit_id valtype?#5] +[visit_exp `_RESULT`_blocktype(t?{t <- `t?`})] [visit_exp (t?{t <- `t?`})] [visit_exp t?{t <- `t?`}] [scope_enter t] @@ -52232,21 +43920,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `t?`] [visit_id t?] no dims [visit_id t?] -[visit_exp `%->_%%`_instrtype{resulttype#2954, `localidx*#1769`}(`%`_resulttype{`X*#12313`}([]), [], `%`_resulttype{`X*#12362`}(lift(t?{t <- `t?`})))] -[visit_exp resulttype#2954] -[visit_id resulttype#2954] -[visit_exp `localidx*#1769`] -[visit_id localidx*#1769] -[visit_exp (`%`_resulttype{`X*#12313`}([]), [], `%`_resulttype{`X*#12362`}(lift(t?{t <- `t?`})))] -[visit_exp `%`_resulttype{`X*#12313`}([])] -[visit_exp `X*#12313`] -[visit_id X*#12313] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(t?{t <- `t?`})))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype(lift(t?{t <- `t?`})))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#12362`}(lift(t?{t <- `t?`}))] -[visit_exp `X*#12362`] -[visit_id X*#12362] +[visit_exp `%`_resulttype(lift(t?{t <- `t?`}))] [visit_exp (lift(t?{t <- `t?`}))] [visit_exp lift(t?{t <- `t?`})] [visit_exp t?{t <- `t?`}] @@ -52260,17 +43940,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id t?] no dims => ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - def $blocktype_{z : state, `valtype?#5` : valtype?, `t?` : valtype?, resulttype#2954 : resulttype, `localidx*#1769` : localidx*, `X*#12313` : valtype*, `X*#12362` : valtype*}(z, `_RESULT`_blocktype{`valtype?#5`}(t?{t <- `t?`})) = `%->_%%`_instrtype{resulttype#2954, `localidx*#1769`}(`%`_resulttype{`X*#12313`}([]), [], `%`_resulttype{`X*#12362`}(lift(t?{t <- `t?`}))) -[check_dims] X*#12373 X*#12424 blocktype#15 bt instr instr*#337 instr*#339 instr*#341 localidx*#1781 m n n#1141 resulttype#2974 state#311 t_1 t_2 val z -[visit_exp `%;%`_config{state#311, `instr*#337`}(z, (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr{blocktype#15, `instr*#339`}(bt, instr*{instr <- `instr*`})])] -[visit_exp state#311] -[visit_id state#311] -[visit_exp `instr*#337`] -[visit_id instr*#337] -[visit_exp (z, (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr{blocktype#15, `instr*#339`}(bt, instr*{instr <- `instr*`})])] + def $blocktype_{z : state, `t?` : valtype?}(z, `_RESULT`_blocktype(t?{t <- `t?`})) = `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(t?{t <- `t?`}))) +[check_dims] bt instr m n t_1 t_2 val z +[visit_exp `%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr(bt, instr*{instr <- `instr*`})])] +[visit_exp (z, (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr(bt, instr*{instr <- `instr*`})])] [visit_exp z] [visit_id z] -[visit_exp (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr{blocktype#15, `instr*#339`}(bt, instr*{instr <- `instr*`})]] +[visit_exp (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr(bt, instr*{instr <- `instr*`})]] [visit_exp (val : val <: instr)^m{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -52283,12 +43959,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`BLOCK`_instr{blocktype#15, `instr*#339`}(bt, instr*{instr <- `instr*`})]] -[visit_exp `BLOCK`_instr{blocktype#15, `instr*#339`}(bt, instr*{instr <- `instr*`})] -[visit_exp blocktype#15] -[visit_id blocktype#15] -[visit_exp `instr*#339`] -[visit_id instr*#339] +[visit_exp [`BLOCK`_instr(bt, instr*{instr <- `instr*`})]] +[visit_exp `BLOCK`_instr(bt, instr*{instr <- `instr*`})] [visit_exp (bt, instr*{instr <- `instr*`})] [visit_exp bt] [visit_id bt] @@ -52301,12 +43973,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp [`LABEL_%{%}%`_instr{n#1141, `instr*#341`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr{n#1141, `instr*#341`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] -[visit_exp n#1141] -[visit_id n#1141] -[visit_exp `instr*#341`] -[visit_id instr*#341] +[visit_exp [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] [visit_exp (n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] [visit_exp n] [visit_id n] @@ -52333,21 +44001,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp ($blocktype_(z, bt) = `%->_%%`_instrtype{resulttype#2974, `localidx*#1781`}(`%`_resulttype{`X*#12373`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12424`}(t_2^n{t_2 <- `t_2*`})))] +[visit_exp ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`})))] [visit_exp $blocktype_(z, bt)] [visit_exp z] [visit_id z] not free [visit_exp bt] [visit_id bt] not free -[visit_exp `%->_%%`_instrtype{resulttype#2974, `localidx*#1781`}(`%`_resulttype{`X*#12373`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12424`}(t_2^n{t_2 <- `t_2*`}))] -[visit_exp resulttype#2974] -[visit_id resulttype#2974] -[visit_exp `localidx*#1781`] -[visit_id localidx*#1781] -[visit_exp (`%`_resulttype{`X*#12373`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12424`}(t_2^n{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#12373`}(t_1^m{t_1 <- `t_1*`})] -[visit_exp `X*#12373`] -[visit_id X*#12373] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1^m{t_1 <- `t_1*`})] [visit_exp (t_1^m{t_1 <- `t_1*`})] [visit_exp t_1^m{t_1 <- `t_1*`}] [scope_enter t_1] @@ -52361,9 +44023,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id t_1*] no dims [visit_id t_1*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#12424`}(t_2^n{t_2 <- `t_2*`})] -[visit_exp `X*#12424`] -[visit_id X*#12424] +[visit_exp `%`_resulttype(t_2^n{t_2 <- `t_2*`})] [visit_exp (t_2^n{t_2 <- `t_2*`})] [visit_exp t_2^n{t_2 <- `t_2*`}] [scope_enter t_2] @@ -52376,16 +44036,12 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[check_dims] X*#12435 X*#12486 blocktype#17 blocktype#19 bt instr instr*#354 instr*#356 instr*#358 instr*#361 localidx*#1793 m n n#1143 resulttype#2994 state#323 t_1 t_2 val z -[visit_exp `%;%`_config{state#323, `instr*#354`}(z, (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr{blocktype#17, `instr*#356`}(bt, instr*{instr <- `instr*`})])] -[visit_exp state#323] -[visit_id state#323] -[visit_exp `instr*#354`] -[visit_id instr*#354] -[visit_exp (z, (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr{blocktype#17, `instr*#356`}(bt, instr*{instr <- `instr*`})])] +[check_dims] bt instr m n t_1 t_2 val z +[visit_exp `%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr(bt, instr*{instr <- `instr*`})])] +[visit_exp (z, (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr(bt, instr*{instr <- `instr*`})])] [visit_exp z] [visit_id z] -[visit_exp (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr{blocktype#17, `instr*#356`}(bt, instr*{instr <- `instr*`})]] +[visit_exp (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr(bt, instr*{instr <- `instr*`})]] [visit_exp (val : val <: instr)^m{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -52398,12 +44054,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`LOOP`_instr{blocktype#17, `instr*#356`}(bt, instr*{instr <- `instr*`})]] -[visit_exp `LOOP`_instr{blocktype#17, `instr*#356`}(bt, instr*{instr <- `instr*`})] -[visit_exp blocktype#17] -[visit_id blocktype#17] -[visit_exp `instr*#356`] -[visit_id instr*#356] +[visit_exp [`LOOP`_instr(bt, instr*{instr <- `instr*`})]] +[visit_exp `LOOP`_instr(bt, instr*{instr <- `instr*`})] [visit_exp (bt, instr*{instr <- `instr*`})] [visit_exp bt] [visit_id bt] @@ -52416,21 +44068,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp [`LABEL_%{%}%`_instr{n#1143, `instr*#358`}(m, [`LOOP`_instr{blocktype#19, `instr*#361`}(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr{n#1143, `instr*#358`}(m, [`LOOP`_instr{blocktype#19, `instr*#361`}(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] -[visit_exp n#1143] -[visit_id n#1143] -[visit_exp `instr*#358`] -[visit_id instr*#358] -[visit_exp (m, [`LOOP`_instr{blocktype#19, `instr*#361`}(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] +[visit_exp [`LABEL_%{%}%`_instr(m, [`LOOP`_instr(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr(m, [`LOOP`_instr(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] +[visit_exp (m, [`LOOP`_instr(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] [visit_exp m] [visit_id m] not free -[visit_exp [`LOOP`_instr{blocktype#19, `instr*#361`}(bt, instr*{instr <- `instr*`})]] -[visit_exp `LOOP`_instr{blocktype#19, `instr*#361`}(bt, instr*{instr <- `instr*`})] -[visit_exp blocktype#19] -[visit_id blocktype#19] -[visit_exp `instr*#361`] -[visit_id instr*#361] +[visit_exp [`LOOP`_instr(bt, instr*{instr <- `instr*`})]] +[visit_exp `LOOP`_instr(bt, instr*{instr <- `instr*`})] [visit_exp (bt, instr*{instr <- `instr*`})] [visit_exp bt] [visit_id bt] not free @@ -52465,21 +44109,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp ($blocktype_(z, bt) = `%->_%%`_instrtype{resulttype#2994, `localidx*#1793`}(`%`_resulttype{`X*#12435`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12486`}(t_2^n{t_2 <- `t_2*`})))] +[visit_exp ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`})))] [visit_exp $blocktype_(z, bt)] [visit_exp z] [visit_id z] not free [visit_exp bt] [visit_id bt] not free -[visit_exp `%->_%%`_instrtype{resulttype#2994, `localidx*#1793`}(`%`_resulttype{`X*#12435`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12486`}(t_2^n{t_2 <- `t_2*`}))] -[visit_exp resulttype#2994] -[visit_id resulttype#2994] -[visit_exp `localidx*#1793`] -[visit_id localidx*#1793] -[visit_exp (`%`_resulttype{`X*#12435`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12486`}(t_2^n{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#12435`}(t_1^m{t_1 <- `t_1*`})] -[visit_exp `X*#12435`] -[visit_id X*#12435] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1^m{t_1 <- `t_1*`})] [visit_exp (t_1^m{t_1 <- `t_1*`})] [visit_exp t_1^m{t_1 <- `t_1*`}] [scope_enter t_1] @@ -52493,9 +44131,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id t_1*] no dims [visit_id t_1*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#12486`}(t_2^n{t_2 <- `t_2*`})] -[visit_exp `X*#12486`] -[visit_id X*#12486] +[visit_exp `%`_resulttype(t_2^n{t_2 <- `t_2*`})] [visit_exp (t_2^n{t_2 <- `t_2*`})] [visit_exp t_2^n{t_2 <- `t_2*`}] [scope_enter t_2] @@ -52508,21 +44144,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[check_dims] blocktype#21 blocktype#23 bt c i#31807 instr*#363 instr*#366 instr_1 instr_2 numtype#63 -[visit_exp [`CONST`_instr{numtype#63}(`I32`_numtype, c) `IF%%ELSE%`_instr{blocktype#21, `instr*#363`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})]] -[visit_exp `CONST`_instr{numtype#63}(`I32`_numtype, c)] -[visit_exp numtype#63] -[visit_id numtype#63] +[check_dims] bt c instr_1 instr_2 +[visit_exp [`CONST`_instr(`I32`_numtype, c) `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})]] +[visit_exp `CONST`_instr(`I32`_numtype, c)] [visit_exp (`I32`_numtype, c)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp `IF%%ELSE%`_instr{blocktype#21, `instr*#363`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp blocktype#21] -[visit_id blocktype#21] -[visit_exp `instr*#363`] -[visit_id instr*#363] +[visit_exp `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] [visit_exp (bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] [visit_exp bt] [visit_id bt] @@ -52544,12 +44174,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr_2*`] [visit_id instr_2*] no dims [visit_id instr_2*] -[visit_exp [`BLOCK`_instr{blocktype#23, `instr*#366`}(bt, instr_1*{instr_1 <- `instr_1*`})]] -[visit_exp `BLOCK`_instr{blocktype#23, `instr*#366`}(bt, instr_1*{instr_1 <- `instr_1*`})] -[visit_exp blocktype#23] -[visit_id blocktype#23] -[visit_exp `instr*#366`] -[visit_id instr*#366] +[visit_exp [`BLOCK`_instr(bt, instr_1*{instr_1 <- `instr_1*`})]] +[visit_exp `BLOCK`_instr(bt, instr_1*{instr_1 <- `instr_1*`})] [visit_exp (bt, instr_1*{instr_1 <- `instr_1*`})] [visit_exp bt] [visit_id bt] not free @@ -52562,29 +44188,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr_1*`] [visit_id instr_1*] not free [visit_id instr_1*] no dims -[visit_exp (c!`%`_num_{i#31807}.0 =/= 0)] -[visit_exp c!`%`_num_{i#31807}.0] -[visit_exp c!`%`_num_{i#31807}] +[visit_exp (c!`%`_num_.0 =/= 0)] +[visit_exp c!`%`_num_.0] +[visit_exp c!`%`_num_] [visit_exp c] [visit_id c] not free -[visit_exp i#31807] -[visit_id i#31807] [visit_exp 0] -[check_dims] blocktype#25 blocktype#27 bt c i#31831 instr*#368 instr*#371 instr_1 instr_2 numtype#65 -[visit_exp [`CONST`_instr{numtype#65}(`I32`_numtype, c) `IF%%ELSE%`_instr{blocktype#25, `instr*#368`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})]] -[visit_exp `CONST`_instr{numtype#65}(`I32`_numtype, c)] -[visit_exp numtype#65] -[visit_id numtype#65] +[check_dims] bt c instr_1 instr_2 +[visit_exp [`CONST`_instr(`I32`_numtype, c) `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})]] +[visit_exp `CONST`_instr(`I32`_numtype, c)] [visit_exp (`I32`_numtype, c)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp `IF%%ELSE%`_instr{blocktype#25, `instr*#368`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp blocktype#25] -[visit_id blocktype#25] -[visit_exp `instr*#368`] -[visit_id instr*#368] +[visit_exp `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] [visit_exp (bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] [visit_exp bt] [visit_id bt] @@ -52606,12 +44224,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr_2*`] [visit_id instr_2*] no dims [visit_id instr_2*] -[visit_exp [`BLOCK`_instr{blocktype#27, `instr*#371`}(bt, instr_2*{instr_2 <- `instr_2*`})]] -[visit_exp `BLOCK`_instr{blocktype#27, `instr*#371`}(bt, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp blocktype#27] -[visit_id blocktype#27] -[visit_exp `instr*#371`] -[visit_id instr*#371] +[visit_exp [`BLOCK`_instr(bt, instr_2*{instr_2 <- `instr_2*`})]] +[visit_exp `BLOCK`_instr(bt, instr_2*{instr_2 <- `instr_2*`})] [visit_exp (bt, instr_2*{instr_2 <- `instr_2*`})] [visit_exp bt] [visit_id bt] not free @@ -52624,21 +44238,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr_2*`] [visit_id instr_2*] not free [visit_id instr_2*] no dims -[visit_exp (c!`%`_num_{i#31831}.0 = 0)] -[visit_exp c!`%`_num_{i#31831}.0] -[visit_exp c!`%`_num_{i#31831}] +[visit_exp (c!`%`_num_.0 = 0)] +[visit_exp c!`%`_num_.0] +[visit_exp c!`%`_num_] [visit_exp c] [visit_id c] not free -[visit_exp i#31831] -[visit_id i#31831] [visit_exp 0] -[check_dims] instr instr*#373 n n#1145 val -[visit_exp [`LABEL_%{%}%`_instr{n#1145, `instr*#373`}(n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})]] -[visit_exp `LABEL_%{%}%`_instr{n#1145, `instr*#373`}(n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})] -[visit_exp n#1145] -[visit_id n#1145] -[visit_exp `instr*#373`] -[visit_id instr*#373] +[check_dims] instr n val +[visit_exp [`LABEL_%{%}%`_instr(n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})]] +[visit_exp `LABEL_%{%}%`_instr(n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})] [visit_exp (n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})] [visit_exp n] [visit_id n] @@ -52671,14 +44279,10 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] not free [visit_id val*] no dims -[check_dims] i#31853 instr instr' instr*#376 l labelidx#37 n n#1147 val val' -[visit_exp [`LABEL_%{%}%`_instr{n#1147, `instr*#376`}(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr{labelidx#37}(l)] ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr{n#1147, `instr*#376`}(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr{labelidx#37}(l)] ++ instr*{instr <- `instr*`})] -[visit_exp n#1147] -[visit_id n#1147] -[visit_exp `instr*#376`] -[visit_id instr*#376] -[visit_exp (n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr{labelidx#37}(l)] ++ instr*{instr <- `instr*`})] +[check_dims] instr instr' l n val val' +[visit_exp [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})] +[visit_exp (n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})] [visit_exp n] [visit_id n] [visit_exp instr'*{instr' <- `instr'*`}] @@ -52690,8 +44294,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr'*`] [visit_id instr'*] no dims [visit_id instr'*] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr{labelidx#37}(l)] ++ instr*{instr <- `instr*`}] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr{labelidx#37}(l)]] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`}] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr(l)]] [visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`}] [visit_exp (val' : val <: instr)*{val' <- `val'*`}] [scope_enter val'] @@ -52715,10 +44319,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`BR`_instr{labelidx#37}(l)]] -[visit_exp `BR`_instr{labelidx#37}(l)] -[visit_exp labelidx#37] -[visit_id labelidx#37] +[visit_exp [`BR`_instr(l)]] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] @@ -52753,22 +44355,16 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr'*`] [visit_id instr'*] not free [visit_id instr'*] no dims -[visit_exp (l!`%`_labelidx{i#31853}.0 = 0)] -[visit_exp l!`%`_labelidx{i#31853}.0] -[visit_exp l!`%`_labelidx{i#31853}] +[visit_exp (l!`%`_labelidx.0 = 0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#31853] -[visit_id i#31853] [visit_exp 0] -[check_dims] i#31891 i#31901 i#31915 instr instr' instr*#379 l labelidx#39 labelidx#41 n n#1149 val -[visit_exp [`LABEL_%{%}%`_instr{n#1149, `instr*#379`}(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#39}(l)] ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr{n#1149, `instr*#379`}(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#39}(l)] ++ instr*{instr <- `instr*`})] -[visit_exp n#1149] -[visit_id n#1149] -[visit_exp `instr*#379`] -[visit_id instr*#379] -[visit_exp (n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#39}(l)] ++ instr*{instr <- `instr*`})] +[check_dims] instr instr' l n val +[visit_exp [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})] +[visit_exp (n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})] [visit_exp n] [visit_id n] [visit_exp instr'*{instr' <- `instr'*`}] @@ -52780,8 +44376,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr'*`] [visit_id instr'*] no dims [visit_id instr'*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#39}(l)] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#39}(l)]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)]] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -52792,10 +44388,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`BR`_instr{labelidx#39}(l)]] -[visit_exp `BR`_instr{labelidx#39}(l)] -[visit_exp labelidx#39] -[visit_id labelidx#39] +[visit_exp [`BR`_instr(l)]] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] @@ -52808,7 +44402,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#41}(`%`_labelidx{i#31901}((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(`%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -52819,44 +44413,30 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] not free [visit_id val*] no dims -[visit_exp [`BR`_instr{labelidx#41}(`%`_labelidx{i#31901}((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]] -[visit_exp `BR`_instr{labelidx#41}(`%`_labelidx{i#31901}((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp labelidx#41] -[visit_id labelidx#41] -[visit_exp (`%`_labelidx{i#31901}((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp `%`_labelidx{i#31901}((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#31901] -[visit_id i#31901] -[visit_exp ((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int))] -[visit_exp (l!`%`_labelidx{i#31891}.0 : nat <:> int)] -[visit_exp l!`%`_labelidx{i#31891}.0] -[visit_exp l!`%`_labelidx{i#31891}] +[visit_exp [`BR`_instr(`%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]] +[visit_exp `BR`_instr(`%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (`%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp ((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int))] +[visit_exp (l!`%`_labelidx.0 : nat <:> int)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#31891] -[visit_id i#31891] [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp (l!`%`_labelidx{i#31915}.0 > 0)] -[visit_exp l!`%`_labelidx{i#31915}.0] -[visit_exp l!`%`_labelidx{i#31915}] +[visit_exp (l!`%`_labelidx.0 > 0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#31915] -[visit_id i#31915] [visit_exp 0] -[check_dims] catch catch*#1 instr instr*#382 l labelidx#43 labelidx#45 n n#1151 val -[visit_exp [`HANDLER_%{%}%`_instr{n#1151, `catch*#1`, `instr*#382`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#43}(l)] ++ instr*{instr <- `instr*`})]] -[visit_exp `HANDLER_%{%}%`_instr{n#1151, `catch*#1`, `instr*#382`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#43}(l)] ++ instr*{instr <- `instr*`})] -[visit_exp n#1151] -[visit_id n#1151] -[visit_exp `catch*#1`] -[visit_id catch*#1] -[visit_exp `instr*#382`] -[visit_id instr*#382] -[visit_exp (n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#43}(l)] ++ instr*{instr <- `instr*`})] +[check_dims] catch instr l n val +[visit_exp [`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})]] +[visit_exp `HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})] +[visit_exp (n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})] [visit_exp n] [visit_id n] [visit_exp catch*{catch <- `catch*`}] @@ -52868,8 +44448,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `catch*`] [visit_id catch*] no dims [visit_id catch*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#43}(l)] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#43}(l)]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)]] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -52880,10 +44460,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`BR`_instr{labelidx#43}(l)]] -[visit_exp `BR`_instr{labelidx#43}(l)] -[visit_exp labelidx#43] -[visit_id labelidx#43] +[visit_exp [`BR`_instr(l)]] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] @@ -52896,7 +44474,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#45}(l)]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)]] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -52907,84 +44485,62 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] not free [visit_id val*] no dims -[visit_exp [`BR`_instr{labelidx#45}(l)]] -[visit_exp `BR`_instr{labelidx#45}(l)] -[visit_exp labelidx#45] -[visit_id labelidx#45] +[visit_exp [`BR`_instr(l)]] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] not free -[check_dims] c i#31987 l labelidx#47 labelidx#49 numtype#67 -[visit_exp [`CONST`_instr{numtype#67}(`I32`_numtype, c) `BR_IF`_instr{labelidx#47}(l)]] -[visit_exp `CONST`_instr{numtype#67}(`I32`_numtype, c)] -[visit_exp numtype#67] -[visit_id numtype#67] +[check_dims] c l +[visit_exp [`CONST`_instr(`I32`_numtype, c) `BR_IF`_instr(l)]] +[visit_exp `CONST`_instr(`I32`_numtype, c)] [visit_exp (`I32`_numtype, c)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp `BR_IF`_instr{labelidx#47}(l)] -[visit_exp labelidx#47] -[visit_id labelidx#47] +[visit_exp `BR_IF`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] -[visit_exp [`BR`_instr{labelidx#49}(l)]] -[visit_exp `BR`_instr{labelidx#49}(l)] -[visit_exp labelidx#49] -[visit_id labelidx#49] +[visit_exp [`BR`_instr(l)]] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] not free -[visit_exp (c!`%`_num_{i#31987}.0 =/= 0)] -[visit_exp c!`%`_num_{i#31987}.0] -[visit_exp c!`%`_num_{i#31987}] +[visit_exp (c!`%`_num_.0 =/= 0)] +[visit_exp c!`%`_num_.0] +[visit_exp c!`%`_num_] [visit_exp c] [visit_id c] not free -[visit_exp i#31987] -[visit_id i#31987] [visit_exp 0] -[check_dims] c i#32023 l labelidx#51 numtype#69 -[visit_exp [`CONST`_instr{numtype#69}(`I32`_numtype, c) `BR_IF`_instr{labelidx#51}(l)]] -[visit_exp `CONST`_instr{numtype#69}(`I32`_numtype, c)] -[visit_exp numtype#69] -[visit_id numtype#69] +[check_dims] c l +[visit_exp [`CONST`_instr(`I32`_numtype, c) `BR_IF`_instr(l)]] +[visit_exp `CONST`_instr(`I32`_numtype, c)] [visit_exp (`I32`_numtype, c)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp `BR_IF`_instr{labelidx#51}(l)] -[visit_exp labelidx#51] -[visit_id labelidx#51] +[visit_exp `BR_IF`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] [visit_exp []] -[visit_exp (c!`%`_num_{i#32023}.0 = 0)] -[visit_exp c!`%`_num_{i#32023}.0] -[visit_exp c!`%`_num_{i#32023}] +[visit_exp (c!`%`_num_.0 = 0)] +[visit_exp c!`%`_num_.0] +[visit_exp c!`%`_num_] [visit_exp c] [visit_id c] not free -[visit_exp i#32023] -[visit_id i#32023] [visit_exp 0] -[check_dims] i i#32131 i#32145 l l' labelidx#53 labelidx#55 labelidx*#50 numtype#71 -[visit_exp [`CONST`_instr{numtype#71}(`I32`_numtype, i) `BR_TABLE`_instr{`labelidx*#50`, labelidx#53}(l*{l <- `l*`}, l')]] -[visit_exp `CONST`_instr{numtype#71}(`I32`_numtype, i)] -[visit_exp numtype#71] -[visit_id numtype#71] +[check_dims] i l l' +[visit_exp [`CONST`_instr(`I32`_numtype, i) `BR_TABLE`_instr(l*{l <- `l*`}, l')]] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `BR_TABLE`_instr{`labelidx*#50`, labelidx#53}(l*{l <- `l*`}, l')] -[visit_exp `labelidx*#50`] -[visit_id labelidx*#50] -[visit_exp labelidx#53] -[visit_id labelidx#53] +[visit_exp `BR_TABLE`_instr(l*{l <- `l*`}, l')] [visit_exp (l*{l <- `l*`}, l')] [visit_exp l*{l <- `l*`}] [scope_enter l] @@ -52997,12 +44553,10 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id l*] [visit_exp l'] [visit_id l'] -[visit_exp [`BR`_instr{labelidx#55}(l*{l <- `l*`}[i!`%`_num_{i#32131}.0])]] -[visit_exp `BR`_instr{labelidx#55}(l*{l <- `l*`}[i!`%`_num_{i#32131}.0])] -[visit_exp labelidx#55] -[visit_id labelidx#55] -[visit_exp (l*{l <- `l*`}[i!`%`_num_{i#32131}.0])] -[visit_exp l*{l <- `l*`}[i!`%`_num_{i#32131}.0]] +[visit_exp [`BR`_instr(l*{l <- `l*`}[i!`%`_num_.0])]] +[visit_exp `BR`_instr(l*{l <- `l*`}[i!`%`_num_.0])] +[visit_exp (l*{l <- `l*`}[i!`%`_num_.0])] +[visit_exp l*{l <- `l*`}[i!`%`_num_.0]] [visit_exp l*{l <- `l*`}] [scope_enter l] [visit_exp l] @@ -53012,19 +44566,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `l*`] [visit_id l*] not free [visit_id l*] no dims -[visit_exp i!`%`_num_{i#32131}.0] -[visit_exp i!`%`_num_{i#32131}] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#32131] -[visit_id i#32131] -[visit_exp (i!`%`_num_{i#32145}.0 < |l*{l <- `l*`}|)] -[visit_exp i!`%`_num_{i#32145}.0] -[visit_exp i!`%`_num_{i#32145}] +[visit_exp (i!`%`_num_.0 < |l*{l <- `l*`}|)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#32145] -[visit_id i#32145] [visit_exp |l*{l <- `l*`}|] [visit_exp l*{l <- `l*`}] [scope_enter l] @@ -53035,21 +44585,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `l*`] [visit_id l*] not free [visit_id l*] no dims -[check_dims] i i#32257 l l' labelidx#57 labelidx#59 labelidx*#52 numtype#73 -[visit_exp [`CONST`_instr{numtype#73}(`I32`_numtype, i) `BR_TABLE`_instr{`labelidx*#52`, labelidx#57}(l*{l <- `l*`}, l')]] -[visit_exp `CONST`_instr{numtype#73}(`I32`_numtype, i)] -[visit_exp numtype#73] -[visit_id numtype#73] +[check_dims] i l l' +[visit_exp [`CONST`_instr(`I32`_numtype, i) `BR_TABLE`_instr(l*{l <- `l*`}, l')]] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `BR_TABLE`_instr{`labelidx*#52`, labelidx#57}(l*{l <- `l*`}, l')] -[visit_exp `labelidx*#52`] -[visit_id labelidx*#52] -[visit_exp labelidx#57] -[visit_id labelidx#57] +[visit_exp `BR_TABLE`_instr(l*{l <- `l*`}, l')] [visit_exp (l*{l <- `l*`}, l')] [visit_exp l*{l <- `l*`}] [scope_enter l] @@ -53062,20 +44606,16 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id l*] [visit_exp l'] [visit_id l'] -[visit_exp [`BR`_instr{labelidx#59}(l')]] -[visit_exp `BR`_instr{labelidx#59}(l')] -[visit_exp labelidx#59] -[visit_id labelidx#59] +[visit_exp [`BR`_instr(l')]] +[visit_exp `BR`_instr(l')] [visit_exp (l')] [visit_exp l'] [visit_id l'] not free -[visit_exp (i!`%`_num_{i#32257}.0 >= |l*{l <- `l*`}|)] -[visit_exp i!`%`_num_{i#32257}.0] -[visit_exp i!`%`_num_{i#32257}] +[visit_exp (i!`%`_num_.0 >= |l*{l <- `l*`}|)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#32257] -[visit_id i#32257] [visit_exp |l*{l <- `l*`}|] [visit_exp l*{l <- `l*`}] [scope_enter l] @@ -53086,41 +44626,33 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `l*`] [visit_id l*] not free [visit_id l*] no dims -[check_dims] heaptype#1207 ht l labelidx#61 labelidx#63 val -[visit_exp [(val : val <: instr) `BR_ON_NULL`_instr{labelidx#61}(l)]] +[check_dims] ht l val +[visit_exp [(val : val <: instr) `BR_ON_NULL`_instr(l)]] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `BR_ON_NULL`_instr{labelidx#61}(l)] -[visit_exp labelidx#61] -[visit_id labelidx#61] +[visit_exp `BR_ON_NULL`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] -[visit_exp [`BR`_instr{labelidx#63}(l)]] -[visit_exp `BR`_instr{labelidx#63}(l)] -[visit_exp labelidx#63] -[visit_id labelidx#63] +[visit_exp [`BR`_instr(l)]] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] not free -[visit_exp (val = `REF.NULL`_val{heaptype#1207}(ht))] +[visit_exp (val = `REF.NULL`_val(ht))] [visit_exp val] [visit_id val] not free -[visit_exp `REF.NULL`_val{heaptype#1207}(ht)] -[visit_exp heaptype#1207] -[visit_id heaptype#1207] +[visit_exp `REF.NULL`_val(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[check_dims] l labelidx#65 val -[visit_exp [(val : val <: instr) `BR_ON_NULL`_instr{labelidx#65}(l)]] +[check_dims] l val +[visit_exp [(val : val <: instr) `BR_ON_NULL`_instr(l)]] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `BR_ON_NULL`_instr{labelidx#65}(l)] -[visit_exp labelidx#65] -[visit_id labelidx#65] +[visit_exp `BR_ON_NULL`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] @@ -53128,74 +44660,54 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] not free -[check_dims] heaptype#1209 ht l labelidx#67 val -[visit_exp [(val : val <: instr) `BR_ON_NON_NULL`_instr{labelidx#67}(l)]] +[check_dims] ht l val +[visit_exp [(val : val <: instr) `BR_ON_NON_NULL`_instr(l)]] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `BR_ON_NON_NULL`_instr{labelidx#67}(l)] -[visit_exp labelidx#67] -[visit_id labelidx#67] +[visit_exp `BR_ON_NON_NULL`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] [visit_exp []] -[visit_exp (val = `REF.NULL`_val{heaptype#1209}(ht))] +[visit_exp (val = `REF.NULL`_val(ht))] [visit_exp val] [visit_id val] not free -[visit_exp `REF.NULL`_val{heaptype#1209}(ht)] -[visit_exp heaptype#1209] -[visit_id heaptype#1209] +[visit_exp `REF.NULL`_val(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[check_dims] l labelidx#69 labelidx#71 val -[visit_exp [(val : val <: instr) `BR_ON_NON_NULL`_instr{labelidx#69}(l)]] +[check_dims] l val +[visit_exp [(val : val <: instr) `BR_ON_NON_NULL`_instr(l)]] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `BR_ON_NON_NULL`_instr{labelidx#69}(l)] -[visit_exp labelidx#69] -[visit_id labelidx#69] +[visit_exp `BR_ON_NON_NULL`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] -[visit_exp [(val : val <: instr) `BR`_instr{labelidx#71}(l)]] +[visit_exp [(val : val <: instr) `BR`_instr(l)]] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] not free -[visit_exp `BR`_instr{labelidx#71}(l)] -[visit_exp labelidx#71] -[visit_id labelidx#71] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] not free -[check_dims] datatype*#22 deftype*#86 deftype*#87 elemtype*#22 f frame#819 funcidx*#59 globaltype*#23 instr*#394 l labelidx#73 labelidx#75 localtype*#25 memtype*#37 moduleinst#19 ref reftype#3439 resulttype*#33 resulttype?#30 rt rt_1 rt_2 s state#335 store#815 subtype*#21 tabletype*#30 tagtype*#22 -[visit_exp `%;%`_config{state#335, `instr*#394`}(`%;%`_state{store#815, frame#819}(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#73, reftype#3439}(l, rt_1, rt_2)])] -[visit_exp state#335] -[visit_id state#335] -[visit_exp `instr*#394`] -[visit_id instr*#394] -[visit_exp (`%;%`_state{store#815, frame#819}(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#73, reftype#3439}(l, rt_1, rt_2)])] -[visit_exp `%;%`_state{store#815, frame#819}(s, f)] -[visit_exp store#815] -[visit_id store#815] -[visit_exp frame#819] -[visit_id frame#819] +[check_dims] f l ref rt rt_1 rt_2 s +[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)])] +[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)])] +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#73, reftype#3439}(l, rt_1, rt_2)]] +[visit_exp [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `BR_ON_CAST`_instr{labelidx#73, reftype#3439}(l, rt_1, rt_2)] -[visit_exp labelidx#73] -[visit_id labelidx#73] -[visit_exp reftype#3439] -[visit_id reftype#3439] +[visit_exp `BR_ON_CAST`_instr(l, rt_1, rt_2)] [visit_exp (l, rt_1, rt_2)] [visit_exp l] [visit_id l] @@ -53203,13 +44715,11 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id rt_1] [visit_exp rt_2] [visit_id rt_2] -[visit_exp [(ref : ref <: instr) `BR`_instr{labelidx#75}(l)]] +[visit_exp [(ref : ref <: instr) `BR`_instr(l)]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] not free -[visit_exp `BR`_instr{labelidx#75}(l)] -[visit_exp labelidx#75] -[visit_id labelidx#75] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] not free @@ -53220,83 +44730,43 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id ref] not free [visit_exp rt] [visit_id rt] -[visit_exp ({`TYPES`{`deftype*#86`} [], `RECS`{`subtype*#21`} [], `TAGS`{`tagtype*#22`} [], `GLOBALS`{`globaltype*#23`} [], `MEMS`{`memtype*#37`} [], `TABLES`{`tabletype*#30`} [], `FUNCS`{`deftype*#87`} [], `DATAS`{`datatype*#22`} [], `ELEMS`{`elemtype*#22`} [], `LOCALS`{`localtype*#25`} [], `LABELS`{`resulttype*#33`} [], `RETURN`{`resulttype?#30`} ?(), `REFS`{`funcidx*#59`} []}, rt, $inst_reftype(f.`MODULE`_frame{moduleinst#19}, rt_2))] -[visit_exp {`TYPES`{`deftype*#86`} [], `RECS`{`subtype*#21`} [], `TAGS`{`tagtype*#22`} [], `GLOBALS`{`globaltype*#23`} [], `MEMS`{`memtype*#37`} [], `TABLES`{`tabletype*#30`} [], `FUNCS`{`deftype*#87`} [], `DATAS`{`datatype*#22`} [], `ELEMS`{`elemtype*#22`} [], `LOCALS`{`localtype*#25`} [], `LABELS`{`resulttype*#33`} [], `RETURN`{`resulttype?#30`} ?(), `REFS`{`funcidx*#59`} []}] -[visit_exp `deftype*#86`] -[visit_id deftype*#86] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt, $inst_reftype(f.`MODULE`_frame, rt_2))] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#21`] -[visit_id subtype*#21] [visit_exp []] -[visit_exp `tagtype*#22`] -[visit_id tagtype*#22] [visit_exp []] -[visit_exp `globaltype*#23`] -[visit_id globaltype*#23] [visit_exp []] -[visit_exp `memtype*#37`] -[visit_id memtype*#37] [visit_exp []] -[visit_exp `tabletype*#30`] -[visit_id tabletype*#30] [visit_exp []] -[visit_exp `deftype*#87`] -[visit_id deftype*#87] [visit_exp []] -[visit_exp `datatype*#22`] -[visit_id datatype*#22] [visit_exp []] -[visit_exp `elemtype*#22`] -[visit_id elemtype*#22] [visit_exp []] -[visit_exp `localtype*#25`] -[visit_id localtype*#25] [visit_exp []] -[visit_exp `resulttype*#33`] -[visit_id resulttype*#33] [visit_exp []] -[visit_exp `resulttype?#30`] -[visit_id resulttype?#30] [visit_exp ?()] -[visit_exp `funcidx*#59`] -[visit_id funcidx*#59] [visit_exp []] [visit_exp rt] [visit_id rt] not free -[visit_exp $inst_reftype(f.`MODULE`_frame{moduleinst#19}, rt_2)] -[visit_exp f.`MODULE`_frame{moduleinst#19}] +[visit_exp $inst_reftype(f.`MODULE`_frame, rt_2)] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#19] -[visit_id moduleinst#19] [visit_exp rt_2] [visit_id rt_2] not free -[check_dims] f frame#831 instr*#406 l labelidx#77 ref reftype#3442 rt_1 rt_2 s state#347 store#827 -[visit_exp `%;%`_config{state#347, `instr*#406`}(`%;%`_state{store#827, frame#831}(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#77, reftype#3442}(l, rt_1, rt_2)])] -[visit_exp state#347] -[visit_id state#347] -[visit_exp `instr*#406`] -[visit_id instr*#406] -[visit_exp (`%;%`_state{store#827, frame#831}(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#77, reftype#3442}(l, rt_1, rt_2)])] -[visit_exp `%;%`_state{store#827, frame#831}(s, f)] -[visit_exp store#827] -[visit_id store#827] -[visit_exp frame#831] -[visit_id frame#831] +[check_dims] f l ref rt_1 rt_2 s +[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)])] +[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)])] +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#77, reftype#3442}(l, rt_1, rt_2)]] +[visit_exp [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `BR_ON_CAST`_instr{labelidx#77, reftype#3442}(l, rt_1, rt_2)] -[visit_exp labelidx#77] -[visit_id labelidx#77] -[visit_exp reftype#3442] -[visit_id reftype#3442] +[visit_exp `BR_ON_CAST`_instr(l, rt_1, rt_2)] [visit_exp (l, rt_1, rt_2)] [visit_exp l] [visit_id l] @@ -53308,32 +44778,20 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] not free -[check_dims] datatype*#23 deftype*#88 deftype*#89 elemtype*#23 f frame#843 funcidx*#60 globaltype*#24 instr*#418 l labelidx#79 localtype*#26 memtype*#38 moduleinst#20 ref reftype#3445 resulttype*#34 resulttype?#31 rt rt_1 rt_2 s state#359 store#839 subtype*#22 tabletype*#31 tagtype*#23 -[visit_exp `%;%`_config{state#359, `instr*#418`}(`%;%`_state{store#839, frame#843}(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#79, reftype#3445}(l, rt_1, rt_2)])] -[visit_exp state#359] -[visit_id state#359] -[visit_exp `instr*#418`] -[visit_id instr*#418] -[visit_exp (`%;%`_state{store#839, frame#843}(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#79, reftype#3445}(l, rt_1, rt_2)])] -[visit_exp `%;%`_state{store#839, frame#843}(s, f)] -[visit_exp store#839] -[visit_id store#839] -[visit_exp frame#843] -[visit_id frame#843] +[check_dims] f l ref rt rt_1 rt_2 s +[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)])] +[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)])] +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#79, reftype#3445}(l, rt_1, rt_2)]] +[visit_exp [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `BR_ON_CAST_FAIL`_instr{labelidx#79, reftype#3445}(l, rt_1, rt_2)] -[visit_exp labelidx#79] -[visit_id labelidx#79] -[visit_exp reftype#3445] -[visit_id reftype#3445] +[visit_exp `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)] [visit_exp (l, rt_1, rt_2)] [visit_exp l] [visit_id l] @@ -53352,83 +44810,43 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id ref] not free [visit_exp rt] [visit_id rt] -[visit_exp ({`TYPES`{`deftype*#88`} [], `RECS`{`subtype*#22`} [], `TAGS`{`tagtype*#23`} [], `GLOBALS`{`globaltype*#24`} [], `MEMS`{`memtype*#38`} [], `TABLES`{`tabletype*#31`} [], `FUNCS`{`deftype*#89`} [], `DATAS`{`datatype*#23`} [], `ELEMS`{`elemtype*#23`} [], `LOCALS`{`localtype*#26`} [], `LABELS`{`resulttype*#34`} [], `RETURN`{`resulttype?#31`} ?(), `REFS`{`funcidx*#60`} []}, rt, $inst_reftype(f.`MODULE`_frame{moduleinst#20}, rt_2))] -[visit_exp {`TYPES`{`deftype*#88`} [], `RECS`{`subtype*#22`} [], `TAGS`{`tagtype*#23`} [], `GLOBALS`{`globaltype*#24`} [], `MEMS`{`memtype*#38`} [], `TABLES`{`tabletype*#31`} [], `FUNCS`{`deftype*#89`} [], `DATAS`{`datatype*#23`} [], `ELEMS`{`elemtype*#23`} [], `LOCALS`{`localtype*#26`} [], `LABELS`{`resulttype*#34`} [], `RETURN`{`resulttype?#31`} ?(), `REFS`{`funcidx*#60`} []}] -[visit_exp `deftype*#88`] -[visit_id deftype*#88] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt, $inst_reftype(f.`MODULE`_frame, rt_2))] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#22`] -[visit_id subtype*#22] [visit_exp []] -[visit_exp `tagtype*#23`] -[visit_id tagtype*#23] [visit_exp []] -[visit_exp `globaltype*#24`] -[visit_id globaltype*#24] [visit_exp []] -[visit_exp `memtype*#38`] -[visit_id memtype*#38] [visit_exp []] -[visit_exp `tabletype*#31`] -[visit_id tabletype*#31] [visit_exp []] -[visit_exp `deftype*#89`] -[visit_id deftype*#89] [visit_exp []] -[visit_exp `datatype*#23`] -[visit_id datatype*#23] [visit_exp []] -[visit_exp `elemtype*#23`] -[visit_id elemtype*#23] [visit_exp []] -[visit_exp `localtype*#26`] -[visit_id localtype*#26] [visit_exp []] -[visit_exp `resulttype*#34`] -[visit_id resulttype*#34] [visit_exp []] -[visit_exp `resulttype?#31`] -[visit_id resulttype?#31] [visit_exp ?()] -[visit_exp `funcidx*#60`] -[visit_id funcidx*#60] [visit_exp []] [visit_exp rt] [visit_id rt] not free -[visit_exp $inst_reftype(f.`MODULE`_frame{moduleinst#20}, rt_2)] -[visit_exp f.`MODULE`_frame{moduleinst#20}] +[visit_exp $inst_reftype(f.`MODULE`_frame, rt_2)] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#20] -[visit_id moduleinst#20] [visit_exp rt_2] [visit_id rt_2] not free -[check_dims] f frame#855 instr*#430 l labelidx#81 labelidx#83 ref reftype#3448 rt_1 rt_2 s state#371 store#851 -[visit_exp `%;%`_config{state#371, `instr*#430`}(`%;%`_state{store#851, frame#855}(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#81, reftype#3448}(l, rt_1, rt_2)])] -[visit_exp state#371] -[visit_id state#371] -[visit_exp `instr*#430`] -[visit_id instr*#430] -[visit_exp (`%;%`_state{store#851, frame#855}(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#81, reftype#3448}(l, rt_1, rt_2)])] -[visit_exp `%;%`_state{store#851, frame#855}(s, f)] -[visit_exp store#851] -[visit_id store#851] -[visit_exp frame#855] -[visit_id frame#855] +[check_dims] f l ref rt_1 rt_2 s +[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)])] +[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)])] +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#81, reftype#3448}(l, rt_1, rt_2)]] +[visit_exp [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `BR_ON_CAST_FAIL`_instr{labelidx#81, reftype#3448}(l, rt_1, rt_2)] -[visit_exp labelidx#81] -[visit_id labelidx#81] -[visit_exp reftype#3448] -[visit_id reftype#3448] +[visit_exp `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)] [visit_exp (l, rt_1, rt_2)] [visit_exp l] [visit_id l] @@ -53436,104 +44854,74 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id rt_1] [visit_exp rt_2] [visit_id rt_2] -[visit_exp [(ref : ref <: instr) `BR`_instr{labelidx#83}(l)]] +[visit_exp [(ref : ref <: instr) `BR`_instr(l)]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] not free -[visit_exp `BR`_instr{labelidx#83}(l)] -[visit_exp labelidx#83] -[visit_id labelidx#83] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] not free -[check_dims] a deftype#5 funcaddr#7 funcaddr*#2 funcidx#2837 i#32425 instr*#442 state#383 typeuse#35 x z -[visit_exp `%;%`_config{state#383, `instr*#442`}(z, [`CALL`_instr{funcidx#2837}(x)])] -[visit_exp state#383] -[visit_id state#383] -[visit_exp `instr*#442`] -[visit_id instr*#442] -[visit_exp (z, [`CALL`_instr{funcidx#2837}(x)])] +[check_dims] a x z +[visit_exp `%;%`_config(z, [`CALL`_instr(x)])] +[visit_exp (z, [`CALL`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CALL`_instr{funcidx#2837}(x)]] -[visit_exp `CALL`_instr{funcidx#2837}(x)] -[visit_exp funcidx#2837] -[visit_id funcidx#2837] +[visit_exp [`CALL`_instr(x)]] +[visit_exp `CALL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#7}(a) `CALL_REF`_instr{typeuse#35}(($funcinst(z)[a].`TYPE`_funcinst{deftype#5} : deftype <: typeuse))]] -[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#7}(a)] -[visit_exp funcaddr#7] -[visit_id funcaddr#7] +[visit_exp [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))]] +[visit_exp `REF.FUNC_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CALL_REF`_instr{typeuse#35}(($funcinst(z)[a].`TYPE`_funcinst{deftype#5} : deftype <: typeuse))] -[visit_exp typeuse#35] -[visit_id typeuse#35] -[visit_exp (($funcinst(z)[a].`TYPE`_funcinst{deftype#5} : deftype <: typeuse))] -[visit_exp ($funcinst(z)[a].`TYPE`_funcinst{deftype#5} : deftype <: typeuse)] -[visit_exp $funcinst(z)[a].`TYPE`_funcinst{deftype#5}] +[visit_exp `CALL_REF`_instr(($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))] +[visit_exp (($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))] +[visit_exp ($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse)] +[visit_exp $funcinst(z)[a].`TYPE`_funcinst] [visit_exp $funcinst(z)[a]] [visit_exp $funcinst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp deftype#5] -[visit_id deftype#5] -[visit_exp ($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#2`}[x!`%`_idx{i#32425}.0] = a)] -[visit_exp $moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#2`}[x!`%`_idx{i#32425}.0]] -[visit_exp $moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#2`}] +[visit_exp ($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0] = a)] +[visit_exp $moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0]] +[visit_exp $moduleinst(z).`FUNCS`_moduleinst] [visit_exp $moduleinst(z)] [visit_exp z] [visit_id z] not free -[visit_exp `funcaddr*#2`] -[visit_id funcaddr*#2] -[visit_exp x!`%`_idx{i#32425}.0] -[visit_exp x!`%`_idx{i#32425}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#32425] -[visit_id i#32425] [visit_exp a] [visit_id a] not free -[check_dims] heaptype#1307 ht instr*#454 state#395 typeuse#37 yy z -[visit_exp `%;%`_config{state#395, `instr*#454`}(z, [`REF.NULL`_instr{heaptype#1307}(ht) `CALL_REF`_instr{typeuse#37}(yy)])] -[visit_exp state#395] -[visit_id state#395] -[visit_exp `instr*#454`] -[visit_id instr*#454] -[visit_exp (z, [`REF.NULL`_instr{heaptype#1307}(ht) `CALL_REF`_instr{typeuse#37}(yy)])] +[check_dims] ht yy z +[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `CALL_REF`_instr(yy)])] +[visit_exp (z, [`REF.NULL`_instr(ht) `CALL_REF`_instr(yy)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.NULL`_instr{heaptype#1307}(ht) `CALL_REF`_instr{typeuse#37}(yy)]] -[visit_exp `REF.NULL`_instr{heaptype#1307}(ht)] -[visit_exp heaptype#1307] -[visit_id heaptype#1307] +[visit_exp [`REF.NULL`_instr(ht) `CALL_REF`_instr(yy)]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[visit_exp `CALL_REF`_instr{typeuse#37}(yy)] -[visit_exp typeuse#37] -[visit_id typeuse#37] +[visit_exp `CALL_REF`_instr(yy)] [visit_exp (yy)] [visit_exp yy] [visit_id yy] [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] X*#12499 X*#12512 a deftype#6 expr#4155 f fi frame#887 funcaddr#9 funccode#1 instr instr*#466 instr*#468 instr*#470 local*#1221 m moduleinst#21 moduleinst#22 n n#1153 n#1155 resulttype#2997 state#407 t t_1 t_2 typeidx#1553 typeuse#39 val val?*#4 valtype#755 x yy z -[visit_exp `%;%`_config{state#407, `instr*#466`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#9}(a) `CALL_REF`_instr{typeuse#39}(yy)])] -[visit_exp state#407] -[visit_id state#407] -[visit_exp `instr*#466`] -[visit_id instr*#466] -[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#9}(a) `CALL_REF`_instr{typeuse#39}(yy)])] +[check_dims] a f fi instr m n t t_1 t_2 val x yy z +[visit_exp `%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)])] +[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)])] [visit_exp z] [visit_id z] -[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#9}(a) `CALL_REF`_instr{typeuse#39}(yy)]] +[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)]] [visit_exp (val : val <: instr)^n{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -53546,38 +44934,24 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#9}(a) `CALL_REF`_instr{typeuse#39}(yy)]] -[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#9}(a)] -[visit_exp funcaddr#9] -[visit_id funcaddr#9] +[visit_exp [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)]] +[visit_exp `REF.FUNC_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CALL_REF`_instr{typeuse#39}(yy)] -[visit_exp typeuse#39] -[visit_id typeuse#39] +[visit_exp `CALL_REF`_instr(yy)] [visit_exp (yy)] [visit_exp yy] [visit_id yy] -[visit_exp [`FRAME_%{%}%`_instr{n#1153, frame#887, `instr*#468`}(m, f, [`LABEL_%{%}%`_instr{n#1155, `instr*#470`}(m, [], instr*{instr <- `instr*`})])]] -[visit_exp `FRAME_%{%}%`_instr{n#1153, frame#887, `instr*#468`}(m, f, [`LABEL_%{%}%`_instr{n#1155, `instr*#470`}(m, [], instr*{instr <- `instr*`})])] -[visit_exp n#1153] -[visit_id n#1153] -[visit_exp frame#887] -[visit_id frame#887] -[visit_exp `instr*#468`] -[visit_id instr*#468] -[visit_exp (m, f, [`LABEL_%{%}%`_instr{n#1155, `instr*#470`}(m, [], instr*{instr <- `instr*`})])] +[visit_exp [`FRAME_%{%}%`_instr(m, f, [`LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})])]] +[visit_exp `FRAME_%{%}%`_instr(m, f, [`LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})])] +[visit_exp (m, f, [`LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})])] [visit_exp m] [visit_id m] [visit_exp f] [visit_id f] -[visit_exp [`LABEL_%{%}%`_instr{n#1155, `instr*#470`}(m, [], instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr{n#1155, `instr*#470`}(m, [], instr*{instr <- `instr*`})] -[visit_exp n#1155] -[visit_id n#1155] -[visit_exp `instr*#470`] -[visit_id instr*#470] +[visit_exp [`LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})] [visit_exp (m, [], instr*{instr <- `instr*`})] [visit_exp m] [visit_id m] not free @@ -53600,19 +44974,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id a] not free [visit_exp fi] [visit_id fi] -[visit_exp (fi.`TYPE`_funcinst{deftype#6}, `FUNC%->%`_comptype{resulttype#2997}(`%`_resulttype{`X*#12499`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12512`}(t_2^m{t_2 <- `t_2*`})))] -[visit_exp fi.`TYPE`_funcinst{deftype#6}] +[visit_exp (fi.`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`})))] +[visit_exp fi.`TYPE`_funcinst] [visit_exp fi] [visit_id fi] not free -[visit_exp deftype#6] -[visit_id deftype#6] -[visit_exp `FUNC%->%`_comptype{resulttype#2997}(`%`_resulttype{`X*#12499`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12512`}(t_2^m{t_2 <- `t_2*`}))] -[visit_exp resulttype#2997] -[visit_id resulttype#2997] -[visit_exp (`%`_resulttype{`X*#12499`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12512`}(t_2^m{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#12499`}(t_1^n{t_1 <- `t_1*`})] -[visit_exp `X*#12499`] -[visit_id X*#12499] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1^n{t_1 <- `t_1*`})] [visit_exp (t_1^n{t_1 <- `t_1*`})] [visit_exp t_1^n{t_1 <- `t_1*`}] [scope_enter t_1] @@ -53625,9 +44993,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp `%`_resulttype{`X*#12512`}(t_2^m{t_2 <- `t_2*`})] -[visit_exp `X*#12512`] -[visit_id X*#12512] +[visit_exp `%`_resulttype(t_2^m{t_2 <- `t_2*`})] [visit_exp (t_2^m{t_2 <- `t_2*`})] [visit_exp t_2^m{t_2 <- `t_2*`}] [scope_enter t_2] @@ -53640,41 +45006,25 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (fi.`CODE`_funcinst{funccode#1} = `FUNC`_funccode{typeidx#1553, `local*#1221`, expr#4155}(x, `LOCAL`_local{valtype#755}(t)*{t <- `t*`, valtype#755 <- `valtype#755*`}, instr*{instr <- `instr*`}))] -[visit_exp fi.`CODE`_funcinst{funccode#1}] +[visit_exp (fi.`CODE`_funcinst = `FUNC`_funccode(x, `LOCAL`_local(t)*{t <- `t*`}, instr*{instr <- `instr*`}))] +[visit_exp fi.`CODE`_funcinst] [visit_exp fi] [visit_id fi] not free -[visit_exp funccode#1] -[visit_id funccode#1] -[visit_exp `FUNC`_funccode{typeidx#1553, `local*#1221`, expr#4155}(x, `LOCAL`_local{valtype#755}(t)*{t <- `t*`, valtype#755 <- `valtype#755*`}, instr*{instr <- `instr*`})] -[visit_exp typeidx#1553] -[visit_id typeidx#1553] -[visit_exp `local*#1221`] -[visit_id local*#1221] -[visit_exp expr#4155] -[visit_id expr#4155] -[visit_exp (x, `LOCAL`_local{valtype#755}(t)*{t <- `t*`, valtype#755 <- `valtype#755*`}, instr*{instr <- `instr*`})] +[visit_exp `FUNC`_funccode(x, `LOCAL`_local(t)*{t <- `t*`}, instr*{instr <- `instr*`})] +[visit_exp (x, `LOCAL`_local(t)*{t <- `t*`}, instr*{instr <- `instr*`})] [visit_exp x] [visit_id x] -[visit_exp `LOCAL`_local{valtype#755}(t)*{t <- `t*`, valtype#755 <- `valtype#755*`}] +[visit_exp `LOCAL`_local(t)*{t <- `t*`}] [scope_enter t] -[scope_enter valtype#755] -[visit_exp `LOCAL`_local{valtype#755}(t)] -[visit_exp valtype#755] -[visit_id valtype#755] not free +[visit_exp `LOCAL`_local(t)] [visit_exp (t)] [visit_exp t] [visit_id t] not free [visit_id t] not free -[visit_id valtype#755] not free -[scope_exit valtype#755] [scope_exit t] [visit_exp `t*`] [visit_id t*] no dims [visit_id t*] -[visit_exp `valtype#755*`] -[visit_id valtype#755*] no dims -[visit_id valtype#755*] [visit_exp instr*{instr <- `instr*`}] [scope_enter instr] [visit_exp instr] @@ -53684,12 +45034,10 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp (f = {`LOCALS`{`val?*#4`} ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, `MODULE`{moduleinst#22} fi.`MODULE`_funcinst{moduleinst#21}})] +[visit_exp (f = {`LOCALS` ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, `MODULE` fi.`MODULE`_funcinst})] [visit_exp f] [visit_id f] not free -[visit_exp {`LOCALS`{`val?*#4`} ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, `MODULE`{moduleinst#22} fi.`MODULE`_funcinst{moduleinst#21}}] -[visit_exp `val?*#4`] -[visit_id val?*#4] +[visit_exp {`LOCALS` ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, `MODULE` fi.`MODULE`_funcinst}] [visit_exp ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}] [visit_exp ?(val)^n{val <- `val*`}] [scope_enter val] @@ -53713,82 +45061,54 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `t*`] [visit_id t*] not free [visit_id t*] no dims -[visit_exp moduleinst#22] -[visit_id moduleinst#22] -[visit_exp fi.`MODULE`_funcinst{moduleinst#21}] +[visit_exp fi.`MODULE`_funcinst] [visit_exp fi] [visit_id fi] not free -[visit_exp moduleinst#21] -[visit_id moduleinst#21] -[check_dims] a deftype#7 funcaddr#11 funcaddr*#3 funcidx#2839 i#32463 instr*#483 state#419 typeuse#41 x z -[visit_exp `%;%`_config{state#419, `instr*#483`}(z, [`RETURN_CALL`_instr{funcidx#2839}(x)])] -[visit_exp state#419] -[visit_id state#419] -[visit_exp `instr*#483`] -[visit_id instr*#483] -[visit_exp (z, [`RETURN_CALL`_instr{funcidx#2839}(x)])] +[check_dims] a x z +[visit_exp `%;%`_config(z, [`RETURN_CALL`_instr(x)])] +[visit_exp (z, [`RETURN_CALL`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`RETURN_CALL`_instr{funcidx#2839}(x)]] -[visit_exp `RETURN_CALL`_instr{funcidx#2839}(x)] -[visit_exp funcidx#2839] -[visit_id funcidx#2839] +[visit_exp [`RETURN_CALL`_instr(x)]] +[visit_exp `RETURN_CALL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#11}(a) `RETURN_CALL_REF`_instr{typeuse#41}(($funcinst(z)[a].`TYPE`_funcinst{deftype#7} : deftype <: typeuse))]] -[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#11}(a)] -[visit_exp funcaddr#11] -[visit_id funcaddr#11] +[visit_exp [`REF.FUNC_ADDR`_instr(a) `RETURN_CALL_REF`_instr(($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))]] +[visit_exp `REF.FUNC_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `RETURN_CALL_REF`_instr{typeuse#41}(($funcinst(z)[a].`TYPE`_funcinst{deftype#7} : deftype <: typeuse))] -[visit_exp typeuse#41] -[visit_id typeuse#41] -[visit_exp (($funcinst(z)[a].`TYPE`_funcinst{deftype#7} : deftype <: typeuse))] -[visit_exp ($funcinst(z)[a].`TYPE`_funcinst{deftype#7} : deftype <: typeuse)] -[visit_exp $funcinst(z)[a].`TYPE`_funcinst{deftype#7}] +[visit_exp `RETURN_CALL_REF`_instr(($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))] +[visit_exp (($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))] +[visit_exp ($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse)] +[visit_exp $funcinst(z)[a].`TYPE`_funcinst] [visit_exp $funcinst(z)[a]] [visit_exp $funcinst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp deftype#7] -[visit_id deftype#7] -[visit_exp ($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#3`}[x!`%`_idx{i#32463}.0] = a)] -[visit_exp $moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#3`}[x!`%`_idx{i#32463}.0]] -[visit_exp $moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#3`}] +[visit_exp ($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0] = a)] +[visit_exp $moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0]] +[visit_exp $moduleinst(z).`FUNCS`_moduleinst] [visit_exp $moduleinst(z)] [visit_exp z] [visit_id z] not free -[visit_exp `funcaddr*#3`] -[visit_id funcaddr*#3] -[visit_exp x!`%`_idx{i#32463}.0] -[visit_exp x!`%`_idx{i#32463}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#32463] -[visit_id i#32463] [visit_exp a] [visit_id a] not free -[check_dims] instr instr' instr*#495 instr*#497 k n#1163 state#431 typeuse#43 typeuse#45 val yy z -[visit_exp `%;%`_config{state#431, `instr*#495`}(z, [`LABEL_%{%}%`_instr{n#1163, `instr*#497`}(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`})])] -[visit_exp state#431] -[visit_id state#431] -[visit_exp `instr*#495`] -[visit_id instr*#495] -[visit_exp (z, [`LABEL_%{%}%`_instr{n#1163, `instr*#497`}(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`})])] +[check_dims] instr instr' k val yy z +[visit_exp `%;%`_config(z, [`LABEL_%{%}%`_instr(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] +[visit_exp (z, [`LABEL_%{%}%`_instr(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] [visit_exp z] [visit_id z] -[visit_exp [`LABEL_%{%}%`_instr{n#1163, `instr*#497`}(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr{n#1163, `instr*#497`}(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`})] -[visit_exp n#1163] -[visit_id n#1163] -[visit_exp `instr*#497`] -[visit_id instr*#497] -[visit_exp (k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp [`LABEL_%{%}%`_instr(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp (k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] [visit_exp k] [visit_id k] [visit_exp instr'*{instr' <- `instr'*`}] @@ -53800,8 +45120,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr'*`] [visit_id instr'*] no dims [visit_id instr'*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)]] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -53812,10 +45132,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`RETURN_CALL_REF`_instr{typeuse#43}(yy)]] -[visit_exp `RETURN_CALL_REF`_instr{typeuse#43}(yy)] -[visit_exp typeuse#43] -[visit_id typeuse#43] +[visit_exp [`RETURN_CALL_REF`_instr(yy)]] +[visit_exp `RETURN_CALL_REF`_instr(yy)] [visit_exp (yy)] [visit_exp yy] [visit_id yy] @@ -53828,7 +45146,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#45}(yy)]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)]] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -53839,31 +45157,19 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] not free [visit_id val*] no dims -[visit_exp [`RETURN_CALL_REF`_instr{typeuse#45}(yy)]] -[visit_exp `RETURN_CALL_REF`_instr{typeuse#45}(yy)] -[visit_exp typeuse#45] -[visit_id typeuse#45] +[visit_exp [`RETURN_CALL_REF`_instr(yy)]] +[visit_exp `RETURN_CALL_REF`_instr(yy)] [visit_exp (yy)] [visit_exp yy] [visit_id yy] not free -[check_dims] catch catch*#3 instr instr*#510 instr*#512 k n#1165 state#443 typeuse#47 typeuse#49 val yy z -[visit_exp `%;%`_config{state#443, `instr*#510`}(z, [`HANDLER_%{%}%`_instr{n#1165, `catch*#3`, `instr*#512`}(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`})])] -[visit_exp state#443] -[visit_id state#443] -[visit_exp `instr*#510`] -[visit_id instr*#510] -[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1165, `catch*#3`, `instr*#512`}(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`})])] +[check_dims] catch instr k val yy z +[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] +[visit_exp (z, [`HANDLER_%{%}%`_instr(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] [visit_exp z] [visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr{n#1165, `catch*#3`, `instr*#512`}(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`})]] -[visit_exp `HANDLER_%{%}%`_instr{n#1165, `catch*#3`, `instr*#512`}(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`})] -[visit_exp n#1165] -[visit_id n#1165] -[visit_exp `catch*#3`] -[visit_id catch*#3] -[visit_exp `instr*#512`] -[visit_id instr*#512] -[visit_exp (k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp [`HANDLER_%{%}%`_instr(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]] +[visit_exp `HANDLER_%{%}%`_instr(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp (k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] [visit_exp k] [visit_id k] [visit_exp catch*{catch <- `catch*`}] @@ -53875,8 +45181,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `catch*`] [visit_id catch*] no dims [visit_id catch*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)]] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -53887,10 +45193,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`RETURN_CALL_REF`_instr{typeuse#47}(yy)]] -[visit_exp `RETURN_CALL_REF`_instr{typeuse#47}(yy)] -[visit_exp typeuse#47] -[visit_id typeuse#47] +[visit_exp [`RETURN_CALL_REF`_instr(yy)]] +[visit_exp `RETURN_CALL_REF`_instr(yy)] [visit_exp (yy)] [visit_exp yy] [visit_id yy] @@ -53903,7 +45207,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#49}(yy)]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)]] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -53914,38 +45218,26 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] not free [visit_id val*] no dims -[visit_exp [`RETURN_CALL_REF`_instr{typeuse#49}(yy)]] -[visit_exp `RETURN_CALL_REF`_instr{typeuse#49}(yy)] -[visit_exp typeuse#49] -[visit_id typeuse#49] +[visit_exp [`RETURN_CALL_REF`_instr(yy)]] +[visit_exp `RETURN_CALL_REF`_instr(yy)] [visit_exp (yy)] [visit_exp yy] [visit_id yy] not free -[check_dims] f frame#931 heaptype#1309 ht instr instr*#524 instr*#526 k n#1167 state#455 typeuse#51 val yy z -[visit_exp `%;%`_config{state#455, `instr*#524`}(z, [`FRAME_%{%}%`_instr{n#1167, frame#931, `instr*#526`}(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`})])] -[visit_exp state#455] -[visit_id state#455] -[visit_exp `instr*#524`] -[visit_id instr*#524] -[visit_exp (z, [`FRAME_%{%}%`_instr{n#1167, frame#931, `instr*#526`}(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`})])] +[check_dims] f ht instr k val yy z +[visit_exp `%;%`_config(z, [`FRAME_%{%}%`_instr(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] +[visit_exp (z, [`FRAME_%{%}%`_instr(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] [visit_exp z] [visit_id z] -[visit_exp [`FRAME_%{%}%`_instr{n#1167, frame#931, `instr*#526`}(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`})]] -[visit_exp `FRAME_%{%}%`_instr{n#1167, frame#931, `instr*#526`}(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`})] -[visit_exp n#1167] -[visit_id n#1167] -[visit_exp frame#931] -[visit_id frame#931] -[visit_exp `instr*#526`] -[visit_id instr*#526] -[visit_exp (k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp [`FRAME_%{%}%`_instr(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]] +[visit_exp `FRAME_%{%}%`_instr(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp (k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] [visit_exp k] [visit_id k] [visit_exp f] [visit_id f] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)]] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)]] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -53956,17 +45248,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`REF.NULL`_instr{heaptype#1309}(ht)]] -[visit_exp `REF.NULL`_instr{heaptype#1309}(ht)] -[visit_exp heaptype#1309] -[visit_id heaptype#1309] +[visit_exp [`REF.NULL`_instr(ht)]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[visit_exp [`RETURN_CALL_REF`_instr{typeuse#51}(yy)]] -[visit_exp `RETURN_CALL_REF`_instr{typeuse#51}(yy)] -[visit_exp typeuse#51] -[visit_id typeuse#51] +[visit_exp [`RETURN_CALL_REF`_instr(yy)]] +[visit_exp `RETURN_CALL_REF`_instr(yy)] [visit_exp (yy)] [visit_exp yy] [visit_id yy] @@ -53982,31 +45270,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] X*#12527 X*#12540 a deftype#8 f frame#939 funcaddr#13 funcaddr#15 instr instr*#538 instr*#540 k m n n#1169 resulttype#3000 state#467 t_1 t_2 typeuse#53 typeuse#55 val val' yy z -[visit_exp `%;%`_config{state#467, `instr*#538`}(z, [`FRAME_%{%}%`_instr{n#1169, frame#939, `instr*#540`}(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`})])] -[visit_exp state#467] -[visit_id state#467] -[visit_exp `instr*#538`] -[visit_id instr*#538] -[visit_exp (z, [`FRAME_%{%}%`_instr{n#1169, frame#939, `instr*#540`}(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`})])] +[check_dims] a f instr k m n t_1 t_2 val val' yy z +[visit_exp `%;%`_config(z, [`FRAME_%{%}%`_instr(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] +[visit_exp (z, [`FRAME_%{%}%`_instr(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] [visit_exp z] [visit_id z] -[visit_exp [`FRAME_%{%}%`_instr{n#1169, frame#939, `instr*#540`}(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`})]] -[visit_exp `FRAME_%{%}%`_instr{n#1169, frame#939, `instr*#540`}(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`})] -[visit_exp n#1169] -[visit_id n#1169] -[visit_exp frame#939] -[visit_id frame#939] -[visit_exp `instr*#540`] -[visit_id instr*#540] -[visit_exp (k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp [`FRAME_%{%}%`_instr(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]] +[visit_exp `FRAME_%{%}%`_instr(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] +[visit_exp (k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] [visit_exp k] [visit_id k] [visit_exp f] [visit_id f] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`}] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)]] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)]] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`}] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)]] +[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)]] [visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`}] [visit_exp (val' : val <: instr)*{val' <- `val'*`}] [scope_enter val'] @@ -54030,17 +45308,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)]] -[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#13}(a)] -[visit_exp funcaddr#13] -[visit_id funcaddr#13] +[visit_exp [`REF.FUNC_ADDR`_instr(a)]] +[visit_exp `REF.FUNC_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp [`RETURN_CALL_REF`_instr{typeuse#53}(yy)]] -[visit_exp `RETURN_CALL_REF`_instr{typeuse#53}(yy)] -[visit_exp typeuse#53] -[visit_id typeuse#53] +[visit_exp [`RETURN_CALL_REF`_instr(yy)]] +[visit_exp `RETURN_CALL_REF`_instr(yy)] [visit_exp (yy)] [visit_exp yy] [visit_id yy] @@ -54053,7 +45327,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#15}(a) `CALL_REF`_instr{typeuse#55}(yy)]] +[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)]] [visit_exp (val : val <: instr)^n{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -54066,36 +45340,26 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] not free [visit_id val*] no dims -[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#15}(a) `CALL_REF`_instr{typeuse#55}(yy)]] -[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#15}(a)] -[visit_exp funcaddr#15] -[visit_id funcaddr#15] +[visit_exp [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)]] +[visit_exp `REF.FUNC_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free -[visit_exp `CALL_REF`_instr{typeuse#55}(yy)] -[visit_exp typeuse#55] -[visit_id typeuse#55] +[visit_exp `CALL_REF`_instr(yy)] [visit_exp (yy)] [visit_exp yy] [visit_id yy] not free -[visit_exp ($funcinst(z)[a].`TYPE`_funcinst{deftype#8}, `FUNC%->%`_comptype{resulttype#3000}(`%`_resulttype{`X*#12527`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12540`}(t_2^m{t_2 <- `t_2*`})))] -[visit_exp $funcinst(z)[a].`TYPE`_funcinst{deftype#8}] +[visit_exp ($funcinst(z)[a].`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`})))] +[visit_exp $funcinst(z)[a].`TYPE`_funcinst] [visit_exp $funcinst(z)[a]] [visit_exp $funcinst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp deftype#8] -[visit_id deftype#8] -[visit_exp `FUNC%->%`_comptype{resulttype#3000}(`%`_resulttype{`X*#12527`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12540`}(t_2^m{t_2 <- `t_2*`}))] -[visit_exp resulttype#3000] -[visit_id resulttype#3000] -[visit_exp (`%`_resulttype{`X*#12527`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12540`}(t_2^m{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#12527`}(t_1^n{t_1 <- `t_1*`})] -[visit_exp `X*#12527`] -[visit_id X*#12527] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1^n{t_1 <- `t_1*`})] [visit_exp (t_1^n{t_1 <- `t_1*`})] [visit_exp t_1^n{t_1 <- `t_1*`}] [scope_enter t_1] @@ -54108,9 +45372,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp `%`_resulttype{`X*#12540`}(t_2^m{t_2 <- `t_2*`})] -[visit_exp `X*#12540`] -[visit_id X*#12540] +[visit_exp `%`_resulttype(t_2^m{t_2 <- `t_2*`})] [visit_exp (t_2^m{t_2 <- `t_2*`})] [visit_exp t_2^m{t_2 <- `t_2*`}] [scope_enter t_2] @@ -54123,34 +45385,22 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[check_dims] heaptype#1321 null?#1303 reftype#3451 tableidx#49 tableidx#51 typeuse#57 typeuse#59 x yy -[visit_exp [`CALL_INDIRECT`_instr{tableidx#49, typeuse#57}(x, yy)]] -[visit_exp `CALL_INDIRECT`_instr{tableidx#49, typeuse#57}(x, yy)] -[visit_exp tableidx#49] -[visit_id tableidx#49] -[visit_exp typeuse#57] -[visit_id typeuse#57] +[check_dims] x yy +[visit_exp [`CALL_INDIRECT`_instr(x, yy)]] +[visit_exp `CALL_INDIRECT`_instr(x, yy)] [visit_exp (x, yy)] [visit_exp x] [visit_id x] [visit_exp yy] [visit_id yy] -[visit_exp [`TABLE.GET`_instr{tableidx#51}(x) `REF.CAST`_instr{reftype#3451}(`REF`_reftype{`null?#1303`, heaptype#1321}(?(`NULL`_null), (yy : typeuse <: heaptype))) `CALL_REF`_instr{typeuse#59}(yy)]] -[visit_exp `TABLE.GET`_instr{tableidx#51}(x)] -[visit_exp tableidx#51] -[visit_id tableidx#51] +[visit_exp [`TABLE.GET`_instr(x) `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype))) `CALL_REF`_instr(yy)]] +[visit_exp `TABLE.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp `REF.CAST`_instr{reftype#3451}(`REF`_reftype{`null?#1303`, heaptype#1321}(?(`NULL`_null), (yy : typeuse <: heaptype)))] -[visit_exp reftype#3451] -[visit_id reftype#3451] -[visit_exp (`REF`_reftype{`null?#1303`, heaptype#1321}(?(`NULL`_null), (yy : typeuse <: heaptype)))] -[visit_exp `REF`_reftype{`null?#1303`, heaptype#1321}(?(`NULL`_null), (yy : typeuse <: heaptype))] -[visit_exp `null?#1303`] -[visit_id null?#1303] -[visit_exp heaptype#1321] -[visit_id heaptype#1321] +[visit_exp `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype)))] +[visit_exp (`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype)))] +[visit_exp `REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype))] [visit_exp (?(`NULL`_null), (yy : typeuse <: heaptype))] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -54158,40 +45408,26 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (yy : typeuse <: heaptype)] [visit_exp yy] [visit_id yy] not free -[visit_exp `CALL_REF`_instr{typeuse#59}(yy)] -[visit_exp typeuse#59] -[visit_id typeuse#59] +[visit_exp `CALL_REF`_instr(yy)] [visit_exp (yy)] [visit_exp yy] [visit_id yy] not free -[check_dims] heaptype#1333 null?#1315 reftype#3453 tableidx#53 tableidx#55 typeuse#61 typeuse#63 x yy -[visit_exp [`RETURN_CALL_INDIRECT`_instr{tableidx#53, typeuse#61}(x, yy)]] -[visit_exp `RETURN_CALL_INDIRECT`_instr{tableidx#53, typeuse#61}(x, yy)] -[visit_exp tableidx#53] -[visit_id tableidx#53] -[visit_exp typeuse#61] -[visit_id typeuse#61] +[check_dims] x yy +[visit_exp [`RETURN_CALL_INDIRECT`_instr(x, yy)]] +[visit_exp `RETURN_CALL_INDIRECT`_instr(x, yy)] [visit_exp (x, yy)] [visit_exp x] [visit_id x] [visit_exp yy] [visit_id yy] -[visit_exp [`TABLE.GET`_instr{tableidx#55}(x) `REF.CAST`_instr{reftype#3453}(`REF`_reftype{`null?#1315`, heaptype#1333}(?(`NULL`_null), (yy : typeuse <: heaptype))) `RETURN_CALL_REF`_instr{typeuse#63}(yy)]] -[visit_exp `TABLE.GET`_instr{tableidx#55}(x)] -[visit_exp tableidx#55] -[visit_id tableidx#55] +[visit_exp [`TABLE.GET`_instr(x) `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype))) `RETURN_CALL_REF`_instr(yy)]] +[visit_exp `TABLE.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp `REF.CAST`_instr{reftype#3453}(`REF`_reftype{`null?#1315`, heaptype#1333}(?(`NULL`_null), (yy : typeuse <: heaptype)))] -[visit_exp reftype#3453] -[visit_id reftype#3453] -[visit_exp (`REF`_reftype{`null?#1315`, heaptype#1333}(?(`NULL`_null), (yy : typeuse <: heaptype)))] -[visit_exp `REF`_reftype{`null?#1315`, heaptype#1333}(?(`NULL`_null), (yy : typeuse <: heaptype))] -[visit_exp `null?#1315`] -[visit_id null?#1315] -[visit_exp heaptype#1333] -[visit_id heaptype#1333] +[visit_exp `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype)))] +[visit_exp (`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype)))] +[visit_exp `REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype))] [visit_exp (?(`NULL`_null), (yy : typeuse <: heaptype))] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -54199,21 +45435,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (yy : typeuse <: heaptype)] [visit_exp yy] [visit_id yy] not free -[visit_exp `RETURN_CALL_REF`_instr{typeuse#63}(yy)] -[visit_exp typeuse#63] -[visit_id typeuse#63] +[visit_exp `RETURN_CALL_REF`_instr(yy)] [visit_exp (yy)] [visit_exp yy] [visit_id yy] not free -[check_dims] f frame#947 instr*#542 n n#1177 val -[visit_exp [`FRAME_%{%}%`_instr{n#1177, frame#947, `instr*#542`}(n, f, (val : val <: instr)^n{val <- `val*`})]] -[visit_exp `FRAME_%{%}%`_instr{n#1177, frame#947, `instr*#542`}(n, f, (val : val <: instr)^n{val <- `val*`})] -[visit_exp n#1177] -[visit_id n#1177] -[visit_exp frame#947] -[visit_id frame#947] -[visit_exp `instr*#542`] -[visit_id instr*#542] +[check_dims] f n val +[visit_exp [`FRAME_%{%}%`_instr(n, f, (val : val <: instr)^n{val <- `val*`})]] +[visit_exp `FRAME_%{%}%`_instr(n, f, (val : val <: instr)^n{val <- `val*`})] [visit_exp (n, f, (val : val <: instr)^n{val <- `val*`})] [visit_exp n] [visit_id n] @@ -54243,15 +45471,9 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] not free [visit_id val*] no dims -[check_dims] f frame#949 instr instr*#544 n n#1179 val val' -[visit_exp [`FRAME_%{%}%`_instr{n#1179, frame#949, `instr*#544`}(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})]] -[visit_exp `FRAME_%{%}%`_instr{n#1179, frame#949, `instr*#544`}(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] -[visit_exp n#1179] -[visit_id n#1179] -[visit_exp frame#949] -[visit_id frame#949] -[visit_exp `instr*#544`] -[visit_id instr*#544] +[check_dims] f instr n val val' +[visit_exp [`FRAME_%{%}%`_instr(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})]] +[visit_exp `FRAME_%{%}%`_instr(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] [visit_exp (n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] [visit_exp n] [visit_id n] @@ -54306,13 +45528,9 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] not free [visit_id val*] no dims -[check_dims] instr instr' instr*#546 n n#1181 val -[visit_exp [`LABEL_%{%}%`_instr{n#1181, `instr*#546`}(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr{n#1181, `instr*#546`}(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] -[visit_exp n#1181] -[visit_id n#1181] -[visit_exp `instr*#546`] -[visit_id instr*#546] +[check_dims] instr instr' n val +[visit_exp [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] [visit_exp (n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] [visit_exp n] [visit_id n] @@ -54363,15 +45581,9 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`RETURN`_instr]] [visit_exp `RETURN`_instr] [visit_exp ()] -[check_dims] catch catch*#5 instr instr*#549 n n#1183 val -[visit_exp [`HANDLER_%{%}%`_instr{n#1183, `catch*#5`, `instr*#549`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})]] -[visit_exp `HANDLER_%{%}%`_instr{n#1183, `catch*#5`, `instr*#549`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] -[visit_exp n#1183] -[visit_id n#1183] -[visit_exp `catch*#5`] -[visit_id catch*#5] -[visit_exp `instr*#549`] -[visit_id instr*#549] +[check_dims] catch instr n val +[visit_exp [`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})]] +[visit_exp `HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] [visit_exp (n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] [visit_exp n] [visit_id n] @@ -54422,16 +45634,12 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`RETURN`_instr]] [visit_exp `RETURN`_instr] [visit_exp ()] -[check_dims] X*#12555 X*#12578 a exn exnaddr#3 i#32555 instr*#561 instr*#573 n resulttype#3003 state#479 state#491 t tagaddr#5 tagidx#11 tagtype#180 val val*#1 x z -[visit_exp `%;%`_config{state#479, `instr*#561`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr{tagidx#11}(x)])] -[visit_exp state#479] -[visit_id state#479] -[visit_exp `instr*#561`] -[visit_id instr*#561] -[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr{tagidx#11}(x)])] +[check_dims] a exn n t val x z +[visit_exp `%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr(x)])] +[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr{tagidx#11}(x)]] +[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr(x)]] [visit_exp (val : val <: instr)^n{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -54444,51 +45652,37 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`THROW`_instr{tagidx#11}(x)]] -[visit_exp `THROW`_instr{tagidx#11}(x)] -[visit_exp tagidx#11] -[visit_id tagidx#11] +[visit_exp [`THROW`_instr(x)]] +[visit_exp `THROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#491, `instr*#573`}($add_exninst(z, [exn]), [`REF.EXN_ADDR`_instr{exnaddr#3}(a) `THROW_REF`_instr])] -[visit_exp state#491] -[visit_id state#491] -[visit_exp `instr*#573`] -[visit_id instr*#573] -[visit_exp ($add_exninst(z, [exn]), [`REF.EXN_ADDR`_instr{exnaddr#3}(a) `THROW_REF`_instr])] +[visit_exp `%;%`_config($add_exninst(z, [exn]), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] +[visit_exp ($add_exninst(z, [exn]), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] [visit_exp $add_exninst(z, [exn])] [visit_exp z] [visit_id z] not free [visit_exp [exn]] [visit_exp exn] [visit_id exn] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#3}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#3}(a)] -[visit_exp exnaddr#3] -[visit_id exnaddr#3] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] [visit_exp `THROW_REF`_instr] [visit_exp ()] -[visit_exp ($as_deftype($tag(z, x).`TYPE`_taginst{tagtype#180}), `FUNC%->%`_comptype{resulttype#3003}(`%`_resulttype{`X*#12555`}(t^n{t <- `t*`}), `%`_resulttype{`X*#12578`}([])))] -[visit_exp $as_deftype($tag(z, x).`TYPE`_taginst{tagtype#180})] -[visit_exp $tag(z, x).`TYPE`_taginst{tagtype#180}] +[visit_exp ($as_deftype($tag(z, x).`TYPE`_taginst), `FUNC%->%`_comptype(`%`_resulttype(t^n{t <- `t*`}), `%`_resulttype([])))] +[visit_exp $as_deftype($tag(z, x).`TYPE`_taginst)] +[visit_exp $tag(z, x).`TYPE`_taginst] [visit_exp $tag(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp tagtype#180] -[visit_id tagtype#180] -[visit_exp `FUNC%->%`_comptype{resulttype#3003}(`%`_resulttype{`X*#12555`}(t^n{t <- `t*`}), `%`_resulttype{`X*#12578`}([]))] -[visit_exp resulttype#3003] -[visit_id resulttype#3003] -[visit_exp (`%`_resulttype{`X*#12555`}(t^n{t <- `t*`}), `%`_resulttype{`X*#12578`}([]))] -[visit_exp `%`_resulttype{`X*#12555`}(t^n{t <- `t*`})] -[visit_exp `X*#12555`] -[visit_id X*#12555] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t^n{t <- `t*`}), `%`_resulttype([]))] +[visit_exp (`%`_resulttype(t^n{t <- `t*`}), `%`_resulttype([]))] +[visit_exp `%`_resulttype(t^n{t <- `t*`})] [visit_exp (t^n{t <- `t*`})] [visit_exp t^n{t <- `t*`}] [scope_enter t] @@ -54501,9 +45695,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `t*`] [visit_id t*] no dims [visit_id t*] -[visit_exp `%`_resulttype{`X*#12578`}([])] -[visit_exp `X*#12578`] -[visit_id X*#12578] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp (a = |$exninst(z)|)] @@ -54513,24 +45705,18 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp $exninst(z)] [visit_exp z] [visit_id z] not free -[visit_exp (exn = {`TAG`{tagaddr#5} $tagaddr(z)[x!`%`_idx{i#32555}.0], `FIELDS`{`val*#1`} val^n{val <- `val*`}})] +[visit_exp (exn = {`TAG` $tagaddr(z)[x!`%`_idx.0], `FIELDS` val^n{val <- `val*`}})] [visit_exp exn] [visit_id exn] not free -[visit_exp {`TAG`{tagaddr#5} $tagaddr(z)[x!`%`_idx{i#32555}.0], `FIELDS`{`val*#1`} val^n{val <- `val*`}}] -[visit_exp tagaddr#5] -[visit_id tagaddr#5] -[visit_exp $tagaddr(z)[x!`%`_idx{i#32555}.0]] +[visit_exp {`TAG` $tagaddr(z)[x!`%`_idx.0], `FIELDS` val^n{val <- `val*`}}] +[visit_exp $tagaddr(z)[x!`%`_idx.0]] [visit_exp $tagaddr(z)] [visit_exp z] [visit_id z] not free -[visit_exp x!`%`_idx{i#32555}.0] -[visit_exp x!`%`_idx{i#32555}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#32555] -[visit_id i#32555] -[visit_exp `val*#1`] -[visit_id val*#1] [visit_exp val^n{val <- `val*`}] [scope_enter val] [visit_exp val] @@ -54542,19 +45728,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] not free [visit_id val*] no dims -[check_dims] heaptype#1335 ht instr*#585 state#503 z -[visit_exp `%;%`_config{state#503, `instr*#585`}(z, [`REF.NULL`_instr{heaptype#1335}(ht) `THROW_REF`_instr])] -[visit_exp state#503] -[visit_id state#503] -[visit_exp `instr*#585`] -[visit_id instr*#585] -[visit_exp (z, [`REF.NULL`_instr{heaptype#1335}(ht) `THROW_REF`_instr])] +[check_dims] ht z +[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `THROW_REF`_instr])] +[visit_exp (z, [`REF.NULL`_instr(ht) `THROW_REF`_instr])] [visit_exp z] [visit_id z] -[visit_exp [`REF.NULL`_instr{heaptype#1335}(ht) `THROW_REF`_instr]] -[visit_exp `REF.NULL`_instr{heaptype#1335}(ht)] -[visit_exp heaptype#1335] -[visit_id heaptype#1335] +[visit_exp [`REF.NULL`_instr(ht) `THROW_REF`_instr]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] @@ -54563,16 +45743,12 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] a exnaddr#5 exnaddr#7 instr instr*#597 state#515 val z -[visit_exp `%;%`_config{state#515, `instr*#597`}(z, (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr{exnaddr#5}(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`})] -[visit_exp state#515] -[visit_id state#515] -[visit_exp `instr*#597`] -[visit_id instr*#597] -[visit_exp (z, (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr{exnaddr#5}(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`})] +[check_dims] a instr val z +[visit_exp `%;%`_config(z, (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`})] +[visit_exp (z, (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`})] [visit_exp z] [visit_id z] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr{exnaddr#5}(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -54583,11 +45759,9 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#5}(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#5}(a)]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#5}(a)] -[visit_exp exnaddr#5] -[visit_id exnaddr#5] +[visit_exp [`REF.EXN_ADDR`_instr(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}] +[visit_exp [`REF.EXN_ADDR`_instr(a)]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] @@ -54604,10 +45778,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#7}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#7}(a)] -[visit_exp exnaddr#7] -[visit_id exnaddr#7] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free @@ -54636,22 +45808,14 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id instr*] not free [visit_id instr*] no dims [visit_exp []] -[check_dims] a exnaddr#11 exnaddr#9 instr' instr*#609 instr*#611 n n#1191 state#527 z -[visit_exp `%;%`_config{state#527, `instr*#609`}(z, [`LABEL_%{%}%`_instr{n#1191, `instr*#611`}(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr])])] -[visit_exp state#527] -[visit_id state#527] -[visit_exp `instr*#609`] -[visit_id instr*#609] -[visit_exp (z, [`LABEL_%{%}%`_instr{n#1191, `instr*#611`}(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr])])] +[check_dims] a instr' n z +[visit_exp `%;%`_config(z, [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] +[visit_exp (z, [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] [visit_exp z] [visit_id z] -[visit_exp [`LABEL_%{%}%`_instr{n#1191, `instr*#611`}(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr])]] -[visit_exp `LABEL_%{%}%`_instr{n#1191, `instr*#611`}(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr])] -[visit_exp n#1191] -[visit_id n#1191] -[visit_exp `instr*#611`] -[visit_id instr*#611] -[visit_exp (n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr])] +[visit_exp [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] +[visit_exp `LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] +[visit_exp (n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] [visit_exp n] [visit_id n] [visit_exp instr'*{instr' <- `instr'*`}] @@ -54663,130 +45827,84 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr'*`] [visit_id instr'*] no dims [visit_id instr'*] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#9}(a)] -[visit_exp exnaddr#9] -[visit_id exnaddr#9] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] [visit_exp `THROW_REF`_instr] [visit_exp ()] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#11}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#11}(a)] -[visit_exp exnaddr#11] -[visit_id exnaddr#11] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free [visit_exp `THROW_REF`_instr] [visit_exp ()] -[check_dims] a exnaddr#13 exnaddr#15 f frame#1011 instr*#624 instr*#626 n n#1193 state#539 z -[visit_exp `%;%`_config{state#539, `instr*#624`}(z, [`FRAME_%{%}%`_instr{n#1193, frame#1011, `instr*#626`}(n, f, [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr])])] -[visit_exp state#539] -[visit_id state#539] -[visit_exp `instr*#624`] -[visit_id instr*#624] -[visit_exp (z, [`FRAME_%{%}%`_instr{n#1193, frame#1011, `instr*#626`}(n, f, [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr])])] +[check_dims] a f n z +[visit_exp `%;%`_config(z, [`FRAME_%{%}%`_instr(n, f, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] +[visit_exp (z, [`FRAME_%{%}%`_instr(n, f, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] [visit_exp z] [visit_id z] -[visit_exp [`FRAME_%{%}%`_instr{n#1193, frame#1011, `instr*#626`}(n, f, [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr])]] -[visit_exp `FRAME_%{%}%`_instr{n#1193, frame#1011, `instr*#626`}(n, f, [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr])] -[visit_exp n#1193] -[visit_id n#1193] -[visit_exp frame#1011] -[visit_id frame#1011] -[visit_exp `instr*#626`] -[visit_id instr*#626] -[visit_exp (n, f, [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr])] +[visit_exp [`FRAME_%{%}%`_instr(n, f, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] +[visit_exp `FRAME_%{%}%`_instr(n, f, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] +[visit_exp (n, f, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] [visit_exp n] [visit_id n] [visit_exp f] [visit_id f] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#13}(a)] -[visit_exp exnaddr#13] -[visit_id exnaddr#13] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] [visit_exp `THROW_REF`_instr] [visit_exp ()] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#15}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#15}(a)] -[visit_exp exnaddr#15] -[visit_id exnaddr#15] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free [visit_exp `THROW_REF`_instr] [visit_exp ()] -[check_dims] a catch*#7 exnaddr#17 exnaddr#19 instr*#638 instr*#640 n n#1195 state#551 z -[visit_exp `%;%`_config{state#551, `instr*#638`}(z, [`HANDLER_%{%}%`_instr{n#1195, `catch*#7`, `instr*#640`}(n, [], [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr])])] -[visit_exp state#551] -[visit_id state#551] -[visit_exp `instr*#638`] -[visit_id instr*#638] -[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1195, `catch*#7`, `instr*#640`}(n, [], [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr])])] +[check_dims] a n z +[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [], [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] +[visit_exp (z, [`HANDLER_%{%}%`_instr(n, [], [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] [visit_exp z] [visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr{n#1195, `catch*#7`, `instr*#640`}(n, [], [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr{n#1195, `catch*#7`, `instr*#640`}(n, [], [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr])] -[visit_exp n#1195] -[visit_id n#1195] -[visit_exp `catch*#7`] -[visit_id catch*#7] -[visit_exp `instr*#640`] -[visit_id instr*#640] -[visit_exp (n, [], [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr])] +[visit_exp [`HANDLER_%{%}%`_instr(n, [], [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr(n, [], [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] +[visit_exp (n, [], [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] [visit_exp n] [visit_id n] [visit_exp []] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#17}(a)] -[visit_exp exnaddr#17] -[visit_id exnaddr#17] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] [visit_exp `THROW_REF`_instr] [visit_exp ()] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#19}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#19}(a)] -[visit_exp exnaddr#19] -[visit_id exnaddr#19] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free [visit_exp `THROW_REF`_instr] [visit_exp ()] -[check_dims] a catch' catch*#9 exnaddr#21 i#32603 instr*#652 instr*#654 l labelidx#85 labelidx#87 n n#1197 state#563 tagaddr#6 tagidx#13 val val*#2 x z -[visit_exp `%;%`_config{state#563, `instr*#652`}(z, [`HANDLER_%{%}%`_instr{n#1197, `catch*#9`, `instr*#654`}(n, [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr])])] -[visit_exp state#563] -[visit_id state#563] -[visit_exp `instr*#652`] -[visit_id instr*#652] -[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1197, `catch*#9`, `instr*#654`}(n, [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr])])] +[check_dims] a catch' l n val x z +[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] +[visit_exp (z, [`HANDLER_%{%}%`_instr(n, [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] [visit_exp z] [visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr{n#1197, `catch*#9`, `instr*#654`}(n, [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr{n#1197, `catch*#9`, `instr*#654`}(n, [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr])] -[visit_exp n#1197] -[visit_id n#1197] -[visit_exp `catch*#9`] -[visit_id catch*#9] -[visit_exp `instr*#654`] -[visit_id instr*#654] -[visit_exp (n, [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr])] +[visit_exp [`HANDLER_%{%}%`_instr(n, [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr(n, [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] +[visit_exp (n, [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] [visit_exp n] [visit_id n] -[visit_exp [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}] -[visit_exp [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)]] -[visit_exp `CATCH`_catch{tagidx#13, labelidx#85}(x, l)] -[visit_exp tagidx#13] -[visit_id tagidx#13] -[visit_exp labelidx#85] -[visit_id labelidx#85] +[visit_exp [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}] +[visit_exp [`CATCH`_catch(x, l)]] +[visit_exp `CATCH`_catch(x, l)] [visit_exp (x, l)] [visit_exp x] [visit_id x] @@ -54801,16 +45919,14 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `catch'*`] [visit_id catch'*] no dims [visit_id catch'*] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#21}(a)] -[visit_exp exnaddr#21] -[visit_id exnaddr#21] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] [visit_exp `THROW_REF`_instr] [visit_exp ()] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#87}(l)]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)]] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -54821,34 +45937,28 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`BR`_instr{labelidx#87}(l)]] -[visit_exp `BR`_instr{labelidx#87}(l)] -[visit_exp labelidx#87] -[visit_id labelidx#87] +[visit_exp [`BR`_instr(l)]] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] not free -[visit_exp ($exninst(z)[a].`TAG`_exninst{tagaddr#6} = $tagaddr(z)[x!`%`_idx{i#32603}.0])] -[visit_exp $exninst(z)[a].`TAG`_exninst{tagaddr#6}] +[visit_exp ($exninst(z)[a].`TAG`_exninst = $tagaddr(z)[x!`%`_idx.0])] +[visit_exp $exninst(z)[a].`TAG`_exninst] [visit_exp $exninst(z)[a]] [visit_exp $exninst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp tagaddr#6] -[visit_id tagaddr#6] -[visit_exp $tagaddr(z)[x!`%`_idx{i#32603}.0]] +[visit_exp $tagaddr(z)[x!`%`_idx.0]] [visit_exp $tagaddr(z)] [visit_exp z] [visit_id z] not free -[visit_exp x!`%`_idx{i#32603}.0] -[visit_exp x!`%`_idx{i#32603}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#32603] -[visit_id i#32603] -[visit_exp (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst{`val*#2`})] +[visit_exp (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst)] [visit_exp val*{val <- `val*`}] [scope_enter val] [visit_exp val] @@ -54858,42 +45968,26 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] not free [visit_id val*] no dims -[visit_exp $exninst(z)[a].`FIELDS`_exninst{`val*#2`}] +[visit_exp $exninst(z)[a].`FIELDS`_exninst] [visit_exp $exninst(z)[a]] [visit_exp $exninst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp `val*#2`] -[visit_id val*#2] -[check_dims] a catch' catch*#11 exnaddr#23 exnaddr#25 i#32651 instr*#666 instr*#668 l labelidx#89 labelidx#91 n n#1199 state#575 tagaddr#7 tagidx#15 val val*#3 x z -[visit_exp `%;%`_config{state#575, `instr*#666`}(z, [`HANDLER_%{%}%`_instr{n#1199, `catch*#11`, `instr*#668`}(n, [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr])])] -[visit_exp state#575] -[visit_id state#575] -[visit_exp `instr*#666`] -[visit_id instr*#666] -[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1199, `catch*#11`, `instr*#668`}(n, [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr])])] +[check_dims] a catch' l n val x z +[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] +[visit_exp (z, [`HANDLER_%{%}%`_instr(n, [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] [visit_exp z] [visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr{n#1199, `catch*#11`, `instr*#668`}(n, [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr{n#1199, `catch*#11`, `instr*#668`}(n, [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr])] -[visit_exp n#1199] -[visit_id n#1199] -[visit_exp `catch*#11`] -[visit_id catch*#11] -[visit_exp `instr*#668`] -[visit_id instr*#668] -[visit_exp (n, [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr])] +[visit_exp [`HANDLER_%{%}%`_instr(n, [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr(n, [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] +[visit_exp (n, [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] [visit_exp n] [visit_id n] -[visit_exp [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}] -[visit_exp [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)]] -[visit_exp `CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] -[visit_exp tagidx#15] -[visit_id tagidx#15] -[visit_exp labelidx#89] -[visit_id labelidx#89] +[visit_exp [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}] +[visit_exp [`CATCH_REF`_catch(x, l)]] +[visit_exp `CATCH_REF`_catch(x, l)] [visit_exp (x, l)] [visit_exp x] [visit_id x] @@ -54908,16 +46002,14 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `catch'*`] [visit_id catch'*] no dims [visit_id catch'*] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#23}(a)] -[visit_exp exnaddr#23] -[visit_id exnaddr#23] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] [visit_exp `THROW_REF`_instr] [visit_exp ()] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr{exnaddr#25}(a) `BR`_instr{labelidx#91}(l)]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a) `BR`_instr(l)]] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -54928,40 +46020,32 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#25}(a) `BR`_instr{labelidx#91}(l)]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#25}(a)] -[visit_exp exnaddr#25] -[visit_id exnaddr#25] +[visit_exp [`REF.EXN_ADDR`_instr(a) `BR`_instr(l)]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free -[visit_exp `BR`_instr{labelidx#91}(l)] -[visit_exp labelidx#91] -[visit_id labelidx#91] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] not free -[visit_exp ($exninst(z)[a].`TAG`_exninst{tagaddr#7} = $tagaddr(z)[x!`%`_idx{i#32651}.0])] -[visit_exp $exninst(z)[a].`TAG`_exninst{tagaddr#7}] +[visit_exp ($exninst(z)[a].`TAG`_exninst = $tagaddr(z)[x!`%`_idx.0])] +[visit_exp $exninst(z)[a].`TAG`_exninst] [visit_exp $exninst(z)[a]] [visit_exp $exninst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp tagaddr#7] -[visit_id tagaddr#7] -[visit_exp $tagaddr(z)[x!`%`_idx{i#32651}.0]] +[visit_exp $tagaddr(z)[x!`%`_idx.0]] [visit_exp $tagaddr(z)] [visit_exp z] [visit_id z] not free -[visit_exp x!`%`_idx{i#32651}.0] -[visit_exp x!`%`_idx{i#32651}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#32651] -[visit_id i#32651] -[visit_exp (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst{`val*#3`})] +[visit_exp (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst)] [visit_exp val*{val <- `val*`}] [scope_enter val] [visit_exp val] @@ -54971,40 +46055,26 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] not free [visit_id val*] no dims -[visit_exp $exninst(z)[a].`FIELDS`_exninst{`val*#3`}] +[visit_exp $exninst(z)[a].`FIELDS`_exninst] [visit_exp $exninst(z)[a]] [visit_exp $exninst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp `val*#3`] -[visit_id val*#3] -[check_dims] a catch' catch*#13 exnaddr#27 instr*#680 instr*#682 l labelidx#93 labelidx#95 n n#1201 state#587 z -[visit_exp `%;%`_config{state#587, `instr*#680`}(z, [`HANDLER_%{%}%`_instr{n#1201, `catch*#13`, `instr*#682`}(n, [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr])])] -[visit_exp state#587] -[visit_id state#587] -[visit_exp `instr*#680`] -[visit_id instr*#680] -[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1201, `catch*#13`, `instr*#682`}(n, [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr])])] +[check_dims] a catch' l n z +[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] +[visit_exp (z, [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] [visit_exp z] [visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr{n#1201, `catch*#13`, `instr*#682`}(n, [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr{n#1201, `catch*#13`, `instr*#682`}(n, [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr])] -[visit_exp n#1201] -[visit_id n#1201] -[visit_exp `catch*#13`] -[visit_id catch*#13] -[visit_exp `instr*#682`] -[visit_id instr*#682] -[visit_exp (n, [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr])] +[visit_exp [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr(n, [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] +[visit_exp (n, [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] [visit_exp n] [visit_id n] -[visit_exp [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}] -[visit_exp [`CATCH_ALL`_catch{labelidx#93}(l)]] -[visit_exp `CATCH_ALL`_catch{labelidx#93}(l)] -[visit_exp labelidx#93] -[visit_id labelidx#93] +[visit_exp [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}] +[visit_exp [`CATCH_ALL`_catch(l)]] +[visit_exp `CATCH_ALL`_catch(l)] [visit_exp (l)] [visit_exp l] [visit_id l] @@ -55017,47 +46087,31 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `catch'*`] [visit_id catch'*] no dims [visit_id catch'*] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#27}(a)] -[visit_exp exnaddr#27] -[visit_id exnaddr#27] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] [visit_exp `THROW_REF`_instr] [visit_exp ()] -[visit_exp [`BR`_instr{labelidx#95}(l)]] -[visit_exp `BR`_instr{labelidx#95}(l)] -[visit_exp labelidx#95] -[visit_id labelidx#95] +[visit_exp [`BR`_instr(l)]] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] not free -[check_dims] a catch' catch*#15 exnaddr#29 exnaddr#31 instr*#694 instr*#696 l labelidx#97 labelidx#99 n n#1203 state#599 z -[visit_exp `%;%`_config{state#599, `instr*#694`}(z, [`HANDLER_%{%}%`_instr{n#1203, `catch*#15`, `instr*#696`}(n, [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr])])] -[visit_exp state#599] -[visit_id state#599] -[visit_exp `instr*#694`] -[visit_id instr*#694] -[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1203, `catch*#15`, `instr*#696`}(n, [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr])])] +[check_dims] a catch' l n z +[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] +[visit_exp (z, [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] [visit_exp z] [visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr{n#1203, `catch*#15`, `instr*#696`}(n, [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr{n#1203, `catch*#15`, `instr*#696`}(n, [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr])] -[visit_exp n#1203] -[visit_id n#1203] -[visit_exp `catch*#15`] -[visit_id catch*#15] -[visit_exp `instr*#696`] -[visit_id instr*#696] -[visit_exp (n, [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr])] +[visit_exp [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr(n, [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] +[visit_exp (n, [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] [visit_exp n] [visit_id n] -[visit_exp [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}] -[visit_exp [`CATCH_ALL_REF`_catch{labelidx#97}(l)]] -[visit_exp `CATCH_ALL_REF`_catch{labelidx#97}(l)] -[visit_exp labelidx#97] -[visit_id labelidx#97] +[visit_exp [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}] +[visit_exp [`CATCH_ALL_REF`_catch(l)]] +[visit_exp `CATCH_ALL_REF`_catch(l)] [visit_exp (l)] [visit_exp l] [visit_id l] @@ -55070,46 +46124,30 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `catch'*`] [visit_id catch'*] no dims [visit_id catch'*] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#29}(a)] -[visit_exp exnaddr#29] -[visit_id exnaddr#29] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] [visit_exp `THROW_REF`_instr] [visit_exp ()] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#31}(a) `BR`_instr{labelidx#99}(l)]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#31}(a)] -[visit_exp exnaddr#31] -[visit_id exnaddr#31] +[visit_exp [`REF.EXN_ADDR`_instr(a) `BR`_instr(l)]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free -[visit_exp `BR`_instr{labelidx#99}(l)] -[visit_exp labelidx#99] -[visit_id labelidx#99] +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] not free -[check_dims] a catch catch' catch*#17 catch*#19 exnaddr#33 exnaddr#35 instr*#708 instr*#710 instr*#712 n n#1205 n#1207 state#611 z -[visit_exp `%;%`_config{state#611, `instr*#708`}(z, [`HANDLER_%{%}%`_instr{n#1205, `catch*#17`, `instr*#710`}(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr])])] -[visit_exp state#611] -[visit_id state#611] -[visit_exp `instr*#708`] -[visit_id instr*#708] -[visit_exp (z, [`HANDLER_%{%}%`_instr{n#1205, `catch*#17`, `instr*#710`}(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr])])] +[check_dims] a catch catch' n z +[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] +[visit_exp (z, [`HANDLER_%{%}%`_instr(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] [visit_exp z] [visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr{n#1205, `catch*#17`, `instr*#710`}(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr{n#1205, `catch*#17`, `instr*#710`}(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr])] -[visit_exp n#1205] -[visit_id n#1205] -[visit_exp `catch*#17`] -[visit_id catch*#17] -[visit_exp `instr*#710`] -[visit_id instr*#710] -[visit_exp (n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr])] +[visit_exp [`HANDLER_%{%}%`_instr(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] +[visit_exp (n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] [visit_exp n] [visit_id n] [visit_exp [catch] ++ catch'*{catch' <- `catch'*`}] @@ -55125,24 +46163,16 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `catch'*`] [visit_id catch'*] no dims [visit_id catch'*] -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#33}(a)] -[visit_exp exnaddr#33] -[visit_id exnaddr#33] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] [visit_exp `THROW_REF`_instr] [visit_exp ()] -[visit_exp [`HANDLER_%{%}%`_instr{n#1207, `catch*#19`, `instr*#712`}(n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#35}(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr{n#1207, `catch*#19`, `instr*#712`}(n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#35}(a) `THROW_REF`_instr])] -[visit_exp n#1207] -[visit_id n#1207] -[visit_exp `catch*#19`] -[visit_id catch*#19] -[visit_exp `instr*#712`] -[visit_id instr*#712] -[visit_exp (n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#35}(a) `THROW_REF`_instr])] +[visit_exp [`HANDLER_%{%}%`_instr(n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] +[visit_exp `HANDLER_%{%}%`_instr(n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] +[visit_exp (n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] [visit_exp n] [visit_id n] not free [visit_exp catch'*{catch' <- `catch'*`}] @@ -55154,25 +46184,19 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `catch'*`] [visit_id catch'*] not free [visit_id catch'*] no dims -[visit_exp [`REF.EXN_ADDR`_instr{exnaddr#35}(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr{exnaddr#35}(a)] -[visit_exp exnaddr#35] -[visit_id exnaddr#35] +[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] +[visit_exp `REF.EXN_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free [visit_exp `THROW_REF`_instr] [visit_exp ()] -[check_dims] X*#12591 X*#12604 X*#12655 blocktype#29 bt catch catch*#21 instr instr*#724 instr*#726 instr*#728 instr*#730 localidx*#1805 m n n#1209 n#1211 resulttype#3023 state#623 t_1 t_2 val z -[visit_exp `%;%`_config{state#623, `instr*#724`}(z, (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr{blocktype#29, `instr*#726`}(bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})])] -[visit_exp state#623] -[visit_id state#623] -[visit_exp `instr*#724`] -[visit_id instr*#724] -[visit_exp (z, (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr{blocktype#29, `instr*#726`}(bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})])] +[check_dims] bt catch instr m n t_1 t_2 val z +[visit_exp `%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})])] +[visit_exp (z, (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})])] [visit_exp z] [visit_id z] -[visit_exp (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr{blocktype#29, `instr*#726`}(bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]] +[visit_exp (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]] [visit_exp (val : val <: instr)^m{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -55185,18 +46209,12 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`TRY_TABLE`_instr{blocktype#29, `instr*#726`}(bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]] -[visit_exp `TRY_TABLE`_instr{blocktype#29, `instr*#726`}(bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] -[visit_exp blocktype#29] -[visit_id blocktype#29] -[visit_exp `instr*#726`] -[visit_id instr*#726] -[visit_exp (bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] +[visit_exp [`TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]] +[visit_exp `TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] +[visit_exp (bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] [visit_exp bt] [visit_id bt] -[visit_exp `%`_list{`X*#12591`}(catch*{catch <- `catch*`})] -[visit_exp `X*#12591`] -[visit_id X*#12591] +[visit_exp `%`_list(catch*{catch <- `catch*`})] [visit_exp (catch*{catch <- `catch*`})] [visit_exp catch*{catch <- `catch*`}] [scope_enter catch] @@ -55216,15 +46234,9 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp [`HANDLER_%{%}%`_instr{n#1209, `catch*#21`, `instr*#728`}(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr{n#1211, `instr*#730`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])]] -[visit_exp `HANDLER_%{%}%`_instr{n#1209, `catch*#21`, `instr*#728`}(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr{n#1211, `instr*#730`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])] -[visit_exp n#1209] -[visit_id n#1209] -[visit_exp `catch*#21`] -[visit_id catch*#21] -[visit_exp `instr*#728`] -[visit_id instr*#728] -[visit_exp (n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr{n#1211, `instr*#730`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])] +[visit_exp [`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])]] +[visit_exp `HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])] +[visit_exp (n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])] [visit_exp n] [visit_id n] [visit_exp catch*{catch <- `catch*`}] @@ -55236,12 +46248,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `catch*`] [visit_id catch*] not free [visit_id catch*] no dims -[visit_exp [`LABEL_%{%}%`_instr{n#1211, `instr*#730`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr{n#1211, `instr*#730`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] -[visit_exp n#1211] -[visit_id n#1211] -[visit_exp `instr*#730`] -[visit_id instr*#730] +[visit_exp [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]] +[visit_exp `LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] [visit_exp (n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] [visit_exp n] [visit_id n] not free @@ -55268,21 +46276,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp ($blocktype_(z, bt) = `%->_%%`_instrtype{resulttype#3023, `localidx*#1805`}(`%`_resulttype{`X*#12604`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12655`}(t_2^n{t_2 <- `t_2*`})))] +[visit_exp ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`})))] [visit_exp $blocktype_(z, bt)] [visit_exp z] [visit_id z] not free [visit_exp bt] [visit_id bt] not free -[visit_exp `%->_%%`_instrtype{resulttype#3023, `localidx*#1805`}(`%`_resulttype{`X*#12604`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12655`}(t_2^n{t_2 <- `t_2*`}))] -[visit_exp resulttype#3023] -[visit_id resulttype#3023] -[visit_exp `localidx*#1805`] -[visit_id localidx*#1805] -[visit_exp (`%`_resulttype{`X*#12604`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12655`}(t_2^n{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#12604`}(t_1^m{t_1 <- `t_1*`})] -[visit_exp `X*#12604`] -[visit_id X*#12604] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1^m{t_1 <- `t_1*`})] [visit_exp (t_1^m{t_1 <- `t_1*`})] [visit_exp t_1^m{t_1 <- `t_1*`}] [scope_enter t_1] @@ -55296,9 +46298,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id t_1*] no dims [visit_id t_1*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#12655`}(t_2^n{t_2 <- `t_2*`})] -[visit_exp `X*#12655`] -[visit_id X*#12655] +[visit_exp `%`_resulttype(t_2^n{t_2 <- `t_2*`})] [visit_exp (t_2^n{t_2 <- `t_2*`})] [visit_exp t_2^n{t_2 <- `t_2*`}] [scope_enter t_2] @@ -55311,15 +46311,9 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[check_dims] catch catch*#23 instr*#733 n n#1213 val -[visit_exp [`HANDLER_%{%}%`_instr{n#1213, `catch*#23`, `instr*#733`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})]] -[visit_exp `HANDLER_%{%}%`_instr{n#1213, `catch*#23`, `instr*#733`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})] -[visit_exp n#1213] -[visit_id n#1213] -[visit_exp `catch*#23`] -[visit_id catch*#23] -[visit_exp `instr*#733`] -[visit_id instr*#733] +[check_dims] catch n val +[visit_exp [`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})]] +[visit_exp `HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})] [visit_exp (n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})] [visit_exp n] [visit_id n] @@ -55403,13 +46397,9 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id instr*] not free [visit_id instr*] no dims [visit_exp []] -[check_dims] instr' instr*#735 n n#1215 -[visit_exp [`LABEL_%{%}%`_instr{n#1215, `instr*#735`}(n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])]] -[visit_exp `LABEL_%{%}%`_instr{n#1215, `instr*#735`}(n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])] -[visit_exp n#1215] -[visit_id n#1215] -[visit_exp `instr*#735`] -[visit_id instr*#735] +[check_dims] instr' n +[visit_exp [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])]] +[visit_exp `LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])] [visit_exp (n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])] [visit_exp n] [visit_id n] @@ -55428,15 +46418,9 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] f frame#1097 instr*#738 n n#1217 -[visit_exp [`FRAME_%{%}%`_instr{n#1217, frame#1097, `instr*#738`}(n, f, [`TRAP`_instr])]] -[visit_exp `FRAME_%{%}%`_instr{n#1217, frame#1097, `instr*#738`}(n, f, [`TRAP`_instr])] -[visit_exp n#1217] -[visit_id n#1217] -[visit_exp frame#1097] -[visit_id frame#1097] -[visit_exp `instr*#738`] -[visit_id instr*#738] +[check_dims] f n +[visit_exp [`FRAME_%{%}%`_instr(n, f, [`TRAP`_instr])]] +[visit_exp `FRAME_%{%}%`_instr(n, f, [`TRAP`_instr])] [visit_exp (n, f, [`TRAP`_instr])] [visit_exp n] [visit_id n] @@ -55448,19 +46432,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] instr*#750 localidx#13 state#635 val x z -[visit_exp `%;%`_config{state#635, `instr*#750`}(z, [`LOCAL.GET`_instr{localidx#13}(x)])] -[visit_exp state#635] -[visit_id state#635] -[visit_exp `instr*#750`] -[visit_id instr*#750] -[visit_exp (z, [`LOCAL.GET`_instr{localidx#13}(x)])] +[check_dims] val x z +[visit_exp `%;%`_config(z, [`LOCAL.GET`_instr(x)])] +[visit_exp (z, [`LOCAL.GET`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`LOCAL.GET`_instr{localidx#13}(x)]] -[visit_exp `LOCAL.GET`_instr{localidx#13}(x)] -[visit_exp localidx#13] -[visit_id localidx#13] +[visit_exp [`LOCAL.GET`_instr(x)]] +[visit_exp `LOCAL.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -55477,30 +46455,20 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp ?(val)] [visit_exp val] [visit_id val] not free -[check_dims] instr*#762 instr*#774 localidx#15 state#647 state#659 val x z -[visit_exp `%;%`_config{state#647, `instr*#762`}(z, [(val : val <: instr) `LOCAL.SET`_instr{localidx#15}(x)])] -[visit_exp state#647] -[visit_id state#647] -[visit_exp `instr*#762`] -[visit_id instr*#762] -[visit_exp (z, [(val : val <: instr) `LOCAL.SET`_instr{localidx#15}(x)])] +[check_dims] val x z +[visit_exp `%;%`_config(z, [(val : val <: instr) `LOCAL.SET`_instr(x)])] +[visit_exp (z, [(val : val <: instr) `LOCAL.SET`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [(val : val <: instr) `LOCAL.SET`_instr{localidx#15}(x)]] +[visit_exp [(val : val <: instr) `LOCAL.SET`_instr(x)]] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `LOCAL.SET`_instr{localidx#15}(x)] -[visit_exp localidx#15] -[visit_id localidx#15] +[visit_exp `LOCAL.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#659, `instr*#774`}($with_local(z, x, val), [])] -[visit_exp state#659] -[visit_id state#659] -[visit_exp `instr*#774`] -[visit_id instr*#774] +[visit_exp `%;%`_config($with_local(z, x, val), [])] [visit_exp ($with_local(z, x, val), [])] [visit_exp $with_local(z, x, val)] [visit_exp z] @@ -55510,43 +46478,33 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp val] [visit_id val] not free [visit_exp []] -[check_dims] localidx#17 localidx#19 val x -[visit_exp [(val : val <: instr) `LOCAL.TEE`_instr{localidx#17}(x)]] +[check_dims] val x +[visit_exp [(val : val <: instr) `LOCAL.TEE`_instr(x)]] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `LOCAL.TEE`_instr{localidx#17}(x)] -[visit_exp localidx#17] -[visit_id localidx#17] +[visit_exp `LOCAL.TEE`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp [(val : val <: instr) (val : val <: instr) `LOCAL.SET`_instr{localidx#19}(x)]] +[visit_exp [(val : val <: instr) (val : val <: instr) `LOCAL.SET`_instr(x)]] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] not free [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] not free -[visit_exp `LOCAL.SET`_instr{localidx#19}(x)] -[visit_exp localidx#19] -[visit_id localidx#19] +[visit_exp `LOCAL.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[check_dims] globalidx#17 instr*#786 state#671 val val#2 x z -[visit_exp `%;%`_config{state#671, `instr*#786`}(z, [`GLOBAL.GET`_instr{globalidx#17}(x)])] -[visit_exp state#671] -[visit_id state#671] -[visit_exp `instr*#786`] -[visit_id instr*#786] -[visit_exp (z, [`GLOBAL.GET`_instr{globalidx#17}(x)])] +[check_dims] val x z +[visit_exp `%;%`_config(z, [`GLOBAL.GET`_instr(x)])] +[visit_exp (z, [`GLOBAL.GET`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`GLOBAL.GET`_instr{globalidx#17}(x)]] -[visit_exp `GLOBAL.GET`_instr{globalidx#17}(x)] -[visit_exp globalidx#17] -[visit_id globalidx#17] +[visit_exp [`GLOBAL.GET`_instr(x)]] +[visit_exp `GLOBAL.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -55554,41 +46512,29 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp ($global(z, x).`VALUE`_globalinst{val#2} = val)] -[visit_exp $global(z, x).`VALUE`_globalinst{val#2}] +[visit_exp ($global(z, x).`VALUE`_globalinst = val)] +[visit_exp $global(z, x).`VALUE`_globalinst] [visit_exp $global(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp val#2] -[visit_id val#2] [visit_exp val] [visit_id val] not free -[check_dims] globalidx#19 instr*#798 instr*#810 state#683 state#695 val x z -[visit_exp `%;%`_config{state#683, `instr*#798`}(z, [(val : val <: instr) `GLOBAL.SET`_instr{globalidx#19}(x)])] -[visit_exp state#683] -[visit_id state#683] -[visit_exp `instr*#798`] -[visit_id instr*#798] -[visit_exp (z, [(val : val <: instr) `GLOBAL.SET`_instr{globalidx#19}(x)])] +[check_dims] val x z +[visit_exp `%;%`_config(z, [(val : val <: instr) `GLOBAL.SET`_instr(x)])] +[visit_exp (z, [(val : val <: instr) `GLOBAL.SET`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [(val : val <: instr) `GLOBAL.SET`_instr{globalidx#19}(x)]] +[visit_exp [(val : val <: instr) `GLOBAL.SET`_instr(x)]] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `GLOBAL.SET`_instr{globalidx#19}(x)] -[visit_exp globalidx#19] -[visit_id globalidx#19] +[visit_exp `GLOBAL.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#695, `instr*#810`}($with_global(z, x, val), [])] -[visit_exp state#695] -[visit_id state#695] -[visit_exp `instr*#810`] -[visit_id instr*#810] +[visit_exp `%;%`_config($with_global(z, x, val), [])] [visit_exp ($with_global(z, x, val), [])] [visit_exp $with_global(z, x, val)] [visit_exp z] @@ -55598,121 +46544,87 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp val] [visit_id val] not free [visit_exp []] -[check_dims] at i i#32897 instr*#822 numtype#75 ref*#5 state#707 tableidx#57 x z -[visit_exp `%;%`_config{state#707, `instr*#822`}(z, [`CONST`_instr{numtype#75}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#57}(x)])] -[visit_exp state#707] -[visit_id state#707] -[visit_exp `instr*#822`] -[visit_id instr*#822] -[visit_exp (z, [`CONST`_instr{numtype#75}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#57}(x)])] +[check_dims] at i x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#75}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#57}(x)]] -[visit_exp `CONST`_instr{numtype#75}((at : addrtype <: numtype), i)] -[visit_exp numtype#75] -[visit_id numtype#75] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `TABLE.GET`_instr{tableidx#57}(x)] -[visit_exp tableidx#57] -[visit_id tableidx#57] +[visit_exp `TABLE.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (i!`%`_num_{i#32897}.0 >= |$table(z, x).`REFS`_tableinst{`ref*#5`}|)] -[visit_exp i!`%`_num_{i#32897}.0] -[visit_exp i!`%`_num_{i#32897}] +[visit_exp (i!`%`_num_.0 >= |$table(z, x).`REFS`_tableinst|)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#32897] -[visit_id i#32897] -[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#5`}|] -[visit_exp $table(z, x).`REFS`_tableinst{`ref*#5`}] +[visit_exp |$table(z, x).`REFS`_tableinst|] +[visit_exp $table(z, x).`REFS`_tableinst] [visit_exp $table(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ref*#5`] -[visit_id ref*#5] -[check_dims] at i i#32947 i#32973 instr*#834 numtype#77 ref*#6 ref*#7 state#719 tableidx#59 x z -[visit_exp `%;%`_config{state#719, `instr*#834`}(z, [`CONST`_instr{numtype#77}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#59}(x)])] -[visit_exp state#719] -[visit_id state#719] -[visit_exp `instr*#834`] -[visit_id instr*#834] -[visit_exp (z, [`CONST`_instr{numtype#77}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#59}(x)])] +[check_dims] at i x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#77}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#59}(x)]] -[visit_exp `CONST`_instr{numtype#77}((at : addrtype <: numtype), i)] -[visit_exp numtype#77] -[visit_id numtype#77] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `TABLE.GET`_instr{tableidx#59}(x)] -[visit_exp tableidx#59] -[visit_id tableidx#59] +[visit_exp `TABLE.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp [($table(z, x).`REFS`_tableinst{`ref*#6`}[i!`%`_num_{i#32947}.0] : ref <: instr)]] -[visit_exp ($table(z, x).`REFS`_tableinst{`ref*#6`}[i!`%`_num_{i#32947}.0] : ref <: instr)] -[visit_exp $table(z, x).`REFS`_tableinst{`ref*#6`}[i!`%`_num_{i#32947}.0]] -[visit_exp $table(z, x).`REFS`_tableinst{`ref*#6`}] +[visit_exp [($table(z, x).`REFS`_tableinst[i!`%`_num_.0] : ref <: instr)]] +[visit_exp ($table(z, x).`REFS`_tableinst[i!`%`_num_.0] : ref <: instr)] +[visit_exp $table(z, x).`REFS`_tableinst[i!`%`_num_.0]] +[visit_exp $table(z, x).`REFS`_tableinst] [visit_exp $table(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ref*#6`] -[visit_id ref*#6] -[visit_exp i!`%`_num_{i#32947}.0] -[visit_exp i!`%`_num_{i#32947}] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#32947] -[visit_id i#32947] -[visit_exp (i!`%`_num_{i#32973}.0 < |$table(z, x).`REFS`_tableinst{`ref*#7`}|)] -[visit_exp i!`%`_num_{i#32973}.0] -[visit_exp i!`%`_num_{i#32973}] +[visit_exp (i!`%`_num_.0 < |$table(z, x).`REFS`_tableinst|)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#32973] -[visit_id i#32973] -[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#7`}|] -[visit_exp $table(z, x).`REFS`_tableinst{`ref*#7`}] +[visit_exp |$table(z, x).`REFS`_tableinst|] +[visit_exp $table(z, x).`REFS`_tableinst] [visit_exp $table(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ref*#7`] -[visit_id ref*#7] -[check_dims] at i i#33027 instr*#846 instr*#858 numtype#79 ref ref*#8 state#731 state#743 tableidx#61 x z -[visit_exp `%;%`_config{state#731, `instr*#846`}(z, [`CONST`_instr{numtype#79}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#61}(x)])] -[visit_exp state#731] -[visit_id state#731] -[visit_exp `instr*#846`] -[visit_id instr*#846] -[visit_exp (z, [`CONST`_instr{numtype#79}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#61}(x)])] +[check_dims] at i ref x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#79}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#61}(x)]] -[visit_exp `CONST`_instr{numtype#79}((at : addrtype <: numtype), i)] -[visit_exp numtype#79] -[visit_id numtype#79] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] @@ -55722,52 +46634,36 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `TABLE.SET`_instr{tableidx#61}(x)] -[visit_exp tableidx#61] -[visit_id tableidx#61] +[visit_exp `TABLE.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#743, `instr*#858`}(z, [`TRAP`_instr])] -[visit_exp state#743] -[visit_id state#743] -[visit_exp `instr*#858`] -[visit_id instr*#858] +[visit_exp `%;%`_config(z, [`TRAP`_instr])] [visit_exp (z, [`TRAP`_instr])] [visit_exp z] [visit_id z] not free [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (i!`%`_num_{i#33027}.0 >= |$table(z, x).`REFS`_tableinst{`ref*#8`}|)] -[visit_exp i!`%`_num_{i#33027}.0] -[visit_exp i!`%`_num_{i#33027}] +[visit_exp (i!`%`_num_.0 >= |$table(z, x).`REFS`_tableinst|)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#33027] -[visit_id i#33027] -[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#8`}|] -[visit_exp $table(z, x).`REFS`_tableinst{`ref*#8`}] +[visit_exp |$table(z, x).`REFS`_tableinst|] +[visit_exp $table(z, x).`REFS`_tableinst] [visit_exp $table(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ref*#8`] -[visit_id ref*#8] -[check_dims] at i i#33077 i#33103 instr*#870 instr*#882 numtype#81 ref ref*#9 state#755 state#767 tableidx#63 x z -[visit_exp `%;%`_config{state#755, `instr*#870`}(z, [`CONST`_instr{numtype#81}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#63}(x)])] -[visit_exp state#755] -[visit_id state#755] -[visit_exp `instr*#870`] -[visit_id instr*#870] -[visit_exp (z, [`CONST`_instr{numtype#81}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#63}(x)])] +[check_dims] at i ref x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#81}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#63}(x)]] -[visit_exp `CONST`_instr{numtype#81}((at : addrtype <: numtype), i)] -[visit_exp numtype#81] -[visit_id numtype#81] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] @@ -55777,106 +46673,74 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `TABLE.SET`_instr{tableidx#63}(x)] -[visit_exp tableidx#63] -[visit_id tableidx#63] +[visit_exp `TABLE.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#767, `instr*#882`}($with_table(z, x, i!`%`_num_{i#33077}.0, ref), [])] -[visit_exp state#767] -[visit_id state#767] -[visit_exp `instr*#882`] -[visit_id instr*#882] -[visit_exp ($with_table(z, x, i!`%`_num_{i#33077}.0, ref), [])] -[visit_exp $with_table(z, x, i!`%`_num_{i#33077}.0, ref)] +[visit_exp `%;%`_config($with_table(z, x, i!`%`_num_.0, ref), [])] +[visit_exp ($with_table(z, x, i!`%`_num_.0, ref), [])] +[visit_exp $with_table(z, x, i!`%`_num_.0, ref)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp i!`%`_num_{i#33077}.0] -[visit_exp i!`%`_num_{i#33077}] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#33077] -[visit_id i#33077] [visit_exp ref] [visit_id ref] not free [visit_exp []] -[visit_exp (i!`%`_num_{i#33103}.0 < |$table(z, x).`REFS`_tableinst{`ref*#9`}|)] -[visit_exp i!`%`_num_{i#33103}.0] -[visit_exp i!`%`_num_{i#33103}] +[visit_exp (i!`%`_num_.0 < |$table(z, x).`REFS`_tableinst|)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#33103] -[visit_id i#33103] -[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#9`}|] -[visit_exp $table(z, x).`REFS`_tableinst{`ref*#9`}] +[visit_exp |$table(z, x).`REFS`_tableinst|] +[visit_exp $table(z, x).`REFS`_tableinst] [visit_exp $table(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ref*#9`] -[visit_id ref*#9] -[check_dims] addrtype#1123 at i#33141 instr*#894 lim limits#1123 n numtype#83 ref*#10 reftype#3465 rt state#779 tableidx#65 tabletype#880 x z -[visit_exp `%;%`_config{state#779, `instr*#894`}(z, [`TABLE.SIZE`_instr{tableidx#65}(x)])] -[visit_exp state#779] -[visit_id state#779] -[visit_exp `instr*#894`] -[visit_id instr*#894] -[visit_exp (z, [`TABLE.SIZE`_instr{tableidx#65}(x)])] +[check_dims] at lim n rt x z +[visit_exp `%;%`_config(z, [`TABLE.SIZE`_instr(x)])] +[visit_exp (z, [`TABLE.SIZE`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`TABLE.SIZE`_instr{tableidx#65}(x)]] -[visit_exp `TABLE.SIZE`_instr{tableidx#65}(x)] -[visit_exp tableidx#65] -[visit_id tableidx#65] +[visit_exp [`TABLE.SIZE`_instr(x)]] +[visit_exp `TABLE.SIZE`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp [`CONST`_instr{numtype#83}((at : addrtype <: numtype), `%`_num_{i#33141}(n))]] -[visit_exp `CONST`_instr{numtype#83}((at : addrtype <: numtype), `%`_num_{i#33141}(n))] -[visit_exp numtype#83] -[visit_id numtype#83] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33141}(n))] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n))]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] -[visit_exp `%`_num_{i#33141}(n)] -[visit_exp i#33141] -[visit_id i#33141] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp (|$table(z, x).`REFS`_tableinst{`ref*#10`}| = n)] -[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#10`}|] -[visit_exp $table(z, x).`REFS`_tableinst{`ref*#10`}] +[visit_exp (|$table(z, x).`REFS`_tableinst| = n)] +[visit_exp |$table(z, x).`REFS`_tableinst|] +[visit_exp $table(z, x).`REFS`_tableinst] [visit_exp $table(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ref*#10`] -[visit_id ref*#10] [visit_exp n] [visit_id n] not free -[visit_exp ($table(z, x).`TYPE`_tableinst{tabletype#880} = `%%%`_tabletype{addrtype#1123, limits#1123, reftype#3465}(at, lim, rt))] -[visit_exp $table(z, x).`TYPE`_tableinst{tabletype#880}] +[visit_exp ($table(z, x).`TYPE`_tableinst = `%%%`_tabletype(at, lim, rt))] +[visit_exp $table(z, x).`TYPE`_tableinst] [visit_exp $table(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp tabletype#880] -[visit_id tabletype#880] -[visit_exp `%%%`_tabletype{addrtype#1123, limits#1123, reftype#3465}(at, lim, rt)] -[visit_exp addrtype#1123] -[visit_id addrtype#1123] -[visit_exp limits#1123] -[visit_id limits#1123] -[visit_exp reftype#3465] -[visit_id reftype#3465] +[visit_exp `%%%`_tabletype(at, lim, rt)] [visit_exp (at, lim, rt)] [visit_exp at] [visit_id at] not free @@ -55884,44 +46748,30 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id lim] [visit_exp rt] [visit_id rt] -[check_dims] at i#33189 i#33249 instr*#906 instr*#918 n numtype#85 numtype#87 ref ref*#11 state#791 state#803 tableidx#67 ti x z -[visit_exp `%;%`_config{state#791, `instr*#906`}(z, [(ref : ref <: instr) `CONST`_instr{numtype#85}((at : addrtype <: numtype), `%`_num_{i#33189}(n)) `TABLE.GROW`_instr{tableidx#67}(x)])] -[visit_exp state#791] -[visit_id state#791] -[visit_exp `instr*#906`] -[visit_id instr*#906] -[visit_exp (z, [(ref : ref <: instr) `CONST`_instr{numtype#85}((at : addrtype <: numtype), `%`_num_{i#33189}(n)) `TABLE.GROW`_instr{tableidx#67}(x)])] +[check_dims] at n ref ti x z +[visit_exp `%;%`_config(z, [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)])] +[visit_exp (z, [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [(ref : ref <: instr) `CONST`_instr{numtype#85}((at : addrtype <: numtype), `%`_num_{i#33189}(n)) `TABLE.GROW`_instr{tableidx#67}(x)]] +[visit_exp [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `CONST`_instr{numtype#85}((at : addrtype <: numtype), `%`_num_{i#33189}(n))] -[visit_exp numtype#85] -[visit_id numtype#85] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33189}(n))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] -[visit_exp `%`_num_{i#33189}(n)] -[visit_exp i#33189] -[visit_id i#33189] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `TABLE.GROW`_instr{tableidx#67}(x)] -[visit_exp tableidx#67] -[visit_id tableidx#67] +[visit_exp `TABLE.GROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#803, `instr*#918`}($with_tableinst(z, x, ti), [`CONST`_instr{numtype#87}((at : addrtype <: numtype), `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|))])] -[visit_exp state#803] -[visit_id state#803] -[visit_exp `instr*#918`] -[visit_id instr*#918] -[visit_exp ($with_tableinst(z, x, ti), [`CONST`_instr{numtype#87}((at : addrtype <: numtype), `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|))])] +[visit_exp `%;%`_config($with_tableinst(z, x, ti), [`CONST`_instr((at : addrtype <: numtype), `%`_num_(|$table(z, x).`REFS`_tableinst|))])] +[visit_exp ($with_tableinst(z, x, ti), [`CONST`_instr((at : addrtype <: numtype), `%`_num_(|$table(z, x).`REFS`_tableinst|))])] [visit_exp $with_tableinst(z, x, ti)] [visit_exp z] [visit_id z] not free @@ -55929,27 +46779,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] not free [visit_exp ti] [visit_id ti] -[visit_exp [`CONST`_instr{numtype#87}((at : addrtype <: numtype), `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|))]] -[visit_exp `CONST`_instr{numtype#87}((at : addrtype <: numtype), `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|))] -[visit_exp numtype#87] -[visit_id numtype#87] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|))] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_(|$table(z, x).`REFS`_tableinst|))]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(|$table(z, x).`REFS`_tableinst|))] +[visit_exp ((at : addrtype <: numtype), `%`_num_(|$table(z, x).`REFS`_tableinst|))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|)] -[visit_exp i#33249] -[visit_id i#33249] -[visit_exp (|$table(z, x).`REFS`_tableinst{`ref*#11`}|)] -[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#11`}|] -[visit_exp $table(z, x).`REFS`_tableinst{`ref*#11`}] +[visit_exp `%`_num_(|$table(z, x).`REFS`_tableinst|)] +[visit_exp (|$table(z, x).`REFS`_tableinst|)] +[visit_exp |$table(z, x).`REFS`_tableinst|] +[visit_exp $table(z, x).`REFS`_tableinst] [visit_exp $table(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ref*#11`] -[visit_id ref*#11] [visit_exp (ti = $growtable($table(z, x), n, ref))] [visit_exp ti] [visit_id ti] not free @@ -55963,57 +46807,39 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp ref] [visit_id ref] not free -[check_dims] at i#33285 i#33321 instr*#930 instr*#942 n numtype#89 numtype#91 ref state#815 state#827 tableidx#69 x z -[visit_exp `%;%`_config{state#815, `instr*#930`}(z, [(ref : ref <: instr) `CONST`_instr{numtype#89}((at : addrtype <: numtype), `%`_num_{i#33285}(n)) `TABLE.GROW`_instr{tableidx#69}(x)])] -[visit_exp state#815] -[visit_id state#815] -[visit_exp `instr*#930`] -[visit_id instr*#930] -[visit_exp (z, [(ref : ref <: instr) `CONST`_instr{numtype#89}((at : addrtype <: numtype), `%`_num_{i#33285}(n)) `TABLE.GROW`_instr{tableidx#69}(x)])] +[check_dims] at n ref x z +[visit_exp `%;%`_config(z, [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)])] +[visit_exp (z, [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [(ref : ref <: instr) `CONST`_instr{numtype#89}((at : addrtype <: numtype), `%`_num_{i#33285}(n)) `TABLE.GROW`_instr{tableidx#69}(x)]] +[visit_exp [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `CONST`_instr{numtype#89}((at : addrtype <: numtype), `%`_num_{i#33285}(n))] -[visit_exp numtype#89] -[visit_id numtype#89] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33285}(n))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] -[visit_exp `%`_num_{i#33285}(n)] -[visit_exp i#33285] -[visit_id i#33285] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `TABLE.GROW`_instr{tableidx#69}(x)] -[visit_exp tableidx#69] -[visit_id tableidx#69] +[visit_exp `TABLE.GROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#827, `instr*#942`}(z, [`CONST`_instr{numtype#91}((at : addrtype <: numtype), `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] -[visit_exp state#827] -[visit_id state#827] -[visit_exp `instr*#942`] -[visit_id instr*#942] -[visit_exp (z, [`CONST`_instr{numtype#91}((at : addrtype <: numtype), `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] [visit_exp z] [visit_id z] not free -[visit_exp [`CONST`_instr{numtype#91}((at : addrtype <: numtype), `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))]] -[visit_exp `CONST`_instr{numtype#91}((at : addrtype <: numtype), `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] -[visit_exp numtype#91] -[visit_id numtype#91] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] +[visit_exp ((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] -[visit_exp i#33321] -[visit_id i#33321] +[visit_exp `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] [visit_exp ($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] [visit_exp $inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))] [visit_exp $size((at : addrtype <: numtype))] @@ -56023,19 +46849,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp - (1 : nat <:> int)] [visit_exp (1 : nat <:> int)] [visit_exp 1] -[check_dims] at i i#33359 i#33387 instr*#954 n numtype#93 numtype#95 ref*#12 state#839 tableidx#71 val x z -[visit_exp `%;%`_config{state#839, `instr*#954`}(z, [`CONST`_instr{numtype#93}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#95}((at : addrtype <: numtype), `%`_num_{i#33359}(n)) `TABLE.FILL`_instr{tableidx#71}(x)])] -[visit_exp state#839] -[visit_id state#839] -[visit_exp `instr*#954`] -[visit_id instr*#954] -[visit_exp (z, [`CONST`_instr{numtype#93}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#95}((at : addrtype <: numtype), `%`_num_{i#33359}(n)) `TABLE.FILL`_instr{tableidx#71}(x)])] +[check_dims] at i n val x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#93}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#95}((at : addrtype <: numtype), `%`_num_{i#33359}(n)) `TABLE.FILL`_instr{tableidx#71}(x)]] -[visit_exp `CONST`_instr{numtype#93}((at : addrtype <: numtype), i)] -[visit_exp numtype#93] -[visit_id numtype#93] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] @@ -56045,60 +46865,44 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `CONST`_instr{numtype#95}((at : addrtype <: numtype), `%`_num_{i#33359}(n))] -[visit_exp numtype#95] -[visit_id numtype#95] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33359}(n))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#33359}(n)] -[visit_exp i#33359] -[visit_id i#33359] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `TABLE.FILL`_instr{tableidx#71}(x)] -[visit_exp tableidx#71] -[visit_id tableidx#71] +[visit_exp `TABLE.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp ((i!`%`_num_{i#33387}.0 + n) > |$table(z, x).`REFS`_tableinst{`ref*#12`}|)] -[visit_exp (i!`%`_num_{i#33387}.0 + n)] -[visit_exp i!`%`_num_{i#33387}.0] -[visit_exp i!`%`_num_{i#33387}] +[visit_exp ((i!`%`_num_.0 + n) > |$table(z, x).`REFS`_tableinst|)] +[visit_exp (i!`%`_num_.0 + n)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#33387] -[visit_id i#33387] [visit_exp n] [visit_id n] not free -[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#12`}|] -[visit_exp $table(z, x).`REFS`_tableinst{`ref*#12`}] +[visit_exp |$table(z, x).`REFS`_tableinst|] +[visit_exp $table(z, x).`REFS`_tableinst] [visit_exp $table(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ref*#12`] -[visit_id ref*#12] -[check_dims] at i i#33437 instr*#966 n numtype#97 numtype#99 state#851 tableidx#73 val x z -[visit_exp `%;%`_config{state#851, `instr*#966`}(z, [`CONST`_instr{numtype#97}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#99}((at : addrtype <: numtype), `%`_num_{i#33437}(n)) `TABLE.FILL`_instr{tableidx#73}(x)])] -[visit_exp state#851] -[visit_id state#851] -[visit_exp `instr*#966`] -[visit_id instr*#966] -[visit_exp (z, [`CONST`_instr{numtype#97}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#99}((at : addrtype <: numtype), `%`_num_{i#33437}(n)) `TABLE.FILL`_instr{tableidx#73}(x)])] +[check_dims] at i n val x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#97}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#99}((at : addrtype <: numtype), `%`_num_{i#33437}(n)) `TABLE.FILL`_instr{tableidx#73}(x)]] -[visit_exp `CONST`_instr{numtype#97}((at : addrtype <: numtype), i)] -[visit_exp numtype#97] -[visit_id numtype#97] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] @@ -56108,22 +46912,16 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `CONST`_instr{numtype#99}((at : addrtype <: numtype), `%`_num_{i#33437}(n))] -[visit_exp numtype#99] -[visit_id numtype#99] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33437}(n))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#33437}(n)] -[visit_exp i#33437] -[visit_id i#33437] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `TABLE.FILL`_instr{tableidx#73}(x)] -[visit_exp tableidx#73] -[visit_id tableidx#73] +[visit_exp `TABLE.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -56132,19 +46930,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp n] [visit_id n] not free [visit_exp 0] -[check_dims] at i i#33489 i#33555 i#33565 i#33587 instr*#978 n numtype#101 numtype#103 numtype#105 numtype#107 numtype#109 state#863 tableidx#75 tableidx#77 tableidx#79 val x z -[visit_exp `%;%`_config{state#863, `instr*#978`}(z, [`CONST`_instr{numtype#101}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#103}((at : addrtype <: numtype), `%`_num_{i#33489}(n)) `TABLE.FILL`_instr{tableidx#75}(x)])] -[visit_exp state#863] -[visit_id state#863] -[visit_exp `instr*#978`] -[visit_id instr*#978] -[visit_exp (z, [`CONST`_instr{numtype#101}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#103}((at : addrtype <: numtype), `%`_num_{i#33489}(n)) `TABLE.FILL`_instr{tableidx#75}(x)])] +[check_dims] at i n val x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#101}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#103}((at : addrtype <: numtype), `%`_num_{i#33489}(n)) `TABLE.FILL`_instr{tableidx#75}(x)]] -[visit_exp `CONST`_instr{numtype#101}((at : addrtype <: numtype), i)] -[visit_exp numtype#101] -[visit_id numtype#101] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] @@ -56154,29 +46946,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `CONST`_instr{numtype#103}((at : addrtype <: numtype), `%`_num_{i#33489}(n))] -[visit_exp numtype#103] -[visit_id numtype#103] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33489}(n))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#33489}(n)] -[visit_exp i#33489] -[visit_id i#33489] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `TABLE.FILL`_instr{tableidx#75}(x)] -[visit_exp tableidx#75] -[visit_id tableidx#75] +[visit_exp `TABLE.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp [`CONST`_instr{numtype#105}((at : addrtype <: numtype), i) (val : val <: instr) `TABLE.SET`_instr{tableidx#77}(x) `CONST`_instr{numtype#107}((at : addrtype <: numtype), `%`_num_{i#33565}((i!`%`_num_{i#33555}.0 + 1))) (val : val <: instr) `CONST`_instr{numtype#109}((at : addrtype <: numtype), `%`_num_{i#33587}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.FILL`_instr{tableidx#79}(x)]] -[visit_exp `CONST`_instr{numtype#105}((at : addrtype <: numtype), i)] -[visit_exp numtype#105] -[visit_id numtype#105] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `TABLE.SET`_instr(x) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.FILL`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] @@ -56186,44 +46970,32 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] not free -[visit_exp `TABLE.SET`_instr{tableidx#77}(x)] -[visit_exp tableidx#77] -[visit_id tableidx#77] +[visit_exp `TABLE.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp `CONST`_instr{numtype#107}((at : addrtype <: numtype), `%`_num_{i#33565}((i!`%`_num_{i#33555}.0 + 1)))] -[visit_exp numtype#107] -[visit_id numtype#107] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33565}((i!`%`_num_{i#33555}.0 + 1)))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] +[visit_exp ((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#33565}((i!`%`_num_{i#33555}.0 + 1))] -[visit_exp i#33565] -[visit_id i#33565] -[visit_exp ((i!`%`_num_{i#33555}.0 + 1))] -[visit_exp (i!`%`_num_{i#33555}.0 + 1)] -[visit_exp i!`%`_num_{i#33555}.0] -[visit_exp i!`%`_num_{i#33555}] +[visit_exp `%`_num_((i!`%`_num_.0 + 1))] +[visit_exp ((i!`%`_num_.0 + 1))] +[visit_exp (i!`%`_num_.0 + 1)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#33555] -[visit_id i#33555] [visit_exp 1] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] not free -[visit_exp `CONST`_instr{numtype#109}((at : addrtype <: numtype), `%`_num_{i#33587}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#109] -[visit_id numtype#109] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#33587}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp ((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#33587}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#33587] -[visit_id i#33587] +[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - (1 : nat <:> int))] @@ -56232,56 +47004,40 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `TABLE.FILL`_instr{tableidx#79}(x)] -[visit_exp tableidx#79] -[visit_id tableidx#79] +[visit_exp `TABLE.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[check_dims] at' at_1 at_2 i#33653 i#33695 i#33721 i_1 i_2 instr*#990 n numtype#111 numtype#113 numtype#115 ref*#13 ref*#14 state#875 tableidx#81 x_1 x_2 z -[visit_exp `%;%`_config{state#875, `instr*#990`}(z, [`CONST`_instr{numtype#111}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#113}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#115}((at' : addrtype <: numtype), `%`_num_{i#33653}(n)) `TABLE.COPY`_instr{tableidx#81}(x_1, x_2)])] -[visit_exp state#875] -[visit_id state#875] -[visit_exp `instr*#990`] -[visit_id instr*#990] -[visit_exp (z, [`CONST`_instr{numtype#111}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#113}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#115}((at' : addrtype <: numtype), `%`_num_{i#33653}(n)) `TABLE.COPY`_instr{tableidx#81}(x_1, x_2)])] +[check_dims] at' at_1 at_2 i_1 i_2 n x_1 x_2 z +[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x_1, x_2)])] +[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x_1, x_2)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#111}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#113}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#115}((at' : addrtype <: numtype), `%`_num_{i#33653}(n)) `TABLE.COPY`_instr{tableidx#81}(x_1, x_2)]] -[visit_exp `CONST`_instr{numtype#111}((at_1 : addrtype <: numtype), i_1)] -[visit_exp numtype#111] -[visit_id numtype#111] +[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x_1, x_2)]] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] [visit_exp ((at_1 : addrtype <: numtype), i_1)] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] [visit_exp i_1] [visit_id i_1] -[visit_exp `CONST`_instr{numtype#113}((at_2 : addrtype <: numtype), i_2)] -[visit_exp numtype#113] -[visit_id numtype#113] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] [visit_exp ((at_2 : addrtype <: numtype), i_2)] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#115}((at' : addrtype <: numtype), `%`_num_{i#33653}(n))] -[visit_exp numtype#115] -[visit_id numtype#115] -[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#33653}(n))] +[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] [visit_exp (at' : addrtype <: numtype)] [visit_exp at'] [visit_id at'] -[visit_exp `%`_num_{i#33653}(n)] -[visit_exp i#33653] -[visit_id i#33653] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `TABLE.COPY`_instr{tableidx#81}(x_1, x_2)] -[visit_exp tableidx#81] -[visit_id tableidx#81] +[visit_exp `TABLE.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] @@ -56290,89 +47046,67 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i_1!`%`_num_{i#33695}.0 + n) > |$table(z, x_1).`REFS`_tableinst{`ref*#13`}|) \/ ((i_2!`%`_num_{i#33721}.0 + n) > |$table(z, x_2).`REFS`_tableinst{`ref*#14`}|))] -[visit_exp ((i_1!`%`_num_{i#33695}.0 + n) > |$table(z, x_1).`REFS`_tableinst{`ref*#13`}|)] -[visit_exp (i_1!`%`_num_{i#33695}.0 + n)] -[visit_exp i_1!`%`_num_{i#33695}.0] -[visit_exp i_1!`%`_num_{i#33695}] +[visit_exp (((i_1!`%`_num_.0 + n) > |$table(z, x_1).`REFS`_tableinst|) \/ ((i_2!`%`_num_.0 + n) > |$table(z, x_2).`REFS`_tableinst|))] +[visit_exp ((i_1!`%`_num_.0 + n) > |$table(z, x_1).`REFS`_tableinst|)] +[visit_exp (i_1!`%`_num_.0 + n)] +[visit_exp i_1!`%`_num_.0] +[visit_exp i_1!`%`_num_] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#33695] -[visit_id i#33695] [visit_exp n] [visit_id n] not free -[visit_exp |$table(z, x_1).`REFS`_tableinst{`ref*#13`}|] -[visit_exp $table(z, x_1).`REFS`_tableinst{`ref*#13`}] +[visit_exp |$table(z, x_1).`REFS`_tableinst|] +[visit_exp $table(z, x_1).`REFS`_tableinst] [visit_exp $table(z, x_1)] [visit_exp z] [visit_id z] not free [visit_exp x_1] [visit_id x_1] not free -[visit_exp `ref*#13`] -[visit_id ref*#13] -[visit_exp ((i_2!`%`_num_{i#33721}.0 + n) > |$table(z, x_2).`REFS`_tableinst{`ref*#14`}|)] -[visit_exp (i_2!`%`_num_{i#33721}.0 + n)] -[visit_exp i_2!`%`_num_{i#33721}.0] -[visit_exp i_2!`%`_num_{i#33721}] +[visit_exp ((i_2!`%`_num_.0 + n) > |$table(z, x_2).`REFS`_tableinst|)] +[visit_exp (i_2!`%`_num_.0 + n)] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#33721] -[visit_id i#33721] [visit_exp n] [visit_id n] not free -[visit_exp |$table(z, x_2).`REFS`_tableinst{`ref*#14`}|] -[visit_exp $table(z, x_2).`REFS`_tableinst{`ref*#14`}] +[visit_exp |$table(z, x_2).`REFS`_tableinst|] +[visit_exp $table(z, x_2).`REFS`_tableinst] [visit_exp $table(z, x_2)] [visit_exp z] [visit_id z] not free [visit_exp x_2] [visit_id x_2] not free -[visit_exp `ref*#14`] -[visit_id ref*#14] -[check_dims] at' at_1 at_2 i#33785 i_1 i_2 instr*#1002 n numtype#117 numtype#119 numtype#121 state#887 tableidx#84 x y z -[visit_exp `%;%`_config{state#887, `instr*#1002`}(z, [`CONST`_instr{numtype#117}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#119}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#121}((at' : addrtype <: numtype), `%`_num_{i#33785}(n)) `TABLE.COPY`_instr{tableidx#84}(x, y)])] -[visit_exp state#887] -[visit_id state#887] -[visit_exp `instr*#1002`] -[visit_id instr*#1002] -[visit_exp (z, [`CONST`_instr{numtype#117}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#119}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#121}((at' : addrtype <: numtype), `%`_num_{i#33785}(n)) `TABLE.COPY`_instr{tableidx#84}(x, y)])] +[check_dims] at' at_1 at_2 i_1 i_2 n x y z +[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)])] +[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#117}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#119}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#121}((at' : addrtype <: numtype), `%`_num_{i#33785}(n)) `TABLE.COPY`_instr{tableidx#84}(x, y)]] -[visit_exp `CONST`_instr{numtype#117}((at_1 : addrtype <: numtype), i_1)] -[visit_exp numtype#117] -[visit_id numtype#117] +[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] [visit_exp ((at_1 : addrtype <: numtype), i_1)] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] [visit_exp i_1] [visit_id i_1] -[visit_exp `CONST`_instr{numtype#119}((at_2 : addrtype <: numtype), i_2)] -[visit_exp numtype#119] -[visit_id numtype#119] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] [visit_exp ((at_2 : addrtype <: numtype), i_2)] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#121}((at' : addrtype <: numtype), `%`_num_{i#33785}(n))] -[visit_exp numtype#121] -[visit_id numtype#121] -[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#33785}(n))] +[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] [visit_exp (at' : addrtype <: numtype)] [visit_exp at'] [visit_id at'] -[visit_exp `%`_num_{i#33785}(n)] -[visit_exp i#33785] -[visit_id i#33785] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `TABLE.COPY`_instr{tableidx#84}(x, y)] -[visit_exp tableidx#84] -[visit_id tableidx#84] +[visit_exp `TABLE.COPY`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -56383,134 +47117,96 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp n] [visit_id n] not free [visit_exp 0] -[check_dims] at' at_1 at_2 i#33865 i#33971 i#33981 i#34007 i#34017 i#34039 i#34085 i#34095 i_1 i_2 instr*#1014 n numtype#123 numtype#125 numtype#127 numtype#129 numtype#131 numtype#133 numtype#135 numtype#137 state#899 tableidx#87 tableidx#90 tableidx#92 tableidx#94 x y z -[visit_exp `%;%`_config{state#899, `instr*#1014`}(z, [`CONST`_instr{numtype#123}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#125}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#127}((at' : addrtype <: numtype), `%`_num_{i#33865}(n)) `TABLE.COPY`_instr{tableidx#87}(x, y)])] -[visit_exp state#899] -[visit_id state#899] -[visit_exp `instr*#1014`] -[visit_id instr*#1014] -[visit_exp (z, [`CONST`_instr{numtype#123}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#125}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#127}((at' : addrtype <: numtype), `%`_num_{i#33865}(n)) `TABLE.COPY`_instr{tableidx#87}(x, y)])] +[check_dims] at' at_1 at_2 i_1 i_2 n x y z +[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)])] +[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#123}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#125}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#127}((at' : addrtype <: numtype), `%`_num_{i#33865}(n)) `TABLE.COPY`_instr{tableidx#87}(x, y)]] -[visit_exp `CONST`_instr{numtype#123}((at_1 : addrtype <: numtype), i_1)] -[visit_exp numtype#123] -[visit_id numtype#123] +[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] [visit_exp ((at_1 : addrtype <: numtype), i_1)] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] [visit_exp i_1] [visit_id i_1] -[visit_exp `CONST`_instr{numtype#125}((at_2 : addrtype <: numtype), i_2)] -[visit_exp numtype#125] -[visit_id numtype#125] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] [visit_exp ((at_2 : addrtype <: numtype), i_2)] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#127}((at' : addrtype <: numtype), `%`_num_{i#33865}(n))] -[visit_exp numtype#127] -[visit_id numtype#127] -[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#33865}(n))] +[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] [visit_exp (at' : addrtype <: numtype)] [visit_exp at'] [visit_id at'] -[visit_exp `%`_num_{i#33865}(n)] -[visit_exp i#33865] -[visit_id i#33865] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `TABLE.COPY`_instr{tableidx#87}(x, y)] -[visit_exp tableidx#87] -[visit_id tableidx#87] +[visit_exp `TABLE.COPY`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp [`CONST`_instr{numtype#129}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#131}((at_2 : addrtype <: numtype), i_2) `TABLE.GET`_instr{tableidx#90}(y) `TABLE.SET`_instr{tableidx#92}(x) `CONST`_instr{numtype#133}((at_1 : addrtype <: numtype), `%`_num_{i#33981}((i_1!`%`_num_{i#33971}.0 + 1))) `CONST`_instr{numtype#135}((at_2 : addrtype <: numtype), `%`_num_{i#34017}((i_2!`%`_num_{i#34007}.0 + 1))) `CONST`_instr{numtype#137}((at' : addrtype <: numtype), `%`_num_{i#34039}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr{tableidx#94}(x, y)]] -[visit_exp `CONST`_instr{numtype#129}((at_1 : addrtype <: numtype), i_1)] -[visit_exp numtype#129] -[visit_id numtype#129] +[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `TABLE.GET`_instr(y) `TABLE.SET`_instr(x) `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1))) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr(x, y)]] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] [visit_exp ((at_1 : addrtype <: numtype), i_1)] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] not free [visit_exp i_1] [visit_id i_1] not free -[visit_exp `CONST`_instr{numtype#131}((at_2 : addrtype <: numtype), i_2)] -[visit_exp numtype#131] -[visit_id numtype#131] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] [visit_exp ((at_2 : addrtype <: numtype), i_2)] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] not free [visit_exp i_2] [visit_id i_2] not free -[visit_exp `TABLE.GET`_instr{tableidx#90}(y)] -[visit_exp tableidx#90] -[visit_id tableidx#90] +[visit_exp `TABLE.GET`_instr(y)] [visit_exp (y)] [visit_exp y] [visit_id y] not free -[visit_exp `TABLE.SET`_instr{tableidx#92}(x)] -[visit_exp tableidx#92] -[visit_id tableidx#92] +[visit_exp `TABLE.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp `CONST`_instr{numtype#133}((at_1 : addrtype <: numtype), `%`_num_{i#33981}((i_1!`%`_num_{i#33971}.0 + 1)))] -[visit_exp numtype#133] -[visit_id numtype#133] -[visit_exp ((at_1 : addrtype <: numtype), `%`_num_{i#33981}((i_1!`%`_num_{i#33971}.0 + 1)))] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1)))] +[visit_exp ((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1)))] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] not free -[visit_exp `%`_num_{i#33981}((i_1!`%`_num_{i#33971}.0 + 1))] -[visit_exp i#33981] -[visit_id i#33981] -[visit_exp ((i_1!`%`_num_{i#33971}.0 + 1))] -[visit_exp (i_1!`%`_num_{i#33971}.0 + 1)] -[visit_exp i_1!`%`_num_{i#33971}.0] -[visit_exp i_1!`%`_num_{i#33971}] +[visit_exp `%`_num_((i_1!`%`_num_.0 + 1))] +[visit_exp ((i_1!`%`_num_.0 + 1))] +[visit_exp (i_1!`%`_num_.0 + 1)] +[visit_exp i_1!`%`_num_.0] +[visit_exp i_1!`%`_num_] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#33971] -[visit_id i#33971] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#135}((at_2 : addrtype <: numtype), `%`_num_{i#34017}((i_2!`%`_num_{i#34007}.0 + 1)))] -[visit_exp numtype#135] -[visit_id numtype#135] -[visit_exp ((at_2 : addrtype <: numtype), `%`_num_{i#34017}((i_2!`%`_num_{i#34007}.0 + 1)))] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1)))] +[visit_exp ((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1)))] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] not free -[visit_exp `%`_num_{i#34017}((i_2!`%`_num_{i#34007}.0 + 1))] -[visit_exp i#34017] -[visit_id i#34017] -[visit_exp ((i_2!`%`_num_{i#34007}.0 + 1))] -[visit_exp (i_2!`%`_num_{i#34007}.0 + 1)] -[visit_exp i_2!`%`_num_{i#34007}.0] -[visit_exp i_2!`%`_num_{i#34007}] +[visit_exp `%`_num_((i_2!`%`_num_.0 + 1))] +[visit_exp ((i_2!`%`_num_.0 + 1))] +[visit_exp (i_2!`%`_num_.0 + 1)] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#34007] -[visit_id i#34007] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#137}((at' : addrtype <: numtype), `%`_num_{i#34039}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#137] -[visit_id numtype#137] -[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#34039}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp ((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp (at' : addrtype <: numtype)] [visit_exp at'] [visit_id at'] not free -[visit_exp `%`_num_{i#34039}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#34039] -[visit_id i#34039] +[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - (1 : nat <:> int))] @@ -56519,167 +47215,123 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `TABLE.COPY`_instr{tableidx#94}(x, y)] -[visit_exp tableidx#94] -[visit_id tableidx#94] +[visit_exp `TABLE.COPY`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] not free [visit_exp y] [visit_id y] not free -[visit_exp (i_1!`%`_num_{i#34085}.0 <= i_2!`%`_num_{i#34095}.0)] -[visit_exp i_1!`%`_num_{i#34085}.0] -[visit_exp i_1!`%`_num_{i#34085}] +[visit_exp (i_1!`%`_num_.0 <= i_2!`%`_num_.0)] +[visit_exp i_1!`%`_num_.0] +[visit_exp i_1!`%`_num_] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#34085] -[visit_id i#34085] -[visit_exp i_2!`%`_num_{i#34095}.0] -[visit_exp i_2!`%`_num_{i#34095}] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#34095] -[visit_id i#34095] -[check_dims] at' at_1 at_2 i#34147 i#34201 i#34211 i#34237 i#34247 i#34321 i_1 i_2 instr*#1026 n numtype#139 numtype#141 numtype#143 numtype#145 numtype#147 numtype#149 numtype#151 numtype#153 state#911 tableidx#100 tableidx#102 tableidx#104 tableidx#97 x y z -[visit_exp `%;%`_config{state#911, `instr*#1026`}(z, [`CONST`_instr{numtype#139}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#141}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#143}((at' : addrtype <: numtype), `%`_num_{i#34147}(n)) `TABLE.COPY`_instr{tableidx#97}(x, y)])] -[visit_exp state#911] -[visit_id state#911] -[visit_exp `instr*#1026`] -[visit_id instr*#1026] -[visit_exp (z, [`CONST`_instr{numtype#139}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#141}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#143}((at' : addrtype <: numtype), `%`_num_{i#34147}(n)) `TABLE.COPY`_instr{tableidx#97}(x, y)])] +[check_dims] at' at_1 at_2 i_1 i_2 n x y z +[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)])] +[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#139}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#141}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#143}((at' : addrtype <: numtype), `%`_num_{i#34147}(n)) `TABLE.COPY`_instr{tableidx#97}(x, y)]] -[visit_exp `CONST`_instr{numtype#139}((at_1 : addrtype <: numtype), i_1)] -[visit_exp numtype#139] -[visit_id numtype#139] +[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] [visit_exp ((at_1 : addrtype <: numtype), i_1)] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] [visit_exp i_1] [visit_id i_1] -[visit_exp `CONST`_instr{numtype#141}((at_2 : addrtype <: numtype), i_2)] -[visit_exp numtype#141] -[visit_id numtype#141] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] [visit_exp ((at_2 : addrtype <: numtype), i_2)] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#143}((at' : addrtype <: numtype), `%`_num_{i#34147}(n))] -[visit_exp numtype#143] -[visit_id numtype#143] -[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#34147}(n))] +[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] [visit_exp (at' : addrtype <: numtype)] [visit_exp at'] [visit_id at'] -[visit_exp `%`_num_{i#34147}(n)] -[visit_exp i#34147] -[visit_id i#34147] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `TABLE.COPY`_instr{tableidx#97}(x, y)] -[visit_exp tableidx#97] -[visit_id tableidx#97] +[visit_exp `TABLE.COPY`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp [`CONST`_instr{numtype#145}((at_1 : addrtype <: numtype), `%`_num_{i#34211}(((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr{numtype#147}((at_2 : addrtype <: numtype), `%`_num_{i#34247}(((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.GET`_instr{tableidx#100}(y) `TABLE.SET`_instr{tableidx#102}(x) `CONST`_instr{numtype#149}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#151}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#153}((at' : addrtype <: numtype), `%`_num_{i#34321}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr{tableidx#104}(x, y)]] -[visit_exp `CONST`_instr{numtype#145}((at_1 : addrtype <: numtype), `%`_num_{i#34211}(((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#145] -[visit_id numtype#145] -[visit_exp ((at_1 : addrtype <: numtype), `%`_num_{i#34211}(((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.GET`_instr(y) `TABLE.SET`_instr(x) `CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr(x, y)]] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp ((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] not free -[visit_exp `%`_num_{i#34211}(((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#34211] -[visit_id i#34211] -[visit_exp (((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int)] -[visit_exp (i_1!`%`_num_{i#34201}.0 + n)] -[visit_exp i_1!`%`_num_{i#34201}.0] -[visit_exp i_1!`%`_num_{i#34201}] +[visit_exp `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((i_1!`%`_num_.0 + n) : nat <:> int)] +[visit_exp (i_1!`%`_num_.0 + n)] +[visit_exp i_1!`%`_num_.0] +[visit_exp i_1!`%`_num_] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#34201] -[visit_id i#34201] [visit_exp n] [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#147}((at_2 : addrtype <: numtype), `%`_num_{i#34247}(((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#147] -[visit_id numtype#147] -[visit_exp ((at_2 : addrtype <: numtype), `%`_num_{i#34247}(((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp ((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] not free -[visit_exp `%`_num_{i#34247}(((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#34247] -[visit_id i#34247] -[visit_exp (((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int)] -[visit_exp (i_2!`%`_num_{i#34237}.0 + n)] -[visit_exp i_2!`%`_num_{i#34237}.0] -[visit_exp i_2!`%`_num_{i#34237}] +[visit_exp `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((i_2!`%`_num_.0 + n) : nat <:> int)] +[visit_exp (i_2!`%`_num_.0 + n)] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#34237] -[visit_id i#34237] [visit_exp n] [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `TABLE.GET`_instr{tableidx#100}(y)] -[visit_exp tableidx#100] -[visit_id tableidx#100] +[visit_exp `TABLE.GET`_instr(y)] [visit_exp (y)] [visit_exp y] [visit_id y] not free -[visit_exp `TABLE.SET`_instr{tableidx#102}(x)] -[visit_exp tableidx#102] -[visit_id tableidx#102] +[visit_exp `TABLE.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp `CONST`_instr{numtype#149}((at_1 : addrtype <: numtype), i_1)] -[visit_exp numtype#149] -[visit_id numtype#149] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] [visit_exp ((at_1 : addrtype <: numtype), i_1)] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] not free [visit_exp i_1] [visit_id i_1] not free -[visit_exp `CONST`_instr{numtype#151}((at_2 : addrtype <: numtype), i_2)] -[visit_exp numtype#151] -[visit_id numtype#151] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] [visit_exp ((at_2 : addrtype <: numtype), i_2)] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] not free [visit_exp i_2] [visit_id i_2] not free -[visit_exp `CONST`_instr{numtype#153}((at' : addrtype <: numtype), `%`_num_{i#34321}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#153] -[visit_id numtype#153] -[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#34321}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp ((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp (at' : addrtype <: numtype)] [visit_exp at'] [visit_id at'] not free -[visit_exp `%`_num_{i#34321}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#34321] -[visit_id i#34321] +[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - (1 : nat <:> int))] @@ -56688,58 +47340,40 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `TABLE.COPY`_instr{tableidx#104}(x, y)] -[visit_exp tableidx#104] -[visit_id tableidx#104] +[visit_exp `TABLE.COPY`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] not free [visit_exp y] [visit_id y] not free -[check_dims] at elemidx#17 i i#34401 i#34443 i#34469 instr*#1038 j n numtype#155 numtype#157 numtype#159 ref*#15 ref*#16 state#923 tableidx#107 x y z -[visit_exp `%;%`_config{state#923, `instr*#1038`}(z, [`CONST`_instr{numtype#155}((at : addrtype <: numtype), i) `CONST`_instr{numtype#157}(`I32`_numtype, j) `CONST`_instr{numtype#159}(`I32`_numtype, `%`_num_{i#34401}(n)) `TABLE.INIT`_instr{tableidx#107, elemidx#17}(x, y)])] -[visit_exp state#923] -[visit_id state#923] -[visit_exp `instr*#1038`] -[visit_id instr*#1038] -[visit_exp (z, [`CONST`_instr{numtype#155}((at : addrtype <: numtype), i) `CONST`_instr{numtype#157}(`I32`_numtype, j) `CONST`_instr{numtype#159}(`I32`_numtype, `%`_num_{i#34401}(n)) `TABLE.INIT`_instr{tableidx#107, elemidx#17}(x, y)])] +[check_dims] at i j n x y z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#155}((at : addrtype <: numtype), i) `CONST`_instr{numtype#157}(`I32`_numtype, j) `CONST`_instr{numtype#159}(`I32`_numtype, `%`_num_{i#34401}(n)) `TABLE.INIT`_instr{tableidx#107, elemidx#17}(x, y)]] -[visit_exp `CONST`_instr{numtype#155}((at : addrtype <: numtype), i)] -[visit_exp numtype#155] -[visit_id numtype#155] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#157}(`I32`_numtype, j)] -[visit_exp numtype#157] -[visit_id numtype#157] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#159}(`I32`_numtype, `%`_num_{i#34401}(n))] -[visit_exp numtype#159] -[visit_id numtype#159] -[visit_exp (`I32`_numtype, `%`_num_{i#34401}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#34401}(n)] -[visit_exp i#34401] -[visit_id i#34401] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `TABLE.INIT`_instr{tableidx#107, elemidx#17}(x, y)] -[visit_exp tableidx#107] -[visit_id tableidx#107] -[visit_exp elemidx#17] -[visit_id elemidx#17] +[visit_exp `TABLE.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -56748,89 +47382,65 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i!`%`_num_{i#34443}.0 + n) > |$table(z, x).`REFS`_tableinst{`ref*#15`}|) \/ ((j!`%`_num_{i#34469}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#16`}|))] -[visit_exp ((i!`%`_num_{i#34443}.0 + n) > |$table(z, x).`REFS`_tableinst{`ref*#15`}|)] -[visit_exp (i!`%`_num_{i#34443}.0 + n)] -[visit_exp i!`%`_num_{i#34443}.0] -[visit_exp i!`%`_num_{i#34443}] +[visit_exp (((i!`%`_num_.0 + n) > |$table(z, x).`REFS`_tableinst|) \/ ((j!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|))] +[visit_exp ((i!`%`_num_.0 + n) > |$table(z, x).`REFS`_tableinst|)] +[visit_exp (i!`%`_num_.0 + n)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#34443] -[visit_id i#34443] [visit_exp n] [visit_id n] not free -[visit_exp |$table(z, x).`REFS`_tableinst{`ref*#15`}|] -[visit_exp $table(z, x).`REFS`_tableinst{`ref*#15`}] +[visit_exp |$table(z, x).`REFS`_tableinst|] +[visit_exp $table(z, x).`REFS`_tableinst] [visit_exp $table(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ref*#15`] -[visit_id ref*#15] -[visit_exp ((j!`%`_num_{i#34469}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#16`}|)] -[visit_exp (j!`%`_num_{i#34469}.0 + n)] -[visit_exp j!`%`_num_{i#34469}.0] -[visit_exp j!`%`_num_{i#34469}] +[visit_exp ((j!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|)] +[visit_exp (j!`%`_num_.0 + n)] +[visit_exp j!`%`_num_.0] +[visit_exp j!`%`_num_] [visit_exp j] [visit_id j] not free -[visit_exp i#34469] -[visit_id i#34469] [visit_exp n] [visit_id n] not free -[visit_exp |$elem(z, y).`REFS`_eleminst{`ref*#16`}|] -[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#16`}] +[visit_exp |$elem(z, y).`REFS`_eleminst|] +[visit_exp $elem(z, y).`REFS`_eleminst] [visit_exp $elem(z, y)] [visit_exp z] [visit_id z] not free [visit_exp y] [visit_id y] not free -[visit_exp `ref*#16`] -[visit_id ref*#16] -[check_dims] at elemidx#19 i i#34533 instr*#1050 j n numtype#161 numtype#163 numtype#165 state#935 tableidx#109 x y z -[visit_exp `%;%`_config{state#935, `instr*#1050`}(z, [`CONST`_instr{numtype#161}((at : addrtype <: numtype), i) `CONST`_instr{numtype#163}(`I32`_numtype, j) `CONST`_instr{numtype#165}(`I32`_numtype, `%`_num_{i#34533}(n)) `TABLE.INIT`_instr{tableidx#109, elemidx#19}(x, y)])] -[visit_exp state#935] -[visit_id state#935] -[visit_exp `instr*#1050`] -[visit_id instr*#1050] -[visit_exp (z, [`CONST`_instr{numtype#161}((at : addrtype <: numtype), i) `CONST`_instr{numtype#163}(`I32`_numtype, j) `CONST`_instr{numtype#165}(`I32`_numtype, `%`_num_{i#34533}(n)) `TABLE.INIT`_instr{tableidx#109, elemidx#19}(x, y)])] +[check_dims] at i j n x y z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#161}((at : addrtype <: numtype), i) `CONST`_instr{numtype#163}(`I32`_numtype, j) `CONST`_instr{numtype#165}(`I32`_numtype, `%`_num_{i#34533}(n)) `TABLE.INIT`_instr{tableidx#109, elemidx#19}(x, y)]] -[visit_exp `CONST`_instr{numtype#161}((at : addrtype <: numtype), i)] -[visit_exp numtype#161] -[visit_id numtype#161] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#163}(`I32`_numtype, j)] -[visit_exp numtype#163] -[visit_id numtype#163] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#165}(`I32`_numtype, `%`_num_{i#34533}(n))] -[visit_exp numtype#165] -[visit_id numtype#165] -[visit_exp (`I32`_numtype, `%`_num_{i#34533}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#34533}(n)] -[visit_exp i#34533] -[visit_id i#34533] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `TABLE.INIT`_instr{tableidx#109, elemidx#19}(x, y)] -[visit_exp tableidx#109] -[visit_id tableidx#109] -[visit_exp elemidx#19] -[visit_id elemidx#19] +[visit_exp `TABLE.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -56841,133 +47451,93 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp n] [visit_id n] not free [visit_exp 0] -[check_dims] at elemidx#21 elemidx#23 i i#34613 i#34675 i#34715 i#34725 i#34751 i#34761 i#34783 instr*#1062 j n numtype#167 numtype#169 numtype#171 numtype#173 numtype#175 numtype#177 numtype#179 ref*#17 state#947 tableidx#111 tableidx#113 tableidx#115 x y z -[visit_exp `%;%`_config{state#947, `instr*#1062`}(z, [`CONST`_instr{numtype#167}((at : addrtype <: numtype), i) `CONST`_instr{numtype#169}(`I32`_numtype, j) `CONST`_instr{numtype#171}(`I32`_numtype, `%`_num_{i#34613}(n)) `TABLE.INIT`_instr{tableidx#111, elemidx#21}(x, y)])] -[visit_exp state#947] -[visit_id state#947] -[visit_exp `instr*#1062`] -[visit_id instr*#1062] -[visit_exp (z, [`CONST`_instr{numtype#167}((at : addrtype <: numtype), i) `CONST`_instr{numtype#169}(`I32`_numtype, j) `CONST`_instr{numtype#171}(`I32`_numtype, `%`_num_{i#34613}(n)) `TABLE.INIT`_instr{tableidx#111, elemidx#21}(x, y)])] +[check_dims] at i j n x y z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#167}((at : addrtype <: numtype), i) `CONST`_instr{numtype#169}(`I32`_numtype, j) `CONST`_instr{numtype#171}(`I32`_numtype, `%`_num_{i#34613}(n)) `TABLE.INIT`_instr{tableidx#111, elemidx#21}(x, y)]] -[visit_exp `CONST`_instr{numtype#167}((at : addrtype <: numtype), i)] -[visit_exp numtype#167] -[visit_id numtype#167] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#169}(`I32`_numtype, j)] -[visit_exp numtype#169] -[visit_id numtype#169] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#171}(`I32`_numtype, `%`_num_{i#34613}(n))] -[visit_exp numtype#171] -[visit_id numtype#171] -[visit_exp (`I32`_numtype, `%`_num_{i#34613}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#34613}(n)] -[visit_exp i#34613] -[visit_id i#34613] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `TABLE.INIT`_instr{tableidx#111, elemidx#21}(x, y)] -[visit_exp tableidx#111] -[visit_id tableidx#111] -[visit_exp elemidx#21] -[visit_id elemidx#21] +[visit_exp `TABLE.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp [`CONST`_instr{numtype#173}((at : addrtype <: numtype), i) ($elem(z, y).`REFS`_eleminst{`ref*#17`}[j!`%`_num_{i#34675}.0] : ref <: instr) `TABLE.SET`_instr{tableidx#113}(x) `CONST`_instr{numtype#175}((at : addrtype <: numtype), `%`_num_{i#34725}((i!`%`_num_{i#34715}.0 + 1))) `CONST`_instr{numtype#177}(`I32`_numtype, `%`_num_{i#34761}((j!`%`_num_{i#34751}.0 + 1))) `CONST`_instr{numtype#179}(`I32`_numtype, `%`_num_{i#34783}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.INIT`_instr{tableidx#115, elemidx#23}(x, y)]] -[visit_exp `CONST`_instr{numtype#173}((at : addrtype <: numtype), i)] -[visit_exp numtype#173] -[visit_id numtype#173] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) ($elem(z, y).`REFS`_eleminst[j!`%`_num_.0] : ref <: instr) `TABLE.SET`_instr(x) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.INIT`_instr(x, y)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free [visit_exp i] [visit_id i] not free -[visit_exp ($elem(z, y).`REFS`_eleminst{`ref*#17`}[j!`%`_num_{i#34675}.0] : ref <: instr)] -[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#17`}[j!`%`_num_{i#34675}.0]] -[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#17`}] +[visit_exp ($elem(z, y).`REFS`_eleminst[j!`%`_num_.0] : ref <: instr)] +[visit_exp $elem(z, y).`REFS`_eleminst[j!`%`_num_.0]] +[visit_exp $elem(z, y).`REFS`_eleminst] [visit_exp $elem(z, y)] [visit_exp z] [visit_id z] not free [visit_exp y] [visit_id y] not free -[visit_exp `ref*#17`] -[visit_id ref*#17] -[visit_exp j!`%`_num_{i#34675}.0] -[visit_exp j!`%`_num_{i#34675}] +[visit_exp j!`%`_num_.0] +[visit_exp j!`%`_num_] [visit_exp j] [visit_id j] not free -[visit_exp i#34675] -[visit_id i#34675] -[visit_exp `TABLE.SET`_instr{tableidx#113}(x)] -[visit_exp tableidx#113] -[visit_id tableidx#113] +[visit_exp `TABLE.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp `CONST`_instr{numtype#175}((at : addrtype <: numtype), `%`_num_{i#34725}((i!`%`_num_{i#34715}.0 + 1)))] -[visit_exp numtype#175] -[visit_id numtype#175] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#34725}((i!`%`_num_{i#34715}.0 + 1)))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] +[visit_exp ((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#34725}((i!`%`_num_{i#34715}.0 + 1))] -[visit_exp i#34725] -[visit_id i#34725] -[visit_exp ((i!`%`_num_{i#34715}.0 + 1))] -[visit_exp (i!`%`_num_{i#34715}.0 + 1)] -[visit_exp i!`%`_num_{i#34715}.0] -[visit_exp i!`%`_num_{i#34715}] +[visit_exp `%`_num_((i!`%`_num_.0 + 1))] +[visit_exp ((i!`%`_num_.0 + 1))] +[visit_exp (i!`%`_num_.0 + 1)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#34715] -[visit_id i#34715] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#177}(`I32`_numtype, `%`_num_{i#34761}((j!`%`_num_{i#34751}.0 + 1)))] -[visit_exp numtype#177] -[visit_id numtype#177] -[visit_exp (`I32`_numtype, `%`_num_{i#34761}((j!`%`_num_{i#34751}.0 + 1)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1)))] +[visit_exp (`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#34761}((j!`%`_num_{i#34751}.0 + 1))] -[visit_exp i#34761] -[visit_id i#34761] -[visit_exp ((j!`%`_num_{i#34751}.0 + 1))] -[visit_exp (j!`%`_num_{i#34751}.0 + 1)] -[visit_exp j!`%`_num_{i#34751}.0] -[visit_exp j!`%`_num_{i#34751}] +[visit_exp `%`_num_((j!`%`_num_.0 + 1))] +[visit_exp ((j!`%`_num_.0 + 1))] +[visit_exp (j!`%`_num_.0 + 1)] +[visit_exp j!`%`_num_.0] +[visit_exp j!`%`_num_] [visit_exp j] [visit_id j] not free -[visit_exp i#34751] -[visit_id i#34751] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#179}(`I32`_numtype, `%`_num_{i#34783}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#179] -[visit_id numtype#179] -[visit_exp (`I32`_numtype, `%`_num_{i#34783}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#34783}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#34783] -[visit_id i#34783] +[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - (1 : nat <:> int))] @@ -56976,37 +47546,23 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `TABLE.INIT`_instr{tableidx#115, elemidx#23}(x, y)] -[visit_exp tableidx#115] -[visit_id tableidx#115] -[visit_exp elemidx#23] -[visit_id elemidx#23] +[visit_exp `TABLE.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] not free [visit_exp y] [visit_id y] not free -[check_dims] elemidx#25 instr*#1074 instr*#1086 state#959 state#971 x z -[visit_exp `%;%`_config{state#959, `instr*#1074`}(z, [`ELEM.DROP`_instr{elemidx#25}(x)])] -[visit_exp state#959] -[visit_id state#959] -[visit_exp `instr*#1074`] -[visit_id instr*#1074] -[visit_exp (z, [`ELEM.DROP`_instr{elemidx#25}(x)])] +[check_dims] x z +[visit_exp `%;%`_config(z, [`ELEM.DROP`_instr(x)])] +[visit_exp (z, [`ELEM.DROP`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`ELEM.DROP`_instr{elemidx#25}(x)]] -[visit_exp `ELEM.DROP`_instr{elemidx#25}(x)] -[visit_exp elemidx#25] -[visit_id elemidx#25] +[visit_exp [`ELEM.DROP`_instr(x)]] +[visit_exp `ELEM.DROP`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#971, `instr*#1086`}($with_elem(z, x, []), [])] -[visit_exp state#971] -[visit_id state#971] -[visit_exp `instr*#1086`] -[visit_id instr*#1086] +[visit_exp `%;%`_config($with_elem(z, x, []), [])] [visit_exp ($with_elem(z, x, []), [])] [visit_exp $with_elem(z, x, [])] [visit_exp z] @@ -57015,32 +47571,20 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] not free [visit_exp []] [visit_exp []] -[check_dims] ao at byte*#1849 i i#34883 i#34893 instr*#1098 memarg#35 memidx#67 nt numtype#181 numtype?#7 state#983 u64#405 x z -[visit_exp `%;%`_config{state#983, `instr*#1098`}(z, [`CONST`_instr{numtype#181}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#7`, memidx#67, memarg#35}(nt, ?(), x, ao)])] -[visit_exp state#983] -[visit_id state#983] -[visit_exp `instr*#1098`] -[visit_id instr*#1098] -[visit_exp (z, [`CONST`_instr{numtype#181}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#7`, memidx#67, memarg#35}(nt, ?(), x, ao)])] +[check_dims] ao at i nt x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#181}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#7`, memidx#67, memarg#35}(nt, ?(), x, ao)]] -[visit_exp `CONST`_instr{numtype#181}((at : addrtype <: numtype), i)] -[visit_exp numtype#181] -[visit_id numtype#181] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `LOAD`_instr{`numtype?#7`, memidx#67, memarg#35}(nt, ?(), x, ao)] -[visit_exp `numtype?#7`] -[visit_id numtype?#7] -[visit_exp memidx#67] -[visit_id memidx#67] -[visit_exp memarg#35] -[visit_id memarg#35] +[visit_exp `LOAD`_instr(nt, ?(), x, ao)] [visit_exp (nt, ?(), x, ao)] [visit_exp nt] [visit_id nt] @@ -57052,24 +47596,18 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i!`%`_num_{i#34883}.0 + ao.`OFFSET`_memarg{u64#405}!`%`_u64{i#34893}.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1849`}|)] -[visit_exp ((i!`%`_num_{i#34883}.0 + ao.`OFFSET`_memarg{u64#405}!`%`_u64{i#34893}.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_{i#34883}.0 + ao.`OFFSET`_memarg{u64#405}!`%`_u64{i#34893}.0)] -[visit_exp i!`%`_num_{i#34883}.0] -[visit_exp i!`%`_num_{i#34883}] +[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] +[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#34883] -[visit_id i#34883] -[visit_exp ao.`OFFSET`_memarg{u64#405}!`%`_u64{i#34893}.0] -[visit_exp ao.`OFFSET`_memarg{u64#405}!`%`_u64{i#34893}] -[visit_exp ao.`OFFSET`_memarg{u64#405}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#405] -[visit_id u64#405] -[visit_exp i#34893] -[visit_id i#34893] [visit_exp ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (($size(nt) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ($size(nt) : nat <:> rat)] @@ -57078,41 +47616,27 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id nt] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1849`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1849`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1849`] -[visit_id byte*#1849] -[check_dims] ao at byte*#1850 c i i#34963 i#34973 instr*#1110 memarg#37 memidx#69 nt numtype#184 numtype#187 numtype?#8 state#995 u64#406 x z -[visit_exp `%;%`_config{state#995, `instr*#1110`}(z, [`CONST`_instr{numtype#184}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#8`, memidx#69, memarg#37}(nt, ?(), x, ao)])] -[visit_exp state#995] -[visit_id state#995] -[visit_exp `instr*#1110`] -[visit_id instr*#1110] -[visit_exp (z, [`CONST`_instr{numtype#184}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#8`, memidx#69, memarg#37}(nt, ?(), x, ao)])] +[check_dims] ao at c i nt x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#184}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#8`, memidx#69, memarg#37}(nt, ?(), x, ao)]] -[visit_exp `CONST`_instr{numtype#184}((at : addrtype <: numtype), i)] -[visit_exp numtype#184] -[visit_id numtype#184] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `LOAD`_instr{`numtype?#8`, memidx#69, memarg#37}(nt, ?(), x, ao)] -[visit_exp `numtype?#8`] -[visit_id numtype?#8] -[visit_exp memidx#69] -[visit_id memidx#69] -[visit_exp memarg#37] -[visit_id memarg#37] +[visit_exp `LOAD`_instr(nt, ?(), x, ao)] [visit_exp (nt, ?(), x, ao)] [visit_exp nt] [visit_id nt] @@ -57121,46 +47645,36 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp [`CONST`_instr{numtype#187}(nt, c)]] -[visit_exp `CONST`_instr{numtype#187}(nt, c)] -[visit_exp numtype#187] -[visit_id numtype#187] +[visit_exp [`CONST`_instr(nt, c)]] +[visit_exp `CONST`_instr(nt, c)] [visit_exp (nt, c)] [visit_exp nt] [visit_id nt] not free [visit_exp c] [visit_id c] -[visit_exp ($nbytes_(nt, c) = $mem(z, x).`BYTES`_meminst{`byte*#1850`}[(i!`%`_num_{i#34963}.0 + ao.`OFFSET`_memarg{u64#406}!`%`_u64{i#34973}.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp ($nbytes_(nt, c) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] [visit_exp $nbytes_(nt, c)] [visit_exp nt] [visit_id nt] not free [visit_exp c] [visit_id c] not free -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1850`}[(i!`%`_num_{i#34963}.0 + ao.`OFFSET`_memarg{u64#406}!`%`_u64{i#34973}.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1850`}] +[visit_exp $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1850`] -[visit_id byte*#1850] -[visit_exp (i!`%`_num_{i#34963}.0 + ao.`OFFSET`_memarg{u64#406}!`%`_u64{i#34973}.0)] -[visit_exp i!`%`_num_{i#34963}.0] -[visit_exp i!`%`_num_{i#34963}] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#34963] -[visit_id i#34963] -[visit_exp ao.`OFFSET`_memarg{u64#406}!`%`_u64{i#34973}.0] -[visit_exp ao.`OFFSET`_memarg{u64#406}!`%`_u64{i#34973}] -[visit_exp ao.`OFFSET`_memarg{u64#406}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#406] -[visit_id u64#406] -[visit_exp i#34973] -[visit_id i#34973] [visit_exp ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (($size(nt) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ($size(nt) : nat <:> rat)] @@ -57169,48 +47683,28 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id nt] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[check_dims] Inn ao at byte*#1851 i i#35021 i#35028 i#35060 i#35070 instr*#1122 memarg#39 memidx#71 n numtype#189 numtype?#9 state#1007 sx sx#270 sz#156 u64#407 x z -[visit_exp `%;%`_config{state#1007, `instr*#1122`}(z, [`CONST`_instr{numtype#189}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#9`, memidx#71, memarg#39}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)), x, ao)])] -[visit_exp state#1007] -[visit_id state#1007] -[visit_exp `instr*#1122`] -[visit_id instr*#1122] -[visit_exp (z, [`CONST`_instr{numtype#189}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#9`, memidx#71, memarg#39}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)), x, ao)])] +[check_dims] Inn ao at i n sx x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#189}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#9`, memidx#71, memarg#39}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)), x, ao)]] -[visit_exp `CONST`_instr{numtype#189}((at : addrtype <: numtype), i)] -[visit_exp numtype#189] -[visit_id numtype#189] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `LOAD`_instr{`numtype?#9`, memidx#71, memarg#39}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)), x, ao)] -[visit_exp `numtype?#9`] -[visit_id numtype?#9] -[visit_exp memidx#71] -[visit_id memidx#71] -[visit_exp memarg#39] -[visit_id memarg#39] -[visit_exp ((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)), x, ao)] +[visit_exp `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)] +[visit_exp ((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] -[visit_exp ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx))] -[visit_exp `%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)] -[visit_exp sz#156] -[visit_id sz#156] -[visit_exp sx#270] -[visit_id sx#270] -[visit_exp i#35021] -[visit_id i#35021] -[visit_exp (`%`_sz{i#35028}(n), sx)] -[visit_exp `%`_sz{i#35028}(n)] -[visit_exp i#35028] -[visit_id i#35028] +[visit_exp ?(`%_%`_loadop_(`%`_sz(n), sx))] +[visit_exp `%_%`_loadop_(`%`_sz(n), sx)] +[visit_exp (`%`_sz(n), sx)] +[visit_exp `%`_sz(n)] [visit_exp (n)] [visit_exp n] [visit_id n] @@ -57223,24 +47717,18 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i!`%`_num_{i#35060}.0 + ao.`OFFSET`_memarg{u64#407}!`%`_u64{i#35070}.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1851`}|)] -[visit_exp ((i!`%`_num_{i#35060}.0 + ao.`OFFSET`_memarg{u64#407}!`%`_u64{i#35070}.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_{i#35060}.0 + ao.`OFFSET`_memarg{u64#407}!`%`_u64{i#35070}.0)] -[visit_exp i!`%`_num_{i#35060}.0] -[visit_exp i!`%`_num_{i#35060}] +[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] +[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#35060] -[visit_id i#35060] -[visit_exp ao.`OFFSET`_memarg{u64#407}!`%`_u64{i#35070}.0] -[visit_exp ao.`OFFSET`_memarg{u64#407}!`%`_u64{i#35070}] -[visit_exp ao.`OFFSET`_memarg{u64#407}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#407] -[visit_id u64#407] -[visit_exp i#35070] -[visit_id i#35070] [visit_exp (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp ((n : nat <:> rat) / (8 : nat <:> rat))] [visit_exp (n : nat <:> rat)] @@ -57248,57 +47736,35 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1851`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1851`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1851`] -[visit_id byte*#1851] -[check_dims] Inn ao at byte*#1852 c i i#35122 i#35129 i#35199 i#35209 instr*#1134 memarg#41 memidx#73 n numtype#192 numtype#195 numtype?#10 state#1019 sx sx#272 sz#158 u64#408 x z -[visit_exp `%;%`_config{state#1019, `instr*#1134`}(z, [`CONST`_instr{numtype#192}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#10`, memidx#73, memarg#41}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)), x, ao)])] -[visit_exp state#1019] -[visit_id state#1019] -[visit_exp `instr*#1134`] -[visit_id instr*#1134] -[visit_exp (z, [`CONST`_instr{numtype#192}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#10`, memidx#73, memarg#41}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)), x, ao)])] +[check_dims] Inn ao at c i n sx x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#192}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#10`, memidx#73, memarg#41}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)), x, ao)]] -[visit_exp `CONST`_instr{numtype#192}((at : addrtype <: numtype), i)] -[visit_exp numtype#192] -[visit_id numtype#192] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `LOAD`_instr{`numtype?#10`, memidx#73, memarg#41}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)), x, ao)] -[visit_exp `numtype?#10`] -[visit_id numtype?#10] -[visit_exp memidx#73] -[visit_id memidx#73] -[visit_exp memarg#41] -[visit_id memarg#41] -[visit_exp ((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)), x, ao)] +[visit_exp `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)] +[visit_exp ((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] -[visit_exp ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx))] -[visit_exp `%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)] -[visit_exp sz#158] -[visit_id sz#158] -[visit_exp sx#272] -[visit_id sx#272] -[visit_exp i#35122] -[visit_id i#35122] -[visit_exp (`%`_sz{i#35129}(n), sx)] -[visit_exp `%`_sz{i#35129}(n)] -[visit_exp i#35129] -[visit_id i#35129] +[visit_exp ?(`%_%`_loadop_(`%`_sz(n), sx))] +[visit_exp `%_%`_loadop_(`%`_sz(n), sx)] +[visit_exp (`%`_sz(n), sx)] +[visit_exp `%`_sz(n)] [visit_exp (n)] [visit_exp n] [visit_id n] @@ -57308,10 +47774,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp [`CONST`_instr{numtype#195}((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))]] -[visit_exp `CONST`_instr{numtype#195}((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))] -[visit_exp numtype#195] -[visit_id numtype#195] +[visit_exp [`CONST`_instr((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))]] +[visit_exp `CONST`_instr((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))] [visit_exp ((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] @@ -57327,37 +47791,29 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id sx] not free [visit_exp c] [visit_id c] -[visit_exp ($ibytes_(n, c) = $mem(z, x).`BYTES`_meminst{`byte*#1852`}[(i!`%`_num_{i#35199}.0 + ao.`OFFSET`_memarg{u64#408}!`%`_u64{i#35209}.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp ($ibytes_(n, c) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] [visit_exp $ibytes_(n, c)] [visit_exp n] [visit_id n] not free [visit_exp c] [visit_id c] not free -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1852`}[(i!`%`_num_{i#35199}.0 + ao.`OFFSET`_memarg{u64#408}!`%`_u64{i#35209}.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1852`}] +[visit_exp $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1852`] -[visit_id byte*#1852] -[visit_exp (i!`%`_num_{i#35199}.0 + ao.`OFFSET`_memarg{u64#408}!`%`_u64{i#35209}.0)] -[visit_exp i!`%`_num_{i#35199}.0] -[visit_exp i!`%`_num_{i#35199}] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#35199] -[visit_id i#35199] -[visit_exp ao.`OFFSET`_memarg{u64#408}!`%`_u64{i#35209}.0] -[visit_exp ao.`OFFSET`_memarg{u64#408}!`%`_u64{i#35209}] -[visit_exp ao.`OFFSET`_memarg{u64#408}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#408] -[visit_id u64#408] -[visit_exp i#35209] -[visit_id i#35209] [visit_exp (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp ((n : nat <:> rat) / (8 : nat <:> rat))] [visit_exp (n : nat <:> rat)] @@ -57365,32 +47821,20 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[check_dims] ao at byte*#1853 i i#35293 i#35303 instr*#1146 memarg#43 memidx#75 numtype#197 state#1031 u64#409 vectype?#6 x z -[visit_exp `%;%`_config{state#1031, `instr*#1146`}(z, [`CONST`_instr{numtype#197}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#6`, memidx#75, memarg#43}(`V128`_vectype, ?(), x, ao)])] -[visit_exp state#1031] -[visit_id state#1031] -[visit_exp `instr*#1146`] -[visit_id instr*#1146] -[visit_exp (z, [`CONST`_instr{numtype#197}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#6`, memidx#75, memarg#43}(`V128`_vectype, ?(), x, ao)])] +[check_dims] ao at i x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#197}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#6`, memidx#75, memarg#43}(`V128`_vectype, ?(), x, ao)]] -[visit_exp `CONST`_instr{numtype#197}((at : addrtype <: numtype), i)] -[visit_exp numtype#197] -[visit_id numtype#197] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VLOAD`_instr{`vectype?#6`, memidx#75, memarg#43}(`V128`_vectype, ?(), x, ao)] -[visit_exp `vectype?#6`] -[visit_id vectype?#6] -[visit_exp memidx#75] -[visit_id memidx#75] -[visit_exp memarg#43] -[visit_id memarg#43] +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(), x, ao)] [visit_exp (`V128`_vectype, ?(), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -57402,24 +47846,18 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i!`%`_num_{i#35293}.0 + ao.`OFFSET`_memarg{u64#409}!`%`_u64{i#35303}.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1853`}|)] -[visit_exp ((i!`%`_num_{i#35293}.0 + ao.`OFFSET`_memarg{u64#409}!`%`_u64{i#35303}.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_{i#35293}.0 + ao.`OFFSET`_memarg{u64#409}!`%`_u64{i#35303}.0)] -[visit_exp i!`%`_num_{i#35293}.0] -[visit_exp i!`%`_num_{i#35293}] +[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] +[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#35293] -[visit_id i#35293] -[visit_exp ao.`OFFSET`_memarg{u64#409}!`%`_u64{i#35303}.0] -[visit_exp ao.`OFFSET`_memarg{u64#409}!`%`_u64{i#35303}] -[visit_exp ao.`OFFSET`_memarg{u64#409}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#409] -[visit_id u64#409] -[visit_exp i#35303] -[visit_id i#35303] [visit_exp ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] @@ -57428,41 +47866,27 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp ()] [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1853`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1853`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1853`] -[visit_id byte*#1853] -[check_dims] ao at byte*#1854 c i i#35387 i#35397 instr*#1158 memarg#45 memidx#77 numtype#199 state#1043 u64#410 vectype#64 vectype?#7 x z -[visit_exp `%;%`_config{state#1043, `instr*#1158`}(z, [`CONST`_instr{numtype#199}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#7`, memidx#77, memarg#45}(`V128`_vectype, ?(), x, ao)])] -[visit_exp state#1043] -[visit_id state#1043] -[visit_exp `instr*#1158`] -[visit_id instr*#1158] -[visit_exp (z, [`CONST`_instr{numtype#199}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#7`, memidx#77, memarg#45}(`V128`_vectype, ?(), x, ao)])] +[check_dims] ao at c i x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#199}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#7`, memidx#77, memarg#45}(`V128`_vectype, ?(), x, ao)]] -[visit_exp `CONST`_instr{numtype#199}((at : addrtype <: numtype), i)] -[visit_exp numtype#199] -[visit_id numtype#199] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VLOAD`_instr{`vectype?#7`, memidx#77, memarg#45}(`V128`_vectype, ?(), x, ao)] -[visit_exp `vectype?#7`] -[visit_id vectype?#7] -[visit_exp memidx#77] -[visit_id memidx#77] -[visit_exp memarg#45] -[visit_id memarg#45] +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(), x, ao)] [visit_exp (`V128`_vectype, ?(), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -57471,46 +47895,36 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp [`VCONST`_instr{vectype#64}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#64}(`V128`_vectype, c)] -[visit_exp vectype#64] -[visit_id vectype#64] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp ($vbytes_(`V128`_vectype, c) = $mem(z, x).`BYTES`_meminst{`byte*#1854`}[(i!`%`_num_{i#35387}.0 + ao.`OFFSET`_memarg{u64#410}!`%`_u64{i#35397}.0) : ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp ($vbytes_(`V128`_vectype, c) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] [visit_exp $vbytes_(`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] not free -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1854`}[(i!`%`_num_{i#35387}.0 + ao.`OFFSET`_memarg{u64#410}!`%`_u64{i#35397}.0) : ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1854`}] +[visit_exp $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1854`] -[visit_id byte*#1854] -[visit_exp (i!`%`_num_{i#35387}.0 + ao.`OFFSET`_memarg{u64#410}!`%`_u64{i#35397}.0)] -[visit_exp i!`%`_num_{i#35387}.0] -[visit_exp i!`%`_num_{i#35387}] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#35387] -[visit_id i#35387] -[visit_exp ao.`OFFSET`_memarg{u64#410}!`%`_u64{i#35397}.0] -[visit_exp ao.`OFFSET`_memarg{u64#410}!`%`_u64{i#35397}] -[visit_exp ao.`OFFSET`_memarg{u64#410}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#410] -[visit_id u64#410] -[visit_exp i#35397] -[visit_id i#35397] [visit_exp ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] @@ -57519,49 +47933,27 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp ()] [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[check_dims] K M M#63 ao at byte*#1855 i i#35475 i#35482 i#35514 i#35524 instr*#1170 memarg#47 memidx#79 numtype#201 state#1055 sx sx#289 sz#205 u64#411 vectype?#8 x z -[visit_exp `%;%`_config{state#1055, `instr*#1170`}(z, [`CONST`_instr{numtype#201}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#8`, memidx#79, memarg#47}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)), x, ao)])] -[visit_exp state#1055] -[visit_id state#1055] -[visit_exp `instr*#1170`] -[visit_id instr*#1170] -[visit_exp (z, [`CONST`_instr{numtype#201}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#8`, memidx#79, memarg#47}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)), x, ao)])] +[check_dims] K M ao at i sx x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#201}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#8`, memidx#79, memarg#47}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)), x, ao)]] -[visit_exp `CONST`_instr{numtype#201}((at : addrtype <: numtype), i)] -[visit_exp numtype#201] -[visit_id numtype#201] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VLOAD`_instr{`vectype?#8`, memidx#79, memarg#47}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)), x, ao)] -[visit_exp `vectype?#8`] -[visit_id vectype?#8] -[visit_exp memidx#79] -[visit_id memidx#79] -[visit_exp memarg#47] -[visit_id memarg#47] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)), x, ao)] +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)] -[visit_exp sz#205] -[visit_id sz#205] -[visit_exp M#63] -[visit_id M#63] -[visit_exp sx#289] -[visit_id sx#289] -[visit_exp i#35475] -[visit_id i#35475] -[visit_exp (`%`_sz{i#35482}(M), K, sx)] -[visit_exp `%`_sz{i#35482}(M)] -[visit_exp i#35482] -[visit_id i#35482] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)] +[visit_exp (`%`_sz(M), K, sx)] +[visit_exp `%`_sz(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -57576,24 +47968,18 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i!`%`_num_{i#35514}.0 + ao.`OFFSET`_memarg{u64#411}!`%`_u64{i#35524}.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1855`}|)] -[visit_exp ((i!`%`_num_{i#35514}.0 + ao.`OFFSET`_memarg{u64#411}!`%`_u64{i#35524}.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_{i#35514}.0 + ao.`OFFSET`_memarg{u64#411}!`%`_u64{i#35524}.0)] -[visit_exp i!`%`_num_{i#35514}.0] -[visit_exp i!`%`_num_{i#35514}] +[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] +[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#35514] -[visit_id i#35514] -[visit_exp ao.`OFFSET`_memarg{u64#411}!`%`_u64{i#35524}.0] -[visit_exp ao.`OFFSET`_memarg{u64#411}!`%`_u64{i#35524}] -[visit_exp ao.`OFFSET`_memarg{u64#411}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#411] -[visit_id u64#411] -[visit_exp i#35524] -[visit_id i#35524] [visit_exp ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (((M * K) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ((M * K) : nat <:> rat)] @@ -57604,58 +47990,34 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id K] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1855`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1855`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1855`] -[visit_id byte*#1855] -[check_dims] Jnn K M M#80 ao at byte*#1856 c dim#7243 i i#35576 i#35583 i#35641 i#35651 i#35700 i#35707 instr*#1182 j k lanetype#7243 memarg#49 memidx#81 numtype#203 state#1067 sx sx#306 sz#252 u64#412 vectype#68 vectype?#9 x z -[visit_exp `%;%`_config{state#1067, `instr*#1182`}(z, [`CONST`_instr{numtype#203}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#9`, memidx#81, memarg#49}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)), x, ao)])] -[visit_exp state#1067] -[visit_id state#1067] -[visit_exp `instr*#1182`] -[visit_id instr*#1182] -[visit_exp (z, [`CONST`_instr{numtype#203}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#9`, memidx#81, memarg#49}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)), x, ao)])] +[check_dims] Jnn K M ao at c i j k sx x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#203}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#9`, memidx#81, memarg#49}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)), x, ao)]] -[visit_exp `CONST`_instr{numtype#203}((at : addrtype <: numtype), i)] -[visit_exp numtype#203] -[visit_id numtype#203] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VLOAD`_instr{`vectype?#9`, memidx#81, memarg#49}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)), x, ao)] -[visit_exp `vectype?#9`] -[visit_id vectype?#9] -[visit_exp memidx#81] -[visit_id memidx#81] -[visit_exp memarg#49] -[visit_id memarg#49] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)), x, ao)] +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)] -[visit_exp sz#252] -[visit_id sz#252] -[visit_exp M#80] -[visit_id M#80] -[visit_exp sx#306] -[visit_id sx#306] -[visit_exp i#35576] -[visit_id i#35576] -[visit_exp (`%`_sz{i#35583}(M), K, sx)] -[visit_exp `%`_sz{i#35583}(M)] -[visit_exp i#35583] -[visit_id i#35583] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)] +[visit_exp (`%`_sz(M), K, sx)] +[visit_exp `%`_sz(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -57667,53 +48029,39 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp [`VCONST`_instr{vectype#68}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#68}(`V128`_vectype, c)] -[visit_exp vectype#68] -[visit_id vectype#68] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] [scope_enter k] -[scope_enter byte*#1856] -[scope_enter i#35641] -[scope_enter i#35651] [scope_enter j] -[scope_enter u64#412] -[visit_exp ($ibytes_(M, j) = $mem(z, x).`BYTES`_meminst{`byte*#1856`}[((i!`%`_num_{i#35641}.0 + ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp ($ibytes_(M, j) = $mem(z, x).`BYTES`_meminst[((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] [visit_exp $ibytes_(M, j)] [visit_exp M] [visit_id M] not free [visit_exp j] [visit_id j] not free -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1856`}[((i!`%`_num_{i#35641}.0 + ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1856`}] +[visit_exp $mem(z, x).`BYTES`_meminst[((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1856`] -[visit_id byte*#1856] not free -[visit_exp ((i!`%`_num_{i#35641}.0 + ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_{i#35641}.0 + ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}.0)] -[visit_exp i!`%`_num_{i#35641}.0] -[visit_exp i!`%`_num_{i#35641}] +[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#35641] -[visit_id i#35641] not free -[visit_exp ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}.0] -[visit_exp ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}] -[visit_exp ao.`OFFSET`_memarg{u64#412}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#412] -[visit_id u64#412] not free -[visit_exp i#35651] -[visit_id i#35651] not free [visit_exp ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (((k * M) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ((k * M) : nat <:> rat)] @@ -57732,53 +48080,25 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (8 : nat <:> rat)] [visit_exp 8] [visit_id k] not free -[visit_id byte*#1856] not free -[visit_id i#35641] not free -[visit_id i#35651] not free [visit_id j] not free -[visit_id u64#412] not free -[scope_exit u64#412] [scope_exit j] -[scope_exit i#35651] -[scope_exit i#35641] -[scope_exit byte*#1856] [scope_exit k] [visit_exp K] [visit_id K] not free -[visit_exp `byte*#1856*`] -[visit_id byte*#1856*] no dims -[visit_id byte*#1856*] -[visit_exp `i#35641*`] -[visit_id i#35641*] no dims -[visit_id i#35641*] -[visit_exp `i#35651*`] -[visit_id i#35651*] no dims -[visit_id i#35651*] [visit_exp `j*`] [visit_id j*] no dims [visit_id j*] -[visit_exp `u64#412*`] -[visit_id u64#412*] no dims -[visit_id u64#412*] -[visit_exp ((c = $inv_lanes_(`%X%`_shape{lanetype#7243, dim#7243, i#35700}((Jnn : Jnn <: lanetype), `%`_dim{i#35707}(K)), $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`})) /\ ($jsizenn(Jnn) = (M * 2)))] -[visit_exp (c = $inv_lanes_(`%X%`_shape{lanetype#7243, dim#7243, i#35700}((Jnn : Jnn <: lanetype), `%`_dim{i#35707}(K)), $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`}))] +[visit_exp ((c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(K)), $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`})) /\ ($jsizenn(Jnn) = (M * 2)))] +[visit_exp (c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(K)), $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`}))] [visit_exp c] [visit_id c] not free -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#7243, dim#7243, i#35700}((Jnn : Jnn <: lanetype), `%`_dim{i#35707}(K)), $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`})] -[visit_exp `%X%`_shape{lanetype#7243, dim#7243, i#35700}((Jnn : Jnn <: lanetype), `%`_dim{i#35707}(K))] -[visit_exp lanetype#7243] -[visit_id lanetype#7243] -[visit_exp dim#7243] -[visit_id dim#7243] -[visit_exp i#35700] -[visit_id i#35700] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#35707}(K))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(K)), $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`})] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(K))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(K))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#35707}(K)] -[visit_exp i#35707] -[visit_id i#35707] +[visit_exp `%`_dim(K)] [visit_exp (K)] [visit_exp K] [visit_id K] not free @@ -57809,43 +48129,27 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp M] [visit_id M] not free [visit_exp 2] -[check_dims] N ao at byte*#1857 i i#35834 i#35866 i#35876 instr*#1194 memarg#51 memidx#83 numtype#205 state#1079 sz#299 u64#413 vectype?#10 x z -[visit_exp `%;%`_config{state#1079, `instr*#1194`}(z, [`CONST`_instr{numtype#205}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#10`, memidx#83, memarg#51}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))), x, ao)])] -[visit_exp state#1079] -[visit_id state#1079] -[visit_exp `instr*#1194`] -[visit_id instr*#1194] -[visit_exp (z, [`CONST`_instr{numtype#205}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#10`, memidx#83, memarg#51}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))), x, ao)])] +[check_dims] N ao at i x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#205}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#10`, memidx#83, memarg#51}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))), x, ao)]] -[visit_exp `CONST`_instr{numtype#205}((at : addrtype <: numtype), i)] -[visit_exp numtype#205] -[visit_id numtype#205] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VLOAD`_instr{`vectype?#10`, memidx#83, memarg#51}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))), x, ao)] -[visit_exp `vectype?#10`] -[visit_id vectype?#10] -[visit_exp memidx#83] -[visit_id memidx#83] -[visit_exp memarg#51] -[visit_id memarg#51] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))), x, ao)] +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N)))] -[visit_exp `SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))] -[visit_exp sz#299] -[visit_id sz#299] -[visit_exp (`%`_sz{i#35834}(N))] -[visit_exp `%`_sz{i#35834}(N)] -[visit_exp i#35834] -[visit_id i#35834] +[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(N)))] +[visit_exp `SPLAT`_vloadop_(`%`_sz(N))] +[visit_exp (`%`_sz(N))] +[visit_exp `%`_sz(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -57856,24 +48160,18 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i!`%`_num_{i#35866}.0 + ao.`OFFSET`_memarg{u64#413}!`%`_u64{i#35876}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1857`}|)] -[visit_exp ((i!`%`_num_{i#35866}.0 + ao.`OFFSET`_memarg{u64#413}!`%`_u64{i#35876}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_{i#35866}.0 + ao.`OFFSET`_memarg{u64#413}!`%`_u64{i#35876}.0)] -[visit_exp i!`%`_num_{i#35866}.0] -[visit_exp i!`%`_num_{i#35866}] +[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] +[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#35866] -[visit_id i#35866] -[visit_exp ao.`OFFSET`_memarg{u64#413}!`%`_u64{i#35876}.0] -[visit_exp ao.`OFFSET`_memarg{u64#413}!`%`_u64{i#35876}] -[visit_exp ao.`OFFSET`_memarg{u64#413}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#413] -[visit_id u64#413] -[visit_exp i#35876] -[visit_id i#35876] [visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] [visit_exp (N : nat <:> rat)] @@ -57881,52 +48179,34 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id N] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1857`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1857`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1857`] -[visit_id byte*#1857] -[check_dims] Jnn M N ao at byte*#1858 c dim#7267 i i#35934 i#35992 i#36002 i#36033 i#36040 i#36120 i#36121 instr*#1206 j lanetype#7267 memarg#53 memidx#85 numtype#207 state#1091 sz#346 u64#414 vectype#72 vectype?#11 x z -[visit_exp `%;%`_config{state#1091, `instr*#1206`}(z, [`CONST`_instr{numtype#207}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#11`, memidx#85, memarg#53}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))), x, ao)])] -[visit_exp state#1091] -[visit_id state#1091] -[visit_exp `instr*#1206`] -[visit_id instr*#1206] -[visit_exp (z, [`CONST`_instr{numtype#207}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#11`, memidx#85, memarg#53}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))), x, ao)])] +[check_dims] Jnn M N ao at c i j x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#207}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#11`, memidx#85, memarg#53}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))), x, ao)]] -[visit_exp `CONST`_instr{numtype#207}((at : addrtype <: numtype), i)] -[visit_exp numtype#207] -[visit_id numtype#207] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VLOAD`_instr{`vectype?#11`, memidx#85, memarg#53}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))), x, ao)] -[visit_exp `vectype?#11`] -[visit_id vectype?#11] -[visit_exp memidx#85] -[visit_id memidx#85] -[visit_exp memarg#53] -[visit_id memarg#53] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))), x, ao)] +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N)))] -[visit_exp `SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))] -[visit_exp sz#346] -[visit_id sz#346] -[visit_exp (`%`_sz{i#35934}(N))] -[visit_exp `%`_sz{i#35934}(N)] -[visit_exp i#35934] -[visit_id i#35934] +[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(N)))] +[visit_exp `SPLAT`_vloadop_(`%`_sz(N))] +[visit_exp (`%`_sz(N))] +[visit_exp `%`_sz(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -57934,46 +48214,36 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp [`VCONST`_instr{vectype#72}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#72}(`V128`_vectype, c)] -[visit_exp vectype#72] -[visit_id vectype#72] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst{`byte*#1858`}[(i!`%`_num_{i#35992}.0 + ao.`OFFSET`_memarg{u64#414}!`%`_u64{i#36002}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] [visit_exp $ibytes_(N, j)] [visit_exp N] [visit_id N] not free [visit_exp j] [visit_id j] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1858`}[(i!`%`_num_{i#35992}.0 + ao.`OFFSET`_memarg{u64#414}!`%`_u64{i#36002}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1858`}] +[visit_exp $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1858`] -[visit_id byte*#1858] -[visit_exp (i!`%`_num_{i#35992}.0 + ao.`OFFSET`_memarg{u64#414}!`%`_u64{i#36002}.0)] -[visit_exp i!`%`_num_{i#35992}.0] -[visit_exp i!`%`_num_{i#35992}] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#35992] -[visit_id i#35992] -[visit_exp ao.`OFFSET`_memarg{u64#414}!`%`_u64{i#36002}.0] -[visit_exp ao.`OFFSET`_memarg{u64#414}!`%`_u64{i#36002}] -[visit_exp ao.`OFFSET`_memarg{u64#414}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#414] -[visit_id u64#414] -[visit_exp i#36002] -[visit_id i#36002] [visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] [visit_exp (N : nat <:> rat)] @@ -57997,91 +48267,49 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (N : nat <:> rat)] [visit_exp N] [visit_id N] not free -[visit_exp (c = $inv_lanes_(`%X%`_shape{lanetype#7267, dim#7267, i#36033}((Jnn : Jnn <: lanetype), `%`_dim{i#36040}(M)), `%`_lane_{i#36121}(j!`%`_iN{i#36120}.0)^M{i#36120 <- `i#36120*`, i#36121 <- `i#36121*`}))] +[visit_exp (c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `%`_lane_(j!`%`_iN.0)^M{}))] [visit_exp c] [visit_id c] not free -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#7267, dim#7267, i#36033}((Jnn : Jnn <: lanetype), `%`_dim{i#36040}(M)), `%`_lane_{i#36121}(j!`%`_iN{i#36120}.0)^M{i#36120 <- `i#36120*`, i#36121 <- `i#36121*`})] -[visit_exp `%X%`_shape{lanetype#7267, dim#7267, i#36033}((Jnn : Jnn <: lanetype), `%`_dim{i#36040}(M))] -[visit_exp lanetype#7267] -[visit_id lanetype#7267] -[visit_exp dim#7267] -[visit_id dim#7267] -[visit_exp i#36033] -[visit_id i#36033] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#36040}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `%`_lane_(j!`%`_iN.0)^M{})] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#36040}(M)] -[visit_exp i#36040] -[visit_id i#36040] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free -[visit_exp `%`_lane_{i#36121}(j!`%`_iN{i#36120}.0)^M{i#36120 <- `i#36120*`, i#36121 <- `i#36121*`}] -[scope_enter i#36120] -[scope_enter i#36121] -[visit_exp `%`_lane_{i#36121}(j!`%`_iN{i#36120}.0)] -[visit_exp i#36121] -[visit_id i#36121] not free -[visit_exp (j!`%`_iN{i#36120}.0)] -[visit_exp j!`%`_iN{i#36120}.0] -[visit_exp j!`%`_iN{i#36120}] +[visit_exp `%`_lane_(j!`%`_iN.0)^M{}] +[visit_exp `%`_lane_(j!`%`_iN.0)] +[visit_exp (j!`%`_iN.0)] +[visit_exp j!`%`_iN.0] +[visit_exp j!`%`_iN] [visit_exp j] [visit_id j] not free -[visit_exp i#36120] -[visit_id i#36120] not free -[visit_id i#36120] not free -[visit_id i#36121] not free -[scope_exit i#36121] -[scope_exit i#36120] [visit_exp M] [visit_id M] not free -[visit_exp `i#36120*`] -[visit_id i#36120*] no dims -[visit_id i#36120*] -[visit_exp `i#36121*`] -[visit_id i#36121*] no dims -[visit_id i#36121*] -[check_dims] N ao at byte*#1859 i i#36172 i#36179 i#36211 i#36221 instr*#1218 memarg#55 memidx#87 numtype#209 state#1103 sz#393 u64#415 vectype?#12 x z -[visit_exp `%;%`_config{state#1103, `instr*#1218`}(z, [`CONST`_instr{numtype#209}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#12`, memidx#87, memarg#55}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))), x, ao)])] -[visit_exp state#1103] -[visit_id state#1103] -[visit_exp `instr*#1218`] -[visit_id instr*#1218] -[visit_exp (z, [`CONST`_instr{numtype#209}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#12`, memidx#87, memarg#55}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))), x, ao)])] +[check_dims] N ao at i x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#209}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#12`, memidx#87, memarg#55}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))), x, ao)]] -[visit_exp `CONST`_instr{numtype#209}((at : addrtype <: numtype), i)] -[visit_exp numtype#209] -[visit_id numtype#209] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VLOAD`_instr{`vectype?#12`, memidx#87, memarg#55}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))), x, ao)] -[visit_exp `vectype?#12`] -[visit_id vectype?#12] -[visit_exp memidx#87] -[visit_id memidx#87] -[visit_exp memarg#55] -[visit_id memarg#55] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))), x, ao)] +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N)))] -[visit_exp `ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))] -[visit_exp sz#393] -[visit_id sz#393] -[visit_exp i#36172] -[visit_id i#36172] -[visit_exp (`%`_sz{i#36179}(N))] -[visit_exp `%`_sz{i#36179}(N)] -[visit_exp i#36179] -[visit_id i#36179] +[visit_exp ?(`ZERO`_vloadop_(`%`_sz(N)))] +[visit_exp `ZERO`_vloadop_(`%`_sz(N))] +[visit_exp (`%`_sz(N))] +[visit_exp `%`_sz(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -58092,24 +48320,18 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i!`%`_num_{i#36211}.0 + ao.`OFFSET`_memarg{u64#415}!`%`_u64{i#36221}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1859`}|)] -[visit_exp ((i!`%`_num_{i#36211}.0 + ao.`OFFSET`_memarg{u64#415}!`%`_u64{i#36221}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_{i#36211}.0 + ao.`OFFSET`_memarg{u64#415}!`%`_u64{i#36221}.0)] -[visit_exp i!`%`_num_{i#36211}.0] -[visit_exp i!`%`_num_{i#36211}] +[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] +[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#36211] -[visit_id i#36211] -[visit_exp ao.`OFFSET`_memarg{u64#415}!`%`_u64{i#36221}.0] -[visit_exp ao.`OFFSET`_memarg{u64#415}!`%`_u64{i#36221}] -[visit_exp ao.`OFFSET`_memarg{u64#415}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#415] -[visit_id u64#415] -[visit_exp i#36221] -[visit_id i#36221] [visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] [visit_exp (N : nat <:> rat)] @@ -58117,54 +48339,34 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id N] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1859`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1859`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1859`] -[visit_id byte*#1859] -[check_dims] N ao at byte*#1860 c i i#36273 i#36280 i#36338 i#36348 instr*#1230 j memarg#57 memidx#89 numtype#211 state#1115 sz#440 u64#416 vectype#76 vectype?#13 x z -[visit_exp `%;%`_config{state#1115, `instr*#1230`}(z, [`CONST`_instr{numtype#211}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#13`, memidx#89, memarg#57}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))), x, ao)])] -[visit_exp state#1115] -[visit_id state#1115] -[visit_exp `instr*#1230`] -[visit_id instr*#1230] -[visit_exp (z, [`CONST`_instr{numtype#211}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#13`, memidx#89, memarg#57}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))), x, ao)])] +[check_dims] N ao at c i j x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#211}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#13`, memidx#89, memarg#57}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))), x, ao)]] -[visit_exp `CONST`_instr{numtype#211}((at : addrtype <: numtype), i)] -[visit_exp numtype#211] -[visit_id numtype#211] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VLOAD`_instr{`vectype?#13`, memidx#89, memarg#57}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))), x, ao)] -[visit_exp `vectype?#13`] -[visit_id vectype?#13] -[visit_exp memidx#89] -[visit_id memidx#89] -[visit_exp memarg#57] -[visit_id memarg#57] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))), x, ao)] +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N)))] -[visit_exp `ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))] -[visit_exp sz#440] -[visit_id sz#440] -[visit_exp i#36273] -[visit_id i#36273] -[visit_exp (`%`_sz{i#36280}(N))] -[visit_exp `%`_sz{i#36280}(N)] -[visit_exp i#36280] -[visit_id i#36280] +[visit_exp ?(`ZERO`_vloadop_(`%`_sz(N)))] +[visit_exp `ZERO`_vloadop_(`%`_sz(N))] +[visit_exp (`%`_sz(N))] +[visit_exp `%`_sz(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -58172,46 +48374,36 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp [`VCONST`_instr{vectype#76}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#76}(`V128`_vectype, c)] -[visit_exp vectype#76] -[visit_id vectype#76] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst{`byte*#1860`}[(i!`%`_num_{i#36338}.0 + ao.`OFFSET`_memarg{u64#416}!`%`_u64{i#36348}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] [visit_exp $ibytes_(N, j)] [visit_exp N] [visit_id N] not free [visit_exp j] [visit_id j] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1860`}[(i!`%`_num_{i#36338}.0 + ao.`OFFSET`_memarg{u64#416}!`%`_u64{i#36348}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1860`}] +[visit_exp $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1860`] -[visit_id byte*#1860] -[visit_exp (i!`%`_num_{i#36338}.0 + ao.`OFFSET`_memarg{u64#416}!`%`_u64{i#36348}.0)] -[visit_exp i!`%`_num_{i#36338}.0] -[visit_exp i!`%`_num_{i#36338}] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#36338] -[visit_id i#36338] -[visit_exp ao.`OFFSET`_memarg{u64#416}!`%`_u64{i#36348}.0] -[visit_exp ao.`OFFSET`_memarg{u64#416}!`%`_u64{i#36348}] -[visit_exp ao.`OFFSET`_memarg{u64#416}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#416] -[visit_id u64#416] -[visit_exp i#36348] -[visit_id i#36348] [visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] [visit_exp (N : nat <:> rat)] @@ -58230,50 +48422,30 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp ()] [visit_exp j] [visit_id j] not free -[check_dims] N ao at byte*#1861 c_1 i i#36428 i#36474 i#36484 instr*#1242 j laneidx#17 memarg#59 memidx#91 numtype#213 state#1127 sz#442 u64#417 vectype#78 vectype#80 x z -[visit_exp `%;%`_config{state#1127, `instr*#1242`}(z, [`CONST`_instr{numtype#213}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#78}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#80, sz#442, memidx#91, memarg#59, laneidx#17}(`V128`_vectype, `%`_sz{i#36428}(N), x, ao, j)])] -[visit_exp state#1127] -[visit_id state#1127] -[visit_exp `instr*#1242`] -[visit_id instr*#1242] -[visit_exp (z, [`CONST`_instr{numtype#213}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#78}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#80, sz#442, memidx#91, memarg#59, laneidx#17}(`V128`_vectype, `%`_sz{i#36428}(N), x, ao, j)])] +[check_dims] N ao at c_1 i j x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#213}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#78}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#80, sz#442, memidx#91, memarg#59, laneidx#17}(`V128`_vectype, `%`_sz{i#36428}(N), x, ao, j)]] -[visit_exp `CONST`_instr{numtype#213}((at : addrtype <: numtype), i)] -[visit_exp numtype#213] -[visit_id numtype#213] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VCONST`_instr{vectype#78}(`V128`_vectype, c_1)] -[visit_exp vectype#78] -[visit_id vectype#78] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VLOAD_LANE`_instr{vectype#80, sz#442, memidx#91, memarg#59, laneidx#17}(`V128`_vectype, `%`_sz{i#36428}(N), x, ao, j)] -[visit_exp vectype#80] -[visit_id vectype#80] -[visit_exp sz#442] -[visit_id sz#442] -[visit_exp memidx#91] -[visit_id memidx#91] -[visit_exp memarg#59] -[visit_id memarg#59] -[visit_exp laneidx#17] -[visit_id laneidx#17] -[visit_exp (`V128`_vectype, `%`_sz{i#36428}(N), x, ao, j)] +[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)] +[visit_exp (`V128`_vectype, `%`_sz(N), x, ao, j)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#36428}(N)] -[visit_exp i#36428] -[visit_id i#36428] +[visit_exp `%`_sz(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -58286,24 +48458,18 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i!`%`_num_{i#36474}.0 + ao.`OFFSET`_memarg{u64#417}!`%`_u64{i#36484}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1861`}|)] -[visit_exp ((i!`%`_num_{i#36474}.0 + ao.`OFFSET`_memarg{u64#417}!`%`_u64{i#36484}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_{i#36474}.0 + ao.`OFFSET`_memarg{u64#417}!`%`_u64{i#36484}.0)] -[visit_exp i!`%`_num_{i#36474}.0] -[visit_exp i!`%`_num_{i#36474}] +[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] +[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#36474] -[visit_id i#36474] -[visit_exp ao.`OFFSET`_memarg{u64#417}!`%`_u64{i#36484}.0] -[visit_exp ao.`OFFSET`_memarg{u64#417}!`%`_u64{i#36484}] -[visit_exp ao.`OFFSET`_memarg{u64#417}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#417] -[visit_id u64#417] -[visit_exp i#36484] -[visit_id i#36484] [visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] [visit_exp (N : nat <:> rat)] @@ -58311,59 +48477,37 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id N] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1861`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1861`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1861`] -[visit_id byte*#1861] -[check_dims] Jnn M N ao at byte*#1862 c c_1 dim#7292 dim#7383 i i#36532 i#36604 i#36614 i#36645 i#36652 i#36877 i#36884 i#36910 i#36956 i#36957 instr*#1254 j k laneidx#19 lanetype#7292 lanetype#7383 memarg#61 memidx#93 numtype#215 state#1139 sz#444 u64#418 vectype#82 vectype#84 vectype#86 x z -[visit_exp `%;%`_config{state#1139, `instr*#1254`}(z, [`CONST`_instr{numtype#215}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#82}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#84, sz#444, memidx#93, memarg#61, laneidx#19}(`V128`_vectype, `%`_sz{i#36532}(N), x, ao, j)])] -[visit_exp state#1139] -[visit_id state#1139] -[visit_exp `instr*#1254`] -[visit_id instr*#1254] -[visit_exp (z, [`CONST`_instr{numtype#215}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#82}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#84, sz#444, memidx#93, memarg#61, laneidx#19}(`V128`_vectype, `%`_sz{i#36532}(N), x, ao, j)])] +[check_dims] Jnn M N ao at c c_1 i j k x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#215}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#82}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#84, sz#444, memidx#93, memarg#61, laneidx#19}(`V128`_vectype, `%`_sz{i#36532}(N), x, ao, j)]] -[visit_exp `CONST`_instr{numtype#215}((at : addrtype <: numtype), i)] -[visit_exp numtype#215] -[visit_id numtype#215] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VCONST`_instr{vectype#82}(`V128`_vectype, c_1)] -[visit_exp vectype#82] -[visit_id vectype#82] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VLOAD_LANE`_instr{vectype#84, sz#444, memidx#93, memarg#61, laneidx#19}(`V128`_vectype, `%`_sz{i#36532}(N), x, ao, j)] -[visit_exp vectype#84] -[visit_id vectype#84] -[visit_exp sz#444] -[visit_id sz#444] -[visit_exp memidx#93] -[visit_id memidx#93] -[visit_exp memarg#61] -[visit_id memarg#61] -[visit_exp laneidx#19] -[visit_id laneidx#19] -[visit_exp (`V128`_vectype, `%`_sz{i#36532}(N), x, ao, j)] +[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)] +[visit_exp (`V128`_vectype, `%`_sz(N), x, ao, j)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#36532}(N)] -[visit_exp i#36532] -[visit_id i#36532] +[visit_exp `%`_sz(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -58373,46 +48517,36 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id ao] [visit_exp j] [visit_id j] -[visit_exp [`VCONST`_instr{vectype#86}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#86}(`V128`_vectype, c)] -[visit_exp vectype#86] -[visit_id vectype#86] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp ($ibytes_(N, k) = $mem(z, x).`BYTES`_meminst{`byte*#1862`}[(i!`%`_num_{i#36604}.0 + ao.`OFFSET`_memarg{u64#418}!`%`_u64{i#36614}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp ($ibytes_(N, k) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] [visit_exp $ibytes_(N, k)] [visit_exp N] [visit_id N] not free [visit_exp k] [visit_id k] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1862`}[(i!`%`_num_{i#36604}.0 + ao.`OFFSET`_memarg{u64#418}!`%`_u64{i#36614}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1862`}] +[visit_exp $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1862`] -[visit_id byte*#1862] -[visit_exp (i!`%`_num_{i#36604}.0 + ao.`OFFSET`_memarg{u64#418}!`%`_u64{i#36614}.0)] -[visit_exp i!`%`_num_{i#36604}.0] -[visit_exp i!`%`_num_{i#36604}] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#36604] -[visit_id i#36604] -[visit_exp ao.`OFFSET`_memarg{u64#418}!`%`_u64{i#36614}.0] -[visit_exp ao.`OFFSET`_memarg{u64#418}!`%`_u64{i#36614}] -[visit_exp ao.`OFFSET`_memarg{u64#418}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#418] -[visit_id u64#418] -[visit_exp i#36614] -[visit_id i#36614] [visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] [visit_exp (N : nat <:> rat)] @@ -58438,98 +48572,62 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (N : nat <:> rat)] [visit_exp N] [visit_id N] not free -[visit_exp (c = $inv_lanes_(`%X%`_shape{lanetype#7292, dim#7292, i#36645}((Jnn : Jnn <: lanetype), `%`_dim{i#36652}(M)), $lanes_(`%X%`_shape{lanetype#7383, dim#7383, i#36877}((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M)), c_1)[[j!`%`_laneidx{i#36910}.0] = `%`_lane_{i#36957}(k!`%`_iN{i#36956}.0)]))] +[visit_exp (c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)[[j!`%`_laneidx.0] = `%`_lane_(k!`%`_iN.0)]))] [visit_exp c] [visit_id c] not free -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#7292, dim#7292, i#36645}((Jnn : Jnn <: lanetype), `%`_dim{i#36652}(M)), $lanes_(`%X%`_shape{lanetype#7383, dim#7383, i#36877}((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M)), c_1)[[j!`%`_laneidx{i#36910}.0] = `%`_lane_{i#36957}(k!`%`_iN{i#36956}.0)])] -[visit_exp `%X%`_shape{lanetype#7292, dim#7292, i#36645}((Jnn : Jnn <: lanetype), `%`_dim{i#36652}(M))] -[visit_exp lanetype#7292] -[visit_id lanetype#7292] -[visit_exp dim#7292] -[visit_id dim#7292] -[visit_exp i#36645] -[visit_id i#36645] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#36652}(M))] +[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)[[j!`%`_laneidx.0] = `%`_lane_(k!`%`_iN.0)])] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#36652}(M)] -[visit_exp i#36652] -[visit_id i#36652] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free -[visit_exp $lanes_(`%X%`_shape{lanetype#7383, dim#7383, i#36877}((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M)), c_1)[[j!`%`_laneidx{i#36910}.0] = `%`_lane_{i#36957}(k!`%`_iN{i#36956}.0)]] -[visit_exp $lanes_(`%X%`_shape{lanetype#7383, dim#7383, i#36877}((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M)), c_1)] -[visit_exp `%X%`_shape{lanetype#7383, dim#7383, i#36877}((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M))] -[visit_exp lanetype#7383] -[visit_id lanetype#7383] -[visit_exp dim#7383] -[visit_id dim#7383] -[visit_exp i#36877] -[visit_id i#36877] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)[[j!`%`_laneidx.0] = `%`_lane_(k!`%`_iN.0)]] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#36884}(M)] -[visit_exp i#36884] -[visit_id i#36884] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp c_1] [visit_id c_1] not free -[visit_exp j!`%`_laneidx{i#36910}.0] -[visit_exp j!`%`_laneidx{i#36910}] +[visit_exp j!`%`_laneidx.0] +[visit_exp j!`%`_laneidx] [visit_exp j] [visit_id j] not free -[visit_exp i#36910] -[visit_id i#36910] -[visit_exp `%`_lane_{i#36957}(k!`%`_iN{i#36956}.0)] -[visit_exp i#36957] -[visit_id i#36957] -[visit_exp (k!`%`_iN{i#36956}.0)] -[visit_exp k!`%`_iN{i#36956}.0] -[visit_exp k!`%`_iN{i#36956}] +[visit_exp `%`_lane_(k!`%`_iN.0)] +[visit_exp (k!`%`_iN.0)] +[visit_exp k!`%`_iN.0] +[visit_exp k!`%`_iN] [visit_exp k] [visit_id k] not free -[visit_exp i#36956] -[visit_id i#36956] -[check_dims] ao at byte*#1863 c i i#37014 i#37024 instr*#1266 instr*#1278 memarg#63 memidx#95 nt numtype#217 numtype#219 numtype?#11 state#1151 state#1163 u64#419 x z -[visit_exp `%;%`_config{state#1151, `instr*#1266`}(z, [`CONST`_instr{numtype#217}((at : addrtype <: numtype), i) `CONST`_instr{numtype#219}(nt, c) `STORE`_instr{`numtype?#11`, memidx#95, memarg#63}(nt, ?(), x, ao)])] -[visit_exp state#1151] -[visit_id state#1151] -[visit_exp `instr*#1266`] -[visit_id instr*#1266] -[visit_exp (z, [`CONST`_instr{numtype#217}((at : addrtype <: numtype), i) `CONST`_instr{numtype#219}(nt, c) `STORE`_instr{`numtype?#11`, memidx#95, memarg#63}(nt, ?(), x, ao)])] +[check_dims] ao at c i nt x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#217}((at : addrtype <: numtype), i) `CONST`_instr{numtype#219}(nt, c) `STORE`_instr{`numtype?#11`, memidx#95, memarg#63}(nt, ?(), x, ao)]] -[visit_exp `CONST`_instr{numtype#217}((at : addrtype <: numtype), i)] -[visit_exp numtype#217] -[visit_id numtype#217] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#219}(nt, c)] -[visit_exp numtype#219] -[visit_id numtype#219] +[visit_exp `CONST`_instr(nt, c)] [visit_exp (nt, c)] [visit_exp nt] [visit_id nt] [visit_exp c] [visit_id c] -[visit_exp `STORE`_instr{`numtype?#11`, memidx#95, memarg#63}(nt, ?(), x, ao)] -[visit_exp `numtype?#11`] -[visit_id numtype?#11] -[visit_exp memidx#95] -[visit_id memidx#95] -[visit_exp memarg#63] -[visit_id memarg#63] +[visit_exp `STORE`_instr(nt, ?(), x, ao)] [visit_exp (nt, ?(), x, ao)] [visit_exp nt] [visit_id nt] not free @@ -58538,35 +48636,25 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%;%`_config{state#1163, `instr*#1278`}(z, [`TRAP`_instr])] -[visit_exp state#1163] -[visit_id state#1163] -[visit_exp `instr*#1278`] -[visit_id instr*#1278] +[visit_exp `%;%`_config(z, [`TRAP`_instr])] [visit_exp (z, [`TRAP`_instr])] [visit_exp z] [visit_id z] not free [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i!`%`_num_{i#37014}.0 + ao.`OFFSET`_memarg{u64#419}!`%`_u64{i#37024}.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1863`}|)] -[visit_exp ((i!`%`_num_{i#37014}.0 + ao.`OFFSET`_memarg{u64#419}!`%`_u64{i#37024}.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_{i#37014}.0 + ao.`OFFSET`_memarg{u64#419}!`%`_u64{i#37024}.0)] -[visit_exp i!`%`_num_{i#37014}.0] -[visit_exp i!`%`_num_{i#37014}] +[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] +[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#37014] -[visit_id i#37014] -[visit_exp ao.`OFFSET`_memarg{u64#419}!`%`_u64{i#37024}.0] -[visit_exp ao.`OFFSET`_memarg{u64#419}!`%`_u64{i#37024}] -[visit_exp ao.`OFFSET`_memarg{u64#419}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#419] -[visit_id u64#419] -[visit_exp i#37024] -[visit_id i#37024] [visit_exp ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (($size(nt) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ($size(nt) : nat <:> rat)] @@ -58575,49 +48663,33 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id nt] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1863`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1863`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1863`] -[visit_id byte*#1863] -[check_dims] ao at b c i i#37094 i#37104 instr*#1290 instr*#1302 memarg#65 memidx#97 nt numtype#222 numtype#224 numtype?#12 state#1175 state#1187 u64#420 x z -[visit_exp `%;%`_config{state#1175, `instr*#1290`}(z, [`CONST`_instr{numtype#222}((at : addrtype <: numtype), i) `CONST`_instr{numtype#224}(nt, c) `STORE`_instr{`numtype?#12`, memidx#97, memarg#65}(nt, ?(), x, ao)])] -[visit_exp state#1175] -[visit_id state#1175] -[visit_exp `instr*#1290`] -[visit_id instr*#1290] -[visit_exp (z, [`CONST`_instr{numtype#222}((at : addrtype <: numtype), i) `CONST`_instr{numtype#224}(nt, c) `STORE`_instr{`numtype?#12`, memidx#97, memarg#65}(nt, ?(), x, ao)])] +[check_dims] ao at b c i nt x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#222}((at : addrtype <: numtype), i) `CONST`_instr{numtype#224}(nt, c) `STORE`_instr{`numtype?#12`, memidx#97, memarg#65}(nt, ?(), x, ao)]] -[visit_exp `CONST`_instr{numtype#222}((at : addrtype <: numtype), i)] -[visit_exp numtype#222] -[visit_id numtype#222] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#224}(nt, c)] -[visit_exp numtype#224] -[visit_id numtype#224] +[visit_exp `CONST`_instr(nt, c)] [visit_exp (nt, c)] [visit_exp nt] [visit_id nt] [visit_exp c] [visit_id c] -[visit_exp `STORE`_instr{`numtype?#12`, memidx#97, memarg#65}(nt, ?(), x, ao)] -[visit_exp `numtype?#12`] -[visit_id numtype?#12] -[visit_exp memidx#97] -[visit_id memidx#97] -[visit_exp memarg#65] -[visit_id memarg#65] +[visit_exp `STORE`_instr(nt, ?(), x, ao)] [visit_exp (nt, ?(), x, ao)] [visit_exp nt] [visit_id nt] not free @@ -58626,33 +48698,23 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%;%`_config{state#1187, `instr*#1302`}($with_mem(z, x, (i!`%`_num_{i#37094}.0 + ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp state#1187] -[visit_id state#1187] -[visit_exp `instr*#1302`] -[visit_id instr*#1302] -[visit_exp ($with_mem(z, x, (i!`%`_num_{i#37094}.0 + ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp $with_mem(z, x, (i!`%`_num_{i#37094}.0 + ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] +[visit_exp `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp ($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp $with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp (i!`%`_num_{i#37094}.0 + ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}.0)] -[visit_exp i!`%`_num_{i#37094}.0] -[visit_exp i!`%`_num_{i#37094}] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#37094] -[visit_id i#37094] -[visit_exp ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}.0] -[visit_exp ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}] -[visit_exp ao.`OFFSET`_memarg{u64#420}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#420] -[visit_id u64#420] -[visit_exp i#37104] -[visit_id i#37104] [visit_exp ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (($size(nt) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ($size(nt) : nat <:> rat)] @@ -58686,55 +48748,35 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id nt] not free [visit_exp c] [visit_id c] not free -[check_dims] Inn ao at byte*#1864 c i i#37199 i#37200 i#37232 i#37242 instr*#1314 instr*#1326 memarg#67 memidx#99 n numtype#227 numtype#229 numtype?#13 state#1199 state#1211 sz#446 u64#421 x z -[visit_exp `%;%`_config{state#1199, `instr*#1314`}(z, [`CONST`_instr{numtype#227}((at : addrtype <: numtype), i) `CONST`_instr{numtype#229}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#13`, memidx#99, memarg#67}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))), x, ao)])] -[visit_exp state#1199] -[visit_id state#1199] -[visit_exp `instr*#1314`] -[visit_id instr*#1314] -[visit_exp (z, [`CONST`_instr{numtype#227}((at : addrtype <: numtype), i) `CONST`_instr{numtype#229}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#13`, memidx#99, memarg#67}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))), x, ao)])] +[check_dims] Inn ao at c i n x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#227}((at : addrtype <: numtype), i) `CONST`_instr{numtype#229}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#13`, memidx#99, memarg#67}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))), x, ao)]] -[visit_exp `CONST`_instr{numtype#227}((at : addrtype <: numtype), i)] -[visit_exp numtype#227] -[visit_id numtype#227] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#229}((Inn : Inn <: numtype), c)] -[visit_exp numtype#229] -[visit_id numtype#229] +[visit_exp `CONST`_instr((Inn : Inn <: numtype), c)] [visit_exp ((Inn : Inn <: numtype), c)] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] [visit_exp c] [visit_id c] -[visit_exp `STORE`_instr{`numtype?#13`, memidx#99, memarg#67}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))), x, ao)] -[visit_exp `numtype?#13`] -[visit_id numtype?#13] -[visit_exp memidx#99] -[visit_id memidx#99] -[visit_exp memarg#67] -[visit_id memarg#67] -[visit_exp ((Inn : Inn <: numtype), ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))), x, ao)] +[visit_exp `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)] +[visit_exp ((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] not free -[visit_exp ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n)))] -[visit_exp `%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))] -[visit_exp sz#446] -[visit_id sz#446] -[visit_exp i#37199] -[visit_id i#37199] -[visit_exp (`%`_sz{i#37200}(n))] -[visit_exp `%`_sz{i#37200}(n)] -[visit_exp i#37200] -[visit_id i#37200] +[visit_exp ?(`%`_storeop_(`%`_sz(n)))] +[visit_exp `%`_storeop_(`%`_sz(n))] +[visit_exp (`%`_sz(n))] +[visit_exp `%`_sz(n)] [visit_exp (n)] [visit_exp n] [visit_id n] @@ -58742,35 +48784,25 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%;%`_config{state#1211, `instr*#1326`}(z, [`TRAP`_instr])] -[visit_exp state#1211] -[visit_id state#1211] -[visit_exp `instr*#1326`] -[visit_id instr*#1326] +[visit_exp `%;%`_config(z, [`TRAP`_instr])] [visit_exp (z, [`TRAP`_instr])] [visit_exp z] [visit_id z] not free [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i!`%`_num_{i#37232}.0 + ao.`OFFSET`_memarg{u64#421}!`%`_u64{i#37242}.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1864`}|)] -[visit_exp ((i!`%`_num_{i#37232}.0 + ao.`OFFSET`_memarg{u64#421}!`%`_u64{i#37242}.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_{i#37232}.0 + ao.`OFFSET`_memarg{u64#421}!`%`_u64{i#37242}.0)] -[visit_exp i!`%`_num_{i#37232}.0] -[visit_exp i!`%`_num_{i#37232}] +[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] +[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#37232] -[visit_id i#37232] -[visit_exp ao.`OFFSET`_memarg{u64#421}!`%`_u64{i#37242}.0] -[visit_exp ao.`OFFSET`_memarg{u64#421}!`%`_u64{i#37242}] -[visit_exp ao.`OFFSET`_memarg{u64#421}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#421] -[visit_id u64#421] -[visit_exp i#37242] -[visit_id i#37242] [visit_exp (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp ((n : nat <:> rat) / (8 : nat <:> rat))] [visit_exp (n : nat <:> rat)] @@ -58778,64 +48810,42 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1864`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1864`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1864`] -[visit_id byte*#1864] -[check_dims] Inn ao at b c i i#37325 i#37326 i#37370 i#37380 instr*#1338 instr*#1350 memarg#69 memidx#101 n numtype#232 numtype#234 numtype?#14 state#1223 state#1235 sz#448 u64#422 x z -[visit_exp `%;%`_config{state#1223, `instr*#1338`}(z, [`CONST`_instr{numtype#232}((at : addrtype <: numtype), i) `CONST`_instr{numtype#234}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#14`, memidx#101, memarg#69}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))), x, ao)])] -[visit_exp state#1223] -[visit_id state#1223] -[visit_exp `instr*#1338`] -[visit_id instr*#1338] -[visit_exp (z, [`CONST`_instr{numtype#232}((at : addrtype <: numtype), i) `CONST`_instr{numtype#234}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#14`, memidx#101, memarg#69}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))), x, ao)])] +[check_dims] Inn ao at b c i n x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#232}((at : addrtype <: numtype), i) `CONST`_instr{numtype#234}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#14`, memidx#101, memarg#69}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))), x, ao)]] -[visit_exp `CONST`_instr{numtype#232}((at : addrtype <: numtype), i)] -[visit_exp numtype#232] -[visit_id numtype#232] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#234}((Inn : Inn <: numtype), c)] -[visit_exp numtype#234] -[visit_id numtype#234] +[visit_exp `CONST`_instr((Inn : Inn <: numtype), c)] [visit_exp ((Inn : Inn <: numtype), c)] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] [visit_exp c] [visit_id c] -[visit_exp `STORE`_instr{`numtype?#14`, memidx#101, memarg#69}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))), x, ao)] -[visit_exp `numtype?#14`] -[visit_id numtype?#14] -[visit_exp memidx#101] -[visit_id memidx#101] -[visit_exp memarg#69] -[visit_id memarg#69] -[visit_exp ((Inn : Inn <: numtype), ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))), x, ao)] +[visit_exp `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)] +[visit_exp ((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)] [visit_exp (Inn : Inn <: numtype)] [visit_exp Inn] [visit_id Inn] not free -[visit_exp ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n)))] -[visit_exp `%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))] -[visit_exp sz#448] -[visit_id sz#448] -[visit_exp i#37325] -[visit_id i#37325] -[visit_exp (`%`_sz{i#37326}(n))] -[visit_exp `%`_sz{i#37326}(n)] -[visit_exp i#37326] -[visit_id i#37326] +[visit_exp ?(`%`_storeop_(`%`_sz(n)))] +[visit_exp `%`_storeop_(`%`_sz(n))] +[visit_exp (`%`_sz(n))] +[visit_exp `%`_sz(n)] [visit_exp (n)] [visit_exp n] [visit_id n] @@ -58843,33 +48853,23 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%;%`_config{state#1235, `instr*#1350`}($with_mem(z, x, (i!`%`_num_{i#37370}.0 + ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp state#1235] -[visit_id state#1235] -[visit_exp `instr*#1350`] -[visit_id instr*#1350] -[visit_exp ($with_mem(z, x, (i!`%`_num_{i#37370}.0 + ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp $with_mem(z, x, (i!`%`_num_{i#37370}.0 + ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] +[visit_exp `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp ($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp $with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp (i!`%`_num_{i#37370}.0 + ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}.0)] -[visit_exp i!`%`_num_{i#37370}.0] -[visit_exp i!`%`_num_{i#37370}] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#37370] -[visit_id i#37370] -[visit_exp ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}.0] -[visit_exp ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}] -[visit_exp ao.`OFFSET`_memarg{u64#422}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#422] -[visit_id u64#422] -[visit_exp i#37380] -[visit_id i#37380] [visit_exp (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp ((n : nat <:> rat) / (8 : nat <:> rat))] [visit_exp (n : nat <:> rat)] @@ -58909,40 +48909,26 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp c] [visit_id c] not free -[check_dims] ao at byte*#1865 c i i#37486 i#37496 instr*#1362 instr*#1374 memarg#71 memidx#103 numtype#237 state#1247 state#1259 u64#423 vectype#88 vectype#90 x z -[visit_exp `%;%`_config{state#1247, `instr*#1362`}(z, [`CONST`_instr{numtype#237}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#88}(`V128`_vectype, c) `VSTORE`_instr{vectype#90, memidx#103, memarg#71}(`V128`_vectype, x, ao)])] -[visit_exp state#1247] -[visit_id state#1247] -[visit_exp `instr*#1362`] -[visit_id instr*#1362] -[visit_exp (z, [`CONST`_instr{numtype#237}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#88}(`V128`_vectype, c) `VSTORE`_instr{vectype#90, memidx#103, memarg#71}(`V128`_vectype, x, ao)])] +[check_dims] ao at c i x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#237}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#88}(`V128`_vectype, c) `VSTORE`_instr{vectype#90, memidx#103, memarg#71}(`V128`_vectype, x, ao)]] -[visit_exp `CONST`_instr{numtype#237}((at : addrtype <: numtype), i)] -[visit_exp numtype#237] -[visit_id numtype#237] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VCONST`_instr{vectype#88}(`V128`_vectype, c)] -[visit_exp vectype#88] -[visit_id vectype#88] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp `VSTORE`_instr{vectype#90, memidx#103, memarg#71}(`V128`_vectype, x, ao)] -[visit_exp vectype#90] -[visit_id vectype#90] -[visit_exp memidx#103] -[visit_id memidx#103] -[visit_exp memarg#71] -[visit_id memarg#71] +[visit_exp `VSTORE`_instr(`V128`_vectype, x, ao)] [visit_exp (`V128`_vectype, x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -58950,35 +48936,25 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%;%`_config{state#1259, `instr*#1374`}(z, [`TRAP`_instr])] -[visit_exp state#1259] -[visit_id state#1259] -[visit_exp `instr*#1374`] -[visit_id instr*#1374] +[visit_exp `%;%`_config(z, [`TRAP`_instr])] [visit_exp (z, [`TRAP`_instr])] [visit_exp z] [visit_id z] not free [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i!`%`_num_{i#37486}.0 + ao.`OFFSET`_memarg{u64#423}!`%`_u64{i#37496}.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1865`}|)] -[visit_exp ((i!`%`_num_{i#37486}.0 + ao.`OFFSET`_memarg{u64#423}!`%`_u64{i#37496}.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_{i#37486}.0 + ao.`OFFSET`_memarg{u64#423}!`%`_u64{i#37496}.0)] -[visit_exp i!`%`_num_{i#37486}.0] -[visit_exp i!`%`_num_{i#37486}] +[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] +[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#37486] -[visit_id i#37486] -[visit_exp ao.`OFFSET`_memarg{u64#423}!`%`_u64{i#37496}.0] -[visit_exp ao.`OFFSET`_memarg{u64#423}!`%`_u64{i#37496}] -[visit_exp ao.`OFFSET`_memarg{u64#423}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#423] -[visit_id u64#423] -[visit_exp i#37496] -[visit_id i#37496] [visit_exp ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] @@ -58987,49 +48963,33 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp ()] [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1865`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1865`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1865`] -[visit_id byte*#1865] -[check_dims] ao at b c i i#37580 i#37590 instr*#1386 instr*#1398 memarg#73 memidx#105 numtype#239 state#1271 state#1283 u64#424 vectype#92 vectype#94 x z -[visit_exp `%;%`_config{state#1271, `instr*#1386`}(z, [`CONST`_instr{numtype#239}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#92}(`V128`_vectype, c) `VSTORE`_instr{vectype#94, memidx#105, memarg#73}(`V128`_vectype, x, ao)])] -[visit_exp state#1271] -[visit_id state#1271] -[visit_exp `instr*#1386`] -[visit_id instr*#1386] -[visit_exp (z, [`CONST`_instr{numtype#239}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#92}(`V128`_vectype, c) `VSTORE`_instr{vectype#94, memidx#105, memarg#73}(`V128`_vectype, x, ao)])] +[check_dims] ao at b c i x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#239}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#92}(`V128`_vectype, c) `VSTORE`_instr{vectype#94, memidx#105, memarg#73}(`V128`_vectype, x, ao)]] -[visit_exp `CONST`_instr{numtype#239}((at : addrtype <: numtype), i)] -[visit_exp numtype#239] -[visit_id numtype#239] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VCONST`_instr{vectype#92}(`V128`_vectype, c)] -[visit_exp vectype#92] -[visit_id vectype#92] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp `VSTORE`_instr{vectype#94, memidx#105, memarg#73}(`V128`_vectype, x, ao)] -[visit_exp vectype#94] -[visit_id vectype#94] -[visit_exp memidx#105] -[visit_id memidx#105] -[visit_exp memarg#73] -[visit_id memarg#73] +[visit_exp `VSTORE`_instr(`V128`_vectype, x, ao)] [visit_exp (`V128`_vectype, x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -59037,33 +48997,23 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%;%`_config{state#1283, `instr*#1398`}($with_mem(z, x, (i!`%`_num_{i#37580}.0 + ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp state#1283] -[visit_id state#1283] -[visit_exp `instr*#1398`] -[visit_id instr*#1398] -[visit_exp ($with_mem(z, x, (i!`%`_num_{i#37580}.0 + ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp $with_mem(z, x, (i!`%`_num_{i#37580}.0 + ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] +[visit_exp `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp ($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp $with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp (i!`%`_num_{i#37580}.0 + ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}.0)] -[visit_exp i!`%`_num_{i#37580}.0] -[visit_exp i!`%`_num_{i#37580}] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#37580] -[visit_id i#37580] -[visit_exp ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}.0] -[visit_exp ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}] -[visit_exp ao.`OFFSET`_memarg{u64#424}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#424] -[visit_id u64#424] -[visit_exp i#37590] -[visit_id i#37590] [visit_exp ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] @@ -59097,50 +49047,30 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp ()] [visit_exp c] [visit_id c] not free -[check_dims] N ao at byte*#1866 c i i#37660 i#37706 i#37716 instr*#1410 instr*#1422 j laneidx#21 memarg#75 memidx#107 numtype#241 state#1295 state#1307 sz#450 u64#425 vectype#96 vectype#98 x z -[visit_exp `%;%`_config{state#1295, `instr*#1410`}(z, [`CONST`_instr{numtype#241}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#96}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#98, sz#450, memidx#107, memarg#75, laneidx#21}(`V128`_vectype, `%`_sz{i#37660}(N), x, ao, j)])] -[visit_exp state#1295] -[visit_id state#1295] -[visit_exp `instr*#1410`] -[visit_id instr*#1410] -[visit_exp (z, [`CONST`_instr{numtype#241}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#96}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#98, sz#450, memidx#107, memarg#75, laneidx#21}(`V128`_vectype, `%`_sz{i#37660}(N), x, ao, j)])] +[check_dims] N ao at c i j x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#241}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#96}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#98, sz#450, memidx#107, memarg#75, laneidx#21}(`V128`_vectype, `%`_sz{i#37660}(N), x, ao, j)]] -[visit_exp `CONST`_instr{numtype#241}((at : addrtype <: numtype), i)] -[visit_exp numtype#241] -[visit_id numtype#241] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VCONST`_instr{vectype#96}(`V128`_vectype, c)] -[visit_exp vectype#96] -[visit_id vectype#96] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp `VSTORE_LANE`_instr{vectype#98, sz#450, memidx#107, memarg#75, laneidx#21}(`V128`_vectype, `%`_sz{i#37660}(N), x, ao, j)] -[visit_exp vectype#98] -[visit_id vectype#98] -[visit_exp sz#450] -[visit_id sz#450] -[visit_exp memidx#107] -[visit_id memidx#107] -[visit_exp memarg#75] -[visit_id memarg#75] -[visit_exp laneidx#21] -[visit_id laneidx#21] -[visit_exp (`V128`_vectype, `%`_sz{i#37660}(N), x, ao, j)] +[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)] +[visit_exp (`V128`_vectype, `%`_sz(N), x, ao, j)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#37660}(N)] -[visit_exp i#37660] -[visit_id i#37660] +[visit_exp `%`_sz(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -59150,90 +49080,58 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id ao] [visit_exp j] [visit_id j] -[visit_exp `%;%`_config{state#1307, `instr*#1422`}(z, [`TRAP`_instr])] -[visit_exp state#1307] -[visit_id state#1307] -[visit_exp `instr*#1422`] -[visit_id instr*#1422] +[visit_exp `%;%`_config(z, [`TRAP`_instr])] [visit_exp (z, [`TRAP`_instr])] [visit_exp z] [visit_id z] not free [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i!`%`_num_{i#37706}.0 + ao.`OFFSET`_memarg{u64#425}!`%`_u64{i#37716}.0) + N) > |$mem(z, x).`BYTES`_meminst{`byte*#1866`}|)] -[visit_exp ((i!`%`_num_{i#37706}.0 + ao.`OFFSET`_memarg{u64#425}!`%`_u64{i#37716}.0) + N)] -[visit_exp (i!`%`_num_{i#37706}.0 + ao.`OFFSET`_memarg{u64#425}!`%`_u64{i#37716}.0)] -[visit_exp i!`%`_num_{i#37706}.0] -[visit_exp i!`%`_num_{i#37706}] +[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + N) > |$mem(z, x).`BYTES`_meminst|)] +[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + N)] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#37706] -[visit_id i#37706] -[visit_exp ao.`OFFSET`_memarg{u64#425}!`%`_u64{i#37716}.0] -[visit_exp ao.`OFFSET`_memarg{u64#425}!`%`_u64{i#37716}] -[visit_exp ao.`OFFSET`_memarg{u64#425}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#425] -[visit_id u64#425] -[visit_exp i#37716] -[visit_id i#37716] [visit_exp N] [visit_id N] not free -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1866`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1866`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1866`] -[visit_id byte*#1866] -[check_dims] Jnn M N ao at b c dim#7403 i i#37764 i#37822 i#37832 i#37855 i#37862 i#37882 i#37906 i#37907 instr*#1434 instr*#1446 j laneidx#23 lanetype#7403 memarg#77 memidx#109 numtype#243 state#1319 state#1331 sz#452 u64#426 vectype#100 vectype#102 x z -[visit_exp `%;%`_config{state#1319, `instr*#1434`}(z, [`CONST`_instr{numtype#243}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#100}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#102, sz#452, memidx#109, memarg#77, laneidx#23}(`V128`_vectype, `%`_sz{i#37764}(N), x, ao, j)])] -[visit_exp state#1319] -[visit_id state#1319] -[visit_exp `instr*#1434`] -[visit_id instr*#1434] -[visit_exp (z, [`CONST`_instr{numtype#243}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#100}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#102, sz#452, memidx#109, memarg#77, laneidx#23}(`V128`_vectype, `%`_sz{i#37764}(N), x, ao, j)])] +[check_dims] Jnn M N ao at b c i j x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#243}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#100}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#102, sz#452, memidx#109, memarg#77, laneidx#23}(`V128`_vectype, `%`_sz{i#37764}(N), x, ao, j)]] -[visit_exp `CONST`_instr{numtype#243}((at : addrtype <: numtype), i)] -[visit_exp numtype#243] -[visit_id numtype#243] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `VCONST`_instr{vectype#100}(`V128`_vectype, c)] -[visit_exp vectype#100] -[visit_id vectype#100] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp `VSTORE_LANE`_instr{vectype#102, sz#452, memidx#109, memarg#77, laneidx#23}(`V128`_vectype, `%`_sz{i#37764}(N), x, ao, j)] -[visit_exp vectype#102] -[visit_id vectype#102] -[visit_exp sz#452] -[visit_id sz#452] -[visit_exp memidx#109] -[visit_id memidx#109] -[visit_exp memarg#77] -[visit_id memarg#77] -[visit_exp laneidx#23] -[visit_id laneidx#23] -[visit_exp (`V128`_vectype, `%`_sz{i#37764}(N), x, ao, j)] +[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)] +[visit_exp (`V128`_vectype, `%`_sz(N), x, ao, j)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#37764}(N)] -[visit_exp i#37764] -[visit_id i#37764] +[visit_exp `%`_sz(N)] [visit_exp (N)] [visit_exp N] [visit_id N] @@ -59243,33 +49141,23 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id ao] [visit_exp j] [visit_id j] -[visit_exp `%;%`_config{state#1331, `instr*#1446`}($with_mem(z, x, (i!`%`_num_{i#37822}.0 + ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp state#1331] -[visit_id state#1331] -[visit_exp `instr*#1446`] -[visit_id instr*#1446] -[visit_exp ($with_mem(z, x, (i!`%`_num_{i#37822}.0 + ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp $with_mem(z, x, (i!`%`_num_{i#37822}.0 + ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] +[visit_exp `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp ($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] +[visit_exp $with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp (i!`%`_num_{i#37822}.0 + ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}.0)] -[visit_exp i!`%`_num_{i#37822}.0] -[visit_exp i!`%`_num_{i#37822}] +[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#37822] -[visit_id i#37822] -[visit_exp ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}.0] -[visit_exp ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}] -[visit_exp ao.`OFFSET`_memarg{u64#426}] +[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] +[visit_exp ao.`OFFSET`_memarg!`%`_u64] +[visit_exp ao.`OFFSET`_memarg] [visit_exp ao] [visit_id ao] not free -[visit_exp u64#426] -[visit_id u64#426] -[visit_exp i#37832] -[visit_id i#37832] [visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] [visit_exp (N : nat <:> rat)] @@ -59303,7 +49191,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (N : nat <:> rat)] [visit_exp N] [visit_id N] not free -[visit_exp (b*{b <- `b*`} = $ibytes_(N, `%`_iN{i#37907}($lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}.0)))] +[visit_exp (b*{b <- `b*`} = $ibytes_(N, `%`_iN($lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_.0)))] [visit_exp b*{b <- `b*`}] [scope_enter b] [visit_exp b] @@ -59313,144 +49201,98 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `b*`] [visit_id b*] not free [visit_id b*] no dims -[visit_exp $ibytes_(N, `%`_iN{i#37907}($lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}.0))] +[visit_exp $ibytes_(N, `%`_iN($lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_.0))] [visit_exp N] [visit_id N] not free -[visit_exp `%`_iN{i#37907}($lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}.0)] -[visit_exp i#37907] -[visit_id i#37907] -[visit_exp ($lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}.0)] -[visit_exp $lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}.0] -[visit_exp $lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}] -[visit_exp $lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]] -[visit_exp $lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)] -[visit_exp `%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M))] -[visit_exp lanetype#7403] -[visit_id lanetype#7403] -[visit_exp dim#7403] -[visit_id dim#7403] -[visit_exp i#37855] -[visit_id i#37855] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M))] +[visit_exp `%`_iN($lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_.0)] +[visit_exp ($lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_.0)] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_.0] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#37862}(M)] -[visit_exp i#37862] -[visit_id i#37862] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp c] [visit_id c] not free -[visit_exp j!`%`_laneidx{i#37882}.0] -[visit_exp j!`%`_laneidx{i#37882}] +[visit_exp j!`%`_laneidx.0] +[visit_exp j!`%`_laneidx] [visit_exp j] [visit_id j] not free -[visit_exp i#37882] -[visit_id i#37882] -[visit_exp i#37906] -[visit_id i#37906] -[check_dims] addrtype#1135 at byte*#1867 i#37958 instr*#1458 lim limits#1135 memidx#111 memtype#530 n numtype#245 state#1343 x z -[visit_exp `%;%`_config{state#1343, `instr*#1458`}(z, [`MEMORY.SIZE`_instr{memidx#111}(x)])] -[visit_exp state#1343] -[visit_id state#1343] -[visit_exp `instr*#1458`] -[visit_id instr*#1458] -[visit_exp (z, [`MEMORY.SIZE`_instr{memidx#111}(x)])] +[check_dims] at lim n x z +[visit_exp `%;%`_config(z, [`MEMORY.SIZE`_instr(x)])] +[visit_exp (z, [`MEMORY.SIZE`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`MEMORY.SIZE`_instr{memidx#111}(x)]] -[visit_exp `MEMORY.SIZE`_instr{memidx#111}(x)] -[visit_exp memidx#111] -[visit_id memidx#111] +[visit_exp [`MEMORY.SIZE`_instr(x)]] +[visit_exp `MEMORY.SIZE`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp [`CONST`_instr{numtype#245}((at : addrtype <: numtype), `%`_num_{i#37958}(n))]] -[visit_exp `CONST`_instr{numtype#245}((at : addrtype <: numtype), `%`_num_{i#37958}(n))] -[visit_exp numtype#245] -[visit_id numtype#245] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#37958}(n))] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n))]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] -[visit_exp `%`_num_{i#37958}(n)] -[visit_exp i#37958] -[visit_id i#37958] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp ((n * (64 * $Ki)) = |$mem(z, x).`BYTES`_meminst{`byte*#1867`}|)] +[visit_exp ((n * (64 * $Ki)) = |$mem(z, x).`BYTES`_meminst|)] [visit_exp (n * (64 * $Ki))] [visit_exp n] [visit_id n] not free [visit_exp (64 * $Ki)] [visit_exp 64] [visit_exp $Ki] -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1867`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1867`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1867`] -[visit_id byte*#1867] -[visit_exp ($mem(z, x).`TYPE`_meminst{memtype#530} = `%%PAGE`_memtype{addrtype#1135, limits#1135}(at, lim))] -[visit_exp $mem(z, x).`TYPE`_meminst{memtype#530}] +[visit_exp ($mem(z, x).`TYPE`_meminst = `%%PAGE`_memtype(at, lim))] +[visit_exp $mem(z, x).`TYPE`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp memtype#530] -[visit_id memtype#530] -[visit_exp `%%PAGE`_memtype{addrtype#1135, limits#1135}(at, lim)] -[visit_exp addrtype#1135] -[visit_id addrtype#1135] -[visit_exp limits#1135] -[visit_id limits#1135] +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] not free [visit_exp lim] [visit_id lim] -[check_dims] at byte*#1868 i#38006 i#38066 instr*#1470 instr*#1482 memidx#113 mi n numtype#247 numtype#249 state#1355 state#1367 x z -[visit_exp `%;%`_config{state#1355, `instr*#1470`}(z, [`CONST`_instr{numtype#247}((at : addrtype <: numtype), `%`_num_{i#38006}(n)) `MEMORY.GROW`_instr{memidx#113}(x)])] -[visit_exp state#1355] -[visit_id state#1355] -[visit_exp `instr*#1470`] -[visit_id instr*#1470] -[visit_exp (z, [`CONST`_instr{numtype#247}((at : addrtype <: numtype), `%`_num_{i#38006}(n)) `MEMORY.GROW`_instr{memidx#113}(x)])] +[check_dims] at mi n x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#247}((at : addrtype <: numtype), `%`_num_{i#38006}(n)) `MEMORY.GROW`_instr{memidx#113}(x)]] -[visit_exp `CONST`_instr{numtype#247}((at : addrtype <: numtype), `%`_num_{i#38006}(n))] -[visit_exp numtype#247] -[visit_id numtype#247] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38006}(n))] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] -[visit_exp `%`_num_{i#38006}(n)] -[visit_exp i#38006] -[visit_id i#38006] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `MEMORY.GROW`_instr{memidx#113}(x)] -[visit_exp memidx#113] -[visit_id memidx#113] +[visit_exp `MEMORY.GROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#1367, `instr*#1482`}($with_meminst(z, x, mi), [`CONST`_instr{numtype#249}((at : addrtype <: numtype), `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])] -[visit_exp state#1367] -[visit_id state#1367] -[visit_exp `instr*#1482`] -[visit_id instr*#1482] -[visit_exp ($with_meminst(z, x, mi), [`CONST`_instr{numtype#249}((at : addrtype <: numtype), `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])] +[visit_exp `%;%`_config($with_meminst(z, x, mi), [`CONST`_instr((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])] +[visit_exp ($with_meminst(z, x, mi), [`CONST`_instr((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])] [visit_exp $with_meminst(z, x, mi)] [visit_exp z] [visit_id z] not free @@ -59458,30 +49300,24 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] not free [visit_exp mi] [visit_id mi] -[visit_exp [`CONST`_instr{numtype#249}((at : addrtype <: numtype), `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))]] -[visit_exp `CONST`_instr{numtype#249}((at : addrtype <: numtype), `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))] -[visit_exp numtype#249] -[visit_id numtype#249] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))] +[visit_exp ((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat))] -[visit_exp i#38066] -[visit_id i#38066] -[visit_exp ((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat))] -[visit_exp (((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)] -[visit_exp ((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat))] -[visit_exp (|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat)] -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1868`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1868`}] +[visit_exp `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat))] +[visit_exp ((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat))] +[visit_exp (((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)] +[visit_exp ((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat))] +[visit_exp (|$mem(z, x).`BYTES`_meminst| : nat <:> rat)] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1868`] -[visit_id byte*#1868] [visit_exp ((64 * $Ki) : nat <:> rat)] [visit_exp (64 * $Ki)] [visit_exp 64] @@ -59497,54 +49333,36 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] not free [visit_exp n] [visit_id n] not free -[check_dims] at i#38102 i#38138 instr*#1494 instr*#1506 memidx#115 n numtype#251 numtype#253 state#1379 state#1391 x z -[visit_exp `%;%`_config{state#1379, `instr*#1494`}(z, [`CONST`_instr{numtype#251}((at : addrtype <: numtype), `%`_num_{i#38102}(n)) `MEMORY.GROW`_instr{memidx#115}(x)])] -[visit_exp state#1379] -[visit_id state#1379] -[visit_exp `instr*#1494`] -[visit_id instr*#1494] -[visit_exp (z, [`CONST`_instr{numtype#251}((at : addrtype <: numtype), `%`_num_{i#38102}(n)) `MEMORY.GROW`_instr{memidx#115}(x)])] +[check_dims] at n x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#251}((at : addrtype <: numtype), `%`_num_{i#38102}(n)) `MEMORY.GROW`_instr{memidx#115}(x)]] -[visit_exp `CONST`_instr{numtype#251}((at : addrtype <: numtype), `%`_num_{i#38102}(n))] -[visit_exp numtype#251] -[visit_id numtype#251] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38102}(n))] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] -[visit_exp `%`_num_{i#38102}(n)] -[visit_exp i#38102] -[visit_id i#38102] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `MEMORY.GROW`_instr{memidx#115}(x)] -[visit_exp memidx#115] -[visit_id memidx#115] +[visit_exp `MEMORY.GROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#1391, `instr*#1506`}(z, [`CONST`_instr{numtype#253}((at : addrtype <: numtype), `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] -[visit_exp state#1391] -[visit_id state#1391] -[visit_exp `instr*#1506`] -[visit_id instr*#1506] -[visit_exp (z, [`CONST`_instr{numtype#253}((at : addrtype <: numtype), `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] [visit_exp z] [visit_id z] not free -[visit_exp [`CONST`_instr{numtype#253}((at : addrtype <: numtype), `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))]] -[visit_exp `CONST`_instr{numtype#253}((at : addrtype <: numtype), `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] -[visit_exp numtype#253] -[visit_id numtype#253] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] +[visit_exp ((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] -[visit_exp i#38138] -[visit_id i#38138] +[visit_exp `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] [visit_exp ($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] [visit_exp $inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))] [visit_exp $size((at : addrtype <: numtype))] @@ -59554,19 +49372,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp - (1 : nat <:> int)] [visit_exp (1 : nat <:> int)] [visit_exp 1] -[check_dims] at byte*#1869 i i#38176 i#38204 instr*#1518 memidx#117 n numtype#255 numtype#257 state#1403 val x z -[visit_exp `%;%`_config{state#1403, `instr*#1518`}(z, [`CONST`_instr{numtype#255}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#257}((at : addrtype <: numtype), `%`_num_{i#38176}(n)) `MEMORY.FILL`_instr{memidx#117}(x)])] -[visit_exp state#1403] -[visit_id state#1403] -[visit_exp `instr*#1518`] -[visit_id instr*#1518] -[visit_exp (z, [`CONST`_instr{numtype#255}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#257}((at : addrtype <: numtype), `%`_num_{i#38176}(n)) `MEMORY.FILL`_instr{memidx#117}(x)])] +[check_dims] at i n val x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#255}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#257}((at : addrtype <: numtype), `%`_num_{i#38176}(n)) `MEMORY.FILL`_instr{memidx#117}(x)]] -[visit_exp `CONST`_instr{numtype#255}((at : addrtype <: numtype), i)] -[visit_exp numtype#255] -[visit_id numtype#255] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] @@ -59576,60 +49388,44 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `CONST`_instr{numtype#257}((at : addrtype <: numtype), `%`_num_{i#38176}(n))] -[visit_exp numtype#257] -[visit_id numtype#257] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38176}(n))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#38176}(n)] -[visit_exp i#38176] -[visit_id i#38176] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `MEMORY.FILL`_instr{memidx#117}(x)] -[visit_exp memidx#117] -[visit_id memidx#117] +[visit_exp `MEMORY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp ((i!`%`_num_{i#38204}.0 + n) > |$mem(z, x).`BYTES`_meminst{`byte*#1869`}|)] -[visit_exp (i!`%`_num_{i#38204}.0 + n)] -[visit_exp i!`%`_num_{i#38204}.0] -[visit_exp i!`%`_num_{i#38204}] +[visit_exp ((i!`%`_num_.0 + n) > |$mem(z, x).`BYTES`_meminst|)] +[visit_exp (i!`%`_num_.0 + n)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#38204] -[visit_id i#38204] [visit_exp n] [visit_id n] not free -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1869`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1869`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1869`] -[visit_id byte*#1869] -[check_dims] at i i#38254 instr*#1530 memidx#119 n numtype#259 numtype#261 state#1415 val x z -[visit_exp `%;%`_config{state#1415, `instr*#1530`}(z, [`CONST`_instr{numtype#259}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#261}((at : addrtype <: numtype), `%`_num_{i#38254}(n)) `MEMORY.FILL`_instr{memidx#119}(x)])] -[visit_exp state#1415] -[visit_id state#1415] -[visit_exp `instr*#1530`] -[visit_id instr*#1530] -[visit_exp (z, [`CONST`_instr{numtype#259}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#261}((at : addrtype <: numtype), `%`_num_{i#38254}(n)) `MEMORY.FILL`_instr{memidx#119}(x)])] +[check_dims] at i n val x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#259}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#261}((at : addrtype <: numtype), `%`_num_{i#38254}(n)) `MEMORY.FILL`_instr{memidx#119}(x)]] -[visit_exp `CONST`_instr{numtype#259}((at : addrtype <: numtype), i)] -[visit_exp numtype#259] -[visit_id numtype#259] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] @@ -59639,22 +49435,16 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `CONST`_instr{numtype#261}((at : addrtype <: numtype), `%`_num_{i#38254}(n))] -[visit_exp numtype#261] -[visit_id numtype#261] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38254}(n))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#38254}(n)] -[visit_exp i#38254] -[visit_id i#38254] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `MEMORY.FILL`_instr{memidx#119}(x)] -[visit_exp memidx#119] -[visit_id memidx#119] +[visit_exp `MEMORY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -59663,19 +49453,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp n] [visit_id n] not free [visit_exp 0] -[check_dims] at i i#38306 i#38373 i#38374 i#38414 i#38424 i#38446 instr*#1542 memarg#79 memidx#121 memidx#123 memidx#125 n numtype#263 numtype#265 numtype#267 numtype#270 numtype#272 numtype?#15 state#1427 sz#465 val x z -[visit_exp `%;%`_config{state#1427, `instr*#1542`}(z, [`CONST`_instr{numtype#263}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#265}((at : addrtype <: numtype), `%`_num_{i#38306}(n)) `MEMORY.FILL`_instr{memidx#121}(x)])] -[visit_exp state#1427] -[visit_id state#1427] -[visit_exp `instr*#1542`] -[visit_id instr*#1542] -[visit_exp (z, [`CONST`_instr{numtype#263}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#265}((at : addrtype <: numtype), `%`_num_{i#38306}(n)) `MEMORY.FILL`_instr{memidx#121}(x)])] +[check_dims] at i n val x z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#263}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#265}((at : addrtype <: numtype), `%`_num_{i#38306}(n)) `MEMORY.FILL`_instr{memidx#121}(x)]] -[visit_exp `CONST`_instr{numtype#263}((at : addrtype <: numtype), i)] -[visit_exp numtype#263] -[visit_id numtype#263] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] @@ -59685,29 +49469,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `CONST`_instr{numtype#265}((at : addrtype <: numtype), `%`_num_{i#38306}(n))] -[visit_exp numtype#265] -[visit_id numtype#265] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38306}(n))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#38306}(n)] -[visit_exp i#38306] -[visit_id i#38306] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `MEMORY.FILL`_instr{memidx#121}(x)] -[visit_exp memidx#121] -[visit_id memidx#121] +[visit_exp `MEMORY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp [`CONST`_instr{numtype#267}((at : addrtype <: numtype), i) (val : val <: instr) `STORE`_instr{`numtype?#15`, memidx#123, memarg#79}(`I32`_numtype, ?(`%`_storeop_{sz#465, i#38373}(`%`_sz{i#38374}(8))), x, $memarg0) `CONST`_instr{numtype#270}((at : addrtype <: numtype), `%`_num_{i#38424}((i!`%`_num_{i#38414}.0 + 1))) (val : val <: instr) `CONST`_instr{numtype#272}((at : addrtype <: numtype), `%`_num_{i#38446}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.FILL`_instr{memidx#125}(x)]] -[visit_exp `CONST`_instr{numtype#267}((at : addrtype <: numtype), i)] -[visit_exp numtype#267] -[visit_id numtype#267] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.FILL`_instr(x)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] @@ -59717,63 +49493,41 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] not free -[visit_exp `STORE`_instr{`numtype?#15`, memidx#123, memarg#79}(`I32`_numtype, ?(`%`_storeop_{sz#465, i#38373}(`%`_sz{i#38374}(8))), x, $memarg0)] -[visit_exp `numtype?#15`] -[visit_id numtype?#15] -[visit_exp memidx#123] -[visit_id memidx#123] -[visit_exp memarg#79] -[visit_id memarg#79] -[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#465, i#38373}(`%`_sz{i#38374}(8))), x, $memarg0)] +[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0)] +[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#465, i#38373}(`%`_sz{i#38374}(8)))] -[visit_exp `%`_storeop_{sz#465, i#38373}(`%`_sz{i#38374}(8))] -[visit_exp sz#465] -[visit_id sz#465] -[visit_exp i#38373] -[visit_id i#38373] -[visit_exp (`%`_sz{i#38374}(8))] -[visit_exp `%`_sz{i#38374}(8)] -[visit_exp i#38374] -[visit_id i#38374] +[visit_exp ?(`%`_storeop_(`%`_sz(8)))] +[visit_exp `%`_storeop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x] [visit_id x] not free [visit_exp $memarg0] -[visit_exp `CONST`_instr{numtype#270}((at : addrtype <: numtype), `%`_num_{i#38424}((i!`%`_num_{i#38414}.0 + 1)))] -[visit_exp numtype#270] -[visit_id numtype#270] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38424}((i!`%`_num_{i#38414}.0 + 1)))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] +[visit_exp ((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#38424}((i!`%`_num_{i#38414}.0 + 1))] -[visit_exp i#38424] -[visit_id i#38424] -[visit_exp ((i!`%`_num_{i#38414}.0 + 1))] -[visit_exp (i!`%`_num_{i#38414}.0 + 1)] -[visit_exp i!`%`_num_{i#38414}.0] -[visit_exp i!`%`_num_{i#38414}] +[visit_exp `%`_num_((i!`%`_num_.0 + 1))] +[visit_exp ((i!`%`_num_.0 + 1))] +[visit_exp (i!`%`_num_.0 + 1)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#38414] -[visit_id i#38414] [visit_exp 1] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] not free -[visit_exp `CONST`_instr{numtype#272}((at : addrtype <: numtype), `%`_num_{i#38446}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#272] -[visit_id numtype#272] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#38446}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp ((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#38446}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#38446] -[visit_id i#38446] +[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - (1 : nat <:> int))] @@ -59782,56 +49536,40 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `MEMORY.FILL`_instr{memidx#125}(x)] -[visit_exp memidx#125] -[visit_id memidx#125] +[visit_exp `MEMORY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[check_dims] at' at_1 at_2 byte*#1870 byte*#1871 i#38512 i#38554 i#38580 i_1 i_2 instr*#1554 memidx#127 n numtype#274 numtype#276 numtype#278 state#1439 x_1 x_2 z -[visit_exp `%;%`_config{state#1439, `instr*#1554`}(z, [`CONST`_instr{numtype#274}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#276}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#278}((at' : addrtype <: numtype), `%`_num_{i#38512}(n)) `MEMORY.COPY`_instr{memidx#127}(x_1, x_2)])] -[visit_exp state#1439] -[visit_id state#1439] -[visit_exp `instr*#1554`] -[visit_id instr*#1554] -[visit_exp (z, [`CONST`_instr{numtype#274}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#276}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#278}((at' : addrtype <: numtype), `%`_num_{i#38512}(n)) `MEMORY.COPY`_instr{memidx#127}(x_1, x_2)])] +[check_dims] at' at_1 at_2 i_1 i_2 n x_1 x_2 z +[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] +[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#274}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#276}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#278}((at' : addrtype <: numtype), `%`_num_{i#38512}(n)) `MEMORY.COPY`_instr{memidx#127}(x_1, x_2)]] -[visit_exp `CONST`_instr{numtype#274}((at_1 : addrtype <: numtype), i_1)] -[visit_exp numtype#274] -[visit_id numtype#274] +[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] [visit_exp ((at_1 : addrtype <: numtype), i_1)] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] [visit_exp i_1] [visit_id i_1] -[visit_exp `CONST`_instr{numtype#276}((at_2 : addrtype <: numtype), i_2)] -[visit_exp numtype#276] -[visit_id numtype#276] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] [visit_exp ((at_2 : addrtype <: numtype), i_2)] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#278}((at' : addrtype <: numtype), `%`_num_{i#38512}(n))] -[visit_exp numtype#278] -[visit_id numtype#278] -[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#38512}(n))] +[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] [visit_exp (at' : addrtype <: numtype)] [visit_exp at'] [visit_id at'] -[visit_exp `%`_num_{i#38512}(n)] -[visit_exp i#38512] -[visit_id i#38512] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `MEMORY.COPY`_instr{memidx#127}(x_1, x_2)] -[visit_exp memidx#127] -[visit_id memidx#127] +[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] @@ -59840,89 +49578,67 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i_1!`%`_num_{i#38554}.0 + n) > |$mem(z, x_1).`BYTES`_meminst{`byte*#1870`}|) \/ ((i_2!`%`_num_{i#38580}.0 + n) > |$mem(z, x_2).`BYTES`_meminst{`byte*#1871`}|))] -[visit_exp ((i_1!`%`_num_{i#38554}.0 + n) > |$mem(z, x_1).`BYTES`_meminst{`byte*#1870`}|)] -[visit_exp (i_1!`%`_num_{i#38554}.0 + n)] -[visit_exp i_1!`%`_num_{i#38554}.0] -[visit_exp i_1!`%`_num_{i#38554}] +[visit_exp (((i_1!`%`_num_.0 + n) > |$mem(z, x_1).`BYTES`_meminst|) \/ ((i_2!`%`_num_.0 + n) > |$mem(z, x_2).`BYTES`_meminst|))] +[visit_exp ((i_1!`%`_num_.0 + n) > |$mem(z, x_1).`BYTES`_meminst|)] +[visit_exp (i_1!`%`_num_.0 + n)] +[visit_exp i_1!`%`_num_.0] +[visit_exp i_1!`%`_num_] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#38554] -[visit_id i#38554] [visit_exp n] [visit_id n] not free -[visit_exp |$mem(z, x_1).`BYTES`_meminst{`byte*#1870`}|] -[visit_exp $mem(z, x_1).`BYTES`_meminst{`byte*#1870`}] +[visit_exp |$mem(z, x_1).`BYTES`_meminst|] +[visit_exp $mem(z, x_1).`BYTES`_meminst] [visit_exp $mem(z, x_1)] [visit_exp z] [visit_id z] not free [visit_exp x_1] [visit_id x_1] not free -[visit_exp `byte*#1870`] -[visit_id byte*#1870] -[visit_exp ((i_2!`%`_num_{i#38580}.0 + n) > |$mem(z, x_2).`BYTES`_meminst{`byte*#1871`}|)] -[visit_exp (i_2!`%`_num_{i#38580}.0 + n)] -[visit_exp i_2!`%`_num_{i#38580}.0] -[visit_exp i_2!`%`_num_{i#38580}] +[visit_exp ((i_2!`%`_num_.0 + n) > |$mem(z, x_2).`BYTES`_meminst|)] +[visit_exp (i_2!`%`_num_.0 + n)] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#38580] -[visit_id i#38580] [visit_exp n] [visit_id n] not free -[visit_exp |$mem(z, x_2).`BYTES`_meminst{`byte*#1871`}|] -[visit_exp $mem(z, x_2).`BYTES`_meminst{`byte*#1871`}] +[visit_exp |$mem(z, x_2).`BYTES`_meminst|] +[visit_exp $mem(z, x_2).`BYTES`_meminst] [visit_exp $mem(z, x_2)] [visit_exp z] [visit_id z] not free [visit_exp x_2] [visit_id x_2] not free -[visit_exp `byte*#1871`] -[visit_id byte*#1871] -[check_dims] at' at_1 at_2 i#38644 i_1 i_2 instr*#1566 memidx#130 n numtype#280 numtype#282 numtype#284 state#1451 x_1 x_2 z -[visit_exp `%;%`_config{state#1451, `instr*#1566`}(z, [`CONST`_instr{numtype#280}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#282}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#284}((at' : addrtype <: numtype), `%`_num_{i#38644}(n)) `MEMORY.COPY`_instr{memidx#130}(x_1, x_2)])] -[visit_exp state#1451] -[visit_id state#1451] -[visit_exp `instr*#1566`] -[visit_id instr*#1566] -[visit_exp (z, [`CONST`_instr{numtype#280}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#282}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#284}((at' : addrtype <: numtype), `%`_num_{i#38644}(n)) `MEMORY.COPY`_instr{memidx#130}(x_1, x_2)])] +[check_dims] at' at_1 at_2 i_1 i_2 n x_1 x_2 z +[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] +[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#280}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#282}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#284}((at' : addrtype <: numtype), `%`_num_{i#38644}(n)) `MEMORY.COPY`_instr{memidx#130}(x_1, x_2)]] -[visit_exp `CONST`_instr{numtype#280}((at_1 : addrtype <: numtype), i_1)] -[visit_exp numtype#280] -[visit_id numtype#280] +[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] [visit_exp ((at_1 : addrtype <: numtype), i_1)] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] [visit_exp i_1] [visit_id i_1] -[visit_exp `CONST`_instr{numtype#282}((at_2 : addrtype <: numtype), i_2)] -[visit_exp numtype#282] -[visit_id numtype#282] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] [visit_exp ((at_2 : addrtype <: numtype), i_2)] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#284}((at' : addrtype <: numtype), `%`_num_{i#38644}(n))] -[visit_exp numtype#284] -[visit_id numtype#284] -[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#38644}(n))] +[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] [visit_exp (at' : addrtype <: numtype)] [visit_exp at'] [visit_id at'] -[visit_exp `%`_num_{i#38644}(n)] -[visit_exp i#38644] -[visit_id i#38644] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `MEMORY.COPY`_instr{memidx#130}(x_1, x_2)] -[visit_exp memidx#130] -[visit_id memidx#130] +[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] @@ -59933,96 +49649,64 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp n] [visit_id n] not free [visit_exp 0] -[check_dims] at' at_1 at_2 i#38724 i#38802 i#38809 i#38864 i#38865 i#38905 i#38915 i#38941 i#38951 i#38973 i#39019 i#39029 i_1 i_2 instr*#1578 memarg#81 memarg#83 memidx#133 memidx#136 memidx#138 memidx#140 n numtype#286 numtype#288 numtype#290 numtype#292 numtype#294 numtype#298 numtype#300 numtype#302 numtype?#16 numtype?#17 state#1463 sx#384 sz#483 sz#496 x_1 x_2 z -[visit_exp `%;%`_config{state#1463, `instr*#1578`}(z, [`CONST`_instr{numtype#286}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#288}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#290}((at' : addrtype <: numtype), `%`_num_{i#38724}(n)) `MEMORY.COPY`_instr{memidx#133}(x_1, x_2)])] -[visit_exp state#1463] -[visit_id state#1463] -[visit_exp `instr*#1578`] -[visit_id instr*#1578] -[visit_exp (z, [`CONST`_instr{numtype#286}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#288}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#290}((at' : addrtype <: numtype), `%`_num_{i#38724}(n)) `MEMORY.COPY`_instr{memidx#133}(x_1, x_2)])] +[check_dims] at' at_1 at_2 i_1 i_2 n x_1 x_2 z +[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] +[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#286}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#288}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#290}((at' : addrtype <: numtype), `%`_num_{i#38724}(n)) `MEMORY.COPY`_instr{memidx#133}(x_1, x_2)]] -[visit_exp `CONST`_instr{numtype#286}((at_1 : addrtype <: numtype), i_1)] -[visit_exp numtype#286] -[visit_id numtype#286] +[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] [visit_exp ((at_1 : addrtype <: numtype), i_1)] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] [visit_exp i_1] [visit_id i_1] -[visit_exp `CONST`_instr{numtype#288}((at_2 : addrtype <: numtype), i_2)] -[visit_exp numtype#288] -[visit_id numtype#288] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] [visit_exp ((at_2 : addrtype <: numtype), i_2)] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#290}((at' : addrtype <: numtype), `%`_num_{i#38724}(n))] -[visit_exp numtype#290] -[visit_id numtype#290] -[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#38724}(n))] +[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] [visit_exp (at' : addrtype <: numtype)] [visit_exp at'] [visit_id at'] -[visit_exp `%`_num_{i#38724}(n)] -[visit_exp i#38724] -[visit_id i#38724] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `MEMORY.COPY`_instr{memidx#133}(x_1, x_2)] -[visit_exp memidx#133] -[visit_id memidx#133] +[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] [visit_exp x_2] [visit_id x_2] -[visit_exp [`CONST`_instr{numtype#292}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#294}((at_2 : addrtype <: numtype), i_2) `LOAD`_instr{`numtype?#16`, memidx#136, memarg#81}(`I32`_numtype, ?(`%_%`_loadop_{sz#483, sx#384, i#38802}(`%`_sz{i#38809}(8), `U`_sx)), x_2, $memarg0) `STORE`_instr{`numtype?#17`, memidx#138, memarg#83}(`I32`_numtype, ?(`%`_storeop_{sz#496, i#38864}(`%`_sz{i#38865}(8))), x_1, $memarg0) `CONST`_instr{numtype#298}((at_1 : addrtype <: numtype), `%`_num_{i#38915}((i_1!`%`_num_{i#38905}.0 + 1))) `CONST`_instr{numtype#300}((at_2 : addrtype <: numtype), `%`_num_{i#38951}((i_2!`%`_num_{i#38941}.0 + 1))) `CONST`_instr{numtype#302}((at' : addrtype <: numtype), `%`_num_{i#38973}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr{memidx#140}(x_1, x_2)]] -[visit_exp `CONST`_instr{numtype#292}((at_1 : addrtype <: numtype), i_1)] -[visit_exp numtype#292] -[visit_id numtype#292] +[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0) `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1))) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr(x_1, x_2)]] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] [visit_exp ((at_1 : addrtype <: numtype), i_1)] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] not free [visit_exp i_1] [visit_id i_1] not free -[visit_exp `CONST`_instr{numtype#294}((at_2 : addrtype <: numtype), i_2)] -[visit_exp numtype#294] -[visit_id numtype#294] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] [visit_exp ((at_2 : addrtype <: numtype), i_2)] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] not free [visit_exp i_2] [visit_id i_2] not free -[visit_exp `LOAD`_instr{`numtype?#16`, memidx#136, memarg#81}(`I32`_numtype, ?(`%_%`_loadop_{sz#483, sx#384, i#38802}(`%`_sz{i#38809}(8), `U`_sx)), x_2, $memarg0)] -[visit_exp `numtype?#16`] -[visit_id numtype?#16] -[visit_exp memidx#136] -[visit_id memidx#136] -[visit_exp memarg#81] -[visit_id memarg#81] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#483, sx#384, i#38802}(`%`_sz{i#38809}(8), `U`_sx)), x_2, $memarg0)] +[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0)] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#483, sx#384, i#38802}(`%`_sz{i#38809}(8), `U`_sx))] -[visit_exp `%_%`_loadop_{sz#483, sx#384, i#38802}(`%`_sz{i#38809}(8), `U`_sx)] -[visit_exp sz#483] -[visit_id sz#483] -[visit_exp sx#384] -[visit_id sx#384] -[visit_exp i#38802] -[visit_id i#38802] -[visit_exp (`%`_sz{i#38809}(8), `U`_sx)] -[visit_exp `%`_sz{i#38809}(8)] -[visit_exp i#38809] -[visit_id i#38809] +[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `U`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(8), `U`_sx)] +[visit_exp (`%`_sz(8), `U`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `U`_sx] @@ -60030,79 +49714,51 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp x_2] [visit_id x_2] not free [visit_exp $memarg0] -[visit_exp `STORE`_instr{`numtype?#17`, memidx#138, memarg#83}(`I32`_numtype, ?(`%`_storeop_{sz#496, i#38864}(`%`_sz{i#38865}(8))), x_1, $memarg0)] -[visit_exp `numtype?#17`] -[visit_id numtype?#17] -[visit_exp memidx#138] -[visit_id memidx#138] -[visit_exp memarg#83] -[visit_id memarg#83] -[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#496, i#38864}(`%`_sz{i#38865}(8))), x_1, $memarg0)] +[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0)] +[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#496, i#38864}(`%`_sz{i#38865}(8)))] -[visit_exp `%`_storeop_{sz#496, i#38864}(`%`_sz{i#38865}(8))] -[visit_exp sz#496] -[visit_id sz#496] -[visit_exp i#38864] -[visit_id i#38864] -[visit_exp (`%`_sz{i#38865}(8))] -[visit_exp `%`_sz{i#38865}(8)] -[visit_exp i#38865] -[visit_id i#38865] +[visit_exp ?(`%`_storeop_(`%`_sz(8)))] +[visit_exp `%`_storeop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x_1] [visit_id x_1] not free [visit_exp $memarg0] -[visit_exp `CONST`_instr{numtype#298}((at_1 : addrtype <: numtype), `%`_num_{i#38915}((i_1!`%`_num_{i#38905}.0 + 1)))] -[visit_exp numtype#298] -[visit_id numtype#298] -[visit_exp ((at_1 : addrtype <: numtype), `%`_num_{i#38915}((i_1!`%`_num_{i#38905}.0 + 1)))] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1)))] +[visit_exp ((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1)))] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] not free -[visit_exp `%`_num_{i#38915}((i_1!`%`_num_{i#38905}.0 + 1))] -[visit_exp i#38915] -[visit_id i#38915] -[visit_exp ((i_1!`%`_num_{i#38905}.0 + 1))] -[visit_exp (i_1!`%`_num_{i#38905}.0 + 1)] -[visit_exp i_1!`%`_num_{i#38905}.0] -[visit_exp i_1!`%`_num_{i#38905}] +[visit_exp `%`_num_((i_1!`%`_num_.0 + 1))] +[visit_exp ((i_1!`%`_num_.0 + 1))] +[visit_exp (i_1!`%`_num_.0 + 1)] +[visit_exp i_1!`%`_num_.0] +[visit_exp i_1!`%`_num_] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#38905] -[visit_id i#38905] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#300}((at_2 : addrtype <: numtype), `%`_num_{i#38951}((i_2!`%`_num_{i#38941}.0 + 1)))] -[visit_exp numtype#300] -[visit_id numtype#300] -[visit_exp ((at_2 : addrtype <: numtype), `%`_num_{i#38951}((i_2!`%`_num_{i#38941}.0 + 1)))] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1)))] +[visit_exp ((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1)))] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] not free -[visit_exp `%`_num_{i#38951}((i_2!`%`_num_{i#38941}.0 + 1))] -[visit_exp i#38951] -[visit_id i#38951] -[visit_exp ((i_2!`%`_num_{i#38941}.0 + 1))] -[visit_exp (i_2!`%`_num_{i#38941}.0 + 1)] -[visit_exp i_2!`%`_num_{i#38941}.0] -[visit_exp i_2!`%`_num_{i#38941}] +[visit_exp `%`_num_((i_2!`%`_num_.0 + 1))] +[visit_exp ((i_2!`%`_num_.0 + 1))] +[visit_exp (i_2!`%`_num_.0 + 1)] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#38941] -[visit_id i#38941] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#302}((at' : addrtype <: numtype), `%`_num_{i#38973}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#302] -[visit_id numtype#302] -[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#38973}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp ((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp (at' : addrtype <: numtype)] [visit_exp at'] [visit_id at'] not free -[visit_exp `%`_num_{i#38973}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#38973] -[visit_id i#38973] +[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - (1 : nat <:> int))] @@ -60111,149 +49767,103 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `MEMORY.COPY`_instr{memidx#140}(x_1, x_2)] -[visit_exp memidx#140] -[visit_id memidx#140] +[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] not free [visit_exp x_2] [visit_id x_2] not free -[visit_exp (i_1!`%`_num_{i#39019}.0 <= i_2!`%`_num_{i#39029}.0)] -[visit_exp i_1!`%`_num_{i#39019}.0] -[visit_exp i_1!`%`_num_{i#39019}] +[visit_exp (i_1!`%`_num_.0 <= i_2!`%`_num_.0)] +[visit_exp i_1!`%`_num_.0] +[visit_exp i_1!`%`_num_] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#39019] -[visit_id i#39019] -[visit_exp i_2!`%`_num_{i#39029}.0] -[visit_exp i_2!`%`_num_{i#39029}] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#39029] -[visit_id i#39029] -[check_dims] at' at_1 at_2 i#39081 i#39135 i#39145 i#39171 i#39181 i#39207 i#39214 i#39269 i#39270 i#39330 i_1 i_2 instr*#1590 memarg#85 memarg#87 memidx#143 memidx#146 memidx#148 memidx#150 n numtype#304 numtype#306 numtype#308 numtype#310 numtype#312 numtype#316 numtype#318 numtype#320 numtype?#18 numtype?#19 state#1475 sx#402 sz#514 sz#527 x_1 x_2 z -[visit_exp `%;%`_config{state#1475, `instr*#1590`}(z, [`CONST`_instr{numtype#304}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#306}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#308}((at' : addrtype <: numtype), `%`_num_{i#39081}(n)) `MEMORY.COPY`_instr{memidx#143}(x_1, x_2)])] -[visit_exp state#1475] -[visit_id state#1475] -[visit_exp `instr*#1590`] -[visit_id instr*#1590] -[visit_exp (z, [`CONST`_instr{numtype#304}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#306}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#308}((at' : addrtype <: numtype), `%`_num_{i#39081}(n)) `MEMORY.COPY`_instr{memidx#143}(x_1, x_2)])] +[check_dims] at' at_1 at_2 i_1 i_2 n x_1 x_2 z +[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] +[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#304}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#306}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#308}((at' : addrtype <: numtype), `%`_num_{i#39081}(n)) `MEMORY.COPY`_instr{memidx#143}(x_1, x_2)]] -[visit_exp `CONST`_instr{numtype#304}((at_1 : addrtype <: numtype), i_1)] -[visit_exp numtype#304] -[visit_id numtype#304] +[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] [visit_exp ((at_1 : addrtype <: numtype), i_1)] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] [visit_exp i_1] [visit_id i_1] -[visit_exp `CONST`_instr{numtype#306}((at_2 : addrtype <: numtype), i_2)] -[visit_exp numtype#306] -[visit_id numtype#306] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] [visit_exp ((at_2 : addrtype <: numtype), i_2)] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#308}((at' : addrtype <: numtype), `%`_num_{i#39081}(n))] -[visit_exp numtype#308] -[visit_id numtype#308] -[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#39081}(n))] +[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] +[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] [visit_exp (at' : addrtype <: numtype)] [visit_exp at'] [visit_id at'] -[visit_exp `%`_num_{i#39081}(n)] -[visit_exp i#39081] -[visit_id i#39081] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `MEMORY.COPY`_instr{memidx#143}(x_1, x_2)] -[visit_exp memidx#143] -[visit_id memidx#143] +[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] [visit_exp x_2] [visit_id x_2] -[visit_exp [`CONST`_instr{numtype#310}((at_1 : addrtype <: numtype), `%`_num_{i#39145}(((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr{numtype#312}((at_2 : addrtype <: numtype), `%`_num_{i#39181}(((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `LOAD`_instr{`numtype?#18`, memidx#146, memarg#85}(`I32`_numtype, ?(`%_%`_loadop_{sz#514, sx#402, i#39207}(`%`_sz{i#39214}(8), `U`_sx)), x_2, $memarg0) `STORE`_instr{`numtype?#19`, memidx#148, memarg#87}(`I32`_numtype, ?(`%`_storeop_{sz#527, i#39269}(`%`_sz{i#39270}(8))), x_1, $memarg0) `CONST`_instr{numtype#316}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#318}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#320}((at' : addrtype <: numtype), `%`_num_{i#39330}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr{memidx#150}(x_1, x_2)]] -[visit_exp `CONST`_instr{numtype#310}((at_1 : addrtype <: numtype), `%`_num_{i#39145}(((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#310] -[visit_id numtype#310] -[visit_exp ((at_1 : addrtype <: numtype), `%`_num_{i#39145}(((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0) `CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr(x_1, x_2)]] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp ((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] not free -[visit_exp `%`_num_{i#39145}(((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#39145] -[visit_id i#39145] -[visit_exp (((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int)] -[visit_exp (i_1!`%`_num_{i#39135}.0 + n)] -[visit_exp i_1!`%`_num_{i#39135}.0] -[visit_exp i_1!`%`_num_{i#39135}] +[visit_exp `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((i_1!`%`_num_.0 + n) : nat <:> int)] +[visit_exp (i_1!`%`_num_.0 + n)] +[visit_exp i_1!`%`_num_.0] +[visit_exp i_1!`%`_num_] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#39135] -[visit_id i#39135] [visit_exp n] [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#312}((at_2 : addrtype <: numtype), `%`_num_{i#39181}(((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#312] -[visit_id numtype#312] -[visit_exp ((at_2 : addrtype <: numtype), `%`_num_{i#39181}(((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp ((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] not free -[visit_exp `%`_num_{i#39181}(((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#39181] -[visit_id i#39181] -[visit_exp (((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int)] -[visit_exp (i_2!`%`_num_{i#39171}.0 + n)] -[visit_exp i_2!`%`_num_{i#39171}.0] -[visit_exp i_2!`%`_num_{i#39171}] +[visit_exp `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((i_2!`%`_num_.0 + n) : nat <:> int)] +[visit_exp (i_2!`%`_num_.0 + n)] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#39171] -[visit_id i#39171] [visit_exp n] [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `LOAD`_instr{`numtype?#18`, memidx#146, memarg#85}(`I32`_numtype, ?(`%_%`_loadop_{sz#514, sx#402, i#39207}(`%`_sz{i#39214}(8), `U`_sx)), x_2, $memarg0)] -[visit_exp `numtype?#18`] -[visit_id numtype?#18] -[visit_exp memidx#146] -[visit_id memidx#146] -[visit_exp memarg#85] -[visit_id memarg#85] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#514, sx#402, i#39207}(`%`_sz{i#39214}(8), `U`_sx)), x_2, $memarg0)] +[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0)] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#514, sx#402, i#39207}(`%`_sz{i#39214}(8), `U`_sx))] -[visit_exp `%_%`_loadop_{sz#514, sx#402, i#39207}(`%`_sz{i#39214}(8), `U`_sx)] -[visit_exp sz#514] -[visit_id sz#514] -[visit_exp sx#402] -[visit_id sx#402] -[visit_exp i#39207] -[visit_id i#39207] -[visit_exp (`%`_sz{i#39214}(8), `U`_sx)] -[visit_exp `%`_sz{i#39214}(8)] -[visit_exp i#39214] -[visit_id i#39214] +[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `U`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(8), `U`_sx)] +[visit_exp (`%`_sz(8), `U`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `U`_sx] @@ -60261,59 +49871,39 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp x_2] [visit_id x_2] not free [visit_exp $memarg0] -[visit_exp `STORE`_instr{`numtype?#19`, memidx#148, memarg#87}(`I32`_numtype, ?(`%`_storeop_{sz#527, i#39269}(`%`_sz{i#39270}(8))), x_1, $memarg0)] -[visit_exp `numtype?#19`] -[visit_id numtype?#19] -[visit_exp memidx#148] -[visit_id memidx#148] -[visit_exp memarg#87] -[visit_id memarg#87] -[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#527, i#39269}(`%`_sz{i#39270}(8))), x_1, $memarg0)] +[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0)] +[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#527, i#39269}(`%`_sz{i#39270}(8)))] -[visit_exp `%`_storeop_{sz#527, i#39269}(`%`_sz{i#39270}(8))] -[visit_exp sz#527] -[visit_id sz#527] -[visit_exp i#39269] -[visit_id i#39269] -[visit_exp (`%`_sz{i#39270}(8))] -[visit_exp `%`_sz{i#39270}(8)] -[visit_exp i#39270] -[visit_id i#39270] +[visit_exp ?(`%`_storeop_(`%`_sz(8)))] +[visit_exp `%`_storeop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x_1] [visit_id x_1] not free [visit_exp $memarg0] -[visit_exp `CONST`_instr{numtype#316}((at_1 : addrtype <: numtype), i_1)] -[visit_exp numtype#316] -[visit_id numtype#316] +[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] [visit_exp ((at_1 : addrtype <: numtype), i_1)] [visit_exp (at_1 : addrtype <: numtype)] [visit_exp at_1] [visit_id at_1] not free [visit_exp i_1] [visit_id i_1] not free -[visit_exp `CONST`_instr{numtype#318}((at_2 : addrtype <: numtype), i_2)] -[visit_exp numtype#318] -[visit_id numtype#318] +[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] [visit_exp ((at_2 : addrtype <: numtype), i_2)] [visit_exp (at_2 : addrtype <: numtype)] [visit_exp at_2] [visit_id at_2] not free [visit_exp i_2] [visit_id i_2] not free -[visit_exp `CONST`_instr{numtype#320}((at' : addrtype <: numtype), `%`_num_{i#39330}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#320] -[visit_id numtype#320] -[visit_exp ((at' : addrtype <: numtype), `%`_num_{i#39330}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp ((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp (at' : addrtype <: numtype)] [visit_exp at'] [visit_id at'] not free -[visit_exp `%`_num_{i#39330}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#39330] -[visit_id i#39330] +[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - (1 : nat <:> int))] @@ -60322,58 +49912,40 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `MEMORY.COPY`_instr{memidx#150}(x_1, x_2)] -[visit_exp memidx#150] -[visit_id memidx#150] +[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] not free [visit_exp x_2] [visit_id x_2] not free -[check_dims] at byte*#1872 byte*#1873 dataidx#17 i i#39410 i#39452 i#39478 instr*#1602 j memidx#153 n numtype#322 numtype#324 numtype#326 state#1487 x y z -[visit_exp `%;%`_config{state#1487, `instr*#1602`}(z, [`CONST`_instr{numtype#322}((at : addrtype <: numtype), i) `CONST`_instr{numtype#324}(`I32`_numtype, j) `CONST`_instr{numtype#326}(`I32`_numtype, `%`_num_{i#39410}(n)) `MEMORY.INIT`_instr{memidx#153, dataidx#17}(x, y)])] -[visit_exp state#1487] -[visit_id state#1487] -[visit_exp `instr*#1602`] -[visit_id instr*#1602] -[visit_exp (z, [`CONST`_instr{numtype#322}((at : addrtype <: numtype), i) `CONST`_instr{numtype#324}(`I32`_numtype, j) `CONST`_instr{numtype#326}(`I32`_numtype, `%`_num_{i#39410}(n)) `MEMORY.INIT`_instr{memidx#153, dataidx#17}(x, y)])] +[check_dims] at i j n x y z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#322}((at : addrtype <: numtype), i) `CONST`_instr{numtype#324}(`I32`_numtype, j) `CONST`_instr{numtype#326}(`I32`_numtype, `%`_num_{i#39410}(n)) `MEMORY.INIT`_instr{memidx#153, dataidx#17}(x, y)]] -[visit_exp `CONST`_instr{numtype#322}((at : addrtype <: numtype), i)] -[visit_exp numtype#322] -[visit_id numtype#322] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#324}(`I32`_numtype, j)] -[visit_exp numtype#324] -[visit_id numtype#324] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#326}(`I32`_numtype, `%`_num_{i#39410}(n))] -[visit_exp numtype#326] -[visit_id numtype#326] -[visit_exp (`I32`_numtype, `%`_num_{i#39410}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#39410}(n)] -[visit_exp i#39410] -[visit_id i#39410] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `MEMORY.INIT`_instr{memidx#153, dataidx#17}(x, y)] -[visit_exp memidx#153] -[visit_id memidx#153] -[visit_exp dataidx#17] -[visit_id dataidx#17] +[visit_exp `MEMORY.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -60382,89 +49954,65 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (((i!`%`_num_{i#39452}.0 + n) > |$mem(z, x).`BYTES`_meminst{`byte*#1872`}|) \/ ((j!`%`_num_{i#39478}.0 + n) > |$data(z, y).`BYTES`_datainst{`byte*#1873`}|))] -[visit_exp ((i!`%`_num_{i#39452}.0 + n) > |$mem(z, x).`BYTES`_meminst{`byte*#1872`}|)] -[visit_exp (i!`%`_num_{i#39452}.0 + n)] -[visit_exp i!`%`_num_{i#39452}.0] -[visit_exp i!`%`_num_{i#39452}] +[visit_exp (((i!`%`_num_.0 + n) > |$mem(z, x).`BYTES`_meminst|) \/ ((j!`%`_num_.0 + n) > |$data(z, y).`BYTES`_datainst|))] +[visit_exp ((i!`%`_num_.0 + n) > |$mem(z, x).`BYTES`_meminst|)] +[visit_exp (i!`%`_num_.0 + n)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#39452] -[visit_id i#39452] [visit_exp n] [visit_id n] not free -[visit_exp |$mem(z, x).`BYTES`_meminst{`byte*#1872`}|] -[visit_exp $mem(z, x).`BYTES`_meminst{`byte*#1872`}] +[visit_exp |$mem(z, x).`BYTES`_meminst|] +[visit_exp $mem(z, x).`BYTES`_meminst] [visit_exp $mem(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `byte*#1872`] -[visit_id byte*#1872] -[visit_exp ((j!`%`_num_{i#39478}.0 + n) > |$data(z, y).`BYTES`_datainst{`byte*#1873`}|)] -[visit_exp (j!`%`_num_{i#39478}.0 + n)] -[visit_exp j!`%`_num_{i#39478}.0] -[visit_exp j!`%`_num_{i#39478}] +[visit_exp ((j!`%`_num_.0 + n) > |$data(z, y).`BYTES`_datainst|)] +[visit_exp (j!`%`_num_.0 + n)] +[visit_exp j!`%`_num_.0] +[visit_exp j!`%`_num_] [visit_exp j] [visit_id j] not free -[visit_exp i#39478] -[visit_id i#39478] [visit_exp n] [visit_id n] not free -[visit_exp |$data(z, y).`BYTES`_datainst{`byte*#1873`}|] -[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1873`}] +[visit_exp |$data(z, y).`BYTES`_datainst|] +[visit_exp $data(z, y).`BYTES`_datainst] [visit_exp $data(z, y)] [visit_exp z] [visit_id z] not free [visit_exp y] [visit_id y] not free -[visit_exp `byte*#1873`] -[visit_id byte*#1873] -[check_dims] at dataidx#19 i i#39542 instr*#1614 j memidx#155 n numtype#328 numtype#330 numtype#332 state#1499 x y z -[visit_exp `%;%`_config{state#1499, `instr*#1614`}(z, [`CONST`_instr{numtype#328}((at : addrtype <: numtype), i) `CONST`_instr{numtype#330}(`I32`_numtype, j) `CONST`_instr{numtype#332}(`I32`_numtype, `%`_num_{i#39542}(n)) `MEMORY.INIT`_instr{memidx#155, dataidx#19}(x, y)])] -[visit_exp state#1499] -[visit_id state#1499] -[visit_exp `instr*#1614`] -[visit_id instr*#1614] -[visit_exp (z, [`CONST`_instr{numtype#328}((at : addrtype <: numtype), i) `CONST`_instr{numtype#330}(`I32`_numtype, j) `CONST`_instr{numtype#332}(`I32`_numtype, `%`_num_{i#39542}(n)) `MEMORY.INIT`_instr{memidx#155, dataidx#19}(x, y)])] +[check_dims] at i j n x y z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#328}((at : addrtype <: numtype), i) `CONST`_instr{numtype#330}(`I32`_numtype, j) `CONST`_instr{numtype#332}(`I32`_numtype, `%`_num_{i#39542}(n)) `MEMORY.INIT`_instr{memidx#155, dataidx#19}(x, y)]] -[visit_exp `CONST`_instr{numtype#328}((at : addrtype <: numtype), i)] -[visit_exp numtype#328] -[visit_id numtype#328] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#330}(`I32`_numtype, j)] -[visit_exp numtype#330] -[visit_id numtype#330] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#332}(`I32`_numtype, `%`_num_{i#39542}(n))] -[visit_exp numtype#332] -[visit_id numtype#332] -[visit_exp (`I32`_numtype, `%`_num_{i#39542}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#39542}(n)] -[visit_exp i#39542] -[visit_id i#39542] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `MEMORY.INIT`_instr{memidx#155, dataidx#19}(x, y)] -[visit_exp memidx#155] -[visit_id memidx#155] -[visit_exp dataidx#19] -[visit_id dataidx#19] +[visit_exp `MEMORY.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -60475,165 +50023,109 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp n] [visit_id n] not free [visit_exp 0] -[check_dims] at byte*#1874 dataidx#21 dataidx#23 i i#39622 i#39696 i#39714 i#39715 i#39757 i#39758 i#39798 i#39808 i#39834 i#39844 i#39866 instr*#1626 j memarg#89 memidx#157 memidx#159 memidx#161 n numtype#334 numtype#336 numtype#338 numtype#340 numtype#342 numtype#345 numtype#347 numtype#349 numtype?#20 state#1511 sz#540 x y z -[visit_exp `%;%`_config{state#1511, `instr*#1626`}(z, [`CONST`_instr{numtype#334}((at : addrtype <: numtype), i) `CONST`_instr{numtype#336}(`I32`_numtype, j) `CONST`_instr{numtype#338}(`I32`_numtype, `%`_num_{i#39622}(n)) `MEMORY.INIT`_instr{memidx#157, dataidx#21}(x, y)])] -[visit_exp state#1511] -[visit_id state#1511] -[visit_exp `instr*#1626`] -[visit_id instr*#1626] -[visit_exp (z, [`CONST`_instr{numtype#334}((at : addrtype <: numtype), i) `CONST`_instr{numtype#336}(`I32`_numtype, j) `CONST`_instr{numtype#338}(`I32`_numtype, `%`_num_{i#39622}(n)) `MEMORY.INIT`_instr{memidx#157, dataidx#21}(x, y)])] +[check_dims] at i j n x y z +[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)])] +[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#334}((at : addrtype <: numtype), i) `CONST`_instr{numtype#336}(`I32`_numtype, j) `CONST`_instr{numtype#338}(`I32`_numtype, `%`_num_{i#39622}(n)) `MEMORY.INIT`_instr{memidx#157, dataidx#21}(x, y)]] -[visit_exp `CONST`_instr{numtype#334}((at : addrtype <: numtype), i)] -[visit_exp numtype#334] -[visit_id numtype#334] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#336}(`I32`_numtype, j)] -[visit_exp numtype#336] -[visit_id numtype#336] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#338}(`I32`_numtype, `%`_num_{i#39622}(n))] -[visit_exp numtype#338] -[visit_id numtype#338] -[visit_exp (`I32`_numtype, `%`_num_{i#39622}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#39622}(n)] -[visit_exp i#39622] -[visit_id i#39622] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `MEMORY.INIT`_instr{memidx#157, dataidx#21}(x, y)] -[visit_exp memidx#157] -[visit_id memidx#157] -[visit_exp dataidx#21] -[visit_id dataidx#21] +[visit_exp `MEMORY.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp [`CONST`_instr{numtype#340}((at : addrtype <: numtype), i) `CONST`_instr{numtype#342}(`I32`_numtype, `%`_num_{i#39715}($data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0)) `STORE`_instr{`numtype?#20`, memidx#159, memarg#89}(`I32`_numtype, ?(`%`_storeop_{sz#540, i#39757}(`%`_sz{i#39758}(8))), x, $memarg0) `CONST`_instr{numtype#345}((at : addrtype <: numtype), `%`_num_{i#39808}((i!`%`_num_{i#39798}.0 + 1))) `CONST`_instr{numtype#347}(`I32`_numtype, `%`_num_{i#39844}((j!`%`_num_{i#39834}.0 + 1))) `CONST`_instr{numtype#349}(`I32`_numtype, `%`_num_{i#39866}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.INIT`_instr{memidx#161, dataidx#23}(x, y)]] -[visit_exp `CONST`_instr{numtype#340}((at : addrtype <: numtype), i)] -[visit_exp numtype#340] -[visit_id numtype#340] +[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, `%`_num_($data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0)) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.INIT`_instr(x, y)]] +[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] [visit_exp ((at : addrtype <: numtype), i)] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free [visit_exp i] [visit_id i] not free -[visit_exp `CONST`_instr{numtype#342}(`I32`_numtype, `%`_num_{i#39715}($data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0))] -[visit_exp numtype#342] -[visit_id numtype#342] -[visit_exp (`I32`_numtype, `%`_num_{i#39715}($data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_($data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0))] +[visit_exp (`I32`_numtype, `%`_num_($data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#39715}($data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0)] -[visit_exp i#39715] -[visit_id i#39715] -[visit_exp ($data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0)] -[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0] -[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}] -[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]] -[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1874`}] +[visit_exp `%`_num_($data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0)] +[visit_exp ($data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0)] +[visit_exp $data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0] +[visit_exp $data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte] +[visit_exp $data(z, y).`BYTES`_datainst[j!`%`_num_.0]] +[visit_exp $data(z, y).`BYTES`_datainst] [visit_exp $data(z, y)] [visit_exp z] [visit_id z] not free [visit_exp y] [visit_id y] not free -[visit_exp `byte*#1874`] -[visit_id byte*#1874] -[visit_exp j!`%`_num_{i#39696}.0] -[visit_exp j!`%`_num_{i#39696}] +[visit_exp j!`%`_num_.0] +[visit_exp j!`%`_num_] [visit_exp j] [visit_id j] not free -[visit_exp i#39696] -[visit_id i#39696] -[visit_exp i#39714] -[visit_id i#39714] -[visit_exp `STORE`_instr{`numtype?#20`, memidx#159, memarg#89}(`I32`_numtype, ?(`%`_storeop_{sz#540, i#39757}(`%`_sz{i#39758}(8))), x, $memarg0)] -[visit_exp `numtype?#20`] -[visit_id numtype?#20] -[visit_exp memidx#159] -[visit_id memidx#159] -[visit_exp memarg#89] -[visit_id memarg#89] -[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#540, i#39757}(`%`_sz{i#39758}(8))), x, $memarg0)] +[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0)] +[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#540, i#39757}(`%`_sz{i#39758}(8)))] -[visit_exp `%`_storeop_{sz#540, i#39757}(`%`_sz{i#39758}(8))] -[visit_exp sz#540] -[visit_id sz#540] -[visit_exp i#39757] -[visit_id i#39757] -[visit_exp (`%`_sz{i#39758}(8))] -[visit_exp `%`_sz{i#39758}(8)] -[visit_exp i#39758] -[visit_id i#39758] +[visit_exp ?(`%`_storeop_(`%`_sz(8)))] +[visit_exp `%`_storeop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x] [visit_id x] not free [visit_exp $memarg0] -[visit_exp `CONST`_instr{numtype#345}((at : addrtype <: numtype), `%`_num_{i#39808}((i!`%`_num_{i#39798}.0 + 1)))] -[visit_exp numtype#345] -[visit_id numtype#345] -[visit_exp ((at : addrtype <: numtype), `%`_num_{i#39808}((i!`%`_num_{i#39798}.0 + 1)))] +[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] +[visit_exp ((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] [visit_exp (at : addrtype <: numtype)] [visit_exp at] [visit_id at] not free -[visit_exp `%`_num_{i#39808}((i!`%`_num_{i#39798}.0 + 1))] -[visit_exp i#39808] -[visit_id i#39808] -[visit_exp ((i!`%`_num_{i#39798}.0 + 1))] -[visit_exp (i!`%`_num_{i#39798}.0 + 1)] -[visit_exp i!`%`_num_{i#39798}.0] -[visit_exp i!`%`_num_{i#39798}] +[visit_exp `%`_num_((i!`%`_num_.0 + 1))] +[visit_exp ((i!`%`_num_.0 + 1))] +[visit_exp (i!`%`_num_.0 + 1)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#39798] -[visit_id i#39798] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#347}(`I32`_numtype, `%`_num_{i#39844}((j!`%`_num_{i#39834}.0 + 1)))] -[visit_exp numtype#347] -[visit_id numtype#347] -[visit_exp (`I32`_numtype, `%`_num_{i#39844}((j!`%`_num_{i#39834}.0 + 1)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1)))] +[visit_exp (`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#39844}((j!`%`_num_{i#39834}.0 + 1))] -[visit_exp i#39844] -[visit_id i#39844] -[visit_exp ((j!`%`_num_{i#39834}.0 + 1))] -[visit_exp (j!`%`_num_{i#39834}.0 + 1)] -[visit_exp j!`%`_num_{i#39834}.0] -[visit_exp j!`%`_num_{i#39834}] +[visit_exp `%`_num_((j!`%`_num_.0 + 1))] +[visit_exp ((j!`%`_num_.0 + 1))] +[visit_exp (j!`%`_num_.0 + 1)] +[visit_exp j!`%`_num_.0] +[visit_exp j!`%`_num_] [visit_exp j] [visit_id j] not free -[visit_exp i#39834] -[visit_id i#39834] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#349}(`I32`_numtype, `%`_num_{i#39866}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#349] -[visit_id numtype#349] -[visit_exp (`I32`_numtype, `%`_num_{i#39866}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#39866}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#39866] -[visit_id i#39866] +[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - (1 : nat <:> int))] @@ -60642,37 +50134,23 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `MEMORY.INIT`_instr{memidx#161, dataidx#23}(x, y)] -[visit_exp memidx#161] -[visit_id memidx#161] -[visit_exp dataidx#23] -[visit_id dataidx#23] +[visit_exp `MEMORY.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] not free [visit_exp y] [visit_id y] not free -[check_dims] dataidx#25 instr*#1638 instr*#1650 state#1523 state#1535 x z -[visit_exp `%;%`_config{state#1523, `instr*#1638`}(z, [`DATA.DROP`_instr{dataidx#25}(x)])] -[visit_exp state#1523] -[visit_id state#1523] -[visit_exp `instr*#1638`] -[visit_id instr*#1638] -[visit_exp (z, [`DATA.DROP`_instr{dataidx#25}(x)])] +[check_dims] x z +[visit_exp `%;%`_config(z, [`DATA.DROP`_instr(x)])] +[visit_exp (z, [`DATA.DROP`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`DATA.DROP`_instr{dataidx#25}(x)]] -[visit_exp `DATA.DROP`_instr{dataidx#25}(x)] -[visit_exp dataidx#25] -[visit_id dataidx#25] +[visit_exp [`DATA.DROP`_instr(x)]] +[visit_exp `DATA.DROP`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#1535, `instr*#1650`}($with_data(z, x, []), [])] -[visit_exp state#1535] -[visit_id state#1535] -[visit_exp `instr*#1650`] -[visit_id instr*#1650] +[visit_exp `%;%`_config($with_data(z, x, []), [])] [visit_exp ($with_data(z, x, []), [])] [visit_exp $with_data(z, x, [])] [visit_exp z] @@ -60681,30 +50159,20 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] not free [visit_exp []] [visit_exp []] -[check_dims] heaptype#1343 heaptype#1345 instr*#1662 state#1547 typeidx#1555 x z -[visit_exp `%;%`_config{state#1547, `instr*#1662`}(z, [`REF.NULL`_instr{heaptype#1343}(`_IDX`_heaptype{typeidx#1555}(x))])] -[visit_exp state#1547] -[visit_id state#1547] -[visit_exp `instr*#1662`] -[visit_id instr*#1662] -[visit_exp (z, [`REF.NULL`_instr{heaptype#1343}(`_IDX`_heaptype{typeidx#1555}(x))])] +[check_dims] x z +[visit_exp `%;%`_config(z, [`REF.NULL`_instr(`_IDX`_heaptype(x))])] +[visit_exp (z, [`REF.NULL`_instr(`_IDX`_heaptype(x))])] [visit_exp z] [visit_id z] -[visit_exp [`REF.NULL`_instr{heaptype#1343}(`_IDX`_heaptype{typeidx#1555}(x))]] -[visit_exp `REF.NULL`_instr{heaptype#1343}(`_IDX`_heaptype{typeidx#1555}(x))] -[visit_exp heaptype#1343] -[visit_id heaptype#1343] -[visit_exp (`_IDX`_heaptype{typeidx#1555}(x))] -[visit_exp `_IDX`_heaptype{typeidx#1555}(x)] -[visit_exp typeidx#1555] -[visit_id typeidx#1555] +[visit_exp [`REF.NULL`_instr(`_IDX`_heaptype(x))]] +[visit_exp `REF.NULL`_instr(`_IDX`_heaptype(x))] +[visit_exp (`_IDX`_heaptype(x))] +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp [`REF.NULL`_instr{heaptype#1345}(($type(z, x) : deftype <: heaptype))]] -[visit_exp `REF.NULL`_instr{heaptype#1345}(($type(z, x) : deftype <: heaptype))] -[visit_exp heaptype#1345] -[visit_id heaptype#1345] +[visit_exp [`REF.NULL`_instr(($type(z, x) : deftype <: heaptype))]] +[visit_exp `REF.NULL`_instr(($type(z, x) : deftype <: heaptype))] [visit_exp (($type(z, x) : deftype <: heaptype))] [visit_exp ($type(z, x) : deftype <: heaptype)] [visit_exp $type(z, x)] @@ -60712,45 +50180,31 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id z] not free [visit_exp x] [visit_id x] not free -[check_dims] funcaddr#17 funcaddr*#4 funcidx#2841 i#39970 instr*#1674 state#1559 x z -[visit_exp `%;%`_config{state#1559, `instr*#1674`}(z, [`REF.FUNC`_instr{funcidx#2841}(x)])] -[visit_exp state#1559] -[visit_id state#1559] -[visit_exp `instr*#1674`] -[visit_id instr*#1674] -[visit_exp (z, [`REF.FUNC`_instr{funcidx#2841}(x)])] +[check_dims] x z +[visit_exp `%;%`_config(z, [`REF.FUNC`_instr(x)])] +[visit_exp (z, [`REF.FUNC`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.FUNC`_instr{funcidx#2841}(x)]] -[visit_exp `REF.FUNC`_instr{funcidx#2841}(x)] -[visit_exp funcidx#2841] -[visit_id funcidx#2841] +[visit_exp [`REF.FUNC`_instr(x)]] +[visit_exp `REF.FUNC`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#17}($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#4`}[x!`%`_idx{i#39970}.0])]] -[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#17}($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#4`}[x!`%`_idx{i#39970}.0])] -[visit_exp funcaddr#17] -[visit_id funcaddr#17] -[visit_exp ($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#4`}[x!`%`_idx{i#39970}.0])] -[visit_exp $moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#4`}[x!`%`_idx{i#39970}.0]] -[visit_exp $moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#4`}] +[visit_exp [`REF.FUNC_ADDR`_instr($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0])]] +[visit_exp `REF.FUNC_ADDR`_instr($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0])] +[visit_exp ($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0])] +[visit_exp $moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0]] +[visit_exp $moduleinst(z).`FUNCS`_moduleinst] [visit_exp $moduleinst(z)] [visit_exp z] [visit_id z] not free -[visit_exp `funcaddr*#4`] -[visit_id funcaddr*#4] -[visit_exp x!`%`_idx{i#39970}.0] -[visit_exp x!`%`_idx{i#39970}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#39970] -[visit_id i#39970] -[check_dims] i numtype#351 u31#3 -[visit_exp [`CONST`_instr{numtype#351}(`I32`_numtype, i) `REF.I31`_instr]] -[visit_exp `CONST`_instr{numtype#351}(`I32`_numtype, i)] -[visit_exp numtype#351] -[visit_id numtype#351] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[check_dims] i +[visit_exp [`CONST`_instr(`I32`_numtype, i) `REF.I31`_instr]] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -60758,64 +50212,52 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id i] [visit_exp `REF.I31`_instr] [visit_exp ()] -[visit_exp [`REF.I31_NUM`_instr{u31#3}($wrap__(32, 31, i))]] -[visit_exp `REF.I31_NUM`_instr{u31#3}($wrap__(32, 31, i))] -[visit_exp u31#3] -[visit_id u31#3] +[visit_exp [`REF.I31_NUM`_instr($wrap__(32, 31, i))]] +[visit_exp `REF.I31_NUM`_instr($wrap__(32, 31, i))] [visit_exp ($wrap__(32, 31, i))] [visit_exp $wrap__(32, 31, i)] [visit_exp 32] [visit_exp 31] [visit_exp i] [visit_id i] not free -[check_dims] heaptype#1347 ht i#40032 numtype#353 ref +[check_dims] ht ref [visit_exp [(ref : ref <: instr) `REF.IS_NULL`_instr]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] [visit_exp `REF.IS_NULL`_instr] [visit_exp ()] -[visit_exp [`CONST`_instr{numtype#353}(`I32`_numtype, `%`_num_{i#40032}(1))]] -[visit_exp `CONST`_instr{numtype#353}(`I32`_numtype, `%`_num_{i#40032}(1))] -[visit_exp numtype#353] -[visit_id numtype#353] -[visit_exp (`I32`_numtype, `%`_num_{i#40032}(1))] +[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(1))]] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(1))] +[visit_exp (`I32`_numtype, `%`_num_(1))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#40032}(1)] -[visit_exp i#40032] -[visit_id i#40032] +[visit_exp `%`_num_(1)] [visit_exp (1)] [visit_exp 1] -[visit_exp (ref = `REF.NULL`_ref{heaptype#1347}(ht))] +[visit_exp (ref = `REF.NULL`_ref(ht))] [visit_exp ref] [visit_id ref] not free -[visit_exp `REF.NULL`_ref{heaptype#1347}(ht)] -[visit_exp heaptype#1347] -[visit_id heaptype#1347] +[visit_exp `REF.NULL`_ref(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[check_dims] i#40054 numtype#355 ref +[check_dims] ref [visit_exp [(ref : ref <: instr) `REF.IS_NULL`_instr]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] [visit_exp `REF.IS_NULL`_instr] [visit_exp ()] -[visit_exp [`CONST`_instr{numtype#355}(`I32`_numtype, `%`_num_{i#40054}(0))]] -[visit_exp `CONST`_instr{numtype#355}(`I32`_numtype, `%`_num_{i#40054}(0))] -[visit_exp numtype#355] -[visit_id numtype#355] -[visit_exp (`I32`_numtype, `%`_num_{i#40054}(0))] +[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(0))]] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(0))] +[visit_exp (`I32`_numtype, `%`_num_(0))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#40054}(0)] -[visit_exp i#40054] -[visit_id i#40054] +[visit_exp `%`_num_(0)] [visit_exp (0)] [visit_exp 0] -[check_dims] heaptype#1349 ht ref +[check_dims] ht ref [visit_exp [(ref : ref <: instr) `REF.AS_NON_NULL`_instr]] [visit_exp (ref : ref <: instr)] [visit_exp ref] @@ -60825,12 +50267,10 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (ref = `REF.NULL`_ref{heaptype#1349}(ht))] +[visit_exp (ref = `REF.NULL`_ref(ht))] [visit_exp ref] [visit_id ref] not free -[visit_exp `REF.NULL`_ref{heaptype#1349}(ht)] -[visit_exp heaptype#1349] -[visit_id heaptype#1349] +[visit_exp `REF.NULL`_ref(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] @@ -60845,7 +50285,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] not free -[check_dims] heaptype#1351 heaptype#1353 ht_1 ht_2 i#40076 numtype#357 ref_1 ref_2 +[check_dims] ht_1 ht_2 ref_1 ref_2 [visit_exp [(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr]] [visit_exp (ref_1 : ref <: instr)] [visit_exp ref_1] @@ -60855,38 +50295,30 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id ref_2] [visit_exp `REF.EQ`_instr] [visit_exp ()] -[visit_exp [`CONST`_instr{numtype#357}(`I32`_numtype, `%`_num_{i#40076}(1))]] -[visit_exp `CONST`_instr{numtype#357}(`I32`_numtype, `%`_num_{i#40076}(1))] -[visit_exp numtype#357] -[visit_id numtype#357] -[visit_exp (`I32`_numtype, `%`_num_{i#40076}(1))] +[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(1))]] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(1))] +[visit_exp (`I32`_numtype, `%`_num_(1))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#40076}(1)] -[visit_exp i#40076] -[visit_id i#40076] +[visit_exp `%`_num_(1)] [visit_exp (1)] [visit_exp 1] -[visit_exp ((ref_1 = `REF.NULL`_ref{heaptype#1351}(ht_1)) /\ (ref_2 = `REF.NULL`_ref{heaptype#1353}(ht_2)))] -[visit_exp (ref_1 = `REF.NULL`_ref{heaptype#1351}(ht_1))] +[visit_exp ((ref_1 = `REF.NULL`_ref(ht_1)) /\ (ref_2 = `REF.NULL`_ref(ht_2)))] +[visit_exp (ref_1 = `REF.NULL`_ref(ht_1))] [visit_exp ref_1] [visit_id ref_1] not free -[visit_exp `REF.NULL`_ref{heaptype#1351}(ht_1)] -[visit_exp heaptype#1351] -[visit_id heaptype#1351] +[visit_exp `REF.NULL`_ref(ht_1)] [visit_exp (ht_1)] [visit_exp ht_1] [visit_id ht_1] -[visit_exp (ref_2 = `REF.NULL`_ref{heaptype#1353}(ht_2))] +[visit_exp (ref_2 = `REF.NULL`_ref(ht_2))] [visit_exp ref_2] [visit_id ref_2] not free -[visit_exp `REF.NULL`_ref{heaptype#1353}(ht_2)] -[visit_exp heaptype#1353] -[visit_id heaptype#1353] +[visit_exp `REF.NULL`_ref(ht_2)] [visit_exp (ht_2)] [visit_exp ht_2] [visit_id ht_2] -[check_dims] i#40098 numtype#359 ref_1 ref_2 +[check_dims] ref_1 ref_2 [visit_exp [(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr]] [visit_exp (ref_1 : ref <: instr)] [visit_exp ref_1] @@ -60896,16 +50328,12 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id ref_2] [visit_exp `REF.EQ`_instr] [visit_exp ()] -[visit_exp [`CONST`_instr{numtype#359}(`I32`_numtype, `%`_num_{i#40098}(1))]] -[visit_exp `CONST`_instr{numtype#359}(`I32`_numtype, `%`_num_{i#40098}(1))] -[visit_exp numtype#359] -[visit_id numtype#359] -[visit_exp (`I32`_numtype, `%`_num_{i#40098}(1))] +[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(1))]] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(1))] +[visit_exp (`I32`_numtype, `%`_num_(1))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#40098}(1)] -[visit_exp i#40098] -[visit_id i#40098] +[visit_exp `%`_num_(1)] [visit_exp (1)] [visit_exp 1] [visit_exp (ref_1 = ref_2)] @@ -60913,7 +50341,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id ref_1] not free [visit_exp ref_2] [visit_id ref_2] not free -[check_dims] i#40120 numtype#361 ref_1 ref_2 +[check_dims] ref_1 ref_2 [visit_exp [(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr]] [visit_exp (ref_1 : ref <: instr)] [visit_exp ref_1] @@ -60923,55 +50351,37 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id ref_2] [visit_exp `REF.EQ`_instr] [visit_exp ()] -[visit_exp [`CONST`_instr{numtype#361}(`I32`_numtype, `%`_num_{i#40120}(0))]] -[visit_exp `CONST`_instr{numtype#361}(`I32`_numtype, `%`_num_{i#40120}(0))] -[visit_exp numtype#361] -[visit_id numtype#361] -[visit_exp (`I32`_numtype, `%`_num_{i#40120}(0))] +[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(0))]] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(0))] +[visit_exp (`I32`_numtype, `%`_num_(0))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#40120}(0)] -[visit_exp i#40120] -[visit_id i#40120] +[visit_exp `%`_num_(0)] [visit_exp (0)] [visit_exp 0] -[check_dims] datatype*#24 deftype*#90 deftype*#91 elemtype*#24 f frame#1931 funcidx*#61 globaltype*#25 i#40142 instr*#1686 localtype*#27 memtype*#39 moduleinst#23 numtype#363 ref reftype#3467 resulttype*#35 resulttype?#32 rt rt' s state#1571 store#1913 subtype*#23 tabletype*#32 tagtype*#24 -[visit_exp `%;%`_config{state#1571, `instr*#1686`}(`%;%`_state{store#1913, frame#1931}(s, f), [(ref : ref <: instr) `REF.TEST`_instr{reftype#3467}(rt)])] -[visit_exp state#1571] -[visit_id state#1571] -[visit_exp `instr*#1686`] -[visit_id instr*#1686] -[visit_exp (`%;%`_state{store#1913, frame#1931}(s, f), [(ref : ref <: instr) `REF.TEST`_instr{reftype#3467}(rt)])] -[visit_exp `%;%`_state{store#1913, frame#1931}(s, f)] -[visit_exp store#1913] -[visit_id store#1913] -[visit_exp frame#1931] -[visit_id frame#1931] +[check_dims] f ref rt rt' s +[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)])] +[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)])] +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp [(ref : ref <: instr) `REF.TEST`_instr{reftype#3467}(rt)]] +[visit_exp [(ref : ref <: instr) `REF.TEST`_instr(rt)]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `REF.TEST`_instr{reftype#3467}(rt)] -[visit_exp reftype#3467] -[visit_id reftype#3467] +[visit_exp `REF.TEST`_instr(rt)] [visit_exp (rt)] [visit_exp rt] [visit_id rt] -[visit_exp [`CONST`_instr{numtype#363}(`I32`_numtype, `%`_num_{i#40142}(1))]] -[visit_exp `CONST`_instr{numtype#363}(`I32`_numtype, `%`_num_{i#40142}(1))] -[visit_exp numtype#363] -[visit_id numtype#363] -[visit_exp (`I32`_numtype, `%`_num_{i#40142}(1))] +[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(1))]] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(1))] +[visit_exp (`I32`_numtype, `%`_num_(1))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#40142}(1)] -[visit_exp i#40142] -[visit_id i#40142] +[visit_exp `%`_num_(1)] [visit_exp (1)] [visit_exp 1] [visit_exp (s, ref, rt')] @@ -60981,120 +50391,68 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id ref] not free [visit_exp rt'] [visit_id rt'] -[visit_exp ({`TYPES`{`deftype*#90`} [], `RECS`{`subtype*#23`} [], `TAGS`{`tagtype*#24`} [], `GLOBALS`{`globaltype*#25`} [], `MEMS`{`memtype*#39`} [], `TABLES`{`tabletype*#32`} [], `FUNCS`{`deftype*#91`} [], `DATAS`{`datatype*#24`} [], `ELEMS`{`elemtype*#24`} [], `LOCALS`{`localtype*#27`} [], `LABELS`{`resulttype*#35`} [], `RETURN`{`resulttype?#32`} ?(), `REFS`{`funcidx*#61`} []}, rt', $inst_reftype(f.`MODULE`_frame{moduleinst#23}, rt))] -[visit_exp {`TYPES`{`deftype*#90`} [], `RECS`{`subtype*#23`} [], `TAGS`{`tagtype*#24`} [], `GLOBALS`{`globaltype*#25`} [], `MEMS`{`memtype*#39`} [], `TABLES`{`tabletype*#32`} [], `FUNCS`{`deftype*#91`} [], `DATAS`{`datatype*#24`} [], `ELEMS`{`elemtype*#24`} [], `LOCALS`{`localtype*#27`} [], `LABELS`{`resulttype*#35`} [], `RETURN`{`resulttype?#32`} ?(), `REFS`{`funcidx*#61`} []}] -[visit_exp `deftype*#90`] -[visit_id deftype*#90] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt', $inst_reftype(f.`MODULE`_frame, rt))] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#23`] -[visit_id subtype*#23] [visit_exp []] -[visit_exp `tagtype*#24`] -[visit_id tagtype*#24] [visit_exp []] -[visit_exp `globaltype*#25`] -[visit_id globaltype*#25] [visit_exp []] -[visit_exp `memtype*#39`] -[visit_id memtype*#39] [visit_exp []] -[visit_exp `tabletype*#32`] -[visit_id tabletype*#32] [visit_exp []] -[visit_exp `deftype*#91`] -[visit_id deftype*#91] [visit_exp []] -[visit_exp `datatype*#24`] -[visit_id datatype*#24] [visit_exp []] -[visit_exp `elemtype*#24`] -[visit_id elemtype*#24] [visit_exp []] -[visit_exp `localtype*#27`] -[visit_id localtype*#27] [visit_exp []] -[visit_exp `resulttype*#35`] -[visit_id resulttype*#35] [visit_exp []] -[visit_exp `resulttype?#32`] -[visit_id resulttype?#32] [visit_exp ?()] -[visit_exp `funcidx*#61`] -[visit_id funcidx*#61] [visit_exp []] [visit_exp rt'] [visit_id rt'] not free -[visit_exp $inst_reftype(f.`MODULE`_frame{moduleinst#23}, rt)] -[visit_exp f.`MODULE`_frame{moduleinst#23}] +[visit_exp $inst_reftype(f.`MODULE`_frame, rt)] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#23] -[visit_id moduleinst#23] [visit_exp rt] [visit_id rt] not free -[check_dims] f frame#1943 i#40164 instr*#1698 numtype#365 ref reftype#3469 rt s state#1583 store#1925 -[visit_exp `%;%`_config{state#1583, `instr*#1698`}(`%;%`_state{store#1925, frame#1943}(s, f), [(ref : ref <: instr) `REF.TEST`_instr{reftype#3469}(rt)])] -[visit_exp state#1583] -[visit_id state#1583] -[visit_exp `instr*#1698`] -[visit_id instr*#1698] -[visit_exp (`%;%`_state{store#1925, frame#1943}(s, f), [(ref : ref <: instr) `REF.TEST`_instr{reftype#3469}(rt)])] -[visit_exp `%;%`_state{store#1925, frame#1943}(s, f)] -[visit_exp store#1925] -[visit_id store#1925] -[visit_exp frame#1943] -[visit_id frame#1943] +[check_dims] f ref rt s +[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)])] +[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)])] +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp [(ref : ref <: instr) `REF.TEST`_instr{reftype#3469}(rt)]] +[visit_exp [(ref : ref <: instr) `REF.TEST`_instr(rt)]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `REF.TEST`_instr{reftype#3469}(rt)] -[visit_exp reftype#3469] -[visit_id reftype#3469] +[visit_exp `REF.TEST`_instr(rt)] [visit_exp (rt)] [visit_exp rt] [visit_id rt] -[visit_exp [`CONST`_instr{numtype#365}(`I32`_numtype, `%`_num_{i#40164}(0))]] -[visit_exp `CONST`_instr{numtype#365}(`I32`_numtype, `%`_num_{i#40164}(0))] -[visit_exp numtype#365] -[visit_id numtype#365] -[visit_exp (`I32`_numtype, `%`_num_{i#40164}(0))] +[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(0))]] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(0))] +[visit_exp (`I32`_numtype, `%`_num_(0))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#40164}(0)] -[visit_exp i#40164] -[visit_id i#40164] +[visit_exp `%`_num_(0)] [visit_exp (0)] [visit_exp 0] -[check_dims] datatype*#25 deftype*#92 deftype*#93 elemtype*#25 f frame#1955 funcidx*#62 globaltype*#26 instr*#1710 localtype*#28 memtype*#40 moduleinst#24 ref reftype#3471 resulttype*#36 resulttype?#33 rt rt' s state#1595 store#1937 subtype*#24 tabletype*#33 tagtype*#25 -[visit_exp `%;%`_config{state#1595, `instr*#1710`}(`%;%`_state{store#1937, frame#1955}(s, f), [(ref : ref <: instr) `REF.CAST`_instr{reftype#3471}(rt)])] -[visit_exp state#1595] -[visit_id state#1595] -[visit_exp `instr*#1710`] -[visit_id instr*#1710] -[visit_exp (`%;%`_state{store#1937, frame#1955}(s, f), [(ref : ref <: instr) `REF.CAST`_instr{reftype#3471}(rt)])] -[visit_exp `%;%`_state{store#1937, frame#1955}(s, f)] -[visit_exp store#1937] -[visit_id store#1937] -[visit_exp frame#1955] -[visit_id frame#1955] +[check_dims] f ref rt rt' s +[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.CAST`_instr(rt)])] +[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `REF.CAST`_instr(rt)])] +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp [(ref : ref <: instr) `REF.CAST`_instr{reftype#3471}(rt)]] +[visit_exp [(ref : ref <: instr) `REF.CAST`_instr(rt)]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `REF.CAST`_instr{reftype#3471}(rt)] -[visit_exp reftype#3471] -[visit_id reftype#3471] +[visit_exp `REF.CAST`_instr(rt)] [visit_exp (rt)] [visit_exp rt] [visit_id rt] @@ -61109,122 +50467,74 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id ref] not free [visit_exp rt'] [visit_id rt'] -[visit_exp ({`TYPES`{`deftype*#92`} [], `RECS`{`subtype*#24`} [], `TAGS`{`tagtype*#25`} [], `GLOBALS`{`globaltype*#26`} [], `MEMS`{`memtype*#40`} [], `TABLES`{`tabletype*#33`} [], `FUNCS`{`deftype*#93`} [], `DATAS`{`datatype*#25`} [], `ELEMS`{`elemtype*#25`} [], `LOCALS`{`localtype*#28`} [], `LABELS`{`resulttype*#36`} [], `RETURN`{`resulttype?#33`} ?(), `REFS`{`funcidx*#62`} []}, rt', $inst_reftype(f.`MODULE`_frame{moduleinst#24}, rt))] -[visit_exp {`TYPES`{`deftype*#92`} [], `RECS`{`subtype*#24`} [], `TAGS`{`tagtype*#25`} [], `GLOBALS`{`globaltype*#26`} [], `MEMS`{`memtype*#40`} [], `TABLES`{`tabletype*#33`} [], `FUNCS`{`deftype*#93`} [], `DATAS`{`datatype*#25`} [], `ELEMS`{`elemtype*#25`} [], `LOCALS`{`localtype*#28`} [], `LABELS`{`resulttype*#36`} [], `RETURN`{`resulttype?#33`} ?(), `REFS`{`funcidx*#62`} []}] -[visit_exp `deftype*#92`] -[visit_id deftype*#92] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt', $inst_reftype(f.`MODULE`_frame, rt))] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#24`] -[visit_id subtype*#24] [visit_exp []] -[visit_exp `tagtype*#25`] -[visit_id tagtype*#25] [visit_exp []] -[visit_exp `globaltype*#26`] -[visit_id globaltype*#26] [visit_exp []] -[visit_exp `memtype*#40`] -[visit_id memtype*#40] [visit_exp []] -[visit_exp `tabletype*#33`] -[visit_id tabletype*#33] [visit_exp []] -[visit_exp `deftype*#93`] -[visit_id deftype*#93] [visit_exp []] -[visit_exp `datatype*#25`] -[visit_id datatype*#25] [visit_exp []] -[visit_exp `elemtype*#25`] -[visit_id elemtype*#25] [visit_exp []] -[visit_exp `localtype*#28`] -[visit_id localtype*#28] [visit_exp []] -[visit_exp `resulttype*#36`] -[visit_id resulttype*#36] [visit_exp []] -[visit_exp `resulttype?#33`] -[visit_id resulttype?#33] [visit_exp ?()] -[visit_exp `funcidx*#62`] -[visit_id funcidx*#62] [visit_exp []] [visit_exp rt'] [visit_id rt'] not free -[visit_exp $inst_reftype(f.`MODULE`_frame{moduleinst#24}, rt)] -[visit_exp f.`MODULE`_frame{moduleinst#24}] +[visit_exp $inst_reftype(f.`MODULE`_frame, rt)] +[visit_exp f.`MODULE`_frame] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#24] -[visit_id moduleinst#24] [visit_exp rt] [visit_id rt] not free -[check_dims] f frame#1967 instr*#1722 ref reftype#3473 rt s state#1607 store#1949 -[visit_exp `%;%`_config{state#1607, `instr*#1722`}(`%;%`_state{store#1949, frame#1967}(s, f), [(ref : ref <: instr) `REF.CAST`_instr{reftype#3473}(rt)])] -[visit_exp state#1607] -[visit_id state#1607] -[visit_exp `instr*#1722`] -[visit_id instr*#1722] -[visit_exp (`%;%`_state{store#1949, frame#1967}(s, f), [(ref : ref <: instr) `REF.CAST`_instr{reftype#3473}(rt)])] -[visit_exp `%;%`_state{store#1949, frame#1967}(s, f)] -[visit_exp store#1949] -[visit_id store#1949] -[visit_exp frame#1967] -[visit_id frame#1967] +[check_dims] f ref rt s +[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.CAST`_instr(rt)])] +[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `REF.CAST`_instr(rt)])] +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] [visit_exp f] [visit_id f] -[visit_exp [(ref : ref <: instr) `REF.CAST`_instr{reftype#3473}(rt)]] +[visit_exp [(ref : ref <: instr) `REF.CAST`_instr(rt)]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `REF.CAST`_instr{reftype#3473}(rt)] -[visit_exp reftype#3473] -[visit_id reftype#3473] +[visit_exp `REF.CAST`_instr(rt)] [visit_exp (rt)] [visit_exp rt] [visit_id rt] [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] heaptype#1427 ht sx sx#404 -[visit_exp [`REF.NULL`_instr{heaptype#1427}(ht) `I31.GET`_instr{sx#404}(sx)]] -[visit_exp `REF.NULL`_instr{heaptype#1427}(ht)] -[visit_exp heaptype#1427] -[visit_id heaptype#1427] +[check_dims] ht sx +[visit_exp [`REF.NULL`_instr(ht) `I31.GET`_instr(sx)]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[visit_exp `I31.GET`_instr{sx#404}(sx)] -[visit_exp sx#404] -[visit_id sx#404] +[visit_exp `I31.GET`_instr(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] i numtype#367 sx sx#406 u31#5 -[visit_exp [`REF.I31_NUM`_instr{u31#5}(i) `I31.GET`_instr{sx#406}(sx)]] -[visit_exp `REF.I31_NUM`_instr{u31#5}(i)] -[visit_exp u31#5] -[visit_id u31#5] +[check_dims] i sx +[visit_exp [`REF.I31_NUM`_instr(i) `I31.GET`_instr(sx)]] +[visit_exp `REF.I31_NUM`_instr(i)] [visit_exp (i)] [visit_exp i] [visit_id i] -[visit_exp `I31.GET`_instr{sx#406}(sx)] -[visit_exp sx#406] -[visit_id sx#406] +[visit_exp `I31.GET`_instr(sx)] [visit_exp (sx)] [visit_exp sx] [visit_id sx] -[visit_exp [`CONST`_instr{numtype#367}(`I32`_numtype, $extend__(31, 32, sx, i))]] -[visit_exp `CONST`_instr{numtype#367}(`I32`_numtype, $extend__(31, 32, sx, i))] -[visit_exp numtype#367] -[visit_id numtype#367] +[visit_exp [`CONST`_instr(`I32`_numtype, $extend__(31, 32, sx, i))]] +[visit_exp `CONST`_instr(`I32`_numtype, $extend__(31, 32, sx, i))] [visit_exp (`I32`_numtype, $extend__(31, 32, sx, i))] [visit_exp `I32`_numtype] [visit_exp ()] @@ -61235,16 +50545,12 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id sx] not free [visit_exp i] [visit_id i] not free -[check_dims] X*#12668 a deftype#9 fieldval*#3 instr*#1734 instr*#1746 mut mut?#1031 n si state#1619 state#1631 storagetype#569 structaddr#3 typeidx#1557 val x z zt -[visit_exp `%;%`_config{state#1619, `instr*#1734`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr{typeidx#1557}(x)])] -[visit_exp state#1619] -[visit_id state#1619] -[visit_exp `instr*#1734`] -[visit_id instr*#1734] -[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr{typeidx#1557}(x)])] +[check_dims] a mut n si val x z zt +[visit_exp `%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr(x)])] +[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr{typeidx#1557}(x)]] +[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr(x)]] [visit_exp (val : val <: instr)^n{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -61257,54 +50563,38 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`STRUCT.NEW`_instr{typeidx#1557}(x)]] -[visit_exp `STRUCT.NEW`_instr{typeidx#1557}(x)] -[visit_exp typeidx#1557] -[visit_id typeidx#1557] +[visit_exp [`STRUCT.NEW`_instr(x)]] +[visit_exp `STRUCT.NEW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#1631, `instr*#1746`}($add_structinst(z, [si]), [`REF.STRUCT_ADDR`_instr{structaddr#3}(a)])] -[visit_exp state#1631] -[visit_id state#1631] -[visit_exp `instr*#1746`] -[visit_id instr*#1746] -[visit_exp ($add_structinst(z, [si]), [`REF.STRUCT_ADDR`_instr{structaddr#3}(a)])] +[visit_exp `%;%`_config($add_structinst(z, [si]), [`REF.STRUCT_ADDR`_instr(a)])] +[visit_exp ($add_structinst(z, [si]), [`REF.STRUCT_ADDR`_instr(a)])] [visit_exp $add_structinst(z, [si])] [visit_exp z] [visit_id z] not free [visit_exp [si]] [visit_exp si] [visit_id si] -[visit_exp [`REF.STRUCT_ADDR`_instr{structaddr#3}(a)]] -[visit_exp `REF.STRUCT_ADDR`_instr{structaddr#3}(a)] -[visit_exp structaddr#3] -[visit_id structaddr#3] +[visit_exp [`REF.STRUCT_ADDR`_instr(a)]] +[visit_exp `REF.STRUCT_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12668`}(`%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`})))] +[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`})))] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `STRUCT`_comptype(`%`_list{`X*#12668`}(`%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`}))] -[visit_exp (`%`_list{`X*#12668`}(`%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`}))] -[visit_exp `%`_list{`X*#12668`}(`%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`})] -[visit_exp `X*#12668`] -[visit_id X*#12668] -[visit_exp (`%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`})] -[visit_exp `%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`}] +[visit_exp `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`}))] +[visit_exp (`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`}))] +[visit_exp `%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`})] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`})] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`}] [scope_enter mut?] -[scope_enter mut?#1031] -[scope_enter storagetype#569] [scope_enter zt] -[visit_exp `%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#1031`] -[visit_id mut?#1031] not free -[visit_exp storagetype#569] -[visit_id storagetype#569] not free +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -61319,24 +50609,14 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id zt] not free [visit_id mut?] not free [visit_id mut?] no dims -[visit_id mut?#1031] not free -[visit_id storagetype#569] not free [visit_id zt] not free [scope_exit zt] -[scope_exit storagetype#569] -[scope_exit mut?#1031] [scope_exit mut?] [visit_exp n] [visit_id n] not free [visit_exp `mut?*`] [visit_id mut?*] no dims [visit_id mut?*] -[visit_exp `mut?#1031*`] -[visit_id mut?#1031*] no dims -[visit_id mut?#1031*] -[visit_exp `storagetype#569*`] -[visit_id storagetype#569*] no dims -[visit_id storagetype#569*] [visit_exp `zt*`] [visit_id zt*] no dims [visit_id zt*] @@ -61347,19 +50627,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp $structinst(z)] [visit_exp z] [visit_id z] not free -[visit_exp (si = {`TYPE`{deftype#9} $type(z, x), `FIELDS`{`fieldval*#3`} $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}})] +[visit_exp (si = {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}})] [visit_exp si] [visit_id si] not free -[visit_exp {`TYPE`{deftype#9} $type(z, x), `FIELDS`{`fieldval*#3`} $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}}] -[visit_exp deftype#9] -[visit_id deftype#9] +[visit_exp {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}}] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `fieldval*#3`] -[visit_id fieldval*#3] [visit_exp $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}] [scope_enter val] [scope_enter zt] @@ -61380,23 +50656,17 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `zt*`] [visit_id zt*] not free [visit_id zt*] no dims -[check_dims] X*#12683 instr*#1758 mut mut?#1049 state#1643 storagetype#587 typeidx#1559 typeidx#1561 val x z zt -[visit_exp `%;%`_config{state#1643, `instr*#1758`}(z, [`STRUCT.NEW_DEFAULT`_instr{typeidx#1559}(x)])] -[visit_exp state#1643] -[visit_id state#1643] -[visit_exp `instr*#1758`] -[visit_id instr*#1758] -[visit_exp (z, [`STRUCT.NEW_DEFAULT`_instr{typeidx#1559}(x)])] +[check_dims] mut val x z zt +[visit_exp `%;%`_config(z, [`STRUCT.NEW_DEFAULT`_instr(x)])] +[visit_exp (z, [`STRUCT.NEW_DEFAULT`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`STRUCT.NEW_DEFAULT`_instr{typeidx#1559}(x)]] -[visit_exp `STRUCT.NEW_DEFAULT`_instr{typeidx#1559}(x)] -[visit_exp typeidx#1559] -[visit_id typeidx#1559] +[visit_exp [`STRUCT.NEW_DEFAULT`_instr(x)]] +[visit_exp `STRUCT.NEW_DEFAULT`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`STRUCT.NEW`_instr{typeidx#1561}(x)]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`STRUCT.NEW`_instr(x)]] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -61407,35 +50677,25 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`STRUCT.NEW`_instr{typeidx#1561}(x)]] -[visit_exp `STRUCT.NEW`_instr{typeidx#1561}(x)] -[visit_exp typeidx#1561] -[visit_id typeidx#1561] +[visit_exp [`STRUCT.NEW`_instr(x)]] +[visit_exp `STRUCT.NEW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12683`}(`%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`})))] +[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})))] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `STRUCT`_comptype(`%`_list{`X*#12683`}(`%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`}))] -[visit_exp (`%`_list{`X*#12683`}(`%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`}))] -[visit_exp `%`_list{`X*#12683`}(`%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`})] -[visit_exp `X*#12683`] -[visit_id X*#12683] -[visit_exp (`%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`})] -[visit_exp `%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`}] +[visit_exp `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] +[visit_exp (`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] +[visit_exp `%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}] [scope_enter mut?] -[scope_enter mut?#1049] -[scope_enter storagetype#587] [scope_enter zt] -[visit_exp `%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#1049`] -[visit_id mut?#1049] not free -[visit_exp storagetype#587] -[visit_id storagetype#587] not free +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -61450,22 +50710,12 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id zt] not free [visit_id mut?] not free [visit_id mut?] no dims -[visit_id mut?#1049] not free -[visit_id storagetype#587] not free [visit_id zt] not free [scope_exit zt] -[scope_exit storagetype#587] -[scope_exit mut?#1049] [scope_exit mut?] [visit_exp `mut?*`] [visit_id mut?*] no dims [visit_id mut?*] -[visit_exp `mut?#1049*`] -[visit_id mut?#1049*] no dims -[visit_id mut?#1049*] -[visit_exp `storagetype#587*`] -[visit_id storagetype#587*] no dims -[visit_id storagetype#587*] [visit_exp `zt*`] [visit_id zt*] no dims [visit_id zt*] @@ -61489,29 +50739,17 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `zt*`] [visit_id zt*] not free [visit_id zt*] no dims -[check_dims] heaptype#1429 ht i instr*#1770 state#1655 sx sx?#13 typeidx#1563 u32#17 x z -[visit_exp `%;%`_config{state#1655, `instr*#1770`}(z, [`REF.NULL`_instr{heaptype#1429}(ht) `STRUCT.GET`_instr{`sx?#13`, typeidx#1563, u32#17}(sx?{sx <- `sx?`}, x, i)])] -[visit_exp state#1655] -[visit_id state#1655] -[visit_exp `instr*#1770`] -[visit_id instr*#1770] -[visit_exp (z, [`REF.NULL`_instr{heaptype#1429}(ht) `STRUCT.GET`_instr{`sx?#13`, typeidx#1563, u32#17}(sx?{sx <- `sx?`}, x, i)])] +[check_dims] ht i sx x z +[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)])] +[visit_exp (z, [`REF.NULL`_instr(ht) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.NULL`_instr{heaptype#1429}(ht) `STRUCT.GET`_instr{`sx?#13`, typeidx#1563, u32#17}(sx?{sx <- `sx?`}, x, i)]] -[visit_exp `REF.NULL`_instr{heaptype#1429}(ht)] -[visit_exp heaptype#1429] -[visit_id heaptype#1429] +[visit_exp [`REF.NULL`_instr(ht) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[visit_exp `STRUCT.GET`_instr{`sx?#13`, typeidx#1563, u32#17}(sx?{sx <- `sx?`}, x, i)] -[visit_exp `sx?#13`] -[visit_id sx?#13] -[visit_exp typeidx#1563] -[visit_id typeidx#1563] -[visit_exp u32#17] -[visit_id u32#17] +[visit_exp `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)] [visit_exp (sx?{sx <- `sx?`}, x, i)] [visit_exp sx?{sx <- `sx?`}] [scope_enter sx] @@ -61529,29 +50767,17 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] X*#12698 a fieldval*#4 i i#40378 i#40388 instr*#1782 mut mut?#1067 state#1667 storagetype#605 structaddr#5 sx sx?#15 typeidx#1565 u32#19 x z zt -[visit_exp `%;%`_config{state#1667, `instr*#1782`}(z, [`REF.STRUCT_ADDR`_instr{structaddr#5}(a) `STRUCT.GET`_instr{`sx?#15`, typeidx#1565, u32#19}(sx?{sx <- `sx?`}, x, i)])] -[visit_exp state#1667] -[visit_id state#1667] -[visit_exp `instr*#1782`] -[visit_id instr*#1782] -[visit_exp (z, [`REF.STRUCT_ADDR`_instr{structaddr#5}(a) `STRUCT.GET`_instr{`sx?#15`, typeidx#1565, u32#19}(sx?{sx <- `sx?`}, x, i)])] +[check_dims] a i mut sx x z zt +[visit_exp `%;%`_config(z, [`REF.STRUCT_ADDR`_instr(a) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)])] +[visit_exp (z, [`REF.STRUCT_ADDR`_instr(a) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.STRUCT_ADDR`_instr{structaddr#5}(a) `STRUCT.GET`_instr{`sx?#15`, typeidx#1565, u32#19}(sx?{sx <- `sx?`}, x, i)]] -[visit_exp `REF.STRUCT_ADDR`_instr{structaddr#5}(a)] -[visit_exp structaddr#5] -[visit_id structaddr#5] +[visit_exp [`REF.STRUCT_ADDR`_instr(a) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)]] +[visit_exp `REF.STRUCT_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `STRUCT.GET`_instr{`sx?#15`, typeidx#1565, u32#19}(sx?{sx <- `sx?`}, x, i)] -[visit_exp `sx?#15`] -[visit_id sx?#15] -[visit_exp typeidx#1565] -[visit_id typeidx#1565] -[visit_exp u32#19] -[visit_id u32#19] +[visit_exp `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)] [visit_exp (sx?{sx <- `sx?`}, x, i)] [visit_exp sx?{sx <- `sx?`}] [scope_enter sx] @@ -61566,10 +50792,10 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id x] [visit_exp i] [visit_id i] -[visit_exp [($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40378}.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst{`fieldval*#4`}[i!`%`_u32{i#40388}.0]) : val <: instr)]] -[visit_exp ($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40378}.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst{`fieldval*#4`}[i!`%`_u32{i#40388}.0]) : val <: instr)] -[visit_exp $unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40378}.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst{`fieldval*#4`}[i!`%`_u32{i#40388}.0])] -[visit_exp zt*{zt <- `zt*`}[i!`%`_u32{i#40378}.0]] +[visit_exp [($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst[i!`%`_u32.0]) : val <: instr)]] +[visit_exp ($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst[i!`%`_u32.0]) : val <: instr)] +[visit_exp $unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst[i!`%`_u32.0])] +[visit_exp zt*{zt <- `zt*`}[i!`%`_u32.0]] [visit_exp zt*{zt <- `zt*`}] [scope_enter zt] [visit_exp zt] @@ -61579,12 +50805,10 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `zt*`] [visit_id zt*] no dims [visit_id zt*] -[visit_exp i!`%`_u32{i#40378}.0] -[visit_exp i!`%`_u32{i#40378}] +[visit_exp i!`%`_u32.0] +[visit_exp i!`%`_u32] [visit_exp i] [visit_id i] not free -[visit_exp i#40378] -[visit_id i#40378] [visit_exp sx?{sx <- `sx?`}] [scope_enter sx] [visit_exp sx] @@ -61594,44 +50818,32 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `sx?`] [visit_id sx?] not free [visit_id sx?] no dims -[visit_exp $structinst(z)[a].`FIELDS`_structinst{`fieldval*#4`}[i!`%`_u32{i#40388}.0]] -[visit_exp $structinst(z)[a].`FIELDS`_structinst{`fieldval*#4`}] +[visit_exp $structinst(z)[a].`FIELDS`_structinst[i!`%`_u32.0]] +[visit_exp $structinst(z)[a].`FIELDS`_structinst] [visit_exp $structinst(z)[a]] [visit_exp $structinst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp `fieldval*#4`] -[visit_id fieldval*#4] -[visit_exp i!`%`_u32{i#40388}.0] -[visit_exp i!`%`_u32{i#40388}] +[visit_exp i!`%`_u32.0] +[visit_exp i!`%`_u32] [visit_exp i] [visit_id i] not free -[visit_exp i#40388] -[visit_id i#40388] -[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12698`}(`%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`})))] +[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})))] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `STRUCT`_comptype(`%`_list{`X*#12698`}(`%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`}))] -[visit_exp (`%`_list{`X*#12698`}(`%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`}))] -[visit_exp `%`_list{`X*#12698`}(`%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`})] -[visit_exp `X*#12698`] -[visit_id X*#12698] -[visit_exp (`%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`})] -[visit_exp `%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`}] +[visit_exp `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] +[visit_exp (`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] +[visit_exp `%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}] [scope_enter mut?] -[scope_enter mut?#1067] -[scope_enter storagetype#605] [scope_enter zt] -[visit_exp `%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#1067`] -[visit_id mut?#1067] not free -[visit_exp storagetype#605] -[visit_id storagetype#605] not free +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -61646,113 +50858,73 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id zt] not free [visit_id mut?] not free [visit_id mut?] no dims -[visit_id mut?#1067] not free -[visit_id storagetype#605] not free [visit_id zt] not free [scope_exit zt] -[scope_exit storagetype#605] -[scope_exit mut?#1067] [scope_exit mut?] [visit_exp `mut?*`] [visit_id mut?*] no dims [visit_id mut?*] -[visit_exp `mut?#1067*`] -[visit_id mut?#1067*] no dims -[visit_id mut?#1067*] -[visit_exp `storagetype#605*`] -[visit_id storagetype#605*] no dims -[visit_id storagetype#605*] [visit_exp `zt*`] [visit_id zt*] not free [visit_id zt*] no dims -[check_dims] heaptype#1431 ht i instr*#1794 instr*#1806 state#1679 state#1691 typeidx#1567 u32#21 val x z -[visit_exp `%;%`_config{state#1679, `instr*#1794`}(z, [`REF.NULL`_instr{heaptype#1431}(ht) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1567, u32#21}(x, i)])] -[visit_exp state#1679] -[visit_id state#1679] -[visit_exp `instr*#1794`] -[visit_id instr*#1794] -[visit_exp (z, [`REF.NULL`_instr{heaptype#1431}(ht) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1567, u32#21}(x, i)])] +[check_dims] ht i val x z +[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) (val : val <: instr) `STRUCT.SET`_instr(x, i)])] +[visit_exp (z, [`REF.NULL`_instr(ht) (val : val <: instr) `STRUCT.SET`_instr(x, i)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.NULL`_instr{heaptype#1431}(ht) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1567, u32#21}(x, i)]] -[visit_exp `REF.NULL`_instr{heaptype#1431}(ht)] -[visit_exp heaptype#1431] -[visit_id heaptype#1431] +[visit_exp [`REF.NULL`_instr(ht) (val : val <: instr) `STRUCT.SET`_instr(x, i)]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `STRUCT.SET`_instr{typeidx#1567, u32#21}(x, i)] -[visit_exp typeidx#1567] -[visit_id typeidx#1567] -[visit_exp u32#21] -[visit_id u32#21] +[visit_exp `STRUCT.SET`_instr(x, i)] [visit_exp (x, i)] [visit_exp x] [visit_id x] [visit_exp i] [visit_id i] -[visit_exp `%;%`_config{state#1691, `instr*#1806`}(z, [`TRAP`_instr])] -[visit_exp state#1691] -[visit_id state#1691] -[visit_exp `instr*#1806`] -[visit_id instr*#1806] +[visit_exp `%;%`_config(z, [`TRAP`_instr])] [visit_exp (z, [`TRAP`_instr])] [visit_exp z] [visit_id z] not free [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] X*#12713 a i i#40466 i#40476 instr*#1818 instr*#1830 mut mut?#1085 state#1703 state#1715 storagetype#623 structaddr#7 typeidx#1569 u32#23 val x z zt -[visit_exp `%;%`_config{state#1703, `instr*#1818`}(z, [`REF.STRUCT_ADDR`_instr{structaddr#7}(a) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1569, u32#23}(x, i)])] -[visit_exp state#1703] -[visit_id state#1703] -[visit_exp `instr*#1818`] -[visit_id instr*#1818] -[visit_exp (z, [`REF.STRUCT_ADDR`_instr{structaddr#7}(a) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1569, u32#23}(x, i)])] +[check_dims] a i mut val x z zt +[visit_exp `%;%`_config(z, [`REF.STRUCT_ADDR`_instr(a) (val : val <: instr) `STRUCT.SET`_instr(x, i)])] +[visit_exp (z, [`REF.STRUCT_ADDR`_instr(a) (val : val <: instr) `STRUCT.SET`_instr(x, i)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.STRUCT_ADDR`_instr{structaddr#7}(a) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1569, u32#23}(x, i)]] -[visit_exp `REF.STRUCT_ADDR`_instr{structaddr#7}(a)] -[visit_exp structaddr#7] -[visit_id structaddr#7] +[visit_exp [`REF.STRUCT_ADDR`_instr(a) (val : val <: instr) `STRUCT.SET`_instr(x, i)]] +[visit_exp `REF.STRUCT_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `STRUCT.SET`_instr{typeidx#1569, u32#23}(x, i)] -[visit_exp typeidx#1569] -[visit_id typeidx#1569] -[visit_exp u32#23] -[visit_id u32#23] +[visit_exp `STRUCT.SET`_instr(x, i)] [visit_exp (x, i)] [visit_exp x] [visit_id x] [visit_exp i] [visit_id i] -[visit_exp `%;%`_config{state#1715, `instr*#1830`}($with_struct(z, a, i!`%`_u32{i#40466}.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40476}.0], val)), [])] -[visit_exp state#1715] -[visit_id state#1715] -[visit_exp `instr*#1830`] -[visit_id instr*#1830] -[visit_exp ($with_struct(z, a, i!`%`_u32{i#40466}.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40476}.0], val)), [])] -[visit_exp $with_struct(z, a, i!`%`_u32{i#40466}.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40476}.0], val))] +[visit_exp `%;%`_config($with_struct(z, a, i!`%`_u32.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], val)), [])] +[visit_exp ($with_struct(z, a, i!`%`_u32.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], val)), [])] +[visit_exp $with_struct(z, a, i!`%`_u32.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], val))] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp i!`%`_u32{i#40466}.0] -[visit_exp i!`%`_u32{i#40466}] +[visit_exp i!`%`_u32.0] +[visit_exp i!`%`_u32] [visit_exp i] [visit_id i] not free -[visit_exp i#40466] -[visit_id i#40466] -[visit_exp $packfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40476}.0], val)] -[visit_exp zt*{zt <- `zt*`}[i!`%`_u32{i#40476}.0]] +[visit_exp $packfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], val)] +[visit_exp zt*{zt <- `zt*`}[i!`%`_u32.0]] [visit_exp zt*{zt <- `zt*`}] [scope_enter zt] [visit_exp zt] @@ -61762,37 +50934,27 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `zt*`] [visit_id zt*] no dims [visit_id zt*] -[visit_exp i!`%`_u32{i#40476}.0] -[visit_exp i!`%`_u32{i#40476}] +[visit_exp i!`%`_u32.0] +[visit_exp i!`%`_u32] [visit_exp i] [visit_id i] not free -[visit_exp i#40476] -[visit_id i#40476] [visit_exp val] [visit_id val] not free [visit_exp []] -[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12713`}(`%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`})))] +[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})))] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `STRUCT`_comptype(`%`_list{`X*#12713`}(`%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`}))] -[visit_exp (`%`_list{`X*#12713`}(`%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`}))] -[visit_exp `%`_list{`X*#12713`}(`%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`})] -[visit_exp `X*#12713`] -[visit_id X*#12713] -[visit_exp (`%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`})] -[visit_exp `%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`}] +[visit_exp `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] +[visit_exp (`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] +[visit_exp `%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}] [scope_enter mut?] -[scope_enter mut?#1085] -[scope_enter storagetype#623] [scope_enter zt] -[visit_exp `%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#1085`] -[visit_id mut?#1085] not free -[visit_exp storagetype#623] -[visit_id storagetype#623] not free +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -61807,135 +50969,91 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id zt] not free [visit_id mut?] not free [visit_id mut?] no dims -[visit_id mut?#1085] not free -[visit_id storagetype#623] not free [visit_id zt] not free [scope_exit zt] -[scope_exit storagetype#623] -[scope_exit mut?#1085] [scope_exit mut?] [visit_exp `mut?*`] [visit_id mut?*] no dims [visit_id mut?*] -[visit_exp `mut?#1085*`] -[visit_id mut?#1085*] no dims -[visit_id mut?#1085*] -[visit_exp `storagetype#623*`] -[visit_id storagetype#623*] no dims -[visit_id storagetype#623*] [visit_exp `zt*`] [visit_id zt*] not free [visit_id zt*] no dims -[check_dims] i#40512 i#40564 n numtype#369 typeidx#1571 typeidx#1573 u32#25 val x -[visit_exp [(val : val <: instr) `CONST`_instr{numtype#369}(`I32`_numtype, `%`_num_{i#40512}(n)) `ARRAY.NEW`_instr{typeidx#1571}(x)]] +[check_dims] n val x +[visit_exp [(val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW`_instr(x)]] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `CONST`_instr{numtype#369}(`I32`_numtype, `%`_num_{i#40512}(n))] -[visit_exp numtype#369] -[visit_id numtype#369] -[visit_exp (`I32`_numtype, `%`_num_{i#40512}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#40512}(n)] -[visit_exp i#40512] -[visit_id i#40512] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.NEW`_instr{typeidx#1571}(x)] -[visit_exp typeidx#1571] -[visit_id typeidx#1571] +[visit_exp `ARRAY.NEW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1573, u32#25}(x, `%`_u32{i#40564}(n))]] +[visit_exp (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] [visit_exp (val : val <: instr)^n{}] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] not free [visit_exp n] [visit_id n] not free -[visit_exp [`ARRAY.NEW_FIXED`_instr{typeidx#1573, u32#25}(x, `%`_u32{i#40564}(n))]] -[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#1573, u32#25}(x, `%`_u32{i#40564}(n))] -[visit_exp typeidx#1573] -[visit_id typeidx#1573] -[visit_exp u32#25] -[visit_id u32#25] -[visit_exp (x, `%`_u32{i#40564}(n))] -[visit_exp x] -[visit_id x] not free -[visit_exp `%`_u32{i#40564}(n)] -[visit_exp i#40564] -[visit_id i#40564] +[visit_exp [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] +[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] +[visit_exp (x, `%`_u32(n))] +[visit_exp x] +[visit_id x] not free +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[check_dims] fieldtype#39 i#40588 i#40640 instr*#1842 mut mut?#1097 n numtype#371 state#1727 storagetype#635 typeidx#1575 typeidx#1577 u32#27 val x z zt -[visit_exp `%;%`_config{state#1727, `instr*#1842`}(z, [`CONST`_instr{numtype#371}(`I32`_numtype, `%`_num_{i#40588}(n)) `ARRAY.NEW_DEFAULT`_instr{typeidx#1575}(x)])] -[visit_exp state#1727] -[visit_id state#1727] -[visit_exp `instr*#1842`] -[visit_id instr*#1842] -[visit_exp (z, [`CONST`_instr{numtype#371}(`I32`_numtype, `%`_num_{i#40588}(n)) `ARRAY.NEW_DEFAULT`_instr{typeidx#1575}(x)])] +[check_dims] mut n val x z zt +[visit_exp `%;%`_config(z, [`CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DEFAULT`_instr(x)])] +[visit_exp (z, [`CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DEFAULT`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#371}(`I32`_numtype, `%`_num_{i#40588}(n)) `ARRAY.NEW_DEFAULT`_instr{typeidx#1575}(x)]] -[visit_exp `CONST`_instr{numtype#371}(`I32`_numtype, `%`_num_{i#40588}(n))] -[visit_exp numtype#371] -[visit_id numtype#371] -[visit_exp (`I32`_numtype, `%`_num_{i#40588}(n))] +[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DEFAULT`_instr(x)]] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#40588}(n)] -[visit_exp i#40588] -[visit_id i#40588] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.NEW_DEFAULT`_instr{typeidx#1575}(x)] -[visit_exp typeidx#1575] -[visit_id typeidx#1575] +[visit_exp `ARRAY.NEW_DEFAULT`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1577, u32#27}(x, `%`_u32{i#40640}(n))]] +[visit_exp (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] [visit_exp (val : val <: instr)^n{}] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] [visit_exp n] [visit_id n] not free -[visit_exp [`ARRAY.NEW_FIXED`_instr{typeidx#1577, u32#27}(x, `%`_u32{i#40640}(n))]] -[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#1577, u32#27}(x, `%`_u32{i#40640}(n))] -[visit_exp typeidx#1577] -[visit_id typeidx#1577] -[visit_exp u32#27] -[visit_id u32#27] -[visit_exp (x, `%`_u32{i#40640}(n))] -[visit_exp x] -[visit_id x] not free -[visit_exp `%`_u32{i#40640}(n)] -[visit_exp i#40640] -[visit_id i#40640] +[visit_exp [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] +[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] +[visit_exp (x, `%`_u32(n))] +[visit_exp x] +[visit_id x] not free +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#39}(`%%`_fieldtype{`mut?#1097`, storagetype#635}(mut?{mut <- `mut?`}, zt)))] +[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ARRAY`_comptype{fieldtype#39}(`%%`_fieldtype{`mut?#1097`, storagetype#635}(mut?{mut <- `mut?`}, zt))] -[visit_exp fieldtype#39] -[visit_id fieldtype#39] -[visit_exp (`%%`_fieldtype{`mut?#1097`, storagetype#635}(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype{`mut?#1097`, storagetype#635}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#1097`] -[visit_id mut?#1097] -[visit_exp storagetype#635] -[visit_id storagetype#635] +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -61956,16 +51074,12 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp ?(val)] [visit_exp val] [visit_id val] not free -[check_dims] a ai arrayaddr#3 deftype#10 fieldtype#41 fieldval*#5 i#40690 instr*#1854 instr*#1866 mut mut?#1109 n state#1739 state#1751 storagetype#647 typeidx#1579 u32#29 val x z zt -[visit_exp `%;%`_config{state#1739, `instr*#1854`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1579, u32#29}(x, `%`_u32{i#40690}(n))])] -[visit_exp state#1739] -[visit_id state#1739] -[visit_exp `instr*#1854`] -[visit_id instr*#1854] -[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1579, u32#29}(x, `%`_u32{i#40690}(n))])] +[check_dims] a ai mut n val x z zt +[visit_exp `%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))])] +[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))])] [visit_exp z] [visit_id z] -[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1579, u32#29}(x, `%`_u32{i#40690}(n))]] +[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] [visit_exp (val : val <: instr)^n{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -61978,55 +51092,37 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp [`ARRAY.NEW_FIXED`_instr{typeidx#1579, u32#29}(x, `%`_u32{i#40690}(n))]] -[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#1579, u32#29}(x, `%`_u32{i#40690}(n))] -[visit_exp typeidx#1579] -[visit_id typeidx#1579] -[visit_exp u32#29] -[visit_id u32#29] -[visit_exp (x, `%`_u32{i#40690}(n))] +[visit_exp [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] +[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] +[visit_exp (x, `%`_u32(n))] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#40690}(n)] -[visit_exp i#40690] -[visit_id i#40690] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[visit_exp `%;%`_config{state#1751, `instr*#1866`}($add_arrayinst(z, [ai]), [`REF.ARRAY_ADDR`_instr{arrayaddr#3}(a)])] -[visit_exp state#1751] -[visit_id state#1751] -[visit_exp `instr*#1866`] -[visit_id instr*#1866] -[visit_exp ($add_arrayinst(z, [ai]), [`REF.ARRAY_ADDR`_instr{arrayaddr#3}(a)])] +[visit_exp `%;%`_config($add_arrayinst(z, [ai]), [`REF.ARRAY_ADDR`_instr(a)])] +[visit_exp ($add_arrayinst(z, [ai]), [`REF.ARRAY_ADDR`_instr(a)])] [visit_exp $add_arrayinst(z, [ai])] [visit_exp z] [visit_id z] not free [visit_exp [ai]] [visit_exp ai] [visit_id ai] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#3}(a)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#3}(a)] -[visit_exp arrayaddr#3] -[visit_id arrayaddr#3] +[visit_exp [`REF.ARRAY_ADDR`_instr(a)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#41}(`%%`_fieldtype{`mut?#1109`, storagetype#647}(mut?{mut <- `mut?`}, zt)))] +[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ARRAY`_comptype{fieldtype#41}(`%%`_fieldtype{`mut?#1109`, storagetype#647}(mut?{mut <- `mut?`}, zt))] -[visit_exp fieldtype#41] -[visit_id fieldtype#41] -[visit_exp (`%%`_fieldtype{`mut?#1109`, storagetype#647}(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype{`mut?#1109`, storagetype#647}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#1109`] -[visit_id mut?#1109] -[visit_exp storagetype#647] -[visit_id storagetype#647] +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -62039,7 +51135,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id mut?] [visit_exp zt] [visit_id zt] -[visit_exp ((a = |$arrayinst(z)|) /\ (ai = {`TYPE`{deftype#10} $type(z, x), `FIELDS`{`fieldval*#5`} $packfield_(zt, val)^n{val <- `val*`}}))] +[visit_exp ((a = |$arrayinst(z)|) /\ (ai = {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`}}))] [visit_exp (a = |$arrayinst(z)|)] [visit_exp a] [visit_id a] not free @@ -62047,19 +51143,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp $arrayinst(z)] [visit_exp z] [visit_id z] not free -[visit_exp (ai = {`TYPE`{deftype#10} $type(z, x), `FIELDS`{`fieldval*#5`} $packfield_(zt, val)^n{val <- `val*`}})] +[visit_exp (ai = {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`}})] [visit_exp ai] [visit_id ai] not free -[visit_exp {`TYPE`{deftype#10} $type(z, x), `FIELDS`{`fieldval*#5`} $packfield_(zt, val)^n{val <- `val*`}}] -[visit_exp deftype#10] -[visit_id deftype#10] +[visit_exp {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`}}] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `fieldval*#5`] -[visit_id fieldval*#5] [visit_exp $packfield_(zt, val)^n{val <- `val*`}] [scope_enter val] [visit_exp $packfield_(zt, val)] @@ -62074,41 +51166,27 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] not free [visit_id val*] no dims -[check_dims] elemidx#27 i i#40752 i#40794 instr*#1878 n numtype#373 numtype#375 ref*#18 state#1763 typeidx#1581 x y z -[visit_exp `%;%`_config{state#1763, `instr*#1878`}(z, [`CONST`_instr{numtype#373}(`I32`_numtype, i) `CONST`_instr{numtype#375}(`I32`_numtype, `%`_num_{i#40752}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1581, elemidx#27}(x, y)])] -[visit_exp state#1763] -[visit_id state#1763] -[visit_exp `instr*#1878`] -[visit_id instr*#1878] -[visit_exp (z, [`CONST`_instr{numtype#373}(`I32`_numtype, i) `CONST`_instr{numtype#375}(`I32`_numtype, `%`_num_{i#40752}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1581, elemidx#27}(x, y)])] +[check_dims] i n x y z +[visit_exp `%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)])] +[visit_exp (z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#373}(`I32`_numtype, i) `CONST`_instr{numtype#375}(`I32`_numtype, `%`_num_{i#40752}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1581, elemidx#27}(x, y)]] -[visit_exp `CONST`_instr{numtype#373}(`I32`_numtype, i)] -[visit_exp numtype#373] -[visit_id numtype#373] +[visit_exp [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)]] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#375}(`I32`_numtype, `%`_num_{i#40752}(n))] -[visit_exp numtype#375] -[visit_id numtype#375] -[visit_exp (`I32`_numtype, `%`_num_{i#40752}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#40752}(n)] -[visit_exp i#40752] -[visit_id i#40752] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.NEW_ELEM`_instr{typeidx#1581, elemidx#27}(x, y)] -[visit_exp typeidx#1581] -[visit_id typeidx#1581] -[visit_exp elemidx#27] -[visit_id elemidx#27] +[visit_exp `ARRAY.NEW_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -62117,66 +51195,48 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp ((i!`%`_num_{i#40794}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#18`}|)] -[visit_exp (i!`%`_num_{i#40794}.0 + n)] -[visit_exp i!`%`_num_{i#40794}.0] -[visit_exp i!`%`_num_{i#40794}] +[visit_exp ((i!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|)] +[visit_exp (i!`%`_num_.0 + n)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#40794] -[visit_id i#40794] [visit_exp n] [visit_id n] not free -[visit_exp |$elem(z, y).`REFS`_eleminst{`ref*#18`}|] -[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#18`}] +[visit_exp |$elem(z, y).`REFS`_eleminst|] +[visit_exp $elem(z, y).`REFS`_eleminst] [visit_exp $elem(z, y)] [visit_exp z] [visit_id z] not free [visit_exp y] [visit_id y] not free -[visit_exp `ref*#18`] -[visit_id ref*#18] -[check_dims] elemidx#29 i i#40844 i#40910 i#40932 instr*#1890 n numtype#377 numtype#379 ref ref*#19 state#1775 typeidx#1583 typeidx#1585 u32#31 x y z -[visit_exp `%;%`_config{state#1775, `instr*#1890`}(z, [`CONST`_instr{numtype#377}(`I32`_numtype, i) `CONST`_instr{numtype#379}(`I32`_numtype, `%`_num_{i#40844}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1583, elemidx#29}(x, y)])] -[visit_exp state#1775] -[visit_id state#1775] -[visit_exp `instr*#1890`] -[visit_id instr*#1890] -[visit_exp (z, [`CONST`_instr{numtype#377}(`I32`_numtype, i) `CONST`_instr{numtype#379}(`I32`_numtype, `%`_num_{i#40844}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1583, elemidx#29}(x, y)])] +[check_dims] i n ref x y z +[visit_exp `%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)])] +[visit_exp (z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#377}(`I32`_numtype, i) `CONST`_instr{numtype#379}(`I32`_numtype, `%`_num_{i#40844}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1583, elemidx#29}(x, y)]] -[visit_exp `CONST`_instr{numtype#377}(`I32`_numtype, i)] -[visit_exp numtype#377] -[visit_id numtype#377] +[visit_exp [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)]] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#379}(`I32`_numtype, `%`_num_{i#40844}(n))] -[visit_exp numtype#379] -[visit_id numtype#379] -[visit_exp (`I32`_numtype, `%`_num_{i#40844}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#40844}(n)] -[visit_exp i#40844] -[visit_id i#40844] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.NEW_ELEM`_instr{typeidx#1583, elemidx#29}(x, y)] -[visit_exp typeidx#1583] -[visit_id typeidx#1583] -[visit_exp elemidx#29] -[visit_id elemidx#29] +[visit_exp `ARRAY.NEW_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp (ref : ref <: instr)^n{ref <- `ref*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1585, u32#31}(x, `%`_u32{i#40910}(n))]] +[visit_exp (ref : ref <: instr)^n{ref <- `ref*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] [visit_exp (ref : ref <: instr)^n{ref <- `ref*`}] [scope_enter ref] [visit_exp (ref : ref <: instr)] @@ -62189,22 +51249,16 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `ref*`] [visit_id ref*] no dims [visit_id ref*] -[visit_exp [`ARRAY.NEW_FIXED`_instr{typeidx#1585, u32#31}(x, `%`_u32{i#40910}(n))]] -[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#1585, u32#31}(x, `%`_u32{i#40910}(n))] -[visit_exp typeidx#1585] -[visit_id typeidx#1585] -[visit_exp u32#31] -[visit_id u32#31] -[visit_exp (x, `%`_u32{i#40910}(n))] -[visit_exp x] -[visit_id x] not free -[visit_exp `%`_u32{i#40910}(n)] -[visit_exp i#40910] -[visit_id i#40910] +[visit_exp [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] +[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] +[visit_exp (x, `%`_u32(n))] +[visit_exp x] +[visit_id x] not free +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[visit_exp (ref^n{ref <- `ref*`} = $elem(z, y).`REFS`_eleminst{`ref*#19`}[i!`%`_num_{i#40932}.0 : n])] +[visit_exp (ref^n{ref <- `ref*`} = $elem(z, y).`REFS`_eleminst[i!`%`_num_.0 : n])] [visit_exp ref^n{ref <- `ref*`}] [scope_enter ref] [visit_exp ref] @@ -62216,58 +51270,40 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `ref*`] [visit_id ref*] not free [visit_id ref*] no dims -[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#19`}[i!`%`_num_{i#40932}.0 : n]] -[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#19`}] +[visit_exp $elem(z, y).`REFS`_eleminst[i!`%`_num_.0 : n]] +[visit_exp $elem(z, y).`REFS`_eleminst] [visit_exp $elem(z, y)] [visit_exp z] [visit_id z] not free [visit_exp y] [visit_id y] not free -[visit_exp `ref*#19`] -[visit_id ref*#19] -[visit_exp i!`%`_num_{i#40932}.0] -[visit_exp i!`%`_num_{i#40932}] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#40932] -[visit_id i#40932] [visit_exp n] [visit_id n] not free -[check_dims] byte*#1875 dataidx#27 fieldtype#43 i i#40970 i#41024 instr*#1902 mut mut?#1121 n numtype#381 numtype#383 state#1787 storagetype#659 typeidx#1587 x y z zt -[visit_exp `%;%`_config{state#1787, `instr*#1902`}(z, [`CONST`_instr{numtype#381}(`I32`_numtype, i) `CONST`_instr{numtype#383}(`I32`_numtype, `%`_num_{i#40970}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1587, dataidx#27}(x, y)])] -[visit_exp state#1787] -[visit_id state#1787] -[visit_exp `instr*#1902`] -[visit_id instr*#1902] -[visit_exp (z, [`CONST`_instr{numtype#381}(`I32`_numtype, i) `CONST`_instr{numtype#383}(`I32`_numtype, `%`_num_{i#40970}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1587, dataidx#27}(x, y)])] +[check_dims] i mut n x y z zt +[visit_exp `%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)])] +[visit_exp (z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#381}(`I32`_numtype, i) `CONST`_instr{numtype#383}(`I32`_numtype, `%`_num_{i#40970}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1587, dataidx#27}(x, y)]] -[visit_exp `CONST`_instr{numtype#381}(`I32`_numtype, i)] -[visit_exp numtype#381] -[visit_id numtype#381] +[visit_exp [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)]] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#383}(`I32`_numtype, `%`_num_{i#40970}(n))] -[visit_exp numtype#383] -[visit_id numtype#383] -[visit_exp (`I32`_numtype, `%`_num_{i#40970}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#40970}(n)] -[visit_exp i#40970] -[visit_id i#40970] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.NEW_DATA`_instr{typeidx#1587, dataidx#27}(x, y)] -[visit_exp typeidx#1587] -[visit_id typeidx#1587] -[visit_exp dataidx#27] -[visit_id dataidx#27] +[visit_exp `ARRAY.NEW_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -62276,21 +51312,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#43}(`%%`_fieldtype{`mut?#1121`, storagetype#659}(mut?{mut <- `mut?`}, zt)))] +[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ARRAY`_comptype{fieldtype#43}(`%%`_fieldtype{`mut?#1121`, storagetype#659}(mut?{mut <- `mut?`}, zt))] -[visit_exp fieldtype#43] -[visit_id fieldtype#43] -[visit_exp (`%%`_fieldtype{`mut?#1121`, storagetype#659}(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype{`mut?#1121`, storagetype#659}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#1121`] -[visit_id mut?#1121] -[visit_exp storagetype#659] -[visit_id storagetype#659] +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -62303,14 +51333,12 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id mut?] [visit_exp zt] [visit_id zt] -[visit_exp ((i!`%`_num_{i#41024}.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst{`byte*#1875`}|)] -[visit_exp (i!`%`_num_{i#41024}.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp i!`%`_num_{i#41024}.0] -[visit_exp i!`%`_num_{i#41024}] +[visit_exp ((i!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst|)] +[visit_exp (i!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#41024] -[visit_id i#41024] [visit_exp ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ((n * $zsize(zt)) : nat <:> rat)] @@ -62322,56 +51350,40 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id zt] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp |$data(z, y).`BYTES`_datainst{`byte*#1875`}|] -[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1875`}] +[visit_exp |$data(z, y).`BYTES`_datainst|] +[visit_exp $data(z, y).`BYTES`_datainst] [visit_exp $data(z, y)] [visit_exp z] [visit_id z] not free [visit_exp y] [visit_id y] not free -[visit_exp `byte*#1875`] -[visit_id byte*#1875] -[check_dims] byte*#1876 c dataidx#29 fieldtype#45 i i#41074 i#41140 i#41174 instr*#1914 mut mut?#1133 n numtype#385 numtype#387 state#1799 storagetype#671 typeidx#1589 typeidx#1591 u32#33 x y z zt -[visit_exp `%;%`_config{state#1799, `instr*#1914`}(z, [`CONST`_instr{numtype#385}(`I32`_numtype, i) `CONST`_instr{numtype#387}(`I32`_numtype, `%`_num_{i#41074}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1589, dataidx#29}(x, y)])] -[visit_exp state#1799] -[visit_id state#1799] -[visit_exp `instr*#1914`] -[visit_id instr*#1914] -[visit_exp (z, [`CONST`_instr{numtype#385}(`I32`_numtype, i) `CONST`_instr{numtype#387}(`I32`_numtype, `%`_num_{i#41074}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1589, dataidx#29}(x, y)])] +[check_dims] c i mut n x y z zt +[visit_exp `%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)])] +[visit_exp (z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`CONST`_instr{numtype#385}(`I32`_numtype, i) `CONST`_instr{numtype#387}(`I32`_numtype, `%`_num_{i#41074}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1589, dataidx#29}(x, y)]] -[visit_exp `CONST`_instr{numtype#385}(`I32`_numtype, i)] -[visit_exp numtype#385] -[visit_id numtype#385] +[visit_exp [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)]] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#387}(`I32`_numtype, `%`_num_{i#41074}(n))] -[visit_exp numtype#387] -[visit_id numtype#387] -[visit_exp (`I32`_numtype, `%`_num_{i#41074}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#41074}(n)] -[visit_exp i#41074] -[visit_id i#41074] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.NEW_DATA`_instr{typeidx#1589, dataidx#29}(x, y)] -[visit_exp typeidx#1589] -[visit_id typeidx#1589] -[visit_exp dataidx#29] -[visit_id dataidx#29] +[visit_exp `ARRAY.NEW_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp $const($cunpack(zt), $cunpacknum_(zt, c))^n{c <- `c*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1591, u32#33}(x, `%`_u32{i#41140}(n))]] +[visit_exp $const($cunpack(zt), $cunpacknum_(zt, c))^n{c <- `c*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] [visit_exp $const($cunpack(zt), $cunpacknum_(zt, c))^n{c <- `c*`}] [scope_enter c] [visit_exp $const($cunpack(zt), $cunpacknum_(zt, c))] @@ -62390,36 +51402,24 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp [`ARRAY.NEW_FIXED`_instr{typeidx#1591, u32#33}(x, `%`_u32{i#41140}(n))]] -[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#1591, u32#33}(x, `%`_u32{i#41140}(n))] -[visit_exp typeidx#1591] -[visit_id typeidx#1591] -[visit_exp u32#33] -[visit_id u32#33] -[visit_exp (x, `%`_u32{i#41140}(n))] -[visit_exp x] -[visit_id x] not free -[visit_exp `%`_u32{i#41140}(n)] -[visit_exp i#41140] -[visit_id i#41140] +[visit_exp [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] +[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] +[visit_exp (x, `%`_u32(n))] +[visit_exp x] +[visit_id x] not free +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#45}(`%%`_fieldtype{`mut?#1133`, storagetype#671}(mut?{mut <- `mut?`}, zt)))] +[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ARRAY`_comptype{fieldtype#45}(`%%`_fieldtype{`mut?#1133`, storagetype#671}(mut?{mut <- `mut?`}, zt))] -[visit_exp fieldtype#45] -[visit_id fieldtype#45] -[visit_exp (`%%`_fieldtype{`mut?#1133`, storagetype#671}(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype{`mut?#1133`, storagetype#671}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#1133`] -[visit_id mut?#1133] -[visit_exp storagetype#671] -[visit_id storagetype#671] +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -62432,7 +51432,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id mut?] [visit_exp zt] [visit_id zt] not free -[visit_exp ($concatn_(syntax byte, $zbytes_(zt, c)^n{c <- `c*`}, ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) = $data(z, y).`BYTES`_datainst{`byte*#1876`}[i!`%`_num_{i#41174}.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp ($concatn_(syntax byte, $zbytes_(zt, c)^n{c <- `c*`}, ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) = $data(z, y).`BYTES`_datainst[i!`%`_num_.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] [visit_exp $concatn_(syntax byte, $zbytes_(zt, c)^n{c <- `c*`}, ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] [visit_exp $zbytes_(zt, c)^n{c <- `c*`}] [scope_enter c] @@ -62456,21 +51456,17 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id zt] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1876`}[i!`%`_num_{i#41174}.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1876`}] +[visit_exp $data(z, y).`BYTES`_datainst[i!`%`_num_.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $data(z, y).`BYTES`_datainst] [visit_exp $data(z, y)] [visit_exp z] [visit_id z] not free [visit_exp y] [visit_id y] not free -[visit_exp `byte*#1876`] -[visit_id byte*#1876] -[visit_exp i!`%`_num_{i#41174}.0] -[visit_exp i!`%`_num_{i#41174}] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#41174] -[visit_id i#41174] [visit_exp ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ((n * $zsize(zt)) : nat <:> rat)] @@ -62482,35 +51478,23 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id zt] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[check_dims] heaptype#1433 ht i instr*#1926 numtype#389 state#1811 sx sx?#17 typeidx#1593 x z -[visit_exp `%;%`_config{state#1811, `instr*#1926`}(z, [`REF.NULL`_instr{heaptype#1433}(ht) `CONST`_instr{numtype#389}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#17`, typeidx#1593}(sx?{sx <- `sx?`}, x)])] -[visit_exp state#1811] -[visit_id state#1811] -[visit_exp `instr*#1926`] -[visit_id instr*#1926] -[visit_exp (z, [`REF.NULL`_instr{heaptype#1433}(ht) `CONST`_instr{numtype#389}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#17`, typeidx#1593}(sx?{sx <- `sx?`}, x)])] +[check_dims] ht i sx x z +[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)])] +[visit_exp (z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.NULL`_instr{heaptype#1433}(ht) `CONST`_instr{numtype#389}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#17`, typeidx#1593}(sx?{sx <- `sx?`}, x)]] -[visit_exp `REF.NULL`_instr{heaptype#1433}(ht)] -[visit_exp heaptype#1433] -[visit_id heaptype#1433] +[visit_exp [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[visit_exp `CONST`_instr{numtype#389}(`I32`_numtype, i)] -[visit_exp numtype#389] -[visit_id numtype#389] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `ARRAY.GET`_instr{`sx?#17`, typeidx#1593}(sx?{sx <- `sx?`}, x)] -[visit_exp `sx?#17`] -[visit_id sx?#17] -[visit_exp typeidx#1593] -[visit_id typeidx#1593] +[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)] [visit_exp (sx?{sx <- `sx?`}, x)] [visit_exp sx?{sx <- `sx?`}] [scope_enter sx] @@ -62526,35 +51510,23 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] a arrayaddr#5 fieldval*#6 i i#41392 instr*#1938 numtype#391 state#1823 sx sx?#19 typeidx#1595 x z -[visit_exp `%;%`_config{state#1823, `instr*#1938`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#5}(a) `CONST`_instr{numtype#391}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#19`, typeidx#1595}(sx?{sx <- `sx?`}, x)])] -[visit_exp state#1823] -[visit_id state#1823] -[visit_exp `instr*#1938`] -[visit_id instr*#1938] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#5}(a) `CONST`_instr{numtype#391}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#19`, typeidx#1595}(sx?{sx <- `sx?`}, x)])] +[check_dims] a i sx x z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#5}(a) `CONST`_instr{numtype#391}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#19`, typeidx#1595}(sx?{sx <- `sx?`}, x)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#5}(a)] -[visit_exp arrayaddr#5] -[visit_id arrayaddr#5] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#391}(`I32`_numtype, i)] -[visit_exp numtype#391] -[visit_id numtype#391] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `ARRAY.GET`_instr{`sx?#19`, typeidx#1595}(sx?{sx <- `sx?`}, x)] -[visit_exp `sx?#19`] -[visit_id sx?#19] -[visit_exp typeidx#1595] -[visit_id typeidx#1595] +[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)] [visit_exp (sx?{sx <- `sx?`}, x)] [visit_exp sx?{sx <- `sx?`}] [scope_enter sx] @@ -62570,52 +51542,36 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (i!`%`_num_{i#41392}.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#6`}|)] -[visit_exp i!`%`_num_{i#41392}.0] -[visit_exp i!`%`_num_{i#41392}] +[visit_exp (i!`%`_num_.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst|)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#41392] -[visit_id i#41392] -[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#6`}|] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#6`}] +[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst|] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] [visit_exp $arrayinst(z)[a]] [visit_exp $arrayinst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp `fieldval*#6`] -[visit_id fieldval*#6] -[check_dims] a arrayaddr#7 fieldtype#47 fieldval*#7 i i#41467 instr*#1950 mut mut?#1145 numtype#393 state#1835 storagetype#683 sx sx?#21 typeidx#1597 x z zt -[visit_exp `%;%`_config{state#1835, `instr*#1950`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#7}(a) `CONST`_instr{numtype#393}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#21`, typeidx#1597}(sx?{sx <- `sx?`}, x)])] -[visit_exp state#1835] -[visit_id state#1835] -[visit_exp `instr*#1950`] -[visit_id instr*#1950] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#7}(a) `CONST`_instr{numtype#393}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#21`, typeidx#1597}(sx?{sx <- `sx?`}, x)])] +[check_dims] a i mut sx x z zt +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#7}(a) `CONST`_instr{numtype#393}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#21`, typeidx#1597}(sx?{sx <- `sx?`}, x)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#7}(a)] -[visit_exp arrayaddr#7] -[visit_id arrayaddr#7] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#393}(`I32`_numtype, i)] -[visit_exp numtype#393] -[visit_id numtype#393] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `ARRAY.GET`_instr{`sx?#21`, typeidx#1597}(sx?{sx <- `sx?`}, x)] -[visit_exp `sx?#21`] -[visit_id sx?#21] -[visit_exp typeidx#1597] -[visit_id typeidx#1597] +[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)] [visit_exp (sx?{sx <- `sx?`}, x)] [visit_exp sx?{sx <- `sx?`}] [scope_enter sx] @@ -62628,9 +51584,9 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id sx?] [visit_exp x] [visit_id x] -[visit_exp [($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#7`}[i!`%`_num_{i#41467}.0]) : val <: instr)]] -[visit_exp ($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#7`}[i!`%`_num_{i#41467}.0]) : val <: instr)] -[visit_exp $unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#7`}[i!`%`_num_{i#41467}.0])] +[visit_exp [($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst[i!`%`_num_.0]) : val <: instr)]] +[visit_exp ($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst[i!`%`_num_.0]) : val <: instr)] +[visit_exp $unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst[i!`%`_num_.0])] [visit_exp zt] [visit_id zt] [visit_exp sx?{sx <- `sx?`}] @@ -62642,37 +51598,27 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `sx?`] [visit_id sx?] not free [visit_id sx?] no dims -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#7`}[i!`%`_num_{i#41467}.0]] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#7`}] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst[i!`%`_num_.0]] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] [visit_exp $arrayinst(z)[a]] [visit_exp $arrayinst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp `fieldval*#7`] -[visit_id fieldval*#7] -[visit_exp i!`%`_num_{i#41467}.0] -[visit_exp i!`%`_num_{i#41467}] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#41467] -[visit_id i#41467] -[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#47}(`%%`_fieldtype{`mut?#1145`, storagetype#683}(mut?{mut <- `mut?`}, zt)))] +[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ARRAY`_comptype{fieldtype#47}(`%%`_fieldtype{`mut?#1145`, storagetype#683}(mut?{mut <- `mut?`}, zt))] -[visit_exp fieldtype#47] -[visit_id fieldtype#47] -[visit_exp (`%%`_fieldtype{`mut?#1145`, storagetype#683}(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype{`mut?#1145`, storagetype#683}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#1145`] -[visit_id mut?#1145] -[visit_exp storagetype#683] -[visit_id storagetype#683] +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -62685,25 +51631,17 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id mut?] [visit_exp zt] [visit_id zt] not free -[check_dims] heaptype#1435 ht i instr*#1962 instr*#1974 numtype#395 state#1847 state#1859 typeidx#1599 val x z -[visit_exp `%;%`_config{state#1847, `instr*#1962`}(z, [`REF.NULL`_instr{heaptype#1435}(ht) `CONST`_instr{numtype#395}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1599}(x)])] -[visit_exp state#1847] -[visit_id state#1847] -[visit_exp `instr*#1962`] -[visit_id instr*#1962] -[visit_exp (z, [`REF.NULL`_instr{heaptype#1435}(ht) `CONST`_instr{numtype#395}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1599}(x)])] +[check_dims] ht i val x z +[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)])] +[visit_exp (z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.NULL`_instr{heaptype#1435}(ht) `CONST`_instr{numtype#395}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1599}(x)]] -[visit_exp `REF.NULL`_instr{heaptype#1435}(ht)] -[visit_exp heaptype#1435] -[visit_id heaptype#1435] +[visit_exp [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[visit_exp `CONST`_instr{numtype#395}(`I32`_numtype, i)] -[visit_exp numtype#395] -[visit_id numtype#395] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -62712,42 +51650,28 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `ARRAY.SET`_instr{typeidx#1599}(x)] -[visit_exp typeidx#1599] -[visit_id typeidx#1599] +[visit_exp `ARRAY.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#1859, `instr*#1974`}(z, [`TRAP`_instr])] -[visit_exp state#1859] -[visit_id state#1859] -[visit_exp `instr*#1974`] -[visit_id instr*#1974] +[visit_exp `%;%`_config(z, [`TRAP`_instr])] [visit_exp (z, [`TRAP`_instr])] [visit_exp z] [visit_id z] not free [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] a arrayaddr#9 fieldval*#8 i i#41549 instr*#1986 instr*#1998 numtype#397 state#1871 state#1883 typeidx#1601 val x z -[visit_exp `%;%`_config{state#1871, `instr*#1986`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#9}(a) `CONST`_instr{numtype#397}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1601}(x)])] -[visit_exp state#1871] -[visit_id state#1871] -[visit_exp `instr*#1986`] -[visit_id instr*#1986] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#9}(a) `CONST`_instr{numtype#397}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1601}(x)])] +[check_dims] a i val x z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#9}(a) `CONST`_instr{numtype#397}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1601}(x)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#9}(a)] -[visit_exp arrayaddr#9] -[visit_id arrayaddr#9] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#397}(`I32`_numtype, i)] -[visit_exp numtype#397] -[visit_id numtype#397] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -62756,59 +51680,41 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `ARRAY.SET`_instr{typeidx#1601}(x)] -[visit_exp typeidx#1601] -[visit_id typeidx#1601] +[visit_exp `ARRAY.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#1883, `instr*#1998`}(z, [`TRAP`_instr])] -[visit_exp state#1883] -[visit_id state#1883] -[visit_exp `instr*#1998`] -[visit_id instr*#1998] +[visit_exp `%;%`_config(z, [`TRAP`_instr])] [visit_exp (z, [`TRAP`_instr])] [visit_exp z] [visit_id z] not free [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp (i!`%`_num_{i#41549}.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#8`}|)] -[visit_exp i!`%`_num_{i#41549}.0] -[visit_exp i!`%`_num_{i#41549}] +[visit_exp (i!`%`_num_.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst|)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#41549] -[visit_id i#41549] -[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#8`}|] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#8`}] +[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst|] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] [visit_exp $arrayinst(z)[a]] [visit_exp $arrayinst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp `fieldval*#8`] -[visit_id fieldval*#8] -[check_dims] a arrayaddr#11 fieldtype#49 i i#41587 instr*#2010 instr*#2022 mut mut?#1157 numtype#399 state#1895 state#1907 storagetype#695 typeidx#1603 val x z zt -[visit_exp `%;%`_config{state#1895, `instr*#2010`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#11}(a) `CONST`_instr{numtype#399}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1603}(x)])] -[visit_exp state#1895] -[visit_id state#1895] -[visit_exp `instr*#2010`] -[visit_id instr*#2010] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#11}(a) `CONST`_instr{numtype#399}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1603}(x)])] +[check_dims] a i mut val x z zt +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#11}(a) `CONST`_instr{numtype#399}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1603}(x)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#11}(a)] -[visit_exp arrayaddr#11] -[visit_id arrayaddr#11] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#399}(`I32`_numtype, i)] -[visit_exp numtype#399] -[visit_id numtype#399] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -62817,50 +51723,36 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `ARRAY.SET`_instr{typeidx#1603}(x)] -[visit_exp typeidx#1603] -[visit_id typeidx#1603] +[visit_exp `ARRAY.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%;%`_config{state#1907, `instr*#2022`}($with_array(z, a, i!`%`_num_{i#41587}.0, $packfield_(zt, val)), [])] -[visit_exp state#1907] -[visit_id state#1907] -[visit_exp `instr*#2022`] -[visit_id instr*#2022] -[visit_exp ($with_array(z, a, i!`%`_num_{i#41587}.0, $packfield_(zt, val)), [])] -[visit_exp $with_array(z, a, i!`%`_num_{i#41587}.0, $packfield_(zt, val))] +[visit_exp `%;%`_config($with_array(z, a, i!`%`_num_.0, $packfield_(zt, val)), [])] +[visit_exp ($with_array(z, a, i!`%`_num_.0, $packfield_(zt, val)), [])] +[visit_exp $with_array(z, a, i!`%`_num_.0, $packfield_(zt, val))] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp i!`%`_num_{i#41587}.0] -[visit_exp i!`%`_num_{i#41587}] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#41587] -[visit_id i#41587] [visit_exp $packfield_(zt, val)] [visit_exp zt] [visit_id zt] [visit_exp val] [visit_id val] not free [visit_exp []] -[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#49}(`%%`_fieldtype{`mut?#1157`, storagetype#695}(mut?{mut <- `mut?`}, zt)))] +[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ARRAY`_comptype{fieldtype#49}(`%%`_fieldtype{`mut?#1157`, storagetype#695}(mut?{mut <- `mut?`}, zt))] -[visit_exp fieldtype#49] -[visit_id fieldtype#49] -[visit_exp (`%%`_fieldtype{`mut?#1157`, storagetype#695}(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype{`mut?#1157`, storagetype#695}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#1157`] -[visit_id mut?#1157] -[visit_exp storagetype#695] -[visit_id storagetype#695] +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -62873,19 +51765,13 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id mut?] [visit_exp zt] [visit_id zt] not free -[check_dims] heaptype#1437 ht instr*#2034 state#1919 z -[visit_exp `%;%`_config{state#1919, `instr*#2034`}(z, [`REF.NULL`_instr{heaptype#1437}(ht) `ARRAY.LEN`_instr])] -[visit_exp state#1919] -[visit_id state#1919] -[visit_exp `instr*#2034`] -[visit_id instr*#2034] -[visit_exp (z, [`REF.NULL`_instr{heaptype#1437}(ht) `ARRAY.LEN`_instr])] +[check_dims] ht z +[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `ARRAY.LEN`_instr])] +[visit_exp (z, [`REF.NULL`_instr(ht) `ARRAY.LEN`_instr])] [visit_exp z] [visit_id z] -[visit_exp [`REF.NULL`_instr{heaptype#1437}(ht) `ARRAY.LEN`_instr]] -[visit_exp `REF.NULL`_instr{heaptype#1437}(ht)] -[visit_exp heaptype#1437] -[visit_id heaptype#1437] +[visit_exp [`REF.NULL`_instr(ht) `ARRAY.LEN`_instr]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] @@ -62894,64 +51780,44 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] a arrayaddr#13 fieldval*#9 i#41621 instr*#2046 numtype#401 state#1931 z -[visit_exp `%;%`_config{state#1931, `instr*#2046`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#13}(a) `ARRAY.LEN`_instr])] -[visit_exp state#1931] -[visit_id state#1931] -[visit_exp `instr*#2046`] -[visit_id instr*#2046] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#13}(a) `ARRAY.LEN`_instr])] +[check_dims] a z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `ARRAY.LEN`_instr])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `ARRAY.LEN`_instr])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#13}(a) `ARRAY.LEN`_instr]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#13}(a)] -[visit_exp arrayaddr#13] -[visit_id arrayaddr#13] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `ARRAY.LEN`_instr]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] [visit_exp `ARRAY.LEN`_instr] [visit_exp ()] -[visit_exp [`CONST`_instr{numtype#401}(`I32`_numtype, `%`_num_{i#41621}(|$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|))]] -[visit_exp `CONST`_instr{numtype#401}(`I32`_numtype, `%`_num_{i#41621}(|$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|))] -[visit_exp numtype#401] -[visit_id numtype#401] -[visit_exp (`I32`_numtype, `%`_num_{i#41621}(|$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|))] +[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(|$arrayinst(z)[a].`FIELDS`_arrayinst|))]] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(|$arrayinst(z)[a].`FIELDS`_arrayinst|))] +[visit_exp (`I32`_numtype, `%`_num_(|$arrayinst(z)[a].`FIELDS`_arrayinst|))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#41621}(|$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|)] -[visit_exp i#41621] -[visit_id i#41621] -[visit_exp (|$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|)] -[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}] +[visit_exp `%`_num_(|$arrayinst(z)[a].`FIELDS`_arrayinst|)] +[visit_exp (|$arrayinst(z)[a].`FIELDS`_arrayinst|)] +[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst|] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] [visit_exp $arrayinst(z)[a]] [visit_exp $arrayinst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp `fieldval*#9`] -[visit_id fieldval*#9] -[check_dims] heaptype#1439 ht i i#41659 instr*#2058 n numtype#403 numtype#405 state#1943 typeidx#1605 val x z -[visit_exp `%;%`_config{state#1943, `instr*#2058`}(z, [`REF.NULL`_instr{heaptype#1439}(ht) `CONST`_instr{numtype#403}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#405}(`I32`_numtype, `%`_num_{i#41659}(n)) `ARRAY.FILL`_instr{typeidx#1605}(x)])] -[visit_exp state#1943] -[visit_id state#1943] -[visit_exp `instr*#2058`] -[visit_id instr*#2058] -[visit_exp (z, [`REF.NULL`_instr{heaptype#1439}(ht) `CONST`_instr{numtype#403}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#405}(`I32`_numtype, `%`_num_{i#41659}(n)) `ARRAY.FILL`_instr{typeidx#1605}(x)])] +[check_dims] ht i n val x z +[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] +[visit_exp (z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.NULL`_instr{heaptype#1439}(ht) `CONST`_instr{numtype#403}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#405}(`I32`_numtype, `%`_num_{i#41659}(n)) `ARRAY.FILL`_instr{typeidx#1605}(x)]] -[visit_exp `REF.NULL`_instr{heaptype#1439}(ht)] -[visit_exp heaptype#1439] -[visit_id heaptype#1439] +[visit_exp [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[visit_exp `CONST`_instr{numtype#403}(`I32`_numtype, i)] -[visit_exp numtype#403] -[visit_id numtype#403] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -62960,46 +51826,32 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `CONST`_instr{numtype#405}(`I32`_numtype, `%`_num_{i#41659}(n))] -[visit_exp numtype#405] -[visit_id numtype#405] -[visit_exp (`I32`_numtype, `%`_num_{i#41659}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#41659}(n)] -[visit_exp i#41659] -[visit_id i#41659] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.FILL`_instr{typeidx#1605}(x)] -[visit_exp typeidx#1605] -[visit_id typeidx#1605] +[visit_exp `ARRAY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] a arrayaddr#15 fieldval*#10 i i#41711 i#41739 instr*#2070 n numtype#407 numtype#409 state#1955 typeidx#1607 val x z -[visit_exp `%;%`_config{state#1955, `instr*#2070`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#15}(a) `CONST`_instr{numtype#407}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#409}(`I32`_numtype, `%`_num_{i#41711}(n)) `ARRAY.FILL`_instr{typeidx#1607}(x)])] -[visit_exp state#1955] -[visit_id state#1955] -[visit_exp `instr*#2070`] -[visit_id instr*#2070] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#15}(a) `CONST`_instr{numtype#407}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#409}(`I32`_numtype, `%`_num_{i#41711}(n)) `ARRAY.FILL`_instr{typeidx#1607}(x)])] +[check_dims] a i n val x z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#15}(a) `CONST`_instr{numtype#407}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#409}(`I32`_numtype, `%`_num_{i#41711}(n)) `ARRAY.FILL`_instr{typeidx#1607}(x)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#15}(a)] -[visit_exp arrayaddr#15] -[visit_id arrayaddr#15] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#407}(`I32`_numtype, i)] -[visit_exp numtype#407] -[visit_id numtype#407] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -63008,66 +51860,48 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `CONST`_instr{numtype#409}(`I32`_numtype, `%`_num_{i#41711}(n))] -[visit_exp numtype#409] -[visit_id numtype#409] -[visit_exp (`I32`_numtype, `%`_num_{i#41711}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#41711}(n)] -[visit_exp i#41711] -[visit_id i#41711] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.FILL`_instr{typeidx#1607}(x)] -[visit_exp typeidx#1607] -[visit_id typeidx#1607] +[visit_exp `ARRAY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp ((i!`%`_num_{i#41739}.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#10`}|)] -[visit_exp (i!`%`_num_{i#41739}.0 + n)] -[visit_exp i!`%`_num_{i#41739}.0] -[visit_exp i!`%`_num_{i#41739}] +[visit_exp ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst|)] +[visit_exp (i!`%`_num_.0 + n)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#41739] -[visit_id i#41739] [visit_exp n] [visit_id n] not free -[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#10`}|] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#10`}] +[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst|] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] [visit_exp $arrayinst(z)[a]] [visit_exp $arrayinst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp `fieldval*#10`] -[visit_id fieldval*#10] -[check_dims] a arrayaddr#17 i i#41777 instr*#2082 n numtype#411 numtype#413 state#1967 typeidx#1609 val x z -[visit_exp `%;%`_config{state#1967, `instr*#2082`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#17}(a) `CONST`_instr{numtype#411}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#413}(`I32`_numtype, `%`_num_{i#41777}(n)) `ARRAY.FILL`_instr{typeidx#1609}(x)])] -[visit_exp state#1967] -[visit_id state#1967] -[visit_exp `instr*#2082`] -[visit_id instr*#2082] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#17}(a) `CONST`_instr{numtype#411}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#413}(`I32`_numtype, `%`_num_{i#41777}(n)) `ARRAY.FILL`_instr{typeidx#1609}(x)])] +[check_dims] a i n val x z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#17}(a) `CONST`_instr{numtype#411}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#413}(`I32`_numtype, `%`_num_{i#41777}(n)) `ARRAY.FILL`_instr{typeidx#1609}(x)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#17}(a)] -[visit_exp arrayaddr#17] -[visit_id arrayaddr#17] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#411}(`I32`_numtype, i)] -[visit_exp numtype#411] -[visit_id numtype#411] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -63076,21 +51910,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `CONST`_instr{numtype#413}(`I32`_numtype, `%`_num_{i#41777}(n))] -[visit_exp numtype#413] -[visit_id numtype#413] -[visit_exp (`I32`_numtype, `%`_num_{i#41777}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#41777}(n)] -[visit_exp i#41777] -[visit_id i#41777] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.FILL`_instr{typeidx#1609}(x)] -[visit_exp typeidx#1609] -[visit_id typeidx#1609] +[visit_exp `ARRAY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -63099,25 +51927,17 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp n] [visit_id n] not free [visit_exp 0] -[check_dims] a arrayaddr#19 arrayaddr#21 arrayaddr#23 i i#41829 i#41895 i#41905 i#41927 instr*#2094 n numtype#415 numtype#417 numtype#419 numtype#421 numtype#423 state#1979 typeidx#1611 typeidx#1613 typeidx#1615 val x z -[visit_exp `%;%`_config{state#1979, `instr*#2094`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#19}(a) `CONST`_instr{numtype#415}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#417}(`I32`_numtype, `%`_num_{i#41829}(n)) `ARRAY.FILL`_instr{typeidx#1611}(x)])] -[visit_exp state#1979] -[visit_id state#1979] -[visit_exp `instr*#2094`] -[visit_id instr*#2094] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#19}(a) `CONST`_instr{numtype#415}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#417}(`I32`_numtype, `%`_num_{i#41829}(n)) `ARRAY.FILL`_instr{typeidx#1611}(x)])] +[check_dims] a i n val x z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#19}(a) `CONST`_instr{numtype#415}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#417}(`I32`_numtype, `%`_num_{i#41829}(n)) `ARRAY.FILL`_instr{typeidx#1611}(x)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#19}(a)] -[visit_exp arrayaddr#19] -[visit_id arrayaddr#19] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#415}(`I32`_numtype, i)] -[visit_exp numtype#415] -[visit_id numtype#415] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -63126,34 +51946,24 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] -[visit_exp `CONST`_instr{numtype#417}(`I32`_numtype, `%`_num_{i#41829}(n))] -[visit_exp numtype#417] -[visit_id numtype#417] -[visit_exp (`I32`_numtype, `%`_num_{i#41829}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#41829}(n)] -[visit_exp i#41829] -[visit_id i#41829] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.FILL`_instr{typeidx#1611}(x)] -[visit_exp typeidx#1611] -[visit_id typeidx#1611] +[visit_exp `ARRAY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#21}(a) `CONST`_instr{numtype#419}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1613}(x) `REF.ARRAY_ADDR`_instr{arrayaddr#23}(a) `CONST`_instr{numtype#421}(`I32`_numtype, `%`_num_{i#41905}((i!`%`_num_{i#41895}.0 + 1))) (val : val <: instr) `CONST`_instr{numtype#423}(`I32`_numtype, `%`_num_{i#41927}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.FILL`_instr{typeidx#1615}(x)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#21}(a)] -[visit_exp arrayaddr#21] -[visit_id arrayaddr#21] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.FILL`_instr(x)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free -[visit_exp `CONST`_instr{numtype#419}(`I32`_numtype, i)] -[visit_exp numtype#419] -[visit_id numtype#419] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -63162,48 +51972,34 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] not free -[visit_exp `ARRAY.SET`_instr{typeidx#1613}(x)] -[visit_exp typeidx#1613] -[visit_id typeidx#1613] +[visit_exp `ARRAY.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#23}(a)] -[visit_exp arrayaddr#23] -[visit_id arrayaddr#23] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free -[visit_exp `CONST`_instr{numtype#421}(`I32`_numtype, `%`_num_{i#41905}((i!`%`_num_{i#41895}.0 + 1)))] -[visit_exp numtype#421] -[visit_id numtype#421] -[visit_exp (`I32`_numtype, `%`_num_{i#41905}((i!`%`_num_{i#41895}.0 + 1)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1)))] +[visit_exp (`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#41905}((i!`%`_num_{i#41895}.0 + 1))] -[visit_exp i#41905] -[visit_id i#41905] -[visit_exp ((i!`%`_num_{i#41895}.0 + 1))] -[visit_exp (i!`%`_num_{i#41895}.0 + 1)] -[visit_exp i!`%`_num_{i#41895}.0] -[visit_exp i!`%`_num_{i#41895}] +[visit_exp `%`_num_((i!`%`_num_.0 + 1))] +[visit_exp ((i!`%`_num_.0 + 1))] +[visit_exp (i!`%`_num_.0 + 1)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#41895] -[visit_id i#41895] [visit_exp 1] [visit_exp (val : val <: instr)] [visit_exp val] [visit_id val] not free -[visit_exp `CONST`_instr{numtype#423}(`I32`_numtype, `%`_num_{i#41927}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#423] -[visit_id numtype#423] -[visit_exp (`I32`_numtype, `%`_num_{i#41927}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#41927}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#41927] -[visit_id i#41927] +[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - (1 : nat <:> int))] @@ -63212,31 +52008,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `ARRAY.FILL`_instr{typeidx#1615}(x)] -[visit_exp typeidx#1615] -[visit_id typeidx#1615] +[visit_exp `ARRAY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[check_dims] heaptype#1441 ht_1 i#41993 i_1 i_2 instr*#2106 n numtype#425 numtype#427 numtype#429 ref state#1991 typeidx#1617 x_1 x_2 z -[visit_exp `%;%`_config{state#1991, `instr*#2106`}(z, [`REF.NULL`_instr{heaptype#1441}(ht_1) `CONST`_instr{numtype#425}(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr{numtype#427}(`I32`_numtype, i_2) `CONST`_instr{numtype#429}(`I32`_numtype, `%`_num_{i#41993}(n)) `ARRAY.COPY`_instr{typeidx#1617}(x_1, x_2)])] -[visit_exp state#1991] -[visit_id state#1991] -[visit_exp `instr*#2106`] -[visit_id instr*#2106] -[visit_exp (z, [`REF.NULL`_instr{heaptype#1441}(ht_1) `CONST`_instr{numtype#425}(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr{numtype#427}(`I32`_numtype, i_2) `CONST`_instr{numtype#429}(`I32`_numtype, `%`_num_{i#41993}(n)) `ARRAY.COPY`_instr{typeidx#1617}(x_1, x_2)])] +[check_dims] ht_1 i_1 i_2 n ref x_1 x_2 z +[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht_1) `CONST`_instr(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] +[visit_exp (z, [`REF.NULL`_instr(ht_1) `CONST`_instr(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.NULL`_instr{heaptype#1441}(ht_1) `CONST`_instr{numtype#425}(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr{numtype#427}(`I32`_numtype, i_2) `CONST`_instr{numtype#429}(`I32`_numtype, `%`_num_{i#41993}(n)) `ARRAY.COPY`_instr{typeidx#1617}(x_1, x_2)]] -[visit_exp `REF.NULL`_instr{heaptype#1441}(ht_1)] -[visit_exp heaptype#1441] -[visit_id heaptype#1441] +[visit_exp [`REF.NULL`_instr(ht_1) `CONST`_instr(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] +[visit_exp `REF.NULL`_instr(ht_1)] [visit_exp (ht_1)] [visit_exp ht_1] [visit_id ht_1] -[visit_exp `CONST`_instr{numtype#425}(`I32`_numtype, i_1)] -[visit_exp numtype#425] -[visit_id numtype#425] +[visit_exp `CONST`_instr(`I32`_numtype, i_1)] [visit_exp (`I32`_numtype, i_1)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -63245,29 +52031,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `CONST`_instr{numtype#427}(`I32`_numtype, i_2)] -[visit_exp numtype#427] -[visit_id numtype#427] +[visit_exp `CONST`_instr(`I32`_numtype, i_2)] [visit_exp (`I32`_numtype, i_2)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#429}(`I32`_numtype, `%`_num_{i#41993}(n))] -[visit_exp numtype#429] -[visit_id numtype#429] -[visit_exp (`I32`_numtype, `%`_num_{i#41993}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#41993}(n)] -[visit_exp i#41993] -[visit_id i#41993] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.COPY`_instr{typeidx#1617}(x_1, x_2)] -[visit_exp typeidx#1617] -[visit_id typeidx#1617] +[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] @@ -63276,56 +52054,40 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] heaptype#1443 ht_2 i#42073 i_1 i_2 instr*#2118 n numtype#431 numtype#433 numtype#435 ref state#2003 typeidx#1620 x_1 x_2 z -[visit_exp `%;%`_config{state#2003, `instr*#2118`}(z, [(ref : ref <: instr) `CONST`_instr{numtype#431}(`I32`_numtype, i_1) `REF.NULL`_instr{heaptype#1443}(ht_2) `CONST`_instr{numtype#433}(`I32`_numtype, i_2) `CONST`_instr{numtype#435}(`I32`_numtype, `%`_num_{i#42073}(n)) `ARRAY.COPY`_instr{typeidx#1620}(x_1, x_2)])] -[visit_exp state#2003] -[visit_id state#2003] -[visit_exp `instr*#2118`] -[visit_id instr*#2118] -[visit_exp (z, [(ref : ref <: instr) `CONST`_instr{numtype#431}(`I32`_numtype, i_1) `REF.NULL`_instr{heaptype#1443}(ht_2) `CONST`_instr{numtype#433}(`I32`_numtype, i_2) `CONST`_instr{numtype#435}(`I32`_numtype, `%`_num_{i#42073}(n)) `ARRAY.COPY`_instr{typeidx#1620}(x_1, x_2)])] +[check_dims] ht_2 i_1 i_2 n ref x_1 x_2 z +[visit_exp `%;%`_config(z, [(ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_1) `REF.NULL`_instr(ht_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] +[visit_exp (z, [(ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_1) `REF.NULL`_instr(ht_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] [visit_exp z] [visit_id z] -[visit_exp [(ref : ref <: instr) `CONST`_instr{numtype#431}(`I32`_numtype, i_1) `REF.NULL`_instr{heaptype#1443}(ht_2) `CONST`_instr{numtype#433}(`I32`_numtype, i_2) `CONST`_instr{numtype#435}(`I32`_numtype, `%`_num_{i#42073}(n)) `ARRAY.COPY`_instr{typeidx#1620}(x_1, x_2)]] +[visit_exp [(ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_1) `REF.NULL`_instr(ht_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `CONST`_instr{numtype#431}(`I32`_numtype, i_1)] -[visit_exp numtype#431] -[visit_id numtype#431] +[visit_exp `CONST`_instr(`I32`_numtype, i_1)] [visit_exp (`I32`_numtype, i_1)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_1] [visit_id i_1] -[visit_exp `REF.NULL`_instr{heaptype#1443}(ht_2)] -[visit_exp heaptype#1443] -[visit_id heaptype#1443] +[visit_exp `REF.NULL`_instr(ht_2)] [visit_exp (ht_2)] [visit_exp ht_2] [visit_id ht_2] -[visit_exp `CONST`_instr{numtype#433}(`I32`_numtype, i_2)] -[visit_exp numtype#433] -[visit_id numtype#433] +[visit_exp `CONST`_instr(`I32`_numtype, i_2)] [visit_exp (`I32`_numtype, i_2)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#435}(`I32`_numtype, `%`_num_{i#42073}(n))] -[visit_exp numtype#435] -[visit_id numtype#435] -[visit_exp (`I32`_numtype, `%`_num_{i#42073}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#42073}(n)] -[visit_exp i#42073] -[visit_id i#42073] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.COPY`_instr{typeidx#1620}(x_1, x_2)] -[visit_exp typeidx#1620] -[visit_id typeidx#1620] +[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] @@ -63334,59 +52096,41 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] a_1 a_2 arrayaddr#25 arrayaddr#27 fieldval*#11 i#42153 i#42195 i_1 i_2 instr*#2130 n numtype#437 numtype#439 numtype#441 state#2015 typeidx#1623 x_1 x_2 z -[visit_exp `%;%`_config{state#2015, `instr*#2130`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#25}(a_1) `CONST`_instr{numtype#437}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#27}(a_2) `CONST`_instr{numtype#439}(`I32`_numtype, i_2) `CONST`_instr{numtype#441}(`I32`_numtype, `%`_num_{i#42153}(n)) `ARRAY.COPY`_instr{typeidx#1623}(x_1, x_2)])] -[visit_exp state#2015] -[visit_id state#2015] -[visit_exp `instr*#2130`] -[visit_id instr*#2130] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#25}(a_1) `CONST`_instr{numtype#437}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#27}(a_2) `CONST`_instr{numtype#439}(`I32`_numtype, i_2) `CONST`_instr{numtype#441}(`I32`_numtype, `%`_num_{i#42153}(n)) `ARRAY.COPY`_instr{typeidx#1623}(x_1, x_2)])] +[check_dims] a_1 a_2 i_1 i_2 n x_1 x_2 z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#25}(a_1) `CONST`_instr{numtype#437}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#27}(a_2) `CONST`_instr{numtype#439}(`I32`_numtype, i_2) `CONST`_instr{numtype#441}(`I32`_numtype, `%`_num_{i#42153}(n)) `ARRAY.COPY`_instr{typeidx#1623}(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#25}(a_1)] -[visit_exp arrayaddr#25] -[visit_id arrayaddr#25] +[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] [visit_exp (a_1)] [visit_exp a_1] [visit_id a_1] -[visit_exp `CONST`_instr{numtype#437}(`I32`_numtype, i_1)] -[visit_exp numtype#437] -[visit_id numtype#437] +[visit_exp `CONST`_instr(`I32`_numtype, i_1)] [visit_exp (`I32`_numtype, i_1)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_1] [visit_id i_1] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#27}(a_2)] -[visit_exp arrayaddr#27] -[visit_id arrayaddr#27] +[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] [visit_exp (a_2)] [visit_exp a_2] [visit_id a_2] -[visit_exp `CONST`_instr{numtype#439}(`I32`_numtype, i_2)] -[visit_exp numtype#439] -[visit_id numtype#439] +[visit_exp `CONST`_instr(`I32`_numtype, i_2)] [visit_exp (`I32`_numtype, i_2)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#441}(`I32`_numtype, `%`_num_{i#42153}(n))] -[visit_exp numtype#441] -[visit_id numtype#441] -[visit_exp (`I32`_numtype, `%`_num_{i#42153}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#42153}(n)] -[visit_exp i#42153] -[visit_id i#42153] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.COPY`_instr{typeidx#1623}(x_1, x_2)] -[visit_exp typeidx#1623] -[visit_id typeidx#1623] +[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] @@ -63395,79 +52139,57 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp ((i_1!`%`_num_{i#42195}.0 + n) > |$arrayinst(z)[a_1].`FIELDS`_arrayinst{`fieldval*#11`}|)] -[visit_exp (i_1!`%`_num_{i#42195}.0 + n)] -[visit_exp i_1!`%`_num_{i#42195}.0] -[visit_exp i_1!`%`_num_{i#42195}] +[visit_exp ((i_1!`%`_num_.0 + n) > |$arrayinst(z)[a_1].`FIELDS`_arrayinst|)] +[visit_exp (i_1!`%`_num_.0 + n)] +[visit_exp i_1!`%`_num_.0] +[visit_exp i_1!`%`_num_] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#42195] -[visit_id i#42195] [visit_exp n] [visit_id n] not free -[visit_exp |$arrayinst(z)[a_1].`FIELDS`_arrayinst{`fieldval*#11`}|] -[visit_exp $arrayinst(z)[a_1].`FIELDS`_arrayinst{`fieldval*#11`}] +[visit_exp |$arrayinst(z)[a_1].`FIELDS`_arrayinst|] +[visit_exp $arrayinst(z)[a_1].`FIELDS`_arrayinst] [visit_exp $arrayinst(z)[a_1]] [visit_exp $arrayinst(z)] [visit_exp z] [visit_id z] not free [visit_exp a_1] [visit_id a_1] not free -[visit_exp `fieldval*#11`] -[visit_id fieldval*#11] -[check_dims] a_1 a_2 arrayaddr#29 arrayaddr#31 fieldval*#12 i#42247 i#42289 i_1 i_2 instr*#2142 n numtype#443 numtype#445 numtype#447 state#2027 typeidx#1626 x_1 x_2 z -[visit_exp `%;%`_config{state#2027, `instr*#2142`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#29}(a_1) `CONST`_instr{numtype#443}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#31}(a_2) `CONST`_instr{numtype#445}(`I32`_numtype, i_2) `CONST`_instr{numtype#447}(`I32`_numtype, `%`_num_{i#42247}(n)) `ARRAY.COPY`_instr{typeidx#1626}(x_1, x_2)])] -[visit_exp state#2027] -[visit_id state#2027] -[visit_exp `instr*#2142`] -[visit_id instr*#2142] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#29}(a_1) `CONST`_instr{numtype#443}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#31}(a_2) `CONST`_instr{numtype#445}(`I32`_numtype, i_2) `CONST`_instr{numtype#447}(`I32`_numtype, `%`_num_{i#42247}(n)) `ARRAY.COPY`_instr{typeidx#1626}(x_1, x_2)])] +[check_dims] a_1 a_2 i_1 i_2 n x_1 x_2 z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#29}(a_1) `CONST`_instr{numtype#443}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#31}(a_2) `CONST`_instr{numtype#445}(`I32`_numtype, i_2) `CONST`_instr{numtype#447}(`I32`_numtype, `%`_num_{i#42247}(n)) `ARRAY.COPY`_instr{typeidx#1626}(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#29}(a_1)] -[visit_exp arrayaddr#29] -[visit_id arrayaddr#29] +[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] [visit_exp (a_1)] [visit_exp a_1] [visit_id a_1] -[visit_exp `CONST`_instr{numtype#443}(`I32`_numtype, i_1)] -[visit_exp numtype#443] -[visit_id numtype#443] +[visit_exp `CONST`_instr(`I32`_numtype, i_1)] [visit_exp (`I32`_numtype, i_1)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_1] [visit_id i_1] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#31}(a_2)] -[visit_exp arrayaddr#31] -[visit_id arrayaddr#31] +[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] [visit_exp (a_2)] [visit_exp a_2] [visit_id a_2] -[visit_exp `CONST`_instr{numtype#445}(`I32`_numtype, i_2)] -[visit_exp numtype#445] -[visit_id numtype#445] +[visit_exp `CONST`_instr(`I32`_numtype, i_2)] [visit_exp (`I32`_numtype, i_2)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#447}(`I32`_numtype, `%`_num_{i#42247}(n))] -[visit_exp numtype#447] -[visit_id numtype#447] -[visit_exp (`I32`_numtype, `%`_num_{i#42247}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#42247}(n)] -[visit_exp i#42247] -[visit_id i#42247] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.COPY`_instr{typeidx#1626}(x_1, x_2)] -[visit_exp typeidx#1626] -[visit_id typeidx#1626] +[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] @@ -63476,79 +52198,57 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp ((i_2!`%`_num_{i#42289}.0 + n) > |$arrayinst(z)[a_2].`FIELDS`_arrayinst{`fieldval*#12`}|)] -[visit_exp (i_2!`%`_num_{i#42289}.0 + n)] -[visit_exp i_2!`%`_num_{i#42289}.0] -[visit_exp i_2!`%`_num_{i#42289}] +[visit_exp ((i_2!`%`_num_.0 + n) > |$arrayinst(z)[a_2].`FIELDS`_arrayinst|)] +[visit_exp (i_2!`%`_num_.0 + n)] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#42289] -[visit_id i#42289] [visit_exp n] [visit_id n] not free -[visit_exp |$arrayinst(z)[a_2].`FIELDS`_arrayinst{`fieldval*#12`}|] -[visit_exp $arrayinst(z)[a_2].`FIELDS`_arrayinst{`fieldval*#12`}] +[visit_exp |$arrayinst(z)[a_2].`FIELDS`_arrayinst|] +[visit_exp $arrayinst(z)[a_2].`FIELDS`_arrayinst] [visit_exp $arrayinst(z)[a_2]] [visit_exp $arrayinst(z)] [visit_exp z] [visit_id z] not free [visit_exp a_2] [visit_id a_2] not free -[visit_exp `fieldval*#12`] -[visit_id fieldval*#12] -[check_dims] a_1 a_2 arrayaddr#33 arrayaddr#35 i#42341 i_1 i_2 instr*#2154 n numtype#449 numtype#451 numtype#453 state#2039 typeidx#1629 x_1 x_2 z -[visit_exp `%;%`_config{state#2039, `instr*#2154`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#33}(a_1) `CONST`_instr{numtype#449}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#35}(a_2) `CONST`_instr{numtype#451}(`I32`_numtype, i_2) `CONST`_instr{numtype#453}(`I32`_numtype, `%`_num_{i#42341}(n)) `ARRAY.COPY`_instr{typeidx#1629}(x_1, x_2)])] -[visit_exp state#2039] -[visit_id state#2039] -[visit_exp `instr*#2154`] -[visit_id instr*#2154] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#33}(a_1) `CONST`_instr{numtype#449}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#35}(a_2) `CONST`_instr{numtype#451}(`I32`_numtype, i_2) `CONST`_instr{numtype#453}(`I32`_numtype, `%`_num_{i#42341}(n)) `ARRAY.COPY`_instr{typeidx#1629}(x_1, x_2)])] +[check_dims] a_1 a_2 i_1 i_2 n x_1 x_2 z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#33}(a_1) `CONST`_instr{numtype#449}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#35}(a_2) `CONST`_instr{numtype#451}(`I32`_numtype, i_2) `CONST`_instr{numtype#453}(`I32`_numtype, `%`_num_{i#42341}(n)) `ARRAY.COPY`_instr{typeidx#1629}(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#33}(a_1)] -[visit_exp arrayaddr#33] -[visit_id arrayaddr#33] +[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] [visit_exp (a_1)] [visit_exp a_1] [visit_id a_1] -[visit_exp `CONST`_instr{numtype#449}(`I32`_numtype, i_1)] -[visit_exp numtype#449] -[visit_id numtype#449] +[visit_exp `CONST`_instr(`I32`_numtype, i_1)] [visit_exp (`I32`_numtype, i_1)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_1] [visit_id i_1] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#35}(a_2)] -[visit_exp arrayaddr#35] -[visit_id arrayaddr#35] +[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] [visit_exp (a_2)] [visit_exp a_2] [visit_id a_2] -[visit_exp `CONST`_instr{numtype#451}(`I32`_numtype, i_2)] -[visit_exp numtype#451] -[visit_id numtype#451] +[visit_exp `CONST`_instr(`I32`_numtype, i_2)] [visit_exp (`I32`_numtype, i_2)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#453}(`I32`_numtype, `%`_num_{i#42341}(n))] -[visit_exp numtype#453] -[visit_id numtype#453] -[visit_exp (`I32`_numtype, `%`_num_{i#42341}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#42341}(n)] -[visit_exp i#42341] -[visit_id i#42341] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.COPY`_instr{typeidx#1629}(x_1, x_2)] -[visit_exp typeidx#1629] -[visit_id typeidx#1629] +[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] @@ -63559,98 +52259,68 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp n] [visit_id n] not free [visit_exp 0] -[check_dims] a_1 a_2 arrayaddr#37 arrayaddr#39 arrayaddr#41 arrayaddr#43 arrayaddr#45 arrayaddr#47 fieldtype#51 i#42421 i#42564 i#42574 i#42600 i#42610 i#42632 i#42690 i#42700 i_1 i_2 instr*#2166 mut mut?#1169 n numtype#455 numtype#457 numtype#459 numtype#461 numtype#463 numtype#465 numtype#467 numtype#469 state#2051 storagetype#707 sx sx?#23 typeidx#1632 typeidx#1635 typeidx#1637 typeidx#1639 x_1 x_2 z zt_2 -[visit_exp `%;%`_config{state#2051, `instr*#2166`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#37}(a_1) `CONST`_instr{numtype#455}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#39}(a_2) `CONST`_instr{numtype#457}(`I32`_numtype, i_2) `CONST`_instr{numtype#459}(`I32`_numtype, `%`_num_{i#42421}(n)) `ARRAY.COPY`_instr{typeidx#1632}(x_1, x_2)])] -[visit_exp state#2051] -[visit_id state#2051] -[visit_exp `instr*#2166`] -[visit_id instr*#2166] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#37}(a_1) `CONST`_instr{numtype#455}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#39}(a_2) `CONST`_instr{numtype#457}(`I32`_numtype, i_2) `CONST`_instr{numtype#459}(`I32`_numtype, `%`_num_{i#42421}(n)) `ARRAY.COPY`_instr{typeidx#1632}(x_1, x_2)])] +[check_dims] a_1 a_2 i_1 i_2 mut n sx x_1 x_2 z zt_2 +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#37}(a_1) `CONST`_instr{numtype#455}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#39}(a_2) `CONST`_instr{numtype#457}(`I32`_numtype, i_2) `CONST`_instr{numtype#459}(`I32`_numtype, `%`_num_{i#42421}(n)) `ARRAY.COPY`_instr{typeidx#1632}(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#37}(a_1)] -[visit_exp arrayaddr#37] -[visit_id arrayaddr#37] +[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] [visit_exp (a_1)] [visit_exp a_1] [visit_id a_1] -[visit_exp `CONST`_instr{numtype#455}(`I32`_numtype, i_1)] -[visit_exp numtype#455] -[visit_id numtype#455] +[visit_exp `CONST`_instr(`I32`_numtype, i_1)] [visit_exp (`I32`_numtype, i_1)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_1] [visit_id i_1] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#39}(a_2)] -[visit_exp arrayaddr#39] -[visit_id arrayaddr#39] +[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] [visit_exp (a_2)] [visit_exp a_2] [visit_id a_2] -[visit_exp `CONST`_instr{numtype#457}(`I32`_numtype, i_2)] -[visit_exp numtype#457] -[visit_id numtype#457] +[visit_exp `CONST`_instr(`I32`_numtype, i_2)] [visit_exp (`I32`_numtype, i_2)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#459}(`I32`_numtype, `%`_num_{i#42421}(n))] -[visit_exp numtype#459] -[visit_id numtype#459] -[visit_exp (`I32`_numtype, `%`_num_{i#42421}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#42421}(n)] -[visit_exp i#42421] -[visit_id i#42421] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.COPY`_instr{typeidx#1632}(x_1, x_2)] -[visit_exp typeidx#1632] -[visit_id typeidx#1632] +[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] [visit_exp x_2] [visit_id x_2] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#41}(a_1) `CONST`_instr{numtype#461}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#43}(a_2) `CONST`_instr{numtype#463}(`I32`_numtype, i_2) `ARRAY.GET`_instr{`sx?#23`, typeidx#1635}(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr{typeidx#1637}(x_1) `REF.ARRAY_ADDR`_instr{arrayaddr#45}(a_1) `CONST`_instr{numtype#465}(`I32`_numtype, `%`_num_{i#42574}((i_1!`%`_num_{i#42564}.0 + 1))) `REF.ARRAY_ADDR`_instr{arrayaddr#47}(a_2) `CONST`_instr{numtype#467}(`I32`_numtype, `%`_num_{i#42610}((i_2!`%`_num_{i#42600}.0 + 1))) `CONST`_instr{numtype#469}(`I32`_numtype, `%`_num_{i#42632}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr{typeidx#1639}(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#41}(a_1)] -[visit_exp arrayaddr#41] -[visit_id arrayaddr#41] +[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr(x_1) `REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, `%`_num_((i_1!`%`_num_.0 + 1))) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, `%`_num_((i_2!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] [visit_exp (a_1)] [visit_exp a_1] [visit_id a_1] not free -[visit_exp `CONST`_instr{numtype#461}(`I32`_numtype, i_1)] -[visit_exp numtype#461] -[visit_id numtype#461] +[visit_exp `CONST`_instr(`I32`_numtype, i_1)] [visit_exp (`I32`_numtype, i_1)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_1] [visit_id i_1] not free -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#43}(a_2)] -[visit_exp arrayaddr#43] -[visit_id arrayaddr#43] +[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] [visit_exp (a_2)] [visit_exp a_2] [visit_id a_2] not free -[visit_exp `CONST`_instr{numtype#463}(`I32`_numtype, i_2)] -[visit_exp numtype#463] -[visit_id numtype#463] +[visit_exp `CONST`_instr(`I32`_numtype, i_2)] [visit_exp (`I32`_numtype, i_2)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_2] [visit_id i_2] not free -[visit_exp `ARRAY.GET`_instr{`sx?#23`, typeidx#1635}(sx?{sx <- `sx?`}, x_2)] -[visit_exp `sx?#23`] -[visit_id sx?#23] -[visit_exp typeidx#1635] -[visit_id typeidx#1635] +[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2)] [visit_exp (sx?{sx <- `sx?`}, x_2)] [visit_exp sx?{sx <- `sx?`}] [scope_enter sx] @@ -63663,69 +52333,47 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id sx?] [visit_exp x_2] [visit_id x_2] not free -[visit_exp `ARRAY.SET`_instr{typeidx#1637}(x_1)] -[visit_exp typeidx#1637] -[visit_id typeidx#1637] +[visit_exp `ARRAY.SET`_instr(x_1)] [visit_exp (x_1)] [visit_exp x_1] [visit_id x_1] not free -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#45}(a_1)] -[visit_exp arrayaddr#45] -[visit_id arrayaddr#45] +[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] [visit_exp (a_1)] [visit_exp a_1] [visit_id a_1] not free -[visit_exp `CONST`_instr{numtype#465}(`I32`_numtype, `%`_num_{i#42574}((i_1!`%`_num_{i#42564}.0 + 1)))] -[visit_exp numtype#465] -[visit_id numtype#465] -[visit_exp (`I32`_numtype, `%`_num_{i#42574}((i_1!`%`_num_{i#42564}.0 + 1)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((i_1!`%`_num_.0 + 1)))] +[visit_exp (`I32`_numtype, `%`_num_((i_1!`%`_num_.0 + 1)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#42574}((i_1!`%`_num_{i#42564}.0 + 1))] -[visit_exp i#42574] -[visit_id i#42574] -[visit_exp ((i_1!`%`_num_{i#42564}.0 + 1))] -[visit_exp (i_1!`%`_num_{i#42564}.0 + 1)] -[visit_exp i_1!`%`_num_{i#42564}.0] -[visit_exp i_1!`%`_num_{i#42564}] +[visit_exp `%`_num_((i_1!`%`_num_.0 + 1))] +[visit_exp ((i_1!`%`_num_.0 + 1))] +[visit_exp (i_1!`%`_num_.0 + 1)] +[visit_exp i_1!`%`_num_.0] +[visit_exp i_1!`%`_num_] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#42564] -[visit_id i#42564] [visit_exp 1] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#47}(a_2)] -[visit_exp arrayaddr#47] -[visit_id arrayaddr#47] +[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] [visit_exp (a_2)] [visit_exp a_2] [visit_id a_2] not free -[visit_exp `CONST`_instr{numtype#467}(`I32`_numtype, `%`_num_{i#42610}((i_2!`%`_num_{i#42600}.0 + 1)))] -[visit_exp numtype#467] -[visit_id numtype#467] -[visit_exp (`I32`_numtype, `%`_num_{i#42610}((i_2!`%`_num_{i#42600}.0 + 1)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((i_2!`%`_num_.0 + 1)))] +[visit_exp (`I32`_numtype, `%`_num_((i_2!`%`_num_.0 + 1)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#42610}((i_2!`%`_num_{i#42600}.0 + 1))] -[visit_exp i#42610] -[visit_id i#42610] -[visit_exp ((i_2!`%`_num_{i#42600}.0 + 1))] -[visit_exp (i_2!`%`_num_{i#42600}.0 + 1)] -[visit_exp i_2!`%`_num_{i#42600}.0] -[visit_exp i_2!`%`_num_{i#42600}] +[visit_exp `%`_num_((i_2!`%`_num_.0 + 1))] +[visit_exp ((i_2!`%`_num_.0 + 1))] +[visit_exp (i_2!`%`_num_.0 + 1)] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#42600] -[visit_id i#42600] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#469}(`I32`_numtype, `%`_num_{i#42632}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#469] -[visit_id numtype#469] -[visit_exp (`I32`_numtype, `%`_num_{i#42632}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#42632}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#42632] -[visit_id i#42632] +[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - (1 : nat <:> int))] @@ -63734,29 +52382,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `ARRAY.COPY`_instr{typeidx#1639}(x_1, x_2)] -[visit_exp typeidx#1639] -[visit_id typeidx#1639] +[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] not free [visit_exp x_2] [visit_id x_2] not free -[visit_exp ($type(z, x_2), `ARRAY`_comptype{fieldtype#51}(`%%`_fieldtype{`mut?#1169`, storagetype#707}(mut?{mut <- `mut?`}, zt_2)))] +[visit_exp ($type(z, x_2), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2)))] [visit_exp $type(z, x_2)] [visit_exp z] [visit_id z] not free [visit_exp x_2] [visit_id x_2] not free -[visit_exp `ARRAY`_comptype{fieldtype#51}(`%%`_fieldtype{`mut?#1169`, storagetype#707}(mut?{mut <- `mut?`}, zt_2))] -[visit_exp fieldtype#51] -[visit_id fieldtype#51] -[visit_exp (`%%`_fieldtype{`mut?#1169`, storagetype#707}(mut?{mut <- `mut?`}, zt_2))] -[visit_exp `%%`_fieldtype{`mut?#1169`, storagetype#707}(mut?{mut <- `mut?`}, zt_2)] -[visit_exp `mut?#1169`] -[visit_id mut?#1169] -[visit_exp storagetype#707] -[visit_id storagetype#707] +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt_2)] [visit_exp (mut?{mut <- `mut?`}, zt_2)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -63769,20 +52409,16 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id mut?] [visit_exp zt_2] [visit_id zt_2] -[visit_exp ((i_1!`%`_num_{i#42690}.0 <= i_2!`%`_num_{i#42700}.0) /\ (sx?{sx <- `sx?`} = $sx(zt_2)))] -[visit_exp (i_1!`%`_num_{i#42690}.0 <= i_2!`%`_num_{i#42700}.0)] -[visit_exp i_1!`%`_num_{i#42690}.0] -[visit_exp i_1!`%`_num_{i#42690}] +[visit_exp ((i_1!`%`_num_.0 <= i_2!`%`_num_.0) /\ (sx?{sx <- `sx?`} = $sx(zt_2)))] +[visit_exp (i_1!`%`_num_.0 <= i_2!`%`_num_.0)] +[visit_exp i_1!`%`_num_.0] +[visit_exp i_1!`%`_num_] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#42690] -[visit_id i#42690] -[visit_exp i_2!`%`_num_{i#42700}.0] -[visit_exp i_2!`%`_num_{i#42700}] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#42700] -[visit_id i#42700] [visit_exp (sx?{sx <- `sx?`} = $sx(zt_2))] [visit_exp sx?{sx <- `sx?`}] [scope_enter sx] @@ -63796,130 +52432,92 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp $sx(zt_2)] [visit_exp zt_2] [visit_id zt_2] not free -[check_dims] a_1 a_2 arrayaddr#49 arrayaddr#51 arrayaddr#53 arrayaddr#55 arrayaddr#57 arrayaddr#59 fieldtype#53 i#42752 i#42806 i#42816 i#42842 i#42852 i#42963 i_1 i_2 instr*#2178 mut mut?#1181 n numtype#471 numtype#473 numtype#475 numtype#477 numtype#479 numtype#481 numtype#483 numtype#485 state#2063 storagetype#719 sx sx?#25 typeidx#1642 typeidx#1645 typeidx#1647 typeidx#1649 x_1 x_2 z zt_2 -[visit_exp `%;%`_config{state#2063, `instr*#2178`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#49}(a_1) `CONST`_instr{numtype#471}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#51}(a_2) `CONST`_instr{numtype#473}(`I32`_numtype, i_2) `CONST`_instr{numtype#475}(`I32`_numtype, `%`_num_{i#42752}(n)) `ARRAY.COPY`_instr{typeidx#1642}(x_1, x_2)])] -[visit_exp state#2063] -[visit_id state#2063] -[visit_exp `instr*#2178`] -[visit_id instr*#2178] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#49}(a_1) `CONST`_instr{numtype#471}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#51}(a_2) `CONST`_instr{numtype#473}(`I32`_numtype, i_2) `CONST`_instr{numtype#475}(`I32`_numtype, `%`_num_{i#42752}(n)) `ARRAY.COPY`_instr{typeidx#1642}(x_1, x_2)])] +[check_dims] a_1 a_2 i_1 i_2 mut n sx x_1 x_2 z zt_2 +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#49}(a_1) `CONST`_instr{numtype#471}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#51}(a_2) `CONST`_instr{numtype#473}(`I32`_numtype, i_2) `CONST`_instr{numtype#475}(`I32`_numtype, `%`_num_{i#42752}(n)) `ARRAY.COPY`_instr{typeidx#1642}(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#49}(a_1)] -[visit_exp arrayaddr#49] -[visit_id arrayaddr#49] +[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] [visit_exp (a_1)] [visit_exp a_1] [visit_id a_1] -[visit_exp `CONST`_instr{numtype#471}(`I32`_numtype, i_1)] -[visit_exp numtype#471] -[visit_id numtype#471] +[visit_exp `CONST`_instr(`I32`_numtype, i_1)] [visit_exp (`I32`_numtype, i_1)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_1] [visit_id i_1] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#51}(a_2)] -[visit_exp arrayaddr#51] -[visit_id arrayaddr#51] +[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] [visit_exp (a_2)] [visit_exp a_2] [visit_id a_2] -[visit_exp `CONST`_instr{numtype#473}(`I32`_numtype, i_2)] -[visit_exp numtype#473] -[visit_id numtype#473] +[visit_exp `CONST`_instr(`I32`_numtype, i_2)] [visit_exp (`I32`_numtype, i_2)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_2] [visit_id i_2] -[visit_exp `CONST`_instr{numtype#475}(`I32`_numtype, `%`_num_{i#42752}(n))] -[visit_exp numtype#475] -[visit_id numtype#475] -[visit_exp (`I32`_numtype, `%`_num_{i#42752}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#42752}(n)] -[visit_exp i#42752] -[visit_id i#42752] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.COPY`_instr{typeidx#1642}(x_1, x_2)] -[visit_exp typeidx#1642] -[visit_id typeidx#1642] +[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] [visit_exp x_2] [visit_id x_2] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#53}(a_1) `CONST`_instr{numtype#477}(`I32`_numtype, `%`_num_{i#42816}(((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `REF.ARRAY_ADDR`_instr{arrayaddr#55}(a_2) `CONST`_instr{numtype#479}(`I32`_numtype, `%`_num_{i#42852}(((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.GET`_instr{`sx?#25`, typeidx#1645}(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr{typeidx#1647}(x_1) `REF.ARRAY_ADDR`_instr{arrayaddr#57}(a_1) `CONST`_instr{numtype#481}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#59}(a_2) `CONST`_instr{numtype#483}(`I32`_numtype, i_2) `CONST`_instr{numtype#485}(`I32`_numtype, `%`_num_{i#42963}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr{typeidx#1649}(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#53}(a_1)] -[visit_exp arrayaddr#53] -[visit_id arrayaddr#53] +[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr(x_1) `REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr(x_1, x_2)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] [visit_exp (a_1)] [visit_exp a_1] [visit_id a_1] not free -[visit_exp `CONST`_instr{numtype#477}(`I32`_numtype, `%`_num_{i#42816}(((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#477] -[visit_id numtype#477] -[visit_exp (`I32`_numtype, `%`_num_{i#42816}(((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (`I32`_numtype, `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#42816}(((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#42816] -[visit_id i#42816] -[visit_exp (((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int)] -[visit_exp (i_1!`%`_num_{i#42806}.0 + n)] -[visit_exp i_1!`%`_num_{i#42806}.0] -[visit_exp i_1!`%`_num_{i#42806}] +[visit_exp `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((i_1!`%`_num_.0 + n) : nat <:> int)] +[visit_exp (i_1!`%`_num_.0 + n)] +[visit_exp i_1!`%`_num_.0] +[visit_exp i_1!`%`_num_] [visit_exp i_1] [visit_id i_1] not free -[visit_exp i#42806] -[visit_id i#42806] [visit_exp n] [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#55}(a_2)] -[visit_exp arrayaddr#55] -[visit_id arrayaddr#55] +[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] [visit_exp (a_2)] [visit_exp a_2] [visit_id a_2] not free -[visit_exp `CONST`_instr{numtype#479}(`I32`_numtype, `%`_num_{i#42852}(((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#479] -[visit_id numtype#479] -[visit_exp (`I32`_numtype, `%`_num_{i#42852}(((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (`I32`_numtype, `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#42852}(((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#42852] -[visit_id i#42852] -[visit_exp (((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int)] -[visit_exp (i_2!`%`_num_{i#42842}.0 + n)] -[visit_exp i_2!`%`_num_{i#42842}.0] -[visit_exp i_2!`%`_num_{i#42842}] +[visit_exp `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp (((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] +[visit_exp ((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] +[visit_exp (((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int))] +[visit_exp ((i_2!`%`_num_.0 + n) : nat <:> int)] +[visit_exp (i_2!`%`_num_.0 + n)] +[visit_exp i_2!`%`_num_.0] +[visit_exp i_2!`%`_num_] [visit_exp i_2] [visit_id i_2] not free -[visit_exp i#42842] -[visit_id i#42842] [visit_exp n] [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `ARRAY.GET`_instr{`sx?#25`, typeidx#1645}(sx?{sx <- `sx?`}, x_2)] -[visit_exp `sx?#25`] -[visit_id sx?#25] -[visit_exp typeidx#1645] -[visit_id typeidx#1645] +[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2)] [visit_exp (sx?{sx <- `sx?`}, x_2)] [visit_exp sx?{sx <- `sx?`}] [scope_enter sx] @@ -63932,49 +52530,35 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id sx?] [visit_exp x_2] [visit_id x_2] not free -[visit_exp `ARRAY.SET`_instr{typeidx#1647}(x_1)] -[visit_exp typeidx#1647] -[visit_id typeidx#1647] +[visit_exp `ARRAY.SET`_instr(x_1)] [visit_exp (x_1)] [visit_exp x_1] [visit_id x_1] not free -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#57}(a_1)] -[visit_exp arrayaddr#57] -[visit_id arrayaddr#57] +[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] [visit_exp (a_1)] [visit_exp a_1] [visit_id a_1] not free -[visit_exp `CONST`_instr{numtype#481}(`I32`_numtype, i_1)] -[visit_exp numtype#481] -[visit_id numtype#481] +[visit_exp `CONST`_instr(`I32`_numtype, i_1)] [visit_exp (`I32`_numtype, i_1)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_1] [visit_id i_1] not free -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#59}(a_2)] -[visit_exp arrayaddr#59] -[visit_id arrayaddr#59] +[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] [visit_exp (a_2)] [visit_exp a_2] [visit_id a_2] not free -[visit_exp `CONST`_instr{numtype#483}(`I32`_numtype, i_2)] -[visit_exp numtype#483] -[visit_id numtype#483] +[visit_exp `CONST`_instr(`I32`_numtype, i_2)] [visit_exp (`I32`_numtype, i_2)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i_2] [visit_id i_2] not free -[visit_exp `CONST`_instr{numtype#485}(`I32`_numtype, `%`_num_{i#42963}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#485] -[visit_id numtype#485] -[visit_exp (`I32`_numtype, `%`_num_{i#42963}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#42963}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#42963] -[visit_id i#42963] +[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - (1 : nat <:> int))] @@ -63983,29 +52567,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `ARRAY.COPY`_instr{typeidx#1649}(x_1, x_2)] -[visit_exp typeidx#1649] -[visit_id typeidx#1649] +[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] not free [visit_exp x_2] [visit_id x_2] not free -[visit_exp ($type(z, x_2), `ARRAY`_comptype{fieldtype#53}(`%%`_fieldtype{`mut?#1181`, storagetype#719}(mut?{mut <- `mut?`}, zt_2)))] +[visit_exp ($type(z, x_2), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2)))] [visit_exp $type(z, x_2)] [visit_exp z] [visit_id z] not free [visit_exp x_2] [visit_id x_2] not free -[visit_exp `ARRAY`_comptype{fieldtype#53}(`%%`_fieldtype{`mut?#1181`, storagetype#719}(mut?{mut <- `mut?`}, zt_2))] -[visit_exp fieldtype#53] -[visit_id fieldtype#53] -[visit_exp (`%%`_fieldtype{`mut?#1181`, storagetype#719}(mut?{mut <- `mut?`}, zt_2))] -[visit_exp `%%`_fieldtype{`mut?#1181`, storagetype#719}(mut?{mut <- `mut?`}, zt_2)] -[visit_exp `mut?#1181`] -[visit_id mut?#1181] -[visit_exp storagetype#719] -[visit_id storagetype#719] +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt_2)] [visit_exp (mut?{mut <- `mut?`}, zt_2)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -64031,55 +52607,37 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp $sx(zt_2)] [visit_exp zt_2] [visit_id zt_2] not free -[check_dims] elemidx#31 heaptype#1445 ht i i#43055 instr*#2190 j n numtype#487 numtype#489 numtype#491 state#2075 typeidx#1652 x y z -[visit_exp `%;%`_config{state#2075, `instr*#2190`}(z, [`REF.NULL`_instr{heaptype#1445}(ht) `CONST`_instr{numtype#487}(`I32`_numtype, i) `CONST`_instr{numtype#489}(`I32`_numtype, j) `CONST`_instr{numtype#491}(`I32`_numtype, `%`_num_{i#43055}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1652, elemidx#31}(x, y)])] -[visit_exp state#2075] -[visit_id state#2075] -[visit_exp `instr*#2190`] -[visit_id instr*#2190] -[visit_exp (z, [`REF.NULL`_instr{heaptype#1445}(ht) `CONST`_instr{numtype#487}(`I32`_numtype, i) `CONST`_instr{numtype#489}(`I32`_numtype, j) `CONST`_instr{numtype#491}(`I32`_numtype, `%`_num_{i#43055}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1652, elemidx#31}(x, y)])] +[check_dims] ht i j n x y z +[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] +[visit_exp (z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.NULL`_instr{heaptype#1445}(ht) `CONST`_instr{numtype#487}(`I32`_numtype, i) `CONST`_instr{numtype#489}(`I32`_numtype, j) `CONST`_instr{numtype#491}(`I32`_numtype, `%`_num_{i#43055}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1652, elemidx#31}(x, y)]] -[visit_exp `REF.NULL`_instr{heaptype#1445}(ht)] -[visit_exp heaptype#1445] -[visit_id heaptype#1445] +[visit_exp [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[visit_exp `CONST`_instr{numtype#487}(`I32`_numtype, i)] -[visit_exp numtype#487] -[visit_id numtype#487] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#489}(`I32`_numtype, j)] -[visit_exp numtype#489] -[visit_id numtype#489] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#491}(`I32`_numtype, `%`_num_{i#43055}(n))] -[visit_exp numtype#491] -[visit_id numtype#491] -[visit_exp (`I32`_numtype, `%`_num_{i#43055}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#43055}(n)] -[visit_exp i#43055] -[visit_id i#43055] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1652, elemidx#31}(x, y)] -[visit_exp typeidx#1652] -[visit_id typeidx#1652] -[visit_exp elemidx#31] -[visit_id elemidx#31] +[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -64088,55 +52646,37 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] a arrayaddr#61 elemidx#33 fieldval*#13 i i#43135 i#43177 instr*#2202 j n numtype#493 numtype#495 numtype#497 state#2087 typeidx#1654 x y z -[visit_exp `%;%`_config{state#2087, `instr*#2202`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#61}(a) `CONST`_instr{numtype#493}(`I32`_numtype, i) `CONST`_instr{numtype#495}(`I32`_numtype, j) `CONST`_instr{numtype#497}(`I32`_numtype, `%`_num_{i#43135}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1654, elemidx#33}(x, y)])] -[visit_exp state#2087] -[visit_id state#2087] -[visit_exp `instr*#2202`] -[visit_id instr*#2202] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#61}(a) `CONST`_instr{numtype#493}(`I32`_numtype, i) `CONST`_instr{numtype#495}(`I32`_numtype, j) `CONST`_instr{numtype#497}(`I32`_numtype, `%`_num_{i#43135}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1654, elemidx#33}(x, y)])] +[check_dims] a i j n x y z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#61}(a) `CONST`_instr{numtype#493}(`I32`_numtype, i) `CONST`_instr{numtype#495}(`I32`_numtype, j) `CONST`_instr{numtype#497}(`I32`_numtype, `%`_num_{i#43135}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1654, elemidx#33}(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#61}(a)] -[visit_exp arrayaddr#61] -[visit_id arrayaddr#61] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#493}(`I32`_numtype, i)] -[visit_exp numtype#493] -[visit_id numtype#493] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#495}(`I32`_numtype, j)] -[visit_exp numtype#495] -[visit_id numtype#495] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#497}(`I32`_numtype, `%`_num_{i#43135}(n))] -[visit_exp numtype#497] -[visit_id numtype#497] -[visit_exp (`I32`_numtype, `%`_num_{i#43135}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#43135}(n)] -[visit_exp i#43135] -[visit_id i#43135] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1654, elemidx#33}(x, y)] -[visit_exp typeidx#1654] -[visit_id typeidx#1654] -[visit_exp elemidx#33] -[visit_id elemidx#33] +[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -64145,75 +52685,53 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp ((i!`%`_num_{i#43177}.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#13`}|)] -[visit_exp (i!`%`_num_{i#43177}.0 + n)] -[visit_exp i!`%`_num_{i#43177}.0] -[visit_exp i!`%`_num_{i#43177}] +[visit_exp ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst|)] +[visit_exp (i!`%`_num_.0 + n)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#43177] -[visit_id i#43177] [visit_exp n] [visit_id n] not free -[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#13`}|] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#13`}] +[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst|] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] [visit_exp $arrayinst(z)[a]] [visit_exp $arrayinst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp `fieldval*#13`] -[visit_id fieldval*#13] -[check_dims] a arrayaddr#63 elemidx#35 i i#43229 i#43271 instr*#2214 j n numtype#499 numtype#501 numtype#503 ref*#20 state#2099 typeidx#1656 x y z -[visit_exp `%;%`_config{state#2099, `instr*#2214`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#63}(a) `CONST`_instr{numtype#499}(`I32`_numtype, i) `CONST`_instr{numtype#501}(`I32`_numtype, j) `CONST`_instr{numtype#503}(`I32`_numtype, `%`_num_{i#43229}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1656, elemidx#35}(x, y)])] -[visit_exp state#2099] -[visit_id state#2099] -[visit_exp `instr*#2214`] -[visit_id instr*#2214] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#63}(a) `CONST`_instr{numtype#499}(`I32`_numtype, i) `CONST`_instr{numtype#501}(`I32`_numtype, j) `CONST`_instr{numtype#503}(`I32`_numtype, `%`_num_{i#43229}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1656, elemidx#35}(x, y)])] +[check_dims] a i j n x y z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#63}(a) `CONST`_instr{numtype#499}(`I32`_numtype, i) `CONST`_instr{numtype#501}(`I32`_numtype, j) `CONST`_instr{numtype#503}(`I32`_numtype, `%`_num_{i#43229}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1656, elemidx#35}(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#63}(a)] -[visit_exp arrayaddr#63] -[visit_id arrayaddr#63] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#499}(`I32`_numtype, i)] -[visit_exp numtype#499] -[visit_id numtype#499] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#501}(`I32`_numtype, j)] -[visit_exp numtype#501] -[visit_id numtype#501] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#503}(`I32`_numtype, `%`_num_{i#43229}(n))] -[visit_exp numtype#503] -[visit_id numtype#503] -[visit_exp (`I32`_numtype, `%`_num_{i#43229}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#43229}(n)] -[visit_exp i#43229] -[visit_id i#43229] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1656, elemidx#35}(x, y)] -[visit_exp typeidx#1656] -[visit_id typeidx#1656] -[visit_exp elemidx#35] -[visit_id elemidx#35] +[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -64222,74 +52740,52 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp ((j!`%`_num_{i#43271}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#20`}|)] -[visit_exp (j!`%`_num_{i#43271}.0 + n)] -[visit_exp j!`%`_num_{i#43271}.0] -[visit_exp j!`%`_num_{i#43271}] +[visit_exp ((j!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|)] +[visit_exp (j!`%`_num_.0 + n)] +[visit_exp j!`%`_num_.0] +[visit_exp j!`%`_num_] [visit_exp j] [visit_id j] not free -[visit_exp i#43271] -[visit_id i#43271] [visit_exp n] [visit_id n] not free -[visit_exp |$elem(z, y).`REFS`_eleminst{`ref*#20`}|] -[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#20`}] +[visit_exp |$elem(z, y).`REFS`_eleminst|] +[visit_exp $elem(z, y).`REFS`_eleminst] [visit_exp $elem(z, y)] [visit_exp z] [visit_id z] not free [visit_exp y] [visit_id y] not free -[visit_exp `ref*#20`] -[visit_id ref*#20] -[check_dims] a arrayaddr#65 elemidx#37 i i#43335 instr*#2226 j n numtype#505 numtype#507 numtype#509 state#2111 typeidx#1658 x y z -[visit_exp `%;%`_config{state#2111, `instr*#2226`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#65}(a) `CONST`_instr{numtype#505}(`I32`_numtype, i) `CONST`_instr{numtype#507}(`I32`_numtype, j) `CONST`_instr{numtype#509}(`I32`_numtype, `%`_num_{i#43335}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1658, elemidx#37}(x, y)])] -[visit_exp state#2111] -[visit_id state#2111] -[visit_exp `instr*#2226`] -[visit_id instr*#2226] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#65}(a) `CONST`_instr{numtype#505}(`I32`_numtype, i) `CONST`_instr{numtype#507}(`I32`_numtype, j) `CONST`_instr{numtype#509}(`I32`_numtype, `%`_num_{i#43335}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1658, elemidx#37}(x, y)])] +[check_dims] a i j n x y z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#65}(a) `CONST`_instr{numtype#505}(`I32`_numtype, i) `CONST`_instr{numtype#507}(`I32`_numtype, j) `CONST`_instr{numtype#509}(`I32`_numtype, `%`_num_{i#43335}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1658, elemidx#37}(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#65}(a)] -[visit_exp arrayaddr#65] -[visit_id arrayaddr#65] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#505}(`I32`_numtype, i)] -[visit_exp numtype#505] -[visit_id numtype#505] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#507}(`I32`_numtype, j)] -[visit_exp numtype#507] -[visit_id numtype#507] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#509}(`I32`_numtype, `%`_num_{i#43335}(n))] -[visit_exp numtype#509] -[visit_id numtype#509] -[visit_exp (`I32`_numtype, `%`_num_{i#43335}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#43335}(n)] -[visit_exp i#43335] -[visit_id i#43335] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1658, elemidx#37}(x, y)] -[visit_exp typeidx#1658] -[visit_id typeidx#1658] -[visit_exp elemidx#37] -[visit_id elemidx#37] +[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -64300,70 +52796,48 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp n] [visit_id n] not free [visit_exp 0] -[check_dims] a arrayaddr#67 arrayaddr#69 arrayaddr#71 elemidx#39 elemidx#41 i i#43415 i#43495 i#43505 i#43531 i#43541 i#43563 i#43613 instr*#2238 j n numtype#511 numtype#513 numtype#515 numtype#517 numtype#519 numtype#521 numtype#523 ref ref*#21 state#2123 typeidx#1660 typeidx#1662 typeidx#1664 x y z -[visit_exp `%;%`_config{state#2123, `instr*#2238`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#67}(a) `CONST`_instr{numtype#511}(`I32`_numtype, i) `CONST`_instr{numtype#513}(`I32`_numtype, j) `CONST`_instr{numtype#515}(`I32`_numtype, `%`_num_{i#43415}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1660, elemidx#39}(x, y)])] -[visit_exp state#2123] -[visit_id state#2123] -[visit_exp `instr*#2238`] -[visit_id instr*#2238] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#67}(a) `CONST`_instr{numtype#511}(`I32`_numtype, i) `CONST`_instr{numtype#513}(`I32`_numtype, j) `CONST`_instr{numtype#515}(`I32`_numtype, `%`_num_{i#43415}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1660, elemidx#39}(x, y)])] +[check_dims] a i j n ref x y z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#67}(a) `CONST`_instr{numtype#511}(`I32`_numtype, i) `CONST`_instr{numtype#513}(`I32`_numtype, j) `CONST`_instr{numtype#515}(`I32`_numtype, `%`_num_{i#43415}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1660, elemidx#39}(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#67}(a)] -[visit_exp arrayaddr#67] -[visit_id arrayaddr#67] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#511}(`I32`_numtype, i)] -[visit_exp numtype#511] -[visit_id numtype#511] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#513}(`I32`_numtype, j)] -[visit_exp numtype#513] -[visit_id numtype#513] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#515}(`I32`_numtype, `%`_num_{i#43415}(n))] -[visit_exp numtype#515] -[visit_id numtype#515] -[visit_exp (`I32`_numtype, `%`_num_{i#43415}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#43415}(n)] -[visit_exp i#43415] -[visit_id i#43415] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1660, elemidx#39}(x, y)] -[visit_exp typeidx#1660] -[visit_id typeidx#1660] -[visit_exp elemidx#39] -[visit_id elemidx#39] +[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#69}(a) `CONST`_instr{numtype#517}(`I32`_numtype, i) (ref : ref <: instr) `ARRAY.SET`_instr{typeidx#1662}(x) `REF.ARRAY_ADDR`_instr{arrayaddr#71}(a) `CONST`_instr{numtype#519}(`I32`_numtype, `%`_num_{i#43505}((i!`%`_num_{i#43495}.0 + 1))) `CONST`_instr{numtype#521}(`I32`_numtype, `%`_num_{i#43541}((j!`%`_num_{i#43531}.0 + 1))) `CONST`_instr{numtype#523}(`I32`_numtype, `%`_num_{i#43563}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_ELEM`_instr{typeidx#1664, elemidx#41}(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#69}(a)] -[visit_exp arrayaddr#69] -[visit_id arrayaddr#69] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (ref : ref <: instr) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_ELEM`_instr(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free -[visit_exp `CONST`_instr{numtype#517}(`I32`_numtype, i)] -[visit_exp numtype#517] -[visit_id numtype#517] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -64372,63 +52846,43 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (ref : ref <: instr)] [visit_exp ref] [visit_id ref] -[visit_exp `ARRAY.SET`_instr{typeidx#1662}(x)] -[visit_exp typeidx#1662] -[visit_id typeidx#1662] +[visit_exp `ARRAY.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#71}(a)] -[visit_exp arrayaddr#71] -[visit_id arrayaddr#71] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free -[visit_exp `CONST`_instr{numtype#519}(`I32`_numtype, `%`_num_{i#43505}((i!`%`_num_{i#43495}.0 + 1)))] -[visit_exp numtype#519] -[visit_id numtype#519] -[visit_exp (`I32`_numtype, `%`_num_{i#43505}((i!`%`_num_{i#43495}.0 + 1)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1)))] +[visit_exp (`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#43505}((i!`%`_num_{i#43495}.0 + 1))] -[visit_exp i#43505] -[visit_id i#43505] -[visit_exp ((i!`%`_num_{i#43495}.0 + 1))] -[visit_exp (i!`%`_num_{i#43495}.0 + 1)] -[visit_exp i!`%`_num_{i#43495}.0] -[visit_exp i!`%`_num_{i#43495}] +[visit_exp `%`_num_((i!`%`_num_.0 + 1))] +[visit_exp ((i!`%`_num_.0 + 1))] +[visit_exp (i!`%`_num_.0 + 1)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#43495] -[visit_id i#43495] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#521}(`I32`_numtype, `%`_num_{i#43541}((j!`%`_num_{i#43531}.0 + 1)))] -[visit_exp numtype#521] -[visit_id numtype#521] -[visit_exp (`I32`_numtype, `%`_num_{i#43541}((j!`%`_num_{i#43531}.0 + 1)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1)))] +[visit_exp (`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#43541}((j!`%`_num_{i#43531}.0 + 1))] -[visit_exp i#43541] -[visit_id i#43541] -[visit_exp ((j!`%`_num_{i#43531}.0 + 1))] -[visit_exp (j!`%`_num_{i#43531}.0 + 1)] -[visit_exp j!`%`_num_{i#43531}.0] -[visit_exp j!`%`_num_{i#43531}] +[visit_exp `%`_num_((j!`%`_num_.0 + 1))] +[visit_exp ((j!`%`_num_.0 + 1))] +[visit_exp (j!`%`_num_.0 + 1)] +[visit_exp j!`%`_num_.0] +[visit_exp j!`%`_num_] [visit_exp j] [visit_id j] not free -[visit_exp i#43531] -[visit_id i#43531] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#523}(`I32`_numtype, `%`_num_{i#43563}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#523] -[visit_id numtype#523] -[visit_exp (`I32`_numtype, `%`_num_{i#43563}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#43563}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#43563] -[visit_id i#43563] +[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - (1 : nat <:> int))] @@ -64437,83 +52891,57 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1664, elemidx#41}(x, y)] -[visit_exp typeidx#1664] -[visit_id typeidx#1664] -[visit_exp elemidx#41] -[visit_id elemidx#41] +[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] not free [visit_exp y] [visit_id y] not free -[visit_exp (ref = $elem(z, y).`REFS`_eleminst{`ref*#21`}[j!`%`_num_{i#43613}.0])] +[visit_exp (ref = $elem(z, y).`REFS`_eleminst[j!`%`_num_.0])] [visit_exp ref] [visit_id ref] not free -[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#21`}[j!`%`_num_{i#43613}.0]] -[visit_exp $elem(z, y).`REFS`_eleminst{`ref*#21`}] +[visit_exp $elem(z, y).`REFS`_eleminst[j!`%`_num_.0]] +[visit_exp $elem(z, y).`REFS`_eleminst] [visit_exp $elem(z, y)] [visit_exp z] [visit_id z] not free [visit_exp y] [visit_id y] not free -[visit_exp `ref*#21`] -[visit_id ref*#21] -[visit_exp j!`%`_num_{i#43613}.0] -[visit_exp j!`%`_num_{i#43613}] +[visit_exp j!`%`_num_.0] +[visit_exp j!`%`_num_] [visit_exp j] [visit_id j] not free -[visit_exp i#43613] -[visit_id i#43613] -[check_dims] dataidx#31 heaptype#1447 ht i i#43665 instr*#2250 j n numtype#525 numtype#527 numtype#529 state#2135 typeidx#1666 x y z -[visit_exp `%;%`_config{state#2135, `instr*#2250`}(z, [`REF.NULL`_instr{heaptype#1447}(ht) `CONST`_instr{numtype#525}(`I32`_numtype, i) `CONST`_instr{numtype#527}(`I32`_numtype, j) `CONST`_instr{numtype#529}(`I32`_numtype, `%`_num_{i#43665}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1666, dataidx#31}(x, y)])] -[visit_exp state#2135] -[visit_id state#2135] -[visit_exp `instr*#2250`] -[visit_id instr*#2250] -[visit_exp (z, [`REF.NULL`_instr{heaptype#1447}(ht) `CONST`_instr{numtype#525}(`I32`_numtype, i) `CONST`_instr{numtype#527}(`I32`_numtype, j) `CONST`_instr{numtype#529}(`I32`_numtype, `%`_num_{i#43665}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1666, dataidx#31}(x, y)])] +[check_dims] ht i j n x y z +[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] +[visit_exp (z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.NULL`_instr{heaptype#1447}(ht) `CONST`_instr{numtype#525}(`I32`_numtype, i) `CONST`_instr{numtype#527}(`I32`_numtype, j) `CONST`_instr{numtype#529}(`I32`_numtype, `%`_num_{i#43665}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1666, dataidx#31}(x, y)]] -[visit_exp `REF.NULL`_instr{heaptype#1447}(ht)] -[visit_exp heaptype#1447] -[visit_id heaptype#1447] +[visit_exp [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] -[visit_exp `CONST`_instr{numtype#525}(`I32`_numtype, i)] -[visit_exp numtype#525] -[visit_id numtype#525] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#527}(`I32`_numtype, j)] -[visit_exp numtype#527] -[visit_id numtype#527] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#529}(`I32`_numtype, `%`_num_{i#43665}(n))] -[visit_exp numtype#529] -[visit_id numtype#529] -[visit_exp (`I32`_numtype, `%`_num_{i#43665}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#43665}(n)] -[visit_exp i#43665] -[visit_id i#43665] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1666, dataidx#31}(x, y)] -[visit_exp typeidx#1666] -[visit_id typeidx#1666] -[visit_exp dataidx#31] -[visit_id dataidx#31] +[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -64522,55 +52950,37 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[check_dims] a arrayaddr#73 dataidx#33 fieldval*#14 i i#43745 i#43787 instr*#2262 j n numtype#531 numtype#533 numtype#535 state#2147 typeidx#1668 x y z -[visit_exp `%;%`_config{state#2147, `instr*#2262`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#73}(a) `CONST`_instr{numtype#531}(`I32`_numtype, i) `CONST`_instr{numtype#533}(`I32`_numtype, j) `CONST`_instr{numtype#535}(`I32`_numtype, `%`_num_{i#43745}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1668, dataidx#33}(x, y)])] -[visit_exp state#2147] -[visit_id state#2147] -[visit_exp `instr*#2262`] -[visit_id instr*#2262] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#73}(a) `CONST`_instr{numtype#531}(`I32`_numtype, i) `CONST`_instr{numtype#533}(`I32`_numtype, j) `CONST`_instr{numtype#535}(`I32`_numtype, `%`_num_{i#43745}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1668, dataidx#33}(x, y)])] +[check_dims] a i j n x y z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#73}(a) `CONST`_instr{numtype#531}(`I32`_numtype, i) `CONST`_instr{numtype#533}(`I32`_numtype, j) `CONST`_instr{numtype#535}(`I32`_numtype, `%`_num_{i#43745}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1668, dataidx#33}(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#73}(a)] -[visit_exp arrayaddr#73] -[visit_id arrayaddr#73] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#531}(`I32`_numtype, i)] -[visit_exp numtype#531] -[visit_id numtype#531] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#533}(`I32`_numtype, j)] -[visit_exp numtype#533] -[visit_id numtype#533] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#535}(`I32`_numtype, `%`_num_{i#43745}(n))] -[visit_exp numtype#535] -[visit_id numtype#535] -[visit_exp (`I32`_numtype, `%`_num_{i#43745}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#43745}(n)] -[visit_exp i#43745] -[visit_id i#43745] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1668, dataidx#33}(x, y)] -[visit_exp typeidx#1668] -[visit_id typeidx#1668] -[visit_exp dataidx#33] -[visit_id dataidx#33] +[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -64579,75 +52989,53 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp ((i!`%`_num_{i#43787}.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#14`}|)] -[visit_exp (i!`%`_num_{i#43787}.0 + n)] -[visit_exp i!`%`_num_{i#43787}.0] -[visit_exp i!`%`_num_{i#43787}] +[visit_exp ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst|)] +[visit_exp (i!`%`_num_.0 + n)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#43787] -[visit_id i#43787] [visit_exp n] [visit_id n] not free -[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#14`}|] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#14`}] +[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst|] +[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] [visit_exp $arrayinst(z)[a]] [visit_exp $arrayinst(z)] [visit_exp z] [visit_id z] not free [visit_exp a] [visit_id a] not free -[visit_exp `fieldval*#14`] -[visit_id fieldval*#14] -[check_dims] a arrayaddr#75 byte*#1877 dataidx#35 fieldtype#55 i i#43839 i#43893 instr*#2274 j mut mut?#1193 n numtype#537 numtype#539 numtype#541 state#2159 storagetype#731 typeidx#1670 x y z zt -[visit_exp `%;%`_config{state#2159, `instr*#2274`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#75}(a) `CONST`_instr{numtype#537}(`I32`_numtype, i) `CONST`_instr{numtype#539}(`I32`_numtype, j) `CONST`_instr{numtype#541}(`I32`_numtype, `%`_num_{i#43839}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1670, dataidx#35}(x, y)])] -[visit_exp state#2159] -[visit_id state#2159] -[visit_exp `instr*#2274`] -[visit_id instr*#2274] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#75}(a) `CONST`_instr{numtype#537}(`I32`_numtype, i) `CONST`_instr{numtype#539}(`I32`_numtype, j) `CONST`_instr{numtype#541}(`I32`_numtype, `%`_num_{i#43839}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1670, dataidx#35}(x, y)])] +[check_dims] a i j mut n x y z zt +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#75}(a) `CONST`_instr{numtype#537}(`I32`_numtype, i) `CONST`_instr{numtype#539}(`I32`_numtype, j) `CONST`_instr{numtype#541}(`I32`_numtype, `%`_num_{i#43839}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1670, dataidx#35}(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#75}(a)] -[visit_exp arrayaddr#75] -[visit_id arrayaddr#75] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#537}(`I32`_numtype, i)] -[visit_exp numtype#537] -[visit_id numtype#537] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#539}(`I32`_numtype, j)] -[visit_exp numtype#539] -[visit_id numtype#539] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#541}(`I32`_numtype, `%`_num_{i#43839}(n))] -[visit_exp numtype#541] -[visit_id numtype#541] -[visit_exp (`I32`_numtype, `%`_num_{i#43839}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#43839}(n)] -[visit_exp i#43839] -[visit_id i#43839] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1670, dataidx#35}(x, y)] -[visit_exp typeidx#1670] -[visit_id typeidx#1670] -[visit_exp dataidx#35] -[visit_id dataidx#35] +[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -64656,21 +53044,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp [`TRAP`_instr]] [visit_exp `TRAP`_instr] [visit_exp ()] -[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#55}(`%%`_fieldtype{`mut?#1193`, storagetype#731}(mut?{mut <- `mut?`}, zt)))] +[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ARRAY`_comptype{fieldtype#55}(`%%`_fieldtype{`mut?#1193`, storagetype#731}(mut?{mut <- `mut?`}, zt))] -[visit_exp fieldtype#55] -[visit_id fieldtype#55] -[visit_exp (`%%`_fieldtype{`mut?#1193`, storagetype#731}(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype{`mut?#1193`, storagetype#731}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#1193`] -[visit_id mut?#1193] -[visit_exp storagetype#731] -[visit_id storagetype#731] +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -64683,14 +53065,12 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id mut?] [visit_exp zt] [visit_id zt] -[visit_exp ((j!`%`_num_{i#43893}.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst{`byte*#1877`}|)] -[visit_exp (j!`%`_num_{i#43893}.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp j!`%`_num_{i#43893}.0] -[visit_exp j!`%`_num_{i#43893}] +[visit_exp ((j!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst|)] +[visit_exp (j!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp j!`%`_num_.0] +[visit_exp j!`%`_num_] [visit_exp j] [visit_id j] not free -[visit_exp i#43893] -[visit_id i#43893] [visit_exp ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ((n * $zsize(zt)) : nat <:> rat)] @@ -64702,64 +53082,44 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id zt] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp |$data(z, y).`BYTES`_datainst{`byte*#1877`}|] -[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1877`}] +[visit_exp |$data(z, y).`BYTES`_datainst|] +[visit_exp $data(z, y).`BYTES`_datainst] [visit_exp $data(z, y)] [visit_exp z] [visit_id z] not free [visit_exp y] [visit_id y] not free -[visit_exp `byte*#1877`] -[visit_id byte*#1877] -[check_dims] a arrayaddr#77 dataidx#37 i i#43957 instr*#2286 j n numtype#543 numtype#545 numtype#547 state#2171 typeidx#1672 x y z -[visit_exp `%;%`_config{state#2171, `instr*#2286`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#77}(a) `CONST`_instr{numtype#543}(`I32`_numtype, i) `CONST`_instr{numtype#545}(`I32`_numtype, j) `CONST`_instr{numtype#547}(`I32`_numtype, `%`_num_{i#43957}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1672, dataidx#37}(x, y)])] -[visit_exp state#2171] -[visit_id state#2171] -[visit_exp `instr*#2286`] -[visit_id instr*#2286] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#77}(a) `CONST`_instr{numtype#543}(`I32`_numtype, i) `CONST`_instr{numtype#545}(`I32`_numtype, j) `CONST`_instr{numtype#547}(`I32`_numtype, `%`_num_{i#43957}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1672, dataidx#37}(x, y)])] +[check_dims] a i j n x y z +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#77}(a) `CONST`_instr{numtype#543}(`I32`_numtype, i) `CONST`_instr{numtype#545}(`I32`_numtype, j) `CONST`_instr{numtype#547}(`I32`_numtype, `%`_num_{i#43957}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1672, dataidx#37}(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#77}(a)] -[visit_exp arrayaddr#77] -[visit_id arrayaddr#77] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#543}(`I32`_numtype, i)] -[visit_exp numtype#543] -[visit_id numtype#543] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#545}(`I32`_numtype, j)] -[visit_exp numtype#545] -[visit_id numtype#545] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#547}(`I32`_numtype, `%`_num_{i#43957}(n))] -[visit_exp numtype#547] -[visit_id numtype#547] -[visit_exp (`I32`_numtype, `%`_num_{i#43957}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#43957}(n)] -[visit_exp i#43957] -[visit_id i#43957] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1672, dataidx#37}(x, y)] -[visit_exp typeidx#1672] -[visit_id typeidx#1672] -[visit_exp dataidx#37] -[visit_id dataidx#37] +[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -64770,70 +53130,48 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp n] [visit_id n] not free [visit_exp 0] -[check_dims] a arrayaddr#79 arrayaddr#81 arrayaddr#83 byte*#1878 c dataidx#39 dataidx#41 fieldtype#57 i i#44037 i#44117 i#44127 i#44153 i#44163 i#44185 i#44247 instr*#2298 j mut mut?#1205 n numtype#549 numtype#551 numtype#553 numtype#555 numtype#557 numtype#559 numtype#561 state#2183 storagetype#743 typeidx#1674 typeidx#1676 typeidx#1678 x y z zt -[visit_exp `%;%`_config{state#2183, `instr*#2298`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#79}(a) `CONST`_instr{numtype#549}(`I32`_numtype, i) `CONST`_instr{numtype#551}(`I32`_numtype, j) `CONST`_instr{numtype#553}(`I32`_numtype, `%`_num_{i#44037}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1674, dataidx#39}(x, y)])] -[visit_exp state#2183] -[visit_id state#2183] -[visit_exp `instr*#2298`] -[visit_id instr*#2298] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr{arrayaddr#79}(a) `CONST`_instr{numtype#549}(`I32`_numtype, i) `CONST`_instr{numtype#551}(`I32`_numtype, j) `CONST`_instr{numtype#553}(`I32`_numtype, `%`_num_{i#44037}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1674, dataidx#39}(x, y)])] +[check_dims] a c i j mut n x y z zt +[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] +[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] [visit_exp z] [visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#79}(a) `CONST`_instr{numtype#549}(`I32`_numtype, i) `CONST`_instr{numtype#551}(`I32`_numtype, j) `CONST`_instr{numtype#553}(`I32`_numtype, `%`_num_{i#44037}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1674, dataidx#39}(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#79}(a)] -[visit_exp arrayaddr#79] -[visit_id arrayaddr#79] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] -[visit_exp `CONST`_instr{numtype#549}(`I32`_numtype, i)] -[visit_exp numtype#549] -[visit_id numtype#549] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `CONST`_instr{numtype#551}(`I32`_numtype, j)] -[visit_exp numtype#551] -[visit_id numtype#551] +[visit_exp `CONST`_instr(`I32`_numtype, j)] [visit_exp (`I32`_numtype, j)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp j] [visit_id j] -[visit_exp `CONST`_instr{numtype#553}(`I32`_numtype, `%`_num_{i#44037}(n))] -[visit_exp numtype#553] -[visit_id numtype#553] -[visit_exp (`I32`_numtype, `%`_num_{i#44037}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#44037}(n)] -[visit_exp i#44037] -[visit_id i#44037] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1674, dataidx#39}(x, y)] -[visit_exp typeidx#1674] -[visit_id typeidx#1674] -[visit_exp dataidx#39] -[visit_id dataidx#39] +[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp [`REF.ARRAY_ADDR`_instr{arrayaddr#81}(a) `CONST`_instr{numtype#555}(`I32`_numtype, i) $const($cunpack(zt), $cunpacknum_(zt, c)) `ARRAY.SET`_instr{typeidx#1676}(x) `REF.ARRAY_ADDR`_instr{arrayaddr#83}(a) `CONST`_instr{numtype#557}(`I32`_numtype, `%`_num_{i#44127}((i!`%`_num_{i#44117}.0 + 1))) `CONST`_instr{numtype#559}(`I32`_numtype, `%`_num_{i#44163}((j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))) `CONST`_instr{numtype#561}(`I32`_numtype, `%`_num_{i#44185}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_DATA`_instr{typeidx#1678, dataidx#41}(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#81}(a)] -[visit_exp arrayaddr#81] -[visit_id arrayaddr#81] +[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) $const($cunpack(zt), $cunpacknum_(zt, c)) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_DATA`_instr(x, y)]] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free -[visit_exp `CONST`_instr{numtype#555}(`I32`_numtype, i)] -[visit_exp numtype#555] -[visit_id numtype#555] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -64848,53 +53186,37 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id zt] not free [visit_exp c] [visit_id c] -[visit_exp `ARRAY.SET`_instr{typeidx#1676}(x)] -[visit_exp typeidx#1676] -[visit_id typeidx#1676] +[visit_exp `ARRAY.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_exp `REF.ARRAY_ADDR`_instr{arrayaddr#83}(a)] -[visit_exp arrayaddr#83] -[visit_id arrayaddr#83] +[visit_exp `REF.ARRAY_ADDR`_instr(a)] [visit_exp (a)] [visit_exp a] [visit_id a] not free -[visit_exp `CONST`_instr{numtype#557}(`I32`_numtype, `%`_num_{i#44127}((i!`%`_num_{i#44117}.0 + 1)))] -[visit_exp numtype#557] -[visit_id numtype#557] -[visit_exp (`I32`_numtype, `%`_num_{i#44127}((i!`%`_num_{i#44117}.0 + 1)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1)))] +[visit_exp (`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#44127}((i!`%`_num_{i#44117}.0 + 1))] -[visit_exp i#44127] -[visit_id i#44127] -[visit_exp ((i!`%`_num_{i#44117}.0 + 1))] -[visit_exp (i!`%`_num_{i#44117}.0 + 1)] -[visit_exp i!`%`_num_{i#44117}.0] -[visit_exp i!`%`_num_{i#44117}] +[visit_exp `%`_num_((i!`%`_num_.0 + 1))] +[visit_exp ((i!`%`_num_.0 + 1))] +[visit_exp (i!`%`_num_.0 + 1)] +[visit_exp i!`%`_num_.0] +[visit_exp i!`%`_num_] [visit_exp i] [visit_id i] not free -[visit_exp i#44117] -[visit_id i#44117] [visit_exp 1] -[visit_exp `CONST`_instr{numtype#559}(`I32`_numtype, `%`_num_{i#44163}((j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))))] -[visit_exp numtype#559] -[visit_id numtype#559] -[visit_exp (`I32`_numtype, `%`_num_{i#44163}((j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))))] +[visit_exp (`I32`_numtype, `%`_num_((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#44163}((j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))] -[visit_exp i#44163] -[visit_id i#44163] -[visit_exp ((j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))] -[visit_exp (j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp j!`%`_num_{i#44153}.0] -[visit_exp j!`%`_num_{i#44153}] +[visit_exp `%`_num_((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))] +[visit_exp ((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))] +[visit_exp (j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] +[visit_exp j!`%`_num_.0] +[visit_exp j!`%`_num_] [visit_exp j] [visit_id j] not free -[visit_exp i#44153] -[visit_id i#44153] [visit_exp ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (($zsize(zt) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ($zsize(zt) : nat <:> rat)] @@ -64903,15 +53225,11 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id zt] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[visit_exp `CONST`_instr{numtype#561}(`I32`_numtype, `%`_num_{i#44185}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp numtype#561] -[visit_id numtype#561] -[visit_exp (`I32`_numtype, `%`_num_{i#44185}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] +[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#44185}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp i#44185] -[visit_id i#44185] +[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - (1 : nat <:> int))] @@ -64920,31 +53238,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id n] not free [visit_exp (1 : nat <:> int)] [visit_exp 1] -[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1678, dataidx#41}(x, y)] -[visit_exp typeidx#1678] -[visit_id typeidx#1678] -[visit_exp dataidx#41] -[visit_id dataidx#41] +[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] not free [visit_exp y] [visit_id y] not free -[visit_exp ($type(z, x), `ARRAY`_comptype{fieldtype#57}(`%%`_fieldtype{`mut?#1205`, storagetype#743}(mut?{mut <- `mut?`}, zt)))] +[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] [visit_exp $type(z, x)] [visit_exp z] [visit_id z] not free [visit_exp x] [visit_id x] not free -[visit_exp `ARRAY`_comptype{fieldtype#57}(`%%`_fieldtype{`mut?#1205`, storagetype#743}(mut?{mut <- `mut?`}, zt))] -[visit_exp fieldtype#57] -[visit_id fieldtype#57] -[visit_exp (`%%`_fieldtype{`mut?#1205`, storagetype#743}(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype{`mut?#1205`, storagetype#743}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#1205`] -[visit_id mut?#1205] -[visit_exp storagetype#743] -[visit_id storagetype#743] +[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -64957,27 +53265,23 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id mut?] [visit_exp zt] [visit_id zt] not free -[visit_exp ($zbytes_(zt, c) = $data(z, y).`BYTES`_datainst{`byte*#1878`}[j!`%`_num_{i#44247}.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] +[visit_exp ($zbytes_(zt, c) = $data(z, y).`BYTES`_datainst[j!`%`_num_.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] [visit_exp $zbytes_(zt, c)] [visit_exp zt] [visit_id zt] not free [visit_exp c] [visit_id c] not free -[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1878`}[j!`%`_num_{i#44247}.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $data(z, y).`BYTES`_datainst{`byte*#1878`}] +[visit_exp $data(z, y).`BYTES`_datainst[j!`%`_num_.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] +[visit_exp $data(z, y).`BYTES`_datainst] [visit_exp $data(z, y)] [visit_exp z] [visit_id z] not free [visit_exp y] [visit_id y] not free -[visit_exp `byte*#1878`] -[visit_id byte*#1878] -[visit_exp j!`%`_num_{i#44247}.0] -[visit_exp j!`%`_num_{i#44247}] +[visit_exp j!`%`_num_.0] +[visit_exp j!`%`_num_] [visit_exp j] [visit_id j] not free -[visit_exp i#44247] -[visit_id i#44247] [visit_exp ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] [visit_exp (($zsize(zt) : nat <:> rat) / (8 : nat <:> rat))] [visit_exp ($zsize(zt) : nat <:> rat)] @@ -64986,59 +53290,47 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id zt] not free [visit_exp (8 : nat <:> rat)] [visit_exp 8] -[check_dims] heaptype#1449 heaptype#1451 ht -[visit_exp [`REF.NULL`_instr{heaptype#1449}(ht) `EXTERN.CONVERT_ANY`_instr]] -[visit_exp `REF.NULL`_instr{heaptype#1449}(ht)] -[visit_exp heaptype#1449] -[visit_id heaptype#1449] +[check_dims] ht +[visit_exp [`REF.NULL`_instr(ht) `EXTERN.CONVERT_ANY`_instr]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] [visit_exp `EXTERN.CONVERT_ANY`_instr] [visit_exp ()] -[visit_exp [`REF.NULL`_instr{heaptype#1451}(`EXTERN`_heaptype)]] -[visit_exp `REF.NULL`_instr{heaptype#1451}(`EXTERN`_heaptype)] -[visit_exp heaptype#1451] -[visit_id heaptype#1451] +[visit_exp [`REF.NULL`_instr(`EXTERN`_heaptype)]] +[visit_exp `REF.NULL`_instr(`EXTERN`_heaptype)] [visit_exp (`EXTERN`_heaptype)] [visit_exp `EXTERN`_heaptype] [visit_exp ()] -[check_dims] addrref addrref#3 +[check_dims] addrref [visit_exp [(addrref : addrref <: instr) `EXTERN.CONVERT_ANY`_instr]] [visit_exp (addrref : addrref <: instr)] [visit_exp addrref] [visit_id addrref] [visit_exp `EXTERN.CONVERT_ANY`_instr] [visit_exp ()] -[visit_exp [`REF.EXTERN`_instr{addrref#3}(addrref)]] -[visit_exp `REF.EXTERN`_instr{addrref#3}(addrref)] -[visit_exp addrref#3] -[visit_id addrref#3] +[visit_exp [`REF.EXTERN`_instr(addrref)]] +[visit_exp `REF.EXTERN`_instr(addrref)] [visit_exp (addrref)] [visit_exp addrref] [visit_id addrref] not free -[check_dims] heaptype#1453 heaptype#1455 ht -[visit_exp [`REF.NULL`_instr{heaptype#1453}(ht) `ANY.CONVERT_EXTERN`_instr]] -[visit_exp `REF.NULL`_instr{heaptype#1453}(ht)] -[visit_exp heaptype#1453] -[visit_id heaptype#1453] +[check_dims] ht +[visit_exp [`REF.NULL`_instr(ht) `ANY.CONVERT_EXTERN`_instr]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] [visit_exp `ANY.CONVERT_EXTERN`_instr] [visit_exp ()] -[visit_exp [`REF.NULL`_instr{heaptype#1455}(`ANY`_heaptype)]] -[visit_exp `REF.NULL`_instr{heaptype#1455}(`ANY`_heaptype)] -[visit_exp heaptype#1455] -[visit_id heaptype#1455] +[visit_exp [`REF.NULL`_instr(`ANY`_heaptype)]] +[visit_exp `REF.NULL`_instr(`ANY`_heaptype)] [visit_exp (`ANY`_heaptype)] [visit_exp `ANY`_heaptype] [visit_exp ()] -[check_dims] addrref addrref#5 -[visit_exp [`REF.EXTERN`_instr{addrref#5}(addrref) `ANY.CONVERT_EXTERN`_instr]] -[visit_exp `REF.EXTERN`_instr{addrref#5}(addrref)] -[visit_exp addrref#5] -[visit_id addrref#5] +[check_dims] addrref +[visit_exp [`REF.EXTERN`_instr(addrref) `ANY.CONVERT_EXTERN`_instr]] +[visit_exp `REF.EXTERN`_instr(addrref)] [visit_exp (addrref)] [visit_exp addrref] [visit_id addrref] @@ -65048,28 +53340,22 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp (addrref : addrref <: instr)] [visit_exp addrref] [visit_id addrref] not free -[check_dims] c c_1 nt numtype#563 numtype#565 numtype#567 unop -[visit_exp [`CONST`_instr{numtype#563}(nt, c_1) `UNOP`_instr{numtype#565}(nt, unop)]] -[visit_exp `CONST`_instr{numtype#563}(nt, c_1)] -[visit_exp numtype#563] -[visit_id numtype#563] +[check_dims] c c_1 nt unop +[visit_exp [`CONST`_instr(nt, c_1) `UNOP`_instr(nt, unop)]] +[visit_exp `CONST`_instr(nt, c_1)] [visit_exp (nt, c_1)] [visit_exp nt] [visit_id nt] [visit_exp c_1] [visit_id c_1] -[visit_exp `UNOP`_instr{numtype#565}(nt, unop)] -[visit_exp numtype#565] -[visit_id numtype#565] +[visit_exp `UNOP`_instr(nt, unop)] [visit_exp (nt, unop)] [visit_exp nt] [visit_id nt] not free [visit_exp unop] [visit_id unop] -[visit_exp [`CONST`_instr{numtype#567}(nt, c)]] -[visit_exp `CONST`_instr{numtype#567}(nt, c)] -[visit_exp numtype#567] -[visit_id numtype#567] +[visit_exp [`CONST`_instr(nt, c)]] +[visit_exp `CONST`_instr(nt, c)] [visit_exp (nt, c)] [visit_exp nt] [visit_id nt] not free @@ -65085,19 +53371,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id unop] not free [visit_exp c_1] [visit_id c_1] not free -[check_dims] c_1 nt numtype#569 numtype#571 unop -[visit_exp [`CONST`_instr{numtype#569}(nt, c_1) `UNOP`_instr{numtype#571}(nt, unop)]] -[visit_exp `CONST`_instr{numtype#569}(nt, c_1)] -[visit_exp numtype#569] -[visit_id numtype#569] +[check_dims] c_1 nt unop +[visit_exp [`CONST`_instr(nt, c_1) `UNOP`_instr(nt, unop)]] +[visit_exp `CONST`_instr(nt, c_1)] [visit_exp (nt, c_1)] [visit_exp nt] [visit_id nt] [visit_exp c_1] [visit_id c_1] -[visit_exp `UNOP`_instr{numtype#571}(nt, unop)] -[visit_exp numtype#571] -[visit_id numtype#571] +[visit_exp `UNOP`_instr(nt, unop)] [visit_exp (nt, unop)] [visit_exp nt] [visit_id nt] not free @@ -65115,36 +53397,28 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp c_1] [visit_id c_1] not free [visit_exp []] -[check_dims] binop c c_1 c_2 nt numtype#573 numtype#575 numtype#577 numtype#579 -[visit_exp [`CONST`_instr{numtype#573}(nt, c_1) `CONST`_instr{numtype#575}(nt, c_2) `BINOP`_instr{numtype#577}(nt, binop)]] -[visit_exp `CONST`_instr{numtype#573}(nt, c_1)] -[visit_exp numtype#573] -[visit_id numtype#573] +[check_dims] binop c c_1 c_2 nt +[visit_exp [`CONST`_instr(nt, c_1) `CONST`_instr(nt, c_2) `BINOP`_instr(nt, binop)]] +[visit_exp `CONST`_instr(nt, c_1)] [visit_exp (nt, c_1)] [visit_exp nt] [visit_id nt] [visit_exp c_1] [visit_id c_1] -[visit_exp `CONST`_instr{numtype#575}(nt, c_2)] -[visit_exp numtype#575] -[visit_id numtype#575] +[visit_exp `CONST`_instr(nt, c_2)] [visit_exp (nt, c_2)] [visit_exp nt] [visit_id nt] not free [visit_exp c_2] [visit_id c_2] -[visit_exp `BINOP`_instr{numtype#577}(nt, binop)] -[visit_exp numtype#577] -[visit_id numtype#577] +[visit_exp `BINOP`_instr(nt, binop)] [visit_exp (nt, binop)] [visit_exp nt] [visit_id nt] not free [visit_exp binop] [visit_id binop] -[visit_exp [`CONST`_instr{numtype#579}(nt, c)]] -[visit_exp `CONST`_instr{numtype#579}(nt, c)] -[visit_exp numtype#579] -[visit_id numtype#579] +[visit_exp [`CONST`_instr(nt, c)]] +[visit_exp `CONST`_instr(nt, c)] [visit_exp (nt, c)] [visit_exp nt] [visit_id nt] not free @@ -65162,27 +53436,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_1] not free [visit_exp c_2] [visit_id c_2] not free -[check_dims] binop c_1 c_2 nt numtype#581 numtype#583 numtype#585 -[visit_exp [`CONST`_instr{numtype#581}(nt, c_1) `CONST`_instr{numtype#583}(nt, c_2) `BINOP`_instr{numtype#585}(nt, binop)]] -[visit_exp `CONST`_instr{numtype#581}(nt, c_1)] -[visit_exp numtype#581] -[visit_id numtype#581] +[check_dims] binop c_1 c_2 nt +[visit_exp [`CONST`_instr(nt, c_1) `CONST`_instr(nt, c_2) `BINOP`_instr(nt, binop)]] +[visit_exp `CONST`_instr(nt, c_1)] [visit_exp (nt, c_1)] [visit_exp nt] [visit_id nt] [visit_exp c_1] [visit_id c_1] -[visit_exp `CONST`_instr{numtype#583}(nt, c_2)] -[visit_exp numtype#583] -[visit_id numtype#583] +[visit_exp `CONST`_instr(nt, c_2)] [visit_exp (nt, c_2)] [visit_exp nt] [visit_id nt] not free [visit_exp c_2] [visit_id c_2] -[visit_exp `BINOP`_instr{numtype#585}(nt, binop)] -[visit_exp numtype#585] -[visit_id numtype#585] +[visit_exp `BINOP`_instr(nt, binop)] [visit_exp (nt, binop)] [visit_exp nt] [visit_id nt] not free @@ -65202,28 +53470,22 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp c_2] [visit_id c_2] not free [visit_exp []] -[check_dims] c c_1 nt numtype#587 numtype#589 numtype#591 testop -[visit_exp [`CONST`_instr{numtype#587}(nt, c_1) `TESTOP`_instr{numtype#589}(nt, testop)]] -[visit_exp `CONST`_instr{numtype#587}(nt, c_1)] -[visit_exp numtype#587] -[visit_id numtype#587] +[check_dims] c c_1 nt testop +[visit_exp [`CONST`_instr(nt, c_1) `TESTOP`_instr(nt, testop)]] +[visit_exp `CONST`_instr(nt, c_1)] [visit_exp (nt, c_1)] [visit_exp nt] [visit_id nt] [visit_exp c_1] [visit_id c_1] -[visit_exp `TESTOP`_instr{numtype#589}(nt, testop)] -[visit_exp numtype#589] -[visit_id numtype#589] +[visit_exp `TESTOP`_instr(nt, testop)] [visit_exp (nt, testop)] [visit_exp nt] [visit_id nt] not free [visit_exp testop] [visit_id testop] -[visit_exp [`CONST`_instr{numtype#591}(`I32`_numtype, c)]] -[visit_exp `CONST`_instr{numtype#591}(`I32`_numtype, c)] -[visit_exp numtype#591] -[visit_id numtype#591] +[visit_exp [`CONST`_instr(`I32`_numtype, c)]] +[visit_exp `CONST`_instr(`I32`_numtype, c)] [visit_exp (`I32`_numtype, c)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -65239,36 +53501,28 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id testop] not free [visit_exp c_1] [visit_id c_1] not free -[check_dims] c c_1 c_2 nt numtype#593 numtype#595 numtype#597 numtype#599 relop -[visit_exp [`CONST`_instr{numtype#593}(nt, c_1) `CONST`_instr{numtype#595}(nt, c_2) `RELOP`_instr{numtype#597}(nt, relop)]] -[visit_exp `CONST`_instr{numtype#593}(nt, c_1)] -[visit_exp numtype#593] -[visit_id numtype#593] +[check_dims] c c_1 c_2 nt relop +[visit_exp [`CONST`_instr(nt, c_1) `CONST`_instr(nt, c_2) `RELOP`_instr(nt, relop)]] +[visit_exp `CONST`_instr(nt, c_1)] [visit_exp (nt, c_1)] [visit_exp nt] [visit_id nt] [visit_exp c_1] [visit_id c_1] -[visit_exp `CONST`_instr{numtype#595}(nt, c_2)] -[visit_exp numtype#595] -[visit_id numtype#595] +[visit_exp `CONST`_instr(nt, c_2)] [visit_exp (nt, c_2)] [visit_exp nt] [visit_id nt] not free [visit_exp c_2] [visit_id c_2] -[visit_exp `RELOP`_instr{numtype#597}(nt, relop)] -[visit_exp numtype#597] -[visit_id numtype#597] +[visit_exp `RELOP`_instr(nt, relop)] [visit_exp (nt, relop)] [visit_exp nt] [visit_id nt] not free [visit_exp relop] [visit_id relop] -[visit_exp [`CONST`_instr{numtype#599}(`I32`_numtype, c)]] -[visit_exp `CONST`_instr{numtype#599}(`I32`_numtype, c)] -[visit_exp numtype#599] -[visit_id numtype#599] +[visit_exp [`CONST`_instr(`I32`_numtype, c)]] +[visit_exp `CONST`_instr(`I32`_numtype, c)] [visit_exp (`I32`_numtype, c)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -65286,21 +53540,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_1] not free [visit_exp c_2] [visit_id c_2] not free -[check_dims] c c_1 cvtop nt_1 nt_2 numtype#601 numtype#603 numtype_1#5 numtype_2#5 -[visit_exp [`CONST`_instr{numtype#601}(nt_1, c_1) `CVTOP`_instr{numtype_1#5, numtype_2#5}(nt_2, nt_1, cvtop)]] -[visit_exp `CONST`_instr{numtype#601}(nt_1, c_1)] -[visit_exp numtype#601] -[visit_id numtype#601] +[check_dims] c c_1 cvtop nt_1 nt_2 +[visit_exp [`CONST`_instr(nt_1, c_1) `CVTOP`_instr(nt_2, nt_1, cvtop)]] +[visit_exp `CONST`_instr(nt_1, c_1)] [visit_exp (nt_1, c_1)] [visit_exp nt_1] [visit_id nt_1] [visit_exp c_1] [visit_id c_1] -[visit_exp `CVTOP`_instr{numtype_1#5, numtype_2#5}(nt_2, nt_1, cvtop)] -[visit_exp numtype_1#5] -[visit_id numtype_1#5] -[visit_exp numtype_2#5] -[visit_id numtype_2#5] +[visit_exp `CVTOP`_instr(nt_2, nt_1, cvtop)] [visit_exp (nt_2, nt_1, cvtop)] [visit_exp nt_2] [visit_id nt_2] @@ -65308,10 +53556,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id nt_1] not free [visit_exp cvtop] [visit_id cvtop] -[visit_exp [`CONST`_instr{numtype#603}(nt_2, c)]] -[visit_exp `CONST`_instr{numtype#603}(nt_2, c)] -[visit_exp numtype#603] -[visit_id numtype#603] +[visit_exp [`CONST`_instr(nt_2, c)]] +[visit_exp `CONST`_instr(nt_2, c)] [visit_exp (nt_2, c)] [visit_exp nt_2] [visit_id nt_2] not free @@ -65329,21 +53575,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id cvtop] not free [visit_exp c_1] [visit_id c_1] not free -[check_dims] c_1 cvtop nt_1 nt_2 numtype#605 numtype_1#7 numtype_2#7 -[visit_exp [`CONST`_instr{numtype#605}(nt_1, c_1) `CVTOP`_instr{numtype_1#7, numtype_2#7}(nt_2, nt_1, cvtop)]] -[visit_exp `CONST`_instr{numtype#605}(nt_1, c_1)] -[visit_exp numtype#605] -[visit_id numtype#605] +[check_dims] c_1 cvtop nt_1 nt_2 +[visit_exp [`CONST`_instr(nt_1, c_1) `CVTOP`_instr(nt_2, nt_1, cvtop)]] +[visit_exp `CONST`_instr(nt_1, c_1)] [visit_exp (nt_1, c_1)] [visit_exp nt_1] [visit_id nt_1] [visit_exp c_1] [visit_id c_1] -[visit_exp `CVTOP`_instr{numtype_1#7, numtype_2#7}(nt_2, nt_1, cvtop)] -[visit_exp numtype_1#7] -[visit_id numtype_1#7] -[visit_exp numtype_2#7] -[visit_id numtype_2#7] +[visit_exp `CVTOP`_instr(nt_2, nt_1, cvtop)] [visit_exp (nt_2, nt_1, cvtop)] [visit_exp nt_2] [visit_id nt_2] @@ -65365,30 +53605,22 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp c_1] [visit_id c_1] not free [visit_exp []] -[check_dims] c c_1 vectype#104 vectype#106 vectype#108 vvunop vvunop#5 -[visit_exp [`VCONST`_instr{vectype#104}(`V128`_vectype, c_1) `VVUNOP`_instr{vectype#106, vvunop#5}(`V128`_vectype, vvunop)]] -[visit_exp `VCONST`_instr{vectype#104}(`V128`_vectype, c_1)] -[visit_exp vectype#104] -[visit_id vectype#104] +[check_dims] c c_1 vvunop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VVUNOP`_instr(`V128`_vectype, vvunop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VVUNOP`_instr{vectype#106, vvunop#5}(`V128`_vectype, vvunop)] -[visit_exp vectype#106] -[visit_id vectype#106] -[visit_exp vvunop#5] -[visit_id vvunop#5] +[visit_exp `VVUNOP`_instr(`V128`_vectype, vvunop)] [visit_exp (`V128`_vectype, vvunop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp vvunop] [visit_id vvunop] -[visit_exp [`VCONST`_instr{vectype#108}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#108}(`V128`_vectype, c)] -[visit_exp vectype#108] -[visit_id vectype#108] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -65404,38 +53636,28 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id vvunop] not free [visit_exp c_1] [visit_id c_1] not free -[check_dims] c c_1 c_2 vectype#110 vectype#112 vectype#114 vectype#116 vvbinop vvbinop#5 -[visit_exp [`VCONST`_instr{vectype#110}(`V128`_vectype, c_1) `VCONST`_instr{vectype#112}(`V128`_vectype, c_2) `VVBINOP`_instr{vectype#114, vvbinop#5}(`V128`_vectype, vvbinop)]] -[visit_exp `VCONST`_instr{vectype#110}(`V128`_vectype, c_1)] -[visit_exp vectype#110] -[visit_id vectype#110] +[check_dims] c c_1 c_2 vvbinop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VVBINOP`_instr(`V128`_vectype, vvbinop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VCONST`_instr{vectype#112}(`V128`_vectype, c_2)] -[visit_exp vectype#112] -[visit_id vectype#112] +[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] [visit_exp (`V128`_vectype, c_2)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_2] [visit_id c_2] -[visit_exp `VVBINOP`_instr{vectype#114, vvbinop#5}(`V128`_vectype, vvbinop)] -[visit_exp vectype#114] -[visit_id vectype#114] -[visit_exp vvbinop#5] -[visit_id vvbinop#5] +[visit_exp `VVBINOP`_instr(`V128`_vectype, vvbinop)] [visit_exp (`V128`_vectype, vvbinop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp vvbinop] [visit_id vvbinop] -[visit_exp [`VCONST`_instr{vectype#116}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#116}(`V128`_vectype, c)] -[visit_exp vectype#116] -[visit_id vectype#116] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -65453,46 +53675,34 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_1] not free [visit_exp c_2] [visit_id c_2] not free -[check_dims] c c_1 c_2 c_3 vectype#118 vectype#120 vectype#122 vectype#124 vectype#126 vvternop vvternop#5 -[visit_exp [`VCONST`_instr{vectype#118}(`V128`_vectype, c_1) `VCONST`_instr{vectype#120}(`V128`_vectype, c_2) `VCONST`_instr{vectype#122}(`V128`_vectype, c_3) `VVTERNOP`_instr{vectype#124, vvternop#5}(`V128`_vectype, vvternop)]] -[visit_exp `VCONST`_instr{vectype#118}(`V128`_vectype, c_1)] -[visit_exp vectype#118] -[visit_id vectype#118] +[check_dims] c c_1 c_2 c_3 vvternop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VVTERNOP`_instr(`V128`_vectype, vvternop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VCONST`_instr{vectype#120}(`V128`_vectype, c_2)] -[visit_exp vectype#120] -[visit_id vectype#120] +[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] [visit_exp (`V128`_vectype, c_2)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_2] [visit_id c_2] -[visit_exp `VCONST`_instr{vectype#122}(`V128`_vectype, c_3)] -[visit_exp vectype#122] -[visit_id vectype#122] +[visit_exp `VCONST`_instr(`V128`_vectype, c_3)] [visit_exp (`V128`_vectype, c_3)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_3] [visit_id c_3] -[visit_exp `VVTERNOP`_instr{vectype#124, vvternop#5}(`V128`_vectype, vvternop)] -[visit_exp vectype#124] -[visit_id vectype#124] -[visit_exp vvternop#5] -[visit_id vvternop#5] +[visit_exp `VVTERNOP`_instr(`V128`_vectype, vvternop)] [visit_exp (`V128`_vectype, vvternop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp vvternop] [visit_id vvternop] -[visit_exp [`VCONST`_instr{vectype#126}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#126}(`V128`_vectype, c)] -[visit_exp vectype#126] -[visit_id vectype#126] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -65512,30 +53722,22 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_2] not free [visit_exp c_3] [visit_id c_3] not free -[check_dims] c c_1 numtype#607 vectype#128 vectype#130 vvtestop#5 -[visit_exp [`VCONST`_instr{vectype#128}(`V128`_vectype, c_1) `VVTESTOP`_instr{vectype#130, vvtestop#5}(`V128`_vectype, `ANY_TRUE`_vvtestop)]] -[visit_exp `VCONST`_instr{vectype#128}(`V128`_vectype, c_1)] -[visit_exp vectype#128] -[visit_id vectype#128] +[check_dims] c c_1 +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VVTESTOP`_instr{vectype#130, vvtestop#5}(`V128`_vectype, `ANY_TRUE`_vvtestop)] -[visit_exp vectype#130] -[visit_id vectype#130] -[visit_exp vvtestop#5] -[visit_id vvtestop#5] +[visit_exp `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop)] [visit_exp (`V128`_vectype, `ANY_TRUE`_vvtestop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp `ANY_TRUE`_vvtestop] [visit_exp ()] -[visit_exp [`CONST`_instr{numtype#607}(`I32`_numtype, c)]] -[visit_exp `CONST`_instr{numtype#607}(`I32`_numtype, c)] -[visit_exp numtype#607] -[visit_id numtype#607] +[visit_exp [`CONST`_instr(`I32`_numtype, c)]] +[visit_exp `CONST`_instr(`I32`_numtype, c)] [visit_exp (`I32`_numtype, c)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -65550,28 +53752,22 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp ()] [visit_exp c_1] [visit_id c_1] not free -[check_dims] c c_1 sh shape#681 vectype#132 vectype#134 vunop -[visit_exp [`VCONST`_instr{vectype#132}(`V128`_vectype, c_1) `VUNOP`_instr{shape#681}(sh, vunop)]] -[visit_exp `VCONST`_instr{vectype#132}(`V128`_vectype, c_1)] -[visit_exp vectype#132] -[visit_id vectype#132] +[check_dims] c c_1 sh vunop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VUNOP`_instr(sh, vunop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VUNOP`_instr{shape#681}(sh, vunop)] -[visit_exp shape#681] -[visit_id shape#681] +[visit_exp `VUNOP`_instr(sh, vunop)] [visit_exp (sh, vunop)] [visit_exp sh] [visit_id sh] [visit_exp vunop] [visit_id vunop] -[visit_exp [`VCONST`_instr{vectype#134}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#134}(`V128`_vectype, c)] -[visit_exp vectype#134] -[visit_id vectype#134] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -65587,19 +53783,15 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id vunop] not free [visit_exp c_1] [visit_id c_1] not free -[check_dims] c_1 sh shape#683 vectype#136 vunop -[visit_exp [`VCONST`_instr{vectype#136}(`V128`_vectype, c_1) `VUNOP`_instr{shape#683}(sh, vunop)]] -[visit_exp `VCONST`_instr{vectype#136}(`V128`_vectype, c_1)] -[visit_exp vectype#136] -[visit_id vectype#136] +[check_dims] c_1 sh vunop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VUNOP`_instr(sh, vunop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VUNOP`_instr{shape#683}(sh, vunop)] -[visit_exp shape#683] -[visit_id shape#683] +[visit_exp `VUNOP`_instr(sh, vunop)] [visit_exp (sh, vunop)] [visit_exp sh] [visit_id sh] @@ -65617,36 +53809,28 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp c_1] [visit_id c_1] not free [visit_exp []] -[check_dims] c c_1 c_2 sh shape#685 vbinop vectype#138 vectype#140 vectype#142 -[visit_exp [`VCONST`_instr{vectype#138}(`V128`_vectype, c_1) `VCONST`_instr{vectype#140}(`V128`_vectype, c_2) `VBINOP`_instr{shape#685}(sh, vbinop)]] -[visit_exp `VCONST`_instr{vectype#138}(`V128`_vectype, c_1)] -[visit_exp vectype#138] -[visit_id vectype#138] +[check_dims] c c_1 c_2 sh vbinop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VBINOP`_instr(sh, vbinop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VCONST`_instr{vectype#140}(`V128`_vectype, c_2)] -[visit_exp vectype#140] -[visit_id vectype#140] +[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] [visit_exp (`V128`_vectype, c_2)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_2] [visit_id c_2] -[visit_exp `VBINOP`_instr{shape#685}(sh, vbinop)] -[visit_exp shape#685] -[visit_id shape#685] +[visit_exp `VBINOP`_instr(sh, vbinop)] [visit_exp (sh, vbinop)] [visit_exp sh] [visit_id sh] [visit_exp vbinop] [visit_id vbinop] -[visit_exp [`VCONST`_instr{vectype#142}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#142}(`V128`_vectype, c)] -[visit_exp vectype#142] -[visit_id vectype#142] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -65664,27 +53848,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_1] not free [visit_exp c_2] [visit_id c_2] not free -[check_dims] c_1 c_2 sh shape#687 vbinop vectype#144 vectype#146 -[visit_exp [`VCONST`_instr{vectype#144}(`V128`_vectype, c_1) `VCONST`_instr{vectype#146}(`V128`_vectype, c_2) `VBINOP`_instr{shape#687}(sh, vbinop)]] -[visit_exp `VCONST`_instr{vectype#144}(`V128`_vectype, c_1)] -[visit_exp vectype#144] -[visit_id vectype#144] +[check_dims] c_1 c_2 sh vbinop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VBINOP`_instr(sh, vbinop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VCONST`_instr{vectype#146}(`V128`_vectype, c_2)] -[visit_exp vectype#146] -[visit_id vectype#146] +[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] [visit_exp (`V128`_vectype, c_2)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_2] [visit_id c_2] -[visit_exp `VBINOP`_instr{shape#687}(sh, vbinop)] -[visit_exp shape#687] -[visit_id shape#687] +[visit_exp `VBINOP`_instr(sh, vbinop)] [visit_exp (sh, vbinop)] [visit_exp sh] [visit_id sh] @@ -65704,44 +53882,34 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp c_2] [visit_id c_2] not free [visit_exp []] -[check_dims] c c_1 c_2 c_3 sh shape#689 vectype#148 vectype#150 vectype#152 vectype#154 vternop -[visit_exp [`VCONST`_instr{vectype#148}(`V128`_vectype, c_1) `VCONST`_instr{vectype#150}(`V128`_vectype, c_2) `VCONST`_instr{vectype#152}(`V128`_vectype, c_3) `VTERNOP`_instr{shape#689}(sh, vternop)]] -[visit_exp `VCONST`_instr{vectype#148}(`V128`_vectype, c_1)] -[visit_exp vectype#148] -[visit_id vectype#148] +[check_dims] c c_1 c_2 c_3 sh vternop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VTERNOP`_instr(sh, vternop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VCONST`_instr{vectype#150}(`V128`_vectype, c_2)] -[visit_exp vectype#150] -[visit_id vectype#150] +[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] [visit_exp (`V128`_vectype, c_2)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_2] [visit_id c_2] -[visit_exp `VCONST`_instr{vectype#152}(`V128`_vectype, c_3)] -[visit_exp vectype#152] -[visit_id vectype#152] +[visit_exp `VCONST`_instr(`V128`_vectype, c_3)] [visit_exp (`V128`_vectype, c_3)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_3] [visit_id c_3] -[visit_exp `VTERNOP`_instr{shape#689}(sh, vternop)] -[visit_exp shape#689] -[visit_id shape#689] +[visit_exp `VTERNOP`_instr(sh, vternop)] [visit_exp (sh, vternop)] [visit_exp sh] [visit_id sh] [visit_exp vternop] [visit_id vternop] -[visit_exp [`VCONST`_instr{vectype#154}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#154}(`V128`_vectype, c)] -[visit_exp vectype#154] -[visit_id vectype#154] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -65761,35 +53929,27 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_2] not free [visit_exp c_3] [visit_id c_3] not free -[check_dims] c_1 c_2 c_3 sh shape#691 vectype#156 vectype#158 vectype#160 vternop -[visit_exp [`VCONST`_instr{vectype#156}(`V128`_vectype, c_1) `VCONST`_instr{vectype#158}(`V128`_vectype, c_2) `VCONST`_instr{vectype#160}(`V128`_vectype, c_3) `VTERNOP`_instr{shape#691}(sh, vternop)]] -[visit_exp `VCONST`_instr{vectype#156}(`V128`_vectype, c_1)] -[visit_exp vectype#156] -[visit_id vectype#156] +[check_dims] c_1 c_2 c_3 sh vternop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VTERNOP`_instr(sh, vternop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VCONST`_instr{vectype#158}(`V128`_vectype, c_2)] -[visit_exp vectype#158] -[visit_id vectype#158] +[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] [visit_exp (`V128`_vectype, c_2)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_2] [visit_id c_2] -[visit_exp `VCONST`_instr{vectype#160}(`V128`_vectype, c_3)] -[visit_exp vectype#160] -[visit_id vectype#160] +[visit_exp `VCONST`_instr(`V128`_vectype, c_3)] [visit_exp (`V128`_vectype, c_3)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_3] [visit_id c_3] -[visit_exp `VTERNOP`_instr{shape#691}(sh, vternop)] -[visit_exp shape#691] -[visit_id shape#691] +[visit_exp `VTERNOP`_instr(sh, vternop)] [visit_exp (sh, vternop)] [visit_exp sh] [visit_id sh] @@ -65811,49 +53971,35 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp c_3] [visit_id c_3] not free [visit_exp []] -[check_dims] Jnn M c c_1 dim#7525 dim#7537 i i#45296 i#45303 i#45322 i#45329 i#45428 i#45438 lanetype#7525 lanetype#7537 numtype#609 shape#693 vectype#162 -[visit_exp [`VCONST`_instr{vectype#162}(`V128`_vectype, c_1) `VTESTOP`_instr{shape#693}(`%X%`_shape{lanetype#7525, dim#7525, i#45296}((Jnn : Jnn <: lanetype), `%`_dim{i#45303}(M)), `ALL_TRUE`_vtestop_)]] -[visit_exp `VCONST`_instr{vectype#162}(`V128`_vectype, c_1)] -[visit_exp vectype#162] -[visit_id vectype#162] +[check_dims] Jnn M c c_1 i +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VTESTOP`_instr(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ALL_TRUE`_vtestop_)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VTESTOP`_instr{shape#693}(`%X%`_shape{lanetype#7525, dim#7525, i#45296}((Jnn : Jnn <: lanetype), `%`_dim{i#45303}(M)), `ALL_TRUE`_vtestop_)] -[visit_exp shape#693] -[visit_id shape#693] -[visit_exp (`%X%`_shape{lanetype#7525, dim#7525, i#45296}((Jnn : Jnn <: lanetype), `%`_dim{i#45303}(M)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape{lanetype#7525, dim#7525, i#45296}((Jnn : Jnn <: lanetype), `%`_dim{i#45303}(M))] -[visit_exp lanetype#7525] -[visit_id lanetype#7525] -[visit_exp dim#7525] -[visit_id dim#7525] -[visit_exp i#45296] -[visit_id i#45296] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#45303}(M))] +[visit_exp `VTESTOP`_instr(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ALL_TRUE`_vtestop_)] +[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] -[visit_exp `%`_dim{i#45303}(M)] -[visit_exp i#45303] -[visit_id i#45303] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] [visit_exp `ALL_TRUE`_vtestop_] [visit_exp ()] -[visit_exp [`CONST`_instr{numtype#609}(`I32`_numtype, c)]] -[visit_exp `CONST`_instr{numtype#609}(`I32`_numtype, c)] -[visit_exp numtype#609] -[visit_id numtype#609] +[visit_exp [`CONST`_instr(`I32`_numtype, c)]] +[visit_exp `CONST`_instr(`I32`_numtype, c)] [visit_exp (`I32`_numtype, c)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp (i*{i <- `i*`} = $lanes_(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M)), c_1))] +[visit_exp (i*{i <- `i*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1))] [visit_exp i*{i <- `i*`}] [scope_enter i] [visit_exp i] @@ -65863,87 +54009,61 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `i*`] [visit_id i*] no dims [visit_id i*] -[visit_exp $lanes_(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M)), c_1)] -[visit_exp `%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))] -[visit_exp lanetype#7537] -[visit_id lanetype#7537] -[visit_exp dim#7537] -[visit_id dim#7537] -[visit_exp i#45322] -[visit_id i#45322] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))] +[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)] +[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] +[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] [visit_exp (Jnn : Jnn <: lanetype)] [visit_exp Jnn] [visit_id Jnn] not free -[visit_exp `%`_dim{i#45329}(M)] -[visit_exp i#45329] -[visit_id i#45329] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp c_1] [visit_id c_1] not free -[visit_exp (c!`%`_num_{i#45438}.0 = $prod($inez_($jsizenn(Jnn), i)!`%`_u32{i#45428}.0*{i <- `i*`, i#45428 <- `i#45428*`}))] -[visit_exp c!`%`_num_{i#45438}.0] -[visit_exp c!`%`_num_{i#45438}] +[visit_exp (c!`%`_num_.0 = $prod($inez_($jsizenn(Jnn), i)!`%`_u32.0*{i <- `i*`}))] +[visit_exp c!`%`_num_.0] +[visit_exp c!`%`_num_] [visit_exp c] [visit_id c] not free -[visit_exp i#45438] -[visit_id i#45438] -[visit_exp $prod($inez_($jsizenn(Jnn), i)!`%`_u32{i#45428}.0*{i <- `i*`, i#45428 <- `i#45428*`})] -[visit_exp $inez_($jsizenn(Jnn), i)!`%`_u32{i#45428}.0*{i <- `i*`, i#45428 <- `i#45428*`}] +[visit_exp $prod($inez_($jsizenn(Jnn), i)!`%`_u32.0*{i <- `i*`})] +[visit_exp $inez_($jsizenn(Jnn), i)!`%`_u32.0*{i <- `i*`}] [scope_enter i] -[scope_enter i#45428] -[visit_exp $inez_($jsizenn(Jnn), i)!`%`_u32{i#45428}.0] -[visit_exp $inez_($jsizenn(Jnn), i)!`%`_u32{i#45428}] +[visit_exp $inez_($jsizenn(Jnn), i)!`%`_u32.0] +[visit_exp $inez_($jsizenn(Jnn), i)!`%`_u32] [visit_exp $inez_($jsizenn(Jnn), i)] [visit_exp $jsizenn(Jnn)] [visit_exp Jnn] [visit_id Jnn] not free [visit_exp i] [visit_id i] not free -[visit_exp i#45428] -[visit_id i#45428] not free [visit_id i] not free -[visit_id i#45428] not free -[scope_exit i#45428] [scope_exit i] [visit_exp `i*`] [visit_id i*] not free [visit_id i*] no dims -[visit_exp `i#45428*`] -[visit_id i#45428*] no dims -[visit_id i#45428*] -[check_dims] c c_1 c_2 sh shape#695 vectype#164 vectype#166 vectype#168 vrelop -[visit_exp [`VCONST`_instr{vectype#164}(`V128`_vectype, c_1) `VCONST`_instr{vectype#166}(`V128`_vectype, c_2) `VRELOP`_instr{shape#695}(sh, vrelop)]] -[visit_exp `VCONST`_instr{vectype#164}(`V128`_vectype, c_1)] -[visit_exp vectype#164] -[visit_id vectype#164] +[check_dims] c c_1 c_2 sh vrelop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VRELOP`_instr(sh, vrelop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VCONST`_instr{vectype#166}(`V128`_vectype, c_2)] -[visit_exp vectype#166] -[visit_id vectype#166] +[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] [visit_exp (`V128`_vectype, c_2)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_2] [visit_id c_2] -[visit_exp `VRELOP`_instr{shape#695}(sh, vrelop)] -[visit_exp shape#695] -[visit_id shape#695] +[visit_exp `VRELOP`_instr(sh, vrelop)] [visit_exp (sh, vrelop)] [visit_exp sh] [visit_id sh] [visit_exp vrelop] [visit_id vrelop] -[visit_exp [`VCONST`_instr{vectype#168}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#168}(`V128`_vectype, c)] -[visit_exp vectype#168] -[visit_id vectype#168] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -65961,36 +54081,28 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_1] not free [visit_exp c_2] [visit_id c_2] not free -[check_dims] c c_1 i ishape#9 numtype#611 sh vectype#170 vectype#172 vshiftop -[visit_exp [`VCONST`_instr{vectype#170}(`V128`_vectype, c_1) `CONST`_instr{numtype#611}(`I32`_numtype, i) `VSHIFTOP`_instr{ishape#9}(sh, vshiftop)]] -[visit_exp `VCONST`_instr{vectype#170}(`V128`_vectype, c_1)] -[visit_exp vectype#170] -[visit_id vectype#170] +[check_dims] c c_1 i sh vshiftop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `CONST`_instr(`I32`_numtype, i) `VSHIFTOP`_instr(sh, vshiftop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `CONST`_instr{numtype#611}(`I32`_numtype, i)] -[visit_exp numtype#611] -[visit_id numtype#611] +[visit_exp `CONST`_instr(`I32`_numtype, i)] [visit_exp (`I32`_numtype, i)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp i] [visit_id i] -[visit_exp `VSHIFTOP`_instr{ishape#9}(sh, vshiftop)] -[visit_exp ishape#9] -[visit_id ishape#9] +[visit_exp `VSHIFTOP`_instr(sh, vshiftop)] [visit_exp (sh, vshiftop)] [visit_exp sh] [visit_id sh] [visit_exp vshiftop] [visit_id vshiftop] -[visit_exp [`VCONST`_instr{vectype#172}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#172}(`V128`_vectype, c)] -[visit_exp vectype#172] -[visit_id vectype#172] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -66008,26 +54120,20 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_1] not free [visit_exp i] [visit_id i] not free -[check_dims] c c_1 ishape#11 numtype#613 sh vectype#174 -[visit_exp [`VCONST`_instr{vectype#174}(`V128`_vectype, c_1) `VBITMASK`_instr{ishape#11}(sh)]] -[visit_exp `VCONST`_instr{vectype#174}(`V128`_vectype, c_1)] -[visit_exp vectype#174] -[visit_id vectype#174] +[check_dims] c c_1 sh +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VBITMASK`_instr(sh)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VBITMASK`_instr{ishape#11}(sh)] -[visit_exp ishape#11] -[visit_id ishape#11] +[visit_exp `VBITMASK`_instr(sh)] [visit_exp (sh)] [visit_exp sh] [visit_id sh] -[visit_exp [`CONST`_instr{numtype#613}(`I32`_numtype, c)]] -[visit_exp `CONST`_instr{numtype#613}(`I32`_numtype, c)] -[visit_exp numtype#613] -[visit_id numtype#613] +[visit_exp [`CONST`_instr(`I32`_numtype, c)]] +[visit_exp `CONST`_instr(`I32`_numtype, c)] [visit_exp (`I32`_numtype, c)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -66041,36 +54147,28 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id sh] not free [visit_exp c_1] [visit_id c_1] not free -[check_dims] bshape#9 c c_1 c_2 sh swizzlop vectype#176 vectype#178 vectype#180 -[visit_exp [`VCONST`_instr{vectype#176}(`V128`_vectype, c_1) `VCONST`_instr{vectype#178}(`V128`_vectype, c_2) `VSWIZZLOP`_instr{bshape#9}(sh, swizzlop)]] -[visit_exp `VCONST`_instr{vectype#176}(`V128`_vectype, c_1)] -[visit_exp vectype#176] -[visit_id vectype#176] +[check_dims] c c_1 c_2 sh swizzlop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VSWIZZLOP`_instr(sh, swizzlop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VCONST`_instr{vectype#178}(`V128`_vectype, c_2)] -[visit_exp vectype#178] -[visit_id vectype#178] +[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] [visit_exp (`V128`_vectype, c_2)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_2] [visit_id c_2] -[visit_exp `VSWIZZLOP`_instr{bshape#9}(sh, swizzlop)] -[visit_exp bshape#9] -[visit_id bshape#9] +[visit_exp `VSWIZZLOP`_instr(sh, swizzlop)] [visit_exp (sh, swizzlop)] [visit_exp sh] [visit_id sh] [visit_exp swizzlop] [visit_id swizzlop] -[visit_exp [`VCONST`_instr{vectype#180}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#180}(`V128`_vectype, c)] -[visit_exp vectype#180] -[visit_id vectype#180] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -66088,33 +54186,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_1] not free [visit_exp c_2] [visit_id c_2] not free -[check_dims] bshape#11 c c_1 c_2 i i#45740 laneidx*#5 sh shape#733 vectype#182 vectype#184 vectype#186 -[visit_exp [`VCONST`_instr{vectype#182}(`V128`_vectype, c_1) `VCONST`_instr{vectype#184}(`V128`_vectype, c_2) `VSHUFFLE`_instr{bshape#11, `laneidx*#5`, i#45740, shape#733}(sh, i*{i <- `i*`})]] -[visit_exp `VCONST`_instr{vectype#182}(`V128`_vectype, c_1)] -[visit_exp vectype#182] -[visit_id vectype#182] +[check_dims] c c_1 c_2 i sh +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VSHUFFLE`_instr(sh, i*{i <- `i*`})]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VCONST`_instr{vectype#184}(`V128`_vectype, c_2)] -[visit_exp vectype#184] -[visit_id vectype#184] +[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] [visit_exp (`V128`_vectype, c_2)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_2] [visit_id c_2] -[visit_exp `VSHUFFLE`_instr{bshape#11, `laneidx*#5`, i#45740, shape#733}(sh, i*{i <- `i*`})] -[visit_exp bshape#11] -[visit_id bshape#11] -[visit_exp `laneidx*#5`] -[visit_id laneidx*#5] -[visit_exp i#45740] -[visit_id i#45740] -[visit_exp shape#733] -[visit_id shape#733] +[visit_exp `VSHUFFLE`_instr(sh, i*{i <- `i*`})] [visit_exp (sh, i*{i <- `i*`})] [visit_exp sh] [visit_id sh] @@ -66127,10 +54213,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `i*`] [visit_id i*] no dims [visit_id i*] -[visit_exp [`VCONST`_instr{vectype#186}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#186}(`V128`_vectype, c)] -[visit_exp vectype#186] -[visit_id vectype#186] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -66155,63 +54239,41 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_1] not free [visit_exp c_2] [visit_id c_2] not free -[check_dims] Lnn M c c_1 dim#7575 dim#7587 i#45836 i#45843 i#45862 i#45869 lanetype#7575 lanetype#7587 numtype#615 shape#746 vectype#188 -[visit_exp [`CONST`_instr{numtype#615}($lunpack(Lnn), c_1) `VSPLAT`_instr{shape#746}(`%X%`_shape{lanetype#7575, dim#7575, i#45836}(Lnn, `%`_dim{i#45843}(M)))]] -[visit_exp `CONST`_instr{numtype#615}($lunpack(Lnn), c_1)] -[visit_exp numtype#615] -[visit_id numtype#615] +[check_dims] Lnn M c c_1 +[visit_exp [`CONST`_instr($lunpack(Lnn), c_1) `VSPLAT`_instr(`%X%`_shape(Lnn, `%`_dim(M)))]] +[visit_exp `CONST`_instr($lunpack(Lnn), c_1)] [visit_exp ($lunpack(Lnn), c_1)] [visit_exp $lunpack(Lnn)] [visit_exp Lnn] [visit_id Lnn] [visit_exp c_1] [visit_id c_1] -[visit_exp `VSPLAT`_instr{shape#746}(`%X%`_shape{lanetype#7575, dim#7575, i#45836}(Lnn, `%`_dim{i#45843}(M)))] -[visit_exp shape#746] -[visit_id shape#746] -[visit_exp (`%X%`_shape{lanetype#7575, dim#7575, i#45836}(Lnn, `%`_dim{i#45843}(M)))] -[visit_exp `%X%`_shape{lanetype#7575, dim#7575, i#45836}(Lnn, `%`_dim{i#45843}(M))] -[visit_exp lanetype#7575] -[visit_id lanetype#7575] -[visit_exp dim#7575] -[visit_id dim#7575] -[visit_exp i#45836] -[visit_id i#45836] -[visit_exp (Lnn, `%`_dim{i#45843}(M))] +[visit_exp `VSPLAT`_instr(`%X%`_shape(Lnn, `%`_dim(M)))] +[visit_exp (`%X%`_shape(Lnn, `%`_dim(M)))] +[visit_exp `%X%`_shape(Lnn, `%`_dim(M))] +[visit_exp (Lnn, `%`_dim(M))] [visit_exp Lnn] [visit_id Lnn] not free -[visit_exp `%`_dim{i#45843}(M)] -[visit_exp i#45843] -[visit_id i#45843] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] -[visit_exp [`VCONST`_instr{vectype#188}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#188}(`V128`_vectype, c)] -[visit_exp vectype#188] -[visit_id vectype#188] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp (c = $inv_lanes_(`%X%`_shape{lanetype#7587, dim#7587, i#45862}(Lnn, `%`_dim{i#45869}(M)), $lpacknum_(Lnn, c_1)^M{}))] +[visit_exp (c = $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lpacknum_(Lnn, c_1)^M{}))] [visit_exp c] [visit_id c] not free -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#7587, dim#7587, i#45862}(Lnn, `%`_dim{i#45869}(M)), $lpacknum_(Lnn, c_1)^M{})] -[visit_exp `%X%`_shape{lanetype#7587, dim#7587, i#45862}(Lnn, `%`_dim{i#45869}(M))] -[visit_exp lanetype#7587] -[visit_id lanetype#7587] -[visit_exp dim#7587] -[visit_id dim#7587] -[visit_exp i#45862] -[visit_id i#45862] -[visit_exp (Lnn, `%`_dim{i#45869}(M))] +[visit_exp $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lpacknum_(Lnn, c_1)^M{})] +[visit_exp `%X%`_shape(Lnn, `%`_dim(M))] +[visit_exp (Lnn, `%`_dim(M))] [visit_exp Lnn] [visit_id Lnn] not free -[visit_exp `%`_dim{i#45869}(M)] -[visit_exp i#45869] -[visit_id i#45869] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free @@ -66223,115 +54285,71 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_1] not free [visit_exp M] [visit_id M] not free -[check_dims] M c_1 c_2 dim#7610 dim#7622 i i#45931 i#45938 i#45957 i#45964 i#45984 laneidx#25 lanetype#7610 lanetype#7622 nt numtype#617 shape#748 sx?#27 vectype#190 -[visit_exp [`VCONST`_instr{vectype#190}(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr{shape#748, `sx?#27`, laneidx#25}(`%X%`_shape{lanetype#7610, dim#7610, i#45931}((nt : numtype <: lanetype), `%`_dim{i#45938}(M)), ?(), i)]] -[visit_exp `VCONST`_instr{vectype#190}(`V128`_vectype, c_1)] -[visit_exp vectype#190] -[visit_id vectype#190] +[check_dims] M c_1 c_2 i nt +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), ?(), i)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VEXTRACT_LANE`_instr{shape#748, `sx?#27`, laneidx#25}(`%X%`_shape{lanetype#7610, dim#7610, i#45931}((nt : numtype <: lanetype), `%`_dim{i#45938}(M)), ?(), i)] -[visit_exp shape#748] -[visit_id shape#748] -[visit_exp `sx?#27`] -[visit_id sx?#27] -[visit_exp laneidx#25] -[visit_id laneidx#25] -[visit_exp (`%X%`_shape{lanetype#7610, dim#7610, i#45931}((nt : numtype <: lanetype), `%`_dim{i#45938}(M)), ?(), i)] -[visit_exp `%X%`_shape{lanetype#7610, dim#7610, i#45931}((nt : numtype <: lanetype), `%`_dim{i#45938}(M))] -[visit_exp lanetype#7610] -[visit_id lanetype#7610] -[visit_exp dim#7610] -[visit_id dim#7610] -[visit_exp i#45931] -[visit_id i#45931] -[visit_exp ((nt : numtype <: lanetype), `%`_dim{i#45938}(M))] +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), ?(), i)] +[visit_exp (`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), ?(), i)] +[visit_exp `%X%`_shape((nt : numtype <: lanetype), `%`_dim(M))] +[visit_exp ((nt : numtype <: lanetype), `%`_dim(M))] [visit_exp (nt : numtype <: lanetype)] [visit_exp nt] [visit_id nt] -[visit_exp `%`_dim{i#45938}(M)] -[visit_exp i#45938] -[visit_id i#45938] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] [visit_exp ?()] [visit_exp i] [visit_id i] -[visit_exp [`CONST`_instr{numtype#617}(nt, c_2)]] -[visit_exp `CONST`_instr{numtype#617}(nt, c_2)] -[visit_exp numtype#617] -[visit_id numtype#617] +[visit_exp [`CONST`_instr(nt, c_2)]] +[visit_exp `CONST`_instr(nt, c_2)] [visit_exp (nt, c_2)] [visit_exp nt] [visit_id nt] not free [visit_exp c_2] [visit_id c_2] -[visit_exp (c_2 = $lanes_(`%X%`_shape{lanetype#7622, dim#7622, i#45957}((nt : numtype <: lanetype), `%`_dim{i#45964}(M)), c_1)[i!`%`_laneidx{i#45984}.0])] +[visit_exp (c_2 = $lanes_(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0])] [visit_exp c_2] [visit_id c_2] not free -[visit_exp $lanes_(`%X%`_shape{lanetype#7622, dim#7622, i#45957}((nt : numtype <: lanetype), `%`_dim{i#45964}(M)), c_1)[i!`%`_laneidx{i#45984}.0]] -[visit_exp $lanes_(`%X%`_shape{lanetype#7622, dim#7622, i#45957}((nt : numtype <: lanetype), `%`_dim{i#45964}(M)), c_1)] -[visit_exp `%X%`_shape{lanetype#7622, dim#7622, i#45957}((nt : numtype <: lanetype), `%`_dim{i#45964}(M))] -[visit_exp lanetype#7622] -[visit_id lanetype#7622] -[visit_exp dim#7622] -[visit_id dim#7622] -[visit_exp i#45957] -[visit_id i#45957] -[visit_exp ((nt : numtype <: lanetype), `%`_dim{i#45964}(M))] +[visit_exp $lanes_(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0]] +[visit_exp $lanes_(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), c_1)] +[visit_exp `%X%`_shape((nt : numtype <: lanetype), `%`_dim(M))] +[visit_exp ((nt : numtype <: lanetype), `%`_dim(M))] [visit_exp (nt : numtype <: lanetype)] [visit_exp nt] [visit_id nt] not free -[visit_exp `%`_dim{i#45964}(M)] -[visit_exp i#45964] -[visit_id i#45964] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp c_1] [visit_id c_1] not free -[visit_exp i!`%`_laneidx{i#45984}.0] -[visit_exp i!`%`_laneidx{i#45984}] +[visit_exp i!`%`_laneidx.0] +[visit_exp i!`%`_laneidx] [visit_exp i] [visit_id i] not free -[visit_exp i#45984] -[visit_id i#45984] -[check_dims] M c_1 c_2 dim#7639 dim#7651 i i#46018 i#46025 i#46122 i#46129 i#46149 laneidx#27 lanetype#7639 lanetype#7651 numtype#619 pt shape#750 sx sx?#29 vectype#192 -[visit_exp [`VCONST`_instr{vectype#192}(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr{shape#750, `sx?#29`, laneidx#27}(`%X%`_shape{lanetype#7639, dim#7639, i#46018}((pt : packtype <: lanetype), `%`_dim{i#46025}(M)), ?(sx), i)]] -[visit_exp `VCONST`_instr{vectype#192}(`V128`_vectype, c_1)] -[visit_exp vectype#192] -[visit_id vectype#192] +[check_dims] M c_1 c_2 i pt sx +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), ?(sx), i)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VEXTRACT_LANE`_instr{shape#750, `sx?#29`, laneidx#27}(`%X%`_shape{lanetype#7639, dim#7639, i#46018}((pt : packtype <: lanetype), `%`_dim{i#46025}(M)), ?(sx), i)] -[visit_exp shape#750] -[visit_id shape#750] -[visit_exp `sx?#29`] -[visit_id sx?#29] -[visit_exp laneidx#27] -[visit_id laneidx#27] -[visit_exp (`%X%`_shape{lanetype#7639, dim#7639, i#46018}((pt : packtype <: lanetype), `%`_dim{i#46025}(M)), ?(sx), i)] -[visit_exp `%X%`_shape{lanetype#7639, dim#7639, i#46018}((pt : packtype <: lanetype), `%`_dim{i#46025}(M))] -[visit_exp lanetype#7639] -[visit_id lanetype#7639] -[visit_exp dim#7639] -[visit_id dim#7639] -[visit_exp i#46018] -[visit_id i#46018] -[visit_exp ((pt : packtype <: lanetype), `%`_dim{i#46025}(M))] +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), ?(sx), i)] +[visit_exp (`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), ?(sx), i)] +[visit_exp `%X%`_shape((pt : packtype <: lanetype), `%`_dim(M))] +[visit_exp ((pt : packtype <: lanetype), `%`_dim(M))] [visit_exp (pt : packtype <: lanetype)] [visit_exp pt] [visit_id pt] -[visit_exp `%`_dim{i#46025}(M)] -[visit_exp i#46025] -[visit_id i#46025] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] @@ -66340,170 +54358,116 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id sx] [visit_exp i] [visit_id i] -[visit_exp [`CONST`_instr{numtype#619}(`I32`_numtype, c_2)]] -[visit_exp `CONST`_instr{numtype#619}(`I32`_numtype, c_2)] -[visit_exp numtype#619] -[visit_id numtype#619] +[visit_exp [`CONST`_instr(`I32`_numtype, c_2)]] +[visit_exp `CONST`_instr(`I32`_numtype, c_2)] [visit_exp (`I32`_numtype, c_2)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp c_2] [visit_id c_2] -[visit_exp (c_2 = $extend__($psize(pt), 32, sx, $lanes_(`%X%`_shape{lanetype#7651, dim#7651, i#46122}((pt : packtype <: lanetype), `%`_dim{i#46129}(M)), c_1)[i!`%`_laneidx{i#46149}.0]))] +[visit_exp (c_2 = $extend__($psize(pt), 32, sx, $lanes_(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0]))] [visit_exp c_2] [visit_id c_2] not free -[visit_exp $extend__($psize(pt), 32, sx, $lanes_(`%X%`_shape{lanetype#7651, dim#7651, i#46122}((pt : packtype <: lanetype), `%`_dim{i#46129}(M)), c_1)[i!`%`_laneidx{i#46149}.0])] +[visit_exp $extend__($psize(pt), 32, sx, $lanes_(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0])] [visit_exp $psize(pt)] [visit_exp pt] [visit_id pt] not free [visit_exp 32] [visit_exp sx] [visit_id sx] not free -[visit_exp $lanes_(`%X%`_shape{lanetype#7651, dim#7651, i#46122}((pt : packtype <: lanetype), `%`_dim{i#46129}(M)), c_1)[i!`%`_laneidx{i#46149}.0]] -[visit_exp $lanes_(`%X%`_shape{lanetype#7651, dim#7651, i#46122}((pt : packtype <: lanetype), `%`_dim{i#46129}(M)), c_1)] -[visit_exp `%X%`_shape{lanetype#7651, dim#7651, i#46122}((pt : packtype <: lanetype), `%`_dim{i#46129}(M))] -[visit_exp lanetype#7651] -[visit_id lanetype#7651] -[visit_exp dim#7651] -[visit_id dim#7651] -[visit_exp i#46122] -[visit_id i#46122] -[visit_exp ((pt : packtype <: lanetype), `%`_dim{i#46129}(M))] +[visit_exp $lanes_(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0]] +[visit_exp $lanes_(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), c_1)] +[visit_exp `%X%`_shape((pt : packtype <: lanetype), `%`_dim(M))] +[visit_exp ((pt : packtype <: lanetype), `%`_dim(M))] [visit_exp (pt : packtype <: lanetype)] [visit_exp pt] [visit_id pt] not free -[visit_exp `%`_dim{i#46129}(M)] -[visit_exp i#46129] -[visit_id i#46129] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp c_1] [visit_id c_1] not free -[visit_exp i!`%`_laneidx{i#46149}.0] -[visit_exp i!`%`_laneidx{i#46149}] +[visit_exp i!`%`_laneidx.0] +[visit_exp i!`%`_laneidx] [visit_exp i] [visit_id i] not free -[visit_exp i#46149] -[visit_id i#46149] -[check_dims] Lnn M c c_1 c_2 dim#7664 dim#7676 dim#7730 i i#46185 i#46192 i#46225 i#46232 i#46335 i#46342 i#46368 laneidx#29 lanetype#7664 lanetype#7676 lanetype#7730 numtype#621 shape#752 vectype#194 vectype#196 -[visit_exp [`VCONST`_instr{vectype#194}(`V128`_vectype, c_1) `CONST`_instr{numtype#621}($lunpack(Lnn), c_2) `VREPLACE_LANE`_instr{shape#752, laneidx#29}(`%X%`_shape{lanetype#7664, dim#7664, i#46185}(Lnn, `%`_dim{i#46192}(M)), i)]] -[visit_exp `VCONST`_instr{vectype#194}(`V128`_vectype, c_1)] -[visit_exp vectype#194] -[visit_id vectype#194] +[check_dims] Lnn M c c_1 c_2 i +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `CONST`_instr($lunpack(Lnn), c_2) `VREPLACE_LANE`_instr(`%X%`_shape(Lnn, `%`_dim(M)), i)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `CONST`_instr{numtype#621}($lunpack(Lnn), c_2)] -[visit_exp numtype#621] -[visit_id numtype#621] +[visit_exp `CONST`_instr($lunpack(Lnn), c_2)] [visit_exp ($lunpack(Lnn), c_2)] [visit_exp $lunpack(Lnn)] [visit_exp Lnn] [visit_id Lnn] [visit_exp c_2] [visit_id c_2] -[visit_exp `VREPLACE_LANE`_instr{shape#752, laneidx#29}(`%X%`_shape{lanetype#7664, dim#7664, i#46185}(Lnn, `%`_dim{i#46192}(M)), i)] -[visit_exp shape#752] -[visit_id shape#752] -[visit_exp laneidx#29] -[visit_id laneidx#29] -[visit_exp (`%X%`_shape{lanetype#7664, dim#7664, i#46185}(Lnn, `%`_dim{i#46192}(M)), i)] -[visit_exp `%X%`_shape{lanetype#7664, dim#7664, i#46185}(Lnn, `%`_dim{i#46192}(M))] -[visit_exp lanetype#7664] -[visit_id lanetype#7664] -[visit_exp dim#7664] -[visit_id dim#7664] -[visit_exp i#46185] -[visit_id i#46185] -[visit_exp (Lnn, `%`_dim{i#46192}(M))] +[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(Lnn, `%`_dim(M)), i)] +[visit_exp (`%X%`_shape(Lnn, `%`_dim(M)), i)] +[visit_exp `%X%`_shape(Lnn, `%`_dim(M))] +[visit_exp (Lnn, `%`_dim(M))] [visit_exp Lnn] [visit_id Lnn] not free -[visit_exp `%`_dim{i#46192}(M)] -[visit_exp i#46192] -[visit_id i#46192] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] [visit_exp i] [visit_id i] -[visit_exp [`VCONST`_instr{vectype#196}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#196}(`V128`_vectype, c)] -[visit_exp vectype#196] -[visit_id vectype#196] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp (c = $inv_lanes_(`%X%`_shape{lanetype#7676, dim#7676, i#46225}(Lnn, `%`_dim{i#46232}(M)), $lanes_(`%X%`_shape{lanetype#7730, dim#7730, i#46335}(Lnn, `%`_dim{i#46342}(M)), c_1)[[i!`%`_laneidx{i#46368}.0] = $lpacknum_(Lnn, c_2)]))] +[visit_exp (c = $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lanes_(`%X%`_shape(Lnn, `%`_dim(M)), c_1)[[i!`%`_laneidx.0] = $lpacknum_(Lnn, c_2)]))] [visit_exp c] [visit_id c] not free -[visit_exp $inv_lanes_(`%X%`_shape{lanetype#7676, dim#7676, i#46225}(Lnn, `%`_dim{i#46232}(M)), $lanes_(`%X%`_shape{lanetype#7730, dim#7730, i#46335}(Lnn, `%`_dim{i#46342}(M)), c_1)[[i!`%`_laneidx{i#46368}.0] = $lpacknum_(Lnn, c_2)])] -[visit_exp `%X%`_shape{lanetype#7676, dim#7676, i#46225}(Lnn, `%`_dim{i#46232}(M))] -[visit_exp lanetype#7676] -[visit_id lanetype#7676] -[visit_exp dim#7676] -[visit_id dim#7676] -[visit_exp i#46225] -[visit_id i#46225] -[visit_exp (Lnn, `%`_dim{i#46232}(M))] +[visit_exp $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lanes_(`%X%`_shape(Lnn, `%`_dim(M)), c_1)[[i!`%`_laneidx.0] = $lpacknum_(Lnn, c_2)])] +[visit_exp `%X%`_shape(Lnn, `%`_dim(M))] +[visit_exp (Lnn, `%`_dim(M))] [visit_exp Lnn] [visit_id Lnn] not free -[visit_exp `%`_dim{i#46232}(M)] -[visit_exp i#46232] -[visit_id i#46232] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free -[visit_exp $lanes_(`%X%`_shape{lanetype#7730, dim#7730, i#46335}(Lnn, `%`_dim{i#46342}(M)), c_1)[[i!`%`_laneidx{i#46368}.0] = $lpacknum_(Lnn, c_2)]] -[visit_exp $lanes_(`%X%`_shape{lanetype#7730, dim#7730, i#46335}(Lnn, `%`_dim{i#46342}(M)), c_1)] -[visit_exp `%X%`_shape{lanetype#7730, dim#7730, i#46335}(Lnn, `%`_dim{i#46342}(M))] -[visit_exp lanetype#7730] -[visit_id lanetype#7730] -[visit_exp dim#7730] -[visit_id dim#7730] -[visit_exp i#46335] -[visit_id i#46335] -[visit_exp (Lnn, `%`_dim{i#46342}(M))] +[visit_exp $lanes_(`%X%`_shape(Lnn, `%`_dim(M)), c_1)[[i!`%`_laneidx.0] = $lpacknum_(Lnn, c_2)]] +[visit_exp $lanes_(`%X%`_shape(Lnn, `%`_dim(M)), c_1)] +[visit_exp `%X%`_shape(Lnn, `%`_dim(M))] +[visit_exp (Lnn, `%`_dim(M))] [visit_exp Lnn] [visit_id Lnn] not free -[visit_exp `%`_dim{i#46342}(M)] -[visit_exp i#46342] -[visit_id i#46342] +[visit_exp `%`_dim(M)] [visit_exp (M)] [visit_exp M] [visit_id M] not free [visit_exp c_1] [visit_id c_1] not free -[visit_exp i!`%`_laneidx{i#46368}.0] -[visit_exp i!`%`_laneidx{i#46368}] +[visit_exp i!`%`_laneidx.0] +[visit_exp i!`%`_laneidx] [visit_exp i] [visit_id i] not free -[visit_exp i#46368] -[visit_id i#46368] [visit_exp $lpacknum_(Lnn, c_2)] [visit_exp Lnn] [visit_id Lnn] not free [visit_exp c_2] [visit_id c_2] not free -[check_dims] c c_1 ishape_1#17 ishape_2#17 sh_1 sh_2 vectype#198 vectype#200 vextunop -[visit_exp [`VCONST`_instr{vectype#198}(`V128`_vectype, c_1) `VEXTUNOP`_instr{ishape_1#17, ishape_2#17}(sh_2, sh_1, vextunop)]] -[visit_exp `VCONST`_instr{vectype#198}(`V128`_vectype, c_1)] -[visit_exp vectype#198] -[visit_id vectype#198] +[check_dims] c c_1 sh_1 sh_2 vextunop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VEXTUNOP`_instr(sh_2, sh_1, vextunop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VEXTUNOP`_instr{ishape_1#17, ishape_2#17}(sh_2, sh_1, vextunop)] -[visit_exp ishape_1#17] -[visit_id ishape_1#17] -[visit_exp ishape_2#17] -[visit_id ishape_2#17] +[visit_exp `VEXTUNOP`_instr(sh_2, sh_1, vextunop)] [visit_exp (sh_2, sh_1, vextunop)] [visit_exp sh_2] [visit_id sh_2] @@ -66511,10 +54475,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id sh_1] [visit_exp vextunop] [visit_id vextunop] -[visit_exp [`VCONST`_instr{vectype#200}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#200}(`V128`_vectype, c)] -[visit_exp vectype#200] -[visit_id vectype#200] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -66532,29 +54494,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_1] not free [visit_exp c] [visit_id c] not free -[check_dims] c c_1 c_2 ishape_1#19 ishape_2#19 sh_1 sh_2 vectype#202 vectype#204 vectype#206 vextbinop -[visit_exp [`VCONST`_instr{vectype#202}(`V128`_vectype, c_1) `VCONST`_instr{vectype#204}(`V128`_vectype, c_2) `VEXTBINOP`_instr{ishape_1#19, ishape_2#19}(sh_2, sh_1, vextbinop)]] -[visit_exp `VCONST`_instr{vectype#202}(`V128`_vectype, c_1)] -[visit_exp vectype#202] -[visit_id vectype#202] +[check_dims] c c_1 c_2 sh_1 sh_2 vextbinop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VEXTBINOP`_instr(sh_2, sh_1, vextbinop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VCONST`_instr{vectype#204}(`V128`_vectype, c_2)] -[visit_exp vectype#204] -[visit_id vectype#204] +[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] [visit_exp (`V128`_vectype, c_2)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_2] [visit_id c_2] -[visit_exp `VEXTBINOP`_instr{ishape_1#19, ishape_2#19}(sh_2, sh_1, vextbinop)] -[visit_exp ishape_1#19] -[visit_id ishape_1#19] -[visit_exp ishape_2#19] -[visit_id ishape_2#19] +[visit_exp `VEXTBINOP`_instr(sh_2, sh_1, vextbinop)] [visit_exp (sh_2, sh_1, vextbinop)] [visit_exp sh_2] [visit_id sh_2] @@ -66562,10 +54516,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id sh_1] [visit_exp vextbinop] [visit_id vextbinop] -[visit_exp [`VCONST`_instr{vectype#206}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#206}(`V128`_vectype, c)] -[visit_exp vectype#206] -[visit_id vectype#206] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -66585,37 +54537,27 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_2] not free [visit_exp c] [visit_id c] not free -[check_dims] c c_1 c_2 c_3 ishape_1#21 ishape_2#21 sh_1 sh_2 vectype#208 vectype#210 vectype#212 vectype#214 vextternop -[visit_exp [`VCONST`_instr{vectype#208}(`V128`_vectype, c_1) `VCONST`_instr{vectype#210}(`V128`_vectype, c_2) `VCONST`_instr{vectype#212}(`V128`_vectype, c_3) `VEXTTERNOP`_instr{ishape_1#21, ishape_2#21}(sh_2, sh_1, vextternop)]] -[visit_exp `VCONST`_instr{vectype#208}(`V128`_vectype, c_1)] -[visit_exp vectype#208] -[visit_id vectype#208] +[check_dims] c c_1 c_2 c_3 sh_1 sh_2 vextternop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VEXTTERNOP`_instr(sh_2, sh_1, vextternop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VCONST`_instr{vectype#210}(`V128`_vectype, c_2)] -[visit_exp vectype#210] -[visit_id vectype#210] +[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] [visit_exp (`V128`_vectype, c_2)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_2] [visit_id c_2] -[visit_exp `VCONST`_instr{vectype#212}(`V128`_vectype, c_3)] -[visit_exp vectype#212] -[visit_id vectype#212] +[visit_exp `VCONST`_instr(`V128`_vectype, c_3)] [visit_exp (`V128`_vectype, c_3)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_3] [visit_id c_3] -[visit_exp `VEXTTERNOP`_instr{ishape_1#21, ishape_2#21}(sh_2, sh_1, vextternop)] -[visit_exp ishape_1#21] -[visit_id ishape_1#21] -[visit_exp ishape_2#21] -[visit_id ishape_2#21] +[visit_exp `VEXTTERNOP`_instr(sh_2, sh_1, vextternop)] [visit_exp (sh_2, sh_1, vextternop)] [visit_exp sh_2] [visit_id sh_2] @@ -66623,10 +54565,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id sh_1] [visit_exp vextternop] [visit_id vextternop] -[visit_exp [`VCONST`_instr{vectype#214}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#214}(`V128`_vectype, c)] -[visit_exp vectype#214] -[visit_id vectype#214] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -66648,43 +54588,21 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id c_3] not free [visit_exp c] [visit_id c] not free -[check_dims] Jnn#216 Jnn#217 Jnn#218 Jnn#223 Jnn#224 c c_1 c_2 ishape_1#23 ishape_2#23 sh_1 sh_2 shape#826 shape#827 shape#828 shape#841 shape#843 sx sx#408 vectype#216 vectype#218 vectype#220 -[visit_exp [`VCONST`_instr{vectype#216}(`V128`_vectype, c_1) `VCONST`_instr{vectype#218}(`V128`_vectype, c_2) `VNARROW`_instr{ishape_1#23, ishape_2#23, sx#408, shape#826, Jnn#216, shape#827, Jnn#217, shape#828, Jnn#218}(sh_2, sh_1, sx)]] -[visit_exp `VCONST`_instr{vectype#216}(`V128`_vectype, c_1)] -[visit_exp vectype#216] -[visit_id vectype#216] +[check_dims] c c_1 c_2 sh_1 sh_2 sx +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VNARROW`_instr(sh_2, sh_1, sx)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VCONST`_instr{vectype#218}(`V128`_vectype, c_2)] -[visit_exp vectype#218] -[visit_id vectype#218] +[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] [visit_exp (`V128`_vectype, c_2)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_2] [visit_id c_2] -[visit_exp `VNARROW`_instr{ishape_1#23, ishape_2#23, sx#408, shape#826, Jnn#216, shape#827, Jnn#217, shape#828, Jnn#218}(sh_2, sh_1, sx)] -[visit_exp ishape_1#23] -[visit_id ishape_1#23] -[visit_exp ishape_2#23] -[visit_id ishape_2#23] -[visit_exp sx#408] -[visit_id sx#408] -[visit_exp shape#826] -[visit_id shape#826] -[visit_exp Jnn#216] -[visit_id Jnn#216] -[visit_exp shape#827] -[visit_id shape#827] -[visit_exp Jnn#217] -[visit_id Jnn#217] -[visit_exp shape#828] -[visit_id shape#828] -[visit_exp Jnn#218] -[visit_id Jnn#218] +[visit_exp `VNARROW`_instr(sh_2, sh_1, sx)] [visit_exp (sh_2, sh_1, sx)] [visit_exp sh_2] [visit_id sh_2] @@ -66692,56 +54610,40 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id sh_1] [visit_exp sx] [visit_id sx] -[visit_exp [`VCONST`_instr{vectype#220}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#220}(`V128`_vectype, c)] -[visit_exp vectype#220] -[visit_id vectype#220] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c] [visit_id c] -[visit_exp (c = $vnarrowop__(sh_1!`%`_ishape{shape#841, Jnn#223}.0, sh_2!`%`_ishape{shape#843, Jnn#224}.0, sx, c_1, c_2))] +[visit_exp (c = $vnarrowop__(sh_1!`%`_ishape.0, sh_2!`%`_ishape.0, sx, c_1, c_2))] [visit_exp c] [visit_id c] not free -[visit_exp $vnarrowop__(sh_1!`%`_ishape{shape#841, Jnn#223}.0, sh_2!`%`_ishape{shape#843, Jnn#224}.0, sx, c_1, c_2)] -[visit_exp sh_1!`%`_ishape{shape#841, Jnn#223}.0] -[visit_exp sh_1!`%`_ishape{shape#841, Jnn#223}] +[visit_exp $vnarrowop__(sh_1!`%`_ishape.0, sh_2!`%`_ishape.0, sx, c_1, c_2)] +[visit_exp sh_1!`%`_ishape.0] +[visit_exp sh_1!`%`_ishape] [visit_exp sh_1] [visit_id sh_1] not free -[visit_exp shape#841] -[visit_id shape#841] -[visit_exp Jnn#223] -[visit_id Jnn#223] -[visit_exp sh_2!`%`_ishape{shape#843, Jnn#224}.0] -[visit_exp sh_2!`%`_ishape{shape#843, Jnn#224}] +[visit_exp sh_2!`%`_ishape.0] +[visit_exp sh_2!`%`_ishape] [visit_exp sh_2] [visit_id sh_2] not free -[visit_exp shape#843] -[visit_id shape#843] -[visit_exp Jnn#224] -[visit_id Jnn#224] [visit_exp sx] [visit_id sx] not free [visit_exp c_1] [visit_id c_1] not free [visit_exp c_2] [visit_id c_2] not free -[check_dims] c c_1 sh_1 sh_2 shape_1#5 shape_2#5 vcvtop vectype#222 vectype#224 -[visit_exp [`VCONST`_instr{vectype#222}(`V128`_vectype, c_1) `VCVTOP`_instr{shape_1#5, shape_2#5}(sh_2, sh_1, vcvtop)]] -[visit_exp `VCONST`_instr{vectype#222}(`V128`_vectype, c_1)] -[visit_exp vectype#222] -[visit_id vectype#222] +[check_dims] c c_1 sh_1 sh_2 vcvtop +[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCVTOP`_instr(sh_2, sh_1, vcvtop)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] [visit_exp (`V128`_vectype, c_1)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp c_1] [visit_id c_1] -[visit_exp `VCVTOP`_instr{shape_1#5, shape_2#5}(sh_2, sh_1, vcvtop)] -[visit_exp shape_1#5] -[visit_id shape_1#5] -[visit_exp shape_2#5] -[visit_id shape_2#5] +[visit_exp `VCVTOP`_instr(sh_2, sh_1, vcvtop)] [visit_exp (sh_2, sh_1, vcvtop)] [visit_exp sh_2] [visit_id sh_2] @@ -66749,10 +54651,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_id sh_1] [visit_exp vcvtop] [visit_id vcvtop] -[visit_exp [`VCONST`_instr{vectype#224}(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr{vectype#224}(`V128`_vectype, c)] -[visit_exp vectype#224] -[visit_id vectype#224] +[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] +[visit_exp `VCONST`_instr(`V128`_vectype, c)] [visit_exp (`V128`_vectype, c)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -66771,7 +54671,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp c_1] [visit_id c_1] not free [check_dims] -[check_dims] instr instr*#2310 instr*#2322 state#2195 state#2207 val z z' +[check_dims] instr val z z' [visit_exp z] [visit_id z] [visit_exp instr*{instr <- `instr*`}] @@ -66794,12 +54694,8 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp (`%;%`_config{state#2195, `instr*#2310`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#2207, `instr*#2322`}(z', (val : val <: instr)*{val <- `val*`}))] -[visit_exp `%;%`_config{state#2195, `instr*#2310`}(z, instr*{instr <- `instr*`})] -[visit_exp state#2195] -[visit_id state#2195] -[visit_exp `instr*#2310`] -[visit_id instr*#2310] +[visit_exp (`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', (val : val <: instr)*{val <- `val*`}))] +[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] [visit_exp (z, instr*{instr <- `instr*`})] [visit_exp z] [visit_id z] not free @@ -66812,11 +54708,7 @@ DecD blocktype_(state : state, blocktype : blocktype) : instrtype [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp `%;%`_config{state#2207, `instr*#2322`}(z', (val : val <: instr)*{val <- `val*`})] -[visit_exp state#2207] -[visit_id state#2207] -[visit_exp `instr*#2322`] -[visit_id instr*#2322] +[visit_exp `%;%`_config(z', (val : val <: instr)*{val <- `val*`})] [visit_exp (z', (val : val <: instr)*{val <- `val*`})] [visit_exp z'] [visit_id z'] not free @@ -66839,7 +54731,7 @@ DecD alloctypes(type*) : deftype* => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $alloctypes([]) = [] -[check_dims] deftype deftype' i#46777 rectype rectype#1449 type type' x +[check_dims] deftype deftype' rectype type type' x [visit_exp type'*{type' <- `type'*`} ++ [type]] [visit_exp type'*{type' <- `type'*`}] [scope_enter type'] @@ -66892,12 +54784,10 @@ DecD alloctypes(type*) : deftype* [visit_exp `type'*`] [visit_id type'*] not free [visit_id type'*] no dims -[visit_exp (type = `TYPE`_type{rectype#1449}(rectype))] +[visit_exp (type = `TYPE`_type(rectype))] [visit_exp type] [visit_id type] not free -[visit_exp `TYPE`_type{rectype#1449}(rectype)] -[visit_exp rectype#1449] -[visit_id rectype#1449] +[visit_exp `TYPE`_type(rectype)] [visit_exp (rectype)] [visit_exp rectype] [visit_id rectype] @@ -66927,13 +54817,11 @@ DecD alloctypes(type*) : deftype* [visit_exp `deftype'*`] [visit_id deftype'*] not free [visit_id deftype'*] no dims -[visit_exp (x!`%`_idx{i#46777}.0 = |deftype'*{deftype' <- `deftype'*`}|)] -[visit_exp x!`%`_idx{i#46777}.0] -[visit_exp x!`%`_idx{i#46777}] +[visit_exp (x!`%`_idx.0 = |deftype'*{deftype' <- `deftype'*`}|)] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#46777] -[visit_id i#46777] [visit_exp |deftype'*{deftype' <- `deftype'*`}|] [visit_exp deftype'*{deftype' <- `deftype'*`}] [scope_enter deftype'] @@ -66946,83 +54834,67 @@ DecD alloctypes(type*) : deftype* [visit_id deftype'*] no dims => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctypes{`type'*` : type*, type : type, `deftype'*` : deftype*, `deftype*` : deftype*, rectype#1449 : rectype, rectype : rectype, x : idx, i#46777 : nat}(type'*{type' <- `type'*`} ++ [type]) = deftype'*{deftype' <- `deftype'*`} ++ deftype*{deftype <- `deftype*`} + def $alloctypes{`type'*` : type*, type : type, `deftype'*` : deftype*, `deftype*` : deftype*, rectype : rectype, x : idx}(type'*{type' <- `type'*`} ++ [type]) = deftype'*{deftype' <- `deftype'*`} ++ deftype*{deftype <- `deftype*`} -- if (deftype'*{deftype' <- `deftype'*`} = $alloctypes(type'*{type' <- `type'*`})) - -- if (type = `TYPE`_type{rectype#1449}(rectype)) + -- if (type = `TYPE`_type(rectype)) -- if (deftype*{deftype <- `deftype*`} = $subst_all_deftypes($rolldt(x, rectype), (deftype' : deftype <: typeuse)*{deftype' <- `deftype'*`})) - -- if (x!`%`_idx{i#46777}.0 = |deftype'*{deftype' <- `deftype'*`}|) + -- if (x!`%`_idx.0 = |deftype'*{deftype' <- `deftype'*`}|) [check_dims] _ store tagtype DecD alloctag(store : store, tagtype : tagtype) : (store, tagaddr) [visit_id store] not free [visit_id tagtype] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free -[check_dims] arrayinst*#6 datainst*#5 eleminst*#5 exninst*#5 funcinst*#6 globalinst*#6 meminst*#7 s structinst*#6 tableinst*#7 taginst taginst*#5 taginst*#6 tagtype tagtype#181 +[scope_exit _] +[scope_exit _] +[check_dims] s taginst tagtype [visit_exp s] [visit_id s] [visit_exp tagtype] [visit_id tagtype] -[visit_exp (s +++ {`TAGS`{`taginst*#5`} [taginst], `GLOBALS`{`globalinst*#6`} [], `MEMS`{`meminst*#7`} [], `TABLES`{`tableinst*#7`} [], `FUNCS`{`funcinst*#6`} [], `DATAS`{`datainst*#5`} [], `ELEMS`{`eleminst*#5`} [], `STRUCTS`{`structinst*#6`} [], `ARRAYS`{`arrayinst*#6`} [], `EXNS`{`exninst*#5`} []}, |s.`TAGS`_store{`taginst*#6`}|)] -[visit_exp s +++ {`TAGS`{`taginst*#5`} [taginst], `GLOBALS`{`globalinst*#6`} [], `MEMS`{`meminst*#7`} [], `TABLES`{`tableinst*#7`} [], `FUNCS`{`funcinst*#6`} [], `DATAS`{`datainst*#5`} [], `ELEMS`{`eleminst*#5`} [], `STRUCTS`{`structinst*#6`} [], `ARRAYS`{`arrayinst*#6`} [], `EXNS`{`exninst*#5`} []}] +[visit_exp (s +++ {`TAGS` [taginst], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`TAGS`_store|)] +[visit_exp s +++ {`TAGS` [taginst], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp s] [visit_id s] not free -[visit_exp {`TAGS`{`taginst*#5`} [taginst], `GLOBALS`{`globalinst*#6`} [], `MEMS`{`meminst*#7`} [], `TABLES`{`tableinst*#7`} [], `FUNCS`{`funcinst*#6`} [], `DATAS`{`datainst*#5`} [], `ELEMS`{`eleminst*#5`} [], `STRUCTS`{`structinst*#6`} [], `ARRAYS`{`arrayinst*#6`} [], `EXNS`{`exninst*#5`} []}] -[visit_exp `taginst*#5`] -[visit_id taginst*#5] +[visit_exp {`TAGS` [taginst], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp [taginst]] [visit_exp taginst] [visit_id taginst] -[visit_exp `globalinst*#6`] -[visit_id globalinst*#6] [visit_exp []] -[visit_exp `meminst*#7`] -[visit_id meminst*#7] [visit_exp []] -[visit_exp `tableinst*#7`] -[visit_id tableinst*#7] [visit_exp []] -[visit_exp `funcinst*#6`] -[visit_id funcinst*#6] [visit_exp []] -[visit_exp `datainst*#5`] -[visit_id datainst*#5] [visit_exp []] -[visit_exp `eleminst*#5`] -[visit_id eleminst*#5] [visit_exp []] -[visit_exp `structinst*#6`] -[visit_id structinst*#6] [visit_exp []] -[visit_exp `arrayinst*#6`] -[visit_id arrayinst*#6] [visit_exp []] -[visit_exp `exninst*#5`] -[visit_id exninst*#5] [visit_exp []] -[visit_exp |s.`TAGS`_store{`taginst*#6`}|] -[visit_exp s.`TAGS`_store{`taginst*#6`}] +[visit_exp |s.`TAGS`_store|] +[visit_exp s.`TAGS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `taginst*#6`] -[visit_id taginst*#6] -[visit_exp (taginst = {`TYPE`{tagtype#181} tagtype})] +[visit_exp (taginst = {`TYPE` tagtype})] [visit_exp taginst] [visit_id taginst] not free -[visit_exp {`TYPE`{tagtype#181} tagtype}] -[visit_exp tagtype#181] -[visit_id tagtype#181] +[visit_exp {`TYPE` tagtype}] [visit_exp tagtype] [visit_id tagtype] not free => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctag{s : store, tagtype : tagtype, `taginst*#5` : taginst*, taginst : taginst, `globalinst*#6` : globalinst*, `meminst*#7` : meminst*, `tableinst*#7` : tableinst*, `funcinst*#6` : funcinst*, `datainst*#5` : datainst*, `eleminst*#5` : eleminst*, `structinst*#6` : structinst*, `arrayinst*#6` : arrayinst*, `exninst*#5` : exninst*, `taginst*#6` : taginst*, tagtype#181 : tagtype}(s, tagtype) = (s +++ {`TAGS`{`taginst*#5`} [taginst], `GLOBALS`{`globalinst*#6`} [], `MEMS`{`meminst*#7`} [], `TABLES`{`tableinst*#7`} [], `FUNCS`{`funcinst*#6`} [], `DATAS`{`datainst*#5`} [], `ELEMS`{`eleminst*#5`} [], `STRUCTS`{`structinst*#6`} [], `ARRAYS`{`arrayinst*#6`} [], `EXNS`{`exninst*#5`} []}, |s.`TAGS`_store{`taginst*#6`}|) - -- if (taginst = {`TYPE`{tagtype#181} tagtype}) + def $alloctag{s : store, tagtype : tagtype, taginst : taginst}(s, tagtype) = (s +++ {`TAGS` [taginst], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`TAGS`_store|) + -- if (taginst = {`TYPE` tagtype}) [check_dims] _ store DecD alloctags(store : store, tagtype*) : (store, tagaddr*) [visit_id store] not free [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [check_dims] s [visit_exp s] [visit_id s] @@ -67112,81 +54984,63 @@ DecD allocglobal(store : store, globaltype : globaltype, val : val) : (store, gl [visit_id store] not free [visit_id globaltype] not free [visit_id val] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free -[check_dims] arrayinst*#7 datainst*#6 eleminst*#6 exninst*#6 funcinst*#7 globalinst globalinst*#7 globalinst*#8 globaltype globaltype#2088 meminst*#8 s structinst*#7 tableinst*#8 taginst*#7 val val#3 +[scope_exit _] +[scope_exit _] +[check_dims] globalinst globaltype s val [visit_exp s] [visit_id s] [visit_exp globaltype] [visit_id globaltype] [visit_exp val] [visit_id val] -[visit_exp (s +++ {`TAGS`{`taginst*#7`} [], `GLOBALS`{`globalinst*#7`} [globalinst], `MEMS`{`meminst*#8`} [], `TABLES`{`tableinst*#8`} [], `FUNCS`{`funcinst*#7`} [], `DATAS`{`datainst*#6`} [], `ELEMS`{`eleminst*#6`} [], `STRUCTS`{`structinst*#7`} [], `ARRAYS`{`arrayinst*#7`} [], `EXNS`{`exninst*#6`} []}, |s.`GLOBALS`_store{`globalinst*#8`}|)] -[visit_exp s +++ {`TAGS`{`taginst*#7`} [], `GLOBALS`{`globalinst*#7`} [globalinst], `MEMS`{`meminst*#8`} [], `TABLES`{`tableinst*#8`} [], `FUNCS`{`funcinst*#7`} [], `DATAS`{`datainst*#6`} [], `ELEMS`{`eleminst*#6`} [], `STRUCTS`{`structinst*#7`} [], `ARRAYS`{`arrayinst*#7`} [], `EXNS`{`exninst*#6`} []}] +[visit_exp (s +++ {`TAGS` [], `GLOBALS` [globalinst], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`GLOBALS`_store|)] +[visit_exp s +++ {`TAGS` [], `GLOBALS` [globalinst], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp s] [visit_id s] not free -[visit_exp {`TAGS`{`taginst*#7`} [], `GLOBALS`{`globalinst*#7`} [globalinst], `MEMS`{`meminst*#8`} [], `TABLES`{`tableinst*#8`} [], `FUNCS`{`funcinst*#7`} [], `DATAS`{`datainst*#6`} [], `ELEMS`{`eleminst*#6`} [], `STRUCTS`{`structinst*#7`} [], `ARRAYS`{`arrayinst*#7`} [], `EXNS`{`exninst*#6`} []}] -[visit_exp `taginst*#7`] -[visit_id taginst*#7] +[visit_exp {`TAGS` [], `GLOBALS` [globalinst], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp []] -[visit_exp `globalinst*#7`] -[visit_id globalinst*#7] [visit_exp [globalinst]] [visit_exp globalinst] [visit_id globalinst] -[visit_exp `meminst*#8`] -[visit_id meminst*#8] [visit_exp []] -[visit_exp `tableinst*#8`] -[visit_id tableinst*#8] [visit_exp []] -[visit_exp `funcinst*#7`] -[visit_id funcinst*#7] [visit_exp []] -[visit_exp `datainst*#6`] -[visit_id datainst*#6] [visit_exp []] -[visit_exp `eleminst*#6`] -[visit_id eleminst*#6] [visit_exp []] -[visit_exp `structinst*#7`] -[visit_id structinst*#7] [visit_exp []] -[visit_exp `arrayinst*#7`] -[visit_id arrayinst*#7] [visit_exp []] -[visit_exp `exninst*#6`] -[visit_id exninst*#6] [visit_exp []] -[visit_exp |s.`GLOBALS`_store{`globalinst*#8`}|] -[visit_exp s.`GLOBALS`_store{`globalinst*#8`}] +[visit_exp |s.`GLOBALS`_store|] +[visit_exp s.`GLOBALS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `globalinst*#8`] -[visit_id globalinst*#8] -[visit_exp (globalinst = {`TYPE`{globaltype#2088} globaltype, `VALUE`{val#3} val})] +[visit_exp (globalinst = {`TYPE` globaltype, `VALUE` val})] [visit_exp globalinst] [visit_id globalinst] not free -[visit_exp {`TYPE`{globaltype#2088} globaltype, `VALUE`{val#3} val}] -[visit_exp globaltype#2088] -[visit_id globaltype#2088] +[visit_exp {`TYPE` globaltype, `VALUE` val}] [visit_exp globaltype] [visit_id globaltype] not free -[visit_exp val#3] -[visit_id val#3] [visit_exp val] [visit_id val] not free => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocglobal{s : store, globaltype : globaltype, val : val, `taginst*#7` : taginst*, `globalinst*#7` : globalinst*, globalinst : globalinst, `meminst*#8` : meminst*, `tableinst*#8` : tableinst*, `funcinst*#7` : funcinst*, `datainst*#6` : datainst*, `eleminst*#6` : eleminst*, `structinst*#7` : structinst*, `arrayinst*#7` : arrayinst*, `exninst*#6` : exninst*, `globalinst*#8` : globalinst*, globaltype#2088 : globaltype, val#3 : val}(s, globaltype, val) = (s +++ {`TAGS`{`taginst*#7`} [], `GLOBALS`{`globalinst*#7`} [globalinst], `MEMS`{`meminst*#8`} [], `TABLES`{`tableinst*#8`} [], `FUNCS`{`funcinst*#7`} [], `DATAS`{`datainst*#6`} [], `ELEMS`{`eleminst*#6`} [], `STRUCTS`{`structinst*#7`} [], `ARRAYS`{`arrayinst*#7`} [], `EXNS`{`exninst*#6`} []}, |s.`GLOBALS`_store{`globalinst*#8`}|) - -- if (globalinst = {`TYPE`{globaltype#2088} globaltype, `VALUE`{val#3} val}) + def $allocglobal{s : store, globaltype : globaltype, val : val, globalinst : globalinst}(s, globaltype, val) = (s +++ {`TAGS` [], `GLOBALS` [globalinst], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`GLOBALS`_store|) + -- if (globalinst = {`TYPE` globaltype, `VALUE` val}) [check_dims] _ store DecD allocglobals(store : store, globaltype*, val*) : (store, globaladdr*) [visit_id store] not free [visit_id _] not free [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [check_dims] s [visit_exp s] [visit_id s] @@ -67300,24 +55154,20 @@ DecD allocglobals(store : store, globaltype*, val*) : (store, globaladdr*) DecD allocmem(store : store, memtype : memtype) : (store, memaddr) [visit_id store] not free [visit_id memtype] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free -[check_dims] addrtype#1147 addrtype#1159 arrayinst*#8 at byte*#1879 datainst*#7 eleminst*#7 exninst*#7 funcinst*#8 globalinst*#9 i i#46867 i#46875 j limits#1147 limits#1159 meminst meminst*#10 meminst*#9 memtype#531 s structinst*#8 tableinst*#9 taginst*#8 u64#443 u64#455 u64?#419 u64?#431 +[scope_exit _] +[scope_exit _] +[check_dims] at i j meminst s [visit_exp s] [visit_id s] -[visit_exp `%%PAGE`_memtype{addrtype#1147, limits#1147}(at, `[%..%]`_limits{u64#443, `u64?#419`}(i, j?{j <- `j?`}))] -[visit_exp addrtype#1147] -[visit_id addrtype#1147] -[visit_exp limits#1147] -[visit_id limits#1147] -[visit_exp (at, `[%..%]`_limits{u64#443, `u64?#419`}(i, j?{j <- `j?`}))] +[visit_exp `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`}))] +[visit_exp (at, `[%..%]`_limits(i, j?{j <- `j?`}))] [visit_exp at] [visit_id at] -[visit_exp `[%..%]`_limits{u64#443, `u64?#419`}(i, j?{j <- `j?`})] -[visit_exp u64#443] -[visit_id u64#443] -[visit_exp `u64?#419`] -[visit_id u64?#419] +[visit_exp `[%..%]`_limits(i, j?{j <- `j?`})] [visit_exp (i, j?{j <- `j?`})] [visit_exp i] [visit_id i] @@ -67330,68 +55180,36 @@ DecD allocmem(store : store, memtype : memtype) : (store, memaddr) [visit_exp `j?`] [visit_id j?] no dims [visit_id j?] -[visit_exp (s +++ {`TAGS`{`taginst*#8`} [], `GLOBALS`{`globalinst*#9`} [], `MEMS`{`meminst*#9`} [meminst], `TABLES`{`tableinst*#9`} [], `FUNCS`{`funcinst*#8`} [], `DATAS`{`datainst*#7`} [], `ELEMS`{`eleminst*#7`} [], `STRUCTS`{`structinst*#8`} [], `ARRAYS`{`arrayinst*#8`} [], `EXNS`{`exninst*#7`} []}, |s.`MEMS`_store{`meminst*#10`}|)] -[visit_exp s +++ {`TAGS`{`taginst*#8`} [], `GLOBALS`{`globalinst*#9`} [], `MEMS`{`meminst*#9`} [meminst], `TABLES`{`tableinst*#9`} [], `FUNCS`{`funcinst*#8`} [], `DATAS`{`datainst*#7`} [], `ELEMS`{`eleminst*#7`} [], `STRUCTS`{`structinst*#8`} [], `ARRAYS`{`arrayinst*#8`} [], `EXNS`{`exninst*#7`} []}] +[visit_exp (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [meminst], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`MEMS`_store|)] +[visit_exp s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [meminst], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp s] [visit_id s] not free -[visit_exp {`TAGS`{`taginst*#8`} [], `GLOBALS`{`globalinst*#9`} [], `MEMS`{`meminst*#9`} [meminst], `TABLES`{`tableinst*#9`} [], `FUNCS`{`funcinst*#8`} [], `DATAS`{`datainst*#7`} [], `ELEMS`{`eleminst*#7`} [], `STRUCTS`{`structinst*#8`} [], `ARRAYS`{`arrayinst*#8`} [], `EXNS`{`exninst*#7`} []}] -[visit_exp `taginst*#8`] -[visit_id taginst*#8] +[visit_exp {`TAGS` [], `GLOBALS` [], `MEMS` [meminst], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp []] -[visit_exp `globalinst*#9`] -[visit_id globalinst*#9] [visit_exp []] -[visit_exp `meminst*#9`] -[visit_id meminst*#9] [visit_exp [meminst]] [visit_exp meminst] [visit_id meminst] -[visit_exp `tableinst*#9`] -[visit_id tableinst*#9] [visit_exp []] -[visit_exp `funcinst*#8`] -[visit_id funcinst*#8] [visit_exp []] -[visit_exp `datainst*#7`] -[visit_id datainst*#7] [visit_exp []] -[visit_exp `eleminst*#7`] -[visit_id eleminst*#7] [visit_exp []] -[visit_exp `structinst*#8`] -[visit_id structinst*#8] [visit_exp []] -[visit_exp `arrayinst*#8`] -[visit_id arrayinst*#8] [visit_exp []] -[visit_exp `exninst*#7`] -[visit_id exninst*#7] [visit_exp []] -[visit_exp |s.`MEMS`_store{`meminst*#10`}|] -[visit_exp s.`MEMS`_store{`meminst*#10`}] +[visit_exp |s.`MEMS`_store|] +[visit_exp s.`MEMS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `meminst*#10`] -[visit_id meminst*#10] -[visit_exp (meminst = {`TYPE`{memtype#531} `%%PAGE`_memtype{addrtype#1159, limits#1159}(at, `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1879`} `%`_byte{i#46875}(0)^(i!`%`_u64{i#46867}.0 * (64 * $Ki)){i#46875 <- `i#46875*`}})] +[visit_exp (meminst = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` `%`_byte(0)^(i!`%`_u64.0 * (64 * $Ki)){}})] [visit_exp meminst] [visit_id meminst] not free -[visit_exp {`TYPE`{memtype#531} `%%PAGE`_memtype{addrtype#1159, limits#1159}(at, `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1879`} `%`_byte{i#46875}(0)^(i!`%`_u64{i#46867}.0 * (64 * $Ki)){i#46875 <- `i#46875*`}}] -[visit_exp memtype#531] -[visit_id memtype#531] -[visit_exp `%%PAGE`_memtype{addrtype#1159, limits#1159}(at, `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`}))] -[visit_exp addrtype#1159] -[visit_id addrtype#1159] -[visit_exp limits#1159] -[visit_id limits#1159] -[visit_exp (at, `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`}))] +[visit_exp {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` `%`_byte(0)^(i!`%`_u64.0 * (64 * $Ki)){}}] +[visit_exp `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`}))] +[visit_exp (at, `[%..%]`_limits(i, j?{j <- `j?`}))] [visit_exp at] [visit_id at] not free -[visit_exp `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`})] -[visit_exp u64#455] -[visit_id u64#455] -[visit_exp `u64?#431`] -[visit_id u64?#431] +[visit_exp `[%..%]`_limits(i, j?{j <- `j?`})] [visit_exp (i, j?{j <- `j?`})] [visit_exp i] [visit_id i] not free @@ -67404,40 +55222,32 @@ DecD allocmem(store : store, memtype : memtype) : (store, memaddr) [visit_exp `j?`] [visit_id j?] not free [visit_id j?] no dims -[visit_exp `byte*#1879`] -[visit_id byte*#1879] -[visit_exp `%`_byte{i#46875}(0)^(i!`%`_u64{i#46867}.0 * (64 * $Ki)){i#46875 <- `i#46875*`}] -[scope_enter i#46875] -[visit_exp `%`_byte{i#46875}(0)] -[visit_exp i#46875] -[visit_id i#46875] not free +[visit_exp `%`_byte(0)^(i!`%`_u64.0 * (64 * $Ki)){}] +[visit_exp `%`_byte(0)] [visit_exp (0)] [visit_exp 0] -[visit_id i#46875] not free -[scope_exit i#46875] -[visit_exp (i!`%`_u64{i#46867}.0 * (64 * $Ki))] -[visit_exp i!`%`_u64{i#46867}.0] -[visit_exp i!`%`_u64{i#46867}] +[visit_exp (i!`%`_u64.0 * (64 * $Ki))] +[visit_exp i!`%`_u64.0] +[visit_exp i!`%`_u64] [visit_exp i] [visit_id i] not free -[visit_exp i#46867] -[visit_id i#46867] [visit_exp (64 * $Ki)] [visit_exp 64] [visit_exp $Ki] -[visit_exp `i#46875*`] -[visit_id i#46875*] no dims -[visit_id i#46875*] => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocmem{s : store, addrtype#1147 : addrtype, limits#1147 : limits, at : addrtype, u64#443 : u64, `u64?#419` : u64?, i : u64, `j?` : u64?, `taginst*#8` : taginst*, `globalinst*#9` : globalinst*, `meminst*#9` : meminst*, meminst : meminst, `tableinst*#9` : tableinst*, `funcinst*#8` : funcinst*, `datainst*#7` : datainst*, `eleminst*#7` : eleminst*, `structinst*#8` : structinst*, `arrayinst*#8` : arrayinst*, `exninst*#7` : exninst*, `meminst*#10` : meminst*, memtype#531 : memtype, addrtype#1159 : addrtype, limits#1159 : limits, u64#455 : u64, `u64?#431` : u64?, `byte*#1879` : byte*, i#46867 : nat, `i#46875*` : nat*}(s, `%%PAGE`_memtype{addrtype#1147, limits#1147}(at, `[%..%]`_limits{u64#443, `u64?#419`}(i, j?{j <- `j?`}))) = (s +++ {`TAGS`{`taginst*#8`} [], `GLOBALS`{`globalinst*#9`} [], `MEMS`{`meminst*#9`} [meminst], `TABLES`{`tableinst*#9`} [], `FUNCS`{`funcinst*#8`} [], `DATAS`{`datainst*#7`} [], `ELEMS`{`eleminst*#7`} [], `STRUCTS`{`structinst*#8`} [], `ARRAYS`{`arrayinst*#8`} [], `EXNS`{`exninst*#7`} []}, |s.`MEMS`_store{`meminst*#10`}|) - -- if (meminst = {`TYPE`{memtype#531} `%%PAGE`_memtype{addrtype#1159, limits#1159}(at, `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1879`} `%`_byte{i#46875}(0)^(i!`%`_u64{i#46867}.0 * (64 * $Ki)){i#46875 <- `i#46875*`}}) + def $allocmem{s : store, at : addrtype, i : u64, `j?` : u64?, meminst : meminst}(s, `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`}))) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [meminst], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`MEMS`_store|) + -- if (meminst = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` `%`_byte(0)^(i!`%`_u64.0 * (64 * $Ki)){}}) [check_dims] _ store DecD allocmems(store : store, memtype*) : (store, memaddr*) [visit_id store] not free [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [check_dims] s [visit_exp s] [visit_id s] @@ -67527,26 +55337,20 @@ DecD alloctable(store : store, tabletype : tabletype, ref : ref) : (store, table [visit_id store] not free [visit_id tabletype] not free [visit_id ref] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free -[check_dims] addrtype#1219 addrtype#1231 arrayinst*#9 at datainst*#8 eleminst*#8 exninst*#8 funcinst*#9 globalinst*#10 i i#46955 j limits#1219 limits#1231 meminst*#11 ref ref*#22 reftype#3485 reftype#3497 rt s structinst*#9 tableinst tableinst*#10 tableinst*#11 tabletype#881 taginst*#9 u64#467 u64#479 u64?#443 u64?#455 +[scope_exit _] +[scope_exit _] +[check_dims] at i j ref rt s tableinst [visit_exp s] [visit_id s] -[visit_exp `%%%`_tabletype{addrtype#1219, limits#1219, reftype#3485}(at, `[%..%]`_limits{u64#467, `u64?#443`}(i, j?{j <- `j?`}), rt)] -[visit_exp addrtype#1219] -[visit_id addrtype#1219] -[visit_exp limits#1219] -[visit_id limits#1219] -[visit_exp reftype#3485] -[visit_id reftype#3485] -[visit_exp (at, `[%..%]`_limits{u64#467, `u64?#443`}(i, j?{j <- `j?`}), rt)] +[visit_exp `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt)] +[visit_exp (at, `[%..%]`_limits(i, j?{j <- `j?`}), rt)] [visit_exp at] [visit_id at] -[visit_exp `[%..%]`_limits{u64#467, `u64?#443`}(i, j?{j <- `j?`})] -[visit_exp u64#467] -[visit_id u64#467] -[visit_exp `u64?#443`] -[visit_id u64?#443] +[visit_exp `[%..%]`_limits(i, j?{j <- `j?`})] [visit_exp (i, j?{j <- `j?`})] [visit_exp i] [visit_id i] @@ -67563,70 +55367,36 @@ DecD alloctable(store : store, tabletype : tabletype, ref : ref) : (store, table [visit_id rt] [visit_exp ref] [visit_id ref] -[visit_exp (s +++ {`TAGS`{`taginst*#9`} [], `GLOBALS`{`globalinst*#10`} [], `MEMS`{`meminst*#11`} [], `TABLES`{`tableinst*#10`} [tableinst], `FUNCS`{`funcinst*#9`} [], `DATAS`{`datainst*#8`} [], `ELEMS`{`eleminst*#8`} [], `STRUCTS`{`structinst*#9`} [], `ARRAYS`{`arrayinst*#9`} [], `EXNS`{`exninst*#8`} []}, |s.`TABLES`_store{`tableinst*#11`}|)] -[visit_exp s +++ {`TAGS`{`taginst*#9`} [], `GLOBALS`{`globalinst*#10`} [], `MEMS`{`meminst*#11`} [], `TABLES`{`tableinst*#10`} [tableinst], `FUNCS`{`funcinst*#9`} [], `DATAS`{`datainst*#8`} [], `ELEMS`{`eleminst*#8`} [], `STRUCTS`{`structinst*#9`} [], `ARRAYS`{`arrayinst*#9`} [], `EXNS`{`exninst*#8`} []}] +[visit_exp (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [tableinst], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`TABLES`_store|)] +[visit_exp s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [tableinst], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp s] [visit_id s] not free -[visit_exp {`TAGS`{`taginst*#9`} [], `GLOBALS`{`globalinst*#10`} [], `MEMS`{`meminst*#11`} [], `TABLES`{`tableinst*#10`} [tableinst], `FUNCS`{`funcinst*#9`} [], `DATAS`{`datainst*#8`} [], `ELEMS`{`eleminst*#8`} [], `STRUCTS`{`structinst*#9`} [], `ARRAYS`{`arrayinst*#9`} [], `EXNS`{`exninst*#8`} []}] -[visit_exp `taginst*#9`] -[visit_id taginst*#9] +[visit_exp {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [tableinst], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp []] -[visit_exp `globalinst*#10`] -[visit_id globalinst*#10] [visit_exp []] -[visit_exp `meminst*#11`] -[visit_id meminst*#11] [visit_exp []] -[visit_exp `tableinst*#10`] -[visit_id tableinst*#10] [visit_exp [tableinst]] [visit_exp tableinst] [visit_id tableinst] -[visit_exp `funcinst*#9`] -[visit_id funcinst*#9] [visit_exp []] -[visit_exp `datainst*#8`] -[visit_id datainst*#8] [visit_exp []] -[visit_exp `eleminst*#8`] -[visit_id eleminst*#8] [visit_exp []] -[visit_exp `structinst*#9`] -[visit_id structinst*#9] [visit_exp []] -[visit_exp `arrayinst*#9`] -[visit_id arrayinst*#9] [visit_exp []] -[visit_exp `exninst*#8`] -[visit_id exninst*#8] [visit_exp []] -[visit_exp |s.`TABLES`_store{`tableinst*#11`}|] -[visit_exp s.`TABLES`_store{`tableinst*#11`}] +[visit_exp |s.`TABLES`_store|] +[visit_exp s.`TABLES`_store] [visit_exp s] [visit_id s] not free -[visit_exp `tableinst*#11`] -[visit_id tableinst*#11] -[visit_exp (tableinst = {`TYPE`{tabletype#881} `%%%`_tabletype{addrtype#1231, limits#1231, reftype#3497}(at, `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#22`} ref^i!`%`_u64{i#46955}.0{}})] +[visit_exp (tableinst = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` ref^i!`%`_u64.0{}})] [visit_exp tableinst] [visit_id tableinst] not free -[visit_exp {`TYPE`{tabletype#881} `%%%`_tabletype{addrtype#1231, limits#1231, reftype#3497}(at, `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#22`} ref^i!`%`_u64{i#46955}.0{}}] -[visit_exp tabletype#881] -[visit_id tabletype#881] -[visit_exp `%%%`_tabletype{addrtype#1231, limits#1231, reftype#3497}(at, `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`}), rt)] -[visit_exp addrtype#1231] -[visit_id addrtype#1231] -[visit_exp limits#1231] -[visit_id limits#1231] -[visit_exp reftype#3497] -[visit_id reftype#3497] -[visit_exp (at, `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`}), rt)] +[visit_exp {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` ref^i!`%`_u64.0{}}] +[visit_exp `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt)] +[visit_exp (at, `[%..%]`_limits(i, j?{j <- `j?`}), rt)] [visit_exp at] [visit_id at] not free -[visit_exp `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`})] -[visit_exp u64#479] -[visit_id u64#479] -[visit_exp `u64?#455`] -[visit_id u64?#455] +[visit_exp `[%..%]`_limits(i, j?{j <- `j?`})] [visit_exp (i, j?{j <- `j?`})] [visit_exp i] [visit_id i] not free @@ -67641,28 +55411,28 @@ DecD alloctable(store : store, tabletype : tabletype, ref : ref) : (store, table [visit_id j?] no dims [visit_exp rt] [visit_id rt] not free -[visit_exp `ref*#22`] -[visit_id ref*#22] -[visit_exp ref^i!`%`_u64{i#46955}.0{}] +[visit_exp ref^i!`%`_u64.0{}] [visit_exp ref] [visit_id ref] not free -[visit_exp i!`%`_u64{i#46955}.0] -[visit_exp i!`%`_u64{i#46955}] +[visit_exp i!`%`_u64.0] +[visit_exp i!`%`_u64] [visit_exp i] [visit_id i] not free -[visit_exp i#46955] -[visit_id i#46955] => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctable{s : store, addrtype#1219 : addrtype, limits#1219 : limits, reftype#3485 : reftype, at : addrtype, u64#467 : u64, `u64?#443` : u64?, i : u64, `j?` : u64?, rt : reftype, ref : ref, `taginst*#9` : taginst*, `globalinst*#10` : globalinst*, `meminst*#11` : meminst*, `tableinst*#10` : tableinst*, tableinst : tableinst, `funcinst*#9` : funcinst*, `datainst*#8` : datainst*, `eleminst*#8` : eleminst*, `structinst*#9` : structinst*, `arrayinst*#9` : arrayinst*, `exninst*#8` : exninst*, `tableinst*#11` : tableinst*, tabletype#881 : tabletype, addrtype#1231 : addrtype, limits#1231 : limits, reftype#3497 : reftype, u64#479 : u64, `u64?#455` : u64?, `ref*#22` : ref*, i#46955 : nat}(s, `%%%`_tabletype{addrtype#1219, limits#1219, reftype#3485}(at, `[%..%]`_limits{u64#467, `u64?#443`}(i, j?{j <- `j?`}), rt), ref) = (s +++ {`TAGS`{`taginst*#9`} [], `GLOBALS`{`globalinst*#10`} [], `MEMS`{`meminst*#11`} [], `TABLES`{`tableinst*#10`} [tableinst], `FUNCS`{`funcinst*#9`} [], `DATAS`{`datainst*#8`} [], `ELEMS`{`eleminst*#8`} [], `STRUCTS`{`structinst*#9`} [], `ARRAYS`{`arrayinst*#9`} [], `EXNS`{`exninst*#8`} []}, |s.`TABLES`_store{`tableinst*#11`}|) - -- if (tableinst = {`TYPE`{tabletype#881} `%%%`_tabletype{addrtype#1231, limits#1231, reftype#3497}(at, `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#22`} ref^i!`%`_u64{i#46955}.0{}}) + def $alloctable{s : store, at : addrtype, i : u64, `j?` : u64?, rt : reftype, ref : ref, tableinst : tableinst}(s, `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), ref) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [tableinst], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`TABLES`_store|) + -- if (tableinst = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` ref^i!`%`_u64.0{}}) [check_dims] _ store DecD alloctables(store : store, tabletype*, ref*) : (store, tableaddr*) [visit_id store] not free [visit_id _] not free [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [check_dims] s [visit_exp s] [visit_id s] @@ -67778,9 +55548,13 @@ DecD allocfunc(store : store, deftype : deftype, funccode : funccode, moduleinst [visit_id deftype] not free [visit_id funccode] not free [visit_id moduleinst] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free -[check_dims] arrayinst*#10 datainst*#9 deftype deftype#11 eleminst*#9 exninst*#9 funccode funccode#2 funcinst funcinst*#10 funcinst*#11 globalinst*#11 meminst*#12 moduleinst moduleinst#25 s structinst*#10 tableinst*#12 taginst*#10 +[scope_exit _] +[scope_exit _] +[check_dims] deftype funccode funcinst moduleinst s [visit_exp s] [visit_id s] [visit_exp deftype] @@ -67789,77 +55563,53 @@ DecD allocfunc(store : store, deftype : deftype, funccode : funccode, moduleinst [visit_id funccode] [visit_exp moduleinst] [visit_id moduleinst] -[visit_exp (s +++ {`TAGS`{`taginst*#10`} [], `GLOBALS`{`globalinst*#11`} [], `MEMS`{`meminst*#12`} [], `TABLES`{`tableinst*#12`} [], `FUNCS`{`funcinst*#10`} [funcinst], `DATAS`{`datainst*#9`} [], `ELEMS`{`eleminst*#9`} [], `STRUCTS`{`structinst*#10`} [], `ARRAYS`{`arrayinst*#10`} [], `EXNS`{`exninst*#9`} []}, |s.`FUNCS`_store{`funcinst*#11`}|)] -[visit_exp s +++ {`TAGS`{`taginst*#10`} [], `GLOBALS`{`globalinst*#11`} [], `MEMS`{`meminst*#12`} [], `TABLES`{`tableinst*#12`} [], `FUNCS`{`funcinst*#10`} [funcinst], `DATAS`{`datainst*#9`} [], `ELEMS`{`eleminst*#9`} [], `STRUCTS`{`structinst*#10`} [], `ARRAYS`{`arrayinst*#10`} [], `EXNS`{`exninst*#9`} []}] +[visit_exp (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [funcinst], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`FUNCS`_store|)] +[visit_exp s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [funcinst], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp s] [visit_id s] not free -[visit_exp {`TAGS`{`taginst*#10`} [], `GLOBALS`{`globalinst*#11`} [], `MEMS`{`meminst*#12`} [], `TABLES`{`tableinst*#12`} [], `FUNCS`{`funcinst*#10`} [funcinst], `DATAS`{`datainst*#9`} [], `ELEMS`{`eleminst*#9`} [], `STRUCTS`{`structinst*#10`} [], `ARRAYS`{`arrayinst*#10`} [], `EXNS`{`exninst*#9`} []}] -[visit_exp `taginst*#10`] -[visit_id taginst*#10] +[visit_exp {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [funcinst], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp []] -[visit_exp `globalinst*#11`] -[visit_id globalinst*#11] [visit_exp []] -[visit_exp `meminst*#12`] -[visit_id meminst*#12] [visit_exp []] -[visit_exp `tableinst*#12`] -[visit_id tableinst*#12] [visit_exp []] -[visit_exp `funcinst*#10`] -[visit_id funcinst*#10] [visit_exp [funcinst]] [visit_exp funcinst] [visit_id funcinst] -[visit_exp `datainst*#9`] -[visit_id datainst*#9] [visit_exp []] -[visit_exp `eleminst*#9`] -[visit_id eleminst*#9] [visit_exp []] -[visit_exp `structinst*#10`] -[visit_id structinst*#10] [visit_exp []] -[visit_exp `arrayinst*#10`] -[visit_id arrayinst*#10] [visit_exp []] -[visit_exp `exninst*#9`] -[visit_id exninst*#9] [visit_exp []] -[visit_exp |s.`FUNCS`_store{`funcinst*#11`}|] -[visit_exp s.`FUNCS`_store{`funcinst*#11`}] +[visit_exp |s.`FUNCS`_store|] +[visit_exp s.`FUNCS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `funcinst*#11`] -[visit_id funcinst*#11] -[visit_exp (funcinst = {`TYPE`{deftype#11} deftype, `MODULE`{moduleinst#25} moduleinst, `CODE`{funccode#2} funccode})] +[visit_exp (funcinst = {`TYPE` deftype, `MODULE` moduleinst, `CODE` funccode})] [visit_exp funcinst] [visit_id funcinst] not free -[visit_exp {`TYPE`{deftype#11} deftype, `MODULE`{moduleinst#25} moduleinst, `CODE`{funccode#2} funccode}] -[visit_exp deftype#11] -[visit_id deftype#11] +[visit_exp {`TYPE` deftype, `MODULE` moduleinst, `CODE` funccode}] [visit_exp deftype] [visit_id deftype] not free -[visit_exp moduleinst#25] -[visit_id moduleinst#25] [visit_exp moduleinst] [visit_id moduleinst] not free -[visit_exp funccode#2] -[visit_id funccode#2] [visit_exp funccode] [visit_id funccode] not free => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocfunc{s : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst, `taginst*#10` : taginst*, `globalinst*#11` : globalinst*, `meminst*#12` : meminst*, `tableinst*#12` : tableinst*, `funcinst*#10` : funcinst*, funcinst : funcinst, `datainst*#9` : datainst*, `eleminst*#9` : eleminst*, `structinst*#10` : structinst*, `arrayinst*#10` : arrayinst*, `exninst*#9` : exninst*, `funcinst*#11` : funcinst*, deftype#11 : deftype, moduleinst#25 : moduleinst, funccode#2 : funccode}(s, deftype, funccode, moduleinst) = (s +++ {`TAGS`{`taginst*#10`} [], `GLOBALS`{`globalinst*#11`} [], `MEMS`{`meminst*#12`} [], `TABLES`{`tableinst*#12`} [], `FUNCS`{`funcinst*#10`} [funcinst], `DATAS`{`datainst*#9`} [], `ELEMS`{`eleminst*#9`} [], `STRUCTS`{`structinst*#10`} [], `ARRAYS`{`arrayinst*#10`} [], `EXNS`{`exninst*#9`} []}, |s.`FUNCS`_store{`funcinst*#11`}|) - -- if (funcinst = {`TYPE`{deftype#11} deftype, `MODULE`{moduleinst#25} moduleinst, `CODE`{funccode#2} funccode}) + def $allocfunc{s : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst, funcinst : funcinst}(s, deftype, funccode, moduleinst) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [funcinst], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`FUNCS`_store|) + -- if (funcinst = {`TYPE` deftype, `MODULE` moduleinst, `CODE` funccode}) [check_dims] _ store DecD allocfuncs(store : store, deftype*, funccode*, moduleinst*) : (store, funcaddr*) [visit_id store] not free [visit_id _] not free [visit_id _] not free [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [check_dims] s [visit_exp s] [visit_id s] @@ -67999,9 +55749,13 @@ DecD allocdata(store : store, datatype : datatype, byte*) : (store, dataaddr) [visit_id store] not free [visit_id datatype] not free [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free -[check_dims] arrayinst*#11 byte byte*#1880 datainst datainst*#10 datainst*#11 eleminst*#10 exninst*#10 funcinst*#12 globalinst*#12 meminst*#13 s structinst*#11 tableinst*#13 taginst*#11 +[scope_exit _] +[scope_exit _] +[check_dims] byte datainst s [visit_exp s] [visit_id s] [visit_exp `OK`_datatype] @@ -68015,55 +55769,31 @@ DecD allocdata(store : store, datatype : datatype, byte*) : (store, dataaddr) [visit_exp `byte*`] [visit_id byte*] no dims [visit_id byte*] -[visit_exp (s +++ {`TAGS`{`taginst*#11`} [], `GLOBALS`{`globalinst*#12`} [], `MEMS`{`meminst*#13`} [], `TABLES`{`tableinst*#13`} [], `FUNCS`{`funcinst*#12`} [], `DATAS`{`datainst*#10`} [datainst], `ELEMS`{`eleminst*#10`} [], `STRUCTS`{`structinst*#11`} [], `ARRAYS`{`arrayinst*#11`} [], `EXNS`{`exninst*#10`} []}, |s.`DATAS`_store{`datainst*#11`}|)] -[visit_exp s +++ {`TAGS`{`taginst*#11`} [], `GLOBALS`{`globalinst*#12`} [], `MEMS`{`meminst*#13`} [], `TABLES`{`tableinst*#13`} [], `FUNCS`{`funcinst*#12`} [], `DATAS`{`datainst*#10`} [datainst], `ELEMS`{`eleminst*#10`} [], `STRUCTS`{`structinst*#11`} [], `ARRAYS`{`arrayinst*#11`} [], `EXNS`{`exninst*#10`} []}] +[visit_exp (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [datainst], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`DATAS`_store|)] +[visit_exp s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [datainst], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp s] [visit_id s] not free -[visit_exp {`TAGS`{`taginst*#11`} [], `GLOBALS`{`globalinst*#12`} [], `MEMS`{`meminst*#13`} [], `TABLES`{`tableinst*#13`} [], `FUNCS`{`funcinst*#12`} [], `DATAS`{`datainst*#10`} [datainst], `ELEMS`{`eleminst*#10`} [], `STRUCTS`{`structinst*#11`} [], `ARRAYS`{`arrayinst*#11`} [], `EXNS`{`exninst*#10`} []}] -[visit_exp `taginst*#11`] -[visit_id taginst*#11] +[visit_exp {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [datainst], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp []] -[visit_exp `globalinst*#12`] -[visit_id globalinst*#12] [visit_exp []] -[visit_exp `meminst*#13`] -[visit_id meminst*#13] [visit_exp []] -[visit_exp `tableinst*#13`] -[visit_id tableinst*#13] [visit_exp []] -[visit_exp `funcinst*#12`] -[visit_id funcinst*#12] [visit_exp []] -[visit_exp `datainst*#10`] -[visit_id datainst*#10] [visit_exp [datainst]] [visit_exp datainst] [visit_id datainst] -[visit_exp `eleminst*#10`] -[visit_id eleminst*#10] [visit_exp []] -[visit_exp `structinst*#11`] -[visit_id structinst*#11] [visit_exp []] -[visit_exp `arrayinst*#11`] -[visit_id arrayinst*#11] [visit_exp []] -[visit_exp `exninst*#10`] -[visit_id exninst*#10] [visit_exp []] -[visit_exp |s.`DATAS`_store{`datainst*#11`}|] -[visit_exp s.`DATAS`_store{`datainst*#11`}] +[visit_exp |s.`DATAS`_store|] +[visit_exp s.`DATAS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `datainst*#11`] -[visit_id datainst*#11] -[visit_exp (datainst = {`BYTES`{`byte*#1880`} byte*{byte <- `byte*`}})] +[visit_exp (datainst = {`BYTES` byte*{byte <- `byte*`}})] [visit_exp datainst] [visit_id datainst] not free -[visit_exp {`BYTES`{`byte*#1880`} byte*{byte <- `byte*`}}] -[visit_exp `byte*#1880`] -[visit_id byte*#1880] +[visit_exp {`BYTES` byte*{byte <- `byte*`}}] [visit_exp byte*{byte <- `byte*`}] [scope_enter byte] [visit_exp byte] @@ -68075,15 +55805,19 @@ DecD allocdata(store : store, datatype : datatype, byte*) : (store, dataaddr) [visit_id byte*] no dims => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocdata{s : store, `byte*` : byte*, `taginst*#11` : taginst*, `globalinst*#12` : globalinst*, `meminst*#13` : meminst*, `tableinst*#13` : tableinst*, `funcinst*#12` : funcinst*, `datainst*#10` : datainst*, datainst : datainst, `eleminst*#10` : eleminst*, `structinst*#11` : structinst*, `arrayinst*#11` : arrayinst*, `exninst*#10` : exninst*, `datainst*#11` : datainst*, `byte*#1880` : byte*}(s, `OK`_datatype, byte*{byte <- `byte*`}) = (s +++ {`TAGS`{`taginst*#11`} [], `GLOBALS`{`globalinst*#12`} [], `MEMS`{`meminst*#13`} [], `TABLES`{`tableinst*#13`} [], `FUNCS`{`funcinst*#12`} [], `DATAS`{`datainst*#10`} [datainst], `ELEMS`{`eleminst*#10`} [], `STRUCTS`{`structinst*#11`} [], `ARRAYS`{`arrayinst*#11`} [], `EXNS`{`exninst*#10`} []}, |s.`DATAS`_store{`datainst*#11`}|) - -- if (datainst = {`BYTES`{`byte*#1880`} byte*{byte <- `byte*`}}) + def $allocdata{s : store, `byte*` : byte*, datainst : datainst}(s, `OK`_datatype, byte*{byte <- `byte*`}) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [datainst], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`DATAS`_store|) + -- if (datainst = {`BYTES` byte*{byte <- `byte*`}}) [check_dims] _ store DecD allocdatas(store : store, datatype*, byte**) : (store, dataaddr*) [visit_id store] not free [visit_id _] not free [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [check_dims] s [visit_exp s] [visit_id s] @@ -68228,9 +55962,13 @@ DecD allocelem(store : store, elemtype : elemtype, ref*) : (store, elemaddr) [visit_id store] not free [visit_id elemtype] not free [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free -[check_dims] arrayinst*#12 datainst*#12 eleminst eleminst*#11 eleminst*#12 elemtype elemtype#1 exninst*#11 funcinst*#13 globalinst*#13 meminst*#14 ref ref*#23 s structinst*#12 tableinst*#14 taginst*#12 +[scope_exit _] +[scope_exit _] +[check_dims] eleminst elemtype ref s [visit_exp s] [visit_id s] [visit_exp elemtype] @@ -68244,59 +55982,33 @@ DecD allocelem(store : store, elemtype : elemtype, ref*) : (store, elemaddr) [visit_exp `ref*`] [visit_id ref*] no dims [visit_id ref*] -[visit_exp (s +++ {`TAGS`{`taginst*#12`} [], `GLOBALS`{`globalinst*#13`} [], `MEMS`{`meminst*#14`} [], `TABLES`{`tableinst*#14`} [], `FUNCS`{`funcinst*#13`} [], `DATAS`{`datainst*#12`} [], `ELEMS`{`eleminst*#11`} [eleminst], `STRUCTS`{`structinst*#12`} [], `ARRAYS`{`arrayinst*#12`} [], `EXNS`{`exninst*#11`} []}, |s.`ELEMS`_store{`eleminst*#12`}|)] -[visit_exp s +++ {`TAGS`{`taginst*#12`} [], `GLOBALS`{`globalinst*#13`} [], `MEMS`{`meminst*#14`} [], `TABLES`{`tableinst*#14`} [], `FUNCS`{`funcinst*#13`} [], `DATAS`{`datainst*#12`} [], `ELEMS`{`eleminst*#11`} [eleminst], `STRUCTS`{`structinst*#12`} [], `ARRAYS`{`arrayinst*#12`} [], `EXNS`{`exninst*#11`} []}] +[visit_exp (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [eleminst], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`ELEMS`_store|)] +[visit_exp s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [eleminst], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp s] [visit_id s] not free -[visit_exp {`TAGS`{`taginst*#12`} [], `GLOBALS`{`globalinst*#13`} [], `MEMS`{`meminst*#14`} [], `TABLES`{`tableinst*#14`} [], `FUNCS`{`funcinst*#13`} [], `DATAS`{`datainst*#12`} [], `ELEMS`{`eleminst*#11`} [eleminst], `STRUCTS`{`structinst*#12`} [], `ARRAYS`{`arrayinst*#12`} [], `EXNS`{`exninst*#11`} []}] -[visit_exp `taginst*#12`] -[visit_id taginst*#12] +[visit_exp {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [eleminst], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] [visit_exp []] -[visit_exp `globalinst*#13`] -[visit_id globalinst*#13] [visit_exp []] -[visit_exp `meminst*#14`] -[visit_id meminst*#14] [visit_exp []] -[visit_exp `tableinst*#14`] -[visit_id tableinst*#14] [visit_exp []] -[visit_exp `funcinst*#13`] -[visit_id funcinst*#13] [visit_exp []] -[visit_exp `datainst*#12`] -[visit_id datainst*#12] [visit_exp []] -[visit_exp `eleminst*#11`] -[visit_id eleminst*#11] [visit_exp [eleminst]] [visit_exp eleminst] [visit_id eleminst] -[visit_exp `structinst*#12`] -[visit_id structinst*#12] [visit_exp []] -[visit_exp `arrayinst*#12`] -[visit_id arrayinst*#12] [visit_exp []] -[visit_exp `exninst*#11`] -[visit_id exninst*#11] [visit_exp []] -[visit_exp |s.`ELEMS`_store{`eleminst*#12`}|] -[visit_exp s.`ELEMS`_store{`eleminst*#12`}] +[visit_exp |s.`ELEMS`_store|] +[visit_exp s.`ELEMS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `eleminst*#12`] -[visit_id eleminst*#12] -[visit_exp (eleminst = {`TYPE`{elemtype#1} elemtype, `REFS`{`ref*#23`} ref*{ref <- `ref*`}})] +[visit_exp (eleminst = {`TYPE` elemtype, `REFS` ref*{ref <- `ref*`}})] [visit_exp eleminst] [visit_id eleminst] not free -[visit_exp {`TYPE`{elemtype#1} elemtype, `REFS`{`ref*#23`} ref*{ref <- `ref*`}}] -[visit_exp elemtype#1] -[visit_id elemtype#1] +[visit_exp {`TYPE` elemtype, `REFS` ref*{ref <- `ref*`}}] [visit_exp elemtype] [visit_id elemtype] not free -[visit_exp `ref*#23`] -[visit_id ref*#23] [visit_exp ref*{ref <- `ref*`}] [scope_enter ref] [visit_exp ref] @@ -68308,15 +56020,19 @@ DecD allocelem(store : store, elemtype : elemtype, ref*) : (store, elemaddr) [visit_id ref*] no dims => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocelem{s : store, elemtype : elemtype, `ref*` : ref*, `taginst*#12` : taginst*, `globalinst*#13` : globalinst*, `meminst*#14` : meminst*, `tableinst*#14` : tableinst*, `funcinst*#13` : funcinst*, `datainst*#12` : datainst*, `eleminst*#11` : eleminst*, eleminst : eleminst, `structinst*#12` : structinst*, `arrayinst*#12` : arrayinst*, `exninst*#11` : exninst*, `eleminst*#12` : eleminst*, elemtype#1 : elemtype, `ref*#23` : ref*}(s, elemtype, ref*{ref <- `ref*`}) = (s +++ {`TAGS`{`taginst*#12`} [], `GLOBALS`{`globalinst*#13`} [], `MEMS`{`meminst*#14`} [], `TABLES`{`tableinst*#14`} [], `FUNCS`{`funcinst*#13`} [], `DATAS`{`datainst*#12`} [], `ELEMS`{`eleminst*#11`} [eleminst], `STRUCTS`{`structinst*#12`} [], `ARRAYS`{`arrayinst*#12`} [], `EXNS`{`exninst*#11`} []}, |s.`ELEMS`_store{`eleminst*#12`}|) - -- if (eleminst = {`TYPE`{elemtype#1} elemtype, `REFS`{`ref*#23`} ref*{ref <- `ref*`}}) + def $allocelem{s : store, elemtype : elemtype, `ref*` : ref*, eleminst : eleminst}(s, elemtype, ref*{ref <- `ref*`}) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [eleminst], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`ELEMS`_store|) + -- if (eleminst = {`TYPE` elemtype, `REFS` ref*{ref <- `ref*`}}) [check_dims] _ store DecD allocelems(store : store, elemtype*, ref**) : (store, elemaddr*) [visit_id store] not free [visit_id _] not free [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [check_dims] s [visit_exp s] [visit_id s] @@ -68460,221 +56176,141 @@ DecD allocelems(store : store, elemtype*, ref**) : (store, elemaddr*) DecD allocexport(moduleinst : moduleinst, export : export) : exportinst [visit_id moduleinst] not free [visit_id export] not free -[check_dims] externaddr#1 externidx#5379 i#47111 moduleinst name name#5597 name#5599 tagaddr#8 tagaddr*#4 tagidx#17 x +[check_dims] moduleinst name x [visit_exp moduleinst] [visit_id moduleinst] -[visit_exp `EXPORT`_export{name#5597, externidx#5379}(name, `TAG`_externidx{tagidx#17}(x))] -[visit_exp name#5597] -[visit_id name#5597] -[visit_exp externidx#5379] -[visit_id externidx#5379] -[visit_exp (name, `TAG`_externidx{tagidx#17}(x))] +[visit_exp `EXPORT`_export(name, `TAG`_externidx(x))] +[visit_exp (name, `TAG`_externidx(x))] [visit_exp name] [visit_id name] -[visit_exp `TAG`_externidx{tagidx#17}(x)] -[visit_exp tagidx#17] -[visit_id tagidx#17] +[visit_exp `TAG`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp {`NAME`{name#5599} name, `ADDR`{externaddr#1} `TAG`_externaddr{tagaddr#8}(moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}[x!`%`_idx{i#47111}.0])}] -[visit_exp name#5599] -[visit_id name#5599] +[visit_exp {`NAME` name, `ADDR` `TAG`_externaddr(moduleinst.`TAGS`_moduleinst[x!`%`_idx.0])}] [visit_exp name] [visit_id name] not free -[visit_exp externaddr#1] -[visit_id externaddr#1] -[visit_exp `TAG`_externaddr{tagaddr#8}(moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}[x!`%`_idx{i#47111}.0])] -[visit_exp tagaddr#8] -[visit_id tagaddr#8] -[visit_exp (moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}[x!`%`_idx{i#47111}.0])] -[visit_exp moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}[x!`%`_idx{i#47111}.0]] -[visit_exp moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}] +[visit_exp `TAG`_externaddr(moduleinst.`TAGS`_moduleinst[x!`%`_idx.0])] +[visit_exp (moduleinst.`TAGS`_moduleinst[x!`%`_idx.0])] +[visit_exp moduleinst.`TAGS`_moduleinst[x!`%`_idx.0]] +[visit_exp moduleinst.`TAGS`_moduleinst] [visit_exp moduleinst] [visit_id moduleinst] not free -[visit_exp `tagaddr*#4`] -[visit_id tagaddr*#4] -[visit_exp x!`%`_idx{i#47111}.0] -[visit_exp x!`%`_idx{i#47111}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#47111] -[visit_id i#47111] => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name#5597 : name, externidx#5379 : externidx, name : name, tagidx#17 : tagidx, x : idx, name#5599 : name, externaddr#1 : externaddr, tagaddr#8 : tagaddr, `tagaddr*#4` : tagaddr*, i#47111 : nat}(moduleinst, `EXPORT`_export{name#5597, externidx#5379}(name, `TAG`_externidx{tagidx#17}(x))) = {`NAME`{name#5599} name, `ADDR`{externaddr#1} `TAG`_externaddr{tagaddr#8}(moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}[x!`%`_idx{i#47111}.0])} -[check_dims] externaddr#2 externidx#5391 globaladdr#5 globaladdr*#3 globalidx#21 i#47135 moduleinst name name#5610 name#5612 x + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `TAG`_externidx(x))) = {`NAME` name, `ADDR` `TAG`_externaddr(moduleinst.`TAGS`_moduleinst[x!`%`_idx.0])} +[check_dims] moduleinst name x [visit_exp moduleinst] [visit_id moduleinst] -[visit_exp `EXPORT`_export{name#5610, externidx#5391}(name, `GLOBAL`_externidx{globalidx#21}(x))] -[visit_exp name#5610] -[visit_id name#5610] -[visit_exp externidx#5391] -[visit_id externidx#5391] -[visit_exp (name, `GLOBAL`_externidx{globalidx#21}(x))] +[visit_exp `EXPORT`_export(name, `GLOBAL`_externidx(x))] +[visit_exp (name, `GLOBAL`_externidx(x))] [visit_exp name] [visit_id name] -[visit_exp `GLOBAL`_externidx{globalidx#21}(x)] -[visit_exp globalidx#21] -[visit_id globalidx#21] +[visit_exp `GLOBAL`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp {`NAME`{name#5612} name, `ADDR`{externaddr#2} `GLOBAL`_externaddr{globaladdr#5}(moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}[x!`%`_idx{i#47135}.0])}] -[visit_exp name#5612] -[visit_id name#5612] +[visit_exp {`NAME` name, `ADDR` `GLOBAL`_externaddr(moduleinst.`GLOBALS`_moduleinst[x!`%`_idx.0])}] [visit_exp name] [visit_id name] not free -[visit_exp externaddr#2] -[visit_id externaddr#2] -[visit_exp `GLOBAL`_externaddr{globaladdr#5}(moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}[x!`%`_idx{i#47135}.0])] -[visit_exp globaladdr#5] -[visit_id globaladdr#5] -[visit_exp (moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}[x!`%`_idx{i#47135}.0])] -[visit_exp moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}[x!`%`_idx{i#47135}.0]] -[visit_exp moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}] +[visit_exp `GLOBAL`_externaddr(moduleinst.`GLOBALS`_moduleinst[x!`%`_idx.0])] +[visit_exp (moduleinst.`GLOBALS`_moduleinst[x!`%`_idx.0])] +[visit_exp moduleinst.`GLOBALS`_moduleinst[x!`%`_idx.0]] +[visit_exp moduleinst.`GLOBALS`_moduleinst] [visit_exp moduleinst] [visit_id moduleinst] not free -[visit_exp `globaladdr*#3`] -[visit_id globaladdr*#3] -[visit_exp x!`%`_idx{i#47135}.0] -[visit_exp x!`%`_idx{i#47135}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#47135] -[visit_id i#47135] => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name#5610 : name, externidx#5391 : externidx, name : name, globalidx#21 : globalidx, x : idx, name#5612 : name, externaddr#2 : externaddr, globaladdr#5 : globaladdr, `globaladdr*#3` : globaladdr*, i#47135 : nat}(moduleinst, `EXPORT`_export{name#5610, externidx#5391}(name, `GLOBAL`_externidx{globalidx#21}(x))) = {`NAME`{name#5612} name, `ADDR`{externaddr#2} `GLOBAL`_externaddr{globaladdr#5}(moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}[x!`%`_idx{i#47135}.0])} -[check_dims] externaddr#3 externidx#5403 i#47159 memaddr#5 memaddr*#4 memidx#163 moduleinst name name#5623 name#5625 x + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `GLOBAL`_externidx(x))) = {`NAME` name, `ADDR` `GLOBAL`_externaddr(moduleinst.`GLOBALS`_moduleinst[x!`%`_idx.0])} +[check_dims] moduleinst name x [visit_exp moduleinst] [visit_id moduleinst] -[visit_exp `EXPORT`_export{name#5623, externidx#5403}(name, `MEM`_externidx{memidx#163}(x))] -[visit_exp name#5623] -[visit_id name#5623] -[visit_exp externidx#5403] -[visit_id externidx#5403] -[visit_exp (name, `MEM`_externidx{memidx#163}(x))] +[visit_exp `EXPORT`_export(name, `MEM`_externidx(x))] +[visit_exp (name, `MEM`_externidx(x))] [visit_exp name] [visit_id name] -[visit_exp `MEM`_externidx{memidx#163}(x)] -[visit_exp memidx#163] -[visit_id memidx#163] +[visit_exp `MEM`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp {`NAME`{name#5625} name, `ADDR`{externaddr#3} `MEM`_externaddr{memaddr#5}(moduleinst.`MEMS`_moduleinst{`memaddr*#4`}[x!`%`_idx{i#47159}.0])}] -[visit_exp name#5625] -[visit_id name#5625] +[visit_exp {`NAME` name, `ADDR` `MEM`_externaddr(moduleinst.`MEMS`_moduleinst[x!`%`_idx.0])}] [visit_exp name] [visit_id name] not free -[visit_exp externaddr#3] -[visit_id externaddr#3] -[visit_exp `MEM`_externaddr{memaddr#5}(moduleinst.`MEMS`_moduleinst{`memaddr*#4`}[x!`%`_idx{i#47159}.0])] -[visit_exp memaddr#5] -[visit_id memaddr#5] -[visit_exp (moduleinst.`MEMS`_moduleinst{`memaddr*#4`}[x!`%`_idx{i#47159}.0])] -[visit_exp moduleinst.`MEMS`_moduleinst{`memaddr*#4`}[x!`%`_idx{i#47159}.0]] -[visit_exp moduleinst.`MEMS`_moduleinst{`memaddr*#4`}] +[visit_exp `MEM`_externaddr(moduleinst.`MEMS`_moduleinst[x!`%`_idx.0])] +[visit_exp (moduleinst.`MEMS`_moduleinst[x!`%`_idx.0])] +[visit_exp moduleinst.`MEMS`_moduleinst[x!`%`_idx.0]] +[visit_exp moduleinst.`MEMS`_moduleinst] [visit_exp moduleinst] [visit_id moduleinst] not free -[visit_exp `memaddr*#4`] -[visit_id memaddr*#4] -[visit_exp x!`%`_idx{i#47159}.0] -[visit_exp x!`%`_idx{i#47159}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#47159] -[visit_id i#47159] => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name#5623 : name, externidx#5403 : externidx, name : name, memidx#163 : memidx, x : idx, name#5625 : name, externaddr#3 : externaddr, memaddr#5 : memaddr, `memaddr*#4` : memaddr*, i#47159 : nat}(moduleinst, `EXPORT`_export{name#5623, externidx#5403}(name, `MEM`_externidx{memidx#163}(x))) = {`NAME`{name#5625} name, `ADDR`{externaddr#3} `MEM`_externaddr{memaddr#5}(moduleinst.`MEMS`_moduleinst{`memaddr*#4`}[x!`%`_idx{i#47159}.0])} -[check_dims] externaddr#4 externidx#5415 i#47183 moduleinst name name#5636 name#5638 tableaddr#5 tableaddr*#4 tableidx#117 x + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `MEM`_externidx(x))) = {`NAME` name, `ADDR` `MEM`_externaddr(moduleinst.`MEMS`_moduleinst[x!`%`_idx.0])} +[check_dims] moduleinst name x [visit_exp moduleinst] [visit_id moduleinst] -[visit_exp `EXPORT`_export{name#5636, externidx#5415}(name, `TABLE`_externidx{tableidx#117}(x))] -[visit_exp name#5636] -[visit_id name#5636] -[visit_exp externidx#5415] -[visit_id externidx#5415] -[visit_exp (name, `TABLE`_externidx{tableidx#117}(x))] +[visit_exp `EXPORT`_export(name, `TABLE`_externidx(x))] +[visit_exp (name, `TABLE`_externidx(x))] [visit_exp name] [visit_id name] -[visit_exp `TABLE`_externidx{tableidx#117}(x)] -[visit_exp tableidx#117] -[visit_id tableidx#117] +[visit_exp `TABLE`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp {`NAME`{name#5638} name, `ADDR`{externaddr#4} `TABLE`_externaddr{tableaddr#5}(moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}[x!`%`_idx{i#47183}.0])}] -[visit_exp name#5638] -[visit_id name#5638] +[visit_exp {`NAME` name, `ADDR` `TABLE`_externaddr(moduleinst.`TABLES`_moduleinst[x!`%`_idx.0])}] [visit_exp name] [visit_id name] not free -[visit_exp externaddr#4] -[visit_id externaddr#4] -[visit_exp `TABLE`_externaddr{tableaddr#5}(moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}[x!`%`_idx{i#47183}.0])] -[visit_exp tableaddr#5] -[visit_id tableaddr#5] -[visit_exp (moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}[x!`%`_idx{i#47183}.0])] -[visit_exp moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}[x!`%`_idx{i#47183}.0]] -[visit_exp moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}] +[visit_exp `TABLE`_externaddr(moduleinst.`TABLES`_moduleinst[x!`%`_idx.0])] +[visit_exp (moduleinst.`TABLES`_moduleinst[x!`%`_idx.0])] +[visit_exp moduleinst.`TABLES`_moduleinst[x!`%`_idx.0]] +[visit_exp moduleinst.`TABLES`_moduleinst] [visit_exp moduleinst] [visit_id moduleinst] not free -[visit_exp `tableaddr*#4`] -[visit_id tableaddr*#4] -[visit_exp x!`%`_idx{i#47183}.0] -[visit_exp x!`%`_idx{i#47183}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#47183] -[visit_id i#47183] => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name#5636 : name, externidx#5415 : externidx, name : name, tableidx#117 : tableidx, x : idx, name#5638 : name, externaddr#4 : externaddr, tableaddr#5 : tableaddr, `tableaddr*#4` : tableaddr*, i#47183 : nat}(moduleinst, `EXPORT`_export{name#5636, externidx#5415}(name, `TABLE`_externidx{tableidx#117}(x))) = {`NAME`{name#5638} name, `ADDR`{externaddr#4} `TABLE`_externaddr{tableaddr#5}(moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}[x!`%`_idx{i#47183}.0])} -[check_dims] externaddr#5 externidx#5427 funcaddr#19 funcaddr*#5 funcidx#2843 i#47207 moduleinst name name#5649 name#5651 x + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `TABLE`_externidx(x))) = {`NAME` name, `ADDR` `TABLE`_externaddr(moduleinst.`TABLES`_moduleinst[x!`%`_idx.0])} +[check_dims] moduleinst name x [visit_exp moduleinst] [visit_id moduleinst] -[visit_exp `EXPORT`_export{name#5649, externidx#5427}(name, `FUNC`_externidx{funcidx#2843}(x))] -[visit_exp name#5649] -[visit_id name#5649] -[visit_exp externidx#5427] -[visit_id externidx#5427] -[visit_exp (name, `FUNC`_externidx{funcidx#2843}(x))] +[visit_exp `EXPORT`_export(name, `FUNC`_externidx(x))] +[visit_exp (name, `FUNC`_externidx(x))] [visit_exp name] [visit_id name] -[visit_exp `FUNC`_externidx{funcidx#2843}(x)] -[visit_exp funcidx#2843] -[visit_id funcidx#2843] +[visit_exp `FUNC`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp {`NAME`{name#5651} name, `ADDR`{externaddr#5} `FUNC`_externaddr{funcaddr#19}(moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}[x!`%`_idx{i#47207}.0])}] -[visit_exp name#5651] -[visit_id name#5651] +[visit_exp {`NAME` name, `ADDR` `FUNC`_externaddr(moduleinst.`FUNCS`_moduleinst[x!`%`_idx.0])}] [visit_exp name] [visit_id name] not free -[visit_exp externaddr#5] -[visit_id externaddr#5] -[visit_exp `FUNC`_externaddr{funcaddr#19}(moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}[x!`%`_idx{i#47207}.0])] -[visit_exp funcaddr#19] -[visit_id funcaddr#19] -[visit_exp (moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}[x!`%`_idx{i#47207}.0])] -[visit_exp moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}[x!`%`_idx{i#47207}.0]] -[visit_exp moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}] +[visit_exp `FUNC`_externaddr(moduleinst.`FUNCS`_moduleinst[x!`%`_idx.0])] +[visit_exp (moduleinst.`FUNCS`_moduleinst[x!`%`_idx.0])] +[visit_exp moduleinst.`FUNCS`_moduleinst[x!`%`_idx.0]] +[visit_exp moduleinst.`FUNCS`_moduleinst] [visit_exp moduleinst] [visit_id moduleinst] not free -[visit_exp `funcaddr*#5`] -[visit_id funcaddr*#5] -[visit_exp x!`%`_idx{i#47207}.0] -[visit_exp x!`%`_idx{i#47207}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#47207] -[visit_id i#47207] => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name#5649 : name, externidx#5427 : externidx, name : name, funcidx#2843 : funcidx, x : idx, name#5651 : name, externaddr#5 : externaddr, funcaddr#19 : funcaddr, `funcaddr*#5` : funcaddr*, i#47207 : nat}(moduleinst, `EXPORT`_export{name#5649, externidx#5427}(name, `FUNC`_externidx{funcidx#2843}(x))) = {`NAME`{name#5651} name, `ADDR`{externaddr#5} `FUNC`_externaddr{funcaddr#19}(moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}[x!`%`_idx{i#47207}.0])} + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `FUNC`_externidx(x))) = {`NAME` name, `ADDR` `FUNC`_externaddr(moduleinst.`FUNCS`_moduleinst[x!`%`_idx.0])} [check_dims] _ moduleinst DecD allocexports(moduleinst : moduleinst, export*) : exportinst* [visit_id moduleinst] not free @@ -68714,9 +56350,13 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_id _] not free [visit_id _] not free [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free -[check_dims] aa aa_I byte byte*#2021 da data data*#101 dataaddr*#3 dataaddr*#4 datamode datamode#1985 deftype*#94 deftype*#95 dt ea elem elem*#125 elemaddr*#3 elemaddr*#4 elemmode elemmode#3087 elemtype export export*#101 exportinst*#1 exportinst*#2 expr#4459 expr#4477 expr#4495 expr#4497 expr*#3087 expr_E expr_F expr_G expr_T externaddr fa fa_I func func*#101 funcaddr*#6 funcaddr*#7 funcinst*#14 ga ga_I global global*#125 globaladdr*#4 globaladdr*#5 globaltype globaltype#2179 i#47295 i_F import import*#101 local local*#1351 local*#1353 ma ma_I mem mem*#125 memaddr*#5 memaddr*#6 memtype memtype#634 module moduleinst ref_E ref_T reftype#3705 s s_1 s_2 s_3 s_4 s_5 s_6 s_7 start start?#101 ta ta_I table table*#125 tableaddr*#5 tableaddr*#6 tabletype tabletype#998 tag tag*#101 tagaddr*#5 tagaddr*#6 tagtype tagtype#260 type type*#101 typeidx#1808 typeidx#1810 val_G x xi +[scope_exit _] +[scope_exit _] +[check_dims] aa aa_I byte da data datamode dt ea elem elemmode elemtype export expr_E expr_F expr_G expr_T externaddr fa fa_I func ga ga_I global globaltype i_F import local ma ma_I mem memtype module moduleinst ref_E ref_T s s_1 s_2 s_3 s_4 s_5 s_6 s_7 start ta ta_I table tabletype tag tagtype type val_G x xi [visit_exp s] [visit_id s] [visit_exp module] @@ -68770,32 +56410,10 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_id s_7] [visit_exp moduleinst] [visit_id moduleinst] -[visit_exp (module = `MODULE`_module{`type*#101`, `import*#101`, `tag*#101`, `global*#125`, `mem*#125`, `table*#125`, `func*#101`, `data*#101`, `elem*#125`, `start?#101`, `export*#101`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}))] +[visit_exp (module = `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}))] [visit_exp module] [visit_id module] not free -[visit_exp `MODULE`_module{`type*#101`, `import*#101`, `tag*#101`, `global*#125`, `mem*#125`, `table*#125`, `func*#101`, `data*#101`, `elem*#125`, `start?#101`, `export*#101`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp `type*#101`] -[visit_id type*#101] -[visit_exp `import*#101`] -[visit_id import*#101] -[visit_exp `tag*#101`] -[visit_id tag*#101] -[visit_exp `global*#125`] -[visit_id global*#125] -[visit_exp `mem*#125`] -[visit_id mem*#125] -[visit_exp `table*#125`] -[visit_id table*#125] -[visit_exp `func*#101`] -[visit_id func*#101] -[visit_exp `data*#101`] -[visit_id data*#101] -[visit_exp `elem*#125`] -[visit_id elem*#125] -[visit_exp `start?#101`] -[visit_id start?#101] -[visit_exp `export*#101`] -[visit_id export*#101] +[visit_exp `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] [visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] [visit_exp type*{type <- `type*`}] [scope_enter type] @@ -68896,7 +56514,7 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `export*`] [visit_id export*] no dims [visit_id export*] -[visit_exp (tag*{tag <- `tag*`} = `TAG`_tag{tagtype#260}(tagtype)*{tagtype <- `tagtype*`, tagtype#260 <- `tagtype#260*`})] +[visit_exp (tag*{tag <- `tag*`} = `TAG`_tag(tagtype)*{tagtype <- `tagtype*`})] [visit_exp tag*{tag <- `tag*`}] [scope_enter tag] [visit_exp tag] @@ -68906,26 +56524,18 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `tag*`] [visit_id tag*] not free [visit_id tag*] no dims -[visit_exp `TAG`_tag{tagtype#260}(tagtype)*{tagtype <- `tagtype*`, tagtype#260 <- `tagtype#260*`}] +[visit_exp `TAG`_tag(tagtype)*{tagtype <- `tagtype*`}] [scope_enter tagtype] -[scope_enter tagtype#260] -[visit_exp `TAG`_tag{tagtype#260}(tagtype)] -[visit_exp tagtype#260] -[visit_id tagtype#260] not free +[visit_exp `TAG`_tag(tagtype)] [visit_exp (tagtype)] [visit_exp tagtype] [visit_id tagtype] not free [visit_id tagtype] not free -[visit_id tagtype#260] not free -[scope_exit tagtype#260] [scope_exit tagtype] [visit_exp `tagtype*`] [visit_id tagtype*] no dims [visit_id tagtype*] -[visit_exp `tagtype#260*`] -[visit_id tagtype#260*] no dims -[visit_id tagtype#260*] -[visit_exp (global*{global <- `global*`} = `GLOBAL`_global{globaltype#2179, expr#4459}(globaltype, expr_G)*{expr#4459 <- `expr#4459*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2179 <- `globaltype#2179*`})] +[visit_exp (global*{global <- `global*`} = `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`})] [visit_exp global*{global <- `global*`}] [scope_enter global] [visit_exp global] @@ -68935,42 +56545,26 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `global*`] [visit_id global*] not free [visit_id global*] no dims -[visit_exp `GLOBAL`_global{globaltype#2179, expr#4459}(globaltype, expr_G)*{expr#4459 <- `expr#4459*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2179 <- `globaltype#2179*`}] -[scope_enter expr#4459] +[visit_exp `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}] [scope_enter expr_G] [scope_enter globaltype] -[scope_enter globaltype#2179] -[visit_exp `GLOBAL`_global{globaltype#2179, expr#4459}(globaltype, expr_G)] -[visit_exp globaltype#2179] -[visit_id globaltype#2179] not free -[visit_exp expr#4459] -[visit_id expr#4459] not free +[visit_exp `GLOBAL`_global(globaltype, expr_G)] [visit_exp (globaltype, expr_G)] [visit_exp globaltype] [visit_id globaltype] not free [visit_exp expr_G] [visit_id expr_G] not free -[visit_id expr#4459] not free [visit_id expr_G] not free [visit_id globaltype] not free -[visit_id globaltype#2179] not free -[scope_exit globaltype#2179] [scope_exit globaltype] [scope_exit expr_G] -[scope_exit expr#4459] -[visit_exp `expr#4459*`] -[visit_id expr#4459*] no dims -[visit_id expr#4459*] [visit_exp `expr_G*`] [visit_id expr_G*] no dims [visit_id expr_G*] [visit_exp `globaltype*`] [visit_id globaltype*] no dims [visit_id globaltype*] -[visit_exp `globaltype#2179*`] -[visit_id globaltype#2179*] no dims -[visit_id globaltype#2179*] -[visit_exp (mem*{mem <- `mem*`} = `MEMORY`_mem{memtype#634}(memtype)*{memtype <- `memtype*`, memtype#634 <- `memtype#634*`})] +[visit_exp (mem*{mem <- `mem*`} = `MEMORY`_mem(memtype)*{memtype <- `memtype*`})] [visit_exp mem*{mem <- `mem*`}] [scope_enter mem] [visit_exp mem] @@ -68980,26 +56574,18 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `mem*`] [visit_id mem*] not free [visit_id mem*] no dims -[visit_exp `MEMORY`_mem{memtype#634}(memtype)*{memtype <- `memtype*`, memtype#634 <- `memtype#634*`}] +[visit_exp `MEMORY`_mem(memtype)*{memtype <- `memtype*`}] [scope_enter memtype] -[scope_enter memtype#634] -[visit_exp `MEMORY`_mem{memtype#634}(memtype)] -[visit_exp memtype#634] -[visit_id memtype#634] not free +[visit_exp `MEMORY`_mem(memtype)] [visit_exp (memtype)] [visit_exp memtype] [visit_id memtype] not free [visit_id memtype] not free -[visit_id memtype#634] not free -[scope_exit memtype#634] [scope_exit memtype] [visit_exp `memtype*`] [visit_id memtype*] no dims [visit_id memtype*] -[visit_exp `memtype#634*`] -[visit_id memtype#634*] no dims -[visit_id memtype#634*] -[visit_exp (table*{table <- `table*`} = `TABLE`_table{tabletype#998, expr#4477}(tabletype, expr_T)*{expr#4477 <- `expr#4477*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#998 <- `tabletype#998*`})] +[visit_exp (table*{table <- `table*`} = `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`})] [visit_exp table*{table <- `table*`}] [scope_enter table] [visit_exp table] @@ -69009,42 +56595,26 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `table*`] [visit_id table*] not free [visit_id table*] no dims -[visit_exp `TABLE`_table{tabletype#998, expr#4477}(tabletype, expr_T)*{expr#4477 <- `expr#4477*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#998 <- `tabletype#998*`}] -[scope_enter expr#4477] +[visit_exp `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}] [scope_enter expr_T] [scope_enter tabletype] -[scope_enter tabletype#998] -[visit_exp `TABLE`_table{tabletype#998, expr#4477}(tabletype, expr_T)] -[visit_exp tabletype#998] -[visit_id tabletype#998] not free -[visit_exp expr#4477] -[visit_id expr#4477] not free +[visit_exp `TABLE`_table(tabletype, expr_T)] [visit_exp (tabletype, expr_T)] [visit_exp tabletype] [visit_id tabletype] not free [visit_exp expr_T] [visit_id expr_T] not free -[visit_id expr#4477] not free [visit_id expr_T] not free [visit_id tabletype] not free -[visit_id tabletype#998] not free -[scope_exit tabletype#998] [scope_exit tabletype] [scope_exit expr_T] -[scope_exit expr#4477] -[visit_exp `expr#4477*`] -[visit_id expr#4477*] no dims -[visit_id expr#4477*] [visit_exp `expr_T*`] [visit_id expr_T*] no dims [visit_id expr_T*] [visit_exp `tabletype*`] [visit_id tabletype*] no dims [visit_id tabletype*] -[visit_exp `tabletype#998*`] -[visit_id tabletype#998*] no dims -[visit_id tabletype#998*] -[visit_exp (func*{func <- `func*`} = `FUNC`_func{typeidx#1808, `local*#1351`, expr#4495}(x, local*{local <- `local*`}, expr_F)*{expr#4495 <- `expr#4495*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1351` <- `local*#1351*`, typeidx#1808 <- `typeidx#1808*`, x <- `x*`})] +[visit_exp (func*{func <- `func*`} = `FUNC`_func(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`})] [visit_exp func*{func <- `func*`}] [scope_enter func] [visit_exp func] @@ -69054,20 +56624,11 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `func*`] [visit_id func*] not free [visit_id func*] no dims -[visit_exp `FUNC`_func{typeidx#1808, `local*#1351`, expr#4495}(x, local*{local <- `local*`}, expr_F)*{expr#4495 <- `expr#4495*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1351` <- `local*#1351*`, typeidx#1808 <- `typeidx#1808*`, x <- `x*`}] -[scope_enter expr#4495] +[visit_exp `FUNC`_func(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}] [scope_enter expr_F] [scope_enter local*] -[scope_enter local*#1351] -[scope_enter typeidx#1808] [scope_enter x] -[visit_exp `FUNC`_func{typeidx#1808, `local*#1351`, expr#4495}(x, local*{local <- `local*`}, expr_F)] -[visit_exp typeidx#1808] -[visit_id typeidx#1808] not free -[visit_exp `local*#1351`] -[visit_id local*#1351] not free -[visit_exp expr#4495] -[visit_id expr#4495] not free +[visit_exp `FUNC`_func(x, local*{local <- `local*`}, expr_F)] [visit_exp (x, local*{local <- `local*`}, expr_F)] [visit_exp x] [visit_id x] not free @@ -69082,38 +56643,23 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_id local*] no dims [visit_exp expr_F] [visit_id expr_F] not free -[visit_id expr#4495] not free [visit_id expr_F] not free [visit_id local*] not free [visit_id local*] no dims -[visit_id local*#1351] not free -[visit_id typeidx#1808] not free [visit_id x] not free [scope_exit x] -[scope_exit typeidx#1808] -[scope_exit local*#1351] [scope_exit local*] [scope_exit expr_F] -[scope_exit expr#4495] -[visit_exp `expr#4495*`] -[visit_id expr#4495*] no dims -[visit_id expr#4495*] [visit_exp `expr_F*`] [visit_id expr_F*] no dims [visit_id expr_F*] [visit_exp `local**`] [visit_id local**] no dims [visit_id local**] -[visit_exp `local*#1351*`] -[visit_id local*#1351*] no dims -[visit_id local*#1351*] -[visit_exp `typeidx#1808*`] -[visit_id typeidx#1808*] no dims -[visit_id typeidx#1808*] [visit_exp `x*`] [visit_id x*] no dims [visit_id x*] -[visit_exp (data*{data <- `data*`} = `DATA`_data{`byte*#2021`, datamode#1985}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2021` <- `byte*#2021*`, datamode <- `datamode*`, datamode#1985 <- `datamode#1985*`})] +[visit_exp (data*{data <- `data*`} = `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`})] [visit_exp data*{data <- `data*`}] [scope_enter data] [visit_exp data] @@ -69123,16 +56669,10 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `data*`] [visit_id data*] not free [visit_id data*] no dims -[visit_exp `DATA`_data{`byte*#2021`, datamode#1985}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2021` <- `byte*#2021*`, datamode <- `datamode*`, datamode#1985 <- `datamode#1985*`}] +[visit_exp `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}] [scope_enter byte*] -[scope_enter byte*#2021] [scope_enter datamode] -[scope_enter datamode#1985] -[visit_exp `DATA`_data{`byte*#2021`, datamode#1985}(byte*{byte <- `byte*`}, datamode)] -[visit_exp `byte*#2021`] -[visit_id byte*#2021] not free -[visit_exp datamode#1985] -[visit_id datamode#1985] not free +[visit_exp `DATA`_data(byte*{byte <- `byte*`}, datamode)] [visit_exp (byte*{byte <- `byte*`}, datamode)] [visit_exp byte*{byte <- `byte*`}] [scope_enter byte] @@ -69147,26 +56687,16 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_id datamode] not free [visit_id byte*] not free [visit_id byte*] no dims -[visit_id byte*#2021] not free [visit_id datamode] not free -[visit_id datamode#1985] not free -[scope_exit datamode#1985] [scope_exit datamode] -[scope_exit byte*#2021] [scope_exit byte*] [visit_exp `byte**`] [visit_id byte**] no dims [visit_id byte**] -[visit_exp `byte*#2021*`] -[visit_id byte*#2021*] no dims -[visit_id byte*#2021*] [visit_exp `datamode*`] [visit_id datamode*] no dims [visit_id datamode*] -[visit_exp `datamode#1985*`] -[visit_id datamode#1985*] no dims -[visit_id datamode#1985*] -[visit_exp (elem*{elem <- `elem*`} = `ELEM`_elem{reftype#3705, `expr*#3087`, elemmode#3087}(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3087 <- `elemmode#3087*`, elemtype <- `elemtype*`, `expr*#3087` <- `expr*#3087*`, `expr_E*` <- `expr_E**`, reftype#3705 <- `reftype#3705*`})] +[visit_exp (elem*{elem <- `elem*`} = `ELEM`_elem(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemtype <- `elemtype*`, `expr_E*` <- `expr_E**`})] [visit_exp elem*{elem <- `elem*`}] [scope_enter elem] [visit_exp elem] @@ -69176,20 +56706,11 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `elem*`] [visit_id elem*] not free [visit_id elem*] no dims -[visit_exp `ELEM`_elem{reftype#3705, `expr*#3087`, elemmode#3087}(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3087 <- `elemmode#3087*`, elemtype <- `elemtype*`, `expr*#3087` <- `expr*#3087*`, `expr_E*` <- `expr_E**`, reftype#3705 <- `reftype#3705*`}] +[visit_exp `ELEM`_elem(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemtype <- `elemtype*`, `expr_E*` <- `expr_E**`}] [scope_enter elemmode] -[scope_enter elemmode#3087] [scope_enter elemtype] -[scope_enter expr*#3087] [scope_enter expr_E*] -[scope_enter reftype#3705] -[visit_exp `ELEM`_elem{reftype#3705, `expr*#3087`, elemmode#3087}(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)] -[visit_exp reftype#3705] -[visit_id reftype#3705] not free -[visit_exp `expr*#3087`] -[visit_id expr*#3087] not free -[visit_exp elemmode#3087] -[visit_id elemmode#3087] not free +[visit_exp `ELEM`_elem(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)] [visit_exp (elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)] [visit_exp elemtype] [visit_id elemtype] not free @@ -69205,36 +56726,21 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp elemmode] [visit_id elemmode] not free [visit_id elemmode] not free -[visit_id elemmode#3087] not free [visit_id elemtype] not free -[visit_id expr*#3087] not free [visit_id expr_E*] not free [visit_id expr_E*] no dims -[visit_id reftype#3705] not free -[scope_exit reftype#3705] [scope_exit expr_E*] -[scope_exit expr*#3087] [scope_exit elemtype] -[scope_exit elemmode#3087] [scope_exit elemmode] [visit_exp `elemmode*`] [visit_id elemmode*] no dims [visit_id elemmode*] -[visit_exp `elemmode#3087*`] -[visit_id elemmode#3087*] no dims -[visit_id elemmode#3087*] [visit_exp `elemtype*`] [visit_id elemtype*] no dims [visit_id elemtype*] -[visit_exp `expr*#3087*`] -[visit_id expr*#3087*] no dims -[visit_id expr*#3087*] [visit_exp `expr_E**`] [visit_id expr_E**] no dims [visit_id expr_E**] -[visit_exp `reftype#3705*`] -[visit_id reftype#3705*] no dims -[visit_id reftype#3705*] [visit_exp (aa_I*{aa_I <- `aa_I*`} = $tagsxa(externaddr*{externaddr <- `externaddr*`}))] [visit_exp aa_I*{aa_I <- `aa_I*`}] [scope_enter aa_I] @@ -69355,7 +56861,7 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `type*`] [visit_id type*] not free [visit_id type*] no dims -[visit_exp (fa*{fa <- `fa*`} = (|s.`FUNCS`_store{`funcinst*#14`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#14` <- `funcinst*#14*`})] +[visit_exp (fa*{fa <- `fa*`} = (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){})] [visit_exp fa*{fa <- `fa*`}] [scope_enter fa] [visit_exp fa] @@ -69365,21 +56871,16 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `fa*`] [visit_id fa*] no dims [visit_id fa*] -[visit_exp (|s.`FUNCS`_store{`funcinst*#14`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#14` <- `funcinst*#14*`}] +[visit_exp (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}] [scope_enter i_F] -[scope_enter funcinst*#14] -[visit_exp (|s.`FUNCS`_store{`funcinst*#14`}| + i_F)] -[visit_exp |s.`FUNCS`_store{`funcinst*#14`}|] -[visit_exp s.`FUNCS`_store{`funcinst*#14`}] +[visit_exp (|s.`FUNCS`_store| + i_F)] +[visit_exp |s.`FUNCS`_store|] +[visit_exp s.`FUNCS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `funcinst*#14`] -[visit_id funcinst*#14] not free [visit_exp i_F] [visit_id i_F] [visit_id i_F] not free -[visit_id funcinst*#14] not free -[scope_exit funcinst*#14] [scope_exit i_F] [visit_exp |func*{func <- `func*`}|] [visit_exp func*{func <- `func*`}] @@ -69391,9 +56892,6 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `func*`] [visit_id func*] not free [visit_id func*] no dims -[visit_exp `funcinst*#14*`] -[visit_id funcinst*#14*] no dims -[visit_id funcinst*#14*] [visit_exp ((s_1, aa*{aa <- `aa*`}) = $alloctags(s, $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tagtype <- `tagtype*`}))] [visit_exp (s_1, aa*{aa <- `aa*`})] [visit_exp s_1] @@ -69655,7 +57153,7 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `ref_E**`] [visit_id ref_E**] not free [visit_id ref_E**] no dims -[visit_exp ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx{i#47295}.0]*{i#47295 <- `i#47295*`, x <- `x*`}, `FUNC`_funccode{typeidx#1810, `local*#1353`, expr#4497}(x, local*{local <- `local*`}, expr_F)*{expr#4497 <- `expr#4497*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1353` <- `local*#1353*`, typeidx#1810 <- `typeidx#1810*`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{}))] +[visit_exp ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx.0]*{x <- `x*`}, `FUNC`_funccode(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{}))] [visit_exp (s_7, fa*{fa <- `fa*`})] [visit_exp s_7] [visit_id s_7] not free @@ -69668,13 +57166,12 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `fa*`] [visit_id fa*] not free [visit_id fa*] no dims -[visit_exp $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx{i#47295}.0]*{i#47295 <- `i#47295*`, x <- `x*`}, `FUNC`_funccode{typeidx#1810, `local*#1353`, expr#4497}(x, local*{local <- `local*`}, expr_F)*{expr#4497 <- `expr#4497*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1353` <- `local*#1353*`, typeidx#1810 <- `typeidx#1810*`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})] +[visit_exp $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx.0]*{x <- `x*`}, `FUNC`_funccode(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})] [visit_exp s_6] [visit_id s_6] not free -[visit_exp dt*{dt <- `dt*`}[x!`%`_idx{i#47295}.0]*{i#47295 <- `i#47295*`, x <- `x*`}] -[scope_enter i#47295] +[visit_exp dt*{dt <- `dt*`}[x!`%`_idx.0]*{x <- `x*`}] [scope_enter x] -[visit_exp dt*{dt <- `dt*`}[x!`%`_idx{i#47295}.0]] +[visit_exp dt*{dt <- `dt*`}[x!`%`_idx.0]] [visit_exp dt*{dt <- `dt*`}] [scope_enter dt] [visit_exp dt] @@ -69684,36 +57181,20 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `dt*`] [visit_id dt*] not free [visit_id dt*] no dims -[visit_exp x!`%`_idx{i#47295}.0] -[visit_exp x!`%`_idx{i#47295}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#47295] -[visit_id i#47295] not free -[visit_id i#47295] not free [visit_id x] not free [scope_exit x] -[scope_exit i#47295] -[visit_exp `i#47295*`] -[visit_id i#47295*] no dims -[visit_id i#47295*] [visit_exp `x*`] [visit_id x*] not free [visit_id x*] no dims -[visit_exp `FUNC`_funccode{typeidx#1810, `local*#1353`, expr#4497}(x, local*{local <- `local*`}, expr_F)*{expr#4497 <- `expr#4497*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1353` <- `local*#1353*`, typeidx#1810 <- `typeidx#1810*`, x <- `x*`}] -[scope_enter expr#4497] +[visit_exp `FUNC`_funccode(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}] [scope_enter expr_F] [scope_enter local*] -[scope_enter local*#1353] -[scope_enter typeidx#1810] [scope_enter x] -[visit_exp `FUNC`_funccode{typeidx#1810, `local*#1353`, expr#4497}(x, local*{local <- `local*`}, expr_F)] -[visit_exp typeidx#1810] -[visit_id typeidx#1810] not free -[visit_exp `local*#1353`] -[visit_id local*#1353] not free -[visit_exp expr#4497] -[visit_id expr#4497] not free +[visit_exp `FUNC`_funccode(x, local*{local <- `local*`}, expr_F)] [visit_exp (x, local*{local <- `local*`}, expr_F)] [visit_exp x] [visit_id x] not free @@ -69728,34 +57209,19 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_id local*] no dims [visit_exp expr_F] [visit_id expr_F] not free -[visit_id expr#4497] not free [visit_id expr_F] not free [visit_id local*] not free [visit_id local*] no dims -[visit_id local*#1353] not free -[visit_id typeidx#1810] not free [visit_id x] not free [scope_exit x] -[scope_exit typeidx#1810] -[scope_exit local*#1353] [scope_exit local*] [scope_exit expr_F] -[scope_exit expr#4497] -[visit_exp `expr#4497*`] -[visit_id expr#4497*] no dims -[visit_id expr#4497*] [visit_exp `expr_F*`] [visit_id expr_F*] not free [visit_id expr_F*] no dims [visit_exp `local**`] [visit_id local**] not free [visit_id local**] no dims -[visit_exp `local*#1353*`] -[visit_id local*#1353*] no dims -[visit_id local*#1353*] -[visit_exp `typeidx#1810*`] -[visit_id typeidx#1810*] no dims -[visit_id typeidx#1810*] [visit_exp `x*`] [visit_id x*] not free [visit_id x*] no dims @@ -69772,7 +57238,7 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `func*`] [visit_id func*] not free [visit_id func*] no dims -[visit_exp (xi*{xi <- `xi*`} = $allocexports({`TYPES`{`deftype*#94`} [], `TAGS`{`tagaddr*#5`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#4`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#5`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#5`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#6`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#3`} [], `ELEMS`{`elemaddr*#3`} [], `EXPORTS`{`exportinst*#1`} []}, export*{export <- `export*`}))] +[visit_exp (xi*{xi <- `xi*`} = $allocexports({`TYPES` [], `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` [], `ELEMS` [], `EXPORTS` []}, export*{export <- `export*`}))] [visit_exp xi*{xi <- `xi*`}] [scope_enter xi] [visit_exp xi] @@ -69782,13 +57248,9 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `xi*`] [visit_id xi*] no dims [visit_id xi*] -[visit_exp $allocexports({`TYPES`{`deftype*#94`} [], `TAGS`{`tagaddr*#5`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#4`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#5`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#5`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#6`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#3`} [], `ELEMS`{`elemaddr*#3`} [], `EXPORTS`{`exportinst*#1`} []}, export*{export <- `export*`})] -[visit_exp {`TYPES`{`deftype*#94`} [], `TAGS`{`tagaddr*#5`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#4`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#5`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#5`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#6`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#3`} [], `ELEMS`{`elemaddr*#3`} [], `EXPORTS`{`exportinst*#1`} []}] -[visit_exp `deftype*#94`] -[visit_id deftype*#94] +[visit_exp $allocexports({`TYPES` [], `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` [], `ELEMS` [], `EXPORTS` []}, export*{export <- `export*`})] +[visit_exp {`TYPES` [], `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` [], `ELEMS` [], `EXPORTS` []}] [visit_exp []] -[visit_exp `tagaddr*#5`] -[visit_id tagaddr*#5] [visit_exp aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}] [visit_exp aa_I*{aa_I <- `aa_I*`}] [scope_enter aa_I] @@ -69808,8 +57270,6 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `aa*`] [visit_id aa*] not free [visit_id aa*] no dims -[visit_exp `globaladdr*#4`] -[visit_id globaladdr*#4] [visit_exp ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}] [visit_exp ga_I*{ga_I <- `ga_I*`}] [scope_enter ga_I] @@ -69829,8 +57289,6 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `ga*`] [visit_id ga*] not free [visit_id ga*] no dims -[visit_exp `memaddr*#5`] -[visit_id memaddr*#5] [visit_exp ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}] [visit_exp ma_I*{ma_I <- `ma_I*`}] [scope_enter ma_I] @@ -69850,8 +57308,6 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `ma*`] [visit_id ma*] not free [visit_id ma*] no dims -[visit_exp `tableaddr*#5`] -[visit_id tableaddr*#5] [visit_exp ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}] [visit_exp ta_I*{ta_I <- `ta_I*`}] [scope_enter ta_I] @@ -69871,8 +57327,6 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `ta*`] [visit_id ta*] not free [visit_id ta*] no dims -[visit_exp `funcaddr*#6`] -[visit_id funcaddr*#6] [visit_exp fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}] [visit_exp fa_I*{fa_I <- `fa_I*`}] [scope_enter fa_I] @@ -69892,14 +57346,8 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `fa*`] [visit_id fa*] not free [visit_id fa*] no dims -[visit_exp `dataaddr*#3`] -[visit_id dataaddr*#3] [visit_exp []] -[visit_exp `elemaddr*#3`] -[visit_id elemaddr*#3] [visit_exp []] -[visit_exp `exportinst*#1`] -[visit_id exportinst*#1] [visit_exp []] [visit_exp export*{export <- `export*`}] [scope_enter export] @@ -69910,12 +57358,10 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `export*`] [visit_id export*] not free [visit_id export*] no dims -[visit_exp (moduleinst = {`TYPES`{`deftype*#95`} dt*{dt <- `dt*`}, `TAGS`{`tagaddr*#6`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#5`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#6`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#6`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#7`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#4`} da*{da <- `da*`}, `ELEMS`{`elemaddr*#4`} ea*{ea <- `ea*`}, `EXPORTS`{`exportinst*#2`} xi*{xi <- `xi*`}})] +[visit_exp (moduleinst = {`TYPES` dt*{dt <- `dt*`}, `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` da*{da <- `da*`}, `ELEMS` ea*{ea <- `ea*`}, `EXPORTS` xi*{xi <- `xi*`}})] [visit_exp moduleinst] [visit_id moduleinst] not free -[visit_exp {`TYPES`{`deftype*#95`} dt*{dt <- `dt*`}, `TAGS`{`tagaddr*#6`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#5`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#6`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#6`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#7`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#4`} da*{da <- `da*`}, `ELEMS`{`elemaddr*#4`} ea*{ea <- `ea*`}, `EXPORTS`{`exportinst*#2`} xi*{xi <- `xi*`}}] -[visit_exp `deftype*#95`] -[visit_id deftype*#95] +[visit_exp {`TYPES` dt*{dt <- `dt*`}, `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` da*{da <- `da*`}, `ELEMS` ea*{ea <- `ea*`}, `EXPORTS` xi*{xi <- `xi*`}}] [visit_exp dt*{dt <- `dt*`}] [scope_enter dt] [visit_exp dt] @@ -69925,8 +57371,6 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `dt*`] [visit_id dt*] not free [visit_id dt*] no dims -[visit_exp `tagaddr*#6`] -[visit_id tagaddr*#6] [visit_exp aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}] [visit_exp aa_I*{aa_I <- `aa_I*`}] [scope_enter aa_I] @@ -69946,8 +57390,6 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `aa*`] [visit_id aa*] not free [visit_id aa*] no dims -[visit_exp `globaladdr*#5`] -[visit_id globaladdr*#5] [visit_exp ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}] [visit_exp ga_I*{ga_I <- `ga_I*`}] [scope_enter ga_I] @@ -69967,8 +57409,6 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `ga*`] [visit_id ga*] not free [visit_id ga*] no dims -[visit_exp `memaddr*#6`] -[visit_id memaddr*#6] [visit_exp ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}] [visit_exp ma_I*{ma_I <- `ma_I*`}] [scope_enter ma_I] @@ -69988,8 +57428,6 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `ma*`] [visit_id ma*] not free [visit_id ma*] no dims -[visit_exp `tableaddr*#6`] -[visit_id tableaddr*#6] [visit_exp ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}] [visit_exp ta_I*{ta_I <- `ta_I*`}] [scope_enter ta_I] @@ -70009,8 +57447,6 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `ta*`] [visit_id ta*] not free [visit_id ta*] no dims -[visit_exp `funcaddr*#7`] -[visit_id funcaddr*#7] [visit_exp fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}] [visit_exp fa_I*{fa_I <- `fa_I*`}] [scope_enter fa_I] @@ -70030,8 +57466,6 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `fa*`] [visit_id fa*] not free [visit_id fa*] no dims -[visit_exp `dataaddr*#4`] -[visit_id dataaddr*#4] [visit_exp da*{da <- `da*`}] [scope_enter da] [visit_exp da] @@ -70041,8 +57475,6 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `da*`] [visit_id da*] not free [visit_id da*] no dims -[visit_exp `elemaddr*#4`] -[visit_id elemaddr*#4] [visit_exp ea*{ea <- `ea*`}] [scope_enter ea] [visit_exp ea] @@ -70052,8 +57484,6 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_exp `ea*`] [visit_id ea*] not free [visit_id ea*] no dims -[visit_exp `exportinst*#2`] -[visit_id exportinst*#2] [visit_exp xi*{xi <- `xi*`}] [scope_enter xi] [visit_exp xi] @@ -70065,43 +57495,39 @@ DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) [visit_id xi*] no dims => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocmodule{s : store, module : module, `externaddr*` : externaddr*, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, s_7 : store, moduleinst : moduleinst, `type*#101` : type*, `import*#101` : import*, `tag*#101` : tag*, `global*#125` : global*, `mem*#125` : mem*, `table*#125` : table*, `func*#101` : func*, `data*#101` : data*, `elem*#125` : elem*, `start?#101` : start?, `export*#101` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `tagtype*` : tagtype*, `tagtype#260*` : tagtype*, `expr#4459*` : expr*, `expr_G*` : expr*, `globaltype*` : globaltype*, `globaltype#2179*` : globaltype*, `memtype*` : memtype*, `memtype#634*` : memtype*, `expr#4477*` : expr*, `expr_T*` : expr*, `tabletype*` : tabletype*, `tabletype#998*` : tabletype*, `expr#4495*` : expr*, `expr_F*` : expr*, `local**` : local**, `local*#1351*` : local**, `typeidx#1808*` : typeidx*, `x*` : idx*, `byte**` : byte**, `byte*#2021*` : byte**, `datamode*` : datamode*, `datamode#1985*` : datamode*, `elemmode*` : elemmode*, `elemmode#3087*` : elemmode*, `elemtype*` : elemtype*, `expr*#3087*` : expr**, `expr_E**` : expr**, `reftype#3705*` : reftype*, `aa_I*` : tagaddr*, `ga_I*` : globaladdr*, `ma_I*` : memaddr*, `ta_I*` : tableaddr*, `fa_I*` : funcaddr*, `dt*` : deftype*, `fa*` : nat*, i_F : nat, `funcinst*#14*` : funcinst**, s_1 : store, `aa*` : tagaddr*, s_2 : store, `ga*` : globaladdr*, s_3 : store, `ma*` : memaddr*, s_4 : store, `ta*` : tableaddr*, s_5 : store, `da*` : dataaddr*, s_6 : store, `ea*` : elemaddr*, `i#47295*` : nat*, `expr#4497*` : expr*, `local*#1353*` : local**, `typeidx#1810*` : typeidx*, `xi*` : exportinst*, `deftype*#94` : deftype*, `tagaddr*#5` : tagaddr*, `globaladdr*#4` : globaladdr*, `memaddr*#5` : memaddr*, `tableaddr*#5` : tableaddr*, `funcaddr*#6` : funcaddr*, `dataaddr*#3` : dataaddr*, `elemaddr*#3` : elemaddr*, `exportinst*#1` : exportinst*, `deftype*#95` : deftype*, `tagaddr*#6` : tagaddr*, `globaladdr*#5` : globaladdr*, `memaddr*#6` : memaddr*, `tableaddr*#6` : tableaddr*, `funcaddr*#7` : funcaddr*, `dataaddr*#4` : dataaddr*, `elemaddr*#4` : elemaddr*, `exportinst*#2` : exportinst*}(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}) = (s_7, moduleinst) - -- if (module = `MODULE`_module{`type*#101`, `import*#101`, `tag*#101`, `global*#125`, `mem*#125`, `table*#125`, `func*#101`, `data*#101`, `elem*#125`, `start?#101`, `export*#101`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) - -- if (tag*{tag <- `tag*`} = `TAG`_tag{tagtype#260}(tagtype)*{tagtype <- `tagtype*`, tagtype#260 <- `tagtype#260*`}) - -- if (global*{global <- `global*`} = `GLOBAL`_global{globaltype#2179, expr#4459}(globaltype, expr_G)*{expr#4459 <- `expr#4459*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2179 <- `globaltype#2179*`}) - -- if (mem*{mem <- `mem*`} = `MEMORY`_mem{memtype#634}(memtype)*{memtype <- `memtype*`, memtype#634 <- `memtype#634*`}) - -- if (table*{table <- `table*`} = `TABLE`_table{tabletype#998, expr#4477}(tabletype, expr_T)*{expr#4477 <- `expr#4477*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#998 <- `tabletype#998*`}) - -- if (func*{func <- `func*`} = `FUNC`_func{typeidx#1808, `local*#1351`, expr#4495}(x, local*{local <- `local*`}, expr_F)*{expr#4495 <- `expr#4495*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1351` <- `local*#1351*`, typeidx#1808 <- `typeidx#1808*`, x <- `x*`}) - -- if (data*{data <- `data*`} = `DATA`_data{`byte*#2021`, datamode#1985}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2021` <- `byte*#2021*`, datamode <- `datamode*`, datamode#1985 <- `datamode#1985*`}) - -- if (elem*{elem <- `elem*`} = `ELEM`_elem{reftype#3705, `expr*#3087`, elemmode#3087}(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3087 <- `elemmode#3087*`, elemtype <- `elemtype*`, `expr*#3087` <- `expr*#3087*`, `expr_E*` <- `expr_E**`, reftype#3705 <- `reftype#3705*`}) + def $allocmodule{s : store, module : module, `externaddr*` : externaddr*, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, s_7 : store, moduleinst : moduleinst, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `tagtype*` : tagtype*, `expr_G*` : expr*, `globaltype*` : globaltype*, `memtype*` : memtype*, `expr_T*` : expr*, `tabletype*` : tabletype*, `expr_F*` : expr*, `local**` : local**, `x*` : idx*, `byte**` : byte**, `datamode*` : datamode*, `elemmode*` : elemmode*, `elemtype*` : elemtype*, `expr_E**` : expr**, `aa_I*` : tagaddr*, `ga_I*` : globaladdr*, `ma_I*` : memaddr*, `ta_I*` : tableaddr*, `fa_I*` : funcaddr*, `dt*` : deftype*, `fa*` : nat*, i_F : nat, s_1 : store, `aa*` : tagaddr*, s_2 : store, `ga*` : globaladdr*, s_3 : store, `ma*` : memaddr*, s_4 : store, `ta*` : tableaddr*, s_5 : store, `da*` : dataaddr*, s_6 : store, `ea*` : elemaddr*, `xi*` : exportinst*}(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}) = (s_7, moduleinst) + -- if (module = `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) + -- if (tag*{tag <- `tag*`} = `TAG`_tag(tagtype)*{tagtype <- `tagtype*`}) + -- if (global*{global <- `global*`} = `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}) + -- if (mem*{mem <- `mem*`} = `MEMORY`_mem(memtype)*{memtype <- `memtype*`}) + -- if (table*{table <- `table*`} = `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}) + -- if (func*{func <- `func*`} = `FUNC`_func(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}) + -- if (data*{data <- `data*`} = `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}) + -- if (elem*{elem <- `elem*`} = `ELEM`_elem(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemtype <- `elemtype*`, `expr_E*` <- `expr_E**`}) -- if (aa_I*{aa_I <- `aa_I*`} = $tagsxa(externaddr*{externaddr <- `externaddr*`})) -- if (ga_I*{ga_I <- `ga_I*`} = $globalsxa(externaddr*{externaddr <- `externaddr*`})) -- if (ma_I*{ma_I <- `ma_I*`} = $memsxa(externaddr*{externaddr <- `externaddr*`})) -- if (ta_I*{ta_I <- `ta_I*`} = $tablesxa(externaddr*{externaddr <- `externaddr*`})) -- if (fa_I*{fa_I <- `fa_I*`} = $funcsxa(externaddr*{externaddr <- `externaddr*`})) -- if (dt*{dt <- `dt*`} = $alloctypes(type*{type <- `type*`})) - -- if (fa*{fa <- `fa*`} = (|s.`FUNCS`_store{`funcinst*#14`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#14` <- `funcinst*#14*`}) + -- if (fa*{fa <- `fa*`} = (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}) -- if ((s_1, aa*{aa <- `aa*`}) = $alloctags(s, $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tagtype <- `tagtype*`})) -- if ((s_2, ga*{ga <- `ga*`}) = $allocglobals(s_1, $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{globaltype <- `globaltype*`}, val_G*{val_G <- `val_G*`})) -- if ((s_3, ma*{ma <- `ma*`}) = $allocmems(s_2, $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{memtype <- `memtype*`})) -- if ((s_4, ta*{ta <- `ta*`}) = $alloctables(s_3, $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tabletype <- `tabletype*`}, ref_T*{ref_T <- `ref_T*`})) -- if ((s_5, da*{da <- `da*`}) = $allocdatas(s_4, `OK`_datatype^|data*{data <- `data*`}|{}, byte*{byte <- `byte*`}*{`byte*` <- `byte**`})) -- if ((s_6, ea*{ea <- `ea*`}) = $allocelems(s_5, $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{elemtype <- `elemtype*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})) - -- if ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx{i#47295}.0]*{i#47295 <- `i#47295*`, x <- `x*`}, `FUNC`_funccode{typeidx#1810, `local*#1353`, expr#4497}(x, local*{local <- `local*`}, expr_F)*{expr#4497 <- `expr#4497*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1353` <- `local*#1353*`, typeidx#1810 <- `typeidx#1810*`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})) - -- if (xi*{xi <- `xi*`} = $allocexports({`TYPES`{`deftype*#94`} [], `TAGS`{`tagaddr*#5`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#4`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#5`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#5`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#6`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#3`} [], `ELEMS`{`elemaddr*#3`} [], `EXPORTS`{`exportinst*#1`} []}, export*{export <- `export*`})) - -- if (moduleinst = {`TYPES`{`deftype*#95`} dt*{dt <- `dt*`}, `TAGS`{`tagaddr*#6`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#5`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#6`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#6`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#7`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#4`} da*{da <- `da*`}, `ELEMS`{`elemaddr*#4`} ea*{ea <- `ea*`}, `EXPORTS`{`exportinst*#2`} xi*{xi <- `xi*`}}) + -- if ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx.0]*{x <- `x*`}, `FUNC`_funccode(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})) + -- if (xi*{xi <- `xi*`} = $allocexports({`TYPES` [], `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` [], `ELEMS` [], `EXPORTS` []}, export*{export <- `export*`})) + -- if (moduleinst = {`TYPES` dt*{dt <- `dt*`}, `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` da*{da <- `da*`}, `ELEMS` ea*{ea <- `ea*`}, `EXPORTS` xi*{xi <- `xi*`}}) [check_dims] data dataidx DecD rundata_(dataidx : dataidx, data : data) : instr* [visit_id dataidx] not free [visit_id data] not free -[check_dims] b byte*#2033 datamode#1997 n x +[check_dims] b n x [visit_exp x] [visit_id x] -[visit_exp `DATA`_data{`byte*#2033`, datamode#1997}(b^n{b <- `b*`}, `PASSIVE`_datamode)] -[visit_exp `byte*#2033`] -[visit_id byte*#2033] -[visit_exp datamode#1997] -[visit_id datamode#1997] +[visit_exp `DATA`_data(b^n{b <- `b*`}, `PASSIVE`_datamode)] [visit_exp (b^n{b <- `b*`}, `PASSIVE`_datamode)] [visit_exp b^n{b <- `b*`}] [scope_enter b] @@ -70119,16 +57545,12 @@ DecD rundata_(dataidx : dataidx, data : data) : instr* [visit_exp []] => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $rundata_{x : idx, `byte*#2033` : byte*, datamode#1997 : datamode, n : n, `b*` : byte*}(x, `DATA`_data{`byte*#2033`, datamode#1997}(b^n{b <- `b*`}, `PASSIVE`_datamode)) = [] -[check_dims] b byte*#2045 dataidx#43 dataidx#45 datamode#2009 expr#4499 i#47393 i#47417 instr memidx#165 memidx#167 n numtype#623 numtype#625 x y + def $rundata_{x : idx, n : n, `b*` : byte*}(x, `DATA`_data(b^n{b <- `b*`}, `PASSIVE`_datamode)) = [] +[check_dims] b instr n x y [visit_exp x] [visit_id x] -[visit_exp `DATA`_data{`byte*#2045`, datamode#2009}(b^n{b <- `b*`}, `ACTIVE`_datamode{memidx#165, expr#4499}(y, instr*{instr <- `instr*`}))] -[visit_exp `byte*#2045`] -[visit_id byte*#2045] -[visit_exp datamode#2009] -[visit_id datamode#2009] -[visit_exp (b^n{b <- `b*`}, `ACTIVE`_datamode{memidx#165, expr#4499}(y, instr*{instr <- `instr*`}))] +[visit_exp `DATA`_data(b^n{b <- `b*`}, `ACTIVE`_datamode(y, instr*{instr <- `instr*`}))] +[visit_exp (b^n{b <- `b*`}, `ACTIVE`_datamode(y, instr*{instr <- `instr*`}))] [visit_exp b^n{b <- `b*`}] [scope_enter b] [visit_exp b] @@ -70140,11 +57562,7 @@ DecD rundata_(dataidx : dataidx, data : data) : instr* [visit_exp `b*`] [visit_id b*] no dims [visit_id b*] -[visit_exp `ACTIVE`_datamode{memidx#165, expr#4499}(y, instr*{instr <- `instr*`})] -[visit_exp memidx#165] -[visit_id memidx#165] -[visit_exp expr#4499] -[visit_id expr#4499] +[visit_exp `ACTIVE`_datamode(y, instr*{instr <- `instr*`})] [visit_exp (y, instr*{instr <- `instr*`})] [visit_exp y] [visit_id y] @@ -70157,7 +57575,7 @@ DecD rundata_(dataidx : dataidx, data : data) : instr* [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp instr*{instr <- `instr*`} ++ [`CONST`_instr{numtype#623}(`I32`_numtype, `%`_num_{i#47393}(0)) `CONST`_instr{numtype#625}(`I32`_numtype, `%`_num_{i#47417}(n)) `MEMORY.INIT`_instr{memidx#167, dataidx#43}(y, x) `DATA.DROP`_instr{dataidx#45}(x)]] +[visit_exp instr*{instr <- `instr*`} ++ [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(y, x) `DATA.DROP`_instr(x)]] [visit_exp instr*{instr <- `instr*`}] [scope_enter instr] [visit_exp instr] @@ -70167,63 +57585,43 @@ DecD rundata_(dataidx : dataidx, data : data) : instr* [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp [`CONST`_instr{numtype#623}(`I32`_numtype, `%`_num_{i#47393}(0)) `CONST`_instr{numtype#625}(`I32`_numtype, `%`_num_{i#47417}(n)) `MEMORY.INIT`_instr{memidx#167, dataidx#43}(y, x) `DATA.DROP`_instr{dataidx#45}(x)]] -[visit_exp `CONST`_instr{numtype#623}(`I32`_numtype, `%`_num_{i#47393}(0))] -[visit_exp numtype#623] -[visit_id numtype#623] -[visit_exp (`I32`_numtype, `%`_num_{i#47393}(0))] +[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(y, x) `DATA.DROP`_instr(x)]] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(0))] +[visit_exp (`I32`_numtype, `%`_num_(0))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#47393}(0)] -[visit_exp i#47393] -[visit_id i#47393] +[visit_exp `%`_num_(0)] [visit_exp (0)] [visit_exp 0] -[visit_exp `CONST`_instr{numtype#625}(`I32`_numtype, `%`_num_{i#47417}(n))] -[visit_exp numtype#625] -[visit_id numtype#625] -[visit_exp (`I32`_numtype, `%`_num_{i#47417}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#47417}(n)] -[visit_exp i#47417] -[visit_id i#47417] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[visit_exp `MEMORY.INIT`_instr{memidx#167, dataidx#43}(y, x)] -[visit_exp memidx#167] -[visit_id memidx#167] -[visit_exp dataidx#43] -[visit_id dataidx#43] +[visit_exp `MEMORY.INIT`_instr(y, x)] [visit_exp (y, x)] [visit_exp y] [visit_id y] not free [visit_exp x] [visit_id x] not free -[visit_exp `DATA.DROP`_instr{dataidx#45}(x)] -[visit_exp dataidx#45] -[visit_id dataidx#45] +[visit_exp `DATA.DROP`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $rundata_{x : idx, `byte*#2045` : byte*, datamode#2009 : datamode, n : n, `b*` : byte*, memidx#165 : memidx, expr#4499 : expr, y : idx, `instr*` : instr*, numtype#623 : numtype, i#47393 : nat, numtype#625 : numtype, i#47417 : nat, memidx#167 : memidx, dataidx#43 : dataidx, dataidx#45 : dataidx}(x, `DATA`_data{`byte*#2045`, datamode#2009}(b^n{b <- `b*`}, `ACTIVE`_datamode{memidx#165, expr#4499}(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr{numtype#623}(`I32`_numtype, `%`_num_{i#47393}(0)) `CONST`_instr{numtype#625}(`I32`_numtype, `%`_num_{i#47417}(n)) `MEMORY.INIT`_instr{memidx#167, dataidx#43}(y, x) `DATA.DROP`_instr{dataidx#45}(x)] + def $rundata_{x : idx, n : n, `b*` : byte*, y : idx, `instr*` : instr*}(x, `DATA`_data(b^n{b <- `b*`}, `ACTIVE`_datamode(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(y, x) `DATA.DROP`_instr(x)] [check_dims] elem elemidx DecD runelem_(elemidx : elemidx, elem : elem) : instr* [visit_id elemidx] not free [visit_id elem] not free -[check_dims] e elemmode#3099 expr*#3099 n reftype#3735 rt x +[check_dims] e n rt x [visit_exp x] [visit_id x] -[visit_exp `ELEM`_elem{reftype#3735, `expr*#3099`, elemmode#3099}(rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)] -[visit_exp reftype#3735] -[visit_id reftype#3735] -[visit_exp `expr*#3099`] -[visit_id expr*#3099] -[visit_exp elemmode#3099] -[visit_id elemmode#3099] +[visit_exp `ELEM`_elem(rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)] [visit_exp (rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)] [visit_exp rt] [visit_id rt] @@ -70243,17 +57641,11 @@ DecD runelem_(elemidx : elemidx, elem : elem) : instr* [visit_exp []] => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, reftype#3735 : reftype, `expr*#3099` : expr*, elemmode#3099 : elemmode, rt : reftype, n : n, `e*` : expr*}(x, `ELEM`_elem{reftype#3735, `expr*#3099`, elemmode#3099}(rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)) = [] -[check_dims] e elemidx#43 elemmode#3111 expr*#3111 n reftype#3747 rt x + def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*}(x, `ELEM`_elem(rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)) = [] +[check_dims] e n rt x [visit_exp x] [visit_id x] -[visit_exp `ELEM`_elem{reftype#3747, `expr*#3111`, elemmode#3111}(rt, e^n{e <- `e*`}, `DECLARE`_elemmode)] -[visit_exp reftype#3747] -[visit_id reftype#3747] -[visit_exp `expr*#3111`] -[visit_id expr*#3111] -[visit_exp elemmode#3111] -[visit_id elemmode#3111] +[visit_exp `ELEM`_elem(rt, e^n{e <- `e*`}, `DECLARE`_elemmode)] [visit_exp (rt, e^n{e <- `e*`}, `DECLARE`_elemmode)] [visit_exp rt] [visit_id rt] @@ -70270,27 +57662,19 @@ DecD runelem_(elemidx : elemidx, elem : elem) : instr* [visit_id e*] [visit_exp `DECLARE`_elemmode] [visit_exp ()] -[visit_exp [`ELEM.DROP`_instr{elemidx#43}(x)]] -[visit_exp `ELEM.DROP`_instr{elemidx#43}(x)] -[visit_exp elemidx#43] -[visit_id elemidx#43] +[visit_exp [`ELEM.DROP`_instr(x)]] +[visit_exp `ELEM.DROP`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, reftype#3747 : reftype, `expr*#3111` : expr*, elemmode#3111 : elemmode, rt : reftype, n : n, `e*` : expr*, elemidx#43 : elemidx}(x, `ELEM`_elem{reftype#3747, `expr*#3111`, elemmode#3111}(rt, e^n{e <- `e*`}, `DECLARE`_elemmode)) = [`ELEM.DROP`_instr{elemidx#43}(x)] -[check_dims] e elemidx#45 elemidx#47 elemmode#3123 expr#4501 expr*#3123 i#47545 i#47569 instr n numtype#627 numtype#629 reftype#3759 rt tableidx#119 tableidx#121 x y + def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*}(x, `ELEM`_elem(rt, e^n{e <- `e*`}, `DECLARE`_elemmode)) = [`ELEM.DROP`_instr(x)] +[check_dims] e instr n rt x y [visit_exp x] [visit_id x] -[visit_exp `ELEM`_elem{reftype#3759, `expr*#3123`, elemmode#3123}(rt, e^n{e <- `e*`}, `ACTIVE`_elemmode{tableidx#119, expr#4501}(y, instr*{instr <- `instr*`}))] -[visit_exp reftype#3759] -[visit_id reftype#3759] -[visit_exp `expr*#3123`] -[visit_id expr*#3123] -[visit_exp elemmode#3123] -[visit_id elemmode#3123] -[visit_exp (rt, e^n{e <- `e*`}, `ACTIVE`_elemmode{tableidx#119, expr#4501}(y, instr*{instr <- `instr*`}))] +[visit_exp `ELEM`_elem(rt, e^n{e <- `e*`}, `ACTIVE`_elemmode(y, instr*{instr <- `instr*`}))] +[visit_exp (rt, e^n{e <- `e*`}, `ACTIVE`_elemmode(y, instr*{instr <- `instr*`}))] [visit_exp rt] [visit_id rt] [visit_exp e^n{e <- `e*`}] @@ -70304,11 +57688,7 @@ DecD runelem_(elemidx : elemidx, elem : elem) : instr* [visit_exp `e*`] [visit_id e*] no dims [visit_id e*] -[visit_exp `ACTIVE`_elemmode{tableidx#119, expr#4501}(y, instr*{instr <- `instr*`})] -[visit_exp tableidx#119] -[visit_id tableidx#119] -[visit_exp expr#4501] -[visit_id expr#4501] +[visit_exp `ACTIVE`_elemmode(y, instr*{instr <- `instr*`})] [visit_exp (y, instr*{instr <- `instr*`})] [visit_exp y] [visit_id y] @@ -70321,7 +57701,7 @@ DecD runelem_(elemidx : elemidx, elem : elem) : instr* [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp instr*{instr <- `instr*`} ++ [`CONST`_instr{numtype#627}(`I32`_numtype, `%`_num_{i#47545}(0)) `CONST`_instr{numtype#629}(`I32`_numtype, `%`_num_{i#47569}(n)) `TABLE.INIT`_instr{tableidx#121, elemidx#45}(y, x) `ELEM.DROP`_instr{elemidx#47}(x)]] +[visit_exp instr*{instr <- `instr*`} ++ [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(y, x) `ELEM.DROP`_instr(x)]] [visit_exp instr*{instr <- `instr*`}] [scope_enter instr] [visit_exp instr] @@ -70331,56 +57711,46 @@ DecD runelem_(elemidx : elemidx, elem : elem) : instr* [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp [`CONST`_instr{numtype#627}(`I32`_numtype, `%`_num_{i#47545}(0)) `CONST`_instr{numtype#629}(`I32`_numtype, `%`_num_{i#47569}(n)) `TABLE.INIT`_instr{tableidx#121, elemidx#45}(y, x) `ELEM.DROP`_instr{elemidx#47}(x)]] -[visit_exp `CONST`_instr{numtype#627}(`I32`_numtype, `%`_num_{i#47545}(0))] -[visit_exp numtype#627] -[visit_id numtype#627] -[visit_exp (`I32`_numtype, `%`_num_{i#47545}(0))] +[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(y, x) `ELEM.DROP`_instr(x)]] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(0))] +[visit_exp (`I32`_numtype, `%`_num_(0))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#47545}(0)] -[visit_exp i#47545] -[visit_id i#47545] +[visit_exp `%`_num_(0)] [visit_exp (0)] [visit_exp 0] -[visit_exp `CONST`_instr{numtype#629}(`I32`_numtype, `%`_num_{i#47569}(n))] -[visit_exp numtype#629] -[visit_id numtype#629] -[visit_exp (`I32`_numtype, `%`_num_{i#47569}(n))] +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#47569}(n)] -[visit_exp i#47569] -[visit_id i#47569] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[visit_exp `TABLE.INIT`_instr{tableidx#121, elemidx#45}(y, x)] -[visit_exp tableidx#121] -[visit_id tableidx#121] -[visit_exp elemidx#45] -[visit_id elemidx#45] +[visit_exp `TABLE.INIT`_instr(y, x)] [visit_exp (y, x)] [visit_exp y] [visit_id y] not free [visit_exp x] [visit_id x] not free -[visit_exp `ELEM.DROP`_instr{elemidx#47}(x)] -[visit_exp elemidx#47] -[visit_id elemidx#47] +[visit_exp `ELEM.DROP`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, reftype#3759 : reftype, `expr*#3123` : expr*, elemmode#3123 : elemmode, rt : reftype, n : n, `e*` : expr*, tableidx#119 : tableidx, expr#4501 : expr, y : idx, `instr*` : instr*, numtype#627 : numtype, i#47545 : nat, numtype#629 : numtype, i#47569 : nat, tableidx#121 : tableidx, elemidx#45 : elemidx, elemidx#47 : elemidx}(x, `ELEM`_elem{reftype#3759, `expr*#3123`, elemmode#3123}(rt, e^n{e <- `e*`}, `ACTIVE`_elemmode{tableidx#119, expr#4501}(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr{numtype#627}(`I32`_numtype, `%`_num_{i#47545}(0)) `CONST`_instr{numtype#629}(`I32`_numtype, `%`_num_{i#47569}(n)) `TABLE.INIT`_instr{tableidx#121, elemidx#45}(y, x) `ELEM.DROP`_instr{elemidx#47}(x)] + def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*, y : idx, `instr*` : instr*}(x, `ELEM`_elem(rt, e^n{e <- `e*`}, `ACTIVE`_elemmode(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(y, x) `ELEM.DROP`_instr(x)] [check_dims] _ state DecD evalglobals(state : state, globaltype*, expr*) : (state, val*) [visit_id state] not free [visit_id _] not free [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [check_dims] z [visit_exp z] [visit_id z] @@ -70393,7 +57763,7 @@ DecD evalglobals(state : state, globaltype*, expr*) : (state, val*) => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $evalglobals{z : state}(z, [], []) = (z, []) -[check_dims] a expr expr' f frame#2561 frame#2573 globaladdr*#6 gt gt' moduleinst#26 s s' store#2543 store#2555 val val' z z' +[check_dims] a expr expr' f gt gt' s s' val val' z z' [visit_exp z] [visit_id z] [visit_exp [gt] ++ gt'*{gt' <- `gt'*`}] @@ -70448,14 +57818,10 @@ DecD evalglobals(state : state, globaltype*, expr*) : (state, val*) [visit_exp [val]] [visit_exp val] [visit_id val] not free -[visit_exp (z = `%;%`_state{store#2543, frame#2561}(s, f))] +[visit_exp (z = `%;%`_state(s, f))] [visit_exp z] [visit_id z] not free -[visit_exp `%;%`_state{store#2543, frame#2561}(s, f)] -[visit_exp store#2543] -[visit_id store#2543] -[visit_exp frame#2561] -[visit_id frame#2561] +[visit_exp `%;%`_state(s, f)] [visit_exp (s, f)] [visit_exp s] [visit_id s] @@ -70474,7 +57840,7 @@ DecD evalglobals(state : state, globaltype*, expr*) : (state, val*) [visit_id gt] not free [visit_exp val] [visit_id val] not free -[visit_exp ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state{store#2555, frame#2573}(s', f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`}))] +[visit_exp ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state(s', f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`}))] [visit_exp (z', val'*{val' <- `val'*`})] [visit_exp z'] [visit_id z'] not free @@ -70487,22 +57853,14 @@ DecD evalglobals(state : state, globaltype*, expr*) : (state, val*) [visit_exp `val'*`] [visit_id val'*] not free [visit_id val'*] no dims -[visit_exp $evalglobals(`%;%`_state{store#2555, frame#2573}(s', f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})] -[visit_exp `%;%`_state{store#2555, frame#2573}(s', f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]])] -[visit_exp store#2555] -[visit_id store#2555] -[visit_exp frame#2573] -[visit_id frame#2573] -[visit_exp (s', f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]])] +[visit_exp $evalglobals(`%;%`_state(s', f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})] +[visit_exp `%;%`_state(s', f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]])] +[visit_exp (s', f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]])] [visit_exp s'] [visit_id s'] not free -[visit_exp f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]]] +[visit_exp f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]]] [visit_exp f] [visit_id f] not free -[visit_exp moduleinst#26] -[visit_id moduleinst#26] -[visit_exp `globaladdr*#6`] -[visit_id globaladdr*#6] [visit_exp [a]] [visit_exp a] [visit_id a] not free @@ -70526,17 +57884,17 @@ DecD evalglobals(state : state, globaltype*, expr*) : (state, val*) [visit_id expr'*] no dims => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $evalglobals{z : state, gt : globaltype, `gt'*` : globaltype*, expr : expr, `expr'*` : expr*, z' : state, val : val, `val'*` : val*, store#2543 : store, frame#2561 : frame, s : store, f : frame, s' : store, a : addr, store#2555 : store, frame#2573 : frame, moduleinst#26 : moduleinst, `globaladdr*#6` : globaladdr*}(z, [gt] ++ gt'*{gt' <- `gt'*`}, [expr] ++ expr'*{expr' <- `expr'*`}) = (z', [val] ++ val'*{val' <- `val'*`}) + def $evalglobals{z : state, gt : globaltype, `gt'*` : globaltype*, expr : expr, `expr'*` : expr*, z' : state, val : val, `val'*` : val*, s : store, f : frame, s' : store, a : addr}(z, [gt] ++ gt'*{gt' <- `gt'*`}, [expr] ++ expr'*{expr' <- `expr'*`}) = (z', [val] ++ val'*{val' <- `val'*`}) -- Eval_expr: `%;%~>*%;%`(z, expr, z, [val]) - -- if (z = `%;%`_state{store#2543, frame#2561}(s, f)) + -- if (z = `%;%`_state(s, f)) -- if ((s', a) = $allocglobal(s, gt, val)) - -- if ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state{store#2555, frame#2573}(s', f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})) + -- if ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state(s', f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})) [check_dims] _ module store DecD instantiate(store : store, module : module, externaddr*) : config [visit_id store] not free [visit_id module] not free [visit_id _] not free -[check_dims] byte byte*#2187 data data*#125 dataaddr*#5 datamode datamode#2151 deftype*#96 elem elem*#149 elemaddr*#5 elemmode elemmode#3277 export export*#125 exportinst*#3 expr#4805 expr#4823 expr*#3277 expr_E expr_G expr_T externaddr externtype*#168 frame#2597 frame#2645 func func*#125 funcaddr*#8 funcidx#3157 funcidx#3159 funcinst*#15 global global*#149 globaladdr*#7 globaltype globaltype#2271 i#47725 i#47785 i_D i_E i_F import import*#125 instr*#2334 instr_D instr_E instr_S mem mem*#149 memaddr*#7 module moduleinst moduleinst#27 moduleinst#28 moduleinst_0 ref_E ref_T reftype reftype#3919 s s' start start?#125 state#2219 store#2579 store#2627 table table*#149 tableaddr*#7 tabletype tabletype#1116 tag tag*#125 tagaddr*#7 type type*#125 val?*#5 val?*#6 val_G x xt_E xt_I z z' +[check_dims] byte data datamode elem elemmode export expr_E expr_G expr_T externaddr func global globaltype i_D i_E i_F import instr_D instr_E instr_S mem module moduleinst moduleinst_0 ref_E ref_T reftype s s' start table tabletype tag type val_G x xt_E xt_I z z' [visit_exp s] [visit_id s] [visit_exp module] @@ -70550,26 +57908,14 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `externaddr*`] [visit_id externaddr*] no dims [visit_id externaddr*] -[visit_exp `%;%`_config{state#2219, `instr*#2334`}(`%;%`_state{store#2627, frame#2645}(s', {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`}))] -[visit_exp state#2219] -[visit_id state#2219] -[visit_exp `instr*#2334`] -[visit_id instr*#2334] -[visit_exp (`%;%`_state{store#2627, frame#2645}(s', {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`}))] -[visit_exp `%;%`_state{store#2627, frame#2645}(s', {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst})] -[visit_exp store#2627] -[visit_id store#2627] -[visit_exp frame#2645] -[visit_id frame#2645] -[visit_exp (s', {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst})] +[visit_exp `%;%`_config(`%;%`_state(s', {`LOCALS` [], `MODULE` moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`}))] +[visit_exp (`%;%`_state(s', {`LOCALS` [], `MODULE` moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`}))] +[visit_exp `%;%`_state(s', {`LOCALS` [], `MODULE` moduleinst})] +[visit_exp (s', {`LOCALS` [], `MODULE` moduleinst})] [visit_exp s'] [visit_id s'] -[visit_exp {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst}] -[visit_exp `val?*#6`] -[visit_id val?*#6] +[visit_exp {`LOCALS` [], `MODULE` moduleinst}] [visit_exp []] -[visit_exp moduleinst#28] -[visit_id moduleinst#28] [visit_exp moduleinst] [visit_id moduleinst] [visit_exp instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})] @@ -70602,12 +57948,10 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `instr_S?`] [visit_id instr_S?] no dims [visit_id instr_S?] -[visit_exp (module, `%->%`_moduletype{`externtype*#168`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))] +[visit_exp (module, `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))] [visit_exp module] [visit_id module] not free -[visit_exp `%->%`_moduletype{`externtype*#168`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] -[visit_exp `externtype*#168`] -[visit_id externtype*#168] +[visit_exp `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] [visit_exp (xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] [visit_exp xt_I*{xt_I <- `xt_I*`}] [scope_enter xt_I] @@ -70646,32 +57990,10 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `xt_I*`] [visit_id xt_I*] not free [visit_id xt_I*] no dims -[visit_exp (module = `MODULE`_module{`type*#125`, `import*#125`, `tag*#125`, `global*#149`, `mem*#149`, `table*#149`, `func*#125`, `data*#125`, `elem*#149`, `start?#125`, `export*#125`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}))] +[visit_exp (module = `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}))] [visit_exp module] [visit_id module] not free -[visit_exp `MODULE`_module{`type*#125`, `import*#125`, `tag*#125`, `global*#149`, `mem*#149`, `table*#149`, `func*#125`, `data*#125`, `elem*#149`, `start?#125`, `export*#125`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp `type*#125`] -[visit_id type*#125] -[visit_exp `import*#125`] -[visit_id import*#125] -[visit_exp `tag*#125`] -[visit_id tag*#125] -[visit_exp `global*#149`] -[visit_id global*#149] -[visit_exp `mem*#149`] -[visit_id mem*#149] -[visit_exp `table*#149`] -[visit_id table*#149] -[visit_exp `func*#125`] -[visit_id func*#125] -[visit_exp `data*#125`] -[visit_id data*#125] -[visit_exp `elem*#149`] -[visit_id elem*#149] -[visit_exp `start?#125`] -[visit_id start?#125] -[visit_exp `export*#125`] -[visit_id export*#125] +[visit_exp `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] [visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] [visit_exp type*{type <- `type*`}] [scope_enter type] @@ -70772,7 +58094,7 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `export*`] [visit_id export*] no dims [visit_id export*] -[visit_exp (global*{global <- `global*`} = `GLOBAL`_global{globaltype#2271, expr#4805}(globaltype, expr_G)*{expr#4805 <- `expr#4805*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2271 <- `globaltype#2271*`})] +[visit_exp (global*{global <- `global*`} = `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`})] [visit_exp global*{global <- `global*`}] [scope_enter global] [visit_exp global] @@ -70782,42 +58104,26 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `global*`] [visit_id global*] not free [visit_id global*] no dims -[visit_exp `GLOBAL`_global{globaltype#2271, expr#4805}(globaltype, expr_G)*{expr#4805 <- `expr#4805*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2271 <- `globaltype#2271*`}] -[scope_enter expr#4805] +[visit_exp `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}] [scope_enter expr_G] [scope_enter globaltype] -[scope_enter globaltype#2271] -[visit_exp `GLOBAL`_global{globaltype#2271, expr#4805}(globaltype, expr_G)] -[visit_exp globaltype#2271] -[visit_id globaltype#2271] not free -[visit_exp expr#4805] -[visit_id expr#4805] not free +[visit_exp `GLOBAL`_global(globaltype, expr_G)] [visit_exp (globaltype, expr_G)] [visit_exp globaltype] [visit_id globaltype] not free [visit_exp expr_G] [visit_id expr_G] not free -[visit_id expr#4805] not free [visit_id expr_G] not free [visit_id globaltype] not free -[visit_id globaltype#2271] not free -[scope_exit globaltype#2271] [scope_exit globaltype] [scope_exit expr_G] -[scope_exit expr#4805] -[visit_exp `expr#4805*`] -[visit_id expr#4805*] no dims -[visit_id expr#4805*] [visit_exp `expr_G*`] [visit_id expr_G*] no dims [visit_id expr_G*] [visit_exp `globaltype*`] [visit_id globaltype*] no dims [visit_id globaltype*] -[visit_exp `globaltype#2271*`] -[visit_id globaltype#2271*] no dims -[visit_id globaltype#2271*] -[visit_exp (table*{table <- `table*`} = `TABLE`_table{tabletype#1116, expr#4823}(tabletype, expr_T)*{expr#4823 <- `expr#4823*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#1116 <- `tabletype#1116*`})] +[visit_exp (table*{table <- `table*`} = `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`})] [visit_exp table*{table <- `table*`}] [scope_enter table] [visit_exp table] @@ -70827,42 +58133,26 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `table*`] [visit_id table*] not free [visit_id table*] no dims -[visit_exp `TABLE`_table{tabletype#1116, expr#4823}(tabletype, expr_T)*{expr#4823 <- `expr#4823*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#1116 <- `tabletype#1116*`}] -[scope_enter expr#4823] +[visit_exp `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}] [scope_enter expr_T] [scope_enter tabletype] -[scope_enter tabletype#1116] -[visit_exp `TABLE`_table{tabletype#1116, expr#4823}(tabletype, expr_T)] -[visit_exp tabletype#1116] -[visit_id tabletype#1116] not free -[visit_exp expr#4823] -[visit_id expr#4823] not free +[visit_exp `TABLE`_table(tabletype, expr_T)] [visit_exp (tabletype, expr_T)] [visit_exp tabletype] [visit_id tabletype] not free [visit_exp expr_T] [visit_id expr_T] not free -[visit_id expr#4823] not free [visit_id expr_T] not free [visit_id tabletype] not free -[visit_id tabletype#1116] not free -[scope_exit tabletype#1116] [scope_exit tabletype] [scope_exit expr_T] -[scope_exit expr#4823] -[visit_exp `expr#4823*`] -[visit_id expr#4823*] no dims -[visit_id expr#4823*] [visit_exp `expr_T*`] [visit_id expr_T*] no dims [visit_id expr_T*] [visit_exp `tabletype*`] [visit_id tabletype*] no dims [visit_id tabletype*] -[visit_exp `tabletype#1116*`] -[visit_id tabletype#1116*] no dims -[visit_id tabletype#1116*] -[visit_exp (data*{data <- `data*`} = `DATA`_data{`byte*#2187`, datamode#2151}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2187` <- `byte*#2187*`, datamode <- `datamode*`, datamode#2151 <- `datamode#2151*`})] +[visit_exp (data*{data <- `data*`} = `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`})] [visit_exp data*{data <- `data*`}] [scope_enter data] [visit_exp data] @@ -70872,16 +58162,10 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `data*`] [visit_id data*] not free [visit_id data*] no dims -[visit_exp `DATA`_data{`byte*#2187`, datamode#2151}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2187` <- `byte*#2187*`, datamode <- `datamode*`, datamode#2151 <- `datamode#2151*`}] +[visit_exp `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}] [scope_enter byte*] -[scope_enter byte*#2187] [scope_enter datamode] -[scope_enter datamode#2151] -[visit_exp `DATA`_data{`byte*#2187`, datamode#2151}(byte*{byte <- `byte*`}, datamode)] -[visit_exp `byte*#2187`] -[visit_id byte*#2187] not free -[visit_exp datamode#2151] -[visit_id datamode#2151] not free +[visit_exp `DATA`_data(byte*{byte <- `byte*`}, datamode)] [visit_exp (byte*{byte <- `byte*`}, datamode)] [visit_exp byte*{byte <- `byte*`}] [scope_enter byte] @@ -70896,26 +58180,16 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_id datamode] not free [visit_id byte*] not free [visit_id byte*] no dims -[visit_id byte*#2187] not free [visit_id datamode] not free -[visit_id datamode#2151] not free -[scope_exit datamode#2151] [scope_exit datamode] -[scope_exit byte*#2187] [scope_exit byte*] [visit_exp `byte**`] [visit_id byte**] no dims [visit_id byte**] -[visit_exp `byte*#2187*`] -[visit_id byte*#2187*] no dims -[visit_id byte*#2187*] [visit_exp `datamode*`] [visit_id datamode*] no dims [visit_id datamode*] -[visit_exp `datamode#2151*`] -[visit_id datamode#2151*] no dims -[visit_id datamode#2151*] -[visit_exp (elem*{elem <- `elem*`} = `ELEM`_elem{reftype#3919, `expr*#3277`, elemmode#3277}(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3277 <- `elemmode#3277*`, `expr*#3277` <- `expr*#3277*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`, reftype#3919 <- `reftype#3919*`})] +[visit_exp (elem*{elem <- `elem*`} = `ELEM`_elem(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`})] [visit_exp elem*{elem <- `elem*`}] [scope_enter elem] [visit_exp elem] @@ -70925,20 +58199,11 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `elem*`] [visit_id elem*] not free [visit_id elem*] no dims -[visit_exp `ELEM`_elem{reftype#3919, `expr*#3277`, elemmode#3277}(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3277 <- `elemmode#3277*`, `expr*#3277` <- `expr*#3277*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`, reftype#3919 <- `reftype#3919*`}] +[visit_exp `ELEM`_elem(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`}] [scope_enter elemmode] -[scope_enter elemmode#3277] -[scope_enter expr*#3277] [scope_enter expr_E*] [scope_enter reftype] -[scope_enter reftype#3919] -[visit_exp `ELEM`_elem{reftype#3919, `expr*#3277`, elemmode#3277}(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)] -[visit_exp reftype#3919] -[visit_id reftype#3919] not free -[visit_exp `expr*#3277`] -[visit_id expr*#3277] not free -[visit_exp elemmode#3277] -[visit_id elemmode#3277] not free +[visit_exp `ELEM`_elem(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)] [visit_exp (reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)] [visit_exp reftype] [visit_id reftype] not free @@ -70954,37 +58219,22 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp elemmode] [visit_id elemmode] not free [visit_id elemmode] not free -[visit_id elemmode#3277] not free -[visit_id expr*#3277] not free [visit_id expr_E*] not free [visit_id expr_E*] no dims [visit_id reftype] not free -[visit_id reftype#3919] not free -[scope_exit reftype#3919] [scope_exit reftype] [scope_exit expr_E*] -[scope_exit expr*#3277] -[scope_exit elemmode#3277] [scope_exit elemmode] [visit_exp `elemmode*`] [visit_id elemmode*] no dims [visit_id elemmode*] -[visit_exp `elemmode#3277*`] -[visit_id elemmode#3277*] no dims -[visit_id elemmode#3277*] -[visit_exp `expr*#3277*`] -[visit_id expr*#3277*] no dims -[visit_id expr*#3277*] [visit_exp `expr_E**`] [visit_id expr_E**] no dims [visit_id expr_E**] [visit_exp `reftype*`] [visit_id reftype*] no dims [visit_id reftype*] -[visit_exp `reftype#3919*`] -[visit_id reftype#3919*] no dims -[visit_id reftype#3919*] -[visit_exp (start?{start <- `start?`} = `START`_start{funcidx#3157}(x)?{funcidx#3157 <- `funcidx#3157?`, x <- `x?`})] +[visit_exp (start?{start <- `start?`} = `START`_start(x)?{x <- `x?`})] [visit_exp start?{start <- `start?`}] [scope_enter start] [visit_exp start] @@ -70994,31 +58244,21 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `start?`] [visit_id start?] not free [visit_id start?] no dims -[visit_exp `START`_start{funcidx#3157}(x)?{funcidx#3157 <- `funcidx#3157?`, x <- `x?`}] -[scope_enter funcidx#3157] +[visit_exp `START`_start(x)?{x <- `x?`}] [scope_enter x] -[visit_exp `START`_start{funcidx#3157}(x)] -[visit_exp funcidx#3157] -[visit_id funcidx#3157] not free +[visit_exp `START`_start(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_id funcidx#3157] not free [visit_id x] not free [scope_exit x] -[scope_exit funcidx#3157] -[visit_exp `funcidx#3157?`] -[visit_id funcidx#3157?] no dims -[visit_id funcidx#3157?] [visit_exp `x?`] [visit_id x?] no dims [visit_id x?] -[visit_exp (moduleinst_0 = {`TYPES`{`deftype*#96`} $alloctypes(type*{type <- `type*`}), `TAGS`{`tagaddr*#7`} [], `GLOBALS`{`globaladdr*#7`} $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS`{`memaddr*#7`} [], `TABLES`{`tableaddr*#7`} [], `FUNCS`{`funcaddr*#8`} $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#15` <- `funcinst*#15*`}, `DATAS`{`dataaddr*#5`} [], `ELEMS`{`elemaddr*#5`} [], `EXPORTS`{`exportinst*#3`} []})] +[visit_exp (moduleinst_0 = {`TYPES` $alloctypes(type*{type <- `type*`}), `TAGS` [], `GLOBALS` $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS` [], `TABLES` [], `FUNCS` $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}, `DATAS` [], `ELEMS` [], `EXPORTS` []})] [visit_exp moduleinst_0] [visit_id moduleinst_0] -[visit_exp {`TYPES`{`deftype*#96`} $alloctypes(type*{type <- `type*`}), `TAGS`{`tagaddr*#7`} [], `GLOBALS`{`globaladdr*#7`} $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS`{`memaddr*#7`} [], `TABLES`{`tableaddr*#7`} [], `FUNCS`{`funcaddr*#8`} $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#15` <- `funcinst*#15*`}, `DATAS`{`dataaddr*#5`} [], `ELEMS`{`elemaddr*#5`} [], `EXPORTS`{`exportinst*#3`} []}] -[visit_exp `deftype*#96`] -[visit_id deftype*#96] +[visit_exp {`TYPES` $alloctypes(type*{type <- `type*`}), `TAGS` [], `GLOBALS` $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS` [], `TABLES` [], `FUNCS` $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}, `DATAS` [], `ELEMS` [], `EXPORTS` []}] [visit_exp $alloctypes(type*{type <- `type*`})] [visit_exp type*{type <- `type*`}] [scope_enter type] @@ -71029,11 +58269,7 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `type*`] [visit_id type*] not free [visit_id type*] no dims -[visit_exp `tagaddr*#7`] -[visit_id tagaddr*#7] [visit_exp []] -[visit_exp `globaladdr*#7`] -[visit_id globaladdr*#7] [visit_exp $globalsxa(externaddr*{externaddr <- `externaddr*`})] [visit_exp externaddr*{externaddr <- `externaddr*`}] [scope_enter externaddr] @@ -71044,15 +58280,9 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `externaddr*`] [visit_id externaddr*] not free [visit_id externaddr*] no dims -[visit_exp `memaddr*#7`] -[visit_id memaddr*#7] [visit_exp []] -[visit_exp `tableaddr*#7`] -[visit_id tableaddr*#7] [visit_exp []] -[visit_exp `funcaddr*#8`] -[visit_id funcaddr*#8] -[visit_exp $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#15` <- `funcinst*#15*`}] +[visit_exp $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}] [visit_exp $funcsxa(externaddr*{externaddr <- `externaddr*`})] [visit_exp externaddr*{externaddr <- `externaddr*`}] [scope_enter externaddr] @@ -71063,21 +58293,16 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `externaddr*`] [visit_id externaddr*] not free [visit_id externaddr*] no dims -[visit_exp (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#15` <- `funcinst*#15*`}] +[visit_exp (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}] [scope_enter i_F] -[scope_enter funcinst*#15] -[visit_exp (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)] -[visit_exp |s.`FUNCS`_store{`funcinst*#15`}|] -[visit_exp s.`FUNCS`_store{`funcinst*#15`}] +[visit_exp (|s.`FUNCS`_store| + i_F)] +[visit_exp |s.`FUNCS`_store|] +[visit_exp s.`FUNCS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `funcinst*#15`] -[visit_id funcinst*#15] not free [visit_exp i_F] [visit_id i_F] [visit_id i_F] not free -[visit_id funcinst*#15] not free -[scope_exit funcinst*#15] [scope_exit i_F] [visit_exp |func*{func <- `func*`}|] [visit_exp func*{func <- `func*`}] @@ -71089,35 +58314,18 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `func*`] [visit_id func*] not free [visit_id func*] no dims -[visit_exp `funcinst*#15*`] -[visit_id funcinst*#15*] no dims -[visit_id funcinst*#15*] -[visit_exp `dataaddr*#5`] -[visit_id dataaddr*#5] [visit_exp []] -[visit_exp `elemaddr*#5`] -[visit_id elemaddr*#5] [visit_exp []] -[visit_exp `exportinst*#3`] -[visit_id exportinst*#3] [visit_exp []] -[visit_exp (z = `%;%`_state{store#2579, frame#2597}(s, {`LOCALS`{`val?*#5`} [], `MODULE`{moduleinst#27} moduleinst_0}))] +[visit_exp (z = `%;%`_state(s, {`LOCALS` [], `MODULE` moduleinst_0}))] [visit_exp z] [visit_id z] -[visit_exp `%;%`_state{store#2579, frame#2597}(s, {`LOCALS`{`val?*#5`} [], `MODULE`{moduleinst#27} moduleinst_0})] -[visit_exp store#2579] -[visit_id store#2579] -[visit_exp frame#2597] -[visit_id frame#2597] -[visit_exp (s, {`LOCALS`{`val?*#5`} [], `MODULE`{moduleinst#27} moduleinst_0})] +[visit_exp `%;%`_state(s, {`LOCALS` [], `MODULE` moduleinst_0})] +[visit_exp (s, {`LOCALS` [], `MODULE` moduleinst_0})] [visit_exp s] [visit_id s] not free -[visit_exp {`LOCALS`{`val?*#5`} [], `MODULE`{moduleinst#27} moduleinst_0}] -[visit_exp `val?*#5`] -[visit_id val?*#5] +[visit_exp {`LOCALS` [], `MODULE` moduleinst_0}] [visit_exp []] -[visit_exp moduleinst#27] -[visit_id moduleinst#27] [visit_exp moduleinst_0] [visit_id moduleinst_0] not free [visit_exp ((z', val_G*{val_G <- `val_G*`}) = $evalglobals(z, globaltype*{globaltype <- `globaltype*`}, expr_G*{expr_G <- `expr_G*`}))] @@ -71269,7 +58477,7 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `ref_E**`] [visit_id ref_E**] not free [visit_id ref_E**] no dims -[visit_exp (instr_D*{instr_D <- `instr_D*`} = $concat_(syntax instr, $rundata_(`%`_dataidx{i#47725}(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){i#47725 <- `i#47725*`}))] +[visit_exp (instr_D*{instr_D <- `instr_D*`} = $concat_(syntax instr, $rundata_(`%`_dataidx(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){}))] [visit_exp instr_D*{instr_D <- `instr_D*`}] [scope_enter instr_D] [visit_exp instr_D] @@ -71279,14 +58487,11 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `instr_D*`] [visit_id instr_D*] not free [visit_id instr_D*] no dims -[visit_exp $concat_(syntax instr, $rundata_(`%`_dataidx{i#47725}(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){i#47725 <- `i#47725*`})] -[visit_exp $rundata_(`%`_dataidx{i#47725}(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){i#47725 <- `i#47725*`}] +[visit_exp $concat_(syntax instr, $rundata_(`%`_dataidx(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){})] +[visit_exp $rundata_(`%`_dataidx(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){}] [scope_enter i_D] -[scope_enter i#47725] -[visit_exp $rundata_(`%`_dataidx{i#47725}(i_D), data*{data <- `data*`}[i_D])] -[visit_exp `%`_dataidx{i#47725}(i_D)] -[visit_exp i#47725] -[visit_id i#47725] not free +[visit_exp $rundata_(`%`_dataidx(i_D), data*{data <- `data*`}[i_D])] +[visit_exp `%`_dataidx(i_D)] [visit_exp (i_D)] [visit_exp i_D] [visit_id i_D] @@ -71303,8 +58508,6 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp i_D] [visit_id i_D] not free [visit_id i_D] not free -[visit_id i#47725] not free -[scope_exit i#47725] [scope_exit i_D] [visit_exp |data*{data <- `data*`}|] [visit_exp data*{data <- `data*`}] @@ -71316,10 +58519,7 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `data*`] [visit_id data*] not free [visit_id data*] no dims -[visit_exp `i#47725*`] -[visit_id i#47725*] no dims -[visit_id i#47725*] -[visit_exp (instr_E*{instr_E <- `instr_E*`} = $concat_(syntax instr, $runelem_(`%`_elemidx{i#47785}(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){i#47785 <- `i#47785*`}))] +[visit_exp (instr_E*{instr_E <- `instr_E*`} = $concat_(syntax instr, $runelem_(`%`_elemidx(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){}))] [visit_exp instr_E*{instr_E <- `instr_E*`}] [scope_enter instr_E] [visit_exp instr_E] @@ -71329,14 +58529,11 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `instr_E*`] [visit_id instr_E*] not free [visit_id instr_E*] no dims -[visit_exp $concat_(syntax instr, $runelem_(`%`_elemidx{i#47785}(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){i#47785 <- `i#47785*`})] -[visit_exp $runelem_(`%`_elemidx{i#47785}(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){i#47785 <- `i#47785*`}] +[visit_exp $concat_(syntax instr, $runelem_(`%`_elemidx(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){})] +[visit_exp $runelem_(`%`_elemidx(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){}] [scope_enter i_E] -[scope_enter i#47785] -[visit_exp $runelem_(`%`_elemidx{i#47785}(i_E), elem*{elem <- `elem*`}[i_E])] -[visit_exp `%`_elemidx{i#47785}(i_E)] -[visit_exp i#47785] -[visit_id i#47785] not free +[visit_exp $runelem_(`%`_elemidx(i_E), elem*{elem <- `elem*`}[i_E])] +[visit_exp `%`_elemidx(i_E)] [visit_exp (i_E)] [visit_exp i_E] [visit_id i_E] @@ -71353,8 +58550,6 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp i_E] [visit_id i_E] not free [visit_id i_E] not free -[visit_id i#47785] not free -[scope_exit i#47785] [scope_exit i_E] [visit_exp |elem*{elem <- `elem*`}|] [visit_exp elem*{elem <- `elem*`}] @@ -71366,10 +58561,7 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `elem*`] [visit_id elem*] not free [visit_id elem*] no dims -[visit_exp `i#47785*`] -[visit_id i#47785*] no dims -[visit_id i#47785*] -[visit_exp (instr_S?{instr_S <- `instr_S?`} = `CALL`_instr{funcidx#3159}(x)?{funcidx#3159 <- `funcidx#3159?`, x <- `x?`})] +[visit_exp (instr_S?{instr_S <- `instr_S?`} = `CALL`_instr(x)?{x <- `x?`})] [visit_exp instr_S?{instr_S <- `instr_S?`}] [scope_enter instr_S] [visit_exp instr_S] @@ -71379,51 +58571,43 @@ DecD instantiate(store : store, module : module, externaddr*) : config [visit_exp `instr_S?`] [visit_id instr_S?] not free [visit_id instr_S?] no dims -[visit_exp `CALL`_instr{funcidx#3159}(x)?{funcidx#3159 <- `funcidx#3159?`, x <- `x?`}] -[scope_enter funcidx#3159] +[visit_exp `CALL`_instr(x)?{x <- `x?`}] [scope_enter x] -[visit_exp `CALL`_instr{funcidx#3159}(x)] -[visit_exp funcidx#3159] -[visit_id funcidx#3159] not free +[visit_exp `CALL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_id funcidx#3159] not free [visit_id x] not free [scope_exit x] -[scope_exit funcidx#3159] -[visit_exp `funcidx#3159?`] -[visit_id funcidx#3159?] no dims -[visit_id funcidx#3159?] [visit_exp `x?`] [visit_id x?] not free [visit_id x?] no dims => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $instantiate{s : store, module : module, `externaddr*` : externaddr*, state#2219 : state, `instr*#2334` : instr*, store#2627 : store, frame#2645 : frame, s' : store, `val?*#6` : val?*, moduleinst#28 : moduleinst, moduleinst : moduleinst, `instr_E*` : instr*, `instr_D*` : instr*, `instr_S?` : instr?, `externtype*#168` : externtype*, `xt_I*` : externtype*, `xt_E*` : externtype*, `type*#125` : type*, `import*#125` : import*, `tag*#125` : tag*, `global*#149` : global*, `mem*#149` : mem*, `table*#149` : table*, `func*#125` : func*, `data*#125` : data*, `elem*#149` : elem*, `start?#125` : start?, `export*#125` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `expr#4805*` : expr*, `expr_G*` : expr*, `globaltype*` : globaltype*, `globaltype#2271*` : globaltype*, `expr#4823*` : expr*, `expr_T*` : expr*, `tabletype*` : tabletype*, `tabletype#1116*` : tabletype*, `byte**` : byte**, `byte*#2187*` : byte**, `datamode*` : datamode*, `datamode#2151*` : datamode*, `elemmode*` : elemmode*, `elemmode#3277*` : elemmode*, `expr*#3277*` : expr**, `expr_E**` : expr**, `reftype*` : reftype*, `reftype#3919*` : reftype*, `funcidx#3157?` : funcidx?, `x?` : idx?, moduleinst_0 : moduleinst, `deftype*#96` : deftype*, `tagaddr*#7` : tagaddr*, `globaladdr*#7` : globaladdr*, `memaddr*#7` : memaddr*, `tableaddr*#7` : tableaddr*, `funcaddr*#8` : funcaddr*, i_F : nat, `funcinst*#15*` : funcinst**, `dataaddr*#5` : dataaddr*, `elemaddr*#5` : elemaddr*, `exportinst*#3` : exportinst*, z : state, store#2579 : store, frame#2597 : frame, `val?*#5` : val?*, moduleinst#27 : moduleinst, z' : state, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, i_D : nat, `i#47725*` : nat*, i_E : nat, `i#47785*` : nat*, `funcidx#3159?` : funcidx?}(s, module, externaddr*{externaddr <- `externaddr*`}) = `%;%`_config{state#2219, `instr*#2334`}(`%;%`_state{store#2627, frame#2645}(s', {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})) - -- Module_ok: `|-%:%`(module, `%->%`_moduletype{`externtype*#168`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})) + def $instantiate{s : store, module : module, `externaddr*` : externaddr*, s' : store, moduleinst : moduleinst, `instr_E*` : instr*, `instr_D*` : instr*, `instr_S?` : instr?, `xt_I*` : externtype*, `xt_E*` : externtype*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `expr_G*` : expr*, `globaltype*` : globaltype*, `expr_T*` : expr*, `tabletype*` : tabletype*, `byte**` : byte**, `datamode*` : datamode*, `elemmode*` : elemmode*, `expr_E**` : expr**, `reftype*` : reftype*, `x?` : idx?, moduleinst_0 : moduleinst, i_F : nat, z : state, z' : state, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, i_D : nat, i_E : nat}(s, module, externaddr*{externaddr <- `externaddr*`}) = `%;%`_config(`%;%`_state(s', {`LOCALS` [], `MODULE` moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})) + -- Module_ok: `|-%:%`(module, `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})) -- (Externaddr_ok: `%|-%:%`(s, externaddr, xt_I))*{externaddr <- `externaddr*`, xt_I <- `xt_I*`} - -- if (module = `MODULE`_module{`type*#125`, `import*#125`, `tag*#125`, `global*#149`, `mem*#149`, `table*#149`, `func*#125`, `data*#125`, `elem*#149`, `start?#125`, `export*#125`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) - -- if (global*{global <- `global*`} = `GLOBAL`_global{globaltype#2271, expr#4805}(globaltype, expr_G)*{expr#4805 <- `expr#4805*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2271 <- `globaltype#2271*`}) - -- if (table*{table <- `table*`} = `TABLE`_table{tabletype#1116, expr#4823}(tabletype, expr_T)*{expr#4823 <- `expr#4823*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#1116 <- `tabletype#1116*`}) - -- if (data*{data <- `data*`} = `DATA`_data{`byte*#2187`, datamode#2151}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2187` <- `byte*#2187*`, datamode <- `datamode*`, datamode#2151 <- `datamode#2151*`}) - -- if (elem*{elem <- `elem*`} = `ELEM`_elem{reftype#3919, `expr*#3277`, elemmode#3277}(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3277 <- `elemmode#3277*`, `expr*#3277` <- `expr*#3277*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`, reftype#3919 <- `reftype#3919*`}) - -- if (start?{start <- `start?`} = `START`_start{funcidx#3157}(x)?{funcidx#3157 <- `funcidx#3157?`, x <- `x?`}) - -- if (moduleinst_0 = {`TYPES`{`deftype*#96`} $alloctypes(type*{type <- `type*`}), `TAGS`{`tagaddr*#7`} [], `GLOBALS`{`globaladdr*#7`} $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS`{`memaddr*#7`} [], `TABLES`{`tableaddr*#7`} [], `FUNCS`{`funcaddr*#8`} $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#15` <- `funcinst*#15*`}, `DATAS`{`dataaddr*#5`} [], `ELEMS`{`elemaddr*#5`} [], `EXPORTS`{`exportinst*#3`} []}) - -- if (z = `%;%`_state{store#2579, frame#2597}(s, {`LOCALS`{`val?*#5`} [], `MODULE`{moduleinst#27} moduleinst_0})) + -- if (module = `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) + -- if (global*{global <- `global*`} = `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}) + -- if (table*{table <- `table*`} = `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}) + -- if (data*{data <- `data*`} = `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}) + -- if (elem*{elem <- `elem*`} = `ELEM`_elem(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`}) + -- if (start?{start <- `start?`} = `START`_start(x)?{x <- `x?`}) + -- if (moduleinst_0 = {`TYPES` $alloctypes(type*{type <- `type*`}), `TAGS` [], `GLOBALS` $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS` [], `TABLES` [], `FUNCS` $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}, `DATAS` [], `ELEMS` [], `EXPORTS` []}) + -- if (z = `%;%`_state(s, {`LOCALS` [], `MODULE` moduleinst_0})) -- if ((z', val_G*{val_G <- `val_G*`}) = $evalglobals(z, globaltype*{globaltype <- `globaltype*`}, expr_G*{expr_G <- `expr_G*`})) -- (Eval_expr: `%;%~>*%;%`(z', expr_T, z', [(ref_T : ref <: val)]))*{expr_T <- `expr_T*`, ref_T <- `ref_T*`} -- (Eval_expr: `%;%~>*%;%`(z', expr_E, z', [(ref_E : ref <: val)]))*{expr_E <- `expr_E*`, ref_E <- `ref_E*`}*{`expr_E*` <- `expr_E**`, `ref_E*` <- `ref_E**`} -- if ((s', moduleinst) = $allocmodule(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})) - -- if (instr_D*{instr_D <- `instr_D*`} = $concat_(syntax instr, $rundata_(`%`_dataidx{i#47725}(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){i#47725 <- `i#47725*`})) - -- if (instr_E*{instr_E <- `instr_E*`} = $concat_(syntax instr, $runelem_(`%`_elemidx{i#47785}(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){i#47785 <- `i#47785*`})) - -- if (instr_S?{instr_S <- `instr_S?`} = `CALL`_instr{funcidx#3159}(x)?{funcidx#3159 <- `funcidx#3159?`, x <- `x?`}) + -- if (instr_D*{instr_D <- `instr_D*`} = $concat_(syntax instr, $rundata_(`%`_dataidx(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){})) + -- if (instr_E*{instr_E <- `instr_E*`} = $concat_(syntax instr, $runelem_(`%`_elemidx(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){})) + -- if (instr_S?{instr_S <- `instr_S?`} = `CALL`_instr(x)?{x <- `x?`}) [check_dims] _ funcaddr store DecD invoke(store : store, funcaddr : funcaddr, val*) : config [visit_id store] not free [visit_id funcaddr] not free [visit_id _] not free -[check_dims] X*#13028 X*#13041 dataaddr*#6 deftype#12 deftype#13 deftype*#97 elemaddr*#6 exportinst*#4 frame#2657 funcaddr funcaddr#21 funcaddr*#9 funcinst*#16 funcinst*#17 globaladdr*#8 instr*#2346 memaddr*#8 moduleinst#29 resulttype#3026 s state#2231 store#2639 t_1 t_2 tableaddr*#8 tagaddr*#8 typeuse#65 val val?*#7 +[check_dims] funcaddr s t_1 t_2 val [visit_exp s] [visit_id s] [visit_exp funcaddr] @@ -71437,55 +58621,25 @@ DecD invoke(store : store, funcaddr : funcaddr, val*) : config [visit_exp `val*`] [visit_id val*] no dims [visit_id val*] -[visit_exp `%;%`_config{state#2231, `instr*#2346`}(`%;%`_state{store#2639, frame#2657}(s, {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr) `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))])] -[visit_exp state#2231] -[visit_id state#2231] -[visit_exp `instr*#2346`] -[visit_id instr*#2346] -[visit_exp (`%;%`_state{store#2639, frame#2657}(s, {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr) `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))])] -[visit_exp `%;%`_state{store#2639, frame#2657}(s, {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}})] -[visit_exp store#2639] -[visit_id store#2639] -[visit_exp frame#2657] -[visit_id frame#2657] -[visit_exp (s, {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}})] +[visit_exp `%;%`_config(`%;%`_state(s, {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(funcaddr) `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))])] +[visit_exp (`%;%`_state(s, {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(funcaddr) `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))])] +[visit_exp `%;%`_state(s, {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}})] +[visit_exp (s, {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}})] [visit_exp s] [visit_id s] not free -[visit_exp {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}}] -[visit_exp `val?*#7`] -[visit_id val?*#7] +[visit_exp {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}}] [visit_exp []] -[visit_exp moduleinst#29] -[visit_id moduleinst#29] -[visit_exp {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}] -[visit_exp `deftype*#97`] -[visit_id deftype*#97] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}] [visit_exp []] -[visit_exp `tagaddr*#8`] -[visit_id tagaddr*#8] [visit_exp []] -[visit_exp `globaladdr*#8`] -[visit_id globaladdr*#8] [visit_exp []] -[visit_exp `memaddr*#8`] -[visit_id memaddr*#8] [visit_exp []] -[visit_exp `tableaddr*#8`] -[visit_id tableaddr*#8] [visit_exp []] -[visit_exp `funcaddr*#9`] -[visit_id funcaddr*#9] [visit_exp []] -[visit_exp `dataaddr*#6`] -[visit_id dataaddr*#6] [visit_exp []] -[visit_exp `elemaddr*#6`] -[visit_id elemaddr*#6] [visit_exp []] -[visit_exp `exportinst*#4`] -[visit_id exportinst*#4] [visit_exp []] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr) `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))]] +[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(funcaddr) `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))]] [visit_exp (val : val <: instr)*{val <- `val*`}] [scope_enter val] [visit_exp (val : val <: instr)] @@ -71496,48 +58650,32 @@ DecD invoke(store : store, funcaddr : funcaddr, val*) : config [visit_exp `val*`] [visit_id val*] not free [visit_id val*] no dims -[visit_exp [`REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr) `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))]] -[visit_exp `REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr)] -[visit_exp funcaddr#21] -[visit_id funcaddr#21] +[visit_exp [`REF.FUNC_ADDR`_instr(funcaddr) `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))]] +[visit_exp `REF.FUNC_ADDR`_instr(funcaddr)] [visit_exp (funcaddr)] [visit_exp funcaddr] [visit_id funcaddr] not free -[visit_exp `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))] -[visit_exp typeuse#65] -[visit_id typeuse#65] -[visit_exp ((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))] -[visit_exp (s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse)] -[visit_exp s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13}] -[visit_exp s.`FUNCS`_store{`funcinst*#17`}[funcaddr]] -[visit_exp s.`FUNCS`_store{`funcinst*#17`}] +[visit_exp `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))] +[visit_exp ((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))] +[visit_exp (s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse)] +[visit_exp s.`FUNCS`_store[funcaddr].`TYPE`_funcinst] +[visit_exp s.`FUNCS`_store[funcaddr]] +[visit_exp s.`FUNCS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `funcinst*#17`] -[visit_id funcinst*#17] [visit_exp funcaddr] [visit_id funcaddr] not free -[visit_exp deftype#13] -[visit_id deftype#13] -[visit_exp (s.`FUNCS`_store{`funcinst*#16`}[funcaddr].`TYPE`_funcinst{deftype#12}, `FUNC%->%`_comptype{resulttype#3026}(`%`_resulttype{`X*#13028`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13041`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp s.`FUNCS`_store{`funcinst*#16`}[funcaddr].`TYPE`_funcinst{deftype#12}] -[visit_exp s.`FUNCS`_store{`funcinst*#16`}[funcaddr]] -[visit_exp s.`FUNCS`_store{`funcinst*#16`}] +[visit_exp (s.`FUNCS`_store[funcaddr].`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp s.`FUNCS`_store[funcaddr].`TYPE`_funcinst] +[visit_exp s.`FUNCS`_store[funcaddr]] +[visit_exp s.`FUNCS`_store] [visit_exp s] [visit_id s] not free -[visit_exp `funcinst*#16`] -[visit_id funcinst*#16] [visit_exp funcaddr] [visit_id funcaddr] not free -[visit_exp deftype#12] -[visit_id deftype#12] -[visit_exp `FUNC%->%`_comptype{resulttype#3026}(`%`_resulttype{`X*#13028`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13041`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#3026] -[visit_id resulttype#3026] -[visit_exp (`%`_resulttype{`X*#13028`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13041`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#13028`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#13028`] -[visit_id X*#13028] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -71548,9 +58686,7 @@ DecD invoke(store : store, funcaddr : funcaddr, val*) : config [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp `%`_resulttype{`X*#13041`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#13041`] -[visit_id X*#13041] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -71582,16 +58718,14 @@ DecD invoke(store : store, funcaddr : funcaddr, val*) : config [visit_id val*] no dims => ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $invoke{s : store, funcaddr : funcaddr, `val*` : val*, state#2231 : state, `instr*#2346` : instr*, store#2639 : store, frame#2657 : frame, `val?*#7` : val?*, moduleinst#29 : moduleinst, `deftype*#97` : deftype*, `tagaddr*#8` : tagaddr*, `globaladdr*#8` : globaladdr*, `memaddr*#8` : memaddr*, `tableaddr*#8` : tableaddr*, `funcaddr*#9` : funcaddr*, `dataaddr*#6` : dataaddr*, `elemaddr*#6` : elemaddr*, `exportinst*#4` : exportinst*, funcaddr#21 : funcaddr, typeuse#65 : typeuse, `funcinst*#17` : funcinst*, deftype#13 : deftype, `funcinst*#16` : funcinst*, deftype#12 : deftype, resulttype#3026 : resulttype, `X*#13028` : valtype*, `t_1*` : valtype*, `X*#13041` : valtype*, `t_2*` : valtype*}(s, funcaddr, val*{val <- `val*`}) = `%;%`_config{state#2231, `instr*#2346`}(`%;%`_state{store#2639, frame#2657}(s, {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr) `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))]) - -- Expand: `%~~%`(s.`FUNCS`_store{`funcinst*#16`}[funcaddr].`TYPE`_funcinst{deftype#12}, `FUNC%->%`_comptype{resulttype#3026}(`%`_resulttype{`X*#13028`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13041`}(t_2*{t_2 <- `t_2*`}))) + def $invoke{s : store, funcaddr : funcaddr, `val*` : val*, `t_1*` : valtype*, `t_2*` : valtype*}(s, funcaddr, val*{val <- `val*`}) = `%;%`_config(`%;%`_state(s, {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(funcaddr) `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))]) + -- Expand: `%~~%`(s.`FUNCS`_store[funcaddr].`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- (Val_ok: `%|-%:%`(s, val, t_1))*{t_1 <- `t_1*`, val <- `val*`} ps' = [check_dims] -[check_dims] i#47807 -dims \ = , i#47807 -[visit_exp `%`_byte{i#47807}(``)] -[visit_exp i#47807] -[visit_id i#47807] +[check_dims] +dims \ = +[visit_exp `%`_byte(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] @@ -71599,17 +58733,13 @@ dims \ = , i#47807 [visit_id ] not free ps' = (N : N) [check_dims] N -[check_dims] N i#47815 i#47823 n -dims \ N = i#47815, i#47823, n -[visit_exp `%`_uN{i#47823}(n)] -[visit_exp i#47823] -[visit_id i#47823] +[check_dims] N n +dims \ N = n +[visit_exp `%`_uN(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `%`_byte{i#47815}(n)] -[visit_exp i#47815] -[visit_id i#47815] +[visit_exp `%`_byte(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free @@ -71628,11 +58758,9 @@ dims \ N = i#47815, i#47823, n [visit_exp N] [visit_id N] not free [visit_id N] no dims -[check_dims] N i#47831 i#47856 i#47866 m n -dims \ N = i#47831, i#47856, i#47866, m, n -[visit_exp `%`_uN{i#47866}((((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)))] -[visit_exp i#47866] -[visit_id i#47866] +[check_dims] N m n +dims \ N = m, n +[visit_exp `%`_uN((((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)))] [visit_exp ((((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)))] [visit_exp (((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat))] [visit_exp ((2 ^ 7) * m)] @@ -71650,15 +58778,11 @@ dims \ N = i#47831, i#47856, i#47866, m, n [visit_exp (2 ^ 7)] [visit_exp 2] [visit_exp 7] -[visit_exp `%`_byte{i#47831}(n)] -[visit_exp i#47831] -[visit_id i#47831] +[visit_exp `%`_byte(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[visit_exp `%`_uN{i#47856}(m)] -[visit_exp i#47856] -[visit_id i#47856] +[visit_exp `%`_uN(m)] [visit_exp (m)] [visit_exp m] [visit_id m] not free @@ -71687,18 +58811,14 @@ dims \ N = i#47831, i#47856, i#47866, m, n [visit_id N] not free ps' = (N : N) [check_dims] N -[check_dims] N i#47874 i#47882 n -dims \ N = i#47874, i#47882, n -[visit_exp `%`_sN{i#47882}((n : nat <:> int))] -[visit_exp i#47882] -[visit_id i#47882] +[check_dims] N n +dims \ N = n +[visit_exp `%`_sN((n : nat <:> int))] [visit_exp ((n : nat <:> int))] [visit_exp (n : nat <:> int)] [visit_exp n] [visit_id n] -[visit_exp `%`_byte{i#47874}(n)] -[visit_exp i#47874] -[visit_id i#47874] +[visit_exp `%`_byte(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free @@ -71722,11 +58842,9 @@ dims \ N = i#47874, i#47882, n [visit_id N] no dims [visit_exp (1 : nat <:> int)] [visit_exp 1] -[check_dims] N i#47890 i#47898 n -dims \ N = i#47890, i#47898, n -[visit_exp `%`_sN{i#47898}(((n : nat <:> int) - ((2 ^ 7) : nat <:> int)))] -[visit_exp i#47898] -[visit_id i#47898] +[check_dims] N n +dims \ N = n +[visit_exp `%`_sN(((n : nat <:> int) - ((2 ^ 7) : nat <:> int)))] [visit_exp (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)))] [visit_exp ((n : nat <:> int) - ((2 ^ 7) : nat <:> int))] [visit_exp (n : nat <:> int)] @@ -71736,9 +58854,7 @@ dims \ N = i#47890, i#47898, n [visit_exp (2 ^ 7)] [visit_exp 2] [visit_exp 7] -[visit_exp `%`_byte{i#47890}(n)] -[visit_exp i#47890] -[visit_id i#47890] +[visit_exp `%`_byte(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free @@ -71776,24 +58892,20 @@ dims \ N = i#47890, i#47898, n [visit_id N] no dims [visit_exp (1 : nat <:> int)] [visit_exp 1] -[check_dims] N i i#47906 i#47943 i#47945 n -dims \ N = i, i#47906, i#47943, i#47945, n -[visit_exp `%`_sN{i#47945}(((((2 ^ 7) * i!`%`_uN{i#47943}.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int))] -[visit_exp i#47945] -[visit_id i#47945] -[visit_exp (((((2 ^ 7) * i!`%`_uN{i#47943}.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int))] -[visit_exp ((((2 ^ 7) * i!`%`_uN{i#47943}.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (((2 ^ 7) * i!`%`_uN{i#47943}.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat))] -[visit_exp ((2 ^ 7) * i!`%`_uN{i#47943}.0)] +[check_dims] N i n +dims \ N = i, n +[visit_exp `%`_sN(((((2 ^ 7) * i!`%`_uN.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int))] +[visit_exp (((((2 ^ 7) * i!`%`_uN.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int))] +[visit_exp ((((2 ^ 7) * i!`%`_uN.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int)] +[visit_exp (((2 ^ 7) * i!`%`_uN.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat))] +[visit_exp ((2 ^ 7) * i!`%`_uN.0)] [visit_exp (2 ^ 7)] [visit_exp 2] [visit_exp 7] -[visit_exp i!`%`_uN{i#47943}.0] -[visit_exp i!`%`_uN{i#47943}] +[visit_exp i!`%`_uN.0] +[visit_exp i!`%`_uN] [visit_exp i] [visit_id i] -[visit_exp i#47943] -[visit_id i#47943] [visit_exp (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - ((2 ^ 7) : nat <:> int))] [visit_exp (n : nat <:> int)] @@ -71803,9 +58915,7 @@ dims \ N = i, i#47906, i#47943, i#47945, n [visit_exp (2 ^ 7)] [visit_exp 2] [visit_exp 7] -[visit_exp `%`_byte{i#47906}(n)] -[visit_exp i#47906] -[visit_id i#47906] +[visit_exp `%`_byte(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free @@ -71836,22 +58946,18 @@ dims \ N = i, i#47906, i#47943, i#47945, n [visit_id N] not free ps' = (N : N) [check_dims] N -[check_dims] N i i#47959 i#47961 -dims \ N = i, i#47959, i#47961 -[visit_exp `%`_iN{i#47961}($inv_signed_(N, i!`%`_sN{i#47959}.0))] -[visit_exp i#47961] -[visit_id i#47961] -[visit_exp ($inv_signed_(N, i!`%`_sN{i#47959}.0))] -[visit_exp $inv_signed_(N, i!`%`_sN{i#47959}.0)] +[check_dims] N i +dims \ N = i +[visit_exp `%`_iN($inv_signed_(N, i!`%`_sN.0))] +[visit_exp ($inv_signed_(N, i!`%`_sN.0))] +[visit_exp $inv_signed_(N, i!`%`_sN.0)] [visit_exp N] [visit_id N] not free [visit_id N] no dims -[visit_exp i!`%`_sN{i#47959}.0] -[visit_exp i!`%`_sN{i#47959}] +[visit_exp i!`%`_sN.0] +[visit_exp i!`%`_sN] [visit_exp i] [visit_id i] -[visit_exp i#47959] -[visit_id i#47959] [visit_exp i] [visit_id i] not free [visit_exp N] @@ -71899,34 +59005,26 @@ dims \ N = b [visit_id N] not free ps' = [check_dims] -[check_dims] i#48009 i#48033 n -dims \ = i#48009, i#48033, n -[visit_exp `%`_u32{i#48033}(n)] -[visit_exp i#48033] -[visit_id i#48033] +[check_dims] n +dims \ = n +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `%`_uN{i#48009}(n)] -[visit_exp i#48009] -[visit_id i#48009] +[visit_exp `%`_uN(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free [visit_exp 32] ps' = [check_dims] -[check_dims] i#48057 i#48081 n -dims \ = i#48057, i#48081, n -[visit_exp `%`_u64{i#48081}(n)] -[visit_exp i#48081] -[visit_id i#48081] +[check_dims] n +dims \ = n +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `%`_uN{i#48057}(n)] -[visit_exp i#48057] -[visit_id i#48057] +[visit_exp `%`_uN(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free @@ -71960,8 +59058,8 @@ dims \ = p [visit_exp 64] ps' = (syntax el, grammar BX : el) [check_dims] el -[check_dims] el i#48134 n -dims \ = el, i#48134, n +[check_dims] el n +dims \ = el, n [visit_exp el^n{el <- `el*`}] [scope_enter el] [visit_exp el] @@ -71973,9 +59071,7 @@ dims \ = el, i#48134, n [visit_exp `el*`] [visit_id el*] no dims [visit_id el*] -[visit_exp `%`_u32{i#48134}(n)] -[visit_exp i#48134] -[visit_id i#48134] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free @@ -71993,41 +59089,35 @@ dims \ = el, i#48134, n [check_dims] byte DecD cont(byte : byte) : nat [visit_id byte] not free -[check_dims] b i#48144 i#48146 i#48148 +[check_dims] b [visit_exp b] [visit_id b] -[visit_exp (((b!`%`_byte{i#48148}.0 : nat <:> int) - (128 : nat <:> int)) : int <:> nat)] -[visit_exp ((b!`%`_byte{i#48148}.0 : nat <:> int) - (128 : nat <:> int))] -[visit_exp (b!`%`_byte{i#48148}.0 : nat <:> int)] -[visit_exp b!`%`_byte{i#48148}.0] -[visit_exp b!`%`_byte{i#48148}] +[visit_exp (((b!`%`_byte.0 : nat <:> int) - (128 : nat <:> int)) : int <:> nat)] +[visit_exp ((b!`%`_byte.0 : nat <:> int) - (128 : nat <:> int))] +[visit_exp (b!`%`_byte.0 : nat <:> int)] +[visit_exp b!`%`_byte.0] +[visit_exp b!`%`_byte] [visit_exp b] [visit_id b] not free -[visit_exp i#48148] -[visit_id i#48148] [visit_exp (128 : nat <:> int)] [visit_exp 128] -[visit_exp ((128 < b!`%`_byte{i#48144}.0) /\ (b!`%`_byte{i#48146}.0 < 192))] -[visit_exp (128 < b!`%`_byte{i#48144}.0)] +[visit_exp ((128 < b!`%`_byte.0) /\ (b!`%`_byte.0 < 192))] +[visit_exp (128 < b!`%`_byte.0)] [visit_exp 128] -[visit_exp b!`%`_byte{i#48144}.0] -[visit_exp b!`%`_byte{i#48144}] +[visit_exp b!`%`_byte.0] +[visit_exp b!`%`_byte] [visit_exp b] [visit_id b] not free -[visit_exp i#48144] -[visit_id i#48144] -[visit_exp (b!`%`_byte{i#48146}.0 < 192)] -[visit_exp b!`%`_byte{i#48146}.0] -[visit_exp b!`%`_byte{i#48146}] +[visit_exp (b!`%`_byte.0 < 192)] +[visit_exp b!`%`_byte.0] +[visit_exp b!`%`_byte] [visit_exp b] [visit_id b] not free -[visit_exp i#48146] -[visit_id i#48146] [visit_exp 192] => ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - def $cont{b : byte, i#48148 : nat, i#48144 : nat, i#48146 : nat}(b) = (((b!`%`_byte{i#48148}.0 : nat <:> int) - (128 : nat <:> int)) : int <:> nat) - -- if ((128 < b!`%`_byte{i#48144}.0) /\ (b!`%`_byte{i#48146}.0 < 192)) + def $cont{b : byte}(b) = (((b!`%`_byte.0 : nat <:> int) - (128 : nat <:> int)) : int <:> nat) + -- if ((128 < b!`%`_byte.0) /\ (b!`%`_byte.0 < 192)) [check_dims] ch [visit_exp ch*{ch <- `ch*`}] [scope_enter ch] @@ -72053,40 +59143,34 @@ DecD cont(byte : byte) : nat => ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec def $utf8{`ch*` : char*}(ch*{ch <- `ch*`}) = $concat_(syntax byte, $utf8([ch])*{ch <- `ch*`}) -[check_dims] b ch i#48332 i#48340 i#48341 +[check_dims] b ch [visit_exp [ch]] [visit_exp ch] [visit_id ch] [visit_exp [b]] [visit_exp b] [visit_id b] -[visit_exp (ch!`%`_char{i#48332}.0 < 128)] -[visit_exp ch!`%`_char{i#48332}.0] -[visit_exp ch!`%`_char{i#48332}] +[visit_exp (ch!`%`_char.0 < 128)] +[visit_exp ch!`%`_char.0] +[visit_exp ch!`%`_char] [visit_exp ch] [visit_id ch] not free -[visit_exp i#48332] -[visit_id i#48332] [visit_exp 128] -[visit_exp (`%`_byte{i#48341}(ch!`%`_char{i#48340}.0) = b)] -[visit_exp `%`_byte{i#48341}(ch!`%`_char{i#48340}.0)] -[visit_exp i#48341] -[visit_id i#48341] -[visit_exp (ch!`%`_char{i#48340}.0)] -[visit_exp ch!`%`_char{i#48340}.0] -[visit_exp ch!`%`_char{i#48340}] +[visit_exp (`%`_byte(ch!`%`_char.0) = b)] +[visit_exp `%`_byte(ch!`%`_char.0)] +[visit_exp (ch!`%`_char.0)] +[visit_exp ch!`%`_char.0] +[visit_exp ch!`%`_char] [visit_exp ch] [visit_id ch] not free -[visit_exp i#48340] -[visit_id i#48340] [visit_exp b] [visit_id b] not free => ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - def $utf8{ch : char, b : byte, i#48332 : nat, i#48341 : nat, i#48340 : nat}([ch]) = [b] - -- if (ch!`%`_char{i#48332}.0 < 128) - -- if (`%`_byte{i#48341}(ch!`%`_char{i#48340}.0) = b) -[check_dims] b_1 b_2 ch i#48356 i#48358 i#48360 i#48368 + def $utf8{ch : char, b : byte}([ch]) = [b] + -- if (ch!`%`_char.0 < 128) + -- if (`%`_byte(ch!`%`_char.0) = b) +[check_dims] b_1 b_2 ch [visit_exp [ch]] [visit_exp ch] [visit_id ch] @@ -72095,44 +59179,36 @@ DecD cont(byte : byte) : nat [visit_id b_1] [visit_exp b_2] [visit_id b_2] -[visit_exp ((128 <= ch!`%`_char{i#48356}.0) /\ (ch!`%`_char{i#48358}.0 < 2048))] -[visit_exp (128 <= ch!`%`_char{i#48356}.0)] +[visit_exp ((128 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 2048))] +[visit_exp (128 <= ch!`%`_char.0)] [visit_exp 128] -[visit_exp ch!`%`_char{i#48356}.0] -[visit_exp ch!`%`_char{i#48356}] +[visit_exp ch!`%`_char.0] +[visit_exp ch!`%`_char] [visit_exp ch] [visit_id ch] not free -[visit_exp i#48356] -[visit_id i#48356] -[visit_exp (ch!`%`_char{i#48358}.0 < 2048)] -[visit_exp ch!`%`_char{i#48358}.0] -[visit_exp ch!`%`_char{i#48358}] +[visit_exp (ch!`%`_char.0 < 2048)] +[visit_exp ch!`%`_char.0] +[visit_exp ch!`%`_char] [visit_exp ch] [visit_id ch] not free -[visit_exp i#48358] -[visit_id i#48358] [visit_exp 2048] -[visit_exp (ch!`%`_char{i#48368}.0 = (((2 ^ 6) * (((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2)))] -[visit_exp ch!`%`_char{i#48368}.0] -[visit_exp ch!`%`_char{i#48368}] +[visit_exp (ch!`%`_char.0 = (((2 ^ 6) * (((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2)))] +[visit_exp ch!`%`_char.0] +[visit_exp ch!`%`_char] [visit_exp ch] [visit_id ch] not free -[visit_exp i#48368] -[visit_id i#48368] -[visit_exp (((2 ^ 6) * (((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2))] -[visit_exp ((2 ^ 6) * (((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat))] +[visit_exp (((2 ^ 6) * (((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2))] +[visit_exp ((2 ^ 6) * (((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat))] [visit_exp (2 ^ 6)] [visit_exp 2] [visit_exp 6] -[visit_exp (((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)] -[visit_exp ((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int))] -[visit_exp (b_1!`%`_byte{i#48360}.0 : nat <:> int)] -[visit_exp b_1!`%`_byte{i#48360}.0] -[visit_exp b_1!`%`_byte{i#48360}] +[visit_exp (((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)] +[visit_exp ((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int))] +[visit_exp (b_1!`%`_byte.0 : nat <:> int)] +[visit_exp b_1!`%`_byte.0] +[visit_exp b_1!`%`_byte] [visit_exp b_1] [visit_id b_1] not free -[visit_exp i#48360] -[visit_id i#48360] [visit_exp (192 : nat <:> int)] [visit_exp 192] [visit_exp $cont(b_2)] @@ -72140,10 +59216,10 @@ DecD cont(byte : byte) : nat [visit_id b_2] not free => ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - def $utf8{ch : char, b_1 : byte, b_2 : byte, i#48356 : nat, i#48358 : nat, i#48368 : nat, i#48360 : nat}([ch]) = [b_1 b_2] - -- if ((128 <= ch!`%`_char{i#48356}.0) /\ (ch!`%`_char{i#48358}.0 < 2048)) - -- if (ch!`%`_char{i#48368}.0 = (((2 ^ 6) * (((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2))) -[check_dims] b_1 b_2 b_3 ch i#48400 i#48402 i#48404 i#48406 i#48408 i#48422 + def $utf8{ch : char, b_1 : byte, b_2 : byte}([ch]) = [b_1 b_2] + -- if ((128 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 2048)) + -- if (ch!`%`_char.0 = (((2 ^ 6) * (((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2))) +[check_dims] b_1 b_2 b_3 ch [visit_exp [ch]] [visit_exp ch] [visit_id ch] @@ -72154,63 +59230,51 @@ DecD cont(byte : byte) : nat [visit_id b_2] [visit_exp b_3] [visit_id b_3] -[visit_exp (((2048 <= ch!`%`_char{i#48400}.0) /\ (ch!`%`_char{i#48402}.0 < 55296)) \/ ((57344 <= ch!`%`_char{i#48404}.0) /\ (ch!`%`_char{i#48406}.0 < 65536)))] -[visit_exp ((2048 <= ch!`%`_char{i#48400}.0) /\ (ch!`%`_char{i#48402}.0 < 55296))] -[visit_exp (2048 <= ch!`%`_char{i#48400}.0)] +[visit_exp (((2048 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 55296)) \/ ((57344 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 65536)))] +[visit_exp ((2048 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 55296))] +[visit_exp (2048 <= ch!`%`_char.0)] [visit_exp 2048] -[visit_exp ch!`%`_char{i#48400}.0] -[visit_exp ch!`%`_char{i#48400}] +[visit_exp ch!`%`_char.0] +[visit_exp ch!`%`_char] [visit_exp ch] [visit_id ch] not free -[visit_exp i#48400] -[visit_id i#48400] -[visit_exp (ch!`%`_char{i#48402}.0 < 55296)] -[visit_exp ch!`%`_char{i#48402}.0] -[visit_exp ch!`%`_char{i#48402}] +[visit_exp (ch!`%`_char.0 < 55296)] +[visit_exp ch!`%`_char.0] +[visit_exp ch!`%`_char] [visit_exp ch] [visit_id ch] not free -[visit_exp i#48402] -[visit_id i#48402] [visit_exp 55296] -[visit_exp ((57344 <= ch!`%`_char{i#48404}.0) /\ (ch!`%`_char{i#48406}.0 < 65536))] -[visit_exp (57344 <= ch!`%`_char{i#48404}.0)] +[visit_exp ((57344 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 65536))] +[visit_exp (57344 <= ch!`%`_char.0)] [visit_exp 57344] -[visit_exp ch!`%`_char{i#48404}.0] -[visit_exp ch!`%`_char{i#48404}] +[visit_exp ch!`%`_char.0] +[visit_exp ch!`%`_char] [visit_exp ch] [visit_id ch] not free -[visit_exp i#48404] -[visit_id i#48404] -[visit_exp (ch!`%`_char{i#48406}.0 < 65536)] -[visit_exp ch!`%`_char{i#48406}.0] -[visit_exp ch!`%`_char{i#48406}] +[visit_exp (ch!`%`_char.0 < 65536)] +[visit_exp ch!`%`_char.0] +[visit_exp ch!`%`_char] [visit_exp ch] [visit_id ch] not free -[visit_exp i#48406] -[visit_id i#48406] [visit_exp 65536] -[visit_exp (ch!`%`_char{i#48422}.0 = ((((2 ^ 12) * (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3)))] -[visit_exp ch!`%`_char{i#48422}.0] -[visit_exp ch!`%`_char{i#48422}] +[visit_exp (ch!`%`_char.0 = ((((2 ^ 12) * (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3)))] +[visit_exp ch!`%`_char.0] +[visit_exp ch!`%`_char] [visit_exp ch] [visit_id ch] not free -[visit_exp i#48422] -[visit_id i#48422] -[visit_exp ((((2 ^ 12) * (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3))] -[visit_exp (((2 ^ 12) * (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2)))] -[visit_exp ((2 ^ 12) * (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat))] +[visit_exp ((((2 ^ 12) * (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3))] +[visit_exp (((2 ^ 12) * (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2)))] +[visit_exp ((2 ^ 12) * (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat))] [visit_exp (2 ^ 12)] [visit_exp 2] [visit_exp 12] -[visit_exp (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)] -[visit_exp ((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int))] -[visit_exp (b_1!`%`_byte{i#48408}.0 : nat <:> int)] -[visit_exp b_1!`%`_byte{i#48408}.0] -[visit_exp b_1!`%`_byte{i#48408}] +[visit_exp (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)] +[visit_exp ((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int))] +[visit_exp (b_1!`%`_byte.0 : nat <:> int)] +[visit_exp b_1!`%`_byte.0] +[visit_exp b_1!`%`_byte] [visit_exp b_1] [visit_id b_1] not free -[visit_exp i#48408] -[visit_id i#48408] [visit_exp (224 : nat <:> int)] [visit_exp 224] [visit_exp ((2 ^ 6) * $cont(b_2))] @@ -72225,10 +59289,10 @@ DecD cont(byte : byte) : nat [visit_id b_3] not free => ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte, i#48400 : nat, i#48402 : nat, i#48404 : nat, i#48406 : nat, i#48422 : nat, i#48408 : nat}([ch]) = [b_1 b_2 b_3] - -- if (((2048 <= ch!`%`_char{i#48400}.0) /\ (ch!`%`_char{i#48402}.0 < 55296)) \/ ((57344 <= ch!`%`_char{i#48404}.0) /\ (ch!`%`_char{i#48406}.0 < 65536))) - -- if (ch!`%`_char{i#48422}.0 = ((((2 ^ 12) * (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3))) -[check_dims] b_1 b_2 b_3 b_4 ch i#48460 i#48462 i#48464 i#48484 + def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte}([ch]) = [b_1 b_2 b_3] + -- if (((2048 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 55296)) \/ ((57344 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 65536))) + -- if (ch!`%`_char.0 = ((((2 ^ 12) * (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3))) +[check_dims] b_1 b_2 b_3 b_4 ch [visit_exp [ch]] [visit_exp ch] [visit_id ch] @@ -72241,46 +59305,38 @@ DecD cont(byte : byte) : nat [visit_id b_3] [visit_exp b_4] [visit_id b_4] -[visit_exp ((65536 <= ch!`%`_char{i#48460}.0) /\ (ch!`%`_char{i#48462}.0 < 69632))] -[visit_exp (65536 <= ch!`%`_char{i#48460}.0)] +[visit_exp ((65536 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 69632))] +[visit_exp (65536 <= ch!`%`_char.0)] [visit_exp 65536] -[visit_exp ch!`%`_char{i#48460}.0] -[visit_exp ch!`%`_char{i#48460}] +[visit_exp ch!`%`_char.0] +[visit_exp ch!`%`_char] [visit_exp ch] [visit_id ch] not free -[visit_exp i#48460] -[visit_id i#48460] -[visit_exp (ch!`%`_char{i#48462}.0 < 69632)] -[visit_exp ch!`%`_char{i#48462}.0] -[visit_exp ch!`%`_char{i#48462}] +[visit_exp (ch!`%`_char.0 < 69632)] +[visit_exp ch!`%`_char.0] +[visit_exp ch!`%`_char] [visit_exp ch] [visit_id ch] not free -[visit_exp i#48462] -[visit_id i#48462] [visit_exp 69632] -[visit_exp (ch!`%`_char{i#48484}.0 = (((((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4)))] -[visit_exp ch!`%`_char{i#48484}.0] -[visit_exp ch!`%`_char{i#48484}] +[visit_exp (ch!`%`_char.0 = (((((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4)))] +[visit_exp ch!`%`_char.0] +[visit_exp ch!`%`_char] [visit_exp ch] [visit_id ch] not free -[visit_exp i#48484] -[visit_id i#48484] -[visit_exp (((((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4))] -[visit_exp ((((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3)))] -[visit_exp (((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2)))] -[visit_exp ((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat))] +[visit_exp (((((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4))] +[visit_exp ((((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3)))] +[visit_exp (((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2)))] +[visit_exp ((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat))] [visit_exp (2 ^ 18)] [visit_exp 2] [visit_exp 18] -[visit_exp (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)] -[visit_exp ((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int))] -[visit_exp (b_1!`%`_byte{i#48464}.0 : nat <:> int)] -[visit_exp b_1!`%`_byte{i#48464}.0] -[visit_exp b_1!`%`_byte{i#48464}] +[visit_exp (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)] +[visit_exp ((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int))] +[visit_exp (b_1!`%`_byte.0 : nat <:> int)] +[visit_exp b_1!`%`_byte.0] +[visit_exp b_1!`%`_byte] [visit_exp b_1] [visit_id b_1] not free -[visit_exp i#48464] -[visit_id i#48464] [visit_exp (240 : nat <:> int)] [visit_exp 240] [visit_exp ((2 ^ 12) * $cont(b_2))] @@ -72302,13 +59358,13 @@ DecD cont(byte : byte) : nat [visit_id b_4] not free => ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte, b_4 : byte, i#48460 : nat, i#48462 : nat, i#48484 : nat, i#48464 : nat}([ch]) = [b_1 b_2 b_3 b_4] - -- if ((65536 <= ch!`%`_char{i#48460}.0) /\ (ch!`%`_char{i#48462}.0 < 69632)) - -- if (ch!`%`_char{i#48484}.0 = (((((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4))) + def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte, b_4 : byte}([ch]) = [b_1 b_2 b_3 b_4] + -- if ((65536 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 69632)) + -- if (ch!`%`_char.0 = (((((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4))) ps' = [check_dims] -[check_dims] b char*#153 name -dims \ = b, char*#153, name +[check_dims] b name +dims \ = b, name [visit_exp name] [visit_id name] [visit_exp b*{b <- `b*`}] @@ -72320,14 +59376,12 @@ dims \ = b, char*#153, name [visit_exp `b*`] [visit_id b*] no dims [visit_id b*] -[visit_exp ($utf8(name!`%`_name{`char*#153`}.0) = b*{b <- `b*`})] -[visit_exp $utf8(name!`%`_name{`char*#153`}.0)] -[visit_exp name!`%`_name{`char*#153`}.0] -[visit_exp name!`%`_name{`char*#153`}] +[visit_exp ($utf8(name!`%`_name.0) = b*{b <- `b*`})] +[visit_exp $utf8(name!`%`_name.0)] +[visit_exp name!`%`_name.0] +[visit_exp name!`%`_name] [visit_exp name] [visit_id name] not free -[visit_exp `char*#153`] -[visit_id char*#153] [visit_exp b*{b <- `b*`}] [scope_enter b] [visit_exp b] @@ -72419,51 +59473,41 @@ dims \ = l [visit_id l] not free ps' = [check_dims] -[check_dims] funcidx#3161 x -dims \ = funcidx#3161, x -[visit_exp `FUNC`_externidx{funcidx#3161}(x)] -[visit_exp funcidx#3161] -[visit_id funcidx#3161] +[check_dims] x +dims \ = x +[visit_exp `FUNC`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] tableidx#123 x -dims \ = tableidx#123, x -[visit_exp `TABLE`_externidx{tableidx#123}(x)] -[visit_exp tableidx#123] -[visit_id tableidx#123] +[check_dims] x +dims \ = x +[visit_exp `TABLE`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] memidx#169 x -dims \ = memidx#169, x -[visit_exp `MEM`_externidx{memidx#169}(x)] -[visit_exp memidx#169] -[visit_id memidx#169] +[check_dims] x +dims \ = x +[visit_exp `MEM`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] globalidx#23 x -dims \ = globalidx#23, x -[visit_exp `GLOBAL`_externidx{globalidx#23}(x)] -[visit_exp globalidx#23] -[visit_id globalidx#23] +[check_dims] x +dims \ = x +[visit_exp `GLOBAL`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] tagidx#19 x -dims \ = tagidx#19, x -[visit_exp `TAG`_externidx{tagidx#19}(x)] -[visit_exp tagidx#19] -[visit_id tagidx#19] +[check_dims] x +dims \ = x +[visit_exp `TAG`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -72551,35 +59595,27 @@ dims \ = ht [visit_id ht] [visit_exp ht] [visit_id ht] not free -[check_dims] i#49064 typeidx#1924 x33 -dims \ = i#49064, typeidx#1924, x33 -[visit_exp `_IDX`_heaptype{typeidx#1924}($s33_to_u32(x33))] -[visit_exp typeidx#1924] -[visit_id typeidx#1924] +[check_dims] x33 +dims \ = x33 +[visit_exp `_IDX`_heaptype($s33_to_u32(x33))] [visit_exp ($s33_to_u32(x33))] [visit_exp $s33_to_u32(x33)] [visit_exp x33] [visit_id x33] [visit_exp x33] [visit_id x33] not free -[visit_exp (x33!`%`_s33{i#49064}.0 >= (0 : nat <:> int))] -[visit_exp x33!`%`_s33{i#49064}.0] -[visit_exp x33!`%`_s33{i#49064}] +[visit_exp (x33!`%`_s33.0 >= (0 : nat <:> int))] +[visit_exp x33!`%`_s33.0] +[visit_exp x33!`%`_s33] [visit_exp x33] [visit_id x33] not free -[visit_exp i#49064] -[visit_id i#49064] [visit_exp (0 : nat <:> int)] [visit_exp 0] ps' = [check_dims] -[check_dims] heaptype#1587 ht null?#1525 -dims \ = heaptype#1587, ht, null?#1525 -[visit_exp `REF`_reftype{`null?#1525`, heaptype#1587}(?(`NULL`_null), ht)] -[visit_exp `null?#1525`] -[visit_id null?#1525] -[visit_exp heaptype#1587] -[visit_id heaptype#1587] +[check_dims] ht +dims \ = ht +[visit_exp `REF`_reftype(?(`NULL`_null), ht)] [visit_exp (?(`NULL`_null), ht)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -72588,26 +59624,18 @@ dims \ = heaptype#1587, ht, null?#1525 [visit_id ht] [visit_exp ht] [visit_id ht] not free -[check_dims] heaptype#1599 ht null?#1537 -dims \ = heaptype#1599, ht, null?#1537 -[visit_exp `REF`_reftype{`null?#1537`, heaptype#1599}(?(), ht)] -[visit_exp `null?#1537`] -[visit_id null?#1537] -[visit_exp heaptype#1599] -[visit_id heaptype#1599] +[check_dims] ht +dims \ = ht +[visit_exp `REF`_reftype(?(), ht)] [visit_exp (?(), ht)] [visit_exp ?()] [visit_exp ht] [visit_id ht] [visit_exp ht] [visit_id ht] not free -[check_dims] heaptype#1611 ht null?#1549 -dims \ = heaptype#1611, ht, null?#1549 -[visit_exp `REF`_reftype{`null?#1549`, heaptype#1611}(?(`NULL`_null), ht)] -[visit_exp `null?#1549`] -[visit_id null?#1549] -[visit_exp heaptype#1611] -[visit_id heaptype#1611] +[check_dims] ht +dims \ = ht +[visit_exp `REF`_reftype(?(`NULL`_null), ht)] [visit_exp (?(`NULL`_null), ht)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -72641,11 +59669,9 @@ dims \ = rt [visit_id rt] not free ps' = [check_dims] -[check_dims] X*#13056 t -dims \ = X*#13056, t -[visit_exp `%`_resulttype{`X*#13056`}(t*{t <- `t*`})] -[visit_exp `X*#13056`] -[visit_id X*#13056] +[check_dims] t +dims \ = t +[visit_exp `%`_resulttype(t*{t <- `t*`})] [visit_exp (t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] [scope_enter t] @@ -72703,13 +59729,9 @@ dims \ = pt [visit_id pt] not free ps' = [check_dims] -[check_dims] mut mut?#1417 storagetype#755 zt -dims \ = mut, mut?#1417, storagetype#755, zt -[visit_exp `%%`_fieldtype{`mut?#1417`, storagetype#755}(mut?{mut <- `mut?`}, zt)] -[visit_exp `mut?#1417`] -[visit_id mut?#1417] -[visit_exp storagetype#755] -[visit_id storagetype#755] +[check_dims] mut zt +dims \ = mut, zt +[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] [visit_exp (mut?{mut <- `mut?`}, zt)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -72735,23 +59757,19 @@ dims \ = mut, mut?#1417, storagetype#755, zt [visit_id mut?] no dims ps' = [check_dims] -[check_dims] fieldtype#59 ft -dims \ = fieldtype#59, ft -[visit_exp `ARRAY`_comptype{fieldtype#59}(ft)] -[visit_exp fieldtype#59] -[visit_id fieldtype#59] +[check_dims] ft +dims \ = ft +[visit_exp `ARRAY`_comptype(ft)] [visit_exp (ft)] [visit_exp ft] [visit_id ft] [visit_exp ft] [visit_id ft] not free -[check_dims] X*#13071 ft -dims \ = X*#13071, ft -[visit_exp `STRUCT`_comptype(`%`_list{`X*#13071`}(ft*{ft <- `ft*`}))] -[visit_exp (`%`_list{`X*#13071`}(ft*{ft <- `ft*`}))] -[visit_exp `%`_list{`X*#13071`}(ft*{ft <- `ft*`})] -[visit_exp `X*#13071`] -[visit_id X*#13071] +[check_dims] ft +dims \ = ft +[visit_exp `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))] +[visit_exp (`%`_list(ft*{ft <- `ft*`}))] +[visit_exp `%`_list(ft*{ft <- `ft*`})] [visit_exp (ft*{ft <- `ft*`})] [visit_exp ft*{ft <- `ft*`}] [scope_enter ft] @@ -72771,15 +59789,11 @@ dims \ = X*#13071, ft [visit_exp `ft*`] [visit_id ft*] not free [visit_id ft*] no dims -[check_dims] X*#13087 X*#13105 X*#13122 X*#13135 resulttype#3029 t_1 t_2 -dims \ = X*#13087, X*#13105, X*#13122, X*#13135, resulttype#3029, t_1, t_2 -[visit_exp `FUNC%->%`_comptype{resulttype#3029}(`%`_resulttype{`X*#13122`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13135`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#3029] -[visit_id resulttype#3029] -[visit_exp (`%`_resulttype{`X*#13122`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13135`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#13122`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#13122`] -[visit_id X*#13122] +[check_dims] t_1 t_2 +dims \ = t_1, t_2 +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -72790,9 +59804,7 @@ dims \ = X*#13087, X*#13105, X*#13122, X*#13135, resulttype#3029, t_1, t_2 [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp `%`_resulttype{`X*#13135`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#13135`] -[visit_id X*#13135] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -72803,9 +59815,7 @@ dims \ = X*#13087, X*#13105, X*#13122, X*#13135, resulttype#3029, t_1, t_2 [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp `%`_resulttype{`X*#13087`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#13087`] -[visit_id X*#13087] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -72816,9 +59826,7 @@ dims \ = X*#13087, X*#13105, X*#13122, X*#13135, resulttype#3029, t_1, t_2 [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `%`_resulttype{`X*#13105`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#13105`] -[visit_id X*#13105] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -72831,35 +59839,21 @@ dims \ = X*#13087, X*#13105, X*#13122, X*#13135, resulttype#3029, t_1, t_2 [visit_id t_2*] no dims ps' = [check_dims] -[check_dims] comptype#449 ct final?#449 typeidx#1926 typeuse*#449 x -dims \ = comptype#449, ct, final?#449, typeidx#1926, typeuse*#449, x -[visit_exp `SUB`_subtype{`final?#449`, `typeuse*#449`, comptype#449}(?(`FINAL`_final), `_IDX`_typeuse{typeidx#1926}(x)*{typeidx#1926 <- `typeidx#1926*`, x <- `x*`}, ct)] -[visit_exp `final?#449`] -[visit_id final?#449] -[visit_exp `typeuse*#449`] -[visit_id typeuse*#449] -[visit_exp comptype#449] -[visit_id comptype#449] -[visit_exp (?(`FINAL`_final), `_IDX`_typeuse{typeidx#1926}(x)*{typeidx#1926 <- `typeidx#1926*`, x <- `x*`}, ct)] +[check_dims] ct x +dims \ = ct, x +[visit_exp `SUB`_subtype(?(`FINAL`_final), `_IDX`_typeuse(x)*{x <- `x*`}, ct)] +[visit_exp (?(`FINAL`_final), `_IDX`_typeuse(x)*{x <- `x*`}, ct)] [visit_exp ?(`FINAL`_final)] [visit_exp `FINAL`_final] [visit_exp ()] -[visit_exp `_IDX`_typeuse{typeidx#1926}(x)*{typeidx#1926 <- `typeidx#1926*`, x <- `x*`}] -[scope_enter typeidx#1926] +[visit_exp `_IDX`_typeuse(x)*{x <- `x*`}] [scope_enter x] -[visit_exp `_IDX`_typeuse{typeidx#1926}(x)] -[visit_exp typeidx#1926] -[visit_id typeidx#1926] not free +[visit_exp `_IDX`_typeuse(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_id typeidx#1926] not free [visit_id x] not free [scope_exit x] -[scope_exit typeidx#1926] -[visit_exp `typeidx#1926*`] -[visit_id typeidx#1926*] no dims -[visit_id typeidx#1926*] [visit_exp `x*`] [visit_id x*] no dims [visit_id x*] @@ -72876,33 +59870,19 @@ dims \ = comptype#449, ct, final?#449, typeidx#1926, typeuse*#449, x [visit_id x*] no dims [visit_exp ct] [visit_id ct] not free -[check_dims] comptype#461 ct final?#461 typeidx#1928 typeuse*#461 x -dims \ = comptype#461, ct, final?#461, typeidx#1928, typeuse*#461, x -[visit_exp `SUB`_subtype{`final?#461`, `typeuse*#461`, comptype#461}(?(), `_IDX`_typeuse{typeidx#1928}(x)*{typeidx#1928 <- `typeidx#1928*`, x <- `x*`}, ct)] -[visit_exp `final?#461`] -[visit_id final?#461] -[visit_exp `typeuse*#461`] -[visit_id typeuse*#461] -[visit_exp comptype#461] -[visit_id comptype#461] -[visit_exp (?(), `_IDX`_typeuse{typeidx#1928}(x)*{typeidx#1928 <- `typeidx#1928*`, x <- `x*`}, ct)] +[check_dims] ct x +dims \ = ct, x +[visit_exp `SUB`_subtype(?(), `_IDX`_typeuse(x)*{x <- `x*`}, ct)] +[visit_exp (?(), `_IDX`_typeuse(x)*{x <- `x*`}, ct)] [visit_exp ?()] -[visit_exp `_IDX`_typeuse{typeidx#1928}(x)*{typeidx#1928 <- `typeidx#1928*`, x <- `x*`}] -[scope_enter typeidx#1928] +[visit_exp `_IDX`_typeuse(x)*{x <- `x*`}] [scope_enter x] -[visit_exp `_IDX`_typeuse{typeidx#1928}(x)] -[visit_exp typeidx#1928] -[visit_id typeidx#1928] not free +[visit_exp `_IDX`_typeuse(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_id typeidx#1928] not free [visit_id x] not free [scope_exit x] -[scope_exit typeidx#1928] -[visit_exp `typeidx#1928*`] -[visit_id typeidx#1928*] no dims -[visit_id typeidx#1928*] [visit_exp `x*`] [visit_id x*] no dims [visit_id x*] @@ -72919,15 +59899,9 @@ dims \ = comptype#461, ct, final?#461, typeidx#1928, typeuse*#461, x [visit_id x*] no dims [visit_exp ct] [visit_id ct] not free -[check_dims] comptype#473 ct final?#473 typeuse*#473 -dims \ = comptype#473, ct, final?#473, typeuse*#473 -[visit_exp `SUB`_subtype{`final?#473`, `typeuse*#473`, comptype#473}(?(`FINAL`_final), [], ct)] -[visit_exp `final?#473`] -[visit_id final?#473] -[visit_exp `typeuse*#473`] -[visit_id typeuse*#473] -[visit_exp comptype#473] -[visit_id comptype#473] +[check_dims] ct +dims \ = ct +[visit_exp `SUB`_subtype(?(`FINAL`_final), [], ct)] [visit_exp (?(`FINAL`_final), [], ct)] [visit_exp ?(`FINAL`_final)] [visit_exp `FINAL`_final] @@ -72939,13 +59913,11 @@ dims \ = comptype#473, ct, final?#473, typeuse*#473 [visit_id ct] not free ps' = [check_dims] -[check_dims] X*#13150 st -dims \ = X*#13150, st -[visit_exp `REC`_rectype(`%`_list{`X*#13150`}(st*{st <- `st*`}))] -[visit_exp (`%`_list{`X*#13150`}(st*{st <- `st*`}))] -[visit_exp `%`_list{`X*#13150`}(st*{st <- `st*`})] -[visit_exp `X*#13150`] -[visit_id X*#13150] +[check_dims] st +dims \ = st +[visit_exp `REC`_rectype(`%`_list(st*{st <- `st*`}))] +[visit_exp (`%`_list(st*{st <- `st*`}))] +[visit_exp `%`_list(st*{st <- `st*`})] [visit_exp (st*{st <- `st*`})] [visit_exp st*{st <- `st*`}] [scope_enter st] @@ -72965,13 +59937,11 @@ dims \ = X*#13150, st [visit_exp `st*`] [visit_id st*] not free [visit_id st*] no dims -[check_dims] X*#13165 st -dims \ = X*#13165, st -[visit_exp `REC`_rectype(`%`_list{`X*#13165`}([st]))] -[visit_exp (`%`_list{`X*#13165`}([st]))] -[visit_exp `%`_list{`X*#13165`}([st])] -[visit_exp `X*#13165`] -[visit_id X*#13165] +[check_dims] st +dims \ = st +[visit_exp `REC`_rectype(`%`_list([st]))] +[visit_exp (`%`_list([st]))] +[visit_exp `%`_list([st])] [visit_exp ([st])] [visit_exp [st]] [visit_exp st] @@ -72980,137 +59950,99 @@ dims \ = X*#13165, st [visit_id st] not free ps' = [check_dims] _ -[check_dims] i#49167 i#49191 n u64#491 u64?#467 -dims \ = i#49167, i#49191, n, u64#491, u64?#467 -[visit_exp (`I32`_addrtype, `[%..%]`_limits{u64#491, `u64?#467`}(`%`_u64{i#49191}(n), ?()))] +[check_dims] n +dims \ = n +[visit_exp (`I32`_addrtype, `[%..%]`_limits(`%`_u64(n), ?()))] [visit_exp `I32`_addrtype] [visit_exp ()] -[visit_exp `[%..%]`_limits{u64#491, `u64?#467`}(`%`_u64{i#49191}(n), ?())] -[visit_exp u64#491] -[visit_id u64#491] -[visit_exp `u64?#467`] -[visit_id u64?#467] -[visit_exp (`%`_u64{i#49191}(n), ?())] -[visit_exp `%`_u64{i#49191}(n)] -[visit_exp i#49191] -[visit_id i#49191] +[visit_exp `[%..%]`_limits(`%`_u64(n), ?())] +[visit_exp (`%`_u64(n), ?())] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] [visit_exp ?()] -[visit_exp `%`_u64{i#49167}(n)] -[visit_exp i#49167] -[visit_id i#49167] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[check_dims] i#49216 i#49243 i#49267 i#49289 m n u64#503 u64?#479 -dims \ = i#49216, i#49243, i#49267, i#49289, m, n, u64#503, u64?#479 -[visit_exp (`I32`_addrtype, `[%..%]`_limits{u64#503, `u64?#479`}(`%`_u64{i#49267}(n), ?(`%`_u64{i#49289}(m))))] +[check_dims] m n +dims \ = m, n +[visit_exp (`I32`_addrtype, `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m))))] [visit_exp `I32`_addrtype] [visit_exp ()] -[visit_exp `[%..%]`_limits{u64#503, `u64?#479`}(`%`_u64{i#49267}(n), ?(`%`_u64{i#49289}(m)))] -[visit_exp u64#503] -[visit_id u64#503] -[visit_exp `u64?#479`] -[visit_id u64?#479] -[visit_exp (`%`_u64{i#49267}(n), ?(`%`_u64{i#49289}(m)))] -[visit_exp `%`_u64{i#49267}(n)] -[visit_exp i#49267] -[visit_id i#49267] +[visit_exp `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))] +[visit_exp (`%`_u64(n), ?(`%`_u64(m)))] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp ?(`%`_u64{i#49289}(m))] -[visit_exp `%`_u64{i#49289}(m)] -[visit_exp i#49289] -[visit_id i#49289] +[visit_exp ?(`%`_u64(m))] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] -[visit_exp `%`_u64{i#49216}(n)] -[visit_exp i#49216] -[visit_id i#49216] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[visit_exp `%`_u64{i#49243}(m)] -[visit_exp i#49243] -[visit_id i#49243] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] not free -[check_dims] i#49314 i#49338 n u64#515 u64?#491 -dims \ = i#49314, i#49338, n, u64#515, u64?#491 -[visit_exp (`I64`_addrtype, `[%..%]`_limits{u64#515, `u64?#491`}(`%`_u64{i#49338}(n), ?()))] +[check_dims] n +dims \ = n +[visit_exp (`I64`_addrtype, `[%..%]`_limits(`%`_u64(n), ?()))] [visit_exp `I64`_addrtype] [visit_exp ()] -[visit_exp `[%..%]`_limits{u64#515, `u64?#491`}(`%`_u64{i#49338}(n), ?())] -[visit_exp u64#515] -[visit_id u64#515] -[visit_exp `u64?#491`] -[visit_id u64?#491] -[visit_exp (`%`_u64{i#49338}(n), ?())] -[visit_exp `%`_u64{i#49338}(n)] -[visit_exp i#49338] -[visit_id i#49338] +[visit_exp `[%..%]`_limits(`%`_u64(n), ?())] +[visit_exp (`%`_u64(n), ?())] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] [visit_exp ?()] -[visit_exp `%`_u64{i#49314}(n)] -[visit_exp i#49314] -[visit_id i#49314] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[check_dims] i#49363 i#49390 i#49414 i#49436 m n u64#527 u64?#503 -dims \ = i#49363, i#49390, i#49414, i#49436, m, n, u64#527, u64?#503 -[visit_exp (`I64`_addrtype, `[%..%]`_limits{u64#527, `u64?#503`}(`%`_u64{i#49414}(n), ?(`%`_u64{i#49436}(m))))] +[check_dims] m n +dims \ = m, n +[visit_exp (`I64`_addrtype, `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m))))] [visit_exp `I64`_addrtype] [visit_exp ()] -[visit_exp `[%..%]`_limits{u64#527, `u64?#503`}(`%`_u64{i#49414}(n), ?(`%`_u64{i#49436}(m)))] -[visit_exp u64#527] -[visit_id u64#527] -[visit_exp `u64?#503`] -[visit_id u64?#503] -[visit_exp (`%`_u64{i#49414}(n), ?(`%`_u64{i#49436}(m)))] -[visit_exp `%`_u64{i#49414}(n)] -[visit_exp i#49414] -[visit_id i#49414] +[visit_exp `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))] +[visit_exp (`%`_u64(n), ?(`%`_u64(m)))] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp ?(`%`_u64{i#49436}(m))] -[visit_exp `%`_u64{i#49436}(m)] -[visit_exp i#49436] -[visit_id i#49436] +[visit_exp ?(`%`_u64(m))] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] -[visit_exp `%`_u64{i#49363}(n)] -[visit_exp i#49363] -[visit_id i#49363] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[visit_exp `%`_u64{i#49390}(m)] -[visit_exp i#49390] -[visit_id i#49390] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = [check_dims] -[check_dims] typeidx#1930 x -dims \ = typeidx#1930, x -[visit_exp `_IDX`_tagtype{typeidx#1930}(x)] -[visit_exp typeidx#1930] -[visit_id typeidx#1930] +[check_dims] x +dims \ = x +[visit_exp `_IDX`_tagtype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -73118,13 +60050,9 @@ dims \ = typeidx#1930, x [visit_id x] not free ps' = [check_dims] -[check_dims] mut mut?#1469 t valtype#991 -dims \ = mut, mut?#1469, t, valtype#991 -[visit_exp `%%`_globaltype{`mut?#1469`, valtype#991}(mut?{mut <- `mut?`}, t)] -[visit_exp `mut?#1469`] -[visit_id mut?#1469] -[visit_exp valtype#991] -[visit_id valtype#991] +[check_dims] mut t +dims \ = mut, t +[visit_exp `%%`_globaltype(mut?{mut <- `mut?`}, t)] [visit_exp (mut?{mut <- `mut?`}, t)] [visit_exp mut?{mut <- `mut?`}] [scope_enter mut] @@ -73150,13 +60078,9 @@ dims \ = mut, mut?#1469, t, valtype#991 [visit_id mut?] no dims ps' = [check_dims] -[check_dims] addrtype#1373 at lim limits#1373 -dims \ = addrtype#1373, at, lim, limits#1373 -[visit_exp `%%PAGE`_memtype{addrtype#1373, limits#1373}(at, lim)] -[visit_exp addrtype#1373] -[visit_id addrtype#1373] -[visit_exp limits#1373] -[visit_id limits#1373] +[check_dims] at lim +dims \ = at, lim +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] @@ -73169,15 +60093,9 @@ dims \ = addrtype#1373, at, lim, limits#1373 [visit_id lim] not free ps' = [check_dims] -[check_dims] addrtype#1385 at lim limits#1385 reftype#3949 rt -dims \ = addrtype#1385, at, lim, limits#1385, reftype#3949, rt -[visit_exp `%%%`_tabletype{addrtype#1385, limits#1385, reftype#3949}(at, lim, rt)] -[visit_exp addrtype#1385] -[visit_id addrtype#1385] -[visit_exp limits#1385] -[visit_id limits#1385] -[visit_exp reftype#3949] -[visit_id reftype#3949] +[check_dims] at lim rt +dims \ = at, lim, rt +[visit_exp `%%%`_tabletype(at, lim, rt)] [visit_exp (at, lim, rt)] [visit_exp at] [visit_id at] @@ -73194,55 +60112,43 @@ dims \ = addrtype#1385, at, lim, limits#1385, reftype#3949, rt [visit_id lim] not free ps' = [check_dims] -[check_dims] typeidx#1932 typeuse#67 x -dims \ = typeidx#1932, typeuse#67, x -[visit_exp `FUNC`_externtype{typeuse#67}(`_IDX`_typeuse{typeidx#1932}(x))] -[visit_exp typeuse#67] -[visit_id typeuse#67] -[visit_exp (`_IDX`_typeuse{typeidx#1932}(x))] -[visit_exp `_IDX`_typeuse{typeidx#1932}(x)] -[visit_exp typeidx#1932] -[visit_id typeidx#1932] +[check_dims] x +dims \ = x +[visit_exp `FUNC`_externtype(`_IDX`_typeuse(x))] +[visit_exp (`_IDX`_typeuse(x))] +[visit_exp `_IDX`_typeuse(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] tabletype#1118 tt -dims \ = tabletype#1118, tt -[visit_exp `TABLE`_externtype{tabletype#1118}(tt)] -[visit_exp tabletype#1118] -[visit_id tabletype#1118] +[check_dims] tt +dims \ = tt +[visit_exp `TABLE`_externtype(tt)] [visit_exp (tt)] [visit_exp tt] [visit_id tt] [visit_exp tt] [visit_id tt] not free -[check_dims] memtype#722 mt -dims \ = memtype#722, mt -[visit_exp `MEM`_externtype{memtype#722}(mt)] -[visit_exp memtype#722] -[visit_id memtype#722] +[check_dims] mt +dims \ = mt +[visit_exp `MEM`_externtype(mt)] [visit_exp (mt)] [visit_exp mt] [visit_id mt] [visit_exp mt] [visit_id mt] not free -[check_dims] globaltype#2273 gt -dims \ = globaltype#2273, gt -[visit_exp `GLOBAL`_externtype{globaltype#2273}(gt)] -[visit_exp globaltype#2273] -[visit_id globaltype#2273] +[check_dims] gt +dims \ = gt +[visit_exp `GLOBAL`_externtype(gt)] [visit_exp (gt)] [visit_exp gt] [visit_id gt] [visit_exp gt] [visit_id gt] not free -[check_dims] jt tagtype#324 -dims \ = jt, tagtype#324 -[visit_exp `TAG`_externtype{tagtype#324}(jt)] -[visit_exp tagtype#324] -[visit_id tagtype#324] +[check_dims] jt +dims \ = jt +[visit_exp `TAG`_externtype(jt)] [visit_exp (jt)] [visit_exp jt] [visit_id jt] @@ -73262,18 +60168,14 @@ dims \ = dims \ = [visit_exp `DROP`_instr] [visit_exp ()] -[check_dims] valtype*?#11 -dims \ = valtype*?#11 -[visit_exp `SELECT`_instr{`valtype*?#11`}(?())] -[visit_exp `valtype*?#11`] -[visit_id valtype*?#11] +[check_dims] +dims \ = +[visit_exp `SELECT`_instr(?())] [visit_exp (?())] [visit_exp ?()] -[check_dims] t valtype*?#13 -dims \ = t, valtype*?#13 -[visit_exp `SELECT`_instr{`valtype*?#13`}(?(t*{t <- `t*`}))] -[visit_exp `valtype*?#13`] -[visit_id valtype*?#13] +[check_dims] t +dims \ = t +[visit_exp `SELECT`_instr(?(t*{t <- `t*`}))] [visit_exp (?(t*{t <- `t*`}))] [visit_exp ?(t*{t <- `t*`})] [visit_exp t*{t <- `t*`}] @@ -73327,61 +60229,45 @@ dims \ = [visit_exp ()] ps' = [check_dims] -[check_dims] valtype?#7 -dims \ = valtype?#7 -[visit_exp `_RESULT`_blocktype{`valtype?#7`}(?())] -[visit_exp `valtype?#7`] -[visit_id valtype?#7] +[check_dims] +dims \ = +[visit_exp `_RESULT`_blocktype(?())] [visit_exp (?())] [visit_exp ?()] -[check_dims] t valtype?#9 -dims \ = t, valtype?#9 -[visit_exp `_RESULT`_blocktype{`valtype?#9`}(?(t))] -[visit_exp `valtype?#9`] -[visit_id valtype?#9] +[check_dims] t +dims \ = t +[visit_exp `_RESULT`_blocktype(?(t))] [visit_exp (?(t))] [visit_exp ?(t)] [visit_exp t] [visit_id t] [visit_exp t] [visit_id t] not free -[check_dims] i i#49559 i#49560 i#49575 typeidx#1934 -dims \ = i, i#49559, i#49560, i#49575, typeidx#1934 -[visit_exp `_IDX`_blocktype{typeidx#1934}(`%`_typeidx{i#49560}((i!`%`_s33{i#49559}.0 : int <:> nat)))] -[visit_exp typeidx#1934] -[visit_id typeidx#1934] -[visit_exp (`%`_typeidx{i#49560}((i!`%`_s33{i#49559}.0 : int <:> nat)))] -[visit_exp `%`_typeidx{i#49560}((i!`%`_s33{i#49559}.0 : int <:> nat))] -[visit_exp i#49560] -[visit_id i#49560] -[visit_exp ((i!`%`_s33{i#49559}.0 : int <:> nat))] -[visit_exp (i!`%`_s33{i#49559}.0 : int <:> nat)] -[visit_exp i!`%`_s33{i#49559}.0] -[visit_exp i!`%`_s33{i#49559}] +[check_dims] i +dims \ = i +[visit_exp `_IDX`_blocktype(`%`_typeidx((i!`%`_s33.0 : int <:> nat)))] +[visit_exp (`%`_typeidx((i!`%`_s33.0 : int <:> nat)))] +[visit_exp `%`_typeidx((i!`%`_s33.0 : int <:> nat))] +[visit_exp ((i!`%`_s33.0 : int <:> nat))] +[visit_exp (i!`%`_s33.0 : int <:> nat)] +[visit_exp i!`%`_s33.0] +[visit_exp i!`%`_s33] [visit_exp i] [visit_id i] -[visit_exp i#49559] -[visit_id i#49559] [visit_exp i] [visit_id i] not free -[visit_exp (i!`%`_s33{i#49575}.0 >= (0 : nat <:> int))] -[visit_exp i!`%`_s33{i#49575}.0] -[visit_exp i!`%`_s33{i#49575}] +[visit_exp (i!`%`_s33.0 >= (0 : nat <:> int))] +[visit_exp i!`%`_s33.0] +[visit_exp i!`%`_s33] [visit_exp i] [visit_id i] not free -[visit_exp i#49575] -[visit_id i#49575] [visit_exp (0 : nat <:> int)] [visit_exp 0] ps' = [check_dims] -[check_dims] blocktype#31 bt in instr*#2348 -dims \ = blocktype#31, bt, in, instr*#2348 -[visit_exp `BLOCK`_instr{blocktype#31, `instr*#2348`}(bt, in*{in <- `in*`})] -[visit_exp blocktype#31] -[visit_id blocktype#31] -[visit_exp `instr*#2348`] -[visit_id instr*#2348] +[check_dims] bt in +dims \ = bt, in +[visit_exp `BLOCK`_instr(bt, in*{in <- `in*`})] [visit_exp (bt, in*{in <- `in*`})] [visit_exp bt] [visit_id bt] @@ -73404,13 +60290,9 @@ dims \ = blocktype#31, bt, in, instr*#2348 [visit_exp `in*`] [visit_id in*] not free [visit_id in*] no dims -[check_dims] blocktype#33 bt in instr*#2350 -dims \ = blocktype#33, bt, in, instr*#2350 -[visit_exp `LOOP`_instr{blocktype#33, `instr*#2350`}(bt, in*{in <- `in*`})] -[visit_exp blocktype#33] -[visit_id blocktype#33] -[visit_exp `instr*#2350`] -[visit_id instr*#2350] +[check_dims] bt in +dims \ = bt, in +[visit_exp `LOOP`_instr(bt, in*{in <- `in*`})] [visit_exp (bt, in*{in <- `in*`})] [visit_exp bt] [visit_id bt] @@ -73433,13 +60315,9 @@ dims \ = blocktype#33, bt, in, instr*#2350 [visit_exp `in*`] [visit_id in*] not free [visit_id in*] no dims -[check_dims] blocktype#35 bt in instr*#2352 -dims \ = blocktype#35, bt, in, instr*#2352 -[visit_exp `IF%%ELSE%`_instr{blocktype#35, `instr*#2352`}(bt, in*{in <- `in*`}, [])] -[visit_exp blocktype#35] -[visit_id blocktype#35] -[visit_exp `instr*#2352`] -[visit_id instr*#2352] +[check_dims] bt in +dims \ = bt, in +[visit_exp `IF%%ELSE%`_instr(bt, in*{in <- `in*`}, [])] [visit_exp (bt, in*{in <- `in*`}, [])] [visit_exp bt] [visit_id bt] @@ -73463,13 +60341,9 @@ dims \ = blocktype#35, bt, in, instr*#2352 [visit_exp `in*`] [visit_id in*] not free [visit_id in*] no dims -[check_dims] blocktype#37 bt in_1 in_2 instr*#2355 -dims \ = blocktype#37, bt, in_1, in_2, instr*#2355 -[visit_exp `IF%%ELSE%`_instr{blocktype#37, `instr*#2355`}(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] -[visit_exp blocktype#37] -[visit_id blocktype#37] -[visit_exp `instr*#2355`] -[visit_id instr*#2355] +[check_dims] bt in_1 in_2 +dims \ = bt, in_1, in_2 +[visit_exp `IF%%ELSE%`_instr(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] [visit_exp (bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] [visit_exp bt] [visit_id bt] @@ -73511,11 +60385,9 @@ dims \ = blocktype#37, bt, in_1, in_2, instr*#2355 [visit_id in_2*] no dims ps' = [check_dims] -[check_dims] tagidx#21 x -dims \ = tagidx#21, x -[visit_exp `THROW`_instr{tagidx#21}(x)] -[visit_exp tagidx#21] -[visit_id tagidx#21] +[check_dims] x +dims \ = x +[visit_exp `THROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -73525,33 +60397,25 @@ dims \ = tagidx#21, x dims \ = [visit_exp `THROW_REF`_instr] [visit_exp ()] -[check_dims] l labelidx#101 -dims \ = l, labelidx#101 -[visit_exp `BR`_instr{labelidx#101}(l)] -[visit_exp labelidx#101] -[visit_id labelidx#101] +[check_dims] l +dims \ = l +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] [visit_exp l] [visit_id l] not free -[check_dims] l labelidx#103 -dims \ = l, labelidx#103 -[visit_exp `BR_IF`_instr{labelidx#103}(l)] -[visit_exp labelidx#103] -[visit_id labelidx#103] +[check_dims] l +dims \ = l +[visit_exp `BR_IF`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] [visit_exp l] [visit_id l] not free -[check_dims] l l_n labelidx#105 labelidx*#54 -dims \ = l, l_n, labelidx#105, labelidx*#54 -[visit_exp `BR_TABLE`_instr{`labelidx*#54`, labelidx#105}(l*{l <- `l*`}, l_n)] -[visit_exp `labelidx*#54`] -[visit_id labelidx*#54] -[visit_exp labelidx#105] -[visit_id labelidx#105] +[check_dims] l l_n +dims \ = l, l_n +[visit_exp `BR_TABLE`_instr(l*{l <- `l*`}, l_n)] [visit_exp (l*{l <- `l*`}, l_n)] [visit_exp l*{l <- `l*`}] [scope_enter l] @@ -73579,29 +60443,21 @@ dims \ = l, l_n, labelidx#105, labelidx*#54 dims \ = [visit_exp `RETURN`_instr] [visit_exp ()] -[check_dims] funcidx#3163 x -dims \ = funcidx#3163, x -[visit_exp `CALL`_instr{funcidx#3163}(x)] -[visit_exp funcidx#3163] -[visit_id funcidx#3163] +[check_dims] x +dims \ = x +[visit_exp `CALL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] tableidx#125 typeidx#1936 typeuse#69 x y -dims \ = tableidx#125, typeidx#1936, typeuse#69, x, y -[visit_exp `CALL_INDIRECT`_instr{tableidx#125, typeuse#69}(x, `_IDX`_typeuse{typeidx#1936}(y))] -[visit_exp tableidx#125] -[visit_id tableidx#125] -[visit_exp typeuse#69] -[visit_id typeuse#69] -[visit_exp (x, `_IDX`_typeuse{typeidx#1936}(y))] +[check_dims] x y +dims \ = x, y +[visit_exp `CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y))] +[visit_exp (x, `_IDX`_typeuse(y))] [visit_exp x] [visit_id x] -[visit_exp `_IDX`_typeuse{typeidx#1936}(y)] -[visit_exp typeidx#1936] -[visit_id typeidx#1936] +[visit_exp `_IDX`_typeuse(y)] [visit_exp (y)] [visit_exp y] [visit_id y] @@ -73609,29 +60465,21 @@ dims \ = tableidx#125, typeidx#1936, typeuse#69, x, y [visit_id y] not free [visit_exp x] [visit_id x] not free -[check_dims] funcidx#3165 x -dims \ = funcidx#3165, x -[visit_exp `RETURN_CALL`_instr{funcidx#3165}(x)] -[visit_exp funcidx#3165] -[visit_id funcidx#3165] +[check_dims] x +dims \ = x +[visit_exp `RETURN_CALL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] tableidx#127 typeidx#1938 typeuse#71 x y -dims \ = tableidx#127, typeidx#1938, typeuse#71, x, y -[visit_exp `RETURN_CALL_INDIRECT`_instr{tableidx#127, typeuse#71}(x, `_IDX`_typeuse{typeidx#1938}(y))] -[visit_exp tableidx#127] -[visit_id tableidx#127] -[visit_exp typeuse#71] -[visit_id typeuse#71] -[visit_exp (x, `_IDX`_typeuse{typeidx#1938}(y))] +[check_dims] x y +dims \ = x, y +[visit_exp `RETURN_CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y))] +[visit_exp (x, `_IDX`_typeuse(y))] [visit_exp x] [visit_id x] -[visit_exp `_IDX`_typeuse{typeidx#1938}(y)] -[visit_exp typeidx#1938] -[visit_id typeidx#1938] +[visit_exp `_IDX`_typeuse(y)] [visit_exp (y)] [visit_exp y] [visit_id y] @@ -73639,47 +60487,33 @@ dims \ = tableidx#127, typeidx#1938, typeuse#71, x, y [visit_id y] not free [visit_exp x] [visit_id x] not free -[check_dims] typeidx#1940 typeuse#73 x -dims \ = typeidx#1940, typeuse#73, x -[visit_exp `CALL_REF`_instr{typeuse#73}(`_IDX`_typeuse{typeidx#1940}(x))] -[visit_exp typeuse#73] -[visit_id typeuse#73] -[visit_exp (`_IDX`_typeuse{typeidx#1940}(x))] -[visit_exp `_IDX`_typeuse{typeidx#1940}(x)] -[visit_exp typeidx#1940] -[visit_id typeidx#1940] +[check_dims] x +dims \ = x +[visit_exp `CALL_REF`_instr(`_IDX`_typeuse(x))] +[visit_exp (`_IDX`_typeuse(x))] +[visit_exp `_IDX`_typeuse(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] typeidx#1942 typeuse#75 x -dims \ = typeidx#1942, typeuse#75, x -[visit_exp `RETURN_CALL_REF`_instr{typeuse#75}(`_IDX`_typeuse{typeidx#1942}(x))] -[visit_exp typeuse#75] -[visit_id typeuse#75] -[visit_exp (`_IDX`_typeuse{typeidx#1942}(x))] -[visit_exp `_IDX`_typeuse{typeidx#1942}(x)] -[visit_exp typeidx#1942] -[visit_id typeidx#1942] +[check_dims] x +dims \ = x +[visit_exp `RETURN_CALL_REF`_instr(`_IDX`_typeuse(x))] +[visit_exp (`_IDX`_typeuse(x))] +[visit_exp `_IDX`_typeuse(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] X*#13196 blocktype#39 bt c in instr*#2358 -dims \ = X*#13196, blocktype#39, bt, c, in, instr*#2358 -[visit_exp `TRY_TABLE`_instr{blocktype#39, `instr*#2358`}(bt, `%`_list{`X*#13196`}(c*{c <- `c*`}), in*{in <- `in*`})] -[visit_exp blocktype#39] -[visit_id blocktype#39] -[visit_exp `instr*#2358`] -[visit_id instr*#2358] -[visit_exp (bt, `%`_list{`X*#13196`}(c*{c <- `c*`}), in*{in <- `in*`})] +[check_dims] bt c in +dims \ = bt, c, in +[visit_exp `TRY_TABLE`_instr(bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`})] +[visit_exp (bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`})] [visit_exp bt] [visit_id bt] -[visit_exp `%`_list{`X*#13196`}(c*{c <- `c*`})] -[visit_exp `X*#13196`] -[visit_id X*#13196] +[visit_exp `%`_list(c*{c <- `c*`})] [visit_exp (c*{c <- `c*`})] [visit_exp c*{c <- `c*`}] [scope_enter c] @@ -73718,41 +60552,29 @@ dims \ = X*#13196, blocktype#39, bt, c, in, instr*#2358 [visit_exp `in*`] [visit_id in*] not free [visit_id in*] no dims -[check_dims] l labelidx#107 -dims \ = l, labelidx#107 -[visit_exp `BR_ON_NULL`_instr{labelidx#107}(l)] -[visit_exp labelidx#107] -[visit_id labelidx#107] +[check_dims] l +dims \ = l +[visit_exp `BR_ON_NULL`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] [visit_exp l] [visit_id l] not free -[check_dims] l labelidx#109 -dims \ = l, labelidx#109 -[visit_exp `BR_ON_NON_NULL`_instr{labelidx#109}(l)] -[visit_exp labelidx#109] -[visit_id labelidx#109] +[check_dims] l +dims \ = l +[visit_exp `BR_ON_NON_NULL`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] [visit_exp l] [visit_id l] not free -[check_dims] heaptype#1641 heaptype#1653 ht_1 ht_2 i#50095 l labelidx#111 null?#1579 null?#1591 null_1 null_2 reftype#3963 -dims \ = heaptype#1641, heaptype#1653, ht_1, ht_2, i#50095, l, labelidx#111, null?#1579, null?#1591, null_1, null_2, reftype#3963 -[visit_exp `BR_ON_CAST`_instr{labelidx#111, reftype#3963}(l, `REF`_reftype{`null?#1579`, heaptype#1641}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#1591`, heaptype#1653}(null_2?{null_2 <- `null_2?`}, ht_2))] -[visit_exp labelidx#111] -[visit_id labelidx#111] -[visit_exp reftype#3963] -[visit_id reftype#3963] -[visit_exp (l, `REF`_reftype{`null?#1579`, heaptype#1641}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#1591`, heaptype#1653}(null_2?{null_2 <- `null_2?`}, ht_2))] +[check_dims] ht_1 ht_2 l null_1 null_2 +dims \ = ht_1, ht_2, l, null_1, null_2 +[visit_exp `BR_ON_CAST`_instr(l, `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2))] +[visit_exp (l, `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2))] [visit_exp l] [visit_id l] -[visit_exp `REF`_reftype{`null?#1579`, heaptype#1641}(null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp `null?#1579`] -[visit_id null?#1579] -[visit_exp heaptype#1641] -[visit_id heaptype#1641] +[visit_exp `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1)] [visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] [visit_exp null_1?{null_1 <- `null_1?`}] [scope_enter null_1] @@ -73765,11 +60587,7 @@ dims \ = heaptype#1641, heaptype#1653, ht_1, ht_2, i#50095, l, labelidx#111, nu [visit_id null_1?] [visit_exp ht_1] [visit_id ht_1] -[visit_exp `REF`_reftype{`null?#1591`, heaptype#1653}(null_2?{null_2 <- `null_2?`}, ht_2)] -[visit_exp `null?#1591`] -[visit_id null?#1591] -[visit_exp heaptype#1653] -[visit_id heaptype#1653] +[visit_exp `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2)] [visit_exp (null_2?{null_2 <- `null_2?`}, ht_2)] [visit_exp null_2?{null_2 <- `null_2?`}] [scope_enter null_2] @@ -73782,9 +60600,7 @@ dims \ = heaptype#1641, heaptype#1653, ht_1, ht_2, i#50095, l, labelidx#111, nu [visit_id null_2?] [visit_exp ht_2] [visit_id ht_2] -[visit_exp `%`_u32{i#50095}(24)] -[visit_exp i#50095] -[visit_id i#50095] +[visit_exp `%`_u32(24)] [visit_exp (24)] [visit_exp 24] [visit_exp (null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`})] @@ -73812,21 +60628,13 @@ dims \ = heaptype#1641, heaptype#1653, ht_1, ht_2, i#50095, l, labelidx#111, nu [visit_id ht_1] not free [visit_exp ht_2] [visit_id ht_2] not free -[check_dims] heaptype#1665 heaptype#1677 ht_1 ht_2 i#50147 l labelidx#113 null?#1603 null?#1615 null_1 null_2 reftype#3966 -dims \ = heaptype#1665, heaptype#1677, ht_1, ht_2, i#50147, l, labelidx#113, null?#1603, null?#1615, null_1, null_2, reftype#3966 -[visit_exp `BR_ON_CAST_FAIL`_instr{labelidx#113, reftype#3966}(l, `REF`_reftype{`null?#1603`, heaptype#1665}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#1615`, heaptype#1677}(null_2?{null_2 <- `null_2?`}, ht_2))] -[visit_exp labelidx#113] -[visit_id labelidx#113] -[visit_exp reftype#3966] -[visit_id reftype#3966] -[visit_exp (l, `REF`_reftype{`null?#1603`, heaptype#1665}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#1615`, heaptype#1677}(null_2?{null_2 <- `null_2?`}, ht_2))] +[check_dims] ht_1 ht_2 l null_1 null_2 +dims \ = ht_1, ht_2, l, null_1, null_2 +[visit_exp `BR_ON_CAST_FAIL`_instr(l, `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2))] +[visit_exp (l, `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2))] [visit_exp l] [visit_id l] -[visit_exp `REF`_reftype{`null?#1603`, heaptype#1665}(null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp `null?#1603`] -[visit_id null?#1603] -[visit_exp heaptype#1665] -[visit_id heaptype#1665] +[visit_exp `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1)] [visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] [visit_exp null_1?{null_1 <- `null_1?`}] [scope_enter null_1] @@ -73839,11 +60647,7 @@ dims \ = heaptype#1665, heaptype#1677, ht_1, ht_2, i#50147, l, labelidx#113, nu [visit_id null_1?] [visit_exp ht_1] [visit_id ht_1] -[visit_exp `REF`_reftype{`null?#1615`, heaptype#1677}(null_2?{null_2 <- `null_2?`}, ht_2)] -[visit_exp `null?#1615`] -[visit_id null?#1615] -[visit_exp heaptype#1677] -[visit_id heaptype#1677] +[visit_exp `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2)] [visit_exp (null_2?{null_2 <- `null_2?`}, ht_2)] [visit_exp null_2?{null_2 <- `null_2?`}] [scope_enter null_2] @@ -73856,9 +60660,7 @@ dims \ = heaptype#1665, heaptype#1677, ht_1, ht_2, i#50147, l, labelidx#113, nu [visit_id null_2?] [visit_exp ht_2] [visit_id ht_2] -[visit_exp `%`_u32{i#50147}(25)] -[visit_exp i#50147] -[visit_id i#50147] +[visit_exp `%`_u32(25)] [visit_exp (25)] [visit_exp 25] [visit_exp (null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`})] @@ -73888,13 +60690,9 @@ dims \ = heaptype#1665, heaptype#1677, ht_1, ht_2, i#50147, l, labelidx#113, nu [visit_id ht_2] not free ps' = [check_dims] -[check_dims] l labelidx#115 tagidx#23 x -dims \ = l, labelidx#115, tagidx#23, x -[visit_exp `CATCH`_catch{tagidx#23, labelidx#115}(x, l)] -[visit_exp tagidx#23] -[visit_id tagidx#23] -[visit_exp labelidx#115] -[visit_id labelidx#115] +[check_dims] l x +dims \ = l, x +[visit_exp `CATCH`_catch(x, l)] [visit_exp (x, l)] [visit_exp x] [visit_id x] @@ -73904,13 +60702,9 @@ dims \ = l, labelidx#115, tagidx#23, x [visit_id x] not free [visit_exp l] [visit_id l] not free -[check_dims] l labelidx#117 tagidx#25 x -dims \ = l, labelidx#117, tagidx#25, x -[visit_exp `CATCH_REF`_catch{tagidx#25, labelidx#117}(x, l)] -[visit_exp tagidx#25] -[visit_id tagidx#25] -[visit_exp labelidx#117] -[visit_id labelidx#117] +[check_dims] l x +dims \ = l, x +[visit_exp `CATCH_REF`_catch(x, l)] [visit_exp (x, l)] [visit_exp x] [visit_id x] @@ -73920,21 +60714,17 @@ dims \ = l, labelidx#117, tagidx#25, x [visit_id x] not free [visit_exp l] [visit_id l] not free -[check_dims] l labelidx#119 -dims \ = l, labelidx#119 -[visit_exp `CATCH_ALL`_catch{labelidx#119}(l)] -[visit_exp labelidx#119] -[visit_id labelidx#119] +[check_dims] l +dims \ = l +[visit_exp `CATCH_ALL`_catch(l)] [visit_exp (l)] [visit_exp l] [visit_id l] [visit_exp l] [visit_id l] not free -[check_dims] l labelidx#121 -dims \ = l, labelidx#121 -[visit_exp `CATCH_ALL_REF`_catch{labelidx#121}(l)] -[visit_exp labelidx#121] -[visit_id labelidx#121] +[check_dims] l +dims \ = l +[visit_exp `CATCH_ALL_REF`_catch(l)] [visit_exp (l)] [visit_exp l] [visit_id l] @@ -73942,31 +60732,25 @@ dims \ = l, labelidx#121 [visit_id l] not free ps' = [check_dims] -[check_dims] localidx#21 x -dims \ = localidx#21, x -[visit_exp `LOCAL.GET`_instr{localidx#21}(x)] -[visit_exp localidx#21] -[visit_id localidx#21] +[check_dims] x +dims \ = x +[visit_exp `LOCAL.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] localidx#23 x -dims \ = localidx#23, x -[visit_exp `LOCAL.SET`_instr{localidx#23}(x)] -[visit_exp localidx#23] -[visit_id localidx#23] +[check_dims] x +dims \ = x +[visit_exp `LOCAL.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] localidx#25 x -dims \ = localidx#25, x -[visit_exp `LOCAL.TEE`_instr{localidx#25}(x)] -[visit_exp localidx#25] -[visit_id localidx#25] +[check_dims] x +dims \ = x +[visit_exp `LOCAL.TEE`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -73974,21 +60758,17 @@ dims \ = localidx#25, x [visit_id x] not free ps' = [check_dims] -[check_dims] globalidx#25 x -dims \ = globalidx#25, x -[visit_exp `GLOBAL.GET`_instr{globalidx#25}(x)] -[visit_exp globalidx#25] -[visit_id globalidx#25] +[check_dims] x +dims \ = x +[visit_exp `GLOBAL.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] globalidx#27 x -dims \ = globalidx#27, x -[visit_exp `GLOBAL.SET`_instr{globalidx#27}(x)] -[visit_exp globalidx#27] -[visit_id globalidx#27] +[check_dims] x +dims \ = x +[visit_exp `GLOBAL.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -73996,122 +60776,92 @@ dims \ = globalidx#27, x [visit_id x] not free ps' = [check_dims] -[check_dims] tableidx#129 x -dims \ = tableidx#129, x -[visit_exp `TABLE.GET`_instr{tableidx#129}(x)] -[visit_exp tableidx#129] -[visit_id tableidx#129] +[check_dims] x +dims \ = x +[visit_exp `TABLE.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] tableidx#131 x -dims \ = tableidx#131, x -[visit_exp `TABLE.SET`_instr{tableidx#131}(x)] -[visit_exp tableidx#131] -[visit_id tableidx#131] +[check_dims] x +dims \ = x +[visit_exp `TABLE.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] elemidx#49 i#50586 tableidx#133 x y -dims \ = elemidx#49, i#50586, tableidx#133, x, y -[visit_exp `TABLE.INIT`_instr{tableidx#133, elemidx#49}(x, y)] -[visit_exp tableidx#133] -[visit_id tableidx#133] -[visit_exp elemidx#49] -[visit_id elemidx#49] +[check_dims] x y +dims \ = x, y +[visit_exp `TABLE.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp `%`_u32{i#50586}(12)] -[visit_exp i#50586] -[visit_id i#50586] +[visit_exp `%`_u32(12)] [visit_exp (12)] [visit_exp 12] [visit_exp y] [visit_id y] not free [visit_exp x] [visit_id x] not free -[check_dims] elemidx#51 i#50673 x -dims \ = elemidx#51, i#50673, x -[visit_exp `ELEM.DROP`_instr{elemidx#51}(x)] -[visit_exp elemidx#51] -[visit_id elemidx#51] +[check_dims] x +dims \ = x +[visit_exp `ELEM.DROP`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#50673}(13)] -[visit_exp i#50673] -[visit_id i#50673] +[visit_exp `%`_u32(13)] [visit_exp (13)] [visit_exp 13] [visit_exp x] [visit_id x] not free -[check_dims] i#50729 tableidx#135 x_1 x_2 -dims \ = i#50729, tableidx#135, x_1, x_2 -[visit_exp `TABLE.COPY`_instr{tableidx#135}(x_1, x_2)] -[visit_exp tableidx#135] -[visit_id tableidx#135] +[check_dims] x_1 x_2 +dims \ = x_1, x_2 +[visit_exp `TABLE.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] [visit_exp x_2] [visit_id x_2] -[visit_exp `%`_u32{i#50729}(14)] -[visit_exp i#50729] -[visit_id i#50729] +[visit_exp `%`_u32(14)] [visit_exp (14)] [visit_exp 14] [visit_exp x_1] [visit_id x_1] not free [visit_exp x_2] [visit_id x_2] not free -[check_dims] i#50816 tableidx#138 x -dims \ = i#50816, tableidx#138, x -[visit_exp `TABLE.GROW`_instr{tableidx#138}(x)] -[visit_exp tableidx#138] -[visit_id tableidx#138] +[check_dims] x +dims \ = x +[visit_exp `TABLE.GROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#50816}(15)] -[visit_exp i#50816] -[visit_id i#50816] +[visit_exp `%`_u32(15)] [visit_exp (15)] [visit_exp 15] [visit_exp x] [visit_id x] not free -[check_dims] i#50872 tableidx#140 x -dims \ = i#50872, tableidx#140, x -[visit_exp `TABLE.SIZE`_instr{tableidx#140}(x)] -[visit_exp tableidx#140] -[visit_id tableidx#140] +[check_dims] x +dims \ = x +[visit_exp `TABLE.SIZE`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#50872}(16)] -[visit_exp i#50872] -[visit_id i#50872] +[visit_exp `%`_u32(16)] [visit_exp (16)] [visit_exp 16] [visit_exp x] [visit_id x] not free -[check_dims] i#50928 tableidx#142 x -dims \ = i#50928, tableidx#142, x -[visit_exp `TABLE.FILL`_instr{tableidx#142}(x)] -[visit_exp tableidx#142] -[visit_id tableidx#142] +[check_dims] x +dims \ = x +[visit_exp `TABLE.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#50928}(17)] -[visit_exp i#50928] -[visit_id i#50928] +[visit_exp `%`_u32(17)] [visit_exp (17)] [visit_exp 17] [visit_exp x] @@ -74119,40 +60869,26 @@ dims \ = i#50928, tableidx#142, x [check_dims] ps' = [check_dims] -[check_dims] i#50986 i#51013 i#51035 i#51057 i#51079 m n u32#35 u64#553 -dims \ = i#50986, i#51013, i#51035, i#51057, i#51079, m, n, u32#35, u64#553 -[visit_exp (`%`_memidx{i#51035}(0), {`ALIGN`{u32#35} `%`_u32{i#51057}(n), `OFFSET`{u64#553} `%`_u64{i#51079}(m)})] -[visit_exp `%`_memidx{i#51035}(0)] -[visit_exp i#51035] -[visit_id i#51035] +[check_dims] m n +dims \ = m, n +[visit_exp (`%`_memidx(0), {`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)})] +[visit_exp `%`_memidx(0)] [visit_exp (0)] [visit_exp 0] -[visit_exp {`ALIGN`{u32#35} `%`_u32{i#51057}(n), `OFFSET`{u64#553} `%`_u64{i#51079}(m)}] -[visit_exp u32#35] -[visit_id u32#35] -[visit_exp `%`_u32{i#51057}(n)] -[visit_exp i#51057] -[visit_id i#51057] +[visit_exp {`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)}] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp u64#553] -[visit_id u64#553] -[visit_exp `%`_u64{i#51079}(m)] -[visit_exp i#51079] -[visit_id i#51079] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] -[visit_exp `%`_u32{i#50986}(n)] -[visit_exp i#50986] -[visit_id i#50986] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[visit_exp `%`_u64{i#51013}(m)] -[visit_exp i#51013] -[visit_id i#51013] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] not free @@ -74162,17 +60898,13 @@ dims \ = i#50986, i#51013, i#51035, i#51057, i#51079, m, n, u32#35, u64#553 [visit_exp (2 ^ 6)] [visit_exp 2] [visit_exp 6] -[check_dims] i#51104 i#51148 i#51182 i#51204 m n u32#36 u64#554 x -dims \ = i#51104, i#51148, i#51182, i#51204, m, n, u32#36, u64#554, x -[visit_exp (x, {`ALIGN`{u32#36} `%`_u32{i#51182}((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), `OFFSET`{u64#554} `%`_u64{i#51204}(m)})] +[check_dims] m n x +dims \ = m, n, x +[visit_exp (x, {`ALIGN` `%`_u32((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), `OFFSET` `%`_u64(m)})] [visit_exp x] [visit_id x] -[visit_exp {`ALIGN`{u32#36} `%`_u32{i#51182}((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), `OFFSET`{u64#554} `%`_u64{i#51204}(m)}] -[visit_exp u32#36] -[visit_id u32#36] -[visit_exp `%`_u32{i#51182}((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat))] -[visit_exp i#51182] -[visit_id i#51182] +[visit_exp {`ALIGN` `%`_u32((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), `OFFSET` `%`_u64(m)}] +[visit_exp `%`_u32((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat))] [visit_exp ((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat))] [visit_exp (((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)] [visit_exp ((n : nat <:> int) - ((2 ^ 6) : nat <:> int))] @@ -74183,25 +60915,17 @@ dims \ = i#51104, i#51148, i#51182, i#51204, m, n, u32#36, u64#554, x [visit_exp (2 ^ 6)] [visit_exp 2] [visit_exp 6] -[visit_exp u64#554] -[visit_id u64#554] -[visit_exp `%`_u64{i#51204}(m)] -[visit_exp i#51204] -[visit_id i#51204] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] -[visit_exp `%`_u32{i#51104}(n)] -[visit_exp i#51104] -[visit_id i#51104] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free [visit_exp x] [visit_id x] not free -[visit_exp `%`_u64{i#51148}(m)] -[visit_exp i#51148] -[visit_id i#51148] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] not free @@ -74220,15 +60944,9 @@ dims \ = i#51104, i#51148, i#51182, i#51204, m, n, u32#36, u64#554, x [visit_exp 7] ps' = [check_dims] -[check_dims] ao memarg#91 memidx#171 numtype?#21 x -dims \ = ao, memarg#91, memidx#171, numtype?#21, x -[visit_exp `LOAD`_instr{`numtype?#21`, memidx#171, memarg#91}(`I32`_numtype, ?(), x, ao)] -[visit_exp `numtype?#21`] -[visit_id numtype?#21] -[visit_exp memidx#171] -[visit_id memidx#171] -[visit_exp memarg#91] -[visit_id memarg#91] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`I32`_numtype, ?(), x, ao)] [visit_exp (`I32`_numtype, ?(), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -74242,15 +60960,9 @@ dims \ = ao, memarg#91, memidx#171, numtype?#21, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao memarg#93 memidx#173 numtype?#22 x -dims \ = ao, memarg#93, memidx#173, numtype?#22, x -[visit_exp `LOAD`_instr{`numtype?#22`, memidx#173, memarg#93}(`I64`_numtype, ?(), x, ao)] -[visit_exp `numtype?#22`] -[visit_id numtype?#22] -[visit_exp memidx#173] -[visit_id memidx#173] -[visit_exp memarg#93] -[visit_id memarg#93] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(), x, ao)] [visit_exp (`I64`_numtype, ?(), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] @@ -74264,15 +60976,9 @@ dims \ = ao, memarg#93, memidx#173, numtype?#22, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao memarg#95 memidx#175 numtype?#23 x -dims \ = ao, memarg#95, memidx#175, numtype?#23, x -[visit_exp `LOAD`_instr{`numtype?#23`, memidx#175, memarg#95}(`F32`_numtype, ?(), x, ao)] -[visit_exp `numtype?#23`] -[visit_id numtype?#23] -[visit_exp memidx#175] -[visit_id memidx#175] -[visit_exp memarg#95] -[visit_id memarg#95] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`F32`_numtype, ?(), x, ao)] [visit_exp (`F32`_numtype, ?(), x, ao)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -74286,15 +60992,9 @@ dims \ = ao, memarg#95, memidx#175, numtype?#23, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao memarg#97 memidx#177 numtype?#24 x -dims \ = ao, memarg#97, memidx#177, numtype?#24, x -[visit_exp `LOAD`_instr{`numtype?#24`, memidx#177, memarg#97}(`F64`_numtype, ?(), x, ao)] -[visit_exp `numtype?#24`] -[visit_id numtype?#24] -[visit_exp memidx#177] -[visit_id memidx#177] -[visit_exp memarg#97] -[visit_id memarg#97] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`F64`_numtype, ?(), x, ao)] [visit_exp (`F64`_numtype, ?(), x, ao)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -74308,30 +61008,16 @@ dims \ = ao, memarg#97, memidx#177, numtype?#24, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#51346 i#51353 memarg#99 memidx#179 numtype?#25 sx#426 sz#558 x -dims \ = ao, i#51346, i#51353, memarg#99, memidx#179, numtype?#25, sx#426, sz#558, x -[visit_exp `LOAD`_instr{`numtype?#25`, memidx#179, memarg#99}(`I32`_numtype, ?(`%_%`_loadop_{sz#558, sx#426, i#51346}(`%`_sz{i#51353}(8), `S`_sx)), x, ao)] -[visit_exp `numtype?#25`] -[visit_id numtype?#25] -[visit_exp memidx#179] -[visit_id memidx#179] -[visit_exp memarg#99] -[visit_id memarg#99] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#558, sx#426, i#51346}(`%`_sz{i#51353}(8), `S`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#558, sx#426, i#51346}(`%`_sz{i#51353}(8), `S`_sx))] -[visit_exp `%_%`_loadop_{sz#558, sx#426, i#51346}(`%`_sz{i#51353}(8), `S`_sx)] -[visit_exp sz#558] -[visit_id sz#558] -[visit_exp sx#426] -[visit_id sx#426] -[visit_exp i#51346] -[visit_id i#51346] -[visit_exp (`%`_sz{i#51353}(8), `S`_sx)] -[visit_exp `%`_sz{i#51353}(8)] -[visit_exp i#51353] -[visit_id i#51353] +[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `S`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(8), `S`_sx)] +[visit_exp (`%`_sz(8), `S`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `S`_sx] @@ -74345,30 +61031,16 @@ dims \ = ao, i#51346, i#51353, memarg#99, memidx#179, numtype?#25, sx#426, sz#5 [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#51405 i#51412 memarg#101 memidx#181 numtype?#26 sx#444 sz#576 x -dims \ = ao, i#51405, i#51412, memarg#101, memidx#181, numtype?#26, sx#444, sz#576, x -[visit_exp `LOAD`_instr{`numtype?#26`, memidx#181, memarg#101}(`I32`_numtype, ?(`%_%`_loadop_{sz#576, sx#444, i#51405}(`%`_sz{i#51412}(8), `U`_sx)), x, ao)] -[visit_exp `numtype?#26`] -[visit_id numtype?#26] -[visit_exp memidx#181] -[visit_id memidx#181] -[visit_exp memarg#101] -[visit_id memarg#101] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#576, sx#444, i#51405}(`%`_sz{i#51412}(8), `U`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#576, sx#444, i#51405}(`%`_sz{i#51412}(8), `U`_sx))] -[visit_exp `%_%`_loadop_{sz#576, sx#444, i#51405}(`%`_sz{i#51412}(8), `U`_sx)] -[visit_exp sz#576] -[visit_id sz#576] -[visit_exp sx#444] -[visit_id sx#444] -[visit_exp i#51405] -[visit_id i#51405] -[visit_exp (`%`_sz{i#51412}(8), `U`_sx)] -[visit_exp `%`_sz{i#51412}(8)] -[visit_exp i#51412] -[visit_id i#51412] +[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `U`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(8), `U`_sx)] +[visit_exp (`%`_sz(8), `U`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `U`_sx] @@ -74382,30 +61054,16 @@ dims \ = ao, i#51405, i#51412, memarg#101, memidx#181, numtype?#26, sx#444, sz# [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#51464 i#51471 memarg#103 memidx#183 numtype?#27 sx#462 sz#594 x -dims \ = ao, i#51464, i#51471, memarg#103, memidx#183, numtype?#27, sx#462, sz#594, x -[visit_exp `LOAD`_instr{`numtype?#27`, memidx#183, memarg#103}(`I32`_numtype, ?(`%_%`_loadop_{sz#594, sx#462, i#51464}(`%`_sz{i#51471}(16), `S`_sx)), x, ao)] -[visit_exp `numtype?#27`] -[visit_id numtype?#27] -[visit_exp memidx#183] -[visit_id memidx#183] -[visit_exp memarg#103] -[visit_id memarg#103] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#594, sx#462, i#51464}(`%`_sz{i#51471}(16), `S`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#594, sx#462, i#51464}(`%`_sz{i#51471}(16), `S`_sx))] -[visit_exp `%_%`_loadop_{sz#594, sx#462, i#51464}(`%`_sz{i#51471}(16), `S`_sx)] -[visit_exp sz#594] -[visit_id sz#594] -[visit_exp sx#462] -[visit_id sx#462] -[visit_exp i#51464] -[visit_id i#51464] -[visit_exp (`%`_sz{i#51471}(16), `S`_sx)] -[visit_exp `%`_sz{i#51471}(16)] -[visit_exp i#51471] -[visit_id i#51471] +[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `S`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(16), `S`_sx)] +[visit_exp (`%`_sz(16), `S`_sx)] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `S`_sx] @@ -74419,30 +61077,16 @@ dims \ = ao, i#51464, i#51471, memarg#103, memidx#183, numtype?#27, sx#462, sz# [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#51523 i#51530 memarg#105 memidx#185 numtype?#28 sx#480 sz#612 x -dims \ = ao, i#51523, i#51530, memarg#105, memidx#185, numtype?#28, sx#480, sz#612, x -[visit_exp `LOAD`_instr{`numtype?#28`, memidx#185, memarg#105}(`I32`_numtype, ?(`%_%`_loadop_{sz#612, sx#480, i#51523}(`%`_sz{i#51530}(16), `U`_sx)), x, ao)] -[visit_exp `numtype?#28`] -[visit_id numtype?#28] -[visit_exp memidx#185] -[visit_id memidx#185] -[visit_exp memarg#105] -[visit_id memarg#105] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#612, sx#480, i#51523}(`%`_sz{i#51530}(16), `U`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#612, sx#480, i#51523}(`%`_sz{i#51530}(16), `U`_sx))] -[visit_exp `%_%`_loadop_{sz#612, sx#480, i#51523}(`%`_sz{i#51530}(16), `U`_sx)] -[visit_exp sz#612] -[visit_id sz#612] -[visit_exp sx#480] -[visit_id sx#480] -[visit_exp i#51523] -[visit_id i#51523] -[visit_exp (`%`_sz{i#51530}(16), `U`_sx)] -[visit_exp `%`_sz{i#51530}(16)] -[visit_exp i#51530] -[visit_id i#51530] +[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `U`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(16), `U`_sx)] +[visit_exp (`%`_sz(16), `U`_sx)] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `U`_sx] @@ -74456,30 +61100,16 @@ dims \ = ao, i#51523, i#51530, memarg#105, memidx#185, numtype?#28, sx#480, sz# [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#51582 i#51589 memarg#107 memidx#187 numtype?#29 sx#498 sz#630 x -dims \ = ao, i#51582, i#51589, memarg#107, memidx#187, numtype?#29, sx#498, sz#630, x -[visit_exp `LOAD`_instr{`numtype?#29`, memidx#187, memarg#107}(`I64`_numtype, ?(`%_%`_loadop_{sz#630, sx#498, i#51582}(`%`_sz{i#51589}(8), `S`_sx)), x, ao)] -[visit_exp `numtype?#29`] -[visit_id numtype?#29] -[visit_exp memidx#187] -[visit_id memidx#187] -[visit_exp memarg#107] -[visit_id memarg#107] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#630, sx#498, i#51582}(`%`_sz{i#51589}(8), `S`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#630, sx#498, i#51582}(`%`_sz{i#51589}(8), `S`_sx))] -[visit_exp `%_%`_loadop_{sz#630, sx#498, i#51582}(`%`_sz{i#51589}(8), `S`_sx)] -[visit_exp sz#630] -[visit_id sz#630] -[visit_exp sx#498] -[visit_id sx#498] -[visit_exp i#51582] -[visit_id i#51582] -[visit_exp (`%`_sz{i#51589}(8), `S`_sx)] -[visit_exp `%`_sz{i#51589}(8)] -[visit_exp i#51589] -[visit_id i#51589] +[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `S`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(8), `S`_sx)] +[visit_exp (`%`_sz(8), `S`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `S`_sx] @@ -74493,30 +61123,16 @@ dims \ = ao, i#51582, i#51589, memarg#107, memidx#187, numtype?#29, sx#498, sz# [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#51641 i#51648 memarg#109 memidx#189 numtype?#30 sx#516 sz#648 x -dims \ = ao, i#51641, i#51648, memarg#109, memidx#189, numtype?#30, sx#516, sz#648, x -[visit_exp `LOAD`_instr{`numtype?#30`, memidx#189, memarg#109}(`I64`_numtype, ?(`%_%`_loadop_{sz#648, sx#516, i#51641}(`%`_sz{i#51648}(8), `U`_sx)), x, ao)] -[visit_exp `numtype?#30`] -[visit_id numtype?#30] -[visit_exp memidx#189] -[visit_id memidx#189] -[visit_exp memarg#109] -[visit_id memarg#109] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#648, sx#516, i#51641}(`%`_sz{i#51648}(8), `U`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#648, sx#516, i#51641}(`%`_sz{i#51648}(8), `U`_sx))] -[visit_exp `%_%`_loadop_{sz#648, sx#516, i#51641}(`%`_sz{i#51648}(8), `U`_sx)] -[visit_exp sz#648] -[visit_id sz#648] -[visit_exp sx#516] -[visit_id sx#516] -[visit_exp i#51641] -[visit_id i#51641] -[visit_exp (`%`_sz{i#51648}(8), `U`_sx)] -[visit_exp `%`_sz{i#51648}(8)] -[visit_exp i#51648] -[visit_id i#51648] +[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `U`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(8), `U`_sx)] +[visit_exp (`%`_sz(8), `U`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `U`_sx] @@ -74530,30 +61146,16 @@ dims \ = ao, i#51641, i#51648, memarg#109, memidx#189, numtype?#30, sx#516, sz# [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#51700 i#51707 memarg#111 memidx#191 numtype?#31 sx#534 sz#666 x -dims \ = ao, i#51700, i#51707, memarg#111, memidx#191, numtype?#31, sx#534, sz#666, x -[visit_exp `LOAD`_instr{`numtype?#31`, memidx#191, memarg#111}(`I64`_numtype, ?(`%_%`_loadop_{sz#666, sx#534, i#51700}(`%`_sz{i#51707}(16), `S`_sx)), x, ao)] -[visit_exp `numtype?#31`] -[visit_id numtype?#31] -[visit_exp memidx#191] -[visit_id memidx#191] -[visit_exp memarg#111] -[visit_id memarg#111] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#666, sx#534, i#51700}(`%`_sz{i#51707}(16), `S`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#666, sx#534, i#51700}(`%`_sz{i#51707}(16), `S`_sx))] -[visit_exp `%_%`_loadop_{sz#666, sx#534, i#51700}(`%`_sz{i#51707}(16), `S`_sx)] -[visit_exp sz#666] -[visit_id sz#666] -[visit_exp sx#534] -[visit_id sx#534] -[visit_exp i#51700] -[visit_id i#51700] -[visit_exp (`%`_sz{i#51707}(16), `S`_sx)] -[visit_exp `%`_sz{i#51707}(16)] -[visit_exp i#51707] -[visit_id i#51707] +[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `S`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(16), `S`_sx)] +[visit_exp (`%`_sz(16), `S`_sx)] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `S`_sx] @@ -74567,30 +61169,16 @@ dims \ = ao, i#51700, i#51707, memarg#111, memidx#191, numtype?#31, sx#534, sz# [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#51759 i#51766 memarg#113 memidx#193 numtype?#32 sx#552 sz#684 x -dims \ = ao, i#51759, i#51766, memarg#113, memidx#193, numtype?#32, sx#552, sz#684, x -[visit_exp `LOAD`_instr{`numtype?#32`, memidx#193, memarg#113}(`I64`_numtype, ?(`%_%`_loadop_{sz#684, sx#552, i#51759}(`%`_sz{i#51766}(16), `U`_sx)), x, ao)] -[visit_exp `numtype?#32`] -[visit_id numtype?#32] -[visit_exp memidx#193] -[visit_id memidx#193] -[visit_exp memarg#113] -[visit_id memarg#113] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#684, sx#552, i#51759}(`%`_sz{i#51766}(16), `U`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#684, sx#552, i#51759}(`%`_sz{i#51766}(16), `U`_sx))] -[visit_exp `%_%`_loadop_{sz#684, sx#552, i#51759}(`%`_sz{i#51766}(16), `U`_sx)] -[visit_exp sz#684] -[visit_id sz#684] -[visit_exp sx#552] -[visit_id sx#552] -[visit_exp i#51759] -[visit_id i#51759] -[visit_exp (`%`_sz{i#51766}(16), `U`_sx)] -[visit_exp `%`_sz{i#51766}(16)] -[visit_exp i#51766] -[visit_id i#51766] +[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `U`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(16), `U`_sx)] +[visit_exp (`%`_sz(16), `U`_sx)] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `U`_sx] @@ -74604,30 +61192,16 @@ dims \ = ao, i#51759, i#51766, memarg#113, memidx#193, numtype?#32, sx#552, sz# [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#51818 i#51825 memarg#115 memidx#195 numtype?#33 sx#570 sz#702 x -dims \ = ao, i#51818, i#51825, memarg#115, memidx#195, numtype?#33, sx#570, sz#702, x -[visit_exp `LOAD`_instr{`numtype?#33`, memidx#195, memarg#115}(`I64`_numtype, ?(`%_%`_loadop_{sz#702, sx#570, i#51818}(`%`_sz{i#51825}(32), `S`_sx)), x, ao)] -[visit_exp `numtype?#33`] -[visit_id numtype?#33] -[visit_exp memidx#195] -[visit_id memidx#195] -[visit_exp memarg#115] -[visit_id memarg#115] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#702, sx#570, i#51818}(`%`_sz{i#51825}(32), `S`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `S`_sx)), x, ao)] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `S`_sx)), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#702, sx#570, i#51818}(`%`_sz{i#51825}(32), `S`_sx))] -[visit_exp `%_%`_loadop_{sz#702, sx#570, i#51818}(`%`_sz{i#51825}(32), `S`_sx)] -[visit_exp sz#702] -[visit_id sz#702] -[visit_exp sx#570] -[visit_id sx#570] -[visit_exp i#51818] -[visit_id i#51818] -[visit_exp (`%`_sz{i#51825}(32), `S`_sx)] -[visit_exp `%`_sz{i#51825}(32)] -[visit_exp i#51825] -[visit_id i#51825] +[visit_exp ?(`%_%`_loadop_(`%`_sz(32), `S`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(32), `S`_sx)] +[visit_exp (`%`_sz(32), `S`_sx)] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp `S`_sx] @@ -74641,30 +61215,16 @@ dims \ = ao, i#51818, i#51825, memarg#115, memidx#195, numtype?#33, sx#570, sz# [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#51877 i#51884 memarg#117 memidx#197 numtype?#34 sx#588 sz#720 x -dims \ = ao, i#51877, i#51884, memarg#117, memidx#197, numtype?#34, sx#588, sz#720, x -[visit_exp `LOAD`_instr{`numtype?#34`, memidx#197, memarg#117}(`I64`_numtype, ?(`%_%`_loadop_{sz#720, sx#588, i#51877}(`%`_sz{i#51884}(32), `U`_sx)), x, ao)] -[visit_exp `numtype?#34`] -[visit_id numtype?#34] -[visit_exp memidx#197] -[visit_id memidx#197] -[visit_exp memarg#117] -[visit_id memarg#117] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#720, sx#588, i#51877}(`%`_sz{i#51884}(32), `U`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `U`_sx)), x, ao)] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `U`_sx)), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#720, sx#588, i#51877}(`%`_sz{i#51884}(32), `U`_sx))] -[visit_exp `%_%`_loadop_{sz#720, sx#588, i#51877}(`%`_sz{i#51884}(32), `U`_sx)] -[visit_exp sz#720] -[visit_id sz#720] -[visit_exp sx#588] -[visit_id sx#588] -[visit_exp i#51877] -[visit_id i#51877] -[visit_exp (`%`_sz{i#51884}(32), `U`_sx)] -[visit_exp `%`_sz{i#51884}(32)] -[visit_exp i#51884] -[visit_id i#51884] +[visit_exp ?(`%_%`_loadop_(`%`_sz(32), `U`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(32), `U`_sx)] +[visit_exp (`%`_sz(32), `U`_sx)] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp `U`_sx] @@ -74678,15 +61238,9 @@ dims \ = ao, i#51877, i#51884, memarg#117, memidx#197, numtype?#34, sx#588, sz# [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao memarg#119 memidx#199 numtype?#35 x -dims \ = ao, memarg#119, memidx#199, numtype?#35, x -[visit_exp `STORE`_instr{`numtype?#35`, memidx#199, memarg#119}(`I32`_numtype, ?(), x, ao)] -[visit_exp `numtype?#35`] -[visit_id numtype?#35] -[visit_exp memidx#199] -[visit_id memidx#199] -[visit_exp memarg#119] -[visit_id memarg#119] +[check_dims] ao x +dims \ = ao, x +[visit_exp `STORE`_instr(`I32`_numtype, ?(), x, ao)] [visit_exp (`I32`_numtype, ?(), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -74700,15 +61254,9 @@ dims \ = ao, memarg#119, memidx#199, numtype?#35, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao memarg#121 memidx#201 numtype?#36 x -dims \ = ao, memarg#121, memidx#201, numtype?#36, x -[visit_exp `STORE`_instr{`numtype?#36`, memidx#201, memarg#121}(`I64`_numtype, ?(), x, ao)] -[visit_exp `numtype?#36`] -[visit_id numtype?#36] -[visit_exp memidx#201] -[visit_id memidx#201] -[visit_exp memarg#121] -[visit_id memarg#121] +[check_dims] ao x +dims \ = ao, x +[visit_exp `STORE`_instr(`I64`_numtype, ?(), x, ao)] [visit_exp (`I64`_numtype, ?(), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] @@ -74722,15 +61270,9 @@ dims \ = ao, memarg#121, memidx#201, numtype?#36, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao memarg#123 memidx#203 numtype?#37 x -dims \ = ao, memarg#123, memidx#203, numtype?#37, x -[visit_exp `STORE`_instr{`numtype?#37`, memidx#203, memarg#123}(`F32`_numtype, ?(), x, ao)] -[visit_exp `numtype?#37`] -[visit_id numtype?#37] -[visit_exp memidx#203] -[visit_id memidx#203] -[visit_exp memarg#123] -[visit_id memarg#123] +[check_dims] ao x +dims \ = ao, x +[visit_exp `STORE`_instr(`F32`_numtype, ?(), x, ao)] [visit_exp (`F32`_numtype, ?(), x, ao)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -74744,15 +61286,9 @@ dims \ = ao, memarg#123, memidx#203, numtype?#37, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao memarg#125 memidx#205 numtype?#38 x -dims \ = ao, memarg#125, memidx#205, numtype?#38, x -[visit_exp `STORE`_instr{`numtype?#38`, memidx#205, memarg#125}(`F64`_numtype, ?(), x, ao)] -[visit_exp `numtype?#38`] -[visit_id numtype?#38] -[visit_exp memidx#205] -[visit_id memidx#205] -[visit_exp memarg#125] -[visit_id memarg#125] +[check_dims] ao x +dims \ = ao, x +[visit_exp `STORE`_instr(`F64`_numtype, ?(), x, ao)] [visit_exp (`F64`_numtype, ?(), x, ao)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -74766,28 +61302,16 @@ dims \ = ao, memarg#125, memidx#205, numtype?#38, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#52055 i#52056 memarg#127 memidx#207 numtype?#39 sz#733 x -dims \ = ao, i#52055, i#52056, memarg#127, memidx#207, numtype?#39, sz#733, x -[visit_exp `STORE`_instr{`numtype?#39`, memidx#207, memarg#127}(`I32`_numtype, ?(`%`_storeop_{sz#733, i#52055}(`%`_sz{i#52056}(8))), x, ao)] -[visit_exp `numtype?#39`] -[visit_id numtype?#39] -[visit_exp memidx#207] -[visit_id memidx#207] -[visit_exp memarg#127] -[visit_id memarg#127] -[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#733, i#52055}(`%`_sz{i#52056}(8))), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] +[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#733, i#52055}(`%`_sz{i#52056}(8)))] -[visit_exp `%`_storeop_{sz#733, i#52055}(`%`_sz{i#52056}(8))] -[visit_exp sz#733] -[visit_id sz#733] -[visit_exp i#52055] -[visit_id i#52055] -[visit_exp (`%`_sz{i#52056}(8))] -[visit_exp `%`_sz{i#52056}(8)] -[visit_exp i#52056] -[visit_id i#52056] +[visit_exp ?(`%`_storeop_(`%`_sz(8)))] +[visit_exp `%`_storeop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x] @@ -74799,28 +61323,16 @@ dims \ = ao, i#52055, i#52056, memarg#127, memidx#207, numtype?#39, sz#733, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#52123 i#52124 memarg#129 memidx#209 numtype?#40 sz#746 x -dims \ = ao, i#52123, i#52124, memarg#129, memidx#209, numtype?#40, sz#746, x -[visit_exp `STORE`_instr{`numtype?#40`, memidx#209, memarg#129}(`I32`_numtype, ?(`%`_storeop_{sz#746, i#52123}(`%`_sz{i#52124}(16))), x, ao)] -[visit_exp `numtype?#40`] -[visit_id numtype?#40] -[visit_exp memidx#209] -[visit_id memidx#209] -[visit_exp memarg#129] -[visit_id memarg#129] -[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#746, i#52123}(`%`_sz{i#52124}(16))), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] +[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#746, i#52123}(`%`_sz{i#52124}(16)))] -[visit_exp `%`_storeop_{sz#746, i#52123}(`%`_sz{i#52124}(16))] -[visit_exp sz#746] -[visit_id sz#746] -[visit_exp i#52123] -[visit_id i#52123] -[visit_exp (`%`_sz{i#52124}(16))] -[visit_exp `%`_sz{i#52124}(16)] -[visit_exp i#52124] -[visit_id i#52124] +[visit_exp ?(`%`_storeop_(`%`_sz(16)))] +[visit_exp `%`_storeop_(`%`_sz(16))] +[visit_exp (`%`_sz(16))] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp x] @@ -74832,28 +61344,16 @@ dims \ = ao, i#52123, i#52124, memarg#129, memidx#209, numtype?#40, sz#746, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#52191 i#52192 memarg#131 memidx#211 numtype?#41 sz#759 x -dims \ = ao, i#52191, i#52192, memarg#131, memidx#211, numtype?#41, sz#759, x -[visit_exp `STORE`_instr{`numtype?#41`, memidx#211, memarg#131}(`I64`_numtype, ?(`%`_storeop_{sz#759, i#52191}(`%`_sz{i#52192}(8))), x, ao)] -[visit_exp `numtype?#41`] -[visit_id numtype?#41] -[visit_exp memidx#211] -[visit_id memidx#211] -[visit_exp memarg#131] -[visit_id memarg#131] -[visit_exp (`I64`_numtype, ?(`%`_storeop_{sz#759, i#52191}(`%`_sz{i#52192}(8))), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] +[visit_exp (`I64`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#759, i#52191}(`%`_sz{i#52192}(8)))] -[visit_exp `%`_storeop_{sz#759, i#52191}(`%`_sz{i#52192}(8))] -[visit_exp sz#759] -[visit_id sz#759] -[visit_exp i#52191] -[visit_id i#52191] -[visit_exp (`%`_sz{i#52192}(8))] -[visit_exp `%`_sz{i#52192}(8)] -[visit_exp i#52192] -[visit_id i#52192] +[visit_exp ?(`%`_storeop_(`%`_sz(8)))] +[visit_exp `%`_storeop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x] @@ -74865,28 +61365,16 @@ dims \ = ao, i#52191, i#52192, memarg#131, memidx#211, numtype?#41, sz#759, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#52259 i#52260 memarg#133 memidx#213 numtype?#42 sz#772 x -dims \ = ao, i#52259, i#52260, memarg#133, memidx#213, numtype?#42, sz#772, x -[visit_exp `STORE`_instr{`numtype?#42`, memidx#213, memarg#133}(`I64`_numtype, ?(`%`_storeop_{sz#772, i#52259}(`%`_sz{i#52260}(16))), x, ao)] -[visit_exp `numtype?#42`] -[visit_id numtype?#42] -[visit_exp memidx#213] -[visit_id memidx#213] -[visit_exp memarg#133] -[visit_id memarg#133] -[visit_exp (`I64`_numtype, ?(`%`_storeop_{sz#772, i#52259}(`%`_sz{i#52260}(16))), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] +[visit_exp (`I64`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#772, i#52259}(`%`_sz{i#52260}(16)))] -[visit_exp `%`_storeop_{sz#772, i#52259}(`%`_sz{i#52260}(16))] -[visit_exp sz#772] -[visit_id sz#772] -[visit_exp i#52259] -[visit_id i#52259] -[visit_exp (`%`_sz{i#52260}(16))] -[visit_exp `%`_sz{i#52260}(16)] -[visit_exp i#52260] -[visit_id i#52260] +[visit_exp ?(`%`_storeop_(`%`_sz(16)))] +[visit_exp `%`_storeop_(`%`_sz(16))] +[visit_exp (`%`_sz(16))] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp x] @@ -74898,28 +61386,16 @@ dims \ = ao, i#52259, i#52260, memarg#133, memidx#213, numtype?#42, sz#772, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#52327 i#52328 memarg#135 memidx#215 numtype?#43 sz#785 x -dims \ = ao, i#52327, i#52328, memarg#135, memidx#215, numtype?#43, sz#785, x -[visit_exp `STORE`_instr{`numtype?#43`, memidx#215, memarg#135}(`I64`_numtype, ?(`%`_storeop_{sz#785, i#52327}(`%`_sz{i#52328}(32))), x, ao)] -[visit_exp `numtype?#43`] -[visit_id numtype?#43] -[visit_exp memidx#215] -[visit_id memidx#215] -[visit_exp memarg#135] -[visit_id memarg#135] -[visit_exp (`I64`_numtype, ?(`%`_storeop_{sz#785, i#52327}(`%`_sz{i#52328}(32))), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao)] +[visit_exp (`I64`_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#785, i#52327}(`%`_sz{i#52328}(32)))] -[visit_exp `%`_storeop_{sz#785, i#52327}(`%`_sz{i#52328}(32))] -[visit_exp sz#785] -[visit_id sz#785] -[visit_exp i#52327] -[visit_id i#52327] -[visit_exp (`%`_sz{i#52328}(32))] -[visit_exp `%`_sz{i#52328}(32)] -[visit_exp i#52328] -[visit_id i#52328] +[visit_exp ?(`%`_storeop_(`%`_sz(32)))] +[visit_exp `%`_storeop_(`%`_sz(32))] +[visit_exp (`%`_sz(32))] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp x] @@ -74931,103 +61407,79 @@ dims \ = ao, i#52327, i#52328, memarg#135, memidx#215, numtype?#43, sz#785, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] memidx#217 x -dims \ = memidx#217, x -[visit_exp `MEMORY.SIZE`_instr{memidx#217}(x)] -[visit_exp memidx#217] -[visit_id memidx#217] +[check_dims] x +dims \ = x +[visit_exp `MEMORY.SIZE`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] memidx#219 x -dims \ = memidx#219, x -[visit_exp `MEMORY.GROW`_instr{memidx#219}(x)] -[visit_exp memidx#219] -[visit_id memidx#219] +[check_dims] x +dims \ = x +[visit_exp `MEMORY.GROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] dataidx#47 i#52427 memidx#221 x y -dims \ = dataidx#47, i#52427, memidx#221, x, y -[visit_exp `MEMORY.INIT`_instr{memidx#221, dataidx#47}(x, y)] -[visit_exp memidx#221] -[visit_id memidx#221] -[visit_exp dataidx#47] -[visit_id dataidx#47] +[check_dims] x y +dims \ = x, y +[visit_exp `MEMORY.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp `%`_u32{i#52427}(8)] -[visit_exp i#52427] -[visit_id i#52427] +[visit_exp `%`_u32(8)] [visit_exp (8)] [visit_exp 8] [visit_exp y] [visit_id y] not free [visit_exp x] [visit_id x] not free -[check_dims] dataidx#49 i#52514 x -dims \ = dataidx#49, i#52514, x -[visit_exp `DATA.DROP`_instr{dataidx#49}(x)] -[visit_exp dataidx#49] -[visit_id dataidx#49] +[check_dims] x +dims \ = x +[visit_exp `DATA.DROP`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#52514}(9)] -[visit_exp i#52514] -[visit_id i#52514] +[visit_exp `%`_u32(9)] [visit_exp (9)] [visit_exp 9] [visit_exp x] [visit_id x] not free -[check_dims] i#52570 memidx#223 x_1 x_2 -dims \ = i#52570, memidx#223, x_1, x_2 -[visit_exp `MEMORY.COPY`_instr{memidx#223}(x_1, x_2)] -[visit_exp memidx#223] -[visit_id memidx#223] +[check_dims] x_1 x_2 +dims \ = x_1, x_2 +[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] [visit_exp x_2] [visit_id x_2] -[visit_exp `%`_u32{i#52570}(10)] -[visit_exp i#52570] -[visit_id i#52570] +[visit_exp `%`_u32(10)] [visit_exp (10)] [visit_exp 10] [visit_exp x_1] [visit_id x_1] not free [visit_exp x_2] [visit_id x_2] not free -[check_dims] i#52657 memidx#226 x -dims \ = i#52657, memidx#226, x -[visit_exp `MEMORY.FILL`_instr{memidx#226}(x)] -[visit_exp memidx#226] -[visit_id memidx#226] +[check_dims] x +dims \ = x +[visit_exp `MEMORY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#52657}(11)] -[visit_exp i#52657] -[visit_id i#52657] +[visit_exp `%`_u32(11)] [visit_exp (11)] [visit_exp 11] [visit_exp x] [visit_id x] not free ps' = [check_dims] -[check_dims] heaptype#1679 ht -dims \ = heaptype#1679, ht -[visit_exp `REF.NULL`_instr{heaptype#1679}(ht)] -[visit_exp heaptype#1679] -[visit_id heaptype#1679] +[check_dims] ht +dims \ = ht +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] @@ -75037,11 +61489,9 @@ dims \ = heaptype#1679, ht dims \ = [visit_exp `REF.IS_NULL`_instr] [visit_exp ()] -[check_dims] funcidx#3167 x -dims \ = funcidx#3167, x -[visit_exp `REF.FUNC`_instr{funcidx#3167}(x)] -[visit_exp funcidx#3167] -[visit_id funcidx#3167] +[check_dims] x +dims \ = x +[visit_exp `REF.FUNC`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -75055,163 +61505,109 @@ dims \ = dims \ = [visit_exp `REF.AS_NON_NULL`_instr] [visit_exp ()] -[check_dims] heaptype#1691 ht i#52744 null?#1627 reftype#3969 -dims \ = heaptype#1691, ht, i#52744, null?#1627, reftype#3969 -[visit_exp `REF.TEST`_instr{reftype#3969}(`REF`_reftype{`null?#1627`, heaptype#1691}(?(), ht))] -[visit_exp reftype#3969] -[visit_id reftype#3969] -[visit_exp (`REF`_reftype{`null?#1627`, heaptype#1691}(?(), ht))] -[visit_exp `REF`_reftype{`null?#1627`, heaptype#1691}(?(), ht)] -[visit_exp `null?#1627`] -[visit_id null?#1627] -[visit_exp heaptype#1691] -[visit_id heaptype#1691] +[check_dims] ht +dims \ = ht +[visit_exp `REF.TEST`_instr(`REF`_reftype(?(), ht))] +[visit_exp (`REF`_reftype(?(), ht))] +[visit_exp `REF`_reftype(?(), ht)] [visit_exp (?(), ht)] [visit_exp ?()] [visit_exp ht] [visit_id ht] -[visit_exp `%`_u32{i#52744}(20)] -[visit_exp i#52744] -[visit_id i#52744] +[visit_exp `%`_u32(20)] [visit_exp (20)] [visit_exp 20] [visit_exp ht] [visit_id ht] not free -[check_dims] heaptype#1703 ht i#52769 null?#1639 reftype#3971 -dims \ = heaptype#1703, ht, i#52769, null?#1639, reftype#3971 -[visit_exp `REF.TEST`_instr{reftype#3971}(`REF`_reftype{`null?#1639`, heaptype#1703}(?(`NULL`_null), ht))] -[visit_exp reftype#3971] -[visit_id reftype#3971] -[visit_exp (`REF`_reftype{`null?#1639`, heaptype#1703}(?(`NULL`_null), ht))] -[visit_exp `REF`_reftype{`null?#1639`, heaptype#1703}(?(`NULL`_null), ht)] -[visit_exp `null?#1639`] -[visit_id null?#1639] -[visit_exp heaptype#1703] -[visit_id heaptype#1703] +[check_dims] ht +dims \ = ht +[visit_exp `REF.TEST`_instr(`REF`_reftype(?(`NULL`_null), ht))] +[visit_exp (`REF`_reftype(?(`NULL`_null), ht))] +[visit_exp `REF`_reftype(?(`NULL`_null), ht)] [visit_exp (?(`NULL`_null), ht)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] [visit_exp ht] [visit_id ht] -[visit_exp `%`_u32{i#52769}(21)] -[visit_exp i#52769] -[visit_id i#52769] +[visit_exp `%`_u32(21)] [visit_exp (21)] [visit_exp 21] [visit_exp ht] [visit_id ht] not free -[check_dims] heaptype#1715 ht i#52794 null?#1651 reftype#3973 -dims \ = heaptype#1715, ht, i#52794, null?#1651, reftype#3973 -[visit_exp `REF.CAST`_instr{reftype#3973}(`REF`_reftype{`null?#1651`, heaptype#1715}(?(), ht))] -[visit_exp reftype#3973] -[visit_id reftype#3973] -[visit_exp (`REF`_reftype{`null?#1651`, heaptype#1715}(?(), ht))] -[visit_exp `REF`_reftype{`null?#1651`, heaptype#1715}(?(), ht)] -[visit_exp `null?#1651`] -[visit_id null?#1651] -[visit_exp heaptype#1715] -[visit_id heaptype#1715] +[check_dims] ht +dims \ = ht +[visit_exp `REF.CAST`_instr(`REF`_reftype(?(), ht))] +[visit_exp (`REF`_reftype(?(), ht))] +[visit_exp `REF`_reftype(?(), ht)] [visit_exp (?(), ht)] [visit_exp ?()] [visit_exp ht] [visit_id ht] -[visit_exp `%`_u32{i#52794}(22)] -[visit_exp i#52794] -[visit_id i#52794] +[visit_exp `%`_u32(22)] [visit_exp (22)] [visit_exp 22] [visit_exp ht] [visit_id ht] not free -[check_dims] heaptype#1727 ht i#52819 null?#1663 reftype#3975 -dims \ = heaptype#1727, ht, i#52819, null?#1663, reftype#3975 -[visit_exp `REF.CAST`_instr{reftype#3975}(`REF`_reftype{`null?#1663`, heaptype#1727}(?(`NULL`_null), ht))] -[visit_exp reftype#3975] -[visit_id reftype#3975] -[visit_exp (`REF`_reftype{`null?#1663`, heaptype#1727}(?(`NULL`_null), ht))] -[visit_exp `REF`_reftype{`null?#1663`, heaptype#1727}(?(`NULL`_null), ht)] -[visit_exp `null?#1663`] -[visit_id null?#1663] -[visit_exp heaptype#1727] -[visit_id heaptype#1727] +[check_dims] ht +dims \ = ht +[visit_exp `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), ht))] +[visit_exp (`REF`_reftype(?(`NULL`_null), ht))] +[visit_exp `REF`_reftype(?(`NULL`_null), ht)] [visit_exp (?(`NULL`_null), ht)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] [visit_exp ()] [visit_exp ht] [visit_id ht] -[visit_exp `%`_u32{i#52819}(23)] -[visit_exp i#52819] -[visit_id i#52819] +[visit_exp `%`_u32(23)] [visit_exp (23)] [visit_exp 23] [visit_exp ht] [visit_id ht] not free ps' = [check_dims] -[check_dims] i#52844 typeidx#1944 x -dims \ = i#52844, typeidx#1944, x -[visit_exp `STRUCT.NEW`_instr{typeidx#1944}(x)] -[visit_exp typeidx#1944] -[visit_id typeidx#1944] +[check_dims] x +dims \ = x +[visit_exp `STRUCT.NEW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#52844}(0)] -[visit_exp i#52844] -[visit_id i#52844] +[visit_exp `%`_u32(0)] [visit_exp (0)] [visit_exp 0] [visit_exp x] [visit_id x] not free -[check_dims] i#52900 typeidx#1946 x -dims \ = i#52900, typeidx#1946, x -[visit_exp `STRUCT.NEW_DEFAULT`_instr{typeidx#1946}(x)] -[visit_exp typeidx#1946] -[visit_id typeidx#1946] +[check_dims] x +dims \ = x +[visit_exp `STRUCT.NEW_DEFAULT`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#52900}(1)] -[visit_exp i#52900] -[visit_id i#52900] +[visit_exp `%`_u32(1)] [visit_exp (1)] [visit_exp 1] [visit_exp x] [visit_id x] not free -[check_dims] i i#52956 sx?#31 typeidx#1948 u32#37 x -dims \ = i, i#52956, sx?#31, typeidx#1948, u32#37, x -[visit_exp `STRUCT.GET`_instr{`sx?#31`, typeidx#1948, u32#37}(?(), x, i)] -[visit_exp `sx?#31`] -[visit_id sx?#31] -[visit_exp typeidx#1948] -[visit_id typeidx#1948] -[visit_exp u32#37] -[visit_id u32#37] +[check_dims] i x +dims \ = i, x +[visit_exp `STRUCT.GET`_instr(?(), x, i)] [visit_exp (?(), x, i)] [visit_exp ?()] [visit_exp x] [visit_id x] [visit_exp i] [visit_id i] -[visit_exp `%`_u32{i#52956}(2)] -[visit_exp i#52956] -[visit_id i#52956] +[visit_exp `%`_u32(2)] [visit_exp (2)] [visit_exp 2] [visit_exp x] [visit_id x] not free [visit_exp i] [visit_id i] not free -[check_dims] i i#53041 sx?#33 typeidx#1950 u32#39 x -dims \ = i, i#53041, sx?#33, typeidx#1950, u32#39, x -[visit_exp `STRUCT.GET`_instr{`sx?#33`, typeidx#1950, u32#39}(?(`S`_sx), x, i)] -[visit_exp `sx?#33`] -[visit_id sx?#33] -[visit_exp typeidx#1950] -[visit_id typeidx#1950] -[visit_exp u32#39] -[visit_id u32#39] +[check_dims] i x +dims \ = i, x +[visit_exp `STRUCT.GET`_instr(?(`S`_sx), x, i)] [visit_exp (?(`S`_sx), x, i)] [visit_exp ?(`S`_sx)] [visit_exp `S`_sx] @@ -75220,24 +61616,16 @@ dims \ = i, i#53041, sx?#33, typeidx#1950, u32#39, x [visit_id x] [visit_exp i] [visit_id i] -[visit_exp `%`_u32{i#53041}(3)] -[visit_exp i#53041] -[visit_id i#53041] +[visit_exp `%`_u32(3)] [visit_exp (3)] [visit_exp 3] [visit_exp x] [visit_id x] not free [visit_exp i] [visit_id i] not free -[check_dims] i i#53148 sx?#35 typeidx#1952 u32#41 x -dims \ = i, i#53148, sx?#35, typeidx#1952, u32#41, x -[visit_exp `STRUCT.GET`_instr{`sx?#35`, typeidx#1952, u32#41}(?(`U`_sx), x, i)] -[visit_exp `sx?#35`] -[visit_id sx?#35] -[visit_exp typeidx#1952] -[visit_id typeidx#1952] -[visit_exp u32#41] -[visit_id u32#41] +[check_dims] i x +dims \ = i, x +[visit_exp `STRUCT.GET`_instr(?(`U`_sx), x, i)] [visit_exp (?(`U`_sx), x, i)] [visit_exp ?(`U`_sx)] [visit_exp `U`_sx] @@ -75246,30 +61634,22 @@ dims \ = i, i#53148, sx?#35, typeidx#1952, u32#41, x [visit_id x] [visit_exp i] [visit_id i] -[visit_exp `%`_u32{i#53148}(4)] -[visit_exp i#53148] -[visit_id i#53148] +[visit_exp `%`_u32(4)] [visit_exp (4)] [visit_exp 4] [visit_exp x] [visit_id x] not free [visit_exp i] [visit_id i] not free -[check_dims] i i#53255 typeidx#1954 u32#43 x -dims \ = i, i#53255, typeidx#1954, u32#43, x -[visit_exp `STRUCT.SET`_instr{typeidx#1954, u32#43}(x, i)] -[visit_exp typeidx#1954] -[visit_id typeidx#1954] -[visit_exp u32#43] -[visit_id u32#43] +[check_dims] i x +dims \ = i, x +[visit_exp `STRUCT.SET`_instr(x, i)] [visit_exp (x, i)] [visit_exp x] [visit_id x] [visit_exp i] [visit_id i] -[visit_exp `%`_u32{i#53255}(5)] -[visit_exp i#53255] -[visit_id i#53255] +[visit_exp `%`_u32(5)] [visit_exp (5)] [visit_exp 5] [visit_exp x] @@ -75278,259 +61658,185 @@ dims \ = i, i#53255, typeidx#1954, u32#43, x [visit_id i] not free ps' = [check_dims] -[check_dims] i#53340 typeidx#1956 x -dims \ = i#53340, typeidx#1956, x -[visit_exp `ARRAY.NEW`_instr{typeidx#1956}(x)] -[visit_exp typeidx#1956] -[visit_id typeidx#1956] +[check_dims] x +dims \ = x +[visit_exp `ARRAY.NEW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#53340}(6)] -[visit_exp i#53340] -[visit_id i#53340] +[visit_exp `%`_u32(6)] [visit_exp (6)] [visit_exp 6] [visit_exp x] [visit_id x] not free -[check_dims] i#53396 typeidx#1958 x -dims \ = i#53396, typeidx#1958, x -[visit_exp `ARRAY.NEW_DEFAULT`_instr{typeidx#1958}(x)] -[visit_exp typeidx#1958] -[visit_id typeidx#1958] +[check_dims] x +dims \ = x +[visit_exp `ARRAY.NEW_DEFAULT`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#53396}(7)] -[visit_exp i#53396] -[visit_id i#53396] +[visit_exp `%`_u32(7)] [visit_exp (7)] [visit_exp 7] [visit_exp x] [visit_id x] not free -[check_dims] i#53452 i#53496 i#53536 n typeidx#1960 u32#45 x -dims \ = i#53452, i#53496, i#53536, n, typeidx#1960, u32#45, x -[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#1960, u32#45}(x, `%`_u32{i#53536}(n))] -[visit_exp typeidx#1960] -[visit_id typeidx#1960] -[visit_exp u32#45] -[visit_id u32#45] -[visit_exp (x, `%`_u32{i#53536}(n))] +[check_dims] n x +dims \ = n, x +[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] +[visit_exp (x, `%`_u32(n))] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#53536}(n)] -[visit_exp i#53536] -[visit_id i#53536] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `%`_u32{i#53452}(8)] -[visit_exp i#53452] -[visit_id i#53452] +[visit_exp `%`_u32(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x] [visit_id x] not free -[visit_exp `%`_u32{i#53496}(n)] -[visit_exp i#53496] -[visit_id i#53496] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[check_dims] dataidx#51 i#53559 typeidx#1962 x y -dims \ = dataidx#51, i#53559, typeidx#1962, x, y -[visit_exp `ARRAY.NEW_DATA`_instr{typeidx#1962, dataidx#51}(x, y)] -[visit_exp typeidx#1962] -[visit_id typeidx#1962] -[visit_exp dataidx#51] -[visit_id dataidx#51] +[check_dims] x y +dims \ = x, y +[visit_exp `ARRAY.NEW_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp `%`_u32{i#53559}(9)] -[visit_exp i#53559] -[visit_id i#53559] +[visit_exp `%`_u32(9)] [visit_exp (9)] [visit_exp 9] [visit_exp x] [visit_id x] not free [visit_exp y] [visit_id y] not free -[check_dims] elemidx#53 i#53646 typeidx#1964 x y -dims \ = elemidx#53, i#53646, typeidx#1964, x, y -[visit_exp `ARRAY.NEW_ELEM`_instr{typeidx#1964, elemidx#53}(x, y)] -[visit_exp typeidx#1964] -[visit_id typeidx#1964] -[visit_exp elemidx#53] -[visit_id elemidx#53] +[check_dims] x y +dims \ = x, y +[visit_exp `ARRAY.NEW_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp `%`_u32{i#53646}(10)] -[visit_exp i#53646] -[visit_id i#53646] +[visit_exp `%`_u32(10)] [visit_exp (10)] [visit_exp 10] [visit_exp x] [visit_id x] not free [visit_exp y] [visit_id y] not free -[check_dims] i#53733 sx?#37 typeidx#1966 x -dims \ = i#53733, sx?#37, typeidx#1966, x -[visit_exp `ARRAY.GET`_instr{`sx?#37`, typeidx#1966}(?(), x)] -[visit_exp `sx?#37`] -[visit_id sx?#37] -[visit_exp typeidx#1966] -[visit_id typeidx#1966] +[check_dims] x +dims \ = x +[visit_exp `ARRAY.GET`_instr(?(), x)] [visit_exp (?(), x)] [visit_exp ?()] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#53733}(11)] -[visit_exp i#53733] -[visit_id i#53733] +[visit_exp `%`_u32(11)] [visit_exp (11)] [visit_exp 11] [visit_exp x] [visit_id x] not free -[check_dims] i#53789 sx?#39 typeidx#1968 x -dims \ = i#53789, sx?#39, typeidx#1968, x -[visit_exp `ARRAY.GET`_instr{`sx?#39`, typeidx#1968}(?(`S`_sx), x)] -[visit_exp `sx?#39`] -[visit_id sx?#39] -[visit_exp typeidx#1968] -[visit_id typeidx#1968] +[check_dims] x +dims \ = x +[visit_exp `ARRAY.GET`_instr(?(`S`_sx), x)] [visit_exp (?(`S`_sx), x)] [visit_exp ?(`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#53789}(12)] -[visit_exp i#53789] -[visit_id i#53789] +[visit_exp `%`_u32(12)] [visit_exp (12)] [visit_exp 12] [visit_exp x] [visit_id x] not free -[check_dims] i#53889 sx?#41 typeidx#1970 x -dims \ = i#53889, sx?#41, typeidx#1970, x -[visit_exp `ARRAY.GET`_instr{`sx?#41`, typeidx#1970}(?(`U`_sx), x)] -[visit_exp `sx?#41`] -[visit_id sx?#41] -[visit_exp typeidx#1970] -[visit_id typeidx#1970] +[check_dims] x +dims \ = x +[visit_exp `ARRAY.GET`_instr(?(`U`_sx), x)] [visit_exp (?(`U`_sx), x)] [visit_exp ?(`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#53889}(13)] -[visit_exp i#53889] -[visit_id i#53889] +[visit_exp `%`_u32(13)] [visit_exp (13)] [visit_exp 13] [visit_exp x] [visit_id x] not free -[check_dims] i#53989 typeidx#1972 x -dims \ = i#53989, typeidx#1972, x -[visit_exp `ARRAY.SET`_instr{typeidx#1972}(x)] -[visit_exp typeidx#1972] -[visit_id typeidx#1972] +[check_dims] x +dims \ = x +[visit_exp `ARRAY.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#53989}(14)] -[visit_exp i#53989] -[visit_id i#53989] +[visit_exp `%`_u32(14)] [visit_exp (14)] [visit_exp 14] [visit_exp x] [visit_id x] not free -[check_dims] i#54045 -dims \ = i#54045 +[check_dims] +dims \ = [visit_exp `ARRAY.LEN`_instr] [visit_exp ()] -[visit_exp `%`_u32{i#54045}(15)] -[visit_exp i#54045] -[visit_id i#54045] +[visit_exp `%`_u32(15)] [visit_exp (15)] [visit_exp 15] -[check_dims] i#54070 typeidx#1974 x -dims \ = i#54070, typeidx#1974, x -[visit_exp `ARRAY.FILL`_instr{typeidx#1974}(x)] -[visit_exp typeidx#1974] -[visit_id typeidx#1974] +[check_dims] x +dims \ = x +[visit_exp `ARRAY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#54070}(16)] -[visit_exp i#54070] -[visit_id i#54070] +[visit_exp `%`_u32(16)] [visit_exp (16)] [visit_exp 16] [visit_exp x] [visit_id x] not free -[check_dims] i#54126 typeidx#1976 x_1 x_2 -dims \ = i#54126, typeidx#1976, x_1, x_2 -[visit_exp `ARRAY.COPY`_instr{typeidx#1976}(x_1, x_2)] -[visit_exp typeidx#1976] -[visit_id typeidx#1976] +[check_dims] x_1 x_2 +dims \ = x_1, x_2 +[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] [visit_exp x_2] [visit_id x_2] -[visit_exp `%`_u32{i#54126}(17)] -[visit_exp i#54126] -[visit_id i#54126] +[visit_exp `%`_u32(17)] [visit_exp (17)] [visit_exp 17] [visit_exp x_1] [visit_id x_1] not free [visit_exp x_2] [visit_id x_2] not free -[check_dims] dataidx#53 i#54213 typeidx#1979 x y -dims \ = dataidx#53, i#54213, typeidx#1979, x, y -[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#1979, dataidx#53}(x, y)] -[visit_exp typeidx#1979] -[visit_id typeidx#1979] -[visit_exp dataidx#53] -[visit_id dataidx#53] +[check_dims] x y +dims \ = x, y +[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp `%`_u32{i#54213}(18)] -[visit_exp i#54213] -[visit_id i#54213] +[visit_exp `%`_u32(18)] [visit_exp (18)] [visit_exp 18] [visit_exp x] [visit_id x] not free [visit_exp y] [visit_id y] not free -[check_dims] elemidx#55 i#54300 typeidx#1981 x y -dims \ = elemidx#55, i#54300, typeidx#1981, x, y -[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#1981, elemidx#55}(x, y)] -[visit_exp typeidx#1981] -[visit_id typeidx#1981] -[visit_exp elemidx#55] -[visit_id elemidx#55] +[check_dims] x y +dims \ = x, y +[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] [visit_exp y] [visit_id y] -[visit_exp `%`_u32{i#54300}(19)] -[visit_exp i#54300] -[visit_id i#54300] +[visit_exp `%`_u32(19)] [visit_exp (19)] [visit_exp 19] [visit_exp x] @@ -75539,108 +61845,80 @@ dims \ = elemidx#55, i#54300, typeidx#1981, x, y [visit_id y] not free ps' = [check_dims] -[check_dims] i#54387 -dims \ = i#54387 +[check_dims] +dims \ = [visit_exp `ANY.CONVERT_EXTERN`_instr] [visit_exp ()] -[visit_exp `%`_u32{i#54387}(26)] -[visit_exp i#54387] -[visit_id i#54387] +[visit_exp `%`_u32(26)] [visit_exp (26)] [visit_exp 26] -[check_dims] i#54412 -dims \ = i#54412 +[check_dims] +dims \ = [visit_exp `EXTERN.CONVERT_ANY`_instr] [visit_exp ()] -[visit_exp `%`_u32{i#54412}(27)] -[visit_exp i#54412] -[visit_id i#54412] +[visit_exp `%`_u32(27)] [visit_exp (27)] [visit_exp 27] ps' = [check_dims] -[check_dims] i#54437 -dims \ = i#54437 +[check_dims] +dims \ = [visit_exp `REF.I31`_instr] [visit_exp ()] -[visit_exp `%`_u32{i#54437}(28)] -[visit_exp i#54437] -[visit_id i#54437] +[visit_exp `%`_u32(28)] [visit_exp (28)] [visit_exp 28] -[check_dims] i#54462 sx#590 -dims \ = i#54462, sx#590 -[visit_exp `I31.GET`_instr{sx#590}(`S`_sx)] -[visit_exp sx#590] -[visit_id sx#590] +[check_dims] +dims \ = +[visit_exp `I31.GET`_instr(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#54462}(29)] -[visit_exp i#54462] -[visit_id i#54462] +[visit_exp `%`_u32(29)] [visit_exp (29)] [visit_exp 29] -[check_dims] i#54487 sx#592 -dims \ = i#54487, sx#592 -[visit_exp `I31.GET`_instr{sx#592}(`U`_sx)] -[visit_exp sx#592] -[visit_id sx#592] +[check_dims] +dims \ = +[visit_exp `I31.GET`_instr(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#54487}(30)] -[visit_exp i#54487] -[visit_id i#54487] +[visit_exp `%`_u32(30)] [visit_exp (30)] [visit_exp 30] ps' = [check_dims] -[check_dims] i#54514 i#54540 n numtype#654 -dims \ = i#54514, i#54540, n, numtype#654 -[visit_exp `CONST`_instr{numtype#654}(`I32`_numtype, `%`_num_{i#54540}(n))] -[visit_exp numtype#654] -[visit_id numtype#654] -[visit_exp (`I32`_numtype, `%`_num_{i#54540}(n))] +[check_dims] n +dims \ = n +[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] +[visit_exp (`I32`_numtype, `%`_num_(n))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#54540}(n)] -[visit_exp i#54540] -[visit_id i#54540] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `%`_u32{i#54514}(n)] -[visit_exp i#54514] -[visit_id i#54514] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[check_dims] i#54565 i#54591 n numtype#656 -dims \ = i#54565, i#54591, n, numtype#656 -[visit_exp `CONST`_instr{numtype#656}(`I64`_numtype, `%`_num_{i#54591}(n))] -[visit_exp numtype#656] -[visit_id numtype#656] -[visit_exp (`I64`_numtype, `%`_num_{i#54591}(n))] +[check_dims] n +dims \ = n +[visit_exp `CONST`_instr(`I64`_numtype, `%`_num_(n))] +[visit_exp (`I64`_numtype, `%`_num_(n))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `%`_num_{i#54591}(n)] -[visit_exp i#54591] -[visit_id i#54591] +[visit_exp `%`_num_(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `%`_u64{i#54565}(n)] -[visit_exp i#54565] -[visit_id i#54565] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[check_dims] numtype#658 p -dims \ = numtype#658, p -[visit_exp `CONST`_instr{numtype#658}(`F32`_numtype, p)] -[visit_exp numtype#658] -[visit_id numtype#658] +[check_dims] p +dims \ = p +[visit_exp `CONST`_instr(`F32`_numtype, p)] [visit_exp (`F32`_numtype, p)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -75648,11 +61926,9 @@ dims \ = numtype#658, p [visit_id p] [visit_exp p] [visit_id p] not free -[check_dims] numtype#660 p -dims \ = numtype#660, p -[visit_exp `CONST`_instr{numtype#660}(`F64`_numtype, p)] -[visit_exp numtype#660] -[visit_id numtype#660] +[check_dims] p +dims \ = p +[visit_exp `CONST`_instr(`F64`_numtype, p)] [visit_exp (`F64`_numtype, p)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -75662,11 +61938,9 @@ dims \ = numtype#660, p [visit_id p] not free ps' = [check_dims] -[check_dims] numtype#662 -dims \ = numtype#662 -[visit_exp `TESTOP`_instr{numtype#662}(`I32`_numtype, `EQZ`_testop_)] -[visit_exp numtype#662] -[visit_id numtype#662] +[check_dims] +dims \ = +[visit_exp `TESTOP`_instr(`I32`_numtype, `EQZ`_testop_)] [visit_exp (`I32`_numtype, `EQZ`_testop_)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -75674,145 +61948,107 @@ dims \ = numtype#662 [visit_exp ()] ps' = [check_dims] -[check_dims] numtype#664 -dims \ = numtype#664 -[visit_exp `RELOP`_instr{numtype#664}(`I32`_numtype, `EQ`_relop_)] -[visit_exp numtype#664] -[visit_id numtype#664] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I32`_numtype, `EQ`_relop_)] [visit_exp (`I32`_numtype, `EQ`_relop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `EQ`_relop_] [visit_exp ()] -[check_dims] numtype#666 -dims \ = numtype#666 -[visit_exp `RELOP`_instr{numtype#666}(`I32`_numtype, `NE`_relop_)] -[visit_exp numtype#666] -[visit_id numtype#666] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I32`_numtype, `NE`_relop_)] [visit_exp (`I32`_numtype, `NE`_relop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `NE`_relop_] [visit_exp ()] -[check_dims] numtype#668 sx#836 -dims \ = numtype#668, sx#836 -[visit_exp `RELOP`_instr{numtype#668}(`I32`_numtype, `LT`_relop_{sx#836}(`S`_sx))] -[visit_exp numtype#668] -[visit_id numtype#668] -[visit_exp (`I32`_numtype, `LT`_relop_{sx#836}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I32`_numtype, `LT`_relop_(`S`_sx))] +[visit_exp (`I32`_numtype, `LT`_relop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `LT`_relop_{sx#836}(`S`_sx)] -[visit_exp sx#836] -[visit_id sx#836] +[visit_exp `LT`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#670 sx#960 -dims \ = numtype#670, sx#960 -[visit_exp `RELOP`_instr{numtype#670}(`I32`_numtype, `LT`_relop_{sx#960}(`U`_sx))] -[visit_exp numtype#670] -[visit_id numtype#670] -[visit_exp (`I32`_numtype, `LT`_relop_{sx#960}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I32`_numtype, `LT`_relop_(`U`_sx))] +[visit_exp (`I32`_numtype, `LT`_relop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `LT`_relop_{sx#960}(`U`_sx)] -[visit_exp sx#960] -[visit_id sx#960] +[visit_exp `LT`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype#672 sx#1084 -dims \ = numtype#672, sx#1084 -[visit_exp `RELOP`_instr{numtype#672}(`I32`_numtype, `GT`_relop_{sx#1084}(`S`_sx))] -[visit_exp numtype#672] -[visit_id numtype#672] -[visit_exp (`I32`_numtype, `GT`_relop_{sx#1084}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I32`_numtype, `GT`_relop_(`S`_sx))] +[visit_exp (`I32`_numtype, `GT`_relop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `GT`_relop_{sx#1084}(`S`_sx)] -[visit_exp sx#1084] -[visit_id sx#1084] +[visit_exp `GT`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#674 sx#1208 -dims \ = numtype#674, sx#1208 -[visit_exp `RELOP`_instr{numtype#674}(`I32`_numtype, `GT`_relop_{sx#1208}(`U`_sx))] -[visit_exp numtype#674] -[visit_id numtype#674] -[visit_exp (`I32`_numtype, `GT`_relop_{sx#1208}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I32`_numtype, `GT`_relop_(`U`_sx))] +[visit_exp (`I32`_numtype, `GT`_relop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `GT`_relop_{sx#1208}(`U`_sx)] -[visit_exp sx#1208] -[visit_id sx#1208] +[visit_exp `GT`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype#676 sx#1332 -dims \ = numtype#676, sx#1332 -[visit_exp `RELOP`_instr{numtype#676}(`I32`_numtype, `LE`_relop_{sx#1332}(`S`_sx))] -[visit_exp numtype#676] -[visit_id numtype#676] -[visit_exp (`I32`_numtype, `LE`_relop_{sx#1332}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I32`_numtype, `LE`_relop_(`S`_sx))] +[visit_exp (`I32`_numtype, `LE`_relop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `LE`_relop_{sx#1332}(`S`_sx)] -[visit_exp sx#1332] -[visit_id sx#1332] +[visit_exp `LE`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#678 sx#1456 -dims \ = numtype#678, sx#1456 -[visit_exp `RELOP`_instr{numtype#678}(`I32`_numtype, `LE`_relop_{sx#1456}(`U`_sx))] -[visit_exp numtype#678] -[visit_id numtype#678] -[visit_exp (`I32`_numtype, `LE`_relop_{sx#1456}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I32`_numtype, `LE`_relop_(`U`_sx))] +[visit_exp (`I32`_numtype, `LE`_relop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `LE`_relop_{sx#1456}(`U`_sx)] -[visit_exp sx#1456] -[visit_id sx#1456] +[visit_exp `LE`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype#680 sx#1580 -dims \ = numtype#680, sx#1580 -[visit_exp `RELOP`_instr{numtype#680}(`I32`_numtype, `GE`_relop_{sx#1580}(`S`_sx))] -[visit_exp numtype#680] -[visit_id numtype#680] -[visit_exp (`I32`_numtype, `GE`_relop_{sx#1580}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I32`_numtype, `GE`_relop_(`S`_sx))] +[visit_exp (`I32`_numtype, `GE`_relop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `GE`_relop_{sx#1580}(`S`_sx)] -[visit_exp sx#1580] -[visit_id sx#1580] +[visit_exp `GE`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#682 sx#1704 -dims \ = numtype#682, sx#1704 -[visit_exp `RELOP`_instr{numtype#682}(`I32`_numtype, `GE`_relop_{sx#1704}(`U`_sx))] -[visit_exp numtype#682] -[visit_id numtype#682] -[visit_exp (`I32`_numtype, `GE`_relop_{sx#1704}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I32`_numtype, `GE`_relop_(`U`_sx))] +[visit_exp (`I32`_numtype, `GE`_relop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `GE`_relop_{sx#1704}(`U`_sx)] -[visit_exp sx#1704] -[visit_id sx#1704] +[visit_exp `GE`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] ps' = [check_dims] -[check_dims] numtype#684 -dims \ = numtype#684 -[visit_exp `TESTOP`_instr{numtype#684}(`I64`_numtype, `EQZ`_testop_)] -[visit_exp numtype#684] -[visit_id numtype#684] +[check_dims] +dims \ = +[visit_exp `TESTOP`_instr(`I64`_numtype, `EQZ`_testop_)] [visit_exp (`I64`_numtype, `EQZ`_testop_)] [visit_exp `I64`_numtype] [visit_exp ()] @@ -75820,195 +62056,147 @@ dims \ = numtype#684 [visit_exp ()] ps' = [check_dims] -[check_dims] numtype#686 -dims \ = numtype#686 -[visit_exp `RELOP`_instr{numtype#686}(`I64`_numtype, `EQ`_relop_)] -[visit_exp numtype#686] -[visit_id numtype#686] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I64`_numtype, `EQ`_relop_)] [visit_exp (`I64`_numtype, `EQ`_relop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `EQ`_relop_] [visit_exp ()] -[check_dims] numtype#688 -dims \ = numtype#688 -[visit_exp `RELOP`_instr{numtype#688}(`I64`_numtype, `NE`_relop_)] -[visit_exp numtype#688] -[visit_id numtype#688] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I64`_numtype, `NE`_relop_)] [visit_exp (`I64`_numtype, `NE`_relop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `NE`_relop_] [visit_exp ()] -[check_dims] numtype#690 sx#1948 -dims \ = numtype#690, sx#1948 -[visit_exp `RELOP`_instr{numtype#690}(`I64`_numtype, `LT`_relop_{sx#1948}(`S`_sx))] -[visit_exp numtype#690] -[visit_id numtype#690] -[visit_exp (`I64`_numtype, `LT`_relop_{sx#1948}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I64`_numtype, `LT`_relop_(`S`_sx))] +[visit_exp (`I64`_numtype, `LT`_relop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `LT`_relop_{sx#1948}(`S`_sx)] -[visit_exp sx#1948] -[visit_id sx#1948] +[visit_exp `LT`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#692 sx#2072 -dims \ = numtype#692, sx#2072 -[visit_exp `RELOP`_instr{numtype#692}(`I64`_numtype, `LT`_relop_{sx#2072}(`U`_sx))] -[visit_exp numtype#692] -[visit_id numtype#692] -[visit_exp (`I64`_numtype, `LT`_relop_{sx#2072}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I64`_numtype, `LT`_relop_(`U`_sx))] +[visit_exp (`I64`_numtype, `LT`_relop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `LT`_relop_{sx#2072}(`U`_sx)] -[visit_exp sx#2072] -[visit_id sx#2072] +[visit_exp `LT`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype#694 sx#2196 -dims \ = numtype#694, sx#2196 -[visit_exp `RELOP`_instr{numtype#694}(`I64`_numtype, `GT`_relop_{sx#2196}(`S`_sx))] -[visit_exp numtype#694] -[visit_id numtype#694] -[visit_exp (`I64`_numtype, `GT`_relop_{sx#2196}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I64`_numtype, `GT`_relop_(`S`_sx))] +[visit_exp (`I64`_numtype, `GT`_relop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `GT`_relop_{sx#2196}(`S`_sx)] -[visit_exp sx#2196] -[visit_id sx#2196] +[visit_exp `GT`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#696 sx#2320 -dims \ = numtype#696, sx#2320 -[visit_exp `RELOP`_instr{numtype#696}(`I64`_numtype, `GT`_relop_{sx#2320}(`U`_sx))] -[visit_exp numtype#696] -[visit_id numtype#696] -[visit_exp (`I64`_numtype, `GT`_relop_{sx#2320}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I64`_numtype, `GT`_relop_(`U`_sx))] +[visit_exp (`I64`_numtype, `GT`_relop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `GT`_relop_{sx#2320}(`U`_sx)] -[visit_exp sx#2320] -[visit_id sx#2320] +[visit_exp `GT`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype#698 sx#2444 -dims \ = numtype#698, sx#2444 -[visit_exp `RELOP`_instr{numtype#698}(`I64`_numtype, `LE`_relop_{sx#2444}(`S`_sx))] -[visit_exp numtype#698] -[visit_id numtype#698] -[visit_exp (`I64`_numtype, `LE`_relop_{sx#2444}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I64`_numtype, `LE`_relop_(`S`_sx))] +[visit_exp (`I64`_numtype, `LE`_relop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `LE`_relop_{sx#2444}(`S`_sx)] -[visit_exp sx#2444] -[visit_id sx#2444] +[visit_exp `LE`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#700 sx#2568 -dims \ = numtype#700, sx#2568 -[visit_exp `RELOP`_instr{numtype#700}(`I64`_numtype, `LE`_relop_{sx#2568}(`U`_sx))] -[visit_exp numtype#700] -[visit_id numtype#700] -[visit_exp (`I64`_numtype, `LE`_relop_{sx#2568}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I64`_numtype, `LE`_relop_(`U`_sx))] +[visit_exp (`I64`_numtype, `LE`_relop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `LE`_relop_{sx#2568}(`U`_sx)] -[visit_exp sx#2568] -[visit_id sx#2568] +[visit_exp `LE`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype#702 sx#2692 -dims \ = numtype#702, sx#2692 -[visit_exp `RELOP`_instr{numtype#702}(`I64`_numtype, `GE`_relop_{sx#2692}(`S`_sx))] -[visit_exp numtype#702] -[visit_id numtype#702] -[visit_exp (`I64`_numtype, `GE`_relop_{sx#2692}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I64`_numtype, `GE`_relop_(`S`_sx))] +[visit_exp (`I64`_numtype, `GE`_relop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `GE`_relop_{sx#2692}(`S`_sx)] -[visit_exp sx#2692] -[visit_id sx#2692] +[visit_exp `GE`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#704 sx#2816 -dims \ = numtype#704, sx#2816 -[visit_exp `RELOP`_instr{numtype#704}(`I64`_numtype, `GE`_relop_{sx#2816}(`U`_sx))] -[visit_exp numtype#704] -[visit_id numtype#704] -[visit_exp (`I64`_numtype, `GE`_relop_{sx#2816}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`I64`_numtype, `GE`_relop_(`U`_sx))] +[visit_exp (`I64`_numtype, `GE`_relop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `GE`_relop_{sx#2816}(`U`_sx)] -[visit_exp sx#2816] -[visit_id sx#2816] +[visit_exp `GE`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] ps' = [check_dims] -[check_dims] numtype#706 -dims \ = numtype#706 -[visit_exp `RELOP`_instr{numtype#706}(`F32`_numtype, `EQ`_relop_)] -[visit_exp numtype#706] -[visit_id numtype#706] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`F32`_numtype, `EQ`_relop_)] [visit_exp (`F32`_numtype, `EQ`_relop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `EQ`_relop_] [visit_exp ()] -[check_dims] numtype#708 -dims \ = numtype#708 -[visit_exp `RELOP`_instr{numtype#708}(`F32`_numtype, `NE`_relop_)] -[visit_exp numtype#708] -[visit_id numtype#708] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`F32`_numtype, `NE`_relop_)] [visit_exp (`F32`_numtype, `NE`_relop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `NE`_relop_] [visit_exp ()] -[check_dims] numtype#710 -dims \ = numtype#710 -[visit_exp `RELOP`_instr{numtype#710}(`F32`_numtype, `LT`_relop_)] -[visit_exp numtype#710] -[visit_id numtype#710] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`F32`_numtype, `LT`_relop_)] [visit_exp (`F32`_numtype, `LT`_relop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `LT`_relop_] [visit_exp ()] -[check_dims] numtype#712 -dims \ = numtype#712 -[visit_exp `RELOP`_instr{numtype#712}(`F32`_numtype, `GT`_relop_)] -[visit_exp numtype#712] -[visit_id numtype#712] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`F32`_numtype, `GT`_relop_)] [visit_exp (`F32`_numtype, `GT`_relop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `GT`_relop_] [visit_exp ()] -[check_dims] numtype#714 -dims \ = numtype#714 -[visit_exp `RELOP`_instr{numtype#714}(`F32`_numtype, `LE`_relop_)] -[visit_exp numtype#714] -[visit_id numtype#714] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`F32`_numtype, `LE`_relop_)] [visit_exp (`F32`_numtype, `LE`_relop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `LE`_relop_] [visit_exp ()] -[check_dims] numtype#716 -dims \ = numtype#716 -[visit_exp `RELOP`_instr{numtype#716}(`F32`_numtype, `GE`_relop_)] -[visit_exp numtype#716] -[visit_id numtype#716] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`F32`_numtype, `GE`_relop_)] [visit_exp (`F32`_numtype, `GE`_relop_)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -76016,61 +62204,49 @@ dims \ = numtype#716 [visit_exp ()] ps' = [check_dims] -[check_dims] numtype#718 -dims \ = numtype#718 -[visit_exp `RELOP`_instr{numtype#718}(`F64`_numtype, `EQ`_relop_)] -[visit_exp numtype#718] -[visit_id numtype#718] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`F64`_numtype, `EQ`_relop_)] [visit_exp (`F64`_numtype, `EQ`_relop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `EQ`_relop_] [visit_exp ()] -[check_dims] numtype#720 -dims \ = numtype#720 -[visit_exp `RELOP`_instr{numtype#720}(`F64`_numtype, `NE`_relop_)] -[visit_exp numtype#720] -[visit_id numtype#720] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`F64`_numtype, `NE`_relop_)] [visit_exp (`F64`_numtype, `NE`_relop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `NE`_relop_] [visit_exp ()] -[check_dims] numtype#722 -dims \ = numtype#722 -[visit_exp `RELOP`_instr{numtype#722}(`F64`_numtype, `LT`_relop_)] -[visit_exp numtype#722] -[visit_id numtype#722] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`F64`_numtype, `LT`_relop_)] [visit_exp (`F64`_numtype, `LT`_relop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `LT`_relop_] [visit_exp ()] -[check_dims] numtype#724 -dims \ = numtype#724 -[visit_exp `RELOP`_instr{numtype#724}(`F64`_numtype, `GT`_relop_)] -[visit_exp numtype#724] -[visit_id numtype#724] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`F64`_numtype, `GT`_relop_)] [visit_exp (`F64`_numtype, `GT`_relop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `GT`_relop_] [visit_exp ()] -[check_dims] numtype#726 -dims \ = numtype#726 -[visit_exp `RELOP`_instr{numtype#726}(`F64`_numtype, `LE`_relop_)] -[visit_exp numtype#726] -[visit_id numtype#726] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`F64`_numtype, `LE`_relop_)] [visit_exp (`F64`_numtype, `LE`_relop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `LE`_relop_] [visit_exp ()] -[check_dims] numtype#728 -dims \ = numtype#728 -[visit_exp `RELOP`_instr{numtype#728}(`F64`_numtype, `GE`_relop_)] -[visit_exp numtype#728] -[visit_id numtype#728] +[check_dims] +dims \ = +[visit_exp `RELOP`_instr(`F64`_numtype, `GE`_relop_)] [visit_exp (`F64`_numtype, `GE`_relop_)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -76078,31 +62254,25 @@ dims \ = numtype#728 [visit_exp ()] ps' = [check_dims] -[check_dims] numtype#730 -dims \ = numtype#730 -[visit_exp `UNOP`_instr{numtype#730}(`I32`_numtype, `CLZ`_unop_)] -[visit_exp numtype#730] -[visit_id numtype#730] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`I32`_numtype, `CLZ`_unop_)] [visit_exp (`I32`_numtype, `CLZ`_unop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `CLZ`_unop_] [visit_exp ()] -[check_dims] numtype#732 -dims \ = numtype#732 -[visit_exp `UNOP`_instr{numtype#732}(`I32`_numtype, `CTZ`_unop_)] -[visit_exp numtype#732] -[visit_id numtype#732] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`I32`_numtype, `CTZ`_unop_)] [visit_exp (`I32`_numtype, `CTZ`_unop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `CTZ`_unop_] [visit_exp ()] -[check_dims] numtype#734 -dims \ = numtype#734 -[visit_exp `UNOP`_instr{numtype#734}(`I32`_numtype, `POPCNT`_unop_)] -[visit_exp numtype#734] -[visit_id numtype#734] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`I32`_numtype, `POPCNT`_unop_)] [visit_exp (`I32`_numtype, `POPCNT`_unop_)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -76110,175 +62280,133 @@ dims \ = numtype#734 [visit_exp ()] ps' = [check_dims] -[check_dims] numtype#736 -dims \ = numtype#736 -[visit_exp `BINOP`_instr{numtype#736}(`I32`_numtype, `ADD`_binop_)] -[visit_exp numtype#736] -[visit_id numtype#736] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `ADD`_binop_)] [visit_exp (`I32`_numtype, `ADD`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `ADD`_binop_] [visit_exp ()] -[check_dims] numtype#738 -dims \ = numtype#738 -[visit_exp `BINOP`_instr{numtype#738}(`I32`_numtype, `SUB`_binop_)] -[visit_exp numtype#738] -[visit_id numtype#738] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `SUB`_binop_)] [visit_exp (`I32`_numtype, `SUB`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `SUB`_binop_] [visit_exp ()] -[check_dims] numtype#740 -dims \ = numtype#740 -[visit_exp `BINOP`_instr{numtype#740}(`I32`_numtype, `MUL`_binop_)] -[visit_exp numtype#740] -[visit_id numtype#740] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `MUL`_binop_)] [visit_exp (`I32`_numtype, `MUL`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `MUL`_binop_] [visit_exp ()] -[check_dims] numtype#742 sx#3045 -dims \ = numtype#742, sx#3045 -[visit_exp `BINOP`_instr{numtype#742}(`I32`_numtype, `DIV`_binop_{sx#3045}(`S`_sx))] -[visit_exp numtype#742] -[visit_id numtype#742] -[visit_exp (`I32`_numtype, `DIV`_binop_{sx#3045}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`S`_sx))] +[visit_exp (`I32`_numtype, `DIV`_binop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `DIV`_binop_{sx#3045}(`S`_sx)] -[visit_exp sx#3045] -[visit_id sx#3045] +[visit_exp `DIV`_binop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#744 sx#3139 -dims \ = numtype#744, sx#3139 -[visit_exp `BINOP`_instr{numtype#744}(`I32`_numtype, `DIV`_binop_{sx#3139}(`U`_sx))] -[visit_exp numtype#744] -[visit_id numtype#744] -[visit_exp (`I32`_numtype, `DIV`_binop_{sx#3139}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`U`_sx))] +[visit_exp (`I32`_numtype, `DIV`_binop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `DIV`_binop_{sx#3139}(`U`_sx)] -[visit_exp sx#3139] -[visit_id sx#3139] +[visit_exp `DIV`_binop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype#746 sx#3233 -dims \ = numtype#746, sx#3233 -[visit_exp `BINOP`_instr{numtype#746}(`I32`_numtype, `REM`_binop_{sx#3233}(`S`_sx))] -[visit_exp numtype#746] -[visit_id numtype#746] -[visit_exp (`I32`_numtype, `REM`_binop_{sx#3233}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `REM`_binop_(`S`_sx))] +[visit_exp (`I32`_numtype, `REM`_binop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `REM`_binop_{sx#3233}(`S`_sx)] -[visit_exp sx#3233] -[visit_id sx#3233] +[visit_exp `REM`_binop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#748 sx#3327 -dims \ = numtype#748, sx#3327 -[visit_exp `BINOP`_instr{numtype#748}(`I32`_numtype, `REM`_binop_{sx#3327}(`U`_sx))] -[visit_exp numtype#748] -[visit_id numtype#748] -[visit_exp (`I32`_numtype, `REM`_binop_{sx#3327}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `REM`_binop_(`U`_sx))] +[visit_exp (`I32`_numtype, `REM`_binop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `REM`_binop_{sx#3327}(`U`_sx)] -[visit_exp sx#3327] -[visit_id sx#3327] +[visit_exp `REM`_binop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype#750 -dims \ = numtype#750 -[visit_exp `BINOP`_instr{numtype#750}(`I32`_numtype, `AND`_binop_)] -[visit_exp numtype#750] -[visit_id numtype#750] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `AND`_binop_)] [visit_exp (`I32`_numtype, `AND`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `AND`_binop_] [visit_exp ()] -[check_dims] numtype#752 -dims \ = numtype#752 -[visit_exp `BINOP`_instr{numtype#752}(`I32`_numtype, `OR`_binop_)] -[visit_exp numtype#752] -[visit_id numtype#752] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `OR`_binop_)] [visit_exp (`I32`_numtype, `OR`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `OR`_binop_] [visit_exp ()] -[check_dims] numtype#754 -dims \ = numtype#754 -[visit_exp `BINOP`_instr{numtype#754}(`I32`_numtype, `XOR`_binop_)] -[visit_exp numtype#754] -[visit_id numtype#754] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `XOR`_binop_)] [visit_exp (`I32`_numtype, `XOR`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `XOR`_binop_] [visit_exp ()] -[check_dims] numtype#756 -dims \ = numtype#756 -[visit_exp `BINOP`_instr{numtype#756}(`I32`_numtype, `SHL`_binop_)] -[visit_exp numtype#756] -[visit_id numtype#756] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `SHL`_binop_)] [visit_exp (`I32`_numtype, `SHL`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `SHL`_binop_] [visit_exp ()] -[check_dims] numtype#758 sx#3601 -dims \ = numtype#758, sx#3601 -[visit_exp `BINOP`_instr{numtype#758}(`I32`_numtype, `SHR`_binop_{sx#3601}(`S`_sx))] -[visit_exp numtype#758] -[visit_id numtype#758] -[visit_exp (`I32`_numtype, `SHR`_binop_{sx#3601}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`S`_sx))] +[visit_exp (`I32`_numtype, `SHR`_binop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `SHR`_binop_{sx#3601}(`S`_sx)] -[visit_exp sx#3601] -[visit_id sx#3601] +[visit_exp `SHR`_binop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#760 sx#3695 -dims \ = numtype#760, sx#3695 -[visit_exp `BINOP`_instr{numtype#760}(`I32`_numtype, `SHR`_binop_{sx#3695}(`U`_sx))] -[visit_exp numtype#760] -[visit_id numtype#760] -[visit_exp (`I32`_numtype, `SHR`_binop_{sx#3695}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`U`_sx))] +[visit_exp (`I32`_numtype, `SHR`_binop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `SHR`_binop_{sx#3695}(`U`_sx)] -[visit_exp sx#3695] -[visit_id sx#3695] +[visit_exp `SHR`_binop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype#762 -dims \ = numtype#762 -[visit_exp `BINOP`_instr{numtype#762}(`I32`_numtype, `ROTL`_binop_)] -[visit_exp numtype#762] -[visit_id numtype#762] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `ROTL`_binop_)] [visit_exp (`I32`_numtype, `ROTL`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `ROTL`_binop_] [visit_exp ()] -[check_dims] numtype#764 -dims \ = numtype#764 -[visit_exp `BINOP`_instr{numtype#764}(`I32`_numtype, `ROTR`_binop_)] -[visit_exp numtype#764] -[visit_id numtype#764] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I32`_numtype, `ROTR`_binop_)] [visit_exp (`I32`_numtype, `ROTR`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -76286,31 +62414,25 @@ dims \ = numtype#764 [visit_exp ()] ps' = [check_dims] -[check_dims] numtype#766 -dims \ = numtype#766 -[visit_exp `UNOP`_instr{numtype#766}(`I64`_numtype, `CLZ`_unop_)] -[visit_exp numtype#766] -[visit_id numtype#766] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`I64`_numtype, `CLZ`_unop_)] [visit_exp (`I64`_numtype, `CLZ`_unop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `CLZ`_unop_] [visit_exp ()] -[check_dims] numtype#768 -dims \ = numtype#768 -[visit_exp `UNOP`_instr{numtype#768}(`I64`_numtype, `CTZ`_unop_)] -[visit_exp numtype#768] -[visit_id numtype#768] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`I64`_numtype, `CTZ`_unop_)] [visit_exp (`I64`_numtype, `CTZ`_unop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `CTZ`_unop_] [visit_exp ()] -[check_dims] numtype#770 -dims \ = numtype#770 -[visit_exp `UNOP`_instr{numtype#770}(`I64`_numtype, `POPCNT`_unop_)] -[visit_exp numtype#770] -[visit_id numtype#770] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`I64`_numtype, `POPCNT`_unop_)] [visit_exp (`I64`_numtype, `POPCNT`_unop_)] [visit_exp `I64`_numtype] [visit_exp ()] @@ -76318,274 +62440,192 @@ dims \ = numtype#770 [visit_exp ()] ps' = [check_dims] -[check_dims] i#54600 i#54607 numtype#772 sz#909 -dims \ = i#54600, i#54607, numtype#772, sz#909 -[visit_exp `UNOP`_instr{numtype#772}(`I32`_numtype, `EXTEND`_unop_{sz#909, i#54600}(`%`_sz{i#54607}(8)))] -[visit_exp numtype#772] -[visit_id numtype#772] -[visit_exp (`I32`_numtype, `EXTEND`_unop_{sz#909, i#54600}(`%`_sz{i#54607}(8)))] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(8)))] +[visit_exp (`I32`_numtype, `EXTEND`_unop_(`%`_sz(8)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_unop_{sz#909, i#54600}(`%`_sz{i#54607}(8))] -[visit_exp sz#909] -[visit_id sz#909] -[visit_exp i#54600] -[visit_id i#54600] -[visit_exp (`%`_sz{i#54607}(8))] -[visit_exp `%`_sz{i#54607}(8)] -[visit_exp i#54607] -[visit_id i#54607] +[visit_exp `EXTEND`_unop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] -[check_dims] i#54616 i#54623 numtype#774 sz#943 -dims \ = i#54616, i#54623, numtype#774, sz#943 -[visit_exp `UNOP`_instr{numtype#774}(`I32`_numtype, `EXTEND`_unop_{sz#943, i#54616}(`%`_sz{i#54623}(16)))] -[visit_exp numtype#774] -[visit_id numtype#774] -[visit_exp (`I32`_numtype, `EXTEND`_unop_{sz#943, i#54616}(`%`_sz{i#54623}(16)))] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(16)))] +[visit_exp (`I32`_numtype, `EXTEND`_unop_(`%`_sz(16)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_unop_{sz#943, i#54616}(`%`_sz{i#54623}(16))] -[visit_exp sz#943] -[visit_id sz#943] -[visit_exp i#54616] -[visit_id i#54616] -[visit_exp (`%`_sz{i#54623}(16))] -[visit_exp `%`_sz{i#54623}(16)] -[visit_exp i#54623] -[visit_id i#54623] +[visit_exp `EXTEND`_unop_(`%`_sz(16))] +[visit_exp (`%`_sz(16))] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] ps' = [check_dims] -[check_dims] i#54632 i#54639 numtype#776 sz#977 -dims \ = i#54632, i#54639, numtype#776, sz#977 -[visit_exp `UNOP`_instr{numtype#776}(`I64`_numtype, `EXTEND`_unop_{sz#977, i#54632}(`%`_sz{i#54639}(8)))] -[visit_exp numtype#776] -[visit_id numtype#776] -[visit_exp (`I64`_numtype, `EXTEND`_unop_{sz#977, i#54632}(`%`_sz{i#54639}(8)))] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(8)))] +[visit_exp (`I64`_numtype, `EXTEND`_unop_(`%`_sz(8)))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_unop_{sz#977, i#54632}(`%`_sz{i#54639}(8))] -[visit_exp sz#977] -[visit_id sz#977] -[visit_exp i#54632] -[visit_id i#54632] -[visit_exp (`%`_sz{i#54639}(8))] -[visit_exp `%`_sz{i#54639}(8)] -[visit_exp i#54639] -[visit_id i#54639] +[visit_exp `EXTEND`_unop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] -[check_dims] i#54648 i#54655 numtype#778 sz#1011 -dims \ = i#54648, i#54655, numtype#778, sz#1011 -[visit_exp `UNOP`_instr{numtype#778}(`I64`_numtype, `EXTEND`_unop_{sz#1011, i#54648}(`%`_sz{i#54655}(16)))] -[visit_exp numtype#778] -[visit_id numtype#778] -[visit_exp (`I64`_numtype, `EXTEND`_unop_{sz#1011, i#54648}(`%`_sz{i#54655}(16)))] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(16)))] +[visit_exp (`I64`_numtype, `EXTEND`_unop_(`%`_sz(16)))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_unop_{sz#1011, i#54648}(`%`_sz{i#54655}(16))] -[visit_exp sz#1011] -[visit_id sz#1011] -[visit_exp i#54648] -[visit_id i#54648] -[visit_exp (`%`_sz{i#54655}(16))] -[visit_exp `%`_sz{i#54655}(16)] -[visit_exp i#54655] -[visit_id i#54655] +[visit_exp `EXTEND`_unop_(`%`_sz(16))] +[visit_exp (`%`_sz(16))] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] -[check_dims] i#54664 i#54671 numtype#780 sz#1045 -dims \ = i#54664, i#54671, numtype#780, sz#1045 -[visit_exp `UNOP`_instr{numtype#780}(`I64`_numtype, `EXTEND`_unop_{sz#1045, i#54664}(`%`_sz{i#54671}(32)))] -[visit_exp numtype#780] -[visit_id numtype#780] -[visit_exp (`I64`_numtype, `EXTEND`_unop_{sz#1045, i#54664}(`%`_sz{i#54671}(32)))] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(32)))] +[visit_exp (`I64`_numtype, `EXTEND`_unop_(`%`_sz(32)))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_unop_{sz#1045, i#54664}(`%`_sz{i#54671}(32))] -[visit_exp sz#1045] -[visit_id sz#1045] -[visit_exp i#54664] -[visit_id i#54664] -[visit_exp (`%`_sz{i#54671}(32))] -[visit_exp `%`_sz{i#54671}(32)] -[visit_exp i#54671] -[visit_id i#54671] +[visit_exp `EXTEND`_unop_(`%`_sz(32))] +[visit_exp (`%`_sz(32))] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] ps' = [check_dims] -[check_dims] numtype#782 -dims \ = numtype#782 -[visit_exp `BINOP`_instr{numtype#782}(`I64`_numtype, `ADD`_binop_)] -[visit_exp numtype#782] -[visit_id numtype#782] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `ADD`_binop_)] [visit_exp (`I64`_numtype, `ADD`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `ADD`_binop_] [visit_exp ()] -[check_dims] numtype#784 -dims \ = numtype#784 -[visit_exp `BINOP`_instr{numtype#784}(`I64`_numtype, `SUB`_binop_)] -[visit_exp numtype#784] -[visit_id numtype#784] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `SUB`_binop_)] [visit_exp (`I64`_numtype, `SUB`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `SUB`_binop_] [visit_exp ()] -[check_dims] numtype#786 -dims \ = numtype#786 -[visit_exp `BINOP`_instr{numtype#786}(`I64`_numtype, `MUL`_binop_)] -[visit_exp numtype#786] -[visit_id numtype#786] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `MUL`_binop_)] [visit_exp (`I64`_numtype, `MUL`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `MUL`_binop_] [visit_exp ()] -[check_dims] numtype#788 sx#4014 -dims \ = numtype#788, sx#4014 -[visit_exp `BINOP`_instr{numtype#788}(`I64`_numtype, `DIV`_binop_{sx#4014}(`S`_sx))] -[visit_exp numtype#788] -[visit_id numtype#788] -[visit_exp (`I64`_numtype, `DIV`_binop_{sx#4014}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`S`_sx))] +[visit_exp (`I64`_numtype, `DIV`_binop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `DIV`_binop_{sx#4014}(`S`_sx)] -[visit_exp sx#4014] -[visit_id sx#4014] +[visit_exp `DIV`_binop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#790 sx#4108 -dims \ = numtype#790, sx#4108 -[visit_exp `BINOP`_instr{numtype#790}(`I64`_numtype, `DIV`_binop_{sx#4108}(`U`_sx))] -[visit_exp numtype#790] -[visit_id numtype#790] -[visit_exp (`I64`_numtype, `DIV`_binop_{sx#4108}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`U`_sx))] +[visit_exp (`I64`_numtype, `DIV`_binop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `DIV`_binop_{sx#4108}(`U`_sx)] -[visit_exp sx#4108] -[visit_id sx#4108] +[visit_exp `DIV`_binop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype#792 sx#4202 -dims \ = numtype#792, sx#4202 -[visit_exp `BINOP`_instr{numtype#792}(`I64`_numtype, `REM`_binop_{sx#4202}(`S`_sx))] -[visit_exp numtype#792] -[visit_id numtype#792] -[visit_exp (`I64`_numtype, `REM`_binop_{sx#4202}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `REM`_binop_(`S`_sx))] +[visit_exp (`I64`_numtype, `REM`_binop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `REM`_binop_{sx#4202}(`S`_sx)] -[visit_exp sx#4202] -[visit_id sx#4202] +[visit_exp `REM`_binop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#794 sx#4296 -dims \ = numtype#794, sx#4296 -[visit_exp `BINOP`_instr{numtype#794}(`I64`_numtype, `REM`_binop_{sx#4296}(`U`_sx))] -[visit_exp numtype#794] -[visit_id numtype#794] -[visit_exp (`I64`_numtype, `REM`_binop_{sx#4296}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `REM`_binop_(`U`_sx))] +[visit_exp (`I64`_numtype, `REM`_binop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `REM`_binop_{sx#4296}(`U`_sx)] -[visit_exp sx#4296] -[visit_id sx#4296] +[visit_exp `REM`_binop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype#796 -dims \ = numtype#796 -[visit_exp `BINOP`_instr{numtype#796}(`I64`_numtype, `AND`_binop_)] -[visit_exp numtype#796] -[visit_id numtype#796] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `AND`_binop_)] [visit_exp (`I64`_numtype, `AND`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `AND`_binop_] [visit_exp ()] -[check_dims] numtype#798 -dims \ = numtype#798 -[visit_exp `BINOP`_instr{numtype#798}(`I64`_numtype, `OR`_binop_)] -[visit_exp numtype#798] -[visit_id numtype#798] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `OR`_binop_)] [visit_exp (`I64`_numtype, `OR`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `OR`_binop_] [visit_exp ()] -[check_dims] numtype#800 -dims \ = numtype#800 -[visit_exp `BINOP`_instr{numtype#800}(`I64`_numtype, `XOR`_binop_)] -[visit_exp numtype#800] -[visit_id numtype#800] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `XOR`_binop_)] [visit_exp (`I64`_numtype, `XOR`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `XOR`_binop_] [visit_exp ()] -[check_dims] numtype#802 -dims \ = numtype#802 -[visit_exp `BINOP`_instr{numtype#802}(`I64`_numtype, `SHL`_binop_)] -[visit_exp numtype#802] -[visit_id numtype#802] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `SHL`_binop_)] [visit_exp (`I64`_numtype, `SHL`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `SHL`_binop_] [visit_exp ()] -[check_dims] numtype#804 sx#4570 -dims \ = numtype#804, sx#4570 -[visit_exp `BINOP`_instr{numtype#804}(`I64`_numtype, `SHR`_binop_{sx#4570}(`S`_sx))] -[visit_exp numtype#804] -[visit_id numtype#804] -[visit_exp (`I64`_numtype, `SHR`_binop_{sx#4570}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`S`_sx))] +[visit_exp (`I64`_numtype, `SHR`_binop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `SHR`_binop_{sx#4570}(`S`_sx)] -[visit_exp sx#4570] -[visit_id sx#4570] +[visit_exp `SHR`_binop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype#806 sx#4664 -dims \ = numtype#806, sx#4664 -[visit_exp `BINOP`_instr{numtype#806}(`I64`_numtype, `SHR`_binop_{sx#4664}(`U`_sx))] -[visit_exp numtype#806] -[visit_id numtype#806] -[visit_exp (`I64`_numtype, `SHR`_binop_{sx#4664}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`U`_sx))] +[visit_exp (`I64`_numtype, `SHR`_binop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `SHR`_binop_{sx#4664}(`U`_sx)] -[visit_exp sx#4664] -[visit_id sx#4664] +[visit_exp `SHR`_binop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype#808 -dims \ = numtype#808 -[visit_exp `BINOP`_instr{numtype#808}(`I64`_numtype, `ROTL`_binop_)] -[visit_exp numtype#808] -[visit_id numtype#808] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `ROTL`_binop_)] [visit_exp (`I64`_numtype, `ROTL`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `ROTL`_binop_] [visit_exp ()] -[check_dims] numtype#810 -dims \ = numtype#810 -[visit_exp `BINOP`_instr{numtype#810}(`I64`_numtype, `ROTR`_binop_)] -[visit_exp numtype#810] -[visit_id numtype#810] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`I64`_numtype, `ROTR`_binop_)] [visit_exp (`I64`_numtype, `ROTR`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] @@ -76593,71 +62633,57 @@ dims \ = numtype#810 [visit_exp ()] ps' = [check_dims] -[check_dims] numtype#812 -dims \ = numtype#812 -[visit_exp `UNOP`_instr{numtype#812}(`F32`_numtype, `ABS`_unop_)] -[visit_exp numtype#812] -[visit_id numtype#812] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F32`_numtype, `ABS`_unop_)] [visit_exp (`F32`_numtype, `ABS`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `ABS`_unop_] [visit_exp ()] -[check_dims] numtype#814 -dims \ = numtype#814 -[visit_exp `UNOP`_instr{numtype#814}(`F32`_numtype, `NEG`_unop_)] -[visit_exp numtype#814] -[visit_id numtype#814] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F32`_numtype, `NEG`_unop_)] [visit_exp (`F32`_numtype, `NEG`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `NEG`_unop_] [visit_exp ()] -[check_dims] numtype#816 -dims \ = numtype#816 -[visit_exp `UNOP`_instr{numtype#816}(`F32`_numtype, `CEIL`_unop_)] -[visit_exp numtype#816] -[visit_id numtype#816] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F32`_numtype, `CEIL`_unop_)] [visit_exp (`F32`_numtype, `CEIL`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `CEIL`_unop_] [visit_exp ()] -[check_dims] numtype#818 -dims \ = numtype#818 -[visit_exp `UNOP`_instr{numtype#818}(`F32`_numtype, `FLOOR`_unop_)] -[visit_exp numtype#818] -[visit_id numtype#818] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F32`_numtype, `FLOOR`_unop_)] [visit_exp (`F32`_numtype, `FLOOR`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `FLOOR`_unop_] [visit_exp ()] -[check_dims] numtype#820 -dims \ = numtype#820 -[visit_exp `UNOP`_instr{numtype#820}(`F32`_numtype, `TRUNC`_unop_)] -[visit_exp numtype#820] -[visit_id numtype#820] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F32`_numtype, `TRUNC`_unop_)] [visit_exp (`F32`_numtype, `TRUNC`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `TRUNC`_unop_] [visit_exp ()] -[check_dims] numtype#822 -dims \ = numtype#822 -[visit_exp `UNOP`_instr{numtype#822}(`F32`_numtype, `NEAREST`_unop_)] -[visit_exp numtype#822] -[visit_id numtype#822] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F32`_numtype, `NEAREST`_unop_)] [visit_exp (`F32`_numtype, `NEAREST`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `NEAREST`_unop_] [visit_exp ()] -[check_dims] numtype#824 -dims \ = numtype#824 -[visit_exp `UNOP`_instr{numtype#824}(`F32`_numtype, `SQRT`_unop_)] -[visit_exp numtype#824] -[visit_id numtype#824] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F32`_numtype, `SQRT`_unop_)] [visit_exp (`F32`_numtype, `SQRT`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -76665,71 +62691,57 @@ dims \ = numtype#824 [visit_exp ()] ps' = [check_dims] -[check_dims] numtype#826 -dims \ = numtype#826 -[visit_exp `BINOP`_instr{numtype#826}(`F32`_numtype, `ADD`_binop_)] -[visit_exp numtype#826] -[visit_id numtype#826] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F32`_numtype, `ADD`_binop_)] [visit_exp (`F32`_numtype, `ADD`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `ADD`_binop_] [visit_exp ()] -[check_dims] numtype#828 -dims \ = numtype#828 -[visit_exp `BINOP`_instr{numtype#828}(`F32`_numtype, `SUB`_binop_)] -[visit_exp numtype#828] -[visit_id numtype#828] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F32`_numtype, `SUB`_binop_)] [visit_exp (`F32`_numtype, `SUB`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `SUB`_binop_] [visit_exp ()] -[check_dims] numtype#830 -dims \ = numtype#830 -[visit_exp `BINOP`_instr{numtype#830}(`F32`_numtype, `MUL`_binop_)] -[visit_exp numtype#830] -[visit_id numtype#830] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F32`_numtype, `MUL`_binop_)] [visit_exp (`F32`_numtype, `MUL`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `MUL`_binop_] [visit_exp ()] -[check_dims] numtype#832 -dims \ = numtype#832 -[visit_exp `BINOP`_instr{numtype#832}(`F32`_numtype, `DIV`_binop_)] -[visit_exp numtype#832] -[visit_id numtype#832] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F32`_numtype, `DIV`_binop_)] [visit_exp (`F32`_numtype, `DIV`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `DIV`_binop_] [visit_exp ()] -[check_dims] numtype#834 -dims \ = numtype#834 -[visit_exp `BINOP`_instr{numtype#834}(`F32`_numtype, `MIN`_binop_)] -[visit_exp numtype#834] -[visit_id numtype#834] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F32`_numtype, `MIN`_binop_)] [visit_exp (`F32`_numtype, `MIN`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `MIN`_binop_] [visit_exp ()] -[check_dims] numtype#836 -dims \ = numtype#836 -[visit_exp `BINOP`_instr{numtype#836}(`F32`_numtype, `MAX`_binop_)] -[visit_exp numtype#836] -[visit_id numtype#836] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F32`_numtype, `MAX`_binop_)] [visit_exp (`F32`_numtype, `MAX`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `MAX`_binop_] [visit_exp ()] -[check_dims] numtype#838 -dims \ = numtype#838 -[visit_exp `BINOP`_instr{numtype#838}(`F32`_numtype, `COPYSIGN`_binop_)] -[visit_exp numtype#838] -[visit_id numtype#838] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F32`_numtype, `COPYSIGN`_binop_)] [visit_exp (`F32`_numtype, `COPYSIGN`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -76737,71 +62749,57 @@ dims \ = numtype#838 [visit_exp ()] ps' = [check_dims] -[check_dims] numtype#840 -dims \ = numtype#840 -[visit_exp `UNOP`_instr{numtype#840}(`F64`_numtype, `ABS`_unop_)] -[visit_exp numtype#840] -[visit_id numtype#840] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F64`_numtype, `ABS`_unop_)] [visit_exp (`F64`_numtype, `ABS`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `ABS`_unop_] [visit_exp ()] -[check_dims] numtype#842 -dims \ = numtype#842 -[visit_exp `UNOP`_instr{numtype#842}(`F64`_numtype, `NEG`_unop_)] -[visit_exp numtype#842] -[visit_id numtype#842] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F64`_numtype, `NEG`_unop_)] [visit_exp (`F64`_numtype, `NEG`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `NEG`_unop_] [visit_exp ()] -[check_dims] numtype#844 -dims \ = numtype#844 -[visit_exp `UNOP`_instr{numtype#844}(`F64`_numtype, `CEIL`_unop_)] -[visit_exp numtype#844] -[visit_id numtype#844] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F64`_numtype, `CEIL`_unop_)] [visit_exp (`F64`_numtype, `CEIL`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `CEIL`_unop_] [visit_exp ()] -[check_dims] numtype#846 -dims \ = numtype#846 -[visit_exp `UNOP`_instr{numtype#846}(`F64`_numtype, `FLOOR`_unop_)] -[visit_exp numtype#846] -[visit_id numtype#846] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F64`_numtype, `FLOOR`_unop_)] [visit_exp (`F64`_numtype, `FLOOR`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `FLOOR`_unop_] [visit_exp ()] -[check_dims] numtype#848 -dims \ = numtype#848 -[visit_exp `UNOP`_instr{numtype#848}(`F64`_numtype, `TRUNC`_unop_)] -[visit_exp numtype#848] -[visit_id numtype#848] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F64`_numtype, `TRUNC`_unop_)] [visit_exp (`F64`_numtype, `TRUNC`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `TRUNC`_unop_] [visit_exp ()] -[check_dims] numtype#850 -dims \ = numtype#850 -[visit_exp `UNOP`_instr{numtype#850}(`F64`_numtype, `NEAREST`_unop_)] -[visit_exp numtype#850] -[visit_id numtype#850] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F64`_numtype, `NEAREST`_unop_)] [visit_exp (`F64`_numtype, `NEAREST`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `NEAREST`_unop_] [visit_exp ()] -[check_dims] numtype#852 -dims \ = numtype#852 -[visit_exp `UNOP`_instr{numtype#852}(`F64`_numtype, `SQRT`_unop_)] -[visit_exp numtype#852] -[visit_id numtype#852] +[check_dims] +dims \ = +[visit_exp `UNOP`_instr(`F64`_numtype, `SQRT`_unop_)] [visit_exp (`F64`_numtype, `SQRT`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -76809,71 +62807,57 @@ dims \ = numtype#852 [visit_exp ()] ps' = [check_dims] -[check_dims] numtype#854 -dims \ = numtype#854 -[visit_exp `BINOP`_instr{numtype#854}(`F64`_numtype, `ADD`_binop_)] -[visit_exp numtype#854] -[visit_id numtype#854] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F64`_numtype, `ADD`_binop_)] [visit_exp (`F64`_numtype, `ADD`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `ADD`_binop_] [visit_exp ()] -[check_dims] numtype#856 -dims \ = numtype#856 -[visit_exp `BINOP`_instr{numtype#856}(`F64`_numtype, `SUB`_binop_)] -[visit_exp numtype#856] -[visit_id numtype#856] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F64`_numtype, `SUB`_binop_)] [visit_exp (`F64`_numtype, `SUB`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `SUB`_binop_] [visit_exp ()] -[check_dims] numtype#858 -dims \ = numtype#858 -[visit_exp `BINOP`_instr{numtype#858}(`F64`_numtype, `MUL`_binop_)] -[visit_exp numtype#858] -[visit_id numtype#858] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F64`_numtype, `MUL`_binop_)] [visit_exp (`F64`_numtype, `MUL`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `MUL`_binop_] [visit_exp ()] -[check_dims] numtype#860 -dims \ = numtype#860 -[visit_exp `BINOP`_instr{numtype#860}(`F64`_numtype, `DIV`_binop_)] -[visit_exp numtype#860] -[visit_id numtype#860] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F64`_numtype, `DIV`_binop_)] [visit_exp (`F64`_numtype, `DIV`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `DIV`_binop_] [visit_exp ()] -[check_dims] numtype#862 -dims \ = numtype#862 -[visit_exp `BINOP`_instr{numtype#862}(`F64`_numtype, `MIN`_binop_)] -[visit_exp numtype#862] -[visit_id numtype#862] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F64`_numtype, `MIN`_binop_)] [visit_exp (`F64`_numtype, `MIN`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `MIN`_binop_] [visit_exp ()] -[check_dims] numtype#864 -dims \ = numtype#864 -[visit_exp `BINOP`_instr{numtype#864}(`F64`_numtype, `MAX`_binop_)] -[visit_exp numtype#864] -[visit_id numtype#864] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F64`_numtype, `MAX`_binop_)] [visit_exp (`F64`_numtype, `MAX`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `MAX`_binop_] [visit_exp ()] -[check_dims] numtype#866 -dims \ = numtype#866 -[visit_exp `BINOP`_instr{numtype#866}(`F64`_numtype, `COPYSIGN`_binop_)] -[visit_exp numtype#866] -[visit_id numtype#866] +[check_dims] +dims \ = +[visit_exp `BINOP`_instr(`F64`_numtype, `COPYSIGN`_binop_)] [visit_exp (`F64`_numtype, `COPYSIGN`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -76881,13 +62865,9 @@ dims \ = numtype#866 [visit_exp ()] ps' = [check_dims] -[check_dims] numtype_1#9 numtype_2#9 -dims \ = numtype_1#9, numtype_2#9 -[visit_exp `CVTOP`_instr{numtype_1#9, numtype_2#9}(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] -[visit_exp numtype_1#9] -[visit_id numtype_1#9] -[visit_exp numtype_2#9] -[visit_id numtype_2#9] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] [visit_exp (`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -76895,265 +62875,177 @@ dims \ = numtype_1#9, numtype_2#9 [visit_exp ()] [visit_exp `WRAP`_cvtop__] [visit_exp ()] -[check_dims] numtype_1#11 numtype_2#11 sx#4833 -dims \ = numtype_1#11, numtype_2#11, sx#4833 -[visit_exp `CVTOP`_instr{numtype_1#11, numtype_2#11}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#4833}(`S`_sx))] -[visit_exp numtype_1#11] -[visit_id numtype_1#11] -[visit_exp numtype_2#11] -[visit_id numtype_2#11] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#4833}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#4833}(`S`_sx)] -[visit_exp sx#4833] -[visit_id sx#4833] +[visit_exp `TRUNC`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype_1#13 numtype_2#13 sx#4897 -dims \ = numtype_1#13, numtype_2#13, sx#4897 -[visit_exp `CVTOP`_instr{numtype_1#13, numtype_2#13}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#4897}(`U`_sx))] -[visit_exp numtype_1#13] -[visit_id numtype_1#13] -[visit_exp numtype_2#13] -[visit_id numtype_2#13] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#4897}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#4897}(`U`_sx)] -[visit_exp sx#4897] -[visit_id sx#4897] +[visit_exp `TRUNC`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype_1#15 numtype_2#15 sx#4961 -dims \ = numtype_1#15, numtype_2#15, sx#4961 -[visit_exp `CVTOP`_instr{numtype_1#15, numtype_2#15}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#4961}(`S`_sx))] -[visit_exp numtype_1#15] -[visit_id numtype_1#15] -[visit_exp numtype_2#15] -[visit_id numtype_2#15] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#4961}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#4961}(`S`_sx)] -[visit_exp sx#4961] -[visit_id sx#4961] +[visit_exp `TRUNC`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype_1#17 numtype_2#17 sx#5025 -dims \ = numtype_1#17, numtype_2#17, sx#5025 -[visit_exp `CVTOP`_instr{numtype_1#17, numtype_2#17}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5025}(`U`_sx))] -[visit_exp numtype_1#17] -[visit_id numtype_1#17] -[visit_exp numtype_2#17] -[visit_id numtype_2#17] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5025}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#5025}(`U`_sx)] -[visit_exp sx#5025] -[visit_id sx#5025] +[visit_exp `TRUNC`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype_1#19 numtype_2#19 sx#5059 -dims \ = numtype_1#19, numtype_2#19, sx#5059 -[visit_exp `CVTOP`_instr{numtype_1#19, numtype_2#19}(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__{sx#5059}(`S`_sx))] -[visit_exp numtype_1#19] -[visit_id numtype_1#19] -[visit_exp numtype_2#19] -[visit_id numtype_2#19] -[visit_exp (`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__{sx#5059}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__(`S`_sx))] +[visit_exp (`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_cvtop__{sx#5059}(`S`_sx)] -[visit_exp sx#5059] -[visit_id sx#5059] +[visit_exp `EXTEND`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype_1#21 numtype_2#21 sx#5093 -dims \ = numtype_1#21, numtype_2#21, sx#5093 -[visit_exp `CVTOP`_instr{numtype_1#21, numtype_2#21}(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__{sx#5093}(`U`_sx))] -[visit_exp numtype_1#21] -[visit_id numtype_1#21] -[visit_exp numtype_2#21] -[visit_id numtype_2#21] -[visit_exp (`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__{sx#5093}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__(`U`_sx))] +[visit_exp (`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_cvtop__{sx#5093}(`U`_sx)] -[visit_exp sx#5093] -[visit_id sx#5093] +[visit_exp `EXTEND`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype_1#23 numtype_2#23 sx#5157 -dims \ = numtype_1#23, numtype_2#23, sx#5157 -[visit_exp `CVTOP`_instr{numtype_1#23, numtype_2#23}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#5157}(`S`_sx))] -[visit_exp numtype_1#23] -[visit_id numtype_1#23] -[visit_exp numtype_2#23] -[visit_id numtype_2#23] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#5157}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#5157}(`S`_sx)] -[visit_exp sx#5157] -[visit_id sx#5157] +[visit_exp `TRUNC`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype_1#25 numtype_2#25 sx#5221 -dims \ = numtype_1#25, numtype_2#25, sx#5221 -[visit_exp `CVTOP`_instr{numtype_1#25, numtype_2#25}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#5221}(`U`_sx))] -[visit_exp numtype_1#25] -[visit_id numtype_1#25] -[visit_exp numtype_2#25] -[visit_id numtype_2#25] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#5221}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#5221}(`U`_sx)] -[visit_exp sx#5221] -[visit_id sx#5221] +[visit_exp `TRUNC`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype_1#27 numtype_2#27 sx#5285 -dims \ = numtype_1#27, numtype_2#27, sx#5285 -[visit_exp `CVTOP`_instr{numtype_1#27, numtype_2#27}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5285}(`S`_sx))] -[visit_exp numtype_1#27] -[visit_id numtype_1#27] -[visit_exp numtype_2#27] -[visit_id numtype_2#27] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5285}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#5285}(`S`_sx)] -[visit_exp sx#5285] -[visit_id sx#5285] +[visit_exp `TRUNC`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype_1#29 numtype_2#29 sx#5349 -dims \ = numtype_1#29, numtype_2#29, sx#5349 -[visit_exp `CVTOP`_instr{numtype_1#29, numtype_2#29}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5349}(`U`_sx))] -[visit_exp numtype_1#29] -[visit_id numtype_1#29] -[visit_exp numtype_2#29] -[visit_id numtype_2#29] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5349}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#5349}(`U`_sx)] -[visit_exp sx#5349] -[visit_id sx#5349] +[visit_exp `TRUNC`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype_1#31 numtype_2#31 sx#5383 -dims \ = numtype_1#31, numtype_2#31, sx#5383 -[visit_exp `CVTOP`_instr{numtype_1#31, numtype_2#31}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5383}(`S`_sx))] -[visit_exp numtype_1#31] -[visit_id numtype_1#31] -[visit_exp numtype_2#31] -[visit_id numtype_2#31] -[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5383}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] +[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#5383}(`S`_sx)] -[visit_exp sx#5383] -[visit_id sx#5383] +[visit_exp `CONVERT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype_1#33 numtype_2#33 sx#5417 -dims \ = numtype_1#33, numtype_2#33, sx#5417 -[visit_exp `CVTOP`_instr{numtype_1#33, numtype_2#33}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5417}(`U`_sx))] -[visit_exp numtype_1#33] -[visit_id numtype_1#33] -[visit_exp numtype_2#33] -[visit_id numtype_2#33] -[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5417}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] +[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#5417}(`U`_sx)] -[visit_exp sx#5417] -[visit_id sx#5417] +[visit_exp `CONVERT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype_1#35 numtype_2#35 sx#5451 -dims \ = numtype_1#35, numtype_2#35, sx#5451 -[visit_exp `CVTOP`_instr{numtype_1#35, numtype_2#35}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5451}(`S`_sx))] -[visit_exp numtype_1#35] -[visit_id numtype_1#35] -[visit_exp numtype_2#35] -[visit_id numtype_2#35] -[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5451}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] +[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#5451}(`S`_sx)] -[visit_exp sx#5451] -[visit_id sx#5451] +[visit_exp `CONVERT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype_1#37 numtype_2#37 sx#5485 -dims \ = numtype_1#37, numtype_2#37, sx#5485 -[visit_exp `CVTOP`_instr{numtype_1#37, numtype_2#37}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5485}(`U`_sx))] -[visit_exp numtype_1#37] -[visit_id numtype_1#37] -[visit_exp numtype_2#37] -[visit_id numtype_2#37] -[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5485}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] +[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#5485}(`U`_sx)] -[visit_exp sx#5485] -[visit_id sx#5485] +[visit_exp `CONVERT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype_1#39 numtype_2#39 -dims \ = numtype_1#39, numtype_2#39 -[visit_exp `CVTOP`_instr{numtype_1#39, numtype_2#39}(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] -[visit_exp numtype_1#39] -[visit_id numtype_1#39] -[visit_exp numtype_2#39] -[visit_id numtype_2#39] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] [visit_exp (`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -77161,85 +63053,57 @@ dims \ = numtype_1#39, numtype_2#39 [visit_exp ()] [visit_exp `DEMOTE`_cvtop__] [visit_exp ()] -[check_dims] numtype_1#41 numtype_2#41 sx#5519 -dims \ = numtype_1#41, numtype_2#41, sx#5519 -[visit_exp `CVTOP`_instr{numtype_1#41, numtype_2#41}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5519}(`S`_sx))] -[visit_exp numtype_1#41] -[visit_id numtype_1#41] -[visit_exp numtype_2#41] -[visit_id numtype_2#41] -[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5519}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] +[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#5519}(`S`_sx)] -[visit_exp sx#5519] -[visit_id sx#5519] +[visit_exp `CONVERT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype_1#43 numtype_2#43 sx#5553 -dims \ = numtype_1#43, numtype_2#43, sx#5553 -[visit_exp `CVTOP`_instr{numtype_1#43, numtype_2#43}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5553}(`U`_sx))] -[visit_exp numtype_1#43] -[visit_id numtype_1#43] -[visit_exp numtype_2#43] -[visit_id numtype_2#43] -[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5553}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] +[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#5553}(`U`_sx)] -[visit_exp sx#5553] -[visit_id sx#5553] +[visit_exp `CONVERT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype_1#45 numtype_2#45 sx#5587 -dims \ = numtype_1#45, numtype_2#45, sx#5587 -[visit_exp `CVTOP`_instr{numtype_1#45, numtype_2#45}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5587}(`S`_sx))] -[visit_exp numtype_1#45] -[visit_id numtype_1#45] -[visit_exp numtype_2#45] -[visit_id numtype_2#45] -[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5587}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] +[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#5587}(`S`_sx)] -[visit_exp sx#5587] -[visit_id sx#5587] +[visit_exp `CONVERT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] numtype_1#47 numtype_2#47 sx#5621 -dims \ = numtype_1#47, numtype_2#47, sx#5621 -[visit_exp `CVTOP`_instr{numtype_1#47, numtype_2#47}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5621}(`U`_sx))] -[visit_exp numtype_1#47] -[visit_id numtype_1#47] -[visit_exp numtype_2#47] -[visit_id numtype_2#47] -[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5621}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] +[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#5621}(`U`_sx)] -[visit_exp sx#5621] -[visit_id sx#5621] +[visit_exp `CONVERT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] numtype_1#49 numtype_2#49 -dims \ = numtype_1#49, numtype_2#49 -[visit_exp `CVTOP`_instr{numtype_1#49, numtype_2#49}(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] -[visit_exp numtype_1#49] -[visit_id numtype_1#49] -[visit_exp numtype_2#49] -[visit_id numtype_2#49] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] [visit_exp (`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -77247,13 +63111,9 @@ dims \ = numtype_1#49, numtype_2#49 [visit_exp ()] [visit_exp `PROMOTE`_cvtop__] [visit_exp ()] -[check_dims] numtype_1#51 numtype_2#51 -dims \ = numtype_1#51, numtype_2#51 -[visit_exp `CVTOP`_instr{numtype_1#51, numtype_2#51}(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp numtype_1#51] -[visit_id numtype_1#51] -[visit_exp numtype_2#51] -[visit_id numtype_2#51] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] [visit_exp (`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -77261,13 +63121,9 @@ dims \ = numtype_1#51, numtype_2#51 [visit_exp ()] [visit_exp `REINTERPRET`_cvtop__] [visit_exp ()] -[check_dims] numtype_1#53 numtype_2#53 -dims \ = numtype_1#53, numtype_2#53 -[visit_exp `CVTOP`_instr{numtype_1#53, numtype_2#53}(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp numtype_1#53] -[visit_id numtype_1#53] -[visit_exp numtype_2#53] -[visit_id numtype_2#53] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] [visit_exp (`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] [visit_exp `I64`_numtype] [visit_exp ()] @@ -77275,13 +63131,9 @@ dims \ = numtype_1#53, numtype_2#53 [visit_exp ()] [visit_exp `REINTERPRET`_cvtop__] [visit_exp ()] -[check_dims] numtype_1#55 numtype_2#55 -dims \ = numtype_1#55, numtype_2#55 -[visit_exp `CVTOP`_instr{numtype_1#55, numtype_2#55}(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp numtype_1#55] -[visit_id numtype_1#55] -[visit_exp numtype_2#55] -[visit_id numtype_2#55] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] [visit_exp (`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -77289,13 +63141,9 @@ dims \ = numtype_1#55, numtype_2#55 [visit_exp ()] [visit_exp `REINTERPRET`_cvtop__] [visit_exp ()] -[check_dims] numtype_1#57 numtype_2#57 -dims \ = numtype_1#57, numtype_2#57 -[visit_exp `CVTOP`_instr{numtype_1#57, numtype_2#57}(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp numtype_1#57] -[visit_id numtype_1#57] -[visit_exp numtype_2#57] -[visit_id numtype_2#57] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] [visit_exp (`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -77305,225 +63153,147 @@ dims \ = numtype_1#57, numtype_2#57 [visit_exp ()] ps' = [check_dims] -[check_dims] i#54694 numtype_1#59 numtype_2#59 sx#5775 -dims \ = i#54694, numtype_1#59, numtype_2#59, sx#5775 -[visit_exp `CVTOP`_instr{numtype_1#59, numtype_2#59}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#5775}(`S`_sx))] -[visit_exp numtype_1#59] -[visit_id numtype_1#59] -[visit_exp numtype_2#59] -[visit_id numtype_2#59] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#5775}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#5775}(`S`_sx)] -[visit_exp sx#5775] -[visit_id sx#5775] +[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#54694}(0)] -[visit_exp i#54694] -[visit_id i#54694] +[visit_exp `%`_u32(0)] [visit_exp (0)] [visit_exp 0] -[check_dims] i#54719 numtype_1#61 numtype_2#61 sx#5839 -dims \ = i#54719, numtype_1#61, numtype_2#61, sx#5839 -[visit_exp `CVTOP`_instr{numtype_1#61, numtype_2#61}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#5839}(`U`_sx))] -[visit_exp numtype_1#61] -[visit_id numtype_1#61] -[visit_exp numtype_2#61] -[visit_id numtype_2#61] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#5839}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#5839}(`U`_sx)] -[visit_exp sx#5839] -[visit_id sx#5839] +[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#54719}(1)] -[visit_exp i#54719] -[visit_id i#54719] +[visit_exp `%`_u32(1)] [visit_exp (1)] [visit_exp 1] -[check_dims] i#54744 numtype_1#63 numtype_2#63 sx#5903 -dims \ = i#54744, numtype_1#63, numtype_2#63, sx#5903 -[visit_exp `CVTOP`_instr{numtype_1#63, numtype_2#63}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#5903}(`S`_sx))] -[visit_exp numtype_1#63] -[visit_id numtype_1#63] -[visit_exp numtype_2#63] -[visit_id numtype_2#63] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#5903}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#5903}(`S`_sx)] -[visit_exp sx#5903] -[visit_id sx#5903] +[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#54744}(2)] -[visit_exp i#54744] -[visit_id i#54744] +[visit_exp `%`_u32(2)] [visit_exp (2)] [visit_exp 2] -[check_dims] i#54769 numtype_1#65 numtype_2#65 sx#5967 -dims \ = i#54769, numtype_1#65, numtype_2#65, sx#5967 -[visit_exp `CVTOP`_instr{numtype_1#65, numtype_2#65}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#5967}(`U`_sx))] -[visit_exp numtype_1#65] -[visit_id numtype_1#65] -[visit_exp numtype_2#65] -[visit_id numtype_2#65] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#5967}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#5967}(`U`_sx)] -[visit_exp sx#5967] -[visit_id sx#5967] +[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#54769}(3)] -[visit_exp i#54769] -[visit_id i#54769] +[visit_exp `%`_u32(3)] [visit_exp (3)] [visit_exp 3] -[check_dims] i#54794 numtype_1#67 numtype_2#67 sx#6031 -dims \ = i#54794, numtype_1#67, numtype_2#67, sx#6031 -[visit_exp `CVTOP`_instr{numtype_1#67, numtype_2#67}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#6031}(`S`_sx))] -[visit_exp numtype_1#67] -[visit_id numtype_1#67] -[visit_exp numtype_2#67] -[visit_id numtype_2#67] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#6031}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#6031}(`S`_sx)] -[visit_exp sx#6031] -[visit_id sx#6031] +[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#54794}(4)] -[visit_exp i#54794] -[visit_id i#54794] +[visit_exp `%`_u32(4)] [visit_exp (4)] [visit_exp 4] -[check_dims] i#54819 numtype_1#69 numtype_2#69 sx#6095 -dims \ = i#54819, numtype_1#69, numtype_2#69, sx#6095 -[visit_exp `CVTOP`_instr{numtype_1#69, numtype_2#69}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#6095}(`U`_sx))] -[visit_exp numtype_1#69] -[visit_id numtype_1#69] -[visit_exp numtype_2#69] -[visit_id numtype_2#69] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#6095}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#6095}(`U`_sx)] -[visit_exp sx#6095] -[visit_id sx#6095] +[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#54819}(5)] -[visit_exp i#54819] -[visit_id i#54819] +[visit_exp `%`_u32(5)] [visit_exp (5)] [visit_exp 5] -[check_dims] i#54844 numtype_1#71 numtype_2#71 sx#6159 -dims \ = i#54844, numtype_1#71, numtype_2#71, sx#6159 -[visit_exp `CVTOP`_instr{numtype_1#71, numtype_2#71}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#6159}(`S`_sx))] -[visit_exp numtype_1#71] -[visit_id numtype_1#71] -[visit_exp numtype_2#71] -[visit_id numtype_2#71] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#6159}(`S`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#6159}(`S`_sx)] -[visit_exp sx#6159] -[visit_id sx#6159] +[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#54844}(6)] -[visit_exp i#54844] -[visit_id i#54844] +[visit_exp `%`_u32(6)] [visit_exp (6)] [visit_exp 6] -[check_dims] i#54869 numtype_1#73 numtype_2#73 sx#6223 -dims \ = i#54869, numtype_1#73, numtype_2#73, sx#6223 -[visit_exp `CVTOP`_instr{numtype_1#73, numtype_2#73}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#6223}(`U`_sx))] -[visit_exp numtype_1#73] -[visit_id numtype_1#73] -[visit_exp numtype_2#73] -[visit_id numtype_2#73] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#6223}(`U`_sx))] +[check_dims] +dims \ = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#6223}(`U`_sx)] -[visit_exp sx#6223] -[visit_id sx#6223] +[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#54869}(7)] -[visit_exp i#54869] -[visit_id i#54869] +[visit_exp `%`_u32(7)] [visit_exp (7)] [visit_exp 7] ps' = [check_dims] -[check_dims] i#54895 i#54896 i#54943 i#54944 l -dims \ = i#54895, i#54896, i#54943, i#54944, l -[visit_exp `%`_laneidx{i#54944}(l!`%`_labelidx{i#54943}.0)] -[visit_exp i#54944] -[visit_id i#54944] -[visit_exp (l!`%`_labelidx{i#54943}.0)] -[visit_exp l!`%`_labelidx{i#54943}.0] -[visit_exp l!`%`_labelidx{i#54943}] +[check_dims] l +dims \ = l +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#54943] -[visit_id i#54943] -[visit_exp `%`_byte{i#54896}(l!`%`_labelidx{i#54895}.0)] -[visit_exp i#54896] -[visit_id i#54896] -[visit_exp (l!`%`_labelidx{i#54895}.0)] -[visit_exp l!`%`_labelidx{i#54895}.0] -[visit_exp l!`%`_labelidx{i#54895}] +[visit_exp `%`_byte(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#54895] -[visit_id i#54895] ps' = [check_dims] -[check_dims] ao i#54968 memarg#137 memidx#228 vectype?#14 x -dims \ = ao, i#54968, memarg#137, memidx#228, vectype?#14, x -[visit_exp `VLOAD`_instr{`vectype?#14`, memidx#228, memarg#137}(`V128`_vectype, ?(), x, ao)] -[visit_exp `vectype?#14`] -[visit_id vectype?#14] -[visit_exp memidx#228] -[visit_id memidx#228] -[visit_exp memarg#137] -[visit_id memarg#137] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(), x, ao)] [visit_exp (`V128`_vectype, ?(), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -77532,9 +63302,7 @@ dims \ = ao, i#54968, memarg#137, memidx#228, vectype?#14, x [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#54968}(0)] -[visit_exp i#54968] -[visit_id i#54968] +[visit_exp `%`_u32(0)] [visit_exp (0)] [visit_exp 0] [visit_exp (x, ao)] @@ -77542,32 +63310,16 @@ dims \ = ao, i#54968, memarg#137, memidx#228, vectype?#14, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] M#157 ao i#55019 i#55059 i#55066 memarg#139 memidx#230 sx#6240 sz#1092 vectype?#15 x -dims \ = M#157, ao, i#55019, i#55059, i#55066, memarg#139, memidx#230, sx#6240, sz#1092, vectype?#15, x -[visit_exp `VLOAD`_instr{`vectype?#15`, memidx#230, memarg#139}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1092, M#157, sx#6240, i#55059}(`%`_sz{i#55066}(8), 8, `S`_sx)), x, ao)] -[visit_exp `vectype?#15`] -[visit_id vectype?#15] -[visit_exp memidx#230] -[visit_id memidx#230] -[visit_exp memarg#139] -[visit_id memarg#139] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1092, M#157, sx#6240, i#55059}(`%`_sz{i#55066}(8), 8, `S`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1092, M#157, sx#6240, i#55059}(`%`_sz{i#55066}(8), 8, `S`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#1092, M#157, sx#6240, i#55059}(`%`_sz{i#55066}(8), 8, `S`_sx)] -[visit_exp sz#1092] -[visit_id sz#1092] -[visit_exp M#157] -[visit_id M#157] -[visit_exp sx#6240] -[visit_id sx#6240] -[visit_exp i#55059] -[visit_id i#55059] -[visit_exp (`%`_sz{i#55066}(8), 8, `S`_sx)] -[visit_exp `%`_sz{i#55066}(8)] -[visit_exp i#55066] -[visit_id i#55066] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)] +[visit_exp (`%`_sz(8), 8, `S`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp 8] @@ -77577,9 +63329,7 @@ dims \ = M#157, ao, i#55019, i#55059, i#55066, memarg#139, memidx#230, sx#6240, [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#55019}(1)] -[visit_exp i#55019] -[visit_id i#55019] +[visit_exp `%`_u32(1)] [visit_exp (1)] [visit_exp 1] [visit_exp (x, ao)] @@ -77587,32 +63337,16 @@ dims \ = M#157, ao, i#55019, i#55059, i#55066, memarg#139, memidx#230, sx#6240, [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] M#174 ao i#55103 i#55143 i#55150 memarg#141 memidx#232 sx#6257 sz#1139 vectype?#16 x -dims \ = M#174, ao, i#55103, i#55143, i#55150, memarg#141, memidx#232, sx#6257, sz#1139, vectype?#16, x -[visit_exp `VLOAD`_instr{`vectype?#16`, memidx#232, memarg#141}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1139, M#174, sx#6257, i#55143}(`%`_sz{i#55150}(8), 8, `U`_sx)), x, ao)] -[visit_exp `vectype?#16`] -[visit_id vectype?#16] -[visit_exp memidx#232] -[visit_id memidx#232] -[visit_exp memarg#141] -[visit_id memarg#141] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1139, M#174, sx#6257, i#55143}(`%`_sz{i#55150}(8), 8, `U`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1139, M#174, sx#6257, i#55143}(`%`_sz{i#55150}(8), 8, `U`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#1139, M#174, sx#6257, i#55143}(`%`_sz{i#55150}(8), 8, `U`_sx)] -[visit_exp sz#1139] -[visit_id sz#1139] -[visit_exp M#174] -[visit_id M#174] -[visit_exp sx#6257] -[visit_id sx#6257] -[visit_exp i#55143] -[visit_id i#55143] -[visit_exp (`%`_sz{i#55150}(8), 8, `U`_sx)] -[visit_exp `%`_sz{i#55150}(8)] -[visit_exp i#55150] -[visit_id i#55150] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)] +[visit_exp (`%`_sz(8), 8, `U`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp 8] @@ -77622,9 +63356,7 @@ dims \ = M#174, ao, i#55103, i#55143, i#55150, memarg#141, memidx#232, sx#6257, [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#55103}(2)] -[visit_exp i#55103] -[visit_id i#55103] +[visit_exp `%`_u32(2)] [visit_exp (2)] [visit_exp 2] [visit_exp (x, ao)] @@ -77632,32 +63364,16 @@ dims \ = M#174, ao, i#55103, i#55143, i#55150, memarg#141, memidx#232, sx#6257, [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] M#191 ao i#55187 i#55227 i#55234 memarg#143 memidx#234 sx#6274 sz#1186 vectype?#17 x -dims \ = M#191, ao, i#55187, i#55227, i#55234, memarg#143, memidx#234, sx#6274, sz#1186, vectype?#17, x -[visit_exp `VLOAD`_instr{`vectype?#17`, memidx#234, memarg#143}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1186, M#191, sx#6274, i#55227}(`%`_sz{i#55234}(16), 4, `S`_sx)), x, ao)] -[visit_exp `vectype?#17`] -[visit_id vectype?#17] -[visit_exp memidx#234] -[visit_id memidx#234] -[visit_exp memarg#143] -[visit_id memarg#143] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1186, M#191, sx#6274, i#55227}(`%`_sz{i#55234}(16), 4, `S`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1186, M#191, sx#6274, i#55227}(`%`_sz{i#55234}(16), 4, `S`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#1186, M#191, sx#6274, i#55227}(`%`_sz{i#55234}(16), 4, `S`_sx)] -[visit_exp sz#1186] -[visit_id sz#1186] -[visit_exp M#191] -[visit_id M#191] -[visit_exp sx#6274] -[visit_id sx#6274] -[visit_exp i#55227] -[visit_id i#55227] -[visit_exp (`%`_sz{i#55234}(16), 4, `S`_sx)] -[visit_exp `%`_sz{i#55234}(16)] -[visit_exp i#55234] -[visit_id i#55234] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)] +[visit_exp (`%`_sz(16), 4, `S`_sx)] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp 4] @@ -77667,9 +63383,7 @@ dims \ = M#191, ao, i#55187, i#55227, i#55234, memarg#143, memidx#234, sx#6274, [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#55187}(3)] -[visit_exp i#55187] -[visit_id i#55187] +[visit_exp `%`_u32(3)] [visit_exp (3)] [visit_exp 3] [visit_exp (x, ao)] @@ -77677,32 +63391,16 @@ dims \ = M#191, ao, i#55187, i#55227, i#55234, memarg#143, memidx#234, sx#6274, [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] M#208 ao i#55271 i#55311 i#55318 memarg#145 memidx#236 sx#6291 sz#1233 vectype?#18 x -dims \ = M#208, ao, i#55271, i#55311, i#55318, memarg#145, memidx#236, sx#6291, sz#1233, vectype?#18, x -[visit_exp `VLOAD`_instr{`vectype?#18`, memidx#236, memarg#145}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1233, M#208, sx#6291, i#55311}(`%`_sz{i#55318}(16), 4, `U`_sx)), x, ao)] -[visit_exp `vectype?#18`] -[visit_id vectype?#18] -[visit_exp memidx#236] -[visit_id memidx#236] -[visit_exp memarg#145] -[visit_id memarg#145] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1233, M#208, sx#6291, i#55311}(`%`_sz{i#55318}(16), 4, `U`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1233, M#208, sx#6291, i#55311}(`%`_sz{i#55318}(16), 4, `U`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#1233, M#208, sx#6291, i#55311}(`%`_sz{i#55318}(16), 4, `U`_sx)] -[visit_exp sz#1233] -[visit_id sz#1233] -[visit_exp M#208] -[visit_id M#208] -[visit_exp sx#6291] -[visit_id sx#6291] -[visit_exp i#55311] -[visit_id i#55311] -[visit_exp (`%`_sz{i#55318}(16), 4, `U`_sx)] -[visit_exp `%`_sz{i#55318}(16)] -[visit_exp i#55318] -[visit_id i#55318] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)] +[visit_exp (`%`_sz(16), 4, `U`_sx)] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp 4] @@ -77712,9 +63410,7 @@ dims \ = M#208, ao, i#55271, i#55311, i#55318, memarg#145, memidx#236, sx#6291, [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#55271}(4)] -[visit_exp i#55271] -[visit_id i#55271] +[visit_exp `%`_u32(4)] [visit_exp (4)] [visit_exp 4] [visit_exp (x, ao)] @@ -77722,32 +63418,16 @@ dims \ = M#208, ao, i#55271, i#55311, i#55318, memarg#145, memidx#236, sx#6291, [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] M#225 ao i#55355 i#55395 i#55402 memarg#147 memidx#238 sx#6308 sz#1280 vectype?#19 x -dims \ = M#225, ao, i#55355, i#55395, i#55402, memarg#147, memidx#238, sx#6308, sz#1280, vectype?#19, x -[visit_exp `VLOAD`_instr{`vectype?#19`, memidx#238, memarg#147}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1280, M#225, sx#6308, i#55395}(`%`_sz{i#55402}(32), 2, `S`_sx)), x, ao)] -[visit_exp `vectype?#19`] -[visit_id vectype?#19] -[visit_exp memidx#238] -[visit_id memidx#238] -[visit_exp memarg#147] -[visit_id memarg#147] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1280, M#225, sx#6308, i#55395}(`%`_sz{i#55402}(32), 2, `S`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1280, M#225, sx#6308, i#55395}(`%`_sz{i#55402}(32), 2, `S`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#1280, M#225, sx#6308, i#55395}(`%`_sz{i#55402}(32), 2, `S`_sx)] -[visit_exp sz#1280] -[visit_id sz#1280] -[visit_exp M#225] -[visit_id M#225] -[visit_exp sx#6308] -[visit_id sx#6308] -[visit_exp i#55395] -[visit_id i#55395] -[visit_exp (`%`_sz{i#55402}(32), 2, `S`_sx)] -[visit_exp `%`_sz{i#55402}(32)] -[visit_exp i#55402] -[visit_id i#55402] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)] +[visit_exp (`%`_sz(32), 2, `S`_sx)] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp 2] @@ -77757,9 +63437,7 @@ dims \ = M#225, ao, i#55355, i#55395, i#55402, memarg#147, memidx#238, sx#6308, [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#55355}(5)] -[visit_exp i#55355] -[visit_id i#55355] +[visit_exp `%`_u32(5)] [visit_exp (5)] [visit_exp 5] [visit_exp (x, ao)] @@ -77767,32 +63445,16 @@ dims \ = M#225, ao, i#55355, i#55395, i#55402, memarg#147, memidx#238, sx#6308, [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] M#242 ao i#55439 i#55479 i#55486 memarg#149 memidx#240 sx#6325 sz#1327 vectype?#20 x -dims \ = M#242, ao, i#55439, i#55479, i#55486, memarg#149, memidx#240, sx#6325, sz#1327, vectype?#20, x -[visit_exp `VLOAD`_instr{`vectype?#20`, memidx#240, memarg#149}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1327, M#242, sx#6325, i#55479}(`%`_sz{i#55486}(32), 2, `U`_sx)), x, ao)] -[visit_exp `vectype?#20`] -[visit_id vectype?#20] -[visit_exp memidx#240] -[visit_id memidx#240] -[visit_exp memarg#149] -[visit_id memarg#149] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1327, M#242, sx#6325, i#55479}(`%`_sz{i#55486}(32), 2, `U`_sx)), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1327, M#242, sx#6325, i#55479}(`%`_sz{i#55486}(32), 2, `U`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#1327, M#242, sx#6325, i#55479}(`%`_sz{i#55486}(32), 2, `U`_sx)] -[visit_exp sz#1327] -[visit_id sz#1327] -[visit_exp M#242] -[visit_id M#242] -[visit_exp sx#6325] -[visit_id sx#6325] -[visit_exp i#55479] -[visit_id i#55479] -[visit_exp (`%`_sz{i#55486}(32), 2, `U`_sx)] -[visit_exp `%`_sz{i#55486}(32)] -[visit_exp i#55486] -[visit_id i#55486] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)] +[visit_exp (`%`_sz(32), 2, `U`_sx)] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp 2] @@ -77802,9 +63464,7 @@ dims \ = M#242, ao, i#55439, i#55479, i#55486, memarg#149, memidx#240, sx#6325, [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#55439}(6)] -[visit_exp i#55439] -[visit_id i#55439] +[visit_exp `%`_u32(6)] [visit_exp (6)] [visit_exp 6] [visit_exp (x, ao)] @@ -77812,35 +63472,23 @@ dims \ = M#242, ao, i#55439, i#55479, i#55486, memarg#149, memidx#240, sx#6325, [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#55523 i#55569 memarg#151 memidx#242 sz#1374 vectype?#21 x -dims \ = ao, i#55523, i#55569, memarg#151, memidx#242, sz#1374, vectype?#21, x -[visit_exp `VLOAD`_instr{`vectype?#21`, memidx#242, memarg#151}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1374}(`%`_sz{i#55569}(8))), x, ao)] -[visit_exp `vectype?#21`] -[visit_id vectype?#21] -[visit_exp memidx#242] -[visit_id memidx#242] -[visit_exp memarg#151] -[visit_id memarg#151] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1374}(`%`_sz{i#55569}(8))), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(8))), x, ao)] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(8))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_{sz#1374}(`%`_sz{i#55569}(8)))] -[visit_exp `SPLAT`_vloadop_{sz#1374}(`%`_sz{i#55569}(8))] -[visit_exp sz#1374] -[visit_id sz#1374] -[visit_exp (`%`_sz{i#55569}(8))] -[visit_exp `%`_sz{i#55569}(8)] -[visit_exp i#55569] -[visit_id i#55569] +[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(8)))] +[visit_exp `SPLAT`_vloadop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x] [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#55523}(7)] -[visit_exp i#55523] -[visit_id i#55523] +[visit_exp `%`_u32(7)] [visit_exp (7)] [visit_exp 7] [visit_exp (x, ao)] @@ -77848,35 +63496,23 @@ dims \ = ao, i#55523, i#55569, memarg#151, memidx#242, sz#1374, vectype?#21, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#55606 i#55652 memarg#153 memidx#244 sz#1421 vectype?#22 x -dims \ = ao, i#55606, i#55652, memarg#153, memidx#244, sz#1421, vectype?#22, x -[visit_exp `VLOAD`_instr{`vectype?#22`, memidx#244, memarg#153}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1421}(`%`_sz{i#55652}(16))), x, ao)] -[visit_exp `vectype?#22`] -[visit_id vectype?#22] -[visit_exp memidx#244] -[visit_id memidx#244] -[visit_exp memarg#153] -[visit_id memarg#153] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1421}(`%`_sz{i#55652}(16))), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(16))), x, ao)] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(16))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_{sz#1421}(`%`_sz{i#55652}(16)))] -[visit_exp `SPLAT`_vloadop_{sz#1421}(`%`_sz{i#55652}(16))] -[visit_exp sz#1421] -[visit_id sz#1421] -[visit_exp (`%`_sz{i#55652}(16))] -[visit_exp `%`_sz{i#55652}(16)] -[visit_exp i#55652] -[visit_id i#55652] +[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(16)))] +[visit_exp `SPLAT`_vloadop_(`%`_sz(16))] +[visit_exp (`%`_sz(16))] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp x] [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#55606}(8)] -[visit_exp i#55606] -[visit_id i#55606] +[visit_exp `%`_u32(8)] [visit_exp (8)] [visit_exp 8] [visit_exp (x, ao)] @@ -77884,35 +63520,23 @@ dims \ = ao, i#55606, i#55652, memarg#153, memidx#244, sz#1421, vectype?#22, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#55689 i#55735 memarg#155 memidx#246 sz#1468 vectype?#23 x -dims \ = ao, i#55689, i#55735, memarg#155, memidx#246, sz#1468, vectype?#23, x -[visit_exp `VLOAD`_instr{`vectype?#23`, memidx#246, memarg#155}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1468}(`%`_sz{i#55735}(32))), x, ao)] -[visit_exp `vectype?#23`] -[visit_id vectype?#23] -[visit_exp memidx#246] -[visit_id memidx#246] -[visit_exp memarg#155] -[visit_id memarg#155] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1468}(`%`_sz{i#55735}(32))), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(32))), x, ao)] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(32))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_{sz#1468}(`%`_sz{i#55735}(32)))] -[visit_exp `SPLAT`_vloadop_{sz#1468}(`%`_sz{i#55735}(32))] -[visit_exp sz#1468] -[visit_id sz#1468] -[visit_exp (`%`_sz{i#55735}(32))] -[visit_exp `%`_sz{i#55735}(32)] -[visit_exp i#55735] -[visit_id i#55735] +[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(32)))] +[visit_exp `SPLAT`_vloadop_(`%`_sz(32))] +[visit_exp (`%`_sz(32))] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp x] [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#55689}(9)] -[visit_exp i#55689] -[visit_id i#55689] +[visit_exp `%`_u32(9)] [visit_exp (9)] [visit_exp 9] [visit_exp (x, ao)] @@ -77920,35 +63544,23 @@ dims \ = ao, i#55689, i#55735, memarg#155, memidx#246, sz#1468, vectype?#23, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#55772 i#55818 memarg#157 memidx#248 sz#1515 vectype?#24 x -dims \ = ao, i#55772, i#55818, memarg#157, memidx#248, sz#1515, vectype?#24, x -[visit_exp `VLOAD`_instr{`vectype?#24`, memidx#248, memarg#157}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1515}(`%`_sz{i#55818}(64))), x, ao)] -[visit_exp `vectype?#24`] -[visit_id vectype?#24] -[visit_exp memidx#248] -[visit_id memidx#248] -[visit_exp memarg#157] -[visit_id memarg#157] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1515}(`%`_sz{i#55818}(64))), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(64))), x, ao)] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(64))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_{sz#1515}(`%`_sz{i#55818}(64)))] -[visit_exp `SPLAT`_vloadop_{sz#1515}(`%`_sz{i#55818}(64))] -[visit_exp sz#1515] -[visit_id sz#1515] -[visit_exp (`%`_sz{i#55818}(64))] -[visit_exp `%`_sz{i#55818}(64)] -[visit_exp i#55818] -[visit_id i#55818] +[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(64)))] +[visit_exp `SPLAT`_vloadop_(`%`_sz(64))] +[visit_exp (`%`_sz(64))] +[visit_exp `%`_sz(64)] [visit_exp (64)] [visit_exp 64] [visit_exp x] [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#55772}(10)] -[visit_exp i#55772] -[visit_id i#55772] +[visit_exp `%`_u32(10)] [visit_exp (10)] [visit_exp 10] [visit_exp (x, ao)] @@ -77956,15 +63568,9 @@ dims \ = ao, i#55772, i#55818, memarg#157, memidx#248, sz#1515, vectype?#24, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#55855 memarg#159 memidx#250 vectype#237 x -dims \ = ao, i#55855, memarg#159, memidx#250, vectype#237, x -[visit_exp `VSTORE`_instr{vectype#237, memidx#250, memarg#159}(`V128`_vectype, x, ao)] -[visit_exp vectype#237] -[visit_id vectype#237] -[visit_exp memidx#250] -[visit_id memidx#250] -[visit_exp memarg#159] -[visit_id memarg#159] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VSTORE`_instr(`V128`_vectype, x, ao)] [visit_exp (`V128`_vectype, x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -77972,9 +63578,7 @@ dims \ = ao, i#55855, memarg#159, memidx#250, vectype#237, x [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#55855}(11)] -[visit_exp i#55855] -[visit_id i#55855] +[visit_exp `%`_u32(11)] [visit_exp (11)] [visit_exp 11] [visit_exp (x, ao)] @@ -77982,25 +63586,13 @@ dims \ = ao, i#55855, memarg#159, memidx#250, vectype#237, x [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i i#55906 i#55945 laneidx#31 memarg#161 memidx#252 sz#1517 vectype#239 x -dims \ = ao, i, i#55906, i#55945, laneidx#31, memarg#161, memidx#252, sz#1517, vectype#239, x -[visit_exp `VLOAD_LANE`_instr{vectype#239, sz#1517, memidx#252, memarg#161, laneidx#31}(`V128`_vectype, `%`_sz{i#55945}(8), x, ao, i)] -[visit_exp vectype#239] -[visit_id vectype#239] -[visit_exp sz#1517] -[visit_id sz#1517] -[visit_exp memidx#252] -[visit_id memidx#252] -[visit_exp memarg#161] -[visit_id memarg#161] -[visit_exp laneidx#31] -[visit_id laneidx#31] -[visit_exp (`V128`_vectype, `%`_sz{i#55945}(8), x, ao, i)] +[check_dims] ao i x +dims \ = ao, i, x +[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(8), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#55945}(8)] -[visit_exp i#55945] -[visit_id i#55945] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x] @@ -78009,9 +63601,7 @@ dims \ = ao, i, i#55906, i#55945, laneidx#31, memarg#161, memidx#252, sz#1517, [visit_id ao] [visit_exp i] [visit_id i] -[visit_exp `%`_u32{i#55906}(84)] -[visit_exp i#55906] -[visit_id i#55906] +[visit_exp `%`_u32(84)] [visit_exp (84)] [visit_exp 84] [visit_exp (x, ao)] @@ -78021,25 +63611,13 @@ dims \ = ao, i, i#55906, i#55945, laneidx#31, memarg#161, memidx#252, sz#1517, [visit_id ao] not free [visit_exp i] [visit_id i] not free -[check_dims] ao i i#55994 i#56033 laneidx#33 memarg#163 memidx#254 sz#1519 vectype#241 x -dims \ = ao, i, i#55994, i#56033, laneidx#33, memarg#163, memidx#254, sz#1519, vectype#241, x -[visit_exp `VLOAD_LANE`_instr{vectype#241, sz#1519, memidx#254, memarg#163, laneidx#33}(`V128`_vectype, `%`_sz{i#56033}(16), x, ao, i)] -[visit_exp vectype#241] -[visit_id vectype#241] -[visit_exp sz#1519] -[visit_id sz#1519] -[visit_exp memidx#254] -[visit_id memidx#254] -[visit_exp memarg#163] -[visit_id memarg#163] -[visit_exp laneidx#33] -[visit_id laneidx#33] -[visit_exp (`V128`_vectype, `%`_sz{i#56033}(16), x, ao, i)] +[check_dims] ao i x +dims \ = ao, i, x +[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(16), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#56033}(16)] -[visit_exp i#56033] -[visit_id i#56033] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp x] @@ -78048,9 +63626,7 @@ dims \ = ao, i, i#55994, i#56033, laneidx#33, memarg#163, memidx#254, sz#1519, [visit_id ao] [visit_exp i] [visit_id i] -[visit_exp `%`_u32{i#55994}(85)] -[visit_exp i#55994] -[visit_id i#55994] +[visit_exp `%`_u32(85)] [visit_exp (85)] [visit_exp 85] [visit_exp (x, ao)] @@ -78060,25 +63636,13 @@ dims \ = ao, i, i#55994, i#56033, laneidx#33, memarg#163, memidx#254, sz#1519, [visit_id ao] not free [visit_exp i] [visit_id i] not free -[check_dims] ao i i#56082 i#56121 laneidx#35 memarg#165 memidx#256 sz#1521 vectype#243 x -dims \ = ao, i, i#56082, i#56121, laneidx#35, memarg#165, memidx#256, sz#1521, vectype#243, x -[visit_exp `VLOAD_LANE`_instr{vectype#243, sz#1521, memidx#256, memarg#165, laneidx#35}(`V128`_vectype, `%`_sz{i#56121}(32), x, ao, i)] -[visit_exp vectype#243] -[visit_id vectype#243] -[visit_exp sz#1521] -[visit_id sz#1521] -[visit_exp memidx#256] -[visit_id memidx#256] -[visit_exp memarg#165] -[visit_id memarg#165] -[visit_exp laneidx#35] -[visit_id laneidx#35] -[visit_exp (`V128`_vectype, `%`_sz{i#56121}(32), x, ao, i)] +[check_dims] ao i x +dims \ = ao, i, x +[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(32), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#56121}(32)] -[visit_exp i#56121] -[visit_id i#56121] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp x] @@ -78087,9 +63651,7 @@ dims \ = ao, i, i#56082, i#56121, laneidx#35, memarg#165, memidx#256, sz#1521, [visit_id ao] [visit_exp i] [visit_id i] -[visit_exp `%`_u32{i#56082}(86)] -[visit_exp i#56082] -[visit_id i#56082] +[visit_exp `%`_u32(86)] [visit_exp (86)] [visit_exp 86] [visit_exp (x, ao)] @@ -78099,25 +63661,13 @@ dims \ = ao, i, i#56082, i#56121, laneidx#35, memarg#165, memidx#256, sz#1521, [visit_id ao] not free [visit_exp i] [visit_id i] not free -[check_dims] ao i i#56170 i#56209 laneidx#37 memarg#167 memidx#258 sz#1523 vectype#245 x -dims \ = ao, i, i#56170, i#56209, laneidx#37, memarg#167, memidx#258, sz#1523, vectype#245, x -[visit_exp `VLOAD_LANE`_instr{vectype#245, sz#1523, memidx#258, memarg#167, laneidx#37}(`V128`_vectype, `%`_sz{i#56209}(64), x, ao, i)] -[visit_exp vectype#245] -[visit_id vectype#245] -[visit_exp sz#1523] -[visit_id sz#1523] -[visit_exp memidx#258] -[visit_id memidx#258] -[visit_exp memarg#167] -[visit_id memarg#167] -[visit_exp laneidx#37] -[visit_id laneidx#37] -[visit_exp (`V128`_vectype, `%`_sz{i#56209}(64), x, ao, i)] +[check_dims] ao i x +dims \ = ao, i, x +[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(64), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#56209}(64)] -[visit_exp i#56209] -[visit_id i#56209] +[visit_exp `%`_sz(64)] [visit_exp (64)] [visit_exp 64] [visit_exp x] @@ -78126,9 +63676,7 @@ dims \ = ao, i, i#56170, i#56209, laneidx#37, memarg#167, memidx#258, sz#1523, [visit_id ao] [visit_exp i] [visit_id i] -[visit_exp `%`_u32{i#56170}(87)] -[visit_exp i#56170] -[visit_id i#56170] +[visit_exp `%`_u32(87)] [visit_exp (87)] [visit_exp 87] [visit_exp (x, ao)] @@ -78138,25 +63686,13 @@ dims \ = ao, i, i#56170, i#56209, laneidx#37, memarg#167, memidx#258, sz#1523, [visit_id ao] not free [visit_exp i] [visit_id i] not free -[check_dims] ao i i#56258 i#56297 laneidx#39 memarg#169 memidx#260 sz#1525 vectype#247 x -dims \ = ao, i, i#56258, i#56297, laneidx#39, memarg#169, memidx#260, sz#1525, vectype#247, x -[visit_exp `VSTORE_LANE`_instr{vectype#247, sz#1525, memidx#260, memarg#169, laneidx#39}(`V128`_vectype, `%`_sz{i#56297}(8), x, ao, i)] -[visit_exp vectype#247] -[visit_id vectype#247] -[visit_exp sz#1525] -[visit_id sz#1525] -[visit_exp memidx#260] -[visit_id memidx#260] -[visit_exp memarg#169] -[visit_id memarg#169] -[visit_exp laneidx#39] -[visit_id laneidx#39] -[visit_exp (`V128`_vectype, `%`_sz{i#56297}(8), x, ao, i)] +[check_dims] ao i x +dims \ = ao, i, x +[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(8), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#56297}(8)] -[visit_exp i#56297] -[visit_id i#56297] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x] @@ -78165,9 +63701,7 @@ dims \ = ao, i, i#56258, i#56297, laneidx#39, memarg#169, memidx#260, sz#1525, [visit_id ao] [visit_exp i] [visit_id i] -[visit_exp `%`_u32{i#56258}(88)] -[visit_exp i#56258] -[visit_id i#56258] +[visit_exp `%`_u32(88)] [visit_exp (88)] [visit_exp 88] [visit_exp (x, ao)] @@ -78177,25 +63711,13 @@ dims \ = ao, i, i#56258, i#56297, laneidx#39, memarg#169, memidx#260, sz#1525, [visit_id ao] not free [visit_exp i] [visit_id i] not free -[check_dims] ao i i#56346 i#56385 laneidx#41 memarg#171 memidx#262 sz#1527 vectype#249 x -dims \ = ao, i, i#56346, i#56385, laneidx#41, memarg#171, memidx#262, sz#1527, vectype#249, x -[visit_exp `VSTORE_LANE`_instr{vectype#249, sz#1527, memidx#262, memarg#171, laneidx#41}(`V128`_vectype, `%`_sz{i#56385}(16), x, ao, i)] -[visit_exp vectype#249] -[visit_id vectype#249] -[visit_exp sz#1527] -[visit_id sz#1527] -[visit_exp memidx#262] -[visit_id memidx#262] -[visit_exp memarg#171] -[visit_id memarg#171] -[visit_exp laneidx#41] -[visit_id laneidx#41] -[visit_exp (`V128`_vectype, `%`_sz{i#56385}(16), x, ao, i)] +[check_dims] ao i x +dims \ = ao, i, x +[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(16), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#56385}(16)] -[visit_exp i#56385] -[visit_id i#56385] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp x] @@ -78204,9 +63726,7 @@ dims \ = ao, i, i#56346, i#56385, laneidx#41, memarg#171, memidx#262, sz#1527, [visit_id ao] [visit_exp i] [visit_id i] -[visit_exp `%`_u32{i#56346}(89)] -[visit_exp i#56346] -[visit_id i#56346] +[visit_exp `%`_u32(89)] [visit_exp (89)] [visit_exp 89] [visit_exp (x, ao)] @@ -78216,25 +63736,13 @@ dims \ = ao, i, i#56346, i#56385, laneidx#41, memarg#171, memidx#262, sz#1527, [visit_id ao] not free [visit_exp i] [visit_id i] not free -[check_dims] ao i i#56434 i#56473 laneidx#43 memarg#173 memidx#264 sz#1529 vectype#251 x -dims \ = ao, i, i#56434, i#56473, laneidx#43, memarg#173, memidx#264, sz#1529, vectype#251, x -[visit_exp `VSTORE_LANE`_instr{vectype#251, sz#1529, memidx#264, memarg#173, laneidx#43}(`V128`_vectype, `%`_sz{i#56473}(32), x, ao, i)] -[visit_exp vectype#251] -[visit_id vectype#251] -[visit_exp sz#1529] -[visit_id sz#1529] -[visit_exp memidx#264] -[visit_id memidx#264] -[visit_exp memarg#173] -[visit_id memarg#173] -[visit_exp laneidx#43] -[visit_id laneidx#43] -[visit_exp (`V128`_vectype, `%`_sz{i#56473}(32), x, ao, i)] +[check_dims] ao i x +dims \ = ao, i, x +[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(32), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#56473}(32)] -[visit_exp i#56473] -[visit_id i#56473] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp x] @@ -78243,9 +63751,7 @@ dims \ = ao, i, i#56434, i#56473, laneidx#43, memarg#173, memidx#264, sz#1529, [visit_id ao] [visit_exp i] [visit_id i] -[visit_exp `%`_u32{i#56434}(90)] -[visit_exp i#56434] -[visit_id i#56434] +[visit_exp `%`_u32(90)] [visit_exp (90)] [visit_exp 90] [visit_exp (x, ao)] @@ -78255,25 +63761,13 @@ dims \ = ao, i, i#56434, i#56473, laneidx#43, memarg#173, memidx#264, sz#1529, [visit_id ao] not free [visit_exp i] [visit_id i] not free -[check_dims] ao i i#56522 i#56561 laneidx#45 memarg#175 memidx#266 sz#1531 vectype#253 x -dims \ = ao, i, i#56522, i#56561, laneidx#45, memarg#175, memidx#266, sz#1531, vectype#253, x -[visit_exp `VSTORE_LANE`_instr{vectype#253, sz#1531, memidx#266, memarg#175, laneidx#45}(`V128`_vectype, `%`_sz{i#56561}(64), x, ao, i)] -[visit_exp vectype#253] -[visit_id vectype#253] -[visit_exp sz#1531] -[visit_id sz#1531] -[visit_exp memidx#266] -[visit_id memidx#266] -[visit_exp memarg#175] -[visit_id memarg#175] -[visit_exp laneidx#45] -[visit_id laneidx#45] -[visit_exp (`V128`_vectype, `%`_sz{i#56561}(64), x, ao, i)] +[check_dims] ao i x +dims \ = ao, i, x +[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(64), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#56561}(64)] -[visit_exp i#56561] -[visit_id i#56561] +[visit_exp `%`_sz(64)] [visit_exp (64)] [visit_exp 64] [visit_exp x] @@ -78282,9 +63776,7 @@ dims \ = ao, i, i#56522, i#56561, laneidx#45, memarg#175, memidx#266, sz#1531, [visit_id ao] [visit_exp i] [visit_id i] -[visit_exp `%`_u32{i#56522}(91)] -[visit_exp i#56522] -[visit_id i#56522] +[visit_exp `%`_u32(91)] [visit_exp (91)] [visit_exp 91] [visit_exp (x, ao)] @@ -78294,37 +63786,23 @@ dims \ = ao, i, i#56522, i#56561, laneidx#45, memarg#175, memidx#266, sz#1531, [visit_id ao] not free [visit_exp i] [visit_id i] not free -[check_dims] ao i#56610 i#56650 i#56657 memarg#177 memidx#268 sz#1578 vectype?#25 x -dims \ = ao, i#56610, i#56650, i#56657, memarg#177, memidx#268, sz#1578, vectype?#25, x -[visit_exp `VLOAD`_instr{`vectype?#25`, memidx#268, memarg#177}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#1578, i#56650}(`%`_sz{i#56657}(32))), x, ao)] -[visit_exp `vectype?#25`] -[visit_id vectype?#25] -[visit_exp memidx#268] -[visit_id memidx#268] -[visit_exp memarg#177] -[visit_id memarg#177] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#1578, i#56650}(`%`_sz{i#56657}(32))), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(32))), x, ao)] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(32))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_{sz#1578, i#56650}(`%`_sz{i#56657}(32)))] -[visit_exp `ZERO`_vloadop_{sz#1578, i#56650}(`%`_sz{i#56657}(32))] -[visit_exp sz#1578] -[visit_id sz#1578] -[visit_exp i#56650] -[visit_id i#56650] -[visit_exp (`%`_sz{i#56657}(32))] -[visit_exp `%`_sz{i#56657}(32)] -[visit_exp i#56657] -[visit_id i#56657] +[visit_exp ?(`ZERO`_vloadop_(`%`_sz(32)))] +[visit_exp `ZERO`_vloadop_(`%`_sz(32))] +[visit_exp (`%`_sz(32))] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp x] [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#56610}(92)] -[visit_exp i#56610] -[visit_id i#56610] +[visit_exp `%`_u32(92)] [visit_exp (92)] [visit_exp 92] [visit_exp (x, ao)] @@ -78332,37 +63810,23 @@ dims \ = ao, i#56610, i#56650, i#56657, memarg#177, memidx#268, sz#1578, vectyp [visit_id x] not free [visit_exp ao] [visit_id ao] not free -[check_dims] ao i#56694 i#56734 i#56741 memarg#179 memidx#270 sz#1625 vectype?#26 x -dims \ = ao, i#56694, i#56734, i#56741, memarg#179, memidx#270, sz#1625, vectype?#26, x -[visit_exp `VLOAD`_instr{`vectype?#26`, memidx#270, memarg#179}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#1625, i#56734}(`%`_sz{i#56741}(64))), x, ao)] -[visit_exp `vectype?#26`] -[visit_id vectype?#26] -[visit_exp memidx#270] -[visit_id memidx#270] -[visit_exp memarg#179] -[visit_id memarg#179] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#1625, i#56734}(`%`_sz{i#56741}(64))), x, ao)] +[check_dims] ao x +dims \ = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(64))), x, ao)] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(64))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_{sz#1625, i#56734}(`%`_sz{i#56741}(64)))] -[visit_exp `ZERO`_vloadop_{sz#1625, i#56734}(`%`_sz{i#56741}(64))] -[visit_exp sz#1625] -[visit_id sz#1625] -[visit_exp i#56734] -[visit_id i#56734] -[visit_exp (`%`_sz{i#56741}(64))] -[visit_exp `%`_sz{i#56741}(64)] -[visit_exp i#56741] -[visit_id i#56741] +[visit_exp ?(`ZERO`_vloadop_(`%`_sz(64)))] +[visit_exp `ZERO`_vloadop_(`%`_sz(64))] +[visit_exp (`%`_sz(64))] +[visit_exp `%`_sz(64)] [visit_exp (64)] [visit_exp 64] [visit_exp x] [visit_id x] [visit_exp ao] [visit_id ao] -[visit_exp `%`_u32{i#56694}(93)] -[visit_exp i#56694] -[visit_id i#56694] +[visit_exp `%`_u32(93)] [visit_exp (93)] [visit_exp 93] [visit_exp (x, ao)] @@ -78372,11 +63836,9 @@ dims \ = ao, i#56694, i#56734, i#56741, memarg#179, memidx#270, sz#1625, vectyp [visit_id ao] not free ps' = [check_dims] -[check_dims] b i#56778 vectype#257 -dims \ = b, i#56778, vectype#257 -[visit_exp `VCONST`_instr{vectype#257}(`V128`_vectype, $inv_ibytes_(128, b^16{b <- `b*`}))] -[visit_exp vectype#257] -[visit_id vectype#257] +[check_dims] b +dims \ = b +[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, b^16{b <- `b*`}))] [visit_exp (`V128`_vectype, $inv_ibytes_(128, b^16{b <- `b*`}))] [visit_exp `V128`_vectype] [visit_exp ()] @@ -78392,9 +63854,7 @@ dims \ = b, i#56778, vectype#257 [visit_exp `b*`] [visit_id b*] no dims [visit_id b*] -[visit_exp `%`_u32{i#56778}(12)] -[visit_exp i#56778] -[visit_id i#56778] +[visit_exp `%`_u32(12)] [visit_exp (12)] [visit_exp 12] [scope_enter b] @@ -78408,8711 +63868,4697 @@ dims \ = b, i#56778, vectype#257 [visit_id b*] no dims ps' = [check_dims] -[check_dims] bshape#13 dim#7789 i#56835 i#56884 i#56885 i#56888 i#56892 i#56899 i#56956 i#56957 l laneidx*#7 lanetype#7789 shape#845 shape#856 -dims \ = bshape#13, dim#7789, i#56835, i#56884, i#56885, i#56888, i#56892, i#56899, i#56956, i#56957, l, laneidx*#7, lanetype#7789, shape#845, shape#856 -[visit_exp `VSHUFFLE`_instr{bshape#13, `laneidx*#7`, i#56888, shape#845}(`%`_bshape{shape#856}(`%X%`_shape{lanetype#7789, dim#7789, i#56892}(`I8`_lanetype, `%`_dim{i#56899}(16))), `%`_laneidx{i#56957}(l!`%`_labelidx{i#56956}.0)^16{i#56956 <- `i#56956*`, i#56957 <- `i#56957*`, l <- `l*`})] -[visit_exp bshape#13] -[visit_id bshape#13] -[visit_exp `laneidx*#7`] -[visit_id laneidx*#7] -[visit_exp i#56888] -[visit_id i#56888] -[visit_exp shape#845] -[visit_id shape#845] -[visit_exp (`%`_bshape{shape#856}(`%X%`_shape{lanetype#7789, dim#7789, i#56892}(`I8`_lanetype, `%`_dim{i#56899}(16))), `%`_laneidx{i#56957}(l!`%`_labelidx{i#56956}.0)^16{i#56956 <- `i#56956*`, i#56957 <- `i#56957*`, l <- `l*`})] -[visit_exp `%`_bshape{shape#856}(`%X%`_shape{lanetype#7789, dim#7789, i#56892}(`I8`_lanetype, `%`_dim{i#56899}(16)))] -[visit_exp shape#856] -[visit_id shape#856] -[visit_exp (`%X%`_shape{lanetype#7789, dim#7789, i#56892}(`I8`_lanetype, `%`_dim{i#56899}(16)))] -[visit_exp `%X%`_shape{lanetype#7789, dim#7789, i#56892}(`I8`_lanetype, `%`_dim{i#56899}(16))] -[visit_exp lanetype#7789] -[visit_id lanetype#7789] -[visit_exp dim#7789] -[visit_id dim#7789] -[visit_exp i#56892] -[visit_id i#56892] -[visit_exp (`I8`_lanetype, `%`_dim{i#56899}(16))] +[check_dims] l +dims \ = l +[visit_exp `VSHUFFLE`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_laneidx(l!`%`_labelidx.0)^16{l <- `l*`})] +[visit_exp (`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_laneidx(l!`%`_labelidx.0)^16{l <- `l*`})] +[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#56899}(16)] -[visit_exp i#56899] -[visit_id i#56899] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `%`_laneidx{i#56957}(l!`%`_labelidx{i#56956}.0)^16{i#56956 <- `i#56956*`, i#56957 <- `i#56957*`, l <- `l*`}] -[scope_enter i#56956] -[scope_enter i#56957] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)^16{l <- `l*`}] [scope_enter l] -[visit_exp `%`_laneidx{i#56957}(l!`%`_labelidx{i#56956}.0)] -[visit_exp i#56957] -[visit_id i#56957] not free -[visit_exp (l!`%`_labelidx{i#56956}.0)] -[visit_exp l!`%`_labelidx{i#56956}.0] -[visit_exp l!`%`_labelidx{i#56956}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#56956] -[visit_id i#56956] not free -[visit_id i#56956] not free -[visit_id i#56957] not free [visit_id l] not free [scope_exit l] -[scope_exit i#56957] -[scope_exit i#56956] [visit_exp 16] -[visit_exp `i#56956*`] -[visit_id i#56956*] no dims -[visit_id i#56956*] -[visit_exp `i#56957*`] -[visit_id i#56957*] no dims -[visit_id i#56957*] [visit_exp `l*`] [visit_id l*] no dims [visit_id l*] -[visit_exp `%`_u32{i#56835}(13)] -[visit_exp i#56835] -[visit_id i#56835] +[visit_exp `%`_u32(13)] [visit_exp (13)] [visit_exp 13] -[scope_enter i#56884] -[scope_enter i#56885] [scope_enter l] -[visit_exp `%`_laneidx{i#56885}(l!`%`_labelidx{i#56884}.0)] -[visit_exp i#56885] -[visit_id i#56885] not free -[visit_exp (l!`%`_labelidx{i#56884}.0)] -[visit_exp l!`%`_labelidx{i#56884}.0] -[visit_exp l!`%`_labelidx{i#56884}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#56884] -[visit_id i#56884] not free -[visit_id i#56884] not free -[visit_id i#56885] not free [visit_id l] not free [scope_exit l] -[scope_exit i#56885] -[scope_exit i#56884] [visit_exp 16] -[visit_exp `i#56884*`] -[visit_id i#56884*] no dims -[visit_id i#56884*] -[visit_exp `i#56885*`] -[visit_id i#56885*] no dims -[visit_id i#56885*] [visit_exp `l*`] [visit_id l*] not free [visit_id l*] no dims -[check_dims] bshape#15 dim#7801 i#56981 i#56988 i#56995 lanetype#7801 shape#868 -dims \ = bshape#15, dim#7801, i#56981, i#56988, i#56995, lanetype#7801, shape#868 -[visit_exp `VSWIZZLOP`_instr{bshape#15}(`%`_bshape{shape#868}(`%X%`_shape{lanetype#7801, dim#7801, i#56988}(`I8`_lanetype, `%`_dim{i#56995}(16))), `SWIZZLE`_vswizzlop_)] -[visit_exp bshape#15] -[visit_id bshape#15] -[visit_exp (`%`_bshape{shape#868}(`%X%`_shape{lanetype#7801, dim#7801, i#56988}(`I8`_lanetype, `%`_dim{i#56995}(16))), `SWIZZLE`_vswizzlop_)] -[visit_exp `%`_bshape{shape#868}(`%X%`_shape{lanetype#7801, dim#7801, i#56988}(`I8`_lanetype, `%`_dim{i#56995}(16)))] -[visit_exp shape#868] -[visit_id shape#868] -[visit_exp (`%X%`_shape{lanetype#7801, dim#7801, i#56988}(`I8`_lanetype, `%`_dim{i#56995}(16)))] -[visit_exp `%X%`_shape{lanetype#7801, dim#7801, i#56988}(`I8`_lanetype, `%`_dim{i#56995}(16))] -[visit_exp lanetype#7801] -[visit_id lanetype#7801] -[visit_exp dim#7801] -[visit_id dim#7801] -[visit_exp i#56988] -[visit_id i#56988] -[visit_exp (`I8`_lanetype, `%`_dim{i#56995}(16))] +[check_dims] +dims \ = +[visit_exp `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SWIZZLE`_vswizzlop_)] +[visit_exp (`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SWIZZLE`_vswizzlop_)] +[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#56995}(16)] -[visit_exp i#56995] -[visit_id i#56995] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `SWIZZLE`_vswizzlop_] [visit_exp ()] -[visit_exp `%`_u32{i#56981}(14)] -[visit_exp i#56981] -[visit_id i#56981] +[visit_exp `%`_u32(14)] [visit_exp (14)] [visit_exp 14] -[check_dims] bshape#17 dim#7858 i#57093 i#57100 i#57107 lanetype#7858 shape#895 -dims \ = bshape#17, dim#7858, i#57093, i#57100, i#57107, lanetype#7858, shape#895 -[visit_exp `VSWIZZLOP`_instr{bshape#17}(`%`_bshape{shape#895}(`%X%`_shape{lanetype#7858, dim#7858, i#57100}(`I8`_lanetype, `%`_dim{i#57107}(16))), `RELAXED_SWIZZLE`_vswizzlop_)] -[visit_exp bshape#17] -[visit_id bshape#17] -[visit_exp (`%`_bshape{shape#895}(`%X%`_shape{lanetype#7858, dim#7858, i#57100}(`I8`_lanetype, `%`_dim{i#57107}(16))), `RELAXED_SWIZZLE`_vswizzlop_)] -[visit_exp `%`_bshape{shape#895}(`%X%`_shape{lanetype#7858, dim#7858, i#57100}(`I8`_lanetype, `%`_dim{i#57107}(16)))] -[visit_exp shape#895] -[visit_id shape#895] -[visit_exp (`%X%`_shape{lanetype#7858, dim#7858, i#57100}(`I8`_lanetype, `%`_dim{i#57107}(16)))] -[visit_exp `%X%`_shape{lanetype#7858, dim#7858, i#57100}(`I8`_lanetype, `%`_dim{i#57107}(16))] -[visit_exp lanetype#7858] -[visit_id lanetype#7858] -[visit_exp dim#7858] -[visit_id dim#7858] -[visit_exp i#57100] -[visit_id i#57100] -[visit_exp (`I8`_lanetype, `%`_dim{i#57107}(16))] +[check_dims] +dims \ = +[visit_exp `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_SWIZZLE`_vswizzlop_)] +[visit_exp (`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_SWIZZLE`_vswizzlop_)] +[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#57107}(16)] -[visit_exp i#57107] -[visit_id i#57107] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `RELAXED_SWIZZLE`_vswizzlop_] [visit_exp ()] -[visit_exp `%`_u32{i#57093}(256)] -[visit_exp i#57093] -[visit_id i#57093] +[visit_exp `%`_u32(256)] [visit_exp (256)] [visit_exp 256] ps' = [check_dims] -[check_dims] dim#7915 i#57205 i#57212 i#57219 lanetype#7915 shape#912 -dims \ = dim#7915, i#57205, i#57212, i#57219, lanetype#7915, shape#912 -[visit_exp `VSPLAT`_instr{shape#912}(`%X%`_shape{lanetype#7915, dim#7915, i#57212}(`I8`_lanetype, `%`_dim{i#57219}(16)))] -[visit_exp shape#912] -[visit_id shape#912] -[visit_exp (`%X%`_shape{lanetype#7915, dim#7915, i#57212}(`I8`_lanetype, `%`_dim{i#57219}(16)))] -[visit_exp `%X%`_shape{lanetype#7915, dim#7915, i#57212}(`I8`_lanetype, `%`_dim{i#57219}(16))] -[visit_exp lanetype#7915] -[visit_id lanetype#7915] -[visit_exp dim#7915] -[visit_id dim#7915] -[visit_exp i#57212] -[visit_id i#57212] -[visit_exp (`I8`_lanetype, `%`_dim{i#57219}(16))] +[check_dims] +dims \ = +[visit_exp `VSPLAT`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#57219}(16)] -[visit_exp i#57219] -[visit_id i#57219] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `%`_u32{i#57205}(15)] -[visit_exp i#57205] -[visit_id i#57205] +[visit_exp `%`_u32(15)] [visit_exp (15)] [visit_exp 15] -[check_dims] dim#7927 i#57242 i#57249 i#57256 lanetype#7927 shape#914 -dims \ = dim#7927, i#57242, i#57249, i#57256, lanetype#7927, shape#914 -[visit_exp `VSPLAT`_instr{shape#914}(`%X%`_shape{lanetype#7927, dim#7927, i#57249}(`I16`_lanetype, `%`_dim{i#57256}(8)))] -[visit_exp shape#914] -[visit_id shape#914] -[visit_exp (`%X%`_shape{lanetype#7927, dim#7927, i#57249}(`I16`_lanetype, `%`_dim{i#57256}(8)))] -[visit_exp `%X%`_shape{lanetype#7927, dim#7927, i#57249}(`I16`_lanetype, `%`_dim{i#57256}(8))] -[visit_exp lanetype#7927] -[visit_id lanetype#7927] -[visit_exp dim#7927] -[visit_id dim#7927] -[visit_exp i#57249] -[visit_id i#57249] -[visit_exp (`I16`_lanetype, `%`_dim{i#57256}(8))] +[check_dims] +dims \ = +[visit_exp `VSPLAT`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#57256}(8)] -[visit_exp i#57256] -[visit_id i#57256] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_u32{i#57242}(16)] -[visit_exp i#57242] -[visit_id i#57242] +[visit_exp `%`_u32(16)] [visit_exp (16)] [visit_exp 16] -[check_dims] dim#7939 i#57279 i#57286 i#57293 lanetype#7939 shape#916 -dims \ = dim#7939, i#57279, i#57286, i#57293, lanetype#7939, shape#916 -[visit_exp `VSPLAT`_instr{shape#916}(`%X%`_shape{lanetype#7939, dim#7939, i#57286}(`I32`_lanetype, `%`_dim{i#57293}(4)))] -[visit_exp shape#916] -[visit_id shape#916] -[visit_exp (`%X%`_shape{lanetype#7939, dim#7939, i#57286}(`I32`_lanetype, `%`_dim{i#57293}(4)))] -[visit_exp `%X%`_shape{lanetype#7939, dim#7939, i#57286}(`I32`_lanetype, `%`_dim{i#57293}(4))] -[visit_exp lanetype#7939] -[visit_id lanetype#7939] -[visit_exp dim#7939] -[visit_id dim#7939] -[visit_exp i#57286] -[visit_id i#57286] -[visit_exp (`I32`_lanetype, `%`_dim{i#57293}(4))] +[check_dims] +dims \ = +[visit_exp `VSPLAT`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#57293}(4)] -[visit_exp i#57293] -[visit_id i#57293] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_u32{i#57279}(17)] -[visit_exp i#57279] -[visit_id i#57279] +[visit_exp `%`_u32(17)] [visit_exp (17)] [visit_exp 17] -[check_dims] dim#7951 i#57316 i#57323 i#57330 lanetype#7951 shape#918 -dims \ = dim#7951, i#57316, i#57323, i#57330, lanetype#7951, shape#918 -[visit_exp `VSPLAT`_instr{shape#918}(`%X%`_shape{lanetype#7951, dim#7951, i#57323}(`I64`_lanetype, `%`_dim{i#57330}(2)))] -[visit_exp shape#918] -[visit_id shape#918] -[visit_exp (`%X%`_shape{lanetype#7951, dim#7951, i#57323}(`I64`_lanetype, `%`_dim{i#57330}(2)))] -[visit_exp `%X%`_shape{lanetype#7951, dim#7951, i#57323}(`I64`_lanetype, `%`_dim{i#57330}(2))] -[visit_exp lanetype#7951] -[visit_id lanetype#7951] -[visit_exp dim#7951] -[visit_id dim#7951] -[visit_exp i#57323] -[visit_id i#57323] -[visit_exp (`I64`_lanetype, `%`_dim{i#57330}(2))] +[check_dims] +dims \ = +[visit_exp `VSPLAT`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#57330}(2)] -[visit_exp i#57330] -[visit_id i#57330] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%`_u32{i#57316}(18)] -[visit_exp i#57316] -[visit_id i#57316] +[visit_exp `%`_u32(18)] [visit_exp (18)] [visit_exp 18] -[check_dims] dim#7963 i#57353 i#57360 i#57367 lanetype#7963 shape#920 -dims \ = dim#7963, i#57353, i#57360, i#57367, lanetype#7963, shape#920 -[visit_exp `VSPLAT`_instr{shape#920}(`%X%`_shape{lanetype#7963, dim#7963, i#57360}(`F32`_lanetype, `%`_dim{i#57367}(4)))] -[visit_exp shape#920] -[visit_id shape#920] -[visit_exp (`%X%`_shape{lanetype#7963, dim#7963, i#57360}(`F32`_lanetype, `%`_dim{i#57367}(4)))] -[visit_exp `%X%`_shape{lanetype#7963, dim#7963, i#57360}(`F32`_lanetype, `%`_dim{i#57367}(4))] -[visit_exp lanetype#7963] -[visit_id lanetype#7963] -[visit_exp dim#7963] -[visit_id dim#7963] -[visit_exp i#57360] -[visit_id i#57360] -[visit_exp (`F32`_lanetype, `%`_dim{i#57367}(4))] +[check_dims] +dims \ = +[visit_exp `VSPLAT`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#57367}(4)] -[visit_exp i#57367] -[visit_id i#57367] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_u32{i#57353}(19)] -[visit_exp i#57353] -[visit_id i#57353] +[visit_exp `%`_u32(19)] [visit_exp (19)] [visit_exp 19] -[check_dims] dim#7975 i#57390 i#57397 i#57404 lanetype#7975 shape#922 -dims \ = dim#7975, i#57390, i#57397, i#57404, lanetype#7975, shape#922 -[visit_exp `VSPLAT`_instr{shape#922}(`%X%`_shape{lanetype#7975, dim#7975, i#57397}(`F64`_lanetype, `%`_dim{i#57404}(2)))] -[visit_exp shape#922] -[visit_id shape#922] -[visit_exp (`%X%`_shape{lanetype#7975, dim#7975, i#57397}(`F64`_lanetype, `%`_dim{i#57404}(2)))] -[visit_exp `%X%`_shape{lanetype#7975, dim#7975, i#57397}(`F64`_lanetype, `%`_dim{i#57404}(2))] -[visit_exp lanetype#7975] -[visit_id lanetype#7975] -[visit_exp dim#7975] -[visit_id dim#7975] -[visit_exp i#57397] -[visit_id i#57397] -[visit_exp (`F64`_lanetype, `%`_dim{i#57404}(2))] +[check_dims] +dims \ = +[visit_exp `VSPLAT`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#57404}(2)] -[visit_exp i#57404] -[visit_id i#57404] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%`_u32{i#57390}(20)] -[visit_exp i#57390] -[visit_id i#57390] +[visit_exp `%`_u32(20)] [visit_exp (20)] [visit_exp 20] ps' = [check_dims] -[check_dims] dim#7987 i#57427 i#57476 i#57477 i#57485 i#57492 i#57582 i#57583 l laneidx#47 lanetype#7987 shape#924 sx?#43 -dims \ = dim#7987, i#57427, i#57476, i#57477, i#57485, i#57492, i#57582, i#57583, l, laneidx#47, lanetype#7987, shape#924, sx?#43 -[visit_exp `VEXTRACT_LANE`_instr{shape#924, `sx?#43`, laneidx#47}(`%X%`_shape{lanetype#7987, dim#7987, i#57485}(`I8`_lanetype, `%`_dim{i#57492}(16)), ?(`S`_sx), `%`_laneidx{i#57583}(l!`%`_labelidx{i#57582}.0))] -[visit_exp shape#924] -[visit_id shape#924] -[visit_exp `sx?#43`] -[visit_id sx?#43] -[visit_exp laneidx#47] -[visit_id laneidx#47] -[visit_exp (`%X%`_shape{lanetype#7987, dim#7987, i#57485}(`I8`_lanetype, `%`_dim{i#57492}(16)), ?(`S`_sx), `%`_laneidx{i#57583}(l!`%`_labelidx{i#57582}.0))] -[visit_exp `%X%`_shape{lanetype#7987, dim#7987, i#57485}(`I8`_lanetype, `%`_dim{i#57492}(16))] -[visit_exp lanetype#7987] -[visit_id lanetype#7987] -[visit_exp dim#7987] -[visit_id dim#7987] -[visit_exp i#57485] -[visit_id i#57485] -[visit_exp (`I8`_lanetype, `%`_dim{i#57492}(16))] +[check_dims] l +dims \ = l +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`S`_sx), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`S`_sx), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#57492}(16)] -[visit_exp i#57492] -[visit_id i#57492] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp ?(`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_laneidx{i#57583}(l!`%`_labelidx{i#57582}.0)] -[visit_exp i#57583] -[visit_id i#57583] -[visit_exp (l!`%`_labelidx{i#57582}.0)] -[visit_exp l!`%`_labelidx{i#57582}.0] -[visit_exp l!`%`_labelidx{i#57582}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#57582] -[visit_id i#57582] -[visit_exp `%`_u32{i#57427}(21)] -[visit_exp i#57427] -[visit_id i#57427] +[visit_exp `%`_u32(21)] [visit_exp (21)] [visit_exp 21] -[visit_exp `%`_laneidx{i#57477}(l!`%`_labelidx{i#57476}.0)] -[visit_exp i#57477] -[visit_id i#57477] -[visit_exp (l!`%`_labelidx{i#57476}.0)] -[visit_exp l!`%`_labelidx{i#57476}.0] -[visit_exp l!`%`_labelidx{i#57476}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#57476] -[visit_id i#57476] -[check_dims] dim#7999 i#57607 i#57656 i#57657 i#57665 i#57672 i#57762 i#57763 l laneidx#49 lanetype#7999 shape#926 sx?#45 -dims \ = dim#7999, i#57607, i#57656, i#57657, i#57665, i#57672, i#57762, i#57763, l, laneidx#49, lanetype#7999, shape#926, sx?#45 -[visit_exp `VEXTRACT_LANE`_instr{shape#926, `sx?#45`, laneidx#49}(`%X%`_shape{lanetype#7999, dim#7999, i#57665}(`I8`_lanetype, `%`_dim{i#57672}(16)), ?(`U`_sx), `%`_laneidx{i#57763}(l!`%`_labelidx{i#57762}.0))] -[visit_exp shape#926] -[visit_id shape#926] -[visit_exp `sx?#45`] -[visit_id sx?#45] -[visit_exp laneidx#49] -[visit_id laneidx#49] -[visit_exp (`%X%`_shape{lanetype#7999, dim#7999, i#57665}(`I8`_lanetype, `%`_dim{i#57672}(16)), ?(`U`_sx), `%`_laneidx{i#57763}(l!`%`_labelidx{i#57762}.0))] -[visit_exp `%X%`_shape{lanetype#7999, dim#7999, i#57665}(`I8`_lanetype, `%`_dim{i#57672}(16))] -[visit_exp lanetype#7999] -[visit_id lanetype#7999] -[visit_exp dim#7999] -[visit_id dim#7999] -[visit_exp i#57665] -[visit_id i#57665] -[visit_exp (`I8`_lanetype, `%`_dim{i#57672}(16))] +[check_dims] l +dims \ = l +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`U`_sx), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`U`_sx), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#57672}(16)] -[visit_exp i#57672] -[visit_id i#57672] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp ?(`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_laneidx{i#57763}(l!`%`_labelidx{i#57762}.0)] -[visit_exp i#57763] -[visit_id i#57763] -[visit_exp (l!`%`_labelidx{i#57762}.0)] -[visit_exp l!`%`_labelidx{i#57762}.0] -[visit_exp l!`%`_labelidx{i#57762}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#57762] -[visit_id i#57762] -[visit_exp `%`_u32{i#57607}(22)] -[visit_exp i#57607] -[visit_id i#57607] +[visit_exp `%`_u32(22)] [visit_exp (22)] [visit_exp 22] -[visit_exp `%`_laneidx{i#57657}(l!`%`_labelidx{i#57656}.0)] -[visit_exp i#57657] -[visit_id i#57657] -[visit_exp (l!`%`_labelidx{i#57656}.0)] -[visit_exp l!`%`_labelidx{i#57656}.0] -[visit_exp l!`%`_labelidx{i#57656}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#57656] -[visit_id i#57656] -[check_dims] dim#8011 i#57787 i#57836 i#57837 i#57845 i#57852 i#57898 i#57899 l laneidx#51 lanetype#8011 shape#928 -dims \ = dim#8011, i#57787, i#57836, i#57837, i#57845, i#57852, i#57898, i#57899, l, laneidx#51, lanetype#8011, shape#928 -[visit_exp `VREPLACE_LANE`_instr{shape#928, laneidx#51}(`%X%`_shape{lanetype#8011, dim#8011, i#57845}(`I8`_lanetype, `%`_dim{i#57852}(16)), `%`_laneidx{i#57899}(l!`%`_labelidx{i#57898}.0))] -[visit_exp shape#928] -[visit_id shape#928] -[visit_exp laneidx#51] -[visit_id laneidx#51] -[visit_exp (`%X%`_shape{lanetype#8011, dim#8011, i#57845}(`I8`_lanetype, `%`_dim{i#57852}(16)), `%`_laneidx{i#57899}(l!`%`_labelidx{i#57898}.0))] -[visit_exp `%X%`_shape{lanetype#8011, dim#8011, i#57845}(`I8`_lanetype, `%`_dim{i#57852}(16))] -[visit_exp lanetype#8011] -[visit_id lanetype#8011] -[visit_exp dim#8011] -[visit_id dim#8011] -[visit_exp i#57845] -[visit_id i#57845] -[visit_exp (`I8`_lanetype, `%`_dim{i#57852}(16))] +[check_dims] l +dims \ = l +[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#57852}(16)] -[visit_exp i#57852] -[visit_id i#57852] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `%`_laneidx{i#57899}(l!`%`_labelidx{i#57898}.0)] -[visit_exp i#57899] -[visit_id i#57899] -[visit_exp (l!`%`_labelidx{i#57898}.0)] -[visit_exp l!`%`_labelidx{i#57898}.0] -[visit_exp l!`%`_labelidx{i#57898}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#57898] -[visit_id i#57898] -[visit_exp `%`_u32{i#57787}(23)] -[visit_exp i#57787] -[visit_id i#57787] +[visit_exp `%`_u32(23)] [visit_exp (23)] [visit_exp 23] -[visit_exp `%`_laneidx{i#57837}(l!`%`_labelidx{i#57836}.0)] -[visit_exp i#57837] -[visit_id i#57837] -[visit_exp (l!`%`_labelidx{i#57836}.0)] -[visit_exp l!`%`_labelidx{i#57836}.0] -[visit_exp l!`%`_labelidx{i#57836}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#57836] -[visit_id i#57836] -[check_dims] dim#8023 i#57923 i#57972 i#57973 i#57981 i#57988 i#58078 i#58079 l laneidx#53 lanetype#8023 shape#930 sx?#47 -dims \ = dim#8023, i#57923, i#57972, i#57973, i#57981, i#57988, i#58078, i#58079, l, laneidx#53, lanetype#8023, shape#930, sx?#47 -[visit_exp `VEXTRACT_LANE`_instr{shape#930, `sx?#47`, laneidx#53}(`%X%`_shape{lanetype#8023, dim#8023, i#57981}(`I16`_lanetype, `%`_dim{i#57988}(8)), ?(`S`_sx), `%`_laneidx{i#58079}(l!`%`_labelidx{i#58078}.0))] -[visit_exp shape#930] -[visit_id shape#930] -[visit_exp `sx?#47`] -[visit_id sx?#47] -[visit_exp laneidx#53] -[visit_id laneidx#53] -[visit_exp (`%X%`_shape{lanetype#8023, dim#8023, i#57981}(`I16`_lanetype, `%`_dim{i#57988}(8)), ?(`S`_sx), `%`_laneidx{i#58079}(l!`%`_labelidx{i#58078}.0))] -[visit_exp `%X%`_shape{lanetype#8023, dim#8023, i#57981}(`I16`_lanetype, `%`_dim{i#57988}(8))] -[visit_exp lanetype#8023] -[visit_id lanetype#8023] -[visit_exp dim#8023] -[visit_id dim#8023] -[visit_exp i#57981] -[visit_id i#57981] -[visit_exp (`I16`_lanetype, `%`_dim{i#57988}(8))] +[check_dims] l +dims \ = l +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`S`_sx), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`S`_sx), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#57988}(8)] -[visit_exp i#57988] -[visit_id i#57988] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp ?(`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_laneidx{i#58079}(l!`%`_labelidx{i#58078}.0)] -[visit_exp i#58079] -[visit_id i#58079] -[visit_exp (l!`%`_labelidx{i#58078}.0)] -[visit_exp l!`%`_labelidx{i#58078}.0] -[visit_exp l!`%`_labelidx{i#58078}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#58078] -[visit_id i#58078] -[visit_exp `%`_u32{i#57923}(24)] -[visit_exp i#57923] -[visit_id i#57923] +[visit_exp `%`_u32(24)] [visit_exp (24)] [visit_exp 24] -[visit_exp `%`_laneidx{i#57973}(l!`%`_labelidx{i#57972}.0)] -[visit_exp i#57973] -[visit_id i#57973] -[visit_exp (l!`%`_labelidx{i#57972}.0)] -[visit_exp l!`%`_labelidx{i#57972}.0] -[visit_exp l!`%`_labelidx{i#57972}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#57972] -[visit_id i#57972] -[check_dims] dim#8035 i#58103 i#58152 i#58153 i#58161 i#58168 i#58258 i#58259 l laneidx#55 lanetype#8035 shape#932 sx?#49 -dims \ = dim#8035, i#58103, i#58152, i#58153, i#58161, i#58168, i#58258, i#58259, l, laneidx#55, lanetype#8035, shape#932, sx?#49 -[visit_exp `VEXTRACT_LANE`_instr{shape#932, `sx?#49`, laneidx#55}(`%X%`_shape{lanetype#8035, dim#8035, i#58161}(`I16`_lanetype, `%`_dim{i#58168}(8)), ?(`U`_sx), `%`_laneidx{i#58259}(l!`%`_labelidx{i#58258}.0))] -[visit_exp shape#932] -[visit_id shape#932] -[visit_exp `sx?#49`] -[visit_id sx?#49] -[visit_exp laneidx#55] -[visit_id laneidx#55] -[visit_exp (`%X%`_shape{lanetype#8035, dim#8035, i#58161}(`I16`_lanetype, `%`_dim{i#58168}(8)), ?(`U`_sx), `%`_laneidx{i#58259}(l!`%`_labelidx{i#58258}.0))] -[visit_exp `%X%`_shape{lanetype#8035, dim#8035, i#58161}(`I16`_lanetype, `%`_dim{i#58168}(8))] -[visit_exp lanetype#8035] -[visit_id lanetype#8035] -[visit_exp dim#8035] -[visit_id dim#8035] -[visit_exp i#58161] -[visit_id i#58161] -[visit_exp (`I16`_lanetype, `%`_dim{i#58168}(8))] +[check_dims] l +dims \ = l +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`U`_sx), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`U`_sx), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#58168}(8)] -[visit_exp i#58168] -[visit_id i#58168] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp ?(`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_laneidx{i#58259}(l!`%`_labelidx{i#58258}.0)] -[visit_exp i#58259] -[visit_id i#58259] -[visit_exp (l!`%`_labelidx{i#58258}.0)] -[visit_exp l!`%`_labelidx{i#58258}.0] -[visit_exp l!`%`_labelidx{i#58258}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#58258] -[visit_id i#58258] -[visit_exp `%`_u32{i#58103}(25)] -[visit_exp i#58103] -[visit_id i#58103] +[visit_exp `%`_u32(25)] [visit_exp (25)] [visit_exp 25] -[visit_exp `%`_laneidx{i#58153}(l!`%`_labelidx{i#58152}.0)] -[visit_exp i#58153] -[visit_id i#58153] -[visit_exp (l!`%`_labelidx{i#58152}.0)] -[visit_exp l!`%`_labelidx{i#58152}.0] -[visit_exp l!`%`_labelidx{i#58152}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#58152] -[visit_id i#58152] -[check_dims] dim#8047 i#58283 i#58332 i#58333 i#58341 i#58348 i#58394 i#58395 l laneidx#57 lanetype#8047 shape#934 -dims \ = dim#8047, i#58283, i#58332, i#58333, i#58341, i#58348, i#58394, i#58395, l, laneidx#57, lanetype#8047, shape#934 -[visit_exp `VREPLACE_LANE`_instr{shape#934, laneidx#57}(`%X%`_shape{lanetype#8047, dim#8047, i#58341}(`I16`_lanetype, `%`_dim{i#58348}(8)), `%`_laneidx{i#58395}(l!`%`_labelidx{i#58394}.0))] -[visit_exp shape#934] -[visit_id shape#934] -[visit_exp laneidx#57] -[visit_id laneidx#57] -[visit_exp (`%X%`_shape{lanetype#8047, dim#8047, i#58341}(`I16`_lanetype, `%`_dim{i#58348}(8)), `%`_laneidx{i#58395}(l!`%`_labelidx{i#58394}.0))] -[visit_exp `%X%`_shape{lanetype#8047, dim#8047, i#58341}(`I16`_lanetype, `%`_dim{i#58348}(8))] -[visit_exp lanetype#8047] -[visit_id lanetype#8047] -[visit_exp dim#8047] -[visit_id dim#8047] -[visit_exp i#58341] -[visit_id i#58341] -[visit_exp (`I16`_lanetype, `%`_dim{i#58348}(8))] +[check_dims] l +dims \ = l +[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#58348}(8)] -[visit_exp i#58348] -[visit_id i#58348] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_laneidx{i#58395}(l!`%`_labelidx{i#58394}.0)] -[visit_exp i#58395] -[visit_id i#58395] -[visit_exp (l!`%`_labelidx{i#58394}.0)] -[visit_exp l!`%`_labelidx{i#58394}.0] -[visit_exp l!`%`_labelidx{i#58394}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#58394] -[visit_id i#58394] -[visit_exp `%`_u32{i#58283}(26)] -[visit_exp i#58283] -[visit_id i#58283] +[visit_exp `%`_u32(26)] [visit_exp (26)] [visit_exp 26] -[visit_exp `%`_laneidx{i#58333}(l!`%`_labelidx{i#58332}.0)] -[visit_exp i#58333] -[visit_id i#58333] -[visit_exp (l!`%`_labelidx{i#58332}.0)] -[visit_exp l!`%`_labelidx{i#58332}.0] -[visit_exp l!`%`_labelidx{i#58332}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#58332] -[visit_id i#58332] -[check_dims] dim#8059 i#58419 i#58468 i#58469 i#58477 i#58484 i#58530 i#58531 l laneidx#59 lanetype#8059 shape#936 sx?#51 -dims \ = dim#8059, i#58419, i#58468, i#58469, i#58477, i#58484, i#58530, i#58531, l, laneidx#59, lanetype#8059, shape#936, sx?#51 -[visit_exp `VEXTRACT_LANE`_instr{shape#936, `sx?#51`, laneidx#59}(`%X%`_shape{lanetype#8059, dim#8059, i#58477}(`I32`_lanetype, `%`_dim{i#58484}(4)), ?(), `%`_laneidx{i#58531}(l!`%`_labelidx{i#58530}.0))] -[visit_exp shape#936] -[visit_id shape#936] -[visit_exp `sx?#51`] -[visit_id sx?#51] -[visit_exp laneidx#59] -[visit_id laneidx#59] -[visit_exp (`%X%`_shape{lanetype#8059, dim#8059, i#58477}(`I32`_lanetype, `%`_dim{i#58484}(4)), ?(), `%`_laneidx{i#58531}(l!`%`_labelidx{i#58530}.0))] -[visit_exp `%X%`_shape{lanetype#8059, dim#8059, i#58477}(`I32`_lanetype, `%`_dim{i#58484}(4))] -[visit_exp lanetype#8059] -[visit_id lanetype#8059] -[visit_exp dim#8059] -[visit_id dim#8059] -[visit_exp i#58477] -[visit_id i#58477] -[visit_exp (`I32`_lanetype, `%`_dim{i#58484}(4))] +[check_dims] l +dims \ = l +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#58484}(4)] -[visit_exp i#58484] -[visit_id i#58484] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp ?()] -[visit_exp `%`_laneidx{i#58531}(l!`%`_labelidx{i#58530}.0)] -[visit_exp i#58531] -[visit_id i#58531] -[visit_exp (l!`%`_labelidx{i#58530}.0)] -[visit_exp l!`%`_labelidx{i#58530}.0] -[visit_exp l!`%`_labelidx{i#58530}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#58530] -[visit_id i#58530] -[visit_exp `%`_u32{i#58419}(27)] -[visit_exp i#58419] -[visit_id i#58419] +[visit_exp `%`_u32(27)] [visit_exp (27)] [visit_exp 27] -[visit_exp `%`_laneidx{i#58469}(l!`%`_labelidx{i#58468}.0)] -[visit_exp i#58469] -[visit_id i#58469] -[visit_exp (l!`%`_labelidx{i#58468}.0)] -[visit_exp l!`%`_labelidx{i#58468}.0] -[visit_exp l!`%`_labelidx{i#58468}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#58468] -[visit_id i#58468] -[check_dims] dim#8071 i#58555 i#58604 i#58605 i#58613 i#58620 i#58666 i#58667 l laneidx#61 lanetype#8071 shape#938 -dims \ = dim#8071, i#58555, i#58604, i#58605, i#58613, i#58620, i#58666, i#58667, l, laneidx#61, lanetype#8071, shape#938 -[visit_exp `VREPLACE_LANE`_instr{shape#938, laneidx#61}(`%X%`_shape{lanetype#8071, dim#8071, i#58613}(`I32`_lanetype, `%`_dim{i#58620}(4)), `%`_laneidx{i#58667}(l!`%`_labelidx{i#58666}.0))] -[visit_exp shape#938] -[visit_id shape#938] -[visit_exp laneidx#61] -[visit_id laneidx#61] -[visit_exp (`%X%`_shape{lanetype#8071, dim#8071, i#58613}(`I32`_lanetype, `%`_dim{i#58620}(4)), `%`_laneidx{i#58667}(l!`%`_labelidx{i#58666}.0))] -[visit_exp `%X%`_shape{lanetype#8071, dim#8071, i#58613}(`I32`_lanetype, `%`_dim{i#58620}(4))] -[visit_exp lanetype#8071] -[visit_id lanetype#8071] -[visit_exp dim#8071] -[visit_id dim#8071] -[visit_exp i#58613] -[visit_id i#58613] -[visit_exp (`I32`_lanetype, `%`_dim{i#58620}(4))] +[check_dims] l +dims \ = l +[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#58620}(4)] -[visit_exp i#58620] -[visit_id i#58620] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_laneidx{i#58667}(l!`%`_labelidx{i#58666}.0)] -[visit_exp i#58667] -[visit_id i#58667] -[visit_exp (l!`%`_labelidx{i#58666}.0)] -[visit_exp l!`%`_labelidx{i#58666}.0] -[visit_exp l!`%`_labelidx{i#58666}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#58666] -[visit_id i#58666] -[visit_exp `%`_u32{i#58555}(28)] -[visit_exp i#58555] -[visit_id i#58555] +[visit_exp `%`_u32(28)] [visit_exp (28)] [visit_exp 28] -[visit_exp `%`_laneidx{i#58605}(l!`%`_labelidx{i#58604}.0)] -[visit_exp i#58605] -[visit_id i#58605] -[visit_exp (l!`%`_labelidx{i#58604}.0)] -[visit_exp l!`%`_labelidx{i#58604}.0] -[visit_exp l!`%`_labelidx{i#58604}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#58604] -[visit_id i#58604] -[check_dims] dim#8083 i#58691 i#58740 i#58741 i#58749 i#58756 i#58802 i#58803 l laneidx#63 lanetype#8083 shape#940 sx?#53 -dims \ = dim#8083, i#58691, i#58740, i#58741, i#58749, i#58756, i#58802, i#58803, l, laneidx#63, lanetype#8083, shape#940, sx?#53 -[visit_exp `VEXTRACT_LANE`_instr{shape#940, `sx?#53`, laneidx#63}(`%X%`_shape{lanetype#8083, dim#8083, i#58749}(`I64`_lanetype, `%`_dim{i#58756}(2)), ?(), `%`_laneidx{i#58803}(l!`%`_labelidx{i#58802}.0))] -[visit_exp shape#940] -[visit_id shape#940] -[visit_exp `sx?#53`] -[visit_id sx?#53] -[visit_exp laneidx#63] -[visit_id laneidx#63] -[visit_exp (`%X%`_shape{lanetype#8083, dim#8083, i#58749}(`I64`_lanetype, `%`_dim{i#58756}(2)), ?(), `%`_laneidx{i#58803}(l!`%`_labelidx{i#58802}.0))] -[visit_exp `%X%`_shape{lanetype#8083, dim#8083, i#58749}(`I64`_lanetype, `%`_dim{i#58756}(2))] -[visit_exp lanetype#8083] -[visit_id lanetype#8083] -[visit_exp dim#8083] -[visit_id dim#8083] -[visit_exp i#58749] -[visit_id i#58749] -[visit_exp (`I64`_lanetype, `%`_dim{i#58756}(2))] +[check_dims] l +dims \ = l +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#58756}(2)] -[visit_exp i#58756] -[visit_id i#58756] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp ?()] -[visit_exp `%`_laneidx{i#58803}(l!`%`_labelidx{i#58802}.0)] -[visit_exp i#58803] -[visit_id i#58803] -[visit_exp (l!`%`_labelidx{i#58802}.0)] -[visit_exp l!`%`_labelidx{i#58802}.0] -[visit_exp l!`%`_labelidx{i#58802}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#58802] -[visit_id i#58802] -[visit_exp `%`_u32{i#58691}(29)] -[visit_exp i#58691] -[visit_id i#58691] +[visit_exp `%`_u32(29)] [visit_exp (29)] [visit_exp 29] -[visit_exp `%`_laneidx{i#58741}(l!`%`_labelidx{i#58740}.0)] -[visit_exp i#58741] -[visit_id i#58741] -[visit_exp (l!`%`_labelidx{i#58740}.0)] -[visit_exp l!`%`_labelidx{i#58740}.0] -[visit_exp l!`%`_labelidx{i#58740}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#58740] -[visit_id i#58740] -[check_dims] dim#8095 i#58827 i#58876 i#58877 i#58885 i#58892 i#58938 i#58939 l laneidx#65 lanetype#8095 shape#942 -dims \ = dim#8095, i#58827, i#58876, i#58877, i#58885, i#58892, i#58938, i#58939, l, laneidx#65, lanetype#8095, shape#942 -[visit_exp `VREPLACE_LANE`_instr{shape#942, laneidx#65}(`%X%`_shape{lanetype#8095, dim#8095, i#58885}(`I64`_lanetype, `%`_dim{i#58892}(2)), `%`_laneidx{i#58939}(l!`%`_labelidx{i#58938}.0))] -[visit_exp shape#942] -[visit_id shape#942] -[visit_exp laneidx#65] -[visit_id laneidx#65] -[visit_exp (`%X%`_shape{lanetype#8095, dim#8095, i#58885}(`I64`_lanetype, `%`_dim{i#58892}(2)), `%`_laneidx{i#58939}(l!`%`_labelidx{i#58938}.0))] -[visit_exp `%X%`_shape{lanetype#8095, dim#8095, i#58885}(`I64`_lanetype, `%`_dim{i#58892}(2))] -[visit_exp lanetype#8095] -[visit_id lanetype#8095] -[visit_exp dim#8095] -[visit_id dim#8095] -[visit_exp i#58885] -[visit_id i#58885] -[visit_exp (`I64`_lanetype, `%`_dim{i#58892}(2))] +[check_dims] l +dims \ = l +[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#58892}(2)] -[visit_exp i#58892] -[visit_id i#58892] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%`_laneidx{i#58939}(l!`%`_labelidx{i#58938}.0)] -[visit_exp i#58939] -[visit_id i#58939] -[visit_exp (l!`%`_labelidx{i#58938}.0)] -[visit_exp l!`%`_labelidx{i#58938}.0] -[visit_exp l!`%`_labelidx{i#58938}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#58938] -[visit_id i#58938] -[visit_exp `%`_u32{i#58827}(30)] -[visit_exp i#58827] -[visit_id i#58827] +[visit_exp `%`_u32(30)] [visit_exp (30)] [visit_exp 30] -[visit_exp `%`_laneidx{i#58877}(l!`%`_labelidx{i#58876}.0)] -[visit_exp i#58877] -[visit_id i#58877] -[visit_exp (l!`%`_labelidx{i#58876}.0)] -[visit_exp l!`%`_labelidx{i#58876}.0] -[visit_exp l!`%`_labelidx{i#58876}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#58876] -[visit_id i#58876] -[check_dims] dim#8107 i#58963 i#59012 i#59013 i#59021 i#59028 i#59074 i#59075 l laneidx#67 lanetype#8107 shape#944 sx?#55 -dims \ = dim#8107, i#58963, i#59012, i#59013, i#59021, i#59028, i#59074, i#59075, l, laneidx#67, lanetype#8107, shape#944, sx?#55 -[visit_exp `VEXTRACT_LANE`_instr{shape#944, `sx?#55`, laneidx#67}(`%X%`_shape{lanetype#8107, dim#8107, i#59021}(`F32`_lanetype, `%`_dim{i#59028}(4)), ?(), `%`_laneidx{i#59075}(l!`%`_labelidx{i#59074}.0))] -[visit_exp shape#944] -[visit_id shape#944] -[visit_exp `sx?#55`] -[visit_id sx?#55] -[visit_exp laneidx#67] -[visit_id laneidx#67] -[visit_exp (`%X%`_shape{lanetype#8107, dim#8107, i#59021}(`F32`_lanetype, `%`_dim{i#59028}(4)), ?(), `%`_laneidx{i#59075}(l!`%`_labelidx{i#59074}.0))] -[visit_exp `%X%`_shape{lanetype#8107, dim#8107, i#59021}(`F32`_lanetype, `%`_dim{i#59028}(4))] -[visit_exp lanetype#8107] -[visit_id lanetype#8107] -[visit_exp dim#8107] -[visit_id dim#8107] -[visit_exp i#59021] -[visit_id i#59021] -[visit_exp (`F32`_lanetype, `%`_dim{i#59028}(4))] +[check_dims] l +dims \ = l +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#59028}(4)] -[visit_exp i#59028] -[visit_id i#59028] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp ?()] -[visit_exp `%`_laneidx{i#59075}(l!`%`_labelidx{i#59074}.0)] -[visit_exp i#59075] -[visit_id i#59075] -[visit_exp (l!`%`_labelidx{i#59074}.0)] -[visit_exp l!`%`_labelidx{i#59074}.0] -[visit_exp l!`%`_labelidx{i#59074}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#59074] -[visit_id i#59074] -[visit_exp `%`_u32{i#58963}(31)] -[visit_exp i#58963] -[visit_id i#58963] +[visit_exp `%`_u32(31)] [visit_exp (31)] [visit_exp 31] -[visit_exp `%`_laneidx{i#59013}(l!`%`_labelidx{i#59012}.0)] -[visit_exp i#59013] -[visit_id i#59013] -[visit_exp (l!`%`_labelidx{i#59012}.0)] -[visit_exp l!`%`_labelidx{i#59012}.0] -[visit_exp l!`%`_labelidx{i#59012}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#59012] -[visit_id i#59012] -[check_dims] dim#8119 i#59099 i#59148 i#59149 i#59157 i#59164 i#59210 i#59211 l laneidx#69 lanetype#8119 shape#946 -dims \ = dim#8119, i#59099, i#59148, i#59149, i#59157, i#59164, i#59210, i#59211, l, laneidx#69, lanetype#8119, shape#946 -[visit_exp `VREPLACE_LANE`_instr{shape#946, laneidx#69}(`%X%`_shape{lanetype#8119, dim#8119, i#59157}(`F32`_lanetype, `%`_dim{i#59164}(4)), `%`_laneidx{i#59211}(l!`%`_labelidx{i#59210}.0))] -[visit_exp shape#946] -[visit_id shape#946] -[visit_exp laneidx#69] -[visit_id laneidx#69] -[visit_exp (`%X%`_shape{lanetype#8119, dim#8119, i#59157}(`F32`_lanetype, `%`_dim{i#59164}(4)), `%`_laneidx{i#59211}(l!`%`_labelidx{i#59210}.0))] -[visit_exp `%X%`_shape{lanetype#8119, dim#8119, i#59157}(`F32`_lanetype, `%`_dim{i#59164}(4))] -[visit_exp lanetype#8119] -[visit_id lanetype#8119] -[visit_exp dim#8119] -[visit_id dim#8119] -[visit_exp i#59157] -[visit_id i#59157] -[visit_exp (`F32`_lanetype, `%`_dim{i#59164}(4))] +[check_dims] l +dims \ = l +[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#59164}(4)] -[visit_exp i#59164] -[visit_id i#59164] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_laneidx{i#59211}(l!`%`_labelidx{i#59210}.0)] -[visit_exp i#59211] -[visit_id i#59211] -[visit_exp (l!`%`_labelidx{i#59210}.0)] -[visit_exp l!`%`_labelidx{i#59210}.0] -[visit_exp l!`%`_labelidx{i#59210}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#59210] -[visit_id i#59210] -[visit_exp `%`_u32{i#59099}(32)] -[visit_exp i#59099] -[visit_id i#59099] +[visit_exp `%`_u32(32)] [visit_exp (32)] [visit_exp 32] -[visit_exp `%`_laneidx{i#59149}(l!`%`_labelidx{i#59148}.0)] -[visit_exp i#59149] -[visit_id i#59149] -[visit_exp (l!`%`_labelidx{i#59148}.0)] -[visit_exp l!`%`_labelidx{i#59148}.0] -[visit_exp l!`%`_labelidx{i#59148}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#59148] -[visit_id i#59148] -[check_dims] dim#8131 i#59235 i#59284 i#59285 i#59293 i#59300 i#59346 i#59347 l laneidx#71 lanetype#8131 shape#948 sx?#57 -dims \ = dim#8131, i#59235, i#59284, i#59285, i#59293, i#59300, i#59346, i#59347, l, laneidx#71, lanetype#8131, shape#948, sx?#57 -[visit_exp `VEXTRACT_LANE`_instr{shape#948, `sx?#57`, laneidx#71}(`%X%`_shape{lanetype#8131, dim#8131, i#59293}(`F64`_lanetype, `%`_dim{i#59300}(2)), ?(), `%`_laneidx{i#59347}(l!`%`_labelidx{i#59346}.0))] -[visit_exp shape#948] -[visit_id shape#948] -[visit_exp `sx?#57`] -[visit_id sx?#57] -[visit_exp laneidx#71] -[visit_id laneidx#71] -[visit_exp (`%X%`_shape{lanetype#8131, dim#8131, i#59293}(`F64`_lanetype, `%`_dim{i#59300}(2)), ?(), `%`_laneidx{i#59347}(l!`%`_labelidx{i#59346}.0))] -[visit_exp `%X%`_shape{lanetype#8131, dim#8131, i#59293}(`F64`_lanetype, `%`_dim{i#59300}(2))] -[visit_exp lanetype#8131] -[visit_id lanetype#8131] -[visit_exp dim#8131] -[visit_id dim#8131] -[visit_exp i#59293] -[visit_id i#59293] -[visit_exp (`F64`_lanetype, `%`_dim{i#59300}(2))] +[check_dims] l +dims \ = l +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#59300}(2)] -[visit_exp i#59300] -[visit_id i#59300] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp ?()] -[visit_exp `%`_laneidx{i#59347}(l!`%`_labelidx{i#59346}.0)] -[visit_exp i#59347] -[visit_id i#59347] -[visit_exp (l!`%`_labelidx{i#59346}.0)] -[visit_exp l!`%`_labelidx{i#59346}.0] -[visit_exp l!`%`_labelidx{i#59346}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#59346] -[visit_id i#59346] -[visit_exp `%`_u32{i#59235}(33)] -[visit_exp i#59235] -[visit_id i#59235] +[visit_exp `%`_u32(33)] [visit_exp (33)] [visit_exp 33] -[visit_exp `%`_laneidx{i#59285}(l!`%`_labelidx{i#59284}.0)] -[visit_exp i#59285] -[visit_id i#59285] -[visit_exp (l!`%`_labelidx{i#59284}.0)] -[visit_exp l!`%`_labelidx{i#59284}.0] -[visit_exp l!`%`_labelidx{i#59284}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#59284] -[visit_id i#59284] -[check_dims] dim#8143 i#59371 i#59420 i#59421 i#59429 i#59436 i#59482 i#59483 l laneidx#73 lanetype#8143 shape#950 -dims \ = dim#8143, i#59371, i#59420, i#59421, i#59429, i#59436, i#59482, i#59483, l, laneidx#73, lanetype#8143, shape#950 -[visit_exp `VREPLACE_LANE`_instr{shape#950, laneidx#73}(`%X%`_shape{lanetype#8143, dim#8143, i#59429}(`F64`_lanetype, `%`_dim{i#59436}(2)), `%`_laneidx{i#59483}(l!`%`_labelidx{i#59482}.0))] -[visit_exp shape#950] -[visit_id shape#950] -[visit_exp laneidx#73] -[visit_id laneidx#73] -[visit_exp (`%X%`_shape{lanetype#8143, dim#8143, i#59429}(`F64`_lanetype, `%`_dim{i#59436}(2)), `%`_laneidx{i#59483}(l!`%`_labelidx{i#59482}.0))] -[visit_exp `%X%`_shape{lanetype#8143, dim#8143, i#59429}(`F64`_lanetype, `%`_dim{i#59436}(2))] -[visit_exp lanetype#8143] -[visit_id lanetype#8143] -[visit_exp dim#8143] -[visit_id dim#8143] -[visit_exp i#59429] -[visit_id i#59429] -[visit_exp (`F64`_lanetype, `%`_dim{i#59436}(2))] +[check_dims] l +dims \ = l +[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#59436}(2)] -[visit_exp i#59436] -[visit_id i#59436] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%`_laneidx{i#59483}(l!`%`_labelidx{i#59482}.0)] -[visit_exp i#59483] -[visit_id i#59483] -[visit_exp (l!`%`_labelidx{i#59482}.0)] -[visit_exp l!`%`_labelidx{i#59482}.0] -[visit_exp l!`%`_labelidx{i#59482}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] -[visit_exp i#59482] -[visit_id i#59482] -[visit_exp `%`_u32{i#59371}(34)] -[visit_exp i#59371] -[visit_id i#59371] +[visit_exp `%`_u32(34)] [visit_exp (34)] [visit_exp 34] -[visit_exp `%`_laneidx{i#59421}(l!`%`_labelidx{i#59420}.0)] -[visit_exp i#59421] -[visit_id i#59421] -[visit_exp (l!`%`_labelidx{i#59420}.0)] -[visit_exp l!`%`_labelidx{i#59420}.0] -[visit_exp l!`%`_labelidx{i#59420}] +[visit_exp `%`_laneidx(l!`%`_labelidx.0)] +[visit_exp (l!`%`_labelidx.0)] +[visit_exp l!`%`_labelidx.0] +[visit_exp l!`%`_labelidx] [visit_exp l] [visit_id l] not free -[visit_exp i#59420] -[visit_id i#59420] ps' = [check_dims] -[check_dims] dim#8155 i#59507 i#59514 i#59521 lanetype#8155 shape#952 -dims \ = dim#8155, i#59507, i#59514, i#59521, lanetype#8155, shape#952 -[visit_exp `VRELOP`_instr{shape#952}(`%X%`_shape{lanetype#8155, dim#8155, i#59514}(`I8`_lanetype, `%`_dim{i#59521}(16)), `EQ`_vrelop_)] -[visit_exp shape#952] -[visit_id shape#952] -[visit_exp (`%X%`_shape{lanetype#8155, dim#8155, i#59514}(`I8`_lanetype, `%`_dim{i#59521}(16)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#8155, dim#8155, i#59514}(`I8`_lanetype, `%`_dim{i#59521}(16))] -[visit_exp lanetype#8155] -[visit_id lanetype#8155] -[visit_exp dim#8155] -[visit_id dim#8155] -[visit_exp i#59514] -[visit_id i#59514] -[visit_exp (`I8`_lanetype, `%`_dim{i#59521}(16))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EQ`_vrelop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#59521}(16)] -[visit_exp i#59521] -[visit_id i#59521] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `EQ`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#59507}(35)] -[visit_exp i#59507] -[visit_id i#59507] +[visit_exp `%`_u32(35)] [visit_exp (35)] [visit_exp 35] -[check_dims] dim#8182 i#59589 i#59596 i#59603 lanetype#8182 shape#954 -dims \ = dim#8182, i#59589, i#59596, i#59603, lanetype#8182, shape#954 -[visit_exp `VRELOP`_instr{shape#954}(`%X%`_shape{lanetype#8182, dim#8182, i#59596}(`I8`_lanetype, `%`_dim{i#59603}(16)), `NE`_vrelop_)] -[visit_exp shape#954] -[visit_id shape#954] -[visit_exp (`%X%`_shape{lanetype#8182, dim#8182, i#59596}(`I8`_lanetype, `%`_dim{i#59603}(16)), `NE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#8182, dim#8182, i#59596}(`I8`_lanetype, `%`_dim{i#59603}(16))] -[visit_exp lanetype#8182] -[visit_id lanetype#8182] -[visit_exp dim#8182] -[visit_id dim#8182] -[visit_exp i#59596] -[visit_id i#59596] -[visit_exp (`I8`_lanetype, `%`_dim{i#59603}(16))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NE`_vrelop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NE`_vrelop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#59603}(16)] -[visit_exp i#59603] -[visit_id i#59603] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `NE`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#59589}(36)] -[visit_exp i#59589] -[visit_id i#59589] +[visit_exp `%`_u32(36)] [visit_exp (36)] [visit_exp 36] -[check_dims] dim#8209 i#59671 i#59678 i#59685 lanetype#8209 shape#956 sx#6659 -dims \ = dim#8209, i#59671, i#59678, i#59685, lanetype#8209, shape#956, sx#6659 -[visit_exp `VRELOP`_instr{shape#956}(`%X%`_shape{lanetype#8209, dim#8209, i#59678}(`I8`_lanetype, `%`_dim{i#59685}(16)), `LT`_vrelop_{sx#6659}(`S`_sx))] -[visit_exp shape#956] -[visit_id shape#956] -[visit_exp (`%X%`_shape{lanetype#8209, dim#8209, i#59678}(`I8`_lanetype, `%`_dim{i#59685}(16)), `LT`_vrelop_{sx#6659}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#8209, dim#8209, i#59678}(`I8`_lanetype, `%`_dim{i#59685}(16))] -[visit_exp lanetype#8209] -[visit_id lanetype#8209] -[visit_exp dim#8209] -[visit_id dim#8209] -[visit_exp i#59678] -[visit_id i#59678] -[visit_exp (`I8`_lanetype, `%`_dim{i#59685}(16))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#59685}(16)] -[visit_exp i#59685] -[visit_id i#59685] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `LT`_vrelop_{sx#6659}(`S`_sx)] -[visit_exp sx#6659] -[visit_id sx#6659] +[visit_exp `LT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#59671}(37)] -[visit_exp i#59671] -[visit_id i#59671] +[visit_exp `%`_u32(37)] [visit_exp (37)] [visit_exp 37] -[check_dims] dim#8251 i#59798 i#59805 i#59812 lanetype#8251 shape#958 sx#6783 -dims \ = dim#8251, i#59798, i#59805, i#59812, lanetype#8251, shape#958, sx#6783 -[visit_exp `VRELOP`_instr{shape#958}(`%X%`_shape{lanetype#8251, dim#8251, i#59805}(`I8`_lanetype, `%`_dim{i#59812}(16)), `LT`_vrelop_{sx#6783}(`U`_sx))] -[visit_exp shape#958] -[visit_id shape#958] -[visit_exp (`%X%`_shape{lanetype#8251, dim#8251, i#59805}(`I8`_lanetype, `%`_dim{i#59812}(16)), `LT`_vrelop_{sx#6783}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#8251, dim#8251, i#59805}(`I8`_lanetype, `%`_dim{i#59812}(16))] -[visit_exp lanetype#8251] -[visit_id lanetype#8251] -[visit_exp dim#8251] -[visit_id dim#8251] -[visit_exp i#59805] -[visit_id i#59805] -[visit_exp (`I8`_lanetype, `%`_dim{i#59812}(16))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#59812}(16)] -[visit_exp i#59812] -[visit_id i#59812] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `LT`_vrelop_{sx#6783}(`U`_sx)] -[visit_exp sx#6783] -[visit_id sx#6783] +[visit_exp `LT`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#59798}(38)] -[visit_exp i#59798] -[visit_id i#59798] +[visit_exp `%`_u32(38)] [visit_exp (38)] [visit_exp 38] -[check_dims] dim#8293 i#59925 i#59932 i#59939 lanetype#8293 shape#960 sx#6907 -dims \ = dim#8293, i#59925, i#59932, i#59939, lanetype#8293, shape#960, sx#6907 -[visit_exp `VRELOP`_instr{shape#960}(`%X%`_shape{lanetype#8293, dim#8293, i#59932}(`I8`_lanetype, `%`_dim{i#59939}(16)), `GT`_vrelop_{sx#6907}(`S`_sx))] -[visit_exp shape#960] -[visit_id shape#960] -[visit_exp (`%X%`_shape{lanetype#8293, dim#8293, i#59932}(`I8`_lanetype, `%`_dim{i#59939}(16)), `GT`_vrelop_{sx#6907}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#8293, dim#8293, i#59932}(`I8`_lanetype, `%`_dim{i#59939}(16))] -[visit_exp lanetype#8293] -[visit_id lanetype#8293] -[visit_exp dim#8293] -[visit_id dim#8293] -[visit_exp i#59932] -[visit_id i#59932] -[visit_exp (`I8`_lanetype, `%`_dim{i#59939}(16))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#59939}(16)] -[visit_exp i#59939] -[visit_id i#59939] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `GT`_vrelop_{sx#6907}(`S`_sx)] -[visit_exp sx#6907] -[visit_id sx#6907] +[visit_exp `GT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#59925}(39)] -[visit_exp i#59925] -[visit_id i#59925] +[visit_exp `%`_u32(39)] [visit_exp (39)] [visit_exp 39] -[check_dims] dim#8335 i#60052 i#60059 i#60066 lanetype#8335 shape#962 sx#7031 -dims \ = dim#8335, i#60052, i#60059, i#60066, lanetype#8335, shape#962, sx#7031 -[visit_exp `VRELOP`_instr{shape#962}(`%X%`_shape{lanetype#8335, dim#8335, i#60059}(`I8`_lanetype, `%`_dim{i#60066}(16)), `GT`_vrelop_{sx#7031}(`U`_sx))] -[visit_exp shape#962] -[visit_id shape#962] -[visit_exp (`%X%`_shape{lanetype#8335, dim#8335, i#60059}(`I8`_lanetype, `%`_dim{i#60066}(16)), `GT`_vrelop_{sx#7031}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#8335, dim#8335, i#60059}(`I8`_lanetype, `%`_dim{i#60066}(16))] -[visit_exp lanetype#8335] -[visit_id lanetype#8335] -[visit_exp dim#8335] -[visit_id dim#8335] -[visit_exp i#60059] -[visit_id i#60059] -[visit_exp (`I8`_lanetype, `%`_dim{i#60066}(16))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#60066}(16)] -[visit_exp i#60066] -[visit_id i#60066] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `GT`_vrelop_{sx#7031}(`U`_sx)] -[visit_exp sx#7031] -[visit_id sx#7031] +[visit_exp `GT`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#60052}(40)] -[visit_exp i#60052] -[visit_id i#60052] +[visit_exp `%`_u32(40)] [visit_exp (40)] [visit_exp 40] -[check_dims] dim#8377 i#60179 i#60186 i#60193 lanetype#8377 shape#964 sx#7155 -dims \ = dim#8377, i#60179, i#60186, i#60193, lanetype#8377, shape#964, sx#7155 -[visit_exp `VRELOP`_instr{shape#964}(`%X%`_shape{lanetype#8377, dim#8377, i#60186}(`I8`_lanetype, `%`_dim{i#60193}(16)), `LE`_vrelop_{sx#7155}(`S`_sx))] -[visit_exp shape#964] -[visit_id shape#964] -[visit_exp (`%X%`_shape{lanetype#8377, dim#8377, i#60186}(`I8`_lanetype, `%`_dim{i#60193}(16)), `LE`_vrelop_{sx#7155}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#8377, dim#8377, i#60186}(`I8`_lanetype, `%`_dim{i#60193}(16))] -[visit_exp lanetype#8377] -[visit_id lanetype#8377] -[visit_exp dim#8377] -[visit_id dim#8377] -[visit_exp i#60186] -[visit_id i#60186] -[visit_exp (`I8`_lanetype, `%`_dim{i#60193}(16))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#60193}(16)] -[visit_exp i#60193] -[visit_id i#60193] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `LE`_vrelop_{sx#7155}(`S`_sx)] -[visit_exp sx#7155] -[visit_id sx#7155] +[visit_exp `LE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#60179}(41)] -[visit_exp i#60179] -[visit_id i#60179] +[visit_exp `%`_u32(41)] [visit_exp (41)] [visit_exp 41] -[check_dims] dim#8419 i#60306 i#60313 i#60320 lanetype#8419 shape#966 sx#7279 -dims \ = dim#8419, i#60306, i#60313, i#60320, lanetype#8419, shape#966, sx#7279 -[visit_exp `VRELOP`_instr{shape#966}(`%X%`_shape{lanetype#8419, dim#8419, i#60313}(`I8`_lanetype, `%`_dim{i#60320}(16)), `LE`_vrelop_{sx#7279}(`U`_sx))] -[visit_exp shape#966] -[visit_id shape#966] -[visit_exp (`%X%`_shape{lanetype#8419, dim#8419, i#60313}(`I8`_lanetype, `%`_dim{i#60320}(16)), `LE`_vrelop_{sx#7279}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#8419, dim#8419, i#60313}(`I8`_lanetype, `%`_dim{i#60320}(16))] -[visit_exp lanetype#8419] -[visit_id lanetype#8419] -[visit_exp dim#8419] -[visit_id dim#8419] -[visit_exp i#60313] -[visit_id i#60313] -[visit_exp (`I8`_lanetype, `%`_dim{i#60320}(16))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#60320}(16)] -[visit_exp i#60320] -[visit_id i#60320] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `LE`_vrelop_{sx#7279}(`U`_sx)] -[visit_exp sx#7279] -[visit_id sx#7279] +[visit_exp `LE`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#60306}(42)] -[visit_exp i#60306] -[visit_id i#60306] +[visit_exp `%`_u32(42)] [visit_exp (42)] [visit_exp 42] -[check_dims] dim#8461 i#60433 i#60440 i#60447 lanetype#8461 shape#968 sx#7403 -dims \ = dim#8461, i#60433, i#60440, i#60447, lanetype#8461, shape#968, sx#7403 -[visit_exp `VRELOP`_instr{shape#968}(`%X%`_shape{lanetype#8461, dim#8461, i#60440}(`I8`_lanetype, `%`_dim{i#60447}(16)), `GE`_vrelop_{sx#7403}(`S`_sx))] -[visit_exp shape#968] -[visit_id shape#968] -[visit_exp (`%X%`_shape{lanetype#8461, dim#8461, i#60440}(`I8`_lanetype, `%`_dim{i#60447}(16)), `GE`_vrelop_{sx#7403}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#8461, dim#8461, i#60440}(`I8`_lanetype, `%`_dim{i#60447}(16))] -[visit_exp lanetype#8461] -[visit_id lanetype#8461] -[visit_exp dim#8461] -[visit_id dim#8461] -[visit_exp i#60440] -[visit_id i#60440] -[visit_exp (`I8`_lanetype, `%`_dim{i#60447}(16))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#60447}(16)] -[visit_exp i#60447] -[visit_id i#60447] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `GE`_vrelop_{sx#7403}(`S`_sx)] -[visit_exp sx#7403] -[visit_id sx#7403] +[visit_exp `GE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#60433}(43)] -[visit_exp i#60433] -[visit_id i#60433] +[visit_exp `%`_u32(43)] [visit_exp (43)] [visit_exp 43] -[check_dims] dim#8503 i#60560 i#60567 i#60574 lanetype#8503 shape#970 sx#7527 -dims \ = dim#8503, i#60560, i#60567, i#60574, lanetype#8503, shape#970, sx#7527 -[visit_exp `VRELOP`_instr{shape#970}(`%X%`_shape{lanetype#8503, dim#8503, i#60567}(`I8`_lanetype, `%`_dim{i#60574}(16)), `GE`_vrelop_{sx#7527}(`U`_sx))] -[visit_exp shape#970] -[visit_id shape#970] -[visit_exp (`%X%`_shape{lanetype#8503, dim#8503, i#60567}(`I8`_lanetype, `%`_dim{i#60574}(16)), `GE`_vrelop_{sx#7527}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#8503, dim#8503, i#60567}(`I8`_lanetype, `%`_dim{i#60574}(16))] -[visit_exp lanetype#8503] -[visit_id lanetype#8503] -[visit_exp dim#8503] -[visit_id dim#8503] -[visit_exp i#60567] -[visit_id i#60567] -[visit_exp (`I8`_lanetype, `%`_dim{i#60574}(16))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#60574}(16)] -[visit_exp i#60574] -[visit_id i#60574] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `GE`_vrelop_{sx#7527}(`U`_sx)] -[visit_exp sx#7527] -[visit_id sx#7527] +[visit_exp `GE`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#60560}(44)] -[visit_exp i#60560] -[visit_id i#60560] +[visit_exp `%`_u32(44)] [visit_exp (44)] [visit_exp 44] ps' = [check_dims] -[check_dims] dim#8545 i#60687 i#60694 i#60701 lanetype#8545 shape#972 -dims \ = dim#8545, i#60687, i#60694, i#60701, lanetype#8545, shape#972 -[visit_exp `VRELOP`_instr{shape#972}(`%X%`_shape{lanetype#8545, dim#8545, i#60694}(`I16`_lanetype, `%`_dim{i#60701}(8)), `EQ`_vrelop_)] -[visit_exp shape#972] -[visit_id shape#972] -[visit_exp (`%X%`_shape{lanetype#8545, dim#8545, i#60694}(`I16`_lanetype, `%`_dim{i#60701}(8)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#8545, dim#8545, i#60694}(`I16`_lanetype, `%`_dim{i#60701}(8))] -[visit_exp lanetype#8545] -[visit_id lanetype#8545] -[visit_exp dim#8545] -[visit_id dim#8545] -[visit_exp i#60694] -[visit_id i#60694] -[visit_exp (`I16`_lanetype, `%`_dim{i#60701}(8))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EQ`_vrelop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#60701}(8)] -[visit_exp i#60701] -[visit_id i#60701] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `EQ`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#60687}(45)] -[visit_exp i#60687] -[visit_id i#60687] +[visit_exp `%`_u32(45)] [visit_exp (45)] [visit_exp 45] -[check_dims] dim#8572 i#60769 i#60776 i#60783 lanetype#8572 shape#974 -dims \ = dim#8572, i#60769, i#60776, i#60783, lanetype#8572, shape#974 -[visit_exp `VRELOP`_instr{shape#974}(`%X%`_shape{lanetype#8572, dim#8572, i#60776}(`I16`_lanetype, `%`_dim{i#60783}(8)), `NE`_vrelop_)] -[visit_exp shape#974] -[visit_id shape#974] -[visit_exp (`%X%`_shape{lanetype#8572, dim#8572, i#60776}(`I16`_lanetype, `%`_dim{i#60783}(8)), `NE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#8572, dim#8572, i#60776}(`I16`_lanetype, `%`_dim{i#60783}(8))] -[visit_exp lanetype#8572] -[visit_id lanetype#8572] -[visit_exp dim#8572] -[visit_id dim#8572] -[visit_exp i#60776] -[visit_id i#60776] -[visit_exp (`I16`_lanetype, `%`_dim{i#60783}(8))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NE`_vrelop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NE`_vrelop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#60783}(8)] -[visit_exp i#60783] -[visit_id i#60783] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `NE`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#60769}(46)] -[visit_exp i#60769] -[visit_id i#60769] +[visit_exp `%`_u32(46)] [visit_exp (46)] [visit_exp 46] -[check_dims] dim#8599 i#60851 i#60858 i#60865 lanetype#8599 shape#976 sx#7771 -dims \ = dim#8599, i#60851, i#60858, i#60865, lanetype#8599, shape#976, sx#7771 -[visit_exp `VRELOP`_instr{shape#976}(`%X%`_shape{lanetype#8599, dim#8599, i#60858}(`I16`_lanetype, `%`_dim{i#60865}(8)), `LT`_vrelop_{sx#7771}(`S`_sx))] -[visit_exp shape#976] -[visit_id shape#976] -[visit_exp (`%X%`_shape{lanetype#8599, dim#8599, i#60858}(`I16`_lanetype, `%`_dim{i#60865}(8)), `LT`_vrelop_{sx#7771}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#8599, dim#8599, i#60858}(`I16`_lanetype, `%`_dim{i#60865}(8))] -[visit_exp lanetype#8599] -[visit_id lanetype#8599] -[visit_exp dim#8599] -[visit_id dim#8599] -[visit_exp i#60858] -[visit_id i#60858] -[visit_exp (`I16`_lanetype, `%`_dim{i#60865}(8))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#60865}(8)] -[visit_exp i#60865] -[visit_id i#60865] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `LT`_vrelop_{sx#7771}(`S`_sx)] -[visit_exp sx#7771] -[visit_id sx#7771] +[visit_exp `LT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#60851}(47)] -[visit_exp i#60851] -[visit_id i#60851] +[visit_exp `%`_u32(47)] [visit_exp (47)] [visit_exp 47] -[check_dims] dim#8641 i#60978 i#60985 i#60992 lanetype#8641 shape#978 sx#7895 -dims \ = dim#8641, i#60978, i#60985, i#60992, lanetype#8641, shape#978, sx#7895 -[visit_exp `VRELOP`_instr{shape#978}(`%X%`_shape{lanetype#8641, dim#8641, i#60985}(`I16`_lanetype, `%`_dim{i#60992}(8)), `LT`_vrelop_{sx#7895}(`U`_sx))] -[visit_exp shape#978] -[visit_id shape#978] -[visit_exp (`%X%`_shape{lanetype#8641, dim#8641, i#60985}(`I16`_lanetype, `%`_dim{i#60992}(8)), `LT`_vrelop_{sx#7895}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#8641, dim#8641, i#60985}(`I16`_lanetype, `%`_dim{i#60992}(8))] -[visit_exp lanetype#8641] -[visit_id lanetype#8641] -[visit_exp dim#8641] -[visit_id dim#8641] -[visit_exp i#60985] -[visit_id i#60985] -[visit_exp (`I16`_lanetype, `%`_dim{i#60992}(8))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#60992}(8)] -[visit_exp i#60992] -[visit_id i#60992] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `LT`_vrelop_{sx#7895}(`U`_sx)] -[visit_exp sx#7895] -[visit_id sx#7895] +[visit_exp `LT`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#60978}(48)] -[visit_exp i#60978] -[visit_id i#60978] +[visit_exp `%`_u32(48)] [visit_exp (48)] [visit_exp 48] -[check_dims] dim#8683 i#61105 i#61112 i#61119 lanetype#8683 shape#980 sx#8019 -dims \ = dim#8683, i#61105, i#61112, i#61119, lanetype#8683, shape#980, sx#8019 -[visit_exp `VRELOP`_instr{shape#980}(`%X%`_shape{lanetype#8683, dim#8683, i#61112}(`I16`_lanetype, `%`_dim{i#61119}(8)), `GT`_vrelop_{sx#8019}(`S`_sx))] -[visit_exp shape#980] -[visit_id shape#980] -[visit_exp (`%X%`_shape{lanetype#8683, dim#8683, i#61112}(`I16`_lanetype, `%`_dim{i#61119}(8)), `GT`_vrelop_{sx#8019}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#8683, dim#8683, i#61112}(`I16`_lanetype, `%`_dim{i#61119}(8))] -[visit_exp lanetype#8683] -[visit_id lanetype#8683] -[visit_exp dim#8683] -[visit_id dim#8683] -[visit_exp i#61112] -[visit_id i#61112] -[visit_exp (`I16`_lanetype, `%`_dim{i#61119}(8))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#61119}(8)] -[visit_exp i#61119] -[visit_id i#61119] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `GT`_vrelop_{sx#8019}(`S`_sx)] -[visit_exp sx#8019] -[visit_id sx#8019] +[visit_exp `GT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#61105}(49)] -[visit_exp i#61105] -[visit_id i#61105] +[visit_exp `%`_u32(49)] [visit_exp (49)] [visit_exp 49] -[check_dims] dim#8725 i#61232 i#61239 i#61246 lanetype#8725 shape#982 sx#8143 -dims \ = dim#8725, i#61232, i#61239, i#61246, lanetype#8725, shape#982, sx#8143 -[visit_exp `VRELOP`_instr{shape#982}(`%X%`_shape{lanetype#8725, dim#8725, i#61239}(`I16`_lanetype, `%`_dim{i#61246}(8)), `GT`_vrelop_{sx#8143}(`U`_sx))] -[visit_exp shape#982] -[visit_id shape#982] -[visit_exp (`%X%`_shape{lanetype#8725, dim#8725, i#61239}(`I16`_lanetype, `%`_dim{i#61246}(8)), `GT`_vrelop_{sx#8143}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#8725, dim#8725, i#61239}(`I16`_lanetype, `%`_dim{i#61246}(8))] -[visit_exp lanetype#8725] -[visit_id lanetype#8725] -[visit_exp dim#8725] -[visit_id dim#8725] -[visit_exp i#61239] -[visit_id i#61239] -[visit_exp (`I16`_lanetype, `%`_dim{i#61246}(8))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#61246}(8)] -[visit_exp i#61246] -[visit_id i#61246] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `GT`_vrelop_{sx#8143}(`U`_sx)] -[visit_exp sx#8143] -[visit_id sx#8143] +[visit_exp `GT`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#61232}(50)] -[visit_exp i#61232] -[visit_id i#61232] +[visit_exp `%`_u32(50)] [visit_exp (50)] [visit_exp 50] -[check_dims] dim#8767 i#61359 i#61366 i#61373 lanetype#8767 shape#984 sx#8267 -dims \ = dim#8767, i#61359, i#61366, i#61373, lanetype#8767, shape#984, sx#8267 -[visit_exp `VRELOP`_instr{shape#984}(`%X%`_shape{lanetype#8767, dim#8767, i#61366}(`I16`_lanetype, `%`_dim{i#61373}(8)), `LE`_vrelop_{sx#8267}(`S`_sx))] -[visit_exp shape#984] -[visit_id shape#984] -[visit_exp (`%X%`_shape{lanetype#8767, dim#8767, i#61366}(`I16`_lanetype, `%`_dim{i#61373}(8)), `LE`_vrelop_{sx#8267}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#8767, dim#8767, i#61366}(`I16`_lanetype, `%`_dim{i#61373}(8))] -[visit_exp lanetype#8767] -[visit_id lanetype#8767] -[visit_exp dim#8767] -[visit_id dim#8767] -[visit_exp i#61366] -[visit_id i#61366] -[visit_exp (`I16`_lanetype, `%`_dim{i#61373}(8))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#61373}(8)] -[visit_exp i#61373] -[visit_id i#61373] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `LE`_vrelop_{sx#8267}(`S`_sx)] -[visit_exp sx#8267] -[visit_id sx#8267] +[visit_exp `LE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#61359}(51)] -[visit_exp i#61359] -[visit_id i#61359] +[visit_exp `%`_u32(51)] [visit_exp (51)] [visit_exp 51] -[check_dims] dim#8809 i#61486 i#61493 i#61500 lanetype#8809 shape#986 sx#8391 -dims \ = dim#8809, i#61486, i#61493, i#61500, lanetype#8809, shape#986, sx#8391 -[visit_exp `VRELOP`_instr{shape#986}(`%X%`_shape{lanetype#8809, dim#8809, i#61493}(`I16`_lanetype, `%`_dim{i#61500}(8)), `LE`_vrelop_{sx#8391}(`U`_sx))] -[visit_exp shape#986] -[visit_id shape#986] -[visit_exp (`%X%`_shape{lanetype#8809, dim#8809, i#61493}(`I16`_lanetype, `%`_dim{i#61500}(8)), `LE`_vrelop_{sx#8391}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#8809, dim#8809, i#61493}(`I16`_lanetype, `%`_dim{i#61500}(8))] -[visit_exp lanetype#8809] -[visit_id lanetype#8809] -[visit_exp dim#8809] -[visit_id dim#8809] -[visit_exp i#61493] -[visit_id i#61493] -[visit_exp (`I16`_lanetype, `%`_dim{i#61500}(8))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#61500}(8)] -[visit_exp i#61500] -[visit_id i#61500] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `LE`_vrelop_{sx#8391}(`U`_sx)] -[visit_exp sx#8391] -[visit_id sx#8391] +[visit_exp `LE`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#61486}(52)] -[visit_exp i#61486] -[visit_id i#61486] +[visit_exp `%`_u32(52)] [visit_exp (52)] [visit_exp 52] -[check_dims] dim#8851 i#61613 i#61620 i#61627 lanetype#8851 shape#988 sx#8515 -dims \ = dim#8851, i#61613, i#61620, i#61627, lanetype#8851, shape#988, sx#8515 -[visit_exp `VRELOP`_instr{shape#988}(`%X%`_shape{lanetype#8851, dim#8851, i#61620}(`I16`_lanetype, `%`_dim{i#61627}(8)), `GE`_vrelop_{sx#8515}(`S`_sx))] -[visit_exp shape#988] -[visit_id shape#988] -[visit_exp (`%X%`_shape{lanetype#8851, dim#8851, i#61620}(`I16`_lanetype, `%`_dim{i#61627}(8)), `GE`_vrelop_{sx#8515}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#8851, dim#8851, i#61620}(`I16`_lanetype, `%`_dim{i#61627}(8))] -[visit_exp lanetype#8851] -[visit_id lanetype#8851] -[visit_exp dim#8851] -[visit_id dim#8851] -[visit_exp i#61620] -[visit_id i#61620] -[visit_exp (`I16`_lanetype, `%`_dim{i#61627}(8))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#61627}(8)] -[visit_exp i#61627] -[visit_id i#61627] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `GE`_vrelop_{sx#8515}(`S`_sx)] -[visit_exp sx#8515] -[visit_id sx#8515] +[visit_exp `GE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#61613}(53)] -[visit_exp i#61613] -[visit_id i#61613] +[visit_exp `%`_u32(53)] [visit_exp (53)] [visit_exp 53] -[check_dims] dim#8893 i#61740 i#61747 i#61754 lanetype#8893 shape#990 sx#8639 -dims \ = dim#8893, i#61740, i#61747, i#61754, lanetype#8893, shape#990, sx#8639 -[visit_exp `VRELOP`_instr{shape#990}(`%X%`_shape{lanetype#8893, dim#8893, i#61747}(`I16`_lanetype, `%`_dim{i#61754}(8)), `GE`_vrelop_{sx#8639}(`U`_sx))] -[visit_exp shape#990] -[visit_id shape#990] -[visit_exp (`%X%`_shape{lanetype#8893, dim#8893, i#61747}(`I16`_lanetype, `%`_dim{i#61754}(8)), `GE`_vrelop_{sx#8639}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#8893, dim#8893, i#61747}(`I16`_lanetype, `%`_dim{i#61754}(8))] -[visit_exp lanetype#8893] -[visit_id lanetype#8893] -[visit_exp dim#8893] -[visit_id dim#8893] -[visit_exp i#61747] -[visit_id i#61747] -[visit_exp (`I16`_lanetype, `%`_dim{i#61754}(8))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#61754}(8)] -[visit_exp i#61754] -[visit_id i#61754] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `GE`_vrelop_{sx#8639}(`U`_sx)] -[visit_exp sx#8639] -[visit_id sx#8639] +[visit_exp `GE`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#61740}(54)] -[visit_exp i#61740] -[visit_id i#61740] +[visit_exp `%`_u32(54)] [visit_exp (54)] [visit_exp 54] ps' = [check_dims] -[check_dims] dim#8935 i#61867 i#61874 i#61881 lanetype#8935 shape#992 -dims \ = dim#8935, i#61867, i#61874, i#61881, lanetype#8935, shape#992 -[visit_exp `VRELOP`_instr{shape#992}(`%X%`_shape{lanetype#8935, dim#8935, i#61874}(`I32`_lanetype, `%`_dim{i#61881}(4)), `EQ`_vrelop_)] -[visit_exp shape#992] -[visit_id shape#992] -[visit_exp (`%X%`_shape{lanetype#8935, dim#8935, i#61874}(`I32`_lanetype, `%`_dim{i#61881}(4)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#8935, dim#8935, i#61874}(`I32`_lanetype, `%`_dim{i#61881}(4))] -[visit_exp lanetype#8935] -[visit_id lanetype#8935] -[visit_exp dim#8935] -[visit_id dim#8935] -[visit_exp i#61874] -[visit_id i#61874] -[visit_exp (`I32`_lanetype, `%`_dim{i#61881}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#61881}(4)] -[visit_exp i#61881] -[visit_id i#61881] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `EQ`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#61867}(55)] -[visit_exp i#61867] -[visit_id i#61867] +[visit_exp `%`_u32(55)] [visit_exp (55)] [visit_exp 55] -[check_dims] dim#8962 i#61949 i#61956 i#61963 lanetype#8962 shape#994 -dims \ = dim#8962, i#61949, i#61956, i#61963, lanetype#8962, shape#994 -[visit_exp `VRELOP`_instr{shape#994}(`%X%`_shape{lanetype#8962, dim#8962, i#61956}(`I32`_lanetype, `%`_dim{i#61963}(4)), `NE`_vrelop_)] -[visit_exp shape#994] -[visit_id shape#994] -[visit_exp (`%X%`_shape{lanetype#8962, dim#8962, i#61956}(`I32`_lanetype, `%`_dim{i#61963}(4)), `NE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#8962, dim#8962, i#61956}(`I32`_lanetype, `%`_dim{i#61963}(4))] -[visit_exp lanetype#8962] -[visit_id lanetype#8962] -[visit_exp dim#8962] -[visit_id dim#8962] -[visit_exp i#61956] -[visit_id i#61956] -[visit_exp (`I32`_lanetype, `%`_dim{i#61963}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#61963}(4)] -[visit_exp i#61963] -[visit_id i#61963] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `NE`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#61949}(56)] -[visit_exp i#61949] -[visit_id i#61949] +[visit_exp `%`_u32(56)] [visit_exp (56)] [visit_exp 56] -[check_dims] dim#8989 i#62031 i#62038 i#62045 lanetype#8989 shape#996 sx#8883 -dims \ = dim#8989, i#62031, i#62038, i#62045, lanetype#8989, shape#996, sx#8883 -[visit_exp `VRELOP`_instr{shape#996}(`%X%`_shape{lanetype#8989, dim#8989, i#62038}(`I32`_lanetype, `%`_dim{i#62045}(4)), `LT`_vrelop_{sx#8883}(`S`_sx))] -[visit_exp shape#996] -[visit_id shape#996] -[visit_exp (`%X%`_shape{lanetype#8989, dim#8989, i#62038}(`I32`_lanetype, `%`_dim{i#62045}(4)), `LT`_vrelop_{sx#8883}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#8989, dim#8989, i#62038}(`I32`_lanetype, `%`_dim{i#62045}(4))] -[visit_exp lanetype#8989] -[visit_id lanetype#8989] -[visit_exp dim#8989] -[visit_id dim#8989] -[visit_exp i#62038] -[visit_id i#62038] -[visit_exp (`I32`_lanetype, `%`_dim{i#62045}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#62045}(4)] -[visit_exp i#62045] -[visit_id i#62045] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `LT`_vrelop_{sx#8883}(`S`_sx)] -[visit_exp sx#8883] -[visit_id sx#8883] +[visit_exp `LT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#62031}(57)] -[visit_exp i#62031] -[visit_id i#62031] +[visit_exp `%`_u32(57)] [visit_exp (57)] [visit_exp 57] -[check_dims] dim#9031 i#62158 i#62165 i#62172 lanetype#9031 shape#998 sx#9007 -dims \ = dim#9031, i#62158, i#62165, i#62172, lanetype#9031, shape#998, sx#9007 -[visit_exp `VRELOP`_instr{shape#998}(`%X%`_shape{lanetype#9031, dim#9031, i#62165}(`I32`_lanetype, `%`_dim{i#62172}(4)), `LT`_vrelop_{sx#9007}(`U`_sx))] -[visit_exp shape#998] -[visit_id shape#998] -[visit_exp (`%X%`_shape{lanetype#9031, dim#9031, i#62165}(`I32`_lanetype, `%`_dim{i#62172}(4)), `LT`_vrelop_{sx#9007}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#9031, dim#9031, i#62165}(`I32`_lanetype, `%`_dim{i#62172}(4))] -[visit_exp lanetype#9031] -[visit_id lanetype#9031] -[visit_exp dim#9031] -[visit_id dim#9031] -[visit_exp i#62165] -[visit_id i#62165] -[visit_exp (`I32`_lanetype, `%`_dim{i#62172}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#62172}(4)] -[visit_exp i#62172] -[visit_id i#62172] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `LT`_vrelop_{sx#9007}(`U`_sx)] -[visit_exp sx#9007] -[visit_id sx#9007] +[visit_exp `LT`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#62158}(58)] -[visit_exp i#62158] -[visit_id i#62158] +[visit_exp `%`_u32(58)] [visit_exp (58)] [visit_exp 58] -[check_dims] dim#9073 i#62285 i#62292 i#62299 lanetype#9073 shape#1000 sx#9131 -dims \ = dim#9073, i#62285, i#62292, i#62299, lanetype#9073, shape#1000, sx#9131 -[visit_exp `VRELOP`_instr{shape#1000}(`%X%`_shape{lanetype#9073, dim#9073, i#62292}(`I32`_lanetype, `%`_dim{i#62299}(4)), `GT`_vrelop_{sx#9131}(`S`_sx))] -[visit_exp shape#1000] -[visit_id shape#1000] -[visit_exp (`%X%`_shape{lanetype#9073, dim#9073, i#62292}(`I32`_lanetype, `%`_dim{i#62299}(4)), `GT`_vrelop_{sx#9131}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#9073, dim#9073, i#62292}(`I32`_lanetype, `%`_dim{i#62299}(4))] -[visit_exp lanetype#9073] -[visit_id lanetype#9073] -[visit_exp dim#9073] -[visit_id dim#9073] -[visit_exp i#62292] -[visit_id i#62292] -[visit_exp (`I32`_lanetype, `%`_dim{i#62299}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#62299}(4)] -[visit_exp i#62299] -[visit_id i#62299] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `GT`_vrelop_{sx#9131}(`S`_sx)] -[visit_exp sx#9131] -[visit_id sx#9131] +[visit_exp `GT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#62285}(59)] -[visit_exp i#62285] -[visit_id i#62285] +[visit_exp `%`_u32(59)] [visit_exp (59)] [visit_exp 59] -[check_dims] dim#9115 i#62412 i#62419 i#62426 lanetype#9115 shape#1002 sx#9255 -dims \ = dim#9115, i#62412, i#62419, i#62426, lanetype#9115, shape#1002, sx#9255 -[visit_exp `VRELOP`_instr{shape#1002}(`%X%`_shape{lanetype#9115, dim#9115, i#62419}(`I32`_lanetype, `%`_dim{i#62426}(4)), `GT`_vrelop_{sx#9255}(`U`_sx))] -[visit_exp shape#1002] -[visit_id shape#1002] -[visit_exp (`%X%`_shape{lanetype#9115, dim#9115, i#62419}(`I32`_lanetype, `%`_dim{i#62426}(4)), `GT`_vrelop_{sx#9255}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#9115, dim#9115, i#62419}(`I32`_lanetype, `%`_dim{i#62426}(4))] -[visit_exp lanetype#9115] -[visit_id lanetype#9115] -[visit_exp dim#9115] -[visit_id dim#9115] -[visit_exp i#62419] -[visit_id i#62419] -[visit_exp (`I32`_lanetype, `%`_dim{i#62426}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#62426}(4)] -[visit_exp i#62426] -[visit_id i#62426] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `GT`_vrelop_{sx#9255}(`U`_sx)] -[visit_exp sx#9255] -[visit_id sx#9255] +[visit_exp `GT`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#62412}(60)] -[visit_exp i#62412] -[visit_id i#62412] +[visit_exp `%`_u32(60)] [visit_exp (60)] [visit_exp 60] -[check_dims] dim#9157 i#62539 i#62546 i#62553 lanetype#9157 shape#1004 sx#9379 -dims \ = dim#9157, i#62539, i#62546, i#62553, lanetype#9157, shape#1004, sx#9379 -[visit_exp `VRELOP`_instr{shape#1004}(`%X%`_shape{lanetype#9157, dim#9157, i#62546}(`I32`_lanetype, `%`_dim{i#62553}(4)), `LE`_vrelop_{sx#9379}(`S`_sx))] -[visit_exp shape#1004] -[visit_id shape#1004] -[visit_exp (`%X%`_shape{lanetype#9157, dim#9157, i#62546}(`I32`_lanetype, `%`_dim{i#62553}(4)), `LE`_vrelop_{sx#9379}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#9157, dim#9157, i#62546}(`I32`_lanetype, `%`_dim{i#62553}(4))] -[visit_exp lanetype#9157] -[visit_id lanetype#9157] -[visit_exp dim#9157] -[visit_id dim#9157] -[visit_exp i#62546] -[visit_id i#62546] -[visit_exp (`I32`_lanetype, `%`_dim{i#62553}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#62553}(4)] -[visit_exp i#62553] -[visit_id i#62553] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `LE`_vrelop_{sx#9379}(`S`_sx)] -[visit_exp sx#9379] -[visit_id sx#9379] +[visit_exp `LE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#62539}(61)] -[visit_exp i#62539] -[visit_id i#62539] +[visit_exp `%`_u32(61)] [visit_exp (61)] [visit_exp 61] -[check_dims] dim#9199 i#62666 i#62673 i#62680 lanetype#9199 shape#1006 sx#9503 -dims \ = dim#9199, i#62666, i#62673, i#62680, lanetype#9199, shape#1006, sx#9503 -[visit_exp `VRELOP`_instr{shape#1006}(`%X%`_shape{lanetype#9199, dim#9199, i#62673}(`I32`_lanetype, `%`_dim{i#62680}(4)), `LE`_vrelop_{sx#9503}(`U`_sx))] -[visit_exp shape#1006] -[visit_id shape#1006] -[visit_exp (`%X%`_shape{lanetype#9199, dim#9199, i#62673}(`I32`_lanetype, `%`_dim{i#62680}(4)), `LE`_vrelop_{sx#9503}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#9199, dim#9199, i#62673}(`I32`_lanetype, `%`_dim{i#62680}(4))] -[visit_exp lanetype#9199] -[visit_id lanetype#9199] -[visit_exp dim#9199] -[visit_id dim#9199] -[visit_exp i#62673] -[visit_id i#62673] -[visit_exp (`I32`_lanetype, `%`_dim{i#62680}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#62680}(4)] -[visit_exp i#62680] -[visit_id i#62680] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `LE`_vrelop_{sx#9503}(`U`_sx)] -[visit_exp sx#9503] -[visit_id sx#9503] +[visit_exp `LE`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#62666}(62)] -[visit_exp i#62666] -[visit_id i#62666] +[visit_exp `%`_u32(62)] [visit_exp (62)] [visit_exp 62] -[check_dims] dim#9241 i#62793 i#62800 i#62807 lanetype#9241 shape#1008 sx#9627 -dims \ = dim#9241, i#62793, i#62800, i#62807, lanetype#9241, shape#1008, sx#9627 -[visit_exp `VRELOP`_instr{shape#1008}(`%X%`_shape{lanetype#9241, dim#9241, i#62800}(`I32`_lanetype, `%`_dim{i#62807}(4)), `GE`_vrelop_{sx#9627}(`S`_sx))] -[visit_exp shape#1008] -[visit_id shape#1008] -[visit_exp (`%X%`_shape{lanetype#9241, dim#9241, i#62800}(`I32`_lanetype, `%`_dim{i#62807}(4)), `GE`_vrelop_{sx#9627}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#9241, dim#9241, i#62800}(`I32`_lanetype, `%`_dim{i#62807}(4))] -[visit_exp lanetype#9241] -[visit_id lanetype#9241] -[visit_exp dim#9241] -[visit_id dim#9241] -[visit_exp i#62800] -[visit_id i#62800] -[visit_exp (`I32`_lanetype, `%`_dim{i#62807}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#62807}(4)] -[visit_exp i#62807] -[visit_id i#62807] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `GE`_vrelop_{sx#9627}(`S`_sx)] -[visit_exp sx#9627] -[visit_id sx#9627] +[visit_exp `GE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#62793}(63)] -[visit_exp i#62793] -[visit_id i#62793] +[visit_exp `%`_u32(63)] [visit_exp (63)] [visit_exp 63] -[check_dims] dim#9283 i#62920 i#62927 i#62934 lanetype#9283 shape#1010 sx#9751 -dims \ = dim#9283, i#62920, i#62927, i#62934, lanetype#9283, shape#1010, sx#9751 -[visit_exp `VRELOP`_instr{shape#1010}(`%X%`_shape{lanetype#9283, dim#9283, i#62927}(`I32`_lanetype, `%`_dim{i#62934}(4)), `GE`_vrelop_{sx#9751}(`U`_sx))] -[visit_exp shape#1010] -[visit_id shape#1010] -[visit_exp (`%X%`_shape{lanetype#9283, dim#9283, i#62927}(`I32`_lanetype, `%`_dim{i#62934}(4)), `GE`_vrelop_{sx#9751}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#9283, dim#9283, i#62927}(`I32`_lanetype, `%`_dim{i#62934}(4))] -[visit_exp lanetype#9283] -[visit_id lanetype#9283] -[visit_exp dim#9283] -[visit_id dim#9283] -[visit_exp i#62927] -[visit_id i#62927] -[visit_exp (`I32`_lanetype, `%`_dim{i#62934}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#62934}(4)] -[visit_exp i#62934] -[visit_id i#62934] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `GE`_vrelop_{sx#9751}(`U`_sx)] -[visit_exp sx#9751] -[visit_id sx#9751] +[visit_exp `GE`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#62920}(64)] -[visit_exp i#62920] -[visit_id i#62920] +[visit_exp `%`_u32(64)] [visit_exp (64)] [visit_exp 64] ps' = [check_dims] -[check_dims] dim#9325 i#63047 i#63054 i#63061 lanetype#9325 shape#1012 -dims \ = dim#9325, i#63047, i#63054, i#63061, lanetype#9325, shape#1012 -[visit_exp `VRELOP`_instr{shape#1012}(`%X%`_shape{lanetype#9325, dim#9325, i#63054}(`F32`_lanetype, `%`_dim{i#63061}(4)), `EQ`_vrelop_)] -[visit_exp shape#1012] -[visit_id shape#1012] -[visit_exp (`%X%`_shape{lanetype#9325, dim#9325, i#63054}(`F32`_lanetype, `%`_dim{i#63061}(4)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#9325, dim#9325, i#63054}(`F32`_lanetype, `%`_dim{i#63061}(4))] -[visit_exp lanetype#9325] -[visit_id lanetype#9325] -[visit_exp dim#9325] -[visit_id dim#9325] -[visit_exp i#63054] -[visit_id i#63054] -[visit_exp (`F32`_lanetype, `%`_dim{i#63061}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#63061}(4)] -[visit_exp i#63061] -[visit_id i#63061] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `EQ`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#63047}(65)] -[visit_exp i#63047] -[visit_id i#63047] +[visit_exp `%`_u32(65)] [visit_exp (65)] [visit_exp 65] -[check_dims] dim#9367 i#63144 i#63151 i#63158 lanetype#9367 shape#1014 -dims \ = dim#9367, i#63144, i#63151, i#63158, lanetype#9367, shape#1014 -[visit_exp `VRELOP`_instr{shape#1014}(`%X%`_shape{lanetype#9367, dim#9367, i#63151}(`F32`_lanetype, `%`_dim{i#63158}(4)), `NE`_vrelop_)] -[visit_exp shape#1014] -[visit_id shape#1014] -[visit_exp (`%X%`_shape{lanetype#9367, dim#9367, i#63151}(`F32`_lanetype, `%`_dim{i#63158}(4)), `NE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#9367, dim#9367, i#63151}(`F32`_lanetype, `%`_dim{i#63158}(4))] -[visit_exp lanetype#9367] -[visit_id lanetype#9367] -[visit_exp dim#9367] -[visit_id dim#9367] -[visit_exp i#63151] -[visit_id i#63151] -[visit_exp (`F32`_lanetype, `%`_dim{i#63158}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#63158}(4)] -[visit_exp i#63158] -[visit_id i#63158] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `NE`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#63144}(66)] -[visit_exp i#63144] -[visit_id i#63144] +[visit_exp `%`_u32(66)] [visit_exp (66)] [visit_exp 66] -[check_dims] dim#9409 i#63241 i#63248 i#63255 lanetype#9409 shape#1016 -dims \ = dim#9409, i#63241, i#63248, i#63255, lanetype#9409, shape#1016 -[visit_exp `VRELOP`_instr{shape#1016}(`%X%`_shape{lanetype#9409, dim#9409, i#63248}(`F32`_lanetype, `%`_dim{i#63255}(4)), `LT`_vrelop_)] -[visit_exp shape#1016] -[visit_id shape#1016] -[visit_exp (`%X%`_shape{lanetype#9409, dim#9409, i#63248}(`F32`_lanetype, `%`_dim{i#63255}(4)), `LT`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#9409, dim#9409, i#63248}(`F32`_lanetype, `%`_dim{i#63255}(4))] -[visit_exp lanetype#9409] -[visit_id lanetype#9409] -[visit_exp dim#9409] -[visit_id dim#9409] -[visit_exp i#63248] -[visit_id i#63248] -[visit_exp (`F32`_lanetype, `%`_dim{i#63255}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LT`_vrelop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LT`_vrelop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#63255}(4)] -[visit_exp i#63255] -[visit_id i#63255] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `LT`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#63241}(67)] -[visit_exp i#63241] -[visit_id i#63241] +[visit_exp `%`_u32(67)] [visit_exp (67)] [visit_exp 67] -[check_dims] dim#9451 i#63338 i#63345 i#63352 lanetype#9451 shape#1018 -dims \ = dim#9451, i#63338, i#63345, i#63352, lanetype#9451, shape#1018 -[visit_exp `VRELOP`_instr{shape#1018}(`%X%`_shape{lanetype#9451, dim#9451, i#63345}(`F32`_lanetype, `%`_dim{i#63352}(4)), `GT`_vrelop_)] -[visit_exp shape#1018] -[visit_id shape#1018] -[visit_exp (`%X%`_shape{lanetype#9451, dim#9451, i#63345}(`F32`_lanetype, `%`_dim{i#63352}(4)), `GT`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#9451, dim#9451, i#63345}(`F32`_lanetype, `%`_dim{i#63352}(4))] -[visit_exp lanetype#9451] -[visit_id lanetype#9451] -[visit_exp dim#9451] -[visit_id dim#9451] -[visit_exp i#63345] -[visit_id i#63345] -[visit_exp (`F32`_lanetype, `%`_dim{i#63352}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GT`_vrelop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GT`_vrelop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#63352}(4)] -[visit_exp i#63352] -[visit_id i#63352] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `GT`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#63338}(68)] -[visit_exp i#63338] -[visit_id i#63338] +[visit_exp `%`_u32(68)] [visit_exp (68)] [visit_exp 68] -[check_dims] dim#9493 i#63435 i#63442 i#63449 lanetype#9493 shape#1020 -dims \ = dim#9493, i#63435, i#63442, i#63449, lanetype#9493, shape#1020 -[visit_exp `VRELOP`_instr{shape#1020}(`%X%`_shape{lanetype#9493, dim#9493, i#63442}(`F32`_lanetype, `%`_dim{i#63449}(4)), `LE`_vrelop_)] -[visit_exp shape#1020] -[visit_id shape#1020] -[visit_exp (`%X%`_shape{lanetype#9493, dim#9493, i#63442}(`F32`_lanetype, `%`_dim{i#63449}(4)), `LE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#9493, dim#9493, i#63442}(`F32`_lanetype, `%`_dim{i#63449}(4))] -[visit_exp lanetype#9493] -[visit_id lanetype#9493] -[visit_exp dim#9493] -[visit_id dim#9493] -[visit_exp i#63442] -[visit_id i#63442] -[visit_exp (`F32`_lanetype, `%`_dim{i#63449}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LE`_vrelop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LE`_vrelop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#63449}(4)] -[visit_exp i#63449] -[visit_id i#63449] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `LE`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#63435}(69)] -[visit_exp i#63435] -[visit_id i#63435] +[visit_exp `%`_u32(69)] [visit_exp (69)] [visit_exp 69] -[check_dims] dim#9535 i#63532 i#63539 i#63546 lanetype#9535 shape#1022 -dims \ = dim#9535, i#63532, i#63539, i#63546, lanetype#9535, shape#1022 -[visit_exp `VRELOP`_instr{shape#1022}(`%X%`_shape{lanetype#9535, dim#9535, i#63539}(`F32`_lanetype, `%`_dim{i#63546}(4)), `GE`_vrelop_)] -[visit_exp shape#1022] -[visit_id shape#1022] -[visit_exp (`%X%`_shape{lanetype#9535, dim#9535, i#63539}(`F32`_lanetype, `%`_dim{i#63546}(4)), `GE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#9535, dim#9535, i#63539}(`F32`_lanetype, `%`_dim{i#63546}(4))] -[visit_exp lanetype#9535] -[visit_id lanetype#9535] -[visit_exp dim#9535] -[visit_id dim#9535] -[visit_exp i#63539] -[visit_id i#63539] -[visit_exp (`F32`_lanetype, `%`_dim{i#63546}(4))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GE`_vrelop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GE`_vrelop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#63546}(4)] -[visit_exp i#63546] -[visit_id i#63546] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `GE`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#63532}(70)] -[visit_exp i#63532] -[visit_id i#63532] +[visit_exp `%`_u32(70)] [visit_exp (70)] [visit_exp 70] ps' = [check_dims] -[check_dims] dim#9577 i#63629 i#63636 i#63643 lanetype#9577 shape#1024 -dims \ = dim#9577, i#63629, i#63636, i#63643, lanetype#9577, shape#1024 -[visit_exp `VRELOP`_instr{shape#1024}(`%X%`_shape{lanetype#9577, dim#9577, i#63636}(`F64`_lanetype, `%`_dim{i#63643}(2)), `EQ`_vrelop_)] -[visit_exp shape#1024] -[visit_id shape#1024] -[visit_exp (`%X%`_shape{lanetype#9577, dim#9577, i#63636}(`F64`_lanetype, `%`_dim{i#63643}(2)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#9577, dim#9577, i#63636}(`F64`_lanetype, `%`_dim{i#63643}(2))] -[visit_exp lanetype#9577] -[visit_id lanetype#9577] -[visit_exp dim#9577] -[visit_id dim#9577] -[visit_exp i#63636] -[visit_id i#63636] -[visit_exp (`F64`_lanetype, `%`_dim{i#63643}(2))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#63643}(2)] -[visit_exp i#63643] -[visit_id i#63643] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `EQ`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#63629}(71)] -[visit_exp i#63629] -[visit_id i#63629] +[visit_exp `%`_u32(71)] [visit_exp (71)] [visit_exp 71] -[check_dims] dim#9619 i#63726 i#63733 i#63740 lanetype#9619 shape#1026 -dims \ = dim#9619, i#63726, i#63733, i#63740, lanetype#9619, shape#1026 -[visit_exp `VRELOP`_instr{shape#1026}(`%X%`_shape{lanetype#9619, dim#9619, i#63733}(`F64`_lanetype, `%`_dim{i#63740}(2)), `NE`_vrelop_)] -[visit_exp shape#1026] -[visit_id shape#1026] -[visit_exp (`%X%`_shape{lanetype#9619, dim#9619, i#63733}(`F64`_lanetype, `%`_dim{i#63740}(2)), `NE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#9619, dim#9619, i#63733}(`F64`_lanetype, `%`_dim{i#63740}(2))] -[visit_exp lanetype#9619] -[visit_id lanetype#9619] -[visit_exp dim#9619] -[visit_id dim#9619] -[visit_exp i#63733] -[visit_id i#63733] -[visit_exp (`F64`_lanetype, `%`_dim{i#63740}(2))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#63740}(2)] -[visit_exp i#63740] -[visit_id i#63740] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `NE`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#63726}(72)] -[visit_exp i#63726] -[visit_id i#63726] +[visit_exp `%`_u32(72)] [visit_exp (72)] [visit_exp 72] -[check_dims] dim#9661 i#63823 i#63830 i#63837 lanetype#9661 shape#1028 -dims \ = dim#9661, i#63823, i#63830, i#63837, lanetype#9661, shape#1028 -[visit_exp `VRELOP`_instr{shape#1028}(`%X%`_shape{lanetype#9661, dim#9661, i#63830}(`F64`_lanetype, `%`_dim{i#63837}(2)), `LT`_vrelop_)] -[visit_exp shape#1028] -[visit_id shape#1028] -[visit_exp (`%X%`_shape{lanetype#9661, dim#9661, i#63830}(`F64`_lanetype, `%`_dim{i#63837}(2)), `LT`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#9661, dim#9661, i#63830}(`F64`_lanetype, `%`_dim{i#63837}(2))] -[visit_exp lanetype#9661] -[visit_id lanetype#9661] -[visit_exp dim#9661] -[visit_id dim#9661] -[visit_exp i#63830] -[visit_id i#63830] -[visit_exp (`F64`_lanetype, `%`_dim{i#63837}(2))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LT`_vrelop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LT`_vrelop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#63837}(2)] -[visit_exp i#63837] -[visit_id i#63837] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `LT`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#63823}(73)] -[visit_exp i#63823] -[visit_id i#63823] +[visit_exp `%`_u32(73)] [visit_exp (73)] [visit_exp 73] -[check_dims] dim#9703 i#63920 i#63927 i#63934 lanetype#9703 shape#1030 -dims \ = dim#9703, i#63920, i#63927, i#63934, lanetype#9703, shape#1030 -[visit_exp `VRELOP`_instr{shape#1030}(`%X%`_shape{lanetype#9703, dim#9703, i#63927}(`F64`_lanetype, `%`_dim{i#63934}(2)), `GT`_vrelop_)] -[visit_exp shape#1030] -[visit_id shape#1030] -[visit_exp (`%X%`_shape{lanetype#9703, dim#9703, i#63927}(`F64`_lanetype, `%`_dim{i#63934}(2)), `GT`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#9703, dim#9703, i#63927}(`F64`_lanetype, `%`_dim{i#63934}(2))] -[visit_exp lanetype#9703] -[visit_id lanetype#9703] -[visit_exp dim#9703] -[visit_id dim#9703] -[visit_exp i#63927] -[visit_id i#63927] -[visit_exp (`F64`_lanetype, `%`_dim{i#63934}(2))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GT`_vrelop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GT`_vrelop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#63934}(2)] -[visit_exp i#63934] -[visit_id i#63934] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `GT`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#63920}(74)] -[visit_exp i#63920] -[visit_id i#63920] +[visit_exp `%`_u32(74)] [visit_exp (74)] [visit_exp 74] -[check_dims] dim#9745 i#64017 i#64024 i#64031 lanetype#9745 shape#1032 -dims \ = dim#9745, i#64017, i#64024, i#64031, lanetype#9745, shape#1032 -[visit_exp `VRELOP`_instr{shape#1032}(`%X%`_shape{lanetype#9745, dim#9745, i#64024}(`F64`_lanetype, `%`_dim{i#64031}(2)), `LE`_vrelop_)] -[visit_exp shape#1032] -[visit_id shape#1032] -[visit_exp (`%X%`_shape{lanetype#9745, dim#9745, i#64024}(`F64`_lanetype, `%`_dim{i#64031}(2)), `LE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#9745, dim#9745, i#64024}(`F64`_lanetype, `%`_dim{i#64031}(2))] -[visit_exp lanetype#9745] -[visit_id lanetype#9745] -[visit_exp dim#9745] -[visit_id dim#9745] -[visit_exp i#64024] -[visit_id i#64024] -[visit_exp (`F64`_lanetype, `%`_dim{i#64031}(2))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LE`_vrelop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LE`_vrelop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#64031}(2)] -[visit_exp i#64031] -[visit_id i#64031] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `LE`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#64017}(75)] -[visit_exp i#64017] -[visit_id i#64017] +[visit_exp `%`_u32(75)] [visit_exp (75)] [visit_exp 75] -[check_dims] dim#9787 i#64114 i#64121 i#64128 lanetype#9787 shape#1034 -dims \ = dim#9787, i#64114, i#64121, i#64128, lanetype#9787, shape#1034 -[visit_exp `VRELOP`_instr{shape#1034}(`%X%`_shape{lanetype#9787, dim#9787, i#64121}(`F64`_lanetype, `%`_dim{i#64128}(2)), `GE`_vrelop_)] -[visit_exp shape#1034] -[visit_id shape#1034] -[visit_exp (`%X%`_shape{lanetype#9787, dim#9787, i#64121}(`F64`_lanetype, `%`_dim{i#64128}(2)), `GE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#9787, dim#9787, i#64121}(`F64`_lanetype, `%`_dim{i#64128}(2))] -[visit_exp lanetype#9787] -[visit_id lanetype#9787] -[visit_exp dim#9787] -[visit_id dim#9787] -[visit_exp i#64121] -[visit_id i#64121] -[visit_exp (`F64`_lanetype, `%`_dim{i#64128}(2))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GE`_vrelop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GE`_vrelop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#64128}(2)] -[visit_exp i#64128] -[visit_id i#64128] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `GE`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#64114}(76)] -[visit_exp i#64114] -[visit_id i#64114] +[visit_exp `%`_u32(76)] [visit_exp (76)] [visit_exp 76] ps' = [check_dims] -[check_dims] i#64211 vectype#259 vvunop#7 -dims \ = i#64211, vectype#259, vvunop#7 -[visit_exp `VVUNOP`_instr{vectype#259, vvunop#7}(`V128`_vectype, `NOT`_vvunop)] -[visit_exp vectype#259] -[visit_id vectype#259] -[visit_exp vvunop#7] -[visit_id vvunop#7] +[check_dims] +dims \ = +[visit_exp `VVUNOP`_instr(`V128`_vectype, `NOT`_vvunop)] [visit_exp (`V128`_vectype, `NOT`_vvunop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp `NOT`_vvunop] [visit_exp ()] -[visit_exp `%`_u32{i#64211}(77)] -[visit_exp i#64211] -[visit_id i#64211] +[visit_exp `%`_u32(77)] [visit_exp (77)] [visit_exp 77] ps' = [check_dims] -[check_dims] i#64236 vectype#261 vvbinop#7 -dims \ = i#64236, vectype#261, vvbinop#7 -[visit_exp `VVBINOP`_instr{vectype#261, vvbinop#7}(`V128`_vectype, `AND`_vvbinop)] -[visit_exp vectype#261] -[visit_id vectype#261] -[visit_exp vvbinop#7] -[visit_id vvbinop#7] +[check_dims] +dims \ = +[visit_exp `VVBINOP`_instr(`V128`_vectype, `AND`_vvbinop)] [visit_exp (`V128`_vectype, `AND`_vvbinop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp `AND`_vvbinop] [visit_exp ()] -[visit_exp `%`_u32{i#64236}(78)] -[visit_exp i#64236] -[visit_id i#64236] +[visit_exp `%`_u32(78)] [visit_exp (78)] [visit_exp 78] -[check_dims] i#64261 vectype#263 vvbinop#9 -dims \ = i#64261, vectype#263, vvbinop#9 -[visit_exp `VVBINOP`_instr{vectype#263, vvbinop#9}(`V128`_vectype, `ANDNOT`_vvbinop)] -[visit_exp vectype#263] -[visit_id vectype#263] -[visit_exp vvbinop#9] -[visit_id vvbinop#9] +[check_dims] +dims \ = +[visit_exp `VVBINOP`_instr(`V128`_vectype, `ANDNOT`_vvbinop)] [visit_exp (`V128`_vectype, `ANDNOT`_vvbinop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp `ANDNOT`_vvbinop] [visit_exp ()] -[visit_exp `%`_u32{i#64261}(79)] -[visit_exp i#64261] -[visit_id i#64261] +[visit_exp `%`_u32(79)] [visit_exp (79)] [visit_exp 79] -[check_dims] i#64286 vectype#265 vvbinop#11 -dims \ = i#64286, vectype#265, vvbinop#11 -[visit_exp `VVBINOP`_instr{vectype#265, vvbinop#11}(`V128`_vectype, `OR`_vvbinop)] -[visit_exp vectype#265] -[visit_id vectype#265] -[visit_exp vvbinop#11] -[visit_id vvbinop#11] +[check_dims] +dims \ = +[visit_exp `VVBINOP`_instr(`V128`_vectype, `OR`_vvbinop)] [visit_exp (`V128`_vectype, `OR`_vvbinop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp `OR`_vvbinop] [visit_exp ()] -[visit_exp `%`_u32{i#64286}(80)] -[visit_exp i#64286] -[visit_id i#64286] +[visit_exp `%`_u32(80)] [visit_exp (80)] [visit_exp 80] -[check_dims] i#64311 vectype#267 vvbinop#13 -dims \ = i#64311, vectype#267, vvbinop#13 -[visit_exp `VVBINOP`_instr{vectype#267, vvbinop#13}(`V128`_vectype, `XOR`_vvbinop)] -[visit_exp vectype#267] -[visit_id vectype#267] -[visit_exp vvbinop#13] -[visit_id vvbinop#13] +[check_dims] +dims \ = +[visit_exp `VVBINOP`_instr(`V128`_vectype, `XOR`_vvbinop)] [visit_exp (`V128`_vectype, `XOR`_vvbinop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp `XOR`_vvbinop] [visit_exp ()] -[visit_exp `%`_u32{i#64311}(81)] -[visit_exp i#64311] -[visit_id i#64311] +[visit_exp `%`_u32(81)] [visit_exp (81)] [visit_exp 81] ps' = [check_dims] -[check_dims] i#64336 vectype#269 vvternop#7 -dims \ = i#64336, vectype#269, vvternop#7 -[visit_exp `VVTERNOP`_instr{vectype#269, vvternop#7}(`V128`_vectype, `BITSELECT`_vvternop)] -[visit_exp vectype#269] -[visit_id vectype#269] -[visit_exp vvternop#7] -[visit_id vvternop#7] +[check_dims] +dims \ = +[visit_exp `VVTERNOP`_instr(`V128`_vectype, `BITSELECT`_vvternop)] [visit_exp (`V128`_vectype, `BITSELECT`_vvternop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp `BITSELECT`_vvternop] [visit_exp ()] -[visit_exp `%`_u32{i#64336}(82)] -[visit_exp i#64336] -[visit_id i#64336] +[visit_exp `%`_u32(82)] [visit_exp (82)] [visit_exp 82] ps' = [check_dims] -[check_dims] i#64361 vectype#271 vvtestop#7 -dims \ = i#64361, vectype#271, vvtestop#7 -[visit_exp `VVTESTOP`_instr{vectype#271, vvtestop#7}(`V128`_vectype, `ANY_TRUE`_vvtestop)] -[visit_exp vectype#271] -[visit_id vectype#271] -[visit_exp vvtestop#7] -[visit_id vvtestop#7] +[check_dims] +dims \ = +[visit_exp `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop)] [visit_exp (`V128`_vectype, `ANY_TRUE`_vvtestop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp `ANY_TRUE`_vvtestop] [visit_exp ()] -[visit_exp `%`_u32{i#64361}(83)] -[visit_exp i#64361] -[visit_id i#64361] +[visit_exp `%`_u32(83)] [visit_exp (83)] [visit_exp 83] ps' = [check_dims] -[check_dims] dim#9829 i#64386 i#64393 i#64400 lanetype#9829 shape#1036 -dims \ = dim#9829, i#64386, i#64393, i#64400, lanetype#9829, shape#1036 -[visit_exp `VUNOP`_instr{shape#1036}(`%X%`_shape{lanetype#9829, dim#9829, i#64393}(`I8`_lanetype, `%`_dim{i#64400}(16)), `ABS`_vunop_)] -[visit_exp shape#1036] -[visit_id shape#1036] -[visit_exp (`%X%`_shape{lanetype#9829, dim#9829, i#64393}(`I8`_lanetype, `%`_dim{i#64400}(16)), `ABS`_vunop_)] -[visit_exp `%X%`_shape{lanetype#9829, dim#9829, i#64393}(`I8`_lanetype, `%`_dim{i#64400}(16))] -[visit_exp lanetype#9829] -[visit_id lanetype#9829] -[visit_exp dim#9829] -[visit_id dim#9829] -[visit_exp i#64393] -[visit_id i#64393] -[visit_exp (`I8`_lanetype, `%`_dim{i#64400}(16))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ABS`_vunop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ABS`_vunop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#64400}(16)] -[visit_exp i#64400] -[visit_id i#64400] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `ABS`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#64386}(96)] -[visit_exp i#64386] -[visit_id i#64386] +[visit_exp `%`_u32(96)] [visit_exp (96)] [visit_exp 96] -[check_dims] dim#9856 i#64468 i#64475 i#64482 lanetype#9856 shape#1038 -dims \ = dim#9856, i#64468, i#64475, i#64482, lanetype#9856, shape#1038 -[visit_exp `VUNOP`_instr{shape#1038}(`%X%`_shape{lanetype#9856, dim#9856, i#64475}(`I8`_lanetype, `%`_dim{i#64482}(16)), `NEG`_vunop_)] -[visit_exp shape#1038] -[visit_id shape#1038] -[visit_exp (`%X%`_shape{lanetype#9856, dim#9856, i#64475}(`I8`_lanetype, `%`_dim{i#64482}(16)), `NEG`_vunop_)] -[visit_exp `%X%`_shape{lanetype#9856, dim#9856, i#64475}(`I8`_lanetype, `%`_dim{i#64482}(16))] -[visit_exp lanetype#9856] -[visit_id lanetype#9856] -[visit_exp dim#9856] -[visit_id dim#9856] -[visit_exp i#64475] -[visit_id i#64475] -[visit_exp (`I8`_lanetype, `%`_dim{i#64482}(16))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NEG`_vunop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NEG`_vunop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#64482}(16)] -[visit_exp i#64482] -[visit_id i#64482] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `NEG`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#64468}(97)] -[visit_exp i#64468] -[visit_id i#64468] +[visit_exp `%`_u32(97)] [visit_exp (97)] [visit_exp 97] -[check_dims] dim#9883 i#64550 i#64557 i#64564 lanetype#9883 shape#1040 -dims \ = dim#9883, i#64550, i#64557, i#64564, lanetype#9883, shape#1040 -[visit_exp `VUNOP`_instr{shape#1040}(`%X%`_shape{lanetype#9883, dim#9883, i#64557}(`I8`_lanetype, `%`_dim{i#64564}(16)), `POPCNT`_vunop_)] -[visit_exp shape#1040] -[visit_id shape#1040] -[visit_exp (`%X%`_shape{lanetype#9883, dim#9883, i#64557}(`I8`_lanetype, `%`_dim{i#64564}(16)), `POPCNT`_vunop_)] -[visit_exp `%X%`_shape{lanetype#9883, dim#9883, i#64557}(`I8`_lanetype, `%`_dim{i#64564}(16))] -[visit_exp lanetype#9883] -[visit_id lanetype#9883] -[visit_exp dim#9883] -[visit_id dim#9883] -[visit_exp i#64557] -[visit_id i#64557] -[visit_exp (`I8`_lanetype, `%`_dim{i#64564}(16))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `POPCNT`_vunop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `POPCNT`_vunop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#64564}(16)] -[visit_exp i#64564] -[visit_id i#64564] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `POPCNT`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#64550}(98)] -[visit_exp i#64550] -[visit_id i#64550] +[visit_exp `%`_u32(98)] [visit_exp (98)] [visit_exp 98] ps' = [check_dims] -[check_dims] dim#9910 i#64632 i#64639 i#64646 lanetype#9910 shape#1042 -dims \ = dim#9910, i#64632, i#64639, i#64646, lanetype#9910, shape#1042 -[visit_exp `VTESTOP`_instr{shape#1042}(`%X%`_shape{lanetype#9910, dim#9910, i#64639}(`I8`_lanetype, `%`_dim{i#64646}(16)), `ALL_TRUE`_vtestop_)] -[visit_exp shape#1042] -[visit_id shape#1042] -[visit_exp (`%X%`_shape{lanetype#9910, dim#9910, i#64639}(`I8`_lanetype, `%`_dim{i#64646}(16)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape{lanetype#9910, dim#9910, i#64639}(`I8`_lanetype, `%`_dim{i#64646}(16))] -[visit_exp lanetype#9910] -[visit_id lanetype#9910] -[visit_exp dim#9910] -[visit_id dim#9910] -[visit_exp i#64639] -[visit_id i#64639] -[visit_exp (`I8`_lanetype, `%`_dim{i#64646}(16))] +[check_dims] +dims \ = +[visit_exp `VTESTOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ALL_TRUE`_vtestop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#64646}(16)] -[visit_exp i#64646] -[visit_id i#64646] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `ALL_TRUE`_vtestop_] [visit_exp ()] -[visit_exp `%`_u32{i#64632}(99)] -[visit_exp i#64632] -[visit_id i#64632] +[visit_exp `%`_u32(99)] [visit_exp (99)] [visit_exp 99] ps' = [check_dims] -[check_dims] Jnn#228 dim#9937 i#64714 i#64721 i#64728 ishape#13 lanetype#9937 shape#1054 -dims \ = Jnn#228, dim#9937, i#64714, i#64721, i#64728, ishape#13, lanetype#9937, shape#1054 -[visit_exp `VBITMASK`_instr{ishape#13}(`%`_ishape{shape#1054, Jnn#228}(`%X%`_shape{lanetype#9937, dim#9937, i#64721}(`I8`_lanetype, `%`_dim{i#64728}(16))))] -[visit_exp ishape#13] -[visit_id ishape#13] -[visit_exp (`%`_ishape{shape#1054, Jnn#228}(`%X%`_shape{lanetype#9937, dim#9937, i#64721}(`I8`_lanetype, `%`_dim{i#64728}(16))))] -[visit_exp `%`_ishape{shape#1054, Jnn#228}(`%X%`_shape{lanetype#9937, dim#9937, i#64721}(`I8`_lanetype, `%`_dim{i#64728}(16)))] -[visit_exp shape#1054] -[visit_id shape#1054] -[visit_exp Jnn#228] -[visit_id Jnn#228] -[visit_exp (`%X%`_shape{lanetype#9937, dim#9937, i#64721}(`I8`_lanetype, `%`_dim{i#64728}(16)))] -[visit_exp `%X%`_shape{lanetype#9937, dim#9937, i#64721}(`I8`_lanetype, `%`_dim{i#64728}(16))] -[visit_exp lanetype#9937] -[visit_id lanetype#9937] -[visit_exp dim#9937] -[visit_id dim#9937] -[visit_exp i#64721] -[visit_id i#64721] -[visit_exp (`I8`_lanetype, `%`_dim{i#64728}(16))] +[check_dims] +dims \ = +[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))))] +[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#64728}(16)] -[visit_exp i#64728] -[visit_id i#64728] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `%`_u32{i#64714}(100)] -[visit_exp i#64714] -[visit_id i#64714] +[visit_exp `%`_u32(100)] [visit_exp (100)] [visit_exp 100] ps' = [check_dims] -[check_dims] Jnn#229 Jnn#230 Jnn#231 Jnn#235 Jnn#239 dim#9949 dim#9961 i#64751 i#64758 i#64765 i#64770 i#64777 ishape_1#25 ishape_2#25 lanetype#9949 lanetype#9961 shape#1056 shape#1057 shape#1058 shape#1069 shape#1081 sx#9753 -dims \ = Jnn#229, Jnn#230, Jnn#231, Jnn#235, Jnn#239, dim#9949, dim#9961, i#64751, i#64758, i#64765, i#64770, i#64777, ishape_1#25, ishape_2#25, lanetype#9949, lanetype#9961, shape#1056, shape#1057, shape#1058, shape#1069, shape#1081, sx#9753 -[visit_exp `VNARROW`_instr{ishape_1#25, ishape_2#25, sx#9753, shape#1056, Jnn#229, shape#1057, Jnn#230, shape#1058, Jnn#231}(`%`_ishape{shape#1069, Jnn#235}(`%X%`_shape{lanetype#9949, dim#9949, i#64758}(`I8`_lanetype, `%`_dim{i#64765}(16))), `%`_ishape{shape#1081, Jnn#239}(`%X%`_shape{lanetype#9961, dim#9961, i#64770}(`I16`_lanetype, `%`_dim{i#64777}(8))), `S`_sx)] -[visit_exp ishape_1#25] -[visit_id ishape_1#25] -[visit_exp ishape_2#25] -[visit_id ishape_2#25] -[visit_exp sx#9753] -[visit_id sx#9753] -[visit_exp shape#1056] -[visit_id shape#1056] -[visit_exp Jnn#229] -[visit_id Jnn#229] -[visit_exp shape#1057] -[visit_id shape#1057] -[visit_exp Jnn#230] -[visit_id Jnn#230] -[visit_exp shape#1058] -[visit_id shape#1058] -[visit_exp Jnn#231] -[visit_id Jnn#231] -[visit_exp (`%`_ishape{shape#1069, Jnn#235}(`%X%`_shape{lanetype#9949, dim#9949, i#64758}(`I8`_lanetype, `%`_dim{i#64765}(16))), `%`_ishape{shape#1081, Jnn#239}(`%X%`_shape{lanetype#9961, dim#9961, i#64770}(`I16`_lanetype, `%`_dim{i#64777}(8))), `S`_sx)] -[visit_exp `%`_ishape{shape#1069, Jnn#235}(`%X%`_shape{lanetype#9949, dim#9949, i#64758}(`I8`_lanetype, `%`_dim{i#64765}(16)))] -[visit_exp shape#1069] -[visit_id shape#1069] -[visit_exp Jnn#235] -[visit_id Jnn#235] -[visit_exp (`%X%`_shape{lanetype#9949, dim#9949, i#64758}(`I8`_lanetype, `%`_dim{i#64765}(16)))] -[visit_exp `%X%`_shape{lanetype#9949, dim#9949, i#64758}(`I8`_lanetype, `%`_dim{i#64765}(16))] -[visit_exp lanetype#9949] -[visit_id lanetype#9949] -[visit_exp dim#9949] -[visit_id dim#9949] -[visit_exp i#64758] -[visit_id i#64758] -[visit_exp (`I8`_lanetype, `%`_dim{i#64765}(16))] +[check_dims] +dims \ = +[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `S`_sx)] +[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `S`_sx)] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#64765}(16)] -[visit_exp i#64765] -[visit_id i#64765] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `%`_ishape{shape#1081, Jnn#239}(`%X%`_shape{lanetype#9961, dim#9961, i#64770}(`I16`_lanetype, `%`_dim{i#64777}(8)))] -[visit_exp shape#1081] -[visit_id shape#1081] -[visit_exp Jnn#239] -[visit_id Jnn#239] -[visit_exp (`%X%`_shape{lanetype#9961, dim#9961, i#64770}(`I16`_lanetype, `%`_dim{i#64777}(8)))] -[visit_exp `%X%`_shape{lanetype#9961, dim#9961, i#64770}(`I16`_lanetype, `%`_dim{i#64777}(8))] -[visit_exp lanetype#9961] -[visit_id lanetype#9961] -[visit_exp dim#9961] -[visit_id dim#9961] -[visit_exp i#64770] -[visit_id i#64770] -[visit_exp (`I16`_lanetype, `%`_dim{i#64777}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#64777}(8)] -[visit_exp i#64777] -[visit_id i#64777] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#64751}(101)] -[visit_exp i#64751] -[visit_id i#64751] +[visit_exp `%`_u32(101)] [visit_exp (101)] [visit_exp 101] -[check_dims] Jnn#240 Jnn#241 Jnn#242 Jnn#246 Jnn#250 dim#9973 dim#9985 i#64800 i#64807 i#64814 i#64819 i#64826 ishape_1#27 ishape_2#27 lanetype#9973 lanetype#9985 shape#1083 shape#1084 shape#1085 shape#1096 shape#1108 sx#9755 -dims \ = Jnn#240, Jnn#241, Jnn#242, Jnn#246, Jnn#250, dim#9973, dim#9985, i#64800, i#64807, i#64814, i#64819, i#64826, ishape_1#27, ishape_2#27, lanetype#9973, lanetype#9985, shape#1083, shape#1084, shape#1085, shape#1096, shape#1108, sx#9755 -[visit_exp `VNARROW`_instr{ishape_1#27, ishape_2#27, sx#9755, shape#1083, Jnn#240, shape#1084, Jnn#241, shape#1085, Jnn#242}(`%`_ishape{shape#1096, Jnn#246}(`%X%`_shape{lanetype#9973, dim#9973, i#64807}(`I8`_lanetype, `%`_dim{i#64814}(16))), `%`_ishape{shape#1108, Jnn#250}(`%X%`_shape{lanetype#9985, dim#9985, i#64819}(`I16`_lanetype, `%`_dim{i#64826}(8))), `U`_sx)] -[visit_exp ishape_1#27] -[visit_id ishape_1#27] -[visit_exp ishape_2#27] -[visit_id ishape_2#27] -[visit_exp sx#9755] -[visit_id sx#9755] -[visit_exp shape#1083] -[visit_id shape#1083] -[visit_exp Jnn#240] -[visit_id Jnn#240] -[visit_exp shape#1084] -[visit_id shape#1084] -[visit_exp Jnn#241] -[visit_id Jnn#241] -[visit_exp shape#1085] -[visit_id shape#1085] -[visit_exp Jnn#242] -[visit_id Jnn#242] -[visit_exp (`%`_ishape{shape#1096, Jnn#246}(`%X%`_shape{lanetype#9973, dim#9973, i#64807}(`I8`_lanetype, `%`_dim{i#64814}(16))), `%`_ishape{shape#1108, Jnn#250}(`%X%`_shape{lanetype#9985, dim#9985, i#64819}(`I16`_lanetype, `%`_dim{i#64826}(8))), `U`_sx)] -[visit_exp `%`_ishape{shape#1096, Jnn#246}(`%X%`_shape{lanetype#9973, dim#9973, i#64807}(`I8`_lanetype, `%`_dim{i#64814}(16)))] -[visit_exp shape#1096] -[visit_id shape#1096] -[visit_exp Jnn#246] -[visit_id Jnn#246] -[visit_exp (`%X%`_shape{lanetype#9973, dim#9973, i#64807}(`I8`_lanetype, `%`_dim{i#64814}(16)))] -[visit_exp `%X%`_shape{lanetype#9973, dim#9973, i#64807}(`I8`_lanetype, `%`_dim{i#64814}(16))] -[visit_exp lanetype#9973] -[visit_id lanetype#9973] -[visit_exp dim#9973] -[visit_id dim#9973] -[visit_exp i#64807] -[visit_id i#64807] -[visit_exp (`I8`_lanetype, `%`_dim{i#64814}(16))] +[check_dims] +dims \ = +[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `U`_sx)] +[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `U`_sx)] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#64814}(16)] -[visit_exp i#64814] -[visit_id i#64814] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `%`_ishape{shape#1108, Jnn#250}(`%X%`_shape{lanetype#9985, dim#9985, i#64819}(`I16`_lanetype, `%`_dim{i#64826}(8)))] -[visit_exp shape#1108] -[visit_id shape#1108] -[visit_exp Jnn#250] -[visit_id Jnn#250] -[visit_exp (`%X%`_shape{lanetype#9985, dim#9985, i#64819}(`I16`_lanetype, `%`_dim{i#64826}(8)))] -[visit_exp `%X%`_shape{lanetype#9985, dim#9985, i#64819}(`I16`_lanetype, `%`_dim{i#64826}(8))] -[visit_exp lanetype#9985] -[visit_id lanetype#9985] -[visit_exp dim#9985] -[visit_id dim#9985] -[visit_exp i#64819] -[visit_id i#64819] -[visit_exp (`I16`_lanetype, `%`_dim{i#64826}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#64826}(8)] -[visit_exp i#64826] -[visit_id i#64826] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#64800}(102)] -[visit_exp i#64800] -[visit_id i#64800] +[visit_exp `%`_u32(102)] [visit_exp (102)] [visit_exp 102] ps' = [check_dims] -[check_dims] Jnn#254 dim#9997 i#64849 i#64856 i#64863 ishape#15 lanetype#9997 shape#1120 -dims \ = Jnn#254, dim#9997, i#64849, i#64856, i#64863, ishape#15, lanetype#9997, shape#1120 -[visit_exp `VSHIFTOP`_instr{ishape#15}(`%`_ishape{shape#1120, Jnn#254}(`%X%`_shape{lanetype#9997, dim#9997, i#64856}(`I8`_lanetype, `%`_dim{i#64863}(16))), `SHL`_vshiftop_)] -[visit_exp ishape#15] -[visit_id ishape#15] -[visit_exp (`%`_ishape{shape#1120, Jnn#254}(`%X%`_shape{lanetype#9997, dim#9997, i#64856}(`I8`_lanetype, `%`_dim{i#64863}(16))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape{shape#1120, Jnn#254}(`%X%`_shape{lanetype#9997, dim#9997, i#64856}(`I8`_lanetype, `%`_dim{i#64863}(16)))] -[visit_exp shape#1120] -[visit_id shape#1120] -[visit_exp Jnn#254] -[visit_id Jnn#254] -[visit_exp (`%X%`_shape{lanetype#9997, dim#9997, i#64856}(`I8`_lanetype, `%`_dim{i#64863}(16)))] -[visit_exp `%X%`_shape{lanetype#9997, dim#9997, i#64856}(`I8`_lanetype, `%`_dim{i#64863}(16))] -[visit_exp lanetype#9997] -[visit_id lanetype#9997] -[visit_exp dim#9997] -[visit_id dim#9997] -[visit_exp i#64856] -[visit_id i#64856] -[visit_exp (`I8`_lanetype, `%`_dim{i#64863}(16))] +[check_dims] +dims \ = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHL`_vshiftop_)] +[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#64863}(16)] -[visit_exp i#64863] -[visit_id i#64863] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `SHL`_vshiftop_] [visit_exp ()] -[visit_exp `%`_u32{i#64849}(107)] -[visit_exp i#64849] -[visit_id i#64849] +[visit_exp `%`_u32(107)] [visit_exp (107)] [visit_exp 107] -[check_dims] Jnn#258 dim#10054 i#64961 i#64968 i#64975 ishape#17 lanetype#10054 shape#1147 sx#9804 -dims \ = Jnn#258, dim#10054, i#64961, i#64968, i#64975, ishape#17, lanetype#10054, shape#1147, sx#9804 -[visit_exp `VSHIFTOP`_instr{ishape#17}(`%`_ishape{shape#1147, Jnn#258}(`%X%`_shape{lanetype#10054, dim#10054, i#64968}(`I8`_lanetype, `%`_dim{i#64975}(16))), `SHR`_vshiftop_{sx#9804}(`S`_sx))] -[visit_exp ishape#17] -[visit_id ishape#17] -[visit_exp (`%`_ishape{shape#1147, Jnn#258}(`%X%`_shape{lanetype#10054, dim#10054, i#64968}(`I8`_lanetype, `%`_dim{i#64975}(16))), `SHR`_vshiftop_{sx#9804}(`S`_sx))] -[visit_exp `%`_ishape{shape#1147, Jnn#258}(`%X%`_shape{lanetype#10054, dim#10054, i#64968}(`I8`_lanetype, `%`_dim{i#64975}(16)))] -[visit_exp shape#1147] -[visit_id shape#1147] -[visit_exp Jnn#258] -[visit_id Jnn#258] -[visit_exp (`%X%`_shape{lanetype#10054, dim#10054, i#64968}(`I8`_lanetype, `%`_dim{i#64975}(16)))] -[visit_exp `%X%`_shape{lanetype#10054, dim#10054, i#64968}(`I8`_lanetype, `%`_dim{i#64975}(16))] -[visit_exp lanetype#10054] -[visit_id lanetype#10054] -[visit_exp dim#10054] -[visit_id dim#10054] -[visit_exp i#64968] -[visit_id i#64968] -[visit_exp (`I8`_lanetype, `%`_dim{i#64975}(16))] +[check_dims] +dims \ = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#64975}(16)] -[visit_exp i#64975] -[visit_id i#64975] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `SHR`_vshiftop_{sx#9804}(`S`_sx)] -[visit_exp sx#9804] -[visit_id sx#9804] +[visit_exp `SHR`_vshiftop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#64961}(108)] -[visit_exp i#64961] -[visit_id i#64961] +[visit_exp `%`_u32(108)] [visit_exp (108)] [visit_exp 108] -[check_dims] Jnn#262 dim#10156 i#65148 i#65155 i#65162 ishape#19 lanetype#10156 shape#1189 sx#9838 -dims \ = Jnn#262, dim#10156, i#65148, i#65155, i#65162, ishape#19, lanetype#10156, shape#1189, sx#9838 -[visit_exp `VSHIFTOP`_instr{ishape#19}(`%`_ishape{shape#1189, Jnn#262}(`%X%`_shape{lanetype#10156, dim#10156, i#65155}(`I8`_lanetype, `%`_dim{i#65162}(16))), `SHR`_vshiftop_{sx#9838}(`U`_sx))] -[visit_exp ishape#19] -[visit_id ishape#19] -[visit_exp (`%`_ishape{shape#1189, Jnn#262}(`%X%`_shape{lanetype#10156, dim#10156, i#65155}(`I8`_lanetype, `%`_dim{i#65162}(16))), `SHR`_vshiftop_{sx#9838}(`U`_sx))] -[visit_exp `%`_ishape{shape#1189, Jnn#262}(`%X%`_shape{lanetype#10156, dim#10156, i#65155}(`I8`_lanetype, `%`_dim{i#65162}(16)))] -[visit_exp shape#1189] -[visit_id shape#1189] -[visit_exp Jnn#262] -[visit_id Jnn#262] -[visit_exp (`%X%`_shape{lanetype#10156, dim#10156, i#65155}(`I8`_lanetype, `%`_dim{i#65162}(16)))] -[visit_exp `%X%`_shape{lanetype#10156, dim#10156, i#65155}(`I8`_lanetype, `%`_dim{i#65162}(16))] -[visit_exp lanetype#10156] -[visit_id lanetype#10156] -[visit_exp dim#10156] -[visit_id dim#10156] -[visit_exp i#65155] -[visit_id i#65155] -[visit_exp (`I8`_lanetype, `%`_dim{i#65162}(16))] +[check_dims] +dims \ = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#65162}(16)] -[visit_exp i#65162] -[visit_id i#65162] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `SHR`_vshiftop_{sx#9838}(`U`_sx)] -[visit_exp sx#9838] -[visit_id sx#9838] +[visit_exp `SHR`_vshiftop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#65148}(109)] -[visit_exp i#65148] -[visit_id i#65148] +[visit_exp `%`_u32(109)] [visit_exp (109)] [visit_exp 109] ps' = [check_dims] -[check_dims] dim#10258 i#65335 i#65342 i#65349 lanetype#10258 shape#1221 -dims \ = dim#10258, i#65335, i#65342, i#65349, lanetype#10258, shape#1221 -[visit_exp `VBINOP`_instr{shape#1221}(`%X%`_shape{lanetype#10258, dim#10258, i#65342}(`I8`_lanetype, `%`_dim{i#65349}(16)), `ADD`_vbinop_)] -[visit_exp shape#1221] -[visit_id shape#1221] -[visit_exp (`%X%`_shape{lanetype#10258, dim#10258, i#65342}(`I8`_lanetype, `%`_dim{i#65349}(16)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#10258, dim#10258, i#65342}(`I8`_lanetype, `%`_dim{i#65349}(16))] -[visit_exp lanetype#10258] -[visit_id lanetype#10258] -[visit_exp dim#10258] -[visit_id dim#10258] -[visit_exp i#65342] -[visit_id i#65342] -[visit_exp (`I8`_lanetype, `%`_dim{i#65349}(16))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD`_vbinop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#65349}(16)] -[visit_exp i#65349] -[visit_id i#65349] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `ADD`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#65335}(110)] -[visit_exp i#65335] -[visit_id i#65335] +[visit_exp `%`_u32(110)] [visit_exp (110)] [visit_exp 110] -[check_dims] dim#10285 i#65417 i#65424 i#65431 lanetype#10285 shape#1223 sx#10022 -dims \ = dim#10285, i#65417, i#65424, i#65431, lanetype#10285, shape#1223, sx#10022 -[visit_exp `VBINOP`_instr{shape#1223}(`%X%`_shape{lanetype#10285, dim#10285, i#65424}(`I8`_lanetype, `%`_dim{i#65431}(16)), `ADD_SAT`_vbinop_{sx#10022}(`S`_sx))] -[visit_exp shape#1223] -[visit_id shape#1223] -[visit_exp (`%X%`_shape{lanetype#10285, dim#10285, i#65424}(`I8`_lanetype, `%`_dim{i#65431}(16)), `ADD_SAT`_vbinop_{sx#10022}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#10285, dim#10285, i#65424}(`I8`_lanetype, `%`_dim{i#65431}(16))] -[visit_exp lanetype#10285] -[visit_id lanetype#10285] -[visit_exp dim#10285] -[visit_id dim#10285] -[visit_exp i#65424] -[visit_id i#65424] -[visit_exp (`I8`_lanetype, `%`_dim{i#65431}(16))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#65431}(16)] -[visit_exp i#65431] -[visit_id i#65431] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `ADD_SAT`_vbinop_{sx#10022}(`S`_sx)] -[visit_exp sx#10022] -[visit_id sx#10022] +[visit_exp `ADD_SAT`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#65417}(111)] -[visit_exp i#65417] -[visit_id i#65417] +[visit_exp `%`_u32(111)] [visit_exp (111)] [visit_exp 111] -[check_dims] dim#10327 i#65544 i#65551 i#65558 lanetype#10327 shape#1225 sx#10146 -dims \ = dim#10327, i#65544, i#65551, i#65558, lanetype#10327, shape#1225, sx#10146 -[visit_exp `VBINOP`_instr{shape#1225}(`%X%`_shape{lanetype#10327, dim#10327, i#65551}(`I8`_lanetype, `%`_dim{i#65558}(16)), `ADD_SAT`_vbinop_{sx#10146}(`U`_sx))] -[visit_exp shape#1225] -[visit_id shape#1225] -[visit_exp (`%X%`_shape{lanetype#10327, dim#10327, i#65551}(`I8`_lanetype, `%`_dim{i#65558}(16)), `ADD_SAT`_vbinop_{sx#10146}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#10327, dim#10327, i#65551}(`I8`_lanetype, `%`_dim{i#65558}(16))] -[visit_exp lanetype#10327] -[visit_id lanetype#10327] -[visit_exp dim#10327] -[visit_id dim#10327] -[visit_exp i#65551] -[visit_id i#65551] -[visit_exp (`I8`_lanetype, `%`_dim{i#65558}(16))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#65558}(16)] -[visit_exp i#65558] -[visit_id i#65558] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `ADD_SAT`_vbinop_{sx#10146}(`U`_sx)] -[visit_exp sx#10146] -[visit_id sx#10146] +[visit_exp `ADD_SAT`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#65544}(112)] -[visit_exp i#65544] -[visit_id i#65544] +[visit_exp `%`_u32(112)] [visit_exp (112)] [visit_exp 112] -[check_dims] dim#10369 i#65671 i#65678 i#65685 lanetype#10369 shape#1227 -dims \ = dim#10369, i#65671, i#65678, i#65685, lanetype#10369, shape#1227 -[visit_exp `VBINOP`_instr{shape#1227}(`%X%`_shape{lanetype#10369, dim#10369, i#65678}(`I8`_lanetype, `%`_dim{i#65685}(16)), `SUB`_vbinop_)] -[visit_exp shape#1227] -[visit_id shape#1227] -[visit_exp (`%X%`_shape{lanetype#10369, dim#10369, i#65678}(`I8`_lanetype, `%`_dim{i#65685}(16)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#10369, dim#10369, i#65678}(`I8`_lanetype, `%`_dim{i#65685}(16))] -[visit_exp lanetype#10369] -[visit_id lanetype#10369] -[visit_exp dim#10369] -[visit_id dim#10369] -[visit_exp i#65678] -[visit_id i#65678] -[visit_exp (`I8`_lanetype, `%`_dim{i#65685}(16))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB`_vbinop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#65685}(16)] -[visit_exp i#65685] -[visit_id i#65685] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `SUB`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#65671}(113)] -[visit_exp i#65671] -[visit_id i#65671] +[visit_exp `%`_u32(113)] [visit_exp (113)] [visit_exp 113] -[check_dims] dim#10396 i#65753 i#65760 i#65767 lanetype#10396 shape#1229 sx#10330 -dims \ = dim#10396, i#65753, i#65760, i#65767, lanetype#10396, shape#1229, sx#10330 -[visit_exp `VBINOP`_instr{shape#1229}(`%X%`_shape{lanetype#10396, dim#10396, i#65760}(`I8`_lanetype, `%`_dim{i#65767}(16)), `SUB_SAT`_vbinop_{sx#10330}(`S`_sx))] -[visit_exp shape#1229] -[visit_id shape#1229] -[visit_exp (`%X%`_shape{lanetype#10396, dim#10396, i#65760}(`I8`_lanetype, `%`_dim{i#65767}(16)), `SUB_SAT`_vbinop_{sx#10330}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#10396, dim#10396, i#65760}(`I8`_lanetype, `%`_dim{i#65767}(16))] -[visit_exp lanetype#10396] -[visit_id lanetype#10396] -[visit_exp dim#10396] -[visit_id dim#10396] -[visit_exp i#65760] -[visit_id i#65760] -[visit_exp (`I8`_lanetype, `%`_dim{i#65767}(16))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#65767}(16)] -[visit_exp i#65767] -[visit_id i#65767] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `SUB_SAT`_vbinop_{sx#10330}(`S`_sx)] -[visit_exp sx#10330] -[visit_id sx#10330] +[visit_exp `SUB_SAT`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#65753}(114)] -[visit_exp i#65753] -[visit_id i#65753] +[visit_exp `%`_u32(114)] [visit_exp (114)] [visit_exp 114] -[check_dims] dim#10438 i#65880 i#65887 i#65894 lanetype#10438 shape#1231 sx#10454 -dims \ = dim#10438, i#65880, i#65887, i#65894, lanetype#10438, shape#1231, sx#10454 -[visit_exp `VBINOP`_instr{shape#1231}(`%X%`_shape{lanetype#10438, dim#10438, i#65887}(`I8`_lanetype, `%`_dim{i#65894}(16)), `SUB_SAT`_vbinop_{sx#10454}(`U`_sx))] -[visit_exp shape#1231] -[visit_id shape#1231] -[visit_exp (`%X%`_shape{lanetype#10438, dim#10438, i#65887}(`I8`_lanetype, `%`_dim{i#65894}(16)), `SUB_SAT`_vbinop_{sx#10454}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#10438, dim#10438, i#65887}(`I8`_lanetype, `%`_dim{i#65894}(16))] -[visit_exp lanetype#10438] -[visit_id lanetype#10438] -[visit_exp dim#10438] -[visit_id dim#10438] -[visit_exp i#65887] -[visit_id i#65887] -[visit_exp (`I8`_lanetype, `%`_dim{i#65894}(16))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#65894}(16)] -[visit_exp i#65894] -[visit_id i#65894] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `SUB_SAT`_vbinop_{sx#10454}(`U`_sx)] -[visit_exp sx#10454] -[visit_id sx#10454] +[visit_exp `SUB_SAT`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#65880}(115)] -[visit_exp i#65880] -[visit_id i#65880] +[visit_exp `%`_u32(115)] [visit_exp (115)] [visit_exp 115] -[check_dims] dim#10480 i#66007 i#66014 i#66021 lanetype#10480 shape#1233 sx#10578 -dims \ = dim#10480, i#66007, i#66014, i#66021, lanetype#10480, shape#1233, sx#10578 -[visit_exp `VBINOP`_instr{shape#1233}(`%X%`_shape{lanetype#10480, dim#10480, i#66014}(`I8`_lanetype, `%`_dim{i#66021}(16)), `MIN`_vbinop_{sx#10578}(`S`_sx))] -[visit_exp shape#1233] -[visit_id shape#1233] -[visit_exp (`%X%`_shape{lanetype#10480, dim#10480, i#66014}(`I8`_lanetype, `%`_dim{i#66021}(16)), `MIN`_vbinop_{sx#10578}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#10480, dim#10480, i#66014}(`I8`_lanetype, `%`_dim{i#66021}(16))] -[visit_exp lanetype#10480] -[visit_id lanetype#10480] -[visit_exp dim#10480] -[visit_id dim#10480] -[visit_exp i#66014] -[visit_id i#66014] -[visit_exp (`I8`_lanetype, `%`_dim{i#66021}(16))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#66021}(16)] -[visit_exp i#66021] -[visit_id i#66021] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `MIN`_vbinop_{sx#10578}(`S`_sx)] -[visit_exp sx#10578] -[visit_id sx#10578] +[visit_exp `MIN`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#66007}(118)] -[visit_exp i#66007] -[visit_id i#66007] +[visit_exp `%`_u32(118)] [visit_exp (118)] [visit_exp 118] -[check_dims] dim#10522 i#66134 i#66141 i#66148 lanetype#10522 shape#1235 sx#10702 -dims \ = dim#10522, i#66134, i#66141, i#66148, lanetype#10522, shape#1235, sx#10702 -[visit_exp `VBINOP`_instr{shape#1235}(`%X%`_shape{lanetype#10522, dim#10522, i#66141}(`I8`_lanetype, `%`_dim{i#66148}(16)), `MIN`_vbinop_{sx#10702}(`U`_sx))] -[visit_exp shape#1235] -[visit_id shape#1235] -[visit_exp (`%X%`_shape{lanetype#10522, dim#10522, i#66141}(`I8`_lanetype, `%`_dim{i#66148}(16)), `MIN`_vbinop_{sx#10702}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#10522, dim#10522, i#66141}(`I8`_lanetype, `%`_dim{i#66148}(16))] -[visit_exp lanetype#10522] -[visit_id lanetype#10522] -[visit_exp dim#10522] -[visit_id dim#10522] -[visit_exp i#66141] -[visit_id i#66141] -[visit_exp (`I8`_lanetype, `%`_dim{i#66148}(16))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#66148}(16)] -[visit_exp i#66148] -[visit_id i#66148] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `MIN`_vbinop_{sx#10702}(`U`_sx)] -[visit_exp sx#10702] -[visit_id sx#10702] +[visit_exp `MIN`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#66134}(119)] -[visit_exp i#66134] -[visit_id i#66134] +[visit_exp `%`_u32(119)] [visit_exp (119)] [visit_exp 119] -[check_dims] dim#10564 i#66261 i#66268 i#66275 lanetype#10564 shape#1237 sx#10826 -dims \ = dim#10564, i#66261, i#66268, i#66275, lanetype#10564, shape#1237, sx#10826 -[visit_exp `VBINOP`_instr{shape#1237}(`%X%`_shape{lanetype#10564, dim#10564, i#66268}(`I8`_lanetype, `%`_dim{i#66275}(16)), `MAX`_vbinop_{sx#10826}(`S`_sx))] -[visit_exp shape#1237] -[visit_id shape#1237] -[visit_exp (`%X%`_shape{lanetype#10564, dim#10564, i#66268}(`I8`_lanetype, `%`_dim{i#66275}(16)), `MAX`_vbinop_{sx#10826}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#10564, dim#10564, i#66268}(`I8`_lanetype, `%`_dim{i#66275}(16))] -[visit_exp lanetype#10564] -[visit_id lanetype#10564] -[visit_exp dim#10564] -[visit_id dim#10564] -[visit_exp i#66268] -[visit_id i#66268] -[visit_exp (`I8`_lanetype, `%`_dim{i#66275}(16))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#66275}(16)] -[visit_exp i#66275] -[visit_id i#66275] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `MAX`_vbinop_{sx#10826}(`S`_sx)] -[visit_exp sx#10826] -[visit_id sx#10826] +[visit_exp `MAX`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#66261}(120)] -[visit_exp i#66261] -[visit_id i#66261] +[visit_exp `%`_u32(120)] [visit_exp (120)] [visit_exp 120] -[check_dims] dim#10606 i#66388 i#66395 i#66402 lanetype#10606 shape#1239 sx#10950 -dims \ = dim#10606, i#66388, i#66395, i#66402, lanetype#10606, shape#1239, sx#10950 -[visit_exp `VBINOP`_instr{shape#1239}(`%X%`_shape{lanetype#10606, dim#10606, i#66395}(`I8`_lanetype, `%`_dim{i#66402}(16)), `MAX`_vbinop_{sx#10950}(`U`_sx))] -[visit_exp shape#1239] -[visit_id shape#1239] -[visit_exp (`%X%`_shape{lanetype#10606, dim#10606, i#66395}(`I8`_lanetype, `%`_dim{i#66402}(16)), `MAX`_vbinop_{sx#10950}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#10606, dim#10606, i#66395}(`I8`_lanetype, `%`_dim{i#66402}(16))] -[visit_exp lanetype#10606] -[visit_id lanetype#10606] -[visit_exp dim#10606] -[visit_id dim#10606] -[visit_exp i#66395] -[visit_id i#66395] -[visit_exp (`I8`_lanetype, `%`_dim{i#66402}(16))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#66402}(16)] -[visit_exp i#66402] -[visit_id i#66402] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `MAX`_vbinop_{sx#10950}(`U`_sx)] -[visit_exp sx#10950] -[visit_id sx#10950] +[visit_exp `MAX`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#66388}(121)] -[visit_exp i#66388] -[visit_id i#66388] +[visit_exp `%`_u32(121)] [visit_exp (121)] [visit_exp 121] -[check_dims] dim#10648 i#66515 i#66522 i#66529 lanetype#10648 shape#1241 -dims \ = dim#10648, i#66515, i#66522, i#66529, lanetype#10648, shape#1241 -[visit_exp `VBINOP`_instr{shape#1241}(`%X%`_shape{lanetype#10648, dim#10648, i#66522}(`I8`_lanetype, `%`_dim{i#66529}(16)), `AVGRU`_vbinop_)] -[visit_exp shape#1241] -[visit_id shape#1241] -[visit_exp (`%X%`_shape{lanetype#10648, dim#10648, i#66522}(`I8`_lanetype, `%`_dim{i#66529}(16)), `AVGRU`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#10648, dim#10648, i#66522}(`I8`_lanetype, `%`_dim{i#66529}(16))] -[visit_exp lanetype#10648] -[visit_id lanetype#10648] -[visit_exp dim#10648] -[visit_id dim#10648] -[visit_exp i#66522] -[visit_id i#66522] -[visit_exp (`I8`_lanetype, `%`_dim{i#66529}(16))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `AVGRU`_vbinop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `AVGRU`_vbinop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#66529}(16)] -[visit_exp i#66529] -[visit_id i#66529] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `AVGRU`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#66515}(123)] -[visit_exp i#66515] -[visit_id i#66515] +[visit_exp `%`_u32(123)] [visit_exp (123)] [visit_exp 123] ps' = [check_dims] -[check_dims] Jnn#266 Jnn#270 dim#10690 dim#10702 i#66642 i#66649 i#66656 i#66661 i#66668 ishape_1#29 ishape_2#29 lanetype#10690 lanetype#10702 shape#1253 shape#1265 sx#11104 -dims \ = Jnn#266, Jnn#270, dim#10690, dim#10702, i#66642, i#66649, i#66656, i#66661, i#66668, ishape_1#29, ishape_2#29, lanetype#10690, lanetype#10702, shape#1253, shape#1265, sx#11104 -[visit_exp `VEXTUNOP`_instr{ishape_1#29, ishape_2#29}(`%`_ishape{shape#1253, Jnn#266}(`%X%`_shape{lanetype#10690, dim#10690, i#66649}(`I16`_lanetype, `%`_dim{i#66656}(8))), `%`_ishape{shape#1265, Jnn#270}(`%X%`_shape{lanetype#10702, dim#10702, i#66661}(`I8`_lanetype, `%`_dim{i#66668}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#11104}(`S`_sx))] -[visit_exp ishape_1#29] -[visit_id ishape_1#29] -[visit_exp ishape_2#29] -[visit_id ishape_2#29] -[visit_exp (`%`_ishape{shape#1253, Jnn#266}(`%X%`_shape{lanetype#10690, dim#10690, i#66649}(`I16`_lanetype, `%`_dim{i#66656}(8))), `%`_ishape{shape#1265, Jnn#270}(`%X%`_shape{lanetype#10702, dim#10702, i#66661}(`I8`_lanetype, `%`_dim{i#66668}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#11104}(`S`_sx))] -[visit_exp `%`_ishape{shape#1253, Jnn#266}(`%X%`_shape{lanetype#10690, dim#10690, i#66649}(`I16`_lanetype, `%`_dim{i#66656}(8)))] -[visit_exp shape#1253] -[visit_id shape#1253] -[visit_exp Jnn#266] -[visit_id Jnn#266] -[visit_exp (`%X%`_shape{lanetype#10690, dim#10690, i#66649}(`I16`_lanetype, `%`_dim{i#66656}(8)))] -[visit_exp `%X%`_shape{lanetype#10690, dim#10690, i#66649}(`I16`_lanetype, `%`_dim{i#66656}(8))] -[visit_exp lanetype#10690] -[visit_id lanetype#10690] -[visit_exp dim#10690] -[visit_id dim#10690] -[visit_exp i#66649] -[visit_id i#66649] -[visit_exp (`I16`_lanetype, `%`_dim{i#66656}(8))] +[check_dims] +dims \ = +[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#66656}(8)] -[visit_exp i#66656] -[visit_id i#66656] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#1265, Jnn#270}(`%X%`_shape{lanetype#10702, dim#10702, i#66661}(`I8`_lanetype, `%`_dim{i#66668}(16)))] -[visit_exp shape#1265] -[visit_id shape#1265] -[visit_exp Jnn#270] -[visit_id Jnn#270] -[visit_exp (`%X%`_shape{lanetype#10702, dim#10702, i#66661}(`I8`_lanetype, `%`_dim{i#66668}(16)))] -[visit_exp `%X%`_shape{lanetype#10702, dim#10702, i#66661}(`I8`_lanetype, `%`_dim{i#66668}(16))] -[visit_exp lanetype#10702] -[visit_id lanetype#10702] -[visit_exp dim#10702] -[visit_id dim#10702] -[visit_exp i#66661] -[visit_id i#66661] -[visit_exp (`I8`_lanetype, `%`_dim{i#66668}(16))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#66668}(16)] -[visit_exp i#66668] -[visit_id i#66668] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#11104}(`S`_sx)] -[visit_exp sx#11104] -[visit_id sx#11104] +[visit_exp `EXTADD_PAIRWISE`_vextunop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#66642}(124)] -[visit_exp i#66642] -[visit_id i#66642] +[visit_exp `%`_u32(124)] [visit_exp (124)] [visit_exp 124] -[check_dims] Jnn#274 Jnn#278 dim#10925 dim#10937 i#67022 i#67029 i#67036 i#67041 i#67048 ishape_1#31 ishape_2#31 lanetype#10925 lanetype#10937 shape#1368 shape#1380 sx#11138 -dims \ = Jnn#274, Jnn#278, dim#10925, dim#10937, i#67022, i#67029, i#67036, i#67041, i#67048, ishape_1#31, ishape_2#31, lanetype#10925, lanetype#10937, shape#1368, shape#1380, sx#11138 -[visit_exp `VEXTUNOP`_instr{ishape_1#31, ishape_2#31}(`%`_ishape{shape#1368, Jnn#274}(`%X%`_shape{lanetype#10925, dim#10925, i#67029}(`I16`_lanetype, `%`_dim{i#67036}(8))), `%`_ishape{shape#1380, Jnn#278}(`%X%`_shape{lanetype#10937, dim#10937, i#67041}(`I8`_lanetype, `%`_dim{i#67048}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#11138}(`U`_sx))] -[visit_exp ishape_1#31] -[visit_id ishape_1#31] -[visit_exp ishape_2#31] -[visit_id ishape_2#31] -[visit_exp (`%`_ishape{shape#1368, Jnn#274}(`%X%`_shape{lanetype#10925, dim#10925, i#67029}(`I16`_lanetype, `%`_dim{i#67036}(8))), `%`_ishape{shape#1380, Jnn#278}(`%X%`_shape{lanetype#10937, dim#10937, i#67041}(`I8`_lanetype, `%`_dim{i#67048}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#11138}(`U`_sx))] -[visit_exp `%`_ishape{shape#1368, Jnn#274}(`%X%`_shape{lanetype#10925, dim#10925, i#67029}(`I16`_lanetype, `%`_dim{i#67036}(8)))] -[visit_exp shape#1368] -[visit_id shape#1368] -[visit_exp Jnn#274] -[visit_id Jnn#274] -[visit_exp (`%X%`_shape{lanetype#10925, dim#10925, i#67029}(`I16`_lanetype, `%`_dim{i#67036}(8)))] -[visit_exp `%X%`_shape{lanetype#10925, dim#10925, i#67029}(`I16`_lanetype, `%`_dim{i#67036}(8))] -[visit_exp lanetype#10925] -[visit_id lanetype#10925] -[visit_exp dim#10925] -[visit_id dim#10925] -[visit_exp i#67029] -[visit_id i#67029] -[visit_exp (`I16`_lanetype, `%`_dim{i#67036}(8))] +[check_dims] +dims \ = +[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#67036}(8)] -[visit_exp i#67036] -[visit_id i#67036] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#1380, Jnn#278}(`%X%`_shape{lanetype#10937, dim#10937, i#67041}(`I8`_lanetype, `%`_dim{i#67048}(16)))] -[visit_exp shape#1380] -[visit_id shape#1380] -[visit_exp Jnn#278] -[visit_id Jnn#278] -[visit_exp (`%X%`_shape{lanetype#10937, dim#10937, i#67041}(`I8`_lanetype, `%`_dim{i#67048}(16)))] -[visit_exp `%X%`_shape{lanetype#10937, dim#10937, i#67041}(`I8`_lanetype, `%`_dim{i#67048}(16))] -[visit_exp lanetype#10937] -[visit_id lanetype#10937] -[visit_exp dim#10937] -[visit_id dim#10937] -[visit_exp i#67041] -[visit_id i#67041] -[visit_exp (`I8`_lanetype, `%`_dim{i#67048}(16))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#67048}(16)] -[visit_exp i#67048] -[visit_id i#67048] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#11138}(`U`_sx)] -[visit_exp sx#11138] -[visit_id sx#11138] +[visit_exp `EXTADD_PAIRWISE`_vextunop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#67022}(125)] -[visit_exp i#67022] -[visit_id i#67022] +[visit_exp `%`_u32(125)] [visit_exp (125)] [visit_exp 125] ps' = [check_dims] -[check_dims] dim#11160 i#67402 i#67409 i#67416 lanetype#11160 shape#1473 -dims \ = dim#11160, i#67402, i#67409, i#67416, lanetype#11160, shape#1473 -[visit_exp `VUNOP`_instr{shape#1473}(`%X%`_shape{lanetype#11160, dim#11160, i#67409}(`I16`_lanetype, `%`_dim{i#67416}(8)), `ABS`_vunop_)] -[visit_exp shape#1473] -[visit_id shape#1473] -[visit_exp (`%X%`_shape{lanetype#11160, dim#11160, i#67409}(`I16`_lanetype, `%`_dim{i#67416}(8)), `ABS`_vunop_)] -[visit_exp `%X%`_shape{lanetype#11160, dim#11160, i#67409}(`I16`_lanetype, `%`_dim{i#67416}(8))] -[visit_exp lanetype#11160] -[visit_id lanetype#11160] -[visit_exp dim#11160] -[visit_id dim#11160] -[visit_exp i#67409] -[visit_id i#67409] -[visit_exp (`I16`_lanetype, `%`_dim{i#67416}(8))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ABS`_vunop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ABS`_vunop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#67416}(8)] -[visit_exp i#67416] -[visit_id i#67416] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `ABS`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#67402}(128)] -[visit_exp i#67402] -[visit_id i#67402] +[visit_exp `%`_u32(128)] [visit_exp (128)] [visit_exp 128] -[check_dims] dim#11187 i#67484 i#67491 i#67498 lanetype#11187 shape#1475 -dims \ = dim#11187, i#67484, i#67491, i#67498, lanetype#11187, shape#1475 -[visit_exp `VUNOP`_instr{shape#1475}(`%X%`_shape{lanetype#11187, dim#11187, i#67491}(`I16`_lanetype, `%`_dim{i#67498}(8)), `NEG`_vunop_)] -[visit_exp shape#1475] -[visit_id shape#1475] -[visit_exp (`%X%`_shape{lanetype#11187, dim#11187, i#67491}(`I16`_lanetype, `%`_dim{i#67498}(8)), `NEG`_vunop_)] -[visit_exp `%X%`_shape{lanetype#11187, dim#11187, i#67491}(`I16`_lanetype, `%`_dim{i#67498}(8))] -[visit_exp lanetype#11187] -[visit_id lanetype#11187] -[visit_exp dim#11187] -[visit_id dim#11187] -[visit_exp i#67491] -[visit_id i#67491] -[visit_exp (`I16`_lanetype, `%`_dim{i#67498}(8))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NEG`_vunop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NEG`_vunop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#67498}(8)] -[visit_exp i#67498] -[visit_id i#67498] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `NEG`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#67484}(129)] -[visit_exp i#67484] -[visit_id i#67484] +[visit_exp `%`_u32(129)] [visit_exp (129)] [visit_exp 129] ps' = [check_dims] -[check_dims] dim#11214 i#67566 i#67573 i#67580 lanetype#11214 shape#1477 -dims \ = dim#11214, i#67566, i#67573, i#67580, lanetype#11214, shape#1477 -[visit_exp `VBINOP`_instr{shape#1477}(`%X%`_shape{lanetype#11214, dim#11214, i#67573}(`I16`_lanetype, `%`_dim{i#67580}(8)), `Q15MULR_SATS`_vbinop_)] -[visit_exp shape#1477] -[visit_id shape#1477] -[visit_exp (`%X%`_shape{lanetype#11214, dim#11214, i#67573}(`I16`_lanetype, `%`_dim{i#67580}(8)), `Q15MULR_SATS`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#11214, dim#11214, i#67573}(`I16`_lanetype, `%`_dim{i#67580}(8))] -[visit_exp lanetype#11214] -[visit_id lanetype#11214] -[visit_exp dim#11214] -[visit_id dim#11214] -[visit_exp i#67573] -[visit_id i#67573] -[visit_exp (`I16`_lanetype, `%`_dim{i#67580}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#67580}(8)] -[visit_exp i#67580] -[visit_id i#67580] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `Q15MULR_SATS`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#67566}(130)] -[visit_exp i#67566] -[visit_id i#67566] +[visit_exp `%`_u32(130)] [visit_exp (130)] [visit_exp 130] -[check_dims] dim#11256 i#67693 i#67700 i#67707 lanetype#11256 shape#1479 -dims \ = dim#11256, i#67693, i#67700, i#67707, lanetype#11256, shape#1479 -[visit_exp `VBINOP`_instr{shape#1479}(`%X%`_shape{lanetype#11256, dim#11256, i#67700}(`I16`_lanetype, `%`_dim{i#67707}(8)), `ADD`_vbinop_)] -[visit_exp shape#1479] -[visit_id shape#1479] -[visit_exp (`%X%`_shape{lanetype#11256, dim#11256, i#67700}(`I16`_lanetype, `%`_dim{i#67707}(8)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#11256, dim#11256, i#67700}(`I16`_lanetype, `%`_dim{i#67707}(8))] -[visit_exp lanetype#11256] -[visit_id lanetype#11256] -[visit_exp dim#11256] -[visit_id dim#11256] -[visit_exp i#67700] -[visit_id i#67700] -[visit_exp (`I16`_lanetype, `%`_dim{i#67707}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD`_vbinop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#67707}(8)] -[visit_exp i#67707] -[visit_id i#67707] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `ADD`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#67693}(142)] -[visit_exp i#67693] -[visit_id i#67693] +[visit_exp `%`_u32(142)] [visit_exp (142)] [visit_exp 142] -[check_dims] dim#11283 i#67775 i#67782 i#67789 lanetype#11283 shape#1481 sx#11442 -dims \ = dim#11283, i#67775, i#67782, i#67789, lanetype#11283, shape#1481, sx#11442 -[visit_exp `VBINOP`_instr{shape#1481}(`%X%`_shape{lanetype#11283, dim#11283, i#67782}(`I16`_lanetype, `%`_dim{i#67789}(8)), `ADD_SAT`_vbinop_{sx#11442}(`S`_sx))] -[visit_exp shape#1481] -[visit_id shape#1481] -[visit_exp (`%X%`_shape{lanetype#11283, dim#11283, i#67782}(`I16`_lanetype, `%`_dim{i#67789}(8)), `ADD_SAT`_vbinop_{sx#11442}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#11283, dim#11283, i#67782}(`I16`_lanetype, `%`_dim{i#67789}(8))] -[visit_exp lanetype#11283] -[visit_id lanetype#11283] -[visit_exp dim#11283] -[visit_id dim#11283] -[visit_exp i#67782] -[visit_id i#67782] -[visit_exp (`I16`_lanetype, `%`_dim{i#67789}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#67789}(8)] -[visit_exp i#67789] -[visit_id i#67789] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `ADD_SAT`_vbinop_{sx#11442}(`S`_sx)] -[visit_exp sx#11442] -[visit_id sx#11442] +[visit_exp `ADD_SAT`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#67775}(143)] -[visit_exp i#67775] -[visit_id i#67775] +[visit_exp `%`_u32(143)] [visit_exp (143)] [visit_exp 143] -[check_dims] dim#11325 i#67902 i#67909 i#67916 lanetype#11325 shape#1483 sx#11566 -dims \ = dim#11325, i#67902, i#67909, i#67916, lanetype#11325, shape#1483, sx#11566 -[visit_exp `VBINOP`_instr{shape#1483}(`%X%`_shape{lanetype#11325, dim#11325, i#67909}(`I16`_lanetype, `%`_dim{i#67916}(8)), `ADD_SAT`_vbinop_{sx#11566}(`U`_sx))] -[visit_exp shape#1483] -[visit_id shape#1483] -[visit_exp (`%X%`_shape{lanetype#11325, dim#11325, i#67909}(`I16`_lanetype, `%`_dim{i#67916}(8)), `ADD_SAT`_vbinop_{sx#11566}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#11325, dim#11325, i#67909}(`I16`_lanetype, `%`_dim{i#67916}(8))] -[visit_exp lanetype#11325] -[visit_id lanetype#11325] -[visit_exp dim#11325] -[visit_id dim#11325] -[visit_exp i#67909] -[visit_id i#67909] -[visit_exp (`I16`_lanetype, `%`_dim{i#67916}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#67916}(8)] -[visit_exp i#67916] -[visit_id i#67916] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `ADD_SAT`_vbinop_{sx#11566}(`U`_sx)] -[visit_exp sx#11566] -[visit_id sx#11566] +[visit_exp `ADD_SAT`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#67902}(144)] -[visit_exp i#67902] -[visit_id i#67902] +[visit_exp `%`_u32(144)] [visit_exp (144)] [visit_exp 144] -[check_dims] dim#11367 i#68029 i#68036 i#68043 lanetype#11367 shape#1485 -dims \ = dim#11367, i#68029, i#68036, i#68043, lanetype#11367, shape#1485 -[visit_exp `VBINOP`_instr{shape#1485}(`%X%`_shape{lanetype#11367, dim#11367, i#68036}(`I16`_lanetype, `%`_dim{i#68043}(8)), `SUB`_vbinop_)] -[visit_exp shape#1485] -[visit_id shape#1485] -[visit_exp (`%X%`_shape{lanetype#11367, dim#11367, i#68036}(`I16`_lanetype, `%`_dim{i#68043}(8)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#11367, dim#11367, i#68036}(`I16`_lanetype, `%`_dim{i#68043}(8))] -[visit_exp lanetype#11367] -[visit_id lanetype#11367] -[visit_exp dim#11367] -[visit_id dim#11367] -[visit_exp i#68036] -[visit_id i#68036] -[visit_exp (`I16`_lanetype, `%`_dim{i#68043}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB`_vbinop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#68043}(8)] -[visit_exp i#68043] -[visit_id i#68043] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `SUB`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#68029}(145)] -[visit_exp i#68029] -[visit_id i#68029] +[visit_exp `%`_u32(145)] [visit_exp (145)] [visit_exp 145] -[check_dims] dim#11394 i#68111 i#68118 i#68125 lanetype#11394 shape#1487 sx#11750 -dims \ = dim#11394, i#68111, i#68118, i#68125, lanetype#11394, shape#1487, sx#11750 -[visit_exp `VBINOP`_instr{shape#1487}(`%X%`_shape{lanetype#11394, dim#11394, i#68118}(`I16`_lanetype, `%`_dim{i#68125}(8)), `SUB_SAT`_vbinop_{sx#11750}(`S`_sx))] -[visit_exp shape#1487] -[visit_id shape#1487] -[visit_exp (`%X%`_shape{lanetype#11394, dim#11394, i#68118}(`I16`_lanetype, `%`_dim{i#68125}(8)), `SUB_SAT`_vbinop_{sx#11750}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#11394, dim#11394, i#68118}(`I16`_lanetype, `%`_dim{i#68125}(8))] -[visit_exp lanetype#11394] -[visit_id lanetype#11394] -[visit_exp dim#11394] -[visit_id dim#11394] -[visit_exp i#68118] -[visit_id i#68118] -[visit_exp (`I16`_lanetype, `%`_dim{i#68125}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#68125}(8)] -[visit_exp i#68125] -[visit_id i#68125] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `SUB_SAT`_vbinop_{sx#11750}(`S`_sx)] -[visit_exp sx#11750] -[visit_id sx#11750] +[visit_exp `SUB_SAT`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#68111}(146)] -[visit_exp i#68111] -[visit_id i#68111] +[visit_exp `%`_u32(146)] [visit_exp (146)] [visit_exp 146] -[check_dims] dim#11436 i#68238 i#68245 i#68252 lanetype#11436 shape#1489 sx#11874 -dims \ = dim#11436, i#68238, i#68245, i#68252, lanetype#11436, shape#1489, sx#11874 -[visit_exp `VBINOP`_instr{shape#1489}(`%X%`_shape{lanetype#11436, dim#11436, i#68245}(`I16`_lanetype, `%`_dim{i#68252}(8)), `SUB_SAT`_vbinop_{sx#11874}(`U`_sx))] -[visit_exp shape#1489] -[visit_id shape#1489] -[visit_exp (`%X%`_shape{lanetype#11436, dim#11436, i#68245}(`I16`_lanetype, `%`_dim{i#68252}(8)), `SUB_SAT`_vbinop_{sx#11874}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#11436, dim#11436, i#68245}(`I16`_lanetype, `%`_dim{i#68252}(8))] -[visit_exp lanetype#11436] -[visit_id lanetype#11436] -[visit_exp dim#11436] -[visit_id dim#11436] -[visit_exp i#68245] -[visit_id i#68245] -[visit_exp (`I16`_lanetype, `%`_dim{i#68252}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#68252}(8)] -[visit_exp i#68252] -[visit_id i#68252] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `SUB_SAT`_vbinop_{sx#11874}(`U`_sx)] -[visit_exp sx#11874] -[visit_id sx#11874] +[visit_exp `SUB_SAT`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#68238}(147)] -[visit_exp i#68238] -[visit_id i#68238] +[visit_exp `%`_u32(147)] [visit_exp (147)] [visit_exp 147] -[check_dims] dim#11478 i#68365 i#68372 i#68379 lanetype#11478 shape#1491 -dims \ = dim#11478, i#68365, i#68372, i#68379, lanetype#11478, shape#1491 -[visit_exp `VBINOP`_instr{shape#1491}(`%X%`_shape{lanetype#11478, dim#11478, i#68372}(`I16`_lanetype, `%`_dim{i#68379}(8)), `MUL`_vbinop_)] -[visit_exp shape#1491] -[visit_id shape#1491] -[visit_exp (`%X%`_shape{lanetype#11478, dim#11478, i#68372}(`I16`_lanetype, `%`_dim{i#68379}(8)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#11478, dim#11478, i#68372}(`I16`_lanetype, `%`_dim{i#68379}(8))] -[visit_exp lanetype#11478] -[visit_id lanetype#11478] -[visit_exp dim#11478] -[visit_id dim#11478] -[visit_exp i#68372] -[visit_id i#68372] -[visit_exp (`I16`_lanetype, `%`_dim{i#68379}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MUL`_vbinop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#68379}(8)] -[visit_exp i#68379] -[visit_id i#68379] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `MUL`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#68365}(149)] -[visit_exp i#68365] -[visit_id i#68365] +[visit_exp `%`_u32(149)] [visit_exp (149)] [visit_exp 149] -[check_dims] dim#11505 i#68447 i#68454 i#68461 lanetype#11505 shape#1493 sx#12058 -dims \ = dim#11505, i#68447, i#68454, i#68461, lanetype#11505, shape#1493, sx#12058 -[visit_exp `VBINOP`_instr{shape#1493}(`%X%`_shape{lanetype#11505, dim#11505, i#68454}(`I16`_lanetype, `%`_dim{i#68461}(8)), `MIN`_vbinop_{sx#12058}(`S`_sx))] -[visit_exp shape#1493] -[visit_id shape#1493] -[visit_exp (`%X%`_shape{lanetype#11505, dim#11505, i#68454}(`I16`_lanetype, `%`_dim{i#68461}(8)), `MIN`_vbinop_{sx#12058}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#11505, dim#11505, i#68454}(`I16`_lanetype, `%`_dim{i#68461}(8))] -[visit_exp lanetype#11505] -[visit_id lanetype#11505] -[visit_exp dim#11505] -[visit_id dim#11505] -[visit_exp i#68454] -[visit_id i#68454] -[visit_exp (`I16`_lanetype, `%`_dim{i#68461}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#68461}(8)] -[visit_exp i#68461] -[visit_id i#68461] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `MIN`_vbinop_{sx#12058}(`S`_sx)] -[visit_exp sx#12058] -[visit_id sx#12058] +[visit_exp `MIN`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#68447}(150)] -[visit_exp i#68447] -[visit_id i#68447] +[visit_exp `%`_u32(150)] [visit_exp (150)] [visit_exp 150] -[check_dims] dim#11547 i#68574 i#68581 i#68588 lanetype#11547 shape#1495 sx#12182 -dims \ = dim#11547, i#68574, i#68581, i#68588, lanetype#11547, shape#1495, sx#12182 -[visit_exp `VBINOP`_instr{shape#1495}(`%X%`_shape{lanetype#11547, dim#11547, i#68581}(`I16`_lanetype, `%`_dim{i#68588}(8)), `MIN`_vbinop_{sx#12182}(`U`_sx))] -[visit_exp shape#1495] -[visit_id shape#1495] -[visit_exp (`%X%`_shape{lanetype#11547, dim#11547, i#68581}(`I16`_lanetype, `%`_dim{i#68588}(8)), `MIN`_vbinop_{sx#12182}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#11547, dim#11547, i#68581}(`I16`_lanetype, `%`_dim{i#68588}(8))] -[visit_exp lanetype#11547] -[visit_id lanetype#11547] -[visit_exp dim#11547] -[visit_id dim#11547] -[visit_exp i#68581] -[visit_id i#68581] -[visit_exp (`I16`_lanetype, `%`_dim{i#68588}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#68588}(8)] -[visit_exp i#68588] -[visit_id i#68588] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `MIN`_vbinop_{sx#12182}(`U`_sx)] -[visit_exp sx#12182] -[visit_id sx#12182] +[visit_exp `MIN`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#68574}(151)] -[visit_exp i#68574] -[visit_id i#68574] +[visit_exp `%`_u32(151)] [visit_exp (151)] [visit_exp 151] -[check_dims] dim#11589 i#68701 i#68708 i#68715 lanetype#11589 shape#1497 sx#12306 -dims \ = dim#11589, i#68701, i#68708, i#68715, lanetype#11589, shape#1497, sx#12306 -[visit_exp `VBINOP`_instr{shape#1497}(`%X%`_shape{lanetype#11589, dim#11589, i#68708}(`I16`_lanetype, `%`_dim{i#68715}(8)), `MAX`_vbinop_{sx#12306}(`S`_sx))] -[visit_exp shape#1497] -[visit_id shape#1497] -[visit_exp (`%X%`_shape{lanetype#11589, dim#11589, i#68708}(`I16`_lanetype, `%`_dim{i#68715}(8)), `MAX`_vbinop_{sx#12306}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#11589, dim#11589, i#68708}(`I16`_lanetype, `%`_dim{i#68715}(8))] -[visit_exp lanetype#11589] -[visit_id lanetype#11589] -[visit_exp dim#11589] -[visit_id dim#11589] -[visit_exp i#68708] -[visit_id i#68708] -[visit_exp (`I16`_lanetype, `%`_dim{i#68715}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#68715}(8)] -[visit_exp i#68715] -[visit_id i#68715] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `MAX`_vbinop_{sx#12306}(`S`_sx)] -[visit_exp sx#12306] -[visit_id sx#12306] +[visit_exp `MAX`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#68701}(152)] -[visit_exp i#68701] -[visit_id i#68701] +[visit_exp `%`_u32(152)] [visit_exp (152)] [visit_exp 152] -[check_dims] dim#11631 i#68828 i#68835 i#68842 lanetype#11631 shape#1499 sx#12430 -dims \ = dim#11631, i#68828, i#68835, i#68842, lanetype#11631, shape#1499, sx#12430 -[visit_exp `VBINOP`_instr{shape#1499}(`%X%`_shape{lanetype#11631, dim#11631, i#68835}(`I16`_lanetype, `%`_dim{i#68842}(8)), `MAX`_vbinop_{sx#12430}(`U`_sx))] -[visit_exp shape#1499] -[visit_id shape#1499] -[visit_exp (`%X%`_shape{lanetype#11631, dim#11631, i#68835}(`I16`_lanetype, `%`_dim{i#68842}(8)), `MAX`_vbinop_{sx#12430}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#11631, dim#11631, i#68835}(`I16`_lanetype, `%`_dim{i#68842}(8))] -[visit_exp lanetype#11631] -[visit_id lanetype#11631] -[visit_exp dim#11631] -[visit_id dim#11631] -[visit_exp i#68835] -[visit_id i#68835] -[visit_exp (`I16`_lanetype, `%`_dim{i#68842}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#68842}(8)] -[visit_exp i#68842] -[visit_id i#68842] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `MAX`_vbinop_{sx#12430}(`U`_sx)] -[visit_exp sx#12430] -[visit_id sx#12430] +[visit_exp `MAX`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#68828}(153)] -[visit_exp i#68828] -[visit_id i#68828] +[visit_exp `%`_u32(153)] [visit_exp (153)] [visit_exp 153] -[check_dims] dim#11673 i#68955 i#68962 i#68969 lanetype#11673 shape#1501 -dims \ = dim#11673, i#68955, i#68962, i#68969, lanetype#11673, shape#1501 -[visit_exp `VBINOP`_instr{shape#1501}(`%X%`_shape{lanetype#11673, dim#11673, i#68962}(`I16`_lanetype, `%`_dim{i#68969}(8)), `AVGRU`_vbinop_)] -[visit_exp shape#1501] -[visit_id shape#1501] -[visit_exp (`%X%`_shape{lanetype#11673, dim#11673, i#68962}(`I16`_lanetype, `%`_dim{i#68969}(8)), `AVGRU`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#11673, dim#11673, i#68962}(`I16`_lanetype, `%`_dim{i#68969}(8))] -[visit_exp lanetype#11673] -[visit_id lanetype#11673] -[visit_exp dim#11673] -[visit_id dim#11673] -[visit_exp i#68962] -[visit_id i#68962] -[visit_exp (`I16`_lanetype, `%`_dim{i#68969}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `AVGRU`_vbinop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `AVGRU`_vbinop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#68969}(8)] -[visit_exp i#68969] -[visit_id i#68969] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `AVGRU`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#68955}(155)] -[visit_exp i#68955] -[visit_id i#68955] +[visit_exp `%`_u32(155)] [visit_exp (155)] [visit_exp 155] -[check_dims] dim#11715 i#69082 i#69089 i#69096 lanetype#11715 shape#1503 -dims \ = dim#11715, i#69082, i#69089, i#69096, lanetype#11715, shape#1503 -[visit_exp `VBINOP`_instr{shape#1503}(`%X%`_shape{lanetype#11715, dim#11715, i#69089}(`I16`_lanetype, `%`_dim{i#69096}(8)), `RELAXED_Q15MULRS`_vbinop_)] -[visit_exp shape#1503] -[visit_id shape#1503] -[visit_exp (`%X%`_shape{lanetype#11715, dim#11715, i#69089}(`I16`_lanetype, `%`_dim{i#69096}(8)), `RELAXED_Q15MULRS`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#11715, dim#11715, i#69089}(`I16`_lanetype, `%`_dim{i#69096}(8))] -[visit_exp lanetype#11715] -[visit_id lanetype#11715] -[visit_exp dim#11715] -[visit_id dim#11715] -[visit_exp i#69089] -[visit_id i#69089] -[visit_exp (`I16`_lanetype, `%`_dim{i#69096}(8))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#69096}(8)] -[visit_exp i#69096] -[visit_id i#69096] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `RELAXED_Q15MULRS`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#69082}(273)] -[visit_exp i#69082] -[visit_id i#69082] +[visit_exp `%`_u32(273)] [visit_exp (273)] [visit_exp 273] ps' = [check_dims] -[check_dims] dim#11757 i#69209 i#69216 i#69223 lanetype#11757 shape#1505 -dims \ = dim#11757, i#69209, i#69216, i#69223, lanetype#11757, shape#1505 -[visit_exp `VTESTOP`_instr{shape#1505}(`%X%`_shape{lanetype#11757, dim#11757, i#69216}(`I16`_lanetype, `%`_dim{i#69223}(8)), `ALL_TRUE`_vtestop_)] -[visit_exp shape#1505] -[visit_id shape#1505] -[visit_exp (`%X%`_shape{lanetype#11757, dim#11757, i#69216}(`I16`_lanetype, `%`_dim{i#69223}(8)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape{lanetype#11757, dim#11757, i#69216}(`I16`_lanetype, `%`_dim{i#69223}(8))] -[visit_exp lanetype#11757] -[visit_id lanetype#11757] -[visit_exp dim#11757] -[visit_id dim#11757] -[visit_exp i#69216] -[visit_id i#69216] -[visit_exp (`I16`_lanetype, `%`_dim{i#69223}(8))] +[check_dims] +dims \ = +[visit_exp `VTESTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ALL_TRUE`_vtestop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#69223}(8)] -[visit_exp i#69223] -[visit_id i#69223] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `ALL_TRUE`_vtestop_] [visit_exp ()] -[visit_exp `%`_u32{i#69209}(131)] -[visit_exp i#69209] -[visit_id i#69209] +[visit_exp `%`_u32(131)] [visit_exp (131)] [visit_exp 131] ps' = [check_dims] -[check_dims] Jnn#282 dim#11784 i#69291 i#69298 i#69305 ishape#21 lanetype#11784 shape#1517 -dims \ = Jnn#282, dim#11784, i#69291, i#69298, i#69305, ishape#21, lanetype#11784, shape#1517 -[visit_exp `VBITMASK`_instr{ishape#21}(`%`_ishape{shape#1517, Jnn#282}(`%X%`_shape{lanetype#11784, dim#11784, i#69298}(`I16`_lanetype, `%`_dim{i#69305}(8))))] -[visit_exp ishape#21] -[visit_id ishape#21] -[visit_exp (`%`_ishape{shape#1517, Jnn#282}(`%X%`_shape{lanetype#11784, dim#11784, i#69298}(`I16`_lanetype, `%`_dim{i#69305}(8))))] -[visit_exp `%`_ishape{shape#1517, Jnn#282}(`%X%`_shape{lanetype#11784, dim#11784, i#69298}(`I16`_lanetype, `%`_dim{i#69305}(8)))] -[visit_exp shape#1517] -[visit_id shape#1517] -[visit_exp Jnn#282] -[visit_id Jnn#282] -[visit_exp (`%X%`_shape{lanetype#11784, dim#11784, i#69298}(`I16`_lanetype, `%`_dim{i#69305}(8)))] -[visit_exp `%X%`_shape{lanetype#11784, dim#11784, i#69298}(`I16`_lanetype, `%`_dim{i#69305}(8))] -[visit_exp lanetype#11784] -[visit_id lanetype#11784] -[visit_exp dim#11784] -[visit_id dim#11784] -[visit_exp i#69298] -[visit_id i#69298] -[visit_exp (`I16`_lanetype, `%`_dim{i#69305}(8))] +[check_dims] +dims \ = +[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#69305}(8)] -[visit_exp i#69305] -[visit_id i#69305] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_u32{i#69291}(132)] -[visit_exp i#69291] -[visit_id i#69291] +[visit_exp `%`_u32(132)] [visit_exp (132)] [visit_exp 132] ps' = [check_dims] -[check_dims] Jnn#283 Jnn#284 Jnn#285 Jnn#289 Jnn#293 dim#11796 dim#11808 i#69328 i#69335 i#69342 i#69347 i#69354 ishape_1#33 ishape_2#33 lanetype#11796 lanetype#11808 shape#1519 shape#1520 shape#1521 shape#1532 shape#1544 sx#12672 -dims \ = Jnn#283, Jnn#284, Jnn#285, Jnn#289, Jnn#293, dim#11796, dim#11808, i#69328, i#69335, i#69342, i#69347, i#69354, ishape_1#33, ishape_2#33, lanetype#11796, lanetype#11808, shape#1519, shape#1520, shape#1521, shape#1532, shape#1544, sx#12672 -[visit_exp `VNARROW`_instr{ishape_1#33, ishape_2#33, sx#12672, shape#1519, Jnn#283, shape#1520, Jnn#284, shape#1521, Jnn#285}(`%`_ishape{shape#1532, Jnn#289}(`%X%`_shape{lanetype#11796, dim#11796, i#69335}(`I16`_lanetype, `%`_dim{i#69342}(8))), `%`_ishape{shape#1544, Jnn#293}(`%X%`_shape{lanetype#11808, dim#11808, i#69347}(`I32`_lanetype, `%`_dim{i#69354}(4))), `S`_sx)] -[visit_exp ishape_1#33] -[visit_id ishape_1#33] -[visit_exp ishape_2#33] -[visit_id ishape_2#33] -[visit_exp sx#12672] -[visit_id sx#12672] -[visit_exp shape#1519] -[visit_id shape#1519] -[visit_exp Jnn#283] -[visit_id Jnn#283] -[visit_exp shape#1520] -[visit_id shape#1520] -[visit_exp Jnn#284] -[visit_id Jnn#284] -[visit_exp shape#1521] -[visit_id shape#1521] -[visit_exp Jnn#285] -[visit_id Jnn#285] -[visit_exp (`%`_ishape{shape#1532, Jnn#289}(`%X%`_shape{lanetype#11796, dim#11796, i#69335}(`I16`_lanetype, `%`_dim{i#69342}(8))), `%`_ishape{shape#1544, Jnn#293}(`%X%`_shape{lanetype#11808, dim#11808, i#69347}(`I32`_lanetype, `%`_dim{i#69354}(4))), `S`_sx)] -[visit_exp `%`_ishape{shape#1532, Jnn#289}(`%X%`_shape{lanetype#11796, dim#11796, i#69335}(`I16`_lanetype, `%`_dim{i#69342}(8)))] -[visit_exp shape#1532] -[visit_id shape#1532] -[visit_exp Jnn#289] -[visit_id Jnn#289] -[visit_exp (`%X%`_shape{lanetype#11796, dim#11796, i#69335}(`I16`_lanetype, `%`_dim{i#69342}(8)))] -[visit_exp `%X%`_shape{lanetype#11796, dim#11796, i#69335}(`I16`_lanetype, `%`_dim{i#69342}(8))] -[visit_exp lanetype#11796] -[visit_id lanetype#11796] -[visit_exp dim#11796] -[visit_id dim#11796] -[visit_exp i#69335] -[visit_id i#69335] -[visit_exp (`I16`_lanetype, `%`_dim{i#69342}(8))] +[check_dims] +dims \ = +[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `S`_sx)] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `S`_sx)] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#69342}(8)] -[visit_exp i#69342] -[visit_id i#69342] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#1544, Jnn#293}(`%X%`_shape{lanetype#11808, dim#11808, i#69347}(`I32`_lanetype, `%`_dim{i#69354}(4)))] -[visit_exp shape#1544] -[visit_id shape#1544] -[visit_exp Jnn#293] -[visit_id Jnn#293] -[visit_exp (`%X%`_shape{lanetype#11808, dim#11808, i#69347}(`I32`_lanetype, `%`_dim{i#69354}(4)))] -[visit_exp `%X%`_shape{lanetype#11808, dim#11808, i#69347}(`I32`_lanetype, `%`_dim{i#69354}(4))] -[visit_exp lanetype#11808] -[visit_id lanetype#11808] -[visit_exp dim#11808] -[visit_id dim#11808] -[visit_exp i#69347] -[visit_id i#69347] -[visit_exp (`I32`_lanetype, `%`_dim{i#69354}(4))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#69354}(4)] -[visit_exp i#69354] -[visit_id i#69354] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#69328}(133)] -[visit_exp i#69328] -[visit_id i#69328] +[visit_exp `%`_u32(133)] [visit_exp (133)] [visit_exp 133] -[check_dims] Jnn#294 Jnn#295 Jnn#296 Jnn#300 Jnn#304 dim#11820 dim#11832 i#69377 i#69384 i#69391 i#69396 i#69403 ishape_1#35 ishape_2#35 lanetype#11820 lanetype#11832 shape#1546 shape#1547 shape#1548 shape#1559 shape#1571 sx#12674 -dims \ = Jnn#294, Jnn#295, Jnn#296, Jnn#300, Jnn#304, dim#11820, dim#11832, i#69377, i#69384, i#69391, i#69396, i#69403, ishape_1#35, ishape_2#35, lanetype#11820, lanetype#11832, shape#1546, shape#1547, shape#1548, shape#1559, shape#1571, sx#12674 -[visit_exp `VNARROW`_instr{ishape_1#35, ishape_2#35, sx#12674, shape#1546, Jnn#294, shape#1547, Jnn#295, shape#1548, Jnn#296}(`%`_ishape{shape#1559, Jnn#300}(`%X%`_shape{lanetype#11820, dim#11820, i#69384}(`I16`_lanetype, `%`_dim{i#69391}(8))), `%`_ishape{shape#1571, Jnn#304}(`%X%`_shape{lanetype#11832, dim#11832, i#69396}(`I32`_lanetype, `%`_dim{i#69403}(4))), `U`_sx)] -[visit_exp ishape_1#35] -[visit_id ishape_1#35] -[visit_exp ishape_2#35] -[visit_id ishape_2#35] -[visit_exp sx#12674] -[visit_id sx#12674] -[visit_exp shape#1546] -[visit_id shape#1546] -[visit_exp Jnn#294] -[visit_id Jnn#294] -[visit_exp shape#1547] -[visit_id shape#1547] -[visit_exp Jnn#295] -[visit_id Jnn#295] -[visit_exp shape#1548] -[visit_id shape#1548] -[visit_exp Jnn#296] -[visit_id Jnn#296] -[visit_exp (`%`_ishape{shape#1559, Jnn#300}(`%X%`_shape{lanetype#11820, dim#11820, i#69384}(`I16`_lanetype, `%`_dim{i#69391}(8))), `%`_ishape{shape#1571, Jnn#304}(`%X%`_shape{lanetype#11832, dim#11832, i#69396}(`I32`_lanetype, `%`_dim{i#69403}(4))), `U`_sx)] -[visit_exp `%`_ishape{shape#1559, Jnn#300}(`%X%`_shape{lanetype#11820, dim#11820, i#69384}(`I16`_lanetype, `%`_dim{i#69391}(8)))] -[visit_exp shape#1559] -[visit_id shape#1559] -[visit_exp Jnn#300] -[visit_id Jnn#300] -[visit_exp (`%X%`_shape{lanetype#11820, dim#11820, i#69384}(`I16`_lanetype, `%`_dim{i#69391}(8)))] -[visit_exp `%X%`_shape{lanetype#11820, dim#11820, i#69384}(`I16`_lanetype, `%`_dim{i#69391}(8))] -[visit_exp lanetype#11820] -[visit_id lanetype#11820] -[visit_exp dim#11820] -[visit_id dim#11820] -[visit_exp i#69384] -[visit_id i#69384] -[visit_exp (`I16`_lanetype, `%`_dim{i#69391}(8))] +[check_dims] +dims \ = +[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `U`_sx)] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `U`_sx)] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#69391}(8)] -[visit_exp i#69391] -[visit_id i#69391] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#1571, Jnn#304}(`%X%`_shape{lanetype#11832, dim#11832, i#69396}(`I32`_lanetype, `%`_dim{i#69403}(4)))] -[visit_exp shape#1571] -[visit_id shape#1571] -[visit_exp Jnn#304] -[visit_id Jnn#304] -[visit_exp (`%X%`_shape{lanetype#11832, dim#11832, i#69396}(`I32`_lanetype, `%`_dim{i#69403}(4)))] -[visit_exp `%X%`_shape{lanetype#11832, dim#11832, i#69396}(`I32`_lanetype, `%`_dim{i#69403}(4))] -[visit_exp lanetype#11832] -[visit_id lanetype#11832] -[visit_exp dim#11832] -[visit_id dim#11832] -[visit_exp i#69396] -[visit_id i#69396] -[visit_exp (`I32`_lanetype, `%`_dim{i#69403}(4))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#69403}(4)] -[visit_exp i#69403] -[visit_id i#69403] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#69377}(134)] -[visit_exp i#69377] -[visit_id i#69377] +[visit_exp `%`_u32(134)] [visit_exp (134)] [visit_exp 134] ps' = [check_dims] -[check_dims] dim#11844 dim#11856 half#56 i#69426 i#69433 i#69440 i#69445 i#69452 lanetype#11844 lanetype#11856 shape_1#7 shape_2#7 sx#12708 -dims \ = dim#11844, dim#11856, half#56, i#69426, i#69433, i#69440, i#69445, i#69452, lanetype#11844, lanetype#11856, shape_1#7, shape_2#7, sx#12708 -[visit_exp `VCVTOP`_instr{shape_1#7, shape_2#7}(`%X%`_shape{lanetype#11844, dim#11844, i#69433}(`I16`_lanetype, `%`_dim{i#69440}(8)), `%X%`_shape{lanetype#11856, dim#11856, i#69445}(`I8`_lanetype, `%`_dim{i#69452}(16)), `EXTEND`_vcvtop__{half#56, sx#12708}(`LOW`_half, `S`_sx))] -[visit_exp shape_1#7] -[visit_id shape_1#7] -[visit_exp shape_2#7] -[visit_id shape_2#7] -[visit_exp (`%X%`_shape{lanetype#11844, dim#11844, i#69433}(`I16`_lanetype, `%`_dim{i#69440}(8)), `%X%`_shape{lanetype#11856, dim#11856, i#69445}(`I8`_lanetype, `%`_dim{i#69452}(16)), `EXTEND`_vcvtop__{half#56, sx#12708}(`LOW`_half, `S`_sx))] -[visit_exp `%X%`_shape{lanetype#11844, dim#11844, i#69433}(`I16`_lanetype, `%`_dim{i#69440}(8))] -[visit_exp lanetype#11844] -[visit_id lanetype#11844] -[visit_exp dim#11844] -[visit_id dim#11844] -[visit_exp i#69433] -[visit_id i#69433] -[visit_exp (`I16`_lanetype, `%`_dim{i#69440}(8))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#69440}(8)] -[visit_exp i#69440] -[visit_id i#69440] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%X%`_shape{lanetype#11856, dim#11856, i#69445}(`I8`_lanetype, `%`_dim{i#69452}(16))] -[visit_exp lanetype#11856] -[visit_id lanetype#11856] -[visit_exp dim#11856] -[visit_id dim#11856] -[visit_exp i#69445] -[visit_id i#69445] -[visit_exp (`I8`_lanetype, `%`_dim{i#69452}(16))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#69452}(16)] -[visit_exp i#69452] -[visit_id i#69452] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTEND`_vcvtop__{half#56, sx#12708}(`LOW`_half, `S`_sx)] -[visit_exp half#56] -[visit_id half#56] -[visit_exp sx#12708] -[visit_id sx#12708] +[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)] [visit_exp (`LOW`_half, `S`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#69426}(135)] -[visit_exp i#69426] -[visit_id i#69426] +[visit_exp `%`_u32(135)] [visit_exp (135)] [visit_exp 135] -[check_dims] dim#11959 dim#11971 half#90 i#69686 i#69693 i#69700 i#69705 i#69712 lanetype#11959 lanetype#11971 shape_1#9 shape_2#9 sx#12742 -dims \ = dim#11959, dim#11971, half#90, i#69686, i#69693, i#69700, i#69705, i#69712, lanetype#11959, lanetype#11971, shape_1#9, shape_2#9, sx#12742 -[visit_exp `VCVTOP`_instr{shape_1#9, shape_2#9}(`%X%`_shape{lanetype#11959, dim#11959, i#69693}(`I16`_lanetype, `%`_dim{i#69700}(8)), `%X%`_shape{lanetype#11971, dim#11971, i#69705}(`I8`_lanetype, `%`_dim{i#69712}(16)), `EXTEND`_vcvtop__{half#90, sx#12742}(`HIGH`_half, `S`_sx))] -[visit_exp shape_1#9] -[visit_id shape_1#9] -[visit_exp shape_2#9] -[visit_id shape_2#9] -[visit_exp (`%X%`_shape{lanetype#11959, dim#11959, i#69693}(`I16`_lanetype, `%`_dim{i#69700}(8)), `%X%`_shape{lanetype#11971, dim#11971, i#69705}(`I8`_lanetype, `%`_dim{i#69712}(16)), `EXTEND`_vcvtop__{half#90, sx#12742}(`HIGH`_half, `S`_sx))] -[visit_exp `%X%`_shape{lanetype#11959, dim#11959, i#69693}(`I16`_lanetype, `%`_dim{i#69700}(8))] -[visit_exp lanetype#11959] -[visit_id lanetype#11959] -[visit_exp dim#11959] -[visit_id dim#11959] -[visit_exp i#69693] -[visit_id i#69693] -[visit_exp (`I16`_lanetype, `%`_dim{i#69700}(8))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#69700}(8)] -[visit_exp i#69700] -[visit_id i#69700] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%X%`_shape{lanetype#11971, dim#11971, i#69705}(`I8`_lanetype, `%`_dim{i#69712}(16))] -[visit_exp lanetype#11971] -[visit_id lanetype#11971] -[visit_exp dim#11971] -[visit_id dim#11971] -[visit_exp i#69705] -[visit_id i#69705] -[visit_exp (`I8`_lanetype, `%`_dim{i#69712}(16))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#69712}(16)] -[visit_exp i#69712] -[visit_id i#69712] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTEND`_vcvtop__{half#90, sx#12742}(`HIGH`_half, `S`_sx)] -[visit_exp half#90] -[visit_id half#90] -[visit_exp sx#12742] -[visit_id sx#12742] +[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)] [visit_exp (`HIGH`_half, `S`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#69686}(136)] -[visit_exp i#69686] -[visit_id i#69686] +[visit_exp `%`_u32(136)] [visit_exp (136)] [visit_exp 136] -[check_dims] dim#12074 dim#12086 half#124 i#69946 i#69953 i#69960 i#69965 i#69972 lanetype#12074 lanetype#12086 shape_1#11 shape_2#11 sx#12776 -dims \ = dim#12074, dim#12086, half#124, i#69946, i#69953, i#69960, i#69965, i#69972, lanetype#12074, lanetype#12086, shape_1#11, shape_2#11, sx#12776 -[visit_exp `VCVTOP`_instr{shape_1#11, shape_2#11}(`%X%`_shape{lanetype#12074, dim#12074, i#69953}(`I16`_lanetype, `%`_dim{i#69960}(8)), `%X%`_shape{lanetype#12086, dim#12086, i#69965}(`I8`_lanetype, `%`_dim{i#69972}(16)), `EXTEND`_vcvtop__{half#124, sx#12776}(`LOW`_half, `U`_sx))] -[visit_exp shape_1#11] -[visit_id shape_1#11] -[visit_exp shape_2#11] -[visit_id shape_2#11] -[visit_exp (`%X%`_shape{lanetype#12074, dim#12074, i#69953}(`I16`_lanetype, `%`_dim{i#69960}(8)), `%X%`_shape{lanetype#12086, dim#12086, i#69965}(`I8`_lanetype, `%`_dim{i#69972}(16)), `EXTEND`_vcvtop__{half#124, sx#12776}(`LOW`_half, `U`_sx))] -[visit_exp `%X%`_shape{lanetype#12074, dim#12074, i#69953}(`I16`_lanetype, `%`_dim{i#69960}(8))] -[visit_exp lanetype#12074] -[visit_id lanetype#12074] -[visit_exp dim#12074] -[visit_id dim#12074] -[visit_exp i#69953] -[visit_id i#69953] -[visit_exp (`I16`_lanetype, `%`_dim{i#69960}(8))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#69960}(8)] -[visit_exp i#69960] -[visit_id i#69960] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%X%`_shape{lanetype#12086, dim#12086, i#69965}(`I8`_lanetype, `%`_dim{i#69972}(16))] -[visit_exp lanetype#12086] -[visit_id lanetype#12086] -[visit_exp dim#12086] -[visit_id dim#12086] -[visit_exp i#69965] -[visit_id i#69965] -[visit_exp (`I8`_lanetype, `%`_dim{i#69972}(16))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#69972}(16)] -[visit_exp i#69972] -[visit_id i#69972] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTEND`_vcvtop__{half#124, sx#12776}(`LOW`_half, `U`_sx)] -[visit_exp half#124] -[visit_id half#124] -[visit_exp sx#12776] -[visit_id sx#12776] +[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)] [visit_exp (`LOW`_half, `U`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#69946}(137)] -[visit_exp i#69946] -[visit_id i#69946] +[visit_exp `%`_u32(137)] [visit_exp (137)] [visit_exp 137] -[check_dims] dim#12189 dim#12201 half#158 i#70206 i#70213 i#70220 i#70225 i#70232 lanetype#12189 lanetype#12201 shape_1#13 shape_2#13 sx#12810 -dims \ = dim#12189, dim#12201, half#158, i#70206, i#70213, i#70220, i#70225, i#70232, lanetype#12189, lanetype#12201, shape_1#13, shape_2#13, sx#12810 -[visit_exp `VCVTOP`_instr{shape_1#13, shape_2#13}(`%X%`_shape{lanetype#12189, dim#12189, i#70213}(`I16`_lanetype, `%`_dim{i#70220}(8)), `%X%`_shape{lanetype#12201, dim#12201, i#70225}(`I8`_lanetype, `%`_dim{i#70232}(16)), `EXTEND`_vcvtop__{half#158, sx#12810}(`HIGH`_half, `U`_sx))] -[visit_exp shape_1#13] -[visit_id shape_1#13] -[visit_exp shape_2#13] -[visit_id shape_2#13] -[visit_exp (`%X%`_shape{lanetype#12189, dim#12189, i#70213}(`I16`_lanetype, `%`_dim{i#70220}(8)), `%X%`_shape{lanetype#12201, dim#12201, i#70225}(`I8`_lanetype, `%`_dim{i#70232}(16)), `EXTEND`_vcvtop__{half#158, sx#12810}(`HIGH`_half, `U`_sx))] -[visit_exp `%X%`_shape{lanetype#12189, dim#12189, i#70213}(`I16`_lanetype, `%`_dim{i#70220}(8))] -[visit_exp lanetype#12189] -[visit_id lanetype#12189] -[visit_exp dim#12189] -[visit_id dim#12189] -[visit_exp i#70213] -[visit_id i#70213] -[visit_exp (`I16`_lanetype, `%`_dim{i#70220}(8))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#70220}(8)] -[visit_exp i#70220] -[visit_id i#70220] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%X%`_shape{lanetype#12201, dim#12201, i#70225}(`I8`_lanetype, `%`_dim{i#70232}(16))] -[visit_exp lanetype#12201] -[visit_id lanetype#12201] -[visit_exp dim#12201] -[visit_id dim#12201] -[visit_exp i#70225] -[visit_id i#70225] -[visit_exp (`I8`_lanetype, `%`_dim{i#70232}(16))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#70232}(16)] -[visit_exp i#70232] -[visit_id i#70232] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTEND`_vcvtop__{half#158, sx#12810}(`HIGH`_half, `U`_sx)] -[visit_exp half#158] -[visit_id half#158] -[visit_exp sx#12810] -[visit_id sx#12810] +[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)] [visit_exp (`HIGH`_half, `U`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#70206}(138)] -[visit_exp i#70206] -[visit_id i#70206] +[visit_exp `%`_u32(138)] [visit_exp (138)] [visit_exp 138] ps' = [check_dims] -[check_dims] Jnn#308 dim#12304 i#70466 i#70473 i#70480 ishape#23 lanetype#12304 shape#1583 -dims \ = Jnn#308, dim#12304, i#70466, i#70473, i#70480, ishape#23, lanetype#12304, shape#1583 -[visit_exp `VSHIFTOP`_instr{ishape#23}(`%`_ishape{shape#1583, Jnn#308}(`%X%`_shape{lanetype#12304, dim#12304, i#70473}(`I16`_lanetype, `%`_dim{i#70480}(8))), `SHL`_vshiftop_)] -[visit_exp ishape#23] -[visit_id ishape#23] -[visit_exp (`%`_ishape{shape#1583, Jnn#308}(`%X%`_shape{lanetype#12304, dim#12304, i#70473}(`I16`_lanetype, `%`_dim{i#70480}(8))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape{shape#1583, Jnn#308}(`%X%`_shape{lanetype#12304, dim#12304, i#70473}(`I16`_lanetype, `%`_dim{i#70480}(8)))] -[visit_exp shape#1583] -[visit_id shape#1583] -[visit_exp Jnn#308] -[visit_id Jnn#308] -[visit_exp (`%X%`_shape{lanetype#12304, dim#12304, i#70473}(`I16`_lanetype, `%`_dim{i#70480}(8)))] -[visit_exp `%X%`_shape{lanetype#12304, dim#12304, i#70473}(`I16`_lanetype, `%`_dim{i#70480}(8))] -[visit_exp lanetype#12304] -[visit_id lanetype#12304] -[visit_exp dim#12304] -[visit_id dim#12304] -[visit_exp i#70473] -[visit_id i#70473] -[visit_exp (`I16`_lanetype, `%`_dim{i#70480}(8))] +[check_dims] +dims \ = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHL`_vshiftop_)] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#70480}(8)] -[visit_exp i#70480] -[visit_id i#70480] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `SHL`_vshiftop_] [visit_exp ()] -[visit_exp `%`_u32{i#70466}(139)] -[visit_exp i#70466] -[visit_id i#70466] +[visit_exp `%`_u32(139)] [visit_exp (139)] [visit_exp 139] -[check_dims] Jnn#312 dim#12361 i#70578 i#70585 i#70592 ishape#25 lanetype#12361 shape#1610 sx#12859 -dims \ = Jnn#312, dim#12361, i#70578, i#70585, i#70592, ishape#25, lanetype#12361, shape#1610, sx#12859 -[visit_exp `VSHIFTOP`_instr{ishape#25}(`%`_ishape{shape#1610, Jnn#312}(`%X%`_shape{lanetype#12361, dim#12361, i#70585}(`I16`_lanetype, `%`_dim{i#70592}(8))), `SHR`_vshiftop_{sx#12859}(`S`_sx))] -[visit_exp ishape#25] -[visit_id ishape#25] -[visit_exp (`%`_ishape{shape#1610, Jnn#312}(`%X%`_shape{lanetype#12361, dim#12361, i#70585}(`I16`_lanetype, `%`_dim{i#70592}(8))), `SHR`_vshiftop_{sx#12859}(`S`_sx))] -[visit_exp `%`_ishape{shape#1610, Jnn#312}(`%X%`_shape{lanetype#12361, dim#12361, i#70585}(`I16`_lanetype, `%`_dim{i#70592}(8)))] -[visit_exp shape#1610] -[visit_id shape#1610] -[visit_exp Jnn#312] -[visit_id Jnn#312] -[visit_exp (`%X%`_shape{lanetype#12361, dim#12361, i#70585}(`I16`_lanetype, `%`_dim{i#70592}(8)))] -[visit_exp `%X%`_shape{lanetype#12361, dim#12361, i#70585}(`I16`_lanetype, `%`_dim{i#70592}(8))] -[visit_exp lanetype#12361] -[visit_id lanetype#12361] -[visit_exp dim#12361] -[visit_id dim#12361] -[visit_exp i#70585] -[visit_id i#70585] -[visit_exp (`I16`_lanetype, `%`_dim{i#70592}(8))] +[check_dims] +dims \ = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#70592}(8)] -[visit_exp i#70592] -[visit_id i#70592] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `SHR`_vshiftop_{sx#12859}(`S`_sx)] -[visit_exp sx#12859] -[visit_id sx#12859] +[visit_exp `SHR`_vshiftop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#70578}(140)] -[visit_exp i#70578] -[visit_id i#70578] +[visit_exp `%`_u32(140)] [visit_exp (140)] [visit_exp 140] -[check_dims] Jnn#316 dim#12463 i#70765 i#70772 i#70779 ishape#27 lanetype#12463 shape#1652 sx#12893 -dims \ = Jnn#316, dim#12463, i#70765, i#70772, i#70779, ishape#27, lanetype#12463, shape#1652, sx#12893 -[visit_exp `VSHIFTOP`_instr{ishape#27}(`%`_ishape{shape#1652, Jnn#316}(`%X%`_shape{lanetype#12463, dim#12463, i#70772}(`I16`_lanetype, `%`_dim{i#70779}(8))), `SHR`_vshiftop_{sx#12893}(`U`_sx))] -[visit_exp ishape#27] -[visit_id ishape#27] -[visit_exp (`%`_ishape{shape#1652, Jnn#316}(`%X%`_shape{lanetype#12463, dim#12463, i#70772}(`I16`_lanetype, `%`_dim{i#70779}(8))), `SHR`_vshiftop_{sx#12893}(`U`_sx))] -[visit_exp `%`_ishape{shape#1652, Jnn#316}(`%X%`_shape{lanetype#12463, dim#12463, i#70772}(`I16`_lanetype, `%`_dim{i#70779}(8)))] -[visit_exp shape#1652] -[visit_id shape#1652] -[visit_exp Jnn#316] -[visit_id Jnn#316] -[visit_exp (`%X%`_shape{lanetype#12463, dim#12463, i#70772}(`I16`_lanetype, `%`_dim{i#70779}(8)))] -[visit_exp `%X%`_shape{lanetype#12463, dim#12463, i#70772}(`I16`_lanetype, `%`_dim{i#70779}(8))] -[visit_exp lanetype#12463] -[visit_id lanetype#12463] -[visit_exp dim#12463] -[visit_id dim#12463] -[visit_exp i#70772] -[visit_id i#70772] -[visit_exp (`I16`_lanetype, `%`_dim{i#70779}(8))] +[check_dims] +dims \ = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#70779}(8)] -[visit_exp i#70779] -[visit_id i#70779] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `SHR`_vshiftop_{sx#12893}(`U`_sx)] -[visit_exp sx#12893] -[visit_id sx#12893] +[visit_exp `SHR`_vshiftop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#70765}(141)] -[visit_exp i#70765] -[visit_id i#70765] +[visit_exp `%`_u32(141)] [visit_exp (141)] [visit_exp 141] ps' = [check_dims] -[check_dims] Jnn#320 Jnn#324 dim#12565 dim#12577 half#192 i#70952 i#70959 i#70966 i#70971 i#70978 ishape_1#37 ishape_2#37 lanetype#12565 lanetype#12577 shape#1694 shape#1706 sx#12927 -dims \ = Jnn#320, Jnn#324, dim#12565, dim#12577, half#192, i#70952, i#70959, i#70966, i#70971, i#70978, ishape_1#37, ishape_2#37, lanetype#12565, lanetype#12577, shape#1694, shape#1706, sx#12927 -[visit_exp `VEXTBINOP`_instr{ishape_1#37, ishape_2#37}(`%`_ishape{shape#1694, Jnn#320}(`%X%`_shape{lanetype#12565, dim#12565, i#70959}(`I16`_lanetype, `%`_dim{i#70966}(8))), `%`_ishape{shape#1706, Jnn#324}(`%X%`_shape{lanetype#12577, dim#12577, i#70971}(`I8`_lanetype, `%`_dim{i#70978}(16))), `EXTMUL`_vextbinop__{half#192, sx#12927}(`LOW`_half, `S`_sx))] -[visit_exp ishape_1#37] -[visit_id ishape_1#37] -[visit_exp ishape_2#37] -[visit_id ishape_2#37] -[visit_exp (`%`_ishape{shape#1694, Jnn#320}(`%X%`_shape{lanetype#12565, dim#12565, i#70959}(`I16`_lanetype, `%`_dim{i#70966}(8))), `%`_ishape{shape#1706, Jnn#324}(`%X%`_shape{lanetype#12577, dim#12577, i#70971}(`I8`_lanetype, `%`_dim{i#70978}(16))), `EXTMUL`_vextbinop__{half#192, sx#12927}(`LOW`_half, `S`_sx))] -[visit_exp `%`_ishape{shape#1694, Jnn#320}(`%X%`_shape{lanetype#12565, dim#12565, i#70959}(`I16`_lanetype, `%`_dim{i#70966}(8)))] -[visit_exp shape#1694] -[visit_id shape#1694] -[visit_exp Jnn#320] -[visit_id Jnn#320] -[visit_exp (`%X%`_shape{lanetype#12565, dim#12565, i#70959}(`I16`_lanetype, `%`_dim{i#70966}(8)))] -[visit_exp `%X%`_shape{lanetype#12565, dim#12565, i#70959}(`I16`_lanetype, `%`_dim{i#70966}(8))] -[visit_exp lanetype#12565] -[visit_id lanetype#12565] -[visit_exp dim#12565] -[visit_id dim#12565] -[visit_exp i#70959] -[visit_id i#70959] -[visit_exp (`I16`_lanetype, `%`_dim{i#70966}(8))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#70966}(8)] -[visit_exp i#70966] -[visit_id i#70966] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#1706, Jnn#324}(`%X%`_shape{lanetype#12577, dim#12577, i#70971}(`I8`_lanetype, `%`_dim{i#70978}(16)))] -[visit_exp shape#1706] -[visit_id shape#1706] -[visit_exp Jnn#324] -[visit_id Jnn#324] -[visit_exp (`%X%`_shape{lanetype#12577, dim#12577, i#70971}(`I8`_lanetype, `%`_dim{i#70978}(16)))] -[visit_exp `%X%`_shape{lanetype#12577, dim#12577, i#70971}(`I8`_lanetype, `%`_dim{i#70978}(16))] -[visit_exp lanetype#12577] -[visit_id lanetype#12577] -[visit_exp dim#12577] -[visit_id dim#12577] -[visit_exp i#70971] -[visit_id i#70971] -[visit_exp (`I8`_lanetype, `%`_dim{i#70978}(16))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#70978}(16)] -[visit_exp i#70978] -[visit_id i#70978] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__{half#192, sx#12927}(`LOW`_half, `S`_sx)] -[visit_exp half#192] -[visit_id half#192] -[visit_exp sx#12927] -[visit_id sx#12927] +[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)] [visit_exp (`LOW`_half, `S`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#70952}(156)] -[visit_exp i#70952] -[visit_id i#70952] +[visit_exp `%`_u32(156)] [visit_exp (156)] [visit_exp 156] -[check_dims] Jnn#328 Jnn#332 dim#12800 dim#12812 half#226 i#71332 i#71339 i#71346 i#71351 i#71358 ishape_1#39 ishape_2#39 lanetype#12800 lanetype#12812 shape#1809 shape#1821 sx#12961 -dims \ = Jnn#328, Jnn#332, dim#12800, dim#12812, half#226, i#71332, i#71339, i#71346, i#71351, i#71358, ishape_1#39, ishape_2#39, lanetype#12800, lanetype#12812, shape#1809, shape#1821, sx#12961 -[visit_exp `VEXTBINOP`_instr{ishape_1#39, ishape_2#39}(`%`_ishape{shape#1809, Jnn#328}(`%X%`_shape{lanetype#12800, dim#12800, i#71339}(`I16`_lanetype, `%`_dim{i#71346}(8))), `%`_ishape{shape#1821, Jnn#332}(`%X%`_shape{lanetype#12812, dim#12812, i#71351}(`I8`_lanetype, `%`_dim{i#71358}(16))), `EXTMUL`_vextbinop__{half#226, sx#12961}(`HIGH`_half, `S`_sx))] -[visit_exp ishape_1#39] -[visit_id ishape_1#39] -[visit_exp ishape_2#39] -[visit_id ishape_2#39] -[visit_exp (`%`_ishape{shape#1809, Jnn#328}(`%X%`_shape{lanetype#12800, dim#12800, i#71339}(`I16`_lanetype, `%`_dim{i#71346}(8))), `%`_ishape{shape#1821, Jnn#332}(`%X%`_shape{lanetype#12812, dim#12812, i#71351}(`I8`_lanetype, `%`_dim{i#71358}(16))), `EXTMUL`_vextbinop__{half#226, sx#12961}(`HIGH`_half, `S`_sx))] -[visit_exp `%`_ishape{shape#1809, Jnn#328}(`%X%`_shape{lanetype#12800, dim#12800, i#71339}(`I16`_lanetype, `%`_dim{i#71346}(8)))] -[visit_exp shape#1809] -[visit_id shape#1809] -[visit_exp Jnn#328] -[visit_id Jnn#328] -[visit_exp (`%X%`_shape{lanetype#12800, dim#12800, i#71339}(`I16`_lanetype, `%`_dim{i#71346}(8)))] -[visit_exp `%X%`_shape{lanetype#12800, dim#12800, i#71339}(`I16`_lanetype, `%`_dim{i#71346}(8))] -[visit_exp lanetype#12800] -[visit_id lanetype#12800] -[visit_exp dim#12800] -[visit_id dim#12800] -[visit_exp i#71339] -[visit_id i#71339] -[visit_exp (`I16`_lanetype, `%`_dim{i#71346}(8))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#71346}(8)] -[visit_exp i#71346] -[visit_id i#71346] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#1821, Jnn#332}(`%X%`_shape{lanetype#12812, dim#12812, i#71351}(`I8`_lanetype, `%`_dim{i#71358}(16)))] -[visit_exp shape#1821] -[visit_id shape#1821] -[visit_exp Jnn#332] -[visit_id Jnn#332] -[visit_exp (`%X%`_shape{lanetype#12812, dim#12812, i#71351}(`I8`_lanetype, `%`_dim{i#71358}(16)))] -[visit_exp `%X%`_shape{lanetype#12812, dim#12812, i#71351}(`I8`_lanetype, `%`_dim{i#71358}(16))] -[visit_exp lanetype#12812] -[visit_id lanetype#12812] -[visit_exp dim#12812] -[visit_id dim#12812] -[visit_exp i#71351] -[visit_id i#71351] -[visit_exp (`I8`_lanetype, `%`_dim{i#71358}(16))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#71358}(16)] -[visit_exp i#71358] -[visit_id i#71358] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__{half#226, sx#12961}(`HIGH`_half, `S`_sx)] -[visit_exp half#226] -[visit_id half#226] -[visit_exp sx#12961] -[visit_id sx#12961] +[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)] [visit_exp (`HIGH`_half, `S`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#71332}(157)] -[visit_exp i#71332] -[visit_id i#71332] +[visit_exp `%`_u32(157)] [visit_exp (157)] [visit_exp 157] -[check_dims] Jnn#336 Jnn#340 dim#13035 dim#13047 half#260 i#71712 i#71719 i#71726 i#71731 i#71738 ishape_1#41 ishape_2#41 lanetype#13035 lanetype#13047 shape#1924 shape#1936 sx#12995 -dims \ = Jnn#336, Jnn#340, dim#13035, dim#13047, half#260, i#71712, i#71719, i#71726, i#71731, i#71738, ishape_1#41, ishape_2#41, lanetype#13035, lanetype#13047, shape#1924, shape#1936, sx#12995 -[visit_exp `VEXTBINOP`_instr{ishape_1#41, ishape_2#41}(`%`_ishape{shape#1924, Jnn#336}(`%X%`_shape{lanetype#13035, dim#13035, i#71719}(`I16`_lanetype, `%`_dim{i#71726}(8))), `%`_ishape{shape#1936, Jnn#340}(`%X%`_shape{lanetype#13047, dim#13047, i#71731}(`I8`_lanetype, `%`_dim{i#71738}(16))), `EXTMUL`_vextbinop__{half#260, sx#12995}(`LOW`_half, `U`_sx))] -[visit_exp ishape_1#41] -[visit_id ishape_1#41] -[visit_exp ishape_2#41] -[visit_id ishape_2#41] -[visit_exp (`%`_ishape{shape#1924, Jnn#336}(`%X%`_shape{lanetype#13035, dim#13035, i#71719}(`I16`_lanetype, `%`_dim{i#71726}(8))), `%`_ishape{shape#1936, Jnn#340}(`%X%`_shape{lanetype#13047, dim#13047, i#71731}(`I8`_lanetype, `%`_dim{i#71738}(16))), `EXTMUL`_vextbinop__{half#260, sx#12995}(`LOW`_half, `U`_sx))] -[visit_exp `%`_ishape{shape#1924, Jnn#336}(`%X%`_shape{lanetype#13035, dim#13035, i#71719}(`I16`_lanetype, `%`_dim{i#71726}(8)))] -[visit_exp shape#1924] -[visit_id shape#1924] -[visit_exp Jnn#336] -[visit_id Jnn#336] -[visit_exp (`%X%`_shape{lanetype#13035, dim#13035, i#71719}(`I16`_lanetype, `%`_dim{i#71726}(8)))] -[visit_exp `%X%`_shape{lanetype#13035, dim#13035, i#71719}(`I16`_lanetype, `%`_dim{i#71726}(8))] -[visit_exp lanetype#13035] -[visit_id lanetype#13035] -[visit_exp dim#13035] -[visit_id dim#13035] -[visit_exp i#71719] -[visit_id i#71719] -[visit_exp (`I16`_lanetype, `%`_dim{i#71726}(8))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#71726}(8)] -[visit_exp i#71726] -[visit_id i#71726] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#1936, Jnn#340}(`%X%`_shape{lanetype#13047, dim#13047, i#71731}(`I8`_lanetype, `%`_dim{i#71738}(16)))] -[visit_exp shape#1936] -[visit_id shape#1936] -[visit_exp Jnn#340] -[visit_id Jnn#340] -[visit_exp (`%X%`_shape{lanetype#13047, dim#13047, i#71731}(`I8`_lanetype, `%`_dim{i#71738}(16)))] -[visit_exp `%X%`_shape{lanetype#13047, dim#13047, i#71731}(`I8`_lanetype, `%`_dim{i#71738}(16))] -[visit_exp lanetype#13047] -[visit_id lanetype#13047] -[visit_exp dim#13047] -[visit_id dim#13047] -[visit_exp i#71731] -[visit_id i#71731] -[visit_exp (`I8`_lanetype, `%`_dim{i#71738}(16))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#71738}(16)] -[visit_exp i#71738] -[visit_id i#71738] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__{half#260, sx#12995}(`LOW`_half, `U`_sx)] -[visit_exp half#260] -[visit_id half#260] -[visit_exp sx#12995] -[visit_id sx#12995] +[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)] [visit_exp (`LOW`_half, `U`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#71712}(158)] -[visit_exp i#71712] -[visit_id i#71712] +[visit_exp `%`_u32(158)] [visit_exp (158)] [visit_exp 158] -[check_dims] Jnn#344 Jnn#348 dim#13270 dim#13282 half#294 i#72092 i#72099 i#72106 i#72111 i#72118 ishape_1#43 ishape_2#43 lanetype#13270 lanetype#13282 shape#2039 shape#2051 sx#13029 -dims \ = Jnn#344, Jnn#348, dim#13270, dim#13282, half#294, i#72092, i#72099, i#72106, i#72111, i#72118, ishape_1#43, ishape_2#43, lanetype#13270, lanetype#13282, shape#2039, shape#2051, sx#13029 -[visit_exp `VEXTBINOP`_instr{ishape_1#43, ishape_2#43}(`%`_ishape{shape#2039, Jnn#344}(`%X%`_shape{lanetype#13270, dim#13270, i#72099}(`I16`_lanetype, `%`_dim{i#72106}(8))), `%`_ishape{shape#2051, Jnn#348}(`%X%`_shape{lanetype#13282, dim#13282, i#72111}(`I8`_lanetype, `%`_dim{i#72118}(16))), `EXTMUL`_vextbinop__{half#294, sx#13029}(`HIGH`_half, `U`_sx))] -[visit_exp ishape_1#43] -[visit_id ishape_1#43] -[visit_exp ishape_2#43] -[visit_id ishape_2#43] -[visit_exp (`%`_ishape{shape#2039, Jnn#344}(`%X%`_shape{lanetype#13270, dim#13270, i#72099}(`I16`_lanetype, `%`_dim{i#72106}(8))), `%`_ishape{shape#2051, Jnn#348}(`%X%`_shape{lanetype#13282, dim#13282, i#72111}(`I8`_lanetype, `%`_dim{i#72118}(16))), `EXTMUL`_vextbinop__{half#294, sx#13029}(`HIGH`_half, `U`_sx))] -[visit_exp `%`_ishape{shape#2039, Jnn#344}(`%X%`_shape{lanetype#13270, dim#13270, i#72099}(`I16`_lanetype, `%`_dim{i#72106}(8)))] -[visit_exp shape#2039] -[visit_id shape#2039] -[visit_exp Jnn#344] -[visit_id Jnn#344] -[visit_exp (`%X%`_shape{lanetype#13270, dim#13270, i#72099}(`I16`_lanetype, `%`_dim{i#72106}(8)))] -[visit_exp `%X%`_shape{lanetype#13270, dim#13270, i#72099}(`I16`_lanetype, `%`_dim{i#72106}(8))] -[visit_exp lanetype#13270] -[visit_id lanetype#13270] -[visit_exp dim#13270] -[visit_id dim#13270] -[visit_exp i#72099] -[visit_id i#72099] -[visit_exp (`I16`_lanetype, `%`_dim{i#72106}(8))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#72106}(8)] -[visit_exp i#72106] -[visit_id i#72106] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#2051, Jnn#348}(`%X%`_shape{lanetype#13282, dim#13282, i#72111}(`I8`_lanetype, `%`_dim{i#72118}(16)))] -[visit_exp shape#2051] -[visit_id shape#2051] -[visit_exp Jnn#348] -[visit_id Jnn#348] -[visit_exp (`%X%`_shape{lanetype#13282, dim#13282, i#72111}(`I8`_lanetype, `%`_dim{i#72118}(16)))] -[visit_exp `%X%`_shape{lanetype#13282, dim#13282, i#72111}(`I8`_lanetype, `%`_dim{i#72118}(16))] -[visit_exp lanetype#13282] -[visit_id lanetype#13282] -[visit_exp dim#13282] -[visit_id dim#13282] -[visit_exp i#72111] -[visit_id i#72111] -[visit_exp (`I8`_lanetype, `%`_dim{i#72118}(16))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#72118}(16)] -[visit_exp i#72118] -[visit_id i#72118] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__{half#294, sx#13029}(`HIGH`_half, `U`_sx)] -[visit_exp half#294] -[visit_id half#294] -[visit_exp sx#13029] -[visit_id sx#13029] +[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)] [visit_exp (`HIGH`_half, `U`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#72092}(159)] -[visit_exp i#72092] -[visit_id i#72092] +[visit_exp `%`_u32(159)] [visit_exp (159)] [visit_exp 159] -[check_dims] Jnn#352 Jnn#356 dim#13505 dim#13517 i#72472 i#72479 i#72486 i#72491 i#72498 ishape_1#45 ishape_2#45 lanetype#13505 lanetype#13517 shape#2154 shape#2166 -dims \ = Jnn#352, Jnn#356, dim#13505, dim#13517, i#72472, i#72479, i#72486, i#72491, i#72498, ishape_1#45, ishape_2#45, lanetype#13505, lanetype#13517, shape#2154, shape#2166 -[visit_exp `VEXTBINOP`_instr{ishape_1#45, ishape_2#45}(`%`_ishape{shape#2154, Jnn#352}(`%X%`_shape{lanetype#13505, dim#13505, i#72479}(`I16`_lanetype, `%`_dim{i#72486}(8))), `%`_ishape{shape#2166, Jnn#356}(`%X%`_shape{lanetype#13517, dim#13517, i#72491}(`I8`_lanetype, `%`_dim{i#72498}(16))), `RELAXED_DOTS`_vextbinop__)] -[visit_exp ishape_1#45] -[visit_id ishape_1#45] -[visit_exp ishape_2#45] -[visit_id ishape_2#45] -[visit_exp (`%`_ishape{shape#2154, Jnn#352}(`%X%`_shape{lanetype#13505, dim#13505, i#72479}(`I16`_lanetype, `%`_dim{i#72486}(8))), `%`_ishape{shape#2166, Jnn#356}(`%X%`_shape{lanetype#13517, dim#13517, i#72491}(`I8`_lanetype, `%`_dim{i#72498}(16))), `RELAXED_DOTS`_vextbinop__)] -[visit_exp `%`_ishape{shape#2154, Jnn#352}(`%X%`_shape{lanetype#13505, dim#13505, i#72479}(`I16`_lanetype, `%`_dim{i#72486}(8)))] -[visit_exp shape#2154] -[visit_id shape#2154] -[visit_exp Jnn#352] -[visit_id Jnn#352] -[visit_exp (`%X%`_shape{lanetype#13505, dim#13505, i#72479}(`I16`_lanetype, `%`_dim{i#72486}(8)))] -[visit_exp `%X%`_shape{lanetype#13505, dim#13505, i#72479}(`I16`_lanetype, `%`_dim{i#72486}(8))] -[visit_exp lanetype#13505] -[visit_id lanetype#13505] -[visit_exp dim#13505] -[visit_id dim#13505] -[visit_exp i#72479] -[visit_id i#72479] -[visit_exp (`I16`_lanetype, `%`_dim{i#72486}(8))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_DOTS`_vextbinop__)] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_DOTS`_vextbinop__)] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#72486}(8)] -[visit_exp i#72486] -[visit_id i#72486] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#2166, Jnn#356}(`%X%`_shape{lanetype#13517, dim#13517, i#72491}(`I8`_lanetype, `%`_dim{i#72498}(16)))] -[visit_exp shape#2166] -[visit_id shape#2166] -[visit_exp Jnn#356] -[visit_id Jnn#356] -[visit_exp (`%X%`_shape{lanetype#13517, dim#13517, i#72491}(`I8`_lanetype, `%`_dim{i#72498}(16)))] -[visit_exp `%X%`_shape{lanetype#13517, dim#13517, i#72491}(`I8`_lanetype, `%`_dim{i#72498}(16))] -[visit_exp lanetype#13517] -[visit_id lanetype#13517] -[visit_exp dim#13517] -[visit_id dim#13517] -[visit_exp i#72491] -[visit_id i#72491] -[visit_exp (`I8`_lanetype, `%`_dim{i#72498}(16))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#72498}(16)] -[visit_exp i#72498] -[visit_id i#72498] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `RELAXED_DOTS`_vextbinop__] [visit_exp ()] -[visit_exp `%`_u32{i#72472}(274)] -[visit_exp i#72472] -[visit_id i#72472] +[visit_exp `%`_u32(274)] [visit_exp (274)] [visit_exp 274] ps' = [check_dims] -[check_dims] Jnn#360 Jnn#364 dim#13740 dim#13752 i#72852 i#72859 i#72866 i#72871 i#72878 ishape_1#47 ishape_2#47 lanetype#13740 lanetype#13752 shape#2269 shape#2281 sx#13093 -dims \ = Jnn#360, Jnn#364, dim#13740, dim#13752, i#72852, i#72859, i#72866, i#72871, i#72878, ishape_1#47, ishape_2#47, lanetype#13740, lanetype#13752, shape#2269, shape#2281, sx#13093 -[visit_exp `VEXTUNOP`_instr{ishape_1#47, ishape_2#47}(`%`_ishape{shape#2269, Jnn#360}(`%X%`_shape{lanetype#13740, dim#13740, i#72859}(`I32`_lanetype, `%`_dim{i#72866}(4))), `%`_ishape{shape#2281, Jnn#364}(`%X%`_shape{lanetype#13752, dim#13752, i#72871}(`I16`_lanetype, `%`_dim{i#72878}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#13093}(`S`_sx))] -[visit_exp ishape_1#47] -[visit_id ishape_1#47] -[visit_exp ishape_2#47] -[visit_id ishape_2#47] -[visit_exp (`%`_ishape{shape#2269, Jnn#360}(`%X%`_shape{lanetype#13740, dim#13740, i#72859}(`I32`_lanetype, `%`_dim{i#72866}(4))), `%`_ishape{shape#2281, Jnn#364}(`%X%`_shape{lanetype#13752, dim#13752, i#72871}(`I16`_lanetype, `%`_dim{i#72878}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#13093}(`S`_sx))] -[visit_exp `%`_ishape{shape#2269, Jnn#360}(`%X%`_shape{lanetype#13740, dim#13740, i#72859}(`I32`_lanetype, `%`_dim{i#72866}(4)))] -[visit_exp shape#2269] -[visit_id shape#2269] -[visit_exp Jnn#360] -[visit_id Jnn#360] -[visit_exp (`%X%`_shape{lanetype#13740, dim#13740, i#72859}(`I32`_lanetype, `%`_dim{i#72866}(4)))] -[visit_exp `%X%`_shape{lanetype#13740, dim#13740, i#72859}(`I32`_lanetype, `%`_dim{i#72866}(4))] -[visit_exp lanetype#13740] -[visit_id lanetype#13740] -[visit_exp dim#13740] -[visit_id dim#13740] -[visit_exp i#72859] -[visit_id i#72859] -[visit_exp (`I32`_lanetype, `%`_dim{i#72866}(4))] +[check_dims] +dims \ = +[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#72866}(4)] -[visit_exp i#72866] -[visit_id i#72866] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#2281, Jnn#364}(`%X%`_shape{lanetype#13752, dim#13752, i#72871}(`I16`_lanetype, `%`_dim{i#72878}(8)))] -[visit_exp shape#2281] -[visit_id shape#2281] -[visit_exp Jnn#364] -[visit_id Jnn#364] -[visit_exp (`%X%`_shape{lanetype#13752, dim#13752, i#72871}(`I16`_lanetype, `%`_dim{i#72878}(8)))] -[visit_exp `%X%`_shape{lanetype#13752, dim#13752, i#72871}(`I16`_lanetype, `%`_dim{i#72878}(8))] -[visit_exp lanetype#13752] -[visit_id lanetype#13752] -[visit_exp dim#13752] -[visit_id dim#13752] -[visit_exp i#72871] -[visit_id i#72871] -[visit_exp (`I16`_lanetype, `%`_dim{i#72878}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#72878}(8)] -[visit_exp i#72878] -[visit_id i#72878] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#13093}(`S`_sx)] -[visit_exp sx#13093] -[visit_id sx#13093] +[visit_exp `EXTADD_PAIRWISE`_vextunop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#72852}(126)] -[visit_exp i#72852] -[visit_id i#72852] +[visit_exp `%`_u32(126)] [visit_exp (126)] [visit_exp 126] -[check_dims] Jnn#368 Jnn#372 dim#13975 dim#13987 i#73232 i#73239 i#73246 i#73251 i#73258 ishape_1#49 ishape_2#49 lanetype#13975 lanetype#13987 shape#2384 shape#2396 sx#13127 -dims \ = Jnn#368, Jnn#372, dim#13975, dim#13987, i#73232, i#73239, i#73246, i#73251, i#73258, ishape_1#49, ishape_2#49, lanetype#13975, lanetype#13987, shape#2384, shape#2396, sx#13127 -[visit_exp `VEXTUNOP`_instr{ishape_1#49, ishape_2#49}(`%`_ishape{shape#2384, Jnn#368}(`%X%`_shape{lanetype#13975, dim#13975, i#73239}(`I32`_lanetype, `%`_dim{i#73246}(4))), `%`_ishape{shape#2396, Jnn#372}(`%X%`_shape{lanetype#13987, dim#13987, i#73251}(`I16`_lanetype, `%`_dim{i#73258}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#13127}(`U`_sx))] -[visit_exp ishape_1#49] -[visit_id ishape_1#49] -[visit_exp ishape_2#49] -[visit_id ishape_2#49] -[visit_exp (`%`_ishape{shape#2384, Jnn#368}(`%X%`_shape{lanetype#13975, dim#13975, i#73239}(`I32`_lanetype, `%`_dim{i#73246}(4))), `%`_ishape{shape#2396, Jnn#372}(`%X%`_shape{lanetype#13987, dim#13987, i#73251}(`I16`_lanetype, `%`_dim{i#73258}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#13127}(`U`_sx))] -[visit_exp `%`_ishape{shape#2384, Jnn#368}(`%X%`_shape{lanetype#13975, dim#13975, i#73239}(`I32`_lanetype, `%`_dim{i#73246}(4)))] -[visit_exp shape#2384] -[visit_id shape#2384] -[visit_exp Jnn#368] -[visit_id Jnn#368] -[visit_exp (`%X%`_shape{lanetype#13975, dim#13975, i#73239}(`I32`_lanetype, `%`_dim{i#73246}(4)))] -[visit_exp `%X%`_shape{lanetype#13975, dim#13975, i#73239}(`I32`_lanetype, `%`_dim{i#73246}(4))] -[visit_exp lanetype#13975] -[visit_id lanetype#13975] -[visit_exp dim#13975] -[visit_id dim#13975] -[visit_exp i#73239] -[visit_id i#73239] -[visit_exp (`I32`_lanetype, `%`_dim{i#73246}(4))] +[check_dims] +dims \ = +[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#73246}(4)] -[visit_exp i#73246] -[visit_id i#73246] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#2396, Jnn#372}(`%X%`_shape{lanetype#13987, dim#13987, i#73251}(`I16`_lanetype, `%`_dim{i#73258}(8)))] -[visit_exp shape#2396] -[visit_id shape#2396] -[visit_exp Jnn#372] -[visit_id Jnn#372] -[visit_exp (`%X%`_shape{lanetype#13987, dim#13987, i#73251}(`I16`_lanetype, `%`_dim{i#73258}(8)))] -[visit_exp `%X%`_shape{lanetype#13987, dim#13987, i#73251}(`I16`_lanetype, `%`_dim{i#73258}(8))] -[visit_exp lanetype#13987] -[visit_id lanetype#13987] -[visit_exp dim#13987] -[visit_id dim#13987] -[visit_exp i#73251] -[visit_id i#73251] -[visit_exp (`I16`_lanetype, `%`_dim{i#73258}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#73258}(8)] -[visit_exp i#73258] -[visit_id i#73258] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#13127}(`U`_sx)] -[visit_exp sx#13127] -[visit_id sx#13127] +[visit_exp `EXTADD_PAIRWISE`_vextunop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#73232}(127)] -[visit_exp i#73232] -[visit_id i#73232] +[visit_exp `%`_u32(127)] [visit_exp (127)] [visit_exp 127] ps' = [check_dims] -[check_dims] dim#14210 i#73612 i#73619 i#73626 lanetype#14210 shape#2489 -dims \ = dim#14210, i#73612, i#73619, i#73626, lanetype#14210, shape#2489 -[visit_exp `VUNOP`_instr{shape#2489}(`%X%`_shape{lanetype#14210, dim#14210, i#73619}(`I32`_lanetype, `%`_dim{i#73626}(4)), `ABS`_vunop_)] -[visit_exp shape#2489] -[visit_id shape#2489] -[visit_exp (`%X%`_shape{lanetype#14210, dim#14210, i#73619}(`I32`_lanetype, `%`_dim{i#73626}(4)), `ABS`_vunop_)] -[visit_exp `%X%`_shape{lanetype#14210, dim#14210, i#73619}(`I32`_lanetype, `%`_dim{i#73626}(4))] -[visit_exp lanetype#14210] -[visit_id lanetype#14210] -[visit_exp dim#14210] -[visit_id dim#14210] -[visit_exp i#73619] -[visit_id i#73619] -[visit_exp (`I32`_lanetype, `%`_dim{i#73626}(4))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#73626}(4)] -[visit_exp i#73626] -[visit_id i#73626] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `ABS`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#73612}(160)] -[visit_exp i#73612] -[visit_id i#73612] +[visit_exp `%`_u32(160)] [visit_exp (160)] [visit_exp 160] -[check_dims] dim#14237 i#73694 i#73701 i#73708 lanetype#14237 shape#2491 -dims \ = dim#14237, i#73694, i#73701, i#73708, lanetype#14237, shape#2491 -[visit_exp `VUNOP`_instr{shape#2491}(`%X%`_shape{lanetype#14237, dim#14237, i#73701}(`I32`_lanetype, `%`_dim{i#73708}(4)), `NEG`_vunop_)] -[visit_exp shape#2491] -[visit_id shape#2491] -[visit_exp (`%X%`_shape{lanetype#14237, dim#14237, i#73701}(`I32`_lanetype, `%`_dim{i#73708}(4)), `NEG`_vunop_)] -[visit_exp `%X%`_shape{lanetype#14237, dim#14237, i#73701}(`I32`_lanetype, `%`_dim{i#73708}(4))] -[visit_exp lanetype#14237] -[visit_id lanetype#14237] -[visit_exp dim#14237] -[visit_id dim#14237] -[visit_exp i#73701] -[visit_id i#73701] -[visit_exp (`I32`_lanetype, `%`_dim{i#73708}(4))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#73708}(4)] -[visit_exp i#73708] -[visit_id i#73708] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `NEG`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#73694}(161)] -[visit_exp i#73694] -[visit_id i#73694] +[visit_exp `%`_u32(161)] [visit_exp (161)] [visit_exp 161] ps' = [check_dims] -[check_dims] dim#14264 i#73776 i#73783 i#73790 lanetype#14264 shape#2493 -dims \ = dim#14264, i#73776, i#73783, i#73790, lanetype#14264, shape#2493 -[visit_exp `VTESTOP`_instr{shape#2493}(`%X%`_shape{lanetype#14264, dim#14264, i#73783}(`I32`_lanetype, `%`_dim{i#73790}(4)), `ALL_TRUE`_vtestop_)] -[visit_exp shape#2493] -[visit_id shape#2493] -[visit_exp (`%X%`_shape{lanetype#14264, dim#14264, i#73783}(`I32`_lanetype, `%`_dim{i#73790}(4)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape{lanetype#14264, dim#14264, i#73783}(`I32`_lanetype, `%`_dim{i#73790}(4))] -[visit_exp lanetype#14264] -[visit_id lanetype#14264] -[visit_exp dim#14264] -[visit_id dim#14264] -[visit_exp i#73783] -[visit_id i#73783] -[visit_exp (`I32`_lanetype, `%`_dim{i#73790}(4))] +[check_dims] +dims \ = +[visit_exp `VTESTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ALL_TRUE`_vtestop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#73790}(4)] -[visit_exp i#73790] -[visit_id i#73790] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `ALL_TRUE`_vtestop_] [visit_exp ()] -[visit_exp `%`_u32{i#73776}(163)] -[visit_exp i#73776] -[visit_id i#73776] +[visit_exp `%`_u32(163)] [visit_exp (163)] [visit_exp 163] ps' = [check_dims] -[check_dims] Jnn#376 dim#14291 i#73858 i#73865 i#73872 ishape#29 lanetype#14291 shape#2505 -dims \ = Jnn#376, dim#14291, i#73858, i#73865, i#73872, ishape#29, lanetype#14291, shape#2505 -[visit_exp `VBITMASK`_instr{ishape#29}(`%`_ishape{shape#2505, Jnn#376}(`%X%`_shape{lanetype#14291, dim#14291, i#73865}(`I32`_lanetype, `%`_dim{i#73872}(4))))] -[visit_exp ishape#29] -[visit_id ishape#29] -[visit_exp (`%`_ishape{shape#2505, Jnn#376}(`%X%`_shape{lanetype#14291, dim#14291, i#73865}(`I32`_lanetype, `%`_dim{i#73872}(4))))] -[visit_exp `%`_ishape{shape#2505, Jnn#376}(`%X%`_shape{lanetype#14291, dim#14291, i#73865}(`I32`_lanetype, `%`_dim{i#73872}(4)))] -[visit_exp shape#2505] -[visit_id shape#2505] -[visit_exp Jnn#376] -[visit_id Jnn#376] -[visit_exp (`%X%`_shape{lanetype#14291, dim#14291, i#73865}(`I32`_lanetype, `%`_dim{i#73872}(4)))] -[visit_exp `%X%`_shape{lanetype#14291, dim#14291, i#73865}(`I32`_lanetype, `%`_dim{i#73872}(4))] -[visit_exp lanetype#14291] -[visit_id lanetype#14291] -[visit_exp dim#14291] -[visit_id dim#14291] -[visit_exp i#73865] -[visit_id i#73865] -[visit_exp (`I32`_lanetype, `%`_dim{i#73872}(4))] +[check_dims] +dims \ = +[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#73872}(4)] -[visit_exp i#73872] -[visit_id i#73872] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_u32{i#73858}(164)] -[visit_exp i#73858] -[visit_id i#73858] +[visit_exp `%`_u32(164)] [visit_exp (164)] [visit_exp 164] ps' = [check_dims] -[check_dims] dim#14303 dim#14315 half#358 i#73895 i#73902 i#73909 i#73914 i#73921 lanetype#14303 lanetype#14315 shape_1#15 shape_2#15 sx#13161 -dims \ = dim#14303, dim#14315, half#358, i#73895, i#73902, i#73909, i#73914, i#73921, lanetype#14303, lanetype#14315, shape_1#15, shape_2#15, sx#13161 -[visit_exp `VCVTOP`_instr{shape_1#15, shape_2#15}(`%X%`_shape{lanetype#14303, dim#14303, i#73902}(`I32`_lanetype, `%`_dim{i#73909}(4)), `%X%`_shape{lanetype#14315, dim#14315, i#73914}(`I16`_lanetype, `%`_dim{i#73921}(8)), `EXTEND`_vcvtop__{half#358, sx#13161}(`LOW`_half, `S`_sx))] -[visit_exp shape_1#15] -[visit_id shape_1#15] -[visit_exp shape_2#15] -[visit_id shape_2#15] -[visit_exp (`%X%`_shape{lanetype#14303, dim#14303, i#73902}(`I32`_lanetype, `%`_dim{i#73909}(4)), `%X%`_shape{lanetype#14315, dim#14315, i#73914}(`I16`_lanetype, `%`_dim{i#73921}(8)), `EXTEND`_vcvtop__{half#358, sx#13161}(`LOW`_half, `S`_sx))] -[visit_exp `%X%`_shape{lanetype#14303, dim#14303, i#73902}(`I32`_lanetype, `%`_dim{i#73909}(4))] -[visit_exp lanetype#14303] -[visit_id lanetype#14303] -[visit_exp dim#14303] -[visit_id dim#14303] -[visit_exp i#73902] -[visit_id i#73902] -[visit_exp (`I32`_lanetype, `%`_dim{i#73909}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#73909}(4)] -[visit_exp i#73909] -[visit_id i#73909] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#14315, dim#14315, i#73914}(`I16`_lanetype, `%`_dim{i#73921}(8))] -[visit_exp lanetype#14315] -[visit_id lanetype#14315] -[visit_exp dim#14315] -[visit_id dim#14315] -[visit_exp i#73914] -[visit_id i#73914] -[visit_exp (`I16`_lanetype, `%`_dim{i#73921}(8))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#73921}(8)] -[visit_exp i#73921] -[visit_id i#73921] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTEND`_vcvtop__{half#358, sx#13161}(`LOW`_half, `S`_sx)] -[visit_exp half#358] -[visit_id half#358] -[visit_exp sx#13161] -[visit_id sx#13161] +[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)] [visit_exp (`LOW`_half, `S`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#73895}(167)] -[visit_exp i#73895] -[visit_id i#73895] +[visit_exp `%`_u32(167)] [visit_exp (167)] [visit_exp 167] -[check_dims] dim#14418 dim#14430 half#392 i#74155 i#74162 i#74169 i#74174 i#74181 lanetype#14418 lanetype#14430 shape_1#17 shape_2#17 sx#13195 -dims \ = dim#14418, dim#14430, half#392, i#74155, i#74162, i#74169, i#74174, i#74181, lanetype#14418, lanetype#14430, shape_1#17, shape_2#17, sx#13195 -[visit_exp `VCVTOP`_instr{shape_1#17, shape_2#17}(`%X%`_shape{lanetype#14418, dim#14418, i#74162}(`I32`_lanetype, `%`_dim{i#74169}(4)), `%X%`_shape{lanetype#14430, dim#14430, i#74174}(`I16`_lanetype, `%`_dim{i#74181}(8)), `EXTEND`_vcvtop__{half#392, sx#13195}(`HIGH`_half, `S`_sx))] -[visit_exp shape_1#17] -[visit_id shape_1#17] -[visit_exp shape_2#17] -[visit_id shape_2#17] -[visit_exp (`%X%`_shape{lanetype#14418, dim#14418, i#74162}(`I32`_lanetype, `%`_dim{i#74169}(4)), `%X%`_shape{lanetype#14430, dim#14430, i#74174}(`I16`_lanetype, `%`_dim{i#74181}(8)), `EXTEND`_vcvtop__{half#392, sx#13195}(`HIGH`_half, `S`_sx))] -[visit_exp `%X%`_shape{lanetype#14418, dim#14418, i#74162}(`I32`_lanetype, `%`_dim{i#74169}(4))] -[visit_exp lanetype#14418] -[visit_id lanetype#14418] -[visit_exp dim#14418] -[visit_id dim#14418] -[visit_exp i#74162] -[visit_id i#74162] -[visit_exp (`I32`_lanetype, `%`_dim{i#74169}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#74169}(4)] -[visit_exp i#74169] -[visit_id i#74169] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#14430, dim#14430, i#74174}(`I16`_lanetype, `%`_dim{i#74181}(8))] -[visit_exp lanetype#14430] -[visit_id lanetype#14430] -[visit_exp dim#14430] -[visit_id dim#14430] -[visit_exp i#74174] -[visit_id i#74174] -[visit_exp (`I16`_lanetype, `%`_dim{i#74181}(8))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#74181}(8)] -[visit_exp i#74181] -[visit_id i#74181] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTEND`_vcvtop__{half#392, sx#13195}(`HIGH`_half, `S`_sx)] -[visit_exp half#392] -[visit_id half#392] -[visit_exp sx#13195] -[visit_id sx#13195] +[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)] [visit_exp (`HIGH`_half, `S`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#74155}(168)] -[visit_exp i#74155] -[visit_id i#74155] +[visit_exp `%`_u32(168)] [visit_exp (168)] [visit_exp 168] -[check_dims] dim#14533 dim#14545 half#426 i#74415 i#74422 i#74429 i#74434 i#74441 lanetype#14533 lanetype#14545 shape_1#19 shape_2#19 sx#13229 -dims \ = dim#14533, dim#14545, half#426, i#74415, i#74422, i#74429, i#74434, i#74441, lanetype#14533, lanetype#14545, shape_1#19, shape_2#19, sx#13229 -[visit_exp `VCVTOP`_instr{shape_1#19, shape_2#19}(`%X%`_shape{lanetype#14533, dim#14533, i#74422}(`I32`_lanetype, `%`_dim{i#74429}(4)), `%X%`_shape{lanetype#14545, dim#14545, i#74434}(`I16`_lanetype, `%`_dim{i#74441}(8)), `EXTEND`_vcvtop__{half#426, sx#13229}(`LOW`_half, `U`_sx))] -[visit_exp shape_1#19] -[visit_id shape_1#19] -[visit_exp shape_2#19] -[visit_id shape_2#19] -[visit_exp (`%X%`_shape{lanetype#14533, dim#14533, i#74422}(`I32`_lanetype, `%`_dim{i#74429}(4)), `%X%`_shape{lanetype#14545, dim#14545, i#74434}(`I16`_lanetype, `%`_dim{i#74441}(8)), `EXTEND`_vcvtop__{half#426, sx#13229}(`LOW`_half, `U`_sx))] -[visit_exp `%X%`_shape{lanetype#14533, dim#14533, i#74422}(`I32`_lanetype, `%`_dim{i#74429}(4))] -[visit_exp lanetype#14533] -[visit_id lanetype#14533] -[visit_exp dim#14533] -[visit_id dim#14533] -[visit_exp i#74422] -[visit_id i#74422] -[visit_exp (`I32`_lanetype, `%`_dim{i#74429}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#74429}(4)] -[visit_exp i#74429] -[visit_id i#74429] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#14545, dim#14545, i#74434}(`I16`_lanetype, `%`_dim{i#74441}(8))] -[visit_exp lanetype#14545] -[visit_id lanetype#14545] -[visit_exp dim#14545] -[visit_id dim#14545] -[visit_exp i#74434] -[visit_id i#74434] -[visit_exp (`I16`_lanetype, `%`_dim{i#74441}(8))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#74441}(8)] -[visit_exp i#74441] -[visit_id i#74441] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTEND`_vcvtop__{half#426, sx#13229}(`LOW`_half, `U`_sx)] -[visit_exp half#426] -[visit_id half#426] -[visit_exp sx#13229] -[visit_id sx#13229] +[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)] [visit_exp (`LOW`_half, `U`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#74415}(169)] -[visit_exp i#74415] -[visit_id i#74415] +[visit_exp `%`_u32(169)] [visit_exp (169)] [visit_exp 169] -[check_dims] dim#14648 dim#14660 half#460 i#74675 i#74682 i#74689 i#74694 i#74701 lanetype#14648 lanetype#14660 shape_1#21 shape_2#21 sx#13263 -dims \ = dim#14648, dim#14660, half#460, i#74675, i#74682, i#74689, i#74694, i#74701, lanetype#14648, lanetype#14660, shape_1#21, shape_2#21, sx#13263 -[visit_exp `VCVTOP`_instr{shape_1#21, shape_2#21}(`%X%`_shape{lanetype#14648, dim#14648, i#74682}(`I32`_lanetype, `%`_dim{i#74689}(4)), `%X%`_shape{lanetype#14660, dim#14660, i#74694}(`I16`_lanetype, `%`_dim{i#74701}(8)), `EXTEND`_vcvtop__{half#460, sx#13263}(`HIGH`_half, `U`_sx))] -[visit_exp shape_1#21] -[visit_id shape_1#21] -[visit_exp shape_2#21] -[visit_id shape_2#21] -[visit_exp (`%X%`_shape{lanetype#14648, dim#14648, i#74682}(`I32`_lanetype, `%`_dim{i#74689}(4)), `%X%`_shape{lanetype#14660, dim#14660, i#74694}(`I16`_lanetype, `%`_dim{i#74701}(8)), `EXTEND`_vcvtop__{half#460, sx#13263}(`HIGH`_half, `U`_sx))] -[visit_exp `%X%`_shape{lanetype#14648, dim#14648, i#74682}(`I32`_lanetype, `%`_dim{i#74689}(4))] -[visit_exp lanetype#14648] -[visit_id lanetype#14648] -[visit_exp dim#14648] -[visit_id dim#14648] -[visit_exp i#74682] -[visit_id i#74682] -[visit_exp (`I32`_lanetype, `%`_dim{i#74689}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#74689}(4)] -[visit_exp i#74689] -[visit_id i#74689] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#14660, dim#14660, i#74694}(`I16`_lanetype, `%`_dim{i#74701}(8))] -[visit_exp lanetype#14660] -[visit_id lanetype#14660] -[visit_exp dim#14660] -[visit_id dim#14660] -[visit_exp i#74694] -[visit_id i#74694] -[visit_exp (`I16`_lanetype, `%`_dim{i#74701}(8))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#74701}(8)] -[visit_exp i#74701] -[visit_id i#74701] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTEND`_vcvtop__{half#460, sx#13263}(`HIGH`_half, `U`_sx)] -[visit_exp half#460] -[visit_id half#460] -[visit_exp sx#13263] -[visit_id sx#13263] +[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)] [visit_exp (`HIGH`_half, `U`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#74675}(170)] -[visit_exp i#74675] -[visit_id i#74675] +[visit_exp `%`_u32(170)] [visit_exp (170)] [visit_exp 170] ps' = [check_dims] -[check_dims] Jnn#380 dim#14763 i#74935 i#74942 i#74949 ishape#31 lanetype#14763 shape#2517 -dims \ = Jnn#380, dim#14763, i#74935, i#74942, i#74949, ishape#31, lanetype#14763, shape#2517 -[visit_exp `VSHIFTOP`_instr{ishape#31}(`%`_ishape{shape#2517, Jnn#380}(`%X%`_shape{lanetype#14763, dim#14763, i#74942}(`I32`_lanetype, `%`_dim{i#74949}(4))), `SHL`_vshiftop_)] -[visit_exp ishape#31] -[visit_id ishape#31] -[visit_exp (`%`_ishape{shape#2517, Jnn#380}(`%X%`_shape{lanetype#14763, dim#14763, i#74942}(`I32`_lanetype, `%`_dim{i#74949}(4))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape{shape#2517, Jnn#380}(`%X%`_shape{lanetype#14763, dim#14763, i#74942}(`I32`_lanetype, `%`_dim{i#74949}(4)))] -[visit_exp shape#2517] -[visit_id shape#2517] -[visit_exp Jnn#380] -[visit_id Jnn#380] -[visit_exp (`%X%`_shape{lanetype#14763, dim#14763, i#74942}(`I32`_lanetype, `%`_dim{i#74949}(4)))] -[visit_exp `%X%`_shape{lanetype#14763, dim#14763, i#74942}(`I32`_lanetype, `%`_dim{i#74949}(4))] -[visit_exp lanetype#14763] -[visit_id lanetype#14763] -[visit_exp dim#14763] -[visit_id dim#14763] -[visit_exp i#74942] -[visit_id i#74942] -[visit_exp (`I32`_lanetype, `%`_dim{i#74949}(4))] +[check_dims] +dims \ = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHL`_vshiftop_)] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#74949}(4)] -[visit_exp i#74949] -[visit_id i#74949] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `SHL`_vshiftop_] [visit_exp ()] -[visit_exp `%`_u32{i#74935}(171)] -[visit_exp i#74935] -[visit_id i#74935] +[visit_exp `%`_u32(171)] [visit_exp (171)] [visit_exp 171] -[check_dims] Jnn#384 dim#14820 i#75047 i#75054 i#75061 ishape#33 lanetype#14820 shape#2544 sx#13297 -dims \ = Jnn#384, dim#14820, i#75047, i#75054, i#75061, ishape#33, lanetype#14820, shape#2544, sx#13297 -[visit_exp `VSHIFTOP`_instr{ishape#33}(`%`_ishape{shape#2544, Jnn#384}(`%X%`_shape{lanetype#14820, dim#14820, i#75054}(`I32`_lanetype, `%`_dim{i#75061}(4))), `SHR`_vshiftop_{sx#13297}(`S`_sx))] -[visit_exp ishape#33] -[visit_id ishape#33] -[visit_exp (`%`_ishape{shape#2544, Jnn#384}(`%X%`_shape{lanetype#14820, dim#14820, i#75054}(`I32`_lanetype, `%`_dim{i#75061}(4))), `SHR`_vshiftop_{sx#13297}(`S`_sx))] -[visit_exp `%`_ishape{shape#2544, Jnn#384}(`%X%`_shape{lanetype#14820, dim#14820, i#75054}(`I32`_lanetype, `%`_dim{i#75061}(4)))] -[visit_exp shape#2544] -[visit_id shape#2544] -[visit_exp Jnn#384] -[visit_id Jnn#384] -[visit_exp (`%X%`_shape{lanetype#14820, dim#14820, i#75054}(`I32`_lanetype, `%`_dim{i#75061}(4)))] -[visit_exp `%X%`_shape{lanetype#14820, dim#14820, i#75054}(`I32`_lanetype, `%`_dim{i#75061}(4))] -[visit_exp lanetype#14820] -[visit_id lanetype#14820] -[visit_exp dim#14820] -[visit_id dim#14820] -[visit_exp i#75054] -[visit_id i#75054] -[visit_exp (`I32`_lanetype, `%`_dim{i#75061}(4))] +[check_dims] +dims \ = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#75061}(4)] -[visit_exp i#75061] -[visit_id i#75061] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `SHR`_vshiftop_{sx#13297}(`S`_sx)] -[visit_exp sx#13297] -[visit_id sx#13297] +[visit_exp `SHR`_vshiftop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#75047}(172)] -[visit_exp i#75047] -[visit_id i#75047] +[visit_exp `%`_u32(172)] [visit_exp (172)] [visit_exp 172] -[check_dims] Jnn#388 dim#14883 i#75169 i#75176 i#75183 ishape#35 lanetype#14883 shape#2573 sx#13316 -dims \ = Jnn#388, dim#14883, i#75169, i#75176, i#75183, ishape#35, lanetype#14883, shape#2573, sx#13316 -[visit_exp `VSHIFTOP`_instr{ishape#35}(`%`_ishape{shape#2573, Jnn#388}(`%X%`_shape{lanetype#14883, dim#14883, i#75176}(`I32`_lanetype, `%`_dim{i#75183}(4))), `SHR`_vshiftop_{sx#13316}(`U`_sx))] -[visit_exp ishape#35] -[visit_id ishape#35] -[visit_exp (`%`_ishape{shape#2573, Jnn#388}(`%X%`_shape{lanetype#14883, dim#14883, i#75176}(`I32`_lanetype, `%`_dim{i#75183}(4))), `SHR`_vshiftop_{sx#13316}(`U`_sx))] -[visit_exp `%`_ishape{shape#2573, Jnn#388}(`%X%`_shape{lanetype#14883, dim#14883, i#75176}(`I32`_lanetype, `%`_dim{i#75183}(4)))] -[visit_exp shape#2573] -[visit_id shape#2573] -[visit_exp Jnn#388] -[visit_id Jnn#388] -[visit_exp (`%X%`_shape{lanetype#14883, dim#14883, i#75176}(`I32`_lanetype, `%`_dim{i#75183}(4)))] -[visit_exp `%X%`_shape{lanetype#14883, dim#14883, i#75176}(`I32`_lanetype, `%`_dim{i#75183}(4))] -[visit_exp lanetype#14883] -[visit_id lanetype#14883] -[visit_exp dim#14883] -[visit_id dim#14883] -[visit_exp i#75176] -[visit_id i#75176] -[visit_exp (`I32`_lanetype, `%`_dim{i#75183}(4))] +[check_dims] +dims \ = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#75183}(4)] -[visit_exp i#75183] -[visit_id i#75183] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `SHR`_vshiftop_{sx#13316}(`U`_sx)] -[visit_exp sx#13316] -[visit_id sx#13316] +[visit_exp `SHR`_vshiftop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#75169}(173)] -[visit_exp i#75169] -[visit_id i#75169] +[visit_exp `%`_u32(173)] [visit_exp (173)] [visit_exp 173] ps' = [check_dims] -[check_dims] dim#14946 i#75291 i#75298 i#75305 lanetype#14946 shape#2592 -dims \ = dim#14946, i#75291, i#75298, i#75305, lanetype#14946, shape#2592 -[visit_exp `VBINOP`_instr{shape#2592}(`%X%`_shape{lanetype#14946, dim#14946, i#75298}(`I32`_lanetype, `%`_dim{i#75305}(4)), `ADD`_vbinop_)] -[visit_exp shape#2592] -[visit_id shape#2592] -[visit_exp (`%X%`_shape{lanetype#14946, dim#14946, i#75298}(`I32`_lanetype, `%`_dim{i#75305}(4)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#14946, dim#14946, i#75298}(`I32`_lanetype, `%`_dim{i#75305}(4))] -[visit_exp lanetype#14946] -[visit_id lanetype#14946] -[visit_exp dim#14946] -[visit_id dim#14946] -[visit_exp i#75298] -[visit_id i#75298] -[visit_exp (`I32`_lanetype, `%`_dim{i#75305}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#75305}(4)] -[visit_exp i#75305] -[visit_id i#75305] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `ADD`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#75291}(174)] -[visit_exp i#75291] -[visit_id i#75291] +[visit_exp `%`_u32(174)] [visit_exp (174)] [visit_exp 174] -[check_dims] dim#14973 i#75373 i#75380 i#75387 lanetype#14973 shape#2594 -dims \ = dim#14973, i#75373, i#75380, i#75387, lanetype#14973, shape#2594 -[visit_exp `VBINOP`_instr{shape#2594}(`%X%`_shape{lanetype#14973, dim#14973, i#75380}(`I32`_lanetype, `%`_dim{i#75387}(4)), `SUB`_vbinop_)] -[visit_exp shape#2594] -[visit_id shape#2594] -[visit_exp (`%X%`_shape{lanetype#14973, dim#14973, i#75380}(`I32`_lanetype, `%`_dim{i#75387}(4)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#14973, dim#14973, i#75380}(`I32`_lanetype, `%`_dim{i#75387}(4))] -[visit_exp lanetype#14973] -[visit_id lanetype#14973] -[visit_exp dim#14973] -[visit_id dim#14973] -[visit_exp i#75380] -[visit_id i#75380] -[visit_exp (`I32`_lanetype, `%`_dim{i#75387}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#75387}(4)] -[visit_exp i#75387] -[visit_id i#75387] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `SUB`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#75373}(177)] -[visit_exp i#75373] -[visit_id i#75373] +[visit_exp `%`_u32(177)] [visit_exp (177)] [visit_exp 177] -[check_dims] dim#15000 i#75455 i#75462 i#75469 lanetype#15000 shape#2596 -dims \ = dim#15000, i#75455, i#75462, i#75469, lanetype#15000, shape#2596 -[visit_exp `VBINOP`_instr{shape#2596}(`%X%`_shape{lanetype#15000, dim#15000, i#75462}(`I32`_lanetype, `%`_dim{i#75469}(4)), `MUL`_vbinop_)] -[visit_exp shape#2596] -[visit_id shape#2596] -[visit_exp (`%X%`_shape{lanetype#15000, dim#15000, i#75462}(`I32`_lanetype, `%`_dim{i#75469}(4)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#15000, dim#15000, i#75462}(`I32`_lanetype, `%`_dim{i#75469}(4))] -[visit_exp lanetype#15000] -[visit_id lanetype#15000] -[visit_exp dim#15000] -[visit_id dim#15000] -[visit_exp i#75462] -[visit_id i#75462] -[visit_exp (`I32`_lanetype, `%`_dim{i#75469}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#75469}(4)] -[visit_exp i#75469] -[visit_id i#75469] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `MUL`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#75455}(181)] -[visit_exp i#75455] -[visit_id i#75455] +[visit_exp `%`_u32(181)] [visit_exp (181)] [visit_exp 181] -[check_dims] dim#15027 i#75537 i#75544 i#75551 lanetype#15027 shape#2598 sx#13620 -dims \ = dim#15027, i#75537, i#75544, i#75551, lanetype#15027, shape#2598, sx#13620 -[visit_exp `VBINOP`_instr{shape#2598}(`%X%`_shape{lanetype#15027, dim#15027, i#75544}(`I32`_lanetype, `%`_dim{i#75551}(4)), `MIN`_vbinop_{sx#13620}(`S`_sx))] -[visit_exp shape#2598] -[visit_id shape#2598] -[visit_exp (`%X%`_shape{lanetype#15027, dim#15027, i#75544}(`I32`_lanetype, `%`_dim{i#75551}(4)), `MIN`_vbinop_{sx#13620}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#15027, dim#15027, i#75544}(`I32`_lanetype, `%`_dim{i#75551}(4))] -[visit_exp lanetype#15027] -[visit_id lanetype#15027] -[visit_exp dim#15027] -[visit_id dim#15027] -[visit_exp i#75544] -[visit_id i#75544] -[visit_exp (`I32`_lanetype, `%`_dim{i#75551}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#75551}(4)] -[visit_exp i#75551] -[visit_id i#75551] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `MIN`_vbinop_{sx#13620}(`S`_sx)] -[visit_exp sx#13620] -[visit_id sx#13620] +[visit_exp `MIN`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#75537}(182)] -[visit_exp i#75537] -[visit_id i#75537] +[visit_exp `%`_u32(182)] [visit_exp (182)] [visit_exp 182] -[check_dims] dim#15069 i#75664 i#75671 i#75678 lanetype#15069 shape#2600 sx#13744 -dims \ = dim#15069, i#75664, i#75671, i#75678, lanetype#15069, shape#2600, sx#13744 -[visit_exp `VBINOP`_instr{shape#2600}(`%X%`_shape{lanetype#15069, dim#15069, i#75671}(`I32`_lanetype, `%`_dim{i#75678}(4)), `MIN`_vbinop_{sx#13744}(`U`_sx))] -[visit_exp shape#2600] -[visit_id shape#2600] -[visit_exp (`%X%`_shape{lanetype#15069, dim#15069, i#75671}(`I32`_lanetype, `%`_dim{i#75678}(4)), `MIN`_vbinop_{sx#13744}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#15069, dim#15069, i#75671}(`I32`_lanetype, `%`_dim{i#75678}(4))] -[visit_exp lanetype#15069] -[visit_id lanetype#15069] -[visit_exp dim#15069] -[visit_id dim#15069] -[visit_exp i#75671] -[visit_id i#75671] -[visit_exp (`I32`_lanetype, `%`_dim{i#75678}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#75678}(4)] -[visit_exp i#75678] -[visit_id i#75678] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `MIN`_vbinop_{sx#13744}(`U`_sx)] -[visit_exp sx#13744] -[visit_id sx#13744] +[visit_exp `MIN`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#75664}(183)] -[visit_exp i#75664] -[visit_id i#75664] +[visit_exp `%`_u32(183)] [visit_exp (183)] [visit_exp 183] -[check_dims] dim#15111 i#75791 i#75798 i#75805 lanetype#15111 shape#2602 sx#13868 -dims \ = dim#15111, i#75791, i#75798, i#75805, lanetype#15111, shape#2602, sx#13868 -[visit_exp `VBINOP`_instr{shape#2602}(`%X%`_shape{lanetype#15111, dim#15111, i#75798}(`I32`_lanetype, `%`_dim{i#75805}(4)), `MAX`_vbinop_{sx#13868}(`S`_sx))] -[visit_exp shape#2602] -[visit_id shape#2602] -[visit_exp (`%X%`_shape{lanetype#15111, dim#15111, i#75798}(`I32`_lanetype, `%`_dim{i#75805}(4)), `MAX`_vbinop_{sx#13868}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#15111, dim#15111, i#75798}(`I32`_lanetype, `%`_dim{i#75805}(4))] -[visit_exp lanetype#15111] -[visit_id lanetype#15111] -[visit_exp dim#15111] -[visit_id dim#15111] -[visit_exp i#75798] -[visit_id i#75798] -[visit_exp (`I32`_lanetype, `%`_dim{i#75805}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#75805}(4)] -[visit_exp i#75805] -[visit_id i#75805] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `MAX`_vbinop_{sx#13868}(`S`_sx)] -[visit_exp sx#13868] -[visit_id sx#13868] +[visit_exp `MAX`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#75791}(184)] -[visit_exp i#75791] -[visit_id i#75791] +[visit_exp `%`_u32(184)] [visit_exp (184)] [visit_exp 184] -[check_dims] dim#15153 i#75918 i#75925 i#75932 lanetype#15153 shape#2604 sx#13992 -dims \ = dim#15153, i#75918, i#75925, i#75932, lanetype#15153, shape#2604, sx#13992 -[visit_exp `VBINOP`_instr{shape#2604}(`%X%`_shape{lanetype#15153, dim#15153, i#75925}(`I32`_lanetype, `%`_dim{i#75932}(4)), `MAX`_vbinop_{sx#13992}(`U`_sx))] -[visit_exp shape#2604] -[visit_id shape#2604] -[visit_exp (`%X%`_shape{lanetype#15153, dim#15153, i#75925}(`I32`_lanetype, `%`_dim{i#75932}(4)), `MAX`_vbinop_{sx#13992}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#15153, dim#15153, i#75925}(`I32`_lanetype, `%`_dim{i#75932}(4))] -[visit_exp lanetype#15153] -[visit_id lanetype#15153] -[visit_exp dim#15153] -[visit_id dim#15153] -[visit_exp i#75925] -[visit_id i#75925] -[visit_exp (`I32`_lanetype, `%`_dim{i#75932}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#75932}(4)] -[visit_exp i#75932] -[visit_id i#75932] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `MAX`_vbinop_{sx#13992}(`U`_sx)] -[visit_exp sx#13992] -[visit_id sx#13992] +[visit_exp `MAX`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#75918}(185)] -[visit_exp i#75918] -[visit_id i#75918] +[visit_exp `%`_u32(185)] [visit_exp (185)] [visit_exp 185] ps' = [check_dims] -[check_dims] Jnn#392 Jnn#396 dim#15195 dim#15207 i#76045 i#76052 i#76059 i#76064 i#76071 ishape_1#51 ishape_2#51 lanetype#15195 lanetype#15207 shape#2616 shape#2628 -dims \ = Jnn#392, Jnn#396, dim#15195, dim#15207, i#76045, i#76052, i#76059, i#76064, i#76071, ishape_1#51, ishape_2#51, lanetype#15195, lanetype#15207, shape#2616, shape#2628 -[visit_exp `VEXTBINOP`_instr{ishape_1#51, ishape_2#51}(`%`_ishape{shape#2616, Jnn#392}(`%X%`_shape{lanetype#15195, dim#15195, i#76052}(`I32`_lanetype, `%`_dim{i#76059}(4))), `%`_ishape{shape#2628, Jnn#396}(`%X%`_shape{lanetype#15207, dim#15207, i#76064}(`I16`_lanetype, `%`_dim{i#76071}(8))), `DOTS`_vextbinop__)] -[visit_exp ishape_1#51] -[visit_id ishape_1#51] -[visit_exp ishape_2#51] -[visit_id ishape_2#51] -[visit_exp (`%`_ishape{shape#2616, Jnn#392}(`%X%`_shape{lanetype#15195, dim#15195, i#76052}(`I32`_lanetype, `%`_dim{i#76059}(4))), `%`_ishape{shape#2628, Jnn#396}(`%X%`_shape{lanetype#15207, dim#15207, i#76064}(`I16`_lanetype, `%`_dim{i#76071}(8))), `DOTS`_vextbinop__)] -[visit_exp `%`_ishape{shape#2616, Jnn#392}(`%X%`_shape{lanetype#15195, dim#15195, i#76052}(`I32`_lanetype, `%`_dim{i#76059}(4)))] -[visit_exp shape#2616] -[visit_id shape#2616] -[visit_exp Jnn#392] -[visit_id Jnn#392] -[visit_exp (`%X%`_shape{lanetype#15195, dim#15195, i#76052}(`I32`_lanetype, `%`_dim{i#76059}(4)))] -[visit_exp `%X%`_shape{lanetype#15195, dim#15195, i#76052}(`I32`_lanetype, `%`_dim{i#76059}(4))] -[visit_exp lanetype#15195] -[visit_id lanetype#15195] -[visit_exp dim#15195] -[visit_id dim#15195] -[visit_exp i#76052] -[visit_id i#76052] -[visit_exp (`I32`_lanetype, `%`_dim{i#76059}(4))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `DOTS`_vextbinop__)] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `DOTS`_vextbinop__)] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#76059}(4)] -[visit_exp i#76059] -[visit_id i#76059] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#2628, Jnn#396}(`%X%`_shape{lanetype#15207, dim#15207, i#76064}(`I16`_lanetype, `%`_dim{i#76071}(8)))] -[visit_exp shape#2628] -[visit_id shape#2628] -[visit_exp Jnn#396] -[visit_id Jnn#396] -[visit_exp (`%X%`_shape{lanetype#15207, dim#15207, i#76064}(`I16`_lanetype, `%`_dim{i#76071}(8)))] -[visit_exp `%X%`_shape{lanetype#15207, dim#15207, i#76064}(`I16`_lanetype, `%`_dim{i#76071}(8))] -[visit_exp lanetype#15207] -[visit_id lanetype#15207] -[visit_exp dim#15207] -[visit_id dim#15207] -[visit_exp i#76064] -[visit_id i#76064] -[visit_exp (`I16`_lanetype, `%`_dim{i#76071}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#76071}(8)] -[visit_exp i#76071] -[visit_id i#76071] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `DOTS`_vextbinop__] [visit_exp ()] -[visit_exp `%`_u32{i#76045}(186)] -[visit_exp i#76045] -[visit_id i#76045] +[visit_exp `%`_u32(186)] [visit_exp (186)] [visit_exp 186] -[check_dims] Jnn#400 Jnn#404 dim#15430 dim#15442 half#524 i#76425 i#76432 i#76439 i#76444 i#76451 ishape_1#53 ishape_2#53 lanetype#15430 lanetype#15442 shape#2731 shape#2743 sx#14056 -dims \ = Jnn#400, Jnn#404, dim#15430, dim#15442, half#524, i#76425, i#76432, i#76439, i#76444, i#76451, ishape_1#53, ishape_2#53, lanetype#15430, lanetype#15442, shape#2731, shape#2743, sx#14056 -[visit_exp `VEXTBINOP`_instr{ishape_1#53, ishape_2#53}(`%`_ishape{shape#2731, Jnn#400}(`%X%`_shape{lanetype#15430, dim#15430, i#76432}(`I32`_lanetype, `%`_dim{i#76439}(4))), `%`_ishape{shape#2743, Jnn#404}(`%X%`_shape{lanetype#15442, dim#15442, i#76444}(`I16`_lanetype, `%`_dim{i#76451}(8))), `EXTMUL`_vextbinop__{half#524, sx#14056}(`LOW`_half, `S`_sx))] -[visit_exp ishape_1#53] -[visit_id ishape_1#53] -[visit_exp ishape_2#53] -[visit_id ishape_2#53] -[visit_exp (`%`_ishape{shape#2731, Jnn#400}(`%X%`_shape{lanetype#15430, dim#15430, i#76432}(`I32`_lanetype, `%`_dim{i#76439}(4))), `%`_ishape{shape#2743, Jnn#404}(`%X%`_shape{lanetype#15442, dim#15442, i#76444}(`I16`_lanetype, `%`_dim{i#76451}(8))), `EXTMUL`_vextbinop__{half#524, sx#14056}(`LOW`_half, `S`_sx))] -[visit_exp `%`_ishape{shape#2731, Jnn#400}(`%X%`_shape{lanetype#15430, dim#15430, i#76432}(`I32`_lanetype, `%`_dim{i#76439}(4)))] -[visit_exp shape#2731] -[visit_id shape#2731] -[visit_exp Jnn#400] -[visit_id Jnn#400] -[visit_exp (`%X%`_shape{lanetype#15430, dim#15430, i#76432}(`I32`_lanetype, `%`_dim{i#76439}(4)))] -[visit_exp `%X%`_shape{lanetype#15430, dim#15430, i#76432}(`I32`_lanetype, `%`_dim{i#76439}(4))] -[visit_exp lanetype#15430] -[visit_id lanetype#15430] -[visit_exp dim#15430] -[visit_id dim#15430] -[visit_exp i#76432] -[visit_id i#76432] -[visit_exp (`I32`_lanetype, `%`_dim{i#76439}(4))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#76439}(4)] -[visit_exp i#76439] -[visit_id i#76439] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#2743, Jnn#404}(`%X%`_shape{lanetype#15442, dim#15442, i#76444}(`I16`_lanetype, `%`_dim{i#76451}(8)))] -[visit_exp shape#2743] -[visit_id shape#2743] -[visit_exp Jnn#404] -[visit_id Jnn#404] -[visit_exp (`%X%`_shape{lanetype#15442, dim#15442, i#76444}(`I16`_lanetype, `%`_dim{i#76451}(8)))] -[visit_exp `%X%`_shape{lanetype#15442, dim#15442, i#76444}(`I16`_lanetype, `%`_dim{i#76451}(8))] -[visit_exp lanetype#15442] -[visit_id lanetype#15442] -[visit_exp dim#15442] -[visit_id dim#15442] -[visit_exp i#76444] -[visit_id i#76444] -[visit_exp (`I16`_lanetype, `%`_dim{i#76451}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#76451}(8)] -[visit_exp i#76451] -[visit_id i#76451] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__{half#524, sx#14056}(`LOW`_half, `S`_sx)] -[visit_exp half#524] -[visit_id half#524] -[visit_exp sx#14056] -[visit_id sx#14056] +[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)] [visit_exp (`LOW`_half, `S`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#76425}(188)] -[visit_exp i#76425] -[visit_id i#76425] +[visit_exp `%`_u32(188)] [visit_exp (188)] [visit_exp 188] -[check_dims] Jnn#408 Jnn#412 dim#15665 dim#15677 half#558 i#76805 i#76812 i#76819 i#76824 i#76831 ishape_1#55 ishape_2#55 lanetype#15665 lanetype#15677 shape#2846 shape#2858 sx#14090 -dims \ = Jnn#408, Jnn#412, dim#15665, dim#15677, half#558, i#76805, i#76812, i#76819, i#76824, i#76831, ishape_1#55, ishape_2#55, lanetype#15665, lanetype#15677, shape#2846, shape#2858, sx#14090 -[visit_exp `VEXTBINOP`_instr{ishape_1#55, ishape_2#55}(`%`_ishape{shape#2846, Jnn#408}(`%X%`_shape{lanetype#15665, dim#15665, i#76812}(`I32`_lanetype, `%`_dim{i#76819}(4))), `%`_ishape{shape#2858, Jnn#412}(`%X%`_shape{lanetype#15677, dim#15677, i#76824}(`I16`_lanetype, `%`_dim{i#76831}(8))), `EXTMUL`_vextbinop__{half#558, sx#14090}(`HIGH`_half, `S`_sx))] -[visit_exp ishape_1#55] -[visit_id ishape_1#55] -[visit_exp ishape_2#55] -[visit_id ishape_2#55] -[visit_exp (`%`_ishape{shape#2846, Jnn#408}(`%X%`_shape{lanetype#15665, dim#15665, i#76812}(`I32`_lanetype, `%`_dim{i#76819}(4))), `%`_ishape{shape#2858, Jnn#412}(`%X%`_shape{lanetype#15677, dim#15677, i#76824}(`I16`_lanetype, `%`_dim{i#76831}(8))), `EXTMUL`_vextbinop__{half#558, sx#14090}(`HIGH`_half, `S`_sx))] -[visit_exp `%`_ishape{shape#2846, Jnn#408}(`%X%`_shape{lanetype#15665, dim#15665, i#76812}(`I32`_lanetype, `%`_dim{i#76819}(4)))] -[visit_exp shape#2846] -[visit_id shape#2846] -[visit_exp Jnn#408] -[visit_id Jnn#408] -[visit_exp (`%X%`_shape{lanetype#15665, dim#15665, i#76812}(`I32`_lanetype, `%`_dim{i#76819}(4)))] -[visit_exp `%X%`_shape{lanetype#15665, dim#15665, i#76812}(`I32`_lanetype, `%`_dim{i#76819}(4))] -[visit_exp lanetype#15665] -[visit_id lanetype#15665] -[visit_exp dim#15665] -[visit_id dim#15665] -[visit_exp i#76812] -[visit_id i#76812] -[visit_exp (`I32`_lanetype, `%`_dim{i#76819}(4))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#76819}(4)] -[visit_exp i#76819] -[visit_id i#76819] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#2858, Jnn#412}(`%X%`_shape{lanetype#15677, dim#15677, i#76824}(`I16`_lanetype, `%`_dim{i#76831}(8)))] -[visit_exp shape#2858] -[visit_id shape#2858] -[visit_exp Jnn#412] -[visit_id Jnn#412] -[visit_exp (`%X%`_shape{lanetype#15677, dim#15677, i#76824}(`I16`_lanetype, `%`_dim{i#76831}(8)))] -[visit_exp `%X%`_shape{lanetype#15677, dim#15677, i#76824}(`I16`_lanetype, `%`_dim{i#76831}(8))] -[visit_exp lanetype#15677] -[visit_id lanetype#15677] -[visit_exp dim#15677] -[visit_id dim#15677] -[visit_exp i#76824] -[visit_id i#76824] -[visit_exp (`I16`_lanetype, `%`_dim{i#76831}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#76831}(8)] -[visit_exp i#76831] -[visit_id i#76831] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__{half#558, sx#14090}(`HIGH`_half, `S`_sx)] -[visit_exp half#558] -[visit_id half#558] -[visit_exp sx#14090] -[visit_id sx#14090] +[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)] [visit_exp (`HIGH`_half, `S`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#76805}(189)] -[visit_exp i#76805] -[visit_id i#76805] +[visit_exp `%`_u32(189)] [visit_exp (189)] [visit_exp 189] -[check_dims] Jnn#416 Jnn#420 dim#15900 dim#15912 half#592 i#77185 i#77192 i#77199 i#77204 i#77211 ishape_1#57 ishape_2#57 lanetype#15900 lanetype#15912 shape#2961 shape#2973 sx#14124 -dims \ = Jnn#416, Jnn#420, dim#15900, dim#15912, half#592, i#77185, i#77192, i#77199, i#77204, i#77211, ishape_1#57, ishape_2#57, lanetype#15900, lanetype#15912, shape#2961, shape#2973, sx#14124 -[visit_exp `VEXTBINOP`_instr{ishape_1#57, ishape_2#57}(`%`_ishape{shape#2961, Jnn#416}(`%X%`_shape{lanetype#15900, dim#15900, i#77192}(`I32`_lanetype, `%`_dim{i#77199}(4))), `%`_ishape{shape#2973, Jnn#420}(`%X%`_shape{lanetype#15912, dim#15912, i#77204}(`I16`_lanetype, `%`_dim{i#77211}(8))), `EXTMUL`_vextbinop__{half#592, sx#14124}(`LOW`_half, `U`_sx))] -[visit_exp ishape_1#57] -[visit_id ishape_1#57] -[visit_exp ishape_2#57] -[visit_id ishape_2#57] -[visit_exp (`%`_ishape{shape#2961, Jnn#416}(`%X%`_shape{lanetype#15900, dim#15900, i#77192}(`I32`_lanetype, `%`_dim{i#77199}(4))), `%`_ishape{shape#2973, Jnn#420}(`%X%`_shape{lanetype#15912, dim#15912, i#77204}(`I16`_lanetype, `%`_dim{i#77211}(8))), `EXTMUL`_vextbinop__{half#592, sx#14124}(`LOW`_half, `U`_sx))] -[visit_exp `%`_ishape{shape#2961, Jnn#416}(`%X%`_shape{lanetype#15900, dim#15900, i#77192}(`I32`_lanetype, `%`_dim{i#77199}(4)))] -[visit_exp shape#2961] -[visit_id shape#2961] -[visit_exp Jnn#416] -[visit_id Jnn#416] -[visit_exp (`%X%`_shape{lanetype#15900, dim#15900, i#77192}(`I32`_lanetype, `%`_dim{i#77199}(4)))] -[visit_exp `%X%`_shape{lanetype#15900, dim#15900, i#77192}(`I32`_lanetype, `%`_dim{i#77199}(4))] -[visit_exp lanetype#15900] -[visit_id lanetype#15900] -[visit_exp dim#15900] -[visit_id dim#15900] -[visit_exp i#77192] -[visit_id i#77192] -[visit_exp (`I32`_lanetype, `%`_dim{i#77199}(4))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#77199}(4)] -[visit_exp i#77199] -[visit_id i#77199] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#2973, Jnn#420}(`%X%`_shape{lanetype#15912, dim#15912, i#77204}(`I16`_lanetype, `%`_dim{i#77211}(8)))] -[visit_exp shape#2973] -[visit_id shape#2973] -[visit_exp Jnn#420] -[visit_id Jnn#420] -[visit_exp (`%X%`_shape{lanetype#15912, dim#15912, i#77204}(`I16`_lanetype, `%`_dim{i#77211}(8)))] -[visit_exp `%X%`_shape{lanetype#15912, dim#15912, i#77204}(`I16`_lanetype, `%`_dim{i#77211}(8))] -[visit_exp lanetype#15912] -[visit_id lanetype#15912] -[visit_exp dim#15912] -[visit_id dim#15912] -[visit_exp i#77204] -[visit_id i#77204] -[visit_exp (`I16`_lanetype, `%`_dim{i#77211}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#77211}(8)] -[visit_exp i#77211] -[visit_id i#77211] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__{half#592, sx#14124}(`LOW`_half, `U`_sx)] -[visit_exp half#592] -[visit_id half#592] -[visit_exp sx#14124] -[visit_id sx#14124] +[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)] [visit_exp (`LOW`_half, `U`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#77185}(190)] -[visit_exp i#77185] -[visit_id i#77185] +[visit_exp `%`_u32(190)] [visit_exp (190)] [visit_exp 190] -[check_dims] Jnn#424 Jnn#428 dim#16135 dim#16147 half#626 i#77565 i#77572 i#77579 i#77584 i#77591 ishape_1#59 ishape_2#59 lanetype#16135 lanetype#16147 shape#3076 shape#3088 sx#14158 -dims \ = Jnn#424, Jnn#428, dim#16135, dim#16147, half#626, i#77565, i#77572, i#77579, i#77584, i#77591, ishape_1#59, ishape_2#59, lanetype#16135, lanetype#16147, shape#3076, shape#3088, sx#14158 -[visit_exp `VEXTBINOP`_instr{ishape_1#59, ishape_2#59}(`%`_ishape{shape#3076, Jnn#424}(`%X%`_shape{lanetype#16135, dim#16135, i#77572}(`I32`_lanetype, `%`_dim{i#77579}(4))), `%`_ishape{shape#3088, Jnn#428}(`%X%`_shape{lanetype#16147, dim#16147, i#77584}(`I16`_lanetype, `%`_dim{i#77591}(8))), `EXTMUL`_vextbinop__{half#626, sx#14158}(`HIGH`_half, `U`_sx))] -[visit_exp ishape_1#59] -[visit_id ishape_1#59] -[visit_exp ishape_2#59] -[visit_id ishape_2#59] -[visit_exp (`%`_ishape{shape#3076, Jnn#424}(`%X%`_shape{lanetype#16135, dim#16135, i#77572}(`I32`_lanetype, `%`_dim{i#77579}(4))), `%`_ishape{shape#3088, Jnn#428}(`%X%`_shape{lanetype#16147, dim#16147, i#77584}(`I16`_lanetype, `%`_dim{i#77591}(8))), `EXTMUL`_vextbinop__{half#626, sx#14158}(`HIGH`_half, `U`_sx))] -[visit_exp `%`_ishape{shape#3076, Jnn#424}(`%X%`_shape{lanetype#16135, dim#16135, i#77572}(`I32`_lanetype, `%`_dim{i#77579}(4)))] -[visit_exp shape#3076] -[visit_id shape#3076] -[visit_exp Jnn#424] -[visit_id Jnn#424] -[visit_exp (`%X%`_shape{lanetype#16135, dim#16135, i#77572}(`I32`_lanetype, `%`_dim{i#77579}(4)))] -[visit_exp `%X%`_shape{lanetype#16135, dim#16135, i#77572}(`I32`_lanetype, `%`_dim{i#77579}(4))] -[visit_exp lanetype#16135] -[visit_id lanetype#16135] -[visit_exp dim#16135] -[visit_id dim#16135] -[visit_exp i#77572] -[visit_id i#77572] -[visit_exp (`I32`_lanetype, `%`_dim{i#77579}(4))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#77579}(4)] -[visit_exp i#77579] -[visit_id i#77579] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#3088, Jnn#428}(`%X%`_shape{lanetype#16147, dim#16147, i#77584}(`I16`_lanetype, `%`_dim{i#77591}(8)))] -[visit_exp shape#3088] -[visit_id shape#3088] -[visit_exp Jnn#428] -[visit_id Jnn#428] -[visit_exp (`%X%`_shape{lanetype#16147, dim#16147, i#77584}(`I16`_lanetype, `%`_dim{i#77591}(8)))] -[visit_exp `%X%`_shape{lanetype#16147, dim#16147, i#77584}(`I16`_lanetype, `%`_dim{i#77591}(8))] -[visit_exp lanetype#16147] -[visit_id lanetype#16147] -[visit_exp dim#16147] -[visit_id dim#16147] -[visit_exp i#77584] -[visit_id i#77584] -[visit_exp (`I16`_lanetype, `%`_dim{i#77591}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#77591}(8)] -[visit_exp i#77591] -[visit_id i#77591] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__{half#626, sx#14158}(`HIGH`_half, `U`_sx)] -[visit_exp half#626] -[visit_id half#626] -[visit_exp sx#14158] -[visit_id sx#14158] +[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)] [visit_exp (`HIGH`_half, `U`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#77565}(191)] -[visit_exp i#77565] -[visit_id i#77565] +[visit_exp `%`_u32(191)] [visit_exp (191)] [visit_exp 191] ps' = [check_dims] -[check_dims] Jnn#432 Jnn#436 dim#16370 dim#16382 i#77945 i#77952 i#77959 i#77964 i#77971 ishape_1#61 ishape_2#61 lanetype#16370 lanetype#16382 shape#3191 shape#3203 -dims \ = Jnn#432, Jnn#436, dim#16370, dim#16382, i#77945, i#77952, i#77959, i#77964, i#77971, ishape_1#61, ishape_2#61, lanetype#16370, lanetype#16382, shape#3191, shape#3203 -[visit_exp `VEXTTERNOP`_instr{ishape_1#61, ishape_2#61}(`%`_ishape{shape#3191, Jnn#432}(`%X%`_shape{lanetype#16370, dim#16370, i#77952}(`I32`_lanetype, `%`_dim{i#77959}(4))), `%`_ishape{shape#3203, Jnn#436}(`%X%`_shape{lanetype#16382, dim#16382, i#77964}(`I16`_lanetype, `%`_dim{i#77971}(8))), `RELAXED_DOT_ADDS`_vextternop__)] -[visit_exp ishape_1#61] -[visit_id ishape_1#61] -[visit_exp ishape_2#61] -[visit_id ishape_2#61] -[visit_exp (`%`_ishape{shape#3191, Jnn#432}(`%X%`_shape{lanetype#16370, dim#16370, i#77952}(`I32`_lanetype, `%`_dim{i#77959}(4))), `%`_ishape{shape#3203, Jnn#436}(`%X%`_shape{lanetype#16382, dim#16382, i#77964}(`I16`_lanetype, `%`_dim{i#77971}(8))), `RELAXED_DOT_ADDS`_vextternop__)] -[visit_exp `%`_ishape{shape#3191, Jnn#432}(`%X%`_shape{lanetype#16370, dim#16370, i#77952}(`I32`_lanetype, `%`_dim{i#77959}(4)))] -[visit_exp shape#3191] -[visit_id shape#3191] -[visit_exp Jnn#432] -[visit_id Jnn#432] -[visit_exp (`%X%`_shape{lanetype#16370, dim#16370, i#77952}(`I32`_lanetype, `%`_dim{i#77959}(4)))] -[visit_exp `%X%`_shape{lanetype#16370, dim#16370, i#77952}(`I32`_lanetype, `%`_dim{i#77959}(4))] -[visit_exp lanetype#16370] -[visit_id lanetype#16370] -[visit_exp dim#16370] -[visit_id dim#16370] -[visit_exp i#77952] -[visit_id i#77952] -[visit_exp (`I32`_lanetype, `%`_dim{i#77959}(4))] +[check_dims] +dims \ = +[visit_exp `VEXTTERNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `RELAXED_DOT_ADDS`_vextternop__)] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `RELAXED_DOT_ADDS`_vextternop__)] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#77959}(4)] -[visit_exp i#77959] -[visit_id i#77959] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#3203, Jnn#436}(`%X%`_shape{lanetype#16382, dim#16382, i#77964}(`I16`_lanetype, `%`_dim{i#77971}(8)))] -[visit_exp shape#3203] -[visit_id shape#3203] -[visit_exp Jnn#436] -[visit_id Jnn#436] -[visit_exp (`%X%`_shape{lanetype#16382, dim#16382, i#77964}(`I16`_lanetype, `%`_dim{i#77971}(8)))] -[visit_exp `%X%`_shape{lanetype#16382, dim#16382, i#77964}(`I16`_lanetype, `%`_dim{i#77971}(8))] -[visit_exp lanetype#16382] -[visit_id lanetype#16382] -[visit_exp dim#16382] -[visit_id dim#16382] -[visit_exp i#77964] -[visit_id i#77964] -[visit_exp (`I16`_lanetype, `%`_dim{i#77971}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#77971}(8)] -[visit_exp i#77971] -[visit_id i#77971] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `RELAXED_DOT_ADDS`_vextternop__] [visit_exp ()] -[visit_exp `%`_u32{i#77945}(275)] -[visit_exp i#77945] -[visit_id i#77945] +[visit_exp `%`_u32(275)] [visit_exp (275)] [visit_exp 275] ps' = [check_dims] -[check_dims] dim#16605 i#78325 i#78332 i#78339 lanetype#16605 shape#3296 -dims \ = dim#16605, i#78325, i#78332, i#78339, lanetype#16605, shape#3296 -[visit_exp `VUNOP`_instr{shape#3296}(`%X%`_shape{lanetype#16605, dim#16605, i#78332}(`I64`_lanetype, `%`_dim{i#78339}(2)), `ABS`_vunop_)] -[visit_exp shape#3296] -[visit_id shape#3296] -[visit_exp (`%X%`_shape{lanetype#16605, dim#16605, i#78332}(`I64`_lanetype, `%`_dim{i#78339}(2)), `ABS`_vunop_)] -[visit_exp `%X%`_shape{lanetype#16605, dim#16605, i#78332}(`I64`_lanetype, `%`_dim{i#78339}(2))] -[visit_exp lanetype#16605] -[visit_id lanetype#16605] -[visit_exp dim#16605] -[visit_id dim#16605] -[visit_exp i#78332] -[visit_id i#78332] -[visit_exp (`I64`_lanetype, `%`_dim{i#78339}(2))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#78339}(2)] -[visit_exp i#78339] -[visit_id i#78339] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `ABS`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#78325}(192)] -[visit_exp i#78325] -[visit_id i#78325] +[visit_exp `%`_u32(192)] [visit_exp (192)] [visit_exp 192] -[check_dims] dim#16632 i#78407 i#78414 i#78421 lanetype#16632 shape#3298 -dims \ = dim#16632, i#78407, i#78414, i#78421, lanetype#16632, shape#3298 -[visit_exp `VUNOP`_instr{shape#3298}(`%X%`_shape{lanetype#16632, dim#16632, i#78414}(`I64`_lanetype, `%`_dim{i#78421}(2)), `NEG`_vunop_)] -[visit_exp shape#3298] -[visit_id shape#3298] -[visit_exp (`%X%`_shape{lanetype#16632, dim#16632, i#78414}(`I64`_lanetype, `%`_dim{i#78421}(2)), `NEG`_vunop_)] -[visit_exp `%X%`_shape{lanetype#16632, dim#16632, i#78414}(`I64`_lanetype, `%`_dim{i#78421}(2))] -[visit_exp lanetype#16632] -[visit_id lanetype#16632] -[visit_exp dim#16632] -[visit_id dim#16632] -[visit_exp i#78414] -[visit_id i#78414] -[visit_exp (`I64`_lanetype, `%`_dim{i#78421}(2))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#78421}(2)] -[visit_exp i#78421] -[visit_id i#78421] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `NEG`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#78407}(193)] -[visit_exp i#78407] -[visit_id i#78407] +[visit_exp `%`_u32(193)] [visit_exp (193)] [visit_exp 193] ps' = [check_dims] -[check_dims] dim#16659 i#78489 i#78496 i#78503 lanetype#16659 shape#3300 -dims \ = dim#16659, i#78489, i#78496, i#78503, lanetype#16659, shape#3300 -[visit_exp `VTESTOP`_instr{shape#3300}(`%X%`_shape{lanetype#16659, dim#16659, i#78496}(`I64`_lanetype, `%`_dim{i#78503}(2)), `ALL_TRUE`_vtestop_)] -[visit_exp shape#3300] -[visit_id shape#3300] -[visit_exp (`%X%`_shape{lanetype#16659, dim#16659, i#78496}(`I64`_lanetype, `%`_dim{i#78503}(2)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape{lanetype#16659, dim#16659, i#78496}(`I64`_lanetype, `%`_dim{i#78503}(2))] -[visit_exp lanetype#16659] -[visit_id lanetype#16659] -[visit_exp dim#16659] -[visit_id dim#16659] -[visit_exp i#78496] -[visit_id i#78496] -[visit_exp (`I64`_lanetype, `%`_dim{i#78503}(2))] +[check_dims] +dims \ = +[visit_exp `VTESTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ALL_TRUE`_vtestop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#78503}(2)] -[visit_exp i#78503] -[visit_id i#78503] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `ALL_TRUE`_vtestop_] [visit_exp ()] -[visit_exp `%`_u32{i#78489}(195)] -[visit_exp i#78489] -[visit_id i#78489] +[visit_exp `%`_u32(195)] [visit_exp (195)] [visit_exp 195] ps' = [check_dims] -[check_dims] Jnn#440 dim#16686 i#78571 i#78578 i#78585 ishape#37 lanetype#16686 shape#3312 -dims \ = Jnn#440, dim#16686, i#78571, i#78578, i#78585, ishape#37, lanetype#16686, shape#3312 -[visit_exp `VBITMASK`_instr{ishape#37}(`%`_ishape{shape#3312, Jnn#440}(`%X%`_shape{lanetype#16686, dim#16686, i#78578}(`I64`_lanetype, `%`_dim{i#78585}(2))))] -[visit_exp ishape#37] -[visit_id ishape#37] -[visit_exp (`%`_ishape{shape#3312, Jnn#440}(`%X%`_shape{lanetype#16686, dim#16686, i#78578}(`I64`_lanetype, `%`_dim{i#78585}(2))))] -[visit_exp `%`_ishape{shape#3312, Jnn#440}(`%X%`_shape{lanetype#16686, dim#16686, i#78578}(`I64`_lanetype, `%`_dim{i#78585}(2)))] -[visit_exp shape#3312] -[visit_id shape#3312] -[visit_exp Jnn#440] -[visit_id Jnn#440] -[visit_exp (`%X%`_shape{lanetype#16686, dim#16686, i#78578}(`I64`_lanetype, `%`_dim{i#78585}(2)))] -[visit_exp `%X%`_shape{lanetype#16686, dim#16686, i#78578}(`I64`_lanetype, `%`_dim{i#78585}(2))] -[visit_exp lanetype#16686] -[visit_id lanetype#16686] -[visit_exp dim#16686] -[visit_id dim#16686] -[visit_exp i#78578] -[visit_id i#78578] -[visit_exp (`I64`_lanetype, `%`_dim{i#78585}(2))] +[check_dims] +dims \ = +[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#78585}(2)] -[visit_exp i#78585] -[visit_id i#78585] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%`_u32{i#78571}(196)] -[visit_exp i#78571] -[visit_id i#78571] +[visit_exp `%`_u32(196)] [visit_exp (196)] [visit_exp 196] ps' = [check_dims] -[check_dims] dim#16698 dim#16710 half#660 i#78608 i#78615 i#78622 i#78627 i#78634 lanetype#16698 lanetype#16710 shape_1#23 shape_2#23 sx#14192 -dims \ = dim#16698, dim#16710, half#660, i#78608, i#78615, i#78622, i#78627, i#78634, lanetype#16698, lanetype#16710, shape_1#23, shape_2#23, sx#14192 -[visit_exp `VCVTOP`_instr{shape_1#23, shape_2#23}(`%X%`_shape{lanetype#16698, dim#16698, i#78615}(`I64`_lanetype, `%`_dim{i#78622}(2)), `%X%`_shape{lanetype#16710, dim#16710, i#78627}(`I32`_lanetype, `%`_dim{i#78634}(4)), `EXTEND`_vcvtop__{half#660, sx#14192}(`LOW`_half, `S`_sx))] -[visit_exp shape_1#23] -[visit_id shape_1#23] -[visit_exp shape_2#23] -[visit_id shape_2#23] -[visit_exp (`%X%`_shape{lanetype#16698, dim#16698, i#78615}(`I64`_lanetype, `%`_dim{i#78622}(2)), `%X%`_shape{lanetype#16710, dim#16710, i#78627}(`I32`_lanetype, `%`_dim{i#78634}(4)), `EXTEND`_vcvtop__{half#660, sx#14192}(`LOW`_half, `S`_sx))] -[visit_exp `%X%`_shape{lanetype#16698, dim#16698, i#78615}(`I64`_lanetype, `%`_dim{i#78622}(2))] -[visit_exp lanetype#16698] -[visit_id lanetype#16698] -[visit_exp dim#16698] -[visit_id dim#16698] -[visit_exp i#78615] -[visit_id i#78615] -[visit_exp (`I64`_lanetype, `%`_dim{i#78622}(2))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#78622}(2)] -[visit_exp i#78622] -[visit_id i#78622] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#16710, dim#16710, i#78627}(`I32`_lanetype, `%`_dim{i#78634}(4))] -[visit_exp lanetype#16710] -[visit_id lanetype#16710] -[visit_exp dim#16710] -[visit_id dim#16710] -[visit_exp i#78627] -[visit_id i#78627] -[visit_exp (`I32`_lanetype, `%`_dim{i#78634}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#78634}(4)] -[visit_exp i#78634] -[visit_id i#78634] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTEND`_vcvtop__{half#660, sx#14192}(`LOW`_half, `S`_sx)] -[visit_exp half#660] -[visit_id half#660] -[visit_exp sx#14192] -[visit_id sx#14192] +[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)] [visit_exp (`LOW`_half, `S`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#78608}(199)] -[visit_exp i#78608] -[visit_id i#78608] +[visit_exp `%`_u32(199)] [visit_exp (199)] [visit_exp 199] -[check_dims] dim#16813 dim#16825 half#694 i#78868 i#78875 i#78882 i#78887 i#78894 lanetype#16813 lanetype#16825 shape_1#25 shape_2#25 sx#14226 -dims \ = dim#16813, dim#16825, half#694, i#78868, i#78875, i#78882, i#78887, i#78894, lanetype#16813, lanetype#16825, shape_1#25, shape_2#25, sx#14226 -[visit_exp `VCVTOP`_instr{shape_1#25, shape_2#25}(`%X%`_shape{lanetype#16813, dim#16813, i#78875}(`I64`_lanetype, `%`_dim{i#78882}(2)), `%X%`_shape{lanetype#16825, dim#16825, i#78887}(`I32`_lanetype, `%`_dim{i#78894}(4)), `EXTEND`_vcvtop__{half#694, sx#14226}(`HIGH`_half, `S`_sx))] -[visit_exp shape_1#25] -[visit_id shape_1#25] -[visit_exp shape_2#25] -[visit_id shape_2#25] -[visit_exp (`%X%`_shape{lanetype#16813, dim#16813, i#78875}(`I64`_lanetype, `%`_dim{i#78882}(2)), `%X%`_shape{lanetype#16825, dim#16825, i#78887}(`I32`_lanetype, `%`_dim{i#78894}(4)), `EXTEND`_vcvtop__{half#694, sx#14226}(`HIGH`_half, `S`_sx))] -[visit_exp `%X%`_shape{lanetype#16813, dim#16813, i#78875}(`I64`_lanetype, `%`_dim{i#78882}(2))] -[visit_exp lanetype#16813] -[visit_id lanetype#16813] -[visit_exp dim#16813] -[visit_id dim#16813] -[visit_exp i#78875] -[visit_id i#78875] -[visit_exp (`I64`_lanetype, `%`_dim{i#78882}(2))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#78882}(2)] -[visit_exp i#78882] -[visit_id i#78882] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#16825, dim#16825, i#78887}(`I32`_lanetype, `%`_dim{i#78894}(4))] -[visit_exp lanetype#16825] -[visit_id lanetype#16825] -[visit_exp dim#16825] -[visit_id dim#16825] -[visit_exp i#78887] -[visit_id i#78887] -[visit_exp (`I32`_lanetype, `%`_dim{i#78894}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#78894}(4)] -[visit_exp i#78894] -[visit_id i#78894] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTEND`_vcvtop__{half#694, sx#14226}(`HIGH`_half, `S`_sx)] -[visit_exp half#694] -[visit_id half#694] -[visit_exp sx#14226] -[visit_id sx#14226] +[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)] [visit_exp (`HIGH`_half, `S`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#78868}(200)] -[visit_exp i#78868] -[visit_id i#78868] +[visit_exp `%`_u32(200)] [visit_exp (200)] [visit_exp 200] -[check_dims] dim#16928 dim#16940 half#728 i#79128 i#79135 i#79142 i#79147 i#79154 lanetype#16928 lanetype#16940 shape_1#27 shape_2#27 sx#14260 -dims \ = dim#16928, dim#16940, half#728, i#79128, i#79135, i#79142, i#79147, i#79154, lanetype#16928, lanetype#16940, shape_1#27, shape_2#27, sx#14260 -[visit_exp `VCVTOP`_instr{shape_1#27, shape_2#27}(`%X%`_shape{lanetype#16928, dim#16928, i#79135}(`I64`_lanetype, `%`_dim{i#79142}(2)), `%X%`_shape{lanetype#16940, dim#16940, i#79147}(`I32`_lanetype, `%`_dim{i#79154}(4)), `EXTEND`_vcvtop__{half#728, sx#14260}(`LOW`_half, `U`_sx))] -[visit_exp shape_1#27] -[visit_id shape_1#27] -[visit_exp shape_2#27] -[visit_id shape_2#27] -[visit_exp (`%X%`_shape{lanetype#16928, dim#16928, i#79135}(`I64`_lanetype, `%`_dim{i#79142}(2)), `%X%`_shape{lanetype#16940, dim#16940, i#79147}(`I32`_lanetype, `%`_dim{i#79154}(4)), `EXTEND`_vcvtop__{half#728, sx#14260}(`LOW`_half, `U`_sx))] -[visit_exp `%X%`_shape{lanetype#16928, dim#16928, i#79135}(`I64`_lanetype, `%`_dim{i#79142}(2))] -[visit_exp lanetype#16928] -[visit_id lanetype#16928] -[visit_exp dim#16928] -[visit_id dim#16928] -[visit_exp i#79135] -[visit_id i#79135] -[visit_exp (`I64`_lanetype, `%`_dim{i#79142}(2))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#79142}(2)] -[visit_exp i#79142] -[visit_id i#79142] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#16940, dim#16940, i#79147}(`I32`_lanetype, `%`_dim{i#79154}(4))] -[visit_exp lanetype#16940] -[visit_id lanetype#16940] -[visit_exp dim#16940] -[visit_id dim#16940] -[visit_exp i#79147] -[visit_id i#79147] -[visit_exp (`I32`_lanetype, `%`_dim{i#79154}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#79154}(4)] -[visit_exp i#79154] -[visit_id i#79154] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTEND`_vcvtop__{half#728, sx#14260}(`LOW`_half, `U`_sx)] -[visit_exp half#728] -[visit_id half#728] -[visit_exp sx#14260] -[visit_id sx#14260] +[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)] [visit_exp (`LOW`_half, `U`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#79128}(201)] -[visit_exp i#79128] -[visit_id i#79128] +[visit_exp `%`_u32(201)] [visit_exp (201)] [visit_exp 201] -[check_dims] dim#17043 dim#17055 half#762 i#79388 i#79395 i#79402 i#79407 i#79414 lanetype#17043 lanetype#17055 shape_1#29 shape_2#29 sx#14294 -dims \ = dim#17043, dim#17055, half#762, i#79388, i#79395, i#79402, i#79407, i#79414, lanetype#17043, lanetype#17055, shape_1#29, shape_2#29, sx#14294 -[visit_exp `VCVTOP`_instr{shape_1#29, shape_2#29}(`%X%`_shape{lanetype#17043, dim#17043, i#79395}(`I64`_lanetype, `%`_dim{i#79402}(2)), `%X%`_shape{lanetype#17055, dim#17055, i#79407}(`I32`_lanetype, `%`_dim{i#79414}(4)), `EXTEND`_vcvtop__{half#762, sx#14294}(`HIGH`_half, `U`_sx))] -[visit_exp shape_1#29] -[visit_id shape_1#29] -[visit_exp shape_2#29] -[visit_id shape_2#29] -[visit_exp (`%X%`_shape{lanetype#17043, dim#17043, i#79395}(`I64`_lanetype, `%`_dim{i#79402}(2)), `%X%`_shape{lanetype#17055, dim#17055, i#79407}(`I32`_lanetype, `%`_dim{i#79414}(4)), `EXTEND`_vcvtop__{half#762, sx#14294}(`HIGH`_half, `U`_sx))] -[visit_exp `%X%`_shape{lanetype#17043, dim#17043, i#79395}(`I64`_lanetype, `%`_dim{i#79402}(2))] -[visit_exp lanetype#17043] -[visit_id lanetype#17043] -[visit_exp dim#17043] -[visit_id dim#17043] -[visit_exp i#79395] -[visit_id i#79395] -[visit_exp (`I64`_lanetype, `%`_dim{i#79402}(2))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#79402}(2)] -[visit_exp i#79402] -[visit_id i#79402] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#17055, dim#17055, i#79407}(`I32`_lanetype, `%`_dim{i#79414}(4))] -[visit_exp lanetype#17055] -[visit_id lanetype#17055] -[visit_exp dim#17055] -[visit_id dim#17055] -[visit_exp i#79407] -[visit_id i#79407] -[visit_exp (`I32`_lanetype, `%`_dim{i#79414}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#79414}(4)] -[visit_exp i#79414] -[visit_id i#79414] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTEND`_vcvtop__{half#762, sx#14294}(`HIGH`_half, `U`_sx)] -[visit_exp half#762] -[visit_id half#762] -[visit_exp sx#14294] -[visit_id sx#14294] +[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)] [visit_exp (`HIGH`_half, `U`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#79388}(202)] -[visit_exp i#79388] -[visit_id i#79388] +[visit_exp `%`_u32(202)] [visit_exp (202)] [visit_exp 202] ps' = [check_dims] -[check_dims] Jnn#444 dim#17158 i#79648 i#79655 i#79662 ishape#39 lanetype#17158 shape#3324 -dims \ = Jnn#444, dim#17158, i#79648, i#79655, i#79662, ishape#39, lanetype#17158, shape#3324 -[visit_exp `VSHIFTOP`_instr{ishape#39}(`%`_ishape{shape#3324, Jnn#444}(`%X%`_shape{lanetype#17158, dim#17158, i#79655}(`I64`_lanetype, `%`_dim{i#79662}(2))), `SHL`_vshiftop_)] -[visit_exp ishape#39] -[visit_id ishape#39] -[visit_exp (`%`_ishape{shape#3324, Jnn#444}(`%X%`_shape{lanetype#17158, dim#17158, i#79655}(`I64`_lanetype, `%`_dim{i#79662}(2))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape{shape#3324, Jnn#444}(`%X%`_shape{lanetype#17158, dim#17158, i#79655}(`I64`_lanetype, `%`_dim{i#79662}(2)))] -[visit_exp shape#3324] -[visit_id shape#3324] -[visit_exp Jnn#444] -[visit_id Jnn#444] -[visit_exp (`%X%`_shape{lanetype#17158, dim#17158, i#79655}(`I64`_lanetype, `%`_dim{i#79662}(2)))] -[visit_exp `%X%`_shape{lanetype#17158, dim#17158, i#79655}(`I64`_lanetype, `%`_dim{i#79662}(2))] -[visit_exp lanetype#17158] -[visit_id lanetype#17158] -[visit_exp dim#17158] -[visit_id dim#17158] -[visit_exp i#79655] -[visit_id i#79655] -[visit_exp (`I64`_lanetype, `%`_dim{i#79662}(2))] +[check_dims] +dims \ = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHL`_vshiftop_)] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#79662}(2)] -[visit_exp i#79662] -[visit_id i#79662] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `SHL`_vshiftop_] [visit_exp ()] -[visit_exp `%`_u32{i#79648}(203)] -[visit_exp i#79648] -[visit_id i#79648] +[visit_exp `%`_u32(203)] [visit_exp (203)] [visit_exp 203] -[check_dims] Jnn#448 dim#17215 i#79760 i#79767 i#79774 ishape#41 lanetype#17215 shape#3351 sx#14328 -dims \ = Jnn#448, dim#17215, i#79760, i#79767, i#79774, ishape#41, lanetype#17215, shape#3351, sx#14328 -[visit_exp `VSHIFTOP`_instr{ishape#41}(`%`_ishape{shape#3351, Jnn#448}(`%X%`_shape{lanetype#17215, dim#17215, i#79767}(`I64`_lanetype, `%`_dim{i#79774}(2))), `SHR`_vshiftop_{sx#14328}(`S`_sx))] -[visit_exp ishape#41] -[visit_id ishape#41] -[visit_exp (`%`_ishape{shape#3351, Jnn#448}(`%X%`_shape{lanetype#17215, dim#17215, i#79767}(`I64`_lanetype, `%`_dim{i#79774}(2))), `SHR`_vshiftop_{sx#14328}(`S`_sx))] -[visit_exp `%`_ishape{shape#3351, Jnn#448}(`%X%`_shape{lanetype#17215, dim#17215, i#79767}(`I64`_lanetype, `%`_dim{i#79774}(2)))] -[visit_exp shape#3351] -[visit_id shape#3351] -[visit_exp Jnn#448] -[visit_id Jnn#448] -[visit_exp (`%X%`_shape{lanetype#17215, dim#17215, i#79767}(`I64`_lanetype, `%`_dim{i#79774}(2)))] -[visit_exp `%X%`_shape{lanetype#17215, dim#17215, i#79767}(`I64`_lanetype, `%`_dim{i#79774}(2))] -[visit_exp lanetype#17215] -[visit_id lanetype#17215] -[visit_exp dim#17215] -[visit_id dim#17215] -[visit_exp i#79767] -[visit_id i#79767] -[visit_exp (`I64`_lanetype, `%`_dim{i#79774}(2))] +[check_dims] +dims \ = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#79774}(2)] -[visit_exp i#79774] -[visit_id i#79774] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `SHR`_vshiftop_{sx#14328}(`S`_sx)] -[visit_exp sx#14328] -[visit_id sx#14328] +[visit_exp `SHR`_vshiftop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#79760}(204)] -[visit_exp i#79760] -[visit_id i#79760] +[visit_exp `%`_u32(204)] [visit_exp (204)] [visit_exp 204] -[check_dims] Jnn#452 dim#17278 i#79882 i#79889 i#79896 ishape#43 lanetype#17278 shape#3380 sx#14347 -dims \ = Jnn#452, dim#17278, i#79882, i#79889, i#79896, ishape#43, lanetype#17278, shape#3380, sx#14347 -[visit_exp `VSHIFTOP`_instr{ishape#43}(`%`_ishape{shape#3380, Jnn#452}(`%X%`_shape{lanetype#17278, dim#17278, i#79889}(`I64`_lanetype, `%`_dim{i#79896}(2))), `SHR`_vshiftop_{sx#14347}(`U`_sx))] -[visit_exp ishape#43] -[visit_id ishape#43] -[visit_exp (`%`_ishape{shape#3380, Jnn#452}(`%X%`_shape{lanetype#17278, dim#17278, i#79889}(`I64`_lanetype, `%`_dim{i#79896}(2))), `SHR`_vshiftop_{sx#14347}(`U`_sx))] -[visit_exp `%`_ishape{shape#3380, Jnn#452}(`%X%`_shape{lanetype#17278, dim#17278, i#79889}(`I64`_lanetype, `%`_dim{i#79896}(2)))] -[visit_exp shape#3380] -[visit_id shape#3380] -[visit_exp Jnn#452] -[visit_id Jnn#452] -[visit_exp (`%X%`_shape{lanetype#17278, dim#17278, i#79889}(`I64`_lanetype, `%`_dim{i#79896}(2)))] -[visit_exp `%X%`_shape{lanetype#17278, dim#17278, i#79889}(`I64`_lanetype, `%`_dim{i#79896}(2))] -[visit_exp lanetype#17278] -[visit_id lanetype#17278] -[visit_exp dim#17278] -[visit_id dim#17278] -[visit_exp i#79889] -[visit_id i#79889] -[visit_exp (`I64`_lanetype, `%`_dim{i#79896}(2))] +[check_dims] +dims \ = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#79896}(2)] -[visit_exp i#79896] -[visit_id i#79896] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `SHR`_vshiftop_{sx#14347}(`U`_sx)] -[visit_exp sx#14347] -[visit_id sx#14347] +[visit_exp `SHR`_vshiftop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#79882}(205)] -[visit_exp i#79882] -[visit_id i#79882] +[visit_exp `%`_u32(205)] [visit_exp (205)] [visit_exp 205] ps' = [check_dims] -[check_dims] dim#17341 i#80004 i#80011 i#80018 lanetype#17341 shape#3399 -dims \ = dim#17341, i#80004, i#80011, i#80018, lanetype#17341, shape#3399 -[visit_exp `VBINOP`_instr{shape#3399}(`%X%`_shape{lanetype#17341, dim#17341, i#80011}(`I64`_lanetype, `%`_dim{i#80018}(2)), `ADD`_vbinop_)] -[visit_exp shape#3399] -[visit_id shape#3399] -[visit_exp (`%X%`_shape{lanetype#17341, dim#17341, i#80011}(`I64`_lanetype, `%`_dim{i#80018}(2)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#17341, dim#17341, i#80011}(`I64`_lanetype, `%`_dim{i#80018}(2))] -[visit_exp lanetype#17341] -[visit_id lanetype#17341] -[visit_exp dim#17341] -[visit_id dim#17341] -[visit_exp i#80011] -[visit_id i#80011] -[visit_exp (`I64`_lanetype, `%`_dim{i#80018}(2))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#80018}(2)] -[visit_exp i#80018] -[visit_id i#80018] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `ADD`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#80004}(206)] -[visit_exp i#80004] -[visit_id i#80004] +[visit_exp `%`_u32(206)] [visit_exp (206)] [visit_exp 206] -[check_dims] dim#17368 i#80086 i#80093 i#80100 lanetype#17368 shape#3401 -dims \ = dim#17368, i#80086, i#80093, i#80100, lanetype#17368, shape#3401 -[visit_exp `VBINOP`_instr{shape#3401}(`%X%`_shape{lanetype#17368, dim#17368, i#80093}(`I64`_lanetype, `%`_dim{i#80100}(2)), `SUB`_vbinop_)] -[visit_exp shape#3401] -[visit_id shape#3401] -[visit_exp (`%X%`_shape{lanetype#17368, dim#17368, i#80093}(`I64`_lanetype, `%`_dim{i#80100}(2)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#17368, dim#17368, i#80093}(`I64`_lanetype, `%`_dim{i#80100}(2))] -[visit_exp lanetype#17368] -[visit_id lanetype#17368] -[visit_exp dim#17368] -[visit_id dim#17368] -[visit_exp i#80093] -[visit_id i#80093] -[visit_exp (`I64`_lanetype, `%`_dim{i#80100}(2))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#80100}(2)] -[visit_exp i#80100] -[visit_id i#80100] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `SUB`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#80086}(209)] -[visit_exp i#80086] -[visit_id i#80086] +[visit_exp `%`_u32(209)] [visit_exp (209)] [visit_exp 209] -[check_dims] dim#17395 i#80168 i#80175 i#80182 lanetype#17395 shape#3403 -dims \ = dim#17395, i#80168, i#80175, i#80182, lanetype#17395, shape#3403 -[visit_exp `VBINOP`_instr{shape#3403}(`%X%`_shape{lanetype#17395, dim#17395, i#80175}(`I64`_lanetype, `%`_dim{i#80182}(2)), `MUL`_vbinop_)] -[visit_exp shape#3403] -[visit_id shape#3403] -[visit_exp (`%X%`_shape{lanetype#17395, dim#17395, i#80175}(`I64`_lanetype, `%`_dim{i#80182}(2)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#17395, dim#17395, i#80175}(`I64`_lanetype, `%`_dim{i#80182}(2))] -[visit_exp lanetype#17395] -[visit_id lanetype#17395] -[visit_exp dim#17395] -[visit_id dim#17395] -[visit_exp i#80175] -[visit_id i#80175] -[visit_exp (`I64`_lanetype, `%`_dim{i#80182}(2))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#80182}(2)] -[visit_exp i#80182] -[visit_id i#80182] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `MUL`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#80168}(213)] -[visit_exp i#80168] -[visit_id i#80168] +[visit_exp `%`_u32(213)] [visit_exp (213)] [visit_exp 213] ps' = [check_dims] -[check_dims] dim#17422 i#80250 i#80257 i#80264 lanetype#17422 shape#3405 -dims \ = dim#17422, i#80250, i#80257, i#80264, lanetype#17422, shape#3405 -[visit_exp `VRELOP`_instr{shape#3405}(`%X%`_shape{lanetype#17422, dim#17422, i#80257}(`I64`_lanetype, `%`_dim{i#80264}(2)), `EQ`_vrelop_)] -[visit_exp shape#3405] -[visit_id shape#3405] -[visit_exp (`%X%`_shape{lanetype#17422, dim#17422, i#80257}(`I64`_lanetype, `%`_dim{i#80264}(2)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#17422, dim#17422, i#80257}(`I64`_lanetype, `%`_dim{i#80264}(2))] -[visit_exp lanetype#17422] -[visit_id lanetype#17422] -[visit_exp dim#17422] -[visit_id dim#17422] -[visit_exp i#80257] -[visit_id i#80257] -[visit_exp (`I64`_lanetype, `%`_dim{i#80264}(2))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#80264}(2)] -[visit_exp i#80264] -[visit_id i#80264] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `EQ`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#80250}(214)] -[visit_exp i#80250] -[visit_id i#80250] +[visit_exp `%`_u32(214)] [visit_exp (214)] [visit_exp 214] -[check_dims] dim#17449 i#80332 i#80339 i#80346 lanetype#17449 shape#3407 -dims \ = dim#17449, i#80332, i#80339, i#80346, lanetype#17449, shape#3407 -[visit_exp `VRELOP`_instr{shape#3407}(`%X%`_shape{lanetype#17449, dim#17449, i#80339}(`I64`_lanetype, `%`_dim{i#80346}(2)), `NE`_vrelop_)] -[visit_exp shape#3407] -[visit_id shape#3407] -[visit_exp (`%X%`_shape{lanetype#17449, dim#17449, i#80339}(`I64`_lanetype, `%`_dim{i#80346}(2)), `NE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#17449, dim#17449, i#80339}(`I64`_lanetype, `%`_dim{i#80346}(2))] -[visit_exp lanetype#17449] -[visit_id lanetype#17449] -[visit_exp dim#17449] -[visit_id dim#17449] -[visit_exp i#80339] -[visit_id i#80339] -[visit_exp (`I64`_lanetype, `%`_dim{i#80346}(2))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#80346}(2)] -[visit_exp i#80346] -[visit_id i#80346] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `NE`_vrelop_] [visit_exp ()] -[visit_exp `%`_u32{i#80332}(215)] -[visit_exp i#80332] -[visit_id i#80332] +[visit_exp `%`_u32(215)] [visit_exp (215)] [visit_exp 215] -[check_dims] dim#17476 i#80414 i#80421 i#80428 lanetype#17476 shape#3409 sx#14717 -dims \ = dim#17476, i#80414, i#80421, i#80428, lanetype#17476, shape#3409, sx#14717 -[visit_exp `VRELOP`_instr{shape#3409}(`%X%`_shape{lanetype#17476, dim#17476, i#80421}(`I64`_lanetype, `%`_dim{i#80428}(2)), `LT`_vrelop_{sx#14717}(`S`_sx))] -[visit_exp shape#3409] -[visit_id shape#3409] -[visit_exp (`%X%`_shape{lanetype#17476, dim#17476, i#80421}(`I64`_lanetype, `%`_dim{i#80428}(2)), `LT`_vrelop_{sx#14717}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#17476, dim#17476, i#80421}(`I64`_lanetype, `%`_dim{i#80428}(2))] -[visit_exp lanetype#17476] -[visit_id lanetype#17476] -[visit_exp dim#17476] -[visit_id dim#17476] -[visit_exp i#80421] -[visit_id i#80421] -[visit_exp (`I64`_lanetype, `%`_dim{i#80428}(2))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#80428}(2)] -[visit_exp i#80428] -[visit_id i#80428] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `LT`_vrelop_{sx#14717}(`S`_sx)] -[visit_exp sx#14717] -[visit_id sx#14717] +[visit_exp `LT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#80414}(216)] -[visit_exp i#80414] -[visit_id i#80414] +[visit_exp `%`_u32(216)] [visit_exp (216)] [visit_exp 216] -[check_dims] dim#17505 i#80502 i#80509 i#80516 lanetype#17505 shape#3411 sx#14787 -dims \ = dim#17505, i#80502, i#80509, i#80516, lanetype#17505, shape#3411, sx#14787 -[visit_exp `VRELOP`_instr{shape#3411}(`%X%`_shape{lanetype#17505, dim#17505, i#80509}(`I64`_lanetype, `%`_dim{i#80516}(2)), `GT`_vrelop_{sx#14787}(`S`_sx))] -[visit_exp shape#3411] -[visit_id shape#3411] -[visit_exp (`%X%`_shape{lanetype#17505, dim#17505, i#80509}(`I64`_lanetype, `%`_dim{i#80516}(2)), `GT`_vrelop_{sx#14787}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#17505, dim#17505, i#80509}(`I64`_lanetype, `%`_dim{i#80516}(2))] -[visit_exp lanetype#17505] -[visit_id lanetype#17505] -[visit_exp dim#17505] -[visit_id dim#17505] -[visit_exp i#80509] -[visit_id i#80509] -[visit_exp (`I64`_lanetype, `%`_dim{i#80516}(2))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#80516}(2)] -[visit_exp i#80516] -[visit_id i#80516] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `GT`_vrelop_{sx#14787}(`S`_sx)] -[visit_exp sx#14787] -[visit_id sx#14787] +[visit_exp `GT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#80502}(217)] -[visit_exp i#80502] -[visit_id i#80502] +[visit_exp `%`_u32(217)] [visit_exp (217)] [visit_exp 217] -[check_dims] dim#17534 i#80590 i#80597 i#80604 lanetype#17534 shape#3413 sx#14857 -dims \ = dim#17534, i#80590, i#80597, i#80604, lanetype#17534, shape#3413, sx#14857 -[visit_exp `VRELOP`_instr{shape#3413}(`%X%`_shape{lanetype#17534, dim#17534, i#80597}(`I64`_lanetype, `%`_dim{i#80604}(2)), `LE`_vrelop_{sx#14857}(`S`_sx))] -[visit_exp shape#3413] -[visit_id shape#3413] -[visit_exp (`%X%`_shape{lanetype#17534, dim#17534, i#80597}(`I64`_lanetype, `%`_dim{i#80604}(2)), `LE`_vrelop_{sx#14857}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#17534, dim#17534, i#80597}(`I64`_lanetype, `%`_dim{i#80604}(2))] -[visit_exp lanetype#17534] -[visit_id lanetype#17534] -[visit_exp dim#17534] -[visit_id dim#17534] -[visit_exp i#80597] -[visit_id i#80597] -[visit_exp (`I64`_lanetype, `%`_dim{i#80604}(2))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#80604}(2)] -[visit_exp i#80604] -[visit_id i#80604] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `LE`_vrelop_{sx#14857}(`S`_sx)] -[visit_exp sx#14857] -[visit_id sx#14857] +[visit_exp `LE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#80590}(218)] -[visit_exp i#80590] -[visit_id i#80590] +[visit_exp `%`_u32(218)] [visit_exp (218)] [visit_exp 218] -[check_dims] dim#17563 i#80678 i#80685 i#80692 lanetype#17563 shape#3415 sx#14927 -dims \ = dim#17563, i#80678, i#80685, i#80692, lanetype#17563, shape#3415, sx#14927 -[visit_exp `VRELOP`_instr{shape#3415}(`%X%`_shape{lanetype#17563, dim#17563, i#80685}(`I64`_lanetype, `%`_dim{i#80692}(2)), `GE`_vrelop_{sx#14927}(`S`_sx))] -[visit_exp shape#3415] -[visit_id shape#3415] -[visit_exp (`%X%`_shape{lanetype#17563, dim#17563, i#80685}(`I64`_lanetype, `%`_dim{i#80692}(2)), `GE`_vrelop_{sx#14927}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#17563, dim#17563, i#80685}(`I64`_lanetype, `%`_dim{i#80692}(2))] -[visit_exp lanetype#17563] -[visit_id lanetype#17563] -[visit_exp dim#17563] -[visit_id dim#17563] -[visit_exp i#80685] -[visit_id i#80685] -[visit_exp (`I64`_lanetype, `%`_dim{i#80692}(2))] +[check_dims] +dims \ = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#80692}(2)] -[visit_exp i#80692] -[visit_id i#80692] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `GE`_vrelop_{sx#14927}(`S`_sx)] -[visit_exp sx#14927] -[visit_id sx#14927] +[visit_exp `GE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#80678}(219)] -[visit_exp i#80678] -[visit_id i#80678] +[visit_exp `%`_u32(219)] [visit_exp (219)] [visit_exp 219] ps' = [check_dims] -[check_dims] Jnn#456 Jnn#460 dim#17592 dim#17604 half#796 i#80766 i#80773 i#80780 i#80785 i#80792 ishape_1#63 ishape_2#63 lanetype#17592 lanetype#17604 shape#3427 shape#3439 sx#14961 -dims \ = Jnn#456, Jnn#460, dim#17592, dim#17604, half#796, i#80766, i#80773, i#80780, i#80785, i#80792, ishape_1#63, ishape_2#63, lanetype#17592, lanetype#17604, shape#3427, shape#3439, sx#14961 -[visit_exp `VEXTBINOP`_instr{ishape_1#63, ishape_2#63}(`%`_ishape{shape#3427, Jnn#456}(`%X%`_shape{lanetype#17592, dim#17592, i#80773}(`I64`_lanetype, `%`_dim{i#80780}(2))), `%`_ishape{shape#3439, Jnn#460}(`%X%`_shape{lanetype#17604, dim#17604, i#80785}(`I32`_lanetype, `%`_dim{i#80792}(4))), `EXTMUL`_vextbinop__{half#796, sx#14961}(`LOW`_half, `S`_sx))] -[visit_exp ishape_1#63] -[visit_id ishape_1#63] -[visit_exp ishape_2#63] -[visit_id ishape_2#63] -[visit_exp (`%`_ishape{shape#3427, Jnn#456}(`%X%`_shape{lanetype#17592, dim#17592, i#80773}(`I64`_lanetype, `%`_dim{i#80780}(2))), `%`_ishape{shape#3439, Jnn#460}(`%X%`_shape{lanetype#17604, dim#17604, i#80785}(`I32`_lanetype, `%`_dim{i#80792}(4))), `EXTMUL`_vextbinop__{half#796, sx#14961}(`LOW`_half, `S`_sx))] -[visit_exp `%`_ishape{shape#3427, Jnn#456}(`%X%`_shape{lanetype#17592, dim#17592, i#80773}(`I64`_lanetype, `%`_dim{i#80780}(2)))] -[visit_exp shape#3427] -[visit_id shape#3427] -[visit_exp Jnn#456] -[visit_id Jnn#456] -[visit_exp (`%X%`_shape{lanetype#17592, dim#17592, i#80773}(`I64`_lanetype, `%`_dim{i#80780}(2)))] -[visit_exp `%X%`_shape{lanetype#17592, dim#17592, i#80773}(`I64`_lanetype, `%`_dim{i#80780}(2))] -[visit_exp lanetype#17592] -[visit_id lanetype#17592] -[visit_exp dim#17592] -[visit_id dim#17592] -[visit_exp i#80773] -[visit_id i#80773] -[visit_exp (`I64`_lanetype, `%`_dim{i#80780}(2))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#80780}(2)] -[visit_exp i#80780] -[visit_id i#80780] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%`_ishape{shape#3439, Jnn#460}(`%X%`_shape{lanetype#17604, dim#17604, i#80785}(`I32`_lanetype, `%`_dim{i#80792}(4)))] -[visit_exp shape#3439] -[visit_id shape#3439] -[visit_exp Jnn#460] -[visit_id Jnn#460] -[visit_exp (`%X%`_shape{lanetype#17604, dim#17604, i#80785}(`I32`_lanetype, `%`_dim{i#80792}(4)))] -[visit_exp `%X%`_shape{lanetype#17604, dim#17604, i#80785}(`I32`_lanetype, `%`_dim{i#80792}(4))] -[visit_exp lanetype#17604] -[visit_id lanetype#17604] -[visit_exp dim#17604] -[visit_id dim#17604] -[visit_exp i#80785] -[visit_id i#80785] -[visit_exp (`I32`_lanetype, `%`_dim{i#80792}(4))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#80792}(4)] -[visit_exp i#80792] -[visit_id i#80792] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__{half#796, sx#14961}(`LOW`_half, `S`_sx)] -[visit_exp half#796] -[visit_id half#796] -[visit_exp sx#14961] -[visit_id sx#14961] +[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)] [visit_exp (`LOW`_half, `S`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#80766}(220)] -[visit_exp i#80766] -[visit_id i#80766] +[visit_exp `%`_u32(220)] [visit_exp (220)] [visit_exp 220] -[check_dims] Jnn#464 Jnn#468 dim#17827 dim#17839 half#830 i#81146 i#81153 i#81160 i#81165 i#81172 ishape_1#65 ishape_2#65 lanetype#17827 lanetype#17839 shape#3542 shape#3554 sx#14995 -dims \ = Jnn#464, Jnn#468, dim#17827, dim#17839, half#830, i#81146, i#81153, i#81160, i#81165, i#81172, ishape_1#65, ishape_2#65, lanetype#17827, lanetype#17839, shape#3542, shape#3554, sx#14995 -[visit_exp `VEXTBINOP`_instr{ishape_1#65, ishape_2#65}(`%`_ishape{shape#3542, Jnn#464}(`%X%`_shape{lanetype#17827, dim#17827, i#81153}(`I64`_lanetype, `%`_dim{i#81160}(2))), `%`_ishape{shape#3554, Jnn#468}(`%X%`_shape{lanetype#17839, dim#17839, i#81165}(`I32`_lanetype, `%`_dim{i#81172}(4))), `EXTMUL`_vextbinop__{half#830, sx#14995}(`HIGH`_half, `S`_sx))] -[visit_exp ishape_1#65] -[visit_id ishape_1#65] -[visit_exp ishape_2#65] -[visit_id ishape_2#65] -[visit_exp (`%`_ishape{shape#3542, Jnn#464}(`%X%`_shape{lanetype#17827, dim#17827, i#81153}(`I64`_lanetype, `%`_dim{i#81160}(2))), `%`_ishape{shape#3554, Jnn#468}(`%X%`_shape{lanetype#17839, dim#17839, i#81165}(`I32`_lanetype, `%`_dim{i#81172}(4))), `EXTMUL`_vextbinop__{half#830, sx#14995}(`HIGH`_half, `S`_sx))] -[visit_exp `%`_ishape{shape#3542, Jnn#464}(`%X%`_shape{lanetype#17827, dim#17827, i#81153}(`I64`_lanetype, `%`_dim{i#81160}(2)))] -[visit_exp shape#3542] -[visit_id shape#3542] -[visit_exp Jnn#464] -[visit_id Jnn#464] -[visit_exp (`%X%`_shape{lanetype#17827, dim#17827, i#81153}(`I64`_lanetype, `%`_dim{i#81160}(2)))] -[visit_exp `%X%`_shape{lanetype#17827, dim#17827, i#81153}(`I64`_lanetype, `%`_dim{i#81160}(2))] -[visit_exp lanetype#17827] -[visit_id lanetype#17827] -[visit_exp dim#17827] -[visit_id dim#17827] -[visit_exp i#81153] -[visit_id i#81153] -[visit_exp (`I64`_lanetype, `%`_dim{i#81160}(2))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#81160}(2)] -[visit_exp i#81160] -[visit_id i#81160] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%`_ishape{shape#3554, Jnn#468}(`%X%`_shape{lanetype#17839, dim#17839, i#81165}(`I32`_lanetype, `%`_dim{i#81172}(4)))] -[visit_exp shape#3554] -[visit_id shape#3554] -[visit_exp Jnn#468] -[visit_id Jnn#468] -[visit_exp (`%X%`_shape{lanetype#17839, dim#17839, i#81165}(`I32`_lanetype, `%`_dim{i#81172}(4)))] -[visit_exp `%X%`_shape{lanetype#17839, dim#17839, i#81165}(`I32`_lanetype, `%`_dim{i#81172}(4))] -[visit_exp lanetype#17839] -[visit_id lanetype#17839] -[visit_exp dim#17839] -[visit_id dim#17839] -[visit_exp i#81165] -[visit_id i#81165] -[visit_exp (`I32`_lanetype, `%`_dim{i#81172}(4))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#81172}(4)] -[visit_exp i#81172] -[visit_id i#81172] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__{half#830, sx#14995}(`HIGH`_half, `S`_sx)] -[visit_exp half#830] -[visit_id half#830] -[visit_exp sx#14995] -[visit_id sx#14995] +[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)] [visit_exp (`HIGH`_half, `S`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#81146}(221)] -[visit_exp i#81146] -[visit_id i#81146] +[visit_exp `%`_u32(221)] [visit_exp (221)] [visit_exp 221] -[check_dims] Jnn#472 Jnn#476 dim#18062 dim#18074 half#864 i#81526 i#81533 i#81540 i#81545 i#81552 ishape_1#67 ishape_2#67 lanetype#18062 lanetype#18074 shape#3657 shape#3669 sx#15029 -dims \ = Jnn#472, Jnn#476, dim#18062, dim#18074, half#864, i#81526, i#81533, i#81540, i#81545, i#81552, ishape_1#67, ishape_2#67, lanetype#18062, lanetype#18074, shape#3657, shape#3669, sx#15029 -[visit_exp `VEXTBINOP`_instr{ishape_1#67, ishape_2#67}(`%`_ishape{shape#3657, Jnn#472}(`%X%`_shape{lanetype#18062, dim#18062, i#81533}(`I64`_lanetype, `%`_dim{i#81540}(2))), `%`_ishape{shape#3669, Jnn#476}(`%X%`_shape{lanetype#18074, dim#18074, i#81545}(`I32`_lanetype, `%`_dim{i#81552}(4))), `EXTMUL`_vextbinop__{half#864, sx#15029}(`LOW`_half, `U`_sx))] -[visit_exp ishape_1#67] -[visit_id ishape_1#67] -[visit_exp ishape_2#67] -[visit_id ishape_2#67] -[visit_exp (`%`_ishape{shape#3657, Jnn#472}(`%X%`_shape{lanetype#18062, dim#18062, i#81533}(`I64`_lanetype, `%`_dim{i#81540}(2))), `%`_ishape{shape#3669, Jnn#476}(`%X%`_shape{lanetype#18074, dim#18074, i#81545}(`I32`_lanetype, `%`_dim{i#81552}(4))), `EXTMUL`_vextbinop__{half#864, sx#15029}(`LOW`_half, `U`_sx))] -[visit_exp `%`_ishape{shape#3657, Jnn#472}(`%X%`_shape{lanetype#18062, dim#18062, i#81533}(`I64`_lanetype, `%`_dim{i#81540}(2)))] -[visit_exp shape#3657] -[visit_id shape#3657] -[visit_exp Jnn#472] -[visit_id Jnn#472] -[visit_exp (`%X%`_shape{lanetype#18062, dim#18062, i#81533}(`I64`_lanetype, `%`_dim{i#81540}(2)))] -[visit_exp `%X%`_shape{lanetype#18062, dim#18062, i#81533}(`I64`_lanetype, `%`_dim{i#81540}(2))] -[visit_exp lanetype#18062] -[visit_id lanetype#18062] -[visit_exp dim#18062] -[visit_id dim#18062] -[visit_exp i#81533] -[visit_id i#81533] -[visit_exp (`I64`_lanetype, `%`_dim{i#81540}(2))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#81540}(2)] -[visit_exp i#81540] -[visit_id i#81540] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%`_ishape{shape#3669, Jnn#476}(`%X%`_shape{lanetype#18074, dim#18074, i#81545}(`I32`_lanetype, `%`_dim{i#81552}(4)))] -[visit_exp shape#3669] -[visit_id shape#3669] -[visit_exp Jnn#476] -[visit_id Jnn#476] -[visit_exp (`%X%`_shape{lanetype#18074, dim#18074, i#81545}(`I32`_lanetype, `%`_dim{i#81552}(4)))] -[visit_exp `%X%`_shape{lanetype#18074, dim#18074, i#81545}(`I32`_lanetype, `%`_dim{i#81552}(4))] -[visit_exp lanetype#18074] -[visit_id lanetype#18074] -[visit_exp dim#18074] -[visit_id dim#18074] -[visit_exp i#81545] -[visit_id i#81545] -[visit_exp (`I32`_lanetype, `%`_dim{i#81552}(4))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#81552}(4)] -[visit_exp i#81552] -[visit_id i#81552] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__{half#864, sx#15029}(`LOW`_half, `U`_sx)] -[visit_exp half#864] -[visit_id half#864] -[visit_exp sx#15029] -[visit_id sx#15029] +[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)] [visit_exp (`LOW`_half, `U`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#81526}(222)] -[visit_exp i#81526] -[visit_id i#81526] +[visit_exp `%`_u32(222)] [visit_exp (222)] [visit_exp 222] -[check_dims] Jnn#480 Jnn#484 dim#18297 dim#18309 half#898 i#81906 i#81913 i#81920 i#81925 i#81932 ishape_1#69 ishape_2#69 lanetype#18297 lanetype#18309 shape#3772 shape#3784 sx#15063 -dims \ = Jnn#480, Jnn#484, dim#18297, dim#18309, half#898, i#81906, i#81913, i#81920, i#81925, i#81932, ishape_1#69, ishape_2#69, lanetype#18297, lanetype#18309, shape#3772, shape#3784, sx#15063 -[visit_exp `VEXTBINOP`_instr{ishape_1#69, ishape_2#69}(`%`_ishape{shape#3772, Jnn#480}(`%X%`_shape{lanetype#18297, dim#18297, i#81913}(`I64`_lanetype, `%`_dim{i#81920}(2))), `%`_ishape{shape#3784, Jnn#484}(`%X%`_shape{lanetype#18309, dim#18309, i#81925}(`I32`_lanetype, `%`_dim{i#81932}(4))), `EXTMUL`_vextbinop__{half#898, sx#15063}(`HIGH`_half, `U`_sx))] -[visit_exp ishape_1#69] -[visit_id ishape_1#69] -[visit_exp ishape_2#69] -[visit_id ishape_2#69] -[visit_exp (`%`_ishape{shape#3772, Jnn#480}(`%X%`_shape{lanetype#18297, dim#18297, i#81913}(`I64`_lanetype, `%`_dim{i#81920}(2))), `%`_ishape{shape#3784, Jnn#484}(`%X%`_shape{lanetype#18309, dim#18309, i#81925}(`I32`_lanetype, `%`_dim{i#81932}(4))), `EXTMUL`_vextbinop__{half#898, sx#15063}(`HIGH`_half, `U`_sx))] -[visit_exp `%`_ishape{shape#3772, Jnn#480}(`%X%`_shape{lanetype#18297, dim#18297, i#81913}(`I64`_lanetype, `%`_dim{i#81920}(2)))] -[visit_exp shape#3772] -[visit_id shape#3772] -[visit_exp Jnn#480] -[visit_id Jnn#480] -[visit_exp (`%X%`_shape{lanetype#18297, dim#18297, i#81913}(`I64`_lanetype, `%`_dim{i#81920}(2)))] -[visit_exp `%X%`_shape{lanetype#18297, dim#18297, i#81913}(`I64`_lanetype, `%`_dim{i#81920}(2))] -[visit_exp lanetype#18297] -[visit_id lanetype#18297] -[visit_exp dim#18297] -[visit_id dim#18297] -[visit_exp i#81913] -[visit_id i#81913] -[visit_exp (`I64`_lanetype, `%`_dim{i#81920}(2))] +[check_dims] +dims \ = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#81920}(2)] -[visit_exp i#81920] -[visit_id i#81920] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%`_ishape{shape#3784, Jnn#484}(`%X%`_shape{lanetype#18309, dim#18309, i#81925}(`I32`_lanetype, `%`_dim{i#81932}(4)))] -[visit_exp shape#3784] -[visit_id shape#3784] -[visit_exp Jnn#484] -[visit_id Jnn#484] -[visit_exp (`%X%`_shape{lanetype#18309, dim#18309, i#81925}(`I32`_lanetype, `%`_dim{i#81932}(4)))] -[visit_exp `%X%`_shape{lanetype#18309, dim#18309, i#81925}(`I32`_lanetype, `%`_dim{i#81932}(4))] -[visit_exp lanetype#18309] -[visit_id lanetype#18309] -[visit_exp dim#18309] -[visit_id dim#18309] -[visit_exp i#81925] -[visit_id i#81925] -[visit_exp (`I32`_lanetype, `%`_dim{i#81932}(4))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#81932}(4)] -[visit_exp i#81932] -[visit_id i#81932] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__{half#898, sx#15063}(`HIGH`_half, `U`_sx)] -[visit_exp half#898] -[visit_id half#898] -[visit_exp sx#15063] -[visit_id sx#15063] +[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)] [visit_exp (`HIGH`_half, `U`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#81906}(223)] -[visit_exp i#81906] -[visit_id i#81906] +[visit_exp `%`_u32(223)] [visit_exp (223)] [visit_exp 223] ps' = [check_dims] -[check_dims] dim#18532 i#82286 i#82293 i#82300 lanetype#18532 shape#3877 -dims \ = dim#18532, i#82286, i#82293, i#82300, lanetype#18532, shape#3877 -[visit_exp `VUNOP`_instr{shape#3877}(`%X%`_shape{lanetype#18532, dim#18532, i#82293}(`F32`_lanetype, `%`_dim{i#82300}(4)), `CEIL`_vunop_)] -[visit_exp shape#3877] -[visit_id shape#3877] -[visit_exp (`%X%`_shape{lanetype#18532, dim#18532, i#82293}(`F32`_lanetype, `%`_dim{i#82300}(4)), `CEIL`_vunop_)] -[visit_exp `%X%`_shape{lanetype#18532, dim#18532, i#82293}(`F32`_lanetype, `%`_dim{i#82300}(4))] -[visit_exp lanetype#18532] -[visit_id lanetype#18532] -[visit_exp dim#18532] -[visit_id dim#18532] -[visit_exp i#82293] -[visit_id i#82293] -[visit_exp (`F32`_lanetype, `%`_dim{i#82300}(4))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `CEIL`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `CEIL`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#82300}(4)] -[visit_exp i#82300] -[visit_id i#82300] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `CEIL`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#82286}(103)] -[visit_exp i#82286] -[visit_id i#82286] +[visit_exp `%`_u32(103)] [visit_exp (103)] [visit_exp 103] -[check_dims] dim#18574 i#82383 i#82390 i#82397 lanetype#18574 shape#3879 -dims \ = dim#18574, i#82383, i#82390, i#82397, lanetype#18574, shape#3879 -[visit_exp `VUNOP`_instr{shape#3879}(`%X%`_shape{lanetype#18574, dim#18574, i#82390}(`F32`_lanetype, `%`_dim{i#82397}(4)), `FLOOR`_vunop_)] -[visit_exp shape#3879] -[visit_id shape#3879] -[visit_exp (`%X%`_shape{lanetype#18574, dim#18574, i#82390}(`F32`_lanetype, `%`_dim{i#82397}(4)), `FLOOR`_vunop_)] -[visit_exp `%X%`_shape{lanetype#18574, dim#18574, i#82390}(`F32`_lanetype, `%`_dim{i#82397}(4))] -[visit_exp lanetype#18574] -[visit_id lanetype#18574] -[visit_exp dim#18574] -[visit_id dim#18574] -[visit_exp i#82390] -[visit_id i#82390] -[visit_exp (`F32`_lanetype, `%`_dim{i#82397}(4))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `FLOOR`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `FLOOR`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#82397}(4)] -[visit_exp i#82397] -[visit_id i#82397] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `FLOOR`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#82383}(104)] -[visit_exp i#82383] -[visit_id i#82383] +[visit_exp `%`_u32(104)] [visit_exp (104)] [visit_exp 104] -[check_dims] dim#18616 i#82480 i#82487 i#82494 lanetype#18616 shape#3881 -dims \ = dim#18616, i#82480, i#82487, i#82494, lanetype#18616, shape#3881 -[visit_exp `VUNOP`_instr{shape#3881}(`%X%`_shape{lanetype#18616, dim#18616, i#82487}(`F32`_lanetype, `%`_dim{i#82494}(4)), `TRUNC`_vunop_)] -[visit_exp shape#3881] -[visit_id shape#3881] -[visit_exp (`%X%`_shape{lanetype#18616, dim#18616, i#82487}(`F32`_lanetype, `%`_dim{i#82494}(4)), `TRUNC`_vunop_)] -[visit_exp `%X%`_shape{lanetype#18616, dim#18616, i#82487}(`F32`_lanetype, `%`_dim{i#82494}(4))] -[visit_exp lanetype#18616] -[visit_id lanetype#18616] -[visit_exp dim#18616] -[visit_id dim#18616] -[visit_exp i#82487] -[visit_id i#82487] -[visit_exp (`F32`_lanetype, `%`_dim{i#82494}(4))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#82494}(4)] -[visit_exp i#82494] -[visit_id i#82494] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `TRUNC`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#82480}(105)] -[visit_exp i#82480] -[visit_id i#82480] +[visit_exp `%`_u32(105)] [visit_exp (105)] [visit_exp 105] -[check_dims] dim#18658 i#82577 i#82584 i#82591 lanetype#18658 shape#3883 -dims \ = dim#18658, i#82577, i#82584, i#82591, lanetype#18658, shape#3883 -[visit_exp `VUNOP`_instr{shape#3883}(`%X%`_shape{lanetype#18658, dim#18658, i#82584}(`F32`_lanetype, `%`_dim{i#82591}(4)), `NEAREST`_vunop_)] -[visit_exp shape#3883] -[visit_id shape#3883] -[visit_exp (`%X%`_shape{lanetype#18658, dim#18658, i#82584}(`F32`_lanetype, `%`_dim{i#82591}(4)), `NEAREST`_vunop_)] -[visit_exp `%X%`_shape{lanetype#18658, dim#18658, i#82584}(`F32`_lanetype, `%`_dim{i#82591}(4))] -[visit_exp lanetype#18658] -[visit_id lanetype#18658] -[visit_exp dim#18658] -[visit_id dim#18658] -[visit_exp i#82584] -[visit_id i#82584] -[visit_exp (`F32`_lanetype, `%`_dim{i#82591}(4))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEAREST`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEAREST`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#82591}(4)] -[visit_exp i#82591] -[visit_id i#82591] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `NEAREST`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#82577}(106)] -[visit_exp i#82577] -[visit_id i#82577] +[visit_exp `%`_u32(106)] [visit_exp (106)] [visit_exp 106] -[check_dims] dim#18700 i#82674 i#82681 i#82688 lanetype#18700 shape#3885 -dims \ = dim#18700, i#82674, i#82681, i#82688, lanetype#18700, shape#3885 -[visit_exp `VUNOP`_instr{shape#3885}(`%X%`_shape{lanetype#18700, dim#18700, i#82681}(`F32`_lanetype, `%`_dim{i#82688}(4)), `ABS`_vunop_)] -[visit_exp shape#3885] -[visit_id shape#3885] -[visit_exp (`%X%`_shape{lanetype#18700, dim#18700, i#82681}(`F32`_lanetype, `%`_dim{i#82688}(4)), `ABS`_vunop_)] -[visit_exp `%X%`_shape{lanetype#18700, dim#18700, i#82681}(`F32`_lanetype, `%`_dim{i#82688}(4))] -[visit_exp lanetype#18700] -[visit_id lanetype#18700] -[visit_exp dim#18700] -[visit_id dim#18700] -[visit_exp i#82681] -[visit_id i#82681] -[visit_exp (`F32`_lanetype, `%`_dim{i#82688}(4))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#82688}(4)] -[visit_exp i#82688] -[visit_id i#82688] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `ABS`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#82674}(224)] -[visit_exp i#82674] -[visit_id i#82674] +[visit_exp `%`_u32(224)] [visit_exp (224)] [visit_exp 224] -[check_dims] dim#18742 i#82771 i#82778 i#82785 lanetype#18742 shape#3887 -dims \ = dim#18742, i#82771, i#82778, i#82785, lanetype#18742, shape#3887 -[visit_exp `VUNOP`_instr{shape#3887}(`%X%`_shape{lanetype#18742, dim#18742, i#82778}(`F32`_lanetype, `%`_dim{i#82785}(4)), `NEG`_vunop_)] -[visit_exp shape#3887] -[visit_id shape#3887] -[visit_exp (`%X%`_shape{lanetype#18742, dim#18742, i#82778}(`F32`_lanetype, `%`_dim{i#82785}(4)), `NEG`_vunop_)] -[visit_exp `%X%`_shape{lanetype#18742, dim#18742, i#82778}(`F32`_lanetype, `%`_dim{i#82785}(4))] -[visit_exp lanetype#18742] -[visit_id lanetype#18742] -[visit_exp dim#18742] -[visit_id dim#18742] -[visit_exp i#82778] -[visit_id i#82778] -[visit_exp (`F32`_lanetype, `%`_dim{i#82785}(4))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#82785}(4)] -[visit_exp i#82785] -[visit_id i#82785] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `NEG`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#82771}(225)] -[visit_exp i#82771] -[visit_id i#82771] +[visit_exp `%`_u32(225)] [visit_exp (225)] [visit_exp 225] -[check_dims] dim#18784 i#82868 i#82875 i#82882 lanetype#18784 shape#3889 -dims \ = dim#18784, i#82868, i#82875, i#82882, lanetype#18784, shape#3889 -[visit_exp `VUNOP`_instr{shape#3889}(`%X%`_shape{lanetype#18784, dim#18784, i#82875}(`F32`_lanetype, `%`_dim{i#82882}(4)), `SQRT`_vunop_)] -[visit_exp shape#3889] -[visit_id shape#3889] -[visit_exp (`%X%`_shape{lanetype#18784, dim#18784, i#82875}(`F32`_lanetype, `%`_dim{i#82882}(4)), `SQRT`_vunop_)] -[visit_exp `%X%`_shape{lanetype#18784, dim#18784, i#82875}(`F32`_lanetype, `%`_dim{i#82882}(4))] -[visit_exp lanetype#18784] -[visit_id lanetype#18784] -[visit_exp dim#18784] -[visit_id dim#18784] -[visit_exp i#82875] -[visit_id i#82875] -[visit_exp (`F32`_lanetype, `%`_dim{i#82882}(4))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SQRT`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SQRT`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#82882}(4)] -[visit_exp i#82882] -[visit_id i#82882] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `SQRT`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#82868}(227)] -[visit_exp i#82868] -[visit_id i#82868] +[visit_exp `%`_u32(227)] [visit_exp (227)] [visit_exp 227] ps' = [check_dims] -[check_dims] dim#18826 i#82965 i#82972 i#82979 lanetype#18826 shape#3891 -dims \ = dim#18826, i#82965, i#82972, i#82979, lanetype#18826, shape#3891 -[visit_exp `VBINOP`_instr{shape#3891}(`%X%`_shape{lanetype#18826, dim#18826, i#82972}(`F32`_lanetype, `%`_dim{i#82979}(4)), `ADD`_vbinop_)] -[visit_exp shape#3891] -[visit_id shape#3891] -[visit_exp (`%X%`_shape{lanetype#18826, dim#18826, i#82972}(`F32`_lanetype, `%`_dim{i#82979}(4)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#18826, dim#18826, i#82972}(`F32`_lanetype, `%`_dim{i#82979}(4))] -[visit_exp lanetype#18826] -[visit_id lanetype#18826] -[visit_exp dim#18826] -[visit_id dim#18826] -[visit_exp i#82972] -[visit_id i#82972] -[visit_exp (`F32`_lanetype, `%`_dim{i#82979}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#82979}(4)] -[visit_exp i#82979] -[visit_id i#82979] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `ADD`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#82965}(228)] -[visit_exp i#82965] -[visit_id i#82965] +[visit_exp `%`_u32(228)] [visit_exp (228)] [visit_exp 228] -[check_dims] dim#18868 i#83062 i#83069 i#83076 lanetype#18868 shape#3893 -dims \ = dim#18868, i#83062, i#83069, i#83076, lanetype#18868, shape#3893 -[visit_exp `VBINOP`_instr{shape#3893}(`%X%`_shape{lanetype#18868, dim#18868, i#83069}(`F32`_lanetype, `%`_dim{i#83076}(4)), `SUB`_vbinop_)] -[visit_exp shape#3893] -[visit_id shape#3893] -[visit_exp (`%X%`_shape{lanetype#18868, dim#18868, i#83069}(`F32`_lanetype, `%`_dim{i#83076}(4)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#18868, dim#18868, i#83069}(`F32`_lanetype, `%`_dim{i#83076}(4))] -[visit_exp lanetype#18868] -[visit_id lanetype#18868] -[visit_exp dim#18868] -[visit_id dim#18868] -[visit_exp i#83069] -[visit_id i#83069] -[visit_exp (`F32`_lanetype, `%`_dim{i#83076}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#83076}(4)] -[visit_exp i#83076] -[visit_id i#83076] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `SUB`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#83062}(229)] -[visit_exp i#83062] -[visit_id i#83062] +[visit_exp `%`_u32(229)] [visit_exp (229)] [visit_exp 229] -[check_dims] dim#18910 i#83159 i#83166 i#83173 lanetype#18910 shape#3895 -dims \ = dim#18910, i#83159, i#83166, i#83173, lanetype#18910, shape#3895 -[visit_exp `VBINOP`_instr{shape#3895}(`%X%`_shape{lanetype#18910, dim#18910, i#83166}(`F32`_lanetype, `%`_dim{i#83173}(4)), `MUL`_vbinop_)] -[visit_exp shape#3895] -[visit_id shape#3895] -[visit_exp (`%X%`_shape{lanetype#18910, dim#18910, i#83166}(`F32`_lanetype, `%`_dim{i#83173}(4)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#18910, dim#18910, i#83166}(`F32`_lanetype, `%`_dim{i#83173}(4))] -[visit_exp lanetype#18910] -[visit_id lanetype#18910] -[visit_exp dim#18910] -[visit_id dim#18910] -[visit_exp i#83166] -[visit_id i#83166] -[visit_exp (`F32`_lanetype, `%`_dim{i#83173}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#83173}(4)] -[visit_exp i#83173] -[visit_id i#83173] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `MUL`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#83159}(230)] -[visit_exp i#83159] -[visit_id i#83159] +[visit_exp `%`_u32(230)] [visit_exp (230)] [visit_exp 230] -[check_dims] dim#18952 i#83256 i#83263 i#83270 lanetype#18952 shape#3897 -dims \ = dim#18952, i#83256, i#83263, i#83270, lanetype#18952, shape#3897 -[visit_exp `VBINOP`_instr{shape#3897}(`%X%`_shape{lanetype#18952, dim#18952, i#83263}(`F32`_lanetype, `%`_dim{i#83270}(4)), `DIV`_vbinop_)] -[visit_exp shape#3897] -[visit_id shape#3897] -[visit_exp (`%X%`_shape{lanetype#18952, dim#18952, i#83263}(`F32`_lanetype, `%`_dim{i#83270}(4)), `DIV`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#18952, dim#18952, i#83263}(`F32`_lanetype, `%`_dim{i#83270}(4))] -[visit_exp lanetype#18952] -[visit_id lanetype#18952] -[visit_exp dim#18952] -[visit_id dim#18952] -[visit_exp i#83263] -[visit_id i#83263] -[visit_exp (`F32`_lanetype, `%`_dim{i#83270}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `DIV`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `DIV`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#83270}(4)] -[visit_exp i#83270] -[visit_id i#83270] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `DIV`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#83256}(231)] -[visit_exp i#83256] -[visit_id i#83256] +[visit_exp `%`_u32(231)] [visit_exp (231)] [visit_exp 231] -[check_dims] dim#18994 i#83353 i#83360 i#83367 lanetype#18994 shape#3899 -dims \ = dim#18994, i#83353, i#83360, i#83367, lanetype#18994, shape#3899 -[visit_exp `VBINOP`_instr{shape#3899}(`%X%`_shape{lanetype#18994, dim#18994, i#83360}(`F32`_lanetype, `%`_dim{i#83367}(4)), `MIN`_vbinop_)] -[visit_exp shape#3899] -[visit_id shape#3899] -[visit_exp (`%X%`_shape{lanetype#18994, dim#18994, i#83360}(`F32`_lanetype, `%`_dim{i#83367}(4)), `MIN`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#18994, dim#18994, i#83360}(`F32`_lanetype, `%`_dim{i#83367}(4))] -[visit_exp lanetype#18994] -[visit_id lanetype#18994] -[visit_exp dim#18994] -[visit_id dim#18994] -[visit_exp i#83360] -[visit_id i#83360] -[visit_exp (`F32`_lanetype, `%`_dim{i#83367}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MIN`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MIN`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#83367}(4)] -[visit_exp i#83367] -[visit_id i#83367] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `MIN`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#83353}(232)] -[visit_exp i#83353] -[visit_id i#83353] +[visit_exp `%`_u32(232)] [visit_exp (232)] [visit_exp 232] -[check_dims] dim#19036 i#83450 i#83457 i#83464 lanetype#19036 shape#3901 -dims \ = dim#19036, i#83450, i#83457, i#83464, lanetype#19036, shape#3901 -[visit_exp `VBINOP`_instr{shape#3901}(`%X%`_shape{lanetype#19036, dim#19036, i#83457}(`F32`_lanetype, `%`_dim{i#83464}(4)), `MAX`_vbinop_)] -[visit_exp shape#3901] -[visit_id shape#3901] -[visit_exp (`%X%`_shape{lanetype#19036, dim#19036, i#83457}(`F32`_lanetype, `%`_dim{i#83464}(4)), `MAX`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19036, dim#19036, i#83457}(`F32`_lanetype, `%`_dim{i#83464}(4))] -[visit_exp lanetype#19036] -[visit_id lanetype#19036] -[visit_exp dim#19036] -[visit_id dim#19036] -[visit_exp i#83457] -[visit_id i#83457] -[visit_exp (`F32`_lanetype, `%`_dim{i#83464}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MAX`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MAX`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#83464}(4)] -[visit_exp i#83464] -[visit_id i#83464] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `MAX`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#83450}(233)] -[visit_exp i#83450] -[visit_id i#83450] +[visit_exp `%`_u32(233)] [visit_exp (233)] [visit_exp 233] -[check_dims] dim#19078 i#83547 i#83554 i#83561 lanetype#19078 shape#3903 -dims \ = dim#19078, i#83547, i#83554, i#83561, lanetype#19078, shape#3903 -[visit_exp `VBINOP`_instr{shape#3903}(`%X%`_shape{lanetype#19078, dim#19078, i#83554}(`F32`_lanetype, `%`_dim{i#83561}(4)), `PMIN`_vbinop_)] -[visit_exp shape#3903] -[visit_id shape#3903] -[visit_exp (`%X%`_shape{lanetype#19078, dim#19078, i#83554}(`F32`_lanetype, `%`_dim{i#83561}(4)), `PMIN`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19078, dim#19078, i#83554}(`F32`_lanetype, `%`_dim{i#83561}(4))] -[visit_exp lanetype#19078] -[visit_id lanetype#19078] -[visit_exp dim#19078] -[visit_id dim#19078] -[visit_exp i#83554] -[visit_id i#83554] -[visit_exp (`F32`_lanetype, `%`_dim{i#83561}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMIN`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMIN`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#83561}(4)] -[visit_exp i#83561] -[visit_id i#83561] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `PMIN`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#83547}(234)] -[visit_exp i#83547] -[visit_id i#83547] +[visit_exp `%`_u32(234)] [visit_exp (234)] [visit_exp 234] -[check_dims] dim#19120 i#83644 i#83651 i#83658 lanetype#19120 shape#3905 -dims \ = dim#19120, i#83644, i#83651, i#83658, lanetype#19120, shape#3905 -[visit_exp `VBINOP`_instr{shape#3905}(`%X%`_shape{lanetype#19120, dim#19120, i#83651}(`F32`_lanetype, `%`_dim{i#83658}(4)), `PMAX`_vbinop_)] -[visit_exp shape#3905] -[visit_id shape#3905] -[visit_exp (`%X%`_shape{lanetype#19120, dim#19120, i#83651}(`F32`_lanetype, `%`_dim{i#83658}(4)), `PMAX`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19120, dim#19120, i#83651}(`F32`_lanetype, `%`_dim{i#83658}(4))] -[visit_exp lanetype#19120] -[visit_id lanetype#19120] -[visit_exp dim#19120] -[visit_id dim#19120] -[visit_exp i#83651] -[visit_id i#83651] -[visit_exp (`F32`_lanetype, `%`_dim{i#83658}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMAX`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMAX`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#83658}(4)] -[visit_exp i#83658] -[visit_id i#83658] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `PMAX`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#83644}(235)] -[visit_exp i#83644] -[visit_id i#83644] +[visit_exp `%`_u32(235)] [visit_exp (235)] [visit_exp 235] -[check_dims] dim#19162 i#83741 i#83748 i#83755 lanetype#19162 shape#3907 -dims \ = dim#19162, i#83741, i#83748, i#83755, lanetype#19162, shape#3907 -[visit_exp `VBINOP`_instr{shape#3907}(`%X%`_shape{lanetype#19162, dim#19162, i#83748}(`F32`_lanetype, `%`_dim{i#83755}(4)), `RELAXED_MIN`_vbinop_)] -[visit_exp shape#3907] -[visit_id shape#3907] -[visit_exp (`%X%`_shape{lanetype#19162, dim#19162, i#83748}(`F32`_lanetype, `%`_dim{i#83755}(4)), `RELAXED_MIN`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19162, dim#19162, i#83748}(`F32`_lanetype, `%`_dim{i#83755}(4))] -[visit_exp lanetype#19162] -[visit_id lanetype#19162] -[visit_exp dim#19162] -[visit_id dim#19162] -[visit_exp i#83748] -[visit_id i#83748] -[visit_exp (`F32`_lanetype, `%`_dim{i#83755}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MIN`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MIN`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#83755}(4)] -[visit_exp i#83755] -[visit_id i#83755] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `RELAXED_MIN`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#83741}(269)] -[visit_exp i#83741] -[visit_id i#83741] +[visit_exp `%`_u32(269)] [visit_exp (269)] [visit_exp 269] -[check_dims] dim#19204 i#83838 i#83845 i#83852 lanetype#19204 shape#3909 -dims \ = dim#19204, i#83838, i#83845, i#83852, lanetype#19204, shape#3909 -[visit_exp `VBINOP`_instr{shape#3909}(`%X%`_shape{lanetype#19204, dim#19204, i#83845}(`F32`_lanetype, `%`_dim{i#83852}(4)), `RELAXED_MAX`_vbinop_)] -[visit_exp shape#3909] -[visit_id shape#3909] -[visit_exp (`%X%`_shape{lanetype#19204, dim#19204, i#83845}(`F32`_lanetype, `%`_dim{i#83852}(4)), `RELAXED_MAX`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19204, dim#19204, i#83845}(`F32`_lanetype, `%`_dim{i#83852}(4))] -[visit_exp lanetype#19204] -[visit_id lanetype#19204] -[visit_exp dim#19204] -[visit_id dim#19204] -[visit_exp i#83845] -[visit_id i#83845] -[visit_exp (`F32`_lanetype, `%`_dim{i#83852}(4))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MAX`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MAX`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#83852}(4)] -[visit_exp i#83852] -[visit_id i#83852] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `RELAXED_MAX`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#83838}(270)] -[visit_exp i#83838] -[visit_id i#83838] +[visit_exp `%`_u32(270)] [visit_exp (270)] [visit_exp 270] ps' = [check_dims] -[check_dims] dim#19246 i#83935 i#83942 i#83949 lanetype#19246 shape#3911 -dims \ = dim#19246, i#83935, i#83942, i#83949, lanetype#19246, shape#3911 -[visit_exp `VTERNOP`_instr{shape#3911}(`%X%`_shape{lanetype#19246, dim#19246, i#83942}(`F32`_lanetype, `%`_dim{i#83949}(4)), `RELAXED_MADD`_vternop_)] -[visit_exp shape#3911] -[visit_id shape#3911] -[visit_exp (`%X%`_shape{lanetype#19246, dim#19246, i#83942}(`F32`_lanetype, `%`_dim{i#83949}(4)), `RELAXED_MADD`_vternop_)] -[visit_exp `%X%`_shape{lanetype#19246, dim#19246, i#83942}(`F32`_lanetype, `%`_dim{i#83949}(4))] -[visit_exp lanetype#19246] -[visit_id lanetype#19246] -[visit_exp dim#19246] -[visit_id dim#19246] -[visit_exp i#83942] -[visit_id i#83942] -[visit_exp (`F32`_lanetype, `%`_dim{i#83949}(4))] +[check_dims] +dims \ = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MADD`_vternop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MADD`_vternop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#83949}(4)] -[visit_exp i#83949] -[visit_id i#83949] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `RELAXED_MADD`_vternop_] [visit_exp ()] -[visit_exp `%`_u32{i#83935}(261)] -[visit_exp i#83935] -[visit_id i#83935] +[visit_exp `%`_u32(261)] [visit_exp (261)] [visit_exp 261] -[check_dims] dim#19288 i#84032 i#84039 i#84046 lanetype#19288 shape#3913 -dims \ = dim#19288, i#84032, i#84039, i#84046, lanetype#19288, shape#3913 -[visit_exp `VTERNOP`_instr{shape#3913}(`%X%`_shape{lanetype#19288, dim#19288, i#84039}(`F32`_lanetype, `%`_dim{i#84046}(4)), `RELAXED_NMADD`_vternop_)] -[visit_exp shape#3913] -[visit_id shape#3913] -[visit_exp (`%X%`_shape{lanetype#19288, dim#19288, i#84039}(`F32`_lanetype, `%`_dim{i#84046}(4)), `RELAXED_NMADD`_vternop_)] -[visit_exp `%X%`_shape{lanetype#19288, dim#19288, i#84039}(`F32`_lanetype, `%`_dim{i#84046}(4))] -[visit_exp lanetype#19288] -[visit_id lanetype#19288] -[visit_exp dim#19288] -[visit_id dim#19288] -[visit_exp i#84039] -[visit_id i#84039] -[visit_exp (`F32`_lanetype, `%`_dim{i#84046}(4))] +[check_dims] +dims \ = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_NMADD`_vternop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_NMADD`_vternop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#84046}(4)] -[visit_exp i#84046] -[visit_id i#84046] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `RELAXED_NMADD`_vternop_] [visit_exp ()] -[visit_exp `%`_u32{i#84032}(262)] -[visit_exp i#84032] -[visit_id i#84032] +[visit_exp `%`_u32(262)] [visit_exp (262)] [visit_exp 262] ps' = [check_dims] -[check_dims] dim#19330 i#84129 i#84136 i#84143 lanetype#19330 shape#3915 -dims \ = dim#19330, i#84129, i#84136, i#84143, lanetype#19330, shape#3915 -[visit_exp `VUNOP`_instr{shape#3915}(`%X%`_shape{lanetype#19330, dim#19330, i#84136}(`F64`_lanetype, `%`_dim{i#84143}(2)), `CEIL`_vunop_)] -[visit_exp shape#3915] -[visit_id shape#3915] -[visit_exp (`%X%`_shape{lanetype#19330, dim#19330, i#84136}(`F64`_lanetype, `%`_dim{i#84143}(2)), `CEIL`_vunop_)] -[visit_exp `%X%`_shape{lanetype#19330, dim#19330, i#84136}(`F64`_lanetype, `%`_dim{i#84143}(2))] -[visit_exp lanetype#19330] -[visit_id lanetype#19330] -[visit_exp dim#19330] -[visit_id dim#19330] -[visit_exp i#84136] -[visit_id i#84136] -[visit_exp (`F64`_lanetype, `%`_dim{i#84143}(2))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `CEIL`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `CEIL`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#84143}(2)] -[visit_exp i#84143] -[visit_id i#84143] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `CEIL`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#84129}(116)] -[visit_exp i#84129] -[visit_id i#84129] +[visit_exp `%`_u32(116)] [visit_exp (116)] [visit_exp 116] -[check_dims] dim#19372 i#84226 i#84233 i#84240 lanetype#19372 shape#3917 -dims \ = dim#19372, i#84226, i#84233, i#84240, lanetype#19372, shape#3917 -[visit_exp `VUNOP`_instr{shape#3917}(`%X%`_shape{lanetype#19372, dim#19372, i#84233}(`F64`_lanetype, `%`_dim{i#84240}(2)), `FLOOR`_vunop_)] -[visit_exp shape#3917] -[visit_id shape#3917] -[visit_exp (`%X%`_shape{lanetype#19372, dim#19372, i#84233}(`F64`_lanetype, `%`_dim{i#84240}(2)), `FLOOR`_vunop_)] -[visit_exp `%X%`_shape{lanetype#19372, dim#19372, i#84233}(`F64`_lanetype, `%`_dim{i#84240}(2))] -[visit_exp lanetype#19372] -[visit_id lanetype#19372] -[visit_exp dim#19372] -[visit_id dim#19372] -[visit_exp i#84233] -[visit_id i#84233] -[visit_exp (`F64`_lanetype, `%`_dim{i#84240}(2))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `FLOOR`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `FLOOR`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#84240}(2)] -[visit_exp i#84240] -[visit_id i#84240] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `FLOOR`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#84226}(117)] -[visit_exp i#84226] -[visit_id i#84226] +[visit_exp `%`_u32(117)] [visit_exp (117)] [visit_exp 117] -[check_dims] dim#19414 i#84323 i#84330 i#84337 lanetype#19414 shape#3919 -dims \ = dim#19414, i#84323, i#84330, i#84337, lanetype#19414, shape#3919 -[visit_exp `VUNOP`_instr{shape#3919}(`%X%`_shape{lanetype#19414, dim#19414, i#84330}(`F64`_lanetype, `%`_dim{i#84337}(2)), `TRUNC`_vunop_)] -[visit_exp shape#3919] -[visit_id shape#3919] -[visit_exp (`%X%`_shape{lanetype#19414, dim#19414, i#84330}(`F64`_lanetype, `%`_dim{i#84337}(2)), `TRUNC`_vunop_)] -[visit_exp `%X%`_shape{lanetype#19414, dim#19414, i#84330}(`F64`_lanetype, `%`_dim{i#84337}(2))] -[visit_exp lanetype#19414] -[visit_id lanetype#19414] -[visit_exp dim#19414] -[visit_id dim#19414] -[visit_exp i#84330] -[visit_id i#84330] -[visit_exp (`F64`_lanetype, `%`_dim{i#84337}(2))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#84337}(2)] -[visit_exp i#84337] -[visit_id i#84337] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `TRUNC`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#84323}(122)] -[visit_exp i#84323] -[visit_id i#84323] +[visit_exp `%`_u32(122)] [visit_exp (122)] [visit_exp 122] -[check_dims] dim#19456 i#84420 i#84427 i#84434 lanetype#19456 shape#3921 -dims \ = dim#19456, i#84420, i#84427, i#84434, lanetype#19456, shape#3921 -[visit_exp `VUNOP`_instr{shape#3921}(`%X%`_shape{lanetype#19456, dim#19456, i#84427}(`F64`_lanetype, `%`_dim{i#84434}(2)), `NEAREST`_vunop_)] -[visit_exp shape#3921] -[visit_id shape#3921] -[visit_exp (`%X%`_shape{lanetype#19456, dim#19456, i#84427}(`F64`_lanetype, `%`_dim{i#84434}(2)), `NEAREST`_vunop_)] -[visit_exp `%X%`_shape{lanetype#19456, dim#19456, i#84427}(`F64`_lanetype, `%`_dim{i#84434}(2))] -[visit_exp lanetype#19456] -[visit_id lanetype#19456] -[visit_exp dim#19456] -[visit_id dim#19456] -[visit_exp i#84427] -[visit_id i#84427] -[visit_exp (`F64`_lanetype, `%`_dim{i#84434}(2))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEAREST`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEAREST`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#84434}(2)] -[visit_exp i#84434] -[visit_id i#84434] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `NEAREST`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#84420}(148)] -[visit_exp i#84420] -[visit_id i#84420] +[visit_exp `%`_u32(148)] [visit_exp (148)] [visit_exp 148] -[check_dims] dim#19498 i#84517 i#84524 i#84531 lanetype#19498 shape#3923 -dims \ = dim#19498, i#84517, i#84524, i#84531, lanetype#19498, shape#3923 -[visit_exp `VUNOP`_instr{shape#3923}(`%X%`_shape{lanetype#19498, dim#19498, i#84524}(`F64`_lanetype, `%`_dim{i#84531}(2)), `ABS`_vunop_)] -[visit_exp shape#3923] -[visit_id shape#3923] -[visit_exp (`%X%`_shape{lanetype#19498, dim#19498, i#84524}(`F64`_lanetype, `%`_dim{i#84531}(2)), `ABS`_vunop_)] -[visit_exp `%X%`_shape{lanetype#19498, dim#19498, i#84524}(`F64`_lanetype, `%`_dim{i#84531}(2))] -[visit_exp lanetype#19498] -[visit_id lanetype#19498] -[visit_exp dim#19498] -[visit_id dim#19498] -[visit_exp i#84524] -[visit_id i#84524] -[visit_exp (`F64`_lanetype, `%`_dim{i#84531}(2))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#84531}(2)] -[visit_exp i#84531] -[visit_id i#84531] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `ABS`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#84517}(236)] -[visit_exp i#84517] -[visit_id i#84517] +[visit_exp `%`_u32(236)] [visit_exp (236)] [visit_exp 236] -[check_dims] dim#19540 i#84614 i#84621 i#84628 lanetype#19540 shape#3925 -dims \ = dim#19540, i#84614, i#84621, i#84628, lanetype#19540, shape#3925 -[visit_exp `VUNOP`_instr{shape#3925}(`%X%`_shape{lanetype#19540, dim#19540, i#84621}(`F64`_lanetype, `%`_dim{i#84628}(2)), `NEG`_vunop_)] -[visit_exp shape#3925] -[visit_id shape#3925] -[visit_exp (`%X%`_shape{lanetype#19540, dim#19540, i#84621}(`F64`_lanetype, `%`_dim{i#84628}(2)), `NEG`_vunop_)] -[visit_exp `%X%`_shape{lanetype#19540, dim#19540, i#84621}(`F64`_lanetype, `%`_dim{i#84628}(2))] -[visit_exp lanetype#19540] -[visit_id lanetype#19540] -[visit_exp dim#19540] -[visit_id dim#19540] -[visit_exp i#84621] -[visit_id i#84621] -[visit_exp (`F64`_lanetype, `%`_dim{i#84628}(2))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#84628}(2)] -[visit_exp i#84628] -[visit_id i#84628] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `NEG`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#84614}(237)] -[visit_exp i#84614] -[visit_id i#84614] +[visit_exp `%`_u32(237)] [visit_exp (237)] [visit_exp 237] -[check_dims] dim#19582 i#84711 i#84718 i#84725 lanetype#19582 shape#3927 -dims \ = dim#19582, i#84711, i#84718, i#84725, lanetype#19582, shape#3927 -[visit_exp `VUNOP`_instr{shape#3927}(`%X%`_shape{lanetype#19582, dim#19582, i#84718}(`F64`_lanetype, `%`_dim{i#84725}(2)), `SQRT`_vunop_)] -[visit_exp shape#3927] -[visit_id shape#3927] -[visit_exp (`%X%`_shape{lanetype#19582, dim#19582, i#84718}(`F64`_lanetype, `%`_dim{i#84725}(2)), `SQRT`_vunop_)] -[visit_exp `%X%`_shape{lanetype#19582, dim#19582, i#84718}(`F64`_lanetype, `%`_dim{i#84725}(2))] -[visit_exp lanetype#19582] -[visit_id lanetype#19582] -[visit_exp dim#19582] -[visit_id dim#19582] -[visit_exp i#84718] -[visit_id i#84718] -[visit_exp (`F64`_lanetype, `%`_dim{i#84725}(2))] +[check_dims] +dims \ = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SQRT`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SQRT`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#84725}(2)] -[visit_exp i#84725] -[visit_id i#84725] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `SQRT`_vunop_] [visit_exp ()] -[visit_exp `%`_u32{i#84711}(239)] -[visit_exp i#84711] -[visit_id i#84711] +[visit_exp `%`_u32(239)] [visit_exp (239)] [visit_exp 239] ps' = [check_dims] -[check_dims] dim#19624 i#84808 i#84815 i#84822 lanetype#19624 shape#3929 -dims \ = dim#19624, i#84808, i#84815, i#84822, lanetype#19624, shape#3929 -[visit_exp `VBINOP`_instr{shape#3929}(`%X%`_shape{lanetype#19624, dim#19624, i#84815}(`F64`_lanetype, `%`_dim{i#84822}(2)), `ADD`_vbinop_)] -[visit_exp shape#3929] -[visit_id shape#3929] -[visit_exp (`%X%`_shape{lanetype#19624, dim#19624, i#84815}(`F64`_lanetype, `%`_dim{i#84822}(2)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19624, dim#19624, i#84815}(`F64`_lanetype, `%`_dim{i#84822}(2))] -[visit_exp lanetype#19624] -[visit_id lanetype#19624] -[visit_exp dim#19624] -[visit_id dim#19624] -[visit_exp i#84815] -[visit_id i#84815] -[visit_exp (`F64`_lanetype, `%`_dim{i#84822}(2))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#84822}(2)] -[visit_exp i#84822] -[visit_id i#84822] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `ADD`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#84808}(240)] -[visit_exp i#84808] -[visit_id i#84808] +[visit_exp `%`_u32(240)] [visit_exp (240)] [visit_exp 240] -[check_dims] dim#19666 i#84905 i#84912 i#84919 lanetype#19666 shape#3931 -dims \ = dim#19666, i#84905, i#84912, i#84919, lanetype#19666, shape#3931 -[visit_exp `VBINOP`_instr{shape#3931}(`%X%`_shape{lanetype#19666, dim#19666, i#84912}(`F64`_lanetype, `%`_dim{i#84919}(2)), `SUB`_vbinop_)] -[visit_exp shape#3931] -[visit_id shape#3931] -[visit_exp (`%X%`_shape{lanetype#19666, dim#19666, i#84912}(`F64`_lanetype, `%`_dim{i#84919}(2)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19666, dim#19666, i#84912}(`F64`_lanetype, `%`_dim{i#84919}(2))] -[visit_exp lanetype#19666] -[visit_id lanetype#19666] -[visit_exp dim#19666] -[visit_id dim#19666] -[visit_exp i#84912] -[visit_id i#84912] -[visit_exp (`F64`_lanetype, `%`_dim{i#84919}(2))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#84919}(2)] -[visit_exp i#84919] -[visit_id i#84919] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `SUB`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#84905}(241)] -[visit_exp i#84905] -[visit_id i#84905] +[visit_exp `%`_u32(241)] [visit_exp (241)] [visit_exp 241] -[check_dims] dim#19708 i#85002 i#85009 i#85016 lanetype#19708 shape#3933 -dims \ = dim#19708, i#85002, i#85009, i#85016, lanetype#19708, shape#3933 -[visit_exp `VBINOP`_instr{shape#3933}(`%X%`_shape{lanetype#19708, dim#19708, i#85009}(`F64`_lanetype, `%`_dim{i#85016}(2)), `MUL`_vbinop_)] -[visit_exp shape#3933] -[visit_id shape#3933] -[visit_exp (`%X%`_shape{lanetype#19708, dim#19708, i#85009}(`F64`_lanetype, `%`_dim{i#85016}(2)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19708, dim#19708, i#85009}(`F64`_lanetype, `%`_dim{i#85016}(2))] -[visit_exp lanetype#19708] -[visit_id lanetype#19708] -[visit_exp dim#19708] -[visit_id dim#19708] -[visit_exp i#85009] -[visit_id i#85009] -[visit_exp (`F64`_lanetype, `%`_dim{i#85016}(2))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#85016}(2)] -[visit_exp i#85016] -[visit_id i#85016] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `MUL`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#85002}(242)] -[visit_exp i#85002] -[visit_id i#85002] +[visit_exp `%`_u32(242)] [visit_exp (242)] [visit_exp 242] -[check_dims] dim#19750 i#85099 i#85106 i#85113 lanetype#19750 shape#3935 -dims \ = dim#19750, i#85099, i#85106, i#85113, lanetype#19750, shape#3935 -[visit_exp `VBINOP`_instr{shape#3935}(`%X%`_shape{lanetype#19750, dim#19750, i#85106}(`F64`_lanetype, `%`_dim{i#85113}(2)), `DIV`_vbinop_)] -[visit_exp shape#3935] -[visit_id shape#3935] -[visit_exp (`%X%`_shape{lanetype#19750, dim#19750, i#85106}(`F64`_lanetype, `%`_dim{i#85113}(2)), `DIV`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19750, dim#19750, i#85106}(`F64`_lanetype, `%`_dim{i#85113}(2))] -[visit_exp lanetype#19750] -[visit_id lanetype#19750] -[visit_exp dim#19750] -[visit_id dim#19750] -[visit_exp i#85106] -[visit_id i#85106] -[visit_exp (`F64`_lanetype, `%`_dim{i#85113}(2))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DIV`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DIV`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#85113}(2)] -[visit_exp i#85113] -[visit_id i#85113] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `DIV`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#85099}(243)] -[visit_exp i#85099] -[visit_id i#85099] +[visit_exp `%`_u32(243)] [visit_exp (243)] [visit_exp 243] -[check_dims] dim#19792 i#85196 i#85203 i#85210 lanetype#19792 shape#3937 -dims \ = dim#19792, i#85196, i#85203, i#85210, lanetype#19792, shape#3937 -[visit_exp `VBINOP`_instr{shape#3937}(`%X%`_shape{lanetype#19792, dim#19792, i#85203}(`F64`_lanetype, `%`_dim{i#85210}(2)), `MIN`_vbinop_)] -[visit_exp shape#3937] -[visit_id shape#3937] -[visit_exp (`%X%`_shape{lanetype#19792, dim#19792, i#85203}(`F64`_lanetype, `%`_dim{i#85210}(2)), `MIN`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19792, dim#19792, i#85203}(`F64`_lanetype, `%`_dim{i#85210}(2))] -[visit_exp lanetype#19792] -[visit_id lanetype#19792] -[visit_exp dim#19792] -[visit_id dim#19792] -[visit_exp i#85203] -[visit_id i#85203] -[visit_exp (`F64`_lanetype, `%`_dim{i#85210}(2))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MIN`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MIN`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#85210}(2)] -[visit_exp i#85210] -[visit_id i#85210] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `MIN`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#85196}(244)] -[visit_exp i#85196] -[visit_id i#85196] +[visit_exp `%`_u32(244)] [visit_exp (244)] [visit_exp 244] -[check_dims] dim#19834 i#85293 i#85300 i#85307 lanetype#19834 shape#3939 -dims \ = dim#19834, i#85293, i#85300, i#85307, lanetype#19834, shape#3939 -[visit_exp `VBINOP`_instr{shape#3939}(`%X%`_shape{lanetype#19834, dim#19834, i#85300}(`F64`_lanetype, `%`_dim{i#85307}(2)), `MAX`_vbinop_)] -[visit_exp shape#3939] -[visit_id shape#3939] -[visit_exp (`%X%`_shape{lanetype#19834, dim#19834, i#85300}(`F64`_lanetype, `%`_dim{i#85307}(2)), `MAX`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19834, dim#19834, i#85300}(`F64`_lanetype, `%`_dim{i#85307}(2))] -[visit_exp lanetype#19834] -[visit_id lanetype#19834] -[visit_exp dim#19834] -[visit_id dim#19834] -[visit_exp i#85300] -[visit_id i#85300] -[visit_exp (`F64`_lanetype, `%`_dim{i#85307}(2))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MAX`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MAX`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#85307}(2)] -[visit_exp i#85307] -[visit_id i#85307] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `MAX`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#85293}(245)] -[visit_exp i#85293] -[visit_id i#85293] +[visit_exp `%`_u32(245)] [visit_exp (245)] [visit_exp 245] -[check_dims] dim#19876 i#85390 i#85397 i#85404 lanetype#19876 shape#3941 -dims \ = dim#19876, i#85390, i#85397, i#85404, lanetype#19876, shape#3941 -[visit_exp `VBINOP`_instr{shape#3941}(`%X%`_shape{lanetype#19876, dim#19876, i#85397}(`F64`_lanetype, `%`_dim{i#85404}(2)), `PMIN`_vbinop_)] -[visit_exp shape#3941] -[visit_id shape#3941] -[visit_exp (`%X%`_shape{lanetype#19876, dim#19876, i#85397}(`F64`_lanetype, `%`_dim{i#85404}(2)), `PMIN`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19876, dim#19876, i#85397}(`F64`_lanetype, `%`_dim{i#85404}(2))] -[visit_exp lanetype#19876] -[visit_id lanetype#19876] -[visit_exp dim#19876] -[visit_id dim#19876] -[visit_exp i#85397] -[visit_id i#85397] -[visit_exp (`F64`_lanetype, `%`_dim{i#85404}(2))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMIN`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMIN`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#85404}(2)] -[visit_exp i#85404] -[visit_id i#85404] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `PMIN`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#85390}(246)] -[visit_exp i#85390] -[visit_id i#85390] +[visit_exp `%`_u32(246)] [visit_exp (246)] [visit_exp 246] -[check_dims] dim#19918 i#85487 i#85494 i#85501 lanetype#19918 shape#3943 -dims \ = dim#19918, i#85487, i#85494, i#85501, lanetype#19918, shape#3943 -[visit_exp `VBINOP`_instr{shape#3943}(`%X%`_shape{lanetype#19918, dim#19918, i#85494}(`F64`_lanetype, `%`_dim{i#85501}(2)), `PMAX`_vbinop_)] -[visit_exp shape#3943] -[visit_id shape#3943] -[visit_exp (`%X%`_shape{lanetype#19918, dim#19918, i#85494}(`F64`_lanetype, `%`_dim{i#85501}(2)), `PMAX`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19918, dim#19918, i#85494}(`F64`_lanetype, `%`_dim{i#85501}(2))] -[visit_exp lanetype#19918] -[visit_id lanetype#19918] -[visit_exp dim#19918] -[visit_id dim#19918] -[visit_exp i#85494] -[visit_id i#85494] -[visit_exp (`F64`_lanetype, `%`_dim{i#85501}(2))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMAX`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMAX`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#85501}(2)] -[visit_exp i#85501] -[visit_id i#85501] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `PMAX`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#85487}(247)] -[visit_exp i#85487] -[visit_id i#85487] +[visit_exp `%`_u32(247)] [visit_exp (247)] [visit_exp 247] -[check_dims] dim#19960 i#85584 i#85591 i#85598 lanetype#19960 shape#3945 -dims \ = dim#19960, i#85584, i#85591, i#85598, lanetype#19960, shape#3945 -[visit_exp `VBINOP`_instr{shape#3945}(`%X%`_shape{lanetype#19960, dim#19960, i#85591}(`F64`_lanetype, `%`_dim{i#85598}(2)), `RELAXED_MIN`_vbinop_)] -[visit_exp shape#3945] -[visit_id shape#3945] -[visit_exp (`%X%`_shape{lanetype#19960, dim#19960, i#85591}(`F64`_lanetype, `%`_dim{i#85598}(2)), `RELAXED_MIN`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#19960, dim#19960, i#85591}(`F64`_lanetype, `%`_dim{i#85598}(2))] -[visit_exp lanetype#19960] -[visit_id lanetype#19960] -[visit_exp dim#19960] -[visit_id dim#19960] -[visit_exp i#85591] -[visit_id i#85591] -[visit_exp (`F64`_lanetype, `%`_dim{i#85598}(2))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MIN`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MIN`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#85598}(2)] -[visit_exp i#85598] -[visit_id i#85598] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `RELAXED_MIN`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#85584}(271)] -[visit_exp i#85584] -[visit_id i#85584] +[visit_exp `%`_u32(271)] [visit_exp (271)] [visit_exp 271] -[check_dims] dim#20002 i#85681 i#85688 i#85695 lanetype#20002 shape#3947 -dims \ = dim#20002, i#85681, i#85688, i#85695, lanetype#20002, shape#3947 -[visit_exp `VBINOP`_instr{shape#3947}(`%X%`_shape{lanetype#20002, dim#20002, i#85688}(`F64`_lanetype, `%`_dim{i#85695}(2)), `RELAXED_MAX`_vbinop_)] -[visit_exp shape#3947] -[visit_id shape#3947] -[visit_exp (`%X%`_shape{lanetype#20002, dim#20002, i#85688}(`F64`_lanetype, `%`_dim{i#85695}(2)), `RELAXED_MAX`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#20002, dim#20002, i#85688}(`F64`_lanetype, `%`_dim{i#85695}(2))] -[visit_exp lanetype#20002] -[visit_id lanetype#20002] -[visit_exp dim#20002] -[visit_id dim#20002] -[visit_exp i#85688] -[visit_id i#85688] -[visit_exp (`F64`_lanetype, `%`_dim{i#85695}(2))] +[check_dims] +dims \ = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MAX`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MAX`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#85695}(2)] -[visit_exp i#85695] -[visit_id i#85695] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `RELAXED_MAX`_vbinop_] [visit_exp ()] -[visit_exp `%`_u32{i#85681}(272)] -[visit_exp i#85681] -[visit_id i#85681] +[visit_exp `%`_u32(272)] [visit_exp (272)] [visit_exp 272] ps' = [check_dims] -[check_dims] dim#20044 i#85778 i#85785 i#85792 lanetype#20044 shape#3949 -dims \ = dim#20044, i#85778, i#85785, i#85792, lanetype#20044, shape#3949 -[visit_exp `VTERNOP`_instr{shape#3949}(`%X%`_shape{lanetype#20044, dim#20044, i#85785}(`F64`_lanetype, `%`_dim{i#85792}(2)), `RELAXED_MADD`_vternop_)] -[visit_exp shape#3949] -[visit_id shape#3949] -[visit_exp (`%X%`_shape{lanetype#20044, dim#20044, i#85785}(`F64`_lanetype, `%`_dim{i#85792}(2)), `RELAXED_MADD`_vternop_)] -[visit_exp `%X%`_shape{lanetype#20044, dim#20044, i#85785}(`F64`_lanetype, `%`_dim{i#85792}(2))] -[visit_exp lanetype#20044] -[visit_id lanetype#20044] -[visit_exp dim#20044] -[visit_id dim#20044] -[visit_exp i#85785] -[visit_id i#85785] -[visit_exp (`F64`_lanetype, `%`_dim{i#85792}(2))] +[check_dims] +dims \ = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MADD`_vternop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MADD`_vternop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#85792}(2)] -[visit_exp i#85792] -[visit_id i#85792] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `RELAXED_MADD`_vternop_] [visit_exp ()] -[visit_exp `%`_u32{i#85778}(263)] -[visit_exp i#85778] -[visit_id i#85778] +[visit_exp `%`_u32(263)] [visit_exp (263)] [visit_exp 263] -[check_dims] dim#20086 i#85875 i#85882 i#85889 lanetype#20086 shape#3951 -dims \ = dim#20086, i#85875, i#85882, i#85889, lanetype#20086, shape#3951 -[visit_exp `VTERNOP`_instr{shape#3951}(`%X%`_shape{lanetype#20086, dim#20086, i#85882}(`F64`_lanetype, `%`_dim{i#85889}(2)), `RELAXED_NMADD`_vternop_)] -[visit_exp shape#3951] -[visit_id shape#3951] -[visit_exp (`%X%`_shape{lanetype#20086, dim#20086, i#85882}(`F64`_lanetype, `%`_dim{i#85889}(2)), `RELAXED_NMADD`_vternop_)] -[visit_exp `%X%`_shape{lanetype#20086, dim#20086, i#85882}(`F64`_lanetype, `%`_dim{i#85889}(2))] -[visit_exp lanetype#20086] -[visit_id lanetype#20086] -[visit_exp dim#20086] -[visit_id dim#20086] -[visit_exp i#85882] -[visit_id i#85882] -[visit_exp (`F64`_lanetype, `%`_dim{i#85889}(2))] +[check_dims] +dims \ = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_NMADD`_vternop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_NMADD`_vternop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#85889}(2)] -[visit_exp i#85889] -[visit_id i#85889] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `RELAXED_NMADD`_vternop_] [visit_exp ()] -[visit_exp `%`_u32{i#85875}(264)] -[visit_exp i#85875] -[visit_id i#85875] +[visit_exp `%`_u32(264)] [visit_exp (264)] [visit_exp 264] -[check_dims] dim#20128 i#85972 i#85979 i#85986 lanetype#20128 shape#3953 -dims \ = dim#20128, i#85972, i#85979, i#85986, lanetype#20128, shape#3953 -[visit_exp `VTERNOP`_instr{shape#3953}(`%X%`_shape{lanetype#20128, dim#20128, i#85979}(`I8`_lanetype, `%`_dim{i#85986}(16)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp shape#3953] -[visit_id shape#3953] -[visit_exp (`%X%`_shape{lanetype#20128, dim#20128, i#85979}(`I8`_lanetype, `%`_dim{i#85986}(16)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape{lanetype#20128, dim#20128, i#85979}(`I8`_lanetype, `%`_dim{i#85986}(16))] -[visit_exp lanetype#20128] -[visit_id lanetype#20128] -[visit_exp dim#20128] -[visit_id dim#20128] -[visit_exp i#85979] -[visit_id i#85979] -[visit_exp (`I8`_lanetype, `%`_dim{i#85986}(16))] +[check_dims] +dims \ = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#85986}(16)] -[visit_exp i#85986] -[visit_id i#85986] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `RELAXED_LANESELECT`_vternop_] [visit_exp ()] -[visit_exp `%`_u32{i#85972}(265)] -[visit_exp i#85972] -[visit_id i#85972] +[visit_exp `%`_u32(265)] [visit_exp (265)] [visit_exp 265] -[check_dims] dim#20155 i#86054 i#86061 i#86068 lanetype#20155 shape#3955 -dims \ = dim#20155, i#86054, i#86061, i#86068, lanetype#20155, shape#3955 -[visit_exp `VTERNOP`_instr{shape#3955}(`%X%`_shape{lanetype#20155, dim#20155, i#86061}(`I16`_lanetype, `%`_dim{i#86068}(8)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp shape#3955] -[visit_id shape#3955] -[visit_exp (`%X%`_shape{lanetype#20155, dim#20155, i#86061}(`I16`_lanetype, `%`_dim{i#86068}(8)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape{lanetype#20155, dim#20155, i#86061}(`I16`_lanetype, `%`_dim{i#86068}(8))] -[visit_exp lanetype#20155] -[visit_id lanetype#20155] -[visit_exp dim#20155] -[visit_id dim#20155] -[visit_exp i#86061] -[visit_id i#86061] -[visit_exp (`I16`_lanetype, `%`_dim{i#86068}(8))] +[check_dims] +dims \ = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#86068}(8)] -[visit_exp i#86068] -[visit_id i#86068] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `RELAXED_LANESELECT`_vternop_] [visit_exp ()] -[visit_exp `%`_u32{i#86054}(266)] -[visit_exp i#86054] -[visit_id i#86054] +[visit_exp `%`_u32(266)] [visit_exp (266)] [visit_exp 266] -[check_dims] dim#20182 i#86136 i#86143 i#86150 lanetype#20182 shape#3957 -dims \ = dim#20182, i#86136, i#86143, i#86150, lanetype#20182, shape#3957 -[visit_exp `VTERNOP`_instr{shape#3957}(`%X%`_shape{lanetype#20182, dim#20182, i#86143}(`I32`_lanetype, `%`_dim{i#86150}(4)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp shape#3957] -[visit_id shape#3957] -[visit_exp (`%X%`_shape{lanetype#20182, dim#20182, i#86143}(`I32`_lanetype, `%`_dim{i#86150}(4)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape{lanetype#20182, dim#20182, i#86143}(`I32`_lanetype, `%`_dim{i#86150}(4))] -[visit_exp lanetype#20182] -[visit_id lanetype#20182] -[visit_exp dim#20182] -[visit_id dim#20182] -[visit_exp i#86143] -[visit_id i#86143] -[visit_exp (`I32`_lanetype, `%`_dim{i#86150}(4))] +[check_dims] +dims \ = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#86150}(4)] -[visit_exp i#86150] -[visit_id i#86150] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `RELAXED_LANESELECT`_vternop_] [visit_exp ()] -[visit_exp `%`_u32{i#86136}(267)] -[visit_exp i#86136] -[visit_id i#86136] +[visit_exp `%`_u32(267)] [visit_exp (267)] [visit_exp 267] -[check_dims] dim#20209 i#86218 i#86225 i#86232 lanetype#20209 shape#3959 -dims \ = dim#20209, i#86218, i#86225, i#86232, lanetype#20209, shape#3959 -[visit_exp `VTERNOP`_instr{shape#3959}(`%X%`_shape{lanetype#20209, dim#20209, i#86225}(`I64`_lanetype, `%`_dim{i#86232}(2)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp shape#3959] -[visit_id shape#3959] -[visit_exp (`%X%`_shape{lanetype#20209, dim#20209, i#86225}(`I64`_lanetype, `%`_dim{i#86232}(2)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape{lanetype#20209, dim#20209, i#86225}(`I64`_lanetype, `%`_dim{i#86232}(2))] -[visit_exp lanetype#20209] -[visit_id lanetype#20209] -[visit_exp dim#20209] -[visit_id dim#20209] -[visit_exp i#86225] -[visit_id i#86225] -[visit_exp (`I64`_lanetype, `%`_dim{i#86232}(2))] +[check_dims] +dims \ = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#86232}(2)] -[visit_exp i#86232] -[visit_id i#86232] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `RELAXED_LANESELECT`_vternop_] [visit_exp ()] -[visit_exp `%`_u32{i#86218}(268)] -[visit_exp i#86218] -[visit_id i#86218] +[visit_exp `%`_u32(268)] [visit_exp (268)] [visit_exp 268] ps' = [check_dims] -[check_dims] dim#20236 dim#20248 i#86300 i#86307 i#86314 i#86319 i#86326 lanetype#20236 lanetype#20248 shape_1#31 shape_2#31 zero#159 -dims \ = dim#20236, dim#20248, i#86300, i#86307, i#86314, i#86319, i#86326, lanetype#20236, lanetype#20248, shape_1#31, shape_2#31, zero#159 -[visit_exp `VCVTOP`_instr{shape_1#31, shape_2#31}(`%X%`_shape{lanetype#20236, dim#20236, i#86307}(`F32`_lanetype, `%`_dim{i#86314}(4)), `%X%`_shape{lanetype#20248, dim#20248, i#86319}(`F64`_lanetype, `%`_dim{i#86326}(2)), `DEMOTE`_vcvtop__{zero#159}(`ZERO`_zero))] -[visit_exp shape_1#31] -[visit_id shape_1#31] -[visit_exp shape_2#31] -[visit_id shape_2#31] -[visit_exp (`%X%`_shape{lanetype#20236, dim#20236, i#86307}(`F32`_lanetype, `%`_dim{i#86314}(4)), `%X%`_shape{lanetype#20248, dim#20248, i#86319}(`F64`_lanetype, `%`_dim{i#86326}(2)), `DEMOTE`_vcvtop__{zero#159}(`ZERO`_zero))] -[visit_exp `%X%`_shape{lanetype#20236, dim#20236, i#86307}(`F32`_lanetype, `%`_dim{i#86314}(4))] -[visit_exp lanetype#20236] -[visit_id lanetype#20236] -[visit_exp dim#20236] -[visit_id dim#20236] -[visit_exp i#86307] -[visit_id i#86307] -[visit_exp (`F32`_lanetype, `%`_dim{i#86314}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DEMOTE`_vcvtop__(`ZERO`_zero))] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DEMOTE`_vcvtop__(`ZERO`_zero))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#86314}(4)] -[visit_exp i#86314] -[visit_id i#86314] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#20248, dim#20248, i#86319}(`F64`_lanetype, `%`_dim{i#86326}(2))] -[visit_exp lanetype#20248] -[visit_id lanetype#20248] -[visit_exp dim#20248] -[visit_id dim#20248] -[visit_exp i#86319] -[visit_id i#86319] -[visit_exp (`F64`_lanetype, `%`_dim{i#86326}(2))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#86326}(2)] -[visit_exp i#86326] -[visit_id i#86326] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `DEMOTE`_vcvtop__{zero#159}(`ZERO`_zero)] -[visit_exp zero#159] -[visit_id zero#159] +[visit_exp `DEMOTE`_vcvtop__(`ZERO`_zero)] [visit_exp (`ZERO`_zero)] [visit_exp `ZERO`_zero] [visit_exp ()] -[visit_exp `%`_u32{i#86300}(94)] -[visit_exp i#86300] -[visit_id i#86300] +[visit_exp `%`_u32(94)] [visit_exp (94)] [visit_exp 94] -[check_dims] dim#20501 dim#20513 i#86770 i#86777 i#86784 i#86789 i#86796 lanetype#20501 lanetype#20513 shape_1#33 shape_2#33 -dims \ = dim#20501, dim#20513, i#86770, i#86777, i#86784, i#86789, i#86796, lanetype#20501, lanetype#20513, shape_1#33, shape_2#33 -[visit_exp `VCVTOP`_instr{shape_1#33, shape_2#33}(`%X%`_shape{lanetype#20501, dim#20501, i#86777}(`F64`_lanetype, `%`_dim{i#86784}(2)), `%X%`_shape{lanetype#20513, dim#20513, i#86789}(`F32`_lanetype, `%`_dim{i#86796}(4)), `PROMOTELOW`_vcvtop__)] -[visit_exp shape_1#33] -[visit_id shape_1#33] -[visit_exp shape_2#33] -[visit_id shape_2#33] -[visit_exp (`%X%`_shape{lanetype#20501, dim#20501, i#86777}(`F64`_lanetype, `%`_dim{i#86784}(2)), `%X%`_shape{lanetype#20513, dim#20513, i#86789}(`F32`_lanetype, `%`_dim{i#86796}(4)), `PROMOTELOW`_vcvtop__)] -[visit_exp `%X%`_shape{lanetype#20501, dim#20501, i#86777}(`F64`_lanetype, `%`_dim{i#86784}(2))] -[visit_exp lanetype#20501] -[visit_id lanetype#20501] -[visit_exp dim#20501] -[visit_id dim#20501] -[visit_exp i#86777] -[visit_id i#86777] -[visit_exp (`F64`_lanetype, `%`_dim{i#86784}(2))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#86784}(2)] -[visit_exp i#86784] -[visit_id i#86784] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#20513, dim#20513, i#86789}(`F32`_lanetype, `%`_dim{i#86796}(4))] -[visit_exp lanetype#20513] -[visit_id lanetype#20513] -[visit_exp dim#20513] -[visit_id dim#20513] -[visit_exp i#86789] -[visit_id i#86789] -[visit_exp (`F32`_lanetype, `%`_dim{i#86796}(4))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#86796}(4)] -[visit_exp i#86796] -[visit_id i#86796] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `PROMOTELOW`_vcvtop__] [visit_exp ()] -[visit_exp `%`_u32{i#86770}(95)] -[visit_exp i#86770] -[visit_id i#86770] +[visit_exp `%`_u32(95)] [visit_exp (95)] [visit_exp 95] -[check_dims] dim#20766 dim#20778 i#87240 i#87247 i#87254 i#87259 i#87266 lanetype#20766 lanetype#20778 shape_1#35 shape_2#35 sx#15127 zero?#135 -dims \ = dim#20766, dim#20778, i#87240, i#87247, i#87254, i#87259, i#87266, lanetype#20766, lanetype#20778, shape_1#35, shape_2#35, sx#15127, zero?#135 -[visit_exp `VCVTOP`_instr{shape_1#35, shape_2#35}(`%X%`_shape{lanetype#20766, dim#20766, i#87247}(`I32`_lanetype, `%`_dim{i#87254}(4)), `%X%`_shape{lanetype#20778, dim#20778, i#87259}(`F32`_lanetype, `%`_dim{i#87266}(4)), `TRUNC_SAT`_vcvtop__{sx#15127, `zero?#135`}(`S`_sx, ?()))] -[visit_exp shape_1#35] -[visit_id shape_1#35] -[visit_exp shape_2#35] -[visit_id shape_2#35] -[visit_exp (`%X%`_shape{lanetype#20766, dim#20766, i#87247}(`I32`_lanetype, `%`_dim{i#87254}(4)), `%X%`_shape{lanetype#20778, dim#20778, i#87259}(`F32`_lanetype, `%`_dim{i#87266}(4)), `TRUNC_SAT`_vcvtop__{sx#15127, `zero?#135`}(`S`_sx, ?()))] -[visit_exp `%X%`_shape{lanetype#20766, dim#20766, i#87247}(`I32`_lanetype, `%`_dim{i#87254}(4))] -[visit_exp lanetype#20766] -[visit_id lanetype#20766] -[visit_exp dim#20766] -[visit_id dim#20766] -[visit_exp i#87247] -[visit_id i#87247] -[visit_exp (`I32`_lanetype, `%`_dim{i#87254}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?()))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?()))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#87254}(4)] -[visit_exp i#87254] -[visit_id i#87254] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#20778, dim#20778, i#87259}(`F32`_lanetype, `%`_dim{i#87266}(4))] -[visit_exp lanetype#20778] -[visit_id lanetype#20778] -[visit_exp dim#20778] -[visit_id dim#20778] -[visit_exp i#87259] -[visit_id i#87259] -[visit_exp (`F32`_lanetype, `%`_dim{i#87266}(4))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#87266}(4)] -[visit_exp i#87266] -[visit_id i#87266] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `TRUNC_SAT`_vcvtop__{sx#15127, `zero?#135`}(`S`_sx, ?())] -[visit_exp sx#15127] -[visit_id sx#15127] -[visit_exp `zero?#135`] -[visit_id zero?#135] +[visit_exp `TRUNC_SAT`_vcvtop__(`S`_sx, ?())] [visit_exp (`S`_sx, ?())] [visit_exp `S`_sx] [visit_exp ()] [visit_exp ?()] -[visit_exp `%`_u32{i#87240}(248)] -[visit_exp i#87240] -[visit_id i#87240] +[visit_exp `%`_u32(248)] [visit_exp (248)] [visit_exp 248] -[check_dims] dim#20941 dim#20953 i#87560 i#87567 i#87574 i#87579 i#87586 lanetype#20941 lanetype#20953 shape_1#37 shape_2#37 sx#15191 zero?#199 -dims \ = dim#20941, dim#20953, i#87560, i#87567, i#87574, i#87579, i#87586, lanetype#20941, lanetype#20953, shape_1#37, shape_2#37, sx#15191, zero?#199 -[visit_exp `VCVTOP`_instr{shape_1#37, shape_2#37}(`%X%`_shape{lanetype#20941, dim#20941, i#87567}(`I32`_lanetype, `%`_dim{i#87574}(4)), `%X%`_shape{lanetype#20953, dim#20953, i#87579}(`F32`_lanetype, `%`_dim{i#87586}(4)), `TRUNC_SAT`_vcvtop__{sx#15191, `zero?#199`}(`U`_sx, ?()))] -[visit_exp shape_1#37] -[visit_id shape_1#37] -[visit_exp shape_2#37] -[visit_id shape_2#37] -[visit_exp (`%X%`_shape{lanetype#20941, dim#20941, i#87567}(`I32`_lanetype, `%`_dim{i#87574}(4)), `%X%`_shape{lanetype#20953, dim#20953, i#87579}(`F32`_lanetype, `%`_dim{i#87586}(4)), `TRUNC_SAT`_vcvtop__{sx#15191, `zero?#199`}(`U`_sx, ?()))] -[visit_exp `%X%`_shape{lanetype#20941, dim#20941, i#87567}(`I32`_lanetype, `%`_dim{i#87574}(4))] -[visit_exp lanetype#20941] -[visit_id lanetype#20941] -[visit_exp dim#20941] -[visit_id dim#20941] -[visit_exp i#87567] -[visit_id i#87567] -[visit_exp (`I32`_lanetype, `%`_dim{i#87574}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?()))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?()))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#87574}(4)] -[visit_exp i#87574] -[visit_id i#87574] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#20953, dim#20953, i#87579}(`F32`_lanetype, `%`_dim{i#87586}(4))] -[visit_exp lanetype#20953] -[visit_id lanetype#20953] -[visit_exp dim#20953] -[visit_id dim#20953] -[visit_exp i#87579] -[visit_id i#87579] -[visit_exp (`F32`_lanetype, `%`_dim{i#87586}(4))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#87586}(4)] -[visit_exp i#87586] -[visit_id i#87586] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `TRUNC_SAT`_vcvtop__{sx#15191, `zero?#199`}(`U`_sx, ?())] -[visit_exp sx#15191] -[visit_id sx#15191] -[visit_exp `zero?#199`] -[visit_id zero?#199] +[visit_exp `TRUNC_SAT`_vcvtop__(`U`_sx, ?())] [visit_exp (`U`_sx, ?())] [visit_exp `U`_sx] [visit_exp ()] [visit_exp ?()] -[visit_exp `%`_u32{i#87560}(249)] -[visit_exp i#87560] -[visit_id i#87560] +[visit_exp `%`_u32(249)] [visit_exp (249)] [visit_exp 249] -[check_dims] dim#21116 dim#21128 half?#39 i#87880 i#87887 i#87894 i#87899 i#87906 lanetype#21116 lanetype#21128 shape_1#39 shape_2#39 sx#15225 -dims \ = dim#21116, dim#21128, half?#39, i#87880, i#87887, i#87894, i#87899, i#87906, lanetype#21116, lanetype#21128, shape_1#39, shape_2#39, sx#15225 -[visit_exp `VCVTOP`_instr{shape_1#39, shape_2#39}(`%X%`_shape{lanetype#21116, dim#21116, i#87887}(`F32`_lanetype, `%`_dim{i#87894}(4)), `%X%`_shape{lanetype#21128, dim#21128, i#87899}(`I32`_lanetype, `%`_dim{i#87906}(4)), `CONVERT`_vcvtop__{`half?#39`, sx#15225}(?(), `S`_sx))] -[visit_exp shape_1#39] -[visit_id shape_1#39] -[visit_exp shape_2#39] -[visit_id shape_2#39] -[visit_exp (`%X%`_shape{lanetype#21116, dim#21116, i#87887}(`F32`_lanetype, `%`_dim{i#87894}(4)), `%X%`_shape{lanetype#21128, dim#21128, i#87899}(`I32`_lanetype, `%`_dim{i#87906}(4)), `CONVERT`_vcvtop__{`half?#39`, sx#15225}(?(), `S`_sx))] -[visit_exp `%X%`_shape{lanetype#21116, dim#21116, i#87887}(`F32`_lanetype, `%`_dim{i#87894}(4))] -[visit_exp lanetype#21116] -[visit_id lanetype#21116] -[visit_exp dim#21116] -[visit_id dim#21116] -[visit_exp i#87887] -[visit_id i#87887] -[visit_exp (`F32`_lanetype, `%`_dim{i#87894}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `S`_sx))] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `S`_sx))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#87894}(4)] -[visit_exp i#87894] -[visit_id i#87894] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#21128, dim#21128, i#87899}(`I32`_lanetype, `%`_dim{i#87906}(4))] -[visit_exp lanetype#21128] -[visit_id lanetype#21128] -[visit_exp dim#21128] -[visit_id dim#21128] -[visit_exp i#87899] -[visit_id i#87899] -[visit_exp (`I32`_lanetype, `%`_dim{i#87906}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#87906}(4)] -[visit_exp i#87906] -[visit_id i#87906] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `CONVERT`_vcvtop__{`half?#39`, sx#15225}(?(), `S`_sx)] -[visit_exp `half?#39`] -[visit_id half?#39] -[visit_exp sx#15225] -[visit_id sx#15225] +[visit_exp `CONVERT`_vcvtop__(?(), `S`_sx)] [visit_exp (?(), `S`_sx)] [visit_exp ?()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#87880}(250)] -[visit_exp i#87880] -[visit_id i#87880] +[visit_exp `%`_u32(250)] [visit_exp (250)] [visit_exp 250] -[check_dims] dim#21321 dim#21333 half?#73 i#88290 i#88297 i#88304 i#88309 i#88316 lanetype#21321 lanetype#21333 shape_1#41 shape_2#41 sx#15259 -dims \ = dim#21321, dim#21333, half?#73, i#88290, i#88297, i#88304, i#88309, i#88316, lanetype#21321, lanetype#21333, shape_1#41, shape_2#41, sx#15259 -[visit_exp `VCVTOP`_instr{shape_1#41, shape_2#41}(`%X%`_shape{lanetype#21321, dim#21321, i#88297}(`F32`_lanetype, `%`_dim{i#88304}(4)), `%X%`_shape{lanetype#21333, dim#21333, i#88309}(`I32`_lanetype, `%`_dim{i#88316}(4)), `CONVERT`_vcvtop__{`half?#73`, sx#15259}(?(), `U`_sx))] -[visit_exp shape_1#41] -[visit_id shape_1#41] -[visit_exp shape_2#41] -[visit_id shape_2#41] -[visit_exp (`%X%`_shape{lanetype#21321, dim#21321, i#88297}(`F32`_lanetype, `%`_dim{i#88304}(4)), `%X%`_shape{lanetype#21333, dim#21333, i#88309}(`I32`_lanetype, `%`_dim{i#88316}(4)), `CONVERT`_vcvtop__{`half?#73`, sx#15259}(?(), `U`_sx))] -[visit_exp `%X%`_shape{lanetype#21321, dim#21321, i#88297}(`F32`_lanetype, `%`_dim{i#88304}(4))] -[visit_exp lanetype#21321] -[visit_id lanetype#21321] -[visit_exp dim#21321] -[visit_id dim#21321] -[visit_exp i#88297] -[visit_id i#88297] -[visit_exp (`F32`_lanetype, `%`_dim{i#88304}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `U`_sx))] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `U`_sx))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#88304}(4)] -[visit_exp i#88304] -[visit_id i#88304] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#21333, dim#21333, i#88309}(`I32`_lanetype, `%`_dim{i#88316}(4))] -[visit_exp lanetype#21333] -[visit_id lanetype#21333] -[visit_exp dim#21333] -[visit_id dim#21333] -[visit_exp i#88309] -[visit_id i#88309] -[visit_exp (`I32`_lanetype, `%`_dim{i#88316}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#88316}(4)] -[visit_exp i#88316] -[visit_id i#88316] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `CONVERT`_vcvtop__{`half?#73`, sx#15259}(?(), `U`_sx)] -[visit_exp `half?#73`] -[visit_id half?#73] -[visit_exp sx#15259] -[visit_id sx#15259] +[visit_exp `CONVERT`_vcvtop__(?(), `U`_sx)] [visit_exp (?(), `U`_sx)] [visit_exp ?()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#88290}(251)] -[visit_exp i#88290] -[visit_id i#88290] +[visit_exp `%`_u32(251)] [visit_exp (251)] [visit_exp 251] -[check_dims] dim#21526 dim#21538 i#88700 i#88707 i#88714 i#88719 i#88726 lanetype#21526 lanetype#21538 shape_1#43 shape_2#43 sx#15323 zero?#263 -dims \ = dim#21526, dim#21538, i#88700, i#88707, i#88714, i#88719, i#88726, lanetype#21526, lanetype#21538, shape_1#43, shape_2#43, sx#15323, zero?#263 -[visit_exp `VCVTOP`_instr{shape_1#43, shape_2#43}(`%X%`_shape{lanetype#21526, dim#21526, i#88707}(`I32`_lanetype, `%`_dim{i#88714}(4)), `%X%`_shape{lanetype#21538, dim#21538, i#88719}(`F64`_lanetype, `%`_dim{i#88726}(2)), `TRUNC_SAT`_vcvtop__{sx#15323, `zero?#263`}(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp shape_1#43] -[visit_id shape_1#43] -[visit_exp shape_2#43] -[visit_id shape_2#43] -[visit_exp (`%X%`_shape{lanetype#21526, dim#21526, i#88707}(`I32`_lanetype, `%`_dim{i#88714}(4)), `%X%`_shape{lanetype#21538, dim#21538, i#88719}(`F64`_lanetype, `%`_dim{i#88726}(2)), `TRUNC_SAT`_vcvtop__{sx#15323, `zero?#263`}(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape{lanetype#21526, dim#21526, i#88707}(`I32`_lanetype, `%`_dim{i#88714}(4))] -[visit_exp lanetype#21526] -[visit_id lanetype#21526] -[visit_exp dim#21526] -[visit_id dim#21526] -[visit_exp i#88707] -[visit_id i#88707] -[visit_exp (`I32`_lanetype, `%`_dim{i#88714}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#88714}(4)] -[visit_exp i#88714] -[visit_id i#88714] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#21538, dim#21538, i#88719}(`F64`_lanetype, `%`_dim{i#88726}(2))] -[visit_exp lanetype#21538] -[visit_id lanetype#21538] -[visit_exp dim#21538] -[visit_id dim#21538] -[visit_exp i#88719] -[visit_id i#88719] -[visit_exp (`F64`_lanetype, `%`_dim{i#88726}(2))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#88726}(2)] -[visit_exp i#88726] -[visit_id i#88726] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `TRUNC_SAT`_vcvtop__{sx#15323, `zero?#263`}(`S`_sx, ?(`ZERO`_zero))] -[visit_exp sx#15323] -[visit_id sx#15323] -[visit_exp `zero?#263`] -[visit_id zero?#263] +[visit_exp `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero))] [visit_exp (`S`_sx, ?(`ZERO`_zero))] [visit_exp `S`_sx] [visit_exp ()] [visit_exp ?(`ZERO`_zero)] [visit_exp `ZERO`_zero] [visit_exp ()] -[visit_exp `%`_u32{i#88700}(252)] -[visit_exp i#88700] -[visit_id i#88700] +[visit_exp `%`_u32(252)] [visit_exp (252)] [visit_exp 252] -[check_dims] dim#21701 dim#21713 i#89020 i#89027 i#89034 i#89039 i#89046 lanetype#21701 lanetype#21713 shape_1#45 shape_2#45 sx#15387 zero?#327 -dims \ = dim#21701, dim#21713, i#89020, i#89027, i#89034, i#89039, i#89046, lanetype#21701, lanetype#21713, shape_1#45, shape_2#45, sx#15387, zero?#327 -[visit_exp `VCVTOP`_instr{shape_1#45, shape_2#45}(`%X%`_shape{lanetype#21701, dim#21701, i#89027}(`I32`_lanetype, `%`_dim{i#89034}(4)), `%X%`_shape{lanetype#21713, dim#21713, i#89039}(`F64`_lanetype, `%`_dim{i#89046}(2)), `TRUNC_SAT`_vcvtop__{sx#15387, `zero?#327`}(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp shape_1#45] -[visit_id shape_1#45] -[visit_exp shape_2#45] -[visit_id shape_2#45] -[visit_exp (`%X%`_shape{lanetype#21701, dim#21701, i#89027}(`I32`_lanetype, `%`_dim{i#89034}(4)), `%X%`_shape{lanetype#21713, dim#21713, i#89039}(`F64`_lanetype, `%`_dim{i#89046}(2)), `TRUNC_SAT`_vcvtop__{sx#15387, `zero?#327`}(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape{lanetype#21701, dim#21701, i#89027}(`I32`_lanetype, `%`_dim{i#89034}(4))] -[visit_exp lanetype#21701] -[visit_id lanetype#21701] -[visit_exp dim#21701] -[visit_id dim#21701] -[visit_exp i#89027] -[visit_id i#89027] -[visit_exp (`I32`_lanetype, `%`_dim{i#89034}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#89034}(4)] -[visit_exp i#89034] -[visit_id i#89034] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#21713, dim#21713, i#89039}(`F64`_lanetype, `%`_dim{i#89046}(2))] -[visit_exp lanetype#21713] -[visit_id lanetype#21713] -[visit_exp dim#21713] -[visit_id dim#21713] -[visit_exp i#89039] -[visit_id i#89039] -[visit_exp (`F64`_lanetype, `%`_dim{i#89046}(2))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#89046}(2)] -[visit_exp i#89046] -[visit_id i#89046] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `TRUNC_SAT`_vcvtop__{sx#15387, `zero?#327`}(`U`_sx, ?(`ZERO`_zero))] -[visit_exp sx#15387] -[visit_id sx#15387] -[visit_exp `zero?#327`] -[visit_id zero?#327] +[visit_exp `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero))] [visit_exp (`U`_sx, ?(`ZERO`_zero))] [visit_exp `U`_sx] [visit_exp ()] [visit_exp ?(`ZERO`_zero)] [visit_exp `ZERO`_zero] [visit_exp ()] -[visit_exp `%`_u32{i#89020}(253)] -[visit_exp i#89020] -[visit_id i#89020] +[visit_exp `%`_u32(253)] [visit_exp (253)] [visit_exp 253] -[check_dims] dim#21876 dim#21888 half?#107 i#89340 i#89347 i#89354 i#89359 i#89366 lanetype#21876 lanetype#21888 shape_1#47 shape_2#47 sx#15421 -dims \ = dim#21876, dim#21888, half?#107, i#89340, i#89347, i#89354, i#89359, i#89366, lanetype#21876, lanetype#21888, shape_1#47, shape_2#47, sx#15421 -[visit_exp `VCVTOP`_instr{shape_1#47, shape_2#47}(`%X%`_shape{lanetype#21876, dim#21876, i#89347}(`F64`_lanetype, `%`_dim{i#89354}(2)), `%X%`_shape{lanetype#21888, dim#21888, i#89359}(`I32`_lanetype, `%`_dim{i#89366}(4)), `CONVERT`_vcvtop__{`half?#107`, sx#15421}(?(`LOW`_half), `S`_sx))] -[visit_exp shape_1#47] -[visit_id shape_1#47] -[visit_exp shape_2#47] -[visit_id shape_2#47] -[visit_exp (`%X%`_shape{lanetype#21876, dim#21876, i#89347}(`F64`_lanetype, `%`_dim{i#89354}(2)), `%X%`_shape{lanetype#21888, dim#21888, i#89359}(`I32`_lanetype, `%`_dim{i#89366}(4)), `CONVERT`_vcvtop__{`half?#107`, sx#15421}(?(`LOW`_half), `S`_sx))] -[visit_exp `%X%`_shape{lanetype#21876, dim#21876, i#89347}(`F64`_lanetype, `%`_dim{i#89354}(2))] -[visit_exp lanetype#21876] -[visit_id lanetype#21876] -[visit_exp dim#21876] -[visit_id dim#21876] -[visit_exp i#89347] -[visit_id i#89347] -[visit_exp (`F64`_lanetype, `%`_dim{i#89354}(2))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx))] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#89354}(2)] -[visit_exp i#89354] -[visit_id i#89354] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#21888, dim#21888, i#89359}(`I32`_lanetype, `%`_dim{i#89366}(4))] -[visit_exp lanetype#21888] -[visit_id lanetype#21888] -[visit_exp dim#21888] -[visit_id dim#21888] -[visit_exp i#89359] -[visit_id i#89359] -[visit_exp (`I32`_lanetype, `%`_dim{i#89366}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#89366}(4)] -[visit_exp i#89366] -[visit_id i#89366] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `CONVERT`_vcvtop__{`half?#107`, sx#15421}(?(`LOW`_half), `S`_sx)] -[visit_exp `half?#107`] -[visit_id half?#107] -[visit_exp sx#15421] -[visit_id sx#15421] +[visit_exp `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx)] [visit_exp (?(`LOW`_half), `S`_sx)] [visit_exp ?(`LOW`_half)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#89340}(254)] -[visit_exp i#89340] -[visit_id i#89340] +[visit_exp `%`_u32(254)] [visit_exp (254)] [visit_exp 254] -[check_dims] dim#22081 dim#22093 half?#141 i#89750 i#89757 i#89764 i#89769 i#89776 lanetype#22081 lanetype#22093 shape_1#49 shape_2#49 sx#15455 -dims \ = dim#22081, dim#22093, half?#141, i#89750, i#89757, i#89764, i#89769, i#89776, lanetype#22081, lanetype#22093, shape_1#49, shape_2#49, sx#15455 -[visit_exp `VCVTOP`_instr{shape_1#49, shape_2#49}(`%X%`_shape{lanetype#22081, dim#22081, i#89757}(`F64`_lanetype, `%`_dim{i#89764}(2)), `%X%`_shape{lanetype#22093, dim#22093, i#89769}(`I32`_lanetype, `%`_dim{i#89776}(4)), `CONVERT`_vcvtop__{`half?#141`, sx#15455}(?(`LOW`_half), `U`_sx))] -[visit_exp shape_1#49] -[visit_id shape_1#49] -[visit_exp shape_2#49] -[visit_id shape_2#49] -[visit_exp (`%X%`_shape{lanetype#22081, dim#22081, i#89757}(`F64`_lanetype, `%`_dim{i#89764}(2)), `%X%`_shape{lanetype#22093, dim#22093, i#89769}(`I32`_lanetype, `%`_dim{i#89776}(4)), `CONVERT`_vcvtop__{`half?#141`, sx#15455}(?(`LOW`_half), `U`_sx))] -[visit_exp `%X%`_shape{lanetype#22081, dim#22081, i#89757}(`F64`_lanetype, `%`_dim{i#89764}(2))] -[visit_exp lanetype#22081] -[visit_id lanetype#22081] -[visit_exp dim#22081] -[visit_id dim#22081] -[visit_exp i#89757] -[visit_id i#89757] -[visit_exp (`F64`_lanetype, `%`_dim{i#89764}(2))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx))] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#89764}(2)] -[visit_exp i#89764] -[visit_id i#89764] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#22093, dim#22093, i#89769}(`I32`_lanetype, `%`_dim{i#89776}(4))] -[visit_exp lanetype#22093] -[visit_id lanetype#22093] -[visit_exp dim#22093] -[visit_id dim#22093] -[visit_exp i#89769] -[visit_id i#89769] -[visit_exp (`I32`_lanetype, `%`_dim{i#89776}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#89776}(4)] -[visit_exp i#89776] -[visit_id i#89776] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `CONVERT`_vcvtop__{`half?#141`, sx#15455}(?(`LOW`_half), `U`_sx)] -[visit_exp `half?#141`] -[visit_id half?#141] -[visit_exp sx#15455] -[visit_id sx#15455] +[visit_exp `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx)] [visit_exp (?(`LOW`_half), `U`_sx)] [visit_exp ?(`LOW`_half)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[visit_exp `%`_u32{i#89750}(255)] -[visit_exp i#89750] -[visit_id i#89750] +[visit_exp `%`_u32(255)] [visit_exp (255)] [visit_exp 255] -[check_dims] dim#22286 dim#22298 i#90160 i#90167 i#90174 i#90179 i#90186 lanetype#22286 lanetype#22298 shape_1#51 shape_2#51 sx#15519 zero?#391 -dims \ = dim#22286, dim#22298, i#90160, i#90167, i#90174, i#90179, i#90186, lanetype#22286, lanetype#22298, shape_1#51, shape_2#51, sx#15519, zero?#391 -[visit_exp `VCVTOP`_instr{shape_1#51, shape_2#51}(`%X%`_shape{lanetype#22286, dim#22286, i#90167}(`I32`_lanetype, `%`_dim{i#90174}(4)), `%X%`_shape{lanetype#22298, dim#22298, i#90179}(`F32`_lanetype, `%`_dim{i#90186}(4)), `RELAXED_TRUNC`_vcvtop__{sx#15519, `zero?#391`}(`S`_sx, ?()))] -[visit_exp shape_1#51] -[visit_id shape_1#51] -[visit_exp shape_2#51] -[visit_id shape_2#51] -[visit_exp (`%X%`_shape{lanetype#22286, dim#22286, i#90167}(`I32`_lanetype, `%`_dim{i#90174}(4)), `%X%`_shape{lanetype#22298, dim#22298, i#90179}(`F32`_lanetype, `%`_dim{i#90186}(4)), `RELAXED_TRUNC`_vcvtop__{sx#15519, `zero?#391`}(`S`_sx, ?()))] -[visit_exp `%X%`_shape{lanetype#22286, dim#22286, i#90167}(`I32`_lanetype, `%`_dim{i#90174}(4))] -[visit_exp lanetype#22286] -[visit_id lanetype#22286] -[visit_exp dim#22286] -[visit_id dim#22286] -[visit_exp i#90167] -[visit_id i#90167] -[visit_exp (`I32`_lanetype, `%`_dim{i#90174}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?()))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?()))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#90174}(4)] -[visit_exp i#90174] -[visit_id i#90174] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#22298, dim#22298, i#90179}(`F32`_lanetype, `%`_dim{i#90186}(4))] -[visit_exp lanetype#22298] -[visit_id lanetype#22298] -[visit_exp dim#22298] -[visit_id dim#22298] -[visit_exp i#90179] -[visit_id i#90179] -[visit_exp (`F32`_lanetype, `%`_dim{i#90186}(4))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#90186}(4)] -[visit_exp i#90186] -[visit_id i#90186] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#15519, `zero?#391`}(`S`_sx, ?())] -[visit_exp sx#15519] -[visit_id sx#15519] -[visit_exp `zero?#391`] -[visit_id zero?#391] +[visit_exp `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?())] [visit_exp (`S`_sx, ?())] [visit_exp `S`_sx] [visit_exp ()] [visit_exp ?()] -[visit_exp `%`_u32{i#90160}(257)] -[visit_exp i#90160] -[visit_id i#90160] +[visit_exp `%`_u32(257)] [visit_exp (257)] [visit_exp 257] -[check_dims] dim#22461 dim#22473 i#90480 i#90487 i#90494 i#90499 i#90506 lanetype#22461 lanetype#22473 shape_1#53 shape_2#53 sx#15583 zero?#455 -dims \ = dim#22461, dim#22473, i#90480, i#90487, i#90494, i#90499, i#90506, lanetype#22461, lanetype#22473, shape_1#53, shape_2#53, sx#15583, zero?#455 -[visit_exp `VCVTOP`_instr{shape_1#53, shape_2#53}(`%X%`_shape{lanetype#22461, dim#22461, i#90487}(`I32`_lanetype, `%`_dim{i#90494}(4)), `%X%`_shape{lanetype#22473, dim#22473, i#90499}(`F32`_lanetype, `%`_dim{i#90506}(4)), `RELAXED_TRUNC`_vcvtop__{sx#15583, `zero?#455`}(`U`_sx, ?()))] -[visit_exp shape_1#53] -[visit_id shape_1#53] -[visit_exp shape_2#53] -[visit_id shape_2#53] -[visit_exp (`%X%`_shape{lanetype#22461, dim#22461, i#90487}(`I32`_lanetype, `%`_dim{i#90494}(4)), `%X%`_shape{lanetype#22473, dim#22473, i#90499}(`F32`_lanetype, `%`_dim{i#90506}(4)), `RELAXED_TRUNC`_vcvtop__{sx#15583, `zero?#455`}(`U`_sx, ?()))] -[visit_exp `%X%`_shape{lanetype#22461, dim#22461, i#90487}(`I32`_lanetype, `%`_dim{i#90494}(4))] -[visit_exp lanetype#22461] -[visit_id lanetype#22461] -[visit_exp dim#22461] -[visit_id dim#22461] -[visit_exp i#90487] -[visit_id i#90487] -[visit_exp (`I32`_lanetype, `%`_dim{i#90494}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?()))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?()))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#90494}(4)] -[visit_exp i#90494] -[visit_id i#90494] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#22473, dim#22473, i#90499}(`F32`_lanetype, `%`_dim{i#90506}(4))] -[visit_exp lanetype#22473] -[visit_id lanetype#22473] -[visit_exp dim#22473] -[visit_id dim#22473] -[visit_exp i#90499] -[visit_id i#90499] -[visit_exp (`F32`_lanetype, `%`_dim{i#90506}(4))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#90506}(4)] -[visit_exp i#90506] -[visit_id i#90506] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#15583, `zero?#455`}(`U`_sx, ?())] -[visit_exp sx#15583] -[visit_id sx#15583] -[visit_exp `zero?#455`] -[visit_id zero?#455] +[visit_exp `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?())] [visit_exp (`U`_sx, ?())] [visit_exp `U`_sx] [visit_exp ()] [visit_exp ?()] -[visit_exp `%`_u32{i#90480}(258)] -[visit_exp i#90480] -[visit_id i#90480] +[visit_exp `%`_u32(258)] [visit_exp (258)] [visit_exp 258] -[check_dims] dim#22636 dim#22648 i#90800 i#90807 i#90814 i#90819 i#90826 lanetype#22636 lanetype#22648 shape_1#55 shape_2#55 sx#15647 zero?#519 -dims \ = dim#22636, dim#22648, i#90800, i#90807, i#90814, i#90819, i#90826, lanetype#22636, lanetype#22648, shape_1#55, shape_2#55, sx#15647, zero?#519 -[visit_exp `VCVTOP`_instr{shape_1#55, shape_2#55}(`%X%`_shape{lanetype#22636, dim#22636, i#90807}(`I32`_lanetype, `%`_dim{i#90814}(4)), `%X%`_shape{lanetype#22648, dim#22648, i#90819}(`F64`_lanetype, `%`_dim{i#90826}(2)), `RELAXED_TRUNC`_vcvtop__{sx#15647, `zero?#519`}(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp shape_1#55] -[visit_id shape_1#55] -[visit_exp shape_2#55] -[visit_id shape_2#55] -[visit_exp (`%X%`_shape{lanetype#22636, dim#22636, i#90807}(`I32`_lanetype, `%`_dim{i#90814}(4)), `%X%`_shape{lanetype#22648, dim#22648, i#90819}(`F64`_lanetype, `%`_dim{i#90826}(2)), `RELAXED_TRUNC`_vcvtop__{sx#15647, `zero?#519`}(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape{lanetype#22636, dim#22636, i#90807}(`I32`_lanetype, `%`_dim{i#90814}(4))] -[visit_exp lanetype#22636] -[visit_id lanetype#22636] -[visit_exp dim#22636] -[visit_id dim#22636] -[visit_exp i#90807] -[visit_id i#90807] -[visit_exp (`I32`_lanetype, `%`_dim{i#90814}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#90814}(4)] -[visit_exp i#90814] -[visit_id i#90814] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#22648, dim#22648, i#90819}(`F64`_lanetype, `%`_dim{i#90826}(2))] -[visit_exp lanetype#22648] -[visit_id lanetype#22648] -[visit_exp dim#22648] -[visit_id dim#22648] -[visit_exp i#90819] -[visit_id i#90819] -[visit_exp (`F64`_lanetype, `%`_dim{i#90826}(2))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#90826}(2)] -[visit_exp i#90826] -[visit_id i#90826] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#15647, `zero?#519`}(`S`_sx, ?(`ZERO`_zero))] -[visit_exp sx#15647] -[visit_id sx#15647] -[visit_exp `zero?#519`] -[visit_id zero?#519] +[visit_exp `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero))] [visit_exp (`S`_sx, ?(`ZERO`_zero))] [visit_exp `S`_sx] [visit_exp ()] [visit_exp ?(`ZERO`_zero)] [visit_exp `ZERO`_zero] [visit_exp ()] -[visit_exp `%`_u32{i#90800}(259)] -[visit_exp i#90800] -[visit_id i#90800] +[visit_exp `%`_u32(259)] [visit_exp (259)] [visit_exp 259] -[check_dims] dim#22811 dim#22823 i#91120 i#91127 i#91134 i#91139 i#91146 lanetype#22811 lanetype#22823 shape_1#57 shape_2#57 sx#15711 zero?#583 -dims \ = dim#22811, dim#22823, i#91120, i#91127, i#91134, i#91139, i#91146, lanetype#22811, lanetype#22823, shape_1#57, shape_2#57, sx#15711, zero?#583 -[visit_exp `VCVTOP`_instr{shape_1#57, shape_2#57}(`%X%`_shape{lanetype#22811, dim#22811, i#91127}(`I32`_lanetype, `%`_dim{i#91134}(4)), `%X%`_shape{lanetype#22823, dim#22823, i#91139}(`F64`_lanetype, `%`_dim{i#91146}(2)), `RELAXED_TRUNC`_vcvtop__{sx#15711, `zero?#583`}(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp shape_1#57] -[visit_id shape_1#57] -[visit_exp shape_2#57] -[visit_id shape_2#57] -[visit_exp (`%X%`_shape{lanetype#22811, dim#22811, i#91127}(`I32`_lanetype, `%`_dim{i#91134}(4)), `%X%`_shape{lanetype#22823, dim#22823, i#91139}(`F64`_lanetype, `%`_dim{i#91146}(2)), `RELAXED_TRUNC`_vcvtop__{sx#15711, `zero?#583`}(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape{lanetype#22811, dim#22811, i#91127}(`I32`_lanetype, `%`_dim{i#91134}(4))] -[visit_exp lanetype#22811] -[visit_id lanetype#22811] -[visit_exp dim#22811] -[visit_id dim#22811] -[visit_exp i#91127] -[visit_id i#91127] -[visit_exp (`I32`_lanetype, `%`_dim{i#91134}(4))] +[check_dims] +dims \ = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#91134}(4)] -[visit_exp i#91134] -[visit_id i#91134] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#22823, dim#22823, i#91139}(`F64`_lanetype, `%`_dim{i#91146}(2))] -[visit_exp lanetype#22823] -[visit_id lanetype#22823] -[visit_exp dim#22823] -[visit_id dim#22823] -[visit_exp i#91139] -[visit_id i#91139] -[visit_exp (`F64`_lanetype, `%`_dim{i#91146}(2))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#91146}(2)] -[visit_exp i#91146] -[visit_id i#91146] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#15711, `zero?#583`}(`U`_sx, ?(`ZERO`_zero))] -[visit_exp sx#15711] -[visit_id sx#15711] -[visit_exp `zero?#583`] -[visit_id zero?#583] +[visit_exp `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero))] [visit_exp (`U`_sx, ?(`ZERO`_zero))] [visit_exp `U`_sx] [visit_exp ()] [visit_exp ?(`ZERO`_zero)] [visit_exp `ZERO`_zero] [visit_exp ()] -[visit_exp `%`_u32{i#91120}(260)] -[visit_exp i#91120] -[visit_id i#91120] +[visit_exp `%`_u32(260)] [visit_exp (260)] [visit_exp 260] ps' = @@ -87139,8 +68585,8 @@ dims \ = in [check_dims] ps' = (N : N, syntax en, grammar BX : en*) [check_dims] N en -[check_dims] N en i#91425 i#91448 len -dims \ N = en, i#91425, i#91448, len +[check_dims] N en len +dims \ N = en, len [visit_exp en*{en <- `en*`}] [scope_enter en] [visit_exp en] @@ -87150,16 +68596,12 @@ dims \ N = en, i#91425, i#91448, len [visit_exp `en*`] [visit_id en*] no dims [visit_id en*] -[visit_exp `%`_byte{i#91425}(N)] -[visit_exp i#91425] -[visit_id i#91425] +[visit_exp `%`_byte(N)] [visit_exp (N)] [visit_exp N] [visit_id N] not free [visit_id N] no dims -[visit_exp `%`_u32{i#91448}(len)] -[visit_exp i#91448] -[visit_id i#91448] +[visit_exp `%`_u32(len)] [visit_exp (len)] [visit_exp len] [visit_id len] @@ -87196,11 +68638,9 @@ dims \ = [visit_exp 0] ps' = [check_dims] -[check_dims] qt rectype#1727 -dims \ = qt, rectype#1727 -[visit_exp `TYPE`_type{rectype#1727}(qt)] -[visit_exp rectype#1727] -[visit_id rectype#1727] +[check_dims] qt +dims \ = qt +[visit_exp `TYPE`_type(qt)] [visit_exp (qt)] [visit_exp qt] [visit_id qt] @@ -87231,13 +68671,9 @@ dims \ = ty [visit_exp 1] ps' = [check_dims] -[check_dims] externtype#247 name#6185 nm_1 nm_2 xt -dims \ = externtype#247, name#6185, nm_1, nm_2, xt -[visit_exp `IMPORT`_import{name#6185, externtype#247}(nm_1, nm_2, xt)] -[visit_exp name#6185] -[visit_id name#6185] -[visit_exp externtype#247] -[visit_id externtype#247] +[check_dims] nm_1 nm_2 xt +dims \ = nm_1, nm_2, xt +[visit_exp `IMPORT`_import(nm_1, nm_2, xt)] [visit_exp (nm_1, nm_2, xt)] [visit_exp nm_1] [visit_id nm_1] @@ -87299,58 +68735,38 @@ dims \ = x [visit_exp 3] ps' = [check_dims] -[check_dims] addrtype#1433 at expr#4835 heaptype#1729 heaptype#1741 ht lim limits#1433 null?#1675 reftype#3999 tabletype#1130 tt -dims \ = addrtype#1433, at, expr#4835, heaptype#1729, heaptype#1741, ht, lim, limits#1433, null?#1675, reftype#3999, tabletype#1130, tt -[visit_exp `TABLE`_table{tabletype#1130, expr#4835}(tt, [`REF.NULL`_instr{heaptype#1729}(ht)])] -[visit_exp tabletype#1130] -[visit_id tabletype#1130] -[visit_exp expr#4835] -[visit_id expr#4835] -[visit_exp (tt, [`REF.NULL`_instr{heaptype#1729}(ht)])] +[check_dims] at ht lim tt +dims \ = at, ht, lim, tt +[visit_exp `TABLE`_table(tt, [`REF.NULL`_instr(ht)])] +[visit_exp (tt, [`REF.NULL`_instr(ht)])] [visit_exp tt] [visit_id tt] -[visit_exp [`REF.NULL`_instr{heaptype#1729}(ht)]] -[visit_exp `REF.NULL`_instr{heaptype#1729}(ht)] -[visit_exp heaptype#1729] -[visit_id heaptype#1729] +[visit_exp [`REF.NULL`_instr(ht)]] +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] [visit_exp tt] [visit_id tt] not free -[visit_exp (tt = `%%%`_tabletype{addrtype#1433, limits#1433, reftype#3999}(at, lim, `REF`_reftype{`null?#1675`, heaptype#1741}(`NULL`_null?{}, ht)))] +[visit_exp (tt = `%%%`_tabletype(at, lim, `REF`_reftype(`NULL`_null?{}, ht)))] [visit_exp tt] [visit_id tt] not free -[visit_exp `%%%`_tabletype{addrtype#1433, limits#1433, reftype#3999}(at, lim, `REF`_reftype{`null?#1675`, heaptype#1741}(`NULL`_null?{}, ht))] -[visit_exp addrtype#1433] -[visit_id addrtype#1433] -[visit_exp limits#1433] -[visit_id limits#1433] -[visit_exp reftype#3999] -[visit_id reftype#3999] -[visit_exp (at, lim, `REF`_reftype{`null?#1675`, heaptype#1741}(`NULL`_null?{}, ht))] +[visit_exp `%%%`_tabletype(at, lim, `REF`_reftype(`NULL`_null?{}, ht))] +[visit_exp (at, lim, `REF`_reftype(`NULL`_null?{}, ht))] [visit_exp at] [visit_id at] [visit_exp lim] [visit_id lim] -[visit_exp `REF`_reftype{`null?#1675`, heaptype#1741}(`NULL`_null?{}, ht)] -[visit_exp `null?#1675`] -[visit_id null?#1675] -[visit_exp heaptype#1741] -[visit_id heaptype#1741] +[visit_exp `REF`_reftype(`NULL`_null?{}, ht)] [visit_exp (`NULL`_null?{}, ht)] [visit_exp `NULL`_null?{}] [visit_exp `NULL`_null] [visit_exp ()] [visit_exp ht] [visit_id ht] not free -[check_dims] e expr#4847 tabletype#1142 tt -dims \ = e, expr#4847, tabletype#1142, tt -[visit_exp `TABLE`_table{tabletype#1142, expr#4847}(tt, e)] -[visit_exp tabletype#1142] -[visit_id tabletype#1142] -[visit_exp expr#4847] -[visit_id expr#4847] +[check_dims] e tt +dims \ = e, tt +[visit_exp `TABLE`_table(tt, e)] [visit_exp (tt, e)] [visit_exp tt] [visit_id tt] @@ -87385,11 +68801,9 @@ dims \ = tab [visit_exp 4] ps' = [check_dims] -[check_dims] memtype#734 mt -dims \ = memtype#734, mt -[visit_exp `MEMORY`_mem{memtype#734}(mt)] -[visit_exp memtype#734] -[visit_id memtype#734] +[check_dims] mt +dims \ = mt +[visit_exp `MEMORY`_mem(mt)] [visit_exp (mt)] [visit_exp mt] [visit_id mt] @@ -87420,13 +68834,9 @@ dims \ = mem [visit_exp 5] ps' = [check_dims] -[check_dims] e expr#4883 globaltype#2285 gt -dims \ = e, expr#4883, globaltype#2285, gt -[visit_exp `GLOBAL`_global{globaltype#2285, expr#4883}(gt, e)] -[visit_exp globaltype#2285] -[visit_id globaltype#2285] -[visit_exp expr#4883] -[visit_id expr#4883] +[check_dims] e gt +dims \ = e, gt +[visit_exp `GLOBAL`_global(gt, e)] [visit_exp (gt, e)] [visit_exp gt] [visit_id gt] @@ -87461,13 +68871,9 @@ dims \ = glob [visit_exp 6] ps' = [check_dims] -[check_dims] externidx#5797 name#6238 nm xx -dims \ = externidx#5797, name#6238, nm, xx -[visit_exp `EXPORT`_export{name#6238, externidx#5797}(nm, xx)] -[visit_exp name#6238] -[visit_id name#6238] -[visit_exp externidx#5797] -[visit_id externidx#5797] +[check_dims] nm xx +dims \ = nm, xx +[visit_exp `EXPORT`_export(nm, xx)] [visit_exp (nm, xx)] [visit_exp nm] [visit_id nm] @@ -87502,12 +68908,10 @@ dims \ = ex [visit_exp 7] ps' = [check_dims] -[check_dims] funcidx#3179 x -dims \ = funcidx#3179, x -[visit_exp [`START`_start{funcidx#3179}(x)]] -[visit_exp `START`_start{funcidx#3179}(x)] -[visit_exp funcidx#3179] -[visit_id funcidx#3179] +[check_dims] x +dims \ = x +[visit_exp [`START`_start(x)]] +[visit_exp `START`_start(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -87526,13 +68930,9 @@ dims \ = startopt [visit_exp 8] ps' = [check_dims] -[check_dims] heaptype#1753 null?#1687 -dims \ = heaptype#1753, null?#1687 -[visit_exp `REF`_reftype{`null?#1687`, heaptype#1753}(?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp `null?#1687`] -[visit_id null?#1687] -[visit_exp heaptype#1753] -[visit_id heaptype#1753] +[check_dims] +dims \ = +[visit_exp `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)] [visit_exp (?(`NULL`_null), `FUNC`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -87541,61 +68941,35 @@ dims \ = heaptype#1753, null?#1687 [visit_exp ()] ps' = [check_dims] -[check_dims] e_o elemmode#3307 expr#4909 expr*#3307 funcidx#3213 heaptype#1765 i#91592 i#91655 null?#1699 reftype#4023 tableidx#144 y -dims \ = e_o, elemmode#3307, expr#4909, expr*#3307, funcidx#3213, heaptype#1765, i#91592, i#91655, null?#1699, reftype#4023, tableidx#144, y -[visit_exp `ELEM`_elem{reftype#4023, `expr*#3307`, elemmode#3307}(`REF`_reftype{`null?#1699`, heaptype#1765}(?(), `FUNC`_heaptype), [`REF.FUNC`_instr{funcidx#3213}(y)*{funcidx#3213 <- `funcidx#3213*`, y <- `y*`}], `ACTIVE`_elemmode{tableidx#144, expr#4909}(`%`_tableidx{i#91655}(0), e_o))] -[visit_exp reftype#4023] -[visit_id reftype#4023] -[visit_exp `expr*#3307`] -[visit_id expr*#3307] -[visit_exp elemmode#3307] -[visit_id elemmode#3307] -[visit_exp (`REF`_reftype{`null?#1699`, heaptype#1765}(?(), `FUNC`_heaptype), [`REF.FUNC`_instr{funcidx#3213}(y)*{funcidx#3213 <- `funcidx#3213*`, y <- `y*`}], `ACTIVE`_elemmode{tableidx#144, expr#4909}(`%`_tableidx{i#91655}(0), e_o))] -[visit_exp `REF`_reftype{`null?#1699`, heaptype#1765}(?(), `FUNC`_heaptype)] -[visit_exp `null?#1699`] -[visit_id null?#1699] -[visit_exp heaptype#1765] -[visit_id heaptype#1765] +[check_dims] e_o y +dims \ = e_o, y +[visit_exp `ELEM`_elem(`REF`_reftype(?(), `FUNC`_heaptype), [`REF.FUNC`_instr(y)*{y <- `y*`}], `ACTIVE`_elemmode(`%`_tableidx(0), e_o))] +[visit_exp (`REF`_reftype(?(), `FUNC`_heaptype), [`REF.FUNC`_instr(y)*{y <- `y*`}], `ACTIVE`_elemmode(`%`_tableidx(0), e_o))] +[visit_exp `REF`_reftype(?(), `FUNC`_heaptype)] [visit_exp (?(), `FUNC`_heaptype)] [visit_exp ?()] [visit_exp `FUNC`_heaptype] [visit_exp ()] -[visit_exp [`REF.FUNC`_instr{funcidx#3213}(y)*{funcidx#3213 <- `funcidx#3213*`, y <- `y*`}]] -[visit_exp `REF.FUNC`_instr{funcidx#3213}(y)*{funcidx#3213 <- `funcidx#3213*`, y <- `y*`}] -[scope_enter funcidx#3213] +[visit_exp [`REF.FUNC`_instr(y)*{y <- `y*`}]] +[visit_exp `REF.FUNC`_instr(y)*{y <- `y*`}] [scope_enter y] -[visit_exp `REF.FUNC`_instr{funcidx#3213}(y)] -[visit_exp funcidx#3213] -[visit_id funcidx#3213] not free +[visit_exp `REF.FUNC`_instr(y)] [visit_exp (y)] [visit_exp y] [visit_id y] not free -[visit_id funcidx#3213] not free [visit_id y] not free [scope_exit y] -[scope_exit funcidx#3213] -[visit_exp `funcidx#3213*`] -[visit_id funcidx#3213*] no dims -[visit_id funcidx#3213*] [visit_exp `y*`] [visit_id y*] no dims [visit_id y*] -[visit_exp `ACTIVE`_elemmode{tableidx#144, expr#4909}(`%`_tableidx{i#91655}(0), e_o)] -[visit_exp tableidx#144] -[visit_id tableidx#144] -[visit_exp expr#4909] -[visit_id expr#4909] -[visit_exp (`%`_tableidx{i#91655}(0), e_o)] -[visit_exp `%`_tableidx{i#91655}(0)] -[visit_exp i#91655] -[visit_id i#91655] +[visit_exp `ACTIVE`_elemmode(`%`_tableidx(0), e_o)] +[visit_exp (`%`_tableidx(0), e_o)] +[visit_exp `%`_tableidx(0)] [visit_exp (0)] [visit_exp 0] [visit_exp e_o] [visit_id e_o] -[visit_exp `%`_u32{i#91592}(0)] -[visit_exp i#91592] -[visit_id i#91592] +[visit_exp `%`_u32(0)] [visit_exp (0)] [visit_exp 0] [visit_exp e_o] @@ -87609,43 +68983,27 @@ dims \ = e_o, elemmode#3307, expr#4909, expr*#3307, funcidx#3213, heaptype#1765 [visit_exp `y*`] [visit_id y*] not free [visit_id y*] no dims -[check_dims] elemmode#3319 expr*#3319 funcidx#3215 i#91678 reftype#4035 rt y -dims \ = elemmode#3319, expr*#3319, funcidx#3215, i#91678, reftype#4035, rt, y -[visit_exp `ELEM`_elem{reftype#4035, `expr*#3319`, elemmode#3319}(rt, [`REF.FUNC`_instr{funcidx#3215}(y)*{funcidx#3215 <- `funcidx#3215*`, y <- `y*`}], `PASSIVE`_elemmode)] -[visit_exp reftype#4035] -[visit_id reftype#4035] -[visit_exp `expr*#3319`] -[visit_id expr*#3319] -[visit_exp elemmode#3319] -[visit_id elemmode#3319] -[visit_exp (rt, [`REF.FUNC`_instr{funcidx#3215}(y)*{funcidx#3215 <- `funcidx#3215*`, y <- `y*`}], `PASSIVE`_elemmode)] +[check_dims] rt y +dims \ = rt, y +[visit_exp `ELEM`_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `PASSIVE`_elemmode)] +[visit_exp (rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `PASSIVE`_elemmode)] [visit_exp rt] [visit_id rt] -[visit_exp [`REF.FUNC`_instr{funcidx#3215}(y)*{funcidx#3215 <- `funcidx#3215*`, y <- `y*`}]] -[visit_exp `REF.FUNC`_instr{funcidx#3215}(y)*{funcidx#3215 <- `funcidx#3215*`, y <- `y*`}] -[scope_enter funcidx#3215] +[visit_exp [`REF.FUNC`_instr(y)*{y <- `y*`}]] +[visit_exp `REF.FUNC`_instr(y)*{y <- `y*`}] [scope_enter y] -[visit_exp `REF.FUNC`_instr{funcidx#3215}(y)] -[visit_exp funcidx#3215] -[visit_id funcidx#3215] not free +[visit_exp `REF.FUNC`_instr(y)] [visit_exp (y)] [visit_exp y] [visit_id y] not free -[visit_id funcidx#3215] not free [visit_id y] not free [scope_exit y] -[scope_exit funcidx#3215] -[visit_exp `funcidx#3215*`] -[visit_id funcidx#3215*] no dims -[visit_id funcidx#3215*] [visit_exp `y*`] [visit_id y*] no dims [visit_id y*] [visit_exp `PASSIVE`_elemmode] [visit_exp ()] -[visit_exp `%`_u32{i#91678}(1)] -[visit_exp i#91678] -[visit_id i#91678] +[visit_exp `%`_u32(1)] [visit_exp (1)] [visit_exp 1] [visit_exp rt] @@ -87659,51 +69017,31 @@ dims \ = elemmode#3319, expr*#3319, funcidx#3215, i#91678, reftype#4035, rt, y [visit_exp `y*`] [visit_id y*] not free [visit_id y*] no dims -[check_dims] e elemmode#3331 expr#4911 expr*#3331 funcidx#3217 i#91742 reftype#4047 rt tableidx#146 x y -dims \ = e, elemmode#3331, expr#4911, expr*#3331, funcidx#3217, i#91742, reftype#4047, rt, tableidx#146, x, y -[visit_exp `ELEM`_elem{reftype#4047, `expr*#3331`, elemmode#3331}(rt, [`REF.FUNC`_instr{funcidx#3217}(y)*{funcidx#3217 <- `funcidx#3217*`, y <- `y*`}], `ACTIVE`_elemmode{tableidx#146, expr#4911}(x, e))] -[visit_exp reftype#4047] -[visit_id reftype#4047] -[visit_exp `expr*#3331`] -[visit_id expr*#3331] -[visit_exp elemmode#3331] -[visit_id elemmode#3331] -[visit_exp (rt, [`REF.FUNC`_instr{funcidx#3217}(y)*{funcidx#3217 <- `funcidx#3217*`, y <- `y*`}], `ACTIVE`_elemmode{tableidx#146, expr#4911}(x, e))] +[check_dims] e rt x y +dims \ = e, rt, x, y +[visit_exp `ELEM`_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `ACTIVE`_elemmode(x, e))] +[visit_exp (rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `ACTIVE`_elemmode(x, e))] [visit_exp rt] [visit_id rt] -[visit_exp [`REF.FUNC`_instr{funcidx#3217}(y)*{funcidx#3217 <- `funcidx#3217*`, y <- `y*`}]] -[visit_exp `REF.FUNC`_instr{funcidx#3217}(y)*{funcidx#3217 <- `funcidx#3217*`, y <- `y*`}] -[scope_enter funcidx#3217] +[visit_exp [`REF.FUNC`_instr(y)*{y <- `y*`}]] +[visit_exp `REF.FUNC`_instr(y)*{y <- `y*`}] [scope_enter y] -[visit_exp `REF.FUNC`_instr{funcidx#3217}(y)] -[visit_exp funcidx#3217] -[visit_id funcidx#3217] not free +[visit_exp `REF.FUNC`_instr(y)] [visit_exp (y)] [visit_exp y] [visit_id y] not free -[visit_id funcidx#3217] not free [visit_id y] not free [scope_exit y] -[scope_exit funcidx#3217] -[visit_exp `funcidx#3217*`] -[visit_id funcidx#3217*] no dims -[visit_id funcidx#3217*] [visit_exp `y*`] [visit_id y*] no dims [visit_id y*] -[visit_exp `ACTIVE`_elemmode{tableidx#146, expr#4911}(x, e)] -[visit_exp tableidx#146] -[visit_id tableidx#146] -[visit_exp expr#4911] -[visit_id expr#4911] +[visit_exp `ACTIVE`_elemmode(x, e)] [visit_exp (x, e)] [visit_exp x] [visit_id x] [visit_exp e] [visit_id e] -[visit_exp `%`_u32{i#91742}(2)] -[visit_exp i#91742] -[visit_id i#91742] +[visit_exp `%`_u32(2)] [visit_exp (2)] [visit_exp 2] [visit_exp x] @@ -87721,43 +69059,27 @@ dims \ = e, elemmode#3331, expr#4911, expr*#3331, funcidx#3217, i#91742, reftyp [visit_exp `y*`] [visit_id y*] not free [visit_id y*] no dims -[check_dims] elemmode#3343 expr*#3343 funcidx#3219 i#91837 reftype#4059 rt y -dims \ = elemmode#3343, expr*#3343, funcidx#3219, i#91837, reftype#4059, rt, y -[visit_exp `ELEM`_elem{reftype#4059, `expr*#3343`, elemmode#3343}(rt, [`REF.FUNC`_instr{funcidx#3219}(y)*{funcidx#3219 <- `funcidx#3219*`, y <- `y*`}], `DECLARE`_elemmode)] -[visit_exp reftype#4059] -[visit_id reftype#4059] -[visit_exp `expr*#3343`] -[visit_id expr*#3343] -[visit_exp elemmode#3343] -[visit_id elemmode#3343] -[visit_exp (rt, [`REF.FUNC`_instr{funcidx#3219}(y)*{funcidx#3219 <- `funcidx#3219*`, y <- `y*`}], `DECLARE`_elemmode)] +[check_dims] rt y +dims \ = rt, y +[visit_exp `ELEM`_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `DECLARE`_elemmode)] +[visit_exp (rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `DECLARE`_elemmode)] [visit_exp rt] [visit_id rt] -[visit_exp [`REF.FUNC`_instr{funcidx#3219}(y)*{funcidx#3219 <- `funcidx#3219*`, y <- `y*`}]] -[visit_exp `REF.FUNC`_instr{funcidx#3219}(y)*{funcidx#3219 <- `funcidx#3219*`, y <- `y*`}] -[scope_enter funcidx#3219] +[visit_exp [`REF.FUNC`_instr(y)*{y <- `y*`}]] +[visit_exp `REF.FUNC`_instr(y)*{y <- `y*`}] [scope_enter y] -[visit_exp `REF.FUNC`_instr{funcidx#3219}(y)] -[visit_exp funcidx#3219] -[visit_id funcidx#3219] not free +[visit_exp `REF.FUNC`_instr(y)] [visit_exp (y)] [visit_exp y] [visit_id y] not free -[visit_id funcidx#3219] not free [visit_id y] not free [scope_exit y] -[scope_exit funcidx#3219] -[visit_exp `funcidx#3219*`] -[visit_id funcidx#3219*] no dims -[visit_id funcidx#3219*] [visit_exp `y*`] [visit_id y*] no dims [visit_id y*] [visit_exp `DECLARE`_elemmode] [visit_exp ()] -[visit_exp `%`_u32{i#91837}(3)] -[visit_exp i#91837] -[visit_id i#91837] +[visit_exp `%`_u32(3)] [visit_exp (3)] [visit_exp 3] [visit_exp rt] @@ -87771,21 +69093,11 @@ dims \ = elemmode#3343, expr*#3343, funcidx#3219, i#91837, reftype#4059, rt, y [visit_exp `y*`] [visit_id y*] not free [visit_id y*] no dims -[check_dims] e e_O elemmode#3355 expr#4913 expr*#3355 heaptype#1813 i#91901 i#91925 null?#1747 reftype#4071 tableidx#148 -dims \ = e, e_O, elemmode#3355, expr#4913, expr*#3355, heaptype#1813, i#91901, i#91925, null?#1747, reftype#4071, tableidx#148 -[visit_exp `ELEM`_elem{reftype#4071, `expr*#3355`, elemmode#3355}(`REF`_reftype{`null?#1747`, heaptype#1813}(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#148, expr#4913}(`%`_tableidx{i#91925}(0), e_O))] -[visit_exp reftype#4071] -[visit_id reftype#4071] -[visit_exp `expr*#3355`] -[visit_id expr*#3355] -[visit_exp elemmode#3355] -[visit_id elemmode#3355] -[visit_exp (`REF`_reftype{`null?#1747`, heaptype#1813}(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#148, expr#4913}(`%`_tableidx{i#91925}(0), e_O))] -[visit_exp `REF`_reftype{`null?#1747`, heaptype#1813}(?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp `null?#1747`] -[visit_id null?#1747] -[visit_exp heaptype#1813] -[visit_id heaptype#1813] +[check_dims] e e_O +dims \ = e, e_O +[visit_exp `ELEM`_elem(`REF`_reftype(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode(`%`_tableidx(0), e_O))] +[visit_exp (`REF`_reftype(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode(`%`_tableidx(0), e_O))] +[visit_exp `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)] [visit_exp (?(`NULL`_null), `FUNC`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -87801,22 +69113,14 @@ dims \ = e, e_O, elemmode#3355, expr#4913, expr*#3355, heaptype#1813, i#91901, [visit_exp `e*`] [visit_id e*] no dims [visit_id e*] -[visit_exp `ACTIVE`_elemmode{tableidx#148, expr#4913}(`%`_tableidx{i#91925}(0), e_O)] -[visit_exp tableidx#148] -[visit_id tableidx#148] -[visit_exp expr#4913] -[visit_id expr#4913] -[visit_exp (`%`_tableidx{i#91925}(0), e_O)] -[visit_exp `%`_tableidx{i#91925}(0)] -[visit_exp i#91925] -[visit_id i#91925] +[visit_exp `ACTIVE`_elemmode(`%`_tableidx(0), e_O)] +[visit_exp (`%`_tableidx(0), e_O)] +[visit_exp `%`_tableidx(0)] [visit_exp (0)] [visit_exp 0] [visit_exp e_O] [visit_id e_O] -[visit_exp `%`_u32{i#91901}(4)] -[visit_exp i#91901] -[visit_id i#91901] +[visit_exp `%`_u32(4)] [visit_exp (4)] [visit_exp 4] [visit_exp e_O] @@ -87830,15 +69134,9 @@ dims \ = e, e_O, elemmode#3355, expr#4913, expr*#3355, heaptype#1813, i#91901, [visit_exp `e*`] [visit_id e*] not free [visit_id e*] no dims -[check_dims] e elemmode#3367 expr*#3367 i#91948 reftype#4083 rt -dims \ = e, elemmode#3367, expr*#3367, i#91948, reftype#4083, rt -[visit_exp `ELEM`_elem{reftype#4083, `expr*#3367`, elemmode#3367}(rt, e*{e <- `e*`}, `PASSIVE`_elemmode)] -[visit_exp reftype#4083] -[visit_id reftype#4083] -[visit_exp `expr*#3367`] -[visit_id expr*#3367] -[visit_exp elemmode#3367] -[visit_id elemmode#3367] +[check_dims] e rt +dims \ = e, rt +[visit_exp `ELEM`_elem(rt, e*{e <- `e*`}, `PASSIVE`_elemmode)] [visit_exp (rt, e*{e <- `e*`}, `PASSIVE`_elemmode)] [visit_exp rt] [visit_id rt] @@ -87853,9 +69151,7 @@ dims \ = e, elemmode#3367, expr*#3367, i#91948, reftype#4083, rt [visit_id e*] [visit_exp `PASSIVE`_elemmode] [visit_exp ()] -[visit_exp `%`_u32{i#91948}(5)] -[visit_exp i#91948] -[visit_id i#91948] +[visit_exp `%`_u32(5)] [visit_exp (5)] [visit_exp 5] [visit_exp rt] @@ -87869,21 +69165,11 @@ dims \ = e, elemmode#3367, expr*#3367, i#91948, reftype#4083, rt [visit_exp `e*`] [visit_id e*] not free [visit_id e*] no dims -[check_dims] e e_O elemmode#3379 expr#4915 expr*#3379 heaptype#1837 i#91973 null?#1771 reftype#4095 tableidx#150 x -dims \ = e, e_O, elemmode#3379, expr#4915, expr*#3379, heaptype#1837, i#91973, null?#1771, reftype#4095, tableidx#150, x -[visit_exp `ELEM`_elem{reftype#4095, `expr*#3379`, elemmode#3379}(`REF`_reftype{`null?#1771`, heaptype#1837}(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#150, expr#4915}(x, e_O))] -[visit_exp reftype#4095] -[visit_id reftype#4095] -[visit_exp `expr*#3379`] -[visit_id expr*#3379] -[visit_exp elemmode#3379] -[visit_id elemmode#3379] -[visit_exp (`REF`_reftype{`null?#1771`, heaptype#1837}(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#150, expr#4915}(x, e_O))] -[visit_exp `REF`_reftype{`null?#1771`, heaptype#1837}(?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp `null?#1771`] -[visit_id null?#1771] -[visit_exp heaptype#1837] -[visit_id heaptype#1837] +[check_dims] e e_O x +dims \ = e, e_O, x +[visit_exp `ELEM`_elem(`REF`_reftype(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode(x, e_O))] +[visit_exp (`REF`_reftype(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode(x, e_O))] +[visit_exp `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)] [visit_exp (?(`NULL`_null), `FUNC`_heaptype)] [visit_exp ?(`NULL`_null)] [visit_exp `NULL`_null] @@ -87899,19 +69185,13 @@ dims \ = e, e_O, elemmode#3379, expr#4915, expr*#3379, heaptype#1837, i#91973, [visit_exp `e*`] [visit_id e*] no dims [visit_id e*] -[visit_exp `ACTIVE`_elemmode{tableidx#150, expr#4915}(x, e_O)] -[visit_exp tableidx#150] -[visit_id tableidx#150] -[visit_exp expr#4915] -[visit_id expr#4915] +[visit_exp `ACTIVE`_elemmode(x, e_O)] [visit_exp (x, e_O)] [visit_exp x] [visit_id x] [visit_exp e_O] [visit_id e_O] -[visit_exp `%`_u32{i#91973}(6)] -[visit_exp i#91973] -[visit_id i#91973] +[visit_exp `%`_u32(6)] [visit_exp (6)] [visit_exp 6] [visit_exp x] @@ -87927,15 +69207,9 @@ dims \ = e, e_O, elemmode#3379, expr#4915, expr*#3379, heaptype#1837, i#91973, [visit_exp `e*`] [visit_id e*] not free [visit_id e*] no dims -[check_dims] e elemmode#3391 expr*#3391 i#92029 reftype#4107 rt -dims \ = e, elemmode#3391, expr*#3391, i#92029, reftype#4107, rt -[visit_exp `ELEM`_elem{reftype#4107, `expr*#3391`, elemmode#3391}(rt, e*{e <- `e*`}, `DECLARE`_elemmode)] -[visit_exp reftype#4107] -[visit_id reftype#4107] -[visit_exp `expr*#3391`] -[visit_id expr*#3391] -[visit_exp elemmode#3391] -[visit_id elemmode#3391] +[check_dims] e rt +dims \ = e, rt +[visit_exp `ELEM`_elem(rt, e*{e <- `e*`}, `DECLARE`_elemmode)] [visit_exp (rt, e*{e <- `e*`}, `DECLARE`_elemmode)] [visit_exp rt] [visit_id rt] @@ -87950,9 +69224,7 @@ dims \ = e, elemmode#3391, expr*#3391, i#92029, reftype#4107, rt [visit_id e*] [visit_exp `DECLARE`_elemmode] [visit_exp ()] -[visit_exp `%`_u32{i#92029}(7)] -[visit_exp i#92029] -[visit_id i#92029] +[visit_exp `%`_u32(7)] [visit_exp (7)] [visit_exp 7] [visit_exp rt] @@ -87992,26 +69264,16 @@ dims \ = elem [check_dims] ps' = [check_dims] -[check_dims] i#92056 n t valtype#1033 -dims \ = i#92056, n, t, valtype#1033 -[visit_exp `LOCAL`_local{valtype#1033}(t)^n{valtype#1033 <- `valtype#1033*`}] -[scope_enter valtype#1033] -[visit_exp `LOCAL`_local{valtype#1033}(t)] -[visit_exp valtype#1033] -[visit_id valtype#1033] not free +[check_dims] n t +dims \ = n, t +[visit_exp `LOCAL`_local(t)^n{}] +[visit_exp `LOCAL`_local(t)] [visit_exp (t)] [visit_exp t] [visit_id t] -[visit_id valtype#1033] not free -[scope_exit valtype#1033] [visit_exp n] [visit_id n] -[visit_exp `valtype#1033*`] -[visit_id valtype#1033*] no dims -[visit_id valtype#1033*] -[visit_exp `%`_u32{i#92056}(n)] -[visit_exp i#92056] -[visit_id i#92056] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free @@ -88086,13 +69348,11 @@ dims \ = e, loc [visit_exp 32] ps' = [check_dims] -[check_dims] code i#92081 len -dims \ = code, i#92081, len +[check_dims] code len +dims \ = code, len [visit_exp code] [visit_id code] -[visit_exp `%`_u32{i#92081}(len)] -[visit_exp i#92081] -[visit_id i#92081] +[visit_exp `%`_u32(len)] [visit_exp (len)] [visit_exp len] [visit_id len] @@ -88127,14 +69387,10 @@ dims \ = code [visit_exp 10] ps' = [check_dims] -[check_dims] b byte*#2217 datamode#2181 e expr#4917 i#92106 i#92154 memidx#272 -dims \ = b, byte*#2217, datamode#2181, e, expr#4917, i#92106, i#92154, memidx#272 -[visit_exp `DATA`_data{`byte*#2217`, datamode#2181}(b*{b <- `b*`}, `ACTIVE`_datamode{memidx#272, expr#4917}(`%`_memidx{i#92154}(0), e))] -[visit_exp `byte*#2217`] -[visit_id byte*#2217] -[visit_exp datamode#2181] -[visit_id datamode#2181] -[visit_exp (b*{b <- `b*`}, `ACTIVE`_datamode{memidx#272, expr#4917}(`%`_memidx{i#92154}(0), e))] +[check_dims] b e +dims \ = b, e +[visit_exp `DATA`_data(b*{b <- `b*`}, `ACTIVE`_datamode(`%`_memidx(0), e))] +[visit_exp (b*{b <- `b*`}, `ACTIVE`_datamode(`%`_memidx(0), e))] [visit_exp b*{b <- `b*`}] [scope_enter b] [visit_exp b] @@ -88144,22 +69400,14 @@ dims \ = b, byte*#2217, datamode#2181, e, expr#4917, i#92106, i#92154, memidx#2 [visit_exp `b*`] [visit_id b*] no dims [visit_id b*] -[visit_exp `ACTIVE`_datamode{memidx#272, expr#4917}(`%`_memidx{i#92154}(0), e)] -[visit_exp memidx#272] -[visit_id memidx#272] -[visit_exp expr#4917] -[visit_id expr#4917] -[visit_exp (`%`_memidx{i#92154}(0), e)] -[visit_exp `%`_memidx{i#92154}(0)] -[visit_exp i#92154] -[visit_id i#92154] +[visit_exp `ACTIVE`_datamode(`%`_memidx(0), e)] +[visit_exp (`%`_memidx(0), e)] +[visit_exp `%`_memidx(0)] [visit_exp (0)] [visit_exp 0] [visit_exp e] [visit_id e] -[visit_exp `%`_u32{i#92106}(0)] -[visit_exp i#92106] -[visit_id i#92106] +[visit_exp `%`_u32(0)] [visit_exp (0)] [visit_exp 0] [visit_exp e] @@ -88173,13 +69421,9 @@ dims \ = b, byte*#2217, datamode#2181, e, expr#4917, i#92106, i#92154, memidx#2 [visit_exp `b*`] [visit_id b*] not free [visit_id b*] no dims -[check_dims] b byte*#2229 datamode#2193 i#92177 -dims \ = b, byte*#2229, datamode#2193, i#92177 -[visit_exp `DATA`_data{`byte*#2229`, datamode#2193}(b*{b <- `b*`}, `PASSIVE`_datamode)] -[visit_exp `byte*#2229`] -[visit_id byte*#2229] -[visit_exp datamode#2193] -[visit_id datamode#2193] +[check_dims] b +dims \ = b +[visit_exp `DATA`_data(b*{b <- `b*`}, `PASSIVE`_datamode)] [visit_exp (b*{b <- `b*`}, `PASSIVE`_datamode)] [visit_exp b*{b <- `b*`}] [scope_enter b] @@ -88192,9 +69436,7 @@ dims \ = b, byte*#2229, datamode#2193, i#92177 [visit_id b*] [visit_exp `PASSIVE`_datamode] [visit_exp ()] -[visit_exp `%`_u32{i#92177}(1)] -[visit_exp i#92177] -[visit_id i#92177] +[visit_exp `%`_u32(1)] [visit_exp (1)] [visit_exp 1] [visit_exp b*{b <- `b*`}] @@ -88206,14 +69448,10 @@ dims \ = b, byte*#2229, datamode#2193, i#92177 [visit_exp `b*`] [visit_id b*] not free [visit_id b*] no dims -[check_dims] b byte*#2241 datamode#2205 e expr#4919 i#92226 memidx#274 x -dims \ = b, byte*#2241, datamode#2205, e, expr#4919, i#92226, memidx#274, x -[visit_exp `DATA`_data{`byte*#2241`, datamode#2205}(b*{b <- `b*`}, `ACTIVE`_datamode{memidx#274, expr#4919}(x, e))] -[visit_exp `byte*#2241`] -[visit_id byte*#2241] -[visit_exp datamode#2205] -[visit_id datamode#2205] -[visit_exp (b*{b <- `b*`}, `ACTIVE`_datamode{memidx#274, expr#4919}(x, e))] +[check_dims] b e x +dims \ = b, e, x +[visit_exp `DATA`_data(b*{b <- `b*`}, `ACTIVE`_datamode(x, e))] +[visit_exp (b*{b <- `b*`}, `ACTIVE`_datamode(x, e))] [visit_exp b*{b <- `b*`}] [scope_enter b] [visit_exp b] @@ -88223,19 +69461,13 @@ dims \ = b, byte*#2241, datamode#2205, e, expr#4919, i#92226, memidx#274, x [visit_exp `b*`] [visit_id b*] no dims [visit_id b*] -[visit_exp `ACTIVE`_datamode{memidx#274, expr#4919}(x, e)] -[visit_exp memidx#274] -[visit_id memidx#274] -[visit_exp expr#4919] -[visit_id expr#4919] +[visit_exp `ACTIVE`_datamode(x, e)] [visit_exp (x, e)] [visit_exp x] [visit_id x] [visit_exp e] [visit_id e] -[visit_exp `%`_u32{i#92226}(2)] -[visit_exp i#92226] -[visit_id i#92226] +[visit_exp `%`_u32(2)] [visit_exp (2)] [visit_exp 2] [visit_exp x] @@ -88276,18 +69508,14 @@ dims \ = data [visit_exp 11] ps' = [check_dims] -[check_dims] i#92308 i#92330 n -dims \ = i#92308, i#92330, n -[visit_exp [`%`_u32{i#92330}(n)]] -[visit_exp `%`_u32{i#92330}(n)] -[visit_exp i#92330] -[visit_id i#92330] +[check_dims] n +dims \ = n +[visit_exp [`%`_u32(n)]] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `%`_u32{i#92308}(n)] -[visit_exp i#92308] -[visit_id i#92308] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free @@ -88304,11 +69532,9 @@ dims \ = nopt [visit_exp 12] ps' = [check_dims] -[check_dims] jt tagtype#336 -dims \ = jt, tagtype#336 -[visit_exp `TAG`_tag{tagtype#336}(jt)] -[visit_exp tagtype#336] -[visit_id tagtype#336] +[check_dims] jt +dims \ = jt +[visit_exp `TAG`_tag(jt)] [visit_exp (jt)] [visit_exp jt] [visit_id jt] @@ -88355,31 +69581,9 @@ dims \ = [visit_exp ()] ps' = [check_dims] -[check_dims] data data*#143 elem elem*#167 export export*#143 expr expr#5253 func func*#143 global global*#167 i#92509 import import*#143 local local*#1601 mem mem*#167 n start start?#143 table table*#167 tag tag*#143 type type*#143 typeidx typeidx#2117 -dims \ = data, data*#143, elem, elem*#167, export, export*#143, expr, expr#5253, func, func*#143, global, global*#167, i#92509, import, import*#143, local, local*#1601, mem, mem*#167, n, start, start?#143, table, table*#167, tag, tag*#143, type, type*#143, typeidx, typeidx#2117 -[visit_exp `MODULE`_module{`type*#143`, `import*#143`, `tag*#143`, `global*#167`, `mem*#167`, `table*#167`, `func*#143`, `data*#143`, `elem*#167`, `start?#143`, `export*#143`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp `type*#143`] -[visit_id type*#143] -[visit_exp `import*#143`] -[visit_id import*#143] -[visit_exp `tag*#143`] -[visit_id tag*#143] -[visit_exp `global*#167`] -[visit_id global*#167] -[visit_exp `mem*#167`] -[visit_id mem*#167] -[visit_exp `table*#167`] -[visit_id table*#167] -[visit_exp `func*#143`] -[visit_id func*#143] -[visit_exp `data*#143`] -[visit_id data*#143] -[visit_exp `elem*#167`] -[visit_id elem*#167] -[visit_exp `start?#143`] -[visit_id start?#143] -[visit_exp `export*#143`] -[visit_id export*#143] +[check_dims] data elem export expr func global import local mem n start table tag type typeidx +dims \ = data, elem, export, expr, func, global, import, local, mem, n, start, table, tag, type, typeidx +[visit_exp `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] [visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] [visit_exp type*{type <- `type*`}] [scope_enter type] @@ -88570,22 +69774,14 @@ dims \ = data, data*#143, elem, elem*#167, export, export*#143, expr, expr#5253 [visit_exp `elem*`] [visit_id elem*] not free [visit_id elem*] no dims -[visit_exp `%`_u32{i#92509}(n)?{i#92509 <- `i#92509?`, n <- `n?`}] -[scope_enter i#92509] +[visit_exp `%`_u32(n)?{n <- `n?`}] [scope_enter n] -[visit_exp `%`_u32{i#92509}(n)] -[visit_exp i#92509] -[visit_id i#92509] not free +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[visit_id i#92509] not free [visit_id n] not free [scope_exit n] -[scope_exit i#92509] -[visit_exp `i#92509?`] -[visit_id i#92509?] no dims -[visit_id i#92509?] [visit_exp `n?`] [visit_id n?] no dims [visit_id n?] @@ -88668,22 +69864,13 @@ dims \ = data, data*#143, elem, elem*#167, export, export*#143, expr, expr#5253 [visit_id func*] no dims [visit_exp []] [scope_enter expr] -[scope_enter expr#5253] [scope_enter func] [scope_enter local*] -[scope_enter local*#1601] [scope_enter typeidx] -[scope_enter typeidx#2117] -[visit_exp (func = `FUNC`_func{typeidx#2117, `local*#1601`, expr#5253}(typeidx, local*{local <- `local*`}, expr))] +[visit_exp (func = `FUNC`_func(typeidx, local*{local <- `local*`}, expr))] [visit_exp func] [visit_id func] not free -[visit_exp `FUNC`_func{typeidx#2117, `local*#1601`, expr#5253}(typeidx, local*{local <- `local*`}, expr)] -[visit_exp typeidx#2117] -[visit_id typeidx#2117] not free -[visit_exp `local*#1601`] -[visit_id local*#1601] not free -[visit_exp expr#5253] -[visit_id expr#5253] not free +[visit_exp `FUNC`_func(typeidx, local*{local <- `local*`}, expr)] [visit_exp (typeidx, local*{local <- `local*`}, expr)] [visit_exp typeidx] [visit_id typeidx] not free @@ -88699,58 +69886,39 @@ dims \ = data, data*#143, elem, elem*#167, export, export*#143, expr, expr#5253 [visit_exp expr] [visit_id expr] not free [visit_id expr] not free -[visit_id expr#5253] not free [visit_id func] not free [visit_id local*] not free [visit_id local*] no dims -[visit_id local*#1601] not free [visit_id typeidx] not free -[visit_id typeidx#2117] not free -[scope_exit typeidx#2117] [scope_exit typeidx] -[scope_exit local*#1601] [scope_exit local*] [scope_exit func] -[scope_exit expr#5253] [scope_exit expr] [visit_exp `expr*`] [visit_id expr*] not free [visit_id expr*] no dims -[visit_exp `expr#5253*`] -[visit_id expr#5253*] no dims -[visit_id expr#5253*] [visit_exp `func*`] [visit_id func*] not free [visit_id func*] no dims [visit_exp `local**`] [visit_id local**] not free [visit_id local**] no dims -[visit_exp `local*#1601*`] -[visit_id local*#1601*] no dims -[visit_id local*#1601*] [visit_exp `typeidx*`] [visit_id typeidx*] not free [visit_id typeidx*] no dims -[visit_exp `typeidx#2117*`] -[visit_id typeidx#2117*] no dims -[visit_id typeidx#2117*] ps' = [check_dims] -[check_dims] i#92557 -dims \ = , i#92557 -[visit_exp `%`_char{i#92557}(``)] -[visit_exp i#92557] -[visit_id i#92557] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#92565 -dims \ = , i#92565 -[visit_exp `%`_char{i#92565}(``)] -[visit_exp i#92565] -[visit_id i#92565] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] @@ -89013,8 +70181,8 @@ dims \ = [visit_id ] not free ps' = [check_dims] -[check_dims] c i#92597 i#92599 -dims \ = , c, i#92597, i#92599 +[check_dims] c +dims \ = , c [visit_exp (``, ()).1] [visit_exp (``, ())] [visit_exp ``] @@ -89024,22 +70192,18 @@ dims \ = , c, i#92597, i#92599 [visit_id ] not free [visit_exp c] [visit_id c] -[visit_exp ((c!`%`_char{i#92597}.0 =/= 10) /\ (c!`%`_char{i#92599}.0 =/= 13))] -[visit_exp (c!`%`_char{i#92597}.0 =/= 10)] -[visit_exp c!`%`_char{i#92597}.0] -[visit_exp c!`%`_char{i#92597}] +[visit_exp ((c!`%`_char.0 =/= 10) /\ (c!`%`_char.0 =/= 13))] +[visit_exp (c!`%`_char.0 =/= 10)] +[visit_exp c!`%`_char.0] +[visit_exp c!`%`_char] [visit_exp c] [visit_id c] not free -[visit_exp i#92597] -[visit_id i#92597] [visit_exp 10] -[visit_exp (c!`%`_char{i#92599}.0 =/= 13)] -[visit_exp c!`%`_char{i#92599}.0] -[visit_exp c!`%`_char{i#92599}] +[visit_exp (c!`%`_char.0 =/= 13)] +[visit_exp c!`%`_char.0] +[visit_exp c!`%`_char] [visit_exp c] [visit_id c] not free -[visit_exp i#92599] -[visit_id i#92599] [visit_exp 13] ps' = [check_dims] @@ -89054,8 +70218,8 @@ dims \ = [visit_id ] not free ps' = [check_dims] -[check_dims] c i#92625 i#92635 -dims \ = , c, i#92625, i#92635 +[check_dims] c +dims \ = , c [visit_exp (``, ()).1] [visit_exp (``, ())] [visit_exp ``] @@ -89065,25 +70229,21 @@ dims \ = , c, i#92625, i#92635 [visit_id ] not free [visit_exp c] [visit_id c] -[visit_exp ((c =/= `%`_char{i#92625}(59)) /\ (c =/= `%`_char{i#92635}(40)))] -[visit_exp (c =/= `%`_char{i#92625}(59))] +[visit_exp ((c =/= `%`_char(59)) /\ (c =/= `%`_char(40)))] +[visit_exp (c =/= `%`_char(59))] [visit_exp c] [visit_id c] not free -[visit_exp `%`_char{i#92625}(59)] -[visit_exp i#92625] -[visit_id i#92625] +[visit_exp `%`_char(59)] [visit_exp (59)] [visit_exp 59] -[visit_exp (c =/= `%`_char{i#92635}(40))] +[visit_exp (c =/= `%`_char(40))] [visit_exp c] [visit_id c] not free -[visit_exp `%`_char{i#92635}(40)] -[visit_exp i#92635] -[visit_id i#92635] +[visit_exp `%`_char(40)] [visit_exp (40)] [visit_exp 40] -[check_dims] c i#92657 i#92667 -dims \ = , c, i#92657, i#92667 +[check_dims] c +dims \ = , c [visit_exp (``, ()).1] [visit_exp (``, ())] [visit_exp ``] @@ -89093,25 +70253,21 @@ dims \ = , c, i#92657, i#92667 [visit_id ] not free [visit_exp c] [visit_id c] -[visit_exp ((c =/= `%`_char{i#92657}(59)) /\ (c =/= `%`_char{i#92667}(41)))] -[visit_exp (c =/= `%`_char{i#92657}(59))] +[visit_exp ((c =/= `%`_char(59)) /\ (c =/= `%`_char(41)))] +[visit_exp (c =/= `%`_char(59))] [visit_exp c] [visit_id c] not free -[visit_exp `%`_char{i#92657}(59)] -[visit_exp i#92657] -[visit_id i#92657] +[visit_exp `%`_char(59)] [visit_exp (59)] [visit_exp 59] -[visit_exp (c =/= `%`_char{i#92667}(41))] +[visit_exp (c =/= `%`_char(41))] [visit_exp c] [visit_id c] not free -[visit_exp `%`_char{i#92667}(41)] -[visit_exp i#92667] -[visit_id i#92667] +[visit_exp `%`_char(41)] [visit_exp (41)] [visit_exp 41] -[check_dims] c i#92689 i#92699 -dims \ = , c, i#92689, i#92699 +[check_dims] c +dims \ = , c [visit_exp (``, ()).1] [visit_exp (``, ())] [visit_exp ``] @@ -89121,21 +70277,17 @@ dims \ = , c, i#92689, i#92699 [visit_id ] not free [visit_exp c] [visit_id c] -[visit_exp ((c =/= `%`_char{i#92689}(59)) /\ (c =/= `%`_char{i#92699}(40)))] -[visit_exp (c =/= `%`_char{i#92689}(59))] +[visit_exp ((c =/= `%`_char(59)) /\ (c =/= `%`_char(40)))] +[visit_exp (c =/= `%`_char(59))] [visit_exp c] [visit_id c] not free -[visit_exp `%`_char{i#92689}(59)] -[visit_exp i#92689] -[visit_id i#92689] +[visit_exp `%`_char(59)] [visit_exp (59)] [visit_exp 59] -[visit_exp (c =/= `%`_char{i#92699}(40))] +[visit_exp (c =/= `%`_char(40))] [visit_exp c] [visit_id c] not free -[visit_exp `%`_char{i#92699}(40)] -[visit_exp i#92699] -[visit_id i#92699] +[visit_exp `%`_char(40)] [visit_exp (40)] [visit_exp 40] [check_dims] @@ -89259,11 +70411,9 @@ dims \ = h, n [visit_id h] not free ps' = (N : N) [check_dims] N -[check_dims] N i#92715 n -dims \ N = i#92715, n -[visit_exp `%`_uN{i#92715}(n)] -[visit_exp i#92715] -[visit_id i#92715] +[check_dims] N n +dims \ N = n +[visit_exp `%`_uN(n)] [visit_exp (n)] [visit_exp n] [visit_id n] @@ -89277,11 +70427,9 @@ dims \ N = i#92715, n [visit_exp N] [visit_id N] not free [visit_id N] no dims -[check_dims] N i#92723 n -dims \ N = i#92723, n -[visit_exp `%`_uN{i#92723}(n)] -[visit_exp i#92723] -[visit_id i#92723] +[check_dims] N n +dims \ N = n +[visit_exp `%`_uN(n)] [visit_exp (n)] [visit_exp n] [visit_id n] @@ -89300,11 +70448,9 @@ dims \ N = i#92723, n [visit_id N] not free ps' = (N : N) [check_dims] N -[check_dims] N i#92731 i#92739 n s -dims \ N = i#92731, i#92739, n, s -[visit_exp `%`_sN{i#92739}((s * (n : nat <:> int)))] -[visit_exp i#92739] -[visit_id i#92739] +[check_dims] N n s +dims \ N = n, s +[visit_exp `%`_sN((s * (n : nat <:> int)))] [visit_exp ((s * (n : nat <:> int)))] [visit_exp (s * (n : nat <:> int))] [visit_exp s] @@ -89314,9 +70460,7 @@ dims \ N = i#92731, i#92739, n, s [visit_id n] [visit_exp s] [visit_id s] not free -[visit_exp `%`_uN{i#92731}(n)] -[visit_exp i#92731] -[visit_id i#92731] +[visit_exp `%`_uN(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free @@ -89366,39 +70510,31 @@ dims \ N = i#92731, i#92739, n, s [visit_id N] not free ps' = (N : N) [check_dims] N -[check_dims] N i#92747 i#92755 n -dims \ N = i#92747, i#92755, n -[visit_exp `%`_iN{i#92755}(n)] -[visit_exp i#92755] -[visit_id i#92755] +[check_dims] N n +dims \ N = n +[visit_exp `%`_iN(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `%`_uN{i#92747}(n)] -[visit_exp i#92747] -[visit_id i#92747] +[visit_exp `%`_uN(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free [visit_exp N] [visit_id N] not free [visit_id N] no dims -[check_dims] N i i#92769 i#92771 -dims \ N = i, i#92769, i#92771 -[visit_exp `%`_iN{i#92771}($inv_signed_(N, i!`%`_sN{i#92769}.0))] -[visit_exp i#92771] -[visit_id i#92771] -[visit_exp ($inv_signed_(N, i!`%`_sN{i#92769}.0))] -[visit_exp $inv_signed_(N, i!`%`_sN{i#92769}.0)] +[check_dims] N i +dims \ N = i +[visit_exp `%`_iN($inv_signed_(N, i!`%`_sN.0))] +[visit_exp ($inv_signed_(N, i!`%`_sN.0))] +[visit_exp $inv_signed_(N, i!`%`_sN.0)] [visit_exp N] [visit_id N] not free [visit_id N] no dims -[visit_exp i!`%`_sN{i#92769}.0] -[visit_exp i!`%`_sN{i#92769}] +[visit_exp i!`%`_sN.0] +[visit_exp i!`%`_sN] [visit_exp i] [visit_id i] -[visit_exp i#92769] -[visit_id i#92769] [visit_exp i] [visit_id i] not free [visit_exp N] @@ -89610,21 +70746,17 @@ dims \ N = q dims \ N = [visit_exp `INF`_fNmag] [visit_exp ()] -[check_dims] N m#7 -dims \ N = m#7 -[visit_exp `NAN`_fNmag{m#7}($canon_(N))] -[visit_exp m#7] -[visit_id m#7] +[check_dims] N +dims \ N = +[visit_exp `NAN`_fNmag($canon_(N))] [visit_exp ($canon_(N))] [visit_exp $canon_(N)] [visit_exp N] [visit_id N] not free [visit_id N] no dims -[check_dims] N m#9 n -dims \ N = m#9, n -[visit_exp `NAN`_fNmag{m#9}(n)] -[visit_exp m#9] -[visit_id m#9] +[check_dims] N n +dims \ N = n +[visit_exp `NAN`_fNmag(n)] [visit_exp (n)] [visit_exp n] [visit_id n] @@ -89772,94 +70904,72 @@ dims \ = [visit_exp 64] ps' = [check_dims] -[check_dims] c i#93014 i#93016 i#93024 i#93034 -dims \ = c, i#93014, i#93016, i#93024, i#93034 +[check_dims] c +dims \ = c [visit_exp c] [visit_id c] [visit_exp c] [visit_id c] not free -[visit_exp ((((c!`%`_char{i#93014}.0 >= 32) /\ (c!`%`_char{i#93016}.0 =/= 127)) /\ (c =/= `%`_char{i#93024}(34))) /\ (c =/= `%`_char{i#93034}(92)))] -[visit_exp (((c!`%`_char{i#93014}.0 >= 32) /\ (c!`%`_char{i#93016}.0 =/= 127)) /\ (c =/= `%`_char{i#93024}(34)))] -[visit_exp ((c!`%`_char{i#93014}.0 >= 32) /\ (c!`%`_char{i#93016}.0 =/= 127))] -[visit_exp (c!`%`_char{i#93014}.0 >= 32)] -[visit_exp c!`%`_char{i#93014}.0] -[visit_exp c!`%`_char{i#93014}] +[visit_exp ((((c!`%`_char.0 >= 32) /\ (c!`%`_char.0 =/= 127)) /\ (c =/= `%`_char(34))) /\ (c =/= `%`_char(92)))] +[visit_exp (((c!`%`_char.0 >= 32) /\ (c!`%`_char.0 =/= 127)) /\ (c =/= `%`_char(34)))] +[visit_exp ((c!`%`_char.0 >= 32) /\ (c!`%`_char.0 =/= 127))] +[visit_exp (c!`%`_char.0 >= 32)] +[visit_exp c!`%`_char.0] +[visit_exp c!`%`_char] [visit_exp c] [visit_id c] not free -[visit_exp i#93014] -[visit_id i#93014] [visit_exp 32] -[visit_exp (c!`%`_char{i#93016}.0 =/= 127)] -[visit_exp c!`%`_char{i#93016}.0] -[visit_exp c!`%`_char{i#93016}] +[visit_exp (c!`%`_char.0 =/= 127)] +[visit_exp c!`%`_char.0] +[visit_exp c!`%`_char] [visit_exp c] [visit_id c] not free -[visit_exp i#93016] -[visit_id i#93016] [visit_exp 127] -[visit_exp (c =/= `%`_char{i#93024}(34))] +[visit_exp (c =/= `%`_char(34))] [visit_exp c] [visit_id c] not free -[visit_exp `%`_char{i#93024}(34)] -[visit_exp i#93024] -[visit_id i#93024] +[visit_exp `%`_char(34)] [visit_exp (34)] [visit_exp 34] -[visit_exp (c =/= `%`_char{i#93034}(92))] +[visit_exp (c =/= `%`_char(92))] [visit_exp c] [visit_id c] not free -[visit_exp `%`_char{i#93034}(92)] -[visit_exp i#93034] -[visit_id i#93034] +[visit_exp `%`_char(92)] [visit_exp (92)] [visit_exp 92] -[check_dims] i#93044 -dims \ = i#93044 -[visit_exp `%`_char{i#93044}(9)] -[visit_exp i#93044] -[visit_id i#93044] +[check_dims] +dims \ = +[visit_exp `%`_char(9)] [visit_exp (9)] [visit_exp 9] -[check_dims] i#93052 -dims \ = i#93052 -[visit_exp `%`_char{i#93052}(10)] -[visit_exp i#93052] -[visit_id i#93052] +[check_dims] +dims \ = +[visit_exp `%`_char(10)] [visit_exp (10)] [visit_exp 10] -[check_dims] i#93060 -dims \ = i#93060 -[visit_exp `%`_char{i#93060}(13)] -[visit_exp i#93060] -[visit_id i#93060] +[check_dims] +dims \ = +[visit_exp `%`_char(13)] [visit_exp (13)] [visit_exp 13] -[check_dims] i#93068 -dims \ = i#93068 -[visit_exp `%`_char{i#93068}(34)] -[visit_exp i#93068] -[visit_id i#93068] +[check_dims] +dims \ = +[visit_exp `%`_char(34)] [visit_exp (34)] [visit_exp 34] -[check_dims] i#93076 -dims \ = i#93076 -[visit_exp `%`_char{i#93076}(39)] -[visit_exp i#93076] -[visit_id i#93076] +[check_dims] +dims \ = +[visit_exp `%`_char(39)] [visit_exp (39)] [visit_exp 39] -[check_dims] i#93084 -dims \ = i#93084 -[visit_exp `%`_char{i#93084}(92)] -[visit_exp i#93084] -[visit_id i#93084] +[check_dims] +dims \ = +[visit_exp `%`_char(92)] [visit_exp (92)] [visit_exp 92] -[check_dims] i#93092 n -dims \ = i#93092, n -[visit_exp `%`_char{i#93092}(n)] -[visit_exp i#93092] -[visit_id i#93092] +[check_dims] n +dims \ = n +[visit_exp `%`_char(n)] [visit_exp (n)] [visit_exp n] [visit_id n] @@ -89889,12 +70999,10 @@ dims \ = c [visit_id c] [visit_exp c] [visit_id c] not free -[check_dims] h_1 h_2 i#93132 -dims \ = h_1, h_2, i#93132 -[visit_exp [`%`_byte{i#93132}(((16 * h_1) + h_2))]] -[visit_exp `%`_byte{i#93132}(((16 * h_1) + h_2))] -[visit_exp i#93132] -[visit_id i#93132] +[check_dims] h_1 h_2 +dims \ = h_1, h_2 +[visit_exp [`%`_byte(((16 * h_1) + h_2))]] +[visit_exp `%`_byte(((16 * h_1) + h_2))] [visit_exp (((16 * h_1) + h_2))] [visit_exp ((16 * h_1) + h_2)] [visit_exp (16 * h_1)] @@ -90005,11 +71113,9 @@ dims \ = el [visit_exp 32] ps' = [check_dims] -[check_dims] b c char*#207 -dims \ = b, c, char*#207 -[visit_exp `%`_name{`char*#207`}(c*{c <- `c*`})] -[visit_exp `char*#207`] -[visit_id char*#207] +[check_dims] b c +dims \ = b, c +[visit_exp `%`_name(c*{c <- `c*`})] [visit_exp (c*{c <- `c*`})] [visit_exp c*{c <- `c*`}] [scope_enter c] @@ -90051,261 +71157,209 @@ dims \ = b, c, char*#207 [visit_id c*] no dims ps' = [check_dims] -[check_dims] i#93304 -dims \ = , i#93304 -[visit_exp `%`_char{i#93304}(``)] -[visit_exp i#93304] -[visit_id i#93304] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93312 -dims \ = , i#93312 -[visit_exp `%`_char{i#93312}(``)] -[visit_exp i#93312] -[visit_id i#93312] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93320 -dims \ = , i#93320 -[visit_exp `%`_char{i#93320}(``)] -[visit_exp i#93320] -[visit_id i#93320] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93328 -dims \ = , i#93328 -[visit_exp `%`_char{i#93328}(``)] -[visit_exp i#93328] -[visit_id i#93328] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93336 -dims \ = , i#93336 -[visit_exp `%`_char{i#93336}(``)] -[visit_exp i#93336] -[visit_id i#93336] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93344 -dims \ = , i#93344 -[visit_exp `%`_char{i#93344}(``)] -[visit_exp i#93344] -[visit_id i#93344] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93352 -dims \ = , i#93352 -[visit_exp `%`_char{i#93352}(``)] -[visit_exp i#93352] -[visit_id i#93352] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93360 -dims \ = , i#93360 -[visit_exp `%`_char{i#93360}(``)] -[visit_exp i#93360] -[visit_id i#93360] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93368 -dims \ = , i#93368 -[visit_exp `%`_char{i#93368}(``)] -[visit_exp i#93368] -[visit_id i#93368] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93376 -dims \ = , i#93376 -[visit_exp `%`_char{i#93376}(``)] -[visit_exp i#93376] -[visit_id i#93376] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93384 -dims \ = , i#93384 -[visit_exp `%`_char{i#93384}(``)] -[visit_exp i#93384] -[visit_id i#93384] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93392 -dims \ = , i#93392 -[visit_exp `%`_char{i#93392}(``)] -[visit_exp i#93392] -[visit_id i#93392] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93400 -dims \ = , i#93400 -[visit_exp `%`_char{i#93400}(``)] -[visit_exp i#93400] -[visit_id i#93400] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93408 -dims \ = , i#93408 -[visit_exp `%`_char{i#93408}(``)] -[visit_exp i#93408] -[visit_id i#93408] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93416 -dims \ = , i#93416 -[visit_exp `%`_char{i#93416}(``)] -[visit_exp i#93416] -[visit_id i#93416] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93424 -dims \ = , i#93424 -[visit_exp `%`_char{i#93424}(``)] -[visit_exp i#93424] -[visit_id i#93424] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93432 -dims \ = , i#93432 -[visit_exp `%`_char{i#93432}(``)] -[visit_exp i#93432] -[visit_id i#93432] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93440 -dims \ = , i#93440 -[visit_exp `%`_char{i#93440}(``)] -[visit_exp i#93440] -[visit_id i#93440] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93448 -dims \ = , i#93448 -[visit_exp `%`_char{i#93448}(``)] -[visit_exp i#93448] -[visit_id i#93448] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93456 -dims \ = , i#93456 -[visit_exp `%`_char{i#93456}(``)] -[visit_exp i#93456] -[visit_id i#93456] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93464 -dims \ = , i#93464 -[visit_exp `%`_char{i#93464}(``)] -[visit_exp i#93464] -[visit_id i#93464] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93472 -dims \ = , i#93472 -[visit_exp `%`_char{i#93472}(``)] -[visit_exp i#93472] -[visit_id i#93472] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93480 -dims \ = , i#93480 -[visit_exp `%`_char{i#93480}(``)] -[visit_exp i#93480] -[visit_id i#93480] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93488 -dims \ = , i#93488 -[visit_exp `%`_char{i#93488}(``)] -[visit_exp i#93488] -[visit_id i#93488] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93496 -dims \ = , i#93496 -[visit_exp `%`_char{i#93496}(``)] -[visit_exp i#93496] -[visit_id i#93496] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[check_dims] i#93504 -dims \ = , i#93504 -[visit_exp `%`_char{i#93504}(``)] -[visit_exp i#93504] -[visit_id i#93504] +[check_dims] +dims \ = +[visit_exp `%`_char(``)] [visit_exp (``)] [visit_exp ``] [visit_id ] @@ -90313,11 +71367,9 @@ dims \ = , i#93504 [visit_id ] not free ps' = [check_dims] -[check_dims] c char*#213 -dims \ = c, char*#213 -[visit_exp `%`_name{`char*#213`}(c*{c <- `c*`})] -[visit_exp `char*#213`] -[visit_id char*#213] +[check_dims] c +dims \ = c +[visit_exp `%`_name(c*{c <- `c*`})] [visit_exp (c*{c <- `c*`})] [visit_exp c*{c <- `c*`}] [scope_enter c] @@ -90337,11 +71389,9 @@ dims \ = c, char*#213 [visit_exp `c*`] [visit_id c*] not free [visit_id c*] no dims -[check_dims] c char*#219 char*#225 -dims \ = c, char*#219, char*#225 -[visit_exp `%`_name{`char*#225`}(c*{c <- `c*`})] -[visit_exp `char*#225`] -[visit_id char*#225] +[check_dims] c +dims \ = c +[visit_exp `%`_name(c*{c <- `c*`})] [visit_exp (c*{c <- `c*`})] [visit_exp c*{c <- `c*`}] [scope_enter c] @@ -90352,9 +71402,7 @@ dims \ = c, char*#219, char*#225 [visit_exp `c*`] [visit_id c*] no dims [visit_id c*] -[visit_exp `%`_name{`char*#219`}(c*{c <- `c*`})] -[visit_exp `char*#219`] -[visit_id char*#219] +[visit_exp `%`_name(c*{c <- `c*`})] [visit_exp (c*{c <- `c*`})] [visit_exp c*{c <- `c*`}] [scope_enter c] @@ -90378,136 +71426,148 @@ dims \ = c, char*#219, char*#225 [visit_id c*] no dims [visit_exp 0] [check_dims] +[check_dims] +[scope_enter name?*] +[visit_id name?*] not free +[visit_id name?*] no dims +[scope_exit name?*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter name?*] +[visit_id name?*] not free [visit_id name?*] no dims -[visit_id name?*] +[scope_exit name?*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter name?*] +[visit_id name?*] not free [visit_id name?*] no dims -[visit_id name?*] +[scope_exit name?*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter name?*] +[visit_id name?*] not free [visit_id name?*] no dims -[visit_id name?*] +[scope_exit name?*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter name?*] +[visit_id name?*] not free [visit_id name?*] no dims -[visit_id name?*] +[scope_exit name?*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter name?*] +[visit_id name?*] not free [visit_id name?*] no dims -[visit_id name?*] +[scope_exit name?*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter name?*] +[visit_id name?*] not free [visit_id name?*] no dims -[visit_id name?*] +[scope_exit name?*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter name?*] +[visit_id name?*] not free [visit_id name?*] no dims -[visit_id name?*] +[scope_exit name?*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter name?*] +[visit_id name?*] not free [visit_id name?*] no dims -[visit_id name?*] +[scope_exit name?*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter name?*] +[visit_id name?*] not free [visit_id name?*] no dims -[visit_id name?*] +[scope_exit name?*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id name?*] no dims -[visit_id name?*] +[check_dims] +[scope_enter name?**] +[visit_id name?**] not free +[visit_id name?**] no dims +[scope_exit name?**] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id name?**] no dims -[visit_id name?**] +[check_dims] +[scope_enter deftype?*] +[visit_id deftype?*] not free +[visit_id deftype?*] no dims +[scope_exit deftype?*] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id deftype?*] no dims -[visit_id deftype?*] [check_dims] [check_dims] _ DecD concat_idctxt(idctxt*) : idctxt [visit_id _] not free -[check_dims] deftype?*#1 name?*#1 name?*#10 name?*#2 name?*#3 name?*#4 name?*#5 name?*#6 name?*#7 name?*#8 name?*#9 name?**#1 +[check_dims] [visit_exp []] -[visit_exp {`TYPES`{`name?*#1`} [], `TAGS`{`name?*#2`} [], `GLOBALS`{`name?*#3`} [], `MEMS`{`name?*#4`} [], `TABLES`{`name?*#5`} [], `FUNCS`{`name?*#6`} [], `DATAS`{`name?*#7`} [], `ELEMS`{`name?*#8`} [], `LOCALS`{`name?*#9`} [], `LABELS`{`name?*#10`} [], `FIELDS`{`name?**#1`} [], `TYPEDEFS`{`deftype?*#1`} []}] -[visit_exp `name?*#1`] -[visit_id name?*#1] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] [visit_exp []] -[visit_exp `name?*#2`] -[visit_id name?*#2] [visit_exp []] -[visit_exp `name?*#3`] -[visit_id name?*#3] [visit_exp []] -[visit_exp `name?*#4`] -[visit_id name?*#4] [visit_exp []] -[visit_exp `name?*#5`] -[visit_id name?*#5] [visit_exp []] -[visit_exp `name?*#6`] -[visit_id name?*#6] [visit_exp []] -[visit_exp `name?*#7`] -[visit_id name?*#7] [visit_exp []] -[visit_exp `name?*#8`] -[visit_id name?*#8] [visit_exp []] -[visit_exp `name?*#9`] -[visit_id name?*#9] [visit_exp []] -[visit_exp `name?*#10`] -[visit_id name?*#10] [visit_exp []] -[visit_exp `name?**#1`] -[visit_id name?**#1] [visit_exp []] -[visit_exp `deftype?*#1`] -[visit_id deftype?*#1] [visit_exp []] => ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - def $concat_idctxt{`name?*#1` : name?*, `name?*#2` : name?*, `name?*#3` : name?*, `name?*#4` : name?*, `name?*#5` : name?*, `name?*#6` : name?*, `name?*#7` : name?*, `name?*#8` : name?*, `name?*#9` : name?*, `name?*#10` : name?*, `name?**#1` : name?**, `deftype?*#1` : deftype?*}([]) = {`TYPES`{`name?*#1`} [], `TAGS`{`name?*#2`} [], `GLOBALS`{`name?*#3`} [], `MEMS`{`name?*#4`} [], `TABLES`{`name?*#5`} [], `FUNCS`{`name?*#6`} [], `DATAS`{`name?*#7`} [], `ELEMS`{`name?*#8`} [], `LOCALS`{`name?*#9`} [], `LABELS`{`name?*#10`} [], `FIELDS`{`name?**#1`} [], `TYPEDEFS`{`deftype?*#1`} []} + def $concat_idctxt([]) = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []} [check_dims] I I' [visit_exp [I] ++ I'*{I' <- `I'*`}] [visit_exp [I]] @@ -90539,88 +71599,65 @@ DecD concat_idctxt(idctxt*) : idctxt ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec def $concat_idctxt{I : I, `I'*` : I*}([I] ++ I'*{I' <- `I'*`}) = I +++ $concat_idctxt(I'*{I' <- `I'*`}) [check_dims] -[check_dims] I char*#743 char*#761 field name?*#100 name?*#130 name?*#160 name?*#190 name?*#220 name?*#250 name?*#280 name?*#310 name?*#40 name?*#70 name?**#2 +[check_dims] I field [visit_exp I] [visit_id I] -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`TYPES`_I{`name?*#40`}))] -[visit_exp $concatopt_(syntax name, I.`TYPES`_I{`name?*#40`})] -[visit_exp I.`TYPES`_I{`name?*#40`}] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`TYPES`_I))] +[visit_exp $concatopt_(syntax name, I.`TYPES`_I)] +[visit_exp I.`TYPES`_I] [visit_exp I] [visit_id I] not free -[visit_exp `name?*#40`] -[visit_id name?*#40] -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`TAGS`_I{`name?*#70`}))] -[visit_exp $concatopt_(syntax name, I.`TAGS`_I{`name?*#70`})] -[visit_exp I.`TAGS`_I{`name?*#70`}] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`TAGS`_I))] +[visit_exp $concatopt_(syntax name, I.`TAGS`_I)] +[visit_exp I.`TAGS`_I] [visit_exp I] [visit_id I] not free -[visit_exp `name?*#70`] -[visit_id name?*#70] -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`GLOBALS`_I{`name?*#100`}))] -[visit_exp $concatopt_(syntax name, I.`GLOBALS`_I{`name?*#100`})] -[visit_exp I.`GLOBALS`_I{`name?*#100`}] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`GLOBALS`_I))] +[visit_exp $concatopt_(syntax name, I.`GLOBALS`_I)] +[visit_exp I.`GLOBALS`_I] [visit_exp I] [visit_id I] not free -[visit_exp `name?*#100`] -[visit_id name?*#100] -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`MEMS`_I{`name?*#130`}))] -[visit_exp $concatopt_(syntax name, I.`MEMS`_I{`name?*#130`})] -[visit_exp I.`MEMS`_I{`name?*#130`}] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`MEMS`_I))] +[visit_exp $concatopt_(syntax name, I.`MEMS`_I)] +[visit_exp I.`MEMS`_I] [visit_exp I] [visit_id I] not free -[visit_exp `name?*#130`] -[visit_id name?*#130] -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`TABLES`_I{`name?*#160`}))] -[visit_exp $concatopt_(syntax name, I.`TABLES`_I{`name?*#160`})] -[visit_exp I.`TABLES`_I{`name?*#160`}] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`TABLES`_I))] +[visit_exp $concatopt_(syntax name, I.`TABLES`_I)] +[visit_exp I.`TABLES`_I] [visit_exp I] [visit_id I] not free -[visit_exp `name?*#160`] -[visit_id name?*#160] -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`FUNCS`_I{`name?*#190`}))] -[visit_exp $concatopt_(syntax name, I.`FUNCS`_I{`name?*#190`})] -[visit_exp I.`FUNCS`_I{`name?*#190`}] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`FUNCS`_I))] +[visit_exp $concatopt_(syntax name, I.`FUNCS`_I)] +[visit_exp I.`FUNCS`_I] [visit_exp I] [visit_id I] not free -[visit_exp `name?*#190`] -[visit_id name?*#190] -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`DATAS`_I{`name?*#220`}))] -[visit_exp $concatopt_(syntax name, I.`DATAS`_I{`name?*#220`})] -[visit_exp I.`DATAS`_I{`name?*#220`}] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`DATAS`_I))] +[visit_exp $concatopt_(syntax name, I.`DATAS`_I)] +[visit_exp I.`DATAS`_I] [visit_exp I] [visit_id I] not free -[visit_exp `name?*#220`] -[visit_id name?*#220] -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`ELEMS`_I{`name?*#250`}))] -[visit_exp $concatopt_(syntax name, I.`ELEMS`_I{`name?*#250`})] -[visit_exp I.`ELEMS`_I{`name?*#250`}] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`ELEMS`_I))] +[visit_exp $concatopt_(syntax name, I.`ELEMS`_I)] +[visit_exp I.`ELEMS`_I] [visit_exp I] [visit_id I] not free -[visit_exp `name?*#250`] -[visit_id name?*#250] -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`LOCALS`_I{`name?*#280`}))] -[visit_exp $concatopt_(syntax name, I.`LOCALS`_I{`name?*#280`})] -[visit_exp I.`LOCALS`_I{`name?*#280`}] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`LOCALS`_I))] +[visit_exp $concatopt_(syntax name, I.`LOCALS`_I)] +[visit_exp I.`LOCALS`_I] [visit_exp I] [visit_id I] not free -[visit_exp `name?*#280`] -[visit_id name?*#280] -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`LABELS`_I{`name?*#310`}))] -[visit_exp $concatopt_(syntax name, I.`LABELS`_I{`name?*#310`})] -[visit_exp I.`LABELS`_I{`name?*#310`}] +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`LABELS`_I))] +[visit_exp $concatopt_(syntax name, I.`LABELS`_I)] +[visit_exp I.`LABELS`_I] [visit_exp I] [visit_id I] not free -[visit_exp `name?*#310`] -[visit_id name?*#310] -[scope_enter char*#743] [scope_enter field*] -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, [?(`%`_name{`char*#743`}(field*{field <- `field*`}))]))] -[visit_exp $concatopt_(syntax name, [?(`%`_name{`char*#743`}(field*{field <- `field*`}))])] -[visit_exp [?(`%`_name{`char*#743`}(field*{field <- `field*`}))]] -[visit_exp ?(`%`_name{`char*#743`}(field*{field <- `field*`}))] -[visit_exp `%`_name{`char*#743`}(field*{field <- `field*`})] -[visit_exp `char*#743`] -[visit_id char*#743] not free +[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, [?(`%`_name(field*{field <- `field*`}))]))] +[visit_exp $concatopt_(syntax name, [?(`%`_name(field*{field <- `field*`}))])] +[visit_exp [?(`%`_name(field*{field <- `field*`}))]] +[visit_exp ?(`%`_name(field*{field <- `field*`}))] +[visit_exp `%`_name(field*{field <- `field*`})] [visit_exp (field*{field <- `field*`})] [visit_exp field*{field <- `field*`}] [scope_enter field] @@ -90631,26 +71668,18 @@ DecD concat_idctxt(idctxt*) : idctxt [visit_exp `field*`] [visit_id field*] not free [visit_id field*] no dims -[visit_id char*#743] not free [visit_id field*] not free [visit_id field*] no dims [scope_exit field*] -[scope_exit char*#743] -[visit_exp `char*#743*`] -[visit_id char*#743*] no dims -[visit_id char*#743*] [visit_exp `field**`] [visit_id field**] no dims [visit_id field**] -[visit_exp ([?(`%`_name{`char*#761`}(field*{field <- `field*`}))*{`char*#761` <- `char*#761*`, `field*` <- `field**`}] = I.`FIELDS`_I{`name?**#2`})] -[visit_exp [?(`%`_name{`char*#761`}(field*{field <- `field*`}))*{`char*#761` <- `char*#761*`, `field*` <- `field**`}]] -[visit_exp ?(`%`_name{`char*#761`}(field*{field <- `field*`}))*{`char*#761` <- `char*#761*`, `field*` <- `field**`}] -[scope_enter char*#761] +[visit_exp ([?(`%`_name(field*{field <- `field*`}))*{`field*` <- `field**`}] = I.`FIELDS`_I)] +[visit_exp [?(`%`_name(field*{field <- `field*`}))*{`field*` <- `field**`}]] +[visit_exp ?(`%`_name(field*{field <- `field*`}))*{`field*` <- `field**`}] [scope_enter field*] -[visit_exp ?(`%`_name{`char*#761`}(field*{field <- `field*`}))] -[visit_exp `%`_name{`char*#761`}(field*{field <- `field*`})] -[visit_exp `char*#761`] -[visit_id char*#761] not free +[visit_exp ?(`%`_name(field*{field <- `field*`}))] +[visit_exp `%`_name(field*{field <- `field*`})] [visit_exp (field*{field <- `field*`})] [visit_exp field*{field <- `field*`}] [scope_enter field] @@ -90661,22 +71690,15 @@ DecD concat_idctxt(idctxt*) : idctxt [visit_exp `field*`] [visit_id field*] not free [visit_id field*] no dims -[visit_id char*#761] not free [visit_id field*] not free [visit_id field*] no dims [scope_exit field*] -[scope_exit char*#761] -[visit_exp `char*#761*`] -[visit_id char*#761*] no dims -[visit_id char*#761*] [visit_exp `field**`] [visit_id field**] not free [visit_id field**] no dims -[visit_exp I.`FIELDS`_I{`name?**#2`}] +[visit_exp I.`FIELDS`_I] [visit_exp I] [visit_id I] not free -[visit_exp `name?**#2`] -[visit_id name?**#2] ps' = (ids : name?*) [check_dims] ids [check_dims] ids x @@ -90685,208 +71707,180 @@ dims \ ids = x [visit_id x] [visit_exp x] [visit_id x] not free -[check_dims] i#94485 id ids x -dims \ ids = i#94485, id, x +[check_dims] id ids x +dims \ ids = id, x [visit_exp x] [visit_id x] [visit_exp id] [visit_id id] -[visit_exp (ids[x!`%`_idx{i#94485}.0] = ?(id))] -[visit_exp ids[x!`%`_idx{i#94485}.0]] +[visit_exp (ids[x!`%`_idx.0] = ?(id))] +[visit_exp ids[x!`%`_idx.0]] [visit_exp ids] [visit_id ids] not free [visit_id ids] no dims -[visit_exp x!`%`_idx{i#94485}.0] -[visit_exp x!`%`_idx{i#94485}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#94485] -[visit_id i#94485] [visit_exp ?(id)] [visit_exp id] [visit_id id] not free [visit_id ids] not free ps' = (I : I) [check_dims] I -[check_dims] I name?*#322 -dims \ I = , name?*#322 +[check_dims] I +dims \ I = [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[visit_exp I.`TYPES`_I{`name?*#322`}] +[visit_exp I.`TYPES`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#322`] -[visit_id name?*#322] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I name?*#334 -dims \ I = , name?*#334 +[check_dims] I +dims \ I = [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[visit_exp I.`TAGS`_I{`name?*#334`}] +[visit_exp I.`TAGS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#334`] -[visit_id name?*#334] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I name?*#346 -dims \ I = , name?*#346 +[check_dims] I +dims \ I = [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[visit_exp I.`GLOBALS`_I{`name?*#346`}] +[visit_exp I.`GLOBALS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#346`] -[visit_id name?*#346] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I name?*#358 -dims \ I = , name?*#358 +[check_dims] I +dims \ I = [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[visit_exp I.`MEMS`_I{`name?*#358`}] +[visit_exp I.`MEMS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#358`] -[visit_id name?*#358] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I name?*#370 -dims \ I = , name?*#370 +[check_dims] I +dims \ I = [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[visit_exp I.`TABLES`_I{`name?*#370`}] +[visit_exp I.`TABLES`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#370`] -[visit_id name?*#370] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I name?*#382 -dims \ I = , name?*#382 +[check_dims] I +dims \ I = [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[visit_exp I.`FUNCS`_I{`name?*#382`}] +[visit_exp I.`FUNCS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#382`] -[visit_id name?*#382] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I name?*#394 -dims \ I = , name?*#394 +[check_dims] I +dims \ I = [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[visit_exp I.`DATAS`_I{`name?*#394`}] +[visit_exp I.`DATAS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#394`] -[visit_id name?*#394] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I name?*#406 -dims \ I = , name?*#406 +[check_dims] I +dims \ I = [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[visit_exp I.`ELEMS`_I{`name?*#406`}] +[visit_exp I.`ELEMS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#406`] -[visit_id name?*#406] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I name?*#418 -dims \ I = , name?*#418 +[check_dims] I +dims \ I = [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[visit_exp I.`LOCALS`_I{`name?*#418`}] +[visit_exp I.`LOCALS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#418`] -[visit_id name?*#418] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I name?*#430 -dims \ I = , name?*#430 +[check_dims] I +dims \ I = [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[visit_exp I.`LABELS`_I{`name?*#430`}] +[visit_exp I.`LABELS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#430`] -[visit_id name?*#430] [visit_id I] not free ps' = (I : I, x : idx) [check_dims] I x -[check_dims] I i#95162 name?**#14 x -dims \ I x = , i#95162, name?**#14 +[check_dims] I x +dims \ I x = [visit_exp ``] [visit_id ] [visit_exp ``] [visit_id ] not free -[visit_exp I.`FIELDS`_I{`name?**#14`}[x!`%`_idx{i#95162}.0]] -[visit_exp I.`FIELDS`_I{`name?**#14`}] +[visit_exp I.`FIELDS`_I[x!`%`_idx.0]] +[visit_exp I.`FIELDS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?**#14`] -[visit_id name?**#14] -[visit_exp x!`%`_idx{i#95162}.0] -[visit_exp x!`%`_idx{i#95162}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free [visit_id x] no dims -[visit_exp i#95162] -[visit_id i#95162] [visit_id I] not free [visit_id x] not free ps' = (I : I) [check_dims] I -[check_dims] I tagidx#27 x -dims \ I = tagidx#27, x -[visit_exp `TAG`_externidx{tagidx#27}(x)] -[visit_exp tagidx#27] -[visit_id tagidx#27] +[check_dims] I x +dims \ I = x +[visit_exp `TAG`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -90895,11 +71889,9 @@ dims \ I = tagidx#27, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I globalidx#29 x -dims \ I = globalidx#29, x -[visit_exp `GLOBAL`_externidx{globalidx#29}(x)] -[visit_exp globalidx#29] -[visit_id globalidx#29] +[check_dims] I x +dims \ I = x +[visit_exp `GLOBAL`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -90908,11 +71900,9 @@ dims \ I = globalidx#29, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I memidx#276 x -dims \ I = memidx#276, x -[visit_exp `MEM`_externidx{memidx#276}(x)] -[visit_exp memidx#276] -[visit_id memidx#276] +[check_dims] I x +dims \ I = x +[visit_exp `MEM`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -90921,11 +71911,9 @@ dims \ I = memidx#276, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I tableidx#152 x -dims \ I = tableidx#152, x -[visit_exp `TABLE`_externidx{tableidx#152}(x)] -[visit_exp tableidx#152] -[visit_id tableidx#152] +[check_dims] I x +dims \ I = x +[visit_exp `TABLE`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -90934,11 +71922,9 @@ dims \ I = tableidx#152, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I funcidx#3381 x -dims \ I = funcidx#3381, x -[visit_exp `FUNC`_externidx{funcidx#3381}(x)] -[visit_exp funcidx#3381] -[visit_id funcidx#3381] +[check_dims] I x +dims \ I = x +[visit_exp `FUNC`_externidx(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -91030,11 +72016,9 @@ dims \ I = ht [visit_id ht] [visit_exp ht] [visit_id ht] not free -[check_dims] I typeidx#2119 x -dims \ I = typeidx#2119, x -[visit_exp `_IDX`_heaptype{typeidx#2119}(x)] -[visit_exp typeidx#2119] -[visit_id typeidx#2119] +[check_dims] I x +dims \ I = x +[visit_exp `_IDX`_heaptype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -91052,13 +72036,9 @@ dims \ = [visit_exp ()] ps' = (I : I) [check_dims] I -[check_dims] I heaptype#1861 ht null null?#1795 -dims \ I = heaptype#1861, ht, null, null?#1795 -[visit_exp `REF`_reftype{`null?#1795`, heaptype#1861}(null?{null <- `null?`}, ht)] -[visit_exp `null?#1795`] -[visit_id null?#1795] -[visit_exp heaptype#1861] -[visit_id heaptype#1861] +[check_dims] I ht null +dims \ I = ht, null +[visit_exp `REF`_reftype(null?{null <- `null?`}, ht)] [visit_exp (null?{null <- `null?`}, ht)] [visit_exp null?{null <- `null?`}] [scope_enter null] @@ -91160,13 +72140,9 @@ dims \ I = pt [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I mut?#1499 storagetype#801 zt -dims \ I = mut?#1499, storagetype#801, zt -[visit_exp `%%`_fieldtype{`mut?#1499`, storagetype#801}(?(), zt)] -[visit_exp `mut?#1499`] -[visit_id mut?#1499] -[visit_exp storagetype#801] -[visit_id storagetype#801] +[check_dims] I zt +dims \ I = zt +[visit_exp `%%`_fieldtype(?(), zt)] [visit_exp (?(), zt)] [visit_exp ?()] [visit_exp zt] @@ -91176,13 +72152,9 @@ dims \ I = mut?#1499, storagetype#801, zt [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I mut?#1511 storagetype#813 zt -dims \ I = mut?#1511, storagetype#813, zt -[visit_exp `%%`_fieldtype{`mut?#1511`, storagetype#813}(?(`MUT`_mut), zt)] -[visit_exp `mut?#1511`] -[visit_id mut?#1511] -[visit_exp storagetype#813] -[visit_id storagetype#813] +[check_dims] I zt +dims \ I = zt +[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt)] [visit_exp (?(`MUT`_mut), zt)] [visit_exp ?(`MUT`_mut)] [visit_exp `MUT`_mut] @@ -91197,15 +72169,13 @@ dims \ I = mut?#1511, storagetype#813, zt [visit_id I] not free ps' = (I : I) [check_dims] I _ -[check_dims] I char*#963 char*#969 ft id -dims \ I = char*#963, char*#969, ft, id -[visit_exp (ft, ?(`%`_name{`char*#969`}(lift(id?{id <- `id?`}))))] +[check_dims] I ft id +dims \ I = ft, id +[visit_exp (ft, ?(`%`_name(lift(id?{id <- `id?`}))))] [visit_exp ft] [visit_id ft] -[visit_exp ?(`%`_name{`char*#969`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#969`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#969`] -[visit_id char*#969] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -91217,10 +72187,8 @@ dims \ I = char*#963, char*#969, ft, id [visit_exp `id?`] [visit_id id?] no dims [visit_id id?] -[visit_exp ?(`%`_name{`char*#963`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#963`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#963`] -[visit_id char*#963] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -91238,10 +72206,14 @@ dims \ I = char*#963, char*#969, ft, id [visit_id I] not free [visit_id I] no dims [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = (I : I) [check_dims] I _ [check_dims] I @@ -91252,21 +72224,23 @@ ps' = (I : I) [visit_id I] not free [visit_id I] no dims [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = (I : I) [check_dims] I _ -[check_dims] I char*#975 char*#981 id t -dims \ I = char*#975, char*#981, id, t -[visit_exp (t, ?(`%`_name{`char*#981`}(lift(id?{id <- `id?`}))))] +[check_dims] I id t +dims \ I = id, t +[visit_exp (t, ?(`%`_name(lift(id?{id <- `id?`}))))] [visit_exp t] [visit_id t] -[visit_exp ?(`%`_name{`char*#981`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#981`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#981`] -[visit_id char*#981] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -91278,10 +72252,8 @@ dims \ I = char*#975, char*#981, id, t [visit_exp `id?`] [visit_id id?] no dims [visit_id id?] -[visit_exp ?(`%`_name{`char*#975`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#975`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#975`] -[visit_id char*#975] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -91299,10 +72271,14 @@ dims \ I = char*#975, char*#981, id, t [visit_id I] not free [visit_id I] no dims [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = (I : I) [check_dims] I _ [check_dims] I @@ -91313,10 +72289,14 @@ ps' = (I : I) [visit_id I] not free [visit_id I] no dims [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = (I : I) [check_dims] I [check_dims] I t @@ -91341,14 +72321,12 @@ ps' = (I : I) [visit_id I] not free ps' = (I : I) [check_dims] I _ -[check_dims] I X*#13361 _ char*#1005 char*#987 deftype?*#2 ft id name?*#431 name?*#432 name?*#433 name?*#434 name?*#435 name?*#436 name?*#437 name?*#438 name?*#439 name?*#440 name?**#15 -dims \ I = X*#13361, _, char*#1005, char*#987, deftype?*#2, ft, id, name?*#431, name?*#432, name?*#433, name?*#434, name?*#435, name?*#436, name?*#437, name?*#438, name?*#439, name?*#440, name?**#15 -[visit_exp (`STRUCT`_comptype(`%`_list{`X*#13361`}(ft*{ft <- `ft*`})), {`TYPES`{`name?*#431`} [], `TAGS`{`name?*#432`} [], `GLOBALS`{`name?*#433`} [], `MEMS`{`name?*#434`} [], `TABLES`{`name?*#435`} [], `FUNCS`{`name?*#436`} [], `DATAS`{`name?*#437`} [], `ELEMS`{`name?*#438`} [], `LOCALS`{`name?*#439`} [], `LABELS`{`name?*#440`} [], `FIELDS`{`name?**#15`} [?(`%`_name{`char*#1005`}(lift(id?{id <- `id?`})))*{`char*#1005` <- `char*#1005*`, `id?` <- `id?*`}], `TYPEDEFS`{`deftype?*#2`} []})] -[visit_exp `STRUCT`_comptype(`%`_list{`X*#13361`}(ft*{ft <- `ft*`}))] -[visit_exp (`%`_list{`X*#13361`}(ft*{ft <- `ft*`}))] -[visit_exp `%`_list{`X*#13361`}(ft*{ft <- `ft*`})] -[visit_exp `X*#13361`] -[visit_id X*#13361] +[check_dims] I _ ft id +dims \ I = _, ft, id +[visit_exp (`STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}], `TYPEDEFS` []})] +[visit_exp `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))] +[visit_exp (`%`_list(ft*{ft <- `ft*`}))] +[visit_exp `%`_list(ft*{ft <- `ft*`})] [visit_exp (ft*{ft <- `ft*`})] [visit_exp ft*{ft <- `ft*`}] [scope_enter ft] @@ -91359,47 +72337,22 @@ dims \ I = X*#13361, _, char*#1005, char*#987, deftype?*#2, ft, id, name?*#431, [visit_exp `ft*`] [visit_id ft*] no dims [visit_id ft*] -[visit_exp {`TYPES`{`name?*#431`} [], `TAGS`{`name?*#432`} [], `GLOBALS`{`name?*#433`} [], `MEMS`{`name?*#434`} [], `TABLES`{`name?*#435`} [], `FUNCS`{`name?*#436`} [], `DATAS`{`name?*#437`} [], `ELEMS`{`name?*#438`} [], `LOCALS`{`name?*#439`} [], `LABELS`{`name?*#440`} [], `FIELDS`{`name?**#15`} [?(`%`_name{`char*#1005`}(lift(id?{id <- `id?`})))*{`char*#1005` <- `char*#1005*`, `id?` <- `id?*`}], `TYPEDEFS`{`deftype?*#2`} []}] -[visit_exp `name?*#431`] -[visit_id name?*#431] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}], `TYPEDEFS` []}] [visit_exp []] -[visit_exp `name?*#432`] -[visit_id name?*#432] [visit_exp []] -[visit_exp `name?*#433`] -[visit_id name?*#433] [visit_exp []] -[visit_exp `name?*#434`] -[visit_id name?*#434] [visit_exp []] -[visit_exp `name?*#435`] -[visit_id name?*#435] [visit_exp []] -[visit_exp `name?*#436`] -[visit_id name?*#436] [visit_exp []] -[visit_exp `name?*#437`] -[visit_id name?*#437] [visit_exp []] -[visit_exp `name?*#438`] -[visit_id name?*#438] [visit_exp []] -[visit_exp `name?*#439`] -[visit_id name?*#439] [visit_exp []] -[visit_exp `name?*#440`] -[visit_id name?*#440] [visit_exp []] -[visit_exp `name?**#15`] -[visit_id name?**#15] -[visit_exp [?(`%`_name{`char*#1005`}(lift(id?{id <- `id?`})))*{`char*#1005` <- `char*#1005*`, `id?` <- `id?*`}]] -[visit_exp ?(`%`_name{`char*#1005`}(lift(id?{id <- `id?`})))*{`char*#1005` <- `char*#1005*`, `id?` <- `id?*`}] -[scope_enter char*#1005] +[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}]] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}] [scope_enter id?] -[visit_exp ?(`%`_name{`char*#1005`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1005`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1005`] -[visit_id char*#1005] not free +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -91411,31 +72364,21 @@ dims \ I = X*#13361, _, char*#1005, char*#987, deftype?*#2, ft, id, name?*#431, [visit_exp `id?`] [visit_id id?] not free [visit_id id?] no dims -[visit_id char*#1005] not free [visit_id id?] not free [visit_id id?] no dims [scope_exit id?] -[scope_exit char*#1005] -[visit_exp `char*#1005*`] -[visit_id char*#1005*] no dims -[visit_id char*#1005*] [visit_exp `id?*`] [visit_id id?*] no dims [visit_id id?*] -[visit_exp `deftype?*#2`] -[visit_id deftype?*#2] [visit_exp []] -[visit_exp (ft, ?(`%`_name{`char*#987`}(lift(id?{id <- `id?`}))))*{`char*#987` <- `char*#987*`, ft <- `ft*`, `id?` <- `id?*`}] -[scope_enter char*#987] +[visit_exp (ft, ?(`%`_name(lift(id?{id <- `id?`}))))*{ft <- `ft*`, `id?` <- `id?*`}] [scope_enter ft] [scope_enter id?] -[visit_exp (ft, ?(`%`_name{`char*#987`}(lift(id?{id <- `id?`}))))] +[visit_exp (ft, ?(`%`_name(lift(id?{id <- `id?`}))))] [visit_exp ft] [visit_id ft] not free -[visit_exp ?(`%`_name{`char*#987`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#987`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#987`] -[visit_id char*#987] not free +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -91447,88 +72390,57 @@ dims \ I = X*#13361, _, char*#1005, char*#987, deftype?*#2, ft, id, name?*#431, [visit_exp `id?`] [visit_id id?] not free [visit_id id?] no dims -[visit_id char*#987] not free [visit_id ft] not free [visit_id id?] not free [visit_id id?] no dims [scope_exit id?] [scope_exit ft] -[scope_exit char*#987] -[visit_exp `char*#987*`] -[visit_id char*#987*] no dims -[visit_id char*#987*] [visit_exp `ft*`] [visit_id ft*] not free [visit_id ft*] no dims [visit_exp `id?*`] [visit_id id?*] not free [visit_id id?*] no dims +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I deftype?*#3 fieldtype#61 ft name?*#441 name?*#442 name?*#443 name?*#444 name?*#445 name?*#446 name?*#447 name?*#448 name?*#449 name?*#450 name?**#16 -dims \ I = deftype?*#3, fieldtype#61, ft, name?*#441, name?*#442, name?*#443, name?*#444, name?*#445, name?*#446, name?*#447, name?*#448, name?*#449, name?*#450, name?**#16 -[visit_exp (`ARRAY`_comptype{fieldtype#61}(ft), {`TYPES`{`name?*#441`} [], `TAGS`{`name?*#442`} [], `GLOBALS`{`name?*#443`} [], `MEMS`{`name?*#444`} [], `TABLES`{`name?*#445`} [], `FUNCS`{`name?*#446`} [], `DATAS`{`name?*#447`} [], `ELEMS`{`name?*#448`} [], `LOCALS`{`name?*#449`} [], `LABELS`{`name?*#450`} [], `FIELDS`{`name?**#16`} [], `TYPEDEFS`{`deftype?*#3`} []})] -[visit_exp `ARRAY`_comptype{fieldtype#61}(ft)] -[visit_exp fieldtype#61] -[visit_id fieldtype#61] +[check_dims] I ft +dims \ I = ft +[visit_exp (`ARRAY`_comptype(ft), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] +[visit_exp `ARRAY`_comptype(ft)] [visit_exp (ft)] [visit_exp ft] [visit_id ft] -[visit_exp {`TYPES`{`name?*#441`} [], `TAGS`{`name?*#442`} [], `GLOBALS`{`name?*#443`} [], `MEMS`{`name?*#444`} [], `TABLES`{`name?*#445`} [], `FUNCS`{`name?*#446`} [], `DATAS`{`name?*#447`} [], `ELEMS`{`name?*#448`} [], `LOCALS`{`name?*#449`} [], `LABELS`{`name?*#450`} [], `FIELDS`{`name?**#16`} [], `TYPEDEFS`{`deftype?*#3`} []}] -[visit_exp `name?*#441`] -[visit_id name?*#441] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] [visit_exp []] -[visit_exp `name?*#442`] -[visit_id name?*#442] [visit_exp []] -[visit_exp `name?*#443`] -[visit_id name?*#443] [visit_exp []] -[visit_exp `name?*#444`] -[visit_id name?*#444] [visit_exp []] -[visit_exp `name?*#445`] -[visit_id name?*#445] [visit_exp []] -[visit_exp `name?*#446`] -[visit_id name?*#446] [visit_exp []] -[visit_exp `name?*#447`] -[visit_id name?*#447] [visit_exp []] -[visit_exp `name?*#448`] -[visit_id name?*#448] [visit_exp []] -[visit_exp `name?*#449`] -[visit_id name?*#449] [visit_exp []] -[visit_exp `name?*#450`] -[visit_id name?*#450] [visit_exp []] -[visit_exp `name?**#16`] -[visit_id name?**#16] [visit_exp []] -[visit_exp `deftype?*#3`] -[visit_id deftype?*#3] [visit_exp []] [visit_exp ft] [visit_id ft] not free [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I X*#13376 X*#13389 _ char*#1011 deftype?*#4 id name?*#451 name?*#452 name?*#453 name?*#454 name?*#455 name?*#456 name?*#457 name?*#458 name?*#459 name?*#460 name?**#17 resulttype#3032 t_1 t_2 -dims \ I = X*#13376, X*#13389, _, char*#1011, deftype?*#4, id, name?*#451, name?*#452, name?*#453, name?*#454, name?*#455, name?*#456, name?*#457, name?*#458, name?*#459, name?*#460, name?**#17, resulttype#3032, t_1, t_2 -[visit_exp (`FUNC%->%`_comptype{resulttype#3032}(`%`_resulttype{`X*#13376`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13389`}(t_2*{t_2 <- `t_2*`})), {`TYPES`{`name?*#451`} [], `TAGS`{`name?*#452`} [], `GLOBALS`{`name?*#453`} [], `MEMS`{`name?*#454`} [], `TABLES`{`name?*#455`} [], `FUNCS`{`name?*#456`} [], `DATAS`{`name?*#457`} [], `ELEMS`{`name?*#458`} [], `LOCALS`{`name?*#459`} [], `LABELS`{`name?*#460`} [], `FIELDS`{`name?**#17`} [], `TYPEDEFS`{`deftype?*#4`} []})] -[visit_exp `FUNC%->%`_comptype{resulttype#3032}(`%`_resulttype{`X*#13376`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13389`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#3032] -[visit_id resulttype#3032] -[visit_exp (`%`_resulttype{`X*#13376`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13389`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#13376`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#13376`] -[visit_id X*#13376] +[check_dims] I _ id t_1 t_2 +dims \ I = _, id, t_1, t_2 +[visit_exp (`FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -91539,9 +72451,7 @@ dims \ I = X*#13376, X*#13389, _, char*#1011, deftype?*#4, id, name?*#451, name? [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp `%`_resulttype{`X*#13389`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#13389`] -[visit_id X*#13389] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -91552,54 +72462,27 @@ dims \ I = X*#13376, X*#13389, _, char*#1011, deftype?*#4, id, name?*#451, name? [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp {`TYPES`{`name?*#451`} [], `TAGS`{`name?*#452`} [], `GLOBALS`{`name?*#453`} [], `MEMS`{`name?*#454`} [], `TABLES`{`name?*#455`} [], `FUNCS`{`name?*#456`} [], `DATAS`{`name?*#457`} [], `ELEMS`{`name?*#458`} [], `LOCALS`{`name?*#459`} [], `LABELS`{`name?*#460`} [], `FIELDS`{`name?**#17`} [], `TYPEDEFS`{`deftype?*#4`} []}] -[visit_exp `name?*#451`] -[visit_id name?*#451] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] [visit_exp []] -[visit_exp `name?*#452`] -[visit_id name?*#452] [visit_exp []] -[visit_exp `name?*#453`] -[visit_id name?*#453] [visit_exp []] -[visit_exp `name?*#454`] -[visit_id name?*#454] [visit_exp []] -[visit_exp `name?*#455`] -[visit_id name?*#455] [visit_exp []] -[visit_exp `name?*#456`] -[visit_id name?*#456] [visit_exp []] -[visit_exp `name?*#457`] -[visit_id name?*#457] [visit_exp []] -[visit_exp `name?*#458`] -[visit_id name?*#458] [visit_exp []] -[visit_exp `name?*#459`] -[visit_id name?*#459] [visit_exp []] -[visit_exp `name?*#460`] -[visit_id name?*#460] [visit_exp []] -[visit_exp `name?**#17`] -[visit_id name?**#17] [visit_exp []] -[visit_exp `deftype?*#4`] -[visit_id deftype?*#4] [visit_exp []] -[visit_exp (t_1, ?(`%`_name{`char*#1011`}(lift(id?{id <- `id?`}))))*{`char*#1011` <- `char*#1011*`, `id?` <- `id?*`, t_1 <- `t_1*`}] -[scope_enter char*#1011] +[visit_exp (t_1, ?(`%`_name(lift(id?{id <- `id?`}))))*{`id?` <- `id?*`, t_1 <- `t_1*`}] [scope_enter id?] [scope_enter t_1] -[visit_exp (t_1, ?(`%`_name{`char*#1011`}(lift(id?{id <- `id?`}))))] +[visit_exp (t_1, ?(`%`_name(lift(id?{id <- `id?`}))))] [visit_exp t_1] [visit_id t_1] not free -[visit_exp ?(`%`_name{`char*#1011`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1011`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1011`] -[visit_id char*#1011] not free +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -91611,24 +72494,23 @@ dims \ I = X*#13376, X*#13389, _, char*#1011, deftype?*#4, id, name?*#451, name? [visit_exp `id?`] [visit_id id?] not free [visit_id id?] no dims -[visit_id char*#1011] not free [visit_id id?] not free [visit_id id?] no dims [visit_id t_1] not free [scope_exit t_1] [scope_exit id?] -[scope_exit char*#1011] -[visit_exp `char*#1011*`] -[visit_id char*#1011*] no dims -[visit_id char*#1011*] [visit_exp `id?*`] [visit_id id?*] no dims [visit_id id?*] [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp I] [visit_id I] not free [visit_id I] no dims @@ -91645,10 +72527,14 @@ dims \ I = X*#13376, X*#13389, _, char*#1011, deftype?*#4, id, name?*#451, name? [visit_id I] not free [visit_id I] no dims [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = [check_dims] [check_dims] @@ -91657,17 +72543,11 @@ dims \ = [visit_exp ()] ps' = (I : I) [check_dims] I _ -[check_dims] I I' comptype#523 ct fin final?#523 typeidx#2121 typeuse*#523 x -dims \ I = I', comptype#523, ct, fin, final?#523, typeidx#2121, typeuse*#523, x -[visit_exp (`SUB`_subtype{`final?#523`, `typeuse*#523`, comptype#523}(fin?{fin <- `fin?`}, `_IDX`_typeuse{typeidx#2121}(x)*{typeidx#2121 <- `typeidx#2121*`, x <- `x*`}, ct), I')] -[visit_exp `SUB`_subtype{`final?#523`, `typeuse*#523`, comptype#523}(fin?{fin <- `fin?`}, `_IDX`_typeuse{typeidx#2121}(x)*{typeidx#2121 <- `typeidx#2121*`, x <- `x*`}, ct)] -[visit_exp `final?#523`] -[visit_id final?#523] -[visit_exp `typeuse*#523`] -[visit_id typeuse*#523] -[visit_exp comptype#523] -[visit_id comptype#523] -[visit_exp (fin?{fin <- `fin?`}, `_IDX`_typeuse{typeidx#2121}(x)*{typeidx#2121 <- `typeidx#2121*`, x <- `x*`}, ct)] +[check_dims] I I' ct fin x +dims \ I = I', ct, fin, x +[visit_exp (`SUB`_subtype(fin?{fin <- `fin?`}, `_IDX`_typeuse(x)*{x <- `x*`}, ct), I')] +[visit_exp `SUB`_subtype(fin?{fin <- `fin?`}, `_IDX`_typeuse(x)*{x <- `x*`}, ct)] +[visit_exp (fin?{fin <- `fin?`}, `_IDX`_typeuse(x)*{x <- `x*`}, ct)] [visit_exp fin?{fin <- `fin?`}] [scope_enter fin] [visit_exp fin] @@ -91677,22 +72557,14 @@ dims \ I = I', comptype#523, ct, fin, final?#523, typeidx#2121, typeuse*#523, x [visit_exp `fin?`] [visit_id fin?] no dims [visit_id fin?] -[visit_exp `_IDX`_typeuse{typeidx#2121}(x)*{typeidx#2121 <- `typeidx#2121*`, x <- `x*`}] -[scope_enter typeidx#2121] +[visit_exp `_IDX`_typeuse(x)*{x <- `x*`}] [scope_enter x] -[visit_exp `_IDX`_typeuse{typeidx#2121}(x)] -[visit_exp typeidx#2121] -[visit_id typeidx#2121] not free +[visit_exp `_IDX`_typeuse(x)] [visit_exp (x)] [visit_exp x] [visit_id x] not free -[visit_id typeidx#2121] not free [visit_id x] not free [scope_exit x] -[scope_exit typeidx#2121] -[visit_exp `typeidx#2121*`] -[visit_id typeidx#2121*] no dims -[visit_id typeidx#2121*] [visit_exp `x*`] [visit_id x*] no dims [visit_id x*] @@ -91730,10 +72602,14 @@ dims \ I = I', comptype#523, ct, fin, final?#523, typeidx#2121, typeuse*#523, x [visit_id I] not free [visit_id I] no dims [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = (I : I) [check_dims] I _ [check_dims] I @@ -91744,28 +72620,28 @@ ps' = (I : I) [visit_id I] not free [visit_id I] no dims [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = (I : I) [check_dims] I _ -[check_dims] I I' char*#1017 char*#1023 deftype?*#5 id name?*#461 name?*#462 name?*#463 name?*#464 name?*#465 name?*#466 name?*#467 name?*#468 name?*#469 name?*#470 name?**#18 st -dims \ I = I', char*#1017, char*#1023, deftype?*#5, id, name?*#461, name?*#462, name?*#463, name?*#464, name?*#465, name?*#466, name?*#467, name?*#468, name?*#469, name?*#470, name?**#18, st -[visit_exp (st, I' +++ {`TYPES`{`name?*#461`} [?(`%`_name{`char*#1023`}(lift(id?{id <- `id?`})))], `TAGS`{`name?*#462`} [], `GLOBALS`{`name?*#463`} [], `MEMS`{`name?*#464`} [], `TABLES`{`name?*#465`} [], `FUNCS`{`name?*#466`} [], `DATAS`{`name?*#467`} [], `ELEMS`{`name?*#468`} [], `LOCALS`{`name?*#469`} [], `LABELS`{`name?*#470`} [], `FIELDS`{`name?**#18`} [], `TYPEDEFS`{`deftype?*#5`} []})] +[check_dims] I I' id st +dims \ I = I', id, st +[visit_exp (st, I' +++ {`TYPES` [?(`%`_name(lift(id?{id <- `id?`})))], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] [visit_exp st] [visit_id st] -[visit_exp I' +++ {`TYPES`{`name?*#461`} [?(`%`_name{`char*#1023`}(lift(id?{id <- `id?`})))], `TAGS`{`name?*#462`} [], `GLOBALS`{`name?*#463`} [], `MEMS`{`name?*#464`} [], `TABLES`{`name?*#465`} [], `FUNCS`{`name?*#466`} [], `DATAS`{`name?*#467`} [], `ELEMS`{`name?*#468`} [], `LOCALS`{`name?*#469`} [], `LABELS`{`name?*#470`} [], `FIELDS`{`name?**#18`} [], `TYPEDEFS`{`deftype?*#5`} []}] +[visit_exp I' +++ {`TYPES` [?(`%`_name(lift(id?{id <- `id?`})))], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] [visit_exp I'] [visit_id I'] -[visit_exp {`TYPES`{`name?*#461`} [?(`%`_name{`char*#1023`}(lift(id?{id <- `id?`})))], `TAGS`{`name?*#462`} [], `GLOBALS`{`name?*#463`} [], `MEMS`{`name?*#464`} [], `TABLES`{`name?*#465`} [], `FUNCS`{`name?*#466`} [], `DATAS`{`name?*#467`} [], `ELEMS`{`name?*#468`} [], `LOCALS`{`name?*#469`} [], `LABELS`{`name?*#470`} [], `FIELDS`{`name?**#18`} [], `TYPEDEFS`{`deftype?*#5`} []}] -[visit_exp `name?*#461`] -[visit_id name?*#461] -[visit_exp [?(`%`_name{`char*#1023`}(lift(id?{id <- `id?`})))]] -[visit_exp ?(`%`_name{`char*#1023`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1023`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1023`] -[visit_id char*#1023] +[visit_exp {`TYPES` [?(`%`_name(lift(id?{id <- `id?`})))], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] +[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))]] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -91777,43 +72653,19 @@ dims \ I = I', char*#1017, char*#1023, deftype?*#5, id, name?*#461, name?*#462, [visit_exp `id?`] [visit_id id?] no dims [visit_id id?] -[visit_exp `name?*#462`] -[visit_id name?*#462] [visit_exp []] -[visit_exp `name?*#463`] -[visit_id name?*#463] [visit_exp []] -[visit_exp `name?*#464`] -[visit_id name?*#464] [visit_exp []] -[visit_exp `name?*#465`] -[visit_id name?*#465] [visit_exp []] -[visit_exp `name?*#466`] -[visit_id name?*#466] [visit_exp []] -[visit_exp `name?*#467`] -[visit_id name?*#467] [visit_exp []] -[visit_exp `name?*#468`] -[visit_id name?*#468] [visit_exp []] -[visit_exp `name?*#469`] -[visit_id name?*#469] [visit_exp []] -[visit_exp `name?*#470`] -[visit_id name?*#470] [visit_exp []] -[visit_exp `name?**#18`] -[visit_id name?**#18] [visit_exp []] -[visit_exp `deftype?*#5`] -[visit_id deftype?*#5] [visit_exp []] -[visit_exp ?(`%`_name{`char*#1017`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1017`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1017`] -[visit_id char*#1017] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -91834,20 +72686,22 @@ dims \ I = I', char*#1017, char*#1023, deftype?*#5, id, name?*#461, name?*#462, [visit_id I] not free [visit_id I] no dims [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = (I : I) [check_dims] I _ -[check_dims] I I' X*#13404 _ st -dims \ I = I', X*#13404, _, st -[visit_exp (`REC`_rectype(`%`_list{`X*#13404`}(st*{st <- `st*`})), $concat_idctxt(I'*{I' <- `I'*`}))] -[visit_exp `REC`_rectype(`%`_list{`X*#13404`}(st*{st <- `st*`}))] -[visit_exp (`%`_list{`X*#13404`}(st*{st <- `st*`}))] -[visit_exp `%`_list{`X*#13404`}(st*{st <- `st*`})] -[visit_exp `X*#13404`] -[visit_id X*#13404] +[check_dims] I I' _ st +dims \ I = I', _, st +[visit_exp (`REC`_rectype(`%`_list(st*{st <- `st*`})), $concat_idctxt(I'*{I' <- `I'*`}))] +[visit_exp `REC`_rectype(`%`_list(st*{st <- `st*`}))] +[visit_exp (`%`_list(st*{st <- `st*`}))] +[visit_exp `%`_list(st*{st <- `st*`})] [visit_exp (st*{st <- `st*`})] [visit_exp st*{st <- `st*`}] [scope_enter st] @@ -91886,16 +72740,24 @@ dims \ I = I', X*#13404, _, st [visit_exp `st*`] [visit_id st*] not free [visit_id st*] no dims +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp I] [visit_id I] not free [visit_id I] no dims [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = (I : I) [check_dims] I _ [check_dims] I @@ -91906,10 +72768,14 @@ ps' = (I : I) [visit_id I] not free [visit_id I] no dims [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = [check_dims] [check_dims] @@ -91925,67 +72791,45 @@ ps' = [check_dims] ps' = [check_dims] -[check_dims] i#95568 i#95590 n u64#571 u64?#545 -dims \ = i#95568, i#95590, n, u64#571, u64?#545 -[visit_exp `[%..%]`_limits{u64#571, `u64?#545`}(`%`_u64{i#95590}(n), ?())] -[visit_exp u64#571] -[visit_id u64#571] -[visit_exp `u64?#545`] -[visit_id u64?#545] -[visit_exp (`%`_u64{i#95590}(n), ?())] -[visit_exp `%`_u64{i#95590}(n)] -[visit_exp i#95590] -[visit_id i#95590] +[check_dims] n +dims \ = n +[visit_exp `[%..%]`_limits(`%`_u64(n), ?())] +[visit_exp (`%`_u64(n), ?())] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] [visit_exp ?()] -[visit_exp `%`_u64{i#95568}(n)] -[visit_exp i#95568] -[visit_id i#95568] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[check_dims] i#95615 i#95642 i#95666 i#95688 m n u64#583 u64?#557 -dims \ = i#95615, i#95642, i#95666, i#95688, m, n, u64#583, u64?#557 -[visit_exp `[%..%]`_limits{u64#583, `u64?#557`}(`%`_u64{i#95666}(n), ?(`%`_u64{i#95688}(m)))] -[visit_exp u64#583] -[visit_id u64#583] -[visit_exp `u64?#557`] -[visit_id u64?#557] -[visit_exp (`%`_u64{i#95666}(n), ?(`%`_u64{i#95688}(m)))] -[visit_exp `%`_u64{i#95666}(n)] -[visit_exp i#95666] -[visit_id i#95666] +[check_dims] m n +dims \ = m, n +[visit_exp `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))] +[visit_exp (`%`_u64(n), ?(`%`_u64(m)))] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp ?(`%`_u64{i#95688}(m))] -[visit_exp `%`_u64{i#95688}(m)] -[visit_exp i#95688] -[visit_id i#95688] +[visit_exp ?(`%`_u64(m))] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] -[visit_exp `%`_u64{i#95615}(n)] -[visit_exp i#95615] -[visit_id i#95615] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[visit_exp `%`_u64{i#95642}(m)] -[visit_exp i#95642] -[visit_id i#95642] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] not free ps' = (I : I) [check_dims] I -[check_dims] I I' typeidx#2123 x -dims \ I = I', typeidx#2123, x -[visit_exp `_IDX`_tagtype{typeidx#2123}(x)] -[visit_exp typeidx#2123] -[visit_id typeidx#2123] +[check_dims] I I' x +dims \ I = I', x +[visit_exp `_IDX`_tagtype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -92000,13 +72844,9 @@ dims \ I = I', typeidx#2123, x [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I mut?#1561 t valtype#1167 -dims \ I = mut?#1561, t, valtype#1167 -[visit_exp `%%`_globaltype{`mut?#1561`, valtype#1167}(?(), t)] -[visit_exp `mut?#1561`] -[visit_id mut?#1561] -[visit_exp valtype#1167] -[visit_id valtype#1167] +[check_dims] I t +dims \ I = t +[visit_exp `%%`_globaltype(?(), t)] [visit_exp (?(), t)] [visit_exp ?()] [visit_exp t] @@ -92016,13 +72856,9 @@ dims \ I = mut?#1561, t, valtype#1167 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I mut?#1573 t valtype#1179 -dims \ I = mut?#1573, t, valtype#1179 -[visit_exp `%%`_globaltype{`mut?#1573`, valtype#1179}(?(`MUT`_mut), t)] -[visit_exp `mut?#1573`] -[visit_id mut?#1573] -[visit_exp valtype#1179] -[visit_id valtype#1179] +[check_dims] I t +dims \ I = t +[visit_exp `%%`_globaltype(?(`MUT`_mut), t)] [visit_exp (?(`MUT`_mut), t)] [visit_exp ?(`MUT`_mut)] [visit_exp `MUT`_mut] @@ -92037,13 +72873,9 @@ dims \ I = mut?#1573, t, valtype#1179 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I addrtype#1483 at lim limits#1483 -dims \ I = addrtype#1483, at, lim, limits#1483 -[visit_exp `%%PAGE`_memtype{addrtype#1483, limits#1483}(at, lim)] -[visit_exp addrtype#1483] -[visit_id addrtype#1483] -[visit_exp limits#1483] -[visit_id limits#1483] +[check_dims] I at lim +dims \ I = at, lim +[visit_exp `%%PAGE`_memtype(at, lim)] [visit_exp (at, lim)] [visit_exp at] [visit_id at] @@ -92056,15 +72888,9 @@ dims \ I = addrtype#1483, at, lim, limits#1483 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I addrtype#1495 at lim limits#1495 reftype#4291 rt -dims \ I = addrtype#1495, at, lim, limits#1495, reftype#4291, rt -[visit_exp `%%%`_tabletype{addrtype#1495, limits#1495, reftype#4291}(at, lim, rt)] -[visit_exp addrtype#1495] -[visit_id addrtype#1495] -[visit_exp limits#1495] -[visit_id limits#1495] -[visit_exp reftype#4291] -[visit_id reftype#4291] +[check_dims] I at lim rt +dims \ I = at, lim, rt +[visit_exp `%%%`_tabletype(at, lim, rt)] [visit_exp (at, lim, rt)] [visit_exp at] [visit_id at] @@ -92084,26 +72910,18 @@ dims \ I = addrtype#1495, at, lim, limits#1495, reftype#4291, rt [visit_id I] not free ps' = (I : I) [check_dims] I _ -[check_dims] I char*#1029 char*#1035 deftype?*#6 id jt name?*#471 name?*#472 name?*#473 name?*#474 name?*#475 name?*#476 name?*#477 name?*#478 name?*#479 name?*#480 name?**#19 tagtype#436 -dims \ I = char*#1029, char*#1035, deftype?*#6, id, jt, name?*#471, name?*#472, name?*#473, name?*#474, name?*#475, name?*#476, name?*#477, name?*#478, name?*#479, name?*#480, name?**#19, tagtype#436 -[visit_exp (`TAG`_externtype{tagtype#436}(jt), {`TYPES`{`name?*#471`} [], `TAGS`{`name?*#472`} [?(`%`_name{`char*#1035`}(lift(id?{id <- `id?`})))], `GLOBALS`{`name?*#473`} [], `MEMS`{`name?*#474`} [], `TABLES`{`name?*#475`} [], `FUNCS`{`name?*#476`} [], `DATAS`{`name?*#477`} [], `ELEMS`{`name?*#478`} [], `LOCALS`{`name?*#479`} [], `LABELS`{`name?*#480`} [], `FIELDS`{`name?**#19`} [], `TYPEDEFS`{`deftype?*#6`} []})] -[visit_exp `TAG`_externtype{tagtype#436}(jt)] -[visit_exp tagtype#436] -[visit_id tagtype#436] +[check_dims] I id jt +dims \ I = id, jt +[visit_exp (`TAG`_externtype(jt), {`TYPES` [], `TAGS` [?(`%`_name(lift(id?{id <- `id?`})))], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] +[visit_exp `TAG`_externtype(jt)] [visit_exp (jt)] [visit_exp jt] [visit_id jt] -[visit_exp {`TYPES`{`name?*#471`} [], `TAGS`{`name?*#472`} [?(`%`_name{`char*#1035`}(lift(id?{id <- `id?`})))], `GLOBALS`{`name?*#473`} [], `MEMS`{`name?*#474`} [], `TABLES`{`name?*#475`} [], `FUNCS`{`name?*#476`} [], `DATAS`{`name?*#477`} [], `ELEMS`{`name?*#478`} [], `LOCALS`{`name?*#479`} [], `LABELS`{`name?*#480`} [], `FIELDS`{`name?**#19`} [], `TYPEDEFS`{`deftype?*#6`} []}] -[visit_exp `name?*#471`] -[visit_id name?*#471] -[visit_exp []] -[visit_exp `name?*#472`] -[visit_id name?*#472] -[visit_exp [?(`%`_name{`char*#1035`}(lift(id?{id <- `id?`})))]] -[visit_exp ?(`%`_name{`char*#1035`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1035`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1035`] -[visit_id char*#1035] +[visit_exp {`TYPES` [], `TAGS` [?(`%`_name(lift(id?{id <- `id?`})))], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] +[visit_exp []] +[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))]] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -92115,40 +72933,18 @@ dims \ I = char*#1029, char*#1035, deftype?*#6, id, jt, name?*#471, name?*#472, [visit_exp `id?`] [visit_id id?] no dims [visit_id id?] -[visit_exp `name?*#473`] -[visit_id name?*#473] [visit_exp []] -[visit_exp `name?*#474`] -[visit_id name?*#474] [visit_exp []] -[visit_exp `name?*#475`] -[visit_id name?*#475] [visit_exp []] -[visit_exp `name?*#476`] -[visit_id name?*#476] [visit_exp []] -[visit_exp `name?*#477`] -[visit_id name?*#477] [visit_exp []] -[visit_exp `name?*#478`] -[visit_id name?*#478] [visit_exp []] -[visit_exp `name?*#479`] -[visit_id name?*#479] [visit_exp []] -[visit_exp `name?*#480`] -[visit_id name?*#480] [visit_exp []] -[visit_exp `name?**#19`] -[visit_id name?**#19] [visit_exp []] -[visit_exp `deftype?*#6`] -[visit_id deftype?*#6] [visit_exp []] -[visit_exp ?(`%`_name{`char*#1029`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1029`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1029`] -[visit_id char*#1029] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -92165,29 +72961,19 @@ dims \ I = char*#1029, char*#1035, deftype?*#6, id, jt, name?*#471, name?*#472, [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I char*#1041 char*#1047 deftype?*#7 globaltype#2397 gt id name?*#481 name?*#482 name?*#483 name?*#484 name?*#485 name?*#486 name?*#487 name?*#488 name?*#489 name?*#490 name?**#20 -dims \ I = char*#1041, char*#1047, deftype?*#7, globaltype#2397, gt, id, name?*#481, name?*#482, name?*#483, name?*#484, name?*#485, name?*#486, name?*#487, name?*#488, name?*#489, name?*#490, name?**#20 -[visit_exp (`GLOBAL`_externtype{globaltype#2397}(gt), {`TYPES`{`name?*#481`} [], `TAGS`{`name?*#482`} [], `GLOBALS`{`name?*#483`} [?(`%`_name{`char*#1047`}(lift(id?{id <- `id?`})))], `MEMS`{`name?*#484`} [], `TABLES`{`name?*#485`} [], `FUNCS`{`name?*#486`} [], `DATAS`{`name?*#487`} [], `ELEMS`{`name?*#488`} [], `LOCALS`{`name?*#489`} [], `LABELS`{`name?*#490`} [], `FIELDS`{`name?**#20`} [], `TYPEDEFS`{`deftype?*#7`} []})] -[visit_exp `GLOBAL`_externtype{globaltype#2397}(gt)] -[visit_exp globaltype#2397] -[visit_id globaltype#2397] +[check_dims] I gt id +dims \ I = gt, id +[visit_exp (`GLOBAL`_externtype(gt), {`TYPES` [], `TAGS` [], `GLOBALS` [?(`%`_name(lift(id?{id <- `id?`})))], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] +[visit_exp `GLOBAL`_externtype(gt)] [visit_exp (gt)] [visit_exp gt] [visit_id gt] -[visit_exp {`TYPES`{`name?*#481`} [], `TAGS`{`name?*#482`} [], `GLOBALS`{`name?*#483`} [?(`%`_name{`char*#1047`}(lift(id?{id <- `id?`})))], `MEMS`{`name?*#484`} [], `TABLES`{`name?*#485`} [], `FUNCS`{`name?*#486`} [], `DATAS`{`name?*#487`} [], `ELEMS`{`name?*#488`} [], `LOCALS`{`name?*#489`} [], `LABELS`{`name?*#490`} [], `FIELDS`{`name?**#20`} [], `TYPEDEFS`{`deftype?*#7`} []}] -[visit_exp `name?*#481`] -[visit_id name?*#481] -[visit_exp []] -[visit_exp `name?*#482`] -[visit_id name?*#482] -[visit_exp []] -[visit_exp `name?*#483`] -[visit_id name?*#483] -[visit_exp [?(`%`_name{`char*#1047`}(lift(id?{id <- `id?`})))]] -[visit_exp ?(`%`_name{`char*#1047`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1047`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1047`] -[visit_id char*#1047] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [?(`%`_name(lift(id?{id <- `id?`})))], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] +[visit_exp []] +[visit_exp []] +[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))]] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -92199,37 +72985,17 @@ dims \ I = char*#1041, char*#1047, deftype?*#7, globaltype#2397, gt, id, name?*# [visit_exp `id?`] [visit_id id?] no dims [visit_id id?] -[visit_exp `name?*#484`] -[visit_id name?*#484] [visit_exp []] -[visit_exp `name?*#485`] -[visit_id name?*#485] [visit_exp []] -[visit_exp `name?*#486`] -[visit_id name?*#486] [visit_exp []] -[visit_exp `name?*#487`] -[visit_id name?*#487] [visit_exp []] -[visit_exp `name?*#488`] -[visit_id name?*#488] [visit_exp []] -[visit_exp `name?*#489`] -[visit_id name?*#489] [visit_exp []] -[visit_exp `name?*#490`] -[visit_id name?*#490] [visit_exp []] -[visit_exp `name?**#20`] -[visit_id name?**#20] [visit_exp []] -[visit_exp `deftype?*#7`] -[visit_id deftype?*#7] [visit_exp []] -[visit_exp ?(`%`_name{`char*#1041`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1041`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1041`] -[visit_id char*#1041] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -92246,32 +73012,20 @@ dims \ I = char*#1041, char*#1047, deftype?*#7, globaltype#2397, gt, id, name?*# [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I char*#1053 char*#1059 deftype?*#8 id memtype#858 mt name?*#491 name?*#492 name?*#493 name?*#494 name?*#495 name?*#496 name?*#497 name?*#498 name?*#499 name?*#500 name?**#21 -dims \ I = char*#1053, char*#1059, deftype?*#8, id, memtype#858, mt, name?*#491, name?*#492, name?*#493, name?*#494, name?*#495, name?*#496, name?*#497, name?*#498, name?*#499, name?*#500, name?**#21 -[visit_exp (`MEM`_externtype{memtype#858}(mt), {`TYPES`{`name?*#491`} [], `TAGS`{`name?*#492`} [], `GLOBALS`{`name?*#493`} [], `MEMS`{`name?*#494`} [?(`%`_name{`char*#1059`}(lift(id?{id <- `id?`})))], `TABLES`{`name?*#495`} [], `FUNCS`{`name?*#496`} [], `DATAS`{`name?*#497`} [], `ELEMS`{`name?*#498`} [], `LOCALS`{`name?*#499`} [], `LABELS`{`name?*#500`} [], `FIELDS`{`name?**#21`} [], `TYPEDEFS`{`deftype?*#8`} []})] -[visit_exp `MEM`_externtype{memtype#858}(mt)] -[visit_exp memtype#858] -[visit_id memtype#858] +[check_dims] I id mt +dims \ I = id, mt +[visit_exp (`MEM`_externtype(mt), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] +[visit_exp `MEM`_externtype(mt)] [visit_exp (mt)] [visit_exp mt] [visit_id mt] -[visit_exp {`TYPES`{`name?*#491`} [], `TAGS`{`name?*#492`} [], `GLOBALS`{`name?*#493`} [], `MEMS`{`name?*#494`} [?(`%`_name{`char*#1059`}(lift(id?{id <- `id?`})))], `TABLES`{`name?*#495`} [], `FUNCS`{`name?*#496`} [], `DATAS`{`name?*#497`} [], `ELEMS`{`name?*#498`} [], `LOCALS`{`name?*#499`} [], `LABELS`{`name?*#500`} [], `FIELDS`{`name?**#21`} [], `TYPEDEFS`{`deftype?*#8`} []}] -[visit_exp `name?*#491`] -[visit_id name?*#491] -[visit_exp []] -[visit_exp `name?*#492`] -[visit_id name?*#492] -[visit_exp []] -[visit_exp `name?*#493`] -[visit_id name?*#493] -[visit_exp []] -[visit_exp `name?*#494`] -[visit_id name?*#494] -[visit_exp [?(`%`_name{`char*#1059`}(lift(id?{id <- `id?`})))]] -[visit_exp ?(`%`_name{`char*#1059`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1059`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1059`] -[visit_id char*#1059] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] +[visit_exp []] +[visit_exp []] +[visit_exp []] +[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))]] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -92283,34 +73037,16 @@ dims \ I = char*#1053, char*#1059, deftype?*#8, id, memtype#858, mt, name?*#491, [visit_exp `id?`] [visit_id id?] no dims [visit_id id?] -[visit_exp `name?*#495`] -[visit_id name?*#495] [visit_exp []] -[visit_exp `name?*#496`] -[visit_id name?*#496] [visit_exp []] -[visit_exp `name?*#497`] -[visit_id name?*#497] [visit_exp []] -[visit_exp `name?*#498`] -[visit_id name?*#498] [visit_exp []] -[visit_exp `name?*#499`] -[visit_id name?*#499] [visit_exp []] -[visit_exp `name?*#500`] -[visit_id name?*#500] [visit_exp []] -[visit_exp `name?**#21`] -[visit_id name?**#21] [visit_exp []] -[visit_exp `deftype?*#8`] -[visit_id deftype?*#8] [visit_exp []] -[visit_exp ?(`%`_name{`char*#1053`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1053`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1053`] -[visit_id char*#1053] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -92327,35 +73063,21 @@ dims \ I = char*#1053, char*#1059, deftype?*#8, id, memtype#858, mt, name?*#491, [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I char*#1065 char*#1071 deftype?*#9 id name?*#501 name?*#502 name?*#503 name?*#504 name?*#505 name?*#506 name?*#507 name?*#508 name?*#509 name?*#510 name?**#22 tabletype#1280 tt -dims \ I = char*#1065, char*#1071, deftype?*#9, id, name?*#501, name?*#502, name?*#503, name?*#504, name?*#505, name?*#506, name?*#507, name?*#508, name?*#509, name?*#510, name?**#22, tabletype#1280, tt -[visit_exp (`TABLE`_externtype{tabletype#1280}(tt), {`TYPES`{`name?*#501`} [], `TAGS`{`name?*#502`} [], `GLOBALS`{`name?*#503`} [], `MEMS`{`name?*#504`} [], `TABLES`{`name?*#505`} [?(`%`_name{`char*#1071`}(lift(id?{id <- `id?`})))], `FUNCS`{`name?*#506`} [], `DATAS`{`name?*#507`} [], `ELEMS`{`name?*#508`} [], `LOCALS`{`name?*#509`} [], `LABELS`{`name?*#510`} [], `FIELDS`{`name?**#22`} [], `TYPEDEFS`{`deftype?*#9`} []})] -[visit_exp `TABLE`_externtype{tabletype#1280}(tt)] -[visit_exp tabletype#1280] -[visit_id tabletype#1280] +[check_dims] I id tt +dims \ I = id, tt +[visit_exp (`TABLE`_externtype(tt), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [?(`%`_name(lift(id?{id <- `id?`})))], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] +[visit_exp `TABLE`_externtype(tt)] [visit_exp (tt)] [visit_exp tt] [visit_id tt] -[visit_exp {`TYPES`{`name?*#501`} [], `TAGS`{`name?*#502`} [], `GLOBALS`{`name?*#503`} [], `MEMS`{`name?*#504`} [], `TABLES`{`name?*#505`} [?(`%`_name{`char*#1071`}(lift(id?{id <- `id?`})))], `FUNCS`{`name?*#506`} [], `DATAS`{`name?*#507`} [], `ELEMS`{`name?*#508`} [], `LOCALS`{`name?*#509`} [], `LABELS`{`name?*#510`} [], `FIELDS`{`name?**#22`} [], `TYPEDEFS`{`deftype?*#9`} []}] -[visit_exp `name?*#501`] -[visit_id name?*#501] -[visit_exp []] -[visit_exp `name?*#502`] -[visit_id name?*#502] -[visit_exp []] -[visit_exp `name?*#503`] -[visit_id name?*#503] -[visit_exp []] -[visit_exp `name?*#504`] -[visit_id name?*#504] -[visit_exp []] -[visit_exp `name?*#505`] -[visit_id name?*#505] -[visit_exp [?(`%`_name{`char*#1071`}(lift(id?{id <- `id?`})))]] -[visit_exp ?(`%`_name{`char*#1071`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1071`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1071`] -[visit_id char*#1071] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [?(`%`_name(lift(id?{id <- `id?`})))], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] +[visit_exp []] +[visit_exp []] +[visit_exp []] +[visit_exp []] +[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))]] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -92367,31 +73089,15 @@ dims \ I = char*#1065, char*#1071, deftype?*#9, id, name?*#501, name?*#502, name [visit_exp `id?`] [visit_id id?] no dims [visit_id id?] -[visit_exp `name?*#506`] -[visit_id name?*#506] [visit_exp []] -[visit_exp `name?*#507`] -[visit_id name?*#507] [visit_exp []] -[visit_exp `name?*#508`] -[visit_id name?*#508] [visit_exp []] -[visit_exp `name?*#509`] -[visit_id name?*#509] [visit_exp []] -[visit_exp `name?*#510`] -[visit_id name?*#510] [visit_exp []] -[visit_exp `name?**#22`] -[visit_id name?**#22] [visit_exp []] -[visit_exp `deftype?*#9`] -[visit_id deftype?*#9] [visit_exp []] -[visit_exp ?(`%`_name{`char*#1065`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1065`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1065`] -[visit_id char*#1065] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -92408,42 +73114,24 @@ dims \ I = char*#1065, char*#1071, deftype?*#9, id, name?*#501, name?*#502, name [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I I' char*#1077 char*#1083 deftype?*#10 id name?*#511 name?*#512 name?*#513 name?*#514 name?*#515 name?*#516 name?*#517 name?*#518 name?*#519 name?*#520 name?**#23 typeidx#2125 typeuse#77 x -dims \ I = I', char*#1077, char*#1083, deftype?*#10, id, name?*#511, name?*#512, name?*#513, name?*#514, name?*#515, name?*#516, name?*#517, name?*#518, name?*#519, name?*#520, name?**#23, typeidx#2125, typeuse#77, x -[visit_exp (`FUNC`_externtype{typeuse#77}(`_IDX`_typeuse{typeidx#2125}(x)), {`TYPES`{`name?*#511`} [], `TAGS`{`name?*#512`} [], `GLOBALS`{`name?*#513`} [], `MEMS`{`name?*#514`} [], `TABLES`{`name?*#515`} [], `FUNCS`{`name?*#516`} [?(`%`_name{`char*#1083`}(lift(id?{id <- `id?`})))], `DATAS`{`name?*#517`} [], `ELEMS`{`name?*#518`} [], `LOCALS`{`name?*#519`} [], `LABELS`{`name?*#520`} [], `FIELDS`{`name?**#23`} [], `TYPEDEFS`{`deftype?*#10`} []})] -[visit_exp `FUNC`_externtype{typeuse#77}(`_IDX`_typeuse{typeidx#2125}(x))] -[visit_exp typeuse#77] -[visit_id typeuse#77] -[visit_exp (`_IDX`_typeuse{typeidx#2125}(x))] -[visit_exp `_IDX`_typeuse{typeidx#2125}(x)] -[visit_exp typeidx#2125] -[visit_id typeidx#2125] +[check_dims] I I' id x +dims \ I = I', id, x +[visit_exp (`FUNC`_externtype(`_IDX`_typeuse(x)), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [?(`%`_name(lift(id?{id <- `id?`})))], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] +[visit_exp `FUNC`_externtype(`_IDX`_typeuse(x))] +[visit_exp (`_IDX`_typeuse(x))] +[visit_exp `_IDX`_typeuse(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp {`TYPES`{`name?*#511`} [], `TAGS`{`name?*#512`} [], `GLOBALS`{`name?*#513`} [], `MEMS`{`name?*#514`} [], `TABLES`{`name?*#515`} [], `FUNCS`{`name?*#516`} [?(`%`_name{`char*#1083`}(lift(id?{id <- `id?`})))], `DATAS`{`name?*#517`} [], `ELEMS`{`name?*#518`} [], `LOCALS`{`name?*#519`} [], `LABELS`{`name?*#520`} [], `FIELDS`{`name?**#23`} [], `TYPEDEFS`{`deftype?*#10`} []}] -[visit_exp `name?*#511`] -[visit_id name?*#511] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [?(`%`_name(lift(id?{id <- `id?`})))], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] [visit_exp []] -[visit_exp `name?*#512`] -[visit_id name?*#512] [visit_exp []] -[visit_exp `name?*#513`] -[visit_id name?*#513] [visit_exp []] -[visit_exp `name?*#514`] -[visit_id name?*#514] [visit_exp []] -[visit_exp `name?*#515`] -[visit_id name?*#515] [visit_exp []] -[visit_exp `name?*#516`] -[visit_id name?*#516] -[visit_exp [?(`%`_name{`char*#1083`}(lift(id?{id <- `id?`})))]] -[visit_exp ?(`%`_name{`char*#1083`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1083`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1083`] -[visit_id char*#1083] +[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))]] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -92455,28 +73143,14 @@ dims \ I = I', char*#1077, char*#1083, deftype?*#10, id, name?*#511, name?*#512, [visit_exp `id?`] [visit_id id?] no dims [visit_id id?] -[visit_exp `name?*#517`] -[visit_id name?*#517] [visit_exp []] -[visit_exp `name?*#518`] -[visit_id name?*#518] [visit_exp []] -[visit_exp `name?*#519`] -[visit_id name?*#519] [visit_exp []] -[visit_exp `name?*#520`] -[visit_id name?*#520] [visit_exp []] -[visit_exp `name?**#23`] -[visit_id name?**#23] [visit_exp []] -[visit_exp `deftype?*#10`] -[visit_id deftype?*#10] [visit_exp []] -[visit_exp ?(`%`_name{`char*#1077`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1077`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1077`] -[visit_id char*#1077] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -92497,14 +73171,18 @@ dims \ I = I', char*#1077, char*#1083, deftype?*#10, id, name?*#511, name?*#512, [visit_id I] not free [visit_id I] no dims [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = (I : I) [check_dims] I _ -[check_dims] I I' X*#13419 X*#13434 X*#13447 char*#1113 comptype#577 deftype?*#11 deftype?*#12 final?#577 i i#95899 n#1503 name?*#521 name?*#522 name?*#523 name?*#524 name?*#525 name?*#526 name?*#527 name?*#528 name?*#529 name?*#530 name?**#24 rectype#1807 resulttype#3035 st t_1 t_2 typeuse*#577 x -dims \ I = I', X*#13419, X*#13434, X*#13447, char*#1113, comptype#577, deftype?*#11, deftype?*#12, final?#577, i, i#95899, n#1503, name?*#521, name?*#522, name?*#523, name?*#524, name?*#525, name?*#526, name?*#527, name?*#528, name?*#529, name?*#530, name?**#24, rectype#1807, resulttype#3035, st, t_1, t_2, typeuse*#577, x +[check_dims] I I' i st t_1 t_2 x +dims \ I = I', i, st, t_1, t_2, x [visit_exp (x, I')] [visit_exp x] [visit_id x] @@ -92515,32 +73193,22 @@ dims \ I = I', X*#13419, X*#13434, X*#13447, char*#1113, comptype#577, deftype?* [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp (I.`TYPEDEFS`_I{`deftype?*#11`}[x!`%`_idx{i#95899}.0] = ?(`_DEF`_deftype{rectype#1807, n#1503}(`REC`_rectype(`%`_list{`X*#13419`}(st*{st <- `st*`})), i)))] -[visit_exp I.`TYPEDEFS`_I{`deftype?*#11`}[x!`%`_idx{i#95899}.0]] -[visit_exp I.`TYPEDEFS`_I{`deftype?*#11`}] +[visit_exp (I.`TYPEDEFS`_I[x!`%`_idx.0] = ?(`_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i)))] +[visit_exp I.`TYPEDEFS`_I[x!`%`_idx.0]] +[visit_exp I.`TYPEDEFS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `deftype?*#11`] -[visit_id deftype?*#11] -[visit_exp x!`%`_idx{i#95899}.0] -[visit_exp x!`%`_idx{i#95899}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#95899] -[visit_id i#95899] -[visit_exp ?(`_DEF`_deftype{rectype#1807, n#1503}(`REC`_rectype(`%`_list{`X*#13419`}(st*{st <- `st*`})), i))] -[visit_exp `_DEF`_deftype{rectype#1807, n#1503}(`REC`_rectype(`%`_list{`X*#13419`}(st*{st <- `st*`})), i)] -[visit_exp rectype#1807] -[visit_id rectype#1807] -[visit_exp n#1503] -[visit_id n#1503] -[visit_exp (`REC`_rectype(`%`_list{`X*#13419`}(st*{st <- `st*`})), i)] -[visit_exp `REC`_rectype(`%`_list{`X*#13419`}(st*{st <- `st*`}))] -[visit_exp (`%`_list{`X*#13419`}(st*{st <- `st*`}))] -[visit_exp `%`_list{`X*#13419`}(st*{st <- `st*`})] -[visit_exp `X*#13419`] -[visit_id X*#13419] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp ?(`_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i))] +[visit_exp `_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i)] +[visit_exp (`REC`_rectype(`%`_list(st*{st <- `st*`})), i)] +[visit_exp `REC`_rectype(`%`_list(st*{st <- `st*`}))] +[visit_exp (`%`_list(st*{st <- `st*`}))] +[visit_exp `%`_list(st*{st <- `st*`})] [visit_exp (st*{st <- `st*`})] [visit_exp st*{st <- `st*`}] [scope_enter st] @@ -92553,7 +73221,7 @@ dims \ I = I', X*#13419, X*#13434, X*#13447, char*#1113, comptype#577, deftype?* [visit_id st*] [visit_exp i] [visit_id i] -[visit_exp (st*{st <- `st*`}[i] = `SUB`_subtype{`final?#577`, `typeuse*#577`, comptype#577}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3035}(`%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`}))))] +[visit_exp (st*{st <- `st*`}[i] = `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))))] [visit_exp st*{st <- `st*`}[i]] [visit_exp st*{st <- `st*`}] [scope_enter st] @@ -92566,25 +73234,15 @@ dims \ I = I', X*#13419, X*#13434, X*#13447, char*#1113, comptype#577, deftype?* [visit_id st*] no dims [visit_exp i] [visit_id i] not free -[visit_exp `SUB`_subtype{`final?#577`, `typeuse*#577`, comptype#577}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3035}(`%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp `final?#577`] -[visit_id final?#577] -[visit_exp `typeuse*#577`] -[visit_id typeuse*#577] -[visit_exp comptype#577] -[visit_id comptype#577] -[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3035}(`%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp ?(`FINAL`_final)] [visit_exp `FINAL`_final] [visit_exp ()] [visit_exp []] -[visit_exp `FUNC%->%`_comptype{resulttype#3035}(`%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#3035] -[visit_id resulttype#3035] -[visit_exp (`%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#13434`] -[visit_id X*#13434] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -92595,9 +73253,7 @@ dims \ I = I', X*#13419, X*#13434, X*#13447, char*#1113, comptype#577, deftype?* [visit_exp `t_1*`] [visit_id t_1*] no dims [visit_id t_1*] -[visit_exp `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#13447`] -[visit_id X*#13447] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -92608,46 +73264,23 @@ dims \ I = I', X*#13419, X*#13434, X*#13447, char*#1113, comptype#577, deftype?* [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (I' = {`TYPES`{`name?*#521`} [], `TAGS`{`name?*#522`} [], `GLOBALS`{`name?*#523`} [], `MEMS`{`name?*#524`} [], `TABLES`{`name?*#525`} [], `FUNCS`{`name?*#526`} [], `DATAS`{`name?*#527`} [], `ELEMS`{`name?*#528`} [], `LOCALS`{`name?*#529`} ?(`%`_name{`char*#1113`}([]))^|t_1*{t_1 <- `t_1*`}|{`char*#1113` <- `char*#1113*`}, `LABELS`{`name?*#530`} [], `FIELDS`{`name?**#24`} [], `TYPEDEFS`{`deftype?*#12`} []})] +[visit_exp (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))^|t_1*{t_1 <- `t_1*`}|{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] [visit_exp I'] [visit_id I'] not free -[visit_exp {`TYPES`{`name?*#521`} [], `TAGS`{`name?*#522`} [], `GLOBALS`{`name?*#523`} [], `MEMS`{`name?*#524`} [], `TABLES`{`name?*#525`} [], `FUNCS`{`name?*#526`} [], `DATAS`{`name?*#527`} [], `ELEMS`{`name?*#528`} [], `LOCALS`{`name?*#529`} ?(`%`_name{`char*#1113`}([]))^|t_1*{t_1 <- `t_1*`}|{`char*#1113` <- `char*#1113*`}, `LABELS`{`name?*#530`} [], `FIELDS`{`name?**#24`} [], `TYPEDEFS`{`deftype?*#12`} []}] -[visit_exp `name?*#521`] -[visit_id name?*#521] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))^|t_1*{t_1 <- `t_1*`}|{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] [visit_exp []] -[visit_exp `name?*#522`] -[visit_id name?*#522] [visit_exp []] -[visit_exp `name?*#523`] -[visit_id name?*#523] [visit_exp []] -[visit_exp `name?*#524`] -[visit_id name?*#524] [visit_exp []] -[visit_exp `name?*#525`] -[visit_id name?*#525] [visit_exp []] -[visit_exp `name?*#526`] -[visit_id name?*#526] [visit_exp []] -[visit_exp `name?*#527`] -[visit_id name?*#527] [visit_exp []] -[visit_exp `name?*#528`] -[visit_id name?*#528] [visit_exp []] -[visit_exp `name?*#529`] -[visit_id name?*#529] -[visit_exp ?(`%`_name{`char*#1113`}([]))^|t_1*{t_1 <- `t_1*`}|{`char*#1113` <- `char*#1113*`}] -[scope_enter char*#1113] -[visit_exp ?(`%`_name{`char*#1113`}([]))] -[visit_exp `%`_name{`char*#1113`}([])] -[visit_exp `char*#1113`] -[visit_id char*#1113] not free +[visit_exp ?(`%`_name([]))^|t_1*{t_1 <- `t_1*`}|{}] +[visit_exp ?(`%`_name([]))] +[visit_exp `%`_name([])] [visit_exp ([])] [visit_exp []] -[visit_id char*#1113] not free -[scope_exit char*#1113] [visit_exp |t_1*{t_1 <- `t_1*`}|] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -92658,20 +73291,11 @@ dims \ I = I', X*#13419, X*#13434, X*#13447, char*#1113, comptype#577, deftype?* [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `char*#1113*`] -[visit_id char*#1113*] no dims -[visit_id char*#1113*] -[visit_exp `name?*#530`] -[visit_id name?*#530] [visit_exp []] -[visit_exp `name?**#24`] -[visit_id name?**#24] [visit_exp []] -[visit_exp `deftype?*#12`] -[visit_id deftype?*#12] [visit_exp []] -[check_dims] I I' X*#13462 X*#13477 X*#13490 char*#1119 char*#1137 comptype#601 deftype?*#13 deftype?*#14 final?#601 i i#95968 id n#1515 name?*#531 name?*#532 name?*#533 name?*#534 name?*#535 name?*#536 name?*#537 name?*#538 name?*#539 name?*#540 name?**#25 rectype#1819 resulttype#3038 st t_1 t_2 typeuse*#601 x -dims \ I = I', X*#13462, X*#13477, X*#13490, char*#1119, char*#1137, comptype#601, deftype?*#13, deftype?*#14, final?#601, i, i#95968, id, n#1515, name?*#531, name?*#532, name?*#533, name?*#534, name?*#535, name?*#536, name?*#537, name?*#538, name?*#539, name?*#540, name?**#25, rectype#1819, resulttype#3038, st, t_1, t_2, typeuse*#601, x +[check_dims] I I' i id st t_1 t_2 x +dims \ I = I', i, id, st, t_1, t_2, x [visit_exp (x, I')] [visit_exp x] [visit_id x] @@ -92682,17 +73306,14 @@ dims \ I = I', X*#13462, X*#13477, X*#13490, char*#1119, char*#1137, comptype#60 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp (t_1, ?(`%`_name{`char*#1119`}(lift(id?{id <- `id?`}))))*{`char*#1119` <- `char*#1119*`, `id?` <- `id?*`, t_1 <- `t_1*`}] -[scope_enter char*#1119] +[visit_exp (t_1, ?(`%`_name(lift(id?{id <- `id?`}))))*{`id?` <- `id?*`, t_1 <- `t_1*`}] [scope_enter id?] [scope_enter t_1] -[visit_exp (t_1, ?(`%`_name{`char*#1119`}(lift(id?{id <- `id?`}))))] +[visit_exp (t_1, ?(`%`_name(lift(id?{id <- `id?`}))))] [visit_exp t_1] [visit_id t_1] not free -[visit_exp ?(`%`_name{`char*#1119`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1119`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1119`] -[visit_id char*#1119] not free +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -92704,16 +73325,11 @@ dims \ I = I', X*#13462, X*#13477, X*#13490, char*#1119, char*#1137, comptype#60 [visit_exp `id?`] [visit_id id?] not free [visit_id id?] no dims -[visit_id char*#1119] not free [visit_id id?] not free [visit_id id?] no dims [visit_id t_1] not free [scope_exit t_1] [scope_exit id?] -[scope_exit char*#1119] -[visit_exp `char*#1119*`] -[visit_id char*#1119*] no dims -[visit_id char*#1119*] [visit_exp `id?*`] [visit_id id?*] no dims [visit_id id?*] @@ -92735,32 +73351,22 @@ dims \ I = I', X*#13462, X*#13477, X*#13490, char*#1119, char*#1137, comptype#60 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp (I.`TYPEDEFS`_I{`deftype?*#13`}[x!`%`_idx{i#95968}.0] = ?(`_DEF`_deftype{rectype#1819, n#1515}(`REC`_rectype(`%`_list{`X*#13462`}(st*{st <- `st*`})), i)))] -[visit_exp I.`TYPEDEFS`_I{`deftype?*#13`}[x!`%`_idx{i#95968}.0]] -[visit_exp I.`TYPEDEFS`_I{`deftype?*#13`}] +[visit_exp (I.`TYPEDEFS`_I[x!`%`_idx.0] = ?(`_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i)))] +[visit_exp I.`TYPEDEFS`_I[x!`%`_idx.0]] +[visit_exp I.`TYPEDEFS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `deftype?*#13`] -[visit_id deftype?*#13] -[visit_exp x!`%`_idx{i#95968}.0] -[visit_exp x!`%`_idx{i#95968}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#95968] -[visit_id i#95968] -[visit_exp ?(`_DEF`_deftype{rectype#1819, n#1515}(`REC`_rectype(`%`_list{`X*#13462`}(st*{st <- `st*`})), i))] -[visit_exp `_DEF`_deftype{rectype#1819, n#1515}(`REC`_rectype(`%`_list{`X*#13462`}(st*{st <- `st*`})), i)] -[visit_exp rectype#1819] -[visit_id rectype#1819] -[visit_exp n#1515] -[visit_id n#1515] -[visit_exp (`REC`_rectype(`%`_list{`X*#13462`}(st*{st <- `st*`})), i)] -[visit_exp `REC`_rectype(`%`_list{`X*#13462`}(st*{st <- `st*`}))] -[visit_exp (`%`_list{`X*#13462`}(st*{st <- `st*`}))] -[visit_exp `%`_list{`X*#13462`}(st*{st <- `st*`})] -[visit_exp `X*#13462`] -[visit_id X*#13462] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp ?(`_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i))] +[visit_exp `_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i)] +[visit_exp (`REC`_rectype(`%`_list(st*{st <- `st*`})), i)] +[visit_exp `REC`_rectype(`%`_list(st*{st <- `st*`}))] +[visit_exp (`%`_list(st*{st <- `st*`}))] +[visit_exp `%`_list(st*{st <- `st*`})] [visit_exp (st*{st <- `st*`})] [visit_exp st*{st <- `st*`}] [scope_enter st] @@ -92773,7 +73379,7 @@ dims \ I = I', X*#13462, X*#13477, X*#13490, char*#1119, char*#1137, comptype#60 [visit_id st*] [visit_exp i] [visit_id i] -[visit_exp (st*{st <- `st*`}[i] = `SUB`_subtype{`final?#601`, `typeuse*#601`, comptype#601}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3038}(`%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`}))))] +[visit_exp (st*{st <- `st*`}[i] = `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))))] [visit_exp st*{st <- `st*`}[i]] [visit_exp st*{st <- `st*`}] [scope_enter st] @@ -92786,25 +73392,15 @@ dims \ I = I', X*#13462, X*#13477, X*#13490, char*#1119, char*#1137, comptype#60 [visit_id st*] no dims [visit_exp i] [visit_id i] not free -[visit_exp `SUB`_subtype{`final?#601`, `typeuse*#601`, comptype#601}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3038}(`%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp `final?#601`] -[visit_id final?#601] -[visit_exp `typeuse*#601`] -[visit_id typeuse*#601] -[visit_exp comptype#601] -[visit_id comptype#601] -[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3038}(`%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp ?(`FINAL`_final)] [visit_exp `FINAL`_final] [visit_exp ()] [visit_exp []] -[visit_exp `FUNC%->%`_comptype{resulttype#3038}(`%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#3038] -[visit_id resulttype#3038] -[visit_exp (`%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#13477`] -[visit_id X*#13477] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -92815,9 +73411,7 @@ dims \ I = I', X*#13462, X*#13477, X*#13490, char*#1119, char*#1137, comptype#60 [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#13490`] -[visit_id X*#13490] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -92828,43 +73422,22 @@ dims \ I = I', X*#13462, X*#13477, X*#13490, char*#1119, char*#1137, comptype#60 [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp (I' = {`TYPES`{`name?*#531`} [], `TAGS`{`name?*#532`} [], `GLOBALS`{`name?*#533`} [], `MEMS`{`name?*#534`} [], `TABLES`{`name?*#535`} [], `FUNCS`{`name?*#536`} [], `DATAS`{`name?*#537`} [], `ELEMS`{`name?*#538`} [], `LOCALS`{`name?*#539`} ?(`%`_name{`char*#1137`}(lift(id?{id <- `id?`})))*{`char*#1137` <- `char*#1137*`, `id?` <- `id?*`}, `LABELS`{`name?*#540`} [], `FIELDS`{`name?**#25`} [], `TYPEDEFS`{`deftype?*#14`} []})] +[visit_exp (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] [visit_exp I'] [visit_id I'] not free -[visit_exp {`TYPES`{`name?*#531`} [], `TAGS`{`name?*#532`} [], `GLOBALS`{`name?*#533`} [], `MEMS`{`name?*#534`} [], `TABLES`{`name?*#535`} [], `FUNCS`{`name?*#536`} [], `DATAS`{`name?*#537`} [], `ELEMS`{`name?*#538`} [], `LOCALS`{`name?*#539`} ?(`%`_name{`char*#1137`}(lift(id?{id <- `id?`})))*{`char*#1137` <- `char*#1137*`, `id?` <- `id?*`}, `LABELS`{`name?*#540`} [], `FIELDS`{`name?**#25`} [], `TYPEDEFS`{`deftype?*#14`} []}] -[visit_exp `name?*#531`] -[visit_id name?*#531] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] [visit_exp []] -[visit_exp `name?*#532`] -[visit_id name?*#532] [visit_exp []] -[visit_exp `name?*#533`] -[visit_id name?*#533] [visit_exp []] -[visit_exp `name?*#534`] -[visit_id name?*#534] [visit_exp []] -[visit_exp `name?*#535`] -[visit_id name?*#535] [visit_exp []] -[visit_exp `name?*#536`] -[visit_id name?*#536] [visit_exp []] -[visit_exp `name?*#537`] -[visit_id name?*#537] [visit_exp []] -[visit_exp `name?*#538`] -[visit_id name?*#538] [visit_exp []] -[visit_exp `name?*#539`] -[visit_id name?*#539] -[visit_exp ?(`%`_name{`char*#1137`}(lift(id?{id <- `id?`})))*{`char*#1137` <- `char*#1137*`, `id?` <- `id?*`}] -[scope_enter char*#1137] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}] [scope_enter id?] -[visit_exp ?(`%`_name{`char*#1137`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1137`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1137`] -[visit_id char*#1137] not free +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -92876,47 +73449,37 @@ dims \ I = I', X*#13462, X*#13477, X*#13490, char*#1119, char*#1137, comptype#60 [visit_exp `id?`] [visit_id id?] not free [visit_id id?] no dims -[visit_id char*#1137] not free [visit_id id?] not free [visit_id id?] no dims [scope_exit id?] -[scope_exit char*#1137] -[visit_exp `char*#1137*`] -[visit_id char*#1137*] no dims -[visit_id char*#1137*] [visit_exp `id?*`] [visit_id id?*] not free [visit_id id?*] no dims -[visit_exp `name?*#540`] -[visit_id name?*#540] [visit_exp []] -[visit_exp `name?**#25`] -[visit_id name?**#25] [visit_exp []] -[visit_exp `deftype?*#14`] -[visit_id deftype?*#14] [visit_exp []] [visit_exp I'] [visit_id I'] not free [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = (I : I) [check_dims] I _ -[check_dims] I X*#13515 X*#13528 X*#13541 X*#13566 X*#13579 X*#13592 char*#1143 comptype#613 comptype#625 deftype?*#15 deftype?*#16 final?#613 final?#625 i i#96043 i#96053 id n#1527 n#1539 rectype#1831 rectype#1843 resulttype#3041 resulttype#3044 t_1 t_2 typeuse*#613 typeuse*#625 x -[visit_exp (t_1, ?(`%`_name{`char*#1143`}(lift(id?{id <- `id?`}))))*{`char*#1143` <- `char*#1143*`, `id?` <- `id?*`, t_1 <- `t_1*`}] -[scope_enter char*#1143] +[check_dims] I i id t_1 t_2 x +[visit_exp (t_1, ?(`%`_name(lift(id?{id <- `id?`}))))*{`id?` <- `id?*`, t_1 <- `t_1*`}] [scope_enter id?] [scope_enter t_1] -[visit_exp (t_1, ?(`%`_name{`char*#1143`}(lift(id?{id <- `id?`}))))] +[visit_exp (t_1, ?(`%`_name(lift(id?{id <- `id?`}))))] [visit_exp t_1] [visit_id t_1] not free -[visit_exp ?(`%`_name{`char*#1143`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1143`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1143`] -[visit_id char*#1143] not free +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -92928,16 +73491,11 @@ ps' = (I : I) [visit_exp `id?`] [visit_id id?] not free [visit_id id?] no dims -[visit_id char*#1143] not free [visit_id id?] not free [visit_id id?] no dims [visit_id t_1] not free [scope_exit t_1] [scope_exit id?] -[scope_exit char*#1143] -[visit_exp `char*#1143*`] -[visit_id char*#1143*] no dims -[visit_id char*#1143*] [visit_exp `id?*`] [visit_id id?*] no dims [visit_id id?*] @@ -92970,53 +73528,33 @@ ps' = (I : I) [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp (I.`TYPEDEFS`_I{`deftype?*#15`}[x!`%`_idx{i#96043}.0] = ?(`_DEF`_deftype{rectype#1831, n#1527}(`REC`_rectype(`%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))])), 0)))] -[visit_exp I.`TYPEDEFS`_I{`deftype?*#15`}[x!`%`_idx{i#96043}.0]] -[visit_exp I.`TYPEDEFS`_I{`deftype?*#15`}] +[visit_exp (I.`TYPEDEFS`_I[x!`%`_idx.0] = ?(`_DEF`_deftype(`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0)))] +[visit_exp I.`TYPEDEFS`_I[x!`%`_idx.0]] +[visit_exp I.`TYPEDEFS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `deftype?*#15`] -[visit_id deftype?*#15] -[visit_exp x!`%`_idx{i#96043}.0] -[visit_exp x!`%`_idx{i#96043}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#96043] -[visit_id i#96043] -[visit_exp ?(`_DEF`_deftype{rectype#1831, n#1527}(`REC`_rectype(`%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))])), 0))] -[visit_exp `_DEF`_deftype{rectype#1831, n#1527}(`REC`_rectype(`%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))])), 0)] -[visit_exp rectype#1831] -[visit_id rectype#1831] -[visit_exp n#1527] -[visit_id n#1527] -[visit_exp (`REC`_rectype(`%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))])), 0)] -[visit_exp `REC`_rectype(`%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))]))] -[visit_exp (`%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))]))] -[visit_exp `%`_list{`X*#13515`}([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))])] -[visit_exp `X*#13515`] -[visit_id X*#13515] -[visit_exp ([`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))])] -[visit_exp [`SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))]] -[visit_exp `SUB`_subtype{`final?#613`, `typeuse*#613`, comptype#613}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp `final?#613`] -[visit_id final?#613] -[visit_exp `typeuse*#613`] -[visit_id typeuse*#613] -[visit_exp comptype#613] -[visit_id comptype#613] -[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp ?(`_DEF`_deftype(`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0))] +[visit_exp `_DEF`_deftype(`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0)] +[visit_exp (`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0)] +[visit_exp `REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))]))] +[visit_exp (`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))]))] +[visit_exp `%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])] +[visit_exp ([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])] +[visit_exp [`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))]] +[visit_exp `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp ?(`FINAL`_final)] [visit_exp `FINAL`_final] [visit_exp ()] [visit_exp []] -[visit_exp `FUNC%->%`_comptype{resulttype#3041}(`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#3041] -[visit_id resulttype#3041] -[visit_exp (`%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#13528`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#13528`] -[visit_id X*#13528] +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -93027,9 +73565,7 @@ ps' = (I : I) [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `%`_resulttype{`X*#13541`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#13541`] -[visit_id X*#13541] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -93042,59 +73578,31 @@ ps' = (I : I) [visit_id t_2*] no dims [visit_exp 0] [scope_enter i] -[scope_enter X*#13566] -[scope_enter X*#13579] -[scope_enter X*#13592] -[scope_enter comptype#625] -[scope_enter deftype?*#16] -[scope_enter final?#625] -[scope_enter n#1539] -[scope_enter rectype#1843] -[scope_enter resulttype#3044] -[scope_enter typeuse*#625] -[visit_exp (I.`TYPEDEFS`_I{`deftype?*#16`}[i] =/= ?(`_DEF`_deftype{rectype#1843, n#1539}(`REC`_rectype(`%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))])), 0)))] -[visit_exp I.`TYPEDEFS`_I{`deftype?*#16`}[i]] -[visit_exp I.`TYPEDEFS`_I{`deftype?*#16`}] +[visit_exp (I.`TYPEDEFS`_I[i] =/= ?(`_DEF`_deftype(`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0)))] +[visit_exp I.`TYPEDEFS`_I[i]] +[visit_exp I.`TYPEDEFS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `deftype?*#16`] -[visit_id deftype?*#16] not free [visit_exp i] [visit_id i] -[visit_exp ?(`_DEF`_deftype{rectype#1843, n#1539}(`REC`_rectype(`%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))])), 0))] -[visit_exp `_DEF`_deftype{rectype#1843, n#1539}(`REC`_rectype(`%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))])), 0)] -[visit_exp rectype#1843] -[visit_id rectype#1843] not free -[visit_exp n#1539] -[visit_id n#1539] not free -[visit_exp (`REC`_rectype(`%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))])), 0)] -[visit_exp `REC`_rectype(`%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))]))] -[visit_exp (`%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))]))] -[visit_exp `%`_list{`X*#13566`}([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))])] -[visit_exp `X*#13566`] -[visit_id X*#13566] not free -[visit_exp ([`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))])] -[visit_exp [`SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))]] -[visit_exp `SUB`_subtype{`final?#625`, `typeuse*#625`, comptype#625}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp `final?#625`] -[visit_id final?#625] not free -[visit_exp `typeuse*#625`] -[visit_id typeuse*#625] not free -[visit_exp comptype#625] -[visit_id comptype#625] not free -[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp ?(`_DEF`_deftype(`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0))] +[visit_exp `_DEF`_deftype(`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0)] +[visit_exp (`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0)] +[visit_exp `REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))]))] +[visit_exp (`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))]))] +[visit_exp `%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])] +[visit_exp ([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])] +[visit_exp [`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))]] +[visit_exp `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp ?(`FINAL`_final)] [visit_exp `FINAL`_final] [visit_exp ()] [visit_exp []] -[visit_exp `FUNC%->%`_comptype{resulttype#3044}(`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#3044] -[visit_id resulttype#3044] not free -[visit_exp (`%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#13579`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#13579`] -[visit_id X*#13579] not free +[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -93105,9 +73613,7 @@ ps' = (I : I) [visit_exp `t_1*`] [visit_id t_1*] not free [visit_id t_1*] no dims -[visit_exp `%`_resulttype{`X*#13592`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#13592`] -[visit_id X*#13592] not free +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -93120,262 +73626,136 @@ ps' = (I : I) [visit_id t_2*] no dims [visit_exp 0] [visit_id i] not free -[visit_id X*#13566] not free -[visit_id X*#13579] not free -[visit_id X*#13592] not free -[visit_id comptype#625] not free -[visit_id deftype?*#16] not free -[visit_id final?#625] not free -[visit_id n#1539] not free -[visit_id rectype#1843] not free -[visit_id resulttype#3044] not free -[visit_id typeuse*#625] not free -[scope_exit typeuse*#625] -[scope_exit resulttype#3044] -[scope_exit rectype#1843] -[scope_exit n#1539] -[scope_exit final?#625] -[scope_exit deftype?*#16] -[scope_exit comptype#625] -[scope_exit X*#13592] -[scope_exit X*#13579] -[scope_exit X*#13566] [scope_exit i] -[visit_exp x!`%`_idx{i#96053}.0] -[visit_exp x!`%`_idx{i#96053}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#96053] -[visit_id i#96053] -[visit_exp `X*#13566*`] -[visit_id X*#13566*] no dims -[visit_id X*#13566*] -[visit_exp `X*#13579*`] -[visit_id X*#13579*] no dims -[visit_id X*#13579*] -[visit_exp `X*#13592*`] -[visit_id X*#13592*] no dims -[visit_id X*#13592*] -[visit_exp `comptype#625*`] -[visit_id comptype#625*] no dims -[visit_id comptype#625*] -[visit_exp `deftype?*#16*`] -[visit_id deftype?*#16*] no dims -[visit_id deftype?*#16*] -[visit_exp `final?#625*`] -[visit_id final?#625*] no dims -[visit_id final?#625*] -[visit_exp `n#1539*`] -[visit_id n#1539*] no dims -[visit_id n#1539*] -[visit_exp `rectype#1843*`] -[visit_id rectype#1843*] no dims -[visit_id rectype#1843*] -[visit_exp `resulttype#3044*`] -[visit_id resulttype#3044*] no dims -[visit_id resulttype#3044*] -[visit_exp `typeuse*#625*`] -[visit_id typeuse*#625*] no dims -[visit_id typeuse*#625*] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = (I : I) [check_dims] I _ -[check_dims] I deftype?*#17 name?*#541 name?*#542 name?*#543 name?*#544 name?*#545 name?*#546 name?*#547 name?*#548 name?*#549 name?*#550 name?**#26 -dims \ I = deftype?*#17, name?*#541, name?*#542, name?*#543, name?*#544, name?*#545, name?*#546, name?*#547, name?*#548, name?*#549, name?*#550, name?**#26 -[visit_exp (?(), {`TYPES`{`name?*#541`} [], `TAGS`{`name?*#542`} [], `GLOBALS`{`name?*#543`} [], `MEMS`{`name?*#544`} [], `TABLES`{`name?*#545`} [], `FUNCS`{`name?*#546`} [], `DATAS`{`name?*#547`} [], `ELEMS`{`name?*#548`} [], `LOCALS`{`name?*#549`} [], `LABELS`{`name?*#550`} [], `FIELDS`{`name?**#26`} [], `TYPEDEFS`{`deftype?*#17`} []} +++ I)] +[check_dims] I +dims \ I = +[visit_exp (?(), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []} +++ I)] [visit_exp ?()] -[visit_exp {`TYPES`{`name?*#541`} [], `TAGS`{`name?*#542`} [], `GLOBALS`{`name?*#543`} [], `MEMS`{`name?*#544`} [], `TABLES`{`name?*#545`} [], `FUNCS`{`name?*#546`} [], `DATAS`{`name?*#547`} [], `ELEMS`{`name?*#548`} [], `LOCALS`{`name?*#549`} [], `LABELS`{`name?*#550`} [], `FIELDS`{`name?**#26`} [], `TYPEDEFS`{`deftype?*#17`} []} +++ I] -[visit_exp {`TYPES`{`name?*#541`} [], `TAGS`{`name?*#542`} [], `GLOBALS`{`name?*#543`} [], `MEMS`{`name?*#544`} [], `TABLES`{`name?*#545`} [], `FUNCS`{`name?*#546`} [], `DATAS`{`name?*#547`} [], `ELEMS`{`name?*#548`} [], `LOCALS`{`name?*#549`} [], `LABELS`{`name?*#550`} [], `FIELDS`{`name?**#26`} [], `TYPEDEFS`{`deftype?*#17`} []}] -[visit_exp `name?*#541`] -[visit_id name?*#541] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []} +++ I] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] [visit_exp []] -[visit_exp `name?*#542`] -[visit_id name?*#542] [visit_exp []] -[visit_exp `name?*#543`] -[visit_id name?*#543] [visit_exp []] -[visit_exp `name?*#544`] -[visit_id name?*#544] [visit_exp []] -[visit_exp `name?*#545`] -[visit_id name?*#545] [visit_exp []] -[visit_exp `name?*#546`] -[visit_id name?*#546] [visit_exp []] -[visit_exp `name?*#547`] -[visit_id name?*#547] [visit_exp []] -[visit_exp `name?*#548`] -[visit_id name?*#548] [visit_exp []] -[visit_exp `name?*#549`] -[visit_id name?*#549] [visit_exp []] -[visit_exp `name?*#550`] -[visit_id name?*#550] [visit_exp []] -[visit_exp `name?**#26`] -[visit_id name?**#26] [visit_exp []] -[visit_exp `deftype?*#17`] -[visit_id deftype?*#17] [visit_exp []] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I deftype?*#18 id name?*#551 name?*#552 name?*#553 name?*#554 name?*#555 name?*#556 name?*#557 name?*#558 name?*#559 name?*#560 name?*#566 name?**#27 -dims \ I = deftype?*#18, id, name?*#551, name?*#552, name?*#553, name?*#554, name?*#555, name?*#556, name?*#557, name?*#558, name?*#559, name?*#560, name?*#566, name?**#27 -[visit_exp (?(id), {`TYPES`{`name?*#551`} [], `TAGS`{`name?*#552`} [], `GLOBALS`{`name?*#553`} [], `MEMS`{`name?*#554`} [], `TABLES`{`name?*#555`} [], `FUNCS`{`name?*#556`} [], `DATAS`{`name?*#557`} [], `ELEMS`{`name?*#558`} [], `LOCALS`{`name?*#559`} [], `LABELS`{`name?*#560`} [?(id)], `FIELDS`{`name?**#27`} [], `TYPEDEFS`{`deftype?*#18`} []} +++ I)] +[check_dims] I id +dims \ I = id +[visit_exp (?(id), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []} +++ I)] [visit_exp ?(id)] [visit_exp id] [visit_id id] -[visit_exp {`TYPES`{`name?*#551`} [], `TAGS`{`name?*#552`} [], `GLOBALS`{`name?*#553`} [], `MEMS`{`name?*#554`} [], `TABLES`{`name?*#555`} [], `FUNCS`{`name?*#556`} [], `DATAS`{`name?*#557`} [], `ELEMS`{`name?*#558`} [], `LOCALS`{`name?*#559`} [], `LABELS`{`name?*#560`} [?(id)], `FIELDS`{`name?**#27`} [], `TYPEDEFS`{`deftype?*#18`} []} +++ I] -[visit_exp {`TYPES`{`name?*#551`} [], `TAGS`{`name?*#552`} [], `GLOBALS`{`name?*#553`} [], `MEMS`{`name?*#554`} [], `TABLES`{`name?*#555`} [], `FUNCS`{`name?*#556`} [], `DATAS`{`name?*#557`} [], `ELEMS`{`name?*#558`} [], `LOCALS`{`name?*#559`} [], `LABELS`{`name?*#560`} [?(id)], `FIELDS`{`name?**#27`} [], `TYPEDEFS`{`deftype?*#18`} []}] -[visit_exp `name?*#551`] -[visit_id name?*#551] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []} +++ I] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []}] [visit_exp []] -[visit_exp `name?*#552`] -[visit_id name?*#552] [visit_exp []] -[visit_exp `name?*#553`] -[visit_id name?*#553] [visit_exp []] -[visit_exp `name?*#554`] -[visit_id name?*#554] [visit_exp []] -[visit_exp `name?*#555`] -[visit_id name?*#555] [visit_exp []] -[visit_exp `name?*#556`] -[visit_id name?*#556] [visit_exp []] -[visit_exp `name?*#557`] -[visit_id name?*#557] [visit_exp []] -[visit_exp `name?*#558`] -[visit_id name?*#558] [visit_exp []] -[visit_exp `name?*#559`] -[visit_id name?*#559] [visit_exp []] -[visit_exp `name?*#560`] -[visit_id name?*#560] [visit_exp [?(id)]] [visit_exp ?(id)] [visit_exp id] [visit_id id] not free -[visit_exp `name?**#27`] -[visit_id name?**#27] [visit_exp []] -[visit_exp `deftype?*#18`] -[visit_id deftype?*#18] [visit_exp []] [visit_exp I] [visit_id I] not free [visit_id I] no dims [visit_exp id] [visit_id id] not free -[visit_exp ~ (?(id) <- I.`LABELS`_I{`name?*#566`})] -[visit_exp (?(id) <- I.`LABELS`_I{`name?*#566`})] +[visit_exp ~ (?(id) <- I.`LABELS`_I)] +[visit_exp (?(id) <- I.`LABELS`_I)] [visit_exp ?(id)] [visit_exp id] [visit_id id] not free -[visit_exp I.`LABELS`_I{`name?*#566`}] +[visit_exp I.`LABELS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#566`] -[visit_id name?*#566] -[check_dims] I deftype?*#19 i#96077 i#96087 id name?*#567 name?*#568 name?*#569 name?*#570 name?*#571 name?*#572 name?*#573 name?*#574 name?*#575 name?*#576 name?*#577 name?*#578 name?**#28 x -dims \ I = deftype?*#19, i#96077, i#96087, id, name?*#567, name?*#568, name?*#569, name?*#570, name?*#571, name?*#572, name?*#573, name?*#574, name?*#575, name?*#576, name?*#577, name?*#578, name?**#28, x -[visit_exp (?(id), {`TYPES`{`name?*#567`} [], `TAGS`{`name?*#568`} [], `GLOBALS`{`name?*#569`} [], `MEMS`{`name?*#570`} [], `TABLES`{`name?*#571`} [], `FUNCS`{`name?*#572`} [], `DATAS`{`name?*#573`} [], `ELEMS`{`name?*#574`} [], `LOCALS`{`name?*#575`} [], `LABELS`{`name?*#576`} [?(id)], `FIELDS`{`name?**#28`} [], `TYPEDEFS`{`deftype?*#19`} []} +++ I[`LABELS`_I{`name?*#577`}[x!`%`_idx{i#96077}.0] = ?()])] +[check_dims] I id x +dims \ I = id, x +[visit_exp (?(id), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []} +++ I[`LABELS`_I[x!`%`_idx.0] = ?()])] [visit_exp ?(id)] [visit_exp id] [visit_id id] -[visit_exp {`TYPES`{`name?*#567`} [], `TAGS`{`name?*#568`} [], `GLOBALS`{`name?*#569`} [], `MEMS`{`name?*#570`} [], `TABLES`{`name?*#571`} [], `FUNCS`{`name?*#572`} [], `DATAS`{`name?*#573`} [], `ELEMS`{`name?*#574`} [], `LOCALS`{`name?*#575`} [], `LABELS`{`name?*#576`} [?(id)], `FIELDS`{`name?**#28`} [], `TYPEDEFS`{`deftype?*#19`} []} +++ I[`LABELS`_I{`name?*#577`}[x!`%`_idx{i#96077}.0] = ?()]] -[visit_exp {`TYPES`{`name?*#567`} [], `TAGS`{`name?*#568`} [], `GLOBALS`{`name?*#569`} [], `MEMS`{`name?*#570`} [], `TABLES`{`name?*#571`} [], `FUNCS`{`name?*#572`} [], `DATAS`{`name?*#573`} [], `ELEMS`{`name?*#574`} [], `LOCALS`{`name?*#575`} [], `LABELS`{`name?*#576`} [?(id)], `FIELDS`{`name?**#28`} [], `TYPEDEFS`{`deftype?*#19`} []}] -[visit_exp `name?*#567`] -[visit_id name?*#567] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []} +++ I[`LABELS`_I[x!`%`_idx.0] = ?()]] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []}] [visit_exp []] -[visit_exp `name?*#568`] -[visit_id name?*#568] [visit_exp []] -[visit_exp `name?*#569`] -[visit_id name?*#569] [visit_exp []] -[visit_exp `name?*#570`] -[visit_id name?*#570] [visit_exp []] -[visit_exp `name?*#571`] -[visit_id name?*#571] [visit_exp []] -[visit_exp `name?*#572`] -[visit_id name?*#572] [visit_exp []] -[visit_exp `name?*#573`] -[visit_id name?*#573] [visit_exp []] -[visit_exp `name?*#574`] -[visit_id name?*#574] [visit_exp []] -[visit_exp `name?*#575`] -[visit_id name?*#575] [visit_exp []] -[visit_exp `name?*#576`] -[visit_id name?*#576] [visit_exp [?(id)]] [visit_exp ?(id)] [visit_exp id] [visit_id id] not free -[visit_exp `name?**#28`] -[visit_id name?**#28] [visit_exp []] -[visit_exp `deftype?*#19`] -[visit_id deftype?*#19] [visit_exp []] -[visit_exp I[`LABELS`_I{`name?*#577`}[x!`%`_idx{i#96077}.0] = ?()]] +[visit_exp I[`LABELS`_I[x!`%`_idx.0] = ?()]] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#577`] -[visit_id name?*#577] -[visit_exp x!`%`_idx{i#96077}.0] -[visit_exp x!`%`_idx{i#96077}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] -[visit_exp i#96077] -[visit_id i#96077] [visit_exp ?()] [visit_exp id] [visit_id id] not free -[visit_exp (?(id) = I.`LABELS`_I{`name?*#578`}[x!`%`_idx{i#96087}.0])] +[visit_exp (?(id) = I.`LABELS`_I[x!`%`_idx.0])] [visit_exp ?(id)] [visit_exp id] [visit_id id] not free -[visit_exp I.`LABELS`_I{`name?*#578`}[x!`%`_idx{i#96087}.0]] -[visit_exp I.`LABELS`_I{`name?*#578`}] +[visit_exp I.`LABELS`_I[x!`%`_idx.0]] +[visit_exp I.`LABELS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#578`] -[visit_id name?*#578] -[visit_exp x!`%`_idx{i#96087}.0] -[visit_exp x!`%`_idx{i#96087}] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] [visit_exp x] [visit_id x] not free -[visit_exp i#96087] -[visit_id i#96087] [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = (I : I) [check_dims] I [check_dims] I in @@ -93633,11 +74013,9 @@ dims \ I = dims \ I = [visit_exp `DROP`_instr] [visit_exp ()] -[check_dims] I t valtype*?#15 -dims \ I = t, valtype*?#15 -[visit_exp `SELECT`_instr{`valtype*?#15`}(t*{t <- `t*`}?{`t*` <- `t*?`})] -[visit_exp `valtype*?#15`] -[visit_id valtype*?#15] +[check_dims] I t +dims \ I = t +[visit_exp `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})] [visit_exp (t*{t <- `t*`}?{`t*` <- `t*?`})] [visit_exp t*{t <- `t*`}?{`t*` <- `t*?`}] [scope_enter t*] @@ -93678,11 +74056,9 @@ dims \ I = t, valtype*?#15 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I t valtype?#11 -dims \ I = t, valtype?#11 -[visit_exp `_RESULT`_blocktype{`valtype?#11`}(t?{t <- `t?`})] -[visit_exp `valtype?#11`] -[visit_id valtype?#11] +[check_dims] I t +dims \ I = t +[visit_exp `_RESULT`_blocktype(t?{t <- `t?`})] [visit_exp (t?{t <- `t?`})] [visit_exp t?{t <- `t?`}] [scope_enter t] @@ -93705,11 +74081,9 @@ dims \ I = t, valtype?#11 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I I' char*#1231 deftype?*#20 name?*#579 name?*#580 name?*#581 name?*#582 name?*#583 name?*#584 name?*#585 name?*#586 name?*#587 name?*#588 name?**#29 typeidx#2127 x -dims \ I = I', char*#1231, deftype?*#20, name?*#579, name?*#580, name?*#581, name?*#582, name?*#583, name?*#584, name?*#585, name?*#586, name?*#587, name?*#588, name?**#29, typeidx#2127, x -[visit_exp `_IDX`_blocktype{typeidx#2127}(x)] -[visit_exp typeidx#2127] -[visit_id typeidx#2127] +[check_dims] I I' x +dims \ I = I', x +[visit_exp `_IDX`_blocktype(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -93721,68 +74095,32 @@ dims \ I = I', char*#1231, deftype?*#20, name?*#579, name?*#580, name?*#581, nam [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp (I' = {`TYPES`{`name?*#579`} [], `TAGS`{`name?*#580`} [], `GLOBALS`{`name?*#581`} [], `MEMS`{`name?*#582`} [], `TABLES`{`name?*#583`} [], `FUNCS`{`name?*#584`} [], `DATAS`{`name?*#585`} [], `ELEMS`{`name?*#586`} [], `LOCALS`{`name?*#587`} ?(`%`_name{`char*#1231`}([]))*{`char*#1231` <- `char*#1231*`}, `LABELS`{`name?*#588`} [], `FIELDS`{`name?**#29`} [], `TYPEDEFS`{`deftype?*#20`} []})] +[visit_exp (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] [visit_exp I'] [visit_id I'] not free -[visit_exp {`TYPES`{`name?*#579`} [], `TAGS`{`name?*#580`} [], `GLOBALS`{`name?*#581`} [], `MEMS`{`name?*#582`} [], `TABLES`{`name?*#583`} [], `FUNCS`{`name?*#584`} [], `DATAS`{`name?*#585`} [], `ELEMS`{`name?*#586`} [], `LOCALS`{`name?*#587`} ?(`%`_name{`char*#1231`}([]))*{`char*#1231` <- `char*#1231*`}, `LABELS`{`name?*#588`} [], `FIELDS`{`name?**#29`} [], `TYPEDEFS`{`deftype?*#20`} []}] -[visit_exp `name?*#579`] -[visit_id name?*#579] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] [visit_exp []] -[visit_exp `name?*#580`] -[visit_id name?*#580] [visit_exp []] -[visit_exp `name?*#581`] -[visit_id name?*#581] [visit_exp []] -[visit_exp `name?*#582`] -[visit_id name?*#582] [visit_exp []] -[visit_exp `name?*#583`] -[visit_id name?*#583] [visit_exp []] -[visit_exp `name?*#584`] -[visit_id name?*#584] [visit_exp []] -[visit_exp `name?*#585`] -[visit_id name?*#585] [visit_exp []] -[visit_exp `name?*#586`] -[visit_id name?*#586] [visit_exp []] -[visit_exp `name?*#587`] -[visit_id name?*#587] -[visit_exp ?(`%`_name{`char*#1231`}([]))*{`char*#1231` <- `char*#1231*`}] -[scope_enter char*#1231] -[visit_exp ?(`%`_name{`char*#1231`}([]))] -[visit_exp `%`_name{`char*#1231`}([])] -[visit_exp `char*#1231`] -[visit_id char*#1231] not free +[visit_exp ?(`%`_name([]))*{}] +[visit_exp ?(`%`_name([]))] +[visit_exp `%`_name([])] [visit_exp ([])] [visit_exp []] -[visit_id char*#1231] not free -[scope_exit char*#1231] -[visit_exp `char*#1231*`] -[visit_id char*#1231*] no dims -[visit_id char*#1231*] -[visit_exp `name?*#588`] -[visit_id name?*#588] [visit_exp []] -[visit_exp `name?**#29`] -[visit_id name?**#29] [visit_exp []] -[visit_exp `deftype?*#20`] -[visit_id deftype?*#20] [visit_exp []] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I I' blocktype#41 bt char*#1237 char*#1243 id id' in instr*#2360 -dims \ I = I', blocktype#41, bt, char*#1237, char*#1243, id, id', in, instr*#2360 -[visit_exp `BLOCK`_instr{blocktype#41, `instr*#2360`}(bt, in*{in <- `in*`})] -[visit_exp blocktype#41] -[visit_id blocktype#41] -[visit_exp `instr*#2360`] -[visit_id instr*#2360] +[check_dims] I I' bt id id' in +dims \ I = I', bt, id, id', in +[visit_exp `BLOCK`_instr(bt, in*{in <- `in*`})] [visit_exp (bt, in*{in <- `in*`})] [visit_exp bt] [visit_id bt] @@ -93795,11 +74133,9 @@ dims \ I = I', blocktype#41, bt, char*#1237, char*#1243, id, id', in, instr*#236 [visit_exp `in*`] [visit_id in*] no dims [visit_id in*] -[visit_exp (?(`%`_name{`char*#1237`}(lift(id?{id <- `id?`}))), I')] -[visit_exp ?(`%`_name{`char*#1237`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1237`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1237`] -[visit_id char*#1237] +[visit_exp (?(`%`_name(lift(id?{id <- `id?`}))), I')] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -93832,10 +74168,8 @@ dims \ I = I', blocktype#41, bt, char*#1237, char*#1243, id, id', in, instr*#236 [visit_id in*] no dims [visit_exp I'] [visit_id I'] not free -[visit_exp ?(`%`_name{`char*#1243`}(lift(id'?{id' <- `id'?`})))] -[visit_exp `%`_name{`char*#1243`}(lift(id'?{id' <- `id'?`}))] -[visit_exp `char*#1243`] -[visit_id char*#1243] +[visit_exp ?(`%`_name(lift(id'?{id' <- `id'?`})))] +[visit_exp `%`_name(lift(id'?{id' <- `id'?`}))] [visit_exp (lift(id'?{id' <- `id'?`}))] [visit_exp lift(id'?{id' <- `id'?`})] [visit_exp id'?{id' <- `id'?`}] @@ -93878,13 +74212,9 @@ dims \ I = I', blocktype#41, bt, char*#1237, char*#1243, id, id', in, instr*#236 [visit_exp `id?`] [visit_id id?] not free [visit_id id?] no dims -[check_dims] I I' blocktype#43 bt char*#1249 char*#1255 id id' in instr*#2362 -dims \ I = I', blocktype#43, bt, char*#1249, char*#1255, id, id', in, instr*#2362 -[visit_exp `LOOP`_instr{blocktype#43, `instr*#2362`}(bt, in*{in <- `in*`})] -[visit_exp blocktype#43] -[visit_id blocktype#43] -[visit_exp `instr*#2362`] -[visit_id instr*#2362] +[check_dims] I I' bt id id' in +dims \ I = I', bt, id, id', in +[visit_exp `LOOP`_instr(bt, in*{in <- `in*`})] [visit_exp (bt, in*{in <- `in*`})] [visit_exp bt] [visit_id bt] @@ -93897,11 +74227,9 @@ dims \ I = I', blocktype#43, bt, char*#1249, char*#1255, id, id', in, instr*#236 [visit_exp `in*`] [visit_id in*] no dims [visit_id in*] -[visit_exp (?(`%`_name{`char*#1249`}(lift(id?{id <- `id?`}))), I')] -[visit_exp ?(`%`_name{`char*#1249`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1249`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1249`] -[visit_id char*#1249] +[visit_exp (?(`%`_name(lift(id?{id <- `id?`}))), I')] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -93934,10 +74262,8 @@ dims \ I = I', blocktype#43, bt, char*#1249, char*#1255, id, id', in, instr*#236 [visit_id in*] no dims [visit_exp I'] [visit_id I'] not free -[visit_exp ?(`%`_name{`char*#1255`}(lift(id'?{id' <- `id'?`})))] -[visit_exp `%`_name{`char*#1255`}(lift(id'?{id' <- `id'?`}))] -[visit_exp `char*#1255`] -[visit_id char*#1255] +[visit_exp ?(`%`_name(lift(id'?{id' <- `id'?`})))] +[visit_exp `%`_name(lift(id'?{id' <- `id'?`}))] [visit_exp (lift(id'?{id' <- `id'?`}))] [visit_exp lift(id'?{id' <- `id'?`})] [visit_exp id'?{id' <- `id'?`}] @@ -93980,13 +74306,9 @@ dims \ I = I', blocktype#43, bt, char*#1249, char*#1255, id, id', in, instr*#236 [visit_exp `id?`] [visit_id id?] not free [visit_id id?] no dims -[check_dims] I I' blocktype#45 bt char*#1261 char*#1267 char*#1273 id id_1 id_2 in_1 in_2 instr*#2364 -dims \ I = I', blocktype#45, bt, char*#1261, char*#1267, char*#1273, id, id_1, id_2, in_1, in_2, instr*#2364 -[visit_exp `IF%%ELSE%`_instr{blocktype#45, `instr*#2364`}(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] -[visit_exp blocktype#45] -[visit_id blocktype#45] -[visit_exp `instr*#2364`] -[visit_id instr*#2364] +[check_dims] I I' bt id id_1 id_2 in_1 in_2 +dims \ I = I', bt, id, id_1, id_2, in_1, in_2 +[visit_exp `IF%%ELSE%`_instr(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] [visit_exp (bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] [visit_exp bt] [visit_id bt] @@ -94008,11 +74330,9 @@ dims \ I = I', blocktype#45, bt, char*#1261, char*#1267, char*#1273, id, id_1, i [visit_exp `in_2*`] [visit_id in_2*] no dims [visit_id in_2*] -[visit_exp (?(`%`_name{`char*#1261`}(lift(id?{id <- `id?`}))), I')] -[visit_exp ?(`%`_name{`char*#1261`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1261`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1261`] -[visit_id char*#1261] +[visit_exp (?(`%`_name(lift(id?{id <- `id?`}))), I')] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -94045,10 +74365,8 @@ dims \ I = I', blocktype#45, bt, char*#1261, char*#1267, char*#1273, id, id_1, i [visit_id in_1*] no dims [visit_exp I'] [visit_id I'] not free -[visit_exp ?(`%`_name{`char*#1267`}(lift(id_1?{id_1 <- `id_1?`})))] -[visit_exp `%`_name{`char*#1267`}(lift(id_1?{id_1 <- `id_1?`}))] -[visit_exp `char*#1267`] -[visit_id char*#1267] +[visit_exp ?(`%`_name(lift(id_1?{id_1 <- `id_1?`})))] +[visit_exp `%`_name(lift(id_1?{id_1 <- `id_1?`}))] [visit_exp (lift(id_1?{id_1 <- `id_1?`}))] [visit_exp lift(id_1?{id_1 <- `id_1?`})] [visit_exp id_1?{id_1 <- `id_1?`}] @@ -94071,10 +74389,8 @@ dims \ I = I', blocktype#45, bt, char*#1261, char*#1267, char*#1273, id, id_1, i [visit_id in_2*] no dims [visit_exp I'] [visit_id I'] not free -[visit_exp ?(`%`_name{`char*#1273`}(lift(id_2?{id_2 <- `id_2?`})))] -[visit_exp `%`_name{`char*#1273`}(lift(id_2?{id_2 <- `id_2?`}))] -[visit_exp `char*#1273`] -[visit_id char*#1273] +[visit_exp ?(`%`_name(lift(id_2?{id_2 <- `id_2?`})))] +[visit_exp `%`_name(lift(id_2?{id_2 <- `id_2?`}))] [visit_exp (lift(id_2?{id_2 <- `id_2?`}))] [visit_exp lift(id_2?{id_2 <- `id_2?`})] [visit_exp id_2?{id_2 <- `id_2?`}] @@ -94149,19 +74465,13 @@ dims \ I = I', blocktype#45, bt, char*#1261, char*#1267, char*#1273, id, id_1, i [visit_exp `id?`] [visit_id id?] not free [visit_id id?] no dims -[check_dims] I I' X*#13607 blocktype#47 bt c char*#1279 char*#1285 id id' in instr*#2367 -dims \ I = I', X*#13607, blocktype#47, bt, c, char*#1279, char*#1285, id, id', in, instr*#2367 -[visit_exp `TRY_TABLE`_instr{blocktype#47, `instr*#2367`}(bt, `%`_list{`X*#13607`}(c*{c <- `c*`}), in*{in <- `in*`})] -[visit_exp blocktype#47] -[visit_id blocktype#47] -[visit_exp `instr*#2367`] -[visit_id instr*#2367] -[visit_exp (bt, `%`_list{`X*#13607`}(c*{c <- `c*`}), in*{in <- `in*`})] +[check_dims] I I' bt c id id' in +dims \ I = I', bt, c, id, id', in +[visit_exp `TRY_TABLE`_instr(bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`})] +[visit_exp (bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`})] [visit_exp bt] [visit_id bt] -[visit_exp `%`_list{`X*#13607`}(c*{c <- `c*`})] -[visit_exp `X*#13607`] -[visit_id X*#13607] +[visit_exp `%`_list(c*{c <- `c*`})] [visit_exp (c*{c <- `c*`})] [visit_exp c*{c <- `c*`}] [scope_enter c] @@ -94181,11 +74491,9 @@ dims \ I = I', X*#13607, blocktype#47, bt, c, char*#1279, char*#1285, id, id', i [visit_exp `in*`] [visit_id in*] no dims [visit_id in*] -[visit_exp (?(`%`_name{`char*#1279`}(lift(id?{id <- `id?`}))), I')] -[visit_exp ?(`%`_name{`char*#1279`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1279`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1279`] -[visit_id char*#1279] +[visit_exp (?(`%`_name(lift(id?{id <- `id?`}))), I')] +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -94230,10 +74538,8 @@ dims \ I = I', X*#13607, blocktype#47, bt, c, char*#1279, char*#1285, id, id', i [visit_id in*] no dims [visit_exp I'] [visit_id I'] not free -[visit_exp ?(`%`_name{`char*#1285`}(lift(id'?{id' <- `id'?`})))] -[visit_exp `%`_name{`char*#1285`}(lift(id'?{id' <- `id'?`}))] -[visit_exp `char*#1285`] -[visit_id char*#1285] +[visit_exp ?(`%`_name(lift(id'?{id' <- `id'?`})))] +[visit_exp `%`_name(lift(id'?{id' <- `id'?`}))] [visit_exp (lift(id'?{id' <- `id'?`}))] [visit_exp lift(id'?{id' <- `id'?`})] [visit_exp id'?{id' <- `id'?`}] @@ -94301,13 +74607,9 @@ ps' = (I : I) [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I l labelidx#123 tagidx#29 x -dims \ I = l, labelidx#123, tagidx#29, x -[visit_exp `CATCH`_catch{tagidx#29, labelidx#123}(x, l)] -[visit_exp tagidx#29] -[visit_id tagidx#29] -[visit_exp labelidx#123] -[visit_id labelidx#123] +[check_dims] I l x +dims \ I = l, x +[visit_exp `CATCH`_catch(x, l)] [visit_exp (x, l)] [visit_exp x] [visit_id x] @@ -94323,13 +74625,9 @@ dims \ I = l, labelidx#123, tagidx#29, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I l labelidx#125 tagidx#31 x -dims \ I = l, labelidx#125, tagidx#31, x -[visit_exp `CATCH_REF`_catch{tagidx#31, labelidx#125}(x, l)] -[visit_exp tagidx#31] -[visit_id tagidx#31] -[visit_exp labelidx#125] -[visit_id labelidx#125] +[check_dims] I l x +dims \ I = l, x +[visit_exp `CATCH_REF`_catch(x, l)] [visit_exp (x, l)] [visit_exp x] [visit_id x] @@ -94345,11 +74643,9 @@ dims \ I = l, labelidx#125, tagidx#31, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I l labelidx#127 -dims \ I = l, labelidx#127 -[visit_exp `CATCH_ALL`_catch{labelidx#127}(l)] -[visit_exp labelidx#127] -[visit_id labelidx#127] +[check_dims] I l +dims \ I = l +[visit_exp `CATCH_ALL`_catch(l)] [visit_exp (l)] [visit_exp l] [visit_id l] @@ -94358,11 +74654,9 @@ dims \ I = l, labelidx#127 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I l labelidx#129 -dims \ I = l, labelidx#129 -[visit_exp `CATCH_ALL_REF`_catch{labelidx#129}(l)] -[visit_exp labelidx#129] -[visit_id labelidx#129] +[check_dims] I l +dims \ I = l +[visit_exp `CATCH_ALL_REF`_catch(l)] [visit_exp (l)] [visit_exp l] [visit_id l] @@ -94374,11 +74668,9 @@ dims \ I = l, labelidx#129 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I l labelidx#131 -dims \ I = l, labelidx#131 -[visit_exp `BR`_instr{labelidx#131}(l)] -[visit_exp labelidx#131] -[visit_id labelidx#131] +[check_dims] I l +dims \ I = l +[visit_exp `BR`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] @@ -94387,11 +74679,9 @@ dims \ I = l, labelidx#131 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I l labelidx#133 -dims \ I = l, labelidx#133 -[visit_exp `BR_IF`_instr{labelidx#133}(l)] -[visit_exp labelidx#133] -[visit_id labelidx#133] +[check_dims] I l +dims \ I = l +[visit_exp `BR_IF`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] @@ -94400,13 +74690,9 @@ dims \ I = l, labelidx#133 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I l l' labelidx#135 labelidx*#56 -dims \ I = l, l', labelidx#135, labelidx*#56 -[visit_exp `BR_TABLE`_instr{`labelidx*#56`, labelidx#135}(l*{l <- `l*`}, l')] -[visit_exp `labelidx*#56`] -[visit_id labelidx*#56] -[visit_exp labelidx#135] -[visit_id labelidx#135] +[check_dims] I l l' +dims \ I = l, l' +[visit_exp `BR_TABLE`_instr(l*{l <- `l*`}, l')] [visit_exp (l*{l <- `l*`}, l')] [visit_exp l*{l <- `l*`}] [scope_enter l] @@ -94436,11 +74722,9 @@ dims \ I = l, l', labelidx#135, labelidx*#56 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I l labelidx#137 -dims \ I = l, labelidx#137 -[visit_exp `BR_ON_NULL`_instr{labelidx#137}(l)] -[visit_exp labelidx#137] -[visit_id labelidx#137] +[check_dims] I l +dims \ I = l +[visit_exp `BR_ON_NULL`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] @@ -94449,11 +74733,9 @@ dims \ I = l, labelidx#137 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I l labelidx#139 -dims \ I = l, labelidx#139 -[visit_exp `BR_ON_NON_NULL`_instr{labelidx#139}(l)] -[visit_exp labelidx#139] -[visit_id labelidx#139] +[check_dims] I l +dims \ I = l +[visit_exp `BR_ON_NON_NULL`_instr(l)] [visit_exp (l)] [visit_exp l] [visit_id l] @@ -94462,13 +74744,9 @@ dims \ I = l, labelidx#139 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I l labelidx#141 reftype#4305 rt_1 rt_2 -dims \ I = l, labelidx#141, reftype#4305, rt_1, rt_2 -[visit_exp `BR_ON_CAST`_instr{labelidx#141, reftype#4305}(l, rt_1, rt_2)] -[visit_exp labelidx#141] -[visit_id labelidx#141] -[visit_exp reftype#4305] -[visit_id reftype#4305] +[check_dims] I l rt_1 rt_2 +dims \ I = l, rt_1, rt_2 +[visit_exp `BR_ON_CAST`_instr(l, rt_1, rt_2)] [visit_exp (l, rt_1, rt_2)] [visit_exp l] [visit_id l] @@ -94491,13 +74769,9 @@ dims \ I = l, labelidx#141, reftype#4305, rt_1, rt_2 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I l labelidx#143 reftype#4308 rt_1 rt_2 -dims \ I = l, labelidx#143, reftype#4308, rt_1, rt_2 -[visit_exp `BR_ON_CAST_FAIL`_instr{labelidx#143, reftype#4308}(l, rt_1, rt_2)] -[visit_exp labelidx#143] -[visit_id labelidx#143] -[visit_exp reftype#4308] -[visit_id reftype#4308] +[check_dims] I l rt_1 rt_2 +dims \ I = l, rt_1, rt_2 +[visit_exp `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)] [visit_exp (l, rt_1, rt_2)] [visit_exp l] [visit_id l] @@ -94523,11 +74797,9 @@ dims \ I = l, labelidx#143, reftype#4308, rt_1, rt_2 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I funcidx#3383 x -dims \ I = funcidx#3383, x -[visit_exp `CALL`_instr{funcidx#3383}(x)] -[visit_exp funcidx#3383] -[visit_id funcidx#3383] +[check_dims] I x +dims \ I = x +[visit_exp `CALL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94536,15 +74808,11 @@ dims \ I = funcidx#3383, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I typeidx#2129 typeuse#79 x -dims \ I = typeidx#2129, typeuse#79, x -[visit_exp `CALL_REF`_instr{typeuse#79}(`_IDX`_typeuse{typeidx#2129}(x))] -[visit_exp typeuse#79] -[visit_id typeuse#79] -[visit_exp (`_IDX`_typeuse{typeidx#2129}(x))] -[visit_exp `_IDX`_typeuse{typeidx#2129}(x)] -[visit_exp typeidx#2129] -[visit_id typeidx#2129] +[check_dims] I x +dims \ I = x +[visit_exp `CALL_REF`_instr(`_IDX`_typeuse(x))] +[visit_exp (`_IDX`_typeuse(x))] +[visit_exp `_IDX`_typeuse(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94553,19 +74821,13 @@ dims \ I = typeidx#2129, typeuse#79, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I I' char*#1315 deftype?*#21 name?*#589 name?*#590 name?*#591 name?*#592 name?*#593 name?*#594 name?*#595 name?*#596 name?*#597 name?*#598 name?**#30 tableidx#154 typeidx#2131 typeuse#81 x y -dims \ I = I', char*#1315, deftype?*#21, name?*#589, name?*#590, name?*#591, name?*#592, name?*#593, name?*#594, name?*#595, name?*#596, name?*#597, name?*#598, name?**#30, tableidx#154, typeidx#2131, typeuse#81, x, y -[visit_exp `CALL_INDIRECT`_instr{tableidx#154, typeuse#81}(x, `_IDX`_typeuse{typeidx#2131}(y))] -[visit_exp tableidx#154] -[visit_id tableidx#154] -[visit_exp typeuse#81] -[visit_id typeuse#81] -[visit_exp (x, `_IDX`_typeuse{typeidx#2131}(y))] +[check_dims] I I' x y +dims \ I = I', x, y +[visit_exp `CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y))] +[visit_exp (x, `_IDX`_typeuse(y))] [visit_exp x] [visit_id x] -[visit_exp `_IDX`_typeuse{typeidx#2131}(y)] -[visit_exp typeidx#2131] -[visit_id typeidx#2131] +[visit_exp `_IDX`_typeuse(y)] [visit_exp (y)] [visit_exp y] [visit_id y] @@ -94582,67 +74844,33 @@ dims \ I = I', char*#1315, deftype?*#21, name?*#589, name?*#590, name?*#591, nam [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp (I' = {`TYPES`{`name?*#589`} [], `TAGS`{`name?*#590`} [], `GLOBALS`{`name?*#591`} [], `MEMS`{`name?*#592`} [], `TABLES`{`name?*#593`} [], `FUNCS`{`name?*#594`} [], `DATAS`{`name?*#595`} [], `ELEMS`{`name?*#596`} [], `LOCALS`{`name?*#597`} ?(`%`_name{`char*#1315`}([]))*{`char*#1315` <- `char*#1315*`}, `LABELS`{`name?*#598`} [], `FIELDS`{`name?**#30`} [], `TYPEDEFS`{`deftype?*#21`} []})] +[visit_exp (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] [visit_exp I'] [visit_id I'] not free -[visit_exp {`TYPES`{`name?*#589`} [], `TAGS`{`name?*#590`} [], `GLOBALS`{`name?*#591`} [], `MEMS`{`name?*#592`} [], `TABLES`{`name?*#593`} [], `FUNCS`{`name?*#594`} [], `DATAS`{`name?*#595`} [], `ELEMS`{`name?*#596`} [], `LOCALS`{`name?*#597`} ?(`%`_name{`char*#1315`}([]))*{`char*#1315` <- `char*#1315*`}, `LABELS`{`name?*#598`} [], `FIELDS`{`name?**#30`} [], `TYPEDEFS`{`deftype?*#21`} []}] -[visit_exp `name?*#589`] -[visit_id name?*#589] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] [visit_exp []] -[visit_exp `name?*#590`] -[visit_id name?*#590] [visit_exp []] -[visit_exp `name?*#591`] -[visit_id name?*#591] [visit_exp []] -[visit_exp `name?*#592`] -[visit_id name?*#592] [visit_exp []] -[visit_exp `name?*#593`] -[visit_id name?*#593] [visit_exp []] -[visit_exp `name?*#594`] -[visit_id name?*#594] [visit_exp []] -[visit_exp `name?*#595`] -[visit_id name?*#595] [visit_exp []] -[visit_exp `name?*#596`] -[visit_id name?*#596] [visit_exp []] -[visit_exp `name?*#597`] -[visit_id name?*#597] -[visit_exp ?(`%`_name{`char*#1315`}([]))*{`char*#1315` <- `char*#1315*`}] -[scope_enter char*#1315] -[visit_exp ?(`%`_name{`char*#1315`}([]))] -[visit_exp `%`_name{`char*#1315`}([])] -[visit_exp `char*#1315`] -[visit_id char*#1315] not free +[visit_exp ?(`%`_name([]))*{}] +[visit_exp ?(`%`_name([]))] +[visit_exp `%`_name([])] [visit_exp ([])] [visit_exp []] -[visit_id char*#1315] not free -[scope_exit char*#1315] -[visit_exp `char*#1315*`] -[visit_id char*#1315*] no dims -[visit_id char*#1315*] -[visit_exp `name?*#598`] -[visit_id name?*#598] [visit_exp []] -[visit_exp `name?**#30`] -[visit_id name?**#30] [visit_exp []] -[visit_exp `deftype?*#21`] -[visit_id deftype?*#21] [visit_exp []] [check_dims] I dims \ I = [visit_exp `RETURN`_instr] [visit_exp ()] -[check_dims] I funcidx#3385 x -dims \ I = funcidx#3385, x -[visit_exp `RETURN_CALL`_instr{funcidx#3385}(x)] -[visit_exp funcidx#3385] -[visit_id funcidx#3385] +[check_dims] I x +dims \ I = x +[visit_exp `RETURN_CALL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94651,15 +74879,11 @@ dims \ I = funcidx#3385, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I typeidx#2133 typeuse#83 x -dims \ I = typeidx#2133, typeuse#83, x -[visit_exp `RETURN_CALL_REF`_instr{typeuse#83}(`_IDX`_typeuse{typeidx#2133}(x))] -[visit_exp typeuse#83] -[visit_id typeuse#83] -[visit_exp (`_IDX`_typeuse{typeidx#2133}(x))] -[visit_exp `_IDX`_typeuse{typeidx#2133}(x)] -[visit_exp typeidx#2133] -[visit_id typeidx#2133] +[check_dims] I x +dims \ I = x +[visit_exp `RETURN_CALL_REF`_instr(`_IDX`_typeuse(x))] +[visit_exp (`_IDX`_typeuse(x))] +[visit_exp `_IDX`_typeuse(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94668,19 +74892,13 @@ dims \ I = typeidx#2133, typeuse#83, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I I' char*#1345 deftype?*#22 name?*#599 name?*#600 name?*#601 name?*#602 name?*#603 name?*#604 name?*#605 name?*#606 name?*#607 name?*#608 name?**#31 tableidx#156 typeidx#2135 typeuse#85 x y -dims \ I = I', char*#1345, deftype?*#22, name?*#599, name?*#600, name?*#601, name?*#602, name?*#603, name?*#604, name?*#605, name?*#606, name?*#607, name?*#608, name?**#31, tableidx#156, typeidx#2135, typeuse#85, x, y -[visit_exp `RETURN_CALL_INDIRECT`_instr{tableidx#156, typeuse#85}(x, `_IDX`_typeuse{typeidx#2135}(y))] -[visit_exp tableidx#156] -[visit_id tableidx#156] -[visit_exp typeuse#85] -[visit_id typeuse#85] -[visit_exp (x, `_IDX`_typeuse{typeidx#2135}(y))] +[check_dims] I I' x y +dims \ I = I', x, y +[visit_exp `RETURN_CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y))] +[visit_exp (x, `_IDX`_typeuse(y))] [visit_exp x] [visit_id x] -[visit_exp `_IDX`_typeuse{typeidx#2135}(y)] -[visit_exp typeidx#2135] -[visit_id typeidx#2135] +[visit_exp `_IDX`_typeuse(y)] [visit_exp (y)] [visit_exp y] [visit_id y] @@ -94697,57 +74915,25 @@ dims \ I = I', char*#1345, deftype?*#22, name?*#599, name?*#600, name?*#601, nam [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp (I' = {`TYPES`{`name?*#599`} [], `TAGS`{`name?*#600`} [], `GLOBALS`{`name?*#601`} [], `MEMS`{`name?*#602`} [], `TABLES`{`name?*#603`} [], `FUNCS`{`name?*#604`} [], `DATAS`{`name?*#605`} [], `ELEMS`{`name?*#606`} [], `LOCALS`{`name?*#607`} ?(`%`_name{`char*#1345`}([]))*{`char*#1345` <- `char*#1345*`}, `LABELS`{`name?*#608`} [], `FIELDS`{`name?**#31`} [], `TYPEDEFS`{`deftype?*#22`} []})] +[visit_exp (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] [visit_exp I'] [visit_id I'] not free -[visit_exp {`TYPES`{`name?*#599`} [], `TAGS`{`name?*#600`} [], `GLOBALS`{`name?*#601`} [], `MEMS`{`name?*#602`} [], `TABLES`{`name?*#603`} [], `FUNCS`{`name?*#604`} [], `DATAS`{`name?*#605`} [], `ELEMS`{`name?*#606`} [], `LOCALS`{`name?*#607`} ?(`%`_name{`char*#1345`}([]))*{`char*#1345` <- `char*#1345*`}, `LABELS`{`name?*#608`} [], `FIELDS`{`name?**#31`} [], `TYPEDEFS`{`deftype?*#22`} []}] -[visit_exp `name?*#599`] -[visit_id name?*#599] +[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] [visit_exp []] -[visit_exp `name?*#600`] -[visit_id name?*#600] [visit_exp []] -[visit_exp `name?*#601`] -[visit_id name?*#601] [visit_exp []] -[visit_exp `name?*#602`] -[visit_id name?*#602] [visit_exp []] -[visit_exp `name?*#603`] -[visit_id name?*#603] [visit_exp []] -[visit_exp `name?*#604`] -[visit_id name?*#604] [visit_exp []] -[visit_exp `name?*#605`] -[visit_id name?*#605] [visit_exp []] -[visit_exp `name?*#606`] -[visit_id name?*#606] [visit_exp []] -[visit_exp `name?*#607`] -[visit_id name?*#607] -[visit_exp ?(`%`_name{`char*#1345`}([]))*{`char*#1345` <- `char*#1345*`}] -[scope_enter char*#1345] -[visit_exp ?(`%`_name{`char*#1345`}([]))] -[visit_exp `%`_name{`char*#1345`}([])] -[visit_exp `char*#1345`] -[visit_id char*#1345] not free +[visit_exp ?(`%`_name([]))*{}] +[visit_exp ?(`%`_name([]))] +[visit_exp `%`_name([])] [visit_exp ([])] [visit_exp []] -[visit_id char*#1345] not free -[scope_exit char*#1345] -[visit_exp `char*#1345*`] -[visit_id char*#1345*] no dims -[visit_id char*#1345*] -[visit_exp `name?*#608`] -[visit_id name?*#608] [visit_exp []] -[visit_exp `name?**#31`] -[visit_id name?**#31] [visit_exp []] -[visit_exp `deftype?*#22`] -[visit_id deftype?*#22] [visit_exp []] [visit_id I] not free ps' = (I : I) @@ -94769,11 +74955,9 @@ ps' = (I : I) [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I tagidx#33 x -dims \ I = tagidx#33, x -[visit_exp `THROW`_instr{tagidx#33}(x)] -[visit_exp tagidx#33] -[visit_id tagidx#33] +[check_dims] I x +dims \ I = x +[visit_exp `THROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94789,11 +74973,9 @@ dims \ I = [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I localidx#27 x -dims \ I = localidx#27, x -[visit_exp `LOCAL.GET`_instr{localidx#27}(x)] -[visit_exp localidx#27] -[visit_id localidx#27] +[check_dims] I x +dims \ I = x +[visit_exp `LOCAL.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94802,11 +74984,9 @@ dims \ I = localidx#27, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I localidx#29 x -dims \ I = localidx#29, x -[visit_exp `LOCAL.SET`_instr{localidx#29}(x)] -[visit_exp localidx#29] -[visit_id localidx#29] +[check_dims] I x +dims \ I = x +[visit_exp `LOCAL.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94815,11 +74995,9 @@ dims \ I = localidx#29, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I localidx#31 x -dims \ I = localidx#31, x -[visit_exp `LOCAL.TEE`_instr{localidx#31}(x)] -[visit_exp localidx#31] -[visit_id localidx#31] +[check_dims] I x +dims \ I = x +[visit_exp `LOCAL.TEE`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94831,11 +75009,9 @@ dims \ I = localidx#31, x [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I globalidx#31 x -dims \ I = globalidx#31, x -[visit_exp `GLOBAL.GET`_instr{globalidx#31}(x)] -[visit_exp globalidx#31] -[visit_id globalidx#31] +[check_dims] I x +dims \ I = x +[visit_exp `GLOBAL.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94844,11 +75020,9 @@ dims \ I = globalidx#31, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I globalidx#33 x -dims \ I = globalidx#33, x -[visit_exp `GLOBAL.SET`_instr{globalidx#33}(x)] -[visit_exp globalidx#33] -[visit_id globalidx#33] +[check_dims] I x +dims \ I = x +[visit_exp `GLOBAL.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94860,11 +75034,9 @@ dims \ I = globalidx#33, x [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I tableidx#158 x -dims \ I = tableidx#158, x -[visit_exp `TABLE.GET`_instr{tableidx#158}(x)] -[visit_exp tableidx#158] -[visit_id tableidx#158] +[check_dims] I x +dims \ I = x +[visit_exp `TABLE.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94873,11 +75045,9 @@ dims \ I = tableidx#158, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I tableidx#160 x -dims \ I = tableidx#160, x -[visit_exp `TABLE.SET`_instr{tableidx#160}(x)] -[visit_exp tableidx#160] -[visit_id tableidx#160] +[check_dims] I x +dims \ I = x +[visit_exp `TABLE.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94886,11 +75056,9 @@ dims \ I = tableidx#160, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I tableidx#162 x -dims \ I = tableidx#162, x -[visit_exp `TABLE.SIZE`_instr{tableidx#162}(x)] -[visit_exp tableidx#162] -[visit_id tableidx#162] +[check_dims] I x +dims \ I = x +[visit_exp `TABLE.SIZE`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94899,11 +75067,9 @@ dims \ I = tableidx#162, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I tableidx#164 x -dims \ I = tableidx#164, x -[visit_exp `TABLE.GROW`_instr{tableidx#164}(x)] -[visit_exp tableidx#164] -[visit_id tableidx#164] +[check_dims] I x +dims \ I = x +[visit_exp `TABLE.GROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94912,11 +75078,9 @@ dims \ I = tableidx#164, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I tableidx#166 x -dims \ I = tableidx#166, x -[visit_exp `TABLE.FILL`_instr{tableidx#166}(x)] -[visit_exp tableidx#166] -[visit_id tableidx#166] +[check_dims] I x +dims \ I = x +[visit_exp `TABLE.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -94925,11 +75089,9 @@ dims \ I = tableidx#166, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I tableidx#168 x_1 x_2 -dims \ I = tableidx#168, x_1, x_2 -[visit_exp `TABLE.COPY`_instr{tableidx#168}(x_1, x_2)] -[visit_exp tableidx#168] -[visit_id tableidx#168] +[check_dims] I x_1 x_2 +dims \ I = x_1, x_2 +[visit_exp `TABLE.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] @@ -94945,13 +75107,9 @@ dims \ I = tableidx#168, x_1, x_2 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I elemidx#57 tableidx#171 x y -dims \ I = elemidx#57, tableidx#171, x, y -[visit_exp `TABLE.INIT`_instr{tableidx#171, elemidx#57}(x, y)] -[visit_exp tableidx#171] -[visit_id tableidx#171] -[visit_exp elemidx#57] -[visit_id elemidx#57] +[check_dims] I x y +dims \ I = x, y +[visit_exp `TABLE.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -94986,11 +75144,9 @@ ps' = (I : I) [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I elemidx#59 x -dims \ I = elemidx#59, x -[visit_exp `ELEM.DROP`_instr{elemidx#59}(x)] -[visit_exp elemidx#59] -[visit_id elemidx#59] +[check_dims] I x +dims \ I = x +[visit_exp `ELEM.DROP`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -95002,34 +75158,22 @@ dims \ I = elemidx#59, x [visit_id I] not free ps' = (N : N) [check_dims] N -[check_dims] N i#97540 i#97567 i#97591 i#97613 m n u32#47 u64#609 -dims \ N = i#97540, i#97567, i#97591, i#97613, m, n, u32#47, u64#609 -[visit_exp {`ALIGN`{u32#47} `%`_u32{i#97591}(n), `OFFSET`{u64#609} `%`_u64{i#97613}(m)}] -[visit_exp u32#47] -[visit_id u32#47] -[visit_exp `%`_u32{i#97591}(n)] -[visit_exp i#97591] -[visit_id i#97591] +[check_dims] N m n +dims \ N = m, n +[visit_exp {`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)}] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp u64#609] -[visit_id u64#609] -[visit_exp `%`_u64{i#97613}(m)] -[visit_exp i#97613] -[visit_id i#97613] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] -[visit_exp `%`_u64{i#97540}(n)] -[visit_exp i#97540] -[visit_id i#97540] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[visit_exp `%`_u64{i#97567}(m)] -[visit_exp i#97567] -[visit_id i#97567] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] not free @@ -95039,40 +75183,30 @@ dims \ N = i#97540, i#97567, i#97591, i#97613, m, n, u32#47, u64#609 [visit_id N] not free ps' = [check_dims] -[check_dims] i#97638 i#97664 n -dims \ = i#97638, i#97664, n -[visit_exp `%`_u64{i#97664}(n)] -[visit_exp i#97664] -[visit_id i#97664] +[check_dims] n +dims \ = n +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `%`_u64{i#97638}(n)] -[visit_exp i#97638] -[visit_id i#97638] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[check_dims] i#97686 -dims \ = i#97686 -[visit_exp `%`_u64{i#97686}(0)] -[visit_exp i#97686] -[visit_id i#97686] +[check_dims] +dims \ = +[visit_exp `%`_u64(0)] [visit_exp (0)] [visit_exp 0] ps' = (N : N) [check_dims] N -[check_dims] N i#97711 i#97737 m n -dims \ N = i#97711, i#97737, m, n -[visit_exp `%`_u64{i#97737}(m)] -[visit_exp i#97737] -[visit_id i#97737] +[check_dims] N m n +dims \ N = m, n +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] -[visit_exp `%`_u64{i#97711}(m)] -[visit_exp i#97711] -[visit_id i#97711] +[visit_exp `%`_u64(m)] [visit_exp (m)] [visit_exp m] [visit_id m] not free @@ -95083,11 +75217,9 @@ dims \ N = i#97711, i#97737, m, n [visit_exp 2] [visit_exp n] [visit_id n] -[check_dims] N i#97761 -dims \ N = i#97761 -[visit_exp `%`_u64{i#97761}(N)] -[visit_exp i#97761] -[visit_id i#97761] +[check_dims] N +dims \ N = +[visit_exp `%`_u64(N)] [visit_exp (N)] [visit_exp N] [visit_id N] not free @@ -95103,15 +75235,9 @@ dims \ = i [visit_id i] not free ps' = (I : I) [check_dims] I -[check_dims] I ao memarg#181 memidx#278 numtype?#44 x -dims \ I = ao, memarg#181, memidx#278, numtype?#44, x -[visit_exp `LOAD`_instr{`numtype?#44`, memidx#278, memarg#181}(`I32`_numtype, ?(), x, ao)] -[visit_exp `numtype?#44`] -[visit_id numtype?#44] -[visit_exp memidx#278] -[visit_id memidx#278] -[visit_exp memarg#181] -[visit_id memarg#181] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`I32`_numtype, ?(), x, ao)] [visit_exp (`I32`_numtype, ?(), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -95128,15 +75254,9 @@ dims \ I = ao, memarg#181, memidx#278, numtype?#44, x [visit_exp ao] [visit_id ao] not free [visit_exp 4] -[check_dims] I ao memarg#183 memidx#280 numtype?#45 x -dims \ I = ao, memarg#183, memidx#280, numtype?#45, x -[visit_exp `LOAD`_instr{`numtype?#45`, memidx#280, memarg#183}(`I64`_numtype, ?(), x, ao)] -[visit_exp `numtype?#45`] -[visit_id numtype?#45] -[visit_exp memidx#280] -[visit_id memidx#280] -[visit_exp memarg#183] -[visit_id memarg#183] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(), x, ao)] [visit_exp (`I64`_numtype, ?(), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] @@ -95153,15 +75273,9 @@ dims \ I = ao, memarg#183, memidx#280, numtype?#45, x [visit_exp ao] [visit_id ao] not free [visit_exp 8] -[check_dims] I ao memarg#185 memidx#282 numtype?#46 x -dims \ I = ao, memarg#185, memidx#282, numtype?#46, x -[visit_exp `LOAD`_instr{`numtype?#46`, memidx#282, memarg#185}(`F32`_numtype, ?(), x, ao)] -[visit_exp `numtype?#46`] -[visit_id numtype?#46] -[visit_exp memidx#282] -[visit_id memidx#282] -[visit_exp memarg#185] -[visit_id memarg#185] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`F32`_numtype, ?(), x, ao)] [visit_exp (`F32`_numtype, ?(), x, ao)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -95178,15 +75292,9 @@ dims \ I = ao, memarg#185, memidx#282, numtype?#46, x [visit_exp ao] [visit_id ao] not free [visit_exp 4] -[check_dims] I ao memarg#187 memidx#284 numtype?#47 x -dims \ I = ao, memarg#187, memidx#284, numtype?#47, x -[visit_exp `LOAD`_instr{`numtype?#47`, memidx#284, memarg#187}(`F64`_numtype, ?(), x, ao)] -[visit_exp `numtype?#47`] -[visit_id numtype?#47] -[visit_exp memidx#284] -[visit_id memidx#284] -[visit_exp memarg#187] -[visit_id memarg#187] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`F64`_numtype, ?(), x, ao)] [visit_exp (`F64`_numtype, ?(), x, ao)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -95203,30 +75311,16 @@ dims \ I = ao, memarg#187, memidx#284, numtype?#47, x [visit_exp ao] [visit_id ao] not free [visit_exp 8] -[check_dims] I ao i#97957 i#97964 memarg#189 memidx#286 numtype?#48 sx#15729 sz#1643 x -dims \ I = ao, i#97957, i#97964, memarg#189, memidx#286, numtype?#48, sx#15729, sz#1643, x -[visit_exp `LOAD`_instr{`numtype?#48`, memidx#286, memarg#189}(`I32`_numtype, ?(`%_%`_loadop_{sz#1643, sx#15729, i#97957}(`%`_sz{i#97964}(8), `S`_sx)), x, ao)] -[visit_exp `numtype?#48`] -[visit_id numtype?#48] -[visit_exp memidx#286] -[visit_id memidx#286] -[visit_exp memarg#189] -[visit_id memarg#189] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#1643, sx#15729, i#97957}(`%`_sz{i#97964}(8), `S`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#1643, sx#15729, i#97957}(`%`_sz{i#97964}(8), `S`_sx))] -[visit_exp `%_%`_loadop_{sz#1643, sx#15729, i#97957}(`%`_sz{i#97964}(8), `S`_sx)] -[visit_exp sz#1643] -[visit_id sz#1643] -[visit_exp sx#15729] -[visit_id sx#15729] -[visit_exp i#97957] -[visit_id i#97957] -[visit_exp (`%`_sz{i#97964}(8), `S`_sx)] -[visit_exp `%`_sz{i#97964}(8)] -[visit_exp i#97964] -[visit_id i#97964] +[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `S`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(8), `S`_sx)] +[visit_exp (`%`_sz(8), `S`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `S`_sx] @@ -95243,30 +75337,16 @@ dims \ I = ao, i#97957, i#97964, memarg#189, memidx#286, numtype?#48, sx#15729, [visit_exp ao] [visit_id ao] not free [visit_exp 1] -[check_dims] I ao i#98021 i#98028 memarg#191 memidx#288 numtype?#49 sx#15747 sz#1661 x -dims \ I = ao, i#98021, i#98028, memarg#191, memidx#288, numtype?#49, sx#15747, sz#1661, x -[visit_exp `LOAD`_instr{`numtype?#49`, memidx#288, memarg#191}(`I32`_numtype, ?(`%_%`_loadop_{sz#1661, sx#15747, i#98021}(`%`_sz{i#98028}(8), `U`_sx)), x, ao)] -[visit_exp `numtype?#49`] -[visit_id numtype?#49] -[visit_exp memidx#288] -[visit_id memidx#288] -[visit_exp memarg#191] -[visit_id memarg#191] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#1661, sx#15747, i#98021}(`%`_sz{i#98028}(8), `U`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#1661, sx#15747, i#98021}(`%`_sz{i#98028}(8), `U`_sx))] -[visit_exp `%_%`_loadop_{sz#1661, sx#15747, i#98021}(`%`_sz{i#98028}(8), `U`_sx)] -[visit_exp sz#1661] -[visit_id sz#1661] -[visit_exp sx#15747] -[visit_id sx#15747] -[visit_exp i#98021] -[visit_id i#98021] -[visit_exp (`%`_sz{i#98028}(8), `U`_sx)] -[visit_exp `%`_sz{i#98028}(8)] -[visit_exp i#98028] -[visit_id i#98028] +[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `U`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(8), `U`_sx)] +[visit_exp (`%`_sz(8), `U`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `U`_sx] @@ -95283,30 +75363,16 @@ dims \ I = ao, i#98021, i#98028, memarg#191, memidx#288, numtype?#49, sx#15747, [visit_exp ao] [visit_id ao] not free [visit_exp 1] -[check_dims] I ao i#98085 i#98092 memarg#193 memidx#290 numtype?#50 sx#15765 sz#1679 x -dims \ I = ao, i#98085, i#98092, memarg#193, memidx#290, numtype?#50, sx#15765, sz#1679, x -[visit_exp `LOAD`_instr{`numtype?#50`, memidx#290, memarg#193}(`I32`_numtype, ?(`%_%`_loadop_{sz#1679, sx#15765, i#98085}(`%`_sz{i#98092}(16), `S`_sx)), x, ao)] -[visit_exp `numtype?#50`] -[visit_id numtype?#50] -[visit_exp memidx#290] -[visit_id memidx#290] -[visit_exp memarg#193] -[visit_id memarg#193] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#1679, sx#15765, i#98085}(`%`_sz{i#98092}(16), `S`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#1679, sx#15765, i#98085}(`%`_sz{i#98092}(16), `S`_sx))] -[visit_exp `%_%`_loadop_{sz#1679, sx#15765, i#98085}(`%`_sz{i#98092}(16), `S`_sx)] -[visit_exp sz#1679] -[visit_id sz#1679] -[visit_exp sx#15765] -[visit_id sx#15765] -[visit_exp i#98085] -[visit_id i#98085] -[visit_exp (`%`_sz{i#98092}(16), `S`_sx)] -[visit_exp `%`_sz{i#98092}(16)] -[visit_exp i#98092] -[visit_id i#98092] +[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `S`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(16), `S`_sx)] +[visit_exp (`%`_sz(16), `S`_sx)] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `S`_sx] @@ -95323,30 +75389,16 @@ dims \ I = ao, i#98085, i#98092, memarg#193, memidx#290, numtype?#50, sx#15765, [visit_exp ao] [visit_id ao] not free [visit_exp 2] -[check_dims] I ao i#98149 i#98156 memarg#195 memidx#292 numtype?#51 sx#15783 sz#1697 x -dims \ I = ao, i#98149, i#98156, memarg#195, memidx#292, numtype?#51, sx#15783, sz#1697, x -[visit_exp `LOAD`_instr{`numtype?#51`, memidx#292, memarg#195}(`I32`_numtype, ?(`%_%`_loadop_{sz#1697, sx#15783, i#98149}(`%`_sz{i#98156}(16), `U`_sx)), x, ao)] -[visit_exp `numtype?#51`] -[visit_id numtype?#51] -[visit_exp memidx#292] -[visit_id memidx#292] -[visit_exp memarg#195] -[visit_id memarg#195] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_{sz#1697, sx#15783, i#98149}(`%`_sz{i#98156}(16), `U`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] +[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#1697, sx#15783, i#98149}(`%`_sz{i#98156}(16), `U`_sx))] -[visit_exp `%_%`_loadop_{sz#1697, sx#15783, i#98149}(`%`_sz{i#98156}(16), `U`_sx)] -[visit_exp sz#1697] -[visit_id sz#1697] -[visit_exp sx#15783] -[visit_id sx#15783] -[visit_exp i#98149] -[visit_id i#98149] -[visit_exp (`%`_sz{i#98156}(16), `U`_sx)] -[visit_exp `%`_sz{i#98156}(16)] -[visit_exp i#98156] -[visit_id i#98156] +[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `U`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(16), `U`_sx)] +[visit_exp (`%`_sz(16), `U`_sx)] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `U`_sx] @@ -95363,30 +75415,16 @@ dims \ I = ao, i#98149, i#98156, memarg#195, memidx#292, numtype?#51, sx#15783, [visit_exp ao] [visit_id ao] not free [visit_exp 2] -[check_dims] I ao i#98213 i#98220 memarg#197 memidx#294 numtype?#52 sx#15801 sz#1715 x -dims \ I = ao, i#98213, i#98220, memarg#197, memidx#294, numtype?#52, sx#15801, sz#1715, x -[visit_exp `LOAD`_instr{`numtype?#52`, memidx#294, memarg#197}(`I64`_numtype, ?(`%_%`_loadop_{sz#1715, sx#15801, i#98213}(`%`_sz{i#98220}(8), `S`_sx)), x, ao)] -[visit_exp `numtype?#52`] -[visit_id numtype?#52] -[visit_exp memidx#294] -[visit_id memidx#294] -[visit_exp memarg#197] -[visit_id memarg#197] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#1715, sx#15801, i#98213}(`%`_sz{i#98220}(8), `S`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#1715, sx#15801, i#98213}(`%`_sz{i#98220}(8), `S`_sx))] -[visit_exp `%_%`_loadop_{sz#1715, sx#15801, i#98213}(`%`_sz{i#98220}(8), `S`_sx)] -[visit_exp sz#1715] -[visit_id sz#1715] -[visit_exp sx#15801] -[visit_id sx#15801] -[visit_exp i#98213] -[visit_id i#98213] -[visit_exp (`%`_sz{i#98220}(8), `S`_sx)] -[visit_exp `%`_sz{i#98220}(8)] -[visit_exp i#98220] -[visit_id i#98220] +[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `S`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(8), `S`_sx)] +[visit_exp (`%`_sz(8), `S`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `S`_sx] @@ -95403,30 +75441,16 @@ dims \ I = ao, i#98213, i#98220, memarg#197, memidx#294, numtype?#52, sx#15801, [visit_exp ao] [visit_id ao] not free [visit_exp 1] -[check_dims] I ao i#98277 i#98284 memarg#199 memidx#296 numtype?#53 sx#15819 sz#1733 x -dims \ I = ao, i#98277, i#98284, memarg#199, memidx#296, numtype?#53, sx#15819, sz#1733, x -[visit_exp `LOAD`_instr{`numtype?#53`, memidx#296, memarg#199}(`I64`_numtype, ?(`%_%`_loadop_{sz#1733, sx#15819, i#98277}(`%`_sz{i#98284}(8), `U`_sx)), x, ao)] -[visit_exp `numtype?#53`] -[visit_id numtype?#53] -[visit_exp memidx#296] -[visit_id memidx#296] -[visit_exp memarg#199] -[visit_id memarg#199] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#1733, sx#15819, i#98277}(`%`_sz{i#98284}(8), `U`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#1733, sx#15819, i#98277}(`%`_sz{i#98284}(8), `U`_sx))] -[visit_exp `%_%`_loadop_{sz#1733, sx#15819, i#98277}(`%`_sz{i#98284}(8), `U`_sx)] -[visit_exp sz#1733] -[visit_id sz#1733] -[visit_exp sx#15819] -[visit_id sx#15819] -[visit_exp i#98277] -[visit_id i#98277] -[visit_exp (`%`_sz{i#98284}(8), `U`_sx)] -[visit_exp `%`_sz{i#98284}(8)] -[visit_exp i#98284] -[visit_id i#98284] +[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `U`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(8), `U`_sx)] +[visit_exp (`%`_sz(8), `U`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `U`_sx] @@ -95443,30 +75467,16 @@ dims \ I = ao, i#98277, i#98284, memarg#199, memidx#296, numtype?#53, sx#15819, [visit_exp ao] [visit_id ao] not free [visit_exp 1] -[check_dims] I ao i#98341 i#98348 memarg#201 memidx#298 numtype?#54 sx#15837 sz#1751 x -dims \ I = ao, i#98341, i#98348, memarg#201, memidx#298, numtype?#54, sx#15837, sz#1751, x -[visit_exp `LOAD`_instr{`numtype?#54`, memidx#298, memarg#201}(`I64`_numtype, ?(`%_%`_loadop_{sz#1751, sx#15837, i#98341}(`%`_sz{i#98348}(16), `S`_sx)), x, ao)] -[visit_exp `numtype?#54`] -[visit_id numtype?#54] -[visit_exp memidx#298] -[visit_id memidx#298] -[visit_exp memarg#201] -[visit_id memarg#201] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#1751, sx#15837, i#98341}(`%`_sz{i#98348}(16), `S`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#1751, sx#15837, i#98341}(`%`_sz{i#98348}(16), `S`_sx))] -[visit_exp `%_%`_loadop_{sz#1751, sx#15837, i#98341}(`%`_sz{i#98348}(16), `S`_sx)] -[visit_exp sz#1751] -[visit_id sz#1751] -[visit_exp sx#15837] -[visit_id sx#15837] -[visit_exp i#98341] -[visit_id i#98341] -[visit_exp (`%`_sz{i#98348}(16), `S`_sx)] -[visit_exp `%`_sz{i#98348}(16)] -[visit_exp i#98348] -[visit_id i#98348] +[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `S`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(16), `S`_sx)] +[visit_exp (`%`_sz(16), `S`_sx)] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `S`_sx] @@ -95483,30 +75493,16 @@ dims \ I = ao, i#98341, i#98348, memarg#201, memidx#298, numtype?#54, sx#15837, [visit_exp ao] [visit_id ao] not free [visit_exp 2] -[check_dims] I ao i#98405 i#98412 memarg#203 memidx#300 numtype?#55 sx#15855 sz#1769 x -dims \ I = ao, i#98405, i#98412, memarg#203, memidx#300, numtype?#55, sx#15855, sz#1769, x -[visit_exp `LOAD`_instr{`numtype?#55`, memidx#300, memarg#203}(`I64`_numtype, ?(`%_%`_loadop_{sz#1769, sx#15855, i#98405}(`%`_sz{i#98412}(16), `U`_sx)), x, ao)] -[visit_exp `numtype?#55`] -[visit_id numtype?#55] -[visit_exp memidx#300] -[visit_id memidx#300] -[visit_exp memarg#203] -[visit_id memarg#203] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#1769, sx#15855, i#98405}(`%`_sz{i#98412}(16), `U`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#1769, sx#15855, i#98405}(`%`_sz{i#98412}(16), `U`_sx))] -[visit_exp `%_%`_loadop_{sz#1769, sx#15855, i#98405}(`%`_sz{i#98412}(16), `U`_sx)] -[visit_exp sz#1769] -[visit_id sz#1769] -[visit_exp sx#15855] -[visit_id sx#15855] -[visit_exp i#98405] -[visit_id i#98405] -[visit_exp (`%`_sz{i#98412}(16), `U`_sx)] -[visit_exp `%`_sz{i#98412}(16)] -[visit_exp i#98412] -[visit_id i#98412] +[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `U`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(16), `U`_sx)] +[visit_exp (`%`_sz(16), `U`_sx)] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `U`_sx] @@ -95523,30 +75519,16 @@ dims \ I = ao, i#98405, i#98412, memarg#203, memidx#300, numtype?#55, sx#15855, [visit_exp ao] [visit_id ao] not free [visit_exp 2] -[check_dims] I ao i#98469 i#98476 memarg#205 memidx#302 numtype?#56 sx#15873 sz#1787 x -dims \ I = ao, i#98469, i#98476, memarg#205, memidx#302, numtype?#56, sx#15873, sz#1787, x -[visit_exp `LOAD`_instr{`numtype?#56`, memidx#302, memarg#205}(`I64`_numtype, ?(`%_%`_loadop_{sz#1787, sx#15873, i#98469}(`%`_sz{i#98476}(32), `S`_sx)), x, ao)] -[visit_exp `numtype?#56`] -[visit_id numtype?#56] -[visit_exp memidx#302] -[visit_id memidx#302] -[visit_exp memarg#205] -[visit_id memarg#205] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#1787, sx#15873, i#98469}(`%`_sz{i#98476}(32), `S`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `S`_sx)), x, ao)] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `S`_sx)), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#1787, sx#15873, i#98469}(`%`_sz{i#98476}(32), `S`_sx))] -[visit_exp `%_%`_loadop_{sz#1787, sx#15873, i#98469}(`%`_sz{i#98476}(32), `S`_sx)] -[visit_exp sz#1787] -[visit_id sz#1787] -[visit_exp sx#15873] -[visit_id sx#15873] -[visit_exp i#98469] -[visit_id i#98469] -[visit_exp (`%`_sz{i#98476}(32), `S`_sx)] -[visit_exp `%`_sz{i#98476}(32)] -[visit_exp i#98476] -[visit_id i#98476] +[visit_exp ?(`%_%`_loadop_(`%`_sz(32), `S`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(32), `S`_sx)] +[visit_exp (`%`_sz(32), `S`_sx)] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp `S`_sx] @@ -95563,30 +75545,16 @@ dims \ I = ao, i#98469, i#98476, memarg#205, memidx#302, numtype?#56, sx#15873, [visit_exp ao] [visit_id ao] not free [visit_exp 4] -[check_dims] I ao i#98533 i#98540 memarg#207 memidx#304 numtype?#57 sx#15891 sz#1805 x -dims \ I = ao, i#98533, i#98540, memarg#207, memidx#304, numtype?#57, sx#15891, sz#1805, x -[visit_exp `LOAD`_instr{`numtype?#57`, memidx#304, memarg#207}(`I64`_numtype, ?(`%_%`_loadop_{sz#1805, sx#15891, i#98533}(`%`_sz{i#98540}(32), `U`_sx)), x, ao)] -[visit_exp `numtype?#57`] -[visit_id numtype?#57] -[visit_exp memidx#304] -[visit_id memidx#304] -[visit_exp memarg#207] -[visit_id memarg#207] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_{sz#1805, sx#15891, i#98533}(`%`_sz{i#98540}(32), `U`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `U`_sx)), x, ao)] +[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `U`_sx)), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%_%`_loadop_{sz#1805, sx#15891, i#98533}(`%`_sz{i#98540}(32), `U`_sx))] -[visit_exp `%_%`_loadop_{sz#1805, sx#15891, i#98533}(`%`_sz{i#98540}(32), `U`_sx)] -[visit_exp sz#1805] -[visit_id sz#1805] -[visit_exp sx#15891] -[visit_id sx#15891] -[visit_exp i#98533] -[visit_id i#98533] -[visit_exp (`%`_sz{i#98540}(32), `U`_sx)] -[visit_exp `%`_sz{i#98540}(32)] -[visit_exp i#98540] -[visit_id i#98540] +[visit_exp ?(`%_%`_loadop_(`%`_sz(32), `U`_sx))] +[visit_exp `%_%`_loadop_(`%`_sz(32), `U`_sx)] +[visit_exp (`%`_sz(32), `U`_sx)] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp `U`_sx] @@ -95603,15 +75571,9 @@ dims \ I = ao, i#98533, i#98540, memarg#207, memidx#304, numtype?#57, sx#15891, [visit_exp ao] [visit_id ao] not free [visit_exp 4] -[check_dims] I ao memarg#209 memidx#306 vectype?#27 x -dims \ I = ao, memarg#209, memidx#306, vectype?#27, x -[visit_exp `VLOAD`_instr{`vectype?#27`, memidx#306, memarg#209}(`V128`_vectype, ?(), x, ao)] -[visit_exp `vectype?#27`] -[visit_id vectype?#27] -[visit_exp memidx#306] -[visit_id memidx#306] -[visit_exp memarg#209] -[visit_id memarg#209] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(), x, ao)] [visit_exp (`V128`_vectype, ?(), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -95628,32 +75590,16 @@ dims \ I = ao, memarg#209, memidx#306, vectype?#27, x [visit_exp ao] [visit_id ao] not free [visit_exp 16] -[check_dims] I M#349 ao i#98628 i#98635 memarg#211 memidx#308 sx#15908 sz#1852 vectype?#28 x -dims \ I = M#349, ao, i#98628, i#98635, memarg#211, memidx#308, sx#15908, sz#1852, vectype?#28, x -[visit_exp `VLOAD`_instr{`vectype?#28`, memidx#308, memarg#211}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1852, M#349, sx#15908, i#98628}(`%`_sz{i#98635}(8), 8, `S`_sx)), x, ao)] -[visit_exp `vectype?#28`] -[visit_id vectype?#28] -[visit_exp memidx#308] -[visit_id memidx#308] -[visit_exp memarg#211] -[visit_id memarg#211] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1852, M#349, sx#15908, i#98628}(`%`_sz{i#98635}(8), 8, `S`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1852, M#349, sx#15908, i#98628}(`%`_sz{i#98635}(8), 8, `S`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#1852, M#349, sx#15908, i#98628}(`%`_sz{i#98635}(8), 8, `S`_sx)] -[visit_exp sz#1852] -[visit_id sz#1852] -[visit_exp M#349] -[visit_id M#349] -[visit_exp sx#15908] -[visit_id sx#15908] -[visit_exp i#98628] -[visit_id i#98628] -[visit_exp (`%`_sz{i#98635}(8), 8, `S`_sx)] -[visit_exp `%`_sz{i#98635}(8)] -[visit_exp i#98635] -[visit_id i#98635] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)] +[visit_exp (`%`_sz(8), 8, `S`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp 8] @@ -95671,32 +75617,16 @@ dims \ I = M#349, ao, i#98628, i#98635, memarg#211, memidx#308, sx#15908, sz#185 [visit_exp ao] [visit_id ao] not free [visit_exp 8] -[check_dims] I M#366 ao i#98692 i#98699 memarg#213 memidx#310 sx#15925 sz#1899 vectype?#29 x -dims \ I = M#366, ao, i#98692, i#98699, memarg#213, memidx#310, sx#15925, sz#1899, vectype?#29, x -[visit_exp `VLOAD`_instr{`vectype?#29`, memidx#310, memarg#213}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1899, M#366, sx#15925, i#98692}(`%`_sz{i#98699}(8), 8, `U`_sx)), x, ao)] -[visit_exp `vectype?#29`] -[visit_id vectype?#29] -[visit_exp memidx#310] -[visit_id memidx#310] -[visit_exp memarg#213] -[visit_id memarg#213] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1899, M#366, sx#15925, i#98692}(`%`_sz{i#98699}(8), 8, `U`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1899, M#366, sx#15925, i#98692}(`%`_sz{i#98699}(8), 8, `U`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#1899, M#366, sx#15925, i#98692}(`%`_sz{i#98699}(8), 8, `U`_sx)] -[visit_exp sz#1899] -[visit_id sz#1899] -[visit_exp M#366] -[visit_id M#366] -[visit_exp sx#15925] -[visit_id sx#15925] -[visit_exp i#98692] -[visit_id i#98692] -[visit_exp (`%`_sz{i#98699}(8), 8, `U`_sx)] -[visit_exp `%`_sz{i#98699}(8)] -[visit_exp i#98699] -[visit_id i#98699] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)] +[visit_exp (`%`_sz(8), 8, `U`_sx)] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp 8] @@ -95714,32 +75644,16 @@ dims \ I = M#366, ao, i#98692, i#98699, memarg#213, memidx#310, sx#15925, sz#189 [visit_exp ao] [visit_id ao] not free [visit_exp 8] -[check_dims] I M#383 ao i#98756 i#98763 memarg#215 memidx#312 sx#15942 sz#1946 vectype?#30 x -dims \ I = M#383, ao, i#98756, i#98763, memarg#215, memidx#312, sx#15942, sz#1946, vectype?#30, x -[visit_exp `VLOAD`_instr{`vectype?#30`, memidx#312, memarg#215}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1946, M#383, sx#15942, i#98756}(`%`_sz{i#98763}(16), 4, `S`_sx)), x, ao)] -[visit_exp `vectype?#30`] -[visit_id vectype?#30] -[visit_exp memidx#312] -[visit_id memidx#312] -[visit_exp memarg#215] -[visit_id memarg#215] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1946, M#383, sx#15942, i#98756}(`%`_sz{i#98763}(16), 4, `S`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1946, M#383, sx#15942, i#98756}(`%`_sz{i#98763}(16), 4, `S`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#1946, M#383, sx#15942, i#98756}(`%`_sz{i#98763}(16), 4, `S`_sx)] -[visit_exp sz#1946] -[visit_id sz#1946] -[visit_exp M#383] -[visit_id M#383] -[visit_exp sx#15942] -[visit_id sx#15942] -[visit_exp i#98756] -[visit_id i#98756] -[visit_exp (`%`_sz{i#98763}(16), 4, `S`_sx)] -[visit_exp `%`_sz{i#98763}(16)] -[visit_exp i#98763] -[visit_id i#98763] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)] +[visit_exp (`%`_sz(16), 4, `S`_sx)] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp 4] @@ -95757,32 +75671,16 @@ dims \ I = M#383, ao, i#98756, i#98763, memarg#215, memidx#312, sx#15942, sz#194 [visit_exp ao] [visit_id ao] not free [visit_exp 8] -[check_dims] I M#400 ao i#98820 i#98827 memarg#217 memidx#314 sx#15959 sz#1993 vectype?#31 x -dims \ I = M#400, ao, i#98820, i#98827, memarg#217, memidx#314, sx#15959, sz#1993, vectype?#31, x -[visit_exp `VLOAD`_instr{`vectype?#31`, memidx#314, memarg#217}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1993, M#400, sx#15959, i#98820}(`%`_sz{i#98827}(16), 4, `U`_sx)), x, ao)] -[visit_exp `vectype?#31`] -[visit_id vectype?#31] -[visit_exp memidx#314] -[visit_id memidx#314] -[visit_exp memarg#217] -[visit_id memarg#217] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1993, M#400, sx#15959, i#98820}(`%`_sz{i#98827}(16), 4, `U`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#1993, M#400, sx#15959, i#98820}(`%`_sz{i#98827}(16), 4, `U`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#1993, M#400, sx#15959, i#98820}(`%`_sz{i#98827}(16), 4, `U`_sx)] -[visit_exp sz#1993] -[visit_id sz#1993] -[visit_exp M#400] -[visit_id M#400] -[visit_exp sx#15959] -[visit_id sx#15959] -[visit_exp i#98820] -[visit_id i#98820] -[visit_exp (`%`_sz{i#98827}(16), 4, `U`_sx)] -[visit_exp `%`_sz{i#98827}(16)] -[visit_exp i#98827] -[visit_id i#98827] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)] +[visit_exp (`%`_sz(16), 4, `U`_sx)] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp 4] @@ -95800,32 +75698,16 @@ dims \ I = M#400, ao, i#98820, i#98827, memarg#217, memidx#314, sx#15959, sz#199 [visit_exp ao] [visit_id ao] not free [visit_exp 8] -[check_dims] I M#417 ao i#98884 i#98891 memarg#219 memidx#316 sx#15976 sz#2040 vectype?#32 x -dims \ I = M#417, ao, i#98884, i#98891, memarg#219, memidx#316, sx#15976, sz#2040, vectype?#32, x -[visit_exp `VLOAD`_instr{`vectype?#32`, memidx#316, memarg#219}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#2040, M#417, sx#15976, i#98884}(`%`_sz{i#98891}(32), 2, `S`_sx)), x, ao)] -[visit_exp `vectype?#32`] -[visit_id vectype?#32] -[visit_exp memidx#316] -[visit_id memidx#316] -[visit_exp memarg#219] -[visit_id memarg#219] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#2040, M#417, sx#15976, i#98884}(`%`_sz{i#98891}(32), 2, `S`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#2040, M#417, sx#15976, i#98884}(`%`_sz{i#98891}(32), 2, `S`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#2040, M#417, sx#15976, i#98884}(`%`_sz{i#98891}(32), 2, `S`_sx)] -[visit_exp sz#2040] -[visit_id sz#2040] -[visit_exp M#417] -[visit_id M#417] -[visit_exp sx#15976] -[visit_id sx#15976] -[visit_exp i#98884] -[visit_id i#98884] -[visit_exp (`%`_sz{i#98891}(32), 2, `S`_sx)] -[visit_exp `%`_sz{i#98891}(32)] -[visit_exp i#98891] -[visit_id i#98891] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)] +[visit_exp (`%`_sz(32), 2, `S`_sx)] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp 2] @@ -95843,32 +75725,16 @@ dims \ I = M#417, ao, i#98884, i#98891, memarg#219, memidx#316, sx#15976, sz#204 [visit_exp ao] [visit_id ao] not free [visit_exp 8] -[check_dims] I M#434 ao i#98948 i#98955 memarg#221 memidx#318 sx#15993 sz#2087 vectype?#33 x -dims \ I = M#434, ao, i#98948, i#98955, memarg#221, memidx#318, sx#15993, sz#2087, vectype?#33, x -[visit_exp `VLOAD`_instr{`vectype?#33`, memidx#318, memarg#221}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#2087, M#434, sx#15993, i#98948}(`%`_sz{i#98955}(32), 2, `U`_sx)), x, ao)] -[visit_exp `vectype?#33`] -[visit_id vectype?#33] -[visit_exp memidx#318] -[visit_id memidx#318] -[visit_exp memarg#221] -[visit_id memarg#221] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#2087, M#434, sx#15993, i#98948}(`%`_sz{i#98955}(32), 2, `U`_sx)), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)), x, ao)] +[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_{sz#2087, M#434, sx#15993, i#98948}(`%`_sz{i#98955}(32), 2, `U`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_{sz#2087, M#434, sx#15993, i#98948}(`%`_sz{i#98955}(32), 2, `U`_sx)] -[visit_exp sz#2087] -[visit_id sz#2087] -[visit_exp M#434] -[visit_id M#434] -[visit_exp sx#15993] -[visit_id sx#15993] -[visit_exp i#98948] -[visit_id i#98948] -[visit_exp (`%`_sz{i#98955}(32), 2, `U`_sx)] -[visit_exp `%`_sz{i#98955}(32)] -[visit_exp i#98955] -[visit_id i#98955] +[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx))] +[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)] +[visit_exp (`%`_sz(32), 2, `U`_sx)] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp 2] @@ -95886,26 +75752,16 @@ dims \ I = M#434, ao, i#98948, i#98955, memarg#221, memidx#318, sx#15993, sz#208 [visit_exp ao] [visit_id ao] not free [visit_exp 8] -[check_dims] I ao i#99018 memarg#223 memidx#320 sz#2134 vectype?#34 x -dims \ I = ao, i#99018, memarg#223, memidx#320, sz#2134, vectype?#34, x -[visit_exp `VLOAD`_instr{`vectype?#34`, memidx#320, memarg#223}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2134}(`%`_sz{i#99018}(8))), x, ao)] -[visit_exp `vectype?#34`] -[visit_id vectype?#34] -[visit_exp memidx#320] -[visit_id memidx#320] -[visit_exp memarg#223] -[visit_id memarg#223] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2134}(`%`_sz{i#99018}(8))), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(8))), x, ao)] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(8))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_{sz#2134}(`%`_sz{i#99018}(8)))] -[visit_exp `SPLAT`_vloadop_{sz#2134}(`%`_sz{i#99018}(8))] -[visit_exp sz#2134] -[visit_id sz#2134] -[visit_exp (`%`_sz{i#99018}(8))] -[visit_exp `%`_sz{i#99018}(8)] -[visit_exp i#99018] -[visit_id i#99018] +[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(8)))] +[visit_exp `SPLAT`_vloadop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x] @@ -95920,26 +75776,16 @@ dims \ I = ao, i#99018, memarg#223, memidx#320, sz#2134, vectype?#34, x [visit_exp ao] [visit_id ao] not free [visit_exp 1] -[check_dims] I ao i#99081 memarg#225 memidx#322 sz#2181 vectype?#35 x -dims \ I = ao, i#99081, memarg#225, memidx#322, sz#2181, vectype?#35, x -[visit_exp `VLOAD`_instr{`vectype?#35`, memidx#322, memarg#225}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2181}(`%`_sz{i#99081}(16))), x, ao)] -[visit_exp `vectype?#35`] -[visit_id vectype?#35] -[visit_exp memidx#322] -[visit_id memidx#322] -[visit_exp memarg#225] -[visit_id memarg#225] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2181}(`%`_sz{i#99081}(16))), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(16))), x, ao)] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(16))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_{sz#2181}(`%`_sz{i#99081}(16)))] -[visit_exp `SPLAT`_vloadop_{sz#2181}(`%`_sz{i#99081}(16))] -[visit_exp sz#2181] -[visit_id sz#2181] -[visit_exp (`%`_sz{i#99081}(16))] -[visit_exp `%`_sz{i#99081}(16)] -[visit_exp i#99081] -[visit_id i#99081] +[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(16)))] +[visit_exp `SPLAT`_vloadop_(`%`_sz(16))] +[visit_exp (`%`_sz(16))] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp x] @@ -95954,26 +75800,16 @@ dims \ I = ao, i#99081, memarg#225, memidx#322, sz#2181, vectype?#35, x [visit_exp ao] [visit_id ao] not free [visit_exp 2] -[check_dims] I ao i#99144 memarg#227 memidx#324 sz#2228 vectype?#36 x -dims \ I = ao, i#99144, memarg#227, memidx#324, sz#2228, vectype?#36, x -[visit_exp `VLOAD`_instr{`vectype?#36`, memidx#324, memarg#227}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2228}(`%`_sz{i#99144}(32))), x, ao)] -[visit_exp `vectype?#36`] -[visit_id vectype?#36] -[visit_exp memidx#324] -[visit_id memidx#324] -[visit_exp memarg#227] -[visit_id memarg#227] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2228}(`%`_sz{i#99144}(32))), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(32))), x, ao)] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(32))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_{sz#2228}(`%`_sz{i#99144}(32)))] -[visit_exp `SPLAT`_vloadop_{sz#2228}(`%`_sz{i#99144}(32))] -[visit_exp sz#2228] -[visit_id sz#2228] -[visit_exp (`%`_sz{i#99144}(32))] -[visit_exp `%`_sz{i#99144}(32)] -[visit_exp i#99144] -[visit_id i#99144] +[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(32)))] +[visit_exp `SPLAT`_vloadop_(`%`_sz(32))] +[visit_exp (`%`_sz(32))] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp x] @@ -95988,26 +75824,16 @@ dims \ I = ao, i#99144, memarg#227, memidx#324, sz#2228, vectype?#36, x [visit_exp ao] [visit_id ao] not free [visit_exp 4] -[check_dims] I ao i#99207 memarg#229 memidx#326 sz#2275 vectype?#37 x -dims \ I = ao, i#99207, memarg#229, memidx#326, sz#2275, vectype?#37, x -[visit_exp `VLOAD`_instr{`vectype?#37`, memidx#326, memarg#229}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2275}(`%`_sz{i#99207}(64))), x, ao)] -[visit_exp `vectype?#37`] -[visit_id vectype?#37] -[visit_exp memidx#326] -[visit_id memidx#326] -[visit_exp memarg#229] -[visit_id memarg#229] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2275}(`%`_sz{i#99207}(64))), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(64))), x, ao)] +[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(64))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_{sz#2275}(`%`_sz{i#99207}(64)))] -[visit_exp `SPLAT`_vloadop_{sz#2275}(`%`_sz{i#99207}(64))] -[visit_exp sz#2275] -[visit_id sz#2275] -[visit_exp (`%`_sz{i#99207}(64))] -[visit_exp `%`_sz{i#99207}(64)] -[visit_exp i#99207] -[visit_id i#99207] +[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(64)))] +[visit_exp `SPLAT`_vloadop_(`%`_sz(64))] +[visit_exp (`%`_sz(64))] +[visit_exp `%`_sz(64)] [visit_exp (64)] [visit_exp 64] [visit_exp x] @@ -96022,28 +75848,16 @@ dims \ I = ao, i#99207, memarg#229, memidx#326, sz#2275, vectype?#37, x [visit_exp ao] [visit_id ao] not free [visit_exp 8] -[check_dims] I ao i#99264 i#99271 memarg#231 memidx#328 sz#2322 vectype?#38 x -dims \ I = ao, i#99264, i#99271, memarg#231, memidx#328, sz#2322, vectype?#38, x -[visit_exp `VLOAD`_instr{`vectype?#38`, memidx#328, memarg#231}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#2322, i#99264}(`%`_sz{i#99271}(32))), x, ao)] -[visit_exp `vectype?#38`] -[visit_id vectype?#38] -[visit_exp memidx#328] -[visit_id memidx#328] -[visit_exp memarg#231] -[visit_id memarg#231] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#2322, i#99264}(`%`_sz{i#99271}(32))), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(32))), x, ao)] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(32))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_{sz#2322, i#99264}(`%`_sz{i#99271}(32)))] -[visit_exp `ZERO`_vloadop_{sz#2322, i#99264}(`%`_sz{i#99271}(32))] -[visit_exp sz#2322] -[visit_id sz#2322] -[visit_exp i#99264] -[visit_id i#99264] -[visit_exp (`%`_sz{i#99271}(32))] -[visit_exp `%`_sz{i#99271}(32)] -[visit_exp i#99271] -[visit_id i#99271] +[visit_exp ?(`ZERO`_vloadop_(`%`_sz(32)))] +[visit_exp `ZERO`_vloadop_(`%`_sz(32))] +[visit_exp (`%`_sz(32))] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp x] @@ -96058,28 +75872,16 @@ dims \ I = ao, i#99264, i#99271, memarg#231, memidx#328, sz#2322, vectype?#38, x [visit_exp ao] [visit_id ao] not free [visit_exp 4] -[check_dims] I ao i#99328 i#99335 memarg#233 memidx#330 sz#2369 vectype?#39 x -dims \ I = ao, i#99328, i#99335, memarg#233, memidx#330, sz#2369, vectype?#39, x -[visit_exp `VLOAD`_instr{`vectype?#39`, memidx#330, memarg#233}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#2369, i#99328}(`%`_sz{i#99335}(64))), x, ao)] -[visit_exp `vectype?#39`] -[visit_id vectype?#39] -[visit_exp memidx#330] -[visit_id memidx#330] -[visit_exp memarg#233] -[visit_id memarg#233] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_{sz#2369, i#99328}(`%`_sz{i#99335}(64))), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(64))), x, ao)] +[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(64))), x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_{sz#2369, i#99328}(`%`_sz{i#99335}(64)))] -[visit_exp `ZERO`_vloadop_{sz#2369, i#99328}(`%`_sz{i#99335}(64))] -[visit_exp sz#2369] -[visit_id sz#2369] -[visit_exp i#99328] -[visit_id i#99328] -[visit_exp (`%`_sz{i#99335}(64))] -[visit_exp `%`_sz{i#99335}(64)] -[visit_exp i#99335] -[visit_id i#99335] +[visit_exp ?(`ZERO`_vloadop_(`%`_sz(64)))] +[visit_exp `ZERO`_vloadop_(`%`_sz(64))] +[visit_exp (`%`_sz(64))] +[visit_exp `%`_sz(64)] [visit_exp (64)] [visit_exp 64] [visit_exp x] @@ -96094,25 +75896,13 @@ dims \ I = ao, i#99328, i#99335, memarg#233, memidx#330, sz#2369, vectype?#39, x [visit_exp ao] [visit_id ao] not free [visit_exp 8] -[check_dims] I ao i i#99391 laneidx#75 memarg#235 memidx#332 sz#2371 vectype#286 x -dims \ I = ao, i, i#99391, laneidx#75, memarg#235, memidx#332, sz#2371, vectype#286, x -[visit_exp `VLOAD_LANE`_instr{vectype#286, sz#2371, memidx#332, memarg#235, laneidx#75}(`V128`_vectype, `%`_sz{i#99391}(8), x, ao, i)] -[visit_exp vectype#286] -[visit_id vectype#286] -[visit_exp sz#2371] -[visit_id sz#2371] -[visit_exp memidx#332] -[visit_id memidx#332] -[visit_exp memarg#235] -[visit_id memarg#235] -[visit_exp laneidx#75] -[visit_id laneidx#75] -[visit_exp (`V128`_vectype, `%`_sz{i#99391}(8), x, ao, i)] +[check_dims] I ao i x +dims \ I = ao, i, x +[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(8), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#99391}(8)] -[visit_exp i#99391] -[visit_id i#99391] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x] @@ -96131,25 +75921,13 @@ dims \ I = ao, i, i#99391, laneidx#75, memarg#235, memidx#332, sz#2371, vectype# [visit_exp 1] [visit_exp i] [visit_id i] not free -[check_dims] I ao i i#99459 laneidx#77 memarg#237 memidx#334 sz#2373 vectype#288 x -dims \ I = ao, i, i#99459, laneidx#77, memarg#237, memidx#334, sz#2373, vectype#288, x -[visit_exp `VLOAD_LANE`_instr{vectype#288, sz#2373, memidx#334, memarg#237, laneidx#77}(`V128`_vectype, `%`_sz{i#99459}(16), x, ao, i)] -[visit_exp vectype#288] -[visit_id vectype#288] -[visit_exp sz#2373] -[visit_id sz#2373] -[visit_exp memidx#334] -[visit_id memidx#334] -[visit_exp memarg#237] -[visit_id memarg#237] -[visit_exp laneidx#77] -[visit_id laneidx#77] -[visit_exp (`V128`_vectype, `%`_sz{i#99459}(16), x, ao, i)] +[check_dims] I ao i x +dims \ I = ao, i, x +[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(16), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#99459}(16)] -[visit_exp i#99459] -[visit_id i#99459] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp x] @@ -96168,25 +75946,13 @@ dims \ I = ao, i, i#99459, laneidx#77, memarg#237, memidx#334, sz#2373, vectype# [visit_exp 2] [visit_exp i] [visit_id i] not free -[check_dims] I ao i i#99527 laneidx#79 memarg#239 memidx#336 sz#2375 vectype#290 x -dims \ I = ao, i, i#99527, laneidx#79, memarg#239, memidx#336, sz#2375, vectype#290, x -[visit_exp `VLOAD_LANE`_instr{vectype#290, sz#2375, memidx#336, memarg#239, laneidx#79}(`V128`_vectype, `%`_sz{i#99527}(32), x, ao, i)] -[visit_exp vectype#290] -[visit_id vectype#290] -[visit_exp sz#2375] -[visit_id sz#2375] -[visit_exp memidx#336] -[visit_id memidx#336] -[visit_exp memarg#239] -[visit_id memarg#239] -[visit_exp laneidx#79] -[visit_id laneidx#79] -[visit_exp (`V128`_vectype, `%`_sz{i#99527}(32), x, ao, i)] +[check_dims] I ao i x +dims \ I = ao, i, x +[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(32), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#99527}(32)] -[visit_exp i#99527] -[visit_id i#99527] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp x] @@ -96205,25 +75971,13 @@ dims \ I = ao, i, i#99527, laneidx#79, memarg#239, memidx#336, sz#2375, vectype# [visit_exp 4] [visit_exp i] [visit_id i] not free -[check_dims] I ao i i#99595 laneidx#81 memarg#241 memidx#338 sz#2377 vectype#292 x -dims \ I = ao, i, i#99595, laneidx#81, memarg#241, memidx#338, sz#2377, vectype#292, x -[visit_exp `VLOAD_LANE`_instr{vectype#292, sz#2377, memidx#338, memarg#241, laneidx#81}(`V128`_vectype, `%`_sz{i#99595}(64), x, ao, i)] -[visit_exp vectype#292] -[visit_id vectype#292] -[visit_exp sz#2377] -[visit_id sz#2377] -[visit_exp memidx#338] -[visit_id memidx#338] -[visit_exp memarg#241] -[visit_id memarg#241] -[visit_exp laneidx#81] -[visit_id laneidx#81] -[visit_exp (`V128`_vectype, `%`_sz{i#99595}(64), x, ao, i)] +[check_dims] I ao i x +dims \ I = ao, i, x +[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(64), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#99595}(64)] -[visit_exp i#99595] -[visit_id i#99595] +[visit_exp `%`_sz(64)] [visit_exp (64)] [visit_exp 64] [visit_exp x] @@ -96242,15 +75996,9 @@ dims \ I = ao, i, i#99595, laneidx#81, memarg#241, memidx#338, sz#2377, vectype# [visit_exp 8] [visit_exp i] [visit_id i] not free -[check_dims] I ao memarg#243 memidx#340 numtype?#58 x -dims \ I = ao, memarg#243, memidx#340, numtype?#58, x -[visit_exp `STORE`_instr{`numtype?#58`, memidx#340, memarg#243}(`I32`_numtype, ?(), x, ao)] -[visit_exp `numtype?#58`] -[visit_id numtype?#58] -[visit_exp memidx#340] -[visit_id memidx#340] -[visit_exp memarg#243] -[visit_id memarg#243] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `STORE`_instr(`I32`_numtype, ?(), x, ao)] [visit_exp (`I32`_numtype, ?(), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -96267,15 +76015,9 @@ dims \ I = ao, memarg#243, memidx#340, numtype?#58, x [visit_exp ao] [visit_id ao] not free [visit_exp 4] -[check_dims] I ao memarg#245 memidx#342 numtype?#59 x -dims \ I = ao, memarg#245, memidx#342, numtype?#59, x -[visit_exp `STORE`_instr{`numtype?#59`, memidx#342, memarg#245}(`I64`_numtype, ?(), x, ao)] -[visit_exp `numtype?#59`] -[visit_id numtype?#59] -[visit_exp memidx#342] -[visit_id memidx#342] -[visit_exp memarg#245] -[visit_id memarg#245] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `STORE`_instr(`I64`_numtype, ?(), x, ao)] [visit_exp (`I64`_numtype, ?(), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] @@ -96292,15 +76034,9 @@ dims \ I = ao, memarg#245, memidx#342, numtype?#59, x [visit_exp ao] [visit_id ao] not free [visit_exp 8] -[check_dims] I ao memarg#247 memidx#344 numtype?#60 x -dims \ I = ao, memarg#247, memidx#344, numtype?#60, x -[visit_exp `STORE`_instr{`numtype?#60`, memidx#344, memarg#247}(`F32`_numtype, ?(), x, ao)] -[visit_exp `numtype?#60`] -[visit_id numtype?#60] -[visit_exp memidx#344] -[visit_id memidx#344] -[visit_exp memarg#247] -[visit_id memarg#247] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `STORE`_instr(`F32`_numtype, ?(), x, ao)] [visit_exp (`F32`_numtype, ?(), x, ao)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -96317,15 +76053,9 @@ dims \ I = ao, memarg#247, memidx#344, numtype?#60, x [visit_exp ao] [visit_id ao] not free [visit_exp 4] -[check_dims] I ao memarg#249 memidx#346 numtype?#61 x -dims \ I = ao, memarg#249, memidx#346, numtype?#61, x -[visit_exp `STORE`_instr{`numtype?#61`, memidx#346, memarg#249}(`F64`_numtype, ?(), x, ao)] -[visit_exp `numtype?#61`] -[visit_id numtype?#61] -[visit_exp memidx#346] -[visit_id memidx#346] -[visit_exp memarg#249] -[visit_id memarg#249] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `STORE`_instr(`F64`_numtype, ?(), x, ao)] [visit_exp (`F64`_numtype, ?(), x, ao)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -96342,28 +76072,16 @@ dims \ I = ao, memarg#249, memidx#346, numtype?#61, x [visit_exp ao] [visit_id ao] not free [visit_exp 8] -[check_dims] I ao i#99803 i#99804 memarg#251 memidx#348 numtype?#62 sz#2390 x -dims \ I = ao, i#99803, i#99804, memarg#251, memidx#348, numtype?#62, sz#2390, x -[visit_exp `STORE`_instr{`numtype?#62`, memidx#348, memarg#251}(`I32`_numtype, ?(`%`_storeop_{sz#2390, i#99803}(`%`_sz{i#99804}(8))), x, ao)] -[visit_exp `numtype?#62`] -[visit_id numtype?#62] -[visit_exp memidx#348] -[visit_id memidx#348] -[visit_exp memarg#251] -[visit_id memarg#251] -[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#2390, i#99803}(`%`_sz{i#99804}(8))), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] +[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#2390, i#99803}(`%`_sz{i#99804}(8)))] -[visit_exp `%`_storeop_{sz#2390, i#99803}(`%`_sz{i#99804}(8))] -[visit_exp sz#2390] -[visit_id sz#2390] -[visit_exp i#99803] -[visit_id i#99803] -[visit_exp (`%`_sz{i#99804}(8))] -[visit_exp `%`_sz{i#99804}(8)] -[visit_exp i#99804] -[visit_id i#99804] +[visit_exp ?(`%`_storeop_(`%`_sz(8)))] +[visit_exp `%`_storeop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x] @@ -96378,28 +76096,16 @@ dims \ I = ao, i#99803, i#99804, memarg#251, memidx#348, numtype?#62, sz#2390, x [visit_exp ao] [visit_id ao] not free [visit_exp 1] -[check_dims] I ao i#99876 i#99877 memarg#253 memidx#350 numtype?#63 sz#2403 x -dims \ I = ao, i#99876, i#99877, memarg#253, memidx#350, numtype?#63, sz#2403, x -[visit_exp `STORE`_instr{`numtype?#63`, memidx#350, memarg#253}(`I32`_numtype, ?(`%`_storeop_{sz#2403, i#99876}(`%`_sz{i#99877}(16))), x, ao)] -[visit_exp `numtype?#63`] -[visit_id numtype?#63] -[visit_exp memidx#350] -[visit_id memidx#350] -[visit_exp memarg#253] -[visit_id memarg#253] -[visit_exp (`I32`_numtype, ?(`%`_storeop_{sz#2403, i#99876}(`%`_sz{i#99877}(16))), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] +[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#2403, i#99876}(`%`_sz{i#99877}(16)))] -[visit_exp `%`_storeop_{sz#2403, i#99876}(`%`_sz{i#99877}(16))] -[visit_exp sz#2403] -[visit_id sz#2403] -[visit_exp i#99876] -[visit_id i#99876] -[visit_exp (`%`_sz{i#99877}(16))] -[visit_exp `%`_sz{i#99877}(16)] -[visit_exp i#99877] -[visit_id i#99877] +[visit_exp ?(`%`_storeop_(`%`_sz(16)))] +[visit_exp `%`_storeop_(`%`_sz(16))] +[visit_exp (`%`_sz(16))] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp x] @@ -96414,28 +76120,16 @@ dims \ I = ao, i#99876, i#99877, memarg#253, memidx#350, numtype?#63, sz#2403, x [visit_exp ao] [visit_id ao] not free [visit_exp 2] -[check_dims] I ao i#99949 i#99950 memarg#255 memidx#352 numtype?#64 sz#2416 x -dims \ I = ao, i#99949, i#99950, memarg#255, memidx#352, numtype?#64, sz#2416, x -[visit_exp `STORE`_instr{`numtype?#64`, memidx#352, memarg#255}(`I64`_numtype, ?(`%`_storeop_{sz#2416, i#99949}(`%`_sz{i#99950}(8))), x, ao)] -[visit_exp `numtype?#64`] -[visit_id numtype?#64] -[visit_exp memidx#352] -[visit_id memidx#352] -[visit_exp memarg#255] -[visit_id memarg#255] -[visit_exp (`I64`_numtype, ?(`%`_storeop_{sz#2416, i#99949}(`%`_sz{i#99950}(8))), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] +[visit_exp (`I64`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#2416, i#99949}(`%`_sz{i#99950}(8)))] -[visit_exp `%`_storeop_{sz#2416, i#99949}(`%`_sz{i#99950}(8))] -[visit_exp sz#2416] -[visit_id sz#2416] -[visit_exp i#99949] -[visit_id i#99949] -[visit_exp (`%`_sz{i#99950}(8))] -[visit_exp `%`_sz{i#99950}(8)] -[visit_exp i#99950] -[visit_id i#99950] +[visit_exp ?(`%`_storeop_(`%`_sz(8)))] +[visit_exp `%`_storeop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x] @@ -96450,28 +76144,16 @@ dims \ I = ao, i#99949, i#99950, memarg#255, memidx#352, numtype?#64, sz#2416, x [visit_exp ao] [visit_id ao] not free [visit_exp 1] -[check_dims] I ao i#100022 i#100023 memarg#257 memidx#354 numtype?#65 sz#2429 x -dims \ I = ao, i#100022, i#100023, memarg#257, memidx#354, numtype?#65, sz#2429, x -[visit_exp `STORE`_instr{`numtype?#65`, memidx#354, memarg#257}(`I64`_numtype, ?(`%`_storeop_{sz#2429, i#100022}(`%`_sz{i#100023}(16))), x, ao)] -[visit_exp `numtype?#65`] -[visit_id numtype?#65] -[visit_exp memidx#354] -[visit_id memidx#354] -[visit_exp memarg#257] -[visit_id memarg#257] -[visit_exp (`I64`_numtype, ?(`%`_storeop_{sz#2429, i#100022}(`%`_sz{i#100023}(16))), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] +[visit_exp (`I64`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#2429, i#100022}(`%`_sz{i#100023}(16)))] -[visit_exp `%`_storeop_{sz#2429, i#100022}(`%`_sz{i#100023}(16))] -[visit_exp sz#2429] -[visit_id sz#2429] -[visit_exp i#100022] -[visit_id i#100022] -[visit_exp (`%`_sz{i#100023}(16))] -[visit_exp `%`_sz{i#100023}(16)] -[visit_exp i#100023] -[visit_id i#100023] +[visit_exp ?(`%`_storeop_(`%`_sz(16)))] +[visit_exp `%`_storeop_(`%`_sz(16))] +[visit_exp (`%`_sz(16))] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp x] @@ -96486,28 +76168,16 @@ dims \ I = ao, i#100022, i#100023, memarg#257, memidx#354, numtype?#65, sz#2429, [visit_exp ao] [visit_id ao] not free [visit_exp 2] -[check_dims] I ao i#100095 i#100096 memarg#259 memidx#356 numtype?#66 sz#2442 x -dims \ I = ao, i#100095, i#100096, memarg#259, memidx#356, numtype?#66, sz#2442, x -[visit_exp `STORE`_instr{`numtype?#66`, memidx#356, memarg#259}(`I64`_numtype, ?(`%`_storeop_{sz#2442, i#100095}(`%`_sz{i#100096}(32))), x, ao)] -[visit_exp `numtype?#66`] -[visit_id numtype?#66] -[visit_exp memidx#356] -[visit_id memidx#356] -[visit_exp memarg#259] -[visit_id memarg#259] -[visit_exp (`I64`_numtype, ?(`%`_storeop_{sz#2442, i#100095}(`%`_sz{i#100096}(32))), x, ao)] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao)] +[visit_exp (`I64`_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao)] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp ?(`%`_storeop_{sz#2442, i#100095}(`%`_sz{i#100096}(32)))] -[visit_exp `%`_storeop_{sz#2442, i#100095}(`%`_sz{i#100096}(32))] -[visit_exp sz#2442] -[visit_id sz#2442] -[visit_exp i#100095] -[visit_id i#100095] -[visit_exp (`%`_sz{i#100096}(32))] -[visit_exp `%`_sz{i#100096}(32)] -[visit_exp i#100096] -[visit_id i#100096] +[visit_exp ?(`%`_storeop_(`%`_sz(32)))] +[visit_exp `%`_storeop_(`%`_sz(32))] +[visit_exp (`%`_sz(32))] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp x] @@ -96522,15 +76192,9 @@ dims \ I = ao, i#100095, i#100096, memarg#259, memidx#356, numtype?#66, sz#2442, [visit_exp ao] [visit_id ao] not free [visit_exp 4] -[check_dims] I ao memarg#261 memidx#358 vectype#294 x -dims \ I = ao, memarg#261, memidx#358, vectype#294, x -[visit_exp `VSTORE`_instr{vectype#294, memidx#358, memarg#261}(`V128`_vectype, x, ao)] -[visit_exp vectype#294] -[visit_id vectype#294] -[visit_exp memidx#358] -[visit_id memidx#358] -[visit_exp memarg#261] -[visit_id memarg#261] +[check_dims] I ao x +dims \ I = ao, x +[visit_exp `VSTORE`_instr(`V128`_vectype, x, ao)] [visit_exp (`V128`_vectype, x, ao)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -96546,25 +76210,13 @@ dims \ I = ao, memarg#261, memidx#358, vectype#294, x [visit_exp ao] [visit_id ao] not free [visit_exp 16] -[check_dims] I ao i i#100183 laneidx#83 memarg#263 memidx#360 sz#2444 vectype#296 x -dims \ I = ao, i, i#100183, laneidx#83, memarg#263, memidx#360, sz#2444, vectype#296, x -[visit_exp `VSTORE_LANE`_instr{vectype#296, sz#2444, memidx#360, memarg#263, laneidx#83}(`V128`_vectype, `%`_sz{i#100183}(8), x, ao, i)] -[visit_exp vectype#296] -[visit_id vectype#296] -[visit_exp sz#2444] -[visit_id sz#2444] -[visit_exp memidx#360] -[visit_id memidx#360] -[visit_exp memarg#263] -[visit_id memarg#263] -[visit_exp laneidx#83] -[visit_id laneidx#83] -[visit_exp (`V128`_vectype, `%`_sz{i#100183}(8), x, ao, i)] +[check_dims] I ao i x +dims \ I = ao, i, x +[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(8), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#100183}(8)] -[visit_exp i#100183] -[visit_id i#100183] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] [visit_exp x] @@ -96583,25 +76235,13 @@ dims \ I = ao, i, i#100183, laneidx#83, memarg#263, memidx#360, sz#2444, vectype [visit_exp 1] [visit_exp i] [visit_id i] not free -[check_dims] I ao i i#100251 laneidx#85 memarg#265 memidx#362 sz#2446 vectype#298 x -dims \ I = ao, i, i#100251, laneidx#85, memarg#265, memidx#362, sz#2446, vectype#298, x -[visit_exp `VSTORE_LANE`_instr{vectype#298, sz#2446, memidx#362, memarg#265, laneidx#85}(`V128`_vectype, `%`_sz{i#100251}(16), x, ao, i)] -[visit_exp vectype#298] -[visit_id vectype#298] -[visit_exp sz#2446] -[visit_id sz#2446] -[visit_exp memidx#362] -[visit_id memidx#362] -[visit_exp memarg#265] -[visit_id memarg#265] -[visit_exp laneidx#85] -[visit_id laneidx#85] -[visit_exp (`V128`_vectype, `%`_sz{i#100251}(16), x, ao, i)] +[check_dims] I ao i x +dims \ I = ao, i, x +[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(16), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#100251}(16)] -[visit_exp i#100251] -[visit_id i#100251] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_exp x] @@ -96620,25 +76260,13 @@ dims \ I = ao, i, i#100251, laneidx#85, memarg#265, memidx#362, sz#2446, vectype [visit_exp 2] [visit_exp i] [visit_id i] not free -[check_dims] I ao i i#100319 laneidx#87 memarg#267 memidx#364 sz#2448 vectype#300 x -dims \ I = ao, i, i#100319, laneidx#87, memarg#267, memidx#364, sz#2448, vectype#300, x -[visit_exp `VSTORE_LANE`_instr{vectype#300, sz#2448, memidx#364, memarg#267, laneidx#87}(`V128`_vectype, `%`_sz{i#100319}(32), x, ao, i)] -[visit_exp vectype#300] -[visit_id vectype#300] -[visit_exp sz#2448] -[visit_id sz#2448] -[visit_exp memidx#364] -[visit_id memidx#364] -[visit_exp memarg#267] -[visit_id memarg#267] -[visit_exp laneidx#87] -[visit_id laneidx#87] -[visit_exp (`V128`_vectype, `%`_sz{i#100319}(32), x, ao, i)] +[check_dims] I ao i x +dims \ I = ao, i, x +[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(32), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#100319}(32)] -[visit_exp i#100319] -[visit_id i#100319] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_exp x] @@ -96657,25 +76285,13 @@ dims \ I = ao, i, i#100319, laneidx#87, memarg#267, memidx#364, sz#2448, vectype [visit_exp 4] [visit_exp i] [visit_id i] not free -[check_dims] I ao i i#100387 laneidx#89 memarg#269 memidx#366 sz#2450 vectype#302 x -dims \ I = ao, i, i#100387, laneidx#89, memarg#269, memidx#366, sz#2450, vectype#302, x -[visit_exp `VSTORE_LANE`_instr{vectype#302, sz#2450, memidx#366, memarg#269, laneidx#89}(`V128`_vectype, `%`_sz{i#100387}(64), x, ao, i)] -[visit_exp vectype#302] -[visit_id vectype#302] -[visit_exp sz#2450] -[visit_id sz#2450] -[visit_exp memidx#366] -[visit_id memidx#366] -[visit_exp memarg#269] -[visit_id memarg#269] -[visit_exp laneidx#89] -[visit_id laneidx#89] -[visit_exp (`V128`_vectype, `%`_sz{i#100387}(64), x, ao, i)] +[check_dims] I ao i x +dims \ I = ao, i, x +[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i)] +[visit_exp (`V128`_vectype, `%`_sz(64), x, ao, i)] [visit_exp `V128`_vectype] [visit_exp ()] -[visit_exp `%`_sz{i#100387}(64)] -[visit_exp i#100387] -[visit_id i#100387] +[visit_exp `%`_sz(64)] [visit_exp (64)] [visit_exp 64] [visit_exp x] @@ -96694,11 +76310,9 @@ dims \ I = ao, i, i#100387, laneidx#89, memarg#269, memidx#366, sz#2450, vectype [visit_exp 8] [visit_exp i] [visit_id i] not free -[check_dims] I memidx#368 x -dims \ I = memidx#368, x -[visit_exp `MEMORY.SIZE`_instr{memidx#368}(x)] -[visit_exp memidx#368] -[visit_id memidx#368] +[check_dims] I x +dims \ I = x +[visit_exp `MEMORY.SIZE`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -96707,11 +76321,9 @@ dims \ I = memidx#368, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I memidx#370 x -dims \ I = memidx#370, x -[visit_exp `MEMORY.GROW`_instr{memidx#370}(x)] -[visit_exp memidx#370] -[visit_id memidx#370] +[check_dims] I x +dims \ I = x +[visit_exp `MEMORY.GROW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -96720,11 +76332,9 @@ dims \ I = memidx#370, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I memidx#372 x -dims \ I = memidx#372, x -[visit_exp `MEMORY.FILL`_instr{memidx#372}(x)] -[visit_exp memidx#372] -[visit_id memidx#372] +[check_dims] I x +dims \ I = x +[visit_exp `MEMORY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -96733,11 +76343,9 @@ dims \ I = memidx#372, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I memidx#374 x_1 x_2 -dims \ I = memidx#374, x_1, x_2 -[visit_exp `MEMORY.COPY`_instr{memidx#374}(x_1, x_2)] -[visit_exp memidx#374] -[visit_id memidx#374] +[check_dims] I x_1 x_2 +dims \ I = x_1, x_2 +[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] @@ -96753,13 +76361,9 @@ dims \ I = memidx#374, x_1, x_2 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I dataidx#55 memidx#377 x y -dims \ I = dataidx#55, memidx#377, x, y -[visit_exp `MEMORY.INIT`_instr{memidx#377, dataidx#55}(x, y)] -[visit_exp memidx#377] -[visit_id memidx#377] -[visit_exp dataidx#55] -[visit_id dataidx#55] +[check_dims] I x y +dims \ I = x, y +[visit_exp `MEMORY.INIT`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -96927,11 +76531,9 @@ ps' = (I : I) [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dataidx#57 x -dims \ I = dataidx#57, x -[visit_exp `DATA.DROP`_instr{dataidx#57}(x)] -[visit_exp dataidx#57] -[visit_id dataidx#57] +[check_dims] I x +dims \ I = x +[visit_exp `DATA.DROP`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -96943,11 +76545,9 @@ dims \ I = dataidx#57, x [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I heaptype#1929 ht -dims \ I = heaptype#1929, ht -[visit_exp `REF.NULL`_instr{heaptype#1929}(ht)] -[visit_exp heaptype#1929] -[visit_id heaptype#1929] +[check_dims] I ht +dims \ I = ht +[visit_exp `REF.NULL`_instr(ht)] [visit_exp (ht)] [visit_exp ht] [visit_id ht] @@ -96956,11 +76556,9 @@ dims \ I = heaptype#1929, ht [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I funcidx#3387 x -dims \ I = funcidx#3387, x -[visit_exp `REF.FUNC`_instr{funcidx#3387}(x)] -[visit_exp funcidx#3387] -[visit_id funcidx#3387] +[check_dims] I x +dims \ I = x +[visit_exp `REF.FUNC`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -96981,11 +76579,9 @@ dims \ I = dims \ I = [visit_exp `REF.EQ`_instr] [visit_exp ()] -[check_dims] I reftype#4311 rt -dims \ I = reftype#4311, rt -[visit_exp `REF.TEST`_instr{reftype#4311}(rt)] -[visit_exp reftype#4311] -[visit_id reftype#4311] +[check_dims] I rt +dims \ I = rt +[visit_exp `REF.TEST`_instr(rt)] [visit_exp (rt)] [visit_exp rt] [visit_id rt] @@ -96994,11 +76590,9 @@ dims \ I = reftype#4311, rt [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I reftype#4313 rt -dims \ I = reftype#4313, rt -[visit_exp `REF.CAST`_instr{reftype#4313}(rt)] -[visit_exp reftype#4313] -[visit_id reftype#4313] +[check_dims] I rt +dims \ I = rt +[visit_exp `REF.CAST`_instr(rt)] [visit_exp (rt)] [visit_exp rt] [visit_id rt] @@ -97014,30 +76608,24 @@ ps' = (I : I) dims \ I = [visit_exp `REF.I31`_instr] [visit_exp ()] -[check_dims] I sx#16085 -dims \ I = sx#16085 -[visit_exp `I31.GET`_instr{sx#16085}(`S`_sx)] -[visit_exp sx#16085] -[visit_id sx#16085] +[check_dims] I +dims \ I = +[visit_exp `I31.GET`_instr(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I sx#16087 -dims \ I = sx#16087 -[visit_exp `I31.GET`_instr{sx#16087}(`U`_sx)] -[visit_exp sx#16087] -[visit_id sx#16087] +[check_dims] I +dims \ I = +[visit_exp `I31.GET`_instr(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I typeidx#2137 x -dims \ I = typeidx#2137, x -[visit_exp `STRUCT.NEW`_instr{typeidx#2137}(x)] -[visit_exp typeidx#2137] -[visit_id typeidx#2137] +[check_dims] I x +dims \ I = x +[visit_exp `STRUCT.NEW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -97046,11 +76634,9 @@ dims \ I = typeidx#2137, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I typeidx#2139 x -dims \ I = typeidx#2139, x -[visit_exp `STRUCT.NEW_DEFAULT`_instr{typeidx#2139}(x)] -[visit_exp typeidx#2139] -[visit_id typeidx#2139] +[check_dims] I x +dims \ I = x +[visit_exp `STRUCT.NEW_DEFAULT`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -97059,15 +76645,9 @@ dims \ I = typeidx#2139, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I i sx?#59 typeidx#2141 u32#48 x -dims \ I = i, sx?#59, typeidx#2141, u32#48, x -[visit_exp `STRUCT.GET`_instr{`sx?#59`, typeidx#2141, u32#48}(?(), x, i)] -[visit_exp `sx?#59`] -[visit_id sx?#59] -[visit_exp typeidx#2141] -[visit_id typeidx#2141] -[visit_exp u32#48] -[visit_id u32#48] +[check_dims] I i x +dims \ I = i, x +[visit_exp `STRUCT.GET`_instr(?(), x, i)] [visit_exp (?(), x, i)] [visit_exp ?()] [visit_exp x] @@ -97086,15 +76666,9 @@ dims \ I = i, sx?#59, typeidx#2141, u32#48, x [visit_id I] no dims [visit_exp x] [visit_id x] not free -[check_dims] I i sx?#61 typeidx#2143 u32#50 x -dims \ I = i, sx?#61, typeidx#2143, u32#50, x -[visit_exp `STRUCT.GET`_instr{`sx?#61`, typeidx#2143, u32#50}(?(`S`_sx), x, i)] -[visit_exp `sx?#61`] -[visit_id sx?#61] -[visit_exp typeidx#2143] -[visit_id typeidx#2143] -[visit_exp u32#50] -[visit_id u32#50] +[check_dims] I i x +dims \ I = i, x +[visit_exp `STRUCT.GET`_instr(?(`S`_sx), x, i)] [visit_exp (?(`S`_sx), x, i)] [visit_exp ?(`S`_sx)] [visit_exp `S`_sx] @@ -97115,15 +76689,9 @@ dims \ I = i, sx?#61, typeidx#2143, u32#50, x [visit_id I] no dims [visit_exp x] [visit_id x] not free -[check_dims] I i sx?#63 typeidx#2145 u32#52 x -dims \ I = i, sx?#63, typeidx#2145, u32#52, x -[visit_exp `STRUCT.GET`_instr{`sx?#63`, typeidx#2145, u32#52}(?(`U`_sx), x, i)] -[visit_exp `sx?#63`] -[visit_id sx?#63] -[visit_exp typeidx#2145] -[visit_id typeidx#2145] -[visit_exp u32#52] -[visit_id u32#52] +[check_dims] I i x +dims \ I = i, x +[visit_exp `STRUCT.GET`_instr(?(`U`_sx), x, i)] [visit_exp (?(`U`_sx), x, i)] [visit_exp ?(`U`_sx)] [visit_exp `U`_sx] @@ -97144,13 +76712,9 @@ dims \ I = i, sx?#63, typeidx#2145, u32#52, x [visit_id I] no dims [visit_exp x] [visit_id x] not free -[check_dims] I i typeidx#2147 u32#54 x -dims \ I = i, typeidx#2147, u32#54, x -[visit_exp `STRUCT.SET`_instr{typeidx#2147, u32#54}(x, i)] -[visit_exp typeidx#2147] -[visit_id typeidx#2147] -[visit_exp u32#54] -[visit_id u32#54] +[check_dims] I i x +dims \ I = i, x +[visit_exp `STRUCT.SET`_instr(x, i)] [visit_exp (x, i)] [visit_exp x] [visit_id x] @@ -97171,11 +76735,9 @@ dims \ I = i, typeidx#2147, u32#54, x [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I typeidx#2149 x -dims \ I = typeidx#2149, x -[visit_exp `ARRAY.NEW`_instr{typeidx#2149}(x)] -[visit_exp typeidx#2149] -[visit_id typeidx#2149] +[check_dims] I x +dims \ I = x +[visit_exp `ARRAY.NEW`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -97184,11 +76746,9 @@ dims \ I = typeidx#2149, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I typeidx#2151 x -dims \ I = typeidx#2151, x -[visit_exp `ARRAY.NEW_DEFAULT`_instr{typeidx#2151}(x)] -[visit_exp typeidx#2151] -[visit_id typeidx#2151] +[check_dims] I x +dims \ I = x +[visit_exp `ARRAY.NEW_DEFAULT`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -97197,19 +76757,13 @@ dims \ I = typeidx#2151, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I i#101266 i#101306 n typeidx#2153 u32#56 x -dims \ I = i#101266, i#101306, n, typeidx#2153, u32#56, x -[visit_exp `ARRAY.NEW_FIXED`_instr{typeidx#2153, u32#56}(x, `%`_u32{i#101306}(n))] -[visit_exp typeidx#2153] -[visit_id typeidx#2153] -[visit_exp u32#56] -[visit_id u32#56] -[visit_exp (x, `%`_u32{i#101306}(n))] +[check_dims] I n x +dims \ I = n, x +[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] +[visit_exp (x, `%`_u32(n))] [visit_exp x] [visit_id x] -[visit_exp `%`_u32{i#101306}(n)] -[visit_exp i#101306] -[visit_id i#101306] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] @@ -97218,19 +76772,13 @@ dims \ I = i#101266, i#101306, n, typeidx#2153, u32#56, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `%`_u32{i#101266}(n)] -[visit_exp i#101266] -[visit_id i#101266] +[visit_exp `%`_u32(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free -[check_dims] I dataidx#59 typeidx#2155 x y -dims \ I = dataidx#59, typeidx#2155, x, y -[visit_exp `ARRAY.NEW_DATA`_instr{typeidx#2155, dataidx#59}(x, y)] -[visit_exp typeidx#2155] -[visit_id typeidx#2155] -[visit_exp dataidx#59] -[visit_id dataidx#59] +[check_dims] I x y +dims \ I = x, y +[visit_exp `ARRAY.NEW_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -97246,13 +76794,9 @@ dims \ I = dataidx#59, typeidx#2155, x, y [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I elemidx#61 typeidx#2157 x y -dims \ I = elemidx#61, typeidx#2157, x, y -[visit_exp `ARRAY.NEW_ELEM`_instr{typeidx#2157, elemidx#61}(x, y)] -[visit_exp typeidx#2157] -[visit_id typeidx#2157] -[visit_exp elemidx#61] -[visit_id elemidx#61] +[check_dims] I x y +dims \ I = x, y +[visit_exp `ARRAY.NEW_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -97268,13 +76812,9 @@ dims \ I = elemidx#61, typeidx#2157, x, y [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I sx?#65 typeidx#2159 x -dims \ I = sx?#65, typeidx#2159, x -[visit_exp `ARRAY.GET`_instr{`sx?#65`, typeidx#2159}(?(), x)] -[visit_exp `sx?#65`] -[visit_id sx?#65] -[visit_exp typeidx#2159] -[visit_id typeidx#2159] +[check_dims] I x +dims \ I = x +[visit_exp `ARRAY.GET`_instr(?(), x)] [visit_exp (?(), x)] [visit_exp ?()] [visit_exp x] @@ -97284,13 +76824,9 @@ dims \ I = sx?#65, typeidx#2159, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I sx?#67 typeidx#2161 x -dims \ I = sx?#67, typeidx#2161, x -[visit_exp `ARRAY.GET`_instr{`sx?#67`, typeidx#2161}(?(`S`_sx), x)] -[visit_exp `sx?#67`] -[visit_id sx?#67] -[visit_exp typeidx#2161] -[visit_id typeidx#2161] +[check_dims] I x +dims \ I = x +[visit_exp `ARRAY.GET`_instr(?(`S`_sx), x)] [visit_exp (?(`S`_sx), x)] [visit_exp ?(`S`_sx)] [visit_exp `S`_sx] @@ -97302,13 +76838,9 @@ dims \ I = sx?#67, typeidx#2161, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I sx?#69 typeidx#2163 x -dims \ I = sx?#69, typeidx#2163, x -[visit_exp `ARRAY.GET`_instr{`sx?#69`, typeidx#2163}(?(`U`_sx), x)] -[visit_exp `sx?#69`] -[visit_id sx?#69] -[visit_exp typeidx#2163] -[visit_id typeidx#2163] +[check_dims] I x +dims \ I = x +[visit_exp `ARRAY.GET`_instr(?(`U`_sx), x)] [visit_exp (?(`U`_sx), x)] [visit_exp ?(`U`_sx)] [visit_exp `U`_sx] @@ -97320,11 +76852,9 @@ dims \ I = sx?#69, typeidx#2163, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I typeidx#2165 x -dims \ I = typeidx#2165, x -[visit_exp `ARRAY.SET`_instr{typeidx#2165}(x)] -[visit_exp typeidx#2165] -[visit_id typeidx#2165] +[check_dims] I x +dims \ I = x +[visit_exp `ARRAY.SET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -97337,11 +76867,9 @@ dims \ I = typeidx#2165, x dims \ I = [visit_exp `ARRAY.LEN`_instr] [visit_exp ()] -[check_dims] I typeidx#2167 x -dims \ I = typeidx#2167, x -[visit_exp `ARRAY.FILL`_instr{typeidx#2167}(x)] -[visit_exp typeidx#2167] -[visit_id typeidx#2167] +[check_dims] I x +dims \ I = x +[visit_exp `ARRAY.FILL`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] @@ -97350,11 +76878,9 @@ dims \ I = typeidx#2167, x [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I typeidx#2169 x_1 x_2 -dims \ I = typeidx#2169, x_1, x_2 -[visit_exp `ARRAY.COPY`_instr{typeidx#2169}(x_1, x_2)] -[visit_exp typeidx#2169] -[visit_id typeidx#2169] +[check_dims] I x_1 x_2 +dims \ I = x_1, x_2 +[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] [visit_exp (x_1, x_2)] [visit_exp x_1] [visit_id x_1] @@ -97370,13 +76896,9 @@ dims \ I = typeidx#2169, x_1, x_2 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I dataidx#61 typeidx#2172 x y -dims \ I = dataidx#61, typeidx#2172, x, y -[visit_exp `ARRAY.INIT_DATA`_instr{typeidx#2172, dataidx#61}(x, y)] -[visit_exp typeidx#2172] -[visit_id typeidx#2172] -[visit_exp dataidx#61] -[visit_id dataidx#61] +[check_dims] I x y +dims \ I = x, y +[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -97392,13 +76914,9 @@ dims \ I = dataidx#61, typeidx#2172, x, y [visit_exp I] [visit_id I] not free [visit_id I] no dims -[check_dims] I elemidx#63 typeidx#2174 x y -dims \ I = elemidx#63, typeidx#2174, x, y -[visit_exp `ARRAY.INIT_ELEM`_instr{typeidx#2174, elemidx#63}(x, y)] -[visit_exp typeidx#2174] -[visit_id typeidx#2174] -[visit_exp elemidx#63] -[visit_id elemidx#63] +[check_dims] I x y +dims \ I = x, y +[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] [visit_exp (x, y)] [visit_exp x] [visit_id x] @@ -97428,11 +76946,9 @@ dims \ I = [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I c numtype#891 -dims \ I = c, numtype#891 -[visit_exp `CONST`_instr{numtype#891}(`I32`_numtype, c)] -[visit_exp numtype#891] -[visit_id numtype#891] +[check_dims] I c +dims \ I = c +[visit_exp `CONST`_instr(`I32`_numtype, c)] [visit_exp (`I32`_numtype, c)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -97440,11 +76956,9 @@ dims \ I = c, numtype#891 [visit_id c] [visit_exp c] [visit_id c] not free -[check_dims] I c numtype#893 -dims \ I = c, numtype#893 -[visit_exp `CONST`_instr{numtype#893}(`I64`_numtype, c)] -[visit_exp numtype#893] -[visit_id numtype#893] +[check_dims] I c +dims \ I = c +[visit_exp `CONST`_instr(`I64`_numtype, c)] [visit_exp (`I64`_numtype, c)] [visit_exp `I64`_numtype] [visit_exp ()] @@ -97452,11 +76966,9 @@ dims \ I = c, numtype#893 [visit_id c] [visit_exp c] [visit_id c] not free -[check_dims] I c numtype#895 -dims \ I = c, numtype#895 -[visit_exp `CONST`_instr{numtype#895}(`F32`_numtype, c)] -[visit_exp numtype#895] -[visit_id numtype#895] +[check_dims] I c +dims \ I = c +[visit_exp `CONST`_instr(`F32`_numtype, c)] [visit_exp (`F32`_numtype, c)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -97464,11 +76976,9 @@ dims \ I = c, numtype#895 [visit_id c] [visit_exp c] [visit_id c] not free -[check_dims] I c numtype#897 -dims \ I = c, numtype#897 -[visit_exp `CONST`_instr{numtype#897}(`F64`_numtype, c)] -[visit_exp numtype#897] -[visit_id numtype#897] +[check_dims] I c +dims \ I = c +[visit_exp `CONST`_instr(`F64`_numtype, c)] [visit_exp (`F64`_numtype, c)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -97479,11 +76989,9 @@ dims \ I = c, numtype#897 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#899 -dims \ I = numtype#899 -[visit_exp `TESTOP`_instr{numtype#899}(`I32`_numtype, `EQZ`_testop_)] -[visit_exp numtype#899] -[visit_id numtype#899] +[check_dims] I +dims \ I = +[visit_exp `TESTOP`_instr(`I32`_numtype, `EQZ`_testop_)] [visit_exp (`I32`_numtype, `EQZ`_testop_)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -97492,11 +77000,9 @@ dims \ I = numtype#899 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#901 -dims \ I = numtype#901 -[visit_exp `TESTOP`_instr{numtype#901}(`I64`_numtype, `EQZ`_testop_)] -[visit_exp numtype#901] -[visit_id numtype#901] +[check_dims] I +dims \ I = +[visit_exp `TESTOP`_instr(`I64`_numtype, `EQZ`_testop_)] [visit_exp (`I64`_numtype, `EQZ`_testop_)] [visit_exp `I64`_numtype] [visit_exp ()] @@ -97505,331 +77011,247 @@ dims \ I = numtype#901 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#903 -dims \ I = numtype#903 -[visit_exp `RELOP`_instr{numtype#903}(`I32`_numtype, `EQ`_relop_)] -[visit_exp numtype#903] -[visit_id numtype#903] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I32`_numtype, `EQ`_relop_)] [visit_exp (`I32`_numtype, `EQ`_relop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `EQ`_relop_] [visit_exp ()] -[check_dims] I numtype#905 -dims \ I = numtype#905 -[visit_exp `RELOP`_instr{numtype#905}(`I32`_numtype, `NE`_relop_)] -[visit_exp numtype#905] -[visit_id numtype#905] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I32`_numtype, `NE`_relop_)] [visit_exp (`I32`_numtype, `NE`_relop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `NE`_relop_] [visit_exp ()] -[check_dims] I numtype#907 sx#16331 -dims \ I = numtype#907, sx#16331 -[visit_exp `RELOP`_instr{numtype#907}(`I32`_numtype, `LT`_relop_{sx#16331}(`S`_sx))] -[visit_exp numtype#907] -[visit_id numtype#907] -[visit_exp (`I32`_numtype, `LT`_relop_{sx#16331}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I32`_numtype, `LT`_relop_(`S`_sx))] +[visit_exp (`I32`_numtype, `LT`_relop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `LT`_relop_{sx#16331}(`S`_sx)] -[visit_exp sx#16331] -[visit_id sx#16331] +[visit_exp `LT`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#909 sx#16455 -dims \ I = numtype#909, sx#16455 -[visit_exp `RELOP`_instr{numtype#909}(`I32`_numtype, `LT`_relop_{sx#16455}(`U`_sx))] -[visit_exp numtype#909] -[visit_id numtype#909] -[visit_exp (`I32`_numtype, `LT`_relop_{sx#16455}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I32`_numtype, `LT`_relop_(`U`_sx))] +[visit_exp (`I32`_numtype, `LT`_relop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `LT`_relop_{sx#16455}(`U`_sx)] -[visit_exp sx#16455] -[visit_id sx#16455] +[visit_exp `LT`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype#911 sx#16579 -dims \ I = numtype#911, sx#16579 -[visit_exp `RELOP`_instr{numtype#911}(`I32`_numtype, `GT`_relop_{sx#16579}(`S`_sx))] -[visit_exp numtype#911] -[visit_id numtype#911] -[visit_exp (`I32`_numtype, `GT`_relop_{sx#16579}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I32`_numtype, `GT`_relop_(`S`_sx))] +[visit_exp (`I32`_numtype, `GT`_relop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `GT`_relop_{sx#16579}(`S`_sx)] -[visit_exp sx#16579] -[visit_id sx#16579] +[visit_exp `GT`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#913 sx#16703 -dims \ I = numtype#913, sx#16703 -[visit_exp `RELOP`_instr{numtype#913}(`I32`_numtype, `GT`_relop_{sx#16703}(`U`_sx))] -[visit_exp numtype#913] -[visit_id numtype#913] -[visit_exp (`I32`_numtype, `GT`_relop_{sx#16703}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I32`_numtype, `GT`_relop_(`U`_sx))] +[visit_exp (`I32`_numtype, `GT`_relop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `GT`_relop_{sx#16703}(`U`_sx)] -[visit_exp sx#16703] -[visit_id sx#16703] +[visit_exp `GT`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype#915 sx#16827 -dims \ I = numtype#915, sx#16827 -[visit_exp `RELOP`_instr{numtype#915}(`I32`_numtype, `LE`_relop_{sx#16827}(`S`_sx))] -[visit_exp numtype#915] -[visit_id numtype#915] -[visit_exp (`I32`_numtype, `LE`_relop_{sx#16827}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I32`_numtype, `LE`_relop_(`S`_sx))] +[visit_exp (`I32`_numtype, `LE`_relop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `LE`_relop_{sx#16827}(`S`_sx)] -[visit_exp sx#16827] -[visit_id sx#16827] +[visit_exp `LE`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#917 sx#16951 -dims \ I = numtype#917, sx#16951 -[visit_exp `RELOP`_instr{numtype#917}(`I32`_numtype, `LE`_relop_{sx#16951}(`U`_sx))] -[visit_exp numtype#917] -[visit_id numtype#917] -[visit_exp (`I32`_numtype, `LE`_relop_{sx#16951}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I32`_numtype, `LE`_relop_(`U`_sx))] +[visit_exp (`I32`_numtype, `LE`_relop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `LE`_relop_{sx#16951}(`U`_sx)] -[visit_exp sx#16951] -[visit_id sx#16951] +[visit_exp `LE`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype#919 sx#17075 -dims \ I = numtype#919, sx#17075 -[visit_exp `RELOP`_instr{numtype#919}(`I32`_numtype, `GE`_relop_{sx#17075}(`S`_sx))] -[visit_exp numtype#919] -[visit_id numtype#919] -[visit_exp (`I32`_numtype, `GE`_relop_{sx#17075}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I32`_numtype, `GE`_relop_(`S`_sx))] +[visit_exp (`I32`_numtype, `GE`_relop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `GE`_relop_{sx#17075}(`S`_sx)] -[visit_exp sx#17075] -[visit_id sx#17075] +[visit_exp `GE`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#921 sx#17199 -dims \ I = numtype#921, sx#17199 -[visit_exp `RELOP`_instr{numtype#921}(`I32`_numtype, `GE`_relop_{sx#17199}(`U`_sx))] -[visit_exp numtype#921] -[visit_id numtype#921] -[visit_exp (`I32`_numtype, `GE`_relop_{sx#17199}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I32`_numtype, `GE`_relop_(`U`_sx))] +[visit_exp (`I32`_numtype, `GE`_relop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `GE`_relop_{sx#17199}(`U`_sx)] -[visit_exp sx#17199] -[visit_id sx#17199] +[visit_exp `GE`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#923 -dims \ I = numtype#923 -[visit_exp `RELOP`_instr{numtype#923}(`I64`_numtype, `EQ`_relop_)] -[visit_exp numtype#923] -[visit_id numtype#923] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I64`_numtype, `EQ`_relop_)] [visit_exp (`I64`_numtype, `EQ`_relop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `EQ`_relop_] [visit_exp ()] -[check_dims] I numtype#925 -dims \ I = numtype#925 -[visit_exp `RELOP`_instr{numtype#925}(`I64`_numtype, `NE`_relop_)] -[visit_exp numtype#925] -[visit_id numtype#925] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I64`_numtype, `NE`_relop_)] [visit_exp (`I64`_numtype, `NE`_relop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `NE`_relop_] [visit_exp ()] -[check_dims] I numtype#927 sx#17443 -dims \ I = numtype#927, sx#17443 -[visit_exp `RELOP`_instr{numtype#927}(`I64`_numtype, `LT`_relop_{sx#17443}(`S`_sx))] -[visit_exp numtype#927] -[visit_id numtype#927] -[visit_exp (`I64`_numtype, `LT`_relop_{sx#17443}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I64`_numtype, `LT`_relop_(`S`_sx))] +[visit_exp (`I64`_numtype, `LT`_relop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `LT`_relop_{sx#17443}(`S`_sx)] -[visit_exp sx#17443] -[visit_id sx#17443] +[visit_exp `LT`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#929 sx#17567 -dims \ I = numtype#929, sx#17567 -[visit_exp `RELOP`_instr{numtype#929}(`I64`_numtype, `LT`_relop_{sx#17567}(`U`_sx))] -[visit_exp numtype#929] -[visit_id numtype#929] -[visit_exp (`I64`_numtype, `LT`_relop_{sx#17567}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I64`_numtype, `LT`_relop_(`U`_sx))] +[visit_exp (`I64`_numtype, `LT`_relop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `LT`_relop_{sx#17567}(`U`_sx)] -[visit_exp sx#17567] -[visit_id sx#17567] +[visit_exp `LT`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype#931 sx#17691 -dims \ I = numtype#931, sx#17691 -[visit_exp `RELOP`_instr{numtype#931}(`I64`_numtype, `GT`_relop_{sx#17691}(`S`_sx))] -[visit_exp numtype#931] -[visit_id numtype#931] -[visit_exp (`I64`_numtype, `GT`_relop_{sx#17691}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I64`_numtype, `GT`_relop_(`S`_sx))] +[visit_exp (`I64`_numtype, `GT`_relop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `GT`_relop_{sx#17691}(`S`_sx)] -[visit_exp sx#17691] -[visit_id sx#17691] +[visit_exp `GT`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#933 sx#17815 -dims \ I = numtype#933, sx#17815 -[visit_exp `RELOP`_instr{numtype#933}(`I64`_numtype, `GT`_relop_{sx#17815}(`U`_sx))] -[visit_exp numtype#933] -[visit_id numtype#933] -[visit_exp (`I64`_numtype, `GT`_relop_{sx#17815}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I64`_numtype, `GT`_relop_(`U`_sx))] +[visit_exp (`I64`_numtype, `GT`_relop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `GT`_relop_{sx#17815}(`U`_sx)] -[visit_exp sx#17815] -[visit_id sx#17815] +[visit_exp `GT`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype#935 sx#17939 -dims \ I = numtype#935, sx#17939 -[visit_exp `RELOP`_instr{numtype#935}(`I64`_numtype, `LE`_relop_{sx#17939}(`S`_sx))] -[visit_exp numtype#935] -[visit_id numtype#935] -[visit_exp (`I64`_numtype, `LE`_relop_{sx#17939}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I64`_numtype, `LE`_relop_(`S`_sx))] +[visit_exp (`I64`_numtype, `LE`_relop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `LE`_relop_{sx#17939}(`S`_sx)] -[visit_exp sx#17939] -[visit_id sx#17939] +[visit_exp `LE`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#937 sx#18063 -dims \ I = numtype#937, sx#18063 -[visit_exp `RELOP`_instr{numtype#937}(`I64`_numtype, `LE`_relop_{sx#18063}(`U`_sx))] -[visit_exp numtype#937] -[visit_id numtype#937] -[visit_exp (`I64`_numtype, `LE`_relop_{sx#18063}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I64`_numtype, `LE`_relop_(`U`_sx))] +[visit_exp (`I64`_numtype, `LE`_relop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `LE`_relop_{sx#18063}(`U`_sx)] -[visit_exp sx#18063] -[visit_id sx#18063] +[visit_exp `LE`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype#939 sx#18187 -dims \ I = numtype#939, sx#18187 -[visit_exp `RELOP`_instr{numtype#939}(`I64`_numtype, `GE`_relop_{sx#18187}(`S`_sx))] -[visit_exp numtype#939] -[visit_id numtype#939] -[visit_exp (`I64`_numtype, `GE`_relop_{sx#18187}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I64`_numtype, `GE`_relop_(`S`_sx))] +[visit_exp (`I64`_numtype, `GE`_relop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `GE`_relop_{sx#18187}(`S`_sx)] -[visit_exp sx#18187] -[visit_id sx#18187] +[visit_exp `GE`_relop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#941 sx#18311 -dims \ I = numtype#941, sx#18311 -[visit_exp `RELOP`_instr{numtype#941}(`I64`_numtype, `GE`_relop_{sx#18311}(`U`_sx))] -[visit_exp numtype#941] -[visit_id numtype#941] -[visit_exp (`I64`_numtype, `GE`_relop_{sx#18311}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`I64`_numtype, `GE`_relop_(`U`_sx))] +[visit_exp (`I64`_numtype, `GE`_relop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `GE`_relop_{sx#18311}(`U`_sx)] -[visit_exp sx#18311] -[visit_id sx#18311] +[visit_exp `GE`_relop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#943 -dims \ I = numtype#943 -[visit_exp `RELOP`_instr{numtype#943}(`F32`_numtype, `EQ`_relop_)] -[visit_exp numtype#943] -[visit_id numtype#943] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`F32`_numtype, `EQ`_relop_)] [visit_exp (`F32`_numtype, `EQ`_relop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `EQ`_relop_] [visit_exp ()] -[check_dims] I numtype#945 -dims \ I = numtype#945 -[visit_exp `RELOP`_instr{numtype#945}(`F32`_numtype, `NE`_relop_)] -[visit_exp numtype#945] -[visit_id numtype#945] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`F32`_numtype, `NE`_relop_)] [visit_exp (`F32`_numtype, `NE`_relop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `NE`_relop_] [visit_exp ()] -[check_dims] I numtype#947 -dims \ I = numtype#947 -[visit_exp `RELOP`_instr{numtype#947}(`F32`_numtype, `LT`_relop_)] -[visit_exp numtype#947] -[visit_id numtype#947] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`F32`_numtype, `LT`_relop_)] [visit_exp (`F32`_numtype, `LT`_relop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `LT`_relop_] [visit_exp ()] -[check_dims] I numtype#949 -dims \ I = numtype#949 -[visit_exp `RELOP`_instr{numtype#949}(`F32`_numtype, `GT`_relop_)] -[visit_exp numtype#949] -[visit_id numtype#949] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`F32`_numtype, `GT`_relop_)] [visit_exp (`F32`_numtype, `GT`_relop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `GT`_relop_] [visit_exp ()] -[check_dims] I numtype#951 -dims \ I = numtype#951 -[visit_exp `RELOP`_instr{numtype#951}(`F32`_numtype, `LE`_relop_)] -[visit_exp numtype#951] -[visit_id numtype#951] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`F32`_numtype, `LE`_relop_)] [visit_exp (`F32`_numtype, `LE`_relop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `LE`_relop_] [visit_exp ()] -[check_dims] I numtype#953 -dims \ I = numtype#953 -[visit_exp `RELOP`_instr{numtype#953}(`F32`_numtype, `GE`_relop_)] -[visit_exp numtype#953] -[visit_id numtype#953] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`F32`_numtype, `GE`_relop_)] [visit_exp (`F32`_numtype, `GE`_relop_)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -97838,61 +77260,49 @@ dims \ I = numtype#953 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#955 -dims \ I = numtype#955 -[visit_exp `RELOP`_instr{numtype#955}(`F64`_numtype, `EQ`_relop_)] -[visit_exp numtype#955] -[visit_id numtype#955] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`F64`_numtype, `EQ`_relop_)] [visit_exp (`F64`_numtype, `EQ`_relop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `EQ`_relop_] [visit_exp ()] -[check_dims] I numtype#957 -dims \ I = numtype#957 -[visit_exp `RELOP`_instr{numtype#957}(`F64`_numtype, `NE`_relop_)] -[visit_exp numtype#957] -[visit_id numtype#957] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`F64`_numtype, `NE`_relop_)] [visit_exp (`F64`_numtype, `NE`_relop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `NE`_relop_] [visit_exp ()] -[check_dims] I numtype#959 -dims \ I = numtype#959 -[visit_exp `RELOP`_instr{numtype#959}(`F64`_numtype, `LT`_relop_)] -[visit_exp numtype#959] -[visit_id numtype#959] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`F64`_numtype, `LT`_relop_)] [visit_exp (`F64`_numtype, `LT`_relop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `LT`_relop_] [visit_exp ()] -[check_dims] I numtype#961 -dims \ I = numtype#961 -[visit_exp `RELOP`_instr{numtype#961}(`F64`_numtype, `GT`_relop_)] -[visit_exp numtype#961] -[visit_id numtype#961] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`F64`_numtype, `GT`_relop_)] [visit_exp (`F64`_numtype, `GT`_relop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `GT`_relop_] [visit_exp ()] -[check_dims] I numtype#963 -dims \ I = numtype#963 -[visit_exp `RELOP`_instr{numtype#963}(`F64`_numtype, `LE`_relop_)] -[visit_exp numtype#963] -[visit_id numtype#963] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`F64`_numtype, `LE`_relop_)] [visit_exp (`F64`_numtype, `LE`_relop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `LE`_relop_] [visit_exp ()] -[check_dims] I numtype#965 -dims \ I = numtype#965 -[visit_exp `RELOP`_instr{numtype#965}(`F64`_numtype, `GE`_relop_)] -[visit_exp numtype#965] -[visit_id numtype#965] +[check_dims] I +dims \ I = +[visit_exp `RELOP`_instr(`F64`_numtype, `GE`_relop_)] [visit_exp (`F64`_numtype, `GE`_relop_)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -97901,232 +77311,166 @@ dims \ I = numtype#965 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#967 -dims \ I = numtype#967 -[visit_exp `UNOP`_instr{numtype#967}(`I32`_numtype, `CLZ`_unop_)] -[visit_exp numtype#967] -[visit_id numtype#967] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`I32`_numtype, `CLZ`_unop_)] [visit_exp (`I32`_numtype, `CLZ`_unop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `CLZ`_unop_] [visit_exp ()] -[check_dims] I numtype#969 -dims \ I = numtype#969 -[visit_exp `UNOP`_instr{numtype#969}(`I32`_numtype, `CTZ`_unop_)] -[visit_exp numtype#969] -[visit_id numtype#969] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`I32`_numtype, `CTZ`_unop_)] [visit_exp (`I32`_numtype, `CTZ`_unop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `CTZ`_unop_] [visit_exp ()] -[check_dims] I numtype#971 -dims \ I = numtype#971 -[visit_exp `UNOP`_instr{numtype#971}(`I32`_numtype, `POPCNT`_unop_)] -[visit_exp numtype#971] -[visit_id numtype#971] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`I32`_numtype, `POPCNT`_unop_)] [visit_exp (`I32`_numtype, `POPCNT`_unop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `POPCNT`_unop_] [visit_exp ()] -[check_dims] I i#101930 i#101937 numtype#973 sz#2529 -dims \ I = i#101930, i#101937, numtype#973, sz#2529 -[visit_exp `UNOP`_instr{numtype#973}(`I32`_numtype, `EXTEND`_unop_{sz#2529, i#101930}(`%`_sz{i#101937}(8)))] -[visit_exp numtype#973] -[visit_id numtype#973] -[visit_exp (`I32`_numtype, `EXTEND`_unop_{sz#2529, i#101930}(`%`_sz{i#101937}(8)))] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(8)))] +[visit_exp (`I32`_numtype, `EXTEND`_unop_(`%`_sz(8)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_unop_{sz#2529, i#101930}(`%`_sz{i#101937}(8))] -[visit_exp sz#2529] -[visit_id sz#2529] -[visit_exp i#101930] -[visit_id i#101930] -[visit_exp (`%`_sz{i#101937}(8))] -[visit_exp `%`_sz{i#101937}(8)] -[visit_exp i#101937] -[visit_id i#101937] +[visit_exp `EXTEND`_unop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] -[check_dims] I i#101946 i#101953 numtype#975 sz#2563 -dims \ I = i#101946, i#101953, numtype#975, sz#2563 -[visit_exp `UNOP`_instr{numtype#975}(`I32`_numtype, `EXTEND`_unop_{sz#2563, i#101946}(`%`_sz{i#101953}(16)))] -[visit_exp numtype#975] -[visit_id numtype#975] -[visit_exp (`I32`_numtype, `EXTEND`_unop_{sz#2563, i#101946}(`%`_sz{i#101953}(16)))] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(16)))] +[visit_exp (`I32`_numtype, `EXTEND`_unop_(`%`_sz(16)))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_unop_{sz#2563, i#101946}(`%`_sz{i#101953}(16))] -[visit_exp sz#2563] -[visit_id sz#2563] -[visit_exp i#101946] -[visit_id i#101946] -[visit_exp (`%`_sz{i#101953}(16))] -[visit_exp `%`_sz{i#101953}(16)] -[visit_exp i#101953] -[visit_id i#101953] +[visit_exp `EXTEND`_unop_(`%`_sz(16))] +[visit_exp (`%`_sz(16))] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#977 -dims \ I = numtype#977 -[visit_exp `UNOP`_instr{numtype#977}(`I64`_numtype, `CLZ`_unop_)] -[visit_exp numtype#977] -[visit_id numtype#977] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`I64`_numtype, `CLZ`_unop_)] [visit_exp (`I64`_numtype, `CLZ`_unop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `CLZ`_unop_] [visit_exp ()] -[check_dims] I numtype#979 -dims \ I = numtype#979 -[visit_exp `UNOP`_instr{numtype#979}(`I64`_numtype, `CTZ`_unop_)] -[visit_exp numtype#979] -[visit_id numtype#979] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`I64`_numtype, `CTZ`_unop_)] [visit_exp (`I64`_numtype, `CTZ`_unop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `CTZ`_unop_] [visit_exp ()] -[check_dims] I numtype#981 -dims \ I = numtype#981 -[visit_exp `UNOP`_instr{numtype#981}(`I64`_numtype, `POPCNT`_unop_)] -[visit_exp numtype#981] -[visit_id numtype#981] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`I64`_numtype, `POPCNT`_unop_)] [visit_exp (`I64`_numtype, `POPCNT`_unop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `POPCNT`_unop_] [visit_exp ()] -[check_dims] I i#101962 i#101969 numtype#983 sz#2642 -dims \ I = i#101962, i#101969, numtype#983, sz#2642 -[visit_exp `UNOP`_instr{numtype#983}(`I64`_numtype, `EXTEND`_unop_{sz#2642, i#101962}(`%`_sz{i#101969}(8)))] -[visit_exp numtype#983] -[visit_id numtype#983] -[visit_exp (`I64`_numtype, `EXTEND`_unop_{sz#2642, i#101962}(`%`_sz{i#101969}(8)))] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(8)))] +[visit_exp (`I64`_numtype, `EXTEND`_unop_(`%`_sz(8)))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_unop_{sz#2642, i#101962}(`%`_sz{i#101969}(8))] -[visit_exp sz#2642] -[visit_id sz#2642] -[visit_exp i#101962] -[visit_id i#101962] -[visit_exp (`%`_sz{i#101969}(8))] -[visit_exp `%`_sz{i#101969}(8)] -[visit_exp i#101969] -[visit_id i#101969] +[visit_exp `EXTEND`_unop_(`%`_sz(8))] +[visit_exp (`%`_sz(8))] +[visit_exp `%`_sz(8)] [visit_exp (8)] [visit_exp 8] -[check_dims] I i#101978 i#101985 numtype#985 sz#2676 -dims \ I = i#101978, i#101985, numtype#985, sz#2676 -[visit_exp `UNOP`_instr{numtype#985}(`I64`_numtype, `EXTEND`_unop_{sz#2676, i#101978}(`%`_sz{i#101985}(16)))] -[visit_exp numtype#985] -[visit_id numtype#985] -[visit_exp (`I64`_numtype, `EXTEND`_unop_{sz#2676, i#101978}(`%`_sz{i#101985}(16)))] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(16)))] +[visit_exp (`I64`_numtype, `EXTEND`_unop_(`%`_sz(16)))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_unop_{sz#2676, i#101978}(`%`_sz{i#101985}(16))] -[visit_exp sz#2676] -[visit_id sz#2676] -[visit_exp i#101978] -[visit_id i#101978] -[visit_exp (`%`_sz{i#101985}(16))] -[visit_exp `%`_sz{i#101985}(16)] -[visit_exp i#101985] -[visit_id i#101985] +[visit_exp `EXTEND`_unop_(`%`_sz(16))] +[visit_exp (`%`_sz(16))] +[visit_exp `%`_sz(16)] [visit_exp (16)] [visit_exp 16] -[check_dims] I i#101994 i#102001 numtype#987 sz#2710 -dims \ I = i#101994, i#102001, numtype#987, sz#2710 -[visit_exp `UNOP`_instr{numtype#987}(`I64`_numtype, `EXTEND`_unop_{sz#2710, i#101994}(`%`_sz{i#102001}(32)))] -[visit_exp numtype#987] -[visit_id numtype#987] -[visit_exp (`I64`_numtype, `EXTEND`_unop_{sz#2710, i#101994}(`%`_sz{i#102001}(32)))] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(32)))] +[visit_exp (`I64`_numtype, `EXTEND`_unop_(`%`_sz(32)))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_unop_{sz#2710, i#101994}(`%`_sz{i#102001}(32))] -[visit_exp sz#2710] -[visit_id sz#2710] -[visit_exp i#101994] -[visit_id i#101994] -[visit_exp (`%`_sz{i#102001}(32))] -[visit_exp `%`_sz{i#102001}(32)] -[visit_exp i#102001] -[visit_id i#102001] +[visit_exp `EXTEND`_unop_(`%`_sz(32))] +[visit_exp (`%`_sz(32))] +[visit_exp `%`_sz(32)] [visit_exp (32)] [visit_exp 32] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#989 -dims \ I = numtype#989 -[visit_exp `UNOP`_instr{numtype#989}(`F32`_numtype, `ABS`_unop_)] -[visit_exp numtype#989] -[visit_id numtype#989] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F32`_numtype, `ABS`_unop_)] [visit_exp (`F32`_numtype, `ABS`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `ABS`_unop_] [visit_exp ()] -[check_dims] I numtype#991 -dims \ I = numtype#991 -[visit_exp `UNOP`_instr{numtype#991}(`F32`_numtype, `NEG`_unop_)] -[visit_exp numtype#991] -[visit_id numtype#991] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F32`_numtype, `NEG`_unop_)] [visit_exp (`F32`_numtype, `NEG`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `NEG`_unop_] [visit_exp ()] -[check_dims] I numtype#993 -dims \ I = numtype#993 -[visit_exp `UNOP`_instr{numtype#993}(`F32`_numtype, `SQRT`_unop_)] -[visit_exp numtype#993] -[visit_id numtype#993] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F32`_numtype, `SQRT`_unop_)] [visit_exp (`F32`_numtype, `SQRT`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `SQRT`_unop_] [visit_exp ()] -[check_dims] I numtype#995 -dims \ I = numtype#995 -[visit_exp `UNOP`_instr{numtype#995}(`F32`_numtype, `CEIL`_unop_)] -[visit_exp numtype#995] -[visit_id numtype#995] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F32`_numtype, `CEIL`_unop_)] [visit_exp (`F32`_numtype, `CEIL`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `CEIL`_unop_] [visit_exp ()] -[check_dims] I numtype#997 -dims \ I = numtype#997 -[visit_exp `UNOP`_instr{numtype#997}(`F32`_numtype, `FLOOR`_unop_)] -[visit_exp numtype#997] -[visit_id numtype#997] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F32`_numtype, `FLOOR`_unop_)] [visit_exp (`F32`_numtype, `FLOOR`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `FLOOR`_unop_] [visit_exp ()] -[check_dims] I numtype#999 -dims \ I = numtype#999 -[visit_exp `UNOP`_instr{numtype#999}(`F32`_numtype, `TRUNC`_unop_)] -[visit_exp numtype#999] -[visit_id numtype#999] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F32`_numtype, `TRUNC`_unop_)] [visit_exp (`F32`_numtype, `TRUNC`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `TRUNC`_unop_] [visit_exp ()] -[check_dims] I numtype#1001 -dims \ I = numtype#1001 -[visit_exp `UNOP`_instr{numtype#1001}(`F32`_numtype, `NEAREST`_unop_)] -[visit_exp numtype#1001] -[visit_id numtype#1001] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F32`_numtype, `NEAREST`_unop_)] [visit_exp (`F32`_numtype, `NEAREST`_unop_)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -98135,71 +77479,57 @@ dims \ I = numtype#1001 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#1003 -dims \ I = numtype#1003 -[visit_exp `UNOP`_instr{numtype#1003}(`F64`_numtype, `ABS`_unop_)] -[visit_exp numtype#1003] -[visit_id numtype#1003] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F64`_numtype, `ABS`_unop_)] [visit_exp (`F64`_numtype, `ABS`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `ABS`_unop_] [visit_exp ()] -[check_dims] I numtype#1005 -dims \ I = numtype#1005 -[visit_exp `UNOP`_instr{numtype#1005}(`F64`_numtype, `NEG`_unop_)] -[visit_exp numtype#1005] -[visit_id numtype#1005] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F64`_numtype, `NEG`_unop_)] [visit_exp (`F64`_numtype, `NEG`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `NEG`_unop_] [visit_exp ()] -[check_dims] I numtype#1007 -dims \ I = numtype#1007 -[visit_exp `UNOP`_instr{numtype#1007}(`F64`_numtype, `SQRT`_unop_)] -[visit_exp numtype#1007] -[visit_id numtype#1007] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F64`_numtype, `SQRT`_unop_)] [visit_exp (`F64`_numtype, `SQRT`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `SQRT`_unop_] [visit_exp ()] -[check_dims] I numtype#1009 -dims \ I = numtype#1009 -[visit_exp `UNOP`_instr{numtype#1009}(`F64`_numtype, `CEIL`_unop_)] -[visit_exp numtype#1009] -[visit_id numtype#1009] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F64`_numtype, `CEIL`_unop_)] [visit_exp (`F64`_numtype, `CEIL`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `CEIL`_unop_] [visit_exp ()] -[check_dims] I numtype#1011 -dims \ I = numtype#1011 -[visit_exp `UNOP`_instr{numtype#1011}(`F64`_numtype, `FLOOR`_unop_)] -[visit_exp numtype#1011] -[visit_id numtype#1011] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F64`_numtype, `FLOOR`_unop_)] [visit_exp (`F64`_numtype, `FLOOR`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `FLOOR`_unop_] [visit_exp ()] -[check_dims] I numtype#1013 -dims \ I = numtype#1013 -[visit_exp `UNOP`_instr{numtype#1013}(`F64`_numtype, `TRUNC`_unop_)] -[visit_exp numtype#1013] -[visit_id numtype#1013] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F64`_numtype, `TRUNC`_unop_)] [visit_exp (`F64`_numtype, `TRUNC`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `TRUNC`_unop_] [visit_exp ()] -[check_dims] I numtype#1015 -dims \ I = numtype#1015 -[visit_exp `UNOP`_instr{numtype#1015}(`F64`_numtype, `NEAREST`_unop_)] -[visit_exp numtype#1015] -[visit_id numtype#1015] +[check_dims] I +dims \ I = +[visit_exp `UNOP`_instr(`F64`_numtype, `NEAREST`_unop_)] [visit_exp (`F64`_numtype, `NEAREST`_unop_)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -98208,175 +77538,133 @@ dims \ I = numtype#1015 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#1017 -dims \ I = numtype#1017 -[visit_exp `BINOP`_instr{numtype#1017}(`I32`_numtype, `ADD`_binop_)] -[visit_exp numtype#1017] -[visit_id numtype#1017] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `ADD`_binop_)] [visit_exp (`I32`_numtype, `ADD`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `ADD`_binop_] [visit_exp ()] -[check_dims] I numtype#1019 -dims \ I = numtype#1019 -[visit_exp `BINOP`_instr{numtype#1019}(`I32`_numtype, `SUB`_binop_)] -[visit_exp numtype#1019] -[visit_id numtype#1019] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `SUB`_binop_)] [visit_exp (`I32`_numtype, `SUB`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `SUB`_binop_] [visit_exp ()] -[check_dims] I numtype#1021 -dims \ I = numtype#1021 -[visit_exp `BINOP`_instr{numtype#1021}(`I32`_numtype, `MUL`_binop_)] -[visit_exp numtype#1021] -[visit_id numtype#1021] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `MUL`_binop_)] [visit_exp (`I32`_numtype, `MUL`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `MUL`_binop_] [visit_exp ()] -[check_dims] I numtype#1023 sx#18540 -dims \ I = numtype#1023, sx#18540 -[visit_exp `BINOP`_instr{numtype#1023}(`I32`_numtype, `DIV`_binop_{sx#18540}(`S`_sx))] -[visit_exp numtype#1023] -[visit_id numtype#1023] -[visit_exp (`I32`_numtype, `DIV`_binop_{sx#18540}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`S`_sx))] +[visit_exp (`I32`_numtype, `DIV`_binop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `DIV`_binop_{sx#18540}(`S`_sx)] -[visit_exp sx#18540] -[visit_id sx#18540] +[visit_exp `DIV`_binop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#1025 sx#18634 -dims \ I = numtype#1025, sx#18634 -[visit_exp `BINOP`_instr{numtype#1025}(`I32`_numtype, `DIV`_binop_{sx#18634}(`U`_sx))] -[visit_exp numtype#1025] -[visit_id numtype#1025] -[visit_exp (`I32`_numtype, `DIV`_binop_{sx#18634}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`U`_sx))] +[visit_exp (`I32`_numtype, `DIV`_binop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `DIV`_binop_{sx#18634}(`U`_sx)] -[visit_exp sx#18634] -[visit_id sx#18634] +[visit_exp `DIV`_binop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype#1027 sx#18728 -dims \ I = numtype#1027, sx#18728 -[visit_exp `BINOP`_instr{numtype#1027}(`I32`_numtype, `REM`_binop_{sx#18728}(`S`_sx))] -[visit_exp numtype#1027] -[visit_id numtype#1027] -[visit_exp (`I32`_numtype, `REM`_binop_{sx#18728}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `REM`_binop_(`S`_sx))] +[visit_exp (`I32`_numtype, `REM`_binop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `REM`_binop_{sx#18728}(`S`_sx)] -[visit_exp sx#18728] -[visit_id sx#18728] +[visit_exp `REM`_binop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#1029 sx#18822 -dims \ I = numtype#1029, sx#18822 -[visit_exp `BINOP`_instr{numtype#1029}(`I32`_numtype, `REM`_binop_{sx#18822}(`U`_sx))] -[visit_exp numtype#1029] -[visit_id numtype#1029] -[visit_exp (`I32`_numtype, `REM`_binop_{sx#18822}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `REM`_binop_(`U`_sx))] +[visit_exp (`I32`_numtype, `REM`_binop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `REM`_binop_{sx#18822}(`U`_sx)] -[visit_exp sx#18822] -[visit_id sx#18822] +[visit_exp `REM`_binop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype#1031 -dims \ I = numtype#1031 -[visit_exp `BINOP`_instr{numtype#1031}(`I32`_numtype, `AND`_binop_)] -[visit_exp numtype#1031] -[visit_id numtype#1031] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `AND`_binop_)] [visit_exp (`I32`_numtype, `AND`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `AND`_binop_] [visit_exp ()] -[check_dims] I numtype#1033 -dims \ I = numtype#1033 -[visit_exp `BINOP`_instr{numtype#1033}(`I32`_numtype, `OR`_binop_)] -[visit_exp numtype#1033] -[visit_id numtype#1033] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `OR`_binop_)] [visit_exp (`I32`_numtype, `OR`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `OR`_binop_] [visit_exp ()] -[check_dims] I numtype#1035 -dims \ I = numtype#1035 -[visit_exp `BINOP`_instr{numtype#1035}(`I32`_numtype, `XOR`_binop_)] -[visit_exp numtype#1035] -[visit_id numtype#1035] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `XOR`_binop_)] [visit_exp (`I32`_numtype, `XOR`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `XOR`_binop_] [visit_exp ()] -[check_dims] I numtype#1037 -dims \ I = numtype#1037 -[visit_exp `BINOP`_instr{numtype#1037}(`I32`_numtype, `SHL`_binop_)] -[visit_exp numtype#1037] -[visit_id numtype#1037] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `SHL`_binop_)] [visit_exp (`I32`_numtype, `SHL`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `SHL`_binop_] [visit_exp ()] -[check_dims] I numtype#1039 sx#19096 -dims \ I = numtype#1039, sx#19096 -[visit_exp `BINOP`_instr{numtype#1039}(`I32`_numtype, `SHR`_binop_{sx#19096}(`S`_sx))] -[visit_exp numtype#1039] -[visit_id numtype#1039] -[visit_exp (`I32`_numtype, `SHR`_binop_{sx#19096}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`S`_sx))] +[visit_exp (`I32`_numtype, `SHR`_binop_(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `SHR`_binop_{sx#19096}(`S`_sx)] -[visit_exp sx#19096] -[visit_id sx#19096] +[visit_exp `SHR`_binop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#1041 sx#19190 -dims \ I = numtype#1041, sx#19190 -[visit_exp `BINOP`_instr{numtype#1041}(`I32`_numtype, `SHR`_binop_{sx#19190}(`U`_sx))] -[visit_exp numtype#1041] -[visit_id numtype#1041] -[visit_exp (`I32`_numtype, `SHR`_binop_{sx#19190}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`U`_sx))] +[visit_exp (`I32`_numtype, `SHR`_binop_(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `SHR`_binop_{sx#19190}(`U`_sx)] -[visit_exp sx#19190] -[visit_id sx#19190] +[visit_exp `SHR`_binop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype#1043 -dims \ I = numtype#1043 -[visit_exp `BINOP`_instr{numtype#1043}(`I32`_numtype, `ROTL`_binop_)] -[visit_exp numtype#1043] -[visit_id numtype#1043] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `ROTL`_binop_)] [visit_exp (`I32`_numtype, `ROTL`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `ROTL`_binop_] [visit_exp ()] -[check_dims] I numtype#1045 -dims \ I = numtype#1045 -[visit_exp `BINOP`_instr{numtype#1045}(`I32`_numtype, `ROTR`_binop_)] -[visit_exp numtype#1045] -[visit_id numtype#1045] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I32`_numtype, `ROTR`_binop_)] [visit_exp (`I32`_numtype, `ROTR`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -98385,175 +77673,133 @@ dims \ I = numtype#1045 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#1047 -dims \ I = numtype#1047 -[visit_exp `BINOP`_instr{numtype#1047}(`I64`_numtype, `ADD`_binop_)] -[visit_exp numtype#1047] -[visit_id numtype#1047] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `ADD`_binop_)] [visit_exp (`I64`_numtype, `ADD`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `ADD`_binop_] [visit_exp ()] -[check_dims] I numtype#1049 -dims \ I = numtype#1049 -[visit_exp `BINOP`_instr{numtype#1049}(`I64`_numtype, `SUB`_binop_)] -[visit_exp numtype#1049] -[visit_id numtype#1049] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `SUB`_binop_)] [visit_exp (`I64`_numtype, `SUB`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `SUB`_binop_] [visit_exp ()] -[check_dims] I numtype#1051 -dims \ I = numtype#1051 -[visit_exp `BINOP`_instr{numtype#1051}(`I64`_numtype, `MUL`_binop_)] -[visit_exp numtype#1051] -[visit_id numtype#1051] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `MUL`_binop_)] [visit_exp (`I64`_numtype, `MUL`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `MUL`_binop_] [visit_exp ()] -[check_dims] I numtype#1053 sx#19509 -dims \ I = numtype#1053, sx#19509 -[visit_exp `BINOP`_instr{numtype#1053}(`I64`_numtype, `DIV`_binop_{sx#19509}(`S`_sx))] -[visit_exp numtype#1053] -[visit_id numtype#1053] -[visit_exp (`I64`_numtype, `DIV`_binop_{sx#19509}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`S`_sx))] +[visit_exp (`I64`_numtype, `DIV`_binop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `DIV`_binop_{sx#19509}(`S`_sx)] -[visit_exp sx#19509] -[visit_id sx#19509] +[visit_exp `DIV`_binop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#1055 sx#19603 -dims \ I = numtype#1055, sx#19603 -[visit_exp `BINOP`_instr{numtype#1055}(`I64`_numtype, `DIV`_binop_{sx#19603}(`U`_sx))] -[visit_exp numtype#1055] -[visit_id numtype#1055] -[visit_exp (`I64`_numtype, `DIV`_binop_{sx#19603}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`U`_sx))] +[visit_exp (`I64`_numtype, `DIV`_binop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `DIV`_binop_{sx#19603}(`U`_sx)] -[visit_exp sx#19603] -[visit_id sx#19603] +[visit_exp `DIV`_binop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype#1057 sx#19697 -dims \ I = numtype#1057, sx#19697 -[visit_exp `BINOP`_instr{numtype#1057}(`I64`_numtype, `REM`_binop_{sx#19697}(`S`_sx))] -[visit_exp numtype#1057] -[visit_id numtype#1057] -[visit_exp (`I64`_numtype, `REM`_binop_{sx#19697}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `REM`_binop_(`S`_sx))] +[visit_exp (`I64`_numtype, `REM`_binop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `REM`_binop_{sx#19697}(`S`_sx)] -[visit_exp sx#19697] -[visit_id sx#19697] +[visit_exp `REM`_binop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#1059 sx#19791 -dims \ I = numtype#1059, sx#19791 -[visit_exp `BINOP`_instr{numtype#1059}(`I64`_numtype, `REM`_binop_{sx#19791}(`U`_sx))] -[visit_exp numtype#1059] -[visit_id numtype#1059] -[visit_exp (`I64`_numtype, `REM`_binop_{sx#19791}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `REM`_binop_(`U`_sx))] +[visit_exp (`I64`_numtype, `REM`_binop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `REM`_binop_{sx#19791}(`U`_sx)] -[visit_exp sx#19791] -[visit_id sx#19791] +[visit_exp `REM`_binop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype#1061 -dims \ I = numtype#1061 -[visit_exp `BINOP`_instr{numtype#1061}(`I64`_numtype, `AND`_binop_)] -[visit_exp numtype#1061] -[visit_id numtype#1061] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `AND`_binop_)] [visit_exp (`I64`_numtype, `AND`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `AND`_binop_] [visit_exp ()] -[check_dims] I numtype#1063 -dims \ I = numtype#1063 -[visit_exp `BINOP`_instr{numtype#1063}(`I64`_numtype, `OR`_binop_)] -[visit_exp numtype#1063] -[visit_id numtype#1063] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `OR`_binop_)] [visit_exp (`I64`_numtype, `OR`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `OR`_binop_] [visit_exp ()] -[check_dims] I numtype#1065 -dims \ I = numtype#1065 -[visit_exp `BINOP`_instr{numtype#1065}(`I64`_numtype, `XOR`_binop_)] -[visit_exp numtype#1065] -[visit_id numtype#1065] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `XOR`_binop_)] [visit_exp (`I64`_numtype, `XOR`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `XOR`_binop_] [visit_exp ()] -[check_dims] I numtype#1067 -dims \ I = numtype#1067 -[visit_exp `BINOP`_instr{numtype#1067}(`I64`_numtype, `SHL`_binop_)] -[visit_exp numtype#1067] -[visit_id numtype#1067] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `SHL`_binop_)] [visit_exp (`I64`_numtype, `SHL`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `SHL`_binop_] [visit_exp ()] -[check_dims] I numtype#1069 sx#20065 -dims \ I = numtype#1069, sx#20065 -[visit_exp `BINOP`_instr{numtype#1069}(`I64`_numtype, `SHR`_binop_{sx#20065}(`S`_sx))] -[visit_exp numtype#1069] -[visit_id numtype#1069] -[visit_exp (`I64`_numtype, `SHR`_binop_{sx#20065}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`S`_sx))] +[visit_exp (`I64`_numtype, `SHR`_binop_(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `SHR`_binop_{sx#20065}(`S`_sx)] -[visit_exp sx#20065] -[visit_id sx#20065] +[visit_exp `SHR`_binop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype#1071 sx#20159 -dims \ I = numtype#1071, sx#20159 -[visit_exp `BINOP`_instr{numtype#1071}(`I64`_numtype, `SHR`_binop_{sx#20159}(`U`_sx))] -[visit_exp numtype#1071] -[visit_id numtype#1071] -[visit_exp (`I64`_numtype, `SHR`_binop_{sx#20159}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`U`_sx))] +[visit_exp (`I64`_numtype, `SHR`_binop_(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `SHR`_binop_{sx#20159}(`U`_sx)] -[visit_exp sx#20159] -[visit_id sx#20159] +[visit_exp `SHR`_binop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype#1073 -dims \ I = numtype#1073 -[visit_exp `BINOP`_instr{numtype#1073}(`I64`_numtype, `ROTL`_binop_)] -[visit_exp numtype#1073] -[visit_id numtype#1073] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `ROTL`_binop_)] [visit_exp (`I64`_numtype, `ROTL`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `ROTL`_binop_] [visit_exp ()] -[check_dims] I numtype#1075 -dims \ I = numtype#1075 -[visit_exp `BINOP`_instr{numtype#1075}(`I64`_numtype, `ROTR`_binop_)] -[visit_exp numtype#1075] -[visit_id numtype#1075] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`I64`_numtype, `ROTR`_binop_)] [visit_exp (`I64`_numtype, `ROTR`_binop_)] [visit_exp `I64`_numtype] [visit_exp ()] @@ -98562,71 +77808,57 @@ dims \ I = numtype#1075 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#1077 -dims \ I = numtype#1077 -[visit_exp `BINOP`_instr{numtype#1077}(`F32`_numtype, `ADD`_binop_)] -[visit_exp numtype#1077] -[visit_id numtype#1077] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F32`_numtype, `ADD`_binop_)] [visit_exp (`F32`_numtype, `ADD`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `ADD`_binop_] [visit_exp ()] -[check_dims] I numtype#1079 -dims \ I = numtype#1079 -[visit_exp `BINOP`_instr{numtype#1079}(`F32`_numtype, `SUB`_binop_)] -[visit_exp numtype#1079] -[visit_id numtype#1079] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F32`_numtype, `SUB`_binop_)] [visit_exp (`F32`_numtype, `SUB`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `SUB`_binop_] [visit_exp ()] -[check_dims] I numtype#1081 -dims \ I = numtype#1081 -[visit_exp `BINOP`_instr{numtype#1081}(`F32`_numtype, `MUL`_binop_)] -[visit_exp numtype#1081] -[visit_id numtype#1081] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F32`_numtype, `MUL`_binop_)] [visit_exp (`F32`_numtype, `MUL`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `MUL`_binop_] [visit_exp ()] -[check_dims] I numtype#1083 -dims \ I = numtype#1083 -[visit_exp `BINOP`_instr{numtype#1083}(`F32`_numtype, `DIV`_binop_)] -[visit_exp numtype#1083] -[visit_id numtype#1083] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F32`_numtype, `DIV`_binop_)] [visit_exp (`F32`_numtype, `DIV`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `DIV`_binop_] [visit_exp ()] -[check_dims] I numtype#1085 -dims \ I = numtype#1085 -[visit_exp `BINOP`_instr{numtype#1085}(`F32`_numtype, `MIN`_binop_)] -[visit_exp numtype#1085] -[visit_id numtype#1085] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F32`_numtype, `MIN`_binop_)] [visit_exp (`F32`_numtype, `MIN`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `MIN`_binop_] [visit_exp ()] -[check_dims] I numtype#1087 -dims \ I = numtype#1087 -[visit_exp `BINOP`_instr{numtype#1087}(`F32`_numtype, `MAX`_binop_)] -[visit_exp numtype#1087] -[visit_id numtype#1087] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F32`_numtype, `MAX`_binop_)] [visit_exp (`F32`_numtype, `MAX`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `MAX`_binop_] [visit_exp ()] -[check_dims] I numtype#1089 -dims \ I = numtype#1089 -[visit_exp `BINOP`_instr{numtype#1089}(`F32`_numtype, `COPYSIGN`_binop_)] -[visit_exp numtype#1089] -[visit_id numtype#1089] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F32`_numtype, `COPYSIGN`_binop_)] [visit_exp (`F32`_numtype, `COPYSIGN`_binop_)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -98635,71 +77867,57 @@ dims \ I = numtype#1089 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype#1091 -dims \ I = numtype#1091 -[visit_exp `BINOP`_instr{numtype#1091}(`F64`_numtype, `ADD`_binop_)] -[visit_exp numtype#1091] -[visit_id numtype#1091] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F64`_numtype, `ADD`_binop_)] [visit_exp (`F64`_numtype, `ADD`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `ADD`_binop_] [visit_exp ()] -[check_dims] I numtype#1093 -dims \ I = numtype#1093 -[visit_exp `BINOP`_instr{numtype#1093}(`F64`_numtype, `SUB`_binop_)] -[visit_exp numtype#1093] -[visit_id numtype#1093] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F64`_numtype, `SUB`_binop_)] [visit_exp (`F64`_numtype, `SUB`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `SUB`_binop_] [visit_exp ()] -[check_dims] I numtype#1095 -dims \ I = numtype#1095 -[visit_exp `BINOP`_instr{numtype#1095}(`F64`_numtype, `MUL`_binop_)] -[visit_exp numtype#1095] -[visit_id numtype#1095] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F64`_numtype, `MUL`_binop_)] [visit_exp (`F64`_numtype, `MUL`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `MUL`_binop_] [visit_exp ()] -[check_dims] I numtype#1097 -dims \ I = numtype#1097 -[visit_exp `BINOP`_instr{numtype#1097}(`F64`_numtype, `DIV`_binop_)] -[visit_exp numtype#1097] -[visit_id numtype#1097] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F64`_numtype, `DIV`_binop_)] [visit_exp (`F64`_numtype, `DIV`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `DIV`_binop_] [visit_exp ()] -[check_dims] I numtype#1099 -dims \ I = numtype#1099 -[visit_exp `BINOP`_instr{numtype#1099}(`F64`_numtype, `MIN`_binop_)] -[visit_exp numtype#1099] -[visit_id numtype#1099] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F64`_numtype, `MIN`_binop_)] [visit_exp (`F64`_numtype, `MIN`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `MIN`_binop_] [visit_exp ()] -[check_dims] I numtype#1101 -dims \ I = numtype#1101 -[visit_exp `BINOP`_instr{numtype#1101}(`F64`_numtype, `MAX`_binop_)] -[visit_exp numtype#1101] -[visit_id numtype#1101] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F64`_numtype, `MAX`_binop_)] [visit_exp (`F64`_numtype, `MAX`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `MAX`_binop_] [visit_exp ()] -[check_dims] I numtype#1103 -dims \ I = numtype#1103 -[visit_exp `BINOP`_instr{numtype#1103}(`F64`_numtype, `COPYSIGN`_binop_)] -[visit_exp numtype#1103] -[visit_id numtype#1103] +[check_dims] I +dims \ I = +[visit_exp `BINOP`_instr(`F64`_numtype, `COPYSIGN`_binop_)] [visit_exp (`F64`_numtype, `COPYSIGN`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -98708,13 +77926,9 @@ dims \ I = numtype#1103 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype_1#75 numtype_2#75 -dims \ I = numtype_1#75, numtype_2#75 -[visit_exp `CVTOP`_instr{numtype_1#75, numtype_2#75}(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] -[visit_exp numtype_1#75] -[visit_id numtype_1#75] -[visit_exp numtype_2#75] -[visit_id numtype_2#75] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] [visit_exp (`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -98722,343 +77936,231 @@ dims \ I = numtype_1#75, numtype_2#75 [visit_exp ()] [visit_exp `WRAP`_cvtop__] [visit_exp ()] -[check_dims] I numtype_1#77 numtype_2#77 sx#20328 -dims \ I = numtype_1#77, numtype_2#77, sx#20328 -[visit_exp `CVTOP`_instr{numtype_1#77, numtype_2#77}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20328}(`S`_sx))] -[visit_exp numtype_1#77] -[visit_id numtype_1#77] -[visit_exp numtype_2#77] -[visit_id numtype_2#77] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20328}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#20328}(`S`_sx)] -[visit_exp sx#20328] -[visit_id sx#20328] +[visit_exp `TRUNC`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype_1#79 numtype_2#79 sx#20392 -dims \ I = numtype_1#79, numtype_2#79, sx#20392 -[visit_exp `CVTOP`_instr{numtype_1#79, numtype_2#79}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20392}(`U`_sx))] -[visit_exp numtype_1#79] -[visit_id numtype_1#79] -[visit_exp numtype_2#79] -[visit_id numtype_2#79] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20392}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#20392}(`U`_sx)] -[visit_exp sx#20392] -[visit_id sx#20392] +[visit_exp `TRUNC`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype_1#81 numtype_2#81 sx#20456 -dims \ I = numtype_1#81, numtype_2#81, sx#20456 -[visit_exp `CVTOP`_instr{numtype_1#81, numtype_2#81}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#20456}(`S`_sx))] -[visit_exp numtype_1#81] -[visit_id numtype_1#81] -[visit_exp numtype_2#81] -[visit_id numtype_2#81] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#20456}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#20456}(`S`_sx)] -[visit_exp sx#20456] -[visit_id sx#20456] +[visit_exp `TRUNC`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype_1#83 numtype_2#83 sx#20520 -dims \ I = numtype_1#83, numtype_2#83, sx#20520 -[visit_exp `CVTOP`_instr{numtype_1#83, numtype_2#83}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#20520}(`U`_sx))] -[visit_exp numtype_1#83] -[visit_id numtype_1#83] -[visit_exp numtype_2#83] -[visit_id numtype_2#83] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#20520}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#20520}(`U`_sx)] -[visit_exp sx#20520] -[visit_id sx#20520] +[visit_exp `TRUNC`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype_1#85 numtype_2#85 sx#20584 -dims \ I = numtype_1#85, numtype_2#85, sx#20584 -[visit_exp `CVTOP`_instr{numtype_1#85, numtype_2#85}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#20584}(`S`_sx))] -[visit_exp numtype_1#85] -[visit_id numtype_1#85] -[visit_exp numtype_2#85] -[visit_id numtype_2#85] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#20584}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#20584}(`S`_sx)] -[visit_exp sx#20584] -[visit_id sx#20584] +[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype_1#87 numtype_2#87 sx#20648 -dims \ I = numtype_1#87, numtype_2#87, sx#20648 -[visit_exp `CVTOP`_instr{numtype_1#87, numtype_2#87}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#20648}(`U`_sx))] -[visit_exp numtype_1#87] -[visit_id numtype_1#87] -[visit_exp numtype_2#87] -[visit_id numtype_2#87] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#20648}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] +[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#20648}(`U`_sx)] -[visit_exp sx#20648] -[visit_id sx#20648] +[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype_1#89 numtype_2#89 sx#20712 -dims \ I = numtype_1#89, numtype_2#89, sx#20712 -[visit_exp `CVTOP`_instr{numtype_1#89, numtype_2#89}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#20712}(`S`_sx))] -[visit_exp numtype_1#89] -[visit_id numtype_1#89] -[visit_exp numtype_2#89] -[visit_id numtype_2#89] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#20712}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#20712}(`S`_sx)] -[visit_exp sx#20712] -[visit_id sx#20712] +[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype_1#91 numtype_2#91 sx#20776 -dims \ I = numtype_1#91, numtype_2#91, sx#20776 -[visit_exp `CVTOP`_instr{numtype_1#91, numtype_2#91}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#20776}(`U`_sx))] -[visit_exp numtype_1#91] -[visit_id numtype_1#91] -[visit_exp numtype_2#91] -[visit_id numtype_2#91] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#20776}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] +[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#20776}(`U`_sx)] -[visit_exp sx#20776] -[visit_id sx#20776] +[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype_1#93 numtype_2#93 sx#20810 -dims \ I = numtype_1#93, numtype_2#93, sx#20810 -[visit_exp `CVTOP`_instr{numtype_1#93, numtype_2#93}(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__{sx#20810}(`S`_sx))] -[visit_exp numtype_1#93] -[visit_id numtype_1#93] -[visit_exp numtype_2#93] -[visit_id numtype_2#93] -[visit_exp (`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__{sx#20810}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__(`S`_sx))] +[visit_exp (`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_cvtop__{sx#20810}(`S`_sx)] -[visit_exp sx#20810] -[visit_id sx#20810] +[visit_exp `EXTEND`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype_1#95 numtype_2#95 sx#20844 -dims \ I = numtype_1#95, numtype_2#95, sx#20844 -[visit_exp `CVTOP`_instr{numtype_1#95, numtype_2#95}(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__{sx#20844}(`U`_sx))] -[visit_exp numtype_1#95] -[visit_id numtype_1#95] -[visit_exp numtype_2#95] -[visit_id numtype_2#95] -[visit_exp (`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__{sx#20844}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__(`U`_sx))] +[visit_exp (`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `EXTEND`_cvtop__{sx#20844}(`U`_sx)] -[visit_exp sx#20844] -[visit_id sx#20844] +[visit_exp `EXTEND`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype_1#97 numtype_2#97 sx#20908 -dims \ I = numtype_1#97, numtype_2#97, sx#20908 -[visit_exp `CVTOP`_instr{numtype_1#97, numtype_2#97}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20908}(`S`_sx))] -[visit_exp numtype_1#97] -[visit_id numtype_1#97] -[visit_exp numtype_2#97] -[visit_id numtype_2#97] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20908}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#20908}(`S`_sx)] -[visit_exp sx#20908] -[visit_id sx#20908] +[visit_exp `TRUNC`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype_1#99 numtype_2#99 sx#20972 -dims \ I = numtype_1#99, numtype_2#99, sx#20972 -[visit_exp `CVTOP`_instr{numtype_1#99, numtype_2#99}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20972}(`U`_sx))] -[visit_exp numtype_1#99] -[visit_id numtype_1#99] -[visit_exp numtype_2#99] -[visit_id numtype_2#99] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20972}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#20972}(`U`_sx)] -[visit_exp sx#20972] -[visit_id sx#20972] +[visit_exp `TRUNC`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype_1#101 numtype_2#101 sx#21036 -dims \ I = numtype_1#101, numtype_2#101, sx#21036 -[visit_exp `CVTOP`_instr{numtype_1#101, numtype_2#101}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#21036}(`S`_sx))] -[visit_exp numtype_1#101] -[visit_id numtype_1#101] -[visit_exp numtype_2#101] -[visit_id numtype_2#101] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#21036}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#21036}(`S`_sx)] -[visit_exp sx#21036] -[visit_id sx#21036] +[visit_exp `TRUNC`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype_1#103 numtype_2#103 sx#21100 -dims \ I = numtype_1#103, numtype_2#103, sx#21100 -[visit_exp `CVTOP`_instr{numtype_1#103, numtype_2#103}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#21100}(`U`_sx))] -[visit_exp numtype_1#103] -[visit_id numtype_1#103] -[visit_exp numtype_2#103] -[visit_id numtype_2#103] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#21100}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC`_cvtop__{sx#21100}(`U`_sx)] -[visit_exp sx#21100] -[visit_id sx#21100] +[visit_exp `TRUNC`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype_1#105 numtype_2#105 sx#21164 -dims \ I = numtype_1#105, numtype_2#105, sx#21164 -[visit_exp `CVTOP`_instr{numtype_1#105, numtype_2#105}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#21164}(`S`_sx))] -[visit_exp numtype_1#105] -[visit_id numtype_1#105] -[visit_exp numtype_2#105] -[visit_id numtype_2#105] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#21164}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#21164}(`S`_sx)] -[visit_exp sx#21164] -[visit_id sx#21164] +[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype_1#107 numtype_2#107 sx#21228 -dims \ I = numtype_1#107, numtype_2#107, sx#21228 -[visit_exp `CVTOP`_instr{numtype_1#107, numtype_2#107}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#21228}(`U`_sx))] -[visit_exp numtype_1#107] -[visit_id numtype_1#107] -[visit_exp numtype_2#107] -[visit_id numtype_2#107] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#21228}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] +[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F32`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#21228}(`U`_sx)] -[visit_exp sx#21228] -[visit_id sx#21228] +[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype_1#109 numtype_2#109 sx#21292 -dims \ I = numtype_1#109, numtype_2#109, sx#21292 -[visit_exp `CVTOP`_instr{numtype_1#109, numtype_2#109}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#21292}(`S`_sx))] -[visit_exp numtype_1#109] -[visit_id numtype_1#109] -[visit_exp numtype_2#109] -[visit_id numtype_2#109] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#21292}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#21292}(`S`_sx)] -[visit_exp sx#21292] -[visit_id sx#21292] +[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype_1#111 numtype_2#111 sx#21356 -dims \ I = numtype_1#111, numtype_2#111, sx#21356 -[visit_exp `CVTOP`_instr{numtype_1#111, numtype_2#111}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#21356}(`U`_sx))] -[visit_exp numtype_1#111] -[visit_id numtype_1#111] -[visit_exp numtype_2#111] -[visit_id numtype_2#111] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#21356}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] +[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] [visit_exp `I64`_numtype] [visit_exp ()] [visit_exp `F64`_numtype] [visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__{sx#21356}(`U`_sx)] -[visit_exp sx#21356] -[visit_id sx#21356] +[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype_1#113 numtype_2#113 -dims \ I = numtype_1#113, numtype_2#113 -[visit_exp `CVTOP`_instr{numtype_1#113, numtype_2#113}(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] -[visit_exp numtype_1#113] -[visit_id numtype_1#113] -[visit_exp numtype_2#113] -[visit_id numtype_2#113] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] [visit_exp (`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -99066,88 +78168,60 @@ dims \ I = numtype_1#113, numtype_2#113 [visit_exp ()] [visit_exp `DEMOTE`_cvtop__] [visit_exp ()] -[check_dims] I numtype_1#115 numtype_2#115 sx#21390 -dims \ I = numtype_1#115, numtype_2#115, sx#21390 -[visit_exp `CVTOP`_instr{numtype_1#115, numtype_2#115}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21390}(`S`_sx))] -[visit_exp numtype_1#115] -[visit_id numtype_1#115] -[visit_exp numtype_2#115] -[visit_id numtype_2#115] -[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21390}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] +[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#21390}(`S`_sx)] -[visit_exp sx#21390] -[visit_id sx#21390] +[visit_exp `CONVERT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype_1#117 numtype_2#117 sx#21424 -dims \ I = numtype_1#117, numtype_2#117, sx#21424 -[visit_exp `CVTOP`_instr{numtype_1#117, numtype_2#117}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21424}(`U`_sx))] -[visit_exp numtype_1#117] -[visit_id numtype_1#117] -[visit_exp numtype_2#117] -[visit_id numtype_2#117] -[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21424}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] +[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#21424}(`U`_sx)] -[visit_exp sx#21424] -[visit_id sx#21424] +[visit_exp `CONVERT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype_1#119 numtype_2#119 sx#21458 -dims \ I = numtype_1#119, numtype_2#119, sx#21458 -[visit_exp `CVTOP`_instr{numtype_1#119, numtype_2#119}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21458}(`S`_sx))] -[visit_exp numtype_1#119] -[visit_id numtype_1#119] -[visit_exp numtype_2#119] -[visit_id numtype_2#119] -[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21458}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] +[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#21458}(`S`_sx)] -[visit_exp sx#21458] -[visit_id sx#21458] +[visit_exp `CONVERT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype_1#121 numtype_2#121 sx#21492 -dims \ I = numtype_1#121, numtype_2#121, sx#21492 -[visit_exp `CVTOP`_instr{numtype_1#121, numtype_2#121}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21492}(`U`_sx))] -[visit_exp numtype_1#121] -[visit_id numtype_1#121] -[visit_exp numtype_2#121] -[visit_id numtype_2#121] -[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21492}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] +[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] [visit_exp `F32`_numtype] [visit_exp ()] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#21492}(`U`_sx)] -[visit_exp sx#21492] -[visit_id sx#21492] +[visit_exp `CONVERT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype_1#123 numtype_2#123 -dims \ I = numtype_1#123, numtype_2#123 -[visit_exp `CVTOP`_instr{numtype_1#123, numtype_2#123}(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] -[visit_exp numtype_1#123] -[visit_id numtype_1#123] -[visit_exp numtype_2#123] -[visit_id numtype_2#123] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] [visit_exp (`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -99155,88 +78229,60 @@ dims \ I = numtype_1#123, numtype_2#123 [visit_exp ()] [visit_exp `PROMOTE`_cvtop__] [visit_exp ()] -[check_dims] I numtype_1#125 numtype_2#125 sx#21526 -dims \ I = numtype_1#125, numtype_2#125, sx#21526 -[visit_exp `CVTOP`_instr{numtype_1#125, numtype_2#125}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21526}(`S`_sx))] -[visit_exp numtype_1#125] -[visit_id numtype_1#125] -[visit_exp numtype_2#125] -[visit_id numtype_2#125] -[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21526}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] +[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#21526}(`S`_sx)] -[visit_exp sx#21526] -[visit_id sx#21526] +[visit_exp `CONVERT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype_1#127 numtype_2#127 sx#21560 -dims \ I = numtype_1#127, numtype_2#127, sx#21560 -[visit_exp `CVTOP`_instr{numtype_1#127, numtype_2#127}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21560}(`U`_sx))] -[visit_exp numtype_1#127] -[visit_id numtype_1#127] -[visit_exp numtype_2#127] -[visit_id numtype_2#127] -[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21560}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] +[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `I32`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#21560}(`U`_sx)] -[visit_exp sx#21560] -[visit_id sx#21560] +[visit_exp `CONVERT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I numtype_1#129 numtype_2#129 sx#21594 -dims \ I = numtype_1#129, numtype_2#129, sx#21594 -[visit_exp `CVTOP`_instr{numtype_1#129, numtype_2#129}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21594}(`S`_sx))] -[visit_exp numtype_1#129] -[visit_id numtype_1#129] -[visit_exp numtype_2#129] -[visit_id numtype_2#129] -[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21594}(`S`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] +[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#21594}(`S`_sx)] -[visit_exp sx#21594] -[visit_id sx#21594] +[visit_exp `CONVERT`_cvtop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I numtype_1#131 numtype_2#131 sx#21628 -dims \ I = numtype_1#131, numtype_2#131, sx#21628 -[visit_exp `CVTOP`_instr{numtype_1#131, numtype_2#131}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21628}(`U`_sx))] -[visit_exp numtype_1#131] -[visit_id numtype_1#131] -[visit_exp numtype_2#131] -[visit_id numtype_2#131] -[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21628}(`U`_sx))] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] +[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `I64`_numtype] [visit_exp ()] -[visit_exp `CONVERT`_cvtop__{sx#21628}(`U`_sx)] -[visit_exp sx#21628] -[visit_id sx#21628] +[visit_exp `CONVERT`_cvtop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I numtype_1#133 numtype_2#133 -dims \ I = numtype_1#133, numtype_2#133 -[visit_exp `CVTOP`_instr{numtype_1#133, numtype_2#133}(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp numtype_1#133] -[visit_id numtype_1#133] -[visit_exp numtype_2#133] -[visit_id numtype_2#133] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] [visit_exp (`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] [visit_exp `I32`_numtype] [visit_exp ()] @@ -99244,13 +78290,9 @@ dims \ I = numtype_1#133, numtype_2#133 [visit_exp ()] [visit_exp `REINTERPRET`_cvtop__] [visit_exp ()] -[check_dims] I numtype_1#135 numtype_2#135 -dims \ I = numtype_1#135, numtype_2#135 -[visit_exp `CVTOP`_instr{numtype_1#135, numtype_2#135}(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp numtype_1#135] -[visit_id numtype_1#135] -[visit_exp numtype_2#135] -[visit_id numtype_2#135] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] [visit_exp (`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] [visit_exp `I64`_numtype] [visit_exp ()] @@ -99258,13 +78300,9 @@ dims \ I = numtype_1#135, numtype_2#135 [visit_exp ()] [visit_exp `REINTERPRET`_cvtop__] [visit_exp ()] -[check_dims] I numtype_1#137 numtype_2#137 -dims \ I = numtype_1#137, numtype_2#137 -[visit_exp `CVTOP`_instr{numtype_1#137, numtype_2#137}(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp numtype_1#137] -[visit_id numtype_1#137] -[visit_exp numtype_2#137] -[visit_id numtype_2#137] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] [visit_exp (`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] [visit_exp `F32`_numtype] [visit_exp ()] @@ -99272,13 +78310,9 @@ dims \ I = numtype_1#137, numtype_2#137 [visit_exp ()] [visit_exp `REINTERPRET`_cvtop__] [visit_exp ()] -[check_dims] I numtype_1#139 numtype_2#139 -dims \ I = numtype_1#139, numtype_2#139 -[visit_exp `CVTOP`_instr{numtype_1#139, numtype_2#139}(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp numtype_1#139] -[visit_id numtype_1#139] -[visit_exp numtype_2#139] -[visit_id numtype_2#139] +[check_dims] I +dims \ I = +[visit_exp `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] [visit_exp (`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -99289,11 +78323,9 @@ dims \ I = numtype_1#139, numtype_2#139 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I c vectype#304 -dims \ I = c, vectype#304 -[visit_exp `VCONST`_instr{vectype#304}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`})))] -[visit_exp vectype#304] -[visit_id vectype#304] +[check_dims] I c +dims \ I = c +[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`})))] [visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`})))] [visit_exp `V128`_vectype] [visit_exp ()] @@ -99321,11 +78353,9 @@ dims \ I = c, vectype#304 [visit_id c*] not free [visit_id c*] no dims [visit_exp 16] -[check_dims] I c vectype#306 -dims \ I = c, vectype#306 -[visit_exp `VCONST`_instr{vectype#306}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`})))] -[visit_exp vectype#306] -[visit_id vectype#306] +[check_dims] I c +dims \ I = c +[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`})))] [visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`})))] [visit_exp `V128`_vectype] [visit_exp ()] @@ -99353,11 +78383,9 @@ dims \ I = c, vectype#306 [visit_id c*] not free [visit_id c*] no dims [visit_exp 8] -[check_dims] I c vectype#308 -dims \ I = c, vectype#308 -[visit_exp `VCONST`_instr{vectype#308}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`})))] -[visit_exp vectype#308] -[visit_id vectype#308] +[check_dims] I c +dims \ I = c +[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`})))] [visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`})))] [visit_exp `V128`_vectype] [visit_exp ()] @@ -99385,11 +78413,9 @@ dims \ I = c, vectype#308 [visit_id c*] not free [visit_id c*] no dims [visit_exp 4] -[check_dims] I c vectype#310 -dims \ I = c, vectype#310 -[visit_exp `VCONST`_instr{vectype#310}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`})))] -[visit_exp vectype#310] -[visit_id vectype#310] +[check_dims] I c +dims \ I = c +[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`})))] [visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`})))] [visit_exp `V128`_vectype] [visit_exp ()] @@ -99417,11 +78443,9 @@ dims \ I = c, vectype#310 [visit_id c*] not free [visit_id c*] no dims [visit_exp 2] -[check_dims] I c vectype#312 -dims \ I = c, vectype#312 -[visit_exp `VCONST`_instr{vectype#312}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`})))] -[visit_exp vectype#312] -[visit_id vectype#312] +[check_dims] I c +dims \ I = c +[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`})))] [visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`})))] [visit_exp `V128`_vectype] [visit_exp ()] @@ -99449,11 +78473,9 @@ dims \ I = c, vectype#312 [visit_id c*] not free [visit_id c*] no dims [visit_exp 4] -[check_dims] I c vectype#314 -dims \ I = c, vectype#314 -[visit_exp `VCONST`_instr{vectype#314}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`})))] -[visit_exp vectype#314] -[visit_id vectype#314] +[check_dims] I c +dims \ I = c +[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`})))] [visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`})))] [visit_exp `V128`_vectype] [visit_exp ()] @@ -99484,35 +78506,17 @@ dims \ I = c, vectype#314 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I bshape#19 dim#22986 i i#103376 i#103380 i#103387 laneidx*#9 lanetype#22986 shape#3961 shape#3972 -dims \ I = bshape#19, dim#22986, i, i#103376, i#103380, i#103387, laneidx*#9, lanetype#22986, shape#3961, shape#3972 -[visit_exp `VSHUFFLE`_instr{bshape#19, `laneidx*#9`, i#103376, shape#3961}(`%`_bshape{shape#3972}(`%X%`_shape{lanetype#22986, dim#22986, i#103380}(`I8`_lanetype, `%`_dim{i#103387}(16))), i*{i <- `i*`})] -[visit_exp bshape#19] -[visit_id bshape#19] -[visit_exp `laneidx*#9`] -[visit_id laneidx*#9] -[visit_exp i#103376] -[visit_id i#103376] -[visit_exp shape#3961] -[visit_id shape#3961] -[visit_exp (`%`_bshape{shape#3972}(`%X%`_shape{lanetype#22986, dim#22986, i#103380}(`I8`_lanetype, `%`_dim{i#103387}(16))), i*{i <- `i*`})] -[visit_exp `%`_bshape{shape#3972}(`%X%`_shape{lanetype#22986, dim#22986, i#103380}(`I8`_lanetype, `%`_dim{i#103387}(16)))] -[visit_exp shape#3972] -[visit_id shape#3972] -[visit_exp (`%X%`_shape{lanetype#22986, dim#22986, i#103380}(`I8`_lanetype, `%`_dim{i#103387}(16)))] -[visit_exp `%X%`_shape{lanetype#22986, dim#22986, i#103380}(`I8`_lanetype, `%`_dim{i#103387}(16))] -[visit_exp lanetype#22986] -[visit_id lanetype#22986] -[visit_exp dim#22986] -[visit_id dim#22986] -[visit_exp i#103380] -[visit_id i#103380] -[visit_exp (`I8`_lanetype, `%`_dim{i#103387}(16))] +[check_dims] I i +dims \ I = i +[visit_exp `VSHUFFLE`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), i*{i <- `i*`})] +[visit_exp (`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), i*{i <- `i*`})] +[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#103387}(16)] -[visit_exp i#103387] -[visit_id i#103387] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp i*{i <- `i*`}] @@ -99534,56 +78538,32 @@ dims \ I = bshape#19, dim#22986, i, i#103376, i#103380, i#103387, laneidx*#9, la [visit_id i*] not free [visit_id i*] no dims [visit_exp 16] -[check_dims] I bshape#21 dim#22998 i#103415 i#103422 lanetype#22998 shape#3984 -dims \ I = bshape#21, dim#22998, i#103415, i#103422, lanetype#22998, shape#3984 -[visit_exp `VSWIZZLOP`_instr{bshape#21}(`%`_bshape{shape#3984}(`%X%`_shape{lanetype#22998, dim#22998, i#103415}(`I8`_lanetype, `%`_dim{i#103422}(16))), `SWIZZLE`_vswizzlop_)] -[visit_exp bshape#21] -[visit_id bshape#21] -[visit_exp (`%`_bshape{shape#3984}(`%X%`_shape{lanetype#22998, dim#22998, i#103415}(`I8`_lanetype, `%`_dim{i#103422}(16))), `SWIZZLE`_vswizzlop_)] -[visit_exp `%`_bshape{shape#3984}(`%X%`_shape{lanetype#22998, dim#22998, i#103415}(`I8`_lanetype, `%`_dim{i#103422}(16)))] -[visit_exp shape#3984] -[visit_id shape#3984] -[visit_exp (`%X%`_shape{lanetype#22998, dim#22998, i#103415}(`I8`_lanetype, `%`_dim{i#103422}(16)))] -[visit_exp `%X%`_shape{lanetype#22998, dim#22998, i#103415}(`I8`_lanetype, `%`_dim{i#103422}(16))] -[visit_exp lanetype#22998] -[visit_id lanetype#22998] -[visit_exp dim#22998] -[visit_id dim#22998] -[visit_exp i#103415] -[visit_id i#103415] -[visit_exp (`I8`_lanetype, `%`_dim{i#103422}(16))] +[check_dims] I +dims \ I = +[visit_exp `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SWIZZLE`_vswizzlop_)] +[visit_exp (`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SWIZZLE`_vswizzlop_)] +[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#103422}(16)] -[visit_exp i#103422] -[visit_id i#103422] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `SWIZZLE`_vswizzlop_] [visit_exp ()] -[check_dims] I bshape#23 dim#23055 i#103502 i#103509 lanetype#23055 shape#4011 -dims \ I = bshape#23, dim#23055, i#103502, i#103509, lanetype#23055, shape#4011 -[visit_exp `VSWIZZLOP`_instr{bshape#23}(`%`_bshape{shape#4011}(`%X%`_shape{lanetype#23055, dim#23055, i#103502}(`I8`_lanetype, `%`_dim{i#103509}(16))), `RELAXED_SWIZZLE`_vswizzlop_)] -[visit_exp bshape#23] -[visit_id bshape#23] -[visit_exp (`%`_bshape{shape#4011}(`%X%`_shape{lanetype#23055, dim#23055, i#103502}(`I8`_lanetype, `%`_dim{i#103509}(16))), `RELAXED_SWIZZLE`_vswizzlop_)] -[visit_exp `%`_bshape{shape#4011}(`%X%`_shape{lanetype#23055, dim#23055, i#103502}(`I8`_lanetype, `%`_dim{i#103509}(16)))] -[visit_exp shape#4011] -[visit_id shape#4011] -[visit_exp (`%X%`_shape{lanetype#23055, dim#23055, i#103502}(`I8`_lanetype, `%`_dim{i#103509}(16)))] -[visit_exp `%X%`_shape{lanetype#23055, dim#23055, i#103502}(`I8`_lanetype, `%`_dim{i#103509}(16))] -[visit_exp lanetype#23055] -[visit_id lanetype#23055] -[visit_exp dim#23055] -[visit_id dim#23055] -[visit_exp i#103502] -[visit_id i#103502] -[visit_exp (`I8`_lanetype, `%`_dim{i#103509}(16))] +[check_dims] I +dims \ I = +[visit_exp `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_SWIZZLE`_vswizzlop_)] +[visit_exp (`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_SWIZZLE`_vswizzlop_)] +[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#103509}(16)] -[visit_exp i#103509] -[visit_id i#103509] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `RELAXED_SWIZZLE`_vswizzlop_] @@ -99591,158 +78571,84 @@ dims \ I = bshape#23, dim#23055, i#103502, i#103509, lanetype#23055, shape#4011 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#23112 i#103589 i#103596 lanetype#23112 shape#4028 -dims \ I = dim#23112, i#103589, i#103596, lanetype#23112, shape#4028 -[visit_exp `VSPLAT`_instr{shape#4028}(`%X%`_shape{lanetype#23112, dim#23112, i#103589}(`I8`_lanetype, `%`_dim{i#103596}(16)))] -[visit_exp shape#4028] -[visit_id shape#4028] -[visit_exp (`%X%`_shape{lanetype#23112, dim#23112, i#103589}(`I8`_lanetype, `%`_dim{i#103596}(16)))] -[visit_exp `%X%`_shape{lanetype#23112, dim#23112, i#103589}(`I8`_lanetype, `%`_dim{i#103596}(16))] -[visit_exp lanetype#23112] -[visit_id lanetype#23112] -[visit_exp dim#23112] -[visit_id dim#23112] -[visit_exp i#103589] -[visit_id i#103589] -[visit_exp (`I8`_lanetype, `%`_dim{i#103596}(16))] +[check_dims] I +dims \ I = +[visit_exp `VSPLAT`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#103596}(16)] -[visit_exp i#103596] -[visit_id i#103596] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[check_dims] I dim#23124 i#103601 i#103608 lanetype#23124 shape#4030 -dims \ I = dim#23124, i#103601, i#103608, lanetype#23124, shape#4030 -[visit_exp `VSPLAT`_instr{shape#4030}(`%X%`_shape{lanetype#23124, dim#23124, i#103601}(`I16`_lanetype, `%`_dim{i#103608}(8)))] -[visit_exp shape#4030] -[visit_id shape#4030] -[visit_exp (`%X%`_shape{lanetype#23124, dim#23124, i#103601}(`I16`_lanetype, `%`_dim{i#103608}(8)))] -[visit_exp `%X%`_shape{lanetype#23124, dim#23124, i#103601}(`I16`_lanetype, `%`_dim{i#103608}(8))] -[visit_exp lanetype#23124] -[visit_id lanetype#23124] -[visit_exp dim#23124] -[visit_id dim#23124] -[visit_exp i#103601] -[visit_id i#103601] -[visit_exp (`I16`_lanetype, `%`_dim{i#103608}(8))] +[check_dims] I +dims \ I = +[visit_exp `VSPLAT`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#103608}(8)] -[visit_exp i#103608] -[visit_id i#103608] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[check_dims] I dim#23136 i#103613 i#103620 lanetype#23136 shape#4032 -dims \ I = dim#23136, i#103613, i#103620, lanetype#23136, shape#4032 -[visit_exp `VSPLAT`_instr{shape#4032}(`%X%`_shape{lanetype#23136, dim#23136, i#103613}(`I32`_lanetype, `%`_dim{i#103620}(4)))] -[visit_exp shape#4032] -[visit_id shape#4032] -[visit_exp (`%X%`_shape{lanetype#23136, dim#23136, i#103613}(`I32`_lanetype, `%`_dim{i#103620}(4)))] -[visit_exp `%X%`_shape{lanetype#23136, dim#23136, i#103613}(`I32`_lanetype, `%`_dim{i#103620}(4))] -[visit_exp lanetype#23136] -[visit_id lanetype#23136] -[visit_exp dim#23136] -[visit_id dim#23136] -[visit_exp i#103613] -[visit_id i#103613] -[visit_exp (`I32`_lanetype, `%`_dim{i#103620}(4))] +[check_dims] I +dims \ I = +[visit_exp `VSPLAT`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#103620}(4)] -[visit_exp i#103620] -[visit_id i#103620] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[check_dims] I dim#23148 i#103625 i#103632 lanetype#23148 shape#4034 -dims \ I = dim#23148, i#103625, i#103632, lanetype#23148, shape#4034 -[visit_exp `VSPLAT`_instr{shape#4034}(`%X%`_shape{lanetype#23148, dim#23148, i#103625}(`I64`_lanetype, `%`_dim{i#103632}(2)))] -[visit_exp shape#4034] -[visit_id shape#4034] -[visit_exp (`%X%`_shape{lanetype#23148, dim#23148, i#103625}(`I64`_lanetype, `%`_dim{i#103632}(2)))] -[visit_exp `%X%`_shape{lanetype#23148, dim#23148, i#103625}(`I64`_lanetype, `%`_dim{i#103632}(2))] -[visit_exp lanetype#23148] -[visit_id lanetype#23148] -[visit_exp dim#23148] -[visit_id dim#23148] -[visit_exp i#103625] -[visit_id i#103625] -[visit_exp (`I64`_lanetype, `%`_dim{i#103632}(2))] +[check_dims] I +dims \ I = +[visit_exp `VSPLAT`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#103632}(2)] -[visit_exp i#103632] -[visit_id i#103632] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[check_dims] I dim#23160 i#103637 i#103644 lanetype#23160 shape#4036 -dims \ I = dim#23160, i#103637, i#103644, lanetype#23160, shape#4036 -[visit_exp `VSPLAT`_instr{shape#4036}(`%X%`_shape{lanetype#23160, dim#23160, i#103637}(`F32`_lanetype, `%`_dim{i#103644}(4)))] -[visit_exp shape#4036] -[visit_id shape#4036] -[visit_exp (`%X%`_shape{lanetype#23160, dim#23160, i#103637}(`F32`_lanetype, `%`_dim{i#103644}(4)))] -[visit_exp `%X%`_shape{lanetype#23160, dim#23160, i#103637}(`F32`_lanetype, `%`_dim{i#103644}(4))] -[visit_exp lanetype#23160] -[visit_id lanetype#23160] -[visit_exp dim#23160] -[visit_id dim#23160] -[visit_exp i#103637] -[visit_id i#103637] -[visit_exp (`F32`_lanetype, `%`_dim{i#103644}(4))] +[check_dims] I +dims \ I = +[visit_exp `VSPLAT`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#103644}(4)] -[visit_exp i#103644] -[visit_id i#103644] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[check_dims] I dim#23172 i#103649 i#103656 lanetype#23172 shape#4038 -dims \ I = dim#23172, i#103649, i#103656, lanetype#23172, shape#4038 -[visit_exp `VSPLAT`_instr{shape#4038}(`%X%`_shape{lanetype#23172, dim#23172, i#103649}(`F64`_lanetype, `%`_dim{i#103656}(2)))] -[visit_exp shape#4038] -[visit_id shape#4038] -[visit_exp (`%X%`_shape{lanetype#23172, dim#23172, i#103649}(`F64`_lanetype, `%`_dim{i#103656}(2)))] -[visit_exp `%X%`_shape{lanetype#23172, dim#23172, i#103649}(`F64`_lanetype, `%`_dim{i#103656}(2))] -[visit_exp lanetype#23172] -[visit_id lanetype#23172] -[visit_exp dim#23172] -[visit_id dim#23172] -[visit_exp i#103649] -[visit_id i#103649] -[visit_exp (`F64`_lanetype, `%`_dim{i#103656}(2))] +[check_dims] I +dims \ I = +[visit_exp `VSPLAT`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#103656}(2)] -[visit_exp i#103656] -[visit_id i#103656] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#23184 i i#103678 i#103685 laneidx#91 lanetype#23184 shape#4040 sx?#71 -dims \ I = dim#23184, i, i#103678, i#103685, laneidx#91, lanetype#23184, shape#4040, sx?#71 -[visit_exp `VEXTRACT_LANE`_instr{shape#4040, `sx?#71`, laneidx#91}(`%X%`_shape{lanetype#23184, dim#23184, i#103678}(`I8`_lanetype, `%`_dim{i#103685}(16)), ?(`S`_sx), i)] -[visit_exp shape#4040] -[visit_id shape#4040] -[visit_exp `sx?#71`] -[visit_id sx?#71] -[visit_exp laneidx#91] -[visit_id laneidx#91] -[visit_exp (`%X%`_shape{lanetype#23184, dim#23184, i#103678}(`I8`_lanetype, `%`_dim{i#103685}(16)), ?(`S`_sx), i)] -[visit_exp `%X%`_shape{lanetype#23184, dim#23184, i#103678}(`I8`_lanetype, `%`_dim{i#103685}(16))] -[visit_exp lanetype#23184] -[visit_id lanetype#23184] -[visit_exp dim#23184] -[visit_id dim#23184] -[visit_exp i#103678] -[visit_id i#103678] -[visit_exp (`I8`_lanetype, `%`_dim{i#103685}(16))] +[check_dims] I i +dims \ I = i +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`S`_sx), i)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`S`_sx), i)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#103685}(16)] -[visit_exp i#103685] -[visit_id i#103685] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp ?(`S`_sx)] @@ -99752,29 +78658,15 @@ dims \ I = dim#23184, i, i#103678, i#103685, laneidx#91, lanetype#23184, shape#4 [visit_id i] [visit_exp i] [visit_id i] not free -[check_dims] I dim#23196 i i#103763 i#103770 laneidx#93 lanetype#23196 shape#4042 sx?#73 -dims \ I = dim#23196, i, i#103763, i#103770, laneidx#93, lanetype#23196, shape#4042, sx?#73 -[visit_exp `VEXTRACT_LANE`_instr{shape#4042, `sx?#73`, laneidx#93}(`%X%`_shape{lanetype#23196, dim#23196, i#103763}(`I8`_lanetype, `%`_dim{i#103770}(16)), ?(`U`_sx), i)] -[visit_exp shape#4042] -[visit_id shape#4042] -[visit_exp `sx?#73`] -[visit_id sx?#73] -[visit_exp laneidx#93] -[visit_id laneidx#93] -[visit_exp (`%X%`_shape{lanetype#23196, dim#23196, i#103763}(`I8`_lanetype, `%`_dim{i#103770}(16)), ?(`U`_sx), i)] -[visit_exp `%X%`_shape{lanetype#23196, dim#23196, i#103763}(`I8`_lanetype, `%`_dim{i#103770}(16))] -[visit_exp lanetype#23196] -[visit_id lanetype#23196] -[visit_exp dim#23196] -[visit_id dim#23196] -[visit_exp i#103763] -[visit_id i#103763] -[visit_exp (`I8`_lanetype, `%`_dim{i#103770}(16))] +[check_dims] I i +dims \ I = i +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`U`_sx), i)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`U`_sx), i)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#103770}(16)] -[visit_exp i#103770] -[visit_id i#103770] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp ?(`U`_sx)] @@ -99784,29 +78676,15 @@ dims \ I = dim#23196, i, i#103763, i#103770, laneidx#93, lanetype#23196, shape#4 [visit_id i] [visit_exp i] [visit_id i] not free -[check_dims] I dim#23208 i i#103848 i#103855 laneidx#95 lanetype#23208 shape#4044 sx?#75 -dims \ I = dim#23208, i, i#103848, i#103855, laneidx#95, lanetype#23208, shape#4044, sx?#75 -[visit_exp `VEXTRACT_LANE`_instr{shape#4044, `sx?#75`, laneidx#95}(`%X%`_shape{lanetype#23208, dim#23208, i#103848}(`I16`_lanetype, `%`_dim{i#103855}(8)), ?(`S`_sx), i)] -[visit_exp shape#4044] -[visit_id shape#4044] -[visit_exp `sx?#75`] -[visit_id sx?#75] -[visit_exp laneidx#95] -[visit_id laneidx#95] -[visit_exp (`%X%`_shape{lanetype#23208, dim#23208, i#103848}(`I16`_lanetype, `%`_dim{i#103855}(8)), ?(`S`_sx), i)] -[visit_exp `%X%`_shape{lanetype#23208, dim#23208, i#103848}(`I16`_lanetype, `%`_dim{i#103855}(8))] -[visit_exp lanetype#23208] -[visit_id lanetype#23208] -[visit_exp dim#23208] -[visit_id dim#23208] -[visit_exp i#103848] -[visit_id i#103848] -[visit_exp (`I16`_lanetype, `%`_dim{i#103855}(8))] +[check_dims] I i +dims \ I = i +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`S`_sx), i)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`S`_sx), i)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#103855}(8)] -[visit_exp i#103855] -[visit_id i#103855] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp ?(`S`_sx)] @@ -99816,29 +78694,15 @@ dims \ I = dim#23208, i, i#103848, i#103855, laneidx#95, lanetype#23208, shape#4 [visit_id i] [visit_exp i] [visit_id i] not free -[check_dims] I dim#23220 i i#103933 i#103940 laneidx#97 lanetype#23220 shape#4046 sx?#77 -dims \ I = dim#23220, i, i#103933, i#103940, laneidx#97, lanetype#23220, shape#4046, sx?#77 -[visit_exp `VEXTRACT_LANE`_instr{shape#4046, `sx?#77`, laneidx#97}(`%X%`_shape{lanetype#23220, dim#23220, i#103933}(`I16`_lanetype, `%`_dim{i#103940}(8)), ?(`U`_sx), i)] -[visit_exp shape#4046] -[visit_id shape#4046] -[visit_exp `sx?#77`] -[visit_id sx?#77] -[visit_exp laneidx#97] -[visit_id laneidx#97] -[visit_exp (`%X%`_shape{lanetype#23220, dim#23220, i#103933}(`I16`_lanetype, `%`_dim{i#103940}(8)), ?(`U`_sx), i)] -[visit_exp `%X%`_shape{lanetype#23220, dim#23220, i#103933}(`I16`_lanetype, `%`_dim{i#103940}(8))] -[visit_exp lanetype#23220] -[visit_id lanetype#23220] -[visit_exp dim#23220] -[visit_id dim#23220] -[visit_exp i#103933] -[visit_id i#103933] -[visit_exp (`I16`_lanetype, `%`_dim{i#103940}(8))] +[check_dims] I i +dims \ I = i +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`U`_sx), i)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`U`_sx), i)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#103940}(8)] -[visit_exp i#103940] -[visit_id i#103940] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp ?(`U`_sx)] @@ -99848,29 +78712,15 @@ dims \ I = dim#23220, i, i#103933, i#103940, laneidx#97, lanetype#23220, shape#4 [visit_id i] [visit_exp i] [visit_id i] not free -[check_dims] I dim#23232 i i#104018 i#104025 laneidx#99 lanetype#23232 shape#4048 sx?#79 -dims \ I = dim#23232, i, i#104018, i#104025, laneidx#99, lanetype#23232, shape#4048, sx?#79 -[visit_exp `VEXTRACT_LANE`_instr{shape#4048, `sx?#79`, laneidx#99}(`%X%`_shape{lanetype#23232, dim#23232, i#104018}(`I32`_lanetype, `%`_dim{i#104025}(4)), ?(), i)] -[visit_exp shape#4048] -[visit_id shape#4048] -[visit_exp `sx?#79`] -[visit_id sx?#79] -[visit_exp laneidx#99] -[visit_id laneidx#99] -[visit_exp (`%X%`_shape{lanetype#23232, dim#23232, i#104018}(`I32`_lanetype, `%`_dim{i#104025}(4)), ?(), i)] -[visit_exp `%X%`_shape{lanetype#23232, dim#23232, i#104018}(`I32`_lanetype, `%`_dim{i#104025}(4))] -[visit_exp lanetype#23232] -[visit_id lanetype#23232] -[visit_exp dim#23232] -[visit_id dim#23232] -[visit_exp i#104018] -[visit_id i#104018] -[visit_exp (`I32`_lanetype, `%`_dim{i#104025}(4))] +[check_dims] I i +dims \ I = i +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), ?(), i)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), ?(), i)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104025}(4)] -[visit_exp i#104025] -[visit_id i#104025] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp ?()] @@ -99878,29 +78728,15 @@ dims \ I = dim#23232, i, i#104018, i#104025, laneidx#99, lanetype#23232, shape#4 [visit_id i] [visit_exp i] [visit_id i] not free -[check_dims] I dim#23244 i i#104059 i#104066 laneidx#101 lanetype#23244 shape#4050 sx?#81 -dims \ I = dim#23244, i, i#104059, i#104066, laneidx#101, lanetype#23244, shape#4050, sx?#81 -[visit_exp `VEXTRACT_LANE`_instr{shape#4050, `sx?#81`, laneidx#101}(`%X%`_shape{lanetype#23244, dim#23244, i#104059}(`I64`_lanetype, `%`_dim{i#104066}(2)), ?(), i)] -[visit_exp shape#4050] -[visit_id shape#4050] -[visit_exp `sx?#81`] -[visit_id sx?#81] -[visit_exp laneidx#101] -[visit_id laneidx#101] -[visit_exp (`%X%`_shape{lanetype#23244, dim#23244, i#104059}(`I64`_lanetype, `%`_dim{i#104066}(2)), ?(), i)] -[visit_exp `%X%`_shape{lanetype#23244, dim#23244, i#104059}(`I64`_lanetype, `%`_dim{i#104066}(2))] -[visit_exp lanetype#23244] -[visit_id lanetype#23244] -[visit_exp dim#23244] -[visit_id dim#23244] -[visit_exp i#104059] -[visit_id i#104059] -[visit_exp (`I64`_lanetype, `%`_dim{i#104066}(2))] +[check_dims] I i +dims \ I = i +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), ?(), i)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), ?(), i)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104066}(2)] -[visit_exp i#104066] -[visit_id i#104066] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp ?()] @@ -99908,29 +78744,15 @@ dims \ I = dim#23244, i, i#104059, i#104066, laneidx#101, lanetype#23244, shape# [visit_id i] [visit_exp i] [visit_id i] not free -[check_dims] I dim#23256 i i#104100 i#104107 laneidx#103 lanetype#23256 shape#4052 sx?#83 -dims \ I = dim#23256, i, i#104100, i#104107, laneidx#103, lanetype#23256, shape#4052, sx?#83 -[visit_exp `VEXTRACT_LANE`_instr{shape#4052, `sx?#83`, laneidx#103}(`%X%`_shape{lanetype#23256, dim#23256, i#104100}(`F32`_lanetype, `%`_dim{i#104107}(4)), ?(), i)] -[visit_exp shape#4052] -[visit_id shape#4052] -[visit_exp `sx?#83`] -[visit_id sx?#83] -[visit_exp laneidx#103] -[visit_id laneidx#103] -[visit_exp (`%X%`_shape{lanetype#23256, dim#23256, i#104100}(`F32`_lanetype, `%`_dim{i#104107}(4)), ?(), i)] -[visit_exp `%X%`_shape{lanetype#23256, dim#23256, i#104100}(`F32`_lanetype, `%`_dim{i#104107}(4))] -[visit_exp lanetype#23256] -[visit_id lanetype#23256] -[visit_exp dim#23256] -[visit_id dim#23256] -[visit_exp i#104100] -[visit_id i#104100] -[visit_exp (`F32`_lanetype, `%`_dim{i#104107}(4))] +[check_dims] I i +dims \ I = i +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), ?(), i)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), ?(), i)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104107}(4)] -[visit_exp i#104107] -[visit_id i#104107] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp ?()] @@ -99938,29 +78760,15 @@ dims \ I = dim#23256, i, i#104100, i#104107, laneidx#103, lanetype#23256, shape# [visit_id i] [visit_exp i] [visit_id i] not free -[check_dims] I dim#23268 i i#104141 i#104148 laneidx#105 lanetype#23268 shape#4054 sx?#85 -dims \ I = dim#23268, i, i#104141, i#104148, laneidx#105, lanetype#23268, shape#4054, sx?#85 -[visit_exp `VEXTRACT_LANE`_instr{shape#4054, `sx?#85`, laneidx#105}(`%X%`_shape{lanetype#23268, dim#23268, i#104141}(`F64`_lanetype, `%`_dim{i#104148}(2)), ?(), i)] -[visit_exp shape#4054] -[visit_id shape#4054] -[visit_exp `sx?#85`] -[visit_id sx?#85] -[visit_exp laneidx#105] -[visit_id laneidx#105] -[visit_exp (`%X%`_shape{lanetype#23268, dim#23268, i#104141}(`F64`_lanetype, `%`_dim{i#104148}(2)), ?(), i)] -[visit_exp `%X%`_shape{lanetype#23268, dim#23268, i#104141}(`F64`_lanetype, `%`_dim{i#104148}(2))] -[visit_exp lanetype#23268] -[visit_id lanetype#23268] -[visit_exp dim#23268] -[visit_id dim#23268] -[visit_exp i#104141] -[visit_id i#104141] -[visit_exp (`F64`_lanetype, `%`_dim{i#104148}(2))] +[check_dims] I i +dims \ I = i +[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), ?(), i)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), ?(), i)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104148}(2)] -[visit_exp i#104148] -[visit_id i#104148] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp ?()] @@ -99968,162 +78776,90 @@ dims \ I = dim#23268, i, i#104141, i#104148, laneidx#105, lanetype#23268, shape# [visit_id i] [visit_exp i] [visit_id i] not free -[check_dims] I dim#23280 i i#104182 i#104189 laneidx#107 lanetype#23280 shape#4056 -dims \ I = dim#23280, i, i#104182, i#104189, laneidx#107, lanetype#23280, shape#4056 -[visit_exp `VREPLACE_LANE`_instr{shape#4056, laneidx#107}(`%X%`_shape{lanetype#23280, dim#23280, i#104182}(`I8`_lanetype, `%`_dim{i#104189}(16)), i)] -[visit_exp shape#4056] -[visit_id shape#4056] -[visit_exp laneidx#107] -[visit_id laneidx#107] -[visit_exp (`%X%`_shape{lanetype#23280, dim#23280, i#104182}(`I8`_lanetype, `%`_dim{i#104189}(16)), i)] -[visit_exp `%X%`_shape{lanetype#23280, dim#23280, i#104182}(`I8`_lanetype, `%`_dim{i#104189}(16))] -[visit_exp lanetype#23280] -[visit_id lanetype#23280] -[visit_exp dim#23280] -[visit_id dim#23280] -[visit_exp i#104182] -[visit_id i#104182] -[visit_exp (`I8`_lanetype, `%`_dim{i#104189}(16))] +[check_dims] I i +dims \ I = i +[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), i)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), i)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104189}(16)] -[visit_exp i#104189] -[visit_id i#104189] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp i] [visit_id i] [visit_exp i] [visit_id i] not free -[check_dims] I dim#23292 i i#104223 i#104230 laneidx#109 lanetype#23292 shape#4058 -dims \ I = dim#23292, i, i#104223, i#104230, laneidx#109, lanetype#23292, shape#4058 -[visit_exp `VREPLACE_LANE`_instr{shape#4058, laneidx#109}(`%X%`_shape{lanetype#23292, dim#23292, i#104223}(`I16`_lanetype, `%`_dim{i#104230}(8)), i)] -[visit_exp shape#4058] -[visit_id shape#4058] -[visit_exp laneidx#109] -[visit_id laneidx#109] -[visit_exp (`%X%`_shape{lanetype#23292, dim#23292, i#104223}(`I16`_lanetype, `%`_dim{i#104230}(8)), i)] -[visit_exp `%X%`_shape{lanetype#23292, dim#23292, i#104223}(`I16`_lanetype, `%`_dim{i#104230}(8))] -[visit_exp lanetype#23292] -[visit_id lanetype#23292] -[visit_exp dim#23292] -[visit_id dim#23292] -[visit_exp i#104223] -[visit_id i#104223] -[visit_exp (`I16`_lanetype, `%`_dim{i#104230}(8))] +[check_dims] I i +dims \ I = i +[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), i)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), i)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104230}(8)] -[visit_exp i#104230] -[visit_id i#104230] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp i] [visit_id i] [visit_exp i] [visit_id i] not free -[check_dims] I dim#23304 i i#104264 i#104271 laneidx#111 lanetype#23304 shape#4060 -dims \ I = dim#23304, i, i#104264, i#104271, laneidx#111, lanetype#23304, shape#4060 -[visit_exp `VREPLACE_LANE`_instr{shape#4060, laneidx#111}(`%X%`_shape{lanetype#23304, dim#23304, i#104264}(`I32`_lanetype, `%`_dim{i#104271}(4)), i)] -[visit_exp shape#4060] -[visit_id shape#4060] -[visit_exp laneidx#111] -[visit_id laneidx#111] -[visit_exp (`%X%`_shape{lanetype#23304, dim#23304, i#104264}(`I32`_lanetype, `%`_dim{i#104271}(4)), i)] -[visit_exp `%X%`_shape{lanetype#23304, dim#23304, i#104264}(`I32`_lanetype, `%`_dim{i#104271}(4))] -[visit_exp lanetype#23304] -[visit_id lanetype#23304] -[visit_exp dim#23304] -[visit_id dim#23304] -[visit_exp i#104264] -[visit_id i#104264] -[visit_exp (`I32`_lanetype, `%`_dim{i#104271}(4))] +[check_dims] I i +dims \ I = i +[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), i)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), i)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104271}(4)] -[visit_exp i#104271] -[visit_id i#104271] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp i] [visit_id i] [visit_exp i] [visit_id i] not free -[check_dims] I dim#23316 i i#104305 i#104312 laneidx#113 lanetype#23316 shape#4062 -dims \ I = dim#23316, i, i#104305, i#104312, laneidx#113, lanetype#23316, shape#4062 -[visit_exp `VREPLACE_LANE`_instr{shape#4062, laneidx#113}(`%X%`_shape{lanetype#23316, dim#23316, i#104305}(`I64`_lanetype, `%`_dim{i#104312}(2)), i)] -[visit_exp shape#4062] -[visit_id shape#4062] -[visit_exp laneidx#113] -[visit_id laneidx#113] -[visit_exp (`%X%`_shape{lanetype#23316, dim#23316, i#104305}(`I64`_lanetype, `%`_dim{i#104312}(2)), i)] -[visit_exp `%X%`_shape{lanetype#23316, dim#23316, i#104305}(`I64`_lanetype, `%`_dim{i#104312}(2))] -[visit_exp lanetype#23316] -[visit_id lanetype#23316] -[visit_exp dim#23316] -[visit_id dim#23316] -[visit_exp i#104305] -[visit_id i#104305] -[visit_exp (`I64`_lanetype, `%`_dim{i#104312}(2))] +[check_dims] I i +dims \ I = i +[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), i)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), i)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104312}(2)] -[visit_exp i#104312] -[visit_id i#104312] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp i] [visit_id i] [visit_exp i] [visit_id i] not free -[check_dims] I dim#23328 i i#104346 i#104353 laneidx#115 lanetype#23328 shape#4064 -dims \ I = dim#23328, i, i#104346, i#104353, laneidx#115, lanetype#23328, shape#4064 -[visit_exp `VREPLACE_LANE`_instr{shape#4064, laneidx#115}(`%X%`_shape{lanetype#23328, dim#23328, i#104346}(`F32`_lanetype, `%`_dim{i#104353}(4)), i)] -[visit_exp shape#4064] -[visit_id shape#4064] -[visit_exp laneidx#115] -[visit_id laneidx#115] -[visit_exp (`%X%`_shape{lanetype#23328, dim#23328, i#104346}(`F32`_lanetype, `%`_dim{i#104353}(4)), i)] -[visit_exp `%X%`_shape{lanetype#23328, dim#23328, i#104346}(`F32`_lanetype, `%`_dim{i#104353}(4))] -[visit_exp lanetype#23328] -[visit_id lanetype#23328] -[visit_exp dim#23328] -[visit_id dim#23328] -[visit_exp i#104346] -[visit_id i#104346] -[visit_exp (`F32`_lanetype, `%`_dim{i#104353}(4))] +[check_dims] I i +dims \ I = i +[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), i)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), i)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104353}(4)] -[visit_exp i#104353] -[visit_id i#104353] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp i] [visit_id i] [visit_exp i] [visit_id i] not free -[check_dims] I dim#23340 i i#104387 i#104394 laneidx#117 lanetype#23340 shape#4066 -dims \ I = dim#23340, i, i#104387, i#104394, laneidx#117, lanetype#23340, shape#4066 -[visit_exp `VREPLACE_LANE`_instr{shape#4066, laneidx#117}(`%X%`_shape{lanetype#23340, dim#23340, i#104387}(`F64`_lanetype, `%`_dim{i#104394}(2)), i)] -[visit_exp shape#4066] -[visit_id shape#4066] -[visit_exp laneidx#117] -[visit_id laneidx#117] -[visit_exp (`%X%`_shape{lanetype#23340, dim#23340, i#104387}(`F64`_lanetype, `%`_dim{i#104394}(2)), i)] -[visit_exp `%X%`_shape{lanetype#23340, dim#23340, i#104387}(`F64`_lanetype, `%`_dim{i#104394}(2))] -[visit_exp lanetype#23340] -[visit_id lanetype#23340] -[visit_exp dim#23340] -[visit_id dim#23340] -[visit_exp i#104387] -[visit_id i#104387] -[visit_exp (`F64`_lanetype, `%`_dim{i#104394}(2))] +[check_dims] I i +dims \ I = i +[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), i)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), i)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104394}(2)] -[visit_exp i#104394] -[visit_id i#104394] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp i] @@ -100133,13 +78869,9 @@ dims \ I = dim#23340, i, i#104387, i#104394, laneidx#117, lanetype#23340, shape# [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I vectype#316 vvtestop#9 -dims \ I = vectype#316, vvtestop#9 -[visit_exp `VVTESTOP`_instr{vectype#316, vvtestop#9}(`V128`_vectype, `ANY_TRUE`_vvtestop)] -[visit_exp vectype#316] -[visit_id vectype#316] -[visit_exp vvtestop#9] -[visit_id vvtestop#9] +[check_dims] I +dims \ I = +[visit_exp `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop)] [visit_exp (`V128`_vectype, `ANY_TRUE`_vvtestop)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -100148,25 +78880,15 @@ dims \ I = vectype#316, vvtestop#9 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#23352 i#104411 i#104418 lanetype#23352 shape#4068 -dims \ I = dim#23352, i#104411, i#104418, lanetype#23352, shape#4068 -[visit_exp `VTESTOP`_instr{shape#4068}(`%X%`_shape{lanetype#23352, dim#23352, i#104411}(`I8`_lanetype, `%`_dim{i#104418}(16)), `ALL_TRUE`_vtestop_)] -[visit_exp shape#4068] -[visit_id shape#4068] -[visit_exp (`%X%`_shape{lanetype#23352, dim#23352, i#104411}(`I8`_lanetype, `%`_dim{i#104418}(16)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape{lanetype#23352, dim#23352, i#104411}(`I8`_lanetype, `%`_dim{i#104418}(16))] -[visit_exp lanetype#23352] -[visit_id lanetype#23352] -[visit_exp dim#23352] -[visit_id dim#23352] -[visit_exp i#104411] -[visit_id i#104411] -[visit_exp (`I8`_lanetype, `%`_dim{i#104418}(16))] +[check_dims] I +dims \ I = +[visit_exp `VTESTOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ALL_TRUE`_vtestop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104418}(16)] -[visit_exp i#104418] -[visit_id i#104418] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `ALL_TRUE`_vtestop_] @@ -100174,25 +78896,15 @@ dims \ I = dim#23352, i#104411, i#104418, lanetype#23352, shape#4068 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#23379 i#104468 i#104475 lanetype#23379 shape#4070 -dims \ I = dim#23379, i#104468, i#104475, lanetype#23379, shape#4070 -[visit_exp `VTESTOP`_instr{shape#4070}(`%X%`_shape{lanetype#23379, dim#23379, i#104468}(`I16`_lanetype, `%`_dim{i#104475}(8)), `ALL_TRUE`_vtestop_)] -[visit_exp shape#4070] -[visit_id shape#4070] -[visit_exp (`%X%`_shape{lanetype#23379, dim#23379, i#104468}(`I16`_lanetype, `%`_dim{i#104475}(8)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape{lanetype#23379, dim#23379, i#104468}(`I16`_lanetype, `%`_dim{i#104475}(8))] -[visit_exp lanetype#23379] -[visit_id lanetype#23379] -[visit_exp dim#23379] -[visit_id dim#23379] -[visit_exp i#104468] -[visit_id i#104468] -[visit_exp (`I16`_lanetype, `%`_dim{i#104475}(8))] +[check_dims] I +dims \ I = +[visit_exp `VTESTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ALL_TRUE`_vtestop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104475}(8)] -[visit_exp i#104475] -[visit_id i#104475] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `ALL_TRUE`_vtestop_] @@ -100200,25 +78912,15 @@ dims \ I = dim#23379, i#104468, i#104475, lanetype#23379, shape#4070 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#23406 i#104525 i#104532 lanetype#23406 shape#4072 -dims \ I = dim#23406, i#104525, i#104532, lanetype#23406, shape#4072 -[visit_exp `VTESTOP`_instr{shape#4072}(`%X%`_shape{lanetype#23406, dim#23406, i#104525}(`I32`_lanetype, `%`_dim{i#104532}(4)), `ALL_TRUE`_vtestop_)] -[visit_exp shape#4072] -[visit_id shape#4072] -[visit_exp (`%X%`_shape{lanetype#23406, dim#23406, i#104525}(`I32`_lanetype, `%`_dim{i#104532}(4)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape{lanetype#23406, dim#23406, i#104525}(`I32`_lanetype, `%`_dim{i#104532}(4))] -[visit_exp lanetype#23406] -[visit_id lanetype#23406] -[visit_exp dim#23406] -[visit_id dim#23406] -[visit_exp i#104525] -[visit_id i#104525] -[visit_exp (`I32`_lanetype, `%`_dim{i#104532}(4))] +[check_dims] I +dims \ I = +[visit_exp `VTESTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ALL_TRUE`_vtestop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104532}(4)] -[visit_exp i#104532] -[visit_id i#104532] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `ALL_TRUE`_vtestop_] @@ -100226,25 +78928,15 @@ dims \ I = dim#23406, i#104525, i#104532, lanetype#23406, shape#4072 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#23433 i#104582 i#104589 lanetype#23433 shape#4074 -dims \ I = dim#23433, i#104582, i#104589, lanetype#23433, shape#4074 -[visit_exp `VTESTOP`_instr{shape#4074}(`%X%`_shape{lanetype#23433, dim#23433, i#104582}(`I64`_lanetype, `%`_dim{i#104589}(2)), `ALL_TRUE`_vtestop_)] -[visit_exp shape#4074] -[visit_id shape#4074] -[visit_exp (`%X%`_shape{lanetype#23433, dim#23433, i#104582}(`I64`_lanetype, `%`_dim{i#104589}(2)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape{lanetype#23433, dim#23433, i#104582}(`I64`_lanetype, `%`_dim{i#104589}(2))] -[visit_exp lanetype#23433] -[visit_id lanetype#23433] -[visit_exp dim#23433] -[visit_id dim#23433] -[visit_exp i#104582] -[visit_id i#104582] -[visit_exp (`I64`_lanetype, `%`_dim{i#104589}(2))] +[check_dims] I +dims \ I = +[visit_exp `VTESTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ALL_TRUE`_vtestop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ALL_TRUE`_vtestop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104589}(2)] -[visit_exp i#104589] -[visit_id i#104589] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `ALL_TRUE`_vtestop_] @@ -100252,1092 +78944,616 @@ dims \ I = dim#23433, i#104582, i#104589, lanetype#23433, shape#4074 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#23460 i#104639 i#104646 lanetype#23460 shape#4076 -dims \ I = dim#23460, i#104639, i#104646, lanetype#23460, shape#4076 -[visit_exp `VRELOP`_instr{shape#4076}(`%X%`_shape{lanetype#23460, dim#23460, i#104639}(`I8`_lanetype, `%`_dim{i#104646}(16)), `EQ`_vrelop_)] -[visit_exp shape#4076] -[visit_id shape#4076] -[visit_exp (`%X%`_shape{lanetype#23460, dim#23460, i#104639}(`I8`_lanetype, `%`_dim{i#104646}(16)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#23460, dim#23460, i#104639}(`I8`_lanetype, `%`_dim{i#104646}(16))] -[visit_exp lanetype#23460] -[visit_id lanetype#23460] -[visit_exp dim#23460] -[visit_id dim#23460] -[visit_exp i#104639] -[visit_id i#104639] -[visit_exp (`I8`_lanetype, `%`_dim{i#104646}(16))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EQ`_vrelop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104646}(16)] -[visit_exp i#104646] -[visit_id i#104646] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `EQ`_vrelop_] [visit_exp ()] -[check_dims] I dim#23487 i#104696 i#104703 lanetype#23487 shape#4078 -dims \ I = dim#23487, i#104696, i#104703, lanetype#23487, shape#4078 -[visit_exp `VRELOP`_instr{shape#4078}(`%X%`_shape{lanetype#23487, dim#23487, i#104696}(`I8`_lanetype, `%`_dim{i#104703}(16)), `NE`_vrelop_)] -[visit_exp shape#4078] -[visit_id shape#4078] -[visit_exp (`%X%`_shape{lanetype#23487, dim#23487, i#104696}(`I8`_lanetype, `%`_dim{i#104703}(16)), `NE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#23487, dim#23487, i#104696}(`I8`_lanetype, `%`_dim{i#104703}(16))] -[visit_exp lanetype#23487] -[visit_id lanetype#23487] -[visit_exp dim#23487] -[visit_id dim#23487] -[visit_exp i#104696] -[visit_id i#104696] -[visit_exp (`I8`_lanetype, `%`_dim{i#104703}(16))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NE`_vrelop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NE`_vrelop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104703}(16)] -[visit_exp i#104703] -[visit_id i#104703] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `NE`_vrelop_] [visit_exp ()] -[check_dims] I dim#23514 i#104753 i#104760 lanetype#23514 shape#4080 sx#21962 -dims \ I = dim#23514, i#104753, i#104760, lanetype#23514, shape#4080, sx#21962 -[visit_exp `VRELOP`_instr{shape#4080}(`%X%`_shape{lanetype#23514, dim#23514, i#104753}(`I8`_lanetype, `%`_dim{i#104760}(16)), `LT`_vrelop_{sx#21962}(`S`_sx))] -[visit_exp shape#4080] -[visit_id shape#4080] -[visit_exp (`%X%`_shape{lanetype#23514, dim#23514, i#104753}(`I8`_lanetype, `%`_dim{i#104760}(16)), `LT`_vrelop_{sx#21962}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#23514, dim#23514, i#104753}(`I8`_lanetype, `%`_dim{i#104760}(16))] -[visit_exp lanetype#23514] -[visit_id lanetype#23514] -[visit_exp dim#23514] -[visit_id dim#23514] -[visit_exp i#104753] -[visit_id i#104753] -[visit_exp (`I8`_lanetype, `%`_dim{i#104760}(16))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104760}(16)] -[visit_exp i#104760] -[visit_id i#104760] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `LT`_vrelop_{sx#21962}(`S`_sx)] -[visit_exp sx#21962] -[visit_id sx#21962] +[visit_exp `LT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#23556 i#104855 i#104862 lanetype#23556 shape#4082 sx#22086 -dims \ I = dim#23556, i#104855, i#104862, lanetype#23556, shape#4082, sx#22086 -[visit_exp `VRELOP`_instr{shape#4082}(`%X%`_shape{lanetype#23556, dim#23556, i#104855}(`I8`_lanetype, `%`_dim{i#104862}(16)), `LT`_vrelop_{sx#22086}(`U`_sx))] -[visit_exp shape#4082] -[visit_id shape#4082] -[visit_exp (`%X%`_shape{lanetype#23556, dim#23556, i#104855}(`I8`_lanetype, `%`_dim{i#104862}(16)), `LT`_vrelop_{sx#22086}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#23556, dim#23556, i#104855}(`I8`_lanetype, `%`_dim{i#104862}(16))] -[visit_exp lanetype#23556] -[visit_id lanetype#23556] -[visit_exp dim#23556] -[visit_id dim#23556] -[visit_exp i#104855] -[visit_id i#104855] -[visit_exp (`I8`_lanetype, `%`_dim{i#104862}(16))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104862}(16)] -[visit_exp i#104862] -[visit_id i#104862] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `LT`_vrelop_{sx#22086}(`U`_sx)] -[visit_exp sx#22086] -[visit_id sx#22086] +[visit_exp `LT`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#23598 i#104957 i#104964 lanetype#23598 shape#4084 sx#22210 -dims \ I = dim#23598, i#104957, i#104964, lanetype#23598, shape#4084, sx#22210 -[visit_exp `VRELOP`_instr{shape#4084}(`%X%`_shape{lanetype#23598, dim#23598, i#104957}(`I8`_lanetype, `%`_dim{i#104964}(16)), `GT`_vrelop_{sx#22210}(`S`_sx))] -[visit_exp shape#4084] -[visit_id shape#4084] -[visit_exp (`%X%`_shape{lanetype#23598, dim#23598, i#104957}(`I8`_lanetype, `%`_dim{i#104964}(16)), `GT`_vrelop_{sx#22210}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#23598, dim#23598, i#104957}(`I8`_lanetype, `%`_dim{i#104964}(16))] -[visit_exp lanetype#23598] -[visit_id lanetype#23598] -[visit_exp dim#23598] -[visit_id dim#23598] -[visit_exp i#104957] -[visit_id i#104957] -[visit_exp (`I8`_lanetype, `%`_dim{i#104964}(16))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#104964}(16)] -[visit_exp i#104964] -[visit_id i#104964] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `GT`_vrelop_{sx#22210}(`S`_sx)] -[visit_exp sx#22210] -[visit_id sx#22210] +[visit_exp `GT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#23640 i#105059 i#105066 lanetype#23640 shape#4086 sx#22334 -dims \ I = dim#23640, i#105059, i#105066, lanetype#23640, shape#4086, sx#22334 -[visit_exp `VRELOP`_instr{shape#4086}(`%X%`_shape{lanetype#23640, dim#23640, i#105059}(`I8`_lanetype, `%`_dim{i#105066}(16)), `GT`_vrelop_{sx#22334}(`U`_sx))] -[visit_exp shape#4086] -[visit_id shape#4086] -[visit_exp (`%X%`_shape{lanetype#23640, dim#23640, i#105059}(`I8`_lanetype, `%`_dim{i#105066}(16)), `GT`_vrelop_{sx#22334}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#23640, dim#23640, i#105059}(`I8`_lanetype, `%`_dim{i#105066}(16))] -[visit_exp lanetype#23640] -[visit_id lanetype#23640] -[visit_exp dim#23640] -[visit_id dim#23640] -[visit_exp i#105059] -[visit_id i#105059] -[visit_exp (`I8`_lanetype, `%`_dim{i#105066}(16))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#105066}(16)] -[visit_exp i#105066] -[visit_id i#105066] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `GT`_vrelop_{sx#22334}(`U`_sx)] -[visit_exp sx#22334] -[visit_id sx#22334] +[visit_exp `GT`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#23682 i#105161 i#105168 lanetype#23682 shape#4088 sx#22458 -dims \ I = dim#23682, i#105161, i#105168, lanetype#23682, shape#4088, sx#22458 -[visit_exp `VRELOP`_instr{shape#4088}(`%X%`_shape{lanetype#23682, dim#23682, i#105161}(`I8`_lanetype, `%`_dim{i#105168}(16)), `LE`_vrelop_{sx#22458}(`S`_sx))] -[visit_exp shape#4088] -[visit_id shape#4088] -[visit_exp (`%X%`_shape{lanetype#23682, dim#23682, i#105161}(`I8`_lanetype, `%`_dim{i#105168}(16)), `LE`_vrelop_{sx#22458}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#23682, dim#23682, i#105161}(`I8`_lanetype, `%`_dim{i#105168}(16))] -[visit_exp lanetype#23682] -[visit_id lanetype#23682] -[visit_exp dim#23682] -[visit_id dim#23682] -[visit_exp i#105161] -[visit_id i#105161] -[visit_exp (`I8`_lanetype, `%`_dim{i#105168}(16))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#105168}(16)] -[visit_exp i#105168] -[visit_id i#105168] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `LE`_vrelop_{sx#22458}(`S`_sx)] -[visit_exp sx#22458] -[visit_id sx#22458] +[visit_exp `LE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#23724 i#105263 i#105270 lanetype#23724 shape#4090 sx#22582 -dims \ I = dim#23724, i#105263, i#105270, lanetype#23724, shape#4090, sx#22582 -[visit_exp `VRELOP`_instr{shape#4090}(`%X%`_shape{lanetype#23724, dim#23724, i#105263}(`I8`_lanetype, `%`_dim{i#105270}(16)), `LE`_vrelop_{sx#22582}(`U`_sx))] -[visit_exp shape#4090] -[visit_id shape#4090] -[visit_exp (`%X%`_shape{lanetype#23724, dim#23724, i#105263}(`I8`_lanetype, `%`_dim{i#105270}(16)), `LE`_vrelop_{sx#22582}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#23724, dim#23724, i#105263}(`I8`_lanetype, `%`_dim{i#105270}(16))] -[visit_exp lanetype#23724] -[visit_id lanetype#23724] -[visit_exp dim#23724] -[visit_id dim#23724] -[visit_exp i#105263] -[visit_id i#105263] -[visit_exp (`I8`_lanetype, `%`_dim{i#105270}(16))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#105270}(16)] -[visit_exp i#105270] -[visit_id i#105270] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `LE`_vrelop_{sx#22582}(`U`_sx)] -[visit_exp sx#22582] -[visit_id sx#22582] +[visit_exp `LE`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#23766 i#105365 i#105372 lanetype#23766 shape#4092 sx#22706 -dims \ I = dim#23766, i#105365, i#105372, lanetype#23766, shape#4092, sx#22706 -[visit_exp `VRELOP`_instr{shape#4092}(`%X%`_shape{lanetype#23766, dim#23766, i#105365}(`I8`_lanetype, `%`_dim{i#105372}(16)), `GE`_vrelop_{sx#22706}(`S`_sx))] -[visit_exp shape#4092] -[visit_id shape#4092] -[visit_exp (`%X%`_shape{lanetype#23766, dim#23766, i#105365}(`I8`_lanetype, `%`_dim{i#105372}(16)), `GE`_vrelop_{sx#22706}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#23766, dim#23766, i#105365}(`I8`_lanetype, `%`_dim{i#105372}(16))] -[visit_exp lanetype#23766] -[visit_id lanetype#23766] -[visit_exp dim#23766] -[visit_id dim#23766] -[visit_exp i#105365] -[visit_id i#105365] -[visit_exp (`I8`_lanetype, `%`_dim{i#105372}(16))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#105372}(16)] -[visit_exp i#105372] -[visit_id i#105372] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `GE`_vrelop_{sx#22706}(`S`_sx)] -[visit_exp sx#22706] -[visit_id sx#22706] +[visit_exp `GE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#23808 i#105467 i#105474 lanetype#23808 shape#4094 sx#22830 -dims \ I = dim#23808, i#105467, i#105474, lanetype#23808, shape#4094, sx#22830 -[visit_exp `VRELOP`_instr{shape#4094}(`%X%`_shape{lanetype#23808, dim#23808, i#105467}(`I8`_lanetype, `%`_dim{i#105474}(16)), `GE`_vrelop_{sx#22830}(`U`_sx))] -[visit_exp shape#4094] -[visit_id shape#4094] -[visit_exp (`%X%`_shape{lanetype#23808, dim#23808, i#105467}(`I8`_lanetype, `%`_dim{i#105474}(16)), `GE`_vrelop_{sx#22830}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#23808, dim#23808, i#105467}(`I8`_lanetype, `%`_dim{i#105474}(16))] -[visit_exp lanetype#23808] -[visit_id lanetype#23808] -[visit_exp dim#23808] -[visit_id dim#23808] -[visit_exp i#105467] -[visit_id i#105467] -[visit_exp (`I8`_lanetype, `%`_dim{i#105474}(16))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#105474}(16)] -[visit_exp i#105474] -[visit_id i#105474] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `GE`_vrelop_{sx#22830}(`U`_sx)] -[visit_exp sx#22830] -[visit_id sx#22830] +[visit_exp `GE`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#23850 i#105569 i#105576 lanetype#23850 shape#4096 -dims \ I = dim#23850, i#105569, i#105576, lanetype#23850, shape#4096 -[visit_exp `VRELOP`_instr{shape#4096}(`%X%`_shape{lanetype#23850, dim#23850, i#105569}(`I16`_lanetype, `%`_dim{i#105576}(8)), `EQ`_vrelop_)] -[visit_exp shape#4096] -[visit_id shape#4096] -[visit_exp (`%X%`_shape{lanetype#23850, dim#23850, i#105569}(`I16`_lanetype, `%`_dim{i#105576}(8)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#23850, dim#23850, i#105569}(`I16`_lanetype, `%`_dim{i#105576}(8))] -[visit_exp lanetype#23850] -[visit_id lanetype#23850] -[visit_exp dim#23850] -[visit_id dim#23850] -[visit_exp i#105569] -[visit_id i#105569] -[visit_exp (`I16`_lanetype, `%`_dim{i#105576}(8))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EQ`_vrelop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#105576}(8)] -[visit_exp i#105576] -[visit_id i#105576] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `EQ`_vrelop_] [visit_exp ()] -[check_dims] I dim#23877 i#105626 i#105633 lanetype#23877 shape#4098 -dims \ I = dim#23877, i#105626, i#105633, lanetype#23877, shape#4098 -[visit_exp `VRELOP`_instr{shape#4098}(`%X%`_shape{lanetype#23877, dim#23877, i#105626}(`I16`_lanetype, `%`_dim{i#105633}(8)), `NE`_vrelop_)] -[visit_exp shape#4098] -[visit_id shape#4098] -[visit_exp (`%X%`_shape{lanetype#23877, dim#23877, i#105626}(`I16`_lanetype, `%`_dim{i#105633}(8)), `NE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#23877, dim#23877, i#105626}(`I16`_lanetype, `%`_dim{i#105633}(8))] -[visit_exp lanetype#23877] -[visit_id lanetype#23877] -[visit_exp dim#23877] -[visit_id dim#23877] -[visit_exp i#105626] -[visit_id i#105626] -[visit_exp (`I16`_lanetype, `%`_dim{i#105633}(8))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NE`_vrelop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NE`_vrelop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#105633}(8)] -[visit_exp i#105633] -[visit_id i#105633] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `NE`_vrelop_] [visit_exp ()] -[check_dims] I dim#23904 i#105683 i#105690 lanetype#23904 shape#4100 sx#23074 -dims \ I = dim#23904, i#105683, i#105690, lanetype#23904, shape#4100, sx#23074 -[visit_exp `VRELOP`_instr{shape#4100}(`%X%`_shape{lanetype#23904, dim#23904, i#105683}(`I16`_lanetype, `%`_dim{i#105690}(8)), `LT`_vrelop_{sx#23074}(`S`_sx))] -[visit_exp shape#4100] -[visit_id shape#4100] -[visit_exp (`%X%`_shape{lanetype#23904, dim#23904, i#105683}(`I16`_lanetype, `%`_dim{i#105690}(8)), `LT`_vrelop_{sx#23074}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#23904, dim#23904, i#105683}(`I16`_lanetype, `%`_dim{i#105690}(8))] -[visit_exp lanetype#23904] -[visit_id lanetype#23904] -[visit_exp dim#23904] -[visit_id dim#23904] -[visit_exp i#105683] -[visit_id i#105683] -[visit_exp (`I16`_lanetype, `%`_dim{i#105690}(8))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#105690}(8)] -[visit_exp i#105690] -[visit_id i#105690] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `LT`_vrelop_{sx#23074}(`S`_sx)] -[visit_exp sx#23074] -[visit_id sx#23074] +[visit_exp `LT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#23946 i#105785 i#105792 lanetype#23946 shape#4102 sx#23198 -dims \ I = dim#23946, i#105785, i#105792, lanetype#23946, shape#4102, sx#23198 -[visit_exp `VRELOP`_instr{shape#4102}(`%X%`_shape{lanetype#23946, dim#23946, i#105785}(`I16`_lanetype, `%`_dim{i#105792}(8)), `LT`_vrelop_{sx#23198}(`U`_sx))] -[visit_exp shape#4102] -[visit_id shape#4102] -[visit_exp (`%X%`_shape{lanetype#23946, dim#23946, i#105785}(`I16`_lanetype, `%`_dim{i#105792}(8)), `LT`_vrelop_{sx#23198}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#23946, dim#23946, i#105785}(`I16`_lanetype, `%`_dim{i#105792}(8))] -[visit_exp lanetype#23946] -[visit_id lanetype#23946] -[visit_exp dim#23946] -[visit_id dim#23946] -[visit_exp i#105785] -[visit_id i#105785] -[visit_exp (`I16`_lanetype, `%`_dim{i#105792}(8))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#105792}(8)] -[visit_exp i#105792] -[visit_id i#105792] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `LT`_vrelop_{sx#23198}(`U`_sx)] -[visit_exp sx#23198] -[visit_id sx#23198] +[visit_exp `LT`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#23988 i#105887 i#105894 lanetype#23988 shape#4104 sx#23322 -dims \ I = dim#23988, i#105887, i#105894, lanetype#23988, shape#4104, sx#23322 -[visit_exp `VRELOP`_instr{shape#4104}(`%X%`_shape{lanetype#23988, dim#23988, i#105887}(`I16`_lanetype, `%`_dim{i#105894}(8)), `GT`_vrelop_{sx#23322}(`S`_sx))] -[visit_exp shape#4104] -[visit_id shape#4104] -[visit_exp (`%X%`_shape{lanetype#23988, dim#23988, i#105887}(`I16`_lanetype, `%`_dim{i#105894}(8)), `GT`_vrelop_{sx#23322}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#23988, dim#23988, i#105887}(`I16`_lanetype, `%`_dim{i#105894}(8))] -[visit_exp lanetype#23988] -[visit_id lanetype#23988] -[visit_exp dim#23988] -[visit_id dim#23988] -[visit_exp i#105887] -[visit_id i#105887] -[visit_exp (`I16`_lanetype, `%`_dim{i#105894}(8))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#105894}(8)] -[visit_exp i#105894] -[visit_id i#105894] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `GT`_vrelop_{sx#23322}(`S`_sx)] -[visit_exp sx#23322] -[visit_id sx#23322] +[visit_exp `GT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#24030 i#105989 i#105996 lanetype#24030 shape#4106 sx#23446 -dims \ I = dim#24030, i#105989, i#105996, lanetype#24030, shape#4106, sx#23446 -[visit_exp `VRELOP`_instr{shape#4106}(`%X%`_shape{lanetype#24030, dim#24030, i#105989}(`I16`_lanetype, `%`_dim{i#105996}(8)), `GT`_vrelop_{sx#23446}(`U`_sx))] -[visit_exp shape#4106] -[visit_id shape#4106] -[visit_exp (`%X%`_shape{lanetype#24030, dim#24030, i#105989}(`I16`_lanetype, `%`_dim{i#105996}(8)), `GT`_vrelop_{sx#23446}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#24030, dim#24030, i#105989}(`I16`_lanetype, `%`_dim{i#105996}(8))] -[visit_exp lanetype#24030] -[visit_id lanetype#24030] -[visit_exp dim#24030] -[visit_id dim#24030] -[visit_exp i#105989] -[visit_id i#105989] -[visit_exp (`I16`_lanetype, `%`_dim{i#105996}(8))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#105996}(8)] -[visit_exp i#105996] -[visit_id i#105996] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `GT`_vrelop_{sx#23446}(`U`_sx)] -[visit_exp sx#23446] -[visit_id sx#23446] +[visit_exp `GT`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#24072 i#106091 i#106098 lanetype#24072 shape#4108 sx#23570 -dims \ I = dim#24072, i#106091, i#106098, lanetype#24072, shape#4108, sx#23570 -[visit_exp `VRELOP`_instr{shape#4108}(`%X%`_shape{lanetype#24072, dim#24072, i#106091}(`I16`_lanetype, `%`_dim{i#106098}(8)), `LE`_vrelop_{sx#23570}(`S`_sx))] -[visit_exp shape#4108] -[visit_id shape#4108] -[visit_exp (`%X%`_shape{lanetype#24072, dim#24072, i#106091}(`I16`_lanetype, `%`_dim{i#106098}(8)), `LE`_vrelop_{sx#23570}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#24072, dim#24072, i#106091}(`I16`_lanetype, `%`_dim{i#106098}(8))] -[visit_exp lanetype#24072] -[visit_id lanetype#24072] -[visit_exp dim#24072] -[visit_id dim#24072] -[visit_exp i#106091] -[visit_id i#106091] -[visit_exp (`I16`_lanetype, `%`_dim{i#106098}(8))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#106098}(8)] -[visit_exp i#106098] -[visit_id i#106098] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `LE`_vrelop_{sx#23570}(`S`_sx)] -[visit_exp sx#23570] -[visit_id sx#23570] +[visit_exp `LE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#24114 i#106193 i#106200 lanetype#24114 shape#4110 sx#23694 -dims \ I = dim#24114, i#106193, i#106200, lanetype#24114, shape#4110, sx#23694 -[visit_exp `VRELOP`_instr{shape#4110}(`%X%`_shape{lanetype#24114, dim#24114, i#106193}(`I16`_lanetype, `%`_dim{i#106200}(8)), `LE`_vrelop_{sx#23694}(`U`_sx))] -[visit_exp shape#4110] -[visit_id shape#4110] -[visit_exp (`%X%`_shape{lanetype#24114, dim#24114, i#106193}(`I16`_lanetype, `%`_dim{i#106200}(8)), `LE`_vrelop_{sx#23694}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#24114, dim#24114, i#106193}(`I16`_lanetype, `%`_dim{i#106200}(8))] -[visit_exp lanetype#24114] -[visit_id lanetype#24114] -[visit_exp dim#24114] -[visit_id dim#24114] -[visit_exp i#106193] -[visit_id i#106193] -[visit_exp (`I16`_lanetype, `%`_dim{i#106200}(8))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#106200}(8)] -[visit_exp i#106200] -[visit_id i#106200] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `LE`_vrelop_{sx#23694}(`U`_sx)] -[visit_exp sx#23694] -[visit_id sx#23694] +[visit_exp `LE`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#24156 i#106295 i#106302 lanetype#24156 shape#4112 sx#23818 -dims \ I = dim#24156, i#106295, i#106302, lanetype#24156, shape#4112, sx#23818 -[visit_exp `VRELOP`_instr{shape#4112}(`%X%`_shape{lanetype#24156, dim#24156, i#106295}(`I16`_lanetype, `%`_dim{i#106302}(8)), `GE`_vrelop_{sx#23818}(`S`_sx))] -[visit_exp shape#4112] -[visit_id shape#4112] -[visit_exp (`%X%`_shape{lanetype#24156, dim#24156, i#106295}(`I16`_lanetype, `%`_dim{i#106302}(8)), `GE`_vrelop_{sx#23818}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#24156, dim#24156, i#106295}(`I16`_lanetype, `%`_dim{i#106302}(8))] -[visit_exp lanetype#24156] -[visit_id lanetype#24156] -[visit_exp dim#24156] -[visit_id dim#24156] -[visit_exp i#106295] -[visit_id i#106295] -[visit_exp (`I16`_lanetype, `%`_dim{i#106302}(8))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#106302}(8)] -[visit_exp i#106302] -[visit_id i#106302] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `GE`_vrelop_{sx#23818}(`S`_sx)] -[visit_exp sx#23818] -[visit_id sx#23818] +[visit_exp `GE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#24198 i#106397 i#106404 lanetype#24198 shape#4114 sx#23942 -dims \ I = dim#24198, i#106397, i#106404, lanetype#24198, shape#4114, sx#23942 -[visit_exp `VRELOP`_instr{shape#4114}(`%X%`_shape{lanetype#24198, dim#24198, i#106397}(`I16`_lanetype, `%`_dim{i#106404}(8)), `GE`_vrelop_{sx#23942}(`U`_sx))] -[visit_exp shape#4114] -[visit_id shape#4114] -[visit_exp (`%X%`_shape{lanetype#24198, dim#24198, i#106397}(`I16`_lanetype, `%`_dim{i#106404}(8)), `GE`_vrelop_{sx#23942}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#24198, dim#24198, i#106397}(`I16`_lanetype, `%`_dim{i#106404}(8))] -[visit_exp lanetype#24198] -[visit_id lanetype#24198] -[visit_exp dim#24198] -[visit_id dim#24198] -[visit_exp i#106397] -[visit_id i#106397] -[visit_exp (`I16`_lanetype, `%`_dim{i#106404}(8))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#106404}(8)] -[visit_exp i#106404] -[visit_id i#106404] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `GE`_vrelop_{sx#23942}(`U`_sx)] -[visit_exp sx#23942] -[visit_id sx#23942] +[visit_exp `GE`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#24240 i#106499 i#106506 lanetype#24240 shape#4116 -dims \ I = dim#24240, i#106499, i#106506, lanetype#24240, shape#4116 -[visit_exp `VRELOP`_instr{shape#4116}(`%X%`_shape{lanetype#24240, dim#24240, i#106499}(`I32`_lanetype, `%`_dim{i#106506}(4)), `EQ`_vrelop_)] -[visit_exp shape#4116] -[visit_id shape#4116] -[visit_exp (`%X%`_shape{lanetype#24240, dim#24240, i#106499}(`I32`_lanetype, `%`_dim{i#106506}(4)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#24240, dim#24240, i#106499}(`I32`_lanetype, `%`_dim{i#106506}(4))] -[visit_exp lanetype#24240] -[visit_id lanetype#24240] -[visit_exp dim#24240] -[visit_id dim#24240] -[visit_exp i#106499] -[visit_id i#106499] -[visit_exp (`I32`_lanetype, `%`_dim{i#106506}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#106506}(4)] -[visit_exp i#106506] -[visit_id i#106506] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `EQ`_vrelop_] [visit_exp ()] -[check_dims] I dim#24267 i#106556 i#106563 lanetype#24267 shape#4118 -dims \ I = dim#24267, i#106556, i#106563, lanetype#24267, shape#4118 -[visit_exp `VRELOP`_instr{shape#4118}(`%X%`_shape{lanetype#24267, dim#24267, i#106556}(`I32`_lanetype, `%`_dim{i#106563}(4)), `NE`_vrelop_)] -[visit_exp shape#4118] -[visit_id shape#4118] -[visit_exp (`%X%`_shape{lanetype#24267, dim#24267, i#106556}(`I32`_lanetype, `%`_dim{i#106563}(4)), `NE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#24267, dim#24267, i#106556}(`I32`_lanetype, `%`_dim{i#106563}(4))] -[visit_exp lanetype#24267] -[visit_id lanetype#24267] -[visit_exp dim#24267] -[visit_id dim#24267] -[visit_exp i#106556] -[visit_id i#106556] -[visit_exp (`I32`_lanetype, `%`_dim{i#106563}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#106563}(4)] -[visit_exp i#106563] -[visit_id i#106563] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `NE`_vrelop_] [visit_exp ()] -[check_dims] I dim#24294 i#106613 i#106620 lanetype#24294 shape#4120 sx#24186 -dims \ I = dim#24294, i#106613, i#106620, lanetype#24294, shape#4120, sx#24186 -[visit_exp `VRELOP`_instr{shape#4120}(`%X%`_shape{lanetype#24294, dim#24294, i#106613}(`I32`_lanetype, `%`_dim{i#106620}(4)), `LT`_vrelop_{sx#24186}(`S`_sx))] -[visit_exp shape#4120] -[visit_id shape#4120] -[visit_exp (`%X%`_shape{lanetype#24294, dim#24294, i#106613}(`I32`_lanetype, `%`_dim{i#106620}(4)), `LT`_vrelop_{sx#24186}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#24294, dim#24294, i#106613}(`I32`_lanetype, `%`_dim{i#106620}(4))] -[visit_exp lanetype#24294] -[visit_id lanetype#24294] -[visit_exp dim#24294] -[visit_id dim#24294] -[visit_exp i#106613] -[visit_id i#106613] -[visit_exp (`I32`_lanetype, `%`_dim{i#106620}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#106620}(4)] -[visit_exp i#106620] -[visit_id i#106620] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `LT`_vrelop_{sx#24186}(`S`_sx)] -[visit_exp sx#24186] -[visit_id sx#24186] +[visit_exp `LT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#24336 i#106715 i#106722 lanetype#24336 shape#4122 sx#24310 -dims \ I = dim#24336, i#106715, i#106722, lanetype#24336, shape#4122, sx#24310 -[visit_exp `VRELOP`_instr{shape#4122}(`%X%`_shape{lanetype#24336, dim#24336, i#106715}(`I32`_lanetype, `%`_dim{i#106722}(4)), `LT`_vrelop_{sx#24310}(`U`_sx))] -[visit_exp shape#4122] -[visit_id shape#4122] -[visit_exp (`%X%`_shape{lanetype#24336, dim#24336, i#106715}(`I32`_lanetype, `%`_dim{i#106722}(4)), `LT`_vrelop_{sx#24310}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#24336, dim#24336, i#106715}(`I32`_lanetype, `%`_dim{i#106722}(4))] -[visit_exp lanetype#24336] -[visit_id lanetype#24336] -[visit_exp dim#24336] -[visit_id dim#24336] -[visit_exp i#106715] -[visit_id i#106715] -[visit_exp (`I32`_lanetype, `%`_dim{i#106722}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#106722}(4)] -[visit_exp i#106722] -[visit_id i#106722] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `LT`_vrelop_{sx#24310}(`U`_sx)] -[visit_exp sx#24310] -[visit_id sx#24310] +[visit_exp `LT`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#24378 i#106817 i#106824 lanetype#24378 shape#4124 sx#24434 -dims \ I = dim#24378, i#106817, i#106824, lanetype#24378, shape#4124, sx#24434 -[visit_exp `VRELOP`_instr{shape#4124}(`%X%`_shape{lanetype#24378, dim#24378, i#106817}(`I32`_lanetype, `%`_dim{i#106824}(4)), `GT`_vrelop_{sx#24434}(`S`_sx))] -[visit_exp shape#4124] -[visit_id shape#4124] -[visit_exp (`%X%`_shape{lanetype#24378, dim#24378, i#106817}(`I32`_lanetype, `%`_dim{i#106824}(4)), `GT`_vrelop_{sx#24434}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#24378, dim#24378, i#106817}(`I32`_lanetype, `%`_dim{i#106824}(4))] -[visit_exp lanetype#24378] -[visit_id lanetype#24378] -[visit_exp dim#24378] -[visit_id dim#24378] -[visit_exp i#106817] -[visit_id i#106817] -[visit_exp (`I32`_lanetype, `%`_dim{i#106824}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#106824}(4)] -[visit_exp i#106824] -[visit_id i#106824] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `GT`_vrelop_{sx#24434}(`S`_sx)] -[visit_exp sx#24434] -[visit_id sx#24434] +[visit_exp `GT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#24420 i#106919 i#106926 lanetype#24420 shape#4126 sx#24558 -dims \ I = dim#24420, i#106919, i#106926, lanetype#24420, shape#4126, sx#24558 -[visit_exp `VRELOP`_instr{shape#4126}(`%X%`_shape{lanetype#24420, dim#24420, i#106919}(`I32`_lanetype, `%`_dim{i#106926}(4)), `GT`_vrelop_{sx#24558}(`U`_sx))] -[visit_exp shape#4126] -[visit_id shape#4126] -[visit_exp (`%X%`_shape{lanetype#24420, dim#24420, i#106919}(`I32`_lanetype, `%`_dim{i#106926}(4)), `GT`_vrelop_{sx#24558}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#24420, dim#24420, i#106919}(`I32`_lanetype, `%`_dim{i#106926}(4))] -[visit_exp lanetype#24420] -[visit_id lanetype#24420] -[visit_exp dim#24420] -[visit_id dim#24420] -[visit_exp i#106919] -[visit_id i#106919] -[visit_exp (`I32`_lanetype, `%`_dim{i#106926}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#106926}(4)] -[visit_exp i#106926] -[visit_id i#106926] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `GT`_vrelop_{sx#24558}(`U`_sx)] -[visit_exp sx#24558] -[visit_id sx#24558] +[visit_exp `GT`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#24462 i#107021 i#107028 lanetype#24462 shape#4128 sx#24682 -dims \ I = dim#24462, i#107021, i#107028, lanetype#24462, shape#4128, sx#24682 -[visit_exp `VRELOP`_instr{shape#4128}(`%X%`_shape{lanetype#24462, dim#24462, i#107021}(`I32`_lanetype, `%`_dim{i#107028}(4)), `LE`_vrelop_{sx#24682}(`S`_sx))] -[visit_exp shape#4128] -[visit_id shape#4128] -[visit_exp (`%X%`_shape{lanetype#24462, dim#24462, i#107021}(`I32`_lanetype, `%`_dim{i#107028}(4)), `LE`_vrelop_{sx#24682}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#24462, dim#24462, i#107021}(`I32`_lanetype, `%`_dim{i#107028}(4))] -[visit_exp lanetype#24462] -[visit_id lanetype#24462] -[visit_exp dim#24462] -[visit_id dim#24462] -[visit_exp i#107021] -[visit_id i#107021] -[visit_exp (`I32`_lanetype, `%`_dim{i#107028}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#107028}(4)] -[visit_exp i#107028] -[visit_id i#107028] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `LE`_vrelop_{sx#24682}(`S`_sx)] -[visit_exp sx#24682] -[visit_id sx#24682] +[visit_exp `LE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#24504 i#107123 i#107130 lanetype#24504 shape#4130 sx#24806 -dims \ I = dim#24504, i#107123, i#107130, lanetype#24504, shape#4130, sx#24806 -[visit_exp `VRELOP`_instr{shape#4130}(`%X%`_shape{lanetype#24504, dim#24504, i#107123}(`I32`_lanetype, `%`_dim{i#107130}(4)), `LE`_vrelop_{sx#24806}(`U`_sx))] -[visit_exp shape#4130] -[visit_id shape#4130] -[visit_exp (`%X%`_shape{lanetype#24504, dim#24504, i#107123}(`I32`_lanetype, `%`_dim{i#107130}(4)), `LE`_vrelop_{sx#24806}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#24504, dim#24504, i#107123}(`I32`_lanetype, `%`_dim{i#107130}(4))] -[visit_exp lanetype#24504] -[visit_id lanetype#24504] -[visit_exp dim#24504] -[visit_id dim#24504] -[visit_exp i#107123] -[visit_id i#107123] -[visit_exp (`I32`_lanetype, `%`_dim{i#107130}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#107130}(4)] -[visit_exp i#107130] -[visit_id i#107130] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `LE`_vrelop_{sx#24806}(`U`_sx)] -[visit_exp sx#24806] -[visit_id sx#24806] +[visit_exp `LE`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#24546 i#107225 i#107232 lanetype#24546 shape#4132 sx#24930 -dims \ I = dim#24546, i#107225, i#107232, lanetype#24546, shape#4132, sx#24930 -[visit_exp `VRELOP`_instr{shape#4132}(`%X%`_shape{lanetype#24546, dim#24546, i#107225}(`I32`_lanetype, `%`_dim{i#107232}(4)), `GE`_vrelop_{sx#24930}(`S`_sx))] -[visit_exp shape#4132] -[visit_id shape#4132] -[visit_exp (`%X%`_shape{lanetype#24546, dim#24546, i#107225}(`I32`_lanetype, `%`_dim{i#107232}(4)), `GE`_vrelop_{sx#24930}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#24546, dim#24546, i#107225}(`I32`_lanetype, `%`_dim{i#107232}(4))] -[visit_exp lanetype#24546] -[visit_id lanetype#24546] -[visit_exp dim#24546] -[visit_id dim#24546] -[visit_exp i#107225] -[visit_id i#107225] -[visit_exp (`I32`_lanetype, `%`_dim{i#107232}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#107232}(4)] -[visit_exp i#107232] -[visit_id i#107232] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `GE`_vrelop_{sx#24930}(`S`_sx)] -[visit_exp sx#24930] -[visit_id sx#24930] +[visit_exp `GE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#24588 i#107327 i#107334 lanetype#24588 shape#4134 sx#25054 -dims \ I = dim#24588, i#107327, i#107334, lanetype#24588, shape#4134, sx#25054 -[visit_exp `VRELOP`_instr{shape#4134}(`%X%`_shape{lanetype#24588, dim#24588, i#107327}(`I32`_lanetype, `%`_dim{i#107334}(4)), `GE`_vrelop_{sx#25054}(`U`_sx))] -[visit_exp shape#4134] -[visit_id shape#4134] -[visit_exp (`%X%`_shape{lanetype#24588, dim#24588, i#107327}(`I32`_lanetype, `%`_dim{i#107334}(4)), `GE`_vrelop_{sx#25054}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#24588, dim#24588, i#107327}(`I32`_lanetype, `%`_dim{i#107334}(4))] -[visit_exp lanetype#24588] -[visit_id lanetype#24588] -[visit_exp dim#24588] -[visit_id dim#24588] -[visit_exp i#107327] -[visit_id i#107327] -[visit_exp (`I32`_lanetype, `%`_dim{i#107334}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#107334}(4)] -[visit_exp i#107334] -[visit_id i#107334] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `GE`_vrelop_{sx#25054}(`U`_sx)] -[visit_exp sx#25054] -[visit_id sx#25054] +[visit_exp `GE`_vrelop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#24630 i#107429 i#107436 lanetype#24630 shape#4136 -dims \ I = dim#24630, i#107429, i#107436, lanetype#24630, shape#4136 -[visit_exp `VRELOP`_instr{shape#4136}(`%X%`_shape{lanetype#24630, dim#24630, i#107429}(`I64`_lanetype, `%`_dim{i#107436}(2)), `EQ`_vrelop_)] -[visit_exp shape#4136] -[visit_id shape#4136] -[visit_exp (`%X%`_shape{lanetype#24630, dim#24630, i#107429}(`I64`_lanetype, `%`_dim{i#107436}(2)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#24630, dim#24630, i#107429}(`I64`_lanetype, `%`_dim{i#107436}(2))] -[visit_exp lanetype#24630] -[visit_id lanetype#24630] -[visit_exp dim#24630] -[visit_id dim#24630] -[visit_exp i#107429] -[visit_id i#107429] -[visit_exp (`I64`_lanetype, `%`_dim{i#107436}(2))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#107436}(2)] -[visit_exp i#107436] -[visit_id i#107436] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `EQ`_vrelop_] [visit_exp ()] -[check_dims] I dim#24657 i#107486 i#107493 lanetype#24657 shape#4138 -dims \ I = dim#24657, i#107486, i#107493, lanetype#24657, shape#4138 -[visit_exp `VRELOP`_instr{shape#4138}(`%X%`_shape{lanetype#24657, dim#24657, i#107486}(`I64`_lanetype, `%`_dim{i#107493}(2)), `NE`_vrelop_)] -[visit_exp shape#4138] -[visit_id shape#4138] -[visit_exp (`%X%`_shape{lanetype#24657, dim#24657, i#107486}(`I64`_lanetype, `%`_dim{i#107493}(2)), `NE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#24657, dim#24657, i#107486}(`I64`_lanetype, `%`_dim{i#107493}(2))] -[visit_exp lanetype#24657] -[visit_id lanetype#24657] -[visit_exp dim#24657] -[visit_id dim#24657] -[visit_exp i#107486] -[visit_id i#107486] -[visit_exp (`I64`_lanetype, `%`_dim{i#107493}(2))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#107493}(2)] -[visit_exp i#107493] -[visit_id i#107493] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `NE`_vrelop_] [visit_exp ()] -[check_dims] I dim#24684 i#107543 i#107550 lanetype#24684 shape#4140 sx#25298 -dims \ I = dim#24684, i#107543, i#107550, lanetype#24684, shape#4140, sx#25298 -[visit_exp `VRELOP`_instr{shape#4140}(`%X%`_shape{lanetype#24684, dim#24684, i#107543}(`I64`_lanetype, `%`_dim{i#107550}(2)), `LT`_vrelop_{sx#25298}(`S`_sx))] -[visit_exp shape#4140] -[visit_id shape#4140] -[visit_exp (`%X%`_shape{lanetype#24684, dim#24684, i#107543}(`I64`_lanetype, `%`_dim{i#107550}(2)), `LT`_vrelop_{sx#25298}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#24684, dim#24684, i#107543}(`I64`_lanetype, `%`_dim{i#107550}(2))] -[visit_exp lanetype#24684] -[visit_id lanetype#24684] -[visit_exp dim#24684] -[visit_id dim#24684] -[visit_exp i#107543] -[visit_id i#107543] -[visit_exp (`I64`_lanetype, `%`_dim{i#107550}(2))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#107550}(2)] -[visit_exp i#107550] -[visit_id i#107550] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `LT`_vrelop_{sx#25298}(`S`_sx)] -[visit_exp sx#25298] -[visit_id sx#25298] +[visit_exp `LT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#24726 i#107645 i#107652 lanetype#24726 shape#4142 sx#25422 -dims \ I = dim#24726, i#107645, i#107652, lanetype#24726, shape#4142, sx#25422 -[visit_exp `VRELOP`_instr{shape#4142}(`%X%`_shape{lanetype#24726, dim#24726, i#107645}(`I64`_lanetype, `%`_dim{i#107652}(2)), `GT`_vrelop_{sx#25422}(`S`_sx))] -[visit_exp shape#4142] -[visit_id shape#4142] -[visit_exp (`%X%`_shape{lanetype#24726, dim#24726, i#107645}(`I64`_lanetype, `%`_dim{i#107652}(2)), `GT`_vrelop_{sx#25422}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#24726, dim#24726, i#107645}(`I64`_lanetype, `%`_dim{i#107652}(2))] -[visit_exp lanetype#24726] -[visit_id lanetype#24726] -[visit_exp dim#24726] -[visit_id dim#24726] -[visit_exp i#107645] -[visit_id i#107645] -[visit_exp (`I64`_lanetype, `%`_dim{i#107652}(2))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GT`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GT`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#107652}(2)] -[visit_exp i#107652] -[visit_id i#107652] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `GT`_vrelop_{sx#25422}(`S`_sx)] -[visit_exp sx#25422] -[visit_id sx#25422] +[visit_exp `GT`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#24768 i#107747 i#107754 lanetype#24768 shape#4144 sx#25546 -dims \ I = dim#24768, i#107747, i#107754, lanetype#24768, shape#4144, sx#25546 -[visit_exp `VRELOP`_instr{shape#4144}(`%X%`_shape{lanetype#24768, dim#24768, i#107747}(`I64`_lanetype, `%`_dim{i#107754}(2)), `LE`_vrelop_{sx#25546}(`S`_sx))] -[visit_exp shape#4144] -[visit_id shape#4144] -[visit_exp (`%X%`_shape{lanetype#24768, dim#24768, i#107747}(`I64`_lanetype, `%`_dim{i#107754}(2)), `LE`_vrelop_{sx#25546}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#24768, dim#24768, i#107747}(`I64`_lanetype, `%`_dim{i#107754}(2))] -[visit_exp lanetype#24768] -[visit_id lanetype#24768] -[visit_exp dim#24768] -[visit_id dim#24768] -[visit_exp i#107747] -[visit_id i#107747] -[visit_exp (`I64`_lanetype, `%`_dim{i#107754}(2))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#107754}(2)] -[visit_exp i#107754] -[visit_id i#107754] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `LE`_vrelop_{sx#25546}(`S`_sx)] -[visit_exp sx#25546] -[visit_id sx#25546] +[visit_exp `LE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#24810 i#107849 i#107856 lanetype#24810 shape#4146 sx#25670 -dims \ I = dim#24810, i#107849, i#107856, lanetype#24810, shape#4146, sx#25670 -[visit_exp `VRELOP`_instr{shape#4146}(`%X%`_shape{lanetype#24810, dim#24810, i#107849}(`I64`_lanetype, `%`_dim{i#107856}(2)), `GE`_vrelop_{sx#25670}(`S`_sx))] -[visit_exp shape#4146] -[visit_id shape#4146] -[visit_exp (`%X%`_shape{lanetype#24810, dim#24810, i#107849}(`I64`_lanetype, `%`_dim{i#107856}(2)), `GE`_vrelop_{sx#25670}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#24810, dim#24810, i#107849}(`I64`_lanetype, `%`_dim{i#107856}(2))] -[visit_exp lanetype#24810] -[visit_id lanetype#24810] -[visit_exp dim#24810] -[visit_id dim#24810] -[visit_exp i#107849] -[visit_id i#107849] -[visit_exp (`I64`_lanetype, `%`_dim{i#107856}(2))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GE`_vrelop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GE`_vrelop_(`S`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#107856}(2)] -[visit_exp i#107856] -[visit_id i#107856] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `GE`_vrelop_{sx#25670}(`S`_sx)] -[visit_exp sx#25670] -[visit_id sx#25670] +[visit_exp `GE`_vrelop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#24852 i#107951 i#107958 lanetype#24852 shape#4148 -dims \ I = dim#24852, i#107951, i#107958, lanetype#24852, shape#4148 -[visit_exp `VRELOP`_instr{shape#4148}(`%X%`_shape{lanetype#24852, dim#24852, i#107951}(`F32`_lanetype, `%`_dim{i#107958}(4)), `EQ`_vrelop_)] -[visit_exp shape#4148] -[visit_id shape#4148] -[visit_exp (`%X%`_shape{lanetype#24852, dim#24852, i#107951}(`F32`_lanetype, `%`_dim{i#107958}(4)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#24852, dim#24852, i#107951}(`F32`_lanetype, `%`_dim{i#107958}(4))] -[visit_exp lanetype#24852] -[visit_id lanetype#24852] -[visit_exp dim#24852] -[visit_id dim#24852] -[visit_exp i#107951] -[visit_id i#107951] -[visit_exp (`F32`_lanetype, `%`_dim{i#107958}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#107958}(4)] -[visit_exp i#107958] -[visit_id i#107958] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `EQ`_vrelop_] [visit_exp ()] -[check_dims] I dim#24894 i#108023 i#108030 lanetype#24894 shape#4150 -dims \ I = dim#24894, i#108023, i#108030, lanetype#24894, shape#4150 -[visit_exp `VRELOP`_instr{shape#4150}(`%X%`_shape{lanetype#24894, dim#24894, i#108023}(`F32`_lanetype, `%`_dim{i#108030}(4)), `NE`_vrelop_)] -[visit_exp shape#4150] -[visit_id shape#4150] -[visit_exp (`%X%`_shape{lanetype#24894, dim#24894, i#108023}(`F32`_lanetype, `%`_dim{i#108030}(4)), `NE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#24894, dim#24894, i#108023}(`F32`_lanetype, `%`_dim{i#108030}(4))] -[visit_exp lanetype#24894] -[visit_id lanetype#24894] -[visit_exp dim#24894] -[visit_id dim#24894] -[visit_exp i#108023] -[visit_id i#108023] -[visit_exp (`F32`_lanetype, `%`_dim{i#108030}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108030}(4)] -[visit_exp i#108030] -[visit_id i#108030] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `NE`_vrelop_] [visit_exp ()] -[check_dims] I dim#24936 i#108095 i#108102 lanetype#24936 shape#4152 -dims \ I = dim#24936, i#108095, i#108102, lanetype#24936, shape#4152 -[visit_exp `VRELOP`_instr{shape#4152}(`%X%`_shape{lanetype#24936, dim#24936, i#108095}(`F32`_lanetype, `%`_dim{i#108102}(4)), `LT`_vrelop_)] -[visit_exp shape#4152] -[visit_id shape#4152] -[visit_exp (`%X%`_shape{lanetype#24936, dim#24936, i#108095}(`F32`_lanetype, `%`_dim{i#108102}(4)), `LT`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#24936, dim#24936, i#108095}(`F32`_lanetype, `%`_dim{i#108102}(4))] -[visit_exp lanetype#24936] -[visit_id lanetype#24936] -[visit_exp dim#24936] -[visit_id dim#24936] -[visit_exp i#108095] -[visit_id i#108095] -[visit_exp (`F32`_lanetype, `%`_dim{i#108102}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LT`_vrelop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LT`_vrelop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108102}(4)] -[visit_exp i#108102] -[visit_id i#108102] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `LT`_vrelop_] [visit_exp ()] -[check_dims] I dim#24978 i#108167 i#108174 lanetype#24978 shape#4154 -dims \ I = dim#24978, i#108167, i#108174, lanetype#24978, shape#4154 -[visit_exp `VRELOP`_instr{shape#4154}(`%X%`_shape{lanetype#24978, dim#24978, i#108167}(`F32`_lanetype, `%`_dim{i#108174}(4)), `GT`_vrelop_)] -[visit_exp shape#4154] -[visit_id shape#4154] -[visit_exp (`%X%`_shape{lanetype#24978, dim#24978, i#108167}(`F32`_lanetype, `%`_dim{i#108174}(4)), `GT`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#24978, dim#24978, i#108167}(`F32`_lanetype, `%`_dim{i#108174}(4))] -[visit_exp lanetype#24978] -[visit_id lanetype#24978] -[visit_exp dim#24978] -[visit_id dim#24978] -[visit_exp i#108167] -[visit_id i#108167] -[visit_exp (`F32`_lanetype, `%`_dim{i#108174}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GT`_vrelop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GT`_vrelop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108174}(4)] -[visit_exp i#108174] -[visit_id i#108174] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `GT`_vrelop_] [visit_exp ()] -[check_dims] I dim#25020 i#108239 i#108246 lanetype#25020 shape#4156 -dims \ I = dim#25020, i#108239, i#108246, lanetype#25020, shape#4156 -[visit_exp `VRELOP`_instr{shape#4156}(`%X%`_shape{lanetype#25020, dim#25020, i#108239}(`F32`_lanetype, `%`_dim{i#108246}(4)), `LE`_vrelop_)] -[visit_exp shape#4156] -[visit_id shape#4156] -[visit_exp (`%X%`_shape{lanetype#25020, dim#25020, i#108239}(`F32`_lanetype, `%`_dim{i#108246}(4)), `LE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#25020, dim#25020, i#108239}(`F32`_lanetype, `%`_dim{i#108246}(4))] -[visit_exp lanetype#25020] -[visit_id lanetype#25020] -[visit_exp dim#25020] -[visit_id dim#25020] -[visit_exp i#108239] -[visit_id i#108239] -[visit_exp (`F32`_lanetype, `%`_dim{i#108246}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LE`_vrelop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LE`_vrelop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108246}(4)] -[visit_exp i#108246] -[visit_id i#108246] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `LE`_vrelop_] [visit_exp ()] -[check_dims] I dim#25062 i#108311 i#108318 lanetype#25062 shape#4158 -dims \ I = dim#25062, i#108311, i#108318, lanetype#25062, shape#4158 -[visit_exp `VRELOP`_instr{shape#4158}(`%X%`_shape{lanetype#25062, dim#25062, i#108311}(`F32`_lanetype, `%`_dim{i#108318}(4)), `GE`_vrelop_)] -[visit_exp shape#4158] -[visit_id shape#4158] -[visit_exp (`%X%`_shape{lanetype#25062, dim#25062, i#108311}(`F32`_lanetype, `%`_dim{i#108318}(4)), `GE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#25062, dim#25062, i#108311}(`F32`_lanetype, `%`_dim{i#108318}(4))] -[visit_exp lanetype#25062] -[visit_id lanetype#25062] -[visit_exp dim#25062] -[visit_id dim#25062] -[visit_exp i#108311] -[visit_id i#108311] -[visit_exp (`F32`_lanetype, `%`_dim{i#108318}(4))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GE`_vrelop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GE`_vrelop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108318}(4)] -[visit_exp i#108318] -[visit_id i#108318] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `GE`_vrelop_] @@ -101345,140 +79561,80 @@ dims \ I = dim#25062, i#108311, i#108318, lanetype#25062, shape#4158 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#25104 i#108383 i#108390 lanetype#25104 shape#4160 -dims \ I = dim#25104, i#108383, i#108390, lanetype#25104, shape#4160 -[visit_exp `VRELOP`_instr{shape#4160}(`%X%`_shape{lanetype#25104, dim#25104, i#108383}(`F64`_lanetype, `%`_dim{i#108390}(2)), `EQ`_vrelop_)] -[visit_exp shape#4160] -[visit_id shape#4160] -[visit_exp (`%X%`_shape{lanetype#25104, dim#25104, i#108383}(`F64`_lanetype, `%`_dim{i#108390}(2)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#25104, dim#25104, i#108383}(`F64`_lanetype, `%`_dim{i#108390}(2))] -[visit_exp lanetype#25104] -[visit_id lanetype#25104] -[visit_exp dim#25104] -[visit_id dim#25104] -[visit_exp i#108383] -[visit_id i#108383] -[visit_exp (`F64`_lanetype, `%`_dim{i#108390}(2))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108390}(2)] -[visit_exp i#108390] -[visit_id i#108390] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `EQ`_vrelop_] [visit_exp ()] -[check_dims] I dim#25146 i#108455 i#108462 lanetype#25146 shape#4162 -dims \ I = dim#25146, i#108455, i#108462, lanetype#25146, shape#4162 -[visit_exp `VRELOP`_instr{shape#4162}(`%X%`_shape{lanetype#25146, dim#25146, i#108455}(`F64`_lanetype, `%`_dim{i#108462}(2)), `NE`_vrelop_)] -[visit_exp shape#4162] -[visit_id shape#4162] -[visit_exp (`%X%`_shape{lanetype#25146, dim#25146, i#108455}(`F64`_lanetype, `%`_dim{i#108462}(2)), `NE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#25146, dim#25146, i#108455}(`F64`_lanetype, `%`_dim{i#108462}(2))] -[visit_exp lanetype#25146] -[visit_id lanetype#25146] -[visit_exp dim#25146] -[visit_id dim#25146] -[visit_exp i#108455] -[visit_id i#108455] -[visit_exp (`F64`_lanetype, `%`_dim{i#108462}(2))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108462}(2)] -[visit_exp i#108462] -[visit_id i#108462] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `NE`_vrelop_] [visit_exp ()] -[check_dims] I dim#25188 i#108527 i#108534 lanetype#25188 shape#4164 -dims \ I = dim#25188, i#108527, i#108534, lanetype#25188, shape#4164 -[visit_exp `VRELOP`_instr{shape#4164}(`%X%`_shape{lanetype#25188, dim#25188, i#108527}(`F64`_lanetype, `%`_dim{i#108534}(2)), `LT`_vrelop_)] -[visit_exp shape#4164] -[visit_id shape#4164] -[visit_exp (`%X%`_shape{lanetype#25188, dim#25188, i#108527}(`F64`_lanetype, `%`_dim{i#108534}(2)), `LT`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#25188, dim#25188, i#108527}(`F64`_lanetype, `%`_dim{i#108534}(2))] -[visit_exp lanetype#25188] -[visit_id lanetype#25188] -[visit_exp dim#25188] -[visit_id dim#25188] -[visit_exp i#108527] -[visit_id i#108527] -[visit_exp (`F64`_lanetype, `%`_dim{i#108534}(2))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LT`_vrelop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LT`_vrelop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108534}(2)] -[visit_exp i#108534] -[visit_id i#108534] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `LT`_vrelop_] [visit_exp ()] -[check_dims] I dim#25230 i#108599 i#108606 lanetype#25230 shape#4166 -dims \ I = dim#25230, i#108599, i#108606, lanetype#25230, shape#4166 -[visit_exp `VRELOP`_instr{shape#4166}(`%X%`_shape{lanetype#25230, dim#25230, i#108599}(`F64`_lanetype, `%`_dim{i#108606}(2)), `GT`_vrelop_)] -[visit_exp shape#4166] -[visit_id shape#4166] -[visit_exp (`%X%`_shape{lanetype#25230, dim#25230, i#108599}(`F64`_lanetype, `%`_dim{i#108606}(2)), `GT`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#25230, dim#25230, i#108599}(`F64`_lanetype, `%`_dim{i#108606}(2))] -[visit_exp lanetype#25230] -[visit_id lanetype#25230] -[visit_exp dim#25230] -[visit_id dim#25230] -[visit_exp i#108599] -[visit_id i#108599] -[visit_exp (`F64`_lanetype, `%`_dim{i#108606}(2))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GT`_vrelop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GT`_vrelop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108606}(2)] -[visit_exp i#108606] -[visit_id i#108606] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `GT`_vrelop_] [visit_exp ()] -[check_dims] I dim#25272 i#108671 i#108678 lanetype#25272 shape#4168 -dims \ I = dim#25272, i#108671, i#108678, lanetype#25272, shape#4168 -[visit_exp `VRELOP`_instr{shape#4168}(`%X%`_shape{lanetype#25272, dim#25272, i#108671}(`F64`_lanetype, `%`_dim{i#108678}(2)), `LE`_vrelop_)] -[visit_exp shape#4168] -[visit_id shape#4168] -[visit_exp (`%X%`_shape{lanetype#25272, dim#25272, i#108671}(`F64`_lanetype, `%`_dim{i#108678}(2)), `LE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#25272, dim#25272, i#108671}(`F64`_lanetype, `%`_dim{i#108678}(2))] -[visit_exp lanetype#25272] -[visit_id lanetype#25272] -[visit_exp dim#25272] -[visit_id dim#25272] -[visit_exp i#108671] -[visit_id i#108671] -[visit_exp (`F64`_lanetype, `%`_dim{i#108678}(2))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LE`_vrelop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LE`_vrelop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108678}(2)] -[visit_exp i#108678] -[visit_id i#108678] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `LE`_vrelop_] [visit_exp ()] -[check_dims] I dim#25314 i#108743 i#108750 lanetype#25314 shape#4170 -dims \ I = dim#25314, i#108743, i#108750, lanetype#25314, shape#4170 -[visit_exp `VRELOP`_instr{shape#4170}(`%X%`_shape{lanetype#25314, dim#25314, i#108743}(`F64`_lanetype, `%`_dim{i#108750}(2)), `GE`_vrelop_)] -[visit_exp shape#4170] -[visit_id shape#4170] -[visit_exp (`%X%`_shape{lanetype#25314, dim#25314, i#108743}(`F64`_lanetype, `%`_dim{i#108750}(2)), `GE`_vrelop_)] -[visit_exp `%X%`_shape{lanetype#25314, dim#25314, i#108743}(`F64`_lanetype, `%`_dim{i#108750}(2))] -[visit_exp lanetype#25314] -[visit_id lanetype#25314] -[visit_exp dim#25314] -[visit_id dim#25314] -[visit_exp i#108743] -[visit_id i#108743] -[visit_exp (`F64`_lanetype, `%`_dim{i#108750}(2))] +[check_dims] I +dims \ I = +[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GE`_vrelop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GE`_vrelop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108750}(2)] -[visit_exp i#108750] -[visit_id i#108750] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `GE`_vrelop_] @@ -101486,13 +79642,9 @@ dims \ I = dim#25314, i#108743, i#108750, lanetype#25314, shape#4170 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I vectype#318 vvunop#9 -dims \ I = vectype#318, vvunop#9 -[visit_exp `VVUNOP`_instr{vectype#318, vvunop#9}(`V128`_vectype, `NOT`_vvunop)] -[visit_exp vectype#318] -[visit_id vectype#318] -[visit_exp vvunop#9] -[visit_id vvunop#9] +[check_dims] I +dims \ I = +[visit_exp `VVUNOP`_instr(`V128`_vectype, `NOT`_vvunop)] [visit_exp (`V128`_vectype, `NOT`_vvunop)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -101501,71 +79653,41 @@ dims \ I = vectype#318, vvunop#9 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#25356 i#108815 i#108822 lanetype#25356 shape#4172 -dims \ I = dim#25356, i#108815, i#108822, lanetype#25356, shape#4172 -[visit_exp `VUNOP`_instr{shape#4172}(`%X%`_shape{lanetype#25356, dim#25356, i#108815}(`I8`_lanetype, `%`_dim{i#108822}(16)), `ABS`_vunop_)] -[visit_exp shape#4172] -[visit_id shape#4172] -[visit_exp (`%X%`_shape{lanetype#25356, dim#25356, i#108815}(`I8`_lanetype, `%`_dim{i#108822}(16)), `ABS`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25356, dim#25356, i#108815}(`I8`_lanetype, `%`_dim{i#108822}(16))] -[visit_exp lanetype#25356] -[visit_id lanetype#25356] -[visit_exp dim#25356] -[visit_id dim#25356] -[visit_exp i#108815] -[visit_id i#108815] -[visit_exp (`I8`_lanetype, `%`_dim{i#108822}(16))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ABS`_vunop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ABS`_vunop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108822}(16)] -[visit_exp i#108822] -[visit_id i#108822] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `ABS`_vunop_] [visit_exp ()] -[check_dims] I dim#25383 i#108872 i#108879 lanetype#25383 shape#4174 -dims \ I = dim#25383, i#108872, i#108879, lanetype#25383, shape#4174 -[visit_exp `VUNOP`_instr{shape#4174}(`%X%`_shape{lanetype#25383, dim#25383, i#108872}(`I8`_lanetype, `%`_dim{i#108879}(16)), `NEG`_vunop_)] -[visit_exp shape#4174] -[visit_id shape#4174] -[visit_exp (`%X%`_shape{lanetype#25383, dim#25383, i#108872}(`I8`_lanetype, `%`_dim{i#108879}(16)), `NEG`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25383, dim#25383, i#108872}(`I8`_lanetype, `%`_dim{i#108879}(16))] -[visit_exp lanetype#25383] -[visit_id lanetype#25383] -[visit_exp dim#25383] -[visit_id dim#25383] -[visit_exp i#108872] -[visit_id i#108872] -[visit_exp (`I8`_lanetype, `%`_dim{i#108879}(16))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NEG`_vunop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NEG`_vunop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108879}(16)] -[visit_exp i#108879] -[visit_id i#108879] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `NEG`_vunop_] [visit_exp ()] -[check_dims] I dim#25410 i#108929 i#108936 lanetype#25410 shape#4176 -dims \ I = dim#25410, i#108929, i#108936, lanetype#25410, shape#4176 -[visit_exp `VUNOP`_instr{shape#4176}(`%X%`_shape{lanetype#25410, dim#25410, i#108929}(`I8`_lanetype, `%`_dim{i#108936}(16)), `POPCNT`_vunop_)] -[visit_exp shape#4176] -[visit_id shape#4176] -[visit_exp (`%X%`_shape{lanetype#25410, dim#25410, i#108929}(`I8`_lanetype, `%`_dim{i#108936}(16)), `POPCNT`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25410, dim#25410, i#108929}(`I8`_lanetype, `%`_dim{i#108936}(16))] -[visit_exp lanetype#25410] -[visit_id lanetype#25410] -[visit_exp dim#25410] -[visit_id dim#25410] -[visit_exp i#108929] -[visit_id i#108929] -[visit_exp (`I8`_lanetype, `%`_dim{i#108936}(16))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `POPCNT`_vunop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `POPCNT`_vunop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108936}(16)] -[visit_exp i#108936] -[visit_id i#108936] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `POPCNT`_vunop_] @@ -101573,48 +79695,28 @@ dims \ I = dim#25410, i#108929, i#108936, lanetype#25410, shape#4176 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#25437 i#108986 i#108993 lanetype#25437 shape#4178 -dims \ I = dim#25437, i#108986, i#108993, lanetype#25437, shape#4178 -[visit_exp `VUNOP`_instr{shape#4178}(`%X%`_shape{lanetype#25437, dim#25437, i#108986}(`I16`_lanetype, `%`_dim{i#108993}(8)), `ABS`_vunop_)] -[visit_exp shape#4178] -[visit_id shape#4178] -[visit_exp (`%X%`_shape{lanetype#25437, dim#25437, i#108986}(`I16`_lanetype, `%`_dim{i#108993}(8)), `ABS`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25437, dim#25437, i#108986}(`I16`_lanetype, `%`_dim{i#108993}(8))] -[visit_exp lanetype#25437] -[visit_id lanetype#25437] -[visit_exp dim#25437] -[visit_id dim#25437] -[visit_exp i#108986] -[visit_id i#108986] -[visit_exp (`I16`_lanetype, `%`_dim{i#108993}(8))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ABS`_vunop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ABS`_vunop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#108993}(8)] -[visit_exp i#108993] -[visit_id i#108993] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `ABS`_vunop_] [visit_exp ()] -[check_dims] I dim#25464 i#109043 i#109050 lanetype#25464 shape#4180 -dims \ I = dim#25464, i#109043, i#109050, lanetype#25464, shape#4180 -[visit_exp `VUNOP`_instr{shape#4180}(`%X%`_shape{lanetype#25464, dim#25464, i#109043}(`I16`_lanetype, `%`_dim{i#109050}(8)), `NEG`_vunop_)] -[visit_exp shape#4180] -[visit_id shape#4180] -[visit_exp (`%X%`_shape{lanetype#25464, dim#25464, i#109043}(`I16`_lanetype, `%`_dim{i#109050}(8)), `NEG`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25464, dim#25464, i#109043}(`I16`_lanetype, `%`_dim{i#109050}(8))] -[visit_exp lanetype#25464] -[visit_id lanetype#25464] -[visit_exp dim#25464] -[visit_id dim#25464] -[visit_exp i#109043] -[visit_id i#109043] -[visit_exp (`I16`_lanetype, `%`_dim{i#109050}(8))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NEG`_vunop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NEG`_vunop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109050}(8)] -[visit_exp i#109050] -[visit_id i#109050] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `NEG`_vunop_] @@ -101622,48 +79724,28 @@ dims \ I = dim#25464, i#109043, i#109050, lanetype#25464, shape#4180 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#25491 i#109100 i#109107 lanetype#25491 shape#4182 -dims \ I = dim#25491, i#109100, i#109107, lanetype#25491, shape#4182 -[visit_exp `VUNOP`_instr{shape#4182}(`%X%`_shape{lanetype#25491, dim#25491, i#109100}(`I32`_lanetype, `%`_dim{i#109107}(4)), `ABS`_vunop_)] -[visit_exp shape#4182] -[visit_id shape#4182] -[visit_exp (`%X%`_shape{lanetype#25491, dim#25491, i#109100}(`I32`_lanetype, `%`_dim{i#109107}(4)), `ABS`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25491, dim#25491, i#109100}(`I32`_lanetype, `%`_dim{i#109107}(4))] -[visit_exp lanetype#25491] -[visit_id lanetype#25491] -[visit_exp dim#25491] -[visit_id dim#25491] -[visit_exp i#109100] -[visit_id i#109100] -[visit_exp (`I32`_lanetype, `%`_dim{i#109107}(4))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109107}(4)] -[visit_exp i#109107] -[visit_id i#109107] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `ABS`_vunop_] [visit_exp ()] -[check_dims] I dim#25518 i#109157 i#109164 lanetype#25518 shape#4184 -dims \ I = dim#25518, i#109157, i#109164, lanetype#25518, shape#4184 -[visit_exp `VUNOP`_instr{shape#4184}(`%X%`_shape{lanetype#25518, dim#25518, i#109157}(`I32`_lanetype, `%`_dim{i#109164}(4)), `NEG`_vunop_)] -[visit_exp shape#4184] -[visit_id shape#4184] -[visit_exp (`%X%`_shape{lanetype#25518, dim#25518, i#109157}(`I32`_lanetype, `%`_dim{i#109164}(4)), `NEG`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25518, dim#25518, i#109157}(`I32`_lanetype, `%`_dim{i#109164}(4))] -[visit_exp lanetype#25518] -[visit_id lanetype#25518] -[visit_exp dim#25518] -[visit_id dim#25518] -[visit_exp i#109157] -[visit_id i#109157] -[visit_exp (`I32`_lanetype, `%`_dim{i#109164}(4))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109164}(4)] -[visit_exp i#109164] -[visit_id i#109164] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `NEG`_vunop_] @@ -101671,48 +79753,28 @@ dims \ I = dim#25518, i#109157, i#109164, lanetype#25518, shape#4184 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#25545 i#109214 i#109221 lanetype#25545 shape#4186 -dims \ I = dim#25545, i#109214, i#109221, lanetype#25545, shape#4186 -[visit_exp `VUNOP`_instr{shape#4186}(`%X%`_shape{lanetype#25545, dim#25545, i#109214}(`I64`_lanetype, `%`_dim{i#109221}(2)), `ABS`_vunop_)] -[visit_exp shape#4186] -[visit_id shape#4186] -[visit_exp (`%X%`_shape{lanetype#25545, dim#25545, i#109214}(`I64`_lanetype, `%`_dim{i#109221}(2)), `ABS`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25545, dim#25545, i#109214}(`I64`_lanetype, `%`_dim{i#109221}(2))] -[visit_exp lanetype#25545] -[visit_id lanetype#25545] -[visit_exp dim#25545] -[visit_id dim#25545] -[visit_exp i#109214] -[visit_id i#109214] -[visit_exp (`I64`_lanetype, `%`_dim{i#109221}(2))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109221}(2)] -[visit_exp i#109221] -[visit_id i#109221] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `ABS`_vunop_] [visit_exp ()] -[check_dims] I dim#25572 i#109271 i#109278 lanetype#25572 shape#4188 -dims \ I = dim#25572, i#109271, i#109278, lanetype#25572, shape#4188 -[visit_exp `VUNOP`_instr{shape#4188}(`%X%`_shape{lanetype#25572, dim#25572, i#109271}(`I64`_lanetype, `%`_dim{i#109278}(2)), `NEG`_vunop_)] -[visit_exp shape#4188] -[visit_id shape#4188] -[visit_exp (`%X%`_shape{lanetype#25572, dim#25572, i#109271}(`I64`_lanetype, `%`_dim{i#109278}(2)), `NEG`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25572, dim#25572, i#109271}(`I64`_lanetype, `%`_dim{i#109278}(2))] -[visit_exp lanetype#25572] -[visit_id lanetype#25572] -[visit_exp dim#25572] -[visit_id dim#25572] -[visit_exp i#109271] -[visit_id i#109271] -[visit_exp (`I64`_lanetype, `%`_dim{i#109278}(2))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109278}(2)] -[visit_exp i#109278] -[visit_id i#109278] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `NEG`_vunop_] @@ -101720,163 +79782,93 @@ dims \ I = dim#25572, i#109271, i#109278, lanetype#25572, shape#4188 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#25599 i#109328 i#109335 lanetype#25599 shape#4190 -dims \ I = dim#25599, i#109328, i#109335, lanetype#25599, shape#4190 -[visit_exp `VUNOP`_instr{shape#4190}(`%X%`_shape{lanetype#25599, dim#25599, i#109328}(`F32`_lanetype, `%`_dim{i#109335}(4)), `ABS`_vunop_)] -[visit_exp shape#4190] -[visit_id shape#4190] -[visit_exp (`%X%`_shape{lanetype#25599, dim#25599, i#109328}(`F32`_lanetype, `%`_dim{i#109335}(4)), `ABS`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25599, dim#25599, i#109328}(`F32`_lanetype, `%`_dim{i#109335}(4))] -[visit_exp lanetype#25599] -[visit_id lanetype#25599] -[visit_exp dim#25599] -[visit_id dim#25599] -[visit_exp i#109328] -[visit_id i#109328] -[visit_exp (`F32`_lanetype, `%`_dim{i#109335}(4))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109335}(4)] -[visit_exp i#109335] -[visit_id i#109335] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `ABS`_vunop_] [visit_exp ()] -[check_dims] I dim#25641 i#109400 i#109407 lanetype#25641 shape#4192 -dims \ I = dim#25641, i#109400, i#109407, lanetype#25641, shape#4192 -[visit_exp `VUNOP`_instr{shape#4192}(`%X%`_shape{lanetype#25641, dim#25641, i#109400}(`F32`_lanetype, `%`_dim{i#109407}(4)), `NEG`_vunop_)] -[visit_exp shape#4192] -[visit_id shape#4192] -[visit_exp (`%X%`_shape{lanetype#25641, dim#25641, i#109400}(`F32`_lanetype, `%`_dim{i#109407}(4)), `NEG`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25641, dim#25641, i#109400}(`F32`_lanetype, `%`_dim{i#109407}(4))] -[visit_exp lanetype#25641] -[visit_id lanetype#25641] -[visit_exp dim#25641] -[visit_id dim#25641] -[visit_exp i#109400] -[visit_id i#109400] -[visit_exp (`F32`_lanetype, `%`_dim{i#109407}(4))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109407}(4)] -[visit_exp i#109407] -[visit_id i#109407] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `NEG`_vunop_] [visit_exp ()] -[check_dims] I dim#25683 i#109472 i#109479 lanetype#25683 shape#4194 -dims \ I = dim#25683, i#109472, i#109479, lanetype#25683, shape#4194 -[visit_exp `VUNOP`_instr{shape#4194}(`%X%`_shape{lanetype#25683, dim#25683, i#109472}(`F32`_lanetype, `%`_dim{i#109479}(4)), `SQRT`_vunop_)] -[visit_exp shape#4194] -[visit_id shape#4194] -[visit_exp (`%X%`_shape{lanetype#25683, dim#25683, i#109472}(`F32`_lanetype, `%`_dim{i#109479}(4)), `SQRT`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25683, dim#25683, i#109472}(`F32`_lanetype, `%`_dim{i#109479}(4))] -[visit_exp lanetype#25683] -[visit_id lanetype#25683] -[visit_exp dim#25683] -[visit_id dim#25683] -[visit_exp i#109472] -[visit_id i#109472] -[visit_exp (`F32`_lanetype, `%`_dim{i#109479}(4))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SQRT`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SQRT`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109479}(4)] -[visit_exp i#109479] -[visit_id i#109479] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `SQRT`_vunop_] [visit_exp ()] -[check_dims] I dim#25725 i#109544 i#109551 lanetype#25725 shape#4196 -dims \ I = dim#25725, i#109544, i#109551, lanetype#25725, shape#4196 -[visit_exp `VUNOP`_instr{shape#4196}(`%X%`_shape{lanetype#25725, dim#25725, i#109544}(`F32`_lanetype, `%`_dim{i#109551}(4)), `CEIL`_vunop_)] -[visit_exp shape#4196] -[visit_id shape#4196] -[visit_exp (`%X%`_shape{lanetype#25725, dim#25725, i#109544}(`F32`_lanetype, `%`_dim{i#109551}(4)), `CEIL`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25725, dim#25725, i#109544}(`F32`_lanetype, `%`_dim{i#109551}(4))] -[visit_exp lanetype#25725] -[visit_id lanetype#25725] -[visit_exp dim#25725] -[visit_id dim#25725] -[visit_exp i#109544] -[visit_id i#109544] -[visit_exp (`F32`_lanetype, `%`_dim{i#109551}(4))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `CEIL`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `CEIL`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109551}(4)] -[visit_exp i#109551] -[visit_id i#109551] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `CEIL`_vunop_] [visit_exp ()] -[check_dims] I dim#25767 i#109616 i#109623 lanetype#25767 shape#4198 -dims \ I = dim#25767, i#109616, i#109623, lanetype#25767, shape#4198 -[visit_exp `VUNOP`_instr{shape#4198}(`%X%`_shape{lanetype#25767, dim#25767, i#109616}(`F32`_lanetype, `%`_dim{i#109623}(4)), `FLOOR`_vunop_)] -[visit_exp shape#4198] -[visit_id shape#4198] -[visit_exp (`%X%`_shape{lanetype#25767, dim#25767, i#109616}(`F32`_lanetype, `%`_dim{i#109623}(4)), `FLOOR`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25767, dim#25767, i#109616}(`F32`_lanetype, `%`_dim{i#109623}(4))] -[visit_exp lanetype#25767] -[visit_id lanetype#25767] -[visit_exp dim#25767] -[visit_id dim#25767] -[visit_exp i#109616] -[visit_id i#109616] -[visit_exp (`F32`_lanetype, `%`_dim{i#109623}(4))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `FLOOR`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `FLOOR`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109623}(4)] -[visit_exp i#109623] -[visit_id i#109623] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `FLOOR`_vunop_] [visit_exp ()] -[check_dims] I dim#25809 i#109688 i#109695 lanetype#25809 shape#4200 -dims \ I = dim#25809, i#109688, i#109695, lanetype#25809, shape#4200 -[visit_exp `VUNOP`_instr{shape#4200}(`%X%`_shape{lanetype#25809, dim#25809, i#109688}(`F32`_lanetype, `%`_dim{i#109695}(4)), `TRUNC`_vunop_)] -[visit_exp shape#4200] -[visit_id shape#4200] -[visit_exp (`%X%`_shape{lanetype#25809, dim#25809, i#109688}(`F32`_lanetype, `%`_dim{i#109695}(4)), `TRUNC`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25809, dim#25809, i#109688}(`F32`_lanetype, `%`_dim{i#109695}(4))] -[visit_exp lanetype#25809] -[visit_id lanetype#25809] -[visit_exp dim#25809] -[visit_id dim#25809] -[visit_exp i#109688] -[visit_id i#109688] -[visit_exp (`F32`_lanetype, `%`_dim{i#109695}(4))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109695}(4)] -[visit_exp i#109695] -[visit_id i#109695] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `TRUNC`_vunop_] [visit_exp ()] -[check_dims] I dim#25851 i#109760 i#109767 lanetype#25851 shape#4202 -dims \ I = dim#25851, i#109760, i#109767, lanetype#25851, shape#4202 -[visit_exp `VUNOP`_instr{shape#4202}(`%X%`_shape{lanetype#25851, dim#25851, i#109760}(`F32`_lanetype, `%`_dim{i#109767}(4)), `NEAREST`_vunop_)] -[visit_exp shape#4202] -[visit_id shape#4202] -[visit_exp (`%X%`_shape{lanetype#25851, dim#25851, i#109760}(`F32`_lanetype, `%`_dim{i#109767}(4)), `NEAREST`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25851, dim#25851, i#109760}(`F32`_lanetype, `%`_dim{i#109767}(4))] -[visit_exp lanetype#25851] -[visit_id lanetype#25851] -[visit_exp dim#25851] -[visit_id dim#25851] -[visit_exp i#109760] -[visit_id i#109760] -[visit_exp (`F32`_lanetype, `%`_dim{i#109767}(4))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEAREST`_vunop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEAREST`_vunop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109767}(4)] -[visit_exp i#109767] -[visit_id i#109767] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `NEAREST`_vunop_] @@ -101884,163 +79876,93 @@ dims \ I = dim#25851, i#109760, i#109767, lanetype#25851, shape#4202 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#25893 i#109832 i#109839 lanetype#25893 shape#4204 -dims \ I = dim#25893, i#109832, i#109839, lanetype#25893, shape#4204 -[visit_exp `VUNOP`_instr{shape#4204}(`%X%`_shape{lanetype#25893, dim#25893, i#109832}(`F64`_lanetype, `%`_dim{i#109839}(2)), `ABS`_vunop_)] -[visit_exp shape#4204] -[visit_id shape#4204] -[visit_exp (`%X%`_shape{lanetype#25893, dim#25893, i#109832}(`F64`_lanetype, `%`_dim{i#109839}(2)), `ABS`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25893, dim#25893, i#109832}(`F64`_lanetype, `%`_dim{i#109839}(2))] -[visit_exp lanetype#25893] -[visit_id lanetype#25893] -[visit_exp dim#25893] -[visit_id dim#25893] -[visit_exp i#109832] -[visit_id i#109832] -[visit_exp (`F64`_lanetype, `%`_dim{i#109839}(2))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109839}(2)] -[visit_exp i#109839] -[visit_id i#109839] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `ABS`_vunop_] [visit_exp ()] -[check_dims] I dim#25935 i#109904 i#109911 lanetype#25935 shape#4206 -dims \ I = dim#25935, i#109904, i#109911, lanetype#25935, shape#4206 -[visit_exp `VUNOP`_instr{shape#4206}(`%X%`_shape{lanetype#25935, dim#25935, i#109904}(`F64`_lanetype, `%`_dim{i#109911}(2)), `NEG`_vunop_)] -[visit_exp shape#4206] -[visit_id shape#4206] -[visit_exp (`%X%`_shape{lanetype#25935, dim#25935, i#109904}(`F64`_lanetype, `%`_dim{i#109911}(2)), `NEG`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25935, dim#25935, i#109904}(`F64`_lanetype, `%`_dim{i#109911}(2))] -[visit_exp lanetype#25935] -[visit_id lanetype#25935] -[visit_exp dim#25935] -[visit_id dim#25935] -[visit_exp i#109904] -[visit_id i#109904] -[visit_exp (`F64`_lanetype, `%`_dim{i#109911}(2))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109911}(2)] -[visit_exp i#109911] -[visit_id i#109911] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `NEG`_vunop_] [visit_exp ()] -[check_dims] I dim#25977 i#109976 i#109983 lanetype#25977 shape#4208 -dims \ I = dim#25977, i#109976, i#109983, lanetype#25977, shape#4208 -[visit_exp `VUNOP`_instr{shape#4208}(`%X%`_shape{lanetype#25977, dim#25977, i#109976}(`F64`_lanetype, `%`_dim{i#109983}(2)), `SQRT`_vunop_)] -[visit_exp shape#4208] -[visit_id shape#4208] -[visit_exp (`%X%`_shape{lanetype#25977, dim#25977, i#109976}(`F64`_lanetype, `%`_dim{i#109983}(2)), `SQRT`_vunop_)] -[visit_exp `%X%`_shape{lanetype#25977, dim#25977, i#109976}(`F64`_lanetype, `%`_dim{i#109983}(2))] -[visit_exp lanetype#25977] -[visit_id lanetype#25977] -[visit_exp dim#25977] -[visit_id dim#25977] -[visit_exp i#109976] -[visit_id i#109976] -[visit_exp (`F64`_lanetype, `%`_dim{i#109983}(2))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SQRT`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SQRT`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#109983}(2)] -[visit_exp i#109983] -[visit_id i#109983] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `SQRT`_vunop_] [visit_exp ()] -[check_dims] I dim#26019 i#110048 i#110055 lanetype#26019 shape#4210 -dims \ I = dim#26019, i#110048, i#110055, lanetype#26019, shape#4210 -[visit_exp `VUNOP`_instr{shape#4210}(`%X%`_shape{lanetype#26019, dim#26019, i#110048}(`F64`_lanetype, `%`_dim{i#110055}(2)), `CEIL`_vunop_)] -[visit_exp shape#4210] -[visit_id shape#4210] -[visit_exp (`%X%`_shape{lanetype#26019, dim#26019, i#110048}(`F64`_lanetype, `%`_dim{i#110055}(2)), `CEIL`_vunop_)] -[visit_exp `%X%`_shape{lanetype#26019, dim#26019, i#110048}(`F64`_lanetype, `%`_dim{i#110055}(2))] -[visit_exp lanetype#26019] -[visit_id lanetype#26019] -[visit_exp dim#26019] -[visit_id dim#26019] -[visit_exp i#110048] -[visit_id i#110048] -[visit_exp (`F64`_lanetype, `%`_dim{i#110055}(2))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `CEIL`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `CEIL`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#110055}(2)] -[visit_exp i#110055] -[visit_id i#110055] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `CEIL`_vunop_] [visit_exp ()] -[check_dims] I dim#26061 i#110120 i#110127 lanetype#26061 shape#4212 -dims \ I = dim#26061, i#110120, i#110127, lanetype#26061, shape#4212 -[visit_exp `VUNOP`_instr{shape#4212}(`%X%`_shape{lanetype#26061, dim#26061, i#110120}(`F64`_lanetype, `%`_dim{i#110127}(2)), `FLOOR`_vunop_)] -[visit_exp shape#4212] -[visit_id shape#4212] -[visit_exp (`%X%`_shape{lanetype#26061, dim#26061, i#110120}(`F64`_lanetype, `%`_dim{i#110127}(2)), `FLOOR`_vunop_)] -[visit_exp `%X%`_shape{lanetype#26061, dim#26061, i#110120}(`F64`_lanetype, `%`_dim{i#110127}(2))] -[visit_exp lanetype#26061] -[visit_id lanetype#26061] -[visit_exp dim#26061] -[visit_id dim#26061] -[visit_exp i#110120] -[visit_id i#110120] -[visit_exp (`F64`_lanetype, `%`_dim{i#110127}(2))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `FLOOR`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `FLOOR`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#110127}(2)] -[visit_exp i#110127] -[visit_id i#110127] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `FLOOR`_vunop_] [visit_exp ()] -[check_dims] I dim#26103 i#110192 i#110199 lanetype#26103 shape#4214 -dims \ I = dim#26103, i#110192, i#110199, lanetype#26103, shape#4214 -[visit_exp `VUNOP`_instr{shape#4214}(`%X%`_shape{lanetype#26103, dim#26103, i#110192}(`F64`_lanetype, `%`_dim{i#110199}(2)), `TRUNC`_vunop_)] -[visit_exp shape#4214] -[visit_id shape#4214] -[visit_exp (`%X%`_shape{lanetype#26103, dim#26103, i#110192}(`F64`_lanetype, `%`_dim{i#110199}(2)), `TRUNC`_vunop_)] -[visit_exp `%X%`_shape{lanetype#26103, dim#26103, i#110192}(`F64`_lanetype, `%`_dim{i#110199}(2))] -[visit_exp lanetype#26103] -[visit_id lanetype#26103] -[visit_exp dim#26103] -[visit_id dim#26103] -[visit_exp i#110192] -[visit_id i#110192] -[visit_exp (`F64`_lanetype, `%`_dim{i#110199}(2))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#110199}(2)] -[visit_exp i#110199] -[visit_id i#110199] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `TRUNC`_vunop_] [visit_exp ()] -[check_dims] I dim#26145 i#110264 i#110271 lanetype#26145 shape#4216 -dims \ I = dim#26145, i#110264, i#110271, lanetype#26145, shape#4216 -[visit_exp `VUNOP`_instr{shape#4216}(`%X%`_shape{lanetype#26145, dim#26145, i#110264}(`F64`_lanetype, `%`_dim{i#110271}(2)), `NEAREST`_vunop_)] -[visit_exp shape#4216] -[visit_id shape#4216] -[visit_exp (`%X%`_shape{lanetype#26145, dim#26145, i#110264}(`F64`_lanetype, `%`_dim{i#110271}(2)), `NEAREST`_vunop_)] -[visit_exp `%X%`_shape{lanetype#26145, dim#26145, i#110264}(`F64`_lanetype, `%`_dim{i#110271}(2))] -[visit_exp lanetype#26145] -[visit_id lanetype#26145] -[visit_exp dim#26145] -[visit_id dim#26145] -[visit_exp i#110264] -[visit_id i#110264] -[visit_exp (`F64`_lanetype, `%`_dim{i#110271}(2))] +[check_dims] I +dims \ I = +[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEAREST`_vunop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEAREST`_vunop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#110271}(2)] -[visit_exp i#110271] -[visit_id i#110271] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `NEAREST`_vunop_] @@ -102048,49 +79970,33 @@ dims \ I = dim#26145, i#110264, i#110271, lanetype#26145, shape#4216 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I vectype#320 vvbinop#15 -dims \ I = vectype#320, vvbinop#15 -[visit_exp `VVBINOP`_instr{vectype#320, vvbinop#15}(`V128`_vectype, `AND`_vvbinop)] -[visit_exp vectype#320] -[visit_id vectype#320] -[visit_exp vvbinop#15] -[visit_id vvbinop#15] +[check_dims] I +dims \ I = +[visit_exp `VVBINOP`_instr(`V128`_vectype, `AND`_vvbinop)] [visit_exp (`V128`_vectype, `AND`_vvbinop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp `AND`_vvbinop] [visit_exp ()] -[check_dims] I vectype#322 vvbinop#17 -dims \ I = vectype#322, vvbinop#17 -[visit_exp `VVBINOP`_instr{vectype#322, vvbinop#17}(`V128`_vectype, `ANDNOT`_vvbinop)] -[visit_exp vectype#322] -[visit_id vectype#322] -[visit_exp vvbinop#17] -[visit_id vvbinop#17] +[check_dims] I +dims \ I = +[visit_exp `VVBINOP`_instr(`V128`_vectype, `ANDNOT`_vvbinop)] [visit_exp (`V128`_vectype, `ANDNOT`_vvbinop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp `ANDNOT`_vvbinop] [visit_exp ()] -[check_dims] I vectype#324 vvbinop#19 -dims \ I = vectype#324, vvbinop#19 -[visit_exp `VVBINOP`_instr{vectype#324, vvbinop#19}(`V128`_vectype, `OR`_vvbinop)] -[visit_exp vectype#324] -[visit_id vectype#324] -[visit_exp vvbinop#19] -[visit_id vvbinop#19] +[check_dims] I +dims \ I = +[visit_exp `VVBINOP`_instr(`V128`_vectype, `OR`_vvbinop)] [visit_exp (`V128`_vectype, `OR`_vvbinop)] [visit_exp `V128`_vectype] [visit_exp ()] [visit_exp `OR`_vvbinop] [visit_exp ()] -[check_dims] I vectype#326 vvbinop#21 -dims \ I = vectype#326, vvbinop#21 -[visit_exp `VVBINOP`_instr{vectype#326, vvbinop#21}(`V128`_vectype, `XOR`_vvbinop)] -[visit_exp vectype#326] -[visit_id vectype#326] -[visit_exp vvbinop#21] -[visit_id vvbinop#21] +[check_dims] I +dims \ I = +[visit_exp `VVBINOP`_instr(`V128`_vectype, `XOR`_vvbinop)] [visit_exp (`V128`_vectype, `XOR`_vvbinop)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -102099,287 +80005,161 @@ dims \ I = vectype#326, vvbinop#21 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#26187 i#110336 i#110343 lanetype#26187 shape#4218 -dims \ I = dim#26187, i#110336, i#110343, lanetype#26187, shape#4218 -[visit_exp `VBINOP`_instr{shape#4218}(`%X%`_shape{lanetype#26187, dim#26187, i#110336}(`I8`_lanetype, `%`_dim{i#110343}(16)), `ADD`_vbinop_)] -[visit_exp shape#4218] -[visit_id shape#4218] -[visit_exp (`%X%`_shape{lanetype#26187, dim#26187, i#110336}(`I8`_lanetype, `%`_dim{i#110343}(16)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#26187, dim#26187, i#110336}(`I8`_lanetype, `%`_dim{i#110343}(16))] -[visit_exp lanetype#26187] -[visit_id lanetype#26187] -[visit_exp dim#26187] -[visit_id dim#26187] -[visit_exp i#110336] -[visit_id i#110336] -[visit_exp (`I8`_lanetype, `%`_dim{i#110343}(16))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD`_vbinop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#110343}(16)] -[visit_exp i#110343] -[visit_id i#110343] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `ADD`_vbinop_] [visit_exp ()] -[check_dims] I dim#26214 i#110393 i#110400 lanetype#26214 shape#4220 sx#25854 -dims \ I = dim#26214, i#110393, i#110400, lanetype#26214, shape#4220, sx#25854 -[visit_exp `VBINOP`_instr{shape#4220}(`%X%`_shape{lanetype#26214, dim#26214, i#110393}(`I8`_lanetype, `%`_dim{i#110400}(16)), `ADD_SAT`_vbinop_{sx#25854}(`S`_sx))] -[visit_exp shape#4220] -[visit_id shape#4220] -[visit_exp (`%X%`_shape{lanetype#26214, dim#26214, i#110393}(`I8`_lanetype, `%`_dim{i#110400}(16)), `ADD_SAT`_vbinop_{sx#25854}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#26214, dim#26214, i#110393}(`I8`_lanetype, `%`_dim{i#110400}(16))] -[visit_exp lanetype#26214] -[visit_id lanetype#26214] -[visit_exp dim#26214] -[visit_id dim#26214] -[visit_exp i#110393] -[visit_id i#110393] -[visit_exp (`I8`_lanetype, `%`_dim{i#110400}(16))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#110400}(16)] -[visit_exp i#110400] -[visit_id i#110400] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `ADD_SAT`_vbinop_{sx#25854}(`S`_sx)] -[visit_exp sx#25854] -[visit_id sx#25854] +[visit_exp `ADD_SAT`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#26256 i#110495 i#110502 lanetype#26256 shape#4222 sx#25978 -dims \ I = dim#26256, i#110495, i#110502, lanetype#26256, shape#4222, sx#25978 -[visit_exp `VBINOP`_instr{shape#4222}(`%X%`_shape{lanetype#26256, dim#26256, i#110495}(`I8`_lanetype, `%`_dim{i#110502}(16)), `ADD_SAT`_vbinop_{sx#25978}(`U`_sx))] -[visit_exp shape#4222] -[visit_id shape#4222] -[visit_exp (`%X%`_shape{lanetype#26256, dim#26256, i#110495}(`I8`_lanetype, `%`_dim{i#110502}(16)), `ADD_SAT`_vbinop_{sx#25978}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#26256, dim#26256, i#110495}(`I8`_lanetype, `%`_dim{i#110502}(16))] -[visit_exp lanetype#26256] -[visit_id lanetype#26256] -[visit_exp dim#26256] -[visit_id dim#26256] -[visit_exp i#110495] -[visit_id i#110495] -[visit_exp (`I8`_lanetype, `%`_dim{i#110502}(16))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#110502}(16)] -[visit_exp i#110502] -[visit_id i#110502] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `ADD_SAT`_vbinop_{sx#25978}(`U`_sx)] -[visit_exp sx#25978] -[visit_id sx#25978] +[visit_exp `ADD_SAT`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#26298 i#110597 i#110604 lanetype#26298 shape#4224 -dims \ I = dim#26298, i#110597, i#110604, lanetype#26298, shape#4224 -[visit_exp `VBINOP`_instr{shape#4224}(`%X%`_shape{lanetype#26298, dim#26298, i#110597}(`I8`_lanetype, `%`_dim{i#110604}(16)), `SUB`_vbinop_)] -[visit_exp shape#4224] -[visit_id shape#4224] -[visit_exp (`%X%`_shape{lanetype#26298, dim#26298, i#110597}(`I8`_lanetype, `%`_dim{i#110604}(16)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#26298, dim#26298, i#110597}(`I8`_lanetype, `%`_dim{i#110604}(16))] -[visit_exp lanetype#26298] -[visit_id lanetype#26298] -[visit_exp dim#26298] -[visit_id dim#26298] -[visit_exp i#110597] -[visit_id i#110597] -[visit_exp (`I8`_lanetype, `%`_dim{i#110604}(16))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB`_vbinop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#110604}(16)] -[visit_exp i#110604] -[visit_id i#110604] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `SUB`_vbinop_] [visit_exp ()] -[check_dims] I dim#26325 i#110654 i#110661 lanetype#26325 shape#4226 sx#26162 -dims \ I = dim#26325, i#110654, i#110661, lanetype#26325, shape#4226, sx#26162 -[visit_exp `VBINOP`_instr{shape#4226}(`%X%`_shape{lanetype#26325, dim#26325, i#110654}(`I8`_lanetype, `%`_dim{i#110661}(16)), `SUB_SAT`_vbinop_{sx#26162}(`S`_sx))] -[visit_exp shape#4226] -[visit_id shape#4226] -[visit_exp (`%X%`_shape{lanetype#26325, dim#26325, i#110654}(`I8`_lanetype, `%`_dim{i#110661}(16)), `SUB_SAT`_vbinop_{sx#26162}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#26325, dim#26325, i#110654}(`I8`_lanetype, `%`_dim{i#110661}(16))] -[visit_exp lanetype#26325] -[visit_id lanetype#26325] -[visit_exp dim#26325] -[visit_id dim#26325] -[visit_exp i#110654] -[visit_id i#110654] -[visit_exp (`I8`_lanetype, `%`_dim{i#110661}(16))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#110661}(16)] -[visit_exp i#110661] -[visit_id i#110661] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `SUB_SAT`_vbinop_{sx#26162}(`S`_sx)] -[visit_exp sx#26162] -[visit_id sx#26162] +[visit_exp `SUB_SAT`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#26367 i#110756 i#110763 lanetype#26367 shape#4228 sx#26286 -dims \ I = dim#26367, i#110756, i#110763, lanetype#26367, shape#4228, sx#26286 -[visit_exp `VBINOP`_instr{shape#4228}(`%X%`_shape{lanetype#26367, dim#26367, i#110756}(`I8`_lanetype, `%`_dim{i#110763}(16)), `SUB_SAT`_vbinop_{sx#26286}(`U`_sx))] -[visit_exp shape#4228] -[visit_id shape#4228] -[visit_exp (`%X%`_shape{lanetype#26367, dim#26367, i#110756}(`I8`_lanetype, `%`_dim{i#110763}(16)), `SUB_SAT`_vbinop_{sx#26286}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#26367, dim#26367, i#110756}(`I8`_lanetype, `%`_dim{i#110763}(16))] -[visit_exp lanetype#26367] -[visit_id lanetype#26367] -[visit_exp dim#26367] -[visit_id dim#26367] -[visit_exp i#110756] -[visit_id i#110756] -[visit_exp (`I8`_lanetype, `%`_dim{i#110763}(16))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#110763}(16)] -[visit_exp i#110763] -[visit_id i#110763] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `SUB_SAT`_vbinop_{sx#26286}(`U`_sx)] -[visit_exp sx#26286] -[visit_id sx#26286] +[visit_exp `SUB_SAT`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#26409 i#110858 i#110865 lanetype#26409 shape#4230 sx#26410 -dims \ I = dim#26409, i#110858, i#110865, lanetype#26409, shape#4230, sx#26410 -[visit_exp `VBINOP`_instr{shape#4230}(`%X%`_shape{lanetype#26409, dim#26409, i#110858}(`I8`_lanetype, `%`_dim{i#110865}(16)), `MIN`_vbinop_{sx#26410}(`S`_sx))] -[visit_exp shape#4230] -[visit_id shape#4230] -[visit_exp (`%X%`_shape{lanetype#26409, dim#26409, i#110858}(`I8`_lanetype, `%`_dim{i#110865}(16)), `MIN`_vbinop_{sx#26410}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#26409, dim#26409, i#110858}(`I8`_lanetype, `%`_dim{i#110865}(16))] -[visit_exp lanetype#26409] -[visit_id lanetype#26409] -[visit_exp dim#26409] -[visit_id dim#26409] -[visit_exp i#110858] -[visit_id i#110858] -[visit_exp (`I8`_lanetype, `%`_dim{i#110865}(16))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#110865}(16)] -[visit_exp i#110865] -[visit_id i#110865] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `MIN`_vbinop_{sx#26410}(`S`_sx)] -[visit_exp sx#26410] -[visit_id sx#26410] +[visit_exp `MIN`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#26451 i#110960 i#110967 lanetype#26451 shape#4232 sx#26534 -dims \ I = dim#26451, i#110960, i#110967, lanetype#26451, shape#4232, sx#26534 -[visit_exp `VBINOP`_instr{shape#4232}(`%X%`_shape{lanetype#26451, dim#26451, i#110960}(`I8`_lanetype, `%`_dim{i#110967}(16)), `MIN`_vbinop_{sx#26534}(`U`_sx))] -[visit_exp shape#4232] -[visit_id shape#4232] -[visit_exp (`%X%`_shape{lanetype#26451, dim#26451, i#110960}(`I8`_lanetype, `%`_dim{i#110967}(16)), `MIN`_vbinop_{sx#26534}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#26451, dim#26451, i#110960}(`I8`_lanetype, `%`_dim{i#110967}(16))] -[visit_exp lanetype#26451] -[visit_id lanetype#26451] -[visit_exp dim#26451] -[visit_id dim#26451] -[visit_exp i#110960] -[visit_id i#110960] -[visit_exp (`I8`_lanetype, `%`_dim{i#110967}(16))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#110967}(16)] -[visit_exp i#110967] -[visit_id i#110967] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `MIN`_vbinop_{sx#26534}(`U`_sx)] -[visit_exp sx#26534] -[visit_id sx#26534] +[visit_exp `MIN`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#26493 i#111062 i#111069 lanetype#26493 shape#4234 sx#26658 -dims \ I = dim#26493, i#111062, i#111069, lanetype#26493, shape#4234, sx#26658 -[visit_exp `VBINOP`_instr{shape#4234}(`%X%`_shape{lanetype#26493, dim#26493, i#111062}(`I8`_lanetype, `%`_dim{i#111069}(16)), `MAX`_vbinop_{sx#26658}(`S`_sx))] -[visit_exp shape#4234] -[visit_id shape#4234] -[visit_exp (`%X%`_shape{lanetype#26493, dim#26493, i#111062}(`I8`_lanetype, `%`_dim{i#111069}(16)), `MAX`_vbinop_{sx#26658}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#26493, dim#26493, i#111062}(`I8`_lanetype, `%`_dim{i#111069}(16))] -[visit_exp lanetype#26493] -[visit_id lanetype#26493] -[visit_exp dim#26493] -[visit_id dim#26493] -[visit_exp i#111062] -[visit_id i#111062] -[visit_exp (`I8`_lanetype, `%`_dim{i#111069}(16))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#111069}(16)] -[visit_exp i#111069] -[visit_id i#111069] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `MAX`_vbinop_{sx#26658}(`S`_sx)] -[visit_exp sx#26658] -[visit_id sx#26658] +[visit_exp `MAX`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#26535 i#111164 i#111171 lanetype#26535 shape#4236 sx#26782 -dims \ I = dim#26535, i#111164, i#111171, lanetype#26535, shape#4236, sx#26782 -[visit_exp `VBINOP`_instr{shape#4236}(`%X%`_shape{lanetype#26535, dim#26535, i#111164}(`I8`_lanetype, `%`_dim{i#111171}(16)), `MAX`_vbinop_{sx#26782}(`U`_sx))] -[visit_exp shape#4236] -[visit_id shape#4236] -[visit_exp (`%X%`_shape{lanetype#26535, dim#26535, i#111164}(`I8`_lanetype, `%`_dim{i#111171}(16)), `MAX`_vbinop_{sx#26782}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#26535, dim#26535, i#111164}(`I8`_lanetype, `%`_dim{i#111171}(16))] -[visit_exp lanetype#26535] -[visit_id lanetype#26535] -[visit_exp dim#26535] -[visit_id dim#26535] -[visit_exp i#111164] -[visit_id i#111164] -[visit_exp (`I8`_lanetype, `%`_dim{i#111171}(16))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#111171}(16)] -[visit_exp i#111171] -[visit_id i#111171] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `MAX`_vbinop_{sx#26782}(`U`_sx)] -[visit_exp sx#26782] -[visit_id sx#26782] +[visit_exp `MAX`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#26577 i#111266 i#111273 lanetype#26577 shape#4238 -dims \ I = dim#26577, i#111266, i#111273, lanetype#26577, shape#4238 -[visit_exp `VBINOP`_instr{shape#4238}(`%X%`_shape{lanetype#26577, dim#26577, i#111266}(`I8`_lanetype, `%`_dim{i#111273}(16)), `AVGRU`_vbinop_)] -[visit_exp shape#4238] -[visit_id shape#4238] -[visit_exp (`%X%`_shape{lanetype#26577, dim#26577, i#111266}(`I8`_lanetype, `%`_dim{i#111273}(16)), `AVGRU`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#26577, dim#26577, i#111266}(`I8`_lanetype, `%`_dim{i#111273}(16))] -[visit_exp lanetype#26577] -[visit_id lanetype#26577] -[visit_exp dim#26577] -[visit_id dim#26577] -[visit_exp i#111266] -[visit_id i#111266] -[visit_exp (`I8`_lanetype, `%`_dim{i#111273}(16))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `AVGRU`_vbinop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `AVGRU`_vbinop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#111273}(16)] -[visit_exp i#111273] -[visit_id i#111273] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `AVGRU`_vbinop_] @@ -102387,356 +80167,200 @@ dims \ I = dim#26577, i#111266, i#111273, lanetype#26577, shape#4238 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#26619 i#111368 i#111375 lanetype#26619 shape#4240 -dims \ I = dim#26619, i#111368, i#111375, lanetype#26619, shape#4240 -[visit_exp `VBINOP`_instr{shape#4240}(`%X%`_shape{lanetype#26619, dim#26619, i#111368}(`I16`_lanetype, `%`_dim{i#111375}(8)), `ADD`_vbinop_)] -[visit_exp shape#4240] -[visit_id shape#4240] -[visit_exp (`%X%`_shape{lanetype#26619, dim#26619, i#111368}(`I16`_lanetype, `%`_dim{i#111375}(8)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#26619, dim#26619, i#111368}(`I16`_lanetype, `%`_dim{i#111375}(8))] -[visit_exp lanetype#26619] -[visit_id lanetype#26619] -[visit_exp dim#26619] -[visit_id dim#26619] -[visit_exp i#111368] -[visit_id i#111368] -[visit_exp (`I16`_lanetype, `%`_dim{i#111375}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD`_vbinop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#111375}(8)] -[visit_exp i#111375] -[visit_id i#111375] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `ADD`_vbinop_] [visit_exp ()] -[check_dims] I dim#26646 i#111425 i#111432 lanetype#26646 shape#4242 sx#27086 -dims \ I = dim#26646, i#111425, i#111432, lanetype#26646, shape#4242, sx#27086 -[visit_exp `VBINOP`_instr{shape#4242}(`%X%`_shape{lanetype#26646, dim#26646, i#111425}(`I16`_lanetype, `%`_dim{i#111432}(8)), `ADD_SAT`_vbinop_{sx#27086}(`S`_sx))] -[visit_exp shape#4242] -[visit_id shape#4242] -[visit_exp (`%X%`_shape{lanetype#26646, dim#26646, i#111425}(`I16`_lanetype, `%`_dim{i#111432}(8)), `ADD_SAT`_vbinop_{sx#27086}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#26646, dim#26646, i#111425}(`I16`_lanetype, `%`_dim{i#111432}(8))] -[visit_exp lanetype#26646] -[visit_id lanetype#26646] -[visit_exp dim#26646] -[visit_id dim#26646] -[visit_exp i#111425] -[visit_id i#111425] -[visit_exp (`I16`_lanetype, `%`_dim{i#111432}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#111432}(8)] -[visit_exp i#111432] -[visit_id i#111432] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `ADD_SAT`_vbinop_{sx#27086}(`S`_sx)] -[visit_exp sx#27086] -[visit_id sx#27086] +[visit_exp `ADD_SAT`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#26688 i#111527 i#111534 lanetype#26688 shape#4244 sx#27210 -dims \ I = dim#26688, i#111527, i#111534, lanetype#26688, shape#4244, sx#27210 -[visit_exp `VBINOP`_instr{shape#4244}(`%X%`_shape{lanetype#26688, dim#26688, i#111527}(`I16`_lanetype, `%`_dim{i#111534}(8)), `ADD_SAT`_vbinop_{sx#27210}(`U`_sx))] -[visit_exp shape#4244] -[visit_id shape#4244] -[visit_exp (`%X%`_shape{lanetype#26688, dim#26688, i#111527}(`I16`_lanetype, `%`_dim{i#111534}(8)), `ADD_SAT`_vbinop_{sx#27210}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#26688, dim#26688, i#111527}(`I16`_lanetype, `%`_dim{i#111534}(8))] -[visit_exp lanetype#26688] -[visit_id lanetype#26688] -[visit_exp dim#26688] -[visit_id dim#26688] -[visit_exp i#111527] -[visit_id i#111527] -[visit_exp (`I16`_lanetype, `%`_dim{i#111534}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#111534}(8)] -[visit_exp i#111534] -[visit_id i#111534] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `ADD_SAT`_vbinop_{sx#27210}(`U`_sx)] -[visit_exp sx#27210] -[visit_id sx#27210] +[visit_exp `ADD_SAT`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#26730 i#111629 i#111636 lanetype#26730 shape#4246 -dims \ I = dim#26730, i#111629, i#111636, lanetype#26730, shape#4246 -[visit_exp `VBINOP`_instr{shape#4246}(`%X%`_shape{lanetype#26730, dim#26730, i#111629}(`I16`_lanetype, `%`_dim{i#111636}(8)), `SUB`_vbinop_)] -[visit_exp shape#4246] -[visit_id shape#4246] -[visit_exp (`%X%`_shape{lanetype#26730, dim#26730, i#111629}(`I16`_lanetype, `%`_dim{i#111636}(8)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#26730, dim#26730, i#111629}(`I16`_lanetype, `%`_dim{i#111636}(8))] -[visit_exp lanetype#26730] -[visit_id lanetype#26730] -[visit_exp dim#26730] -[visit_id dim#26730] -[visit_exp i#111629] -[visit_id i#111629] -[visit_exp (`I16`_lanetype, `%`_dim{i#111636}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB`_vbinop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#111636}(8)] -[visit_exp i#111636] -[visit_id i#111636] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `SUB`_vbinop_] [visit_exp ()] -[check_dims] I dim#26757 i#111686 i#111693 lanetype#26757 shape#4248 sx#27394 -dims \ I = dim#26757, i#111686, i#111693, lanetype#26757, shape#4248, sx#27394 -[visit_exp `VBINOP`_instr{shape#4248}(`%X%`_shape{lanetype#26757, dim#26757, i#111686}(`I16`_lanetype, `%`_dim{i#111693}(8)), `SUB_SAT`_vbinop_{sx#27394}(`S`_sx))] -[visit_exp shape#4248] -[visit_id shape#4248] -[visit_exp (`%X%`_shape{lanetype#26757, dim#26757, i#111686}(`I16`_lanetype, `%`_dim{i#111693}(8)), `SUB_SAT`_vbinop_{sx#27394}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#26757, dim#26757, i#111686}(`I16`_lanetype, `%`_dim{i#111693}(8))] -[visit_exp lanetype#26757] -[visit_id lanetype#26757] -[visit_exp dim#26757] -[visit_id dim#26757] -[visit_exp i#111686] -[visit_id i#111686] -[visit_exp (`I16`_lanetype, `%`_dim{i#111693}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#111693}(8)] -[visit_exp i#111693] -[visit_id i#111693] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `SUB_SAT`_vbinop_{sx#27394}(`S`_sx)] -[visit_exp sx#27394] -[visit_id sx#27394] +[visit_exp `SUB_SAT`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#26799 i#111788 i#111795 lanetype#26799 shape#4250 sx#27518 -dims \ I = dim#26799, i#111788, i#111795, lanetype#26799, shape#4250, sx#27518 -[visit_exp `VBINOP`_instr{shape#4250}(`%X%`_shape{lanetype#26799, dim#26799, i#111788}(`I16`_lanetype, `%`_dim{i#111795}(8)), `SUB_SAT`_vbinop_{sx#27518}(`U`_sx))] -[visit_exp shape#4250] -[visit_id shape#4250] -[visit_exp (`%X%`_shape{lanetype#26799, dim#26799, i#111788}(`I16`_lanetype, `%`_dim{i#111795}(8)), `SUB_SAT`_vbinop_{sx#27518}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#26799, dim#26799, i#111788}(`I16`_lanetype, `%`_dim{i#111795}(8))] -[visit_exp lanetype#26799] -[visit_id lanetype#26799] -[visit_exp dim#26799] -[visit_id dim#26799] -[visit_exp i#111788] -[visit_id i#111788] -[visit_exp (`I16`_lanetype, `%`_dim{i#111795}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#111795}(8)] -[visit_exp i#111795] -[visit_id i#111795] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `SUB_SAT`_vbinop_{sx#27518}(`U`_sx)] -[visit_exp sx#27518] -[visit_id sx#27518] +[visit_exp `SUB_SAT`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#26841 i#111890 i#111897 lanetype#26841 shape#4252 -dims \ I = dim#26841, i#111890, i#111897, lanetype#26841, shape#4252 -[visit_exp `VBINOP`_instr{shape#4252}(`%X%`_shape{lanetype#26841, dim#26841, i#111890}(`I16`_lanetype, `%`_dim{i#111897}(8)), `MUL`_vbinop_)] -[visit_exp shape#4252] -[visit_id shape#4252] -[visit_exp (`%X%`_shape{lanetype#26841, dim#26841, i#111890}(`I16`_lanetype, `%`_dim{i#111897}(8)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#26841, dim#26841, i#111890}(`I16`_lanetype, `%`_dim{i#111897}(8))] -[visit_exp lanetype#26841] -[visit_id lanetype#26841] -[visit_exp dim#26841] -[visit_id dim#26841] -[visit_exp i#111890] -[visit_id i#111890] -[visit_exp (`I16`_lanetype, `%`_dim{i#111897}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MUL`_vbinop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#111897}(8)] -[visit_exp i#111897] -[visit_id i#111897] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `MUL`_vbinop_] [visit_exp ()] -[check_dims] I dim#26868 i#111947 i#111954 lanetype#26868 shape#4254 sx#27702 -dims \ I = dim#26868, i#111947, i#111954, lanetype#26868, shape#4254, sx#27702 -[visit_exp `VBINOP`_instr{shape#4254}(`%X%`_shape{lanetype#26868, dim#26868, i#111947}(`I16`_lanetype, `%`_dim{i#111954}(8)), `MIN`_vbinop_{sx#27702}(`S`_sx))] -[visit_exp shape#4254] -[visit_id shape#4254] -[visit_exp (`%X%`_shape{lanetype#26868, dim#26868, i#111947}(`I16`_lanetype, `%`_dim{i#111954}(8)), `MIN`_vbinop_{sx#27702}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#26868, dim#26868, i#111947}(`I16`_lanetype, `%`_dim{i#111954}(8))] -[visit_exp lanetype#26868] -[visit_id lanetype#26868] -[visit_exp dim#26868] -[visit_id dim#26868] -[visit_exp i#111947] -[visit_id i#111947] -[visit_exp (`I16`_lanetype, `%`_dim{i#111954}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#111954}(8)] -[visit_exp i#111954] -[visit_id i#111954] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `MIN`_vbinop_{sx#27702}(`S`_sx)] -[visit_exp sx#27702] -[visit_id sx#27702] +[visit_exp `MIN`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#26910 i#112049 i#112056 lanetype#26910 shape#4256 sx#27826 -dims \ I = dim#26910, i#112049, i#112056, lanetype#26910, shape#4256, sx#27826 -[visit_exp `VBINOP`_instr{shape#4256}(`%X%`_shape{lanetype#26910, dim#26910, i#112049}(`I16`_lanetype, `%`_dim{i#112056}(8)), `MIN`_vbinop_{sx#27826}(`U`_sx))] -[visit_exp shape#4256] -[visit_id shape#4256] -[visit_exp (`%X%`_shape{lanetype#26910, dim#26910, i#112049}(`I16`_lanetype, `%`_dim{i#112056}(8)), `MIN`_vbinop_{sx#27826}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#26910, dim#26910, i#112049}(`I16`_lanetype, `%`_dim{i#112056}(8))] -[visit_exp lanetype#26910] -[visit_id lanetype#26910] -[visit_exp dim#26910] -[visit_id dim#26910] -[visit_exp i#112049] -[visit_id i#112049] -[visit_exp (`I16`_lanetype, `%`_dim{i#112056}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#112056}(8)] -[visit_exp i#112056] -[visit_id i#112056] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `MIN`_vbinop_{sx#27826}(`U`_sx)] -[visit_exp sx#27826] -[visit_id sx#27826] +[visit_exp `MIN`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#26952 i#112151 i#112158 lanetype#26952 shape#4258 sx#27950 -dims \ I = dim#26952, i#112151, i#112158, lanetype#26952, shape#4258, sx#27950 -[visit_exp `VBINOP`_instr{shape#4258}(`%X%`_shape{lanetype#26952, dim#26952, i#112151}(`I16`_lanetype, `%`_dim{i#112158}(8)), `MAX`_vbinop_{sx#27950}(`S`_sx))] -[visit_exp shape#4258] -[visit_id shape#4258] -[visit_exp (`%X%`_shape{lanetype#26952, dim#26952, i#112151}(`I16`_lanetype, `%`_dim{i#112158}(8)), `MAX`_vbinop_{sx#27950}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#26952, dim#26952, i#112151}(`I16`_lanetype, `%`_dim{i#112158}(8))] -[visit_exp lanetype#26952] -[visit_id lanetype#26952] -[visit_exp dim#26952] -[visit_id dim#26952] -[visit_exp i#112151] -[visit_id i#112151] -[visit_exp (`I16`_lanetype, `%`_dim{i#112158}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#112158}(8)] -[visit_exp i#112158] -[visit_id i#112158] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `MAX`_vbinop_{sx#27950}(`S`_sx)] -[visit_exp sx#27950] -[visit_id sx#27950] +[visit_exp `MAX`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#26994 i#112253 i#112260 lanetype#26994 shape#4260 sx#28074 -dims \ I = dim#26994, i#112253, i#112260, lanetype#26994, shape#4260, sx#28074 -[visit_exp `VBINOP`_instr{shape#4260}(`%X%`_shape{lanetype#26994, dim#26994, i#112253}(`I16`_lanetype, `%`_dim{i#112260}(8)), `MAX`_vbinop_{sx#28074}(`U`_sx))] -[visit_exp shape#4260] -[visit_id shape#4260] -[visit_exp (`%X%`_shape{lanetype#26994, dim#26994, i#112253}(`I16`_lanetype, `%`_dim{i#112260}(8)), `MAX`_vbinop_{sx#28074}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#26994, dim#26994, i#112253}(`I16`_lanetype, `%`_dim{i#112260}(8))] -[visit_exp lanetype#26994] -[visit_id lanetype#26994] -[visit_exp dim#26994] -[visit_id dim#26994] -[visit_exp i#112253] -[visit_id i#112253] -[visit_exp (`I16`_lanetype, `%`_dim{i#112260}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#112260}(8)] -[visit_exp i#112260] -[visit_id i#112260] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `MAX`_vbinop_{sx#28074}(`U`_sx)] -[visit_exp sx#28074] -[visit_id sx#28074] +[visit_exp `MAX`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#27036 i#112355 i#112362 lanetype#27036 shape#4262 -dims \ I = dim#27036, i#112355, i#112362, lanetype#27036, shape#4262 -[visit_exp `VBINOP`_instr{shape#4262}(`%X%`_shape{lanetype#27036, dim#27036, i#112355}(`I16`_lanetype, `%`_dim{i#112362}(8)), `AVGRU`_vbinop_)] -[visit_exp shape#4262] -[visit_id shape#4262] -[visit_exp (`%X%`_shape{lanetype#27036, dim#27036, i#112355}(`I16`_lanetype, `%`_dim{i#112362}(8)), `AVGRU`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27036, dim#27036, i#112355}(`I16`_lanetype, `%`_dim{i#112362}(8))] -[visit_exp lanetype#27036] -[visit_id lanetype#27036] -[visit_exp dim#27036] -[visit_id dim#27036] -[visit_exp i#112355] -[visit_id i#112355] -[visit_exp (`I16`_lanetype, `%`_dim{i#112362}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `AVGRU`_vbinop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `AVGRU`_vbinop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#112362}(8)] -[visit_exp i#112362] -[visit_id i#112362] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `AVGRU`_vbinop_] [visit_exp ()] -[check_dims] I dim#27078 i#112457 i#112464 lanetype#27078 shape#4264 -dims \ I = dim#27078, i#112457, i#112464, lanetype#27078, shape#4264 -[visit_exp `VBINOP`_instr{shape#4264}(`%X%`_shape{lanetype#27078, dim#27078, i#112457}(`I16`_lanetype, `%`_dim{i#112464}(8)), `Q15MULR_SATS`_vbinop_)] -[visit_exp shape#4264] -[visit_id shape#4264] -[visit_exp (`%X%`_shape{lanetype#27078, dim#27078, i#112457}(`I16`_lanetype, `%`_dim{i#112464}(8)), `Q15MULR_SATS`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27078, dim#27078, i#112457}(`I16`_lanetype, `%`_dim{i#112464}(8))] -[visit_exp lanetype#27078] -[visit_id lanetype#27078] -[visit_exp dim#27078] -[visit_id dim#27078] -[visit_exp i#112457] -[visit_id i#112457] -[visit_exp (`I16`_lanetype, `%`_dim{i#112464}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#112464}(8)] -[visit_exp i#112464] -[visit_id i#112464] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `Q15MULR_SATS`_vbinop_] [visit_exp ()] -[check_dims] I dim#27120 i#112559 i#112566 lanetype#27120 shape#4266 -dims \ I = dim#27120, i#112559, i#112566, lanetype#27120, shape#4266 -[visit_exp `VBINOP`_instr{shape#4266}(`%X%`_shape{lanetype#27120, dim#27120, i#112559}(`I16`_lanetype, `%`_dim{i#112566}(8)), `RELAXED_Q15MULRS`_vbinop_)] -[visit_exp shape#4266] -[visit_id shape#4266] -[visit_exp (`%X%`_shape{lanetype#27120, dim#27120, i#112559}(`I16`_lanetype, `%`_dim{i#112566}(8)), `RELAXED_Q15MULRS`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27120, dim#27120, i#112559}(`I16`_lanetype, `%`_dim{i#112566}(8))] -[visit_exp lanetype#27120] -[visit_id lanetype#27120] -[visit_exp dim#27120] -[visit_id dim#27120] -[visit_exp i#112559] -[visit_id i#112559] -[visit_exp (`I16`_lanetype, `%`_dim{i#112566}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#112566}(8)] -[visit_exp i#112566] -[visit_id i#112566] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `RELAXED_Q15MULRS`_vbinop_] @@ -102744,251 +80368,143 @@ dims \ I = dim#27120, i#112559, i#112566, lanetype#27120, shape#4266 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#27162 i#112661 i#112668 lanetype#27162 shape#4268 -dims \ I = dim#27162, i#112661, i#112668, lanetype#27162, shape#4268 -[visit_exp `VBINOP`_instr{shape#4268}(`%X%`_shape{lanetype#27162, dim#27162, i#112661}(`I32`_lanetype, `%`_dim{i#112668}(4)), `ADD`_vbinop_)] -[visit_exp shape#4268] -[visit_id shape#4268] -[visit_exp (`%X%`_shape{lanetype#27162, dim#27162, i#112661}(`I32`_lanetype, `%`_dim{i#112668}(4)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27162, dim#27162, i#112661}(`I32`_lanetype, `%`_dim{i#112668}(4))] -[visit_exp lanetype#27162] -[visit_id lanetype#27162] -[visit_exp dim#27162] -[visit_id dim#27162] -[visit_exp i#112661] -[visit_id i#112661] -[visit_exp (`I32`_lanetype, `%`_dim{i#112668}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#112668}(4)] -[visit_exp i#112668] -[visit_id i#112668] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `ADD`_vbinop_] [visit_exp ()] -[check_dims] I dim#27189 i#112718 i#112725 lanetype#27189 shape#4270 -dims \ I = dim#27189, i#112718, i#112725, lanetype#27189, shape#4270 -[visit_exp `VBINOP`_instr{shape#4270}(`%X%`_shape{lanetype#27189, dim#27189, i#112718}(`I32`_lanetype, `%`_dim{i#112725}(4)), `SUB`_vbinop_)] -[visit_exp shape#4270] -[visit_id shape#4270] -[visit_exp (`%X%`_shape{lanetype#27189, dim#27189, i#112718}(`I32`_lanetype, `%`_dim{i#112725}(4)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27189, dim#27189, i#112718}(`I32`_lanetype, `%`_dim{i#112725}(4))] -[visit_exp lanetype#27189] -[visit_id lanetype#27189] -[visit_exp dim#27189] -[visit_id dim#27189] -[visit_exp i#112718] -[visit_id i#112718] -[visit_exp (`I32`_lanetype, `%`_dim{i#112725}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#112725}(4)] -[visit_exp i#112725] -[visit_id i#112725] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `SUB`_vbinop_] [visit_exp ()] -[check_dims] I dim#27216 i#112775 i#112782 lanetype#27216 shape#4272 -dims \ I = dim#27216, i#112775, i#112782, lanetype#27216, shape#4272 -[visit_exp `VBINOP`_instr{shape#4272}(`%X%`_shape{lanetype#27216, dim#27216, i#112775}(`I32`_lanetype, `%`_dim{i#112782}(4)), `MUL`_vbinop_)] -[visit_exp shape#4272] -[visit_id shape#4272] -[visit_exp (`%X%`_shape{lanetype#27216, dim#27216, i#112775}(`I32`_lanetype, `%`_dim{i#112782}(4)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27216, dim#27216, i#112775}(`I32`_lanetype, `%`_dim{i#112782}(4))] -[visit_exp lanetype#27216] -[visit_id lanetype#27216] -[visit_exp dim#27216] -[visit_id dim#27216] -[visit_exp i#112775] -[visit_id i#112775] -[visit_exp (`I32`_lanetype, `%`_dim{i#112782}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#112782}(4)] -[visit_exp i#112782] -[visit_id i#112782] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `MUL`_vbinop_] [visit_exp ()] -[check_dims] I dim#27243 i#112832 i#112839 lanetype#27243 shape#4274 sx#28738 -dims \ I = dim#27243, i#112832, i#112839, lanetype#27243, shape#4274, sx#28738 -[visit_exp `VBINOP`_instr{shape#4274}(`%X%`_shape{lanetype#27243, dim#27243, i#112832}(`I32`_lanetype, `%`_dim{i#112839}(4)), `MIN`_vbinop_{sx#28738}(`S`_sx))] -[visit_exp shape#4274] -[visit_id shape#4274] -[visit_exp (`%X%`_shape{lanetype#27243, dim#27243, i#112832}(`I32`_lanetype, `%`_dim{i#112839}(4)), `MIN`_vbinop_{sx#28738}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#27243, dim#27243, i#112832}(`I32`_lanetype, `%`_dim{i#112839}(4))] -[visit_exp lanetype#27243] -[visit_id lanetype#27243] -[visit_exp dim#27243] -[visit_id dim#27243] -[visit_exp i#112832] -[visit_id i#112832] -[visit_exp (`I32`_lanetype, `%`_dim{i#112839}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#112839}(4)] -[visit_exp i#112839] -[visit_id i#112839] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `MIN`_vbinop_{sx#28738}(`S`_sx)] -[visit_exp sx#28738] -[visit_id sx#28738] +[visit_exp `MIN`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#27285 i#112934 i#112941 lanetype#27285 shape#4276 sx#28862 -dims \ I = dim#27285, i#112934, i#112941, lanetype#27285, shape#4276, sx#28862 -[visit_exp `VBINOP`_instr{shape#4276}(`%X%`_shape{lanetype#27285, dim#27285, i#112934}(`I32`_lanetype, `%`_dim{i#112941}(4)), `MIN`_vbinop_{sx#28862}(`U`_sx))] -[visit_exp shape#4276] -[visit_id shape#4276] -[visit_exp (`%X%`_shape{lanetype#27285, dim#27285, i#112934}(`I32`_lanetype, `%`_dim{i#112941}(4)), `MIN`_vbinop_{sx#28862}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#27285, dim#27285, i#112934}(`I32`_lanetype, `%`_dim{i#112941}(4))] -[visit_exp lanetype#27285] -[visit_id lanetype#27285] -[visit_exp dim#27285] -[visit_id dim#27285] -[visit_exp i#112934] -[visit_id i#112934] -[visit_exp (`I32`_lanetype, `%`_dim{i#112941}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#112941}(4)] -[visit_exp i#112941] -[visit_id i#112941] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `MIN`_vbinop_{sx#28862}(`U`_sx)] -[visit_exp sx#28862] -[visit_id sx#28862] +[visit_exp `MIN`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#27327 i#113036 i#113043 lanetype#27327 shape#4278 sx#28986 -dims \ I = dim#27327, i#113036, i#113043, lanetype#27327, shape#4278, sx#28986 -[visit_exp `VBINOP`_instr{shape#4278}(`%X%`_shape{lanetype#27327, dim#27327, i#113036}(`I32`_lanetype, `%`_dim{i#113043}(4)), `MAX`_vbinop_{sx#28986}(`S`_sx))] -[visit_exp shape#4278] -[visit_id shape#4278] -[visit_exp (`%X%`_shape{lanetype#27327, dim#27327, i#113036}(`I32`_lanetype, `%`_dim{i#113043}(4)), `MAX`_vbinop_{sx#28986}(`S`_sx))] -[visit_exp `%X%`_shape{lanetype#27327, dim#27327, i#113036}(`I32`_lanetype, `%`_dim{i#113043}(4))] -[visit_exp lanetype#27327] -[visit_id lanetype#27327] -[visit_exp dim#27327] -[visit_id dim#27327] -[visit_exp i#113036] -[visit_id i#113036] -[visit_exp (`I32`_lanetype, `%`_dim{i#113043}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113043}(4)] -[visit_exp i#113043] -[visit_id i#113043] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `MAX`_vbinop_{sx#28986}(`S`_sx)] -[visit_exp sx#28986] -[visit_id sx#28986] +[visit_exp `MAX`_vbinop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#27369 i#113138 i#113145 lanetype#27369 shape#4280 sx#29110 -dims \ I = dim#27369, i#113138, i#113145, lanetype#27369, shape#4280, sx#29110 -[visit_exp `VBINOP`_instr{shape#4280}(`%X%`_shape{lanetype#27369, dim#27369, i#113138}(`I32`_lanetype, `%`_dim{i#113145}(4)), `MAX`_vbinop_{sx#29110}(`U`_sx))] -[visit_exp shape#4280] -[visit_id shape#4280] -[visit_exp (`%X%`_shape{lanetype#27369, dim#27369, i#113138}(`I32`_lanetype, `%`_dim{i#113145}(4)), `MAX`_vbinop_{sx#29110}(`U`_sx))] -[visit_exp `%X%`_shape{lanetype#27369, dim#27369, i#113138}(`I32`_lanetype, `%`_dim{i#113145}(4))] -[visit_exp lanetype#27369] -[visit_id lanetype#27369] -[visit_exp dim#27369] -[visit_id dim#27369] -[visit_exp i#113138] -[visit_id i#113138] -[visit_exp (`I32`_lanetype, `%`_dim{i#113145}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113145}(4)] -[visit_exp i#113145] -[visit_id i#113145] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `MAX`_vbinop_{sx#29110}(`U`_sx)] -[visit_exp sx#29110] -[visit_id sx#29110] +[visit_exp `MAX`_vbinop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#27411 i#113240 i#113247 lanetype#27411 shape#4282 -dims \ I = dim#27411, i#113240, i#113247, lanetype#27411, shape#4282 -[visit_exp `VBINOP`_instr{shape#4282}(`%X%`_shape{lanetype#27411, dim#27411, i#113240}(`I64`_lanetype, `%`_dim{i#113247}(2)), `ADD`_vbinop_)] -[visit_exp shape#4282] -[visit_id shape#4282] -[visit_exp (`%X%`_shape{lanetype#27411, dim#27411, i#113240}(`I64`_lanetype, `%`_dim{i#113247}(2)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27411, dim#27411, i#113240}(`I64`_lanetype, `%`_dim{i#113247}(2))] -[visit_exp lanetype#27411] -[visit_id lanetype#27411] -[visit_exp dim#27411] -[visit_id dim#27411] -[visit_exp i#113240] -[visit_id i#113240] -[visit_exp (`I64`_lanetype, `%`_dim{i#113247}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113247}(2)] -[visit_exp i#113247] -[visit_id i#113247] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `ADD`_vbinop_] [visit_exp ()] -[check_dims] I dim#27438 i#113297 i#113304 lanetype#27438 shape#4284 -dims \ I = dim#27438, i#113297, i#113304, lanetype#27438, shape#4284 -[visit_exp `VBINOP`_instr{shape#4284}(`%X%`_shape{lanetype#27438, dim#27438, i#113297}(`I64`_lanetype, `%`_dim{i#113304}(2)), `SUB`_vbinop_)] -[visit_exp shape#4284] -[visit_id shape#4284] -[visit_exp (`%X%`_shape{lanetype#27438, dim#27438, i#113297}(`I64`_lanetype, `%`_dim{i#113304}(2)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27438, dim#27438, i#113297}(`I64`_lanetype, `%`_dim{i#113304}(2))] -[visit_exp lanetype#27438] -[visit_id lanetype#27438] -[visit_exp dim#27438] -[visit_id dim#27438] -[visit_exp i#113297] -[visit_id i#113297] -[visit_exp (`I64`_lanetype, `%`_dim{i#113304}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113304}(2)] -[visit_exp i#113304] -[visit_id i#113304] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `SUB`_vbinop_] [visit_exp ()] -[check_dims] I dim#27465 i#113354 i#113361 lanetype#27465 shape#4286 -dims \ I = dim#27465, i#113354, i#113361, lanetype#27465, shape#4286 -[visit_exp `VBINOP`_instr{shape#4286}(`%X%`_shape{lanetype#27465, dim#27465, i#113354}(`I64`_lanetype, `%`_dim{i#113361}(2)), `MUL`_vbinop_)] -[visit_exp shape#4286] -[visit_id shape#4286] -[visit_exp (`%X%`_shape{lanetype#27465, dim#27465, i#113354}(`I64`_lanetype, `%`_dim{i#113361}(2)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27465, dim#27465, i#113354}(`I64`_lanetype, `%`_dim{i#113361}(2))] -[visit_exp lanetype#27465] -[visit_id lanetype#27465] -[visit_exp dim#27465] -[visit_id dim#27465] -[visit_exp i#113354] -[visit_id i#113354] -[visit_exp (`I64`_lanetype, `%`_dim{i#113361}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113361}(2)] -[visit_exp i#113361] -[visit_id i#113361] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `MUL`_vbinop_] @@ -102996,232 +80512,132 @@ dims \ I = dim#27465, i#113354, i#113361, lanetype#27465, shape#4286 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#27492 i#113411 i#113418 lanetype#27492 shape#4288 -dims \ I = dim#27492, i#113411, i#113418, lanetype#27492, shape#4288 -[visit_exp `VBINOP`_instr{shape#4288}(`%X%`_shape{lanetype#27492, dim#27492, i#113411}(`F32`_lanetype, `%`_dim{i#113418}(4)), `ADD`_vbinop_)] -[visit_exp shape#4288] -[visit_id shape#4288] -[visit_exp (`%X%`_shape{lanetype#27492, dim#27492, i#113411}(`F32`_lanetype, `%`_dim{i#113418}(4)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27492, dim#27492, i#113411}(`F32`_lanetype, `%`_dim{i#113418}(4))] -[visit_exp lanetype#27492] -[visit_id lanetype#27492] -[visit_exp dim#27492] -[visit_id dim#27492] -[visit_exp i#113411] -[visit_id i#113411] -[visit_exp (`F32`_lanetype, `%`_dim{i#113418}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113418}(4)] -[visit_exp i#113418] -[visit_id i#113418] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `ADD`_vbinop_] [visit_exp ()] -[check_dims] I dim#27534 i#113483 i#113490 lanetype#27534 shape#4290 -dims \ I = dim#27534, i#113483, i#113490, lanetype#27534, shape#4290 -[visit_exp `VBINOP`_instr{shape#4290}(`%X%`_shape{lanetype#27534, dim#27534, i#113483}(`F32`_lanetype, `%`_dim{i#113490}(4)), `SUB`_vbinop_)] -[visit_exp shape#4290] -[visit_id shape#4290] -[visit_exp (`%X%`_shape{lanetype#27534, dim#27534, i#113483}(`F32`_lanetype, `%`_dim{i#113490}(4)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27534, dim#27534, i#113483}(`F32`_lanetype, `%`_dim{i#113490}(4))] -[visit_exp lanetype#27534] -[visit_id lanetype#27534] -[visit_exp dim#27534] -[visit_id dim#27534] -[visit_exp i#113483] -[visit_id i#113483] -[visit_exp (`F32`_lanetype, `%`_dim{i#113490}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113490}(4)] -[visit_exp i#113490] -[visit_id i#113490] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `SUB`_vbinop_] [visit_exp ()] -[check_dims] I dim#27576 i#113555 i#113562 lanetype#27576 shape#4292 -dims \ I = dim#27576, i#113555, i#113562, lanetype#27576, shape#4292 -[visit_exp `VBINOP`_instr{shape#4292}(`%X%`_shape{lanetype#27576, dim#27576, i#113555}(`F32`_lanetype, `%`_dim{i#113562}(4)), `MUL`_vbinop_)] -[visit_exp shape#4292] -[visit_id shape#4292] -[visit_exp (`%X%`_shape{lanetype#27576, dim#27576, i#113555}(`F32`_lanetype, `%`_dim{i#113562}(4)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27576, dim#27576, i#113555}(`F32`_lanetype, `%`_dim{i#113562}(4))] -[visit_exp lanetype#27576] -[visit_id lanetype#27576] -[visit_exp dim#27576] -[visit_id dim#27576] -[visit_exp i#113555] -[visit_id i#113555] -[visit_exp (`F32`_lanetype, `%`_dim{i#113562}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113562}(4)] -[visit_exp i#113562] -[visit_id i#113562] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `MUL`_vbinop_] [visit_exp ()] -[check_dims] I dim#27618 i#113627 i#113634 lanetype#27618 shape#4294 -dims \ I = dim#27618, i#113627, i#113634, lanetype#27618, shape#4294 -[visit_exp `VBINOP`_instr{shape#4294}(`%X%`_shape{lanetype#27618, dim#27618, i#113627}(`F32`_lanetype, `%`_dim{i#113634}(4)), `DIV`_vbinop_)] -[visit_exp shape#4294] -[visit_id shape#4294] -[visit_exp (`%X%`_shape{lanetype#27618, dim#27618, i#113627}(`F32`_lanetype, `%`_dim{i#113634}(4)), `DIV`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27618, dim#27618, i#113627}(`F32`_lanetype, `%`_dim{i#113634}(4))] -[visit_exp lanetype#27618] -[visit_id lanetype#27618] -[visit_exp dim#27618] -[visit_id dim#27618] -[visit_exp i#113627] -[visit_id i#113627] -[visit_exp (`F32`_lanetype, `%`_dim{i#113634}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `DIV`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `DIV`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113634}(4)] -[visit_exp i#113634] -[visit_id i#113634] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `DIV`_vbinop_] [visit_exp ()] -[check_dims] I dim#27660 i#113699 i#113706 lanetype#27660 shape#4296 -dims \ I = dim#27660, i#113699, i#113706, lanetype#27660, shape#4296 -[visit_exp `VBINOP`_instr{shape#4296}(`%X%`_shape{lanetype#27660, dim#27660, i#113699}(`F32`_lanetype, `%`_dim{i#113706}(4)), `MIN`_vbinop_)] -[visit_exp shape#4296] -[visit_id shape#4296] -[visit_exp (`%X%`_shape{lanetype#27660, dim#27660, i#113699}(`F32`_lanetype, `%`_dim{i#113706}(4)), `MIN`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27660, dim#27660, i#113699}(`F32`_lanetype, `%`_dim{i#113706}(4))] -[visit_exp lanetype#27660] -[visit_id lanetype#27660] -[visit_exp dim#27660] -[visit_id dim#27660] -[visit_exp i#113699] -[visit_id i#113699] -[visit_exp (`F32`_lanetype, `%`_dim{i#113706}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MIN`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MIN`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113706}(4)] -[visit_exp i#113706] -[visit_id i#113706] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `MIN`_vbinop_] [visit_exp ()] -[check_dims] I dim#27702 i#113771 i#113778 lanetype#27702 shape#4298 -dims \ I = dim#27702, i#113771, i#113778, lanetype#27702, shape#4298 -[visit_exp `VBINOP`_instr{shape#4298}(`%X%`_shape{lanetype#27702, dim#27702, i#113771}(`F32`_lanetype, `%`_dim{i#113778}(4)), `MAX`_vbinop_)] -[visit_exp shape#4298] -[visit_id shape#4298] -[visit_exp (`%X%`_shape{lanetype#27702, dim#27702, i#113771}(`F32`_lanetype, `%`_dim{i#113778}(4)), `MAX`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27702, dim#27702, i#113771}(`F32`_lanetype, `%`_dim{i#113778}(4))] -[visit_exp lanetype#27702] -[visit_id lanetype#27702] -[visit_exp dim#27702] -[visit_id dim#27702] -[visit_exp i#113771] -[visit_id i#113771] -[visit_exp (`F32`_lanetype, `%`_dim{i#113778}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MAX`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MAX`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113778}(4)] -[visit_exp i#113778] -[visit_id i#113778] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `MAX`_vbinop_] [visit_exp ()] -[check_dims] I dim#27744 i#113843 i#113850 lanetype#27744 shape#4300 -dims \ I = dim#27744, i#113843, i#113850, lanetype#27744, shape#4300 -[visit_exp `VBINOP`_instr{shape#4300}(`%X%`_shape{lanetype#27744, dim#27744, i#113843}(`F32`_lanetype, `%`_dim{i#113850}(4)), `PMIN`_vbinop_)] -[visit_exp shape#4300] -[visit_id shape#4300] -[visit_exp (`%X%`_shape{lanetype#27744, dim#27744, i#113843}(`F32`_lanetype, `%`_dim{i#113850}(4)), `PMIN`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27744, dim#27744, i#113843}(`F32`_lanetype, `%`_dim{i#113850}(4))] -[visit_exp lanetype#27744] -[visit_id lanetype#27744] -[visit_exp dim#27744] -[visit_id dim#27744] -[visit_exp i#113843] -[visit_id i#113843] -[visit_exp (`F32`_lanetype, `%`_dim{i#113850}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMIN`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMIN`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113850}(4)] -[visit_exp i#113850] -[visit_id i#113850] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `PMIN`_vbinop_] [visit_exp ()] -[check_dims] I dim#27786 i#113915 i#113922 lanetype#27786 shape#4302 -dims \ I = dim#27786, i#113915, i#113922, lanetype#27786, shape#4302 -[visit_exp `VBINOP`_instr{shape#4302}(`%X%`_shape{lanetype#27786, dim#27786, i#113915}(`F32`_lanetype, `%`_dim{i#113922}(4)), `PMAX`_vbinop_)] -[visit_exp shape#4302] -[visit_id shape#4302] -[visit_exp (`%X%`_shape{lanetype#27786, dim#27786, i#113915}(`F32`_lanetype, `%`_dim{i#113922}(4)), `PMAX`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27786, dim#27786, i#113915}(`F32`_lanetype, `%`_dim{i#113922}(4))] -[visit_exp lanetype#27786] -[visit_id lanetype#27786] -[visit_exp dim#27786] -[visit_id dim#27786] -[visit_exp i#113915] -[visit_id i#113915] -[visit_exp (`F32`_lanetype, `%`_dim{i#113922}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMAX`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMAX`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113922}(4)] -[visit_exp i#113922] -[visit_id i#113922] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `PMAX`_vbinop_] [visit_exp ()] -[check_dims] I dim#27828 i#113987 i#113994 lanetype#27828 shape#4304 -dims \ I = dim#27828, i#113987, i#113994, lanetype#27828, shape#4304 -[visit_exp `VBINOP`_instr{shape#4304}(`%X%`_shape{lanetype#27828, dim#27828, i#113987}(`F32`_lanetype, `%`_dim{i#113994}(4)), `RELAXED_MIN`_vbinop_)] -[visit_exp shape#4304] -[visit_id shape#4304] -[visit_exp (`%X%`_shape{lanetype#27828, dim#27828, i#113987}(`F32`_lanetype, `%`_dim{i#113994}(4)), `RELAXED_MIN`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27828, dim#27828, i#113987}(`F32`_lanetype, `%`_dim{i#113994}(4))] -[visit_exp lanetype#27828] -[visit_id lanetype#27828] -[visit_exp dim#27828] -[visit_id dim#27828] -[visit_exp i#113987] -[visit_id i#113987] -[visit_exp (`F32`_lanetype, `%`_dim{i#113994}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MIN`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MIN`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#113994}(4)] -[visit_exp i#113994] -[visit_id i#113994] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `RELAXED_MIN`_vbinop_] [visit_exp ()] -[check_dims] I dim#27870 i#114059 i#114066 lanetype#27870 shape#4306 -dims \ I = dim#27870, i#114059, i#114066, lanetype#27870, shape#4306 -[visit_exp `VBINOP`_instr{shape#4306}(`%X%`_shape{lanetype#27870, dim#27870, i#114059}(`F32`_lanetype, `%`_dim{i#114066}(4)), `RELAXED_MAX`_vbinop_)] -[visit_exp shape#4306] -[visit_id shape#4306] -[visit_exp (`%X%`_shape{lanetype#27870, dim#27870, i#114059}(`F32`_lanetype, `%`_dim{i#114066}(4)), `RELAXED_MAX`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27870, dim#27870, i#114059}(`F32`_lanetype, `%`_dim{i#114066}(4))] -[visit_exp lanetype#27870] -[visit_id lanetype#27870] -[visit_exp dim#27870] -[visit_id dim#27870] -[visit_exp i#114059] -[visit_id i#114059] -[visit_exp (`F32`_lanetype, `%`_dim{i#114066}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MAX`_vbinop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MAX`_vbinop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114066}(4)] -[visit_exp i#114066] -[visit_id i#114066] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `RELAXED_MAX`_vbinop_] @@ -103229,232 +80645,132 @@ dims \ I = dim#27870, i#114059, i#114066, lanetype#27870, shape#4306 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#27912 i#114131 i#114138 lanetype#27912 shape#4308 -dims \ I = dim#27912, i#114131, i#114138, lanetype#27912, shape#4308 -[visit_exp `VBINOP`_instr{shape#4308}(`%X%`_shape{lanetype#27912, dim#27912, i#114131}(`F64`_lanetype, `%`_dim{i#114138}(2)), `ADD`_vbinop_)] -[visit_exp shape#4308] -[visit_id shape#4308] -[visit_exp (`%X%`_shape{lanetype#27912, dim#27912, i#114131}(`F64`_lanetype, `%`_dim{i#114138}(2)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27912, dim#27912, i#114131}(`F64`_lanetype, `%`_dim{i#114138}(2))] -[visit_exp lanetype#27912] -[visit_id lanetype#27912] -[visit_exp dim#27912] -[visit_id dim#27912] -[visit_exp i#114131] -[visit_id i#114131] -[visit_exp (`F64`_lanetype, `%`_dim{i#114138}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114138}(2)] -[visit_exp i#114138] -[visit_id i#114138] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `ADD`_vbinop_] [visit_exp ()] -[check_dims] I dim#27954 i#114203 i#114210 lanetype#27954 shape#4310 -dims \ I = dim#27954, i#114203, i#114210, lanetype#27954, shape#4310 -[visit_exp `VBINOP`_instr{shape#4310}(`%X%`_shape{lanetype#27954, dim#27954, i#114203}(`F64`_lanetype, `%`_dim{i#114210}(2)), `SUB`_vbinop_)] -[visit_exp shape#4310] -[visit_id shape#4310] -[visit_exp (`%X%`_shape{lanetype#27954, dim#27954, i#114203}(`F64`_lanetype, `%`_dim{i#114210}(2)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27954, dim#27954, i#114203}(`F64`_lanetype, `%`_dim{i#114210}(2))] -[visit_exp lanetype#27954] -[visit_id lanetype#27954] -[visit_exp dim#27954] -[visit_id dim#27954] -[visit_exp i#114203] -[visit_id i#114203] -[visit_exp (`F64`_lanetype, `%`_dim{i#114210}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114210}(2)] -[visit_exp i#114210] -[visit_id i#114210] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `SUB`_vbinop_] [visit_exp ()] -[check_dims] I dim#27996 i#114275 i#114282 lanetype#27996 shape#4312 -dims \ I = dim#27996, i#114275, i#114282, lanetype#27996, shape#4312 -[visit_exp `VBINOP`_instr{shape#4312}(`%X%`_shape{lanetype#27996, dim#27996, i#114275}(`F64`_lanetype, `%`_dim{i#114282}(2)), `MUL`_vbinop_)] -[visit_exp shape#4312] -[visit_id shape#4312] -[visit_exp (`%X%`_shape{lanetype#27996, dim#27996, i#114275}(`F64`_lanetype, `%`_dim{i#114282}(2)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#27996, dim#27996, i#114275}(`F64`_lanetype, `%`_dim{i#114282}(2))] -[visit_exp lanetype#27996] -[visit_id lanetype#27996] -[visit_exp dim#27996] -[visit_id dim#27996] -[visit_exp i#114275] -[visit_id i#114275] -[visit_exp (`F64`_lanetype, `%`_dim{i#114282}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114282}(2)] -[visit_exp i#114282] -[visit_id i#114282] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `MUL`_vbinop_] [visit_exp ()] -[check_dims] I dim#28038 i#114347 i#114354 lanetype#28038 shape#4314 -dims \ I = dim#28038, i#114347, i#114354, lanetype#28038, shape#4314 -[visit_exp `VBINOP`_instr{shape#4314}(`%X%`_shape{lanetype#28038, dim#28038, i#114347}(`F64`_lanetype, `%`_dim{i#114354}(2)), `DIV`_vbinop_)] -[visit_exp shape#4314] -[visit_id shape#4314] -[visit_exp (`%X%`_shape{lanetype#28038, dim#28038, i#114347}(`F64`_lanetype, `%`_dim{i#114354}(2)), `DIV`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#28038, dim#28038, i#114347}(`F64`_lanetype, `%`_dim{i#114354}(2))] -[visit_exp lanetype#28038] -[visit_id lanetype#28038] -[visit_exp dim#28038] -[visit_id dim#28038] -[visit_exp i#114347] -[visit_id i#114347] -[visit_exp (`F64`_lanetype, `%`_dim{i#114354}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DIV`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DIV`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114354}(2)] -[visit_exp i#114354] -[visit_id i#114354] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `DIV`_vbinop_] [visit_exp ()] -[check_dims] I dim#28080 i#114419 i#114426 lanetype#28080 shape#4316 -dims \ I = dim#28080, i#114419, i#114426, lanetype#28080, shape#4316 -[visit_exp `VBINOP`_instr{shape#4316}(`%X%`_shape{lanetype#28080, dim#28080, i#114419}(`F64`_lanetype, `%`_dim{i#114426}(2)), `MIN`_vbinop_)] -[visit_exp shape#4316] -[visit_id shape#4316] -[visit_exp (`%X%`_shape{lanetype#28080, dim#28080, i#114419}(`F64`_lanetype, `%`_dim{i#114426}(2)), `MIN`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#28080, dim#28080, i#114419}(`F64`_lanetype, `%`_dim{i#114426}(2))] -[visit_exp lanetype#28080] -[visit_id lanetype#28080] -[visit_exp dim#28080] -[visit_id dim#28080] -[visit_exp i#114419] -[visit_id i#114419] -[visit_exp (`F64`_lanetype, `%`_dim{i#114426}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MIN`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MIN`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114426}(2)] -[visit_exp i#114426] -[visit_id i#114426] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `MIN`_vbinop_] [visit_exp ()] -[check_dims] I dim#28122 i#114491 i#114498 lanetype#28122 shape#4318 -dims \ I = dim#28122, i#114491, i#114498, lanetype#28122, shape#4318 -[visit_exp `VBINOP`_instr{shape#4318}(`%X%`_shape{lanetype#28122, dim#28122, i#114491}(`F64`_lanetype, `%`_dim{i#114498}(2)), `MAX`_vbinop_)] -[visit_exp shape#4318] -[visit_id shape#4318] -[visit_exp (`%X%`_shape{lanetype#28122, dim#28122, i#114491}(`F64`_lanetype, `%`_dim{i#114498}(2)), `MAX`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#28122, dim#28122, i#114491}(`F64`_lanetype, `%`_dim{i#114498}(2))] -[visit_exp lanetype#28122] -[visit_id lanetype#28122] -[visit_exp dim#28122] -[visit_id dim#28122] -[visit_exp i#114491] -[visit_id i#114491] -[visit_exp (`F64`_lanetype, `%`_dim{i#114498}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MAX`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MAX`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114498}(2)] -[visit_exp i#114498] -[visit_id i#114498] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `MAX`_vbinop_] [visit_exp ()] -[check_dims] I dim#28164 i#114563 i#114570 lanetype#28164 shape#4320 -dims \ I = dim#28164, i#114563, i#114570, lanetype#28164, shape#4320 -[visit_exp `VBINOP`_instr{shape#4320}(`%X%`_shape{lanetype#28164, dim#28164, i#114563}(`F64`_lanetype, `%`_dim{i#114570}(2)), `PMIN`_vbinop_)] -[visit_exp shape#4320] -[visit_id shape#4320] -[visit_exp (`%X%`_shape{lanetype#28164, dim#28164, i#114563}(`F64`_lanetype, `%`_dim{i#114570}(2)), `PMIN`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#28164, dim#28164, i#114563}(`F64`_lanetype, `%`_dim{i#114570}(2))] -[visit_exp lanetype#28164] -[visit_id lanetype#28164] -[visit_exp dim#28164] -[visit_id dim#28164] -[visit_exp i#114563] -[visit_id i#114563] -[visit_exp (`F64`_lanetype, `%`_dim{i#114570}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMIN`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMIN`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114570}(2)] -[visit_exp i#114570] -[visit_id i#114570] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `PMIN`_vbinop_] [visit_exp ()] -[check_dims] I dim#28206 i#114635 i#114642 lanetype#28206 shape#4322 -dims \ I = dim#28206, i#114635, i#114642, lanetype#28206, shape#4322 -[visit_exp `VBINOP`_instr{shape#4322}(`%X%`_shape{lanetype#28206, dim#28206, i#114635}(`F64`_lanetype, `%`_dim{i#114642}(2)), `PMAX`_vbinop_)] -[visit_exp shape#4322] -[visit_id shape#4322] -[visit_exp (`%X%`_shape{lanetype#28206, dim#28206, i#114635}(`F64`_lanetype, `%`_dim{i#114642}(2)), `PMAX`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#28206, dim#28206, i#114635}(`F64`_lanetype, `%`_dim{i#114642}(2))] -[visit_exp lanetype#28206] -[visit_id lanetype#28206] -[visit_exp dim#28206] -[visit_id dim#28206] -[visit_exp i#114635] -[visit_id i#114635] -[visit_exp (`F64`_lanetype, `%`_dim{i#114642}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMAX`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMAX`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114642}(2)] -[visit_exp i#114642] -[visit_id i#114642] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `PMAX`_vbinop_] [visit_exp ()] -[check_dims] I dim#28248 i#114707 i#114714 lanetype#28248 shape#4324 -dims \ I = dim#28248, i#114707, i#114714, lanetype#28248, shape#4324 -[visit_exp `VBINOP`_instr{shape#4324}(`%X%`_shape{lanetype#28248, dim#28248, i#114707}(`F64`_lanetype, `%`_dim{i#114714}(2)), `RELAXED_MIN`_vbinop_)] -[visit_exp shape#4324] -[visit_id shape#4324] -[visit_exp (`%X%`_shape{lanetype#28248, dim#28248, i#114707}(`F64`_lanetype, `%`_dim{i#114714}(2)), `RELAXED_MIN`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#28248, dim#28248, i#114707}(`F64`_lanetype, `%`_dim{i#114714}(2))] -[visit_exp lanetype#28248] -[visit_id lanetype#28248] -[visit_exp dim#28248] -[visit_id dim#28248] -[visit_exp i#114707] -[visit_id i#114707] -[visit_exp (`F64`_lanetype, `%`_dim{i#114714}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MIN`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MIN`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114714}(2)] -[visit_exp i#114714] -[visit_id i#114714] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `RELAXED_MIN`_vbinop_] [visit_exp ()] -[check_dims] I dim#28290 i#114779 i#114786 lanetype#28290 shape#4326 -dims \ I = dim#28290, i#114779, i#114786, lanetype#28290, shape#4326 -[visit_exp `VBINOP`_instr{shape#4326}(`%X%`_shape{lanetype#28290, dim#28290, i#114779}(`F64`_lanetype, `%`_dim{i#114786}(2)), `RELAXED_MAX`_vbinop_)] -[visit_exp shape#4326] -[visit_id shape#4326] -[visit_exp (`%X%`_shape{lanetype#28290, dim#28290, i#114779}(`F64`_lanetype, `%`_dim{i#114786}(2)), `RELAXED_MAX`_vbinop_)] -[visit_exp `%X%`_shape{lanetype#28290, dim#28290, i#114779}(`F64`_lanetype, `%`_dim{i#114786}(2))] -[visit_exp lanetype#28290] -[visit_id lanetype#28290] -[visit_exp dim#28290] -[visit_id dim#28290] -[visit_exp i#114779] -[visit_id i#114779] -[visit_exp (`F64`_lanetype, `%`_dim{i#114786}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MAX`_vbinop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MAX`_vbinop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114786}(2)] -[visit_exp i#114786] -[visit_id i#114786] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `RELAXED_MAX`_vbinop_] @@ -103462,13 +80778,9 @@ dims \ I = dim#28290, i#114779, i#114786, lanetype#28290, shape#4326 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I vectype#328 vvternop#9 -dims \ I = vectype#328, vvternop#9 -[visit_exp `VVTERNOP`_instr{vectype#328, vvternop#9}(`V128`_vectype, `BITSELECT`_vvternop)] -[visit_exp vectype#328] -[visit_id vectype#328] -[visit_exp vvternop#9] -[visit_id vvternop#9] +[check_dims] I +dims \ I = +[visit_exp `VVTERNOP`_instr(`V128`_vectype, `BITSELECT`_vvternop)] [visit_exp (`V128`_vectype, `BITSELECT`_vvternop)] [visit_exp `V128`_vectype] [visit_exp ()] @@ -103477,25 +80789,15 @@ dims \ I = vectype#328, vvternop#9 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#28332 i#114851 i#114858 lanetype#28332 shape#4328 -dims \ I = dim#28332, i#114851, i#114858, lanetype#28332, shape#4328 -[visit_exp `VTERNOP`_instr{shape#4328}(`%X%`_shape{lanetype#28332, dim#28332, i#114851}(`I8`_lanetype, `%`_dim{i#114858}(16)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp shape#4328] -[visit_id shape#4328] -[visit_exp (`%X%`_shape{lanetype#28332, dim#28332, i#114851}(`I8`_lanetype, `%`_dim{i#114858}(16)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape{lanetype#28332, dim#28332, i#114851}(`I8`_lanetype, `%`_dim{i#114858}(16))] -[visit_exp lanetype#28332] -[visit_id lanetype#28332] -[visit_exp dim#28332] -[visit_id dim#28332] -[visit_exp i#114851] -[visit_id i#114851] -[visit_exp (`I8`_lanetype, `%`_dim{i#114858}(16))] +[check_dims] I +dims \ I = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114858}(16)] -[visit_exp i#114858] -[visit_id i#114858] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `RELAXED_LANESELECT`_vternop_] @@ -103503,25 +80805,15 @@ dims \ I = dim#28332, i#114851, i#114858, lanetype#28332, shape#4328 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#28359 i#114908 i#114915 lanetype#28359 shape#4330 -dims \ I = dim#28359, i#114908, i#114915, lanetype#28359, shape#4330 -[visit_exp `VTERNOP`_instr{shape#4330}(`%X%`_shape{lanetype#28359, dim#28359, i#114908}(`I16`_lanetype, `%`_dim{i#114915}(8)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp shape#4330] -[visit_id shape#4330] -[visit_exp (`%X%`_shape{lanetype#28359, dim#28359, i#114908}(`I16`_lanetype, `%`_dim{i#114915}(8)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape{lanetype#28359, dim#28359, i#114908}(`I16`_lanetype, `%`_dim{i#114915}(8))] -[visit_exp lanetype#28359] -[visit_id lanetype#28359] -[visit_exp dim#28359] -[visit_id dim#28359] -[visit_exp i#114908] -[visit_id i#114908] -[visit_exp (`I16`_lanetype, `%`_dim{i#114915}(8))] +[check_dims] I +dims \ I = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114915}(8)] -[visit_exp i#114915] -[visit_id i#114915] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `RELAXED_LANESELECT`_vternop_] @@ -103529,25 +80821,15 @@ dims \ I = dim#28359, i#114908, i#114915, lanetype#28359, shape#4330 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#28386 i#114965 i#114972 lanetype#28386 shape#4332 -dims \ I = dim#28386, i#114965, i#114972, lanetype#28386, shape#4332 -[visit_exp `VTERNOP`_instr{shape#4332}(`%X%`_shape{lanetype#28386, dim#28386, i#114965}(`I32`_lanetype, `%`_dim{i#114972}(4)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp shape#4332] -[visit_id shape#4332] -[visit_exp (`%X%`_shape{lanetype#28386, dim#28386, i#114965}(`I32`_lanetype, `%`_dim{i#114972}(4)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape{lanetype#28386, dim#28386, i#114965}(`I32`_lanetype, `%`_dim{i#114972}(4))] -[visit_exp lanetype#28386] -[visit_id lanetype#28386] -[visit_exp dim#28386] -[visit_id dim#28386] -[visit_exp i#114965] -[visit_id i#114965] -[visit_exp (`I32`_lanetype, `%`_dim{i#114972}(4))] +[check_dims] I +dims \ I = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#114972}(4)] -[visit_exp i#114972] -[visit_id i#114972] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `RELAXED_LANESELECT`_vternop_] @@ -103555,25 +80837,15 @@ dims \ I = dim#28386, i#114965, i#114972, lanetype#28386, shape#4332 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#28413 i#115022 i#115029 lanetype#28413 shape#4334 -dims \ I = dim#28413, i#115022, i#115029, lanetype#28413, shape#4334 -[visit_exp `VTERNOP`_instr{shape#4334}(`%X%`_shape{lanetype#28413, dim#28413, i#115022}(`I64`_lanetype, `%`_dim{i#115029}(2)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp shape#4334] -[visit_id shape#4334] -[visit_exp (`%X%`_shape{lanetype#28413, dim#28413, i#115022}(`I64`_lanetype, `%`_dim{i#115029}(2)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape{lanetype#28413, dim#28413, i#115022}(`I64`_lanetype, `%`_dim{i#115029}(2))] -[visit_exp lanetype#28413] -[visit_id lanetype#28413] -[visit_exp dim#28413] -[visit_id dim#28413] -[visit_exp i#115022] -[visit_id i#115022] -[visit_exp (`I64`_lanetype, `%`_dim{i#115029}(2))] +[check_dims] I +dims \ I = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `RELAXED_LANESELECT`_vternop_)] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#115029}(2)] -[visit_exp i#115029] -[visit_id i#115029] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `RELAXED_LANESELECT`_vternop_] @@ -103581,48 +80853,28 @@ dims \ I = dim#28413, i#115022, i#115029, lanetype#28413, shape#4334 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#28440 i#115079 i#115086 lanetype#28440 shape#4336 -dims \ I = dim#28440, i#115079, i#115086, lanetype#28440, shape#4336 -[visit_exp `VTERNOP`_instr{shape#4336}(`%X%`_shape{lanetype#28440, dim#28440, i#115079}(`F32`_lanetype, `%`_dim{i#115086}(4)), `RELAXED_MADD`_vternop_)] -[visit_exp shape#4336] -[visit_id shape#4336] -[visit_exp (`%X%`_shape{lanetype#28440, dim#28440, i#115079}(`F32`_lanetype, `%`_dim{i#115086}(4)), `RELAXED_MADD`_vternop_)] -[visit_exp `%X%`_shape{lanetype#28440, dim#28440, i#115079}(`F32`_lanetype, `%`_dim{i#115086}(4))] -[visit_exp lanetype#28440] -[visit_id lanetype#28440] -[visit_exp dim#28440] -[visit_id dim#28440] -[visit_exp i#115079] -[visit_id i#115079] -[visit_exp (`F32`_lanetype, `%`_dim{i#115086}(4))] +[check_dims] I +dims \ I = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MADD`_vternop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MADD`_vternop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#115086}(4)] -[visit_exp i#115086] -[visit_id i#115086] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `RELAXED_MADD`_vternop_] [visit_exp ()] -[check_dims] I dim#28482 i#115151 i#115158 lanetype#28482 shape#4338 -dims \ I = dim#28482, i#115151, i#115158, lanetype#28482, shape#4338 -[visit_exp `VTERNOP`_instr{shape#4338}(`%X%`_shape{lanetype#28482, dim#28482, i#115151}(`F32`_lanetype, `%`_dim{i#115158}(4)), `RELAXED_NMADD`_vternop_)] -[visit_exp shape#4338] -[visit_id shape#4338] -[visit_exp (`%X%`_shape{lanetype#28482, dim#28482, i#115151}(`F32`_lanetype, `%`_dim{i#115158}(4)), `RELAXED_NMADD`_vternop_)] -[visit_exp `%X%`_shape{lanetype#28482, dim#28482, i#115151}(`F32`_lanetype, `%`_dim{i#115158}(4))] -[visit_exp lanetype#28482] -[visit_id lanetype#28482] -[visit_exp dim#28482] -[visit_id dim#28482] -[visit_exp i#115151] -[visit_id i#115151] -[visit_exp (`F32`_lanetype, `%`_dim{i#115158}(4))] +[check_dims] I +dims \ I = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_NMADD`_vternop_)] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_NMADD`_vternop_)] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#115158}(4)] -[visit_exp i#115158] -[visit_id i#115158] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `RELAXED_NMADD`_vternop_] @@ -103630,48 +80882,28 @@ dims \ I = dim#28482, i#115151, i#115158, lanetype#28482, shape#4338 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#28524 i#115223 i#115230 lanetype#28524 shape#4340 -dims \ I = dim#28524, i#115223, i#115230, lanetype#28524, shape#4340 -[visit_exp `VTERNOP`_instr{shape#4340}(`%X%`_shape{lanetype#28524, dim#28524, i#115223}(`F64`_lanetype, `%`_dim{i#115230}(2)), `RELAXED_MADD`_vternop_)] -[visit_exp shape#4340] -[visit_id shape#4340] -[visit_exp (`%X%`_shape{lanetype#28524, dim#28524, i#115223}(`F64`_lanetype, `%`_dim{i#115230}(2)), `RELAXED_MADD`_vternop_)] -[visit_exp `%X%`_shape{lanetype#28524, dim#28524, i#115223}(`F64`_lanetype, `%`_dim{i#115230}(2))] -[visit_exp lanetype#28524] -[visit_id lanetype#28524] -[visit_exp dim#28524] -[visit_id dim#28524] -[visit_exp i#115223] -[visit_id i#115223] -[visit_exp (`F64`_lanetype, `%`_dim{i#115230}(2))] +[check_dims] I +dims \ I = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MADD`_vternop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MADD`_vternop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#115230}(2)] -[visit_exp i#115230] -[visit_id i#115230] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `RELAXED_MADD`_vternop_] [visit_exp ()] -[check_dims] I dim#28566 i#115295 i#115302 lanetype#28566 shape#4342 -dims \ I = dim#28566, i#115295, i#115302, lanetype#28566, shape#4342 -[visit_exp `VTERNOP`_instr{shape#4342}(`%X%`_shape{lanetype#28566, dim#28566, i#115295}(`F64`_lanetype, `%`_dim{i#115302}(2)), `RELAXED_NMADD`_vternop_)] -[visit_exp shape#4342] -[visit_id shape#4342] -[visit_exp (`%X%`_shape{lanetype#28566, dim#28566, i#115295}(`F64`_lanetype, `%`_dim{i#115302}(2)), `RELAXED_NMADD`_vternop_)] -[visit_exp `%X%`_shape{lanetype#28566, dim#28566, i#115295}(`F64`_lanetype, `%`_dim{i#115302}(2))] -[visit_exp lanetype#28566] -[visit_id lanetype#28566] -[visit_exp dim#28566] -[visit_id dim#28566] -[visit_exp i#115295] -[visit_id i#115295] -[visit_exp (`F64`_lanetype, `%`_dim{i#115302}(2))] +[check_dims] I +dims \ I = +[visit_exp `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_NMADD`_vternop_)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_NMADD`_vternop_)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#115302}(2)] -[visit_exp i#115302] -[visit_id i#115302] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `RELAXED_NMADD`_vternop_] @@ -103679,646 +80911,322 @@ dims \ I = dim#28566, i#115295, i#115302, lanetype#28566, shape#4342 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#488 dim#28608 i#115367 i#115374 ishape#45 lanetype#28608 shape#4354 -dims \ I = Jnn#488, dim#28608, i#115367, i#115374, ishape#45, lanetype#28608, shape#4354 -[visit_exp `VSHIFTOP`_instr{ishape#45}(`%`_ishape{shape#4354, Jnn#488}(`%X%`_shape{lanetype#28608, dim#28608, i#115367}(`I8`_lanetype, `%`_dim{i#115374}(16))), `SHL`_vshiftop_)] -[visit_exp ishape#45] -[visit_id ishape#45] -[visit_exp (`%`_ishape{shape#4354, Jnn#488}(`%X%`_shape{lanetype#28608, dim#28608, i#115367}(`I8`_lanetype, `%`_dim{i#115374}(16))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape{shape#4354, Jnn#488}(`%X%`_shape{lanetype#28608, dim#28608, i#115367}(`I8`_lanetype, `%`_dim{i#115374}(16)))] -[visit_exp shape#4354] -[visit_id shape#4354] -[visit_exp Jnn#488] -[visit_id Jnn#488] -[visit_exp (`%X%`_shape{lanetype#28608, dim#28608, i#115367}(`I8`_lanetype, `%`_dim{i#115374}(16)))] -[visit_exp `%X%`_shape{lanetype#28608, dim#28608, i#115367}(`I8`_lanetype, `%`_dim{i#115374}(16))] -[visit_exp lanetype#28608] -[visit_id lanetype#28608] -[visit_exp dim#28608] -[visit_id dim#28608] -[visit_exp i#115367] -[visit_id i#115367] -[visit_exp (`I8`_lanetype, `%`_dim{i#115374}(16))] +[check_dims] I +dims \ I = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHL`_vshiftop_)] +[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#115374}(16)] -[visit_exp i#115374] -[visit_id i#115374] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_exp `SHL`_vshiftop_] [visit_exp ()] -[check_dims] I Jnn#492 dim#28665 i#115454 i#115461 ishape#47 lanetype#28665 shape#4381 sx#29339 -dims \ I = Jnn#492, dim#28665, i#115454, i#115461, ishape#47, lanetype#28665, shape#4381, sx#29339 -[visit_exp `VSHIFTOP`_instr{ishape#47}(`%`_ishape{shape#4381, Jnn#492}(`%X%`_shape{lanetype#28665, dim#28665, i#115454}(`I8`_lanetype, `%`_dim{i#115461}(16))), `SHR`_vshiftop_{sx#29339}(`S`_sx))] -[visit_exp ishape#47] -[visit_id ishape#47] -[visit_exp (`%`_ishape{shape#4381, Jnn#492}(`%X%`_shape{lanetype#28665, dim#28665, i#115454}(`I8`_lanetype, `%`_dim{i#115461}(16))), `SHR`_vshiftop_{sx#29339}(`S`_sx))] -[visit_exp `%`_ishape{shape#4381, Jnn#492}(`%X%`_shape{lanetype#28665, dim#28665, i#115454}(`I8`_lanetype, `%`_dim{i#115461}(16)))] -[visit_exp shape#4381] -[visit_id shape#4381] -[visit_exp Jnn#492] -[visit_id Jnn#492] -[visit_exp (`%X%`_shape{lanetype#28665, dim#28665, i#115454}(`I8`_lanetype, `%`_dim{i#115461}(16)))] -[visit_exp `%X%`_shape{lanetype#28665, dim#28665, i#115454}(`I8`_lanetype, `%`_dim{i#115461}(16))] -[visit_exp lanetype#28665] -[visit_id lanetype#28665] -[visit_exp dim#28665] -[visit_id dim#28665] -[visit_exp i#115454] -[visit_id i#115454] -[visit_exp (`I8`_lanetype, `%`_dim{i#115461}(16))] +[check_dims] I +dims \ I = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#115461}(16)] -[visit_exp i#115461] -[visit_id i#115461] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `SHR`_vshiftop_{sx#29339}(`S`_sx)] -[visit_exp sx#29339] -[visit_id sx#29339] +[visit_exp `SHR`_vshiftop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#496 dim#28767 i#115616 i#115623 ishape#49 lanetype#28767 shape#4423 sx#29373 -dims \ I = Jnn#496, dim#28767, i#115616, i#115623, ishape#49, lanetype#28767, shape#4423, sx#29373 -[visit_exp `VSHIFTOP`_instr{ishape#49}(`%`_ishape{shape#4423, Jnn#496}(`%X%`_shape{lanetype#28767, dim#28767, i#115616}(`I8`_lanetype, `%`_dim{i#115623}(16))), `SHR`_vshiftop_{sx#29373}(`U`_sx))] -[visit_exp ishape#49] -[visit_id ishape#49] -[visit_exp (`%`_ishape{shape#4423, Jnn#496}(`%X%`_shape{lanetype#28767, dim#28767, i#115616}(`I8`_lanetype, `%`_dim{i#115623}(16))), `SHR`_vshiftop_{sx#29373}(`U`_sx))] -[visit_exp `%`_ishape{shape#4423, Jnn#496}(`%X%`_shape{lanetype#28767, dim#28767, i#115616}(`I8`_lanetype, `%`_dim{i#115623}(16)))] -[visit_exp shape#4423] -[visit_id shape#4423] -[visit_exp Jnn#496] -[visit_id Jnn#496] -[visit_exp (`%X%`_shape{lanetype#28767, dim#28767, i#115616}(`I8`_lanetype, `%`_dim{i#115623}(16)))] -[visit_exp `%X%`_shape{lanetype#28767, dim#28767, i#115616}(`I8`_lanetype, `%`_dim{i#115623}(16))] -[visit_exp lanetype#28767] -[visit_id lanetype#28767] -[visit_exp dim#28767] -[visit_id dim#28767] -[visit_exp i#115616] -[visit_id i#115616] -[visit_exp (`I8`_lanetype, `%`_dim{i#115623}(16))] +[check_dims] I +dims \ I = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#115623}(16)] -[visit_exp i#115623] -[visit_id i#115623] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `SHR`_vshiftop_{sx#29373}(`U`_sx)] -[visit_exp sx#29373] -[visit_id sx#29373] +[visit_exp `SHR`_vshiftop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#500 dim#28869 i#115778 i#115785 ishape#51 lanetype#28869 shape#4465 -dims \ I = Jnn#500, dim#28869, i#115778, i#115785, ishape#51, lanetype#28869, shape#4465 -[visit_exp `VSHIFTOP`_instr{ishape#51}(`%`_ishape{shape#4465, Jnn#500}(`%X%`_shape{lanetype#28869, dim#28869, i#115778}(`I16`_lanetype, `%`_dim{i#115785}(8))), `SHL`_vshiftop_)] -[visit_exp ishape#51] -[visit_id ishape#51] -[visit_exp (`%`_ishape{shape#4465, Jnn#500}(`%X%`_shape{lanetype#28869, dim#28869, i#115778}(`I16`_lanetype, `%`_dim{i#115785}(8))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape{shape#4465, Jnn#500}(`%X%`_shape{lanetype#28869, dim#28869, i#115778}(`I16`_lanetype, `%`_dim{i#115785}(8)))] -[visit_exp shape#4465] -[visit_id shape#4465] -[visit_exp Jnn#500] -[visit_id Jnn#500] -[visit_exp (`%X%`_shape{lanetype#28869, dim#28869, i#115778}(`I16`_lanetype, `%`_dim{i#115785}(8)))] -[visit_exp `%X%`_shape{lanetype#28869, dim#28869, i#115778}(`I16`_lanetype, `%`_dim{i#115785}(8))] -[visit_exp lanetype#28869] -[visit_id lanetype#28869] -[visit_exp dim#28869] -[visit_id dim#28869] -[visit_exp i#115778] -[visit_id i#115778] -[visit_exp (`I16`_lanetype, `%`_dim{i#115785}(8))] +[check_dims] I +dims \ I = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHL`_vshiftop_)] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#115785}(8)] -[visit_exp i#115785] -[visit_id i#115785] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `SHL`_vshiftop_] [visit_exp ()] -[check_dims] I Jnn#504 dim#28926 i#115865 i#115872 ishape#53 lanetype#28926 shape#4492 sx#29422 -dims \ I = Jnn#504, dim#28926, i#115865, i#115872, ishape#53, lanetype#28926, shape#4492, sx#29422 -[visit_exp `VSHIFTOP`_instr{ishape#53}(`%`_ishape{shape#4492, Jnn#504}(`%X%`_shape{lanetype#28926, dim#28926, i#115865}(`I16`_lanetype, `%`_dim{i#115872}(8))), `SHR`_vshiftop_{sx#29422}(`S`_sx))] -[visit_exp ishape#53] -[visit_id ishape#53] -[visit_exp (`%`_ishape{shape#4492, Jnn#504}(`%X%`_shape{lanetype#28926, dim#28926, i#115865}(`I16`_lanetype, `%`_dim{i#115872}(8))), `SHR`_vshiftop_{sx#29422}(`S`_sx))] -[visit_exp `%`_ishape{shape#4492, Jnn#504}(`%X%`_shape{lanetype#28926, dim#28926, i#115865}(`I16`_lanetype, `%`_dim{i#115872}(8)))] -[visit_exp shape#4492] -[visit_id shape#4492] -[visit_exp Jnn#504] -[visit_id Jnn#504] -[visit_exp (`%X%`_shape{lanetype#28926, dim#28926, i#115865}(`I16`_lanetype, `%`_dim{i#115872}(8)))] -[visit_exp `%X%`_shape{lanetype#28926, dim#28926, i#115865}(`I16`_lanetype, `%`_dim{i#115872}(8))] -[visit_exp lanetype#28926] -[visit_id lanetype#28926] -[visit_exp dim#28926] -[visit_id dim#28926] -[visit_exp i#115865] -[visit_id i#115865] -[visit_exp (`I16`_lanetype, `%`_dim{i#115872}(8))] +[check_dims] I +dims \ I = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#115872}(8)] -[visit_exp i#115872] -[visit_id i#115872] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `SHR`_vshiftop_{sx#29422}(`S`_sx)] -[visit_exp sx#29422] -[visit_id sx#29422] +[visit_exp `SHR`_vshiftop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#508 dim#29028 i#116027 i#116034 ishape#55 lanetype#29028 shape#4534 sx#29456 -dims \ I = Jnn#508, dim#29028, i#116027, i#116034, ishape#55, lanetype#29028, shape#4534, sx#29456 -[visit_exp `VSHIFTOP`_instr{ishape#55}(`%`_ishape{shape#4534, Jnn#508}(`%X%`_shape{lanetype#29028, dim#29028, i#116027}(`I16`_lanetype, `%`_dim{i#116034}(8))), `SHR`_vshiftop_{sx#29456}(`U`_sx))] -[visit_exp ishape#55] -[visit_id ishape#55] -[visit_exp (`%`_ishape{shape#4534, Jnn#508}(`%X%`_shape{lanetype#29028, dim#29028, i#116027}(`I16`_lanetype, `%`_dim{i#116034}(8))), `SHR`_vshiftop_{sx#29456}(`U`_sx))] -[visit_exp `%`_ishape{shape#4534, Jnn#508}(`%X%`_shape{lanetype#29028, dim#29028, i#116027}(`I16`_lanetype, `%`_dim{i#116034}(8)))] -[visit_exp shape#4534] -[visit_id shape#4534] -[visit_exp Jnn#508] -[visit_id Jnn#508] -[visit_exp (`%X%`_shape{lanetype#29028, dim#29028, i#116027}(`I16`_lanetype, `%`_dim{i#116034}(8)))] -[visit_exp `%X%`_shape{lanetype#29028, dim#29028, i#116027}(`I16`_lanetype, `%`_dim{i#116034}(8))] -[visit_exp lanetype#29028] -[visit_id lanetype#29028] -[visit_exp dim#29028] -[visit_id dim#29028] -[visit_exp i#116027] -[visit_id i#116027] -[visit_exp (`I16`_lanetype, `%`_dim{i#116034}(8))] +[check_dims] I +dims \ I = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#116034}(8)] -[visit_exp i#116034] -[visit_id i#116034] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `SHR`_vshiftop_{sx#29456}(`U`_sx)] -[visit_exp sx#29456] -[visit_id sx#29456] +[visit_exp `SHR`_vshiftop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#512 dim#29130 i#116189 i#116196 ishape#57 lanetype#29130 shape#4576 -dims \ I = Jnn#512, dim#29130, i#116189, i#116196, ishape#57, lanetype#29130, shape#4576 -[visit_exp `VSHIFTOP`_instr{ishape#57}(`%`_ishape{shape#4576, Jnn#512}(`%X%`_shape{lanetype#29130, dim#29130, i#116189}(`I32`_lanetype, `%`_dim{i#116196}(4))), `SHL`_vshiftop_)] -[visit_exp ishape#57] -[visit_id ishape#57] -[visit_exp (`%`_ishape{shape#4576, Jnn#512}(`%X%`_shape{lanetype#29130, dim#29130, i#116189}(`I32`_lanetype, `%`_dim{i#116196}(4))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape{shape#4576, Jnn#512}(`%X%`_shape{lanetype#29130, dim#29130, i#116189}(`I32`_lanetype, `%`_dim{i#116196}(4)))] -[visit_exp shape#4576] -[visit_id shape#4576] -[visit_exp Jnn#512] -[visit_id Jnn#512] -[visit_exp (`%X%`_shape{lanetype#29130, dim#29130, i#116189}(`I32`_lanetype, `%`_dim{i#116196}(4)))] -[visit_exp `%X%`_shape{lanetype#29130, dim#29130, i#116189}(`I32`_lanetype, `%`_dim{i#116196}(4))] -[visit_exp lanetype#29130] -[visit_id lanetype#29130] -[visit_exp dim#29130] -[visit_id dim#29130] -[visit_exp i#116189] -[visit_id i#116189] -[visit_exp (`I32`_lanetype, `%`_dim{i#116196}(4))] +[check_dims] I +dims \ I = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHL`_vshiftop_)] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#116196}(4)] -[visit_exp i#116196] -[visit_id i#116196] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `SHL`_vshiftop_] [visit_exp ()] -[check_dims] I Jnn#516 dim#29187 i#116276 i#116283 ishape#59 lanetype#29187 shape#4603 sx#29505 -dims \ I = Jnn#516, dim#29187, i#116276, i#116283, ishape#59, lanetype#29187, shape#4603, sx#29505 -[visit_exp `VSHIFTOP`_instr{ishape#59}(`%`_ishape{shape#4603, Jnn#516}(`%X%`_shape{lanetype#29187, dim#29187, i#116276}(`I32`_lanetype, `%`_dim{i#116283}(4))), `SHR`_vshiftop_{sx#29505}(`S`_sx))] -[visit_exp ishape#59] -[visit_id ishape#59] -[visit_exp (`%`_ishape{shape#4603, Jnn#516}(`%X%`_shape{lanetype#29187, dim#29187, i#116276}(`I32`_lanetype, `%`_dim{i#116283}(4))), `SHR`_vshiftop_{sx#29505}(`S`_sx))] -[visit_exp `%`_ishape{shape#4603, Jnn#516}(`%X%`_shape{lanetype#29187, dim#29187, i#116276}(`I32`_lanetype, `%`_dim{i#116283}(4)))] -[visit_exp shape#4603] -[visit_id shape#4603] -[visit_exp Jnn#516] -[visit_id Jnn#516] -[visit_exp (`%X%`_shape{lanetype#29187, dim#29187, i#116276}(`I32`_lanetype, `%`_dim{i#116283}(4)))] -[visit_exp `%X%`_shape{lanetype#29187, dim#29187, i#116276}(`I32`_lanetype, `%`_dim{i#116283}(4))] -[visit_exp lanetype#29187] -[visit_id lanetype#29187] -[visit_exp dim#29187] -[visit_id dim#29187] -[visit_exp i#116276] -[visit_id i#116276] -[visit_exp (`I32`_lanetype, `%`_dim{i#116283}(4))] +[check_dims] I +dims \ I = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#116283}(4)] -[visit_exp i#116283] -[visit_id i#116283] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `SHR`_vshiftop_{sx#29505}(`S`_sx)] -[visit_exp sx#29505] -[visit_id sx#29505] +[visit_exp `SHR`_vshiftop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#520 dim#29289 i#116438 i#116445 ishape#61 lanetype#29289 shape#4645 sx#29539 -dims \ I = Jnn#520, dim#29289, i#116438, i#116445, ishape#61, lanetype#29289, shape#4645, sx#29539 -[visit_exp `VSHIFTOP`_instr{ishape#61}(`%`_ishape{shape#4645, Jnn#520}(`%X%`_shape{lanetype#29289, dim#29289, i#116438}(`I32`_lanetype, `%`_dim{i#116445}(4))), `SHR`_vshiftop_{sx#29539}(`U`_sx))] -[visit_exp ishape#61] -[visit_id ishape#61] -[visit_exp (`%`_ishape{shape#4645, Jnn#520}(`%X%`_shape{lanetype#29289, dim#29289, i#116438}(`I32`_lanetype, `%`_dim{i#116445}(4))), `SHR`_vshiftop_{sx#29539}(`U`_sx))] -[visit_exp `%`_ishape{shape#4645, Jnn#520}(`%X%`_shape{lanetype#29289, dim#29289, i#116438}(`I32`_lanetype, `%`_dim{i#116445}(4)))] -[visit_exp shape#4645] -[visit_id shape#4645] -[visit_exp Jnn#520] -[visit_id Jnn#520] -[visit_exp (`%X%`_shape{lanetype#29289, dim#29289, i#116438}(`I32`_lanetype, `%`_dim{i#116445}(4)))] -[visit_exp `%X%`_shape{lanetype#29289, dim#29289, i#116438}(`I32`_lanetype, `%`_dim{i#116445}(4))] -[visit_exp lanetype#29289] -[visit_id lanetype#29289] -[visit_exp dim#29289] -[visit_id dim#29289] -[visit_exp i#116438] -[visit_id i#116438] -[visit_exp (`I32`_lanetype, `%`_dim{i#116445}(4))] +[check_dims] I +dims \ I = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#116445}(4)] -[visit_exp i#116445] -[visit_id i#116445] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `SHR`_vshiftop_{sx#29539}(`U`_sx)] -[visit_exp sx#29539] -[visit_id sx#29539] +[visit_exp `SHR`_vshiftop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#524 dim#29391 i#116600 i#116607 ishape#63 lanetype#29391 shape#4687 -dims \ I = Jnn#524, dim#29391, i#116600, i#116607, ishape#63, lanetype#29391, shape#4687 -[visit_exp `VSHIFTOP`_instr{ishape#63}(`%`_ishape{shape#4687, Jnn#524}(`%X%`_shape{lanetype#29391, dim#29391, i#116600}(`I64`_lanetype, `%`_dim{i#116607}(2))), `SHL`_vshiftop_)] -[visit_exp ishape#63] -[visit_id ishape#63] -[visit_exp (`%`_ishape{shape#4687, Jnn#524}(`%X%`_shape{lanetype#29391, dim#29391, i#116600}(`I64`_lanetype, `%`_dim{i#116607}(2))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape{shape#4687, Jnn#524}(`%X%`_shape{lanetype#29391, dim#29391, i#116600}(`I64`_lanetype, `%`_dim{i#116607}(2)))] -[visit_exp shape#4687] -[visit_id shape#4687] -[visit_exp Jnn#524] -[visit_id Jnn#524] -[visit_exp (`%X%`_shape{lanetype#29391, dim#29391, i#116600}(`I64`_lanetype, `%`_dim{i#116607}(2)))] -[visit_exp `%X%`_shape{lanetype#29391, dim#29391, i#116600}(`I64`_lanetype, `%`_dim{i#116607}(2))] -[visit_exp lanetype#29391] -[visit_id lanetype#29391] -[visit_exp dim#29391] -[visit_id dim#29391] -[visit_exp i#116600] -[visit_id i#116600] -[visit_exp (`I64`_lanetype, `%`_dim{i#116607}(2))] +[check_dims] I +dims \ I = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHL`_vshiftop_)] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHL`_vshiftop_)] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#116607}(2)] -[visit_exp i#116607] -[visit_id i#116607] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_exp `SHL`_vshiftop_] [visit_exp ()] -[check_dims] I Jnn#528 dim#29448 i#116687 i#116694 ishape#65 lanetype#29448 shape#4714 sx#29588 -dims \ I = Jnn#528, dim#29448, i#116687, i#116694, ishape#65, lanetype#29448, shape#4714, sx#29588 -[visit_exp `VSHIFTOP`_instr{ishape#65}(`%`_ishape{shape#4714, Jnn#528}(`%X%`_shape{lanetype#29448, dim#29448, i#116687}(`I64`_lanetype, `%`_dim{i#116694}(2))), `SHR`_vshiftop_{sx#29588}(`S`_sx))] -[visit_exp ishape#65] -[visit_id ishape#65] -[visit_exp (`%`_ishape{shape#4714, Jnn#528}(`%X%`_shape{lanetype#29448, dim#29448, i#116687}(`I64`_lanetype, `%`_dim{i#116694}(2))), `SHR`_vshiftop_{sx#29588}(`S`_sx))] -[visit_exp `%`_ishape{shape#4714, Jnn#528}(`%X%`_shape{lanetype#29448, dim#29448, i#116687}(`I64`_lanetype, `%`_dim{i#116694}(2)))] -[visit_exp shape#4714] -[visit_id shape#4714] -[visit_exp Jnn#528] -[visit_id Jnn#528] -[visit_exp (`%X%`_shape{lanetype#29448, dim#29448, i#116687}(`I64`_lanetype, `%`_dim{i#116694}(2)))] -[visit_exp `%X%`_shape{lanetype#29448, dim#29448, i#116687}(`I64`_lanetype, `%`_dim{i#116694}(2))] -[visit_exp lanetype#29448] -[visit_id lanetype#29448] -[visit_exp dim#29448] -[visit_id dim#29448] -[visit_exp i#116687] -[visit_id i#116687] -[visit_exp (`I64`_lanetype, `%`_dim{i#116694}(2))] +[check_dims] I +dims \ I = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#116694}(2)] -[visit_exp i#116694] -[visit_id i#116694] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `SHR`_vshiftop_{sx#29588}(`S`_sx)] -[visit_exp sx#29588] -[visit_id sx#29588] +[visit_exp `SHR`_vshiftop_(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#532 dim#29550 i#116849 i#116856 ishape#67 lanetype#29550 shape#4756 sx#29622 -dims \ I = Jnn#532, dim#29550, i#116849, i#116856, ishape#67, lanetype#29550, shape#4756, sx#29622 -[visit_exp `VSHIFTOP`_instr{ishape#67}(`%`_ishape{shape#4756, Jnn#532}(`%X%`_shape{lanetype#29550, dim#29550, i#116849}(`I64`_lanetype, `%`_dim{i#116856}(2))), `SHR`_vshiftop_{sx#29622}(`U`_sx))] -[visit_exp ishape#67] -[visit_id ishape#67] -[visit_exp (`%`_ishape{shape#4756, Jnn#532}(`%X%`_shape{lanetype#29550, dim#29550, i#116849}(`I64`_lanetype, `%`_dim{i#116856}(2))), `SHR`_vshiftop_{sx#29622}(`U`_sx))] -[visit_exp `%`_ishape{shape#4756, Jnn#532}(`%X%`_shape{lanetype#29550, dim#29550, i#116849}(`I64`_lanetype, `%`_dim{i#116856}(2)))] -[visit_exp shape#4756] -[visit_id shape#4756] -[visit_exp Jnn#532] -[visit_id Jnn#532] -[visit_exp (`%X%`_shape{lanetype#29550, dim#29550, i#116849}(`I64`_lanetype, `%`_dim{i#116856}(2)))] -[visit_exp `%X%`_shape{lanetype#29550, dim#29550, i#116849}(`I64`_lanetype, `%`_dim{i#116856}(2))] -[visit_exp lanetype#29550] -[visit_id lanetype#29550] -[visit_exp dim#29550] -[visit_id dim#29550] -[visit_exp i#116849] -[visit_id i#116849] -[visit_exp (`I64`_lanetype, `%`_dim{i#116856}(2))] +[check_dims] I +dims \ I = +[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#116856}(2)] -[visit_exp i#116856] -[visit_id i#116856] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `SHR`_vshiftop_{sx#29622}(`U`_sx)] -[visit_exp sx#29622] -[visit_id sx#29622] +[visit_exp `SHR`_vshiftop_(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#536 dim#29652 i#117011 i#117018 ishape#69 lanetype#29652 shape#4798 -dims \ I = Jnn#536, dim#29652, i#117011, i#117018, ishape#69, lanetype#29652, shape#4798 -[visit_exp `VBITMASK`_instr{ishape#69}(`%`_ishape{shape#4798, Jnn#536}(`%X%`_shape{lanetype#29652, dim#29652, i#117011}(`I8`_lanetype, `%`_dim{i#117018}(16))))] -[visit_exp ishape#69] -[visit_id ishape#69] -[visit_exp (`%`_ishape{shape#4798, Jnn#536}(`%X%`_shape{lanetype#29652, dim#29652, i#117011}(`I8`_lanetype, `%`_dim{i#117018}(16))))] -[visit_exp `%`_ishape{shape#4798, Jnn#536}(`%X%`_shape{lanetype#29652, dim#29652, i#117011}(`I8`_lanetype, `%`_dim{i#117018}(16)))] -[visit_exp shape#4798] -[visit_id shape#4798] -[visit_exp Jnn#536] -[visit_id Jnn#536] -[visit_exp (`%X%`_shape{lanetype#29652, dim#29652, i#117011}(`I8`_lanetype, `%`_dim{i#117018}(16)))] -[visit_exp `%X%`_shape{lanetype#29652, dim#29652, i#117011}(`I8`_lanetype, `%`_dim{i#117018}(16))] -[visit_exp lanetype#29652] -[visit_id lanetype#29652] -[visit_exp dim#29652] -[visit_id dim#29652] -[visit_exp i#117011] -[visit_id i#117011] -[visit_exp (`I8`_lanetype, `%`_dim{i#117018}(16))] +[check_dims] I +dims \ I = +[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))))] +[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117018}(16)] -[visit_exp i#117018] -[visit_id i#117018] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#540 dim#29664 i#117023 i#117030 ishape#71 lanetype#29664 shape#4810 -dims \ I = Jnn#540, dim#29664, i#117023, i#117030, ishape#71, lanetype#29664, shape#4810 -[visit_exp `VBITMASK`_instr{ishape#71}(`%`_ishape{shape#4810, Jnn#540}(`%X%`_shape{lanetype#29664, dim#29664, i#117023}(`I16`_lanetype, `%`_dim{i#117030}(8))))] -[visit_exp ishape#71] -[visit_id ishape#71] -[visit_exp (`%`_ishape{shape#4810, Jnn#540}(`%X%`_shape{lanetype#29664, dim#29664, i#117023}(`I16`_lanetype, `%`_dim{i#117030}(8))))] -[visit_exp `%`_ishape{shape#4810, Jnn#540}(`%X%`_shape{lanetype#29664, dim#29664, i#117023}(`I16`_lanetype, `%`_dim{i#117030}(8)))] -[visit_exp shape#4810] -[visit_id shape#4810] -[visit_exp Jnn#540] -[visit_id Jnn#540] -[visit_exp (`%X%`_shape{lanetype#29664, dim#29664, i#117023}(`I16`_lanetype, `%`_dim{i#117030}(8)))] -[visit_exp `%X%`_shape{lanetype#29664, dim#29664, i#117023}(`I16`_lanetype, `%`_dim{i#117030}(8))] -[visit_exp lanetype#29664] -[visit_id lanetype#29664] -[visit_exp dim#29664] -[visit_id dim#29664] -[visit_exp i#117023] -[visit_id i#117023] -[visit_exp (`I16`_lanetype, `%`_dim{i#117030}(8))] +[check_dims] I +dims \ I = +[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117030}(8)] -[visit_exp i#117030] -[visit_id i#117030] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#544 dim#29676 i#117035 i#117042 ishape#73 lanetype#29676 shape#4822 -dims \ I = Jnn#544, dim#29676, i#117035, i#117042, ishape#73, lanetype#29676, shape#4822 -[visit_exp `VBITMASK`_instr{ishape#73}(`%`_ishape{shape#4822, Jnn#544}(`%X%`_shape{lanetype#29676, dim#29676, i#117035}(`I32`_lanetype, `%`_dim{i#117042}(4))))] -[visit_exp ishape#73] -[visit_id ishape#73] -[visit_exp (`%`_ishape{shape#4822, Jnn#544}(`%X%`_shape{lanetype#29676, dim#29676, i#117035}(`I32`_lanetype, `%`_dim{i#117042}(4))))] -[visit_exp `%`_ishape{shape#4822, Jnn#544}(`%X%`_shape{lanetype#29676, dim#29676, i#117035}(`I32`_lanetype, `%`_dim{i#117042}(4)))] -[visit_exp shape#4822] -[visit_id shape#4822] -[visit_exp Jnn#544] -[visit_id Jnn#544] -[visit_exp (`%X%`_shape{lanetype#29676, dim#29676, i#117035}(`I32`_lanetype, `%`_dim{i#117042}(4)))] -[visit_exp `%X%`_shape{lanetype#29676, dim#29676, i#117035}(`I32`_lanetype, `%`_dim{i#117042}(4))] -[visit_exp lanetype#29676] -[visit_id lanetype#29676] -[visit_exp dim#29676] -[visit_id dim#29676] -[visit_exp i#117035] -[visit_id i#117035] -[visit_exp (`I32`_lanetype, `%`_dim{i#117042}(4))] +[check_dims] I +dims \ I = +[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117042}(4)] -[visit_exp i#117042] -[visit_id i#117042] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#548 dim#29688 i#117047 i#117054 ishape#75 lanetype#29688 shape#4834 -dims \ I = Jnn#548, dim#29688, i#117047, i#117054, ishape#75, lanetype#29688, shape#4834 -[visit_exp `VBITMASK`_instr{ishape#75}(`%`_ishape{shape#4834, Jnn#548}(`%X%`_shape{lanetype#29688, dim#29688, i#117047}(`I64`_lanetype, `%`_dim{i#117054}(2))))] -[visit_exp ishape#75] -[visit_id ishape#75] -[visit_exp (`%`_ishape{shape#4834, Jnn#548}(`%X%`_shape{lanetype#29688, dim#29688, i#117047}(`I64`_lanetype, `%`_dim{i#117054}(2))))] -[visit_exp `%`_ishape{shape#4834, Jnn#548}(`%X%`_shape{lanetype#29688, dim#29688, i#117047}(`I64`_lanetype, `%`_dim{i#117054}(2)))] -[visit_exp shape#4834] -[visit_id shape#4834] -[visit_exp Jnn#548] -[visit_id Jnn#548] -[visit_exp (`%X%`_shape{lanetype#29688, dim#29688, i#117047}(`I64`_lanetype, `%`_dim{i#117054}(2)))] -[visit_exp `%X%`_shape{lanetype#29688, dim#29688, i#117047}(`I64`_lanetype, `%`_dim{i#117054}(2))] -[visit_exp lanetype#29688] -[visit_id lanetype#29688] -[visit_exp dim#29688] -[visit_id dim#29688] -[visit_exp i#117047] -[visit_id i#117047] -[visit_exp (`I64`_lanetype, `%`_dim{i#117054}(2))] +[check_dims] I +dims \ I = +[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117054}(2)] -[visit_exp i#117054] -[visit_id i#117054] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#549 Jnn#550 Jnn#551 Jnn#555 Jnn#559 dim#29700 dim#29712 i#117059 i#117066 i#117071 i#117078 ishape_1#71 ishape_2#71 lanetype#29700 lanetype#29712 shape#4836 shape#4837 shape#4838 shape#4849 shape#4861 sx#29624 -dims \ I = Jnn#549, Jnn#550, Jnn#551, Jnn#555, Jnn#559, dim#29700, dim#29712, i#117059, i#117066, i#117071, i#117078, ishape_1#71, ishape_2#71, lanetype#29700, lanetype#29712, shape#4836, shape#4837, shape#4838, shape#4849, shape#4861, sx#29624 -[visit_exp `VNARROW`_instr{ishape_1#71, ishape_2#71, sx#29624, shape#4836, Jnn#549, shape#4837, Jnn#550, shape#4838, Jnn#551}(`%`_ishape{shape#4849, Jnn#555}(`%X%`_shape{lanetype#29700, dim#29700, i#117059}(`I8`_lanetype, `%`_dim{i#117066}(16))), `%`_ishape{shape#4861, Jnn#559}(`%X%`_shape{lanetype#29712, dim#29712, i#117071}(`I16`_lanetype, `%`_dim{i#117078}(8))), `S`_sx)] -[visit_exp ishape_1#71] -[visit_id ishape_1#71] -[visit_exp ishape_2#71] -[visit_id ishape_2#71] -[visit_exp sx#29624] -[visit_id sx#29624] -[visit_exp shape#4836] -[visit_id shape#4836] -[visit_exp Jnn#549] -[visit_id Jnn#549] -[visit_exp shape#4837] -[visit_id shape#4837] -[visit_exp Jnn#550] -[visit_id Jnn#550] -[visit_exp shape#4838] -[visit_id shape#4838] -[visit_exp Jnn#551] -[visit_id Jnn#551] -[visit_exp (`%`_ishape{shape#4849, Jnn#555}(`%X%`_shape{lanetype#29700, dim#29700, i#117059}(`I8`_lanetype, `%`_dim{i#117066}(16))), `%`_ishape{shape#4861, Jnn#559}(`%X%`_shape{lanetype#29712, dim#29712, i#117071}(`I16`_lanetype, `%`_dim{i#117078}(8))), `S`_sx)] -[visit_exp `%`_ishape{shape#4849, Jnn#555}(`%X%`_shape{lanetype#29700, dim#29700, i#117059}(`I8`_lanetype, `%`_dim{i#117066}(16)))] -[visit_exp shape#4849] -[visit_id shape#4849] -[visit_exp Jnn#555] -[visit_id Jnn#555] -[visit_exp (`%X%`_shape{lanetype#29700, dim#29700, i#117059}(`I8`_lanetype, `%`_dim{i#117066}(16)))] -[visit_exp `%X%`_shape{lanetype#29700, dim#29700, i#117059}(`I8`_lanetype, `%`_dim{i#117066}(16))] -[visit_exp lanetype#29700] -[visit_id lanetype#29700] -[visit_exp dim#29700] -[visit_id dim#29700] -[visit_exp i#117059] -[visit_id i#117059] -[visit_exp (`I8`_lanetype, `%`_dim{i#117066}(16))] +[check_dims] I +dims \ I = +[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `S`_sx)] +[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `S`_sx)] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117066}(16)] -[visit_exp i#117066] -[visit_id i#117066] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `%`_ishape{shape#4861, Jnn#559}(`%X%`_shape{lanetype#29712, dim#29712, i#117071}(`I16`_lanetype, `%`_dim{i#117078}(8)))] -[visit_exp shape#4861] -[visit_id shape#4861] -[visit_exp Jnn#559] -[visit_id Jnn#559] -[visit_exp (`%X%`_shape{lanetype#29712, dim#29712, i#117071}(`I16`_lanetype, `%`_dim{i#117078}(8)))] -[visit_exp `%X%`_shape{lanetype#29712, dim#29712, i#117071}(`I16`_lanetype, `%`_dim{i#117078}(8))] -[visit_exp lanetype#29712] -[visit_id lanetype#29712] -[visit_exp dim#29712] -[visit_id dim#29712] -[visit_exp i#117071] -[visit_id i#117071] -[visit_exp (`I16`_lanetype, `%`_dim{i#117078}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117078}(8)] -[visit_exp i#117078] -[visit_id i#117078] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#560 Jnn#561 Jnn#562 Jnn#566 Jnn#570 dim#29724 dim#29736 i#117083 i#117090 i#117095 i#117102 ishape_1#73 ishape_2#73 lanetype#29724 lanetype#29736 shape#4863 shape#4864 shape#4865 shape#4876 shape#4888 sx#29626 -dims \ I = Jnn#560, Jnn#561, Jnn#562, Jnn#566, Jnn#570, dim#29724, dim#29736, i#117083, i#117090, i#117095, i#117102, ishape_1#73, ishape_2#73, lanetype#29724, lanetype#29736, shape#4863, shape#4864, shape#4865, shape#4876, shape#4888, sx#29626 -[visit_exp `VNARROW`_instr{ishape_1#73, ishape_2#73, sx#29626, shape#4863, Jnn#560, shape#4864, Jnn#561, shape#4865, Jnn#562}(`%`_ishape{shape#4876, Jnn#566}(`%X%`_shape{lanetype#29724, dim#29724, i#117083}(`I8`_lanetype, `%`_dim{i#117090}(16))), `%`_ishape{shape#4888, Jnn#570}(`%X%`_shape{lanetype#29736, dim#29736, i#117095}(`I16`_lanetype, `%`_dim{i#117102}(8))), `U`_sx)] -[visit_exp ishape_1#73] -[visit_id ishape_1#73] -[visit_exp ishape_2#73] -[visit_id ishape_2#73] -[visit_exp sx#29626] -[visit_id sx#29626] -[visit_exp shape#4863] -[visit_id shape#4863] -[visit_exp Jnn#560] -[visit_id Jnn#560] -[visit_exp shape#4864] -[visit_id shape#4864] -[visit_exp Jnn#561] -[visit_id Jnn#561] -[visit_exp shape#4865] -[visit_id shape#4865] -[visit_exp Jnn#562] -[visit_id Jnn#562] -[visit_exp (`%`_ishape{shape#4876, Jnn#566}(`%X%`_shape{lanetype#29724, dim#29724, i#117083}(`I8`_lanetype, `%`_dim{i#117090}(16))), `%`_ishape{shape#4888, Jnn#570}(`%X%`_shape{lanetype#29736, dim#29736, i#117095}(`I16`_lanetype, `%`_dim{i#117102}(8))), `U`_sx)] -[visit_exp `%`_ishape{shape#4876, Jnn#566}(`%X%`_shape{lanetype#29724, dim#29724, i#117083}(`I8`_lanetype, `%`_dim{i#117090}(16)))] -[visit_exp shape#4876] -[visit_id shape#4876] -[visit_exp Jnn#566] -[visit_id Jnn#566] -[visit_exp (`%X%`_shape{lanetype#29724, dim#29724, i#117083}(`I8`_lanetype, `%`_dim{i#117090}(16)))] -[visit_exp `%X%`_shape{lanetype#29724, dim#29724, i#117083}(`I8`_lanetype, `%`_dim{i#117090}(16))] -[visit_exp lanetype#29724] -[visit_id lanetype#29724] -[visit_exp dim#29724] -[visit_id dim#29724] -[visit_exp i#117083] -[visit_id i#117083] -[visit_exp (`I8`_lanetype, `%`_dim{i#117090}(16))] +[check_dims] I +dims \ I = +[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `U`_sx)] +[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `U`_sx)] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117090}(16)] -[visit_exp i#117090] -[visit_id i#117090] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `%`_ishape{shape#4888, Jnn#570}(`%X%`_shape{lanetype#29736, dim#29736, i#117095}(`I16`_lanetype, `%`_dim{i#117102}(8)))] -[visit_exp shape#4888] -[visit_id shape#4888] -[visit_exp Jnn#570] -[visit_id Jnn#570] -[visit_exp (`%X%`_shape{lanetype#29736, dim#29736, i#117095}(`I16`_lanetype, `%`_dim{i#117102}(8)))] -[visit_exp `%X%`_shape{lanetype#29736, dim#29736, i#117095}(`I16`_lanetype, `%`_dim{i#117102}(8))] -[visit_exp lanetype#29736] -[visit_id lanetype#29736] -[visit_exp dim#29736] -[visit_id dim#29736] -[visit_exp i#117095] -[visit_id i#117095] -[visit_exp (`I16`_lanetype, `%`_dim{i#117102}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117102}(8)] -[visit_exp i#117102] -[visit_id i#117102] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `U`_sx] @@ -104326,134 +81234,50 @@ dims \ I = Jnn#560, Jnn#561, Jnn#562, Jnn#566, Jnn#570, dim#29724, dim#29736, i# [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#571 Jnn#572 Jnn#573 Jnn#577 Jnn#581 dim#29748 dim#29760 i#117107 i#117114 i#117119 i#117126 ishape_1#75 ishape_2#75 lanetype#29748 lanetype#29760 shape#4890 shape#4891 shape#4892 shape#4903 shape#4915 sx#29628 -dims \ I = Jnn#571, Jnn#572, Jnn#573, Jnn#577, Jnn#581, dim#29748, dim#29760, i#117107, i#117114, i#117119, i#117126, ishape_1#75, ishape_2#75, lanetype#29748, lanetype#29760, shape#4890, shape#4891, shape#4892, shape#4903, shape#4915, sx#29628 -[visit_exp `VNARROW`_instr{ishape_1#75, ishape_2#75, sx#29628, shape#4890, Jnn#571, shape#4891, Jnn#572, shape#4892, Jnn#573}(`%`_ishape{shape#4903, Jnn#577}(`%X%`_shape{lanetype#29748, dim#29748, i#117107}(`I16`_lanetype, `%`_dim{i#117114}(8))), `%`_ishape{shape#4915, Jnn#581}(`%X%`_shape{lanetype#29760, dim#29760, i#117119}(`I32`_lanetype, `%`_dim{i#117126}(4))), `S`_sx)] -[visit_exp ishape_1#75] -[visit_id ishape_1#75] -[visit_exp ishape_2#75] -[visit_id ishape_2#75] -[visit_exp sx#29628] -[visit_id sx#29628] -[visit_exp shape#4890] -[visit_id shape#4890] -[visit_exp Jnn#571] -[visit_id Jnn#571] -[visit_exp shape#4891] -[visit_id shape#4891] -[visit_exp Jnn#572] -[visit_id Jnn#572] -[visit_exp shape#4892] -[visit_id shape#4892] -[visit_exp Jnn#573] -[visit_id Jnn#573] -[visit_exp (`%`_ishape{shape#4903, Jnn#577}(`%X%`_shape{lanetype#29748, dim#29748, i#117107}(`I16`_lanetype, `%`_dim{i#117114}(8))), `%`_ishape{shape#4915, Jnn#581}(`%X%`_shape{lanetype#29760, dim#29760, i#117119}(`I32`_lanetype, `%`_dim{i#117126}(4))), `S`_sx)] -[visit_exp `%`_ishape{shape#4903, Jnn#577}(`%X%`_shape{lanetype#29748, dim#29748, i#117107}(`I16`_lanetype, `%`_dim{i#117114}(8)))] -[visit_exp shape#4903] -[visit_id shape#4903] -[visit_exp Jnn#577] -[visit_id Jnn#577] -[visit_exp (`%X%`_shape{lanetype#29748, dim#29748, i#117107}(`I16`_lanetype, `%`_dim{i#117114}(8)))] -[visit_exp `%X%`_shape{lanetype#29748, dim#29748, i#117107}(`I16`_lanetype, `%`_dim{i#117114}(8))] -[visit_exp lanetype#29748] -[visit_id lanetype#29748] -[visit_exp dim#29748] -[visit_id dim#29748] -[visit_exp i#117107] -[visit_id i#117107] -[visit_exp (`I16`_lanetype, `%`_dim{i#117114}(8))] +[check_dims] I +dims \ I = +[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `S`_sx)] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `S`_sx)] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117114}(8)] -[visit_exp i#117114] -[visit_id i#117114] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#4915, Jnn#581}(`%X%`_shape{lanetype#29760, dim#29760, i#117119}(`I32`_lanetype, `%`_dim{i#117126}(4)))] -[visit_exp shape#4915] -[visit_id shape#4915] -[visit_exp Jnn#581] -[visit_id Jnn#581] -[visit_exp (`%X%`_shape{lanetype#29760, dim#29760, i#117119}(`I32`_lanetype, `%`_dim{i#117126}(4)))] -[visit_exp `%X%`_shape{lanetype#29760, dim#29760, i#117119}(`I32`_lanetype, `%`_dim{i#117126}(4))] -[visit_exp lanetype#29760] -[visit_id lanetype#29760] -[visit_exp dim#29760] -[visit_id dim#29760] -[visit_exp i#117119] -[visit_id i#117119] -[visit_exp (`I32`_lanetype, `%`_dim{i#117126}(4))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117126}(4)] -[visit_exp i#117126] -[visit_id i#117126] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#582 Jnn#583 Jnn#584 Jnn#588 Jnn#592 dim#29772 dim#29784 i#117131 i#117138 i#117143 i#117150 ishape_1#77 ishape_2#77 lanetype#29772 lanetype#29784 shape#4917 shape#4918 shape#4919 shape#4930 shape#4942 sx#29630 -dims \ I = Jnn#582, Jnn#583, Jnn#584, Jnn#588, Jnn#592, dim#29772, dim#29784, i#117131, i#117138, i#117143, i#117150, ishape_1#77, ishape_2#77, lanetype#29772, lanetype#29784, shape#4917, shape#4918, shape#4919, shape#4930, shape#4942, sx#29630 -[visit_exp `VNARROW`_instr{ishape_1#77, ishape_2#77, sx#29630, shape#4917, Jnn#582, shape#4918, Jnn#583, shape#4919, Jnn#584}(`%`_ishape{shape#4930, Jnn#588}(`%X%`_shape{lanetype#29772, dim#29772, i#117131}(`I16`_lanetype, `%`_dim{i#117138}(8))), `%`_ishape{shape#4942, Jnn#592}(`%X%`_shape{lanetype#29784, dim#29784, i#117143}(`I32`_lanetype, `%`_dim{i#117150}(4))), `U`_sx)] -[visit_exp ishape_1#77] -[visit_id ishape_1#77] -[visit_exp ishape_2#77] -[visit_id ishape_2#77] -[visit_exp sx#29630] -[visit_id sx#29630] -[visit_exp shape#4917] -[visit_id shape#4917] -[visit_exp Jnn#582] -[visit_id Jnn#582] -[visit_exp shape#4918] -[visit_id shape#4918] -[visit_exp Jnn#583] -[visit_id Jnn#583] -[visit_exp shape#4919] -[visit_id shape#4919] -[visit_exp Jnn#584] -[visit_id Jnn#584] -[visit_exp (`%`_ishape{shape#4930, Jnn#588}(`%X%`_shape{lanetype#29772, dim#29772, i#117131}(`I16`_lanetype, `%`_dim{i#117138}(8))), `%`_ishape{shape#4942, Jnn#592}(`%X%`_shape{lanetype#29784, dim#29784, i#117143}(`I32`_lanetype, `%`_dim{i#117150}(4))), `U`_sx)] -[visit_exp `%`_ishape{shape#4930, Jnn#588}(`%X%`_shape{lanetype#29772, dim#29772, i#117131}(`I16`_lanetype, `%`_dim{i#117138}(8)))] -[visit_exp shape#4930] -[visit_id shape#4930] -[visit_exp Jnn#588] -[visit_id Jnn#588] -[visit_exp (`%X%`_shape{lanetype#29772, dim#29772, i#117131}(`I16`_lanetype, `%`_dim{i#117138}(8)))] -[visit_exp `%X%`_shape{lanetype#29772, dim#29772, i#117131}(`I16`_lanetype, `%`_dim{i#117138}(8))] -[visit_exp lanetype#29772] -[visit_id lanetype#29772] -[visit_exp dim#29772] -[visit_id dim#29772] -[visit_exp i#117131] -[visit_id i#117131] -[visit_exp (`I16`_lanetype, `%`_dim{i#117138}(8))] +[check_dims] I +dims \ I = +[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `U`_sx)] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `U`_sx)] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117138}(8)] -[visit_exp i#117138] -[visit_id i#117138] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#4942, Jnn#592}(`%X%`_shape{lanetype#29784, dim#29784, i#117143}(`I32`_lanetype, `%`_dim{i#117150}(4)))] -[visit_exp shape#4942] -[visit_id shape#4942] -[visit_exp Jnn#592] -[visit_id Jnn#592] -[visit_exp (`%X%`_shape{lanetype#29784, dim#29784, i#117143}(`I32`_lanetype, `%`_dim{i#117150}(4)))] -[visit_exp `%X%`_shape{lanetype#29784, dim#29784, i#117143}(`I32`_lanetype, `%`_dim{i#117150}(4))] -[visit_exp lanetype#29784] -[visit_id lanetype#29784] -[visit_exp dim#29784] -[visit_id dim#29784] -[visit_exp i#117143] -[visit_id i#117143] -[visit_exp (`I32`_lanetype, `%`_dim{i#117150}(4))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117150}(4)] -[visit_exp i#117150] -[visit_id i#117150] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `U`_sx] @@ -104464,193 +81288,97 @@ ps' = (I : I) [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#29796 dim#29808 half#1172 i#117155 i#117162 i#117167 i#117174 lanetype#29796 lanetype#29808 shape_1#59 shape_2#59 sx#29664 -dims \ I = dim#29796, dim#29808, half#1172, i#117155, i#117162, i#117167, i#117174, lanetype#29796, lanetype#29808, shape_1#59, shape_2#59, sx#29664 -[visit_exp `VCVTOP`_instr{shape_1#59, shape_2#59}(`%X%`_shape{lanetype#29796, dim#29796, i#117155}(`I16`_lanetype, `%`_dim{i#117162}(8)), `%X%`_shape{lanetype#29808, dim#29808, i#117167}(`I8`_lanetype, `%`_dim{i#117174}(16)), `EXTEND`_vcvtop__{half#1172, sx#29664}(`LOW`_half, `S`_sx))] -[visit_exp shape_1#59] -[visit_id shape_1#59] -[visit_exp shape_2#59] -[visit_id shape_2#59] -[visit_exp (`%X%`_shape{lanetype#29796, dim#29796, i#117155}(`I16`_lanetype, `%`_dim{i#117162}(8)), `%X%`_shape{lanetype#29808, dim#29808, i#117167}(`I8`_lanetype, `%`_dim{i#117174}(16)), `EXTEND`_vcvtop__{half#1172, sx#29664}(`LOW`_half, `S`_sx))] -[visit_exp `%X%`_shape{lanetype#29796, dim#29796, i#117155}(`I16`_lanetype, `%`_dim{i#117162}(8))] -[visit_exp lanetype#29796] -[visit_id lanetype#29796] -[visit_exp dim#29796] -[visit_id dim#29796] -[visit_exp i#117155] -[visit_id i#117155] -[visit_exp (`I16`_lanetype, `%`_dim{i#117162}(8))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117162}(8)] -[visit_exp i#117162] -[visit_id i#117162] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%X%`_shape{lanetype#29808, dim#29808, i#117167}(`I8`_lanetype, `%`_dim{i#117174}(16))] -[visit_exp lanetype#29808] -[visit_id lanetype#29808] -[visit_exp dim#29808] -[visit_id dim#29808] -[visit_exp i#117167] -[visit_id i#117167] -[visit_exp (`I8`_lanetype, `%`_dim{i#117174}(16))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117174}(16)] -[visit_exp i#117174] -[visit_id i#117174] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTEND`_vcvtop__{half#1172, sx#29664}(`LOW`_half, `S`_sx)] -[visit_exp half#1172] -[visit_id half#1172] -[visit_exp sx#29664] -[visit_id sx#29664] +[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)] [visit_exp (`LOW`_half, `S`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#29911 dim#29923 half#1206 i#117390 i#117397 i#117402 i#117409 lanetype#29911 lanetype#29923 shape_1#61 shape_2#61 sx#29698 -dims \ I = dim#29911, dim#29923, half#1206, i#117390, i#117397, i#117402, i#117409, lanetype#29911, lanetype#29923, shape_1#61, shape_2#61, sx#29698 -[visit_exp `VCVTOP`_instr{shape_1#61, shape_2#61}(`%X%`_shape{lanetype#29911, dim#29911, i#117390}(`I16`_lanetype, `%`_dim{i#117397}(8)), `%X%`_shape{lanetype#29923, dim#29923, i#117402}(`I8`_lanetype, `%`_dim{i#117409}(16)), `EXTEND`_vcvtop__{half#1206, sx#29698}(`LOW`_half, `U`_sx))] -[visit_exp shape_1#61] -[visit_id shape_1#61] -[visit_exp shape_2#61] -[visit_id shape_2#61] -[visit_exp (`%X%`_shape{lanetype#29911, dim#29911, i#117390}(`I16`_lanetype, `%`_dim{i#117397}(8)), `%X%`_shape{lanetype#29923, dim#29923, i#117402}(`I8`_lanetype, `%`_dim{i#117409}(16)), `EXTEND`_vcvtop__{half#1206, sx#29698}(`LOW`_half, `U`_sx))] -[visit_exp `%X%`_shape{lanetype#29911, dim#29911, i#117390}(`I16`_lanetype, `%`_dim{i#117397}(8))] -[visit_exp lanetype#29911] -[visit_id lanetype#29911] -[visit_exp dim#29911] -[visit_id dim#29911] -[visit_exp i#117390] -[visit_id i#117390] -[visit_exp (`I16`_lanetype, `%`_dim{i#117397}(8))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117397}(8)] -[visit_exp i#117397] -[visit_id i#117397] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%X%`_shape{lanetype#29923, dim#29923, i#117402}(`I8`_lanetype, `%`_dim{i#117409}(16))] -[visit_exp lanetype#29923] -[visit_id lanetype#29923] -[visit_exp dim#29923] -[visit_id dim#29923] -[visit_exp i#117402] -[visit_id i#117402] -[visit_exp (`I8`_lanetype, `%`_dim{i#117409}(16))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117409}(16)] -[visit_exp i#117409] -[visit_id i#117409] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTEND`_vcvtop__{half#1206, sx#29698}(`LOW`_half, `U`_sx)] -[visit_exp half#1206] -[visit_id half#1206] -[visit_exp sx#29698] -[visit_id sx#29698] +[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)] [visit_exp (`LOW`_half, `U`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#30026 dim#30038 half#1240 i#117625 i#117632 i#117637 i#117644 lanetype#30026 lanetype#30038 shape_1#63 shape_2#63 sx#29732 -dims \ I = dim#30026, dim#30038, half#1240, i#117625, i#117632, i#117637, i#117644, lanetype#30026, lanetype#30038, shape_1#63, shape_2#63, sx#29732 -[visit_exp `VCVTOP`_instr{shape_1#63, shape_2#63}(`%X%`_shape{lanetype#30026, dim#30026, i#117625}(`I16`_lanetype, `%`_dim{i#117632}(8)), `%X%`_shape{lanetype#30038, dim#30038, i#117637}(`I8`_lanetype, `%`_dim{i#117644}(16)), `EXTEND`_vcvtop__{half#1240, sx#29732}(`HIGH`_half, `S`_sx))] -[visit_exp shape_1#63] -[visit_id shape_1#63] -[visit_exp shape_2#63] -[visit_id shape_2#63] -[visit_exp (`%X%`_shape{lanetype#30026, dim#30026, i#117625}(`I16`_lanetype, `%`_dim{i#117632}(8)), `%X%`_shape{lanetype#30038, dim#30038, i#117637}(`I8`_lanetype, `%`_dim{i#117644}(16)), `EXTEND`_vcvtop__{half#1240, sx#29732}(`HIGH`_half, `S`_sx))] -[visit_exp `%X%`_shape{lanetype#30026, dim#30026, i#117625}(`I16`_lanetype, `%`_dim{i#117632}(8))] -[visit_exp lanetype#30026] -[visit_id lanetype#30026] -[visit_exp dim#30026] -[visit_id dim#30026] -[visit_exp i#117625] -[visit_id i#117625] -[visit_exp (`I16`_lanetype, `%`_dim{i#117632}(8))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117632}(8)] -[visit_exp i#117632] -[visit_id i#117632] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%X%`_shape{lanetype#30038, dim#30038, i#117637}(`I8`_lanetype, `%`_dim{i#117644}(16))] -[visit_exp lanetype#30038] -[visit_id lanetype#30038] -[visit_exp dim#30038] -[visit_id dim#30038] -[visit_exp i#117637] -[visit_id i#117637] -[visit_exp (`I8`_lanetype, `%`_dim{i#117644}(16))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117644}(16)] -[visit_exp i#117644] -[visit_id i#117644] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTEND`_vcvtop__{half#1240, sx#29732}(`HIGH`_half, `S`_sx)] -[visit_exp half#1240] -[visit_id half#1240] -[visit_exp sx#29732] -[visit_id sx#29732] +[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)] [visit_exp (`HIGH`_half, `S`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#30141 dim#30153 half#1274 i#117860 i#117867 i#117872 i#117879 lanetype#30141 lanetype#30153 shape_1#65 shape_2#65 sx#29766 -dims \ I = dim#30141, dim#30153, half#1274, i#117860, i#117867, i#117872, i#117879, lanetype#30141, lanetype#30153, shape_1#65, shape_2#65, sx#29766 -[visit_exp `VCVTOP`_instr{shape_1#65, shape_2#65}(`%X%`_shape{lanetype#30141, dim#30141, i#117860}(`I16`_lanetype, `%`_dim{i#117867}(8)), `%X%`_shape{lanetype#30153, dim#30153, i#117872}(`I8`_lanetype, `%`_dim{i#117879}(16)), `EXTEND`_vcvtop__{half#1274, sx#29766}(`HIGH`_half, `U`_sx))] -[visit_exp shape_1#65] -[visit_id shape_1#65] -[visit_exp shape_2#65] -[visit_id shape_2#65] -[visit_exp (`%X%`_shape{lanetype#30141, dim#30141, i#117860}(`I16`_lanetype, `%`_dim{i#117867}(8)), `%X%`_shape{lanetype#30153, dim#30153, i#117872}(`I8`_lanetype, `%`_dim{i#117879}(16)), `EXTEND`_vcvtop__{half#1274, sx#29766}(`HIGH`_half, `U`_sx))] -[visit_exp `%X%`_shape{lanetype#30141, dim#30141, i#117860}(`I16`_lanetype, `%`_dim{i#117867}(8))] -[visit_exp lanetype#30141] -[visit_id lanetype#30141] -[visit_exp dim#30141] -[visit_id dim#30141] -[visit_exp i#117860] -[visit_id i#117860] -[visit_exp (`I16`_lanetype, `%`_dim{i#117867}(8))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117867}(8)] -[visit_exp i#117867] -[visit_id i#117867] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%X%`_shape{lanetype#30153, dim#30153, i#117872}(`I8`_lanetype, `%`_dim{i#117879}(16))] -[visit_exp lanetype#30153] -[visit_id lanetype#30153] -[visit_exp dim#30153] -[visit_id dim#30153] -[visit_exp i#117872] -[visit_id i#117872] -[visit_exp (`I8`_lanetype, `%`_dim{i#117879}(16))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#117879}(16)] -[visit_exp i#117879] -[visit_id i#117879] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTEND`_vcvtop__{half#1274, sx#29766}(`HIGH`_half, `U`_sx)] -[visit_exp half#1274] -[visit_id half#1274] -[visit_exp sx#29766] -[visit_id sx#29766] +[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)] [visit_exp (`HIGH`_half, `U`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] @@ -104659,576 +81387,288 @@ dims \ I = dim#30141, dim#30153, half#1274, i#117860, i#117867, i#117872, i#1178 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#30256 dim#30268 half#1308 i#118095 i#118102 i#118107 i#118114 lanetype#30256 lanetype#30268 shape_1#67 shape_2#67 sx#29800 -dims \ I = dim#30256, dim#30268, half#1308, i#118095, i#118102, i#118107, i#118114, lanetype#30256, lanetype#30268, shape_1#67, shape_2#67, sx#29800 -[visit_exp `VCVTOP`_instr{shape_1#67, shape_2#67}(`%X%`_shape{lanetype#30256, dim#30256, i#118095}(`I32`_lanetype, `%`_dim{i#118102}(4)), `%X%`_shape{lanetype#30268, dim#30268, i#118107}(`I16`_lanetype, `%`_dim{i#118114}(8)), `EXTEND`_vcvtop__{half#1308, sx#29800}(`LOW`_half, `S`_sx))] -[visit_exp shape_1#67] -[visit_id shape_1#67] -[visit_exp shape_2#67] -[visit_id shape_2#67] -[visit_exp (`%X%`_shape{lanetype#30256, dim#30256, i#118095}(`I32`_lanetype, `%`_dim{i#118102}(4)), `%X%`_shape{lanetype#30268, dim#30268, i#118107}(`I16`_lanetype, `%`_dim{i#118114}(8)), `EXTEND`_vcvtop__{half#1308, sx#29800}(`LOW`_half, `S`_sx))] -[visit_exp `%X%`_shape{lanetype#30256, dim#30256, i#118095}(`I32`_lanetype, `%`_dim{i#118102}(4))] -[visit_exp lanetype#30256] -[visit_id lanetype#30256] -[visit_exp dim#30256] -[visit_id dim#30256] -[visit_exp i#118095] -[visit_id i#118095] -[visit_exp (`I32`_lanetype, `%`_dim{i#118102}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#118102}(4)] -[visit_exp i#118102] -[visit_id i#118102] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#30268, dim#30268, i#118107}(`I16`_lanetype, `%`_dim{i#118114}(8))] -[visit_exp lanetype#30268] -[visit_id lanetype#30268] -[visit_exp dim#30268] -[visit_id dim#30268] -[visit_exp i#118107] -[visit_id i#118107] -[visit_exp (`I16`_lanetype, `%`_dim{i#118114}(8))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#118114}(8)] -[visit_exp i#118114] -[visit_id i#118114] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTEND`_vcvtop__{half#1308, sx#29800}(`LOW`_half, `S`_sx)] -[visit_exp half#1308] -[visit_id half#1308] -[visit_exp sx#29800] -[visit_id sx#29800] +[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)] [visit_exp (`LOW`_half, `S`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#30371 dim#30383 half#1342 i#118330 i#118337 i#118342 i#118349 lanetype#30371 lanetype#30383 shape_1#69 shape_2#69 sx#29834 -dims \ I = dim#30371, dim#30383, half#1342, i#118330, i#118337, i#118342, i#118349, lanetype#30371, lanetype#30383, shape_1#69, shape_2#69, sx#29834 -[visit_exp `VCVTOP`_instr{shape_1#69, shape_2#69}(`%X%`_shape{lanetype#30371, dim#30371, i#118330}(`I32`_lanetype, `%`_dim{i#118337}(4)), `%X%`_shape{lanetype#30383, dim#30383, i#118342}(`I16`_lanetype, `%`_dim{i#118349}(8)), `EXTEND`_vcvtop__{half#1342, sx#29834}(`LOW`_half, `U`_sx))] -[visit_exp shape_1#69] -[visit_id shape_1#69] -[visit_exp shape_2#69] -[visit_id shape_2#69] -[visit_exp (`%X%`_shape{lanetype#30371, dim#30371, i#118330}(`I32`_lanetype, `%`_dim{i#118337}(4)), `%X%`_shape{lanetype#30383, dim#30383, i#118342}(`I16`_lanetype, `%`_dim{i#118349}(8)), `EXTEND`_vcvtop__{half#1342, sx#29834}(`LOW`_half, `U`_sx))] -[visit_exp `%X%`_shape{lanetype#30371, dim#30371, i#118330}(`I32`_lanetype, `%`_dim{i#118337}(4))] -[visit_exp lanetype#30371] -[visit_id lanetype#30371] -[visit_exp dim#30371] -[visit_id dim#30371] -[visit_exp i#118330] -[visit_id i#118330] -[visit_exp (`I32`_lanetype, `%`_dim{i#118337}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#118337}(4)] -[visit_exp i#118337] -[visit_id i#118337] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#30383, dim#30383, i#118342}(`I16`_lanetype, `%`_dim{i#118349}(8))] -[visit_exp lanetype#30383] -[visit_id lanetype#30383] -[visit_exp dim#30383] -[visit_id dim#30383] -[visit_exp i#118342] -[visit_id i#118342] -[visit_exp (`I16`_lanetype, `%`_dim{i#118349}(8))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#118349}(8)] -[visit_exp i#118349] -[visit_id i#118349] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTEND`_vcvtop__{half#1342, sx#29834}(`LOW`_half, `U`_sx)] -[visit_exp half#1342] -[visit_id half#1342] -[visit_exp sx#29834] -[visit_id sx#29834] +[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)] [visit_exp (`LOW`_half, `U`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#30486 dim#30498 half#1376 i#118565 i#118572 i#118577 i#118584 lanetype#30486 lanetype#30498 shape_1#71 shape_2#71 sx#29868 -dims \ I = dim#30486, dim#30498, half#1376, i#118565, i#118572, i#118577, i#118584, lanetype#30486, lanetype#30498, shape_1#71, shape_2#71, sx#29868 -[visit_exp `VCVTOP`_instr{shape_1#71, shape_2#71}(`%X%`_shape{lanetype#30486, dim#30486, i#118565}(`I32`_lanetype, `%`_dim{i#118572}(4)), `%X%`_shape{lanetype#30498, dim#30498, i#118577}(`I16`_lanetype, `%`_dim{i#118584}(8)), `EXTEND`_vcvtop__{half#1376, sx#29868}(`HIGH`_half, `S`_sx))] -[visit_exp shape_1#71] -[visit_id shape_1#71] -[visit_exp shape_2#71] -[visit_id shape_2#71] -[visit_exp (`%X%`_shape{lanetype#30486, dim#30486, i#118565}(`I32`_lanetype, `%`_dim{i#118572}(4)), `%X%`_shape{lanetype#30498, dim#30498, i#118577}(`I16`_lanetype, `%`_dim{i#118584}(8)), `EXTEND`_vcvtop__{half#1376, sx#29868}(`HIGH`_half, `S`_sx))] -[visit_exp `%X%`_shape{lanetype#30486, dim#30486, i#118565}(`I32`_lanetype, `%`_dim{i#118572}(4))] -[visit_exp lanetype#30486] -[visit_id lanetype#30486] -[visit_exp dim#30486] -[visit_id dim#30486] -[visit_exp i#118565] -[visit_id i#118565] -[visit_exp (`I32`_lanetype, `%`_dim{i#118572}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#118572}(4)] -[visit_exp i#118572] -[visit_id i#118572] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#30498, dim#30498, i#118577}(`I16`_lanetype, `%`_dim{i#118584}(8))] -[visit_exp lanetype#30498] -[visit_id lanetype#30498] -[visit_exp dim#30498] -[visit_id dim#30498] -[visit_exp i#118577] -[visit_id i#118577] -[visit_exp (`I16`_lanetype, `%`_dim{i#118584}(8))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#118584}(8)] -[visit_exp i#118584] -[visit_id i#118584] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTEND`_vcvtop__{half#1376, sx#29868}(`HIGH`_half, `S`_sx)] -[visit_exp half#1376] -[visit_id half#1376] -[visit_exp sx#29868] -[visit_id sx#29868] +[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)] [visit_exp (`HIGH`_half, `S`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#30601 dim#30613 half#1410 i#118800 i#118807 i#118812 i#118819 lanetype#30601 lanetype#30613 shape_1#73 shape_2#73 sx#29902 -dims \ I = dim#30601, dim#30613, half#1410, i#118800, i#118807, i#118812, i#118819, lanetype#30601, lanetype#30613, shape_1#73, shape_2#73, sx#29902 -[visit_exp `VCVTOP`_instr{shape_1#73, shape_2#73}(`%X%`_shape{lanetype#30601, dim#30601, i#118800}(`I32`_lanetype, `%`_dim{i#118807}(4)), `%X%`_shape{lanetype#30613, dim#30613, i#118812}(`I16`_lanetype, `%`_dim{i#118819}(8)), `EXTEND`_vcvtop__{half#1410, sx#29902}(`HIGH`_half, `U`_sx))] -[visit_exp shape_1#73] -[visit_id shape_1#73] -[visit_exp shape_2#73] -[visit_id shape_2#73] -[visit_exp (`%X%`_shape{lanetype#30601, dim#30601, i#118800}(`I32`_lanetype, `%`_dim{i#118807}(4)), `%X%`_shape{lanetype#30613, dim#30613, i#118812}(`I16`_lanetype, `%`_dim{i#118819}(8)), `EXTEND`_vcvtop__{half#1410, sx#29902}(`HIGH`_half, `U`_sx))] -[visit_exp `%X%`_shape{lanetype#30601, dim#30601, i#118800}(`I32`_lanetype, `%`_dim{i#118807}(4))] -[visit_exp lanetype#30601] -[visit_id lanetype#30601] -[visit_exp dim#30601] -[visit_id dim#30601] -[visit_exp i#118800] -[visit_id i#118800] -[visit_exp (`I32`_lanetype, `%`_dim{i#118807}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#118807}(4)] -[visit_exp i#118807] -[visit_id i#118807] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#30613, dim#30613, i#118812}(`I16`_lanetype, `%`_dim{i#118819}(8))] -[visit_exp lanetype#30613] -[visit_id lanetype#30613] -[visit_exp dim#30613] -[visit_id dim#30613] -[visit_exp i#118812] -[visit_id i#118812] -[visit_exp (`I16`_lanetype, `%`_dim{i#118819}(8))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#118819}(8)] -[visit_exp i#118819] -[visit_id i#118819] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTEND`_vcvtop__{half#1410, sx#29902}(`HIGH`_half, `U`_sx)] -[visit_exp half#1410] -[visit_id half#1410] -[visit_exp sx#29902] -[visit_id sx#29902] +[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)] [visit_exp (`HIGH`_half, `U`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#30716 dim#30728 i#119035 i#119042 i#119047 i#119054 lanetype#30716 lanetype#30728 shape_1#75 shape_2#75 sx#29966 zero?#647 -dims \ I = dim#30716, dim#30728, i#119035, i#119042, i#119047, i#119054, lanetype#30716, lanetype#30728, shape_1#75, shape_2#75, sx#29966, zero?#647 -[visit_exp `VCVTOP`_instr{shape_1#75, shape_2#75}(`%X%`_shape{lanetype#30716, dim#30716, i#119035}(`I32`_lanetype, `%`_dim{i#119042}(4)), `%X%`_shape{lanetype#30728, dim#30728, i#119047}(`F32`_lanetype, `%`_dim{i#119054}(4)), `TRUNC_SAT`_vcvtop__{sx#29966, `zero?#647`}(`S`_sx, ?()))] -[visit_exp shape_1#75] -[visit_id shape_1#75] -[visit_exp shape_2#75] -[visit_id shape_2#75] -[visit_exp (`%X%`_shape{lanetype#30716, dim#30716, i#119035}(`I32`_lanetype, `%`_dim{i#119042}(4)), `%X%`_shape{lanetype#30728, dim#30728, i#119047}(`F32`_lanetype, `%`_dim{i#119054}(4)), `TRUNC_SAT`_vcvtop__{sx#29966, `zero?#647`}(`S`_sx, ?()))] -[visit_exp `%X%`_shape{lanetype#30716, dim#30716, i#119035}(`I32`_lanetype, `%`_dim{i#119042}(4))] -[visit_exp lanetype#30716] -[visit_id lanetype#30716] -[visit_exp dim#30716] -[visit_id dim#30716] -[visit_exp i#119035] -[visit_id i#119035] -[visit_exp (`I32`_lanetype, `%`_dim{i#119042}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?()))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?()))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#119042}(4)] -[visit_exp i#119042] -[visit_id i#119042] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#30728, dim#30728, i#119047}(`F32`_lanetype, `%`_dim{i#119054}(4))] -[visit_exp lanetype#30728] -[visit_id lanetype#30728] -[visit_exp dim#30728] -[visit_id dim#30728] -[visit_exp i#119047] -[visit_id i#119047] -[visit_exp (`F32`_lanetype, `%`_dim{i#119054}(4))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#119054}(4)] -[visit_exp i#119054] -[visit_id i#119054] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `TRUNC_SAT`_vcvtop__{sx#29966, `zero?#647`}(`S`_sx, ?())] -[visit_exp sx#29966] -[visit_id sx#29966] -[visit_exp `zero?#647`] -[visit_id zero?#647] +[visit_exp `TRUNC_SAT`_vcvtop__(`S`_sx, ?())] [visit_exp (`S`_sx, ?())] [visit_exp `S`_sx] [visit_exp ()] [visit_exp ?()] -[check_dims] I dim#30891 dim#30903 i#119330 i#119337 i#119342 i#119349 lanetype#30891 lanetype#30903 shape_1#77 shape_2#77 sx#30030 zero?#711 -dims \ I = dim#30891, dim#30903, i#119330, i#119337, i#119342, i#119349, lanetype#30891, lanetype#30903, shape_1#77, shape_2#77, sx#30030, zero?#711 -[visit_exp `VCVTOP`_instr{shape_1#77, shape_2#77}(`%X%`_shape{lanetype#30891, dim#30891, i#119330}(`I32`_lanetype, `%`_dim{i#119337}(4)), `%X%`_shape{lanetype#30903, dim#30903, i#119342}(`F32`_lanetype, `%`_dim{i#119349}(4)), `TRUNC_SAT`_vcvtop__{sx#30030, `zero?#711`}(`U`_sx, ?()))] -[visit_exp shape_1#77] -[visit_id shape_1#77] -[visit_exp shape_2#77] -[visit_id shape_2#77] -[visit_exp (`%X%`_shape{lanetype#30891, dim#30891, i#119330}(`I32`_lanetype, `%`_dim{i#119337}(4)), `%X%`_shape{lanetype#30903, dim#30903, i#119342}(`F32`_lanetype, `%`_dim{i#119349}(4)), `TRUNC_SAT`_vcvtop__{sx#30030, `zero?#711`}(`U`_sx, ?()))] -[visit_exp `%X%`_shape{lanetype#30891, dim#30891, i#119330}(`I32`_lanetype, `%`_dim{i#119337}(4))] -[visit_exp lanetype#30891] -[visit_id lanetype#30891] -[visit_exp dim#30891] -[visit_id dim#30891] -[visit_exp i#119330] -[visit_id i#119330] -[visit_exp (`I32`_lanetype, `%`_dim{i#119337}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?()))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?()))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#119337}(4)] -[visit_exp i#119337] -[visit_id i#119337] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#30903, dim#30903, i#119342}(`F32`_lanetype, `%`_dim{i#119349}(4))] -[visit_exp lanetype#30903] -[visit_id lanetype#30903] -[visit_exp dim#30903] -[visit_id dim#30903] -[visit_exp i#119342] -[visit_id i#119342] -[visit_exp (`F32`_lanetype, `%`_dim{i#119349}(4))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#119349}(4)] -[visit_exp i#119349] -[visit_id i#119349] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `TRUNC_SAT`_vcvtop__{sx#30030, `zero?#711`}(`U`_sx, ?())] -[visit_exp sx#30030] -[visit_id sx#30030] -[visit_exp `zero?#711`] -[visit_id zero?#711] +[visit_exp `TRUNC_SAT`_vcvtop__(`U`_sx, ?())] [visit_exp (`U`_sx, ?())] [visit_exp `U`_sx] [visit_exp ()] [visit_exp ?()] -[check_dims] I dim#31066 dim#31078 i#119625 i#119632 i#119637 i#119644 lanetype#31066 lanetype#31078 shape_1#79 shape_2#79 sx#30094 zero?#775 -dims \ I = dim#31066, dim#31078, i#119625, i#119632, i#119637, i#119644, lanetype#31066, lanetype#31078, shape_1#79, shape_2#79, sx#30094, zero?#775 -[visit_exp `VCVTOP`_instr{shape_1#79, shape_2#79}(`%X%`_shape{lanetype#31066, dim#31066, i#119625}(`I32`_lanetype, `%`_dim{i#119632}(4)), `%X%`_shape{lanetype#31078, dim#31078, i#119637}(`F64`_lanetype, `%`_dim{i#119644}(2)), `TRUNC_SAT`_vcvtop__{sx#30094, `zero?#775`}(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp shape_1#79] -[visit_id shape_1#79] -[visit_exp shape_2#79] -[visit_id shape_2#79] -[visit_exp (`%X%`_shape{lanetype#31066, dim#31066, i#119625}(`I32`_lanetype, `%`_dim{i#119632}(4)), `%X%`_shape{lanetype#31078, dim#31078, i#119637}(`F64`_lanetype, `%`_dim{i#119644}(2)), `TRUNC_SAT`_vcvtop__{sx#30094, `zero?#775`}(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape{lanetype#31066, dim#31066, i#119625}(`I32`_lanetype, `%`_dim{i#119632}(4))] -[visit_exp lanetype#31066] -[visit_id lanetype#31066] -[visit_exp dim#31066] -[visit_id dim#31066] -[visit_exp i#119625] -[visit_id i#119625] -[visit_exp (`I32`_lanetype, `%`_dim{i#119632}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#119632}(4)] -[visit_exp i#119632] -[visit_id i#119632] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#31078, dim#31078, i#119637}(`F64`_lanetype, `%`_dim{i#119644}(2))] -[visit_exp lanetype#31078] -[visit_id lanetype#31078] -[visit_exp dim#31078] -[visit_id dim#31078] -[visit_exp i#119637] -[visit_id i#119637] -[visit_exp (`F64`_lanetype, `%`_dim{i#119644}(2))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#119644}(2)] -[visit_exp i#119644] -[visit_id i#119644] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `TRUNC_SAT`_vcvtop__{sx#30094, `zero?#775`}(`S`_sx, ?(`ZERO`_zero))] -[visit_exp sx#30094] -[visit_id sx#30094] -[visit_exp `zero?#775`] -[visit_id zero?#775] +[visit_exp `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero))] [visit_exp (`S`_sx, ?(`ZERO`_zero))] [visit_exp `S`_sx] [visit_exp ()] [visit_exp ?(`ZERO`_zero)] [visit_exp `ZERO`_zero] [visit_exp ()] -[check_dims] I dim#31241 dim#31253 i#119920 i#119927 i#119932 i#119939 lanetype#31241 lanetype#31253 shape_1#81 shape_2#81 sx#30158 zero?#839 -dims \ I = dim#31241, dim#31253, i#119920, i#119927, i#119932, i#119939, lanetype#31241, lanetype#31253, shape_1#81, shape_2#81, sx#30158, zero?#839 -[visit_exp `VCVTOP`_instr{shape_1#81, shape_2#81}(`%X%`_shape{lanetype#31241, dim#31241, i#119920}(`I32`_lanetype, `%`_dim{i#119927}(4)), `%X%`_shape{lanetype#31253, dim#31253, i#119932}(`F64`_lanetype, `%`_dim{i#119939}(2)), `TRUNC_SAT`_vcvtop__{sx#30158, `zero?#839`}(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp shape_1#81] -[visit_id shape_1#81] -[visit_exp shape_2#81] -[visit_id shape_2#81] -[visit_exp (`%X%`_shape{lanetype#31241, dim#31241, i#119920}(`I32`_lanetype, `%`_dim{i#119927}(4)), `%X%`_shape{lanetype#31253, dim#31253, i#119932}(`F64`_lanetype, `%`_dim{i#119939}(2)), `TRUNC_SAT`_vcvtop__{sx#30158, `zero?#839`}(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape{lanetype#31241, dim#31241, i#119920}(`I32`_lanetype, `%`_dim{i#119927}(4))] -[visit_exp lanetype#31241] -[visit_id lanetype#31241] -[visit_exp dim#31241] -[visit_id dim#31241] -[visit_exp i#119920] -[visit_id i#119920] -[visit_exp (`I32`_lanetype, `%`_dim{i#119927}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#119927}(4)] -[visit_exp i#119927] -[visit_id i#119927] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#31253, dim#31253, i#119932}(`F64`_lanetype, `%`_dim{i#119939}(2))] -[visit_exp lanetype#31253] -[visit_id lanetype#31253] -[visit_exp dim#31253] -[visit_id dim#31253] -[visit_exp i#119932] -[visit_id i#119932] -[visit_exp (`F64`_lanetype, `%`_dim{i#119939}(2))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#119939}(2)] -[visit_exp i#119939] -[visit_id i#119939] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `TRUNC_SAT`_vcvtop__{sx#30158, `zero?#839`}(`U`_sx, ?(`ZERO`_zero))] -[visit_exp sx#30158] -[visit_id sx#30158] -[visit_exp `zero?#839`] -[visit_id zero?#839] +[visit_exp `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero))] [visit_exp (`U`_sx, ?(`ZERO`_zero))] [visit_exp `U`_sx] [visit_exp ()] [visit_exp ?(`ZERO`_zero)] [visit_exp `ZERO`_zero] [visit_exp ()] -[check_dims] I dim#31416 dim#31428 i#120215 i#120222 i#120227 i#120234 lanetype#31416 lanetype#31428 shape_1#83 shape_2#83 sx#30222 zero?#903 -dims \ I = dim#31416, dim#31428, i#120215, i#120222, i#120227, i#120234, lanetype#31416, lanetype#31428, shape_1#83, shape_2#83, sx#30222, zero?#903 -[visit_exp `VCVTOP`_instr{shape_1#83, shape_2#83}(`%X%`_shape{lanetype#31416, dim#31416, i#120215}(`I32`_lanetype, `%`_dim{i#120222}(4)), `%X%`_shape{lanetype#31428, dim#31428, i#120227}(`F32`_lanetype, `%`_dim{i#120234}(4)), `RELAXED_TRUNC`_vcvtop__{sx#30222, `zero?#903`}(`S`_sx, ?()))] -[visit_exp shape_1#83] -[visit_id shape_1#83] -[visit_exp shape_2#83] -[visit_id shape_2#83] -[visit_exp (`%X%`_shape{lanetype#31416, dim#31416, i#120215}(`I32`_lanetype, `%`_dim{i#120222}(4)), `%X%`_shape{lanetype#31428, dim#31428, i#120227}(`F32`_lanetype, `%`_dim{i#120234}(4)), `RELAXED_TRUNC`_vcvtop__{sx#30222, `zero?#903`}(`S`_sx, ?()))] -[visit_exp `%X%`_shape{lanetype#31416, dim#31416, i#120215}(`I32`_lanetype, `%`_dim{i#120222}(4))] -[visit_exp lanetype#31416] -[visit_id lanetype#31416] -[visit_exp dim#31416] -[visit_id dim#31416] -[visit_exp i#120215] -[visit_id i#120215] -[visit_exp (`I32`_lanetype, `%`_dim{i#120222}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?()))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?()))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#120222}(4)] -[visit_exp i#120222] -[visit_id i#120222] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#31428, dim#31428, i#120227}(`F32`_lanetype, `%`_dim{i#120234}(4))] -[visit_exp lanetype#31428] -[visit_id lanetype#31428] -[visit_exp dim#31428] -[visit_id dim#31428] -[visit_exp i#120227] -[visit_id i#120227] -[visit_exp (`F32`_lanetype, `%`_dim{i#120234}(4))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#120234}(4)] -[visit_exp i#120234] -[visit_id i#120234] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#30222, `zero?#903`}(`S`_sx, ?())] -[visit_exp sx#30222] -[visit_id sx#30222] -[visit_exp `zero?#903`] -[visit_id zero?#903] +[visit_exp `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?())] [visit_exp (`S`_sx, ?())] [visit_exp `S`_sx] [visit_exp ()] [visit_exp ?()] -[check_dims] I dim#31591 dim#31603 i#120510 i#120517 i#120522 i#120529 lanetype#31591 lanetype#31603 shape_1#85 shape_2#85 sx#30286 zero?#967 -dims \ I = dim#31591, dim#31603, i#120510, i#120517, i#120522, i#120529, lanetype#31591, lanetype#31603, shape_1#85, shape_2#85, sx#30286, zero?#967 -[visit_exp `VCVTOP`_instr{shape_1#85, shape_2#85}(`%X%`_shape{lanetype#31591, dim#31591, i#120510}(`I32`_lanetype, `%`_dim{i#120517}(4)), `%X%`_shape{lanetype#31603, dim#31603, i#120522}(`F32`_lanetype, `%`_dim{i#120529}(4)), `RELAXED_TRUNC`_vcvtop__{sx#30286, `zero?#967`}(`U`_sx, ?()))] -[visit_exp shape_1#85] -[visit_id shape_1#85] -[visit_exp shape_2#85] -[visit_id shape_2#85] -[visit_exp (`%X%`_shape{lanetype#31591, dim#31591, i#120510}(`I32`_lanetype, `%`_dim{i#120517}(4)), `%X%`_shape{lanetype#31603, dim#31603, i#120522}(`F32`_lanetype, `%`_dim{i#120529}(4)), `RELAXED_TRUNC`_vcvtop__{sx#30286, `zero?#967`}(`U`_sx, ?()))] -[visit_exp `%X%`_shape{lanetype#31591, dim#31591, i#120510}(`I32`_lanetype, `%`_dim{i#120517}(4))] -[visit_exp lanetype#31591] -[visit_id lanetype#31591] -[visit_exp dim#31591] -[visit_id dim#31591] -[visit_exp i#120510] -[visit_id i#120510] -[visit_exp (`I32`_lanetype, `%`_dim{i#120517}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?()))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?()))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#120517}(4)] -[visit_exp i#120517] -[visit_id i#120517] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#31603, dim#31603, i#120522}(`F32`_lanetype, `%`_dim{i#120529}(4))] -[visit_exp lanetype#31603] -[visit_id lanetype#31603] -[visit_exp dim#31603] -[visit_id dim#31603] -[visit_exp i#120522] -[visit_id i#120522] -[visit_exp (`F32`_lanetype, `%`_dim{i#120529}(4))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#120529}(4)] -[visit_exp i#120529] -[visit_id i#120529] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#30286, `zero?#967`}(`U`_sx, ?())] -[visit_exp sx#30286] -[visit_id sx#30286] -[visit_exp `zero?#967`] -[visit_id zero?#967] +[visit_exp `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?())] [visit_exp (`U`_sx, ?())] [visit_exp `U`_sx] [visit_exp ()] [visit_exp ?()] -[check_dims] I dim#31766 dim#31778 i#120805 i#120812 i#120817 i#120824 lanetype#31766 lanetype#31778 shape_1#87 shape_2#87 sx#30350 zero?#1031 -dims \ I = dim#31766, dim#31778, i#120805, i#120812, i#120817, i#120824, lanetype#31766, lanetype#31778, shape_1#87, shape_2#87, sx#30350, zero?#1031 -[visit_exp `VCVTOP`_instr{shape_1#87, shape_2#87}(`%X%`_shape{lanetype#31766, dim#31766, i#120805}(`I32`_lanetype, `%`_dim{i#120812}(4)), `%X%`_shape{lanetype#31778, dim#31778, i#120817}(`F64`_lanetype, `%`_dim{i#120824}(2)), `RELAXED_TRUNC`_vcvtop__{sx#30350, `zero?#1031`}(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp shape_1#87] -[visit_id shape_1#87] -[visit_exp shape_2#87] -[visit_id shape_2#87] -[visit_exp (`%X%`_shape{lanetype#31766, dim#31766, i#120805}(`I32`_lanetype, `%`_dim{i#120812}(4)), `%X%`_shape{lanetype#31778, dim#31778, i#120817}(`F64`_lanetype, `%`_dim{i#120824}(2)), `RELAXED_TRUNC`_vcvtop__{sx#30350, `zero?#1031`}(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape{lanetype#31766, dim#31766, i#120805}(`I32`_lanetype, `%`_dim{i#120812}(4))] -[visit_exp lanetype#31766] -[visit_id lanetype#31766] -[visit_exp dim#31766] -[visit_id dim#31766] -[visit_exp i#120805] -[visit_id i#120805] -[visit_exp (`I32`_lanetype, `%`_dim{i#120812}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#120812}(4)] -[visit_exp i#120812] -[visit_id i#120812] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#31778, dim#31778, i#120817}(`F64`_lanetype, `%`_dim{i#120824}(2))] -[visit_exp lanetype#31778] -[visit_id lanetype#31778] -[visit_exp dim#31778] -[visit_id dim#31778] -[visit_exp i#120817] -[visit_id i#120817] -[visit_exp (`F64`_lanetype, `%`_dim{i#120824}(2))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#120824}(2)] -[visit_exp i#120824] -[visit_id i#120824] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#30350, `zero?#1031`}(`S`_sx, ?(`ZERO`_zero))] -[visit_exp sx#30350] -[visit_id sx#30350] -[visit_exp `zero?#1031`] -[visit_id zero?#1031] +[visit_exp `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero))] [visit_exp (`S`_sx, ?(`ZERO`_zero))] [visit_exp `S`_sx] [visit_exp ()] [visit_exp ?(`ZERO`_zero)] [visit_exp `ZERO`_zero] [visit_exp ()] -[check_dims] I dim#31941 dim#31953 i#121100 i#121107 i#121112 i#121119 lanetype#31941 lanetype#31953 shape_1#89 shape_2#89 sx#30414 zero?#1095 -dims \ I = dim#31941, dim#31953, i#121100, i#121107, i#121112, i#121119, lanetype#31941, lanetype#31953, shape_1#89, shape_2#89, sx#30414, zero?#1095 -[visit_exp `VCVTOP`_instr{shape_1#89, shape_2#89}(`%X%`_shape{lanetype#31941, dim#31941, i#121100}(`I32`_lanetype, `%`_dim{i#121107}(4)), `%X%`_shape{lanetype#31953, dim#31953, i#121112}(`F64`_lanetype, `%`_dim{i#121119}(2)), `RELAXED_TRUNC`_vcvtop__{sx#30414, `zero?#1095`}(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp shape_1#89] -[visit_id shape_1#89] -[visit_exp shape_2#89] -[visit_id shape_2#89] -[visit_exp (`%X%`_shape{lanetype#31941, dim#31941, i#121100}(`I32`_lanetype, `%`_dim{i#121107}(4)), `%X%`_shape{lanetype#31953, dim#31953, i#121112}(`F64`_lanetype, `%`_dim{i#121119}(2)), `RELAXED_TRUNC`_vcvtop__{sx#30414, `zero?#1095`}(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape{lanetype#31941, dim#31941, i#121100}(`I32`_lanetype, `%`_dim{i#121107}(4))] -[visit_exp lanetype#31941] -[visit_id lanetype#31941] -[visit_exp dim#31941] -[visit_id dim#31941] -[visit_exp i#121100] -[visit_id i#121100] -[visit_exp (`I32`_lanetype, `%`_dim{i#121107}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#121107}(4)] -[visit_exp i#121107] -[visit_id i#121107] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#31953, dim#31953, i#121112}(`F64`_lanetype, `%`_dim{i#121119}(2))] -[visit_exp lanetype#31953] -[visit_id lanetype#31953] -[visit_exp dim#31953] -[visit_id dim#31953] -[visit_exp i#121112] -[visit_id i#121112] -[visit_exp (`F64`_lanetype, `%`_dim{i#121119}(2))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#121119}(2)] -[visit_exp i#121119] -[visit_id i#121119] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `RELAXED_TRUNC`_vcvtop__{sx#30414, `zero?#1095`}(`U`_sx, ?(`ZERO`_zero))] -[visit_exp sx#30414] -[visit_id sx#30414] -[visit_exp `zero?#1095`] -[visit_id zero?#1095] +[visit_exp `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero))] [visit_exp (`U`_sx, ?(`ZERO`_zero))] [visit_exp `U`_sx] [visit_exp ()] @@ -105238,193 +81678,97 @@ dims \ I = dim#31941, dim#31953, i#121100, i#121107, i#121112, i#121119, lanetyp [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#32116 dim#32128 half#1444 i#121395 i#121402 i#121407 i#121414 lanetype#32116 lanetype#32128 shape_1#91 shape_2#91 sx#30448 -dims \ I = dim#32116, dim#32128, half#1444, i#121395, i#121402, i#121407, i#121414, lanetype#32116, lanetype#32128, shape_1#91, shape_2#91, sx#30448 -[visit_exp `VCVTOP`_instr{shape_1#91, shape_2#91}(`%X%`_shape{lanetype#32116, dim#32116, i#121395}(`I64`_lanetype, `%`_dim{i#121402}(2)), `%X%`_shape{lanetype#32128, dim#32128, i#121407}(`I32`_lanetype, `%`_dim{i#121414}(4)), `EXTEND`_vcvtop__{half#1444, sx#30448}(`LOW`_half, `S`_sx))] -[visit_exp shape_1#91] -[visit_id shape_1#91] -[visit_exp shape_2#91] -[visit_id shape_2#91] -[visit_exp (`%X%`_shape{lanetype#32116, dim#32116, i#121395}(`I64`_lanetype, `%`_dim{i#121402}(2)), `%X%`_shape{lanetype#32128, dim#32128, i#121407}(`I32`_lanetype, `%`_dim{i#121414}(4)), `EXTEND`_vcvtop__{half#1444, sx#30448}(`LOW`_half, `S`_sx))] -[visit_exp `%X%`_shape{lanetype#32116, dim#32116, i#121395}(`I64`_lanetype, `%`_dim{i#121402}(2))] -[visit_exp lanetype#32116] -[visit_id lanetype#32116] -[visit_exp dim#32116] -[visit_id dim#32116] -[visit_exp i#121395] -[visit_id i#121395] -[visit_exp (`I64`_lanetype, `%`_dim{i#121402}(2))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#121402}(2)] -[visit_exp i#121402] -[visit_id i#121402] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#32128, dim#32128, i#121407}(`I32`_lanetype, `%`_dim{i#121414}(4))] -[visit_exp lanetype#32128] -[visit_id lanetype#32128] -[visit_exp dim#32128] -[visit_id dim#32128] -[visit_exp i#121407] -[visit_id i#121407] -[visit_exp (`I32`_lanetype, `%`_dim{i#121414}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#121414}(4)] -[visit_exp i#121414] -[visit_id i#121414] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTEND`_vcvtop__{half#1444, sx#30448}(`LOW`_half, `S`_sx)] -[visit_exp half#1444] -[visit_id half#1444] -[visit_exp sx#30448] -[visit_id sx#30448] +[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)] [visit_exp (`LOW`_half, `S`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#32231 dim#32243 half#1478 i#121630 i#121637 i#121642 i#121649 lanetype#32231 lanetype#32243 shape_1#93 shape_2#93 sx#30482 -dims \ I = dim#32231, dim#32243, half#1478, i#121630, i#121637, i#121642, i#121649, lanetype#32231, lanetype#32243, shape_1#93, shape_2#93, sx#30482 -[visit_exp `VCVTOP`_instr{shape_1#93, shape_2#93}(`%X%`_shape{lanetype#32231, dim#32231, i#121630}(`I64`_lanetype, `%`_dim{i#121637}(2)), `%X%`_shape{lanetype#32243, dim#32243, i#121642}(`I32`_lanetype, `%`_dim{i#121649}(4)), `EXTEND`_vcvtop__{half#1478, sx#30482}(`LOW`_half, `U`_sx))] -[visit_exp shape_1#93] -[visit_id shape_1#93] -[visit_exp shape_2#93] -[visit_id shape_2#93] -[visit_exp (`%X%`_shape{lanetype#32231, dim#32231, i#121630}(`I64`_lanetype, `%`_dim{i#121637}(2)), `%X%`_shape{lanetype#32243, dim#32243, i#121642}(`I32`_lanetype, `%`_dim{i#121649}(4)), `EXTEND`_vcvtop__{half#1478, sx#30482}(`LOW`_half, `U`_sx))] -[visit_exp `%X%`_shape{lanetype#32231, dim#32231, i#121630}(`I64`_lanetype, `%`_dim{i#121637}(2))] -[visit_exp lanetype#32231] -[visit_id lanetype#32231] -[visit_exp dim#32231] -[visit_id dim#32231] -[visit_exp i#121630] -[visit_id i#121630] -[visit_exp (`I64`_lanetype, `%`_dim{i#121637}(2))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#121637}(2)] -[visit_exp i#121637] -[visit_id i#121637] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#32243, dim#32243, i#121642}(`I32`_lanetype, `%`_dim{i#121649}(4))] -[visit_exp lanetype#32243] -[visit_id lanetype#32243] -[visit_exp dim#32243] -[visit_id dim#32243] -[visit_exp i#121642] -[visit_id i#121642] -[visit_exp (`I32`_lanetype, `%`_dim{i#121649}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#121649}(4)] -[visit_exp i#121649] -[visit_id i#121649] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTEND`_vcvtop__{half#1478, sx#30482}(`LOW`_half, `U`_sx)] -[visit_exp half#1478] -[visit_id half#1478] -[visit_exp sx#30482] -[visit_id sx#30482] +[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)] [visit_exp (`LOW`_half, `U`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I dim#32346 dim#32358 half#1512 i#121865 i#121872 i#121877 i#121884 lanetype#32346 lanetype#32358 shape_1#95 shape_2#95 sx#30516 -dims \ I = dim#32346, dim#32358, half#1512, i#121865, i#121872, i#121877, i#121884, lanetype#32346, lanetype#32358, shape_1#95, shape_2#95, sx#30516 -[visit_exp `VCVTOP`_instr{shape_1#95, shape_2#95}(`%X%`_shape{lanetype#32346, dim#32346, i#121865}(`I64`_lanetype, `%`_dim{i#121872}(2)), `%X%`_shape{lanetype#32358, dim#32358, i#121877}(`I32`_lanetype, `%`_dim{i#121884}(4)), `EXTEND`_vcvtop__{half#1512, sx#30516}(`HIGH`_half, `S`_sx))] -[visit_exp shape_1#95] -[visit_id shape_1#95] -[visit_exp shape_2#95] -[visit_id shape_2#95] -[visit_exp (`%X%`_shape{lanetype#32346, dim#32346, i#121865}(`I64`_lanetype, `%`_dim{i#121872}(2)), `%X%`_shape{lanetype#32358, dim#32358, i#121877}(`I32`_lanetype, `%`_dim{i#121884}(4)), `EXTEND`_vcvtop__{half#1512, sx#30516}(`HIGH`_half, `S`_sx))] -[visit_exp `%X%`_shape{lanetype#32346, dim#32346, i#121865}(`I64`_lanetype, `%`_dim{i#121872}(2))] -[visit_exp lanetype#32346] -[visit_id lanetype#32346] -[visit_exp dim#32346] -[visit_id dim#32346] -[visit_exp i#121865] -[visit_id i#121865] -[visit_exp (`I64`_lanetype, `%`_dim{i#121872}(2))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#121872}(2)] -[visit_exp i#121872] -[visit_id i#121872] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#32358, dim#32358, i#121877}(`I32`_lanetype, `%`_dim{i#121884}(4))] -[visit_exp lanetype#32358] -[visit_id lanetype#32358] -[visit_exp dim#32358] -[visit_id dim#32358] -[visit_exp i#121877] -[visit_id i#121877] -[visit_exp (`I32`_lanetype, `%`_dim{i#121884}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#121884}(4)] -[visit_exp i#121884] -[visit_id i#121884] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTEND`_vcvtop__{half#1512, sx#30516}(`HIGH`_half, `S`_sx)] -[visit_exp half#1512] -[visit_id half#1512] -[visit_exp sx#30516] -[visit_id sx#30516] +[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)] [visit_exp (`HIGH`_half, `S`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#32461 dim#32473 half#1546 i#122100 i#122107 i#122112 i#122119 lanetype#32461 lanetype#32473 shape_1#97 shape_2#97 sx#30550 -dims \ I = dim#32461, dim#32473, half#1546, i#122100, i#122107, i#122112, i#122119, lanetype#32461, lanetype#32473, shape_1#97, shape_2#97, sx#30550 -[visit_exp `VCVTOP`_instr{shape_1#97, shape_2#97}(`%X%`_shape{lanetype#32461, dim#32461, i#122100}(`I64`_lanetype, `%`_dim{i#122107}(2)), `%X%`_shape{lanetype#32473, dim#32473, i#122112}(`I32`_lanetype, `%`_dim{i#122119}(4)), `EXTEND`_vcvtop__{half#1546, sx#30550}(`HIGH`_half, `U`_sx))] -[visit_exp shape_1#97] -[visit_id shape_1#97] -[visit_exp shape_2#97] -[visit_id shape_2#97] -[visit_exp (`%X%`_shape{lanetype#32461, dim#32461, i#122100}(`I64`_lanetype, `%`_dim{i#122107}(2)), `%X%`_shape{lanetype#32473, dim#32473, i#122112}(`I32`_lanetype, `%`_dim{i#122119}(4)), `EXTEND`_vcvtop__{half#1546, sx#30550}(`HIGH`_half, `U`_sx))] -[visit_exp `%X%`_shape{lanetype#32461, dim#32461, i#122100}(`I64`_lanetype, `%`_dim{i#122107}(2))] -[visit_exp lanetype#32461] -[visit_id lanetype#32461] -[visit_exp dim#32461] -[visit_id dim#32461] -[visit_exp i#122100] -[visit_id i#122100] -[visit_exp (`I64`_lanetype, `%`_dim{i#122107}(2))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#122107}(2)] -[visit_exp i#122107] -[visit_id i#122107] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#32473, dim#32473, i#122112}(`I32`_lanetype, `%`_dim{i#122119}(4))] -[visit_exp lanetype#32473] -[visit_id lanetype#32473] -[visit_exp dim#32473] -[visit_id dim#32473] -[visit_exp i#122112] -[visit_id i#122112] -[visit_exp (`I32`_lanetype, `%`_dim{i#122119}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#122119}(4)] -[visit_exp i#122119] -[visit_id i#122119] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTEND`_vcvtop__{half#1546, sx#30550}(`HIGH`_half, `U`_sx)] -[visit_exp half#1546] -[visit_id half#1546] -[visit_exp sx#30550] -[visit_id sx#30550] +[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)] [visit_exp (`HIGH`_half, `U`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] @@ -105433,140 +81777,70 @@ dims \ I = dim#32461, dim#32473, half#1546, i#122100, i#122107, i#122112, i#1221 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#32576 dim#32588 i#122335 i#122342 i#122347 i#122354 lanetype#32576 lanetype#32588 shape_1#99 shape_2#99 zero#2143 -dims \ I = dim#32576, dim#32588, i#122335, i#122342, i#122347, i#122354, lanetype#32576, lanetype#32588, shape_1#99, shape_2#99, zero#2143 -[visit_exp `VCVTOP`_instr{shape_1#99, shape_2#99}(`%X%`_shape{lanetype#32576, dim#32576, i#122335}(`F32`_lanetype, `%`_dim{i#122342}(4)), `%X%`_shape{lanetype#32588, dim#32588, i#122347}(`F64`_lanetype, `%`_dim{i#122354}(2)), `DEMOTE`_vcvtop__{zero#2143}(`ZERO`_zero))] -[visit_exp shape_1#99] -[visit_id shape_1#99] -[visit_exp shape_2#99] -[visit_id shape_2#99] -[visit_exp (`%X%`_shape{lanetype#32576, dim#32576, i#122335}(`F32`_lanetype, `%`_dim{i#122342}(4)), `%X%`_shape{lanetype#32588, dim#32588, i#122347}(`F64`_lanetype, `%`_dim{i#122354}(2)), `DEMOTE`_vcvtop__{zero#2143}(`ZERO`_zero))] -[visit_exp `%X%`_shape{lanetype#32576, dim#32576, i#122335}(`F32`_lanetype, `%`_dim{i#122342}(4))] -[visit_exp lanetype#32576] -[visit_id lanetype#32576] -[visit_exp dim#32576] -[visit_id dim#32576] -[visit_exp i#122335] -[visit_id i#122335] -[visit_exp (`F32`_lanetype, `%`_dim{i#122342}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DEMOTE`_vcvtop__(`ZERO`_zero))] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DEMOTE`_vcvtop__(`ZERO`_zero))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#122342}(4)] -[visit_exp i#122342] -[visit_id i#122342] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#32588, dim#32588, i#122347}(`F64`_lanetype, `%`_dim{i#122354}(2))] -[visit_exp lanetype#32588] -[visit_id lanetype#32588] -[visit_exp dim#32588] -[visit_id dim#32588] -[visit_exp i#122347] -[visit_id i#122347] -[visit_exp (`F64`_lanetype, `%`_dim{i#122354}(2))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#122354}(2)] -[visit_exp i#122354] -[visit_id i#122354] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `DEMOTE`_vcvtop__{zero#2143}(`ZERO`_zero)] -[visit_exp zero#2143] -[visit_id zero#2143] +[visit_exp `DEMOTE`_vcvtop__(`ZERO`_zero)] [visit_exp (`ZERO`_zero)] [visit_exp `ZERO`_zero] [visit_exp ()] -[check_dims] I dim#32841 dim#32853 half?#175 i#122780 i#122787 i#122792 i#122799 lanetype#32841 lanetype#32853 shape_1#101 shape_2#101 sx#30584 -dims \ I = dim#32841, dim#32853, half?#175, i#122780, i#122787, i#122792, i#122799, lanetype#32841, lanetype#32853, shape_1#101, shape_2#101, sx#30584 -[visit_exp `VCVTOP`_instr{shape_1#101, shape_2#101}(`%X%`_shape{lanetype#32841, dim#32841, i#122780}(`F32`_lanetype, `%`_dim{i#122787}(4)), `%X%`_shape{lanetype#32853, dim#32853, i#122792}(`I32`_lanetype, `%`_dim{i#122799}(4)), `CONVERT`_vcvtop__{`half?#175`, sx#30584}(?(), `S`_sx))] -[visit_exp shape_1#101] -[visit_id shape_1#101] -[visit_exp shape_2#101] -[visit_id shape_2#101] -[visit_exp (`%X%`_shape{lanetype#32841, dim#32841, i#122780}(`F32`_lanetype, `%`_dim{i#122787}(4)), `%X%`_shape{lanetype#32853, dim#32853, i#122792}(`I32`_lanetype, `%`_dim{i#122799}(4)), `CONVERT`_vcvtop__{`half?#175`, sx#30584}(?(), `S`_sx))] -[visit_exp `%X%`_shape{lanetype#32841, dim#32841, i#122780}(`F32`_lanetype, `%`_dim{i#122787}(4))] -[visit_exp lanetype#32841] -[visit_id lanetype#32841] -[visit_exp dim#32841] -[visit_id dim#32841] -[visit_exp i#122780] -[visit_id i#122780] -[visit_exp (`F32`_lanetype, `%`_dim{i#122787}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `S`_sx))] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `S`_sx))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#122787}(4)] -[visit_exp i#122787] -[visit_id i#122787] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#32853, dim#32853, i#122792}(`I32`_lanetype, `%`_dim{i#122799}(4))] -[visit_exp lanetype#32853] -[visit_id lanetype#32853] -[visit_exp dim#32853] -[visit_id dim#32853] -[visit_exp i#122792] -[visit_id i#122792] -[visit_exp (`I32`_lanetype, `%`_dim{i#122799}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#122799}(4)] -[visit_exp i#122799] -[visit_id i#122799] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `CONVERT`_vcvtop__{`half?#175`, sx#30584}(?(), `S`_sx)] -[visit_exp `half?#175`] -[visit_id half?#175] -[visit_exp sx#30584] -[visit_id sx#30584] +[visit_exp `CONVERT`_vcvtop__(?(), `S`_sx)] [visit_exp (?(), `S`_sx)] [visit_exp ?()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#33046 dim#33058 half?#209 i#123165 i#123172 i#123177 i#123184 lanetype#33046 lanetype#33058 shape_1#103 shape_2#103 sx#30618 -dims \ I = dim#33046, dim#33058, half?#209, i#123165, i#123172, i#123177, i#123184, lanetype#33046, lanetype#33058, shape_1#103, shape_2#103, sx#30618 -[visit_exp `VCVTOP`_instr{shape_1#103, shape_2#103}(`%X%`_shape{lanetype#33046, dim#33046, i#123165}(`F32`_lanetype, `%`_dim{i#123172}(4)), `%X%`_shape{lanetype#33058, dim#33058, i#123177}(`I32`_lanetype, `%`_dim{i#123184}(4)), `CONVERT`_vcvtop__{`half?#209`, sx#30618}(?(), `U`_sx))] -[visit_exp shape_1#103] -[visit_id shape_1#103] -[visit_exp shape_2#103] -[visit_id shape_2#103] -[visit_exp (`%X%`_shape{lanetype#33046, dim#33046, i#123165}(`F32`_lanetype, `%`_dim{i#123172}(4)), `%X%`_shape{lanetype#33058, dim#33058, i#123177}(`I32`_lanetype, `%`_dim{i#123184}(4)), `CONVERT`_vcvtop__{`half?#209`, sx#30618}(?(), `U`_sx))] -[visit_exp `%X%`_shape{lanetype#33046, dim#33046, i#123165}(`F32`_lanetype, `%`_dim{i#123172}(4))] -[visit_exp lanetype#33046] -[visit_id lanetype#33046] -[visit_exp dim#33046] -[visit_id dim#33046] -[visit_exp i#123165] -[visit_id i#123165] -[visit_exp (`F32`_lanetype, `%`_dim{i#123172}(4))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `U`_sx))] +[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `U`_sx))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#123172}(4)] -[visit_exp i#123172] -[visit_id i#123172] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%X%`_shape{lanetype#33058, dim#33058, i#123177}(`I32`_lanetype, `%`_dim{i#123184}(4))] -[visit_exp lanetype#33058] -[visit_id lanetype#33058] -[visit_exp dim#33058] -[visit_id dim#33058] -[visit_exp i#123177] -[visit_id i#123177] -[visit_exp (`I32`_lanetype, `%`_dim{i#123184}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#123184}(4)] -[visit_exp i#123184] -[visit_id i#123184] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `CONVERT`_vcvtop__{`half?#209`, sx#30618}(?(), `U`_sx)] -[visit_exp `half?#209`] -[visit_id half?#209] -[visit_exp sx#30618] -[visit_id sx#30618] +[visit_exp `CONVERT`_vcvtop__(?(), `U`_sx)] [visit_exp (?(), `U`_sx)] [visit_exp ?()] [visit_exp `U`_sx] @@ -105574,138 +81848,70 @@ dims \ I = dim#33046, dim#33058, half?#209, i#123165, i#123172, i#123177, i#1231 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I dim#33251 dim#33263 i#123550 i#123557 i#123562 i#123569 lanetype#33251 lanetype#33263 shape_1#105 shape_2#105 -dims \ I = dim#33251, dim#33263, i#123550, i#123557, i#123562, i#123569, lanetype#33251, lanetype#33263, shape_1#105, shape_2#105 -[visit_exp `VCVTOP`_instr{shape_1#105, shape_2#105}(`%X%`_shape{lanetype#33251, dim#33251, i#123550}(`F64`_lanetype, `%`_dim{i#123557}(2)), `%X%`_shape{lanetype#33263, dim#33263, i#123562}(`F32`_lanetype, `%`_dim{i#123569}(4)), `PROMOTELOW`_vcvtop__)] -[visit_exp shape_1#105] -[visit_id shape_1#105] -[visit_exp shape_2#105] -[visit_id shape_2#105] -[visit_exp (`%X%`_shape{lanetype#33251, dim#33251, i#123550}(`F64`_lanetype, `%`_dim{i#123557}(2)), `%X%`_shape{lanetype#33263, dim#33263, i#123562}(`F32`_lanetype, `%`_dim{i#123569}(4)), `PROMOTELOW`_vcvtop__)] -[visit_exp `%X%`_shape{lanetype#33251, dim#33251, i#123550}(`F64`_lanetype, `%`_dim{i#123557}(2))] -[visit_exp lanetype#33251] -[visit_id lanetype#33251] -[visit_exp dim#33251] -[visit_id dim#33251] -[visit_exp i#123550] -[visit_id i#123550] -[visit_exp (`F64`_lanetype, `%`_dim{i#123557}(2))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__)] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__)] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#123557}(2)] -[visit_exp i#123557] -[visit_id i#123557] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#33263, dim#33263, i#123562}(`F32`_lanetype, `%`_dim{i#123569}(4))] -[visit_exp lanetype#33263] -[visit_id lanetype#33263] -[visit_exp dim#33263] -[visit_id dim#33263] -[visit_exp i#123562] -[visit_id i#123562] -[visit_exp (`F32`_lanetype, `%`_dim{i#123569}(4))] +[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] +[visit_exp (`F32`_lanetype, `%`_dim(4))] [visit_exp `F32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#123569}(4)] -[visit_exp i#123569] -[visit_id i#123569] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] [visit_exp `PROMOTELOW`_vcvtop__] [visit_exp ()] -[check_dims] I dim#33516 dim#33528 half?#243 i#123995 i#124002 i#124007 i#124014 lanetype#33516 lanetype#33528 shape_1#107 shape_2#107 sx#30652 -dims \ I = dim#33516, dim#33528, half?#243, i#123995, i#124002, i#124007, i#124014, lanetype#33516, lanetype#33528, shape_1#107, shape_2#107, sx#30652 -[visit_exp `VCVTOP`_instr{shape_1#107, shape_2#107}(`%X%`_shape{lanetype#33516, dim#33516, i#123995}(`F64`_lanetype, `%`_dim{i#124002}(2)), `%X%`_shape{lanetype#33528, dim#33528, i#124007}(`I32`_lanetype, `%`_dim{i#124014}(4)), `CONVERT`_vcvtop__{`half?#243`, sx#30652}(?(`LOW`_half), `S`_sx))] -[visit_exp shape_1#107] -[visit_id shape_1#107] -[visit_exp shape_2#107] -[visit_id shape_2#107] -[visit_exp (`%X%`_shape{lanetype#33516, dim#33516, i#123995}(`F64`_lanetype, `%`_dim{i#124002}(2)), `%X%`_shape{lanetype#33528, dim#33528, i#124007}(`I32`_lanetype, `%`_dim{i#124014}(4)), `CONVERT`_vcvtop__{`half?#243`, sx#30652}(?(`LOW`_half), `S`_sx))] -[visit_exp `%X%`_shape{lanetype#33516, dim#33516, i#123995}(`F64`_lanetype, `%`_dim{i#124002}(2))] -[visit_exp lanetype#33516] -[visit_id lanetype#33516] -[visit_exp dim#33516] -[visit_id dim#33516] -[visit_exp i#123995] -[visit_id i#123995] -[visit_exp (`F64`_lanetype, `%`_dim{i#124002}(2))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx))] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#124002}(2)] -[visit_exp i#124002] -[visit_id i#124002] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#33528, dim#33528, i#124007}(`I32`_lanetype, `%`_dim{i#124014}(4))] -[visit_exp lanetype#33528] -[visit_id lanetype#33528] -[visit_exp dim#33528] -[visit_id dim#33528] -[visit_exp i#124007] -[visit_id i#124007] -[visit_exp (`I32`_lanetype, `%`_dim{i#124014}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#124014}(4)] -[visit_exp i#124014] -[visit_id i#124014] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `CONVERT`_vcvtop__{`half?#243`, sx#30652}(?(`LOW`_half), `S`_sx)] -[visit_exp `half?#243`] -[visit_id half?#243] -[visit_exp sx#30652] -[visit_id sx#30652] +[visit_exp `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx)] [visit_exp (?(`LOW`_half), `S`_sx)] [visit_exp ?(`LOW`_half)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I dim#33721 dim#33733 half?#277 i#124380 i#124387 i#124392 i#124399 lanetype#33721 lanetype#33733 shape_1#109 shape_2#109 sx#30686 -dims \ I = dim#33721, dim#33733, half?#277, i#124380, i#124387, i#124392, i#124399, lanetype#33721, lanetype#33733, shape_1#109, shape_2#109, sx#30686 -[visit_exp `VCVTOP`_instr{shape_1#109, shape_2#109}(`%X%`_shape{lanetype#33721, dim#33721, i#124380}(`F64`_lanetype, `%`_dim{i#124387}(2)), `%X%`_shape{lanetype#33733, dim#33733, i#124392}(`I32`_lanetype, `%`_dim{i#124399}(4)), `CONVERT`_vcvtop__{`half?#277`, sx#30686}(?(`LOW`_half), `U`_sx))] -[visit_exp shape_1#109] -[visit_id shape_1#109] -[visit_exp shape_2#109] -[visit_id shape_2#109] -[visit_exp (`%X%`_shape{lanetype#33721, dim#33721, i#124380}(`F64`_lanetype, `%`_dim{i#124387}(2)), `%X%`_shape{lanetype#33733, dim#33733, i#124392}(`I32`_lanetype, `%`_dim{i#124399}(4)), `CONVERT`_vcvtop__{`half?#277`, sx#30686}(?(`LOW`_half), `U`_sx))] -[visit_exp `%X%`_shape{lanetype#33721, dim#33721, i#124380}(`F64`_lanetype, `%`_dim{i#124387}(2))] -[visit_exp lanetype#33721] -[visit_id lanetype#33721] -[visit_exp dim#33721] -[visit_id dim#33721] -[visit_exp i#124380] -[visit_id i#124380] -[visit_exp (`F64`_lanetype, `%`_dim{i#124387}(2))] +[check_dims] I +dims \ I = +[visit_exp `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx))] +[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx))] +[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] +[visit_exp (`F64`_lanetype, `%`_dim(2))] [visit_exp `F64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#124387}(2)] -[visit_exp i#124387] -[visit_id i#124387] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%X%`_shape{lanetype#33733, dim#33733, i#124392}(`I32`_lanetype, `%`_dim{i#124399}(4))] -[visit_exp lanetype#33733] -[visit_id lanetype#33733] -[visit_exp dim#33733] -[visit_id dim#33733] -[visit_exp i#124392] -[visit_id i#124392] -[visit_exp (`I32`_lanetype, `%`_dim{i#124399}(4))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#124399}(4)] -[visit_exp i#124399] -[visit_id i#124399] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `CONVERT`_vcvtop__{`half?#277`, sx#30686}(?(`LOW`_half), `U`_sx)] -[visit_exp `half?#277`] -[visit_id half?#277] -[visit_exp sx#30686] -[visit_id sx#30686] +[visit_exp `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx)] [visit_exp (?(`LOW`_half), `U`_sx)] [visit_exp ?(`LOW`_half)] [visit_exp `LOW`_half] @@ -105715,471 +81921,223 @@ dims \ I = dim#33721, dim#33733, half?#277, i#124380, i#124387, i#124392, i#1243 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#596 Jnn#600 dim#33926 dim#33938 i#124765 i#124772 i#124777 i#124784 ishape_1#79 ishape_2#79 lanetype#33926 lanetype#33938 shape#4954 shape#4966 sx#30720 -dims \ I = Jnn#596, Jnn#600, dim#33926, dim#33938, i#124765, i#124772, i#124777, i#124784, ishape_1#79, ishape_2#79, lanetype#33926, lanetype#33938, shape#4954, shape#4966, sx#30720 -[visit_exp `VEXTUNOP`_instr{ishape_1#79, ishape_2#79}(`%`_ishape{shape#4954, Jnn#596}(`%X%`_shape{lanetype#33926, dim#33926, i#124765}(`I16`_lanetype, `%`_dim{i#124772}(8))), `%`_ishape{shape#4966, Jnn#600}(`%X%`_shape{lanetype#33938, dim#33938, i#124777}(`I8`_lanetype, `%`_dim{i#124784}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#30720}(`S`_sx))] -[visit_exp ishape_1#79] -[visit_id ishape_1#79] -[visit_exp ishape_2#79] -[visit_id ishape_2#79] -[visit_exp (`%`_ishape{shape#4954, Jnn#596}(`%X%`_shape{lanetype#33926, dim#33926, i#124765}(`I16`_lanetype, `%`_dim{i#124772}(8))), `%`_ishape{shape#4966, Jnn#600}(`%X%`_shape{lanetype#33938, dim#33938, i#124777}(`I8`_lanetype, `%`_dim{i#124784}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#30720}(`S`_sx))] -[visit_exp `%`_ishape{shape#4954, Jnn#596}(`%X%`_shape{lanetype#33926, dim#33926, i#124765}(`I16`_lanetype, `%`_dim{i#124772}(8)))] -[visit_exp shape#4954] -[visit_id shape#4954] -[visit_exp Jnn#596] -[visit_id Jnn#596] -[visit_exp (`%X%`_shape{lanetype#33926, dim#33926, i#124765}(`I16`_lanetype, `%`_dim{i#124772}(8)))] -[visit_exp `%X%`_shape{lanetype#33926, dim#33926, i#124765}(`I16`_lanetype, `%`_dim{i#124772}(8))] -[visit_exp lanetype#33926] -[visit_id lanetype#33926] -[visit_exp dim#33926] -[visit_id dim#33926] -[visit_exp i#124765] -[visit_id i#124765] -[visit_exp (`I16`_lanetype, `%`_dim{i#124772}(8))] +[check_dims] I +dims \ I = +[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#124772}(8)] -[visit_exp i#124772] -[visit_id i#124772] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#4966, Jnn#600}(`%X%`_shape{lanetype#33938, dim#33938, i#124777}(`I8`_lanetype, `%`_dim{i#124784}(16)))] -[visit_exp shape#4966] -[visit_id shape#4966] -[visit_exp Jnn#600] -[visit_id Jnn#600] -[visit_exp (`%X%`_shape{lanetype#33938, dim#33938, i#124777}(`I8`_lanetype, `%`_dim{i#124784}(16)))] -[visit_exp `%X%`_shape{lanetype#33938, dim#33938, i#124777}(`I8`_lanetype, `%`_dim{i#124784}(16))] -[visit_exp lanetype#33938] -[visit_id lanetype#33938] -[visit_exp dim#33938] -[visit_id dim#33938] -[visit_exp i#124777] -[visit_id i#124777] -[visit_exp (`I8`_lanetype, `%`_dim{i#124784}(16))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#124784}(16)] -[visit_exp i#124784] -[visit_id i#124784] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#30720}(`S`_sx)] -[visit_exp sx#30720] -[visit_id sx#30720] +[visit_exp `EXTADD_PAIRWISE`_vextunop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#604 Jnn#608 dim#34161 dim#34173 i#125120 i#125127 i#125132 i#125139 ishape_1#81 ishape_2#81 lanetype#34161 lanetype#34173 shape#5069 shape#5081 sx#30754 -dims \ I = Jnn#604, Jnn#608, dim#34161, dim#34173, i#125120, i#125127, i#125132, i#125139, ishape_1#81, ishape_2#81, lanetype#34161, lanetype#34173, shape#5069, shape#5081, sx#30754 -[visit_exp `VEXTUNOP`_instr{ishape_1#81, ishape_2#81}(`%`_ishape{shape#5069, Jnn#604}(`%X%`_shape{lanetype#34161, dim#34161, i#125120}(`I16`_lanetype, `%`_dim{i#125127}(8))), `%`_ishape{shape#5081, Jnn#608}(`%X%`_shape{lanetype#34173, dim#34173, i#125132}(`I8`_lanetype, `%`_dim{i#125139}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#30754}(`U`_sx))] -[visit_exp ishape_1#81] -[visit_id ishape_1#81] -[visit_exp ishape_2#81] -[visit_id ishape_2#81] -[visit_exp (`%`_ishape{shape#5069, Jnn#604}(`%X%`_shape{lanetype#34161, dim#34161, i#125120}(`I16`_lanetype, `%`_dim{i#125127}(8))), `%`_ishape{shape#5081, Jnn#608}(`%X%`_shape{lanetype#34173, dim#34173, i#125132}(`I8`_lanetype, `%`_dim{i#125139}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#30754}(`U`_sx))] -[visit_exp `%`_ishape{shape#5069, Jnn#604}(`%X%`_shape{lanetype#34161, dim#34161, i#125120}(`I16`_lanetype, `%`_dim{i#125127}(8)))] -[visit_exp shape#5069] -[visit_id shape#5069] -[visit_exp Jnn#604] -[visit_id Jnn#604] -[visit_exp (`%X%`_shape{lanetype#34161, dim#34161, i#125120}(`I16`_lanetype, `%`_dim{i#125127}(8)))] -[visit_exp `%X%`_shape{lanetype#34161, dim#34161, i#125120}(`I16`_lanetype, `%`_dim{i#125127}(8))] -[visit_exp lanetype#34161] -[visit_id lanetype#34161] -[visit_exp dim#34161] -[visit_id dim#34161] -[visit_exp i#125120] -[visit_id i#125120] -[visit_exp (`I16`_lanetype, `%`_dim{i#125127}(8))] +[check_dims] I +dims \ I = +[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#125127}(8)] -[visit_exp i#125127] -[visit_id i#125127] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#5081, Jnn#608}(`%X%`_shape{lanetype#34173, dim#34173, i#125132}(`I8`_lanetype, `%`_dim{i#125139}(16)))] -[visit_exp shape#5081] -[visit_id shape#5081] -[visit_exp Jnn#608] -[visit_id Jnn#608] -[visit_exp (`%X%`_shape{lanetype#34173, dim#34173, i#125132}(`I8`_lanetype, `%`_dim{i#125139}(16)))] -[visit_exp `%X%`_shape{lanetype#34173, dim#34173, i#125132}(`I8`_lanetype, `%`_dim{i#125139}(16))] -[visit_exp lanetype#34173] -[visit_id lanetype#34173] -[visit_exp dim#34173] -[visit_id dim#34173] -[visit_exp i#125132] -[visit_id i#125132] -[visit_exp (`I8`_lanetype, `%`_dim{i#125139}(16))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#125139}(16)] -[visit_exp i#125139] -[visit_id i#125139] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#30754}(`U`_sx)] -[visit_exp sx#30754] -[visit_id sx#30754] +[visit_exp `EXTADD_PAIRWISE`_vextunop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#612 Jnn#616 dim#34396 dim#34408 i#125475 i#125482 i#125487 i#125494 ishape_1#83 ishape_2#83 lanetype#34396 lanetype#34408 shape#5184 shape#5196 sx#30788 -dims \ I = Jnn#612, Jnn#616, dim#34396, dim#34408, i#125475, i#125482, i#125487, i#125494, ishape_1#83, ishape_2#83, lanetype#34396, lanetype#34408, shape#5184, shape#5196, sx#30788 -[visit_exp `VEXTUNOP`_instr{ishape_1#83, ishape_2#83}(`%`_ishape{shape#5184, Jnn#612}(`%X%`_shape{lanetype#34396, dim#34396, i#125475}(`I32`_lanetype, `%`_dim{i#125482}(4))), `%`_ishape{shape#5196, Jnn#616}(`%X%`_shape{lanetype#34408, dim#34408, i#125487}(`I16`_lanetype, `%`_dim{i#125494}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#30788}(`S`_sx))] -[visit_exp ishape_1#83] -[visit_id ishape_1#83] -[visit_exp ishape_2#83] -[visit_id ishape_2#83] -[visit_exp (`%`_ishape{shape#5184, Jnn#612}(`%X%`_shape{lanetype#34396, dim#34396, i#125475}(`I32`_lanetype, `%`_dim{i#125482}(4))), `%`_ishape{shape#5196, Jnn#616}(`%X%`_shape{lanetype#34408, dim#34408, i#125487}(`I16`_lanetype, `%`_dim{i#125494}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#30788}(`S`_sx))] -[visit_exp `%`_ishape{shape#5184, Jnn#612}(`%X%`_shape{lanetype#34396, dim#34396, i#125475}(`I32`_lanetype, `%`_dim{i#125482}(4)))] -[visit_exp shape#5184] -[visit_id shape#5184] -[visit_exp Jnn#612] -[visit_id Jnn#612] -[visit_exp (`%X%`_shape{lanetype#34396, dim#34396, i#125475}(`I32`_lanetype, `%`_dim{i#125482}(4)))] -[visit_exp `%X%`_shape{lanetype#34396, dim#34396, i#125475}(`I32`_lanetype, `%`_dim{i#125482}(4))] -[visit_exp lanetype#34396] -[visit_id lanetype#34396] -[visit_exp dim#34396] -[visit_id dim#34396] -[visit_exp i#125475] -[visit_id i#125475] -[visit_exp (`I32`_lanetype, `%`_dim{i#125482}(4))] +[check_dims] I +dims \ I = +[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#125482}(4)] -[visit_exp i#125482] -[visit_id i#125482] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#5196, Jnn#616}(`%X%`_shape{lanetype#34408, dim#34408, i#125487}(`I16`_lanetype, `%`_dim{i#125494}(8)))] -[visit_exp shape#5196] -[visit_id shape#5196] -[visit_exp Jnn#616] -[visit_id Jnn#616] -[visit_exp (`%X%`_shape{lanetype#34408, dim#34408, i#125487}(`I16`_lanetype, `%`_dim{i#125494}(8)))] -[visit_exp `%X%`_shape{lanetype#34408, dim#34408, i#125487}(`I16`_lanetype, `%`_dim{i#125494}(8))] -[visit_exp lanetype#34408] -[visit_id lanetype#34408] -[visit_exp dim#34408] -[visit_id dim#34408] -[visit_exp i#125487] -[visit_id i#125487] -[visit_exp (`I16`_lanetype, `%`_dim{i#125494}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#125494}(8)] -[visit_exp i#125494] -[visit_id i#125494] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#30788}(`S`_sx)] -[visit_exp sx#30788] -[visit_id sx#30788] +[visit_exp `EXTADD_PAIRWISE`_vextunop__(`S`_sx)] [visit_exp (`S`_sx)] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#620 Jnn#624 dim#34631 dim#34643 i#125830 i#125837 i#125842 i#125849 ishape_1#85 ishape_2#85 lanetype#34631 lanetype#34643 shape#5299 shape#5311 sx#30822 -dims \ I = Jnn#620, Jnn#624, dim#34631, dim#34643, i#125830, i#125837, i#125842, i#125849, ishape_1#85, ishape_2#85, lanetype#34631, lanetype#34643, shape#5299, shape#5311, sx#30822 -[visit_exp `VEXTUNOP`_instr{ishape_1#85, ishape_2#85}(`%`_ishape{shape#5299, Jnn#620}(`%X%`_shape{lanetype#34631, dim#34631, i#125830}(`I32`_lanetype, `%`_dim{i#125837}(4))), `%`_ishape{shape#5311, Jnn#624}(`%X%`_shape{lanetype#34643, dim#34643, i#125842}(`I16`_lanetype, `%`_dim{i#125849}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#30822}(`U`_sx))] -[visit_exp ishape_1#85] -[visit_id ishape_1#85] -[visit_exp ishape_2#85] -[visit_id ishape_2#85] -[visit_exp (`%`_ishape{shape#5299, Jnn#620}(`%X%`_shape{lanetype#34631, dim#34631, i#125830}(`I32`_lanetype, `%`_dim{i#125837}(4))), `%`_ishape{shape#5311, Jnn#624}(`%X%`_shape{lanetype#34643, dim#34643, i#125842}(`I16`_lanetype, `%`_dim{i#125849}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#30822}(`U`_sx))] -[visit_exp `%`_ishape{shape#5299, Jnn#620}(`%X%`_shape{lanetype#34631, dim#34631, i#125830}(`I32`_lanetype, `%`_dim{i#125837}(4)))] -[visit_exp shape#5299] -[visit_id shape#5299] -[visit_exp Jnn#620] -[visit_id Jnn#620] -[visit_exp (`%X%`_shape{lanetype#34631, dim#34631, i#125830}(`I32`_lanetype, `%`_dim{i#125837}(4)))] -[visit_exp `%X%`_shape{lanetype#34631, dim#34631, i#125830}(`I32`_lanetype, `%`_dim{i#125837}(4))] -[visit_exp lanetype#34631] -[visit_id lanetype#34631] -[visit_exp dim#34631] -[visit_id dim#34631] -[visit_exp i#125830] -[visit_id i#125830] -[visit_exp (`I32`_lanetype, `%`_dim{i#125837}(4))] +[check_dims] I +dims \ I = +[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#125837}(4)] -[visit_exp i#125837] -[visit_id i#125837] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#5311, Jnn#624}(`%X%`_shape{lanetype#34643, dim#34643, i#125842}(`I16`_lanetype, `%`_dim{i#125849}(8)))] -[visit_exp shape#5311] -[visit_id shape#5311] -[visit_exp Jnn#624] -[visit_id Jnn#624] -[visit_exp (`%X%`_shape{lanetype#34643, dim#34643, i#125842}(`I16`_lanetype, `%`_dim{i#125849}(8)))] -[visit_exp `%X%`_shape{lanetype#34643, dim#34643, i#125842}(`I16`_lanetype, `%`_dim{i#125849}(8))] -[visit_exp lanetype#34643] -[visit_id lanetype#34643] -[visit_exp dim#34643] -[visit_id dim#34643] -[visit_exp i#125842] -[visit_id i#125842] -[visit_exp (`I16`_lanetype, `%`_dim{i#125849}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#125849}(8)] -[visit_exp i#125849] -[visit_id i#125849] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTADD_PAIRWISE`_vextunop__{sx#30822}(`U`_sx)] -[visit_exp sx#30822] -[visit_id sx#30822] +[visit_exp `EXTADD_PAIRWISE`_vextunop__(`U`_sx)] [visit_exp (`U`_sx)] [visit_exp `U`_sx] [visit_exp ()] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#628 Jnn#632 dim#34866 dim#34878 half#1820 i#126185 i#126192 i#126197 i#126204 ishape_1#87 ishape_2#87 lanetype#34866 lanetype#34878 shape#5414 shape#5426 sx#30856 -dims \ I = Jnn#628, Jnn#632, dim#34866, dim#34878, half#1820, i#126185, i#126192, i#126197, i#126204, ishape_1#87, ishape_2#87, lanetype#34866, lanetype#34878, shape#5414, shape#5426, sx#30856 -[visit_exp `VEXTBINOP`_instr{ishape_1#87, ishape_2#87}(`%`_ishape{shape#5414, Jnn#628}(`%X%`_shape{lanetype#34866, dim#34866, i#126185}(`I16`_lanetype, `%`_dim{i#126192}(8))), `%`_ishape{shape#5426, Jnn#632}(`%X%`_shape{lanetype#34878, dim#34878, i#126197}(`I8`_lanetype, `%`_dim{i#126204}(16))), `EXTMUL`_vextbinop__{half#1820, sx#30856}(`LOW`_half, `S`_sx))] -[visit_exp ishape_1#87] -[visit_id ishape_1#87] -[visit_exp ishape_2#87] -[visit_id ishape_2#87] -[visit_exp (`%`_ishape{shape#5414, Jnn#628}(`%X%`_shape{lanetype#34866, dim#34866, i#126185}(`I16`_lanetype, `%`_dim{i#126192}(8))), `%`_ishape{shape#5426, Jnn#632}(`%X%`_shape{lanetype#34878, dim#34878, i#126197}(`I8`_lanetype, `%`_dim{i#126204}(16))), `EXTMUL`_vextbinop__{half#1820, sx#30856}(`LOW`_half, `S`_sx))] -[visit_exp `%`_ishape{shape#5414, Jnn#628}(`%X%`_shape{lanetype#34866, dim#34866, i#126185}(`I16`_lanetype, `%`_dim{i#126192}(8)))] -[visit_exp shape#5414] -[visit_id shape#5414] -[visit_exp Jnn#628] -[visit_id Jnn#628] -[visit_exp (`%X%`_shape{lanetype#34866, dim#34866, i#126185}(`I16`_lanetype, `%`_dim{i#126192}(8)))] -[visit_exp `%X%`_shape{lanetype#34866, dim#34866, i#126185}(`I16`_lanetype, `%`_dim{i#126192}(8))] -[visit_exp lanetype#34866] -[visit_id lanetype#34866] -[visit_exp dim#34866] -[visit_id dim#34866] -[visit_exp i#126185] -[visit_id i#126185] -[visit_exp (`I16`_lanetype, `%`_dim{i#126192}(8))] +[check_dims] I +dims \ I = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#126192}(8)] -[visit_exp i#126192] -[visit_id i#126192] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#5426, Jnn#632}(`%X%`_shape{lanetype#34878, dim#34878, i#126197}(`I8`_lanetype, `%`_dim{i#126204}(16)))] -[visit_exp shape#5426] -[visit_id shape#5426] -[visit_exp Jnn#632] -[visit_id Jnn#632] -[visit_exp (`%X%`_shape{lanetype#34878, dim#34878, i#126197}(`I8`_lanetype, `%`_dim{i#126204}(16)))] -[visit_exp `%X%`_shape{lanetype#34878, dim#34878, i#126197}(`I8`_lanetype, `%`_dim{i#126204}(16))] -[visit_exp lanetype#34878] -[visit_id lanetype#34878] -[visit_exp dim#34878] -[visit_id dim#34878] -[visit_exp i#126197] -[visit_id i#126197] -[visit_exp (`I8`_lanetype, `%`_dim{i#126204}(16))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#126204}(16)] -[visit_exp i#126204] -[visit_id i#126204] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__{half#1820, sx#30856}(`LOW`_half, `S`_sx)] -[visit_exp half#1820] -[visit_id half#1820] -[visit_exp sx#30856] -[visit_id sx#30856] +[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)] [visit_exp (`LOW`_half, `S`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#636 Jnn#640 dim#35101 dim#35113 half#1854 i#126540 i#126547 i#126552 i#126559 ishape_1#89 ishape_2#89 lanetype#35101 lanetype#35113 shape#5529 shape#5541 sx#30890 -dims \ I = Jnn#636, Jnn#640, dim#35101, dim#35113, half#1854, i#126540, i#126547, i#126552, i#126559, ishape_1#89, ishape_2#89, lanetype#35101, lanetype#35113, shape#5529, shape#5541, sx#30890 -[visit_exp `VEXTBINOP`_instr{ishape_1#89, ishape_2#89}(`%`_ishape{shape#5529, Jnn#636}(`%X%`_shape{lanetype#35101, dim#35101, i#126540}(`I16`_lanetype, `%`_dim{i#126547}(8))), `%`_ishape{shape#5541, Jnn#640}(`%X%`_shape{lanetype#35113, dim#35113, i#126552}(`I8`_lanetype, `%`_dim{i#126559}(16))), `EXTMUL`_vextbinop__{half#1854, sx#30890}(`LOW`_half, `U`_sx))] -[visit_exp ishape_1#89] -[visit_id ishape_1#89] -[visit_exp ishape_2#89] -[visit_id ishape_2#89] -[visit_exp (`%`_ishape{shape#5529, Jnn#636}(`%X%`_shape{lanetype#35101, dim#35101, i#126540}(`I16`_lanetype, `%`_dim{i#126547}(8))), `%`_ishape{shape#5541, Jnn#640}(`%X%`_shape{lanetype#35113, dim#35113, i#126552}(`I8`_lanetype, `%`_dim{i#126559}(16))), `EXTMUL`_vextbinop__{half#1854, sx#30890}(`LOW`_half, `U`_sx))] -[visit_exp `%`_ishape{shape#5529, Jnn#636}(`%X%`_shape{lanetype#35101, dim#35101, i#126540}(`I16`_lanetype, `%`_dim{i#126547}(8)))] -[visit_exp shape#5529] -[visit_id shape#5529] -[visit_exp Jnn#636] -[visit_id Jnn#636] -[visit_exp (`%X%`_shape{lanetype#35101, dim#35101, i#126540}(`I16`_lanetype, `%`_dim{i#126547}(8)))] -[visit_exp `%X%`_shape{lanetype#35101, dim#35101, i#126540}(`I16`_lanetype, `%`_dim{i#126547}(8))] -[visit_exp lanetype#35101] -[visit_id lanetype#35101] -[visit_exp dim#35101] -[visit_id dim#35101] -[visit_exp i#126540] -[visit_id i#126540] -[visit_exp (`I16`_lanetype, `%`_dim{i#126547}(8))] +[check_dims] I +dims \ I = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#126547}(8)] -[visit_exp i#126547] -[visit_id i#126547] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#5541, Jnn#640}(`%X%`_shape{lanetype#35113, dim#35113, i#126552}(`I8`_lanetype, `%`_dim{i#126559}(16)))] -[visit_exp shape#5541] -[visit_id shape#5541] -[visit_exp Jnn#640] -[visit_id Jnn#640] -[visit_exp (`%X%`_shape{lanetype#35113, dim#35113, i#126552}(`I8`_lanetype, `%`_dim{i#126559}(16)))] -[visit_exp `%X%`_shape{lanetype#35113, dim#35113, i#126552}(`I8`_lanetype, `%`_dim{i#126559}(16))] -[visit_exp lanetype#35113] -[visit_id lanetype#35113] -[visit_exp dim#35113] -[visit_id dim#35113] -[visit_exp i#126552] -[visit_id i#126552] -[visit_exp (`I8`_lanetype, `%`_dim{i#126559}(16))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#126559}(16)] -[visit_exp i#126559] -[visit_id i#126559] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__{half#1854, sx#30890}(`LOW`_half, `U`_sx)] -[visit_exp half#1854] -[visit_id half#1854] -[visit_exp sx#30890] -[visit_id sx#30890] +[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)] [visit_exp (`LOW`_half, `U`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I Jnn#644 Jnn#648 dim#35336 dim#35348 half#1888 i#126895 i#126902 i#126907 i#126914 ishape_1#91 ishape_2#91 lanetype#35336 lanetype#35348 shape#5644 shape#5656 sx#30924 -dims \ I = Jnn#644, Jnn#648, dim#35336, dim#35348, half#1888, i#126895, i#126902, i#126907, i#126914, ishape_1#91, ishape_2#91, lanetype#35336, lanetype#35348, shape#5644, shape#5656, sx#30924 -[visit_exp `VEXTBINOP`_instr{ishape_1#91, ishape_2#91}(`%`_ishape{shape#5644, Jnn#644}(`%X%`_shape{lanetype#35336, dim#35336, i#126895}(`I16`_lanetype, `%`_dim{i#126902}(8))), `%`_ishape{shape#5656, Jnn#648}(`%X%`_shape{lanetype#35348, dim#35348, i#126907}(`I8`_lanetype, `%`_dim{i#126914}(16))), `EXTMUL`_vextbinop__{half#1888, sx#30924}(`HIGH`_half, `S`_sx))] -[visit_exp ishape_1#91] -[visit_id ishape_1#91] -[visit_exp ishape_2#91] -[visit_id ishape_2#91] -[visit_exp (`%`_ishape{shape#5644, Jnn#644}(`%X%`_shape{lanetype#35336, dim#35336, i#126895}(`I16`_lanetype, `%`_dim{i#126902}(8))), `%`_ishape{shape#5656, Jnn#648}(`%X%`_shape{lanetype#35348, dim#35348, i#126907}(`I8`_lanetype, `%`_dim{i#126914}(16))), `EXTMUL`_vextbinop__{half#1888, sx#30924}(`HIGH`_half, `S`_sx))] -[visit_exp `%`_ishape{shape#5644, Jnn#644}(`%X%`_shape{lanetype#35336, dim#35336, i#126895}(`I16`_lanetype, `%`_dim{i#126902}(8)))] -[visit_exp shape#5644] -[visit_id shape#5644] -[visit_exp Jnn#644] -[visit_id Jnn#644] -[visit_exp (`%X%`_shape{lanetype#35336, dim#35336, i#126895}(`I16`_lanetype, `%`_dim{i#126902}(8)))] -[visit_exp `%X%`_shape{lanetype#35336, dim#35336, i#126895}(`I16`_lanetype, `%`_dim{i#126902}(8))] -[visit_exp lanetype#35336] -[visit_id lanetype#35336] -[visit_exp dim#35336] -[visit_id dim#35336] -[visit_exp i#126895] -[visit_id i#126895] -[visit_exp (`I16`_lanetype, `%`_dim{i#126902}(8))] +[check_dims] I +dims \ I = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#126902}(8)] -[visit_exp i#126902] -[visit_id i#126902] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#5656, Jnn#648}(`%X%`_shape{lanetype#35348, dim#35348, i#126907}(`I8`_lanetype, `%`_dim{i#126914}(16)))] -[visit_exp shape#5656] -[visit_id shape#5656] -[visit_exp Jnn#648] -[visit_id Jnn#648] -[visit_exp (`%X%`_shape{lanetype#35348, dim#35348, i#126907}(`I8`_lanetype, `%`_dim{i#126914}(16)))] -[visit_exp `%X%`_shape{lanetype#35348, dim#35348, i#126907}(`I8`_lanetype, `%`_dim{i#126914}(16))] -[visit_exp lanetype#35348] -[visit_id lanetype#35348] -[visit_exp dim#35348] -[visit_id dim#35348] -[visit_exp i#126907] -[visit_id i#126907] -[visit_exp (`I8`_lanetype, `%`_dim{i#126914}(16))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#126914}(16)] -[visit_exp i#126914] -[visit_id i#126914] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__{half#1888, sx#30924}(`HIGH`_half, `S`_sx)] -[visit_exp half#1888] -[visit_id half#1888] -[visit_exp sx#30924] -[visit_id sx#30924] +[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)] [visit_exp (`HIGH`_half, `S`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#652 Jnn#656 dim#35571 dim#35583 half#1922 i#127250 i#127257 i#127262 i#127269 ishape_1#93 ishape_2#93 lanetype#35571 lanetype#35583 shape#5759 shape#5771 sx#30958 -dims \ I = Jnn#652, Jnn#656, dim#35571, dim#35583, half#1922, i#127250, i#127257, i#127262, i#127269, ishape_1#93, ishape_2#93, lanetype#35571, lanetype#35583, shape#5759, shape#5771, sx#30958 -[visit_exp `VEXTBINOP`_instr{ishape_1#93, ishape_2#93}(`%`_ishape{shape#5759, Jnn#652}(`%X%`_shape{lanetype#35571, dim#35571, i#127250}(`I16`_lanetype, `%`_dim{i#127257}(8))), `%`_ishape{shape#5771, Jnn#656}(`%X%`_shape{lanetype#35583, dim#35583, i#127262}(`I8`_lanetype, `%`_dim{i#127269}(16))), `EXTMUL`_vextbinop__{half#1922, sx#30958}(`HIGH`_half, `U`_sx))] -[visit_exp ishape_1#93] -[visit_id ishape_1#93] -[visit_exp ishape_2#93] -[visit_id ishape_2#93] -[visit_exp (`%`_ishape{shape#5759, Jnn#652}(`%X%`_shape{lanetype#35571, dim#35571, i#127250}(`I16`_lanetype, `%`_dim{i#127257}(8))), `%`_ishape{shape#5771, Jnn#656}(`%X%`_shape{lanetype#35583, dim#35583, i#127262}(`I8`_lanetype, `%`_dim{i#127269}(16))), `EXTMUL`_vextbinop__{half#1922, sx#30958}(`HIGH`_half, `U`_sx))] -[visit_exp `%`_ishape{shape#5759, Jnn#652}(`%X%`_shape{lanetype#35571, dim#35571, i#127250}(`I16`_lanetype, `%`_dim{i#127257}(8)))] -[visit_exp shape#5759] -[visit_id shape#5759] -[visit_exp Jnn#652] -[visit_id Jnn#652] -[visit_exp (`%X%`_shape{lanetype#35571, dim#35571, i#127250}(`I16`_lanetype, `%`_dim{i#127257}(8)))] -[visit_exp `%X%`_shape{lanetype#35571, dim#35571, i#127250}(`I16`_lanetype, `%`_dim{i#127257}(8))] -[visit_exp lanetype#35571] -[visit_id lanetype#35571] -[visit_exp dim#35571] -[visit_id dim#35571] -[visit_exp i#127250] -[visit_id i#127250] -[visit_exp (`I16`_lanetype, `%`_dim{i#127257}(8))] +[check_dims] I +dims \ I = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#127257}(8)] -[visit_exp i#127257] -[visit_id i#127257] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `%`_ishape{shape#5771, Jnn#656}(`%X%`_shape{lanetype#35583, dim#35583, i#127262}(`I8`_lanetype, `%`_dim{i#127269}(16)))] -[visit_exp shape#5771] -[visit_id shape#5771] -[visit_exp Jnn#656] -[visit_id Jnn#656] -[visit_exp (`%X%`_shape{lanetype#35583, dim#35583, i#127262}(`I8`_lanetype, `%`_dim{i#127269}(16)))] -[visit_exp `%X%`_shape{lanetype#35583, dim#35583, i#127262}(`I8`_lanetype, `%`_dim{i#127269}(16))] -[visit_exp lanetype#35583] -[visit_id lanetype#35583] -[visit_exp dim#35583] -[visit_id dim#35583] -[visit_exp i#127262] -[visit_id i#127262] -[visit_exp (`I8`_lanetype, `%`_dim{i#127269}(16))] +[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] +[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] +[visit_exp (`I8`_lanetype, `%`_dim(16))] [visit_exp `I8`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#127269}(16)] -[visit_exp i#127269] -[visit_id i#127269] +[visit_exp `%`_dim(16)] [visit_exp (16)] [visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__{half#1922, sx#30958}(`HIGH`_half, `U`_sx)] -[visit_exp half#1922] -[visit_id half#1922] -[visit_exp sx#30958] -[visit_id sx#30958] +[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)] [visit_exp (`HIGH`_half, `U`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] @@ -106188,294 +82146,138 @@ dims \ I = Jnn#652, Jnn#656, dim#35571, dim#35583, half#1922, i#127250, i#127257 [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#660 Jnn#664 dim#35806 dim#35818 half#1956 i#127605 i#127612 i#127617 i#127624 ishape_1#95 ishape_2#95 lanetype#35806 lanetype#35818 shape#5874 shape#5886 sx#30992 -dims \ I = Jnn#660, Jnn#664, dim#35806, dim#35818, half#1956, i#127605, i#127612, i#127617, i#127624, ishape_1#95, ishape_2#95, lanetype#35806, lanetype#35818, shape#5874, shape#5886, sx#30992 -[visit_exp `VEXTBINOP`_instr{ishape_1#95, ishape_2#95}(`%`_ishape{shape#5874, Jnn#660}(`%X%`_shape{lanetype#35806, dim#35806, i#127605}(`I32`_lanetype, `%`_dim{i#127612}(4))), `%`_ishape{shape#5886, Jnn#664}(`%X%`_shape{lanetype#35818, dim#35818, i#127617}(`I16`_lanetype, `%`_dim{i#127624}(8))), `EXTMUL`_vextbinop__{half#1956, sx#30992}(`LOW`_half, `S`_sx))] -[visit_exp ishape_1#95] -[visit_id ishape_1#95] -[visit_exp ishape_2#95] -[visit_id ishape_2#95] -[visit_exp (`%`_ishape{shape#5874, Jnn#660}(`%X%`_shape{lanetype#35806, dim#35806, i#127605}(`I32`_lanetype, `%`_dim{i#127612}(4))), `%`_ishape{shape#5886, Jnn#664}(`%X%`_shape{lanetype#35818, dim#35818, i#127617}(`I16`_lanetype, `%`_dim{i#127624}(8))), `EXTMUL`_vextbinop__{half#1956, sx#30992}(`LOW`_half, `S`_sx))] -[visit_exp `%`_ishape{shape#5874, Jnn#660}(`%X%`_shape{lanetype#35806, dim#35806, i#127605}(`I32`_lanetype, `%`_dim{i#127612}(4)))] -[visit_exp shape#5874] -[visit_id shape#5874] -[visit_exp Jnn#660] -[visit_id Jnn#660] -[visit_exp (`%X%`_shape{lanetype#35806, dim#35806, i#127605}(`I32`_lanetype, `%`_dim{i#127612}(4)))] -[visit_exp `%X%`_shape{lanetype#35806, dim#35806, i#127605}(`I32`_lanetype, `%`_dim{i#127612}(4))] -[visit_exp lanetype#35806] -[visit_id lanetype#35806] -[visit_exp dim#35806] -[visit_id dim#35806] -[visit_exp i#127605] -[visit_id i#127605] -[visit_exp (`I32`_lanetype, `%`_dim{i#127612}(4))] +[check_dims] I +dims \ I = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#127612}(4)] -[visit_exp i#127612] -[visit_id i#127612] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#5886, Jnn#664}(`%X%`_shape{lanetype#35818, dim#35818, i#127617}(`I16`_lanetype, `%`_dim{i#127624}(8)))] -[visit_exp shape#5886] -[visit_id shape#5886] -[visit_exp Jnn#664] -[visit_id Jnn#664] -[visit_exp (`%X%`_shape{lanetype#35818, dim#35818, i#127617}(`I16`_lanetype, `%`_dim{i#127624}(8)))] -[visit_exp `%X%`_shape{lanetype#35818, dim#35818, i#127617}(`I16`_lanetype, `%`_dim{i#127624}(8))] -[visit_exp lanetype#35818] -[visit_id lanetype#35818] -[visit_exp dim#35818] -[visit_id dim#35818] -[visit_exp i#127617] -[visit_id i#127617] -[visit_exp (`I16`_lanetype, `%`_dim{i#127624}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#127624}(8)] -[visit_exp i#127624] -[visit_id i#127624] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__{half#1956, sx#30992}(`LOW`_half, `S`_sx)] -[visit_exp half#1956] -[visit_id half#1956] -[visit_exp sx#30992] -[visit_id sx#30992] +[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)] [visit_exp (`LOW`_half, `S`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#668 Jnn#672 dim#36041 dim#36053 half#1990 i#127960 i#127967 i#127972 i#127979 ishape_1#97 ishape_2#97 lanetype#36041 lanetype#36053 shape#5989 shape#6001 sx#31026 -dims \ I = Jnn#668, Jnn#672, dim#36041, dim#36053, half#1990, i#127960, i#127967, i#127972, i#127979, ishape_1#97, ishape_2#97, lanetype#36041, lanetype#36053, shape#5989, shape#6001, sx#31026 -[visit_exp `VEXTBINOP`_instr{ishape_1#97, ishape_2#97}(`%`_ishape{shape#5989, Jnn#668}(`%X%`_shape{lanetype#36041, dim#36041, i#127960}(`I32`_lanetype, `%`_dim{i#127967}(4))), `%`_ishape{shape#6001, Jnn#672}(`%X%`_shape{lanetype#36053, dim#36053, i#127972}(`I16`_lanetype, `%`_dim{i#127979}(8))), `EXTMUL`_vextbinop__{half#1990, sx#31026}(`LOW`_half, `U`_sx))] -[visit_exp ishape_1#97] -[visit_id ishape_1#97] -[visit_exp ishape_2#97] -[visit_id ishape_2#97] -[visit_exp (`%`_ishape{shape#5989, Jnn#668}(`%X%`_shape{lanetype#36041, dim#36041, i#127960}(`I32`_lanetype, `%`_dim{i#127967}(4))), `%`_ishape{shape#6001, Jnn#672}(`%X%`_shape{lanetype#36053, dim#36053, i#127972}(`I16`_lanetype, `%`_dim{i#127979}(8))), `EXTMUL`_vextbinop__{half#1990, sx#31026}(`LOW`_half, `U`_sx))] -[visit_exp `%`_ishape{shape#5989, Jnn#668}(`%X%`_shape{lanetype#36041, dim#36041, i#127960}(`I32`_lanetype, `%`_dim{i#127967}(4)))] -[visit_exp shape#5989] -[visit_id shape#5989] -[visit_exp Jnn#668] -[visit_id Jnn#668] -[visit_exp (`%X%`_shape{lanetype#36041, dim#36041, i#127960}(`I32`_lanetype, `%`_dim{i#127967}(4)))] -[visit_exp `%X%`_shape{lanetype#36041, dim#36041, i#127960}(`I32`_lanetype, `%`_dim{i#127967}(4))] -[visit_exp lanetype#36041] -[visit_id lanetype#36041] -[visit_exp dim#36041] -[visit_id dim#36041] -[visit_exp i#127960] -[visit_id i#127960] -[visit_exp (`I32`_lanetype, `%`_dim{i#127967}(4))] +[check_dims] I +dims \ I = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#127967}(4)] -[visit_exp i#127967] -[visit_id i#127967] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#6001, Jnn#672}(`%X%`_shape{lanetype#36053, dim#36053, i#127972}(`I16`_lanetype, `%`_dim{i#127979}(8)))] -[visit_exp shape#6001] -[visit_id shape#6001] -[visit_exp Jnn#672] -[visit_id Jnn#672] -[visit_exp (`%X%`_shape{lanetype#36053, dim#36053, i#127972}(`I16`_lanetype, `%`_dim{i#127979}(8)))] -[visit_exp `%X%`_shape{lanetype#36053, dim#36053, i#127972}(`I16`_lanetype, `%`_dim{i#127979}(8))] -[visit_exp lanetype#36053] -[visit_id lanetype#36053] -[visit_exp dim#36053] -[visit_id dim#36053] -[visit_exp i#127972] -[visit_id i#127972] -[visit_exp (`I16`_lanetype, `%`_dim{i#127979}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#127979}(8)] -[visit_exp i#127979] -[visit_id i#127979] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__{half#1990, sx#31026}(`LOW`_half, `U`_sx)] -[visit_exp half#1990] -[visit_id half#1990] -[visit_exp sx#31026] -[visit_id sx#31026] +[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)] [visit_exp (`LOW`_half, `U`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I Jnn#676 Jnn#680 dim#36276 dim#36288 half#2024 i#128315 i#128322 i#128327 i#128334 ishape_1#99 ishape_2#99 lanetype#36276 lanetype#36288 shape#6104 shape#6116 sx#31060 -dims \ I = Jnn#676, Jnn#680, dim#36276, dim#36288, half#2024, i#128315, i#128322, i#128327, i#128334, ishape_1#99, ishape_2#99, lanetype#36276, lanetype#36288, shape#6104, shape#6116, sx#31060 -[visit_exp `VEXTBINOP`_instr{ishape_1#99, ishape_2#99}(`%`_ishape{shape#6104, Jnn#676}(`%X%`_shape{lanetype#36276, dim#36276, i#128315}(`I32`_lanetype, `%`_dim{i#128322}(4))), `%`_ishape{shape#6116, Jnn#680}(`%X%`_shape{lanetype#36288, dim#36288, i#128327}(`I16`_lanetype, `%`_dim{i#128334}(8))), `EXTMUL`_vextbinop__{half#2024, sx#31060}(`HIGH`_half, `S`_sx))] -[visit_exp ishape_1#99] -[visit_id ishape_1#99] -[visit_exp ishape_2#99] -[visit_id ishape_2#99] -[visit_exp (`%`_ishape{shape#6104, Jnn#676}(`%X%`_shape{lanetype#36276, dim#36276, i#128315}(`I32`_lanetype, `%`_dim{i#128322}(4))), `%`_ishape{shape#6116, Jnn#680}(`%X%`_shape{lanetype#36288, dim#36288, i#128327}(`I16`_lanetype, `%`_dim{i#128334}(8))), `EXTMUL`_vextbinop__{half#2024, sx#31060}(`HIGH`_half, `S`_sx))] -[visit_exp `%`_ishape{shape#6104, Jnn#676}(`%X%`_shape{lanetype#36276, dim#36276, i#128315}(`I32`_lanetype, `%`_dim{i#128322}(4)))] -[visit_exp shape#6104] -[visit_id shape#6104] -[visit_exp Jnn#676] -[visit_id Jnn#676] -[visit_exp (`%X%`_shape{lanetype#36276, dim#36276, i#128315}(`I32`_lanetype, `%`_dim{i#128322}(4)))] -[visit_exp `%X%`_shape{lanetype#36276, dim#36276, i#128315}(`I32`_lanetype, `%`_dim{i#128322}(4))] -[visit_exp lanetype#36276] -[visit_id lanetype#36276] -[visit_exp dim#36276] -[visit_id dim#36276] -[visit_exp i#128315] -[visit_id i#128315] -[visit_exp (`I32`_lanetype, `%`_dim{i#128322}(4))] +[check_dims] I +dims \ I = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#128322}(4)] -[visit_exp i#128322] -[visit_id i#128322] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#6116, Jnn#680}(`%X%`_shape{lanetype#36288, dim#36288, i#128327}(`I16`_lanetype, `%`_dim{i#128334}(8)))] -[visit_exp shape#6116] -[visit_id shape#6116] -[visit_exp Jnn#680] -[visit_id Jnn#680] -[visit_exp (`%X%`_shape{lanetype#36288, dim#36288, i#128327}(`I16`_lanetype, `%`_dim{i#128334}(8)))] -[visit_exp `%X%`_shape{lanetype#36288, dim#36288, i#128327}(`I16`_lanetype, `%`_dim{i#128334}(8))] -[visit_exp lanetype#36288] -[visit_id lanetype#36288] -[visit_exp dim#36288] -[visit_id dim#36288] -[visit_exp i#128327] -[visit_id i#128327] -[visit_exp (`I16`_lanetype, `%`_dim{i#128334}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#128334}(8)] -[visit_exp i#128334] -[visit_id i#128334] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__{half#2024, sx#31060}(`HIGH`_half, `S`_sx)] -[visit_exp half#2024] -[visit_id half#2024] -[visit_exp sx#31060] -[visit_id sx#31060] +[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)] [visit_exp (`HIGH`_half, `S`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#684 Jnn#688 dim#36511 dim#36523 half#2058 i#128670 i#128677 i#128682 i#128689 ishape_1#101 ishape_2#101 lanetype#36511 lanetype#36523 shape#6219 shape#6231 sx#31094 -dims \ I = Jnn#684, Jnn#688, dim#36511, dim#36523, half#2058, i#128670, i#128677, i#128682, i#128689, ishape_1#101, ishape_2#101, lanetype#36511, lanetype#36523, shape#6219, shape#6231, sx#31094 -[visit_exp `VEXTBINOP`_instr{ishape_1#101, ishape_2#101}(`%`_ishape{shape#6219, Jnn#684}(`%X%`_shape{lanetype#36511, dim#36511, i#128670}(`I32`_lanetype, `%`_dim{i#128677}(4))), `%`_ishape{shape#6231, Jnn#688}(`%X%`_shape{lanetype#36523, dim#36523, i#128682}(`I16`_lanetype, `%`_dim{i#128689}(8))), `EXTMUL`_vextbinop__{half#2058, sx#31094}(`HIGH`_half, `U`_sx))] -[visit_exp ishape_1#101] -[visit_id ishape_1#101] -[visit_exp ishape_2#101] -[visit_id ishape_2#101] -[visit_exp (`%`_ishape{shape#6219, Jnn#684}(`%X%`_shape{lanetype#36511, dim#36511, i#128670}(`I32`_lanetype, `%`_dim{i#128677}(4))), `%`_ishape{shape#6231, Jnn#688}(`%X%`_shape{lanetype#36523, dim#36523, i#128682}(`I16`_lanetype, `%`_dim{i#128689}(8))), `EXTMUL`_vextbinop__{half#2058, sx#31094}(`HIGH`_half, `U`_sx))] -[visit_exp `%`_ishape{shape#6219, Jnn#684}(`%X%`_shape{lanetype#36511, dim#36511, i#128670}(`I32`_lanetype, `%`_dim{i#128677}(4)))] -[visit_exp shape#6219] -[visit_id shape#6219] -[visit_exp Jnn#684] -[visit_id Jnn#684] -[visit_exp (`%X%`_shape{lanetype#36511, dim#36511, i#128670}(`I32`_lanetype, `%`_dim{i#128677}(4)))] -[visit_exp `%X%`_shape{lanetype#36511, dim#36511, i#128670}(`I32`_lanetype, `%`_dim{i#128677}(4))] -[visit_exp lanetype#36511] -[visit_id lanetype#36511] -[visit_exp dim#36511] -[visit_id dim#36511] -[visit_exp i#128670] -[visit_id i#128670] -[visit_exp (`I32`_lanetype, `%`_dim{i#128677}(4))] +[check_dims] I +dims \ I = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#128677}(4)] -[visit_exp i#128677] -[visit_id i#128677] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#6231, Jnn#688}(`%X%`_shape{lanetype#36523, dim#36523, i#128682}(`I16`_lanetype, `%`_dim{i#128689}(8)))] -[visit_exp shape#6231] -[visit_id shape#6231] -[visit_exp Jnn#688] -[visit_id Jnn#688] -[visit_exp (`%X%`_shape{lanetype#36523, dim#36523, i#128682}(`I16`_lanetype, `%`_dim{i#128689}(8)))] -[visit_exp `%X%`_shape{lanetype#36523, dim#36523, i#128682}(`I16`_lanetype, `%`_dim{i#128689}(8))] -[visit_exp lanetype#36523] -[visit_id lanetype#36523] -[visit_exp dim#36523] -[visit_id dim#36523] -[visit_exp i#128682] -[visit_id i#128682] -[visit_exp (`I16`_lanetype, `%`_dim{i#128689}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#128689}(8)] -[visit_exp i#128689] -[visit_id i#128689] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__{half#2058, sx#31094}(`HIGH`_half, `U`_sx)] -[visit_exp half#2058] -[visit_id half#2058] -[visit_exp sx#31094] -[visit_id sx#31094] +[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)] [visit_exp (`HIGH`_half, `U`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I Jnn#692 Jnn#696 dim#36746 dim#36758 i#129025 i#129032 i#129037 i#129044 ishape_1#103 ishape_2#103 lanetype#36746 lanetype#36758 shape#6334 shape#6346 -dims \ I = Jnn#692, Jnn#696, dim#36746, dim#36758, i#129025, i#129032, i#129037, i#129044, ishape_1#103, ishape_2#103, lanetype#36746, lanetype#36758, shape#6334, shape#6346 -[visit_exp `VEXTBINOP`_instr{ishape_1#103, ishape_2#103}(`%`_ishape{shape#6334, Jnn#692}(`%X%`_shape{lanetype#36746, dim#36746, i#129025}(`I32`_lanetype, `%`_dim{i#129032}(4))), `%`_ishape{shape#6346, Jnn#696}(`%X%`_shape{lanetype#36758, dim#36758, i#129037}(`I16`_lanetype, `%`_dim{i#129044}(8))), `DOTS`_vextbinop__)] -[visit_exp ishape_1#103] -[visit_id ishape_1#103] -[visit_exp ishape_2#103] -[visit_id ishape_2#103] -[visit_exp (`%`_ishape{shape#6334, Jnn#692}(`%X%`_shape{lanetype#36746, dim#36746, i#129025}(`I32`_lanetype, `%`_dim{i#129032}(4))), `%`_ishape{shape#6346, Jnn#696}(`%X%`_shape{lanetype#36758, dim#36758, i#129037}(`I16`_lanetype, `%`_dim{i#129044}(8))), `DOTS`_vextbinop__)] -[visit_exp `%`_ishape{shape#6334, Jnn#692}(`%X%`_shape{lanetype#36746, dim#36746, i#129025}(`I32`_lanetype, `%`_dim{i#129032}(4)))] -[visit_exp shape#6334] -[visit_id shape#6334] -[visit_exp Jnn#692] -[visit_id Jnn#692] -[visit_exp (`%X%`_shape{lanetype#36746, dim#36746, i#129025}(`I32`_lanetype, `%`_dim{i#129032}(4)))] -[visit_exp `%X%`_shape{lanetype#36746, dim#36746, i#129025}(`I32`_lanetype, `%`_dim{i#129032}(4))] -[visit_exp lanetype#36746] -[visit_id lanetype#36746] -[visit_exp dim#36746] -[visit_id dim#36746] -[visit_exp i#129025] -[visit_id i#129025] -[visit_exp (`I32`_lanetype, `%`_dim{i#129032}(4))] +[check_dims] I +dims \ I = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `DOTS`_vextbinop__)] +[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `DOTS`_vextbinop__)] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#129032}(4)] -[visit_exp i#129032] -[visit_id i#129032] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `%`_ishape{shape#6346, Jnn#696}(`%X%`_shape{lanetype#36758, dim#36758, i#129037}(`I16`_lanetype, `%`_dim{i#129044}(8)))] -[visit_exp shape#6346] -[visit_id shape#6346] -[visit_exp Jnn#696] -[visit_id Jnn#696] -[visit_exp (`%X%`_shape{lanetype#36758, dim#36758, i#129037}(`I16`_lanetype, `%`_dim{i#129044}(8)))] -[visit_exp `%X%`_shape{lanetype#36758, dim#36758, i#129037}(`I16`_lanetype, `%`_dim{i#129044}(8))] -[visit_exp lanetype#36758] -[visit_id lanetype#36758] -[visit_exp dim#36758] -[visit_id dim#36758] -[visit_exp i#129037] -[visit_id i#129037] -[visit_exp (`I16`_lanetype, `%`_dim{i#129044}(8))] +[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] +[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] +[visit_exp (`I16`_lanetype, `%`_dim(8))] [visit_exp `I16`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#129044}(8)] -[visit_exp i#129044] -[visit_id i#129044] +[visit_exp `%`_dim(8)] [visit_exp (8)] [visit_exp 8] [visit_exp `DOTS`_vextbinop__] @@ -106483,241 +82285,113 @@ dims \ I = Jnn#692, Jnn#696, dim#36746, dim#36758, i#129025, i#129032, i#129037, [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I Jnn#700 Jnn#704 dim#36981 dim#36993 half#2122 i#129380 i#129387 i#129392 i#129399 ishape_1#105 ishape_2#105 lanetype#36981 lanetype#36993 shape#6449 shape#6461 sx#31158 -dims \ I = Jnn#700, Jnn#704, dim#36981, dim#36993, half#2122, i#129380, i#129387, i#129392, i#129399, ishape_1#105, ishape_2#105, lanetype#36981, lanetype#36993, shape#6449, shape#6461, sx#31158 -[visit_exp `VEXTBINOP`_instr{ishape_1#105, ishape_2#105}(`%`_ishape{shape#6449, Jnn#700}(`%X%`_shape{lanetype#36981, dim#36981, i#129380}(`I64`_lanetype, `%`_dim{i#129387}(2))), `%`_ishape{shape#6461, Jnn#704}(`%X%`_shape{lanetype#36993, dim#36993, i#129392}(`I32`_lanetype, `%`_dim{i#129399}(4))), `EXTMUL`_vextbinop__{half#2122, sx#31158}(`LOW`_half, `S`_sx))] -[visit_exp ishape_1#105] -[visit_id ishape_1#105] -[visit_exp ishape_2#105] -[visit_id ishape_2#105] -[visit_exp (`%`_ishape{shape#6449, Jnn#700}(`%X%`_shape{lanetype#36981, dim#36981, i#129380}(`I64`_lanetype, `%`_dim{i#129387}(2))), `%`_ishape{shape#6461, Jnn#704}(`%X%`_shape{lanetype#36993, dim#36993, i#129392}(`I32`_lanetype, `%`_dim{i#129399}(4))), `EXTMUL`_vextbinop__{half#2122, sx#31158}(`LOW`_half, `S`_sx))] -[visit_exp `%`_ishape{shape#6449, Jnn#700}(`%X%`_shape{lanetype#36981, dim#36981, i#129380}(`I64`_lanetype, `%`_dim{i#129387}(2)))] -[visit_exp shape#6449] -[visit_id shape#6449] -[visit_exp Jnn#700] -[visit_id Jnn#700] -[visit_exp (`%X%`_shape{lanetype#36981, dim#36981, i#129380}(`I64`_lanetype, `%`_dim{i#129387}(2)))] -[visit_exp `%X%`_shape{lanetype#36981, dim#36981, i#129380}(`I64`_lanetype, `%`_dim{i#129387}(2))] -[visit_exp lanetype#36981] -[visit_id lanetype#36981] -[visit_exp dim#36981] -[visit_id dim#36981] -[visit_exp i#129380] -[visit_id i#129380] -[visit_exp (`I64`_lanetype, `%`_dim{i#129387}(2))] +[check_dims] I +dims \ I = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#129387}(2)] -[visit_exp i#129387] -[visit_id i#129387] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%`_ishape{shape#6461, Jnn#704}(`%X%`_shape{lanetype#36993, dim#36993, i#129392}(`I32`_lanetype, `%`_dim{i#129399}(4)))] -[visit_exp shape#6461] -[visit_id shape#6461] -[visit_exp Jnn#704] -[visit_id Jnn#704] -[visit_exp (`%X%`_shape{lanetype#36993, dim#36993, i#129392}(`I32`_lanetype, `%`_dim{i#129399}(4)))] -[visit_exp `%X%`_shape{lanetype#36993, dim#36993, i#129392}(`I32`_lanetype, `%`_dim{i#129399}(4))] -[visit_exp lanetype#36993] -[visit_id lanetype#36993] -[visit_exp dim#36993] -[visit_id dim#36993] -[visit_exp i#129392] -[visit_id i#129392] -[visit_exp (`I32`_lanetype, `%`_dim{i#129399}(4))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#129399}(4)] -[visit_exp i#129399] -[visit_id i#129399] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__{half#2122, sx#31158}(`LOW`_half, `S`_sx)] -[visit_exp half#2122] -[visit_id half#2122] -[visit_exp sx#31158] -[visit_id sx#31158] +[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)] [visit_exp (`LOW`_half, `S`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#708 Jnn#712 dim#37216 dim#37228 half#2156 i#129735 i#129742 i#129747 i#129754 ishape_1#107 ishape_2#107 lanetype#37216 lanetype#37228 shape#6564 shape#6576 sx#31192 -dims \ I = Jnn#708, Jnn#712, dim#37216, dim#37228, half#2156, i#129735, i#129742, i#129747, i#129754, ishape_1#107, ishape_2#107, lanetype#37216, lanetype#37228, shape#6564, shape#6576, sx#31192 -[visit_exp `VEXTBINOP`_instr{ishape_1#107, ishape_2#107}(`%`_ishape{shape#6564, Jnn#708}(`%X%`_shape{lanetype#37216, dim#37216, i#129735}(`I64`_lanetype, `%`_dim{i#129742}(2))), `%`_ishape{shape#6576, Jnn#712}(`%X%`_shape{lanetype#37228, dim#37228, i#129747}(`I32`_lanetype, `%`_dim{i#129754}(4))), `EXTMUL`_vextbinop__{half#2156, sx#31192}(`LOW`_half, `U`_sx))] -[visit_exp ishape_1#107] -[visit_id ishape_1#107] -[visit_exp ishape_2#107] -[visit_id ishape_2#107] -[visit_exp (`%`_ishape{shape#6564, Jnn#708}(`%X%`_shape{lanetype#37216, dim#37216, i#129735}(`I64`_lanetype, `%`_dim{i#129742}(2))), `%`_ishape{shape#6576, Jnn#712}(`%X%`_shape{lanetype#37228, dim#37228, i#129747}(`I32`_lanetype, `%`_dim{i#129754}(4))), `EXTMUL`_vextbinop__{half#2156, sx#31192}(`LOW`_half, `U`_sx))] -[visit_exp `%`_ishape{shape#6564, Jnn#708}(`%X%`_shape{lanetype#37216, dim#37216, i#129735}(`I64`_lanetype, `%`_dim{i#129742}(2)))] -[visit_exp shape#6564] -[visit_id shape#6564] -[visit_exp Jnn#708] -[visit_id Jnn#708] -[visit_exp (`%X%`_shape{lanetype#37216, dim#37216, i#129735}(`I64`_lanetype, `%`_dim{i#129742}(2)))] -[visit_exp `%X%`_shape{lanetype#37216, dim#37216, i#129735}(`I64`_lanetype, `%`_dim{i#129742}(2))] -[visit_exp lanetype#37216] -[visit_id lanetype#37216] -[visit_exp dim#37216] -[visit_id dim#37216] -[visit_exp i#129735] -[visit_id i#129735] -[visit_exp (`I64`_lanetype, `%`_dim{i#129742}(2))] +[check_dims] I +dims \ I = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#129742}(2)] -[visit_exp i#129742] -[visit_id i#129742] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%`_ishape{shape#6576, Jnn#712}(`%X%`_shape{lanetype#37228, dim#37228, i#129747}(`I32`_lanetype, `%`_dim{i#129754}(4)))] -[visit_exp shape#6576] -[visit_id shape#6576] -[visit_exp Jnn#712] -[visit_id Jnn#712] -[visit_exp (`%X%`_shape{lanetype#37228, dim#37228, i#129747}(`I32`_lanetype, `%`_dim{i#129754}(4)))] -[visit_exp `%X%`_shape{lanetype#37228, dim#37228, i#129747}(`I32`_lanetype, `%`_dim{i#129754}(4))] -[visit_exp lanetype#37228] -[visit_id lanetype#37228] -[visit_exp dim#37228] -[visit_id dim#37228] -[visit_exp i#129747] -[visit_id i#129747] -[visit_exp (`I32`_lanetype, `%`_dim{i#129754}(4))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#129754}(4)] -[visit_exp i#129754] -[visit_id i#129754] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__{half#2156, sx#31192}(`LOW`_half, `U`_sx)] -[visit_exp half#2156] -[visit_id half#2156] -[visit_exp sx#31192] -[visit_id sx#31192] +[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)] [visit_exp (`LOW`_half, `U`_sx)] [visit_exp `LOW`_half] [visit_exp ()] [visit_exp `U`_sx] [visit_exp ()] -[check_dims] I Jnn#716 Jnn#720 dim#37451 dim#37463 half#2190 i#130090 i#130097 i#130102 i#130109 ishape_1#109 ishape_2#109 lanetype#37451 lanetype#37463 shape#6679 shape#6691 sx#31226 -dims \ I = Jnn#716, Jnn#720, dim#37451, dim#37463, half#2190, i#130090, i#130097, i#130102, i#130109, ishape_1#109, ishape_2#109, lanetype#37451, lanetype#37463, shape#6679, shape#6691, sx#31226 -[visit_exp `VEXTBINOP`_instr{ishape_1#109, ishape_2#109}(`%`_ishape{shape#6679, Jnn#716}(`%X%`_shape{lanetype#37451, dim#37451, i#130090}(`I64`_lanetype, `%`_dim{i#130097}(2))), `%`_ishape{shape#6691, Jnn#720}(`%X%`_shape{lanetype#37463, dim#37463, i#130102}(`I32`_lanetype, `%`_dim{i#130109}(4))), `EXTMUL`_vextbinop__{half#2190, sx#31226}(`HIGH`_half, `S`_sx))] -[visit_exp ishape_1#109] -[visit_id ishape_1#109] -[visit_exp ishape_2#109] -[visit_id ishape_2#109] -[visit_exp (`%`_ishape{shape#6679, Jnn#716}(`%X%`_shape{lanetype#37451, dim#37451, i#130090}(`I64`_lanetype, `%`_dim{i#130097}(2))), `%`_ishape{shape#6691, Jnn#720}(`%X%`_shape{lanetype#37463, dim#37463, i#130102}(`I32`_lanetype, `%`_dim{i#130109}(4))), `EXTMUL`_vextbinop__{half#2190, sx#31226}(`HIGH`_half, `S`_sx))] -[visit_exp `%`_ishape{shape#6679, Jnn#716}(`%X%`_shape{lanetype#37451, dim#37451, i#130090}(`I64`_lanetype, `%`_dim{i#130097}(2)))] -[visit_exp shape#6679] -[visit_id shape#6679] -[visit_exp Jnn#716] -[visit_id Jnn#716] -[visit_exp (`%X%`_shape{lanetype#37451, dim#37451, i#130090}(`I64`_lanetype, `%`_dim{i#130097}(2)))] -[visit_exp `%X%`_shape{lanetype#37451, dim#37451, i#130090}(`I64`_lanetype, `%`_dim{i#130097}(2))] -[visit_exp lanetype#37451] -[visit_id lanetype#37451] -[visit_exp dim#37451] -[visit_id dim#37451] -[visit_exp i#130090] -[visit_id i#130090] -[visit_exp (`I64`_lanetype, `%`_dim{i#130097}(2))] +[check_dims] I +dims \ I = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#130097}(2)] -[visit_exp i#130097] -[visit_id i#130097] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%`_ishape{shape#6691, Jnn#720}(`%X%`_shape{lanetype#37463, dim#37463, i#130102}(`I32`_lanetype, `%`_dim{i#130109}(4)))] -[visit_exp shape#6691] -[visit_id shape#6691] -[visit_exp Jnn#720] -[visit_id Jnn#720] -[visit_exp (`%X%`_shape{lanetype#37463, dim#37463, i#130102}(`I32`_lanetype, `%`_dim{i#130109}(4)))] -[visit_exp `%X%`_shape{lanetype#37463, dim#37463, i#130102}(`I32`_lanetype, `%`_dim{i#130109}(4))] -[visit_exp lanetype#37463] -[visit_id lanetype#37463] -[visit_exp dim#37463] -[visit_id dim#37463] -[visit_exp i#130102] -[visit_id i#130102] -[visit_exp (`I32`_lanetype, `%`_dim{i#130109}(4))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#130109}(4)] -[visit_exp i#130109] -[visit_id i#130109] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__{half#2190, sx#31226}(`HIGH`_half, `S`_sx)] -[visit_exp half#2190] -[visit_id half#2190] -[visit_exp sx#31226] -[visit_id sx#31226] +[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)] [visit_exp (`HIGH`_half, `S`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] [visit_exp `S`_sx] [visit_exp ()] -[check_dims] I Jnn#724 Jnn#728 dim#37686 dim#37698 half#2224 i#130445 i#130452 i#130457 i#130464 ishape_1#111 ishape_2#111 lanetype#37686 lanetype#37698 shape#6794 shape#6806 sx#31260 -dims \ I = Jnn#724, Jnn#728, dim#37686, dim#37698, half#2224, i#130445, i#130452, i#130457, i#130464, ishape_1#111, ishape_2#111, lanetype#37686, lanetype#37698, shape#6794, shape#6806, sx#31260 -[visit_exp `VEXTBINOP`_instr{ishape_1#111, ishape_2#111}(`%`_ishape{shape#6794, Jnn#724}(`%X%`_shape{lanetype#37686, dim#37686, i#130445}(`I64`_lanetype, `%`_dim{i#130452}(2))), `%`_ishape{shape#6806, Jnn#728}(`%X%`_shape{lanetype#37698, dim#37698, i#130457}(`I32`_lanetype, `%`_dim{i#130464}(4))), `EXTMUL`_vextbinop__{half#2224, sx#31260}(`HIGH`_half, `U`_sx))] -[visit_exp ishape_1#111] -[visit_id ishape_1#111] -[visit_exp ishape_2#111] -[visit_id ishape_2#111] -[visit_exp (`%`_ishape{shape#6794, Jnn#724}(`%X%`_shape{lanetype#37686, dim#37686, i#130445}(`I64`_lanetype, `%`_dim{i#130452}(2))), `%`_ishape{shape#6806, Jnn#728}(`%X%`_shape{lanetype#37698, dim#37698, i#130457}(`I32`_lanetype, `%`_dim{i#130464}(4))), `EXTMUL`_vextbinop__{half#2224, sx#31260}(`HIGH`_half, `U`_sx))] -[visit_exp `%`_ishape{shape#6794, Jnn#724}(`%X%`_shape{lanetype#37686, dim#37686, i#130445}(`I64`_lanetype, `%`_dim{i#130452}(2)))] -[visit_exp shape#6794] -[visit_id shape#6794] -[visit_exp Jnn#724] -[visit_id Jnn#724] -[visit_exp (`%X%`_shape{lanetype#37686, dim#37686, i#130445}(`I64`_lanetype, `%`_dim{i#130452}(2)))] -[visit_exp `%X%`_shape{lanetype#37686, dim#37686, i#130445}(`I64`_lanetype, `%`_dim{i#130452}(2))] -[visit_exp lanetype#37686] -[visit_id lanetype#37686] -[visit_exp dim#37686] -[visit_id dim#37686] -[visit_exp i#130445] -[visit_id i#130445] -[visit_exp (`I64`_lanetype, `%`_dim{i#130452}(2))] +[check_dims] I +dims \ I = +[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] +[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] +[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] +[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] +[visit_exp (`I64`_lanetype, `%`_dim(2))] [visit_exp `I64`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#130452}(2)] -[visit_exp i#130452] -[visit_id i#130452] +[visit_exp `%`_dim(2)] [visit_exp (2)] [visit_exp 2] -[visit_exp `%`_ishape{shape#6806, Jnn#728}(`%X%`_shape{lanetype#37698, dim#37698, i#130457}(`I32`_lanetype, `%`_dim{i#130464}(4)))] -[visit_exp shape#6806] -[visit_id shape#6806] -[visit_exp Jnn#728] -[visit_id Jnn#728] -[visit_exp (`%X%`_shape{lanetype#37698, dim#37698, i#130457}(`I32`_lanetype, `%`_dim{i#130464}(4)))] -[visit_exp `%X%`_shape{lanetype#37698, dim#37698, i#130457}(`I32`_lanetype, `%`_dim{i#130464}(4))] -[visit_exp lanetype#37698] -[visit_id lanetype#37698] -[visit_exp dim#37698] -[visit_id dim#37698] -[visit_exp i#130457] -[visit_id i#130457] -[visit_exp (`I32`_lanetype, `%`_dim{i#130464}(4))] +[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] +[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] +[visit_exp (`I32`_lanetype, `%`_dim(4))] [visit_exp `I32`_lanetype] [visit_exp ()] -[visit_exp `%`_dim{i#130464}(4)] -[visit_exp i#130464] -[visit_id i#130464] +[visit_exp `%`_dim(4)] [visit_exp (4)] [visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__{half#2224, sx#31260}(`HIGH`_half, `U`_sx)] -[visit_exp half#2224] -[visit_id half#2224] -[visit_exp sx#31260] -[visit_id sx#31260] +[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)] [visit_exp (`HIGH`_half, `U`_sx)] [visit_exp `HIGH`_half] [visit_exp ()] @@ -106752,12 +82426,10 @@ dims \ I = in [visit_id I] not free ps' = (I : I) [check_dims] I _ -[check_dims] I I' I'' X*#13622 deftype?*#23 i n n#1569 name?*#609 name?*#610 name?*#611 name?*#612 name?*#613 name?*#614 name?*#615 name?*#616 name?*#617 name?*#618 name?**#32 qt rectype#1855 rectype#1885 st -dims \ I = I', I'', X*#13622, deftype?*#23, i, n, n#1569, name?*#609, name?*#610, name?*#611, name?*#612, name?*#613, name?*#614, name?*#615, name?*#616, name?*#617, name?*#618, name?**#32, qt, rectype#1855, rectype#1885, st -[visit_exp (`TYPE`_type{rectype#1855}(qt), I' +++ I'')] -[visit_exp `TYPE`_type{rectype#1855}(qt)] -[visit_exp rectype#1855] -[visit_id rectype#1855] +[check_dims] I I' I'' i n qt st +dims \ I = I', I'', i, n, qt, st +[visit_exp (`TYPE`_type(qt), I' +++ I'')] +[visit_exp `TYPE`_type(qt)] [visit_exp (qt)] [visit_exp qt] [visit_id qt] @@ -106774,14 +82446,12 @@ dims \ I = I', I'', X*#13622, deftype?*#23, i, n, n#1569, name?*#609, name?*#610 [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp (qt = `REC`_rectype(`%`_list{`X*#13622`}(st^n{st <- `st*`})))] +[visit_exp (qt = `REC`_rectype(`%`_list(st^n{st <- `st*`})))] [visit_exp qt] [visit_id qt] not free -[visit_exp `REC`_rectype(`%`_list{`X*#13622`}(st^n{st <- `st*`}))] -[visit_exp (`%`_list{`X*#13622`}(st^n{st <- `st*`}))] -[visit_exp `%`_list{`X*#13622`}(st^n{st <- `st*`})] -[visit_exp `X*#13622`] -[visit_id X*#13622] +[visit_exp `REC`_rectype(`%`_list(st^n{st <- `st*`}))] +[visit_exp (`%`_list(st^n{st <- `st*`}))] +[visit_exp `%`_list(st^n{st <- `st*`})] [visit_exp (st^n{st <- `st*`})] [visit_exp st^n{st <- `st*`}] [scope_enter st] @@ -106794,101 +82464,57 @@ dims \ I = I', I'', X*#13622, deftype?*#23, i, n, n#1569, name?*#609, name?*#610 [visit_exp `st*`] [visit_id st*] no dims [visit_id st*] -[visit_exp (I'' = {`TYPES`{`name?*#609`} [], `TAGS`{`name?*#610`} [], `GLOBALS`{`name?*#611`} [], `MEMS`{`name?*#612`} [], `TABLES`{`name?*#613`} [], `FUNCS`{`name?*#614`} [], `DATAS`{`name?*#615`} [], `ELEMS`{`name?*#616`} [], `LOCALS`{`name?*#617`} [], `LABELS`{`name?*#618`} [], `FIELDS`{`name?**#32`} [], `TYPEDEFS`{`deftype?*#23`} ?(`_DEF`_deftype{rectype#1885, n#1569}(qt, i))^(i @@ -108749,11 +84037,9 @@ dims \ I = [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I char*#1519 char*#1531 id id' name?*#754 -[visit_exp ?(`%`_name{`char*#1519`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1519`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1519`] -[visit_id char*#1519] +[check_dims] I id id' +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -108773,11 +84059,9 @@ ps' = (I : I) [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp ((`%`_name{`char*#1531`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TAGS`_I{`name?*#754`})))] -[visit_exp (`%`_name{`char*#1531`}(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name{`char*#1531`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1531`] -[visit_id char*#1531] +[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TAGS`_I)))] +[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -108791,7 +84075,7 @@ ps' = (I : I) [visit_id id?] no dims [visit_exp id'] [visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TAGS`_I{`name?*#754`}))] +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TAGS`_I))] [visit_exp (id?{id <- `id?`} = ?())] [visit_exp id?{id <- `id?`}] [scope_enter id] @@ -108803,25 +84087,21 @@ ps' = (I : I) [visit_id id?] not free [visit_id id?] no dims [visit_exp ?()] -[visit_exp ~ (?(id') <- I.`TAGS`_I{`name?*#754`})] -[visit_exp (?(id') <- I.`TAGS`_I{`name?*#754`})] +[visit_exp ~ (?(id') <- I.`TAGS`_I)] +[visit_exp (?(id') <- I.`TAGS`_I)] [visit_exp ?(id')] [visit_exp id'] [visit_id id'] not free -[visit_exp I.`TAGS`_I{`name?*#754`}] +[visit_exp I.`TAGS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#754`] -[visit_id name?*#754] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I char*#1553 char*#1565 id id' name?*#760 -[visit_exp ?(`%`_name{`char*#1553`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1553`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1553`] -[visit_id char*#1553] +[check_dims] I id id' +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -108841,11 +84121,9 @@ ps' = (I : I) [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp ((`%`_name{`char*#1565`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`GLOBALS`_I{`name?*#760`})))] -[visit_exp (`%`_name{`char*#1565`}(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name{`char*#1565`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1565`] -[visit_id char*#1565] +[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`GLOBALS`_I)))] +[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -108859,7 +84137,7 @@ ps' = (I : I) [visit_id id?] no dims [visit_exp id'] [visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`GLOBALS`_I{`name?*#760`}))] +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`GLOBALS`_I))] [visit_exp (id?{id <- `id?`} = ?())] [visit_exp id?{id <- `id?`}] [scope_enter id] @@ -108871,25 +84149,21 @@ ps' = (I : I) [visit_id id?] not free [visit_id id?] no dims [visit_exp ?()] -[visit_exp ~ (?(id') <- I.`GLOBALS`_I{`name?*#760`})] -[visit_exp (?(id') <- I.`GLOBALS`_I{`name?*#760`})] +[visit_exp ~ (?(id') <- I.`GLOBALS`_I)] +[visit_exp (?(id') <- I.`GLOBALS`_I)] [visit_exp ?(id')] [visit_exp id'] [visit_id id'] not free -[visit_exp I.`GLOBALS`_I{`name?*#760`}] +[visit_exp I.`GLOBALS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#760`] -[visit_id name?*#760] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I char*#1587 char*#1599 id id' name?*#766 -[visit_exp ?(`%`_name{`char*#1587`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1587`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1587`] -[visit_id char*#1587] +[check_dims] I id id' +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -108909,11 +84183,9 @@ ps' = (I : I) [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp ((`%`_name{`char*#1599`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I{`name?*#766`})))] -[visit_exp (`%`_name{`char*#1599`}(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name{`char*#1599`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1599`] -[visit_id char*#1599] +[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I)))] +[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -108927,7 +84199,7 @@ ps' = (I : I) [visit_id id?] no dims [visit_exp id'] [visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I{`name?*#766`}))] +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I))] [visit_exp (id?{id <- `id?`} = ?())] [visit_exp id?{id <- `id?`}] [scope_enter id] @@ -108939,25 +84211,21 @@ ps' = (I : I) [visit_id id?] not free [visit_id id?] no dims [visit_exp ?()] -[visit_exp ~ (?(id') <- I.`MEMS`_I{`name?*#766`})] -[visit_exp (?(id') <- I.`MEMS`_I{`name?*#766`})] +[visit_exp ~ (?(id') <- I.`MEMS`_I)] +[visit_exp (?(id') <- I.`MEMS`_I)] [visit_exp ?(id')] [visit_exp id'] [visit_id id'] not free -[visit_exp I.`MEMS`_I{`name?*#766`}] +[visit_exp I.`MEMS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#766`] -[visit_id name?*#766] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I char*#1621 char*#1633 id id' name?*#772 -[visit_exp ?(`%`_name{`char*#1621`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1621`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1621`] -[visit_id char*#1621] +[check_dims] I id id' +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -108977,11 +84245,9 @@ ps' = (I : I) [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp ((`%`_name{`char*#1633`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I{`name?*#772`})))] -[visit_exp (`%`_name{`char*#1633`}(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name{`char*#1633`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1633`] -[visit_id char*#1633] +[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I)))] +[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -108995,7 +84261,7 @@ ps' = (I : I) [visit_id id?] no dims [visit_exp id'] [visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I{`name?*#772`}))] +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I))] [visit_exp (id?{id <- `id?`} = ?())] [visit_exp id?{id <- `id?`}] [scope_enter id] @@ -109007,25 +84273,21 @@ ps' = (I : I) [visit_id id?] not free [visit_id id?] no dims [visit_exp ?()] -[visit_exp ~ (?(id') <- I.`TABLES`_I{`name?*#772`})] -[visit_exp (?(id') <- I.`TABLES`_I{`name?*#772`})] +[visit_exp ~ (?(id') <- I.`TABLES`_I)] +[visit_exp (?(id') <- I.`TABLES`_I)] [visit_exp ?(id')] [visit_exp id'] [visit_id id'] not free -[visit_exp I.`TABLES`_I{`name?*#772`}] +[visit_exp I.`TABLES`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#772`] -[visit_id name?*#772] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I char*#1655 char*#1667 id id' name?*#778 -[visit_exp ?(`%`_name{`char*#1655`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1655`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1655`] -[visit_id char*#1655] +[check_dims] I id id' +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -109045,11 +84307,9 @@ ps' = (I : I) [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp ((`%`_name{`char*#1667`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`FUNCS`_I{`name?*#778`})))] -[visit_exp (`%`_name{`char*#1667`}(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name{`char*#1667`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1667`] -[visit_id char*#1667] +[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`FUNCS`_I)))] +[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -109063,7 +84323,7 @@ ps' = (I : I) [visit_id id?] no dims [visit_exp id'] [visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`FUNCS`_I{`name?*#778`}))] +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`FUNCS`_I))] [visit_exp (id?{id <- `id?`} = ?())] [visit_exp id?{id <- `id?`}] [scope_enter id] @@ -109075,25 +84335,21 @@ ps' = (I : I) [visit_id id?] not free [visit_id id?] no dims [visit_exp ?()] -[visit_exp ~ (?(id') <- I.`FUNCS`_I{`name?*#778`})] -[visit_exp (?(id') <- I.`FUNCS`_I{`name?*#778`})] +[visit_exp ~ (?(id') <- I.`FUNCS`_I)] +[visit_exp (?(id') <- I.`FUNCS`_I)] [visit_exp ?(id')] [visit_exp id'] [visit_id id'] not free -[visit_exp I.`FUNCS`_I{`name?*#778`}] +[visit_exp I.`FUNCS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#778`] -[visit_id name?*#778] [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I at at' b char*#1689 char*#1707 i#131658 i#131685 id id' n name?*#784 -[visit_exp ?(`%`_name{`char*#1689`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1689`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1689`] -[visit_id char*#1689] +[check_dims] I at at' b id id' n +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -109134,15 +84390,11 @@ ps' = (I : I) [visit_exp `at?`] [visit_id at?] not free [visit_id at?] no dims -[visit_exp `%`_u64{i#131658}(n)] -[visit_exp i#131658] -[visit_id i#131658] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `%`_u64{i#131685}(n)] -[visit_exp i#131685] -[visit_id i#131685] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free @@ -109150,11 +84402,9 @@ ps' = (I : I) [visit_id id'] not free [visit_exp at'] [visit_id at'] -[visit_exp ((`%`_name{`char*#1707`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I{`name?*#784`})))] -[visit_exp (`%`_name{`char*#1707`}(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name{`char*#1707`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1707`] -[visit_id char*#1707] +[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I)))] +[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -109168,7 +84418,7 @@ ps' = (I : I) [visit_id id?] no dims [visit_exp id'] [visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I{`name?*#784`}))] +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I))] [visit_exp (id?{id <- `id?`} = ?())] [visit_exp id?{id <- `id?`}] [scope_enter id] @@ -109180,17 +84430,15 @@ ps' = (I : I) [visit_id id?] not free [visit_id id?] no dims [visit_exp ?()] -[visit_exp ~ (?(id') <- I.`MEMS`_I{`name?*#784`})] -[visit_exp (?(id') <- I.`MEMS`_I{`name?*#784`})] +[visit_exp ~ (?(id') <- I.`MEMS`_I)] +[visit_exp (?(id') <- I.`MEMS`_I)] [visit_exp ?(id')] [visit_exp id'] [visit_id id'] not free -[visit_exp I.`MEMS`_I{`name?*#784`}] +[visit_exp I.`MEMS`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#784`] -[visit_id name?*#784] [visit_exp ((at?{at <- `at?`} = ?(at')) \/ ((at?{at <- `at?`} = ?()) /\ (at' = `I32`_addrtype)))] [visit_exp (at?{at <- `at?`} = ?(at'))] [visit_exp at?{at <- `at?`}] @@ -109247,11 +84495,9 @@ ps' = (I : I) [visit_id I] not free ps' = (I : I) [check_dims] I -[check_dims] I at at' char*#1729 char*#1747 e i#131750 i#131777 id id' n name?*#790 rt -[visit_exp ?(`%`_name{`char*#1729`}(lift(id?{id <- `id?`})))] -[visit_exp `%`_name{`char*#1729`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1729`] -[visit_id char*#1729] +[check_dims] I at at' e id id' n rt +[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -109301,15 +84547,11 @@ ps' = (I : I) [visit_exp `at?`] [visit_id at?] not free [visit_id at?] no dims -[visit_exp `%`_u64{i#131750}(n)] -[visit_exp i#131750] -[visit_id i#131750] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] -[visit_exp `%`_u64{i#131777}(n)] -[visit_exp i#131777] -[visit_id i#131777] +[visit_exp `%`_u64(n)] [visit_exp (n)] [visit_exp n] [visit_id n] not free @@ -109323,11 +84565,9 @@ ps' = (I : I) [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp ((`%`_name{`char*#1747`}(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I{`name?*#790`})))] -[visit_exp (`%`_name{`char*#1747`}(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name{`char*#1747`}(lift(id?{id <- `id?`}))] -[visit_exp `char*#1747`] -[visit_id char*#1747] +[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I)))] +[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] +[visit_exp `%`_name(lift(id?{id <- `id?`}))] [visit_exp (lift(id?{id <- `id?`}))] [visit_exp lift(id?{id <- `id?`})] [visit_exp id?{id <- `id?`}] @@ -109341,7 +84581,7 @@ ps' = (I : I) [visit_id id?] no dims [visit_exp id'] [visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I{`name?*#790`}))] +[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I))] [visit_exp (id?{id <- `id?`} = ?())] [visit_exp id?{id <- `id?`}] [scope_enter id] @@ -109353,17 +84593,15 @@ ps' = (I : I) [visit_id id?] not free [visit_id id?] no dims [visit_exp ?()] -[visit_exp ~ (?(id') <- I.`TABLES`_I{`name?*#790`})] -[visit_exp (?(id') <- I.`TABLES`_I{`name?*#790`})] +[visit_exp ~ (?(id') <- I.`TABLES`_I)] +[visit_exp (?(id') <- I.`TABLES`_I)] [visit_exp ?(id')] [visit_exp id'] [visit_id id'] not free -[visit_exp I.`TABLES`_I{`name?*#790`}] +[visit_exp I.`TABLES`_I] [visit_exp I] [visit_id I] not free [visit_id I] no dims -[visit_exp `name?*#790`] -[visit_id name?*#790] [visit_exp ((at?{at <- `at?`} = ?(at')) \/ ((at?{at <- `at?`} = ?()) /\ (at' = `I32`_addrtype)))] [visit_exp (at?{at <- `at?`} = ?(at'))] [visit_exp at?{at <- `at?`}] @@ -109447,7 +84685,7 @@ DecD exportsd(decl*) : export* [visit_exp []] [visit_exp []] => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $typesd([]) = [] [check_dims] decl' type [visit_exp [(type : type <: decl)] ++ decl'*{decl' <- `decl'*`}] @@ -109479,7 +84717,7 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $typesd{type : type, `decl'*` : decl*}([(type : type <: decl)] ++ decl'*{decl' <- `decl'*`}) = [type] ++ $typesd(decl'*{decl' <- `decl'*`}) [check_dims] decl decl' [visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] @@ -109506,14 +84744,14 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $typesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $typesd(decl'*{decl' <- `decl'*`}) -- otherwise [check_dims] [visit_exp []] [visit_exp []] => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $importsd([]) = [] [check_dims] decl' import [visit_exp [(import : import <: decl)] ++ decl'*{decl' <- `decl'*`}] @@ -109545,7 +84783,7 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $importsd{import : import, `decl'*` : decl*}([(import : import <: decl)] ++ decl'*{decl' <- `decl'*`}) = [import] ++ $importsd(decl'*{decl' <- `decl'*`}) [check_dims] decl decl' [visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] @@ -109572,14 +84810,14 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $importsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $importsd(decl'*{decl' <- `decl'*`}) -- otherwise [check_dims] [visit_exp []] [visit_exp []] => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $tagsd([]) = [] [check_dims] decl' tag [visit_exp [(tag : tag <: decl)] ++ decl'*{decl' <- `decl'*`}] @@ -109611,7 +84849,7 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $tagsd{tag : tag, `decl'*` : decl*}([(tag : tag <: decl)] ++ decl'*{decl' <- `decl'*`}) = [tag] ++ $tagsd(decl'*{decl' <- `decl'*`}) [check_dims] decl decl' [visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] @@ -109638,14 +84876,14 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $tagsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tagsd(decl'*{decl' <- `decl'*`}) -- otherwise [check_dims] [visit_exp []] [visit_exp []] => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $globalsd([]) = [] [check_dims] decl' global [visit_exp [(global : global <: decl)] ++ decl'*{decl' <- `decl'*`}] @@ -109677,7 +84915,7 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $globalsd{global : global, `decl'*` : decl*}([(global : global <: decl)] ++ decl'*{decl' <- `decl'*`}) = [global] ++ $globalsd(decl'*{decl' <- `decl'*`}) [check_dims] decl decl' [visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] @@ -109704,14 +84942,14 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $globalsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $globalsd(decl'*{decl' <- `decl'*`}) -- otherwise [check_dims] [visit_exp []] [visit_exp []] => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $memsd([]) = [] [check_dims] decl' mem [visit_exp [(mem : mem <: decl)] ++ decl'*{decl' <- `decl'*`}] @@ -109743,7 +84981,7 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $memsd{mem : mem, `decl'*` : decl*}([(mem : mem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [mem] ++ $memsd(decl'*{decl' <- `decl'*`}) [check_dims] decl decl' [visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] @@ -109770,14 +85008,14 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $memsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $memsd(decl'*{decl' <- `decl'*`}) -- otherwise [check_dims] [visit_exp []] [visit_exp []] => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $tablesd([]) = [] [check_dims] decl' table [visit_exp [(table : table <: decl)] ++ decl'*{decl' <- `decl'*`}] @@ -109809,7 +85047,7 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $tablesd{table : table, `decl'*` : decl*}([(table : table <: decl)] ++ decl'*{decl' <- `decl'*`}) = [table] ++ $tablesd(decl'*{decl' <- `decl'*`}) [check_dims] decl decl' [visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] @@ -109836,14 +85074,14 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $tablesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tablesd(decl'*{decl' <- `decl'*`}) -- otherwise [check_dims] [visit_exp []] [visit_exp []] => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $funcsd([]) = [] [check_dims] decl' func [visit_exp [(func : func <: decl)] ++ decl'*{decl' <- `decl'*`}] @@ -109875,7 +85113,7 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $funcsd{func : func, `decl'*` : decl*}([(func : func <: decl)] ++ decl'*{decl' <- `decl'*`}) = [func] ++ $funcsd(decl'*{decl' <- `decl'*`}) [check_dims] decl decl' [visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] @@ -109902,14 +85140,14 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $funcsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $funcsd(decl'*{decl' <- `decl'*`}) -- otherwise [check_dims] [visit_exp []] [visit_exp []] => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $datasd([]) = [] [check_dims] data decl' [visit_exp [(data : data <: decl)] ++ decl'*{decl' <- `decl'*`}] @@ -109941,7 +85179,7 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $datasd{data : data, `decl'*` : decl*}([(data : data <: decl)] ++ decl'*{decl' <- `decl'*`}) = [data] ++ $datasd(decl'*{decl' <- `decl'*`}) [check_dims] decl decl' [visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] @@ -109968,14 +85206,14 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $datasd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $datasd(decl'*{decl' <- `decl'*`}) -- otherwise [check_dims] [visit_exp []] [visit_exp []] => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $elemsd([]) = [] [check_dims] decl' elem [visit_exp [(elem : elem <: decl)] ++ decl'*{decl' <- `decl'*`}] @@ -110007,7 +85245,7 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $elemsd{elem : elem, `decl'*` : decl*}([(elem : elem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [elem] ++ $elemsd(decl'*{decl' <- `decl'*`}) [check_dims] decl decl' [visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] @@ -110034,14 +85272,14 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $elemsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $elemsd(decl'*{decl' <- `decl'*`}) -- otherwise [check_dims] [visit_exp []] [visit_exp []] => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $startsd([]) = [] [check_dims] decl' start [visit_exp [(start : start <: decl)] ++ decl'*{decl' <- `decl'*`}] @@ -110073,7 +85311,7 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $startsd{start : start, `decl'*` : decl*}([(start : start <: decl)] ++ decl'*{decl' <- `decl'*`}) = [start] ++ $startsd(decl'*{decl' <- `decl'*`}) [check_dims] decl decl' [visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] @@ -110100,14 +85338,14 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $startsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $startsd(decl'*{decl' <- `decl'*`}) -- otherwise [check_dims] [visit_exp []] [visit_exp []] => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $exportsd([]) = [] [check_dims] decl' export [visit_exp [(export : export <: decl)] ++ decl'*{decl' <- `decl'*`}] @@ -110139,7 +85377,7 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $exportsd{export : export, `decl'*` : decl*}([(export : export <: decl)] ++ decl'*{decl' <- `decl'*`}) = [export] ++ $exportsd(decl'*{decl' <- `decl'*`}) [check_dims] decl decl' [visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] @@ -110166,7 +85404,7 @@ DecD exportsd(decl*) : export* [visit_id decl'*] not free [visit_id decl'*] no dims => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $exportsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $exportsd(decl'*{decl' <- `decl'*`}) -- otherwise [check_dims] _ @@ -110196,7 +85434,7 @@ DecD ordered(decl*) : bool [visit_id decl'*] no dims [visit_exp []] => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $ordered{`decl'*` : decl*}(decl'*{decl' <- `decl'*`}) = true -- if ($importsd(decl'*{decl' <- `decl'*`}) = []) [check_dims] decl_1 decl_2 import @@ -110302,7 +85540,7 @@ DecD ordered(decl*) : bool [visit_id decl_1*] no dims [visit_exp []] => - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $ordered{`decl_1*` : decl*, import : import, `decl_2*` : decl*}(decl_1*{decl_1 <- `decl_1*`} ++ [(import : import <: decl)] ++ decl_2*{decl_2 <- `decl_2*`}) = (((((($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($memsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($tablesd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($funcsd(decl_1*{decl_1 <- `decl_1*`}) = [])) ps' = (I : I) [check_dims] I _ @@ -110311,10 +85549,18 @@ dims \ I = , _ [visit_exp (`` : (type, idctxt) <: (decl, idctxt))] [visit_exp ``] [visit_id ] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp ``] [visit_id ] not free [visit_exp I] @@ -110325,10 +85571,18 @@ dims \ I = , _ [visit_exp (`` : (import, idctxt) <: (decl, idctxt))] [visit_exp ``] [visit_id ] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp ``] [visit_id ] not free [visit_exp I] @@ -110339,10 +85593,18 @@ dims \ I = , _ [visit_exp (`` : (tag, idctxt) <: (decl, idctxt))] [visit_exp ``] [visit_id ] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp ``] [visit_id ] not free [visit_exp I] @@ -110353,10 +85615,18 @@ dims \ I = , _ [visit_exp (`` : (global, idctxt) <: (decl, idctxt))] [visit_exp ``] [visit_id ] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp ``] [visit_id ] not free [visit_exp I] @@ -110367,10 +85637,18 @@ dims \ I = , _ [visit_exp (`` : (mem, idctxt) <: (decl, idctxt))] [visit_exp ``] [visit_id ] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp ``] [visit_id ] not free [visit_exp I] @@ -110381,10 +85659,18 @@ dims \ I = , _ [visit_exp (`` : (table, idctxt) <: (decl, idctxt))] [visit_exp ``] [visit_id ] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp ``] [visit_id ] not free [visit_exp I] @@ -110395,10 +85681,18 @@ dims \ I = , _ [visit_exp (`` : (func, idctxt) <: (decl, idctxt))] [visit_exp ``] [visit_id ] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp ``] [visit_id ] not free [visit_exp I] @@ -110409,10 +85703,18 @@ dims \ I = , _ [visit_exp (`` : (data, idctxt) <: (decl, idctxt))] [visit_exp ``] [visit_id ] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp ``] [visit_id ] not free [visit_exp I] @@ -110423,10 +85725,18 @@ dims \ I = , _ [visit_exp (`` : (elem, idctxt) <: (decl, idctxt))] [visit_exp ``] [visit_id ] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp ``] [visit_id ] not free [visit_exp I] @@ -110437,10 +85747,18 @@ dims \ I = , _ [visit_exp (`` : (start, idctxt) <: (decl, idctxt))] [visit_exp ``] [visit_id ] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp ``] [visit_id ] not free [visit_exp I] @@ -110451,47 +85769,37 @@ dims \ I = , _ [visit_exp (`` : (export, idctxt) <: (decl, idctxt))] [visit_exp ``] [visit_id ] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [visit_exp ``] [visit_id ] not free [visit_exp I] [visit_id I] not free [visit_id I] no dims [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] ps' = [check_dims] -[check_dims] I I' data data*#155 decl elem elem*#179 export export*#155 func func*#155 global global*#179 import import*#155 mem mem*#179 start start?#155 table table*#179 tag tag*#155 type type*#155 -dims \ = I, I', data, data*#155, decl, elem, elem*#179, export, export*#155, func, func*#155, global, global*#179, import, import*#155, mem, mem*#179, start, start?#155, table, table*#179, tag, tag*#155, type, type*#155 -[visit_exp `MODULE`_module{`type*#155`, `import*#155`, `tag*#155`, `global*#179`, `mem*#179`, `table*#179`, `func*#155`, `data*#155`, `elem*#179`, `start?#155`, `export*#155`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp `type*#155`] -[visit_id type*#155] -[visit_exp `import*#155`] -[visit_id import*#155] -[visit_exp `tag*#155`] -[visit_id tag*#155] -[visit_exp `global*#179`] -[visit_id global*#179] -[visit_exp `mem*#179`] -[visit_id mem*#179] -[visit_exp `table*#179`] -[visit_id table*#179] -[visit_exp `func*#155`] -[visit_id func*#155] -[visit_exp `data*#155`] -[visit_id data*#155] -[visit_exp `elem*#179`] -[visit_id elem*#179] -[visit_exp `start?#155`] -[visit_id start?#155] -[visit_exp `export*#155`] -[visit_id export*#155] +[check_dims] I I' data decl elem export func global import mem start table tag type +dims \ = I, I', data, decl, elem, export, func, global, import, mem, start, table, tag, type +[visit_exp `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] [visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] [visit_exp type*{type <- `type*`}] [scope_enter type] @@ -110891,71 +86199,98 @@ dims \ I = [visit_id I] not free [visit_id I] no dims [visit_id I] not free +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_enter _] [visit_id _] not free [visit_id _] no dims +[scope_exit _] +[scope_exit _] [check_dims] [check_dims] [check_dims] ---- 1 --- [check_dims] ---- 2 --- ---- 3 --- ---- 4 --- +[scope_enter A_1] +[visit_id A_1] not free [visit_id A_1] no dims -[visit_id A_1] +[scope_exit A_1] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id A_n] no dims -[visit_id A_n] [check_dims] +[scope_enter A_n] +[visit_id A_n] not free +[visit_id A_n] no dims +[scope_exit A_n] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id A_1] no dims -[visit_id A_1] [check_dims] +[check_dims] +[scope_enter A_1] +[visit_id A_1] not free +[visit_id A_1] no dims +[scope_exit A_1] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id A_2] no dims -[visit_id A_2] [check_dims] [check_dims] +[scope_enter A_2] +[visit_id A_2] not free +[visit_id A_2] no dims +[scope_exit A_2] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[check_dims] +[check_dims] +[scope_enter A_1] +[visit_id A_1] not free [visit_id A_1] no dims -[visit_id A_1] +[scope_exit A_1] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter A_2] +[visit_id A_2] not free [visit_id A_2] no dims -[visit_id A_2] +[scope_exit A_2] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- +[check_dims] +[scope_enter recorddots] +[visit_id recorddots] not free [visit_id recorddots] no dims -[visit_id recorddots] +[scope_exit recorddots] +--- 1 --- +[check_dims] +--- 2 --- +--- 3 --- +--- 4 --- +[check_dims] [check_dims] --- 1 --- [check_dims] @@ -110977,27 +86312,19 @@ dims \ I = [visit_exp premise_n] [visit_id premise_n] [check_dims] -[check_dims] C X*#13813 X*#13862 localidx*#1817 numtype#1105 resulttype#3064 +[check_dims] C [visit_exp C] [visit_id C] -[visit_exp [`BINOP`_instr{numtype#1105}(`I32`_numtype, `ADD`_binop_)]] -[visit_exp `BINOP`_instr{numtype#1105}(`I32`_numtype, `ADD`_binop_)] -[visit_exp numtype#1105] -[visit_id numtype#1105] +[visit_exp [`BINOP`_instr(`I32`_numtype, `ADD`_binop_)]] +[visit_exp `BINOP`_instr(`I32`_numtype, `ADD`_binop_)] [visit_exp (`I32`_numtype, `ADD`_binop_)] [visit_exp `I32`_numtype] [visit_exp ()] [visit_exp `ADD`_binop_] [visit_exp ()] -[visit_exp `%->_%%`_instrtype{resulttype#3064, `localidx*#1817`}(`%`_resulttype{`X*#13813`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#13862`}([`I32`_valtype]))] -[visit_exp resulttype#3064] -[visit_id resulttype#3064] -[visit_exp `localidx*#1817`] -[visit_id localidx*#1817] -[visit_exp (`%`_resulttype{`X*#13813`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#13862`}([`I32`_valtype]))] -[visit_exp `%`_resulttype{`X*#13813`}([`I32`_valtype `I32`_valtype])] -[visit_exp `X*#13813`] -[visit_id X*#13813] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp (`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`I32`_valtype]))] +[visit_exp `%`_resulttype([`I32`_valtype `I32`_valtype])] [visit_exp ([`I32`_valtype `I32`_valtype])] [visit_exp [`I32`_valtype `I32`_valtype]] [visit_exp `I32`_valtype] @@ -111005,75 +86332,51 @@ dims \ I = [visit_exp `I32`_valtype] [visit_exp ()] [visit_exp []] -[visit_exp `%`_resulttype{`X*#13862`}([`I32`_valtype])] -[visit_exp `X*#13862`] -[visit_id X*#13862] +[visit_exp `%`_resulttype([`I32`_valtype])] [visit_exp ([`I32`_valtype])] [visit_exp [`I32`_valtype]] [visit_exp `I32`_valtype] [visit_exp ()] -[check_dims] C X*#13883 X*#13932 globalidx#35 globaltype*#27 i#131877 localidx*#1829 mut mut?#1609 resulttype#3084 t valtype#1343 x +[check_dims] C mut t x [visit_exp C] [visit_id C] -[visit_exp [`GLOBAL.GET`_instr{globalidx#35}(x)]] -[visit_exp `GLOBAL.GET`_instr{globalidx#35}(x)] -[visit_exp globalidx#35] -[visit_id globalidx#35] +[visit_exp [`GLOBAL.GET`_instr(x)]] +[visit_exp `GLOBAL.GET`_instr(x)] [visit_exp (x)] [visit_exp x] [visit_id x] -[visit_exp `%->_%%`_instrtype{resulttype#3084, `localidx*#1829`}(`%`_resulttype{`X*#13883`}([]), [], `%`_resulttype{`X*#13932`}([t]))] -[visit_exp resulttype#3084] -[visit_id resulttype#3084] -[visit_exp `localidx*#1829`] -[visit_id localidx*#1829] -[visit_exp (`%`_resulttype{`X*#13883`}([]), [], `%`_resulttype{`X*#13932`}([t]))] -[visit_exp `%`_resulttype{`X*#13883`}([])] -[visit_exp `X*#13883`] -[visit_id X*#13883] +[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))] +[visit_exp (`%`_resulttype([]), [], `%`_resulttype([t]))] +[visit_exp `%`_resulttype([])] [visit_exp ([])] [visit_exp []] [visit_exp []] -[visit_exp `%`_resulttype{`X*#13932`}([t])] -[visit_exp `X*#13932`] -[visit_id X*#13932] +[visit_exp `%`_resulttype([t])] [visit_exp ([t])] [visit_exp [t]] [visit_exp t] [visit_id t] -[visit_exp (C.`GLOBALS`_context{`globaltype*#27`}[x!`%`_idx{i#131877}.0] = `%%`_globaltype{`mut?#1609`, valtype#1343}(?(mut), t))] -[visit_exp C.`GLOBALS`_context{`globaltype*#27`}[x!`%`_idx{i#131877}.0]] -[visit_exp C.`GLOBALS`_context{`globaltype*#27`}] +[visit_exp (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(?(mut), t))] +[visit_exp C.`GLOBALS`_context[x!`%`_idx.0]] +[visit_exp C.`GLOBALS`_context] [visit_exp C] [visit_id C] not free -[visit_exp `globaltype*#27`] -[visit_id globaltype*#27] -[visit_exp x!`%`_idx{i#131877}.0] -[visit_exp x!`%`_idx{i#131877}] -[visit_exp x] -[visit_id x] not free -[visit_exp i#131877] -[visit_id i#131877] -[visit_exp `%%`_globaltype{`mut?#1609`, valtype#1343}(?(mut), t)] -[visit_exp `mut?#1609`] -[visit_id mut?#1609] -[visit_exp valtype#1343] -[visit_id valtype#1343] +[visit_exp x!`%`_idx.0] +[visit_exp x!`%`_idx] +[visit_exp x] +[visit_id x] not free +[visit_exp `%%`_globaltype(?(mut), t)] [visit_exp (?(mut), t)] [visit_exp ?(mut)] [visit_exp mut] [visit_id mut] [visit_exp t] [visit_id t] not free -[check_dims] C X*#13943 X*#13994 X*#14005 X*#14056 X*#14067 X*#14080 X*#14131 blocktype blocktype#49 datatype*#26 deftype*#98 deftype*#99 elemtype*#26 funcidx*#63 globaltype*#28 instr instr*#2369 localidx*#1841 localidx*#1853 localidx*#1865 localtype*#29 memtype*#41 resulttype#3104 resulttype#3124 resulttype#3144 resulttype*#37 resulttype?#34 subtype*#25 t_1 t_2 tabletype*#34 tagtype*#26 +[check_dims] C blocktype instr t_1 t_2 [visit_exp C] [visit_id C] -[visit_exp [`BLOCK`_instr{blocktype#49, `instr*#2369`}(blocktype, instr*{instr <- `instr*`})]] -[visit_exp `BLOCK`_instr{blocktype#49, `instr*#2369`}(blocktype, instr*{instr <- `instr*`})] -[visit_exp blocktype#49] -[visit_id blocktype#49] -[visit_exp `instr*#2369`] -[visit_id instr*#2369] +[visit_exp [`BLOCK`_instr(blocktype, instr*{instr <- `instr*`})]] +[visit_exp `BLOCK`_instr(blocktype, instr*{instr <- `instr*`})] [visit_exp (blocktype, instr*{instr <- `instr*`})] [visit_exp blocktype] [visit_id blocktype] @@ -111086,15 +86389,9 @@ dims \ I = [visit_exp `instr*`] [visit_id instr*] no dims [visit_id instr*] -[visit_exp `%->_%%`_instrtype{resulttype#3104, `localidx*#1841`}(`%`_resulttype{`X*#13943`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#13994`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#3104] -[visit_id resulttype#3104] -[visit_exp `localidx*#1841`] -[visit_id localidx*#1841] -[visit_exp (`%`_resulttype{`X*#13943`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#13994`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#13943`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#13943`] -[visit_id X*#13943] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -111106,9 +86403,7 @@ dims \ I = [visit_id t_1*] no dims [visit_id t_1*] [visit_exp []] -[visit_exp `%`_resulttype{`X*#13994`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#13994`] -[visit_id X*#13994] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -111119,20 +86414,14 @@ dims \ I = [visit_exp `t_2*`] [visit_id t_2*] no dims [visit_id t_2*] -[visit_exp (C, blocktype, `%->_%%`_instrtype{resulttype#3124, `localidx*#1853`}(`%`_resulttype{`X*#14005`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14056`}(t_2*{t_2 <- `t_2*`})))] +[visit_exp (C, blocktype, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] [visit_exp C] [visit_id C] not free [visit_exp blocktype] [visit_id blocktype] not free -[visit_exp `%->_%%`_instrtype{resulttype#3124, `localidx*#1853`}(`%`_resulttype{`X*#14005`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14056`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#3124] -[visit_id resulttype#3124] -[visit_exp `localidx*#1853`] -[visit_id localidx*#1853] -[visit_exp (`%`_resulttype{`X*#14005`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14056`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#14005`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#14005`] -[visit_id X*#14005] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -111144,9 +86433,7 @@ dims \ I = [visit_id t_1*] not free [visit_id t_1*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#14056`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#14056`] -[visit_id X*#14056] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -111157,45 +86444,21 @@ dims \ I = [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp ({`TYPES`{`deftype*#98`} [], `RECS`{`subtype*#25`} [], `TAGS`{`tagtype*#26`} [], `GLOBALS`{`globaltype*#28`} [], `MEMS`{`memtype*#41`} [], `TABLES`{`tabletype*#34`} [], `FUNCS`{`deftype*#99`} [], `DATAS`{`datatype*#26`} [], `ELEMS`{`elemtype*#26`} [], `LOCALS`{`localtype*#29`} [], `LABELS`{`resulttype*#37`} [`%`_resulttype{`X*#14067`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#34`} ?(), `REFS`{`funcidx*#63`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#3144, `localidx*#1865`}(`%`_resulttype{`X*#14080`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14131`}(t_2*{t_2 <- `t_2*`})))] -[visit_exp {`TYPES`{`deftype*#98`} [], `RECS`{`subtype*#25`} [], `TAGS`{`tagtype*#26`} [], `GLOBALS`{`globaltype*#28`} [], `MEMS`{`memtype*#41`} [], `TABLES`{`tabletype*#34`} [], `FUNCS`{`deftype*#99`} [], `DATAS`{`datatype*#26`} [], `ELEMS`{`elemtype*#26`} [], `LOCALS`{`localtype*#29`} [], `LABELS`{`resulttype*#37`} [`%`_resulttype{`X*#14067`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#34`} ?(), `REFS`{`funcidx*#63`} []} +++ C] -[visit_exp {`TYPES`{`deftype*#98`} [], `RECS`{`subtype*#25`} [], `TAGS`{`tagtype*#26`} [], `GLOBALS`{`globaltype*#28`} [], `MEMS`{`memtype*#41`} [], `TABLES`{`tabletype*#34`} [], `FUNCS`{`deftype*#99`} [], `DATAS`{`datatype*#26`} [], `ELEMS`{`elemtype*#26`} [], `LOCALS`{`localtype*#29`} [], `LABELS`{`resulttype*#37`} [`%`_resulttype{`X*#14067`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#34`} ?(), `REFS`{`funcidx*#63`} []}] -[visit_exp `deftype*#98`] -[visit_id deftype*#98] +[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C] +[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []}] [visit_exp []] -[visit_exp `subtype*#25`] -[visit_id subtype*#25] [visit_exp []] -[visit_exp `tagtype*#26`] -[visit_id tagtype*#26] [visit_exp []] -[visit_exp `globaltype*#28`] -[visit_id globaltype*#28] [visit_exp []] -[visit_exp `memtype*#41`] -[visit_id memtype*#41] [visit_exp []] -[visit_exp `tabletype*#34`] -[visit_id tabletype*#34] [visit_exp []] -[visit_exp `deftype*#99`] -[visit_id deftype*#99] [visit_exp []] -[visit_exp `datatype*#26`] -[visit_id datatype*#26] [visit_exp []] -[visit_exp `elemtype*#26`] -[visit_id elemtype*#26] [visit_exp []] -[visit_exp `localtype*#29`] -[visit_id localtype*#29] [visit_exp []] -[visit_exp `resulttype*#37`] -[visit_id resulttype*#37] -[visit_exp [`%`_resulttype{`X*#14067`}(t_2*{t_2 <- `t_2*`})]] -[visit_exp `%`_resulttype{`X*#14067`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#14067`] -[visit_id X*#14067] +[visit_exp [`%`_resulttype(t_2*{t_2 <- `t_2*`})]] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -111206,11 +86469,7 @@ dims \ I = [visit_exp `t_2*`] [visit_id t_2*] not free [visit_id t_2*] no dims -[visit_exp `resulttype?#34`] -[visit_id resulttype?#34] [visit_exp ?()] -[visit_exp `funcidx*#63`] -[visit_id funcidx*#63] [visit_exp []] [visit_exp C] [visit_id C] not free @@ -111223,15 +86482,9 @@ dims \ I = [visit_exp `instr*`] [visit_id instr*] not free [visit_id instr*] no dims -[visit_exp `%->_%%`_instrtype{resulttype#3144, `localidx*#1865`}(`%`_resulttype{`X*#14080`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14131`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp resulttype#3144] -[visit_id resulttype#3144] -[visit_exp `localidx*#1865`] -[visit_id localidx*#1865] -[visit_exp (`%`_resulttype{`X*#14080`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14131`}(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype{`X*#14080`}(t_1*{t_1 <- `t_1*`})] -[visit_exp `X*#14080`] -[visit_id X*#14080] +[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] +[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] [visit_exp (t_1*{t_1 <- `t_1*`})] [visit_exp t_1*{t_1 <- `t_1*`}] [scope_enter t_1] @@ -111243,9 +86496,7 @@ dims \ I = [visit_id t_1*] not free [visit_id t_1*] no dims [visit_exp []] -[visit_exp `%`_resulttype{`X*#14131`}(t_2*{t_2 <- `t_2*`})] -[visit_exp `X*#14131`] -[visit_id X*#14131] +[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] [visit_exp (t_2*{t_2 <- `t_2*`})] [visit_exp t_2*{t_2 <- `t_2*`}] [scope_enter t_2] @@ -111257,79 +86508,61 @@ dims \ I = [visit_id t_2*] not free [visit_id t_2*] no dims [check_dims] -[check_dims] numtype#1107 numtype#1109 numtype#1111 numtype#1113 numtype#1115 q_1 q_3 q_4 -[visit_exp [`CONST`_instr{numtype#1107}(`F64`_numtype, q_1) `CONST`_instr{numtype#1109}(`F64`_numtype, q_4) `CONST`_instr{numtype#1111}(`F64`_numtype, q_3) `BINOP`_instr{numtype#1113}(`F64`_numtype, `ADD`_binop_) `BINOP`_instr{numtype#1115}(`F64`_numtype, `MUL`_binop_)]] -[visit_exp `CONST`_instr{numtype#1107}(`F64`_numtype, q_1)] -[visit_exp numtype#1107] -[visit_id numtype#1107] +[check_dims] q_1 q_3 q_4 +[visit_exp [`CONST`_instr(`F64`_numtype, q_1) `CONST`_instr(`F64`_numtype, q_4) `CONST`_instr(`F64`_numtype, q_3) `BINOP`_instr(`F64`_numtype, `ADD`_binop_) `BINOP`_instr(`F64`_numtype, `MUL`_binop_)]] +[visit_exp `CONST`_instr(`F64`_numtype, q_1)] [visit_exp (`F64`_numtype, q_1)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp q_1] [visit_id q_1] -[visit_exp `CONST`_instr{numtype#1109}(`F64`_numtype, q_4)] -[visit_exp numtype#1109] -[visit_id numtype#1109] +[visit_exp `CONST`_instr(`F64`_numtype, q_4)] [visit_exp (`F64`_numtype, q_4)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp q_4] [visit_id q_4] -[visit_exp `CONST`_instr{numtype#1111}(`F64`_numtype, q_3)] -[visit_exp numtype#1111] -[visit_id numtype#1111] +[visit_exp `CONST`_instr(`F64`_numtype, q_3)] [visit_exp (`F64`_numtype, q_3)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp q_3] [visit_id q_3] -[visit_exp `BINOP`_instr{numtype#1113}(`F64`_numtype, `ADD`_binop_)] -[visit_exp numtype#1113] -[visit_id numtype#1113] +[visit_exp `BINOP`_instr(`F64`_numtype, `ADD`_binop_)] [visit_exp (`F64`_numtype, `ADD`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `ADD`_binop_] [visit_exp ()] -[visit_exp `BINOP`_instr{numtype#1115}(`F64`_numtype, `MUL`_binop_)] -[visit_exp numtype#1115] -[visit_id numtype#1115] +[visit_exp `BINOP`_instr(`F64`_numtype, `MUL`_binop_)] [visit_exp (`F64`_numtype, `MUL`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `MUL`_binop_] [visit_exp ()] -[check_dims] numtype#1117 numtype#1119 numtype#1121 q_1 q_5 -[visit_exp [`CONST`_instr{numtype#1117}(`F64`_numtype, q_1) `CONST`_instr{numtype#1119}(`F64`_numtype, q_5) `BINOP`_instr{numtype#1121}(`F64`_numtype, `MUL`_binop_)]] -[visit_exp `CONST`_instr{numtype#1117}(`F64`_numtype, q_1)] -[visit_exp numtype#1117] -[visit_id numtype#1117] +[check_dims] q_1 q_5 +[visit_exp [`CONST`_instr(`F64`_numtype, q_1) `CONST`_instr(`F64`_numtype, q_5) `BINOP`_instr(`F64`_numtype, `MUL`_binop_)]] +[visit_exp `CONST`_instr(`F64`_numtype, q_1)] [visit_exp (`F64`_numtype, q_1)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp q_1] [visit_id q_1] -[visit_exp `CONST`_instr{numtype#1119}(`F64`_numtype, q_5)] -[visit_exp numtype#1119] -[visit_id numtype#1119] +[visit_exp `CONST`_instr(`F64`_numtype, q_5)] [visit_exp (`F64`_numtype, q_5)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp q_5] [visit_id q_5] -[visit_exp `BINOP`_instr{numtype#1121}(`F64`_numtype, `MUL`_binop_)] -[visit_exp numtype#1121] -[visit_id numtype#1121] +[visit_exp `BINOP`_instr(`F64`_numtype, `MUL`_binop_)] [visit_exp (`F64`_numtype, `MUL`_binop_)] [visit_exp `F64`_numtype] [visit_exp ()] [visit_exp `MUL`_binop_] [visit_exp ()] -[check_dims] numtype#1123 q_6 -[visit_exp [`CONST`_instr{numtype#1123}(`F64`_numtype, q_6)]] -[visit_exp `CONST`_instr{numtype#1123}(`F64`_numtype, q_6)] -[visit_exp numtype#1123] -[visit_id numtype#1123] +[check_dims] q_6 +[visit_exp [`CONST`_instr(`F64`_numtype, q_6)]] +[visit_exp `CONST`_instr(`F64`_numtype, q_6)] [visit_exp (`F64`_numtype, q_6)] [visit_exp `F64`_numtype] [visit_exp ()] @@ -111338,40 +86571,58 @@ dims \ I = [check_dims] DecD instrdots : instr* [check_dims] +[check_dims] +[scope_enter n] +[visit_id n] not free +[visit_id n] no dims +[scope_enter instr*] +[visit_id instr*] not free +[visit_id instr*] no dims +[scope_exit instr*] +[scope_exit n] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id n] no dims -[visit_id n] -[visit_id instr*] no dims -[visit_id instr*] [check_dims] +[check_dims] +[scope_enter n] +[visit_id n] not free +[visit_id n] no dims +[scope_enter frame] +[visit_id frame] not free +[visit_id frame] no dims +[scope_exit frame] +[scope_exit n] --- 1 --- [check_dims] --- 2 --- --- 3 --- --- 4 --- -[visit_id n] no dims -[visit_id n] -[visit_id frame] no dims -[visit_id frame] [check_dims] [check_dims] X Y _ store DecD allocX(syntax X, syntax Y, store : store, X : X, Y : Y) : (store, addr) [visit_id store] not free [visit_id X] not free [visit_id Y] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [check_dims] X Y _ store DecD allocXs(syntax X, syntax Y, store : store, X*, Y*) : (store, addr*) [visit_id store] not free [visit_id _] not free [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_enter _] [visit_id _] not free +[scope_exit _] +[scope_exit _] [check_dims] s [visit_exp s] [visit_id s] @@ -111737,22 +86988,22 @@ def $ND : bool ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax bit = - | `%`{i : nat}(i : nat) + | `%`(i : nat) -- if ((i = 0) \/ (i = 1)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax byte = - | `%`{i : nat}(i : nat) + | `%`(i : nat) -- if ((i >= 0) /\ (i <= 255)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax uN(N : N)(N) = - | `%`{i : nat}(i : nat) + | `%`(i : nat) -- if ((i >= 0) /\ (i <= ((((2 ^ N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax sN(N : N)(N) = - | `%`{i : int}(i : int) + | `%`(i : int) -- if ((((i >= - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) /\ (i <= - (1 : nat <:> int))) \/ (i = (0 : nat <:> int))) \/ ((i >= + (1 : nat <:> int)) /\ (i <= (+ ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec @@ -111808,12 +87059,12 @@ syntax exp = int ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax fNmag(N : N)(N) = - | `NORM`{m : m, exp : exp}(m : m, exp : exp) + | `NORM`(m : m, exp : exp) -- if ((m < (2 ^ $M(N))) /\ ((((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) <= exp) /\ (exp <= (((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))))) - | `SUBNORM`{m : m, exp : exp}(m : m) + | `SUBNORM`(m : m){exp : exp} -- if ((m < (2 ^ $M(N))) /\ (((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) = exp)) | `INF` - | `NAN`{m : m}(m : m) + | `NAN`(m : m) -- if ((1 <= m) /\ (m < (2 ^ $M(N)))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec @@ -111830,17 +87081,17 @@ syntax f64 = fN(64) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $fzero(N : N) : fN(N) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fzero{N : N, m#1 : m, exp#1 : exp}(N) = `POS`_fN(`SUBNORM`_fNmag{m#1, exp#1}(0)) + def $fzero{N : N}(N) = `POS`_fN(`SUBNORM`_fNmag(0)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $fnat(N : N, nat : nat) : fN(N) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fnat{N : N, n : n, m#3 : m, exp#2 : exp}(N, n) = `POS`_fN(`NORM`_fNmag{m#3, exp#2}(n, (0 : nat <:> int))) + def $fnat{N : N, n : n}(N, n) = `POS`_fN(`NORM`_fNmag(n, (0 : nat <:> int))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $fone(N : N) : fN(N) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fone{N : N, m#5 : m, exp#4 : exp}(N) = `POS`_fN(`NORM`_fNmag{m#5, exp#4}(1, (0 : nat <:> int))) + def $fone{N : N}(N) = `POS`_fN(`NORM`_fNmag(1, (0 : nat <:> int))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $canon_(N : N) : nat @@ -111855,19 +87106,19 @@ syntax v128 = vN(128) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax list(syntax X)(syntax X) = - | `%`{`X*` : X*}(`X*` : X*) + | `%`(`X*` : X*) -- if (|X*{X <- `X*`}| < (2 ^ 32)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax char = - | `%`{i : nat}(i : nat) + | `%`(i : nat) -- if (((i >= 0) /\ (i <= 55295)) \/ ((i >= 57344) /\ (i <= 1114111))) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec def $cont(byte : byte) : nat ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - def $cont{b : byte, i#48148 : nat, i#48144 : nat, i#48146 : nat}(b) = (((b!`%`_byte{i#48148}.0 : nat <:> int) - (128 : nat <:> int)) : int <:> nat) - -- if ((128 < b!`%`_byte{i#48144}.0) /\ (b!`%`_byte{i#48146}.0 < 192)) + def $cont{b : byte}(b) = (((b!`%`_byte.0 : nat <:> int) - (128 : nat <:> int)) : int <:> nat) + -- if ((128 < b!`%`_byte.0) /\ (b!`%`_byte.0 < 192)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec rec { @@ -111877,26 +87128,26 @@ def $utf8(char*) : byte* ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:48.1-48.44 def $utf8{`ch*` : char*}(ch*{ch <- `ch*`}) = $concat_(syntax byte, $utf8([ch])*{ch <- `ch*`}) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:49.1-51.15 - def $utf8{ch : char, b : byte, i#48332 : nat, i#48341 : nat, i#48340 : nat}([ch]) = [b] - -- if (ch!`%`_char{i#48332}.0 < 128) - -- if (`%`_byte{i#48341}(ch!`%`_char{i#48340}.0) = b) + def $utf8{ch : char, b : byte}([ch]) = [b] + -- if (ch!`%`_char.0 < 128) + -- if (`%`_byte(ch!`%`_char.0) = b) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:52.1-54.46 - def $utf8{ch : char, b_1 : byte, b_2 : byte, i#48356 : nat, i#48358 : nat, i#48368 : nat, i#48360 : nat}([ch]) = [b_1 b_2] - -- if ((128 <= ch!`%`_char{i#48356}.0) /\ (ch!`%`_char{i#48358}.0 < 2048)) - -- if (ch!`%`_char{i#48368}.0 = (((2 ^ 6) * (((b_1!`%`_byte{i#48360}.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2))) + def $utf8{ch : char, b_1 : byte, b_2 : byte}([ch]) = [b_1 b_2] + -- if ((128 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 2048)) + -- if (ch!`%`_char.0 = (((2 ^ 6) * (((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2))) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:55.1-57.64 - def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte, i#48400 : nat, i#48402 : nat, i#48404 : nat, i#48406 : nat, i#48422 : nat, i#48408 : nat}([ch]) = [b_1 b_2 b_3] - -- if (((2048 <= ch!`%`_char{i#48400}.0) /\ (ch!`%`_char{i#48402}.0 < 55296)) \/ ((57344 <= ch!`%`_char{i#48404}.0) /\ (ch!`%`_char{i#48406}.0 < 65536))) - -- if (ch!`%`_char{i#48422}.0 = ((((2 ^ 12) * (((b_1!`%`_byte{i#48408}.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3))) + def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte}([ch]) = [b_1 b_2 b_3] + -- if (((2048 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 55296)) \/ ((57344 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 65536))) + -- if (ch!`%`_char.0 = ((((2 ^ 12) * (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3))) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:58.1-60.82 - def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte, b_4 : byte, i#48460 : nat, i#48462 : nat, i#48484 : nat, i#48464 : nat}([ch]) = [b_1 b_2 b_3 b_4] - -- if ((65536 <= ch!`%`_char{i#48460}.0) /\ (ch!`%`_char{i#48462}.0 < 69632)) - -- if (ch!`%`_char{i#48484}.0 = (((((2 ^ 18) * (((b_1!`%`_byte{i#48464}.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4))) + def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte, b_4 : byte}([ch]) = [b_1 b_2 b_3 b_4] + -- if ((65536 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 69632)) + -- if (ch!`%`_char.0 = (((((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4))) } ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax name = - | `%`{`char*` : char*}(`char*` : char*) + | `%`(`char*` : char*) -- if (|$utf8(char*{char <- `char*`})| < (2 ^ 32)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec @@ -111940,11 +87191,11 @@ syntax fieldidx = idx ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax externidx = - | `FUNC`{funcidx : funcidx}(funcidx : funcidx) - | `GLOBAL`{globalidx : globalidx}(globalidx : globalidx) - | `TABLE`{tableidx : tableidx}(tableidx : tableidx) - | `MEM`{memidx : memidx}(memidx : memidx) - | `TAG`{tagidx : tagidx}(tagidx : tagidx) + | `FUNC`(funcidx : funcidx) + | `GLOBAL`(globalidx : globalidx) + | `TABLE`(tableidx : tableidx) + | `MEM`(memidx : memidx) + | `TAG`(tagidx : tagidx) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec rec { @@ -111954,7 +87205,7 @@ def $funcsxx(externidx*) : typeidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:133.1-133.24 def $funcsxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:134.1-134.45 - def $funcsxx{funcidx#1 : funcidx, x : idx, `xx*` : externidx*}([`FUNC`_externidx{funcidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $funcsxx(xx*{xx <- `xx*`}) + def $funcsxx{x : idx, `xx*` : externidx*}([`FUNC`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $funcsxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:135.1-135.58 def $funcsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $funcsxx(xx*{xx <- `xx*`}) -- otherwise @@ -111968,7 +87219,7 @@ def $globalsxx(externidx*) : globalidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:137.1-137.26 def $globalsxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:138.1-138.51 - def $globalsxx{globalidx#1 : globalidx, x : idx, `xx*` : externidx*}([`GLOBAL`_externidx{globalidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $globalsxx(xx*{xx <- `xx*`}) + def $globalsxx{x : idx, `xx*` : externidx*}([`GLOBAL`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $globalsxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:139.1-139.62 def $globalsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $globalsxx(xx*{xx <- `xx*`}) -- otherwise @@ -111982,7 +87233,7 @@ def $tablesxx(externidx*) : tableidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:141.1-141.25 def $tablesxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:142.1-142.48 - def $tablesxx{tableidx#1 : tableidx, x : idx, `xx*` : externidx*}([`TABLE`_externidx{tableidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tablesxx(xx*{xx <- `xx*`}) + def $tablesxx{x : idx, `xx*` : externidx*}([`TABLE`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tablesxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:143.1-143.60 def $tablesxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $tablesxx(xx*{xx <- `xx*`}) -- otherwise @@ -111996,7 +87247,7 @@ def $memsxx(externidx*) : memidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:145.1-145.23 def $memsxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:146.1-146.42 - def $memsxx{memidx#1 : memidx, x : idx, `xx*` : externidx*}([`MEM`_externidx{memidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $memsxx(xx*{xx <- `xx*`}) + def $memsxx{x : idx, `xx*` : externidx*}([`MEM`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $memsxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:147.1-147.56 def $memsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $memsxx(xx*{xx <- `xx*`}) -- otherwise @@ -112010,7 +87261,7 @@ def $tagsxx(externidx*) : tagidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:149.1-149.23 def $tagsxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:150.1-150.42 - def $tagsxx{tagidx#1 : tagidx, x : idx, `xx*` : externidx*}([`TAG`_externidx{tagidx#1}(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tagsxx(xx*{xx <- `xx*`}) + def $tagsxx{x : idx, `xx*` : externidx*}([`TAG`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tagsxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:151.1-151.56 def $tagsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $tagsxx(xx*{xx <- `xx*`}) -- otherwise @@ -112019,21 +87270,21 @@ def $tagsxx(externidx*) : tagidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax free = { - `TYPES`{`typeidx*` : typeidx*} typeidx*, - `FUNCS`{`funcidx*` : funcidx*} funcidx*, - `GLOBALS`{`globalidx*` : globalidx*} globalidx*, - `TABLES`{`tableidx*` : tableidx*} tableidx*, - `MEMS`{`memidx*` : memidx*} memidx*, - `ELEMS`{`elemidx*` : elemidx*} elemidx*, - `DATAS`{`dataidx*` : dataidx*} dataidx*, - `LOCALS`{`localidx*` : localidx*} localidx*, - `LABELS`{`labelidx*` : labelidx*} labelidx* + `TYPES` typeidx* , + `FUNCS` funcidx* , + `GLOBALS` globalidx* , + `TABLES` tableidx* , + `MEMS` memidx* , + `ELEMS` elemidx* , + `DATAS` dataidx* , + `LOCALS` localidx* , + `LABELS` labelidx* } ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_opt(free?) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_opt{`typeidx*#1` : typeidx*, `funcidx*#1` : funcidx*, `globalidx*#1` : globalidx*, `tableidx*#1` : tableidx*, `memidx*#1` : memidx*, `elemidx*#1` : elemidx*, `dataidx*#1` : dataidx*, `localidx*#1` : localidx*, `labelidx*#1` : labelidx*}(?()) = {`TYPES`{`typeidx*#1`} [], `FUNCS`{`funcidx*#1`} [], `GLOBALS`{`globalidx*#1`} [], `TABLES`{`tableidx*#1`} [], `MEMS`{`memidx*#1`} [], `ELEMS`{`elemidx*#1`} [], `DATAS`{`dataidx*#1`} [], `LOCALS`{`localidx*#1`} [], `LABELS`{`labelidx*#1`} []} + def $free_opt(?()) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_opt{free : free}(?(free)) = free @@ -112043,7 +87294,7 @@ rec { ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:170.1-170.29 def $free_list(free*) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:175.1-175.25 - def $free_list{`typeidx*#2` : typeidx*, `funcidx*#2` : funcidx*, `globalidx*#2` : globalidx*, `tableidx*#2` : tableidx*, `memidx*#2` : memidx*, `elemidx*#2` : elemidx*, `dataidx*#2` : dataidx*, `localidx*#2` : localidx*, `labelidx*#2` : labelidx*}([]) = {`TYPES`{`typeidx*#2`} [], `FUNCS`{`funcidx*#2`} [], `GLOBALS`{`globalidx*#2`} [], `TABLES`{`tableidx*#2`} [], `MEMS`{`memidx*#2`} [], `ELEMS`{`elemidx*#2`} [], `DATAS`{`dataidx*#2`} [], `LOCALS`{`localidx*#2`} [], `LABELS`{`labelidx*#2`} []} + def $free_list([]) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:176.1-176.57 def $free_list{free : free, `free'*` : free*}([free] ++ free'*{free' <- `free'*`}) = free +++ $free_list(free'*{free' <- `free'*`}) } @@ -112051,58 +87302,58 @@ def $free_list(free*) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_typeidx(typeidx : typeidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_typeidx{typeidx : typeidx, `typeidx*#3` : typeidx*, `funcidx*#3` : funcidx*, `globalidx*#3` : globalidx*, `tableidx*#3` : tableidx*, `memidx*#3` : memidx*, `elemidx*#3` : elemidx*, `dataidx*#3` : dataidx*, `localidx*#3` : localidx*, `labelidx*#3` : labelidx*}(typeidx) = {`TYPES`{`typeidx*#3`} [typeidx], `FUNCS`{`funcidx*#3`} [], `GLOBALS`{`globalidx*#3`} [], `TABLES`{`tableidx*#3`} [], `MEMS`{`memidx*#3`} [], `ELEMS`{`elemidx*#3`} [], `DATAS`{`dataidx*#3`} [], `LOCALS`{`localidx*#3`} [], `LABELS`{`labelidx*#3`} []} + def $free_typeidx{typeidx : typeidx}(typeidx) = {`TYPES` [typeidx], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_funcidx(funcidx : funcidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_funcidx{funcidx : funcidx, `typeidx*#4` : typeidx*, `funcidx*#4` : funcidx*, `globalidx*#4` : globalidx*, `tableidx*#4` : tableidx*, `memidx*#4` : memidx*, `elemidx*#4` : elemidx*, `dataidx*#4` : dataidx*, `localidx*#4` : localidx*, `labelidx*#4` : labelidx*}(funcidx) = {`TYPES`{`typeidx*#4`} [], `FUNCS`{`funcidx*#4`} [funcidx], `GLOBALS`{`globalidx*#4`} [], `TABLES`{`tableidx*#4`} [], `MEMS`{`memidx*#4`} [], `ELEMS`{`elemidx*#4`} [], `DATAS`{`dataidx*#4`} [], `LOCALS`{`localidx*#4`} [], `LABELS`{`labelidx*#4`} []} + def $free_funcidx{funcidx : funcidx}(funcidx) = {`TYPES` [], `FUNCS` [funcidx], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_globalidx(globalidx : globalidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_globalidx{globalidx : globalidx, `typeidx*#5` : typeidx*, `funcidx*#5` : funcidx*, `globalidx*#5` : globalidx*, `tableidx*#5` : tableidx*, `memidx*#5` : memidx*, `elemidx*#5` : elemidx*, `dataidx*#5` : dataidx*, `localidx*#5` : localidx*, `labelidx*#5` : labelidx*}(globalidx) = {`TYPES`{`typeidx*#5`} [], `FUNCS`{`funcidx*#5`} [], `GLOBALS`{`globalidx*#5`} [globalidx], `TABLES`{`tableidx*#5`} [], `MEMS`{`memidx*#5`} [], `ELEMS`{`elemidx*#5`} [], `DATAS`{`dataidx*#5`} [], `LOCALS`{`localidx*#5`} [], `LABELS`{`labelidx*#5`} []} + def $free_globalidx{globalidx : globalidx}(globalidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [globalidx], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_tableidx(tableidx : tableidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_tableidx{tableidx : tableidx, `typeidx*#6` : typeidx*, `funcidx*#6` : funcidx*, `globalidx*#6` : globalidx*, `tableidx*#6` : tableidx*, `memidx*#6` : memidx*, `elemidx*#6` : elemidx*, `dataidx*#6` : dataidx*, `localidx*#6` : localidx*, `labelidx*#6` : labelidx*}(tableidx) = {`TYPES`{`typeidx*#6`} [], `FUNCS`{`funcidx*#6`} [], `GLOBALS`{`globalidx*#6`} [], `TABLES`{`tableidx*#6`} [tableidx], `MEMS`{`memidx*#6`} [], `ELEMS`{`elemidx*#6`} [], `DATAS`{`dataidx*#6`} [], `LOCALS`{`localidx*#6`} [], `LABELS`{`labelidx*#6`} []} + def $free_tableidx{tableidx : tableidx}(tableidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [tableidx], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_memidx(memidx : memidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_memidx{memidx : memidx, `typeidx*#7` : typeidx*, `funcidx*#7` : funcidx*, `globalidx*#7` : globalidx*, `tableidx*#7` : tableidx*, `memidx*#7` : memidx*, `elemidx*#7` : elemidx*, `dataidx*#7` : dataidx*, `localidx*#7` : localidx*, `labelidx*#7` : labelidx*}(memidx) = {`TYPES`{`typeidx*#7`} [], `FUNCS`{`funcidx*#7`} [], `GLOBALS`{`globalidx*#7`} [], `TABLES`{`tableidx*#7`} [], `MEMS`{`memidx*#7`} [memidx], `ELEMS`{`elemidx*#7`} [], `DATAS`{`dataidx*#7`} [], `LOCALS`{`localidx*#7`} [], `LABELS`{`labelidx*#7`} []} + def $free_memidx{memidx : memidx}(memidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [memidx], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_elemidx(elemidx : elemidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_elemidx{elemidx : elemidx, `typeidx*#8` : typeidx*, `funcidx*#8` : funcidx*, `globalidx*#8` : globalidx*, `tableidx*#8` : tableidx*, `memidx*#8` : memidx*, `elemidx*#8` : elemidx*, `dataidx*#8` : dataidx*, `localidx*#8` : localidx*, `labelidx*#8` : labelidx*}(elemidx) = {`TYPES`{`typeidx*#8`} [], `FUNCS`{`funcidx*#8`} [], `GLOBALS`{`globalidx*#8`} [], `TABLES`{`tableidx*#8`} [], `MEMS`{`memidx*#8`} [], `ELEMS`{`elemidx*#8`} [elemidx], `DATAS`{`dataidx*#8`} [], `LOCALS`{`localidx*#8`} [], `LABELS`{`labelidx*#8`} []} + def $free_elemidx{elemidx : elemidx}(elemidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [elemidx], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_dataidx(dataidx : dataidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_dataidx{dataidx : dataidx, `typeidx*#9` : typeidx*, `funcidx*#9` : funcidx*, `globalidx*#9` : globalidx*, `tableidx*#9` : tableidx*, `memidx*#9` : memidx*, `elemidx*#9` : elemidx*, `dataidx*#9` : dataidx*, `localidx*#9` : localidx*, `labelidx*#9` : labelidx*}(dataidx) = {`TYPES`{`typeidx*#9`} [], `FUNCS`{`funcidx*#9`} [], `GLOBALS`{`globalidx*#9`} [], `TABLES`{`tableidx*#9`} [], `MEMS`{`memidx*#9`} [], `ELEMS`{`elemidx*#9`} [], `DATAS`{`dataidx*#9`} [dataidx], `LOCALS`{`localidx*#9`} [], `LABELS`{`labelidx*#9`} []} + def $free_dataidx{dataidx : dataidx}(dataidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [dataidx], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_localidx(localidx : localidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_localidx{localidx : localidx, `typeidx*#10` : typeidx*, `funcidx*#10` : funcidx*, `globalidx*#10` : globalidx*, `tableidx*#10` : tableidx*, `memidx*#10` : memidx*, `elemidx*#10` : elemidx*, `dataidx*#10` : dataidx*, `localidx*#10` : localidx*, `labelidx*#10` : labelidx*}(localidx) = {`TYPES`{`typeidx*#10`} [], `FUNCS`{`funcidx*#10`} [], `GLOBALS`{`globalidx*#10`} [], `TABLES`{`tableidx*#10`} [], `MEMS`{`memidx*#10`} [], `ELEMS`{`elemidx*#10`} [], `DATAS`{`dataidx*#10`} [], `LOCALS`{`localidx*#10`} [localidx], `LABELS`{`labelidx*#10`} []} + def $free_localidx{localidx : localidx}(localidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [localidx], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_labelidx(labelidx : labelidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_labelidx{labelidx : labelidx, `typeidx*#11` : typeidx*, `funcidx*#11` : funcidx*, `globalidx*#11` : globalidx*, `tableidx*#11` : tableidx*, `memidx*#11` : memidx*, `elemidx*#11` : elemidx*, `dataidx*#11` : dataidx*, `localidx*#11` : localidx*, `labelidx*#11` : labelidx*}(labelidx) = {`TYPES`{`typeidx*#11`} [], `FUNCS`{`funcidx*#11`} [], `GLOBALS`{`globalidx*#11`} [], `TABLES`{`tableidx*#11`} [], `MEMS`{`memidx*#11`} [], `ELEMS`{`elemidx*#11`} [], `DATAS`{`dataidx*#11`} [], `LOCALS`{`localidx*#11`} [], `LABELS`{`labelidx*#11`} [labelidx]} + def $free_labelidx{labelidx : labelidx}(labelidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` [labelidx]} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_externidx(externidx : externidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{funcidx#3 : funcidx, funcidx : funcidx}(`FUNC`_externidx{funcidx#3}(funcidx)) = $free_funcidx(funcidx) + def $free_externidx{funcidx : funcidx}(`FUNC`_externidx(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{globalidx#3 : globalidx, globalidx : globalidx}(`GLOBAL`_externidx{globalidx#3}(globalidx)) = $free_globalidx(globalidx) + def $free_externidx{globalidx : globalidx}(`GLOBAL`_externidx(globalidx)) = $free_globalidx(globalidx) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{tableidx#3 : tableidx, tableidx : tableidx}(`TABLE`_externidx{tableidx#3}(tableidx)) = $free_tableidx(tableidx) + def $free_externidx{tableidx : tableidx}(`TABLE`_externidx(tableidx)) = $free_tableidx(tableidx) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{memidx#3 : memidx, memidx : memidx}(`MEM`_externidx{memidx#3}(memidx)) = $free_memidx(memidx) + def $free_externidx{memidx : memidx}(`MEM`_externidx(memidx)) = $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax null = @@ -112161,9 +87412,9 @@ rec { ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:37.1-38.43 syntax typeuse = - | `_IDX`{typeidx : typeidx}(typeidx : typeidx) - | `_DEF`{rectype : rectype, n : n}(rectype : rectype, n : n) - | `REC`{n : n}(n : n) + | `_IDX`(typeidx : typeidx) + | `_DEF`(rectype : rectype, n : n) + | `REC`(n : n) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:43.1-44.26 syntax heaptype = @@ -112180,9 +87431,9 @@ syntax heaptype = | `EXTERN` | `NOEXTERN` | `BOT` - | `_IDX`{typeidx : typeidx}(typeidx : typeidx) - | `_DEF`{rectype : rectype, n : n}(rectype : rectype, n : n) - | `REC`{n : n}(n : n) + | `_IDX`(typeidx : typeidx) + | `_DEF`(rectype : rectype, n : n) + | `REC`(n : n) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:51.1-52.14 syntax valtype = @@ -112191,7 +87442,7 @@ syntax valtype = | `F32` | `F64` | `V128` - | `REF`{`null?` : null?, heaptype : heaptype}(`null?` : null?, heaptype : heaptype) + | `REF`(`null?` : null?, heaptype : heaptype) | `BOT` ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:92.1-92.66 @@ -112201,7 +87452,7 @@ syntax storagetype = | `F32` | `F64` | `V128` - | `REF`{`null?` : null?, heaptype : heaptype}(`null?` : null?, heaptype : heaptype) + | `REF`(`null?` : null?, heaptype : heaptype) | `BOT` | `I8` | `I16` @@ -112211,17 +87462,17 @@ syntax resulttype = list(syntax valtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:112.1-112.61 syntax fieldtype = - | `%%`{`mut?` : mut?, storagetype : storagetype}(`mut?` : mut?, storagetype : storagetype) + | `%%`(`mut?` : mut?, storagetype : storagetype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:114.1-117.34 syntax comptype = | `STRUCT`(list(syntax fieldtype)) - | `ARRAY`{fieldtype : fieldtype}(fieldtype : fieldtype) - | `FUNC%->%`{resulttype : resulttype}(resulttype : resulttype, resulttype : resulttype) + | `ARRAY`(fieldtype : fieldtype) + | `FUNC%->%`(resulttype : resulttype, resulttype : resulttype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:119.1-120.33 syntax subtype = - | `SUB`{`final?` : final?, `typeuse*` : typeuse*, comptype : comptype}(`final?` : final?, `typeuse*` : typeuse*, comptype : comptype) + | `SUB`(`final?` : final?, `typeuse*` : typeuse*, comptype : comptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:122.1-123.22 syntax rectype = @@ -112230,16 +87481,16 @@ syntax rectype = ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax deftype = - | `_DEF`{rectype : rectype, n : n}(rectype : rectype, n : n) + | `_DEF`(rectype : rectype, n : n) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax typevar = - | `_IDX`{typeidx : typeidx}(typeidx : typeidx) - | `REC`{n : n}(n : n) + | `_IDX`(typeidx : typeidx) + | `REC`(n : n) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax reftype = - | `REF`{`null?` : null?, heaptype : heaptype}(`null?` : null?, heaptype : heaptype) + | `REF`(`null?` : null?, heaptype : heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Inn = @@ -112266,62 +87517,62 @@ syntax Cnn = ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $ANYREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $ANYREF{`null?#11` : null?, heaptype#11 : heaptype} = `REF`_reftype{`null?#11`, heaptype#11}(?(`NULL`_null), `ANY`_heaptype) + def $ANYREF = `REF`_reftype(?(`NULL`_null), `ANY`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $EQREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EQREF{`null?#23` : null?, heaptype#23 : heaptype} = `REF`_reftype{`null?#23`, heaptype#23}(?(`NULL`_null), `EQ`_heaptype) + def $EQREF = `REF`_reftype(?(`NULL`_null), `EQ`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $I31REF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $I31REF{`null?#35` : null?, heaptype#35 : heaptype} = `REF`_reftype{`null?#35`, heaptype#35}(?(`NULL`_null), `I31`_heaptype) + def $I31REF = `REF`_reftype(?(`NULL`_null), `I31`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $STRUCTREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $STRUCTREF{`null?#47` : null?, heaptype#47 : heaptype} = `REF`_reftype{`null?#47`, heaptype#47}(?(`NULL`_null), `STRUCT`_heaptype) + def $STRUCTREF = `REF`_reftype(?(`NULL`_null), `STRUCT`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $ARRAYREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $ARRAYREF{`null?#59` : null?, heaptype#59 : heaptype} = `REF`_reftype{`null?#59`, heaptype#59}(?(`NULL`_null), `ARRAY`_heaptype) + def $ARRAYREF = `REF`_reftype(?(`NULL`_null), `ARRAY`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $FUNCREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $FUNCREF{`null?#71` : null?, heaptype#71 : heaptype} = `REF`_reftype{`null?#71`, heaptype#71}(?(`NULL`_null), `FUNC`_heaptype) + def $FUNCREF = `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $EXNREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EXNREF{`null?#83` : null?, heaptype#83 : heaptype} = `REF`_reftype{`null?#83`, heaptype#83}(?(`NULL`_null), `EXN`_heaptype) + def $EXNREF = `REF`_reftype(?(`NULL`_null), `EXN`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $EXTERNREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EXTERNREF{`null?#95` : null?, heaptype#95 : heaptype} = `REF`_reftype{`null?#95`, heaptype#95}(?(`NULL`_null), `EXTERN`_heaptype) + def $EXTERNREF = `REF`_reftype(?(`NULL`_null), `EXTERN`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $NULLREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLREF{`null?#107` : null?, heaptype#107 : heaptype} = `REF`_reftype{`null?#107`, heaptype#107}(?(`NULL`_null), `NONE`_heaptype) + def $NULLREF = `REF`_reftype(?(`NULL`_null), `NONE`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $NULLFUNCREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLFUNCREF{`null?#119` : null?, heaptype#119 : heaptype} = `REF`_reftype{`null?#119`, heaptype#119}(?(`NULL`_null), `NOFUNC`_heaptype) + def $NULLFUNCREF = `REF`_reftype(?(`NULL`_null), `NOFUNC`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $NULLEXNREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLEXNREF{`null?#131` : null?, heaptype#131 : heaptype} = `REF`_reftype{`null?#131`, heaptype#131}(?(`NULL`_null), `NOEXN`_heaptype) + def $NULLEXNREF = `REF`_reftype(?(`NULL`_null), `NOEXN`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $NULLEXTERNREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLEXTERNREF{`null?#143` : null?, heaptype#143 : heaptype} = `REF`_reftype{`null?#143`, heaptype#143}(?(`NULL`_null), `NOEXTERN`_heaptype) + def $NULLEXTERNREF = `REF`_reftype(?(`NULL`_null), `NOEXTERN`_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax packtype = @@ -112358,22 +87609,22 @@ syntax Lnn = ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax limits = - | `[%..%]`{u64 : u64, `u64?` : u64?}(u64 : u64, `u64?` : u64?) + | `[%..%]`(u64 : u64, `u64?` : u64?) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax tagtype = typeuse ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax globaltype = - | `%%`{`mut?` : mut?, valtype : valtype}(`mut?` : mut?, valtype : valtype) + | `%%`(`mut?` : mut?, valtype : valtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax memtype = - | `%%PAGE`{addrtype : addrtype, limits : limits}(addrtype : addrtype, limits : limits) + | `%%PAGE`(addrtype : addrtype, limits : limits) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax tabletype = - | `%%%`{addrtype : addrtype, limits : limits, reftype : reftype}(addrtype : addrtype, limits : limits, reftype : reftype) + | `%%%`(addrtype : addrtype, limits : limits, reftype : reftype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax datatype = @@ -112384,15 +87635,15 @@ syntax elemtype = reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax externtype = - | `TAG`{tagtype : tagtype}(tagtype : tagtype) - | `GLOBAL`{globaltype : globaltype}(globaltype : globaltype) - | `MEM`{memtype : memtype}(memtype : memtype) - | `TABLE`{tabletype : tabletype}(tabletype : tabletype) - | `FUNC`{typeuse : typeuse}(typeuse : typeuse) + | `TAG`(tagtype : tagtype) + | `GLOBAL`(globaltype : globaltype) + | `MEM`(memtype : memtype) + | `TABLE`(tabletype : tabletype) + | `FUNC`(typeuse : typeuse) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax moduletype = - | `%->%`{`externtype*` : externtype*}(`externtype*` : externtype*, `externtype*` : externtype*) + | `%->%`(`externtype*` : externtype*, `externtype*` : externtype*) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $IN(N : N) : Inn @@ -112593,9 +87844,9 @@ def $minat(addrtype : addrtype, addrtype : addrtype) : addrtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $diffrt(reftype : reftype, reftype : reftype) : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $diffrt{`null?#155` : null?, heaptype#155 : heaptype, `null_1?` : null?, ht_1 : heaptype, `null?#167` : null?, heaptype#167 : heaptype, ht_2 : heaptype, `null?#179` : null?, heaptype#179 : heaptype}(`REF`_reftype{`null?#155`, heaptype#155}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#167`, heaptype#167}(?(`NULL`_null), ht_2)) = `REF`_reftype{`null?#179`, heaptype#179}(?(), ht_1) + def $diffrt{`null_1?` : null?, ht_1 : heaptype, ht_2 : heaptype}(`REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(?(`NULL`_null), ht_2)) = `REF`_reftype(?(), ht_1) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $diffrt{`null?#191` : null?, heaptype#191 : heaptype, `null_1?` : null?, ht_1 : heaptype, `null?#203` : null?, heaptype#203 : heaptype, ht_2 : heaptype, `null?#215` : null?, heaptype#215 : heaptype}(`REF`_reftype{`null?#191`, heaptype#191}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#203`, heaptype#203}(?(), ht_2)) = `REF`_reftype{`null?#215`, heaptype#215}(null_1?{null_1 <- `null_1?`}, ht_1) + def $diffrt{`null_1?` : null?, ht_1 : heaptype, ht_2 : heaptype}(`REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(?(), ht_2)) = `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $as_deftype(typeuse : typeuse) : deftype @@ -112610,7 +87861,7 @@ def $tagsxt(externtype*) : tagtype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:314.1-314.23 def $tagsxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:315.1-315.44 - def $tagsxt{tagtype#1 : tagtype, jt : tagtype, `xt*` : externtype*}([`TAG`_externtype{tagtype#1}(jt)] ++ xt*{xt <- `xt*`}) = [jt] ++ $tagsxt(xt*{xt <- `xt*`}) + def $tagsxt{jt : tagtype, `xt*` : externtype*}([`TAG`_externtype(jt)] ++ xt*{xt <- `xt*`}) = [jt] ++ $tagsxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:316.1-316.57 def $tagsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $tagsxt(xt*{xt <- `xt*`}) -- otherwise @@ -112624,7 +87875,7 @@ def $globalsxt(externtype*) : globaltype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:318.1-318.26 def $globalsxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:319.1-319.53 - def $globalsxt{globaltype#1 : globaltype, gt : globaltype, `xt*` : externtype*}([`GLOBAL`_externtype{globaltype#1}(gt)] ++ xt*{xt <- `xt*`}) = [gt] ++ $globalsxt(xt*{xt <- `xt*`}) + def $globalsxt{gt : globaltype, `xt*` : externtype*}([`GLOBAL`_externtype(gt)] ++ xt*{xt <- `xt*`}) = [gt] ++ $globalsxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:320.1-320.63 def $globalsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $globalsxt(xt*{xt <- `xt*`}) -- otherwise @@ -112638,7 +87889,7 @@ def $memsxt(externtype*) : memtype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:322.1-322.23 def $memsxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:323.1-323.44 - def $memsxt{memtype#1 : memtype, mt : memtype, `xt*` : externtype*}([`MEM`_externtype{memtype#1}(mt)] ++ xt*{xt <- `xt*`}) = [mt] ++ $memsxt(xt*{xt <- `xt*`}) + def $memsxt{mt : memtype, `xt*` : externtype*}([`MEM`_externtype(mt)] ++ xt*{xt <- `xt*`}) = [mt] ++ $memsxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:324.1-324.57 def $memsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $memsxt(xt*{xt <- `xt*`}) -- otherwise @@ -112652,7 +87903,7 @@ def $tablesxt(externtype*) : tabletype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:326.1-326.25 def $tablesxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:327.1-327.50 - def $tablesxt{tabletype#1 : tabletype, tt : tabletype, `xt*` : externtype*}([`TABLE`_externtype{tabletype#1}(tt)] ++ xt*{xt <- `xt*`}) = [tt] ++ $tablesxt(xt*{xt <- `xt*`}) + def $tablesxt{tt : tabletype, `xt*` : externtype*}([`TABLE`_externtype(tt)] ++ xt*{xt <- `xt*`}) = [tt] ++ $tablesxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:328.1-328.61 def $tablesxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $tablesxt(xt*{xt <- `xt*`}) -- otherwise @@ -112666,7 +87917,7 @@ def $funcsxt(externtype*) : deftype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:330.1-330.24 def $funcsxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:331.1-331.47 - def $funcsxt{typeuse#1 : typeuse, dt : deftype, `xt*` : externtype*}([`FUNC`_externtype{typeuse#1}((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}) = [dt] ++ $funcsxt(xt*{xt <- `xt*`}) + def $funcsxt{dt : deftype, `xt*` : externtype*}([`FUNC`_externtype((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}) = [dt] ++ $funcsxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:332.1-332.59 def $funcsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $funcsxt(xt*{xt <- `xt*`}) -- otherwise @@ -112695,9 +87946,9 @@ def $minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:402.1-402.39 def $minus_recs([], []) = ([], []) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:403.1-403.63 - def $minus_recs{n#53 : n, n : n, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*}([`REC`_typevar{n#53}(n)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) + def $minus_recs{n : n, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*}([`REC`_typevar(n)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:404.1-405.45 - def $minus_recs{typeidx#1 : typeidx, x : idx, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*, typeidx#3 : typeidx, `tv'*` : typevar*, `tu'*` : typeuse*}([`_IDX`_typevar{typeidx#1}(x)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = ([`_IDX`_typevar{typeidx#3}(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) + def $minus_recs{x : idx, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*, `tv'*` : typevar*, `tu'*` : typeuse*}([`_IDX`_typevar(x)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = ([`_IDX`_typevar(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) -- if ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) } @@ -112739,7 +87990,7 @@ def $subst_heaptype(heaptype : heaptype, typevar*, typeuse*) : heaptype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:344.1-344.112 def $subst_reftype(reftype : reftype, typevar*, typeuse*) : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:380.1-380.87 - def $subst_reftype{`null?#227` : null?, heaptype#227 : heaptype, `null?` : null?, ht : heaptype, `tv*` : typevar*, `tu*` : typeuse*, `null?#239` : null?, heaptype#239 : heaptype}(`REF`_reftype{`null?#227`, heaptype#227}(null?{null <- `null?`}, ht), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REF`_reftype{`null?#239`, heaptype#239}(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_reftype{`null?` : null?, ht : heaptype, `tv*` : typevar*, `tu*` : typeuse*}(`REF`_reftype(null?{null <- `null?`}, ht), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REF`_reftype(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:345.1-345.112 def $subst_valtype(valtype : valtype, typevar*, typeuse*) : valtype @@ -112762,32 +88013,32 @@ def $subst_storagetype(storagetype : storagetype, typevar*, typeuse*) : storaget ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:349.1-349.112 def $subst_fieldtype(fieldtype : fieldtype, typevar*, typeuse*) : fieldtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:392.1-392.82 - def $subst_fieldtype{`mut?#67` : mut?, storagetype#11 : storagetype, `mut?` : mut?, zt : storagetype, `tv*` : typevar*, `tu*` : typeuse*, `mut?#79` : mut?, storagetype#23 : storagetype}(`%%`_fieldtype{`mut?#67`, storagetype#11}(mut?{mut <- `mut?`}, zt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_fieldtype{`mut?#79`, storagetype#23}(mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_fieldtype{`mut?` : mut?, zt : storagetype, `tv*` : typevar*, `tu*` : typeuse*}(`%%`_fieldtype(mut?{mut <- `mut?`}, zt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_fieldtype(mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:351.1-351.112 def $subst_comptype(comptype : comptype, typevar*, typeuse*) : comptype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:394.1-394.85 - def $subst_comptype{`X*#11` : fieldtype*, `ft*` : fieldtype*, `tv*` : typevar*, `tu*` : typeuse*, `X*#26` : fieldtype*}(`STRUCT`_comptype(`%`_list{`X*#11`}(ft*{ft <- `ft*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `STRUCT`_comptype(`%`_list{`X*#26`}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})) + def $subst_comptype{`ft*` : fieldtype*, `tv*` : typevar*, `tu*` : typeuse*}(`STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `STRUCT`_comptype(`%`_list($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:395.1-395.81 - def $subst_comptype{fieldtype#1 : fieldtype, ft : fieldtype, `tv*` : typevar*, `tu*` : typeuse*, fieldtype#3 : fieldtype}(`ARRAY`_comptype{fieldtype#1}(ft), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `ARRAY`_comptype{fieldtype#3}($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_comptype{ft : fieldtype, `tv*` : typevar*, `tu*` : typeuse*}(`ARRAY`_comptype(ft), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `ARRAY`_comptype($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:396.1-396.123 - def $subst_comptype{resulttype#1 : resulttype, `X*#41` : valtype*, `t_1*` : valtype*, `X*#54` : valtype*, `t_2*` : valtype*, `tv*` : typevar*, `tu*` : typeuse*, resulttype#4 : resulttype, `X*#69` : valtype*, `X*#82` : valtype*}(`FUNC%->%`_comptype{resulttype#1}(`%`_resulttype{`X*#41`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#54`}(t_2*{t_2 <- `t_2*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC%->%`_comptype{resulttype#4}(`%`_resulttype{`X*#69`}($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype{`X*#82`}($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})) + def $subst_comptype{`t_1*` : valtype*, `t_2*` : valtype*, `tv*` : typevar*, `tu*` : typeuse*}(`FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC%->%`_comptype(`%`_resulttype($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:352.1-352.112 def $subst_subtype(subtype : subtype, typevar*, typeuse*) : subtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:398.1-399.74 - def $subst_subtype{`final?#11` : final?, `typeuse*#11` : typeuse*, comptype#11 : comptype, `final?` : final?, `tu'*` : typeuse*, ct : comptype, `tv*` : typevar*, `tu*` : typeuse*, `final?#23` : final?, `typeuse*#23` : typeuse*, comptype#23 : comptype}(`SUB`_subtype{`final?#11`, `typeuse*#11`, comptype#11}(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `SUB`_subtype{`final?#23`, `typeuse*#23`, comptype#23}(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_subtype{`final?` : final?, `tu'*` : typeuse*, ct : comptype, `tv*` : typevar*, `tu*` : typeuse*}(`SUB`_subtype(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `SUB`_subtype(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:353.1-353.112 def $subst_rectype(rectype : rectype, typevar*, typeuse*) : rectype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:407.1-408.45 - def $subst_rectype{`X*#97` : subtype*, `st*` : subtype*, `tv*` : typevar*, `tu*` : typeuse*, `X*#112` : subtype*, `tv'*` : typevar*, `tu'*` : typeuse*}(`REC`_rectype(`%`_list{`X*#97`}(st*{st <- `st*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REC`_rectype(`%`_list{`X*#112`}($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})) + def $subst_rectype{`st*` : subtype*, `tv*` : typevar*, `tu*` : typeuse*, `tv'*` : typevar*, `tu'*` : typeuse*}(`REC`_rectype(`%`_list(st*{st <- `st*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REC`_rectype(`%`_list($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})) -- if ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:354.1-354.112 def $subst_deftype(deftype : deftype, typevar*, typeuse*) : deftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:413.1-413.80 - def $subst_deftype{rectype#63 : rectype, n#65 : n, qt : rectype, i : n, `tv*` : typevar*, `tu*` : typeuse*, rectype#75 : rectype, n#77 : n}(`_DEF`_deftype{rectype#63, n#65}(qt, i), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `_DEF`_deftype{rectype#75, n#77}($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i) + def $subst_deftype{qt : rectype, i : n, `tv*` : typevar*, `tu*` : typeuse*}(`_DEF`_deftype(qt, i), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `_DEF`_deftype($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i) } ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec @@ -112803,80 +88054,80 @@ def $subst_tagtype(tagtype : tagtype, typevar*, typeuse*) : tagtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_globaltype(globaltype : globaltype, typevar*, typeuse*) : globaltype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_globaltype{`mut?#149` : mut?, valtype#67 : valtype, `mut?` : mut?, t : valtype, `tv*` : typevar*, `tu*` : typeuse*, `mut?#161` : mut?, valtype#79 : valtype}(`%%`_globaltype{`mut?#149`, valtype#67}(mut?{mut <- `mut?`}, t), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_globaltype{`mut?#161`, valtype#79}(mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_globaltype{`mut?` : mut?, t : valtype, `tv*` : typevar*, `tu*` : typeuse*}(`%%`_globaltype(mut?{mut <- `mut?`}, t), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_globaltype(mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_memtype(memtype : memtype, typevar*, typeuse*) : memtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_memtype{addrtype#91 : addrtype, limits#91 : limits, at : addrtype, lim : limits, `tv*` : typevar*, `tu*` : typeuse*, addrtype#103 : addrtype, limits#103 : limits}(`%%PAGE`_memtype{addrtype#91, limits#91}(at, lim), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%PAGE`_memtype{addrtype#103, limits#103}(at, lim) + def $subst_memtype{at : addrtype, lim : limits, `tv*` : typevar*, `tu*` : typeuse*}(`%%PAGE`_memtype(at, lim), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%PAGE`_memtype(at, lim) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_tabletype(tabletype : tabletype, typevar*, typeuse*) : tabletype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_tabletype{addrtype#115 : addrtype, limits#115 : limits, reftype#51 : reftype, at : addrtype, lim : limits, rt : reftype, `tv*` : typevar*, `tu*` : typeuse*, addrtype#127 : addrtype, limits#127 : limits, reftype#63 : reftype}(`%%%`_tabletype{addrtype#115, limits#115, reftype#51}(at, lim, rt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%%`_tabletype{addrtype#127, limits#127, reftype#63}(at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_tabletype{at : addrtype, lim : limits, rt : reftype, `tv*` : typevar*, `tu*` : typeuse*}(`%%%`_tabletype(at, lim, rt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%%`_tabletype(at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_externtype(externtype : externtype, typevar*, typeuse*) : externtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{tagtype#3 : tagtype, jt : tagtype, `tv*` : typevar*, `tu*` : typeuse*, tagtype#5 : tagtype}(`TAG`_externtype{tagtype#3}(jt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TAG`_externtype{tagtype#5}($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_externtype{jt : tagtype, `tv*` : typevar*, `tu*` : typeuse*}(`TAG`_externtype(jt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TAG`_externtype($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{globaltype#3 : globaltype, gt : globaltype, `tv*` : typevar*, `tu*` : typeuse*, globaltype#5 : globaltype}(`GLOBAL`_externtype{globaltype#3}(gt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `GLOBAL`_externtype{globaltype#5}($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_externtype{gt : globaltype, `tv*` : typevar*, `tu*` : typeuse*}(`GLOBAL`_externtype(gt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `GLOBAL`_externtype($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{tabletype#3 : tabletype, tt : tabletype, `tv*` : typevar*, `tu*` : typeuse*, tabletype#5 : tabletype}(`TABLE`_externtype{tabletype#3}(tt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TABLE`_externtype{tabletype#5}($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_externtype{tt : tabletype, `tv*` : typevar*, `tu*` : typeuse*}(`TABLE`_externtype(tt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TABLE`_externtype($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{memtype#3 : memtype, mt : memtype, `tv*` : typevar*, `tu*` : typeuse*, memtype#5 : memtype}(`MEM`_externtype{memtype#3}(mt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `MEM`_externtype{memtype#5}($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_externtype{mt : memtype, `tv*` : typevar*, `tu*` : typeuse*}(`MEM`_externtype(mt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `MEM`_externtype($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{typeuse#3 : typeuse, dt : deftype, `tv*` : typevar*, `tu*` : typeuse*, typeuse#5 : typeuse}(`FUNC`_externtype{typeuse#3}((dt : deftype <: typeuse)), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC`_externtype{typeuse#5}(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)) + def $subst_externtype{dt : deftype, `tv*` : typevar*, `tu*` : typeuse*}(`FUNC`_externtype((dt : deftype <: typeuse)), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC`_externtype(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_moduletype{`externtype*#18` : externtype*, `xt_1*` : externtype*, `xt_2*` : externtype*, `tv*` : typevar*, `tu*` : typeuse*, `externtype*#38` : externtype*}(`%->%`_moduletype{`externtype*#18`}(xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`}), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%->%`_moduletype{`externtype*#38`}($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`}) + def $subst_moduletype{`xt_1*` : externtype*, `xt_2*` : externtype*, `tv*` : typevar*, `tu*` : typeuse*}(`%->%`_moduletype(xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`}), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%->%`_moduletype($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_all_valtype(valtype : valtype, typeuse*) : valtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_valtype{t : valtype, n : n, `tu*` : typeuse*, i : nat, `i#779*` : nat*, `typeidx#5*` : typeidx*}(t, tu^n{tu <- `tu*`}) = $subst_valtype(t, `_IDX`_typevar{typeidx#5}(`%`_typeidx{i#779}(i))^(i%`_comptype{resulttype#7}(resulttype_1, resulttype_2)) = $free_resulttype(resulttype_1) +++ $free_resulttype(resulttype_2) + def $free_comptype{resulttype_1 : resulttype, resulttype_2 : resulttype}(`FUNC%->%`_comptype(resulttype_1, resulttype_2)) = $free_resulttype(resulttype_1) +++ $free_resulttype(resulttype_2) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:494.1-494.34 def $free_subtype(subtype : subtype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:553.1-554.66 - def $free_subtype{`final?#179` : final?, `typeuse*#179` : typeuse*, comptype#179 : comptype, `final?` : final?, `typeuse*` : typeuse*, comptype : comptype}(`SUB`_subtype{`final?#179`, `typeuse*#179`, comptype#179}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) = $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`}) +++ $free_comptype(comptype) + def $free_subtype{`final?` : final?, `typeuse*` : typeuse*, comptype : comptype}(`SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) = $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`}) +++ $free_comptype(comptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:495.1-495.34 def $free_rectype(rectype : rectype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:556.1-556.70 - def $free_rectype{`X*#302` : subtype*, `subtype*` : subtype*}(`REC`_rectype(`%`_list{`X*#302`}(subtype*{subtype <- `subtype*`}))) = $free_list($free_subtype(subtype)*{subtype <- `subtype*`}) + def $free_rectype{`subtype*` : subtype*}(`REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))) = $free_list($free_subtype(subtype)*{subtype <- `subtype*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:523.1-523.34 def $free_deftype(deftype : deftype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:524.1-524.59 - def $free_deftype{rectype#241 : rectype, n#247 : n, rectype : rectype, n : n}(`_DEF`_deftype{rectype#241, n#247}(rectype, n)) = $free_rectype(rectype) + def $free_deftype{rectype : rectype, n : n}(`_DEF`_deftype(rectype, n)) = $free_rectype(rectype) } ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec @@ -113048,22 +88299,22 @@ def $free_tagtype(tagtype : tagtype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_globaltype(globaltype : globaltype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_globaltype{`mut?#253` : mut?, valtype#127 : valtype, `mut?` : mut?, valtype : valtype}(`%%`_globaltype{`mut?#253`, valtype#127}(mut?{mut <- `mut?`}, valtype)) = $free_valtype(valtype) + def $free_globaltype{`mut?` : mut?, valtype : valtype}(`%%`_globaltype(mut?{mut <- `mut?`}, valtype)) = $free_valtype(valtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_memtype(memtype : memtype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_memtype{addrtype#211 : addrtype, limits#211 : limits, addrtype : addrtype, limits : limits}(`%%PAGE`_memtype{addrtype#211, limits#211}(addrtype, limits)) = $free_addrtype((addrtype : addrtype <: numtype)) + def $free_memtype{addrtype : addrtype, limits : limits}(`%%PAGE`_memtype(addrtype, limits)) = $free_addrtype((addrtype : addrtype <: numtype)) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_tabletype(tabletype : tabletype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_tabletype{addrtype#223 : addrtype, limits#223 : limits, reftype#111 : reftype, addrtype : addrtype, limits : limits, reftype : reftype}(`%%%`_tabletype{addrtype#223, limits#223, reftype#111}(addrtype, limits, reftype)) = $free_addrtype((addrtype : addrtype <: numtype)) +++ $free_reftype(reftype) + def $free_tabletype{addrtype : addrtype, limits : limits, reftype : reftype}(`%%%`_tabletype(addrtype, limits, reftype)) = $free_addrtype((addrtype : addrtype <: numtype)) +++ $free_reftype(reftype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_datatype(datatype : datatype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_datatype{`typeidx*#19` : typeidx*, `funcidx*#19` : funcidx*, `globalidx*#19` : globalidx*, `tableidx*#19` : tableidx*, `memidx*#19` : memidx*, `elemidx*#19` : elemidx*, `dataidx*#19` : dataidx*, `localidx*#19` : localidx*, `labelidx*#19` : labelidx*}(`OK`_datatype) = {`TYPES`{`typeidx*#19`} [], `FUNCS`{`funcidx*#19`} [], `GLOBALS`{`globalidx*#19`} [], `TABLES`{`tableidx*#19`} [], `MEMS`{`memidx*#19`} [], `ELEMS`{`elemidx*#19`} [], `DATAS`{`dataidx*#19`} [], `LOCALS`{`localidx*#19`} [], `LABELS`{`labelidx*#19`} []} + def $free_datatype(`OK`_datatype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_elemtype(elemtype : elemtype) : free @@ -113073,20 +88324,20 @@ def $free_elemtype(elemtype : elemtype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_externtype(externtype : externtype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{tagtype#7 : tagtype, tagtype : tagtype}(`TAG`_externtype{tagtype#7}(tagtype)) = $free_tagtype(tagtype) + def $free_externtype{tagtype : tagtype}(`TAG`_externtype(tagtype)) = $free_tagtype(tagtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{globaltype#7 : globaltype, globaltype : globaltype}(`GLOBAL`_externtype{globaltype#7}(globaltype)) = $free_globaltype(globaltype) + def $free_externtype{globaltype : globaltype}(`GLOBAL`_externtype(globaltype)) = $free_globaltype(globaltype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{memtype#7 : memtype, memtype : memtype}(`MEM`_externtype{memtype#7}(memtype)) = $free_memtype(memtype) + def $free_externtype{memtype : memtype}(`MEM`_externtype(memtype)) = $free_memtype(memtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{tabletype#7 : tabletype, tabletype : tabletype}(`TABLE`_externtype{tabletype#7}(tabletype)) = $free_tabletype(tabletype) + def $free_externtype{tabletype : tabletype}(`TABLE`_externtype(tabletype)) = $free_tabletype(tabletype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{typeuse#7 : typeuse, typeuse : typeuse}(`FUNC`_externtype{typeuse#7}(typeuse)) = $free_typeuse(typeuse) + def $free_externtype{typeuse : typeuse}(`FUNC`_externtype(typeuse)) = $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_moduletype(moduletype : moduletype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_moduletype{`externtype*#88` : externtype*, `externtype_1*` : externtype*, `externtype_2*` : externtype*}(`%->%`_moduletype{`externtype*#88`}(externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})) = $free_list($free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`}) +++ $free_list($free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`}) + def $free_moduletype{`externtype_1*` : externtype*, `externtype_2*` : externtype*}(`%->%`_moduletype(externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})) = $free_list($free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`}) +++ $free_list($free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax num_(numtype : numtype) @@ -113134,7 +88385,7 @@ syntax lit_(storagetype : storagetype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax sz = - | `%`{i : nat}(i : nat) + | `%`(i : nat) -- if ((((i = 8) \/ (i = 16)) \/ (i = 32)) \/ (i = 64)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec @@ -113149,8 +88400,8 @@ syntax unop_(numtype : numtype) | `CLZ` | `CTZ` | `POPCNT` - | `EXTEND`{sz : sz, i#1051 : nat}(sz : sz) - -- if (sz!`%`_sz{i#1051}.0 < $sizenn((Inn : Inn <: numtype))) + | `EXTEND`(sz : sz) + -- if (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec @@ -113171,13 +88422,13 @@ syntax binop_(numtype : numtype) | `ADD` | `SUB` | `MUL` - | `DIV`{sx : sx}(sx : sx) - | `REM`{sx : sx}(sx : sx) + | `DIV`(sx : sx) + | `REM`(sx : sx) | `AND` | `OR` | `XOR` | `SHL` - | `SHR`{sx : sx}(sx : sx) + | `SHR`(sx : sx) | `ROTL` | `ROTR` @@ -113203,10 +88454,10 @@ syntax relop_(numtype : numtype) syntax relop_{Inn : Inn}((Inn : Inn <: numtype)) = | `EQ` | `NE` - | `LT`{sx : sx}(sx : sx) - | `GT`{sx : sx}(sx : sx) - | `LE`{sx : sx}(sx : sx) - | `GE`{sx : sx}(sx : sx) + | `LT`(sx : sx) + | `GT`(sx : sx) + | `LE`(sx : sx) + | `GE`(sx : sx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec @@ -113223,7 +88474,7 @@ syntax relop_(numtype : numtype) syntax cvtop__(numtype_1 : numtype, numtype_2 : numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax cvtop__{Inn_1 : Inn, Inn_2 : Inn}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype)) = - | `EXTEND`{sx : sx}(sx : sx) + | `EXTEND`(sx : sx) -- if ($sizenn1((Inn_1 : Inn <: numtype)) < $sizenn2((Inn_2 : Inn <: numtype))) | `WRAP` -- if ($sizenn1((Inn_1 : Inn <: numtype)) > $sizenn2((Inn_2 : Inn <: numtype))) @@ -113231,15 +88482,15 @@ syntax cvtop__(numtype_1 : numtype, numtype_2 : numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax cvtop__{Inn_1 : Inn, Fnn_2 : Fnn}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype)) = - | `CONVERT`{sx : sx}(sx : sx) + | `CONVERT`(sx : sx) | `REINTERPRET` -- if ($sizenn1((Inn_1 : Inn <: numtype)) = $sizenn2((Fnn_2 : Fnn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax cvtop__{Fnn_1 : Fnn, Inn_2 : Inn}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype)) = - | `TRUNC`{sx : sx}(sx : sx) - | `TRUNC_SAT`{sx : sx}(sx : sx) + | `TRUNC`(sx : sx) + | `TRUNC_SAT`(sx : sx) | `REINTERPRET` -- if ($sizenn1((Fnn_1 : Fnn <: numtype)) = $sizenn2((Inn_2 : Inn <: numtype))) @@ -113254,37 +88505,37 @@ syntax cvtop__(numtype_1 : numtype, numtype_2 : numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax dim = - | `%`{i : nat}(i : nat) + | `%`(i : nat) -- if (((((i = 1) \/ (i = 2)) \/ (i = 4)) \/ (i = 8)) \/ (i = 16)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax shape = - | `%X%`{lanetype : lanetype, dim : dim, i#1053 : nat}(lanetype : lanetype, dim : dim) - -- if (($lsize(lanetype) * dim!`%`_dim{i#1053}.0) = 128) + | `%X%`(lanetype : lanetype, dim : dim) + -- if (($lsize(lanetype) * dim!`%`_dim.0) = 128) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $dim(shape : shape) : dim ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $dim{lanetype#11 : lanetype, dim#11 : dim, i#1058 : nat, Lnn : Lnn, i#1065 : nat, N : N, i#1073 : nat}(`%X%`_shape{lanetype#11, dim#11, i#1058}(Lnn, `%`_dim{i#1065}(N))) = `%`_dim{i#1073}(N) + def $dim{Lnn : Lnn, N : N}(`%X%`_shape(Lnn, `%`_dim(N))) = `%`_dim(N) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $lanetype(shape : shape) : lanetype ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $lanetype{lanetype#23 : lanetype, dim#23 : dim, i#1078 : nat, Lnn : Lnn, i#1085 : nat, N : N}(`%X%`_shape{lanetype#23, dim#23, i#1078}(Lnn, `%`_dim{i#1085}(N))) = Lnn + def $lanetype{Lnn : Lnn, N : N}(`%X%`_shape(Lnn, `%`_dim(N))) = Lnn ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $unpackshape(shape : shape) : numtype ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $unpackshape{lanetype#35 : lanetype, dim#35 : dim, i#1090 : nat, Lnn : Lnn, i#1097 : nat, N : N}(`%X%`_shape{lanetype#35, dim#35, i#1090}(Lnn, `%`_dim{i#1097}(N))) = $lunpack(Lnn) + def $unpackshape{Lnn : Lnn, N : N}(`%X%`_shape(Lnn, `%`_dim(N))) = $lunpack(Lnn) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax ishape = - | `%`{shape : shape, Jnn : Jnn}(shape : shape) + | `%`(shape : shape){Jnn : Jnn} -- if ($lanetype(shape) = (Jnn : Jnn <: lanetype)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax bshape = - | `%`{shape : shape}(shape : shape) + | `%`(shape : shape) -- if ($lanetype(shape) = `I8`_lanetype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec @@ -113318,7 +88569,7 @@ syntax vvtestop = ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vunop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vunop_{lanetype#65 : lanetype, dim#65 : dim, i#1108 : nat, Jnn : Jnn, i#1115 : nat, M : M}(`%X%`_shape{lanetype#65, dim#65, i#1108}((Jnn : Jnn <: lanetype), `%`_dim{i#1115}(M))) = + syntax vunop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = | `ABS` | `NEG` | `POPCNT` @@ -113326,7 +88577,7 @@ syntax vunop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vunop_{lanetype#77 : lanetype, dim#77 : dim, i#1120 : nat, Fnn : Fnn, i#1127 : nat, M : M}(`%X%`_shape{lanetype#77, dim#77, i#1120}((Fnn : Fnn <: lanetype), `%`_dim{i#1127}(M))) = + syntax vunop_{Fnn : Fnn, M : M}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))) = | `ABS` | `NEG` | `SQRT` @@ -113339,12 +88590,12 @@ syntax vunop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vbinop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vbinop_{lanetype#89 : lanetype, dim#89 : dim, i#1132 : nat, Jnn : Jnn, i#1139 : nat, M : M}(`%X%`_shape{lanetype#89, dim#89, i#1132}((Jnn : Jnn <: lanetype), `%`_dim{i#1139}(M))) = + syntax vbinop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = | `ADD` | `SUB` - | `ADD_SAT`{sx : sx}(sx : sx) + | `ADD_SAT`(sx : sx) -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 16) - | `SUB_SAT`{sx : sx}(sx : sx) + | `SUB_SAT`(sx : sx) -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 16) | `MUL` -- if ($lsizenn((Jnn : Jnn <: lanetype)) >= 16) @@ -113354,14 +88605,14 @@ syntax vbinop_(shape : shape) -- if ($lsizenn((Jnn : Jnn <: lanetype)) = 16) | `RELAXED_Q15MULRS` -- if ($lsizenn((Jnn : Jnn <: lanetype)) = 16) - | `MIN`{sx : sx}(sx : sx) + | `MIN`(sx : sx) -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 32) - | `MAX`{sx : sx}(sx : sx) + | `MAX`(sx : sx) -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 32) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vbinop_{lanetype#101 : lanetype, dim#101 : dim, i#1144 : nat, Fnn : Fnn, i#1151 : nat, M : M}(`%X%`_shape{lanetype#101, dim#101, i#1144}((Fnn : Fnn <: lanetype), `%`_dim{i#1151}(M))) = + syntax vbinop_{Fnn : Fnn, M : M}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))) = | `ADD` | `SUB` | `MUL` @@ -113377,38 +88628,38 @@ syntax vbinop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vternop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vternop_{lanetype#113 : lanetype, dim#113 : dim, i#1156 : nat, Jnn : Jnn, i#1163 : nat, M : M}(`%X%`_shape{lanetype#113, dim#113, i#1156}((Jnn : Jnn <: lanetype), `%`_dim{i#1163}(M))) = + syntax vternop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = | `RELAXED_LANESELECT` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vternop_{lanetype#125 : lanetype, dim#125 : dim, i#1168 : nat, Fnn : Fnn, i#1175 : nat, M : M}(`%X%`_shape{lanetype#125, dim#125, i#1168}((Fnn : Fnn <: lanetype), `%`_dim{i#1175}(M))) = + syntax vternop_{Fnn : Fnn, M : M}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))) = | `RELAXED_MADD` | `RELAXED_NMADD` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vtestop_(lanetype#137 : lanetype, dim#137 : dim, i#1180 : nat, Jnn : Jnn, i#1187 : nat, M : M)(`%X%`_shape{lanetype#137, dim#137, i#1180}((Jnn : Jnn <: lanetype), `%`_dim{i#1187}(M))) = +syntax vtestop_(Jnn : Jnn, M : M)(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = | `ALL_TRUE` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vrelop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vrelop_{lanetype#149 : lanetype, dim#149 : dim, i#1192 : nat, Jnn : Jnn, i#1199 : nat, M : M}(`%X%`_shape{lanetype#149, dim#149, i#1192}((Jnn : Jnn <: lanetype), `%`_dim{i#1199}(M))) = + syntax vrelop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = | `EQ` | `NE` - | `LT`{sx : sx}(sx : sx) + | `LT`(sx : sx) -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx)) - | `GT`{sx : sx}(sx : sx) + | `GT`(sx : sx) -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx)) - | `LE`{sx : sx}(sx : sx) + | `LE`(sx : sx) -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx)) - | `GE`{sx : sx}(sx : sx) + | `GE`(sx : sx) -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vrelop_{lanetype#161 : lanetype, dim#161 : dim, i#1204 : nat, Fnn : Fnn, i#1211 : nat, M : M}(`%X%`_shape{lanetype#161, dim#161, i#1204}((Fnn : Fnn <: lanetype), `%`_dim{i#1211}(M))) = + syntax vrelop_{Fnn : Fnn, M : M}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))) = | `EQ` | `NE` | `LT` @@ -113418,23 +88669,23 @@ syntax vrelop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vshiftop_(shape#11 : shape, Jnn#4 : Jnn, lanetype#173 : lanetype, dim#173 : dim, i#1216 : nat, Jnn : Jnn, i#1223 : nat, M : M)(`%`_ishape{shape#11, Jnn#4}(`%X%`_shape{lanetype#173, dim#173, i#1216}((Jnn : Jnn <: lanetype), `%`_dim{i#1223}(M)))) = +syntax vshiftop_(Jnn : Jnn, M : M)(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))) = | `SHL` - | `SHR`{sx : sx}(sx : sx) + | `SHR`(sx : sx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vswizzlop_(shape#23 : shape, lanetype#185 : lanetype, dim#185 : dim, i#1228 : nat, i#1235 : nat, M : M)(`%`_bshape{shape#23}(`%X%`_shape{lanetype#185, dim#185, i#1228}(`I8`_lanetype, `%`_dim{i#1235}(M)))) = +syntax vswizzlop_(M : M)(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M)))) = | `SWIZZLE` | `RELAXED_SWIZZLE` ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vextunop__(shape#35 : shape, Jnn#8 : Jnn, lanetype#197 : lanetype, dim#197 : dim, i#1240 : nat, Jnn_1 : Jnn, i#1247 : nat, M_1 : M, shape#47 : shape, Jnn#12 : Jnn, lanetype#209 : lanetype, dim#209 : dim, i#1252 : nat, Jnn_2 : Jnn, i#1259 : nat, M_2 : M)(`%`_ishape{shape#35, Jnn#8}(`%X%`_shape{lanetype#197, dim#197, i#1240}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1247}(M_1))), `%`_ishape{shape#47, Jnn#12}(`%X%`_shape{lanetype#209, dim#209, i#1252}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1259}(M_2)))) = - | `EXTADD_PAIRWISE`{sx : sx}(sx : sx) +syntax vextunop__(Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M)(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))) = + | `EXTADD_PAIRWISE`(sx : sx) -- if ((16 <= (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) <= 32))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vextbinop__(shape#59 : shape, Jnn#16 : Jnn, lanetype#221 : lanetype, dim#221 : dim, i#1264 : nat, Jnn_1 : Jnn, i#1271 : nat, M_1 : M, shape#71 : shape, Jnn#20 : Jnn, lanetype#233 : lanetype, dim#233 : dim, i#1276 : nat, Jnn_2 : Jnn, i#1283 : nat, M_2 : M)(`%`_ishape{shape#59, Jnn#16}(`%X%`_shape{lanetype#221, dim#221, i#1264}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1271}(M_1))), `%`_ishape{shape#71, Jnn#20}(`%X%`_shape{lanetype#233, dim#233, i#1276}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1283}(M_2)))) = - | `EXTMUL`{half : half, sx : sx}(half : half, sx : sx) +syntax vextbinop__(Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M)(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))) = + | `EXTMUL`(half : half, sx : sx) -- if (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) >= 16)) | `DOTS` -- if (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) @@ -113442,35 +88693,35 @@ syntax vextbinop__(shape#59 : shape, Jnn#16 : Jnn, lanetype#221 : lanetype, dim# -- if (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 16)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vextternop__(shape#83 : shape, Jnn#24 : Jnn, lanetype#245 : lanetype, dim#245 : dim, i#1288 : nat, Jnn_1 : Jnn, i#1295 : nat, M_1 : M, shape#95 : shape, Jnn#28 : Jnn, lanetype#257 : lanetype, dim#257 : dim, i#1300 : nat, Jnn_2 : Jnn, i#1307 : nat, M_2 : M)(`%`_ishape{shape#83, Jnn#24}(`%X%`_shape{lanetype#245, dim#245, i#1288}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1295}(M_1))), `%`_ishape{shape#95, Jnn#28}(`%X%`_shape{lanetype#257, dim#257, i#1300}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1307}(M_2)))) = +syntax vextternop__(Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M)(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))) = | `RELAXED_DOT_ADDS` -- if (((4 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vcvtop__(shape_1 : shape, shape_2 : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vcvtop__{lanetype#269 : lanetype, dim#269 : dim, i#1312 : nat, Jnn_1 : Jnn, i#1319 : nat, M_1 : M, lanetype#281 : lanetype, dim#281 : dim, i#1324 : nat, Jnn_2 : Jnn, i#1331 : nat, M_2 : M}(`%X%`_shape{lanetype#269, dim#269, i#1312}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1319}(M_1)), `%X%`_shape{lanetype#281, dim#281, i#1324}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1331}(M_2))) = - | `EXTEND`{half : half, sx : sx}(half : half, sx : sx) + syntax vcvtop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))) = + | `EXTEND`(half : half, sx : sx) -- if ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vcvtop__{lanetype#293 : lanetype, dim#293 : dim, i#1336 : nat, Jnn_1 : Jnn, i#1343 : nat, M_1 : M, lanetype#305 : lanetype, dim#305 : dim, i#1348 : nat, Fnn_2 : Fnn, i#1355 : nat, M_2 : M}(`%X%`_shape{lanetype#293, dim#293, i#1336}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#1343}(M_1)), `%X%`_shape{lanetype#305, dim#305, i#1348}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#1355}(M_2))) = - | `CONVERT`{`half?` : half?, sx : sx}(`half?` : half?, sx : sx) + syntax vcvtop__{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))) = + | `CONVERT`(`half?` : half?, sx : sx) -- if (((($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32)) /\ (half?{half <- `half?`} = ?())) \/ (($sizenn2((Fnn_2 : Fnn <: numtype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (half?{half <- `half?`} = ?(`LOW`_half)))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vcvtop__{lanetype#317 : lanetype, dim#317 : dim, i#1360 : nat, Fnn_1 : Fnn, i#1367 : nat, M_1 : M, lanetype#329 : lanetype, dim#329 : dim, i#1372 : nat, Jnn_2 : Jnn, i#1379 : nat, M_2 : M}(`%X%`_shape{lanetype#317, dim#317, i#1360}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#1367}(M_1)), `%X%`_shape{lanetype#329, dim#329, i#1372}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#1379}(M_2))) = - | `TRUNC_SAT`{sx : sx, `zero?` : zero?}(sx : sx, `zero?` : zero?) + syntax vcvtop__{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))) = + | `TRUNC_SAT`(sx : sx, `zero?` : zero?) -- if (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero)))) - | `RELAXED_TRUNC`{sx : sx, `zero?` : zero?}(sx : sx, `zero?` : zero?) + | `RELAXED_TRUNC`(sx : sx, `zero?` : zero?) -- if (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero)))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - syntax vcvtop__{lanetype#341 : lanetype, dim#341 : dim, i#1384 : nat, Fnn_1 : Fnn, i#1391 : nat, M_1 : M, lanetype#353 : lanetype, dim#353 : dim, i#1396 : nat, Fnn_2 : Fnn, i#1403 : nat, M_2 : M}(`%X%`_shape{lanetype#341, dim#341, i#1384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#1391}(M_1)), `%X%`_shape{lanetype#353, dim#353, i#1396}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#1403}(M_2))) = - | `DEMOTE`{zero : zero}(zero : zero) + syntax vcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))) = + | `DEMOTE`(zero : zero) -- if ($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $sizenn2((Fnn_2 : Fnn <: numtype)))) | `PROMOTELOW` -- if ((2 * $sizenn1((Fnn_1 : Fnn <: numtype))) = $sizenn2((Fnn_2 : Fnn <: numtype))) @@ -113479,32 +88730,32 @@ syntax vcvtop__(shape_1 : shape, shape_2 : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax memarg = { - `ALIGN`{u32 : u32} u32, - `OFFSET`{u64 : u64} u64 + `ALIGN` u32 , + `OFFSET` u64 } ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax loadop_(Inn : Inn)((Inn : Inn <: numtype)) = - | `%_%`{sz : sz, sx : sx, i#1405 : nat}(sz : sz, sx : sx) - -- if (sz!`%`_sz{i#1405}.0 < $sizenn((Inn : Inn <: numtype))) + | `%_%`(sz : sz, sx : sx) + -- if (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax storeop_(Inn : Inn)((Inn : Inn <: numtype)) = - | `%`{sz : sz, i#1407 : nat}(sz : sz) - -- if (sz!`%`_sz{i#1407}.0 < $sizenn((Inn : Inn <: numtype))) + | `%`(sz : sz) + -- if (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vloadop_(vectype : vectype)(vectype) = - | `SHAPE%X%_%`{sz : sz, M : M, sx : sx, i#1409 : nat}(sz : sz, M : M, sx : sx) - -- if (((sz!`%`_sz{i#1409}.0 * M) : nat <:> rat) = (($vsize(vectype) : nat <:> rat) / (2 : nat <:> rat))) - | `SPLAT`{sz : sz}(sz : sz) - | `ZERO`{sz : sz, i#1411 : nat}(sz : sz) - -- if (sz!`%`_sz{i#1411}.0 >= 32) + | `SHAPE%X%_%`(sz : sz, M : M, sx : sx) + -- if (((sz!`%`_sz.0 * M) : nat <:> rat) = (($vsize(vectype) : nat <:> rat) / (2 : nat <:> rat))) + | `SPLAT`(sz : sz) + | `ZERO`(sz : sz) + -- if (sz!`%`_sz.0 >= 32) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax blocktype = - | `_RESULT`{`valtype?` : valtype?}(`valtype?` : valtype?) - | `_IDX`{typeidx : typeidx}(typeidx : typeidx) + | `_RESULT`(`valtype?` : valtype?) + | `_IDX`(typeidx : typeidx) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax addr = nat @@ -113529,21 +88780,21 @@ rec { ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:35.1-42.23 syntax addrref = - | `REF.I31_NUM`{u31 : u31}(u31 : u31) - | `REF.STRUCT_ADDR`{structaddr : structaddr}(structaddr : structaddr) - | `REF.ARRAY_ADDR`{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) - | `REF.FUNC_ADDR`{funcaddr : funcaddr}(funcaddr : funcaddr) - | `REF.EXN_ADDR`{exnaddr : exnaddr}(exnaddr : exnaddr) - | `REF.HOST_ADDR`{hostaddr : hostaddr}(hostaddr : hostaddr) - | `REF.EXTERN`{addrref : addrref}(addrref : addrref) + | `REF.I31_NUM`(u31 : u31) + | `REF.STRUCT_ADDR`(structaddr : structaddr) + | `REF.ARRAY_ADDR`(arrayaddr : arrayaddr) + | `REF.FUNC_ADDR`(funcaddr : funcaddr) + | `REF.EXN_ADDR`(exnaddr : exnaddr) + | `REF.HOST_ADDR`(hostaddr : hostaddr) + | `REF.EXTERN`(addrref : addrref) } ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax catch = - | `CATCH`{tagidx : tagidx, labelidx : labelidx}(tagidx : tagidx, labelidx : labelidx) - | `CATCH_REF`{tagidx : tagidx, labelidx : labelidx}(tagidx : tagidx, labelidx : labelidx) - | `CATCH_ALL`{labelidx : labelidx}(labelidx : labelidx) - | `CATCH_ALL_REF`{labelidx : labelidx}(labelidx : labelidx) + | `CATCH`(tagidx : tagidx, labelidx : labelidx) + | `CATCH_REF`(tagidx : tagidx, labelidx : labelidx) + | `CATCH_ALL`(labelidx : labelidx) + | `CATCH_ALL_REF`(labelidx : labelidx) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax dataaddr = addr @@ -113565,51 +88816,51 @@ syntax tagaddr = addr ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax externaddr = - | `TAG`{tagaddr : tagaddr}(tagaddr : tagaddr) - | `GLOBAL`{globaladdr : globaladdr}(globaladdr : globaladdr) - | `MEM`{memaddr : memaddr}(memaddr : memaddr) - | `TABLE`{tableaddr : tableaddr}(tableaddr : tableaddr) - | `FUNC`{funcaddr : funcaddr}(funcaddr : funcaddr) + | `TAG`(tagaddr : tagaddr) + | `GLOBAL`(globaladdr : globaladdr) + | `MEM`(memaddr : memaddr) + | `TABLE`(tableaddr : tableaddr) + | `FUNC`(funcaddr : funcaddr) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax exportinst = { - `NAME`{name : name} name, - `ADDR`{externaddr : externaddr} externaddr + `NAME` name , + `ADDR` externaddr } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax moduleinst = { - `TYPES`{`deftype*` : deftype*} deftype*, - `TAGS`{`tagaddr*` : tagaddr*} tagaddr*, - `GLOBALS`{`globaladdr*` : globaladdr*} globaladdr*, - `MEMS`{`memaddr*` : memaddr*} memaddr*, - `TABLES`{`tableaddr*` : tableaddr*} tableaddr*, - `FUNCS`{`funcaddr*` : funcaddr*} funcaddr*, - `DATAS`{`dataaddr*` : dataaddr*} dataaddr*, - `ELEMS`{`elemaddr*` : elemaddr*} elemaddr*, - `EXPORTS`{`exportinst*` : exportinst*} exportinst* + `TYPES` deftype* , + `TAGS` tagaddr* , + `GLOBALS` globaladdr* , + `MEMS` memaddr* , + `TABLES` tableaddr* , + `FUNCS` funcaddr* , + `DATAS` dataaddr* , + `ELEMS` elemaddr* , + `EXPORTS` exportinst* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax val = - | `CONST`{numtype : numtype}(numtype : numtype, num_(numtype)) - | `VCONST`{vectype : vectype}(vectype : vectype, vec_(vectype)) - | `REF.I31_NUM`{u31 : u31}(u31 : u31) - | `REF.STRUCT_ADDR`{structaddr : structaddr}(structaddr : structaddr) - | `REF.ARRAY_ADDR`{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) - | `REF.FUNC_ADDR`{funcaddr : funcaddr}(funcaddr : funcaddr) - | `REF.EXN_ADDR`{exnaddr : exnaddr}(exnaddr : exnaddr) - | `REF.HOST_ADDR`{hostaddr : hostaddr}(hostaddr : hostaddr) - | `REF.EXTERN`{addrref : addrref}(addrref : addrref) - | `REF.NULL`{heaptype : heaptype}(heaptype : heaptype) + | `CONST`(numtype : numtype, num_(numtype)) + | `VCONST`(vectype : vectype, vec_(vectype)) + | `REF.I31_NUM`(u31 : u31) + | `REF.STRUCT_ADDR`(structaddr : structaddr) + | `REF.ARRAY_ADDR`(arrayaddr : arrayaddr) + | `REF.FUNC_ADDR`(funcaddr : funcaddr) + | `REF.EXN_ADDR`(exnaddr : exnaddr) + | `REF.HOST_ADDR`(hostaddr : hostaddr) + | `REF.EXTERN`(addrref : addrref) + | `REF.NULL`(heaptype : heaptype) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax frame = { - `LOCALS`{`val?*` : val?*} val?*, - `MODULE`{moduleinst : moduleinst} moduleinst + `LOCALS` val?* , + `MODULE` moduleinst } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec @@ -113620,120 +88871,120 @@ syntax instr = | `NOP` | `UNREACHABLE` | `DROP` - | `SELECT`{`valtype*?` : valtype*?}(`valtype*?` : valtype*?) - | `BLOCK`{blocktype : blocktype, `instr*` : instr*}(blocktype : blocktype, `instr*` : instr*) - | `LOOP`{blocktype : blocktype, `instr*` : instr*}(blocktype : blocktype, `instr*` : instr*) - | `IF%%ELSE%`{blocktype : blocktype, `instr*` : instr*}(blocktype : blocktype, `instr*` : instr*, `instr*` : instr*) - | `BR`{labelidx : labelidx}(labelidx : labelidx) - | `BR_IF`{labelidx : labelidx}(labelidx : labelidx) - | `BR_TABLE`{`labelidx*` : labelidx*, labelidx : labelidx}(`labelidx*` : labelidx*, labelidx : labelidx) - | `BR_ON_NULL`{labelidx : labelidx}(labelidx : labelidx) - | `BR_ON_NON_NULL`{labelidx : labelidx}(labelidx : labelidx) - | `BR_ON_CAST`{labelidx : labelidx, reftype : reftype}(labelidx : labelidx, reftype : reftype, reftype : reftype) - | `BR_ON_CAST_FAIL`{labelidx : labelidx, reftype : reftype}(labelidx : labelidx, reftype : reftype, reftype : reftype) - | `CALL`{funcidx : funcidx}(funcidx : funcidx) - | `CALL_REF`{typeuse : typeuse}(typeuse : typeuse) - | `CALL_INDIRECT`{tableidx : tableidx, typeuse : typeuse}(tableidx : tableidx, typeuse : typeuse) + | `SELECT`(`valtype*?` : valtype*?) + | `BLOCK`(blocktype : blocktype, `instr*` : instr*) + | `LOOP`(blocktype : blocktype, `instr*` : instr*) + | `IF%%ELSE%`(blocktype : blocktype, `instr*` : instr*, `instr*` : instr*) + | `BR`(labelidx : labelidx) + | `BR_IF`(labelidx : labelidx) + | `BR_TABLE`(`labelidx*` : labelidx*, labelidx : labelidx) + | `BR_ON_NULL`(labelidx : labelidx) + | `BR_ON_NON_NULL`(labelidx : labelidx) + | `BR_ON_CAST`(labelidx : labelidx, reftype : reftype, reftype : reftype) + | `BR_ON_CAST_FAIL`(labelidx : labelidx, reftype : reftype, reftype : reftype) + | `CALL`(funcidx : funcidx) + | `CALL_REF`(typeuse : typeuse) + | `CALL_INDIRECT`(tableidx : tableidx, typeuse : typeuse) | `RETURN` - | `RETURN_CALL`{funcidx : funcidx}(funcidx : funcidx) - | `RETURN_CALL_REF`{typeuse : typeuse}(typeuse : typeuse) - | `RETURN_CALL_INDIRECT`{tableidx : tableidx, typeuse : typeuse}(tableidx : tableidx, typeuse : typeuse) - | `THROW`{tagidx : tagidx}(tagidx : tagidx) + | `RETURN_CALL`(funcidx : funcidx) + | `RETURN_CALL_REF`(typeuse : typeuse) + | `RETURN_CALL_INDIRECT`(tableidx : tableidx, typeuse : typeuse) + | `THROW`(tagidx : tagidx) | `THROW_REF` - | `TRY_TABLE`{blocktype : blocktype, `instr*` : instr*}(blocktype : blocktype, list(syntax catch), `instr*` : instr*) - | `LOCAL.GET`{localidx : localidx}(localidx : localidx) - | `LOCAL.SET`{localidx : localidx}(localidx : localidx) - | `LOCAL.TEE`{localidx : localidx}(localidx : localidx) - | `GLOBAL.GET`{globalidx : globalidx}(globalidx : globalidx) - | `GLOBAL.SET`{globalidx : globalidx}(globalidx : globalidx) - | `TABLE.GET`{tableidx : tableidx}(tableidx : tableidx) - | `TABLE.SET`{tableidx : tableidx}(tableidx : tableidx) - | `TABLE.SIZE`{tableidx : tableidx}(tableidx : tableidx) - | `TABLE.GROW`{tableidx : tableidx}(tableidx : tableidx) - | `TABLE.FILL`{tableidx : tableidx}(tableidx : tableidx) - | `TABLE.COPY`{tableidx : tableidx}(tableidx : tableidx, tableidx : tableidx) - | `TABLE.INIT`{tableidx : tableidx, elemidx : elemidx}(tableidx : tableidx, elemidx : elemidx) - | `ELEM.DROP`{elemidx : elemidx}(elemidx : elemidx) - | `LOAD`{`numtype?` : numtype?, memidx : memidx, memarg : memarg}(numtype : numtype, loadop_(numtype)?, memidx : memidx, memarg : memarg) - | `STORE`{`numtype?` : numtype?, memidx : memidx, memarg : memarg}(numtype : numtype, storeop_(numtype)?, memidx : memidx, memarg : memarg) - | `VLOAD`{`vectype?` : vectype?, memidx : memidx, memarg : memarg}(vectype : vectype, vloadop_(vectype)?, memidx : memidx, memarg : memarg) - | `VLOAD_LANE`{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx) - | `VSTORE`{vectype : vectype, memidx : memidx, memarg : memarg}(vectype : vectype, memidx : memidx, memarg : memarg) - | `VSTORE_LANE`{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx) - | `MEMORY.SIZE`{memidx : memidx}(memidx : memidx) - | `MEMORY.GROW`{memidx : memidx}(memidx : memidx) - | `MEMORY.FILL`{memidx : memidx}(memidx : memidx) - | `MEMORY.COPY`{memidx : memidx}(memidx : memidx, memidx : memidx) - | `MEMORY.INIT`{memidx : memidx, dataidx : dataidx}(memidx : memidx, dataidx : dataidx) - | `DATA.DROP`{dataidx : dataidx}(dataidx : dataidx) - | `REF.NULL`{heaptype : heaptype}(heaptype : heaptype) + | `TRY_TABLE`(blocktype : blocktype, list(syntax catch), `instr*` : instr*) + | `LOCAL.GET`(localidx : localidx) + | `LOCAL.SET`(localidx : localidx) + | `LOCAL.TEE`(localidx : localidx) + | `GLOBAL.GET`(globalidx : globalidx) + | `GLOBAL.SET`(globalidx : globalidx) + | `TABLE.GET`(tableidx : tableidx) + | `TABLE.SET`(tableidx : tableidx) + | `TABLE.SIZE`(tableidx : tableidx) + | `TABLE.GROW`(tableidx : tableidx) + | `TABLE.FILL`(tableidx : tableidx) + | `TABLE.COPY`(tableidx : tableidx, tableidx : tableidx) + | `TABLE.INIT`(tableidx : tableidx, elemidx : elemidx) + | `ELEM.DROP`(elemidx : elemidx) + | `LOAD`(numtype : numtype, loadop_(numtype)?, memidx : memidx, memarg : memarg) + | `STORE`(numtype : numtype, storeop_(numtype)?, memidx : memidx, memarg : memarg) + | `VLOAD`(vectype : vectype, vloadop_(vectype)?, memidx : memidx, memarg : memarg) + | `VLOAD_LANE`(vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx) + | `VSTORE`(vectype : vectype, memidx : memidx, memarg : memarg) + | `VSTORE_LANE`(vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx) + | `MEMORY.SIZE`(memidx : memidx) + | `MEMORY.GROW`(memidx : memidx) + | `MEMORY.FILL`(memidx : memidx) + | `MEMORY.COPY`(memidx : memidx, memidx : memidx) + | `MEMORY.INIT`(memidx : memidx, dataidx : dataidx) + | `DATA.DROP`(dataidx : dataidx) + | `REF.NULL`(heaptype : heaptype) | `REF.IS_NULL` | `REF.AS_NON_NULL` | `REF.EQ` - | `REF.TEST`{reftype : reftype}(reftype : reftype) - | `REF.CAST`{reftype : reftype}(reftype : reftype) - | `REF.FUNC`{funcidx : funcidx}(funcidx : funcidx) + | `REF.TEST`(reftype : reftype) + | `REF.CAST`(reftype : reftype) + | `REF.FUNC`(funcidx : funcidx) | `REF.I31` - | `I31.GET`{sx : sx}(sx : sx) - | `STRUCT.NEW`{typeidx : typeidx}(typeidx : typeidx) - | `STRUCT.NEW_DEFAULT`{typeidx : typeidx}(typeidx : typeidx) - | `STRUCT.GET`{`sx?` : sx?, typeidx : typeidx, u32 : u32}(`sx?` : sx?, typeidx : typeidx, u32 : u32) - | `STRUCT.SET`{typeidx : typeidx, u32 : u32}(typeidx : typeidx, u32 : u32) - | `ARRAY.NEW`{typeidx : typeidx}(typeidx : typeidx) - | `ARRAY.NEW_DEFAULT`{typeidx : typeidx}(typeidx : typeidx) - | `ARRAY.NEW_FIXED`{typeidx : typeidx, u32 : u32}(typeidx : typeidx, u32 : u32) - | `ARRAY.NEW_DATA`{typeidx : typeidx, dataidx : dataidx}(typeidx : typeidx, dataidx : dataidx) - | `ARRAY.NEW_ELEM`{typeidx : typeidx, elemidx : elemidx}(typeidx : typeidx, elemidx : elemidx) - | `ARRAY.GET`{`sx?` : sx?, typeidx : typeidx}(`sx?` : sx?, typeidx : typeidx) - | `ARRAY.SET`{typeidx : typeidx}(typeidx : typeidx) + | `I31.GET`(sx : sx) + | `STRUCT.NEW`(typeidx : typeidx) + | `STRUCT.NEW_DEFAULT`(typeidx : typeidx) + | `STRUCT.GET`(`sx?` : sx?, typeidx : typeidx, u32 : u32) + | `STRUCT.SET`(typeidx : typeidx, u32 : u32) + | `ARRAY.NEW`(typeidx : typeidx) + | `ARRAY.NEW_DEFAULT`(typeidx : typeidx) + | `ARRAY.NEW_FIXED`(typeidx : typeidx, u32 : u32) + | `ARRAY.NEW_DATA`(typeidx : typeidx, dataidx : dataidx) + | `ARRAY.NEW_ELEM`(typeidx : typeidx, elemidx : elemidx) + | `ARRAY.GET`(`sx?` : sx?, typeidx : typeidx) + | `ARRAY.SET`(typeidx : typeidx) | `ARRAY.LEN` - | `ARRAY.FILL`{typeidx : typeidx}(typeidx : typeidx) - | `ARRAY.COPY`{typeidx : typeidx}(typeidx : typeidx, typeidx : typeidx) - | `ARRAY.INIT_DATA`{typeidx : typeidx, dataidx : dataidx}(typeidx : typeidx, dataidx : dataidx) - | `ARRAY.INIT_ELEM`{typeidx : typeidx, elemidx : elemidx}(typeidx : typeidx, elemidx : elemidx) + | `ARRAY.FILL`(typeidx : typeidx) + | `ARRAY.COPY`(typeidx : typeidx, typeidx : typeidx) + | `ARRAY.INIT_DATA`(typeidx : typeidx, dataidx : dataidx) + | `ARRAY.INIT_ELEM`(typeidx : typeidx, elemidx : elemidx) | `EXTERN.CONVERT_ANY` | `ANY.CONVERT_EXTERN` - | `CONST`{numtype : numtype}(numtype : numtype, num_(numtype)) - | `UNOP`{numtype : numtype}(numtype : numtype, unop_(numtype)) - | `BINOP`{numtype : numtype}(numtype : numtype, binop_(numtype)) - | `TESTOP`{numtype : numtype}(numtype : numtype, testop_(numtype)) - | `RELOP`{numtype : numtype}(numtype : numtype, relop_(numtype)) - | `CVTOP`{numtype_1 : numtype, numtype_2 : numtype}(numtype_1 : numtype, numtype_2 : numtype, cvtop__(numtype_2, numtype_1)) - | `VCONST`{vectype : vectype}(vectype : vectype, vec_(vectype)) - | `VVUNOP`{vectype : vectype, vvunop : vvunop}(vectype : vectype, vvunop : vvunop) - | `VVBINOP`{vectype : vectype, vvbinop : vvbinop}(vectype : vectype, vvbinop : vvbinop) - | `VVTERNOP`{vectype : vectype, vvternop : vvternop}(vectype : vectype, vvternop : vvternop) - | `VVTESTOP`{vectype : vectype, vvtestop : vvtestop}(vectype : vectype, vvtestop : vvtestop) - | `VUNOP`{shape : shape}(shape : shape, vunop_(shape)) - | `VBINOP`{shape : shape}(shape : shape, vbinop_(shape)) - | `VTERNOP`{shape : shape}(shape : shape, vternop_(shape)) - | `VTESTOP`{shape : shape}(shape : shape, vtestop_(shape)) - | `VRELOP`{shape : shape}(shape : shape, vrelop_(shape)) - | `VSHIFTOP`{ishape : ishape}(ishape : ishape, vshiftop_(ishape)) - | `VBITMASK`{ishape : ishape}(ishape : ishape) - | `VSWIZZLOP`{bshape : bshape}(bshape : bshape, vswizzlop_(bshape)) - | `VSHUFFLE`{bshape : bshape, `laneidx*` : laneidx*, i#1432 : nat, shape#109 : shape}(bshape : bshape, `laneidx*` : laneidx*) - -- if (`%`_dim{i#1432}(|laneidx*{laneidx <- `laneidx*`}|) = $dim(bshape!`%`_bshape{shape#109}.0)) - | `VEXTUNOP`{ishape_1 : ishape, ishape_2 : ishape}(ishape_1 : ishape, ishape_2 : ishape, vextunop__(ishape_2, ishape_1)) - | `VEXTBINOP`{ishape_1 : ishape, ishape_2 : ishape}(ishape_1 : ishape, ishape_2 : ishape, vextbinop__(ishape_2, ishape_1)) - | `VEXTTERNOP`{ishape_1 : ishape, ishape_2 : ishape}(ishape_1 : ishape, ishape_2 : ishape, vextternop__(ishape_2, ishape_1)) - | `VNARROW`{ishape_1 : ishape, ishape_2 : ishape, sx : sx, shape#149 : shape, Jnn#44 : Jnn, shape#147 : shape, Jnn#43 : Jnn, shape#151 : shape, Jnn#45 : Jnn}(ishape_1 : ishape, ishape_2 : ishape, sx : sx) - -- if (($lsize($lanetype(ishape_2!`%`_ishape{shape#149, Jnn#44}.0)) = (2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#147, Jnn#43}.0)))) /\ ((2 * $lsize($lanetype(ishape_1!`%`_ishape{shape#151, Jnn#45}.0))) <= 32)) - | `VCVTOP`{shape_1 : shape, shape_2 : shape}(shape_1 : shape, shape_2 : shape, vcvtop__(shape_2, shape_1)) - | `VSPLAT`{shape : shape}(shape : shape) - | `VEXTRACT_LANE`{shape : shape, `sx?` : sx?, laneidx : laneidx}(shape : shape, `sx?` : sx?, laneidx : laneidx) + | `CONST`(numtype : numtype, num_(numtype)) + | `UNOP`(numtype : numtype, unop_(numtype)) + | `BINOP`(numtype : numtype, binop_(numtype)) + | `TESTOP`(numtype : numtype, testop_(numtype)) + | `RELOP`(numtype : numtype, relop_(numtype)) + | `CVTOP`(numtype_1 : numtype, numtype_2 : numtype, cvtop__(numtype_2, numtype_1)) + | `VCONST`(vectype : vectype, vec_(vectype)) + | `VVUNOP`(vectype : vectype, vvunop : vvunop) + | `VVBINOP`(vectype : vectype, vvbinop : vvbinop) + | `VVTERNOP`(vectype : vectype, vvternop : vvternop) + | `VVTESTOP`(vectype : vectype, vvtestop : vvtestop) + | `VUNOP`(shape : shape, vunop_(shape)) + | `VBINOP`(shape : shape, vbinop_(shape)) + | `VTERNOP`(shape : shape, vternop_(shape)) + | `VTESTOP`(shape : shape, vtestop_(shape)) + | `VRELOP`(shape : shape, vrelop_(shape)) + | `VSHIFTOP`(ishape : ishape, vshiftop_(ishape)) + | `VBITMASK`(ishape : ishape) + | `VSWIZZLOP`(bshape : bshape, vswizzlop_(bshape)) + | `VSHUFFLE`(bshape : bshape, `laneidx*` : laneidx*) + -- if (`%`_dim(|laneidx*{laneidx <- `laneidx*`}|) = $dim(bshape!`%`_bshape.0)) + | `VEXTUNOP`(ishape_1 : ishape, ishape_2 : ishape, vextunop__(ishape_2, ishape_1)) + | `VEXTBINOP`(ishape_1 : ishape, ishape_2 : ishape, vextbinop__(ishape_2, ishape_1)) + | `VEXTTERNOP`(ishape_1 : ishape, ishape_2 : ishape, vextternop__(ishape_2, ishape_1)) + | `VNARROW`(ishape_1 : ishape, ishape_2 : ishape, sx : sx) + -- if (($lsize($lanetype(ishape_2!`%`_ishape.0)) = (2 * $lsize($lanetype(ishape_1!`%`_ishape.0)))) /\ ((2 * $lsize($lanetype(ishape_1!`%`_ishape.0))) <= 32)) + | `VCVTOP`(shape_1 : shape, shape_2 : shape, vcvtop__(shape_2, shape_1)) + | `VSPLAT`(shape : shape) + | `VEXTRACT_LANE`(shape : shape, `sx?` : sx?, laneidx : laneidx) -- if ((sx?{sx <- `sx?`} = ?()) <=> ($lanetype(shape) <- [`I32`_lanetype `I64`_lanetype `F32`_lanetype `F64`_lanetype])) - | `VREPLACE_LANE`{shape : shape, laneidx : laneidx}(shape : shape, laneidx : laneidx) - | `REF.I31_NUM`{u31 : u31}(u31 : u31) - | `REF.STRUCT_ADDR`{structaddr : structaddr}(structaddr : structaddr) - | `REF.ARRAY_ADDR`{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) - | `REF.FUNC_ADDR`{funcaddr : funcaddr}(funcaddr : funcaddr) - | `REF.EXN_ADDR`{exnaddr : exnaddr}(exnaddr : exnaddr) - | `REF.HOST_ADDR`{hostaddr : hostaddr}(hostaddr : hostaddr) - | `REF.EXTERN`{addrref : addrref}(addrref : addrref) - | `LABEL_%{%}%`{n : n, `instr*` : instr*}(n : n, `instr*` : instr*, `instr*` : instr*) - | `FRAME_%{%}%`{n : n, frame : frame, `instr*` : instr*}(n : n, frame : frame, `instr*` : instr*) - | `HANDLER_%{%}%`{n : n, `catch*` : catch*, `instr*` : instr*}(n : n, `catch*` : catch*, `instr*` : instr*) + | `VREPLACE_LANE`(shape : shape, laneidx : laneidx) + | `REF.I31_NUM`(u31 : u31) + | `REF.STRUCT_ADDR`(structaddr : structaddr) + | `REF.ARRAY_ADDR`(arrayaddr : arrayaddr) + | `REF.FUNC_ADDR`(funcaddr : funcaddr) + | `REF.EXN_ADDR`(exnaddr : exnaddr) + | `REF.HOST_ADDR`(hostaddr : hostaddr) + | `REF.EXTERN`(addrref : addrref) + | `LABEL_%{%}%`(n : n, `instr*` : instr*, `instr*` : instr*) + | `FRAME_%{%}%`(n : n, frame : frame, `instr*` : instr*) + | `HANDLER_%{%}%`(n : n, `catch*` : catch*, `instr*` : instr*) | `TRAP` } @@ -113743,26 +88994,26 @@ syntax expr = instr* ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $memarg0 : memarg ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $memarg0{u32#1 : u32, i#1467 : nat, u64#37 : u64, i#1487 : nat} = {`ALIGN`{u32#1} `%`_u32{i#1467}(0), `OFFSET`{u64#37} `%`_u64{i#1487}(0)} + def $memarg0 = {`ALIGN` `%`_u32(0), `OFFSET` `%`_u64(0)} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $const(consttype : consttype, lit_ : lit_((consttype : consttype <: storagetype))) : instr ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $const{numtype : numtype, c : lit_(((numtype : numtype <: consttype) : consttype <: storagetype)), numtype#1 : numtype}((numtype : numtype <: consttype), c) = `CONST`_instr{numtype#1}(numtype, c) + def $const{numtype : numtype, c : lit_(((numtype : numtype <: consttype) : consttype <: storagetype))}((numtype : numtype <: consttype), c) = `CONST`_instr(numtype, c) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $const{vectype : vectype, c : lit_(((vectype : vectype <: consttype) : consttype <: storagetype)), vectype#1 : vectype}((vectype : vectype <: consttype), c) = `VCONST`_instr{vectype#1}(vectype, c) + def $const{vectype : vectype, c : lit_(((vectype : vectype <: consttype) : consttype <: storagetype))}((vectype : vectype <: consttype), c) = `VCONST`_instr(vectype, c) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $free_shape(shape : shape) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_shape{lanetype#445 : lanetype, dim#445 : dim, i#1518 : nat, lanetype : lanetype, dim : dim}(`%X%`_shape{lanetype#445, dim#445, i#1518}(lanetype, dim)) = $free_lanetype(lanetype) + def $free_shape{lanetype : lanetype, dim : dim}(`%X%`_shape(lanetype, dim)) = $free_lanetype(lanetype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $free_blocktype(blocktype : blocktype) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_blocktype{`valtype?#1` : valtype?, `valtype?` : valtype?}(`_RESULT`_blocktype{`valtype?#1`}(valtype?{valtype <- `valtype?`})) = $free_opt($free_valtype(valtype)?{valtype <- `valtype?`}) + def $free_blocktype{`valtype?` : valtype?}(`_RESULT`_blocktype(valtype?{valtype <- `valtype?`})) = $free_opt($free_valtype(valtype)?{valtype <- `valtype?`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_blocktype{typeidx#27 : typeidx, typeidx : typeidx}(`_IDX`_blocktype{typeidx#27}(typeidx)) = $free_typeidx(typeidx) + def $free_blocktype{typeidx : typeidx}(`_IDX`_blocktype(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec rec { @@ -113772,9 +89023,9 @@ def $shift_labelidxs(labelidx*) : labelidx* ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:573.1-573.32 def $shift_labelidxs([]) = [] ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:574.1-574.66 - def $shift_labelidxs{i#3333 : nat, `labelidx'*` : labelidx*}([`%`_labelidx{i#3333}(0)] ++ labelidx'*{labelidx' <- `labelidx'*`}) = $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) + def $shift_labelidxs{`labelidx'*` : labelidx*}([`%`_labelidx(0)] ++ labelidx'*{labelidx' <- `labelidx'*`}) = $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:575.1-575.91 - def $shift_labelidxs{labelidx : labelidx, `labelidx'*` : labelidx*, i#3557 : nat, i#3547 : nat}([labelidx] ++ labelidx'*{labelidx' <- `labelidx'*`}) = [`%`_labelidx{i#3557}((((labelidx!`%`_labelidx{i#3547}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] ++ $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) + def $shift_labelidxs{labelidx : labelidx, `labelidx'*` : labelidx*}([labelidx] ++ labelidx'*{labelidx' <- `labelidx'*`}) = [`%`_labelidx((((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] ++ $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) } ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec @@ -113783,212 +89034,212 @@ rec { ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:417.1-417.30 def $free_instr(instr : instr) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:428.1-428.26 - def $free_instr{`typeidx*#20` : typeidx*, `funcidx*#20` : funcidx*, `globalidx*#20` : globalidx*, `tableidx*#20` : tableidx*, `memidx*#20` : memidx*, `elemidx*#20` : elemidx*, `dataidx*#20` : dataidx*, `localidx*#20` : localidx*, `labelidx*#20` : labelidx*}(`NOP`_instr) = {`TYPES`{`typeidx*#20`} [], `FUNCS`{`funcidx*#20`} [], `GLOBALS`{`globalidx*#20`} [], `TABLES`{`tableidx*#20`} [], `MEMS`{`memidx*#20`} [], `ELEMS`{`elemidx*#20`} [], `DATAS`{`dataidx*#20`} [], `LOCALS`{`localidx*#20`} [], `LABELS`{`labelidx*#20`} []} + def $free_instr(`NOP`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:429.1-429.34 - def $free_instr{`typeidx*#21` : typeidx*, `funcidx*#21` : funcidx*, `globalidx*#21` : globalidx*, `tableidx*#21` : tableidx*, `memidx*#21` : memidx*, `elemidx*#21` : elemidx*, `dataidx*#21` : dataidx*, `localidx*#21` : localidx*, `labelidx*#21` : labelidx*}(`UNREACHABLE`_instr) = {`TYPES`{`typeidx*#21`} [], `FUNCS`{`funcidx*#21`} [], `GLOBALS`{`globalidx*#21`} [], `TABLES`{`tableidx*#21`} [], `MEMS`{`memidx*#21`} [], `ELEMS`{`elemidx*#21`} [], `DATAS`{`dataidx*#21`} [], `LOCALS`{`localidx*#21`} [], `LABELS`{`labelidx*#21`} []} + def $free_instr(`UNREACHABLE`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:430.1-430.27 - def $free_instr{`typeidx*#22` : typeidx*, `funcidx*#22` : funcidx*, `globalidx*#22` : globalidx*, `tableidx*#22` : tableidx*, `memidx*#22` : memidx*, `elemidx*#22` : elemidx*, `dataidx*#22` : dataidx*, `localidx*#22` : localidx*, `labelidx*#22` : labelidx*}(`DROP`_instr) = {`TYPES`{`typeidx*#22`} [], `FUNCS`{`funcidx*#22`} [], `GLOBALS`{`globalidx*#22`} [], `TABLES`{`tableidx*#22`} [], `MEMS`{`memidx*#22`} [], `ELEMS`{`elemidx*#22`} [], `DATAS`{`dataidx*#22`} [], `LOCALS`{`localidx*#22`} [], `LABELS`{`labelidx*#22`} []} + def $free_instr(`DROP`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:431.1-431.86 - def $free_instr{`valtype*?#1` : valtype*?, `valtype*?` : valtype*?}(`SELECT`_instr{`valtype*?#1`}(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})) = $free_opt($free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`}) + def $free_instr{`valtype*?` : valtype*?}(`SELECT`_instr(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})) = $free_opt($free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:433.1-433.92 - def $free_instr{blocktype#1 : blocktype, `instr*#1` : instr*, blocktype : blocktype, `instr*` : instr*}(`BLOCK`_instr{blocktype#1, `instr*#1`}(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) + def $free_instr{blocktype : blocktype, `instr*` : instr*}(`BLOCK`_instr(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:434.1-434.91 - def $free_instr{blocktype#3 : blocktype, `instr*#3` : instr*, blocktype : blocktype, `instr*` : instr*}(`LOOP`_instr{blocktype#3, `instr*#3`}(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) + def $free_instr{blocktype : blocktype, `instr*` : instr*}(`LOOP`_instr(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:435.1-436.79 - def $free_instr{blocktype#5 : blocktype, `instr*#5` : instr*, blocktype : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}(`IF%%ELSE%`_instr{blocktype#5, `instr*#5`}(blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})) = $free_blocktype(blocktype) +++ $free_block(instr_1*{instr_1 <- `instr_1*`}) +++ $free_block(instr_2*{instr_2 <- `instr_2*`}) + def $free_instr{blocktype : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}(`IF%%ELSE%`_instr(blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})) = $free_blocktype(blocktype) +++ $free_block(instr_1*{instr_1 <- `instr_1*`}) +++ $free_block(instr_2*{instr_2 <- `instr_2*`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:438.1-438.56 - def $free_instr{labelidx#1 : labelidx, labelidx : labelidx}(`BR`_instr{labelidx#1}(labelidx)) = $free_labelidx(labelidx) + def $free_instr{labelidx : labelidx}(`BR`_instr(labelidx)) = $free_labelidx(labelidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:439.1-439.59 - def $free_instr{labelidx#3 : labelidx, labelidx : labelidx}(`BR_IF`_instr{labelidx#3}(labelidx)) = $free_labelidx(labelidx) + def $free_instr{labelidx : labelidx}(`BR_IF`_instr(labelidx)) = $free_labelidx(labelidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:440.1-441.69 - def $free_instr{`labelidx*#23` : labelidx*, labelidx#5 : labelidx, `labelidx*` : labelidx*, labelidx' : labelidx}(`BR_TABLE`_instr{`labelidx*#23`, labelidx#5}(labelidx*{labelidx <- `labelidx*`}, labelidx')) = $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`}) +++ $free_labelidx(labelidx') + def $free_instr{`labelidx*` : labelidx*, labelidx' : labelidx}(`BR_TABLE`_instr(labelidx*{labelidx <- `labelidx*`}, labelidx')) = $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`}) +++ $free_labelidx(labelidx') ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:442.1-442.64 - def $free_instr{labelidx#7 : labelidx, labelidx : labelidx}(`BR_ON_NULL`_instr{labelidx#7}(labelidx)) = $free_labelidx(labelidx) + def $free_instr{labelidx : labelidx}(`BR_ON_NULL`_instr(labelidx)) = $free_labelidx(labelidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:443.1-443.68 - def $free_instr{labelidx#9 : labelidx, labelidx : labelidx}(`BR_ON_NON_NULL`_instr{labelidx#9}(labelidx)) = $free_labelidx(labelidx) + def $free_instr{labelidx : labelidx}(`BR_ON_NON_NULL`_instr(labelidx)) = $free_labelidx(labelidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:444.1-445.83 - def $free_instr{labelidx#11 : labelidx, reftype#125 : reftype, labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST`_instr{labelidx#11, reftype#125}(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) + def $free_instr{labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST`_instr(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:446.1-447.83 - def $free_instr{labelidx#13 : labelidx, reftype#128 : reftype, labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST_FAIL`_instr{labelidx#13, reftype#128}(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) + def $free_instr{labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST_FAIL`_instr(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:449.1-449.55 - def $free_instr{funcidx#5 : funcidx, funcidx : funcidx}(`CALL`_instr{funcidx#5}(funcidx)) = $free_funcidx(funcidx) + def $free_instr{funcidx : funcidx}(`CALL`_instr(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:450.1-450.59 - def $free_instr{typeuse#9 : typeuse, typeuse : typeuse}(`CALL_REF`_instr{typeuse#9}(typeuse)) = $free_typeuse(typeuse) + def $free_instr{typeuse : typeuse}(`CALL_REF`_instr(typeuse)) = $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:451.1-452.53 - def $free_instr{tableidx#5 : tableidx, typeuse#11 : typeuse, tableidx : tableidx, typeuse : typeuse}(`CALL_INDIRECT`_instr{tableidx#5, typeuse#11}(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) + def $free_instr{tableidx : tableidx, typeuse : typeuse}(`CALL_INDIRECT`_instr(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:453.1-453.29 - def $free_instr{`typeidx*#23` : typeidx*, `funcidx*#23` : funcidx*, `globalidx*#23` : globalidx*, `tableidx*#23` : tableidx*, `memidx*#23` : memidx*, `elemidx*#23` : elemidx*, `dataidx*#23` : dataidx*, `localidx*#23` : localidx*, `labelidx*#25` : labelidx*}(`RETURN`_instr) = {`TYPES`{`typeidx*#23`} [], `FUNCS`{`funcidx*#23`} [], `GLOBALS`{`globalidx*#23`} [], `TABLES`{`tableidx*#23`} [], `MEMS`{`memidx*#23`} [], `ELEMS`{`elemidx*#23`} [], `DATAS`{`dataidx*#23`} [], `LOCALS`{`localidx*#23`} [], `LABELS`{`labelidx*#25`} []} + def $free_instr(`RETURN`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:454.1-454.62 - def $free_instr{funcidx#7 : funcidx, funcidx : funcidx}(`RETURN_CALL`_instr{funcidx#7}(funcidx)) = $free_funcidx(funcidx) + def $free_instr{funcidx : funcidx}(`RETURN_CALL`_instr(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:455.1-455.66 - def $free_instr{typeuse#13 : typeuse, typeuse : typeuse}(`RETURN_CALL_REF`_instr{typeuse#13}(typeuse)) = $free_typeuse(typeuse) + def $free_instr{typeuse : typeuse}(`RETURN_CALL_REF`_instr(typeuse)) = $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:456.1-457.53 - def $free_instr{tableidx#7 : tableidx, typeuse#15 : typeuse, tableidx : tableidx, typeuse : typeuse}(`RETURN_CALL_INDIRECT`_instr{tableidx#7, typeuse#15}(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) + def $free_instr{tableidx : tableidx, typeuse : typeuse}(`RETURN_CALL_INDIRECT`_instr(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:459.1-459.63 - def $free_instr{numtype#3 : numtype, numtype : numtype, numlit : num_(numtype)}(`CONST`_instr{numtype#3}(numtype, numlit)) = $free_numtype(numtype) + def $free_instr{numtype : numtype, numlit : num_(numtype)}(`CONST`_instr(numtype, numlit)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:460.1-460.60 - def $free_instr{numtype#5 : numtype, numtype : numtype, unop : unop_(numtype)}(`UNOP`_instr{numtype#5}(numtype, unop)) = $free_numtype(numtype) + def $free_instr{numtype : numtype, unop : unop_(numtype)}(`UNOP`_instr(numtype, unop)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:461.1-461.62 - def $free_instr{numtype#7 : numtype, numtype : numtype, binop : binop_(numtype)}(`BINOP`_instr{numtype#7}(numtype, binop)) = $free_numtype(numtype) + def $free_instr{numtype : numtype, binop : binop_(numtype)}(`BINOP`_instr(numtype, binop)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:462.1-462.64 - def $free_instr{numtype#9 : numtype, numtype : numtype, testop : testop_(numtype)}(`TESTOP`_instr{numtype#9}(numtype, testop)) = $free_numtype(numtype) + def $free_instr{numtype : numtype, testop : testop_(numtype)}(`TESTOP`_instr(numtype, testop)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:463.1-463.62 - def $free_instr{numtype#11 : numtype, numtype : numtype, relop : relop_(numtype)}(`RELOP`_instr{numtype#11}(numtype, relop)) = $free_numtype(numtype) + def $free_instr{numtype : numtype, relop : relop_(numtype)}(`RELOP`_instr(numtype, relop)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:464.1-465.55 - def $free_instr{numtype_1#1 : numtype, numtype_2#1 : numtype, numtype_1 : numtype, numtype_2 : numtype, cvtop : cvtop__(numtype_2, numtype_1)}(`CVTOP`_instr{numtype_1#1, numtype_2#1}(numtype_1, numtype_2, cvtop)) = $free_numtype(numtype_1) +++ $free_numtype(numtype_2) + def $free_instr{numtype_1 : numtype, numtype_2 : numtype, cvtop : cvtop__(numtype_2, numtype_1)}(`CVTOP`_instr(numtype_1, numtype_2, cvtop)) = $free_numtype(numtype_1) +++ $free_numtype(numtype_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:467.1-467.64 - def $free_instr{vectype#3 : vectype, vectype : vectype, veclit : vec_(vectype)}(`VCONST`_instr{vectype#3}(vectype, veclit)) = $free_vectype(vectype) + def $free_instr{vectype : vectype, veclit : vec_(vectype)}(`VCONST`_instr(vectype, veclit)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:468.1-468.64 - def $free_instr{vectype#5 : vectype, vvunop#1 : vvunop, vectype : vectype, vvunop : vvunop}(`VVUNOP`_instr{vectype#5, vvunop#1}(vectype, vvunop)) = $free_vectype(vectype) + def $free_instr{vectype : vectype, vvunop : vvunop}(`VVUNOP`_instr(vectype, vvunop)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:469.1-469.66 - def $free_instr{vectype#7 : vectype, vvbinop#1 : vvbinop, vectype : vectype, vvbinop : vvbinop}(`VVBINOP`_instr{vectype#7, vvbinop#1}(vectype, vvbinop)) = $free_vectype(vectype) + def $free_instr{vectype : vectype, vvbinop : vvbinop}(`VVBINOP`_instr(vectype, vvbinop)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:470.1-470.68 - def $free_instr{vectype#9 : vectype, vvternop#1 : vvternop, vectype : vectype, vvternop : vvternop}(`VVTERNOP`_instr{vectype#9, vvternop#1}(vectype, vvternop)) = $free_vectype(vectype) + def $free_instr{vectype : vectype, vvternop : vvternop}(`VVTERNOP`_instr(vectype, vvternop)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:471.1-471.68 - def $free_instr{vectype#11 : vectype, vvtestop#1 : vvtestop, vectype : vectype, vvtestop : vvtestop}(`VVTESTOP`_instr{vectype#11, vvtestop#1}(vectype, vvtestop)) = $free_vectype(vectype) + def $free_instr{vectype : vectype, vvtestop : vvtestop}(`VVTESTOP`_instr(vectype, vvtestop)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:472.1-472.56 - def $free_instr{shape#153 : shape, shape : shape, vunop : vunop_(shape)}(`VUNOP`_instr{shape#153}(shape, vunop)) = $free_shape(shape) + def $free_instr{shape : shape, vunop : vunop_(shape)}(`VUNOP`_instr(shape, vunop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:473.1-473.58 - def $free_instr{shape#155 : shape, shape : shape, vbinop : vbinop_(shape)}(`VBINOP`_instr{shape#155}(shape, vbinop)) = $free_shape(shape) + def $free_instr{shape : shape, vbinop : vbinop_(shape)}(`VBINOP`_instr(shape, vbinop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:474.1-474.60 - def $free_instr{shape#157 : shape, shape : shape, vternop : vternop_(shape)}(`VTERNOP`_instr{shape#157}(shape, vternop)) = $free_shape(shape) + def $free_instr{shape : shape, vternop : vternop_(shape)}(`VTERNOP`_instr(shape, vternop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:475.1-475.60 - def $free_instr{shape#159 : shape, shape : shape, vtestop : vtestop_(shape)}(`VTESTOP`_instr{shape#159}(shape, vtestop)) = $free_shape(shape) + def $free_instr{shape : shape, vtestop : vtestop_(shape)}(`VTESTOP`_instr(shape, vtestop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:476.1-476.58 - def $free_instr{shape#161 : shape, shape : shape, vrelop : vrelop_(shape)}(`VRELOP`_instr{shape#161}(shape, vrelop)) = $free_shape(shape) + def $free_instr{shape : shape, vrelop : vrelop_(shape)}(`VRELOP`_instr(shape, vrelop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:477.1-477.64 - def $free_instr{ishape#1 : ishape, ishape : ishape, vshiftop : vshiftop_(ishape), shape#169 : shape, Jnn#48 : Jnn}(`VSHIFTOP`_instr{ishape#1}(ishape, vshiftop)) = $free_shape(ishape!`%`_ishape{shape#169, Jnn#48}.0) + def $free_instr{ishape : ishape, vshiftop : vshiftop_(ishape)}(`VSHIFTOP`_instr(ishape, vshiftop)) = $free_shape(ishape!`%`_ishape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:478.1-478.55 - def $free_instr{ishape#3 : ishape, ishape : ishape, shape#177 : shape, Jnn#51 : Jnn}(`VBITMASK`_instr{ishape#3}(ishape)) = $free_shape(ishape!`%`_ishape{shape#177, Jnn#51}.0) + def $free_instr{ishape : ishape}(`VBITMASK`_instr(ishape)) = $free_shape(ishape!`%`_ishape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:479.1-479.66 - def $free_instr{bshape#1 : bshape, bshape : bshape, vswizzlop : vswizzlop_(bshape), shape#185 : shape}(`VSWIZZLOP`_instr{bshape#1}(bshape, vswizzlop)) = $free_shape(bshape!`%`_bshape{shape#185}.0) + def $free_instr{bshape : bshape, vswizzlop : vswizzlop_(bshape)}(`VSWIZZLOP`_instr(bshape, vswizzlop)) = $free_shape(bshape!`%`_bshape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:480.1-480.64 - def $free_instr{bshape#3 : bshape, `laneidx*#1` : laneidx*, i#1902 : nat, shape#187 : shape, bshape : bshape, `laneidx*` : laneidx*, shape#194 : shape}(`VSHUFFLE`_instr{bshape#3, `laneidx*#1`, i#1902, shape#187}(bshape, laneidx*{laneidx <- `laneidx*`})) = $free_shape(bshape!`%`_bshape{shape#194}.0) + def $free_instr{bshape : bshape, `laneidx*` : laneidx*}(`VSHUFFLE`_instr(bshape, laneidx*{laneidx <- `laneidx*`})) = $free_shape(bshape!`%`_bshape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:481.1-482.49 - def $free_instr{ishape_1#1 : ishape, ishape_2#1 : ishape, ishape_1 : ishape, ishape_2 : ishape, vextunop : vextunop__(ishape_2, ishape_1), shape#208 : shape, Jnn#56 : Jnn, shape#210 : shape, Jnn#57 : Jnn}(`VEXTUNOP`_instr{ishape_1#1, ishape_2#1}(ishape_1, ishape_2, vextunop)) = $free_shape(ishape_1!`%`_ishape{shape#208, Jnn#56}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#210, Jnn#57}.0) + def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextunop : vextunop__(ishape_2, ishape_1)}(`VEXTUNOP`_instr(ishape_1, ishape_2, vextunop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:483.1-484.49 - def $free_instr{ishape_1#3 : ishape, ishape_2#3 : ishape, ishape_1 : ishape, ishape_2 : ishape, vextbinop : vextbinop__(ishape_2, ishape_1), shape#224 : shape, Jnn#62 : Jnn, shape#226 : shape, Jnn#63 : Jnn}(`VEXTBINOP`_instr{ishape_1#3, ishape_2#3}(ishape_1, ishape_2, vextbinop)) = $free_shape(ishape_1!`%`_ishape{shape#224, Jnn#62}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#226, Jnn#63}.0) + def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextbinop : vextbinop__(ishape_2, ishape_1)}(`VEXTBINOP`_instr(ishape_1, ishape_2, vextbinop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:485.1-486.49 - def $free_instr{ishape_1#5 : ishape, ishape_2#5 : ishape, ishape_1 : ishape, ishape_2 : ishape, vextternop : vextternop__(ishape_2, ishape_1), shape#240 : shape, Jnn#68 : Jnn, shape#242 : shape, Jnn#69 : Jnn}(`VEXTTERNOP`_instr{ishape_1#5, ishape_2#5}(ishape_1, ishape_2, vextternop)) = $free_shape(ishape_1!`%`_ishape{shape#240, Jnn#68}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#242, Jnn#69}.0) + def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextternop : vextternop__(ishape_2, ishape_1)}(`VEXTTERNOP`_instr(ishape_1, ishape_2, vextternop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:487.1-488.49 - def $free_instr{ishape_1#7 : ishape, ishape_2#7 : ishape, sx#1 : sx, shape#244 : shape, Jnn#70 : Jnn, shape#245 : shape, Jnn#71 : Jnn, shape#246 : shape, Jnn#72 : Jnn, ishape_1 : ishape, ishape_2 : ishape, sx : sx, shape#259 : shape, Jnn#77 : Jnn, shape#261 : shape, Jnn#78 : Jnn}(`VNARROW`_instr{ishape_1#7, ishape_2#7, sx#1, shape#244, Jnn#70, shape#245, Jnn#71, shape#246, Jnn#72}(ishape_1, ishape_2, sx)) = $free_shape(ishape_1!`%`_ishape{shape#259, Jnn#77}.0) +++ $free_shape(ishape_2!`%`_ishape{shape#261, Jnn#78}.0) + def $free_instr{ishape_1 : ishape, ishape_2 : ishape, sx : sx}(`VNARROW`_instr(ishape_1, ishape_2, sx)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:489.1-490.47 - def $free_instr{shape_1#1 : shape, shape_2#1 : shape, shape_1 : shape, shape_2 : shape, vcvtop : vcvtop__(shape_2, shape_1)}(`VCVTOP`_instr{shape_1#1, shape_2#1}(shape_1, shape_2, vcvtop)) = $free_shape(shape_1) +++ $free_shape(shape_2) + def $free_instr{shape_1 : shape, shape_2 : shape, vcvtop : vcvtop__(shape_2, shape_1)}(`VCVTOP`_instr(shape_1, shape_2, vcvtop)) = $free_shape(shape_1) +++ $free_shape(shape_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:491.1-491.51 - def $free_instr{shape#263 : shape, shape : shape}(`VSPLAT`_instr{shape#263}(shape)) = $free_shape(shape) + def $free_instr{shape : shape}(`VSPLAT`_instr(shape)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:492.1-492.70 - def $free_instr{shape#265 : shape, `sx?#1` : sx?, laneidx#1 : laneidx, shape : shape, `sx?` : sx?, laneidx : laneidx}(`VEXTRACT_LANE`_instr{shape#265, `sx?#1`, laneidx#1}(shape, sx?{sx <- `sx?`}, laneidx)) = $free_shape(shape) + def $free_instr{shape : shape, `sx?` : sx?, laneidx : laneidx}(`VEXTRACT_LANE`_instr(shape, sx?{sx <- `sx?`}, laneidx)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:493.1-493.66 - def $free_instr{shape#267 : shape, laneidx#3 : laneidx, shape : shape, laneidx : laneidx}(`VREPLACE_LANE`_instr{shape#267, laneidx#3}(shape, laneidx)) = $free_shape(shape) + def $free_instr{shape : shape, laneidx : laneidx}(`VREPLACE_LANE`_instr(shape, laneidx)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:495.1-495.62 - def $free_instr{heaptype#373 : heaptype, heaptype : heaptype}(`REF.NULL`_instr{heaptype#373}(heaptype)) = $free_heaptype(heaptype) + def $free_instr{heaptype : heaptype}(`REF.NULL`_instr(heaptype)) = $free_heaptype(heaptype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:496.1-496.34 - def $free_instr{`typeidx*#24` : typeidx*, `funcidx*#24` : funcidx*, `globalidx*#24` : globalidx*, `tableidx*#24` : tableidx*, `memidx*#24` : memidx*, `elemidx*#24` : elemidx*, `dataidx*#24` : dataidx*, `localidx*#24` : localidx*, `labelidx*#26` : labelidx*}(`REF.IS_NULL`_instr) = {`TYPES`{`typeidx*#24`} [], `FUNCS`{`funcidx*#24`} [], `GLOBALS`{`globalidx*#24`} [], `TABLES`{`tableidx*#24`} [], `MEMS`{`memidx*#24`} [], `ELEMS`{`elemidx*#24`} [], `DATAS`{`dataidx*#24`} [], `LOCALS`{`localidx*#24`} [], `LABELS`{`labelidx*#26`} []} + def $free_instr(`REF.IS_NULL`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:497.1-497.38 - def $free_instr{`typeidx*#25` : typeidx*, `funcidx*#25` : funcidx*, `globalidx*#25` : globalidx*, `tableidx*#25` : tableidx*, `memidx*#25` : memidx*, `elemidx*#25` : elemidx*, `dataidx*#25` : dataidx*, `localidx*#25` : localidx*, `labelidx*#27` : labelidx*}(`REF.AS_NON_NULL`_instr) = {`TYPES`{`typeidx*#25`} [], `FUNCS`{`funcidx*#25`} [], `GLOBALS`{`globalidx*#25`} [], `TABLES`{`tableidx*#25`} [], `MEMS`{`memidx*#25`} [], `ELEMS`{`elemidx*#25`} [], `DATAS`{`dataidx*#25`} [], `LOCALS`{`localidx*#25`} [], `LABELS`{`labelidx*#27`} []} + def $free_instr(`REF.AS_NON_NULL`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:498.1-498.29 - def $free_instr{`typeidx*#26` : typeidx*, `funcidx*#26` : funcidx*, `globalidx*#26` : globalidx*, `tableidx*#26` : tableidx*, `memidx*#26` : memidx*, `elemidx*#26` : elemidx*, `dataidx*#26` : dataidx*, `localidx*#26` : localidx*, `labelidx*#28` : labelidx*}(`REF.EQ`_instr) = {`TYPES`{`typeidx*#26`} [], `FUNCS`{`funcidx*#26`} [], `GLOBALS`{`globalidx*#26`} [], `TABLES`{`tableidx*#26`} [], `MEMS`{`memidx*#26`} [], `ELEMS`{`elemidx*#26`} [], `DATAS`{`dataidx*#26`} [], `LOCALS`{`localidx*#26`} [], `LABELS`{`labelidx*#28`} []} + def $free_instr(`REF.EQ`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:499.1-499.59 - def $free_instr{reftype#131 : reftype, reftype : reftype}(`REF.TEST`_instr{reftype#131}(reftype)) = $free_reftype(reftype) + def $free_instr{reftype : reftype}(`REF.TEST`_instr(reftype)) = $free_reftype(reftype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:500.1-500.59 - def $free_instr{reftype#133 : reftype, reftype : reftype}(`REF.CAST`_instr{reftype#133}(reftype)) = $free_reftype(reftype) + def $free_instr{reftype : reftype}(`REF.CAST`_instr(reftype)) = $free_reftype(reftype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:501.1-501.59 - def $free_instr{funcidx#9 : funcidx, funcidx : funcidx}(`REF.FUNC`_instr{funcidx#9}(funcidx)) = $free_funcidx(funcidx) + def $free_instr{funcidx : funcidx}(`REF.FUNC`_instr(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:502.1-502.30 - def $free_instr{`typeidx*#27` : typeidx*, `funcidx*#27` : funcidx*, `globalidx*#27` : globalidx*, `tableidx*#27` : tableidx*, `memidx*#27` : memidx*, `elemidx*#27` : elemidx*, `dataidx*#27` : dataidx*, `localidx*#27` : localidx*, `labelidx*#29` : labelidx*}(`REF.I31`_instr) = {`TYPES`{`typeidx*#27`} [], `FUNCS`{`funcidx*#27`} [], `GLOBALS`{`globalidx*#27`} [], `TABLES`{`tableidx*#27`} [], `MEMS`{`memidx*#27`} [], `ELEMS`{`elemidx*#27`} [], `DATAS`{`dataidx*#27`} [], `LOCALS`{`localidx*#27`} [], `LABELS`{`labelidx*#29`} []} + def $free_instr(`REF.I31`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:504.1-504.33 - def $free_instr{sx#3 : sx, sx : sx, `typeidx*#28` : typeidx*, `funcidx*#28` : funcidx*, `globalidx*#28` : globalidx*, `tableidx*#28` : tableidx*, `memidx*#28` : memidx*, `elemidx*#28` : elemidx*, `dataidx*#28` : dataidx*, `localidx*#28` : localidx*, `labelidx*#30` : labelidx*}(`I31.GET`_instr{sx#3}(sx)) = {`TYPES`{`typeidx*#28`} [], `FUNCS`{`funcidx*#28`} [], `GLOBALS`{`globalidx*#28`} [], `TABLES`{`tableidx*#28`} [], `MEMS`{`memidx*#28`} [], `ELEMS`{`elemidx*#28`} [], `DATAS`{`dataidx*#28`} [], `LOCALS`{`localidx*#28`} [], `LABELS`{`labelidx*#30`} []} + def $free_instr{sx : sx}(`I31.GET`_instr(sx)) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:506.1-506.41 - def $free_instr{typeidx#29 : typeidx, typeidx : typeidx, `typeidx*#29` : typeidx*, `funcidx*#29` : funcidx*, `globalidx*#29` : globalidx*, `tableidx*#29` : tableidx*, `memidx*#29` : memidx*, `elemidx*#29` : elemidx*, `dataidx*#29` : dataidx*, `localidx*#29` : localidx*, `labelidx*#31` : labelidx*}(`STRUCT.NEW`_instr{typeidx#29}(typeidx)) = {`TYPES`{`typeidx*#29`} [], `FUNCS`{`funcidx*#29`} [], `GLOBALS`{`globalidx*#29`} [], `TABLES`{`tableidx*#29`} [], `MEMS`{`memidx*#29`} [], `ELEMS`{`elemidx*#29`} [], `DATAS`{`dataidx*#29`} [], `LOCALS`{`localidx*#29`} [], `LABELS`{`labelidx*#31`} []} + def $free_instr{typeidx : typeidx}(`STRUCT.NEW`_instr(typeidx)) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:507.1-507.69 - def $free_instr{typeidx#31 : typeidx, typeidx : typeidx}(`STRUCT.NEW_DEFAULT`_instr{typeidx#31}(typeidx)) = $free_typeidx(typeidx) + def $free_instr{typeidx : typeidx}(`STRUCT.NEW_DEFAULT`_instr(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:508.1-508.69 - def $free_instr{`sx?#3` : sx?, typeidx#33 : typeidx, u32#2 : u32, `sx?` : sx?, typeidx : typeidx, u32 : u32}(`STRUCT.GET`_instr{`sx?#3`, typeidx#33, u32#2}(sx?{sx <- `sx?`}, typeidx, u32)) = $free_typeidx(typeidx) + def $free_instr{`sx?` : sx?, typeidx : typeidx, u32 : u32}(`STRUCT.GET`_instr(sx?{sx <- `sx?`}, typeidx, u32)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:509.1-509.65 - def $free_instr{typeidx#35 : typeidx, u32#4 : u32, typeidx : typeidx, u32 : u32}(`STRUCT.SET`_instr{typeidx#35, u32#4}(typeidx, u32)) = $free_typeidx(typeidx) + def $free_instr{typeidx : typeidx, u32 : u32}(`STRUCT.SET`_instr(typeidx, u32)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:511.1-511.60 - def $free_instr{typeidx#37 : typeidx, typeidx : typeidx}(`ARRAY.NEW`_instr{typeidx#37}(typeidx)) = $free_typeidx(typeidx) + def $free_instr{typeidx : typeidx}(`ARRAY.NEW`_instr(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:512.1-512.68 - def $free_instr{typeidx#39 : typeidx, typeidx : typeidx}(`ARRAY.NEW_DEFAULT`_instr{typeidx#39}(typeidx)) = $free_typeidx(typeidx) + def $free_instr{typeidx : typeidx}(`ARRAY.NEW_DEFAULT`_instr(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:513.1-513.70 - def $free_instr{typeidx#41 : typeidx, u32#6 : u32, typeidx : typeidx, u32 : u32}(`ARRAY.NEW_FIXED`_instr{typeidx#41, u32#6}(typeidx, u32)) = $free_typeidx(typeidx) + def $free_instr{typeidx : typeidx, u32 : u32}(`ARRAY.NEW_FIXED`_instr(typeidx, u32)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:514.1-515.51 - def $free_instr{typeidx#43 : typeidx, dataidx#1 : dataidx, typeidx : typeidx, dataidx : dataidx}(`ARRAY.NEW_DATA`_instr{typeidx#43, dataidx#1}(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) + def $free_instr{typeidx : typeidx, dataidx : dataidx}(`ARRAY.NEW_DATA`_instr(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:516.1-517.51 - def $free_instr{typeidx#45 : typeidx, elemidx#1 : elemidx, typeidx : typeidx, elemidx : elemidx}(`ARRAY.NEW_ELEM`_instr{typeidx#45, elemidx#1}(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) + def $free_instr{typeidx : typeidx, elemidx : elemidx}(`ARRAY.NEW_ELEM`_instr(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:518.1-518.64 - def $free_instr{`sx?#5` : sx?, typeidx#47 : typeidx, `sx?` : sx?, typeidx : typeidx}(`ARRAY.GET`_instr{`sx?#5`, typeidx#47}(sx?{sx <- `sx?`}, typeidx)) = $free_typeidx(typeidx) + def $free_instr{`sx?` : sx?, typeidx : typeidx}(`ARRAY.GET`_instr(sx?{sx <- `sx?`}, typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:519.1-519.60 - def $free_instr{typeidx#49 : typeidx, typeidx : typeidx}(`ARRAY.SET`_instr{typeidx#49}(typeidx)) = $free_typeidx(typeidx) + def $free_instr{typeidx : typeidx}(`ARRAY.SET`_instr(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:520.1-520.32 - def $free_instr{`typeidx*#30` : typeidx*, `funcidx*#30` : funcidx*, `globalidx*#30` : globalidx*, `tableidx*#30` : tableidx*, `memidx*#30` : memidx*, `elemidx*#30` : elemidx*, `dataidx*#30` : dataidx*, `localidx*#30` : localidx*, `labelidx*#32` : labelidx*}(`ARRAY.LEN`_instr) = {`TYPES`{`typeidx*#30`} [], `FUNCS`{`funcidx*#30`} [], `GLOBALS`{`globalidx*#30`} [], `TABLES`{`tableidx*#30`} [], `MEMS`{`memidx*#30`} [], `ELEMS`{`elemidx*#30`} [], `DATAS`{`dataidx*#30`} [], `LOCALS`{`localidx*#30`} [], `LABELS`{`labelidx*#32`} []} + def $free_instr(`ARRAY.LEN`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:521.1-521.61 - def $free_instr{typeidx#51 : typeidx, typeidx : typeidx}(`ARRAY.FILL`_instr{typeidx#51}(typeidx)) = $free_typeidx(typeidx) + def $free_instr{typeidx : typeidx}(`ARRAY.FILL`_instr(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:522.1-523.55 - def $free_instr{typeidx#53 : typeidx, typeidx_1 : typeidx, typeidx_2 : typeidx}(`ARRAY.COPY`_instr{typeidx#53}(typeidx_1, typeidx_2)) = $free_typeidx(typeidx_1) +++ $free_typeidx(typeidx_2) + def $free_instr{typeidx_1 : typeidx, typeidx_2 : typeidx}(`ARRAY.COPY`_instr(typeidx_1, typeidx_2)) = $free_typeidx(typeidx_1) +++ $free_typeidx(typeidx_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:524.1-525.51 - def $free_instr{typeidx#56 : typeidx, dataidx#3 : dataidx, typeidx : typeidx, dataidx : dataidx}(`ARRAY.INIT_DATA`_instr{typeidx#56, dataidx#3}(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) + def $free_instr{typeidx : typeidx, dataidx : dataidx}(`ARRAY.INIT_DATA`_instr(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:526.1-527.51 - def $free_instr{typeidx#58 : typeidx, elemidx#3 : elemidx, typeidx : typeidx, elemidx : elemidx}(`ARRAY.INIT_ELEM`_instr{typeidx#58, elemidx#3}(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) + def $free_instr{typeidx : typeidx, elemidx : elemidx}(`ARRAY.INIT_ELEM`_instr(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:529.1-529.41 - def $free_instr{`typeidx*#31` : typeidx*, `funcidx*#31` : funcidx*, `globalidx*#31` : globalidx*, `tableidx*#31` : tableidx*, `memidx*#31` : memidx*, `elemidx*#31` : elemidx*, `dataidx*#31` : dataidx*, `localidx*#31` : localidx*, `labelidx*#33` : labelidx*}(`EXTERN.CONVERT_ANY`_instr) = {`TYPES`{`typeidx*#31`} [], `FUNCS`{`funcidx*#31`} [], `GLOBALS`{`globalidx*#31`} [], `TABLES`{`tableidx*#31`} [], `MEMS`{`memidx*#31`} [], `ELEMS`{`elemidx*#31`} [], `DATAS`{`dataidx*#31`} [], `LOCALS`{`localidx*#31`} [], `LABELS`{`labelidx*#33`} []} + def $free_instr(`EXTERN.CONVERT_ANY`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:530.1-530.41 - def $free_instr{`typeidx*#32` : typeidx*, `funcidx*#32` : funcidx*, `globalidx*#32` : globalidx*, `tableidx*#32` : tableidx*, `memidx*#32` : memidx*, `elemidx*#32` : elemidx*, `dataidx*#32` : dataidx*, `localidx*#32` : localidx*, `labelidx*#34` : labelidx*}(`ANY.CONVERT_EXTERN`_instr) = {`TYPES`{`typeidx*#32`} [], `FUNCS`{`funcidx*#32`} [], `GLOBALS`{`globalidx*#32`} [], `TABLES`{`tableidx*#32`} [], `MEMS`{`memidx*#32`} [], `ELEMS`{`elemidx*#32`} [], `DATAS`{`dataidx*#32`} [], `LOCALS`{`localidx*#32`} [], `LABELS`{`labelidx*#34`} []} + def $free_instr(`ANY.CONVERT_EXTERN`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:532.1-532.63 - def $free_instr{localidx#1 : localidx, localidx : localidx}(`LOCAL.GET`_instr{localidx#1}(localidx)) = $free_localidx(localidx) + def $free_instr{localidx : localidx}(`LOCAL.GET`_instr(localidx)) = $free_localidx(localidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:533.1-533.63 - def $free_instr{localidx#3 : localidx, localidx : localidx}(`LOCAL.SET`_instr{localidx#3}(localidx)) = $free_localidx(localidx) + def $free_instr{localidx : localidx}(`LOCAL.SET`_instr(localidx)) = $free_localidx(localidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:534.1-534.63 - def $free_instr{localidx#5 : localidx, localidx : localidx}(`LOCAL.TEE`_instr{localidx#5}(localidx)) = $free_localidx(localidx) + def $free_instr{localidx : localidx}(`LOCAL.TEE`_instr(localidx)) = $free_localidx(localidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:536.1-536.67 - def $free_instr{globalidx#5 : globalidx, globalidx : globalidx}(`GLOBAL.GET`_instr{globalidx#5}(globalidx)) = $free_globalidx(globalidx) + def $free_instr{globalidx : globalidx}(`GLOBAL.GET`_instr(globalidx)) = $free_globalidx(globalidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:537.1-537.67 - def $free_instr{globalidx#7 : globalidx, globalidx : globalidx}(`GLOBAL.SET`_instr{globalidx#7}(globalidx)) = $free_globalidx(globalidx) + def $free_instr{globalidx : globalidx}(`GLOBAL.SET`_instr(globalidx)) = $free_globalidx(globalidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:539.1-539.63 - def $free_instr{tableidx#9 : tableidx, tableidx : tableidx}(`TABLE.GET`_instr{tableidx#9}(tableidx)) = $free_tableidx(tableidx) + def $free_instr{tableidx : tableidx}(`TABLE.GET`_instr(tableidx)) = $free_tableidx(tableidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:540.1-540.63 - def $free_instr{tableidx#11 : tableidx, tableidx : tableidx}(`TABLE.SET`_instr{tableidx#11}(tableidx)) = $free_tableidx(tableidx) + def $free_instr{tableidx : tableidx}(`TABLE.SET`_instr(tableidx)) = $free_tableidx(tableidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:541.1-541.64 - def $free_instr{tableidx#13 : tableidx, tableidx : tableidx}(`TABLE.SIZE`_instr{tableidx#13}(tableidx)) = $free_tableidx(tableidx) + def $free_instr{tableidx : tableidx}(`TABLE.SIZE`_instr(tableidx)) = $free_tableidx(tableidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:542.1-542.64 - def $free_instr{tableidx#15 : tableidx, tableidx : tableidx}(`TABLE.GROW`_instr{tableidx#15}(tableidx)) = $free_tableidx(tableidx) + def $free_instr{tableidx : tableidx}(`TABLE.GROW`_instr(tableidx)) = $free_tableidx(tableidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:543.1-543.64 - def $free_instr{tableidx#17 : tableidx, tableidx : tableidx}(`TABLE.FILL`_instr{tableidx#17}(tableidx)) = $free_tableidx(tableidx) + def $free_instr{tableidx : tableidx}(`TABLE.FILL`_instr(tableidx)) = $free_tableidx(tableidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:544.1-545.59 - def $free_instr{tableidx#19 : tableidx, tableidx_1 : tableidx, tableidx_2 : tableidx}(`TABLE.COPY`_instr{tableidx#19}(tableidx_1, tableidx_2)) = $free_tableidx(tableidx_1) +++ $free_tableidx(tableidx_2) + def $free_instr{tableidx_1 : tableidx, tableidx_2 : tableidx}(`TABLE.COPY`_instr(tableidx_1, tableidx_2)) = $free_tableidx(tableidx_1) +++ $free_tableidx(tableidx_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:546.1-547.53 - def $free_instr{tableidx#22 : tableidx, elemidx#5 : elemidx, tableidx : tableidx, elemidx : elemidx}(`TABLE.INIT`_instr{tableidx#22, elemidx#5}(tableidx, elemidx)) = $free_tableidx(tableidx) +++ $free_elemidx(elemidx) + def $free_instr{tableidx : tableidx, elemidx : elemidx}(`TABLE.INIT`_instr(tableidx, elemidx)) = $free_tableidx(tableidx) +++ $free_elemidx(elemidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:548.1-548.60 - def $free_instr{elemidx#7 : elemidx, elemidx : elemidx}(`ELEM.DROP`_instr{elemidx#7}(elemidx)) = $free_elemidx(elemidx) + def $free_instr{elemidx : elemidx}(`ELEM.DROP`_instr(elemidx)) = $free_elemidx(elemidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:550.1-551.49 - def $free_instr{`numtype?#1` : numtype?, memidx#5 : memidx, memarg#1 : memarg, numtype : numtype, `loadop?` : loadop_(numtype)?, memidx : memidx, memarg : memarg}(`LOAD`_instr{`numtype?#1`, memidx#5, memarg#1}(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) + def $free_instr{numtype : numtype, `loadop?` : loadop_(numtype)?, memidx : memidx, memarg : memarg}(`LOAD`_instr(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:552.1-553.49 - def $free_instr{`numtype?#2` : numtype?, memidx#7 : memidx, memarg#3 : memarg, numtype : numtype, `storeop?` : storeop_(numtype)?, memidx : memidx, memarg : memarg}(`STORE`_instr{`numtype?#2`, memidx#7, memarg#3}(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) + def $free_instr{numtype : numtype, `storeop?` : storeop_(numtype)?, memidx : memidx, memarg : memarg}(`STORE`_instr(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:554.1-555.49 - def $free_instr{`vectype?#1` : vectype?, memidx#9 : memidx, memarg#5 : memarg, vectype : vectype, `vloadop?` : vloadop_(vectype)?, memidx : memidx, memarg : memarg}(`VLOAD`_instr{`vectype?#1`, memidx#9, memarg#5}(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) + def $free_instr{vectype : vectype, `vloadop?` : vloadop_(vectype)?, memidx : memidx, memarg : memarg}(`VLOAD`_instr(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:556.1-557.49 - def $free_instr{vectype#14 : vectype, sz#1 : sz, memidx#11 : memidx, memarg#7 : memarg, laneidx#5 : laneidx, vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VLOAD_LANE`_instr{vectype#14, sz#1, memidx#11, memarg#7, laneidx#5}(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) + def $free_instr{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VLOAD_LANE`_instr(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:558.1-559.49 - def $free_instr{vectype#16 : vectype, memidx#13 : memidx, memarg#9 : memarg, vectype : vectype, memidx : memidx, memarg : memarg}(`VSTORE`_instr{vectype#16, memidx#13, memarg#9}(vectype, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) + def $free_instr{vectype : vectype, memidx : memidx, memarg : memarg}(`VSTORE`_instr(vectype, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:560.1-561.49 - def $free_instr{vectype#18 : vectype, sz#3 : sz, memidx#15 : memidx, memarg#11 : memarg, laneidx#7 : laneidx, vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VSTORE_LANE`_instr{vectype#18, sz#3, memidx#15, memarg#11, laneidx#7}(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) + def $free_instr{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VSTORE_LANE`_instr(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:562.1-562.59 - def $free_instr{memidx#17 : memidx, memidx : memidx}(`MEMORY.SIZE`_instr{memidx#17}(memidx)) = $free_memidx(memidx) + def $free_instr{memidx : memidx}(`MEMORY.SIZE`_instr(memidx)) = $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:563.1-563.59 - def $free_instr{memidx#19 : memidx, memidx : memidx}(`MEMORY.GROW`_instr{memidx#19}(memidx)) = $free_memidx(memidx) + def $free_instr{memidx : memidx}(`MEMORY.GROW`_instr(memidx)) = $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:564.1-564.59 - def $free_instr{memidx#21 : memidx, memidx : memidx}(`MEMORY.FILL`_instr{memidx#21}(memidx)) = $free_memidx(memidx) + def $free_instr{memidx : memidx}(`MEMORY.FILL`_instr(memidx)) = $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:565.1-566.51 - def $free_instr{memidx#23 : memidx, memidx_1 : memidx, memidx_2 : memidx}(`MEMORY.COPY`_instr{memidx#23}(memidx_1, memidx_2)) = $free_memidx(memidx_1) +++ $free_memidx(memidx_2) + def $free_instr{memidx_1 : memidx, memidx_2 : memidx}(`MEMORY.COPY`_instr(memidx_1, memidx_2)) = $free_memidx(memidx_1) +++ $free_memidx(memidx_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:567.1-568.49 - def $free_instr{memidx#26 : memidx, dataidx#5 : dataidx, memidx : memidx, dataidx : dataidx}(`MEMORY.INIT`_instr{memidx#26, dataidx#5}(memidx, dataidx)) = $free_memidx(memidx) +++ $free_dataidx(dataidx) + def $free_instr{memidx : memidx, dataidx : dataidx}(`MEMORY.INIT`_instr(memidx, dataidx)) = $free_memidx(memidx) +++ $free_dataidx(dataidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:569.1-569.60 - def $free_instr{dataidx#7 : dataidx, dataidx : dataidx}(`DATA.DROP`_instr{dataidx#7}(dataidx)) = $free_dataidx(dataidx) + def $free_instr{dataidx : dataidx}(`DATA.DROP`_instr(dataidx)) = $free_dataidx(dataidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:418.1-418.31 def $free_block(instr*) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:577.1-578.47 - def $free_block{`instr*` : instr*, free : free, `labelidx*#35` : labelidx*, `labelidx*#44` : labelidx*}(instr*{instr <- `instr*`}) = free[`LABELS`_free{`labelidx*#35`} = $shift_labelidxs(free.`LABELS`_free{`labelidx*#44`})] + def $free_block{`instr*` : instr*, free : free}(instr*{instr <- `instr*`}) = free[`LABELS`_free = $shift_labelidxs(free.`LABELS`_free)] -- if (free = $free_list($free_instr(instr)*{instr <- `instr*`})) } @@ -113999,157 +89250,157 @@ def $free_expr(expr : expr) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax elemmode = - | `ACTIVE`{tableidx : tableidx, expr : expr}(tableidx : tableidx, expr : expr) + | `ACTIVE`(tableidx : tableidx, expr : expr) | `PASSIVE` | `DECLARE` ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax datamode = - | `ACTIVE`{memidx : memidx, expr : expr}(memidx : memidx, expr : expr) + | `ACTIVE`(memidx : memidx, expr : expr) | `PASSIVE` ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax type = - | `TYPE`{rectype : rectype}(rectype : rectype) + | `TYPE`(rectype : rectype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax tag = - | `TAG`{tagtype : tagtype}(tagtype : tagtype) + | `TAG`(tagtype : tagtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax global = - | `GLOBAL`{globaltype : globaltype, expr : expr}(globaltype : globaltype, expr : expr) + | `GLOBAL`(globaltype : globaltype, expr : expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax mem = - | `MEMORY`{memtype : memtype}(memtype : memtype) + | `MEMORY`(memtype : memtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax table = - | `TABLE`{tabletype : tabletype, expr : expr}(tabletype : tabletype, expr : expr) + | `TABLE`(tabletype : tabletype, expr : expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax data = - | `DATA`{`byte*` : byte*, datamode : datamode}(`byte*` : byte*, datamode : datamode) + | `DATA`(`byte*` : byte*, datamode : datamode) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax local = - | `LOCAL`{valtype : valtype}(valtype : valtype) + | `LOCAL`(valtype : valtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax func = - | `FUNC`{typeidx : typeidx, `local*` : local*, expr : expr}(typeidx : typeidx, `local*` : local*, expr : expr) + | `FUNC`(typeidx : typeidx, `local*` : local*, expr : expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax elem = - | `ELEM`{reftype : reftype, `expr*` : expr*, elemmode : elemmode}(reftype : reftype, `expr*` : expr*, elemmode : elemmode) + | `ELEM`(reftype : reftype, `expr*` : expr*, elemmode : elemmode) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax start = - | `START`{funcidx : funcidx}(funcidx : funcidx) + | `START`(funcidx : funcidx) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax import = - | `IMPORT`{name : name, externtype : externtype}(name : name, name : name, externtype : externtype) + | `IMPORT`(name : name, name : name, externtype : externtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax export = - | `EXPORT`{name : name, externidx : externidx}(name : name, externidx : externidx) + | `EXPORT`(name : name, externidx : externidx) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax module = - | `MODULE`{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*}(`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*) + | `MODULE`(`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_type(type : type) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_type{rectype#265 : rectype, rectype : rectype}(`TYPE`_type{rectype#265}(rectype)) = $free_rectype(rectype) + def $free_type{rectype : rectype}(`TYPE`_type(rectype)) = $free_rectype(rectype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_tag(tag : tag) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_tag{tagtype#19 : tagtype, tagtype : tagtype}(`TAG`_tag{tagtype#19}(tagtype)) = $free_tagtype(tagtype) + def $free_tag{tagtype : tagtype}(`TAG`_tag(tagtype)) = $free_tagtype(tagtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_global(global : global) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_global{globaltype#19 : globaltype, expr#11 : expr, globaltype : globaltype, expr : expr}(`GLOBAL`_global{globaltype#19, expr#11}(globaltype, expr)) = $free_globaltype(globaltype) +++ $free_expr(expr) + def $free_global{globaltype : globaltype, expr : expr}(`GLOBAL`_global(globaltype, expr)) = $free_globaltype(globaltype) +++ $free_expr(expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_mem(mem : mem) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_mem{memtype#19 : memtype, memtype : memtype}(`MEMORY`_mem{memtype#19}(memtype)) = $free_memtype(memtype) + def $free_mem{memtype : memtype}(`MEMORY`_mem(memtype)) = $free_memtype(memtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_table(table : table) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_table{tabletype#19 : tabletype, expr#23 : expr, tabletype : tabletype, expr : expr}(`TABLE`_table{tabletype#19, expr#23}(tabletype, expr)) = $free_tabletype(tabletype) +++ $free_expr(expr) + def $free_table{tabletype : tabletype, expr : expr}(`TABLE`_table(tabletype, expr)) = $free_tabletype(tabletype) +++ $free_expr(expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_local(local : local) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_local{valtype#163 : valtype, t : valtype}(`LOCAL`_local{valtype#163}(t)) = $free_valtype(t) + def $free_local{t : valtype}(`LOCAL`_local(t)) = $free_valtype(t) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_func(func : func) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_func{typeidx#70 : typeidx, `local*#11` : local*, expr#35 : expr, typeidx : typeidx, `local*` : local*, expr : expr, `localidx*#33` : localidx*}(`FUNC`_func{typeidx#70, `local*#11`, expr#35}(typeidx, local*{local <- `local*`}, expr)) = $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[`LOCALS`_free{`localidx*#33`} = []] + def $free_func{typeidx : typeidx, `local*` : local*, expr : expr}(`FUNC`_func(typeidx, local*{local <- `local*`}, expr)) = $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[`LOCALS`_free = []] ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_datamode(datamode : datamode) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_datamode{memidx#28 : memidx, expr#39 : expr, memidx : memidx, expr : expr}(`ACTIVE`_datamode{memidx#28, expr#39}(memidx, expr)) = $free_memidx(memidx) +++ $free_expr(expr) + def $free_datamode{memidx : memidx, expr : expr}(`ACTIVE`_datamode(memidx, expr)) = $free_memidx(memidx) +++ $free_expr(expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_datamode{`typeidx*#35` : typeidx*, `funcidx*#35` : funcidx*, `globalidx*#35` : globalidx*, `tableidx*#35` : tableidx*, `memidx*#35` : memidx*, `elemidx*#35` : elemidx*, `dataidx*#35` : dataidx*, `localidx*#36` : localidx*, `labelidx*#47` : labelidx*}(`PASSIVE`_datamode) = {`TYPES`{`typeidx*#35`} [], `FUNCS`{`funcidx*#35`} [], `GLOBALS`{`globalidx*#35`} [], `TABLES`{`tableidx*#35`} [], `MEMS`{`memidx*#35`} [], `ELEMS`{`elemidx*#35`} [], `DATAS`{`dataidx*#35`} [], `LOCALS`{`localidx*#36`} [], `LABELS`{`labelidx*#47`} []} + def $free_datamode(`PASSIVE`_datamode) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_data(data : data) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_data{`byte*#11` : byte*, datamode#11 : datamode, `byte*` : byte*, datamode : datamode}(`DATA`_data{`byte*#11`, datamode#11}(byte*{byte <- `byte*`}, datamode)) = $free_datamode(datamode) + def $free_data{`byte*` : byte*, datamode : datamode}(`DATA`_data(byte*{byte <- `byte*`}, datamode)) = $free_datamode(datamode) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_elemmode(elemmode : elemmode) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode{tableidx#24 : tableidx, expr#37 : expr, tableidx : tableidx, expr : expr}(`ACTIVE`_elemmode{tableidx#24, expr#37}(tableidx, expr)) = $free_tableidx(tableidx) +++ $free_expr(expr) + def $free_elemmode{tableidx : tableidx, expr : expr}(`ACTIVE`_elemmode(tableidx, expr)) = $free_tableidx(tableidx) +++ $free_expr(expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode{`typeidx*#33` : typeidx*, `funcidx*#33` : funcidx*, `globalidx*#33` : globalidx*, `tableidx*#33` : tableidx*, `memidx*#33` : memidx*, `elemidx*#33` : elemidx*, `dataidx*#33` : dataidx*, `localidx*#34` : localidx*, `labelidx*#45` : labelidx*}(`PASSIVE`_elemmode) = {`TYPES`{`typeidx*#33`} [], `FUNCS`{`funcidx*#33`} [], `GLOBALS`{`globalidx*#33`} [], `TABLES`{`tableidx*#33`} [], `MEMS`{`memidx*#33`} [], `ELEMS`{`elemidx*#33`} [], `DATAS`{`dataidx*#33`} [], `LOCALS`{`localidx*#34`} [], `LABELS`{`labelidx*#45`} []} + def $free_elemmode(`PASSIVE`_elemmode) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode{`typeidx*#34` : typeidx*, `funcidx*#34` : funcidx*, `globalidx*#34` : globalidx*, `tableidx*#34` : tableidx*, `memidx*#34` : memidx*, `elemidx*#34` : elemidx*, `dataidx*#34` : dataidx*, `localidx*#35` : localidx*, `labelidx*#46` : labelidx*}(`DECLARE`_elemmode) = {`TYPES`{`typeidx*#34`} [], `FUNCS`{`funcidx*#34`} [], `GLOBALS`{`globalidx*#34`} [], `TABLES`{`tableidx*#34`} [], `MEMS`{`memidx*#34`} [], `ELEMS`{`elemidx*#34`} [], `DATAS`{`dataidx*#34`} [], `LOCALS`{`localidx*#35`} [], `LABELS`{`labelidx*#46`} []} + def $free_elemmode(`DECLARE`_elemmode) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_elem(elem : elem) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elem{reftype#157 : reftype, `expr*#11` : expr*, elemmode#11 : elemmode, reftype : reftype, `expr*` : expr*, elemmode : elemmode}(`ELEM`_elem{reftype#157, `expr*#11`, elemmode#11}(reftype, expr*{expr <- `expr*`}, elemmode)) = $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`}) +++ $free_elemmode(elemmode) + def $free_elem{reftype : reftype, `expr*` : expr*, elemmode : elemmode}(`ELEM`_elem(reftype, expr*{expr <- `expr*`}, elemmode)) = $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`}) +++ $free_elemmode(elemmode) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_start(start : start) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_start{funcidx#21 : funcidx, funcidx : funcidx}(`START`_start{funcidx#21}(funcidx)) = $free_funcidx(funcidx) + def $free_start{funcidx : funcidx}(`START`_start(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_import(import : import) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_import{name#18 : name, externtype#11 : externtype, name_1 : name, name_2 : name, externtype : externtype}(`IMPORT`_import{name#18, externtype#11}(name_1, name_2, externtype)) = $free_externtype(externtype) + def $free_import{name_1 : name, name_2 : name, externtype : externtype}(`IMPORT`_import(name_1, name_2, externtype)) = $free_externtype(externtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_export(export : export) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_export{name#31 : name, externidx#11 : externidx, name : name, externidx : externidx}(`EXPORT`_export{name#31, externidx#11}(name, externidx)) = $free_externidx(externidx) + def $free_export{name : name, externidx : externidx}(`EXPORT`_export(name, externidx)) = $free_externidx(externidx) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_module(module : module) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_module{`type*#11` : type*, `import*#11` : import*, `tag*#11` : tag*, `global*#11` : global*, `mem*#11` : mem*, `table*#11` : table*, `func*#11` : func*, `data*#11` : data*, `elem*#11` : elem*, `start?#11` : start?, `export*#11` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*}(`MODULE`_module{`type*#11`, `import*#11`, `tag*#11`, `global*#11`, `mem*#11`, `table*#11`, `func*#11`, `data*#11`, `elem*#11`, `start?#11`, `export*#11`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) = $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`}) +++ $free_list($free_export(export)*{export <- `export*`}) + def $free_module{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*}(`MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) = $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`}) +++ $free_list($free_export(export)*{export <- `export*`}) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $funcidx_module(module : module) : funcidx* ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $funcidx_module{module : module, `funcidx*#38` : funcidx*}(module) = $free_module(module).`FUNCS`_free{`funcidx*#38`} + def $funcidx_module{module : module}(module) = $free_module(module).`FUNCS`_free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $dataidx_funcs(func*) : dataidx* ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $dataidx_funcs{`func*` : func*, `dataidx*#38` : dataidx*}(func*{func <- `func*`}) = $free_list($free_func(func)*{func <- `func*`}).`DATAS`_free{`dataidx*#38`} + def $dataidx_funcs{`func*` : func*}(func*{func <- `func*`}) = $free_list($free_func(func)*{func <- `func*`}).`DATAS`_free ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec syntax init = @@ -114158,28 +89409,28 @@ syntax init = ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec syntax localtype = - | `%%`{init : init, valtype : valtype}(init : init, valtype : valtype) + | `%%`(init : init, valtype : valtype) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec syntax instrtype = - | `%->_%%`{resulttype : resulttype, `localidx*` : localidx*}(resulttype : resulttype, `localidx*` : localidx*, resulttype : resulttype) + | `%->_%%`(resulttype : resulttype, `localidx*` : localidx*, resulttype : resulttype) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec syntax context = { - `TYPES`{`deftype*` : deftype*} deftype*, - `RECS`{`subtype*` : subtype*} subtype*, - `TAGS`{`tagtype*` : tagtype*} tagtype*, - `GLOBALS`{`globaltype*` : globaltype*} globaltype*, - `MEMS`{`memtype*` : memtype*} memtype*, - `TABLES`{`tabletype*` : tabletype*} tabletype*, - `FUNCS`{`deftype*` : deftype*} deftype*, - `DATAS`{`datatype*` : datatype*} datatype*, - `ELEMS`{`elemtype*` : elemtype*} elemtype*, - `LOCALS`{`localtype*` : localtype*} localtype*, - `LABELS`{`resulttype*` : resulttype*} resulttype*, - `RETURN`{`resulttype?` : resulttype?} resulttype?, - `REFS`{`funcidx*` : funcidx*} funcidx* + `TYPES` deftype* , + `RECS` subtype* , + `TAGS` tagtype* , + `GLOBALS` globaltype* , + `MEMS` memtype* , + `TABLES` tabletype* , + `FUNCS` deftype* , + `DATAS` datatype* , + `ELEMS` elemtype* , + `LOCALS` localtype* , + `LABELS` resulttype* , + `RETURN` resulttype? , + `REFS` funcidx* } ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec @@ -114190,7 +89441,7 @@ def $with_locals(context : context, localidx*, localtype*) : context ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec:48.1-48.34 def $with_locals{C : context}(C, [], []) = C ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec:49.1-49.90 - def $with_locals{C : context, x_1 : idx, `x*` : idx*, lct_1 : localtype, `lct*` : localtype*, `localtype*#1` : localtype*, i#3970 : nat}(C, [x_1] ++ x*{x <- `x*`}, [lct_1] ++ lct*{lct <- `lct*`}) = $with_locals(C[`LOCALS`_context{`localtype*#1`}[x_1!`%`_idx{i#3970}.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`}) + def $with_locals{C : context, x_1 : idx, `x*` : idx*, lct_1 : localtype, `lct*` : localtype*}(C, [x_1] ++ x*{x <- `x*`}, [lct_1] ++ lct*{lct <- `lct*`}) = $with_locals(C[`LOCALS`_context[x_1!`%`_idx.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`}) } ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec @@ -114208,32 +89459,32 @@ def $clos_deftypes(deftype*) : deftype* ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_valtype(context : context, valtype : valtype) : valtype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_valtype{C : context, t : valtype, `dt*` : deftype*, `deftype*#2` : deftype*}(C, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#2`})) + def $clos_valtype{C : context, t : valtype, `dt*` : deftype*}(C, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_deftype(context : context, deftype : deftype) : deftype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_deftype{C : context, dt : deftype, `dt'*` : deftype*, `deftype*#4` : deftype*}(C, dt) = $subst_all_deftype(dt, (dt' : deftype <: typeuse)*{dt' <- `dt'*`}) - -- if (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#4`})) + def $clos_deftype{C : context, dt : deftype, `dt'*` : deftype*}(C, dt) = $subst_all_deftype(dt, (dt' : deftype <: typeuse)*{dt' <- `dt'*`}) + -- if (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.`TYPES`_context)) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_tagtype(context : context, tagtype : tagtype) : tagtype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_tagtype{C : context, jt : tagtype, `dt*` : deftype*, `deftype*#6` : deftype*}(C, jt) = $subst_all_tagtype(jt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#6`})) + def $clos_tagtype{C : context, jt : tagtype, `dt*` : deftype*}(C, jt) = $subst_all_tagtype(jt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_externtype(context : context, externtype : externtype) : externtype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_externtype{C : context, xt : externtype, `dt*` : deftype*, `deftype*#8` : deftype*}(C, xt) = $subst_all_externtype(xt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#8`})) + def $clos_externtype{C : context, xt : externtype, `dt*` : deftype*}(C, xt) = $subst_all_externtype(xt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_moduletype(context : context, moduletype : moduletype) : moduletype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_moduletype{C : context, mmt : moduletype, `dt*` : deftype*, `deftype*#10` : deftype*}(C, mmt) = $subst_all_moduletype(mmt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context{`deftype*#10`})) + def $clos_moduletype{C : context, mmt : moduletype, `dt*` : deftype*}(C, mmt) = $subst_all_moduletype(mmt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Numtype_ok: `%|-%:OK`(context, numtype) @@ -114249,11 +89500,11 @@ relation Vectype_ok: `%|-%:OK`(context, vectype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec syntax oktypeidx = - | `OK`{typeidx : typeidx}(typeidx : typeidx) + | `OK`(typeidx : typeidx) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec syntax oktypeidxnat = - | `OK`{typeidx : typeidx}(typeidx : typeidx, nat) + | `OK`(typeidx : typeidx, nat) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Packtype_ok: `%|-%:OK`(context, packtype) @@ -114291,18 +89542,18 @@ def $before(typeuse : typeuse, typeidx : typeidx, nat : nat) : bool ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec def $before{deftype : deftype, x : idx, i : nat}((deftype : deftype <: typeuse), x, i) = true ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $before{typeidx#240 : typeidx, typeidx : typeidx, x : idx, i : nat, i#4259 : nat, i#4269 : nat}(`_IDX`_typeuse{typeidx#240}(typeidx), x, i) = (typeidx!`%`_typeidx{i#4259}.0 < x!`%`_idx{i#4269}.0) + def $before{typeidx : typeidx, x : idx, i : nat}(`_IDX`_typeuse(typeidx), x, i) = (typeidx!`%`_typeidx.0 < x!`%`_idx.0) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $before{n#515 : n, j : n, x : idx, i : nat}(`REC`_typeuse{n#515}(j), x, i) = (j < i) + def $before{j : n, x : idx, i : nat}(`REC`_typeuse(j), x, i) = (j < i) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec def $unrollht(context : context, heaptype : heaptype) : subtype ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec def $unrollht{C : context, deftype : deftype}(C, (deftype : deftype <: heaptype)) = $unrolldt(deftype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $unrollht{C : context, typeidx#242 : typeidx, typeidx : typeidx, `deftype*#14` : deftype*, i#4303 : nat}(C, `_IDX`_heaptype{typeidx#242}(typeidx)) = $unrolldt(C.`TYPES`_context{`deftype*#14`}[typeidx!`%`_typeidx{i#4303}.0]) + def $unrollht{C : context, typeidx : typeidx}(C, `_IDX`_heaptype(typeidx)) = $unrolldt(C.`TYPES`_context[typeidx!`%`_typeidx.0]) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $unrollht{C : context, n#529 : n, i : n, `subtype*#2` : subtype*}(C, `REC`_heaptype{n#529}(i)) = C.`RECS`_context{`subtype*#2`}[i] + def $unrollht{C : context, i : n}(C, `REC`_heaptype(i)) = C.`RECS`_context[i] ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec rec { @@ -114321,8 +89572,8 @@ relation Heaptype_ok: `%|-%:OK`(context, heaptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:10.1-10.91 relation Reftype_ok: `%|-%:OK`(context, reftype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:27.1-29.37 - rule _{C : context, `null?#419` : null?, heaptype#421 : heaptype, heaptype : heaptype}: - `%|-%:OK`(C, `REF`_reftype{`null?#419`, heaptype#421}(`NULL`_null?{}, heaptype)) + rule _{C : context, heaptype : heaptype}: + `%|-%:OK`(C, `REF`_reftype(`NULL`_null?{}, heaptype)) -- Heaptype_ok: `%|-%:OK`(C, heaptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:11.1-11.91 @@ -114349,14 +89600,14 @@ relation Valtype_ok: `%|-%:OK`(context, valtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:12.1-12.94 relation Typeuse_ok: `%|-%:OK`(context, typeuse) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:99.1-101.30 - rule typeidx{C : context, typeidx#222 : typeidx, typeidx : typeidx, `deftype*#12` : deftype*, i#4125 : nat, dt : deftype}: - `%|-%:OK`(C, `_IDX`_typeuse{typeidx#222}(typeidx)) - -- if (C.`TYPES`_context{`deftype*#12`}[typeidx!`%`_typeidx{i#4125}.0] = dt) + rule typeidx{C : context, typeidx : typeidx, dt : deftype}: + `%|-%:OK`(C, `_IDX`_typeuse(typeidx)) + -- if (C.`TYPES`_context[typeidx!`%`_typeidx.0] = dt) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:103.1-105.23 - rule rec{C : context, n#501 : n, i : n, `subtype*#1` : subtype*, st : subtype}: - `%|-%:OK`(C, `REC`_typeuse{n#501}(i)) - -- if (C.`RECS`_context{`subtype*#1`}[i] = st) + rule rec{C : context, i : n, st : subtype}: + `%|-%:OK`(C, `REC`_typeuse(i)) + -- if (C.`RECS`_context[i] = st) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:107.1-109.35 rule deftype{C : context, deftype : deftype}: @@ -114366,15 +89617,15 @@ relation Typeuse_ok: `%|-%:OK`(context, typeuse) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:49.1-49.100 relation Resulttype_ok: `%|-%:OK`(context, resulttype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:52.1-54.32 - rule _{C : context, `X*#465` : valtype*, `t*` : valtype*}: - `%|-%:OK`(C, `%`_resulttype{`X*#465`}(t*{t <- `t*`})) + rule _{C : context, `t*` : valtype*}: + `%|-%:OK`(C, `%`_resulttype(t*{t <- `t*`})) -- (Valtype_ok: `%|-%:OK`(C, t))*{t <- `t*`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:85.1-85.104 relation Fieldtype_ok: `%|-%:OK`(context, fieldtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:123.1-125.43 - rule _{C : context, `mut?#289` : mut?, storagetype#137 : storagetype, storagetype : storagetype}: - `%|-%:OK`(C, `%%`_fieldtype{`mut?#289`, storagetype#137}(`MUT`_mut?{}, storagetype)) + rule _{C : context, storagetype : storagetype}: + `%|-%:OK`(C, `%%`_fieldtype(`MUT`_mut?{}, storagetype)) -- Storagetype_ok: `%|-%:OK`(C, storagetype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:86.1-86.106 @@ -114392,98 +89643,98 @@ relation Storagetype_ok: `%|-%:OK`(context, storagetype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:87.1-87.103 relation Comptype_ok: `%|-%:OK`(context, comptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:128.1-130.42 - rule struct{C : context, `X*#571` : fieldtype*, `fieldtype*` : fieldtype*}: - `%|-%:OK`(C, `STRUCT`_comptype(`%`_list{`X*#571`}(fieldtype*{fieldtype <- `fieldtype*`}))) + rule struct{C : context, `fieldtype*` : fieldtype*}: + `%|-%:OK`(C, `STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))) -- (Fieldtype_ok: `%|-%:OK`(C, fieldtype))*{fieldtype <- `fieldtype*`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:132.1-134.39 - rule array{C : context, fieldtype#7 : fieldtype, fieldtype : fieldtype}: - `%|-%:OK`(C, `ARRAY`_comptype{fieldtype#7}(fieldtype)) + rule array{C : context, fieldtype : fieldtype}: + `%|-%:OK`(C, `ARRAY`_comptype(fieldtype)) -- Fieldtype_ok: `%|-%:OK`(C, fieldtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:136.1-139.35 - rule func{C : context, resulttype#30 : resulttype, `X*#586` : valtype*, `t_1*` : valtype*, `X*#599` : valtype*, `t_2*` : valtype*, `X*#612` : valtype*, `X*#625` : valtype*}: - `%|-%:OK`(C, `FUNC%->%`_comptype{resulttype#30}(`%`_resulttype{`X*#586`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#599`}(t_2*{t_2 <- `t_2*`}))) - -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype{`X*#612`}(t_1*{t_1 <- `t_1*`})) - -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype{`X*#625`}(t_2*{t_2 <- `t_2*`})) + rule func{C : context, `t_1*` : valtype*, `t_2*` : valtype*}: + `%|-%:OK`(C, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype(t_1*{t_1 <- `t_1*`})) + -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`})) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:88.1-88.126 relation Subtype_ok: `%|-%:%`(context, subtype, oktypeidx) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:142.1-149.49 - rule _{C : context, `final?#215` : final?, `typeuse*#215` : typeuse*, comptype#215 : comptype, `typeidx#224*` : typeidx*, `x*` : idx*, comptype : comptype, typeidx#236 : typeidx, x_0 : idx, `i#4171*` : nat*, `i#4181*` : nat*, `comptype#227*` : comptype*, `comptype'*` : comptype*, `deftype*#13*` : deftype**, `final?#227*` : final?*, `i#4191*` : nat*, `typeidx#238**` : typeidx**, `typeuse*#227*` : typeuse**, `x'**` : idx**}: - `%|-%:%`(C, `SUB`_subtype{`final?#215`, `typeuse*#215`, comptype#215}(`FINAL`_final?{}, `_IDX`_typeuse{typeidx#224}(x)*{typeidx#224 <- `typeidx#224*`, x <- `x*`}, comptype), `OK`_oktypeidx{typeidx#236}(x_0)) + rule _{C : context, `x*` : idx*, comptype : comptype, x_0 : idx, `comptype'*` : comptype*, `x'**` : idx**}: + `%|-%:%`(C, `SUB`_subtype(`FINAL`_final?{}, `_IDX`_typeuse(x)*{x <- `x*`}, comptype), `OK`_oktypeidx(x_0)) -- if (|x*{x <- `x*`}| <= 1) - -- (if (x!`%`_idx{i#4171}.0 < x_0!`%`_idx{i#4181}.0))*{i#4171 <- `i#4171*`, i#4181 <- `i#4181*`, x <- `x*`} - -- (if ($unrolldt(C.`TYPES`_context{`deftype*#13`}[x!`%`_idx{i#4191}.0]) = `SUB`_subtype{`final?#227`, `typeuse*#227`, comptype#227}(?(), `_IDX`_typeuse{typeidx#238}(x')*{typeidx#238 <- `typeidx#238*`, x' <- `x'*`}, comptype')))*{comptype#227 <- `comptype#227*`, comptype' <- `comptype'*`, `deftype*#13` <- `deftype*#13*`, `final?#227` <- `final?#227*`, i#4191 <- `i#4191*`, `typeidx#238*` <- `typeidx#238**`, `typeuse*#227` <- `typeuse*#227*`, x <- `x*`, `x'*` <- `x'**`} + -- (if (x!`%`_idx.0 < x_0!`%`_idx.0))*{x <- `x*`} + -- (if ($unrolldt(C.`TYPES`_context[x!`%`_idx.0]) = `SUB`_subtype(?(), `_IDX`_typeuse(x')*{x' <- `x'*`}, comptype')))*{comptype' <- `comptype'*`, x <- `x*`, `x'*` <- `x'**`} -- Comptype_ok: `%|-%:OK`(C, comptype) -- (Comptype_sub: `%|-%<:%`(C, comptype, comptype'))*{comptype' <- `comptype'*`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:89.1-89.126 relation Rectype_ok: `%|-%:%`(context, rectype, oktypeidx) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:171.1-172.23 - rule empty{C : context, `X*#650` : subtype*, typeidx#266 : typeidx, x : idx}: - `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#650`}([])), `OK`_oktypeidx{typeidx#266}(x)) + rule empty{C : context, x : idx}: + `%|-%:%`(C, `REC`_rectype(`%`_list([])), `OK`_oktypeidx(x)) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:174.1-177.48 - rule cons{C : context, `X*#673` : subtype*, subtype_1 : subtype, `subtype*` : subtype*, typeidx#278 : typeidx, x : idx, typeidx#290 : typeidx, `X*#686` : subtype*, typeidx#302 : typeidx, i#4407 : nat, i#4397 : nat}: - `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#673`}([subtype_1] ++ subtype*{subtype <- `subtype*`})), `OK`_oktypeidx{typeidx#278}(x)) - -- Subtype_ok: `%|-%:%`(C, subtype_1, `OK`_oktypeidx{typeidx#290}(x)) - -- Rectype_ok: `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#686`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidx{typeidx#302}(`%`_typeidx{i#4407}((x!`%`_idx{i#4397}.0 + 1)))) + rule cons{C : context, subtype_1 : subtype, `subtype*` : subtype*, x : idx}: + `%|-%:%`(C, `REC`_rectype(`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`})), `OK`_oktypeidx(x)) + -- Subtype_ok: `%|-%:%`(C, subtype_1, `OK`_oktypeidx(x)) + -- Rectype_ok: `%|-%:%`(C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidx(`%`_typeidx((x!`%`_idx.0 + 1)))) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:179.1-181.60 - rule _rec2{C : context, `X*#701` : subtype*, `subtype*` : subtype*, typeidx#314 : typeidx, x : idx, `deftype*#15` : deftype*, `subtype*#3` : subtype*, `tagtype*#1` : tagtype*, `globaltype*#1` : globaltype*, `memtype*#1` : memtype*, `tabletype*#1` : tabletype*, `deftype*#16` : deftype*, `datatype*#1` : datatype*, `elemtype*#1` : elemtype*, `localtype*#3` : localtype*, `resulttype*#1` : resulttype*, `resulttype?#1` : resulttype?, `funcidx*#39` : funcidx*, `X*#716` : subtype*, typeidx#326 : typeidx}: - `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#701`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidx{typeidx#314}(x)) - -- Rectype_ok2: `%|-%:%`({`TYPES`{`deftype*#15`} [], `RECS`{`subtype*#3`} subtype*{subtype <- `subtype*`}, `TAGS`{`tagtype*#1`} [], `GLOBALS`{`globaltype*#1`} [], `MEMS`{`memtype*#1`} [], `TABLES`{`tabletype*#1`} [], `FUNCS`{`deftype*#16`} [], `DATAS`{`datatype*#1`} [], `ELEMS`{`elemtype*#1`} [], `LOCALS`{`localtype*#3`} [], `LABELS`{`resulttype*#1`} [], `RETURN`{`resulttype?#1`} ?(), `REFS`{`funcidx*#39`} []} +++ C, `REC`_rectype(`%`_list{`X*#716`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat{typeidx#326}(x, 0)) + rule _rec2{C : context, `subtype*` : subtype*, x : idx}: + `%|-%:%`(C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidx(x)) + -- Rectype_ok2: `%|-%:%`({`TYPES` [], `RECS` subtype*{subtype <- `subtype*`}, `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []} +++ C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat(x, 0)) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:90.1-90.126 relation Subtype_ok2: `%|-%:%`(context, subtype, oktypeidxnat) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:161.1-168.49 - rule _{C : context, `final?#257` : final?, `typeuse*#257` : typeuse*, comptype#257 : comptype, `typeuse*` : typeuse*, compttype : comptype, typeidx#254 : typeidx, x : idx, i : nat, `comptype#269*` : comptype*, `comptype'*` : comptype*, `final?#269*` : final?*, `typeuse'**` : typeuse**, `typeuse*#269*` : typeuse**, comptype : comptype}: - `%|-%:%`(C, `SUB`_subtype{`final?#257`, `typeuse*#257`, comptype#257}(`FINAL`_final?{}, typeuse*{typeuse <- `typeuse*`}, compttype), `OK`_oktypeidxnat{typeidx#254}(x, i)) + rule _{C : context, `typeuse*` : typeuse*, compttype : comptype, x : idx, i : nat, `comptype'*` : comptype*, `typeuse'**` : typeuse**, comptype : comptype}: + `%|-%:%`(C, `SUB`_subtype(`FINAL`_final?{}, typeuse*{typeuse <- `typeuse*`}, compttype), `OK`_oktypeidxnat(x, i)) -- if (|typeuse*{typeuse <- `typeuse*`}| <= 1) -- (if $before(typeuse, x, i))*{typeuse <- `typeuse*`} - -- (if ($unrollht(C, (typeuse : typeuse <: heaptype)) = `SUB`_subtype{`final?#269`, `typeuse*#269`, comptype#269}(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype')))*{comptype#269 <- `comptype#269*`, comptype' <- `comptype'*`, `final?#269` <- `final?#269*`, typeuse <- `typeuse*`, `typeuse'*` <- `typeuse'**`, `typeuse*#269` <- `typeuse*#269*`} + -- (if ($unrollht(C, (typeuse : typeuse <: heaptype)) = `SUB`_subtype(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype')))*{comptype' <- `comptype'*`, typeuse <- `typeuse*`, `typeuse'*` <- `typeuse'**`} -- Comptype_ok: `%|-%:OK`(C, comptype) -- (Comptype_sub: `%|-%<:%`(C, comptype, comptype'))*{comptype' <- `comptype'*`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:91.1-91.126 relation Rectype_ok2: `%|-%:%`(context, rectype, oktypeidxnat) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:183.1-184.24 - rule empty{C : context, `X*#741` : subtype*, typeidx#338 : typeidx, x : idx, i : nat}: - `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#741`}([])), `OK`_oktypeidxnat{typeidx#338}(x, i)) + rule empty{C : context, x : idx, i : nat}: + `%|-%:%`(C, `REC`_rectype(`%`_list([])), `OK`_oktypeidxnat(x, i)) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:186.1-189.55 - rule cons{C : context, `X*#764` : subtype*, subtype_1 : subtype, `subtype*` : subtype*, typeidx#350 : typeidx, x : idx, i : nat, typeidx#362 : typeidx, `X*#777` : subtype*, typeidx#374 : typeidx, i#4513 : nat, i#4503 : nat}: - `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#764`}([subtype_1] ++ subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat{typeidx#350}(x, i)) - -- Subtype_ok2: `%|-%:%`(C, subtype_1, `OK`_oktypeidxnat{typeidx#362}(x, i)) - -- Rectype_ok2: `%|-%:%`(C, `REC`_rectype(`%`_list{`X*#777`}(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat{typeidx#374}(`%`_typeidx{i#4513}((x!`%`_idx{i#4503}.0 + 1)), (i + 1))) + rule cons{C : context, subtype_1 : subtype, `subtype*` : subtype*, x : idx, i : nat}: + `%|-%:%`(C, `REC`_rectype(`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat(x, i)) + -- Subtype_ok2: `%|-%:%`(C, subtype_1, `OK`_oktypeidxnat(x, i)) + -- Rectype_ok2: `%|-%:%`(C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat(`%`_typeidx((x!`%`_idx.0 + 1)), (i + 1))) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:92.1-92.102 relation Deftype_ok: `%|-%:OK`(context, deftype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:192.1-196.14 - rule _{C : context, rectype#577 : rectype, n#541 : n, rectype : rectype, i : n, typeidx#386 : typeidx, x : idx, `X*#792` : subtype*, n : n, `subtype*` : subtype*}: - `%|-%:OK`(C, `_DEF`_deftype{rectype#577, n#541}(rectype, i)) - -- Rectype_ok: `%|-%:%`(C, rectype, `OK`_oktypeidx{typeidx#386}(x)) - -- if (rectype = `REC`_rectype(`%`_list{`X*#792`}(subtype^n{subtype <- `subtype*`}))) + rule _{C : context, rectype : rectype, i : n, x : idx, n : n, `subtype*` : subtype*}: + `%|-%:OK`(C, `_DEF`_deftype(rectype, i)) + -- Rectype_ok: `%|-%:%`(C, rectype, `OK`_oktypeidx(x)) + -- if (rectype = `REC`_rectype(`%`_list(subtype^n{subtype <- `subtype*`}))) -- if (i < n) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:95.1-95.108 relation Comptype_sub: `%|-%<:%`(context, comptype, comptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:165.1-167.41 - rule struct{C : context, `X*#1124` : fieldtype*, `ft_1*` : fieldtype*, `ft'_1*` : fieldtype*, `X*#1137` : fieldtype*, `ft_2*` : fieldtype*}: - `%|-%<:%`(C, `STRUCT`_comptype(`%`_list{`X*#1124`}(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`})), `STRUCT`_comptype(`%`_list{`X*#1137`}(ft_2*{ft_2 <- `ft_2*`}))) + rule struct{C : context, `ft_1*` : fieldtype*, `ft'_1*` : fieldtype*, `ft_2*` : fieldtype*}: + `%|-%<:%`(C, `STRUCT`_comptype(`%`_list(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`})), `STRUCT`_comptype(`%`_list(ft_2*{ft_2 <- `ft_2*`}))) -- (Fieldtype_sub: `%|-%<:%`(C, ft_1, ft_2))*{ft_1 <- `ft_1*`, ft_2 <- `ft_2*`} ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:169.1-171.38 - rule array{C : context, fieldtype#11 : fieldtype, ft_1 : fieldtype, fieldtype#13 : fieldtype, ft_2 : fieldtype}: - `%|-%<:%`(C, `ARRAY`_comptype{fieldtype#11}(ft_1), `ARRAY`_comptype{fieldtype#13}(ft_2)) + rule array{C : context, ft_1 : fieldtype, ft_2 : fieldtype}: + `%|-%<:%`(C, `ARRAY`_comptype(ft_1), `ARRAY`_comptype(ft_2)) -- Fieldtype_sub: `%|-%<:%`(C, ft_1, ft_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:173.1-176.41 - rule func{C : context, resulttype#82 : resulttype, `X*#1152` : valtype*, `t_11*` : valtype*, `X*#1165` : valtype*, `t_12*` : valtype*, resulttype#85 : resulttype, `X*#1180` : valtype*, `t_21*` : valtype*, `X*#1193` : valtype*, `t_22*` : valtype*, `X*#1206` : valtype*, `X*#1219` : valtype*, `X*#1232` : valtype*, `X*#1245` : valtype*}: - `%|-%<:%`(C, `FUNC%->%`_comptype{resulttype#82}(`%`_resulttype{`X*#1152`}(t_11*{t_11 <- `t_11*`}), `%`_resulttype{`X*#1165`}(t_12*{t_12 <- `t_12*`})), `FUNC%->%`_comptype{resulttype#85}(`%`_resulttype{`X*#1180`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1193`}(t_22*{t_22 <- `t_22*`}))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#1206`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1219`}(t_11*{t_11 <- `t_11*`})) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#1232`}(t_12*{t_12 <- `t_12*`}), `%`_resulttype{`X*#1245`}(t_22*{t_22 <- `t_22*`})) + rule func{C : context, `t_11*` : valtype*, `t_12*` : valtype*, `t_21*` : valtype*, `t_22*` : valtype*}: + `%|-%<:%`(C, `FUNC%->%`_comptype(`%`_resulttype(t_11*{t_11 <- `t_11*`}), `%`_resulttype(t_12*{t_12 <- `t_12*`})), `FUNC%->%`_comptype(`%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`}))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_11*{t_11 <- `t_11*`})) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_12*{t_12 <- `t_12*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`})) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:96.1-96.107 relation Deftype_sub: `%|-%<:%`(context, deftype, deftype) @@ -114493,9 +89744,9 @@ relation Deftype_sub: `%|-%<:%`(context, deftype, deftype) -- if ($clos_deftype(C, deftype_1) = $clos_deftype(C, deftype_2)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:183.1-186.49 - rule super{C : context, deftype_1 : deftype, deftype_2 : deftype, `final?#437` : final?, `typeuse*#437` : typeuse*, comptype#437 : comptype, `final?` : final?, `typeuse*` : typeuse*, ct : comptype, i : nat}: + rule super{C : context, deftype_1 : deftype, deftype_2 : deftype, `final?` : final?, `typeuse*` : typeuse*, ct : comptype, i : nat}: `%|-%<:%`(C, deftype_1, deftype_2) - -- if ($unrolldt(deftype_1) = `SUB`_subtype{`final?#437`, `typeuse*#437`, comptype#437}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)) + -- if ($unrolldt(deftype_1) = `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)) -- Heaptype_sub: `%|-%<:%`(C, (typeuse*{typeuse <- `typeuse*`}[i] : typeuse <: heaptype), (deftype_2 : deftype <: heaptype)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:9.1-9.104 @@ -114528,19 +89779,19 @@ relation Heaptype_sub: `%|-%<:%`(context, heaptype, heaptype) `%|-%<:%`(C, `ARRAY`_heaptype, `EQ`_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:41.1-43.42 - rule struct{C : context, deftype : deftype, `X*#863` : fieldtype*, `fieldtype*` : fieldtype*}: + rule struct{C : context, deftype : deftype, `fieldtype*` : fieldtype*}: `%|-%<:%`(C, (deftype : deftype <: heaptype), `STRUCT`_heaptype) - -- Expand: `%~~%`(deftype, `STRUCT`_comptype(`%`_list{`X*#863`}(fieldtype*{fieldtype <- `fieldtype*`}))) + -- Expand: `%~~%`(deftype, `STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:45.1-47.40 - rule array{C : context, deftype : deftype, fieldtype#9 : fieldtype, fieldtype : fieldtype}: + rule array{C : context, deftype : deftype, fieldtype : fieldtype}: `%|-%<:%`(C, (deftype : deftype <: heaptype), `ARRAY`_heaptype) - -- Expand: `%~~%`(deftype, `ARRAY`_comptype{fieldtype#9}(fieldtype)) + -- Expand: `%~~%`(deftype, `ARRAY`_comptype(fieldtype)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:49.1-51.42 - rule func{C : context, deftype : deftype, resulttype#39 : resulttype, `X*#878` : valtype*, `t_1*` : valtype*, `X*#891` : valtype*, `t_2*` : valtype*}: + rule func{C : context, deftype : deftype, `t_1*` : valtype*, `t_2*` : valtype*}: `%|-%<:%`(C, (deftype : deftype <: heaptype), `FUNC`_heaptype) - -- Expand: `%~~%`(deftype, `FUNC%->%`_comptype{resulttype#39}(`%`_resulttype{`X*#878`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#891`}(t_2*{t_2 <- `t_2*`}))) + -- Expand: `%~~%`(deftype, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:53.1-55.46 rule def{C : context, deftype_1 : deftype, deftype_2 : deftype}: @@ -114548,19 +89799,19 @@ relation Heaptype_sub: `%|-%<:%`(context, heaptype, heaptype) -- Deftype_sub: `%|-%<:%`(C, deftype_1, deftype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:57.1-59.53 - rule `typeidx-l`{C : context, typeidx#388 : typeidx, typeidx : typeidx, heaptype : heaptype, `deftype*#17` : deftype*, i#4606 : nat}: - `%|-%<:%`(C, `_IDX`_heaptype{typeidx#388}(typeidx), heaptype) - -- Heaptype_sub: `%|-%<:%`(C, (C.`TYPES`_context{`deftype*#17`}[typeidx!`%`_typeidx{i#4606}.0] : deftype <: heaptype), heaptype) + rule `typeidx-l`{C : context, typeidx : typeidx, heaptype : heaptype}: + `%|-%<:%`(C, `_IDX`_heaptype(typeidx), heaptype) + -- Heaptype_sub: `%|-%<:%`(C, (C.`TYPES`_context[typeidx!`%`_typeidx.0] : deftype <: heaptype), heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:61.1-63.53 - rule `typeidx-r`{C : context, heaptype : heaptype, typeidx#390 : typeidx, typeidx : typeidx, `deftype*#18` : deftype*, i#4628 : nat}: - `%|-%<:%`(C, heaptype, `_IDX`_heaptype{typeidx#390}(typeidx)) - -- Heaptype_sub: `%|-%<:%`(C, heaptype, (C.`TYPES`_context{`deftype*#18`}[typeidx!`%`_typeidx{i#4628}.0] : deftype <: heaptype)) + rule `typeidx-r`{C : context, heaptype : heaptype, typeidx : typeidx}: + `%|-%<:%`(C, heaptype, `_IDX`_heaptype(typeidx)) + -- Heaptype_sub: `%|-%<:%`(C, heaptype, (C.`TYPES`_context[typeidx!`%`_typeidx.0] : deftype <: heaptype)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:65.1-67.43 - rule rec{C : context, n#573 : n, i : n, `typeuse*` : typeuse*, j : nat, `subtype*#4` : subtype*, `final?#425` : final?, `typeuse*#425` : typeuse*, comptype#425 : comptype, `final?` : final?, ct : comptype}: - `%|-%<:%`(C, `REC`_heaptype{n#573}(i), (typeuse*{typeuse <- `typeuse*`}[j] : typeuse <: heaptype)) - -- if (C.`RECS`_context{`subtype*#4`}[i] = `SUB`_subtype{`final?#425`, `typeuse*#425`, comptype#425}(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)) + rule rec{C : context, i : n, `typeuse*` : typeuse*, j : nat, `final?` : final?, ct : comptype}: + `%|-%<:%`(C, `REC`_heaptype(i), (typeuse*{typeuse <- `typeuse*`}[j] : typeuse <: heaptype)) + -- if (C.`RECS`_context[i] = `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:69.1-71.40 rule none{C : context, heaptype : heaptype}: @@ -114589,13 +89840,13 @@ relation Heaptype_sub: `%|-%<:%`(context, heaptype, heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:10.1-10.103 relation Reftype_sub: `%|-%<:%`(context, reftype, reftype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:89.1-91.37 - rule nonnull{C : context, `null?#449` : null?, heaptype#451 : heaptype, ht_1 : heaptype, `null?#461` : null?, heaptype#463 : heaptype, ht_2 : heaptype}: - `%|-%<:%`(C, `REF`_reftype{`null?#449`, heaptype#451}(?(), ht_1), `REF`_reftype{`null?#461`, heaptype#463}(?(), ht_2)) + rule nonnull{C : context, ht_1 : heaptype, ht_2 : heaptype}: + `%|-%<:%`(C, `REF`_reftype(?(), ht_1), `REF`_reftype(?(), ht_2)) -- Heaptype_sub: `%|-%<:%`(C, ht_1, ht_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:93.1-95.37 - rule null{C : context, `null?#473` : null?, heaptype#475 : heaptype, ht_1 : heaptype, `null?#485` : null?, heaptype#487 : heaptype, ht_2 : heaptype}: - `%|-%<:%`(C, `REF`_reftype{`null?#473`, heaptype#475}(`NULL`_null?{}, ht_1), `REF`_reftype{`null?#485`, heaptype#487}(?(`NULL`_null), ht_2)) + rule null{C : context, ht_1 : heaptype, ht_2 : heaptype}: + `%|-%<:%`(C, `REF`_reftype(`NULL`_null?{}, ht_1), `REF`_reftype(?(`NULL`_null), ht_2)) -- Heaptype_sub: `%|-%<:%`(C, ht_1, ht_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:11.1-11.103 @@ -114622,8 +89873,8 @@ relation Valtype_sub: `%|-%<:%`(context, valtype, valtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:116.1-116.115 relation Resulttype_sub: `%|-%<:%`(context, resulttype, resulttype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:119.1-121.37 - rule _{C : context, `X*#904` : valtype*, `t_1*` : valtype*, `X*#917` : valtype*, `t_2*` : valtype*}: - `%|-%<:%`(C, `%`_resulttype{`X*#904`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#917`}(t_2*{t_2 <- `t_2*`})) + rule _{C : context, `t_1*` : valtype*, `t_2*` : valtype*}: + `%|-%<:%`(C, `%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})) -- (Valtype_sub: `%|-%<:%`(C, t_1, t_2))*{t_1 <- `t_1*`, t_2 <- `t_2*`} ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:134.1-134.119 @@ -114641,13 +89892,13 @@ relation Storagetype_sub: `%|-%<:%`(context, storagetype, storagetype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:135.1-135.117 relation Fieldtype_sub: `%|-%<:%`(context, fieldtype, fieldtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:155.1-157.40 - rule const{C : context, `mut?#371` : mut?, storagetype#195 : storagetype, zt_1 : storagetype, `mut?#377` : mut?, storagetype#201 : storagetype, zt_2 : storagetype}: - `%|-%<:%`(C, `%%`_fieldtype{`mut?#371`, storagetype#195}(?(), zt_1), `%%`_fieldtype{`mut?#377`, storagetype#201}(?(), zt_2)) + rule const{C : context, zt_1 : storagetype, zt_2 : storagetype}: + `%|-%<:%`(C, `%%`_fieldtype(?(), zt_1), `%%`_fieldtype(?(), zt_2)) -- Storagetype_sub: `%|-%<:%`(C, zt_1, zt_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:159.1-162.40 - rule var{C : context, `mut?#389` : mut?, storagetype#213 : storagetype, zt_1 : storagetype, `mut?#401` : mut?, storagetype#225 : storagetype, zt_2 : storagetype}: - `%|-%<:%`(C, `%%`_fieldtype{`mut?#389`, storagetype#213}(?(`MUT`_mut), zt_1), `%%`_fieldtype{`mut?#401`, storagetype#225}(?(`MUT`_mut), zt_2)) + rule var{C : context, zt_1 : storagetype, zt_2 : storagetype}: + `%|-%<:%`(C, `%%`_fieldtype(?(`MUT`_mut), zt_1), `%%`_fieldtype(?(`MUT`_mut), zt_2)) -- Storagetype_sub: `%|-%<:%`(C, zt_1, zt_2) -- Storagetype_sub: `%|-%<:%`(C, zt_2, zt_1) } @@ -114655,11 +89906,11 @@ relation Fieldtype_sub: `%|-%<:%`(context, fieldtype, fieldtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Instrtype_ok: `%|-%:OK`(context, instrtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule _{C : context, resulttype#27 : resulttype, `localidx*#47` : localidx*, `X*#478` : valtype*, `t_1*` : valtype*, `x*` : idx*, `X*#530` : valtype*, `t_2*` : valtype*, `X*#543` : valtype*, `X*#556` : valtype*, `i#4081*` : nat*, `lct*` : localtype*, `localtype*#2*` : localtype**}: - `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#27, `localidx*#47`}(`%`_resulttype{`X*#478`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#530`}(t_2*{t_2 <- `t_2*`}))) - -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype{`X*#543`}(t_1*{t_1 <- `t_1*`})) - -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype{`X*#556`}(t_2*{t_2 <- `t_2*`})) - -- (if (C.`LOCALS`_context{`localtype*#2`}[x!`%`_idx{i#4081}.0] = lct))*{i#4081 <- `i#4081*`, lct <- `lct*`, `localtype*#2` <- `localtype*#2*`, x <- `x*`} + rule _{C : context, `t_1*` : valtype*, `x*` : idx*, `t_2*` : valtype*, `lct*` : localtype*}: + `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype(t_1*{t_1 <- `t_1*`})) + -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`})) + -- (if (C.`LOCALS`_context[x!`%`_idx.0] = lct))*{lct <- `lct*`, x <- `x*`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Expand_use: `%~~_%%`(typeuse, context, comptype) @@ -114669,97 +89920,97 @@ relation Expand_use: `%~~_%%`(typeuse, context, comptype) -- Expand: `%~~%`(deftype, comptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule typeidx{typeidx#220 : typeidx, typeidx : typeidx, C : context, comptype : comptype, `deftype*#11` : deftype*, i#4103 : nat}: - `%~~_%%`(`_IDX`_typeuse{typeidx#220}(typeidx), C, comptype) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#11`}[typeidx!`%`_typeidx{i#4103}.0], comptype) + rule typeidx{typeidx : typeidx, C : context, comptype : comptype}: + `%~~_%%`(`_IDX`_typeuse(typeidx), C, comptype) + -- Expand: `%~~%`(C.`TYPES`_context[typeidx!`%`_typeidx.0], comptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Limits_ok: `%|-%:%`(context, limits, nat) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule _{C : context, u64#48 : u64, `u64?#47` : u64?, i#4549 : nat, n : n, `i#4584?` : nat?, `m?` : m?, k : nat}: - `%|-%:%`(C, `[%..%]`_limits{u64#48, `u64?#47`}(`%`_u64{i#4549}(n), `%`_u64{i#4584}(m)?{i#4584 <- `i#4584?`, m <- `m?`}), k) + rule _{C : context, n : n, `m?` : m?, k : nat}: + `%|-%:%`(C, `[%..%]`_limits(`%`_u64(n), `%`_u64(m)?{m <- `m?`}), k) -- if (n <= k) -- (if ((n <= m) /\ (m <= k)))?{m <- `m?`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Tagtype_ok: `%|-%:OK`(context, tagtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule _{C : context, typeuse : typeuse, resulttype#33 : resulttype, `X*#807` : valtype*, `t_1*` : valtype*, `X*#820` : valtype*, `t_2*` : valtype*}: + rule _{C : context, typeuse : typeuse, `t_1*` : valtype*, `t_2*` : valtype*}: `%|-%:OK`(C, typeuse) -- Typeuse_ok: `%|-%:OK`(C, typeuse) - -- Expand_use: `%~~_%%`(typeuse, C, `FUNC%->%`_comptype{resulttype#33}(`%`_resulttype{`X*#807`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#820`}(t_2*{t_2 <- `t_2*`}))) + -- Expand_use: `%~~_%%`(typeuse, C, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Globaltype_ok: `%|-%:OK`(context, globaltype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule _{C : context, `mut?#333` : mut?, valtype#247 : valtype, t : valtype}: - `%|-%:OK`(C, `%%`_globaltype{`mut?#333`, valtype#247}(`MUT`_mut?{}, t)) + rule _{C : context, t : valtype}: + `%|-%:OK`(C, `%%`_globaltype(`MUT`_mut?{}, t)) -- Valtype_ok: `%|-%:OK`(C, t) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Memtype_ok: `%|-%:OK`(context, memtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule _{C : context, addrtype#297 : addrtype, limits#297 : limits, addrtype : addrtype, limits : limits}: - `%|-%:OK`(C, `%%PAGE`_memtype{addrtype#297, limits#297}(addrtype, limits)) + rule _{C : context, addrtype : addrtype, limits : limits}: + `%|-%:OK`(C, `%%PAGE`_memtype(addrtype, limits)) -- Limits_ok: `%|-%:%`(C, limits, (2 ^ 16)) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Tabletype_ok: `%|-%:OK`(context, tabletype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule _{C : context, addrtype#309 : addrtype, limits#309 : limits, reftype#311 : reftype, addrtype : addrtype, limits : limits, reftype : reftype}: - `%|-%:OK`(C, `%%%`_tabletype{addrtype#309, limits#309, reftype#311}(addrtype, limits, reftype)) + rule _{C : context, addrtype : addrtype, limits : limits, reftype : reftype}: + `%|-%:OK`(C, `%%%`_tabletype(addrtype, limits, reftype)) -- Limits_ok: `%|-%:%`(C, limits, ((((2 ^ 32) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) -- Reftype_ok: `%|-%:OK`(C, reftype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Externtype_ok: `%|-%:OK`(context, externtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule tag{C : context, tagtype#89 : tagtype, tagtype : tagtype}: - `%|-%:OK`(C, `TAG`_externtype{tagtype#89}(tagtype)) + rule tag{C : context, tagtype : tagtype}: + `%|-%:OK`(C, `TAG`_externtype(tagtype)) -- Tagtype_ok: `%|-%:OK`(C, tagtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule global{C : context, globaltype#101 : globaltype, globaltype : globaltype}: - `%|-%:OK`(C, `GLOBAL`_externtype{globaltype#101}(globaltype)) + rule global{C : context, globaltype : globaltype}: + `%|-%:OK`(C, `GLOBAL`_externtype(globaltype)) -- Globaltype_ok: `%|-%:OK`(C, globaltype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule mem{C : context, memtype#113 : memtype, memtype : memtype}: - `%|-%:OK`(C, `MEM`_externtype{memtype#113}(memtype)) + rule mem{C : context, memtype : memtype}: + `%|-%:OK`(C, `MEM`_externtype(memtype)) -- Memtype_ok: `%|-%:OK`(C, memtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule table{C : context, tabletype#127 : tabletype, tabletype : tabletype}: - `%|-%:OK`(C, `TABLE`_externtype{tabletype#127}(tabletype)) + rule table{C : context, tabletype : tabletype}: + `%|-%:OK`(C, `TABLE`_externtype(tabletype)) -- Tabletype_ok: `%|-%:OK`(C, tabletype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - rule func{C : context, typeuse#17 : typeuse, typeuse : typeuse, resulttype#36 : resulttype, `X*#835` : valtype*, `t_1*` : valtype*, `X*#848` : valtype*, `t_2*` : valtype*}: - `%|-%:OK`(C, `FUNC`_externtype{typeuse#17}(typeuse)) + rule func{C : context, typeuse : typeuse, `t_1*` : valtype*, `t_2*` : valtype*}: + `%|-%:OK`(C, `FUNC`_externtype(typeuse)) -- Typeuse_ok: `%|-%:OK`(C, typeuse) - -- Expand_use: `%~~_%%`(typeuse, C, `FUNC%->%`_comptype{resulttype#36}(`%`_resulttype{`X*#835`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#848`}(t_2*{t_2 <- `t_2*`}))) + -- Expand_use: `%~~_%%`(typeuse, C, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec relation Instrtype_sub: `%|-%<:%`(context, instrtype, instrtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule _{C : context, resulttype#59 : resulttype, `localidx*#59` : localidx*, `X*#930` : valtype*, `t_11*` : valtype*, `x_1*` : idx*, `X*#982` : valtype*, `t_12*` : valtype*, resulttype#79 : resulttype, `localidx*#71` : localidx*, `X*#995` : valtype*, `t_21*` : valtype*, `x_2*` : idx*, `X*#1047` : valtype*, `t_22*` : valtype*, `X*#1060` : valtype*, `X*#1073` : valtype*, `X*#1086` : valtype*, `X*#1099` : valtype*, `x*` : idx*, `i#4865*` : nat*, `init#65*` : init*, `localtype*#4*` : localtype**, `t*` : valtype*, `valtype#271*` : valtype*}: - `%|-%<:%`(C, `%->_%%`_instrtype{resulttype#59, `localidx*#59`}(`%`_resulttype{`X*#930`}(t_11*{t_11 <- `t_11*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#982`}(t_12*{t_12 <- `t_12*`})), `%->_%%`_instrtype{resulttype#79, `localidx*#71`}(`%`_resulttype{`X*#995`}(t_21*{t_21 <- `t_21*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#1047`}(t_22*{t_22 <- `t_22*`}))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#1060`}(t_21*{t_21 <- `t_21*`}), `%`_resulttype{`X*#1073`}(t_11*{t_11 <- `t_11*`})) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#1086`}(t_12*{t_12 <- `t_12*`}), `%`_resulttype{`X*#1099`}(t_22*{t_22 <- `t_22*`})) + rule _{C : context, `t_11*` : valtype*, `x_1*` : idx*, `t_12*` : valtype*, `t_21*` : valtype*, `x_2*` : idx*, `t_22*` : valtype*, `x*` : idx*, `t*` : valtype*}: + `%|-%<:%`(C, `%->_%%`_instrtype(`%`_resulttype(t_11*{t_11 <- `t_11*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_12*{t_12 <- `t_12*`})), `%->_%%`_instrtype(`%`_resulttype(t_21*{t_21 <- `t_21*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_22*{t_22 <- `t_22*`}))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_11*{t_11 <- `t_11*`})) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_12*{t_12 <- `t_12*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`})) -- if (x*{x <- `x*`} = $setminus_(syntax localidx, x_2*{x_2 <- `x_2*`}, x_1*{x_1 <- `x_1*`})) - -- (if (C.`LOCALS`_context{`localtype*#4`}[x!`%`_idx{i#4865}.0] = `%%`_localtype{init#65, valtype#271}(`SET`_init, t)))*{i#4865 <- `i#4865*`, init#65 <- `init#65*`, `localtype*#4` <- `localtype*#4*`, t <- `t*`, valtype#271 <- `valtype#271*`, x <- `x*`} + -- (if (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(`SET`_init, t)))*{t <- `t*`, x <- `x*`} ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec relation Limits_sub: `%|-%<:%`(context, limits, limits) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule max{C : context, u64#84 : u64, `u64?#83` : u64?, i#4887 : nat, n_1 : n, i#4909 : nat, m_1 : m, u64#96 : u64, `u64?#95` : u64?, i#4931 : nat, n_2 : n, `i#4966?` : nat?, `m_2?` : m?}: - `%|-%<:%`(C, `[%..%]`_limits{u64#84, `u64?#83`}(`%`_u64{i#4887}(n_1), ?(`%`_u64{i#4909}(m_1))), `[%..%]`_limits{u64#96, `u64?#95`}(`%`_u64{i#4931}(n_2), `%`_u64{i#4966}(m_2)?{i#4966 <- `i#4966?`, m_2 <- `m_2?`})) + rule max{C : context, n_1 : n, m_1 : m, n_2 : n, `m_2?` : m?}: + `%|-%<:%`(C, `[%..%]`_limits(`%`_u64(n_1), ?(`%`_u64(m_1))), `[%..%]`_limits(`%`_u64(n_2), `%`_u64(m_2)?{m_2 <- `m_2?`})) -- if (n_1 >= n_2) -- (if (m_1 <= m_2))?{m_2 <- `m_2?`} ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule eps{C : context, u64#108 : u64, `u64?#107` : u64?, i#4988 : nat, n_1 : n, u64#120 : u64, `u64?#119` : u64?, i#5010 : nat, n_2 : n}: - `%|-%<:%`(C, `[%..%]`_limits{u64#108, `u64?#107`}(`%`_u64{i#4988}(n_1), ?()), `[%..%]`_limits{u64#120, `u64?#119`}(`%`_u64{i#5010}(n_2), ?())) + rule eps{C : context, n_1 : n, n_2 : n}: + `%|-%<:%`(C, `[%..%]`_limits(`%`_u64(n_1), ?()), `[%..%]`_limits(`%`_u64(n_2), ?())) -- if (n_1 >= n_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec @@ -114773,28 +90024,28 @@ relation Tagtype_sub: `%|-%<:%`(context, tagtype, tagtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec relation Globaltype_sub: `%|-%<:%`(context, globaltype, globaltype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule const{C : context, `mut?#501` : mut?, valtype#277 : valtype, valtype_1 : valtype, `mut?#507` : mut?, valtype#283 : valtype, valtype_2 : valtype}: - `%|-%<:%`(C, `%%`_globaltype{`mut?#501`, valtype#277}(?(), valtype_1), `%%`_globaltype{`mut?#507`, valtype#283}(?(), valtype_2)) + rule const{C : context, valtype_1 : valtype, valtype_2 : valtype}: + `%|-%<:%`(C, `%%`_globaltype(?(), valtype_1), `%%`_globaltype(?(), valtype_2)) -- Valtype_sub: `%|-%<:%`(C, valtype_1, valtype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule var{C : context, `mut?#519` : mut?, valtype#295 : valtype, valtype_1 : valtype, `mut?#531` : mut?, valtype#307 : valtype, valtype_2 : valtype}: - `%|-%<:%`(C, `%%`_globaltype{`mut?#519`, valtype#295}(?(`MUT`_mut), valtype_1), `%%`_globaltype{`mut?#531`, valtype#307}(?(`MUT`_mut), valtype_2)) + rule var{C : context, valtype_1 : valtype, valtype_2 : valtype}: + `%|-%<:%`(C, `%%`_globaltype(?(`MUT`_mut), valtype_1), `%%`_globaltype(?(`MUT`_mut), valtype_2)) -- Valtype_sub: `%|-%<:%`(C, valtype_1, valtype_2) -- Valtype_sub: `%|-%<:%`(C, valtype_2, valtype_1) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec relation Memtype_sub: `%|-%<:%`(context, memtype, memtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule _{C : context, addrtype#345 : addrtype, limits#345 : limits, addrtype : addrtype, limits_1 : limits, addrtype#357 : addrtype, limits#357 : limits, limits_2 : limits}: - `%|-%<:%`(C, `%%PAGE`_memtype{addrtype#345, limits#345}(addrtype, limits_1), `%%PAGE`_memtype{addrtype#357, limits#357}(addrtype, limits_2)) + rule _{C : context, addrtype : addrtype, limits_1 : limits, limits_2 : limits}: + `%|-%<:%`(C, `%%PAGE`_memtype(addrtype, limits_1), `%%PAGE`_memtype(addrtype, limits_2)) -- Limits_sub: `%|-%<:%`(C, limits_1, limits_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec relation Tabletype_sub: `%|-%<:%`(context, tabletype, tabletype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule _{C : context, addrtype#369 : addrtype, limits#369 : limits, reftype#335 : reftype, addrtype : addrtype, limits_1 : limits, reftype_1 : reftype, addrtype#381 : addrtype, limits#381 : limits, reftype#347 : reftype, limits_2 : limits, reftype_2 : reftype}: - `%|-%<:%`(C, `%%%`_tabletype{addrtype#369, limits#369, reftype#335}(addrtype, limits_1, reftype_1), `%%%`_tabletype{addrtype#381, limits#381, reftype#347}(addrtype, limits_2, reftype_2)) + rule _{C : context, addrtype : addrtype, limits_1 : limits, reftype_1 : reftype, limits_2 : limits, reftype_2 : reftype}: + `%|-%<:%`(C, `%%%`_tabletype(addrtype, limits_1, reftype_1), `%%%`_tabletype(addrtype, limits_2, reftype_2)) -- Limits_sub: `%|-%<:%`(C, limits_1, limits_2) -- Reftype_sub: `%|-%<:%`(C, reftype_1, reftype_2) -- Reftype_sub: `%|-%<:%`(C, reftype_2, reftype_1) @@ -114802,78 +90053,78 @@ relation Tabletype_sub: `%|-%<:%`(context, tabletype, tabletype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec relation Externtype_sub: `%|-%<:%`(context, externtype, externtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule tag{C : context, tagtype#91 : tagtype, tagtype_1 : tagtype, tagtype#93 : tagtype, tagtype_2 : tagtype}: - `%|-%<:%`(C, `TAG`_externtype{tagtype#91}(tagtype_1), `TAG`_externtype{tagtype#93}(tagtype_2)) + rule tag{C : context, tagtype_1 : tagtype, tagtype_2 : tagtype}: + `%|-%<:%`(C, `TAG`_externtype(tagtype_1), `TAG`_externtype(tagtype_2)) -- Tagtype_sub: `%|-%<:%`(C, tagtype_1, tagtype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule global{C : context, globaltype#103 : globaltype, globaltype_1 : globaltype, globaltype#105 : globaltype, globaltype_2 : globaltype}: - `%|-%<:%`(C, `GLOBAL`_externtype{globaltype#103}(globaltype_1), `GLOBAL`_externtype{globaltype#105}(globaltype_2)) + rule global{C : context, globaltype_1 : globaltype, globaltype_2 : globaltype}: + `%|-%<:%`(C, `GLOBAL`_externtype(globaltype_1), `GLOBAL`_externtype(globaltype_2)) -- Globaltype_sub: `%|-%<:%`(C, globaltype_1, globaltype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule mem{C : context, memtype#115 : memtype, memtype_1 : memtype, memtype#117 : memtype, memtype_2 : memtype}: - `%|-%<:%`(C, `MEM`_externtype{memtype#115}(memtype_1), `MEM`_externtype{memtype#117}(memtype_2)) + rule mem{C : context, memtype_1 : memtype, memtype_2 : memtype}: + `%|-%<:%`(C, `MEM`_externtype(memtype_1), `MEM`_externtype(memtype_2)) -- Memtype_sub: `%|-%<:%`(C, memtype_1, memtype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule table{C : context, tabletype#129 : tabletype, tabletype_1 : tabletype, tabletype#131 : tabletype, tabletype_2 : tabletype}: - `%|-%<:%`(C, `TABLE`_externtype{tabletype#129}(tabletype_1), `TABLE`_externtype{tabletype#131}(tabletype_2)) + rule table{C : context, tabletype_1 : tabletype, tabletype_2 : tabletype}: + `%|-%<:%`(C, `TABLE`_externtype(tabletype_1), `TABLE`_externtype(tabletype_2)) -- Tabletype_sub: `%|-%<:%`(C, tabletype_1, tabletype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec - rule func{C : context, typeuse#19 : typeuse, deftype_1 : deftype, typeuse#21 : typeuse, deftype_2 : deftype}: - `%|-%<:%`(C, `FUNC`_externtype{typeuse#19}((deftype_1 : deftype <: typeuse)), `FUNC`_externtype{typeuse#21}((deftype_2 : deftype <: typeuse))) + rule func{C : context, deftype_1 : deftype, deftype_2 : deftype}: + `%|-%<:%`(C, `FUNC`_externtype((deftype_1 : deftype <: typeuse)), `FUNC`_externtype((deftype_2 : deftype <: typeuse))) -- Deftype_sub: `%|-%<:%`(C, deftype_1, deftype_2) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Blocktype_ok: `%|-%:%`(context, blocktype, instrtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule valtype{C : context, `valtype?#3` : valtype?, `valtype?` : valtype?, resulttype#225 : resulttype, `localidx*#155` : localidx*, `X*#1681` : valtype*, `X*#1730` : valtype*}: - `%|-%:%`(C, `_RESULT`_blocktype{`valtype?#3`}(valtype?{valtype <- `valtype?`}), `%->_%%`_instrtype{resulttype#225, `localidx*#155`}(`%`_resulttype{`X*#1681`}([]), [], `%`_resulttype{`X*#1730`}(lift(valtype?{valtype <- `valtype?`})))) + rule valtype{C : context, `valtype?` : valtype?}: + `%|-%:%`(C, `_RESULT`_blocktype(valtype?{valtype <- `valtype?`}), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(valtype?{valtype <- `valtype?`})))) -- (Valtype_ok: `%|-%:OK`(C, valtype))?{valtype <- `valtype?`} ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule typeidx{C : context, typeidx#392 : typeidx, typeidx : typeidx, resulttype#245 : resulttype, `localidx*#167` : localidx*, `X*#1741` : valtype*, `t_1*` : valtype*, `X*#1792` : valtype*, `t_2*` : valtype*, `deftype*#19` : deftype*, i#5032 : nat, resulttype#248 : resulttype, `X*#1805` : valtype*, `X*#1818` : valtype*}: - `%|-%:%`(C, `_IDX`_blocktype{typeidx#392}(typeidx), `%->_%%`_instrtype{resulttype#245, `localidx*#167`}(`%`_resulttype{`X*#1741`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1792`}(t_2*{t_2 <- `t_2*`}))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#19`}[typeidx!`%`_typeidx{i#5032}.0], `FUNC%->%`_comptype{resulttype#248}(`%`_resulttype{`X*#1805`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#1818`}(t_2*{t_2 <- `t_2*`}))) + rule typeidx{C : context, typeidx : typeidx, `t_1*` : valtype*, `t_2*` : valtype*}: + `%|-%:%`(C, `_IDX`_blocktype(typeidx), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Expand: `%~~%`(C.`TYPES`_context[typeidx!`%`_typeidx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Catch_ok: `%|-%:OK`(context, catch) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule catch{C : context, tagidx#5 : tagidx, labelidx#29 : labelidx, x : idx, l : labelidx, `tagtype*#8` : tagtype*, i#5946 : nat, resulttype#1012 : resulttype, `X*#5029` : valtype*, `t*` : valtype*, `X*#5052` : valtype*, `X*#5063` : valtype*, `resulttype*#18` : resulttype*, i#5956 : nat}: - `%|-%:OK`(C, `CATCH`_catch{tagidx#5, labelidx#29}(x, l)) - -- Expand: `%~~%`($as_deftype(C.`TAGS`_context{`tagtype*#8`}[x!`%`_idx{i#5946}.0]), `FUNC%->%`_comptype{resulttype#1012}(`%`_resulttype{`X*#5029`}(t*{t <- `t*`}), `%`_resulttype{`X*#5052`}([]))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#5063`}(t*{t <- `t*`}), C.`LABELS`_context{`resulttype*#18`}[l!`%`_labelidx{i#5956}.0]) + rule catch{C : context, x : idx, l : labelidx, `t*` : valtype*}: + `%|-%:OK`(C, `CATCH`_catch(x, l)) + -- Expand: `%~~%`($as_deftype(C.`TAGS`_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`}), C.`LABELS`_context[l!`%`_labelidx.0]) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule catch_ref{C : context, tagidx#7 : tagidx, labelidx#31 : labelidx, x : idx, l : labelidx, `tagtype*#9` : tagtype*, i#5992 : nat, resulttype#1015 : resulttype, `X*#5088` : valtype*, `t*` : valtype*, `X*#5111` : valtype*, `X*#5132` : valtype*, `null?#717` : null?, heaptype#719 : heaptype, `resulttype*#19` : resulttype*, i#6002 : nat}: - `%|-%:OK`(C, `CATCH_REF`_catch{tagidx#7, labelidx#31}(x, l)) - -- Expand: `%~~%`($as_deftype(C.`TAGS`_context{`tagtype*#9`}[x!`%`_idx{i#5992}.0]), `FUNC%->%`_comptype{resulttype#1015}(`%`_resulttype{`X*#5088`}(t*{t <- `t*`}), `%`_resulttype{`X*#5111`}([]))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#5132`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#717`, heaptype#719}(?(), `EXN`_heaptype)]), C.`LABELS`_context{`resulttype*#19`}[l!`%`_labelidx{i#6002}.0]) + rule catch_ref{C : context, x : idx, l : labelidx, `t*` : valtype*}: + `%|-%:OK`(C, `CATCH_REF`_catch(x, l)) + -- Expand: `%~~%`($as_deftype(C.`TAGS`_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), `EXN`_heaptype)]), C.`LABELS`_context[l!`%`_labelidx.0]) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule catch_all{C : context, labelidx#33 : labelidx, l : labelidx, `X*#5163` : valtype*, `resulttype*#20` : resulttype*, i#6024 : nat}: - `%|-%:OK`(C, `CATCH_ALL`_catch{labelidx#33}(l)) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#5163`}([]), C.`LABELS`_context{`resulttype*#20`}[l!`%`_labelidx{i#6024}.0]) + rule catch_all{C : context, l : labelidx}: + `%|-%:OK`(C, `CATCH_ALL`_catch(l)) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype([]), C.`LABELS`_context[l!`%`_labelidx.0]) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule catch_all_ref{C : context, labelidx#35 : labelidx, l : labelidx, `X*#5194` : valtype*, `null?#719` : null?, heaptype#721 : heaptype, `resulttype*#21` : resulttype*, i#6046 : nat}: - `%|-%:OK`(C, `CATCH_ALL_REF`_catch{labelidx#35}(l)) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#5194`}([`REF`_valtype{`null?#719`, heaptype#721}(?(), `EXN`_heaptype)]), C.`LABELS`_context{`resulttype*#21`}[l!`%`_labelidx{i#6046}.0]) + rule catch_all_ref{C : context, l : labelidx}: + `%|-%:OK`(C, `CATCH_ALL_REF`_catch(l)) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype([`REF`_valtype(?(), `EXN`_heaptype)]), C.`LABELS`_context[l!`%`_labelidx.0]) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec def $default_(valtype : valtype) : val? ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Inn : Inn, numtype#37 : numtype, i#31659 : nat}((Inn : Inn <: valtype)) = ?(`CONST`_val{numtype#37}((Inn : Inn <: numtype), `%`_num_{i#31659}(0))) + def $default_{Inn : Inn}((Inn : Inn <: valtype)) = ?(`CONST`_val((Inn : Inn <: numtype), `%`_num_(0))) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Fnn : Fnn, numtype#39 : numtype}((Fnn : Fnn <: valtype)) = ?(`CONST`_val{numtype#39}((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))) + def $default_{Fnn : Fnn}((Fnn : Fnn <: valtype)) = ?(`CONST`_val((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Vnn : Vnn, vectype#42 : vectype, i#31681 : nat}((Vnn : Vnn <: valtype)) = ?(`VCONST`_val{vectype#42}(Vnn, `%`_vec_{i#31681}(0))) + def $default_{Vnn : Vnn}((Vnn : Vnn <: valtype)) = ?(`VCONST`_val(Vnn, `%`_vec_(0))) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{`null?#1037` : null?, heaptype#1043 : heaptype, ht : heaptype, heaptype#1045 : heaptype}(`REF`_valtype{`null?#1037`, heaptype#1043}(?(`NULL`_null), ht)) = ?(`REF.NULL`_val{heaptype#1045}(ht)) + def $default_{ht : heaptype}(`REF`_valtype(?(`NULL`_null), ht)) = ?(`REF.NULL`_val(ht)) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{`null?#1039` : null?, heaptype#1047 : heaptype, ht : heaptype}(`REF`_valtype{`null?#1039`, heaptype#1047}(?(), ht)) = ?() + def $default_{ht : heaptype}(`REF`_valtype(?(), ht)) = ?() ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Defaultable: `|-%DEFAULTABLE`(valtype) @@ -114885,8 +90136,8 @@ relation Defaultable: `|-%DEFAULTABLE`(valtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Memarg_ok: `|-%:%->%`(memarg, addrtype, N) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule _{u32#14 : u32, i#7729 : nat, n : n, u64#230 : u64, i#7751 : nat, m : m, at : addrtype, N : N}: - `|-%:%->%`({`ALIGN`{u32#14} `%`_u32{i#7729}(n), `OFFSET`{u64#230} `%`_u64{i#7751}(m)}, at, N) + rule _{n : n, m : m, at : addrtype, N : N}: + `|-%:%->%`({`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)}, at, N) -- if (((2 ^ n) : nat <:> rat) <= ((N : nat <:> rat) / (8 : nat <:> rat))) -- if (m < (2 ^ $size((at : addrtype <: numtype)))) @@ -114901,610 +90152,610 @@ rec { ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:5.1-5.95 relation Instr_ok: `%|-%:%`(context, instr, instrtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:18.1-19.24 - rule nop{C : context, resulttype#105 : resulttype, `localidx*#83` : localidx*, `X*#1268` : valtype*, `X*#1317` : valtype*}: - `%|-%:%`(C, `NOP`_instr, `%->_%%`_instrtype{resulttype#105, `localidx*#83`}(`%`_resulttype{`X*#1268`}([]), [], `%`_resulttype{`X*#1317`}([]))) + rule nop{C : context}: + `%|-%:%`(C, `NOP`_instr, `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:21.1-23.42 - rule unreachable{C : context, resulttype#125 : resulttype, `localidx*#95` : localidx*, `X*#1328` : valtype*, `t_1*` : valtype*, `X*#1379` : valtype*, `t_2*` : valtype*, resulttype#145 : resulttype, `localidx*#107` : localidx*, `X*#1390` : valtype*, `X*#1441` : valtype*}: - `%|-%:%`(C, `UNREACHABLE`_instr, `%->_%%`_instrtype{resulttype#125, `localidx*#95`}(`%`_resulttype{`X*#1328`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1379`}(t_2*{t_2 <- `t_2*`}))) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#145, `localidx*#107`}(`%`_resulttype{`X*#1390`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1441`}(t_2*{t_2 <- `t_2*`}))) + rule unreachable{C : context, `t_1*` : valtype*, `t_2*` : valtype*}: + `%|-%:%`(C, `UNREACHABLE`_instr, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:25.1-27.29 - rule drop{C : context, resulttype#165 : resulttype, `localidx*#119` : localidx*, `X*#1452` : valtype*, t : valtype, `X*#1520` : valtype*}: - `%|-%:%`(C, `DROP`_instr, `%->_%%`_instrtype{resulttype#165, `localidx*#119`}(`%`_resulttype{`X*#1452`}([t]), [], `%`_resulttype{`X*#1520`}([]))) + rule drop{C : context, t : valtype}: + `%|-%:%`(C, `DROP`_instr, `%->_%%`_instrtype(`%`_resulttype([t]), [], `%`_resulttype([]))) -- Valtype_ok: `%|-%:OK`(C, t) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:29.1-31.29 - rule `select-expl`{C : context, `valtype*?#3` : valtype*?, t : valtype, resulttype#185 : resulttype, `localidx*#131` : localidx*, `X*#1541` : valtype*, `X*#1590` : valtype*}: - `%|-%:%`(C, `SELECT`_instr{`valtype*?#3`}(?([t])), `%->_%%`_instrtype{resulttype#185, `localidx*#131`}(`%`_resulttype{`X*#1541`}([t t `I32`_valtype]), [], `%`_resulttype{`X*#1590`}([t]))) + rule `select-expl`{C : context, t : valtype}: + `%|-%:%`(C, `SELECT`_instr(?([t])), `%->_%%`_instrtype(`%`_resulttype([t t `I32`_valtype]), [], `%`_resulttype([t]))) -- Valtype_ok: `%|-%:OK`(C, t) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:33.1-37.37 - rule `select-impl`{C : context, `valtype*?#5` : valtype*?, resulttype#205 : resulttype, `localidx*#143` : localidx*, `X*#1611` : valtype*, t : valtype, `X*#1660` : valtype*, t' : valtype, numtype : numtype, vectype : vectype}: - `%|-%:%`(C, `SELECT`_instr{`valtype*?#5`}(?()), `%->_%%`_instrtype{resulttype#205, `localidx*#143`}(`%`_resulttype{`X*#1611`}([t t `I32`_valtype]), [], `%`_resulttype{`X*#1660`}([t]))) + rule `select-impl`{C : context, t : valtype, t' : valtype, numtype : numtype, vectype : vectype}: + `%|-%:%`(C, `SELECT`_instr(?()), `%->_%%`_instrtype(`%`_resulttype([t t `I32`_valtype]), [], `%`_resulttype([t]))) -- Valtype_ok: `%|-%:OK`(C, t) -- Valtype_sub: `%|-%<:%`(C, t, t') -- if ((t' = (numtype : numtype <: valtype)) \/ (t' = (vectype : vectype <: valtype))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:53.1-56.67 - rule block{C : context, blocktype#7 : blocktype, `instr*#8` : instr*, bt : blocktype, `instr*` : instr*, resulttype#268 : resulttype, `localidx*#179` : localidx*, `X*#1831` : valtype*, `t_1*` : valtype*, `X*#1882` : valtype*, `t_2*` : valtype*, resulttype#288 : resulttype, `localidx*#191` : localidx*, `X*#1893` : valtype*, `X*#1944` : valtype*, `deftype*#20` : deftype*, `subtype*#5` : subtype*, `tagtype*#2` : tagtype*, `globaltype*#2` : globaltype*, `memtype*#2` : memtype*, `tabletype*#2` : tabletype*, `deftype*#21` : deftype*, `datatype*#2` : datatype*, `elemtype*#2` : elemtype*, `localtype*#5` : localtype*, `resulttype*#2` : resulttype*, `X*#1955` : valtype*, `resulttype?#2` : resulttype?, `funcidx*#40` : funcidx*, resulttype#308 : resulttype, `localidx*#203` : localidx*, `X*#1968` : valtype*, `x*` : idx*, `X*#2020` : valtype*}: - `%|-%:%`(C, `BLOCK`_instr{blocktype#7, `instr*#8`}(bt, instr*{instr <- `instr*`}), `%->_%%`_instrtype{resulttype#268, `localidx*#179`}(`%`_resulttype{`X*#1831`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1882`}(t_2*{t_2 <- `t_2*`}))) - -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype{resulttype#288, `localidx*#191`}(`%`_resulttype{`X*#1893`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#1944`}(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({`TYPES`{`deftype*#20`} [], `RECS`{`subtype*#5`} [], `TAGS`{`tagtype*#2`} [], `GLOBALS`{`globaltype*#2`} [], `MEMS`{`memtype*#2`} [], `TABLES`{`tabletype*#2`} [], `FUNCS`{`deftype*#21`} [], `DATAS`{`datatype*#2`} [], `ELEMS`{`elemtype*#2`} [], `LOCALS`{`localtype*#5`} [], `LABELS`{`resulttype*#2`} [`%`_resulttype{`X*#1955`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#2`} ?(), `REFS`{`funcidx*#40`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#308, `localidx*#203`}(`%`_resulttype{`X*#1968`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2020`}(t_2*{t_2 <- `t_2*`}))) + rule block{C : context, bt : blocktype, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, `x*` : idx*}: + `%|-%:%`(C, `BLOCK`_instr(bt, instr*{instr <- `instr*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:58.1-61.67 - rule loop{C : context, blocktype#9 : blocktype, `instr*#10` : instr*, bt : blocktype, `instr*` : instr*, resulttype#328 : resulttype, `localidx*#215` : localidx*, `X*#2033` : valtype*, `t_1*` : valtype*, `X*#2084` : valtype*, `t_2*` : valtype*, resulttype#348 : resulttype, `localidx*#227` : localidx*, `X*#2095` : valtype*, `X*#2146` : valtype*, `deftype*#22` : deftype*, `subtype*#6` : subtype*, `tagtype*#3` : tagtype*, `globaltype*#3` : globaltype*, `memtype*#3` : memtype*, `tabletype*#3` : tabletype*, `deftype*#23` : deftype*, `datatype*#3` : datatype*, `elemtype*#3` : elemtype*, `localtype*#6` : localtype*, `resulttype*#3` : resulttype*, `X*#2157` : valtype*, `resulttype?#3` : resulttype?, `funcidx*#41` : funcidx*, resulttype#368 : resulttype, `localidx*#239` : localidx*, `X*#2170` : valtype*, `x*` : idx*, `X*#2222` : valtype*}: - `%|-%:%`(C, `LOOP`_instr{blocktype#9, `instr*#10`}(bt, instr*{instr <- `instr*`}), `%->_%%`_instrtype{resulttype#328, `localidx*#215`}(`%`_resulttype{`X*#2033`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2084`}(t_2*{t_2 <- `t_2*`}))) - -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype{resulttype#348, `localidx*#227`}(`%`_resulttype{`X*#2095`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2146`}(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({`TYPES`{`deftype*#22`} [], `RECS`{`subtype*#6`} [], `TAGS`{`tagtype*#3`} [], `GLOBALS`{`globaltype*#3`} [], `MEMS`{`memtype*#3`} [], `TABLES`{`tabletype*#3`} [], `FUNCS`{`deftype*#23`} [], `DATAS`{`datatype*#3`} [], `ELEMS`{`elemtype*#3`} [], `LOCALS`{`localtype*#6`} [], `LABELS`{`resulttype*#3`} [`%`_resulttype{`X*#2157`}(t_1*{t_1 <- `t_1*`})], `RETURN`{`resulttype?#3`} ?(), `REFS`{`funcidx*#41`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#368, `localidx*#239`}(`%`_resulttype{`X*#2170`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#2222`}(t_2*{t_2 <- `t_2*`}))) + rule loop{C : context, bt : blocktype, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, `x*` : idx*}: + `%|-%:%`(C, `LOOP`_instr(bt, instr*{instr <- `instr*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_1*{t_1 <- `t_1*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:63.1-67.71 - rule if{C : context, blocktype#11 : blocktype, `instr*#12` : instr*, bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*, resulttype#388 : resulttype, `localidx*#251` : localidx*, `X*#2245` : valtype*, `t_1*` : valtype*, `X*#2294` : valtype*, `t_2*` : valtype*, resulttype#408 : resulttype, `localidx*#263` : localidx*, `X*#2305` : valtype*, `X*#2356` : valtype*, `deftype*#24` : deftype*, `subtype*#7` : subtype*, `tagtype*#4` : tagtype*, `globaltype*#4` : globaltype*, `memtype*#4` : memtype*, `tabletype*#4` : tabletype*, `deftype*#25` : deftype*, `datatype*#4` : datatype*, `elemtype*#4` : elemtype*, `localtype*#7` : localtype*, `resulttype*#4` : resulttype*, `X*#2367` : valtype*, `resulttype?#4` : resulttype?, `funcidx*#42` : funcidx*, resulttype#428 : resulttype, `localidx*#275` : localidx*, `X*#2380` : valtype*, `x_1*` : idx*, `X*#2432` : valtype*, `deftype*#26` : deftype*, `subtype*#8` : subtype*, `tagtype*#5` : tagtype*, `globaltype*#5` : globaltype*, `memtype*#5` : memtype*, `tabletype*#5` : tabletype*, `deftype*#27` : deftype*, `datatype*#5` : datatype*, `elemtype*#5` : elemtype*, `localtype*#8` : localtype*, `resulttype*#5` : resulttype*, `X*#2445` : valtype*, `resulttype?#5` : resulttype?, `funcidx*#43` : funcidx*, resulttype#448 : resulttype, `localidx*#287` : localidx*, `X*#2458` : valtype*, `x_2*` : idx*, `X*#2510` : valtype*}: - `%|-%:%`(C, `IF%%ELSE%`_instr{blocktype#11, `instr*#12`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`}), `%->_%%`_instrtype{resulttype#388, `localidx*#251`}(`%`_resulttype{`X*#2245`}(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2294`}(t_2*{t_2 <- `t_2*`}))) - -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype{resulttype#408, `localidx*#263`}(`%`_resulttype{`X*#2305`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2356`}(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({`TYPES`{`deftype*#24`} [], `RECS`{`subtype*#7`} [], `TAGS`{`tagtype*#4`} [], `GLOBALS`{`globaltype*#4`} [], `MEMS`{`memtype*#4`} [], `TABLES`{`tabletype*#4`} [], `FUNCS`{`deftype*#25`} [], `DATAS`{`datatype*#4`} [], `ELEMS`{`elemtype*#4`} [], `LOCALS`{`localtype*#7`} [], `LABELS`{`resulttype*#4`} [`%`_resulttype{`X*#2367`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#4`} ?(), `REFS`{`funcidx*#42`} []} +++ C, instr_1*{instr_1 <- `instr_1*`}, `%->_%%`_instrtype{resulttype#428, `localidx*#275`}(`%`_resulttype{`X*#2380`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#2432`}(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({`TYPES`{`deftype*#26`} [], `RECS`{`subtype*#8`} [], `TAGS`{`tagtype*#5`} [], `GLOBALS`{`globaltype*#5`} [], `MEMS`{`memtype*#5`} [], `TABLES`{`tabletype*#5`} [], `FUNCS`{`deftype*#27`} [], `DATAS`{`datatype*#5`} [], `ELEMS`{`elemtype*#5`} [], `LOCALS`{`localtype*#8`} [], `LABELS`{`resulttype*#5`} [`%`_resulttype{`X*#2445`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#5`} ?(), `REFS`{`funcidx*#43`} []} +++ C, instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype{resulttype#448, `localidx*#287`}(`%`_resulttype{`X*#2458`}(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#2510`}(t_2*{t_2 <- `t_2*`}))) + rule if{C : context, bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, `x_1*` : idx*, `x_2*` : idx*}: + `%|-%:%`(C, `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr_1*{instr_1 <- `instr_1*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:72.1-75.42 - rule br{C : context, labelidx#15 : labelidx, l : labelidx, resulttype#468 : resulttype, `localidx*#299` : localidx*, `X*#2533` : valtype*, `t_1*` : valtype*, `t*` : valtype*, `X*#2582` : valtype*, `t_2*` : valtype*, `resulttype*#7` : resulttype*, i#5368 : nat, `X*#2627` : valtype*, resulttype#488 : resulttype, `localidx*#311` : localidx*, `X*#2637` : valtype*, `X*#2688` : valtype*}: - `%|-%:%`(C, `BR`_instr{labelidx#15}(l), `%->_%%`_instrtype{resulttype#468, `localidx*#299`}(`%`_resulttype{`X*#2533`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#2582`}(t_2*{t_2 <- `t_2*`}))) - -- if (C.`LABELS`_context{`resulttype*#7`}[l!`%`_labelidx{i#5368}.0]!`%`_resulttype{`X*#2627`}.0 = t*{t <- `t*`}) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#488, `localidx*#311`}(`%`_resulttype{`X*#2637`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#2688`}(t_2*{t_2 <- `t_2*`}))) + rule br{C : context, l : labelidx, `t_1*` : valtype*, `t*` : valtype*, `t_2*` : valtype*}: + `%|-%:%`(C, `BR`_instr(l), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- if (C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`}) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:77.1-79.25 - rule br_if{C : context, labelidx#17 : labelidx, l : labelidx, resulttype#508 : resulttype, `localidx*#323` : localidx*, `X*#2709` : valtype*, `t*` : valtype*, `X*#2758` : valtype*, `resulttype*#9` : resulttype*, i#5400 : nat, `X*#2803` : valtype*}: - `%|-%:%`(C, `BR_IF`_instr{labelidx#17}(l), `%->_%%`_instrtype{resulttype#508, `localidx*#323`}(`%`_resulttype{`X*#2709`}(t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2758`}(t*{t <- `t*`}))) - -- if (C.`LABELS`_context{`resulttype*#9`}[l!`%`_labelidx{i#5400}.0]!`%`_resulttype{`X*#2803`}.0 = t*{t <- `t*`}) + rule br_if{C : context, l : labelidx, `t*` : valtype*}: + `%|-%:%`(C, `BR_IF`_instr(l), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t*{t <- `t*`}))) + -- if (C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`}) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:81.1-85.49 - rule br_table{C : context, `labelidx*#48` : labelidx*, labelidx#19 : labelidx, `l*` : labelidx*, l' : labelidx, resulttype#528 : resulttype, `localidx*#335` : localidx*, `X*#2823` : valtype*, `t_1*` : valtype*, `t*` : valtype*, `X*#2872` : valtype*, `t_2*` : valtype*, `X*#2883*` : valtype**, `i#5482*` : nat*, `resulttype*#10*` : resulttype**, `X*#2906` : valtype*, `resulttype*#11` : resulttype*, i#5492 : nat, resulttype#548 : resulttype, `localidx*#347` : localidx*, `X*#2939` : valtype*, `X*#2988` : valtype*}: - `%|-%:%`(C, `BR_TABLE`_instr{`labelidx*#48`, labelidx#19}(l*{l <- `l*`}, l'), `%->_%%`_instrtype{resulttype#528, `localidx*#335`}(`%`_resulttype{`X*#2823`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2872`}(t_2*{t_2 <- `t_2*`}))) - -- (Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#2883`}(t*{t <- `t*`}), C.`LABELS`_context{`resulttype*#10`}[l!`%`_labelidx{i#5482}.0]))*{`X*#2883` <- `X*#2883*`, i#5482 <- `i#5482*`, l <- `l*`, `resulttype*#10` <- `resulttype*#10*`} - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#2906`}(t*{t <- `t*`}), C.`LABELS`_context{`resulttype*#11`}[l'!`%`_labelidx{i#5492}.0]) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#548, `localidx*#347`}(`%`_resulttype{`X*#2939`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype{`X*#2988`}(t_2*{t_2 <- `t_2*`}))) + rule br_table{C : context, `l*` : labelidx*, l' : labelidx, `t_1*` : valtype*, `t*` : valtype*, `t_2*` : valtype*}: + `%|-%:%`(C, `BR_TABLE`_instr(l*{l <- `l*`}, l'), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- (Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`}), C.`LABELS`_context[l!`%`_labelidx.0]))*{l <- `l*`} + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`}), C.`LABELS`_context[l'!`%`_labelidx.0]) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:87.1-90.31 - rule br_on_null{C : context, labelidx#21 : labelidx, l : labelidx, resulttype#568 : resulttype, `localidx*#359` : localidx*, `X*#3009` : valtype*, `t*` : valtype*, `null?#535` : null?, heaptype#537 : heaptype, ht : heaptype, `X*#3058` : valtype*, `null?#537` : null?, heaptype#539 : heaptype, `resulttype*#13` : resulttype*, i#5524 : nat, `X*#3103` : valtype*}: - `%|-%:%`(C, `BR_ON_NULL`_instr{labelidx#21}(l), `%->_%%`_instrtype{resulttype#568, `localidx*#359`}(`%`_resulttype{`X*#3009`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#535`, heaptype#537}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#3058`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#537`, heaptype#539}(?(), ht)]))) - -- if (C.`LABELS`_context{`resulttype*#13`}[l!`%`_labelidx{i#5524}.0]!`%`_resulttype{`X*#3103`}.0 = t*{t <- `t*`}) + rule br_on_null{C : context, l : labelidx, `t*` : valtype*, ht : heaptype}: + `%|-%:%`(C, `BR_ON_NULL`_instr(l), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), ht)]))) + -- if (C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`}) -- Heaptype_ok: `%|-%:OK`(C, ht) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:92.1-94.40 - rule br_on_non_null{C : context, labelidx#23 : labelidx, l : labelidx, resulttype#588 : resulttype, `localidx*#371` : localidx*, `X*#3123` : valtype*, `t*` : valtype*, `null?#539` : null?, heaptype#541 : heaptype, ht : heaptype, `X*#3172` : valtype*, `resulttype*#14` : resulttype*, i#5546 : nat, `X*#3193` : valtype*, `null?#541` : null?, heaptype#543 : heaptype}: - `%|-%:%`(C, `BR_ON_NON_NULL`_instr{labelidx#23}(l), `%->_%%`_instrtype{resulttype#588, `localidx*#371`}(`%`_resulttype{`X*#3123`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#539`, heaptype#541}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#3172`}(t*{t <- `t*`}))) - -- if (C.`LABELS`_context{`resulttype*#14`}[l!`%`_labelidx{i#5546}.0] = `%`_resulttype{`X*#3193`}(t*{t <- `t*`} ++ [`REF`_valtype{`null?#541`, heaptype#543}(`NULL`_null?{}, ht)])) + rule br_on_non_null{C : context, l : labelidx, `t*` : valtype*, ht : heaptype}: + `%|-%:%`(C, `BR_ON_NON_NULL`_instr(l), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype(t*{t <- `t*`}))) + -- if (C.`LABELS`_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(`NULL`_null?{}, ht)])) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:96.1-102.34 - rule br_on_cast{C : context, labelidx#25 : labelidx, reftype#373 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype, resulttype#608 : resulttype, `localidx*#383` : localidx*, `X*#3214` : valtype*, `t*` : valtype*, `X*#3263` : valtype*, `resulttype*#15` : resulttype*, i#5568 : nat, `X*#3284` : valtype*, rt : reftype}: - `%|-%:%`(C, `BR_ON_CAST`_instr{labelidx#25, reftype#373}(l, rt_1, rt_2), `%->_%%`_instrtype{resulttype#608, `localidx*#383`}(`%`_resulttype{`X*#3214`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype{`X*#3263`}(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))) - -- if (C.`LABELS`_context{`resulttype*#15`}[l!`%`_labelidx{i#5568}.0] = `%`_resulttype{`X*#3284`}(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])) + rule br_on_cast{C : context, l : labelidx, rt_1 : reftype, rt_2 : reftype, `t*` : valtype*, rt : reftype}: + `%|-%:%`(C, `BR_ON_CAST`_instr(l, rt_1, rt_2), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))) + -- if (C.`LABELS`_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])) -- Reftype_ok: `%|-%:OK`(C, rt_1) -- Reftype_ok: `%|-%:OK`(C, rt_2) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt_1) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:104.1-110.49 - rule br_on_cast_fail{C : context, labelidx#27 : labelidx, reftype#376 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype, resulttype#628 : resulttype, `localidx*#395` : localidx*, `X*#3305` : valtype*, `t*` : valtype*, `X*#3354` : valtype*, `resulttype*#16` : resulttype*, i#5590 : nat, `X*#3375` : valtype*, rt : reftype}: - `%|-%:%`(C, `BR_ON_CAST_FAIL`_instr{labelidx#27, reftype#376}(l, rt_1, rt_2), `%->_%%`_instrtype{resulttype#628, `localidx*#395`}(`%`_resulttype{`X*#3305`}(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype{`X*#3354`}(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))) - -- if (C.`LABELS`_context{`resulttype*#16`}[l!`%`_labelidx{i#5590}.0] = `%`_resulttype{`X*#3375`}(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])) + rule br_on_cast_fail{C : context, l : labelidx, rt_1 : reftype, rt_2 : reftype, `t*` : valtype*, rt : reftype}: + `%|-%:%`(C, `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))) + -- if (C.`LABELS`_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])) -- Reftype_ok: `%|-%:OK`(C, rt_1) -- Reftype_ok: `%|-%:OK`(C, rt_2) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt_1) -- Reftype_sub: `%|-%<:%`(C, $diffrt(rt_1, rt_2), rt) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:115.1-117.45 - rule call{C : context, funcidx#177 : funcidx, x : idx, resulttype#648 : resulttype, `localidx*#407` : localidx*, `X*#3386` : valtype*, `t_1*` : valtype*, `X*#3437` : valtype*, `t_2*` : valtype*, `deftype*#28` : deftype*, i#5614 : nat, resulttype#651 : resulttype, `X*#3450` : valtype*, `X*#3463` : valtype*}: - `%|-%:%`(C, `CALL`_instr{funcidx#177}(x), `%->_%%`_instrtype{resulttype#648, `localidx*#407`}(`%`_resulttype{`X*#3386`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3437`}(t_2*{t_2 <- `t_2*`}))) - -- Expand: `%~~%`(C.`FUNCS`_context{`deftype*#28`}[x!`%`_idx{i#5614}.0], `FUNC%->%`_comptype{resulttype#651}(`%`_resulttype{`X*#3450`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3463`}(t_2*{t_2 <- `t_2*`}))) + rule call{C : context, x : idx, `t_1*` : valtype*, `t_2*` : valtype*}: + `%|-%:%`(C, `CALL`_instr(x), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Expand: `%~~%`(C.`FUNCS`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:119.1-121.45 - rule call_ref{C : context, typeuse#23 : typeuse, typeidx#394 : typeidx, x : idx, resulttype#671 : resulttype, `localidx*#419` : localidx*, `X*#3486` : valtype*, `t_1*` : valtype*, `null?#663` : null?, heaptype#665 : heaptype, typeidx#396 : typeidx, `X*#3535` : valtype*, `t_2*` : valtype*, `deftype*#29` : deftype*, i#5652 : nat, resulttype#674 : resulttype, `X*#3548` : valtype*, `X*#3561` : valtype*}: - `%|-%:%`(C, `CALL_REF`_instr{typeuse#23}(`_IDX`_typeuse{typeidx#394}(x)), `%->_%%`_instrtype{resulttype#671, `localidx*#419`}(`%`_resulttype{`X*#3486`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#663`, heaptype#665}(?(`NULL`_null), `_IDX`_heaptype{typeidx#396}(x))]), [], `%`_resulttype{`X*#3535`}(t_2*{t_2 <- `t_2*`}))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#29`}[x!`%`_idx{i#5652}.0], `FUNC%->%`_comptype{resulttype#674}(`%`_resulttype{`X*#3548`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3561`}(t_2*{t_2 <- `t_2*`}))) + rule call_ref{C : context, x : idx, `t_1*` : valtype*, `t_2*` : valtype*}: + `%|-%:%`(C, `CALL_REF`_instr(`_IDX`_typeuse(x)), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:123.1-127.45 - rule call_indirect{C : context, tableidx#26 : tableidx, typeuse#25 : typeuse, x : idx, typeidx#398 : typeidx, y : idx, resulttype#694 : resulttype, `localidx*#431` : localidx*, `X*#3584` : valtype*, `t_1*` : valtype*, at : addrtype, `X*#3633` : valtype*, `t_2*` : valtype*, `tabletype*#6` : tabletype*, i#5690 : nat, addrtype#441 : addrtype, limits#441 : limits, reftype#389 : reftype, lim : limits, rt : reftype, `null?#687` : null?, heaptype#689 : heaptype, `deftype*#30` : deftype*, i#5700 : nat, resulttype#697 : resulttype, `X*#3646` : valtype*, `X*#3659` : valtype*}: - `%|-%:%`(C, `CALL_INDIRECT`_instr{tableidx#26, typeuse#25}(x, `_IDX`_typeuse{typeidx#398}(y)), `%->_%%`_instrtype{resulttype#694, `localidx*#431`}(`%`_resulttype{`X*#3584`}(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#3633`}(t_2*{t_2 <- `t_2*`}))) - -- if (C.`TABLES`_context{`tabletype*#6`}[x!`%`_idx{i#5690}.0] = `%%%`_tabletype{addrtype#441, limits#441, reftype#389}(at, lim, rt)) - -- Reftype_sub: `%|-%<:%`(C, rt, `REF`_reftype{`null?#687`, heaptype#689}(?(`NULL`_null), `FUNC`_heaptype)) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#30`}[y!`%`_idx{i#5700}.0], `FUNC%->%`_comptype{resulttype#697}(`%`_resulttype{`X*#3646`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3659`}(t_2*{t_2 <- `t_2*`}))) + rule call_indirect{C : context, x : idx, y : idx, `t_1*` : valtype*, at : addrtype, `t_2*` : valtype*, lim : limits, rt : reftype}: + `%|-%:%`(C, `CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y)), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + -- Reftype_sub: `%|-%<:%`(C, rt, `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)) + -- Expand: `%~~%`(C.`TYPES`_context[y!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:129.1-132.42 - rule return{C : context, resulttype#717 : resulttype, `localidx*#443` : localidx*, `X*#3682` : valtype*, `t_1*` : valtype*, `t*` : valtype*, `X*#3731` : valtype*, `t_2*` : valtype*, `resulttype?#8` : resulttype?, `X*#3766` : valtype*, resulttype#737 : resulttype, `localidx*#455` : localidx*, `X*#3779` : valtype*, `X*#3830` : valtype*}: - `%|-%:%`(C, `RETURN`_instr, `%->_%%`_instrtype{resulttype#717, `localidx*#443`}(`%`_resulttype{`X*#3682`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#3731`}(t_2*{t_2 <- `t_2*`}))) - -- if (C.`RETURN`_context{`resulttype?#8`} = ?(`%`_resulttype{`X*#3766`}(t*{t <- `t*`}))) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#737, `localidx*#455`}(`%`_resulttype{`X*#3779`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3830`}(t_2*{t_2 <- `t_2*`}))) + rule return{C : context, `t_1*` : valtype*, `t*` : valtype*, `t_2*` : valtype*}: + `%|-%:%`(C, `RETURN`_instr, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- if (C.`RETURN`_context = ?(`%`_resulttype(t*{t <- `t*`}))) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:135.1-140.42 - rule return_call{C : context, funcidx#179 : funcidx, x : idx, resulttype#757 : resulttype, `localidx*#467` : localidx*, `X*#3851` : valtype*, `t_3*` : valtype*, `t_1*` : valtype*, `X*#3900` : valtype*, `t_4*` : valtype*, `deftype*#31` : deftype*, i#5724 : nat, resulttype#760 : resulttype, `X*#3913` : valtype*, `X*#3926` : valtype*, `t_2*` : valtype*, `resulttype?#11` : resulttype?, `X*#3963` : valtype*, `t'_2*` : valtype*, `X*#3976` : valtype*, `X*#3989` : valtype*, resulttype#780 : resulttype, `localidx*#479` : localidx*, `X*#4002` : valtype*, `X*#4053` : valtype*}: - `%|-%:%`(C, `RETURN_CALL`_instr{funcidx#179}(x), `%->_%%`_instrtype{resulttype#757, `localidx*#467`}(`%`_resulttype{`X*#3851`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#3900`}(t_4*{t_4 <- `t_4*`}))) - -- Expand: `%~~%`(C.`FUNCS`_context{`deftype*#31`}[x!`%`_idx{i#5724}.0], `FUNC%->%`_comptype{resulttype#760}(`%`_resulttype{`X*#3913`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#3926`}(t_2*{t_2 <- `t_2*`}))) - -- if (C.`RETURN`_context{`resulttype?#11`} = ?(`%`_resulttype{`X*#3963`}(t'_2*{t'_2 <- `t'_2*`}))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#3976`}(t_2*{t_2 <- `t_2*`}), `%`_resulttype{`X*#3989`}(t'_2*{t'_2 <- `t'_2*`})) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#780, `localidx*#479`}(`%`_resulttype{`X*#4002`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4053`}(t_4*{t_4 <- `t_4*`}))) + rule return_call{C : context, x : idx, `t_3*` : valtype*, `t_1*` : valtype*, `t_4*` : valtype*, `t_2*` : valtype*, `t'_2*` : valtype*}: + `%|-%:%`(C, `RETURN_CALL`_instr(x), `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) + -- Expand: `%~~%`(C.`FUNCS`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- if (C.`RETURN`_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:143.1-148.42 - rule return_call_ref{C : context, typeuse#27 : typeuse, typeidx#400 : typeidx, x : idx, resulttype#800 : resulttype, `localidx*#491` : localidx*, `X*#4074` : valtype*, `t_3*` : valtype*, `t_1*` : valtype*, `null?#689` : null?, heaptype#691 : heaptype, typeidx#402 : typeidx, `X*#4123` : valtype*, `t_4*` : valtype*, `deftype*#32` : deftype*, i#5762 : nat, resulttype#803 : resulttype, `X*#4136` : valtype*, `X*#4149` : valtype*, `t_2*` : valtype*, `resulttype?#14` : resulttype?, `X*#4186` : valtype*, `t'_2*` : valtype*, `X*#4199` : valtype*, `X*#4212` : valtype*, resulttype#823 : resulttype, `localidx*#503` : localidx*, `X*#4225` : valtype*, `X*#4276` : valtype*}: - `%|-%:%`(C, `RETURN_CALL_REF`_instr{typeuse#27}(`_IDX`_typeuse{typeidx#400}(x)), `%->_%%`_instrtype{resulttype#800, `localidx*#491`}(`%`_resulttype{`X*#4074`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#689`, heaptype#691}(?(`NULL`_null), `_IDX`_heaptype{typeidx#402}(x))]), [], `%`_resulttype{`X*#4123`}(t_4*{t_4 <- `t_4*`}))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#32`}[x!`%`_idx{i#5762}.0], `FUNC%->%`_comptype{resulttype#803}(`%`_resulttype{`X*#4136`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4149`}(t_2*{t_2 <- `t_2*`}))) - -- if (C.`RETURN`_context{`resulttype?#14`} = ?(`%`_resulttype{`X*#4186`}(t'_2*{t'_2 <- `t'_2*`}))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#4199`}(t_2*{t_2 <- `t_2*`}), `%`_resulttype{`X*#4212`}(t'_2*{t'_2 <- `t'_2*`})) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#823, `localidx*#503`}(`%`_resulttype{`X*#4225`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4276`}(t_4*{t_4 <- `t_4*`}))) + rule return_call_ref{C : context, x : idx, `t_3*` : valtype*, `t_1*` : valtype*, `t_4*` : valtype*, `t_2*` : valtype*, `t'_2*` : valtype*}: + `%|-%:%`(C, `RETURN_CALL_REF`_instr(`_IDX`_typeuse(x)), `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- if (C.`RETURN`_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:151.1-159.42 - rule return_call_indirect{C : context, tableidx#28 : tableidx, typeuse#29 : typeuse, x : idx, typeidx#404 : typeidx, y : idx, resulttype#843 : resulttype, `localidx*#515` : localidx*, `X*#4297` : valtype*, `t_3*` : valtype*, `t_1*` : valtype*, at : addrtype, `X*#4346` : valtype*, `t_4*` : valtype*, `tabletype*#7` : tabletype*, i#5800 : nat, addrtype#453 : addrtype, limits#453 : limits, reftype#401 : reftype, lim : limits, rt : reftype, `null?#713` : null?, heaptype#715 : heaptype, `deftype*#33` : deftype*, i#5810 : nat, resulttype#846 : resulttype, `X*#4359` : valtype*, `X*#4372` : valtype*, `t_2*` : valtype*, `resulttype?#17` : resulttype?, `X*#4409` : valtype*, `t'_2*` : valtype*, `X*#4422` : valtype*, `X*#4435` : valtype*, resulttype#866 : resulttype, `localidx*#527` : localidx*, `X*#4448` : valtype*, `X*#4499` : valtype*}: - `%|-%:%`(C, `RETURN_CALL_INDIRECT`_instr{tableidx#28, typeuse#29}(x, `_IDX`_typeuse{typeidx#404}(y)), `%->_%%`_instrtype{resulttype#843, `localidx*#515`}(`%`_resulttype{`X*#4297`}(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#4346`}(t_4*{t_4 <- `t_4*`}))) - -- if (C.`TABLES`_context{`tabletype*#7`}[x!`%`_idx{i#5800}.0] = `%%%`_tabletype{addrtype#453, limits#453, reftype#401}(at, lim, rt)) - -- Reftype_sub: `%|-%<:%`(C, rt, `REF`_reftype{`null?#713`, heaptype#715}(?(`NULL`_null), `FUNC`_heaptype)) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#33`}[y!`%`_idx{i#5810}.0], `FUNC%->%`_comptype{resulttype#846}(`%`_resulttype{`X*#4359`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#4372`}(t_2*{t_2 <- `t_2*`}))) - -- if (C.`RETURN`_context{`resulttype?#17`} = ?(`%`_resulttype{`X*#4409`}(t'_2*{t'_2 <- `t'_2*`}))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype{`X*#4422`}(t_2*{t_2 <- `t_2*`}), `%`_resulttype{`X*#4435`}(t'_2*{t'_2 <- `t'_2*`})) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#866, `localidx*#527`}(`%`_resulttype{`X*#4448`}(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype{`X*#4499`}(t_4*{t_4 <- `t_4*`}))) + rule return_call_indirect{C : context, x : idx, y : idx, `t_3*` : valtype*, `t_1*` : valtype*, at : addrtype, `t_4*` : valtype*, lim : limits, rt : reftype, `t_2*` : valtype*, `t'_2*` : valtype*}: + `%|-%:%`(C, `RETURN_CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y)), `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) + -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + -- Reftype_sub: `%|-%<:%`(C, rt, `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)) + -- Expand: `%~~%`(C.`TYPES`_context[y!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- if (C.`RETURN`_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:166.1-169.42 - rule throw{C : context, tagidx#3 : tagidx, x : idx, resulttype#886 : resulttype, `localidx*#539` : localidx*, `X*#4520` : valtype*, `t_1*` : valtype*, `t*` : valtype*, `X*#4569` : valtype*, `t_2*` : valtype*, `tagtype*#6` : tagtype*, i#5834 : nat, resulttype#889 : resulttype, `X*#4582` : valtype*, `X*#4605` : valtype*, resulttype#909 : resulttype, `localidx*#551` : localidx*, `X*#4616` : valtype*, `X*#4667` : valtype*}: - `%|-%:%`(C, `THROW`_instr{tagidx#3}(x), `%->_%%`_instrtype{resulttype#886, `localidx*#539`}(`%`_resulttype{`X*#4520`}(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype{`X*#4569`}(t_2*{t_2 <- `t_2*`}))) - -- Expand: `%~~%`($as_deftype(C.`TAGS`_context{`tagtype*#6`}[x!`%`_idx{i#5834}.0]), `FUNC%->%`_comptype{resulttype#889}(`%`_resulttype{`X*#4582`}(t*{t <- `t*`}), `%`_resulttype{`X*#4605`}([]))) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#909, `localidx*#551`}(`%`_resulttype{`X*#4616`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4667`}(t_2*{t_2 <- `t_2*`}))) + rule throw{C : context, x : idx, `t_1*` : valtype*, `t*` : valtype*, `t_2*` : valtype*}: + `%|-%:%`(C, `THROW`_instr(x), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Expand: `%~~%`($as_deftype(C.`TAGS`_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:171.1-173.42 - rule throw_ref{C : context, resulttype#929 : resulttype, `localidx*#563` : localidx*, `X*#4688` : valtype*, `t_1*` : valtype*, `null?#715` : null?, heaptype#717 : heaptype, `X*#4737` : valtype*, `t_2*` : valtype*, resulttype#949 : resulttype, `localidx*#575` : localidx*, `X*#4748` : valtype*, `X*#4799` : valtype*}: - `%|-%:%`(C, `THROW_REF`_instr, `%->_%%`_instrtype{resulttype#929, `localidx*#563`}(`%`_resulttype{`X*#4688`}(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype{`null?#715`, heaptype#717}(?(`NULL`_null), `EXN`_heaptype)]), [], `%`_resulttype{`X*#4737`}(t_2*{t_2 <- `t_2*`}))) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype{resulttype#949, `localidx*#575`}(`%`_resulttype{`X*#4748`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4799`}(t_2*{t_2 <- `t_2*`}))) + rule throw_ref{C : context, `t_1*` : valtype*, `t_2*` : valtype*}: + `%|-%:%`(C, `THROW_REF`_instr, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:175.1-179.34 - rule try_table{C : context, blocktype#13 : blocktype, `instr*#15` : instr*, bt : blocktype, `X*#4812` : catch*, `catch*` : catch*, `instr*` : instr*, resulttype#969 : resulttype, `localidx*#587` : localidx*, `X*#4825` : valtype*, `t_1*` : valtype*, `X*#4876` : valtype*, `t_2*` : valtype*, resulttype#989 : resulttype, `localidx*#599` : localidx*, `X*#4887` : valtype*, `X*#4938` : valtype*, `deftype*#34` : deftype*, `subtype*#9` : subtype*, `tagtype*#7` : tagtype*, `globaltype*#6` : globaltype*, `memtype*#6` : memtype*, `tabletype*#8` : tabletype*, `deftype*#35` : deftype*, `datatype*#6` : datatype*, `elemtype*#6` : elemtype*, `localtype*#9` : localtype*, `resulttype*#17` : resulttype*, `X*#4949` : valtype*, `resulttype?#18` : resulttype?, `funcidx*#44` : funcidx*, resulttype#1009 : resulttype, `localidx*#611` : localidx*, `X*#4962` : valtype*, `x*` : idx*, `X*#5014` : valtype*}: - `%|-%:%`(C, `TRY_TABLE`_instr{blocktype#13, `instr*#15`}(bt, `%`_list{`X*#4812`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`}), `%->_%%`_instrtype{resulttype#969, `localidx*#587`}(`%`_resulttype{`X*#4825`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4876`}(t_2*{t_2 <- `t_2*`}))) - -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype{resulttype#989, `localidx*#599`}(`%`_resulttype{`X*#4887`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#4938`}(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({`TYPES`{`deftype*#34`} [], `RECS`{`subtype*#9`} [], `TAGS`{`tagtype*#7`} [], `GLOBALS`{`globaltype*#6`} [], `MEMS`{`memtype*#6`} [], `TABLES`{`tabletype*#8`} [], `FUNCS`{`deftype*#35`} [], `DATAS`{`datatype*#6`} [], `ELEMS`{`elemtype*#6`} [], `LOCALS`{`localtype*#9`} [], `LABELS`{`resulttype*#17`} [`%`_resulttype{`X*#4949`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#18`} ?(), `REFS`{`funcidx*#44`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#1009, `localidx*#611`}(`%`_resulttype{`X*#4962`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#5014`}(t_2*{t_2 <- `t_2*`}))) + rule try_table{C : context, bt : blocktype, `catch*` : catch*, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, `x*` : idx*}: + `%|-%:%`(C, `TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- (Catch_ok: `%|-%:OK`(C, catch))*{catch <- `catch*`} ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:202.1-204.31 - rule ref.null{C : context, heaptype#723 : heaptype, ht : heaptype, resulttype#1035 : resulttype, `localidx*#623` : localidx*, `X*#5225` : valtype*, `X*#5274` : valtype*, `null?#721` : null?, heaptype#725 : heaptype}: - `%|-%:%`(C, `REF.NULL`_instr{heaptype#723}(ht), `%->_%%`_instrtype{resulttype#1035, `localidx*#623`}(`%`_resulttype{`X*#5225`}([]), [], `%`_resulttype{`X*#5274`}([`REF`_valtype{`null?#721`, heaptype#725}(?(`NULL`_null), ht)]))) + rule ref.null{C : context, ht : heaptype}: + `%|-%:%`(C, `REF.NULL`_instr(ht), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]))) -- Heaptype_ok: `%|-%:OK`(C, ht) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:206.1-209.20 - rule ref.func{C : context, funcidx#181 : funcidx, x : idx, resulttype#1055 : resulttype, `localidx*#635` : localidx*, `X*#5295` : valtype*, `X*#5344` : valtype*, `null?#723` : null?, heaptype#727 : heaptype, dt : deftype, `deftype*#36` : deftype*, i#6070 : nat, `funcidx*#47` : funcidx*}: - `%|-%:%`(C, `REF.FUNC`_instr{funcidx#181}(x), `%->_%%`_instrtype{resulttype#1055, `localidx*#635`}(`%`_resulttype{`X*#5295`}([]), [], `%`_resulttype{`X*#5344`}([`REF`_valtype{`null?#723`, heaptype#727}(?(), (dt : deftype <: heaptype))]))) - -- if (C.`FUNCS`_context{`deftype*#36`}[x!`%`_idx{i#6070}.0] = dt) - -- if (x <- C.`REFS`_context{`funcidx*#47`}) + rule ref.func{C : context, x : idx, dt : deftype}: + `%|-%:%`(C, `REF.FUNC`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(), (dt : deftype <: heaptype))]))) + -- if (C.`FUNCS`_context[x!`%`_idx.0] = dt) + -- if (x <- C.`REFS`_context) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:211.1-212.34 - rule ref.i31{C : context, resulttype#1075 : resulttype, `localidx*#647` : localidx*, `X*#5363` : valtype*, `X*#5412` : valtype*, `null?#725` : null?, heaptype#729 : heaptype}: - `%|-%:%`(C, `REF.I31`_instr, `%->_%%`_instrtype{resulttype#1075, `localidx*#647`}(`%`_resulttype{`X*#5363`}([`I32`_valtype]), [], `%`_resulttype{`X*#5412`}([`REF`_valtype{`null?#725`, heaptype#729}(?(), `I31`_heaptype)]))) + rule ref.i31{C : context}: + `%|-%:%`(C, `REF.I31`_instr, `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `I31`_heaptype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:214.1-216.31 - rule ref.is_null{C : context, resulttype#1095 : resulttype, `localidx*#659` : localidx*, `X*#5433` : valtype*, `null?#727` : null?, heaptype#731 : heaptype, ht : heaptype, `X*#5482` : valtype*}: - `%|-%:%`(C, `REF.IS_NULL`_instr, `%->_%%`_instrtype{resulttype#1095, `localidx*#659`}(`%`_resulttype{`X*#5433`}([`REF`_valtype{`null?#727`, heaptype#731}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#5482`}([`I32`_valtype]))) + rule ref.is_null{C : context, ht : heaptype}: + `%|-%:%`(C, `REF.IS_NULL`_instr, `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype([`I32`_valtype]))) -- Heaptype_ok: `%|-%:OK`(C, ht) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:218.1-220.31 - rule ref.as_non_null{C : context, resulttype#1115 : resulttype, `localidx*#671` : localidx*, `X*#5503` : valtype*, `null?#729` : null?, heaptype#733 : heaptype, ht : heaptype, `X*#5552` : valtype*, `null?#731` : null?, heaptype#735 : heaptype}: - `%|-%:%`(C, `REF.AS_NON_NULL`_instr, `%->_%%`_instrtype{resulttype#1115, `localidx*#671`}(`%`_resulttype{`X*#5503`}([`REF`_valtype{`null?#729`, heaptype#733}(?(`NULL`_null), ht)]), [], `%`_resulttype{`X*#5552`}([`REF`_valtype{`null?#731`, heaptype#735}(?(), ht)]))) + rule ref.as_non_null{C : context, ht : heaptype}: + `%|-%:%`(C, `REF.AS_NON_NULL`_instr, `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype([`REF`_valtype(?(), ht)]))) -- Heaptype_ok: `%|-%:OK`(C, ht) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:222.1-223.51 - rule ref.eq{C : context, resulttype#1135 : resulttype, `localidx*#683` : localidx*, `X*#5573` : valtype*, `null?#733` : null?, heaptype#737 : heaptype, `null?#735` : null?, heaptype#739 : heaptype, `X*#5622` : valtype*}: - `%|-%:%`(C, `REF.EQ`_instr, `%->_%%`_instrtype{resulttype#1135, `localidx*#683`}(`%`_resulttype{`X*#5573`}([`REF`_valtype{`null?#733`, heaptype#737}(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype{`null?#735`, heaptype#739}(?(`NULL`_null), `EQ`_heaptype)]), [], `%`_resulttype{`X*#5622`}([`I32`_valtype]))) + rule ref.eq{C : context}: + `%|-%:%`(C, `REF.EQ`_instr, `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:225.1-229.33 - rule ref.test{C : context, reftype#403 : reftype, rt : reftype, resulttype#1155 : resulttype, `localidx*#695` : localidx*, `X*#5633` : valtype*, rt' : reftype, `X*#5703` : valtype*}: - `%|-%:%`(C, `REF.TEST`_instr{reftype#403}(rt), `%->_%%`_instrtype{resulttype#1155, `localidx*#695`}(`%`_resulttype{`X*#5633`}([(rt' : reftype <: valtype)]), [], `%`_resulttype{`X*#5703`}([`I32`_valtype]))) + rule ref.test{C : context, rt : reftype, rt' : reftype}: + `%|-%:%`(C, `REF.TEST`_instr(rt), `%->_%%`_instrtype(`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))) -- Reftype_ok: `%|-%:OK`(C, rt) -- Reftype_ok: `%|-%:OK`(C, rt') -- Reftype_sub: `%|-%<:%`(C, rt, rt') ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:231.1-235.33 - rule ref.cast{C : context, reftype#405 : reftype, rt : reftype, resulttype#1175 : resulttype, `localidx*#707` : localidx*, `X*#5714` : valtype*, rt' : reftype, `X*#5784` : valtype*}: - `%|-%:%`(C, `REF.CAST`_instr{reftype#405}(rt), `%->_%%`_instrtype{resulttype#1175, `localidx*#707`}(`%`_resulttype{`X*#5714`}([(rt' : reftype <: valtype)]), [], `%`_resulttype{`X*#5784`}([(rt : reftype <: valtype)]))) + rule ref.cast{C : context, rt : reftype, rt' : reftype}: + `%|-%:%`(C, `REF.CAST`_instr(rt), `%->_%%`_instrtype(`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))) -- Reftype_ok: `%|-%:OK`(C, rt) -- Reftype_ok: `%|-%:OK`(C, rt') -- Reftype_sub: `%|-%<:%`(C, rt, rt') ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:240.1-241.42 - rule i31.get{C : context, sx#5 : sx, sx : sx, resulttype#1195 : resulttype, `localidx*#719` : localidx*, `X*#5805` : valtype*, `null?#801` : null?, heaptype#805 : heaptype, `X*#5854` : valtype*}: - `%|-%:%`(C, `I31.GET`_instr{sx#5}(sx), `%->_%%`_instrtype{resulttype#1195, `localidx*#719`}(`%`_resulttype{`X*#5805`}([`REF`_valtype{`null?#801`, heaptype#805}(?(`NULL`_null), `I31`_heaptype)]), [], `%`_resulttype{`X*#5854`}([`I32`_valtype]))) + rule i31.get{C : context, sx : sx}: + `%|-%:%`(C, `I31.GET`_instr(sx), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `I31`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:246.1-248.45 - rule struct.new{C : context, typeidx#406 : typeidx, x : idx, resulttype#1215 : resulttype, `localidx*#731` : localidx*, `X*#5865` : valtype*, `zt*` : storagetype*, `X*#5916` : valtype*, `null?#803` : null?, heaptype#807 : heaptype, typeidx#408 : typeidx, `deftype*#37` : deftype*, i#6131 : nat, `X*#5929` : fieldtype*, `mut?*` : mut?*, `mut?#573*` : mut?*, `storagetype#337*` : storagetype*}: - `%|-%:%`(C, `STRUCT.NEW`_instr{typeidx#406}(x), `%->_%%`_instrtype{resulttype#1215, `localidx*#731`}(`%`_resulttype{`X*#5865`}($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype{`X*#5916`}([`REF`_valtype{`null?#803`, heaptype#807}(?(), `_IDX`_heaptype{typeidx#408}(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#37`}[x!`%`_idx{i#6131}.0], `STRUCT`_comptype(`%`_list{`X*#5929`}(`%%`_fieldtype{`mut?#573`, storagetype#337}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#573` <- `mut?#573*`, storagetype#337 <- `storagetype#337*`, zt <- `zt*`}))) + rule struct.new{C : context, x : idx, `zt*` : storagetype*, `mut?*` : mut?*}: + `%|-%:%`(C, `STRUCT.NEW`_instr(x), `%->_%%`_instrtype(`%`_resulttype($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:250.1-253.48 - rule struct.new_default{C : context, typeidx#410 : typeidx, x : idx, resulttype#1235 : resulttype, `localidx*#743` : localidx*, `X*#5952` : valtype*, `X*#6001` : valtype*, `null?#805` : null?, heaptype#809 : heaptype, typeidx#412 : typeidx, `deftype*#38` : deftype*, i#6169 : nat, `X*#6014` : fieldtype*, `mut?*` : mut?*, `mut?#591*` : mut?*, `storagetype#355*` : storagetype*, `zt*` : storagetype*}: - `%|-%:%`(C, `STRUCT.NEW_DEFAULT`_instr{typeidx#410}(x), `%->_%%`_instrtype{resulttype#1235, `localidx*#743`}(`%`_resulttype{`X*#5952`}([]), [], `%`_resulttype{`X*#6001`}([`REF`_valtype{`null?#805`, heaptype#809}(?(), `_IDX`_heaptype{typeidx#412}(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#38`}[x!`%`_idx{i#6169}.0], `STRUCT`_comptype(`%`_list{`X*#6014`}(`%%`_fieldtype{`mut?#591`, storagetype#355}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#591` <- `mut?#591*`, storagetype#355 <- `storagetype#355*`, zt <- `zt*`}))) + rule struct.new_default{C : context, x : idx, `mut?*` : mut?*, `zt*` : storagetype*}: + `%|-%:%`(C, `STRUCT.NEW_DEFAULT`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) -- (Defaultable: `|-%DEFAULTABLE`($unpack(zt)))*{zt <- `zt*`} ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:258.1-262.39 - rule struct.get{C : context, `sx?#7` : sx?, typeidx#414 : typeidx, u32#8 : u32, `sx?` : sx?, x : idx, i : u32, resulttype#1255 : resulttype, `localidx*#755` : localidx*, `X*#6037` : valtype*, `null?#807` : null?, heaptype#811 : heaptype, typeidx#416 : typeidx, `X*#6086` : valtype*, zt : storagetype, `deftype*#39` : deftype*, i#6236 : nat, `X*#6099` : fieldtype*, `ft*` : fieldtype*, i#6246 : nat, `mut?#617` : mut?, storagetype#381 : storagetype, `mut?` : mut?}: - `%|-%:%`(C, `STRUCT.GET`_instr{`sx?#7`, typeidx#414, u32#8}(sx?{sx <- `sx?`}, x, i), `%->_%%`_instrtype{resulttype#1255, `localidx*#755`}(`%`_resulttype{`X*#6037`}([`REF`_valtype{`null?#807`, heaptype#811}(?(`NULL`_null), `_IDX`_heaptype{typeidx#416}(x))]), [], `%`_resulttype{`X*#6086`}([$unpack(zt)]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#39`}[x!`%`_idx{i#6236}.0], `STRUCT`_comptype(`%`_list{`X*#6099`}(ft*{ft <- `ft*`}))) - -- if (ft*{ft <- `ft*`}[i!`%`_u32{i#6246}.0] = `%%`_fieldtype{`mut?#617`, storagetype#381}(mut?{mut <- `mut?`}, zt)) + rule struct.get{C : context, `sx?` : sx?, x : idx, i : u32, zt : storagetype, `ft*` : fieldtype*, `mut?` : mut?}: + `%|-%:%`(C, `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype([$unpack(zt)]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))) + -- if (ft*{ft <- `ft*`}[i!`%`_u32.0] = `%%`_fieldtype(mut?{mut <- `mut?`}, zt)) -- if ((sx?{sx <- `sx?`} = ?()) <=> $is_packtype(zt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:264.1-267.24 - rule struct.set{C : context, typeidx#418 : typeidx, u32#10 : u32, x : idx, i : u32, resulttype#1275 : resulttype, `localidx*#767` : localidx*, `X*#6122` : valtype*, `null?#809` : null?, heaptype#813 : heaptype, typeidx#420 : typeidx, zt : storagetype, `X*#6171` : valtype*, `deftype*#40` : deftype*, i#6298 : nat, `X*#6184` : fieldtype*, `ft*` : fieldtype*, i#6308 : nat, `mut?#643` : mut?, storagetype#407 : storagetype}: - `%|-%:%`(C, `STRUCT.SET`_instr{typeidx#418, u32#10}(x, i), `%->_%%`_instrtype{resulttype#1275, `localidx*#767`}(`%`_resulttype{`X*#6122`}([`REF`_valtype{`null?#809`, heaptype#813}(?(`NULL`_null), `_IDX`_heaptype{typeidx#420}(x)) $unpack(zt)]), [], `%`_resulttype{`X*#6171`}([]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#40`}[x!`%`_idx{i#6298}.0], `STRUCT`_comptype(`%`_list{`X*#6184`}(ft*{ft <- `ft*`}))) - -- if (ft*{ft <- `ft*`}[i!`%`_u32{i#6308}.0] = `%%`_fieldtype{`mut?#643`, storagetype#407}(?(`MUT`_mut), zt)) + rule struct.set{C : context, x : idx, i : u32, zt : storagetype, `ft*` : fieldtype*}: + `%|-%:%`(C, `STRUCT.SET`_instr(x, i), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) $unpack(zt)]), [], `%`_resulttype([]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))) + -- if (ft*{ft <- `ft*`}[i!`%`_u32.0] = `%%`_fieldtype(?(`MUT`_mut), zt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:272.1-274.43 - rule array.new{C : context, typeidx#422 : typeidx, x : idx, resulttype#1295 : resulttype, `localidx*#779` : localidx*, `X*#6207` : valtype*, zt : storagetype, `X*#6256` : valtype*, `null?#811` : null?, heaptype#815 : heaptype, typeidx#424 : typeidx, `deftype*#41` : deftype*, i#6346 : nat, fieldtype#15 : fieldtype, `mut?#655` : mut?, storagetype#419 : storagetype, `mut?` : mut?}: - `%|-%:%`(C, `ARRAY.NEW`_instr{typeidx#422}(x), `%->_%%`_instrtype{resulttype#1295, `localidx*#779`}(`%`_resulttype{`X*#6207`}([$unpack(zt) `I32`_valtype]), [], `%`_resulttype{`X*#6256`}([`REF`_valtype{`null?#811`, heaptype#815}(?(), `_IDX`_heaptype{typeidx#424}(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#41`}[x!`%`_idx{i#6346}.0], `ARRAY`_comptype{fieldtype#15}(`%%`_fieldtype{`mut?#655`, storagetype#419}(mut?{mut <- `mut?`}, zt))) + rule array.new{C : context, x : idx, zt : storagetype, `mut?` : mut?}: + `%|-%:%`(C, `ARRAY.NEW`_instr(x), `%->_%%`_instrtype(`%`_resulttype([$unpack(zt) `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:276.1-279.45 - rule array.new_default{C : context, typeidx#426 : typeidx, x : idx, resulttype#1315 : resulttype, `localidx*#791` : localidx*, `X*#6275` : valtype*, `X*#6324` : valtype*, `null?#813` : null?, heaptype#817 : heaptype, typeidx#428 : typeidx, `deftype*#42` : deftype*, i#6384 : nat, fieldtype#17 : fieldtype, `mut?#667` : mut?, storagetype#431 : storagetype, `mut?` : mut?, zt : storagetype}: - `%|-%:%`(C, `ARRAY.NEW_DEFAULT`_instr{typeidx#426}(x), `%->_%%`_instrtype{resulttype#1315, `localidx*#791`}(`%`_resulttype{`X*#6275`}([`I32`_valtype]), [], `%`_resulttype{`X*#6324`}([`REF`_valtype{`null?#813`, heaptype#817}(?(), `_IDX`_heaptype{typeidx#428}(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#42`}[x!`%`_idx{i#6384}.0], `ARRAY`_comptype{fieldtype#17}(`%%`_fieldtype{`mut?#667`, storagetype#431}(mut?{mut <- `mut?`}, zt))) + rule array.new_default{C : context, x : idx, `mut?` : mut?, zt : storagetype}: + `%|-%:%`(C, `ARRAY.NEW_DEFAULT`_instr(x), `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) -- Defaultable: `|-%DEFAULTABLE`($unpack(zt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:281.1-283.43 - rule array.new_fixed{C : context, typeidx#430 : typeidx, u32#12 : u32, x : idx, i#6422 : nat, n : n, resulttype#1335 : resulttype, `localidx*#803` : localidx*, `X*#6335` : valtype*, zt : storagetype, `X*#6386` : valtype*, `null?#815` : null?, heaptype#819 : heaptype, typeidx#432 : typeidx, `deftype*#43` : deftype*, i#6446 : nat, fieldtype#19 : fieldtype, `mut?#679` : mut?, storagetype#443 : storagetype, `mut?` : mut?}: - `%|-%:%`(C, `ARRAY.NEW_FIXED`_instr{typeidx#430, u32#12}(x, `%`_u32{i#6422}(n)), `%->_%%`_instrtype{resulttype#1335, `localidx*#803`}(`%`_resulttype{`X*#6335`}($unpack(zt)^n{}), [], `%`_resulttype{`X*#6386`}([`REF`_valtype{`null?#815`, heaptype#819}(?(), `_IDX`_heaptype{typeidx#432}(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#43`}[x!`%`_idx{i#6446}.0], `ARRAY`_comptype{fieldtype#19}(`%%`_fieldtype{`mut?#679`, storagetype#443}(mut?{mut <- `mut?`}, zt))) + rule array.new_fixed{C : context, x : idx, n : n, zt : storagetype, `mut?` : mut?}: + `%|-%:%`(C, `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n)), `%->_%%`_instrtype(`%`_resulttype($unpack(zt)^n{}), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:285.1-288.40 - rule array.new_elem{C : context, typeidx#434 : typeidx, elemidx#9 : elemidx, x : idx, y : idx, resulttype#1355 : resulttype, `localidx*#815` : localidx*, `X*#6407` : valtype*, `X*#6456` : valtype*, `null?#817` : null?, heaptype#821 : heaptype, typeidx#436 : typeidx, `deftype*#44` : deftype*, i#6498 : nat, fieldtype#21 : fieldtype, `mut?#691` : mut?, storagetype#455 : storagetype, `mut?` : mut?, rt : reftype, `elemtype*#7` : elemtype*, i#6508 : nat}: - `%|-%:%`(C, `ARRAY.NEW_ELEM`_instr{typeidx#434, elemidx#9}(x, y), `%->_%%`_instrtype{resulttype#1355, `localidx*#815`}(`%`_resulttype{`X*#6407`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6456`}([`REF`_valtype{`null?#817`, heaptype#821}(?(), `_IDX`_heaptype{typeidx#436}(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#44`}[x!`%`_idx{i#6498}.0], `ARRAY`_comptype{fieldtype#21}(`%%`_fieldtype{`mut?#691`, storagetype#455}(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))) - -- Reftype_sub: `%|-%<:%`(C, C.`ELEMS`_context{`elemtype*#7`}[y!`%`_idx{i#6508}.0], rt) + rule array.new_elem{C : context, x : idx, y : idx, `mut?` : mut?, rt : reftype}: + `%|-%:%`(C, `ARRAY.NEW_ELEM`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))) + -- Reftype_sub: `%|-%<:%`(C, C.`ELEMS`_context[y!`%`_idx.0], rt) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:290.1-294.24 - rule array.new_data{C : context, typeidx#438 : typeidx, dataidx#9 : dataidx, x : idx, y : idx, resulttype#1375 : resulttype, `localidx*#827` : localidx*, `X*#6477` : valtype*, `X*#6526` : valtype*, `null?#831` : null?, heaptype#835 : heaptype, typeidx#440 : typeidx, `deftype*#45` : deftype*, i#6560 : nat, fieldtype#23 : fieldtype, `mut?#703` : mut?, storagetype#467 : storagetype, `mut?` : mut?, zt : storagetype, numtype : numtype, vectype : vectype, `datatype*#7` : datatype*, i#6570 : nat}: - `%|-%:%`(C, `ARRAY.NEW_DATA`_instr{typeidx#438, dataidx#9}(x, y), `%->_%%`_instrtype{resulttype#1375, `localidx*#827`}(`%`_resulttype{`X*#6477`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6526`}([`REF`_valtype{`null?#831`, heaptype#835}(?(), `_IDX`_heaptype{typeidx#440}(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#45`}[x!`%`_idx{i#6560}.0], `ARRAY`_comptype{fieldtype#23}(`%%`_fieldtype{`mut?#703`, storagetype#467}(mut?{mut <- `mut?`}, zt))) + rule array.new_data{C : context, x : idx, y : idx, `mut?` : mut?, zt : storagetype, numtype : numtype, vectype : vectype}: + `%|-%:%`(C, `ARRAY.NEW_DATA`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) -- if (($unpack(zt) = (numtype : numtype <: valtype)) \/ ($unpack(zt) = (vectype : vectype <: valtype))) - -- if (C.`DATAS`_context{`datatype*#7`}[y!`%`_idx{i#6570}.0] = `OK`_datatype) + -- if (C.`DATAS`_context[y!`%`_idx.0] = `OK`_datatype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:296.1-299.39 - rule array.get{C : context, `sx?#9` : sx?, typeidx#442 : typeidx, `sx?` : sx?, x : idx, resulttype#1395 : resulttype, `localidx*#839` : localidx*, `X*#6547` : valtype*, `null?#833` : null?, heaptype#837 : heaptype, typeidx#444 : typeidx, `X*#6596` : valtype*, zt : storagetype, `deftype*#46` : deftype*, i#6645 : nat, fieldtype#25 : fieldtype, `mut?#715` : mut?, storagetype#479 : storagetype, `mut?` : mut?}: - `%|-%:%`(C, `ARRAY.GET`_instr{`sx?#9`, typeidx#442}(sx?{sx <- `sx?`}, x), `%->_%%`_instrtype{resulttype#1395, `localidx*#839`}(`%`_resulttype{`X*#6547`}([`REF`_valtype{`null?#833`, heaptype#837}(?(`NULL`_null), `_IDX`_heaptype{typeidx#444}(x)) `I32`_valtype]), [], `%`_resulttype{`X*#6596`}([$unpack(zt)]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#46`}[x!`%`_idx{i#6645}.0], `ARRAY`_comptype{fieldtype#25}(`%%`_fieldtype{`mut?#715`, storagetype#479}(mut?{mut <- `mut?`}, zt))) + rule array.get{C : context, `sx?` : sx?, x : idx, zt : storagetype, `mut?` : mut?}: + `%|-%:%`(C, `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype]), [], `%`_resulttype([$unpack(zt)]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) -- if ((sx?{sx <- `sx?`} = ?()) <=> $is_packtype(zt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:301.1-303.42 - rule array.set{C : context, typeidx#446 : typeidx, x : idx, resulttype#1415 : resulttype, `localidx*#851` : localidx*, `X*#6617` : valtype*, `null?#835` : null?, heaptype#839 : heaptype, typeidx#448 : typeidx, zt : storagetype, `X*#6666` : valtype*, `deftype*#47` : deftype*, i#6683 : nat, fieldtype#27 : fieldtype, `mut?#727` : mut?, storagetype#491 : storagetype}: - `%|-%:%`(C, `ARRAY.SET`_instr{typeidx#446}(x), `%->_%%`_instrtype{resulttype#1415, `localidx*#851`}(`%`_resulttype{`X*#6617`}([`REF`_valtype{`null?#835`, heaptype#839}(?(`NULL`_null), `_IDX`_heaptype{typeidx#448}(x)) `I32`_valtype $unpack(zt)]), [], `%`_resulttype{`X*#6666`}([]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#47`}[x!`%`_idx{i#6683}.0], `ARRAY`_comptype{fieldtype#27}(`%%`_fieldtype{`mut?#727`, storagetype#491}(?(`MUT`_mut), zt))) + rule array.set{C : context, x : idx, zt : storagetype}: + `%|-%:%`(C, `ARRAY.SET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt)]), [], `%`_resulttype([]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:305.1-306.43 - rule array.len{C : context, resulttype#1435 : resulttype, `localidx*#863` : localidx*, `X*#6687` : valtype*, `null?#837` : null?, heaptype#841 : heaptype, `X*#6736` : valtype*}: - `%|-%:%`(C, `ARRAY.LEN`_instr, `%->_%%`_instrtype{resulttype#1435, `localidx*#863`}(`%`_resulttype{`X*#6687`}([`REF`_valtype{`null?#837`, heaptype#841}(?(`NULL`_null), `ARRAY`_heaptype)]), [], `%`_resulttype{`X*#6736`}([`I32`_valtype]))) + rule array.len{C : context}: + `%|-%:%`(C, `ARRAY.LEN`_instr, `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:308.1-310.42 - rule array.fill{C : context, typeidx#450 : typeidx, x : idx, resulttype#1455 : resulttype, `localidx*#875` : localidx*, `X*#6757` : valtype*, `null?#839` : null?, heaptype#843 : heaptype, typeidx#452 : typeidx, zt : storagetype, `X*#6806` : valtype*, `deftype*#48` : deftype*, i#6721 : nat, fieldtype#29 : fieldtype, `mut?#739` : mut?, storagetype#503 : storagetype}: - `%|-%:%`(C, `ARRAY.FILL`_instr{typeidx#450}(x), `%->_%%`_instrtype{resulttype#1455, `localidx*#875`}(`%`_resulttype{`X*#6757`}([`REF`_valtype{`null?#839`, heaptype#843}(?(`NULL`_null), `_IDX`_heaptype{typeidx#452}(x)) `I32`_valtype $unpack(zt) `I32`_valtype]), [], `%`_resulttype{`X*#6806`}([]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#48`}[x!`%`_idx{i#6721}.0], `ARRAY`_comptype{fieldtype#29}(`%%`_fieldtype{`mut?#739`, storagetype#503}(?(`MUT`_mut), zt))) + rule array.fill{C : context, x : idx, zt : storagetype}: + `%|-%:%`(C, `ARRAY.FILL`_instr(x), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt) `I32`_valtype]), [], `%`_resulttype([]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:312.1-316.40 - rule array.copy{C : context, typeidx#454 : typeidx, x_1 : idx, x_2 : idx, resulttype#1475 : resulttype, `localidx*#887` : localidx*, `X*#6827` : valtype*, `null?#841` : null?, heaptype#845 : heaptype, typeidx#457 : typeidx, `null?#843` : null?, heaptype#847 : heaptype, typeidx#459 : typeidx, `X*#6876` : valtype*, `deftype*#49` : deftype*, i#6787 : nat, fieldtype#31 : fieldtype, `mut?#751` : mut?, storagetype#515 : storagetype, zt_1 : storagetype, `deftype*#50` : deftype*, i#6797 : nat, fieldtype#33 : fieldtype, `mut?#763` : mut?, storagetype#527 : storagetype, `mut?` : mut?, zt_2 : storagetype}: - `%|-%:%`(C, `ARRAY.COPY`_instr{typeidx#454}(x_1, x_2), `%->_%%`_instrtype{resulttype#1475, `localidx*#887`}(`%`_resulttype{`X*#6827`}([`REF`_valtype{`null?#841`, heaptype#845}(?(`NULL`_null), `_IDX`_heaptype{typeidx#457}(x_1)) `I32`_valtype `REF`_valtype{`null?#843`, heaptype#847}(?(`NULL`_null), `_IDX`_heaptype{typeidx#459}(x_2)) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6876`}([]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#49`}[x_1!`%`_idx{i#6787}.0], `ARRAY`_comptype{fieldtype#31}(`%%`_fieldtype{`mut?#751`, storagetype#515}(?(`MUT`_mut), zt_1))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#50`}[x_2!`%`_idx{i#6797}.0], `ARRAY`_comptype{fieldtype#33}(`%%`_fieldtype{`mut?#763`, storagetype#527}(mut?{mut <- `mut?`}, zt_2))) + rule array.copy{C : context, x_1 : idx, x_2 : idx, zt_1 : storagetype, `mut?` : mut?, zt_2 : storagetype}: + `%|-%:%`(C, `ARRAY.COPY`_instr(x_1, x_2), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1)) `I32`_valtype `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2)) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))) + -- Expand: `%~~%`(C.`TYPES`_context[x_1!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt_1))) + -- Expand: `%~~%`(C.`TYPES`_context[x_2!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))) -- Storagetype_sub: `%|-%<:%`(C, zt_2, zt_1) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:318.1-321.44 - rule array.init_elem{C : context, typeidx#461 : typeidx, elemidx#11 : elemidx, x : idx, y : idx, resulttype#1495 : resulttype, `localidx*#899` : localidx*, `X*#6897` : valtype*, `null?#845` : null?, heaptype#849 : heaptype, typeidx#463 : typeidx, `X*#6946` : valtype*, `deftype*#51` : deftype*, i#6849 : nat, fieldtype#35 : fieldtype, `mut?#775` : mut?, storagetype#539 : storagetype, zt : storagetype, `elemtype*#8` : elemtype*, i#6859 : nat}: - `%|-%:%`(C, `ARRAY.INIT_ELEM`_instr{typeidx#461, elemidx#11}(x, y), `%->_%%`_instrtype{resulttype#1495, `localidx*#899`}(`%`_resulttype{`X*#6897`}([`REF`_valtype{`null?#845`, heaptype#849}(?(`NULL`_null), `_IDX`_heaptype{typeidx#463}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#6946`}([]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#51`}[x!`%`_idx{i#6849}.0], `ARRAY`_comptype{fieldtype#35}(`%%`_fieldtype{`mut?#775`, storagetype#539}(?(`MUT`_mut), zt))) - -- Storagetype_sub: `%|-%<:%`(C, (C.`ELEMS`_context{`elemtype*#8`}[y!`%`_idx{i#6859}.0] : reftype <: storagetype), zt) + rule array.init_elem{C : context, x : idx, y : idx, zt : storagetype}: + `%|-%:%`(C, `ARRAY.INIT_ELEM`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))) + -- Storagetype_sub: `%|-%<:%`(C, (C.`ELEMS`_context[y!`%`_idx.0] : reftype <: storagetype), zt) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:323.1-327.24 - rule array.init_data{C : context, typeidx#465 : typeidx, dataidx#11 : dataidx, x : idx, y : idx, resulttype#1515 : resulttype, `localidx*#911` : localidx*, `X*#6967` : valtype*, `null?#847` : null?, heaptype#851 : heaptype, typeidx#467 : typeidx, `X*#7016` : valtype*, `deftype*#52` : deftype*, i#6911 : nat, fieldtype#37 : fieldtype, `mut?#787` : mut?, storagetype#551 : storagetype, zt : storagetype, numtype : numtype, vectype : vectype, `datatype*#8` : datatype*, i#6921 : nat}: - `%|-%:%`(C, `ARRAY.INIT_DATA`_instr{typeidx#465, dataidx#11}(x, y), `%->_%%`_instrtype{resulttype#1515, `localidx*#911`}(`%`_resulttype{`X*#6967`}([`REF`_valtype{`null?#847`, heaptype#851}(?(`NULL`_null), `_IDX`_heaptype{typeidx#467}(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#7016`}([]))) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#52`}[x!`%`_idx{i#6911}.0], `ARRAY`_comptype{fieldtype#37}(`%%`_fieldtype{`mut?#787`, storagetype#551}(?(`MUT`_mut), zt))) + rule array.init_data{C : context, x : idx, y : idx, zt : storagetype, numtype : numtype, vectype : vectype}: + `%|-%:%`(C, `ARRAY.INIT_DATA`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))) -- if (($unpack(zt) = (numtype : numtype <: valtype)) \/ ($unpack(zt) = (vectype : vectype <: valtype))) - -- if (C.`DATAS`_context{`datatype*#8`}[y!`%`_idx{i#6921}.0] = `OK`_datatype) + -- if (C.`DATAS`_context[y!`%`_idx.0] = `OK`_datatype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:332.1-334.26 - rule extern.convert_any{C : context, resulttype#1535 : resulttype, `localidx*#923` : localidx*, `X*#7037` : valtype*, `null?#849` : null?, heaptype#853 : heaptype, `null_1?` : null?, `X*#7086` : valtype*, `null?#851` : null?, heaptype#855 : heaptype, `null_2?` : null?}: - `%|-%:%`(C, `EXTERN.CONVERT_ANY`_instr, `%->_%%`_instrtype{resulttype#1535, `localidx*#923`}(`%`_resulttype{`X*#7037`}([`REF`_valtype{`null?#849`, heaptype#853}(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]), [], `%`_resulttype{`X*#7086`}([`REF`_valtype{`null?#851`, heaptype#855}(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]))) + rule extern.convert_any{C : context, `null_1?` : null?, `null_2?` : null?}: + `%|-%:%`(C, `EXTERN.CONVERT_ANY`_instr, `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]), [], `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]))) -- if (null_1?{null_1 <- `null_1?`} = null_2?{null_2 <- `null_2?`}) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:336.1-338.26 - rule any.convert_extern{C : context, resulttype#1555 : resulttype, `localidx*#935` : localidx*, `X*#7107` : valtype*, `null?#853` : null?, heaptype#857 : heaptype, `null_1?` : null?, `X*#7156` : valtype*, `null?#855` : null?, heaptype#859 : heaptype, `null_2?` : null?}: - `%|-%:%`(C, `ANY.CONVERT_EXTERN`_instr, `%->_%%`_instrtype{resulttype#1555, `localidx*#935`}(`%`_resulttype{`X*#7107`}([`REF`_valtype{`null?#853`, heaptype#857}(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]), [], `%`_resulttype{`X*#7156`}([`REF`_valtype{`null?#855`, heaptype#859}(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]))) + rule any.convert_extern{C : context, `null_1?` : null?, `null_2?` : null?}: + `%|-%:%`(C, `ANY.CONVERT_EXTERN`_instr, `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]), [], `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]))) -- if (null_1?{null_1 <- `null_1?`} = null_2?{null_2 <- `null_2?`}) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:343.1-345.28 - rule local.get{C : context, localidx#7 : localidx, x : idx, resulttype#1575 : resulttype, `localidx*#947` : localidx*, `X*#7177` : valtype*, `X*#7226` : valtype*, t : valtype, `localtype*#10` : localtype*, i#6945 : nat, init#77 : init, valtype#343 : valtype}: - `%|-%:%`(C, `LOCAL.GET`_instr{localidx#7}(x), `%->_%%`_instrtype{resulttype#1575, `localidx*#947`}(`%`_resulttype{`X*#7177`}([]), [], `%`_resulttype{`X*#7226`}([t]))) - -- if (C.`LOCALS`_context{`localtype*#10`}[x!`%`_idx{i#6945}.0] = `%%`_localtype{init#77, valtype#343}(`SET`_init, t)) + rule local.get{C : context, x : idx, t : valtype}: + `%|-%:%`(C, `LOCAL.GET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))) + -- if (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(`SET`_init, t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:347.1-349.29 - rule local.set{C : context, localidx#9 : localidx, x : idx, resulttype#1595 : resulttype, `localidx*#959` : localidx*, `X*#7237` : valtype*, t : valtype, `X*#7334` : valtype*, `localtype*#11` : localtype*, i#7182 : nat, init#89 : init, valtype#355 : valtype, init : init}: - `%|-%:%`(C, `LOCAL.SET`_instr{localidx#9}(x), `%->_%%`_instrtype{resulttype#1595, `localidx*#959`}(`%`_resulttype{`X*#7237`}([t]), [x], `%`_resulttype{`X*#7334`}([]))) - -- if (C.`LOCALS`_context{`localtype*#11`}[x!`%`_idx{i#7182}.0] = `%%`_localtype{init#89, valtype#355}(init, t)) + rule local.set{C : context, x : idx, t : valtype, init : init}: + `%|-%:%`(C, `LOCAL.SET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([t]), [x], `%`_resulttype([]))) + -- if (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(init, t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:351.1-353.29 - rule local.tee{C : context, localidx#11 : localidx, x : idx, resulttype#1615 : resulttype, `localidx*#971` : localidx*, `X*#7345` : valtype*, t : valtype, `X*#7432` : valtype*, `localtype*#12` : localtype*, i#7419 : nat, init#101 : init, valtype#367 : valtype, init : init}: - `%|-%:%`(C, `LOCAL.TEE`_instr{localidx#11}(x), `%->_%%`_instrtype{resulttype#1615, `localidx*#971`}(`%`_resulttype{`X*#7345`}([t]), [x], `%`_resulttype{`X*#7432`}([t]))) - -- if (C.`LOCALS`_context{`localtype*#12`}[x!`%`_idx{i#7419}.0] = `%%`_localtype{init#101, valtype#367}(init, t)) + rule local.tee{C : context, x : idx, t : valtype, init : init}: + `%|-%:%`(C, `LOCAL.TEE`_instr(x), `%->_%%`_instrtype(`%`_resulttype([t]), [x], `%`_resulttype([t]))) + -- if (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(init, t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:358.1-360.30 - rule global.get{C : context, globalidx#9 : globalidx, x : idx, resulttype#1635 : resulttype, `localidx*#983` : localidx*, `X*#7472` : valtype*, `X*#7521` : valtype*, t : valtype, `globaltype*#7` : globaltype*, i#7443 : nat, `mut?#799` : mut?, valtype#379 : valtype, `mut?` : mut?}: - `%|-%:%`(C, `GLOBAL.GET`_instr{globalidx#9}(x), `%->_%%`_instrtype{resulttype#1635, `localidx*#983`}(`%`_resulttype{`X*#7472`}([]), [], `%`_resulttype{`X*#7521`}([t]))) - -- if (C.`GLOBALS`_context{`globaltype*#7`}[x!`%`_idx{i#7443}.0] = `%%`_globaltype{`mut?#799`, valtype#379}(mut?{mut <- `mut?`}, t)) + rule global.get{C : context, x : idx, t : valtype, `mut?` : mut?}: + `%|-%:%`(C, `GLOBAL.GET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))) + -- if (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(mut?{mut <- `mut?`}, t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:362.1-364.29 - rule global.set{C : context, globalidx#11 : globalidx, x : idx, resulttype#1655 : resulttype, `localidx*#995` : localidx*, `X*#7532` : valtype*, t : valtype, `X*#7600` : valtype*, `globaltype*#8` : globaltype*, i#7467 : nat, `mut?#811` : mut?, valtype#391 : valtype}: - `%|-%:%`(C, `GLOBAL.SET`_instr{globalidx#11}(x), `%->_%%`_instrtype{resulttype#1655, `localidx*#995`}(`%`_resulttype{`X*#7532`}([t]), [], `%`_resulttype{`X*#7600`}([]))) - -- if (C.`GLOBALS`_context{`globaltype*#8`}[x!`%`_idx{i#7467}.0] = `%%`_globaltype{`mut?#811`, valtype#391}(?(`MUT`_mut), t)) + rule global.set{C : context, x : idx, t : valtype}: + `%|-%:%`(C, `GLOBAL.SET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([t]), [], `%`_resulttype([]))) + -- if (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(?(`MUT`_mut), t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:369.1-371.32 - rule table.get{C : context, tableidx#30 : tableidx, x : idx, resulttype#1675 : resulttype, `localidx*#1007` : localidx*, `X*#7611` : valtype*, at : addrtype, `X*#7679` : valtype*, rt : reftype, `tabletype*#9` : tabletype*, i#7491 : nat, addrtype#465 : addrtype, limits#465 : limits, reftype#417 : reftype, lim : limits}: - `%|-%:%`(C, `TABLE.GET`_instr{tableidx#30}(x), `%->_%%`_instrtype{resulttype#1675, `localidx*#1007`}(`%`_resulttype{`X*#7611`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7679`}([(rt : reftype <: valtype)]))) - -- if (C.`TABLES`_context{`tabletype*#9`}[x!`%`_idx{i#7491}.0] = `%%%`_tabletype{addrtype#465, limits#465, reftype#417}(at, lim, rt)) + rule table.get{C : context, x : idx, at : addrtype, rt : reftype, lim : limits}: + `%|-%:%`(C, `TABLE.GET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))) + -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:373.1-375.32 - rule table.set{C : context, tableidx#32 : tableidx, x : idx, resulttype#1695 : resulttype, `localidx*#1019` : localidx*, `X*#7700` : valtype*, at : addrtype, rt : reftype, `X*#7749` : valtype*, `tabletype*#10` : tabletype*, i#7515 : nat, addrtype#477 : addrtype, limits#477 : limits, reftype#429 : reftype, lim : limits}: - `%|-%:%`(C, `TABLE.SET`_instr{tableidx#32}(x), `%->_%%`_instrtype{resulttype#1695, `localidx*#1019`}(`%`_resulttype{`X*#7700`}([(at : addrtype <: valtype) (rt : reftype <: valtype)]), [], `%`_resulttype{`X*#7749`}([]))) - -- if (C.`TABLES`_context{`tabletype*#10`}[x!`%`_idx{i#7515}.0] = `%%%`_tabletype{addrtype#477, limits#477, reftype#429}(at, lim, rt)) + rule table.set{C : context, x : idx, at : addrtype, rt : reftype, lim : limits}: + `%|-%:%`(C, `TABLE.SET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype)]), [], `%`_resulttype([]))) + -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:377.1-379.32 - rule table.size{C : context, tableidx#34 : tableidx, x : idx, resulttype#1715 : resulttype, `localidx*#1031` : localidx*, `X*#7770` : valtype*, `X*#7819` : valtype*, at : addrtype, `tabletype*#11` : tabletype*, i#7539 : nat, addrtype#489 : addrtype, limits#489 : limits, reftype#441 : reftype, lim : limits, rt : reftype}: - `%|-%:%`(C, `TABLE.SIZE`_instr{tableidx#34}(x), `%->_%%`_instrtype{resulttype#1715, `localidx*#1031`}(`%`_resulttype{`X*#7770`}([]), [], `%`_resulttype{`X*#7819`}([(at : addrtype <: valtype)]))) - -- if (C.`TABLES`_context{`tabletype*#11`}[x!`%`_idx{i#7539}.0] = `%%%`_tabletype{addrtype#489, limits#489, reftype#441}(at, lim, rt)) + rule table.size{C : context, x : idx, at : addrtype, lim : limits, rt : reftype}: + `%|-%:%`(C, `TABLE.SIZE`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))) + -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:381.1-383.32 - rule table.grow{C : context, tableidx#36 : tableidx, x : idx, resulttype#1735 : resulttype, `localidx*#1043` : localidx*, `X*#7840` : valtype*, rt : reftype, at : addrtype, `X*#7889` : valtype*, `tabletype*#12` : tabletype*, i#7563 : nat, addrtype#501 : addrtype, limits#501 : limits, reftype#453 : reftype, lim : limits}: - `%|-%:%`(C, `TABLE.GROW`_instr{tableidx#36}(x), `%->_%%`_instrtype{resulttype#1735, `localidx*#1043`}(`%`_resulttype{`X*#7840`}([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7889`}([`I32`_valtype]))) - -- if (C.`TABLES`_context{`tabletype*#12`}[x!`%`_idx{i#7563}.0] = `%%%`_tabletype{addrtype#501, limits#501, reftype#453}(at, lim, rt)) + rule table.grow{C : context, x : idx, rt : reftype, at : addrtype, lim : limits}: + `%|-%:%`(C, `TABLE.GROW`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))) + -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:385.1-387.32 - rule table.fill{C : context, tableidx#38 : tableidx, x : idx, resulttype#1755 : resulttype, `localidx*#1055` : localidx*, `X*#7910` : valtype*, at : addrtype, rt : reftype, `X*#7959` : valtype*, `tabletype*#13` : tabletype*, i#7587 : nat, addrtype#513 : addrtype, limits#513 : limits, reftype#465 : reftype, lim : limits}: - `%|-%:%`(C, `TABLE.FILL`_instr{tableidx#38}(x), `%->_%%`_instrtype{resulttype#1755, `localidx*#1055`}(`%`_resulttype{`X*#7910`}([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#7959`}([]))) - -- if (C.`TABLES`_context{`tabletype*#13`}[x!`%`_idx{i#7587}.0] = `%%%`_tabletype{addrtype#513, limits#513, reftype#465}(at, lim, rt)) + rule table.fill{C : context, x : idx, at : addrtype, rt : reftype, lim : limits}: + `%|-%:%`(C, `TABLE.FILL`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([]))) + -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:389.1-393.36 - rule table.copy{C : context, tableidx#40 : tableidx, x_1 : idx, x_2 : idx, resulttype#1775 : resulttype, `localidx*#1067` : localidx*, `X*#7980` : valtype*, at_1 : addrtype, at_2 : addrtype, `X*#8029` : valtype*, `tabletype*#14` : tabletype*, i#7625 : nat, addrtype#525 : addrtype, limits#525 : limits, reftype#477 : reftype, lim_1 : limits, rt_1 : reftype, `tabletype*#15` : tabletype*, i#7635 : nat, addrtype#537 : addrtype, limits#537 : limits, reftype#489 : reftype, lim_2 : limits, rt_2 : reftype}: - `%|-%:%`(C, `TABLE.COPY`_instr{tableidx#40}(x_1, x_2), `%->_%%`_instrtype{resulttype#1775, `localidx*#1067`}(`%`_resulttype{`X*#7980`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype{`X*#8029`}([]))) - -- if (C.`TABLES`_context{`tabletype*#14`}[x_1!`%`_idx{i#7625}.0] = `%%%`_tabletype{addrtype#525, limits#525, reftype#477}(at_1, lim_1, rt_1)) - -- if (C.`TABLES`_context{`tabletype*#15`}[x_2!`%`_idx{i#7635}.0] = `%%%`_tabletype{addrtype#537, limits#537, reftype#489}(at_2, lim_2, rt_2)) + rule table.copy{C : context, x_1 : idx, x_2 : idx, at_1 : addrtype, at_2 : addrtype, lim_1 : limits, rt_1 : reftype, lim_2 : limits, rt_2 : reftype}: + `%|-%:%`(C, `TABLE.COPY`_instr(x_1, x_2), `%->_%%`_instrtype(`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))) + -- if (C.`TABLES`_context[x_1!`%`_idx.0] = `%%%`_tabletype(at_1, lim_1, rt_1)) + -- if (C.`TABLES`_context[x_2!`%`_idx.0] = `%%%`_tabletype(at_2, lim_2, rt_2)) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt_1) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:395.1-399.36 - rule table.init{C : context, tableidx#43 : tableidx, elemidx#13 : elemidx, x : idx, y : idx, resulttype#1795 : resulttype, `localidx*#1079` : localidx*, `X*#8050` : valtype*, at : addrtype, `X*#8099` : valtype*, `tabletype*#16` : tabletype*, i#7673 : nat, addrtype#549 : addrtype, limits#549 : limits, reftype#501 : reftype, lim : limits, rt_1 : reftype, `elemtype*#9` : elemtype*, i#7683 : nat, rt_2 : reftype}: - `%|-%:%`(C, `TABLE.INIT`_instr{tableidx#43, elemidx#13}(x, y), `%->_%%`_instrtype{resulttype#1795, `localidx*#1079`}(`%`_resulttype{`X*#8050`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#8099`}([]))) - -- if (C.`TABLES`_context{`tabletype*#16`}[x!`%`_idx{i#7673}.0] = `%%%`_tabletype{addrtype#549, limits#549, reftype#501}(at, lim, rt_1)) - -- if (C.`ELEMS`_context{`elemtype*#9`}[y!`%`_idx{i#7683}.0] = rt_2) + rule table.init{C : context, x : idx, y : idx, at : addrtype, lim : limits, rt_1 : reftype, rt_2 : reftype}: + `%|-%:%`(C, `TABLE.INIT`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))) + -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt_1)) + -- if (C.`ELEMS`_context[y!`%`_idx.0] = rt_2) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt_1) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:401.1-403.24 - rule elem.drop{C : context, elemidx#15 : elemidx, x : idx, resulttype#1815 : resulttype, `localidx*#1091` : localidx*, `X*#8120` : valtype*, `X*#8169` : valtype*, `elemtype*#10` : elemtype*, i#7707 : nat, rt : reftype}: - `%|-%:%`(C, `ELEM.DROP`_instr{elemidx#15}(x), `%->_%%`_instrtype{resulttype#1815, `localidx*#1091`}(`%`_resulttype{`X*#8120`}([]), [], `%`_resulttype{`X*#8169`}([]))) - -- if (C.`ELEMS`_context{`elemtype*#10`}[x!`%`_idx{i#7707}.0] = rt) + rule elem.drop{C : context, x : idx, rt : reftype}: + `%|-%:%`(C, `ELEM.DROP`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))) + -- if (C.`ELEMS`_context[x!`%`_idx.0] = rt) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:416.1-418.32 - rule memory.size{C : context, memidx#30 : memidx, x : idx, resulttype#1835 : resulttype, `localidx*#1103` : localidx*, `X*#8190` : valtype*, `X*#8239` : valtype*, at : addrtype, `memtype*#7` : memtype*, i#7775 : nat, addrtype#561 : addrtype, limits#561 : limits, lim : limits}: - `%|-%:%`(C, `MEMORY.SIZE`_instr{memidx#30}(x), `%->_%%`_instrtype{resulttype#1835, `localidx*#1103`}(`%`_resulttype{`X*#8190`}([]), [], `%`_resulttype{`X*#8239`}([(at : addrtype <: valtype)]))) - -- if (C.`MEMS`_context{`memtype*#7`}[x!`%`_idx{i#7775}.0] = `%%PAGE`_memtype{addrtype#561, limits#561}(at, lim)) + rule memory.size{C : context, x : idx, at : addrtype, lim : limits}: + `%|-%:%`(C, `MEMORY.SIZE`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:420.1-422.32 - rule memory.grow{C : context, memidx#32 : memidx, x : idx, resulttype#1855 : resulttype, `localidx*#1115` : localidx*, `X*#8250` : valtype*, at : addrtype, `X*#8318` : valtype*, `memtype*#8` : memtype*, i#7799 : nat, addrtype#573 : addrtype, limits#573 : limits, lim : limits}: - `%|-%:%`(C, `MEMORY.GROW`_instr{memidx#32}(x), `%->_%%`_instrtype{resulttype#1855, `localidx*#1115`}(`%`_resulttype{`X*#8250`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8318`}([(at : addrtype <: valtype)]))) - -- if (C.`MEMS`_context{`memtype*#8`}[x!`%`_idx{i#7799}.0] = `%%PAGE`_memtype{addrtype#573, limits#573}(at, lim)) + rule memory.grow{C : context, x : idx, at : addrtype, lim : limits}: + `%|-%:%`(C, `MEMORY.GROW`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(at : addrtype <: valtype)]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:424.1-426.32 - rule memory.fill{C : context, memidx#34 : memidx, x : idx, resulttype#1875 : resulttype, `localidx*#1127` : localidx*, `X*#8339` : valtype*, at : addrtype, `X*#8388` : valtype*, `memtype*#9` : memtype*, i#7823 : nat, addrtype#585 : addrtype, limits#585 : limits, lim : limits}: - `%|-%:%`(C, `MEMORY.FILL`_instr{memidx#34}(x), `%->_%%`_instrtype{resulttype#1875, `localidx*#1127`}(`%`_resulttype{`X*#8339`}([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8388`}([]))) - -- if (C.`MEMS`_context{`memtype*#9`}[x!`%`_idx{i#7823}.0] = `%%PAGE`_memtype{addrtype#585, limits#585}(at, lim)) + rule memory.fill{C : context, x : idx, at : addrtype, lim : limits}: + `%|-%:%`(C, `MEMORY.FILL`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]), [], `%`_resulttype([]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:428.1-431.38 - rule memory.copy{C : context, memidx#36 : memidx, x_1 : idx, x_2 : idx, resulttype#1895 : resulttype, `localidx*#1139` : localidx*, `X*#8409` : valtype*, at_1 : addrtype, at_2 : addrtype, `X*#8458` : valtype*, `memtype*#10` : memtype*, i#7861 : nat, addrtype#597 : addrtype, limits#597 : limits, lim_1 : limits, `memtype*#11` : memtype*, i#7871 : nat, addrtype#609 : addrtype, limits#609 : limits, lim_2 : limits}: - `%|-%:%`(C, `MEMORY.COPY`_instr{memidx#36}(x_1, x_2), `%->_%%`_instrtype{resulttype#1895, `localidx*#1139`}(`%`_resulttype{`X*#8409`}([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype{`X*#8458`}([]))) - -- if (C.`MEMS`_context{`memtype*#10`}[x_1!`%`_idx{i#7861}.0] = `%%PAGE`_memtype{addrtype#597, limits#597}(at_1, lim_1)) - -- if (C.`MEMS`_context{`memtype*#11`}[x_2!`%`_idx{i#7871}.0] = `%%PAGE`_memtype{addrtype#609, limits#609}(at_2, lim_2)) + rule memory.copy{C : context, x_1 : idx, x_2 : idx, at_1 : addrtype, at_2 : addrtype, lim_1 : limits, lim_2 : limits}: + `%|-%:%`(C, `MEMORY.COPY`_instr(x_1, x_2), `%->_%%`_instrtype(`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))) + -- if (C.`MEMS`_context[x_1!`%`_idx.0] = `%%PAGE`_memtype(at_1, lim_1)) + -- if (C.`MEMS`_context[x_2!`%`_idx.0] = `%%PAGE`_memtype(at_2, lim_2)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:433.1-436.24 - rule memory.init{C : context, memidx#39 : memidx, dataidx#13 : dataidx, x : idx, y : idx, resulttype#1915 : resulttype, `localidx*#1151` : localidx*, `X*#8479` : valtype*, at : addrtype, `X*#8528` : valtype*, `memtype*#12` : memtype*, i#7909 : nat, addrtype#621 : addrtype, limits#621 : limits, lim : limits, `datatype*#9` : datatype*, i#7919 : nat}: - `%|-%:%`(C, `MEMORY.INIT`_instr{memidx#39, dataidx#13}(x, y), `%->_%%`_instrtype{resulttype#1915, `localidx*#1151`}(`%`_resulttype{`X*#8479`}([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#8528`}([]))) - -- if (C.`MEMS`_context{`memtype*#12`}[x!`%`_idx{i#7909}.0] = `%%PAGE`_memtype{addrtype#621, limits#621}(at, lim)) - -- if (C.`DATAS`_context{`datatype*#9`}[y!`%`_idx{i#7919}.0] = `OK`_datatype) + rule memory.init{C : context, x : idx, y : idx, at : addrtype, lim : limits}: + `%|-%:%`(C, `MEMORY.INIT`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + -- if (C.`DATAS`_context[y!`%`_idx.0] = `OK`_datatype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:438.1-440.24 - rule data.drop{C : context, dataidx#15 : dataidx, x : idx, resulttype#1935 : resulttype, `localidx*#1163` : localidx*, `X*#8549` : valtype*, `X*#8598` : valtype*, `datatype*#10` : datatype*, i#7943 : nat}: - `%|-%:%`(C, `DATA.DROP`_instr{dataidx#15}(x), `%->_%%`_instrtype{resulttype#1935, `localidx*#1163`}(`%`_resulttype{`X*#8549`}([]), [], `%`_resulttype{`X*#8598`}([]))) - -- if (C.`DATAS`_context{`datatype*#10`}[x!`%`_idx{i#7943}.0] = `OK`_datatype) + rule data.drop{C : context, x : idx}: + `%|-%:%`(C, `DATA.DROP`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))) + -- if (C.`DATAS`_context[x!`%`_idx.0] = `OK`_datatype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:451.1-454.44 - rule `load-val`{C : context, `numtype?#3` : numtype?, memidx#41 : memidx, memarg#13 : memarg, nt : numtype, x : idx, memarg : memarg, resulttype#1955 : resulttype, `localidx*#1175` : localidx*, `X*#8609` : valtype*, at : addrtype, `X*#8677` : valtype*, `memtype*#13` : memtype*, i#7967 : nat, addrtype#633 : addrtype, limits#633 : limits, lim : limits}: - `%|-%:%`(C, `LOAD`_instr{`numtype?#3`, memidx#41, memarg#13}(nt, ?(), x, memarg), `%->_%%`_instrtype{resulttype#1955, `localidx*#1175`}(`%`_resulttype{`X*#8609`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8677`}([(nt : numtype <: valtype)]))) - -- if (C.`MEMS`_context{`memtype*#13`}[x!`%`_idx{i#7967}.0] = `%%PAGE`_memtype{addrtype#633, limits#633}(at, lim)) + rule `load-val`{C : context, nt : numtype, x : idx, memarg : memarg, at : addrtype, lim : limits}: + `%|-%:%`(C, `LOAD`_instr(nt, ?(), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, $size(nt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:456.1-459.36 - rule `load-pack`{C : context, `numtype?#4` : numtype?, memidx#43 : memidx, memarg#15 : memarg, Inn : Inn, sz#5 : sz, sx#7 : sx, i#7993 : nat, i#8000 : nat, M : M, sx : sx, x : idx, memarg : memarg, resulttype#1975 : resulttype, `localidx*#1187` : localidx*, `X*#8688` : valtype*, at : addrtype, `X*#8756` : valtype*, `memtype*#14` : memtype*, i#8024 : nat, addrtype#645 : addrtype, limits#645 : limits, lim : limits}: - `%|-%:%`(C, `LOAD`_instr{`numtype?#4`, memidx#43, memarg#15}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#5, sx#7, i#7993}(`%`_sz{i#8000}(M), sx)), x, memarg), `%->_%%`_instrtype{resulttype#1975, `localidx*#1187`}(`%`_resulttype{`X*#8688`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8756`}([(Inn : Inn <: valtype)]))) - -- if (C.`MEMS`_context{`memtype*#14`}[x!`%`_idx{i#8024}.0] = `%%PAGE`_memtype{addrtype#645, limits#645}(at, lim)) + rule `load-pack`{C : context, Inn : Inn, M : M, sx : sx, x : idx, memarg : memarg, at : addrtype, lim : limits}: + `%|-%:%`(C, `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(M), sx)), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(Inn : Inn <: valtype)]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, M) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:470.1-473.44 - rule `store-val`{C : context, `numtype?#5` : numtype?, memidx#45 : memidx, memarg#17 : memarg, nt : numtype, x : idx, memarg : memarg, resulttype#1995 : resulttype, `localidx*#1199` : localidx*, `X*#8777` : valtype*, at : addrtype, `X*#8826` : valtype*, `memtype*#15` : memtype*, i#8048 : nat, addrtype#657 : addrtype, limits#657 : limits, lim : limits}: - `%|-%:%`(C, `STORE`_instr{`numtype?#5`, memidx#45, memarg#17}(nt, ?(), x, memarg), `%->_%%`_instrtype{resulttype#1995, `localidx*#1199`}(`%`_resulttype{`X*#8777`}([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#8826`}([]))) - -- if (C.`MEMS`_context{`memtype*#15`}[x!`%`_idx{i#8048}.0] = `%%PAGE`_memtype{addrtype#657, limits#657}(at, lim)) + rule `store-val`{C : context, nt : numtype, x : idx, memarg : memarg, at : addrtype, lim : limits}: + `%|-%:%`(C, `STORE`_instr(nt, ?(), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, $size(nt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:475.1-478.36 - rule `store-pack`{C : context, `numtype?#6` : numtype?, memidx#47 : memidx, memarg#19 : memarg, Inn : Inn, sz#7 : sz, i#8091 : nat, i#8092 : nat, M : M, x : idx, memarg : memarg, resulttype#2015 : resulttype, `localidx*#1211` : localidx*, `X*#8847` : valtype*, at : addrtype, `X*#8896` : valtype*, `memtype*#16` : memtype*, i#8116 : nat, addrtype#669 : addrtype, limits#669 : limits, lim : limits}: - `%|-%:%`(C, `STORE`_instr{`numtype?#6`, memidx#47, memarg#19}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#7, i#8091}(`%`_sz{i#8092}(M))), x, memarg), `%->_%%`_instrtype{resulttype#2015, `localidx*#1211`}(`%`_resulttype{`X*#8847`}([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype{`X*#8896`}([]))) - -- if (C.`MEMS`_context{`memtype*#16`}[x!`%`_idx{i#8116}.0] = `%%PAGE`_memtype{addrtype#669, limits#669}(at, lim)) + rule `store-pack`{C : context, Inn : Inn, M : M, x : idx, memarg : memarg, at : addrtype, lim : limits}: + `%|-%:%`(C, `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(M))), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype([]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, M) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:480.1-483.47 - rule `vload-val`{C : context, `vectype?#2` : vectype?, memidx#49 : memidx, memarg#21 : memarg, x : idx, memarg : memarg, resulttype#2035 : resulttype, `localidx*#1223` : localidx*, `X*#8907` : valtype*, at : addrtype, `X*#8975` : valtype*, `memtype*#17` : memtype*, i#8140 : nat, addrtype#681 : addrtype, limits#681 : limits, lim : limits}: - `%|-%:%`(C, `VLOAD`_instr{`vectype?#2`, memidx#49, memarg#21}(`V128`_vectype, ?(), x, memarg), `%->_%%`_instrtype{resulttype#2035, `localidx*#1223`}(`%`_resulttype{`X*#8907`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#8975`}([`V128`_valtype]))) - -- if (C.`MEMS`_context{`memtype*#17`}[x!`%`_idx{i#8140}.0] = `%%PAGE`_memtype{addrtype#681, limits#681}(at, lim)) + rule `vload-val`{C : context, x : idx, memarg : memarg, at : addrtype, lim : limits}: + `%|-%:%`(C, `VLOAD`_instr(`V128`_vectype, ?(), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, $vsize(`V128`_vectype)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:485.1-488.41 - rule `vload-pack`{C : context, `vectype?#3` : vectype?, memidx#51 : memidx, memarg#23 : memarg, sz#54 : sz, M#16 : M, sx#24 : sx, i#8166 : nat, i#8173 : nat, M : M, N : N, sx : sx, x : idx, memarg : memarg, resulttype#2055 : resulttype, `localidx*#1235` : localidx*, `X*#8986` : valtype*, at : addrtype, `X*#9054` : valtype*, `memtype*#18` : memtype*, i#8197 : nat, addrtype#693 : addrtype, limits#693 : limits, lim : limits}: - `%|-%:%`(C, `VLOAD`_instr{`vectype?#3`, memidx#51, memarg#23}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#54, M#16, sx#24, i#8166}(`%`_sz{i#8173}(M), N, sx)), x, memarg), `%->_%%`_instrtype{resulttype#2055, `localidx*#1235`}(`%`_resulttype{`X*#8986`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9054`}([`V128`_valtype]))) - -- if (C.`MEMS`_context{`memtype*#18`}[x!`%`_idx{i#8197}.0] = `%%PAGE`_memtype{addrtype#693, limits#693}(at, lim)) + rule `vload-pack`{C : context, M : M, N : N, sx : sx, x : idx, memarg : memarg, at : addrtype, lim : limits}: + `%|-%:%`(C, `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), N, sx)), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, (M * N)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:490.1-493.36 - rule `vload-splat`{C : context, `vectype?#4` : vectype?, memidx#53 : memidx, memarg#25 : memarg, sz#101 : sz, i#8229 : nat, N : N, x : idx, memarg : memarg, resulttype#2075 : resulttype, `localidx*#1247` : localidx*, `X*#9065` : valtype*, at : addrtype, `X*#9133` : valtype*, `memtype*#19` : memtype*, i#8253 : nat, addrtype#705 : addrtype, limits#705 : limits, lim : limits}: - `%|-%:%`(C, `VLOAD`_instr{`vectype?#4`, memidx#53, memarg#25}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#101}(`%`_sz{i#8229}(N))), x, memarg), `%->_%%`_instrtype{resulttype#2075, `localidx*#1247`}(`%`_resulttype{`X*#9065`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9133`}([`V128`_valtype]))) - -- if (C.`MEMS`_context{`memtype*#19`}[x!`%`_idx{i#8253}.0] = `%%PAGE`_memtype{addrtype#705, limits#705}(at, lim)) + rule `vload-splat`{C : context, N : N, x : idx, memarg : memarg, at : addrtype, lim : limits}: + `%|-%:%`(C, `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, N) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:495.1-498.36 - rule `vload-zero`{C : context, `vectype?#5` : vectype?, memidx#55 : memidx, memarg#27 : memarg, sz#148 : sz, i#8279 : nat, i#8286 : nat, N : N, x : idx, memarg : memarg, resulttype#2095 : resulttype, `localidx*#1259` : localidx*, `X*#9144` : valtype*, at : addrtype, `X*#9212` : valtype*, `memtype*#20` : memtype*, i#8310 : nat, addrtype#717 : addrtype, limits#717 : limits, lim : limits}: - `%|-%:%`(C, `VLOAD`_instr{`vectype?#5`, memidx#55, memarg#27}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#148, i#8279}(`%`_sz{i#8286}(N))), x, memarg), `%->_%%`_instrtype{resulttype#2095, `localidx*#1259`}(`%`_resulttype{`X*#9144`}([(at : addrtype <: valtype)]), [], `%`_resulttype{`X*#9212`}([`V128`_valtype]))) - -- if (C.`MEMS`_context{`memtype*#20`}[x!`%`_idx{i#8310}.0] = `%%PAGE`_memtype{addrtype#717, limits#717}(at, lim)) + rule `vload-zero`{C : context, N : N, x : idx, memarg : memarg, at : addrtype, lim : limits}: + `%|-%:%`(C, `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, N) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:500.1-504.21 - rule vload_lane{C : context, vectype#24 : vectype, sz#150 : sz, memidx#57 : memidx, memarg#29 : memarg, laneidx#9 : laneidx, i#8318 : nat, N : N, x : idx, memarg : memarg, i : laneidx, resulttype#2115 : resulttype, `localidx*#1271` : localidx*, `X*#9233` : valtype*, at : addrtype, `X*#9282` : valtype*, `memtype*#21` : memtype*, i#8356 : nat, addrtype#729 : addrtype, limits#729 : limits, lim : limits, i#8370 : nat}: - `%|-%:%`(C, `VLOAD_LANE`_instr{vectype#24, sz#150, memidx#57, memarg#29, laneidx#9}(`V128`_vectype, `%`_sz{i#8318}(N), x, memarg, i), `%->_%%`_instrtype{resulttype#2115, `localidx*#1271`}(`%`_resulttype{`X*#9233`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9282`}([`V128`_valtype]))) - -- if (C.`MEMS`_context{`memtype*#21`}[x!`%`_idx{i#8356}.0] = `%%PAGE`_memtype{addrtype#729, limits#729}(at, lim)) + rule vload_lane{C : context, N : N, x : idx, memarg : memarg, i : laneidx, at : addrtype, lim : limits}: + `%|-%:%`(C, `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, memarg, i), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, N) - -- if ((i!`%`_laneidx{i#8370}.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat))) + -- if ((i!`%`_laneidx.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:506.1-509.47 - rule vstore{C : context, vectype#26 : vectype, memidx#59 : memidx, memarg#31 : memarg, x : idx, memarg : memarg, resulttype#2135 : resulttype, `localidx*#1283` : localidx*, `X*#9303` : valtype*, at : addrtype, `X*#9352` : valtype*, `memtype*#22` : memtype*, i#8394 : nat, addrtype#741 : addrtype, limits#741 : limits, lim : limits}: - `%|-%:%`(C, `VSTORE`_instr{vectype#26, memidx#59, memarg#31}(`V128`_vectype, x, memarg), `%->_%%`_instrtype{resulttype#2135, `localidx*#1283`}(`%`_resulttype{`X*#9303`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9352`}([]))) - -- if (C.`MEMS`_context{`memtype*#22`}[x!`%`_idx{i#8394}.0] = `%%PAGE`_memtype{addrtype#741, limits#741}(at, lim)) + rule vstore{C : context, x : idx, memarg : memarg, at : addrtype, lim : limits}: + `%|-%:%`(C, `VSTORE`_instr(`V128`_vectype, x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, $vsize(`V128`_vectype)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:511.1-515.21 - rule vstore_lane{C : context, vectype#28 : vectype, sz#152 : sz, memidx#61 : memidx, memarg#33 : memarg, laneidx#11 : laneidx, i#8402 : nat, N : N, x : idx, memarg : memarg, i : laneidx, resulttype#2155 : resulttype, `localidx*#1295` : localidx*, `X*#9373` : valtype*, at : addrtype, `X*#9422` : valtype*, `memtype*#23` : memtype*, i#8440 : nat, addrtype#753 : addrtype, limits#753 : limits, lim : limits, i#8454 : nat}: - `%|-%:%`(C, `VSTORE_LANE`_instr{vectype#28, sz#152, memidx#61, memarg#33, laneidx#11}(`V128`_vectype, `%`_sz{i#8402}(N), x, memarg, i), `%->_%%`_instrtype{resulttype#2155, `localidx*#1295`}(`%`_resulttype{`X*#9373`}([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype{`X*#9422`}([]))) - -- if (C.`MEMS`_context{`memtype*#23`}[x!`%`_idx{i#8440}.0] = `%%PAGE`_memtype{addrtype#753, limits#753}(at, lim)) + rule vstore_lane{C : context, N : N, x : idx, memarg : memarg, i : laneidx, at : addrtype, lim : limits}: + `%|-%:%`(C, `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, memarg, i), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([]))) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, N) - -- if ((i!`%`_laneidx{i#8454}.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat))) + -- if ((i!`%`_laneidx.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:520.1-521.33 - rule const{C : context, numtype#19 : numtype, nt : numtype, c_nt : num_(nt), resulttype#2175 : resulttype, `localidx*#1307` : localidx*, `X*#9443` : valtype*, `X*#9492` : valtype*}: - `%|-%:%`(C, `CONST`_instr{numtype#19}(nt, c_nt), `%->_%%`_instrtype{resulttype#2175, `localidx*#1307`}(`%`_resulttype{`X*#9443`}([]), [], `%`_resulttype{`X*#9492`}([(nt : numtype <: valtype)]))) + rule const{C : context, nt : numtype, c_nt : num_(nt)}: + `%|-%:%`(C, `CONST`_instr(nt, c_nt), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(nt : numtype <: valtype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:523.1-524.34 - rule unop{C : context, numtype#21 : numtype, nt : numtype, unop_nt : unop_(nt), resulttype#2195 : resulttype, `localidx*#1319` : localidx*, `X*#9503` : valtype*, `X*#9571` : valtype*}: - `%|-%:%`(C, `UNOP`_instr{numtype#21}(nt, unop_nt), `%->_%%`_instrtype{resulttype#2195, `localidx*#1319`}(`%`_resulttype{`X*#9503`}([(nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9571`}([(nt : numtype <: valtype)]))) + rule unop{C : context, nt : numtype, unop_nt : unop_(nt)}: + `%|-%:%`(C, `UNOP`_instr(nt, unop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:526.1-527.39 - rule binop{C : context, numtype#23 : numtype, nt : numtype, binop_nt : binop_(nt), resulttype#2215 : resulttype, `localidx*#1331` : localidx*, `X*#9592` : valtype*, `X*#9641` : valtype*}: - `%|-%:%`(C, `BINOP`_instr{numtype#23}(nt, binop_nt), `%->_%%`_instrtype{resulttype#2215, `localidx*#1331`}(`%`_resulttype{`X*#9592`}([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9641`}([(nt : numtype <: valtype)]))) + rule binop{C : context, nt : numtype, binop_nt : binop_(nt)}: + `%|-%:%`(C, `BINOP`_instr(nt, binop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:529.1-530.39 - rule testop{C : context, numtype#25 : numtype, nt : numtype, testop_nt : testop_(nt), resulttype#2235 : resulttype, `localidx*#1343` : localidx*, `X*#9652` : valtype*, `X*#9720` : valtype*}: - `%|-%:%`(C, `TESTOP`_instr{numtype#25}(nt, testop_nt), `%->_%%`_instrtype{resulttype#2235, `localidx*#1343`}(`%`_resulttype{`X*#9652`}([(nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9720`}([`I32`_valtype]))) + rule testop{C : context, nt : numtype, testop_nt : testop_(nt)}: + `%|-%:%`(C, `TESTOP`_instr(nt, testop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:532.1-533.40 - rule relop{C : context, numtype#27 : numtype, nt : numtype, relop_nt : relop_(nt), resulttype#2255 : resulttype, `localidx*#1355` : localidx*, `X*#9741` : valtype*, `X*#9790` : valtype*}: - `%|-%:%`(C, `RELOP`_instr{numtype#27}(nt, relop_nt), `%->_%%`_instrtype{resulttype#2255, `localidx*#1355`}(`%`_resulttype{`X*#9741`}([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype{`X*#9790`}([`I32`_valtype]))) + rule relop{C : context, nt : numtype, relop_nt : relop_(nt)}: + `%|-%:%`(C, `RELOP`_instr(nt, relop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:535.1-536.44 - rule cvtop{C : context, numtype_1#3 : numtype, numtype_2#3 : numtype, nt_1 : numtype, nt_2 : numtype, cvtop : cvtop__(nt_2, nt_1), resulttype#2275 : resulttype, `localidx*#1367` : localidx*, `X*#9801` : valtype*, `X*#9869` : valtype*}: - `%|-%:%`(C, `CVTOP`_instr{numtype_1#3, numtype_2#3}(nt_1, nt_2, cvtop), `%->_%%`_instrtype{resulttype#2275, `localidx*#1367`}(`%`_resulttype{`X*#9801`}([(nt_2 : numtype <: valtype)]), [], `%`_resulttype{`X*#9869`}([(nt_1 : numtype <: valtype)]))) + rule cvtop{C : context, nt_1 : numtype, nt_2 : numtype, cvtop : cvtop__(nt_2, nt_1)}: + `%|-%:%`(C, `CVTOP`_instr(nt_1, nt_2, cvtop), `%->_%%`_instrtype(`%`_resulttype([(nt_2 : numtype <: valtype)]), [], `%`_resulttype([(nt_1 : numtype <: valtype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:541.1-542.35 - rule vconst{C : context, vectype#30 : vectype, c : vec_(`V128`_Vnn), resulttype#2295 : resulttype, `localidx*#1379` : localidx*, `X*#9890` : valtype*, `X*#9939` : valtype*}: - `%|-%:%`(C, `VCONST`_instr{vectype#30}(`V128`_vectype, c), `%->_%%`_instrtype{resulttype#2295, `localidx*#1379`}(`%`_resulttype{`X*#9890`}([]), [], `%`_resulttype{`X*#9939`}([`V128`_valtype]))) + rule vconst{C : context, c : vec_(`V128`_Vnn)}: + `%|-%:%`(C, `VCONST`_instr(`V128`_vectype, c), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:544.1-545.41 - rule vvunop{C : context, vectype#32 : vectype, vvunop#3 : vvunop, vvunop : vvunop, resulttype#2315 : resulttype, `localidx*#1391` : localidx*, `X*#9958` : valtype*, `X*#10007` : valtype*}: - `%|-%:%`(C, `VVUNOP`_instr{vectype#32, vvunop#3}(`V128`_vectype, vvunop), `%->_%%`_instrtype{resulttype#2315, `localidx*#1391`}(`%`_resulttype{`X*#9958`}([`V128`_valtype]), [], `%`_resulttype{`X*#10007`}([`V128`_valtype]))) + rule vvunop{C : context, vvunop : vvunop}: + `%|-%:%`(C, `VVUNOP`_instr(`V128`_vectype, vvunop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:547.1-548.48 - rule vvbinop{C : context, vectype#34 : vectype, vvbinop#3 : vvbinop, vvbinop : vvbinop, resulttype#2335 : resulttype, `localidx*#1403` : localidx*, `X*#10028` : valtype*, `X*#10077` : valtype*}: - `%|-%:%`(C, `VVBINOP`_instr{vectype#34, vvbinop#3}(`V128`_vectype, vvbinop), `%->_%%`_instrtype{resulttype#2335, `localidx*#1403`}(`%`_resulttype{`X*#10028`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10077`}([`V128`_valtype]))) + rule vvbinop{C : context, vvbinop : vvbinop}: + `%|-%:%`(C, `VVBINOP`_instr(`V128`_vectype, vvbinop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:550.1-551.55 - rule vvternop{C : context, vectype#36 : vectype, vvternop#3 : vvternop, vvternop : vvternop, resulttype#2355 : resulttype, `localidx*#1415` : localidx*, `X*#10098` : valtype*, `X*#10147` : valtype*}: - `%|-%:%`(C, `VVTERNOP`_instr{vectype#36, vvternop#3}(`V128`_vectype, vvternop), `%->_%%`_instrtype{resulttype#2355, `localidx*#1415`}(`%`_resulttype{`X*#10098`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10147`}([`V128`_valtype]))) + rule vvternop{C : context, vvternop : vvternop}: + `%|-%:%`(C, `VVTERNOP`_instr(`V128`_vectype, vvternop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:553.1-554.44 - rule vvtestop{C : context, vectype#38 : vectype, vvtestop#3 : vvtestop, vvtestop : vvtestop, resulttype#2375 : resulttype, `localidx*#1427` : localidx*, `X*#10166` : valtype*, `X*#10215` : valtype*}: - `%|-%:%`(C, `VVTESTOP`_instr{vectype#38, vvtestop#3}(`V128`_vectype, vvtestop), `%->_%%`_instrtype{resulttype#2375, `localidx*#1427`}(`%`_resulttype{`X*#10166`}([`V128`_valtype]), [], `%`_resulttype{`X*#10215`}([`I32`_valtype]))) + rule vvtestop{C : context, vvtestop : vvtestop}: + `%|-%:%`(C, `VVTESTOP`_instr(`V128`_vectype, vvtestop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:556.1-557.37 - rule vunop{C : context, shape#269 : shape, sh : shape, vunop : vunop_(sh), resulttype#2395 : resulttype, `localidx*#1439` : localidx*, `X*#10234` : valtype*, `X*#10283` : valtype*}: - `%|-%:%`(C, `VUNOP`_instr{shape#269}(sh, vunop), `%->_%%`_instrtype{resulttype#2395, `localidx*#1439`}(`%`_resulttype{`X*#10234`}([`V128`_valtype]), [], `%`_resulttype{`X*#10283`}([`V128`_valtype]))) + rule vunop{C : context, sh : shape, vunop : vunop_(sh)}: + `%|-%:%`(C, `VUNOP`_instr(sh, vunop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:559.1-560.44 - rule vbinop{C : context, shape#271 : shape, sh : shape, vbinop : vbinop_(sh), resulttype#2415 : resulttype, `localidx*#1451` : localidx*, `X*#10304` : valtype*, `X*#10353` : valtype*}: - `%|-%:%`(C, `VBINOP`_instr{shape#271}(sh, vbinop), `%->_%%`_instrtype{resulttype#2415, `localidx*#1451`}(`%`_resulttype{`X*#10304`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10353`}([`V128`_valtype]))) + rule vbinop{C : context, sh : shape, vbinop : vbinop_(sh)}: + `%|-%:%`(C, `VBINOP`_instr(sh, vbinop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:562.1-563.51 - rule vternop{C : context, shape#273 : shape, sh : shape, vternop : vternop_(sh), resulttype#2435 : resulttype, `localidx*#1463` : localidx*, `X*#10374` : valtype*, `X*#10423` : valtype*}: - `%|-%:%`(C, `VTERNOP`_instr{shape#273}(sh, vternop), `%->_%%`_instrtype{resulttype#2435, `localidx*#1463`}(`%`_resulttype{`X*#10374`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10423`}([`V128`_valtype]))) + rule vternop{C : context, sh : shape, vternop : vternop_(sh)}: + `%|-%:%`(C, `VTERNOP`_instr(sh, vternop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:565.1-566.40 - rule vtestop{C : context, shape#275 : shape, sh : shape, vtestop : vtestop_(sh), resulttype#2455 : resulttype, `localidx*#1475` : localidx*, `X*#10442` : valtype*, `X*#10491` : valtype*}: - `%|-%:%`(C, `VTESTOP`_instr{shape#275}(sh, vtestop), `%->_%%`_instrtype{resulttype#2455, `localidx*#1475`}(`%`_resulttype{`X*#10442`}([`V128`_valtype]), [], `%`_resulttype{`X*#10491`}([`I32`_valtype]))) + rule vtestop{C : context, sh : shape, vtestop : vtestop_(sh)}: + `%|-%:%`(C, `VTESTOP`_instr(sh, vtestop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:568.1-569.44 - rule vrelop{C : context, shape#277 : shape, sh : shape, vrelop : vrelop_(sh), resulttype#2475 : resulttype, `localidx*#1487` : localidx*, `X*#10512` : valtype*, `X*#10561` : valtype*}: - `%|-%:%`(C, `VRELOP`_instr{shape#277}(sh, vrelop), `%->_%%`_instrtype{resulttype#2475, `localidx*#1487`}(`%`_resulttype{`X*#10512`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10561`}([`V128`_valtype]))) + rule vrelop{C : context, sh : shape, vrelop : vrelop_(sh)}: + `%|-%:%`(C, `VRELOP`_instr(sh, vrelop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:571.1-572.47 - rule vshiftop{C : context, ishape#5 : ishape, sh : ishape, vshiftop : vshiftop_(sh), resulttype#2495 : resulttype, `localidx*#1499` : localidx*, `X*#10582` : valtype*, `X*#10631` : valtype*}: - `%|-%:%`(C, `VSHIFTOP`_instr{ishape#5}(sh, vshiftop), `%->_%%`_instrtype{resulttype#2495, `localidx*#1499`}(`%`_resulttype{`X*#10582`}([`V128`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#10631`}([`V128`_valtype]))) + rule vshiftop{C : context, sh : ishape, vshiftop : vshiftop_(sh)}: + `%|-%:%`(C, `VSHIFTOP`_instr(sh, vshiftop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `I32`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:574.1-575.33 - rule vbitmask{C : context, ishape#7 : ishape, sh : ishape, resulttype#2515 : resulttype, `localidx*#1511` : localidx*, `X*#10650` : valtype*, `X*#10699` : valtype*}: - `%|-%:%`(C, `VBITMASK`_instr{ishape#7}(sh), `%->_%%`_instrtype{resulttype#2515, `localidx*#1511`}(`%`_resulttype{`X*#10650`}([`V128`_valtype]), [], `%`_resulttype{`X*#10699`}([`I32`_valtype]))) + rule vbitmask{C : context, sh : ishape}: + `%|-%:%`(C, `VBITMASK`_instr(sh), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:577.1-578.50 - rule vswizzlop{C : context, bshape#5 : bshape, sh : bshape, vswizzlop : vswizzlop_(sh), resulttype#2535 : resulttype, `localidx*#1523` : localidx*, `X*#10720` : valtype*, `X*#10769` : valtype*}: - `%|-%:%`(C, `VSWIZZLOP`_instr{bshape#5}(sh, vswizzlop), `%->_%%`_instrtype{resulttype#2535, `localidx*#1523`}(`%`_resulttype{`X*#10720`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10769`}([`V128`_valtype]))) + rule vswizzlop{C : context, sh : bshape, vswizzlop : vswizzlop_(sh)}: + `%|-%:%`(C, `VSWIZZLOP`_instr(sh, vswizzlop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:580.1-582.29 - rule vshuffle{C : context, bshape#7 : bshape, `laneidx*#3` : laneidx*, i#8480 : nat, shape#297 : shape, sh : bshape, `i*` : laneidx*, resulttype#2555 : resulttype, `localidx*#1535` : localidx*, `X*#10790` : valtype*, `X*#10839` : valtype*, `i#8509*` : nat*, `i#8523*` : nat*, `shape#304*` : shape*}: - `%|-%:%`(C, `VSHUFFLE`_instr{bshape#7, `laneidx*#3`, i#8480, shape#297}(sh, i*{i <- `i*`}), `%->_%%`_instrtype{resulttype#2555, `localidx*#1535`}(`%`_resulttype{`X*#10790`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#10839`}([`V128`_valtype]))) - -- (if (i!`%`_laneidx{i#8523}.0 < (2 * $dim(sh!`%`_bshape{shape#304}.0)!`%`_dim{i#8509}.0)))*{i <- `i*`, i#8509 <- `i#8509*`, i#8523 <- `i#8523*`, shape#304 <- `shape#304*`} + rule vshuffle{C : context, sh : bshape, `i*` : laneidx*}: + `%|-%:%`(C, `VSHUFFLE`_instr(sh, i*{i <- `i*`}), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + -- (if (i!`%`_laneidx.0 < (2 * $dim(sh!`%`_bshape.0)!`%`_dim.0)))*{i <- `i*`} ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:584.1-585.44 - rule vsplat{C : context, shape#306 : shape, sh : shape, resulttype#2575 : resulttype, `localidx*#1547` : localidx*, `X*#10850` : valtype*, `X*#10916` : valtype*}: - `%|-%:%`(C, `VSPLAT`_instr{shape#306}(sh), `%->_%%`_instrtype{resulttype#2575, `localidx*#1547`}(`%`_resulttype{`X*#10850`}([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype{`X*#10916`}([`V128`_valtype]))) + rule vsplat{C : context, sh : shape}: + `%|-%:%`(C, `VSPLAT`_instr(sh), `%->_%%`_instrtype(`%`_resulttype([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:587.1-589.21 - rule vextract_lane{C : context, shape#308 : shape, `sx?#11` : sx?, laneidx#13 : laneidx, sh : shape, `sx?` : sx?, i : laneidx, resulttype#2595 : resulttype, `localidx*#1559` : localidx*, `X*#10935` : valtype*, `X*#10984` : valtype*, i#8600 : nat, i#8602 : nat}: - `%|-%:%`(C, `VEXTRACT_LANE`_instr{shape#308, `sx?#11`, laneidx#13}(sh, sx?{sx <- `sx?`}, i), `%->_%%`_instrtype{resulttype#2595, `localidx*#1559`}(`%`_resulttype{`X*#10935`}([`V128`_valtype]), [], `%`_resulttype{`X*#10984`}([($unpackshape(sh) : numtype <: valtype)]))) - -- if (i!`%`_laneidx{i#8600}.0 < $dim(sh)!`%`_dim{i#8602}.0) + rule vextract_lane{C : context, sh : shape, `sx?` : sx?, i : laneidx}: + `%|-%:%`(C, `VEXTRACT_LANE`_instr(sh, sx?{sx <- `sx?`}, i), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([($unpackshape(sh) : numtype <: valtype)]))) + -- if (i!`%`_laneidx.0 < $dim(sh)!`%`_dim.0) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:591.1-593.21 - rule vreplace_lane{C : context, shape#310 : shape, laneidx#15 : laneidx, sh : shape, i : laneidx, resulttype#2615 : resulttype, `localidx*#1571` : localidx*, `X*#11005` : valtype*, `X*#11054` : valtype*, i#8636 : nat, i#8638 : nat}: - `%|-%:%`(C, `VREPLACE_LANE`_instr{shape#310, laneidx#15}(sh, i), `%->_%%`_instrtype{resulttype#2615, `localidx*#1571`}(`%`_resulttype{`X*#11005`}([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype{`X*#11054`}([`V128`_valtype]))) - -- if (i!`%`_laneidx{i#8636}.0 < $dim(sh)!`%`_dim{i#8638}.0) + rule vreplace_lane{C : context, sh : shape, i : laneidx}: + `%|-%:%`(C, `VREPLACE_LANE`_instr(sh, i), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))) + -- if (i!`%`_laneidx.0 < $dim(sh)!`%`_dim.0) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:595.1-596.50 - rule vextunop{C : context, ishape_1#9 : ishape, ishape_2#9 : ishape, sh_1 : ishape, sh_2 : ishape, vextunop : vextunop__(sh_2, sh_1), resulttype#2635 : resulttype, `localidx*#1583` : localidx*, `X*#11073` : valtype*, `X*#11122` : valtype*}: - `%|-%:%`(C, `VEXTUNOP`_instr{ishape_1#9, ishape_2#9}(sh_1, sh_2, vextunop), `%->_%%`_instrtype{resulttype#2635, `localidx*#1583`}(`%`_resulttype{`X*#11073`}([`V128`_valtype]), [], `%`_resulttype{`X*#11122`}([`V128`_valtype]))) + rule vextunop{C : context, sh_1 : ishape, sh_2 : ishape, vextunop : vextunop__(sh_2, sh_1)}: + `%|-%:%`(C, `VEXTUNOP`_instr(sh_1, sh_2, vextunop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:598.1-599.57 - rule vextbinop{C : context, ishape_1#11 : ishape, ishape_2#11 : ishape, sh_1 : ishape, sh_2 : ishape, vextbinop : vextbinop__(sh_2, sh_1), resulttype#2655 : resulttype, `localidx*#1595` : localidx*, `X*#11143` : valtype*, `X*#11192` : valtype*}: - `%|-%:%`(C, `VEXTBINOP`_instr{ishape_1#11, ishape_2#11}(sh_1, sh_2, vextbinop), `%->_%%`_instrtype{resulttype#2655, `localidx*#1595`}(`%`_resulttype{`X*#11143`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11192`}([`V128`_valtype]))) + rule vextbinop{C : context, sh_1 : ishape, sh_2 : ishape, vextbinop : vextbinop__(sh_2, sh_1)}: + `%|-%:%`(C, `VEXTBINOP`_instr(sh_1, sh_2, vextbinop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:601.1-602.64 - rule vextternop{C : context, ishape_1#13 : ishape, ishape_2#13 : ishape, sh_1 : ishape, sh_2 : ishape, vextternop : vextternop__(sh_2, sh_1), resulttype#2675 : resulttype, `localidx*#1607` : localidx*, `X*#11213` : valtype*, `X*#11262` : valtype*}: - `%|-%:%`(C, `VEXTTERNOP`_instr{ishape_1#13, ishape_2#13}(sh_1, sh_2, vextternop), `%->_%%`_instrtype{resulttype#2675, `localidx*#1607`}(`%`_resulttype{`X*#11213`}([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11262`}([`V128`_valtype]))) + rule vextternop{C : context, sh_1 : ishape, sh_2 : ishape, vextternop : vextternop__(sh_2, sh_1)}: + `%|-%:%`(C, `VEXTTERNOP`_instr(sh_1, sh_2, vextternop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:604.1-605.48 - rule vnarrow{C : context, ishape_1#15 : ishape, ishape_2#15 : ishape, sx#56 : sx, shape#348 : shape, Jnn#95 : Jnn, shape#349 : shape, Jnn#96 : Jnn, shape#350 : shape, Jnn#97 : Jnn, sh_1 : ishape, sh_2 : ishape, sx : sx, resulttype#2695 : resulttype, `localidx*#1619` : localidx*, `X*#11283` : valtype*, `X*#11332` : valtype*}: - `%|-%:%`(C, `VNARROW`_instr{ishape_1#15, ishape_2#15, sx#56, shape#348, Jnn#95, shape#349, Jnn#96, shape#350, Jnn#97}(sh_1, sh_2, sx), `%->_%%`_instrtype{resulttype#2695, `localidx*#1619`}(`%`_resulttype{`X*#11283`}([`V128`_valtype `V128`_valtype]), [], `%`_resulttype{`X*#11332`}([`V128`_valtype]))) + rule vnarrow{C : context, sh_1 : ishape, sh_2 : ishape, sx : sx}: + `%|-%:%`(C, `VNARROW`_instr(sh_1, sh_2, sx), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:607.1-608.46 - rule vcvtop{C : context, shape_1#3 : shape, shape_2#3 : shape, sh_1 : shape, sh_2 : shape, vcvtop : vcvtop__(sh_2, sh_1), resulttype#2715 : resulttype, `localidx*#1631` : localidx*, `X*#11351` : valtype*, `X*#11400` : valtype*}: - `%|-%:%`(C, `VCVTOP`_instr{shape_1#3, shape_2#3}(sh_1, sh_2, vcvtop), `%->_%%`_instrtype{resulttype#2715, `localidx*#1631`}(`%`_resulttype{`X*#11351`}([`V128`_valtype]), [], `%`_resulttype{`X*#11400`}([`V128`_valtype]))) + rule vcvtop{C : context, sh_1 : shape, sh_2 : shape, vcvtop : vcvtop__(sh_2, sh_1)}: + `%|-%:%`(C, `VCVTOP`_instr(sh_1, sh_2, vcvtop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:6.1-6.96 relation Instrs_ok: `%|-%:%`(context, instr*, instrtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:613.1-614.24 - rule empty{C : context, resulttype#2735 : resulttype, `localidx*#1643` : localidx*, `X*#11421` : valtype*, `X*#11470` : valtype*}: - `%|-%:%`(C, [], `%->_%%`_instrtype{resulttype#2735, `localidx*#1643`}(`%`_resulttype{`X*#11421`}([]), [], `%`_resulttype{`X*#11470`}([]))) + rule empty{C : context}: + `%|-%:%`(C, [], `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:617.1-621.82 - rule seq{C : context, instr_1 : instr, `instr_2*` : instr*, resulttype#2755 : resulttype, `localidx*#1655` : localidx*, `X*#11481` : valtype*, `t_1*` : valtype*, `x_1*` : idx*, `x_2*` : idx*, `X*#11542` : valtype*, `t_3*` : valtype*, resulttype#2775 : resulttype, `localidx*#1667` : localidx*, `X*#11555` : valtype*, `X*#11607` : valtype*, `t_2*` : valtype*, `i#8868*` : nat*, `init*` : init*, `init#113*` : init*, `localtype*#13*` : localtype**, `t*` : valtype*, `valtype#403*` : valtype*, `init#131*` : init*, `valtype#421*` : valtype*, resulttype#2795 : resulttype, `localidx*#1679` : localidx*, `X*#11620` : valtype*, `X*#11672` : valtype*}: - `%|-%:%`(C, [instr_1] ++ instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype{resulttype#2755, `localidx*#1655`}(`%`_resulttype{`X*#11481`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11542`}(t_3*{t_3 <- `t_3*`}))) - -- Instr_ok: `%|-%:%`(C, instr_1, `%->_%%`_instrtype{resulttype#2775, `localidx*#1667`}(`%`_resulttype{`X*#11555`}(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype{`X*#11607`}(t_2*{t_2 <- `t_2*`}))) - -- (if (C.`LOCALS`_context{`localtype*#13`}[x_1!`%`_idx{i#8868}.0] = `%%`_localtype{init#113, valtype#403}(init, t)))*{i#8868 <- `i#8868*`, init <- `init*`, init#113 <- `init#113*`, `localtype*#13` <- `localtype*#13*`, t <- `t*`, valtype#403 <- `valtype#403*`, x_1 <- `x_1*`} - -- Instrs_ok: `%|-%:%`($with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype{init#131, valtype#421}(`SET`_init, t)*{init#131 <- `init#131*`, t <- `t*`, valtype#421 <- `valtype#421*`}), instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype{resulttype#2795, `localidx*#1679`}(`%`_resulttype{`X*#11620`}(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype{`X*#11672`}(t_3*{t_3 <- `t_3*`}))) + rule seq{C : context, instr_1 : instr, `instr_2*` : instr*, `t_1*` : valtype*, `x_1*` : idx*, `x_2*` : idx*, `t_3*` : valtype*, `t_2*` : valtype*, `init*` : init*, `t*` : valtype*}: + `%|-%:%`(C, [instr_1] ++ instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))) + -- Instr_ok: `%|-%:%`(C, instr_1, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- (if (C.`LOCALS`_context[x_1!`%`_idx.0] = `%%`_localtype(init, t)))*{init <- `init*`, t <- `t*`, x_1 <- `x_1*`} + -- Instrs_ok: `%|-%:%`($with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype(`SET`_init, t)*{t <- `t*`}), instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:623.1-627.33 rule sub{C : context, `instr*` : instr*, it' : instrtype, it : instrtype}: @@ -115514,18 +90765,18 @@ relation Instrs_ok: `%|-%:%`(context, instr*, instrtype) -- Instrtype_ok: `%|-%:OK`(C, it') ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:630.1-633.33 - rule frame{C : context, `instr*` : instr*, resulttype#2865 : resulttype, `localidx*#1721` : localidx*, `X*#11695` : valtype*, `t*` : valtype*, `t_1*` : valtype*, `x*` : idx*, `X*#11755` : valtype*, `t_2*` : valtype*, resulttype#2885 : resulttype, `localidx*#1733` : localidx*, `X*#11766` : valtype*, `X*#11818` : valtype*, `X*#11831` : valtype*}: - `%|-%:%`(C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#2865, `localidx*#1721`}(`%`_resulttype{`X*#11695`}(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11755`}(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`(C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#2885, `localidx*#1733`}(`%`_resulttype{`X*#11766`}(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype{`X*#11818`}(t_2*{t_2 <- `t_2*`}))) - -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype{`X*#11831`}(t*{t <- `t*`})) + rule frame{C : context, `instr*` : instr*, `t*` : valtype*, `t_1*` : valtype*, `x*` : idx*, `t_2*` : valtype*}: + `%|-%:%`(C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`(C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype(t*{t <- `t*`})) } ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Expr_ok: `%|-%:%`(context, expr, resulttype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule _{C : context, `instr*` : instr*, `X*#11844` : valtype*, `t*` : valtype*, resulttype#2905 : resulttype, `localidx*#1745` : localidx*, `X*#11867` : valtype*, `X*#11911` : valtype*}: - `%|-%:%`(C, instr*{instr <- `instr*`}, `%`_resulttype{`X*#11844`}(t*{t <- `t*`})) - -- Instrs_ok: `%|-%:%`(C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#2905, `localidx*#1745`}(`%`_resulttype{`X*#11867`}([]), [], `%`_resulttype{`X*#11911`}(t*{t <- `t*`}))) + rule _{C : context, `instr*` : instr*, `t*` : valtype*}: + `%|-%:%`(C, instr*{instr <- `instr*`}, `%`_resulttype(t*{t <- `t*`})) + -- Instrs_ok: `%|-%:%`(C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(t*{t <- `t*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Nondefaultable: `|-%NONDEFAULTABLE`(valtype) @@ -115537,44 +90788,44 @@ relation Nondefaultable: `|-%NONDEFAULTABLE`(valtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Instr_const: `%|-%CONST`(context, instr) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule const{C : context, numtype#29 : numtype, nt : numtype, c_nt : num_(nt)}: - `%|-%CONST`(C, `CONST`_instr{numtype#29}(nt, c_nt)) + rule const{C : context, nt : numtype, c_nt : num_(nt)}: + `%|-%CONST`(C, `CONST`_instr(nt, c_nt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule vconst{C : context, vectype#40 : vectype, vt : vectype, c_vt : vec_(vt)}: - `%|-%CONST`(C, `VCONST`_instr{vectype#40}(vt, c_vt)) + rule vconst{C : context, vt : vectype, c_vt : vec_(vt)}: + `%|-%CONST`(C, `VCONST`_instr(vt, c_vt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule ref.null{C : context, heaptype#945 : heaptype, ht : heaptype}: - `%|-%CONST`(C, `REF.NULL`_instr{heaptype#945}(ht)) + rule ref.null{C : context, ht : heaptype}: + `%|-%CONST`(C, `REF.NULL`_instr(ht)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule ref.i31{C : context}: `%|-%CONST`(C, `REF.I31`_instr) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule ref.func{C : context, funcidx#183 : funcidx, x : idx}: - `%|-%CONST`(C, `REF.FUNC`_instr{funcidx#183}(x)) + rule ref.func{C : context, x : idx}: + `%|-%CONST`(C, `REF.FUNC`_instr(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule struct.new{C : context, typeidx#469 : typeidx, x : idx}: - `%|-%CONST`(C, `STRUCT.NEW`_instr{typeidx#469}(x)) + rule struct.new{C : context, x : idx}: + `%|-%CONST`(C, `STRUCT.NEW`_instr(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule struct.new_default{C : context, typeidx#471 : typeidx, x : idx}: - `%|-%CONST`(C, `STRUCT.NEW_DEFAULT`_instr{typeidx#471}(x)) + rule struct.new_default{C : context, x : idx}: + `%|-%CONST`(C, `STRUCT.NEW_DEFAULT`_instr(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule array.new{C : context, typeidx#473 : typeidx, x : idx}: - `%|-%CONST`(C, `ARRAY.NEW`_instr{typeidx#473}(x)) + rule array.new{C : context, x : idx}: + `%|-%CONST`(C, `ARRAY.NEW`_instr(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule array.new_default{C : context, typeidx#475 : typeidx, x : idx}: - `%|-%CONST`(C, `ARRAY.NEW_DEFAULT`_instr{typeidx#475}(x)) + rule array.new_default{C : context, x : idx}: + `%|-%CONST`(C, `ARRAY.NEW_DEFAULT`_instr(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule array.new_fixed{C : context, typeidx#477 : typeidx, u32#15 : u32, x : idx, i#9243 : nat, n : n}: - `%|-%CONST`(C, `ARRAY.NEW_FIXED`_instr{typeidx#477, u32#15}(x, `%`_u32{i#9243}(n))) + rule array.new_fixed{C : context, x : idx, n : n}: + `%|-%CONST`(C, `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule any.convert_extern{C : context}: @@ -115585,13 +90836,13 @@ relation Instr_const: `%|-%CONST`(context, instr) `%|-%CONST`(C, `EXTERN.CONVERT_ANY`_instr) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule global.get{C : context, globalidx#13 : globalidx, x : idx, `globaltype*#10` : globaltype*, i#9277 : nat, `mut?#817` : mut?, valtype#427 : valtype, t : valtype}: - `%|-%CONST`(C, `GLOBAL.GET`_instr{globalidx#13}(x)) - -- if (C.`GLOBALS`_context{`globaltype*#10`}[x!`%`_idx{i#9277}.0] = `%%`_globaltype{`mut?#817`, valtype#427}(?(), t)) + rule global.get{C : context, x : idx, t : valtype}: + `%|-%CONST`(C, `GLOBAL.GET`_instr(x)) + -- if (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(?(), t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule binop{C : context, numtype#31 : numtype, Inn : Inn, binop : binop_((Inn : Inn <: numtype))}: - `%|-%CONST`(C, `BINOP`_instr{numtype#31}((Inn : Inn <: numtype), binop)) + rule binop{C : context, Inn : Inn, binop : binop_((Inn : Inn <: numtype))}: + `%|-%CONST`(C, `BINOP`_instr((Inn : Inn <: numtype), binop)) -- if (Inn <- [`I32`_Inn `I64`_Inn]) -- if (binop <- [`ADD`_binop_ `SUB`_binop_ `MUL`_binop_]) @@ -115605,72 +90856,72 @@ relation Expr_const: `%|-%CONST`(context, expr) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Expr_ok_const: `%|-%:%CONST`(context, expr, valtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule _{C : context, expr : expr, t : valtype, `X*#11922` : valtype*}: + rule _{C : context, expr : expr, t : valtype}: `%|-%:%CONST`(C, expr, t) - -- Expr_ok: `%|-%:%`(C, expr, `%`_resulttype{`X*#11922`}([t])) + -- Expr_ok: `%|-%:%`(C, expr, `%`_resulttype([t])) -- Expr_const: `%|-%CONST`(C, expr) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Type_ok: `%|-%:%`(context, type, deftype*) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, rectype#865 : rectype, rectype : rectype, `dt*` : deftype*, x : idx, i#9287 : nat, `deftype*#53` : deftype*, `deftype*#54` : deftype*, `subtype*#10` : subtype*, `tagtype*#10` : tagtype*, `globaltype*#11` : globaltype*, `memtype*#24` : memtype*, `tabletype*#17` : tabletype*, `deftype*#55` : deftype*, `datatype*#11` : datatype*, `elemtype*#11` : elemtype*, `localtype*#14` : localtype*, `resulttype*#22` : resulttype*, `resulttype?#19` : resulttype?, `funcidx*#48` : funcidx*, typeidx#489 : typeidx}: - `%|-%:%`(C, `TYPE`_type{rectype#865}(rectype), dt*{dt <- `dt*`}) - -- if (x!`%`_idx{i#9287}.0 = |C.`TYPES`_context{`deftype*#53`}|) + rule _{C : context, rectype : rectype, `dt*` : deftype*, x : idx}: + `%|-%:%`(C, `TYPE`_type(rectype), dt*{dt <- `dt*`}) + -- if (x!`%`_idx.0 = |C.`TYPES`_context|) -- if (dt*{dt <- `dt*`} = $rolldt(x, rectype)) - -- Rectype_ok: `%|-%:%`(C +++ {`TYPES`{`deftype*#54`} dt*{dt <- `dt*`}, `RECS`{`subtype*#10`} [], `TAGS`{`tagtype*#10`} [], `GLOBALS`{`globaltype*#11`} [], `MEMS`{`memtype*#24`} [], `TABLES`{`tabletype*#17`} [], `FUNCS`{`deftype*#55`} [], `DATAS`{`datatype*#11`} [], `ELEMS`{`elemtype*#11`} [], `LOCALS`{`localtype*#14`} [], `LABELS`{`resulttype*#22`} [], `RETURN`{`resulttype?#19`} ?(), `REFS`{`funcidx*#48`} []}, rectype, `OK`_oktypeidx{typeidx#489}(x)) + -- Rectype_ok: `%|-%:%`(C +++ {`TYPES` dt*{dt <- `dt*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rectype, `OK`_oktypeidx(x)) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Tag_ok: `%|-%:%`(context, tag, tagtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, tagtype#105 : tagtype, tagtype : tagtype}: - `%|-%:%`(C, `TAG`_tag{tagtype#105}(tagtype), $clos_tagtype(C, tagtype)) + rule _{C : context, tagtype : tagtype}: + `%|-%:%`(C, `TAG`_tag(tagtype), $clos_tagtype(C, tagtype)) -- Tagtype_ok: `%|-%:OK`(C, tagtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Global_ok: `%|-%:%`(context, global, globaltype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, globaltype#117 : globaltype, expr#385 : expr, globaltype : globaltype, expr : expr, `mut?#847` : mut?, valtype#457 : valtype, t : valtype}: - `%|-%:%`(C, `GLOBAL`_global{globaltype#117, expr#385}(globaltype, expr), globaltype) + rule _{C : context, globaltype : globaltype, expr : expr, t : valtype}: + `%|-%:%`(C, `GLOBAL`_global(globaltype, expr), globaltype) -- Globaltype_ok: `%|-%:OK`(C, globaltype) - -- if (globaltype = `%%`_globaltype{`mut?#847`, valtype#457}(`MUT`_mut?{}, t)) + -- if (globaltype = `%%`_globaltype(`MUT`_mut?{}, t)) -- Expr_ok_const: `%|-%:%CONST`(C, expr, t) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Mem_ok: `%|-%:%`(context, mem, memtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, memtype#129 : memtype, memtype : memtype}: - `%|-%:%`(C, `MEMORY`_mem{memtype#129}(memtype), memtype) + rule _{C : context, memtype : memtype}: + `%|-%:%`(C, `MEMORY`_mem(memtype), memtype) -- Memtype_ok: `%|-%:OK`(C, memtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Table_ok: `%|-%:%`(context, table, tabletype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, tabletype#143 : tabletype, expr#397 : expr, tabletype : tabletype, expr : expr, addrtype#801 : addrtype, limits#801 : limits, reftype#531 : reftype, at : addrtype, lim : limits, rt : reftype}: - `%|-%:%`(C, `TABLE`_table{tabletype#143, expr#397}(tabletype, expr), tabletype) + rule _{C : context, tabletype : tabletype, expr : expr, at : addrtype, lim : limits, rt : reftype}: + `%|-%:%`(C, `TABLE`_table(tabletype, expr), tabletype) -- Tabletype_ok: `%|-%:OK`(C, tabletype) - -- if (tabletype = `%%%`_tabletype{addrtype#801, limits#801, reftype#531}(at, lim, rt)) + -- if (tabletype = `%%%`_tabletype(at, lim, rt)) -- Expr_ok_const: `%|-%:%CONST`(C, expr, (rt : reftype <: valtype)) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Local_ok: `%|-%:%`(context, local, localtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule set{C : context, valtype#469 : valtype, t : valtype, init#143 : init, valtype#481 : valtype}: - `%|-%:%`(C, `LOCAL`_local{valtype#469}(t), `%%`_localtype{init#143, valtype#481}(`SET`_init, t)) + rule set{C : context, t : valtype}: + `%|-%:%`(C, `LOCAL`_local(t), `%%`_localtype(`SET`_init, t)) -- Defaultable: `|-%DEFAULTABLE`(t) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule unset{C : context, valtype#493 : valtype, t : valtype, init#155 : init, valtype#505 : valtype}: - `%|-%:%`(C, `LOCAL`_local{valtype#493}(t), `%%`_localtype{init#155, valtype#505}(`UNSET`_init, t)) + rule unset{C : context, t : valtype}: + `%|-%:%`(C, `LOCAL`_local(t), `%%`_localtype(`UNSET`_init, t)) -- Nondefaultable: `|-%NONDEFAULTABLE`(t) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Func_ok: `%|-%:%`(context, func, deftype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, typeidx#501 : typeidx, `local*#171` : local*, expr#409 : expr, x : idx, `local*` : local*, expr : expr, `deftype*#56` : deftype*, i#9337 : nat, `deftype*#57` : deftype*, i#9347 : nat, resulttype#2908 : resulttype, `X*#11954` : valtype*, `t_1*` : valtype*, `X*#11967` : valtype*, `t_2*` : valtype*, `lct*` : localtype*, `deftype*#58` : deftype*, `subtype*#11` : subtype*, `tagtype*#11` : tagtype*, `globaltype*#12` : globaltype*, `memtype*#25` : memtype*, `tabletype*#18` : tabletype*, `deftype*#59` : deftype*, `datatype*#12` : datatype*, `elemtype*#12` : elemtype*, `localtype*#15` : localtype*, `init#191*` : init*, `valtype#559*` : valtype*, `resulttype*#23` : resulttype*, `X*#11980` : valtype*, `resulttype?#20` : resulttype?, `X*#11993` : valtype*, `funcidx*#49` : funcidx*, `X*#12006` : valtype*}: - `%|-%:%`(C, `FUNC`_func{typeidx#501, `local*#171`, expr#409}(x, local*{local <- `local*`}, expr), C.`TYPES`_context{`deftype*#56`}[x!`%`_idx{i#9337}.0]) - -- Expand: `%~~%`(C.`TYPES`_context{`deftype*#57`}[x!`%`_idx{i#9347}.0], `FUNC%->%`_comptype{resulttype#2908}(`%`_resulttype{`X*#11954`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#11967`}(t_2*{t_2 <- `t_2*`}))) + rule _{C : context, x : idx, `local*` : local*, expr : expr, `t_1*` : valtype*, `t_2*` : valtype*, `lct*` : localtype*}: + `%|-%:%`(C, `FUNC`_func(x, local*{local <- `local*`}, expr), C.`TYPES`_context[x!`%`_idx.0]) + -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- (Local_ok: `%|-%:%`(C, local, lct))*{lct <- `lct*`, local <- `local*`} - -- Expr_ok: `%|-%:%`(C +++ {`TYPES`{`deftype*#58`} [], `RECS`{`subtype*#11`} [], `TAGS`{`tagtype*#11`} [], `GLOBALS`{`globaltype*#12`} [], `MEMS`{`memtype*#25`} [], `TABLES`{`tabletype*#18`} [], `FUNCS`{`deftype*#59`} [], `DATAS`{`datatype*#12`} [], `ELEMS`{`elemtype*#12`} [], `LOCALS`{`localtype*#15`} `%%`_localtype{init#191, valtype#559}(`SET`_init, t_1)*{init#191 <- `init#191*`, t_1 <- `t_1*`, valtype#559 <- `valtype#559*`} ++ lct*{lct <- `lct*`}, `LABELS`{`resulttype*#23`} [`%`_resulttype{`X*#11980`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#20`} ?(`%`_resulttype{`X*#11993`}(t_2*{t_2 <- `t_2*`})), `REFS`{`funcidx*#49`} []}, expr, `%`_resulttype{`X*#12006`}(t_2*{t_2 <- `t_2*`})) + -- Expr_ok: `%|-%:%`(C +++ {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` `%%`_localtype(`SET`_init, t_1)*{t_1 <- `t_1*`} ++ lct*{lct <- `lct*`}, `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(`%`_resulttype(t_2*{t_2 <- `t_2*`})), `REFS` []}, expr, `%`_resulttype(t_2*{t_2 <- `t_2*`})) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Datamode_ok: `%|-%:%`(context, datamode, datatype) @@ -115679,16 +90930,16 @@ relation Datamode_ok: `%|-%:%`(context, datamode, datatype) `%|-%:%`(C, `PASSIVE`_datamode, `OK`_datatype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule active{C : context, memidx#63 : memidx, expr#411 : expr, x : idx, expr : expr, `memtype*#26` : memtype*, i#9383 : nat, addrtype#813 : addrtype, limits#813 : limits, at : addrtype, lim : limits}: - `%|-%:%`(C, `ACTIVE`_datamode{memidx#63, expr#411}(x, expr), `OK`_datatype) - -- if (C.`MEMS`_context{`memtype*#26`}[x!`%`_idx{i#9383}.0] = `%%PAGE`_memtype{addrtype#813, limits#813}(at, lim)) + rule active{C : context, x : idx, expr : expr, at : addrtype, lim : limits}: + `%|-%:%`(C, `ACTIVE`_datamode(x, expr), `OK`_datatype) + -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Expr_ok_const: `%|-%:%CONST`(C, expr, (at : addrtype <: valtype)) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Data_ok: `%|-%:%`(context, data, datatype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, `byte*#153` : byte*, datamode#153 : datamode, `b*` : byte*, datamode : datamode}: - `%|-%:%`(C, `DATA`_data{`byte*#153`, datamode#153}(b*{b <- `b*`}, datamode), `OK`_datatype) + rule _{C : context, `b*` : byte*, datamode : datamode}: + `%|-%:%`(C, `DATA`_data(b*{b <- `b*`}, datamode), `OK`_datatype) -- Datamode_ok: `%|-%:%`(C, datamode, `OK`_datatype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec @@ -115702,17 +90953,17 @@ relation Elemmode_ok: `%|-%:%`(context, elemmode, elemtype) `%|-%:%`(C, `DECLARE`_elemmode, rt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule active{C : context, tableidx#45 : tableidx, expr#413 : expr, x : idx, expr : expr, rt : reftype, `tabletype*#19` : tabletype*, i#9407 : nat, addrtype#825 : addrtype, limits#825 : limits, reftype#555 : reftype, at : addrtype, lim : limits, rt' : reftype}: - `%|-%:%`(C, `ACTIVE`_elemmode{tableidx#45, expr#413}(x, expr), rt) - -- if (C.`TABLES`_context{`tabletype*#19`}[x!`%`_idx{i#9407}.0] = `%%%`_tabletype{addrtype#825, limits#825, reftype#555}(at, lim, rt')) + rule active{C : context, x : idx, expr : expr, rt : reftype, at : addrtype, lim : limits, rt' : reftype}: + `%|-%:%`(C, `ACTIVE`_elemmode(x, expr), rt) + -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt')) -- Reftype_sub: `%|-%<:%`(C, rt, rt') -- Expr_ok_const: `%|-%:%CONST`(C, expr, (at : addrtype <: valtype)) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Elem_ok: `%|-%:%`(context, elem, elemtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, reftype#543 : reftype, `expr*#165` : expr*, elemmode#165 : elemmode, elemtype : elemtype, `expr*` : expr*, elemmode : elemmode}: - `%|-%:%`(C, `ELEM`_elem{reftype#543, `expr*#165`, elemmode#165}(elemtype, expr*{expr <- `expr*`}, elemmode), elemtype) + rule _{C : context, elemtype : elemtype, `expr*` : expr*, elemmode : elemmode}: + `%|-%:%`(C, `ELEM`_elem(elemtype, expr*{expr <- `expr*`}, elemmode), elemtype) -- Reftype_ok: `%|-%:OK`(C, elemtype) -- (Expr_ok_const: `%|-%:%CONST`(C, expr, (elemtype : reftype <: valtype)))*{expr <- `expr*`} -- Elemmode_ok: `%|-%:%`(C, elemmode, elemtype) @@ -115720,49 +90971,49 @@ relation Elem_ok: `%|-%:%`(context, elem, elemtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Start_ok: `%|-%:OK`(context, start) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, funcidx#195 : funcidx, x : idx, `deftype*#60` : deftype*, i#9431 : nat, resulttype#2911 : resulttype, `X*#12031` : valtype*, `X*#12052` : valtype*}: - `%|-%:OK`(C, `START`_start{funcidx#195}(x)) - -- Expand: `%~~%`(C.`FUNCS`_context{`deftype*#60`}[x!`%`_idx{i#9431}.0], `FUNC%->%`_comptype{resulttype#2911}(`%`_resulttype{`X*#12031`}([]), `%`_resulttype{`X*#12052`}([]))) + rule _{C : context, x : idx}: + `%|-%:OK`(C, `START`_start(x)) + -- Expand: `%~~%`(C.`FUNCS`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype([]), `%`_resulttype([]))) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Import_ok: `%|-%:%`(context, import, externtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, name#309 : name, externtype#79 : externtype, name_1 : name, name_2 : name, xt : externtype}: - `%|-%:%`(C, `IMPORT`_import{name#309, externtype#79}(name_1, name_2, xt), $clos_externtype(C, xt)) + rule _{C : context, name_1 : name, name_2 : name, xt : externtype}: + `%|-%:%`(C, `IMPORT`_import(name_1, name_2, xt), $clos_externtype(C, xt)) -- Externtype_ok: `%|-%:OK`(C, xt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Externidx_ok: `%|-%:%`(context, externidx, externtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule tag{C : context, tagidx#9 : tagidx, x : idx, tagtype#107 : tagtype, jt : tagtype, `tagtype*#12` : tagtype*, i#9455 : nat}: - `%|-%:%`(C, `TAG`_externidx{tagidx#9}(x), `TAG`_externtype{tagtype#107}(jt)) - -- if (C.`TAGS`_context{`tagtype*#12`}[x!`%`_idx{i#9455}.0] = jt) + rule tag{C : context, x : idx, jt : tagtype}: + `%|-%:%`(C, `TAG`_externidx(x), `TAG`_externtype(jt)) + -- if (C.`TAGS`_context[x!`%`_idx.0] = jt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule global{C : context, globalidx#15 : globalidx, x : idx, globaltype#119 : globaltype, gt : globaltype, `globaltype*#13` : globaltype*, i#9479 : nat}: - `%|-%:%`(C, `GLOBAL`_externidx{globalidx#15}(x), `GLOBAL`_externtype{globaltype#119}(gt)) - -- if (C.`GLOBALS`_context{`globaltype*#13`}[x!`%`_idx{i#9479}.0] = gt) + rule global{C : context, x : idx, gt : globaltype}: + `%|-%:%`(C, `GLOBAL`_externidx(x), `GLOBAL`_externtype(gt)) + -- if (C.`GLOBALS`_context[x!`%`_idx.0] = gt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule mem{C : context, memidx#65 : memidx, x : idx, memtype#131 : memtype, mt : memtype, `memtype*#27` : memtype*, i#9503 : nat}: - `%|-%:%`(C, `MEM`_externidx{memidx#65}(x), `MEM`_externtype{memtype#131}(mt)) - -- if (C.`MEMS`_context{`memtype*#27`}[x!`%`_idx{i#9503}.0] = mt) + rule mem{C : context, x : idx, mt : memtype}: + `%|-%:%`(C, `MEM`_externidx(x), `MEM`_externtype(mt)) + -- if (C.`MEMS`_context[x!`%`_idx.0] = mt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule table{C : context, tableidx#47 : tableidx, x : idx, tabletype#145 : tabletype, tt : tabletype, `tabletype*#20` : tabletype*, i#9527 : nat}: - `%|-%:%`(C, `TABLE`_externidx{tableidx#47}(x), `TABLE`_externtype{tabletype#145}(tt)) - -- if (C.`TABLES`_context{`tabletype*#20`}[x!`%`_idx{i#9527}.0] = tt) + rule table{C : context, x : idx, tt : tabletype}: + `%|-%:%`(C, `TABLE`_externidx(x), `TABLE`_externtype(tt)) + -- if (C.`TABLES`_context[x!`%`_idx.0] = tt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule func{C : context, funcidx#197 : funcidx, x : idx, typeuse#31 : typeuse, dt : deftype, `deftype*#61` : deftype*, i#9551 : nat}: - `%|-%:%`(C, `FUNC`_externidx{funcidx#197}(x), `FUNC`_externtype{typeuse#31}((dt : deftype <: typeuse))) - -- if (C.`FUNCS`_context{`deftype*#61`}[x!`%`_idx{i#9551}.0] = dt) + rule func{C : context, x : idx, dt : deftype}: + `%|-%:%`(C, `FUNC`_externidx(x), `FUNC`_externtype((dt : deftype <: typeuse))) + -- if (C.`FUNCS`_context[x!`%`_idx.0] = dt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Export_ok: `%|-%:%%`(context, export, name, externtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{C : context, name#322 : name, externidx#193 : externidx, name : name, externidx : externidx, xt : externtype}: - `%|-%:%%`(C, `EXPORT`_export{name#322, externidx#193}(name, externidx), name, xt) + rule _{C : context, name : name, externidx : externidx, xt : externtype}: + `%|-%:%%`(C, `EXPORT`_export(name, externidx), name, xt) -- Externidx_ok: `%|-%:%`(C, externidx, xt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec @@ -115775,10 +91026,10 @@ relation Globals_ok: `%|-%:%`(context, global*, globaltype*) `%|-%:%`(C, [], []) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec:183.1-186.54 - rule cons{C : context, global_1 : global, `global*` : global*, gt_1 : globaltype, `gt*` : globaltype*, `deftype*#72` : deftype*, `subtype*#17` : subtype*, `tagtype*#18` : tagtype*, `globaltype*#19` : globaltype*, `memtype*#33` : memtype*, `tabletype*#26` : tabletype*, `deftype*#73` : deftype*, `datatype*#18` : datatype*, `elemtype*#18` : elemtype*, `localtype*#21` : localtype*, `resulttype*#29` : resulttype*, `resulttype?#26` : resulttype?, `funcidx*#55` : funcidx*}: + rule cons{C : context, global_1 : global, `global*` : global*, gt_1 : globaltype, `gt*` : globaltype*}: `%|-%:%`(C, [global_1] ++ global*{global <- `global*`}, [gt_1] ++ gt*{gt <- `gt*`}) -- Global_ok: `%|-%:%`(C, global_1, gt_1) - -- Globals_ok: `%|-%:%`(C +++ {`TYPES`{`deftype*#72`} [], `RECS`{`subtype*#17`} [], `TAGS`{`tagtype*#18`} [], `GLOBALS`{`globaltype*#19`} [gt_1], `MEMS`{`memtype*#33`} [], `TABLES`{`tabletype*#26`} [], `FUNCS`{`deftype*#73`} [], `DATAS`{`datatype*#18`} [], `ELEMS`{`elemtype*#18`} [], `LOCALS`{`localtype*#21`} [], `LABELS`{`resulttype*#29`} [], `RETURN`{`resulttype?#26`} ?(), `REFS`{`funcidx*#55`} []}, global*{global <- `global*`}, gt*{gt <- `gt*`}) + -- Globals_ok: `%|-%:%`(C +++ {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [gt_1], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, global*{global <- `global*`}, gt*{gt <- `gt*`}) } ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec @@ -115791,28 +91042,28 @@ relation Types_ok: `%|-%:%`(context, type*, deftype*) `%|-%:%`(C, [], []) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec:175.1-178.49 - rule cons{C : context, type_1 : type, `type*` : type*, `dt_1*` : deftype*, `dt*` : deftype*, `deftype*#70` : deftype*, `subtype*#16` : subtype*, `tagtype*#17` : tagtype*, `globaltype*#18` : globaltype*, `memtype*#32` : memtype*, `tabletype*#25` : tabletype*, `deftype*#71` : deftype*, `datatype*#17` : datatype*, `elemtype*#17` : elemtype*, `localtype*#20` : localtype*, `resulttype*#28` : resulttype*, `resulttype?#25` : resulttype?, `funcidx*#54` : funcidx*}: + rule cons{C : context, type_1 : type, `type*` : type*, `dt_1*` : deftype*, `dt*` : deftype*}: `%|-%:%`(C, [type_1] ++ type*{type <- `type*`}, dt_1*{dt_1 <- `dt_1*`} ++ dt*{dt <- `dt*`}) -- Type_ok: `%|-%:%`(C, type_1, dt_1*{dt_1 <- `dt_1*`}) - -- Types_ok: `%|-%:%`(C +++ {`TYPES`{`deftype*#70`} dt_1*{dt_1 <- `dt_1*`}, `RECS`{`subtype*#16`} [], `TAGS`{`tagtype*#17`} [], `GLOBALS`{`globaltype*#18`} [], `MEMS`{`memtype*#32`} [], `TABLES`{`tabletype*#25`} [], `FUNCS`{`deftype*#71`} [], `DATAS`{`datatype*#17`} [], `ELEMS`{`elemtype*#17`} [], `LOCALS`{`localtype*#20`} [], `LABELS`{`resulttype*#28`} [], `RETURN`{`resulttype?#25`} ?(), `REFS`{`funcidx*#54`} []}, type*{type <- `type*`}, dt*{dt <- `dt*`}) + -- Types_ok: `%|-%:%`(C +++ {`TYPES` dt_1*{dt_1 <- `dt_1*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, type*{type <- `type*`}, dt*{dt <- `dt*`}) } ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec syntax nonfuncs = - | `%%%%`{`global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*}(`global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*) + | `%%%%`(`global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec def $funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - def $funcidx_nonfuncs{`global*#47` : global*, `mem*#47` : mem*, `table*#47` : table*, `elem*#47` : elem*, `global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*, `type*#71` : type*, `import*#71` : import*, `tag*#71` : tag*, `global*#83` : global*, `mem*#83` : mem*, `table*#83` : table*, `func*#71` : func*, `data*#71` : data*, `elem*#83` : elem*, `start?#71` : start?, `export*#71` : export*}(`%%%%`_nonfuncs{`global*#47`, `mem*#47`, `table*#47`, `elem*#47`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})) = $funcidx_module(`MODULE`_module{`type*#71`, `import*#71`, `tag*#71`, `global*#83`, `mem*#83`, `table*#83`, `func*#71`, `data*#71`, `elem*#83`, `start?#71`, `export*#71`}([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])) + def $funcidx_nonfuncs{`global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*}(`%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})) = $funcidx_module(`MODULE`_module([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Module_ok: `|-%:%`(module, moduletype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - rule _{`type*#83` : type*, `import*#83` : import*, `tag*#83` : tag*, `global*#95` : global*, `mem*#95` : mem*, `table*#95` : table*, `func*#83` : func*, `data*#83` : data*, `elem*#95` : elem*, `start?#83` : start?, `export*#83` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, C : context, `externtype*#148` : externtype*, `xt_I*` : externtype*, `xt_E*` : externtype*, `deftype*#62` : deftype*, `subtype*#12` : subtype*, `tagtype*#13` : tagtype*, `globaltype*#14` : globaltype*, `memtype*#28` : memtype*, `tabletype*#21` : tabletype*, `deftype*#63` : deftype*, `datatype*#13` : datatype*, `elemtype*#13` : elemtype*, `localtype*#16` : localtype*, `resulttype*#24` : resulttype*, `resulttype?#21` : resulttype?, `funcidx*#50` : funcidx*, `dt'*` : deftype*, `datatype*#14*` : datatype**, `deftype*#64*` : deftype**, `deftype*#65*` : deftype**, `elemtype*#14*` : elemtype**, `funcidx*#51*` : funcidx**, `globaltype*#15*` : globaltype**, `localtype*#17*` : localtype**, `memtype*#29*` : memtype**, `resulttype*#25*` : resulttype**, `resulttype?#22*` : resulttype?*, `subtype*#13*` : subtype**, `tabletype*#22*` : tabletype**, `tagtype*#14*` : tagtype**, C' : context, `jt*` : tagtype*, `gt*` : globaltype*, `mt*` : memtype*, `tt*` : tabletype*, `dt*` : deftype*, `ok*` : datatype*, `rt*` : reftype*, `nm*` : name*, `deftype*#66` : deftype*, `subtype*#14` : subtype*, `tagtype*#15` : tagtype*, `jt_I*` : tagtype*, `globaltype*#16` : globaltype*, `memtype*#30` : memtype*, `mt_I*` : memtype*, `tabletype*#23` : tabletype*, `tt_I*` : tabletype*, `deftype*#67` : deftype*, `datatype*#15` : datatype*, `elemtype*#15` : elemtype*, `localtype*#18` : localtype*, `resulttype*#26` : resulttype*, `resulttype?#23` : resulttype?, `funcidx*#52` : funcidx*, `deftype*#68` : deftype*, `subtype*#15` : subtype*, `tagtype*#16` : tagtype*, `globaltype*#17` : globaltype*, `gt_I*` : globaltype*, `memtype*#31` : memtype*, `tabletype*#24` : tabletype*, `deftype*#69` : deftype*, `dt_I*` : deftype*, `datatype*#16` : datatype*, `elemtype*#16` : elemtype*, `localtype*#19` : localtype*, `resulttype*#27` : resulttype*, `resulttype?#24` : resulttype?, `funcidx*#53` : funcidx*, `x*` : idx*, `global*#107` : global*, `mem*#107` : mem*, `table*#107` : table*, `elem*#107` : elem*}: - `|-%:%`(`MODULE`_module{`type*#83`, `import*#83`, `tag*#83`, `global*#95`, `mem*#95`, `table*#95`, `func*#83`, `data*#83`, `elem*#95`, `start?#83`, `export*#83`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}), $clos_moduletype(C, `%->%`_moduletype{`externtype*#148`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))) - -- Types_ok: `%|-%:%`({`TYPES`{`deftype*#62`} [], `RECS`{`subtype*#12`} [], `TAGS`{`tagtype*#13`} [], `GLOBALS`{`globaltype*#14`} [], `MEMS`{`memtype*#28`} [], `TABLES`{`tabletype*#21`} [], `FUNCS`{`deftype*#63`} [], `DATAS`{`datatype*#13`} [], `ELEMS`{`elemtype*#13`} [], `LOCALS`{`localtype*#16`} [], `LABELS`{`resulttype*#24`} [], `RETURN`{`resulttype?#21`} ?(), `REFS`{`funcidx*#50`} []}, type*{type <- `type*`}, dt'*{dt' <- `dt'*`}) - -- (Import_ok: `%|-%:%`({`TYPES`{`deftype*#64`} dt'*{dt' <- `dt'*`}, `RECS`{`subtype*#13`} [], `TAGS`{`tagtype*#14`} [], `GLOBALS`{`globaltype*#15`} [], `MEMS`{`memtype*#29`} [], `TABLES`{`tabletype*#22`} [], `FUNCS`{`deftype*#65`} [], `DATAS`{`datatype*#14`} [], `ELEMS`{`elemtype*#14`} [], `LOCALS`{`localtype*#17`} [], `LABELS`{`resulttype*#25`} [], `RETURN`{`resulttype?#22`} ?(), `REFS`{`funcidx*#51`} []}, import, xt_I))*{`datatype*#14` <- `datatype*#14*`, `deftype*#64` <- `deftype*#64*`, `deftype*#65` <- `deftype*#65*`, `elemtype*#14` <- `elemtype*#14*`, `funcidx*#51` <- `funcidx*#51*`, `globaltype*#15` <- `globaltype*#15*`, import <- `import*`, `localtype*#17` <- `localtype*#17*`, `memtype*#29` <- `memtype*#29*`, `resulttype*#25` <- `resulttype*#25*`, `resulttype?#22` <- `resulttype?#22*`, `subtype*#13` <- `subtype*#13*`, `tabletype*#22` <- `tabletype*#22*`, `tagtype*#14` <- `tagtype*#14*`, xt_I <- `xt_I*`} + rule _{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, C : context, `xt_I*` : externtype*, `xt_E*` : externtype*, `dt'*` : deftype*, C' : context, `jt*` : tagtype*, `gt*` : globaltype*, `mt*` : memtype*, `tt*` : tabletype*, `dt*` : deftype*, `ok*` : datatype*, `rt*` : reftype*, `nm*` : name*, `jt_I*` : tagtype*, `mt_I*` : memtype*, `tt_I*` : tabletype*, `gt_I*` : globaltype*, `dt_I*` : deftype*, `x*` : idx*}: + `|-%:%`(`MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}), $clos_moduletype(C, `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))) + -- Types_ok: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, type*{type <- `type*`}, dt'*{dt' <- `dt'*`}) + -- (Import_ok: `%|-%:%`({`TYPES` dt'*{dt' <- `dt'*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, import, xt_I))*{import <- `import*`, xt_I <- `xt_I*`} -- (Tag_ok: `%|-%:%`(C', tag, jt))*{jt <- `jt*`, tag <- `tag*`} -- Globals_ok: `%|-%:%`(C', global*{global <- `global*`}, gt*{gt <- `gt*`}) -- (Mem_ok: `%|-%:%`(C', mem, mt))*{mem <- `mem*`, mt <- `mt*`} @@ -115823,9 +91074,9 @@ relation Module_ok: `|-%:%`(module, moduletype) -- (Start_ok: `%|-%:OK`(C, start))?{start <- `start?`} -- (Export_ok: `%|-%:%%`(C, export, nm, xt_E))*{export <- `export*`, nm <- `nm*`, xt_E <- `xt_E*`} -- if $disjoint_(syntax name, nm*{nm <- `nm*`}) - -- if (C = C' +++ {`TYPES`{`deftype*#66`} [], `RECS`{`subtype*#14`} [], `TAGS`{`tagtype*#15`} jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS`{`globaltype*#16`} gt*{gt <- `gt*`}, `MEMS`{`memtype*#30`} mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES`{`tabletype*#23`} tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS`{`deftype*#67`} [], `DATAS`{`datatype*#15`} ok*{ok <- `ok*`}, `ELEMS`{`elemtype*#15`} rt*{rt <- `rt*`}, `LOCALS`{`localtype*#18`} [], `LABELS`{`resulttype*#26`} [], `RETURN`{`resulttype?#23`} ?(), `REFS`{`funcidx*#52`} []}) - -- if (C' = {`TYPES`{`deftype*#68`} dt'*{dt' <- `dt'*`}, `RECS`{`subtype*#15`} [], `TAGS`{`tagtype*#16`} [], `GLOBALS`{`globaltype*#17`} gt_I*{gt_I <- `gt_I*`}, `MEMS`{`memtype*#31`} [], `TABLES`{`tabletype*#24`} [], `FUNCS`{`deftype*#69`} dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, `DATAS`{`datatype*#16`} [], `ELEMS`{`elemtype*#16`} [], `LOCALS`{`localtype*#19`} [], `LABELS`{`resulttype*#27`} [], `RETURN`{`resulttype?#24`} ?(), `REFS`{`funcidx*#53`} x*{x <- `x*`}}) - -- if (x*{x <- `x*`} = $funcidx_nonfuncs(`%%%%`_nonfuncs{`global*#107`, `mem*#107`, `table*#107`, `elem*#107`}(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`}))) + -- if (C = C' +++ {`TYPES` [], `RECS` [], `TAGS` jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS` gt*{gt <- `gt*`}, `MEMS` mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES` tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS` [], `DATAS` ok*{ok <- `ok*`}, `ELEMS` rt*{rt <- `rt*`}, `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}) + -- if (C' = {`TYPES` dt'*{dt' <- `dt'*`}, `RECS` [], `TAGS` [], `GLOBALS` gt_I*{gt_I <- `gt_I*`}, `MEMS` [], `TABLES` [], `FUNCS` dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` x*{x <- `x*`}}) + -- if (x*{x <- `x*`} = $funcidx_nonfuncs(`%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`}))) -- if (jt_I*{jt_I <- `jt_I*`} = $tagsxt(xt_I*{xt_I <- `xt_I*`})) -- if (gt_I*{gt_I <- `gt_I*`} = $globalsxt(xt_I*{xt_I <- `xt_I*`})) -- if (mt_I*{mt_I <- `mt_I*`} = $memsxt(xt_I*{xt_I <- `xt_I*`})) @@ -115834,18 +91085,18 @@ relation Module_ok: `|-%:%`(module, moduletype) ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec syntax relaxed2 = - | `%`{i : nat}(i : nat) + | `%`(i : nat) -- if ((i = 0) \/ (i = 1)) ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec syntax relaxed4 = - | `%`{i : nat}(i : nat) + | `%`(i : nat) -- if ((((i = 0) \/ (i = 1)) \/ (i = 2)) \/ (i = 3)) ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec def $relaxed2(relaxed2 : relaxed2, syntax X, X : X, X : X) : X ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec - def $relaxed2{i : relaxed2, syntax X, X_1 : X, X_2 : X, i#9672 : nat}(i, syntax X, X_1, X_2) = [X_1 X_2][i!`%`_relaxed2{i#9672}.0] + def $relaxed2{i : relaxed2, syntax X, X_1 : X, X_2 : X}(i, syntax X, X_1, X_2) = [X_1 X_2][i!`%`_relaxed2.0] -- if $ND ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec def $relaxed2{i : relaxed2, syntax X, X_1 : X, X_2 : X}(i, syntax X, X_1, X_2) = [X_1 X_2][0] @@ -115854,7 +91105,7 @@ def $relaxed2(relaxed2 : relaxed2, syntax X, X : X, X : X) : X ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec def $relaxed4(relaxed4 : relaxed4, syntax X, X : X, X : X, X : X, X : X) : X ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec - def $relaxed4{i : relaxed4, syntax X, X_1 : X, X_2 : X, X_3 : X, X_4 : X, i#9686 : nat}(i, syntax X, X_1, X_2, X_3, X_4) = [X_1 X_2 X_3 X_4][i!`%`_relaxed4{i#9686}.0] + def $relaxed4{i : relaxed4, syntax X, X_1 : X, X_2 : X, X_3 : X, X_4 : X}(i, syntax X, X_1, X_2, X_3, X_4) = [X_1 X_2 X_3 X_4][i!`%`_relaxed4.0] -- if $ND ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec def $relaxed4{i : relaxed4, syntax X, X_1 : X, X_2 : X, X_3 : X, X_4 : X}(i, syntax X, X_1, X_2, X_3, X_4) = [X_1 X_2 X_3 X_4][0] @@ -115966,7 +91217,7 @@ def $sx(storagetype : storagetype) : sx? ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $zero(lanetype : lanetype) : lane_(lanetype) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $zero{Jnn : Jnn, i#9712 : nat}((Jnn : Jnn <: lanetype)) = `%`_lane_{i#9712}(0) + def $zero{Jnn : Jnn}((Jnn : Jnn <: lanetype)) = `%`_lane_(0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $zero{Fnn : Fnn}((Fnn : Fnn <: lanetype)) = $fzero($size((Fnn : Fnn <: numtype))) @@ -116010,13 +91261,13 @@ def $sat_s_(N : N, int : int) : int ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ineg_(N : N, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ineg_{N : N, i_1 : iN(N), i#9728 : nat, i#9726 : nat}(N, i_1) = `%`_iN{i#9728}((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN{i#9726}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) + def $ineg_{N : N, i_1 : iN(N)}(N, i_1) = `%`_iN((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iabs_(N : N, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iabs_{N : N, i_1 : iN(N), i#9736 : nat}(N, i_1) = i_1 - -- if ($signed_(N, i_1!`%`_iN{i#9736}.0) >= (0 : nat <:> int)) + def $iabs_{N : N, i_1 : iN(N)}(N, i_1) = i_1 + -- if ($signed_(N, i_1!`%`_iN.0) >= (0 : nat <:> int)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iabs_{N : N, i_1 : iN(N)}(N, i_1) = $ineg_(N, i_1) -- otherwise @@ -116033,62 +91284,62 @@ def $ipopcnt_(N : N, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iextend_(N : N, M : M, sx : sx, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iextend_{N : N, M : M, i : iN(N), i#9776 : nat, i#9774 : nat}(N, M, `U`_sx, i) = `%`_iN{i#9776}((i!`%`_iN{i#9774}.0 \ (2 ^ M))) + def $iextend_{N : N, M : M, i : iN(N)}(N, M, `U`_sx, i) = `%`_iN((i!`%`_iN.0 \ (2 ^ M))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iextend_{N : N, M : M, i : iN(N), i#9792 : nat, i#9790 : nat}(N, M, `S`_sx, i) = `%`_iN{i#9792}($inv_signed_(N, $signed_(M, (i!`%`_iN{i#9790}.0 \ (2 ^ M))))) + def $iextend_{N : N, M : M, i : iN(N)}(N, M, `S`_sx, i) = `%`_iN($inv_signed_(N, $signed_(M, (i!`%`_iN.0 \ (2 ^ M))))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iadd_(N : N, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_{N : N, i_1 : iN(N), i_2 : iN(N), i#9816 : nat, i#9812 : nat, i#9814 : nat}(N, i_1, i_2) = `%`_iN{i#9816}(((i_1!`%`_iN{i#9812}.0 + i_2!`%`_iN{i#9814}.0) \ (2 ^ N))) + def $iadd_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_iN(((i_1!`%`_iN.0 + i_2!`%`_iN.0) \ (2 ^ N))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $isub_(N : N, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_{N : N, i_1 : iN(N), i_2 : iN(N), i#9840 : nat, i#9836 : nat, i#9838 : nat}(N, i_1, i_2) = `%`_iN{i#9840}(((((((2 ^ N) + i_1!`%`_iN{i#9836}.0) : nat <:> int) - (i_2!`%`_iN{i#9838}.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) + def $isub_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_iN(((((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $imul_(N : N, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imul_{N : N, i_1 : iN(N), i_2 : iN(N), i#9864 : nat, i#9860 : nat, i#9862 : nat}(N, i_1, i_2) = `%`_iN{i#9864}(((i_1!`%`_iN{i#9860}.0 * i_2!`%`_iN{i#9862}.0) \ (2 ^ N))) + def $imul_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_iN(((i_1!`%`_iN.0 * i_2!`%`_iN.0) \ (2 ^ N))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $idiv_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)? ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i#9878 : nat}(N, `U`_sx, i_1, `%`_iN{i#9878}(0)) = ?() + def $idiv_{N : N, i_1 : iN(N)}(N, `U`_sx, i_1, `%`_iN(0)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N), i#9902 : nat, i#9898 : nat, i#9900 : nat}(N, `U`_sx, i_1, i_2) = ?(`%`_iN{i#9902}(($truncz(((i_1!`%`_iN{i#9898}.0 : nat <:> rat) / (i_2!`%`_iN{i#9900}.0 : nat <:> rat))) : int <:> nat))) + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = ?(`%`_iN(($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i#9916 : nat}(N, `S`_sx, i_1, `%`_iN{i#9916}(0)) = ?() + def $idiv_{N : N, i_1 : iN(N)}(N, `S`_sx, i_1, `%`_iN(0)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N), i#9930 : nat, i#9932 : nat}(N, `S`_sx, i_1, i_2) = ?() - -- if ((($signed_(N, i_1!`%`_iN{i#9930}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9932}.0) : int <:> rat)) = ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat)) + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = ?() + -- if ((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)) = ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N), i#9956 : nat, i#9952 : nat, i#9954 : nat}(N, `S`_sx, i_1, i_2) = ?(`%`_iN{i#9956}($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN{i#9952}.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN{i#9954}.0) : int <:> rat)))))) + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = ?(`%`_iN($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)))))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $irem_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)? ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i#9970 : nat}(N, `U`_sx, i_1, `%`_iN{i#9970}(0)) = ?() + def $irem_{N : N, i_1 : iN(N)}(N, `U`_sx, i_1, `%`_iN(0)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), i#9998 : nat, i#9996 : nat, i#9994 : nat, i#9990 : nat, i#9992 : nat}(N, `U`_sx, i_1, i_2) = ?(`%`_iN{i#9998}((((i_1!`%`_iN{i#9996}.0 : nat <:> int) - ((i_2!`%`_iN{i#9994}.0 * ($truncz(((i_1!`%`_iN{i#9990}.0 : nat <:> rat) / (i_2!`%`_iN{i#9992}.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))) + def $irem_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = ?(`%`_iN((((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i#10012 : nat}(N, `S`_sx, i_1, `%`_iN{i#10012}(0)) = ?() + def $irem_{N : N, i_1 : iN(N)}(N, `S`_sx, i_1, `%`_iN(0)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), i#10036 : nat, j_1 : int, j_2 : int, i#10026 : nat, i#10028 : nat}(N, `S`_sx, i_1, i_2) = ?(`%`_iN{i#10036}($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))) - -- if ((j_1 = $signed_(N, i_1!`%`_iN{i#10026}.0)) /\ (j_2 = $signed_(N, i_2!`%`_iN{i#10028}.0))) + def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), j_1 : int, j_2 : int}(N, `S`_sx, i_1, i_2) = ?(`%`_iN($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))) + -- if ((j_1 = $signed_(N, i_1!`%`_iN.0)) /\ (j_2 = $signed_(N, i_2!`%`_iN.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $imin_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N), i#10050 : nat, i#10052 : nat}(N, `U`_sx, i_1, i_2) = i_1 - -- if (i_1!`%`_iN{i#10050}.0 <= i_2!`%`_iN{i#10052}.0) + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_1 + -- if (i_1!`%`_iN.0 <= i_2!`%`_iN.0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N), i#10072 : nat, i#10074 : nat}(N, `U`_sx, i_1, i_2) = i_2 - -- if (i_1!`%`_iN{i#10072}.0 > i_2!`%`_iN{i#10074}.0) + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_2 + -- if (i_1!`%`_iN.0 > i_2!`%`_iN.0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N), i#10094 : nat, i#10096 : nat}(N, `S`_sx, i_1, i_2) = i_1 - -- if ($signed_(N, i_1!`%`_iN{i#10094}.0) <= $signed_(N, i_2!`%`_iN{i#10096}.0)) + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_1 + -- if ($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_2 -- otherwise @@ -116096,14 +91347,14 @@ def $imin_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $imax_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N), i#10134 : nat, i#10136 : nat}(N, `U`_sx, i_1, i_2) = i_1 - -- if (i_1!`%`_iN{i#10134}.0 >= i_2!`%`_iN{i#10136}.0) + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_1 + -- if (i_1!`%`_iN.0 >= i_2!`%`_iN.0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N), i#10156 : nat, i#10158 : nat}(N, `U`_sx, i_1, i_2) = i_2 - -- if (i_1!`%`_iN{i#10156}.0 < i_2!`%`_iN{i#10158}.0) + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_2 + -- if (i_1!`%`_iN.0 < i_2!`%`_iN.0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N), i#10178 : nat, i#10180 : nat}(N, `S`_sx, i_1, i_2) = i_1 - -- if ($signed_(N, i_1!`%`_iN{i#10178}.0) >= $signed_(N, i_2!`%`_iN{i#10180}.0)) + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_1 + -- if ($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_2 -- otherwise @@ -116111,16 +91362,16 @@ def $imax_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iadd_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10228 : nat, i#10224 : nat, i#10226 : nat}(N, `U`_sx, i_1, i_2) = `%`_iN{i#10228}($sat_u_(N, ((i_1!`%`_iN{i#10224}.0 + i_2!`%`_iN{i#10226}.0) : nat <:> int))) + def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10252 : nat, i#10248 : nat, i#10250 : nat}(N, `S`_sx, i_1, i_2) = `%`_iN{i#10252}($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10248}.0) + $signed_(N, i_2!`%`_iN{i#10250}.0))))) + def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0))))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $isub_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10276 : nat, i#10272 : nat, i#10274 : nat}(N, `U`_sx, i_1, i_2) = `%`_iN{i#10276}($sat_u_(N, ((i_1!`%`_iN{i#10272}.0 : nat <:> int) - (i_2!`%`_iN{i#10274}.0 : nat <:> int)))) + def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N), i#10300 : nat, i#10296 : nat, i#10298 : nat}(N, `S`_sx, i_1, i_2) = `%`_iN{i#10300}($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN{i#10296}.0) - $signed_(N, i_2!`%`_iN{i#10298}.0))))) + def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0))))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iq15mulr_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) @@ -116170,50 +91421,50 @@ def $irelaxed_laneselect_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)* ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ieqz_(N : N, iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ieqz_{N : N, i_1 : iN(N), i#10328 : nat, i#10318 : nat}(N, i_1) = `%`_u32{i#10328}($bool((i_1!`%`_iN{i#10318}.0 = 0))) + def $ieqz_{N : N, i_1 : iN(N)}(N, i_1) = `%`_u32($bool((i_1!`%`_iN.0 = 0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $inez_(N : N, iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $inez_{N : N, i_1 : iN(N), i#10356 : nat, i#10346 : nat}(N, i_1) = `%`_u32{i#10356}($bool((i_1!`%`_iN{i#10346}.0 =/= 0))) + def $inez_{N : N, i_1 : iN(N)}(N, i_1) = `%`_u32($bool((i_1!`%`_iN.0 =/= 0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ieq_(N : N, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ieq_{N : N, i_1 : iN(N), i_2 : iN(N), i#10394 : nat}(N, i_1, i_2) = `%`_u32{i#10394}($bool((i_1 = i_2))) + def $ieq_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_u32($bool((i_1 = i_2))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ine_(N : N, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ine_{N : N, i_1 : iN(N), i_2 : iN(N), i#10432 : nat}(N, i_1, i_2) = `%`_u32{i#10432}($bool((i_1 =/= i_2))) + def $ine_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_u32($bool((i_1 =/= i_2))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ilt_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10468 : nat, i#10456 : nat, i#10458 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10468}($bool((i_1!`%`_iN{i#10456}.0 < i_2!`%`_iN{i#10458}.0))) + def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 < i_2!`%`_iN.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10504 : nat, i#10492 : nat, i#10494 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10504}($bool(($signed_(N, i_1!`%`_iN{i#10492}.0) < $signed_(N, i_2!`%`_iN{i#10494}.0)))) + def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $igt_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $igt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10540 : nat, i#10528 : nat, i#10530 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10540}($bool((i_1!`%`_iN{i#10528}.0 > i_2!`%`_iN{i#10530}.0))) + def $igt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 > i_2!`%`_iN.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $igt_{N : N, i_1 : iN(N), i_2 : iN(N), i#10576 : nat, i#10564 : nat, i#10566 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10576}($bool(($signed_(N, i_1!`%`_iN{i#10564}.0) > $signed_(N, i_2!`%`_iN{i#10566}.0)))) + def $igt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ile_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ile_{N : N, i_1 : iN(N), i_2 : iN(N), i#10612 : nat, i#10600 : nat, i#10602 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10612}($bool((i_1!`%`_iN{i#10600}.0 <= i_2!`%`_iN{i#10602}.0))) + def $ile_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 <= i_2!`%`_iN.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ile_{N : N, i_1 : iN(N), i_2 : iN(N), i#10648 : nat, i#10636 : nat, i#10638 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10648}($bool(($signed_(N, i_1!`%`_iN{i#10636}.0) <= $signed_(N, i_2!`%`_iN{i#10638}.0)))) + def $ile_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ige_{N : N, i_1 : iN(N), i_2 : iN(N), i#10684 : nat, i#10672 : nat, i#10674 : nat}(N, `U`_sx, i_1, i_2) = `%`_u32{i#10684}($bool((i_1!`%`_iN{i#10672}.0 >= i_2!`%`_iN{i#10674}.0))) + def $ige_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 >= i_2!`%`_iN.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ige_{N : N, i_1 : iN(N), i_2 : iN(N), i#10720 : nat, i#10708 : nat, i#10710 : nat}(N, `S`_sx, i_1, i_2) = `%`_u32{i#10720}($bool(($signed_(N, i_1!`%`_iN{i#10708}.0) >= $signed_(N, i_2!`%`_iN{i#10710}.0)))) + def $ige_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $fabs_(N : N, fN : fN(N)) : fN(N)* @@ -116360,7 +91611,7 @@ def $unop_(numtype : numtype, unop_ : unop_(numtype), num_ : num_(numtype)) : nu ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `POPCNT`_unop_, i) = [$ipopcnt_($sizenn((Inn : Inn <: numtype)), i)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, sz#154 : sz, i#10974 : nat, i#10981 : nat, M : M, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EXTEND`_unop_{sz#154, i#10974}(`%`_sz{i#10981}(M)), i) = [$iextend_($sizenn((Inn : Inn <: numtype)), M, `S`_sx, i)] + def $unop_{Inn : Inn, M : M, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EXTEND`_unop_(`%`_sz(M)), i) = [$iextend_($sizenn((Inn : Inn <: numtype)), M, `S`_sx, i)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `ABS`_unop_, f) = $fabs_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec @@ -116385,9 +91636,9 @@ def $binop_(numtype : numtype, binop_ : binop_(numtype), num_ : num_(numtype), n ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `MUL`_binop_, i_1, i_2) = [$imul_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx#58 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `DIV`_binop_{sx#58}(sx), i_1, i_2) = lift($idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) + def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `DIV`_binop_(sx), i_1, i_2) = lift($idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx#60 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `REM`_binop_{sx#60}(sx), i_1, i_2) = lift($irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) + def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `REM`_binop_(sx), i_1, i_2) = lift($irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `AND`_binop_, i_1, i_2) = [$iand_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec @@ -116395,9 +91646,9 @@ def $binop_(numtype : numtype, binop_ : binop_(numtype), num_ : num_(numtype), n ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `XOR`_binop_, i_1, i_2) = [$ixor_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype)), i#11714 : nat, i#11713 : nat}((Inn : Inn <: numtype), `SHL`_binop_, i_1, i_2) = [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32{i#11714}(i_2!`%`_num_{i#11713}.0))] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `SHL`_binop_, i_1, i_2) = [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32(i_2!`%`_num_.0))] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx#62 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype)), i#11808 : nat, i#11807 : nat}((Inn : Inn <: numtype), `SHR`_binop_{sx#62}(sx), i_1, i_2) = [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32{i#11808}(i_2!`%`_num_{i#11807}.0))] + def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `SHR`_binop_(sx), i_1, i_2) = [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32(i_2!`%`_num_.0))] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `ROTL`_binop_, i_1, i_2) = [$irotl_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec @@ -116429,13 +91680,13 @@ def $relop_(numtype : numtype, relop_ : relop_(numtype), num_ : num_(numtype), n ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `NE`_relop_, i_1, i_2) = $ine_($sizenn((Inn : Inn <: numtype)), i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx#64 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LT`_relop_{sx#64}(sx), i_1, i_2) = $ilt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) + def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LT`_relop_(sx), i_1, i_2) = $ilt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx#66 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GT`_relop_{sx#66}(sx), i_1, i_2) = $igt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) + def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GT`_relop_(sx), i_1, i_2) = $igt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx#68 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LE`_relop_{sx#68}(sx), i_1, i_2) = $ile_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) + def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LE`_relop_(sx), i_1, i_2) = $ile_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx#70 : sx, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GE`_relop_{sx#70}(sx), i_1, i_2) = $ige_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) + def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GE`_relop_(sx), i_1, i_2) = $ige_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `EQ`_relop_, f_1, f_2) = $feq_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec @@ -116452,15 +91703,15 @@ def $relop_(numtype : numtype, relop_ : relop_(numtype), num_ : num_(numtype), n ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype_1, numtype_2), num_ : num_(numtype_1)) : num_(numtype_2)* ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, sx#72 : sx, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `EXTEND`_cvtop__{sx#72}(sx), i_1) = [$extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)] + def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `EXTEND`_cvtop__(sx), i_1) = [$extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `WRAP`_cvtop__, i_1) = [$wrap__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), i_1)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx#74 : sx, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC`_cvtop__{sx#74}(sx), f_1) = lift($trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) + def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC`_cvtop__(sx), f_1) = lift($trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx#76 : sx, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC_SAT`_cvtop__{sx#76}(sx), f_1) = lift($trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) + def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC_SAT`_cvtop__(sx), f_1) = lift($trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, sx#78 : sx, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), `CONVERT`_cvtop__{sx#78}(sx), i_1) = [$convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)] + def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), `CONVERT`_cvtop__(sx), i_1) = [$convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype), `PROMOTE`_cvtop__, f_1) = $promote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec @@ -116481,32 +91732,32 @@ def $inv_lanes_(shape : shape, lane_($lanetype(shape))*) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $zeroop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2)) : zero? ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{lanetype#801 : lanetype, dim#801 : dim, i#12568 : nat, Jnn_1 : Jnn, i#12575 : nat, M_1 : M, lanetype#813 : lanetype, dim#813 : dim, i#12580 : nat, Jnn_2 : Jnn, i#12587 : nat, M_2 : M, half#1 : half, sx#80 : sx, half : half, sx : sx}(`%X%`_shape{lanetype#801, dim#801, i#12568}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12575}(M_1)), `%X%`_shape{lanetype#813, dim#813, i#12580}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12587}(M_2)), `EXTEND`_vcvtop__{half#1, sx#80}(half, sx)) = ?() + def $zeroop{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `EXTEND`_vcvtop__(half, sx)) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{lanetype#825 : lanetype, dim#825 : dim, i#12592 : nat, Jnn_1 : Jnn, i#12599 : nat, M_1 : M, lanetype#837 : lanetype, dim#837 : dim, i#12604 : nat, Fnn_2 : Fnn, i#12611 : nat, M_2 : M, `half?#1` : half?, sx#82 : sx, `half?` : half?, sx : sx}(`%X%`_shape{lanetype#825, dim#825, i#12592}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12599}(M_1)), `%X%`_shape{lanetype#837, dim#837, i#12604}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12611}(M_2)), `CONVERT`_vcvtop__{`half?#1`, sx#82}(half?{half <- `half?`}, sx)) = ?() + def $zeroop{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{lanetype#864 : lanetype, dim#864 : dim, i#12631 : nat, Fnn_1 : Fnn, i#12638 : nat, M_1 : M, lanetype#876 : lanetype, dim#876 : dim, i#12643 : nat, Jnn_2 : Jnn, i#12650 : nat, M_2 : M, sx#84 : sx, `zero?#1` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#864, dim#864, i#12631}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12638}(M_1)), `%X%`_shape{lanetype#876, dim#876, i#12643}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12650}(M_2)), `TRUNC_SAT`_vcvtop__{sx#84, `zero?#1`}(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} + def $zeroop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{lanetype#918 : lanetype, dim#918 : dim, i#12685 : nat, Fnn_1 : Fnn, i#12692 : nat, M_1 : M, lanetype#930 : lanetype, dim#930 : dim, i#12697 : nat, Jnn_2 : Jnn, i#12704 : nat, M_2 : M, sx#86 : sx, `zero?#3` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#918, dim#918, i#12685}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12692}(M_1)), `%X%`_shape{lanetype#930, dim#930, i#12697}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12704}(M_2)), `RELAXED_TRUNC`_vcvtop__{sx#86, `zero?#3`}(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} + def $zeroop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{lanetype#972 : lanetype, dim#972 : dim, i#12739 : nat, Fnn_1 : Fnn, i#12746 : nat, M_1 : M, lanetype#984 : lanetype, dim#984 : dim, i#12751 : nat, Fnn_2 : Fnn, i#12758 : nat, M_2 : M, zero#1 : zero, zero : zero}(`%X%`_shape{lanetype#972, dim#972, i#12739}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12746}(M_1)), `%X%`_shape{lanetype#984, dim#984, i#12751}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12758}(M_2)), `DEMOTE`_vcvtop__{zero#1}(zero)) = ?(zero) + def $zeroop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, zero : zero}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `DEMOTE`_vcvtop__(zero)) = ?(zero) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{lanetype#1041 : lanetype, dim#1041 : dim, i#12808 : nat, Fnn_1 : Fnn, i#12815 : nat, M_1 : M, lanetype#1053 : lanetype, dim#1053 : dim, i#12820 : nat, Fnn_2 : Fnn, i#12827 : nat, M_2 : M}(`%X%`_shape{lanetype#1041, dim#1041, i#12808}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12815}(M_1)), `%X%`_shape{lanetype#1053, dim#1053, i#12820}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12827}(M_2)), `PROMOTELOW`_vcvtop__) = ?() + def $zeroop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $halfop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2)) : half? ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{lanetype#1122 : lanetype, dim#1122 : dim, i#12881 : nat, Jnn_1 : Jnn, i#12888 : nat, M_1 : M, lanetype#1134 : lanetype, dim#1134 : dim, i#12893 : nat, Jnn_2 : Jnn, i#12900 : nat, M_2 : M, half#3 : half, sx#88 : sx, half : half, sx : sx}(`%X%`_shape{lanetype#1122, dim#1122, i#12881}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12888}(M_1)), `%X%`_shape{lanetype#1134, dim#1134, i#12893}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12900}(M_2)), `EXTEND`_vcvtop__{half#3, sx#88}(half, sx)) = ?(half) + def $halfop{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `EXTEND`_vcvtop__(half, sx)) = ?(half) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{lanetype#1146 : lanetype, dim#1146 : dim, i#12905 : nat, Jnn_1 : Jnn, i#12912 : nat, M_1 : M, lanetype#1158 : lanetype, dim#1158 : dim, i#12917 : nat, Fnn_2 : Fnn, i#12924 : nat, M_2 : M, `half?#3` : half?, sx#90 : sx, `half?` : half?, sx : sx}(`%X%`_shape{lanetype#1146, dim#1146, i#12905}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#12912}(M_1)), `%X%`_shape{lanetype#1158, dim#1158, i#12917}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#12924}(M_2)), `CONVERT`_vcvtop__{`half?#3`, sx#90}(half?{half <- `half?`}, sx)) = half?{half <- `half?`} + def $halfop{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)) = half?{half <- `half?`} ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{lanetype#1185 : lanetype, dim#1185 : dim, i#12944 : nat, Fnn_1 : Fnn, i#12951 : nat, M_1 : M, lanetype#1197 : lanetype, dim#1197 : dim, i#12956 : nat, Jnn_2 : Jnn, i#12963 : nat, M_2 : M, sx#92 : sx, `zero?#5` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#1185, dim#1185, i#12944}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#12951}(M_1)), `%X%`_shape{lanetype#1197, dim#1197, i#12956}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#12963}(M_2)), `TRUNC_SAT`_vcvtop__{sx#92, `zero?#5`}(sx, zero?{zero <- `zero?`})) = ?() + def $halfop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{lanetype#1239 : lanetype, dim#1239 : dim, i#12998 : nat, Fnn_1 : Fnn, i#13005 : nat, M_1 : M, lanetype#1251 : lanetype, dim#1251 : dim, i#13010 : nat, Jnn_2 : Jnn, i#13017 : nat, M_2 : M, sx#94 : sx, `zero?#7` : zero?, sx : sx, `zero?` : zero?}(`%X%`_shape{lanetype#1239, dim#1239, i#12998}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13005}(M_1)), `%X%`_shape{lanetype#1251, dim#1251, i#13010}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#13017}(M_2)), `RELAXED_TRUNC`_vcvtop__{sx#94, `zero?#7`}(sx, zero?{zero <- `zero?`})) = ?() + def $halfop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{lanetype#1293 : lanetype, dim#1293 : dim, i#13052 : nat, Fnn_1 : Fnn, i#13059 : nat, M_1 : M, lanetype#1305 : lanetype, dim#1305 : dim, i#13064 : nat, Fnn_2 : Fnn, i#13071 : nat, M_2 : M, zero#3 : zero, zero : zero}(`%X%`_shape{lanetype#1293, dim#1293, i#13052}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13059}(M_1)), `%X%`_shape{lanetype#1305, dim#1305, i#13064}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13071}(M_2)), `DEMOTE`_vcvtop__{zero#3}(zero)) = ?() + def $halfop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, zero : zero}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `DEMOTE`_vcvtop__(zero)) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{lanetype#1362 : lanetype, dim#1362 : dim, i#13121 : nat, Fnn_1 : Fnn, i#13128 : nat, M_1 : M, lanetype#1374 : lanetype, dim#1374 : dim, i#13133 : nat, Fnn_2 : Fnn, i#13140 : nat, M_2 : M}(`%X%`_shape{lanetype#1362, dim#1362, i#13121}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#13128}(M_1)), `%X%`_shape{lanetype#1374, dim#1374, i#13133}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#13140}(M_2)), `PROMOTELOW`_vcvtop__) = ?(`LOW`_half) + def $halfop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__) = ?(`LOW`_half) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $half(half : half, nat : nat, nat : nat) : nat @@ -116518,149 +91769,149 @@ def $half(half : half, nat : nat, nat : nat) : nat ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $iswizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13213 : nat, i#13205 : nat}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN{i#13213}.0] - -- if (i!`%`_iN{i#13205}.0 < |c*{c <- `c*`}|) + def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN.0] + -- if (i!`%`_iN.0 < |c*{c <- `c*`}|) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13239 : nat}(N, c*{c <- `c*`}, i) = `%`_iN{i#13239}(0) + def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = `%`_iN(0) -- otherwise ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13267 : nat, i#13259 : nat}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN{i#13267}.0] - -- if (i!`%`_iN{i#13259}.0 < |c*{c <- `c*`}|) + def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN.0] + -- if (i!`%`_iN.0 < |c*{c <- `c*`}|) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13295 : nat, i#13287 : nat}(N, c*{c <- `c*`}, i) = `%`_iN{i#13295}(0) - -- if ($signed_(N, i!`%`_iN{i#13287}.0) < (0 : nat <:> int)) + def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = `%`_iN(0) + -- if ($signed_(N, i!`%`_iN.0) < (0 : nat <:> int)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N), i#13333 : nat, i#13341 : nat}(N, c*{c <- `c*`}, i) = $relaxed2($R_swizzle, syntax iN(N), `%`_iN{i#13333}(0), c*{c <- `c*`}[(i!`%`_iN{i#13341}.0 \ |c*{c <- `c*`}|)]) + def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = $relaxed2($R_swizzle, syntax iN(N), `%`_iN(0), c*{c <- `c*`}[(i!`%`_iN.0 \ |c*{c <- `c*`}|)]) -- otherwise ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivunop_(shape : shape, def $f_(N : N, iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivunop_{lanetype#1431 : lanetype, dim#1431 : dim, i#13346 : nat, Jnn : Jnn, i#13353 : nat, M : M, def $f_(N : N, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), lanetype#1469 : lanetype, dim#1469 : dim, i#13506 : nat, i#13513 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#1443 : lanetype, dim#1443 : dim, i#13370 : nat, i#13377 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))*}(`%X%`_shape{lanetype#1431, dim#1431, i#13346}((Jnn : Jnn <: lanetype), `%`_dim{i#13353}(M)), def $f_, v_1) = [$inv_lanes_(`%X%`_shape{lanetype#1469, dim#1469, i#13506}((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M)), c*{c <- `c*`})] - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M)), v_1)) + def $ivunop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1)*{c_1 <- `c_1*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $fvunop_(shape : shape, def $f_(N : N, fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvunop_{lanetype#1493 : lanetype, dim#1493 : dim, i#13579 : nat, Fnn : Fnn, i#13586 : nat, M : M, def $f_(N : N, fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `dim#1532*` : dim*, `i#13693*` : nat*, `i#13700*` : nat*, `lanetype#1532*` : lanetype*, lanetype#1505 : lanetype, dim#1505 : dim, i#13603 : nat, i#13610 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))*}(`%X%`_shape{lanetype#1493, dim#1493, i#13579}((Fnn : Fnn <: lanetype), `%`_dim{i#13586}(M)), def $f_, v_1) = $inv_lanes_(`%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1532 <- `dim#1532*`, i#13693 <- `i#13693*`, i#13700 <- `i#13700*`, lanetype#1532 <- `lanetype#1532*`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M)), v_1)) + def $fvunop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1)*{c_1 <- `c_1*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivbinop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinop_{lanetype#1555 : lanetype, dim#1555 : dim, i#13738 : nat, Jnn : Jnn, i#13745 : nat, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#1619 : lanetype, dim#1619 : dim, i#14011 : nat, i#14018 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#1567 : lanetype, dim#1567 : dim, i#13774 : nat, i#13781 : nat, lanetype#1592 : lanetype, dim#1592 : dim, i#13860 : nat, i#13867 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))*}(`%X%`_shape{lanetype#1555, dim#1555, i#13738}((Jnn : Jnn <: lanetype), `%`_dim{i#13745}(M)), def $f_, v_1, v_2) = [$inv_lanes_(`%X%`_shape{lanetype#1619, dim#1619, i#14011}((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M)), c*{c <- `c*`})] - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M)), v_2)) + def $ivbinop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivbinopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinopsx_{lanetype#1643 : lanetype, dim#1643 : dim, i#14084 : nat, Jnn : Jnn, i#14091 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#1707 : lanetype, dim#1707 : dim, i#14357 : nat, i#14364 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#1655 : lanetype, dim#1655 : dim, i#14120 : nat, i#14127 : nat, lanetype#1680 : lanetype, dim#1680 : dim, i#14206 : nat, i#14213 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))*}(`%X%`_shape{lanetype#1643, dim#1643, i#14084}((Jnn : Jnn <: lanetype), `%`_dim{i#14091}(M)), def $f_, sx, v_1, v_2) = [$inv_lanes_(`%X%`_shape{lanetype#1707, dim#1707, i#14357}((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M)), c*{c <- `c*`})] - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M)), v_2)) + def $ivbinopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivbinopsxnd_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinopsxnd_{lanetype#1731 : lanetype, dim#1731 : dim, i#14430 : nat, Jnn : Jnn, i#14437 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `dim#1803*` : dim*, `i#14919*` : nat*, `i#14926*` : nat*, `lanetype#1803*` : lanetype*, lanetype#1743 : lanetype, dim#1743 : dim, i#14466 : nat, i#14473 : nat, lanetype#1768 : lanetype, dim#1768 : dim, i#14552 : nat, i#14559 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))*}(`%X%`_shape{lanetype#1731, dim#1731, i#14430}((Jnn : Jnn <: lanetype), `%`_dim{i#14437}(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1803 <- `dim#1803*`, i#14919 <- `i#14919*`, i#14926 <- `i#14926*`, lanetype#1803 <- `lanetype#1803*`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M)), v_2)) + def $ivbinopsxnd_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $fvbinop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvbinop_{lanetype#1827 : lanetype, dim#1827 : dim, i#14990 : nat, Fnn : Fnn, i#14997 : nat, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `dim#1893*` : dim*, `i#15183*` : nat*, `i#15190*` : nat*, `lanetype#1893*` : lanetype*, lanetype#1839 : lanetype, dim#1839 : dim, i#15026 : nat, i#15033 : nat, lanetype#1863 : lanetype, dim#1863 : dim, i#15084 : nat, i#15091 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))*}(`%X%`_shape{lanetype#1827, dim#1827, i#14990}((Fnn : Fnn <: lanetype), `%`_dim{i#14997}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#1893 <- `dim#1893*`, i#15183 <- `i#15183*`, i#15190 <- `i#15190*`, lanetype#1893 <- `lanetype#1893*`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M)), v_2)) + def $fvbinop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivternopnd_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivternopnd_{lanetype#1916 : lanetype, dim#1916 : dim, i#15228 : nat, Jnn : Jnn, i#15235 : nat, M : M, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `dim#2018*` : dim*, `i#15890*` : nat*, `i#15897*` : nat*, `lanetype#2018*` : lanetype*, lanetype#1928 : lanetype, dim#1928 : dim, i#15276 : nat, i#15283 : nat, lanetype#1953 : lanetype, dim#1953 : dim, i#15362 : nat, i#15369 : nat, lanetype#1978 : lanetype, dim#1978 : dim, i#15448 : nat, i#15455 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))*}(`%X%`_shape{lanetype#1916, dim#1916, i#15228}((Jnn : Jnn <: lanetype), `%`_dim{i#15235}(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#2018 <- `dim#2018*`, i#15890 <- `i#15890*`, i#15897 <- `i#15897*`, lanetype#2018 <- `lanetype#2018*`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M)), v_2)) - -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M)), v_3)) + def $ivternopnd_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) + -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_3)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $fvternop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvternop_{lanetype#2042 : lanetype, dim#2042 : dim, i#15961 : nat, Fnn : Fnn, i#15968 : nat, M : M, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `dim#2135*` : dim*, `i#16233*` : nat*, `i#16240*` : nat*, `lanetype#2135*` : lanetype*, lanetype#2054 : lanetype, dim#2054 : dim, i#16009 : nat, i#16016 : nat, lanetype#2078 : lanetype, dim#2078 : dim, i#16067 : nat, i#16074 : nat, lanetype#2102 : lanetype, dim#2102 : dim, i#16125 : nat, i#16132 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))*}(`%X%`_shape{lanetype#2042, dim#2042, i#15961}((Fnn : Fnn <: lanetype), `%`_dim{i#15968}(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#2135 <- `dim#2135*`, i#16233 <- `i#16233*`, i#16240 <- `i#16240*`, lanetype#2135 <- `lanetype#2135*`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M)), v_2)) - -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M)), v_3)) + def $fvternop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) + -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_3)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivrelop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivrelop_{lanetype#2158 : lanetype, dim#2158 : dim, i#16278 : nat, Jnn : Jnn, i#16285 : nat, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2222 : lanetype, dim#2222 : dim, i#16597 : nat, i#16604 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2170 : lanetype, dim#2170 : dim, i#16314 : nat, i#16321 : nat, lanetype#2195 : lanetype, dim#2195 : dim, i#16400 : nat, i#16407 : nat, `i#16555*` : nat*, `i#16556*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))*}(`%X%`_shape{lanetype#2158, dim#2158, i#16278}((Jnn : Jnn <: lanetype), `%`_dim{i#16285}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2222, dim#2222, i#16597}((Jnn : Jnn <: lanetype), `%`_dim{i#16604}(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16556}($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32{i#16555}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16555 <- `i#16555*`, i#16556 <- `i#16556*`}) + def $ivrelop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) + -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivrelopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivrelopsx_{lanetype#2246 : lanetype, dim#2246 : dim, i#16670 : nat, Jnn : Jnn, i#16677 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2310 : lanetype, dim#2310 : dim, i#16989 : nat, i#16996 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2258 : lanetype, dim#2258 : dim, i#16706 : nat, i#16713 : nat, lanetype#2283 : lanetype, dim#2283 : dim, i#16792 : nat, i#16799 : nat, `i#16947*` : nat*, `i#16948*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))*}(`%X%`_shape{lanetype#2246, dim#2246, i#16670}((Jnn : Jnn <: lanetype), `%`_dim{i#16677}(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2310, dim#2310, i#16989}((Jnn : Jnn <: lanetype), `%`_dim{i#16996}(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN{i#16948}($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32{i#16947}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#16947 <- `i#16947*`, i#16948 <- `i#16948*`}) + def $ivrelopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) + -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $fvrelop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvrelop_{lanetype#2334 : lanetype, dim#2334 : dim, i#17062 : nat, Fnn : Fnn, i#17069 : nat, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2396 : lanetype, dim#2396 : dim, i#17301 : nat, Inn : Inn, i#17308 : nat, `c*` : iN($sizenn((Fnn : Fnn <: numtype)))*, `i#17404*` : nat*, `i#17405*` : nat*, lanetype#2346 : lanetype, dim#2346 : dim, i#17098 : nat, i#17105 : nat, lanetype#2370 : lanetype, dim#2370 : dim, i#17156 : nat, i#17163 : nat, `i#17259*` : nat*, `i#17260*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))*}(`%X%`_shape{lanetype#2334, dim#2334, i#17062}((Fnn : Fnn <: lanetype), `%`_dim{i#17069}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2396, dim#2396, i#17301}((Inn : Inn <: lanetype), `%`_dim{i#17308}(M)), `%`_lane_{i#17405}(c!`%`_iN{i#17404}.0)*{c <- `c*`, i#17404 <- `i#17404*`, i#17405 <- `i#17405*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN{i#17260}($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32{i#17259}.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`, i#17259 <- `i#17259*`, i#17260 <- `i#17260*`}) + def $fvrelop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), Inn : Inn, `c*` : iN($sizenn((Fnn : Fnn <: numtype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Inn : Inn <: lanetype), `%`_dim(M)), `%`_lane_(c!`%`_iN.0)*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) + -- if (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) -- if ($isize(Inn) = $fsize(Fnn)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivshiftop_(shape : shape, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshiftop_{lanetype#2421 : lanetype, dim#2421 : dim, i#17411 : nat, Jnn : Jnn, i#17418 : nat, M : M, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), v_1 : vec_(`V128`_Vnn), i : u32, lanetype#2459 : lanetype, dim#2459 : dim, i#17593 : nat, i#17600 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2433 : lanetype, dim#2433 : dim, i#17447 : nat, i#17454 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))*}(`%X%`_shape{lanetype#2421, dim#2421, i#17411}((Jnn : Jnn <: lanetype), `%`_dim{i#17418}(M)), def $f_, v_1, i) = $inv_lanes_(`%X%`_shape{lanetype#2459, dim#2459, i#17593}((Jnn : Jnn <: lanetype), `%`_dim{i#17600}(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M)), v_1)) + def $ivshiftop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), v_1 : vec_(`V128`_Vnn), i : u32, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, i) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, i)*{c_1 <- `c_1*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivshiftopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshiftopsx_{lanetype#2483 : lanetype, dim#2483 : dim, i#17666 : nat, Jnn : Jnn, i#17673 : nat, M : M, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), i : u32, lanetype#2521 : lanetype, dim#2521 : dim, i#17848 : nat, i#17855 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2495 : lanetype, dim#2495 : dim, i#17702 : nat, i#17709 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))*}(`%X%`_shape{lanetype#2483, dim#2483, i#17666}((Jnn : Jnn <: lanetype), `%`_dim{i#17673}(M)), def $f_, sx, v_1, i) = $inv_lanes_(`%X%`_shape{lanetype#2521, dim#2521, i#17848}((Jnn : Jnn <: lanetype), `%`_dim{i#17855}(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M)), v_1)) + def $ivshiftopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), i : u32, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, i) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, i)*{c_1 <- `c_1*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivbitmaskop_(shape : shape, vec_ : vec_(`V128`_Vnn)) : u32 ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbitmaskop_{lanetype#2545 : lanetype, dim#2545 : dim, i#17921 : nat, Jnn : Jnn, i#17928 : nat, M : M, v_1 : vec_(`V128`_Vnn), c : iN(32), lanetype#2557 : lanetype, dim#2557 : dim, i#17945 : nat, i#17952 : nat, `i#18238*` : nat*, `i#18256*` : nat*, `i#18257*` : nat*, `i#18272*` : nat*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))*}(`%X%`_shape{lanetype#2545, dim#2545, i#17921}((Jnn : Jnn <: lanetype), `%`_dim{i#17928}(M)), v_1) = $irev_(32, c) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M)), v_1)) - -- if ($ibits_(32, c) = `%`_bit{i#18257}($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN{i#18238}(0))!`%`_u32{i#18256}.0)*{c_1 <- `c_1*`, i#18238 <- `i#18238*`, i#18256 <- `i#18256*`, i#18257 <- `i#18257*`} ++ `%`_bit{i#18272}(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){i#18272 <- `i#18272*`}) + def $ivbitmaskop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), c : iN(32), `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1) = $irev_(32, c) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if ($ibits_(32, c) = `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)*{c_1 <- `c_1*`} ++ `%`_bit(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivswizzlop_(shape : shape, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivswizzlop_{lanetype#2584 : lanetype, dim#2584 : dim, i#18299 : nat, Jnn : Jnn, i#18306 : nat, M : M, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2648 : lanetype, dim#2648 : dim, i#18585 : nat, i#18592 : nat, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, lanetype#2596 : lanetype, dim#2596 : dim, i#18335 : nat, i#18342 : nat, lanetype#2621 : lanetype, dim#2621 : dim, i#18421 : nat, i#18428 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))*}(`%X%`_shape{lanetype#2584, dim#2584, i#18299}((Jnn : Jnn <: lanetype), `%`_dim{i#18306}(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2648, dim#2648, i#18585}((Jnn : Jnn <: lanetype), `%`_dim{i#18592}(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M)), v_2)) + def $ivswizzlop_{Jnn : Jnn, M : M, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1*{c_1 <- `c_1*`}, c_2)*{c_2 <- `c_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshufflop_{lanetype#2672 : lanetype, dim#2672 : dim, i#18658 : nat, Jnn : Jnn, i#18665 : nat, M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#2760 : lanetype, dim#2760 : dim, i#19037 : nat, i#19044 : nat, lanetype#2684 : lanetype, dim#2684 : dim, i#18719 : nat, i#18726 : nat, lanetype#2709 : lanetype, dim#2709 : dim, i#18805 : nat, i#18812 : nat, `i#18958*` : nat*, `c*` : lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))*}(`%X%`_shape{lanetype#2672, dim#2672, i#18658}((Jnn : Jnn <: lanetype), `%`_dim{i#18665}(M)), i*{i <- `i*`}, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#2760, dim#2760, i#19037}((Jnn : Jnn <: lanetype), `%`_dim{i#19044}(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M)), v_2)) - -- if (c*{c <- `c*`} = c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx{i#18958}.0]*{i <- `i*`, i#18958 <- `i#18958*`}) + def $ivshufflop_{Jnn : Jnn, M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), i*{i <- `i*`}, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) + -- if (c*{c <- `c*`} = c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx.0]*{i <- `i*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vvunop_(vectype : vectype, vvunop : vvunop, vec_ : vec_(vectype)) : vec_(vectype)* @@ -116686,199 +91937,199 @@ def $vvternop_(vectype : vectype, vvternop : vvternop, vec_ : vec_(vectype), vec ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vunop_(shape : shape, vunop_ : vunop_(shape), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#2845 : lanetype, dim#2845 : dim, i#19491 : nat, Fnn : Fnn, i#19498 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#2894 : lanetype, dim#2894 : dim, i#19593 : nat, i#19600 : nat}(`%X%`_shape{lanetype#2845, dim#2845, i#19491}((Fnn : Fnn <: lanetype), `%`_dim{i#19498}(M)), `ABS`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#2894, dim#2894, i#19593}((Fnn : Fnn <: lanetype), `%`_dim{i#19600}(M)), def $fabs_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `ABS`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fabs_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#2906 : lanetype, dim#2906 : dim, i#19615 : nat, Fnn : Fnn, i#19622 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#2955 : lanetype, dim#2955 : dim, i#19717 : nat, i#19724 : nat}(`%X%`_shape{lanetype#2906, dim#2906, i#19615}((Fnn : Fnn <: lanetype), `%`_dim{i#19622}(M)), `NEG`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#2955, dim#2955, i#19717}((Fnn : Fnn <: lanetype), `%`_dim{i#19724}(M)), def $fneg_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `NEG`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fneg_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#2967 : lanetype, dim#2967 : dim, i#19739 : nat, Fnn : Fnn, i#19746 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3016 : lanetype, dim#3016 : dim, i#19841 : nat, i#19848 : nat}(`%X%`_shape{lanetype#2967, dim#2967, i#19739}((Fnn : Fnn <: lanetype), `%`_dim{i#19746}(M)), `SQRT`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3016, dim#3016, i#19841}((Fnn : Fnn <: lanetype), `%`_dim{i#19848}(M)), def $fsqrt_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `SQRT`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsqrt_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3028 : lanetype, dim#3028 : dim, i#19863 : nat, Fnn : Fnn, i#19870 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3077 : lanetype, dim#3077 : dim, i#19965 : nat, i#19972 : nat}(`%X%`_shape{lanetype#3028, dim#3028, i#19863}((Fnn : Fnn <: lanetype), `%`_dim{i#19870}(M)), `CEIL`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3077, dim#3077, i#19965}((Fnn : Fnn <: lanetype), `%`_dim{i#19972}(M)), def $fceil_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `CEIL`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fceil_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3089 : lanetype, dim#3089 : dim, i#19987 : nat, Fnn : Fnn, i#19994 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3138 : lanetype, dim#3138 : dim, i#20089 : nat, i#20096 : nat}(`%X%`_shape{lanetype#3089, dim#3089, i#19987}((Fnn : Fnn <: lanetype), `%`_dim{i#19994}(M)), `FLOOR`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3138, dim#3138, i#20089}((Fnn : Fnn <: lanetype), `%`_dim{i#20096}(M)), def $ffloor_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `FLOOR`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ffloor_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3150 : lanetype, dim#3150 : dim, i#20111 : nat, Fnn : Fnn, i#20118 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3199 : lanetype, dim#3199 : dim, i#20213 : nat, i#20220 : nat}(`%X%`_shape{lanetype#3150, dim#3150, i#20111}((Fnn : Fnn <: lanetype), `%`_dim{i#20118}(M)), `TRUNC`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3199, dim#3199, i#20213}((Fnn : Fnn <: lanetype), `%`_dim{i#20220}(M)), def $ftrunc_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `TRUNC`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ftrunc_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3211 : lanetype, dim#3211 : dim, i#20235 : nat, Fnn : Fnn, i#20242 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3260 : lanetype, dim#3260 : dim, i#20337 : nat, i#20344 : nat}(`%X%`_shape{lanetype#3211, dim#3211, i#20235}((Fnn : Fnn <: lanetype), `%`_dim{i#20242}(M)), `NEAREST`_vunop_, v) = $fvunop_(`%X%`_shape{lanetype#3260, dim#3260, i#20337}((Fnn : Fnn <: lanetype), `%`_dim{i#20344}(M)), def $fnearest_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `NEAREST`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fnearest_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3272 : lanetype, dim#3272 : dim, i#20359 : nat, Jnn : Jnn, i#20366 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3308 : lanetype, dim#3308 : dim, i#20448 : nat, i#20455 : nat}(`%X%`_shape{lanetype#3272, dim#3272, i#20359}((Jnn : Jnn <: lanetype), `%`_dim{i#20366}(M)), `ABS`_vunop_, v) = $ivunop_(`%X%`_shape{lanetype#3308, dim#3308, i#20448}((Jnn : Jnn <: lanetype), `%`_dim{i#20455}(M)), def $iabs_, v) + def $vunop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ABS`_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iabs_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3320 : lanetype, dim#3320 : dim, i#20470 : nat, Jnn : Jnn, i#20477 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3356 : lanetype, dim#3356 : dim, i#20559 : nat, i#20566 : nat}(`%X%`_shape{lanetype#3320, dim#3320, i#20470}((Jnn : Jnn <: lanetype), `%`_dim{i#20477}(M)), `NEG`_vunop_, v) = $ivunop_(`%X%`_shape{lanetype#3356, dim#3356, i#20559}((Jnn : Jnn <: lanetype), `%`_dim{i#20566}(M)), def $ineg_, v) + def $vunop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `NEG`_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ineg_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{lanetype#3368 : lanetype, dim#3368 : dim, i#20581 : nat, Jnn : Jnn, i#20588 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#3404 : lanetype, dim#3404 : dim, i#20670 : nat, i#20677 : nat}(`%X%`_shape{lanetype#3368, dim#3368, i#20581}((Jnn : Jnn <: lanetype), `%`_dim{i#20588}(M)), `POPCNT`_vunop_, v) = $ivunop_(`%X%`_shape{lanetype#3404, dim#3404, i#20670}((Jnn : Jnn <: lanetype), `%`_dim{i#20677}(M)), def $ipopcnt_, v) + def $vunop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `POPCNT`_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ipopcnt_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vbinop_(shape : shape, vbinop_ : vbinop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3416 : lanetype, dim#3416 : dim, i#20692 : nat, Jnn : Jnn, i#20699 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3452 : lanetype, dim#3452 : dim, i#20813 : nat, i#20820 : nat}(`%X%`_shape{lanetype#3416, dim#3416, i#20692}((Jnn : Jnn <: lanetype), `%`_dim{i#20699}(M)), `ADD`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape{lanetype#3452, dim#3452, i#20813}((Jnn : Jnn <: lanetype), `%`_dim{i#20820}(M)), def $iadd_, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ADD`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3464 : lanetype, dim#3464 : dim, i#20845 : nat, Jnn : Jnn, i#20852 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3500 : lanetype, dim#3500 : dim, i#20966 : nat, i#20973 : nat}(`%X%`_shape{lanetype#3464, dim#3464, i#20845}((Jnn : Jnn <: lanetype), `%`_dim{i#20852}(M)), `SUB`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape{lanetype#3500, dim#3500, i#20966}((Jnn : Jnn <: lanetype), `%`_dim{i#20973}(M)), def $isub_, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `SUB`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3512 : lanetype, dim#3512 : dim, i#20998 : nat, Jnn : Jnn, i#21005 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3548 : lanetype, dim#3548 : dim, i#21119 : nat, i#21126 : nat}(`%X%`_shape{lanetype#3512, dim#3512, i#20998}((Jnn : Jnn <: lanetype), `%`_dim{i#21005}(M)), `MUL`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape{lanetype#3548, dim#3548, i#21119}((Jnn : Jnn <: lanetype), `%`_dim{i#21126}(M)), def $imul_, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `MUL`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imul_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3560 : lanetype, dim#3560 : dim, i#21151 : nat, Jnn : Jnn, i#21158 : nat, M : M, sx#96 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3596 : lanetype, dim#3596 : dim, i#21272 : nat, i#21279 : nat}(`%X%`_shape{lanetype#3560, dim#3560, i#21151}((Jnn : Jnn <: lanetype), `%`_dim{i#21158}(M)), `ADD_SAT`_vbinop_{sx#96}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3596, dim#3596, i#21272}((Jnn : Jnn <: lanetype), `%`_dim{i#21279}(M)), def $iadd_sat_, sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ADD_SAT`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_sat_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3608 : lanetype, dim#3608 : dim, i#21304 : nat, Jnn : Jnn, i#21311 : nat, M : M, sx#98 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3644 : lanetype, dim#3644 : dim, i#21425 : nat, i#21432 : nat}(`%X%`_shape{lanetype#3608, dim#3608, i#21304}((Jnn : Jnn <: lanetype), `%`_dim{i#21311}(M)), `SUB_SAT`_vbinop_{sx#98}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3644, dim#3644, i#21425}((Jnn : Jnn <: lanetype), `%`_dim{i#21432}(M)), def $isub_sat_, sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `SUB_SAT`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_sat_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3656 : lanetype, dim#3656 : dim, i#21457 : nat, Jnn : Jnn, i#21464 : nat, M : M, sx#100 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3692 : lanetype, dim#3692 : dim, i#21578 : nat, i#21585 : nat}(`%X%`_shape{lanetype#3656, dim#3656, i#21457}((Jnn : Jnn <: lanetype), `%`_dim{i#21464}(M)), `MIN`_vbinop_{sx#100}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3692, dim#3692, i#21578}((Jnn : Jnn <: lanetype), `%`_dim{i#21585}(M)), def $imin_, sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `MIN`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imin_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3704 : lanetype, dim#3704 : dim, i#21610 : nat, Jnn : Jnn, i#21617 : nat, M : M, sx#102 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3740 : lanetype, dim#3740 : dim, i#21731 : nat, i#21738 : nat}(`%X%`_shape{lanetype#3704, dim#3704, i#21610}((Jnn : Jnn <: lanetype), `%`_dim{i#21617}(M)), `MAX`_vbinop_{sx#102}(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3740, dim#3740, i#21731}((Jnn : Jnn <: lanetype), `%`_dim{i#21738}(M)), def $imax_, sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `MAX`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imax_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3752 : lanetype, dim#3752 : dim, i#21763 : nat, Jnn : Jnn, i#21770 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3788 : lanetype, dim#3788 : dim, i#21884 : nat, i#21891 : nat}(`%X%`_shape{lanetype#3752, dim#3752, i#21763}((Jnn : Jnn <: lanetype), `%`_dim{i#21770}(M)), `AVGRU`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3788, dim#3788, i#21884}((Jnn : Jnn <: lanetype), `%`_dim{i#21891}(M)), def $iavgr_, `U`_sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `AVGRU`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iavgr_, `U`_sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3800 : lanetype, dim#3800 : dim, i#21916 : nat, Jnn : Jnn, i#21923 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3836 : lanetype, dim#3836 : dim, i#22037 : nat, i#22044 : nat}(`%X%`_shape{lanetype#3800, dim#3800, i#21916}((Jnn : Jnn <: lanetype), `%`_dim{i#21923}(M)), `Q15MULR_SATS`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape{lanetype#3836, dim#3836, i#22037}((Jnn : Jnn <: lanetype), `%`_dim{i#22044}(M)), def $iq15mulr_sat_, `S`_sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `Q15MULR_SATS`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iq15mulr_sat_, `S`_sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3848 : lanetype, dim#3848 : dim, i#22069 : nat, Jnn : Jnn, i#22076 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3884 : lanetype, dim#3884 : dim, i#22190 : nat, i#22197 : nat}(`%X%`_shape{lanetype#3848, dim#3848, i#22069}((Jnn : Jnn <: lanetype), `%`_dim{i#22076}(M)), `RELAXED_Q15MULRS`_vbinop_, v_1, v_2) = $ivbinopsxnd_(`%X%`_shape{lanetype#3884, dim#3884, i#22190}((Jnn : Jnn <: lanetype), `%`_dim{i#22197}(M)), def $irelaxed_q15mulr_, `S`_sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `RELAXED_Q15MULRS`_vbinop_, v_1, v_2) = $ivbinopsxnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_q15mulr_, `S`_sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3896 : lanetype, dim#3896 : dim, i#22222 : nat, Fnn : Fnn, i#22229 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#3945 : lanetype, dim#3945 : dim, i#22356 : nat, i#22363 : nat}(`%X%`_shape{lanetype#3896, dim#3896, i#22222}((Fnn : Fnn <: lanetype), `%`_dim{i#22229}(M)), `ADD`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#3945, dim#3945, i#22356}((Fnn : Fnn <: lanetype), `%`_dim{i#22363}(M)), def $fadd_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `ADD`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fadd_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#3957 : lanetype, dim#3957 : dim, i#22388 : nat, Fnn : Fnn, i#22395 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4006 : lanetype, dim#4006 : dim, i#22522 : nat, i#22529 : nat}(`%X%`_shape{lanetype#3957, dim#3957, i#22388}((Fnn : Fnn <: lanetype), `%`_dim{i#22395}(M)), `SUB`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4006, dim#4006, i#22522}((Fnn : Fnn <: lanetype), `%`_dim{i#22529}(M)), def $fsub_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `SUB`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsub_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4018 : lanetype, dim#4018 : dim, i#22554 : nat, Fnn : Fnn, i#22561 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4067 : lanetype, dim#4067 : dim, i#22688 : nat, i#22695 : nat}(`%X%`_shape{lanetype#4018, dim#4018, i#22554}((Fnn : Fnn <: lanetype), `%`_dim{i#22561}(M)), `MUL`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4067, dim#4067, i#22688}((Fnn : Fnn <: lanetype), `%`_dim{i#22695}(M)), def $fmul_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `MUL`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmul_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4079 : lanetype, dim#4079 : dim, i#22720 : nat, Fnn : Fnn, i#22727 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4128 : lanetype, dim#4128 : dim, i#22854 : nat, i#22861 : nat}(`%X%`_shape{lanetype#4079, dim#4079, i#22720}((Fnn : Fnn <: lanetype), `%`_dim{i#22727}(M)), `DIV`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4128, dim#4128, i#22854}((Fnn : Fnn <: lanetype), `%`_dim{i#22861}(M)), def $fdiv_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `DIV`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fdiv_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4140 : lanetype, dim#4140 : dim, i#22886 : nat, Fnn : Fnn, i#22893 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4189 : lanetype, dim#4189 : dim, i#23020 : nat, i#23027 : nat}(`%X%`_shape{lanetype#4140, dim#4140, i#22886}((Fnn : Fnn <: lanetype), `%`_dim{i#22893}(M)), `MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4189, dim#4189, i#23020}((Fnn : Fnn <: lanetype), `%`_dim{i#23027}(M)), def $fmin_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmin_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4201 : lanetype, dim#4201 : dim, i#23052 : nat, Fnn : Fnn, i#23059 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4250 : lanetype, dim#4250 : dim, i#23186 : nat, i#23193 : nat}(`%X%`_shape{lanetype#4201, dim#4201, i#23052}((Fnn : Fnn <: lanetype), `%`_dim{i#23059}(M)), `MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4250, dim#4250, i#23186}((Fnn : Fnn <: lanetype), `%`_dim{i#23193}(M)), def $fmax_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmax_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4262 : lanetype, dim#4262 : dim, i#23218 : nat, Fnn : Fnn, i#23225 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4311 : lanetype, dim#4311 : dim, i#23352 : nat, i#23359 : nat}(`%X%`_shape{lanetype#4262, dim#4262, i#23218}((Fnn : Fnn <: lanetype), `%`_dim{i#23225}(M)), `PMIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4311, dim#4311, i#23352}((Fnn : Fnn <: lanetype), `%`_dim{i#23359}(M)), def $fpmin_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `PMIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmin_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4323 : lanetype, dim#4323 : dim, i#23384 : nat, Fnn : Fnn, i#23391 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4372 : lanetype, dim#4372 : dim, i#23518 : nat, i#23525 : nat}(`%X%`_shape{lanetype#4323, dim#4323, i#23384}((Fnn : Fnn <: lanetype), `%`_dim{i#23391}(M)), `PMAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4372, dim#4372, i#23518}((Fnn : Fnn <: lanetype), `%`_dim{i#23525}(M)), def $fpmax_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `PMAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmax_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4384 : lanetype, dim#4384 : dim, i#23550 : nat, Fnn : Fnn, i#23557 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4433 : lanetype, dim#4433 : dim, i#23684 : nat, i#23691 : nat}(`%X%`_shape{lanetype#4384, dim#4384, i#23550}((Fnn : Fnn <: lanetype), `%`_dim{i#23557}(M)), `RELAXED_MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4433, dim#4433, i#23684}((Fnn : Fnn <: lanetype), `%`_dim{i#23691}(M)), def $frelaxed_min_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_min_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{lanetype#4445 : lanetype, dim#4445 : dim, i#23716 : nat, Fnn : Fnn, i#23723 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4494 : lanetype, dim#4494 : dim, i#23850 : nat, i#23857 : nat}(`%X%`_shape{lanetype#4445, dim#4445, i#23716}((Fnn : Fnn <: lanetype), `%`_dim{i#23723}(M)), `RELAXED_MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape{lanetype#4494, dim#4494, i#23850}((Fnn : Fnn <: lanetype), `%`_dim{i#23857}(M)), def $frelaxed_max_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_max_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vternop_(shape : shape, vternop_ : vternop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{lanetype#4506 : lanetype, dim#4506 : dim, i#23882 : nat, Jnn : Jnn, i#23889 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), lanetype#4542 : lanetype, dim#4542 : dim, i#24035 : nat, i#24042 : nat}(`%X%`_shape{lanetype#4506, dim#4506, i#23882}((Jnn : Jnn <: lanetype), `%`_dim{i#23889}(M)), `RELAXED_LANESELECT`_vternop_, v_1, v_2, v_3) = $ivternopnd_(`%X%`_shape{lanetype#4542, dim#4542, i#24035}((Jnn : Jnn <: lanetype), `%`_dim{i#24042}(M)), def $irelaxed_laneselect_, v_1, v_2, v_3) + def $vternop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `RELAXED_LANESELECT`_vternop_, v_1, v_2, v_3) = $ivternopnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_laneselect_, v_1, v_2, v_3) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{lanetype#4554 : lanetype, dim#4554 : dim, i#24077 : nat, Fnn : Fnn, i#24084 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), lanetype#4603 : lanetype, dim#4603 : dim, i#24243 : nat, i#24250 : nat}(`%X%`_shape{lanetype#4554, dim#4554, i#24077}((Fnn : Fnn <: lanetype), `%`_dim{i#24084}(M)), `RELAXED_MADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape{lanetype#4603, dim#4603, i#24243}((Fnn : Fnn <: lanetype), `%`_dim{i#24250}(M)), def $frelaxed_madd_, v_1, v_2, v_3) + def $vternop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_MADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_madd_, v_1, v_2, v_3) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{lanetype#4615 : lanetype, dim#4615 : dim, i#24285 : nat, Fnn : Fnn, i#24292 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), lanetype#4664 : lanetype, dim#4664 : dim, i#24451 : nat, i#24458 : nat}(`%X%`_shape{lanetype#4615, dim#4615, i#24285}((Fnn : Fnn <: lanetype), `%`_dim{i#24292}(M)), `RELAXED_NMADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape{lanetype#4664, dim#4664, i#24451}((Fnn : Fnn <: lanetype), `%`_dim{i#24458}(M)), def $frelaxed_nmadd_, v_1, v_2, v_3) + def $vternop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_NMADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_nmadd_, v_1, v_2, v_3) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vrelop_(shape : shape, vrelop_ : vrelop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4676 : lanetype, dim#4676 : dim, i#24493 : nat, Jnn : Jnn, i#24500 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4688 : lanetype, dim#4688 : dim, i#24539 : nat, i#24546 : nat}(`%X%`_shape{lanetype#4676, dim#4676, i#24493}((Jnn : Jnn <: lanetype), `%`_dim{i#24500}(M)), `EQ`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape{lanetype#4688, dim#4688, i#24539}((Jnn : Jnn <: lanetype), `%`_dim{i#24546}(M)), def $ieq_, v_1, v_2) + def $vrelop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `EQ`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ieq_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4700 : lanetype, dim#4700 : dim, i#24571 : nat, Jnn : Jnn, i#24578 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4712 : lanetype, dim#4712 : dim, i#24617 : nat, i#24624 : nat}(`%X%`_shape{lanetype#4700, dim#4700, i#24571}((Jnn : Jnn <: lanetype), `%`_dim{i#24578}(M)), `NE`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape{lanetype#4712, dim#4712, i#24617}((Jnn : Jnn <: lanetype), `%`_dim{i#24624}(M)), def $ine_, v_1, v_2) + def $vrelop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `NE`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ine_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4724 : lanetype, dim#4724 : dim, i#24649 : nat, Jnn : Jnn, i#24656 : nat, M : M, sx#104 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4736 : lanetype, dim#4736 : dim, i#24695 : nat, i#24702 : nat}(`%X%`_shape{lanetype#4724, dim#4724, i#24649}((Jnn : Jnn <: lanetype), `%`_dim{i#24656}(M)), `LT`_vrelop_{sx#104}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4736, dim#4736, i#24695}((Jnn : Jnn <: lanetype), `%`_dim{i#24702}(M)), def $ilt_, sx, v_1, v_2) + def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `LT`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ilt_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4748 : lanetype, dim#4748 : dim, i#24727 : nat, Jnn : Jnn, i#24734 : nat, M : M, sx#106 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4760 : lanetype, dim#4760 : dim, i#24773 : nat, i#24780 : nat}(`%X%`_shape{lanetype#4748, dim#4748, i#24727}((Jnn : Jnn <: lanetype), `%`_dim{i#24734}(M)), `GT`_vrelop_{sx#106}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4760, dim#4760, i#24773}((Jnn : Jnn <: lanetype), `%`_dim{i#24780}(M)), def $igt_, sx, v_1, v_2) + def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `GT`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $igt_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4772 : lanetype, dim#4772 : dim, i#24805 : nat, Jnn : Jnn, i#24812 : nat, M : M, sx#108 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4784 : lanetype, dim#4784 : dim, i#24851 : nat, i#24858 : nat}(`%X%`_shape{lanetype#4772, dim#4772, i#24805}((Jnn : Jnn <: lanetype), `%`_dim{i#24812}(M)), `LE`_vrelop_{sx#108}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4784, dim#4784, i#24851}((Jnn : Jnn <: lanetype), `%`_dim{i#24858}(M)), def $ile_, sx, v_1, v_2) + def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `LE`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ile_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4796 : lanetype, dim#4796 : dim, i#24883 : nat, Jnn : Jnn, i#24890 : nat, M : M, sx#110 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4808 : lanetype, dim#4808 : dim, i#24929 : nat, i#24936 : nat}(`%X%`_shape{lanetype#4796, dim#4796, i#24883}((Jnn : Jnn <: lanetype), `%`_dim{i#24890}(M)), `GE`_vrelop_{sx#110}(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape{lanetype#4808, dim#4808, i#24929}((Jnn : Jnn <: lanetype), `%`_dim{i#24936}(M)), def $ige_, sx, v_1, v_2) + def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `GE`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ige_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4820 : lanetype, dim#4820 : dim, i#24961 : nat, Fnn : Fnn, i#24968 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4845 : lanetype, dim#4845 : dim, i#25020 : nat, i#25027 : nat}(`%X%`_shape{lanetype#4820, dim#4820, i#24961}((Fnn : Fnn <: lanetype), `%`_dim{i#24968}(M)), `EQ`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4845, dim#4845, i#25020}((Fnn : Fnn <: lanetype), `%`_dim{i#25027}(M)), def $feq_, v_1, v_2) + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `EQ`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $feq_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4857 : lanetype, dim#4857 : dim, i#25052 : nat, Fnn : Fnn, i#25059 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4882 : lanetype, dim#4882 : dim, i#25111 : nat, i#25118 : nat}(`%X%`_shape{lanetype#4857, dim#4857, i#25052}((Fnn : Fnn <: lanetype), `%`_dim{i#25059}(M)), `NE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4882, dim#4882, i#25111}((Fnn : Fnn <: lanetype), `%`_dim{i#25118}(M)), def $fne_, v_1, v_2) + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `NE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fne_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4894 : lanetype, dim#4894 : dim, i#25143 : nat, Fnn : Fnn, i#25150 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4919 : lanetype, dim#4919 : dim, i#25202 : nat, i#25209 : nat}(`%X%`_shape{lanetype#4894, dim#4894, i#25143}((Fnn : Fnn <: lanetype), `%`_dim{i#25150}(M)), `LT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4919, dim#4919, i#25202}((Fnn : Fnn <: lanetype), `%`_dim{i#25209}(M)), def $flt_, v_1, v_2) + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `LT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $flt_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4931 : lanetype, dim#4931 : dim, i#25234 : nat, Fnn : Fnn, i#25241 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4956 : lanetype, dim#4956 : dim, i#25293 : nat, i#25300 : nat}(`%X%`_shape{lanetype#4931, dim#4931, i#25234}((Fnn : Fnn <: lanetype), `%`_dim{i#25241}(M)), `GT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4956, dim#4956, i#25293}((Fnn : Fnn <: lanetype), `%`_dim{i#25300}(M)), def $fgt_, v_1, v_2) + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `GT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fgt_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#4968 : lanetype, dim#4968 : dim, i#25325 : nat, Fnn : Fnn, i#25332 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#4993 : lanetype, dim#4993 : dim, i#25384 : nat, i#25391 : nat}(`%X%`_shape{lanetype#4968, dim#4968, i#25325}((Fnn : Fnn <: lanetype), `%`_dim{i#25332}(M)), `LE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#4993, dim#4993, i#25384}((Fnn : Fnn <: lanetype), `%`_dim{i#25391}(M)), def $fle_, v_1, v_2) + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `LE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fle_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{lanetype#5005 : lanetype, dim#5005 : dim, i#25416 : nat, Fnn : Fnn, i#25423 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5030 : lanetype, dim#5030 : dim, i#25475 : nat, i#25482 : nat}(`%X%`_shape{lanetype#5005, dim#5005, i#25416}((Fnn : Fnn <: lanetype), `%`_dim{i#25423}(M)), `GE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape{lanetype#5030, dim#5030, i#25475}((Fnn : Fnn <: lanetype), `%`_dim{i#25482}(M)), def $fge_, v_1, v_2) + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `GE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fge_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $lcvtop__(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2), lane_ : lane_($lanetype(shape_1))) : lane_($lanetype(shape_2))* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{lanetype#5186 : lanetype, dim#5186 : dim, i#26001 : nat, Jnn_1 : Jnn, i#26008 : nat, M_1 : M, lanetype#5198 : lanetype, dim#5198 : dim, i#26013 : nat, Jnn_2 : Jnn, i#26020 : nat, M_2 : M, half#5 : half, sx#114 : sx, half : half, sx : sx, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5186, dim#5186, i#26001}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26008}(M_1)))), c : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))}(`%X%`_shape{lanetype#5186, dim#5186, i#26001}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26008}(M_1)), `%X%`_shape{lanetype#5198, dim#5198, i#26013}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#26020}(M_2)), `EXTEND`_vcvtop__{half#5, sx#114}(half, sx), c_1) = [c] + def $lcvtop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx, c_1 : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))), c : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `EXTEND`_vcvtop__(half, sx), c_1) = [c] -- if (c = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{lanetype#5222 : lanetype, dim#5222 : dim, i#26109 : nat, Jnn_1 : Jnn, i#26116 : nat, M_1 : M, lanetype#5234 : lanetype, dim#5234 : dim, i#26121 : nat, Fnn_2 : Fnn, i#26128 : nat, M_2 : M, `half?#5` : half?, sx#116 : sx, `half?` : half?, sx : sx, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5222, dim#5222, i#26109}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26116}(M_1)))), c : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))}(`%X%`_shape{lanetype#5222, dim#5222, i#26109}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#26116}(M_1)), `%X%`_shape{lanetype#5234, dim#5234, i#26121}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26128}(M_2)), `CONVERT`_vcvtop__{`half?#5`, sx#116}(half?{half <- `half?`}, sx), c_1) = [c] + def $lcvtop__{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx, c_1 : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))), c : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `CONVERT`_vcvtop__(half?{half <- `half?`}, sx), c_1) = [c] -- if (c = $convert__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), sx, c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{lanetype#5273 : lanetype, dim#5273 : dim, i#26208 : nat, Fnn_1 : Fnn, i#26215 : nat, M_1 : M, lanetype#5285 : lanetype, dim#5285 : dim, i#26220 : nat, Inn_2 : Inn, i#26227 : nat, M_2 : M, sx#148 : sx, `zero?#39` : zero?, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5273, dim#5273, i#26208}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26215}(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape{lanetype#5273, dim#5273, i#26208}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26215}(M_1)), `%X%`_shape{lanetype#5285, dim#5285, i#26220}((Inn_2 : Inn <: lanetype), `%`_dim{i#26227}(M_2)), `TRUNC_SAT`_vcvtop__{sx#148, `zero?#39`}(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) + def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Inn_2 : Inn, M_2 : M, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2)), `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) -- if (c?{c <- `c?`} = $trunc_sat__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{lanetype#5361 : lanetype, dim#5361 : dim, i#26384 : nat, Fnn_1 : Fnn, i#26391 : nat, M_1 : M, lanetype#5373 : lanetype, dim#5373 : dim, i#26396 : nat, Inn_2 : Inn, i#26403 : nat, M_2 : M, sx#180 : sx, `zero?#71` : zero?, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5361, dim#5361, i#26384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26391}(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape{lanetype#5361, dim#5361, i#26384}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26391}(M_1)), `%X%`_shape{lanetype#5373, dim#5373, i#26396}((Inn_2 : Inn <: lanetype), `%`_dim{i#26403}(M_2)), `RELAXED_TRUNC`_vcvtop__{sx#180, `zero?#71`}(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) + def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Inn_2 : Inn, M_2 : M, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2)), `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) -- if (c?{c <- `c?`} = $relaxed_trunc__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{lanetype#5449 : lanetype, dim#5449 : dim, i#26560 : nat, Fnn_1 : Fnn, i#26567 : nat, M_1 : M, lanetype#5461 : lanetype, dim#5461 : dim, i#26572 : nat, Fnn_2 : Fnn, i#26579 : nat, M_2 : M, zero#125 : zero, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5449, dim#5449, i#26560}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26567}(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape{lanetype#5449, dim#5449, i#26560}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26567}(M_1)), `%X%`_shape{lanetype#5461, dim#5461, i#26572}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26579}(M_2)), `DEMOTE`_vcvtop__{zero#125}(`ZERO`_zero), c_1) = c*{c <- `c*`} + def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `DEMOTE`_vcvtop__(`ZERO`_zero), c_1) = c*{c <- `c*`} -- if (c*{c <- `c*`} = $demote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{lanetype#5536 : lanetype, dim#5536 : dim, i#26683 : nat, Fnn_1 : Fnn, i#26690 : nat, M_1 : M, lanetype#5548 : lanetype, dim#5548 : dim, i#26695 : nat, Fnn_2 : Fnn, i#26702 : nat, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape{lanetype#5536, dim#5536, i#26683}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26690}(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape{lanetype#5536, dim#5536, i#26683}((Fnn_1 : Fnn <: lanetype), `%`_dim{i#26690}(M_1)), `%X%`_shape{lanetype#5548, dim#5548, i#26695}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26702}(M_2)), `PROMOTELOW`_vcvtop__, c_1) = c*{c <- `c*`} + def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__, c_1) = c*{c <- `c*`} -- if (c*{c <- `c*`} = $promote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vcvtop__(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{lanetype#5623 : lanetype, dim#5623 : dim, i#26806 : nat, Lnn_1 : Lnn, i#26813 : nat, M : M, lanetype#5635 : lanetype, dim#5635 : dim, i#26818 : nat, Lnn_2 : Lnn, i#26825 : nat, vcvtop : vcvtop__(`%X%`_shape{lanetype#5623, dim#5623, i#26806}(Lnn_1, `%`_dim{i#26813}(M)), `%X%`_shape{lanetype#5635, dim#5635, i#26818}(Lnn_2, `%`_dim{i#26825}(M))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#5671 : lanetype, dim#5671 : dim, i#26866 : nat, i#26873 : nat, lanetype#5683 : lanetype, dim#5683 : dim, i#26878 : nat, i#26885 : nat, lanetype#5711 : lanetype, dim#5711 : dim, i#26906 : nat, i#26913 : nat, lanetype#5723 : lanetype, dim#5723 : dim, i#26918 : nat, i#26925 : nat, lanetype#5751 : lanetype, dim#5751 : dim, i#26946 : nat, i#26953 : nat, `c**` : lane_(Lnn_2)**, `dim#5867*` : dim*, `dim#5879*` : dim*, `i#27120*` : nat*, `i#27127*` : nat*, `i#27132*` : nat*, `i#27139*` : nat*, `lanetype#5867*` : lanetype*, `lanetype#5879*` : lanetype*, `dim#5914*` : dim*, `i#27181*` : nat*, `i#27188*` : nat*, `lanetype#5914*` : lanetype*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))*}(`%X%`_shape{lanetype#5623, dim#5623, i#26806}(Lnn_1, `%`_dim{i#26813}(M)), `%X%`_shape{lanetype#5635, dim#5635, i#26818}(Lnn_2, `%`_dim{i#26825}(M)), vcvtop, v_1) = v - -- if (($halfop(`%X%`_shape{lanetype#5671, dim#5671, i#26866}(Lnn_1, `%`_dim{i#26873}(M)), `%X%`_shape{lanetype#5683, dim#5683, i#26878}(Lnn_2, `%`_dim{i#26885}(M)), vcvtop) = ?()) /\ ($zeroop(`%X%`_shape{lanetype#5711, dim#5711, i#26906}(Lnn_1, `%`_dim{i#26913}(M)), `%X%`_shape{lanetype#5723, dim#5723, i#26918}(Lnn_2, `%`_dim{i#26925}(M)), vcvtop) = ?())) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M)), v_1)) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M)), `%X%`_shape{lanetype#5879, dim#5879, i#27132}(Lnn_2, `%`_dim{i#27139}(M)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#5867 <- `dim#5867*`, dim#5879 <- `dim#5879*`, i#27120 <- `i#27120*`, i#27127 <- `i#27127*`, i#27132 <- `i#27132*`, i#27139 <- `i#27139*`, lanetype#5867 <- `lanetype#5867*`, lanetype#5879 <- `lanetype#5879*`})) - -- if (v <- $inv_lanes_(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M)), c*{c <- `c*`})*{`c*` <- `c**`, dim#5914 <- `dim#5914*`, i#27181 <- `i#27181*`, i#27188 <- `i#27188*`, lanetype#5914 <- `lanetype#5914*`}) + def $vcvtop__{Lnn_1 : Lnn, M : M, Lnn_2 : Lnn, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, v_1) = v + -- if (($halfop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?()) /\ ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?())) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M)), v_1)) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, c_1)*{c_1 <- `c_1*`})) + -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{lanetype#5937 : lanetype, dim#5937 : dim, i#27248 : nat, Lnn_1 : Lnn, i#27255 : nat, M_1 : M, lanetype#5949 : lanetype, dim#5949 : dim, i#27260 : nat, Lnn_2 : Lnn, i#27267 : nat, M_2 : M, vcvtop : vcvtop__(`%X%`_shape{lanetype#5937, dim#5937, i#27248}(Lnn_1, `%`_dim{i#27255}(M_1)), `%X%`_shape{lanetype#5949, dim#5949, i#27260}(Lnn_2, `%`_dim{i#27267}(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#6025 : lanetype, dim#6025 : dim, i#27348 : nat, i#27355 : nat, lanetype#6037 : lanetype, dim#6037 : dim, i#27360 : nat, i#27367 : nat, half : half, lanetype#6065 : lanetype, dim#6065 : dim, i#27388 : nat, i#27395 : nat, `c**` : lane_(Lnn_2)**, `dim#6181*` : dim*, `dim#6193*` : dim*, `i#27562*` : nat*, `i#27569*` : nat*, `i#27574*` : nat*, `i#27581*` : nat*, `lanetype#6181*` : lanetype*, `lanetype#6193*` : lanetype*, `dim#6228*` : dim*, `i#27623*` : nat*, `i#27630*` : nat*, `lanetype#6228*` : lanetype*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))*}(`%X%`_shape{lanetype#5937, dim#5937, i#27248}(Lnn_1, `%`_dim{i#27255}(M_1)), `%X%`_shape{lanetype#5949, dim#5949, i#27260}(Lnn_2, `%`_dim{i#27267}(M_2)), vcvtop, v_1) = v - -- if ($halfop(`%X%`_shape{lanetype#6025, dim#6025, i#27348}(Lnn_1, `%`_dim{i#27355}(M_1)), `%X%`_shape{lanetype#6037, dim#6037, i#27360}(Lnn_2, `%`_dim{i#27367}(M_2)), vcvtop) = ?(half)) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1)), v_1)[$half(half, 0, M_2) : M_2]) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1)), `%X%`_shape{lanetype#6193, dim#6193, i#27574}(Lnn_2, `%`_dim{i#27581}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6181 <- `dim#6181*`, dim#6193 <- `dim#6193*`, i#27562 <- `i#27562*`, i#27569 <- `i#27569*`, i#27574 <- `i#27574*`, i#27581 <- `i#27581*`, lanetype#6181 <- `lanetype#6181*`, lanetype#6193 <- `lanetype#6193*`})) - -- if (v <- $inv_lanes_(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6228 <- `dim#6228*`, i#27623 <- `i#27623*`, i#27630 <- `i#27630*`, lanetype#6228 <- `lanetype#6228*`}) + def $vcvtop__{Lnn_1 : Lnn, M_1 : M, Lnn_2 : Lnn, M_2 : M, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), half : half, `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, v_1) = v + -- if ($halfop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(half)) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)[$half(half, 0, M_2) : M_2]) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`})) + -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{lanetype#6251 : lanetype, dim#6251 : dim, i#27690 : nat, Lnn_1 : Lnn, i#27697 : nat, M_1 : M, lanetype#6263 : lanetype, dim#6263 : dim, i#27702 : nat, Lnn_2 : Lnn, i#27709 : nat, M_2 : M, vcvtop : vcvtop__(`%X%`_shape{lanetype#6251, dim#6251, i#27690}(Lnn_1, `%`_dim{i#27697}(M_1)), `%X%`_shape{lanetype#6263, dim#6263, i#27702}(Lnn_2, `%`_dim{i#27709}(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#6299 : lanetype, dim#6299 : dim, i#27750 : nat, i#27757 : nat, lanetype#6311 : lanetype, dim#6311 : dim, i#27762 : nat, i#27769 : nat, lanetype#6339 : lanetype, dim#6339 : dim, i#27790 : nat, i#27797 : nat, `c**` : lane_(Lnn_2)**, `dim#6501*` : dim*, `dim#6513*` : dim*, `i#28022*` : nat*, `i#28029*` : nat*, `i#28034*` : nat*, `i#28041*` : nat*, `lanetype#6501*` : lanetype*, `lanetype#6513*` : lanetype*, `dim#6548*` : dim*, `i#28083*` : nat*, `i#28090*` : nat*, `lanetype#6548*` : lanetype*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))*}(`%X%`_shape{lanetype#6251, dim#6251, i#27690}(Lnn_1, `%`_dim{i#27697}(M_1)), `%X%`_shape{lanetype#6263, dim#6263, i#27702}(Lnn_2, `%`_dim{i#27709}(M_2)), vcvtop, v_1) = v - -- if ($zeroop(`%X%`_shape{lanetype#6299, dim#6299, i#27750}(Lnn_1, `%`_dim{i#27757}(M_1)), `%X%`_shape{lanetype#6311, dim#6311, i#27762}(Lnn_2, `%`_dim{i#27769}(M_2)), vcvtop) = ?(`ZERO`_zero)) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1)), v_1)) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1)), `%X%`_shape{lanetype#6513, dim#6513, i#28034}(Lnn_2, `%`_dim{i#28041}(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`, dim#6501 <- `dim#6501*`, dim#6513 <- `dim#6513*`, i#28022 <- `i#28022*`, i#28029 <- `i#28029*`, i#28034 <- `i#28034*`, i#28041 <- `i#28041*`, lanetype#6501 <- `lanetype#6501*`, lanetype#6513 <- `lanetype#6513*`} ++ [$zero(Lnn_2)]^M_1{})) - -- if (v <- $inv_lanes_(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2)), c*{c <- `c*`})*{`c*` <- `c**`, dim#6548 <- `dim#6548*`, i#28083 <- `i#28083*`, i#28090 <- `i#28090*`, lanetype#6548 <- `lanetype#6548*`}) + def $vcvtop__{Lnn_1 : Lnn, M_1 : M, Lnn_2 : Lnn, M_2 : M, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, v_1) = v + -- if ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(`ZERO`_zero)) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)) + -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`} ++ [$zero(Lnn_2)]^M_1{})) + -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vshiftop_(ishape : ishape, vshiftop_ : vshiftop_(ishape), vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshiftop_{shape#421 : shape, Jnn#119 : Jnn, lanetype#5042 : lanetype, dim#5042 : dim, i#25507 : nat, Jnn : Jnn, i#25514 : nat, M : M, v : vec_(`V128`_Vnn), i : u32, lanetype#5054 : lanetype, dim#5054 : dim, i#25553 : nat, i#25560 : nat}(`%`_ishape{shape#421, Jnn#119}(`%X%`_shape{lanetype#5042, dim#5042, i#25507}((Jnn : Jnn <: lanetype), `%`_dim{i#25514}(M))), `SHL`_vshiftop_, v, i) = $ivshiftop_(`%X%`_shape{lanetype#5054, dim#5054, i#25553}((Jnn : Jnn <: lanetype), `%`_dim{i#25560}(M)), def $ishl_, v, i) + def $vshiftop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn), i : u32}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `SHL`_vshiftop_, v, i) = $ivshiftop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishl_, v, i) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshiftop_{shape#433 : shape, Jnn#123 : Jnn, lanetype#5066 : lanetype, dim#5066 : dim, i#25585 : nat, Jnn : Jnn, i#25592 : nat, M : M, sx#112 : sx, sx : sx, v : vec_(`V128`_Vnn), i : u32, lanetype#5078 : lanetype, dim#5078 : dim, i#25631 : nat, i#25638 : nat}(`%`_ishape{shape#433, Jnn#123}(`%X%`_shape{lanetype#5066, dim#5066, i#25585}((Jnn : Jnn <: lanetype), `%`_dim{i#25592}(M))), `SHR`_vshiftop_{sx#112}(sx), v, i) = $ivshiftopsx_(`%X%`_shape{lanetype#5078, dim#5078, i#25631}((Jnn : Jnn <: lanetype), `%`_dim{i#25638}(M)), def $ishr_, sx, v, i) + def $vshiftop_{Jnn : Jnn, M : M, sx : sx, v : vec_(`V128`_Vnn), i : u32}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `SHR`_vshiftop_(sx), v, i) = $ivshiftopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishr_, sx, v, i) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vbitmaskop_(ishape : ishape, vec_ : vec_(`V128`_Vnn)) : u32 ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbitmaskop_{shape#445 : shape, Jnn#127 : Jnn, lanetype#5090 : lanetype, dim#5090 : dim, i#25663 : nat, Jnn : Jnn, i#25670 : nat, M : M, v : vec_(`V128`_Vnn), lanetype#5102 : lanetype, dim#5102 : dim, i#25697 : nat, i#25704 : nat}(`%`_ishape{shape#445, Jnn#127}(`%X%`_shape{lanetype#5090, dim#5090, i#25663}((Jnn : Jnn <: lanetype), `%`_dim{i#25670}(M))), v) = $ivbitmaskop_(`%X%`_shape{lanetype#5102, dim#5102, i#25697}((Jnn : Jnn <: lanetype), `%`_dim{i#25704}(M)), v) + def $vbitmaskop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), v) = $ivbitmaskop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vswizzlop_(bshape : bshape, vswizzlop_ : vswizzlop_(bshape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vswizzlop_{shape#457 : shape, lanetype#5114 : lanetype, dim#5114 : dim, i#25719 : nat, i#25726 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5126 : lanetype, dim#5126 : dim, i#25765 : nat, i#25772 : nat}(`%`_bshape{shape#457}(`%X%`_shape{lanetype#5114, dim#5114, i#25719}(`I8`_lanetype, `%`_dim{i#25726}(M))), `SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape{lanetype#5126, dim#5126, i#25765}(`I8`_lanetype, `%`_dim{i#25772}(M)), def $iswizzle_lane_, v_1, v_2) + def $vswizzlop_{M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M))), `SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), def $iswizzle_lane_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vswizzlop_{shape#469 : shape, lanetype#5138 : lanetype, dim#5138 : dim, i#25797 : nat, i#25804 : nat, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5150 : lanetype, dim#5150 : dim, i#25843 : nat, i#25850 : nat}(`%`_bshape{shape#469}(`%X%`_shape{lanetype#5138, dim#5138, i#25797}(`I8`_lanetype, `%`_dim{i#25804}(M))), `RELAXED_SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape{lanetype#5150, dim#5150, i#25843}(`I8`_lanetype, `%`_dim{i#25850}(M)), def $irelaxed_swizzle_lane_, v_1, v_2) + def $vswizzlop_{M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M))), `RELAXED_SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), def $irelaxed_swizzle_lane_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vshufflop_(bshape : bshape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshufflop_{shape#481 : shape, lanetype#5162 : lanetype, dim#5162 : dim, i#25875 : nat, i#25882 : nat, M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#5174 : lanetype, dim#5174 : dim, i#25946 : nat, i#25953 : nat}(`%`_bshape{shape#481}(`%X%`_shape{lanetype#5162, dim#5162, i#25875}(`I8`_lanetype, `%`_dim{i#25882}(M))), i*{i <- `i*`}, v_1, v_2) = $ivshufflop_(`%X%`_shape{lanetype#5174, dim#5174, i#25946}(`I8`_lanetype, `%`_dim{i#25953}(M)), i*{i <- `i*`}, v_1, v_2) + def $vshufflop_{M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M))), i*{i <- `i*`}, v_1, v_2) = $ivshufflop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), i*{i <- `i*`}, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vnarrowop__(shape_1 : shape, shape_2 : shape, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vnarrowop__{lanetype#6571 : lanetype, dim#6571 : dim, i#28150 : nat, Jnn_1 : Jnn, i#28157 : nat, M_1 : M, lanetype#6583 : lanetype, dim#6583 : dim, i#28162 : nat, Jnn_2 : Jnn, i#28169 : nat, M_2 : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), lanetype#6595 : lanetype, dim#6595 : dim, i#28198 : nat, i#28205 : nat, lanetype#6620 : lanetype, dim#6620 : dim, i#28284 : nat, i#28291 : nat, `c'_1*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, lanetype#6647 : lanetype, dim#6647 : dim, i#28450 : nat, i#28457 : nat, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))*}(`%X%`_shape{lanetype#6571, dim#6571, i#28150}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28157}(M_1)), `%X%`_shape{lanetype#6583, dim#6583, i#28162}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28169}(M_2)), sx, v_1, v_2) = v - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1)), v_2)) + def $vnarrowop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), sx, v_1, v_2) = v + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)) -- if (c'_1*{c'_1 <- `c'_1*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}) -- if (c'_2*{c'_2 <- `c'_2*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_2)*{c_2 <- `c_2*`}) - -- if (v = $inv_lanes_(`%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`})) + -- if (v = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivadd_pairwise_(N : N, iN(N)*) : iN(N)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivadd_pairwise_{N : N, `i*` : iN(N)*, `i#29492*` : nat*, `i#29500*` : nat*, `j_1*` : N*, `j_2*` : N*, `i#29472*` : nat*}(N, i*{i <- `i*`}) = $iadd_(N, `%`_iN{i#29492}(j_1), `%`_iN{i#29500}(j_2))*{i#29492 <- `i#29492*`, i#29500 <- `i#29500*`, j_1 <- `j_1*`, j_2 <- `j_2*`} - -- if ($concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = i!`%`_iN{i#29472}.0*{i <- `i*`, i#29472 <- `i#29472*`}) + def $ivadd_pairwise_{N : N, `i*` : iN(N)*, `j_1*` : N*, `j_2*` : N*}(N, i*{i <- `i*`}) = $iadd_(N, `%`_iN(j_1), `%`_iN(j_2))*{j_1 <- `j_1*`, j_2 <- `j_2*`} + -- if ($concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = i!`%`_iN.0*{i <- `i*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivextunop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivextunop__{lanetype#6690 : lanetype, dim#6690 : dim, i#28642 : nat, Jnn_1 : Jnn, i#28649 : nat, M_1 : M, lanetype#6702 : lanetype, dim#6702 : dim, i#28654 : nat, Jnn_2 : Jnn, i#28661 : nat, M_2 : M, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), lanetype#6740 : lanetype, dim#6740 : dim, i#28862 : nat, i#28869 : nat, `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, lanetype#6714 : lanetype, dim#6714 : dim, i#28678 : nat, i#28685 : nat, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))*}(`%X%`_shape{lanetype#6690, dim#6690, i#28642}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28649}(M_1)), `%X%`_shape{lanetype#6702, dim#6702, i#28654}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28661}(M_2)), def $f_, sx, v_1) = $inv_lanes_(`%X%`_shape{lanetype#6740, dim#6740, i#28862}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28869}(M_2)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1)), v_1)) + def $ivextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $f_, sx, v_1) = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)) -- if (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}) -- if (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vextunop__(ishape_1 : ishape, ishape_2 : ishape, vextunop__ : vextunop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextunop__{shape#493 : shape, Jnn#131 : Jnn, lanetype#6864 : lanetype, dim#6864 : dim, i#29941 : nat, Jnn_1 : Jnn, i#29948 : nat, M_1 : M, shape#505 : shape, Jnn#135 : Jnn, lanetype#6876 : lanetype, dim#6876 : dim, i#29953 : nat, Jnn_2 : Jnn, i#29960 : nat, M_2 : M, sx#182 : sx, sx : sx, v_1 : vec_(`V128`_Vnn), lanetype#6888 : lanetype, dim#6888 : dim, i#29987 : nat, i#29994 : nat, lanetype#6900 : lanetype, dim#6900 : dim, i#29999 : nat, i#30006 : nat}(`%`_ishape{shape#493, Jnn#131}(`%X%`_shape{lanetype#6864, dim#6864, i#29941}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29948}(M_1))), `%`_ishape{shape#505, Jnn#135}(`%X%`_shape{lanetype#6876, dim#6876, i#29953}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29960}(M_2))), `EXTADD_PAIRWISE`_vextunop__{sx#182}(sx), v_1) = $ivextunop__(`%X%`_shape{lanetype#6888, dim#6888, i#29987}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29994}(M_1)), `%X%`_shape{lanetype#6900, dim#6900, i#29999}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30006}(M_2)), def $ivadd_pairwise_, sx, v_1) + def $vextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, v_1 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTADD_PAIRWISE`_vextunop__(sx), v_1) = $ivextunop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivadd_pairwise_, sx, v_1) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivdot_(N : N, iN(N)*, iN(N)*) : iN(N)* @@ -116895,9 +92146,9 @@ def $ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivextbinop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx : sx, sx : sx, laneidx : laneidx, laneidx : laneidx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivextbinop__{lanetype#6764 : lanetype, dim#6764 : dim, i#28935 : nat, Jnn_1 : Jnn, i#28942 : nat, M_1 : M, lanetype#6776 : lanetype, dim#6776 : dim, i#28947 : nat, Jnn_2 : Jnn, i#28954 : nat, M_2 : M, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx_1 : sx, sx_2 : sx, i : laneidx, k : laneidx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#6840 : lanetype, dim#6840 : dim, i#29380 : nat, i#29387 : nat, `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, lanetype#6788 : lanetype, dim#6788 : dim, i#29007 : nat, i#29014 : nat, i#29034 : nat, i#29044 : nat, lanetype#6813 : lanetype, dim#6813 : dim, i#29113 : nat, i#29120 : nat, i#29140 : nat, i#29150 : nat, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))*}(`%X%`_shape{lanetype#6764, dim#6764, i#28935}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28942}(M_1)), `%X%`_shape{lanetype#6776, dim#6776, i#28947}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28954}(M_2)), def $f_, sx_1, sx_2, i, k, v_1, v_2) = $inv_lanes_(`%X%`_shape{lanetype#6840, dim#6840, i#29380}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29387}(M_2)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1)), v_1)[i!`%`_laneidx{i#29034}.0 : k!`%`_laneidx{i#29044}.0]) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1)), v_2)[i!`%`_laneidx{i#29140}.0 : k!`%`_laneidx{i#29150}.0]) + def $ivextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx_1 : sx, sx_2 : sx, i : laneidx, k : laneidx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $f_, sx_1, sx_2, i, k, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`}) + -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)[i!`%`_laneidx.0 : k!`%`_laneidx.0]) + -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)[i!`%`_laneidx.0 : k!`%`_laneidx.0]) -- if (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_1, c_1)*{c_1 <- `c_1*`}) -- if (c'_2*{c'_2 <- `c'_2*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_2, c_2)*{c_2 <- `c_2*`}) -- if (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`}, c'_2*{c'_2 <- `c'_2*`})) @@ -116910,45 +92161,45 @@ def $ivmul_(N : N, iN(N)*, iN(N)*) : iN(N)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vextbinop__(ishape_1 : ishape, ishape_2 : ishape, vextbinop__ : vextbinop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{shape#517 : shape, Jnn#139 : Jnn, lanetype#6912 : lanetype, dim#6912 : dim, i#30021 : nat, Jnn_1 : Jnn, i#30028 : nat, M_1 : M, shape#529 : shape, Jnn#143 : Jnn, lanetype#6924 : lanetype, dim#6924 : dim, i#30033 : nat, Jnn_2 : Jnn, i#30040 : nat, M_2 : M, half#7 : half, sx#184 : sx, half : half, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#6936 : lanetype, dim#6936 : dim, i#30079 : nat, i#30086 : nat, lanetype#6948 : lanetype, dim#6948 : dim, i#30091 : nat, i#30098 : nat, i#30118 : nat, i#30140 : nat}(`%`_ishape{shape#517, Jnn#139}(`%X%`_shape{lanetype#6912, dim#6912, i#30021}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30028}(M_1))), `%`_ishape{shape#529, Jnn#143}(`%X%`_shape{lanetype#6924, dim#6924, i#30033}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30040}(M_2))), `EXTMUL`_vextbinop__{half#7, sx#184}(half, sx), v_1, v_2) = $ivextbinop__(`%X%`_shape{lanetype#6936, dim#6936, i#30079}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30086}(M_1)), `%X%`_shape{lanetype#6948, dim#6948, i#30091}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30098}(M_2)), def $ivmul_, sx, sx, `%`_laneidx{i#30118}($half(half, 0, M_2)), `%`_laneidx{i#30140}(M_2), v_1, v_2) + def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTMUL`_vextbinop__(half, sx), v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivmul_, sx, sx, `%`_laneidx($half(half, 0, M_2)), `%`_laneidx(M_2), v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{shape#541 : shape, Jnn#147 : Jnn, lanetype#6960 : lanetype, dim#6960 : dim, i#30165 : nat, Jnn_1 : Jnn, i#30172 : nat, M_1 : M, shape#553 : shape, Jnn#151 : Jnn, lanetype#6972 : lanetype, dim#6972 : dim, i#30177 : nat, Jnn_2 : Jnn, i#30184 : nat, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#6984 : lanetype, dim#6984 : dim, i#30223 : nat, i#30230 : nat, lanetype#6996 : lanetype, dim#6996 : dim, i#30235 : nat, i#30242 : nat, i#30262 : nat, i#30284 : nat}(`%`_ishape{shape#541, Jnn#147}(`%X%`_shape{lanetype#6960, dim#6960, i#30165}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30172}(M_1))), `%`_ishape{shape#553, Jnn#151}(`%X%`_shape{lanetype#6972, dim#6972, i#30177}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30184}(M_2))), `DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape{lanetype#6984, dim#6984, i#30223}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30230}(M_1)), `%X%`_shape{lanetype#6996, dim#6996, i#30235}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30242}(M_2)), def $ivdot_, `S`_sx, `S`_sx, `%`_laneidx{i#30262}(0), `%`_laneidx{i#30284}(M_1), v_1, v_2) + def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_, `S`_sx, `S`_sx, `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{shape#565 : shape, Jnn#155 : Jnn, lanetype#7008 : lanetype, dim#7008 : dim, i#30309 : nat, Jnn_1 : Jnn, i#30316 : nat, M_1 : M, shape#577 : shape, Jnn#159 : Jnn, lanetype#7020 : lanetype, dim#7020 : dim, i#30321 : nat, Jnn_2 : Jnn, i#30328 : nat, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), lanetype#7032 : lanetype, dim#7032 : dim, i#30367 : nat, i#30374 : nat, lanetype#7044 : lanetype, dim#7044 : dim, i#30379 : nat, i#30386 : nat, i#30412 : nat, i#30434 : nat}(`%`_ishape{shape#565, Jnn#155}(`%X%`_shape{lanetype#7008, dim#7008, i#30309}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30316}(M_1))), `%`_ishape{shape#577, Jnn#159}(`%X%`_shape{lanetype#7020, dim#7020, i#30321}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30328}(M_2))), `RELAXED_DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape{lanetype#7032, dim#7032, i#30367}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30374}(M_1)), `%X%`_shape{lanetype#7044, dim#7044, i#30379}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30386}(M_2)), def $ivdot_sat_, `S`_sx, $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx), `%`_laneidx{i#30412}(0), `%`_laneidx{i#30434}(M_1), v_1, v_2) + def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `RELAXED_DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_sat_, `S`_sx, $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx), `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextternop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextternop__{shape#589 : shape, Jnn#163 : Jnn, lanetype#7056 : lanetype, dim#7056 : dim, i#30459 : nat, Jnn_1 : Jnn, i#30466 : nat, M_1 : M, shape#601 : shape, Jnn#167 : Jnn, lanetype#7068 : lanetype, dim#7068 : dim, i#30471 : nat, Jnn_2 : Jnn, i#30478 : nat, M_2 : M, c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), c : vec_(`V128`_Vnn), Jnn : Jnn, M : M, c' : vec_(`V128`_Vnn), shape#613 : shape, Jnn#171 : Jnn, lanetype#7080 : lanetype, dim#7080 : dim, i#30519 : nat, i#30526 : nat, shape#625 : shape, Jnn#175 : Jnn, lanetype#7092 : lanetype, dim#7092 : dim, i#30531 : nat, i#30538 : nat, c'' : vec_(`V128`_Vnn), shape#652 : shape, Jnn#179 : Jnn, lanetype#7149 : lanetype, dim#7149 : dim, i#30650 : nat, i#30657 : nat, shape#664 : shape, Jnn#183 : Jnn, lanetype#7161 : lanetype, dim#7161 : dim, i#30662 : nat, i#30669 : nat, sx#216 : sx, lanetype#7218 : lanetype, dim#7218 : dim, i#30771 : nat, i#30778 : nat}(`%`_ishape{shape#589, Jnn#163}(`%X%`_shape{lanetype#7056, dim#7056, i#30459}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30466}(M_1))), `%`_ishape{shape#601, Jnn#167}(`%X%`_shape{lanetype#7068, dim#7068, i#30471}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30478}(M_2))), `RELAXED_DOT_ADDS`_vextternop__, c_1, c_2, c_3) = c + def $vextternop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), c : vec_(`V128`_Vnn), Jnn : Jnn, M : M, c' : vec_(`V128`_Vnn), c'' : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `RELAXED_DOT_ADDS`_vextternop__, c_1, c_2, c_3) = c -- if ($jsizenn(Jnn) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) -- if (M = (2 * M_2)) - -- if (c' = $vextbinop__(`%`_ishape{shape#613, Jnn#171}(`%X%`_shape{lanetype#7080, dim#7080, i#30519}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#30526}(M_1))), `%`_ishape{shape#625, Jnn#175}(`%X%`_shape{lanetype#7092, dim#7092, i#30531}((Jnn : Jnn <: lanetype), `%`_dim{i#30538}(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2)) - -- if (c'' = $vextunop__(`%`_ishape{shape#652, Jnn#179}(`%X%`_shape{lanetype#7149, dim#7149, i#30650}((Jnn : Jnn <: lanetype), `%`_dim{i#30657}(M))), `%`_ishape{shape#664, Jnn#183}(`%X%`_shape{lanetype#7161, dim#7161, i#30662}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30669}(M_2))), `EXTADD_PAIRWISE`_vextunop__{sx#216}(`S`_sx), c')) - -- if (c <- $vbinop_(`%X%`_shape{lanetype#7218, dim#7218, i#30771}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#30778}(M_2)), `ADD`_vbinop_, c'', c_3)) + -- if (c' = $vextbinop__(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2)) + -- if (c'' = $vextunop__(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx), c')) + -- if (c <- $vbinop_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `ADD`_vbinop_, c'', c_3)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax num = - | `CONST`{numtype : numtype}(numtype : numtype, num_(numtype)) + | `CONST`(numtype : numtype, num_(numtype)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax vec = - | `VCONST`{vectype : vectype}(vectype : vectype, vec_(vectype)) + | `VCONST`(vectype : vectype, vec_(vectype)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax ref = - | `REF.I31_NUM`{u31 : u31}(u31 : u31) - | `REF.STRUCT_ADDR`{structaddr : structaddr}(structaddr : structaddr) - | `REF.ARRAY_ADDR`{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) - | `REF.FUNC_ADDR`{funcaddr : funcaddr}(funcaddr : funcaddr) - | `REF.EXN_ADDR`{exnaddr : exnaddr}(exnaddr : exnaddr) - | `REF.HOST_ADDR`{hostaddr : hostaddr}(hostaddr : hostaddr) - | `REF.EXTERN`{addrref : addrref}(addrref : addrref) - | `REF.NULL`{heaptype : heaptype}(heaptype : heaptype) + | `REF.I31_NUM`(u31 : u31) + | `REF.STRUCT_ADDR`(structaddr : structaddr) + | `REF.ARRAY_ADDR`(arrayaddr : arrayaddr) + | `REF.FUNC_ADDR`(funcaddr : funcaddr) + | `REF.EXN_ADDR`(exnaddr : exnaddr) + | `REF.HOST_ADDR`(hostaddr : hostaddr) + | `REF.EXTERN`(addrref : addrref) + | `REF.NULL`(heaptype : heaptype) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax result = - | `_VALS`{`val*` : val*}(`val*` : val*) - | `(REF.EXN_ADDR%)THROW_REF`{exnaddr : exnaddr}(exnaddr : exnaddr) + | `_VALS`(`val*` : val*) + | `(REF.EXN_ADDR%)THROW_REF`(exnaddr : exnaddr) | `TRAP` ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec @@ -116957,118 +92208,118 @@ syntax hostfunc = ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax funccode = - | `FUNC`{typeidx : typeidx, `local*` : local*, expr : expr}(typeidx : typeidx, `local*` : local*, expr : expr) + | `FUNC`(typeidx : typeidx, `local*` : local*, expr : expr) | `...` ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax taginst = { - `TYPE`{tagtype : tagtype} tagtype + `TYPE` tagtype } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax globalinst = { - `TYPE`{globaltype : globaltype} globaltype, - `VALUE`{val : val} val + `TYPE` globaltype , + `VALUE` val } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax meminst = { - `TYPE`{memtype : memtype} memtype, - `BYTES`{`byte*` : byte*} byte* + `TYPE` memtype , + `BYTES` byte* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax tableinst = { - `TYPE`{tabletype : tabletype} tabletype, - `REFS`{`ref*` : ref*} ref* + `TYPE` tabletype , + `REFS` ref* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax funcinst = { - `TYPE`{deftype : deftype} deftype, - `MODULE`{moduleinst : moduleinst} moduleinst, - `CODE`{funccode : funccode} funccode + `TYPE` deftype , + `MODULE` moduleinst , + `CODE` funccode } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax datainst = { - `BYTES`{`byte*` : byte*} byte* + `BYTES` byte* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax eleminst = { - `TYPE`{elemtype : elemtype} elemtype, - `REFS`{`ref*` : ref*} ref* + `TYPE` elemtype , + `REFS` ref* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax packval = - | `PACK`{packtype : packtype}(packtype : packtype, iN($psizenn(packtype))) + | `PACK`(packtype : packtype, iN($psizenn(packtype))) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax fieldval = - | `CONST`{numtype : numtype}(numtype : numtype, num_(numtype)) - | `VCONST`{vectype : vectype}(vectype : vectype, vec_(vectype)) - | `REF.I31_NUM`{u31 : u31}(u31 : u31) - | `REF.STRUCT_ADDR`{structaddr : structaddr}(structaddr : structaddr) - | `REF.ARRAY_ADDR`{arrayaddr : arrayaddr}(arrayaddr : arrayaddr) - | `REF.FUNC_ADDR`{funcaddr : funcaddr}(funcaddr : funcaddr) - | `REF.EXN_ADDR`{exnaddr : exnaddr}(exnaddr : exnaddr) - | `REF.HOST_ADDR`{hostaddr : hostaddr}(hostaddr : hostaddr) - | `REF.EXTERN`{addrref : addrref}(addrref : addrref) - | `REF.NULL`{heaptype : heaptype}(heaptype : heaptype) - | `PACK`{packtype : packtype}(packtype : packtype, iN($psizenn(packtype))) + | `CONST`(numtype : numtype, num_(numtype)) + | `VCONST`(vectype : vectype, vec_(vectype)) + | `REF.I31_NUM`(u31 : u31) + | `REF.STRUCT_ADDR`(structaddr : structaddr) + | `REF.ARRAY_ADDR`(arrayaddr : arrayaddr) + | `REF.FUNC_ADDR`(funcaddr : funcaddr) + | `REF.EXN_ADDR`(exnaddr : exnaddr) + | `REF.HOST_ADDR`(hostaddr : hostaddr) + | `REF.EXTERN`(addrref : addrref) + | `REF.NULL`(heaptype : heaptype) + | `PACK`(packtype : packtype, iN($psizenn(packtype))) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax structinst = { - `TYPE`{deftype : deftype} deftype, - `FIELDS`{`fieldval*` : fieldval*} fieldval* + `TYPE` deftype , + `FIELDS` fieldval* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax arrayinst = { - `TYPE`{deftype : deftype} deftype, - `FIELDS`{`fieldval*` : fieldval*} fieldval* + `TYPE` deftype , + `FIELDS` fieldval* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax exninst = { - `TAG`{tagaddr : tagaddr} tagaddr, - `FIELDS`{`val*` : val*} val* + `TAG` tagaddr , + `FIELDS` val* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax store = { - `TAGS`{`taginst*` : taginst*} taginst*, - `GLOBALS`{`globalinst*` : globalinst*} globalinst*, - `MEMS`{`meminst*` : meminst*} meminst*, - `TABLES`{`tableinst*` : tableinst*} tableinst*, - `FUNCS`{`funcinst*` : funcinst*} funcinst*, - `DATAS`{`datainst*` : datainst*} datainst*, - `ELEMS`{`eleminst*` : eleminst*} eleminst*, - `STRUCTS`{`structinst*` : structinst*} structinst*, - `ARRAYS`{`arrayinst*` : arrayinst*} arrayinst*, - `EXNS`{`exninst*` : exninst*} exninst* + `TAGS` taginst* , + `GLOBALS` globalinst* , + `MEMS` meminst* , + `TABLES` tableinst* , + `FUNCS` funcinst* , + `DATAS` datainst* , + `ELEMS` eleminst* , + `STRUCTS` structinst* , + `ARRAYS` arrayinst* , + `EXNS` exninst* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax state = - | `%;%`{store : store, frame : frame}(store : store, frame : frame) + | `%;%`(store : store, frame : frame) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax config = - | `%;%`{state : state, `instr*` : instr*}(state : state, `instr*` : instr*) + | `%;%`(state : state, `instr*` : instr*) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $Ki : nat @@ -117080,14 +92331,14 @@ def $packfield_(storagetype : storagetype, val : val) : fieldval ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $packfield_{valtype : valtype, val : val}((valtype : valtype <: storagetype), val) = (val : val <: fieldval) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $packfield_{packtype : packtype, numtype#33 : numtype, i : num_(`I32`_numtype), packtype#1 : packtype}((packtype : packtype <: storagetype), `CONST`_val{numtype#33}(`I32`_numtype, i)) = `PACK`_fieldval{packtype#1}(packtype, $wrap__(32, $psize(packtype), i)) + def $packfield_{packtype : packtype, i : num_(`I32`_numtype)}((packtype : packtype <: storagetype), `CONST`_val(`I32`_numtype, i)) = `PACK`_fieldval(packtype, $wrap__(32, $psize(packtype), i)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $unpackfield_(storagetype : storagetype, sx?, fieldval : fieldval) : val ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $unpackfield_{valtype : valtype, val : val}((valtype : valtype <: storagetype), ?(), (val : val <: fieldval)) = val ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $unpackfield_{packtype : packtype, sx : sx, packtype#3 : packtype, i : iN($psizenn(packtype)), numtype#35 : numtype}((packtype : packtype <: storagetype), ?(sx), `PACK`_fieldval{packtype#3}(packtype, i)) = `CONST`_val{numtype#35}(`I32`_numtype, $extend__($psize(packtype), 32, sx, i)) + def $unpackfield_{packtype : packtype, sx : sx, i : iN($psizenn(packtype))}((packtype : packtype <: storagetype), ?(sx), `PACK`_fieldval(packtype, i)) = `CONST`_val(`I32`_numtype, $extend__($psize(packtype), 32, sx, i)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec rec { @@ -117097,7 +92348,7 @@ def $tagsxa(externaddr*) : tagaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:199.1-199.23 def $tagsxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:200.1-200.42 - def $tagsxa{tagaddr#1 : tagaddr, a : addr, `xa*` : externaddr*}([`TAG`_externaddr{tagaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tagsxa(xa*{xa <- `xa*`}) + def $tagsxa{a : addr, `xa*` : externaddr*}([`TAG`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tagsxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:201.1-201.57 def $tagsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $tagsxa(xa*{xa <- `xa*`}) -- otherwise @@ -117111,7 +92362,7 @@ def $globalsxa(externaddr*) : globaladdr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:203.1-203.26 def $globalsxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:204.1-204.51 - def $globalsxa{globaladdr#1 : globaladdr, a : addr, `xa*` : externaddr*}([`GLOBAL`_externaddr{globaladdr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $globalsxa(xa*{xa <- `xa*`}) + def $globalsxa{a : addr, `xa*` : externaddr*}([`GLOBAL`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $globalsxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:205.1-205.63 def $globalsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $globalsxa(xa*{xa <- `xa*`}) -- otherwise @@ -117125,7 +92376,7 @@ def $memsxa(externaddr*) : memaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:207.1-207.23 def $memsxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:208.1-208.42 - def $memsxa{memaddr#1 : memaddr, a : addr, `xa*` : externaddr*}([`MEM`_externaddr{memaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $memsxa(xa*{xa <- `xa*`}) + def $memsxa{a : addr, `xa*` : externaddr*}([`MEM`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $memsxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:209.1-209.57 def $memsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $memsxa(xa*{xa <- `xa*`}) -- otherwise @@ -117139,7 +92390,7 @@ def $tablesxa(externaddr*) : tableaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:211.1-211.25 def $tablesxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:212.1-212.48 - def $tablesxa{tableaddr#1 : tableaddr, a : addr, `xa*` : externaddr*}([`TABLE`_externaddr{tableaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tablesxa(xa*{xa <- `xa*`}) + def $tablesxa{a : addr, `xa*` : externaddr*}([`TABLE`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tablesxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:213.1-213.61 def $tablesxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $tablesxa(xa*{xa <- `xa*`}) -- otherwise @@ -117153,7 +92404,7 @@ def $funcsxa(externaddr*) : funcaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:215.1-215.24 def $funcsxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:216.1-216.45 - def $funcsxa{funcaddr#1 : funcaddr, a : addr, `xa*` : externaddr*}([`FUNC`_externaddr{funcaddr#1}(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $funcsxa(xa*{xa <- `xa*`}) + def $funcsxa{a : addr, `xa*` : externaddr*}([`FUNC`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $funcsxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:217.1-217.59 def $funcsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $funcsxa(xa*{xa <- `xa*`}) -- otherwise @@ -117162,212 +92413,212 @@ def $funcsxa(externaddr*) : funcaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $store(state : state) : store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $store{store#11 : store, frame#11 : frame, s : store, f : frame}(`%;%`_state{store#11, frame#11}(s, f)) = s + def $store{s : store, f : frame}(`%;%`_state(s, f)) = s ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $frame(state : state) : frame ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $frame{store#23 : store, frame#23 : frame, s : store, f : frame}(`%;%`_state{store#23, frame#23}(s, f)) = f + def $frame{s : store, f : frame}(`%;%`_state(s, f)) = f ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $tagaddr(state : state) : tagaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tagaddr{store#35 : store, frame#35 : frame, s : store, f : frame, moduleinst#2 : moduleinst, `tagaddr*#2` : tagaddr*}(`%;%`_state{store#35, frame#35}(s, f)) = f.`MODULE`_frame{moduleinst#2}.`TAGS`_moduleinst{`tagaddr*#2`} + def $tagaddr{s : store, f : frame}(`%;%`_state(s, f)) = f.`MODULE`_frame.`TAGS`_moduleinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $moduleinst(state : state) : moduleinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $moduleinst{store#47 : store, frame#47 : frame, s : store, f : frame, moduleinst#3 : moduleinst}(`%;%`_state{store#47, frame#47}(s, f)) = f.`MODULE`_frame{moduleinst#3} + def $moduleinst{s : store, f : frame}(`%;%`_state(s, f)) = f.`MODULE`_frame ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $taginst(state : state) : taginst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $taginst{store#59 : store, frame#59 : frame, s : store, f : frame, `taginst*#2` : taginst*}(`%;%`_state{store#59, frame#59}(s, f)) = s.`TAGS`_store{`taginst*#2`} + def $taginst{s : store, f : frame}(`%;%`_state(s, f)) = s.`TAGS`_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $globalinst(state : state) : globalinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $globalinst{store#71 : store, frame#71 : frame, s : store, f : frame, `globalinst*#2` : globalinst*}(`%;%`_state{store#71, frame#71}(s, f)) = s.`GLOBALS`_store{`globalinst*#2`} + def $globalinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`GLOBALS`_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $meminst(state : state) : meminst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $meminst{store#83 : store, frame#83 : frame, s : store, f : frame, `meminst*#2` : meminst*}(`%;%`_state{store#83, frame#83}(s, f)) = s.`MEMS`_store{`meminst*#2`} + def $meminst{s : store, f : frame}(`%;%`_state(s, f)) = s.`MEMS`_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $tableinst(state : state) : tableinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tableinst{store#95 : store, frame#95 : frame, s : store, f : frame, `tableinst*#2` : tableinst*}(`%;%`_state{store#95, frame#95}(s, f)) = s.`TABLES`_store{`tableinst*#2`} + def $tableinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`TABLES`_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $funcinst(state : state) : funcinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $funcinst{store#107 : store, frame#107 : frame, s : store, f : frame, `funcinst*#2` : funcinst*}(`%;%`_state{store#107, frame#107}(s, f)) = s.`FUNCS`_store{`funcinst*#2`} + def $funcinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`FUNCS`_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $datainst(state : state) : datainst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $datainst{store#119 : store, frame#119 : frame, s : store, f : frame, `datainst*#2` : datainst*}(`%;%`_state{store#119, frame#119}(s, f)) = s.`DATAS`_store{`datainst*#2`} + def $datainst{s : store, f : frame}(`%;%`_state(s, f)) = s.`DATAS`_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $eleminst(state : state) : eleminst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $eleminst{store#131 : store, frame#131 : frame, s : store, f : frame, `eleminst*#2` : eleminst*}(`%;%`_state{store#131, frame#131}(s, f)) = s.`ELEMS`_store{`eleminst*#2`} + def $eleminst{s : store, f : frame}(`%;%`_state(s, f)) = s.`ELEMS`_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $structinst(state : state) : structinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $structinst{store#143 : store, frame#143 : frame, s : store, f : frame, `structinst*#2` : structinst*}(`%;%`_state{store#143, frame#143}(s, f)) = s.`STRUCTS`_store{`structinst*#2`} + def $structinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`STRUCTS`_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $arrayinst(state : state) : arrayinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $arrayinst{store#155 : store, frame#155 : frame, s : store, f : frame, `arrayinst*#2` : arrayinst*}(`%;%`_state{store#155, frame#155}(s, f)) = s.`ARRAYS`_store{`arrayinst*#2`} + def $arrayinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`ARRAYS`_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $exninst(state : state) : exninst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $exninst{store#167 : store, frame#167 : frame, s : store, f : frame, `exninst*#2` : exninst*}(`%;%`_state{store#167, frame#167}(s, f)) = s.`EXNS`_store{`exninst*#2`} + def $exninst{s : store, f : frame}(`%;%`_state(s, f)) = s.`EXNS`_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $type(state : state, typeidx : typeidx) : deftype ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $type{store#179 : store, frame#179 : frame, s : store, f : frame, x : idx, moduleinst#4 : moduleinst, `deftype*#74` : deftype*, i#30957 : nat}(`%;%`_state{store#179, frame#179}(s, f), x) = f.`MODULE`_frame{moduleinst#4}.`TYPES`_moduleinst{`deftype*#74`}[x!`%`_idx{i#30957}.0] + def $type{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = f.`MODULE`_frame.`TYPES`_moduleinst[x!`%`_idx.0] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $tag(state : state, tagidx : tagidx) : taginst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tag{store#191 : store, frame#191 : frame, s : store, f : frame, x : idx, `taginst*#3` : taginst*, moduleinst#5 : moduleinst, `tagaddr*#3` : tagaddr*, i#30979 : nat}(`%;%`_state{store#191, frame#191}(s, f), x) = s.`TAGS`_store{`taginst*#3`}[f.`MODULE`_frame{moduleinst#5}.`TAGS`_moduleinst{`tagaddr*#3`}[x!`%`_idx{i#30979}.0]] + def $tag{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`TAGS`_store[f.`MODULE`_frame.`TAGS`_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $global(state : state, globalidx : globalidx) : globalinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $global{store#203 : store, frame#203 : frame, s : store, f : frame, x : idx, `globalinst*#3` : globalinst*, moduleinst#6 : moduleinst, `globaladdr*#1` : globaladdr*, i#31001 : nat}(`%;%`_state{store#203, frame#203}(s, f), x) = s.`GLOBALS`_store{`globalinst*#3`}[f.`MODULE`_frame{moduleinst#6}.`GLOBALS`_moduleinst{`globaladdr*#1`}[x!`%`_idx{i#31001}.0]] + def $global{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $mem(state : state, memidx : memidx) : meminst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $mem{store#215 : store, frame#215 : frame, s : store, f : frame, x : idx, `meminst*#3` : meminst*, moduleinst#7 : moduleinst, `memaddr*#1` : memaddr*, i#31023 : nat}(`%;%`_state{store#215, frame#215}(s, f), x) = s.`MEMS`_store{`meminst*#3`}[f.`MODULE`_frame{moduleinst#7}.`MEMS`_moduleinst{`memaddr*#1`}[x!`%`_idx{i#31023}.0]] + def $mem{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $table(state : state, tableidx : tableidx) : tableinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $table{store#227 : store, frame#227 : frame, s : store, f : frame, x : idx, `tableinst*#3` : tableinst*, moduleinst#8 : moduleinst, `tableaddr*#1` : tableaddr*, i#31045 : nat}(`%;%`_state{store#227, frame#227}(s, f), x) = s.`TABLES`_store{`tableinst*#3`}[f.`MODULE`_frame{moduleinst#8}.`TABLES`_moduleinst{`tableaddr*#1`}[x!`%`_idx{i#31045}.0]] + def $table{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $func(state : state, funcidx : funcidx) : funcinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $func{store#239 : store, frame#239 : frame, s : store, f : frame, x : idx, `funcinst*#3` : funcinst*, moduleinst#9 : moduleinst, `funcaddr*#1` : funcaddr*, i#31067 : nat}(`%;%`_state{store#239, frame#239}(s, f), x) = s.`FUNCS`_store{`funcinst*#3`}[f.`MODULE`_frame{moduleinst#9}.`FUNCS`_moduleinst{`funcaddr*#1`}[x!`%`_idx{i#31067}.0]] + def $func{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`FUNCS`_store[f.`MODULE`_frame.`FUNCS`_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $data(state : state, dataidx : dataidx) : datainst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $data{store#251 : store, frame#251 : frame, s : store, f : frame, x : idx, `datainst*#3` : datainst*, moduleinst#10 : moduleinst, `dataaddr*#1` : dataaddr*, i#31089 : nat}(`%;%`_state{store#251, frame#251}(s, f), x) = s.`DATAS`_store{`datainst*#3`}[f.`MODULE`_frame{moduleinst#10}.`DATAS`_moduleinst{`dataaddr*#1`}[x!`%`_idx{i#31089}.0]] + def $data{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $elem(state : state, tableidx : tableidx) : eleminst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $elem{store#263 : store, frame#263 : frame, s : store, f : frame, x : idx, `eleminst*#3` : eleminst*, moduleinst#11 : moduleinst, `elemaddr*#1` : elemaddr*, i#31111 : nat}(`%;%`_state{store#263, frame#263}(s, f), x) = s.`ELEMS`_store{`eleminst*#3`}[f.`MODULE`_frame{moduleinst#11}.`ELEMS`_moduleinst{`elemaddr*#1`}[x!`%`_idx{i#31111}.0]] + def $elem{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $local(state : state, localidx : localidx) : val? ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $local{store#275 : store, frame#275 : frame, s : store, f : frame, x : idx, `val?*#2` : val?*, i#31143 : nat}(`%;%`_state{store#275, frame#275}(s, f), x) = f.`LOCALS`_frame{`val?*#2`}[x!`%`_idx{i#31143}.0] + def $local{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = f.`LOCALS`_frame[x!`%`_idx.0] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_local(state : state, localidx : localidx, val : val) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_local{store#287 : store, frame#287 : frame, s : store, f : frame, x : idx, v : val, store#299 : store, frame#299 : frame, `val?*#3` : val?*, i#31165 : nat}(`%;%`_state{store#287, frame#287}(s, f), x, v) = `%;%`_state{store#299, frame#299}(s, f[`LOCALS`_frame{`val?*#3`}[x!`%`_idx{i#31165}.0] = ?(v)]) + def $with_local{s : store, f : frame, x : idx, v : val}(`%;%`_state(s, f), x, v) = `%;%`_state(s, f[`LOCALS`_frame[x!`%`_idx.0] = ?(v)]) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_global(state : state, globalidx : globalidx, val : val) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_global{store#311 : store, frame#311 : frame, s : store, f : frame, x : idx, v : val, store#323 : store, frame#323 : frame, `globalinst*#4` : globalinst*, moduleinst#12 : moduleinst, `globaladdr*#2` : globaladdr*, i#31187 : nat, val#1 : val}(`%;%`_state{store#311, frame#311}(s, f), x, v) = `%;%`_state{store#323, frame#323}(s[`GLOBALS`_store{`globalinst*#4`}[f.`MODULE`_frame{moduleinst#12}.`GLOBALS`_moduleinst{`globaladdr*#2`}[x!`%`_idx{i#31187}.0]].`VALUE`_globalinst{val#1} = v], f) + def $with_global{s : store, f : frame, x : idx, v : val}(`%;%`_state(s, f), x, v) = `%;%`_state(s[`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]].`VALUE`_globalinst = v], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_table(state : state, tableidx : tableidx, nat : nat, ref : ref) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_table{store#335 : store, frame#335 : frame, s : store, f : frame, x : idx, i : nat, r : ref, store#347 : store, frame#347 : frame, `tableinst*#4` : tableinst*, moduleinst#13 : moduleinst, `tableaddr*#2` : tableaddr*, i#31209 : nat, `ref*#1` : ref*}(`%;%`_state{store#335, frame#335}(s, f), x, i, r) = `%;%`_state{store#347, frame#347}(s[`TABLES`_store{`tableinst*#4`}[f.`MODULE`_frame{moduleinst#13}.`TABLES`_moduleinst{`tableaddr*#2`}[x!`%`_idx{i#31209}.0]].`REFS`_tableinst{`ref*#1`}[i] = r], f) + def $with_table{s : store, f : frame, x : idx, i : nat, r : ref}(`%;%`_state(s, f), x, i, r) = `%;%`_state(s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]].`REFS`_tableinst[i] = r], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_tableinst(state : state, tableidx : tableidx, tableinst : tableinst) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_tableinst{store#359 : store, frame#359 : frame, s : store, f : frame, x : idx, ti : tableinst, store#371 : store, frame#371 : frame, `tableinst*#5` : tableinst*, moduleinst#14 : moduleinst, `tableaddr*#3` : tableaddr*, i#31231 : nat}(`%;%`_state{store#359, frame#359}(s, f), x, ti) = `%;%`_state{store#371, frame#371}(s[`TABLES`_store{`tableinst*#5`}[f.`MODULE`_frame{moduleinst#14}.`TABLES`_moduleinst{`tableaddr*#3`}[x!`%`_idx{i#31231}.0]] = ti], f) + def $with_tableinst{s : store, f : frame, x : idx, ti : tableinst}(`%;%`_state(s, f), x, ti) = `%;%`_state(s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] = ti], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_mem(state : state, memidx : memidx, nat : nat, nat : nat, byte*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_mem{store#383 : store, frame#383 : frame, s : store, f : frame, x : idx, i : nat, j : nat, `b*` : byte*, store#395 : store, frame#395 : frame, `meminst*#4` : meminst*, moduleinst#15 : moduleinst, `memaddr*#2` : memaddr*, i#31265 : nat, `byte*#1845` : byte*}(`%;%`_state{store#383, frame#383}(s, f), x, i, j, b*{b <- `b*`}) = `%;%`_state{store#395, frame#395}(s[`MEMS`_store{`meminst*#4`}[f.`MODULE`_frame{moduleinst#15}.`MEMS`_moduleinst{`memaddr*#2`}[x!`%`_idx{i#31265}.0]].`BYTES`_meminst{`byte*#1845`}[i : j] = b*{b <- `b*`}], f) + def $with_mem{s : store, f : frame, x : idx, i : nat, j : nat, `b*` : byte*}(`%;%`_state(s, f), x, i, j, b*{b <- `b*`}) = `%;%`_state(s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]].`BYTES`_meminst[i : j] = b*{b <- `b*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_meminst(state : state, memidx : memidx, meminst : meminst) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_meminst{store#407 : store, frame#407 : frame, s : store, f : frame, x : idx, mi : meminst, store#419 : store, frame#419 : frame, `meminst*#5` : meminst*, moduleinst#16 : moduleinst, `memaddr*#3` : memaddr*, i#31299 : nat}(`%;%`_state{store#407, frame#407}(s, f), x, mi) = `%;%`_state{store#419, frame#419}(s[`MEMS`_store{`meminst*#5`}[f.`MODULE`_frame{moduleinst#16}.`MEMS`_moduleinst{`memaddr*#3`}[x!`%`_idx{i#31299}.0]] = mi], f) + def $with_meminst{s : store, f : frame, x : idx, mi : meminst}(`%;%`_state(s, f), x, mi) = `%;%`_state(s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] = mi], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_elem(state : state, elemidx : elemidx, ref*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_elem{store#431 : store, frame#431 : frame, s : store, f : frame, x : idx, `r*` : ref*, store#443 : store, frame#443 : frame, `eleminst*#4` : eleminst*, moduleinst#17 : moduleinst, `elemaddr*#2` : elemaddr*, i#31321 : nat, `ref*#2` : ref*}(`%;%`_state{store#431, frame#431}(s, f), x, r*{r <- `r*`}) = `%;%`_state{store#443, frame#443}(s[`ELEMS`_store{`eleminst*#4`}[f.`MODULE`_frame{moduleinst#17}.`ELEMS`_moduleinst{`elemaddr*#2`}[x!`%`_idx{i#31321}.0]].`REFS`_eleminst{`ref*#2`} = r*{r <- `r*`}], f) + def $with_elem{s : store, f : frame, x : idx, `r*` : ref*}(`%;%`_state(s, f), x, r*{r <- `r*`}) = `%;%`_state(s[`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]].`REFS`_eleminst = r*{r <- `r*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_data(state : state, dataidx : dataidx, byte*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_data{store#455 : store, frame#455 : frame, s : store, f : frame, x : idx, `b*` : byte*, store#467 : store, frame#467 : frame, `datainst*#4` : datainst*, moduleinst#18 : moduleinst, `dataaddr*#2` : dataaddr*, i#31355 : nat, `byte*#1846` : byte*}(`%;%`_state{store#455, frame#455}(s, f), x, b*{b <- `b*`}) = `%;%`_state{store#467, frame#467}(s[`DATAS`_store{`datainst*#4`}[f.`MODULE`_frame{moduleinst#18}.`DATAS`_moduleinst{`dataaddr*#2`}[x!`%`_idx{i#31355}.0]].`BYTES`_datainst{`byte*#1846`} = b*{b <- `b*`}], f) + def $with_data{s : store, f : frame, x : idx, `b*` : byte*}(`%;%`_state(s, f), x, b*{b <- `b*`}) = `%;%`_state(s[`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]].`BYTES`_datainst = b*{b <- `b*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_struct(state : state, structaddr : structaddr, nat : nat, fieldval : fieldval) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_struct{store#479 : store, frame#479 : frame, s : store, f : frame, a : addr, i : nat, fv : fieldval, store#491 : store, frame#491 : frame, `structinst*#3` : structinst*, `fieldval*#1` : fieldval*}(`%;%`_state{store#479, frame#479}(s, f), a, i, fv) = `%;%`_state{store#491, frame#491}(s[`STRUCTS`_store{`structinst*#3`}[a].`FIELDS`_structinst{`fieldval*#1`}[i] = fv], f) + def $with_struct{s : store, f : frame, a : addr, i : nat, fv : fieldval}(`%;%`_state(s, f), a, i, fv) = `%;%`_state(s[`STRUCTS`_store[a].`FIELDS`_structinst[i] = fv], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fieldval) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_array{store#503 : store, frame#503 : frame, s : store, f : frame, a : addr, i : nat, fv : fieldval, store#515 : store, frame#515 : frame, `arrayinst*#3` : arrayinst*, `fieldval*#2` : fieldval*}(`%;%`_state{store#503, frame#503}(s, f), a, i, fv) = `%;%`_state{store#515, frame#515}(s[`ARRAYS`_store{`arrayinst*#3`}[a].`FIELDS`_arrayinst{`fieldval*#2`}[i] = fv], f) + def $with_array{s : store, f : frame, a : addr, i : nat, fv : fieldval}(`%;%`_state(s, f), a, i, fv) = `%;%`_state(s[`ARRAYS`_store[a].`FIELDS`_arrayinst[i] = fv], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $add_structinst(state : state, structinst*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_structinst{store#527 : store, frame#527 : frame, s : store, f : frame, `si*` : structinst*, store#539 : store, frame#539 : frame, `structinst*#4` : structinst*}(`%;%`_state{store#527, frame#527}(s, f), si*{si <- `si*`}) = `%;%`_state{store#539, frame#539}(s[`STRUCTS`_store{`structinst*#4`} =++ si*{si <- `si*`}], f) + def $add_structinst{s : store, f : frame, `si*` : structinst*}(`%;%`_state(s, f), si*{si <- `si*`}) = `%;%`_state(s[`STRUCTS`_store =++ si*{si <- `si*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $add_arrayinst(state : state, arrayinst*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_arrayinst{store#551 : store, frame#551 : frame, s : store, f : frame, `ai*` : arrayinst*, store#563 : store, frame#563 : frame, `arrayinst*#4` : arrayinst*}(`%;%`_state{store#551, frame#551}(s, f), ai*{ai <- `ai*`}) = `%;%`_state{store#563, frame#563}(s[`ARRAYS`_store{`arrayinst*#4`} =++ ai*{ai <- `ai*`}], f) + def $add_arrayinst{s : store, f : frame, `ai*` : arrayinst*}(`%;%`_state(s, f), ai*{ai <- `ai*`}) = `%;%`_state(s[`ARRAYS`_store =++ ai*{ai <- `ai*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $add_exninst(state : state, exninst*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_exninst{store#575 : store, frame#575 : frame, s : store, f : frame, `exn*` : exninst*, store#587 : store, frame#587 : frame, `exninst*#3` : exninst*}(`%;%`_state{store#575, frame#575}(s, f), exn*{exn <- `exn*`}) = `%;%`_state{store#587, frame#587}(s[`EXNS`_store{`exninst*#3`} =++ exn*{exn <- `exn*`}], f) + def $add_exninst{s : store, f : frame, `exn*` : exninst*}(`%;%`_state(s, f), exn*{exn <- `exn*`}) = `%;%`_state(s[`EXNS`_store =++ exn*{exn <- `exn*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $growtable(tableinst : tableinst, nat : nat, ref : ref) : tableinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $growtable{tableinst : tableinst, n : n, r : ref, tableinst' : tableinst, tabletype#875 : tabletype, addrtype#1027 : addrtype, limits#1027 : limits, reftype#3401 : reftype, at : addrtype, u64#361 : u64, `u64?#359` : u64?, i : u64, `j?` : u64?, rt : reftype, `ref*#3` : ref*, `r'*` : ref*, tabletype#876 : tabletype, addrtype#1039 : addrtype, limits#1039 : limits, reftype#3413 : reftype, u64#373 : u64, `u64?#371` : u64?, i' : u64, `ref*#4` : ref*, i#31449 : nat, `i#31467?` : nat?, `i#31477?` : nat?}(tableinst, n, r) = tableinst' - -- if (tableinst = {`TYPE`{tabletype#875} `%%%`_tabletype{addrtype#1027, limits#1027, reftype#3401}(at, `[%..%]`_limits{u64#361, `u64?#359`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#3`} r'*{r' <- `r'*`}}) - -- if (tableinst' = {`TYPE`{tabletype#876} `%%%`_tabletype{addrtype#1039, limits#1039, reftype#3413}(at, `[%..%]`_limits{u64#373, `u64?#371`}(i', j?{j <- `j?`}), rt), `REFS`{`ref*#4`} r'*{r' <- `r'*`} ++ r^n{}}) - -- if (i'!`%`_u64{i#31449}.0 = (|r'*{r' <- `r'*`}| + n)) - -- (if (i'!`%`_u64{i#31467}.0 <= j!`%`_u64{i#31477}.0))?{i#31467 <- `i#31467?`, i#31477 <- `i#31477?`, j <- `j?`} + def $growtable{tableinst : tableinst, n : n, r : ref, tableinst' : tableinst, at : addrtype, i : u64, `j?` : u64?, rt : reftype, `r'*` : ref*, i' : u64}(tableinst, n, r) = tableinst' + -- if (tableinst = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`}}) + -- if (tableinst' = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i', j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`} ++ r^n{}}) + -- if (i'!`%`_u64.0 = (|r'*{r' <- `r'*`}| + n)) + -- (if (i'!`%`_u64.0 <= j!`%`_u64.0))?{j <- `j?`} ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $growmem(meminst : meminst, nat : nat) : meminst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $growmem{meminst : meminst, n : n, meminst' : meminst, memtype#525 : memtype, addrtype#1051 : addrtype, limits#1051 : limits, at : addrtype, u64#385 : u64, `u64?#383` : u64?, i : u64, `j?` : u64?, `byte*#1847` : byte*, `b*` : byte*, memtype#526 : memtype, addrtype#1063 : addrtype, limits#1063 : limits, u64#397 : u64, `u64?#395` : u64?, i' : u64, `byte*#1848` : byte*, `i#31599*` : nat*, i#31609 : nat, `i#31627?` : nat?, `i#31637?` : nat?}(meminst, n) = meminst' - -- if (meminst = {`TYPE`{memtype#525} `%%PAGE`_memtype{addrtype#1051, limits#1051}(at, `[%..%]`_limits{u64#385, `u64?#383`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1847`} b*{b <- `b*`}}) - -- if (meminst' = {`TYPE`{memtype#526} `%%PAGE`_memtype{addrtype#1063, limits#1063}(at, `[%..%]`_limits{u64#397, `u64?#395`}(i', j?{j <- `j?`})), `BYTES`{`byte*#1848`} b*{b <- `b*`} ++ `%`_byte{i#31599}(0)^(n * (64 * $Ki)){i#31599 <- `i#31599*`}}) - -- if ((i'!`%`_u64{i#31609}.0 : nat <:> rat) = (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat))) - -- (if (i'!`%`_u64{i#31627}.0 <= j!`%`_u64{i#31637}.0))?{i#31627 <- `i#31627?`, i#31637 <- `i#31637?`, j <- `j?`} + def $growmem{meminst : meminst, n : n, meminst' : meminst, at : addrtype, i : u64, `j?` : u64?, `b*` : byte*, i' : u64}(meminst, n) = meminst' + -- if (meminst = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` b*{b <- `b*`}}) + -- if (meminst' = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i', j?{j <- `j?`})), `BYTES` b*{b <- `b*`} ++ `%`_byte(0)^(n * (64 * $Ki)){}}) + -- if ((i'!`%`_u64.0 : nat <:> rat) = (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat))) + -- (if (i'!`%`_u64.0 <= j!`%`_u64.0))?{j <- `j?`} ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec relation Num_ok: `%|-%:%`(store, num, numtype) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - rule _{s : store, numtype#51 : numtype, nt : numtype, c : num_(nt)}: - `%|-%:%`(s, `CONST`_num{numtype#51}(nt, c), nt) + rule _{s : store, nt : numtype, c : num_(nt)}: + `%|-%:%`(s, `CONST`_num(nt, c), nt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec relation Vec_ok: `%|-%:%`(store, vec, vectype) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - rule _{s : store, vectype#54 : vectype, vt : vectype, c : vec_(vt)}: - `%|-%:%`(s, `VCONST`_vec{vectype#54}(vt, c), vt) + rule _{s : store, vt : vectype, c : vec_(vt)}: + `%|-%:%`(s, `VCONST`_vec(vt, c), vt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec rec { @@ -117375,48 +92626,48 @@ rec { ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:25.1-25.60 relation Ref_ok: `%|-%:%`(store, ref, reftype) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:35.1-37.35 - rule null{s : store, heaptype#1049 : heaptype, ht : heaptype, `null?#1051` : null?, heaptype#1061 : heaptype, ht' : heaptype, `deftype*#75` : deftype*, `subtype*#18` : subtype*, `tagtype*#19` : tagtype*, `globaltype*#20` : globaltype*, `memtype*#34` : memtype*, `tabletype*#27` : tabletype*, `deftype*#76` : deftype*, `datatype*#19` : datatype*, `elemtype*#19` : elemtype*, `localtype*#22` : localtype*, `resulttype*#30` : resulttype*, `resulttype?#27` : resulttype?, `funcidx*#56` : funcidx*}: - `%|-%:%`(s, `REF.NULL`_ref{heaptype#1049}(ht), `REF`_reftype{`null?#1051`, heaptype#1061}(?(`NULL`_null), ht')) - -- Heaptype_sub: `%|-%<:%`({`TYPES`{`deftype*#75`} [], `RECS`{`subtype*#18`} [], `TAGS`{`tagtype*#19`} [], `GLOBALS`{`globaltype*#20`} [], `MEMS`{`memtype*#34`} [], `TABLES`{`tabletype*#27`} [], `FUNCS`{`deftype*#76`} [], `DATAS`{`datatype*#19`} [], `ELEMS`{`elemtype*#19`} [], `LOCALS`{`localtype*#22`} [], `LABELS`{`resulttype*#30`} [], `RETURN`{`resulttype?#27`} ?(), `REFS`{`funcidx*#56`} []}, ht', ht) + rule null{s : store, ht : heaptype, ht' : heaptype}: + `%|-%:%`(s, `REF.NULL`_ref(ht), `REF`_reftype(?(`NULL`_null), ht')) + -- Heaptype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, ht', ht) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:39.1-40.33 - rule i31{s : store, u31#1 : u31, i : u31, `null?#1063` : null?, heaptype#1073 : heaptype}: - `%|-%:%`(s, `REF.I31_NUM`_ref{u31#1}(i), `REF`_reftype{`null?#1063`, heaptype#1073}(?(), `I31`_heaptype)) + rule i31{s : store, i : u31}: + `%|-%:%`(s, `REF.I31_NUM`_ref(i), `REF`_reftype(?(), `I31`_heaptype)) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:42.1-44.31 - rule struct{s : store, structaddr#1 : structaddr, a : addr, `null?#1075` : null?, heaptype#1085 : heaptype, dt : deftype, `structinst*#5` : structinst*, deftype#1 : deftype}: - `%|-%:%`(s, `REF.STRUCT_ADDR`_ref{structaddr#1}(a), `REF`_reftype{`null?#1075`, heaptype#1085}(?(), (dt : deftype <: heaptype))) - -- if (s.`STRUCTS`_store{`structinst*#5`}[a].`TYPE`_structinst{deftype#1} = dt) + rule struct{s : store, a : addr, dt : deftype}: + `%|-%:%`(s, `REF.STRUCT_ADDR`_ref(a), `REF`_reftype(?(), (dt : deftype <: heaptype))) + -- if (s.`STRUCTS`_store[a].`TYPE`_structinst = dt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:46.1-48.30 - rule array{s : store, arrayaddr#1 : arrayaddr, a : addr, `null?#1087` : null?, heaptype#1097 : heaptype, dt : deftype, `arrayinst*#5` : arrayinst*, deftype#2 : deftype}: - `%|-%:%`(s, `REF.ARRAY_ADDR`_ref{arrayaddr#1}(a), `REF`_reftype{`null?#1087`, heaptype#1097}(?(), (dt : deftype <: heaptype))) - -- if (s.`ARRAYS`_store{`arrayinst*#5`}[a].`TYPE`_arrayinst{deftype#2} = dt) + rule array{s : store, a : addr, dt : deftype}: + `%|-%:%`(s, `REF.ARRAY_ADDR`_ref(a), `REF`_reftype(?(), (dt : deftype <: heaptype))) + -- if (s.`ARRAYS`_store[a].`TYPE`_arrayinst = dt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:50.1-52.29 - rule func{s : store, funcaddr#3 : funcaddr, a : addr, `null?#1099` : null?, heaptype#1109 : heaptype, dt : deftype, `funcinst*#4` : funcinst*, deftype#3 : deftype}: - `%|-%:%`(s, `REF.FUNC_ADDR`_ref{funcaddr#3}(a), `REF`_reftype{`null?#1099`, heaptype#1109}(?(), (dt : deftype <: heaptype))) - -- if (s.`FUNCS`_store{`funcinst*#4`}[a].`TYPE`_funcinst{deftype#3} = dt) + rule func{s : store, a : addr, dt : deftype}: + `%|-%:%`(s, `REF.FUNC_ADDR`_ref(a), `REF`_reftype(?(), (dt : deftype <: heaptype))) + -- if (s.`FUNCS`_store[a].`TYPE`_funcinst = dt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:54.1-56.24 - rule exn{s : store, exnaddr#1 : exnaddr, a : addr, `null?#1111` : null?, heaptype#1121 : heaptype, `exninst*#4` : exninst*, exn : exninst}: - `%|-%:%`(s, `REF.EXN_ADDR`_ref{exnaddr#1}(a), `REF`_reftype{`null?#1111`, heaptype#1121}(?(), `EXN`_heaptype)) - -- if (s.`EXNS`_store{`exninst*#4`}[a] = exn) + rule exn{s : store, a : addr, exn : exninst}: + `%|-%:%`(s, `REF.EXN_ADDR`_ref(a), `REF`_reftype(?(), `EXN`_heaptype)) + -- if (s.`EXNS`_store[a] = exn) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:58.1-59.35 - rule host{s : store, hostaddr#1 : hostaddr, a : addr, `null?#1123` : null?, heaptype#1133 : heaptype}: - `%|-%:%`(s, `REF.HOST_ADDR`_ref{hostaddr#1}(a), `REF`_reftype{`null?#1123`, heaptype#1133}(?(), `ANY`_heaptype)) + rule host{s : store, a : addr}: + `%|-%:%`(s, `REF.HOST_ADDR`_ref(a), `REF`_reftype(?(), `ANY`_heaptype)) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:61.1-63.38 - rule extern{s : store, addrref#1 : addrref, addrref : addrref, `null?#1135` : null?, heaptype#1145 : heaptype, `null?#1147` : null?, heaptype#1157 : heaptype}: - `%|-%:%`(s, `REF.EXTERN`_ref{addrref#1}(addrref), `REF`_reftype{`null?#1135`, heaptype#1145}(?(), `EXTERN`_heaptype)) - -- Ref_ok: `%|-%:%`(s, (addrref : addrref <: ref), `REF`_reftype{`null?#1147`, heaptype#1157}(?(), `ANY`_heaptype)) + rule extern{s : store, addrref : addrref}: + `%|-%:%`(s, `REF.EXTERN`_ref(addrref), `REF`_reftype(?(), `EXTERN`_heaptype)) + -- Ref_ok: `%|-%:%`(s, (addrref : addrref <: ref), `REF`_reftype(?(), `ANY`_heaptype)) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:65.1-68.34 - rule sub{s : store, ref : ref, rt : reftype, rt' : reftype, `deftype*#77` : deftype*, `subtype*#19` : subtype*, `tagtype*#20` : tagtype*, `globaltype*#21` : globaltype*, `memtype*#35` : memtype*, `tabletype*#28` : tabletype*, `deftype*#78` : deftype*, `datatype*#20` : datatype*, `elemtype*#20` : elemtype*, `localtype*#23` : localtype*, `resulttype*#31` : resulttype*, `resulttype?#28` : resulttype?, `funcidx*#57` : funcidx*}: + rule sub{s : store, ref : ref, rt : reftype, rt' : reftype}: `%|-%:%`(s, ref, rt) -- Ref_ok: `%|-%:%`(s, ref, rt') - -- Reftype_sub: `%|-%<:%`({`TYPES`{`deftype*#77`} [], `RECS`{`subtype*#19`} [], `TAGS`{`tagtype*#20`} [], `GLOBALS`{`globaltype*#21`} [], `MEMS`{`memtype*#35`} [], `TABLES`{`tabletype*#28`} [], `FUNCS`{`deftype*#78`} [], `DATAS`{`datatype*#20`} [], `ELEMS`{`elemtype*#20`} [], `LOCALS`{`localtype*#23`} [], `LABELS`{`resulttype*#31`} [], `RETURN`{`resulttype?#28`} ?(), `REFS`{`funcidx*#57`} []}, rt', rt) + -- Reftype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt', rt) } ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec @@ -117442,66 +92693,66 @@ rec { ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:86.1-86.84 relation Externaddr_ok: `%|-%:%`(store, externaddr, externtype) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:88.1-90.28 - rule tag{s : store, tagaddr#3 : tagaddr, a : addr, tagtype#177 : tagtype, taginst : taginst, tagtype#179 : tagtype, `taginst*#4` : taginst*}: - `%|-%:%`(s, `TAG`_externaddr{tagaddr#3}(a), `TAG`_externtype{tagtype#177}(taginst.`TYPE`_taginst{tagtype#179})) - -- if (s.`TAGS`_store{`taginst*#4`}[a] = taginst) + rule tag{s : store, a : addr, taginst : taginst}: + `%|-%:%`(s, `TAG`_externaddr(a), `TAG`_externtype(taginst.`TYPE`_taginst)) + -- if (s.`TAGS`_store[a] = taginst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:92.1-94.34 - rule global{s : store, globaladdr#3 : globaladdr, a : addr, globaltype#2085 : globaltype, globalinst : globalinst, globaltype#2087 : globaltype, `globalinst*#5` : globalinst*}: - `%|-%:%`(s, `GLOBAL`_externaddr{globaladdr#3}(a), `GLOBAL`_externtype{globaltype#2085}(globalinst.`TYPE`_globalinst{globaltype#2087})) - -- if (s.`GLOBALS`_store{`globalinst*#5`}[a] = globalinst) + rule global{s : store, a : addr, globalinst : globalinst}: + `%|-%:%`(s, `GLOBAL`_externaddr(a), `GLOBAL`_externtype(globalinst.`TYPE`_globalinst)) + -- if (s.`GLOBALS`_store[a] = globalinst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:96.1-98.28 - rule mem{s : store, memaddr#3 : memaddr, a : addr, memtype#527 : memtype, meminst : meminst, memtype#529 : memtype, `meminst*#6` : meminst*}: - `%|-%:%`(s, `MEM`_externaddr{memaddr#3}(a), `MEM`_externtype{memtype#527}(meminst.`TYPE`_meminst{memtype#529})) - -- if (s.`MEMS`_store{`meminst*#6`}[a] = meminst) + rule mem{s : store, a : addr, meminst : meminst}: + `%|-%:%`(s, `MEM`_externaddr(a), `MEM`_externtype(meminst.`TYPE`_meminst)) + -- if (s.`MEMS`_store[a] = meminst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:100.1-102.32 - rule table{s : store, tableaddr#3 : tableaddr, a : addr, tabletype#877 : tabletype, tableinst : tableinst, tabletype#879 : tabletype, `tableinst*#6` : tableinst*}: - `%|-%:%`(s, `TABLE`_externaddr{tableaddr#3}(a), `TABLE`_externtype{tabletype#877}(tableinst.`TYPE`_tableinst{tabletype#879})) - -- if (s.`TABLES`_store{`tableinst*#6`}[a] = tableinst) + rule table{s : store, a : addr, tableinst : tableinst}: + `%|-%:%`(s, `TABLE`_externaddr(a), `TABLE`_externtype(tableinst.`TYPE`_tableinst)) + -- if (s.`TABLES`_store[a] = tableinst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:104.1-106.30 - rule func{s : store, funcaddr#5 : funcaddr, a : addr, typeuse#33 : typeuse, funcinst : funcinst, deftype#4 : deftype, `funcinst*#5` : funcinst*}: - `%|-%:%`(s, `FUNC`_externaddr{funcaddr#5}(a), `FUNC`_externtype{typeuse#33}((funcinst.`TYPE`_funcinst{deftype#4} : deftype <: typeuse))) - -- if (s.`FUNCS`_store{`funcinst*#5`}[a] = funcinst) + rule func{s : store, a : addr, funcinst : funcinst}: + `%|-%:%`(s, `FUNC`_externaddr(a), `FUNC`_externtype((funcinst.`TYPE`_funcinst : deftype <: typeuse))) + -- if (s.`FUNCS`_store[a] = funcinst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:108.1-111.37 - rule sub{s : store, externaddr : externaddr, xt : externtype, xt' : externtype, `deftype*#79` : deftype*, `subtype*#20` : subtype*, `tagtype*#21` : tagtype*, `globaltype*#22` : globaltype*, `memtype*#36` : memtype*, `tabletype*#29` : tabletype*, `deftype*#80` : deftype*, `datatype*#21` : datatype*, `elemtype*#21` : elemtype*, `localtype*#24` : localtype*, `resulttype*#32` : resulttype*, `resulttype?#29` : resulttype?, `funcidx*#58` : funcidx*}: + rule sub{s : store, externaddr : externaddr, xt : externtype, xt' : externtype}: `%|-%:%`(s, externaddr, xt) -- Externaddr_ok: `%|-%:%`(s, externaddr, xt') - -- Externtype_sub: `%|-%<:%`({`TYPES`{`deftype*#79`} [], `RECS`{`subtype*#20`} [], `TAGS`{`tagtype*#21`} [], `GLOBALS`{`globaltype*#22`} [], `MEMS`{`memtype*#36`} [], `TABLES`{`tabletype*#29`} [], `FUNCS`{`deftype*#80`} [], `DATAS`{`datatype*#21`} [], `ELEMS`{`elemtype*#21`} [], `LOCALS`{`localtype*#24`} [], `LABELS`{`resulttype*#32`} [], `RETURN`{`resulttype?#29`} ?(), `REFS`{`funcidx*#58`} []}, xt', xt) + -- Externtype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, xt', xt) } ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_valtype(moduleinst : moduleinst, valtype : valtype) : valtype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_valtype{moduleinst : moduleinst, t : valtype, `dt*` : deftype*, `deftype*#81` : deftype*}(moduleinst, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#81`}) + def $inst_valtype{moduleinst : moduleinst, t : valtype, `dt*` : deftype*}(moduleinst, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_reftype(moduleinst : moduleinst, reftype : reftype) : reftype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_reftype{moduleinst : moduleinst, rt : reftype, `dt*` : deftype*, `deftype*#82` : deftype*}(moduleinst, rt) = $subst_all_reftype(rt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#82`}) + def $inst_reftype{moduleinst : moduleinst, rt : reftype, `dt*` : deftype*}(moduleinst, rt) = $subst_all_reftype(rt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_globaltype(moduleinst : moduleinst, globaltype : globaltype) : globaltype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_globaltype{moduleinst : moduleinst, gt : globaltype, `dt*` : deftype*, `deftype*#83` : deftype*}(moduleinst, gt) = $subst_all_globaltype(gt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#83`}) + def $inst_globaltype{moduleinst : moduleinst, gt : globaltype, `dt*` : deftype*}(moduleinst, gt) = $subst_all_globaltype(gt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_memtype(moduleinst : moduleinst, memtype : memtype) : memtype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_memtype{moduleinst : moduleinst, mt : memtype, `dt*` : deftype*, `deftype*#84` : deftype*}(moduleinst, mt) = $subst_all_memtype(mt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#84`}) + def $inst_memtype{moduleinst : moduleinst, mt : memtype, `dt*` : deftype*}(moduleinst, mt) = $subst_all_memtype(mt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_tabletype{moduleinst : moduleinst, tt : tabletype, `dt*` : deftype*, `deftype*#85` : deftype*}(moduleinst, tt) = $subst_all_tabletype(tt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst{`deftype*#85`}) + def $inst_tabletype{moduleinst : moduleinst, tt : tabletype, `dt*` : deftype*}(moduleinst, tt) = $subst_all_tabletype(tt, (dt : deftype <: typeuse)*{dt <- `dt*`}) + -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec relation Step_pure: `%~>%`(instr*, instr*) @@ -117518,110 +92769,110 @@ relation Step_pure: `%~>%`(instr*, instr*) `%~>%`([(val : val <: instr) `DROP`_instr], []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `select-true`{val_1 : val, val_2 : val, numtype#59 : numtype, c : num_(`I32`_numtype), `valtype*?#7` : valtype*?, `t*?` : valtype*?, i#31733 : nat}: - `%~>%`([(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr{numtype#59}(`I32`_numtype, c) `SELECT`_instr{`valtype*?#7`}(t*{t <- `t*`}?{`t*` <- `t*?`})], [(val_1 : val <: instr)]) - -- if (c!`%`_num_{i#31733}.0 =/= 0) + rule `select-true`{val_1 : val, val_2 : val, c : num_(`I32`_numtype), `t*?` : valtype*?}: + `%~>%`([(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr(`I32`_numtype, c) `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})], [(val_1 : val <: instr)]) + -- if (c!`%`_num_.0 =/= 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `select-false`{val_1 : val, val_2 : val, numtype#61 : numtype, c : num_(`I32`_numtype), `valtype*?#9` : valtype*?, `t*?` : valtype*?, i#31757 : nat}: - `%~>%`([(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr{numtype#61}(`I32`_numtype, c) `SELECT`_instr{`valtype*?#9`}(t*{t <- `t*`}?{`t*` <- `t*?`})], [(val_2 : val <: instr)]) - -- if (c!`%`_num_{i#31757}.0 = 0) + rule `select-false`{val_1 : val, val_2 : val, c : num_(`I32`_numtype), `t*?` : valtype*?}: + `%~>%`([(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr(`I32`_numtype, c) `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})], [(val_2 : val <: instr)]) + -- if (c!`%`_num_.0 = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `if-true`{numtype#63 : numtype, c : num_(`I32`_numtype), blocktype#21 : blocktype, `instr*#363` : instr*, bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*, blocktype#23 : blocktype, `instr*#366` : instr*, i#31807 : nat}: - `%~>%`([`CONST`_instr{numtype#63}(`I32`_numtype, c) `IF%%ELSE%`_instr{blocktype#21, `instr*#363`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})], [`BLOCK`_instr{blocktype#23, `instr*#366`}(bt, instr_1*{instr_1 <- `instr_1*`})]) - -- if (c!`%`_num_{i#31807}.0 =/= 0) + rule `if-true`{c : num_(`I32`_numtype), bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}: + `%~>%`([`CONST`_instr(`I32`_numtype, c) `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})], [`BLOCK`_instr(bt, instr_1*{instr_1 <- `instr_1*`})]) + -- if (c!`%`_num_.0 =/= 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `if-false`{numtype#65 : numtype, c : num_(`I32`_numtype), blocktype#25 : blocktype, `instr*#368` : instr*, bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*, blocktype#27 : blocktype, `instr*#371` : instr*, i#31831 : nat}: - `%~>%`([`CONST`_instr{numtype#65}(`I32`_numtype, c) `IF%%ELSE%`_instr{blocktype#25, `instr*#368`}(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})], [`BLOCK`_instr{blocktype#27, `instr*#371`}(bt, instr_2*{instr_2 <- `instr_2*`})]) - -- if (c!`%`_num_{i#31831}.0 = 0) + rule `if-false`{c : num_(`I32`_numtype), bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}: + `%~>%`([`CONST`_instr(`I32`_numtype, c) `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})], [`BLOCK`_instr(bt, instr_2*{instr_2 <- `instr_2*`})]) + -- if (c!`%`_num_.0 = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `label-vals`{n#1145 : n, `instr*#373` : instr*, n : n, `instr*` : instr*, `val*` : val*}: - `%~>%`([`LABEL_%{%}%`_instr{n#1145, `instr*#373`}(n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})], (val : val <: instr)*{val <- `val*`}) + rule `label-vals`{n : n, `instr*` : instr*, `val*` : val*}: + `%~>%`([`LABEL_%{%}%`_instr(n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})], (val : val <: instr)*{val <- `val*`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br-label-zero`{n#1147 : n, `instr*#376` : instr*, n : n, `instr'*` : instr*, `val'*` : val*, `val*` : val*, labelidx#37 : labelidx, l : labelidx, `instr*` : instr*, i#31853 : nat}: - `%~>%`([`LABEL_%{%}%`_instr{n#1147, `instr*#376`}(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr{labelidx#37}(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)^n{val <- `val*`} ++ instr'*{instr' <- `instr'*`}) - -- if (l!`%`_labelidx{i#31853}.0 = 0) + rule `br-label-zero`{n : n, `instr'*` : instr*, `val'*` : val*, `val*` : val*, l : labelidx, `instr*` : instr*}: + `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)^n{val <- `val*`} ++ instr'*{instr' <- `instr'*`}) + -- if (l!`%`_labelidx.0 = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br-label-succ`{n#1149 : n, `instr*#379` : instr*, n : n, `instr'*` : instr*, `val*` : val*, labelidx#39 : labelidx, l : labelidx, `instr*` : instr*, labelidx#41 : labelidx, i#31901 : nat, i#31891 : nat, i#31915 : nat}: - `%~>%`([`LABEL_%{%}%`_instr{n#1149, `instr*#379`}(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#39}(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#41}(`%`_labelidx{i#31901}((((l!`%`_labelidx{i#31891}.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]) - -- if (l!`%`_labelidx{i#31915}.0 > 0) + rule `br-label-succ`{n : n, `instr'*` : instr*, `val*` : val*, l : labelidx, `instr*` : instr*}: + `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(`%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]) + -- if (l!`%`_labelidx.0 > 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br-handler`{n#1151 : n, `catch*#1` : catch*, `instr*#382` : instr*, n : n, `catch*` : catch*, `val*` : val*, labelidx#43 : labelidx, l : labelidx, `instr*` : instr*, labelidx#45 : labelidx}: - `%~>%`([`HANDLER_%{%}%`_instr{n#1151, `catch*#1`, `instr*#382`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#43}(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#45}(l)]) + rule `br-handler`{n : n, `catch*` : catch*, `val*` : val*, l : labelidx, `instr*` : instr*}: + `%~>%`([`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_if-true`{numtype#67 : numtype, c : num_(`I32`_numtype), labelidx#47 : labelidx, l : labelidx, labelidx#49 : labelidx, i#31987 : nat}: - `%~>%`([`CONST`_instr{numtype#67}(`I32`_numtype, c) `BR_IF`_instr{labelidx#47}(l)], [`BR`_instr{labelidx#49}(l)]) - -- if (c!`%`_num_{i#31987}.0 =/= 0) + rule `br_if-true`{c : num_(`I32`_numtype), l : labelidx}: + `%~>%`([`CONST`_instr(`I32`_numtype, c) `BR_IF`_instr(l)], [`BR`_instr(l)]) + -- if (c!`%`_num_.0 =/= 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_if-false`{numtype#69 : numtype, c : num_(`I32`_numtype), labelidx#51 : labelidx, l : labelidx, i#32023 : nat}: - `%~>%`([`CONST`_instr{numtype#69}(`I32`_numtype, c) `BR_IF`_instr{labelidx#51}(l)], []) - -- if (c!`%`_num_{i#32023}.0 = 0) + rule `br_if-false`{c : num_(`I32`_numtype), l : labelidx}: + `%~>%`([`CONST`_instr(`I32`_numtype, c) `BR_IF`_instr(l)], []) + -- if (c!`%`_num_.0 = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_table-lt`{numtype#71 : numtype, i : num_(`I32`_numtype), `labelidx*#50` : labelidx*, labelidx#53 : labelidx, `l*` : labelidx*, l' : labelidx, labelidx#55 : labelidx, i#32131 : nat, i#32145 : nat}: - `%~>%`([`CONST`_instr{numtype#71}(`I32`_numtype, i) `BR_TABLE`_instr{`labelidx*#50`, labelidx#53}(l*{l <- `l*`}, l')], [`BR`_instr{labelidx#55}(l*{l <- `l*`}[i!`%`_num_{i#32131}.0])]) - -- if (i!`%`_num_{i#32145}.0 < |l*{l <- `l*`}|) + rule `br_table-lt`{i : num_(`I32`_numtype), `l*` : labelidx*, l' : labelidx}: + `%~>%`([`CONST`_instr(`I32`_numtype, i) `BR_TABLE`_instr(l*{l <- `l*`}, l')], [`BR`_instr(l*{l <- `l*`}[i!`%`_num_.0])]) + -- if (i!`%`_num_.0 < |l*{l <- `l*`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_table-ge`{numtype#73 : numtype, i : num_(`I32`_numtype), `labelidx*#52` : labelidx*, labelidx#57 : labelidx, `l*` : labelidx*, l' : labelidx, labelidx#59 : labelidx, i#32257 : nat}: - `%~>%`([`CONST`_instr{numtype#73}(`I32`_numtype, i) `BR_TABLE`_instr{`labelidx*#52`, labelidx#57}(l*{l <- `l*`}, l')], [`BR`_instr{labelidx#59}(l')]) - -- if (i!`%`_num_{i#32257}.0 >= |l*{l <- `l*`}|) + rule `br_table-ge`{i : num_(`I32`_numtype), `l*` : labelidx*, l' : labelidx}: + `%~>%`([`CONST`_instr(`I32`_numtype, i) `BR_TABLE`_instr(l*{l <- `l*`}, l')], [`BR`_instr(l')]) + -- if (i!`%`_num_.0 >= |l*{l <- `l*`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_null-null`{val : val, labelidx#61 : labelidx, l : labelidx, labelidx#63 : labelidx, heaptype#1207 : heaptype, ht : heaptype}: - `%~>%`([(val : val <: instr) `BR_ON_NULL`_instr{labelidx#61}(l)], [`BR`_instr{labelidx#63}(l)]) - -- if (val = `REF.NULL`_val{heaptype#1207}(ht)) + rule `br_on_null-null`{val : val, l : labelidx, ht : heaptype}: + `%~>%`([(val : val <: instr) `BR_ON_NULL`_instr(l)], [`BR`_instr(l)]) + -- if (val = `REF.NULL`_val(ht)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_null-addr`{val : val, labelidx#65 : labelidx, l : labelidx}: - `%~>%`([(val : val <: instr) `BR_ON_NULL`_instr{labelidx#65}(l)], [(val : val <: instr)]) + rule `br_on_null-addr`{val : val, l : labelidx}: + `%~>%`([(val : val <: instr) `BR_ON_NULL`_instr(l)], [(val : val <: instr)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_non_null-null`{val : val, labelidx#67 : labelidx, l : labelidx, heaptype#1209 : heaptype, ht : heaptype}: - `%~>%`([(val : val <: instr) `BR_ON_NON_NULL`_instr{labelidx#67}(l)], []) - -- if (val = `REF.NULL`_val{heaptype#1209}(ht)) + rule `br_on_non_null-null`{val : val, l : labelidx, ht : heaptype}: + `%~>%`([(val : val <: instr) `BR_ON_NON_NULL`_instr(l)], []) + -- if (val = `REF.NULL`_val(ht)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_non_null-addr`{val : val, labelidx#69 : labelidx, l : labelidx, labelidx#71 : labelidx}: - `%~>%`([(val : val <: instr) `BR_ON_NON_NULL`_instr{labelidx#69}(l)], [(val : val <: instr) `BR`_instr{labelidx#71}(l)]) + rule `br_on_non_null-addr`{val : val, l : labelidx}: + `%~>%`([(val : val <: instr) `BR_ON_NON_NULL`_instr(l)], [(val : val <: instr) `BR`_instr(l)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule call_indirect{tableidx#49 : tableidx, typeuse#57 : typeuse, x : idx, yy : typeuse, tableidx#51 : tableidx, reftype#3451 : reftype, `null?#1303` : null?, heaptype#1321 : heaptype, typeuse#59 : typeuse}: - `%~>%`([`CALL_INDIRECT`_instr{tableidx#49, typeuse#57}(x, yy)], [`TABLE.GET`_instr{tableidx#51}(x) `REF.CAST`_instr{reftype#3451}(`REF`_reftype{`null?#1303`, heaptype#1321}(?(`NULL`_null), (yy : typeuse <: heaptype))) `CALL_REF`_instr{typeuse#59}(yy)]) + rule call_indirect{x : idx, yy : typeuse}: + `%~>%`([`CALL_INDIRECT`_instr(x, yy)], [`TABLE.GET`_instr(x) `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype))) `CALL_REF`_instr(yy)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule return_call_indirect{tableidx#53 : tableidx, typeuse#61 : typeuse, x : idx, yy : typeuse, tableidx#55 : tableidx, reftype#3453 : reftype, `null?#1315` : null?, heaptype#1333 : heaptype, typeuse#63 : typeuse}: - `%~>%`([`RETURN_CALL_INDIRECT`_instr{tableidx#53, typeuse#61}(x, yy)], [`TABLE.GET`_instr{tableidx#55}(x) `REF.CAST`_instr{reftype#3453}(`REF`_reftype{`null?#1315`, heaptype#1333}(?(`NULL`_null), (yy : typeuse <: heaptype))) `RETURN_CALL_REF`_instr{typeuse#63}(yy)]) + rule return_call_indirect{x : idx, yy : typeuse}: + `%~>%`([`RETURN_CALL_INDIRECT`_instr(x, yy)], [`TABLE.GET`_instr(x) `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype))) `RETURN_CALL_REF`_instr(yy)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `frame-vals`{n#1177 : n, frame#947 : frame, `instr*#542` : instr*, n : n, f : frame, `val*` : val*}: - `%~>%`([`FRAME_%{%}%`_instr{n#1177, frame#947, `instr*#542`}(n, f, (val : val <: instr)^n{val <- `val*`})], (val : val <: instr)^n{val <- `val*`}) + rule `frame-vals`{n : n, f : frame, `val*` : val*}: + `%~>%`([`FRAME_%{%}%`_instr(n, f, (val : val <: instr)^n{val <- `val*`})], (val : val <: instr)^n{val <- `val*`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return-frame`{n#1179 : n, frame#949 : frame, `instr*#544` : instr*, n : n, f : frame, `val'*` : val*, `val*` : val*, `instr*` : instr*}: - `%~>%`([`FRAME_%{%}%`_instr{n#1179, frame#949, `instr*#544`}(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)^n{val <- `val*`}) + rule `return-frame`{n : n, f : frame, `val'*` : val*, `val*` : val*, `instr*` : instr*}: + `%~>%`([`FRAME_%{%}%`_instr(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)^n{val <- `val*`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return-label`{n#1181 : n, `instr*#546` : instr*, n : n, `instr'*` : instr*, `val*` : val*, `instr*` : instr*}: - `%~>%`([`LABEL_%{%}%`_instr{n#1181, `instr*#546`}(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]) + rule `return-label`{n : n, `instr'*` : instr*, `val*` : val*, `instr*` : instr*}: + `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return-handler`{n#1183 : n, `catch*#5` : catch*, `instr*#549` : instr*, n : n, `catch*` : catch*, `val*` : val*, `instr*` : instr*}: - `%~>%`([`HANDLER_%{%}%`_instr{n#1183, `catch*#5`, `instr*#549`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]) + rule `return-handler`{n : n, `catch*` : catch*, `val*` : val*, `instr*` : instr*}: + `%~>%`([`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `handler-vals`{n#1213 : n, `catch*#23` : catch*, `instr*#733` : instr*, n : n, `catch*` : catch*, `val*` : val*}: - `%~>%`([`HANDLER_%{%}%`_instr{n#1213, `catch*#23`, `instr*#733`}(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})], (val : val <: instr)*{val <- `val*`}) + rule `handler-vals`{n : n, `catch*` : catch*, `val*` : val*}: + `%~>%`([`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})], (val : val <: instr)*{val <- `val*`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `trap-instrs`{`val*` : val*, `instr*` : instr*}: @@ -117629,35 +92880,35 @@ relation Step_pure: `%~>%`(instr*, instr*) -- if ((val*{val <- `val*`} =/= []) \/ (instr*{instr <- `instr*`} =/= [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `trap-label`{n#1215 : n, `instr*#735` : instr*, n : n, `instr'*` : instr*}: - `%~>%`([`LABEL_%{%}%`_instr{n#1215, `instr*#735`}(n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])], [`TRAP`_instr]) + rule `trap-label`{n : n, `instr'*` : instr*}: + `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])], [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `trap-frame`{n#1217 : n, frame#1097 : frame, `instr*#738` : instr*, n : n, f : frame}: - `%~>%`([`FRAME_%{%}%`_instr{n#1217, frame#1097, `instr*#738`}(n, f, [`TRAP`_instr])], [`TRAP`_instr]) + rule `trap-frame`{n : n, f : frame}: + `%~>%`([`FRAME_%{%}%`_instr(n, f, [`TRAP`_instr])], [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule local.tee{val : val, localidx#17 : localidx, x : idx, localidx#19 : localidx}: - `%~>%`([(val : val <: instr) `LOCAL.TEE`_instr{localidx#17}(x)], [(val : val <: instr) (val : val <: instr) `LOCAL.SET`_instr{localidx#19}(x)]) + rule local.tee{val : val, x : idx}: + `%~>%`([(val : val <: instr) `LOCAL.TEE`_instr(x)], [(val : val <: instr) (val : val <: instr) `LOCAL.SET`_instr(x)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule ref.i31{numtype#351 : numtype, i : num_(`I32`_numtype), u31#3 : u31}: - `%~>%`([`CONST`_instr{numtype#351}(`I32`_numtype, i) `REF.I31`_instr], [`REF.I31_NUM`_instr{u31#3}($wrap__(32, 31, i))]) + rule ref.i31{i : num_(`I32`_numtype)}: + `%~>%`([`CONST`_instr(`I32`_numtype, i) `REF.I31`_instr], [`REF.I31_NUM`_instr($wrap__(32, 31, i))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.is_null-true`{ref : ref, numtype#353 : numtype, i#40032 : nat, heaptype#1347 : heaptype, ht : heaptype}: - `%~>%`([(ref : ref <: instr) `REF.IS_NULL`_instr], [`CONST`_instr{numtype#353}(`I32`_numtype, `%`_num_{i#40032}(1))]) - -- if (ref = `REF.NULL`_ref{heaptype#1347}(ht)) + rule `ref.is_null-true`{ref : ref, ht : heaptype}: + `%~>%`([(ref : ref <: instr) `REF.IS_NULL`_instr], [`CONST`_instr(`I32`_numtype, `%`_num_(1))]) + -- if (ref = `REF.NULL`_ref(ht)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.is_null-false`{ref : ref, numtype#355 : numtype, i#40054 : nat}: - `%~>%`([(ref : ref <: instr) `REF.IS_NULL`_instr], [`CONST`_instr{numtype#355}(`I32`_numtype, `%`_num_{i#40054}(0))]) + rule `ref.is_null-false`{ref : ref}: + `%~>%`([(ref : ref <: instr) `REF.IS_NULL`_instr], [`CONST`_instr(`I32`_numtype, `%`_num_(0))]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.as_non_null-null`{ref : ref, heaptype#1349 : heaptype, ht : heaptype}: + rule `ref.as_non_null-null`{ref : ref, ht : heaptype}: `%~>%`([(ref : ref <: instr) `REF.AS_NON_NULL`_instr], [`TRAP`_instr]) - -- if (ref = `REF.NULL`_ref{heaptype#1349}(ht)) + -- if (ref = `REF.NULL`_ref(ht)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `ref.as_non_null-addr`{ref : ref}: @@ -117665,771 +92916,771 @@ relation Step_pure: `%~>%`(instr*, instr*) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.eq-null`{ref_1 : ref, ref_2 : ref, numtype#357 : numtype, i#40076 : nat, heaptype#1351 : heaptype, ht_1 : heaptype, heaptype#1353 : heaptype, ht_2 : heaptype}: - `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [`CONST`_instr{numtype#357}(`I32`_numtype, `%`_num_{i#40076}(1))]) - -- if ((ref_1 = `REF.NULL`_ref{heaptype#1351}(ht_1)) /\ (ref_2 = `REF.NULL`_ref{heaptype#1353}(ht_2))) + rule `ref.eq-null`{ref_1 : ref, ref_2 : ref, ht_1 : heaptype, ht_2 : heaptype}: + `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [`CONST`_instr(`I32`_numtype, `%`_num_(1))]) + -- if ((ref_1 = `REF.NULL`_ref(ht_1)) /\ (ref_2 = `REF.NULL`_ref(ht_2))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.eq-true`{ref_1 : ref, ref_2 : ref, numtype#359 : numtype, i#40098 : nat}: - `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [`CONST`_instr{numtype#359}(`I32`_numtype, `%`_num_{i#40098}(1))]) + rule `ref.eq-true`{ref_1 : ref, ref_2 : ref}: + `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [`CONST`_instr(`I32`_numtype, `%`_num_(1))]) -- otherwise -- if (ref_1 = ref_2) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.eq-false`{ref_1 : ref, ref_2 : ref, numtype#361 : numtype, i#40120 : nat}: - `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [`CONST`_instr{numtype#361}(`I32`_numtype, `%`_num_{i#40120}(0))]) + rule `ref.eq-false`{ref_1 : ref, ref_2 : ref}: + `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [`CONST`_instr(`I32`_numtype, `%`_num_(0))]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `i31.get-null`{heaptype#1427 : heaptype, ht : heaptype, sx#404 : sx, sx : sx}: - `%~>%`([`REF.NULL`_instr{heaptype#1427}(ht) `I31.GET`_instr{sx#404}(sx)], [`TRAP`_instr]) + rule `i31.get-null`{ht : heaptype, sx : sx}: + `%~>%`([`REF.NULL`_instr(ht) `I31.GET`_instr(sx)], [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `i31.get-num`{u31#5 : u31, i : u31, sx#406 : sx, sx : sx, numtype#367 : numtype}: - `%~>%`([`REF.I31_NUM`_instr{u31#5}(i) `I31.GET`_instr{sx#406}(sx)], [`CONST`_instr{numtype#367}(`I32`_numtype, $extend__(31, 32, sx, i))]) + rule `i31.get-num`{i : u31, sx : sx}: + `%~>%`([`REF.I31_NUM`_instr(i) `I31.GET`_instr(sx)], [`CONST`_instr(`I32`_numtype, $extend__(31, 32, sx, i))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule array.new{val : val, numtype#369 : numtype, i#40512 : nat, n : n, typeidx#1571 : typeidx, x : idx, typeidx#1573 : typeidx, u32#25 : u32, i#40564 : nat}: - `%~>%`([(val : val <: instr) `CONST`_instr{numtype#369}(`I32`_numtype, `%`_num_{i#40512}(n)) `ARRAY.NEW`_instr{typeidx#1571}(x)], (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1573, u32#25}(x, `%`_u32{i#40564}(n))]) + rule array.new{val : val, n : n, x : idx}: + `%~>%`([(val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW`_instr(x)], (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `extern.convert_any-null`{heaptype#1449 : heaptype, ht : heaptype, heaptype#1451 : heaptype}: - `%~>%`([`REF.NULL`_instr{heaptype#1449}(ht) `EXTERN.CONVERT_ANY`_instr], [`REF.NULL`_instr{heaptype#1451}(`EXTERN`_heaptype)]) + rule `extern.convert_any-null`{ht : heaptype}: + `%~>%`([`REF.NULL`_instr(ht) `EXTERN.CONVERT_ANY`_instr], [`REF.NULL`_instr(`EXTERN`_heaptype)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `extern.convert_any-addr`{addrref : addrref, addrref#3 : addrref}: - `%~>%`([(addrref : addrref <: instr) `EXTERN.CONVERT_ANY`_instr], [`REF.EXTERN`_instr{addrref#3}(addrref)]) + rule `extern.convert_any-addr`{addrref : addrref}: + `%~>%`([(addrref : addrref <: instr) `EXTERN.CONVERT_ANY`_instr], [`REF.EXTERN`_instr(addrref)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `any.convert_extern-null`{heaptype#1453 : heaptype, ht : heaptype, heaptype#1455 : heaptype}: - `%~>%`([`REF.NULL`_instr{heaptype#1453}(ht) `ANY.CONVERT_EXTERN`_instr], [`REF.NULL`_instr{heaptype#1455}(`ANY`_heaptype)]) + rule `any.convert_extern-null`{ht : heaptype}: + `%~>%`([`REF.NULL`_instr(ht) `ANY.CONVERT_EXTERN`_instr], [`REF.NULL`_instr(`ANY`_heaptype)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `any.convert_extern-addr`{addrref#5 : addrref, addrref : addrref}: - `%~>%`([`REF.EXTERN`_instr{addrref#5}(addrref) `ANY.CONVERT_EXTERN`_instr], [(addrref : addrref <: instr)]) + rule `any.convert_extern-addr`{addrref : addrref}: + `%~>%`([`REF.EXTERN`_instr(addrref) `ANY.CONVERT_EXTERN`_instr], [(addrref : addrref <: instr)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `unop-val`{numtype#563 : numtype, nt : numtype, c_1 : num_(nt), numtype#565 : numtype, unop : unop_(nt), numtype#567 : numtype, c : num_(nt)}: - `%~>%`([`CONST`_instr{numtype#563}(nt, c_1) `UNOP`_instr{numtype#565}(nt, unop)], [`CONST`_instr{numtype#567}(nt, c)]) + rule `unop-val`{nt : numtype, c_1 : num_(nt), unop : unop_(nt), c : num_(nt)}: + `%~>%`([`CONST`_instr(nt, c_1) `UNOP`_instr(nt, unop)], [`CONST`_instr(nt, c)]) -- if (c <- $unop_(nt, unop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `unop-trap`{numtype#569 : numtype, nt : numtype, c_1 : num_(nt), numtype#571 : numtype, unop : unop_(nt)}: - `%~>%`([`CONST`_instr{numtype#569}(nt, c_1) `UNOP`_instr{numtype#571}(nt, unop)], [`TRAP`_instr]) + rule `unop-trap`{nt : numtype, c_1 : num_(nt), unop : unop_(nt)}: + `%~>%`([`CONST`_instr(nt, c_1) `UNOP`_instr(nt, unop)], [`TRAP`_instr]) -- if ($unop_(nt, unop, c_1) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `binop-val`{numtype#573 : numtype, nt : numtype, c_1 : num_(nt), numtype#575 : numtype, c_2 : num_(nt), numtype#577 : numtype, binop : binop_(nt), numtype#579 : numtype, c : num_(nt)}: - `%~>%`([`CONST`_instr{numtype#573}(nt, c_1) `CONST`_instr{numtype#575}(nt, c_2) `BINOP`_instr{numtype#577}(nt, binop)], [`CONST`_instr{numtype#579}(nt, c)]) + rule `binop-val`{nt : numtype, c_1 : num_(nt), c_2 : num_(nt), binop : binop_(nt), c : num_(nt)}: + `%~>%`([`CONST`_instr(nt, c_1) `CONST`_instr(nt, c_2) `BINOP`_instr(nt, binop)], [`CONST`_instr(nt, c)]) -- if (c <- $binop_(nt, binop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `binop-trap`{numtype#581 : numtype, nt : numtype, c_1 : num_(nt), numtype#583 : numtype, c_2 : num_(nt), numtype#585 : numtype, binop : binop_(nt)}: - `%~>%`([`CONST`_instr{numtype#581}(nt, c_1) `CONST`_instr{numtype#583}(nt, c_2) `BINOP`_instr{numtype#585}(nt, binop)], [`TRAP`_instr]) + rule `binop-trap`{nt : numtype, c_1 : num_(nt), c_2 : num_(nt), binop : binop_(nt)}: + `%~>%`([`CONST`_instr(nt, c_1) `CONST`_instr(nt, c_2) `BINOP`_instr(nt, binop)], [`TRAP`_instr]) -- if ($binop_(nt, binop, c_1, c_2) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule testop{numtype#587 : numtype, nt : numtype, c_1 : num_(nt), numtype#589 : numtype, testop : testop_(nt), numtype#591 : numtype, c : num_(`I32`_numtype)}: - `%~>%`([`CONST`_instr{numtype#587}(nt, c_1) `TESTOP`_instr{numtype#589}(nt, testop)], [`CONST`_instr{numtype#591}(`I32`_numtype, c)]) + rule testop{nt : numtype, c_1 : num_(nt), testop : testop_(nt), c : num_(`I32`_numtype)}: + `%~>%`([`CONST`_instr(nt, c_1) `TESTOP`_instr(nt, testop)], [`CONST`_instr(`I32`_numtype, c)]) -- if (c = $testop_(nt, testop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule relop{numtype#593 : numtype, nt : numtype, c_1 : num_(nt), numtype#595 : numtype, c_2 : num_(nt), numtype#597 : numtype, relop : relop_(nt), numtype#599 : numtype, c : num_(`I32`_numtype)}: - `%~>%`([`CONST`_instr{numtype#593}(nt, c_1) `CONST`_instr{numtype#595}(nt, c_2) `RELOP`_instr{numtype#597}(nt, relop)], [`CONST`_instr{numtype#599}(`I32`_numtype, c)]) + rule relop{nt : numtype, c_1 : num_(nt), c_2 : num_(nt), relop : relop_(nt), c : num_(`I32`_numtype)}: + `%~>%`([`CONST`_instr(nt, c_1) `CONST`_instr(nt, c_2) `RELOP`_instr(nt, relop)], [`CONST`_instr(`I32`_numtype, c)]) -- if (c = $relop_(nt, relop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `cvtop-val`{numtype#601 : numtype, nt_1 : numtype, c_1 : num_(nt_1), numtype_1#5 : numtype, numtype_2#5 : numtype, nt_2 : numtype, cvtop : cvtop__(nt_1, nt_2), numtype#603 : numtype, c : num_(nt_2)}: - `%~>%`([`CONST`_instr{numtype#601}(nt_1, c_1) `CVTOP`_instr{numtype_1#5, numtype_2#5}(nt_2, nt_1, cvtop)], [`CONST`_instr{numtype#603}(nt_2, c)]) + rule `cvtop-val`{nt_1 : numtype, c_1 : num_(nt_1), nt_2 : numtype, cvtop : cvtop__(nt_1, nt_2), c : num_(nt_2)}: + `%~>%`([`CONST`_instr(nt_1, c_1) `CVTOP`_instr(nt_2, nt_1, cvtop)], [`CONST`_instr(nt_2, c)]) -- if (c <- $cvtop__(nt_1, nt_2, cvtop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `cvtop-trap`{numtype#605 : numtype, nt_1 : numtype, c_1 : num_(nt_1), numtype_1#7 : numtype, numtype_2#7 : numtype, nt_2 : numtype, cvtop : cvtop__(nt_1, nt_2)}: - `%~>%`([`CONST`_instr{numtype#605}(nt_1, c_1) `CVTOP`_instr{numtype_1#7, numtype_2#7}(nt_2, nt_1, cvtop)], [`TRAP`_instr]) + rule `cvtop-trap`{nt_1 : numtype, c_1 : num_(nt_1), nt_2 : numtype, cvtop : cvtop__(nt_1, nt_2)}: + `%~>%`([`CONST`_instr(nt_1, c_1) `CVTOP`_instr(nt_2, nt_1, cvtop)], [`TRAP`_instr]) -- if ($cvtop__(nt_1, nt_2, cvtop, c_1) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vvunop{vectype#104 : vectype, c_1 : vec_(`V128`_Vnn), vectype#106 : vectype, vvunop#5 : vvunop, vvunop : vvunop, vectype#108 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#104}(`V128`_vectype, c_1) `VVUNOP`_instr{vectype#106, vvunop#5}(`V128`_vectype, vvunop)], [`VCONST`_instr{vectype#108}(`V128`_vectype, c)]) + rule vvunop{c_1 : vec_(`V128`_Vnn), vvunop : vvunop, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VVUNOP`_instr(`V128`_vectype, vvunop)], [`VCONST`_instr(`V128`_vectype, c)]) -- if (c <- $vvunop_(`V128`_vectype, vvunop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vvbinop{vectype#110 : vectype, c_1 : vec_(`V128`_Vnn), vectype#112 : vectype, c_2 : vec_(`V128`_Vnn), vectype#114 : vectype, vvbinop#5 : vvbinop, vvbinop : vvbinop, vectype#116 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#110}(`V128`_vectype, c_1) `VCONST`_instr{vectype#112}(`V128`_vectype, c_2) `VVBINOP`_instr{vectype#114, vvbinop#5}(`V128`_vectype, vvbinop)], [`VCONST`_instr{vectype#116}(`V128`_vectype, c)]) + rule vvbinop{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), vvbinop : vvbinop, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VVBINOP`_instr(`V128`_vectype, vvbinop)], [`VCONST`_instr(`V128`_vectype, c)]) -- if (c <- $vvbinop_(`V128`_vectype, vvbinop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vvternop{vectype#118 : vectype, c_1 : vec_(`V128`_Vnn), vectype#120 : vectype, c_2 : vec_(`V128`_Vnn), vectype#122 : vectype, c_3 : vec_(`V128`_Vnn), vectype#124 : vectype, vvternop#5 : vvternop, vvternop : vvternop, vectype#126 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#118}(`V128`_vectype, c_1) `VCONST`_instr{vectype#120}(`V128`_vectype, c_2) `VCONST`_instr{vectype#122}(`V128`_vectype, c_3) `VVTERNOP`_instr{vectype#124, vvternop#5}(`V128`_vectype, vvternop)], [`VCONST`_instr{vectype#126}(`V128`_vectype, c)]) + rule vvternop{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), vvternop : vvternop, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VVTERNOP`_instr(`V128`_vectype, vvternop)], [`VCONST`_instr(`V128`_vectype, c)]) -- if (c <- $vvternop_(`V128`_vectype, vvternop, c_1, c_2, c_3)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vvtestop{vectype#128 : vectype, c_1 : vec_(`V128`_Vnn), vectype#130 : vectype, vvtestop#5 : vvtestop, numtype#607 : numtype, c : num_(`I32`_numtype)}: - `%~>%`([`VCONST`_instr{vectype#128}(`V128`_vectype, c_1) `VVTESTOP`_instr{vectype#130, vvtestop#5}(`V128`_vectype, `ANY_TRUE`_vvtestop)], [`CONST`_instr{numtype#607}(`I32`_numtype, c)]) + rule vvtestop{c_1 : vec_(`V128`_Vnn), c : num_(`I32`_numtype)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop)], [`CONST`_instr(`I32`_numtype, c)]) -- if (c = $inez_($vsize(`V128`_vectype), c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vunop-val`{vectype#132 : vectype, c_1 : vec_(`V128`_Vnn), shape#681 : shape, sh : shape, vunop : vunop_(sh), vectype#134 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#132}(`V128`_vectype, c_1) `VUNOP`_instr{shape#681}(sh, vunop)], [`VCONST`_instr{vectype#134}(`V128`_vectype, c)]) + rule `vunop-val`{c_1 : vec_(`V128`_Vnn), sh : shape, vunop : vunop_(sh), c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VUNOP`_instr(sh, vunop)], [`VCONST`_instr(`V128`_vectype, c)]) -- if (c <- $vunop_(sh, vunop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vunop-trap`{vectype#136 : vectype, c_1 : vec_(`V128`_Vnn), shape#683 : shape, sh : shape, vunop : vunop_(sh)}: - `%~>%`([`VCONST`_instr{vectype#136}(`V128`_vectype, c_1) `VUNOP`_instr{shape#683}(sh, vunop)], [`TRAP`_instr]) + rule `vunop-trap`{c_1 : vec_(`V128`_Vnn), sh : shape, vunop : vunop_(sh)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VUNOP`_instr(sh, vunop)], [`TRAP`_instr]) -- if ($vunop_(sh, vunop, c_1) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vbinop-val`{vectype#138 : vectype, c_1 : vec_(`V128`_Vnn), vectype#140 : vectype, c_2 : vec_(`V128`_Vnn), shape#685 : shape, sh : shape, vbinop : vbinop_(sh), vectype#142 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#138}(`V128`_vectype, c_1) `VCONST`_instr{vectype#140}(`V128`_vectype, c_2) `VBINOP`_instr{shape#685}(sh, vbinop)], [`VCONST`_instr{vectype#142}(`V128`_vectype, c)]) + rule `vbinop-val`{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh : shape, vbinop : vbinop_(sh), c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VBINOP`_instr(sh, vbinop)], [`VCONST`_instr(`V128`_vectype, c)]) -- if (c <- $vbinop_(sh, vbinop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vbinop-trap`{vectype#144 : vectype, c_1 : vec_(`V128`_Vnn), vectype#146 : vectype, c_2 : vec_(`V128`_Vnn), shape#687 : shape, sh : shape, vbinop : vbinop_(sh)}: - `%~>%`([`VCONST`_instr{vectype#144}(`V128`_vectype, c_1) `VCONST`_instr{vectype#146}(`V128`_vectype, c_2) `VBINOP`_instr{shape#687}(sh, vbinop)], [`TRAP`_instr]) + rule `vbinop-trap`{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh : shape, vbinop : vbinop_(sh)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VBINOP`_instr(sh, vbinop)], [`TRAP`_instr]) -- if ($vbinop_(sh, vbinop, c_1, c_2) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vternop-val`{vectype#148 : vectype, c_1 : vec_(`V128`_Vnn), vectype#150 : vectype, c_2 : vec_(`V128`_Vnn), vectype#152 : vectype, c_3 : vec_(`V128`_Vnn), shape#689 : shape, sh : shape, vternop : vternop_(sh), vectype#154 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#148}(`V128`_vectype, c_1) `VCONST`_instr{vectype#150}(`V128`_vectype, c_2) `VCONST`_instr{vectype#152}(`V128`_vectype, c_3) `VTERNOP`_instr{shape#689}(sh, vternop)], [`VCONST`_instr{vectype#154}(`V128`_vectype, c)]) + rule `vternop-val`{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), sh : shape, vternop : vternop_(sh), c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VTERNOP`_instr(sh, vternop)], [`VCONST`_instr(`V128`_vectype, c)]) -- if (c <- $vternop_(sh, vternop, c_1, c_2, c_3)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vternop-trap`{vectype#156 : vectype, c_1 : vec_(`V128`_Vnn), vectype#158 : vectype, c_2 : vec_(`V128`_Vnn), vectype#160 : vectype, c_3 : vec_(`V128`_Vnn), shape#691 : shape, sh : shape, vternop : vternop_(sh)}: - `%~>%`([`VCONST`_instr{vectype#156}(`V128`_vectype, c_1) `VCONST`_instr{vectype#158}(`V128`_vectype, c_2) `VCONST`_instr{vectype#160}(`V128`_vectype, c_3) `VTERNOP`_instr{shape#691}(sh, vternop)], [`TRAP`_instr]) + rule `vternop-trap`{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), sh : shape, vternop : vternop_(sh)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VTERNOP`_instr(sh, vternop)], [`TRAP`_instr]) -- if ($vternop_(sh, vternop, c_1, c_2, c_3) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vtestop{vectype#162 : vectype, c_1 : vec_(`V128`_Vnn), shape#693 : shape, lanetype#7525 : lanetype, dim#7525 : dim, i#45296 : nat, Jnn : Jnn, i#45303 : nat, M : M, numtype#609 : numtype, c : num_(`I32`_numtype), lanetype#7537 : lanetype, dim#7537 : dim, i#45322 : nat, i#45329 : nat, i#45438 : nat, `i#45428*` : nat*, `i*` : lane_($lanetype(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))))*}: - `%~>%`([`VCONST`_instr{vectype#162}(`V128`_vectype, c_1) `VTESTOP`_instr{shape#693}(`%X%`_shape{lanetype#7525, dim#7525, i#45296}((Jnn : Jnn <: lanetype), `%`_dim{i#45303}(M)), `ALL_TRUE`_vtestop_)], [`CONST`_instr{numtype#609}(`I32`_numtype, c)]) - -- if (i*{i <- `i*`} = $lanes_(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M)), c_1)) - -- if (c!`%`_num_{i#45438}.0 = $prod($inez_($jsizenn(Jnn), i)!`%`_u32{i#45428}.0*{i <- `i*`, i#45428 <- `i#45428*`})) + rule vtestop{c_1 : vec_(`V128`_Vnn), Jnn : Jnn, M : M, c : num_(`I32`_numtype), `i*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VTESTOP`_instr(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ALL_TRUE`_vtestop_)], [`CONST`_instr(`I32`_numtype, c)]) + -- if (i*{i <- `i*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)) + -- if (c!`%`_num_.0 = $prod($inez_($jsizenn(Jnn), i)!`%`_u32.0*{i <- `i*`})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vrelop{vectype#164 : vectype, c_1 : vec_(`V128`_Vnn), vectype#166 : vectype, c_2 : vec_(`V128`_Vnn), shape#695 : shape, sh : shape, vrelop : vrelop_(sh), vectype#168 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#164}(`V128`_vectype, c_1) `VCONST`_instr{vectype#166}(`V128`_vectype, c_2) `VRELOP`_instr{shape#695}(sh, vrelop)], [`VCONST`_instr{vectype#168}(`V128`_vectype, c)]) + rule vrelop{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh : shape, vrelop : vrelop_(sh), c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VRELOP`_instr(sh, vrelop)], [`VCONST`_instr(`V128`_vectype, c)]) -- if (c = $vrelop_(sh, vrelop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vshiftop{vectype#170 : vectype, c_1 : vec_(`V128`_Vnn), numtype#611 : numtype, i : num_(`I32`_numtype), ishape#9 : ishape, sh : ishape, vshiftop : vshiftop_(sh), vectype#172 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#170}(`V128`_vectype, c_1) `CONST`_instr{numtype#611}(`I32`_numtype, i) `VSHIFTOP`_instr{ishape#9}(sh, vshiftop)], [`VCONST`_instr{vectype#172}(`V128`_vectype, c)]) + rule vshiftop{c_1 : vec_(`V128`_Vnn), i : num_(`I32`_numtype), sh : ishape, vshiftop : vshiftop_(sh), c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `CONST`_instr(`I32`_numtype, i) `VSHIFTOP`_instr(sh, vshiftop)], [`VCONST`_instr(`V128`_vectype, c)]) -- if (c = $vshiftop_(sh, vshiftop, c_1, i)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vbitmask{vectype#174 : vectype, c_1 : vec_(`V128`_Vnn), ishape#11 : ishape, sh : ishape, numtype#613 : numtype, c : num_(`I32`_numtype)}: - `%~>%`([`VCONST`_instr{vectype#174}(`V128`_vectype, c_1) `VBITMASK`_instr{ishape#11}(sh)], [`CONST`_instr{numtype#613}(`I32`_numtype, c)]) + rule vbitmask{c_1 : vec_(`V128`_Vnn), sh : ishape, c : num_(`I32`_numtype)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VBITMASK`_instr(sh)], [`CONST`_instr(`I32`_numtype, c)]) -- if (c = $vbitmaskop_(sh, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vswizzlop{vectype#176 : vectype, c_1 : vec_(`V128`_Vnn), vectype#178 : vectype, c_2 : vec_(`V128`_Vnn), bshape#9 : bshape, sh : bshape, swizzlop : vswizzlop_(sh), vectype#180 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#176}(`V128`_vectype, c_1) `VCONST`_instr{vectype#178}(`V128`_vectype, c_2) `VSWIZZLOP`_instr{bshape#9}(sh, swizzlop)], [`VCONST`_instr{vectype#180}(`V128`_vectype, c)]) + rule vswizzlop{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh : bshape, swizzlop : vswizzlop_(sh), c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VSWIZZLOP`_instr(sh, swizzlop)], [`VCONST`_instr(`V128`_vectype, c)]) -- if (c = $vswizzlop_(sh, swizzlop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vshuffle{vectype#182 : vectype, c_1 : vec_(`V128`_Vnn), vectype#184 : vectype, c_2 : vec_(`V128`_Vnn), bshape#11 : bshape, `laneidx*#5` : laneidx*, i#45740 : nat, shape#733 : shape, sh : bshape, `i*` : laneidx*, vectype#186 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#182}(`V128`_vectype, c_1) `VCONST`_instr{vectype#184}(`V128`_vectype, c_2) `VSHUFFLE`_instr{bshape#11, `laneidx*#5`, i#45740, shape#733}(sh, i*{i <- `i*`})], [`VCONST`_instr{vectype#186}(`V128`_vectype, c)]) + rule vshuffle{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh : bshape, `i*` : laneidx*, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VSHUFFLE`_instr(sh, i*{i <- `i*`})], [`VCONST`_instr(`V128`_vectype, c)]) -- if (c = $vshufflop_(sh, i*{i <- `i*`}, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vsplat{numtype#615 : numtype, Lnn : Lnn, c_1 : num_($lunpack(Lnn)), shape#746 : shape, lanetype#7575 : lanetype, dim#7575 : dim, i#45836 : nat, i#45843 : nat, M : M, vectype#188 : vectype, c : vec_(`V128`_Vnn), lanetype#7587 : lanetype, dim#7587 : dim, i#45862 : nat, i#45869 : nat}: - `%~>%`([`CONST`_instr{numtype#615}($lunpack(Lnn), c_1) `VSPLAT`_instr{shape#746}(`%X%`_shape{lanetype#7575, dim#7575, i#45836}(Lnn, `%`_dim{i#45843}(M)))], [`VCONST`_instr{vectype#188}(`V128`_vectype, c)]) - -- if (c = $inv_lanes_(`%X%`_shape{lanetype#7587, dim#7587, i#45862}(Lnn, `%`_dim{i#45869}(M)), $lpacknum_(Lnn, c_1)^M{})) + rule vsplat{Lnn : Lnn, c_1 : num_($lunpack(Lnn)), M : M, c : vec_(`V128`_Vnn)}: + `%~>%`([`CONST`_instr($lunpack(Lnn), c_1) `VSPLAT`_instr(`%X%`_shape(Lnn, `%`_dim(M)))], [`VCONST`_instr(`V128`_vectype, c)]) + -- if (c = $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lpacknum_(Lnn, c_1)^M{})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vextract_lane-num`{vectype#190 : vectype, c_1 : vec_(`V128`_Vnn), shape#748 : shape, `sx?#27` : sx?, laneidx#25 : laneidx, lanetype#7610 : lanetype, dim#7610 : dim, i#45931 : nat, nt : numtype, i#45938 : nat, M : M, i : laneidx, numtype#617 : numtype, c_2 : num_(nt), lanetype#7622 : lanetype, dim#7622 : dim, i#45957 : nat, i#45964 : nat, i#45984 : nat}: - `%~>%`([`VCONST`_instr{vectype#190}(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr{shape#748, `sx?#27`, laneidx#25}(`%X%`_shape{lanetype#7610, dim#7610, i#45931}((nt : numtype <: lanetype), `%`_dim{i#45938}(M)), ?(), i)], [`CONST`_instr{numtype#617}(nt, c_2)]) - -- if (c_2 = $lanes_(`%X%`_shape{lanetype#7622, dim#7622, i#45957}((nt : numtype <: lanetype), `%`_dim{i#45964}(M)), c_1)[i!`%`_laneidx{i#45984}.0]) + rule `vextract_lane-num`{c_1 : vec_(`V128`_Vnn), nt : numtype, M : M, i : laneidx, c_2 : num_(nt)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), ?(), i)], [`CONST`_instr(nt, c_2)]) + -- if (c_2 = $lanes_(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vextract_lane-pack`{vectype#192 : vectype, c_1 : vec_(`V128`_Vnn), shape#750 : shape, `sx?#29` : sx?, laneidx#27 : laneidx, lanetype#7639 : lanetype, dim#7639 : dim, i#46018 : nat, pt : packtype, i#46025 : nat, M : M, sx : sx, i : laneidx, numtype#619 : numtype, c_2 : num_(`I32`_numtype), lanetype#7651 : lanetype, dim#7651 : dim, i#46122 : nat, i#46129 : nat, i#46149 : nat}: - `%~>%`([`VCONST`_instr{vectype#192}(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr{shape#750, `sx?#29`, laneidx#27}(`%X%`_shape{lanetype#7639, dim#7639, i#46018}((pt : packtype <: lanetype), `%`_dim{i#46025}(M)), ?(sx), i)], [`CONST`_instr{numtype#619}(`I32`_numtype, c_2)]) - -- if (c_2 = $extend__($psize(pt), 32, sx, $lanes_(`%X%`_shape{lanetype#7651, dim#7651, i#46122}((pt : packtype <: lanetype), `%`_dim{i#46129}(M)), c_1)[i!`%`_laneidx{i#46149}.0])) + rule `vextract_lane-pack`{c_1 : vec_(`V128`_Vnn), pt : packtype, M : M, sx : sx, i : laneidx, c_2 : num_(`I32`_numtype)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), ?(sx), i)], [`CONST`_instr(`I32`_numtype, c_2)]) + -- if (c_2 = $extend__($psize(pt), 32, sx, $lanes_(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vreplace_lane{vectype#194 : vectype, c_1 : vec_(`V128`_Vnn), numtype#621 : numtype, Lnn : Lnn, c_2 : num_($lunpack(Lnn)), shape#752 : shape, laneidx#29 : laneidx, lanetype#7664 : lanetype, dim#7664 : dim, i#46185 : nat, i#46192 : nat, M : M, i : laneidx, vectype#196 : vectype, c : vec_(`V128`_Vnn), lanetype#7676 : lanetype, dim#7676 : dim, i#46225 : nat, i#46232 : nat, lanetype#7730 : lanetype, dim#7730 : dim, i#46335 : nat, i#46342 : nat, i#46368 : nat}: - `%~>%`([`VCONST`_instr{vectype#194}(`V128`_vectype, c_1) `CONST`_instr{numtype#621}($lunpack(Lnn), c_2) `VREPLACE_LANE`_instr{shape#752, laneidx#29}(`%X%`_shape{lanetype#7664, dim#7664, i#46185}(Lnn, `%`_dim{i#46192}(M)), i)], [`VCONST`_instr{vectype#196}(`V128`_vectype, c)]) - -- if (c = $inv_lanes_(`%X%`_shape{lanetype#7676, dim#7676, i#46225}(Lnn, `%`_dim{i#46232}(M)), $lanes_(`%X%`_shape{lanetype#7730, dim#7730, i#46335}(Lnn, `%`_dim{i#46342}(M)), c_1)[[i!`%`_laneidx{i#46368}.0] = $lpacknum_(Lnn, c_2)])) + rule vreplace_lane{c_1 : vec_(`V128`_Vnn), Lnn : Lnn, c_2 : num_($lunpack(Lnn)), M : M, i : laneidx, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `CONST`_instr($lunpack(Lnn), c_2) `VREPLACE_LANE`_instr(`%X%`_shape(Lnn, `%`_dim(M)), i)], [`VCONST`_instr(`V128`_vectype, c)]) + -- if (c = $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lanes_(`%X%`_shape(Lnn, `%`_dim(M)), c_1)[[i!`%`_laneidx.0] = $lpacknum_(Lnn, c_2)])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vextunop{vectype#198 : vectype, c_1 : vec_(`V128`_Vnn), ishape_1#17 : ishape, ishape_2#17 : ishape, sh_2 : ishape, sh_1 : ishape, vextunop : vextunop__(sh_1, sh_2), vectype#200 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#198}(`V128`_vectype, c_1) `VEXTUNOP`_instr{ishape_1#17, ishape_2#17}(sh_2, sh_1, vextunop)], [`VCONST`_instr{vectype#200}(`V128`_vectype, c)]) + rule vextunop{c_1 : vec_(`V128`_Vnn), sh_2 : ishape, sh_1 : ishape, vextunop : vextunop__(sh_1, sh_2), c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VEXTUNOP`_instr(sh_2, sh_1, vextunop)], [`VCONST`_instr(`V128`_vectype, c)]) -- if ($vextunop__(sh_1, sh_2, vextunop, c_1) = c) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vextbinop{vectype#202 : vectype, c_1 : vec_(`V128`_Vnn), vectype#204 : vectype, c_2 : vec_(`V128`_Vnn), ishape_1#19 : ishape, ishape_2#19 : ishape, sh_2 : ishape, sh_1 : ishape, vextbinop : vextbinop__(sh_1, sh_2), vectype#206 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#202}(`V128`_vectype, c_1) `VCONST`_instr{vectype#204}(`V128`_vectype, c_2) `VEXTBINOP`_instr{ishape_1#19, ishape_2#19}(sh_2, sh_1, vextbinop)], [`VCONST`_instr{vectype#206}(`V128`_vectype, c)]) + rule vextbinop{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh_2 : ishape, sh_1 : ishape, vextbinop : vextbinop__(sh_1, sh_2), c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VEXTBINOP`_instr(sh_2, sh_1, vextbinop)], [`VCONST`_instr(`V128`_vectype, c)]) -- if ($vextbinop__(sh_1, sh_2, vextbinop, c_1, c_2) = c) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vextternop{vectype#208 : vectype, c_1 : vec_(`V128`_Vnn), vectype#210 : vectype, c_2 : vec_(`V128`_Vnn), vectype#212 : vectype, c_3 : vec_(`V128`_Vnn), ishape_1#21 : ishape, ishape_2#21 : ishape, sh_2 : ishape, sh_1 : ishape, vextternop : vextternop__(sh_1, sh_2), vectype#214 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#208}(`V128`_vectype, c_1) `VCONST`_instr{vectype#210}(`V128`_vectype, c_2) `VCONST`_instr{vectype#212}(`V128`_vectype, c_3) `VEXTTERNOP`_instr{ishape_1#21, ishape_2#21}(sh_2, sh_1, vextternop)], [`VCONST`_instr{vectype#214}(`V128`_vectype, c)]) + rule vextternop{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), sh_2 : ishape, sh_1 : ishape, vextternop : vextternop__(sh_1, sh_2), c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VEXTTERNOP`_instr(sh_2, sh_1, vextternop)], [`VCONST`_instr(`V128`_vectype, c)]) -- if ($vextternop__(sh_1, sh_2, vextternop, c_1, c_2, c_3) = c) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vnarrow{vectype#216 : vectype, c_1 : vec_(`V128`_Vnn), vectype#218 : vectype, c_2 : vec_(`V128`_Vnn), ishape_1#23 : ishape, ishape_2#23 : ishape, sx#408 : sx, shape#826 : shape, Jnn#216 : Jnn, shape#827 : shape, Jnn#217 : Jnn, shape#828 : shape, Jnn#218 : Jnn, sh_2 : ishape, sh_1 : ishape, sx : sx, vectype#220 : vectype, c : vec_(`V128`_Vnn), shape#841 : shape, Jnn#223 : Jnn, shape#843 : shape, Jnn#224 : Jnn}: - `%~>%`([`VCONST`_instr{vectype#216}(`V128`_vectype, c_1) `VCONST`_instr{vectype#218}(`V128`_vectype, c_2) `VNARROW`_instr{ishape_1#23, ishape_2#23, sx#408, shape#826, Jnn#216, shape#827, Jnn#217, shape#828, Jnn#218}(sh_2, sh_1, sx)], [`VCONST`_instr{vectype#220}(`V128`_vectype, c)]) - -- if (c = $vnarrowop__(sh_1!`%`_ishape{shape#841, Jnn#223}.0, sh_2!`%`_ishape{shape#843, Jnn#224}.0, sx, c_1, c_2)) + rule vnarrow{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh_2 : ishape, sh_1 : ishape, sx : sx, c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VNARROW`_instr(sh_2, sh_1, sx)], [`VCONST`_instr(`V128`_vectype, c)]) + -- if (c = $vnarrowop__(sh_1!`%`_ishape.0, sh_2!`%`_ishape.0, sx, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vcvtop{vectype#222 : vectype, c_1 : vec_(`V128`_Vnn), shape_1#5 : shape, shape_2#5 : shape, sh_2 : shape, sh_1 : shape, vcvtop : vcvtop__(sh_1, sh_2), vectype#224 : vectype, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr{vectype#222}(`V128`_vectype, c_1) `VCVTOP`_instr{shape_1#5, shape_2#5}(sh_2, sh_1, vcvtop)], [`VCONST`_instr{vectype#224}(`V128`_vectype, c)]) + rule vcvtop{c_1 : vec_(`V128`_Vnn), sh_2 : shape, sh_1 : shape, vcvtop : vcvtop__(sh_1, sh_2), c : vec_(`V128`_Vnn)}: + `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCVTOP`_instr(sh_2, sh_1, vcvtop)], [`VCONST`_instr(`V128`_vectype, c)]) -- if (c = $vcvtop__(sh_1, sh_2, vcvtop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec def $blocktype_(state : state, blocktype : blocktype) : instrtype ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - def $blocktype_{z : state, typeidx#1551 : typeidx, x : idx, resulttype#2934 : resulttype, `localidx*#1757` : localidx*, `X*#12241` : valtype*, `t_1*` : valtype*, `X*#12292` : valtype*, `t_2*` : valtype*, resulttype#2914 : resulttype, `X*#12215` : valtype*, `X*#12228` : valtype*}(z, `_IDX`_blocktype{typeidx#1551}(x)) = `%->_%%`_instrtype{resulttype#2934, `localidx*#1757`}(`%`_resulttype{`X*#12241`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12292`}(t_2*{t_2 <- `t_2*`})) - -- Expand: `%~~%`($type(z, x), `FUNC%->%`_comptype{resulttype#2914}(`%`_resulttype{`X*#12215`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#12228`}(t_2*{t_2 <- `t_2*`}))) + def $blocktype_{z : state, x : idx, `t_1*` : valtype*, `t_2*` : valtype*}(z, `_IDX`_blocktype(x)) = `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})) + -- Expand: `%~~%`($type(z, x), `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - def $blocktype_{z : state, `valtype?#5` : valtype?, `t?` : valtype?, resulttype#2954 : resulttype, `localidx*#1769` : localidx*, `X*#12313` : valtype*, `X*#12362` : valtype*}(z, `_RESULT`_blocktype{`valtype?#5`}(t?{t <- `t?`})) = `%->_%%`_instrtype{resulttype#2954, `localidx*#1769`}(`%`_resulttype{`X*#12313`}([]), [], `%`_resulttype{`X*#12362`}(lift(t?{t <- `t?`}))) + def $blocktype_{z : state, `t?` : valtype?}(z, `_RESULT`_blocktype(t?{t <- `t?`})) = `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(t?{t <- `t?`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec relation Step_read: `%~>%`(config, instr*) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule block{state#311 : state, `instr*#337` : instr*, z : state, m : m, `val*` : val*, blocktype#15 : blocktype, `instr*#339` : instr*, bt : blocktype, `instr*` : instr*, n#1141 : n, `instr*#341` : instr*, n : n, resulttype#2974 : resulttype, `localidx*#1781` : localidx*, `X*#12373` : valtype*, `t_1*` : valtype*, `X*#12424` : valtype*, `t_2*` : valtype*}: - `%~>%`(`%;%`_config{state#311, `instr*#337`}(z, (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr{blocktype#15, `instr*#339`}(bt, instr*{instr <- `instr*`})]), [`LABEL_%{%}%`_instr{n#1141, `instr*#341`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]) - -- if ($blocktype_(z, bt) = `%->_%%`_instrtype{resulttype#2974, `localidx*#1781`}(`%`_resulttype{`X*#12373`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12424`}(t_2^n{t_2 <- `t_2*`}))) + rule block{z : state, m : m, `val*` : val*, bt : blocktype, `instr*` : instr*, n : n, `t_1*` : valtype*, `t_2*` : valtype*}: + `%~>%`(`%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr(bt, instr*{instr <- `instr*`})]), [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]) + -- if ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule loop{state#323 : state, `instr*#354` : instr*, z : state, m : m, `val*` : val*, blocktype#17 : blocktype, `instr*#356` : instr*, bt : blocktype, `instr*` : instr*, n#1143 : n, `instr*#358` : instr*, blocktype#19 : blocktype, `instr*#361` : instr*, resulttype#2994 : resulttype, `localidx*#1793` : localidx*, `X*#12435` : valtype*, `t_1*` : valtype*, `X*#12486` : valtype*, n : n, `t_2*` : valtype*}: - `%~>%`(`%;%`_config{state#323, `instr*#354`}(z, (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr{blocktype#17, `instr*#356`}(bt, instr*{instr <- `instr*`})]), [`LABEL_%{%}%`_instr{n#1143, `instr*#358`}(m, [`LOOP`_instr{blocktype#19, `instr*#361`}(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]) - -- if ($blocktype_(z, bt) = `%->_%%`_instrtype{resulttype#2994, `localidx*#1793`}(`%`_resulttype{`X*#12435`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12486`}(t_2^n{t_2 <- `t_2*`}))) + rule loop{z : state, m : m, `val*` : val*, bt : blocktype, `instr*` : instr*, `t_1*` : valtype*, n : n, `t_2*` : valtype*}: + `%~>%`(`%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr(bt, instr*{instr <- `instr*`})]), [`LABEL_%{%}%`_instr(m, [`LOOP`_instr(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]) + -- if ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_cast-succeed`{state#335 : state, `instr*#394` : instr*, store#815 : store, frame#819 : frame, s : store, f : frame, ref : ref, labelidx#73 : labelidx, reftype#3439 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype, labelidx#75 : labelidx, rt : reftype, `deftype*#86` : deftype*, `subtype*#21` : subtype*, `tagtype*#22` : tagtype*, `globaltype*#23` : globaltype*, `memtype*#37` : memtype*, `tabletype*#30` : tabletype*, `deftype*#87` : deftype*, `datatype*#22` : datatype*, `elemtype*#22` : elemtype*, `localtype*#25` : localtype*, `resulttype*#33` : resulttype*, `resulttype?#30` : resulttype?, `funcidx*#59` : funcidx*, moduleinst#19 : moduleinst}: - `%~>%`(`%;%`_config{state#335, `instr*#394`}(`%;%`_state{store#815, frame#819}(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#73, reftype#3439}(l, rt_1, rt_2)]), [(ref : ref <: instr) `BR`_instr{labelidx#75}(l)]) + rule `br_on_cast-succeed`{s : store, f : frame, ref : ref, l : labelidx, rt_1 : reftype, rt_2 : reftype, rt : reftype}: + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)]), [(ref : ref <: instr) `BR`_instr(l)]) -- Ref_ok: `%|-%:%`(s, ref, rt) - -- Reftype_sub: `%|-%<:%`({`TYPES`{`deftype*#86`} [], `RECS`{`subtype*#21`} [], `TAGS`{`tagtype*#22`} [], `GLOBALS`{`globaltype*#23`} [], `MEMS`{`memtype*#37`} [], `TABLES`{`tabletype*#30`} [], `FUNCS`{`deftype*#87`} [], `DATAS`{`datatype*#22`} [], `ELEMS`{`elemtype*#22`} [], `LOCALS`{`localtype*#25`} [], `LABELS`{`resulttype*#33`} [], `RETURN`{`resulttype?#30`} ?(), `REFS`{`funcidx*#59`} []}, rt, $inst_reftype(f.`MODULE`_frame{moduleinst#19}, rt_2)) + -- Reftype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt, $inst_reftype(f.`MODULE`_frame, rt_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_cast-fail`{state#347 : state, `instr*#406` : instr*, store#827 : store, frame#831 : frame, s : store, f : frame, ref : ref, labelidx#77 : labelidx, reftype#3442 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype}: - `%~>%`(`%;%`_config{state#347, `instr*#406`}(`%;%`_state{store#827, frame#831}(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr{labelidx#77, reftype#3442}(l, rt_1, rt_2)]), [(ref : ref <: instr)]) + rule `br_on_cast-fail`{s : store, f : frame, ref : ref, l : labelidx, rt_1 : reftype, rt_2 : reftype}: + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)]), [(ref : ref <: instr)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_cast_fail-succeed`{state#359 : state, `instr*#418` : instr*, store#839 : store, frame#843 : frame, s : store, f : frame, ref : ref, labelidx#79 : labelidx, reftype#3445 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype, rt : reftype, `deftype*#88` : deftype*, `subtype*#22` : subtype*, `tagtype*#23` : tagtype*, `globaltype*#24` : globaltype*, `memtype*#38` : memtype*, `tabletype*#31` : tabletype*, `deftype*#89` : deftype*, `datatype*#23` : datatype*, `elemtype*#23` : elemtype*, `localtype*#26` : localtype*, `resulttype*#34` : resulttype*, `resulttype?#31` : resulttype?, `funcidx*#60` : funcidx*, moduleinst#20 : moduleinst}: - `%~>%`(`%;%`_config{state#359, `instr*#418`}(`%;%`_state{store#839, frame#843}(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#79, reftype#3445}(l, rt_1, rt_2)]), [(ref : ref <: instr)]) + rule `br_on_cast_fail-succeed`{s : store, f : frame, ref : ref, l : labelidx, rt_1 : reftype, rt_2 : reftype, rt : reftype}: + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)]), [(ref : ref <: instr)]) -- Ref_ok: `%|-%:%`(s, ref, rt) - -- Reftype_sub: `%|-%<:%`({`TYPES`{`deftype*#88`} [], `RECS`{`subtype*#22`} [], `TAGS`{`tagtype*#23`} [], `GLOBALS`{`globaltype*#24`} [], `MEMS`{`memtype*#38`} [], `TABLES`{`tabletype*#31`} [], `FUNCS`{`deftype*#89`} [], `DATAS`{`datatype*#23`} [], `ELEMS`{`elemtype*#23`} [], `LOCALS`{`localtype*#26`} [], `LABELS`{`resulttype*#34`} [], `RETURN`{`resulttype?#31`} ?(), `REFS`{`funcidx*#60`} []}, rt, $inst_reftype(f.`MODULE`_frame{moduleinst#20}, rt_2)) + -- Reftype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt, $inst_reftype(f.`MODULE`_frame, rt_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_on_cast_fail-fail`{state#371 : state, `instr*#430` : instr*, store#851 : store, frame#855 : frame, s : store, f : frame, ref : ref, labelidx#81 : labelidx, reftype#3448 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype, labelidx#83 : labelidx}: - `%~>%`(`%;%`_config{state#371, `instr*#430`}(`%;%`_state{store#851, frame#855}(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr{labelidx#81, reftype#3448}(l, rt_1, rt_2)]), [(ref : ref <: instr) `BR`_instr{labelidx#83}(l)]) + rule `br_on_cast_fail-fail`{s : store, f : frame, ref : ref, l : labelidx, rt_1 : reftype, rt_2 : reftype}: + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)]), [(ref : ref <: instr) `BR`_instr(l)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule call{state#383 : state, `instr*#442` : instr*, z : state, funcidx#2837 : funcidx, x : idx, funcaddr#7 : funcaddr, a : addr, typeuse#35 : typeuse, deftype#5 : deftype, `funcaddr*#2` : funcaddr*, i#32425 : nat}: - `%~>%`(`%;%`_config{state#383, `instr*#442`}(z, [`CALL`_instr{funcidx#2837}(x)]), [`REF.FUNC_ADDR`_instr{funcaddr#7}(a) `CALL_REF`_instr{typeuse#35}(($funcinst(z)[a].`TYPE`_funcinst{deftype#5} : deftype <: typeuse))]) - -- if ($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#2`}[x!`%`_idx{i#32425}.0] = a) + rule call{z : state, x : idx, a : addr}: + `%~>%`(`%;%`_config(z, [`CALL`_instr(x)]), [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))]) + -- if ($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0] = a) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `call_ref-null`{state#395 : state, `instr*#454` : instr*, z : state, heaptype#1307 : heaptype, ht : heaptype, typeuse#37 : typeuse, yy : typeuse}: - `%~>%`(`%;%`_config{state#395, `instr*#454`}(z, [`REF.NULL`_instr{heaptype#1307}(ht) `CALL_REF`_instr{typeuse#37}(yy)]), [`TRAP`_instr]) + rule `call_ref-null`{z : state, ht : heaptype, yy : typeuse}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `CALL_REF`_instr(yy)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `call_ref-func`{state#407 : state, `instr*#466` : instr*, z : state, n : n, `val*` : val*, funcaddr#9 : funcaddr, a : addr, typeuse#39 : typeuse, yy : typeuse, n#1153 : n, frame#887 : frame, `instr*#468` : instr*, m : m, f : frame, n#1155 : n, `instr*#470` : instr*, `instr*` : instr*, fi : funcinst, deftype#6 : deftype, resulttype#2997 : resulttype, `X*#12499` : valtype*, `t_1*` : valtype*, `X*#12512` : valtype*, `t_2*` : valtype*, funccode#1 : funccode, typeidx#1553 : typeidx, `local*#1221` : local*, expr#4155 : expr, x : idx, `t*` : valtype*, `valtype#755*` : valtype*, `val?*#4` : val?*, moduleinst#22 : moduleinst, moduleinst#21 : moduleinst}: - `%~>%`(`%;%`_config{state#407, `instr*#466`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#9}(a) `CALL_REF`_instr{typeuse#39}(yy)]), [`FRAME_%{%}%`_instr{n#1153, frame#887, `instr*#468`}(m, f, [`LABEL_%{%}%`_instr{n#1155, `instr*#470`}(m, [], instr*{instr <- `instr*`})])]) + rule `call_ref-func`{z : state, n : n, `val*` : val*, a : addr, yy : typeuse, m : m, f : frame, `instr*` : instr*, fi : funcinst, `t_1*` : valtype*, `t_2*` : valtype*, x : idx, `t*` : valtype*}: + `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)]), [`FRAME_%{%}%`_instr(m, f, [`LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})])]) -- if ($funcinst(z)[a] = fi) - -- Expand: `%~~%`(fi.`TYPE`_funcinst{deftype#6}, `FUNC%->%`_comptype{resulttype#2997}(`%`_resulttype{`X*#12499`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12512`}(t_2^m{t_2 <- `t_2*`}))) - -- if (fi.`CODE`_funcinst{funccode#1} = `FUNC`_funccode{typeidx#1553, `local*#1221`, expr#4155}(x, `LOCAL`_local{valtype#755}(t)*{t <- `t*`, valtype#755 <- `valtype#755*`}, instr*{instr <- `instr*`})) - -- if (f = {`LOCALS`{`val?*#4`} ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, `MODULE`{moduleinst#22} fi.`MODULE`_funcinst{moduleinst#21}}) + -- Expand: `%~~%`(fi.`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))) + -- if (fi.`CODE`_funcinst = `FUNC`_funccode(x, `LOCAL`_local(t)*{t <- `t*`}, instr*{instr <- `instr*`})) + -- if (f = {`LOCALS` ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, `MODULE` fi.`MODULE`_funcinst}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule return_call{state#419 : state, `instr*#483` : instr*, z : state, funcidx#2839 : funcidx, x : idx, funcaddr#11 : funcaddr, a : addr, typeuse#41 : typeuse, deftype#7 : deftype, `funcaddr*#3` : funcaddr*, i#32463 : nat}: - `%~>%`(`%;%`_config{state#419, `instr*#483`}(z, [`RETURN_CALL`_instr{funcidx#2839}(x)]), [`REF.FUNC_ADDR`_instr{funcaddr#11}(a) `RETURN_CALL_REF`_instr{typeuse#41}(($funcinst(z)[a].`TYPE`_funcinst{deftype#7} : deftype <: typeuse))]) - -- if ($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#3`}[x!`%`_idx{i#32463}.0] = a) + rule return_call{z : state, x : idx, a : addr}: + `%~>%`(`%;%`_config(z, [`RETURN_CALL`_instr(x)]), [`REF.FUNC_ADDR`_instr(a) `RETURN_CALL_REF`_instr(($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))]) + -- if ($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0] = a) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return_call_ref-label`{state#431 : state, `instr*#495` : instr*, z : state, n#1163 : n, `instr*#497` : instr*, k : n, `instr'*` : instr*, `val*` : val*, typeuse#43 : typeuse, yy : typeuse, `instr*` : instr*, typeuse#45 : typeuse}: - `%~>%`(`%;%`_config{state#431, `instr*#495`}(z, [`LABEL_%{%}%`_instr{n#1163, `instr*#497`}(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#43}(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#45}(yy)]) + rule `return_call_ref-label`{z : state, k : n, `instr'*` : instr*, `val*` : val*, yy : typeuse, `instr*` : instr*}: + `%~>%`(`%;%`_config(z, [`LABEL_%{%}%`_instr(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return_call_ref-handler`{state#443 : state, `instr*#510` : instr*, z : state, n#1165 : n, `catch*#3` : catch*, `instr*#512` : instr*, k : n, `catch*` : catch*, `val*` : val*, typeuse#47 : typeuse, yy : typeuse, `instr*` : instr*, typeuse#49 : typeuse}: - `%~>%`(`%;%`_config{state#443, `instr*#510`}(z, [`HANDLER_%{%}%`_instr{n#1165, `catch*#3`, `instr*#512`}(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#47}(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr{typeuse#49}(yy)]) + rule `return_call_ref-handler`{z : state, k : n, `catch*` : catch*, `val*` : val*, yy : typeuse, `instr*` : instr*}: + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return_call_ref-frame-null`{state#455 : state, `instr*#524` : instr*, z : state, n#1167 : n, frame#931 : frame, `instr*#526` : instr*, k : n, f : frame, `val*` : val*, heaptype#1309 : heaptype, ht : heaptype, typeuse#51 : typeuse, yy : typeuse, `instr*` : instr*}: - `%~>%`(`%;%`_config{state#455, `instr*#524`}(z, [`FRAME_%{%}%`_instr{n#1167, frame#931, `instr*#526`}(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr{heaptype#1309}(ht)] ++ [`RETURN_CALL_REF`_instr{typeuse#51}(yy)] ++ instr*{instr <- `instr*`})]), [`TRAP`_instr]) + rule `return_call_ref-frame-null`{z : state, k : n, f : frame, `val*` : val*, ht : heaptype, yy : typeuse, `instr*` : instr*}: + `%~>%`(`%;%`_config(z, [`FRAME_%{%}%`_instr(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `return_call_ref-frame-addr`{state#467 : state, `instr*#538` : instr*, z : state, n#1169 : n, frame#939 : frame, `instr*#540` : instr*, k : n, f : frame, `val'*` : val*, n : n, `val*` : val*, funcaddr#13 : funcaddr, a : addr, typeuse#53 : typeuse, yy : typeuse, `instr*` : instr*, funcaddr#15 : funcaddr, typeuse#55 : typeuse, deftype#8 : deftype, resulttype#3000 : resulttype, `X*#12527` : valtype*, `t_1*` : valtype*, `X*#12540` : valtype*, m : m, `t_2*` : valtype*}: - `%~>%`(`%;%`_config{state#467, `instr*#538`}(z, [`FRAME_%{%}%`_instr{n#1169, frame#939, `instr*#540`}(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#13}(a)] ++ [`RETURN_CALL_REF`_instr{typeuse#53}(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#15}(a) `CALL_REF`_instr{typeuse#55}(yy)]) - -- Expand: `%~~%`($funcinst(z)[a].`TYPE`_funcinst{deftype#8}, `FUNC%->%`_comptype{resulttype#3000}(`%`_resulttype{`X*#12527`}(t_1^n{t_1 <- `t_1*`}), `%`_resulttype{`X*#12540`}(t_2^m{t_2 <- `t_2*`}))) + rule `return_call_ref-frame-addr`{z : state, k : n, f : frame, `val'*` : val*, n : n, `val*` : val*, a : addr, yy : typeuse, `instr*` : instr*, `t_1*` : valtype*, m : m, `t_2*` : valtype*}: + `%~>%`(`%;%`_config(z, [`FRAME_%{%}%`_instr(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)]) + -- Expand: `%~~%`($funcinst(z)[a].`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-null`{state#503 : state, `instr*#585` : instr*, z : state, heaptype#1335 : heaptype, ht : heaptype}: - `%~>%`(`%;%`_config{state#503, `instr*#585`}(z, [`REF.NULL`_instr{heaptype#1335}(ht) `THROW_REF`_instr]), [`TRAP`_instr]) + rule `throw_ref-null`{z : state, ht : heaptype}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `THROW_REF`_instr]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-instrs`{state#515 : state, `instr*#597` : instr*, z : state, `val*` : val*, exnaddr#5 : exnaddr, a : addr, `instr*` : instr*, exnaddr#7 : exnaddr}: - `%~>%`(`%;%`_config{state#515, `instr*#597`}(z, (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr{exnaddr#5}(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}), [`REF.EXN_ADDR`_instr{exnaddr#7}(a) `THROW_REF`_instr]) + rule `throw_ref-instrs`{z : state, `val*` : val*, a : addr, `instr*` : instr*}: + `%~>%`(`%;%`_config(z, (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]) -- if ((val*{val <- `val*`} =/= []) \/ (instr*{instr <- `instr*`} =/= [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-label`{state#527 : state, `instr*#609` : instr*, z : state, n#1191 : n, `instr*#611` : instr*, n : n, `instr'*` : instr*, exnaddr#9 : exnaddr, a : addr, exnaddr#11 : exnaddr}: - `%~>%`(`%;%`_config{state#527, `instr*#609`}(z, [`LABEL_%{%}%`_instr{n#1191, `instr*#611`}(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr{exnaddr#9}(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr{exnaddr#11}(a) `THROW_REF`_instr]) + rule `throw_ref-label`{z : state, n : n, `instr'*` : instr*, a : addr}: + `%~>%`(`%;%`_config(z, [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-frame`{state#539 : state, `instr*#624` : instr*, z : state, n#1193 : n, frame#1011 : frame, `instr*#626` : instr*, n : n, f : frame, exnaddr#13 : exnaddr, a : addr, exnaddr#15 : exnaddr}: - `%~>%`(`%;%`_config{state#539, `instr*#624`}(z, [`FRAME_%{%}%`_instr{n#1193, frame#1011, `instr*#626`}(n, f, [`REF.EXN_ADDR`_instr{exnaddr#13}(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr{exnaddr#15}(a) `THROW_REF`_instr]) + rule `throw_ref-frame`{z : state, n : n, f : frame, a : addr}: + `%~>%`(`%;%`_config(z, [`FRAME_%{%}%`_instr(n, f, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-handler-empty`{state#551 : state, `instr*#638` : instr*, z : state, n#1195 : n, `catch*#7` : catch*, `instr*#640` : instr*, n : n, exnaddr#17 : exnaddr, a : addr, exnaddr#19 : exnaddr}: - `%~>%`(`%;%`_config{state#551, `instr*#638`}(z, [`HANDLER_%{%}%`_instr{n#1195, `catch*#7`, `instr*#640`}(n, [], [`REF.EXN_ADDR`_instr{exnaddr#17}(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr{exnaddr#19}(a) `THROW_REF`_instr]) + rule `throw_ref-handler-empty`{z : state, n : n, a : addr}: + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [], [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-handler-catch`{state#563 : state, `instr*#652` : instr*, z : state, n#1197 : n, `catch*#9` : catch*, `instr*#654` : instr*, n : n, tagidx#13 : tagidx, labelidx#85 : labelidx, x : idx, l : labelidx, `catch'*` : catch*, exnaddr#21 : exnaddr, a : addr, `val*` : val*, labelidx#87 : labelidx, tagaddr#6 : tagaddr, i#32603 : nat, `val*#2` : val*}: - `%~>%`(`%;%`_config{state#563, `instr*#652`}(z, [`HANDLER_%{%}%`_instr{n#1197, `catch*#9`, `instr*#654`}(n, [`CATCH`_catch{tagidx#13, labelidx#85}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#21}(a) `THROW_REF`_instr])]), (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr{labelidx#87}(l)]) - -- if ($exninst(z)[a].`TAG`_exninst{tagaddr#6} = $tagaddr(z)[x!`%`_idx{i#32603}.0]) - -- if (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst{`val*#2`}) + rule `throw_ref-handler-catch`{z : state, n : n, x : idx, l : labelidx, `catch'*` : catch*, a : addr, `val*` : val*}: + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)]) + -- if ($exninst(z)[a].`TAG`_exninst = $tagaddr(z)[x!`%`_idx.0]) + -- if (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-handler-catch_ref`{state#575 : state, `instr*#666` : instr*, z : state, n#1199 : n, `catch*#11` : catch*, `instr*#668` : instr*, n : n, tagidx#15 : tagidx, labelidx#89 : labelidx, x : idx, l : labelidx, `catch'*` : catch*, exnaddr#23 : exnaddr, a : addr, `val*` : val*, exnaddr#25 : exnaddr, labelidx#91 : labelidx, tagaddr#7 : tagaddr, i#32651 : nat, `val*#3` : val*}: - `%~>%`(`%;%`_config{state#575, `instr*#666`}(z, [`HANDLER_%{%}%`_instr{n#1199, `catch*#11`, `instr*#668`}(n, [`CATCH_REF`_catch{tagidx#15, labelidx#89}(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#23}(a) `THROW_REF`_instr])]), (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr{exnaddr#25}(a) `BR`_instr{labelidx#91}(l)]) - -- if ($exninst(z)[a].`TAG`_exninst{tagaddr#7} = $tagaddr(z)[x!`%`_idx{i#32651}.0]) - -- if (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst{`val*#3`}) + rule `throw_ref-handler-catch_ref`{z : state, n : n, x : idx, l : labelidx, `catch'*` : catch*, a : addr, `val*` : val*}: + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a) `BR`_instr(l)]) + -- if ($exninst(z)[a].`TAG`_exninst = $tagaddr(z)[x!`%`_idx.0]) + -- if (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-handler-catch_all`{state#587 : state, `instr*#680` : instr*, z : state, n#1201 : n, `catch*#13` : catch*, `instr*#682` : instr*, n : n, labelidx#93 : labelidx, l : labelidx, `catch'*` : catch*, exnaddr#27 : exnaddr, a : addr, labelidx#95 : labelidx}: - `%~>%`(`%;%`_config{state#587, `instr*#680`}(z, [`HANDLER_%{%}%`_instr{n#1201, `catch*#13`, `instr*#682`}(n, [`CATCH_ALL`_catch{labelidx#93}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#27}(a) `THROW_REF`_instr])]), [`BR`_instr{labelidx#95}(l)]) + rule `throw_ref-handler-catch_all`{z : state, n : n, l : labelidx, `catch'*` : catch*, a : addr}: + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), [`BR`_instr(l)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-handler-catch_all_ref`{state#599 : state, `instr*#694` : instr*, z : state, n#1203 : n, `catch*#15` : catch*, `instr*#696` : instr*, n : n, labelidx#97 : labelidx, l : labelidx, `catch'*` : catch*, exnaddr#29 : exnaddr, a : addr, exnaddr#31 : exnaddr, labelidx#99 : labelidx}: - `%~>%`(`%;%`_config{state#599, `instr*#694`}(z, [`HANDLER_%{%}%`_instr{n#1203, `catch*#15`, `instr*#696`}(n, [`CATCH_ALL_REF`_catch{labelidx#97}(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#29}(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr{exnaddr#31}(a) `BR`_instr{labelidx#99}(l)]) + rule `throw_ref-handler-catch_all_ref`{z : state, n : n, l : labelidx, `catch'*` : catch*, a : addr}: + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr(a) `BR`_instr(l)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `throw_ref-handler-next`{state#611 : state, `instr*#708` : instr*, z : state, n#1205 : n, `catch*#17` : catch*, `instr*#710` : instr*, n : n, catch : catch, `catch'*` : catch*, exnaddr#33 : exnaddr, a : addr, n#1207 : n, `catch*#19` : catch*, `instr*#712` : instr*, exnaddr#35 : exnaddr}: - `%~>%`(`%;%`_config{state#611, `instr*#708`}(z, [`HANDLER_%{%}%`_instr{n#1205, `catch*#17`, `instr*#710`}(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#33}(a) `THROW_REF`_instr])]), [`HANDLER_%{%}%`_instr{n#1207, `catch*#19`, `instr*#712`}(n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr{exnaddr#35}(a) `THROW_REF`_instr])]) + rule `throw_ref-handler-next`{z : state, n : n, catch : catch, `catch'*` : catch*, a : addr}: + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), [`HANDLER_%{%}%`_instr(n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule try_table{state#623 : state, `instr*#724` : instr*, z : state, m : m, `val*` : val*, blocktype#29 : blocktype, `instr*#726` : instr*, bt : blocktype, `X*#12591` : catch*, `catch*` : catch*, `instr*` : instr*, n#1209 : n, `catch*#21` : catch*, `instr*#728` : instr*, n : n, n#1211 : n, `instr*#730` : instr*, resulttype#3023 : resulttype, `localidx*#1805` : localidx*, `X*#12604` : valtype*, `t_1*` : valtype*, `X*#12655` : valtype*, `t_2*` : valtype*}: - `%~>%`(`%;%`_config{state#623, `instr*#724`}(z, (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr{blocktype#29, `instr*#726`}(bt, `%`_list{`X*#12591`}(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]), [`HANDLER_%{%}%`_instr{n#1209, `catch*#21`, `instr*#728`}(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr{n#1211, `instr*#730`}(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])]) - -- if ($blocktype_(z, bt) = `%->_%%`_instrtype{resulttype#3023, `localidx*#1805`}(`%`_resulttype{`X*#12604`}(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#12655`}(t_2^n{t_2 <- `t_2*`}))) + rule try_table{z : state, m : m, `val*` : val*, bt : blocktype, `catch*` : catch*, `instr*` : instr*, n : n, `t_1*` : valtype*, `t_2*` : valtype*}: + `%~>%`(`%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]), [`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])]) + -- if ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule local.get{state#635 : state, `instr*#750` : instr*, z : state, localidx#13 : localidx, x : idx, val : val}: - `%~>%`(`%;%`_config{state#635, `instr*#750`}(z, [`LOCAL.GET`_instr{localidx#13}(x)]), [(val : val <: instr)]) + rule local.get{z : state, x : idx, val : val}: + `%~>%`(`%;%`_config(z, [`LOCAL.GET`_instr(x)]), [(val : val <: instr)]) -- if ($local(z, x) = ?(val)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule global.get{state#671 : state, `instr*#786` : instr*, z : state, globalidx#17 : globalidx, x : idx, val : val, val#2 : val}: - `%~>%`(`%;%`_config{state#671, `instr*#786`}(z, [`GLOBAL.GET`_instr{globalidx#17}(x)]), [(val : val <: instr)]) - -- if ($global(z, x).`VALUE`_globalinst{val#2} = val) + rule global.get{z : state, x : idx, val : val}: + `%~>%`(`%;%`_config(z, [`GLOBAL.GET`_instr(x)]), [(val : val <: instr)]) + -- if ($global(z, x).`VALUE`_globalinst = val) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.get-oob`{state#707 : state, `instr*#822` : instr*, z : state, numtype#75 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), tableidx#57 : tableidx, x : idx, i#32897 : nat, `ref*#5` : ref*}: - `%~>%`(`%;%`_config{state#707, `instr*#822`}(z, [`CONST`_instr{numtype#75}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#57}(x)]), [`TRAP`_instr]) - -- if (i!`%`_num_{i#32897}.0 >= |$table(z, x).`REFS`_tableinst{`ref*#5`}|) + rule `table.get-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), x : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)]), [`TRAP`_instr]) + -- if (i!`%`_num_.0 >= |$table(z, x).`REFS`_tableinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.get-val`{state#719 : state, `instr*#834` : instr*, z : state, numtype#77 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), tableidx#59 : tableidx, x : idx, `ref*#6` : ref*, i#32947 : nat, i#32973 : nat, `ref*#7` : ref*}: - `%~>%`(`%;%`_config{state#719, `instr*#834`}(z, [`CONST`_instr{numtype#77}((at : addrtype <: numtype), i) `TABLE.GET`_instr{tableidx#59}(x)]), [($table(z, x).`REFS`_tableinst{`ref*#6`}[i!`%`_num_{i#32947}.0] : ref <: instr)]) - -- if (i!`%`_num_{i#32973}.0 < |$table(z, x).`REFS`_tableinst{`ref*#7`}|) + rule `table.get-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), x : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)]), [($table(z, x).`REFS`_tableinst[i!`%`_num_.0] : ref <: instr)]) + -- if (i!`%`_num_.0 < |$table(z, x).`REFS`_tableinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule table.size{state#779 : state, `instr*#894` : instr*, z : state, tableidx#65 : tableidx, x : idx, numtype#83 : numtype, at : addrtype, i#33141 : nat, n : n, `ref*#10` : ref*, tabletype#880 : tabletype, addrtype#1123 : addrtype, limits#1123 : limits, reftype#3465 : reftype, lim : limits, rt : reftype}: - `%~>%`(`%;%`_config{state#779, `instr*#894`}(z, [`TABLE.SIZE`_instr{tableidx#65}(x)]), [`CONST`_instr{numtype#83}((at : addrtype <: numtype), `%`_num_{i#33141}(n))]) - -- if (|$table(z, x).`REFS`_tableinst{`ref*#10`}| = n) - -- if ($table(z, x).`TYPE`_tableinst{tabletype#880} = `%%%`_tabletype{addrtype#1123, limits#1123, reftype#3465}(at, lim, rt)) + rule table.size{z : state, x : idx, at : addrtype, n : n, lim : limits, rt : reftype}: + `%~>%`(`%;%`_config(z, [`TABLE.SIZE`_instr(x)]), [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n))]) + -- if (|$table(z, x).`REFS`_tableinst| = n) + -- if ($table(z, x).`TYPE`_tableinst = `%%%`_tabletype(at, lim, rt)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.fill-oob`{state#839 : state, `instr*#954` : instr*, z : state, numtype#93 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, numtype#95 : numtype, i#33359 : nat, n : n, tableidx#71 : tableidx, x : idx, i#33387 : nat, `ref*#12` : ref*}: - `%~>%`(`%;%`_config{state#839, `instr*#954`}(z, [`CONST`_instr{numtype#93}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#95}((at : addrtype <: numtype), `%`_num_{i#33359}(n)) `TABLE.FILL`_instr{tableidx#71}(x)]), [`TRAP`_instr]) - -- if ((i!`%`_num_{i#33387}.0 + n) > |$table(z, x).`REFS`_tableinst{`ref*#12`}|) + rule `table.fill-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]), [`TRAP`_instr]) + -- if ((i!`%`_num_.0 + n) > |$table(z, x).`REFS`_tableinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.fill-zero`{state#851 : state, `instr*#966` : instr*, z : state, numtype#97 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, numtype#99 : numtype, i#33437 : nat, n : n, tableidx#73 : tableidx, x : idx}: - `%~>%`(`%;%`_config{state#851, `instr*#966`}(z, [`CONST`_instr{numtype#97}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#99}((at : addrtype <: numtype), `%`_num_{i#33437}(n)) `TABLE.FILL`_instr{tableidx#73}(x)]), []) + rule `table.fill-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.fill-succ`{state#863 : state, `instr*#978` : instr*, z : state, numtype#101 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, numtype#103 : numtype, i#33489 : nat, n : n, tableidx#75 : tableidx, x : idx, numtype#105 : numtype, tableidx#77 : tableidx, numtype#107 : numtype, i#33565 : nat, i#33555 : nat, numtype#109 : numtype, i#33587 : nat, tableidx#79 : tableidx}: - `%~>%`(`%;%`_config{state#863, `instr*#978`}(z, [`CONST`_instr{numtype#101}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#103}((at : addrtype <: numtype), `%`_num_{i#33489}(n)) `TABLE.FILL`_instr{tableidx#75}(x)]), [`CONST`_instr{numtype#105}((at : addrtype <: numtype), i) (val : val <: instr) `TABLE.SET`_instr{tableidx#77}(x) `CONST`_instr{numtype#107}((at : addrtype <: numtype), `%`_num_{i#33565}((i!`%`_num_{i#33555}.0 + 1))) (val : val <: instr) `CONST`_instr{numtype#109}((at : addrtype <: numtype), `%`_num_{i#33587}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.FILL`_instr{tableidx#79}(x)]) + rule `table.fill-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]), [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `TABLE.SET`_instr(x) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.FILL`_instr(x)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.copy-oob`{state#875 : state, `instr*#990` : instr*, z : state, numtype#111 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#113 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#115 : numtype, at' : addrtype, i#33653 : nat, n : n, tableidx#81 : tableidx, x_1 : idx, x_2 : idx, i#33695 : nat, `ref*#13` : ref*, i#33721 : nat, `ref*#14` : ref*}: - `%~>%`(`%;%`_config{state#875, `instr*#990`}(z, [`CONST`_instr{numtype#111}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#113}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#115}((at' : addrtype <: numtype), `%`_num_{i#33653}(n)) `TABLE.COPY`_instr{tableidx#81}(x_1, x_2)]), [`TRAP`_instr]) - -- if (((i_1!`%`_num_{i#33695}.0 + n) > |$table(z, x_1).`REFS`_tableinst{`ref*#13`}|) \/ ((i_2!`%`_num_{i#33721}.0 + n) > |$table(z, x_2).`REFS`_tableinst{`ref*#14`}|)) + rule `table.copy-oob`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x_1, x_2)]), [`TRAP`_instr]) + -- if (((i_1!`%`_num_.0 + n) > |$table(z, x_1).`REFS`_tableinst|) \/ ((i_2!`%`_num_.0 + n) > |$table(z, x_2).`REFS`_tableinst|)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.copy-zero`{state#887 : state, `instr*#1002` : instr*, z : state, numtype#117 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#119 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#121 : numtype, at' : addrtype, i#33785 : nat, n : n, tableidx#84 : tableidx, x : idx, y : idx}: - `%~>%`(`%;%`_config{state#887, `instr*#1002`}(z, [`CONST`_instr{numtype#117}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#119}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#121}((at' : addrtype <: numtype), `%`_num_{i#33785}(n)) `TABLE.COPY`_instr{tableidx#84}(x, y)]), []) + rule `table.copy-zero`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.copy-le`{state#899 : state, `instr*#1014` : instr*, z : state, numtype#123 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#125 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#127 : numtype, at' : addrtype, i#33865 : nat, n : n, tableidx#87 : tableidx, x : idx, y : idx, numtype#129 : numtype, numtype#131 : numtype, tableidx#90 : tableidx, tableidx#92 : tableidx, numtype#133 : numtype, i#33981 : nat, i#33971 : nat, numtype#135 : numtype, i#34017 : nat, i#34007 : nat, numtype#137 : numtype, i#34039 : nat, tableidx#94 : tableidx, i#34085 : nat, i#34095 : nat}: - `%~>%`(`%;%`_config{state#899, `instr*#1014`}(z, [`CONST`_instr{numtype#123}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#125}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#127}((at' : addrtype <: numtype), `%`_num_{i#33865}(n)) `TABLE.COPY`_instr{tableidx#87}(x, y)]), [`CONST`_instr{numtype#129}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#131}((at_2 : addrtype <: numtype), i_2) `TABLE.GET`_instr{tableidx#90}(y) `TABLE.SET`_instr{tableidx#92}(x) `CONST`_instr{numtype#133}((at_1 : addrtype <: numtype), `%`_num_{i#33981}((i_1!`%`_num_{i#33971}.0 + 1))) `CONST`_instr{numtype#135}((at_2 : addrtype <: numtype), `%`_num_{i#34017}((i_2!`%`_num_{i#34007}.0 + 1))) `CONST`_instr{numtype#137}((at' : addrtype <: numtype), `%`_num_{i#34039}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr{tableidx#94}(x, y)]) + rule `table.copy-le`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]), [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `TABLE.GET`_instr(y) `TABLE.SET`_instr(x) `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1))) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr(x, y)]) -- otherwise - -- if (i_1!`%`_num_{i#34085}.0 <= i_2!`%`_num_{i#34095}.0) + -- if (i_1!`%`_num_.0 <= i_2!`%`_num_.0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.copy-gt`{state#911 : state, `instr*#1026` : instr*, z : state, numtype#139 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#141 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#143 : numtype, at' : addrtype, i#34147 : nat, n : n, tableidx#97 : tableidx, x : idx, y : idx, numtype#145 : numtype, i#34211 : nat, i#34201 : nat, numtype#147 : numtype, i#34247 : nat, i#34237 : nat, tableidx#100 : tableidx, tableidx#102 : tableidx, numtype#149 : numtype, numtype#151 : numtype, numtype#153 : numtype, i#34321 : nat, tableidx#104 : tableidx}: - `%~>%`(`%;%`_config{state#911, `instr*#1026`}(z, [`CONST`_instr{numtype#139}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#141}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#143}((at' : addrtype <: numtype), `%`_num_{i#34147}(n)) `TABLE.COPY`_instr{tableidx#97}(x, y)]), [`CONST`_instr{numtype#145}((at_1 : addrtype <: numtype), `%`_num_{i#34211}(((((i_1!`%`_num_{i#34201}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr{numtype#147}((at_2 : addrtype <: numtype), `%`_num_{i#34247}(((((i_2!`%`_num_{i#34237}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.GET`_instr{tableidx#100}(y) `TABLE.SET`_instr{tableidx#102}(x) `CONST`_instr{numtype#149}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#151}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#153}((at' : addrtype <: numtype), `%`_num_{i#34321}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr{tableidx#104}(x, y)]) + rule `table.copy-gt`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]), [`CONST`_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.GET`_instr(y) `TABLE.SET`_instr(x) `CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr(x, y)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.init-oob`{state#923 : state, `instr*#1038` : instr*, z : state, numtype#155 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#157 : numtype, j : num_(`I32`_numtype), numtype#159 : numtype, i#34401 : nat, n : n, tableidx#107 : tableidx, elemidx#17 : elemidx, x : idx, y : idx, i#34443 : nat, `ref*#15` : ref*, i#34469 : nat, `ref*#16` : ref*}: - `%~>%`(`%;%`_config{state#923, `instr*#1038`}(z, [`CONST`_instr{numtype#155}((at : addrtype <: numtype), i) `CONST`_instr{numtype#157}(`I32`_numtype, j) `CONST`_instr{numtype#159}(`I32`_numtype, `%`_num_{i#34401}(n)) `TABLE.INIT`_instr{tableidx#107, elemidx#17}(x, y)]), [`TRAP`_instr]) - -- if (((i!`%`_num_{i#34443}.0 + n) > |$table(z, x).`REFS`_tableinst{`ref*#15`}|) \/ ((j!`%`_num_{i#34469}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#16`}|)) + rule `table.init-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]), [`TRAP`_instr]) + -- if (((i!`%`_num_.0 + n) > |$table(z, x).`REFS`_tableinst|) \/ ((j!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.init-zero`{state#935 : state, `instr*#1050` : instr*, z : state, numtype#161 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#163 : numtype, j : num_(`I32`_numtype), numtype#165 : numtype, i#34533 : nat, n : n, tableidx#109 : tableidx, elemidx#19 : elemidx, x : idx, y : idx}: - `%~>%`(`%;%`_config{state#935, `instr*#1050`}(z, [`CONST`_instr{numtype#161}((at : addrtype <: numtype), i) `CONST`_instr{numtype#163}(`I32`_numtype, j) `CONST`_instr{numtype#165}(`I32`_numtype, `%`_num_{i#34533}(n)) `TABLE.INIT`_instr{tableidx#109, elemidx#19}(x, y)]), []) + rule `table.init-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.init-succ`{state#947 : state, `instr*#1062` : instr*, z : state, numtype#167 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#169 : numtype, j : num_(`I32`_numtype), numtype#171 : numtype, i#34613 : nat, n : n, tableidx#111 : tableidx, elemidx#21 : elemidx, x : idx, y : idx, numtype#173 : numtype, `ref*#17` : ref*, i#34675 : nat, tableidx#113 : tableidx, numtype#175 : numtype, i#34725 : nat, i#34715 : nat, numtype#177 : numtype, i#34761 : nat, i#34751 : nat, numtype#179 : numtype, i#34783 : nat, tableidx#115 : tableidx, elemidx#23 : elemidx}: - `%~>%`(`%;%`_config{state#947, `instr*#1062`}(z, [`CONST`_instr{numtype#167}((at : addrtype <: numtype), i) `CONST`_instr{numtype#169}(`I32`_numtype, j) `CONST`_instr{numtype#171}(`I32`_numtype, `%`_num_{i#34613}(n)) `TABLE.INIT`_instr{tableidx#111, elemidx#21}(x, y)]), [`CONST`_instr{numtype#173}((at : addrtype <: numtype), i) ($elem(z, y).`REFS`_eleminst{`ref*#17`}[j!`%`_num_{i#34675}.0] : ref <: instr) `TABLE.SET`_instr{tableidx#113}(x) `CONST`_instr{numtype#175}((at : addrtype <: numtype), `%`_num_{i#34725}((i!`%`_num_{i#34715}.0 + 1))) `CONST`_instr{numtype#177}(`I32`_numtype, `%`_num_{i#34761}((j!`%`_num_{i#34751}.0 + 1))) `CONST`_instr{numtype#179}(`I32`_numtype, `%`_num_{i#34783}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.INIT`_instr{tableidx#115, elemidx#23}(x, y)]) + rule `table.init-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]), [`CONST`_instr((at : addrtype <: numtype), i) ($elem(z, y).`REFS`_eleminst[j!`%`_num_.0] : ref <: instr) `TABLE.SET`_instr(x) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.INIT`_instr(x, y)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `load-num-oob`{state#983 : state, `instr*#1098` : instr*, z : state, numtype#181 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `numtype?#7` : numtype?, memidx#67 : memidx, memarg#35 : memarg, nt : numtype, x : idx, ao : memarg, i#34883 : nat, u64#405 : u64, i#34893 : nat, `byte*#1849` : byte*}: - `%~>%`(`%;%`_config{state#983, `instr*#1098`}(z, [`CONST`_instr{numtype#181}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#7`, memidx#67, memarg#35}(nt, ?(), x, ao)]), [`TRAP`_instr]) - -- if (((i!`%`_num_{i#34883}.0 + ao.`OFFSET`_memarg{u64#405}!`%`_u64{i#34893}.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1849`}|) + rule `load-num-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), nt : numtype, x : idx, ao : memarg}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)]), [`TRAP`_instr]) + -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `load-num-val`{state#995 : state, `instr*#1110` : instr*, z : state, numtype#184 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `numtype?#8` : numtype?, memidx#69 : memidx, memarg#37 : memarg, nt : numtype, x : idx, ao : memarg, numtype#187 : numtype, c : num_(nt), `byte*#1850` : byte*, i#34963 : nat, u64#406 : u64, i#34973 : nat}: - `%~>%`(`%;%`_config{state#995, `instr*#1110`}(z, [`CONST`_instr{numtype#184}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#8`, memidx#69, memarg#37}(nt, ?(), x, ao)]), [`CONST`_instr{numtype#187}(nt, c)]) - -- if ($nbytes_(nt, c) = $mem(z, x).`BYTES`_meminst{`byte*#1850`}[(i!`%`_num_{i#34963}.0 + ao.`OFFSET`_memarg{u64#406}!`%`_u64{i#34973}.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `load-num-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), nt : numtype, x : idx, ao : memarg, c : num_(nt)}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)]), [`CONST`_instr(nt, c)]) + -- if ($nbytes_(nt, c) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `load-pack-oob`{state#1007 : state, `instr*#1122` : instr*, z : state, numtype#189 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `numtype?#9` : numtype?, memidx#71 : memidx, memarg#39 : memarg, Inn : Inn, sz#156 : sz, sx#270 : sx, i#35021 : nat, i#35028 : nat, n : n, sx : sx, x : idx, ao : memarg, i#35060 : nat, u64#407 : u64, i#35070 : nat, `byte*#1851` : byte*}: - `%~>%`(`%;%`_config{state#1007, `instr*#1122`}(z, [`CONST`_instr{numtype#189}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#9`, memidx#71, memarg#39}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#156, sx#270, i#35021}(`%`_sz{i#35028}(n), sx)), x, ao)]), [`TRAP`_instr]) - -- if (((i!`%`_num_{i#35060}.0 + ao.`OFFSET`_memarg{u64#407}!`%`_u64{i#35070}.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1851`}|) + rule `load-pack-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), Inn : Inn, n : n, sx : sx, x : idx, ao : memarg}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)]), [`TRAP`_instr]) + -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `load-pack-val`{state#1019 : state, `instr*#1134` : instr*, z : state, numtype#192 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `numtype?#10` : numtype?, memidx#73 : memidx, memarg#41 : memarg, Inn : Inn, sz#158 : sz, sx#272 : sx, i#35122 : nat, i#35129 : nat, n : n, sx : sx, x : idx, ao : memarg, numtype#195 : numtype, c : iN(n), `byte*#1852` : byte*, i#35199 : nat, u64#408 : u64, i#35209 : nat}: - `%~>%`(`%;%`_config{state#1019, `instr*#1134`}(z, [`CONST`_instr{numtype#192}((at : addrtype <: numtype), i) `LOAD`_instr{`numtype?#10`, memidx#73, memarg#41}((Inn : Inn <: numtype), ?(`%_%`_loadop_{sz#158, sx#272, i#35122}(`%`_sz{i#35129}(n), sx)), x, ao)]), [`CONST`_instr{numtype#195}((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))]) - -- if ($ibytes_(n, c) = $mem(z, x).`BYTES`_meminst{`byte*#1852`}[(i!`%`_num_{i#35199}.0 + ao.`OFFSET`_memarg{u64#408}!`%`_u64{i#35209}.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `load-pack-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), Inn : Inn, n : n, sx : sx, x : idx, ao : memarg, c : iN(n)}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)]), [`CONST`_instr((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))]) + -- if ($ibytes_(n, c) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-oob`{state#1031 : state, `instr*#1146` : instr*, z : state, numtype#197 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#6` : vectype?, memidx#75 : memidx, memarg#43 : memarg, x : idx, ao : memarg, i#35293 : nat, u64#409 : u64, i#35303 : nat, `byte*#1853` : byte*}: - `%~>%`(`%;%`_config{state#1031, `instr*#1146`}(z, [`CONST`_instr{numtype#197}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#6`, memidx#75, memarg#43}(`V128`_vectype, ?(), x, ao)]), [`TRAP`_instr]) - -- if (((i!`%`_num_{i#35293}.0 + ao.`OFFSET`_memarg{u64#409}!`%`_u64{i#35303}.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1853`}|) + rule `vload-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), x : idx, ao : memarg}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)]), [`TRAP`_instr]) + -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-val`{state#1043 : state, `instr*#1158` : instr*, z : state, numtype#199 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#7` : vectype?, memidx#77 : memidx, memarg#45 : memarg, x : idx, ao : memarg, vectype#64 : vectype, c : vec_(`V128`_Vnn), `byte*#1854` : byte*, i#35387 : nat, u64#410 : u64, i#35397 : nat}: - `%~>%`(`%;%`_config{state#1043, `instr*#1158`}(z, [`CONST`_instr{numtype#199}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#7`, memidx#77, memarg#45}(`V128`_vectype, ?(), x, ao)]), [`VCONST`_instr{vectype#64}(`V128`_vectype, c)]) - -- if ($vbytes_(`V128`_vectype, c) = $mem(z, x).`BYTES`_meminst{`byte*#1854`}[(i!`%`_num_{i#35387}.0 + ao.`OFFSET`_memarg{u64#410}!`%`_u64{i#35397}.0) : ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `vload-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), x : idx, ao : memarg, c : vec_(`V128`_Vnn)}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)]), [`VCONST`_instr(`V128`_vectype, c)]) + -- if ($vbytes_(`V128`_vectype, c) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-pack-oob`{state#1055 : state, `instr*#1170` : instr*, z : state, numtype#201 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#8` : vectype?, memidx#79 : memidx, memarg#47 : memarg, sz#205 : sz, M#63 : M, sx#289 : sx, i#35475 : nat, i#35482 : nat, M : M, K : K, sx : sx, x : idx, ao : memarg, i#35514 : nat, u64#411 : u64, i#35524 : nat, `byte*#1855` : byte*}: - `%~>%`(`%;%`_config{state#1055, `instr*#1170`}(z, [`CONST`_instr{numtype#201}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#8`, memidx#79, memarg#47}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#205, M#63, sx#289, i#35475}(`%`_sz{i#35482}(M), K, sx)), x, ao)]), [`TRAP`_instr]) - -- if (((i!`%`_num_{i#35514}.0 + ao.`OFFSET`_memarg{u64#411}!`%`_u64{i#35524}.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1855`}|) + rule `vload-pack-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), M : M, K : K, sx : sx, x : idx, ao : memarg}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)]), [`TRAP`_instr]) + -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-pack-val`{state#1067 : state, `instr*#1182` : instr*, z : state, numtype#203 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#9` : vectype?, memidx#81 : memidx, memarg#49 : memarg, sz#252 : sz, M#80 : M, sx#306 : sx, i#35576 : nat, i#35583 : nat, M : M, K : K, sx : sx, x : idx, ao : memarg, vectype#68 : vectype, c : vec_(`V128`_Vnn), k : nat, `byte*#1856*` : byte**, `i#35641*` : nat*, `i#35651*` : nat*, `j*` : iN(M)*, `u64#412*` : u64*, lanetype#7243 : lanetype, dim#7243 : dim, i#35700 : nat, Jnn : Jnn, i#35707 : nat}: - `%~>%`(`%;%`_config{state#1067, `instr*#1182`}(z, [`CONST`_instr{numtype#203}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#9`, memidx#81, memarg#49}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#252, M#80, sx#306, i#35576}(`%`_sz{i#35583}(M), K, sx)), x, ao)]), [`VCONST`_instr{vectype#68}(`V128`_vectype, c)]) - -- (if ($ibytes_(M, j) = $mem(z, x).`BYTES`_meminst{`byte*#1856`}[((i!`%`_num_{i#35641}.0 + ao.`OFFSET`_memarg{u64#412}!`%`_u64{i#35651}.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]))^(k%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)]), [`VCONST`_instr(`V128`_vectype, c)]) + -- (if ($ibytes_(M, j) = $mem(z, x).`BYTES`_meminst[((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]))^(k%`(`%;%`_config{state#1079, `instr*#1194`}(z, [`CONST`_instr{numtype#205}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#10`, memidx#83, memarg#51}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#299}(`%`_sz{i#35834}(N))), x, ao)]), [`TRAP`_instr]) - -- if (((i!`%`_num_{i#35866}.0 + ao.`OFFSET`_memarg{u64#413}!`%`_u64{i#35876}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1857`}|) + rule `vload-splat-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), N : N, x : idx, ao : memarg}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)]), [`TRAP`_instr]) + -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-splat-val`{state#1091 : state, `instr*#1206` : instr*, z : state, numtype#207 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#11` : vectype?, memidx#85 : memidx, memarg#53 : memarg, sz#346 : sz, i#35934 : nat, N : N, x : idx, ao : memarg, vectype#72 : vectype, c : vec_(`V128`_Vnn), j : iN(N), `byte*#1858` : byte*, i#35992 : nat, u64#414 : u64, i#36002 : nat, Jnn : Jnn, M : M, lanetype#7267 : lanetype, dim#7267 : dim, i#36033 : nat, i#36040 : nat, `i#36120*` : nat*, `i#36121*` : nat*}: - `%~>%`(`%;%`_config{state#1091, `instr*#1206`}(z, [`CONST`_instr{numtype#207}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#11`, memidx#85, memarg#53}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#346}(`%`_sz{i#35934}(N))), x, ao)]), [`VCONST`_instr{vectype#72}(`V128`_vectype, c)]) - -- if ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst{`byte*#1858`}[(i!`%`_num_{i#35992}.0 + ao.`OFFSET`_memarg{u64#414}!`%`_u64{i#36002}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `vload-splat-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), N : N, x : idx, ao : memarg, c : vec_(`V128`_Vnn), j : iN(N), Jnn : Jnn, M : M}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)]), [`VCONST`_instr(`V128`_vectype, c)]) + -- if ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) -- if (N = $jsize(Jnn)) -- if ((M : nat <:> rat) = ((128 : nat <:> rat) / (N : nat <:> rat))) - -- if (c = $inv_lanes_(`%X%`_shape{lanetype#7267, dim#7267, i#36033}((Jnn : Jnn <: lanetype), `%`_dim{i#36040}(M)), `%`_lane_{i#36121}(j!`%`_iN{i#36120}.0)^M{i#36120 <- `i#36120*`, i#36121 <- `i#36121*`})) + -- if (c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `%`_lane_(j!`%`_iN.0)^M{})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-zero-oob`{state#1103 : state, `instr*#1218` : instr*, z : state, numtype#209 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#12` : vectype?, memidx#87 : memidx, memarg#55 : memarg, sz#393 : sz, i#36172 : nat, i#36179 : nat, N : N, x : idx, ao : memarg, i#36211 : nat, u64#415 : u64, i#36221 : nat, `byte*#1859` : byte*}: - `%~>%`(`%;%`_config{state#1103, `instr*#1218`}(z, [`CONST`_instr{numtype#209}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#12`, memidx#87, memarg#55}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#393, i#36172}(`%`_sz{i#36179}(N))), x, ao)]), [`TRAP`_instr]) - -- if (((i!`%`_num_{i#36211}.0 + ao.`OFFSET`_memarg{u64#415}!`%`_u64{i#36221}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1859`}|) + rule `vload-zero-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), N : N, x : idx, ao : memarg}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)]), [`TRAP`_instr]) + -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-zero-val`{state#1115 : state, `instr*#1230` : instr*, z : state, numtype#211 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), `vectype?#13` : vectype?, memidx#89 : memidx, memarg#57 : memarg, sz#440 : sz, i#36273 : nat, i#36280 : nat, N : N, x : idx, ao : memarg, vectype#76 : vectype, c : vec_(`V128`_Vnn), j : iN(N), `byte*#1860` : byte*, i#36338 : nat, u64#416 : u64, i#36348 : nat}: - `%~>%`(`%;%`_config{state#1115, `instr*#1230`}(z, [`CONST`_instr{numtype#211}((at : addrtype <: numtype), i) `VLOAD`_instr{`vectype?#13`, memidx#89, memarg#57}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#440, i#36273}(`%`_sz{i#36280}(N))), x, ao)]), [`VCONST`_instr{vectype#76}(`V128`_vectype, c)]) - -- if ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst{`byte*#1860`}[(i!`%`_num_{i#36338}.0 + ao.`OFFSET`_memarg{u64#416}!`%`_u64{i#36348}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `vload-zero-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), N : N, x : idx, ao : memarg, c : vec_(`V128`_Vnn), j : iN(N)}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)]), [`VCONST`_instr(`V128`_vectype, c)]) + -- if ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) -- if (c = $extend__(N, 128, `U`_sx, j)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload_lane-oob`{state#1127 : state, `instr*#1242` : instr*, z : state, numtype#213 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), vectype#78 : vectype, c_1 : vec_(`V128`_Vnn), vectype#80 : vectype, sz#442 : sz, memidx#91 : memidx, memarg#59 : memarg, laneidx#17 : laneidx, i#36428 : nat, N : N, x : idx, ao : memarg, j : laneidx, i#36474 : nat, u64#417 : u64, i#36484 : nat, `byte*#1861` : byte*}: - `%~>%`(`%;%`_config{state#1127, `instr*#1242`}(z, [`CONST`_instr{numtype#213}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#78}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#80, sz#442, memidx#91, memarg#59, laneidx#17}(`V128`_vectype, `%`_sz{i#36428}(N), x, ao, j)]), [`TRAP`_instr]) - -- if (((i!`%`_num_{i#36474}.0 + ao.`OFFSET`_memarg{u64#417}!`%`_u64{i#36484}.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1861`}|) + rule `vload_lane-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c_1 : vec_(`V128`_Vnn), N : N, x : idx, ao : memarg, j : laneidx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]), [`TRAP`_instr]) + -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload_lane-val`{state#1139 : state, `instr*#1254` : instr*, z : state, numtype#215 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), vectype#82 : vectype, c_1 : vec_(`V128`_Vnn), vectype#84 : vectype, sz#444 : sz, memidx#93 : memidx, memarg#61 : memarg, laneidx#19 : laneidx, i#36532 : nat, N : N, x : idx, ao : memarg, j : laneidx, vectype#86 : vectype, c : vec_(`V128`_Vnn), k : iN(N), `byte*#1862` : byte*, i#36604 : nat, u64#418 : u64, i#36614 : nat, Jnn : Jnn, M : M, lanetype#7292 : lanetype, dim#7292 : dim, i#36645 : nat, i#36652 : nat, lanetype#7383 : lanetype, dim#7383 : dim, i#36877 : nat, i#36884 : nat, i#36910 : nat, i#36957 : nat, i#36956 : nat}: - `%~>%`(`%;%`_config{state#1139, `instr*#1254`}(z, [`CONST`_instr{numtype#215}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#82}(`V128`_vectype, c_1) `VLOAD_LANE`_instr{vectype#84, sz#444, memidx#93, memarg#61, laneidx#19}(`V128`_vectype, `%`_sz{i#36532}(N), x, ao, j)]), [`VCONST`_instr{vectype#86}(`V128`_vectype, c)]) - -- if ($ibytes_(N, k) = $mem(z, x).`BYTES`_meminst{`byte*#1862`}[(i!`%`_num_{i#36604}.0 + ao.`OFFSET`_memarg{u64#418}!`%`_u64{i#36614}.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `vload_lane-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c_1 : vec_(`V128`_Vnn), N : N, x : idx, ao : memarg, j : laneidx, c : vec_(`V128`_Vnn), k : iN(N), Jnn : Jnn, M : M}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]), [`VCONST`_instr(`V128`_vectype, c)]) + -- if ($ibytes_(N, k) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) -- if (N = $jsize(Jnn)) -- if ((M : nat <:> rat) = (($vsize(`V128`_vectype) : nat <:> rat) / (N : nat <:> rat))) - -- if (c = $inv_lanes_(`%X%`_shape{lanetype#7292, dim#7292, i#36645}((Jnn : Jnn <: lanetype), `%`_dim{i#36652}(M)), $lanes_(`%X%`_shape{lanetype#7383, dim#7383, i#36877}((Jnn : Jnn <: lanetype), `%`_dim{i#36884}(M)), c_1)[[j!`%`_laneidx{i#36910}.0] = `%`_lane_{i#36957}(k!`%`_iN{i#36956}.0)])) + -- if (c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)[[j!`%`_laneidx.0] = `%`_lane_(k!`%`_iN.0)])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule memory.size{state#1343 : state, `instr*#1458` : instr*, z : state, memidx#111 : memidx, x : idx, numtype#245 : numtype, at : addrtype, i#37958 : nat, n : n, `byte*#1867` : byte*, memtype#530 : memtype, addrtype#1135 : addrtype, limits#1135 : limits, lim : limits}: - `%~>%`(`%;%`_config{state#1343, `instr*#1458`}(z, [`MEMORY.SIZE`_instr{memidx#111}(x)]), [`CONST`_instr{numtype#245}((at : addrtype <: numtype), `%`_num_{i#37958}(n))]) - -- if ((n * (64 * $Ki)) = |$mem(z, x).`BYTES`_meminst{`byte*#1867`}|) - -- if ($mem(z, x).`TYPE`_meminst{memtype#530} = `%%PAGE`_memtype{addrtype#1135, limits#1135}(at, lim)) + rule memory.size{z : state, x : idx, at : addrtype, n : n, lim : limits}: + `%~>%`(`%;%`_config(z, [`MEMORY.SIZE`_instr(x)]), [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n))]) + -- if ((n * (64 * $Ki)) = |$mem(z, x).`BYTES`_meminst|) + -- if ($mem(z, x).`TYPE`_meminst = `%%PAGE`_memtype(at, lim)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.fill-oob`{state#1403 : state, `instr*#1518` : instr*, z : state, numtype#255 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, numtype#257 : numtype, i#38176 : nat, n : n, memidx#117 : memidx, x : idx, i#38204 : nat, `byte*#1869` : byte*}: - `%~>%`(`%;%`_config{state#1403, `instr*#1518`}(z, [`CONST`_instr{numtype#255}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#257}((at : addrtype <: numtype), `%`_num_{i#38176}(n)) `MEMORY.FILL`_instr{memidx#117}(x)]), [`TRAP`_instr]) - -- if ((i!`%`_num_{i#38204}.0 + n) > |$mem(z, x).`BYTES`_meminst{`byte*#1869`}|) + rule `memory.fill-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]), [`TRAP`_instr]) + -- if ((i!`%`_num_.0 + n) > |$mem(z, x).`BYTES`_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.fill-zero`{state#1415 : state, `instr*#1530` : instr*, z : state, numtype#259 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, numtype#261 : numtype, i#38254 : nat, n : n, memidx#119 : memidx, x : idx}: - `%~>%`(`%;%`_config{state#1415, `instr*#1530`}(z, [`CONST`_instr{numtype#259}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#261}((at : addrtype <: numtype), `%`_num_{i#38254}(n)) `MEMORY.FILL`_instr{memidx#119}(x)]), []) + rule `memory.fill-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.fill-succ`{state#1427 : state, `instr*#1542` : instr*, z : state, numtype#263 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, numtype#265 : numtype, i#38306 : nat, n : n, memidx#121 : memidx, x : idx, numtype#267 : numtype, `numtype?#15` : numtype?, memidx#123 : memidx, memarg#79 : memarg, sz#465 : sz, i#38373 : nat, i#38374 : nat, numtype#270 : numtype, i#38424 : nat, i#38414 : nat, numtype#272 : numtype, i#38446 : nat, memidx#125 : memidx}: - `%~>%`(`%;%`_config{state#1427, `instr*#1542`}(z, [`CONST`_instr{numtype#263}((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr{numtype#265}((at : addrtype <: numtype), `%`_num_{i#38306}(n)) `MEMORY.FILL`_instr{memidx#121}(x)]), [`CONST`_instr{numtype#267}((at : addrtype <: numtype), i) (val : val <: instr) `STORE`_instr{`numtype?#15`, memidx#123, memarg#79}(`I32`_numtype, ?(`%`_storeop_{sz#465, i#38373}(`%`_sz{i#38374}(8))), x, $memarg0) `CONST`_instr{numtype#270}((at : addrtype <: numtype), `%`_num_{i#38424}((i!`%`_num_{i#38414}.0 + 1))) (val : val <: instr) `CONST`_instr{numtype#272}((at : addrtype <: numtype), `%`_num_{i#38446}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.FILL`_instr{memidx#125}(x)]) + rule `memory.fill-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]), [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.FILL`_instr(x)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.copy-oob`{state#1439 : state, `instr*#1554` : instr*, z : state, numtype#274 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#276 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#278 : numtype, at' : addrtype, i#38512 : nat, n : n, memidx#127 : memidx, x_1 : idx, x_2 : idx, i#38554 : nat, `byte*#1870` : byte*, i#38580 : nat, `byte*#1871` : byte*}: - `%~>%`(`%;%`_config{state#1439, `instr*#1554`}(z, [`CONST`_instr{numtype#274}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#276}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#278}((at' : addrtype <: numtype), `%`_num_{i#38512}(n)) `MEMORY.COPY`_instr{memidx#127}(x_1, x_2)]), [`TRAP`_instr]) - -- if (((i_1!`%`_num_{i#38554}.0 + n) > |$mem(z, x_1).`BYTES`_meminst{`byte*#1870`}|) \/ ((i_2!`%`_num_{i#38580}.0 + n) > |$mem(z, x_2).`BYTES`_meminst{`byte*#1871`}|)) + rule `memory.copy-oob`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]), [`TRAP`_instr]) + -- if (((i_1!`%`_num_.0 + n) > |$mem(z, x_1).`BYTES`_meminst|) \/ ((i_2!`%`_num_.0 + n) > |$mem(z, x_2).`BYTES`_meminst|)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.copy-zero`{state#1451 : state, `instr*#1566` : instr*, z : state, numtype#280 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#282 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#284 : numtype, at' : addrtype, i#38644 : nat, n : n, memidx#130 : memidx, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config{state#1451, `instr*#1566`}(z, [`CONST`_instr{numtype#280}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#282}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#284}((at' : addrtype <: numtype), `%`_num_{i#38644}(n)) `MEMORY.COPY`_instr{memidx#130}(x_1, x_2)]), []) + rule `memory.copy-zero`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.copy-le`{state#1463 : state, `instr*#1578` : instr*, z : state, numtype#286 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#288 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#290 : numtype, at' : addrtype, i#38724 : nat, n : n, memidx#133 : memidx, x_1 : idx, x_2 : idx, numtype#292 : numtype, numtype#294 : numtype, `numtype?#16` : numtype?, memidx#136 : memidx, memarg#81 : memarg, sz#483 : sz, sx#384 : sx, i#38802 : nat, i#38809 : nat, `numtype?#17` : numtype?, memidx#138 : memidx, memarg#83 : memarg, sz#496 : sz, i#38864 : nat, i#38865 : nat, numtype#298 : numtype, i#38915 : nat, i#38905 : nat, numtype#300 : numtype, i#38951 : nat, i#38941 : nat, numtype#302 : numtype, i#38973 : nat, memidx#140 : memidx, i#39019 : nat, i#39029 : nat}: - `%~>%`(`%;%`_config{state#1463, `instr*#1578`}(z, [`CONST`_instr{numtype#286}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#288}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#290}((at' : addrtype <: numtype), `%`_num_{i#38724}(n)) `MEMORY.COPY`_instr{memidx#133}(x_1, x_2)]), [`CONST`_instr{numtype#292}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#294}((at_2 : addrtype <: numtype), i_2) `LOAD`_instr{`numtype?#16`, memidx#136, memarg#81}(`I32`_numtype, ?(`%_%`_loadop_{sz#483, sx#384, i#38802}(`%`_sz{i#38809}(8), `U`_sx)), x_2, $memarg0) `STORE`_instr{`numtype?#17`, memidx#138, memarg#83}(`I32`_numtype, ?(`%`_storeop_{sz#496, i#38864}(`%`_sz{i#38865}(8))), x_1, $memarg0) `CONST`_instr{numtype#298}((at_1 : addrtype <: numtype), `%`_num_{i#38915}((i_1!`%`_num_{i#38905}.0 + 1))) `CONST`_instr{numtype#300}((at_2 : addrtype <: numtype), `%`_num_{i#38951}((i_2!`%`_num_{i#38941}.0 + 1))) `CONST`_instr{numtype#302}((at' : addrtype <: numtype), `%`_num_{i#38973}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr{memidx#140}(x_1, x_2)]) + rule `memory.copy-le`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]), [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0) `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1))) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr(x_1, x_2)]) -- otherwise - -- if (i_1!`%`_num_{i#39019}.0 <= i_2!`%`_num_{i#39029}.0) + -- if (i_1!`%`_num_.0 <= i_2!`%`_num_.0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.copy-gt`{state#1475 : state, `instr*#1590` : instr*, z : state, numtype#304 : numtype, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), numtype#306 : numtype, at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), numtype#308 : numtype, at' : addrtype, i#39081 : nat, n : n, memidx#143 : memidx, x_1 : idx, x_2 : idx, numtype#310 : numtype, i#39145 : nat, i#39135 : nat, numtype#312 : numtype, i#39181 : nat, i#39171 : nat, `numtype?#18` : numtype?, memidx#146 : memidx, memarg#85 : memarg, sz#514 : sz, sx#402 : sx, i#39207 : nat, i#39214 : nat, `numtype?#19` : numtype?, memidx#148 : memidx, memarg#87 : memarg, sz#527 : sz, i#39269 : nat, i#39270 : nat, numtype#316 : numtype, numtype#318 : numtype, numtype#320 : numtype, i#39330 : nat, memidx#150 : memidx}: - `%~>%`(`%;%`_config{state#1475, `instr*#1590`}(z, [`CONST`_instr{numtype#304}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#306}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#308}((at' : addrtype <: numtype), `%`_num_{i#39081}(n)) `MEMORY.COPY`_instr{memidx#143}(x_1, x_2)]), [`CONST`_instr{numtype#310}((at_1 : addrtype <: numtype), `%`_num_{i#39145}(((((i_1!`%`_num_{i#39135}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr{numtype#312}((at_2 : addrtype <: numtype), `%`_num_{i#39181}(((((i_2!`%`_num_{i#39171}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `LOAD`_instr{`numtype?#18`, memidx#146, memarg#85}(`I32`_numtype, ?(`%_%`_loadop_{sz#514, sx#402, i#39207}(`%`_sz{i#39214}(8), `U`_sx)), x_2, $memarg0) `STORE`_instr{`numtype?#19`, memidx#148, memarg#87}(`I32`_numtype, ?(`%`_storeop_{sz#527, i#39269}(`%`_sz{i#39270}(8))), x_1, $memarg0) `CONST`_instr{numtype#316}((at_1 : addrtype <: numtype), i_1) `CONST`_instr{numtype#318}((at_2 : addrtype <: numtype), i_2) `CONST`_instr{numtype#320}((at' : addrtype <: numtype), `%`_num_{i#39330}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr{memidx#150}(x_1, x_2)]) + rule `memory.copy-gt`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]), [`CONST`_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0) `CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr(x_1, x_2)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.init-oob`{state#1487 : state, `instr*#1602` : instr*, z : state, numtype#322 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#324 : numtype, j : num_(`I32`_numtype), numtype#326 : numtype, i#39410 : nat, n : n, memidx#153 : memidx, dataidx#17 : dataidx, x : idx, y : idx, i#39452 : nat, `byte*#1872` : byte*, i#39478 : nat, `byte*#1873` : byte*}: - `%~>%`(`%;%`_config{state#1487, `instr*#1602`}(z, [`CONST`_instr{numtype#322}((at : addrtype <: numtype), i) `CONST`_instr{numtype#324}(`I32`_numtype, j) `CONST`_instr{numtype#326}(`I32`_numtype, `%`_num_{i#39410}(n)) `MEMORY.INIT`_instr{memidx#153, dataidx#17}(x, y)]), [`TRAP`_instr]) - -- if (((i!`%`_num_{i#39452}.0 + n) > |$mem(z, x).`BYTES`_meminst{`byte*#1872`}|) \/ ((j!`%`_num_{i#39478}.0 + n) > |$data(z, y).`BYTES`_datainst{`byte*#1873`}|)) + rule `memory.init-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]), [`TRAP`_instr]) + -- if (((i!`%`_num_.0 + n) > |$mem(z, x).`BYTES`_meminst|) \/ ((j!`%`_num_.0 + n) > |$data(z, y).`BYTES`_datainst|)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.init-zero`{state#1499 : state, `instr*#1614` : instr*, z : state, numtype#328 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#330 : numtype, j : num_(`I32`_numtype), numtype#332 : numtype, i#39542 : nat, n : n, memidx#155 : memidx, dataidx#19 : dataidx, x : idx, y : idx}: - `%~>%`(`%;%`_config{state#1499, `instr*#1614`}(z, [`CONST`_instr{numtype#328}((at : addrtype <: numtype), i) `CONST`_instr{numtype#330}(`I32`_numtype, j) `CONST`_instr{numtype#332}(`I32`_numtype, `%`_num_{i#39542}(n)) `MEMORY.INIT`_instr{memidx#155, dataidx#19}(x, y)]), []) + rule `memory.init-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.init-succ`{state#1511 : state, `instr*#1626` : instr*, z : state, numtype#334 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#336 : numtype, j : num_(`I32`_numtype), numtype#338 : numtype, i#39622 : nat, n : n, memidx#157 : memidx, dataidx#21 : dataidx, x : idx, y : idx, numtype#340 : numtype, numtype#342 : numtype, i#39715 : nat, `byte*#1874` : byte*, i#39696 : nat, i#39714 : nat, `numtype?#20` : numtype?, memidx#159 : memidx, memarg#89 : memarg, sz#540 : sz, i#39757 : nat, i#39758 : nat, numtype#345 : numtype, i#39808 : nat, i#39798 : nat, numtype#347 : numtype, i#39844 : nat, i#39834 : nat, numtype#349 : numtype, i#39866 : nat, memidx#161 : memidx, dataidx#23 : dataidx}: - `%~>%`(`%;%`_config{state#1511, `instr*#1626`}(z, [`CONST`_instr{numtype#334}((at : addrtype <: numtype), i) `CONST`_instr{numtype#336}(`I32`_numtype, j) `CONST`_instr{numtype#338}(`I32`_numtype, `%`_num_{i#39622}(n)) `MEMORY.INIT`_instr{memidx#157, dataidx#21}(x, y)]), [`CONST`_instr{numtype#340}((at : addrtype <: numtype), i) `CONST`_instr{numtype#342}(`I32`_numtype, `%`_num_{i#39715}($data(z, y).`BYTES`_datainst{`byte*#1874`}[j!`%`_num_{i#39696}.0]!`%`_byte{i#39714}.0)) `STORE`_instr{`numtype?#20`, memidx#159, memarg#89}(`I32`_numtype, ?(`%`_storeop_{sz#540, i#39757}(`%`_sz{i#39758}(8))), x, $memarg0) `CONST`_instr{numtype#345}((at : addrtype <: numtype), `%`_num_{i#39808}((i!`%`_num_{i#39798}.0 + 1))) `CONST`_instr{numtype#347}(`I32`_numtype, `%`_num_{i#39844}((j!`%`_num_{i#39834}.0 + 1))) `CONST`_instr{numtype#349}(`I32`_numtype, `%`_num_{i#39866}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.INIT`_instr{memidx#161, dataidx#23}(x, y)]) + rule `memory.init-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]), [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, `%`_num_($data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0)) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.INIT`_instr(x, y)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.null-idx`{state#1547 : state, `instr*#1662` : instr*, z : state, heaptype#1343 : heaptype, typeidx#1555 : typeidx, x : idx, heaptype#1345 : heaptype}: - `%~>%`(`%;%`_config{state#1547, `instr*#1662`}(z, [`REF.NULL`_instr{heaptype#1343}(`_IDX`_heaptype{typeidx#1555}(x))]), [`REF.NULL`_instr{heaptype#1345}(($type(z, x) : deftype <: heaptype))]) + rule `ref.null-idx`{z : state, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(`_IDX`_heaptype(x))]), [`REF.NULL`_instr(($type(z, x) : deftype <: heaptype))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule ref.func{state#1559 : state, `instr*#1674` : instr*, z : state, funcidx#2841 : funcidx, x : idx, funcaddr#17 : funcaddr, `funcaddr*#4` : funcaddr*, i#39970 : nat}: - `%~>%`(`%;%`_config{state#1559, `instr*#1674`}(z, [`REF.FUNC`_instr{funcidx#2841}(x)]), [`REF.FUNC_ADDR`_instr{funcaddr#17}($moduleinst(z).`FUNCS`_moduleinst{`funcaddr*#4`}[x!`%`_idx{i#39970}.0])]) + rule ref.func{z : state, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.FUNC`_instr(x)]), [`REF.FUNC_ADDR`_instr($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0])]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.test-true`{state#1571 : state, `instr*#1686` : instr*, store#1913 : store, frame#1931 : frame, s : store, f : frame, ref : ref, reftype#3467 : reftype, rt : reftype, numtype#363 : numtype, i#40142 : nat, rt' : reftype, `deftype*#90` : deftype*, `subtype*#23` : subtype*, `tagtype*#24` : tagtype*, `globaltype*#25` : globaltype*, `memtype*#39` : memtype*, `tabletype*#32` : tabletype*, `deftype*#91` : deftype*, `datatype*#24` : datatype*, `elemtype*#24` : elemtype*, `localtype*#27` : localtype*, `resulttype*#35` : resulttype*, `resulttype?#32` : resulttype?, `funcidx*#61` : funcidx*, moduleinst#23 : moduleinst}: - `%~>%`(`%;%`_config{state#1571, `instr*#1686`}(`%;%`_state{store#1913, frame#1931}(s, f), [(ref : ref <: instr) `REF.TEST`_instr{reftype#3467}(rt)]), [`CONST`_instr{numtype#363}(`I32`_numtype, `%`_num_{i#40142}(1))]) + rule `ref.test-true`{s : store, f : frame, ref : ref, rt : reftype, rt' : reftype}: + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)]), [`CONST`_instr(`I32`_numtype, `%`_num_(1))]) -- Ref_ok: `%|-%:%`(s, ref, rt') - -- Reftype_sub: `%|-%<:%`({`TYPES`{`deftype*#90`} [], `RECS`{`subtype*#23`} [], `TAGS`{`tagtype*#24`} [], `GLOBALS`{`globaltype*#25`} [], `MEMS`{`memtype*#39`} [], `TABLES`{`tabletype*#32`} [], `FUNCS`{`deftype*#91`} [], `DATAS`{`datatype*#24`} [], `ELEMS`{`elemtype*#24`} [], `LOCALS`{`localtype*#27`} [], `LABELS`{`resulttype*#35`} [], `RETURN`{`resulttype?#32`} ?(), `REFS`{`funcidx*#61`} []}, rt', $inst_reftype(f.`MODULE`_frame{moduleinst#23}, rt)) + -- Reftype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt', $inst_reftype(f.`MODULE`_frame, rt)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.test-false`{state#1583 : state, `instr*#1698` : instr*, store#1925 : store, frame#1943 : frame, s : store, f : frame, ref : ref, reftype#3469 : reftype, rt : reftype, numtype#365 : numtype, i#40164 : nat}: - `%~>%`(`%;%`_config{state#1583, `instr*#1698`}(`%;%`_state{store#1925, frame#1943}(s, f), [(ref : ref <: instr) `REF.TEST`_instr{reftype#3469}(rt)]), [`CONST`_instr{numtype#365}(`I32`_numtype, `%`_num_{i#40164}(0))]) + rule `ref.test-false`{s : store, f : frame, ref : ref, rt : reftype}: + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)]), [`CONST`_instr(`I32`_numtype, `%`_num_(0))]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.cast-succeed`{state#1595 : state, `instr*#1710` : instr*, store#1937 : store, frame#1955 : frame, s : store, f : frame, ref : ref, reftype#3471 : reftype, rt : reftype, rt' : reftype, `deftype*#92` : deftype*, `subtype*#24` : subtype*, `tagtype*#25` : tagtype*, `globaltype*#26` : globaltype*, `memtype*#40` : memtype*, `tabletype*#33` : tabletype*, `deftype*#93` : deftype*, `datatype*#25` : datatype*, `elemtype*#25` : elemtype*, `localtype*#28` : localtype*, `resulttype*#36` : resulttype*, `resulttype?#33` : resulttype?, `funcidx*#62` : funcidx*, moduleinst#24 : moduleinst}: - `%~>%`(`%;%`_config{state#1595, `instr*#1710`}(`%;%`_state{store#1937, frame#1955}(s, f), [(ref : ref <: instr) `REF.CAST`_instr{reftype#3471}(rt)]), [(ref : ref <: instr)]) + rule `ref.cast-succeed`{s : store, f : frame, ref : ref, rt : reftype, rt' : reftype}: + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.CAST`_instr(rt)]), [(ref : ref <: instr)]) -- Ref_ok: `%|-%:%`(s, ref, rt') - -- Reftype_sub: `%|-%<:%`({`TYPES`{`deftype*#92`} [], `RECS`{`subtype*#24`} [], `TAGS`{`tagtype*#25`} [], `GLOBALS`{`globaltype*#26`} [], `MEMS`{`memtype*#40`} [], `TABLES`{`tabletype*#33`} [], `FUNCS`{`deftype*#93`} [], `DATAS`{`datatype*#25`} [], `ELEMS`{`elemtype*#25`} [], `LOCALS`{`localtype*#28`} [], `LABELS`{`resulttype*#36`} [], `RETURN`{`resulttype?#33`} ?(), `REFS`{`funcidx*#62`} []}, rt', $inst_reftype(f.`MODULE`_frame{moduleinst#24}, rt)) + -- Reftype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt', $inst_reftype(f.`MODULE`_frame, rt)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `ref.cast-fail`{state#1607 : state, `instr*#1722` : instr*, store#1949 : store, frame#1967 : frame, s : store, f : frame, ref : ref, reftype#3473 : reftype, rt : reftype}: - `%~>%`(`%;%`_config{state#1607, `instr*#1722`}(`%;%`_state{store#1949, frame#1967}(s, f), [(ref : ref <: instr) `REF.CAST`_instr{reftype#3473}(rt)]), [`TRAP`_instr]) + rule `ref.cast-fail`{s : store, f : frame, ref : ref, rt : reftype}: + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.CAST`_instr(rt)]), [`TRAP`_instr]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule struct.new_default{state#1643 : state, `instr*#1758` : instr*, z : state, typeidx#1559 : typeidx, x : idx, `val*` : val*, typeidx#1561 : typeidx, `X*#12683` : fieldtype*, `mut?*` : mut?*, `mut?#1049*` : mut?*, `storagetype#587*` : storagetype*, `zt*` : storagetype*}: - `%~>%`(`%;%`_config{state#1643, `instr*#1758`}(z, [`STRUCT.NEW_DEFAULT`_instr{typeidx#1559}(x)]), (val : val <: instr)*{val <- `val*`} ++ [`STRUCT.NEW`_instr{typeidx#1561}(x)]) - -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12683`}(`%%`_fieldtype{`mut?#1049`, storagetype#587}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1049` <- `mut?#1049*`, storagetype#587 <- `storagetype#587*`, zt <- `zt*`}))) + rule struct.new_default{z : state, x : idx, `val*` : val*, `mut?*` : mut?*, `zt*` : storagetype*}: + `%~>%`(`%;%`_config(z, [`STRUCT.NEW_DEFAULT`_instr(x)]), (val : val <: instr)*{val <- `val*`} ++ [`STRUCT.NEW`_instr(x)]) + -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) -- (if ($default_($unpack(zt)) = ?(val)))*{val <- `val*`, zt <- `zt*`} ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `struct.get-null`{state#1655 : state, `instr*#1770` : instr*, z : state, heaptype#1429 : heaptype, ht : heaptype, `sx?#13` : sx?, typeidx#1563 : typeidx, u32#17 : u32, `sx?` : sx?, x : idx, i : u32}: - `%~>%`(`%;%`_config{state#1655, `instr*#1770`}(z, [`REF.NULL`_instr{heaptype#1429}(ht) `STRUCT.GET`_instr{`sx?#13`, typeidx#1563, u32#17}(sx?{sx <- `sx?`}, x, i)]), [`TRAP`_instr]) + rule `struct.get-null`{z : state, ht : heaptype, `sx?` : sx?, x : idx, i : u32}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `struct.get-struct`{state#1667 : state, `instr*#1782` : instr*, z : state, structaddr#5 : structaddr, a : addr, `sx?#15` : sx?, typeidx#1565 : typeidx, u32#19 : u32, `sx?` : sx?, x : idx, i : u32, `zt*` : storagetype*, i#40378 : nat, `fieldval*#4` : fieldval*, i#40388 : nat, `X*#12698` : fieldtype*, `mut?*` : mut?*, `mut?#1067*` : mut?*, `storagetype#605*` : storagetype*}: - `%~>%`(`%;%`_config{state#1667, `instr*#1782`}(z, [`REF.STRUCT_ADDR`_instr{structaddr#5}(a) `STRUCT.GET`_instr{`sx?#15`, typeidx#1565, u32#19}(sx?{sx <- `sx?`}, x, i)]), [($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40378}.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst{`fieldval*#4`}[i!`%`_u32{i#40388}.0]) : val <: instr)]) - -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12698`}(`%%`_fieldtype{`mut?#1067`, storagetype#605}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1067` <- `mut?#1067*`, storagetype#605 <- `storagetype#605*`, zt <- `zt*`}))) + rule `struct.get-struct`{z : state, a : addr, `sx?` : sx?, x : idx, i : u32, `zt*` : storagetype*, `mut?*` : mut?*}: + `%~>%`(`%;%`_config(z, [`REF.STRUCT_ADDR`_instr(a) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)]), [($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst[i!`%`_u32.0]) : val <: instr)]) + -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule array.new_default{state#1727 : state, `instr*#1842` : instr*, z : state, numtype#371 : numtype, i#40588 : nat, n : n, typeidx#1575 : typeidx, x : idx, val : val, typeidx#1577 : typeidx, u32#27 : u32, i#40640 : nat, fieldtype#39 : fieldtype, `mut?#1097` : mut?, storagetype#635 : storagetype, `mut?` : mut?, zt : storagetype}: - `%~>%`(`%;%`_config{state#1727, `instr*#1842`}(z, [`CONST`_instr{numtype#371}(`I32`_numtype, `%`_num_{i#40588}(n)) `ARRAY.NEW_DEFAULT`_instr{typeidx#1575}(x)]), (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1577, u32#27}(x, `%`_u32{i#40640}(n))]) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#39}(`%%`_fieldtype{`mut?#1097`, storagetype#635}(mut?{mut <- `mut?`}, zt))) + rule array.new_default{z : state, n : n, x : idx, val : val, `mut?` : mut?, zt : storagetype}: + `%~>%`(`%;%`_config(z, [`CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DEFAULT`_instr(x)]), (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) -- if ($default_($unpack(zt)) = ?(val)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.new_elem-oob`{state#1763 : state, `instr*#1878` : instr*, z : state, numtype#373 : numtype, i : num_(`I32`_numtype), numtype#375 : numtype, i#40752 : nat, n : n, typeidx#1581 : typeidx, elemidx#27 : elemidx, x : idx, y : idx, i#40794 : nat, `ref*#18` : ref*}: - `%~>%`(`%;%`_config{state#1763, `instr*#1878`}(z, [`CONST`_instr{numtype#373}(`I32`_numtype, i) `CONST`_instr{numtype#375}(`I32`_numtype, `%`_num_{i#40752}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1581, elemidx#27}(x, y)]), [`TRAP`_instr]) - -- if ((i!`%`_num_{i#40794}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#18`}|) + rule `array.new_elem-oob`{z : state, i : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)]), [`TRAP`_instr]) + -- if ((i!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.new_elem-alloc`{state#1775 : state, `instr*#1890` : instr*, z : state, numtype#377 : numtype, i : num_(`I32`_numtype), numtype#379 : numtype, i#40844 : nat, n : n, typeidx#1583 : typeidx, elemidx#29 : elemidx, x : idx, y : idx, `ref*` : ref*, typeidx#1585 : typeidx, u32#31 : u32, i#40910 : nat, `ref*#19` : ref*, i#40932 : nat}: - `%~>%`(`%;%`_config{state#1775, `instr*#1890`}(z, [`CONST`_instr{numtype#377}(`I32`_numtype, i) `CONST`_instr{numtype#379}(`I32`_numtype, `%`_num_{i#40844}(n)) `ARRAY.NEW_ELEM`_instr{typeidx#1583, elemidx#29}(x, y)]), (ref : ref <: instr)^n{ref <- `ref*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1585, u32#31}(x, `%`_u32{i#40910}(n))]) - -- if (ref^n{ref <- `ref*`} = $elem(z, y).`REFS`_eleminst{`ref*#19`}[i!`%`_num_{i#40932}.0 : n]) + rule `array.new_elem-alloc`{z : state, i : num_(`I32`_numtype), n : n, x : idx, y : idx, `ref*` : ref*}: + `%~>%`(`%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)]), (ref : ref <: instr)^n{ref <- `ref*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]) + -- if (ref^n{ref <- `ref*`} = $elem(z, y).`REFS`_eleminst[i!`%`_num_.0 : n]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.new_data-oob`{state#1787 : state, `instr*#1902` : instr*, z : state, numtype#381 : numtype, i : num_(`I32`_numtype), numtype#383 : numtype, i#40970 : nat, n : n, typeidx#1587 : typeidx, dataidx#27 : dataidx, x : idx, y : idx, fieldtype#43 : fieldtype, `mut?#1121` : mut?, storagetype#659 : storagetype, `mut?` : mut?, zt : storagetype, i#41024 : nat, `byte*#1875` : byte*}: - `%~>%`(`%;%`_config{state#1787, `instr*#1902`}(z, [`CONST`_instr{numtype#381}(`I32`_numtype, i) `CONST`_instr{numtype#383}(`I32`_numtype, `%`_num_{i#40970}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1587, dataidx#27}(x, y)]), [`TRAP`_instr]) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#43}(`%%`_fieldtype{`mut?#1121`, storagetype#659}(mut?{mut <- `mut?`}, zt))) - -- if ((i!`%`_num_{i#41024}.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst{`byte*#1875`}|) + rule `array.new_data-oob`{z : state, i : num_(`I32`_numtype), n : n, x : idx, y : idx, `mut?` : mut?, zt : storagetype}: + `%~>%`(`%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)]), [`TRAP`_instr]) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + -- if ((i!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.new_data-num`{state#1799 : state, `instr*#1914` : instr*, z : state, numtype#385 : numtype, i : num_(`I32`_numtype), numtype#387 : numtype, i#41074 : nat, n : n, typeidx#1589 : typeidx, dataidx#29 : dataidx, x : idx, y : idx, zt : storagetype, `c*` : lit_(zt)*, typeidx#1591 : typeidx, u32#33 : u32, i#41140 : nat, fieldtype#45 : fieldtype, `mut?#1133` : mut?, storagetype#671 : storagetype, `mut?` : mut?, `byte*#1876` : byte*, i#41174 : nat}: - `%~>%`(`%;%`_config{state#1799, `instr*#1914`}(z, [`CONST`_instr{numtype#385}(`I32`_numtype, i) `CONST`_instr{numtype#387}(`I32`_numtype, `%`_num_{i#41074}(n)) `ARRAY.NEW_DATA`_instr{typeidx#1589, dataidx#29}(x, y)]), $const($cunpack(zt), $cunpacknum_(zt, c))^n{c <- `c*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1591, u32#33}(x, `%`_u32{i#41140}(n))]) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#45}(`%%`_fieldtype{`mut?#1133`, storagetype#671}(mut?{mut <- `mut?`}, zt))) - -- if ($concatn_(syntax byte, $zbytes_(zt, c)^n{c <- `c*`}, ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) = $data(z, y).`BYTES`_datainst{`byte*#1876`}[i!`%`_num_{i#41174}.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `array.new_data-num`{z : state, i : num_(`I32`_numtype), n : n, x : idx, y : idx, zt : storagetype, `c*` : lit_(zt)*, `mut?` : mut?}: + `%~>%`(`%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)]), $const($cunpack(zt), $cunpacknum_(zt, c))^n{c <- `c*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + -- if ($concatn_(syntax byte, $zbytes_(zt, c)^n{c <- `c*`}, ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) = $data(z, y).`BYTES`_datainst[i!`%`_num_.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.get-null`{state#1811 : state, `instr*#1926` : instr*, z : state, heaptype#1433 : heaptype, ht : heaptype, numtype#389 : numtype, i : num_(`I32`_numtype), `sx?#17` : sx?, typeidx#1593 : typeidx, `sx?` : sx?, x : idx}: - `%~>%`(`%;%`_config{state#1811, `instr*#1926`}(z, [`REF.NULL`_instr{heaptype#1433}(ht) `CONST`_instr{numtype#389}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#17`, typeidx#1593}(sx?{sx <- `sx?`}, x)]), [`TRAP`_instr]) + rule `array.get-null`{z : state, ht : heaptype, i : num_(`I32`_numtype), `sx?` : sx?, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.get-oob`{state#1823 : state, `instr*#1938` : instr*, z : state, arrayaddr#5 : arrayaddr, a : addr, numtype#391 : numtype, i : num_(`I32`_numtype), `sx?#19` : sx?, typeidx#1595 : typeidx, `sx?` : sx?, x : idx, i#41392 : nat, `fieldval*#6` : fieldval*}: - `%~>%`(`%;%`_config{state#1823, `instr*#1938`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#5}(a) `CONST`_instr{numtype#391}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#19`, typeidx#1595}(sx?{sx <- `sx?`}, x)]), [`TRAP`_instr]) - -- if (i!`%`_num_{i#41392}.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#6`}|) + rule `array.get-oob`{z : state, a : addr, i : num_(`I32`_numtype), `sx?` : sx?, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]), [`TRAP`_instr]) + -- if (i!`%`_num_.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.get-array`{state#1835 : state, `instr*#1950` : instr*, z : state, arrayaddr#7 : arrayaddr, a : addr, numtype#393 : numtype, i : num_(`I32`_numtype), `sx?#21` : sx?, typeidx#1597 : typeidx, `sx?` : sx?, x : idx, zt : storagetype, `fieldval*#7` : fieldval*, i#41467 : nat, fieldtype#47 : fieldtype, `mut?#1145` : mut?, storagetype#683 : storagetype, `mut?` : mut?}: - `%~>%`(`%;%`_config{state#1835, `instr*#1950`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#7}(a) `CONST`_instr{numtype#393}(`I32`_numtype, i) `ARRAY.GET`_instr{`sx?#21`, typeidx#1597}(sx?{sx <- `sx?`}, x)]), [($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#7`}[i!`%`_num_{i#41467}.0]) : val <: instr)]) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#47}(`%%`_fieldtype{`mut?#1145`, storagetype#683}(mut?{mut <- `mut?`}, zt))) + rule `array.get-array`{z : state, a : addr, i : num_(`I32`_numtype), `sx?` : sx?, x : idx, zt : storagetype, `mut?` : mut?}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]), [($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst[i!`%`_num_.0]) : val <: instr)]) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.len-null`{state#1919 : state, `instr*#2034` : instr*, z : state, heaptype#1437 : heaptype, ht : heaptype}: - `%~>%`(`%;%`_config{state#1919, `instr*#2034`}(z, [`REF.NULL`_instr{heaptype#1437}(ht) `ARRAY.LEN`_instr]), [`TRAP`_instr]) + rule `array.len-null`{z : state, ht : heaptype}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `ARRAY.LEN`_instr]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.len-array`{state#1931 : state, `instr*#2046` : instr*, z : state, arrayaddr#13 : arrayaddr, a : addr, numtype#401 : numtype, i#41621 : nat, `fieldval*#9` : fieldval*}: - `%~>%`(`%;%`_config{state#1931, `instr*#2046`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#13}(a) `ARRAY.LEN`_instr]), [`CONST`_instr{numtype#401}(`I32`_numtype, `%`_num_{i#41621}(|$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#9`}|))]) + rule `array.len-array`{z : state, a : addr}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `ARRAY.LEN`_instr]), [`CONST`_instr(`I32`_numtype, `%`_num_(|$arrayinst(z)[a].`FIELDS`_arrayinst|))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.fill-null`{state#1943 : state, `instr*#2058` : instr*, z : state, heaptype#1439 : heaptype, ht : heaptype, numtype#403 : numtype, i : num_(`I32`_numtype), val : val, numtype#405 : numtype, i#41659 : nat, n : n, typeidx#1605 : typeidx, x : idx}: - `%~>%`(`%;%`_config{state#1943, `instr*#2058`}(z, [`REF.NULL`_instr{heaptype#1439}(ht) `CONST`_instr{numtype#403}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#405}(`I32`_numtype, `%`_num_{i#41659}(n)) `ARRAY.FILL`_instr{typeidx#1605}(x)]), [`TRAP`_instr]) + rule `array.fill-null`{z : state, ht : heaptype, i : num_(`I32`_numtype), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.fill-oob`{state#1955 : state, `instr*#2070` : instr*, z : state, arrayaddr#15 : arrayaddr, a : addr, numtype#407 : numtype, i : num_(`I32`_numtype), val : val, numtype#409 : numtype, i#41711 : nat, n : n, typeidx#1607 : typeidx, x : idx, i#41739 : nat, `fieldval*#10` : fieldval*}: - `%~>%`(`%;%`_config{state#1955, `instr*#2070`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#15}(a) `CONST`_instr{numtype#407}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#409}(`I32`_numtype, `%`_num_{i#41711}(n)) `ARRAY.FILL`_instr{typeidx#1607}(x)]), [`TRAP`_instr]) - -- if ((i!`%`_num_{i#41739}.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#10`}|) + rule `array.fill-oob`{z : state, a : addr, i : num_(`I32`_numtype), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]), [`TRAP`_instr]) + -- if ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.fill-zero`{state#1967 : state, `instr*#2082` : instr*, z : state, arrayaddr#17 : arrayaddr, a : addr, numtype#411 : numtype, i : num_(`I32`_numtype), val : val, numtype#413 : numtype, i#41777 : nat, n : n, typeidx#1609 : typeidx, x : idx}: - `%~>%`(`%;%`_config{state#1967, `instr*#2082`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#17}(a) `CONST`_instr{numtype#411}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#413}(`I32`_numtype, `%`_num_{i#41777}(n)) `ARRAY.FILL`_instr{typeidx#1609}(x)]), []) + rule `array.fill-zero`{z : state, a : addr, i : num_(`I32`_numtype), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.fill-succ`{state#1979 : state, `instr*#2094` : instr*, z : state, arrayaddr#19 : arrayaddr, a : addr, numtype#415 : numtype, i : num_(`I32`_numtype), val : val, numtype#417 : numtype, i#41829 : nat, n : n, typeidx#1611 : typeidx, x : idx, arrayaddr#21 : arrayaddr, numtype#419 : numtype, typeidx#1613 : typeidx, arrayaddr#23 : arrayaddr, numtype#421 : numtype, i#41905 : nat, i#41895 : nat, numtype#423 : numtype, i#41927 : nat, typeidx#1615 : typeidx}: - `%~>%`(`%;%`_config{state#1979, `instr*#2094`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#19}(a) `CONST`_instr{numtype#415}(`I32`_numtype, i) (val : val <: instr) `CONST`_instr{numtype#417}(`I32`_numtype, `%`_num_{i#41829}(n)) `ARRAY.FILL`_instr{typeidx#1611}(x)]), [`REF.ARRAY_ADDR`_instr{arrayaddr#21}(a) `CONST`_instr{numtype#419}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1613}(x) `REF.ARRAY_ADDR`_instr{arrayaddr#23}(a) `CONST`_instr{numtype#421}(`I32`_numtype, `%`_num_{i#41905}((i!`%`_num_{i#41895}.0 + 1))) (val : val <: instr) `CONST`_instr{numtype#423}(`I32`_numtype, `%`_num_{i#41927}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.FILL`_instr{typeidx#1615}(x)]) + rule `array.fill-succ`{z : state, a : addr, i : num_(`I32`_numtype), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]), [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.FILL`_instr(x)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-null1`{state#1991 : state, `instr*#2106` : instr*, z : state, heaptype#1441 : heaptype, ht_1 : heaptype, numtype#425 : numtype, i_1 : num_(`I32`_numtype), ref : ref, numtype#427 : numtype, i_2 : num_(`I32`_numtype), numtype#429 : numtype, i#41993 : nat, n : n, typeidx#1617 : typeidx, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config{state#1991, `instr*#2106`}(z, [`REF.NULL`_instr{heaptype#1441}(ht_1) `CONST`_instr{numtype#425}(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr{numtype#427}(`I32`_numtype, i_2) `CONST`_instr{numtype#429}(`I32`_numtype, `%`_num_{i#41993}(n)) `ARRAY.COPY`_instr{typeidx#1617}(x_1, x_2)]), [`TRAP`_instr]) + rule `array.copy-null1`{z : state, ht_1 : heaptype, i_1 : num_(`I32`_numtype), ref : ref, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht_1) `CONST`_instr(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-null2`{state#2003 : state, `instr*#2118` : instr*, z : state, ref : ref, numtype#431 : numtype, i_1 : num_(`I32`_numtype), heaptype#1443 : heaptype, ht_2 : heaptype, numtype#433 : numtype, i_2 : num_(`I32`_numtype), numtype#435 : numtype, i#42073 : nat, n : n, typeidx#1620 : typeidx, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config{state#2003, `instr*#2118`}(z, [(ref : ref <: instr) `CONST`_instr{numtype#431}(`I32`_numtype, i_1) `REF.NULL`_instr{heaptype#1443}(ht_2) `CONST`_instr{numtype#433}(`I32`_numtype, i_2) `CONST`_instr{numtype#435}(`I32`_numtype, `%`_num_{i#42073}(n)) `ARRAY.COPY`_instr{typeidx#1620}(x_1, x_2)]), [`TRAP`_instr]) + rule `array.copy-null2`{z : state, ref : ref, i_1 : num_(`I32`_numtype), ht_2 : heaptype, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [(ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_1) `REF.NULL`_instr(ht_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-oob1`{state#2015 : state, `instr*#2130` : instr*, z : state, arrayaddr#25 : arrayaddr, a_1 : addr, numtype#437 : numtype, i_1 : num_(`I32`_numtype), arrayaddr#27 : arrayaddr, a_2 : addr, numtype#439 : numtype, i_2 : num_(`I32`_numtype), numtype#441 : numtype, i#42153 : nat, n : n, typeidx#1623 : typeidx, x_1 : idx, x_2 : idx, i#42195 : nat, `fieldval*#11` : fieldval*}: - `%~>%`(`%;%`_config{state#2015, `instr*#2130`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#25}(a_1) `CONST`_instr{numtype#437}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#27}(a_2) `CONST`_instr{numtype#439}(`I32`_numtype, i_2) `CONST`_instr{numtype#441}(`I32`_numtype, `%`_num_{i#42153}(n)) `ARRAY.COPY`_instr{typeidx#1623}(x_1, x_2)]), [`TRAP`_instr]) - -- if ((i_1!`%`_num_{i#42195}.0 + n) > |$arrayinst(z)[a_1].`FIELDS`_arrayinst{`fieldval*#11`}|) + rule `array.copy-oob1`{z : state, a_1 : addr, i_1 : num_(`I32`_numtype), a_2 : addr, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`TRAP`_instr]) + -- if ((i_1!`%`_num_.0 + n) > |$arrayinst(z)[a_1].`FIELDS`_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-oob2`{state#2027 : state, `instr*#2142` : instr*, z : state, arrayaddr#29 : arrayaddr, a_1 : addr, numtype#443 : numtype, i_1 : num_(`I32`_numtype), arrayaddr#31 : arrayaddr, a_2 : addr, numtype#445 : numtype, i_2 : num_(`I32`_numtype), numtype#447 : numtype, i#42247 : nat, n : n, typeidx#1626 : typeidx, x_1 : idx, x_2 : idx, i#42289 : nat, `fieldval*#12` : fieldval*}: - `%~>%`(`%;%`_config{state#2027, `instr*#2142`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#29}(a_1) `CONST`_instr{numtype#443}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#31}(a_2) `CONST`_instr{numtype#445}(`I32`_numtype, i_2) `CONST`_instr{numtype#447}(`I32`_numtype, `%`_num_{i#42247}(n)) `ARRAY.COPY`_instr{typeidx#1626}(x_1, x_2)]), [`TRAP`_instr]) - -- if ((i_2!`%`_num_{i#42289}.0 + n) > |$arrayinst(z)[a_2].`FIELDS`_arrayinst{`fieldval*#12`}|) + rule `array.copy-oob2`{z : state, a_1 : addr, i_1 : num_(`I32`_numtype), a_2 : addr, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`TRAP`_instr]) + -- if ((i_2!`%`_num_.0 + n) > |$arrayinst(z)[a_2].`FIELDS`_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-zero`{state#2039 : state, `instr*#2154` : instr*, z : state, arrayaddr#33 : arrayaddr, a_1 : addr, numtype#449 : numtype, i_1 : num_(`I32`_numtype), arrayaddr#35 : arrayaddr, a_2 : addr, numtype#451 : numtype, i_2 : num_(`I32`_numtype), numtype#453 : numtype, i#42341 : nat, n : n, typeidx#1629 : typeidx, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config{state#2039, `instr*#2154`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#33}(a_1) `CONST`_instr{numtype#449}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#35}(a_2) `CONST`_instr{numtype#451}(`I32`_numtype, i_2) `CONST`_instr{numtype#453}(`I32`_numtype, `%`_num_{i#42341}(n)) `ARRAY.COPY`_instr{typeidx#1629}(x_1, x_2)]), []) + rule `array.copy-zero`{z : state, a_1 : addr, i_1 : num_(`I32`_numtype), a_2 : addr, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-le`{state#2051 : state, `instr*#2166` : instr*, z : state, arrayaddr#37 : arrayaddr, a_1 : addr, numtype#455 : numtype, i_1 : num_(`I32`_numtype), arrayaddr#39 : arrayaddr, a_2 : addr, numtype#457 : numtype, i_2 : num_(`I32`_numtype), numtype#459 : numtype, i#42421 : nat, n : n, typeidx#1632 : typeidx, x_1 : idx, x_2 : idx, arrayaddr#41 : arrayaddr, numtype#461 : numtype, arrayaddr#43 : arrayaddr, numtype#463 : numtype, `sx?#23` : sx?, typeidx#1635 : typeidx, `sx?` : sx?, typeidx#1637 : typeidx, arrayaddr#45 : arrayaddr, numtype#465 : numtype, i#42574 : nat, i#42564 : nat, arrayaddr#47 : arrayaddr, numtype#467 : numtype, i#42610 : nat, i#42600 : nat, numtype#469 : numtype, i#42632 : nat, typeidx#1639 : typeidx, fieldtype#51 : fieldtype, `mut?#1169` : mut?, storagetype#707 : storagetype, `mut?` : mut?, zt_2 : storagetype, i#42690 : nat, i#42700 : nat}: - `%~>%`(`%;%`_config{state#2051, `instr*#2166`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#37}(a_1) `CONST`_instr{numtype#455}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#39}(a_2) `CONST`_instr{numtype#457}(`I32`_numtype, i_2) `CONST`_instr{numtype#459}(`I32`_numtype, `%`_num_{i#42421}(n)) `ARRAY.COPY`_instr{typeidx#1632}(x_1, x_2)]), [`REF.ARRAY_ADDR`_instr{arrayaddr#41}(a_1) `CONST`_instr{numtype#461}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#43}(a_2) `CONST`_instr{numtype#463}(`I32`_numtype, i_2) `ARRAY.GET`_instr{`sx?#23`, typeidx#1635}(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr{typeidx#1637}(x_1) `REF.ARRAY_ADDR`_instr{arrayaddr#45}(a_1) `CONST`_instr{numtype#465}(`I32`_numtype, `%`_num_{i#42574}((i_1!`%`_num_{i#42564}.0 + 1))) `REF.ARRAY_ADDR`_instr{arrayaddr#47}(a_2) `CONST`_instr{numtype#467}(`I32`_numtype, `%`_num_{i#42610}((i_2!`%`_num_{i#42600}.0 + 1))) `CONST`_instr{numtype#469}(`I32`_numtype, `%`_num_{i#42632}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr{typeidx#1639}(x_1, x_2)]) + rule `array.copy-le`{z : state, a_1 : addr, i_1 : num_(`I32`_numtype), a_2 : addr, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx, `sx?` : sx?, `mut?` : mut?, zt_2 : storagetype}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr(x_1) `REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, `%`_num_((i_1!`%`_num_.0 + 1))) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, `%`_num_((i_2!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr(x_1, x_2)]) -- otherwise - -- Expand: `%~~%`($type(z, x_2), `ARRAY`_comptype{fieldtype#51}(`%%`_fieldtype{`mut?#1169`, storagetype#707}(mut?{mut <- `mut?`}, zt_2))) - -- if ((i_1!`%`_num_{i#42690}.0 <= i_2!`%`_num_{i#42700}.0) /\ (sx?{sx <- `sx?`} = $sx(zt_2))) + -- Expand: `%~~%`($type(z, x_2), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))) + -- if ((i_1!`%`_num_.0 <= i_2!`%`_num_.0) /\ (sx?{sx <- `sx?`} = $sx(zt_2))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-gt`{state#2063 : state, `instr*#2178` : instr*, z : state, arrayaddr#49 : arrayaddr, a_1 : addr, numtype#471 : numtype, i_1 : num_(`I32`_numtype), arrayaddr#51 : arrayaddr, a_2 : addr, numtype#473 : numtype, i_2 : num_(`I32`_numtype), numtype#475 : numtype, i#42752 : nat, n : n, typeidx#1642 : typeidx, x_1 : idx, x_2 : idx, arrayaddr#53 : arrayaddr, numtype#477 : numtype, i#42816 : nat, i#42806 : nat, arrayaddr#55 : arrayaddr, numtype#479 : numtype, i#42852 : nat, i#42842 : nat, `sx?#25` : sx?, typeidx#1645 : typeidx, `sx?` : sx?, typeidx#1647 : typeidx, arrayaddr#57 : arrayaddr, numtype#481 : numtype, arrayaddr#59 : arrayaddr, numtype#483 : numtype, numtype#485 : numtype, i#42963 : nat, typeidx#1649 : typeidx, fieldtype#53 : fieldtype, `mut?#1181` : mut?, storagetype#719 : storagetype, `mut?` : mut?, zt_2 : storagetype}: - `%~>%`(`%;%`_config{state#2063, `instr*#2178`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#49}(a_1) `CONST`_instr{numtype#471}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#51}(a_2) `CONST`_instr{numtype#473}(`I32`_numtype, i_2) `CONST`_instr{numtype#475}(`I32`_numtype, `%`_num_{i#42752}(n)) `ARRAY.COPY`_instr{typeidx#1642}(x_1, x_2)]), [`REF.ARRAY_ADDR`_instr{arrayaddr#53}(a_1) `CONST`_instr{numtype#477}(`I32`_numtype, `%`_num_{i#42816}(((((i_1!`%`_num_{i#42806}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `REF.ARRAY_ADDR`_instr{arrayaddr#55}(a_2) `CONST`_instr{numtype#479}(`I32`_numtype, `%`_num_{i#42852}(((((i_2!`%`_num_{i#42842}.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.GET`_instr{`sx?#25`, typeidx#1645}(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr{typeidx#1647}(x_1) `REF.ARRAY_ADDR`_instr{arrayaddr#57}(a_1) `CONST`_instr{numtype#481}(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr{arrayaddr#59}(a_2) `CONST`_instr{numtype#483}(`I32`_numtype, i_2) `CONST`_instr{numtype#485}(`I32`_numtype, `%`_num_{i#42963}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr{typeidx#1649}(x_1, x_2)]) + rule `array.copy-gt`{z : state, a_1 : addr, i_1 : num_(`I32`_numtype), a_2 : addr, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx, `sx?` : sx?, `mut?` : mut?, zt_2 : storagetype}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr(x_1) `REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr(x_1, x_2)]) -- otherwise - -- Expand: `%~~%`($type(z, x_2), `ARRAY`_comptype{fieldtype#53}(`%%`_fieldtype{`mut?#1181`, storagetype#719}(mut?{mut <- `mut?`}, zt_2))) + -- Expand: `%~~%`($type(z, x_2), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))) -- if (sx?{sx <- `sx?`} = $sx(zt_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-null`{state#2075 : state, `instr*#2190` : instr*, z : state, heaptype#1445 : heaptype, ht : heaptype, numtype#487 : numtype, i : num_(`I32`_numtype), numtype#489 : numtype, j : num_(`I32`_numtype), numtype#491 : numtype, i#43055 : nat, n : n, typeidx#1652 : typeidx, elemidx#31 : elemidx, x : idx, y : idx}: - `%~>%`(`%;%`_config{state#2075, `instr*#2190`}(z, [`REF.NULL`_instr{heaptype#1445}(ht) `CONST`_instr{numtype#487}(`I32`_numtype, i) `CONST`_instr{numtype#489}(`I32`_numtype, j) `CONST`_instr{numtype#491}(`I32`_numtype, `%`_num_{i#43055}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1652, elemidx#31}(x, y)]), [`TRAP`_instr]) + rule `array.init_elem-null`{z : state, ht : heaptype, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-oob1`{state#2087 : state, `instr*#2202` : instr*, z : state, arrayaddr#61 : arrayaddr, a : addr, numtype#493 : numtype, i : num_(`I32`_numtype), numtype#495 : numtype, j : num_(`I32`_numtype), numtype#497 : numtype, i#43135 : nat, n : n, typeidx#1654 : typeidx, elemidx#33 : elemidx, x : idx, y : idx, i#43177 : nat, `fieldval*#13` : fieldval*}: - `%~>%`(`%;%`_config{state#2087, `instr*#2202`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#61}(a) `CONST`_instr{numtype#493}(`I32`_numtype, i) `CONST`_instr{numtype#495}(`I32`_numtype, j) `CONST`_instr{numtype#497}(`I32`_numtype, `%`_num_{i#43135}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1654, elemidx#33}(x, y)]), [`TRAP`_instr]) - -- if ((i!`%`_num_{i#43177}.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#13`}|) + rule `array.init_elem-oob1`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), [`TRAP`_instr]) + -- if ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-oob2`{state#2099 : state, `instr*#2214` : instr*, z : state, arrayaddr#63 : arrayaddr, a : addr, numtype#499 : numtype, i : num_(`I32`_numtype), numtype#501 : numtype, j : num_(`I32`_numtype), numtype#503 : numtype, i#43229 : nat, n : n, typeidx#1656 : typeidx, elemidx#35 : elemidx, x : idx, y : idx, i#43271 : nat, `ref*#20` : ref*}: - `%~>%`(`%;%`_config{state#2099, `instr*#2214`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#63}(a) `CONST`_instr{numtype#499}(`I32`_numtype, i) `CONST`_instr{numtype#501}(`I32`_numtype, j) `CONST`_instr{numtype#503}(`I32`_numtype, `%`_num_{i#43229}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1656, elemidx#35}(x, y)]), [`TRAP`_instr]) - -- if ((j!`%`_num_{i#43271}.0 + n) > |$elem(z, y).`REFS`_eleminst{`ref*#20`}|) + rule `array.init_elem-oob2`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), [`TRAP`_instr]) + -- if ((j!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-zero`{state#2111 : state, `instr*#2226` : instr*, z : state, arrayaddr#65 : arrayaddr, a : addr, numtype#505 : numtype, i : num_(`I32`_numtype), numtype#507 : numtype, j : num_(`I32`_numtype), numtype#509 : numtype, i#43335 : nat, n : n, typeidx#1658 : typeidx, elemidx#37 : elemidx, x : idx, y : idx}: - `%~>%`(`%;%`_config{state#2111, `instr*#2226`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#65}(a) `CONST`_instr{numtype#505}(`I32`_numtype, i) `CONST`_instr{numtype#507}(`I32`_numtype, j) `CONST`_instr{numtype#509}(`I32`_numtype, `%`_num_{i#43335}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1658, elemidx#37}(x, y)]), []) + rule `array.init_elem-zero`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-succ`{state#2123 : state, `instr*#2238` : instr*, z : state, arrayaddr#67 : arrayaddr, a : addr, numtype#511 : numtype, i : num_(`I32`_numtype), numtype#513 : numtype, j : num_(`I32`_numtype), numtype#515 : numtype, i#43415 : nat, n : n, typeidx#1660 : typeidx, elemidx#39 : elemidx, x : idx, y : idx, arrayaddr#69 : arrayaddr, numtype#517 : numtype, ref : ref, typeidx#1662 : typeidx, arrayaddr#71 : arrayaddr, numtype#519 : numtype, i#43505 : nat, i#43495 : nat, numtype#521 : numtype, i#43541 : nat, i#43531 : nat, numtype#523 : numtype, i#43563 : nat, typeidx#1664 : typeidx, elemidx#41 : elemidx, `ref*#21` : ref*, i#43613 : nat}: - `%~>%`(`%;%`_config{state#2123, `instr*#2238`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#67}(a) `CONST`_instr{numtype#511}(`I32`_numtype, i) `CONST`_instr{numtype#513}(`I32`_numtype, j) `CONST`_instr{numtype#515}(`I32`_numtype, `%`_num_{i#43415}(n)) `ARRAY.INIT_ELEM`_instr{typeidx#1660, elemidx#39}(x, y)]), [`REF.ARRAY_ADDR`_instr{arrayaddr#69}(a) `CONST`_instr{numtype#517}(`I32`_numtype, i) (ref : ref <: instr) `ARRAY.SET`_instr{typeidx#1662}(x) `REF.ARRAY_ADDR`_instr{arrayaddr#71}(a) `CONST`_instr{numtype#519}(`I32`_numtype, `%`_num_{i#43505}((i!`%`_num_{i#43495}.0 + 1))) `CONST`_instr{numtype#521}(`I32`_numtype, `%`_num_{i#43541}((j!`%`_num_{i#43531}.0 + 1))) `CONST`_instr{numtype#523}(`I32`_numtype, `%`_num_{i#43563}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_ELEM`_instr{typeidx#1664, elemidx#41}(x, y)]) + rule `array.init_elem-succ`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx, ref : ref}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (ref : ref <: instr) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_ELEM`_instr(x, y)]) -- otherwise - -- if (ref = $elem(z, y).`REFS`_eleminst{`ref*#21`}[j!`%`_num_{i#43613}.0]) + -- if (ref = $elem(z, y).`REFS`_eleminst[j!`%`_num_.0]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-null`{state#2135 : state, `instr*#2250` : instr*, z : state, heaptype#1447 : heaptype, ht : heaptype, numtype#525 : numtype, i : num_(`I32`_numtype), numtype#527 : numtype, j : num_(`I32`_numtype), numtype#529 : numtype, i#43665 : nat, n : n, typeidx#1666 : typeidx, dataidx#31 : dataidx, x : idx, y : idx}: - `%~>%`(`%;%`_config{state#2135, `instr*#2250`}(z, [`REF.NULL`_instr{heaptype#1447}(ht) `CONST`_instr{numtype#525}(`I32`_numtype, i) `CONST`_instr{numtype#527}(`I32`_numtype, j) `CONST`_instr{numtype#529}(`I32`_numtype, `%`_num_{i#43665}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1666, dataidx#31}(x, y)]), [`TRAP`_instr]) + rule `array.init_data-null`{z : state, ht : heaptype, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), [`TRAP`_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-oob1`{state#2147 : state, `instr*#2262` : instr*, z : state, arrayaddr#73 : arrayaddr, a : addr, numtype#531 : numtype, i : num_(`I32`_numtype), numtype#533 : numtype, j : num_(`I32`_numtype), numtype#535 : numtype, i#43745 : nat, n : n, typeidx#1668 : typeidx, dataidx#33 : dataidx, x : idx, y : idx, i#43787 : nat, `fieldval*#14` : fieldval*}: - `%~>%`(`%;%`_config{state#2147, `instr*#2262`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#73}(a) `CONST`_instr{numtype#531}(`I32`_numtype, i) `CONST`_instr{numtype#533}(`I32`_numtype, j) `CONST`_instr{numtype#535}(`I32`_numtype, `%`_num_{i#43745}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1668, dataidx#33}(x, y)]), [`TRAP`_instr]) - -- if ((i!`%`_num_{i#43787}.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#14`}|) + rule `array.init_data-oob1`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), [`TRAP`_instr]) + -- if ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-oob2`{state#2159 : state, `instr*#2274` : instr*, z : state, arrayaddr#75 : arrayaddr, a : addr, numtype#537 : numtype, i : num_(`I32`_numtype), numtype#539 : numtype, j : num_(`I32`_numtype), numtype#541 : numtype, i#43839 : nat, n : n, typeidx#1670 : typeidx, dataidx#35 : dataidx, x : idx, y : idx, fieldtype#55 : fieldtype, `mut?#1193` : mut?, storagetype#731 : storagetype, `mut?` : mut?, zt : storagetype, i#43893 : nat, `byte*#1877` : byte*}: - `%~>%`(`%;%`_config{state#2159, `instr*#2274`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#75}(a) `CONST`_instr{numtype#537}(`I32`_numtype, i) `CONST`_instr{numtype#539}(`I32`_numtype, j) `CONST`_instr{numtype#541}(`I32`_numtype, `%`_num_{i#43839}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1670, dataidx#35}(x, y)]), [`TRAP`_instr]) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#55}(`%%`_fieldtype{`mut?#1193`, storagetype#731}(mut?{mut <- `mut?`}, zt))) - -- if ((j!`%`_num_{i#43893}.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst{`byte*#1877`}|) + rule `array.init_data-oob2`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx, `mut?` : mut?, zt : storagetype}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), [`TRAP`_instr]) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + -- if ((j!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-zero`{state#2171 : state, `instr*#2286` : instr*, z : state, arrayaddr#77 : arrayaddr, a : addr, numtype#543 : numtype, i : num_(`I32`_numtype), numtype#545 : numtype, j : num_(`I32`_numtype), numtype#547 : numtype, i#43957 : nat, n : n, typeidx#1672 : typeidx, dataidx#37 : dataidx, x : idx, y : idx}: - `%~>%`(`%;%`_config{state#2171, `instr*#2286`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#77}(a) `CONST`_instr{numtype#543}(`I32`_numtype, i) `CONST`_instr{numtype#545}(`I32`_numtype, j) `CONST`_instr{numtype#547}(`I32`_numtype, `%`_num_{i#43957}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1672, dataidx#37}(x, y)]), []) + rule `array.init_data-zero`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-num`{state#2183 : state, `instr*#2298` : instr*, z : state, arrayaddr#79 : arrayaddr, a : addr, numtype#549 : numtype, i : num_(`I32`_numtype), numtype#551 : numtype, j : num_(`I32`_numtype), numtype#553 : numtype, i#44037 : nat, n : n, typeidx#1674 : typeidx, dataidx#39 : dataidx, x : idx, y : idx, arrayaddr#81 : arrayaddr, numtype#555 : numtype, zt : storagetype, c : lit_(zt), typeidx#1676 : typeidx, arrayaddr#83 : arrayaddr, numtype#557 : numtype, i#44127 : nat, i#44117 : nat, numtype#559 : numtype, i#44163 : nat, i#44153 : nat, numtype#561 : numtype, i#44185 : nat, typeidx#1678 : typeidx, dataidx#41 : dataidx, fieldtype#57 : fieldtype, `mut?#1205` : mut?, storagetype#743 : storagetype, `mut?` : mut?, `byte*#1878` : byte*, i#44247 : nat}: - `%~>%`(`%;%`_config{state#2183, `instr*#2298`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#79}(a) `CONST`_instr{numtype#549}(`I32`_numtype, i) `CONST`_instr{numtype#551}(`I32`_numtype, j) `CONST`_instr{numtype#553}(`I32`_numtype, `%`_num_{i#44037}(n)) `ARRAY.INIT_DATA`_instr{typeidx#1674, dataidx#39}(x, y)]), [`REF.ARRAY_ADDR`_instr{arrayaddr#81}(a) `CONST`_instr{numtype#555}(`I32`_numtype, i) $const($cunpack(zt), $cunpacknum_(zt, c)) `ARRAY.SET`_instr{typeidx#1676}(x) `REF.ARRAY_ADDR`_instr{arrayaddr#83}(a) `CONST`_instr{numtype#557}(`I32`_numtype, `%`_num_{i#44127}((i!`%`_num_{i#44117}.0 + 1))) `CONST`_instr{numtype#559}(`I32`_numtype, `%`_num_{i#44163}((j!`%`_num_{i#44153}.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))) `CONST`_instr{numtype#561}(`I32`_numtype, `%`_num_{i#44185}((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_DATA`_instr{typeidx#1678, dataidx#41}(x, y)]) + rule `array.init_data-num`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx, zt : storagetype, c : lit_(zt), `mut?` : mut?}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) $const($cunpack(zt), $cunpacknum_(zt, c)) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_DATA`_instr(x, y)]) -- otherwise - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#57}(`%%`_fieldtype{`mut?#1205`, storagetype#743}(mut?{mut <- `mut?`}, zt))) - -- if ($zbytes_(zt, c) = $data(z, y).`BYTES`_datainst{`byte*#1878`}[j!`%`_num_{i#44247}.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + -- if ($zbytes_(zt, c) = $data(z, y).`BYTES`_datainst[j!`%`_num_.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rec { @@ -118437,159 +93688,159 @@ rec { ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:5.1-5.88 relation Step: `%~>%`(config, config) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:13.1-15.34 - rule pure{state#11 : state, `instr*#27` : instr*, z : state, `instr*` : instr*, state#23 : state, `instr*#39` : instr*, `instr'*` : instr*}: - `%~>%`(`%;%`_config{state#11, `instr*#27`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#23, `instr*#39`}(z, instr'*{instr' <- `instr'*`})) + rule pure{z : state, `instr*` : instr*, `instr'*` : instr*}: + `%~>%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z, instr'*{instr' <- `instr'*`})) -- Step_pure: `%~>%`(instr*{instr <- `instr*`}, instr'*{instr' <- `instr'*`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:17.1-19.37 - rule read{state#35 : state, `instr*#51` : instr*, z : state, `instr*` : instr*, state#47 : state, `instr*#63` : instr*, `instr'*` : instr*, state#59 : state, `instr*#75` : instr*}: - `%~>%`(`%;%`_config{state#35, `instr*#51`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#47, `instr*#63`}(z, instr'*{instr' <- `instr'*`})) - -- Step_read: `%~>%`(`%;%`_config{state#59, `instr*#75`}(z, instr*{instr <- `instr*`}), instr'*{instr' <- `instr'*`}) + rule read{z : state, `instr*` : instr*, `instr'*` : instr*}: + `%~>%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z, instr'*{instr' <- `instr'*`})) + -- Step_read: `%~>%`(`%;%`_config(z, instr*{instr <- `instr*`}), instr'*{instr' <- `instr'*`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:32.1-35.41 - rule `ctxt-instrs`{state#167 : state, `instr*#183` : instr*, z : state, `val*` : val*, `instr*` : instr*, `instr_1*` : instr*, state#179 : state, `instr*#195` : instr*, z' : state, `instr'*` : instr*, state#191 : state, `instr*#207` : instr*, state#203 : state, `instr*#219` : instr*}: - `%~>%`(`%;%`_config{state#167, `instr*#183`}(z, (val : val <: instr)*{val <- `val*`} ++ instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`}), `%;%`_config{state#179, `instr*#195`}(z', (val : val <: instr)*{val <- `val*`} ++ instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`})) - -- Step: `%~>%`(`%;%`_config{state#191, `instr*#207`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#203, `instr*#219`}(z', instr'*{instr' <- `instr'*`})) + rule `ctxt-instrs`{z : state, `val*` : val*, `instr*` : instr*, `instr_1*` : instr*, z' : state, `instr'*` : instr*}: + `%~>%`(`%;%`_config(z, (val : val <: instr)*{val <- `val*`} ++ instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`}), `%;%`_config(z', (val : val <: instr)*{val <- `val*`} ++ instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`})) + -- Step: `%~>%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', instr'*{instr' <- `instr'*`})) -- if ((val*{val <- `val*`} =/= []) \/ (instr_1*{instr_1 <- `instr_1*`} =/= [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:37.1-39.36 - rule `ctxt-label`{state#215 : state, `instr*#231` : instr*, z : state, n#1127 : n, `instr*#233` : instr*, n : n, `instr_0*` : instr*, `instr*` : instr*, state#227 : state, `instr*#246` : instr*, z' : state, n#1129 : n, `instr*#248` : instr*, `instr'*` : instr*, state#239 : state, `instr*#261` : instr*, state#251 : state, `instr*#273` : instr*}: - `%~>%`(`%;%`_config{state#215, `instr*#231`}(z, [`LABEL_%{%}%`_instr{n#1127, `instr*#233`}(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})]), `%;%`_config{state#227, `instr*#246`}(z', [`LABEL_%{%}%`_instr{n#1129, `instr*#248`}(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})])) - -- Step: `%~>%`(`%;%`_config{state#239, `instr*#261`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#251, `instr*#273`}(z', instr'*{instr' <- `instr'*`})) + rule `ctxt-label`{z : state, n : n, `instr_0*` : instr*, `instr*` : instr*, z' : state, `instr'*` : instr*}: + `%~>%`(`%;%`_config(z, [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})]), `%;%`_config(z', [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})])) + -- Step: `%~>%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', instr'*{instr' <- `instr'*`})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:41.1-43.45 - rule `ctxt-frame`{state#263 : state, `instr*#285` : instr*, store#725 : store, frame#725 : frame, s : store, f : frame, n#1131 : n, frame#727 : frame, `instr*#287` : instr*, n : n, f' : frame, `instr*` : instr*, state#275 : state, `instr*#299` : instr*, store#737 : store, frame#739 : frame, s' : store, n#1133 : n, frame#741 : frame, `instr*#301` : instr*, f'' : frame, `instr'*` : instr*, state#287 : state, `instr*#313` : instr*, store#749 : store, frame#753 : frame, state#299 : state, `instr*#325` : instr*, store#761 : store, frame#765 : frame}: - `%~>%`(`%;%`_config{state#263, `instr*#285`}(`%;%`_state{store#725, frame#725}(s, f), [`FRAME_%{%}%`_instr{n#1131, frame#727, `instr*#287`}(n, f', instr*{instr <- `instr*`})]), `%;%`_config{state#275, `instr*#299`}(`%;%`_state{store#737, frame#739}(s', f), [`FRAME_%{%}%`_instr{n#1133, frame#741, `instr*#301`}(n, f'', instr'*{instr' <- `instr'*`})])) - -- Step: `%~>%`(`%;%`_config{state#287, `instr*#313`}(`%;%`_state{store#749, frame#753}(s, f'), instr*{instr <- `instr*`}), `%;%`_config{state#299, `instr*#325`}(`%;%`_state{store#761, frame#765}(s', f''), instr'*{instr' <- `instr'*`})) + rule `ctxt-frame`{s : store, f : frame, n : n, f' : frame, `instr*` : instr*, s' : store, f'' : frame, `instr'*` : instr*}: + `%~>%`(`%;%`_config(`%;%`_state(s, f), [`FRAME_%{%}%`_instr(n, f', instr*{instr <- `instr*`})]), `%;%`_config(`%;%`_state(s', f), [`FRAME_%{%}%`_instr(n, f'', instr'*{instr' <- `instr'*`})])) + -- Step: `%~>%`(`%;%`_config(`%;%`_state(s, f'), instr*{instr <- `instr*`}), `%;%`_config(`%;%`_state(s', f''), instr'*{instr' <- `instr'*`})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:227.1-231.49 - rule throw{state#479 : state, `instr*#561` : instr*, z : state, n : n, `val*` : val*, tagidx#11 : tagidx, x : idx, state#491 : state, `instr*#573` : instr*, exn : exninst, exnaddr#3 : exnaddr, a : addr, tagtype#180 : tagtype, resulttype#3003 : resulttype, `X*#12555` : valtype*, `t*` : valtype*, `X*#12578` : valtype*, tagaddr#5 : tagaddr, i#32555 : nat, `val*#1` : val*}: - `%~>%`(`%;%`_config{state#479, `instr*#561`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr{tagidx#11}(x)]), `%;%`_config{state#491, `instr*#573`}($add_exninst(z, [exn]), [`REF.EXN_ADDR`_instr{exnaddr#3}(a) `THROW_REF`_instr])) - -- Expand: `%~~%`($as_deftype($tag(z, x).`TYPE`_taginst{tagtype#180}), `FUNC%->%`_comptype{resulttype#3003}(`%`_resulttype{`X*#12555`}(t^n{t <- `t*`}), `%`_resulttype{`X*#12578`}([]))) + rule throw{z : state, n : n, `val*` : val*, x : idx, exn : exninst, a : addr, `t*` : valtype*}: + `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr(x)]), `%;%`_config($add_exninst(z, [exn]), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])) + -- Expand: `%~~%`($as_deftype($tag(z, x).`TYPE`_taginst), `FUNC%->%`_comptype(`%`_resulttype(t^n{t <- `t*`}), `%`_resulttype([]))) -- if (a = |$exninst(z)|) - -- if (exn = {`TAG`{tagaddr#5} $tagaddr(z)[x!`%`_idx{i#32555}.0], `FIELDS`{`val*#1`} val^n{val <- `val*`}}) + -- if (exn = {`TAG` $tagaddr(z)[x!`%`_idx.0], `FIELDS` val^n{val <- `val*`}}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:302.1-303.56 - rule local.set{state#647 : state, `instr*#762` : instr*, z : state, val : val, localidx#15 : localidx, x : idx, state#659 : state, `instr*#774` : instr*}: - `%~>%`(`%;%`_config{state#647, `instr*#762`}(z, [(val : val <: instr) `LOCAL.SET`_instr{localidx#15}(x)]), `%;%`_config{state#659, `instr*#774`}($with_local(z, x, val), [])) + rule local.set{z : state, val : val, x : idx}: + `%~>%`(`%;%`_config(z, [(val : val <: instr) `LOCAL.SET`_instr(x)]), `%;%`_config($with_local(z, x, val), [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:315.1-316.58 - rule global.set{state#683 : state, `instr*#798` : instr*, z : state, val : val, globalidx#19 : globalidx, x : idx, state#695 : state, `instr*#810` : instr*}: - `%~>%`(`%;%`_config{state#683, `instr*#798`}(z, [(val : val <: instr) `GLOBAL.SET`_instr{globalidx#19}(x)]), `%;%`_config{state#695, `instr*#810`}($with_global(z, x, val), [])) + rule global.set{z : state, val : val, x : idx}: + `%~>%`(`%;%`_config(z, [(val : val <: instr) `GLOBAL.SET`_instr(x)]), `%;%`_config($with_global(z, x, val), [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:329.1-331.33 - rule `table.set-oob`{state#731 : state, `instr*#846` : instr*, z : state, numtype#79 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), ref : ref, tableidx#61 : tableidx, x : idx, state#743 : state, `instr*#858` : instr*, i#33027 : nat, `ref*#8` : ref*}: - `%~>%`(`%;%`_config{state#731, `instr*#846`}(z, [`CONST`_instr{numtype#79}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#61}(x)]), `%;%`_config{state#743, `instr*#858`}(z, [`TRAP`_instr])) - -- if (i!`%`_num_{i#33027}.0 >= |$table(z, x).`REFS`_tableinst{`ref*#8`}|) + rule `table.set-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), ref : ref, x : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)]), `%;%`_config(z, [`TRAP`_instr])) + -- if (i!`%`_num_.0 >= |$table(z, x).`REFS`_tableinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:333.1-335.32 - rule `table.set-val`{state#755 : state, `instr*#870` : instr*, z : state, numtype#81 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), ref : ref, tableidx#63 : tableidx, x : idx, state#767 : state, `instr*#882` : instr*, i#33077 : nat, i#33103 : nat, `ref*#9` : ref*}: - `%~>%`(`%;%`_config{state#755, `instr*#870`}(z, [`CONST`_instr{numtype#81}((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr{tableidx#63}(x)]), `%;%`_config{state#767, `instr*#882`}($with_table(z, x, i!`%`_num_{i#33077}.0, ref), [])) - -- if (i!`%`_num_{i#33103}.0 < |$table(z, x).`REFS`_tableinst{`ref*#9`}|) + rule `table.set-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), ref : ref, x : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)]), `%;%`_config($with_table(z, x, i!`%`_num_.0, ref), [])) + -- if (i!`%`_num_.0 < |$table(z, x).`REFS`_tableinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:344.1-347.46 - rule `table.grow-succeed`{state#791 : state, `instr*#906` : instr*, z : state, ref : ref, numtype#85 : numtype, at : addrtype, i#33189 : nat, n : n, tableidx#67 : tableidx, x : idx, state#803 : state, `instr*#918` : instr*, ti : tableinst, numtype#87 : numtype, i#33249 : nat, `ref*#11` : ref*}: - `%~>%`(`%;%`_config{state#791, `instr*#906`}(z, [(ref : ref <: instr) `CONST`_instr{numtype#85}((at : addrtype <: numtype), `%`_num_{i#33189}(n)) `TABLE.GROW`_instr{tableidx#67}(x)]), `%;%`_config{state#803, `instr*#918`}($with_tableinst(z, x, ti), [`CONST`_instr{numtype#87}((at : addrtype <: numtype), `%`_num_{i#33249}(|$table(z, x).`REFS`_tableinst{`ref*#11`}|))])) + rule `table.grow-succeed`{z : state, ref : ref, at : addrtype, n : n, x : idx, ti : tableinst}: + `%~>%`(`%;%`_config(z, [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)]), `%;%`_config($with_tableinst(z, x, ti), [`CONST`_instr((at : addrtype <: numtype), `%`_num_(|$table(z, x).`REFS`_tableinst|))])) -- if (ti = $growtable($table(z, x), n, ref)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:349.1-350.87 - rule `table.grow-fail`{state#815 : state, `instr*#930` : instr*, z : state, ref : ref, numtype#89 : numtype, at : addrtype, i#33285 : nat, n : n, tableidx#69 : tableidx, x : idx, state#827 : state, `instr*#942` : instr*, numtype#91 : numtype, i#33321 : nat}: - `%~>%`(`%;%`_config{state#815, `instr*#930`}(z, [(ref : ref <: instr) `CONST`_instr{numtype#89}((at : addrtype <: numtype), `%`_num_{i#33285}(n)) `TABLE.GROW`_instr{tableidx#69}(x)]), `%;%`_config{state#827, `instr*#942`}(z, [`CONST`_instr{numtype#91}((at : addrtype <: numtype), `%`_num_{i#33321}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])) + rule `table.grow-fail`{z : state, ref : ref, at : addrtype, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)]), `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:410.1-411.51 - rule elem.drop{state#959 : state, `instr*#1074` : instr*, z : state, elemidx#25 : elemidx, x : idx, state#971 : state, `instr*#1086` : instr*}: - `%~>%`(`%;%`_config{state#959, `instr*#1074`}(z, [`ELEM.DROP`_instr{elemidx#25}(x)]), `%;%`_config{state#971, `instr*#1086`}($with_elem(z, x, []), [])) + rule elem.drop{z : state, x : idx}: + `%~>%`(`%;%`_config(z, [`ELEM.DROP`_instr(x)]), `%;%`_config($with_elem(z, x, []), [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:494.1-497.60 - rule `store-num-oob`{state#1151 : state, `instr*#1266` : instr*, z : state, numtype#217 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#219 : numtype, nt : numtype, c : num_(nt), `numtype?#11` : numtype?, memidx#95 : memidx, memarg#63 : memarg, x : idx, ao : memarg, state#1163 : state, `instr*#1278` : instr*, i#37014 : nat, u64#419 : u64, i#37024 : nat, `byte*#1863` : byte*}: - `%~>%`(`%;%`_config{state#1151, `instr*#1266`}(z, [`CONST`_instr{numtype#217}((at : addrtype <: numtype), i) `CONST`_instr{numtype#219}(nt, c) `STORE`_instr{`numtype?#11`, memidx#95, memarg#63}(nt, ?(), x, ao)]), `%;%`_config{state#1163, `instr*#1278`}(z, [`TRAP`_instr])) - -- if (((i!`%`_num_{i#37014}.0 + ao.`OFFSET`_memarg{u64#419}!`%`_u64{i#37024}.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1863`}|) + rule `store-num-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), nt : numtype, c : num_(nt), x : idx, ao : memarg}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)]), `%;%`_config(z, [`TRAP`_instr])) + -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:499.1-503.29 - rule `store-num-val`{state#1175 : state, `instr*#1290` : instr*, z : state, numtype#222 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#224 : numtype, nt : numtype, c : num_(nt), `numtype?#12` : numtype?, memidx#97 : memidx, memarg#65 : memarg, x : idx, ao : memarg, state#1187 : state, `instr*#1302` : instr*, i#37094 : nat, u64#420 : u64, i#37104 : nat, `b*` : byte*}: - `%~>%`(`%;%`_config{state#1175, `instr*#1290`}(z, [`CONST`_instr{numtype#222}((at : addrtype <: numtype), i) `CONST`_instr{numtype#224}(nt, c) `STORE`_instr{`numtype?#12`, memidx#97, memarg#65}(nt, ?(), x, ao)]), `%;%`_config{state#1187, `instr*#1302`}($with_mem(z, x, (i!`%`_num_{i#37094}.0 + ao.`OFFSET`_memarg{u64#420}!`%`_u64{i#37104}.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) + rule `store-num-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), nt : numtype, c : num_(nt), x : idx, ao : memarg, `b*` : byte*}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) -- if (b*{b <- `b*`} = $nbytes_(nt, c)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:505.1-508.52 - rule `store-pack-oob`{state#1199 : state, `instr*#1314` : instr*, z : state, numtype#227 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#229 : numtype, Inn : Inn, c : num_((Inn : Inn <: numtype)), `numtype?#13` : numtype?, memidx#99 : memidx, memarg#67 : memarg, sz#446 : sz, i#37199 : nat, i#37200 : nat, n : n, x : idx, ao : memarg, state#1211 : state, `instr*#1326` : instr*, i#37232 : nat, u64#421 : u64, i#37242 : nat, `byte*#1864` : byte*}: - `%~>%`(`%;%`_config{state#1199, `instr*#1314`}(z, [`CONST`_instr{numtype#227}((at : addrtype <: numtype), i) `CONST`_instr{numtype#229}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#13`, memidx#99, memarg#67}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#446, i#37199}(`%`_sz{i#37200}(n))), x, ao)]), `%;%`_config{state#1211, `instr*#1326`}(z, [`TRAP`_instr])) - -- if (((i!`%`_num_{i#37232}.0 + ao.`OFFSET`_memarg{u64#421}!`%`_u64{i#37242}.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1864`}|) + rule `store-pack-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), Inn : Inn, c : num_((Inn : Inn <: numtype)), n : n, x : idx, ao : memarg}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)]), `%;%`_config(z, [`TRAP`_instr])) + -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:510.1-514.52 - rule `store-pack-val`{state#1223 : state, `instr*#1338` : instr*, z : state, numtype#232 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), numtype#234 : numtype, Inn : Inn, c : num_((Inn : Inn <: numtype)), `numtype?#14` : numtype?, memidx#101 : memidx, memarg#69 : memarg, sz#448 : sz, i#37325 : nat, i#37326 : nat, n : n, x : idx, ao : memarg, state#1235 : state, `instr*#1350` : instr*, i#37370 : nat, u64#422 : u64, i#37380 : nat, `b*` : byte*}: - `%~>%`(`%;%`_config{state#1223, `instr*#1338`}(z, [`CONST`_instr{numtype#232}((at : addrtype <: numtype), i) `CONST`_instr{numtype#234}((Inn : Inn <: numtype), c) `STORE`_instr{`numtype?#14`, memidx#101, memarg#69}((Inn : Inn <: numtype), ?(`%`_storeop_{sz#448, i#37325}(`%`_sz{i#37326}(n))), x, ao)]), `%;%`_config{state#1235, `instr*#1350`}($with_mem(z, x, (i!`%`_num_{i#37370}.0 + ao.`OFFSET`_memarg{u64#422}!`%`_u64{i#37380}.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) + rule `store-pack-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), Inn : Inn, c : num_((Inn : Inn <: numtype)), n : n, x : idx, ao : memarg, `b*` : byte*}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) -- if (b*{b <- `b*`} = $ibytes_(n, $wrap__($size((Inn : Inn <: numtype)), n, c))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:516.1-519.63 - rule `vstore-oob`{state#1247 : state, `instr*#1362` : instr*, z : state, numtype#237 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), vectype#88 : vectype, c : vec_(`V128`_Vnn), vectype#90 : vectype, memidx#103 : memidx, memarg#71 : memarg, x : idx, ao : memarg, state#1259 : state, `instr*#1374` : instr*, i#37486 : nat, u64#423 : u64, i#37496 : nat, `byte*#1865` : byte*}: - `%~>%`(`%;%`_config{state#1247, `instr*#1362`}(z, [`CONST`_instr{numtype#237}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#88}(`V128`_vectype, c) `VSTORE`_instr{vectype#90, memidx#103, memarg#71}(`V128`_vectype, x, ao)]), `%;%`_config{state#1259, `instr*#1374`}(z, [`TRAP`_instr])) - -- if (((i!`%`_num_{i#37486}.0 + ao.`OFFSET`_memarg{u64#423}!`%`_u64{i#37496}.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst{`byte*#1865`}|) + rule `vstore-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(`V128`_Vnn), x : idx, ao : memarg}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)]), `%;%`_config(z, [`TRAP`_instr])) + -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:521.1-524.31 - rule `vstore-val`{state#1271 : state, `instr*#1386` : instr*, z : state, numtype#239 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), vectype#92 : vectype, c : vec_(`V128`_Vnn), vectype#94 : vectype, memidx#105 : memidx, memarg#73 : memarg, x : idx, ao : memarg, state#1283 : state, `instr*#1398` : instr*, i#37580 : nat, u64#424 : u64, i#37590 : nat, `b*` : byte*}: - `%~>%`(`%;%`_config{state#1271, `instr*#1386`}(z, [`CONST`_instr{numtype#239}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#92}(`V128`_vectype, c) `VSTORE`_instr{vectype#94, memidx#105, memarg#73}(`V128`_vectype, x, ao)]), `%;%`_config{state#1283, `instr*#1398`}($with_mem(z, x, (i!`%`_num_{i#37580}.0 + ao.`OFFSET`_memarg{u64#424}!`%`_u64{i#37590}.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) + rule `vstore-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(`V128`_Vnn), x : idx, ao : memarg, `b*` : byte*}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) -- if (b*{b <- `b*`} = $vbytes_(`V128`_vectype, c)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:527.1-530.50 - rule `vstore_lane-oob`{state#1295 : state, `instr*#1410` : instr*, z : state, numtype#241 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), vectype#96 : vectype, c : vec_(`V128`_Vnn), vectype#98 : vectype, sz#450 : sz, memidx#107 : memidx, memarg#75 : memarg, laneidx#21 : laneidx, i#37660 : nat, N : N, x : idx, ao : memarg, j : laneidx, state#1307 : state, `instr*#1422` : instr*, i#37706 : nat, u64#425 : u64, i#37716 : nat, `byte*#1866` : byte*}: - `%~>%`(`%;%`_config{state#1295, `instr*#1410`}(z, [`CONST`_instr{numtype#241}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#96}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#98, sz#450, memidx#107, memarg#75, laneidx#21}(`V128`_vectype, `%`_sz{i#37660}(N), x, ao, j)]), `%;%`_config{state#1307, `instr*#1422`}(z, [`TRAP`_instr])) - -- if (((i!`%`_num_{i#37706}.0 + ao.`OFFSET`_memarg{u64#425}!`%`_u64{i#37716}.0) + N) > |$mem(z, x).`BYTES`_meminst{`byte*#1866`}|) + rule `vstore_lane-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(`V128`_Vnn), N : N, x : idx, ao : memarg, j : laneidx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]), `%;%`_config(z, [`TRAP`_instr])) + -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + N) > |$mem(z, x).`BYTES`_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:532.1-537.49 - rule `vstore_lane-val`{state#1319 : state, `instr*#1434` : instr*, z : state, numtype#243 : numtype, at : addrtype, i : num_((at : addrtype <: numtype)), vectype#100 : vectype, c : vec_(`V128`_Vnn), vectype#102 : vectype, sz#452 : sz, memidx#109 : memidx, memarg#77 : memarg, laneidx#23 : laneidx, i#37764 : nat, N : N, x : idx, ao : memarg, j : laneidx, state#1331 : state, `instr*#1446` : instr*, i#37822 : nat, u64#426 : u64, i#37832 : nat, `b*` : byte*, Jnn : Jnn, M : M, i#37907 : nat, lanetype#7403 : lanetype, dim#7403 : dim, i#37855 : nat, i#37862 : nat, i#37882 : nat, i#37906 : nat}: - `%~>%`(`%;%`_config{state#1319, `instr*#1434`}(z, [`CONST`_instr{numtype#243}((at : addrtype <: numtype), i) `VCONST`_instr{vectype#100}(`V128`_vectype, c) `VSTORE_LANE`_instr{vectype#102, sz#452, memidx#109, memarg#77, laneidx#23}(`V128`_vectype, `%`_sz{i#37764}(N), x, ao, j)]), `%;%`_config{state#1331, `instr*#1446`}($with_mem(z, x, (i!`%`_num_{i#37822}.0 + ao.`OFFSET`_memarg{u64#426}!`%`_u64{i#37832}.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) + rule `vstore_lane-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(`V128`_Vnn), N : N, x : idx, ao : memarg, j : laneidx, `b*` : byte*, Jnn : Jnn, M : M}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) -- if (N = $jsize(Jnn)) -- if ((M : nat <:> rat) = ((128 : nat <:> rat) / (N : nat <:> rat))) - -- if (b*{b <- `b*`} = $ibytes_(N, `%`_iN{i#37907}($lanes_(`%X%`_shape{lanetype#7403, dim#7403, i#37855}((Jnn : Jnn <: lanetype), `%`_dim{i#37862}(M)), c)[j!`%`_laneidx{i#37882}.0]!`%`_lane_{i#37906}.0))) + -- if (b*{b <- `b*`} = $ibytes_(N, `%`_iN($lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_.0))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:546.1-549.37 - rule `memory.grow-succeed`{state#1355 : state, `instr*#1470` : instr*, z : state, numtype#247 : numtype, at : addrtype, i#38006 : nat, n : n, memidx#113 : memidx, x : idx, state#1367 : state, `instr*#1482` : instr*, mi : meminst, numtype#249 : numtype, i#38066 : nat, `byte*#1868` : byte*}: - `%~>%`(`%;%`_config{state#1355, `instr*#1470`}(z, [`CONST`_instr{numtype#247}((at : addrtype <: numtype), `%`_num_{i#38006}(n)) `MEMORY.GROW`_instr{memidx#113}(x)]), `%;%`_config{state#1367, `instr*#1482`}($with_meminst(z, x, mi), [`CONST`_instr{numtype#249}((at : addrtype <: numtype), `%`_num_{i#38066}((((|$mem(z, x).`BYTES`_meminst{`byte*#1868`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])) + rule `memory.grow-succeed`{z : state, at : addrtype, n : n, x : idx, mi : meminst}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)]), `%;%`_config($with_meminst(z, x, mi), [`CONST`_instr((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])) -- if (mi = $growmem($mem(z, x), n)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:551.1-552.84 - rule `memory.grow-fail`{state#1379 : state, `instr*#1494` : instr*, z : state, numtype#251 : numtype, at : addrtype, i#38102 : nat, n : n, memidx#115 : memidx, x : idx, state#1391 : state, `instr*#1506` : instr*, numtype#253 : numtype, i#38138 : nat}: - `%~>%`(`%;%`_config{state#1379, `instr*#1494`}(z, [`CONST`_instr{numtype#251}((at : addrtype <: numtype), `%`_num_{i#38102}(n)) `MEMORY.GROW`_instr{memidx#115}(x)]), `%;%`_config{state#1391, `instr*#1506`}(z, [`CONST`_instr{numtype#253}((at : addrtype <: numtype), `%`_num_{i#38138}($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])) + rule `memory.grow-fail`{z : state, at : addrtype, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)]), `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:612.1-613.51 - rule data.drop{state#1523 : state, `instr*#1638` : instr*, z : state, dataidx#25 : dataidx, x : idx, state#1535 : state, `instr*#1650` : instr*}: - `%~>%`(`%;%`_config{state#1523, `instr*#1638`}(z, [`DATA.DROP`_instr{dataidx#25}(x)]), `%;%`_config{state#1535, `instr*#1650`}($with_data(z, x, []), [])) + rule data.drop{z : state, x : idx}: + `%~>%`(`%;%`_config(z, [`DATA.DROP`_instr(x)]), `%;%`_config($with_data(z, x, []), [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:693.1-697.65 - rule struct.new{state#1619 : state, `instr*#1734` : instr*, z : state, n : n, `val*` : val*, typeidx#1557 : typeidx, x : idx, state#1631 : state, `instr*#1746` : instr*, si : structinst, structaddr#3 : structaddr, a : addr, `X*#12668` : fieldtype*, `mut?*` : mut?*, `mut?#1031*` : mut?*, `storagetype#569*` : storagetype*, `zt*` : storagetype*, deftype#9 : deftype, `fieldval*#3` : fieldval*}: - `%~>%`(`%;%`_config{state#1619, `instr*#1734`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr{typeidx#1557}(x)]), `%;%`_config{state#1631, `instr*#1746`}($add_structinst(z, [si]), [`REF.STRUCT_ADDR`_instr{structaddr#3}(a)])) - -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12668`}(`%%`_fieldtype{`mut?#1031`, storagetype#569}(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, `mut?#1031` <- `mut?#1031*`, storagetype#569 <- `storagetype#569*`, zt <- `zt*`}))) + rule struct.new{z : state, n : n, `val*` : val*, x : idx, si : structinst, a : addr, `mut?*` : mut?*, `zt*` : storagetype*}: + `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr(x)]), `%;%`_config($add_structinst(z, [si]), [`REF.STRUCT_ADDR`_instr(a)])) + -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`}))) -- if (a = |$structinst(z)|) - -- if (si = {`TYPE`{deftype#9} $type(z, x), `FIELDS`{`fieldval*#3`} $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}}) + -- if (si = {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:714.1-715.53 - rule `struct.set-null`{state#1679 : state, `instr*#1794` : instr*, z : state, heaptype#1431 : heaptype, ht : heaptype, val : val, typeidx#1567 : typeidx, u32#21 : u32, x : idx, i : u32, state#1691 : state, `instr*#1806` : instr*}: - `%~>%`(`%;%`_config{state#1679, `instr*#1794`}(z, [`REF.NULL`_instr{heaptype#1431}(ht) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1567, u32#21}(x, i)]), `%;%`_config{state#1691, `instr*#1806`}(z, [`TRAP`_instr])) + rule `struct.set-null`{z : state, ht : heaptype, val : val, x : idx, i : u32}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) (val : val <: instr) `STRUCT.SET`_instr(x, i)]), `%;%`_config(z, [`TRAP`_instr])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:717.1-720.46 - rule `struct.set-struct`{state#1703 : state, `instr*#1818` : instr*, z : state, structaddr#7 : structaddr, a : addr, val : val, typeidx#1569 : typeidx, u32#23 : u32, x : idx, i : u32, state#1715 : state, `instr*#1830` : instr*, i#40466 : nat, `zt*` : storagetype*, i#40476 : nat, `X*#12713` : fieldtype*, `mut?*` : mut?*, `mut?#1085*` : mut?*, `storagetype#623*` : storagetype*}: - `%~>%`(`%;%`_config{state#1703, `instr*#1818`}(z, [`REF.STRUCT_ADDR`_instr{structaddr#7}(a) (val : val <: instr) `STRUCT.SET`_instr{typeidx#1569, u32#23}(x, i)]), `%;%`_config{state#1715, `instr*#1830`}($with_struct(z, a, i!`%`_u32{i#40466}.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32{i#40476}.0], val)), [])) - -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list{`X*#12713`}(`%%`_fieldtype{`mut?#1085`, storagetype#623}(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, `mut?#1085` <- `mut?#1085*`, storagetype#623 <- `storagetype#623*`, zt <- `zt*`}))) + rule `struct.set-struct`{z : state, a : addr, val : val, x : idx, i : u32, `zt*` : storagetype*, `mut?*` : mut?*}: + `%~>%`(`%;%`_config(z, [`REF.STRUCT_ADDR`_instr(a) (val : val <: instr) `STRUCT.SET`_instr(x, i)]), `%;%`_config($with_struct(z, a, i!`%`_u32.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], val)), [])) + -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:733.1-738.65 - rule array.new_fixed{state#1739 : state, `instr*#1854` : instr*, z : state, n : n, `val*` : val*, typeidx#1579 : typeidx, u32#29 : u32, x : idx, i#40690 : nat, state#1751 : state, `instr*#1866` : instr*, ai : arrayinst, arrayaddr#3 : arrayaddr, a : addr, fieldtype#41 : fieldtype, `mut?#1109` : mut?, storagetype#647 : storagetype, `mut?` : mut?, zt : storagetype, deftype#10 : deftype, `fieldval*#5` : fieldval*}: - `%~>%`(`%;%`_config{state#1739, `instr*#1854`}(z, (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr{typeidx#1579, u32#29}(x, `%`_u32{i#40690}(n))]), `%;%`_config{state#1751, `instr*#1866`}($add_arrayinst(z, [ai]), [`REF.ARRAY_ADDR`_instr{arrayaddr#3}(a)])) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#41}(`%%`_fieldtype{`mut?#1109`, storagetype#647}(mut?{mut <- `mut?`}, zt))) - -- if ((a = |$arrayinst(z)|) /\ (ai = {`TYPE`{deftype#10} $type(z, x), `FIELDS`{`fieldval*#5`} $packfield_(zt, val)^n{val <- `val*`}})) + rule array.new_fixed{z : state, n : n, `val*` : val*, x : idx, ai : arrayinst, a : addr, `mut?` : mut?, zt : storagetype}: + `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]), `%;%`_config($add_arrayinst(z, [ai]), [`REF.ARRAY_ADDR`_instr(a)])) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + -- if ((a = |$arrayinst(z)|) /\ (ai = {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`}})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:778.1-779.64 - rule `array.set-null`{state#1847 : state, `instr*#1962` : instr*, z : state, heaptype#1435 : heaptype, ht : heaptype, numtype#395 : numtype, i : num_(`I32`_numtype), val : val, typeidx#1599 : typeidx, x : idx, state#1859 : state, `instr*#1974` : instr*}: - `%~>%`(`%;%`_config{state#1847, `instr*#1962`}(z, [`REF.NULL`_instr{heaptype#1435}(ht) `CONST`_instr{numtype#395}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1599}(x)]), `%;%`_config{state#1859, `instr*#1974`}(z, [`TRAP`_instr])) + rule `array.set-null`{z : state, ht : heaptype, i : num_(`I32`_numtype), val : val, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]), `%;%`_config(z, [`TRAP`_instr])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:781.1-783.39 - rule `array.set-oob`{state#1871 : state, `instr*#1986` : instr*, z : state, arrayaddr#9 : arrayaddr, a : addr, numtype#397 : numtype, i : num_(`I32`_numtype), val : val, typeidx#1601 : typeidx, x : idx, state#1883 : state, `instr*#1998` : instr*, i#41549 : nat, `fieldval*#8` : fieldval*}: - `%~>%`(`%;%`_config{state#1871, `instr*#1986`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#9}(a) `CONST`_instr{numtype#397}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1601}(x)]), `%;%`_config{state#1883, `instr*#1998`}(z, [`TRAP`_instr])) - -- if (i!`%`_num_{i#41549}.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst{`fieldval*#8`}|) + rule `array.set-oob`{z : state, a : addr, i : num_(`I32`_numtype), val : val, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]), `%;%`_config(z, [`TRAP`_instr])) + -- if (i!`%`_num_.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:785.1-788.44 - rule `array.set-array`{state#1895 : state, `instr*#2010` : instr*, z : state, arrayaddr#11 : arrayaddr, a : addr, numtype#399 : numtype, i : num_(`I32`_numtype), val : val, typeidx#1603 : typeidx, x : idx, state#1907 : state, `instr*#2022` : instr*, i#41587 : nat, zt : storagetype, fieldtype#49 : fieldtype, `mut?#1157` : mut?, storagetype#695 : storagetype, `mut?` : mut?}: - `%~>%`(`%;%`_config{state#1895, `instr*#2010`}(z, [`REF.ARRAY_ADDR`_instr{arrayaddr#11}(a) `CONST`_instr{numtype#399}(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr{typeidx#1603}(x)]), `%;%`_config{state#1907, `instr*#2022`}($with_array(z, a, i!`%`_num_{i#41587}.0, $packfield_(zt, val)), [])) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype{fieldtype#49}(`%%`_fieldtype{`mut?#1157`, storagetype#695}(mut?{mut <- `mut?`}, zt))) + rule `array.set-array`{z : state, a : addr, i : num_(`I32`_numtype), val : val, x : idx, zt : storagetype, `mut?` : mut?}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]), `%;%`_config($with_array(z, a, i!`%`_num_.0, $packfield_(zt, val)), [])) + -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) } ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec @@ -118598,22 +93849,22 @@ rec { ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:8.1-8.92 relation Steps: `%~>*%`(config, config) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:21.1-22.26 - rule refl{state#71 : state, `instr*#87` : instr*, z : state, `instr*` : instr*, state#83 : state, `instr*#99` : instr*}: - `%~>*%`(`%;%`_config{state#71, `instr*#87`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#83, `instr*#99`}(z, instr*{instr <- `instr*`})) + rule refl{z : state, `instr*` : instr*}: + `%~>*%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z, instr*{instr <- `instr*`})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:24.1-27.44 - rule trans{state#95 : state, `instr*#111` : instr*, z : state, `instr*` : instr*, state#107 : state, `instr*#123` : instr*, z'' : state, `instr''*` : instr*, state#119 : state, `instr*#135` : instr*, state#131 : state, `instr*#147` : instr*, z' : state, `instr'*` : instr*, state#143 : state, `instr*#159` : instr*, state#155 : state, `instr*#171` : instr*}: - `%~>*%`(`%;%`_config{state#95, `instr*#111`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#107, `instr*#123`}(z'', instr''*{instr'' <- `instr''*`})) - -- Step: `%~>%`(`%;%`_config{state#119, `instr*#135`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#131, `instr*#147`}(z', instr'*{instr' <- `instr'*`})) - -- Steps: `%~>*%`(`%;%`_config{state#143, `instr*#159`}(z', instr'*{instr' <- `instr'*`}), `%;%`_config{state#155, `instr*#171`}(z'', instr''*{instr'' <- `instr''*`})) + rule trans{z : state, `instr*` : instr*, z'' : state, `instr''*` : instr*, z' : state, `instr'*` : instr*}: + `%~>*%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z'', instr''*{instr'' <- `instr''*`})) + -- Step: `%~>%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', instr'*{instr' <- `instr'*`})) + -- Steps: `%~>*%`(`%;%`_config(z', instr'*{instr' <- `instr'*`}), `%;%`_config(z'', instr''*{instr'' <- `instr''*`})) } ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec relation Eval_expr: `%;%~>*%;%`(state, expr, state, val*) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule _{z : state, `instr*` : instr*, z' : state, `val*` : val*, state#2195 : state, `instr*#2310` : instr*, state#2207 : state, `instr*#2322` : instr*}: + rule _{z : state, `instr*` : instr*, z' : state, `val*` : val*}: `%;%~>*%;%`(z, instr*{instr <- `instr*`}, z', val*{val <- `val*`}) - -- Steps: `%~>*%`(`%;%`_config{state#2195, `instr*#2310`}(z, instr*{instr <- `instr*`}), `%;%`_config{state#2207, `instr*#2322`}(z', (val : val <: instr)*{val <- `val*`})) + -- Steps: `%~>*%`(`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', (val : val <: instr)*{val <- `val*`})) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -118623,18 +93874,18 @@ def $alloctypes(type*) : deftype* ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec:8.1-8.27 def $alloctypes([]) = [] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec:9.1-13.24 - def $alloctypes{`type'*` : type*, type : type, `deftype'*` : deftype*, `deftype*` : deftype*, rectype#1449 : rectype, rectype : rectype, x : idx, i#46777 : nat}(type'*{type' <- `type'*`} ++ [type]) = deftype'*{deftype' <- `deftype'*`} ++ deftype*{deftype <- `deftype*`} + def $alloctypes{`type'*` : type*, type : type, `deftype'*` : deftype*, `deftype*` : deftype*, rectype : rectype, x : idx}(type'*{type' <- `type'*`} ++ [type]) = deftype'*{deftype' <- `deftype'*`} ++ deftype*{deftype <- `deftype*`} -- if (deftype'*{deftype' <- `deftype'*`} = $alloctypes(type'*{type' <- `type'*`})) - -- if (type = `TYPE`_type{rectype#1449}(rectype)) + -- if (type = `TYPE`_type(rectype)) -- if (deftype*{deftype <- `deftype*`} = $subst_all_deftypes($rolldt(x, rectype), (deftype' : deftype <: typeuse)*{deftype' <- `deftype'*`})) - -- if (x!`%`_idx{i#46777}.0 = |deftype'*{deftype' <- `deftype'*`}|) + -- if (x!`%`_idx.0 = |deftype'*{deftype' <- `deftype'*`}|) } ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $alloctag(store : store, tagtype : tagtype) : (store, tagaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctag{s : store, tagtype : tagtype, `taginst*#5` : taginst*, taginst : taginst, `globalinst*#6` : globalinst*, `meminst*#7` : meminst*, `tableinst*#7` : tableinst*, `funcinst*#6` : funcinst*, `datainst*#5` : datainst*, `eleminst*#5` : eleminst*, `structinst*#6` : structinst*, `arrayinst*#6` : arrayinst*, `exninst*#5` : exninst*, `taginst*#6` : taginst*, tagtype#181 : tagtype}(s, tagtype) = (s +++ {`TAGS`{`taginst*#5`} [taginst], `GLOBALS`{`globalinst*#6`} [], `MEMS`{`meminst*#7`} [], `TABLES`{`tableinst*#7`} [], `FUNCS`{`funcinst*#6`} [], `DATAS`{`datainst*#5`} [], `ELEMS`{`eleminst*#5`} [], `STRUCTS`{`structinst*#6`} [], `ARRAYS`{`arrayinst*#6`} [], `EXNS`{`exninst*#5`} []}, |s.`TAGS`_store{`taginst*#6`}|) - -- if (taginst = {`TYPE`{tagtype#181} tagtype}) + def $alloctag{s : store, tagtype : tagtype, taginst : taginst}(s, tagtype) = (s +++ {`TAGS` [taginst], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`TAGS`_store|) + -- if (taginst = {`TYPE` tagtype}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -118652,8 +93903,8 @@ def $alloctags(store : store, tagtype*) : (store, tagaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocglobal(store : store, globaltype : globaltype, val : val) : (store, globaladdr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocglobal{s : store, globaltype : globaltype, val : val, `taginst*#7` : taginst*, `globalinst*#7` : globalinst*, globalinst : globalinst, `meminst*#8` : meminst*, `tableinst*#8` : tableinst*, `funcinst*#7` : funcinst*, `datainst*#6` : datainst*, `eleminst*#6` : eleminst*, `structinst*#7` : structinst*, `arrayinst*#7` : arrayinst*, `exninst*#6` : exninst*, `globalinst*#8` : globalinst*, globaltype#2088 : globaltype, val#3 : val}(s, globaltype, val) = (s +++ {`TAGS`{`taginst*#7`} [], `GLOBALS`{`globalinst*#7`} [globalinst], `MEMS`{`meminst*#8`} [], `TABLES`{`tableinst*#8`} [], `FUNCS`{`funcinst*#7`} [], `DATAS`{`datainst*#6`} [], `ELEMS`{`eleminst*#6`} [], `STRUCTS`{`structinst*#7`} [], `ARRAYS`{`arrayinst*#7`} [], `EXNS`{`exninst*#6`} []}, |s.`GLOBALS`_store{`globalinst*#8`}|) - -- if (globalinst = {`TYPE`{globaltype#2088} globaltype, `VALUE`{val#3} val}) + def $allocglobal{s : store, globaltype : globaltype, val : val, globalinst : globalinst}(s, globaltype, val) = (s +++ {`TAGS` [], `GLOBALS` [globalinst], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`GLOBALS`_store|) + -- if (globalinst = {`TYPE` globaltype, `VALUE` val}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -118671,8 +93922,8 @@ def $allocglobals(store : store, globaltype*, val*) : (store, globaladdr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocmem(store : store, memtype : memtype) : (store, memaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocmem{s : store, addrtype#1147 : addrtype, limits#1147 : limits, at : addrtype, u64#443 : u64, `u64?#419` : u64?, i : u64, `j?` : u64?, `taginst*#8` : taginst*, `globalinst*#9` : globalinst*, `meminst*#9` : meminst*, meminst : meminst, `tableinst*#9` : tableinst*, `funcinst*#8` : funcinst*, `datainst*#7` : datainst*, `eleminst*#7` : eleminst*, `structinst*#8` : structinst*, `arrayinst*#8` : arrayinst*, `exninst*#7` : exninst*, `meminst*#10` : meminst*, memtype#531 : memtype, addrtype#1159 : addrtype, limits#1159 : limits, u64#455 : u64, `u64?#431` : u64?, `byte*#1879` : byte*, i#46867 : nat, `i#46875*` : nat*}(s, `%%PAGE`_memtype{addrtype#1147, limits#1147}(at, `[%..%]`_limits{u64#443, `u64?#419`}(i, j?{j <- `j?`}))) = (s +++ {`TAGS`{`taginst*#8`} [], `GLOBALS`{`globalinst*#9`} [], `MEMS`{`meminst*#9`} [meminst], `TABLES`{`tableinst*#9`} [], `FUNCS`{`funcinst*#8`} [], `DATAS`{`datainst*#7`} [], `ELEMS`{`eleminst*#7`} [], `STRUCTS`{`structinst*#8`} [], `ARRAYS`{`arrayinst*#8`} [], `EXNS`{`exninst*#7`} []}, |s.`MEMS`_store{`meminst*#10`}|) - -- if (meminst = {`TYPE`{memtype#531} `%%PAGE`_memtype{addrtype#1159, limits#1159}(at, `[%..%]`_limits{u64#455, `u64?#431`}(i, j?{j <- `j?`})), `BYTES`{`byte*#1879`} `%`_byte{i#46875}(0)^(i!`%`_u64{i#46867}.0 * (64 * $Ki)){i#46875 <- `i#46875*`}}) + def $allocmem{s : store, at : addrtype, i : u64, `j?` : u64?, meminst : meminst}(s, `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`}))) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [meminst], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`MEMS`_store|) + -- if (meminst = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` `%`_byte(0)^(i!`%`_u64.0 * (64 * $Ki)){}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -118690,8 +93941,8 @@ def $allocmems(store : store, memtype*) : (store, memaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $alloctable(store : store, tabletype : tabletype, ref : ref) : (store, tableaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctable{s : store, addrtype#1219 : addrtype, limits#1219 : limits, reftype#3485 : reftype, at : addrtype, u64#467 : u64, `u64?#443` : u64?, i : u64, `j?` : u64?, rt : reftype, ref : ref, `taginst*#9` : taginst*, `globalinst*#10` : globalinst*, `meminst*#11` : meminst*, `tableinst*#10` : tableinst*, tableinst : tableinst, `funcinst*#9` : funcinst*, `datainst*#8` : datainst*, `eleminst*#8` : eleminst*, `structinst*#9` : structinst*, `arrayinst*#9` : arrayinst*, `exninst*#8` : exninst*, `tableinst*#11` : tableinst*, tabletype#881 : tabletype, addrtype#1231 : addrtype, limits#1231 : limits, reftype#3497 : reftype, u64#479 : u64, `u64?#455` : u64?, `ref*#22` : ref*, i#46955 : nat}(s, `%%%`_tabletype{addrtype#1219, limits#1219, reftype#3485}(at, `[%..%]`_limits{u64#467, `u64?#443`}(i, j?{j <- `j?`}), rt), ref) = (s +++ {`TAGS`{`taginst*#9`} [], `GLOBALS`{`globalinst*#10`} [], `MEMS`{`meminst*#11`} [], `TABLES`{`tableinst*#10`} [tableinst], `FUNCS`{`funcinst*#9`} [], `DATAS`{`datainst*#8`} [], `ELEMS`{`eleminst*#8`} [], `STRUCTS`{`structinst*#9`} [], `ARRAYS`{`arrayinst*#9`} [], `EXNS`{`exninst*#8`} []}, |s.`TABLES`_store{`tableinst*#11`}|) - -- if (tableinst = {`TYPE`{tabletype#881} `%%%`_tabletype{addrtype#1231, limits#1231, reftype#3497}(at, `[%..%]`_limits{u64#479, `u64?#455`}(i, j?{j <- `j?`}), rt), `REFS`{`ref*#22`} ref^i!`%`_u64{i#46955}.0{}}) + def $alloctable{s : store, at : addrtype, i : u64, `j?` : u64?, rt : reftype, ref : ref, tableinst : tableinst}(s, `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), ref) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [tableinst], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`TABLES`_store|) + -- if (tableinst = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` ref^i!`%`_u64.0{}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -118709,8 +93960,8 @@ def $alloctables(store : store, tabletype*, ref*) : (store, tableaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocfunc(store : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst) : (store, funcaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocfunc{s : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst, `taginst*#10` : taginst*, `globalinst*#11` : globalinst*, `meminst*#12` : meminst*, `tableinst*#12` : tableinst*, `funcinst*#10` : funcinst*, funcinst : funcinst, `datainst*#9` : datainst*, `eleminst*#9` : eleminst*, `structinst*#10` : structinst*, `arrayinst*#10` : arrayinst*, `exninst*#9` : exninst*, `funcinst*#11` : funcinst*, deftype#11 : deftype, moduleinst#25 : moduleinst, funccode#2 : funccode}(s, deftype, funccode, moduleinst) = (s +++ {`TAGS`{`taginst*#10`} [], `GLOBALS`{`globalinst*#11`} [], `MEMS`{`meminst*#12`} [], `TABLES`{`tableinst*#12`} [], `FUNCS`{`funcinst*#10`} [funcinst], `DATAS`{`datainst*#9`} [], `ELEMS`{`eleminst*#9`} [], `STRUCTS`{`structinst*#10`} [], `ARRAYS`{`arrayinst*#10`} [], `EXNS`{`exninst*#9`} []}, |s.`FUNCS`_store{`funcinst*#11`}|) - -- if (funcinst = {`TYPE`{deftype#11} deftype, `MODULE`{moduleinst#25} moduleinst, `CODE`{funccode#2} funccode}) + def $allocfunc{s : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst, funcinst : funcinst}(s, deftype, funccode, moduleinst) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [funcinst], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`FUNCS`_store|) + -- if (funcinst = {`TYPE` deftype, `MODULE` moduleinst, `CODE` funccode}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -118728,8 +93979,8 @@ def $allocfuncs(store : store, deftype*, funccode*, moduleinst*) : (store, funca ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocdata(store : store, datatype : datatype, byte*) : (store, dataaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocdata{s : store, `byte*` : byte*, `taginst*#11` : taginst*, `globalinst*#12` : globalinst*, `meminst*#13` : meminst*, `tableinst*#13` : tableinst*, `funcinst*#12` : funcinst*, `datainst*#10` : datainst*, datainst : datainst, `eleminst*#10` : eleminst*, `structinst*#11` : structinst*, `arrayinst*#11` : arrayinst*, `exninst*#10` : exninst*, `datainst*#11` : datainst*, `byte*#1880` : byte*}(s, `OK`_datatype, byte*{byte <- `byte*`}) = (s +++ {`TAGS`{`taginst*#11`} [], `GLOBALS`{`globalinst*#12`} [], `MEMS`{`meminst*#13`} [], `TABLES`{`tableinst*#13`} [], `FUNCS`{`funcinst*#12`} [], `DATAS`{`datainst*#10`} [datainst], `ELEMS`{`eleminst*#10`} [], `STRUCTS`{`structinst*#11`} [], `ARRAYS`{`arrayinst*#11`} [], `EXNS`{`exninst*#10`} []}, |s.`DATAS`_store{`datainst*#11`}|) - -- if (datainst = {`BYTES`{`byte*#1880`} byte*{byte <- `byte*`}}) + def $allocdata{s : store, `byte*` : byte*, datainst : datainst}(s, `OK`_datatype, byte*{byte <- `byte*`}) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [datainst], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`DATAS`_store|) + -- if (datainst = {`BYTES` byte*{byte <- `byte*`}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -118747,8 +93998,8 @@ def $allocdatas(store : store, datatype*, byte**) : (store, dataaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocelem(store : store, elemtype : elemtype, ref*) : (store, elemaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocelem{s : store, elemtype : elemtype, `ref*` : ref*, `taginst*#12` : taginst*, `globalinst*#13` : globalinst*, `meminst*#14` : meminst*, `tableinst*#14` : tableinst*, `funcinst*#13` : funcinst*, `datainst*#12` : datainst*, `eleminst*#11` : eleminst*, eleminst : eleminst, `structinst*#12` : structinst*, `arrayinst*#12` : arrayinst*, `exninst*#11` : exninst*, `eleminst*#12` : eleminst*, elemtype#1 : elemtype, `ref*#23` : ref*}(s, elemtype, ref*{ref <- `ref*`}) = (s +++ {`TAGS`{`taginst*#12`} [], `GLOBALS`{`globalinst*#13`} [], `MEMS`{`meminst*#14`} [], `TABLES`{`tableinst*#14`} [], `FUNCS`{`funcinst*#13`} [], `DATAS`{`datainst*#12`} [], `ELEMS`{`eleminst*#11`} [eleminst], `STRUCTS`{`structinst*#12`} [], `ARRAYS`{`arrayinst*#12`} [], `EXNS`{`exninst*#11`} []}, |s.`ELEMS`_store{`eleminst*#12`}|) - -- if (eleminst = {`TYPE`{elemtype#1} elemtype, `REFS`{`ref*#23`} ref*{ref <- `ref*`}}) + def $allocelem{s : store, elemtype : elemtype, `ref*` : ref*, eleminst : eleminst}(s, elemtype, ref*{ref <- `ref*`}) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [eleminst], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`ELEMS`_store|) + -- if (eleminst = {`TYPE` elemtype, `REFS` ref*{ref <- `ref*`}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -118766,15 +94017,15 @@ def $allocelems(store : store, elemtype*, ref**) : (store, elemaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocexport(moduleinst : moduleinst, export : export) : exportinst ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name#5597 : name, externidx#5379 : externidx, name : name, tagidx#17 : tagidx, x : idx, name#5599 : name, externaddr#1 : externaddr, tagaddr#8 : tagaddr, `tagaddr*#4` : tagaddr*, i#47111 : nat}(moduleinst, `EXPORT`_export{name#5597, externidx#5379}(name, `TAG`_externidx{tagidx#17}(x))) = {`NAME`{name#5599} name, `ADDR`{externaddr#1} `TAG`_externaddr{tagaddr#8}(moduleinst.`TAGS`_moduleinst{`tagaddr*#4`}[x!`%`_idx{i#47111}.0])} + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `TAG`_externidx(x))) = {`NAME` name, `ADDR` `TAG`_externaddr(moduleinst.`TAGS`_moduleinst[x!`%`_idx.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name#5610 : name, externidx#5391 : externidx, name : name, globalidx#21 : globalidx, x : idx, name#5612 : name, externaddr#2 : externaddr, globaladdr#5 : globaladdr, `globaladdr*#3` : globaladdr*, i#47135 : nat}(moduleinst, `EXPORT`_export{name#5610, externidx#5391}(name, `GLOBAL`_externidx{globalidx#21}(x))) = {`NAME`{name#5612} name, `ADDR`{externaddr#2} `GLOBAL`_externaddr{globaladdr#5}(moduleinst.`GLOBALS`_moduleinst{`globaladdr*#3`}[x!`%`_idx{i#47135}.0])} + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `GLOBAL`_externidx(x))) = {`NAME` name, `ADDR` `GLOBAL`_externaddr(moduleinst.`GLOBALS`_moduleinst[x!`%`_idx.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name#5623 : name, externidx#5403 : externidx, name : name, memidx#163 : memidx, x : idx, name#5625 : name, externaddr#3 : externaddr, memaddr#5 : memaddr, `memaddr*#4` : memaddr*, i#47159 : nat}(moduleinst, `EXPORT`_export{name#5623, externidx#5403}(name, `MEM`_externidx{memidx#163}(x))) = {`NAME`{name#5625} name, `ADDR`{externaddr#3} `MEM`_externaddr{memaddr#5}(moduleinst.`MEMS`_moduleinst{`memaddr*#4`}[x!`%`_idx{i#47159}.0])} + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `MEM`_externidx(x))) = {`NAME` name, `ADDR` `MEM`_externaddr(moduleinst.`MEMS`_moduleinst[x!`%`_idx.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name#5636 : name, externidx#5415 : externidx, name : name, tableidx#117 : tableidx, x : idx, name#5638 : name, externaddr#4 : externaddr, tableaddr#5 : tableaddr, `tableaddr*#4` : tableaddr*, i#47183 : nat}(moduleinst, `EXPORT`_export{name#5636, externidx#5415}(name, `TABLE`_externidx{tableidx#117}(x))) = {`NAME`{name#5638} name, `ADDR`{externaddr#4} `TABLE`_externaddr{tableaddr#5}(moduleinst.`TABLES`_moduleinst{`tableaddr*#4`}[x!`%`_idx{i#47183}.0])} + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `TABLE`_externidx(x))) = {`NAME` name, `ADDR` `TABLE`_externaddr(moduleinst.`TABLES`_moduleinst[x!`%`_idx.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name#5649 : name, externidx#5427 : externidx, name : name, funcidx#2843 : funcidx, x : idx, name#5651 : name, externaddr#5 : externaddr, funcaddr#19 : funcaddr, `funcaddr*#5` : funcaddr*, i#47207 : nat}(moduleinst, `EXPORT`_export{name#5649, externidx#5427}(name, `FUNC`_externidx{funcidx#2843}(x))) = {`NAME`{name#5651} name, `ADDR`{externaddr#5} `FUNC`_externaddr{funcaddr#19}(moduleinst.`FUNCS`_moduleinst{`funcaddr*#5`}[x!`%`_idx{i#47207}.0])} + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `FUNC`_externidx(x))) = {`NAME` name, `ADDR` `FUNC`_externaddr(moduleinst.`FUNCS`_moduleinst[x!`%`_idx.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocexports(moduleinst : moduleinst, export*) : exportinst* @@ -118784,47 +94035,47 @@ def $allocexports(moduleinst : moduleinst, export*) : exportinst* ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) : (store, moduleinst) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocmodule{s : store, module : module, `externaddr*` : externaddr*, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, s_7 : store, moduleinst : moduleinst, `type*#101` : type*, `import*#101` : import*, `tag*#101` : tag*, `global*#125` : global*, `mem*#125` : mem*, `table*#125` : table*, `func*#101` : func*, `data*#101` : data*, `elem*#125` : elem*, `start?#101` : start?, `export*#101` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `tagtype*` : tagtype*, `tagtype#260*` : tagtype*, `expr#4459*` : expr*, `expr_G*` : expr*, `globaltype*` : globaltype*, `globaltype#2179*` : globaltype*, `memtype*` : memtype*, `memtype#634*` : memtype*, `expr#4477*` : expr*, `expr_T*` : expr*, `tabletype*` : tabletype*, `tabletype#998*` : tabletype*, `expr#4495*` : expr*, `expr_F*` : expr*, `local**` : local**, `local*#1351*` : local**, `typeidx#1808*` : typeidx*, `x*` : idx*, `byte**` : byte**, `byte*#2021*` : byte**, `datamode*` : datamode*, `datamode#1985*` : datamode*, `elemmode*` : elemmode*, `elemmode#3087*` : elemmode*, `elemtype*` : elemtype*, `expr*#3087*` : expr**, `expr_E**` : expr**, `reftype#3705*` : reftype*, `aa_I*` : tagaddr*, `ga_I*` : globaladdr*, `ma_I*` : memaddr*, `ta_I*` : tableaddr*, `fa_I*` : funcaddr*, `dt*` : deftype*, `fa*` : nat*, i_F : nat, `funcinst*#14*` : funcinst**, s_1 : store, `aa*` : tagaddr*, s_2 : store, `ga*` : globaladdr*, s_3 : store, `ma*` : memaddr*, s_4 : store, `ta*` : tableaddr*, s_5 : store, `da*` : dataaddr*, s_6 : store, `ea*` : elemaddr*, `i#47295*` : nat*, `expr#4497*` : expr*, `local*#1353*` : local**, `typeidx#1810*` : typeidx*, `xi*` : exportinst*, `deftype*#94` : deftype*, `tagaddr*#5` : tagaddr*, `globaladdr*#4` : globaladdr*, `memaddr*#5` : memaddr*, `tableaddr*#5` : tableaddr*, `funcaddr*#6` : funcaddr*, `dataaddr*#3` : dataaddr*, `elemaddr*#3` : elemaddr*, `exportinst*#1` : exportinst*, `deftype*#95` : deftype*, `tagaddr*#6` : tagaddr*, `globaladdr*#5` : globaladdr*, `memaddr*#6` : memaddr*, `tableaddr*#6` : tableaddr*, `funcaddr*#7` : funcaddr*, `dataaddr*#4` : dataaddr*, `elemaddr*#4` : elemaddr*, `exportinst*#2` : exportinst*}(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}) = (s_7, moduleinst) - -- if (module = `MODULE`_module{`type*#101`, `import*#101`, `tag*#101`, `global*#125`, `mem*#125`, `table*#125`, `func*#101`, `data*#101`, `elem*#125`, `start?#101`, `export*#101`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) - -- if (tag*{tag <- `tag*`} = `TAG`_tag{tagtype#260}(tagtype)*{tagtype <- `tagtype*`, tagtype#260 <- `tagtype#260*`}) - -- if (global*{global <- `global*`} = `GLOBAL`_global{globaltype#2179, expr#4459}(globaltype, expr_G)*{expr#4459 <- `expr#4459*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2179 <- `globaltype#2179*`}) - -- if (mem*{mem <- `mem*`} = `MEMORY`_mem{memtype#634}(memtype)*{memtype <- `memtype*`, memtype#634 <- `memtype#634*`}) - -- if (table*{table <- `table*`} = `TABLE`_table{tabletype#998, expr#4477}(tabletype, expr_T)*{expr#4477 <- `expr#4477*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#998 <- `tabletype#998*`}) - -- if (func*{func <- `func*`} = `FUNC`_func{typeidx#1808, `local*#1351`, expr#4495}(x, local*{local <- `local*`}, expr_F)*{expr#4495 <- `expr#4495*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1351` <- `local*#1351*`, typeidx#1808 <- `typeidx#1808*`, x <- `x*`}) - -- if (data*{data <- `data*`} = `DATA`_data{`byte*#2021`, datamode#1985}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2021` <- `byte*#2021*`, datamode <- `datamode*`, datamode#1985 <- `datamode#1985*`}) - -- if (elem*{elem <- `elem*`} = `ELEM`_elem{reftype#3705, `expr*#3087`, elemmode#3087}(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3087 <- `elemmode#3087*`, elemtype <- `elemtype*`, `expr*#3087` <- `expr*#3087*`, `expr_E*` <- `expr_E**`, reftype#3705 <- `reftype#3705*`}) + def $allocmodule{s : store, module : module, `externaddr*` : externaddr*, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, s_7 : store, moduleinst : moduleinst, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `tagtype*` : tagtype*, `expr_G*` : expr*, `globaltype*` : globaltype*, `memtype*` : memtype*, `expr_T*` : expr*, `tabletype*` : tabletype*, `expr_F*` : expr*, `local**` : local**, `x*` : idx*, `byte**` : byte**, `datamode*` : datamode*, `elemmode*` : elemmode*, `elemtype*` : elemtype*, `expr_E**` : expr**, `aa_I*` : tagaddr*, `ga_I*` : globaladdr*, `ma_I*` : memaddr*, `ta_I*` : tableaddr*, `fa_I*` : funcaddr*, `dt*` : deftype*, `fa*` : nat*, i_F : nat, s_1 : store, `aa*` : tagaddr*, s_2 : store, `ga*` : globaladdr*, s_3 : store, `ma*` : memaddr*, s_4 : store, `ta*` : tableaddr*, s_5 : store, `da*` : dataaddr*, s_6 : store, `ea*` : elemaddr*, `xi*` : exportinst*}(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}) = (s_7, moduleinst) + -- if (module = `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) + -- if (tag*{tag <- `tag*`} = `TAG`_tag(tagtype)*{tagtype <- `tagtype*`}) + -- if (global*{global <- `global*`} = `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}) + -- if (mem*{mem <- `mem*`} = `MEMORY`_mem(memtype)*{memtype <- `memtype*`}) + -- if (table*{table <- `table*`} = `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}) + -- if (func*{func <- `func*`} = `FUNC`_func(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}) + -- if (data*{data <- `data*`} = `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}) + -- if (elem*{elem <- `elem*`} = `ELEM`_elem(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemtype <- `elemtype*`, `expr_E*` <- `expr_E**`}) -- if (aa_I*{aa_I <- `aa_I*`} = $tagsxa(externaddr*{externaddr <- `externaddr*`})) -- if (ga_I*{ga_I <- `ga_I*`} = $globalsxa(externaddr*{externaddr <- `externaddr*`})) -- if (ma_I*{ma_I <- `ma_I*`} = $memsxa(externaddr*{externaddr <- `externaddr*`})) -- if (ta_I*{ta_I <- `ta_I*`} = $tablesxa(externaddr*{externaddr <- `externaddr*`})) -- if (fa_I*{fa_I <- `fa_I*`} = $funcsxa(externaddr*{externaddr <- `externaddr*`})) -- if (dt*{dt <- `dt*`} = $alloctypes(type*{type <- `type*`})) - -- if (fa*{fa <- `fa*`} = (|s.`FUNCS`_store{`funcinst*#14`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#14` <- `funcinst*#14*`}) + -- if (fa*{fa <- `fa*`} = (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}) -- if ((s_1, aa*{aa <- `aa*`}) = $alloctags(s, $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tagtype <- `tagtype*`})) -- if ((s_2, ga*{ga <- `ga*`}) = $allocglobals(s_1, $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{globaltype <- `globaltype*`}, val_G*{val_G <- `val_G*`})) -- if ((s_3, ma*{ma <- `ma*`}) = $allocmems(s_2, $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{memtype <- `memtype*`})) -- if ((s_4, ta*{ta <- `ta*`}) = $alloctables(s_3, $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tabletype <- `tabletype*`}, ref_T*{ref_T <- `ref_T*`})) -- if ((s_5, da*{da <- `da*`}) = $allocdatas(s_4, `OK`_datatype^|data*{data <- `data*`}|{}, byte*{byte <- `byte*`}*{`byte*` <- `byte**`})) -- if ((s_6, ea*{ea <- `ea*`}) = $allocelems(s_5, $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{elemtype <- `elemtype*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})) - -- if ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx{i#47295}.0]*{i#47295 <- `i#47295*`, x <- `x*`}, `FUNC`_funccode{typeidx#1810, `local*#1353`, expr#4497}(x, local*{local <- `local*`}, expr_F)*{expr#4497 <- `expr#4497*`, expr_F <- `expr_F*`, `local*` <- `local**`, `local*#1353` <- `local*#1353*`, typeidx#1810 <- `typeidx#1810*`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})) - -- if (xi*{xi <- `xi*`} = $allocexports({`TYPES`{`deftype*#94`} [], `TAGS`{`tagaddr*#5`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#4`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#5`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#5`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#6`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#3`} [], `ELEMS`{`elemaddr*#3`} [], `EXPORTS`{`exportinst*#1`} []}, export*{export <- `export*`})) - -- if (moduleinst = {`TYPES`{`deftype*#95`} dt*{dt <- `dt*`}, `TAGS`{`tagaddr*#6`} aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS`{`globaladdr*#5`} ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS`{`memaddr*#6`} ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES`{`tableaddr*#6`} ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS`{`funcaddr*#7`} fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS`{`dataaddr*#4`} da*{da <- `da*`}, `ELEMS`{`elemaddr*#4`} ea*{ea <- `ea*`}, `EXPORTS`{`exportinst*#2`} xi*{xi <- `xi*`}}) + -- if ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx.0]*{x <- `x*`}, `FUNC`_funccode(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})) + -- if (xi*{xi <- `xi*`} = $allocexports({`TYPES` [], `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` [], `ELEMS` [], `EXPORTS` []}, export*{export <- `export*`})) + -- if (moduleinst = {`TYPES` dt*{dt <- `dt*`}, `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` da*{da <- `da*`}, `ELEMS` ea*{ea <- `ea*`}, `EXPORTS` xi*{xi <- `xi*`}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $rundata_(dataidx : dataidx, data : data) : instr* ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $rundata_{x : idx, `byte*#2033` : byte*, datamode#1997 : datamode, n : n, `b*` : byte*}(x, `DATA`_data{`byte*#2033`, datamode#1997}(b^n{b <- `b*`}, `PASSIVE`_datamode)) = [] + def $rundata_{x : idx, n : n, `b*` : byte*}(x, `DATA`_data(b^n{b <- `b*`}, `PASSIVE`_datamode)) = [] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $rundata_{x : idx, `byte*#2045` : byte*, datamode#2009 : datamode, n : n, `b*` : byte*, memidx#165 : memidx, expr#4499 : expr, y : idx, `instr*` : instr*, numtype#623 : numtype, i#47393 : nat, numtype#625 : numtype, i#47417 : nat, memidx#167 : memidx, dataidx#43 : dataidx, dataidx#45 : dataidx}(x, `DATA`_data{`byte*#2045`, datamode#2009}(b^n{b <- `b*`}, `ACTIVE`_datamode{memidx#165, expr#4499}(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr{numtype#623}(`I32`_numtype, `%`_num_{i#47393}(0)) `CONST`_instr{numtype#625}(`I32`_numtype, `%`_num_{i#47417}(n)) `MEMORY.INIT`_instr{memidx#167, dataidx#43}(y, x) `DATA.DROP`_instr{dataidx#45}(x)] + def $rundata_{x : idx, n : n, `b*` : byte*, y : idx, `instr*` : instr*}(x, `DATA`_data(b^n{b <- `b*`}, `ACTIVE`_datamode(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(y, x) `DATA.DROP`_instr(x)] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $runelem_(elemidx : elemidx, elem : elem) : instr* ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, reftype#3735 : reftype, `expr*#3099` : expr*, elemmode#3099 : elemmode, rt : reftype, n : n, `e*` : expr*}(x, `ELEM`_elem{reftype#3735, `expr*#3099`, elemmode#3099}(rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)) = [] + def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*}(x, `ELEM`_elem(rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)) = [] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, reftype#3747 : reftype, `expr*#3111` : expr*, elemmode#3111 : elemmode, rt : reftype, n : n, `e*` : expr*, elemidx#43 : elemidx}(x, `ELEM`_elem{reftype#3747, `expr*#3111`, elemmode#3111}(rt, e^n{e <- `e*`}, `DECLARE`_elemmode)) = [`ELEM.DROP`_instr{elemidx#43}(x)] + def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*}(x, `ELEM`_elem(rt, e^n{e <- `e*`}, `DECLARE`_elemmode)) = [`ELEM.DROP`_instr(x)] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, reftype#3759 : reftype, `expr*#3123` : expr*, elemmode#3123 : elemmode, rt : reftype, n : n, `e*` : expr*, tableidx#119 : tableidx, expr#4501 : expr, y : idx, `instr*` : instr*, numtype#627 : numtype, i#47545 : nat, numtype#629 : numtype, i#47569 : nat, tableidx#121 : tableidx, elemidx#45 : elemidx, elemidx#47 : elemidx}(x, `ELEM`_elem{reftype#3759, `expr*#3123`, elemmode#3123}(rt, e^n{e <- `e*`}, `ACTIVE`_elemmode{tableidx#119, expr#4501}(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr{numtype#627}(`I32`_numtype, `%`_num_{i#47545}(0)) `CONST`_instr{numtype#629}(`I32`_numtype, `%`_num_{i#47569}(n)) `TABLE.INIT`_instr{tableidx#121, elemidx#45}(y, x) `ELEM.DROP`_instr{elemidx#47}(x)] + def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*, y : idx, `instr*` : instr*}(x, `ELEM`_elem(rt, e^n{e <- `e*`}, `ACTIVE`_elemmode(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(y, x) `ELEM.DROP`_instr(x)] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -118834,46 +94085,46 @@ def $evalglobals(state : state, globaltype*, expr*) : (state, val*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec:161.1-161.41 def $evalglobals{z : state}(z, [], []) = (z, []) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec:162.1-167.81 - def $evalglobals{z : state, gt : globaltype, `gt'*` : globaltype*, expr : expr, `expr'*` : expr*, z' : state, val : val, `val'*` : val*, store#2543 : store, frame#2561 : frame, s : store, f : frame, s' : store, a : addr, store#2555 : store, frame#2573 : frame, moduleinst#26 : moduleinst, `globaladdr*#6` : globaladdr*}(z, [gt] ++ gt'*{gt' <- `gt'*`}, [expr] ++ expr'*{expr' <- `expr'*`}) = (z', [val] ++ val'*{val' <- `val'*`}) + def $evalglobals{z : state, gt : globaltype, `gt'*` : globaltype*, expr : expr, `expr'*` : expr*, z' : state, val : val, `val'*` : val*, s : store, f : frame, s' : store, a : addr}(z, [gt] ++ gt'*{gt' <- `gt'*`}, [expr] ++ expr'*{expr' <- `expr'*`}) = (z', [val] ++ val'*{val' <- `val'*`}) -- Eval_expr: `%;%~>*%;%`(z, expr, z, [val]) - -- if (z = `%;%`_state{store#2543, frame#2561}(s, f)) + -- if (z = `%;%`_state(s, f)) -- if ((s', a) = $allocglobal(s, gt, val)) - -- if ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state{store#2555, frame#2573}(s', f[`MODULE`_frame{moduleinst#26}.`GLOBALS`_moduleinst{`globaladdr*#6`} =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})) + -- if ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state(s', f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})) } ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $instantiate(store : store, module : module, externaddr*) : config ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $instantiate{s : store, module : module, `externaddr*` : externaddr*, state#2219 : state, `instr*#2334` : instr*, store#2627 : store, frame#2645 : frame, s' : store, `val?*#6` : val?*, moduleinst#28 : moduleinst, moduleinst : moduleinst, `instr_E*` : instr*, `instr_D*` : instr*, `instr_S?` : instr?, `externtype*#168` : externtype*, `xt_I*` : externtype*, `xt_E*` : externtype*, `type*#125` : type*, `import*#125` : import*, `tag*#125` : tag*, `global*#149` : global*, `mem*#149` : mem*, `table*#149` : table*, `func*#125` : func*, `data*#125` : data*, `elem*#149` : elem*, `start?#125` : start?, `export*#125` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `expr#4805*` : expr*, `expr_G*` : expr*, `globaltype*` : globaltype*, `globaltype#2271*` : globaltype*, `expr#4823*` : expr*, `expr_T*` : expr*, `tabletype*` : tabletype*, `tabletype#1116*` : tabletype*, `byte**` : byte**, `byte*#2187*` : byte**, `datamode*` : datamode*, `datamode#2151*` : datamode*, `elemmode*` : elemmode*, `elemmode#3277*` : elemmode*, `expr*#3277*` : expr**, `expr_E**` : expr**, `reftype*` : reftype*, `reftype#3919*` : reftype*, `funcidx#3157?` : funcidx?, `x?` : idx?, moduleinst_0 : moduleinst, `deftype*#96` : deftype*, `tagaddr*#7` : tagaddr*, `globaladdr*#7` : globaladdr*, `memaddr*#7` : memaddr*, `tableaddr*#7` : tableaddr*, `funcaddr*#8` : funcaddr*, i_F : nat, `funcinst*#15*` : funcinst**, `dataaddr*#5` : dataaddr*, `elemaddr*#5` : elemaddr*, `exportinst*#3` : exportinst*, z : state, store#2579 : store, frame#2597 : frame, `val?*#5` : val?*, moduleinst#27 : moduleinst, z' : state, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, i_D : nat, `i#47725*` : nat*, i_E : nat, `i#47785*` : nat*, `funcidx#3159?` : funcidx?}(s, module, externaddr*{externaddr <- `externaddr*`}) = `%;%`_config{state#2219, `instr*#2334`}(`%;%`_state{store#2627, frame#2645}(s', {`LOCALS`{`val?*#6`} [], `MODULE`{moduleinst#28} moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})) - -- Module_ok: `|-%:%`(module, `%->%`_moduletype{`externtype*#168`}(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})) + def $instantiate{s : store, module : module, `externaddr*` : externaddr*, s' : store, moduleinst : moduleinst, `instr_E*` : instr*, `instr_D*` : instr*, `instr_S?` : instr?, `xt_I*` : externtype*, `xt_E*` : externtype*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `expr_G*` : expr*, `globaltype*` : globaltype*, `expr_T*` : expr*, `tabletype*` : tabletype*, `byte**` : byte**, `datamode*` : datamode*, `elemmode*` : elemmode*, `expr_E**` : expr**, `reftype*` : reftype*, `x?` : idx?, moduleinst_0 : moduleinst, i_F : nat, z : state, z' : state, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, i_D : nat, i_E : nat}(s, module, externaddr*{externaddr <- `externaddr*`}) = `%;%`_config(`%;%`_state(s', {`LOCALS` [], `MODULE` moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})) + -- Module_ok: `|-%:%`(module, `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})) -- (Externaddr_ok: `%|-%:%`(s, externaddr, xt_I))*{externaddr <- `externaddr*`, xt_I <- `xt_I*`} - -- if (module = `MODULE`_module{`type*#125`, `import*#125`, `tag*#125`, `global*#149`, `mem*#149`, `table*#149`, `func*#125`, `data*#125`, `elem*#149`, `start?#125`, `export*#125`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) - -- if (global*{global <- `global*`} = `GLOBAL`_global{globaltype#2271, expr#4805}(globaltype, expr_G)*{expr#4805 <- `expr#4805*`, expr_G <- `expr_G*`, globaltype <- `globaltype*`, globaltype#2271 <- `globaltype#2271*`}) - -- if (table*{table <- `table*`} = `TABLE`_table{tabletype#1116, expr#4823}(tabletype, expr_T)*{expr#4823 <- `expr#4823*`, expr_T <- `expr_T*`, tabletype <- `tabletype*`, tabletype#1116 <- `tabletype#1116*`}) - -- if (data*{data <- `data*`} = `DATA`_data{`byte*#2187`, datamode#2151}(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, `byte*#2187` <- `byte*#2187*`, datamode <- `datamode*`, datamode#2151 <- `datamode#2151*`}) - -- if (elem*{elem <- `elem*`} = `ELEM`_elem{reftype#3919, `expr*#3277`, elemmode#3277}(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemmode#3277 <- `elemmode#3277*`, `expr*#3277` <- `expr*#3277*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`, reftype#3919 <- `reftype#3919*`}) - -- if (start?{start <- `start?`} = `START`_start{funcidx#3157}(x)?{funcidx#3157 <- `funcidx#3157?`, x <- `x?`}) - -- if (moduleinst_0 = {`TYPES`{`deftype*#96`} $alloctypes(type*{type <- `type*`}), `TAGS`{`tagaddr*#7`} [], `GLOBALS`{`globaladdr*#7`} $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS`{`memaddr*#7`} [], `TABLES`{`tableaddr*#7`} [], `FUNCS`{`funcaddr*#8`} $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store{`funcinst*#15`}| + i_F)^(i_F<|func*{func <- `func*`}|){`funcinst*#15` <- `funcinst*#15*`}, `DATAS`{`dataaddr*#5`} [], `ELEMS`{`elemaddr*#5`} [], `EXPORTS`{`exportinst*#3`} []}) - -- if (z = `%;%`_state{store#2579, frame#2597}(s, {`LOCALS`{`val?*#5`} [], `MODULE`{moduleinst#27} moduleinst_0})) + -- if (module = `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) + -- if (global*{global <- `global*`} = `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}) + -- if (table*{table <- `table*`} = `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}) + -- if (data*{data <- `data*`} = `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}) + -- if (elem*{elem <- `elem*`} = `ELEM`_elem(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`}) + -- if (start?{start <- `start?`} = `START`_start(x)?{x <- `x?`}) + -- if (moduleinst_0 = {`TYPES` $alloctypes(type*{type <- `type*`}), `TAGS` [], `GLOBALS` $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS` [], `TABLES` [], `FUNCS` $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}, `DATAS` [], `ELEMS` [], `EXPORTS` []}) + -- if (z = `%;%`_state(s, {`LOCALS` [], `MODULE` moduleinst_0})) -- if ((z', val_G*{val_G <- `val_G*`}) = $evalglobals(z, globaltype*{globaltype <- `globaltype*`}, expr_G*{expr_G <- `expr_G*`})) -- (Eval_expr: `%;%~>*%;%`(z', expr_T, z', [(ref_T : ref <: val)]))*{expr_T <- `expr_T*`, ref_T <- `ref_T*`} -- (Eval_expr: `%;%~>*%;%`(z', expr_E, z', [(ref_E : ref <: val)]))*{expr_E <- `expr_E*`, ref_E <- `ref_E*`}*{`expr_E*` <- `expr_E**`, `ref_E*` <- `ref_E**`} -- if ((s', moduleinst) = $allocmodule(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})) - -- if (instr_D*{instr_D <- `instr_D*`} = $concat_(syntax instr, $rundata_(`%`_dataidx{i#47725}(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){i#47725 <- `i#47725*`})) - -- if (instr_E*{instr_E <- `instr_E*`} = $concat_(syntax instr, $runelem_(`%`_elemidx{i#47785}(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){i#47785 <- `i#47785*`})) - -- if (instr_S?{instr_S <- `instr_S?`} = `CALL`_instr{funcidx#3159}(x)?{funcidx#3159 <- `funcidx#3159?`, x <- `x?`}) + -- if (instr_D*{instr_D <- `instr_D*`} = $concat_(syntax instr, $rundata_(`%`_dataidx(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){})) + -- if (instr_E*{instr_E <- `instr_E*`} = $concat_(syntax instr, $runelem_(`%`_elemidx(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){})) + -- if (instr_S?{instr_S <- `instr_S?`} = `CALL`_instr(x)?{x <- `x?`}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $invoke(store : store, funcaddr : funcaddr, val*) : config ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $invoke{s : store, funcaddr : funcaddr, `val*` : val*, state#2231 : state, `instr*#2346` : instr*, store#2639 : store, frame#2657 : frame, `val?*#7` : val?*, moduleinst#29 : moduleinst, `deftype*#97` : deftype*, `tagaddr*#8` : tagaddr*, `globaladdr*#8` : globaladdr*, `memaddr*#8` : memaddr*, `tableaddr*#8` : tableaddr*, `funcaddr*#9` : funcaddr*, `dataaddr*#6` : dataaddr*, `elemaddr*#6` : elemaddr*, `exportinst*#4` : exportinst*, funcaddr#21 : funcaddr, typeuse#65 : typeuse, `funcinst*#17` : funcinst*, deftype#13 : deftype, `funcinst*#16` : funcinst*, deftype#12 : deftype, resulttype#3026 : resulttype, `X*#13028` : valtype*, `t_1*` : valtype*, `X*#13041` : valtype*, `t_2*` : valtype*}(s, funcaddr, val*{val <- `val*`}) = `%;%`_config{state#2231, `instr*#2346`}(`%;%`_state{store#2639, frame#2657}(s, {`LOCALS`{`val?*#7`} [], `MODULE`{moduleinst#29} {`TYPES`{`deftype*#97`} [], `TAGS`{`tagaddr*#8`} [], `GLOBALS`{`globaladdr*#8`} [], `MEMS`{`memaddr*#8`} [], `TABLES`{`tableaddr*#8`} [], `FUNCS`{`funcaddr*#9`} [], `DATAS`{`dataaddr*#6`} [], `ELEMS`{`elemaddr*#6`} [], `EXPORTS`{`exportinst*#4`} []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr{funcaddr#21}(funcaddr) `CALL_REF`_instr{typeuse#65}((s.`FUNCS`_store{`funcinst*#17`}[funcaddr].`TYPE`_funcinst{deftype#13} : deftype <: typeuse))]) - -- Expand: `%~~%`(s.`FUNCS`_store{`funcinst*#16`}[funcaddr].`TYPE`_funcinst{deftype#12}, `FUNC%->%`_comptype{resulttype#3026}(`%`_resulttype{`X*#13028`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13041`}(t_2*{t_2 <- `t_2*`}))) + def $invoke{s : store, funcaddr : funcaddr, `val*` : val*, `t_1*` : valtype*, `t_2*` : valtype*}(s, funcaddr, val*{val <- `val*`}) = `%;%`_config(`%;%`_state(s, {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(funcaddr) `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))]) + -- Expand: `%~~%`(s.`FUNCS`_store[funcaddr].`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- (Val_ok: `%|-%:%`(s, val, t_1))*{t_1 <- `t_1*`, val <- `val*`} ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Bbyte : byte ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{i#47807 : nat, `` : nat} ``:(0x00 | ... | 0xFF) => `%`_byte{i#47807}(``) + prod{`` : nat} ``:(0x00 | ... | 0xFF) => `%`_byte(``) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec rec { @@ -118881,29 +94132,29 @@ rec { ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:9.1-11.82 grammar BuN(N : N) : uN(N) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:10.5-10.83 - prod{i#47823 : nat, n : n, i#47815 : nat} `%`_byte{i#47815}(n):Bbyte => `%`_uN{i#47823}(n) + prod{n : n} `%`_byte(n):Bbyte => `%`_uN(n) -- if ((n < (2 ^ 7)) /\ (n < (2 ^ N))) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec:11.5-11.82 - prod{i#47866 : nat, m : m, n : n, i#47831 : nat, i#47856 : nat} {{`%`_byte{i#47831}(n):Bbyte} {`%`_uN{i#47856}(m):BuN((((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat))}} => `%`_uN{i#47866}((((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat))) + prod{m : m, n : n} {{`%`_byte(n):Bbyte} {`%`_uN(m):BuN((((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat))}} => `%`_uN((((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat))) -- if ((n >= (2 ^ 7)) /\ (N > 7)) } ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar BsN(N : N) : sN(N) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{i#47882 : int, n : n, i#47874 : nat} `%`_byte{i#47874}(n):Bbyte => `%`_sN{i#47882}((n : nat <:> int)) + prod{n : n} `%`_byte(n):Bbyte => `%`_sN((n : nat <:> int)) -- if ((n < (2 ^ 6)) /\ (n < (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{i#47898 : int, n : n, i#47890 : nat} `%`_byte{i#47890}(n):Bbyte => `%`_sN{i#47898}(((n : nat <:> int) - ((2 ^ 7) : nat <:> int))) + prod{n : n} `%`_byte(n):Bbyte => `%`_sN(((n : nat <:> int) - ((2 ^ 7) : nat <:> int))) -- if ((((2 ^ 6) <= n) /\ (n < (2 ^ 7))) /\ ((n : nat <:> int) >= (((2 ^ 7) : nat <:> int) - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)))) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{i#47945 : int, i : uN((((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat)), i#47943 : nat, n : n, i#47906 : nat} {{`%`_byte{i#47906}(n):Bbyte} {i:BuN((((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat))}} => `%`_sN{i#47945}(((((2 ^ 7) * i!`%`_uN{i#47943}.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int)) + prod{i : uN((((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat)), n : n} {{`%`_byte(n):Bbyte} {i:BuN((((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat))}} => `%`_sN(((((2 ^ 7) * i!`%`_uN.0) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int)) -- if ((n >= (2 ^ 7)) /\ (N > 7)) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar BiN(N : N) : iN(N) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{i#47961 : nat, i : sN(N), i#47959 : int} i:BsN(N) => `%`_iN{i#47961}($inv_signed_(N, i!`%`_sN{i#47959}.0)) + prod{i : sN(N)} i:BsN(N) => `%`_iN($inv_signed_(N, i!`%`_sN.0)) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar BfN(N : N) : fN(N) @@ -118913,12 +94164,12 @@ grammar BfN(N : N) : fN(N) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Bu32 : u32 ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{i#48033 : nat, n : n, i#48009 : nat} `%`_uN{i#48009}(n):BuN(32) => `%`_u32{i#48033}(n) + prod{n : n} `%`_uN(n):BuN(32) => `%`_u32(n) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Bu64 : u64 ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{i#48081 : nat, n : n, i#48057 : nat} `%`_uN{i#48057}(n):BuN(64) => `%`_u64{i#48081}(n) + prod{n : n} `%`_uN(n):BuN(64) => `%`_u64(n) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Bs33 : s33 @@ -118938,13 +94189,13 @@ grammar Bf64 : f64 ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Blist(syntax el, grammar BX : el) : el* ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{n : n, `el*` : el*, i#48134 : nat} {{`%`_u32{i#48134}(n):Bu32} {el:BX^n{el <- `el*`}}} => el^n{el <- `el*`} + prod{n : n, `el*` : el*} {{`%`_u32(n):Bu32} {el:BX^n{el <- `el*`}}} => el^n{el <- `el*`} ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Bname : name ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{name : name, `b*` : byte*, `char*#153` : char*} b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte) => name - -- if ($utf8(name!`%`_name{`char*#153`}.0) = b*{b <- `b*`}) + prod{name : name, `b*` : byte*} b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte) => name + -- if ($utf8(name!`%`_name.0) = b*{b <- `b*`}) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Btypeidx : typeidx @@ -118999,15 +94250,15 @@ grammar Blabelidx : labelidx ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Bexternidx : externidx ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{funcidx#3161 : funcidx, x : idx} {{0x00} {x:Bfuncidx}} => `FUNC`_externidx{funcidx#3161}(x) + prod{x : idx} {{0x00} {x:Bfuncidx}} => `FUNC`_externidx(x) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{tableidx#123 : tableidx, x : idx} {{0x01} {x:Btableidx}} => `TABLE`_externidx{tableidx#123}(x) + prod{x : idx} {{0x01} {x:Btableidx}} => `TABLE`_externidx(x) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{memidx#169 : memidx, x : idx} {{0x02} {x:Bmemidx}} => `MEM`_externidx{memidx#169}(x) + prod{x : idx} {{0x02} {x:Bmemidx}} => `MEM`_externidx(x) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{globalidx#23 : globalidx, x : idx} {{0x03} {x:Bglobalidx}} => `GLOBAL`_externidx{globalidx#23}(x) + prod{x : idx} {{0x03} {x:Bglobalidx}} => `GLOBAL`_externidx(x) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{tagidx#19 : tagidx, x : idx} {{0x04} {x:Btagidx}} => `TAG`_externidx{tagidx#19}(x) + prod{x : idx} {{0x04} {x:Btagidx}} => `TAG`_externidx(x) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bnumtype : numtype @@ -119057,17 +94308,17 @@ grammar Bheaptype : heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec prod{ht : heaptype} ht:Babsheaptype => ht ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{typeidx#1924 : typeidx, x33 : s33, i#49064 : int} x33:Bs33 => `_IDX`_heaptype{typeidx#1924}($s33_to_u32(x33)) - -- if (x33!`%`_s33{i#49064}.0 >= (0 : nat <:> int)) + prod{x33 : s33} x33:Bs33 => `_IDX`_heaptype($s33_to_u32(x33)) + -- if (x33!`%`_s33.0 >= (0 : nat <:> int)) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Breftype : reftype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`null?#1525` : null?, heaptype#1587 : heaptype, ht : heaptype} {{0x63} {ht:Bheaptype}} => `REF`_reftype{`null?#1525`, heaptype#1587}(?(`NULL`_null), ht) + prod{ht : heaptype} {{0x63} {ht:Bheaptype}} => `REF`_reftype(?(`NULL`_null), ht) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`null?#1537` : null?, heaptype#1599 : heaptype, ht : heaptype} {{0x64} {ht:Bheaptype}} => `REF`_reftype{`null?#1537`, heaptype#1599}(?(), ht) + prod{ht : heaptype} {{0x64} {ht:Bheaptype}} => `REF`_reftype(?(), ht) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`null?#1549` : null?, heaptype#1611 : heaptype, ht : heaptype} ht:Babsheaptype => `REF`_reftype{`null?#1549`, heaptype#1611}(?(`NULL`_null), ht) + prod{ht : heaptype} ht:Babsheaptype => `REF`_reftype(?(`NULL`_null), ht) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bvaltype : valtype @@ -119081,7 +94332,7 @@ grammar Bvaltype : valtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bresulttype : resulttype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`X*#13056` : valtype*, `t*` : valtype*} t*{t <- `t*`}:Blist(syntax valtype, grammar Bvaltype) => `%`_resulttype{`X*#13056`}(t*{t <- `t*`}) + prod{`t*` : valtype*} t*{t <- `t*`}:Blist(syntax valtype, grammar Bvaltype) => `%`_resulttype(t*{t <- `t*`}) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bmut : mut? @@ -119107,76 +94358,76 @@ grammar Bstoragetype : storagetype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bfieldtype : fieldtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`mut?#1417` : mut?, storagetype#755 : storagetype, `mut?` : mut?, zt : storagetype} {{zt:Bstoragetype} {mut?{mut <- `mut?`}:Bmut}} => `%%`_fieldtype{`mut?#1417`, storagetype#755}(mut?{mut <- `mut?`}, zt) + prod{`mut?` : mut?, zt : storagetype} {{zt:Bstoragetype} {mut?{mut <- `mut?`}:Bmut}} => `%%`_fieldtype(mut?{mut <- `mut?`}, zt) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bcomptype : comptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{fieldtype#59 : fieldtype, ft : fieldtype} {{0x5E} {ft:Bfieldtype}} => `ARRAY`_comptype{fieldtype#59}(ft) + prod{ft : fieldtype} {{0x5E} {ft:Bfieldtype}} => `ARRAY`_comptype(ft) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`X*#13071` : fieldtype*, `ft*` : fieldtype*} {{0x5F} {ft*{ft <- `ft*`}:Blist(syntax fieldtype, grammar Bfieldtype)}} => `STRUCT`_comptype(`%`_list{`X*#13071`}(ft*{ft <- `ft*`})) + prod{`ft*` : fieldtype*} {{0x5F} {ft*{ft <- `ft*`}:Blist(syntax fieldtype, grammar Bfieldtype)}} => `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{resulttype#3029 : resulttype, `X*#13122` : valtype*, `t_1*` : valtype*, `X*#13135` : valtype*, `t_2*` : valtype*, `X*#13087` : valtype*, `X*#13105` : valtype*} {{0x60} {`%`_resulttype{`X*#13087`}(t_1*{t_1 <- `t_1*`}):Bresulttype} {`%`_resulttype{`X*#13105`}(t_2*{t_2 <- `t_2*`}):Bresulttype}} => `FUNC%->%`_comptype{resulttype#3029}(`%`_resulttype{`X*#13122`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13135`}(t_2*{t_2 <- `t_2*`})) + prod{`t_1*` : valtype*, `t_2*` : valtype*} {{0x60} {`%`_resulttype(t_1*{t_1 <- `t_1*`}):Bresulttype} {`%`_resulttype(t_2*{t_2 <- `t_2*`}):Bresulttype}} => `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bsubtype : subtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`final?#449` : final?, `typeuse*#449` : typeuse*, comptype#449 : comptype, `typeidx#1926*` : typeidx*, `x*` : idx*, ct : comptype} {{0x4F} {x*{x <- `x*`}:Blist(syntax typeidx, grammar Btypeidx)} {ct:Bcomptype}} => `SUB`_subtype{`final?#449`, `typeuse*#449`, comptype#449}(?(`FINAL`_final), `_IDX`_typeuse{typeidx#1926}(x)*{typeidx#1926 <- `typeidx#1926*`, x <- `x*`}, ct) + prod{`x*` : idx*, ct : comptype} {{0x4F} {x*{x <- `x*`}:Blist(syntax typeidx, grammar Btypeidx)} {ct:Bcomptype}} => `SUB`_subtype(?(`FINAL`_final), `_IDX`_typeuse(x)*{x <- `x*`}, ct) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`final?#461` : final?, `typeuse*#461` : typeuse*, comptype#461 : comptype, `typeidx#1928*` : typeidx*, `x*` : idx*, ct : comptype} {{0x50} {x*{x <- `x*`}:Blist(syntax typeidx, grammar Btypeidx)} {ct:Bcomptype}} => `SUB`_subtype{`final?#461`, `typeuse*#461`, comptype#461}(?(), `_IDX`_typeuse{typeidx#1928}(x)*{typeidx#1928 <- `typeidx#1928*`, x <- `x*`}, ct) + prod{`x*` : idx*, ct : comptype} {{0x50} {x*{x <- `x*`}:Blist(syntax typeidx, grammar Btypeidx)} {ct:Bcomptype}} => `SUB`_subtype(?(), `_IDX`_typeuse(x)*{x <- `x*`}, ct) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`final?#473` : final?, `typeuse*#473` : typeuse*, comptype#473 : comptype, ct : comptype} ct:Bcomptype => `SUB`_subtype{`final?#473`, `typeuse*#473`, comptype#473}(?(`FINAL`_final), [], ct) + prod{ct : comptype} ct:Bcomptype => `SUB`_subtype(?(`FINAL`_final), [], ct) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Brectype : rectype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`X*#13150` : subtype*, `st*` : subtype*} {{0x4E} {st*{st <- `st*`}:Blist(syntax subtype, grammar Bsubtype)}} => `REC`_rectype(`%`_list{`X*#13150`}(st*{st <- `st*`})) + prod{`st*` : subtype*} {{0x4E} {st*{st <- `st*`}:Blist(syntax subtype, grammar Bsubtype)}} => `REC`_rectype(`%`_list(st*{st <- `st*`})) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`X*#13165` : subtype*, st : subtype} st:Bsubtype => `REC`_rectype(`%`_list{`X*#13165`}([st])) + prod{st : subtype} st:Bsubtype => `REC`_rectype(`%`_list([st])) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Blimits : (addrtype, limits) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{u64#491 : u64, `u64?#467` : u64?, i#49191 : nat, n : n, i#49167 : nat} {{0x00} {`%`_u64{i#49167}(n):Bu64}} => (`I32`_addrtype, `[%..%]`_limits{u64#491, `u64?#467`}(`%`_u64{i#49191}(n), ?())) + prod{n : n} {{0x00} {`%`_u64(n):Bu64}} => (`I32`_addrtype, `[%..%]`_limits(`%`_u64(n), ?())) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{u64#503 : u64, `u64?#479` : u64?, i#49267 : nat, n : n, i#49289 : nat, m : m, i#49216 : nat, i#49243 : nat} {{0x01} {`%`_u64{i#49216}(n):Bu64} {`%`_u64{i#49243}(m):Bu64}} => (`I32`_addrtype, `[%..%]`_limits{u64#503, `u64?#479`}(`%`_u64{i#49267}(n), ?(`%`_u64{i#49289}(m)))) + prod{n : n, m : m} {{0x01} {`%`_u64(n):Bu64} {`%`_u64(m):Bu64}} => (`I32`_addrtype, `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{u64#515 : u64, `u64?#491` : u64?, i#49338 : nat, n : n, i#49314 : nat} {{0x04} {`%`_u64{i#49314}(n):Bu64}} => (`I64`_addrtype, `[%..%]`_limits{u64#515, `u64?#491`}(`%`_u64{i#49338}(n), ?())) + prod{n : n} {{0x04} {`%`_u64(n):Bu64}} => (`I64`_addrtype, `[%..%]`_limits(`%`_u64(n), ?())) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{u64#527 : u64, `u64?#503` : u64?, i#49414 : nat, n : n, i#49436 : nat, m : m, i#49363 : nat, i#49390 : nat} {{0x05} {`%`_u64{i#49363}(n):Bu64} {`%`_u64{i#49390}(m):Bu64}} => (`I64`_addrtype, `[%..%]`_limits{u64#527, `u64?#503`}(`%`_u64{i#49414}(n), ?(`%`_u64{i#49436}(m)))) + prod{n : n, m : m} {{0x05} {`%`_u64(n):Bu64} {`%`_u64(m):Bu64}} => (`I64`_addrtype, `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Btagtype : tagtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{typeidx#1930 : typeidx, x : idx} {{0x00} {x:Btypeidx}} => `_IDX`_tagtype{typeidx#1930}(x) + prod{x : idx} {{0x00} {x:Btypeidx}} => `_IDX`_tagtype(x) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bglobaltype : globaltype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`mut?#1469` : mut?, valtype#991 : valtype, `mut?` : mut?, t : valtype} {{t:Bvaltype} {mut?{mut <- `mut?`}:Bmut}} => `%%`_globaltype{`mut?#1469`, valtype#991}(mut?{mut <- `mut?`}, t) + prod{`mut?` : mut?, t : valtype} {{t:Bvaltype} {mut?{mut <- `mut?`}:Bmut}} => `%%`_globaltype(mut?{mut <- `mut?`}, t) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bmemtype : memtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{addrtype#1373 : addrtype, limits#1373 : limits, at : addrtype, lim : limits} (at, lim):Blimits => `%%PAGE`_memtype{addrtype#1373, limits#1373}(at, lim) + prod{at : addrtype, lim : limits} (at, lim):Blimits => `%%PAGE`_memtype(at, lim) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Btabletype : tabletype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{addrtype#1385 : addrtype, limits#1385 : limits, reftype#3949 : reftype, at : addrtype, lim : limits, rt : reftype} {{rt:Breftype} {(at, lim):Blimits}} => `%%%`_tabletype{addrtype#1385, limits#1385, reftype#3949}(at, lim, rt) + prod{at : addrtype, lim : limits, rt : reftype} {{rt:Breftype} {(at, lim):Blimits}} => `%%%`_tabletype(at, lim, rt) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bexterntype : externtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{typeuse#67 : typeuse, typeidx#1932 : typeidx, x : idx} {{0x00} {x:Btypeidx}} => `FUNC`_externtype{typeuse#67}(`_IDX`_typeuse{typeidx#1932}(x)) + prod{x : idx} {{0x00} {x:Btypeidx}} => `FUNC`_externtype(`_IDX`_typeuse(x)) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{tabletype#1118 : tabletype, tt : tabletype} {{0x01} {tt:Btabletype}} => `TABLE`_externtype{tabletype#1118}(tt) + prod{tt : tabletype} {{0x01} {tt:Btabletype}} => `TABLE`_externtype(tt) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{memtype#722 : memtype, mt : memtype} {{0x02} {mt:Bmemtype}} => `MEM`_externtype{memtype#722}(mt) + prod{mt : memtype} {{0x02} {mt:Bmemtype}} => `MEM`_externtype(mt) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{globaltype#2273 : globaltype, gt : globaltype} {{0x03} {gt:Bglobaltype}} => `GLOBAL`_externtype{globaltype#2273}(gt) + prod{gt : globaltype} {{0x03} {gt:Bglobaltype}} => `GLOBAL`_externtype(gt) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{tagtype#324 : tagtype, jt : tagtype} {{0x04} {jt:Btagtype}} => `TAG`_externtype{tagtype#324}(jt) + prod{jt : tagtype} {{0x04} {jt:Btagtype}} => `TAG`_externtype(jt) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec syntax castop = (null?, null?) @@ -119195,23 +94446,23 @@ grammar Bcastop : castop ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec grammar Bblocktype : blocktype ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{`valtype?#7` : valtype?} 0x40 => `_RESULT`_blocktype{`valtype?#7`}(?()) + prod 0x40 => `_RESULT`_blocktype(?()) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{`valtype?#9` : valtype?, t : valtype} t:Bvaltype => `_RESULT`_blocktype{`valtype?#9`}(?(t)) + prod{t : valtype} t:Bvaltype => `_RESULT`_blocktype(?(t)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{typeidx#1934 : typeidx, i#49560 : nat, i : s33, i#49559 : int, i#49575 : int} i:Bs33 => `_IDX`_blocktype{typeidx#1934}(`%`_typeidx{i#49560}((i!`%`_s33{i#49559}.0 : int <:> nat))) - -- if (i!`%`_s33{i#49575}.0 >= (0 : nat <:> int)) + prod{i : s33} i:Bs33 => `_IDX`_blocktype(`%`_typeidx((i!`%`_s33.0 : int <:> nat))) + -- if (i!`%`_s33.0 >= (0 : nat <:> int)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec grammar Bcatch : catch ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{tagidx#23 : tagidx, labelidx#115 : labelidx, x : idx, l : labelidx} {{0x00} {x:Btagidx} {l:Blabelidx}} => `CATCH`_catch{tagidx#23, labelidx#115}(x, l) + prod{x : idx, l : labelidx} {{0x00} {x:Btagidx} {l:Blabelidx}} => `CATCH`_catch(x, l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{tagidx#25 : tagidx, labelidx#117 : labelidx, x : idx, l : labelidx} {{0x01} {x:Btagidx} {l:Blabelidx}} => `CATCH_REF`_catch{tagidx#25, labelidx#117}(x, l) + prod{x : idx, l : labelidx} {{0x01} {x:Btagidx} {l:Blabelidx}} => `CATCH_REF`_catch(x, l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{labelidx#119 : labelidx, l : labelidx} {{0x02} {l:Blabelidx}} => `CATCH_ALL`_catch{labelidx#119}(l) + prod{l : labelidx} {{0x02} {l:Blabelidx}} => `CATCH_ALL`_catch(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{labelidx#121 : labelidx, l : labelidx} {{0x03} {l:Blabelidx}} => `CATCH_ALL_REF`_catch{labelidx#121}(l) + prod{l : labelidx} {{0x03} {l:Blabelidx}} => `CATCH_ALL_REF`_catch(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec syntax memidxop = (memidx, memarg) @@ -119219,16 +94470,16 @@ syntax memidxop = (memidx, memarg) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec grammar Bmemarg : memidxop ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{i#51035 : nat, u32#35 : u32, i#51057 : nat, n : n, u64#553 : u64, i#51079 : nat, m : m, i#50986 : nat, i#51013 : nat} {{`%`_u32{i#50986}(n):Bu32} {`%`_u64{i#51013}(m):Bu64}} => (`%`_memidx{i#51035}(0), {`ALIGN`{u32#35} `%`_u32{i#51057}(n), `OFFSET`{u64#553} `%`_u64{i#51079}(m)}) + prod{n : n, m : m} {{`%`_u32(n):Bu32} {`%`_u64(m):Bu64}} => (`%`_memidx(0), {`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)}) -- if (n < (2 ^ 6)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{x : idx, u32#36 : u32, i#51182 : nat, n : n, u64#554 : u64, i#51204 : nat, m : m, i#51104 : nat, i#51148 : nat} {{`%`_u32{i#51104}(n):Bu32} {x:Bmemidx} {`%`_u64{i#51148}(m):Bu64}} => (x, {`ALIGN`{u32#36} `%`_u32{i#51182}((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), `OFFSET`{u64#554} `%`_u64{i#51204}(m)}) + prod{x : idx, n : n, m : m} {{`%`_u32(n):Bu32} {x:Bmemidx} {`%`_u64(m):Bu64}} => (x, {`ALIGN` `%`_u32((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), `OFFSET` `%`_u64(m)}) -- if (((2 ^ 6) <= n) /\ (n < (2 ^ 7))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec grammar Blaneidx : laneidx ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{i#54944 : nat, l : labelidx, i#54943 : nat, i#54896 : nat, i#54895 : nat} `%`_byte{i#54896}(l!`%`_labelidx{i#54895}.0):Bbyte => `%`_laneidx{i#54944}(l!`%`_labelidx{i#54943}.0) + prod{l : labelidx} `%`_byte(l!`%`_labelidx.0):Bbyte => `%`_laneidx(l!`%`_labelidx.0) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec rec { @@ -119242,995 +94493,995 @@ grammar Binstr : instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:10.5-10.17 prod 0x1A => `DROP`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:11.5-11.19 - prod{`valtype*?#11` : valtype*?} 0x1B => `SELECT`_instr{`valtype*?#11`}(?()) + prod 0x1B => `SELECT`_instr(?()) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:12.5-12.41 - prod{`valtype*?#13` : valtype*?, `t*` : valtype*} {{0x1C} {t*{t <- `t*`}:Blist(syntax valtype, grammar Bvaltype)}} => `SELECT`_instr{`valtype*?#13`}(?(t*{t <- `t*`})) + prod{`t*` : valtype*} {{0x1C} {t*{t <- `t*`}:Blist(syntax valtype, grammar Bvaltype)}} => `SELECT`_instr(?(t*{t <- `t*`})) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:32.5-32.57 - prod{blocktype#31 : blocktype, `instr*#2348` : instr*, bt : blocktype, `in*` : instr*} {{0x02} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => `BLOCK`_instr{blocktype#31, `instr*#2348`}(bt, in*{in <- `in*`}) + prod{bt : blocktype, `in*` : instr*} {{0x02} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => `BLOCK`_instr(bt, in*{in <- `in*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:33.5-33.56 - prod{blocktype#33 : blocktype, `instr*#2350` : instr*, bt : blocktype, `in*` : instr*} {{0x03} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => `LOOP`_instr{blocktype#33, `instr*#2350`}(bt, in*{in <- `in*`}) + prod{bt : blocktype, `in*` : instr*} {{0x03} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => `LOOP`_instr(bt, in*{in <- `in*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:34.5-34.63 - prod{blocktype#35 : blocktype, `instr*#2352` : instr*, bt : blocktype, `in*` : instr*} {{0x04} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => `IF%%ELSE%`_instr{blocktype#35, `instr*#2352`}(bt, in*{in <- `in*`}, []) + prod{bt : blocktype, `in*` : instr*} {{0x04} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => `IF%%ELSE%`_instr(bt, in*{in <- `in*`}, []) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:35.5-36.55 - prod{blocktype#37 : blocktype, `instr*#2355` : instr*, bt : blocktype, `in_1*` : instr*, `in_2*` : instr*} {{0x04} {bt:Bblocktype} {in_1:Binstr*{in_1 <- `in_1*`}} {0x05} {in_2:Binstr*{in_2 <- `in_2*`}} {0x0B}} => `IF%%ELSE%`_instr{blocktype#37, `instr*#2355`}(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`}) + prod{bt : blocktype, `in_1*` : instr*, `in_2*` : instr*} {{0x04} {bt:Bblocktype} {in_1:Binstr*{in_1 <- `in_1*`}} {0x05} {in_2:Binstr*{in_2 <- `in_2*`}} {0x0B}} => `IF%%ELSE%`_instr(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:40.5-40.30 - prod{tagidx#21 : tagidx, x : idx} {{0x08} {x:Btagidx}} => `THROW`_instr{tagidx#21}(x) + prod{x : idx} {{0x08} {x:Btagidx}} => `THROW`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:41.5-41.22 prod 0x0A => `THROW_REF`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:42.5-42.29 - prod{labelidx#101 : labelidx, l : labelidx} {{0x0C} {l:Blabelidx}} => `BR`_instr{labelidx#101}(l) + prod{l : labelidx} {{0x0C} {l:Blabelidx}} => `BR`_instr(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:43.5-43.32 - prod{labelidx#103 : labelidx, l : labelidx} {{0x0D} {l:Blabelidx}} => `BR_IF`_instr{labelidx#103}(l) + prod{l : labelidx} {{0x0D} {l:Blabelidx}} => `BR_IF`_instr(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:44.5-44.62 - prod{`labelidx*#54` : labelidx*, labelidx#105 : labelidx, `l*` : labelidx*, l_n : labelidx} {{0x0E} {l*{l <- `l*`}:Blist(syntax labelidx, grammar Blabelidx)} {l_n:Blabelidx}} => `BR_TABLE`_instr{`labelidx*#54`, labelidx#105}(l*{l <- `l*`}, l_n) + prod{`l*` : labelidx*, l_n : labelidx} {{0x0E} {l*{l <- `l*`}:Blist(syntax labelidx, grammar Blabelidx)} {l_n:Blabelidx}} => `BR_TABLE`_instr(l*{l <- `l*`}, l_n) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:45.5-45.19 prod 0x0F => `RETURN`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:46.5-46.30 - prod{funcidx#3163 : funcidx, x : idx} {{0x10} {x:Bfuncidx}} => `CALL`_instr{funcidx#3163}(x) + prod{x : idx} {{0x10} {x:Bfuncidx}} => `CALL`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:47.5-47.60 - prod{tableidx#125 : tableidx, typeuse#69 : typeuse, x : idx, typeidx#1936 : typeidx, y : idx} {{0x11} {y:Btypeidx} {x:Btableidx}} => `CALL_INDIRECT`_instr{tableidx#125, typeuse#69}(x, `_IDX`_typeuse{typeidx#1936}(y)) + prod{x : idx, y : idx} {{0x11} {y:Btypeidx} {x:Btableidx}} => `CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:48.5-48.37 - prod{funcidx#3165 : funcidx, x : idx} {{0x12} {x:Bfuncidx}} => `RETURN_CALL`_instr{funcidx#3165}(x) + prod{x : idx} {{0x12} {x:Bfuncidx}} => `RETURN_CALL`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:49.5-49.67 - prod{tableidx#127 : tableidx, typeuse#71 : typeuse, x : idx, typeidx#1938 : typeidx, y : idx} {{0x13} {y:Btypeidx} {x:Btableidx}} => `RETURN_CALL_INDIRECT`_instr{tableidx#127, typeuse#71}(x, `_IDX`_typeuse{typeidx#1938}(y)) + prod{x : idx, y : idx} {{0x13} {y:Btypeidx} {x:Btableidx}} => `RETURN_CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:50.5-50.41 - prod{typeuse#73 : typeuse, typeidx#1940 : typeidx, x : idx} {{0x14} {x:Btypeidx}} => `CALL_REF`_instr{typeuse#73}(`_IDX`_typeuse{typeidx#1940}(x)) + prod{x : idx} {{0x14} {x:Btypeidx}} => `CALL_REF`_instr(`_IDX`_typeuse(x)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:51.5-51.48 - prod{typeuse#75 : typeuse, typeidx#1942 : typeidx, x : idx} {{0x15} {x:Btypeidx}} => `RETURN_CALL_REF`_instr{typeuse#75}(`_IDX`_typeuse{typeidx#1942}(x)) + prod{x : idx} {{0x15} {x:Btypeidx}} => `RETURN_CALL_REF`_instr(`_IDX`_typeuse(x)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:52.5-52.81 - prod{blocktype#39 : blocktype, `instr*#2358` : instr*, bt : blocktype, `X*#13196` : catch*, `c*` : catch*, `in*` : instr*} {{0x1F} {bt:Bblocktype} {c*{c <- `c*`}:Blist(syntax catch, grammar Bcatch)} {in:Binstr*{in <- `in*`}} {0x0B}} => `TRY_TABLE`_instr{blocktype#39, `instr*#2358`}(bt, `%`_list{`X*#13196`}(c*{c <- `c*`}), in*{in <- `in*`}) + prod{bt : blocktype, `c*` : catch*, `in*` : instr*} {{0x1F} {bt:Bblocktype} {c*{c <- `c*`}:Blist(syntax catch, grammar Bcatch)} {in:Binstr*{in <- `in*`}} {0x0B}} => `TRY_TABLE`_instr(bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:53.5-53.37 - prod{labelidx#107 : labelidx, l : labelidx} {{0xD5} {l:Blabelidx}} => `BR_ON_NULL`_instr{labelidx#107}(l) + prod{l : labelidx} {{0xD5} {l:Blabelidx}} => `BR_ON_NULL`_instr(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:54.5-54.41 - prod{labelidx#109 : labelidx, l : labelidx} {{0xD6} {l:Blabelidx}} => `BR_ON_NON_NULL`_instr{labelidx#109}(l) + prod{l : labelidx} {{0xD6} {l:Blabelidx}} => `BR_ON_NON_NULL`_instr(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:55.5-56.100 - prod{labelidx#111 : labelidx, reftype#3963 : reftype, l : labelidx, `null?#1579` : null?, heaptype#1641 : heaptype, `null_1?` : null?, ht_1 : heaptype, `null?#1591` : null?, heaptype#1653 : heaptype, `null_2?` : null?, ht_2 : heaptype, i#50095 : nat} {{0xFB} {`%`_u32{i#50095}(24):Bu32} {(null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`}):Bcastop} {l:Blabelidx} {ht_1:Bheaptype} {ht_2:Bheaptype}} => `BR_ON_CAST`_instr{labelidx#111, reftype#3963}(l, `REF`_reftype{`null?#1579`, heaptype#1641}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#1591`, heaptype#1653}(null_2?{null_2 <- `null_2?`}, ht_2)) + prod{l : labelidx, `null_1?` : null?, ht_1 : heaptype, `null_2?` : null?, ht_2 : heaptype} {{0xFB} {`%`_u32(24):Bu32} {(null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`}):Bcastop} {l:Blabelidx} {ht_1:Bheaptype} {ht_2:Bheaptype}} => `BR_ON_CAST`_instr(l, `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:57.5-58.105 - prod{labelidx#113 : labelidx, reftype#3966 : reftype, l : labelidx, `null?#1603` : null?, heaptype#1665 : heaptype, `null_1?` : null?, ht_1 : heaptype, `null?#1615` : null?, heaptype#1677 : heaptype, `null_2?` : null?, ht_2 : heaptype, i#50147 : nat} {{0xFB} {`%`_u32{i#50147}(25):Bu32} {(null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`}):Bcastop} {l:Blabelidx} {ht_1:Bheaptype} {ht_2:Bheaptype}} => `BR_ON_CAST_FAIL`_instr{labelidx#113, reftype#3966}(l, `REF`_reftype{`null?#1603`, heaptype#1665}(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype{`null?#1615`, heaptype#1677}(null_2?{null_2 <- `null_2?`}, ht_2)) + prod{l : labelidx, `null_1?` : null?, ht_1 : heaptype, `null_2?` : null?, ht_2 : heaptype} {{0xFB} {`%`_u32(25):Bu32} {(null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`}):Bcastop} {l:Blabelidx} {ht_1:Bheaptype} {ht_2:Bheaptype}} => `BR_ON_CAST_FAIL`_instr(l, `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:71.5-71.36 - prod{localidx#21 : localidx, x : idx} {{0x20} {x:Blocalidx}} => `LOCAL.GET`_instr{localidx#21}(x) + prod{x : idx} {{0x20} {x:Blocalidx}} => `LOCAL.GET`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:72.5-72.36 - prod{localidx#23 : localidx, x : idx} {{0x21} {x:Blocalidx}} => `LOCAL.SET`_instr{localidx#23}(x) + prod{x : idx} {{0x21} {x:Blocalidx}} => `LOCAL.SET`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:73.5-73.36 - prod{localidx#25 : localidx, x : idx} {{0x22} {x:Blocalidx}} => `LOCAL.TEE`_instr{localidx#25}(x) + prod{x : idx} {{0x22} {x:Blocalidx}} => `LOCAL.TEE`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:77.5-77.38 - prod{globalidx#25 : globalidx, x : idx} {{0x23} {x:Bglobalidx}} => `GLOBAL.GET`_instr{globalidx#25}(x) + prod{x : idx} {{0x23} {x:Bglobalidx}} => `GLOBAL.GET`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:78.5-78.38 - prod{globalidx#27 : globalidx, x : idx} {{0x24} {x:Bglobalidx}} => `GLOBAL.SET`_instr{globalidx#27}(x) + prod{x : idx} {{0x24} {x:Bglobalidx}} => `GLOBAL.SET`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:85.5-85.36 - prod{tableidx#129 : tableidx, x : idx} {{0x25} {x:Btableidx}} => `TABLE.GET`_instr{tableidx#129}(x) + prod{x : idx} {{0x25} {x:Btableidx}} => `TABLE.GET`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:86.5-86.36 - prod{tableidx#131 : tableidx, x : idx} {{0x26} {x:Btableidx}} => `TABLE.SET`_instr{tableidx#131}(x) + prod{x : idx} {{0x26} {x:Btableidx}} => `TABLE.SET`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:87.5-87.58 - prod{tableidx#133 : tableidx, elemidx#49 : elemidx, x : idx, y : idx, i#50586 : nat} {{0xFC} {`%`_u32{i#50586}(12):Bu32} {y:Belemidx} {x:Btableidx}} => `TABLE.INIT`_instr{tableidx#133, elemidx#49}(x, y) + prod{x : idx, y : idx} {{0xFC} {`%`_u32(12):Bu32} {y:Belemidx} {x:Btableidx}} => `TABLE.INIT`_instr(x, y) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:88.5-88.43 - prod{elemidx#51 : elemidx, x : idx, i#50673 : nat} {{0xFC} {`%`_u32{i#50673}(13):Bu32} {x:Belemidx}} => `ELEM.DROP`_instr{elemidx#51}(x) + prod{x : idx} {{0xFC} {`%`_u32(13):Bu32} {x:Belemidx}} => `ELEM.DROP`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:89.5-89.67 - prod{tableidx#135 : tableidx, x_1 : idx, x_2 : idx, i#50729 : nat} {{0xFC} {`%`_u32{i#50729}(14):Bu32} {x_1:Btableidx} {x_2:Btableidx}} => `TABLE.COPY`_instr{tableidx#135}(x_1, x_2) + prod{x_1 : idx, x_2 : idx} {{0xFC} {`%`_u32(14):Bu32} {x_1:Btableidx} {x_2:Btableidx}} => `TABLE.COPY`_instr(x_1, x_2) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:90.5-90.45 - prod{tableidx#138 : tableidx, x : idx, i#50816 : nat} {{0xFC} {`%`_u32{i#50816}(15):Bu32} {x:Btableidx}} => `TABLE.GROW`_instr{tableidx#138}(x) + prod{x : idx} {{0xFC} {`%`_u32(15):Bu32} {x:Btableidx}} => `TABLE.GROW`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:91.5-91.45 - prod{tableidx#140 : tableidx, x : idx, i#50872 : nat} {{0xFC} {`%`_u32{i#50872}(16):Bu32} {x:Btableidx}} => `TABLE.SIZE`_instr{tableidx#140}(x) + prod{x : idx} {{0xFC} {`%`_u32(16):Bu32} {x:Btableidx}} => `TABLE.SIZE`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:92.5-92.45 - prod{tableidx#142 : tableidx, x : idx, i#50928 : nat} {{0xFC} {`%`_u32{i#50928}(17):Bu32} {x:Btableidx}} => `TABLE.FILL`_instr{tableidx#142}(x) + prod{x : idx} {{0xFC} {`%`_u32(17):Bu32} {x:Btableidx}} => `TABLE.FILL`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:105.5-105.41 - prod{`numtype?#21` : numtype?, memidx#171 : memidx, memarg#91 : memarg, x : idx, ao : memarg} {{0x28} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#21`, memidx#171, memarg#91}(`I32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x28} {(x, ao):Bmemarg}} => `LOAD`_instr(`I32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:106.5-106.41 - prod{`numtype?#22` : numtype?, memidx#173 : memidx, memarg#93 : memarg, x : idx, ao : memarg} {{0x29} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#22`, memidx#173, memarg#93}(`I64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x29} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:107.5-107.41 - prod{`numtype?#23` : numtype?, memidx#175 : memidx, memarg#95 : memarg, x : idx, ao : memarg} {{0x2A} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#23`, memidx#175, memarg#95}(`F32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x2A} {(x, ao):Bmemarg}} => `LOAD`_instr(`F32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:108.5-108.41 - prod{`numtype?#24` : numtype?, memidx#177 : memidx, memarg#97 : memarg, x : idx, ao : memarg} {{0x2B} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#24`, memidx#177, memarg#97}(`F64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x2B} {(x, ao):Bmemarg}} => `LOAD`_instr(`F64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:109.5-109.50 - prod{`numtype?#25` : numtype?, memidx#179 : memidx, memarg#99 : memarg, sz#558 : sz, sx#426 : sx, i#51346 : nat, i#51353 : nat, x : idx, ao : memarg} {{0x2C} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#25`, memidx#179, memarg#99}(`I32`_numtype, ?(`%_%`_loadop_{sz#558, sx#426, i#51346}(`%`_sz{i#51353}(8), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x2C} {(x, ao):Bmemarg}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:110.5-110.50 - prod{`numtype?#26` : numtype?, memidx#181 : memidx, memarg#101 : memarg, sz#576 : sz, sx#444 : sx, i#51405 : nat, i#51412 : nat, x : idx, ao : memarg} {{0x2D} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#26`, memidx#181, memarg#101}(`I32`_numtype, ?(`%_%`_loadop_{sz#576, sx#444, i#51405}(`%`_sz{i#51412}(8), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x2D} {(x, ao):Bmemarg}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:111.5-111.51 - prod{`numtype?#27` : numtype?, memidx#183 : memidx, memarg#103 : memarg, sz#594 : sz, sx#462 : sx, i#51464 : nat, i#51471 : nat, x : idx, ao : memarg} {{0x2E} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#27`, memidx#183, memarg#103}(`I32`_numtype, ?(`%_%`_loadop_{sz#594, sx#462, i#51464}(`%`_sz{i#51471}(16), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x2E} {(x, ao):Bmemarg}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:112.5-112.51 - prod{`numtype?#28` : numtype?, memidx#185 : memidx, memarg#105 : memarg, sz#612 : sz, sx#480 : sx, i#51523 : nat, i#51530 : nat, x : idx, ao : memarg} {{0x2F} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#28`, memidx#185, memarg#105}(`I32`_numtype, ?(`%_%`_loadop_{sz#612, sx#480, i#51523}(`%`_sz{i#51530}(16), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x2F} {(x, ao):Bmemarg}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:113.5-113.50 - prod{`numtype?#29` : numtype?, memidx#187 : memidx, memarg#107 : memarg, sz#630 : sz, sx#498 : sx, i#51582 : nat, i#51589 : nat, x : idx, ao : memarg} {{0x30} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#29`, memidx#187, memarg#107}(`I64`_numtype, ?(`%_%`_loadop_{sz#630, sx#498, i#51582}(`%`_sz{i#51589}(8), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x30} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:114.5-114.50 - prod{`numtype?#30` : numtype?, memidx#189 : memidx, memarg#109 : memarg, sz#648 : sz, sx#516 : sx, i#51641 : nat, i#51648 : nat, x : idx, ao : memarg} {{0x31} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#30`, memidx#189, memarg#109}(`I64`_numtype, ?(`%_%`_loadop_{sz#648, sx#516, i#51641}(`%`_sz{i#51648}(8), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x31} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:115.5-115.51 - prod{`numtype?#31` : numtype?, memidx#191 : memidx, memarg#111 : memarg, sz#666 : sz, sx#534 : sx, i#51700 : nat, i#51707 : nat, x : idx, ao : memarg} {{0x32} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#31`, memidx#191, memarg#111}(`I64`_numtype, ?(`%_%`_loadop_{sz#666, sx#534, i#51700}(`%`_sz{i#51707}(16), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x32} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:116.5-116.51 - prod{`numtype?#32` : numtype?, memidx#193 : memidx, memarg#113 : memarg, sz#684 : sz, sx#552 : sx, i#51759 : nat, i#51766 : nat, x : idx, ao : memarg} {{0x33} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#32`, memidx#193, memarg#113}(`I64`_numtype, ?(`%_%`_loadop_{sz#684, sx#552, i#51759}(`%`_sz{i#51766}(16), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x33} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:117.5-117.51 - prod{`numtype?#33` : numtype?, memidx#195 : memidx, memarg#115 : memarg, sz#702 : sz, sx#570 : sx, i#51818 : nat, i#51825 : nat, x : idx, ao : memarg} {{0x34} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#33`, memidx#195, memarg#115}(`I64`_numtype, ?(`%_%`_loadop_{sz#702, sx#570, i#51818}(`%`_sz{i#51825}(32), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x34} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:118.5-118.51 - prod{`numtype?#34` : numtype?, memidx#197 : memidx, memarg#117 : memarg, sz#720 : sz, sx#588 : sx, i#51877 : nat, i#51884 : nat, x : idx, ao : memarg} {{0x35} {(x, ao):Bmemarg}} => `LOAD`_instr{`numtype?#34`, memidx#197, memarg#117}(`I64`_numtype, ?(`%_%`_loadop_{sz#720, sx#588, i#51877}(`%`_sz{i#51884}(32), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x35} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:119.5-119.42 - prod{`numtype?#35` : numtype?, memidx#199 : memidx, memarg#119 : memarg, x : idx, ao : memarg} {{0x36} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#35`, memidx#199, memarg#119}(`I32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x36} {(x, ao):Bmemarg}} => `STORE`_instr(`I32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:120.5-120.42 - prod{`numtype?#36` : numtype?, memidx#201 : memidx, memarg#121 : memarg, x : idx, ao : memarg} {{0x37} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#36`, memidx#201, memarg#121}(`I64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x37} {(x, ao):Bmemarg}} => `STORE`_instr(`I64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:121.5-121.42 - prod{`numtype?#37` : numtype?, memidx#203 : memidx, memarg#123 : memarg, x : idx, ao : memarg} {{0x38} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#37`, memidx#203, memarg#123}(`F32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x38} {(x, ao):Bmemarg}} => `STORE`_instr(`F32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:122.5-122.42 - prod{`numtype?#38` : numtype?, memidx#205 : memidx, memarg#125 : memarg, x : idx, ao : memarg} {{0x39} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#38`, memidx#205, memarg#125}(`F64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x39} {(x, ao):Bmemarg}} => `STORE`_instr(`F64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:123.5-123.45 - prod{`numtype?#39` : numtype?, memidx#207 : memidx, memarg#127 : memarg, sz#733 : sz, i#52055 : nat, i#52056 : nat, x : idx, ao : memarg} {{0x3A} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#39`, memidx#207, memarg#127}(`I32`_numtype, ?(`%`_storeop_{sz#733, i#52055}(`%`_sz{i#52056}(8))), x, ao) + prod{x : idx, ao : memarg} {{0x3A} {(x, ao):Bmemarg}} => `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:124.5-124.46 - prod{`numtype?#40` : numtype?, memidx#209 : memidx, memarg#129 : memarg, sz#746 : sz, i#52123 : nat, i#52124 : nat, x : idx, ao : memarg} {{0x3B} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#40`, memidx#209, memarg#129}(`I32`_numtype, ?(`%`_storeop_{sz#746, i#52123}(`%`_sz{i#52124}(16))), x, ao) + prod{x : idx, ao : memarg} {{0x3B} {(x, ao):Bmemarg}} => `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:125.5-125.45 - prod{`numtype?#41` : numtype?, memidx#211 : memidx, memarg#131 : memarg, sz#759 : sz, i#52191 : nat, i#52192 : nat, x : idx, ao : memarg} {{0x3C} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#41`, memidx#211, memarg#131}(`I64`_numtype, ?(`%`_storeop_{sz#759, i#52191}(`%`_sz{i#52192}(8))), x, ao) + prod{x : idx, ao : memarg} {{0x3C} {(x, ao):Bmemarg}} => `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:126.5-126.46 - prod{`numtype?#42` : numtype?, memidx#213 : memidx, memarg#133 : memarg, sz#772 : sz, i#52259 : nat, i#52260 : nat, x : idx, ao : memarg} {{0x3D} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#42`, memidx#213, memarg#133}(`I64`_numtype, ?(`%`_storeop_{sz#772, i#52259}(`%`_sz{i#52260}(16))), x, ao) + prod{x : idx, ao : memarg} {{0x3D} {(x, ao):Bmemarg}} => `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:127.5-127.46 - prod{`numtype?#43` : numtype?, memidx#215 : memidx, memarg#135 : memarg, sz#785 : sz, i#52327 : nat, i#52328 : nat, x : idx, ao : memarg} {{0x3E} {(x, ao):Bmemarg}} => `STORE`_instr{`numtype?#43`, memidx#215, memarg#135}(`I64`_numtype, ?(`%`_storeop_{sz#785, i#52327}(`%`_sz{i#52328}(32))), x, ao) + prod{x : idx, ao : memarg} {{0x3E} {(x, ao):Bmemarg}} => `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:128.5-128.36 - prod{memidx#217 : memidx, x : idx} {{0x3F} {x:Bmemidx}} => `MEMORY.SIZE`_instr{memidx#217}(x) + prod{x : idx} {{0x3F} {x:Bmemidx}} => `MEMORY.SIZE`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:129.5-129.36 - prod{memidx#219 : memidx, x : idx} {{0x40} {x:Bmemidx}} => `MEMORY.GROW`_instr{memidx#219}(x) + prod{x : idx} {{0x40} {x:Bmemidx}} => `MEMORY.GROW`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:130.5-130.56 - prod{memidx#221 : memidx, dataidx#47 : dataidx, x : idx, y : idx, i#52427 : nat} {{0xFC} {`%`_u32{i#52427}(8):Bu32} {y:Bdataidx} {x:Bmemidx}} => `MEMORY.INIT`_instr{memidx#221, dataidx#47}(x, y) + prod{x : idx, y : idx} {{0xFC} {`%`_u32(8):Bu32} {y:Bdataidx} {x:Bmemidx}} => `MEMORY.INIT`_instr(x, y) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:131.5-131.42 - prod{dataidx#49 : dataidx, x : idx, i#52514 : nat} {{0xFC} {`%`_u32{i#52514}(9):Bu32} {x:Bdataidx}} => `DATA.DROP`_instr{dataidx#49}(x) + prod{x : idx} {{0xFC} {`%`_u32(9):Bu32} {x:Bdataidx}} => `DATA.DROP`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:132.5-132.64 - prod{memidx#223 : memidx, x_1 : idx, x_2 : idx, i#52570 : nat} {{0xFC} {`%`_u32{i#52570}(10):Bu32} {x_1:Bmemidx} {x_2:Bmemidx}} => `MEMORY.COPY`_instr{memidx#223}(x_1, x_2) + prod{x_1 : idx, x_2 : idx} {{0xFC} {`%`_u32(10):Bu32} {x_1:Bmemidx} {x_2:Bmemidx}} => `MEMORY.COPY`_instr(x_1, x_2) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:133.5-133.44 - prod{memidx#226 : memidx, x : idx, i#52657 : nat} {{0xFC} {`%`_u32{i#52657}(11):Bu32} {x:Bmemidx}} => `MEMORY.FILL`_instr{memidx#226}(x) + prod{x : idx} {{0xFC} {`%`_u32(11):Bu32} {x:Bmemidx}} => `MEMORY.FILL`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:140.5-140.37 - prod{heaptype#1679 : heaptype, ht : heaptype} {{0xD0} {ht:Bheaptype}} => `REF.NULL`_instr{heaptype#1679}(ht) + prod{ht : heaptype} {{0xD0} {ht:Bheaptype}} => `REF.NULL`_instr(ht) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:141.5-141.24 prod 0xD1 => `REF.IS_NULL`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:142.5-142.34 - prod{funcidx#3167 : funcidx, x : idx} {{0xD2} {x:Bfuncidx}} => `REF.FUNC`_instr{funcidx#3167}(x) + prod{x : idx} {{0xD2} {x:Bfuncidx}} => `REF.FUNC`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:143.5-143.19 prod 0xD3 => `REF.EQ`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:144.5-144.28 prod 0xD4 => `REF.AS_NON_NULL`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:145.5-145.51 - prod{reftype#3969 : reftype, `null?#1627` : null?, heaptype#1691 : heaptype, ht : heaptype, i#52744 : nat} {{0xFB} {`%`_u32{i#52744}(20):Bu32} {ht:Bheaptype}} => `REF.TEST`_instr{reftype#3969}(`REF`_reftype{`null?#1627`, heaptype#1691}(?(), ht)) + prod{ht : heaptype} {{0xFB} {`%`_u32(20):Bu32} {ht:Bheaptype}} => `REF.TEST`_instr(`REF`_reftype(?(), ht)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:146.5-146.56 - prod{reftype#3971 : reftype, `null?#1639` : null?, heaptype#1703 : heaptype, ht : heaptype, i#52769 : nat} {{0xFB} {`%`_u32{i#52769}(21):Bu32} {ht:Bheaptype}} => `REF.TEST`_instr{reftype#3971}(`REF`_reftype{`null?#1639`, heaptype#1703}(?(`NULL`_null), ht)) + prod{ht : heaptype} {{0xFB} {`%`_u32(21):Bu32} {ht:Bheaptype}} => `REF.TEST`_instr(`REF`_reftype(?(`NULL`_null), ht)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:147.5-147.51 - prod{reftype#3973 : reftype, `null?#1651` : null?, heaptype#1715 : heaptype, ht : heaptype, i#52794 : nat} {{0xFB} {`%`_u32{i#52794}(22):Bu32} {ht:Bheaptype}} => `REF.CAST`_instr{reftype#3973}(`REF`_reftype{`null?#1651`, heaptype#1715}(?(), ht)) + prod{ht : heaptype} {{0xFB} {`%`_u32(22):Bu32} {ht:Bheaptype}} => `REF.CAST`_instr(`REF`_reftype(?(), ht)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:148.5-148.56 - prod{reftype#3975 : reftype, `null?#1663` : null?, heaptype#1727 : heaptype, ht : heaptype, i#52819 : nat} {{0xFB} {`%`_u32{i#52819}(23):Bu32} {ht:Bheaptype}} => `REF.CAST`_instr{reftype#3975}(`REF`_reftype{`null?#1663`, heaptype#1727}(?(`NULL`_null), ht)) + prod{ht : heaptype} {{0xFB} {`%`_u32(23):Bu32} {ht:Bheaptype}} => `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), ht)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:152.5-152.43 - prod{typeidx#1944 : typeidx, x : idx, i#52844 : nat} {{0xFB} {`%`_u32{i#52844}(0):Bu32} {x:Btypeidx}} => `STRUCT.NEW`_instr{typeidx#1944}(x) + prod{x : idx} {{0xFB} {`%`_u32(0):Bu32} {x:Btypeidx}} => `STRUCT.NEW`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:153.5-153.51 - prod{typeidx#1946 : typeidx, x : idx, i#52900 : nat} {{0xFB} {`%`_u32{i#52900}(1):Bu32} {x:Btypeidx}} => `STRUCT.NEW_DEFAULT`_instr{typeidx#1946}(x) + prod{x : idx} {{0xFB} {`%`_u32(1):Bu32} {x:Btypeidx}} => `STRUCT.NEW_DEFAULT`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:154.5-154.52 - prod{`sx?#31` : sx?, typeidx#1948 : typeidx, u32#37 : u32, x : idx, i : u32, i#52956 : nat} {{0xFB} {`%`_u32{i#52956}(2):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr{`sx?#31`, typeidx#1948, u32#37}(?(), x, i) + prod{x : idx, i : u32} {{0xFB} {`%`_u32(2):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr(?(), x, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:155.5-155.54 - prod{`sx?#33` : sx?, typeidx#1950 : typeidx, u32#39 : u32, x : idx, i : u32, i#53041 : nat} {{0xFB} {`%`_u32{i#53041}(3):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr{`sx?#33`, typeidx#1950, u32#39}(?(`S`_sx), x, i) + prod{x : idx, i : u32} {{0xFB} {`%`_u32(3):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr(?(`S`_sx), x, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:156.5-156.54 - prod{`sx?#35` : sx?, typeidx#1952 : typeidx, u32#41 : u32, x : idx, i : u32, i#53148 : nat} {{0xFB} {`%`_u32{i#53148}(4):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr{`sx?#35`, typeidx#1952, u32#41}(?(`U`_sx), x, i) + prod{x : idx, i : u32} {{0xFB} {`%`_u32(4):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr(?(`U`_sx), x, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:157.5-157.52 - prod{typeidx#1954 : typeidx, u32#43 : u32, x : idx, i : u32, i#53255 : nat} {{0xFB} {`%`_u32{i#53255}(5):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.SET`_instr{typeidx#1954, u32#43}(x, i) + prod{x : idx, i : u32} {{0xFB} {`%`_u32(5):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.SET`_instr(x, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:161.5-161.42 - prod{typeidx#1956 : typeidx, x : idx, i#53340 : nat} {{0xFB} {`%`_u32{i#53340}(6):Bu32} {x:Btypeidx}} => `ARRAY.NEW`_instr{typeidx#1956}(x) + prod{x : idx} {{0xFB} {`%`_u32(6):Bu32} {x:Btypeidx}} => `ARRAY.NEW`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:162.5-162.50 - prod{typeidx#1958 : typeidx, x : idx, i#53396 : nat} {{0xFB} {`%`_u32{i#53396}(7):Bu32} {x:Btypeidx}} => `ARRAY.NEW_DEFAULT`_instr{typeidx#1958}(x) + prod{x : idx} {{0xFB} {`%`_u32(7):Bu32} {x:Btypeidx}} => `ARRAY.NEW_DEFAULT`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:163.5-163.57 - prod{typeidx#1960 : typeidx, u32#45 : u32, x : idx, i#53536 : nat, n : n, i#53452 : nat, i#53496 : nat} {{0xFB} {`%`_u32{i#53452}(8):Bu32} {x:Btypeidx} {`%`_u32{i#53496}(n):Bu32}} => `ARRAY.NEW_FIXED`_instr{typeidx#1960, u32#45}(x, `%`_u32{i#53536}(n)) + prod{x : idx, n : n} {{0xFB} {`%`_u32(8):Bu32} {x:Btypeidx} {`%`_u32(n):Bu32}} => `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:164.5-164.60 - prod{typeidx#1962 : typeidx, dataidx#51 : dataidx, x : idx, y : idx, i#53559 : nat} {{0xFB} {`%`_u32{i#53559}(9):Bu32} {x:Btypeidx} {y:Bdataidx}} => `ARRAY.NEW_DATA`_instr{typeidx#1962, dataidx#51}(x, y) + prod{x : idx, y : idx} {{0xFB} {`%`_u32(9):Bu32} {x:Btypeidx} {y:Bdataidx}} => `ARRAY.NEW_DATA`_instr(x, y) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:165.5-165.61 - prod{typeidx#1964 : typeidx, elemidx#53 : elemidx, x : idx, y : idx, i#53646 : nat} {{0xFB} {`%`_u32{i#53646}(10):Bu32} {x:Btypeidx} {y:Belemidx}} => `ARRAY.NEW_ELEM`_instr{typeidx#1964, elemidx#53}(x, y) + prod{x : idx, y : idx} {{0xFB} {`%`_u32(10):Bu32} {x:Btypeidx} {y:Belemidx}} => `ARRAY.NEW_ELEM`_instr(x, y) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:166.5-166.43 - prod{`sx?#37` : sx?, typeidx#1966 : typeidx, x : idx, i#53733 : nat} {{0xFB} {`%`_u32{i#53733}(11):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr{`sx?#37`, typeidx#1966}(?(), x) + prod{x : idx} {{0xFB} {`%`_u32(11):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr(?(), x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:167.5-167.45 - prod{`sx?#39` : sx?, typeidx#1968 : typeidx, x : idx, i#53789 : nat} {{0xFB} {`%`_u32{i#53789}(12):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr{`sx?#39`, typeidx#1968}(?(`S`_sx), x) + prod{x : idx} {{0xFB} {`%`_u32(12):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr(?(`S`_sx), x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:168.5-168.45 - prod{`sx?#41` : sx?, typeidx#1970 : typeidx, x : idx, i#53889 : nat} {{0xFB} {`%`_u32{i#53889}(13):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr{`sx?#41`, typeidx#1970}(?(`U`_sx), x) + prod{x : idx} {{0xFB} {`%`_u32(13):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr(?(`U`_sx), x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:169.5-169.43 - prod{typeidx#1972 : typeidx, x : idx, i#53989 : nat} {{0xFB} {`%`_u32{i#53989}(14):Bu32} {x:Btypeidx}} => `ARRAY.SET`_instr{typeidx#1972}(x) + prod{x : idx} {{0xFB} {`%`_u32(14):Bu32} {x:Btypeidx}} => `ARRAY.SET`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:170.5-170.30 - prod{i#54045 : nat} {{0xFB} {`%`_u32{i#54045}(15):Bu32}} => `ARRAY.LEN`_instr + prod {{0xFB} {`%`_u32(15):Bu32}} => `ARRAY.LEN`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:171.5-171.44 - prod{typeidx#1974 : typeidx, x : idx, i#54070 : nat} {{0xFB} {`%`_u32{i#54070}(16):Bu32} {x:Btypeidx}} => `ARRAY.FILL`_instr{typeidx#1974}(x) + prod{x : idx} {{0xFB} {`%`_u32(16):Bu32} {x:Btypeidx}} => `ARRAY.FILL`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:172.5-172.65 - prod{typeidx#1976 : typeidx, x_1 : idx, x_2 : idx, i#54126 : nat} {{0xFB} {`%`_u32{i#54126}(17):Bu32} {x_1:Btypeidx} {x_2:Btypeidx}} => `ARRAY.COPY`_instr{typeidx#1976}(x_1, x_2) + prod{x_1 : idx, x_2 : idx} {{0xFB} {`%`_u32(17):Bu32} {x_1:Btypeidx} {x_2:Btypeidx}} => `ARRAY.COPY`_instr(x_1, x_2) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:173.5-173.62 - prod{typeidx#1979 : typeidx, dataidx#53 : dataidx, x : idx, y : idx, i#54213 : nat} {{0xFB} {`%`_u32{i#54213}(18):Bu32} {x:Btypeidx} {y:Bdataidx}} => `ARRAY.INIT_DATA`_instr{typeidx#1979, dataidx#53}(x, y) + prod{x : idx, y : idx} {{0xFB} {`%`_u32(18):Bu32} {x:Btypeidx} {y:Bdataidx}} => `ARRAY.INIT_DATA`_instr(x, y) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:174.5-174.62 - prod{typeidx#1981 : typeidx, elemidx#55 : elemidx, x : idx, y : idx, i#54300 : nat} {{0xFB} {`%`_u32{i#54300}(19):Bu32} {x:Btypeidx} {y:Belemidx}} => `ARRAY.INIT_ELEM`_instr{typeidx#1981, elemidx#55}(x, y) + prod{x : idx, y : idx} {{0xFB} {`%`_u32(19):Bu32} {x:Btypeidx} {y:Belemidx}} => `ARRAY.INIT_ELEM`_instr(x, y) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:178.5-178.39 - prod{i#54387 : nat} {{0xFB} {`%`_u32{i#54387}(26):Bu32}} => `ANY.CONVERT_EXTERN`_instr + prod {{0xFB} {`%`_u32(26):Bu32}} => `ANY.CONVERT_EXTERN`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:179.5-179.39 - prod{i#54412 : nat} {{0xFB} {`%`_u32{i#54412}(27):Bu32}} => `EXTERN.CONVERT_ANY`_instr + prod {{0xFB} {`%`_u32(27):Bu32}} => `EXTERN.CONVERT_ANY`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:183.5-183.28 - prod{i#54437 : nat} {{0xFB} {`%`_u32{i#54437}(28):Bu32}} => `REF.I31`_instr + prod {{0xFB} {`%`_u32(28):Bu32}} => `REF.I31`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:184.5-184.30 - prod{sx#590 : sx, i#54462 : nat} {{0xFB} {`%`_u32{i#54462}(29):Bu32}} => `I31.GET`_instr{sx#590}(`S`_sx) + prod {{0xFB} {`%`_u32(29):Bu32}} => `I31.GET`_instr(`S`_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:185.5-185.30 - prod{sx#592 : sx, i#54487 : nat} {{0xFB} {`%`_u32{i#54487}(30):Bu32}} => `I31.GET`_instr{sx#592}(`U`_sx) + prod {{0xFB} {`%`_u32(30):Bu32}} => `I31.GET`_instr(`U`_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:192.5-192.31 - prod{numtype#654 : numtype, i#54540 : nat, n : n, i#54514 : nat} {{0x41} {`%`_u32{i#54514}(n):Bu32}} => `CONST`_instr{numtype#654}(`I32`_numtype, `%`_num_{i#54540}(n)) + prod{n : n} {{0x41} {`%`_u32(n):Bu32}} => `CONST`_instr(`I32`_numtype, `%`_num_(n)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:193.5-193.31 - prod{numtype#656 : numtype, i#54591 : nat, n : n, i#54565 : nat} {{0x42} {`%`_u64{i#54565}(n):Bu64}} => `CONST`_instr{numtype#656}(`I64`_numtype, `%`_num_{i#54591}(n)) + prod{n : n} {{0x42} {`%`_u64(n):Bu64}} => `CONST`_instr(`I64`_numtype, `%`_num_(n)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:194.5-194.31 - prod{numtype#658 : numtype, p : f32} {{0x43} {p:Bf32}} => `CONST`_instr{numtype#658}(`F32`_numtype, p) + prod{p : f32} {{0x43} {p:Bf32}} => `CONST`_instr(`F32`_numtype, p) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:195.5-195.31 - prod{numtype#660 : numtype, p : f64} {{0x44} {p:Bf64}} => `CONST`_instr{numtype#660}(`F64`_numtype, p) + prod{p : f64} {{0x44} {p:Bf64}} => `CONST`_instr(`F64`_numtype, p) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:199.5-199.27 - prod{numtype#662 : numtype} 0x45 => `TESTOP`_instr{numtype#662}(`I32`_numtype, `EQZ`_testop_) + prod 0x45 => `TESTOP`_instr(`I32`_numtype, `EQZ`_testop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:203.5-203.25 - prod{numtype#664 : numtype} 0x46 => `RELOP`_instr{numtype#664}(`I32`_numtype, `EQ`_relop_) + prod 0x46 => `RELOP`_instr(`I32`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:204.5-204.25 - prod{numtype#666 : numtype} 0x47 => `RELOP`_instr{numtype#666}(`I32`_numtype, `NE`_relop_) + prod 0x47 => `RELOP`_instr(`I32`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:205.5-205.27 - prod{numtype#668 : numtype, sx#836 : sx} 0x48 => `RELOP`_instr{numtype#668}(`I32`_numtype, `LT`_relop_{sx#836}(`S`_sx)) + prod 0x48 => `RELOP`_instr(`I32`_numtype, `LT`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:206.5-206.27 - prod{numtype#670 : numtype, sx#960 : sx} 0x49 => `RELOP`_instr{numtype#670}(`I32`_numtype, `LT`_relop_{sx#960}(`U`_sx)) + prod 0x49 => `RELOP`_instr(`I32`_numtype, `LT`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:207.5-207.27 - prod{numtype#672 : numtype, sx#1084 : sx} 0x4A => `RELOP`_instr{numtype#672}(`I32`_numtype, `GT`_relop_{sx#1084}(`S`_sx)) + prod 0x4A => `RELOP`_instr(`I32`_numtype, `GT`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:208.5-208.27 - prod{numtype#674 : numtype, sx#1208 : sx} 0x4B => `RELOP`_instr{numtype#674}(`I32`_numtype, `GT`_relop_{sx#1208}(`U`_sx)) + prod 0x4B => `RELOP`_instr(`I32`_numtype, `GT`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:209.5-209.27 - prod{numtype#676 : numtype, sx#1332 : sx} 0x4C => `RELOP`_instr{numtype#676}(`I32`_numtype, `LE`_relop_{sx#1332}(`S`_sx)) + prod 0x4C => `RELOP`_instr(`I32`_numtype, `LE`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:210.5-210.27 - prod{numtype#678 : numtype, sx#1456 : sx} 0x4D => `RELOP`_instr{numtype#678}(`I32`_numtype, `LE`_relop_{sx#1456}(`U`_sx)) + prod 0x4D => `RELOP`_instr(`I32`_numtype, `LE`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:211.5-211.27 - prod{numtype#680 : numtype, sx#1580 : sx} 0x4E => `RELOP`_instr{numtype#680}(`I32`_numtype, `GE`_relop_{sx#1580}(`S`_sx)) + prod 0x4E => `RELOP`_instr(`I32`_numtype, `GE`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:212.5-212.27 - prod{numtype#682 : numtype, sx#1704 : sx} 0x4F => `RELOP`_instr{numtype#682}(`I32`_numtype, `GE`_relop_{sx#1704}(`U`_sx)) + prod 0x4F => `RELOP`_instr(`I32`_numtype, `GE`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:216.5-216.27 - prod{numtype#684 : numtype} 0x50 => `TESTOP`_instr{numtype#684}(`I64`_numtype, `EQZ`_testop_) + prod 0x50 => `TESTOP`_instr(`I64`_numtype, `EQZ`_testop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:220.5-220.25 - prod{numtype#686 : numtype} 0x51 => `RELOP`_instr{numtype#686}(`I64`_numtype, `EQ`_relop_) + prod 0x51 => `RELOP`_instr(`I64`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:221.5-221.25 - prod{numtype#688 : numtype} 0x52 => `RELOP`_instr{numtype#688}(`I64`_numtype, `NE`_relop_) + prod 0x52 => `RELOP`_instr(`I64`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:222.5-222.27 - prod{numtype#690 : numtype, sx#1948 : sx} 0x53 => `RELOP`_instr{numtype#690}(`I64`_numtype, `LT`_relop_{sx#1948}(`S`_sx)) + prod 0x53 => `RELOP`_instr(`I64`_numtype, `LT`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:223.5-223.27 - prod{numtype#692 : numtype, sx#2072 : sx} 0x54 => `RELOP`_instr{numtype#692}(`I64`_numtype, `LT`_relop_{sx#2072}(`U`_sx)) + prod 0x54 => `RELOP`_instr(`I64`_numtype, `LT`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:224.5-224.27 - prod{numtype#694 : numtype, sx#2196 : sx} 0x55 => `RELOP`_instr{numtype#694}(`I64`_numtype, `GT`_relop_{sx#2196}(`S`_sx)) + prod 0x55 => `RELOP`_instr(`I64`_numtype, `GT`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:225.5-225.27 - prod{numtype#696 : numtype, sx#2320 : sx} 0x56 => `RELOP`_instr{numtype#696}(`I64`_numtype, `GT`_relop_{sx#2320}(`U`_sx)) + prod 0x56 => `RELOP`_instr(`I64`_numtype, `GT`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:226.5-226.27 - prod{numtype#698 : numtype, sx#2444 : sx} 0x57 => `RELOP`_instr{numtype#698}(`I64`_numtype, `LE`_relop_{sx#2444}(`S`_sx)) + prod 0x57 => `RELOP`_instr(`I64`_numtype, `LE`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:227.5-227.27 - prod{numtype#700 : numtype, sx#2568 : sx} 0x58 => `RELOP`_instr{numtype#700}(`I64`_numtype, `LE`_relop_{sx#2568}(`U`_sx)) + prod 0x58 => `RELOP`_instr(`I64`_numtype, `LE`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:228.5-228.27 - prod{numtype#702 : numtype, sx#2692 : sx} 0x59 => `RELOP`_instr{numtype#702}(`I64`_numtype, `GE`_relop_{sx#2692}(`S`_sx)) + prod 0x59 => `RELOP`_instr(`I64`_numtype, `GE`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:229.5-229.27 - prod{numtype#704 : numtype, sx#2816 : sx} 0x5A => `RELOP`_instr{numtype#704}(`I64`_numtype, `GE`_relop_{sx#2816}(`U`_sx)) + prod 0x5A => `RELOP`_instr(`I64`_numtype, `GE`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:233.5-233.25 - prod{numtype#706 : numtype} 0x5B => `RELOP`_instr{numtype#706}(`F32`_numtype, `EQ`_relop_) + prod 0x5B => `RELOP`_instr(`F32`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:234.5-234.25 - prod{numtype#708 : numtype} 0x5C => `RELOP`_instr{numtype#708}(`F32`_numtype, `NE`_relop_) + prod 0x5C => `RELOP`_instr(`F32`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:235.5-235.25 - prod{numtype#710 : numtype} 0x5D => `RELOP`_instr{numtype#710}(`F32`_numtype, `LT`_relop_) + prod 0x5D => `RELOP`_instr(`F32`_numtype, `LT`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:236.5-236.25 - prod{numtype#712 : numtype} 0x5E => `RELOP`_instr{numtype#712}(`F32`_numtype, `GT`_relop_) + prod 0x5E => `RELOP`_instr(`F32`_numtype, `GT`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:237.5-237.25 - prod{numtype#714 : numtype} 0x5F => `RELOP`_instr{numtype#714}(`F32`_numtype, `LE`_relop_) + prod 0x5F => `RELOP`_instr(`F32`_numtype, `LE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:238.5-238.25 - prod{numtype#716 : numtype} 0x60 => `RELOP`_instr{numtype#716}(`F32`_numtype, `GE`_relop_) + prod 0x60 => `RELOP`_instr(`F32`_numtype, `GE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:242.5-242.25 - prod{numtype#718 : numtype} 0x61 => `RELOP`_instr{numtype#718}(`F64`_numtype, `EQ`_relop_) + prod 0x61 => `RELOP`_instr(`F64`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:243.5-243.25 - prod{numtype#720 : numtype} 0x62 => `RELOP`_instr{numtype#720}(`F64`_numtype, `NE`_relop_) + prod 0x62 => `RELOP`_instr(`F64`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:244.5-244.25 - prod{numtype#722 : numtype} 0x63 => `RELOP`_instr{numtype#722}(`F64`_numtype, `LT`_relop_) + prod 0x63 => `RELOP`_instr(`F64`_numtype, `LT`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:245.5-245.25 - prod{numtype#724 : numtype} 0x64 => `RELOP`_instr{numtype#724}(`F64`_numtype, `GT`_relop_) + prod 0x64 => `RELOP`_instr(`F64`_numtype, `GT`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:246.5-246.25 - prod{numtype#726 : numtype} 0x65 => `RELOP`_instr{numtype#726}(`F64`_numtype, `LE`_relop_) + prod 0x65 => `RELOP`_instr(`F64`_numtype, `LE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:247.5-247.25 - prod{numtype#728 : numtype} 0x66 => `RELOP`_instr{numtype#728}(`F64`_numtype, `GE`_relop_) + prod 0x66 => `RELOP`_instr(`F64`_numtype, `GE`_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:251.5-251.25 - prod{numtype#730 : numtype} 0x67 => `UNOP`_instr{numtype#730}(`I32`_numtype, `CLZ`_unop_) + prod 0x67 => `UNOP`_instr(`I32`_numtype, `CLZ`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:252.5-252.25 - prod{numtype#732 : numtype} 0x68 => `UNOP`_instr{numtype#732}(`I32`_numtype, `CTZ`_unop_) + prod 0x68 => `UNOP`_instr(`I32`_numtype, `CTZ`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:253.5-253.28 - prod{numtype#734 : numtype} 0x69 => `UNOP`_instr{numtype#734}(`I32`_numtype, `POPCNT`_unop_) + prod 0x69 => `UNOP`_instr(`I32`_numtype, `POPCNT`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:257.5-257.26 - prod{numtype#736 : numtype} 0x6A => `BINOP`_instr{numtype#736}(`I32`_numtype, `ADD`_binop_) + prod 0x6A => `BINOP`_instr(`I32`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:258.5-258.26 - prod{numtype#738 : numtype} 0x6B => `BINOP`_instr{numtype#738}(`I32`_numtype, `SUB`_binop_) + prod 0x6B => `BINOP`_instr(`I32`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:259.5-259.26 - prod{numtype#740 : numtype} 0x6C => `BINOP`_instr{numtype#740}(`I32`_numtype, `MUL`_binop_) + prod 0x6C => `BINOP`_instr(`I32`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:260.5-260.28 - prod{numtype#742 : numtype, sx#3045 : sx} 0x6D => `BINOP`_instr{numtype#742}(`I32`_numtype, `DIV`_binop_{sx#3045}(`S`_sx)) + prod 0x6D => `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:261.5-261.28 - prod{numtype#744 : numtype, sx#3139 : sx} 0x6E => `BINOP`_instr{numtype#744}(`I32`_numtype, `DIV`_binop_{sx#3139}(`U`_sx)) + prod 0x6E => `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:262.5-262.28 - prod{numtype#746 : numtype, sx#3233 : sx} 0x6F => `BINOP`_instr{numtype#746}(`I32`_numtype, `REM`_binop_{sx#3233}(`S`_sx)) + prod 0x6F => `BINOP`_instr(`I32`_numtype, `REM`_binop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:263.5-263.28 - prod{numtype#748 : numtype, sx#3327 : sx} 0x70 => `BINOP`_instr{numtype#748}(`I32`_numtype, `REM`_binop_{sx#3327}(`U`_sx)) + prod 0x70 => `BINOP`_instr(`I32`_numtype, `REM`_binop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:264.5-264.26 - prod{numtype#750 : numtype} 0x71 => `BINOP`_instr{numtype#750}(`I32`_numtype, `AND`_binop_) + prod 0x71 => `BINOP`_instr(`I32`_numtype, `AND`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:265.5-265.25 - prod{numtype#752 : numtype} 0x72 => `BINOP`_instr{numtype#752}(`I32`_numtype, `OR`_binop_) + prod 0x72 => `BINOP`_instr(`I32`_numtype, `OR`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:266.5-266.26 - prod{numtype#754 : numtype} 0x73 => `BINOP`_instr{numtype#754}(`I32`_numtype, `XOR`_binop_) + prod 0x73 => `BINOP`_instr(`I32`_numtype, `XOR`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:267.5-267.26 - prod{numtype#756 : numtype} 0x74 => `BINOP`_instr{numtype#756}(`I32`_numtype, `SHL`_binop_) + prod 0x74 => `BINOP`_instr(`I32`_numtype, `SHL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:268.5-268.28 - prod{numtype#758 : numtype, sx#3601 : sx} 0x75 => `BINOP`_instr{numtype#758}(`I32`_numtype, `SHR`_binop_{sx#3601}(`S`_sx)) + prod 0x75 => `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:269.5-269.28 - prod{numtype#760 : numtype, sx#3695 : sx} 0x76 => `BINOP`_instr{numtype#760}(`I32`_numtype, `SHR`_binop_{sx#3695}(`U`_sx)) + prod 0x76 => `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:270.5-270.27 - prod{numtype#762 : numtype} 0x77 => `BINOP`_instr{numtype#762}(`I32`_numtype, `ROTL`_binop_) + prod 0x77 => `BINOP`_instr(`I32`_numtype, `ROTL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:271.5-271.27 - prod{numtype#764 : numtype} 0x78 => `BINOP`_instr{numtype#764}(`I32`_numtype, `ROTR`_binop_) + prod 0x78 => `BINOP`_instr(`I32`_numtype, `ROTR`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:275.5-275.25 - prod{numtype#766 : numtype} 0x79 => `UNOP`_instr{numtype#766}(`I64`_numtype, `CLZ`_unop_) + prod 0x79 => `UNOP`_instr(`I64`_numtype, `CLZ`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:276.5-276.25 - prod{numtype#768 : numtype} 0x7A => `UNOP`_instr{numtype#768}(`I64`_numtype, `CTZ`_unop_) + prod 0x7A => `UNOP`_instr(`I64`_numtype, `CTZ`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:277.5-277.28 - prod{numtype#770 : numtype} 0x7B => `UNOP`_instr{numtype#770}(`I64`_numtype, `POPCNT`_unop_) + prod 0x7B => `UNOP`_instr(`I64`_numtype, `POPCNT`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:281.5-281.31 - prod{numtype#772 : numtype, sz#909 : sz, i#54600 : nat, i#54607 : nat} 0xC0 => `UNOP`_instr{numtype#772}(`I32`_numtype, `EXTEND`_unop_{sz#909, i#54600}(`%`_sz{i#54607}(8))) + prod 0xC0 => `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(8))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:282.5-282.32 - prod{numtype#774 : numtype, sz#943 : sz, i#54616 : nat, i#54623 : nat} 0xC1 => `UNOP`_instr{numtype#774}(`I32`_numtype, `EXTEND`_unop_{sz#943, i#54616}(`%`_sz{i#54623}(16))) + prod 0xC1 => `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(16))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:286.5-286.31 - prod{numtype#776 : numtype, sz#977 : sz, i#54632 : nat, i#54639 : nat} 0xC2 => `UNOP`_instr{numtype#776}(`I64`_numtype, `EXTEND`_unop_{sz#977, i#54632}(`%`_sz{i#54639}(8))) + prod 0xC2 => `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(8))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:287.5-287.32 - prod{numtype#778 : numtype, sz#1011 : sz, i#54648 : nat, i#54655 : nat} 0xC3 => `UNOP`_instr{numtype#778}(`I64`_numtype, `EXTEND`_unop_{sz#1011, i#54648}(`%`_sz{i#54655}(16))) + prod 0xC3 => `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(16))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:288.5-288.32 - prod{numtype#780 : numtype, sz#1045 : sz, i#54664 : nat, i#54671 : nat} 0xC4 => `UNOP`_instr{numtype#780}(`I64`_numtype, `EXTEND`_unop_{sz#1045, i#54664}(`%`_sz{i#54671}(32))) + prod 0xC4 => `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(32))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:292.5-292.26 - prod{numtype#782 : numtype} 0x7C => `BINOP`_instr{numtype#782}(`I64`_numtype, `ADD`_binop_) + prod 0x7C => `BINOP`_instr(`I64`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:293.5-293.26 - prod{numtype#784 : numtype} 0x7D => `BINOP`_instr{numtype#784}(`I64`_numtype, `SUB`_binop_) + prod 0x7D => `BINOP`_instr(`I64`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:294.5-294.26 - prod{numtype#786 : numtype} 0x7E => `BINOP`_instr{numtype#786}(`I64`_numtype, `MUL`_binop_) + prod 0x7E => `BINOP`_instr(`I64`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:295.5-295.28 - prod{numtype#788 : numtype, sx#4014 : sx} 0x7F => `BINOP`_instr{numtype#788}(`I64`_numtype, `DIV`_binop_{sx#4014}(`S`_sx)) + prod 0x7F => `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:296.5-296.28 - prod{numtype#790 : numtype, sx#4108 : sx} 0x80 => `BINOP`_instr{numtype#790}(`I64`_numtype, `DIV`_binop_{sx#4108}(`U`_sx)) + prod 0x80 => `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:297.5-297.28 - prod{numtype#792 : numtype, sx#4202 : sx} 0x81 => `BINOP`_instr{numtype#792}(`I64`_numtype, `REM`_binop_{sx#4202}(`S`_sx)) + prod 0x81 => `BINOP`_instr(`I64`_numtype, `REM`_binop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:298.5-298.28 - prod{numtype#794 : numtype, sx#4296 : sx} 0x82 => `BINOP`_instr{numtype#794}(`I64`_numtype, `REM`_binop_{sx#4296}(`U`_sx)) + prod 0x82 => `BINOP`_instr(`I64`_numtype, `REM`_binop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:299.5-299.26 - prod{numtype#796 : numtype} 0x83 => `BINOP`_instr{numtype#796}(`I64`_numtype, `AND`_binop_) + prod 0x83 => `BINOP`_instr(`I64`_numtype, `AND`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:300.5-300.25 - prod{numtype#798 : numtype} 0x84 => `BINOP`_instr{numtype#798}(`I64`_numtype, `OR`_binop_) + prod 0x84 => `BINOP`_instr(`I64`_numtype, `OR`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:301.5-301.26 - prod{numtype#800 : numtype} 0x85 => `BINOP`_instr{numtype#800}(`I64`_numtype, `XOR`_binop_) + prod 0x85 => `BINOP`_instr(`I64`_numtype, `XOR`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:302.5-302.26 - prod{numtype#802 : numtype} 0x86 => `BINOP`_instr{numtype#802}(`I64`_numtype, `SHL`_binop_) + prod 0x86 => `BINOP`_instr(`I64`_numtype, `SHL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:303.5-303.28 - prod{numtype#804 : numtype, sx#4570 : sx} 0x87 => `BINOP`_instr{numtype#804}(`I64`_numtype, `SHR`_binop_{sx#4570}(`S`_sx)) + prod 0x87 => `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:304.5-304.28 - prod{numtype#806 : numtype, sx#4664 : sx} 0x88 => `BINOP`_instr{numtype#806}(`I64`_numtype, `SHR`_binop_{sx#4664}(`U`_sx)) + prod 0x88 => `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:305.5-305.27 - prod{numtype#808 : numtype} 0x89 => `BINOP`_instr{numtype#808}(`I64`_numtype, `ROTL`_binop_) + prod 0x89 => `BINOP`_instr(`I64`_numtype, `ROTL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:306.5-306.27 - prod{numtype#810 : numtype} 0x8A => `BINOP`_instr{numtype#810}(`I64`_numtype, `ROTR`_binop_) + prod 0x8A => `BINOP`_instr(`I64`_numtype, `ROTR`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:310.5-310.25 - prod{numtype#812 : numtype} 0x8B => `UNOP`_instr{numtype#812}(`F32`_numtype, `ABS`_unop_) + prod 0x8B => `UNOP`_instr(`F32`_numtype, `ABS`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:311.5-311.25 - prod{numtype#814 : numtype} 0x8C => `UNOP`_instr{numtype#814}(`F32`_numtype, `NEG`_unop_) + prod 0x8C => `UNOP`_instr(`F32`_numtype, `NEG`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:312.5-312.26 - prod{numtype#816 : numtype} 0x8D => `UNOP`_instr{numtype#816}(`F32`_numtype, `CEIL`_unop_) + prod 0x8D => `UNOP`_instr(`F32`_numtype, `CEIL`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:313.5-313.27 - prod{numtype#818 : numtype} 0x8E => `UNOP`_instr{numtype#818}(`F32`_numtype, `FLOOR`_unop_) + prod 0x8E => `UNOP`_instr(`F32`_numtype, `FLOOR`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:314.5-314.27 - prod{numtype#820 : numtype} 0x8F => `UNOP`_instr{numtype#820}(`F32`_numtype, `TRUNC`_unop_) + prod 0x8F => `UNOP`_instr(`F32`_numtype, `TRUNC`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:315.5-315.29 - prod{numtype#822 : numtype} 0x90 => `UNOP`_instr{numtype#822}(`F32`_numtype, `NEAREST`_unop_) + prod 0x90 => `UNOP`_instr(`F32`_numtype, `NEAREST`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:316.5-316.26 - prod{numtype#824 : numtype} 0x91 => `UNOP`_instr{numtype#824}(`F32`_numtype, `SQRT`_unop_) + prod 0x91 => `UNOP`_instr(`F32`_numtype, `SQRT`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:320.5-320.26 - prod{numtype#826 : numtype} 0x92 => `BINOP`_instr{numtype#826}(`F32`_numtype, `ADD`_binop_) + prod 0x92 => `BINOP`_instr(`F32`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:321.5-321.26 - prod{numtype#828 : numtype} 0x93 => `BINOP`_instr{numtype#828}(`F32`_numtype, `SUB`_binop_) + prod 0x93 => `BINOP`_instr(`F32`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:322.5-322.26 - prod{numtype#830 : numtype} 0x94 => `BINOP`_instr{numtype#830}(`F32`_numtype, `MUL`_binop_) + prod 0x94 => `BINOP`_instr(`F32`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:323.5-323.26 - prod{numtype#832 : numtype} 0x95 => `BINOP`_instr{numtype#832}(`F32`_numtype, `DIV`_binop_) + prod 0x95 => `BINOP`_instr(`F32`_numtype, `DIV`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:324.5-324.26 - prod{numtype#834 : numtype} 0x96 => `BINOP`_instr{numtype#834}(`F32`_numtype, `MIN`_binop_) + prod 0x96 => `BINOP`_instr(`F32`_numtype, `MIN`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:325.5-325.26 - prod{numtype#836 : numtype} 0x97 => `BINOP`_instr{numtype#836}(`F32`_numtype, `MAX`_binop_) + prod 0x97 => `BINOP`_instr(`F32`_numtype, `MAX`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:326.5-326.31 - prod{numtype#838 : numtype} 0x98 => `BINOP`_instr{numtype#838}(`F32`_numtype, `COPYSIGN`_binop_) + prod 0x98 => `BINOP`_instr(`F32`_numtype, `COPYSIGN`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:330.5-330.25 - prod{numtype#840 : numtype} 0x99 => `UNOP`_instr{numtype#840}(`F64`_numtype, `ABS`_unop_) + prod 0x99 => `UNOP`_instr(`F64`_numtype, `ABS`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:331.5-331.25 - prod{numtype#842 : numtype} 0x9A => `UNOP`_instr{numtype#842}(`F64`_numtype, `NEG`_unop_) + prod 0x9A => `UNOP`_instr(`F64`_numtype, `NEG`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:332.5-332.26 - prod{numtype#844 : numtype} 0x9B => `UNOP`_instr{numtype#844}(`F64`_numtype, `CEIL`_unop_) + prod 0x9B => `UNOP`_instr(`F64`_numtype, `CEIL`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:333.5-333.27 - prod{numtype#846 : numtype} 0x9C => `UNOP`_instr{numtype#846}(`F64`_numtype, `FLOOR`_unop_) + prod 0x9C => `UNOP`_instr(`F64`_numtype, `FLOOR`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:334.5-334.27 - prod{numtype#848 : numtype} 0x9D => `UNOP`_instr{numtype#848}(`F64`_numtype, `TRUNC`_unop_) + prod 0x9D => `UNOP`_instr(`F64`_numtype, `TRUNC`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:335.5-335.29 - prod{numtype#850 : numtype} 0x9E => `UNOP`_instr{numtype#850}(`F64`_numtype, `NEAREST`_unop_) + prod 0x9E => `UNOP`_instr(`F64`_numtype, `NEAREST`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:336.5-336.26 - prod{numtype#852 : numtype} 0x9F => `UNOP`_instr{numtype#852}(`F64`_numtype, `SQRT`_unop_) + prod 0x9F => `UNOP`_instr(`F64`_numtype, `SQRT`_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:340.5-340.26 - prod{numtype#854 : numtype} 0xA0 => `BINOP`_instr{numtype#854}(`F64`_numtype, `ADD`_binop_) + prod 0xA0 => `BINOP`_instr(`F64`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:341.5-341.26 - prod{numtype#856 : numtype} 0xA1 => `BINOP`_instr{numtype#856}(`F64`_numtype, `SUB`_binop_) + prod 0xA1 => `BINOP`_instr(`F64`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:342.5-342.26 - prod{numtype#858 : numtype} 0xA2 => `BINOP`_instr{numtype#858}(`F64`_numtype, `MUL`_binop_) + prod 0xA2 => `BINOP`_instr(`F64`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:343.5-343.26 - prod{numtype#860 : numtype} 0xA3 => `BINOP`_instr{numtype#860}(`F64`_numtype, `DIV`_binop_) + prod 0xA3 => `BINOP`_instr(`F64`_numtype, `DIV`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:344.5-344.26 - prod{numtype#862 : numtype} 0xA4 => `BINOP`_instr{numtype#862}(`F64`_numtype, `MIN`_binop_) + prod 0xA4 => `BINOP`_instr(`F64`_numtype, `MIN`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:345.5-345.26 - prod{numtype#864 : numtype} 0xA5 => `BINOP`_instr{numtype#864}(`F64`_numtype, `MAX`_binop_) + prod 0xA5 => `BINOP`_instr(`F64`_numtype, `MAX`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:346.5-346.31 - prod{numtype#866 : numtype} 0xA6 => `BINOP`_instr{numtype#866}(`F64`_numtype, `COPYSIGN`_binop_) + prod 0xA6 => `BINOP`_instr(`F64`_numtype, `COPYSIGN`_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:351.5-351.31 - prod{numtype_1#9 : numtype, numtype_2#9 : numtype} 0xA7 => `CVTOP`_instr{numtype_1#9, numtype_2#9}(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__) + prod 0xA7 => `CVTOP`_instr(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:352.5-352.34 - prod{numtype_1#11 : numtype, numtype_2#11 : numtype, sx#4833 : sx} 0xA8 => `CVTOP`_instr{numtype_1#11, numtype_2#11}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#4833}(`S`_sx)) + prod 0xA8 => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:353.5-353.34 - prod{numtype_1#13 : numtype, numtype_2#13 : numtype, sx#4897 : sx} 0xA9 => `CVTOP`_instr{numtype_1#13, numtype_2#13}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#4897}(`U`_sx)) + prod 0xA9 => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:354.5-354.34 - prod{numtype_1#15 : numtype, numtype_2#15 : numtype, sx#4961 : sx} 0xAA => `CVTOP`_instr{numtype_1#15, numtype_2#15}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#4961}(`S`_sx)) + prod 0xAA => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:355.5-355.34 - prod{numtype_1#17 : numtype, numtype_2#17 : numtype, sx#5025 : sx} 0xAB => `CVTOP`_instr{numtype_1#17, numtype_2#17}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5025}(`U`_sx)) + prod 0xAB => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:356.5-356.35 - prod{numtype_1#19 : numtype, numtype_2#19 : numtype, sx#5059 : sx} 0xAC => `CVTOP`_instr{numtype_1#19, numtype_2#19}(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__{sx#5059}(`S`_sx)) + prod 0xAC => `CVTOP`_instr(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:357.5-357.35 - prod{numtype_1#21 : numtype, numtype_2#21 : numtype, sx#5093 : sx} 0xAD => `CVTOP`_instr{numtype_1#21, numtype_2#21}(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__{sx#5093}(`U`_sx)) + prod 0xAD => `CVTOP`_instr(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:358.5-358.34 - prod{numtype_1#23 : numtype, numtype_2#23 : numtype, sx#5157 : sx} 0xAE => `CVTOP`_instr{numtype_1#23, numtype_2#23}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#5157}(`S`_sx)) + prod 0xAE => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:359.5-359.34 - prod{numtype_1#25 : numtype, numtype_2#25 : numtype, sx#5221 : sx} 0xAF => `CVTOP`_instr{numtype_1#25, numtype_2#25}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#5221}(`U`_sx)) + prod 0xAF => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:360.5-360.34 - prod{numtype_1#27 : numtype, numtype_2#27 : numtype, sx#5285 : sx} 0xB0 => `CVTOP`_instr{numtype_1#27, numtype_2#27}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5285}(`S`_sx)) + prod 0xB0 => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:361.5-361.34 - prod{numtype_1#29 : numtype, numtype_2#29 : numtype, sx#5349 : sx} 0xB1 => `CVTOP`_instr{numtype_1#29, numtype_2#29}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#5349}(`U`_sx)) + prod 0xB1 => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:362.5-362.36 - prod{numtype_1#31 : numtype, numtype_2#31 : numtype, sx#5383 : sx} 0xB2 => `CVTOP`_instr{numtype_1#31, numtype_2#31}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5383}(`S`_sx)) + prod 0xB2 => `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:363.5-363.36 - prod{numtype_1#33 : numtype, numtype_2#33 : numtype, sx#5417 : sx} 0xB3 => `CVTOP`_instr{numtype_1#33, numtype_2#33}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5417}(`U`_sx)) + prod 0xB3 => `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:364.5-364.36 - prod{numtype_1#35 : numtype, numtype_2#35 : numtype, sx#5451 : sx} 0xB4 => `CVTOP`_instr{numtype_1#35, numtype_2#35}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5451}(`S`_sx)) + prod 0xB4 => `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:365.5-365.36 - prod{numtype_1#37 : numtype, numtype_2#37 : numtype, sx#5485 : sx} 0xB5 => `CVTOP`_instr{numtype_1#37, numtype_2#37}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5485}(`U`_sx)) + prod 0xB5 => `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:366.5-366.33 - prod{numtype_1#39 : numtype, numtype_2#39 : numtype} 0xB6 => `CVTOP`_instr{numtype_1#39, numtype_2#39}(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__) + prod 0xB6 => `CVTOP`_instr(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:367.5-367.36 - prod{numtype_1#41 : numtype, numtype_2#41 : numtype, sx#5519 : sx} 0xB7 => `CVTOP`_instr{numtype_1#41, numtype_2#41}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5519}(`S`_sx)) + prod 0xB7 => `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:368.5-368.36 - prod{numtype_1#43 : numtype, numtype_2#43 : numtype, sx#5553 : sx} 0xB8 => `CVTOP`_instr{numtype_1#43, numtype_2#43}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#5553}(`U`_sx)) + prod 0xB8 => `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:369.5-369.36 - prod{numtype_1#45 : numtype, numtype_2#45 : numtype, sx#5587 : sx} 0xB9 => `CVTOP`_instr{numtype_1#45, numtype_2#45}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5587}(`S`_sx)) + prod 0xB9 => `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:370.5-370.36 - prod{numtype_1#47 : numtype, numtype_2#47 : numtype, sx#5621 : sx} 0xBA => `CVTOP`_instr{numtype_1#47, numtype_2#47}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#5621}(`U`_sx)) + prod 0xBA => `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:371.5-371.34 - prod{numtype_1#49 : numtype, numtype_2#49 : numtype} 0xBB => `CVTOP`_instr{numtype_1#49, numtype_2#49}(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__) + prod 0xBB => `CVTOP`_instr(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:372.5-372.38 - prod{numtype_1#51 : numtype, numtype_2#51 : numtype} 0xBC => `CVTOP`_instr{numtype_1#51, numtype_2#51}(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__) + prod 0xBC => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:373.5-373.38 - prod{numtype_1#53 : numtype, numtype_2#53 : numtype} 0xBD => `CVTOP`_instr{numtype_1#53, numtype_2#53}(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__) + prod 0xBD => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:374.5-374.38 - prod{numtype_1#55 : numtype, numtype_2#55 : numtype} 0xBE => `CVTOP`_instr{numtype_1#55, numtype_2#55}(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__) + prod 0xBE => `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:375.5-375.38 - prod{numtype_1#57 : numtype, numtype_2#57 : numtype} 0xBF => `CVTOP`_instr{numtype_1#57, numtype_2#57}(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__) + prod 0xBF => `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:379.5-379.45 - prod{numtype_1#59 : numtype, numtype_2#59 : numtype, sx#5775 : sx, i#54694 : nat} {{0xFC} {`%`_u32{i#54694}(0):Bu32}} => `CVTOP`_instr{numtype_1#59, numtype_2#59}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#5775}(`S`_sx)) + prod {{0xFC} {`%`_u32(0):Bu32}} => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:380.5-380.45 - prod{numtype_1#61 : numtype, numtype_2#61 : numtype, sx#5839 : sx, i#54719 : nat} {{0xFC} {`%`_u32{i#54719}(1):Bu32}} => `CVTOP`_instr{numtype_1#61, numtype_2#61}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#5839}(`U`_sx)) + prod {{0xFC} {`%`_u32(1):Bu32}} => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:381.5-381.45 - prod{numtype_1#63 : numtype, numtype_2#63 : numtype, sx#5903 : sx, i#54744 : nat} {{0xFC} {`%`_u32{i#54744}(2):Bu32}} => `CVTOP`_instr{numtype_1#63, numtype_2#63}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#5903}(`S`_sx)) + prod {{0xFC} {`%`_u32(2):Bu32}} => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:382.5-382.45 - prod{numtype_1#65 : numtype, numtype_2#65 : numtype, sx#5967 : sx, i#54769 : nat} {{0xFC} {`%`_u32{i#54769}(3):Bu32}} => `CVTOP`_instr{numtype_1#65, numtype_2#65}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#5967}(`U`_sx)) + prod {{0xFC} {`%`_u32(3):Bu32}} => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:383.5-383.45 - prod{numtype_1#67 : numtype, numtype_2#67 : numtype, sx#6031 : sx, i#54794 : nat} {{0xFC} {`%`_u32{i#54794}(4):Bu32}} => `CVTOP`_instr{numtype_1#67, numtype_2#67}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#6031}(`S`_sx)) + prod {{0xFC} {`%`_u32(4):Bu32}} => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:384.5-384.45 - prod{numtype_1#69 : numtype, numtype_2#69 : numtype, sx#6095 : sx, i#54819 : nat} {{0xFC} {`%`_u32{i#54819}(5):Bu32}} => `CVTOP`_instr{numtype_1#69, numtype_2#69}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#6095}(`U`_sx)) + prod {{0xFC} {`%`_u32(5):Bu32}} => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:385.5-385.45 - prod{numtype_1#71 : numtype, numtype_2#71 : numtype, sx#6159 : sx, i#54844 : nat} {{0xFC} {`%`_u32{i#54844}(6):Bu32}} => `CVTOP`_instr{numtype_1#71, numtype_2#71}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#6159}(`S`_sx)) + prod {{0xFC} {`%`_u32(6):Bu32}} => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:386.5-386.45 - prod{numtype_1#73 : numtype, numtype_2#73 : numtype, sx#6223 : sx, i#54869 : nat} {{0xFC} {`%`_u32{i#54869}(7):Bu32}} => `CVTOP`_instr{numtype_1#73, numtype_2#73}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#6223}(`U`_sx)) + prod {{0xFC} {`%`_u32(7):Bu32}} => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:396.5-396.50 - prod{`vectype?#14` : vectype?, memidx#228 : memidx, memarg#137 : memarg, x : idx, ao : memarg, i#54968 : nat} {{0xFD} {`%`_u32{i#54968}(0):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#14`, memidx#228, memarg#137}(`V128`_vectype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(0):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:397.5-397.70 - prod{`vectype?#15` : vectype?, memidx#230 : memidx, memarg#139 : memarg, sz#1092 : sz, M#157 : M, sx#6240 : sx, i#55059 : nat, i#55066 : nat, x : idx, ao : memarg, i#55019 : nat} {{0xFD} {`%`_u32{i#55019}(1):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#15`, memidx#230, memarg#139}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1092, M#157, sx#6240, i#55059}(`%`_sz{i#55066}(8), 8, `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(1):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:398.5-398.70 - prod{`vectype?#16` : vectype?, memidx#232 : memidx, memarg#141 : memarg, sz#1139 : sz, M#174 : M, sx#6257 : sx, i#55143 : nat, i#55150 : nat, x : idx, ao : memarg, i#55103 : nat} {{0xFD} {`%`_u32{i#55103}(2):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#16`, memidx#232, memarg#141}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1139, M#174, sx#6257, i#55143}(`%`_sz{i#55150}(8), 8, `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(2):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:399.5-399.71 - prod{`vectype?#17` : vectype?, memidx#234 : memidx, memarg#143 : memarg, sz#1186 : sz, M#191 : M, sx#6274 : sx, i#55227 : nat, i#55234 : nat, x : idx, ao : memarg, i#55187 : nat} {{0xFD} {`%`_u32{i#55187}(3):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#17`, memidx#234, memarg#143}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1186, M#191, sx#6274, i#55227}(`%`_sz{i#55234}(16), 4, `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(3):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:400.5-400.71 - prod{`vectype?#18` : vectype?, memidx#236 : memidx, memarg#145 : memarg, sz#1233 : sz, M#208 : M, sx#6291 : sx, i#55311 : nat, i#55318 : nat, x : idx, ao : memarg, i#55271 : nat} {{0xFD} {`%`_u32{i#55271}(4):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#18`, memidx#236, memarg#145}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1233, M#208, sx#6291, i#55311}(`%`_sz{i#55318}(16), 4, `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(4):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:401.5-401.71 - prod{`vectype?#19` : vectype?, memidx#238 : memidx, memarg#147 : memarg, sz#1280 : sz, M#225 : M, sx#6308 : sx, i#55395 : nat, i#55402 : nat, x : idx, ao : memarg, i#55355 : nat} {{0xFD} {`%`_u32{i#55355}(5):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#19`, memidx#238, memarg#147}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1280, M#225, sx#6308, i#55395}(`%`_sz{i#55402}(32), 2, `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(5):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:402.5-402.71 - prod{`vectype?#20` : vectype?, memidx#240 : memidx, memarg#149 : memarg, sz#1327 : sz, M#242 : M, sx#6325 : sx, i#55479 : nat, i#55486 : nat, x : idx, ao : memarg, i#55439 : nat} {{0xFD} {`%`_u32{i#55439}(6):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#20`, memidx#240, memarg#149}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1327, M#242, sx#6325, i#55479}(`%`_sz{i#55486}(32), 2, `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(6):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:403.5-403.61 - prod{`vectype?#21` : vectype?, memidx#242 : memidx, memarg#151 : memarg, sz#1374 : sz, i#55569 : nat, x : idx, ao : memarg, i#55523 : nat} {{0xFD} {`%`_u32{i#55523}(7):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#21`, memidx#242, memarg#151}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1374}(`%`_sz{i#55569}(8))), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(7):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(8))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:404.5-404.62 - prod{`vectype?#22` : vectype?, memidx#244 : memidx, memarg#153 : memarg, sz#1421 : sz, i#55652 : nat, x : idx, ao : memarg, i#55606 : nat} {{0xFD} {`%`_u32{i#55606}(8):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#22`, memidx#244, memarg#153}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1421}(`%`_sz{i#55652}(16))), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(8):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(16))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:405.5-405.62 - prod{`vectype?#23` : vectype?, memidx#246 : memidx, memarg#155 : memarg, sz#1468 : sz, i#55735 : nat, x : idx, ao : memarg, i#55689 : nat} {{0xFD} {`%`_u32{i#55689}(9):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#23`, memidx#246, memarg#155}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1468}(`%`_sz{i#55735}(32))), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(9):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(32))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:406.5-406.63 - prod{`vectype?#24` : vectype?, memidx#248 : memidx, memarg#157 : memarg, sz#1515 : sz, i#55818 : nat, x : idx, ao : memarg, i#55772 : nat} {{0xFD} {`%`_u32{i#55772}(10):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#24`, memidx#248, memarg#157}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#1515}(`%`_sz{i#55818}(64))), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(10):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(64))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:407.5-407.52 - prod{vectype#237 : vectype, memidx#250 : memidx, memarg#159 : memarg, x : idx, ao : memarg, i#55855 : nat} {{0xFD} {`%`_u32{i#55855}(11):Bu32} {(x, ao):Bmemarg}} => `VSTORE`_instr{vectype#237, memidx#250, memarg#159}(`V128`_vectype, x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(11):Bu32} {(x, ao):Bmemarg}} => `VSTORE`_instr(`V128`_vectype, x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:408.5-408.72 - prod{vectype#239 : vectype, sz#1517 : sz, memidx#252 : memidx, memarg#161 : memarg, laneidx#31 : laneidx, i#55945 : nat, x : idx, ao : memarg, i : laneidx, i#55906 : nat} {{0xFD} {`%`_u32{i#55906}(84):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr{vectype#239, sz#1517, memidx#252, memarg#161, laneidx#31}(`V128`_vectype, `%`_sz{i#55945}(8), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(84):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:409.5-409.73 - prod{vectype#241 : vectype, sz#1519 : sz, memidx#254 : memidx, memarg#163 : memarg, laneidx#33 : laneidx, i#56033 : nat, x : idx, ao : memarg, i : laneidx, i#55994 : nat} {{0xFD} {`%`_u32{i#55994}(85):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr{vectype#241, sz#1519, memidx#254, memarg#163, laneidx#33}(`V128`_vectype, `%`_sz{i#56033}(16), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(85):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:410.5-410.73 - prod{vectype#243 : vectype, sz#1521 : sz, memidx#256 : memidx, memarg#165 : memarg, laneidx#35 : laneidx, i#56121 : nat, x : idx, ao : memarg, i : laneidx, i#56082 : nat} {{0xFD} {`%`_u32{i#56082}(86):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr{vectype#243, sz#1521, memidx#256, memarg#165, laneidx#35}(`V128`_vectype, `%`_sz{i#56121}(32), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(86):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:411.5-411.73 - prod{vectype#245 : vectype, sz#1523 : sz, memidx#258 : memidx, memarg#167 : memarg, laneidx#37 : laneidx, i#56209 : nat, x : idx, ao : memarg, i : laneidx, i#56170 : nat} {{0xFD} {`%`_u32{i#56170}(87):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr{vectype#245, sz#1523, memidx#258, memarg#167, laneidx#37}(`V128`_vectype, `%`_sz{i#56209}(64), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(87):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:412.5-412.73 - prod{vectype#247 : vectype, sz#1525 : sz, memidx#260 : memidx, memarg#169 : memarg, laneidx#39 : laneidx, i#56297 : nat, x : idx, ao : memarg, i : laneidx, i#56258 : nat} {{0xFD} {`%`_u32{i#56258}(88):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr{vectype#247, sz#1525, memidx#260, memarg#169, laneidx#39}(`V128`_vectype, `%`_sz{i#56297}(8), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(88):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:413.5-413.74 - prod{vectype#249 : vectype, sz#1527 : sz, memidx#262 : memidx, memarg#171 : memarg, laneidx#41 : laneidx, i#56385 : nat, x : idx, ao : memarg, i : laneidx, i#56346 : nat} {{0xFD} {`%`_u32{i#56346}(89):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr{vectype#249, sz#1527, memidx#262, memarg#171, laneidx#41}(`V128`_vectype, `%`_sz{i#56385}(16), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(89):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:414.5-414.74 - prod{vectype#251 : vectype, sz#1529 : sz, memidx#264 : memidx, memarg#173 : memarg, laneidx#43 : laneidx, i#56473 : nat, x : idx, ao : memarg, i : laneidx, i#56434 : nat} {{0xFD} {`%`_u32{i#56434}(90):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr{vectype#251, sz#1529, memidx#264, memarg#173, laneidx#43}(`V128`_vectype, `%`_sz{i#56473}(32), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(90):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:415.5-415.74 - prod{vectype#253 : vectype, sz#1531 : sz, memidx#266 : memidx, memarg#175 : memarg, laneidx#45 : laneidx, i#56561 : nat, x : idx, ao : memarg, i : laneidx, i#56522 : nat} {{0xFD} {`%`_u32{i#56522}(91):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr{vectype#253, sz#1531, memidx#266, memarg#175, laneidx#45}(`V128`_vectype, `%`_sz{i#56561}(64), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(91):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:416.5-416.62 - prod{`vectype?#25` : vectype?, memidx#268 : memidx, memarg#177 : memarg, sz#1578 : sz, i#56650 : nat, i#56657 : nat, x : idx, ao : memarg, i#56610 : nat} {{0xFD} {`%`_u32{i#56610}(92):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#25`, memidx#268, memarg#177}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#1578, i#56650}(`%`_sz{i#56657}(32))), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(92):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(32))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:417.5-417.62 - prod{`vectype?#26` : vectype?, memidx#270 : memidx, memarg#179 : memarg, sz#1625 : sz, i#56734 : nat, i#56741 : nat, x : idx, ao : memarg, i#56694 : nat} {{0xFD} {`%`_u32{i#56694}(93):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr{`vectype?#26`, memidx#270, memarg#179}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#1625, i#56734}(`%`_sz{i#56741}(64))), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(93):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(64))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:421.5-421.72 - prod{vectype#257 : vectype, `b*` : byte*, i#56778 : nat} {{0xFD} {`%`_u32{i#56778}(12):Bu32} {b:Bbyte^16{b <- `b*`}}} => `VCONST`_instr{vectype#257}(`V128`_vectype, $inv_ibytes_(128, b^16{b <- `b*`})) + prod{`b*` : byte*} {{0xFD} {`%`_u32(12):Bu32} {b:Bbyte^16{b <- `b*`}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, b^16{b <- `b*`})) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:425.5-425.61 - prod{bshape#13 : bshape, `laneidx*#7` : laneidx*, i#56888 : nat, shape#845 : shape, shape#856 : shape, lanetype#7789 : lanetype, dim#7789 : dim, i#56892 : nat, i#56899 : nat, `i#56956*` : nat*, `i#56957*` : nat*, `l*` : labelidx*, i#56835 : nat, `i#56884*` : nat*, `i#56885*` : nat*} {{0xFD} {`%`_u32{i#56835}(13):Bu32} {`%`_laneidx{i#56885}(l!`%`_labelidx{i#56884}.0):Blaneidx^16{i#56884 <- `i#56884*`, i#56885 <- `i#56885*`, l <- `l*`}}} => `VSHUFFLE`_instr{bshape#13, `laneidx*#7`, i#56888, shape#845}(`%`_bshape{shape#856}(`%X%`_shape{lanetype#7789, dim#7789, i#56892}(`I8`_lanetype, `%`_dim{i#56899}(16))), `%`_laneidx{i#56957}(l!`%`_labelidx{i#56956}.0)^16{i#56956 <- `i#56956*`, i#56957 <- `i#56957*`, l <- `l*`}) + prod{`l*` : labelidx*} {{0xFD} {`%`_u32(13):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx^16{l <- `l*`}}} => `VSHUFFLE`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_laneidx(l!`%`_labelidx.0)^16{l <- `l*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:426.5-426.49 - prod{bshape#15 : bshape, shape#868 : shape, lanetype#7801 : lanetype, dim#7801 : dim, i#56988 : nat, i#56995 : nat, i#56981 : nat} {{0xFD} {`%`_u32{i#56981}(14):Bu32}} => `VSWIZZLOP`_instr{bshape#15}(`%`_bshape{shape#868}(`%X%`_shape{lanetype#7801, dim#7801, i#56988}(`I8`_lanetype, `%`_dim{i#56995}(16))), `SWIZZLE`_vswizzlop_) + prod {{0xFD} {`%`_u32(14):Bu32}} => `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SWIZZLE`_vswizzlop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:427.5-427.58 - prod{bshape#17 : bshape, shape#895 : shape, lanetype#7858 : lanetype, dim#7858 : dim, i#57100 : nat, i#57107 : nat, i#57093 : nat} {{0xFD} {`%`_u32{i#57093}(256):Bu32}} => `VSWIZZLOP`_instr{bshape#17}(`%`_bshape{shape#895}(`%X%`_shape{lanetype#7858, dim#7858, i#57100}(`I8`_lanetype, `%`_dim{i#57107}(16))), `RELAXED_SWIZZLE`_vswizzlop_) + prod {{0xFD} {`%`_u32(256):Bu32}} => `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_SWIZZLE`_vswizzlop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:431.5-431.38 - prod{shape#912 : shape, lanetype#7915 : lanetype, dim#7915 : dim, i#57212 : nat, i#57219 : nat, i#57205 : nat} {{0xFD} {`%`_u32{i#57205}(15):Bu32}} => `VSPLAT`_instr{shape#912}(`%X%`_shape{lanetype#7915, dim#7915, i#57212}(`I8`_lanetype, `%`_dim{i#57219}(16))) + prod {{0xFD} {`%`_u32(15):Bu32}} => `VSPLAT`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:432.5-432.38 - prod{shape#914 : shape, lanetype#7927 : lanetype, dim#7927 : dim, i#57249 : nat, i#57256 : nat, i#57242 : nat} {{0xFD} {`%`_u32{i#57242}(16):Bu32}} => `VSPLAT`_instr{shape#914}(`%X%`_shape{lanetype#7927, dim#7927, i#57249}(`I16`_lanetype, `%`_dim{i#57256}(8))) + prod {{0xFD} {`%`_u32(16):Bu32}} => `VSPLAT`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:433.5-433.38 - prod{shape#916 : shape, lanetype#7939 : lanetype, dim#7939 : dim, i#57286 : nat, i#57293 : nat, i#57279 : nat} {{0xFD} {`%`_u32{i#57279}(17):Bu32}} => `VSPLAT`_instr{shape#916}(`%X%`_shape{lanetype#7939, dim#7939, i#57286}(`I32`_lanetype, `%`_dim{i#57293}(4))) + prod {{0xFD} {`%`_u32(17):Bu32}} => `VSPLAT`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:434.5-434.38 - prod{shape#918 : shape, lanetype#7951 : lanetype, dim#7951 : dim, i#57323 : nat, i#57330 : nat, i#57316 : nat} {{0xFD} {`%`_u32{i#57316}(18):Bu32}} => `VSPLAT`_instr{shape#918}(`%X%`_shape{lanetype#7951, dim#7951, i#57323}(`I64`_lanetype, `%`_dim{i#57330}(2))) + prod {{0xFD} {`%`_u32(18):Bu32}} => `VSPLAT`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:435.5-435.38 - prod{shape#920 : shape, lanetype#7963 : lanetype, dim#7963 : dim, i#57360 : nat, i#57367 : nat, i#57353 : nat} {{0xFD} {`%`_u32{i#57353}(19):Bu32}} => `VSPLAT`_instr{shape#920}(`%X%`_shape{lanetype#7963, dim#7963, i#57360}(`F32`_lanetype, `%`_dim{i#57367}(4))) + prod {{0xFD} {`%`_u32(19):Bu32}} => `VSPLAT`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:436.5-436.38 - prod{shape#922 : shape, lanetype#7975 : lanetype, dim#7975 : dim, i#57397 : nat, i#57404 : nat, i#57390 : nat} {{0xFD} {`%`_u32{i#57390}(20):Bu32}} => `VSPLAT`_instr{shape#922}(`%X%`_shape{lanetype#7975, dim#7975, i#57397}(`F64`_lanetype, `%`_dim{i#57404}(2))) + prod {{0xFD} {`%`_u32(20):Bu32}} => `VSPLAT`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:440.5-440.60 - prod{shape#924 : shape, `sx?#43` : sx?, laneidx#47 : laneidx, lanetype#7987 : lanetype, dim#7987 : dim, i#57485 : nat, i#57492 : nat, i#57583 : nat, l : labelidx, i#57582 : nat, i#57427 : nat, i#57477 : nat, i#57476 : nat} {{0xFD} {`%`_u32{i#57427}(21):Bu32} {`%`_laneidx{i#57477}(l!`%`_labelidx{i#57476}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#924, `sx?#43`, laneidx#47}(`%X%`_shape{lanetype#7987, dim#7987, i#57485}(`I8`_lanetype, `%`_dim{i#57492}(16)), ?(`S`_sx), `%`_laneidx{i#57583}(l!`%`_labelidx{i#57582}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(21):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`S`_sx), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:441.5-441.60 - prod{shape#926 : shape, `sx?#45` : sx?, laneidx#49 : laneidx, lanetype#7999 : lanetype, dim#7999 : dim, i#57665 : nat, i#57672 : nat, i#57763 : nat, l : labelidx, i#57762 : nat, i#57607 : nat, i#57657 : nat, i#57656 : nat} {{0xFD} {`%`_u32{i#57607}(22):Bu32} {`%`_laneidx{i#57657}(l!`%`_labelidx{i#57656}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#926, `sx?#45`, laneidx#49}(`%X%`_shape{lanetype#7999, dim#7999, i#57665}(`I8`_lanetype, `%`_dim{i#57672}(16)), ?(`U`_sx), `%`_laneidx{i#57763}(l!`%`_labelidx{i#57762}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(22):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`U`_sx), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:442.5-442.58 - prod{shape#928 : shape, laneidx#51 : laneidx, lanetype#8011 : lanetype, dim#8011 : dim, i#57845 : nat, i#57852 : nat, i#57899 : nat, l : labelidx, i#57898 : nat, i#57787 : nat, i#57837 : nat, i#57836 : nat} {{0xFD} {`%`_u32{i#57787}(23):Bu32} {`%`_laneidx{i#57837}(l!`%`_labelidx{i#57836}.0):Blaneidx}} => `VREPLACE_LANE`_instr{shape#928, laneidx#51}(`%X%`_shape{lanetype#8011, dim#8011, i#57845}(`I8`_lanetype, `%`_dim{i#57852}(16)), `%`_laneidx{i#57899}(l!`%`_labelidx{i#57898}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(23):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:443.5-443.60 - prod{shape#930 : shape, `sx?#47` : sx?, laneidx#53 : laneidx, lanetype#8023 : lanetype, dim#8023 : dim, i#57981 : nat, i#57988 : nat, i#58079 : nat, l : labelidx, i#58078 : nat, i#57923 : nat, i#57973 : nat, i#57972 : nat} {{0xFD} {`%`_u32{i#57923}(24):Bu32} {`%`_laneidx{i#57973}(l!`%`_labelidx{i#57972}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#930, `sx?#47`, laneidx#53}(`%X%`_shape{lanetype#8023, dim#8023, i#57981}(`I16`_lanetype, `%`_dim{i#57988}(8)), ?(`S`_sx), `%`_laneidx{i#58079}(l!`%`_labelidx{i#58078}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(24):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`S`_sx), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:444.5-444.60 - prod{shape#932 : shape, `sx?#49` : sx?, laneidx#55 : laneidx, lanetype#8035 : lanetype, dim#8035 : dim, i#58161 : nat, i#58168 : nat, i#58259 : nat, l : labelidx, i#58258 : nat, i#58103 : nat, i#58153 : nat, i#58152 : nat} {{0xFD} {`%`_u32{i#58103}(25):Bu32} {`%`_laneidx{i#58153}(l!`%`_labelidx{i#58152}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#932, `sx?#49`, laneidx#55}(`%X%`_shape{lanetype#8035, dim#8035, i#58161}(`I16`_lanetype, `%`_dim{i#58168}(8)), ?(`U`_sx), `%`_laneidx{i#58259}(l!`%`_labelidx{i#58258}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(25):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`U`_sx), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:445.5-445.58 - prod{shape#934 : shape, laneidx#57 : laneidx, lanetype#8047 : lanetype, dim#8047 : dim, i#58341 : nat, i#58348 : nat, i#58395 : nat, l : labelidx, i#58394 : nat, i#58283 : nat, i#58333 : nat, i#58332 : nat} {{0xFD} {`%`_u32{i#58283}(26):Bu32} {`%`_laneidx{i#58333}(l!`%`_labelidx{i#58332}.0):Blaneidx}} => `VREPLACE_LANE`_instr{shape#934, laneidx#57}(`%X%`_shape{lanetype#8047, dim#8047, i#58341}(`I16`_lanetype, `%`_dim{i#58348}(8)), `%`_laneidx{i#58395}(l!`%`_labelidx{i#58394}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(26):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:446.5-446.58 - prod{shape#936 : shape, `sx?#51` : sx?, laneidx#59 : laneidx, lanetype#8059 : lanetype, dim#8059 : dim, i#58477 : nat, i#58484 : nat, i#58531 : nat, l : labelidx, i#58530 : nat, i#58419 : nat, i#58469 : nat, i#58468 : nat} {{0xFD} {`%`_u32{i#58419}(27):Bu32} {`%`_laneidx{i#58469}(l!`%`_labelidx{i#58468}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#936, `sx?#51`, laneidx#59}(`%X%`_shape{lanetype#8059, dim#8059, i#58477}(`I32`_lanetype, `%`_dim{i#58484}(4)), ?(), `%`_laneidx{i#58531}(l!`%`_labelidx{i#58530}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(27):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:447.5-447.58 - prod{shape#938 : shape, laneidx#61 : laneidx, lanetype#8071 : lanetype, dim#8071 : dim, i#58613 : nat, i#58620 : nat, i#58667 : nat, l : labelidx, i#58666 : nat, i#58555 : nat, i#58605 : nat, i#58604 : nat} {{0xFD} {`%`_u32{i#58555}(28):Bu32} {`%`_laneidx{i#58605}(l!`%`_labelidx{i#58604}.0):Blaneidx}} => `VREPLACE_LANE`_instr{shape#938, laneidx#61}(`%X%`_shape{lanetype#8071, dim#8071, i#58613}(`I32`_lanetype, `%`_dim{i#58620}(4)), `%`_laneidx{i#58667}(l!`%`_labelidx{i#58666}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(28):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:448.5-448.58 - prod{shape#940 : shape, `sx?#53` : sx?, laneidx#63 : laneidx, lanetype#8083 : lanetype, dim#8083 : dim, i#58749 : nat, i#58756 : nat, i#58803 : nat, l : labelidx, i#58802 : nat, i#58691 : nat, i#58741 : nat, i#58740 : nat} {{0xFD} {`%`_u32{i#58691}(29):Bu32} {`%`_laneidx{i#58741}(l!`%`_labelidx{i#58740}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#940, `sx?#53`, laneidx#63}(`%X%`_shape{lanetype#8083, dim#8083, i#58749}(`I64`_lanetype, `%`_dim{i#58756}(2)), ?(), `%`_laneidx{i#58803}(l!`%`_labelidx{i#58802}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(29):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:449.5-449.58 - prod{shape#942 : shape, laneidx#65 : laneidx, lanetype#8095 : lanetype, dim#8095 : dim, i#58885 : nat, i#58892 : nat, i#58939 : nat, l : labelidx, i#58938 : nat, i#58827 : nat, i#58877 : nat, i#58876 : nat} {{0xFD} {`%`_u32{i#58827}(30):Bu32} {`%`_laneidx{i#58877}(l!`%`_labelidx{i#58876}.0):Blaneidx}} => `VREPLACE_LANE`_instr{shape#942, laneidx#65}(`%X%`_shape{lanetype#8095, dim#8095, i#58885}(`I64`_lanetype, `%`_dim{i#58892}(2)), `%`_laneidx{i#58939}(l!`%`_labelidx{i#58938}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(30):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:450.5-450.58 - prod{shape#944 : shape, `sx?#55` : sx?, laneidx#67 : laneidx, lanetype#8107 : lanetype, dim#8107 : dim, i#59021 : nat, i#59028 : nat, i#59075 : nat, l : labelidx, i#59074 : nat, i#58963 : nat, i#59013 : nat, i#59012 : nat} {{0xFD} {`%`_u32{i#58963}(31):Bu32} {`%`_laneidx{i#59013}(l!`%`_labelidx{i#59012}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#944, `sx?#55`, laneidx#67}(`%X%`_shape{lanetype#8107, dim#8107, i#59021}(`F32`_lanetype, `%`_dim{i#59028}(4)), ?(), `%`_laneidx{i#59075}(l!`%`_labelidx{i#59074}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(31):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:451.5-451.58 - prod{shape#946 : shape, laneidx#69 : laneidx, lanetype#8119 : lanetype, dim#8119 : dim, i#59157 : nat, i#59164 : nat, i#59211 : nat, l : labelidx, i#59210 : nat, i#59099 : nat, i#59149 : nat, i#59148 : nat} {{0xFD} {`%`_u32{i#59099}(32):Bu32} {`%`_laneidx{i#59149}(l!`%`_labelidx{i#59148}.0):Blaneidx}} => `VREPLACE_LANE`_instr{shape#946, laneidx#69}(`%X%`_shape{lanetype#8119, dim#8119, i#59157}(`F32`_lanetype, `%`_dim{i#59164}(4)), `%`_laneidx{i#59211}(l!`%`_labelidx{i#59210}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(32):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:452.5-452.58 - prod{shape#948 : shape, `sx?#57` : sx?, laneidx#71 : laneidx, lanetype#8131 : lanetype, dim#8131 : dim, i#59293 : nat, i#59300 : nat, i#59347 : nat, l : labelidx, i#59346 : nat, i#59235 : nat, i#59285 : nat, i#59284 : nat} {{0xFD} {`%`_u32{i#59235}(33):Bu32} {`%`_laneidx{i#59285}(l!`%`_labelidx{i#59284}.0):Blaneidx}} => `VEXTRACT_LANE`_instr{shape#948, `sx?#57`, laneidx#71}(`%X%`_shape{lanetype#8131, dim#8131, i#59293}(`F64`_lanetype, `%`_dim{i#59300}(2)), ?(), `%`_laneidx{i#59347}(l!`%`_labelidx{i#59346}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(33):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:453.5-453.58 - prod{shape#950 : shape, laneidx#73 : laneidx, lanetype#8143 : lanetype, dim#8143 : dim, i#59429 : nat, i#59436 : nat, i#59483 : nat, l : labelidx, i#59482 : nat, i#59371 : nat, i#59421 : nat, i#59420 : nat} {{0xFD} {`%`_u32{i#59371}(34):Bu32} {`%`_laneidx{i#59421}(l!`%`_labelidx{i#59420}.0):Blaneidx}} => `VREPLACE_LANE`_instr{shape#950, laneidx#73}(`%X%`_shape{lanetype#8143, dim#8143, i#59429}(`F64`_lanetype, `%`_dim{i#59436}(2)), `%`_laneidx{i#59483}(l!`%`_labelidx{i#59482}.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(34):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:457.5-457.41 - prod{shape#952 : shape, lanetype#8155 : lanetype, dim#8155 : dim, i#59514 : nat, i#59521 : nat, i#59507 : nat} {{0xFD} {`%`_u32{i#59507}(35):Bu32}} => `VRELOP`_instr{shape#952}(`%X%`_shape{lanetype#8155, dim#8155, i#59514}(`I8`_lanetype, `%`_dim{i#59521}(16)), `EQ`_vrelop_) + prod {{0xFD} {`%`_u32(35):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:458.5-458.41 - prod{shape#954 : shape, lanetype#8182 : lanetype, dim#8182 : dim, i#59596 : nat, i#59603 : nat, i#59589 : nat} {{0xFD} {`%`_u32{i#59589}(36):Bu32}} => `VRELOP`_instr{shape#954}(`%X%`_shape{lanetype#8182, dim#8182, i#59596}(`I8`_lanetype, `%`_dim{i#59603}(16)), `NE`_vrelop_) + prod {{0xFD} {`%`_u32(36):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:459.5-459.43 - prod{shape#956 : shape, lanetype#8209 : lanetype, dim#8209 : dim, i#59678 : nat, i#59685 : nat, sx#6659 : sx, i#59671 : nat} {{0xFD} {`%`_u32{i#59671}(37):Bu32}} => `VRELOP`_instr{shape#956}(`%X%`_shape{lanetype#8209, dim#8209, i#59678}(`I8`_lanetype, `%`_dim{i#59685}(16)), `LT`_vrelop_{sx#6659}(`S`_sx)) + prod {{0xFD} {`%`_u32(37):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:460.5-460.43 - prod{shape#958 : shape, lanetype#8251 : lanetype, dim#8251 : dim, i#59805 : nat, i#59812 : nat, sx#6783 : sx, i#59798 : nat} {{0xFD} {`%`_u32{i#59798}(38):Bu32}} => `VRELOP`_instr{shape#958}(`%X%`_shape{lanetype#8251, dim#8251, i#59805}(`I8`_lanetype, `%`_dim{i#59812}(16)), `LT`_vrelop_{sx#6783}(`U`_sx)) + prod {{0xFD} {`%`_u32(38):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:461.5-461.43 - prod{shape#960 : shape, lanetype#8293 : lanetype, dim#8293 : dim, i#59932 : nat, i#59939 : nat, sx#6907 : sx, i#59925 : nat} {{0xFD} {`%`_u32{i#59925}(39):Bu32}} => `VRELOP`_instr{shape#960}(`%X%`_shape{lanetype#8293, dim#8293, i#59932}(`I8`_lanetype, `%`_dim{i#59939}(16)), `GT`_vrelop_{sx#6907}(`S`_sx)) + prod {{0xFD} {`%`_u32(39):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:462.5-462.43 - prod{shape#962 : shape, lanetype#8335 : lanetype, dim#8335 : dim, i#60059 : nat, i#60066 : nat, sx#7031 : sx, i#60052 : nat} {{0xFD} {`%`_u32{i#60052}(40):Bu32}} => `VRELOP`_instr{shape#962}(`%X%`_shape{lanetype#8335, dim#8335, i#60059}(`I8`_lanetype, `%`_dim{i#60066}(16)), `GT`_vrelop_{sx#7031}(`U`_sx)) + prod {{0xFD} {`%`_u32(40):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:463.5-463.43 - prod{shape#964 : shape, lanetype#8377 : lanetype, dim#8377 : dim, i#60186 : nat, i#60193 : nat, sx#7155 : sx, i#60179 : nat} {{0xFD} {`%`_u32{i#60179}(41):Bu32}} => `VRELOP`_instr{shape#964}(`%X%`_shape{lanetype#8377, dim#8377, i#60186}(`I8`_lanetype, `%`_dim{i#60193}(16)), `LE`_vrelop_{sx#7155}(`S`_sx)) + prod {{0xFD} {`%`_u32(41):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:464.5-464.43 - prod{shape#966 : shape, lanetype#8419 : lanetype, dim#8419 : dim, i#60313 : nat, i#60320 : nat, sx#7279 : sx, i#60306 : nat} {{0xFD} {`%`_u32{i#60306}(42):Bu32}} => `VRELOP`_instr{shape#966}(`%X%`_shape{lanetype#8419, dim#8419, i#60313}(`I8`_lanetype, `%`_dim{i#60320}(16)), `LE`_vrelop_{sx#7279}(`U`_sx)) + prod {{0xFD} {`%`_u32(42):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:465.5-465.43 - prod{shape#968 : shape, lanetype#8461 : lanetype, dim#8461 : dim, i#60440 : nat, i#60447 : nat, sx#7403 : sx, i#60433 : nat} {{0xFD} {`%`_u32{i#60433}(43):Bu32}} => `VRELOP`_instr{shape#968}(`%X%`_shape{lanetype#8461, dim#8461, i#60440}(`I8`_lanetype, `%`_dim{i#60447}(16)), `GE`_vrelop_{sx#7403}(`S`_sx)) + prod {{0xFD} {`%`_u32(43):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:466.5-466.43 - prod{shape#970 : shape, lanetype#8503 : lanetype, dim#8503 : dim, i#60567 : nat, i#60574 : nat, sx#7527 : sx, i#60560 : nat} {{0xFD} {`%`_u32{i#60560}(44):Bu32}} => `VRELOP`_instr{shape#970}(`%X%`_shape{lanetype#8503, dim#8503, i#60567}(`I8`_lanetype, `%`_dim{i#60574}(16)), `GE`_vrelop_{sx#7527}(`U`_sx)) + prod {{0xFD} {`%`_u32(44):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:470.5-470.41 - prod{shape#972 : shape, lanetype#8545 : lanetype, dim#8545 : dim, i#60694 : nat, i#60701 : nat, i#60687 : nat} {{0xFD} {`%`_u32{i#60687}(45):Bu32}} => `VRELOP`_instr{shape#972}(`%X%`_shape{lanetype#8545, dim#8545, i#60694}(`I16`_lanetype, `%`_dim{i#60701}(8)), `EQ`_vrelop_) + prod {{0xFD} {`%`_u32(45):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:471.5-471.41 - prod{shape#974 : shape, lanetype#8572 : lanetype, dim#8572 : dim, i#60776 : nat, i#60783 : nat, i#60769 : nat} {{0xFD} {`%`_u32{i#60769}(46):Bu32}} => `VRELOP`_instr{shape#974}(`%X%`_shape{lanetype#8572, dim#8572, i#60776}(`I16`_lanetype, `%`_dim{i#60783}(8)), `NE`_vrelop_) + prod {{0xFD} {`%`_u32(46):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:472.5-472.43 - prod{shape#976 : shape, lanetype#8599 : lanetype, dim#8599 : dim, i#60858 : nat, i#60865 : nat, sx#7771 : sx, i#60851 : nat} {{0xFD} {`%`_u32{i#60851}(47):Bu32}} => `VRELOP`_instr{shape#976}(`%X%`_shape{lanetype#8599, dim#8599, i#60858}(`I16`_lanetype, `%`_dim{i#60865}(8)), `LT`_vrelop_{sx#7771}(`S`_sx)) + prod {{0xFD} {`%`_u32(47):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:473.5-473.43 - prod{shape#978 : shape, lanetype#8641 : lanetype, dim#8641 : dim, i#60985 : nat, i#60992 : nat, sx#7895 : sx, i#60978 : nat} {{0xFD} {`%`_u32{i#60978}(48):Bu32}} => `VRELOP`_instr{shape#978}(`%X%`_shape{lanetype#8641, dim#8641, i#60985}(`I16`_lanetype, `%`_dim{i#60992}(8)), `LT`_vrelop_{sx#7895}(`U`_sx)) + prod {{0xFD} {`%`_u32(48):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:474.5-474.43 - prod{shape#980 : shape, lanetype#8683 : lanetype, dim#8683 : dim, i#61112 : nat, i#61119 : nat, sx#8019 : sx, i#61105 : nat} {{0xFD} {`%`_u32{i#61105}(49):Bu32}} => `VRELOP`_instr{shape#980}(`%X%`_shape{lanetype#8683, dim#8683, i#61112}(`I16`_lanetype, `%`_dim{i#61119}(8)), `GT`_vrelop_{sx#8019}(`S`_sx)) + prod {{0xFD} {`%`_u32(49):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:475.5-475.43 - prod{shape#982 : shape, lanetype#8725 : lanetype, dim#8725 : dim, i#61239 : nat, i#61246 : nat, sx#8143 : sx, i#61232 : nat} {{0xFD} {`%`_u32{i#61232}(50):Bu32}} => `VRELOP`_instr{shape#982}(`%X%`_shape{lanetype#8725, dim#8725, i#61239}(`I16`_lanetype, `%`_dim{i#61246}(8)), `GT`_vrelop_{sx#8143}(`U`_sx)) + prod {{0xFD} {`%`_u32(50):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:476.5-476.43 - prod{shape#984 : shape, lanetype#8767 : lanetype, dim#8767 : dim, i#61366 : nat, i#61373 : nat, sx#8267 : sx, i#61359 : nat} {{0xFD} {`%`_u32{i#61359}(51):Bu32}} => `VRELOP`_instr{shape#984}(`%X%`_shape{lanetype#8767, dim#8767, i#61366}(`I16`_lanetype, `%`_dim{i#61373}(8)), `LE`_vrelop_{sx#8267}(`S`_sx)) + prod {{0xFD} {`%`_u32(51):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:477.5-477.43 - prod{shape#986 : shape, lanetype#8809 : lanetype, dim#8809 : dim, i#61493 : nat, i#61500 : nat, sx#8391 : sx, i#61486 : nat} {{0xFD} {`%`_u32{i#61486}(52):Bu32}} => `VRELOP`_instr{shape#986}(`%X%`_shape{lanetype#8809, dim#8809, i#61493}(`I16`_lanetype, `%`_dim{i#61500}(8)), `LE`_vrelop_{sx#8391}(`U`_sx)) + prod {{0xFD} {`%`_u32(52):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:478.5-478.43 - prod{shape#988 : shape, lanetype#8851 : lanetype, dim#8851 : dim, i#61620 : nat, i#61627 : nat, sx#8515 : sx, i#61613 : nat} {{0xFD} {`%`_u32{i#61613}(53):Bu32}} => `VRELOP`_instr{shape#988}(`%X%`_shape{lanetype#8851, dim#8851, i#61620}(`I16`_lanetype, `%`_dim{i#61627}(8)), `GE`_vrelop_{sx#8515}(`S`_sx)) + prod {{0xFD} {`%`_u32(53):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:479.5-479.43 - prod{shape#990 : shape, lanetype#8893 : lanetype, dim#8893 : dim, i#61747 : nat, i#61754 : nat, sx#8639 : sx, i#61740 : nat} {{0xFD} {`%`_u32{i#61740}(54):Bu32}} => `VRELOP`_instr{shape#990}(`%X%`_shape{lanetype#8893, dim#8893, i#61747}(`I16`_lanetype, `%`_dim{i#61754}(8)), `GE`_vrelop_{sx#8639}(`U`_sx)) + prod {{0xFD} {`%`_u32(54):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:483.5-483.41 - prod{shape#992 : shape, lanetype#8935 : lanetype, dim#8935 : dim, i#61874 : nat, i#61881 : nat, i#61867 : nat} {{0xFD} {`%`_u32{i#61867}(55):Bu32}} => `VRELOP`_instr{shape#992}(`%X%`_shape{lanetype#8935, dim#8935, i#61874}(`I32`_lanetype, `%`_dim{i#61881}(4)), `EQ`_vrelop_) + prod {{0xFD} {`%`_u32(55):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:484.5-484.41 - prod{shape#994 : shape, lanetype#8962 : lanetype, dim#8962 : dim, i#61956 : nat, i#61963 : nat, i#61949 : nat} {{0xFD} {`%`_u32{i#61949}(56):Bu32}} => `VRELOP`_instr{shape#994}(`%X%`_shape{lanetype#8962, dim#8962, i#61956}(`I32`_lanetype, `%`_dim{i#61963}(4)), `NE`_vrelop_) + prod {{0xFD} {`%`_u32(56):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:485.5-485.43 - prod{shape#996 : shape, lanetype#8989 : lanetype, dim#8989 : dim, i#62038 : nat, i#62045 : nat, sx#8883 : sx, i#62031 : nat} {{0xFD} {`%`_u32{i#62031}(57):Bu32}} => `VRELOP`_instr{shape#996}(`%X%`_shape{lanetype#8989, dim#8989, i#62038}(`I32`_lanetype, `%`_dim{i#62045}(4)), `LT`_vrelop_{sx#8883}(`S`_sx)) + prod {{0xFD} {`%`_u32(57):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:486.5-486.43 - prod{shape#998 : shape, lanetype#9031 : lanetype, dim#9031 : dim, i#62165 : nat, i#62172 : nat, sx#9007 : sx, i#62158 : nat} {{0xFD} {`%`_u32{i#62158}(58):Bu32}} => `VRELOP`_instr{shape#998}(`%X%`_shape{lanetype#9031, dim#9031, i#62165}(`I32`_lanetype, `%`_dim{i#62172}(4)), `LT`_vrelop_{sx#9007}(`U`_sx)) + prod {{0xFD} {`%`_u32(58):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:487.5-487.43 - prod{shape#1000 : shape, lanetype#9073 : lanetype, dim#9073 : dim, i#62292 : nat, i#62299 : nat, sx#9131 : sx, i#62285 : nat} {{0xFD} {`%`_u32{i#62285}(59):Bu32}} => `VRELOP`_instr{shape#1000}(`%X%`_shape{lanetype#9073, dim#9073, i#62292}(`I32`_lanetype, `%`_dim{i#62299}(4)), `GT`_vrelop_{sx#9131}(`S`_sx)) + prod {{0xFD} {`%`_u32(59):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:488.5-488.43 - prod{shape#1002 : shape, lanetype#9115 : lanetype, dim#9115 : dim, i#62419 : nat, i#62426 : nat, sx#9255 : sx, i#62412 : nat} {{0xFD} {`%`_u32{i#62412}(60):Bu32}} => `VRELOP`_instr{shape#1002}(`%X%`_shape{lanetype#9115, dim#9115, i#62419}(`I32`_lanetype, `%`_dim{i#62426}(4)), `GT`_vrelop_{sx#9255}(`U`_sx)) + prod {{0xFD} {`%`_u32(60):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:489.5-489.43 - prod{shape#1004 : shape, lanetype#9157 : lanetype, dim#9157 : dim, i#62546 : nat, i#62553 : nat, sx#9379 : sx, i#62539 : nat} {{0xFD} {`%`_u32{i#62539}(61):Bu32}} => `VRELOP`_instr{shape#1004}(`%X%`_shape{lanetype#9157, dim#9157, i#62546}(`I32`_lanetype, `%`_dim{i#62553}(4)), `LE`_vrelop_{sx#9379}(`S`_sx)) + prod {{0xFD} {`%`_u32(61):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:490.5-490.43 - prod{shape#1006 : shape, lanetype#9199 : lanetype, dim#9199 : dim, i#62673 : nat, i#62680 : nat, sx#9503 : sx, i#62666 : nat} {{0xFD} {`%`_u32{i#62666}(62):Bu32}} => `VRELOP`_instr{shape#1006}(`%X%`_shape{lanetype#9199, dim#9199, i#62673}(`I32`_lanetype, `%`_dim{i#62680}(4)), `LE`_vrelop_{sx#9503}(`U`_sx)) + prod {{0xFD} {`%`_u32(62):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:491.5-491.43 - prod{shape#1008 : shape, lanetype#9241 : lanetype, dim#9241 : dim, i#62800 : nat, i#62807 : nat, sx#9627 : sx, i#62793 : nat} {{0xFD} {`%`_u32{i#62793}(63):Bu32}} => `VRELOP`_instr{shape#1008}(`%X%`_shape{lanetype#9241, dim#9241, i#62800}(`I32`_lanetype, `%`_dim{i#62807}(4)), `GE`_vrelop_{sx#9627}(`S`_sx)) + prod {{0xFD} {`%`_u32(63):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:492.5-492.43 - prod{shape#1010 : shape, lanetype#9283 : lanetype, dim#9283 : dim, i#62927 : nat, i#62934 : nat, sx#9751 : sx, i#62920 : nat} {{0xFD} {`%`_u32{i#62920}(64):Bu32}} => `VRELOP`_instr{shape#1010}(`%X%`_shape{lanetype#9283, dim#9283, i#62927}(`I32`_lanetype, `%`_dim{i#62934}(4)), `GE`_vrelop_{sx#9751}(`U`_sx)) + prod {{0xFD} {`%`_u32(64):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:496.5-496.41 - prod{shape#1012 : shape, lanetype#9325 : lanetype, dim#9325 : dim, i#63054 : nat, i#63061 : nat, i#63047 : nat} {{0xFD} {`%`_u32{i#63047}(65):Bu32}} => `VRELOP`_instr{shape#1012}(`%X%`_shape{lanetype#9325, dim#9325, i#63054}(`F32`_lanetype, `%`_dim{i#63061}(4)), `EQ`_vrelop_) + prod {{0xFD} {`%`_u32(65):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:497.5-497.41 - prod{shape#1014 : shape, lanetype#9367 : lanetype, dim#9367 : dim, i#63151 : nat, i#63158 : nat, i#63144 : nat} {{0xFD} {`%`_u32{i#63144}(66):Bu32}} => `VRELOP`_instr{shape#1014}(`%X%`_shape{lanetype#9367, dim#9367, i#63151}(`F32`_lanetype, `%`_dim{i#63158}(4)), `NE`_vrelop_) + prod {{0xFD} {`%`_u32(66):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:498.5-498.41 - prod{shape#1016 : shape, lanetype#9409 : lanetype, dim#9409 : dim, i#63248 : nat, i#63255 : nat, i#63241 : nat} {{0xFD} {`%`_u32{i#63241}(67):Bu32}} => `VRELOP`_instr{shape#1016}(`%X%`_shape{lanetype#9409, dim#9409, i#63248}(`F32`_lanetype, `%`_dim{i#63255}(4)), `LT`_vrelop_) + prod {{0xFD} {`%`_u32(67):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LT`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:499.5-499.41 - prod{shape#1018 : shape, lanetype#9451 : lanetype, dim#9451 : dim, i#63345 : nat, i#63352 : nat, i#63338 : nat} {{0xFD} {`%`_u32{i#63338}(68):Bu32}} => `VRELOP`_instr{shape#1018}(`%X%`_shape{lanetype#9451, dim#9451, i#63345}(`F32`_lanetype, `%`_dim{i#63352}(4)), `GT`_vrelop_) + prod {{0xFD} {`%`_u32(68):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GT`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:500.5-500.41 - prod{shape#1020 : shape, lanetype#9493 : lanetype, dim#9493 : dim, i#63442 : nat, i#63449 : nat, i#63435 : nat} {{0xFD} {`%`_u32{i#63435}(69):Bu32}} => `VRELOP`_instr{shape#1020}(`%X%`_shape{lanetype#9493, dim#9493, i#63442}(`F32`_lanetype, `%`_dim{i#63449}(4)), `LE`_vrelop_) + prod {{0xFD} {`%`_u32(69):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:501.5-501.41 - prod{shape#1022 : shape, lanetype#9535 : lanetype, dim#9535 : dim, i#63539 : nat, i#63546 : nat, i#63532 : nat} {{0xFD} {`%`_u32{i#63532}(70):Bu32}} => `VRELOP`_instr{shape#1022}(`%X%`_shape{lanetype#9535, dim#9535, i#63539}(`F32`_lanetype, `%`_dim{i#63546}(4)), `GE`_vrelop_) + prod {{0xFD} {`%`_u32(70):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:505.5-505.41 - prod{shape#1024 : shape, lanetype#9577 : lanetype, dim#9577 : dim, i#63636 : nat, i#63643 : nat, i#63629 : nat} {{0xFD} {`%`_u32{i#63629}(71):Bu32}} => `VRELOP`_instr{shape#1024}(`%X%`_shape{lanetype#9577, dim#9577, i#63636}(`F64`_lanetype, `%`_dim{i#63643}(2)), `EQ`_vrelop_) + prod {{0xFD} {`%`_u32(71):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:506.5-506.41 - prod{shape#1026 : shape, lanetype#9619 : lanetype, dim#9619 : dim, i#63733 : nat, i#63740 : nat, i#63726 : nat} {{0xFD} {`%`_u32{i#63726}(72):Bu32}} => `VRELOP`_instr{shape#1026}(`%X%`_shape{lanetype#9619, dim#9619, i#63733}(`F64`_lanetype, `%`_dim{i#63740}(2)), `NE`_vrelop_) + prod {{0xFD} {`%`_u32(72):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:507.5-507.41 - prod{shape#1028 : shape, lanetype#9661 : lanetype, dim#9661 : dim, i#63830 : nat, i#63837 : nat, i#63823 : nat} {{0xFD} {`%`_u32{i#63823}(73):Bu32}} => `VRELOP`_instr{shape#1028}(`%X%`_shape{lanetype#9661, dim#9661, i#63830}(`F64`_lanetype, `%`_dim{i#63837}(2)), `LT`_vrelop_) + prod {{0xFD} {`%`_u32(73):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LT`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:508.5-508.41 - prod{shape#1030 : shape, lanetype#9703 : lanetype, dim#9703 : dim, i#63927 : nat, i#63934 : nat, i#63920 : nat} {{0xFD} {`%`_u32{i#63920}(74):Bu32}} => `VRELOP`_instr{shape#1030}(`%X%`_shape{lanetype#9703, dim#9703, i#63927}(`F64`_lanetype, `%`_dim{i#63934}(2)), `GT`_vrelop_) + prod {{0xFD} {`%`_u32(74):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GT`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:509.5-509.41 - prod{shape#1032 : shape, lanetype#9745 : lanetype, dim#9745 : dim, i#64024 : nat, i#64031 : nat, i#64017 : nat} {{0xFD} {`%`_u32{i#64017}(75):Bu32}} => `VRELOP`_instr{shape#1032}(`%X%`_shape{lanetype#9745, dim#9745, i#64024}(`F64`_lanetype, `%`_dim{i#64031}(2)), `LE`_vrelop_) + prod {{0xFD} {`%`_u32(75):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:510.5-510.41 - prod{shape#1034 : shape, lanetype#9787 : lanetype, dim#9787 : dim, i#64121 : nat, i#64128 : nat, i#64114 : nat} {{0xFD} {`%`_u32{i#64114}(76):Bu32}} => `VRELOP`_instr{shape#1034}(`%X%`_shape{lanetype#9787, dim#9787, i#64121}(`F64`_lanetype, `%`_dim{i#64128}(2)), `GE`_vrelop_) + prod {{0xFD} {`%`_u32(76):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:514.5-514.36 - prod{vectype#259 : vectype, vvunop#7 : vvunop, i#64211 : nat} {{0xFD} {`%`_u32{i#64211}(77):Bu32}} => `VVUNOP`_instr{vectype#259, vvunop#7}(`V128`_vectype, `NOT`_vvunop) + prod {{0xFD} {`%`_u32(77):Bu32}} => `VVUNOP`_instr(`V128`_vectype, `NOT`_vvunop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:518.5-518.37 - prod{vectype#261 : vectype, vvbinop#7 : vvbinop, i#64236 : nat} {{0xFD} {`%`_u32{i#64236}(78):Bu32}} => `VVBINOP`_instr{vectype#261, vvbinop#7}(`V128`_vectype, `AND`_vvbinop) + prod {{0xFD} {`%`_u32(78):Bu32}} => `VVBINOP`_instr(`V128`_vectype, `AND`_vvbinop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:519.5-519.40 - prod{vectype#263 : vectype, vvbinop#9 : vvbinop, i#64261 : nat} {{0xFD} {`%`_u32{i#64261}(79):Bu32}} => `VVBINOP`_instr{vectype#263, vvbinop#9}(`V128`_vectype, `ANDNOT`_vvbinop) + prod {{0xFD} {`%`_u32(79):Bu32}} => `VVBINOP`_instr(`V128`_vectype, `ANDNOT`_vvbinop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:520.5-520.36 - prod{vectype#265 : vectype, vvbinop#11 : vvbinop, i#64286 : nat} {{0xFD} {`%`_u32{i#64286}(80):Bu32}} => `VVBINOP`_instr{vectype#265, vvbinop#11}(`V128`_vectype, `OR`_vvbinop) + prod {{0xFD} {`%`_u32(80):Bu32}} => `VVBINOP`_instr(`V128`_vectype, `OR`_vvbinop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:521.5-521.37 - prod{vectype#267 : vectype, vvbinop#13 : vvbinop, i#64311 : nat} {{0xFD} {`%`_u32{i#64311}(81):Bu32}} => `VVBINOP`_instr{vectype#267, vvbinop#13}(`V128`_vectype, `XOR`_vvbinop) + prod {{0xFD} {`%`_u32(81):Bu32}} => `VVBINOP`_instr(`V128`_vectype, `XOR`_vvbinop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:525.5-525.44 - prod{vectype#269 : vectype, vvternop#7 : vvternop, i#64336 : nat} {{0xFD} {`%`_u32{i#64336}(82):Bu32}} => `VVTERNOP`_instr{vectype#269, vvternop#7}(`V128`_vectype, `BITSELECT`_vvternop) + prod {{0xFD} {`%`_u32(82):Bu32}} => `VVTERNOP`_instr(`V128`_vectype, `BITSELECT`_vvternop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:529.5-529.43 - prod{vectype#271 : vectype, vvtestop#7 : vvtestop, i#64361 : nat} {{0xFD} {`%`_u32{i#64361}(83):Bu32}} => `VVTESTOP`_instr{vectype#271, vvtestop#7}(`V128`_vectype, `ANY_TRUE`_vvtestop) + prod {{0xFD} {`%`_u32(83):Bu32}} => `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:533.5-533.41 - prod{shape#1036 : shape, lanetype#9829 : lanetype, dim#9829 : dim, i#64393 : nat, i#64400 : nat, i#64386 : nat} {{0xFD} {`%`_u32{i#64386}(96):Bu32}} => `VUNOP`_instr{shape#1036}(`%X%`_shape{lanetype#9829, dim#9829, i#64393}(`I8`_lanetype, `%`_dim{i#64400}(16)), `ABS`_vunop_) + prod {{0xFD} {`%`_u32(96):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:534.5-534.41 - prod{shape#1038 : shape, lanetype#9856 : lanetype, dim#9856 : dim, i#64475 : nat, i#64482 : nat, i#64468 : nat} {{0xFD} {`%`_u32{i#64468}(97):Bu32}} => `VUNOP`_instr{shape#1038}(`%X%`_shape{lanetype#9856, dim#9856, i#64475}(`I8`_lanetype, `%`_dim{i#64482}(16)), `NEG`_vunop_) + prod {{0xFD} {`%`_u32(97):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:535.5-535.44 - prod{shape#1040 : shape, lanetype#9883 : lanetype, dim#9883 : dim, i#64557 : nat, i#64564 : nat, i#64550 : nat} {{0xFD} {`%`_u32{i#64550}(98):Bu32}} => `VUNOP`_instr{shape#1040}(`%X%`_shape{lanetype#9883, dim#9883, i#64557}(`I8`_lanetype, `%`_dim{i#64564}(16)), `POPCNT`_vunop_) + prod {{0xFD} {`%`_u32(98):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `POPCNT`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:539.5-539.48 - prod{shape#1042 : shape, lanetype#9910 : lanetype, dim#9910 : dim, i#64639 : nat, i#64646 : nat, i#64632 : nat} {{0xFD} {`%`_u32{i#64632}(99):Bu32}} => `VTESTOP`_instr{shape#1042}(`%X%`_shape{lanetype#9910, dim#9910, i#64639}(`I8`_lanetype, `%`_dim{i#64646}(16)), `ALL_TRUE`_vtestop_) + prod {{0xFD} {`%`_u32(99):Bu32}} => `VTESTOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:543.5-543.41 - prod{ishape#13 : ishape, shape#1054 : shape, Jnn#228 : Jnn, lanetype#9937 : lanetype, dim#9937 : dim, i#64721 : nat, i#64728 : nat, i#64714 : nat} {{0xFD} {`%`_u32{i#64714}(100):Bu32}} => `VBITMASK`_instr{ishape#13}(`%`_ishape{shape#1054, Jnn#228}(`%X%`_shape{lanetype#9937, dim#9937, i#64721}(`I8`_lanetype, `%`_dim{i#64728}(16)))) + prod {{0xFD} {`%`_u32(100):Bu32}} => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:547.5-547.53 - prod{ishape_1#25 : ishape, ishape_2#25 : ishape, sx#9753 : sx, shape#1056 : shape, Jnn#229 : Jnn, shape#1057 : shape, Jnn#230 : Jnn, shape#1058 : shape, Jnn#231 : Jnn, shape#1069 : shape, Jnn#235 : Jnn, lanetype#9949 : lanetype, dim#9949 : dim, i#64758 : nat, i#64765 : nat, shape#1081 : shape, Jnn#239 : Jnn, lanetype#9961 : lanetype, dim#9961 : dim, i#64770 : nat, i#64777 : nat, i#64751 : nat} {{0xFD} {`%`_u32{i#64751}(101):Bu32}} => `VNARROW`_instr{ishape_1#25, ishape_2#25, sx#9753, shape#1056, Jnn#229, shape#1057, Jnn#230, shape#1058, Jnn#231}(`%`_ishape{shape#1069, Jnn#235}(`%X%`_shape{lanetype#9949, dim#9949, i#64758}(`I8`_lanetype, `%`_dim{i#64765}(16))), `%`_ishape{shape#1081, Jnn#239}(`%X%`_shape{lanetype#9961, dim#9961, i#64770}(`I16`_lanetype, `%`_dim{i#64777}(8))), `S`_sx) + prod {{0xFD} {`%`_u32(101):Bu32}} => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `S`_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:548.5-548.53 - prod{ishape_1#27 : ishape, ishape_2#27 : ishape, sx#9755 : sx, shape#1083 : shape, Jnn#240 : Jnn, shape#1084 : shape, Jnn#241 : Jnn, shape#1085 : shape, Jnn#242 : Jnn, shape#1096 : shape, Jnn#246 : Jnn, lanetype#9973 : lanetype, dim#9973 : dim, i#64807 : nat, i#64814 : nat, shape#1108 : shape, Jnn#250 : Jnn, lanetype#9985 : lanetype, dim#9985 : dim, i#64819 : nat, i#64826 : nat, i#64800 : nat} {{0xFD} {`%`_u32{i#64800}(102):Bu32}} => `VNARROW`_instr{ishape_1#27, ishape_2#27, sx#9755, shape#1083, Jnn#240, shape#1084, Jnn#241, shape#1085, Jnn#242}(`%`_ishape{shape#1096, Jnn#246}(`%X%`_shape{lanetype#9973, dim#9973, i#64807}(`I8`_lanetype, `%`_dim{i#64814}(16))), `%`_ishape{shape#1108, Jnn#250}(`%X%`_shape{lanetype#9985, dim#9985, i#64819}(`I16`_lanetype, `%`_dim{i#64826}(8))), `U`_sx) + prod {{0xFD} {`%`_u32(102):Bu32}} => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `U`_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:552.5-552.45 - prod{ishape#15 : ishape, shape#1120 : shape, Jnn#254 : Jnn, lanetype#9997 : lanetype, dim#9997 : dim, i#64856 : nat, i#64863 : nat, i#64849 : nat} {{0xFD} {`%`_u32{i#64849}(107):Bu32}} => `VSHIFTOP`_instr{ishape#15}(`%`_ishape{shape#1120, Jnn#254}(`%X%`_shape{lanetype#9997, dim#9997, i#64856}(`I8`_lanetype, `%`_dim{i#64863}(16))), `SHL`_vshiftop_) + prod {{0xFD} {`%`_u32(107):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:553.5-553.47 - prod{ishape#17 : ishape, shape#1147 : shape, Jnn#258 : Jnn, lanetype#10054 : lanetype, dim#10054 : dim, i#64968 : nat, i#64975 : nat, sx#9804 : sx, i#64961 : nat} {{0xFD} {`%`_u32{i#64961}(108):Bu32}} => `VSHIFTOP`_instr{ishape#17}(`%`_ishape{shape#1147, Jnn#258}(`%X%`_shape{lanetype#10054, dim#10054, i#64968}(`I8`_lanetype, `%`_dim{i#64975}(16))), `SHR`_vshiftop_{sx#9804}(`S`_sx)) + prod {{0xFD} {`%`_u32(108):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:554.5-554.47 - prod{ishape#19 : ishape, shape#1189 : shape, Jnn#262 : Jnn, lanetype#10156 : lanetype, dim#10156 : dim, i#65155 : nat, i#65162 : nat, sx#9838 : sx, i#65148 : nat} {{0xFD} {`%`_u32{i#65148}(109):Bu32}} => `VSHIFTOP`_instr{ishape#19}(`%`_ishape{shape#1189, Jnn#262}(`%X%`_shape{lanetype#10156, dim#10156, i#65155}(`I8`_lanetype, `%`_dim{i#65162}(16))), `SHR`_vshiftop_{sx#9838}(`U`_sx)) + prod {{0xFD} {`%`_u32(109):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:558.5-558.43 - prod{shape#1221 : shape, lanetype#10258 : lanetype, dim#10258 : dim, i#65342 : nat, i#65349 : nat, i#65335 : nat} {{0xFD} {`%`_u32{i#65335}(110):Bu32}} => `VBINOP`_instr{shape#1221}(`%X%`_shape{lanetype#10258, dim#10258, i#65342}(`I8`_lanetype, `%`_dim{i#65349}(16)), `ADD`_vbinop_) + prod {{0xFD} {`%`_u32(110):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:559.5-559.49 - prod{shape#1223 : shape, lanetype#10285 : lanetype, dim#10285 : dim, i#65424 : nat, i#65431 : nat, sx#10022 : sx, i#65417 : nat} {{0xFD} {`%`_u32{i#65417}(111):Bu32}} => `VBINOP`_instr{shape#1223}(`%X%`_shape{lanetype#10285, dim#10285, i#65424}(`I8`_lanetype, `%`_dim{i#65431}(16)), `ADD_SAT`_vbinop_{sx#10022}(`S`_sx)) + prod {{0xFD} {`%`_u32(111):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:560.5-560.49 - prod{shape#1225 : shape, lanetype#10327 : lanetype, dim#10327 : dim, i#65551 : nat, i#65558 : nat, sx#10146 : sx, i#65544 : nat} {{0xFD} {`%`_u32{i#65544}(112):Bu32}} => `VBINOP`_instr{shape#1225}(`%X%`_shape{lanetype#10327, dim#10327, i#65551}(`I8`_lanetype, `%`_dim{i#65558}(16)), `ADD_SAT`_vbinop_{sx#10146}(`U`_sx)) + prod {{0xFD} {`%`_u32(112):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:561.5-561.43 - prod{shape#1227 : shape, lanetype#10369 : lanetype, dim#10369 : dim, i#65678 : nat, i#65685 : nat, i#65671 : nat} {{0xFD} {`%`_u32{i#65671}(113):Bu32}} => `VBINOP`_instr{shape#1227}(`%X%`_shape{lanetype#10369, dim#10369, i#65678}(`I8`_lanetype, `%`_dim{i#65685}(16)), `SUB`_vbinop_) + prod {{0xFD} {`%`_u32(113):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:562.5-562.49 - prod{shape#1229 : shape, lanetype#10396 : lanetype, dim#10396 : dim, i#65760 : nat, i#65767 : nat, sx#10330 : sx, i#65753 : nat} {{0xFD} {`%`_u32{i#65753}(114):Bu32}} => `VBINOP`_instr{shape#1229}(`%X%`_shape{lanetype#10396, dim#10396, i#65760}(`I8`_lanetype, `%`_dim{i#65767}(16)), `SUB_SAT`_vbinop_{sx#10330}(`S`_sx)) + prod {{0xFD} {`%`_u32(114):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:563.5-563.49 - prod{shape#1231 : shape, lanetype#10438 : lanetype, dim#10438 : dim, i#65887 : nat, i#65894 : nat, sx#10454 : sx, i#65880 : nat} {{0xFD} {`%`_u32{i#65880}(115):Bu32}} => `VBINOP`_instr{shape#1231}(`%X%`_shape{lanetype#10438, dim#10438, i#65887}(`I8`_lanetype, `%`_dim{i#65894}(16)), `SUB_SAT`_vbinop_{sx#10454}(`U`_sx)) + prod {{0xFD} {`%`_u32(115):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:564.5-564.45 - prod{shape#1233 : shape, lanetype#10480 : lanetype, dim#10480 : dim, i#66014 : nat, i#66021 : nat, sx#10578 : sx, i#66007 : nat} {{0xFD} {`%`_u32{i#66007}(118):Bu32}} => `VBINOP`_instr{shape#1233}(`%X%`_shape{lanetype#10480, dim#10480, i#66014}(`I8`_lanetype, `%`_dim{i#66021}(16)), `MIN`_vbinop_{sx#10578}(`S`_sx)) + prod {{0xFD} {`%`_u32(118):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:565.5-565.45 - prod{shape#1235 : shape, lanetype#10522 : lanetype, dim#10522 : dim, i#66141 : nat, i#66148 : nat, sx#10702 : sx, i#66134 : nat} {{0xFD} {`%`_u32{i#66134}(119):Bu32}} => `VBINOP`_instr{shape#1235}(`%X%`_shape{lanetype#10522, dim#10522, i#66141}(`I8`_lanetype, `%`_dim{i#66148}(16)), `MIN`_vbinop_{sx#10702}(`U`_sx)) + prod {{0xFD} {`%`_u32(119):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:566.5-566.45 - prod{shape#1237 : shape, lanetype#10564 : lanetype, dim#10564 : dim, i#66268 : nat, i#66275 : nat, sx#10826 : sx, i#66261 : nat} {{0xFD} {`%`_u32{i#66261}(120):Bu32}} => `VBINOP`_instr{shape#1237}(`%X%`_shape{lanetype#10564, dim#10564, i#66268}(`I8`_lanetype, `%`_dim{i#66275}(16)), `MAX`_vbinop_{sx#10826}(`S`_sx)) + prod {{0xFD} {`%`_u32(120):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:567.5-567.45 - prod{shape#1239 : shape, lanetype#10606 : lanetype, dim#10606 : dim, i#66395 : nat, i#66402 : nat, sx#10950 : sx, i#66388 : nat} {{0xFD} {`%`_u32{i#66388}(121):Bu32}} => `VBINOP`_instr{shape#1239}(`%X%`_shape{lanetype#10606, dim#10606, i#66395}(`I8`_lanetype, `%`_dim{i#66402}(16)), `MAX`_vbinop_{sx#10950}(`U`_sx)) + prod {{0xFD} {`%`_u32(121):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:568.5-568.46 - prod{shape#1241 : shape, lanetype#10648 : lanetype, dim#10648 : dim, i#66522 : nat, i#66529 : nat, i#66515 : nat} {{0xFD} {`%`_u32{i#66515}(123):Bu32}} => `VBINOP`_instr{shape#1241}(`%X%`_shape{lanetype#10648, dim#10648, i#66522}(`I8`_lanetype, `%`_dim{i#66529}(16)), `AVGRU`_vbinop_) + prod {{0xFD} {`%`_u32(123):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `AVGRU`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:572.5-572.70 - prod{ishape_1#29 : ishape, ishape_2#29 : ishape, shape#1253 : shape, Jnn#266 : Jnn, lanetype#10690 : lanetype, dim#10690 : dim, i#66649 : nat, i#66656 : nat, shape#1265 : shape, Jnn#270 : Jnn, lanetype#10702 : lanetype, dim#10702 : dim, i#66661 : nat, i#66668 : nat, sx#11104 : sx, i#66642 : nat} {{0xFD} {`%`_u32{i#66642}(124):Bu32}} => `VEXTUNOP`_instr{ishape_1#29, ishape_2#29}(`%`_ishape{shape#1253, Jnn#266}(`%X%`_shape{lanetype#10690, dim#10690, i#66649}(`I16`_lanetype, `%`_dim{i#66656}(8))), `%`_ishape{shape#1265, Jnn#270}(`%X%`_shape{lanetype#10702, dim#10702, i#66661}(`I8`_lanetype, `%`_dim{i#66668}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#11104}(`S`_sx)) + prod {{0xFD} {`%`_u32(124):Bu32}} => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:573.5-573.70 - prod{ishape_1#31 : ishape, ishape_2#31 : ishape, shape#1368 : shape, Jnn#274 : Jnn, lanetype#10925 : lanetype, dim#10925 : dim, i#67029 : nat, i#67036 : nat, shape#1380 : shape, Jnn#278 : Jnn, lanetype#10937 : lanetype, dim#10937 : dim, i#67041 : nat, i#67048 : nat, sx#11138 : sx, i#67022 : nat} {{0xFD} {`%`_u32{i#67022}(125):Bu32}} => `VEXTUNOP`_instr{ishape_1#31, ishape_2#31}(`%`_ishape{shape#1368, Jnn#274}(`%X%`_shape{lanetype#10925, dim#10925, i#67029}(`I16`_lanetype, `%`_dim{i#67036}(8))), `%`_ishape{shape#1380, Jnn#278}(`%X%`_shape{lanetype#10937, dim#10937, i#67041}(`I8`_lanetype, `%`_dim{i#67048}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#11138}(`U`_sx)) + prod {{0xFD} {`%`_u32(125):Bu32}} => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:577.5-577.42 - prod{shape#1473 : shape, lanetype#11160 : lanetype, dim#11160 : dim, i#67409 : nat, i#67416 : nat, i#67402 : nat} {{0xFD} {`%`_u32{i#67402}(128):Bu32}} => `VUNOP`_instr{shape#1473}(`%X%`_shape{lanetype#11160, dim#11160, i#67409}(`I16`_lanetype, `%`_dim{i#67416}(8)), `ABS`_vunop_) + prod {{0xFD} {`%`_u32(128):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:578.5-578.42 - prod{shape#1475 : shape, lanetype#11187 : lanetype, dim#11187 : dim, i#67491 : nat, i#67498 : nat, i#67484 : nat} {{0xFD} {`%`_u32{i#67484}(129):Bu32}} => `VUNOP`_instr{shape#1475}(`%X%`_shape{lanetype#11187, dim#11187, i#67491}(`I16`_lanetype, `%`_dim{i#67498}(8)), `NEG`_vunop_) + prod {{0xFD} {`%`_u32(129):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:582.5-582.53 - prod{shape#1477 : shape, lanetype#11214 : lanetype, dim#11214 : dim, i#67573 : nat, i#67580 : nat, i#67566 : nat} {{0xFD} {`%`_u32{i#67566}(130):Bu32}} => `VBINOP`_instr{shape#1477}(`%X%`_shape{lanetype#11214, dim#11214, i#67573}(`I16`_lanetype, `%`_dim{i#67580}(8)), `Q15MULR_SATS`_vbinop_) + prod {{0xFD} {`%`_u32(130):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:583.5-583.43 - prod{shape#1479 : shape, lanetype#11256 : lanetype, dim#11256 : dim, i#67700 : nat, i#67707 : nat, i#67693 : nat} {{0xFD} {`%`_u32{i#67693}(142):Bu32}} => `VBINOP`_instr{shape#1479}(`%X%`_shape{lanetype#11256, dim#11256, i#67700}(`I16`_lanetype, `%`_dim{i#67707}(8)), `ADD`_vbinop_) + prod {{0xFD} {`%`_u32(142):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:584.5-584.49 - prod{shape#1481 : shape, lanetype#11283 : lanetype, dim#11283 : dim, i#67782 : nat, i#67789 : nat, sx#11442 : sx, i#67775 : nat} {{0xFD} {`%`_u32{i#67775}(143):Bu32}} => `VBINOP`_instr{shape#1481}(`%X%`_shape{lanetype#11283, dim#11283, i#67782}(`I16`_lanetype, `%`_dim{i#67789}(8)), `ADD_SAT`_vbinop_{sx#11442}(`S`_sx)) + prod {{0xFD} {`%`_u32(143):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:585.5-585.49 - prod{shape#1483 : shape, lanetype#11325 : lanetype, dim#11325 : dim, i#67909 : nat, i#67916 : nat, sx#11566 : sx, i#67902 : nat} {{0xFD} {`%`_u32{i#67902}(144):Bu32}} => `VBINOP`_instr{shape#1483}(`%X%`_shape{lanetype#11325, dim#11325, i#67909}(`I16`_lanetype, `%`_dim{i#67916}(8)), `ADD_SAT`_vbinop_{sx#11566}(`U`_sx)) + prod {{0xFD} {`%`_u32(144):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:586.5-586.43 - prod{shape#1485 : shape, lanetype#11367 : lanetype, dim#11367 : dim, i#68036 : nat, i#68043 : nat, i#68029 : nat} {{0xFD} {`%`_u32{i#68029}(145):Bu32}} => `VBINOP`_instr{shape#1485}(`%X%`_shape{lanetype#11367, dim#11367, i#68036}(`I16`_lanetype, `%`_dim{i#68043}(8)), `SUB`_vbinop_) + prod {{0xFD} {`%`_u32(145):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:587.5-587.49 - prod{shape#1487 : shape, lanetype#11394 : lanetype, dim#11394 : dim, i#68118 : nat, i#68125 : nat, sx#11750 : sx, i#68111 : nat} {{0xFD} {`%`_u32{i#68111}(146):Bu32}} => `VBINOP`_instr{shape#1487}(`%X%`_shape{lanetype#11394, dim#11394, i#68118}(`I16`_lanetype, `%`_dim{i#68125}(8)), `SUB_SAT`_vbinop_{sx#11750}(`S`_sx)) + prod {{0xFD} {`%`_u32(146):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:588.5-588.49 - prod{shape#1489 : shape, lanetype#11436 : lanetype, dim#11436 : dim, i#68245 : nat, i#68252 : nat, sx#11874 : sx, i#68238 : nat} {{0xFD} {`%`_u32{i#68238}(147):Bu32}} => `VBINOP`_instr{shape#1489}(`%X%`_shape{lanetype#11436, dim#11436, i#68245}(`I16`_lanetype, `%`_dim{i#68252}(8)), `SUB_SAT`_vbinop_{sx#11874}(`U`_sx)) + prod {{0xFD} {`%`_u32(147):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:589.5-589.43 - prod{shape#1491 : shape, lanetype#11478 : lanetype, dim#11478 : dim, i#68372 : nat, i#68379 : nat, i#68365 : nat} {{0xFD} {`%`_u32{i#68365}(149):Bu32}} => `VBINOP`_instr{shape#1491}(`%X%`_shape{lanetype#11478, dim#11478, i#68372}(`I16`_lanetype, `%`_dim{i#68379}(8)), `MUL`_vbinop_) + prod {{0xFD} {`%`_u32(149):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:590.5-590.45 - prod{shape#1493 : shape, lanetype#11505 : lanetype, dim#11505 : dim, i#68454 : nat, i#68461 : nat, sx#12058 : sx, i#68447 : nat} {{0xFD} {`%`_u32{i#68447}(150):Bu32}} => `VBINOP`_instr{shape#1493}(`%X%`_shape{lanetype#11505, dim#11505, i#68454}(`I16`_lanetype, `%`_dim{i#68461}(8)), `MIN`_vbinop_{sx#12058}(`S`_sx)) + prod {{0xFD} {`%`_u32(150):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:591.5-591.45 - prod{shape#1495 : shape, lanetype#11547 : lanetype, dim#11547 : dim, i#68581 : nat, i#68588 : nat, sx#12182 : sx, i#68574 : nat} {{0xFD} {`%`_u32{i#68574}(151):Bu32}} => `VBINOP`_instr{shape#1495}(`%X%`_shape{lanetype#11547, dim#11547, i#68581}(`I16`_lanetype, `%`_dim{i#68588}(8)), `MIN`_vbinop_{sx#12182}(`U`_sx)) + prod {{0xFD} {`%`_u32(151):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:592.5-592.45 - prod{shape#1497 : shape, lanetype#11589 : lanetype, dim#11589 : dim, i#68708 : nat, i#68715 : nat, sx#12306 : sx, i#68701 : nat} {{0xFD} {`%`_u32{i#68701}(152):Bu32}} => `VBINOP`_instr{shape#1497}(`%X%`_shape{lanetype#11589, dim#11589, i#68708}(`I16`_lanetype, `%`_dim{i#68715}(8)), `MAX`_vbinop_{sx#12306}(`S`_sx)) + prod {{0xFD} {`%`_u32(152):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:593.5-593.45 - prod{shape#1499 : shape, lanetype#11631 : lanetype, dim#11631 : dim, i#68835 : nat, i#68842 : nat, sx#12430 : sx, i#68828 : nat} {{0xFD} {`%`_u32{i#68828}(153):Bu32}} => `VBINOP`_instr{shape#1499}(`%X%`_shape{lanetype#11631, dim#11631, i#68835}(`I16`_lanetype, `%`_dim{i#68842}(8)), `MAX`_vbinop_{sx#12430}(`U`_sx)) + prod {{0xFD} {`%`_u32(153):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:594.5-594.46 - prod{shape#1501 : shape, lanetype#11673 : lanetype, dim#11673 : dim, i#68962 : nat, i#68969 : nat, i#68955 : nat} {{0xFD} {`%`_u32{i#68955}(155):Bu32}} => `VBINOP`_instr{shape#1501}(`%X%`_shape{lanetype#11673, dim#11673, i#68962}(`I16`_lanetype, `%`_dim{i#68969}(8)), `AVGRU`_vbinop_) + prod {{0xFD} {`%`_u32(155):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `AVGRU`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:595.5-595.57 - prod{shape#1503 : shape, lanetype#11715 : lanetype, dim#11715 : dim, i#69089 : nat, i#69096 : nat, i#69082 : nat} {{0xFD} {`%`_u32{i#69082}(273):Bu32}} => `VBINOP`_instr{shape#1503}(`%X%`_shape{lanetype#11715, dim#11715, i#69089}(`I16`_lanetype, `%`_dim{i#69096}(8)), `RELAXED_Q15MULRS`_vbinop_) + prod {{0xFD} {`%`_u32(273):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:599.5-599.49 - prod{shape#1505 : shape, lanetype#11757 : lanetype, dim#11757 : dim, i#69216 : nat, i#69223 : nat, i#69209 : nat} {{0xFD} {`%`_u32{i#69209}(131):Bu32}} => `VTESTOP`_instr{shape#1505}(`%X%`_shape{lanetype#11757, dim#11757, i#69216}(`I16`_lanetype, `%`_dim{i#69223}(8)), `ALL_TRUE`_vtestop_) + prod {{0xFD} {`%`_u32(131):Bu32}} => `VTESTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:603.5-603.41 - prod{ishape#21 : ishape, shape#1517 : shape, Jnn#282 : Jnn, lanetype#11784 : lanetype, dim#11784 : dim, i#69298 : nat, i#69305 : nat, i#69291 : nat} {{0xFD} {`%`_u32{i#69291}(132):Bu32}} => `VBITMASK`_instr{ishape#21}(`%`_ishape{shape#1517, Jnn#282}(`%X%`_shape{lanetype#11784, dim#11784, i#69298}(`I16`_lanetype, `%`_dim{i#69305}(8)))) + prod {{0xFD} {`%`_u32(132):Bu32}} => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:607.5-607.53 - prod{ishape_1#33 : ishape, ishape_2#33 : ishape, sx#12672 : sx, shape#1519 : shape, Jnn#283 : Jnn, shape#1520 : shape, Jnn#284 : Jnn, shape#1521 : shape, Jnn#285 : Jnn, shape#1532 : shape, Jnn#289 : Jnn, lanetype#11796 : lanetype, dim#11796 : dim, i#69335 : nat, i#69342 : nat, shape#1544 : shape, Jnn#293 : Jnn, lanetype#11808 : lanetype, dim#11808 : dim, i#69347 : nat, i#69354 : nat, i#69328 : nat} {{0xFD} {`%`_u32{i#69328}(133):Bu32}} => `VNARROW`_instr{ishape_1#33, ishape_2#33, sx#12672, shape#1519, Jnn#283, shape#1520, Jnn#284, shape#1521, Jnn#285}(`%`_ishape{shape#1532, Jnn#289}(`%X%`_shape{lanetype#11796, dim#11796, i#69335}(`I16`_lanetype, `%`_dim{i#69342}(8))), `%`_ishape{shape#1544, Jnn#293}(`%X%`_shape{lanetype#11808, dim#11808, i#69347}(`I32`_lanetype, `%`_dim{i#69354}(4))), `S`_sx) + prod {{0xFD} {`%`_u32(133):Bu32}} => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `S`_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:608.5-608.53 - prod{ishape_1#35 : ishape, ishape_2#35 : ishape, sx#12674 : sx, shape#1546 : shape, Jnn#294 : Jnn, shape#1547 : shape, Jnn#295 : Jnn, shape#1548 : shape, Jnn#296 : Jnn, shape#1559 : shape, Jnn#300 : Jnn, lanetype#11820 : lanetype, dim#11820 : dim, i#69384 : nat, i#69391 : nat, shape#1571 : shape, Jnn#304 : Jnn, lanetype#11832 : lanetype, dim#11832 : dim, i#69396 : nat, i#69403 : nat, i#69377 : nat} {{0xFD} {`%`_u32{i#69377}(134):Bu32}} => `VNARROW`_instr{ishape_1#35, ishape_2#35, sx#12674, shape#1546, Jnn#294, shape#1547, Jnn#295, shape#1548, Jnn#296}(`%`_ishape{shape#1559, Jnn#300}(`%X%`_shape{lanetype#11820, dim#11820, i#69384}(`I16`_lanetype, `%`_dim{i#69391}(8))), `%`_ishape{shape#1571, Jnn#304}(`%X%`_shape{lanetype#11832, dim#11832, i#69396}(`I32`_lanetype, `%`_dim{i#69403}(4))), `U`_sx) + prod {{0xFD} {`%`_u32(134):Bu32}} => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `U`_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:612.5-612.63 - prod{shape_1#7 : shape, shape_2#7 : shape, lanetype#11844 : lanetype, dim#11844 : dim, i#69433 : nat, i#69440 : nat, lanetype#11856 : lanetype, dim#11856 : dim, i#69445 : nat, i#69452 : nat, half#56 : half, sx#12708 : sx, i#69426 : nat} {{0xFD} {`%`_u32{i#69426}(135):Bu32}} => `VCVTOP`_instr{shape_1#7, shape_2#7}(`%X%`_shape{lanetype#11844, dim#11844, i#69433}(`I16`_lanetype, `%`_dim{i#69440}(8)), `%X%`_shape{lanetype#11856, dim#11856, i#69445}(`I8`_lanetype, `%`_dim{i#69452}(16)), `EXTEND`_vcvtop__{half#56, sx#12708}(`LOW`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(135):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:613.5-613.64 - prod{shape_1#9 : shape, shape_2#9 : shape, lanetype#11959 : lanetype, dim#11959 : dim, i#69693 : nat, i#69700 : nat, lanetype#11971 : lanetype, dim#11971 : dim, i#69705 : nat, i#69712 : nat, half#90 : half, sx#12742 : sx, i#69686 : nat} {{0xFD} {`%`_u32{i#69686}(136):Bu32}} => `VCVTOP`_instr{shape_1#9, shape_2#9}(`%X%`_shape{lanetype#11959, dim#11959, i#69693}(`I16`_lanetype, `%`_dim{i#69700}(8)), `%X%`_shape{lanetype#11971, dim#11971, i#69705}(`I8`_lanetype, `%`_dim{i#69712}(16)), `EXTEND`_vcvtop__{half#90, sx#12742}(`HIGH`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(136):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:614.5-614.63 - prod{shape_1#11 : shape, shape_2#11 : shape, lanetype#12074 : lanetype, dim#12074 : dim, i#69953 : nat, i#69960 : nat, lanetype#12086 : lanetype, dim#12086 : dim, i#69965 : nat, i#69972 : nat, half#124 : half, sx#12776 : sx, i#69946 : nat} {{0xFD} {`%`_u32{i#69946}(137):Bu32}} => `VCVTOP`_instr{shape_1#11, shape_2#11}(`%X%`_shape{lanetype#12074, dim#12074, i#69953}(`I16`_lanetype, `%`_dim{i#69960}(8)), `%X%`_shape{lanetype#12086, dim#12086, i#69965}(`I8`_lanetype, `%`_dim{i#69972}(16)), `EXTEND`_vcvtop__{half#124, sx#12776}(`LOW`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(137):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:615.5-615.64 - prod{shape_1#13 : shape, shape_2#13 : shape, lanetype#12189 : lanetype, dim#12189 : dim, i#70213 : nat, i#70220 : nat, lanetype#12201 : lanetype, dim#12201 : dim, i#70225 : nat, i#70232 : nat, half#158 : half, sx#12810 : sx, i#70206 : nat} {{0xFD} {`%`_u32{i#70206}(138):Bu32}} => `VCVTOP`_instr{shape_1#13, shape_2#13}(`%X%`_shape{lanetype#12189, dim#12189, i#70213}(`I16`_lanetype, `%`_dim{i#70220}(8)), `%X%`_shape{lanetype#12201, dim#12201, i#70225}(`I8`_lanetype, `%`_dim{i#70232}(16)), `EXTEND`_vcvtop__{half#158, sx#12810}(`HIGH`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(138):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:619.5-619.45 - prod{ishape#23 : ishape, shape#1583 : shape, Jnn#308 : Jnn, lanetype#12304 : lanetype, dim#12304 : dim, i#70473 : nat, i#70480 : nat, i#70466 : nat} {{0xFD} {`%`_u32{i#70466}(139):Bu32}} => `VSHIFTOP`_instr{ishape#23}(`%`_ishape{shape#1583, Jnn#308}(`%X%`_shape{lanetype#12304, dim#12304, i#70473}(`I16`_lanetype, `%`_dim{i#70480}(8))), `SHL`_vshiftop_) + prod {{0xFD} {`%`_u32(139):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:620.5-620.47 - prod{ishape#25 : ishape, shape#1610 : shape, Jnn#312 : Jnn, lanetype#12361 : lanetype, dim#12361 : dim, i#70585 : nat, i#70592 : nat, sx#12859 : sx, i#70578 : nat} {{0xFD} {`%`_u32{i#70578}(140):Bu32}} => `VSHIFTOP`_instr{ishape#25}(`%`_ishape{shape#1610, Jnn#312}(`%X%`_shape{lanetype#12361, dim#12361, i#70585}(`I16`_lanetype, `%`_dim{i#70592}(8))), `SHR`_vshiftop_{sx#12859}(`S`_sx)) + prod {{0xFD} {`%`_u32(140):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:621.5-621.47 - prod{ishape#27 : ishape, shape#1652 : shape, Jnn#316 : Jnn, lanetype#12463 : lanetype, dim#12463 : dim, i#70772 : nat, i#70779 : nat, sx#12893 : sx, i#70765 : nat} {{0xFD} {`%`_u32{i#70765}(141):Bu32}} => `VSHIFTOP`_instr{ishape#27}(`%`_ishape{shape#1652, Jnn#316}(`%X%`_shape{lanetype#12463, dim#12463, i#70772}(`I16`_lanetype, `%`_dim{i#70779}(8))), `SHR`_vshiftop_{sx#12893}(`U`_sx)) + prod {{0xFD} {`%`_u32(141):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:625.5-625.66 - prod{ishape_1#37 : ishape, ishape_2#37 : ishape, shape#1694 : shape, Jnn#320 : Jnn, lanetype#12565 : lanetype, dim#12565 : dim, i#70959 : nat, i#70966 : nat, shape#1706 : shape, Jnn#324 : Jnn, lanetype#12577 : lanetype, dim#12577 : dim, i#70971 : nat, i#70978 : nat, half#192 : half, sx#12927 : sx, i#70952 : nat} {{0xFD} {`%`_u32{i#70952}(156):Bu32}} => `VEXTBINOP`_instr{ishape_1#37, ishape_2#37}(`%`_ishape{shape#1694, Jnn#320}(`%X%`_shape{lanetype#12565, dim#12565, i#70959}(`I16`_lanetype, `%`_dim{i#70966}(8))), `%`_ishape{shape#1706, Jnn#324}(`%X%`_shape{lanetype#12577, dim#12577, i#70971}(`I8`_lanetype, `%`_dim{i#70978}(16))), `EXTMUL`_vextbinop__{half#192, sx#12927}(`LOW`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(156):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:626.5-626.67 - prod{ishape_1#39 : ishape, ishape_2#39 : ishape, shape#1809 : shape, Jnn#328 : Jnn, lanetype#12800 : lanetype, dim#12800 : dim, i#71339 : nat, i#71346 : nat, shape#1821 : shape, Jnn#332 : Jnn, lanetype#12812 : lanetype, dim#12812 : dim, i#71351 : nat, i#71358 : nat, half#226 : half, sx#12961 : sx, i#71332 : nat} {{0xFD} {`%`_u32{i#71332}(157):Bu32}} => `VEXTBINOP`_instr{ishape_1#39, ishape_2#39}(`%`_ishape{shape#1809, Jnn#328}(`%X%`_shape{lanetype#12800, dim#12800, i#71339}(`I16`_lanetype, `%`_dim{i#71346}(8))), `%`_ishape{shape#1821, Jnn#332}(`%X%`_shape{lanetype#12812, dim#12812, i#71351}(`I8`_lanetype, `%`_dim{i#71358}(16))), `EXTMUL`_vextbinop__{half#226, sx#12961}(`HIGH`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(157):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:627.5-627.66 - prod{ishape_1#41 : ishape, ishape_2#41 : ishape, shape#1924 : shape, Jnn#336 : Jnn, lanetype#13035 : lanetype, dim#13035 : dim, i#71719 : nat, i#71726 : nat, shape#1936 : shape, Jnn#340 : Jnn, lanetype#13047 : lanetype, dim#13047 : dim, i#71731 : nat, i#71738 : nat, half#260 : half, sx#12995 : sx, i#71712 : nat} {{0xFD} {`%`_u32{i#71712}(158):Bu32}} => `VEXTBINOP`_instr{ishape_1#41, ishape_2#41}(`%`_ishape{shape#1924, Jnn#336}(`%X%`_shape{lanetype#13035, dim#13035, i#71719}(`I16`_lanetype, `%`_dim{i#71726}(8))), `%`_ishape{shape#1936, Jnn#340}(`%X%`_shape{lanetype#13047, dim#13047, i#71731}(`I8`_lanetype, `%`_dim{i#71738}(16))), `EXTMUL`_vextbinop__{half#260, sx#12995}(`LOW`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(158):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:628.5-628.67 - prod{ishape_1#43 : ishape, ishape_2#43 : ishape, shape#2039 : shape, Jnn#344 : Jnn, lanetype#13270 : lanetype, dim#13270 : dim, i#72099 : nat, i#72106 : nat, shape#2051 : shape, Jnn#348 : Jnn, lanetype#13282 : lanetype, dim#13282 : dim, i#72111 : nat, i#72118 : nat, half#294 : half, sx#13029 : sx, i#72092 : nat} {{0xFD} {`%`_u32{i#72092}(159):Bu32}} => `VEXTBINOP`_instr{ishape_1#43, ishape_2#43}(`%`_ishape{shape#2039, Jnn#344}(`%X%`_shape{lanetype#13270, dim#13270, i#72099}(`I16`_lanetype, `%`_dim{i#72106}(8))), `%`_ishape{shape#2051, Jnn#348}(`%X%`_shape{lanetype#13282, dim#13282, i#72111}(`I8`_lanetype, `%`_dim{i#72118}(16))), `EXTMUL`_vextbinop__{half#294, sx#13029}(`HIGH`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(159):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:629.5-629.67 - prod{ishape_1#45 : ishape, ishape_2#45 : ishape, shape#2154 : shape, Jnn#352 : Jnn, lanetype#13505 : lanetype, dim#13505 : dim, i#72479 : nat, i#72486 : nat, shape#2166 : shape, Jnn#356 : Jnn, lanetype#13517 : lanetype, dim#13517 : dim, i#72491 : nat, i#72498 : nat, i#72472 : nat} {{0xFD} {`%`_u32{i#72472}(274):Bu32}} => `VEXTBINOP`_instr{ishape_1#45, ishape_2#45}(`%`_ishape{shape#2154, Jnn#352}(`%X%`_shape{lanetype#13505, dim#13505, i#72479}(`I16`_lanetype, `%`_dim{i#72486}(8))), `%`_ishape{shape#2166, Jnn#356}(`%X%`_shape{lanetype#13517, dim#13517, i#72491}(`I8`_lanetype, `%`_dim{i#72498}(16))), `RELAXED_DOTS`_vextbinop__) + prod {{0xFD} {`%`_u32(274):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_DOTS`_vextbinop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:633.5-633.70 - prod{ishape_1#47 : ishape, ishape_2#47 : ishape, shape#2269 : shape, Jnn#360 : Jnn, lanetype#13740 : lanetype, dim#13740 : dim, i#72859 : nat, i#72866 : nat, shape#2281 : shape, Jnn#364 : Jnn, lanetype#13752 : lanetype, dim#13752 : dim, i#72871 : nat, i#72878 : nat, sx#13093 : sx, i#72852 : nat} {{0xFD} {`%`_u32{i#72852}(126):Bu32}} => `VEXTUNOP`_instr{ishape_1#47, ishape_2#47}(`%`_ishape{shape#2269, Jnn#360}(`%X%`_shape{lanetype#13740, dim#13740, i#72859}(`I32`_lanetype, `%`_dim{i#72866}(4))), `%`_ishape{shape#2281, Jnn#364}(`%X%`_shape{lanetype#13752, dim#13752, i#72871}(`I16`_lanetype, `%`_dim{i#72878}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#13093}(`S`_sx)) + prod {{0xFD} {`%`_u32(126):Bu32}} => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:634.5-634.70 - prod{ishape_1#49 : ishape, ishape_2#49 : ishape, shape#2384 : shape, Jnn#368 : Jnn, lanetype#13975 : lanetype, dim#13975 : dim, i#73239 : nat, i#73246 : nat, shape#2396 : shape, Jnn#372 : Jnn, lanetype#13987 : lanetype, dim#13987 : dim, i#73251 : nat, i#73258 : nat, sx#13127 : sx, i#73232 : nat} {{0xFD} {`%`_u32{i#73232}(127):Bu32}} => `VEXTUNOP`_instr{ishape_1#49, ishape_2#49}(`%`_ishape{shape#2384, Jnn#368}(`%X%`_shape{lanetype#13975, dim#13975, i#73239}(`I32`_lanetype, `%`_dim{i#73246}(4))), `%`_ishape{shape#2396, Jnn#372}(`%X%`_shape{lanetype#13987, dim#13987, i#73251}(`I16`_lanetype, `%`_dim{i#73258}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#13127}(`U`_sx)) + prod {{0xFD} {`%`_u32(127):Bu32}} => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:638.5-638.42 - prod{shape#2489 : shape, lanetype#14210 : lanetype, dim#14210 : dim, i#73619 : nat, i#73626 : nat, i#73612 : nat} {{0xFD} {`%`_u32{i#73612}(160):Bu32}} => `VUNOP`_instr{shape#2489}(`%X%`_shape{lanetype#14210, dim#14210, i#73619}(`I32`_lanetype, `%`_dim{i#73626}(4)), `ABS`_vunop_) + prod {{0xFD} {`%`_u32(160):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:639.5-639.42 - prod{shape#2491 : shape, lanetype#14237 : lanetype, dim#14237 : dim, i#73701 : nat, i#73708 : nat, i#73694 : nat} {{0xFD} {`%`_u32{i#73694}(161):Bu32}} => `VUNOP`_instr{shape#2491}(`%X%`_shape{lanetype#14237, dim#14237, i#73701}(`I32`_lanetype, `%`_dim{i#73708}(4)), `NEG`_vunop_) + prod {{0xFD} {`%`_u32(161):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:643.5-643.49 - prod{shape#2493 : shape, lanetype#14264 : lanetype, dim#14264 : dim, i#73783 : nat, i#73790 : nat, i#73776 : nat} {{0xFD} {`%`_u32{i#73776}(163):Bu32}} => `VTESTOP`_instr{shape#2493}(`%X%`_shape{lanetype#14264, dim#14264, i#73783}(`I32`_lanetype, `%`_dim{i#73790}(4)), `ALL_TRUE`_vtestop_) + prod {{0xFD} {`%`_u32(163):Bu32}} => `VTESTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:647.5-647.41 - prod{ishape#29 : ishape, shape#2505 : shape, Jnn#376 : Jnn, lanetype#14291 : lanetype, dim#14291 : dim, i#73865 : nat, i#73872 : nat, i#73858 : nat} {{0xFD} {`%`_u32{i#73858}(164):Bu32}} => `VBITMASK`_instr{ishape#29}(`%`_ishape{shape#2505, Jnn#376}(`%X%`_shape{lanetype#14291, dim#14291, i#73865}(`I32`_lanetype, `%`_dim{i#73872}(4)))) + prod {{0xFD} {`%`_u32(164):Bu32}} => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:651.5-651.63 - prod{shape_1#15 : shape, shape_2#15 : shape, lanetype#14303 : lanetype, dim#14303 : dim, i#73902 : nat, i#73909 : nat, lanetype#14315 : lanetype, dim#14315 : dim, i#73914 : nat, i#73921 : nat, half#358 : half, sx#13161 : sx, i#73895 : nat} {{0xFD} {`%`_u32{i#73895}(167):Bu32}} => `VCVTOP`_instr{shape_1#15, shape_2#15}(`%X%`_shape{lanetype#14303, dim#14303, i#73902}(`I32`_lanetype, `%`_dim{i#73909}(4)), `%X%`_shape{lanetype#14315, dim#14315, i#73914}(`I16`_lanetype, `%`_dim{i#73921}(8)), `EXTEND`_vcvtop__{half#358, sx#13161}(`LOW`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(167):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:652.5-652.64 - prod{shape_1#17 : shape, shape_2#17 : shape, lanetype#14418 : lanetype, dim#14418 : dim, i#74162 : nat, i#74169 : nat, lanetype#14430 : lanetype, dim#14430 : dim, i#74174 : nat, i#74181 : nat, half#392 : half, sx#13195 : sx, i#74155 : nat} {{0xFD} {`%`_u32{i#74155}(168):Bu32}} => `VCVTOP`_instr{shape_1#17, shape_2#17}(`%X%`_shape{lanetype#14418, dim#14418, i#74162}(`I32`_lanetype, `%`_dim{i#74169}(4)), `%X%`_shape{lanetype#14430, dim#14430, i#74174}(`I16`_lanetype, `%`_dim{i#74181}(8)), `EXTEND`_vcvtop__{half#392, sx#13195}(`HIGH`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(168):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:653.5-653.63 - prod{shape_1#19 : shape, shape_2#19 : shape, lanetype#14533 : lanetype, dim#14533 : dim, i#74422 : nat, i#74429 : nat, lanetype#14545 : lanetype, dim#14545 : dim, i#74434 : nat, i#74441 : nat, half#426 : half, sx#13229 : sx, i#74415 : nat} {{0xFD} {`%`_u32{i#74415}(169):Bu32}} => `VCVTOP`_instr{shape_1#19, shape_2#19}(`%X%`_shape{lanetype#14533, dim#14533, i#74422}(`I32`_lanetype, `%`_dim{i#74429}(4)), `%X%`_shape{lanetype#14545, dim#14545, i#74434}(`I16`_lanetype, `%`_dim{i#74441}(8)), `EXTEND`_vcvtop__{half#426, sx#13229}(`LOW`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(169):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:654.5-654.64 - prod{shape_1#21 : shape, shape_2#21 : shape, lanetype#14648 : lanetype, dim#14648 : dim, i#74682 : nat, i#74689 : nat, lanetype#14660 : lanetype, dim#14660 : dim, i#74694 : nat, i#74701 : nat, half#460 : half, sx#13263 : sx, i#74675 : nat} {{0xFD} {`%`_u32{i#74675}(170):Bu32}} => `VCVTOP`_instr{shape_1#21, shape_2#21}(`%X%`_shape{lanetype#14648, dim#14648, i#74682}(`I32`_lanetype, `%`_dim{i#74689}(4)), `%X%`_shape{lanetype#14660, dim#14660, i#74694}(`I16`_lanetype, `%`_dim{i#74701}(8)), `EXTEND`_vcvtop__{half#460, sx#13263}(`HIGH`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(170):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:658.5-658.45 - prod{ishape#31 : ishape, shape#2517 : shape, Jnn#380 : Jnn, lanetype#14763 : lanetype, dim#14763 : dim, i#74942 : nat, i#74949 : nat, i#74935 : nat} {{0xFD} {`%`_u32{i#74935}(171):Bu32}} => `VSHIFTOP`_instr{ishape#31}(`%`_ishape{shape#2517, Jnn#380}(`%X%`_shape{lanetype#14763, dim#14763, i#74942}(`I32`_lanetype, `%`_dim{i#74949}(4))), `SHL`_vshiftop_) + prod {{0xFD} {`%`_u32(171):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:659.5-659.49 - prod{ishape#33 : ishape, shape#2544 : shape, Jnn#384 : Jnn, lanetype#14820 : lanetype, dim#14820 : dim, i#75054 : nat, i#75061 : nat, sx#13297 : sx, i#75047 : nat} {{0xFD} {`%`_u32{i#75047}(172):Bu32}} => `VSHIFTOP`_instr{ishape#33}(`%`_ishape{shape#2544, Jnn#384}(`%X%`_shape{lanetype#14820, dim#14820, i#75054}(`I32`_lanetype, `%`_dim{i#75061}(4))), `SHR`_vshiftop_{sx#13297}(`S`_sx)) + prod {{0xFD} {`%`_u32(172):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:660.5-660.49 - prod{ishape#35 : ishape, shape#2573 : shape, Jnn#388 : Jnn, lanetype#14883 : lanetype, dim#14883 : dim, i#75176 : nat, i#75183 : nat, sx#13316 : sx, i#75169 : nat} {{0xFD} {`%`_u32{i#75169}(173):Bu32}} => `VSHIFTOP`_instr{ishape#35}(`%`_ishape{shape#2573, Jnn#388}(`%X%`_shape{lanetype#14883, dim#14883, i#75176}(`I32`_lanetype, `%`_dim{i#75183}(4))), `SHR`_vshiftop_{sx#13316}(`U`_sx)) + prod {{0xFD} {`%`_u32(173):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:664.5-664.43 - prod{shape#2592 : shape, lanetype#14946 : lanetype, dim#14946 : dim, i#75298 : nat, i#75305 : nat, i#75291 : nat} {{0xFD} {`%`_u32{i#75291}(174):Bu32}} => `VBINOP`_instr{shape#2592}(`%X%`_shape{lanetype#14946, dim#14946, i#75298}(`I32`_lanetype, `%`_dim{i#75305}(4)), `ADD`_vbinop_) + prod {{0xFD} {`%`_u32(174):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:665.5-665.43 - prod{shape#2594 : shape, lanetype#14973 : lanetype, dim#14973 : dim, i#75380 : nat, i#75387 : nat, i#75373 : nat} {{0xFD} {`%`_u32{i#75373}(177):Bu32}} => `VBINOP`_instr{shape#2594}(`%X%`_shape{lanetype#14973, dim#14973, i#75380}(`I32`_lanetype, `%`_dim{i#75387}(4)), `SUB`_vbinop_) + prod {{0xFD} {`%`_u32(177):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:666.5-666.43 - prod{shape#2596 : shape, lanetype#15000 : lanetype, dim#15000 : dim, i#75462 : nat, i#75469 : nat, i#75455 : nat} {{0xFD} {`%`_u32{i#75455}(181):Bu32}} => `VBINOP`_instr{shape#2596}(`%X%`_shape{lanetype#15000, dim#15000, i#75462}(`I32`_lanetype, `%`_dim{i#75469}(4)), `MUL`_vbinop_) + prod {{0xFD} {`%`_u32(181):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:667.5-667.45 - prod{shape#2598 : shape, lanetype#15027 : lanetype, dim#15027 : dim, i#75544 : nat, i#75551 : nat, sx#13620 : sx, i#75537 : nat} {{0xFD} {`%`_u32{i#75537}(182):Bu32}} => `VBINOP`_instr{shape#2598}(`%X%`_shape{lanetype#15027, dim#15027, i#75544}(`I32`_lanetype, `%`_dim{i#75551}(4)), `MIN`_vbinop_{sx#13620}(`S`_sx)) + prod {{0xFD} {`%`_u32(182):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:668.5-668.45 - prod{shape#2600 : shape, lanetype#15069 : lanetype, dim#15069 : dim, i#75671 : nat, i#75678 : nat, sx#13744 : sx, i#75664 : nat} {{0xFD} {`%`_u32{i#75664}(183):Bu32}} => `VBINOP`_instr{shape#2600}(`%X%`_shape{lanetype#15069, dim#15069, i#75671}(`I32`_lanetype, `%`_dim{i#75678}(4)), `MIN`_vbinop_{sx#13744}(`U`_sx)) + prod {{0xFD} {`%`_u32(183):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:669.5-669.45 - prod{shape#2602 : shape, lanetype#15111 : lanetype, dim#15111 : dim, i#75798 : nat, i#75805 : nat, sx#13868 : sx, i#75791 : nat} {{0xFD} {`%`_u32{i#75791}(184):Bu32}} => `VBINOP`_instr{shape#2602}(`%X%`_shape{lanetype#15111, dim#15111, i#75798}(`I32`_lanetype, `%`_dim{i#75805}(4)), `MAX`_vbinop_{sx#13868}(`S`_sx)) + prod {{0xFD} {`%`_u32(184):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:670.5-670.45 - prod{shape#2604 : shape, lanetype#15153 : lanetype, dim#15153 : dim, i#75925 : nat, i#75932 : nat, sx#13992 : sx, i#75918 : nat} {{0xFD} {`%`_u32{i#75918}(185):Bu32}} => `VBINOP`_instr{shape#2604}(`%X%`_shape{lanetype#15153, dim#15153, i#75925}(`I32`_lanetype, `%`_dim{i#75932}(4)), `MAX`_vbinop_{sx#13992}(`U`_sx)) + prod {{0xFD} {`%`_u32(185):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:674.5-674.59 - prod{ishape_1#51 : ishape, ishape_2#51 : ishape, shape#2616 : shape, Jnn#392 : Jnn, lanetype#15195 : lanetype, dim#15195 : dim, i#76052 : nat, i#76059 : nat, shape#2628 : shape, Jnn#396 : Jnn, lanetype#15207 : lanetype, dim#15207 : dim, i#76064 : nat, i#76071 : nat, i#76045 : nat} {{0xFD} {`%`_u32{i#76045}(186):Bu32}} => `VEXTBINOP`_instr{ishape_1#51, ishape_2#51}(`%`_ishape{shape#2616, Jnn#392}(`%X%`_shape{lanetype#15195, dim#15195, i#76052}(`I32`_lanetype, `%`_dim{i#76059}(4))), `%`_ishape{shape#2628, Jnn#396}(`%X%`_shape{lanetype#15207, dim#15207, i#76064}(`I16`_lanetype, `%`_dim{i#76071}(8))), `DOTS`_vextbinop__) + prod {{0xFD} {`%`_u32(186):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `DOTS`_vextbinop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:675.5-675.66 - prod{ishape_1#53 : ishape, ishape_2#53 : ishape, shape#2731 : shape, Jnn#400 : Jnn, lanetype#15430 : lanetype, dim#15430 : dim, i#76432 : nat, i#76439 : nat, shape#2743 : shape, Jnn#404 : Jnn, lanetype#15442 : lanetype, dim#15442 : dim, i#76444 : nat, i#76451 : nat, half#524 : half, sx#14056 : sx, i#76425 : nat} {{0xFD} {`%`_u32{i#76425}(188):Bu32}} => `VEXTBINOP`_instr{ishape_1#53, ishape_2#53}(`%`_ishape{shape#2731, Jnn#400}(`%X%`_shape{lanetype#15430, dim#15430, i#76432}(`I32`_lanetype, `%`_dim{i#76439}(4))), `%`_ishape{shape#2743, Jnn#404}(`%X%`_shape{lanetype#15442, dim#15442, i#76444}(`I16`_lanetype, `%`_dim{i#76451}(8))), `EXTMUL`_vextbinop__{half#524, sx#14056}(`LOW`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(188):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:676.5-676.67 - prod{ishape_1#55 : ishape, ishape_2#55 : ishape, shape#2846 : shape, Jnn#408 : Jnn, lanetype#15665 : lanetype, dim#15665 : dim, i#76812 : nat, i#76819 : nat, shape#2858 : shape, Jnn#412 : Jnn, lanetype#15677 : lanetype, dim#15677 : dim, i#76824 : nat, i#76831 : nat, half#558 : half, sx#14090 : sx, i#76805 : nat} {{0xFD} {`%`_u32{i#76805}(189):Bu32}} => `VEXTBINOP`_instr{ishape_1#55, ishape_2#55}(`%`_ishape{shape#2846, Jnn#408}(`%X%`_shape{lanetype#15665, dim#15665, i#76812}(`I32`_lanetype, `%`_dim{i#76819}(4))), `%`_ishape{shape#2858, Jnn#412}(`%X%`_shape{lanetype#15677, dim#15677, i#76824}(`I16`_lanetype, `%`_dim{i#76831}(8))), `EXTMUL`_vextbinop__{half#558, sx#14090}(`HIGH`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(189):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:677.5-677.66 - prod{ishape_1#57 : ishape, ishape_2#57 : ishape, shape#2961 : shape, Jnn#416 : Jnn, lanetype#15900 : lanetype, dim#15900 : dim, i#77192 : nat, i#77199 : nat, shape#2973 : shape, Jnn#420 : Jnn, lanetype#15912 : lanetype, dim#15912 : dim, i#77204 : nat, i#77211 : nat, half#592 : half, sx#14124 : sx, i#77185 : nat} {{0xFD} {`%`_u32{i#77185}(190):Bu32}} => `VEXTBINOP`_instr{ishape_1#57, ishape_2#57}(`%`_ishape{shape#2961, Jnn#416}(`%X%`_shape{lanetype#15900, dim#15900, i#77192}(`I32`_lanetype, `%`_dim{i#77199}(4))), `%`_ishape{shape#2973, Jnn#420}(`%X%`_shape{lanetype#15912, dim#15912, i#77204}(`I16`_lanetype, `%`_dim{i#77211}(8))), `EXTMUL`_vextbinop__{half#592, sx#14124}(`LOW`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(190):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:678.5-678.67 - prod{ishape_1#59 : ishape, ishape_2#59 : ishape, shape#3076 : shape, Jnn#424 : Jnn, lanetype#16135 : lanetype, dim#16135 : dim, i#77572 : nat, i#77579 : nat, shape#3088 : shape, Jnn#428 : Jnn, lanetype#16147 : lanetype, dim#16147 : dim, i#77584 : nat, i#77591 : nat, half#626 : half, sx#14158 : sx, i#77565 : nat} {{0xFD} {`%`_u32{i#77565}(191):Bu32}} => `VEXTBINOP`_instr{ishape_1#59, ishape_2#59}(`%`_ishape{shape#3076, Jnn#424}(`%X%`_shape{lanetype#16135, dim#16135, i#77572}(`I32`_lanetype, `%`_dim{i#77579}(4))), `%`_ishape{shape#3088, Jnn#428}(`%X%`_shape{lanetype#16147, dim#16147, i#77584}(`I16`_lanetype, `%`_dim{i#77591}(8))), `EXTMUL`_vextbinop__{half#626, sx#14158}(`HIGH`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(191):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:682.5-682.72 - prod{ishape_1#61 : ishape, ishape_2#61 : ishape, shape#3191 : shape, Jnn#432 : Jnn, lanetype#16370 : lanetype, dim#16370 : dim, i#77952 : nat, i#77959 : nat, shape#3203 : shape, Jnn#436 : Jnn, lanetype#16382 : lanetype, dim#16382 : dim, i#77964 : nat, i#77971 : nat, i#77945 : nat} {{0xFD} {`%`_u32{i#77945}(275):Bu32}} => `VEXTTERNOP`_instr{ishape_1#61, ishape_2#61}(`%`_ishape{shape#3191, Jnn#432}(`%X%`_shape{lanetype#16370, dim#16370, i#77952}(`I32`_lanetype, `%`_dim{i#77959}(4))), `%`_ishape{shape#3203, Jnn#436}(`%X%`_shape{lanetype#16382, dim#16382, i#77964}(`I16`_lanetype, `%`_dim{i#77971}(8))), `RELAXED_DOT_ADDS`_vextternop__) + prod {{0xFD} {`%`_u32(275):Bu32}} => `VEXTTERNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `RELAXED_DOT_ADDS`_vextternop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:686.5-686.42 - prod{shape#3296 : shape, lanetype#16605 : lanetype, dim#16605 : dim, i#78332 : nat, i#78339 : nat, i#78325 : nat} {{0xFD} {`%`_u32{i#78325}(192):Bu32}} => `VUNOP`_instr{shape#3296}(`%X%`_shape{lanetype#16605, dim#16605, i#78332}(`I64`_lanetype, `%`_dim{i#78339}(2)), `ABS`_vunop_) + prod {{0xFD} {`%`_u32(192):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:687.5-687.42 - prod{shape#3298 : shape, lanetype#16632 : lanetype, dim#16632 : dim, i#78414 : nat, i#78421 : nat, i#78407 : nat} {{0xFD} {`%`_u32{i#78407}(193):Bu32}} => `VUNOP`_instr{shape#3298}(`%X%`_shape{lanetype#16632, dim#16632, i#78414}(`I64`_lanetype, `%`_dim{i#78421}(2)), `NEG`_vunop_) + prod {{0xFD} {`%`_u32(193):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:691.5-691.49 - prod{shape#3300 : shape, lanetype#16659 : lanetype, dim#16659 : dim, i#78496 : nat, i#78503 : nat, i#78489 : nat} {{0xFD} {`%`_u32{i#78489}(195):Bu32}} => `VTESTOP`_instr{shape#3300}(`%X%`_shape{lanetype#16659, dim#16659, i#78496}(`I64`_lanetype, `%`_dim{i#78503}(2)), `ALL_TRUE`_vtestop_) + prod {{0xFD} {`%`_u32(195):Bu32}} => `VTESTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:695.5-695.41 - prod{ishape#37 : ishape, shape#3312 : shape, Jnn#440 : Jnn, lanetype#16686 : lanetype, dim#16686 : dim, i#78578 : nat, i#78585 : nat, i#78571 : nat} {{0xFD} {`%`_u32{i#78571}(196):Bu32}} => `VBITMASK`_instr{ishape#37}(`%`_ishape{shape#3312, Jnn#440}(`%X%`_shape{lanetype#16686, dim#16686, i#78578}(`I64`_lanetype, `%`_dim{i#78585}(2)))) + prod {{0xFD} {`%`_u32(196):Bu32}} => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:699.5-699.63 - prod{shape_1#23 : shape, shape_2#23 : shape, lanetype#16698 : lanetype, dim#16698 : dim, i#78615 : nat, i#78622 : nat, lanetype#16710 : lanetype, dim#16710 : dim, i#78627 : nat, i#78634 : nat, half#660 : half, sx#14192 : sx, i#78608 : nat} {{0xFD} {`%`_u32{i#78608}(199):Bu32}} => `VCVTOP`_instr{shape_1#23, shape_2#23}(`%X%`_shape{lanetype#16698, dim#16698, i#78615}(`I64`_lanetype, `%`_dim{i#78622}(2)), `%X%`_shape{lanetype#16710, dim#16710, i#78627}(`I32`_lanetype, `%`_dim{i#78634}(4)), `EXTEND`_vcvtop__{half#660, sx#14192}(`LOW`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(199):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:700.5-700.64 - prod{shape_1#25 : shape, shape_2#25 : shape, lanetype#16813 : lanetype, dim#16813 : dim, i#78875 : nat, i#78882 : nat, lanetype#16825 : lanetype, dim#16825 : dim, i#78887 : nat, i#78894 : nat, half#694 : half, sx#14226 : sx, i#78868 : nat} {{0xFD} {`%`_u32{i#78868}(200):Bu32}} => `VCVTOP`_instr{shape_1#25, shape_2#25}(`%X%`_shape{lanetype#16813, dim#16813, i#78875}(`I64`_lanetype, `%`_dim{i#78882}(2)), `%X%`_shape{lanetype#16825, dim#16825, i#78887}(`I32`_lanetype, `%`_dim{i#78894}(4)), `EXTEND`_vcvtop__{half#694, sx#14226}(`HIGH`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(200):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:701.5-701.63 - prod{shape_1#27 : shape, shape_2#27 : shape, lanetype#16928 : lanetype, dim#16928 : dim, i#79135 : nat, i#79142 : nat, lanetype#16940 : lanetype, dim#16940 : dim, i#79147 : nat, i#79154 : nat, half#728 : half, sx#14260 : sx, i#79128 : nat} {{0xFD} {`%`_u32{i#79128}(201):Bu32}} => `VCVTOP`_instr{shape_1#27, shape_2#27}(`%X%`_shape{lanetype#16928, dim#16928, i#79135}(`I64`_lanetype, `%`_dim{i#79142}(2)), `%X%`_shape{lanetype#16940, dim#16940, i#79147}(`I32`_lanetype, `%`_dim{i#79154}(4)), `EXTEND`_vcvtop__{half#728, sx#14260}(`LOW`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(201):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:702.5-702.64 - prod{shape_1#29 : shape, shape_2#29 : shape, lanetype#17043 : lanetype, dim#17043 : dim, i#79395 : nat, i#79402 : nat, lanetype#17055 : lanetype, dim#17055 : dim, i#79407 : nat, i#79414 : nat, half#762 : half, sx#14294 : sx, i#79388 : nat} {{0xFD} {`%`_u32{i#79388}(202):Bu32}} => `VCVTOP`_instr{shape_1#29, shape_2#29}(`%X%`_shape{lanetype#17043, dim#17043, i#79395}(`I64`_lanetype, `%`_dim{i#79402}(2)), `%X%`_shape{lanetype#17055, dim#17055, i#79407}(`I32`_lanetype, `%`_dim{i#79414}(4)), `EXTEND`_vcvtop__{half#762, sx#14294}(`HIGH`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(202):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:706.5-706.45 - prod{ishape#39 : ishape, shape#3324 : shape, Jnn#444 : Jnn, lanetype#17158 : lanetype, dim#17158 : dim, i#79655 : nat, i#79662 : nat, i#79648 : nat} {{0xFD} {`%`_u32{i#79648}(203):Bu32}} => `VSHIFTOP`_instr{ishape#39}(`%`_ishape{shape#3324, Jnn#444}(`%X%`_shape{lanetype#17158, dim#17158, i#79655}(`I64`_lanetype, `%`_dim{i#79662}(2))), `SHL`_vshiftop_) + prod {{0xFD} {`%`_u32(203):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:707.5-707.49 - prod{ishape#41 : ishape, shape#3351 : shape, Jnn#448 : Jnn, lanetype#17215 : lanetype, dim#17215 : dim, i#79767 : nat, i#79774 : nat, sx#14328 : sx, i#79760 : nat} {{0xFD} {`%`_u32{i#79760}(204):Bu32}} => `VSHIFTOP`_instr{ishape#41}(`%`_ishape{shape#3351, Jnn#448}(`%X%`_shape{lanetype#17215, dim#17215, i#79767}(`I64`_lanetype, `%`_dim{i#79774}(2))), `SHR`_vshiftop_{sx#14328}(`S`_sx)) + prod {{0xFD} {`%`_u32(204):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:708.5-708.49 - prod{ishape#43 : ishape, shape#3380 : shape, Jnn#452 : Jnn, lanetype#17278 : lanetype, dim#17278 : dim, i#79889 : nat, i#79896 : nat, sx#14347 : sx, i#79882 : nat} {{0xFD} {`%`_u32{i#79882}(205):Bu32}} => `VSHIFTOP`_instr{ishape#43}(`%`_ishape{shape#3380, Jnn#452}(`%X%`_shape{lanetype#17278, dim#17278, i#79889}(`I64`_lanetype, `%`_dim{i#79896}(2))), `SHR`_vshiftop_{sx#14347}(`U`_sx)) + prod {{0xFD} {`%`_u32(205):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:712.5-712.43 - prod{shape#3399 : shape, lanetype#17341 : lanetype, dim#17341 : dim, i#80011 : nat, i#80018 : nat, i#80004 : nat} {{0xFD} {`%`_u32{i#80004}(206):Bu32}} => `VBINOP`_instr{shape#3399}(`%X%`_shape{lanetype#17341, dim#17341, i#80011}(`I64`_lanetype, `%`_dim{i#80018}(2)), `ADD`_vbinop_) + prod {{0xFD} {`%`_u32(206):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:713.5-713.43 - prod{shape#3401 : shape, lanetype#17368 : lanetype, dim#17368 : dim, i#80093 : nat, i#80100 : nat, i#80086 : nat} {{0xFD} {`%`_u32{i#80086}(209):Bu32}} => `VBINOP`_instr{shape#3401}(`%X%`_shape{lanetype#17368, dim#17368, i#80093}(`I64`_lanetype, `%`_dim{i#80100}(2)), `SUB`_vbinop_) + prod {{0xFD} {`%`_u32(209):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:714.5-714.43 - prod{shape#3403 : shape, lanetype#17395 : lanetype, dim#17395 : dim, i#80175 : nat, i#80182 : nat, i#80168 : nat} {{0xFD} {`%`_u32{i#80168}(213):Bu32}} => `VBINOP`_instr{shape#3403}(`%X%`_shape{lanetype#17395, dim#17395, i#80175}(`I64`_lanetype, `%`_dim{i#80182}(2)), `MUL`_vbinop_) + prod {{0xFD} {`%`_u32(213):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:718.5-718.42 - prod{shape#3405 : shape, lanetype#17422 : lanetype, dim#17422 : dim, i#80257 : nat, i#80264 : nat, i#80250 : nat} {{0xFD} {`%`_u32{i#80250}(214):Bu32}} => `VRELOP`_instr{shape#3405}(`%X%`_shape{lanetype#17422, dim#17422, i#80257}(`I64`_lanetype, `%`_dim{i#80264}(2)), `EQ`_vrelop_) + prod {{0xFD} {`%`_u32(214):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:719.5-719.42 - prod{shape#3407 : shape, lanetype#17449 : lanetype, dim#17449 : dim, i#80339 : nat, i#80346 : nat, i#80332 : nat} {{0xFD} {`%`_u32{i#80332}(215):Bu32}} => `VRELOP`_instr{shape#3407}(`%X%`_shape{lanetype#17449, dim#17449, i#80339}(`I64`_lanetype, `%`_dim{i#80346}(2)), `NE`_vrelop_) + prod {{0xFD} {`%`_u32(215):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:720.5-720.46 - prod{shape#3409 : shape, lanetype#17476 : lanetype, dim#17476 : dim, i#80421 : nat, i#80428 : nat, sx#14717 : sx, i#80414 : nat} {{0xFD} {`%`_u32{i#80414}(216):Bu32}} => `VRELOP`_instr{shape#3409}(`%X%`_shape{lanetype#17476, dim#17476, i#80421}(`I64`_lanetype, `%`_dim{i#80428}(2)), `LT`_vrelop_{sx#14717}(`S`_sx)) + prod {{0xFD} {`%`_u32(216):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:721.5-721.46 - prod{shape#3411 : shape, lanetype#17505 : lanetype, dim#17505 : dim, i#80509 : nat, i#80516 : nat, sx#14787 : sx, i#80502 : nat} {{0xFD} {`%`_u32{i#80502}(217):Bu32}} => `VRELOP`_instr{shape#3411}(`%X%`_shape{lanetype#17505, dim#17505, i#80509}(`I64`_lanetype, `%`_dim{i#80516}(2)), `GT`_vrelop_{sx#14787}(`S`_sx)) + prod {{0xFD} {`%`_u32(217):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:722.5-722.46 - prod{shape#3413 : shape, lanetype#17534 : lanetype, dim#17534 : dim, i#80597 : nat, i#80604 : nat, sx#14857 : sx, i#80590 : nat} {{0xFD} {`%`_u32{i#80590}(218):Bu32}} => `VRELOP`_instr{shape#3413}(`%X%`_shape{lanetype#17534, dim#17534, i#80597}(`I64`_lanetype, `%`_dim{i#80604}(2)), `LE`_vrelop_{sx#14857}(`S`_sx)) + prod {{0xFD} {`%`_u32(218):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:723.5-723.46 - prod{shape#3415 : shape, lanetype#17563 : lanetype, dim#17563 : dim, i#80685 : nat, i#80692 : nat, sx#14927 : sx, i#80678 : nat} {{0xFD} {`%`_u32{i#80678}(219):Bu32}} => `VRELOP`_instr{shape#3415}(`%X%`_shape{lanetype#17563, dim#17563, i#80685}(`I64`_lanetype, `%`_dim{i#80692}(2)), `GE`_vrelop_{sx#14927}(`S`_sx)) + prod {{0xFD} {`%`_u32(219):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:727.5-727.66 - prod{ishape_1#63 : ishape, ishape_2#63 : ishape, shape#3427 : shape, Jnn#456 : Jnn, lanetype#17592 : lanetype, dim#17592 : dim, i#80773 : nat, i#80780 : nat, shape#3439 : shape, Jnn#460 : Jnn, lanetype#17604 : lanetype, dim#17604 : dim, i#80785 : nat, i#80792 : nat, half#796 : half, sx#14961 : sx, i#80766 : nat} {{0xFD} {`%`_u32{i#80766}(220):Bu32}} => `VEXTBINOP`_instr{ishape_1#63, ishape_2#63}(`%`_ishape{shape#3427, Jnn#456}(`%X%`_shape{lanetype#17592, dim#17592, i#80773}(`I64`_lanetype, `%`_dim{i#80780}(2))), `%`_ishape{shape#3439, Jnn#460}(`%X%`_shape{lanetype#17604, dim#17604, i#80785}(`I32`_lanetype, `%`_dim{i#80792}(4))), `EXTMUL`_vextbinop__{half#796, sx#14961}(`LOW`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(220):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:728.5-728.67 - prod{ishape_1#65 : ishape, ishape_2#65 : ishape, shape#3542 : shape, Jnn#464 : Jnn, lanetype#17827 : lanetype, dim#17827 : dim, i#81153 : nat, i#81160 : nat, shape#3554 : shape, Jnn#468 : Jnn, lanetype#17839 : lanetype, dim#17839 : dim, i#81165 : nat, i#81172 : nat, half#830 : half, sx#14995 : sx, i#81146 : nat} {{0xFD} {`%`_u32{i#81146}(221):Bu32}} => `VEXTBINOP`_instr{ishape_1#65, ishape_2#65}(`%`_ishape{shape#3542, Jnn#464}(`%X%`_shape{lanetype#17827, dim#17827, i#81153}(`I64`_lanetype, `%`_dim{i#81160}(2))), `%`_ishape{shape#3554, Jnn#468}(`%X%`_shape{lanetype#17839, dim#17839, i#81165}(`I32`_lanetype, `%`_dim{i#81172}(4))), `EXTMUL`_vextbinop__{half#830, sx#14995}(`HIGH`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(221):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:729.5-729.66 - prod{ishape_1#67 : ishape, ishape_2#67 : ishape, shape#3657 : shape, Jnn#472 : Jnn, lanetype#18062 : lanetype, dim#18062 : dim, i#81533 : nat, i#81540 : nat, shape#3669 : shape, Jnn#476 : Jnn, lanetype#18074 : lanetype, dim#18074 : dim, i#81545 : nat, i#81552 : nat, half#864 : half, sx#15029 : sx, i#81526 : nat} {{0xFD} {`%`_u32{i#81526}(222):Bu32}} => `VEXTBINOP`_instr{ishape_1#67, ishape_2#67}(`%`_ishape{shape#3657, Jnn#472}(`%X%`_shape{lanetype#18062, dim#18062, i#81533}(`I64`_lanetype, `%`_dim{i#81540}(2))), `%`_ishape{shape#3669, Jnn#476}(`%X%`_shape{lanetype#18074, dim#18074, i#81545}(`I32`_lanetype, `%`_dim{i#81552}(4))), `EXTMUL`_vextbinop__{half#864, sx#15029}(`LOW`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(222):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:730.5-730.67 - prod{ishape_1#69 : ishape, ishape_2#69 : ishape, shape#3772 : shape, Jnn#480 : Jnn, lanetype#18297 : lanetype, dim#18297 : dim, i#81913 : nat, i#81920 : nat, shape#3784 : shape, Jnn#484 : Jnn, lanetype#18309 : lanetype, dim#18309 : dim, i#81925 : nat, i#81932 : nat, half#898 : half, sx#15063 : sx, i#81906 : nat} {{0xFD} {`%`_u32{i#81906}(223):Bu32}} => `VEXTBINOP`_instr{ishape_1#69, ishape_2#69}(`%`_ishape{shape#3772, Jnn#480}(`%X%`_shape{lanetype#18297, dim#18297, i#81913}(`I64`_lanetype, `%`_dim{i#81920}(2))), `%`_ishape{shape#3784, Jnn#484}(`%X%`_shape{lanetype#18309, dim#18309, i#81925}(`I32`_lanetype, `%`_dim{i#81932}(4))), `EXTMUL`_vextbinop__{half#898, sx#15063}(`HIGH`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(223):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:734.5-734.43 - prod{shape#3877 : shape, lanetype#18532 : lanetype, dim#18532 : dim, i#82293 : nat, i#82300 : nat, i#82286 : nat} {{0xFD} {`%`_u32{i#82286}(103):Bu32}} => `VUNOP`_instr{shape#3877}(`%X%`_shape{lanetype#18532, dim#18532, i#82293}(`F32`_lanetype, `%`_dim{i#82300}(4)), `CEIL`_vunop_) + prod {{0xFD} {`%`_u32(103):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `CEIL`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:735.5-735.44 - prod{shape#3879 : shape, lanetype#18574 : lanetype, dim#18574 : dim, i#82390 : nat, i#82397 : nat, i#82383 : nat} {{0xFD} {`%`_u32{i#82383}(104):Bu32}} => `VUNOP`_instr{shape#3879}(`%X%`_shape{lanetype#18574, dim#18574, i#82390}(`F32`_lanetype, `%`_dim{i#82397}(4)), `FLOOR`_vunop_) + prod {{0xFD} {`%`_u32(104):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `FLOOR`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:736.5-736.44 - prod{shape#3881 : shape, lanetype#18616 : lanetype, dim#18616 : dim, i#82487 : nat, i#82494 : nat, i#82480 : nat} {{0xFD} {`%`_u32{i#82480}(105):Bu32}} => `VUNOP`_instr{shape#3881}(`%X%`_shape{lanetype#18616, dim#18616, i#82487}(`F32`_lanetype, `%`_dim{i#82494}(4)), `TRUNC`_vunop_) + prod {{0xFD} {`%`_u32(105):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:737.5-737.46 - prod{shape#3883 : shape, lanetype#18658 : lanetype, dim#18658 : dim, i#82584 : nat, i#82591 : nat, i#82577 : nat} {{0xFD} {`%`_u32{i#82577}(106):Bu32}} => `VUNOP`_instr{shape#3883}(`%X%`_shape{lanetype#18658, dim#18658, i#82584}(`F32`_lanetype, `%`_dim{i#82591}(4)), `NEAREST`_vunop_) + prod {{0xFD} {`%`_u32(106):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEAREST`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:738.5-738.42 - prod{shape#3885 : shape, lanetype#18700 : lanetype, dim#18700 : dim, i#82681 : nat, i#82688 : nat, i#82674 : nat} {{0xFD} {`%`_u32{i#82674}(224):Bu32}} => `VUNOP`_instr{shape#3885}(`%X%`_shape{lanetype#18700, dim#18700, i#82681}(`F32`_lanetype, `%`_dim{i#82688}(4)), `ABS`_vunop_) + prod {{0xFD} {`%`_u32(224):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:739.5-739.42 - prod{shape#3887 : shape, lanetype#18742 : lanetype, dim#18742 : dim, i#82778 : nat, i#82785 : nat, i#82771 : nat} {{0xFD} {`%`_u32{i#82771}(225):Bu32}} => `VUNOP`_instr{shape#3887}(`%X%`_shape{lanetype#18742, dim#18742, i#82778}(`F32`_lanetype, `%`_dim{i#82785}(4)), `NEG`_vunop_) + prod {{0xFD} {`%`_u32(225):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:740.5-740.43 - prod{shape#3889 : shape, lanetype#18784 : lanetype, dim#18784 : dim, i#82875 : nat, i#82882 : nat, i#82868 : nat} {{0xFD} {`%`_u32{i#82868}(227):Bu32}} => `VUNOP`_instr{shape#3889}(`%X%`_shape{lanetype#18784, dim#18784, i#82875}(`F32`_lanetype, `%`_dim{i#82882}(4)), `SQRT`_vunop_) + prod {{0xFD} {`%`_u32(227):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SQRT`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:744.5-744.43 - prod{shape#3891 : shape, lanetype#18826 : lanetype, dim#18826 : dim, i#82972 : nat, i#82979 : nat, i#82965 : nat} {{0xFD} {`%`_u32{i#82965}(228):Bu32}} => `VBINOP`_instr{shape#3891}(`%X%`_shape{lanetype#18826, dim#18826, i#82972}(`F32`_lanetype, `%`_dim{i#82979}(4)), `ADD`_vbinop_) + prod {{0xFD} {`%`_u32(228):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:745.5-745.43 - prod{shape#3893 : shape, lanetype#18868 : lanetype, dim#18868 : dim, i#83069 : nat, i#83076 : nat, i#83062 : nat} {{0xFD} {`%`_u32{i#83062}(229):Bu32}} => `VBINOP`_instr{shape#3893}(`%X%`_shape{lanetype#18868, dim#18868, i#83069}(`F32`_lanetype, `%`_dim{i#83076}(4)), `SUB`_vbinop_) + prod {{0xFD} {`%`_u32(229):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:746.5-746.43 - prod{shape#3895 : shape, lanetype#18910 : lanetype, dim#18910 : dim, i#83166 : nat, i#83173 : nat, i#83159 : nat} {{0xFD} {`%`_u32{i#83159}(230):Bu32}} => `VBINOP`_instr{shape#3895}(`%X%`_shape{lanetype#18910, dim#18910, i#83166}(`F32`_lanetype, `%`_dim{i#83173}(4)), `MUL`_vbinop_) + prod {{0xFD} {`%`_u32(230):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:747.5-747.43 - prod{shape#3897 : shape, lanetype#18952 : lanetype, dim#18952 : dim, i#83263 : nat, i#83270 : nat, i#83256 : nat} {{0xFD} {`%`_u32{i#83256}(231):Bu32}} => `VBINOP`_instr{shape#3897}(`%X%`_shape{lanetype#18952, dim#18952, i#83263}(`F32`_lanetype, `%`_dim{i#83270}(4)), `DIV`_vbinop_) + prod {{0xFD} {`%`_u32(231):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `DIV`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:748.5-748.43 - prod{shape#3899 : shape, lanetype#18994 : lanetype, dim#18994 : dim, i#83360 : nat, i#83367 : nat, i#83353 : nat} {{0xFD} {`%`_u32{i#83353}(232):Bu32}} => `VBINOP`_instr{shape#3899}(`%X%`_shape{lanetype#18994, dim#18994, i#83360}(`F32`_lanetype, `%`_dim{i#83367}(4)), `MIN`_vbinop_) + prod {{0xFD} {`%`_u32(232):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:749.5-749.43 - prod{shape#3901 : shape, lanetype#19036 : lanetype, dim#19036 : dim, i#83457 : nat, i#83464 : nat, i#83450 : nat} {{0xFD} {`%`_u32{i#83450}(233):Bu32}} => `VBINOP`_instr{shape#3901}(`%X%`_shape{lanetype#19036, dim#19036, i#83457}(`F32`_lanetype, `%`_dim{i#83464}(4)), `MAX`_vbinop_) + prod {{0xFD} {`%`_u32(233):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:750.5-750.44 - prod{shape#3903 : shape, lanetype#19078 : lanetype, dim#19078 : dim, i#83554 : nat, i#83561 : nat, i#83547 : nat} {{0xFD} {`%`_u32{i#83547}(234):Bu32}} => `VBINOP`_instr{shape#3903}(`%X%`_shape{lanetype#19078, dim#19078, i#83554}(`F32`_lanetype, `%`_dim{i#83561}(4)), `PMIN`_vbinop_) + prod {{0xFD} {`%`_u32(234):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMIN`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:751.5-751.44 - prod{shape#3905 : shape, lanetype#19120 : lanetype, dim#19120 : dim, i#83651 : nat, i#83658 : nat, i#83644 : nat} {{0xFD} {`%`_u32{i#83644}(235):Bu32}} => `VBINOP`_instr{shape#3905}(`%X%`_shape{lanetype#19120, dim#19120, i#83651}(`F32`_lanetype, `%`_dim{i#83658}(4)), `PMAX`_vbinop_) + prod {{0xFD} {`%`_u32(235):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMAX`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:752.5-752.51 - prod{shape#3907 : shape, lanetype#19162 : lanetype, dim#19162 : dim, i#83748 : nat, i#83755 : nat, i#83741 : nat} {{0xFD} {`%`_u32{i#83741}(269):Bu32}} => `VBINOP`_instr{shape#3907}(`%X%`_shape{lanetype#19162, dim#19162, i#83748}(`F32`_lanetype, `%`_dim{i#83755}(4)), `RELAXED_MIN`_vbinop_) + prod {{0xFD} {`%`_u32(269):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:753.5-753.51 - prod{shape#3909 : shape, lanetype#19204 : lanetype, dim#19204 : dim, i#83845 : nat, i#83852 : nat, i#83838 : nat} {{0xFD} {`%`_u32{i#83838}(270):Bu32}} => `VBINOP`_instr{shape#3909}(`%X%`_shape{lanetype#19204, dim#19204, i#83845}(`F32`_lanetype, `%`_dim{i#83852}(4)), `RELAXED_MAX`_vbinop_) + prod {{0xFD} {`%`_u32(270):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:757.5-757.53 - prod{shape#3911 : shape, lanetype#19246 : lanetype, dim#19246 : dim, i#83942 : nat, i#83949 : nat, i#83935 : nat} {{0xFD} {`%`_u32{i#83935}(261):Bu32}} => `VTERNOP`_instr{shape#3911}(`%X%`_shape{lanetype#19246, dim#19246, i#83942}(`F32`_lanetype, `%`_dim{i#83949}(4)), `RELAXED_MADD`_vternop_) + prod {{0xFD} {`%`_u32(261):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MADD`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:758.5-758.54 - prod{shape#3913 : shape, lanetype#19288 : lanetype, dim#19288 : dim, i#84039 : nat, i#84046 : nat, i#84032 : nat} {{0xFD} {`%`_u32{i#84032}(262):Bu32}} => `VTERNOP`_instr{shape#3913}(`%X%`_shape{lanetype#19288, dim#19288, i#84039}(`F32`_lanetype, `%`_dim{i#84046}(4)), `RELAXED_NMADD`_vternop_) + prod {{0xFD} {`%`_u32(262):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_NMADD`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:762.5-762.43 - prod{shape#3915 : shape, lanetype#19330 : lanetype, dim#19330 : dim, i#84136 : nat, i#84143 : nat, i#84129 : nat} {{0xFD} {`%`_u32{i#84129}(116):Bu32}} => `VUNOP`_instr{shape#3915}(`%X%`_shape{lanetype#19330, dim#19330, i#84136}(`F64`_lanetype, `%`_dim{i#84143}(2)), `CEIL`_vunop_) + prod {{0xFD} {`%`_u32(116):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `CEIL`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:763.5-763.44 - prod{shape#3917 : shape, lanetype#19372 : lanetype, dim#19372 : dim, i#84233 : nat, i#84240 : nat, i#84226 : nat} {{0xFD} {`%`_u32{i#84226}(117):Bu32}} => `VUNOP`_instr{shape#3917}(`%X%`_shape{lanetype#19372, dim#19372, i#84233}(`F64`_lanetype, `%`_dim{i#84240}(2)), `FLOOR`_vunop_) + prod {{0xFD} {`%`_u32(117):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `FLOOR`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:764.5-764.44 - prod{shape#3919 : shape, lanetype#19414 : lanetype, dim#19414 : dim, i#84330 : nat, i#84337 : nat, i#84323 : nat} {{0xFD} {`%`_u32{i#84323}(122):Bu32}} => `VUNOP`_instr{shape#3919}(`%X%`_shape{lanetype#19414, dim#19414, i#84330}(`F64`_lanetype, `%`_dim{i#84337}(2)), `TRUNC`_vunop_) + prod {{0xFD} {`%`_u32(122):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:765.5-765.46 - prod{shape#3921 : shape, lanetype#19456 : lanetype, dim#19456 : dim, i#84427 : nat, i#84434 : nat, i#84420 : nat} {{0xFD} {`%`_u32{i#84420}(148):Bu32}} => `VUNOP`_instr{shape#3921}(`%X%`_shape{lanetype#19456, dim#19456, i#84427}(`F64`_lanetype, `%`_dim{i#84434}(2)), `NEAREST`_vunop_) + prod {{0xFD} {`%`_u32(148):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEAREST`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:766.5-766.42 - prod{shape#3923 : shape, lanetype#19498 : lanetype, dim#19498 : dim, i#84524 : nat, i#84531 : nat, i#84517 : nat} {{0xFD} {`%`_u32{i#84517}(236):Bu32}} => `VUNOP`_instr{shape#3923}(`%X%`_shape{lanetype#19498, dim#19498, i#84524}(`F64`_lanetype, `%`_dim{i#84531}(2)), `ABS`_vunop_) + prod {{0xFD} {`%`_u32(236):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:767.5-767.42 - prod{shape#3925 : shape, lanetype#19540 : lanetype, dim#19540 : dim, i#84621 : nat, i#84628 : nat, i#84614 : nat} {{0xFD} {`%`_u32{i#84614}(237):Bu32}} => `VUNOP`_instr{shape#3925}(`%X%`_shape{lanetype#19540, dim#19540, i#84621}(`F64`_lanetype, `%`_dim{i#84628}(2)), `NEG`_vunop_) + prod {{0xFD} {`%`_u32(237):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:768.5-768.43 - prod{shape#3927 : shape, lanetype#19582 : lanetype, dim#19582 : dim, i#84718 : nat, i#84725 : nat, i#84711 : nat} {{0xFD} {`%`_u32{i#84711}(239):Bu32}} => `VUNOP`_instr{shape#3927}(`%X%`_shape{lanetype#19582, dim#19582, i#84718}(`F64`_lanetype, `%`_dim{i#84725}(2)), `SQRT`_vunop_) + prod {{0xFD} {`%`_u32(239):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SQRT`_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:772.5-772.43 - prod{shape#3929 : shape, lanetype#19624 : lanetype, dim#19624 : dim, i#84815 : nat, i#84822 : nat, i#84808 : nat} {{0xFD} {`%`_u32{i#84808}(240):Bu32}} => `VBINOP`_instr{shape#3929}(`%X%`_shape{lanetype#19624, dim#19624, i#84815}(`F64`_lanetype, `%`_dim{i#84822}(2)), `ADD`_vbinop_) + prod {{0xFD} {`%`_u32(240):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:773.5-773.43 - prod{shape#3931 : shape, lanetype#19666 : lanetype, dim#19666 : dim, i#84912 : nat, i#84919 : nat, i#84905 : nat} {{0xFD} {`%`_u32{i#84905}(241):Bu32}} => `VBINOP`_instr{shape#3931}(`%X%`_shape{lanetype#19666, dim#19666, i#84912}(`F64`_lanetype, `%`_dim{i#84919}(2)), `SUB`_vbinop_) + prod {{0xFD} {`%`_u32(241):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:774.5-774.43 - prod{shape#3933 : shape, lanetype#19708 : lanetype, dim#19708 : dim, i#85009 : nat, i#85016 : nat, i#85002 : nat} {{0xFD} {`%`_u32{i#85002}(242):Bu32}} => `VBINOP`_instr{shape#3933}(`%X%`_shape{lanetype#19708, dim#19708, i#85009}(`F64`_lanetype, `%`_dim{i#85016}(2)), `MUL`_vbinop_) + prod {{0xFD} {`%`_u32(242):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:775.5-775.43 - prod{shape#3935 : shape, lanetype#19750 : lanetype, dim#19750 : dim, i#85106 : nat, i#85113 : nat, i#85099 : nat} {{0xFD} {`%`_u32{i#85099}(243):Bu32}} => `VBINOP`_instr{shape#3935}(`%X%`_shape{lanetype#19750, dim#19750, i#85106}(`F64`_lanetype, `%`_dim{i#85113}(2)), `DIV`_vbinop_) + prod {{0xFD} {`%`_u32(243):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DIV`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:776.5-776.43 - prod{shape#3937 : shape, lanetype#19792 : lanetype, dim#19792 : dim, i#85203 : nat, i#85210 : nat, i#85196 : nat} {{0xFD} {`%`_u32{i#85196}(244):Bu32}} => `VBINOP`_instr{shape#3937}(`%X%`_shape{lanetype#19792, dim#19792, i#85203}(`F64`_lanetype, `%`_dim{i#85210}(2)), `MIN`_vbinop_) + prod {{0xFD} {`%`_u32(244):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:777.5-777.43 - prod{shape#3939 : shape, lanetype#19834 : lanetype, dim#19834 : dim, i#85300 : nat, i#85307 : nat, i#85293 : nat} {{0xFD} {`%`_u32{i#85293}(245):Bu32}} => `VBINOP`_instr{shape#3939}(`%X%`_shape{lanetype#19834, dim#19834, i#85300}(`F64`_lanetype, `%`_dim{i#85307}(2)), `MAX`_vbinop_) + prod {{0xFD} {`%`_u32(245):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:778.5-778.44 - prod{shape#3941 : shape, lanetype#19876 : lanetype, dim#19876 : dim, i#85397 : nat, i#85404 : nat, i#85390 : nat} {{0xFD} {`%`_u32{i#85390}(246):Bu32}} => `VBINOP`_instr{shape#3941}(`%X%`_shape{lanetype#19876, dim#19876, i#85397}(`F64`_lanetype, `%`_dim{i#85404}(2)), `PMIN`_vbinop_) + prod {{0xFD} {`%`_u32(246):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMIN`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:779.5-779.44 - prod{shape#3943 : shape, lanetype#19918 : lanetype, dim#19918 : dim, i#85494 : nat, i#85501 : nat, i#85487 : nat} {{0xFD} {`%`_u32{i#85487}(247):Bu32}} => `VBINOP`_instr{shape#3943}(`%X%`_shape{lanetype#19918, dim#19918, i#85494}(`F64`_lanetype, `%`_dim{i#85501}(2)), `PMAX`_vbinop_) + prod {{0xFD} {`%`_u32(247):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMAX`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:780.5-780.51 - prod{shape#3945 : shape, lanetype#19960 : lanetype, dim#19960 : dim, i#85591 : nat, i#85598 : nat, i#85584 : nat} {{0xFD} {`%`_u32{i#85584}(271):Bu32}} => `VBINOP`_instr{shape#3945}(`%X%`_shape{lanetype#19960, dim#19960, i#85591}(`F64`_lanetype, `%`_dim{i#85598}(2)), `RELAXED_MIN`_vbinop_) + prod {{0xFD} {`%`_u32(271):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:781.5-781.51 - prod{shape#3947 : shape, lanetype#20002 : lanetype, dim#20002 : dim, i#85688 : nat, i#85695 : nat, i#85681 : nat} {{0xFD} {`%`_u32{i#85681}(272):Bu32}} => `VBINOP`_instr{shape#3947}(`%X%`_shape{lanetype#20002, dim#20002, i#85688}(`F64`_lanetype, `%`_dim{i#85695}(2)), `RELAXED_MAX`_vbinop_) + prod {{0xFD} {`%`_u32(272):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:785.5-785.53 - prod{shape#3949 : shape, lanetype#20044 : lanetype, dim#20044 : dim, i#85785 : nat, i#85792 : nat, i#85778 : nat} {{0xFD} {`%`_u32{i#85778}(263):Bu32}} => `VTERNOP`_instr{shape#3949}(`%X%`_shape{lanetype#20044, dim#20044, i#85785}(`F64`_lanetype, `%`_dim{i#85792}(2)), `RELAXED_MADD`_vternop_) + prod {{0xFD} {`%`_u32(263):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MADD`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:786.5-786.54 - prod{shape#3951 : shape, lanetype#20086 : lanetype, dim#20086 : dim, i#85882 : nat, i#85889 : nat, i#85875 : nat} {{0xFD} {`%`_u32{i#85875}(264):Bu32}} => `VTERNOP`_instr{shape#3951}(`%X%`_shape{lanetype#20086, dim#20086, i#85882}(`F64`_lanetype, `%`_dim{i#85889}(2)), `RELAXED_NMADD`_vternop_) + prod {{0xFD} {`%`_u32(264):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_NMADD`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:787.5-787.59 - prod{shape#3953 : shape, lanetype#20128 : lanetype, dim#20128 : dim, i#85979 : nat, i#85986 : nat, i#85972 : nat} {{0xFD} {`%`_u32{i#85972}(265):Bu32}} => `VTERNOP`_instr{shape#3953}(`%X%`_shape{lanetype#20128, dim#20128, i#85979}(`I8`_lanetype, `%`_dim{i#85986}(16)), `RELAXED_LANESELECT`_vternop_) + prod {{0xFD} {`%`_u32(265):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:788.5-788.59 - prod{shape#3955 : shape, lanetype#20155 : lanetype, dim#20155 : dim, i#86061 : nat, i#86068 : nat, i#86054 : nat} {{0xFD} {`%`_u32{i#86054}(266):Bu32}} => `VTERNOP`_instr{shape#3955}(`%X%`_shape{lanetype#20155, dim#20155, i#86061}(`I16`_lanetype, `%`_dim{i#86068}(8)), `RELAXED_LANESELECT`_vternop_) + prod {{0xFD} {`%`_u32(266):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:789.5-789.59 - prod{shape#3957 : shape, lanetype#20182 : lanetype, dim#20182 : dim, i#86143 : nat, i#86150 : nat, i#86136 : nat} {{0xFD} {`%`_u32{i#86136}(267):Bu32}} => `VTERNOP`_instr{shape#3957}(`%X%`_shape{lanetype#20182, dim#20182, i#86143}(`I32`_lanetype, `%`_dim{i#86150}(4)), `RELAXED_LANESELECT`_vternop_) + prod {{0xFD} {`%`_u32(267):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:790.5-790.59 - prod{shape#3959 : shape, lanetype#20209 : lanetype, dim#20209 : dim, i#86225 : nat, i#86232 : nat, i#86218 : nat} {{0xFD} {`%`_u32{i#86218}(268):Bu32}} => `VTERNOP`_instr{shape#3959}(`%X%`_shape{lanetype#20209, dim#20209, i#86225}(`I64`_lanetype, `%`_dim{i#86232}(2)), `RELAXED_LANESELECT`_vternop_) + prod {{0xFD} {`%`_u32(268):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:794.5-794.61 - prod{shape_1#31 : shape, shape_2#31 : shape, lanetype#20236 : lanetype, dim#20236 : dim, i#86307 : nat, i#86314 : nat, lanetype#20248 : lanetype, dim#20248 : dim, i#86319 : nat, i#86326 : nat, zero#159 : zero, i#86300 : nat} {{0xFD} {`%`_u32{i#86300}(94):Bu32}} => `VCVTOP`_instr{shape_1#31, shape_2#31}(`%X%`_shape{lanetype#20236, dim#20236, i#86307}(`F32`_lanetype, `%`_dim{i#86314}(4)), `%X%`_shape{lanetype#20248, dim#20248, i#86319}(`F64`_lanetype, `%`_dim{i#86326}(2)), `DEMOTE`_vcvtop__{zero#159}(`ZERO`_zero)) + prod {{0xFD} {`%`_u32(94):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DEMOTE`_vcvtop__(`ZERO`_zero)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:795.5-795.61 - prod{shape_1#33 : shape, shape_2#33 : shape, lanetype#20501 : lanetype, dim#20501 : dim, i#86777 : nat, i#86784 : nat, lanetype#20513 : lanetype, dim#20513 : dim, i#86789 : nat, i#86796 : nat, i#86770 : nat} {{0xFD} {`%`_u32{i#86770}(95):Bu32}} => `VCVTOP`_instr{shape_1#33, shape_2#33}(`%X%`_shape{lanetype#20501, dim#20501, i#86777}(`F64`_lanetype, `%`_dim{i#86784}(2)), `%X%`_shape{lanetype#20513, dim#20513, i#86789}(`F32`_lanetype, `%`_dim{i#86796}(4)), `PROMOTELOW`_vcvtop__) + prod {{0xFD} {`%`_u32(95):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:796.5-796.62 - prod{shape_1#35 : shape, shape_2#35 : shape, lanetype#20766 : lanetype, dim#20766 : dim, i#87247 : nat, i#87254 : nat, lanetype#20778 : lanetype, dim#20778 : dim, i#87259 : nat, i#87266 : nat, sx#15127 : sx, `zero?#135` : zero?, i#87240 : nat} {{0xFD} {`%`_u32{i#87240}(248):Bu32}} => `VCVTOP`_instr{shape_1#35, shape_2#35}(`%X%`_shape{lanetype#20766, dim#20766, i#87247}(`I32`_lanetype, `%`_dim{i#87254}(4)), `%X%`_shape{lanetype#20778, dim#20778, i#87259}(`F32`_lanetype, `%`_dim{i#87266}(4)), `TRUNC_SAT`_vcvtop__{sx#15127, `zero?#135`}(`S`_sx, ?())) + prod {{0xFD} {`%`_u32(248):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?())) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:797.5-797.62 - prod{shape_1#37 : shape, shape_2#37 : shape, lanetype#20941 : lanetype, dim#20941 : dim, i#87567 : nat, i#87574 : nat, lanetype#20953 : lanetype, dim#20953 : dim, i#87579 : nat, i#87586 : nat, sx#15191 : sx, `zero?#199` : zero?, i#87560 : nat} {{0xFD} {`%`_u32{i#87560}(249):Bu32}} => `VCVTOP`_instr{shape_1#37, shape_2#37}(`%X%`_shape{lanetype#20941, dim#20941, i#87567}(`I32`_lanetype, `%`_dim{i#87574}(4)), `%X%`_shape{lanetype#20953, dim#20953, i#87579}(`F32`_lanetype, `%`_dim{i#87586}(4)), `TRUNC_SAT`_vcvtop__{sx#15191, `zero?#199`}(`U`_sx, ?())) + prod {{0xFD} {`%`_u32(249):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?())) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:798.5-798.60 - prod{shape_1#39 : shape, shape_2#39 : shape, lanetype#21116 : lanetype, dim#21116 : dim, i#87887 : nat, i#87894 : nat, lanetype#21128 : lanetype, dim#21128 : dim, i#87899 : nat, i#87906 : nat, `half?#39` : half?, sx#15225 : sx, i#87880 : nat} {{0xFD} {`%`_u32{i#87880}(250):Bu32}} => `VCVTOP`_instr{shape_1#39, shape_2#39}(`%X%`_shape{lanetype#21116, dim#21116, i#87887}(`F32`_lanetype, `%`_dim{i#87894}(4)), `%X%`_shape{lanetype#21128, dim#21128, i#87899}(`I32`_lanetype, `%`_dim{i#87906}(4)), `CONVERT`_vcvtop__{`half?#39`, sx#15225}(?(), `S`_sx)) + prod {{0xFD} {`%`_u32(250):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:799.5-799.60 - prod{shape_1#41 : shape, shape_2#41 : shape, lanetype#21321 : lanetype, dim#21321 : dim, i#88297 : nat, i#88304 : nat, lanetype#21333 : lanetype, dim#21333 : dim, i#88309 : nat, i#88316 : nat, `half?#73` : half?, sx#15259 : sx, i#88290 : nat} {{0xFD} {`%`_u32{i#88290}(251):Bu32}} => `VCVTOP`_instr{shape_1#41, shape_2#41}(`%X%`_shape{lanetype#21321, dim#21321, i#88297}(`F32`_lanetype, `%`_dim{i#88304}(4)), `%X%`_shape{lanetype#21333, dim#21333, i#88309}(`I32`_lanetype, `%`_dim{i#88316}(4)), `CONVERT`_vcvtop__{`half?#73`, sx#15259}(?(), `U`_sx)) + prod {{0xFD} {`%`_u32(251):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:800.5-800.67 - prod{shape_1#43 : shape, shape_2#43 : shape, lanetype#21526 : lanetype, dim#21526 : dim, i#88707 : nat, i#88714 : nat, lanetype#21538 : lanetype, dim#21538 : dim, i#88719 : nat, i#88726 : nat, sx#15323 : sx, `zero?#263` : zero?, i#88700 : nat} {{0xFD} {`%`_u32{i#88700}(252):Bu32}} => `VCVTOP`_instr{shape_1#43, shape_2#43}(`%X%`_shape{lanetype#21526, dim#21526, i#88707}(`I32`_lanetype, `%`_dim{i#88714}(4)), `%X%`_shape{lanetype#21538, dim#21538, i#88719}(`F64`_lanetype, `%`_dim{i#88726}(2)), `TRUNC_SAT`_vcvtop__{sx#15323, `zero?#263`}(`S`_sx, ?(`ZERO`_zero))) + prod {{0xFD} {`%`_u32(252):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:801.5-801.67 - prod{shape_1#45 : shape, shape_2#45 : shape, lanetype#21701 : lanetype, dim#21701 : dim, i#89027 : nat, i#89034 : nat, lanetype#21713 : lanetype, dim#21713 : dim, i#89039 : nat, i#89046 : nat, sx#15387 : sx, `zero?#327` : zero?, i#89020 : nat} {{0xFD} {`%`_u32{i#89020}(253):Bu32}} => `VCVTOP`_instr{shape_1#45, shape_2#45}(`%X%`_shape{lanetype#21701, dim#21701, i#89027}(`I32`_lanetype, `%`_dim{i#89034}(4)), `%X%`_shape{lanetype#21713, dim#21713, i#89039}(`F64`_lanetype, `%`_dim{i#89046}(2)), `TRUNC_SAT`_vcvtop__{sx#15387, `zero?#327`}(`U`_sx, ?(`ZERO`_zero))) + prod {{0xFD} {`%`_u32(253):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:802.5-802.64 - prod{shape_1#47 : shape, shape_2#47 : shape, lanetype#21876 : lanetype, dim#21876 : dim, i#89347 : nat, i#89354 : nat, lanetype#21888 : lanetype, dim#21888 : dim, i#89359 : nat, i#89366 : nat, `half?#107` : half?, sx#15421 : sx, i#89340 : nat} {{0xFD} {`%`_u32{i#89340}(254):Bu32}} => `VCVTOP`_instr{shape_1#47, shape_2#47}(`%X%`_shape{lanetype#21876, dim#21876, i#89347}(`F64`_lanetype, `%`_dim{i#89354}(2)), `%X%`_shape{lanetype#21888, dim#21888, i#89359}(`I32`_lanetype, `%`_dim{i#89366}(4)), `CONVERT`_vcvtop__{`half?#107`, sx#15421}(?(`LOW`_half), `S`_sx)) + prod {{0xFD} {`%`_u32(254):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:803.5-803.64 - prod{shape_1#49 : shape, shape_2#49 : shape, lanetype#22081 : lanetype, dim#22081 : dim, i#89757 : nat, i#89764 : nat, lanetype#22093 : lanetype, dim#22093 : dim, i#89769 : nat, i#89776 : nat, `half?#141` : half?, sx#15455 : sx, i#89750 : nat} {{0xFD} {`%`_u32{i#89750}(255):Bu32}} => `VCVTOP`_instr{shape_1#49, shape_2#49}(`%X%`_shape{lanetype#22081, dim#22081, i#89757}(`F64`_lanetype, `%`_dim{i#89764}(2)), `%X%`_shape{lanetype#22093, dim#22093, i#89769}(`I32`_lanetype, `%`_dim{i#89776}(4)), `CONVERT`_vcvtop__{`half?#141`, sx#15455}(?(`LOW`_half), `U`_sx)) + prod {{0xFD} {`%`_u32(255):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:804.5-804.66 - prod{shape_1#51 : shape, shape_2#51 : shape, lanetype#22286 : lanetype, dim#22286 : dim, i#90167 : nat, i#90174 : nat, lanetype#22298 : lanetype, dim#22298 : dim, i#90179 : nat, i#90186 : nat, sx#15519 : sx, `zero?#391` : zero?, i#90160 : nat} {{0xFD} {`%`_u32{i#90160}(257):Bu32}} => `VCVTOP`_instr{shape_1#51, shape_2#51}(`%X%`_shape{lanetype#22286, dim#22286, i#90167}(`I32`_lanetype, `%`_dim{i#90174}(4)), `%X%`_shape{lanetype#22298, dim#22298, i#90179}(`F32`_lanetype, `%`_dim{i#90186}(4)), `RELAXED_TRUNC`_vcvtop__{sx#15519, `zero?#391`}(`S`_sx, ?())) + prod {{0xFD} {`%`_u32(257):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?())) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:805.5-805.66 - prod{shape_1#53 : shape, shape_2#53 : shape, lanetype#22461 : lanetype, dim#22461 : dim, i#90487 : nat, i#90494 : nat, lanetype#22473 : lanetype, dim#22473 : dim, i#90499 : nat, i#90506 : nat, sx#15583 : sx, `zero?#455` : zero?, i#90480 : nat} {{0xFD} {`%`_u32{i#90480}(258):Bu32}} => `VCVTOP`_instr{shape_1#53, shape_2#53}(`%X%`_shape{lanetype#22461, dim#22461, i#90487}(`I32`_lanetype, `%`_dim{i#90494}(4)), `%X%`_shape{lanetype#22473, dim#22473, i#90499}(`F32`_lanetype, `%`_dim{i#90506}(4)), `RELAXED_TRUNC`_vcvtop__{sx#15583, `zero?#455`}(`U`_sx, ?())) + prod {{0xFD} {`%`_u32(258):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?())) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:806.5-806.71 - prod{shape_1#55 : shape, shape_2#55 : shape, lanetype#22636 : lanetype, dim#22636 : dim, i#90807 : nat, i#90814 : nat, lanetype#22648 : lanetype, dim#22648 : dim, i#90819 : nat, i#90826 : nat, sx#15647 : sx, `zero?#519` : zero?, i#90800 : nat} {{0xFD} {`%`_u32{i#90800}(259):Bu32}} => `VCVTOP`_instr{shape_1#55, shape_2#55}(`%X%`_shape{lanetype#22636, dim#22636, i#90807}(`I32`_lanetype, `%`_dim{i#90814}(4)), `%X%`_shape{lanetype#22648, dim#22648, i#90819}(`F64`_lanetype, `%`_dim{i#90826}(2)), `RELAXED_TRUNC`_vcvtop__{sx#15647, `zero?#519`}(`S`_sx, ?(`ZERO`_zero))) + prod {{0xFD} {`%`_u32(259):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:807.5-807.71 - prod{shape_1#57 : shape, shape_2#57 : shape, lanetype#22811 : lanetype, dim#22811 : dim, i#91127 : nat, i#91134 : nat, lanetype#22823 : lanetype, dim#22823 : dim, i#91139 : nat, i#91146 : nat, sx#15711 : sx, `zero?#583` : zero?, i#91120 : nat} {{0xFD} {`%`_u32{i#91120}(260):Bu32}} => `VCVTOP`_instr{shape_1#57, shape_2#57}(`%X%`_shape{lanetype#22811, dim#22811, i#91127}(`I32`_lanetype, `%`_dim{i#91134}(4)), `%X%`_shape{lanetype#22823, dim#22823, i#91139}(`F64`_lanetype, `%`_dim{i#91146}(2)), `RELAXED_TRUNC`_vcvtop__{sx#15711, `zero?#583`}(`U`_sx, ?(`ZERO`_zero))) + prod {{0xFD} {`%`_u32(260):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero))) } ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec @@ -120241,7 +95492,7 @@ grammar Bexpr : expr ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bsection_(N : N, syntax en, grammar BX : en*) : en* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`en*` : en*, i#91425 : nat, i#91448 : nat, len : nat} {{`%`_byte{i#91425}(N):Bbyte} {`%`_u32{i#91448}(len):Bu32} {en*{en <- `en*`}:BX}} => en*{en <- `en*`} + prod{`en*` : en*, len : nat} {{`%`_byte(N):Bbyte} {`%`_u32(len):Bu32} {en*{en <- `en*`}:BX}} => en*{en <- `en*`} -- if (len = 0) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec prod eps => [] @@ -120259,7 +95510,7 @@ grammar Bcustomsec : () ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btype : type ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{rectype#1727 : rectype, qt : rectype} qt:Brectype => `TYPE`_type{rectype#1727}(qt) + prod{qt : rectype} qt:Brectype => `TYPE`_type(qt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btypesec : type* @@ -120269,7 +95520,7 @@ grammar Btypesec : type* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bimport : import ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{name#6185 : name, externtype#247 : externtype, nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {nm_2:Bname} {xt:Bexterntype}} => `IMPORT`_import{name#6185, externtype#247}(nm_1, nm_2, xt) + prod{nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {nm_2:Bname} {xt:Bexterntype}} => `IMPORT`_import(nm_1, nm_2, xt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bimportsec : import* @@ -120284,10 +95535,10 @@ grammar Bfuncsec : typeidx* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btable : table ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{tabletype#1130 : tabletype, expr#4835 : expr, tt : tabletype, heaptype#1729 : heaptype, ht : heaptype, addrtype#1433 : addrtype, limits#1433 : limits, reftype#3999 : reftype, at : addrtype, lim : limits, `null?#1675` : null?, heaptype#1741 : heaptype} tt:Btabletype => `TABLE`_table{tabletype#1130, expr#4835}(tt, [`REF.NULL`_instr{heaptype#1729}(ht)]) - -- if (tt = `%%%`_tabletype{addrtype#1433, limits#1433, reftype#3999}(at, lim, `REF`_reftype{`null?#1675`, heaptype#1741}(`NULL`_null?{}, ht))) + prod{tt : tabletype, ht : heaptype, at : addrtype, lim : limits} tt:Btabletype => `TABLE`_table(tt, [`REF.NULL`_instr(ht)]) + -- if (tt = `%%%`_tabletype(at, lim, `REF`_reftype(`NULL`_null?{}, ht))) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{tabletype#1142 : tabletype, expr#4847 : expr, tt : tabletype, e : expr} {{0x40} {0x00} {tt:Btabletype} {e:Bexpr}} => `TABLE`_table{tabletype#1142, expr#4847}(tt, e) + prod{tt : tabletype, e : expr} {{0x40} {0x00} {tt:Btabletype} {e:Bexpr}} => `TABLE`_table(tt, e) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btablesec : table* @@ -120297,7 +95548,7 @@ grammar Btablesec : table* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bmem : mem ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{memtype#734 : memtype, mt : memtype} mt:Bmemtype => `MEMORY`_mem{memtype#734}(mt) + prod{mt : memtype} mt:Bmemtype => `MEMORY`_mem(mt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bmemsec : mem* @@ -120307,7 +95558,7 @@ grammar Bmemsec : mem* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bglobal : global ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{globaltype#2285 : globaltype, expr#4883 : expr, gt : globaltype, e : expr} {{gt:Bglobaltype} {e:Bexpr}} => `GLOBAL`_global{globaltype#2285, expr#4883}(gt, e) + prod{gt : globaltype, e : expr} {{gt:Bglobaltype} {e:Bexpr}} => `GLOBAL`_global(gt, e) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bglobalsec : global* @@ -120317,7 +95568,7 @@ grammar Bglobalsec : global* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bexport : export ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{name#6238 : name, externidx#5797 : externidx, nm : name, xx : externidx} {{nm:Bname} {xx:Bexternidx}} => `EXPORT`_export{name#6238, externidx#5797}(nm, xx) + prod{nm : name, xx : externidx} {{nm:Bname} {xx:Bexternidx}} => `EXPORT`_export(nm, xx) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bexportsec : export* @@ -120327,7 +95578,7 @@ grammar Bexportsec : export* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bstart : start* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{funcidx#3179 : funcidx, x : idx} x:Bfuncidx => [`START`_start{funcidx#3179}(x)] + prod{x : idx} x:Bfuncidx => [`START`_start(x)] ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec syntax startopt = start* @@ -120340,26 +95591,26 @@ grammar Bstartsec : start? ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Belemkind : reftype ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`null?#1687` : null?, heaptype#1753 : heaptype} 0x00 => `REF`_reftype{`null?#1687`, heaptype#1753}(?(`NULL`_null), `FUNC`_heaptype) + prod 0x00 => `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Belem : elem ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{reftype#4023 : reftype, `expr*#3307` : expr*, elemmode#3307 : elemmode, `null?#1699` : null?, heaptype#1765 : heaptype, `funcidx#3213*` : funcidx*, `y*` : idx*, tableidx#144 : tableidx, expr#4909 : expr, i#91655 : nat, e_o : expr, i#91592 : nat} {{`%`_u32{i#91592}(0):Bu32} {e_o:Bexpr} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem{reftype#4023, `expr*#3307`, elemmode#3307}(`REF`_reftype{`null?#1699`, heaptype#1765}(?(), `FUNC`_heaptype), [`REF.FUNC`_instr{funcidx#3213}(y)*{funcidx#3213 <- `funcidx#3213*`, y <- `y*`}], `ACTIVE`_elemmode{tableidx#144, expr#4909}(`%`_tableidx{i#91655}(0), e_o)) + prod{`y*` : idx*, e_o : expr} {{`%`_u32(0):Bu32} {e_o:Bexpr} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem(`REF`_reftype(?(), `FUNC`_heaptype), [`REF.FUNC`_instr(y)*{y <- `y*`}], `ACTIVE`_elemmode(`%`_tableidx(0), e_o)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{reftype#4035 : reftype, `expr*#3319` : expr*, elemmode#3319 : elemmode, rt : reftype, `funcidx#3215*` : funcidx*, `y*` : idx*, i#91678 : nat} {{`%`_u32{i#91678}(1):Bu32} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem{reftype#4035, `expr*#3319`, elemmode#3319}(rt, [`REF.FUNC`_instr{funcidx#3215}(y)*{funcidx#3215 <- `funcidx#3215*`, y <- `y*`}], `PASSIVE`_elemmode) + prod{rt : reftype, `y*` : idx*} {{`%`_u32(1):Bu32} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `PASSIVE`_elemmode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{reftype#4047 : reftype, `expr*#3331` : expr*, elemmode#3331 : elemmode, rt : reftype, `funcidx#3217*` : funcidx*, `y*` : idx*, tableidx#146 : tableidx, expr#4911 : expr, x : idx, e : expr, i#91742 : nat} {{`%`_u32{i#91742}(2):Bu32} {x:Btableidx} {e:Bexpr} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem{reftype#4047, `expr*#3331`, elemmode#3331}(rt, [`REF.FUNC`_instr{funcidx#3217}(y)*{funcidx#3217 <- `funcidx#3217*`, y <- `y*`}], `ACTIVE`_elemmode{tableidx#146, expr#4911}(x, e)) + prod{rt : reftype, `y*` : idx*, x : idx, e : expr} {{`%`_u32(2):Bu32} {x:Btableidx} {e:Bexpr} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `ACTIVE`_elemmode(x, e)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{reftype#4059 : reftype, `expr*#3343` : expr*, elemmode#3343 : elemmode, rt : reftype, `funcidx#3219*` : funcidx*, `y*` : idx*, i#91837 : nat} {{`%`_u32{i#91837}(3):Bu32} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem{reftype#4059, `expr*#3343`, elemmode#3343}(rt, [`REF.FUNC`_instr{funcidx#3219}(y)*{funcidx#3219 <- `funcidx#3219*`, y <- `y*`}], `DECLARE`_elemmode) + prod{rt : reftype, `y*` : idx*} {{`%`_u32(3):Bu32} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `DECLARE`_elemmode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{reftype#4071 : reftype, `expr*#3355` : expr*, elemmode#3355 : elemmode, `null?#1747` : null?, heaptype#1813 : heaptype, `e*` : expr*, tableidx#148 : tableidx, expr#4913 : expr, i#91925 : nat, e_O : expr, i#91901 : nat} {{`%`_u32{i#91901}(4):Bu32} {e_O:Bexpr} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem{reftype#4071, `expr*#3355`, elemmode#3355}(`REF`_reftype{`null?#1747`, heaptype#1813}(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#148, expr#4913}(`%`_tableidx{i#91925}(0), e_O)) + prod{`e*` : expr*, e_O : expr} {{`%`_u32(4):Bu32} {e_O:Bexpr} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem(`REF`_reftype(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode(`%`_tableidx(0), e_O)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{reftype#4083 : reftype, `expr*#3367` : expr*, elemmode#3367 : elemmode, rt : reftype, `e*` : expr*, i#91948 : nat} {{`%`_u32{i#91948}(5):Bu32} {rt:Breftype} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem{reftype#4083, `expr*#3367`, elemmode#3367}(rt, e*{e <- `e*`}, `PASSIVE`_elemmode) + prod{rt : reftype, `e*` : expr*} {{`%`_u32(5):Bu32} {rt:Breftype} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem(rt, e*{e <- `e*`}, `PASSIVE`_elemmode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{reftype#4095 : reftype, `expr*#3379` : expr*, elemmode#3379 : elemmode, `null?#1771` : null?, heaptype#1837 : heaptype, `e*` : expr*, tableidx#150 : tableidx, expr#4915 : expr, x : idx, e_O : expr, i#91973 : nat} {{`%`_u32{i#91973}(6):Bu32} {x:Btableidx} {e_O:Bexpr} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem{reftype#4095, `expr*#3379`, elemmode#3379}(`REF`_reftype{`null?#1771`, heaptype#1837}(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#150, expr#4915}(x, e_O)) + prod{`e*` : expr*, x : idx, e_O : expr} {{`%`_u32(6):Bu32} {x:Btableidx} {e_O:Bexpr} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem(`REF`_reftype(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode(x, e_O)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{reftype#4107 : reftype, `expr*#3391` : expr*, elemmode#3391 : elemmode, rt : reftype, `e*` : expr*, i#92029 : nat} {{`%`_u32{i#92029}(7):Bu32} {rt:Breftype} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem{reftype#4107, `expr*#3391`, elemmode#3391}(rt, e*{e <- `e*`}, `DECLARE`_elemmode) + prod{rt : reftype, `e*` : expr*} {{`%`_u32(7):Bu32} {rt:Breftype} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem(rt, e*{e <- `e*`}, `DECLARE`_elemmode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Belemsec : elem* @@ -120372,7 +95623,7 @@ syntax code = (local*, expr) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Blocals : local* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{t : valtype, n : n, `valtype#1033*` : valtype*, i#92056 : nat} {{`%`_u32{i#92056}(n):Bu32} {t:Bvaltype}} => `LOCAL`_local{valtype#1033}(t)^n{valtype#1033 <- `valtype#1033*`} + prod{t : valtype, n : n} {{`%`_u32(n):Bu32} {t:Bvaltype}} => `LOCAL`_local(t)^n{} ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bfunc : code @@ -120383,7 +95634,7 @@ grammar Bfunc : code ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bcode : code ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{code : code, i#92081 : nat, len : nat} {{`%`_u32{i#92081}(len):Bu32} {code:Bfunc}} => code + prod{code : code, len : nat} {{`%`_u32(len):Bu32} {code:Bfunc}} => code -- if (len = 0) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec @@ -120394,11 +95645,11 @@ grammar Bcodesec : code* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bdata : data ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`byte*#2217` : byte*, datamode#2181 : datamode, `b*` : byte*, memidx#272 : memidx, expr#4917 : expr, i#92154 : nat, e : expr, i#92106 : nat} {{`%`_u32{i#92106}(0):Bu32} {e:Bexpr} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => `DATA`_data{`byte*#2217`, datamode#2181}(b*{b <- `b*`}, `ACTIVE`_datamode{memidx#272, expr#4917}(`%`_memidx{i#92154}(0), e)) + prod{`b*` : byte*, e : expr} {{`%`_u32(0):Bu32} {e:Bexpr} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => `DATA`_data(b*{b <- `b*`}, `ACTIVE`_datamode(`%`_memidx(0), e)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`byte*#2229` : byte*, datamode#2193 : datamode, `b*` : byte*, i#92177 : nat} {{`%`_u32{i#92177}(1):Bu32} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => `DATA`_data{`byte*#2229`, datamode#2193}(b*{b <- `b*`}, `PASSIVE`_datamode) + prod{`b*` : byte*} {{`%`_u32(1):Bu32} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => `DATA`_data(b*{b <- `b*`}, `PASSIVE`_datamode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`byte*#2241` : byte*, datamode#2205 : datamode, `b*` : byte*, memidx#274 : memidx, expr#4919 : expr, x : idx, e : expr, i#92226 : nat} {{`%`_u32{i#92226}(2):Bu32} {x:Bmemidx} {e:Bexpr} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => `DATA`_data{`byte*#2241`, datamode#2205}(b*{b <- `b*`}, `ACTIVE`_datamode{memidx#274, expr#4919}(x, e)) + prod{`b*` : byte*, x : idx, e : expr} {{`%`_u32(2):Bu32} {x:Bmemidx} {e:Bexpr} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => `DATA`_data(b*{b <- `b*`}, `ACTIVE`_datamode(x, e)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bdatasec : data* @@ -120408,7 +95659,7 @@ grammar Bdatasec : data* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bdatacnt : u32* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{i#92330 : nat, n : n, i#92308 : nat} `%`_u32{i#92308}(n):Bu32 => [`%`_u32{i#92330}(n)] + prod{n : n} `%`_u32(n):Bu32 => [`%`_u32(n)] ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec syntax nopt = u32* @@ -120421,7 +95672,7 @@ grammar Bdatacntsec : u32? ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btag : tag ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{tagtype#336 : tagtype, jt : tagtype} jt:Btagtype => `TAG`_tag{tagtype#336}(jt) + prod{jt : tagtype} jt:Btagtype => `TAG`_tag(jt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btagsec : tag* @@ -120441,17 +95692,17 @@ grammar Bversion : () ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bmodule : module ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`type*#143` : type*, `import*#143` : import*, `tag*#143` : tag*, `global*#167` : global*, `mem*#167` : mem*, `table*#167` : table*, `func*#143` : func*, `data*#143` : data*, `elem*#167` : elem*, `start?#143` : start?, `export*#143` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `typeidx*` : typeidx*, `i#92509?` : nat?, `n?` : n?, `expr*` : expr*, `local**` : local**, `expr#5253*` : expr*, `local*#1601*` : local**, `typeidx#2117*` : typeidx*} {Bmagic Bversion {Bcustomsec*{}} {type*{type <- `type*`}:Btypesec} {Bcustomsec*{}} {import*{import <- `import*`}:Bimportsec} {Bcustomsec*{}} {typeidx*{typeidx <- `typeidx*`}:Bfuncsec} {Bcustomsec*{}} {table*{table <- `table*`}:Btablesec} {Bcustomsec*{}} {mem*{mem <- `mem*`}:Bmemsec} {Bcustomsec*{}} {tag*{tag <- `tag*`}:Btagsec} {Bcustomsec*{}} {global*{global <- `global*`}:Bglobalsec} {Bcustomsec*{}} {export*{export <- `export*`}:Bexportsec} {Bcustomsec*{}} {start?{start <- `start?`}:Bstartsec} {Bcustomsec*{}} {elem*{elem <- `elem*`}:Belemsec} {Bcustomsec*{}} {`%`_u32{i#92509}(n)?{i#92509 <- `i#92509?`, n <- `n?`}:Bdatacntsec} {Bcustomsec*{}} {(local*{local <- `local*`}, expr)*{expr <- `expr*`, `local*` <- `local**`}:Bcodesec} {Bcustomsec*{}} {data*{data <- `data*`}:Bdatasec} {Bcustomsec*{}}} => `MODULE`_module{`type*#143`, `import*#143`, `tag*#143`, `global*#167`, `mem*#167`, `table*#167`, `func*#143`, `data*#143`, `elem*#167`, `start?#143`, `export*#143`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}) + prod{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `typeidx*` : typeidx*, `n?` : n?, `expr*` : expr*, `local**` : local**} {Bmagic Bversion {Bcustomsec*{}} {type*{type <- `type*`}:Btypesec} {Bcustomsec*{}} {import*{import <- `import*`}:Bimportsec} {Bcustomsec*{}} {typeidx*{typeidx <- `typeidx*`}:Bfuncsec} {Bcustomsec*{}} {table*{table <- `table*`}:Btablesec} {Bcustomsec*{}} {mem*{mem <- `mem*`}:Bmemsec} {Bcustomsec*{}} {tag*{tag <- `tag*`}:Btagsec} {Bcustomsec*{}} {global*{global <- `global*`}:Bglobalsec} {Bcustomsec*{}} {export*{export <- `export*`}:Bexportsec} {Bcustomsec*{}} {start?{start <- `start?`}:Bstartsec} {Bcustomsec*{}} {elem*{elem <- `elem*`}:Belemsec} {Bcustomsec*{}} {`%`_u32(n)?{n <- `n?`}:Bdatacntsec} {Bcustomsec*{}} {(local*{local <- `local*`}, expr)*{expr <- `expr*`, `local*` <- `local**`}:Bcodesec} {Bcustomsec*{}} {data*{data <- `data*`}:Bdatasec} {Bcustomsec*{}}} => `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}) -- (if (n = |data*{data <- `data*`}|))?{n <- `n?`} -- if ((n?{n <- `n?`} =/= ?()) \/ ($dataidx_funcs(func*{func <- `func*`}) = [])) - -- (if (func = `FUNC`_func{typeidx#2117, `local*#1601`, expr#5253}(typeidx, local*{local <- `local*`}, expr)))*{expr <- `expr*`, expr#5253 <- `expr#5253*`, func <- `func*`, `local*` <- `local**`, `local*#1601` <- `local*#1601*`, typeidx <- `typeidx*`, typeidx#2117 <- `typeidx#2117*`} + -- (if (func = `FUNC`_func(typeidx, local*{local <- `local*`}, expr)))*{expr <- `expr*`, func <- `func*`, `local*` <- `local**`, typeidx <- `typeidx*`} ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec grammar Tchar : char ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec - prod{i#92557 : nat, `` : nat} ``:(0x00 | ... | 0xD7FF) => `%`_char{i#92557}(``) + prod{`` : nat} ``:(0x00 | ... | 0xD7FF) => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec - prod{i#92565 : nat, `` : nat} ``:(0xE000 | ... | 0x10FFFF) => `%`_char{i#92565}(``) + prod{`` : nat} ``:(0xE000 | ... | 0x10FFFF) => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec grammar Tsource : () @@ -120476,57 +95727,57 @@ grammar TfNplain : () ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tidchar : char ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93304 : nat, `` : nat} ``:(0x30 | ... | 0x39) => `%`_char{i#93304}(``) + prod{`` : nat} ``:(0x30 | ... | 0x39) => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93312 : nat, `` : nat} ``:(0x41 | ... | 0x5A) => `%`_char{i#93312}(``) + prod{`` : nat} ``:(0x41 | ... | 0x5A) => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93320 : nat, `` : nat} ``:(0x61 | ... | 0x7A) => `%`_char{i#93320}(``) + prod{`` : nat} ``:(0x61 | ... | 0x7A) => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93328 : nat, `` : nat} ``:0x21 => `%`_char{i#93328}(``) + prod{`` : nat} ``:0x21 => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93336 : nat, `` : nat} ``:0x23 => `%`_char{i#93336}(``) + prod{`` : nat} ``:0x23 => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93344 : nat, `` : nat} ``:0x24 => `%`_char{i#93344}(``) + prod{`` : nat} ``:0x24 => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93352 : nat, `` : nat} ``:0x25 => `%`_char{i#93352}(``) + prod{`` : nat} ``:0x25 => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93360 : nat, `` : nat} ``:0x26 => `%`_char{i#93360}(``) + prod{`` : nat} ``:0x26 => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93368 : nat, `` : nat} ``:0x27 => `%`_char{i#93368}(``) + prod{`` : nat} ``:0x27 => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93376 : nat, `` : nat} ``:0x2A => `%`_char{i#93376}(``) + prod{`` : nat} ``:0x2A => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93384 : nat, `` : nat} ``:0x2B => `%`_char{i#93384}(``) + prod{`` : nat} ``:0x2B => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93392 : nat, `` : nat} ``:0x2D => `%`_char{i#93392}(``) + prod{`` : nat} ``:0x2D => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93400 : nat, `` : nat} ``:0x2E => `%`_char{i#93400}(``) + prod{`` : nat} ``:0x2E => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93408 : nat, `` : nat} ``:0x2F => `%`_char{i#93408}(``) + prod{`` : nat} ``:0x2F => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93416 : nat, `` : nat} ``:0x3A => `%`_char{i#93416}(``) + prod{`` : nat} ``:0x3A => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93424 : nat, `` : nat} ``:0x3C => `%`_char{i#93424}(``) + prod{`` : nat} ``:0x3C => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93432 : nat, `` : nat} ``:0x3D => `%`_char{i#93432}(``) + prod{`` : nat} ``:0x3D => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93440 : nat, `` : nat} ``:0x3E => `%`_char{i#93440}(``) + prod{`` : nat} ``:0x3E => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93448 : nat, `` : nat} ``:0x3F => `%`_char{i#93448}(``) + prod{`` : nat} ``:0x3F => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93456 : nat, `` : nat} ``:0x40 => `%`_char{i#93456}(``) + prod{`` : nat} ``:0x40 => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93464 : nat, `` : nat} ``:0x5C => `%`_char{i#93464}(``) + prod{`` : nat} ``:0x5C => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93472 : nat, `` : nat} ``:0x5E => `%`_char{i#93472}(``) + prod{`` : nat} ``:0x5E => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93480 : nat, `` : nat} ``:0x5F => `%`_char{i#93480}(``) + prod{`` : nat} ``:0x5F => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93488 : nat, `` : nat} ``:0x60 => `%`_char{i#93488}(``) + prod{`` : nat} ``:0x60 => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93496 : nat, `` : nat} ``:0x7C => `%`_char{i#93496}(``) + prod{`` : nat} ``:0x7C => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93504 : nat, `` : nat} ``:0x7E => `%`_char{i#93504}(``) + prod{`` : nat} ``:0x7E => `%`_char(``) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tdigit : nat @@ -120594,22 +95845,22 @@ grammar Thexnum : nat ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tstringchar : char ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{c : char, i#93014 : nat, i#93016 : nat, i#93024 : nat, i#93034 : nat} c:Tchar => c - -- if ((((c!`%`_char{i#93014}.0 >= 32) /\ (c!`%`_char{i#93016}.0 =/= 127)) /\ (c =/= `%`_char{i#93024}(34))) /\ (c =/= `%`_char{i#93034}(92))) + prod{c : char} c:Tchar => c + -- if ((((c!`%`_char.0 >= 32) /\ (c!`%`_char.0 =/= 127)) /\ (c =/= `%`_char(34))) /\ (c =/= `%`_char(92))) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93044 : nat} "\\t" => `%`_char{i#93044}(9) + prod "\\t" => `%`_char(9) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93052 : nat} "\\n" => `%`_char{i#93052}(10) + prod "\\n" => `%`_char(10) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93060 : nat} "\\r" => `%`_char{i#93060}(13) + prod "\\r" => `%`_char(13) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93068 : nat} "\\\"" => `%`_char{i#93068}(34) + prod "\\\"" => `%`_char(34) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93076 : nat} "\\'" => `%`_char{i#93076}(39) + prod "\\'" => `%`_char(39) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93084 : nat} "\\\\" => `%`_char{i#93084}(92) + prod "\\\\" => `%`_char(92) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93092 : nat, n : n} {{"\\u{"} {n:Thexnum} {"}"}} => `%`_char{i#93092}(n) + prod{n : n} {{"\\u{"} {n:Thexnum} {"}"}} => `%`_char(n) -- if ((n < 55296) \/ ((59392 <= n) /\ (n < 1114112))) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec @@ -120617,7 +95868,7 @@ grammar Tstringelem : byte* ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec prod{c : char} c:Tstringchar => $utf8([c]) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#93132 : nat, h_1 : nat, h_2 : nat} {{"\\"} {h_1:Thexdigit} {h_2:Thexdigit}} => [`%`_byte{i#93132}(((16 * h_1) + h_2))] + prod{h_1 : nat, h_2 : nat} {{"\\"} {h_1:Thexdigit} {h_2:Thexdigit}} => [`%`_byte(((16 * h_1) + h_2))] ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tstring : byte* @@ -120628,15 +95879,15 @@ grammar Tstring : byte* ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tname : name ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`char*#207` : char*, `c*` : char*, `b*` : byte*} b*{b <- `b*`}:Tstring => `%`_name{`char*#207`}(c*{c <- `c*`}) + prod{`c*` : char*, `b*` : byte*} b*{b <- `b*`}:Tstring => `%`_name(c*{c <- `c*`}) -- if (b*{b <- `b*`} = $utf8(c*{c <- `c*`})) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tid : name ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`char*#213` : char*, `c*` : char*} {{"$"} {c*{c <- `c*`}:Tidchar+{}}} => `%`_name{`char*#213`}(c*{c <- `c*`}) + prod{`c*` : char*} {{"$"} {c*{c <- `c*`}:Tidchar+{}}} => `%`_name(c*{c <- `c*`}) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`char*#225` : char*, `c*` : char*, `char*#219` : char*} {{"$"} {`%`_name{`char*#219`}(c*{c <- `c*`}):Tname}} => `%`_name{`char*#225`}(c*{c <- `c*`}) + prod{`c*` : char*} {{"$"} {`%`_name(c*{c <- `c*`}):Tname}} => `%`_name(c*{c <- `c*`}) -- if (|c*{c <- `c*`}| > 0) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec @@ -120688,14 +95939,14 @@ grammar Tblockcomment : () ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec:60.1-64.18 grammar Tblockchar : () ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec:61.5-61.47 - prod{`` : char, c : char, i#92625 : nat, i#92635 : nat} ``:c:Tchar => (``, ()).1 - -- if ((c =/= `%`_char{i#92625}(59)) /\ (c =/= `%`_char{i#92635}(40))) + prod{`` : char, c : char} ``:c:Tchar => (``, ()).1 + -- if ((c =/= `%`_char(59)) /\ (c =/= `%`_char(40))) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec:62.5-62.47 - prod{`` : (), c : char, i#92657 : nat, i#92667 : nat} ``:{{";"+{}} {c:Tchar}} => (``, ()).1 - -- if ((c =/= `%`_char{i#92657}(59)) /\ (c =/= `%`_char{i#92667}(41))) + prod{`` : (), c : char} ``:{{";"+{}} {c:Tchar}} => (``, ()).1 + -- if ((c =/= `%`_char(59)) /\ (c =/= `%`_char(41))) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec:63.5-63.47 - prod{`` : (), c : char, i#92689 : nat, i#92699 : nat} ``:{{"("+{}} {c:Tchar}} => (``, ()).1 - -- if ((c =/= `%`_char{i#92689}(59)) /\ (c =/= `%`_char{i#92699}(40))) + prod{`` : (), c : char} ``:{{"("+{}} {c:Tchar}} => (``, ()).1 + -- if ((c =/= `%`_char(59)) /\ (c =/= `%`_char(40))) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec:64.5-64.18 prod{`` : ()} ``:Tblockcomment => (``, ()).1 } @@ -120708,8 +95959,8 @@ grammar Teof : () ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec grammar Tlinechar : () ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec - prod{`` : char, c : char, i#92597 : nat, i#92599 : nat} ``:c:Tchar => (``, ()).1 - -- if ((c!`%`_char{i#92597}.0 =/= 10) /\ (c!`%`_char{i#92599}.0 =/= 13)) + prod{`` : char, c : char} ``:c:Tchar => (``, ()).1 + -- if ((c!`%`_char.0 =/= 10) /\ (c!`%`_char.0 =/= 13)) ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec grammar Tnewline : () @@ -120776,24 +96027,24 @@ grammar Tnum : nat ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar TuN(N : N) : uN(N) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#92715 : nat, n : n} n:Tnum => `%`_uN{i#92715}(n) + prod{n : n} n:Tnum => `%`_uN(n) -- if (n < (2 ^ N)) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#92723 : nat, n : n} {{"0x"} {n:Thexnum}} => `%`_uN{i#92723}(n) + prod{n : n} {{"0x"} {n:Thexnum}} => `%`_uN(n) -- if (n < (2 ^ N)) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar TsN(N : N) : sN(N) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#92739 : int, s : int, n : n, i#92731 : nat} {{s:Tsign} {`%`_uN{i#92731}(n):TuN(N)}} => `%`_sN{i#92739}((s * (n : nat <:> int))) + prod{s : int, n : n} {{s:Tsign} {`%`_uN(n):TuN(N)}} => `%`_sN((s * (n : nat <:> int))) -- if ((- ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) <= (s * (n : nat <:> int))) /\ ((s * (n : nat <:> int)) < ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar TiN(N : N) : iN(N) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#92755 : nat, n : n, i#92747 : nat} `%`_uN{i#92747}(n):TuN(N) => `%`_iN{i#92755}(n) + prod{n : n} `%`_uN(n):TuN(N) => `%`_iN(n) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{i#92771 : nat, i : sN(N), i#92769 : int} i:TsN(N) => `%`_iN{i#92771}($inv_signed_(N, i!`%`_sN{i#92769}.0)) + prod{i : sN(N)} i:TsN(N) => `%`_iN($inv_signed_(N, i!`%`_sN.0)) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec rec { @@ -120855,9 +96106,9 @@ grammar TfNmag(N : N) : fNmag(N) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec prod "inf" => `INF`_fNmag ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{m#7 : m} "nan" => `NAN`_fNmag{m#7}($canon_(N)) + prod "nan" => `NAN`_fNmag($canon_(N)) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{m#9 : m, n : n} {{"nan:0x"} {n:Thexnum}} => `NAN`_fNmag{m#9}(n) + prod{n : n} {{"nan:0x"} {n:Thexnum}} => `NAN`_fNmag(n) -- if ((1 <= n) /\ (n < (2 ^ $signif(N)))) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec @@ -120926,18 +96177,18 @@ grammar Tlist(syntax el, grammar TX : el) : el* ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec syntax idctxt = { - `TYPES`{`name?*` : name?*} name?*, - `TAGS`{`name?*` : name?*} name?*, - `GLOBALS`{`name?*` : name?*} name?*, - `MEMS`{`name?*` : name?*} name?*, - `TABLES`{`name?*` : name?*} name?*, - `FUNCS`{`name?*` : name?*} name?*, - `DATAS`{`name?*` : name?*} name?*, - `ELEMS`{`name?*` : name?*} name?*, - `LOCALS`{`name?*` : name?*} name?*, - `LABELS`{`name?*` : name?*} name?*, - `FIELDS`{`name?**` : name?**} name?**, - `TYPEDEFS`{`deftype?*` : deftype?*} deftype?* + `TYPES` name?* , + `TAGS` name?* , + `GLOBALS` name?* , + `MEMS` name?* , + `TABLES` name?* , + `FUNCS` name?* , + `DATAS` name?* , + `ELEMS` name?* , + `LOCALS` name?* , + `LABELS` name?* , + `FIELDS` name?** , + `TYPEDEFS` deftype?* } ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec @@ -120949,7 +96200,7 @@ rec { ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec:155.1-155.56 def $concat_idctxt(idctxt*) : idctxt ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec:156.1-156.29 - def $concat_idctxt{`name?*#1` : name?*, `name?*#2` : name?*, `name?*#3` : name?*, `name?*#4` : name?*, `name?*#5` : name?*, `name?*#6` : name?*, `name?*#7` : name?*, `name?*#8` : name?*, `name?*#9` : name?*, `name?*#10` : name?*, `name?**#1` : name?**, `deftype?*#1` : deftype?*}([]) = {`TYPES`{`name?*#1`} [], `TAGS`{`name?*#2`} [], `GLOBALS`{`name?*#3`} [], `MEMS`{`name?*#4`} [], `TABLES`{`name?*#5`} [], `FUNCS`{`name?*#6`} [], `DATAS`{`name?*#7`} [], `ELEMS`{`name?*#8`} [], `LOCALS`{`name?*#9`} [], `LABELS`{`name?*#10`} [], `FIELDS`{`name?**#1`} [], `TYPEDEFS`{`deftype?*#1`} []} + def $concat_idctxt([]) = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []} ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec:157.1-157.53 def $concat_idctxt{I : I, `I'*` : I*}([I] ++ I'*{I' <- `I'*`}) = I +++ $concat_idctxt(I'*{I' <- `I'*`}) } @@ -120957,96 +96208,96 @@ def $concat_idctxt(idctxt*) : idctxt ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec relation Idctxt_ok: `|-%:OK`(idctxt) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - rule _{I : I, `name?*#40` : name?*, `name?*#70` : name?*, `name?*#100` : name?*, `name?*#130` : name?*, `name?*#160` : name?*, `name?*#190` : name?*, `name?*#220` : name?*, `name?*#250` : name?*, `name?*#280` : name?*, `name?*#310` : name?*, `char*#743*` : char**, `field**` : char**, `char*#761*` : char**, `name?**#2` : name?**}: + rule _{I : I, `field**` : char**}: `|-%:OK`(I) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`TYPES`_I{`name?*#40`})) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`TAGS`_I{`name?*#70`})) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`GLOBALS`_I{`name?*#100`})) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`MEMS`_I{`name?*#130`})) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`TABLES`_I{`name?*#160`})) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`FUNCS`_I{`name?*#190`})) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`DATAS`_I{`name?*#220`})) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`ELEMS`_I{`name?*#250`})) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`LOCALS`_I{`name?*#280`})) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`LABELS`_I{`name?*#310`})) - -- (if $disjoint_(syntax name, $concatopt_(syntax name, [?(`%`_name{`char*#743`}(field*{field <- `field*`}))])))*{`char*#743` <- `char*#743*`, `field*` <- `field**`} - -- if ([?(`%`_name{`char*#761`}(field*{field <- `field*`}))*{`char*#761` <- `char*#761*`, `field*` <- `field**`}] = I.`FIELDS`_I{`name?**#2`}) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`TYPES`_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`TAGS`_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`GLOBALS`_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`MEMS`_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`TABLES`_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`FUNCS`_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`DATAS`_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`ELEMS`_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`LOCALS`_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`LABELS`_I)) + -- (if $disjoint_(syntax name, $concatopt_(syntax name, [?(`%`_name(field*{field <- `field*`}))])))*{`field*` <- `field**`} + -- if ([?(`%`_name(field*{field <- `field*`}))*{`field*` <- `field**`}] = I.`FIELDS`_I) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tidx_(ids : name?*) : idx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec prod{x : idx} x:Tu32 => x ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{x : idx, id : name, i#94485 : nat} id:Tid => x - -- if (ids[x!`%`_idx{i#94485}.0] = ?(id)) + prod{x : idx, id : name} id:Tid => x + -- if (ids[x!`%`_idx.0] = ?(id)) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Ttypeidx_(I : I) : typeidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx, `name?*#322` : name?*} ``:Tidx_(I.`TYPES`_I{`name?*#322`}) => `` + prod{`` : idx} ``:Tidx_(I.`TYPES`_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Ttagidx_(I : I) : tagidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx, `name?*#334` : name?*} ``:Tidx_(I.`TAGS`_I{`name?*#334`}) => `` + prod{`` : idx} ``:Tidx_(I.`TAGS`_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tglobalidx_(I : I) : globalidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx, `name?*#346` : name?*} ``:Tidx_(I.`GLOBALS`_I{`name?*#346`}) => `` + prod{`` : idx} ``:Tidx_(I.`GLOBALS`_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tmemidx_(I : I) : memidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx, `name?*#358` : name?*} ``:Tidx_(I.`MEMS`_I{`name?*#358`}) => `` + prod{`` : idx} ``:Tidx_(I.`MEMS`_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Ttableidx_(I : I) : tableidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx, `name?*#370` : name?*} ``:Tidx_(I.`TABLES`_I{`name?*#370`}) => `` + prod{`` : idx} ``:Tidx_(I.`TABLES`_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tfuncidx_(I : I) : funcidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx, `name?*#382` : name?*} ``:Tidx_(I.`FUNCS`_I{`name?*#382`}) => `` + prod{`` : idx} ``:Tidx_(I.`FUNCS`_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tdataidx_(I : I) : dataidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx, `name?*#394` : name?*} ``:Tidx_(I.`DATAS`_I{`name?*#394`}) => `` + prod{`` : idx} ``:Tidx_(I.`DATAS`_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Telemidx_(I : I) : elemidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx, `name?*#406` : name?*} ``:Tidx_(I.`ELEMS`_I{`name?*#406`}) => `` + prod{`` : idx} ``:Tidx_(I.`ELEMS`_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tlocalidx_(I : I) : localidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx, `name?*#418` : name?*} ``:Tidx_(I.`LOCALS`_I{`name?*#418`}) => `` + prod{`` : idx} ``:Tidx_(I.`LOCALS`_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tlabelidx_(I : I) : labelidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx, `name?*#430` : name?*} ``:Tidx_(I.`LABELS`_I{`name?*#430`}) => `` + prod{`` : idx} ``:Tidx_(I.`LABELS`_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tfieldidx__(I : I, x : idx) : fieldidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx, `name?**#14` : name?**, i#95162 : nat} ``:Tidx_(I.`FIELDS`_I{`name?**#14`}[x!`%`_idx{i#95162}.0]) => `` + prod{`` : idx} ``:Tidx_(I.`FIELDS`_I[x!`%`_idx.0]) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Texternidx_(I : I) : externidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{tagidx#27 : tagidx, x : idx} {{"("} {"tag"} {x:Ttagidx_(I)} {")"}} => `TAG`_externidx{tagidx#27}(x) + prod{x : idx} {{"("} {"tag"} {x:Ttagidx_(I)} {")"}} => `TAG`_externidx(x) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{globalidx#29 : globalidx, x : idx} {{"("} {"global"} {x:Tglobalidx_(I)} {")"}} => `GLOBAL`_externidx{globalidx#29}(x) + prod{x : idx} {{"("} {"global"} {x:Tglobalidx_(I)} {")"}} => `GLOBAL`_externidx(x) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{memidx#276 : memidx, x : idx} {{"("} {"memory"} {x:Tmemidx_(I)} {")"}} => `MEM`_externidx{memidx#276}(x) + prod{x : idx} {{"("} {"memory"} {x:Tmemidx_(I)} {")"}} => `MEM`_externidx(x) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{tableidx#152 : tableidx, x : idx} {{"("} {"table"} {x:Ttableidx_(I)} {")"}} => `TABLE`_externidx{tableidx#152}(x) + prod{x : idx} {{"("} {"table"} {x:Ttableidx_(I)} {")"}} => `TABLE`_externidx(x) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{funcidx#3381 : funcidx, x : idx} {{"("} {"func"} {x:Tfuncidx_(I)} {")"}} => `FUNC`_externidx{funcidx#3381}(x) + prod{x : idx} {{"("} {"func"} {x:Tfuncidx_(I)} {")"}} => `FUNC`_externidx(x) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tnumtype : numtype @@ -121096,7 +96347,7 @@ grammar Theaptype_(I : I) : heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec prod{ht : heaptype} ht:Tabsheaptype => ht ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{typeidx#2119 : typeidx, x : idx} x:Ttypeidx_(I) => `_IDX`_heaptype{typeidx#2119}(x) + prod{x : idx} x:Ttypeidx_(I) => `_IDX`_heaptype(x) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tnull : null @@ -121106,7 +96357,7 @@ grammar Tnull : null ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Treftype_(I : I) : reftype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`null?#1795` : null?, heaptype#1861 : heaptype, `null?` : null?, ht : heaptype} {{"("} {"ref"} {null?{null <- `null?`}:Tnull?{}} {ht:Theaptype_(I)} {")"}} => `REF`_reftype{`null?#1795`, heaptype#1861}(null?{null <- `null?`}, ht) + prod{`null?` : null?, ht : heaptype} {{"("} {"ref"} {null?{null <- `null?`}:Tnull?{}} {ht:Theaptype_(I)} {")"}} => `REF`_reftype(null?{null <- `null?`}, ht) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tvaltype_(I : I) : valtype @@ -121134,19 +96385,19 @@ grammar Tstoragetype_(I : I) : storagetype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tfieldtype_(I : I) : fieldtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`mut?#1499` : mut?, storagetype#801 : storagetype, zt : storagetype} zt:Tstoragetype_(I) => `%%`_fieldtype{`mut?#1499`, storagetype#801}(?(), zt) + prod{zt : storagetype} zt:Tstoragetype_(I) => `%%`_fieldtype(?(), zt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`mut?#1511` : mut?, storagetype#813 : storagetype, zt : storagetype} {{"("} {"mut"} {zt:Tstoragetype_(I)} {")"}} => `%%`_fieldtype{`mut?#1511`, storagetype#813}(?(`MUT`_mut), zt) + prod{zt : storagetype} {{"("} {"mut"} {zt:Tstoragetype_(I)} {")"}} => `%%`_fieldtype(?(`MUT`_mut), zt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tfield_(I : I) : (fieldtype, name?) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{ft : fieldtype, `char*#969` : char*, `id?` : char?, `char*#963` : char*} {{"("} {"field"} {?(`%`_name{`char*#963`}(lift(id?{id <- `id?`}))):Tid?{}} {ft:Tfieldtype_(I)} {")"}} => (ft, ?(`%`_name{`char*#969`}(lift(id?{id <- `id?`})))) + prod{ft : fieldtype, `id?` : char?} {{"("} {"field"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {ft:Tfieldtype_(I)} {")"}} => (ft, ?(`%`_name(lift(id?{id <- `id?`})))) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tparam_(I : I) : (valtype, name?) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{t : valtype, `char*#981` : char*, `id?` : char?, `char*#975` : char*} {{"("} {"param"} {?(`%`_name{`char*#975`}(lift(id?{id <- `id?`}))):Tid?{}} {t:Tvaltype_(I)} {")"}} => (t, ?(`%`_name{`char*#981`}(lift(id?{id <- `id?`})))) + prod{t : valtype, `id?` : char?} {{"("} {"param"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {t:Tvaltype_(I)} {")"}} => (t, ?(`%`_name(lift(id?{id <- `id?`})))) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tresult_(I : I) : valtype @@ -121156,11 +96407,11 @@ grammar Tresult_(I : I) : valtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tcomptype_(I : I) : (comptype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`X*#13361` : fieldtype*, `ft*` : fieldtype*, `name?*#431` : name?*, `name?*#432` : name?*, `name?*#433` : name?*, `name?*#434` : name?*, `name?*#435` : name?*, `name?*#436` : name?*, `name?*#437` : name?*, `name?*#438` : name?*, `name?*#439` : name?*, `name?*#440` : name?*, `name?**#15` : name?**, `char*#1005*` : char**, `id?*` : char?*, `deftype?*#2` : deftype?*, `char*#987*` : char**} {{"("} {"struct"} {(ft, ?(`%`_name{`char*#987`}(lift(id?{id <- `id?`}))))*{`char*#987` <- `char*#987*`, ft <- `ft*`, `id?` <- `id?*`}:Tlist(syntax (fieldtype, name?), grammar Tfield_(I))} {")"}} => (`STRUCT`_comptype(`%`_list{`X*#13361`}(ft*{ft <- `ft*`})), {`TYPES`{`name?*#431`} [], `TAGS`{`name?*#432`} [], `GLOBALS`{`name?*#433`} [], `MEMS`{`name?*#434`} [], `TABLES`{`name?*#435`} [], `FUNCS`{`name?*#436`} [], `DATAS`{`name?*#437`} [], `ELEMS`{`name?*#438`} [], `LOCALS`{`name?*#439`} [], `LABELS`{`name?*#440`} [], `FIELDS`{`name?**#15`} [?(`%`_name{`char*#1005`}(lift(id?{id <- `id?`})))*{`char*#1005` <- `char*#1005*`, `id?` <- `id?*`}], `TYPEDEFS`{`deftype?*#2`} []}) + prod{`ft*` : fieldtype*, `id?*` : char?*} {{"("} {"struct"} {(ft, ?(`%`_name(lift(id?{id <- `id?`}))))*{ft <- `ft*`, `id?` <- `id?*`}:Tlist(syntax (fieldtype, name?), grammar Tfield_(I))} {")"}} => (`STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}], `TYPEDEFS` []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{fieldtype#61 : fieldtype, ft : fieldtype, `name?*#441` : name?*, `name?*#442` : name?*, `name?*#443` : name?*, `name?*#444` : name?*, `name?*#445` : name?*, `name?*#446` : name?*, `name?*#447` : name?*, `name?*#448` : name?*, `name?*#449` : name?*, `name?*#450` : name?*, `name?**#16` : name?**, `deftype?*#3` : deftype?*} {{"("} {"array"} {ft:Tfieldtype_(I)} {")"}} => (`ARRAY`_comptype{fieldtype#61}(ft), {`TYPES`{`name?*#441`} [], `TAGS`{`name?*#442`} [], `GLOBALS`{`name?*#443`} [], `MEMS`{`name?*#444`} [], `TABLES`{`name?*#445`} [], `FUNCS`{`name?*#446`} [], `DATAS`{`name?*#447`} [], `ELEMS`{`name?*#448`} [], `LOCALS`{`name?*#449`} [], `LABELS`{`name?*#450`} [], `FIELDS`{`name?**#16`} [], `TYPEDEFS`{`deftype?*#3`} []}) + prod{ft : fieldtype} {{"("} {"array"} {ft:Tfieldtype_(I)} {")"}} => (`ARRAY`_comptype(ft), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{resulttype#3032 : resulttype, `X*#13376` : valtype*, `t_1*` : valtype*, `X*#13389` : valtype*, `t_2*` : valtype*, `name?*#451` : name?*, `name?*#452` : name?*, `name?*#453` : name?*, `name?*#454` : name?*, `name?*#455` : name?*, `name?*#456` : name?*, `name?*#457` : name?*, `name?*#458` : name?*, `name?*#459` : name?*, `name?*#460` : name?*, `name?**#17` : name?**, `deftype?*#4` : deftype?*, `char*#1011*` : char**, `id?*` : char?*} {{"("} {"func"} {(t_1, ?(`%`_name{`char*#1011`}(lift(id?{id <- `id?`}))))*{`char*#1011` <- `char*#1011*`, `id?` <- `id?*`, t_1 <- `t_1*`}:Tlist(syntax (valtype, name?), grammar Tparam_(I))} {t_2*{t_2 <- `t_2*`}:Tlist(syntax valtype, grammar Tresult_(I))} {")"}} => (`FUNC%->%`_comptype{resulttype#3032}(`%`_resulttype{`X*#13376`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13389`}(t_2*{t_2 <- `t_2*`})), {`TYPES`{`name?*#451`} [], `TAGS`{`name?*#452`} [], `GLOBALS`{`name?*#453`} [], `MEMS`{`name?*#454`} [], `TABLES`{`name?*#455`} [], `FUNCS`{`name?*#456`} [], `DATAS`{`name?*#457`} [], `ELEMS`{`name?*#458`} [], `LOCALS`{`name?*#459`} [], `LABELS`{`name?*#460`} [], `FIELDS`{`name?**#17`} [], `TYPEDEFS`{`deftype?*#4`} []}) + prod{`t_1*` : valtype*, `t_2*` : valtype*, `id?*` : char?*} {{"("} {"func"} {(t_1, ?(`%`_name(lift(id?{id <- `id?`}))))*{`id?` <- `id?*`, t_1 <- `t_1*`}:Tlist(syntax (valtype, name?), grammar Tparam_(I))} {t_2*{t_2 <- `t_2*`}:Tlist(syntax valtype, grammar Tresult_(I))} {")"}} => (`FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tfinal : final @@ -121170,17 +96421,17 @@ grammar Tfinal : final ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tsubtype_(I : I) : (subtype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`final?#523` : final?, `typeuse*#523` : typeuse*, comptype#523 : comptype, `fin?` : final?, `typeidx#2121*` : typeidx*, `x*` : idx*, ct : comptype, I' : I} {{"("} {"sub"} {fin?{fin <- `fin?`}:Tfinal?{}} {x*{x <- `x*`}:Tlist(syntax typeidx, grammar Ttypeidx_(I))} {(ct, I'):Tcomptype_(I)} {")"}} => (`SUB`_subtype{`final?#523`, `typeuse*#523`, comptype#523}(fin?{fin <- `fin?`}, `_IDX`_typeuse{typeidx#2121}(x)*{typeidx#2121 <- `typeidx#2121*`, x <- `x*`}, ct), I') + prod{`fin?` : final?, `x*` : idx*, ct : comptype, I' : I} {{"("} {"sub"} {fin?{fin <- `fin?`}:Tfinal?{}} {x*{x <- `x*`}:Tlist(syntax typeidx, grammar Ttypeidx_(I))} {(ct, I'):Tcomptype_(I)} {")"}} => (`SUB`_subtype(fin?{fin <- `fin?`}, `_IDX`_typeuse(x)*{x <- `x*`}, ct), I') ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Ttypedef_(I : I) : (subtype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{st : subtype, I' : I, `name?*#461` : name?*, `char*#1023` : char*, `id?` : char?, `name?*#462` : name?*, `name?*#463` : name?*, `name?*#464` : name?*, `name?*#465` : name?*, `name?*#466` : name?*, `name?*#467` : name?*, `name?*#468` : name?*, `name?*#469` : name?*, `name?*#470` : name?*, `name?**#18` : name?**, `deftype?*#5` : deftype?*, `char*#1017` : char*} {{"("} {"type"} {?(`%`_name{`char*#1017`}(lift(id?{id <- `id?`}))):Tid?{}} {(st, I'):Tsubtype_(I)} {")"}} => (st, I' +++ {`TYPES`{`name?*#461`} [?(`%`_name{`char*#1023`}(lift(id?{id <- `id?`})))], `TAGS`{`name?*#462`} [], `GLOBALS`{`name?*#463`} [], `MEMS`{`name?*#464`} [], `TABLES`{`name?*#465`} [], `FUNCS`{`name?*#466`} [], `DATAS`{`name?*#467`} [], `ELEMS`{`name?*#468`} [], `LOCALS`{`name?*#469`} [], `LABELS`{`name?*#470`} [], `FIELDS`{`name?**#18`} [], `TYPEDEFS`{`deftype?*#5`} []}) + prod{st : subtype, I' : I, `id?` : char?} {{"("} {"type"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(st, I'):Tsubtype_(I)} {")"}} => (st, I' +++ {`TYPES` [?(`%`_name(lift(id?{id <- `id?`})))], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Trectype_(I : I) : (rectype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`X*#13404` : subtype*, `st*` : subtype*, `I'*` : I*} {{"("} {"rec"} {(st, I')*{I' <- `I'*`, st <- `st*`}:Tlist(syntax (subtype, idctxt), grammar Ttypedef_(I))} {")"}} => (`REC`_rectype(`%`_list{`X*#13404`}(st*{st <- `st*`})), $concat_idctxt(I'*{I' <- `I'*`})) + prod{`st*` : subtype*, `I'*` : I*} {{"("} {"rec"} {(st, I')*{I' <- `I'*`, st <- `st*`}:Tlist(syntax (subtype, idctxt), grammar Ttypedef_(I))} {")"}} => (`REC`_rectype(`%`_list(st*{st <- `st*`})), $concat_idctxt(I'*{I' <- `I'*`})) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Taddrtype : addrtype @@ -121192,88 +96443,88 @@ grammar Taddrtype : addrtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tlimits : limits ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{u64#571 : u64, `u64?#545` : u64?, i#95590 : nat, n : n, i#95568 : nat} `%`_u64{i#95568}(n):Tu64 => `[%..%]`_limits{u64#571, `u64?#545`}(`%`_u64{i#95590}(n), ?()) + prod{n : n} `%`_u64(n):Tu64 => `[%..%]`_limits(`%`_u64(n), ?()) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{u64#583 : u64, `u64?#557` : u64?, i#95666 : nat, n : n, i#95688 : nat, m : m, i#95615 : nat, i#95642 : nat} {{`%`_u64{i#95615}(n):Tu64} {`%`_u64{i#95642}(m):Tu64}} => `[%..%]`_limits{u64#583, `u64?#557`}(`%`_u64{i#95666}(n), ?(`%`_u64{i#95688}(m))) + prod{n : n, m : m} {{`%`_u64(n):Tu64} {`%`_u64(m):Tu64}} => `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m))) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Ttypeuse_(I : I) : (typeidx, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{x : idx, I' : I, `deftype?*#11` : deftype?*, i#95899 : nat, rectype#1807 : rectype, n#1503 : n, `X*#13419` : subtype*, `st*` : subtype*, i : n, `final?#577` : final?, `typeuse*#577` : typeuse*, comptype#577 : comptype, resulttype#3035 : resulttype, `X*#13434` : valtype*, `t_1*` : valtype*, `X*#13447` : valtype*, `t_2*` : valtype*, `name?*#521` : name?*, `name?*#522` : name?*, `name?*#523` : name?*, `name?*#524` : name?*, `name?*#525` : name?*, `name?*#526` : name?*, `name?*#527` : name?*, `name?*#528` : name?*, `name?*#529` : name?*, `char*#1113*` : char**, `name?*#530` : name?*, `name?**#24` : name?**, `deftype?*#12` : deftype?*} {{"("} {"type"} {x:Ttypeidx_(I)} {")"}} => (x, I') - -- if (I.`TYPEDEFS`_I{`deftype?*#11`}[x!`%`_idx{i#95899}.0] = ?(`_DEF`_deftype{rectype#1807, n#1503}(`REC`_rectype(`%`_list{`X*#13419`}(st*{st <- `st*`})), i))) - -- if (st*{st <- `st*`}[i] = `SUB`_subtype{`final?#577`, `typeuse*#577`, comptype#577}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3035}(`%`_resulttype{`X*#13434`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13447`}(t_2*{t_2 <- `t_2*`})))) - -- if (I' = {`TYPES`{`name?*#521`} [], `TAGS`{`name?*#522`} [], `GLOBALS`{`name?*#523`} [], `MEMS`{`name?*#524`} [], `TABLES`{`name?*#525`} [], `FUNCS`{`name?*#526`} [], `DATAS`{`name?*#527`} [], `ELEMS`{`name?*#528`} [], `LOCALS`{`name?*#529`} ?(`%`_name{`char*#1113`}([]))^|t_1*{t_1 <- `t_1*`}|{`char*#1113` <- `char*#1113*`}, `LABELS`{`name?*#530`} [], `FIELDS`{`name?**#24`} [], `TYPEDEFS`{`deftype?*#12`} []}) + prod{x : idx, I' : I, `st*` : subtype*, i : n, `t_1*` : valtype*, `t_2*` : valtype*} {{"("} {"type"} {x:Ttypeidx_(I)} {")"}} => (x, I') + -- if (I.`TYPEDEFS`_I[x!`%`_idx.0] = ?(`_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i))) + -- if (st*{st <- `st*`}[i] = `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))) + -- if (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))^|t_1*{t_1 <- `t_1*`}|{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{x : idx, I' : I, `char*#1119*` : char**, `id?*` : char?*, `t_1*` : valtype*, `t_2*` : valtype*, `deftype?*#13` : deftype?*, i#95968 : nat, rectype#1819 : rectype, n#1515 : n, `X*#13462` : subtype*, `st*` : subtype*, i : n, `final?#601` : final?, `typeuse*#601` : typeuse*, comptype#601 : comptype, resulttype#3038 : resulttype, `X*#13477` : valtype*, `X*#13490` : valtype*, `name?*#531` : name?*, `name?*#532` : name?*, `name?*#533` : name?*, `name?*#534` : name?*, `name?*#535` : name?*, `name?*#536` : name?*, `name?*#537` : name?*, `name?*#538` : name?*, `name?*#539` : name?*, `char*#1137*` : char**, `name?*#540` : name?*, `name?**#25` : name?**, `deftype?*#14` : deftype?*} {{"("} {"type"} {x:Ttypeidx_(I)} {")"} {(t_1, ?(`%`_name{`char*#1119`}(lift(id?{id <- `id?`}))))*{`char*#1119` <- `char*#1119*`, `id?` <- `id?*`, t_1 <- `t_1*`}:Tparam_(I)*{}} {t_2*{t_2 <- `t_2*`}:Tresult_(I)*{}}} => (x, I') - -- if (I.`TYPEDEFS`_I{`deftype?*#13`}[x!`%`_idx{i#95968}.0] = ?(`_DEF`_deftype{rectype#1819, n#1515}(`REC`_rectype(`%`_list{`X*#13462`}(st*{st <- `st*`})), i))) - -- if (st*{st <- `st*`}[i] = `SUB`_subtype{`final?#601`, `typeuse*#601`, comptype#601}(?(`FINAL`_final), [], `FUNC%->%`_comptype{resulttype#3038}(`%`_resulttype{`X*#13477`}(t_1*{t_1 <- `t_1*`}), `%`_resulttype{`X*#13490`}(t_2*{t_2 <- `t_2*`})))) - -- if (I' = {`TYPES`{`name?*#531`} [], `TAGS`{`name?*#532`} [], `GLOBALS`{`name?*#533`} [], `MEMS`{`name?*#534`} [], `TABLES`{`name?*#535`} [], `FUNCS`{`name?*#536`} [], `DATAS`{`name?*#537`} [], `ELEMS`{`name?*#538`} [], `LOCALS`{`name?*#539`} ?(`%`_name{`char*#1137`}(lift(id?{id <- `id?`})))*{`char*#1137` <- `char*#1137*`, `id?` <- `id?*`}, `LABELS`{`name?*#540`} [], `FIELDS`{`name?**#25`} [], `TYPEDEFS`{`deftype?*#14`} []}) + prod{x : idx, I' : I, `id?*` : char?*, `t_1*` : valtype*, `t_2*` : valtype*, `st*` : subtype*, i : n} {{"("} {"type"} {x:Ttypeidx_(I)} {")"} {(t_1, ?(`%`_name(lift(id?{id <- `id?`}))))*{`id?` <- `id?*`, t_1 <- `t_1*`}:Tparam_(I)*{}} {t_2*{t_2 <- `t_2*`}:Tresult_(I)*{}}} => (x, I') + -- if (I.`TYPEDEFS`_I[x!`%`_idx.0] = ?(`_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i))) + -- if (st*{st <- `st*`}[i] = `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))) + -- if (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) -- Idctxt_ok: `|-%:OK`(I') ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Ttagtype_(I : I) : tagtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{typeidx#2123 : typeidx, x : idx, I' : I} (x, I'):Ttypeuse_(I) => `_IDX`_tagtype{typeidx#2123}(x) + prod{x : idx, I' : I} (x, I'):Ttypeuse_(I) => `_IDX`_tagtype(x) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tglobaltype_(I : I) : globaltype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`mut?#1561` : mut?, valtype#1167 : valtype, t : valtype} t:Tvaltype_(I) => `%%`_globaltype{`mut?#1561`, valtype#1167}(?(), t) + prod{t : valtype} t:Tvaltype_(I) => `%%`_globaltype(?(), t) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`mut?#1573` : mut?, valtype#1179 : valtype, t : valtype} {{"("} {"mut"} {t:Tvaltype_(I)} {")"}} => `%%`_globaltype{`mut?#1573`, valtype#1179}(?(`MUT`_mut), t) + prod{t : valtype} {{"("} {"mut"} {t:Tvaltype_(I)} {")"}} => `%%`_globaltype(?(`MUT`_mut), t) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tmemtype_(I : I) : memtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{addrtype#1483 : addrtype, limits#1483 : limits, at : addrtype, lim : limits} {{at:Taddrtype} {lim:Tlimits}} => `%%PAGE`_memtype{addrtype#1483, limits#1483}(at, lim) + prod{at : addrtype, lim : limits} {{at:Taddrtype} {lim:Tlimits}} => `%%PAGE`_memtype(at, lim) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Ttabletype_(I : I) : tabletype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{addrtype#1495 : addrtype, limits#1495 : limits, reftype#4291 : reftype, at : addrtype, lim : limits, rt : reftype} {{at:Taddrtype} {lim:Tlimits} {rt:Treftype_(I)}} => `%%%`_tabletype{addrtype#1495, limits#1495, reftype#4291}(at, lim, rt) + prod{at : addrtype, lim : limits, rt : reftype} {{at:Taddrtype} {lim:Tlimits} {rt:Treftype_(I)}} => `%%%`_tabletype(at, lim, rt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Texterntype_(I : I) : (externtype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{tagtype#436 : tagtype, jt : tagtype, `name?*#471` : name?*, `name?*#472` : name?*, `char*#1035` : char*, `id?` : char?, `name?*#473` : name?*, `name?*#474` : name?*, `name?*#475` : name?*, `name?*#476` : name?*, `name?*#477` : name?*, `name?*#478` : name?*, `name?*#479` : name?*, `name?*#480` : name?*, `name?**#19` : name?**, `deftype?*#6` : deftype?*, `char*#1029` : char*} {{"("} {"tag"} {?(`%`_name{`char*#1029`}(lift(id?{id <- `id?`}))):Tid?{}} {jt:Ttagtype_(I)} {")"}} => (`TAG`_externtype{tagtype#436}(jt), {`TYPES`{`name?*#471`} [], `TAGS`{`name?*#472`} [?(`%`_name{`char*#1035`}(lift(id?{id <- `id?`})))], `GLOBALS`{`name?*#473`} [], `MEMS`{`name?*#474`} [], `TABLES`{`name?*#475`} [], `FUNCS`{`name?*#476`} [], `DATAS`{`name?*#477`} [], `ELEMS`{`name?*#478`} [], `LOCALS`{`name?*#479`} [], `LABELS`{`name?*#480`} [], `FIELDS`{`name?**#19`} [], `TYPEDEFS`{`deftype?*#6`} []}) + prod{jt : tagtype, `id?` : char?} {{"("} {"tag"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {jt:Ttagtype_(I)} {")"}} => (`TAG`_externtype(jt), {`TYPES` [], `TAGS` [?(`%`_name(lift(id?{id <- `id?`})))], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{globaltype#2397 : globaltype, gt : globaltype, `name?*#481` : name?*, `name?*#482` : name?*, `name?*#483` : name?*, `char*#1047` : char*, `id?` : char?, `name?*#484` : name?*, `name?*#485` : name?*, `name?*#486` : name?*, `name?*#487` : name?*, `name?*#488` : name?*, `name?*#489` : name?*, `name?*#490` : name?*, `name?**#20` : name?**, `deftype?*#7` : deftype?*, `char*#1041` : char*} {{"("} {"global"} {?(`%`_name{`char*#1041`}(lift(id?{id <- `id?`}))):Tid?{}} {gt:Tglobaltype_(I)} {")"}} => (`GLOBAL`_externtype{globaltype#2397}(gt), {`TYPES`{`name?*#481`} [], `TAGS`{`name?*#482`} [], `GLOBALS`{`name?*#483`} [?(`%`_name{`char*#1047`}(lift(id?{id <- `id?`})))], `MEMS`{`name?*#484`} [], `TABLES`{`name?*#485`} [], `FUNCS`{`name?*#486`} [], `DATAS`{`name?*#487`} [], `ELEMS`{`name?*#488`} [], `LOCALS`{`name?*#489`} [], `LABELS`{`name?*#490`} [], `FIELDS`{`name?**#20`} [], `TYPEDEFS`{`deftype?*#7`} []}) + prod{gt : globaltype, `id?` : char?} {{"("} {"global"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {gt:Tglobaltype_(I)} {")"}} => (`GLOBAL`_externtype(gt), {`TYPES` [], `TAGS` [], `GLOBALS` [?(`%`_name(lift(id?{id <- `id?`})))], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{memtype#858 : memtype, mt : memtype, `name?*#491` : name?*, `name?*#492` : name?*, `name?*#493` : name?*, `name?*#494` : name?*, `char*#1059` : char*, `id?` : char?, `name?*#495` : name?*, `name?*#496` : name?*, `name?*#497` : name?*, `name?*#498` : name?*, `name?*#499` : name?*, `name?*#500` : name?*, `name?**#21` : name?**, `deftype?*#8` : deftype?*, `char*#1053` : char*} {{"("} {"memory"} {?(`%`_name{`char*#1053`}(lift(id?{id <- `id?`}))):Tid?{}} {mt:Tmemtype_(I)} {")"}} => (`MEM`_externtype{memtype#858}(mt), {`TYPES`{`name?*#491`} [], `TAGS`{`name?*#492`} [], `GLOBALS`{`name?*#493`} [], `MEMS`{`name?*#494`} [?(`%`_name{`char*#1059`}(lift(id?{id <- `id?`})))], `TABLES`{`name?*#495`} [], `FUNCS`{`name?*#496`} [], `DATAS`{`name?*#497`} [], `ELEMS`{`name?*#498`} [], `LOCALS`{`name?*#499`} [], `LABELS`{`name?*#500`} [], `FIELDS`{`name?**#21`} [], `TYPEDEFS`{`deftype?*#8`} []}) + prod{mt : memtype, `id?` : char?} {{"("} {"memory"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {mt:Tmemtype_(I)} {")"}} => (`MEM`_externtype(mt), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{tabletype#1280 : tabletype, tt : tabletype, `name?*#501` : name?*, `name?*#502` : name?*, `name?*#503` : name?*, `name?*#504` : name?*, `name?*#505` : name?*, `char*#1071` : char*, `id?` : char?, `name?*#506` : name?*, `name?*#507` : name?*, `name?*#508` : name?*, `name?*#509` : name?*, `name?*#510` : name?*, `name?**#22` : name?**, `deftype?*#9` : deftype?*, `char*#1065` : char*} {{"("} {"table"} {?(`%`_name{`char*#1065`}(lift(id?{id <- `id?`}))):Tid?{}} {tt:Ttabletype_(I)} {")"}} => (`TABLE`_externtype{tabletype#1280}(tt), {`TYPES`{`name?*#501`} [], `TAGS`{`name?*#502`} [], `GLOBALS`{`name?*#503`} [], `MEMS`{`name?*#504`} [], `TABLES`{`name?*#505`} [?(`%`_name{`char*#1071`}(lift(id?{id <- `id?`})))], `FUNCS`{`name?*#506`} [], `DATAS`{`name?*#507`} [], `ELEMS`{`name?*#508`} [], `LOCALS`{`name?*#509`} [], `LABELS`{`name?*#510`} [], `FIELDS`{`name?**#22`} [], `TYPEDEFS`{`deftype?*#9`} []}) + prod{tt : tabletype, `id?` : char?} {{"("} {"table"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {tt:Ttabletype_(I)} {")"}} => (`TABLE`_externtype(tt), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [?(`%`_name(lift(id?{id <- `id?`})))], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{typeuse#77 : typeuse, typeidx#2125 : typeidx, x : idx, `name?*#511` : name?*, `name?*#512` : name?*, `name?*#513` : name?*, `name?*#514` : name?*, `name?*#515` : name?*, `name?*#516` : name?*, `char*#1083` : char*, `id?` : char?, `name?*#517` : name?*, `name?*#518` : name?*, `name?*#519` : name?*, `name?*#520` : name?*, `name?**#23` : name?**, `deftype?*#10` : deftype?*, `char*#1077` : char*, I' : I} {{"("} {"func"} {?(`%`_name{`char*#1077`}(lift(id?{id <- `id?`}))):Tid?{}} {(x, I'):Ttypeuse_(I)} {")"}} => (`FUNC`_externtype{typeuse#77}(`_IDX`_typeuse{typeidx#2125}(x)), {`TYPES`{`name?*#511`} [], `TAGS`{`name?*#512`} [], `GLOBALS`{`name?*#513`} [], `MEMS`{`name?*#514`} [], `TABLES`{`name?*#515`} [], `FUNCS`{`name?*#516`} [?(`%`_name{`char*#1083`}(lift(id?{id <- `id?`})))], `DATAS`{`name?*#517`} [], `ELEMS`{`name?*#518`} [], `LOCALS`{`name?*#519`} [], `LABELS`{`name?*#520`} [], `FIELDS`{`name?**#23`} [], `TYPEDEFS`{`deftype?*#10`} []}) + prod{x : idx, `id?` : char?, I' : I} {{"("} {"func"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(x, I'):Ttypeuse_(I)} {")"}} => (`FUNC`_externtype(`_IDX`_typeuse(x)), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [?(`%`_name(lift(id?{id <- `id?`})))], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tlabel_(I : I) : (name?, I) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`name?*#541` : name?*, `name?*#542` : name?*, `name?*#543` : name?*, `name?*#544` : name?*, `name?*#545` : name?*, `name?*#546` : name?*, `name?*#547` : name?*, `name?*#548` : name?*, `name?*#549` : name?*, `name?*#550` : name?*, `name?**#26` : name?**, `deftype?*#17` : deftype?*} eps => (?(), {`TYPES`{`name?*#541`} [], `TAGS`{`name?*#542`} [], `GLOBALS`{`name?*#543`} [], `MEMS`{`name?*#544`} [], `TABLES`{`name?*#545`} [], `FUNCS`{`name?*#546`} [], `DATAS`{`name?*#547`} [], `ELEMS`{`name?*#548`} [], `LOCALS`{`name?*#549`} [], `LABELS`{`name?*#550`} [], `FIELDS`{`name?**#26`} [], `TYPEDEFS`{`deftype?*#17`} []} +++ I) + prod eps => (?(), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []} +++ I) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{id : name, `name?*#551` : name?*, `name?*#552` : name?*, `name?*#553` : name?*, `name?*#554` : name?*, `name?*#555` : name?*, `name?*#556` : name?*, `name?*#557` : name?*, `name?*#558` : name?*, `name?*#559` : name?*, `name?*#560` : name?*, `name?**#27` : name?**, `deftype?*#18` : deftype?*, `name?*#566` : name?*} id:Tid => (?(id), {`TYPES`{`name?*#551`} [], `TAGS`{`name?*#552`} [], `GLOBALS`{`name?*#553`} [], `MEMS`{`name?*#554`} [], `TABLES`{`name?*#555`} [], `FUNCS`{`name?*#556`} [], `DATAS`{`name?*#557`} [], `ELEMS`{`name?*#558`} [], `LOCALS`{`name?*#559`} [], `LABELS`{`name?*#560`} [?(id)], `FIELDS`{`name?**#27`} [], `TYPEDEFS`{`deftype?*#18`} []} +++ I) - -- if ~ (?(id) <- I.`LABELS`_I{`name?*#566`}) + prod{id : name} id:Tid => (?(id), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []} +++ I) + -- if ~ (?(id) <- I.`LABELS`_I) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{id : name, `name?*#567` : name?*, `name?*#568` : name?*, `name?*#569` : name?*, `name?*#570` : name?*, `name?*#571` : name?*, `name?*#572` : name?*, `name?*#573` : name?*, `name?*#574` : name?*, `name?*#575` : name?*, `name?*#576` : name?*, `name?**#28` : name?**, `deftype?*#19` : deftype?*, `name?*#577` : name?*, x : idx, i#96077 : nat, `name?*#578` : name?*, i#96087 : nat} id:Tid => (?(id), {`TYPES`{`name?*#567`} [], `TAGS`{`name?*#568`} [], `GLOBALS`{`name?*#569`} [], `MEMS`{`name?*#570`} [], `TABLES`{`name?*#571`} [], `FUNCS`{`name?*#572`} [], `DATAS`{`name?*#573`} [], `ELEMS`{`name?*#574`} [], `LOCALS`{`name?*#575`} [], `LABELS`{`name?*#576`} [?(id)], `FIELDS`{`name?**#28`} [], `TYPEDEFS`{`deftype?*#19`} []} +++ I[`LABELS`_I{`name?*#577`}[x!`%`_idx{i#96077}.0] = ?()]) - -- if (?(id) = I.`LABELS`_I{`name?*#578`}[x!`%`_idx{i#96087}.0]) + prod{id : name, x : idx} id:Tid => (?(id), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []} +++ I[`LABELS`_I[x!`%`_idx.0] = ?()]) + -- if (?(id) = I.`LABELS`_I[x!`%`_idx.0]) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tblocktype_(I : I) : blocktype ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`valtype?#11` : valtype?, `t?` : valtype?} t?{t <- `t?`}:Tresult_(I)?{} => `_RESULT`_blocktype{`valtype?#11`}(t?{t <- `t?`}) + prod{`t?` : valtype?} t?{t <- `t?`}:Tresult_(I)?{} => `_RESULT`_blocktype(t?{t <- `t?`}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2127 : typeidx, x : idx, I' : I, `name?*#579` : name?*, `name?*#580` : name?*, `name?*#581` : name?*, `name?*#582` : name?*, `name?*#583` : name?*, `name?*#584` : name?*, `name?*#585` : name?*, `name?*#586` : name?*, `name?*#587` : name?*, `char*#1231*` : char**, `name?*#588` : name?*, `name?**#29` : name?**, `deftype?*#20` : deftype?*} (x, I'):Ttypeuse_(I) => `_IDX`_blocktype{typeidx#2127}(x) - -- if (I' = {`TYPES`{`name?*#579`} [], `TAGS`{`name?*#580`} [], `GLOBALS`{`name?*#581`} [], `MEMS`{`name?*#582`} [], `TABLES`{`name?*#583`} [], `FUNCS`{`name?*#584`} [], `DATAS`{`name?*#585`} [], `ELEMS`{`name?*#586`} [], `LOCALS`{`name?*#587`} ?(`%`_name{`char*#1231`}([]))*{`char*#1231` <- `char*#1231*`}, `LABELS`{`name?*#588`} [], `FIELDS`{`name?**#29`} [], `TYPEDEFS`{`deftype?*#20`} []}) + prod{x : idx, I' : I} (x, I'):Ttypeuse_(I) => `_IDX`_blocktype(x) + -- if (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tcatch_(I : I) : catch ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{tagidx#29 : tagidx, labelidx#123 : labelidx, x : idx, l : labelidx} {{"("} {"catch"} {x:Ttagidx_(I)} {l:Tlabelidx_(I)} {")"}} => `CATCH`_catch{tagidx#29, labelidx#123}(x, l) + prod{x : idx, l : labelidx} {{"("} {"catch"} {x:Ttagidx_(I)} {l:Tlabelidx_(I)} {")"}} => `CATCH`_catch(x, l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{tagidx#31 : tagidx, labelidx#125 : labelidx, x : idx, l : labelidx} {{"("} {"catch_ref"} {x:Ttagidx_(I)} {l:Tlabelidx_(I)} {")"}} => `CATCH_REF`_catch{tagidx#31, labelidx#125}(x, l) + prod{x : idx, l : labelidx} {{"("} {"catch_ref"} {x:Ttagidx_(I)} {l:Tlabelidx_(I)} {")"}} => `CATCH_REF`_catch(x, l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{labelidx#127 : labelidx, l : labelidx} {{"("} {"catch_all"} {l:Tlabelidx_(I)} {")"}} => `CATCH_ALL`_catch{labelidx#127}(l) + prod{l : labelidx} {{"("} {"catch_all"} {l:Tlabelidx_(I)} {")"}} => `CATCH_ALL`_catch(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{labelidx#129 : labelidx, l : labelidx} {{"("} {"catch_all_ref"} {l:Tlabelidx_(I)} {")"}} => `CATCH_ALL_REF`_catch{labelidx#129}(l) + prod{l : labelidx} {{"("} {"catch_all_ref"} {l:Tlabelidx_(I)} {")"}} => `CATCH_ALL_REF`_catch(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tfoldedinstr_(I : I) : instr* @@ -121286,22 +96537,22 @@ grammar Tlaneidx : laneidx ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Talign_(N : N) : u64 ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i#97737 : nat, m : m, i#97711 : nat, n : n} {{"align="} {`%`_u64{i#97711}(m):Tu64}} => `%`_u64{i#97737}(m) + prod{m : m, n : n} {{"align="} {`%`_u64(m):Tu64}} => `%`_u64(m) -- if (m = (2 ^ n)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i#97761 : nat} eps => `%`_u64{i#97761}(N) + prod eps => `%`_u64(N) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Toffset : u64 ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i#97664 : nat, n : n, i#97638 : nat} {{"offset="} {`%`_u64{i#97638}(n):Tu64}} => `%`_u64{i#97664}(n) + prod{n : n} {{"offset="} {`%`_u64(n):Tu64}} => `%`_u64(n) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i#97686 : nat} eps => `%`_u64{i#97686}(0) + prod eps => `%`_u64(0) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tmemarg_(N : N) : memarg ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{u32#47 : u32, i#97591 : nat, n : n, u64#609 : u64, i#97613 : nat, m : m, i#97540 : nat, i#97567 : nat} {{`%`_u64{i#97540}(n):Toffset} {`%`_u64{i#97567}(m):Talign_(N)}} => {`ALIGN`{u32#47} `%`_u32{i#97591}(n), `OFFSET`{u64#609} `%`_u64{i#97613}(m)} + prod{n : n, m : m} {{`%`_u64(n):Toffset} {`%`_u64(m):Talign_(N)}} => {`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)} ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tplaininstr_(I : I) : instr @@ -121312,173 +96563,173 @@ grammar Tplaininstr_(I : I) : instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod "drop" => `DROP`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`valtype*?#15` : valtype*?, `t*?` : valtype*?} {{"select"} {t*{t <- `t*`}:Tresult_(I)*{}?{`t*` <- `t*?`}}} => `SELECT`_instr{`valtype*?#15`}(t*{t <- `t*`}?{`t*` <- `t*?`}) + prod{`t*?` : valtype*?} {{"select"} {t*{t <- `t*`}:Tresult_(I)*{}?{`t*` <- `t*?`}}} => `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{labelidx#131 : labelidx, l : labelidx} {{"br"} {l:Tlabelidx_(I)}} => `BR`_instr{labelidx#131}(l) + prod{l : labelidx} {{"br"} {l:Tlabelidx_(I)}} => `BR`_instr(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{labelidx#133 : labelidx, l : labelidx} {{"br_if"} {l:Tlabelidx_(I)}} => `BR_IF`_instr{labelidx#133}(l) + prod{l : labelidx} {{"br_if"} {l:Tlabelidx_(I)}} => `BR_IF`_instr(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`labelidx*#56` : labelidx*, labelidx#135 : labelidx, `l*` : labelidx*, l' : labelidx} {{"br_table"} {l*{l <- `l*`}:Tlabelidx_(I)*{}} {l':Tlabelidx_(I)}} => `BR_TABLE`_instr{`labelidx*#56`, labelidx#135}(l*{l <- `l*`}, l') + prod{`l*` : labelidx*, l' : labelidx} {{"br_table"} {l*{l <- `l*`}:Tlabelidx_(I)*{}} {l':Tlabelidx_(I)}} => `BR_TABLE`_instr(l*{l <- `l*`}, l') ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{labelidx#137 : labelidx, l : labelidx} {{"br_on_null"} {l:Tlabelidx_(I)}} => `BR_ON_NULL`_instr{labelidx#137}(l) + prod{l : labelidx} {{"br_on_null"} {l:Tlabelidx_(I)}} => `BR_ON_NULL`_instr(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{labelidx#139 : labelidx, l : labelidx} {{"br_on_non_null"} {l:Tlabelidx_(I)}} => `BR_ON_NON_NULL`_instr{labelidx#139}(l) + prod{l : labelidx} {{"br_on_non_null"} {l:Tlabelidx_(I)}} => `BR_ON_NON_NULL`_instr(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{labelidx#141 : labelidx, reftype#4305 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype} {{"br_on_cast"} {l:Tlabelidx_(I)} {rt_1:Treftype_(I)} {rt_2:Treftype_(I)}} => `BR_ON_CAST`_instr{labelidx#141, reftype#4305}(l, rt_1, rt_2) + prod{l : labelidx, rt_1 : reftype, rt_2 : reftype} {{"br_on_cast"} {l:Tlabelidx_(I)} {rt_1:Treftype_(I)} {rt_2:Treftype_(I)}} => `BR_ON_CAST`_instr(l, rt_1, rt_2) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{labelidx#143 : labelidx, reftype#4308 : reftype, l : labelidx, rt_1 : reftype, rt_2 : reftype} {{"br_on_cast_fail"} {l:Tlabelidx_(I)} {rt_1:Treftype_(I)} {rt_2:Treftype_(I)}} => `BR_ON_CAST_FAIL`_instr{labelidx#143, reftype#4308}(l, rt_1, rt_2) + prod{l : labelidx, rt_1 : reftype, rt_2 : reftype} {{"br_on_cast_fail"} {l:Tlabelidx_(I)} {rt_1:Treftype_(I)} {rt_2:Treftype_(I)}} => `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{funcidx#3383 : funcidx, x : idx} {{"call"} {x:Tfuncidx_(I)}} => `CALL`_instr{funcidx#3383}(x) + prod{x : idx} {{"call"} {x:Tfuncidx_(I)}} => `CALL`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeuse#79 : typeuse, typeidx#2129 : typeidx, x : idx} {{"call_ref"} {x:Ttypeidx_(I)}} => `CALL_REF`_instr{typeuse#79}(`_IDX`_typeuse{typeidx#2129}(x)) + prod{x : idx} {{"call_ref"} {x:Ttypeidx_(I)}} => `CALL_REF`_instr(`_IDX`_typeuse(x)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{tableidx#154 : tableidx, typeuse#81 : typeuse, x : idx, typeidx#2131 : typeidx, y : idx, I' : I, `name?*#589` : name?*, `name?*#590` : name?*, `name?*#591` : name?*, `name?*#592` : name?*, `name?*#593` : name?*, `name?*#594` : name?*, `name?*#595` : name?*, `name?*#596` : name?*, `name?*#597` : name?*, `char*#1315*` : char**, `name?*#598` : name?*, `name?**#30` : name?**, `deftype?*#21` : deftype?*} {{"call_indirect"} {x:Ttableidx_(I)} {(y, I'):Ttypeuse_(I)}} => `CALL_INDIRECT`_instr{tableidx#154, typeuse#81}(x, `_IDX`_typeuse{typeidx#2131}(y)) - -- if (I' = {`TYPES`{`name?*#589`} [], `TAGS`{`name?*#590`} [], `GLOBALS`{`name?*#591`} [], `MEMS`{`name?*#592`} [], `TABLES`{`name?*#593`} [], `FUNCS`{`name?*#594`} [], `DATAS`{`name?*#595`} [], `ELEMS`{`name?*#596`} [], `LOCALS`{`name?*#597`} ?(`%`_name{`char*#1315`}([]))*{`char*#1315` <- `char*#1315*`}, `LABELS`{`name?*#598`} [], `FIELDS`{`name?**#30`} [], `TYPEDEFS`{`deftype?*#21`} []}) + prod{x : idx, y : idx, I' : I} {{"call_indirect"} {x:Ttableidx_(I)} {(y, I'):Ttypeuse_(I)}} => `CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y)) + -- if (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod "return" => `RETURN`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{funcidx#3385 : funcidx, x : idx} {{"return_call"} {x:Tfuncidx_(I)}} => `RETURN_CALL`_instr{funcidx#3385}(x) + prod{x : idx} {{"return_call"} {x:Tfuncidx_(I)}} => `RETURN_CALL`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeuse#83 : typeuse, typeidx#2133 : typeidx, x : idx} {{"return_call_ref"} {x:Ttypeidx_(I)}} => `RETURN_CALL_REF`_instr{typeuse#83}(`_IDX`_typeuse{typeidx#2133}(x)) + prod{x : idx} {{"return_call_ref"} {x:Ttypeidx_(I)}} => `RETURN_CALL_REF`_instr(`_IDX`_typeuse(x)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{tableidx#156 : tableidx, typeuse#85 : typeuse, x : idx, typeidx#2135 : typeidx, y : idx, I' : I, `name?*#599` : name?*, `name?*#600` : name?*, `name?*#601` : name?*, `name?*#602` : name?*, `name?*#603` : name?*, `name?*#604` : name?*, `name?*#605` : name?*, `name?*#606` : name?*, `name?*#607` : name?*, `char*#1345*` : char**, `name?*#608` : name?*, `name?**#31` : name?**, `deftype?*#22` : deftype?*} {{"return_call_indirect"} {x:Ttableidx_(I)} {(y, I'):Ttypeuse_(I)}} => `RETURN_CALL_INDIRECT`_instr{tableidx#156, typeuse#85}(x, `_IDX`_typeuse{typeidx#2135}(y)) - -- if (I' = {`TYPES`{`name?*#599`} [], `TAGS`{`name?*#600`} [], `GLOBALS`{`name?*#601`} [], `MEMS`{`name?*#602`} [], `TABLES`{`name?*#603`} [], `FUNCS`{`name?*#604`} [], `DATAS`{`name?*#605`} [], `ELEMS`{`name?*#606`} [], `LOCALS`{`name?*#607`} ?(`%`_name{`char*#1345`}([]))*{`char*#1345` <- `char*#1345*`}, `LABELS`{`name?*#608`} [], `FIELDS`{`name?**#31`} [], `TYPEDEFS`{`deftype?*#22`} []}) + prod{x : idx, y : idx, I' : I} {{"return_call_indirect"} {x:Ttableidx_(I)} {(y, I'):Ttypeuse_(I)}} => `RETURN_CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y)) + -- if (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{tagidx#33 : tagidx, x : idx} {{"throw"} {x:Ttagidx_(I)}} => `THROW`_instr{tagidx#33}(x) + prod{x : idx} {{"throw"} {x:Ttagidx_(I)}} => `THROW`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod "throw_ref" => `THROW_REF`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{localidx#27 : localidx, x : idx} {{"local.get"} {x:Tlocalidx_(I)}} => `LOCAL.GET`_instr{localidx#27}(x) + prod{x : idx} {{"local.get"} {x:Tlocalidx_(I)}} => `LOCAL.GET`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{localidx#29 : localidx, x : idx} {{"local.set"} {x:Tlocalidx_(I)}} => `LOCAL.SET`_instr{localidx#29}(x) + prod{x : idx} {{"local.set"} {x:Tlocalidx_(I)}} => `LOCAL.SET`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{localidx#31 : localidx, x : idx} {{"local.tee"} {x:Tlocalidx_(I)}} => `LOCAL.TEE`_instr{localidx#31}(x) + prod{x : idx} {{"local.tee"} {x:Tlocalidx_(I)}} => `LOCAL.TEE`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{globalidx#31 : globalidx, x : idx} {{"global.get"} {x:Tglobalidx_(I)}} => `GLOBAL.GET`_instr{globalidx#31}(x) + prod{x : idx} {{"global.get"} {x:Tglobalidx_(I)}} => `GLOBAL.GET`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{globalidx#33 : globalidx, x : idx} {{"global.set"} {x:Tglobalidx_(I)}} => `GLOBAL.SET`_instr{globalidx#33}(x) + prod{x : idx} {{"global.set"} {x:Tglobalidx_(I)}} => `GLOBAL.SET`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{tableidx#158 : tableidx, x : idx} {{"table.get"} {x:Ttableidx_(I)}} => `TABLE.GET`_instr{tableidx#158}(x) + prod{x : idx} {{"table.get"} {x:Ttableidx_(I)}} => `TABLE.GET`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{tableidx#160 : tableidx, x : idx} {{"table.set"} {x:Ttableidx_(I)}} => `TABLE.SET`_instr{tableidx#160}(x) + prod{x : idx} {{"table.set"} {x:Ttableidx_(I)}} => `TABLE.SET`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{tableidx#162 : tableidx, x : idx} {{"table.size"} {x:Ttableidx_(I)}} => `TABLE.SIZE`_instr{tableidx#162}(x) + prod{x : idx} {{"table.size"} {x:Ttableidx_(I)}} => `TABLE.SIZE`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{tableidx#164 : tableidx, x : idx} {{"table.grow"} {x:Ttableidx_(I)}} => `TABLE.GROW`_instr{tableidx#164}(x) + prod{x : idx} {{"table.grow"} {x:Ttableidx_(I)}} => `TABLE.GROW`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{tableidx#166 : tableidx, x : idx} {{"table.fill"} {x:Ttableidx_(I)}} => `TABLE.FILL`_instr{tableidx#166}(x) + prod{x : idx} {{"table.fill"} {x:Ttableidx_(I)}} => `TABLE.FILL`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{tableidx#168 : tableidx, x_1 : idx, x_2 : idx} {{"table.copy"} {x_1:Ttableidx_(I)} {x_2:Ttableidx_(I)}} => `TABLE.COPY`_instr{tableidx#168}(x_1, x_2) + prod{x_1 : idx, x_2 : idx} {{"table.copy"} {x_1:Ttableidx_(I)} {x_2:Ttableidx_(I)}} => `TABLE.COPY`_instr(x_1, x_2) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{tableidx#171 : tableidx, elemidx#57 : elemidx, x : idx, y : idx} {{"table.init"} {x:Ttableidx_(I)} {y:Telemidx_(I)}} => `TABLE.INIT`_instr{tableidx#171, elemidx#57}(x, y) + prod{x : idx, y : idx} {{"table.init"} {x:Ttableidx_(I)} {y:Telemidx_(I)}} => `TABLE.INIT`_instr(x, y) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{elemidx#59 : elemidx, x : idx} {{"elem.drop"} {x:Telemidx_(I)}} => `ELEM.DROP`_instr{elemidx#59}(x) + prod{x : idx} {{"elem.drop"} {x:Telemidx_(I)}} => `ELEM.DROP`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#44` : numtype?, memidx#278 : memidx, memarg#181 : memarg, x : idx, ao : memarg} {{"i32.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr{`numtype?#44`, memidx#278, memarg#181}(`I32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"i32.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr(`I32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#45` : numtype?, memidx#280 : memidx, memarg#183 : memarg, x : idx, ao : memarg} {{"i64.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `LOAD`_instr{`numtype?#45`, memidx#280, memarg#183}(`I64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"i64.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `LOAD`_instr(`I64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#46` : numtype?, memidx#282 : memidx, memarg#185 : memarg, x : idx, ao : memarg} {{"f32.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr{`numtype?#46`, memidx#282, memarg#185}(`F32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"f32.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr(`F32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#47` : numtype?, memidx#284 : memidx, memarg#187 : memarg, x : idx, ao : memarg} {{"f64.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `LOAD`_instr{`numtype?#47`, memidx#284, memarg#187}(`F64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"f64.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `LOAD`_instr(`F64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#48` : numtype?, memidx#286 : memidx, memarg#189 : memarg, sz#1643 : sz, sx#15729 : sx, i#97957 : nat, i#97964 : nat, x : idx, ao : memarg} {{"i32.load8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr{`numtype?#48`, memidx#286, memarg#189}(`I32`_numtype, ?(`%_%`_loadop_{sz#1643, sx#15729, i#97957}(`%`_sz{i#97964}(8), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i32.load8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#49` : numtype?, memidx#288 : memidx, memarg#191 : memarg, sz#1661 : sz, sx#15747 : sx, i#98021 : nat, i#98028 : nat, x : idx, ao : memarg} {{"i32.load8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr{`numtype?#49`, memidx#288, memarg#191}(`I32`_numtype, ?(`%_%`_loadop_{sz#1661, sx#15747, i#98021}(`%`_sz{i#98028}(8), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i32.load8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#50` : numtype?, memidx#290 : memidx, memarg#193 : memarg, sz#1679 : sz, sx#15765 : sx, i#98085 : nat, i#98092 : nat, x : idx, ao : memarg} {{"i32.load16_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr{`numtype?#50`, memidx#290, memarg#193}(`I32`_numtype, ?(`%_%`_loadop_{sz#1679, sx#15765, i#98085}(`%`_sz{i#98092}(16), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i32.load16_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#51` : numtype?, memidx#292 : memidx, memarg#195 : memarg, sz#1697 : sz, sx#15783 : sx, i#98149 : nat, i#98156 : nat, x : idx, ao : memarg} {{"i32.load16_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr{`numtype?#51`, memidx#292, memarg#195}(`I32`_numtype, ?(`%_%`_loadop_{sz#1697, sx#15783, i#98149}(`%`_sz{i#98156}(16), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i32.load16_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#52` : numtype?, memidx#294 : memidx, memarg#197 : memarg, sz#1715 : sz, sx#15801 : sx, i#98213 : nat, i#98220 : nat, x : idx, ao : memarg} {{"i64.load8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr{`numtype?#52`, memidx#294, memarg#197}(`I64`_numtype, ?(`%_%`_loadop_{sz#1715, sx#15801, i#98213}(`%`_sz{i#98220}(8), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i64.load8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#53` : numtype?, memidx#296 : memidx, memarg#199 : memarg, sz#1733 : sz, sx#15819 : sx, i#98277 : nat, i#98284 : nat, x : idx, ao : memarg} {{"i64.load8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr{`numtype?#53`, memidx#296, memarg#199}(`I64`_numtype, ?(`%_%`_loadop_{sz#1733, sx#15819, i#98277}(`%`_sz{i#98284}(8), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i64.load8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#54` : numtype?, memidx#298 : memidx, memarg#201 : memarg, sz#1751 : sz, sx#15837 : sx, i#98341 : nat, i#98348 : nat, x : idx, ao : memarg} {{"i64.load16_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr{`numtype?#54`, memidx#298, memarg#201}(`I64`_numtype, ?(`%_%`_loadop_{sz#1751, sx#15837, i#98341}(`%`_sz{i#98348}(16), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i64.load16_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#55` : numtype?, memidx#300 : memidx, memarg#203 : memarg, sz#1769 : sz, sx#15855 : sx, i#98405 : nat, i#98412 : nat, x : idx, ao : memarg} {{"i64.load16_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr{`numtype?#55`, memidx#300, memarg#203}(`I64`_numtype, ?(`%_%`_loadop_{sz#1769, sx#15855, i#98405}(`%`_sz{i#98412}(16), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i64.load16_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#56` : numtype?, memidx#302 : memidx, memarg#205 : memarg, sz#1787 : sz, sx#15873 : sx, i#98469 : nat, i#98476 : nat, x : idx, ao : memarg} {{"i64.load32_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr{`numtype?#56`, memidx#302, memarg#205}(`I64`_numtype, ?(`%_%`_loadop_{sz#1787, sx#15873, i#98469}(`%`_sz{i#98476}(32), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i64.load32_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#57` : numtype?, memidx#304 : memidx, memarg#207 : memarg, sz#1805 : sz, sx#15891 : sx, i#98533 : nat, i#98540 : nat, x : idx, ao : memarg} {{"i64.load32_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr{`numtype?#57`, memidx#304, memarg#207}(`I64`_numtype, ?(`%_%`_loadop_{sz#1805, sx#15891, i#98533}(`%`_sz{i#98540}(32), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i64.load32_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`vectype?#27` : vectype?, memidx#306 : memidx, memarg#209 : memarg, x : idx, ao : memarg} {{"v128.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(16)}} => `VLOAD`_instr{`vectype?#27`, memidx#306, memarg#209}(`V128`_vectype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"v128.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(16)}} => `VLOAD`_instr(`V128`_vectype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`vectype?#28` : vectype?, memidx#308 : memidx, memarg#211 : memarg, sz#1852 : sz, M#349 : M, sx#15908 : sx, i#98628 : nat, i#98635 : nat, x : idx, ao : memarg} {{"v128.load8x8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#28`, memidx#308, memarg#211}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1852, M#349, sx#15908, i#98628}(`%`_sz{i#98635}(8), 8, `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"v128.load8x8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`vectype?#29` : vectype?, memidx#310 : memidx, memarg#213 : memarg, sz#1899 : sz, M#366 : M, sx#15925 : sx, i#98692 : nat, i#98699 : nat, x : idx, ao : memarg} {{"v128.load8x8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#29`, memidx#310, memarg#213}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1899, M#366, sx#15925, i#98692}(`%`_sz{i#98699}(8), 8, `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"v128.load8x8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`vectype?#30` : vectype?, memidx#312 : memidx, memarg#215 : memarg, sz#1946 : sz, M#383 : M, sx#15942 : sx, i#98756 : nat, i#98763 : nat, x : idx, ao : memarg} {{"v128.load16x4_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#30`, memidx#312, memarg#215}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1946, M#383, sx#15942, i#98756}(`%`_sz{i#98763}(16), 4, `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"v128.load16x4_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`vectype?#31` : vectype?, memidx#314 : memidx, memarg#217 : memarg, sz#1993 : sz, M#400 : M, sx#15959 : sx, i#98820 : nat, i#98827 : nat, x : idx, ao : memarg} {{"v128.load16x4_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#31`, memidx#314, memarg#217}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#1993, M#400, sx#15959, i#98820}(`%`_sz{i#98827}(16), 4, `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"v128.load16x4_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`vectype?#32` : vectype?, memidx#316 : memidx, memarg#219 : memarg, sz#2040 : sz, M#417 : M, sx#15976 : sx, i#98884 : nat, i#98891 : nat, x : idx, ao : memarg} {{"v128.load32x2_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#32`, memidx#316, memarg#219}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#2040, M#417, sx#15976, i#98884}(`%`_sz{i#98891}(32), 2, `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"v128.load32x2_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`vectype?#33` : vectype?, memidx#318 : memidx, memarg#221 : memarg, sz#2087 : sz, M#434 : M, sx#15993 : sx, i#98948 : nat, i#98955 : nat, x : idx, ao : memarg} {{"v128.load32x2_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#33`, memidx#318, memarg#221}(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_{sz#2087, M#434, sx#15993, i#98948}(`%`_sz{i#98955}(32), 2, `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"v128.load32x2_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`vectype?#34` : vectype?, memidx#320 : memidx, memarg#223 : memarg, sz#2134 : sz, i#99018 : nat, x : idx, ao : memarg} {{"v128.load8_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `VLOAD`_instr{`vectype?#34`, memidx#320, memarg#223}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2134}(`%`_sz{i#99018}(8))), x, ao) + prod{x : idx, ao : memarg} {{"v128.load8_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(8))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`vectype?#35` : vectype?, memidx#322 : memidx, memarg#225 : memarg, sz#2181 : sz, i#99081 : nat, x : idx, ao : memarg} {{"v128.load16_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `VLOAD`_instr{`vectype?#35`, memidx#322, memarg#225}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2181}(`%`_sz{i#99081}(16))), x, ao) + prod{x : idx, ao : memarg} {{"v128.load16_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(16))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`vectype?#36` : vectype?, memidx#324 : memidx, memarg#227 : memarg, sz#2228 : sz, i#99144 : nat, x : idx, ao : memarg} {{"v128.load32_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `VLOAD`_instr{`vectype?#36`, memidx#324, memarg#227}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2228}(`%`_sz{i#99144}(32))), x, ao) + prod{x : idx, ao : memarg} {{"v128.load32_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(32))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`vectype?#37` : vectype?, memidx#326 : memidx, memarg#229 : memarg, sz#2275 : sz, i#99207 : nat, x : idx, ao : memarg} {{"v128.load64_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#37`, memidx#326, memarg#229}(`V128`_vectype, ?(`SPLAT`_vloadop_{sz#2275}(`%`_sz{i#99207}(64))), x, ao) + prod{x : idx, ao : memarg} {{"v128.load64_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(64))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`vectype?#38` : vectype?, memidx#328 : memidx, memarg#231 : memarg, sz#2322 : sz, i#99264 : nat, i#99271 : nat, x : idx, ao : memarg} {{"v128.load32_zero"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `VLOAD`_instr{`vectype?#38`, memidx#328, memarg#231}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#2322, i#99264}(`%`_sz{i#99271}(32))), x, ao) + prod{x : idx, ao : memarg} {{"v128.load32_zero"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(32))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`vectype?#39` : vectype?, memidx#330 : memidx, memarg#233 : memarg, sz#2369 : sz, i#99328 : nat, i#99335 : nat, x : idx, ao : memarg} {{"v128.load64_zero"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr{`vectype?#39`, memidx#330, memarg#233}(`V128`_vectype, ?(`ZERO`_vloadop_{sz#2369, i#99328}(`%`_sz{i#99335}(64))), x, ao) + prod{x : idx, ao : memarg} {{"v128.load64_zero"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(64))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#286 : vectype, sz#2371 : sz, memidx#332 : memidx, memarg#235 : memarg, laneidx#75 : laneidx, i#99391 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.load8_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)} {i:Tlaneidx}} => `VLOAD_LANE`_instr{vectype#286, sz#2371, memidx#332, memarg#235, laneidx#75}(`V128`_vectype, `%`_sz{i#99391}(8), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.load8_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)} {i:Tlaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#288 : vectype, sz#2373 : sz, memidx#334 : memidx, memarg#237 : memarg, laneidx#77 : laneidx, i#99459 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.load16_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)} {i:Tlaneidx}} => `VLOAD_LANE`_instr{vectype#288, sz#2373, memidx#334, memarg#237, laneidx#77}(`V128`_vectype, `%`_sz{i#99459}(16), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.load16_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)} {i:Tlaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#290 : vectype, sz#2375 : sz, memidx#336 : memidx, memarg#239 : memarg, laneidx#79 : laneidx, i#99527 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.load32_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)} {i:Tlaneidx}} => `VLOAD_LANE`_instr{vectype#290, sz#2375, memidx#336, memarg#239, laneidx#79}(`V128`_vectype, `%`_sz{i#99527}(32), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.load32_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)} {i:Tlaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#292 : vectype, sz#2377 : sz, memidx#338 : memidx, memarg#241 : memarg, laneidx#81 : laneidx, i#99595 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.load64_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)} {i:Tlaneidx}} => `VLOAD_LANE`_instr{vectype#292, sz#2377, memidx#338, memarg#241, laneidx#81}(`V128`_vectype, `%`_sz{i#99595}(64), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.load64_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)} {i:Tlaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#58` : numtype?, memidx#340 : memidx, memarg#243 : memarg, x : idx, ao : memarg} {{"i32.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `STORE`_instr{`numtype?#58`, memidx#340, memarg#243}(`I32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"i32.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `STORE`_instr(`I32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#59` : numtype?, memidx#342 : memidx, memarg#245 : memarg, x : idx, ao : memarg} {{"i64.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `STORE`_instr{`numtype?#59`, memidx#342, memarg#245}(`I64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"i64.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `STORE`_instr(`I64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#60` : numtype?, memidx#344 : memidx, memarg#247 : memarg, x : idx, ao : memarg} {{"f32.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `STORE`_instr{`numtype?#60`, memidx#344, memarg#247}(`F32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"f32.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `STORE`_instr(`F32`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#61` : numtype?, memidx#346 : memidx, memarg#249 : memarg, x : idx, ao : memarg} {{"f64.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `STORE`_instr{`numtype?#61`, memidx#346, memarg#249}(`F64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"f64.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `STORE`_instr(`F64`_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#62` : numtype?, memidx#348 : memidx, memarg#251 : memarg, sz#2390 : sz, i#99803 : nat, i#99804 : nat, x : idx, ao : memarg} {{"i32.store8"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `STORE`_instr{`numtype?#62`, memidx#348, memarg#251}(`I32`_numtype, ?(`%`_storeop_{sz#2390, i#99803}(`%`_sz{i#99804}(8))), x, ao) + prod{x : idx, ao : memarg} {{"i32.store8"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#63` : numtype?, memidx#350 : memidx, memarg#253 : memarg, sz#2403 : sz, i#99876 : nat, i#99877 : nat, x : idx, ao : memarg} {{"i32.store16"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `STORE`_instr{`numtype?#63`, memidx#350, memarg#253}(`I32`_numtype, ?(`%`_storeop_{sz#2403, i#99876}(`%`_sz{i#99877}(16))), x, ao) + prod{x : idx, ao : memarg} {{"i32.store16"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#64` : numtype?, memidx#352 : memidx, memarg#255 : memarg, sz#2416 : sz, i#99949 : nat, i#99950 : nat, x : idx, ao : memarg} {{"i64.store8"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `STORE`_instr{`numtype?#64`, memidx#352, memarg#255}(`I64`_numtype, ?(`%`_storeop_{sz#2416, i#99949}(`%`_sz{i#99950}(8))), x, ao) + prod{x : idx, ao : memarg} {{"i64.store8"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#65` : numtype?, memidx#354 : memidx, memarg#257 : memarg, sz#2429 : sz, i#100022 : nat, i#100023 : nat, x : idx, ao : memarg} {{"i64.store16"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `STORE`_instr{`numtype?#65`, memidx#354, memarg#257}(`I64`_numtype, ?(`%`_storeop_{sz#2429, i#100022}(`%`_sz{i#100023}(16))), x, ao) + prod{x : idx, ao : memarg} {{"i64.store16"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`numtype?#66` : numtype?, memidx#356 : memidx, memarg#259 : memarg, sz#2442 : sz, i#100095 : nat, i#100096 : nat, x : idx, ao : memarg} {{"i64.store32"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `STORE`_instr{`numtype?#66`, memidx#356, memarg#259}(`I64`_numtype, ?(`%`_storeop_{sz#2442, i#100095}(`%`_sz{i#100096}(32))), x, ao) + prod{x : idx, ao : memarg} {{"i64.store32"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#294 : vectype, memidx#358 : memidx, memarg#261 : memarg, x : idx, ao : memarg} {{"v128.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(16)}} => `VSTORE`_instr{vectype#294, memidx#358, memarg#261}(`V128`_vectype, x, ao) + prod{x : idx, ao : memarg} {{"v128.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(16)}} => `VSTORE`_instr(`V128`_vectype, x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#296 : vectype, sz#2444 : sz, memidx#360 : memidx, memarg#263 : memarg, laneidx#83 : laneidx, i#100183 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.store8_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)} {i:Tlaneidx}} => `VSTORE_LANE`_instr{vectype#296, sz#2444, memidx#360, memarg#263, laneidx#83}(`V128`_vectype, `%`_sz{i#100183}(8), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.store8_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)} {i:Tlaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#298 : vectype, sz#2446 : sz, memidx#362 : memidx, memarg#265 : memarg, laneidx#85 : laneidx, i#100251 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.store16_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)} {i:Tlaneidx}} => `VSTORE_LANE`_instr{vectype#298, sz#2446, memidx#362, memarg#265, laneidx#85}(`V128`_vectype, `%`_sz{i#100251}(16), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.store16_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)} {i:Tlaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#300 : vectype, sz#2448 : sz, memidx#364 : memidx, memarg#267 : memarg, laneidx#87 : laneidx, i#100319 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.store32_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)} {i:Tlaneidx}} => `VSTORE_LANE`_instr{vectype#300, sz#2448, memidx#364, memarg#267, laneidx#87}(`V128`_vectype, `%`_sz{i#100319}(32), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.store32_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)} {i:Tlaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#302 : vectype, sz#2450 : sz, memidx#366 : memidx, memarg#269 : memarg, laneidx#89 : laneidx, i#100387 : nat, x : idx, ao : memarg, i : laneidx} {{"v128.store64_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)} {i:Tlaneidx}} => `VSTORE_LANE`_instr{vectype#302, sz#2450, memidx#366, memarg#269, laneidx#89}(`V128`_vectype, `%`_sz{i#100387}(64), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.store64_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)} {i:Tlaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{memidx#368 : memidx, x : idx} {{"memory.size"} {x:Tmemidx_(I)}} => `MEMORY.SIZE`_instr{memidx#368}(x) + prod{x : idx} {{"memory.size"} {x:Tmemidx_(I)}} => `MEMORY.SIZE`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{memidx#370 : memidx, x : idx} {{"memory.grow"} {x:Tmemidx_(I)}} => `MEMORY.GROW`_instr{memidx#370}(x) + prod{x : idx} {{"memory.grow"} {x:Tmemidx_(I)}} => `MEMORY.GROW`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{memidx#372 : memidx, x : idx} {{"memory.fill"} {x:Tmemidx_(I)}} => `MEMORY.FILL`_instr{memidx#372}(x) + prod{x : idx} {{"memory.fill"} {x:Tmemidx_(I)}} => `MEMORY.FILL`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{memidx#374 : memidx, x_1 : idx, x_2 : idx} {{"memory.copy"} {x_1:Tmemidx_(I)} {x_2:Tmemidx_(I)}} => `MEMORY.COPY`_instr{memidx#374}(x_1, x_2) + prod{x_1 : idx, x_2 : idx} {{"memory.copy"} {x_1:Tmemidx_(I)} {x_2:Tmemidx_(I)}} => `MEMORY.COPY`_instr(x_1, x_2) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{memidx#377 : memidx, dataidx#55 : dataidx, x : idx, y : idx} {{"memory.init"} {x:Tmemidx_(I)} {y:Tdataidx_(I)}} => `MEMORY.INIT`_instr{memidx#377, dataidx#55}(x, y) + prod{x : idx, y : idx} {{"memory.init"} {x:Tmemidx_(I)} {y:Tdataidx_(I)}} => `MEMORY.INIT`_instr(x, y) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{dataidx#57 : dataidx, x : idx} {{"data.drop"} {x:Tdataidx_(I)}} => `DATA.DROP`_instr{dataidx#57}(x) + prod{x : idx} {{"data.drop"} {x:Tdataidx_(I)}} => `DATA.DROP`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{heaptype#1929 : heaptype, ht : heaptype} {{"ref.null"} {ht:Theaptype_(I)}} => `REF.NULL`_instr{heaptype#1929}(ht) + prod{ht : heaptype} {{"ref.null"} {ht:Theaptype_(I)}} => `REF.NULL`_instr(ht) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{funcidx#3387 : funcidx, x : idx} {{"ref.func"} {x:Tfuncidx_(I)}} => `REF.FUNC`_instr{funcidx#3387}(x) + prod{x : idx} {{"ref.func"} {x:Tfuncidx_(I)}} => `REF.FUNC`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod "ref.is_null" => `REF.IS_NULL`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec @@ -121486,813 +96737,813 @@ grammar Tplaininstr_(I : I) : instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod "ref.eq" => `REF.EQ`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{reftype#4311 : reftype, rt : reftype} {{"ref.test"} {rt:Treftype_(I)}} => `REF.TEST`_instr{reftype#4311}(rt) + prod{rt : reftype} {{"ref.test"} {rt:Treftype_(I)}} => `REF.TEST`_instr(rt) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{reftype#4313 : reftype, rt : reftype} {{"ref.cast"} {rt:Treftype_(I)}} => `REF.CAST`_instr{reftype#4313}(rt) + prod{rt : reftype} {{"ref.cast"} {rt:Treftype_(I)}} => `REF.CAST`_instr(rt) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod "ref.i31" => `REF.I31`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{sx#16085 : sx} "i31.get_s" => `I31.GET`_instr{sx#16085}(`S`_sx) + prod "i31.get_s" => `I31.GET`_instr(`S`_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{sx#16087 : sx} "i31.get_u" => `I31.GET`_instr{sx#16087}(`U`_sx) + prod "i31.get_u" => `I31.GET`_instr(`U`_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2137 : typeidx, x : idx} {{"struct.new"} {x:Ttypeidx_(I)}} => `STRUCT.NEW`_instr{typeidx#2137}(x) + prod{x : idx} {{"struct.new"} {x:Ttypeidx_(I)}} => `STRUCT.NEW`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2139 : typeidx, x : idx} {{"struct.new_default"} {x:Ttypeidx_(I)}} => `STRUCT.NEW_DEFAULT`_instr{typeidx#2139}(x) + prod{x : idx} {{"struct.new_default"} {x:Ttypeidx_(I)}} => `STRUCT.NEW_DEFAULT`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`sx?#59` : sx?, typeidx#2141 : typeidx, u32#48 : u32, x : idx, i : fieldidx} {{"struct.get"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr{`sx?#59`, typeidx#2141, u32#48}(?(), x, i) + prod{x : idx, i : fieldidx} {{"struct.get"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr(?(), x, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`sx?#61` : sx?, typeidx#2143 : typeidx, u32#50 : u32, x : idx, i : fieldidx} {{"struct.get_s"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr{`sx?#61`, typeidx#2143, u32#50}(?(`S`_sx), x, i) + prod{x : idx, i : fieldidx} {{"struct.get_s"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr(?(`S`_sx), x, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`sx?#63` : sx?, typeidx#2145 : typeidx, u32#52 : u32, x : idx, i : fieldidx} {{"struct.get_u"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr{`sx?#63`, typeidx#2145, u32#52}(?(`U`_sx), x, i) + prod{x : idx, i : fieldidx} {{"struct.get_u"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr(?(`U`_sx), x, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2147 : typeidx, u32#54 : u32, x : idx, i : fieldidx} {{"struct.set"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.SET`_instr{typeidx#2147, u32#54}(x, i) + prod{x : idx, i : fieldidx} {{"struct.set"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.SET`_instr(x, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2149 : typeidx, x : idx} {{"array.new"} {x:Ttypeidx_(I)}} => `ARRAY.NEW`_instr{typeidx#2149}(x) + prod{x : idx} {{"array.new"} {x:Ttypeidx_(I)}} => `ARRAY.NEW`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2151 : typeidx, x : idx} {{"array.new_default"} {x:Ttypeidx_(I)}} => `ARRAY.NEW_DEFAULT`_instr{typeidx#2151}(x) + prod{x : idx} {{"array.new_default"} {x:Ttypeidx_(I)}} => `ARRAY.NEW_DEFAULT`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2153 : typeidx, u32#56 : u32, x : idx, i#101306 : nat, n : n, i#101266 : nat} {{"array.new_fixed"} {x:Ttypeidx_(I)} {`%`_u32{i#101266}(n):Tu32}} => `ARRAY.NEW_FIXED`_instr{typeidx#2153, u32#56}(x, `%`_u32{i#101306}(n)) + prod{x : idx, n : n} {{"array.new_fixed"} {x:Ttypeidx_(I)} {`%`_u32(n):Tu32}} => `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2155 : typeidx, dataidx#59 : dataidx, x : idx, y : idx} {{"array.new_data"} {x:Ttypeidx_(I)} {y:Tdataidx_(I)}} => `ARRAY.NEW_DATA`_instr{typeidx#2155, dataidx#59}(x, y) + prod{x : idx, y : idx} {{"array.new_data"} {x:Ttypeidx_(I)} {y:Tdataidx_(I)}} => `ARRAY.NEW_DATA`_instr(x, y) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2157 : typeidx, elemidx#61 : elemidx, x : idx, y : idx} {{"array.new_elem"} {x:Ttypeidx_(I)} {y:Telemidx_(I)}} => `ARRAY.NEW_ELEM`_instr{typeidx#2157, elemidx#61}(x, y) + prod{x : idx, y : idx} {{"array.new_elem"} {x:Ttypeidx_(I)} {y:Telemidx_(I)}} => `ARRAY.NEW_ELEM`_instr(x, y) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`sx?#65` : sx?, typeidx#2159 : typeidx, x : idx} {{"array.get"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr{`sx?#65`, typeidx#2159}(?(), x) + prod{x : idx} {{"array.get"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr(?(), x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`sx?#67` : sx?, typeidx#2161 : typeidx, x : idx} {{"array.get_s"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr{`sx?#67`, typeidx#2161}(?(`S`_sx), x) + prod{x : idx} {{"array.get_s"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr(?(`S`_sx), x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`sx?#69` : sx?, typeidx#2163 : typeidx, x : idx} {{"array.get_u"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr{`sx?#69`, typeidx#2163}(?(`U`_sx), x) + prod{x : idx} {{"array.get_u"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr(?(`U`_sx), x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2165 : typeidx, x : idx} {{"array.set"} {x:Ttypeidx_(I)}} => `ARRAY.SET`_instr{typeidx#2165}(x) + prod{x : idx} {{"array.set"} {x:Ttypeidx_(I)}} => `ARRAY.SET`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod "array.len" => `ARRAY.LEN`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2167 : typeidx, x : idx} {{"array.fill"} {x:Ttypeidx_(I)}} => `ARRAY.FILL`_instr{typeidx#2167}(x) + prod{x : idx} {{"array.fill"} {x:Ttypeidx_(I)}} => `ARRAY.FILL`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2169 : typeidx, x_1 : idx, x_2 : idx} {{"array.copy"} {x_1:Ttypeidx_(I)} {x_2:Ttypeidx_(I)}} => `ARRAY.COPY`_instr{typeidx#2169}(x_1, x_2) + prod{x_1 : idx, x_2 : idx} {{"array.copy"} {x_1:Ttypeidx_(I)} {x_2:Ttypeidx_(I)}} => `ARRAY.COPY`_instr(x_1, x_2) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2172 : typeidx, dataidx#61 : dataidx, x : idx, y : idx} {{"array.init_data"} {x:Ttypeidx_(I)} {y:Tdataidx_(I)}} => `ARRAY.INIT_DATA`_instr{typeidx#2172, dataidx#61}(x, y) + prod{x : idx, y : idx} {{"array.init_data"} {x:Ttypeidx_(I)} {y:Tdataidx_(I)}} => `ARRAY.INIT_DATA`_instr(x, y) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{typeidx#2174 : typeidx, elemidx#63 : elemidx, x : idx, y : idx} {{"array.init_elem"} {x:Ttypeidx_(I)} {y:Telemidx_(I)}} => `ARRAY.INIT_ELEM`_instr{typeidx#2174, elemidx#63}(x, y) + prod{x : idx, y : idx} {{"array.init_elem"} {x:Ttypeidx_(I)} {y:Telemidx_(I)}} => `ARRAY.INIT_ELEM`_instr(x, y) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod "any.convert_extern" => `ANY.CONVERT_EXTERN`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod "extern.convert_any" => `EXTERN.CONVERT_ANY`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#891 : numtype, c : u32} {{"i32.const"} {c:Ti32}} => `CONST`_instr{numtype#891}(`I32`_numtype, c) + prod{c : u32} {{"i32.const"} {c:Ti32}} => `CONST`_instr(`I32`_numtype, c) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#893 : numtype, c : u64} {{"i64.const"} {c:Ti64}} => `CONST`_instr{numtype#893}(`I64`_numtype, c) + prod{c : u64} {{"i64.const"} {c:Ti64}} => `CONST`_instr(`I64`_numtype, c) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#895 : numtype, c : f32} {{"f32.const"} {c:Tf32}} => `CONST`_instr{numtype#895}(`F32`_numtype, c) + prod{c : f32} {{"f32.const"} {c:Tf32}} => `CONST`_instr(`F32`_numtype, c) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#897 : numtype, c : f64} {{"f64.const"} {c:Tf64}} => `CONST`_instr{numtype#897}(`F64`_numtype, c) + prod{c : f64} {{"f64.const"} {c:Tf64}} => `CONST`_instr(`F64`_numtype, c) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#899 : numtype} "i32.eqz" => `TESTOP`_instr{numtype#899}(`I32`_numtype, `EQZ`_testop_) + prod "i32.eqz" => `TESTOP`_instr(`I32`_numtype, `EQZ`_testop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#901 : numtype} "i64.eqz" => `TESTOP`_instr{numtype#901}(`I64`_numtype, `EQZ`_testop_) + prod "i64.eqz" => `TESTOP`_instr(`I64`_numtype, `EQZ`_testop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#903 : numtype} "i32.eq" => `RELOP`_instr{numtype#903}(`I32`_numtype, `EQ`_relop_) + prod "i32.eq" => `RELOP`_instr(`I32`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#905 : numtype} "i32.ne" => `RELOP`_instr{numtype#905}(`I32`_numtype, `NE`_relop_) + prod "i32.ne" => `RELOP`_instr(`I32`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#907 : numtype, sx#16331 : sx} "i32.lt_s" => `RELOP`_instr{numtype#907}(`I32`_numtype, `LT`_relop_{sx#16331}(`S`_sx)) + prod "i32.lt_s" => `RELOP`_instr(`I32`_numtype, `LT`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#909 : numtype, sx#16455 : sx} "i32.lt_u" => `RELOP`_instr{numtype#909}(`I32`_numtype, `LT`_relop_{sx#16455}(`U`_sx)) + prod "i32.lt_u" => `RELOP`_instr(`I32`_numtype, `LT`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#911 : numtype, sx#16579 : sx} "i32.gt_s" => `RELOP`_instr{numtype#911}(`I32`_numtype, `GT`_relop_{sx#16579}(`S`_sx)) + prod "i32.gt_s" => `RELOP`_instr(`I32`_numtype, `GT`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#913 : numtype, sx#16703 : sx} "i32.gt_u" => `RELOP`_instr{numtype#913}(`I32`_numtype, `GT`_relop_{sx#16703}(`U`_sx)) + prod "i32.gt_u" => `RELOP`_instr(`I32`_numtype, `GT`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#915 : numtype, sx#16827 : sx} "i32.le_s" => `RELOP`_instr{numtype#915}(`I32`_numtype, `LE`_relop_{sx#16827}(`S`_sx)) + prod "i32.le_s" => `RELOP`_instr(`I32`_numtype, `LE`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#917 : numtype, sx#16951 : sx} "i32.le_u" => `RELOP`_instr{numtype#917}(`I32`_numtype, `LE`_relop_{sx#16951}(`U`_sx)) + prod "i32.le_u" => `RELOP`_instr(`I32`_numtype, `LE`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#919 : numtype, sx#17075 : sx} "i32.ge_s" => `RELOP`_instr{numtype#919}(`I32`_numtype, `GE`_relop_{sx#17075}(`S`_sx)) + prod "i32.ge_s" => `RELOP`_instr(`I32`_numtype, `GE`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#921 : numtype, sx#17199 : sx} "i32.ge_u" => `RELOP`_instr{numtype#921}(`I32`_numtype, `GE`_relop_{sx#17199}(`U`_sx)) + prod "i32.ge_u" => `RELOP`_instr(`I32`_numtype, `GE`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#923 : numtype} "i64.eq" => `RELOP`_instr{numtype#923}(`I64`_numtype, `EQ`_relop_) + prod "i64.eq" => `RELOP`_instr(`I64`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#925 : numtype} "i64.ne" => `RELOP`_instr{numtype#925}(`I64`_numtype, `NE`_relop_) + prod "i64.ne" => `RELOP`_instr(`I64`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#927 : numtype, sx#17443 : sx} "i64.lt_s" => `RELOP`_instr{numtype#927}(`I64`_numtype, `LT`_relop_{sx#17443}(`S`_sx)) + prod "i64.lt_s" => `RELOP`_instr(`I64`_numtype, `LT`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#929 : numtype, sx#17567 : sx} "i64.lt_u" => `RELOP`_instr{numtype#929}(`I64`_numtype, `LT`_relop_{sx#17567}(`U`_sx)) + prod "i64.lt_u" => `RELOP`_instr(`I64`_numtype, `LT`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#931 : numtype, sx#17691 : sx} "i64.gt_s" => `RELOP`_instr{numtype#931}(`I64`_numtype, `GT`_relop_{sx#17691}(`S`_sx)) + prod "i64.gt_s" => `RELOP`_instr(`I64`_numtype, `GT`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#933 : numtype, sx#17815 : sx} "i64.gt_u" => `RELOP`_instr{numtype#933}(`I64`_numtype, `GT`_relop_{sx#17815}(`U`_sx)) + prod "i64.gt_u" => `RELOP`_instr(`I64`_numtype, `GT`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#935 : numtype, sx#17939 : sx} "i64.le_s" => `RELOP`_instr{numtype#935}(`I64`_numtype, `LE`_relop_{sx#17939}(`S`_sx)) + prod "i64.le_s" => `RELOP`_instr(`I64`_numtype, `LE`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#937 : numtype, sx#18063 : sx} "i64.le_u" => `RELOP`_instr{numtype#937}(`I64`_numtype, `LE`_relop_{sx#18063}(`U`_sx)) + prod "i64.le_u" => `RELOP`_instr(`I64`_numtype, `LE`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#939 : numtype, sx#18187 : sx} "i64.ge_s" => `RELOP`_instr{numtype#939}(`I64`_numtype, `GE`_relop_{sx#18187}(`S`_sx)) + prod "i64.ge_s" => `RELOP`_instr(`I64`_numtype, `GE`_relop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#941 : numtype, sx#18311 : sx} "i64.ge_u" => `RELOP`_instr{numtype#941}(`I64`_numtype, `GE`_relop_{sx#18311}(`U`_sx)) + prod "i64.ge_u" => `RELOP`_instr(`I64`_numtype, `GE`_relop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#943 : numtype} "f32.eq" => `RELOP`_instr{numtype#943}(`F32`_numtype, `EQ`_relop_) + prod "f32.eq" => `RELOP`_instr(`F32`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#945 : numtype} "f32.ne" => `RELOP`_instr{numtype#945}(`F32`_numtype, `NE`_relop_) + prod "f32.ne" => `RELOP`_instr(`F32`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#947 : numtype} "f32.lt" => `RELOP`_instr{numtype#947}(`F32`_numtype, `LT`_relop_) + prod "f32.lt" => `RELOP`_instr(`F32`_numtype, `LT`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#949 : numtype} "f32.gt" => `RELOP`_instr{numtype#949}(`F32`_numtype, `GT`_relop_) + prod "f32.gt" => `RELOP`_instr(`F32`_numtype, `GT`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#951 : numtype} "f32.le" => `RELOP`_instr{numtype#951}(`F32`_numtype, `LE`_relop_) + prod "f32.le" => `RELOP`_instr(`F32`_numtype, `LE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#953 : numtype} "f32.ge" => `RELOP`_instr{numtype#953}(`F32`_numtype, `GE`_relop_) + prod "f32.ge" => `RELOP`_instr(`F32`_numtype, `GE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#955 : numtype} "f64.eq" => `RELOP`_instr{numtype#955}(`F64`_numtype, `EQ`_relop_) + prod "f64.eq" => `RELOP`_instr(`F64`_numtype, `EQ`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#957 : numtype} "f64.ne" => `RELOP`_instr{numtype#957}(`F64`_numtype, `NE`_relop_) + prod "f64.ne" => `RELOP`_instr(`F64`_numtype, `NE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#959 : numtype} "f64.lt" => `RELOP`_instr{numtype#959}(`F64`_numtype, `LT`_relop_) + prod "f64.lt" => `RELOP`_instr(`F64`_numtype, `LT`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#961 : numtype} "f64.gt" => `RELOP`_instr{numtype#961}(`F64`_numtype, `GT`_relop_) + prod "f64.gt" => `RELOP`_instr(`F64`_numtype, `GT`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#963 : numtype} "f64.le" => `RELOP`_instr{numtype#963}(`F64`_numtype, `LE`_relop_) + prod "f64.le" => `RELOP`_instr(`F64`_numtype, `LE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#965 : numtype} "f64.ge" => `RELOP`_instr{numtype#965}(`F64`_numtype, `GE`_relop_) + prod "f64.ge" => `RELOP`_instr(`F64`_numtype, `GE`_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#967 : numtype} "i32.clz" => `UNOP`_instr{numtype#967}(`I32`_numtype, `CLZ`_unop_) + prod "i32.clz" => `UNOP`_instr(`I32`_numtype, `CLZ`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#969 : numtype} "i32.ctz" => `UNOP`_instr{numtype#969}(`I32`_numtype, `CTZ`_unop_) + prod "i32.ctz" => `UNOP`_instr(`I32`_numtype, `CTZ`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#971 : numtype} "i32.popcnt" => `UNOP`_instr{numtype#971}(`I32`_numtype, `POPCNT`_unop_) + prod "i32.popcnt" => `UNOP`_instr(`I32`_numtype, `POPCNT`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#973 : numtype, sz#2529 : sz, i#101930 : nat, i#101937 : nat} "i32.extend8_s" => `UNOP`_instr{numtype#973}(`I32`_numtype, `EXTEND`_unop_{sz#2529, i#101930}(`%`_sz{i#101937}(8))) + prod "i32.extend8_s" => `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(8))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#975 : numtype, sz#2563 : sz, i#101946 : nat, i#101953 : nat} "i32.extend16_s" => `UNOP`_instr{numtype#975}(`I32`_numtype, `EXTEND`_unop_{sz#2563, i#101946}(`%`_sz{i#101953}(16))) + prod "i32.extend16_s" => `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(16))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#977 : numtype} "i64.clz" => `UNOP`_instr{numtype#977}(`I64`_numtype, `CLZ`_unop_) + prod "i64.clz" => `UNOP`_instr(`I64`_numtype, `CLZ`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#979 : numtype} "i64.ctz" => `UNOP`_instr{numtype#979}(`I64`_numtype, `CTZ`_unop_) + prod "i64.ctz" => `UNOP`_instr(`I64`_numtype, `CTZ`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#981 : numtype} "i64.popcnt" => `UNOP`_instr{numtype#981}(`I64`_numtype, `POPCNT`_unop_) + prod "i64.popcnt" => `UNOP`_instr(`I64`_numtype, `POPCNT`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#983 : numtype, sz#2642 : sz, i#101962 : nat, i#101969 : nat} "i64.extend8_s" => `UNOP`_instr{numtype#983}(`I64`_numtype, `EXTEND`_unop_{sz#2642, i#101962}(`%`_sz{i#101969}(8))) + prod "i64.extend8_s" => `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(8))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#985 : numtype, sz#2676 : sz, i#101978 : nat, i#101985 : nat} "i64.extend16_s" => `UNOP`_instr{numtype#985}(`I64`_numtype, `EXTEND`_unop_{sz#2676, i#101978}(`%`_sz{i#101985}(16))) + prod "i64.extend16_s" => `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(16))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#987 : numtype, sz#2710 : sz, i#101994 : nat, i#102001 : nat} "i64.extend32_s" => `UNOP`_instr{numtype#987}(`I64`_numtype, `EXTEND`_unop_{sz#2710, i#101994}(`%`_sz{i#102001}(32))) + prod "i64.extend32_s" => `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(32))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#989 : numtype} "f32.abs" => `UNOP`_instr{numtype#989}(`F32`_numtype, `ABS`_unop_) + prod "f32.abs" => `UNOP`_instr(`F32`_numtype, `ABS`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#991 : numtype} "f32.neg" => `UNOP`_instr{numtype#991}(`F32`_numtype, `NEG`_unop_) + prod "f32.neg" => `UNOP`_instr(`F32`_numtype, `NEG`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#993 : numtype} "f32.sqrt" => `UNOP`_instr{numtype#993}(`F32`_numtype, `SQRT`_unop_) + prod "f32.sqrt" => `UNOP`_instr(`F32`_numtype, `SQRT`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#995 : numtype} "f32.ceil" => `UNOP`_instr{numtype#995}(`F32`_numtype, `CEIL`_unop_) + prod "f32.ceil" => `UNOP`_instr(`F32`_numtype, `CEIL`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#997 : numtype} "f32.floor" => `UNOP`_instr{numtype#997}(`F32`_numtype, `FLOOR`_unop_) + prod "f32.floor" => `UNOP`_instr(`F32`_numtype, `FLOOR`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#999 : numtype} "f32.trunc" => `UNOP`_instr{numtype#999}(`F32`_numtype, `TRUNC`_unop_) + prod "f32.trunc" => `UNOP`_instr(`F32`_numtype, `TRUNC`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1001 : numtype} "f32.nearest" => `UNOP`_instr{numtype#1001}(`F32`_numtype, `NEAREST`_unop_) + prod "f32.nearest" => `UNOP`_instr(`F32`_numtype, `NEAREST`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1003 : numtype} "f64.abs" => `UNOP`_instr{numtype#1003}(`F64`_numtype, `ABS`_unop_) + prod "f64.abs" => `UNOP`_instr(`F64`_numtype, `ABS`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1005 : numtype} "f64.neg" => `UNOP`_instr{numtype#1005}(`F64`_numtype, `NEG`_unop_) + prod "f64.neg" => `UNOP`_instr(`F64`_numtype, `NEG`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1007 : numtype} "f64.sqrt" => `UNOP`_instr{numtype#1007}(`F64`_numtype, `SQRT`_unop_) + prod "f64.sqrt" => `UNOP`_instr(`F64`_numtype, `SQRT`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1009 : numtype} "f64.ceil" => `UNOP`_instr{numtype#1009}(`F64`_numtype, `CEIL`_unop_) + prod "f64.ceil" => `UNOP`_instr(`F64`_numtype, `CEIL`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1011 : numtype} "f64.floor" => `UNOP`_instr{numtype#1011}(`F64`_numtype, `FLOOR`_unop_) + prod "f64.floor" => `UNOP`_instr(`F64`_numtype, `FLOOR`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1013 : numtype} "f64.trunc" => `UNOP`_instr{numtype#1013}(`F64`_numtype, `TRUNC`_unop_) + prod "f64.trunc" => `UNOP`_instr(`F64`_numtype, `TRUNC`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1015 : numtype} "f64.nearest" => `UNOP`_instr{numtype#1015}(`F64`_numtype, `NEAREST`_unop_) + prod "f64.nearest" => `UNOP`_instr(`F64`_numtype, `NEAREST`_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1017 : numtype} "i32.add" => `BINOP`_instr{numtype#1017}(`I32`_numtype, `ADD`_binop_) + prod "i32.add" => `BINOP`_instr(`I32`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1019 : numtype} "i32.sub" => `BINOP`_instr{numtype#1019}(`I32`_numtype, `SUB`_binop_) + prod "i32.sub" => `BINOP`_instr(`I32`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1021 : numtype} "i32.mul" => `BINOP`_instr{numtype#1021}(`I32`_numtype, `MUL`_binop_) + prod "i32.mul" => `BINOP`_instr(`I32`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1023 : numtype, sx#18540 : sx} "i32.div_s" => `BINOP`_instr{numtype#1023}(`I32`_numtype, `DIV`_binop_{sx#18540}(`S`_sx)) + prod "i32.div_s" => `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1025 : numtype, sx#18634 : sx} "i32.div_u" => `BINOP`_instr{numtype#1025}(`I32`_numtype, `DIV`_binop_{sx#18634}(`U`_sx)) + prod "i32.div_u" => `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1027 : numtype, sx#18728 : sx} "i32.rem_s" => `BINOP`_instr{numtype#1027}(`I32`_numtype, `REM`_binop_{sx#18728}(`S`_sx)) + prod "i32.rem_s" => `BINOP`_instr(`I32`_numtype, `REM`_binop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1029 : numtype, sx#18822 : sx} "i32.rem_u" => `BINOP`_instr{numtype#1029}(`I32`_numtype, `REM`_binop_{sx#18822}(`U`_sx)) + prod "i32.rem_u" => `BINOP`_instr(`I32`_numtype, `REM`_binop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1031 : numtype} "i32.and" => `BINOP`_instr{numtype#1031}(`I32`_numtype, `AND`_binop_) + prod "i32.and" => `BINOP`_instr(`I32`_numtype, `AND`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1033 : numtype} "i32.or" => `BINOP`_instr{numtype#1033}(`I32`_numtype, `OR`_binop_) + prod "i32.or" => `BINOP`_instr(`I32`_numtype, `OR`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1035 : numtype} "i32.xor" => `BINOP`_instr{numtype#1035}(`I32`_numtype, `XOR`_binop_) + prod "i32.xor" => `BINOP`_instr(`I32`_numtype, `XOR`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1037 : numtype} "i32.shl" => `BINOP`_instr{numtype#1037}(`I32`_numtype, `SHL`_binop_) + prod "i32.shl" => `BINOP`_instr(`I32`_numtype, `SHL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1039 : numtype, sx#19096 : sx} "i32.shr_s" => `BINOP`_instr{numtype#1039}(`I32`_numtype, `SHR`_binop_{sx#19096}(`S`_sx)) + prod "i32.shr_s" => `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1041 : numtype, sx#19190 : sx} "i32.shr_u" => `BINOP`_instr{numtype#1041}(`I32`_numtype, `SHR`_binop_{sx#19190}(`U`_sx)) + prod "i32.shr_u" => `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1043 : numtype} "i32.rotl" => `BINOP`_instr{numtype#1043}(`I32`_numtype, `ROTL`_binop_) + prod "i32.rotl" => `BINOP`_instr(`I32`_numtype, `ROTL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1045 : numtype} "i32.rotr" => `BINOP`_instr{numtype#1045}(`I32`_numtype, `ROTR`_binop_) + prod "i32.rotr" => `BINOP`_instr(`I32`_numtype, `ROTR`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1047 : numtype} "i64.add" => `BINOP`_instr{numtype#1047}(`I64`_numtype, `ADD`_binop_) + prod "i64.add" => `BINOP`_instr(`I64`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1049 : numtype} "i64.sub" => `BINOP`_instr{numtype#1049}(`I64`_numtype, `SUB`_binop_) + prod "i64.sub" => `BINOP`_instr(`I64`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1051 : numtype} "i64.mul" => `BINOP`_instr{numtype#1051}(`I64`_numtype, `MUL`_binop_) + prod "i64.mul" => `BINOP`_instr(`I64`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1053 : numtype, sx#19509 : sx} "i64.div_s" => `BINOP`_instr{numtype#1053}(`I64`_numtype, `DIV`_binop_{sx#19509}(`S`_sx)) + prod "i64.div_s" => `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1055 : numtype, sx#19603 : sx} "i64.div_u" => `BINOP`_instr{numtype#1055}(`I64`_numtype, `DIV`_binop_{sx#19603}(`U`_sx)) + prod "i64.div_u" => `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1057 : numtype, sx#19697 : sx} "i64.rem_s" => `BINOP`_instr{numtype#1057}(`I64`_numtype, `REM`_binop_{sx#19697}(`S`_sx)) + prod "i64.rem_s" => `BINOP`_instr(`I64`_numtype, `REM`_binop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1059 : numtype, sx#19791 : sx} "i64.rem_u" => `BINOP`_instr{numtype#1059}(`I64`_numtype, `REM`_binop_{sx#19791}(`U`_sx)) + prod "i64.rem_u" => `BINOP`_instr(`I64`_numtype, `REM`_binop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1061 : numtype} "i64.and" => `BINOP`_instr{numtype#1061}(`I64`_numtype, `AND`_binop_) + prod "i64.and" => `BINOP`_instr(`I64`_numtype, `AND`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1063 : numtype} "i64.or" => `BINOP`_instr{numtype#1063}(`I64`_numtype, `OR`_binop_) + prod "i64.or" => `BINOP`_instr(`I64`_numtype, `OR`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1065 : numtype} "i64.xor" => `BINOP`_instr{numtype#1065}(`I64`_numtype, `XOR`_binop_) + prod "i64.xor" => `BINOP`_instr(`I64`_numtype, `XOR`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1067 : numtype} "i64.shl" => `BINOP`_instr{numtype#1067}(`I64`_numtype, `SHL`_binop_) + prod "i64.shl" => `BINOP`_instr(`I64`_numtype, `SHL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1069 : numtype, sx#20065 : sx} "i64.shr_s" => `BINOP`_instr{numtype#1069}(`I64`_numtype, `SHR`_binop_{sx#20065}(`S`_sx)) + prod "i64.shr_s" => `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1071 : numtype, sx#20159 : sx} "i64.shr_u" => `BINOP`_instr{numtype#1071}(`I64`_numtype, `SHR`_binop_{sx#20159}(`U`_sx)) + prod "i64.shr_u" => `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1073 : numtype} "i64.rotl" => `BINOP`_instr{numtype#1073}(`I64`_numtype, `ROTL`_binop_) + prod "i64.rotl" => `BINOP`_instr(`I64`_numtype, `ROTL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1075 : numtype} "i64.rotr" => `BINOP`_instr{numtype#1075}(`I64`_numtype, `ROTR`_binop_) + prod "i64.rotr" => `BINOP`_instr(`I64`_numtype, `ROTR`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1077 : numtype} "f32.add" => `BINOP`_instr{numtype#1077}(`F32`_numtype, `ADD`_binop_) + prod "f32.add" => `BINOP`_instr(`F32`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1079 : numtype} "f32.sub" => `BINOP`_instr{numtype#1079}(`F32`_numtype, `SUB`_binop_) + prod "f32.sub" => `BINOP`_instr(`F32`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1081 : numtype} "f32.mul" => `BINOP`_instr{numtype#1081}(`F32`_numtype, `MUL`_binop_) + prod "f32.mul" => `BINOP`_instr(`F32`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1083 : numtype} "f32.div" => `BINOP`_instr{numtype#1083}(`F32`_numtype, `DIV`_binop_) + prod "f32.div" => `BINOP`_instr(`F32`_numtype, `DIV`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1085 : numtype} "f32.min" => `BINOP`_instr{numtype#1085}(`F32`_numtype, `MIN`_binop_) + prod "f32.min" => `BINOP`_instr(`F32`_numtype, `MIN`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1087 : numtype} "f32.max" => `BINOP`_instr{numtype#1087}(`F32`_numtype, `MAX`_binop_) + prod "f32.max" => `BINOP`_instr(`F32`_numtype, `MAX`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1089 : numtype} "f32.copysign" => `BINOP`_instr{numtype#1089}(`F32`_numtype, `COPYSIGN`_binop_) + prod "f32.copysign" => `BINOP`_instr(`F32`_numtype, `COPYSIGN`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1091 : numtype} "f64.add" => `BINOP`_instr{numtype#1091}(`F64`_numtype, `ADD`_binop_) + prod "f64.add" => `BINOP`_instr(`F64`_numtype, `ADD`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1093 : numtype} "f64.sub" => `BINOP`_instr{numtype#1093}(`F64`_numtype, `SUB`_binop_) + prod "f64.sub" => `BINOP`_instr(`F64`_numtype, `SUB`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1095 : numtype} "f64.mul" => `BINOP`_instr{numtype#1095}(`F64`_numtype, `MUL`_binop_) + prod "f64.mul" => `BINOP`_instr(`F64`_numtype, `MUL`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1097 : numtype} "f64.div" => `BINOP`_instr{numtype#1097}(`F64`_numtype, `DIV`_binop_) + prod "f64.div" => `BINOP`_instr(`F64`_numtype, `DIV`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1099 : numtype} "f64.min" => `BINOP`_instr{numtype#1099}(`F64`_numtype, `MIN`_binop_) + prod "f64.min" => `BINOP`_instr(`F64`_numtype, `MIN`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1101 : numtype} "f64.max" => `BINOP`_instr{numtype#1101}(`F64`_numtype, `MAX`_binop_) + prod "f64.max" => `BINOP`_instr(`F64`_numtype, `MAX`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype#1103 : numtype} "f64.copysign" => `BINOP`_instr{numtype#1103}(`F64`_numtype, `COPYSIGN`_binop_) + prod "f64.copysign" => `BINOP`_instr(`F64`_numtype, `COPYSIGN`_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#75 : numtype, numtype_2#75 : numtype} "i32.wrap_i64" => `CVTOP`_instr{numtype_1#75, numtype_2#75}(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__) + prod "i32.wrap_i64" => `CVTOP`_instr(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#77 : numtype, numtype_2#77 : numtype, sx#20328 : sx} "i32.trunc_f32_s" => `CVTOP`_instr{numtype_1#77, numtype_2#77}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20328}(`S`_sx)) + prod "i32.trunc_f32_s" => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#79 : numtype, numtype_2#79 : numtype, sx#20392 : sx} "i32.trunc_f32_u" => `CVTOP`_instr{numtype_1#79, numtype_2#79}(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20392}(`U`_sx)) + prod "i32.trunc_f32_u" => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#81 : numtype, numtype_2#81 : numtype, sx#20456 : sx} "i32.trunc_f64_s" => `CVTOP`_instr{numtype_1#81, numtype_2#81}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#20456}(`S`_sx)) + prod "i32.trunc_f64_s" => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#83 : numtype, numtype_2#83 : numtype, sx#20520 : sx} "i32.trunc_f64_u" => `CVTOP`_instr{numtype_1#83, numtype_2#83}(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#20520}(`U`_sx)) + prod "i32.trunc_f64_u" => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#85 : numtype, numtype_2#85 : numtype, sx#20584 : sx} "i32.trunc_sat_f32_s" => `CVTOP`_instr{numtype_1#85, numtype_2#85}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#20584}(`S`_sx)) + prod "i32.trunc_sat_f32_s" => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#87 : numtype, numtype_2#87 : numtype, sx#20648 : sx} "i32.trunc_sat_f32_u" => `CVTOP`_instr{numtype_1#87, numtype_2#87}(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#20648}(`U`_sx)) + prod "i32.trunc_sat_f32_u" => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#89 : numtype, numtype_2#89 : numtype, sx#20712 : sx} "i32.trunc_sat_f64_s" => `CVTOP`_instr{numtype_1#89, numtype_2#89}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#20712}(`S`_sx)) + prod "i32.trunc_sat_f64_s" => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#91 : numtype, numtype_2#91 : numtype, sx#20776 : sx} "i32.trunc_sat_f64_u" => `CVTOP`_instr{numtype_1#91, numtype_2#91}(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#20776}(`U`_sx)) + prod "i32.trunc_sat_f64_u" => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#93 : numtype, numtype_2#93 : numtype, sx#20810 : sx} "i64.extend_i64_s" => `CVTOP`_instr{numtype_1#93, numtype_2#93}(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__{sx#20810}(`S`_sx)) + prod "i64.extend_i64_s" => `CVTOP`_instr(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#95 : numtype, numtype_2#95 : numtype, sx#20844 : sx} "i64.extend_i64_u" => `CVTOP`_instr{numtype_1#95, numtype_2#95}(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__{sx#20844}(`U`_sx)) + prod "i64.extend_i64_u" => `CVTOP`_instr(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#97 : numtype, numtype_2#97 : numtype, sx#20908 : sx} "i64.trunc_f32_s" => `CVTOP`_instr{numtype_1#97, numtype_2#97}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20908}(`S`_sx)) + prod "i64.trunc_f32_s" => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#99 : numtype, numtype_2#99 : numtype, sx#20972 : sx} "i64.trunc_f32_u" => `CVTOP`_instr{numtype_1#99, numtype_2#99}(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__{sx#20972}(`U`_sx)) + prod "i64.trunc_f32_u" => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#101 : numtype, numtype_2#101 : numtype, sx#21036 : sx} "i64.trunc_f64_s" => `CVTOP`_instr{numtype_1#101, numtype_2#101}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#21036}(`S`_sx)) + prod "i64.trunc_f64_s" => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#103 : numtype, numtype_2#103 : numtype, sx#21100 : sx} "i64.trunc_f64_u" => `CVTOP`_instr{numtype_1#103, numtype_2#103}(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__{sx#21100}(`U`_sx)) + prod "i64.trunc_f64_u" => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#105 : numtype, numtype_2#105 : numtype, sx#21164 : sx} "i64.trunc_sat_f32_s" => `CVTOP`_instr{numtype_1#105, numtype_2#105}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#21164}(`S`_sx)) + prod "i64.trunc_sat_f32_s" => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#107 : numtype, numtype_2#107 : numtype, sx#21228 : sx} "i64.trunc_sat_f32_u" => `CVTOP`_instr{numtype_1#107, numtype_2#107}(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__{sx#21228}(`U`_sx)) + prod "i64.trunc_sat_f32_u" => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#109 : numtype, numtype_2#109 : numtype, sx#21292 : sx} "i64.trunc_sat_f64_s" => `CVTOP`_instr{numtype_1#109, numtype_2#109}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#21292}(`S`_sx)) + prod "i64.trunc_sat_f64_s" => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#111 : numtype, numtype_2#111 : numtype, sx#21356 : sx} "i64.trunc_sat_f64_u" => `CVTOP`_instr{numtype_1#111, numtype_2#111}(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__{sx#21356}(`U`_sx)) + prod "i64.trunc_sat_f64_u" => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#113 : numtype, numtype_2#113 : numtype} "f32.demote_f64" => `CVTOP`_instr{numtype_1#113, numtype_2#113}(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__) + prod "f32.demote_f64" => `CVTOP`_instr(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#115 : numtype, numtype_2#115 : numtype, sx#21390 : sx} "f32.convert_i32_s" => `CVTOP`_instr{numtype_1#115, numtype_2#115}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21390}(`S`_sx)) + prod "f32.convert_i32_s" => `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#117 : numtype, numtype_2#117 : numtype, sx#21424 : sx} "f32.convert_i32_u" => `CVTOP`_instr{numtype_1#117, numtype_2#117}(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21424}(`U`_sx)) + prod "f32.convert_i32_u" => `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#119 : numtype, numtype_2#119 : numtype, sx#21458 : sx} "f32.convert_i64_s" => `CVTOP`_instr{numtype_1#119, numtype_2#119}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21458}(`S`_sx)) + prod "f32.convert_i64_s" => `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#121 : numtype, numtype_2#121 : numtype, sx#21492 : sx} "f32.convert_i64_u" => `CVTOP`_instr{numtype_1#121, numtype_2#121}(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21492}(`U`_sx)) + prod "f32.convert_i64_u" => `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#123 : numtype, numtype_2#123 : numtype} "f64.promote_f32" => `CVTOP`_instr{numtype_1#123, numtype_2#123}(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__) + prod "f64.promote_f32" => `CVTOP`_instr(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#125 : numtype, numtype_2#125 : numtype, sx#21526 : sx} "f64.convert_i32_s" => `CVTOP`_instr{numtype_1#125, numtype_2#125}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21526}(`S`_sx)) + prod "f64.convert_i32_s" => `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#127 : numtype, numtype_2#127 : numtype, sx#21560 : sx} "f64.convert_i32_u" => `CVTOP`_instr{numtype_1#127, numtype_2#127}(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__{sx#21560}(`U`_sx)) + prod "f64.convert_i32_u" => `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#129 : numtype, numtype_2#129 : numtype, sx#21594 : sx} "f64.convert_i64_s" => `CVTOP`_instr{numtype_1#129, numtype_2#129}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21594}(`S`_sx)) + prod "f64.convert_i64_s" => `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#131 : numtype, numtype_2#131 : numtype, sx#21628 : sx} "f64.convert_i64_u" => `CVTOP`_instr{numtype_1#131, numtype_2#131}(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__{sx#21628}(`U`_sx)) + prod "f64.convert_i64_u" => `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#133 : numtype, numtype_2#133 : numtype} "i32.reinterpret_f32" => `CVTOP`_instr{numtype_1#133, numtype_2#133}(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__) + prod "i32.reinterpret_f32" => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#135 : numtype, numtype_2#135 : numtype} "i64.reinterpret_f64" => `CVTOP`_instr{numtype_1#135, numtype_2#135}(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__) + prod "i64.reinterpret_f64" => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#137 : numtype, numtype_2#137 : numtype} "f32.reinterpret_i32" => `CVTOP`_instr{numtype_1#137, numtype_2#137}(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__) + prod "f32.reinterpret_i32" => `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{numtype_1#139 : numtype, numtype_2#139 : numtype} "f64.reinterpret_i64" => `CVTOP`_instr{numtype_1#139, numtype_2#139}(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__) + prod "f64.reinterpret_i64" => `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#304 : vectype, `c*` : u8*} {{"v128.const"} {"i8x16"} {c*{c <- `c*`}:Ti8^16{}}} => `VCONST`_instr{vectype#304}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`}))) + prod{`c*` : u8*} {{"v128.const"} {"i8x16"} {c*{c <- `c*`}:Ti8^16{}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#306 : vectype, `c*` : u16*} {{"v128.const"} {"i16x8"} {c*{c <- `c*`}:Ti16^8{}}} => `VCONST`_instr{vectype#306}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`}))) + prod{`c*` : u16*} {{"v128.const"} {"i16x8"} {c*{c <- `c*`}:Ti16^8{}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#308 : vectype, `c*` : u32*} {{"v128.const"} {"i32x4"} {c*{c <- `c*`}:Ti32^4{}}} => `VCONST`_instr{vectype#308}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`}))) + prod{`c*` : u32*} {{"v128.const"} {"i32x4"} {c*{c <- `c*`}:Ti32^4{}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#310 : vectype, `c*` : u64*} {{"v128.const"} {"i64x2"} {c*{c <- `c*`}:Ti64^2{}}} => `VCONST`_instr{vectype#310}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`}))) + prod{`c*` : u64*} {{"v128.const"} {"i64x2"} {c*{c <- `c*`}:Ti64^2{}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#312 : vectype, `c*` : f32*} {{"v128.const"} {"f32x4"} {c*{c <- `c*`}:Tf32^4{}}} => `VCONST`_instr{vectype#312}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`}))) + prod{`c*` : f32*} {{"v128.const"} {"f32x4"} {c*{c <- `c*`}:Tf32^4{}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#314 : vectype, `c*` : f64*} {{"v128.const"} {"f64x2"} {c*{c <- `c*`}:Tf64^2{}}} => `VCONST`_instr{vectype#314}(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`}))) + prod{`c*` : f64*} {{"v128.const"} {"f64x2"} {c*{c <- `c*`}:Tf64^2{}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{bshape#19 : bshape, `laneidx*#9` : laneidx*, i#103376 : nat, shape#3961 : shape, shape#3972 : shape, lanetype#22986 : lanetype, dim#22986 : dim, i#103380 : nat, i#103387 : nat, `i*` : laneidx*} {{"i8x16.shuffle"} {i*{i <- `i*`}:Tlaneidx^16{}}} => `VSHUFFLE`_instr{bshape#19, `laneidx*#9`, i#103376, shape#3961}(`%`_bshape{shape#3972}(`%X%`_shape{lanetype#22986, dim#22986, i#103380}(`I8`_lanetype, `%`_dim{i#103387}(16))), i*{i <- `i*`}) + prod{`i*` : laneidx*} {{"i8x16.shuffle"} {i*{i <- `i*`}:Tlaneidx^16{}}} => `VSHUFFLE`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), i*{i <- `i*`}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{bshape#21 : bshape, shape#3984 : shape, lanetype#22998 : lanetype, dim#22998 : dim, i#103415 : nat, i#103422 : nat} "i8x16.swizzle" => `VSWIZZLOP`_instr{bshape#21}(`%`_bshape{shape#3984}(`%X%`_shape{lanetype#22998, dim#22998, i#103415}(`I8`_lanetype, `%`_dim{i#103422}(16))), `SWIZZLE`_vswizzlop_) + prod "i8x16.swizzle" => `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SWIZZLE`_vswizzlop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{bshape#23 : bshape, shape#4011 : shape, lanetype#23055 : lanetype, dim#23055 : dim, i#103502 : nat, i#103509 : nat} "i8x16.relaxed_swizzle" => `VSWIZZLOP`_instr{bshape#23}(`%`_bshape{shape#4011}(`%X%`_shape{lanetype#23055, dim#23055, i#103502}(`I8`_lanetype, `%`_dim{i#103509}(16))), `RELAXED_SWIZZLE`_vswizzlop_) + prod "i8x16.relaxed_swizzle" => `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_SWIZZLE`_vswizzlop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4028 : shape, lanetype#23112 : lanetype, dim#23112 : dim, i#103589 : nat, i#103596 : nat} "i8x16.splat" => `VSPLAT`_instr{shape#4028}(`%X%`_shape{lanetype#23112, dim#23112, i#103589}(`I8`_lanetype, `%`_dim{i#103596}(16))) + prod "i8x16.splat" => `VSPLAT`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4030 : shape, lanetype#23124 : lanetype, dim#23124 : dim, i#103601 : nat, i#103608 : nat} "i16x8.splat" => `VSPLAT`_instr{shape#4030}(`%X%`_shape{lanetype#23124, dim#23124, i#103601}(`I16`_lanetype, `%`_dim{i#103608}(8))) + prod "i16x8.splat" => `VSPLAT`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4032 : shape, lanetype#23136 : lanetype, dim#23136 : dim, i#103613 : nat, i#103620 : nat} "i32x4.splat" => `VSPLAT`_instr{shape#4032}(`%X%`_shape{lanetype#23136, dim#23136, i#103613}(`I32`_lanetype, `%`_dim{i#103620}(4))) + prod "i32x4.splat" => `VSPLAT`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4034 : shape, lanetype#23148 : lanetype, dim#23148 : dim, i#103625 : nat, i#103632 : nat} "i64x2.splat" => `VSPLAT`_instr{shape#4034}(`%X%`_shape{lanetype#23148, dim#23148, i#103625}(`I64`_lanetype, `%`_dim{i#103632}(2))) + prod "i64x2.splat" => `VSPLAT`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4036 : shape, lanetype#23160 : lanetype, dim#23160 : dim, i#103637 : nat, i#103644 : nat} "f32x4.splat" => `VSPLAT`_instr{shape#4036}(`%X%`_shape{lanetype#23160, dim#23160, i#103637}(`F32`_lanetype, `%`_dim{i#103644}(4))) + prod "f32x4.splat" => `VSPLAT`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4038 : shape, lanetype#23172 : lanetype, dim#23172 : dim, i#103649 : nat, i#103656 : nat} "f64x2.splat" => `VSPLAT`_instr{shape#4038}(`%X%`_shape{lanetype#23172, dim#23172, i#103649}(`F64`_lanetype, `%`_dim{i#103656}(2))) + prod "f64x2.splat" => `VSPLAT`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4040 : shape, `sx?#71` : sx?, laneidx#91 : laneidx, lanetype#23184 : lanetype, dim#23184 : dim, i#103678 : nat, i#103685 : nat, i : laneidx} {{"i8x16.extract_lane_s"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4040, `sx?#71`, laneidx#91}(`%X%`_shape{lanetype#23184, dim#23184, i#103678}(`I8`_lanetype, `%`_dim{i#103685}(16)), ?(`S`_sx), i) + prod{i : laneidx} {{"i8x16.extract_lane_s"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`S`_sx), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4042 : shape, `sx?#73` : sx?, laneidx#93 : laneidx, lanetype#23196 : lanetype, dim#23196 : dim, i#103763 : nat, i#103770 : nat, i : laneidx} {{"i8x16.extract_lane_u"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4042, `sx?#73`, laneidx#93}(`%X%`_shape{lanetype#23196, dim#23196, i#103763}(`I8`_lanetype, `%`_dim{i#103770}(16)), ?(`U`_sx), i) + prod{i : laneidx} {{"i8x16.extract_lane_u"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`U`_sx), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4044 : shape, `sx?#75` : sx?, laneidx#95 : laneidx, lanetype#23208 : lanetype, dim#23208 : dim, i#103848 : nat, i#103855 : nat, i : laneidx} {{"i16x8.extract_lane_s"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4044, `sx?#75`, laneidx#95}(`%X%`_shape{lanetype#23208, dim#23208, i#103848}(`I16`_lanetype, `%`_dim{i#103855}(8)), ?(`S`_sx), i) + prod{i : laneidx} {{"i16x8.extract_lane_s"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`S`_sx), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4046 : shape, `sx?#77` : sx?, laneidx#97 : laneidx, lanetype#23220 : lanetype, dim#23220 : dim, i#103933 : nat, i#103940 : nat, i : laneidx} {{"i16x8.extract_lane_u"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4046, `sx?#77`, laneidx#97}(`%X%`_shape{lanetype#23220, dim#23220, i#103933}(`I16`_lanetype, `%`_dim{i#103940}(8)), ?(`U`_sx), i) + prod{i : laneidx} {{"i16x8.extract_lane_u"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`U`_sx), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4048 : shape, `sx?#79` : sx?, laneidx#99 : laneidx, lanetype#23232 : lanetype, dim#23232 : dim, i#104018 : nat, i#104025 : nat, i : laneidx} {{"i32x4.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4048, `sx?#79`, laneidx#99}(`%X%`_shape{lanetype#23232, dim#23232, i#104018}(`I32`_lanetype, `%`_dim{i#104025}(4)), ?(), i) + prod{i : laneidx} {{"i32x4.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), ?(), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4050 : shape, `sx?#81` : sx?, laneidx#101 : laneidx, lanetype#23244 : lanetype, dim#23244 : dim, i#104059 : nat, i#104066 : nat, i : laneidx} {{"i64x2.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4050, `sx?#81`, laneidx#101}(`%X%`_shape{lanetype#23244, dim#23244, i#104059}(`I64`_lanetype, `%`_dim{i#104066}(2)), ?(), i) + prod{i : laneidx} {{"i64x2.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), ?(), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4052 : shape, `sx?#83` : sx?, laneidx#103 : laneidx, lanetype#23256 : lanetype, dim#23256 : dim, i#104100 : nat, i#104107 : nat, i : laneidx} {{"f32x4.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4052, `sx?#83`, laneidx#103}(`%X%`_shape{lanetype#23256, dim#23256, i#104100}(`F32`_lanetype, `%`_dim{i#104107}(4)), ?(), i) + prod{i : laneidx} {{"f32x4.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), ?(), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4054 : shape, `sx?#85` : sx?, laneidx#105 : laneidx, lanetype#23268 : lanetype, dim#23268 : dim, i#104141 : nat, i#104148 : nat, i : laneidx} {{"f64x2.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr{shape#4054, `sx?#85`, laneidx#105}(`%X%`_shape{lanetype#23268, dim#23268, i#104141}(`F64`_lanetype, `%`_dim{i#104148}(2)), ?(), i) + prod{i : laneidx} {{"f64x2.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), ?(), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4056 : shape, laneidx#107 : laneidx, lanetype#23280 : lanetype, dim#23280 : dim, i#104182 : nat, i#104189 : nat, i : laneidx} {{"i8x16.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr{shape#4056, laneidx#107}(`%X%`_shape{lanetype#23280, dim#23280, i#104182}(`I8`_lanetype, `%`_dim{i#104189}(16)), i) + prod{i : laneidx} {{"i8x16.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4058 : shape, laneidx#109 : laneidx, lanetype#23292 : lanetype, dim#23292 : dim, i#104223 : nat, i#104230 : nat, i : laneidx} {{"i16x8.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr{shape#4058, laneidx#109}(`%X%`_shape{lanetype#23292, dim#23292, i#104223}(`I16`_lanetype, `%`_dim{i#104230}(8)), i) + prod{i : laneidx} {{"i16x8.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4060 : shape, laneidx#111 : laneidx, lanetype#23304 : lanetype, dim#23304 : dim, i#104264 : nat, i#104271 : nat, i : laneidx} {{"i32x4.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr{shape#4060, laneidx#111}(`%X%`_shape{lanetype#23304, dim#23304, i#104264}(`I32`_lanetype, `%`_dim{i#104271}(4)), i) + prod{i : laneidx} {{"i32x4.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4062 : shape, laneidx#113 : laneidx, lanetype#23316 : lanetype, dim#23316 : dim, i#104305 : nat, i#104312 : nat, i : laneidx} {{"i64x2.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr{shape#4062, laneidx#113}(`%X%`_shape{lanetype#23316, dim#23316, i#104305}(`I64`_lanetype, `%`_dim{i#104312}(2)), i) + prod{i : laneidx} {{"i64x2.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4064 : shape, laneidx#115 : laneidx, lanetype#23328 : lanetype, dim#23328 : dim, i#104346 : nat, i#104353 : nat, i : laneidx} {{"f32x4.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr{shape#4064, laneidx#115}(`%X%`_shape{lanetype#23328, dim#23328, i#104346}(`F32`_lanetype, `%`_dim{i#104353}(4)), i) + prod{i : laneidx} {{"f32x4.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4066 : shape, laneidx#117 : laneidx, lanetype#23340 : lanetype, dim#23340 : dim, i#104387 : nat, i#104394 : nat, i : laneidx} {{"f64x2.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr{shape#4066, laneidx#117}(`%X%`_shape{lanetype#23340, dim#23340, i#104387}(`F64`_lanetype, `%`_dim{i#104394}(2)), i) + prod{i : laneidx} {{"f64x2.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#316 : vectype, vvtestop#9 : vvtestop} "v128.any_true" => `VVTESTOP`_instr{vectype#316, vvtestop#9}(`V128`_vectype, `ANY_TRUE`_vvtestop) + prod "v128.any_true" => `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4068 : shape, lanetype#23352 : lanetype, dim#23352 : dim, i#104411 : nat, i#104418 : nat} "i8x16.all_true" => `VTESTOP`_instr{shape#4068}(`%X%`_shape{lanetype#23352, dim#23352, i#104411}(`I8`_lanetype, `%`_dim{i#104418}(16)), `ALL_TRUE`_vtestop_) + prod "i8x16.all_true" => `VTESTOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4070 : shape, lanetype#23379 : lanetype, dim#23379 : dim, i#104468 : nat, i#104475 : nat} "i16x8.all_true" => `VTESTOP`_instr{shape#4070}(`%X%`_shape{lanetype#23379, dim#23379, i#104468}(`I16`_lanetype, `%`_dim{i#104475}(8)), `ALL_TRUE`_vtestop_) + prod "i16x8.all_true" => `VTESTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4072 : shape, lanetype#23406 : lanetype, dim#23406 : dim, i#104525 : nat, i#104532 : nat} "i32x4.all_true" => `VTESTOP`_instr{shape#4072}(`%X%`_shape{lanetype#23406, dim#23406, i#104525}(`I32`_lanetype, `%`_dim{i#104532}(4)), `ALL_TRUE`_vtestop_) + prod "i32x4.all_true" => `VTESTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4074 : shape, lanetype#23433 : lanetype, dim#23433 : dim, i#104582 : nat, i#104589 : nat} "i64x2.all_true" => `VTESTOP`_instr{shape#4074}(`%X%`_shape{lanetype#23433, dim#23433, i#104582}(`I64`_lanetype, `%`_dim{i#104589}(2)), `ALL_TRUE`_vtestop_) + prod "i64x2.all_true" => `VTESTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ALL_TRUE`_vtestop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4076 : shape, lanetype#23460 : lanetype, dim#23460 : dim, i#104639 : nat, i#104646 : nat} "i8x16.eq" => `VRELOP`_instr{shape#4076}(`%X%`_shape{lanetype#23460, dim#23460, i#104639}(`I8`_lanetype, `%`_dim{i#104646}(16)), `EQ`_vrelop_) + prod "i8x16.eq" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4078 : shape, lanetype#23487 : lanetype, dim#23487 : dim, i#104696 : nat, i#104703 : nat} "i8x16.ne" => `VRELOP`_instr{shape#4078}(`%X%`_shape{lanetype#23487, dim#23487, i#104696}(`I8`_lanetype, `%`_dim{i#104703}(16)), `NE`_vrelop_) + prod "i8x16.ne" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4080 : shape, lanetype#23514 : lanetype, dim#23514 : dim, i#104753 : nat, i#104760 : nat, sx#21962 : sx} "i8x16.lt_s" => `VRELOP`_instr{shape#4080}(`%X%`_shape{lanetype#23514, dim#23514, i#104753}(`I8`_lanetype, `%`_dim{i#104760}(16)), `LT`_vrelop_{sx#21962}(`S`_sx)) + prod "i8x16.lt_s" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4082 : shape, lanetype#23556 : lanetype, dim#23556 : dim, i#104855 : nat, i#104862 : nat, sx#22086 : sx} "i8x16.lt_u" => `VRELOP`_instr{shape#4082}(`%X%`_shape{lanetype#23556, dim#23556, i#104855}(`I8`_lanetype, `%`_dim{i#104862}(16)), `LT`_vrelop_{sx#22086}(`U`_sx)) + prod "i8x16.lt_u" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4084 : shape, lanetype#23598 : lanetype, dim#23598 : dim, i#104957 : nat, i#104964 : nat, sx#22210 : sx} "i8x16.gt_s" => `VRELOP`_instr{shape#4084}(`%X%`_shape{lanetype#23598, dim#23598, i#104957}(`I8`_lanetype, `%`_dim{i#104964}(16)), `GT`_vrelop_{sx#22210}(`S`_sx)) + prod "i8x16.gt_s" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4086 : shape, lanetype#23640 : lanetype, dim#23640 : dim, i#105059 : nat, i#105066 : nat, sx#22334 : sx} "i8x16.gt_u" => `VRELOP`_instr{shape#4086}(`%X%`_shape{lanetype#23640, dim#23640, i#105059}(`I8`_lanetype, `%`_dim{i#105066}(16)), `GT`_vrelop_{sx#22334}(`U`_sx)) + prod "i8x16.gt_u" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4088 : shape, lanetype#23682 : lanetype, dim#23682 : dim, i#105161 : nat, i#105168 : nat, sx#22458 : sx} "i8x16.le_s" => `VRELOP`_instr{shape#4088}(`%X%`_shape{lanetype#23682, dim#23682, i#105161}(`I8`_lanetype, `%`_dim{i#105168}(16)), `LE`_vrelop_{sx#22458}(`S`_sx)) + prod "i8x16.le_s" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4090 : shape, lanetype#23724 : lanetype, dim#23724 : dim, i#105263 : nat, i#105270 : nat, sx#22582 : sx} "i8x16.le_u" => `VRELOP`_instr{shape#4090}(`%X%`_shape{lanetype#23724, dim#23724, i#105263}(`I8`_lanetype, `%`_dim{i#105270}(16)), `LE`_vrelop_{sx#22582}(`U`_sx)) + prod "i8x16.le_u" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4092 : shape, lanetype#23766 : lanetype, dim#23766 : dim, i#105365 : nat, i#105372 : nat, sx#22706 : sx} "i8x16.ge_s" => `VRELOP`_instr{shape#4092}(`%X%`_shape{lanetype#23766, dim#23766, i#105365}(`I8`_lanetype, `%`_dim{i#105372}(16)), `GE`_vrelop_{sx#22706}(`S`_sx)) + prod "i8x16.ge_s" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4094 : shape, lanetype#23808 : lanetype, dim#23808 : dim, i#105467 : nat, i#105474 : nat, sx#22830 : sx} "i8x16.ge_u" => `VRELOP`_instr{shape#4094}(`%X%`_shape{lanetype#23808, dim#23808, i#105467}(`I8`_lanetype, `%`_dim{i#105474}(16)), `GE`_vrelop_{sx#22830}(`U`_sx)) + prod "i8x16.ge_u" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4096 : shape, lanetype#23850 : lanetype, dim#23850 : dim, i#105569 : nat, i#105576 : nat} "i16x8.eq" => `VRELOP`_instr{shape#4096}(`%X%`_shape{lanetype#23850, dim#23850, i#105569}(`I16`_lanetype, `%`_dim{i#105576}(8)), `EQ`_vrelop_) + prod "i16x8.eq" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4098 : shape, lanetype#23877 : lanetype, dim#23877 : dim, i#105626 : nat, i#105633 : nat} "i16x8.ne" => `VRELOP`_instr{shape#4098}(`%X%`_shape{lanetype#23877, dim#23877, i#105626}(`I16`_lanetype, `%`_dim{i#105633}(8)), `NE`_vrelop_) + prod "i16x8.ne" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4100 : shape, lanetype#23904 : lanetype, dim#23904 : dim, i#105683 : nat, i#105690 : nat, sx#23074 : sx} "i16x8.lt_s" => `VRELOP`_instr{shape#4100}(`%X%`_shape{lanetype#23904, dim#23904, i#105683}(`I16`_lanetype, `%`_dim{i#105690}(8)), `LT`_vrelop_{sx#23074}(`S`_sx)) + prod "i16x8.lt_s" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4102 : shape, lanetype#23946 : lanetype, dim#23946 : dim, i#105785 : nat, i#105792 : nat, sx#23198 : sx} "i16x8.lt_u" => `VRELOP`_instr{shape#4102}(`%X%`_shape{lanetype#23946, dim#23946, i#105785}(`I16`_lanetype, `%`_dim{i#105792}(8)), `LT`_vrelop_{sx#23198}(`U`_sx)) + prod "i16x8.lt_u" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4104 : shape, lanetype#23988 : lanetype, dim#23988 : dim, i#105887 : nat, i#105894 : nat, sx#23322 : sx} "i16x8.gt_s" => `VRELOP`_instr{shape#4104}(`%X%`_shape{lanetype#23988, dim#23988, i#105887}(`I16`_lanetype, `%`_dim{i#105894}(8)), `GT`_vrelop_{sx#23322}(`S`_sx)) + prod "i16x8.gt_s" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4106 : shape, lanetype#24030 : lanetype, dim#24030 : dim, i#105989 : nat, i#105996 : nat, sx#23446 : sx} "i16x8.gt_u" => `VRELOP`_instr{shape#4106}(`%X%`_shape{lanetype#24030, dim#24030, i#105989}(`I16`_lanetype, `%`_dim{i#105996}(8)), `GT`_vrelop_{sx#23446}(`U`_sx)) + prod "i16x8.gt_u" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4108 : shape, lanetype#24072 : lanetype, dim#24072 : dim, i#106091 : nat, i#106098 : nat, sx#23570 : sx} "i16x8.le_s" => `VRELOP`_instr{shape#4108}(`%X%`_shape{lanetype#24072, dim#24072, i#106091}(`I16`_lanetype, `%`_dim{i#106098}(8)), `LE`_vrelop_{sx#23570}(`S`_sx)) + prod "i16x8.le_s" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4110 : shape, lanetype#24114 : lanetype, dim#24114 : dim, i#106193 : nat, i#106200 : nat, sx#23694 : sx} "i16x8.le_u" => `VRELOP`_instr{shape#4110}(`%X%`_shape{lanetype#24114, dim#24114, i#106193}(`I16`_lanetype, `%`_dim{i#106200}(8)), `LE`_vrelop_{sx#23694}(`U`_sx)) + prod "i16x8.le_u" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4112 : shape, lanetype#24156 : lanetype, dim#24156 : dim, i#106295 : nat, i#106302 : nat, sx#23818 : sx} "i16x8.ge_s" => `VRELOP`_instr{shape#4112}(`%X%`_shape{lanetype#24156, dim#24156, i#106295}(`I16`_lanetype, `%`_dim{i#106302}(8)), `GE`_vrelop_{sx#23818}(`S`_sx)) + prod "i16x8.ge_s" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4114 : shape, lanetype#24198 : lanetype, dim#24198 : dim, i#106397 : nat, i#106404 : nat, sx#23942 : sx} "i16x8.ge_u" => `VRELOP`_instr{shape#4114}(`%X%`_shape{lanetype#24198, dim#24198, i#106397}(`I16`_lanetype, `%`_dim{i#106404}(8)), `GE`_vrelop_{sx#23942}(`U`_sx)) + prod "i16x8.ge_u" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4116 : shape, lanetype#24240 : lanetype, dim#24240 : dim, i#106499 : nat, i#106506 : nat} "i32x4.eq" => `VRELOP`_instr{shape#4116}(`%X%`_shape{lanetype#24240, dim#24240, i#106499}(`I32`_lanetype, `%`_dim{i#106506}(4)), `EQ`_vrelop_) + prod "i32x4.eq" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4118 : shape, lanetype#24267 : lanetype, dim#24267 : dim, i#106556 : nat, i#106563 : nat} "i32x4.ne" => `VRELOP`_instr{shape#4118}(`%X%`_shape{lanetype#24267, dim#24267, i#106556}(`I32`_lanetype, `%`_dim{i#106563}(4)), `NE`_vrelop_) + prod "i32x4.ne" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4120 : shape, lanetype#24294 : lanetype, dim#24294 : dim, i#106613 : nat, i#106620 : nat, sx#24186 : sx} "i32x4.lt_s" => `VRELOP`_instr{shape#4120}(`%X%`_shape{lanetype#24294, dim#24294, i#106613}(`I32`_lanetype, `%`_dim{i#106620}(4)), `LT`_vrelop_{sx#24186}(`S`_sx)) + prod "i32x4.lt_s" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4122 : shape, lanetype#24336 : lanetype, dim#24336 : dim, i#106715 : nat, i#106722 : nat, sx#24310 : sx} "i32x4.lt_u" => `VRELOP`_instr{shape#4122}(`%X%`_shape{lanetype#24336, dim#24336, i#106715}(`I32`_lanetype, `%`_dim{i#106722}(4)), `LT`_vrelop_{sx#24310}(`U`_sx)) + prod "i32x4.lt_u" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4124 : shape, lanetype#24378 : lanetype, dim#24378 : dim, i#106817 : nat, i#106824 : nat, sx#24434 : sx} "i32x4.gt_s" => `VRELOP`_instr{shape#4124}(`%X%`_shape{lanetype#24378, dim#24378, i#106817}(`I32`_lanetype, `%`_dim{i#106824}(4)), `GT`_vrelop_{sx#24434}(`S`_sx)) + prod "i32x4.gt_s" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4126 : shape, lanetype#24420 : lanetype, dim#24420 : dim, i#106919 : nat, i#106926 : nat, sx#24558 : sx} "i32x4.gt_u" => `VRELOP`_instr{shape#4126}(`%X%`_shape{lanetype#24420, dim#24420, i#106919}(`I32`_lanetype, `%`_dim{i#106926}(4)), `GT`_vrelop_{sx#24558}(`U`_sx)) + prod "i32x4.gt_u" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4128 : shape, lanetype#24462 : lanetype, dim#24462 : dim, i#107021 : nat, i#107028 : nat, sx#24682 : sx} "i32x4.le_s" => `VRELOP`_instr{shape#4128}(`%X%`_shape{lanetype#24462, dim#24462, i#107021}(`I32`_lanetype, `%`_dim{i#107028}(4)), `LE`_vrelop_{sx#24682}(`S`_sx)) + prod "i32x4.le_s" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4130 : shape, lanetype#24504 : lanetype, dim#24504 : dim, i#107123 : nat, i#107130 : nat, sx#24806 : sx} "i32x4.le_u" => `VRELOP`_instr{shape#4130}(`%X%`_shape{lanetype#24504, dim#24504, i#107123}(`I32`_lanetype, `%`_dim{i#107130}(4)), `LE`_vrelop_{sx#24806}(`U`_sx)) + prod "i32x4.le_u" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4132 : shape, lanetype#24546 : lanetype, dim#24546 : dim, i#107225 : nat, i#107232 : nat, sx#24930 : sx} "i32x4.ge_s" => `VRELOP`_instr{shape#4132}(`%X%`_shape{lanetype#24546, dim#24546, i#107225}(`I32`_lanetype, `%`_dim{i#107232}(4)), `GE`_vrelop_{sx#24930}(`S`_sx)) + prod "i32x4.ge_s" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4134 : shape, lanetype#24588 : lanetype, dim#24588 : dim, i#107327 : nat, i#107334 : nat, sx#25054 : sx} "i32x4.ge_u" => `VRELOP`_instr{shape#4134}(`%X%`_shape{lanetype#24588, dim#24588, i#107327}(`I32`_lanetype, `%`_dim{i#107334}(4)), `GE`_vrelop_{sx#25054}(`U`_sx)) + prod "i32x4.ge_u" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4136 : shape, lanetype#24630 : lanetype, dim#24630 : dim, i#107429 : nat, i#107436 : nat} "i64x2.eq" => `VRELOP`_instr{shape#4136}(`%X%`_shape{lanetype#24630, dim#24630, i#107429}(`I64`_lanetype, `%`_dim{i#107436}(2)), `EQ`_vrelop_) + prod "i64x2.eq" => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4138 : shape, lanetype#24657 : lanetype, dim#24657 : dim, i#107486 : nat, i#107493 : nat} "i64x2.ne" => `VRELOP`_instr{shape#4138}(`%X%`_shape{lanetype#24657, dim#24657, i#107486}(`I64`_lanetype, `%`_dim{i#107493}(2)), `NE`_vrelop_) + prod "i64x2.ne" => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4140 : shape, lanetype#24684 : lanetype, dim#24684 : dim, i#107543 : nat, i#107550 : nat, sx#25298 : sx} "i64x2.lt_s" => `VRELOP`_instr{shape#4140}(`%X%`_shape{lanetype#24684, dim#24684, i#107543}(`I64`_lanetype, `%`_dim{i#107550}(2)), `LT`_vrelop_{sx#25298}(`S`_sx)) + prod "i64x2.lt_s" => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4142 : shape, lanetype#24726 : lanetype, dim#24726 : dim, i#107645 : nat, i#107652 : nat, sx#25422 : sx} "i64x2.gt_s" => `VRELOP`_instr{shape#4142}(`%X%`_shape{lanetype#24726, dim#24726, i#107645}(`I64`_lanetype, `%`_dim{i#107652}(2)), `GT`_vrelop_{sx#25422}(`S`_sx)) + prod "i64x2.gt_s" => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GT`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4144 : shape, lanetype#24768 : lanetype, dim#24768 : dim, i#107747 : nat, i#107754 : nat, sx#25546 : sx} "i64x2.le_s" => `VRELOP`_instr{shape#4144}(`%X%`_shape{lanetype#24768, dim#24768, i#107747}(`I64`_lanetype, `%`_dim{i#107754}(2)), `LE`_vrelop_{sx#25546}(`S`_sx)) + prod "i64x2.le_s" => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4146 : shape, lanetype#24810 : lanetype, dim#24810 : dim, i#107849 : nat, i#107856 : nat, sx#25670 : sx} "i64x2.ge_s" => `VRELOP`_instr{shape#4146}(`%X%`_shape{lanetype#24810, dim#24810, i#107849}(`I64`_lanetype, `%`_dim{i#107856}(2)), `GE`_vrelop_{sx#25670}(`S`_sx)) + prod "i64x2.ge_s" => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GE`_vrelop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4148 : shape, lanetype#24852 : lanetype, dim#24852 : dim, i#107951 : nat, i#107958 : nat} "f32x4.eq" => `VRELOP`_instr{shape#4148}(`%X%`_shape{lanetype#24852, dim#24852, i#107951}(`F32`_lanetype, `%`_dim{i#107958}(4)), `EQ`_vrelop_) + prod "f32x4.eq" => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4150 : shape, lanetype#24894 : lanetype, dim#24894 : dim, i#108023 : nat, i#108030 : nat} "f32x4.ne" => `VRELOP`_instr{shape#4150}(`%X%`_shape{lanetype#24894, dim#24894, i#108023}(`F32`_lanetype, `%`_dim{i#108030}(4)), `NE`_vrelop_) + prod "f32x4.ne" => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4152 : shape, lanetype#24936 : lanetype, dim#24936 : dim, i#108095 : nat, i#108102 : nat} "f32x4.lt" => `VRELOP`_instr{shape#4152}(`%X%`_shape{lanetype#24936, dim#24936, i#108095}(`F32`_lanetype, `%`_dim{i#108102}(4)), `LT`_vrelop_) + prod "f32x4.lt" => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LT`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4154 : shape, lanetype#24978 : lanetype, dim#24978 : dim, i#108167 : nat, i#108174 : nat} "f32x4.gt" => `VRELOP`_instr{shape#4154}(`%X%`_shape{lanetype#24978, dim#24978, i#108167}(`F32`_lanetype, `%`_dim{i#108174}(4)), `GT`_vrelop_) + prod "f32x4.gt" => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GT`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4156 : shape, lanetype#25020 : lanetype, dim#25020 : dim, i#108239 : nat, i#108246 : nat} "f32x4.le" => `VRELOP`_instr{shape#4156}(`%X%`_shape{lanetype#25020, dim#25020, i#108239}(`F32`_lanetype, `%`_dim{i#108246}(4)), `LE`_vrelop_) + prod "f32x4.le" => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4158 : shape, lanetype#25062 : lanetype, dim#25062 : dim, i#108311 : nat, i#108318 : nat} "f32x4.ge" => `VRELOP`_instr{shape#4158}(`%X%`_shape{lanetype#25062, dim#25062, i#108311}(`F32`_lanetype, `%`_dim{i#108318}(4)), `GE`_vrelop_) + prod "f32x4.ge" => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4160 : shape, lanetype#25104 : lanetype, dim#25104 : dim, i#108383 : nat, i#108390 : nat} "f64x2.eq" => `VRELOP`_instr{shape#4160}(`%X%`_shape{lanetype#25104, dim#25104, i#108383}(`F64`_lanetype, `%`_dim{i#108390}(2)), `EQ`_vrelop_) + prod "f64x2.eq" => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `EQ`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4162 : shape, lanetype#25146 : lanetype, dim#25146 : dim, i#108455 : nat, i#108462 : nat} "f64x2.ne" => `VRELOP`_instr{shape#4162}(`%X%`_shape{lanetype#25146, dim#25146, i#108455}(`F64`_lanetype, `%`_dim{i#108462}(2)), `NE`_vrelop_) + prod "f64x2.ne" => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4164 : shape, lanetype#25188 : lanetype, dim#25188 : dim, i#108527 : nat, i#108534 : nat} "f64x2.lt" => `VRELOP`_instr{shape#4164}(`%X%`_shape{lanetype#25188, dim#25188, i#108527}(`F64`_lanetype, `%`_dim{i#108534}(2)), `LT`_vrelop_) + prod "f64x2.lt" => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LT`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4166 : shape, lanetype#25230 : lanetype, dim#25230 : dim, i#108599 : nat, i#108606 : nat} "f64x2.gt" => `VRELOP`_instr{shape#4166}(`%X%`_shape{lanetype#25230, dim#25230, i#108599}(`F64`_lanetype, `%`_dim{i#108606}(2)), `GT`_vrelop_) + prod "f64x2.gt" => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GT`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4168 : shape, lanetype#25272 : lanetype, dim#25272 : dim, i#108671 : nat, i#108678 : nat} "f64x2.le" => `VRELOP`_instr{shape#4168}(`%X%`_shape{lanetype#25272, dim#25272, i#108671}(`F64`_lanetype, `%`_dim{i#108678}(2)), `LE`_vrelop_) + prod "f64x2.le" => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4170 : shape, lanetype#25314 : lanetype, dim#25314 : dim, i#108743 : nat, i#108750 : nat} "f64x2.ge" => `VRELOP`_instr{shape#4170}(`%X%`_shape{lanetype#25314, dim#25314, i#108743}(`F64`_lanetype, `%`_dim{i#108750}(2)), `GE`_vrelop_) + prod "f64x2.ge" => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GE`_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#318 : vectype, vvunop#9 : vvunop} "v128.not" => `VVUNOP`_instr{vectype#318, vvunop#9}(`V128`_vectype, `NOT`_vvunop) + prod "v128.not" => `VVUNOP`_instr(`V128`_vectype, `NOT`_vvunop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4172 : shape, lanetype#25356 : lanetype, dim#25356 : dim, i#108815 : nat, i#108822 : nat} "i8x16.abs" => `VUNOP`_instr{shape#4172}(`%X%`_shape{lanetype#25356, dim#25356, i#108815}(`I8`_lanetype, `%`_dim{i#108822}(16)), `ABS`_vunop_) + prod "i8x16.abs" => `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4174 : shape, lanetype#25383 : lanetype, dim#25383 : dim, i#108872 : nat, i#108879 : nat} "i8x16.neg" => `VUNOP`_instr{shape#4174}(`%X%`_shape{lanetype#25383, dim#25383, i#108872}(`I8`_lanetype, `%`_dim{i#108879}(16)), `NEG`_vunop_) + prod "i8x16.neg" => `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4176 : shape, lanetype#25410 : lanetype, dim#25410 : dim, i#108929 : nat, i#108936 : nat} "i8x16.popcnt" => `VUNOP`_instr{shape#4176}(`%X%`_shape{lanetype#25410, dim#25410, i#108929}(`I8`_lanetype, `%`_dim{i#108936}(16)), `POPCNT`_vunop_) + prod "i8x16.popcnt" => `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `POPCNT`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4178 : shape, lanetype#25437 : lanetype, dim#25437 : dim, i#108986 : nat, i#108993 : nat} "i16x8.abs" => `VUNOP`_instr{shape#4178}(`%X%`_shape{lanetype#25437, dim#25437, i#108986}(`I16`_lanetype, `%`_dim{i#108993}(8)), `ABS`_vunop_) + prod "i16x8.abs" => `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4180 : shape, lanetype#25464 : lanetype, dim#25464 : dim, i#109043 : nat, i#109050 : nat} "i16x8.neg" => `VUNOP`_instr{shape#4180}(`%X%`_shape{lanetype#25464, dim#25464, i#109043}(`I16`_lanetype, `%`_dim{i#109050}(8)), `NEG`_vunop_) + prod "i16x8.neg" => `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4182 : shape, lanetype#25491 : lanetype, dim#25491 : dim, i#109100 : nat, i#109107 : nat} "i32x4.abs" => `VUNOP`_instr{shape#4182}(`%X%`_shape{lanetype#25491, dim#25491, i#109100}(`I32`_lanetype, `%`_dim{i#109107}(4)), `ABS`_vunop_) + prod "i32x4.abs" => `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4184 : shape, lanetype#25518 : lanetype, dim#25518 : dim, i#109157 : nat, i#109164 : nat} "i32x4.neg" => `VUNOP`_instr{shape#4184}(`%X%`_shape{lanetype#25518, dim#25518, i#109157}(`I32`_lanetype, `%`_dim{i#109164}(4)), `NEG`_vunop_) + prod "i32x4.neg" => `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4186 : shape, lanetype#25545 : lanetype, dim#25545 : dim, i#109214 : nat, i#109221 : nat} "i64x2.abs" => `VUNOP`_instr{shape#4186}(`%X%`_shape{lanetype#25545, dim#25545, i#109214}(`I64`_lanetype, `%`_dim{i#109221}(2)), `ABS`_vunop_) + prod "i64x2.abs" => `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4188 : shape, lanetype#25572 : lanetype, dim#25572 : dim, i#109271 : nat, i#109278 : nat} "i64x2.neg" => `VUNOP`_instr{shape#4188}(`%X%`_shape{lanetype#25572, dim#25572, i#109271}(`I64`_lanetype, `%`_dim{i#109278}(2)), `NEG`_vunop_) + prod "i64x2.neg" => `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4190 : shape, lanetype#25599 : lanetype, dim#25599 : dim, i#109328 : nat, i#109335 : nat} "f32x4.abs" => `VUNOP`_instr{shape#4190}(`%X%`_shape{lanetype#25599, dim#25599, i#109328}(`F32`_lanetype, `%`_dim{i#109335}(4)), `ABS`_vunop_) + prod "f32x4.abs" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4192 : shape, lanetype#25641 : lanetype, dim#25641 : dim, i#109400 : nat, i#109407 : nat} "f32x4.neg" => `VUNOP`_instr{shape#4192}(`%X%`_shape{lanetype#25641, dim#25641, i#109400}(`F32`_lanetype, `%`_dim{i#109407}(4)), `NEG`_vunop_) + prod "f32x4.neg" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4194 : shape, lanetype#25683 : lanetype, dim#25683 : dim, i#109472 : nat, i#109479 : nat} "f32x4.sqrt" => `VUNOP`_instr{shape#4194}(`%X%`_shape{lanetype#25683, dim#25683, i#109472}(`F32`_lanetype, `%`_dim{i#109479}(4)), `SQRT`_vunop_) + prod "f32x4.sqrt" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SQRT`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4196 : shape, lanetype#25725 : lanetype, dim#25725 : dim, i#109544 : nat, i#109551 : nat} "f32x4.ceil" => `VUNOP`_instr{shape#4196}(`%X%`_shape{lanetype#25725, dim#25725, i#109544}(`F32`_lanetype, `%`_dim{i#109551}(4)), `CEIL`_vunop_) + prod "f32x4.ceil" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `CEIL`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4198 : shape, lanetype#25767 : lanetype, dim#25767 : dim, i#109616 : nat, i#109623 : nat} "f32x4.floor" => `VUNOP`_instr{shape#4198}(`%X%`_shape{lanetype#25767, dim#25767, i#109616}(`F32`_lanetype, `%`_dim{i#109623}(4)), `FLOOR`_vunop_) + prod "f32x4.floor" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `FLOOR`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4200 : shape, lanetype#25809 : lanetype, dim#25809 : dim, i#109688 : nat, i#109695 : nat} "f32x4.trunc" => `VUNOP`_instr{shape#4200}(`%X%`_shape{lanetype#25809, dim#25809, i#109688}(`F32`_lanetype, `%`_dim{i#109695}(4)), `TRUNC`_vunop_) + prod "f32x4.trunc" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4202 : shape, lanetype#25851 : lanetype, dim#25851 : dim, i#109760 : nat, i#109767 : nat} "f32x4.nearest" => `VUNOP`_instr{shape#4202}(`%X%`_shape{lanetype#25851, dim#25851, i#109760}(`F32`_lanetype, `%`_dim{i#109767}(4)), `NEAREST`_vunop_) + prod "f32x4.nearest" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEAREST`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4204 : shape, lanetype#25893 : lanetype, dim#25893 : dim, i#109832 : nat, i#109839 : nat} "f64x2.abs" => `VUNOP`_instr{shape#4204}(`%X%`_shape{lanetype#25893, dim#25893, i#109832}(`F64`_lanetype, `%`_dim{i#109839}(2)), `ABS`_vunop_) + prod "f64x2.abs" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ABS`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4206 : shape, lanetype#25935 : lanetype, dim#25935 : dim, i#109904 : nat, i#109911 : nat} "f64x2.neg" => `VUNOP`_instr{shape#4206}(`%X%`_shape{lanetype#25935, dim#25935, i#109904}(`F64`_lanetype, `%`_dim{i#109911}(2)), `NEG`_vunop_) + prod "f64x2.neg" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEG`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4208 : shape, lanetype#25977 : lanetype, dim#25977 : dim, i#109976 : nat, i#109983 : nat} "f64x2.sqrt" => `VUNOP`_instr{shape#4208}(`%X%`_shape{lanetype#25977, dim#25977, i#109976}(`F64`_lanetype, `%`_dim{i#109983}(2)), `SQRT`_vunop_) + prod "f64x2.sqrt" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SQRT`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4210 : shape, lanetype#26019 : lanetype, dim#26019 : dim, i#110048 : nat, i#110055 : nat} "f64x2.ceil" => `VUNOP`_instr{shape#4210}(`%X%`_shape{lanetype#26019, dim#26019, i#110048}(`F64`_lanetype, `%`_dim{i#110055}(2)), `CEIL`_vunop_) + prod "f64x2.ceil" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `CEIL`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4212 : shape, lanetype#26061 : lanetype, dim#26061 : dim, i#110120 : nat, i#110127 : nat} "f64x2.floor" => `VUNOP`_instr{shape#4212}(`%X%`_shape{lanetype#26061, dim#26061, i#110120}(`F64`_lanetype, `%`_dim{i#110127}(2)), `FLOOR`_vunop_) + prod "f64x2.floor" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `FLOOR`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4214 : shape, lanetype#26103 : lanetype, dim#26103 : dim, i#110192 : nat, i#110199 : nat} "f64x2.trunc" => `VUNOP`_instr{shape#4214}(`%X%`_shape{lanetype#26103, dim#26103, i#110192}(`F64`_lanetype, `%`_dim{i#110199}(2)), `TRUNC`_vunop_) + prod "f64x2.trunc" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4216 : shape, lanetype#26145 : lanetype, dim#26145 : dim, i#110264 : nat, i#110271 : nat} "f64x2.nearest" => `VUNOP`_instr{shape#4216}(`%X%`_shape{lanetype#26145, dim#26145, i#110264}(`F64`_lanetype, `%`_dim{i#110271}(2)), `NEAREST`_vunop_) + prod "f64x2.nearest" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEAREST`_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#320 : vectype, vvbinop#15 : vvbinop} "v128.and" => `VVBINOP`_instr{vectype#320, vvbinop#15}(`V128`_vectype, `AND`_vvbinop) + prod "v128.and" => `VVBINOP`_instr(`V128`_vectype, `AND`_vvbinop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#322 : vectype, vvbinop#17 : vvbinop} "v128.andnot" => `VVBINOP`_instr{vectype#322, vvbinop#17}(`V128`_vectype, `ANDNOT`_vvbinop) + prod "v128.andnot" => `VVBINOP`_instr(`V128`_vectype, `ANDNOT`_vvbinop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#324 : vectype, vvbinop#19 : vvbinop} "v128.or" => `VVBINOP`_instr{vectype#324, vvbinop#19}(`V128`_vectype, `OR`_vvbinop) + prod "v128.or" => `VVBINOP`_instr(`V128`_vectype, `OR`_vvbinop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#326 : vectype, vvbinop#21 : vvbinop} "v128.xor" => `VVBINOP`_instr{vectype#326, vvbinop#21}(`V128`_vectype, `XOR`_vvbinop) + prod "v128.xor" => `VVBINOP`_instr(`V128`_vectype, `XOR`_vvbinop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4218 : shape, lanetype#26187 : lanetype, dim#26187 : dim, i#110336 : nat, i#110343 : nat} "i8x16.add" => `VBINOP`_instr{shape#4218}(`%X%`_shape{lanetype#26187, dim#26187, i#110336}(`I8`_lanetype, `%`_dim{i#110343}(16)), `ADD`_vbinop_) + prod "i8x16.add" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4220 : shape, lanetype#26214 : lanetype, dim#26214 : dim, i#110393 : nat, i#110400 : nat, sx#25854 : sx} "i8x16.add_sat_s" => `VBINOP`_instr{shape#4220}(`%X%`_shape{lanetype#26214, dim#26214, i#110393}(`I8`_lanetype, `%`_dim{i#110400}(16)), `ADD_SAT`_vbinop_{sx#25854}(`S`_sx)) + prod "i8x16.add_sat_s" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4222 : shape, lanetype#26256 : lanetype, dim#26256 : dim, i#110495 : nat, i#110502 : nat, sx#25978 : sx} "i8x16.add_sat_u" => `VBINOP`_instr{shape#4222}(`%X%`_shape{lanetype#26256, dim#26256, i#110495}(`I8`_lanetype, `%`_dim{i#110502}(16)), `ADD_SAT`_vbinop_{sx#25978}(`U`_sx)) + prod "i8x16.add_sat_u" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4224 : shape, lanetype#26298 : lanetype, dim#26298 : dim, i#110597 : nat, i#110604 : nat} "i8x16.sub" => `VBINOP`_instr{shape#4224}(`%X%`_shape{lanetype#26298, dim#26298, i#110597}(`I8`_lanetype, `%`_dim{i#110604}(16)), `SUB`_vbinop_) + prod "i8x16.sub" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4226 : shape, lanetype#26325 : lanetype, dim#26325 : dim, i#110654 : nat, i#110661 : nat, sx#26162 : sx} "i8x16.sub_sat_s" => `VBINOP`_instr{shape#4226}(`%X%`_shape{lanetype#26325, dim#26325, i#110654}(`I8`_lanetype, `%`_dim{i#110661}(16)), `SUB_SAT`_vbinop_{sx#26162}(`S`_sx)) + prod "i8x16.sub_sat_s" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4228 : shape, lanetype#26367 : lanetype, dim#26367 : dim, i#110756 : nat, i#110763 : nat, sx#26286 : sx} "i8x16.sub_sat_u" => `VBINOP`_instr{shape#4228}(`%X%`_shape{lanetype#26367, dim#26367, i#110756}(`I8`_lanetype, `%`_dim{i#110763}(16)), `SUB_SAT`_vbinop_{sx#26286}(`U`_sx)) + prod "i8x16.sub_sat_u" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4230 : shape, lanetype#26409 : lanetype, dim#26409 : dim, i#110858 : nat, i#110865 : nat, sx#26410 : sx} "i8x16.min_s" => `VBINOP`_instr{shape#4230}(`%X%`_shape{lanetype#26409, dim#26409, i#110858}(`I8`_lanetype, `%`_dim{i#110865}(16)), `MIN`_vbinop_{sx#26410}(`S`_sx)) + prod "i8x16.min_s" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4232 : shape, lanetype#26451 : lanetype, dim#26451 : dim, i#110960 : nat, i#110967 : nat, sx#26534 : sx} "i8x16.min_u" => `VBINOP`_instr{shape#4232}(`%X%`_shape{lanetype#26451, dim#26451, i#110960}(`I8`_lanetype, `%`_dim{i#110967}(16)), `MIN`_vbinop_{sx#26534}(`U`_sx)) + prod "i8x16.min_u" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4234 : shape, lanetype#26493 : lanetype, dim#26493 : dim, i#111062 : nat, i#111069 : nat, sx#26658 : sx} "i8x16.max_s" => `VBINOP`_instr{shape#4234}(`%X%`_shape{lanetype#26493, dim#26493, i#111062}(`I8`_lanetype, `%`_dim{i#111069}(16)), `MAX`_vbinop_{sx#26658}(`S`_sx)) + prod "i8x16.max_s" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4236 : shape, lanetype#26535 : lanetype, dim#26535 : dim, i#111164 : nat, i#111171 : nat, sx#26782 : sx} "i8x16.max_u" => `VBINOP`_instr{shape#4236}(`%X%`_shape{lanetype#26535, dim#26535, i#111164}(`I8`_lanetype, `%`_dim{i#111171}(16)), `MAX`_vbinop_{sx#26782}(`U`_sx)) + prod "i8x16.max_u" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4238 : shape, lanetype#26577 : lanetype, dim#26577 : dim, i#111266 : nat, i#111273 : nat} "i8x16.avgr_u" => `VBINOP`_instr{shape#4238}(`%X%`_shape{lanetype#26577, dim#26577, i#111266}(`I8`_lanetype, `%`_dim{i#111273}(16)), `AVGRU`_vbinop_) + prod "i8x16.avgr_u" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `AVGRU`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4240 : shape, lanetype#26619 : lanetype, dim#26619 : dim, i#111368 : nat, i#111375 : nat} "i16x8.add" => `VBINOP`_instr{shape#4240}(`%X%`_shape{lanetype#26619, dim#26619, i#111368}(`I16`_lanetype, `%`_dim{i#111375}(8)), `ADD`_vbinop_) + prod "i16x8.add" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4242 : shape, lanetype#26646 : lanetype, dim#26646 : dim, i#111425 : nat, i#111432 : nat, sx#27086 : sx} "i16x8.add_sat_s" => `VBINOP`_instr{shape#4242}(`%X%`_shape{lanetype#26646, dim#26646, i#111425}(`I16`_lanetype, `%`_dim{i#111432}(8)), `ADD_SAT`_vbinop_{sx#27086}(`S`_sx)) + prod "i16x8.add_sat_s" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4244 : shape, lanetype#26688 : lanetype, dim#26688 : dim, i#111527 : nat, i#111534 : nat, sx#27210 : sx} "i16x8.add_sat_u" => `VBINOP`_instr{shape#4244}(`%X%`_shape{lanetype#26688, dim#26688, i#111527}(`I16`_lanetype, `%`_dim{i#111534}(8)), `ADD_SAT`_vbinop_{sx#27210}(`U`_sx)) + prod "i16x8.add_sat_u" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4246 : shape, lanetype#26730 : lanetype, dim#26730 : dim, i#111629 : nat, i#111636 : nat} "i16x8.sub" => `VBINOP`_instr{shape#4246}(`%X%`_shape{lanetype#26730, dim#26730, i#111629}(`I16`_lanetype, `%`_dim{i#111636}(8)), `SUB`_vbinop_) + prod "i16x8.sub" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4248 : shape, lanetype#26757 : lanetype, dim#26757 : dim, i#111686 : nat, i#111693 : nat, sx#27394 : sx} "i16x8.sub_sat_s" => `VBINOP`_instr{shape#4248}(`%X%`_shape{lanetype#26757, dim#26757, i#111686}(`I16`_lanetype, `%`_dim{i#111693}(8)), `SUB_SAT`_vbinop_{sx#27394}(`S`_sx)) + prod "i16x8.sub_sat_s" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4250 : shape, lanetype#26799 : lanetype, dim#26799 : dim, i#111788 : nat, i#111795 : nat, sx#27518 : sx} "i16x8.sub_sat_u" => `VBINOP`_instr{shape#4250}(`%X%`_shape{lanetype#26799, dim#26799, i#111788}(`I16`_lanetype, `%`_dim{i#111795}(8)), `SUB_SAT`_vbinop_{sx#27518}(`U`_sx)) + prod "i16x8.sub_sat_u" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4252 : shape, lanetype#26841 : lanetype, dim#26841 : dim, i#111890 : nat, i#111897 : nat} "i16x8.mul" => `VBINOP`_instr{shape#4252}(`%X%`_shape{lanetype#26841, dim#26841, i#111890}(`I16`_lanetype, `%`_dim{i#111897}(8)), `MUL`_vbinop_) + prod "i16x8.mul" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4254 : shape, lanetype#26868 : lanetype, dim#26868 : dim, i#111947 : nat, i#111954 : nat, sx#27702 : sx} "i16x8.min_s" => `VBINOP`_instr{shape#4254}(`%X%`_shape{lanetype#26868, dim#26868, i#111947}(`I16`_lanetype, `%`_dim{i#111954}(8)), `MIN`_vbinop_{sx#27702}(`S`_sx)) + prod "i16x8.min_s" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4256 : shape, lanetype#26910 : lanetype, dim#26910 : dim, i#112049 : nat, i#112056 : nat, sx#27826 : sx} "i16x8.min_u" => `VBINOP`_instr{shape#4256}(`%X%`_shape{lanetype#26910, dim#26910, i#112049}(`I16`_lanetype, `%`_dim{i#112056}(8)), `MIN`_vbinop_{sx#27826}(`U`_sx)) + prod "i16x8.min_u" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4258 : shape, lanetype#26952 : lanetype, dim#26952 : dim, i#112151 : nat, i#112158 : nat, sx#27950 : sx} "i16x8.max_s" => `VBINOP`_instr{shape#4258}(`%X%`_shape{lanetype#26952, dim#26952, i#112151}(`I16`_lanetype, `%`_dim{i#112158}(8)), `MAX`_vbinop_{sx#27950}(`S`_sx)) + prod "i16x8.max_s" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4260 : shape, lanetype#26994 : lanetype, dim#26994 : dim, i#112253 : nat, i#112260 : nat, sx#28074 : sx} "i16x8.max_u" => `VBINOP`_instr{shape#4260}(`%X%`_shape{lanetype#26994, dim#26994, i#112253}(`I16`_lanetype, `%`_dim{i#112260}(8)), `MAX`_vbinop_{sx#28074}(`U`_sx)) + prod "i16x8.max_u" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4262 : shape, lanetype#27036 : lanetype, dim#27036 : dim, i#112355 : nat, i#112362 : nat} "i16x8.avgr_u" => `VBINOP`_instr{shape#4262}(`%X%`_shape{lanetype#27036, dim#27036, i#112355}(`I16`_lanetype, `%`_dim{i#112362}(8)), `AVGRU`_vbinop_) + prod "i16x8.avgr_u" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `AVGRU`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4264 : shape, lanetype#27078 : lanetype, dim#27078 : dim, i#112457 : nat, i#112464 : nat} "i16x8.q15mulr_sat_s" => `VBINOP`_instr{shape#4264}(`%X%`_shape{lanetype#27078, dim#27078, i#112457}(`I16`_lanetype, `%`_dim{i#112464}(8)), `Q15MULR_SATS`_vbinop_) + prod "i16x8.q15mulr_sat_s" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4266 : shape, lanetype#27120 : lanetype, dim#27120 : dim, i#112559 : nat, i#112566 : nat} "i16x8.relaxed_q15mulr_s" => `VBINOP`_instr{shape#4266}(`%X%`_shape{lanetype#27120, dim#27120, i#112559}(`I16`_lanetype, `%`_dim{i#112566}(8)), `RELAXED_Q15MULRS`_vbinop_) + prod "i16x8.relaxed_q15mulr_s" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4268 : shape, lanetype#27162 : lanetype, dim#27162 : dim, i#112661 : nat, i#112668 : nat} "i32x4.add" => `VBINOP`_instr{shape#4268}(`%X%`_shape{lanetype#27162, dim#27162, i#112661}(`I32`_lanetype, `%`_dim{i#112668}(4)), `ADD`_vbinop_) + prod "i32x4.add" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4270 : shape, lanetype#27189 : lanetype, dim#27189 : dim, i#112718 : nat, i#112725 : nat} "i32x4.sub" => `VBINOP`_instr{shape#4270}(`%X%`_shape{lanetype#27189, dim#27189, i#112718}(`I32`_lanetype, `%`_dim{i#112725}(4)), `SUB`_vbinop_) + prod "i32x4.sub" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4272 : shape, lanetype#27216 : lanetype, dim#27216 : dim, i#112775 : nat, i#112782 : nat} "i32x4.mul" => `VBINOP`_instr{shape#4272}(`%X%`_shape{lanetype#27216, dim#27216, i#112775}(`I32`_lanetype, `%`_dim{i#112782}(4)), `MUL`_vbinop_) + prod "i32x4.mul" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4274 : shape, lanetype#27243 : lanetype, dim#27243 : dim, i#112832 : nat, i#112839 : nat, sx#28738 : sx} "i32x4.min_s" => `VBINOP`_instr{shape#4274}(`%X%`_shape{lanetype#27243, dim#27243, i#112832}(`I32`_lanetype, `%`_dim{i#112839}(4)), `MIN`_vbinop_{sx#28738}(`S`_sx)) + prod "i32x4.min_s" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4276 : shape, lanetype#27285 : lanetype, dim#27285 : dim, i#112934 : nat, i#112941 : nat, sx#28862 : sx} "i32x4.min_u" => `VBINOP`_instr{shape#4276}(`%X%`_shape{lanetype#27285, dim#27285, i#112934}(`I32`_lanetype, `%`_dim{i#112941}(4)), `MIN`_vbinop_{sx#28862}(`U`_sx)) + prod "i32x4.min_u" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4278 : shape, lanetype#27327 : lanetype, dim#27327 : dim, i#113036 : nat, i#113043 : nat, sx#28986 : sx} "i32x4.max_s" => `VBINOP`_instr{shape#4278}(`%X%`_shape{lanetype#27327, dim#27327, i#113036}(`I32`_lanetype, `%`_dim{i#113043}(4)), `MAX`_vbinop_{sx#28986}(`S`_sx)) + prod "i32x4.max_s" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4280 : shape, lanetype#27369 : lanetype, dim#27369 : dim, i#113138 : nat, i#113145 : nat, sx#29110 : sx} "i32x4.max_u" => `VBINOP`_instr{shape#4280}(`%X%`_shape{lanetype#27369, dim#27369, i#113138}(`I32`_lanetype, `%`_dim{i#113145}(4)), `MAX`_vbinop_{sx#29110}(`U`_sx)) + prod "i32x4.max_u" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4282 : shape, lanetype#27411 : lanetype, dim#27411 : dim, i#113240 : nat, i#113247 : nat} "i64x2.add" => `VBINOP`_instr{shape#4282}(`%X%`_shape{lanetype#27411, dim#27411, i#113240}(`I64`_lanetype, `%`_dim{i#113247}(2)), `ADD`_vbinop_) + prod "i64x2.add" => `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4284 : shape, lanetype#27438 : lanetype, dim#27438 : dim, i#113297 : nat, i#113304 : nat} "i64x2.sub" => `VBINOP`_instr{shape#4284}(`%X%`_shape{lanetype#27438, dim#27438, i#113297}(`I64`_lanetype, `%`_dim{i#113304}(2)), `SUB`_vbinop_) + prod "i64x2.sub" => `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4286 : shape, lanetype#27465 : lanetype, dim#27465 : dim, i#113354 : nat, i#113361 : nat} "i64x2.mul" => `VBINOP`_instr{shape#4286}(`%X%`_shape{lanetype#27465, dim#27465, i#113354}(`I64`_lanetype, `%`_dim{i#113361}(2)), `MUL`_vbinop_) + prod "i64x2.mul" => `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4288 : shape, lanetype#27492 : lanetype, dim#27492 : dim, i#113411 : nat, i#113418 : nat} "f32x4.add" => `VBINOP`_instr{shape#4288}(`%X%`_shape{lanetype#27492, dim#27492, i#113411}(`F32`_lanetype, `%`_dim{i#113418}(4)), `ADD`_vbinop_) + prod "f32x4.add" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4290 : shape, lanetype#27534 : lanetype, dim#27534 : dim, i#113483 : nat, i#113490 : nat} "f32x4.sub" => `VBINOP`_instr{shape#4290}(`%X%`_shape{lanetype#27534, dim#27534, i#113483}(`F32`_lanetype, `%`_dim{i#113490}(4)), `SUB`_vbinop_) + prod "f32x4.sub" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4292 : shape, lanetype#27576 : lanetype, dim#27576 : dim, i#113555 : nat, i#113562 : nat} "f32x4.mul" => `VBINOP`_instr{shape#4292}(`%X%`_shape{lanetype#27576, dim#27576, i#113555}(`F32`_lanetype, `%`_dim{i#113562}(4)), `MUL`_vbinop_) + prod "f32x4.mul" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4294 : shape, lanetype#27618 : lanetype, dim#27618 : dim, i#113627 : nat, i#113634 : nat} "f32x4.div" => `VBINOP`_instr{shape#4294}(`%X%`_shape{lanetype#27618, dim#27618, i#113627}(`F32`_lanetype, `%`_dim{i#113634}(4)), `DIV`_vbinop_) + prod "f32x4.div" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `DIV`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4296 : shape, lanetype#27660 : lanetype, dim#27660 : dim, i#113699 : nat, i#113706 : nat} "f32x4.min" => `VBINOP`_instr{shape#4296}(`%X%`_shape{lanetype#27660, dim#27660, i#113699}(`F32`_lanetype, `%`_dim{i#113706}(4)), `MIN`_vbinop_) + prod "f32x4.min" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4298 : shape, lanetype#27702 : lanetype, dim#27702 : dim, i#113771 : nat, i#113778 : nat} "f32x4.max" => `VBINOP`_instr{shape#4298}(`%X%`_shape{lanetype#27702, dim#27702, i#113771}(`F32`_lanetype, `%`_dim{i#113778}(4)), `MAX`_vbinop_) + prod "f32x4.max" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4300 : shape, lanetype#27744 : lanetype, dim#27744 : dim, i#113843 : nat, i#113850 : nat} "f32x4.pmin" => `VBINOP`_instr{shape#4300}(`%X%`_shape{lanetype#27744, dim#27744, i#113843}(`F32`_lanetype, `%`_dim{i#113850}(4)), `PMIN`_vbinop_) + prod "f32x4.pmin" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMIN`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4302 : shape, lanetype#27786 : lanetype, dim#27786 : dim, i#113915 : nat, i#113922 : nat} "f32x4.pmax" => `VBINOP`_instr{shape#4302}(`%X%`_shape{lanetype#27786, dim#27786, i#113915}(`F32`_lanetype, `%`_dim{i#113922}(4)), `PMAX`_vbinop_) + prod "f32x4.pmax" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMAX`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4304 : shape, lanetype#27828 : lanetype, dim#27828 : dim, i#113987 : nat, i#113994 : nat} "f32x4.relaxed_min" => `VBINOP`_instr{shape#4304}(`%X%`_shape{lanetype#27828, dim#27828, i#113987}(`F32`_lanetype, `%`_dim{i#113994}(4)), `RELAXED_MIN`_vbinop_) + prod "f32x4.relaxed_min" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4306 : shape, lanetype#27870 : lanetype, dim#27870 : dim, i#114059 : nat, i#114066 : nat} "f32x4.relaxed_max" => `VBINOP`_instr{shape#4306}(`%X%`_shape{lanetype#27870, dim#27870, i#114059}(`F32`_lanetype, `%`_dim{i#114066}(4)), `RELAXED_MAX`_vbinop_) + prod "f32x4.relaxed_max" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4308 : shape, lanetype#27912 : lanetype, dim#27912 : dim, i#114131 : nat, i#114138 : nat} "f64x2.add" => `VBINOP`_instr{shape#4308}(`%X%`_shape{lanetype#27912, dim#27912, i#114131}(`F64`_lanetype, `%`_dim{i#114138}(2)), `ADD`_vbinop_) + prod "f64x2.add" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ADD`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4310 : shape, lanetype#27954 : lanetype, dim#27954 : dim, i#114203 : nat, i#114210 : nat} "f64x2.sub" => `VBINOP`_instr{shape#4310}(`%X%`_shape{lanetype#27954, dim#27954, i#114203}(`F64`_lanetype, `%`_dim{i#114210}(2)), `SUB`_vbinop_) + prod "f64x2.sub" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SUB`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4312 : shape, lanetype#27996 : lanetype, dim#27996 : dim, i#114275 : nat, i#114282 : nat} "f64x2.mul" => `VBINOP`_instr{shape#4312}(`%X%`_shape{lanetype#27996, dim#27996, i#114275}(`F64`_lanetype, `%`_dim{i#114282}(2)), `MUL`_vbinop_) + prod "f64x2.mul" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MUL`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4314 : shape, lanetype#28038 : lanetype, dim#28038 : dim, i#114347 : nat, i#114354 : nat} "f64x2.div" => `VBINOP`_instr{shape#4314}(`%X%`_shape{lanetype#28038, dim#28038, i#114347}(`F64`_lanetype, `%`_dim{i#114354}(2)), `DIV`_vbinop_) + prod "f64x2.div" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DIV`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4316 : shape, lanetype#28080 : lanetype, dim#28080 : dim, i#114419 : nat, i#114426 : nat} "f64x2.min" => `VBINOP`_instr{shape#4316}(`%X%`_shape{lanetype#28080, dim#28080, i#114419}(`F64`_lanetype, `%`_dim{i#114426}(2)), `MIN`_vbinop_) + prod "f64x2.min" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4318 : shape, lanetype#28122 : lanetype, dim#28122 : dim, i#114491 : nat, i#114498 : nat} "f64x2.max" => `VBINOP`_instr{shape#4318}(`%X%`_shape{lanetype#28122, dim#28122, i#114491}(`F64`_lanetype, `%`_dim{i#114498}(2)), `MAX`_vbinop_) + prod "f64x2.max" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4320 : shape, lanetype#28164 : lanetype, dim#28164 : dim, i#114563 : nat, i#114570 : nat} "f64x2.pmin" => `VBINOP`_instr{shape#4320}(`%X%`_shape{lanetype#28164, dim#28164, i#114563}(`F64`_lanetype, `%`_dim{i#114570}(2)), `PMIN`_vbinop_) + prod "f64x2.pmin" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMIN`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4322 : shape, lanetype#28206 : lanetype, dim#28206 : dim, i#114635 : nat, i#114642 : nat} "f64x2.pmax" => `VBINOP`_instr{shape#4322}(`%X%`_shape{lanetype#28206, dim#28206, i#114635}(`F64`_lanetype, `%`_dim{i#114642}(2)), `PMAX`_vbinop_) + prod "f64x2.pmax" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMAX`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4324 : shape, lanetype#28248 : lanetype, dim#28248 : dim, i#114707 : nat, i#114714 : nat} "f64x2.relaxed_min" => `VBINOP`_instr{shape#4324}(`%X%`_shape{lanetype#28248, dim#28248, i#114707}(`F64`_lanetype, `%`_dim{i#114714}(2)), `RELAXED_MIN`_vbinop_) + prod "f64x2.relaxed_min" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MIN`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4326 : shape, lanetype#28290 : lanetype, dim#28290 : dim, i#114779 : nat, i#114786 : nat} "f64x2.relaxed_max" => `VBINOP`_instr{shape#4326}(`%X%`_shape{lanetype#28290, dim#28290, i#114779}(`F64`_lanetype, `%`_dim{i#114786}(2)), `RELAXED_MAX`_vbinop_) + prod "f64x2.relaxed_max" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MAX`_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{vectype#328 : vectype, vvternop#9 : vvternop} "v128.bitselect" => `VVTERNOP`_instr{vectype#328, vvternop#9}(`V128`_vectype, `BITSELECT`_vvternop) + prod "v128.bitselect" => `VVTERNOP`_instr(`V128`_vectype, `BITSELECT`_vvternop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4328 : shape, lanetype#28332 : lanetype, dim#28332 : dim, i#114851 : nat, i#114858 : nat} "i8x16.relaxed_laneselect" => `VTERNOP`_instr{shape#4328}(`%X%`_shape{lanetype#28332, dim#28332, i#114851}(`I8`_lanetype, `%`_dim{i#114858}(16)), `RELAXED_LANESELECT`_vternop_) + prod "i8x16.relaxed_laneselect" => `VTERNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4330 : shape, lanetype#28359 : lanetype, dim#28359 : dim, i#114908 : nat, i#114915 : nat} "i16x8.relaxed_laneselect" => `VTERNOP`_instr{shape#4330}(`%X%`_shape{lanetype#28359, dim#28359, i#114908}(`I16`_lanetype, `%`_dim{i#114915}(8)), `RELAXED_LANESELECT`_vternop_) + prod "i16x8.relaxed_laneselect" => `VTERNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4332 : shape, lanetype#28386 : lanetype, dim#28386 : dim, i#114965 : nat, i#114972 : nat} "i32x4.relaxed_laneselect" => `VTERNOP`_instr{shape#4332}(`%X%`_shape{lanetype#28386, dim#28386, i#114965}(`I32`_lanetype, `%`_dim{i#114972}(4)), `RELAXED_LANESELECT`_vternop_) + prod "i32x4.relaxed_laneselect" => `VTERNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4334 : shape, lanetype#28413 : lanetype, dim#28413 : dim, i#115022 : nat, i#115029 : nat} "i64x2.relaxed_laneselect" => `VTERNOP`_instr{shape#4334}(`%X%`_shape{lanetype#28413, dim#28413, i#115022}(`I64`_lanetype, `%`_dim{i#115029}(2)), `RELAXED_LANESELECT`_vternop_) + prod "i64x2.relaxed_laneselect" => `VTERNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `RELAXED_LANESELECT`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4336 : shape, lanetype#28440 : lanetype, dim#28440 : dim, i#115079 : nat, i#115086 : nat} "f32x4.relaxed_madd" => `VTERNOP`_instr{shape#4336}(`%X%`_shape{lanetype#28440, dim#28440, i#115079}(`F32`_lanetype, `%`_dim{i#115086}(4)), `RELAXED_MADD`_vternop_) + prod "f32x4.relaxed_madd" => `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MADD`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4338 : shape, lanetype#28482 : lanetype, dim#28482 : dim, i#115151 : nat, i#115158 : nat} "f32x4.relaxed_nmadd" => `VTERNOP`_instr{shape#4338}(`%X%`_shape{lanetype#28482, dim#28482, i#115151}(`F32`_lanetype, `%`_dim{i#115158}(4)), `RELAXED_NMADD`_vternop_) + prod "f32x4.relaxed_nmadd" => `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_NMADD`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4340 : shape, lanetype#28524 : lanetype, dim#28524 : dim, i#115223 : nat, i#115230 : nat} "f64x2.relaxed_madd" => `VTERNOP`_instr{shape#4340}(`%X%`_shape{lanetype#28524, dim#28524, i#115223}(`F64`_lanetype, `%`_dim{i#115230}(2)), `RELAXED_MADD`_vternop_) + prod "f64x2.relaxed_madd" => `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MADD`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape#4342 : shape, lanetype#28566 : lanetype, dim#28566 : dim, i#115295 : nat, i#115302 : nat} "f64x2.relaxed_nmadd" => `VTERNOP`_instr{shape#4342}(`%X%`_shape{lanetype#28566, dim#28566, i#115295}(`F64`_lanetype, `%`_dim{i#115302}(2)), `RELAXED_NMADD`_vternop_) + prod "f64x2.relaxed_nmadd" => `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_NMADD`_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#45 : ishape, shape#4354 : shape, Jnn#488 : Jnn, lanetype#28608 : lanetype, dim#28608 : dim, i#115367 : nat, i#115374 : nat} "i8x16.shl" => `VSHIFTOP`_instr{ishape#45}(`%`_ishape{shape#4354, Jnn#488}(`%X%`_shape{lanetype#28608, dim#28608, i#115367}(`I8`_lanetype, `%`_dim{i#115374}(16))), `SHL`_vshiftop_) + prod "i8x16.shl" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#47 : ishape, shape#4381 : shape, Jnn#492 : Jnn, lanetype#28665 : lanetype, dim#28665 : dim, i#115454 : nat, i#115461 : nat, sx#29339 : sx} "i8x16.shr_s" => `VSHIFTOP`_instr{ishape#47}(`%`_ishape{shape#4381, Jnn#492}(`%X%`_shape{lanetype#28665, dim#28665, i#115454}(`I8`_lanetype, `%`_dim{i#115461}(16))), `SHR`_vshiftop_{sx#29339}(`S`_sx)) + prod "i8x16.shr_s" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#49 : ishape, shape#4423 : shape, Jnn#496 : Jnn, lanetype#28767 : lanetype, dim#28767 : dim, i#115616 : nat, i#115623 : nat, sx#29373 : sx} "i8x16.shr_u" => `VSHIFTOP`_instr{ishape#49}(`%`_ishape{shape#4423, Jnn#496}(`%X%`_shape{lanetype#28767, dim#28767, i#115616}(`I8`_lanetype, `%`_dim{i#115623}(16))), `SHR`_vshiftop_{sx#29373}(`U`_sx)) + prod "i8x16.shr_u" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#51 : ishape, shape#4465 : shape, Jnn#500 : Jnn, lanetype#28869 : lanetype, dim#28869 : dim, i#115778 : nat, i#115785 : nat} "i16x8.shl" => `VSHIFTOP`_instr{ishape#51}(`%`_ishape{shape#4465, Jnn#500}(`%X%`_shape{lanetype#28869, dim#28869, i#115778}(`I16`_lanetype, `%`_dim{i#115785}(8))), `SHL`_vshiftop_) + prod "i16x8.shl" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#53 : ishape, shape#4492 : shape, Jnn#504 : Jnn, lanetype#28926 : lanetype, dim#28926 : dim, i#115865 : nat, i#115872 : nat, sx#29422 : sx} "i16x8.shr_s" => `VSHIFTOP`_instr{ishape#53}(`%`_ishape{shape#4492, Jnn#504}(`%X%`_shape{lanetype#28926, dim#28926, i#115865}(`I16`_lanetype, `%`_dim{i#115872}(8))), `SHR`_vshiftop_{sx#29422}(`S`_sx)) + prod "i16x8.shr_s" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#55 : ishape, shape#4534 : shape, Jnn#508 : Jnn, lanetype#29028 : lanetype, dim#29028 : dim, i#116027 : nat, i#116034 : nat, sx#29456 : sx} "i16x8.shr_u" => `VSHIFTOP`_instr{ishape#55}(`%`_ishape{shape#4534, Jnn#508}(`%X%`_shape{lanetype#29028, dim#29028, i#116027}(`I16`_lanetype, `%`_dim{i#116034}(8))), `SHR`_vshiftop_{sx#29456}(`U`_sx)) + prod "i16x8.shr_u" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#57 : ishape, shape#4576 : shape, Jnn#512 : Jnn, lanetype#29130 : lanetype, dim#29130 : dim, i#116189 : nat, i#116196 : nat} "i32x4.shl" => `VSHIFTOP`_instr{ishape#57}(`%`_ishape{shape#4576, Jnn#512}(`%X%`_shape{lanetype#29130, dim#29130, i#116189}(`I32`_lanetype, `%`_dim{i#116196}(4))), `SHL`_vshiftop_) + prod "i32x4.shl" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#59 : ishape, shape#4603 : shape, Jnn#516 : Jnn, lanetype#29187 : lanetype, dim#29187 : dim, i#116276 : nat, i#116283 : nat, sx#29505 : sx} "i32x4.shr_s" => `VSHIFTOP`_instr{ishape#59}(`%`_ishape{shape#4603, Jnn#516}(`%X%`_shape{lanetype#29187, dim#29187, i#116276}(`I32`_lanetype, `%`_dim{i#116283}(4))), `SHR`_vshiftop_{sx#29505}(`S`_sx)) + prod "i32x4.shr_s" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#61 : ishape, shape#4645 : shape, Jnn#520 : Jnn, lanetype#29289 : lanetype, dim#29289 : dim, i#116438 : nat, i#116445 : nat, sx#29539 : sx} "i32x4.shr_u" => `VSHIFTOP`_instr{ishape#61}(`%`_ishape{shape#4645, Jnn#520}(`%X%`_shape{lanetype#29289, dim#29289, i#116438}(`I32`_lanetype, `%`_dim{i#116445}(4))), `SHR`_vshiftop_{sx#29539}(`U`_sx)) + prod "i32x4.shr_u" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#63 : ishape, shape#4687 : shape, Jnn#524 : Jnn, lanetype#29391 : lanetype, dim#29391 : dim, i#116600 : nat, i#116607 : nat} "i64x2.shl" => `VSHIFTOP`_instr{ishape#63}(`%`_ishape{shape#4687, Jnn#524}(`%X%`_shape{lanetype#29391, dim#29391, i#116600}(`I64`_lanetype, `%`_dim{i#116607}(2))), `SHL`_vshiftop_) + prod "i64x2.shl" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHL`_vshiftop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#65 : ishape, shape#4714 : shape, Jnn#528 : Jnn, lanetype#29448 : lanetype, dim#29448 : dim, i#116687 : nat, i#116694 : nat, sx#29588 : sx} "i64x2.shr_s" => `VSHIFTOP`_instr{ishape#65}(`%`_ishape{shape#4714, Jnn#528}(`%X%`_shape{lanetype#29448, dim#29448, i#116687}(`I64`_lanetype, `%`_dim{i#116694}(2))), `SHR`_vshiftop_{sx#29588}(`S`_sx)) + prod "i64x2.shr_s" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#67 : ishape, shape#4756 : shape, Jnn#532 : Jnn, lanetype#29550 : lanetype, dim#29550 : dim, i#116849 : nat, i#116856 : nat, sx#29622 : sx} "i64x2.shr_u" => `VSHIFTOP`_instr{ishape#67}(`%`_ishape{shape#4756, Jnn#532}(`%X%`_shape{lanetype#29550, dim#29550, i#116849}(`I64`_lanetype, `%`_dim{i#116856}(2))), `SHR`_vshiftop_{sx#29622}(`U`_sx)) + prod "i64x2.shr_u" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#69 : ishape, shape#4798 : shape, Jnn#536 : Jnn, lanetype#29652 : lanetype, dim#29652 : dim, i#117011 : nat, i#117018 : nat} "i8x16.bitmask" => `VBITMASK`_instr{ishape#69}(`%`_ishape{shape#4798, Jnn#536}(`%X%`_shape{lanetype#29652, dim#29652, i#117011}(`I8`_lanetype, `%`_dim{i#117018}(16)))) + prod "i8x16.bitmask" => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#71 : ishape, shape#4810 : shape, Jnn#540 : Jnn, lanetype#29664 : lanetype, dim#29664 : dim, i#117023 : nat, i#117030 : nat} "i16x8.bitmask" => `VBITMASK`_instr{ishape#71}(`%`_ishape{shape#4810, Jnn#540}(`%X%`_shape{lanetype#29664, dim#29664, i#117023}(`I16`_lanetype, `%`_dim{i#117030}(8)))) + prod "i16x8.bitmask" => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#73 : ishape, shape#4822 : shape, Jnn#544 : Jnn, lanetype#29676 : lanetype, dim#29676 : dim, i#117035 : nat, i#117042 : nat} "i32x4.bitmask" => `VBITMASK`_instr{ishape#73}(`%`_ishape{shape#4822, Jnn#544}(`%X%`_shape{lanetype#29676, dim#29676, i#117035}(`I32`_lanetype, `%`_dim{i#117042}(4)))) + prod "i32x4.bitmask" => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape#75 : ishape, shape#4834 : shape, Jnn#548 : Jnn, lanetype#29688 : lanetype, dim#29688 : dim, i#117047 : nat, i#117054 : nat} "i64x2.bitmask" => `VBITMASK`_instr{ishape#75}(`%`_ishape{shape#4834, Jnn#548}(`%X%`_shape{lanetype#29688, dim#29688, i#117047}(`I64`_lanetype, `%`_dim{i#117054}(2)))) + prod "i64x2.bitmask" => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#71 : ishape, ishape_2#71 : ishape, sx#29624 : sx, shape#4836 : shape, Jnn#549 : Jnn, shape#4837 : shape, Jnn#550 : Jnn, shape#4838 : shape, Jnn#551 : Jnn, shape#4849 : shape, Jnn#555 : Jnn, lanetype#29700 : lanetype, dim#29700 : dim, i#117059 : nat, i#117066 : nat, shape#4861 : shape, Jnn#559 : Jnn, lanetype#29712 : lanetype, dim#29712 : dim, i#117071 : nat, i#117078 : nat} "i8x16.narrow_i16x8_s" => `VNARROW`_instr{ishape_1#71, ishape_2#71, sx#29624, shape#4836, Jnn#549, shape#4837, Jnn#550, shape#4838, Jnn#551}(`%`_ishape{shape#4849, Jnn#555}(`%X%`_shape{lanetype#29700, dim#29700, i#117059}(`I8`_lanetype, `%`_dim{i#117066}(16))), `%`_ishape{shape#4861, Jnn#559}(`%X%`_shape{lanetype#29712, dim#29712, i#117071}(`I16`_lanetype, `%`_dim{i#117078}(8))), `S`_sx) + prod "i8x16.narrow_i16x8_s" => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `S`_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#73 : ishape, ishape_2#73 : ishape, sx#29626 : sx, shape#4863 : shape, Jnn#560 : Jnn, shape#4864 : shape, Jnn#561 : Jnn, shape#4865 : shape, Jnn#562 : Jnn, shape#4876 : shape, Jnn#566 : Jnn, lanetype#29724 : lanetype, dim#29724 : dim, i#117083 : nat, i#117090 : nat, shape#4888 : shape, Jnn#570 : Jnn, lanetype#29736 : lanetype, dim#29736 : dim, i#117095 : nat, i#117102 : nat} "i8x16.narrow_i16x8_u" => `VNARROW`_instr{ishape_1#73, ishape_2#73, sx#29626, shape#4863, Jnn#560, shape#4864, Jnn#561, shape#4865, Jnn#562}(`%`_ishape{shape#4876, Jnn#566}(`%X%`_shape{lanetype#29724, dim#29724, i#117083}(`I8`_lanetype, `%`_dim{i#117090}(16))), `%`_ishape{shape#4888, Jnn#570}(`%X%`_shape{lanetype#29736, dim#29736, i#117095}(`I16`_lanetype, `%`_dim{i#117102}(8))), `U`_sx) + prod "i8x16.narrow_i16x8_u" => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `U`_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#75 : ishape, ishape_2#75 : ishape, sx#29628 : sx, shape#4890 : shape, Jnn#571 : Jnn, shape#4891 : shape, Jnn#572 : Jnn, shape#4892 : shape, Jnn#573 : Jnn, shape#4903 : shape, Jnn#577 : Jnn, lanetype#29748 : lanetype, dim#29748 : dim, i#117107 : nat, i#117114 : nat, shape#4915 : shape, Jnn#581 : Jnn, lanetype#29760 : lanetype, dim#29760 : dim, i#117119 : nat, i#117126 : nat} "i16x8.narrow_i32x4_s" => `VNARROW`_instr{ishape_1#75, ishape_2#75, sx#29628, shape#4890, Jnn#571, shape#4891, Jnn#572, shape#4892, Jnn#573}(`%`_ishape{shape#4903, Jnn#577}(`%X%`_shape{lanetype#29748, dim#29748, i#117107}(`I16`_lanetype, `%`_dim{i#117114}(8))), `%`_ishape{shape#4915, Jnn#581}(`%X%`_shape{lanetype#29760, dim#29760, i#117119}(`I32`_lanetype, `%`_dim{i#117126}(4))), `S`_sx) + prod "i16x8.narrow_i32x4_s" => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `S`_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#77 : ishape, ishape_2#77 : ishape, sx#29630 : sx, shape#4917 : shape, Jnn#582 : Jnn, shape#4918 : shape, Jnn#583 : Jnn, shape#4919 : shape, Jnn#584 : Jnn, shape#4930 : shape, Jnn#588 : Jnn, lanetype#29772 : lanetype, dim#29772 : dim, i#117131 : nat, i#117138 : nat, shape#4942 : shape, Jnn#592 : Jnn, lanetype#29784 : lanetype, dim#29784 : dim, i#117143 : nat, i#117150 : nat} "i16x8.narrow_i32x4_u" => `VNARROW`_instr{ishape_1#77, ishape_2#77, sx#29630, shape#4917, Jnn#582, shape#4918, Jnn#583, shape#4919, Jnn#584}(`%`_ishape{shape#4930, Jnn#588}(`%X%`_shape{lanetype#29772, dim#29772, i#117131}(`I16`_lanetype, `%`_dim{i#117138}(8))), `%`_ishape{shape#4942, Jnn#592}(`%X%`_shape{lanetype#29784, dim#29784, i#117143}(`I32`_lanetype, `%`_dim{i#117150}(4))), `U`_sx) + prod "i16x8.narrow_i32x4_u" => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `U`_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#59 : shape, shape_2#59 : shape, lanetype#29796 : lanetype, dim#29796 : dim, i#117155 : nat, i#117162 : nat, lanetype#29808 : lanetype, dim#29808 : dim, i#117167 : nat, i#117174 : nat, half#1172 : half, sx#29664 : sx} "i16x8.extend_low_i8x16_s" => `VCVTOP`_instr{shape_1#59, shape_2#59}(`%X%`_shape{lanetype#29796, dim#29796, i#117155}(`I16`_lanetype, `%`_dim{i#117162}(8)), `%X%`_shape{lanetype#29808, dim#29808, i#117167}(`I8`_lanetype, `%`_dim{i#117174}(16)), `EXTEND`_vcvtop__{half#1172, sx#29664}(`LOW`_half, `S`_sx)) + prod "i16x8.extend_low_i8x16_s" => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#61 : shape, shape_2#61 : shape, lanetype#29911 : lanetype, dim#29911 : dim, i#117390 : nat, i#117397 : nat, lanetype#29923 : lanetype, dim#29923 : dim, i#117402 : nat, i#117409 : nat, half#1206 : half, sx#29698 : sx} "i16x8.extend_low_i8x16_u" => `VCVTOP`_instr{shape_1#61, shape_2#61}(`%X%`_shape{lanetype#29911, dim#29911, i#117390}(`I16`_lanetype, `%`_dim{i#117397}(8)), `%X%`_shape{lanetype#29923, dim#29923, i#117402}(`I8`_lanetype, `%`_dim{i#117409}(16)), `EXTEND`_vcvtop__{half#1206, sx#29698}(`LOW`_half, `U`_sx)) + prod "i16x8.extend_low_i8x16_u" => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#63 : shape, shape_2#63 : shape, lanetype#30026 : lanetype, dim#30026 : dim, i#117625 : nat, i#117632 : nat, lanetype#30038 : lanetype, dim#30038 : dim, i#117637 : nat, i#117644 : nat, half#1240 : half, sx#29732 : sx} "i16x8.extend_high_i8x16_s" => `VCVTOP`_instr{shape_1#63, shape_2#63}(`%X%`_shape{lanetype#30026, dim#30026, i#117625}(`I16`_lanetype, `%`_dim{i#117632}(8)), `%X%`_shape{lanetype#30038, dim#30038, i#117637}(`I8`_lanetype, `%`_dim{i#117644}(16)), `EXTEND`_vcvtop__{half#1240, sx#29732}(`HIGH`_half, `S`_sx)) + prod "i16x8.extend_high_i8x16_s" => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#65 : shape, shape_2#65 : shape, lanetype#30141 : lanetype, dim#30141 : dim, i#117860 : nat, i#117867 : nat, lanetype#30153 : lanetype, dim#30153 : dim, i#117872 : nat, i#117879 : nat, half#1274 : half, sx#29766 : sx} "i16x8.extend_high_i8x16_u" => `VCVTOP`_instr{shape_1#65, shape_2#65}(`%X%`_shape{lanetype#30141, dim#30141, i#117860}(`I16`_lanetype, `%`_dim{i#117867}(8)), `%X%`_shape{lanetype#30153, dim#30153, i#117872}(`I8`_lanetype, `%`_dim{i#117879}(16)), `EXTEND`_vcvtop__{half#1274, sx#29766}(`HIGH`_half, `U`_sx)) + prod "i16x8.extend_high_i8x16_u" => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#67 : shape, shape_2#67 : shape, lanetype#30256 : lanetype, dim#30256 : dim, i#118095 : nat, i#118102 : nat, lanetype#30268 : lanetype, dim#30268 : dim, i#118107 : nat, i#118114 : nat, half#1308 : half, sx#29800 : sx} "i32x4.extend_low_i16x8_s" => `VCVTOP`_instr{shape_1#67, shape_2#67}(`%X%`_shape{lanetype#30256, dim#30256, i#118095}(`I32`_lanetype, `%`_dim{i#118102}(4)), `%X%`_shape{lanetype#30268, dim#30268, i#118107}(`I16`_lanetype, `%`_dim{i#118114}(8)), `EXTEND`_vcvtop__{half#1308, sx#29800}(`LOW`_half, `S`_sx)) + prod "i32x4.extend_low_i16x8_s" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#69 : shape, shape_2#69 : shape, lanetype#30371 : lanetype, dim#30371 : dim, i#118330 : nat, i#118337 : nat, lanetype#30383 : lanetype, dim#30383 : dim, i#118342 : nat, i#118349 : nat, half#1342 : half, sx#29834 : sx} "i32x4.extend_low_i16x8_u" => `VCVTOP`_instr{shape_1#69, shape_2#69}(`%X%`_shape{lanetype#30371, dim#30371, i#118330}(`I32`_lanetype, `%`_dim{i#118337}(4)), `%X%`_shape{lanetype#30383, dim#30383, i#118342}(`I16`_lanetype, `%`_dim{i#118349}(8)), `EXTEND`_vcvtop__{half#1342, sx#29834}(`LOW`_half, `U`_sx)) + prod "i32x4.extend_low_i16x8_u" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#71 : shape, shape_2#71 : shape, lanetype#30486 : lanetype, dim#30486 : dim, i#118565 : nat, i#118572 : nat, lanetype#30498 : lanetype, dim#30498 : dim, i#118577 : nat, i#118584 : nat, half#1376 : half, sx#29868 : sx} "i32x4.extend_high_i16x8_s" => `VCVTOP`_instr{shape_1#71, shape_2#71}(`%X%`_shape{lanetype#30486, dim#30486, i#118565}(`I32`_lanetype, `%`_dim{i#118572}(4)), `%X%`_shape{lanetype#30498, dim#30498, i#118577}(`I16`_lanetype, `%`_dim{i#118584}(8)), `EXTEND`_vcvtop__{half#1376, sx#29868}(`HIGH`_half, `S`_sx)) + prod "i32x4.extend_high_i16x8_s" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#73 : shape, shape_2#73 : shape, lanetype#30601 : lanetype, dim#30601 : dim, i#118800 : nat, i#118807 : nat, lanetype#30613 : lanetype, dim#30613 : dim, i#118812 : nat, i#118819 : nat, half#1410 : half, sx#29902 : sx} "i32x4.extend_high_i16x8_u" => `VCVTOP`_instr{shape_1#73, shape_2#73}(`%X%`_shape{lanetype#30601, dim#30601, i#118800}(`I32`_lanetype, `%`_dim{i#118807}(4)), `%X%`_shape{lanetype#30613, dim#30613, i#118812}(`I16`_lanetype, `%`_dim{i#118819}(8)), `EXTEND`_vcvtop__{half#1410, sx#29902}(`HIGH`_half, `U`_sx)) + prod "i32x4.extend_high_i16x8_u" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#75 : shape, shape_2#75 : shape, lanetype#30716 : lanetype, dim#30716 : dim, i#119035 : nat, i#119042 : nat, lanetype#30728 : lanetype, dim#30728 : dim, i#119047 : nat, i#119054 : nat, sx#29966 : sx, `zero?#647` : zero?} "i32x4.trunc_sat_f32x4_s" => `VCVTOP`_instr{shape_1#75, shape_2#75}(`%X%`_shape{lanetype#30716, dim#30716, i#119035}(`I32`_lanetype, `%`_dim{i#119042}(4)), `%X%`_shape{lanetype#30728, dim#30728, i#119047}(`F32`_lanetype, `%`_dim{i#119054}(4)), `TRUNC_SAT`_vcvtop__{sx#29966, `zero?#647`}(`S`_sx, ?())) + prod "i32x4.trunc_sat_f32x4_s" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?())) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#77 : shape, shape_2#77 : shape, lanetype#30891 : lanetype, dim#30891 : dim, i#119330 : nat, i#119337 : nat, lanetype#30903 : lanetype, dim#30903 : dim, i#119342 : nat, i#119349 : nat, sx#30030 : sx, `zero?#711` : zero?} "i32x4.trunc_sat_f32x4_u" => `VCVTOP`_instr{shape_1#77, shape_2#77}(`%X%`_shape{lanetype#30891, dim#30891, i#119330}(`I32`_lanetype, `%`_dim{i#119337}(4)), `%X%`_shape{lanetype#30903, dim#30903, i#119342}(`F32`_lanetype, `%`_dim{i#119349}(4)), `TRUNC_SAT`_vcvtop__{sx#30030, `zero?#711`}(`U`_sx, ?())) + prod "i32x4.trunc_sat_f32x4_u" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?())) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#79 : shape, shape_2#79 : shape, lanetype#31066 : lanetype, dim#31066 : dim, i#119625 : nat, i#119632 : nat, lanetype#31078 : lanetype, dim#31078 : dim, i#119637 : nat, i#119644 : nat, sx#30094 : sx, `zero?#775` : zero?} "i32x4.trunc_sat_f64x2_s_zero" => `VCVTOP`_instr{shape_1#79, shape_2#79}(`%X%`_shape{lanetype#31066, dim#31066, i#119625}(`I32`_lanetype, `%`_dim{i#119632}(4)), `%X%`_shape{lanetype#31078, dim#31078, i#119637}(`F64`_lanetype, `%`_dim{i#119644}(2)), `TRUNC_SAT`_vcvtop__{sx#30094, `zero?#775`}(`S`_sx, ?(`ZERO`_zero))) + prod "i32x4.trunc_sat_f64x2_s_zero" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#81 : shape, shape_2#81 : shape, lanetype#31241 : lanetype, dim#31241 : dim, i#119920 : nat, i#119927 : nat, lanetype#31253 : lanetype, dim#31253 : dim, i#119932 : nat, i#119939 : nat, sx#30158 : sx, `zero?#839` : zero?} "i32x4.trunc_sat_f64x2_u_zero" => `VCVTOP`_instr{shape_1#81, shape_2#81}(`%X%`_shape{lanetype#31241, dim#31241, i#119920}(`I32`_lanetype, `%`_dim{i#119927}(4)), `%X%`_shape{lanetype#31253, dim#31253, i#119932}(`F64`_lanetype, `%`_dim{i#119939}(2)), `TRUNC_SAT`_vcvtop__{sx#30158, `zero?#839`}(`U`_sx, ?(`ZERO`_zero))) + prod "i32x4.trunc_sat_f64x2_u_zero" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#83 : shape, shape_2#83 : shape, lanetype#31416 : lanetype, dim#31416 : dim, i#120215 : nat, i#120222 : nat, lanetype#31428 : lanetype, dim#31428 : dim, i#120227 : nat, i#120234 : nat, sx#30222 : sx, `zero?#903` : zero?} "i32x4.relaxed_trunc_f32x4_s" => `VCVTOP`_instr{shape_1#83, shape_2#83}(`%X%`_shape{lanetype#31416, dim#31416, i#120215}(`I32`_lanetype, `%`_dim{i#120222}(4)), `%X%`_shape{lanetype#31428, dim#31428, i#120227}(`F32`_lanetype, `%`_dim{i#120234}(4)), `RELAXED_TRUNC`_vcvtop__{sx#30222, `zero?#903`}(`S`_sx, ?())) + prod "i32x4.relaxed_trunc_f32x4_s" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?())) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#85 : shape, shape_2#85 : shape, lanetype#31591 : lanetype, dim#31591 : dim, i#120510 : nat, i#120517 : nat, lanetype#31603 : lanetype, dim#31603 : dim, i#120522 : nat, i#120529 : nat, sx#30286 : sx, `zero?#967` : zero?} "i32x4.relaxed_trunc_f32x4_u" => `VCVTOP`_instr{shape_1#85, shape_2#85}(`%X%`_shape{lanetype#31591, dim#31591, i#120510}(`I32`_lanetype, `%`_dim{i#120517}(4)), `%X%`_shape{lanetype#31603, dim#31603, i#120522}(`F32`_lanetype, `%`_dim{i#120529}(4)), `RELAXED_TRUNC`_vcvtop__{sx#30286, `zero?#967`}(`U`_sx, ?())) + prod "i32x4.relaxed_trunc_f32x4_u" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?())) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#87 : shape, shape_2#87 : shape, lanetype#31766 : lanetype, dim#31766 : dim, i#120805 : nat, i#120812 : nat, lanetype#31778 : lanetype, dim#31778 : dim, i#120817 : nat, i#120824 : nat, sx#30350 : sx, `zero?#1031` : zero?} "i32x4.relaxed_trunc_f64x2_s_zero" => `VCVTOP`_instr{shape_1#87, shape_2#87}(`%X%`_shape{lanetype#31766, dim#31766, i#120805}(`I32`_lanetype, `%`_dim{i#120812}(4)), `%X%`_shape{lanetype#31778, dim#31778, i#120817}(`F64`_lanetype, `%`_dim{i#120824}(2)), `RELAXED_TRUNC`_vcvtop__{sx#30350, `zero?#1031`}(`S`_sx, ?(`ZERO`_zero))) + prod "i32x4.relaxed_trunc_f64x2_s_zero" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#89 : shape, shape_2#89 : shape, lanetype#31941 : lanetype, dim#31941 : dim, i#121100 : nat, i#121107 : nat, lanetype#31953 : lanetype, dim#31953 : dim, i#121112 : nat, i#121119 : nat, sx#30414 : sx, `zero?#1095` : zero?} "i32x4.relaxed_trunc_f64x2_u_zero" => `VCVTOP`_instr{shape_1#89, shape_2#89}(`%X%`_shape{lanetype#31941, dim#31941, i#121100}(`I32`_lanetype, `%`_dim{i#121107}(4)), `%X%`_shape{lanetype#31953, dim#31953, i#121112}(`F64`_lanetype, `%`_dim{i#121119}(2)), `RELAXED_TRUNC`_vcvtop__{sx#30414, `zero?#1095`}(`U`_sx, ?(`ZERO`_zero))) + prod "i32x4.relaxed_trunc_f64x2_u_zero" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#91 : shape, shape_2#91 : shape, lanetype#32116 : lanetype, dim#32116 : dim, i#121395 : nat, i#121402 : nat, lanetype#32128 : lanetype, dim#32128 : dim, i#121407 : nat, i#121414 : nat, half#1444 : half, sx#30448 : sx} "i64x2.extend_low_i32x4_s" => `VCVTOP`_instr{shape_1#91, shape_2#91}(`%X%`_shape{lanetype#32116, dim#32116, i#121395}(`I64`_lanetype, `%`_dim{i#121402}(2)), `%X%`_shape{lanetype#32128, dim#32128, i#121407}(`I32`_lanetype, `%`_dim{i#121414}(4)), `EXTEND`_vcvtop__{half#1444, sx#30448}(`LOW`_half, `S`_sx)) + prod "i64x2.extend_low_i32x4_s" => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#93 : shape, shape_2#93 : shape, lanetype#32231 : lanetype, dim#32231 : dim, i#121630 : nat, i#121637 : nat, lanetype#32243 : lanetype, dim#32243 : dim, i#121642 : nat, i#121649 : nat, half#1478 : half, sx#30482 : sx} "i64x2.extend_low_i32x4_u" => `VCVTOP`_instr{shape_1#93, shape_2#93}(`%X%`_shape{lanetype#32231, dim#32231, i#121630}(`I64`_lanetype, `%`_dim{i#121637}(2)), `%X%`_shape{lanetype#32243, dim#32243, i#121642}(`I32`_lanetype, `%`_dim{i#121649}(4)), `EXTEND`_vcvtop__{half#1478, sx#30482}(`LOW`_half, `U`_sx)) + prod "i64x2.extend_low_i32x4_u" => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#95 : shape, shape_2#95 : shape, lanetype#32346 : lanetype, dim#32346 : dim, i#121865 : nat, i#121872 : nat, lanetype#32358 : lanetype, dim#32358 : dim, i#121877 : nat, i#121884 : nat, half#1512 : half, sx#30516 : sx} "i64x2.extend_high_i32x4_s" => `VCVTOP`_instr{shape_1#95, shape_2#95}(`%X%`_shape{lanetype#32346, dim#32346, i#121865}(`I64`_lanetype, `%`_dim{i#121872}(2)), `%X%`_shape{lanetype#32358, dim#32358, i#121877}(`I32`_lanetype, `%`_dim{i#121884}(4)), `EXTEND`_vcvtop__{half#1512, sx#30516}(`HIGH`_half, `S`_sx)) + prod "i64x2.extend_high_i32x4_s" => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#97 : shape, shape_2#97 : shape, lanetype#32461 : lanetype, dim#32461 : dim, i#122100 : nat, i#122107 : nat, lanetype#32473 : lanetype, dim#32473 : dim, i#122112 : nat, i#122119 : nat, half#1546 : half, sx#30550 : sx} "i64x2.extend_high_i32x4_u" => `VCVTOP`_instr{shape_1#97, shape_2#97}(`%X%`_shape{lanetype#32461, dim#32461, i#122100}(`I64`_lanetype, `%`_dim{i#122107}(2)), `%X%`_shape{lanetype#32473, dim#32473, i#122112}(`I32`_lanetype, `%`_dim{i#122119}(4)), `EXTEND`_vcvtop__{half#1546, sx#30550}(`HIGH`_half, `U`_sx)) + prod "i64x2.extend_high_i32x4_u" => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#99 : shape, shape_2#99 : shape, lanetype#32576 : lanetype, dim#32576 : dim, i#122335 : nat, i#122342 : nat, lanetype#32588 : lanetype, dim#32588 : dim, i#122347 : nat, i#122354 : nat, zero#2143 : zero} "f32x4.demote_f64x2_zero" => `VCVTOP`_instr{shape_1#99, shape_2#99}(`%X%`_shape{lanetype#32576, dim#32576, i#122335}(`F32`_lanetype, `%`_dim{i#122342}(4)), `%X%`_shape{lanetype#32588, dim#32588, i#122347}(`F64`_lanetype, `%`_dim{i#122354}(2)), `DEMOTE`_vcvtop__{zero#2143}(`ZERO`_zero)) + prod "f32x4.demote_f64x2_zero" => `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DEMOTE`_vcvtop__(`ZERO`_zero)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#101 : shape, shape_2#101 : shape, lanetype#32841 : lanetype, dim#32841 : dim, i#122780 : nat, i#122787 : nat, lanetype#32853 : lanetype, dim#32853 : dim, i#122792 : nat, i#122799 : nat, `half?#175` : half?, sx#30584 : sx} "f32x4.convert_i32x4_s" => `VCVTOP`_instr{shape_1#101, shape_2#101}(`%X%`_shape{lanetype#32841, dim#32841, i#122780}(`F32`_lanetype, `%`_dim{i#122787}(4)), `%X%`_shape{lanetype#32853, dim#32853, i#122792}(`I32`_lanetype, `%`_dim{i#122799}(4)), `CONVERT`_vcvtop__{`half?#175`, sx#30584}(?(), `S`_sx)) + prod "f32x4.convert_i32x4_s" => `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#103 : shape, shape_2#103 : shape, lanetype#33046 : lanetype, dim#33046 : dim, i#123165 : nat, i#123172 : nat, lanetype#33058 : lanetype, dim#33058 : dim, i#123177 : nat, i#123184 : nat, `half?#209` : half?, sx#30618 : sx} "f32x4.convert_i32x4_u" => `VCVTOP`_instr{shape_1#103, shape_2#103}(`%X%`_shape{lanetype#33046, dim#33046, i#123165}(`F32`_lanetype, `%`_dim{i#123172}(4)), `%X%`_shape{lanetype#33058, dim#33058, i#123177}(`I32`_lanetype, `%`_dim{i#123184}(4)), `CONVERT`_vcvtop__{`half?#209`, sx#30618}(?(), `U`_sx)) + prod "f32x4.convert_i32x4_u" => `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#105 : shape, shape_2#105 : shape, lanetype#33251 : lanetype, dim#33251 : dim, i#123550 : nat, i#123557 : nat, lanetype#33263 : lanetype, dim#33263 : dim, i#123562 : nat, i#123569 : nat} "f64x2.promote_low_f32x4" => `VCVTOP`_instr{shape_1#105, shape_2#105}(`%X%`_shape{lanetype#33251, dim#33251, i#123550}(`F64`_lanetype, `%`_dim{i#123557}(2)), `%X%`_shape{lanetype#33263, dim#33263, i#123562}(`F32`_lanetype, `%`_dim{i#123569}(4)), `PROMOTELOW`_vcvtop__) + prod "f64x2.promote_low_f32x4" => `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#107 : shape, shape_2#107 : shape, lanetype#33516 : lanetype, dim#33516 : dim, i#123995 : nat, i#124002 : nat, lanetype#33528 : lanetype, dim#33528 : dim, i#124007 : nat, i#124014 : nat, `half?#243` : half?, sx#30652 : sx} "f64x2.convert_low_i32x4_s" => `VCVTOP`_instr{shape_1#107, shape_2#107}(`%X%`_shape{lanetype#33516, dim#33516, i#123995}(`F64`_lanetype, `%`_dim{i#124002}(2)), `%X%`_shape{lanetype#33528, dim#33528, i#124007}(`I32`_lanetype, `%`_dim{i#124014}(4)), `CONVERT`_vcvtop__{`half?#243`, sx#30652}(?(`LOW`_half), `S`_sx)) + prod "f64x2.convert_low_i32x4_s" => `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{shape_1#109 : shape, shape_2#109 : shape, lanetype#33721 : lanetype, dim#33721 : dim, i#124380 : nat, i#124387 : nat, lanetype#33733 : lanetype, dim#33733 : dim, i#124392 : nat, i#124399 : nat, `half?#277` : half?, sx#30686 : sx} "f64x2.convert_low_i32x4_u" => `VCVTOP`_instr{shape_1#109, shape_2#109}(`%X%`_shape{lanetype#33721, dim#33721, i#124380}(`F64`_lanetype, `%`_dim{i#124387}(2)), `%X%`_shape{lanetype#33733, dim#33733, i#124392}(`I32`_lanetype, `%`_dim{i#124399}(4)), `CONVERT`_vcvtop__{`half?#277`, sx#30686}(?(`LOW`_half), `U`_sx)) + prod "f64x2.convert_low_i32x4_u" => `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#79 : ishape, ishape_2#79 : ishape, shape#4954 : shape, Jnn#596 : Jnn, lanetype#33926 : lanetype, dim#33926 : dim, i#124765 : nat, i#124772 : nat, shape#4966 : shape, Jnn#600 : Jnn, lanetype#33938 : lanetype, dim#33938 : dim, i#124777 : nat, i#124784 : nat, sx#30720 : sx} "i16x8.extadd_pairwise_i8x16_s" => `VEXTUNOP`_instr{ishape_1#79, ishape_2#79}(`%`_ishape{shape#4954, Jnn#596}(`%X%`_shape{lanetype#33926, dim#33926, i#124765}(`I16`_lanetype, `%`_dim{i#124772}(8))), `%`_ishape{shape#4966, Jnn#600}(`%X%`_shape{lanetype#33938, dim#33938, i#124777}(`I8`_lanetype, `%`_dim{i#124784}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#30720}(`S`_sx)) + prod "i16x8.extadd_pairwise_i8x16_s" => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#81 : ishape, ishape_2#81 : ishape, shape#5069 : shape, Jnn#604 : Jnn, lanetype#34161 : lanetype, dim#34161 : dim, i#125120 : nat, i#125127 : nat, shape#5081 : shape, Jnn#608 : Jnn, lanetype#34173 : lanetype, dim#34173 : dim, i#125132 : nat, i#125139 : nat, sx#30754 : sx} "i16x8.extadd_pairwise_i8x16_u" => `VEXTUNOP`_instr{ishape_1#81, ishape_2#81}(`%`_ishape{shape#5069, Jnn#604}(`%X%`_shape{lanetype#34161, dim#34161, i#125120}(`I16`_lanetype, `%`_dim{i#125127}(8))), `%`_ishape{shape#5081, Jnn#608}(`%X%`_shape{lanetype#34173, dim#34173, i#125132}(`I8`_lanetype, `%`_dim{i#125139}(16))), `EXTADD_PAIRWISE`_vextunop__{sx#30754}(`U`_sx)) + prod "i16x8.extadd_pairwise_i8x16_u" => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#83 : ishape, ishape_2#83 : ishape, shape#5184 : shape, Jnn#612 : Jnn, lanetype#34396 : lanetype, dim#34396 : dim, i#125475 : nat, i#125482 : nat, shape#5196 : shape, Jnn#616 : Jnn, lanetype#34408 : lanetype, dim#34408 : dim, i#125487 : nat, i#125494 : nat, sx#30788 : sx} "i32x4.extadd_pairwise_i16x8_s" => `VEXTUNOP`_instr{ishape_1#83, ishape_2#83}(`%`_ishape{shape#5184, Jnn#612}(`%X%`_shape{lanetype#34396, dim#34396, i#125475}(`I32`_lanetype, `%`_dim{i#125482}(4))), `%`_ishape{shape#5196, Jnn#616}(`%X%`_shape{lanetype#34408, dim#34408, i#125487}(`I16`_lanetype, `%`_dim{i#125494}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#30788}(`S`_sx)) + prod "i32x4.extadd_pairwise_i16x8_s" => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#85 : ishape, ishape_2#85 : ishape, shape#5299 : shape, Jnn#620 : Jnn, lanetype#34631 : lanetype, dim#34631 : dim, i#125830 : nat, i#125837 : nat, shape#5311 : shape, Jnn#624 : Jnn, lanetype#34643 : lanetype, dim#34643 : dim, i#125842 : nat, i#125849 : nat, sx#30822 : sx} "i32x4.extadd_pairwise_i16x8_u" => `VEXTUNOP`_instr{ishape_1#85, ishape_2#85}(`%`_ishape{shape#5299, Jnn#620}(`%X%`_shape{lanetype#34631, dim#34631, i#125830}(`I32`_lanetype, `%`_dim{i#125837}(4))), `%`_ishape{shape#5311, Jnn#624}(`%X%`_shape{lanetype#34643, dim#34643, i#125842}(`I16`_lanetype, `%`_dim{i#125849}(8))), `EXTADD_PAIRWISE`_vextunop__{sx#30822}(`U`_sx)) + prod "i32x4.extadd_pairwise_i16x8_u" => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#87 : ishape, ishape_2#87 : ishape, shape#5414 : shape, Jnn#628 : Jnn, lanetype#34866 : lanetype, dim#34866 : dim, i#126185 : nat, i#126192 : nat, shape#5426 : shape, Jnn#632 : Jnn, lanetype#34878 : lanetype, dim#34878 : dim, i#126197 : nat, i#126204 : nat, half#1820 : half, sx#30856 : sx} "i16x8.extmul_low_i8x16_s" => `VEXTBINOP`_instr{ishape_1#87, ishape_2#87}(`%`_ishape{shape#5414, Jnn#628}(`%X%`_shape{lanetype#34866, dim#34866, i#126185}(`I16`_lanetype, `%`_dim{i#126192}(8))), `%`_ishape{shape#5426, Jnn#632}(`%X%`_shape{lanetype#34878, dim#34878, i#126197}(`I8`_lanetype, `%`_dim{i#126204}(16))), `EXTMUL`_vextbinop__{half#1820, sx#30856}(`LOW`_half, `S`_sx)) + prod "i16x8.extmul_low_i8x16_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#89 : ishape, ishape_2#89 : ishape, shape#5529 : shape, Jnn#636 : Jnn, lanetype#35101 : lanetype, dim#35101 : dim, i#126540 : nat, i#126547 : nat, shape#5541 : shape, Jnn#640 : Jnn, lanetype#35113 : lanetype, dim#35113 : dim, i#126552 : nat, i#126559 : nat, half#1854 : half, sx#30890 : sx} "i16x8.extmul_low_i8x16_u" => `VEXTBINOP`_instr{ishape_1#89, ishape_2#89}(`%`_ishape{shape#5529, Jnn#636}(`%X%`_shape{lanetype#35101, dim#35101, i#126540}(`I16`_lanetype, `%`_dim{i#126547}(8))), `%`_ishape{shape#5541, Jnn#640}(`%X%`_shape{lanetype#35113, dim#35113, i#126552}(`I8`_lanetype, `%`_dim{i#126559}(16))), `EXTMUL`_vextbinop__{half#1854, sx#30890}(`LOW`_half, `U`_sx)) + prod "i16x8.extmul_low_i8x16_u" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#91 : ishape, ishape_2#91 : ishape, shape#5644 : shape, Jnn#644 : Jnn, lanetype#35336 : lanetype, dim#35336 : dim, i#126895 : nat, i#126902 : nat, shape#5656 : shape, Jnn#648 : Jnn, lanetype#35348 : lanetype, dim#35348 : dim, i#126907 : nat, i#126914 : nat, half#1888 : half, sx#30924 : sx} "i16x8.extmul_high_i8x16_s" => `VEXTBINOP`_instr{ishape_1#91, ishape_2#91}(`%`_ishape{shape#5644, Jnn#644}(`%X%`_shape{lanetype#35336, dim#35336, i#126895}(`I16`_lanetype, `%`_dim{i#126902}(8))), `%`_ishape{shape#5656, Jnn#648}(`%X%`_shape{lanetype#35348, dim#35348, i#126907}(`I8`_lanetype, `%`_dim{i#126914}(16))), `EXTMUL`_vextbinop__{half#1888, sx#30924}(`HIGH`_half, `S`_sx)) + prod "i16x8.extmul_high_i8x16_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#93 : ishape, ishape_2#93 : ishape, shape#5759 : shape, Jnn#652 : Jnn, lanetype#35571 : lanetype, dim#35571 : dim, i#127250 : nat, i#127257 : nat, shape#5771 : shape, Jnn#656 : Jnn, lanetype#35583 : lanetype, dim#35583 : dim, i#127262 : nat, i#127269 : nat, half#1922 : half, sx#30958 : sx} "i16x8.extmul_high_i8x16_u" => `VEXTBINOP`_instr{ishape_1#93, ishape_2#93}(`%`_ishape{shape#5759, Jnn#652}(`%X%`_shape{lanetype#35571, dim#35571, i#127250}(`I16`_lanetype, `%`_dim{i#127257}(8))), `%`_ishape{shape#5771, Jnn#656}(`%X%`_shape{lanetype#35583, dim#35583, i#127262}(`I8`_lanetype, `%`_dim{i#127269}(16))), `EXTMUL`_vextbinop__{half#1922, sx#30958}(`HIGH`_half, `U`_sx)) + prod "i16x8.extmul_high_i8x16_u" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#95 : ishape, ishape_2#95 : ishape, shape#5874 : shape, Jnn#660 : Jnn, lanetype#35806 : lanetype, dim#35806 : dim, i#127605 : nat, i#127612 : nat, shape#5886 : shape, Jnn#664 : Jnn, lanetype#35818 : lanetype, dim#35818 : dim, i#127617 : nat, i#127624 : nat, half#1956 : half, sx#30992 : sx} "i32x4.extmul_low_i16x8_s" => `VEXTBINOP`_instr{ishape_1#95, ishape_2#95}(`%`_ishape{shape#5874, Jnn#660}(`%X%`_shape{lanetype#35806, dim#35806, i#127605}(`I32`_lanetype, `%`_dim{i#127612}(4))), `%`_ishape{shape#5886, Jnn#664}(`%X%`_shape{lanetype#35818, dim#35818, i#127617}(`I16`_lanetype, `%`_dim{i#127624}(8))), `EXTMUL`_vextbinop__{half#1956, sx#30992}(`LOW`_half, `S`_sx)) + prod "i32x4.extmul_low_i16x8_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#97 : ishape, ishape_2#97 : ishape, shape#5989 : shape, Jnn#668 : Jnn, lanetype#36041 : lanetype, dim#36041 : dim, i#127960 : nat, i#127967 : nat, shape#6001 : shape, Jnn#672 : Jnn, lanetype#36053 : lanetype, dim#36053 : dim, i#127972 : nat, i#127979 : nat, half#1990 : half, sx#31026 : sx} "i32x4.extmul_low_i16x8_u" => `VEXTBINOP`_instr{ishape_1#97, ishape_2#97}(`%`_ishape{shape#5989, Jnn#668}(`%X%`_shape{lanetype#36041, dim#36041, i#127960}(`I32`_lanetype, `%`_dim{i#127967}(4))), `%`_ishape{shape#6001, Jnn#672}(`%X%`_shape{lanetype#36053, dim#36053, i#127972}(`I16`_lanetype, `%`_dim{i#127979}(8))), `EXTMUL`_vextbinop__{half#1990, sx#31026}(`LOW`_half, `U`_sx)) + prod "i32x4.extmul_low_i16x8_u" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#99 : ishape, ishape_2#99 : ishape, shape#6104 : shape, Jnn#676 : Jnn, lanetype#36276 : lanetype, dim#36276 : dim, i#128315 : nat, i#128322 : nat, shape#6116 : shape, Jnn#680 : Jnn, lanetype#36288 : lanetype, dim#36288 : dim, i#128327 : nat, i#128334 : nat, half#2024 : half, sx#31060 : sx} "i32x4.extmul_high_i16x8_s" => `VEXTBINOP`_instr{ishape_1#99, ishape_2#99}(`%`_ishape{shape#6104, Jnn#676}(`%X%`_shape{lanetype#36276, dim#36276, i#128315}(`I32`_lanetype, `%`_dim{i#128322}(4))), `%`_ishape{shape#6116, Jnn#680}(`%X%`_shape{lanetype#36288, dim#36288, i#128327}(`I16`_lanetype, `%`_dim{i#128334}(8))), `EXTMUL`_vextbinop__{half#2024, sx#31060}(`HIGH`_half, `S`_sx)) + prod "i32x4.extmul_high_i16x8_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#101 : ishape, ishape_2#101 : ishape, shape#6219 : shape, Jnn#684 : Jnn, lanetype#36511 : lanetype, dim#36511 : dim, i#128670 : nat, i#128677 : nat, shape#6231 : shape, Jnn#688 : Jnn, lanetype#36523 : lanetype, dim#36523 : dim, i#128682 : nat, i#128689 : nat, half#2058 : half, sx#31094 : sx} "i32x4.extmul_high_i16x8_u" => `VEXTBINOP`_instr{ishape_1#101, ishape_2#101}(`%`_ishape{shape#6219, Jnn#684}(`%X%`_shape{lanetype#36511, dim#36511, i#128670}(`I32`_lanetype, `%`_dim{i#128677}(4))), `%`_ishape{shape#6231, Jnn#688}(`%X%`_shape{lanetype#36523, dim#36523, i#128682}(`I16`_lanetype, `%`_dim{i#128689}(8))), `EXTMUL`_vextbinop__{half#2058, sx#31094}(`HIGH`_half, `U`_sx)) + prod "i32x4.extmul_high_i16x8_u" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#103 : ishape, ishape_2#103 : ishape, shape#6334 : shape, Jnn#692 : Jnn, lanetype#36746 : lanetype, dim#36746 : dim, i#129025 : nat, i#129032 : nat, shape#6346 : shape, Jnn#696 : Jnn, lanetype#36758 : lanetype, dim#36758 : dim, i#129037 : nat, i#129044 : nat} "i32x4.dot_i16x8_s" => `VEXTBINOP`_instr{ishape_1#103, ishape_2#103}(`%`_ishape{shape#6334, Jnn#692}(`%X%`_shape{lanetype#36746, dim#36746, i#129025}(`I32`_lanetype, `%`_dim{i#129032}(4))), `%`_ishape{shape#6346, Jnn#696}(`%X%`_shape{lanetype#36758, dim#36758, i#129037}(`I16`_lanetype, `%`_dim{i#129044}(8))), `DOTS`_vextbinop__) + prod "i32x4.dot_i16x8_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `DOTS`_vextbinop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#105 : ishape, ishape_2#105 : ishape, shape#6449 : shape, Jnn#700 : Jnn, lanetype#36981 : lanetype, dim#36981 : dim, i#129380 : nat, i#129387 : nat, shape#6461 : shape, Jnn#704 : Jnn, lanetype#36993 : lanetype, dim#36993 : dim, i#129392 : nat, i#129399 : nat, half#2122 : half, sx#31158 : sx} "i64x2.extmul_low_i32x4_s" => `VEXTBINOP`_instr{ishape_1#105, ishape_2#105}(`%`_ishape{shape#6449, Jnn#700}(`%X%`_shape{lanetype#36981, dim#36981, i#129380}(`I64`_lanetype, `%`_dim{i#129387}(2))), `%`_ishape{shape#6461, Jnn#704}(`%X%`_shape{lanetype#36993, dim#36993, i#129392}(`I32`_lanetype, `%`_dim{i#129399}(4))), `EXTMUL`_vextbinop__{half#2122, sx#31158}(`LOW`_half, `S`_sx)) + prod "i64x2.extmul_low_i32x4_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#107 : ishape, ishape_2#107 : ishape, shape#6564 : shape, Jnn#708 : Jnn, lanetype#37216 : lanetype, dim#37216 : dim, i#129735 : nat, i#129742 : nat, shape#6576 : shape, Jnn#712 : Jnn, lanetype#37228 : lanetype, dim#37228 : dim, i#129747 : nat, i#129754 : nat, half#2156 : half, sx#31192 : sx} "i64x2.extmul_low_i32x4_u" => `VEXTBINOP`_instr{ishape_1#107, ishape_2#107}(`%`_ishape{shape#6564, Jnn#708}(`%X%`_shape{lanetype#37216, dim#37216, i#129735}(`I64`_lanetype, `%`_dim{i#129742}(2))), `%`_ishape{shape#6576, Jnn#712}(`%X%`_shape{lanetype#37228, dim#37228, i#129747}(`I32`_lanetype, `%`_dim{i#129754}(4))), `EXTMUL`_vextbinop__{half#2156, sx#31192}(`LOW`_half, `U`_sx)) + prod "i64x2.extmul_low_i32x4_u" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#109 : ishape, ishape_2#109 : ishape, shape#6679 : shape, Jnn#716 : Jnn, lanetype#37451 : lanetype, dim#37451 : dim, i#130090 : nat, i#130097 : nat, shape#6691 : shape, Jnn#720 : Jnn, lanetype#37463 : lanetype, dim#37463 : dim, i#130102 : nat, i#130109 : nat, half#2190 : half, sx#31226 : sx} "i64x2.extmul_high_i32x4_s" => `VEXTBINOP`_instr{ishape_1#109, ishape_2#109}(`%`_ishape{shape#6679, Jnn#716}(`%X%`_shape{lanetype#37451, dim#37451, i#130090}(`I64`_lanetype, `%`_dim{i#130097}(2))), `%`_ishape{shape#6691, Jnn#720}(`%X%`_shape{lanetype#37463, dim#37463, i#130102}(`I32`_lanetype, `%`_dim{i#130109}(4))), `EXTMUL`_vextbinop__{half#2190, sx#31226}(`HIGH`_half, `S`_sx)) + prod "i64x2.extmul_high_i32x4_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{ishape_1#111 : ishape, ishape_2#111 : ishape, shape#6794 : shape, Jnn#724 : Jnn, lanetype#37686 : lanetype, dim#37686 : dim, i#130445 : nat, i#130452 : nat, shape#6806 : shape, Jnn#728 : Jnn, lanetype#37698 : lanetype, dim#37698 : dim, i#130457 : nat, i#130464 : nat, half#2224 : half, sx#31260 : sx} "i64x2.extmul_high_i32x4_u" => `VEXTBINOP`_instr{ishape_1#111, ishape_2#111}(`%`_ishape{shape#6794, Jnn#724}(`%X%`_shape{lanetype#37686, dim#37686, i#130445}(`I64`_lanetype, `%`_dim{i#130452}(2))), `%`_ishape{shape#6806, Jnn#728}(`%X%`_shape{lanetype#37698, dim#37698, i#130457}(`I32`_lanetype, `%`_dim{i#130464}(4))), `EXTMUL`_vextbinop__{half#2224, sx#31260}(`HIGH`_half, `U`_sx)) + prod "i64x2.extmul_high_i32x4_u" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec rec { @@ -122314,16 +97565,16 @@ grammar Tinstrs_(I : I) : instr* ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:88.1-90.65 grammar Tblockinstr_(I : I) : instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:63.5-67.35 - prod{blocktype#41 : blocktype, `instr*#2360` : instr*, bt : blocktype, `in*` : instr*, `char*#1237` : char*, `id?` : char?, I' : I, `char*#1243` : char*, `id'?` : char?} {{"block"} {(?(`%`_name{`char*#1237`}(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name{`char*#1243`}(lift(id'?{id' <- `id'?`}))):Tid?{}}} => `BLOCK`_instr{blocktype#41, `instr*#2360`}(bt, in*{in <- `in*`}) + prod{bt : blocktype, `in*` : instr*, `id?` : char?, I' : I, `id'?` : char?} {{"block"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id'?{id' <- `id'?`}))):Tid?{}}} => `BLOCK`_instr(bt, in*{in <- `in*`}) -- if ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`})) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:68.5-72.35 - prod{blocktype#43 : blocktype, `instr*#2362` : instr*, bt : blocktype, `in*` : instr*, `char*#1249` : char*, `id?` : char?, I' : I, `char*#1255` : char*, `id'?` : char?} {{"loop"} {(?(`%`_name{`char*#1249`}(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name{`char*#1255`}(lift(id'?{id' <- `id'?`}))):Tid?{}}} => `LOOP`_instr{blocktype#43, `instr*#2362`}(bt, in*{in <- `in*`}) + prod{bt : blocktype, `in*` : instr*, `id?` : char?, I' : I, `id'?` : char?} {{"loop"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id'?{id' <- `id'?`}))):Tid?{}}} => `LOOP`_instr(bt, in*{in <- `in*`}) -- if ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`})) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:73.5-79.71 - prod{blocktype#45 : blocktype, `instr*#2364` : instr*, bt : blocktype, `in_1*` : instr*, `in_2*` : instr*, `char*#1261` : char*, `id?` : char?, I' : I, `char*#1267` : char*, `id_1?` : char?, `char*#1273` : char*, `id_2?` : char?} {{"if"} {(?(`%`_name{`char*#1261`}(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in_1*{in_1 <- `in_1*`}:Tinstrs_(I')} {"else"} {?(`%`_name{`char*#1267`}(lift(id_1?{id_1 <- `id_1?`}))):Tid?{}} {in_2*{in_2 <- `in_2*`}:Tinstrs_(I')} {"end"} {?(`%`_name{`char*#1273`}(lift(id_2?{id_2 <- `id_2?`}))):Tid?{}}} => `IF%%ELSE%`_instr{blocktype#45, `instr*#2364`}(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`}) + prod{bt : blocktype, `in_1*` : instr*, `in_2*` : instr*, `id?` : char?, I' : I, `id_1?` : char?, `id_2?` : char?} {{"if"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in_1*{in_1 <- `in_1*`}:Tinstrs_(I')} {"else"} {?(`%`_name(lift(id_1?{id_1 <- `id_1?`}))):Tid?{}} {in_2*{in_2 <- `in_2*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id_2?{id_2 <- `id_2?`}))):Tid?{}}} => `IF%%ELSE%`_instr(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`}) -- if (((id_1?{id_1 <- `id_1?`} = ?()) \/ (id_1?{id_1 <- `id_1?`} = id?{id <- `id?`})) /\ ((id_2?{id_2 <- `id_2?`} = ?()) \/ (id_2?{id_2 <- `id_2?`} = id?{id <- `id?`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:80.5-85.35 - prod{blocktype#47 : blocktype, `instr*#2367` : instr*, bt : blocktype, `X*#13607` : catch*, `c*` : catch*, `in*` : instr*, `char*#1279` : char*, `id?` : char?, I' : I, `char*#1285` : char*, `id'?` : char?} {{"try_table"} {(?(`%`_name{`char*#1279`}(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {c*{c <- `c*`}:Tcatch_(I)*{}} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name{`char*#1285`}(lift(id'?{id' <- `id'?`}))):Tid?{}}} => `TRY_TABLE`_instr{blocktype#47, `instr*#2367`}(bt, `%`_list{`X*#13607`}(c*{c <- `c*`}), in*{in <- `in*`}) + prod{bt : blocktype, `c*` : catch*, `in*` : instr*, `id?` : char?, I' : I, `id'?` : char?} {{"try_table"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {c*{c <- `c*`}:Tcatch_(I)*{}} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id'?{id' <- `id'?`}))):Tid?{}}} => `TRY_TABLE`_instr(bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`}) -- if ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`})) } @@ -122332,384 +97583,384 @@ grammar Texpr_(I : I) : expr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod{`in*` : instr*} in*{in <- `in*`}:Tinstrs_(I) => in*{in <- `in*`} -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Ttype_(I : I) : (type, idctxt) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{rectype#1855 : rectype, qt : rectype, I' : I, I'' : I, `X*#13622` : subtype*, n : n, `st*` : subtype*, `name?*#609` : name?*, `name?*#610` : name?*, `name?*#611` : name?*, `name?*#612` : name?*, `name?*#613` : name?*, `name?*#614` : name?*, `name?*#615` : name?*, `name?*#616` : name?*, `name?*#617` : name?*, `name?*#618` : name?*, `name?**#32` : name?**, `deftype?*#23` : deftype?*, i : nat, `n#1569*` : n*, `rectype#1885*` : rectype*} (qt, I'):Trectype_(I) => (`TYPE`_type{rectype#1855}(qt), I' +++ I'') - -- if (qt = `REC`_rectype(`%`_list{`X*#13622`}(st^n{st <- `st*`}))) - -- if (I'' = {`TYPES`{`name?*#609`} [], `TAGS`{`name?*#610`} [], `GLOBALS`{`name?*#611`} [], `MEMS`{`name?*#612`} [], `TABLES`{`name?*#613`} [], `FUNCS`{`name?*#614`} [], `DATAS`{`name?*#615`} [], `ELEMS`{`name?*#616`} [], `LOCALS`{`name?*#617`} [], `LABELS`{`name?*#618`} [], `FIELDS`{`name?**#32`} [], `TYPEDEFS`{`deftype?*#23`} ?(`_DEF`_deftype{rectype#1885, n#1569}(qt, i))^(i (`TYPE`_type(qt), I' +++ I'') + -- if (qt = `REC`_rectype(`%`_list(st^n{st <- `st*`}))) + -- if (I'' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` ?(`_DEF`_deftype(qt, i))^(i (`TAG`_tag{tagtype#448}(jt), {`TYPES`{`name?*#619`} [], `TAGS`{`name?*#620`} [?(`%`_name{`char*#1357`}(lift(id?{id <- `id?`})))], `GLOBALS`{`name?*#621`} [], `MEMS`{`name?*#622`} [], `TABLES`{`name?*#623`} [], `FUNCS`{`name?*#624`} [], `DATAS`{`name?*#625`} [], `ELEMS`{`name?*#626`} [], `LOCALS`{`name?*#627`} [], `LABELS`{`name?*#628`} [], `FIELDS`{`name?**#33`} [], `TYPEDEFS`{`deftype?*#24`} []}) + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{jt : tagtype, `id?` : char?} {{"("} {"tag"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {jt:Ttagtype_(I)} {")"}} => (`TAG`_tag(jt), {`TYPES` [], `TAGS` [?(`%`_name(lift(id?{id <- `id?`})))], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tglobal_(I : I) : (global, idctxt) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{globaltype#2409 : globaltype, expr#5265 : expr, gt : globaltype, e : expr, `name?*#629` : name?*, `name?*#630` : name?*, `name?*#631` : name?*, `char*#1369` : char*, `id?` : char?, `name?*#632` : name?*, `name?*#633` : name?*, `name?*#634` : name?*, `name?*#635` : name?*, `name?*#636` : name?*, `name?*#637` : name?*, `name?*#638` : name?*, `name?**#34` : name?**, `deftype?*#25` : deftype?*, `char*#1363` : char*} {{"("} {"global"} {?(`%`_name{`char*#1363`}(lift(id?{id <- `id?`}))):Tid?{}} {gt:Tglobaltype_(I)} {e:Texpr_(I)} {")"}} => (`GLOBAL`_global{globaltype#2409, expr#5265}(gt, e), {`TYPES`{`name?*#629`} [], `TAGS`{`name?*#630`} [], `GLOBALS`{`name?*#631`} [?(`%`_name{`char*#1369`}(lift(id?{id <- `id?`})))], `MEMS`{`name?*#632`} [], `TABLES`{`name?*#633`} [], `FUNCS`{`name?*#634`} [], `DATAS`{`name?*#635`} [], `ELEMS`{`name?*#636`} [], `LOCALS`{`name?*#637`} [], `LABELS`{`name?*#638`} [], `FIELDS`{`name?**#34`} [], `TYPEDEFS`{`deftype?*#25`} []}) + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{gt : globaltype, e : expr, `id?` : char?} {{"("} {"global"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {gt:Tglobaltype_(I)} {e:Texpr_(I)} {")"}} => (`GLOBAL`_global(gt, e), {`TYPES` [], `TAGS` [], `GLOBALS` [?(`%`_name(lift(id?{id <- `id?`})))], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tmem_(I : I) : (mem, idctxt) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{memtype#870 : memtype, mt : memtype, `name?*#639` : name?*, `name?*#640` : name?*, `name?*#641` : name?*, `name?*#642` : name?*, `char*#1381` : char*, `id?` : char?, `name?*#643` : name?*, `name?*#644` : name?*, `name?*#645` : name?*, `name?*#646` : name?*, `name?*#647` : name?*, `name?*#648` : name?*, `name?**#35` : name?**, `deftype?*#26` : deftype?*, `char*#1375` : char*} {{"("} {"memory"} {?(`%`_name{`char*#1375`}(lift(id?{id <- `id?`}))):Tid?{}} {mt:Tmemtype_(I)} {")"}} => (`MEMORY`_mem{memtype#870}(mt), {`TYPES`{`name?*#639`} [], `TAGS`{`name?*#640`} [], `GLOBALS`{`name?*#641`} [], `MEMS`{`name?*#642`} [?(`%`_name{`char*#1381`}(lift(id?{id <- `id?`})))], `TABLES`{`name?*#643`} [], `FUNCS`{`name?*#644`} [], `DATAS`{`name?*#645`} [], `ELEMS`{`name?*#646`} [], `LOCALS`{`name?*#647`} [], `LABELS`{`name?*#648`} [], `FIELDS`{`name?**#35`} [], `TYPEDEFS`{`deftype?*#26`} []}) + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{mt : memtype, `id?` : char?} {{"("} {"memory"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {mt:Tmemtype_(I)} {")"}} => (`MEMORY`_mem(mt), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Ttable_(I : I) : (table, idctxt) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{tabletype#1292 : tabletype, expr#5277 : expr, tt : tabletype, e : expr, `name?*#649` : name?*, `name?*#650` : name?*, `name?*#651` : name?*, `name?*#652` : name?*, `name?*#653` : name?*, `char*#1393` : char*, `id?` : char?, `name?*#654` : name?*, `name?*#655` : name?*, `name?*#656` : name?*, `name?*#657` : name?*, `name?*#658` : name?*, `name?**#36` : name?**, `deftype?*#27` : deftype?*, `char*#1387` : char*} {{"("} {"table"} {?(`%`_name{`char*#1387`}(lift(id?{id <- `id?`}))):Tid?{}} {tt:Ttabletype_(I)} {e:Texpr_(I)} {")"}} => (`TABLE`_table{tabletype#1292, expr#5277}(tt, e), {`TYPES`{`name?*#649`} [], `TAGS`{`name?*#650`} [], `GLOBALS`{`name?*#651`} [], `MEMS`{`name?*#652`} [], `TABLES`{`name?*#653`} [?(`%`_name{`char*#1393`}(lift(id?{id <- `id?`})))], `FUNCS`{`name?*#654`} [], `DATAS`{`name?*#655`} [], `ELEMS`{`name?*#656`} [], `LOCALS`{`name?*#657`} [], `LABELS`{`name?*#658`} [], `FIELDS`{`name?**#36`} [], `TYPEDEFS`{`deftype?*#27`} []}) + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{tt : tabletype, e : expr, `id?` : char?} {{"("} {"table"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {tt:Ttabletype_(I)} {e:Texpr_(I)} {")"}} => (`TABLE`_table(tt, e), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [?(`%`_name(lift(id?{id <- `id?`})))], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tlocal_(I : I) : (local*, idctxt) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{valtype#1331 : valtype, t : valtype, `name?*#669` : name?*, `name?*#670` : name?*, `name?*#671` : name?*, `name?*#672` : name?*, `name?*#673` : name?*, `name?*#674` : name?*, `name?*#675` : name?*, `name?*#676` : name?*, `name?*#677` : name?*, `char*#1417` : char*, `id?` : char?, `name?*#678` : name?*, `name?**#38` : name?**, `deftype?*#29` : deftype?*, `char*#1411` : char*} {{"("} {"local"} {?(`%`_name{`char*#1411`}(lift(id?{id <- `id?`}))):Tid?{}} {t:Tvaltype_(I)} {")"}} => ([`LOCAL`_local{valtype#1331}(t)], {`TYPES`{`name?*#669`} [], `TAGS`{`name?*#670`} [], `GLOBALS`{`name?*#671`} [], `MEMS`{`name?*#672`} [], `TABLES`{`name?*#673`} [], `FUNCS`{`name?*#674`} [], `DATAS`{`name?*#675`} [], `ELEMS`{`name?*#676`} [], `LOCALS`{`name?*#677`} [?(`%`_name{`char*#1417`}(lift(id?{id <- `id?`})))], `LABELS`{`name?*#678`} [], `FIELDS`{`name?**#38`} [], `TYPEDEFS`{`deftype?*#29`} []}) + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{t : valtype, `id?` : char?} {{"("} {"local"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {t:Tvaltype_(I)} {")"}} => ([`LOCAL`_local(t)], {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [?(`%`_name(lift(id?{id <- `id?`})))], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tfunc_(I : I) : (func, idctxt) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{typeidx#2186 : typeidx, `local*#1613` : local*, expr#5289 : expr, x : idx, `loc**` : local**, e : expr, `name?*#659` : name?*, `name?*#660` : name?*, `name?*#661` : name?*, `name?*#662` : name?*, `name?*#663` : name?*, `name?*#664` : name?*, `char*#1405` : char*, `id?` : char?, `name?*#665` : name?*, `name?*#666` : name?*, `name?*#667` : name?*, `name?*#668` : name?*, `name?**#37` : name?**, `deftype?*#28` : deftype?*, `char*#1399` : char*, I_1 : I, `I_2*` : I*, I' : I} {{"("} {"func"} {?(`%`_name{`char*#1399`}(lift(id?{id <- `id?`}))):Tid?{}} {(x, I_1):Ttypeuse_(I)} {(loc*{loc <- `loc*`}, I_2):Tlocal_(I)*{I_2 <- `I_2*`, `loc*` <- `loc**`}} {e:Texpr_(I')} {")"}} => (`FUNC`_func{typeidx#2186, `local*#1613`, expr#5289}(x, $concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`}), e), {`TYPES`{`name?*#659`} [], `TAGS`{`name?*#660`} [], `GLOBALS`{`name?*#661`} [], `MEMS`{`name?*#662`} [], `TABLES`{`name?*#663`} [], `FUNCS`{`name?*#664`} [?(`%`_name{`char*#1405`}(lift(id?{id <- `id?`})))], `DATAS`{`name?*#665`} [], `ELEMS`{`name?*#666`} [], `LOCALS`{`name?*#667`} [], `LABELS`{`name?*#668`} [], `FIELDS`{`name?**#37`} [], `TYPEDEFS`{`deftype?*#28`} []}) + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{x : idx, `loc**` : local**, e : expr, `id?` : char?, I_1 : I, `I_2*` : I*, I' : I} {{"("} {"func"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(x, I_1):Ttypeuse_(I)} {(loc*{loc <- `loc*`}, I_2):Tlocal_(I)*{I_2 <- `I_2*`, `loc*` <- `loc**`}} {e:Texpr_(I')} {")"}} => (`FUNC`_func(x, $concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`}), e), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [?(`%`_name(lift(id?{id <- `id?`})))], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) -- if (I' = I +++ I_1 +++ $concat_idctxt(I_2*{I_2 <- `I_2*`})) -- Idctxt_ok: `|-%:OK`(I') -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tdatastring : byte* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`b**` : byte**} b*{b <- `b*`}*{`b*` <- `b**`}:Tstring*{} => $concat_(syntax byte, b*{b <- `b*`}*{`b*` <- `b**`}) -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tmemuse_(I : I) : memidx - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{x : idx} {{"("} {"memory"} {x:Tmemidx_(I)} {")"}} => x -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Toffset_(I : I) : expr - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{e : expr} {{"("} {"offset"} {e:Texpr_(I)} {")"}} => e -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tdata_(I : I) : (data, idctxt) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`byte*#2413` : byte*, datamode#2377 : datamode, `b*` : byte*, `name?*#679` : name?*, `name?*#680` : name?*, `name?*#681` : name?*, `name?*#682` : name?*, `name?*#683` : name?*, `name?*#684` : name?*, `name?*#685` : name?*, `char*#1429` : char*, `id?` : char?, `name?*#686` : name?*, `name?*#687` : name?*, `name?*#688` : name?*, `name?**#39` : name?**, `deftype?*#30` : deftype?*, `char*#1423` : char*} {{"("} {"data"} {?(`%`_name{`char*#1423`}(lift(id?{id <- `id?`}))):Tid?{}} {b*{b <- `b*`}:Tdatastring} {")"}} => (`DATA`_data{`byte*#2413`, datamode#2377}(b*{b <- `b*`}, `PASSIVE`_datamode), {`TYPES`{`name?*#679`} [], `TAGS`{`name?*#680`} [], `GLOBALS`{`name?*#681`} [], `MEMS`{`name?*#682`} [], `TABLES`{`name?*#683`} [], `FUNCS`{`name?*#684`} [], `DATAS`{`name?*#685`} [?(`%`_name{`char*#1429`}(lift(id?{id <- `id?`})))], `ELEMS`{`name?*#686`} [], `LOCALS`{`name?*#687`} [], `LABELS`{`name?*#688`} [], `FIELDS`{`name?**#39`} [], `TYPEDEFS`{`deftype?*#30`} []}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`byte*#2425` : byte*, datamode#2389 : datamode, `b*` : byte*, memidx#379 : memidx, expr#5291 : expr, x : idx, e : expr, `name?*#689` : name?*, `name?*#690` : name?*, `name?*#691` : name?*, `name?*#692` : name?*, `name?*#693` : name?*, `name?*#694` : name?*, `name?*#695` : name?*, `char*#1441` : char*, `id?` : char?, `name?*#696` : name?*, `name?*#697` : name?*, `name?*#698` : name?*, `name?**#40` : name?**, `deftype?*#31` : deftype?*, `char*#1435` : char*} {{"("} {"data"} {?(`%`_name{`char*#1435`}(lift(id?{id <- `id?`}))):Tid?{}} {x:Tmemuse_(I)} {e:Toffset_(I)} {b*{b <- `b*`}:Tdatastring} {")"}} => (`DATA`_data{`byte*#2425`, datamode#2389}(b*{b <- `b*`}, `ACTIVE`_datamode{memidx#379, expr#5291}(x, e)), {`TYPES`{`name?*#689`} [], `TAGS`{`name?*#690`} [], `GLOBALS`{`name?*#691`} [], `MEMS`{`name?*#692`} [], `TABLES`{`name?*#693`} [], `FUNCS`{`name?*#694`} [], `DATAS`{`name?*#695`} [?(`%`_name{`char*#1441`}(lift(id?{id <- `id?`})))], `ELEMS`{`name?*#696`} [], `LOCALS`{`name?*#697`} [], `LABELS`{`name?*#698`} [], `FIELDS`{`name?**#40`} [], `TYPEDEFS`{`deftype?*#31`} []}) + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{`b*` : byte*, `id?` : char?} {{"("} {"data"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {b*{b <- `b*`}:Tdatastring} {")"}} => (`DATA`_data(b*{b <- `b*`}, `PASSIVE`_datamode), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [?(`%`_name(lift(id?{id <- `id?`})))], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{`b*` : byte*, x : idx, e : expr, `id?` : char?} {{"("} {"data"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {x:Tmemuse_(I)} {e:Toffset_(I)} {b*{b <- `b*`}:Tdatastring} {")"}} => (`DATA`_data(b*{b <- `b*`}, `ACTIVE`_datamode(x, e)), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [?(`%`_name(lift(id?{id <- `id?`})))], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Telemlist_(I : I) : (reftype, expr*) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{rt : reftype, `e*` : expr*} {{rt:Treftype_(I)} {e*{e <- `e*`}:Tlist(syntax expr, grammar Texpr_(I))}} => (rt, e*{e <- `e*`}) -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Ttableuse_(I : I) : tableidx - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{x : idx} {{"("} {"table"} {x:Ttableidx_(I)} {")"}} => x -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Telem_(I : I) : (elem, idctxt) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{reftype#4361 : reftype, `expr*#3575` : expr*, elemmode#3575 : elemmode, rt : reftype, `e*` : expr*, `name?*#699` : name?*, `name?*#700` : name?*, `name?*#701` : name?*, `name?*#702` : name?*, `name?*#703` : name?*, `name?*#704` : name?*, `name?*#705` : name?*, `name?*#706` : name?*, `char*#1453` : char*, `id?` : char?, `name?*#707` : name?*, `name?*#708` : name?*, `name?**#41` : name?**, `deftype?*#32` : deftype?*, `char*#1447` : char*} {{"("} {"elem"} {?(`%`_name{`char*#1447`}(lift(id?{id <- `id?`}))):Tid?{}} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (`ELEM`_elem{reftype#4361, `expr*#3575`, elemmode#3575}(rt, e*{e <- `e*`}, `PASSIVE`_elemmode), {`TYPES`{`name?*#699`} [], `TAGS`{`name?*#700`} [], `GLOBALS`{`name?*#701`} [], `MEMS`{`name?*#702`} [], `TABLES`{`name?*#703`} [], `FUNCS`{`name?*#704`} [], `DATAS`{`name?*#705`} [], `ELEMS`{`name?*#706`} [?(`%`_name{`char*#1453`}(lift(id?{id <- `id?`})))], `LOCALS`{`name?*#707`} [], `LABELS`{`name?*#708`} [], `FIELDS`{`name?**#41`} [], `TYPEDEFS`{`deftype?*#32`} []}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{reftype#4373 : reftype, `expr*#3587` : expr*, elemmode#3587 : elemmode, rt : reftype, `e*` : expr*, tableidx#173 : tableidx, expr#5293 : expr, x : idx, e' : expr, `name?*#709` : name?*, `name?*#710` : name?*, `name?*#711` : name?*, `name?*#712` : name?*, `name?*#713` : name?*, `name?*#714` : name?*, `name?*#715` : name?*, `name?*#716` : name?*, `char*#1465` : char*, `id?` : char?, `name?*#717` : name?*, `name?*#718` : name?*, `name?**#42` : name?**, `deftype?*#33` : deftype?*, `char*#1459` : char*} {{"("} {"elem"} {?(`%`_name{`char*#1459`}(lift(id?{id <- `id?`}))):Tid?{}} {x:Ttableuse_(I)} {e':Toffset_(I)} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (`ELEM`_elem{reftype#4373, `expr*#3587`, elemmode#3587}(rt, e*{e <- `e*`}, `ACTIVE`_elemmode{tableidx#173, expr#5293}(x, e')), {`TYPES`{`name?*#709`} [], `TAGS`{`name?*#710`} [], `GLOBALS`{`name?*#711`} [], `MEMS`{`name?*#712`} [], `TABLES`{`name?*#713`} [], `FUNCS`{`name?*#714`} [], `DATAS`{`name?*#715`} [], `ELEMS`{`name?*#716`} [?(`%`_name{`char*#1465`}(lift(id?{id <- `id?`})))], `LOCALS`{`name?*#717`} [], `LABELS`{`name?*#718`} [], `FIELDS`{`name?**#42`} [], `TYPEDEFS`{`deftype?*#33`} []}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{reftype#4385 : reftype, `expr*#3599` : expr*, elemmode#3599 : elemmode, rt : reftype, `e*` : expr*, `name?*#719` : name?*, `name?*#720` : name?*, `name?*#721` : name?*, `name?*#722` : name?*, `name?*#723` : name?*, `name?*#724` : name?*, `name?*#725` : name?*, `name?*#726` : name?*, `char*#1477` : char*, `id?` : char?, `name?*#727` : name?*, `name?*#728` : name?*, `name?**#43` : name?**, `deftype?*#34` : deftype?*, `char*#1471` : char*} {{"("} {"elem"} {?(`%`_name{`char*#1471`}(lift(id?{id <- `id?`}))):Tid?{}} {"declare"} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (`ELEM`_elem{reftype#4385, `expr*#3599`, elemmode#3599}(rt, e*{e <- `e*`}, `DECLARE`_elemmode), {`TYPES`{`name?*#719`} [], `TAGS`{`name?*#720`} [], `GLOBALS`{`name?*#721`} [], `MEMS`{`name?*#722`} [], `TABLES`{`name?*#723`} [], `FUNCS`{`name?*#724`} [], `DATAS`{`name?*#725`} [], `ELEMS`{`name?*#726`} [?(`%`_name{`char*#1477`}(lift(id?{id <- `id?`})))], `LOCALS`{`name?*#727`} [], `LABELS`{`name?*#728`} [], `FIELDS`{`name?**#43`} [], `TYPEDEFS`{`deftype?*#34`} []}) - -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{rt : reftype, `e*` : expr*, `id?` : char?} {{"("} {"elem"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (`ELEM`_elem(rt, e*{e <- `e*`}, `PASSIVE`_elemmode), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{rt : reftype, `e*` : expr*, x : idx, e' : expr, `id?` : char?} {{"("} {"elem"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {x:Ttableuse_(I)} {e':Toffset_(I)} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (`ELEM`_elem(rt, e*{e <- `e*`}, `ACTIVE`_elemmode(x, e')), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{rt : reftype, `e*` : expr*, `id?` : char?} {{"("} {"elem"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {"declare"} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (`ELEM`_elem(rt, e*{e <- `e*`}, `DECLARE`_elemmode), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Telemexpr_(I : I) : expr - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{e : expr} {{"("} {"item"} {e:Texpr_(I)} {")"}} => e -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tstart_(I : I) : (start, idctxt) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{funcidx#3399 : funcidx, x : idx, `name?*#729` : name?*, `name?*#730` : name?*, `name?*#731` : name?*, `name?*#732` : name?*, `name?*#733` : name?*, `name?*#734` : name?*, `name?*#735` : name?*, `name?*#736` : name?*, `name?*#737` : name?*, `name?*#738` : name?*, `name?**#44` : name?**, `deftype?*#35` : deftype?*} {{"("} {"start"} {x:Tfuncidx_(I)} {")"}} => (`START`_start{funcidx#3399}(x), {`TYPES`{`name?*#729`} [], `TAGS`{`name?*#730`} [], `GLOBALS`{`name?*#731`} [], `MEMS`{`name?*#732`} [], `TABLES`{`name?*#733`} [], `FUNCS`{`name?*#734`} [], `DATAS`{`name?*#735`} [], `ELEMS`{`name?*#736`} [], `LOCALS`{`name?*#737`} [], `LABELS`{`name?*#738`} [], `FIELDS`{`name?**#44`} [], `TYPEDEFS`{`deftype?*#35`} []}) + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{x : idx} {{"("} {"start"} {x:Tfuncidx_(I)} {")"}} => (`START`_start(x), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Timport_(I : I) : (import, idctxt) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{name#6556 : name, externtype#345 : externtype, nm_1 : name, nm_2 : name, xt : externtype, I' : I} {{"("} {"import"} {nm_1:Tname} {nm_2:Tname} {(xt, I'):Texterntype_(I)} {")"}} => (`IMPORT`_import{name#6556, externtype#345}(nm_1, nm_2, xt), I') + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{nm_1 : name, nm_2 : name, xt : externtype, I' : I} {{"("} {"import"} {nm_1:Tname} {nm_2:Tname} {(xt, I'):Texterntype_(I)} {")"}} => (`IMPORT`_import(nm_1, nm_2, xt), I') -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texport_(I : I) : (export, idctxt) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{name#6569 : name, externidx#6009 : externidx, nm : name, xx : externidx, `name?*#739` : name?*, `name?*#740` : name?*, `name?*#741` : name?*, `name?*#742` : name?*, `name?*#743` : name?*, `name?*#744` : name?*, `name?*#745` : name?*, `name?*#746` : name?*, `name?*#747` : name?*, `name?*#748` : name?*, `name?**#45` : name?**, `deftype?*#36` : deftype?*} {{"("} {"export"} {nm:Tname} {xx:Texternidx_(I)} {")"}} => (`EXPORT`_export{name#6569, externidx#6009}(nm, xx), {`TYPES`{`name?*#739`} [], `TAGS`{`name?*#740`} [], `GLOBALS`{`name?*#741`} [], `MEMS`{`name?*#742`} [], `TABLES`{`name?*#743`} [], `FUNCS`{`name?*#744`} [], `DATAS`{`name?*#745`} [], `ELEMS`{`name?*#746`} [], `LOCALS`{`name?*#747`} [], `LABELS`{`name?*#748`} [], `FIELDS`{`name?**#45`} [], `TYPEDEFS`{`deftype?*#36`} []}) + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{nm : name, xx : externidx} {{"("} {"export"} {nm:Tname} {xx:Texternidx_(I)} {")"}} => (`EXPORT`_export(nm, xx), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texportdots : () - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{"("} {"export"} {Tname} {")"}} => (``, ()).1 -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Timportdots : () - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{"("} {"import"} {Tname} {Tname} {")"}} => (``, ()).1 -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $dots : () -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texporttagdots_(I : I) : () - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{Texportdots*{}} {Ttagtype_(I)}} => (``, ()).1 - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{Texportdots*{}} Timportdots {Ttagtype_(I)}} => (``, ()).1 -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texportglobaldots_(I : I) : () - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{Texportdots*{}} {Tglobaltype_(I)} {Texpr_(I)}} => (``, ()).1 - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{Texportdots*{}} Timportdots {Tglobaltype_(I)}} => (``, ()).1 -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texportmemdots_(I : I) : () - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{Texportdots*{}} {Tmemtype_(I)}} => (``, ()).1 - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{Texportdots*{}} {Taddrtype?{}} {"("} {"data"} {Tdatastring} {")"}} => (``, ()).1 - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{Texportdots*{}} Timportdots {Tmemtype_(I)}} => (``, ()).1 -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texporttabledots_(I : I) : () - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{Texportdots*{}} {Ttabletype_(I)} {Texpr_(I)?{}}} => (``, ()).1 - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{Texportdots*{}} {Taddrtype?{}} {Treftype_(I)} {"("} {"elem"} {Telemlist_(I)} {")"}} => (``, ()).1 - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{Texportdots*{}} Timportdots {Ttabletype_(I)}} => (``, ()).1 -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texportfuncdots_(I : I) : () - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{Texportdots*{}} {Ttypeuse_(I)} {Tlocal_(I)*{}} {Texpr_(I)}} => (``, ()).1 - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : ()} ``:{{Texportdots*{}} Timportdots {Ttypeuse_(I)}} => (``, ()).1 -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texporttag_(I : I) : () -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texportglobal_(I : I) : () -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texportmem_(I : I) : () -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texporttable_(I : I) : () -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texportfunc_(I : I) : () -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tdatamem_(I : I) : () -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Telemtable_(I : I) : () -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec syntax decl = - | `TYPE`{rectype : rectype}(rectype : rectype) - | `IMPORT`{name : name, externtype : externtype}(name : name, name : name, externtype : externtype) - | `TAG`{tagtype : tagtype}(tagtype : tagtype) - | `GLOBAL`{globaltype : globaltype, expr : expr}(globaltype : globaltype, expr : expr) - | `MEMORY`{memtype : memtype}(memtype : memtype) - | `TABLE`{tabletype : tabletype, expr : expr}(tabletype : tabletype, expr : expr) - | `FUNC`{typeidx : typeidx, `local*` : local*, expr : expr}(typeidx : typeidx, `local*` : local*, expr : expr) - | `DATA`{`byte*` : byte*, datamode : datamode}(`byte*` : byte*, datamode : datamode) - | `ELEM`{reftype : reftype, `expr*` : expr*, elemmode : elemmode}(reftype : reftype, `expr*` : expr*, elemmode : elemmode) - | `START`{funcidx : funcidx}(funcidx : funcidx) - | `EXPORT`{name : name, externidx : externidx}(name : name, externidx : externidx) - -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + | `TYPE`(rectype : rectype) + | `IMPORT`(name : name, name : name, externtype : externtype) + | `TAG`(tagtype : tagtype) + | `GLOBAL`(globaltype : globaltype, expr : expr) + | `MEMORY`(memtype : memtype) + | `TABLE`(tabletype : tabletype, expr : expr) + | `FUNC`(typeidx : typeidx, `local*` : local*, expr : expr) + | `DATA`(`byte*` : byte*, datamode : datamode) + | `ELEM`(reftype : reftype, `expr*` : expr*, elemmode : elemmode) + | `START`(funcidx : funcidx) + | `EXPORT`(name : name, externidx : externidx) + +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:258.1-258.76 +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:258.1-258.76 def $typesd(decl*) : type* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:270.1-270.23 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:270.1-270.23 def $typesd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:271.1-271.48 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:271.1-271.48 def $typesd{type : type, `decl'*` : decl*}([(type : type <: decl)] ++ decl'*{decl' <- `decl'*`}) = [type] ++ $typesd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:272.1-272.57 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:272.1-272.57 def $typesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $typesd(decl'*{decl' <- `decl'*`}) -- otherwise } -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:259.1-259.78 +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:259.1-259.78 def $importsd(decl*) : import* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:274.1-274.25 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:274.1-274.25 def $importsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:275.1-275.56 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:275.1-275.56 def $importsd{import : import, `decl'*` : decl*}([(import : import <: decl)] ++ decl'*{decl' <- `decl'*`}) = [import] ++ $importsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:276.1-276.61 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:276.1-276.61 def $importsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $importsd(decl'*{decl' <- `decl'*`}) -- otherwise } -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:260.1-260.75 +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:260.1-260.75 def $tagsd(decl*) : tag* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:278.1-278.22 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:278.1-278.22 def $tagsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:279.1-279.44 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:279.1-279.44 def $tagsd{tag : tag, `decl'*` : decl*}([(tag : tag <: decl)] ++ decl'*{decl' <- `decl'*`}) = [tag] ++ $tagsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:280.1-280.55 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:280.1-280.55 def $tagsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tagsd(decl'*{decl' <- `decl'*`}) -- otherwise } -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:261.1-261.78 +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:261.1-261.78 def $globalsd(decl*) : global* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:282.1-282.25 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:282.1-282.25 def $globalsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:283.1-283.56 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:283.1-283.56 def $globalsd{global : global, `decl'*` : decl*}([(global : global <: decl)] ++ decl'*{decl' <- `decl'*`}) = [global] ++ $globalsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:284.1-284.61 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:284.1-284.61 def $globalsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $globalsd(decl'*{decl' <- `decl'*`}) -- otherwise } -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:262.1-262.75 +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:262.1-262.75 def $memsd(decl*) : mem* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:286.1-286.22 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:286.1-286.22 def $memsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:287.1-287.44 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:287.1-287.44 def $memsd{mem : mem, `decl'*` : decl*}([(mem : mem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [mem] ++ $memsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:288.1-288.55 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:288.1-288.55 def $memsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $memsd(decl'*{decl' <- `decl'*`}) -- otherwise } -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:263.1-263.77 +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:263.1-263.77 def $tablesd(decl*) : table* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:290.1-290.24 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:290.1-290.24 def $tablesd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:291.1-291.52 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:291.1-291.52 def $tablesd{table : table, `decl'*` : decl*}([(table : table <: decl)] ++ decl'*{decl' <- `decl'*`}) = [table] ++ $tablesd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:292.1-292.59 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:292.1-292.59 def $tablesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tablesd(decl'*{decl' <- `decl'*`}) -- otherwise } -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:264.1-264.76 +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:264.1-264.76 def $funcsd(decl*) : func* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:294.1-294.23 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:294.1-294.23 def $funcsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:295.1-295.48 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:295.1-295.48 def $funcsd{func : func, `decl'*` : decl*}([(func : func <: decl)] ++ decl'*{decl' <- `decl'*`}) = [func] ++ $funcsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:296.1-296.57 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:296.1-296.57 def $funcsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $funcsd(decl'*{decl' <- `decl'*`}) -- otherwise } -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:265.1-265.76 +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:265.1-265.76 def $datasd(decl*) : data* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:298.1-298.23 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:298.1-298.23 def $datasd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:299.1-299.48 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:299.1-299.48 def $datasd{data : data, `decl'*` : decl*}([(data : data <: decl)] ++ decl'*{decl' <- `decl'*`}) = [data] ++ $datasd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:300.1-300.57 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:300.1-300.57 def $datasd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $datasd(decl'*{decl' <- `decl'*`}) -- otherwise } -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:266.1-266.76 +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:266.1-266.76 def $elemsd(decl*) : elem* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:302.1-302.23 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:302.1-302.23 def $elemsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:303.1-303.48 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:303.1-303.48 def $elemsd{elem : elem, `decl'*` : decl*}([(elem : elem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [elem] ++ $elemsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:304.1-304.57 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:304.1-304.57 def $elemsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $elemsd(decl'*{decl' <- `decl'*`}) -- otherwise } -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:267.1-267.77 +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:267.1-267.77 def $startsd(decl*) : start* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:306.1-306.24 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:306.1-306.24 def $startsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:307.1-307.52 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:307.1-307.52 def $startsd{start : start, `decl'*` : decl*}([(start : start <: decl)] ++ decl'*{decl' <- `decl'*`}) = [start] ++ $startsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:308.1-308.59 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:308.1-308.59 def $startsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $startsd(decl'*{decl' <- `decl'*`}) -- otherwise } -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:268.1-268.78 +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:268.1-268.78 def $exportsd(decl*) : export* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:310.1-310.25 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:310.1-310.25 def $exportsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:311.1-311.56 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:311.1-311.56 def $exportsd{export : export, `decl'*` : decl*}([(export : export <: decl)] ++ decl'*{decl' <- `decl'*`}) = [export] ++ $exportsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:312.1-312.61 + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec:312.1-312.61 def $exportsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $exportsd(decl'*{decl' <- `decl'*`}) -- otherwise } -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $ordered(decl*) : bool - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $ordered{`decl'*` : decl*}(decl'*{decl' <- `decl'*`}) = true -- if ($importsd(decl'*{decl' <- `decl'*`}) = []) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec def $ordered{`decl_1*` : decl*, import : import, `decl_2*` : decl*}(decl_1*{decl_1 <- `decl_1*`} ++ [(import : import <: decl)] ++ decl_2*{decl_2 <- `decl_2*`}) = (((((($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($memsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($tablesd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($funcsd(decl_1*{decl_1 <- `decl_1*`}) = [])) -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tdecl_(I : I) : (decl, idctxt) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : (type, idctxt)} ``:Ttype_(I) => (`` : (type, idctxt) <: (decl, idctxt)) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : (import, idctxt)} ``:Timport_(I) => (`` : (import, idctxt) <: (decl, idctxt)) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : (tag, idctxt)} ``:Ttag_(I) => (`` : (tag, idctxt) <: (decl, idctxt)) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : (global, idctxt)} ``:Tglobal_(I) => (`` : (global, idctxt) <: (decl, idctxt)) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : (mem, idctxt)} ``:Tmem_(I) => (`` : (mem, idctxt) <: (decl, idctxt)) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : (table, idctxt)} ``:Ttable_(I) => (`` : (table, idctxt) <: (decl, idctxt)) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : (func, idctxt)} ``:Tfunc_(I) => (`` : (func, idctxt) <: (decl, idctxt)) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : (data, idctxt)} ``:Tdata_(I) => (`` : (data, idctxt) <: (decl, idctxt)) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : (elem, idctxt)} ``:Telem_(I) => (`` : (elem, idctxt) <: (decl, idctxt)) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : (start, idctxt)} ``:Tstart_(I) => (`` : (start, idctxt) <: (decl, idctxt)) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : (export, idctxt)} ``:Texport_(I) => (`` : (export, idctxt) <: (decl, idctxt)) -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tmodule : module - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec - prod{`type*#155` : type*, `import*#155` : import*, `tag*#155` : tag*, `global*#179` : global*, `mem*#179` : mem*, `table*#179` : table*, `func*#155` : func*, `data*#155` : data*, `elem*#179` : elem*, `start?#155` : start?, `export*#155` : export*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `I*` : I*, `decl*` : decl*, I' : I} {{"("} {"module"} {Tid?{}} {(decl, I)*{I <- `I*`, decl <- `decl*`}:Tdecl_(I')*{}} {")"}} => `MODULE`_module{`type*#155`, `import*#155`, `tag*#155`, `global*#179`, `mem*#179`, `table*#179`, `func*#155`, `data*#155`, `elem*#179`, `start?#155`, `export*#155`}(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}) + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec + prod{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `I*` : I*, `decl*` : decl*, I' : I} {{"("} {"module"} {Tid?{}} {(decl, I)*{I <- `I*`, decl <- `decl*`}:Tdecl_(I')*{}} {")"}} => `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}) -- if (I' = $concat_idctxt(I*{I <- `I*`})) -- Idctxt_ok: `|-%:OK`(I') -- if (type*{type <- `type*`} = $typesd(decl*{decl <- `decl*`})) @@ -122725,9 +97976,9 @@ grammar Tmodule : module -- if (export*{export <- `export*`} = $exportsd(decl*{decl <- `decl*`})) -- if $ordered(decl*{decl <- `decl*`}) -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec +;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tdecldots_(I : I) : (decl, idctxt)* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec + ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec prod{`` : (decl, idctxt)} [``]:Tdecl_(I)*{} => [``] ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec @@ -122738,14 +97989,14 @@ syntax B = nat ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax sym = - | `_FIRST`{A_1 : A}(A_1 : A) + | `_FIRST`(A_1 : A) | `_DOTS` - | `_LAST`{A_n : A}(A_n : A) + | `_LAST`(A_n : A) ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax symsplit = - | `_FIRST`{A_1 : A}(A_1 : A) - | `_LAST`{A_2 : A}(A_2 : A) + | `_FIRST`(A_1 : A) + | `_LAST`(A_2 : A) ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax recorddots = () @@ -122753,9 +98004,9 @@ syntax recorddots = () ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax record = { - `FIELD_1`{A_1 : A} A, - `FIELD_2`{A_2 : A} A, - `...`{recorddots : recorddots} recorddots + `FIELD_1` A , + `FIELD_2` A , + `...` recorddots } ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec @@ -122787,45 +98038,45 @@ rec { ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec:20.1-20.83 relation NotationTypingInstrScheme: `%|-%:%`(context, instr*, instrtype) ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec:22.1-23.38 - rule i32.add{C : context, numtype#1105 : numtype, resulttype#3064 : resulttype, `localidx*#1817` : localidx*, `X*#13813` : valtype*, `X*#13862` : valtype*}: - `%|-%:%`(C, [`BINOP`_instr{numtype#1105}(`I32`_numtype, `ADD`_binop_)], `%->_%%`_instrtype{resulttype#3064, `localidx*#1817`}(`%`_resulttype{`X*#13813`}([`I32`_valtype `I32`_valtype]), [], `%`_resulttype{`X*#13862`}([`I32`_valtype]))) + rule i32.add{C : context}: + `%|-%:%`(C, [`BINOP`_instr(`I32`_numtype, `ADD`_binop_)], `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`I32`_valtype]))) ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec:25.1-27.29 - rule global.get{C : context, globalidx#35 : globalidx, x : idx, resulttype#3084 : resulttype, `localidx*#1829` : localidx*, `X*#13883` : valtype*, `X*#13932` : valtype*, t : valtype, `globaltype*#27` : globaltype*, i#131877 : nat, `mut?#1609` : mut?, valtype#1343 : valtype, mut : mut}: - `%|-%:%`(C, [`GLOBAL.GET`_instr{globalidx#35}(x)], `%->_%%`_instrtype{resulttype#3084, `localidx*#1829`}(`%`_resulttype{`X*#13883`}([]), [], `%`_resulttype{`X*#13932`}([t]))) - -- if (C.`GLOBALS`_context{`globaltype*#27`}[x!`%`_idx{i#131877}.0] = `%%`_globaltype{`mut?#1609`, valtype#1343}(?(mut), t)) + rule global.get{C : context, x : idx, t : valtype, mut : mut}: + `%|-%:%`(C, [`GLOBAL.GET`_instr(x)], `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))) + -- if (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(?(mut), t)) ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec:29.1-32.78 - rule block{C : context, blocktype#49 : blocktype, `instr*#2369` : instr*, blocktype : blocktype, `instr*` : instr*, resulttype#3104 : resulttype, `localidx*#1841` : localidx*, `X*#13943` : valtype*, `t_1*` : valtype*, `X*#13994` : valtype*, `t_2*` : valtype*, resulttype#3124 : resulttype, `localidx*#1853` : localidx*, `X*#14005` : valtype*, `X*#14056` : valtype*, `deftype*#98` : deftype*, `subtype*#25` : subtype*, `tagtype*#26` : tagtype*, `globaltype*#28` : globaltype*, `memtype*#41` : memtype*, `tabletype*#34` : tabletype*, `deftype*#99` : deftype*, `datatype*#26` : datatype*, `elemtype*#26` : elemtype*, `localtype*#29` : localtype*, `resulttype*#37` : resulttype*, `X*#14067` : valtype*, `resulttype?#34` : resulttype?, `funcidx*#63` : funcidx*, resulttype#3144 : resulttype, `localidx*#1865` : localidx*, `X*#14080` : valtype*, `X*#14131` : valtype*}: - `%|-%:%`(C, [`BLOCK`_instr{blocktype#49, `instr*#2369`}(blocktype, instr*{instr <- `instr*`})], `%->_%%`_instrtype{resulttype#3104, `localidx*#1841`}(`%`_resulttype{`X*#13943`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#13994`}(t_2*{t_2 <- `t_2*`}))) - -- Blocktype_ok: `%|-%:%`(C, blocktype, `%->_%%`_instrtype{resulttype#3124, `localidx*#1853`}(`%`_resulttype{`X*#14005`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14056`}(t_2*{t_2 <- `t_2*`}))) - -- NotationTypingInstrScheme: `%|-%:%`({`TYPES`{`deftype*#98`} [], `RECS`{`subtype*#25`} [], `TAGS`{`tagtype*#26`} [], `GLOBALS`{`globaltype*#28`} [], `MEMS`{`memtype*#41`} [], `TABLES`{`tabletype*#34`} [], `FUNCS`{`deftype*#99`} [], `DATAS`{`datatype*#26`} [], `ELEMS`{`elemtype*#26`} [], `LOCALS`{`localtype*#29`} [], `LABELS`{`resulttype*#37`} [`%`_resulttype{`X*#14067`}(t_2*{t_2 <- `t_2*`})], `RETURN`{`resulttype?#34`} ?(), `REFS`{`funcidx*#63`} []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype{resulttype#3144, `localidx*#1865`}(`%`_resulttype{`X*#14080`}(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype{`X*#14131`}(t_2*{t_2 <- `t_2*`}))) + rule block{C : context, blocktype : blocktype, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*}: + `%|-%:%`(C, [`BLOCK`_instr(blocktype, instr*{instr <- `instr*`})], `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Blocktype_ok: `%|-%:%`(C, blocktype, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- NotationTypingInstrScheme: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) } ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec relation NotationReduct: `~>%`(instr*) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec - rule 2{numtype#1107 : numtype, q_1 : num_(`F64`_numtype), numtype#1109 : numtype, q_4 : num_(`F64`_numtype), numtype#1111 : numtype, q_3 : num_(`F64`_numtype), numtype#1113 : numtype, numtype#1115 : numtype}: - `~>%`([`CONST`_instr{numtype#1107}(`F64`_numtype, q_1) `CONST`_instr{numtype#1109}(`F64`_numtype, q_4) `CONST`_instr{numtype#1111}(`F64`_numtype, q_3) `BINOP`_instr{numtype#1113}(`F64`_numtype, `ADD`_binop_) `BINOP`_instr{numtype#1115}(`F64`_numtype, `MUL`_binop_)]) + rule 2{q_1 : num_(`F64`_numtype), q_4 : num_(`F64`_numtype), q_3 : num_(`F64`_numtype)}: + `~>%`([`CONST`_instr(`F64`_numtype, q_1) `CONST`_instr(`F64`_numtype, q_4) `CONST`_instr(`F64`_numtype, q_3) `BINOP`_instr(`F64`_numtype, `ADD`_binop_) `BINOP`_instr(`F64`_numtype, `MUL`_binop_)]) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec - rule 3{numtype#1117 : numtype, q_1 : num_(`F64`_numtype), numtype#1119 : numtype, q_5 : num_(`F64`_numtype), numtype#1121 : numtype}: - `~>%`([`CONST`_instr{numtype#1117}(`F64`_numtype, q_1) `CONST`_instr{numtype#1119}(`F64`_numtype, q_5) `BINOP`_instr{numtype#1121}(`F64`_numtype, `MUL`_binop_)]) + rule 3{q_1 : num_(`F64`_numtype), q_5 : num_(`F64`_numtype)}: + `~>%`([`CONST`_instr(`F64`_numtype, q_1) `CONST`_instr(`F64`_numtype, q_5) `BINOP`_instr(`F64`_numtype, `MUL`_binop_)]) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec - rule 4{numtype#1123 : numtype, q_6 : num_(`F64`_numtype)}: - `~>%`([`CONST`_instr{numtype#1123}(`F64`_numtype, q_6)]) + rule 4{q_6 : num_(`F64`_numtype)}: + `~>%`([`CONST`_instr(`F64`_numtype, q_6)]) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec def $instrdots : instr* ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec syntax label = - | `LABEL_%{%}`{n : n, `instr*` : instr*}(n : n, `instr*` : instr*) + | `LABEL_%{%}`(n : n, `instr*` : instr*) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec syntax callframe = - | `FRAME_%{%}`{n : n, frame : frame}(n : n, frame : frame) + | `FRAME_%{%}`(n : n, frame : frame) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec def $allocX(syntax X, syntax Y, store : store, X : X, Y : Y) : (store, addr) @@ -122845,7 +98096,7 @@ def $allocXs(syntax X, syntax Y, store : store, X*, Y*) : (store, addr*) ;; ../../../../specification/wasm-3.0/X.4-notation.binary.spectec syntax symdots = - | `%`{i : nat}(i : nat) + | `%`(i : nat) -- if (i = 0) ;; ../../../../specification/wasm-3.0/X.4-notation.binary.spectec @@ -123185,40 +98436,22 @@ grammar Tabbrev : () [] typevar* typevar* [] typeuse* typeuse* [] typeuse* typeuse^n -[] nat* nat^n -[] typeidx* typeidx^n [] typeuse* typeuse^n [] typeuse* typeuse^n -[] nat* nat^n -[] typeidx* typeidx^n [] typeuse* typeuse^n [] typeuse* typeuse^n -[] nat* nat^n -[] typeidx* typeidx^n [] typeuse* typeuse^n [] typeuse* typeuse^n -[] nat* nat^n -[] typeidx* typeidx^n [] typeuse* typeuse^n [] typeuse* typeuse^n -[] nat* nat^n -[] typeidx* typeidx^n [] typeuse* typeuse^n [] typeuse* typeuse^n -[] nat* nat^n -[] typeidx* typeidx^n [] typeuse* typeuse^n [] typeuse* typeuse^n -[] nat* nat^n -[] typeidx* typeidx^n [] typeuse* typeuse^n [] typeuse* typeuse^n -[] nat* nat^n -[] typeidx* typeidx^n [] typeuse* typeuse^n [] typeuse* typeuse^n -[] nat* nat^n -[] typeidx* typeidx^n [] typeuse* typeuse^n [] typeuse* typeuse* [] deftype* deftype* @@ -123226,27 +98459,10 @@ grammar Tabbrev : () [] typeuse* typeuse* [] deftype* deftype* [] typeuse* typeuse* -[] nat** nat^n^n -[] nat** nat^n^n -[] n** n^n^n [] subtype* subtype^n -[] typeidx** typeidx^n^n -[] nat* nat^n -[] nat* nat^n -[] typeidx* typeidx^n -[] n* n^n [] subtype* subtype^n -[] n** n^n^n -[] n** n^n^n -[] rectype** rectype^n^n [] subtype* subtype^n -[] n* n^n -[] n* n^n -[] rectype* rectype^n [] subtype* subtype^n -[] subtype** subtype*^n -[] n* n^n -[] rectype* rectype^n [] subtype* subtype^n [] subtype* subtype^n [] subtype* subtype* @@ -123380,23 +98596,13 @@ grammar Tabbrev : () [] valtype* valtype* [] valtype* valtype* [] valtype* valtype* -[] typeidx* typeidx* [] idx* typeidx* [] idx* idx* [] idx* idx* -[] nat* nat* -[] nat* nat* [] idx* idx* [] comptype* comptype* -[] comptype* comptype* -[] deftype** deftype** -[] final?* final?* -[] nat* nat* -[] typeidx** typeidx** -[] typeuse** typeuse** [] idx* idx* [] idx** typeidx** -[] typeidx* typeidx* [] idx* typeidx* [] comptype* comptype* [] subtype* subtype* @@ -123409,11 +98615,8 @@ grammar Tabbrev : () [] typeuse* typeuse* [] typeuse* typeuse* [] comptype* comptype* -[] comptype* comptype* -[] final?* final?* [] typeuse* typeuse* [] typeuse** typeuse** -[] typeuse** typeuse** [] typeuse* typeuse* [] comptype* comptype* [] subtype* subtype* @@ -123452,11 +98655,8 @@ grammar Tabbrev : () [] valtype* valtype* [] valtype* valtype* [] valtype* valtype* -[] nat* nat* [] localtype* localtype* -[] localtype** localtype** [] idx* idx* -[] nat? nat? [] m? nat? [] m? nat? [] valtype* valtype* @@ -123477,13 +98677,8 @@ grammar Tabbrev : () [] idx* localidx* [] idx* localidx* [] idx* localidx* -[] nat* nat* -[] init* init* -[] localtype** localtype** -[] valtype* valtype* [] valtype* valtype* [] idx* idx* -[] nat? nat? [] m? nat? [] m? nat? [] valtype? valtype? @@ -123550,10 +98745,7 @@ grammar Tabbrev : () [] valtype* valtype* [] valtype* valtype* [] valtype* valtype* -[] valtype** valtype** -[] nat* nat* [] labelidx* labelidx* -[] resulttype** resulttype** [] valtype* valtype* [] valtype* valtype* [] valtype* valtype* @@ -123643,13 +98835,9 @@ grammar Tabbrev : () [] catch* catch* [] storagetype* storagetype* [] mut?* mut?* -[] mut?* mut?* -[] storagetype* storagetype* [] storagetype* storagetype* [] mut? mut? [] mut?* mut?* -[] mut?* mut?* -[] storagetype* storagetype* [] storagetype* storagetype* [] mut? mut? [] storagetype* storagetype* @@ -123688,9 +98876,6 @@ grammar Tabbrev : () [] mut? mut? [] laneidx* laneidx* [] laneidx* laneidx* -[] nat* nat* -[] nat* nat* -[] shape* shape* [] sx? sx? [] instr* instr* [] valtype* valtype* @@ -123700,16 +98885,10 @@ grammar Tabbrev : () [] valtype* valtype* [] idx* localidx* [] valtype* valtype* -[] nat* nat* [] init* init* -[] init* init* -[] localtype** localtype** -[] valtype* valtype* [] valtype* valtype* [] idx* idx* [] idx* localidx* -[] init* init* -[] valtype* valtype* [] valtype* valtype* [] instr* instr* [] valtype* valtype* @@ -123743,8 +98922,6 @@ grammar Tabbrev : () [] valtype* valtype* [] localtype* localtype* [] local* local* -[] init* init* -[] valtype* valtype* [] valtype* valtype* [] localtype* localtype* [] valtype* valtype* @@ -123787,20 +98964,7 @@ grammar Tabbrev : () [] externtype* externtype* [] type* type* [] deftype* deftype* -[] datatype** datatype** -[] deftype** deftype** -[] deftype** deftype** -[] elemtype** elemtype** -[] funcidx** funcidx** -[] globaltype** globaltype** [] import* import* -[] localtype** localtype** -[] memtype** memtype** -[] resulttype** resulttype** -[] resulttype?* resulttype?* -[] subtype** subtype** -[] tabletype** tabletype** -[] tagtype** tagtype** [] externtype* externtype* [] deftype* deftype* [] tagtype* tagtype* @@ -123883,303 +99047,220 @@ grammar Tabbrev : () [] iN(N)* iN(N)* [] iN(N)* iN(N)* [] iN(N)* iN(N)* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#1469, dim#1469, i#13506}((Jnn : Jnn <: lanetype), `%`_dim{i#13513}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#1443, dim#1443, i#13370}((Jnn : Jnn <: lanetype), `%`_dim{i#13377}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_((Fnn : Fnn <: lanetype))** lane_($lanetype(`%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M))))** -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lane_((Fnn : Fnn <: lanetype))* lane_($lanetype(`%X%`_shape{lanetype#1532, dim#1532, i#13693}((Fnn : Fnn <: lanetype), `%`_dim{i#13700}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_((Fnn : Fnn <: lanetype))** lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))** +[] lane_((Fnn : Fnn <: lanetype))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* [] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** [] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* [] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** [] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* -[] lane_($lanetype(`%X%`_shape{lanetype#1505, dim#1505, i#13603}((Fnn : Fnn <: lanetype), `%`_dim{i#13610}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#1619, dim#1619, i#14011}((Jnn : Jnn <: lanetype), `%`_dim{i#14018}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#1567, dim#1567, i#13774}((Jnn : Jnn <: lanetype), `%`_dim{i#13781}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#1592, dim#1592, i#13860}((Jnn : Jnn <: lanetype), `%`_dim{i#13867}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#1707, dim#1707, i#14357}((Jnn : Jnn <: lanetype), `%`_dim{i#14364}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#1655, dim#1655, i#14120}((Jnn : Jnn <: lanetype), `%`_dim{i#14127}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#1680, dim#1680, i#14206}((Jnn : Jnn <: lanetype), `%`_dim{i#14213}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_((Jnn : Jnn <: lanetype))** lane_($lanetype(`%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M))))** -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lane_((Jnn : Jnn <: lanetype))* lane_($lanetype(`%X%`_shape{lanetype#1803, dim#1803, i#14919}((Jnn : Jnn <: lanetype), `%`_dim{i#14926}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_((Jnn : Jnn <: lanetype))** lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))** +[] lane_((Jnn : Jnn <: lanetype))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* [] lane_((Jnn : Jnn <: lanetype))** lane_((Jnn : Jnn <: lanetype))** [] lane_((Jnn : Jnn <: lanetype))* lane_((Jnn : Jnn <: lanetype))* [] lane_((Jnn : Jnn <: lanetype))** lane_((Jnn : Jnn <: lanetype))** [] lane_((Jnn : Jnn <: lanetype))* lane_((Jnn : Jnn <: lanetype))* -[] lane_($lanetype(`%X%`_shape{lanetype#1743, dim#1743, i#14466}((Jnn : Jnn <: lanetype), `%`_dim{i#14473}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#1768, dim#1768, i#14552}((Jnn : Jnn <: lanetype), `%`_dim{i#14559}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_((Fnn : Fnn <: lanetype))** lane_($lanetype(`%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M))))** -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lane_((Fnn : Fnn <: lanetype))* lane_($lanetype(`%X%`_shape{lanetype#1893, dim#1893, i#15183}((Fnn : Fnn <: lanetype), `%`_dim{i#15190}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_((Fnn : Fnn <: lanetype))** lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))** +[] lane_((Fnn : Fnn <: lanetype))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* [] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** [] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* [] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** [] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* -[] lane_($lanetype(`%X%`_shape{lanetype#1839, dim#1839, i#15026}((Fnn : Fnn <: lanetype), `%`_dim{i#15033}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#1863, dim#1863, i#15084}((Fnn : Fnn <: lanetype), `%`_dim{i#15091}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] lane_((Jnn : Jnn <: lanetype))** lane_($lanetype(`%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M))))** -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lane_((Jnn : Jnn <: lanetype))* lane_($lanetype(`%X%`_shape{lanetype#2018, dim#2018, i#15890}((Jnn : Jnn <: lanetype), `%`_dim{i#15897}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))* lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] lane_((Jnn : Jnn <: lanetype))** lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))** +[] lane_((Jnn : Jnn <: lanetype))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* [] lane_((Jnn : Jnn <: lanetype))** lane_((Jnn : Jnn <: lanetype))** [] lane_((Jnn : Jnn <: lanetype))* lane_((Jnn : Jnn <: lanetype))* [] lane_((Jnn : Jnn <: lanetype))** lane_((Jnn : Jnn <: lanetype))** [] lane_((Jnn : Jnn <: lanetype))* lane_((Jnn : Jnn <: lanetype))* -[] lane_($lanetype(`%X%`_shape{lanetype#1928, dim#1928, i#15276}((Jnn : Jnn <: lanetype), `%`_dim{i#15283}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#1953, dim#1953, i#15362}((Jnn : Jnn <: lanetype), `%`_dim{i#15369}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#1978, dim#1978, i#15448}((Jnn : Jnn <: lanetype), `%`_dim{i#15455}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_((Fnn : Fnn <: lanetype))** lane_($lanetype(`%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M))))** -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lane_((Fnn : Fnn <: lanetype))* lane_($lanetype(`%X%`_shape{lanetype#2135, dim#2135, i#16233}((Fnn : Fnn <: lanetype), `%`_dim{i#16240}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_((Fnn : Fnn <: lanetype))** lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))** +[] lane_((Fnn : Fnn <: lanetype))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* [] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** [] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* [] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** [] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* -[] lane_($lanetype(`%X%`_shape{lanetype#2054, dim#2054, i#16009}((Fnn : Fnn <: lanetype), `%`_dim{i#16016}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#2078, dim#2078, i#16067}((Fnn : Fnn <: lanetype), `%`_dim{i#16074}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#2102, dim#2102, i#16125}((Fnn : Fnn <: lanetype), `%`_dim{i#16132}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#2222, dim#2222, i#16597}((Jnn : Jnn <: lanetype), `%`_dim{i#16604}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#2170, dim#2170, i#16314}((Jnn : Jnn <: lanetype), `%`_dim{i#16321}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#2195, dim#2195, i#16400}((Jnn : Jnn <: lanetype), `%`_dim{i#16407}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] nat* nat* -[] nat* nat* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#2310, dim#2310, i#16989}((Jnn : Jnn <: lanetype), `%`_dim{i#16996}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#2258, dim#2258, i#16706}((Jnn : Jnn <: lanetype), `%`_dim{i#16713}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#2283, dim#2283, i#16792}((Jnn : Jnn <: lanetype), `%`_dim{i#16799}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] nat* nat* -[] nat* nat* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* [] iN($sizenn((Fnn : Fnn <: numtype)))* iN($sizenn((Fnn : Fnn <: numtype)))* -[] nat* nat* -[] nat* nat* -[] lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* [] iN($sizenn((Fnn : Fnn <: numtype)))* iN($sizenn((Fnn : Fnn <: numtype)))* [] iN($sizenn((Fnn : Fnn <: numtype)))* iN($sizenn((Fnn : Fnn <: numtype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#2346, dim#2346, i#17098}((Fnn : Fnn <: lanetype), `%`_dim{i#17105}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#2370, dim#2370, i#17156}((Fnn : Fnn <: lanetype), `%`_dim{i#17163}(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] nat* nat* -[] nat* nat* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#2459, dim#2459, i#17593}((Jnn : Jnn <: lanetype), `%`_dim{i#17600}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#2433, dim#2433, i#17447}((Jnn : Jnn <: lanetype), `%`_dim{i#17454}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#2521, dim#2521, i#17848}((Jnn : Jnn <: lanetype), `%`_dim{i#17855}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#2495, dim#2495, i#17702}((Jnn : Jnn <: lanetype), `%`_dim{i#17709}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2557, dim#2557, i#17945}((Jnn : Jnn <: lanetype), `%`_dim{i#17952}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] nat* nat* -[] nat* nat* -[] nat* nat* -[] nat* nat^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat) -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#2648, dim#2648, i#18585}((Jnn : Jnn <: lanetype), `%`_dim{i#18592}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* [] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#2621, dim#2621, i#18421}((Jnn : Jnn <: lanetype), `%`_dim{i#18428}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#2596, dim#2596, i#18335}((Jnn : Jnn <: lanetype), `%`_dim{i#18342}(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* [] laneidx* laneidx* -[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2760, dim#2760, i#19037}((Jnn : Jnn <: lanetype), `%`_dim{i#19044}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* [] laneidx* laneidx* -[] nat* nat* -[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#2709, dim#2709, i#18805}((Jnn : Jnn <: lanetype), `%`_dim{i#18812}(M))))* lane_($lanetype(`%X%`_shape{lanetype#2684, dim#2684, i#18719}((Jnn : Jnn <: lanetype), `%`_dim{i#18726}(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* [] half? half? [] zero? zero? -[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? lane_($lanetype(`%X%`_shape{lanetype#5285, dim#5285, i#26220}((Inn_2 : Inn <: lanetype), `%`_dim{i#26227}(M_2))))? +[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? lane_($lanetype(`%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2))))? [] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? iN($lsizenn2((Inn_2 : Inn <: lanetype)))? [] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? iN($lsizenn2((Inn_2 : Inn <: lanetype)))? [] zero? zero? -[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? lane_($lanetype(`%X%`_shape{lanetype#5373, dim#5373, i#26396}((Inn_2 : Inn <: lanetype), `%`_dim{i#26403}(M_2))))? +[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? lane_($lanetype(`%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2))))? [] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? iN($lsizenn2((Inn_2 : Inn <: lanetype)))? [] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? iN($lsizenn2((Inn_2 : Inn <: lanetype)))? -[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#5461, dim#5461, i#26572}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26579}(M_2))))* +[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))))* [] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* [] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* -[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#5548, dim#5548, i#26695}((Fnn_2 : Fnn <: lanetype), `%`_dim{i#26702}(M_2))))* +[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))))* [] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* [] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))* lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))* lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))* +[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))* [] lane_(Lnn_2)** lane_(Lnn_2)** [] lane_(Lnn_2)* lane_(Lnn_2)* [] lane_(Lnn_2)** lane_(Lnn_2)** [] lane_(Lnn_2)* lane_(Lnn_2)* -[] lane_($lanetype(`%X%`_shape{lanetype#5751, dim#5751, i#26946}(Lnn_1, `%`_dim{i#26953}(M))))* lane_($lanetype(`%X%`_shape{lanetype#5867, dim#5867, i#27120}(Lnn_1, `%`_dim{i#27127}(M))))* -[] dim* dim* -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lanetype* lanetype* -[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M))))** -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M))))* -[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M))))** -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape{lanetype#5914, dim#5914, i#27181}(Lnn_2, `%`_dim{i#27188}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))* -[] lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))* +[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))* +[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M))))** +[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M))))* +[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M))))** +[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* +[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* [] lane_(Lnn_2)** lane_(Lnn_2)** [] lane_(Lnn_2)* lane_(Lnn_2)* [] lane_(Lnn_2)** lane_(Lnn_2)** [] lane_(Lnn_2)* lane_(Lnn_2)* -[] lane_($lanetype(`%X%`_shape{lanetype#6065, dim#6065, i#27388}(Lnn_1, `%`_dim{i#27395}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6181, dim#6181, i#27562}(Lnn_1, `%`_dim{i#27569}(M_1))))* -[] dim* dim* -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lanetype* lanetype* -[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2))))** -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2))))* -[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2))))** -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape{lanetype#6228, dim#6228, i#27623}(Lnn_2, `%`_dim{i#27630}(M_2))))* -[] lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))* -[] lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))* +[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* +[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))** +[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))* +[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))** +[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))* +[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* +[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* [] lane_(Lnn_2)** lane_(Lnn_2)** [] lane_(Lnn_2)* lane_(Lnn_2)* [] lane_(Lnn_2)** lane_(Lnn_2)** [] lane_(Lnn_2)* lane_(Lnn_2)* -[] lane_($lanetype(`%X%`_shape{lanetype#6339, dim#6339, i#27790}(Lnn_1, `%`_dim{i#27797}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6501, dim#6501, i#28022}(Lnn_1, `%`_dim{i#28029}(M_1))))* -[] dim* dim* -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lanetype* lanetype* -[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2))))** -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2))))* -[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2))))** -[] dim* dim* -[] nat* nat* -[] nat* nat* -[] lanetype* lanetype* -[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape{lanetype#6548, dim#6548, i#28083}(Lnn_2, `%`_dim{i#28090}(M_2))))* +[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* +[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))** +[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))* +[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))** +[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))* [] laneidx* laneidx* [] laneidx* laneidx* -[] lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))* -[] lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))* -[] lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))* -[] lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* [] iN($lsize((Jnn_2 : Jnn <: lanetype)))* iN($lsize((Jnn_2 : Jnn <: lanetype)))* [] iN($lsize((Jnn_2 : Jnn <: lanetype)))* iN($lsize((Jnn_2 : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#6595, dim#6595, i#28198}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28205}(M_1))))* iN($lsize((Jnn_1 : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* iN($lsize((Jnn_1 : Jnn <: lanetype)))* [] iN($lsize((Jnn_2 : Jnn <: lanetype)))* iN($lsize((Jnn_2 : Jnn <: lanetype)))* [] iN($lsize((Jnn_2 : Jnn <: lanetype)))* iN($lsize((Jnn_2 : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#6620, dim#6620, i#28284}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28291}(M_1))))* iN($lsize((Jnn_1 : Jnn <: lanetype)))* -[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2))))* -[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#6647, dim#6647, i#28450}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28457}(M_2))))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* iN($lsize((Jnn_1 : Jnn <: lanetype)))* +[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))))* +[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))))* [] iN(N)* iN(N)* -[] nat* nat* -[] nat* nat* [] N* nat* [] N* nat* [] N* N* @@ -124187,13 +99268,12 @@ grammar Tabbrev : () [] N* N* [] N* N* [] iN(N)* iN(N)* -[] nat* nat* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#6740, dim#6740, i#28862}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#28869}(M_2))))* -[] lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))* -[] lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* [] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* [] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#6714, dim#6714, i#28678}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#28685}(M_1))))* iN($lsizenn1((Jnn_1 : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* iN($lsizenn1((Jnn_1 : Jnn <: lanetype)))* [] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* [] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* [] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* @@ -124217,17 +99297,17 @@ grammar Tabbrev : () [] iN(N)* iN(N)* [] iN(N)* iN(N)* [] iN(N)* iN(N)* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape{lanetype#6840, dim#6840, i#29380}((Jnn_2 : Jnn <: lanetype), `%`_dim{i#29387}(M_2))))* -[] lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))* -[] lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))* -[] lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))* -[] lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))* lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))* +[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* [] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* [] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#6788, dim#6788, i#29007}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29014}(M_1))))* iN($lsizenn1((Jnn_1 : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* iN($lsizenn1((Jnn_1 : Jnn <: lanetype)))* [] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* [] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape{lanetype#6813, dim#6813, i#29113}((Jnn_1 : Jnn <: lanetype), `%`_dim{i#29120}(M_1))))* iN($lsizenn1((Jnn_1 : Jnn <: lanetype)))* +[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* iN($lsizenn1((Jnn_1 : Jnn <: lanetype)))* [] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* [] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* [] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* @@ -124274,18 +99354,13 @@ grammar Tabbrev : () [] ref* ref* [] ref* ref* [] ref* ref* -[] nat? nat? -[] nat? nat? [] u64? u64? [] u64? u64? [] byte* byte* [] u64? u64? [] byte* byte* -[] nat* nat^(n * (64 * $Ki)) [] byte* byte* [] byte* byte* -[] nat? nat? -[] nat? nat? [] u64? u64? [] deftype* deftype* [] deftype* deftype* @@ -124361,10 +99436,9 @@ grammar Tabbrev : () [] instr* instr* [] instr* instr* [] instr* instr* -[] lane_($lanetype(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))))* lane_($lanetype(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))))* lane_($lanetype(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))))* -[] lane_($lanetype(`%X%`_shape{lanetype#7537, dim#7537, i#45322}((Jnn : Jnn <: lanetype), `%`_dim{i#45329}(M))))* iN($jsizenn(Jnn))* -[] nat* nat* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* +[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($jsizenn(Jnn))* [] laneidx* laneidx* [] laneidx* laneidx* [] valtype* valtype* @@ -124391,7 +99465,6 @@ grammar Tabbrev : () [] valtype* valtype^n [] valtype* valtype^m [] valtype* valtype* -[] valtype* valtype* [] instr* instr* [] val* val^n [] valtype* valtype* @@ -124438,18 +99511,10 @@ grammar Tabbrev : () [] instr* instr* [] valtype* valtype^m [] valtype* valtype^n -[] byte** byte*^K -[] nat* nat^K -[] nat* nat^K [] iN(M)* iN(M)^K -[] u64* u64^K [] iN(M)* iN(M)^K -[] nat* nat^M -[] nat* nat^M [] val* val* [] mut?* mut?* -[] mut?* mut?* -[] storagetype* storagetype* [] storagetype* storagetype* [] mut? mut? [] val* val* @@ -124460,8 +99525,6 @@ grammar Tabbrev : () [] storagetype* storagetype* [] sx? sx? [] mut?* mut?* -[] mut?* mut?* -[] storagetype* storagetype* [] storagetype* storagetype* [] mut? mut? [] mut? mut? @@ -124535,8 +99598,6 @@ grammar Tabbrev : () [] byte* byte* [] val* val^n [] mut?* mut?^n -[] mut?* mut?^n -[] storagetype* storagetype^n [] storagetype* storagetype^n [] mut? mut? [] val* val^n @@ -124544,8 +99605,6 @@ grammar Tabbrev : () [] storagetype* storagetype* [] storagetype* storagetype* [] mut?* mut?* -[] mut?* mut?* -[] storagetype* storagetype* [] storagetype* storagetype* [] mut? mut? [] val* val^n @@ -124589,7 +99648,6 @@ grammar Tabbrev : () [] val* val* [] u64? u64? [] u64? u64? -[] nat* nat^(i!`%`_u64{i#46867}.0 * (64 * $Ki)) [] memtype* memtype* [] memaddr* memaddr* [] memaddr* memaddr* @@ -124660,47 +99718,33 @@ grammar Tabbrev : () [] tag* tag* [] tag* tag* [] tagtype* tagtype* -[] tagtype* tagtype* [] global* global* [] global* global* [] expr* expr* -[] expr* expr* -[] globaltype* globaltype* [] globaltype* globaltype* [] mem* mem* [] mem* mem* [] memtype* memtype* -[] memtype* memtype* [] table* table* [] table* table* [] expr* expr* -[] expr* expr* -[] tabletype* tabletype* [] tabletype* tabletype* [] func* func* [] func* func* [] expr* expr* -[] expr* expr* [] local** local** -[] local** local** -[] typeidx* typeidx* [] idx* typeidx* [] local* local* [] data* data* [] data* data* [] byte** byte** -[] byte** byte** -[] datamode* datamode* [] datamode* datamode* [] byte* byte* [] elem* elem* [] elem* elem* [] elemmode* elemmode* -[] elemmode* elemmode* [] elemtype* reftype* [] expr** expr** -[] expr** expr** -[] reftype* reftype* [] expr* expr* [] tagaddr* tagaddr* [] tagaddr* tagaddr* @@ -124724,7 +99768,6 @@ grammar Tabbrev : () [] nat* nat* [] func* func* [] func* func* -[] funcinst** funcinst*^|func*{}| [] tagaddr* tagaddr* [] tagaddr* tagaddr* [] tagtype* tagtype* @@ -124757,15 +99800,11 @@ grammar Tabbrev : () [] ref* ref* [] nat* funcaddr* [] nat* funcaddr* -[] nat* nat* [] idx* idx* [] deftype* deftype* [] deftype* deftype* [] expr* expr* -[] expr* expr* -[] local** local** [] local** local** -[] typeidx* typeidx* [] idx* typeidx* [] local* local* [] func* func* @@ -124835,41 +99874,30 @@ grammar Tabbrev : () [] global* global* [] global* global* [] expr* expr* -[] expr* expr* -[] globaltype* globaltype* [] globaltype* globaltype* [] table* table* [] table* table* [] expr* expr* -[] expr* expr* -[] tabletype* tabletype* [] tabletype* tabletype* [] data* data* [] data* data* [] byte** byte** -[] byte** byte** -[] datamode* datamode* [] datamode* datamode* [] byte* byte* [] elem* elem* [] elem* elem* [] elemmode* elemmode* -[] elemmode* elemmode* [] expr** expr** -[] expr** expr** -[] reftype* reftype* [] reftype* reftype* [] expr* expr* [] start? start? [] start? start? -[] funcidx? funcidx? [] idx? funcidx? [] type* type* [] externaddr* externaddr* [] externaddr* externaddr* [] func* func* [] func* func* -[] funcinst** funcinst*^|func*{}| [] val* val* [] val* val* [] globaltype* globaltype* @@ -124889,19 +99917,16 @@ grammar Tabbrev : () [] instr* instr* [] data* data* [] data* data* -[] nat* nat^|data*{}| [] data* data* [] data* data* [] instr* instr* [] instr* instr* [] elem* elem* [] elem* elem* -[] nat* nat^|elem*{}| [] elem* elem* [] elem* elem* [] instr? instr? [] instr? instr? -[] funcidx? funcidx? [] idx? funcidx? [] val* val* [] val* val* @@ -124926,10 +99951,8 @@ grammar Tabbrev : () [] valtype* valtype* [] valtype* valtype* [] idx* typeidx* -[] typeidx* typeidx* [] idx* typeidx* [] idx* typeidx* -[] typeidx* typeidx* [] idx* typeidx* [] subtype* subtype* [] subtype* subtype* @@ -124963,11 +99986,7 @@ grammar Tabbrev : () [] null? null? [] byte* byte^16 [] byte* byte^16 -[] nat* nat^16 -[] nat* nat^16 [] labelidx* labelidx^16 -[] nat* nat^16 -[] nat* nat^16 [] labelidx* labelidx^16 [] instr* instr* [] instr* instr* @@ -124988,16 +100007,12 @@ grammar Tabbrev : () [] export* export* [] export* export* [] idx* funcidx* -[] funcidx* funcidx* [] idx* funcidx* [] idx* funcidx* -[] funcidx* funcidx* [] idx* funcidx* [] idx* funcidx* -[] funcidx* funcidx* [] idx* funcidx* [] idx* funcidx* -[] funcidx* funcidx* [] idx* funcidx* [] expr* expr* [] expr* expr* @@ -125009,7 +100024,6 @@ grammar Tabbrev : () [] expr* expr* [] elem* elem* [] elem* elem* -[] valtype* valtype^n [] local** local** [] local* local* [] local** local** @@ -125040,7 +100054,6 @@ grammar Tabbrev : () [] export* export* [] start? start? [] elem* elem* -[] nat? nat? [] n? nat? [] expr* expr* [] local** local** @@ -125065,11 +100078,8 @@ grammar Tabbrev : () [] func* func* [] func* func* [] expr* expr* -[] expr* expr* [] func* func* [] local** local** -[] local** local** -[] typeidx* typeidx* [] typeidx* typeidx* [] local* local* [] byte** byte** @@ -125098,12 +100108,9 @@ grammar Tabbrev : () [] I* idctxt* [] I* idctxt* [] char** char** -[] char** char** [] char* char* [] char** char** [] char** char** -[] char** char** -[] char** char** [] char* char* [] null? null? [] null? null? @@ -125111,15 +100118,12 @@ grammar Tabbrev : () [] char? char? [] char? char? [] char? char? -[] char** char** [] fieldtype* fieldtype* [] char?* char?* [] char? char? [] fieldtype* fieldtype* -[] char** char** [] char?* char?* [] char? char? -[] char** char** [] char?* char?* [] valtype* valtype* [] char? char? @@ -125129,7 +100133,6 @@ grammar Tabbrev : () [] final? final? [] idx* typeidx* [] final? final? -[] typeidx* typeidx* [] idx* typeidx* [] char? char? [] char? char? @@ -125145,8 +100148,6 @@ grammar Tabbrev : () [] valtype* valtype* [] valtype* valtype* [] valtype* valtype* -[] char** char*^|t_1*{}| -[] char** char** [] char?* char?* [] valtype* valtype* [] char? char? @@ -125157,7 +100158,6 @@ grammar Tabbrev : () [] subtype* subtype* [] valtype* valtype* [] valtype* valtype* -[] char** char** [] char?* char?* [] char? char? [] char? char? @@ -125172,15 +100172,12 @@ grammar Tabbrev : () [] char? char? [] valtype? valtype? [] valtype? valtype? -[] char** char** [] valtype*? valtype*? [] valtype* valtype* [] valtype*? valtype*? [] valtype* valtype* [] labelidx* labelidx* [] labelidx* labelidx* -[] char** char** -[] char** char** [] u8* u8* [] u8* iN(8)* [] u16* u16* @@ -125250,8 +100247,6 @@ grammar Tabbrev : () [] instr* instr* [] instr* instr* [] subtype* subtype^n -[] n* n^n -[] rectype* rectype^n [] char? char? [] char? char? [] char? char? From 4de78cb5d2aec45a5414cc84f1fb595c2fd91b28 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Tue, 20 Jan 2026 14:04:44 +0100 Subject: [PATCH 17/23] Cleanup --- spectec/src/frontend/det.ml | 6 +- spectec/src/frontend/dim.ml | 12 +- spectec/src/frontend/elab.ml | 585 +- spectec/src/frontend/eval.ml | 5 - spectec/src/il/debug.ml | 1 + spectec/src/il/free.mli | 1 + spectec/src/il/print.ml | 28 +- spectec/src/il/print.mli | 1 + spectec/src/il/subst.ml | 10 +- spectec/src/il/valid.ml | 21 +- spectec/test-frontend/TEST.md | 94919 +------------------------------- 11 files changed, 2985 insertions(+), 92604 deletions(-) diff --git a/spectec/src/frontend/det.ml b/spectec/src/frontend/det.ml index 509cee111e..c48903e05e 100644 --- a/spectec/src/frontend/det.ml +++ b/spectec/src/frontend/det.ml @@ -13,7 +13,7 @@ let det_list_dep = free_list_dep let rec det_iter iter = match iter with | Opt | List | List1 -> empty - | ListN (e, x_opt) -> det_exp e ++ free_opt bound_varid x_opt + | ListN (e, _xo) -> det_exp e (* Types *) @@ -64,7 +64,7 @@ and det_exp e = and det_expfield (_, e) = det_exp e and det_iterexp s1 (it, xes) = - s1 -- free_list bound_varid (List.map fst xes) ++ + s1 -- bound_iter it -- free_list bound_varid (List.map fst xes) ++ det_iter it ++ det_list det_exp (List.filter_map (fun (x, e) -> if Set.mem x.it s1.varid then Some e else None) xes) @@ -143,7 +143,7 @@ and det_quant_expfield (_, e) = det_quant_exp e and det_quant_iterexp s1 (it, xes) = - s1 -- free_list bound_varid (List.map fst xes) ++ + s1 -- bound_iter it -- free_list bound_varid (List.map fst xes) ++ det_quant_iter it ++ det_list det_exp (List.filter_map (fun (x, e) -> if Set.mem x.it s1.varid then Some e else None) xes) diff --git a/spectec/src/frontend/dim.ml b/spectec/src/frontend/dim.ml index ff031e534a..039eb0941b 100644 --- a/spectec/src/frontend/dim.ml +++ b/spectec/src/frontend/dim.ml @@ -79,7 +79,6 @@ let check_ctxs id ctxs : region * ctx = at, ctx let check_dims (dims : rdims ref) : dims = -Printf.printf "[check_dims] %s\n%!" (Debug.domain !dims); Map.mapi check_ctxs !dims @@ -96,12 +95,7 @@ let check_varid dims ctx mode id = dims := Map.add_to_list id.it (id.at, ctx, mode) !dims let uncheck_varid dims id = - let ctxs' = List.tl (Map.find id.it !dims) in - dims := - if ctxs' = [] then - Map.remove id.it !dims - else - Map.add id.it ctxs' !dims + dims := Map.remove id.it !dims let rec check_iter dims ctx it = match it with @@ -112,6 +106,10 @@ let rec check_iter dims ctx it = and check_iterexp : 'a. _ -> _ -> (_ -> _ -> 'a -> unit) -> 'a -> _ -> unit = fun dims ctx f body (it, xes) -> + Debug.(log "il.check_iterexp" + (fun _ -> fmt "%s |- %s" (domain !dims) (il_iterexp (it, xes))) + (fun _ -> domain !dims) + ) @@ fun _ -> check_iter dims ctx it; List.iter (fun (x, e) -> check_varid dims [] `Expl x; check_exp dims ctx e) xes; (* Only check body if iteration isn't annotated already. diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index dea6feaaf9..eeba3f4362 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -59,132 +59,6 @@ let tup_typ' ts' at = | [t'] -> t' | _ -> Il.TupT (List.map (fun t' -> "_" $ t'.at, t') ts') $ at -(* -let tup_typ_bind' xts' at = -(* - in - let expify' t = function - | Some e -> e - | None -> Il.VarE ("_" $ t.at) $$ t.at % t - in - let rec pat'_of_typ' s t : Il.exp option = - let (let* ) = Option.bind in - let module Il = Il.Ast in - match t.it with - | Il.VarT (id, _args) -> - if Set.mem id.it !s then None else - ( - (* Suppress duplicates. *) - s := Set.add id.it !s; - Some (Il.VarE id $$ t.at % t) - ) - | Il.BoolT | Il.NumT _ | Il.TextT -> - let id = varid_of_typ' t in - if Set.mem id.it !s then None else - ( - (* Suppress duplicates. *) - s := Set.add id.it !s; - Some (Il.VarE id $$ t.at % t) - ) - | Il.TupT xts -> - let* es = pats'_of_typs' s (List.map snd xts) in - Some (Il.TupE es $$ t.at % t) - | Il.IterT (t1, iter) -> - let* e1 = pat'_of_typ' s t1 in - Some (Il.IterE (e1, (iter, [])) $$ t.at % t) - - and pats'_of_typs' s ts : Il.exp list option = - let eos = List.map (pat'_of_typ' s) ts in - if List.for_all ((=) None) eos then None else - Some (List.map2 expify' ts eos) - - and pats'_of_typs ts = - List.map2 expify' ts (List.map (pat'_of_typ' (ref Set.empty)) ts) - in - (* Translate a pattern into suitable path expressions on a variable *) - let rec decompose e' p' s = - match e'.it with - | Il.VarE x -> Il.Subst.add_varid s x p' - | Il.TupE es' -> - List.fold_left (fun (s', i) eI' -> - decompose eI' (Il.ProjE (p', i) $$ eI'.at % eI'.note) s', i + 1 - ) (s, 0) es' |> fst - | Il.IterE _ -> - (match decompose_iter e' with - | Some (x, ctx) -> - | None -> s - ) - | _ -> assert false - and decompose_iter e' ctx = - match e'.it with - | Il.VarE x -> Some (x, ctx) - | Il.IterE (e1', Il.(Opt | List) as iter) -> decompose_iter e1' (iter::ctx) - | _ -> None - and combine es' ts' s = - match es', ts' with - | [], [] -> [] - | e'::es', t'::ts' -> - let x', s' = - match e'.it with - | Il.VarE x -> x, s - | _ -> - let x' = Il.Fresh.fresh_varid "pat" $ e'.at in - let s' = decompose e' (Il.VarE x' $$ e'.at % e'.note) Il.Subst.empty in - if s' = Il.Subst.empty then - "_" $ e'.at, s - else - x', Il.Subst.union s s' - in - let xts'' = combine es' ts' s' in - (x', Il.Subst.subst_typ s t')::xts'' - | _, _ -> assert false -*) - let rec decompose t' p' s = - match t'.it with - | Il.VarT (x, []) -> Il.Subst.add_varid s x p' - | Il.TupT xts' -> - List.fold_left (fun (s', i) (_xI', tI') -> - decompose tI' (Il.ProjE (p', i) $$ tI'.at % Il.Subst.subst_typ s' tI') s', i + 1 - ) (s, 0) xts' |> fst - | Il.IterT _ -> - (match decompose_iter t' [] with - | None -> s - | Some x -> Il.Subst.add_varid s x p' - ) - | _ -> s - and decompose_iter t' ctx = - match t'.it with - | Il.VarT (x, []) -> Some (Dim.annot_varid x ctx) - | Il.IterT (t1', iter) -> decompose_iter t1' (iter::ctx) - | _ -> None - and bind_var s x t' = - (* Suppress duplicates to handle non-linear patterns *) - if Il.Subst.mem_varid s x then s else - Il.Subst.add_varid s x (Il.VarE x $$ x.at % t') - and to_bind s = function - | [] -> [] - | t'::ts' -> - let t' = Il.Subst.subst_typ s t' in - let x', s' = - match t'.it with - | Il.VarT (_, []) | Il.BoolT | Il.NumT _ | Il.TextT -> - let x = varid_of_typ' t' in - x, bind_var s x t' - | Il.IterT _ -> - (match decompose_iter t' [] with - | None -> "_" $ t'.at, s - | Some x -> x, bind_var s x t' - ) - | _ -> - let x' = Il.Fresh.fresh_varid "pat" $ t'.at in - let s' = decompose t' (Il.VarE x' $$ t'.at % t') Il.Subst.empty in - (if s' = Il.Subst.empty then "_" $ t'.at else x'), Il.Subst.union s s' - in - (x', t') :: to_bind s' ts' - in - Il.TupT (to_bind Il.Subst.empty ts') $ at -*) - let tup_exp' es' at = Il.TupE es' $$ (at, tup_typ' (List.map note es') at) @@ -319,12 +193,6 @@ let bound_env env = } -(* -let vars env outer_dims = - Map.union (fun _ _ y -> Some y) - (Map.map (fun (at, _) -> (at, [])) env.vars) outer_dims -*) - let il_arg_of_param p = (match p.it with | Il.ExpP (id, t) -> Il.ExpA (Il.VarE id $$ id.at % t) @@ -392,13 +260,11 @@ let make_quants_iter_arg env (free : Il.Free.sets) dims : Il.quant list ref * (m let acc = ref [] (* quantifiers introduced so far *) let scope_enter x t = -Printf.printf "[scope_enter %s]\n%!" x.it; let varenv = env.vars in if x.it <> "_" then env.vars <- Map.add x.it (x.at, t) env.vars; varenv - let scope_exit x varenv = -Printf.printf "[scope_exit %s]\n%!" x.it; + let scope_exit _x varenv = env.vars <- varenv let visit_typid id = @@ -407,28 +273,12 @@ Printf.printf "[scope_exit %s]\n%!" x.it; left := Il.Free.{!left with typid = Set.remove id.it !left.typid}; ) -let visit_exp e = -Printf.printf "[visit_exp %s]\n%!" (Il.Debug.il_exp e) - let visit_varid id = -if not Il.Free.(Set.mem id.it !left.varid) then Printf.printf "[visit_id %s] not free\n%!" id.it; -if not (Map.mem id.it dims) then Printf.printf "[visit_id %s] no dims\n%!" id.it; if Il.Free.(Set.mem id.it !left.varid) then ( -Printf.printf "[visit_id %s]\n%!" id.it; let t = try find "variable" env.vars id with Error _ -> find "variable" env.gvars (strip_var_suffix id) in -(* - (* Check that quantifier will not depend on later ones *) - let fwd = Il.Free.(inter (free_typ t) !left) in - if fwd <> Il.Free.empty then - error id.at ("the type of `" ^ id.it ^ "` depends on " ^ - ( Il.Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> - List.map (fun id -> "`" ^ id ^ "`") |> - String.concat ", " ) ^ - ", which only occur(s) to its right; try to reorder parameters or premises"); -*) (* Raise variable type to its inferred dimension *) let ctx' = match Map.find_opt id.it dims with @@ -444,17 +294,6 @@ Printf.printf "[visit_id %s]\n%!" id.it; let visit_gramid id = if Il.Free.(Set.mem id.it !left.gramid) then ( let ps, t, _gram, _prods' = find "grammar" env.grams id in -(* - (* Check that quantifier will not depend on later ones *) - let free' = Il.Free.(free_params ps ++ (free_typ t -- bound_params ps)) in - let fwd = Il.Free.(inter free' !left) in - if fwd <> Il.Free.empty then - error id.at ("the type of `" ^ id.it ^ "` depends on " ^ - ( Il.Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> - List.map (fun id -> "`" ^ id ^ "`") |> - String.concat ", " ) ^ - ", which only occur(s) to its right; try to reorder parameters or premises"); -*) acc := !acc @ [Il.GramP (id, ps, t) $ id.at]; left := Free.{!left with varid = Set.remove id.it !left.gramid}; ) @@ -462,17 +301,6 @@ Printf.printf "[visit_id %s]\n%!" id.it; let visit_defid id = if Il.Free.Set.mem id.it !left.defid then ( let ps, t, _ = find "definition" env.defs id in -(* - (* Check that quantifier will not depend on later ones *) - let free' = Il.Free.(free_params ps ++ (free_typ t -- bound_params ps)) in - let fwd = Il.Free.(inter free' !left) in - if fwd <> Il.Free.empty then - error id.at ("the type of `" ^ (spaceid "definition" id).it ^ "` depends on " ^ - ( Il.Free.Set.(elements fwd.typid @ elements fwd.gramid @ elements fwd.varid @ elements fwd.defid) |> - List.map (fun id -> "`" ^ id ^ "`") |> - String.concat ", " ) ^ - ", which only occur(s) to its right; try to reorder parameters or premises"); -*) acc := !acc @ [Il.DefP (id, ps, t) $ id.at]; left := Il.Free.{!left with defid = Set.remove id.it !left.defid}; ) @@ -483,12 +311,12 @@ let infer_quants env env' dims det ps' as' ts' es' gs' prs' at : Il.quant list = let env' = annot_env env' dims in Debug.(log_at "il.infer_quants" at (fun _ -> -Printf.sprintf "\n ps'=[%s]" Il.Debug.(list il_param ps') ^ -Printf.sprintf "\n as'=[%s]" Il.Debug.(list il_arg as') ^ -Printf.sprintf "\n ts'=[%s]" Il.Debug.(list il_typ ts') ^ -Printf.sprintf "\n es'=[%s]" Il.Debug.(list il_exp es') ^ -Printf.sprintf "\n gs'=[%s]" Il.Debug.(list il_sym gs') ^ -Printf.sprintf "\n prs'=[%s]" Il.Debug.(list il_prem prs') ^ + "\n ps'=[" ^ list il_param ps' ^ "]" ^ + "\n as'=[" ^ list il_arg as' ^ "]" ^ + "\n ts'=[" ^ list il_typ ts' ^ "]" ^ + "\n es'=[" ^ list il_exp es' ^ "]" ^ + "\n gs'=[" ^ list il_sym gs' ^ "]" ^ + "\n prs'=[" ^ list il_prem prs' ^ "]" ^ "\n locals=" ^ (Map.fold (fun id _ ids -> if Map.mem id env.vars then ids else id::ids @@ -684,60 +512,6 @@ let fail_dir_typ env at phrase dir t expected = (* Type Accessors *) -(* -let rec arg_subst s ps args = - match ps, args with - | [], [] -> s - | p::ps', a::as' -> - let s' = - match p.it, !((Subst.subst_arg s a).it) with - | ExpP (id, _), ExpA e -> Subst.add_varid s id e - | TypP id, TypA t -> Subst.add_typid s id t - | GramP (id, _, _), GramA g -> Subst.add_gramid s id g - | DefP (id, _, _), DefA id' -> Subst.add_defid s id id' - | _, _ -> assert false - in arg_subst s' ps' as' - | _, _ -> assert false - -(* TODO(4, rossberg): eliminate, replace expansion with reduction *) -let aliased dt' = - match dt'.it with - | Il.AliasT _ -> `Alias - | _ -> `NoAlias -let aliased_inst inst' = - let Il.InstD (_, _, dt') = inst'.it in - aliased dt' - -(* TODO(4, rossberg): replace with reduce_typ *) -let as_defined_typid' env x as' at : Il.deftyp' = - match find "syntax type" env.typs (strip_var_suffix id) with - | ps, Defined (t, _ids, dt') -> - let t' = if ps = [] then t else (* optimization *) - Subst.subst_typ (arg_subst Subst.empty ps args) t in - t'.it, aliased dt' - | _ps, Opaque -> VarT (id, args), `NoAlias - | _ps, Transp -> - error_id (id.it $ at) "invalid forward use of syntax type" - | _ps, Family insts -> - let env' = to_eval_env env in - let args = List.map (Eval.reduce_arg env') args in - let rec lookup = function - | [] -> error_id (id.it $ at) "undefined or undetermined case of syntax type family" - | (args', t, inst')::insts' -> - Debug.(log "el.lookup" - (fun _ -> fmt "%s(%s) =: %s(%s)" id.it (el_args args) id.it (el_args args')) - (fun (r, _) -> fmt "%s" (el_typ (r $ no_region ))) - ) @@ fun _ -> - if args' = [] && args = [] then t.it, aliased_inst inst' else (* optimisation *) - match Eval.(match_list match_arg env' Subst.empty args args') with - | None -> lookup insts' - | Some s -> (Subst.subst_typ s t).it, aliased_inst inst' - | exception _ -> lookup insts' (* assume coherent matches *) - (* error at "cannot reduce type family application" *) - in lookup insts -*) - - (* TODO(2, rossberg): avoid repeated env conversion *) let reduce env t : Il.typ = Il.Eval.reduce_typ (to_il_env env) t let expand env t : Il.typ' = (reduce env t).it @@ -773,58 +547,6 @@ let expand_id env t = | _ -> "" $ no_region -(* -(* Expand all but the last alias. TODO(4, rossberg): remove *) -exception Last -let rec expand_nondef' env t = - match t.it with - | VarT (id, args) -> - (match as_defined_typid' env id args id.at with - | t1', `Alias -> (try expand_nondef' env (t1' $ t.at) with Last -> t) - | _, `NoAlias -> t - | exception Error _ -> t - ) - | ParenT t1 -> expand_nondef' env t1 - | _ -> raise Last - -let expand_nondef env t = try expand_nondef' env t with Last -> t - -(* Expand definitions *) -let expand_def env t = - match (Il.reduce_typ (to_il_env env) t).it with - | Il.VarT (x, as_) as t' -> - (match as_defined_typid' env id args id.at with - | t1', _ -> t1' - | exception Error _ -> t' - ) - | t' -> t' - -let rec expand_notation env t = - match expand env t with - | Il.VarT (x, as') as t' -> - (match as_defined_typid' env id args t.at with - | ConT ((t1, _), _), _ -> expand_notation env t1 - | RangeT _ as t', _ -> t' - | _ -> t' - | exception Error _ -> t' - ) - | ConT ((t1, _), _) -> expand_notation env t1 - | t' -> t' - -let rec expand_iter_notation env t = - match expand env t with - | VarT (id, args) as t' -> - (match as_defined_typid' env id args t.at with - | IterT _ as t'', _ -> t'' - | ConT ((t1, _), _), _ -> expand_iter_notation env t1 - | _ -> t' - | exception Error _ -> t' - ) - | ConT ((t1, _), _) -> expand_iter_notation env t1 - | t' -> t' -*) - - let as_nat_typ_opt env t : unit option = match expand env t with | Il.NumT `NatT -> Some () @@ -850,12 +572,6 @@ let as_tup_typ_opt env t : (Il.id * Il.typ) list option = | Il.TupT xts -> Some xts | _ -> None -(* -let as_iter_notation_typ_opt env t : (typ * iter) option = - match expand_iter_notation env t with - | Il.IterT (t1, iter) -> Some (t1, iter) | _ -> None -*) - let as_empty_notation_typ_opt env t : unit option = match expand_notation env t with | Some (_, _, Seq []) -> Some () @@ -877,10 +593,6 @@ let as_list_typ phrase env dir t at = as_x_typ as_list_typ_opt phrase env dir t at "(_)*" let as_tup_typ phrase env dir t at = as_x_typ as_tup_typ_opt phrase env dir t at "(_,...,_)" -(* -let as_iter_notation_typ phrase env dir t at = - as_x_typ as_iter_notation_typ_opt phrase env dir t at "(_)*" -*) let as_empty_notation_typ phrase env dir t at = as_x_typ as_empty_notation_typ_opt phrase env dir t at "()" @@ -917,9 +629,6 @@ let is_x_typ as_x_typ env t = let is_nat_typ = is_x_typ as_nat_typ let is_iter_typ = is_x_typ as_iter_typ -(* -let is_iter_notation_typ = is_x_typ as_iter_notation_typ -*) let is_variant_typ = is_x_typ as_variant_typ let is_notation_typ = is_x_typ as_notation_typ let is_empty_notation_typ = is_x_typ as_empty_notation_typ @@ -973,12 +682,6 @@ let new_typcase (mixop, t_prs, hints) = (new_mixop mixop, t_prs, hints) let elab_atom atom tid = assert (valid_tid tid); -(* -if atom.note.Atom.def <> "" && atom.note.Atom.def <> tid.it then -Printf.eprintf "[elab_atom %s @ %s] def=%s/%s\n%!" -(Atom.string_of_atom atom) (Source.string_of_region atom.at) tid.it atom.note.Atom.def; - assert (atom.note.Atom.def = "" || atom.note.Atom.def = tid.it); -*) atom.note.Atom.def <- tid.it; atom @@ -1296,62 +999,11 @@ and elab_typ_notation env outer_dims tid at (t : typ) (prems : prem nl_list) : let env2 = local_env env1 in let prems' = List.concat (map_filter_nl_list (elab_prem env2) prems) in -Printf.printf "--- 1 ---\n%!"; let dims2 = Dim.check (Dim.union outer_dims dims1) [] [] [] [] [] prems' in -Printf.printf "--- 2 ---\n%!"; let prems' = List.map (Dim.annot_prem dims2) prems' in -Printf.printf "--- 3 ---\n%!"; let det2 = Det.(det_list det_prem prems') in -Printf.printf "--- 4 ---\n%!"; let qs = infer_quants env1 env2 dims2 det2 [] [] [] [] [] prems' at in mixop, t', qs, prems' -(* - Debug.(log_in_at "il.infer_quants" at - (fun _ -> - "local: " ^ - (Map.fold (fun id _ ids -> - if Map.mem id env.vars then ids else id::ids - ) env'.vars [] |> List.rev |> String.concat " ") ^ - " dims: " ^ - (Map.fold (fun id (_, ctx) ids -> - (id ^ ":" ^ String.concat "" (List.map Il.Print.string_of_iter ctx)) :: ids - ) dims [] |> List.rev |> String.concat " ") ^ - " det: " ^ - (Set.elements det.Det.varid |> String.concat " ") - ) - ); - let env' = annot_env env' dims in - let acc_qs, (module Arg : Il.Iter.Arg) = make_quants_iter_arg env' det dims in -Printf.printf "--- 5 ---\n%!"; - let module Acc = Il.Iter.Make(Arg) in - Acc.typ t'; - Acc.prems prems'; -Printf.printf "--- 6 ---\n%!"; - let free = - Il.Free.( - free_prems prems' - -- bound_env env -- bound_params (!acc_qs @ List.concat qss) -- det - ) - in - if free <> Free.empty then -(Printf.printf "[notation] t = %s\n%!" (Debug.el_typ t); -List.iteri (fun i t -> Printf.printf "[notation] t%d' = %s\n%!" (i+1) (Il.Print.string_of_typ t)) ts'; -List.iteri (fun i pr -> Printf.printf "[notation] pr%d' = %s\n%!" (i+1) (Il.Print.string_of_prem pr)) prems'; -Printf.printf "X in env = %b\n%!" (Map.mem "X" env.vars); -Printf.printf "X* in env = %b\n%!" (Map.mem "X*" env.vars); -let frt = Il.Free.free_typ t' in -let frp = Il.Free.free_prems prems' in -let detp = Det.(det_list det_prem prems') in -let bp = Il.Free.bound_params (!acc_qs @ List.concat qss) in -Printf.printf "free(t') = %s\n%!" (String.concat ", " (List.map quote (Free.Set.elements frt.varid))); -Printf.printf "free(prs') = %s\n%!" (String.concat ", " (List.map quote (Free.Set.elements frp.varid))); -Printf.printf "det(prs') = %s\n%!" (String.concat ", " (List.map quote (Free.Set.elements detp.varid))); -Printf.printf "bound(qs') = %s\n%!" (String.concat ", " (List.map quote (Free.Set.elements bp.varid))); - error at ("premise contains indeterminate variable(s) " ^ - String.concat ", " (List.map quote (Free.Set.elements free.varid))); -); - mixop, !acc_qs @ List.concat qss, t', prems' -*) and elab_typ_notation' env tid (t : typ) : Il.mixop * (Il.id * Il.typ) list = Debug.(log_at "el.elab_typ_notation" t.at @@ -1865,10 +1517,12 @@ and elab_exp_notation' env tid (e : exp) not : (Il.exp list * Il.Subst.t) attemp if atom.it <> atom'.it then fail_not env e.at "atom" not else let _ = elab_atom atom tid in Ok ([], Il.Subst.empty) + | InfixE (e1, atom, e2), Infix (_, atom', _) when Atom.sub atom' atom -> let e21 = ParenE (SeqE [] $ e2.at) $ e2.at in elab_exp_notation' env tid (InfixE (e1, atom', SeqE [e21; e2] $ e2.at) $ e.at) not + | InfixE (e1, atom, e2), Infix (not1, atom', not2) -> if atom.it <> atom'.it then fail_not env e.at "infix expression" not else let* es1', s1 = elab_exp_notation' env tid e1 not1 in @@ -1876,6 +1530,7 @@ and elab_exp_notation' env tid (e : exp) not : (Il.exp list * Il.Subst.t) attemp let* es2', s2 = elab_exp_notation' env tid e2 not2' in let _ = elab_atom atom tid in Ok (es1' @ es2', Il.Subst.union s1 s2) + | BrackE (l, e1, r), Brack (l', not1, r') -> if (l.it, r.it) <> (l'.it, r'.it) then fail_not env e.at "bracket expression" not else let _ = elab_atom l tid in @@ -1884,13 +1539,16 @@ and elab_exp_notation' env tid (e : exp) not : (Il.exp list * Il.Subst.t) attemp | SeqE [], Seq [] -> Ok ([], Il.Subst.empty) + | _, Seq ((Arg (x1, t1))::nots2) when is_iter_typ env t1 -> let* t11, iter = as_iter_typ "iteration" env Check t1 e.at in elab_exp_notation_iter env tid (unseq_exp e) (t11, iter) x1 t1 nots2 e.at + | SeqE ({it = AtomE atom; at; _}::es2), Seq ((Atom atom')::_) when Atom.sub atom' atom -> let e21 = ParenE (SeqE [] $ at) $ at in elab_exp_notation' env tid (SeqE ((AtomE atom' $ at) :: e21 :: es2) $ e.at) not + (* Trailing notation can be flattened *) | SeqE (e1::es2), Seq [Arg (x1, t1) as not1] -> choice env [ @@ -1905,6 +1563,7 @@ and elab_exp_notation' env tid (e : exp) not : (Il.exp list * Il.Subst.t) attemp Ok ([e'], Il.Subst.add_varid Il.Subst.empty x1 e') ) ] + | SeqE (e1::es2), Seq (not1::nots2) -> let* es1', s1 = elab_exp_notation' env tid (unparen_exp e1) not1 in let e2 = SeqE es2 $ Source.over_region (after_region e1.at :: List.map Source.at es2) in @@ -1912,6 +1571,7 @@ and elab_exp_notation' env tid (e : exp) not : (Il.exp list * Il.Subst.t) attemp let not2' = Mixop.map (fun (x, t) -> x, Il.Subst.subst_typ s1 t) not2 in let* es2', s2 = elab_exp_notation' env tid e2 not2' in Ok (es1' @ es2', Il.Subst.union s1 s2) + (* Trailing elements can be omitted if they can be eps *) | SeqE [], Seq ((Arg (x1, t1))::nots2) -> let* e1' = cast_empty "omitted sequence tail" env t1 e.at in @@ -1920,18 +1580,14 @@ and elab_exp_notation' env tid (e : exp) not : (Il.exp list * Il.Subst.t) attemp let not2' = Mixop.map (fun (x, t) -> x, Il.Subst.subst_typ s1 t) not2 in let* es2', s2 = elab_exp_notation' env tid e not2' in Ok (e1' :: es2', Il.Subst.union s1 s2) + | SeqE (e1::_), Seq [] -> fail e1.at "expression is not empty" + (* Since trailing elements can be omitted, a singleton may match a sequence *) | _, Seq _ -> elab_exp_notation' env tid (SeqE [e] $ e.at) not -(* - | ParenE e1, _ - | ArithE e1, _ -> - elab_exp_notation' env tid e1 not -*) - | _, Arg (x, t) -> let* e' = elab_exp env e t in Ok ([e'], Il.Subst.add_varid Il.Subst.empty x e') @@ -1961,6 +1617,7 @@ and elab_exp_notation_iter' env tid (es : exp list) (t1, iter) x t eo' nots at let not' = Mixop.map (fun (x, t) -> x, Il.Subst.subst_typ s0 t) not in let* es', s = elab_exp_notation' env tid (SeqE [] $ at) not' in Ok (e0', es', Il.Subst.union s0 s) + | e1::es2, Il.Opt -> assert (eo' = None); choice env [ @@ -1997,6 +1654,7 @@ and elab_exp_notation_iter' env tid (es : exp list) (t1, iter) x t eo' nots at let not' = Mixop.map (fun (x, t) -> x, Il.Subst.subst_typ s1 t) not in let* es', s2 = elab_exp_notation' env tid (SeqE [] $ at) not' in Ok (e', es', Il.Subst.union s1 s2) + | e1::es2, Il.List -> choice env [ (fun env -> @@ -2101,18 +1759,6 @@ and cast_empty phrase env (t : Il.typ) at : Il.exp attempt = | Some (_, _, Mixop.Seq []) -> Ok (Il.ListE [] $$ at % t) | _ -> fail_typ env at phrase t ) -(* - | VarT _ when is_iter_notation_typ env t -> - (match expand_iter_notation env t with - | IterT (_, iter) as t1 -> -(*TODO*) - let mixop, ts', _ts = elab_typ_notation' env (expand_id env t) (t1 $ t.at) in - assert (List.length ts' = 1); - let e1' = if iter = Opt then Il.OptE None else Il.ListE [] in - Ok ([], Il.CaseE (mixop, tup_exp' [e1' $$ at % List.hd ts'] at) $$ at % t') - | _ -> fail_typ env at phrase t - ) -*) | _ -> fail_typ env at phrase t ) @@ -2274,177 +1920,6 @@ and cast_exp' phrase env (e' : Il.exp) t1 t2 : Il.exp' attempt = | _, _ -> fail_typ2 env e'.at phrase t1 t2 "" -(* - | ConT ((t11, _), _), ConT ((t21, _), _) -> - choice env [ - (fun env -> - (* Two ConT's with the same operator can be cast pointwise *) - let mixop1, qs1, t1', _prems1', ts1 = elab_typ_notation env (expand_id env t1) t1.at t11 [] in - let mixop2, qs2, _t2', _prems2', ts2 = elab_typ_notation env (expand_id env t2) t2.at t21 [] in -(* - let mixop1, ts1', ts1 = elab_typ_notation' env (expand_id env t1) t11 in - let mixop2, _ts2', ts2 = elab_typ_notation' env (expand_id env t2) t21 in -*) - if mixop1 <> mixop2 then - fail_typ2 env e'.at phrase t1 t2 "" else - let e'' = Il.UncaseE (e', mixop1) $$ e'.at % t1' in - let ts1' = match t1'.it with Il.TupT xts -> List.map snd xts | _ -> [t1'] in - let es' = List.mapi (fun i t1I' -> Il.ProjE (e'', i) $$ e''.at % t1I') ts1' in - let* qss_es'' = map2_attempt (fun eI' (t1I, t2I) -> - cast_exp phrase env eI' t1I t2I) es' (List.combine ts1 ts2) in - let qss, es'' = List.split qss_es'' in - Ok (qs1 @ qs2 @ List.concat qss, Il.CaseE (mixop2, tup_exp' es'' e'.at)) - ); - (fun env -> - (* Two unary ConT's can be cast transitively *) - Debug.(log_in_at "el.cast_exp" e'.at - (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s) # backtrack 1" (el_typ t1) (el_typ t2) - (el_typ (expand_def env t1 $ t1.at)) (el_typ (expand_def env t2 $ t2.at)) - (el_typ (expand_nondef env t2)) - ) - ); - let mixop, qs, t1', _prems', ts = elab_typ_notation env (expand_id env t1) t1.at t11 [] in -(* - let mixop, ts', ts = elab_typ_notation' env (expand_id env t1) t11 in -*) - let* t111, t111' = match ts, t1'.it with [t111], Il.TupT [_, t111'] -> Ok (t111, t111') | _ -> - fail_typ2 env e'.at phrase t1 t2 "" in - let e'' = Il.UncaseE (e', mixop) $$ e'.at % t1' in - let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in - Ok (qs @ qs, e''') - ); - ] - | ConT ((t11, _), _), t2' -> - choice env [ - (fun env -> - let* qs, e'' = - match t2' with - | IterT (t21, iter) -> - let* qs1, e1' = cast_exp phrase env e' t1 t21 in - (match iter with - | Opt -> Ok (qs1, Il.OptE (Some e1')) - | List -> Ok (qs1, Il.ListE [e1']) - | _ -> assert false - ) - | _ -> fail_silent - in - Ok (qs, e'') - ); - (fun env -> - (* A ConT can be cast to its payload *) - Debug.(log_in_at "el.cast_exp" e'.at - (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s) # backtrack 2" (el_typ t1) (el_typ t2) - (el_typ (expand_def env t1 $ t1.at)) (el_typ (expand_def env t2 $ t2.at)) - (el_typ (expand_nondef env t2)) - ) - ); - let mixop, qs, t1', _prems', ts = elab_typ_notation env (expand_id env t1) t1.at t11 [] in -(* - let mixop, ts', ts = elab_typ_notation' env (expand_id env t1) t11 in -*) - let* t111, t111' = match ts, t1'.it with [t111], Il.TupT [_, t111'] -> Ok (t111, t111') | _ -> - fail_typ2 env e'.at phrase t1 t2 "" in -Printf.printf "[3] %s => %s\n%!" (Debug.el_typ t1) (Debug.il_typ t1'); - let e'' = Il.UncaseE (e', mixop) $$ e'.at % t1' in - let* qs, e''' = cast_exp' phrase env (Il.ProjE (e'', 0) $$ e'.at % t111') t111 t2 in - Ok (qs @ qs, e''') - ); - ] - | _, ConT ((t21, _), _) -> - (* A ConT payload can be cast to the ConT *) - let mixop, qs, t', _prems', ts = elab_typ_notation env (expand_id env t2) t2.at t21 [] in -(* - let mixop, _ts', ts = elab_typ_notation' env (expand_id env t2) t21 in -*) - let* t211 = match ts with [t211] -> Ok t211 | _ -> - fail_typ2 env e'.at phrase t1 t2 "" in - let* qs1, e1' = cast_exp phrase env e' t1 t211 in - Ok (qs @ qs1, Il.CaseE (mixop, Il.TupE [e1'] $$ e'.at % t')) - | RangeT _, t2' -> - choice env [ - (fun env -> - let* qs, e'' = - match t2' with - | IterT (t21, iter) -> - let* qs1, e1' = cast_exp phrase env e' t1 t21 in - (match iter with - | Opt -> Ok (qs1, Il.OptE (Some e1')) - | List -> Ok (qs1, Il.ListE [e1']) - | _ -> assert false - ) - | _ -> fail_silent - in - Ok (qs, e'') - ); - (fun env -> - (* A RangeT can be cast to its carrier type *) - Debug.(log_in_at "el.cast_exp" e'.at - (fun _ -> fmt "%s <: %s >> (%s) <: (%s) = (%s) # backtrack 3" (el_typ t1) (el_typ t2) - (el_typ (expand_def env t1 $ t1.at)) (el_typ (expand_def env t2 $ t2.at)) - (el_typ (expand_nondef env t2)) - ) - ); - let t11 = typ_rep env t1 in - let t11' = elab_typ env t11 in -Printf.printf "[4] %s => %s\n%!" (Debug.el_typ t11) (Debug.il_typ t11'); - let e'' = Il.UncaseE (e', [[]; []]) $$ e'.at % t11' in - let e''' = Il.ProjE (e'', 0) $$ e'.at % t11' in - cast_exp' phrase env e''' t11 t2 - ); - ] - | _, RangeT _ -> - (* A respective carrier type can be cast to RangeT *) - let t21 = typ_rep env t2 in - let* qs, e'' = cast_exp phrase env e' t1 t21 in - Ok (qs, Il.CaseE ([[]; []], Il.TupE [e''] $$ e'.at % elab_typ env t21)) - | _, IterT (t21, Opt) -> - let* qs, e'' = cast_exp phrase env e' t1 t21 in - Ok (qs, Il.OptE (Some e'')) -(* TODO(3, rossberg): enable; violates invariant that all iterexps are initially empty - | IterT (t11, List), IterT (t21, List) -> - choice env [ - (fun env -> - let id = x $ e'.at in - let t11' = elab_typ env t11 in - let* qs, e'' = cast_exp phrase env (Il.VarE id $$ e'.at % t11') t11 t21 in - Ok (qs, Il.IterE (e'', (List, [x, e']))) - ); - (fun env -> - let* qs, e'' = cast_exp phrase env e' t1 t21 in - Ok (qs, Il.ListE [e'']) - ); - ] -*) - - | _, _ when is_variant_typ env t1 && is_variant_typ env t2 && not (is_iter_typ env t1) -> - let cases1, dots1 = checkpoint (as_variant_typ "" env Check t1 e'.at) in - let cases2, _dots2 = checkpoint (as_variant_typ "" env Check t2 e'.at) in - if dots1 = Dots then - error e'.at "used variant type is only partially defined at this point"; - let* _ = - match - iter_attempt (fun (atom, (t1', _prems1), _) -> - let* t2', _prems2 = attempt (find_case cases2 atom t1.at) t2 in - (* Shallow subtyping on variants *) - let env' = to_eval_env env in - if Eq.eq_typ (Eval.reduce_typ env' t1') (Eval.reduce_typ env' t2') then Ok () else - fail_atom e'.at atom t1 "type mismatch for case" - ) cases1 - with - | Ok () -> Ok () - | Fail (Trace (_, msg, _) :: _) -> fail_typ2 env e'.at phrase t1 t2 (", " ^ msg) - | Fail [] -> assert false - in - let t11 = expand env t1 $ t1.at in - let t21 = expand env t2 $ t2.at in - let t11' = elab_typ env (expand_nondef env t1) in - let t21' = elab_typ env (expand_nondef env t2) in - let* qs1, e'' = cast_exp phrase env e' t1 t11 in - let e''' = Il.SubE (e'', t11', t21') in - let* qs2, e'''' = cast_exp' phrase env (e''' $$ e'.at % t21') t21 t2 in - Ok (qs1 @ qs2, e'''') -*) - (* Premises *) @@ -2649,7 +2124,6 @@ and elab_prod env outer_dims (prod : prod) (t : Il.typ) : Il.prod list = in let prems' = List.concat (map_filter_nl_list (elab_prem env') prems) in let dims = Dim.check outer_dims [] [] [] [e'] [g'] prems' in -Printf.printf "dims \\ %s = %s\n%!" (Debug.domain outer_dims) (Debug.(list Fun.id (List.map fst (Map.bindings dims)))); let g' = Dim.annot_sym dims g' in let e' = Dim.annot_exp dims e' in let prems' = List.map (Dim.annot_prem dims) prems' in @@ -2665,6 +2139,7 @@ Printf.printf "dims \\ %s = %s\n%!" (Debug.domain outer_dims) (Debug.(list Fun.i else prod' :: elab_prod env outer_dims Subst.(subst_prod pm_snd (Iter.clone_prod prod)) t + | RangeP (g1, e1, g2, e2) -> let t = Il.NumT `NatT $ prod.at in let g1' = checkpoint (elab_sym env g1 t) in @@ -2708,6 +2183,7 @@ Printf.printf "dims \\ %s = %s\n%!" (Debug.domain outer_dims) (Debug.(list Fun.i let e' = {(if i = 0 then e1' else e2') with it = Il.NumE n} in Il.ProdD ([], g', e', []) $ prod.at ) + | EquivP (g1, g2, prems) -> let env' = local_env env in env'.pm <- false; @@ -2978,9 +2454,6 @@ let infer_typdef env (d : def) : def = let infer_gramdef env (d : def) = match d.it with | GramD (x1, _x2, ps, t, _gram, _hints) -> - (* - Printf.eprintf "[el.infer_gramdef %s]\n%!" (string_of_region d.at); - *) if not (bound env.grams x1) then ( let env' = local_env env in let ps' = elab_params env' ps in @@ -3022,6 +2495,7 @@ let rec elab_def env (d : def) : Il.def list = env.typs <- rebind "syntax type" env.typs x (ps', Family []); [Il.TypD (x, ps', []) $ d.at] @ elab_hintdef env (TypH (x, "" $ x.at, hints) $ d.at) + | TypD (x1, x2, as_, t, hints) -> let ps', k = find "syntax type" env.typs x1 in let as', _s = elab_args `Lhs env' as_ ps' d.at in @@ -3049,18 +2523,14 @@ let rec elab_def env (d : def) : Il.def list = error_id x1 "syntax type family cases are not extensible"; Family (insts @ [inst']), false in - (* - Printf.eprintf "[syntax %s] %s ~> %s\n%!" id1.it - (string_of_typ t) (Il.Print.string_of_deftyp dt'); - *) env.typs <- rebind "syntax type" env.typs x1 (ps', k'); (if not last then [] else [Il.TypD (x1, ps', [inst']) $ d.at]) @ elab_hintdef env (TypH (x1, x2, hints) $ d.at) @ (if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d))) + | GramD (x1, x2, ps, t, gram, hints) -> let ps' = elab_params env' ps in let t' = elab_typ env' t in -Printf.printf "ps' = %s\n%!" (Debug.il_params ps'); let dims = Dim.check Map.empty ps' [] [t'] [] [] [] in let outer_dims = Dim.restrict dims (Il.Free.bound_params ps') in let prods' = elab_gram env' outer_dims gram t' in @@ -3092,6 +2562,7 @@ Printf.printf "ps' = %s\n%!" (Debug.il_params ps'); (* Only add last fragment to IL defs, so that populate finds it only once *) (if dots2 = Dots then [] else [Il.GramD (x1, ps', t', []) $ d.at]) @ elab_hintdef env (GramH (x1, x2, hints) $ d.at) + | RelD (x, t, hints) -> let mixop, xts' = elab_typ_notation' env' x t in let ts' = List.map snd xts' in @@ -3104,6 +2575,7 @@ Printf.printf "ps' = %s\n%!" (Debug.il_params ps'); env.rels <- bind "relation" env.rels x (mixop, not, t', []); [Il.RelD (x, mixop, t', []) $ d.at] @ elab_hintdef env (RelH (x, hints) $ d.at) + | RuleD (x1, x2, e, prems) -> let mixop, not', t', rules' = find "relation" env.rels x1 in if List.exists (fun (x, _) -> x.it = x2.it) rules' then @@ -3120,6 +2592,7 @@ Printf.printf "ps' = %s\n%!" (Debug.il_params ps'); let rule' = Il.RuleD (x2, qs, mixop, e', prems') $ d.at in env.rels <- rebind "relation" env.rels x1 (mixop, not', t', rules' @ [x2, rule']); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) + | VarD (x, t, _hints) -> let t' = elab_typ env' t in if env'.pm then @@ -3129,6 +2602,7 @@ Printf.printf "ps' = %s\n%!" (Debug.il_params ps'); infer_no_quants env' dims Det.empty [] [] [t'] [] [] [] d.at; env.gvars <- rebind "variable" env.gvars x t'; [] + | DecD (x, ps, t, hints) -> let ps' = elab_params env' ps in let t' = elab_typ env' t in @@ -3136,10 +2610,10 @@ Printf.printf "ps' = %s\n%!" (Debug.il_params ps'); let d' = Il.DecD (x, ps', t', []) $ d.at in let dims = Dim.check Map.empty ps' [] [t'] [] [] [] in let t' = Dim.annot_typ dims t' in -Printf.printf "DecD %s%s : %s\n%!" x.it (Il.Print.string_of_params ps') (Il.Print.string_of_typ t'); infer_no_quants env dims Det.empty ps' [] [t'] [] [] [] d.at; env.defs <- bind "definition" env.defs x (ps', t', []); [d'] @ elab_hintdef env (DecH (x, hints) $ d.at) + | DefD (x, as_, e, prems) -> let ps', t', clauses' = find "definition" env.defs x in let as', s = elab_args `Lhs env' as_ ps' d.at in @@ -3153,11 +2627,12 @@ Printf.printf "DecD %s%s : %s\n%!" x.it (Il.Print.string_of_params ps') (Il.Prin let det = Det.(det_list det_arg as' ++ det_exp e' ++ det_list det_prem prems') in let qs = infer_quants env env' dims det [] as' [] [e'] [] prems' d.at in let clause' = Il.DefD (qs, as', e', prems') $ d.at in -Printf.printf "=> %s\n%!" (Il.Print.string_of_clause ~suppress_pos: true x clause'); env.defs <- rebind "definition" env.defs x (ps', t', clauses' @ [(d, clause')]); if not env'.pm then [] else elab_def env Subst.(subst_def pm_snd (Iter.clone_def d)) + | SepD -> [] + | HintD hd -> elab_hintdef env' hd diff --git a/spectec/src/frontend/eval.ml b/spectec/src/frontend/eval.ml index 0d8cb290e1..ff76a99aaa 100644 --- a/spectec/src/frontend/eval.ml +++ b/spectec/src/frontend/eval.ml @@ -719,11 +719,6 @@ and equiv_arg env a1 a2 = Debug.(log "el.equiv_arg" (fun _ -> fmt "%s == %s" (el_arg a1) (el_arg a2)) Bool.to_string ) @@ fun _ -> - (* - Printf.eprintf "[el.equiv_arg] %s == %s\n%!" - (Print.string_of_arg a1) - (Print.string_of_arg a2); - *) match !(a1.it), !(a2.it) with | ExpA e1, ExpA e2 -> equiv_exp env e1 e2 | TypA t1, TypA t2 -> equiv_typ env t1 t2 diff --git a/spectec/src/il/debug.ml b/spectec/src/il/debug.ml index f350559426..111d7f5e37 100644 --- a/spectec/src/il/debug.ml +++ b/spectec/src/il/debug.ml @@ -7,6 +7,7 @@ let il_id = Util.Source.it let il_atom = string_of_atom let il_mixop = string_of_mixop let il_iter = string_of_iter +let il_iterexp = string_of_iterexp let il_typ = string_of_typ let il_typbind (x, t) = "(" ^ il_id x ^ ":" ^ il_typ t ^ ")" let il_typfield = string_of_typfield ~layout: `H diff --git a/spectec/src/il/free.mli b/spectec/src/il/free.mli index 00acbfc4c0..1b962475c4 100644 --- a/spectec/src/il/free.mli +++ b/spectec/src/il/free.mli @@ -22,6 +22,7 @@ val free_args : arg list -> sets val free_quants : param list -> sets val free_params : param list -> sets +val bound_iter : iter -> sets val bound_iterexp : iterexp -> sets val bound_quant : quant -> sets val bound_param : param -> sets diff --git a/spectec/src/il/print.ml b/spectec/src/il/print.ml index a85fde43af..9657e871b4 100644 --- a/spectec/src/il/print.ml +++ b/spectec/src/il/print.ml @@ -19,13 +19,11 @@ let is_alphanum = function | '0'..'9' | 'A'..'Z' | 'a'..'z' - | '_' | '.' | '\'' | '#' -> true + | '_' | '\'' | '#' -> true | _ -> false let string_of_id x = - if String.for_all is_alphanum x.it - then x.it - else "`" ^ x.it ^ "`" + if String.for_all is_alphanum x.it then x.it else "`" ^ x.it ^ "`" (* Operators *) @@ -43,7 +41,9 @@ let string_of_cmpop = function | #Num.cmpop as op -> Num.string_of_cmpop op let string_of_atom = Atom.to_string -let string_of_mixop mixop = "`" ^ Mixop.to_string mixop ^ "`" +let string_of_mixop mixop = + let s = Mixop.to_string mixop in + if String.for_all is_alphanum s then s else "`" ^ s ^ "`" (* Types *) @@ -97,15 +97,17 @@ and string_of_deftyp ?(layout = `H) dt = and string_of_typfield ?(layout = `H) (atom, (t, qs, prems), _hints) = string_of_mixop (Mixop.Atom atom) ^ " " ^ string_of_typ t ^ - if layout = `H && prems <> [] then " -- .." else - string_of_quants qs ^ " " ^ - concat "" (List.map (prefix "\n -- " string_of_prem) prems) + if prems = [] then "" else + if layout = `H then " -- .." else + (if qs = [] then "" else " " ^ string_of_quants qs) ^ + concat "" (List.map (prefix "\n -- " string_of_prem) prems) and string_of_typcase ?(layout = `H) (op, (t, qs, prems), _hints) = string_of_mixop op ^ string_of_typ_args t ^ - if layout = `H && prems <> [] then " -- .." else - string_of_quants qs ^ " " ^ - concat "" (List.map (prefix "\n -- " string_of_prem) prems) + if prems = [] then "" else + if layout = `H then " -- .." else + (if qs = [] then "" else " " ^ string_of_quants qs) ^ + concat "" (List.map (prefix "\n -- " string_of_prem) prems) (* Expressions *) @@ -301,8 +303,8 @@ let string_of_prod ?(suppress_pos = false) prod = let rec string_of_def ?(suppress_pos = false) d = let pre = "\n" ^ region_comment ~suppress_pos "" d.at in match d.it with - | TypD (x, _ps, [{it = InstD (ps, as_, dt); _}]) -> - pre ^ "syntax " ^ string_of_id x ^ string_of_params ps ^ string_of_args as_ ^ " = " ^ + | TypD (x, _ps, [{it = InstD (qs, as_, dt); _}]) -> + pre ^ "syntax " ^ string_of_id x ^ string_of_quants qs ^ string_of_args as_ ^ " = " ^ string_of_deftyp ~layout: `V dt ^ "\n" | TypD (x, ps, insts) -> pre ^ "syntax " ^ string_of_id x ^ string_of_params ps ^ diff --git a/spectec/src/il/print.mli b/spectec/src/il/print.mli index c7289a6da5..0002db4db4 100644 --- a/spectec/src/il/print.mli +++ b/spectec/src/il/print.mli @@ -7,6 +7,7 @@ val string_of_binop : binop -> string val string_of_cmpop : cmpop -> string val string_of_mixop : mixop -> string val string_of_iter : iter -> string +val string_of_iterexp : iterexp -> string val string_of_numtyp : numtyp -> string val string_of_typ : typ -> string val string_of_typ_name : typ -> string diff --git a/spectec/src/il/subst.ml b/spectec/src/il/subst.ml index 475c377f6e..d2707a920a 100644 --- a/spectec/src/il/subst.ml +++ b/spectec/src/il/subst.ml @@ -63,14 +63,6 @@ let rec subst_list_dep subst_x bound_x s = function (* Identifiers *) -let subst_varid s x = - match Map.find_opt x.it s.varid with - | None -> x - | Some {it = VarE x'; _} -> x' - | Some e -> -Printf.printf "!!!! e = %s\n%!" (Print.string_of_exp e); - raise (Invalid_argument "subst_varid") - let subst_defid s x = match Map.find_opt x.it s.defid with | None -> x @@ -88,7 +80,7 @@ let subst_gramid s x = let rec subst_iter s iter = match iter with | Opt | List | List1 -> iter - | ListN (e, xo) -> ListN (subst_exp s e, subst_opt subst_varid s xo) + | ListN (e, xo) -> ListN (subst_exp s e, xo) and subst_iterexp : 'a. subst -> (subst -> 'a -> 'a) -> 'a -> _ -> 'a * _ = fun s f body (it, xes) -> diff --git a/spectec/src/il/valid.ml b/spectec/src/il/valid.ml index a564f088f1..6f057560a6 100644 --- a/spectec/src/il/valid.ml +++ b/spectec/src/il/valid.ml @@ -201,7 +201,6 @@ and valid_iterexp ?(side = `Rhs) env (it, xes) at : iter * Env.t = it', List.fold_left (fun env' (x, e) -> let t = infer_exp env e in -Printf.printf "[] %s %s\n%!" (Debug.il_typ t) (Debug.il_typ e.note); valid_exp ~side env e t; let t1 = as_iter_typ it' "iterator" env Check t e.at in Env.bind_var env' x t1 @@ -348,14 +347,7 @@ and valid_exp ?(side = `Rhs) env e t = (fun _ -> fmt "%s :%s %s == %s" (il_exp e) (il_side side) (il_typ e.note) (il_typ t)) (Fun.const "ok") ) @@ fun _ -> -try - (try - valid_typ env t - with exn -> - let bt = Printexc.get_raw_backtrace () in - Printf.eprintf "[valid_exp] %s : %s\n%!" (Debug.il_exp e) (Debug.il_typ t); - Printexc.raise_with_backtrace exn bt - ); + valid_typ env t; match e.it with | VarE x when x.it = "_" && side = `Lhs -> () | VarE x -> @@ -502,10 +494,6 @@ try valid_exp ~side env e1 t1; equiv_typ env t2 t e.at; sub_typ env t1 t2 e.at -with exn -> - let bt = Printexc.get_raw_backtrace () in - Printf.eprintf "[valid_exp] %s\n%!" (Debug.il_exp e); - Printexc.raise_with_backtrace exn bt and valid_expmix ?(side = `Rhs) env mixop e (mixop', t) at = @@ -706,19 +694,14 @@ let valid_rule env mixop t rule = let valid_clause env x ps t clause = Debug.(log_in "il.valid_clause" line); Debug.(log_in_at "il.valid_clause" clause.at - (fun _ -> fmt ": (%s) -> %s" (il_params ps) (il_typ t)) + (fun _ -> fmt "%s : (%s) -> %s" (il_id x) (il_params ps) (il_typ t)) ); -try match clause.it with | DefD (qs, as_, e, prems) -> let env' = valid_quants env qs in let s = valid_args env' as_ ps Subst.empty clause.at in valid_exp env' e (Subst.subst_typ s t); List.iter (valid_prem env') prems -with exn -> - let bt = Printexc.get_raw_backtrace () in - Printf.eprintf "[valid_clause] %s\n%!" (Debug.il_clause x clause); - Printexc.raise_with_backtrace exn bt let valid_prod env ps t prod = Debug.(log_in "il.valid_prod" line); diff --git a/spectec/test-frontend/TEST.md b/spectec/test-frontend/TEST.md index 67a5b76da0..3ce2962b94 100644 --- a/spectec/test-frontend/TEST.md +++ b/spectec/test-frontend/TEST.md @@ -2,3539 +2,6 @@ ```sh $ (../src/exe-spectec/main.exe test.spectec -o test.tex && cat test.tex) -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] testmixfix -DecD testmixfix(testmixfix : testmixfix) : nat* -[visit_id testmixfix] not free -[check_dims] nat -[visit_exp `{%}`_testmixfix(nat*{nat <- `nat*`})] -[visit_exp (nat*{nat <- `nat*`})] -[visit_exp nat*{nat <- `nat*`}] -[scope_enter nat] -[visit_exp nat] -[visit_id nat] not free -[visit_id nat] not free -[scope_exit nat] -[visit_exp `nat*`] -[visit_id nat*] no dims -[visit_id nat*] -[visit_exp nat*{nat <- `nat*`}] -[scope_enter nat] -[visit_exp nat] -[visit_id nat] not free -[visit_id nat] not free -[scope_exit nat] -[visit_exp `nat*`] -[visit_id nat*] not free -[visit_id nat*] no dims -=> - ;; test.spectec - def $testmixfix{`nat*` : nat*}(`{%}`_testmixfix(nat*{nat <- `nat*`})) = nat*{nat <- `nat*`} -[check_dims] nat -[visit_exp `[%]`_testmixfix(nat*{nat <- `nat*`})] -[visit_exp (nat*{nat <- `nat*`})] -[visit_exp nat*{nat <- `nat*`}] -[scope_enter nat] -[visit_exp nat] -[visit_id nat] not free -[visit_id nat] not free -[scope_exit nat] -[visit_exp `nat*`] -[visit_id nat*] no dims -[visit_id nat*] -[visit_exp nat*{nat <- `nat*`}] -[scope_enter nat] -[visit_exp nat] -[visit_id nat] not free -[visit_id nat] not free -[scope_exit nat] -[visit_exp `nat*`] -[visit_id nat*] not free -[visit_id nat*] no dims -=> - ;; test.spectec - def $testmixfix{`nat*` : nat*}(`[%]`_testmixfix(nat*{nat <- `nat*`})) = nat*{nat <- `nat*`} -[check_dims] nat_1 nat_2 -[visit_exp `%->%`_testmixfix(nat_1, nat_2)] -[visit_exp (nat_1, nat_2)] -[visit_exp nat_1] -[visit_id nat_1] -[visit_exp nat_2] -[visit_id nat_2] -[visit_exp [nat_1 nat_2]] -[visit_exp nat_1] -[visit_id nat_1] not free -[visit_exp nat_2] -[visit_id nat_2] not free -=> - ;; test.spectec - def $testmixfix{nat_1 : nat, nat_2 : nat}(`%->%`_testmixfix(nat_1, nat_2)) = [nat_1 nat_2] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[scope_enter opt] -[visit_id opt] not free -[visit_id opt] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit opt] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter O?] -[visit_id O?] not free -[visit_id O?] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit O?] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter list] -[visit_id list] not free -[visit_id list] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit list] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter L*] -[visit_id L*] not free -[visit_id L*] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit L*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter opt] -[visit_id opt] not free -[visit_id opt] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit opt] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter O?] -[visit_id O?] not free -[visit_id O?] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit O?] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter list] -[visit_id list] not free -[visit_id list] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit list] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter L*] -[visit_id L*] not free -[visit_id L*] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit L*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] variant -DecD testemptyv1(variant : variant) : nat -[visit_id variant] not free -[check_dims] opt -[visit_exp `V1`_variant(opt, 0)] -[visit_exp (opt, 0)] -[visit_exp opt] -[visit_id opt] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv1{opt : opt}(`V1`_variant(opt, 0)) = 0 -[check_dims] -[visit_exp `V1`_variant(?(), 0)] -[visit_exp (?(), 0)] -[visit_exp ?()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv1(`V1`_variant(?(), 0)) = 0 -[check_dims] -[visit_exp `V1`_variant(?(), 0)] -[visit_exp (?(), 0)] -[visit_exp ?()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv1(`V1`_variant(?(), 0)) = 0 -[check_dims] -[visit_exp `V1`_variant(?(`O`_O), 0)] -[visit_exp (?(`O`_O), 0)] -[visit_exp ?(`O`_O)] -[visit_exp `O`_O] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv1(`V1`_variant(?(`O`_O), 0)) = 0 -[check_dims] variant -DecD testemptyv2(variant : variant) : nat -[visit_id variant] not free -[check_dims] -[visit_exp `V2`_variant(?(), 0)] -[visit_exp (?(), 0)] -[visit_exp ?()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv2(`V2`_variant(?(), 0)) = 0 -[check_dims] -[visit_exp `V2`_variant(?(), 0)] -[visit_exp (?(), 0)] -[visit_exp ?()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv2(`V2`_variant(?(), 0)) = 0 -[check_dims] -[visit_exp `V2`_variant(?(`O`_O), 0)] -[visit_exp (?(`O`_O), 0)] -[visit_exp ?(`O`_O)] -[visit_exp `O`_O] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv2(`V2`_variant(?(`O`_O), 0)) = 0 -[check_dims] variant -DecD testemptyv3(variant : variant) : nat -[visit_id variant] not free -[check_dims] -[visit_exp `V3`_variant(?(), 0)] -[visit_exp (?(), 0)] -[visit_exp ?()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv3(`V3`_variant(?(), 0)) = 0 -[check_dims] -[visit_exp `V3`_variant(?(), 0)] -[visit_exp (?(), 0)] -[visit_exp ?()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv3(`V3`_variant(?(), 0)) = 0 -[check_dims] -[visit_exp `V3`_variant(?(""), 0)] -[visit_exp (?(""), 0)] -[visit_exp ?("")] -[visit_exp ""] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv3(`V3`_variant(?(""), 0)) = 0 -[check_dims] variant -DecD testemptyv4(variant : variant) : nat -[visit_id variant] not free -[check_dims] list -[visit_exp `V4`_variant(list, 0)] -[visit_exp (list, 0)] -[visit_exp list] -[visit_id list] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv4{list : list}(`V4`_variant(list, 0)) = 0 -[check_dims] -[visit_exp `V4`_variant([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv4(`V4`_variant([], 0)) = 0 -[check_dims] -[visit_exp `V4`_variant([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv4(`V4`_variant([], 0)) = 0 -[check_dims] -[visit_exp `V4`_variant([`L`_L], 0)] -[visit_exp ([`L`_L], 0)] -[visit_exp [`L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv4(`V4`_variant([`L`_L], 0)) = 0 -[check_dims] -[visit_exp `V4`_variant([`L`_L `L`_L `L`_L], 0)] -[visit_exp ([`L`_L `L`_L `L`_L], 0)] -[visit_exp [`L`_L `L`_L `L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv4(`V4`_variant([`L`_L `L`_L `L`_L], 0)) = 0 -[check_dims] -[visit_exp `V4`_variant([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv4(`V4`_variant([], 0)) = 0 -[check_dims] -[visit_exp `V4`_variant([`L`_L], 0)] -[visit_exp ([`L`_L], 0)] -[visit_exp [`L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv4(`V4`_variant([`L`_L], 0)) = 0 -[check_dims] -[visit_exp `V4`_variant([`L`_L `L`_L `L`_L], 0)] -[visit_exp ([`L`_L `L`_L `L`_L], 0)] -[visit_exp [`L`_L `L`_L `L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv4(`V4`_variant([`L`_L `L`_L `L`_L], 0)) = 0 -[check_dims] variant -DecD testemptyv5(variant : variant) : nat -[visit_id variant] not free -[check_dims] -[visit_exp `V5`_variant([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv5(`V5`_variant([], 0)) = 0 -[check_dims] -[visit_exp `V5`_variant([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv5(`V5`_variant([], 0)) = 0 -[check_dims] -[visit_exp `V5`_variant([`L`_L], 0)] -[visit_exp ([`L`_L], 0)] -[visit_exp [`L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv5(`V5`_variant([`L`_L], 0)) = 0 -[check_dims] -[visit_exp `V5`_variant([`L`_L `L`_L `L`_L], 0)] -[visit_exp ([`L`_L `L`_L `L`_L], 0)] -[visit_exp [`L`_L `L`_L `L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv5(`V5`_variant([`L`_L `L`_L `L`_L], 0)) = 0 -[check_dims] -[visit_exp `V5`_variant([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv5(`V5`_variant([], 0)) = 0 -[check_dims] -[visit_exp `V5`_variant([`L`_L], 0)] -[visit_exp ([`L`_L], 0)] -[visit_exp [`L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv5(`V5`_variant([`L`_L], 0)) = 0 -[check_dims] -[visit_exp `V5`_variant([`L`_L `L`_L `L`_L], 0)] -[visit_exp ([`L`_L `L`_L `L`_L], 0)] -[visit_exp [`L`_L `L`_L `L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv5(`V5`_variant([`L`_L `L`_L `L`_L], 0)) = 0 -[check_dims] variant -DecD testemptyv6(variant : variant) : nat -[visit_id variant] not free -[check_dims] -[visit_exp `V6`_variant([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv6(`V6`_variant([], 0)) = 0 -[check_dims] -[visit_exp `V6`_variant([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv6(`V6`_variant([], 0)) = 0 -[check_dims] -[visit_exp `V6`_variant([""], 0)] -[visit_exp ([""], 0)] -[visit_exp [""]] -[visit_exp ""] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv6(`V6`_variant([""], 0)) = 0 -[check_dims] -[visit_exp `V6`_variant(["" ""], 0)] -[visit_exp (["" ""], 0)] -[visit_exp ["" ""]] -[visit_exp ""] -[visit_exp ""] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv6(`V6`_variant(["" ""], 0)) = 0 -[check_dims] -[visit_exp `V6`_variant([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv6(`V6`_variant([], 0)) = 0 -[check_dims] -[visit_exp `V6`_variant([""], 0)] -[visit_exp ([""], 0)] -[visit_exp [""]] -[visit_exp ""] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv6(`V6`_variant([""], 0)) = 0 -[check_dims] -[visit_exp `V6`_variant(["" ""], 0)] -[visit_exp (["" ""], 0)] -[visit_exp ["" ""]] -[visit_exp ""] -[visit_exp ""] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyv6(`V6`_variant(["" ""], 0)) = 0 -[check_dims] notation1 -DecD testemptyn1(notation1 : notation1) : nat -[visit_id notation1] not free -[check_dims] opt -[visit_exp `%%`_notation1(opt, 0)] -[visit_exp (opt, 0)] -[visit_exp opt] -[visit_id opt] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn1{opt : opt}(`%%`_notation1(opt, 0)) = 0 -[check_dims] -[visit_exp `%%`_notation1(?(), 0)] -[visit_exp (?(), 0)] -[visit_exp ?()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn1(`%%`_notation1(?(), 0)) = 0 -[check_dims] -[visit_exp `%%`_notation1(?(), 0)] -[visit_exp (?(), 0)] -[visit_exp ?()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn1(`%%`_notation1(?(), 0)) = 0 -[check_dims] -[visit_exp `%%`_notation1(?(`O`_O), 0)] -[visit_exp (?(`O`_O), 0)] -[visit_exp ?(`O`_O)] -[visit_exp `O`_O] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn1(`%%`_notation1(?(`O`_O), 0)) = 0 -[check_dims] notation2 -DecD testemptyn2(notation2 : notation2) : nat -[visit_id notation2] not free -[check_dims] -[visit_exp `%%`_notation2(?(), 0)] -[visit_exp (?(), 0)] -[visit_exp ?()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn2(`%%`_notation2(?(), 0)) = 0 -[check_dims] -[visit_exp `%%`_notation2(?(), 0)] -[visit_exp (?(), 0)] -[visit_exp ?()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn2(`%%`_notation2(?(), 0)) = 0 -[check_dims] -[visit_exp `%%`_notation2(?(`O`_O), 0)] -[visit_exp (?(`O`_O), 0)] -[visit_exp ?(`O`_O)] -[visit_exp `O`_O] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn2(`%%`_notation2(?(`O`_O), 0)) = 0 -[check_dims] notation3 -DecD testemptyn3(notation3 : notation3) : nat -[visit_id notation3] not free -[check_dims] -[visit_exp `%%`_notation3(?(), 0)] -[visit_exp (?(), 0)] -[visit_exp ?()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn3(`%%`_notation3(?(), 0)) = 0 -[check_dims] -[visit_exp `%%`_notation3(?(), 0)] -[visit_exp (?(), 0)] -[visit_exp ?()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn3(`%%`_notation3(?(), 0)) = 0 -[check_dims] -[visit_exp `%%`_notation3(?(""), 0)] -[visit_exp (?(""), 0)] -[visit_exp ?("")] -[visit_exp ""] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn3(`%%`_notation3(?(""), 0)) = 0 -[check_dims] notation4 -DecD testemptyn4(notation4 : notation4) : nat -[visit_id notation4] not free -[check_dims] list -[visit_exp `%%`_notation4(list, 0)] -[visit_exp (list, 0)] -[visit_exp list] -[visit_id list] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn4{list : list}(`%%`_notation4(list, 0)) = 0 -[check_dims] -[visit_exp `%%`_notation4([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn4(`%%`_notation4([], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation4([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn4(`%%`_notation4([], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation4([`L`_L], 0)] -[visit_exp ([`L`_L], 0)] -[visit_exp [`L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn4(`%%`_notation4([`L`_L], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation4([`L`_L `L`_L `L`_L], 0)] -[visit_exp ([`L`_L `L`_L `L`_L], 0)] -[visit_exp [`L`_L `L`_L `L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn4(`%%`_notation4([`L`_L `L`_L `L`_L], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation4([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn4(`%%`_notation4([], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation4([`L`_L], 0)] -[visit_exp ([`L`_L], 0)] -[visit_exp [`L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn4(`%%`_notation4([`L`_L], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation4([`L`_L `L`_L `L`_L], 0)] -[visit_exp ([`L`_L `L`_L `L`_L], 0)] -[visit_exp [`L`_L `L`_L `L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn4(`%%`_notation4([`L`_L `L`_L `L`_L], 0)) = 0 -[check_dims] notation5 -DecD testemptyn5(notation5 : notation5) : nat -[visit_id notation5] not free -[check_dims] -[visit_exp `%%`_notation5([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn5(`%%`_notation5([], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation5([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn5(`%%`_notation5([], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation5([`L`_L], 0)] -[visit_exp ([`L`_L], 0)] -[visit_exp [`L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn5(`%%`_notation5([`L`_L], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation5([`L`_L `L`_L `L`_L], 0)] -[visit_exp ([`L`_L `L`_L `L`_L], 0)] -[visit_exp [`L`_L `L`_L `L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn5(`%%`_notation5([`L`_L `L`_L `L`_L], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation5([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn5(`%%`_notation5([], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation5([`L`_L], 0)] -[visit_exp ([`L`_L], 0)] -[visit_exp [`L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn5(`%%`_notation5([`L`_L], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation5([`L`_L `L`_L `L`_L], 0)] -[visit_exp ([`L`_L `L`_L `L`_L], 0)] -[visit_exp [`L`_L `L`_L `L`_L]] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp `L`_L] -[visit_exp ()] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn5(`%%`_notation5([`L`_L `L`_L `L`_L], 0)) = 0 -[check_dims] notation6 -DecD testemptyn6(notation6 : notation6) : nat -[visit_id notation6] not free -[check_dims] -[visit_exp `%%`_notation6([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn6(`%%`_notation6([], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation6([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn6(`%%`_notation6([], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation6([""], 0)] -[visit_exp ([""], 0)] -[visit_exp [""]] -[visit_exp ""] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn6(`%%`_notation6([""], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation6(["" "" ""], 0)] -[visit_exp (["" "" ""], 0)] -[visit_exp ["" "" ""]] -[visit_exp ""] -[visit_exp ""] -[visit_exp ""] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn6(`%%`_notation6(["" "" ""], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation6([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn6(`%%`_notation6([], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation6([""], 0)] -[visit_exp ([""], 0)] -[visit_exp [""]] -[visit_exp ""] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn6(`%%`_notation6([""], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation6(["" "" ""], 0)] -[visit_exp (["" "" ""], 0)] -[visit_exp ["" "" ""]] -[visit_exp ""] -[visit_exp ""] -[visit_exp ""] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn6(`%%`_notation6(["" "" ""], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation6([], 0)] -[visit_exp ([], 0)] -[visit_exp []] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn6(`%%`_notation6([], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation6([""], 0)] -[visit_exp ([""], 0)] -[visit_exp [""]] -[visit_exp ""] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn6(`%%`_notation6([""], 0)) = 0 -[check_dims] -[visit_exp `%%`_notation6(["" "" ""], 0)] -[visit_exp (["" "" ""], 0)] -[visit_exp ["" "" ""]] -[visit_exp ""] -[visit_exp ""] -[visit_exp ""] -[visit_exp 0] -[visit_exp 0] -=> - ;; test.spectec - def $testemptyn6(`%%`_notation6(["" "" ""], 0)) = 0 -[check_dims] _ -DecD fnest(nat**) : nat* -[visit_id _] not free -[check_dims] j k l n -[visit_exp n^(i - ;; test.spectec - def $fnest{i : nat, j : nat, `k*` : nat*, `n**` : nat**, `l*` : nat*}(n^(i - ;; test.spectec - def $f{syntax X, x : X}(syntax X, x) = x -[check_dims] X Y -DecD g(def $h(syntax X, X : X) : X, syntax Y, Y : Y) : Y -[visit_id X] not free -[visit_id Y] not free -[check_dims] y -[visit_exp y] -[visit_id y] -[visit_exp $h(syntax Y, y)] -[visit_exp y] -[visit_id y] not free -=> - ;; test.spectec - def $g{def $h(syntax X, X : X) : X, syntax Y, y : Y}(def $h, syntax Y, y) = $h(syntax Y, y) -[check_dims] -DecD x : nat -[check_dims] -[visit_exp ($g(def $f, syntax nat, 1) + $g(def $f, syntax nat, 2))] -[visit_exp $g(def $f, syntax nat, 1)] -[visit_exp 1] -[visit_exp $g(def $f, syntax nat, 2)] -[visit_exp 2] -=> - ;; test.spectec - def $x = ($g(def $f, syntax nat, 1) + $g(def $f, syntax nat, 2)) -[check_dims] -[check_dims] -[check_dims] int -DecD pppp(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD pppm(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD ppmp(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD ppmm(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD pmpp(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD pmpm(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD pmmp(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD pmmm(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD mppp(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD mppm(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD mpmp(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD mpmm(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD mmpp(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD mmpm(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD mmmp(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] int -DecD mmmm(int : int, int : int) : int -[visit_id int] not free -[visit_id int] not free -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $pppp{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $pppp{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $pppm{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $pppm{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $ppmp{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $ppmp{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $ppmm{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $ppmm{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $pmpp{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $pmpp{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $pmpm{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $pmpm{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $pmmp{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $pmmp{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $pmmm{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $pmmm{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mppp{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mppp{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mppm{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mppm{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mpmp{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mpmp{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mpmm{n : nat, m : nat}(- (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mpmm{n : nat, m : nat}(+ (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mmpp{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mmpp{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mmpm{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mmpm{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mmmp{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mmmp{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (- (n : nat <:> int) + - (m : nat <:> int))] -[visit_exp - (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp - (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mmmm{n : nat, m : nat}(- (n : nat <:> int), - (m : nat <:> int)) = (- (n : nat <:> int) + - (m : nat <:> int)) -[check_dims] m n -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] -[visit_exp (+ (n : nat <:> int) + + (m : nat <:> int))] -[visit_exp + (n : nat <:> int)] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp + (m : nat <:> int)] -[visit_exp (m : nat <:> int)] -[visit_exp m] -[visit_id m] not free -=> - ;; test.spectec - def $mmmm{n : nat, m : nat}(+ (n : nat <:> int), + (m : nat <:> int)) = (+ (n : nat <:> int) + + (m : nat <:> int)) -[check_dims] int -[visit_id int] not free -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp + (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp + (7 : nat <:> int)] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp - (7 : nat <:> int)] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[check_dims] int_1 int_2 val -DecD eq(int_1 : int, int_2 : int, val : val(int_1)) : val(int_2) -[visit_id int_1] not free -[visit_id int_2] not free -[visit_id val] not free -[visit_exp int_1] -[visit_id int_1] not free -[visit_exp int_2] -[visit_id int_2] not free -[check_dims] x -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val((1 : nat <:> int))}((1 : nat <:> int), (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $pppp((3 : nat <:> int), (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($pppp((3 : nat <:> int), (4 : nat <:> int)))}($pppp((3 : nat <:> int), (4 : nat <:> int)), (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $pppp(- (3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (7 : nat <:> int)] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($pppp(- (3 : nat <:> int), - (4 : nat <:> int)))}($pppp(- (3 : nat <:> int), - (4 : nat <:> int)), - (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $pppm((3 : nat <:> int), (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($pppm((3 : nat <:> int), (4 : nat <:> int)))}($pppm((3 : nat <:> int), (4 : nat <:> int)), - (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $pppm(- (3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($pppm(- (3 : nat <:> int), - (4 : nat <:> int)))}($pppm(- (3 : nat <:> int), - (4 : nat <:> int)), (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $ppmp((3 : nat <:> int), (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($ppmp((3 : nat <:> int), (4 : nat <:> int)))}($ppmp((3 : nat <:> int), (4 : nat <:> int)), (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $ppmp(- (3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($ppmp(- (3 : nat <:> int), - (4 : nat <:> int)))}($ppmp(- (3 : nat <:> int), - (4 : nat <:> int)), - (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $ppmm((3 : nat <:> int), (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (7 : nat <:> int)] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($ppmm((3 : nat <:> int), (4 : nat <:> int)))}($ppmm((3 : nat <:> int), (4 : nat <:> int)), - (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $ppmm(- (3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($ppmm(- (3 : nat <:> int), - (4 : nat <:> int)))}($ppmm(- (3 : nat <:> int), - (4 : nat <:> int)), (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $pmpp((3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($pmpp((3 : nat <:> int), - (4 : nat <:> int)))}($pmpp((3 : nat <:> int), - (4 : nat <:> int)), (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $pmpp(- (3 : nat <:> int), (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (7 : nat <:> int)] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($pmpp(- (3 : nat <:> int), (4 : nat <:> int)))}($pmpp(- (3 : nat <:> int), (4 : nat <:> int)), - (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $pmpm((3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($pmpm((3 : nat <:> int), - (4 : nat <:> int)))}($pmpm((3 : nat <:> int), - (4 : nat <:> int)), - (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $pmpm(- (3 : nat <:> int), (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($pmpm(- (3 : nat <:> int), (4 : nat <:> int)))}($pmpm(- (3 : nat <:> int), (4 : nat <:> int)), (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $pmmp((3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($pmmp((3 : nat <:> int), - (4 : nat <:> int)))}($pmmp((3 : nat <:> int), - (4 : nat <:> int)), (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $pmmp(- (3 : nat <:> int), (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($pmmp(- (3 : nat <:> int), (4 : nat <:> int)))}($pmmp(- (3 : nat <:> int), (4 : nat <:> int)), - (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $pmmm((3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (7 : nat <:> int)] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($pmmm((3 : nat <:> int), - (4 : nat <:> int)))}($pmmm((3 : nat <:> int), - (4 : nat <:> int)), - (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $pmmm(- (3 : nat <:> int), (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($pmmm(- (3 : nat <:> int), (4 : nat <:> int)))}($pmmm(- (3 : nat <:> int), (4 : nat <:> int)), (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mppp((3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (7 : nat <:> int)] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mppp((3 : nat <:> int), - (4 : nat <:> int)))}($mppp((3 : nat <:> int), - (4 : nat <:> int)), - (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mppp(- (3 : nat <:> int), (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mppp(- (3 : nat <:> int), (4 : nat <:> int)))}($mppp(- (3 : nat <:> int), (4 : nat <:> int)), (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mppm((3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mppm((3 : nat <:> int), - (4 : nat <:> int)))}($mppm((3 : nat <:> int), - (4 : nat <:> int)), (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mppm(- (3 : nat <:> int), (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mppm(- (3 : nat <:> int), (4 : nat <:> int)))}($mppm(- (3 : nat <:> int), (4 : nat <:> int)), - (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mpmp((3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mpmp((3 : nat <:> int), - (4 : nat <:> int)))}($mpmp((3 : nat <:> int), - (4 : nat <:> int)), - (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mpmp(- (3 : nat <:> int), (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mpmp(- (3 : nat <:> int), (4 : nat <:> int)))}($mpmp(- (3 : nat <:> int), (4 : nat <:> int)), (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mpmm((3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mpmm((3 : nat <:> int), - (4 : nat <:> int)))}($mpmm((3 : nat <:> int), - (4 : nat <:> int)), (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mpmm(- (3 : nat <:> int), (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (7 : nat <:> int)] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mpmm(- (3 : nat <:> int), (4 : nat <:> int)))}($mpmm(- (3 : nat <:> int), (4 : nat <:> int)), - (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mmpp((3 : nat <:> int), (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (7 : nat <:> int)] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mmpp((3 : nat <:> int), (4 : nat <:> int)))}($mmpp((3 : nat <:> int), (4 : nat <:> int)), - (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mmpp(- (3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mmpp(- (3 : nat <:> int), - (4 : nat <:> int)))}($mmpp(- (3 : nat <:> int), - (4 : nat <:> int)), (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mmpm((3 : nat <:> int), (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mmpm((3 : nat <:> int), (4 : nat <:> int)))}($mmpm((3 : nat <:> int), (4 : nat <:> int)), (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mmpm(- (3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mmpm(- (3 : nat <:> int), - (4 : nat <:> int)))}($mmpm(- (3 : nat <:> int), - (4 : nat <:> int)), - (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mmmp((3 : nat <:> int), (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mmmp((3 : nat <:> int), (4 : nat <:> int)))}($mmmp((3 : nat <:> int), (4 : nat <:> int)), - (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mmmp(- (3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mmmp(- (3 : nat <:> int), - (4 : nat <:> int)))}($mmmp(- (3 : nat <:> int), - (4 : nat <:> int)), (1 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mmmm((3 : nat <:> int), (4 : nat <:> int))] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mmmm((3 : nat <:> int), (4 : nat <:> int)))}($mmmm((3 : nat <:> int), (4 : nat <:> int)), (7 : nat <:> int), x) = x -[check_dims] x -[visit_exp $mmmm(- (3 : nat <:> int), - (4 : nat <:> int))] -[visit_exp - (3 : nat <:> int)] -[visit_exp (3 : nat <:> int)] -[visit_exp 3] -[visit_exp - (4 : nat <:> int)] -[visit_exp (4 : nat <:> int)] -[visit_exp 4] -[visit_exp - (7 : nat <:> int)] -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -=> - ;; test.spectec - def $eq{x : val($mmmm(- (3 : nat <:> int), - (4 : nat <:> int)))}($mmmm(- (3 : nat <:> int), - (4 : nat <:> int)), - (7 : nat <:> int), x) = x -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -dims \ = -[visit_exp 1] -[check_dims] -dims \ = -[visit_exp 2] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -dims \ = -[visit_exp 1] -[check_dims] -dims \ = -[visit_exp 2] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -dims \ = -[visit_exp 1] -[check_dims] -dims \ = -[visit_exp 2] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -dims \ = -[visit_exp 1] -[check_dims] -dims \ = -[visit_exp 2] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -dims \ = -[visit_exp 1] -[check_dims] -dims \ = -[visit_exp 2] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -dims \ = -[visit_exp 1] -[check_dims] -dims \ = -[visit_exp 2] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -dims \ = -[visit_exp 1] -[check_dims] -dims \ = -[visit_exp 2] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -dims \ = -[visit_exp 1] -[check_dims] -dims \ = -[visit_exp 2] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 255] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 255] -ps' = -[check_dims] -[check_dims] -[visit_exp 1] -[visit_exp 26] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 65] -ps' = -[check_dims] -[check_dims] -[visit_exp 65] -[visit_exp 255] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 255] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 255] -ps' = -[check_dims] -[check_dims] -[visit_exp 1] -[visit_exp 26] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 127] -[check_dims] -dims \ = -[visit_exp 255] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 127] -[check_dims] -dims \ = -[visit_exp 255] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 5] -[check_dims] -dims \ = -[visit_exp 10] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 127] -[check_dims] -dims \ = -[visit_exp 255] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 127] -[check_dims] -dims \ = -[visit_exp 255] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 5] -[check_dims] -dims \ = -[visit_exp 10] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 255] -[check_dims] -[visit_exp 0] -[visit_exp 127] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 255] -[check_dims] -[visit_exp 0] -[visit_exp 127] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 10] -[check_dims] -[visit_exp 0] -[visit_exp 5] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 255] -[check_dims] -[visit_exp 0] -[visit_exp 127] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 255] -[check_dims] -[visit_exp 0] -[visit_exp 127] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 10] -[check_dims] -[visit_exp 0] -[visit_exp 5] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 31] -[check_dims] -[visit_exp 128] -[visit_exp 143] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 31] -[check_dims] -[visit_exp 128] -[visit_exp 143] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 5] -[check_dims] -[visit_exp 0] -[visit_exp 5] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 31] -[check_dims] -[visit_exp 128] -[visit_exp 143] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 31] -[check_dims] -[visit_exp 128] -[visit_exp 143] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 5] -[check_dims] -[visit_exp 0] -[visit_exp 5] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 31] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -[visit_exp 127] -[visit_exp 143] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 31] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -[visit_exp 90] -[visit_exp 143] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -dims \ = -[visit_exp 1] -[check_dims] -[visit_exp 0] -[visit_exp 9] -[check_dims] -[visit_exp 10] -[visit_exp 35] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -dims \ = -[visit_exp 0] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -[visit_exp 0] -[visit_exp 9] -[check_dims] -[visit_exp 10] -[visit_exp 35] -[check_dims] -dims \ = -[visit_exp 0] -[check_dims] -dims \ = -[visit_exp 0] -[] nat* nat* -[] nat* nat* -[] nat* nat* -[] nat* nat* -[] nat* nat^j -[] nat** nat^k^j -[] nat* nat^k -[] nat* nat^j -[] nat* nat^j -[] nat* nat^j -[] nat** nat^k^j -[] nat* nat^k -[] nat* nat^k cat: test.tex: No such file or directory [1] ``` @@ -3547,83279 +14,6 @@ $ (../src/exe-spectec/main.exe ../../../../specification/wasm-3.0/*.spectec -v - spectec 0.5 generator == Parsing... == Elaboration... -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] nat -DecD min(nat : nat, nat : nat) : nat -[visit_id nat] not free -[visit_id nat] not free -[check_dims] i j -[visit_exp i] -[visit_id i] -[visit_exp j] -[visit_id j] -[visit_exp i] -[visit_id i] not free -[visit_exp (i <= j)] -[visit_exp i] -[visit_id i] not free -[visit_exp j] -[visit_id j] not free -=> - ;; ../../../../specification/wasm-3.0/0.2-aux.num.spectec - def $min{i : nat, j : nat}(i, j) = i - -- if (i <= j) -[check_dims] i j -[visit_exp i] -[visit_id i] -[visit_exp j] -[visit_id j] -[visit_exp j] -[visit_id j] not free -=> - ;; ../../../../specification/wasm-3.0/0.2-aux.num.spectec - def $min{i : nat, j : nat}(i, j) = j - -- otherwise -[check_dims] _ -DecD sum(nat*) : nat -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/0.2-aux.num.spectec - def $sum([]) = 0 -[check_dims] n n' -[visit_exp [n] ++ n'*{n' <- `n'*`}] -[visit_exp [n]] -[visit_exp n] -[visit_id n] -[visit_exp n'*{n' <- `n'*`}] -[scope_enter n'] -[visit_exp n'] -[visit_id n'] not free -[visit_id n'] not free -[scope_exit n'] -[visit_exp `n'*`] -[visit_id n'*] no dims -[visit_id n'*] -[visit_exp (n + $sum(n'*{n' <- `n'*`}))] -[visit_exp n] -[visit_id n] not free -[visit_exp $sum(n'*{n' <- `n'*`})] -[visit_exp n'*{n' <- `n'*`}] -[scope_enter n'] -[visit_exp n'] -[visit_id n'] not free -[visit_id n'] not free -[scope_exit n'] -[visit_exp `n'*`] -[visit_id n'*] not free -[visit_id n'*] no dims -=> - ;; ../../../../specification/wasm-3.0/0.2-aux.num.spectec - def $sum{n : n, `n'*` : n*}([n] ++ n'*{n' <- `n'*`}) = (n + $sum(n'*{n' <- `n'*`})) -[check_dims] _ -DecD prod(nat*) : nat -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp 1] -=> - ;; ../../../../specification/wasm-3.0/0.2-aux.num.spectec - def $prod([]) = 1 -[check_dims] n n' -[visit_exp [n] ++ n'*{n' <- `n'*`}] -[visit_exp [n]] -[visit_exp n] -[visit_id n] -[visit_exp n'*{n' <- `n'*`}] -[scope_enter n'] -[visit_exp n'] -[visit_id n'] not free -[visit_id n'] not free -[scope_exit n'] -[visit_exp `n'*`] -[visit_id n'*] no dims -[visit_id n'*] -[visit_exp (n * $prod(n'*{n' <- `n'*`}))] -[visit_exp n] -[visit_id n] not free -[visit_exp $prod(n'*{n' <- `n'*`})] -[visit_exp n'*{n' <- `n'*`}] -[scope_enter n'] -[visit_exp n'] -[visit_id n'] not free -[visit_id n'] not free -[scope_exit n'] -[visit_exp `n'*`] -[visit_id n'*] not free -[visit_id n'*] no dims -=> - ;; ../../../../specification/wasm-3.0/0.2-aux.num.spectec - def $prod{n : n, `n'*` : n*}([n] ++ n'*{n' <- `n'*`}) = (n * $prod(n'*{n' <- `n'*`})) -[check_dims] X _ -DecD opt_(syntax X, X*) : X? -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp ?()] -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $opt_{syntax X}(syntax X, []) = ?() -[check_dims] w -[visit_exp [w]] -[visit_exp w] -[visit_id w] -[visit_exp ?(w)] -[visit_exp w] -[visit_id w] not free -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $opt_{syntax X, w : X}(syntax X, [w]) = ?(w) -[check_dims] X _ -DecD concat_(syntax X, X**) : X* -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $concat_{syntax X}(syntax X, []) = [] -[check_dims] w w' -[visit_exp [w*{w <- `w*`}] ++ w'*{w' <- `w'*`}*{`w'*` <- `w'**`}] -[visit_exp [w*{w <- `w*`}]] -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] no dims -[visit_id w*] -[visit_exp w'*{w' <- `w'*`}*{`w'*` <- `w'**`}] -[scope_enter w'*] -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] not free -[visit_id w'*] no dims -[visit_id w'*] not free -[visit_id w'*] no dims -[scope_exit w'*] -[visit_exp `w'**`] -[visit_id w'**] no dims -[visit_id w'**] -[visit_exp w*{w <- `w*`} ++ $concat_(syntax X, w'*{w' <- `w'*`}*{`w'*` <- `w'**`})] -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] not free -[visit_id w*] no dims -[visit_exp $concat_(syntax X, w'*{w' <- `w'*`}*{`w'*` <- `w'**`})] -[visit_exp w'*{w' <- `w'*`}*{`w'*` <- `w'**`}] -[scope_enter w'*] -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] not free -[visit_id w'*] no dims -[visit_id w'*] not free -[visit_id w'*] no dims -[scope_exit w'*] -[visit_exp `w'**`] -[visit_id w'**] not free -[visit_id w'**] no dims -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $concat_{syntax X, `w*` : X*, `w'**` : X**}(syntax X, [w*{w <- `w*`}] ++ w'*{w' <- `w'*`}*{`w'*` <- `w'**`}) = w*{w <- `w*`} ++ $concat_(syntax X, w'*{w' <- `w'*`}*{`w'*` <- `w'**`}) -[check_dims] X _ nat -DecD concatn_(syntax X, X**, nat : nat) : X* -[visit_id _] not free -[visit_id nat] not free -[check_dims] n -[visit_exp []] -[visit_exp n] -[visit_id n] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $concatn_{syntax X, n : n}(syntax X, [], n) = [] -[check_dims] n w w' -[visit_exp [w^n{w <- `w*`}] ++ w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}] -[visit_exp [w^n{w <- `w*`}]] -[visit_exp w^n{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp n] -[visit_id n] -[visit_exp `w*`] -[visit_id w*] no dims -[visit_id w*] -[visit_exp w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}] -[scope_enter w'*] -[visit_exp w'^n{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp n] -[visit_id n] not free -[visit_exp `w'*`] -[visit_id w'*] not free -[visit_id w'*] no dims -[visit_id w'*] not free -[visit_id w'*] no dims -[scope_exit w'*] -[visit_exp `w'**`] -[visit_id w'**] no dims -[visit_id w'**] -[visit_exp n] -[visit_id n] not free -[visit_exp w^n{w <- `w*`} ++ $concatn_(syntax X, w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}, n)] -[visit_exp w^n{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp n] -[visit_id n] not free -[visit_exp `w*`] -[visit_id w*] not free -[visit_id w*] no dims -[visit_exp $concatn_(syntax X, w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}, n)] -[visit_exp w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}] -[scope_enter w'*] -[visit_exp w'^n{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp n] -[visit_id n] not free -[visit_exp `w'*`] -[visit_id w'*] not free -[visit_id w'*] no dims -[visit_id w'*] not free -[visit_id w'*] no dims -[scope_exit w'*] -[visit_exp `w'**`] -[visit_id w'**] not free -[visit_id w'**] no dims -[visit_exp n] -[visit_id n] not free -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $concatn_{syntax X, n : n, `w*` : X*, `w'**` : X**}(syntax X, [w^n{w <- `w*`}] ++ w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}, n) = w^n{w <- `w*`} ++ $concatn_(syntax X, w'^n{w' <- `w'*`}*{`w'*` <- `w'**`}, n) -[check_dims] X _ -DecD concatopt_(syntax X, X?*) : X* -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $concatopt_{syntax X}(syntax X, []) = [] -[check_dims] w w' -[visit_exp [w?{w <- `w?`}] ++ w'?{w' <- `w'?`}*{`w'?` <- `w'?*`}] -[visit_exp [w?{w <- `w?`}]] -[visit_exp w?{w <- `w?`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w?`] -[visit_id w?] no dims -[visit_id w?] -[visit_exp w'?{w' <- `w'?`}*{`w'?` <- `w'?*`}] -[scope_enter w'?] -[visit_exp w'?{w' <- `w'?`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'?`] -[visit_id w'?] not free -[visit_id w'?] no dims -[visit_id w'?] not free -[visit_id w'?] no dims -[scope_exit w'?] -[visit_exp `w'?*`] -[visit_id w'?*] no dims -[visit_id w'?*] -[visit_exp lift(w?{w <- `w?`}) ++ $concat_(syntax X, lift(w'?{w' <- `w'?`})*{`w'?` <- `w'?*`})] -[visit_exp lift(w?{w <- `w?`})] -[visit_exp w?{w <- `w?`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w?`] -[visit_id w?] not free -[visit_id w?] no dims -[visit_exp $concat_(syntax X, lift(w'?{w' <- `w'?`})*{`w'?` <- `w'?*`})] -[visit_exp lift(w'?{w' <- `w'?`})*{`w'?` <- `w'?*`}] -[scope_enter w'?] -[visit_exp lift(w'?{w' <- `w'?`})] -[visit_exp w'?{w' <- `w'?`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'?`] -[visit_id w'?] not free -[visit_id w'?] no dims -[visit_id w'?] not free -[visit_id w'?] no dims -[scope_exit w'?] -[visit_exp `w'?*`] -[visit_id w'?*] not free -[visit_id w'?*] no dims -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $concatopt_{syntax X, `w?` : X?, `w'?*` : X?*}(syntax X, [w?{w <- `w?`}] ++ w'?{w' <- `w'?`}*{`w'?` <- `w'?*`}) = lift(w?{w <- `w?`}) ++ $concat_(syntax X, lift(w'?{w' <- `w'?`})*{`w'?` <- `w'?*`}) -[check_dims] X _ -DecD inv_concat_(syntax X, X*) : X** -[visit_id _] not free -[check_dims] X _ nat -DecD inv_concatn_(syntax X, nat : nat, X*) : X** -[visit_id nat] not free -[visit_id _] not free -[check_dims] X _ -DecD disjoint_(syntax X, X*) : bool -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp true] -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $disjoint_{syntax X}(syntax X, []) = true -[check_dims] w w' -[visit_exp [w] ++ w'*{w' <- `w'*`}] -[visit_exp [w]] -[visit_exp w] -[visit_id w] -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] no dims -[visit_id w'*] -[visit_exp (~ (w <- w'*{w' <- `w'*`}) /\ $disjoint_(syntax X, w'*{w' <- `w'*`}))] -[visit_exp ~ (w <- w'*{w' <- `w'*`})] -[visit_exp (w <- w'*{w' <- `w'*`})] -[visit_exp w] -[visit_id w] not free -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] not free -[visit_id w'*] no dims -[visit_exp $disjoint_(syntax X, w'*{w' <- `w'*`})] -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] not free -[visit_id w'*] no dims -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $disjoint_{syntax X, w : X, `w'*` : X*}(syntax X, [w] ++ w'*{w' <- `w'*`}) = (~ (w <- w'*{w' <- `w'*`}) /\ $disjoint_(syntax X, w'*{w' <- `w'*`})) -[check_dims] X _ -DecD setminus_(syntax X, X*, X*) : X* -[visit_id _] not free -[visit_id _] not free -[check_dims] X _ -DecD setminus1_(syntax X, X : X, X*) : X* -[visit_id X] not free -[visit_id _] not free -[check_dims] w -[visit_exp []] -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] no dims -[visit_id w*] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $setminus_{syntax X, `w*` : X*}(syntax X, [], w*{w <- `w*`}) = [] -[check_dims] w w' w_1 -[visit_exp [w_1] ++ w'*{w' <- `w'*`}] -[visit_exp [w_1]] -[visit_exp w_1] -[visit_id w_1] -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] no dims -[visit_id w'*] -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] no dims -[visit_id w*] -[visit_exp $setminus1_(syntax X, w_1, w*{w <- `w*`}) ++ $setminus_(syntax X, w'*{w' <- `w'*`}, w*{w <- `w*`})] -[visit_exp $setminus1_(syntax X, w_1, w*{w <- `w*`})] -[visit_exp w_1] -[visit_id w_1] not free -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] not free -[visit_id w*] no dims -[visit_exp $setminus_(syntax X, w'*{w' <- `w'*`}, w*{w <- `w*`})] -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] not free -[visit_id w'*] no dims -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] not free -[visit_id w*] no dims -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $setminus_{syntax X, w_1 : X, `w'*` : X*, `w*` : X*}(syntax X, [w_1] ++ w'*{w' <- `w'*`}, w*{w <- `w*`}) = $setminus1_(syntax X, w_1, w*{w <- `w*`}) ++ $setminus_(syntax X, w'*{w' <- `w'*`}, w*{w <- `w*`}) -[check_dims] w -[visit_exp w] -[visit_id w] -[visit_exp []] -[visit_exp [w]] -[visit_exp w] -[visit_id w] not free -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $setminus1_{syntax X, w : X}(syntax X, w, []) = [w] -[check_dims] w w' w_1 -[visit_exp w] -[visit_id w] -[visit_exp [w_1] ++ w'*{w' <- `w'*`}] -[visit_exp [w_1]] -[visit_exp w_1] -[visit_id w_1] -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] no dims -[visit_id w'*] -[visit_exp []] -[visit_exp (w = w_1)] -[visit_exp w] -[visit_id w] not free -[visit_exp w_1] -[visit_id w_1] not free -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $setminus1_{syntax X, w : X, w_1 : X, `w'*` : X*}(syntax X, w, [w_1] ++ w'*{w' <- `w'*`}) = [] - -- if (w = w_1) -[check_dims] w w' w_1 -[visit_exp w] -[visit_id w] -[visit_exp [w_1] ++ w'*{w' <- `w'*`}] -[visit_exp [w_1]] -[visit_exp w_1] -[visit_id w_1] -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] no dims -[visit_id w'*] -[visit_exp $setminus1_(syntax X, w, w'*{w' <- `w'*`})] -[visit_exp w] -[visit_id w] not free -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] not free -[visit_id w'*] no dims -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $setminus1_{syntax X, w : X, w_1 : X, `w'*` : X*}(syntax X, w, [w_1] ++ w'*{w' <- `w'*`}) = $setminus1_(syntax X, w, w'*{w' <- `w'*`}) - -- otherwise -[check_dims] X _ -DecD setproduct_(syntax X, X**) : X** -[visit_id _] not free -[check_dims] X _ -DecD setproduct1_(syntax X, X*, X**) : X** -[visit_id _] not free -[visit_id _] not free -[check_dims] X _ -DecD setproduct2_(syntax X, X : X, X**) : X** -[visit_id X] not free -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp [[]]] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $setproduct_{syntax X}(syntax X, []) = [[]] -[check_dims] w w_1 -[visit_exp [w_1*{w_1 <- `w_1*`}] ++ w*{w <- `w*`}*{`w*` <- `w**`}] -[visit_exp [w_1*{w_1 <- `w_1*`}]] -[visit_exp w_1*{w_1 <- `w_1*`}] -[scope_enter w_1] -[visit_exp w_1] -[visit_id w_1] not free -[visit_id w_1] not free -[scope_exit w_1] -[visit_exp `w_1*`] -[visit_id w_1*] no dims -[visit_id w_1*] -[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] -[scope_enter w*] -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] not free -[visit_id w*] no dims -[visit_id w*] not free -[visit_id w*] no dims -[scope_exit w*] -[visit_exp `w**`] -[visit_id w**] no dims -[visit_id w**] -[visit_exp $setproduct1_(syntax X, w_1*{w_1 <- `w_1*`}, $setproduct_(syntax X, w*{w <- `w*`}*{`w*` <- `w**`}))] -[visit_exp w_1*{w_1 <- `w_1*`}] -[scope_enter w_1] -[visit_exp w_1] -[visit_id w_1] not free -[visit_id w_1] not free -[scope_exit w_1] -[visit_exp `w_1*`] -[visit_id w_1*] not free -[visit_id w_1*] no dims -[visit_exp $setproduct_(syntax X, w*{w <- `w*`}*{`w*` <- `w**`})] -[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] -[scope_enter w*] -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] not free -[visit_id w*] no dims -[visit_id w*] not free -[visit_id w*] no dims -[scope_exit w*] -[visit_exp `w**`] -[visit_id w**] not free -[visit_id w**] no dims -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $setproduct_{syntax X, `w_1*` : X*, `w**` : X**}(syntax X, [w_1*{w_1 <- `w_1*`}] ++ w*{w <- `w*`}*{`w*` <- `w**`}) = $setproduct1_(syntax X, w_1*{w_1 <- `w_1*`}, $setproduct_(syntax X, w*{w <- `w*`}*{`w*` <- `w**`})) -[check_dims] w -[visit_exp []] -[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] -[scope_enter w*] -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] not free -[visit_id w*] no dims -[visit_id w*] not free -[visit_id w*] no dims -[scope_exit w*] -[visit_exp `w**`] -[visit_id w**] no dims -[visit_id w**] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $setproduct1_{syntax X, `w**` : X**}(syntax X, [], w*{w <- `w*`}*{`w*` <- `w**`}) = [] -[check_dims] w w' w_1 -[visit_exp [w_1] ++ w'*{w' <- `w'*`}] -[visit_exp [w_1]] -[visit_exp w_1] -[visit_id w_1] -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] no dims -[visit_id w'*] -[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] -[scope_enter w*] -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] not free -[visit_id w*] no dims -[visit_id w*] not free -[visit_id w*] no dims -[scope_exit w*] -[visit_exp `w**`] -[visit_id w**] no dims -[visit_id w**] -[visit_exp $setproduct2_(syntax X, w_1, w*{w <- `w*`}*{`w*` <- `w**`}) ++ $setproduct1_(syntax X, w'*{w' <- `w'*`}, w*{w <- `w*`}*{`w*` <- `w**`})] -[visit_exp $setproduct2_(syntax X, w_1, w*{w <- `w*`}*{`w*` <- `w**`})] -[visit_exp w_1] -[visit_id w_1] not free -[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] -[scope_enter w*] -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] not free -[visit_id w*] no dims -[visit_id w*] not free -[visit_id w*] no dims -[scope_exit w*] -[visit_exp `w**`] -[visit_id w**] not free -[visit_id w**] no dims -[visit_exp $setproduct1_(syntax X, w'*{w' <- `w'*`}, w*{w <- `w*`}*{`w*` <- `w**`})] -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] not free -[visit_id w'*] no dims -[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] -[scope_enter w*] -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] not free -[visit_id w*] no dims -[visit_id w*] not free -[visit_id w*] no dims -[scope_exit w*] -[visit_exp `w**`] -[visit_id w**] not free -[visit_id w**] no dims -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $setproduct1_{syntax X, w_1 : X, `w'*` : X*, `w**` : X**}(syntax X, [w_1] ++ w'*{w' <- `w'*`}, w*{w <- `w*`}*{`w*` <- `w**`}) = $setproduct2_(syntax X, w_1, w*{w <- `w*`}*{`w*` <- `w**`}) ++ $setproduct1_(syntax X, w'*{w' <- `w'*`}, w*{w <- `w*`}*{`w*` <- `w**`}) -[check_dims] w_1 -[visit_exp w_1] -[visit_id w_1] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $setproduct2_{syntax X, w_1 : X}(syntax X, w_1, []) = [] -[check_dims] w w' w_1 -[visit_exp w_1] -[visit_id w_1] -[visit_exp [w'*{w' <- `w'*`}] ++ w*{w <- `w*`}*{`w*` <- `w**`}] -[visit_exp [w'*{w' <- `w'*`}]] -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] no dims -[visit_id w'*] -[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] -[scope_enter w*] -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] not free -[visit_id w*] no dims -[visit_id w*] not free -[visit_id w*] no dims -[scope_exit w*] -[visit_exp `w**`] -[visit_id w**] no dims -[visit_id w**] -[visit_exp [[w_1] ++ w'*{w' <- `w'*`}] ++ $setproduct2_(syntax X, w_1, w*{w <- `w*`}*{`w*` <- `w**`})] -[visit_exp [[w_1] ++ w'*{w' <- `w'*`}]] -[visit_exp [w_1] ++ w'*{w' <- `w'*`}] -[visit_exp [w_1]] -[visit_exp w_1] -[visit_id w_1] not free -[visit_exp w'*{w' <- `w'*`}] -[scope_enter w'] -[visit_exp w'] -[visit_id w'] not free -[visit_id w'] not free -[scope_exit w'] -[visit_exp `w'*`] -[visit_id w'*] not free -[visit_id w'*] no dims -[visit_exp $setproduct2_(syntax X, w_1, w*{w <- `w*`}*{`w*` <- `w**`})] -[visit_exp w_1] -[visit_id w_1] not free -[visit_exp w*{w <- `w*`}*{`w*` <- `w**`}] -[scope_enter w*] -[visit_exp w*{w <- `w*`}] -[scope_enter w] -[visit_exp w] -[visit_id w] not free -[visit_id w] not free -[scope_exit w] -[visit_exp `w*`] -[visit_id w*] not free -[visit_id w*] no dims -[visit_id w*] not free -[visit_id w*] no dims -[scope_exit w*] -[visit_exp `w**`] -[visit_id w**] not free -[visit_id w**] no dims -=> - ;; ../../../../specification/wasm-3.0/0.3-aux.seq.spectec - def $setproduct2_{syntax X, w_1 : X, `w'*` : X*, `w**` : X**}(syntax X, w_1, [w'*{w' <- `w'*`}] ++ w*{w <- `w*`}*{`w*` <- `w**`}) = [[w_1] ++ w'*{w' <- `w'*`}] ++ $setproduct2_(syntax X, w_1, w*{w <- `w*`}*{`w*` <- `w**`}) -[check_dims] -DecD ND : bool -[check_dims] -[check_dims] -[visit_exp 0] -[check_dims] -[visit_exp 1] -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 255] -[check_dims] N -[check_dims] N -[visit_exp 0] -[visit_exp ((((2 ^ N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((2 ^ N) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((2 ^ N) : nat <:> int)] -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp N] -[visit_id N] -[check_dims] N -[check_dims] N -[visit_exp - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[check_dims] N -[visit_exp (0 : nat <:> int)] -[visit_exp 0] -[check_dims] N -[visit_exp + (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp (+ ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))] -[visit_exp + ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp N] -[visit_id N] -[check_dims] N -[visit_exp N] -[visit_id N] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] N -DecD signif(N : N) : nat -[visit_id N] not free -[check_dims] -[visit_exp 32] -[visit_exp 23] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $signif(32) = 23 -[check_dims] -[visit_exp 64] -[visit_exp 52] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $signif(64) = 52 -[check_dims] N -DecD expon(N : N) : nat -[visit_id N] not free -[check_dims] -[visit_exp 32] -[visit_exp 8] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $expon(32) = 8 -[check_dims] -[visit_exp 64] -[visit_exp 11] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $expon(64) = 11 -[check_dims] N -DecD M(N : N) : nat -[visit_id N] not free -[check_dims] N -[visit_exp N] -[visit_id N] -[visit_exp $signif(N)] -[visit_exp N] -[visit_id N] not free -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $M{N : N}(N) = $signif(N) -[check_dims] N -DecD E(N : N) : nat -[visit_id N] not free -[check_dims] N -[visit_exp N] -[visit_id N] -[visit_exp $expon(N)] -[visit_exp N] -[visit_id N] not free -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $E{N : N}(N) = $expon(N) -[check_dims] N -[check_dims] N -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] ---- 1 --- -[check_dims] N ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] N -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] ---- 1 --- -[check_dims] N ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp N] -[visit_id N] -[check_dims] -[check_dims] N -[check_dims] N -[scope_enter m] -[visit_id m] not free -[visit_id m] no dims -[scope_enter exp] -[visit_id exp] not free -[visit_id exp] no dims -[scope_exit exp] -[scope_exit m] ---- 1 --- -[check_dims] N exp m ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ((m < (2 ^ $M(N))) /\ ((((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) <= exp) /\ (exp <= (((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int)))))] -[visit_exp (m < (2 ^ $M(N)))] -[visit_exp m] -[visit_id m] not free -[visit_exp (2 ^ $M(N))] -[visit_exp 2] -[visit_exp $M(N)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp ((((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) <= exp) /\ (exp <= (((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))))] -[visit_exp (((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) <= exp)] -[visit_exp ((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))] -[visit_exp (2 : nat <:> int)] -[visit_exp 2] -[visit_exp ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (($E(N) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ($E(N) : nat <:> int)] -[visit_exp $E(N)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp exp] -[visit_id exp] not free -[visit_exp (exp <= (((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int)))] -[visit_exp exp] -[visit_id exp] not free -[visit_exp (((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (($E(N) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ($E(N) : nat <:> int)] -[visit_exp $E(N)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[check_dims] N -[scope_enter m] -[visit_id m] not free -[visit_id m] no dims -[scope_exit m] ---- 1 --- -[check_dims] N exp m ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ((m < (2 ^ $M(N))) /\ (((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) = exp))] -[visit_exp (m < (2 ^ $M(N)))] -[visit_exp m] -[visit_id m] not free -[visit_exp (2 ^ $M(N))] -[visit_exp 2] -[visit_exp $M(N)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) = exp)] -[visit_exp ((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))] -[visit_exp (2 : nat <:> int)] -[visit_exp 2] -[visit_exp ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (($E(N) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ($E(N) : nat <:> int)] -[visit_exp $E(N)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp exp] -[visit_id exp] -[check_dims] N ---- 1 --- -[check_dims] N ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] N -[scope_enter m] -[visit_id m] not free -[visit_id m] no dims -[scope_exit m] ---- 1 --- -[check_dims] N m ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ((1 <= m) /\ (m < (2 ^ $M(N))))] -[visit_exp (1 <= m)] -[visit_exp 1] -[visit_exp m] -[visit_id m] not free -[visit_exp (m < (2 ^ $M(N)))] -[visit_exp m] -[visit_id m] not free -[visit_exp (2 ^ $M(N))] -[visit_exp 2] -[visit_exp $M(N)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp N] -[visit_id N] -[check_dims] -[check_dims] -[check_dims] N -DecD fzero(N : N) : fN(N) -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N -[visit_exp N] -[visit_id N] -[visit_exp `POS`_fN(`SUBNORM`_fNmag(0))] -[visit_exp (`SUBNORM`_fNmag(0))] -[visit_exp `SUBNORM`_fNmag(0)] -[visit_exp (0)] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fzero{N : N}(N) = `POS`_fN(`SUBNORM`_fNmag(0)) -[check_dims] N nat -DecD fnat(N : N, nat : nat) : fN(N) -[visit_id N] not free -[visit_id nat] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N n -[visit_exp N] -[visit_id N] -[visit_exp n] -[visit_id n] -[visit_exp `POS`_fN(`NORM`_fNmag(n, (0 : nat <:> int)))] -[visit_exp (`NORM`_fNmag(n, (0 : nat <:> int)))] -[visit_exp `NORM`_fNmag(n, (0 : nat <:> int))] -[visit_exp (n, (0 : nat <:> int))] -[visit_exp n] -[visit_id n] not free -[visit_exp (0 : nat <:> int)] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fnat{N : N, n : n}(N, n) = `POS`_fN(`NORM`_fNmag(n, (0 : nat <:> int))) -[check_dims] N -DecD fone(N : N) : fN(N) -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N -[visit_exp N] -[visit_id N] -[visit_exp `POS`_fN(`NORM`_fNmag(1, (0 : nat <:> int)))] -[visit_exp (`NORM`_fNmag(1, (0 : nat <:> int)))] -[visit_exp `NORM`_fNmag(1, (0 : nat <:> int))] -[visit_exp (1, (0 : nat <:> int))] -[visit_exp 1] -[visit_exp (0 : nat <:> int)] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fone{N : N}(N) = `POS`_fN(`NORM`_fNmag(1, (0 : nat <:> int))) -[check_dims] N -DecD canon_(N : N) : nat -[visit_id N] not free -[check_dims] N -[visit_exp N] -[visit_id N] -[visit_exp (2 ^ ((($signif(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp ((($signif(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (($signif(N) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ($signif(N) : nat <:> int)] -[visit_exp $signif(N)] -[visit_exp N] -[visit_id N] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $canon_{N : N}(N) = (2 ^ ((($signif(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) -[check_dims] N -[visit_exp N] -[visit_id N] -[check_dims] -[check_dims] -[check_dims] -[scope_enter X*] -[visit_id X*] not free -[visit_id X*] no dims -[scope_exit X*] ---- 1 --- -[check_dims] X ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (|X*{X <- `X*`}| < (2 ^ 32))] -[visit_exp |X*{X <- `X*`}|] -[visit_exp X*{X <- `X*`}] -[scope_enter X] -[visit_exp X] -[visit_id X] not free -[visit_id X] not free -[scope_exit X] -[visit_exp `X*`] -[visit_id X*] not free -[visit_id X*] no dims -[visit_exp (2 ^ 32)] -[visit_exp 2] -[visit_exp 32] -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 55295] -[check_dims] -[visit_exp 57344] -[visit_exp 1114111] -[check_dims] _ -DecD utf8(char*) : byte* -[visit_id _] not free -[check_dims] -[check_dims] -[scope_enter char*] -[visit_id char*] not free -[visit_id char*] no dims -[scope_exit char*] ---- 1 --- -[check_dims] char ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (|$utf8(char*{char <- `char*`})| < (2 ^ 32))] -[visit_exp |$utf8(char*{char <- `char*`})|] -[visit_exp $utf8(char*{char <- `char*`})] -[visit_exp char*{char <- `char*`}] -[scope_enter char] -[visit_exp char] -[visit_id char] not free -[visit_id char] not free -[scope_exit char] -[visit_exp `char*`] -[visit_id char*] not free -[visit_id char*] no dims -[visit_exp (2 ^ 32)] -[visit_exp 2] -[visit_exp 32] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[scope_enter funcidx] -[visit_id funcidx] not free -[visit_id funcidx] no dims -[scope_exit funcidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter globalidx] -[visit_id globalidx] not free -[visit_id globalidx] no dims -[scope_exit globalidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tableidx] -[visit_id tableidx] not free -[visit_id tableidx] no dims -[scope_exit tableidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_exit memidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tagidx] -[visit_id tagidx] not free -[visit_id tagidx] no dims -[scope_exit tagidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] _ -DecD funcsxx(externidx*) : typeidx* -[visit_id _] not free -[check_dims] _ -DecD globalsxx(externidx*) : globalidx* -[visit_id _] not free -[check_dims] _ -DecD tablesxx(externidx*) : tableidx* -[visit_id _] not free -[check_dims] _ -DecD memsxx(externidx*) : memidx* -[visit_id _] not free -[check_dims] _ -DecD tagsxx(externidx*) : tagidx* -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $funcsxx([]) = [] -[check_dims] x xx -[visit_exp [`FUNC`_externidx(x)] ++ xx*{xx <- `xx*`}] -[visit_exp [`FUNC`_externidx(x)]] -[visit_exp `FUNC`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] no dims -[visit_id xx*] -[visit_exp [x] ++ $funcsxx(xx*{xx <- `xx*`})] -[visit_exp [x]] -[visit_exp x] -[visit_id x] not free -[visit_exp $funcsxx(xx*{xx <- `xx*`})] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] not free -[visit_id xx*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $funcsxx{x : idx, `xx*` : externidx*}([`FUNC`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $funcsxx(xx*{xx <- `xx*`}) -[check_dims] externidx xx -[visit_exp [externidx] ++ xx*{xx <- `xx*`}] -[visit_exp [externidx]] -[visit_exp externidx] -[visit_id externidx] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] no dims -[visit_id xx*] -[visit_exp $funcsxx(xx*{xx <- `xx*`})] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] not free -[visit_id xx*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $funcsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $funcsxx(xx*{xx <- `xx*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $globalsxx([]) = [] -[check_dims] x xx -[visit_exp [`GLOBAL`_externidx(x)] ++ xx*{xx <- `xx*`}] -[visit_exp [`GLOBAL`_externidx(x)]] -[visit_exp `GLOBAL`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] no dims -[visit_id xx*] -[visit_exp [x] ++ $globalsxx(xx*{xx <- `xx*`})] -[visit_exp [x]] -[visit_exp x] -[visit_id x] not free -[visit_exp $globalsxx(xx*{xx <- `xx*`})] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] not free -[visit_id xx*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $globalsxx{x : idx, `xx*` : externidx*}([`GLOBAL`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $globalsxx(xx*{xx <- `xx*`}) -[check_dims] externidx xx -[visit_exp [externidx] ++ xx*{xx <- `xx*`}] -[visit_exp [externidx]] -[visit_exp externidx] -[visit_id externidx] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] no dims -[visit_id xx*] -[visit_exp $globalsxx(xx*{xx <- `xx*`})] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] not free -[visit_id xx*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $globalsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $globalsxx(xx*{xx <- `xx*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $tablesxx([]) = [] -[check_dims] x xx -[visit_exp [`TABLE`_externidx(x)] ++ xx*{xx <- `xx*`}] -[visit_exp [`TABLE`_externidx(x)]] -[visit_exp `TABLE`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] no dims -[visit_id xx*] -[visit_exp [x] ++ $tablesxx(xx*{xx <- `xx*`})] -[visit_exp [x]] -[visit_exp x] -[visit_id x] not free -[visit_exp $tablesxx(xx*{xx <- `xx*`})] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] not free -[visit_id xx*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $tablesxx{x : idx, `xx*` : externidx*}([`TABLE`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tablesxx(xx*{xx <- `xx*`}) -[check_dims] externidx xx -[visit_exp [externidx] ++ xx*{xx <- `xx*`}] -[visit_exp [externidx]] -[visit_exp externidx] -[visit_id externidx] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] no dims -[visit_id xx*] -[visit_exp $tablesxx(xx*{xx <- `xx*`})] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] not free -[visit_id xx*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $tablesxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $tablesxx(xx*{xx <- `xx*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $memsxx([]) = [] -[check_dims] x xx -[visit_exp [`MEM`_externidx(x)] ++ xx*{xx <- `xx*`}] -[visit_exp [`MEM`_externidx(x)]] -[visit_exp `MEM`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] no dims -[visit_id xx*] -[visit_exp [x] ++ $memsxx(xx*{xx <- `xx*`})] -[visit_exp [x]] -[visit_exp x] -[visit_id x] not free -[visit_exp $memsxx(xx*{xx <- `xx*`})] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] not free -[visit_id xx*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $memsxx{x : idx, `xx*` : externidx*}([`MEM`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $memsxx(xx*{xx <- `xx*`}) -[check_dims] externidx xx -[visit_exp [externidx] ++ xx*{xx <- `xx*`}] -[visit_exp [externidx]] -[visit_exp externidx] -[visit_id externidx] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] no dims -[visit_id xx*] -[visit_exp $memsxx(xx*{xx <- `xx*`})] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] not free -[visit_id xx*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $memsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $memsxx(xx*{xx <- `xx*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $tagsxx([]) = [] -[check_dims] x xx -[visit_exp [`TAG`_externidx(x)] ++ xx*{xx <- `xx*`}] -[visit_exp [`TAG`_externidx(x)]] -[visit_exp `TAG`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] no dims -[visit_id xx*] -[visit_exp [x] ++ $tagsxx(xx*{xx <- `xx*`})] -[visit_exp [x]] -[visit_exp x] -[visit_id x] not free -[visit_exp $tagsxx(xx*{xx <- `xx*`})] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] not free -[visit_id xx*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $tagsxx{x : idx, `xx*` : externidx*}([`TAG`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tagsxx(xx*{xx <- `xx*`}) -[check_dims] externidx xx -[visit_exp [externidx] ++ xx*{xx <- `xx*`}] -[visit_exp [externidx]] -[visit_exp externidx] -[visit_id externidx] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] no dims -[visit_id xx*] -[visit_exp $tagsxx(xx*{xx <- `xx*`})] -[visit_exp xx*{xx <- `xx*`}] -[scope_enter xx] -[visit_exp xx] -[visit_id xx] not free -[visit_id xx] not free -[scope_exit xx] -[visit_exp `xx*`] -[visit_id xx*] not free -[visit_id xx*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $tagsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $tagsxx(xx*{xx <- `xx*`}) - -- otherwise -[check_dims] -[check_dims] -[scope_enter typeidx*] -[visit_id typeidx*] not free -[visit_id typeidx*] no dims -[scope_exit typeidx*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter funcidx*] -[visit_id funcidx*] not free -[visit_id funcidx*] no dims -[scope_exit funcidx*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter globalidx*] -[visit_id globalidx*] not free -[visit_id globalidx*] no dims -[scope_exit globalidx*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tableidx*] -[visit_id tableidx*] not free -[visit_id tableidx*] no dims -[scope_exit tableidx*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter memidx*] -[visit_id memidx*] not free -[visit_id memidx*] no dims -[scope_exit memidx*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter elemidx*] -[visit_id elemidx*] not free -[visit_id elemidx*] no dims -[scope_exit elemidx*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter dataidx*] -[visit_id dataidx*] not free -[visit_id dataidx*] no dims -[scope_exit dataidx*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter localidx*] -[visit_id localidx*] not free -[visit_id localidx*] no dims -[scope_exit localidx*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter labelidx*] -[visit_id labelidx*] not free -[visit_id labelidx*] no dims -[scope_exit labelidx*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] _ -DecD free_opt(free?) : free -[visit_id _] not free -[check_dims] _ -DecD free_list(free*) : free -[visit_id _] not free -[check_dims] -[visit_exp ?()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_opt(?()) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] free -[visit_exp ?(free)] -[visit_exp free] -[visit_id free] -[visit_exp free] -[visit_id free] not free -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_opt{free : free}(?(free)) = free -[check_dims] -[visit_exp []] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_list([]) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] free free' -[visit_exp [free] ++ free'*{free' <- `free'*`}] -[visit_exp [free]] -[visit_exp free] -[visit_id free] -[visit_exp free'*{free' <- `free'*`}] -[scope_enter free'] -[visit_exp free'] -[visit_id free'] not free -[visit_id free'] not free -[scope_exit free'] -[visit_exp `free'*`] -[visit_id free'*] no dims -[visit_id free'*] -[visit_exp free +++ $free_list(free'*{free' <- `free'*`})] -[visit_exp free] -[visit_id free] not free -[visit_exp $free_list(free'*{free' <- `free'*`})] -[visit_exp free'*{free' <- `free'*`}] -[scope_enter free'] -[visit_exp free'] -[visit_id free'] not free -[visit_id free'] not free -[scope_exit free'] -[visit_exp `free'*`] -[visit_id free'*] not free -[visit_id free'*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_list{free : free, `free'*` : free*}([free] ++ free'*{free' <- `free'*`}) = free +++ $free_list(free'*{free' <- `free'*`}) -[check_dims] typeidx -DecD free_typeidx(typeidx : typeidx) : free -[visit_id typeidx] not free -[check_dims] funcidx -DecD free_funcidx(funcidx : funcidx) : free -[visit_id funcidx] not free -[check_dims] globalidx -DecD free_globalidx(globalidx : globalidx) : free -[visit_id globalidx] not free -[check_dims] tableidx -DecD free_tableidx(tableidx : tableidx) : free -[visit_id tableidx] not free -[check_dims] memidx -DecD free_memidx(memidx : memidx) : free -[visit_id memidx] not free -[check_dims] elemidx -DecD free_elemidx(elemidx : elemidx) : free -[visit_id elemidx] not free -[check_dims] dataidx -DecD free_dataidx(dataidx : dataidx) : free -[visit_id dataidx] not free -[check_dims] localidx -DecD free_localidx(localidx : localidx) : free -[visit_id localidx] not free -[check_dims] labelidx -DecD free_labelidx(labelidx : labelidx) : free -[visit_id labelidx] not free -[check_dims] externidx -DecD free_externidx(externidx : externidx) : free -[visit_id externidx] not free -[check_dims] typeidx -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp {`TYPES` [typeidx], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp [typeidx]] -[visit_exp typeidx] -[visit_id typeidx] not free -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_typeidx{typeidx : typeidx}(typeidx) = {`TYPES` [typeidx], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] funcidx -[visit_exp funcidx] -[visit_id funcidx] -[visit_exp {`TYPES` [], `FUNCS` [funcidx], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp [funcidx]] -[visit_exp funcidx] -[visit_id funcidx] not free -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_funcidx{funcidx : funcidx}(funcidx) = {`TYPES` [], `FUNCS` [funcidx], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] globalidx -[visit_exp globalidx] -[visit_id globalidx] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [globalidx], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp [globalidx]] -[visit_exp globalidx] -[visit_id globalidx] not free -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_globalidx{globalidx : globalidx}(globalidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [globalidx], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] tableidx -[visit_exp tableidx] -[visit_id tableidx] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [tableidx], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [tableidx]] -[visit_exp tableidx] -[visit_id tableidx] not free -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_tableidx{tableidx : tableidx}(tableidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [tableidx], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] memidx -[visit_exp memidx] -[visit_id memidx] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [memidx], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [memidx]] -[visit_exp memidx] -[visit_id memidx] not free -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_memidx{memidx : memidx}(memidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [memidx], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] elemidx -[visit_exp elemidx] -[visit_id elemidx] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [elemidx], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [elemidx]] -[visit_exp elemidx] -[visit_id elemidx] not free -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_elemidx{elemidx : elemidx}(elemidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [elemidx], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] dataidx -[visit_exp dataidx] -[visit_id dataidx] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [dataidx], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [dataidx]] -[visit_exp dataidx] -[visit_id dataidx] not free -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_dataidx{dataidx : dataidx}(dataidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [dataidx], `LOCALS` [], `LABELS` []} -[check_dims] localidx -[visit_exp localidx] -[visit_id localidx] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [localidx], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [localidx]] -[visit_exp localidx] -[visit_id localidx] not free -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_localidx{localidx : localidx}(localidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [localidx], `LABELS` []} -[check_dims] labelidx -[visit_exp labelidx] -[visit_id labelidx] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` [labelidx]}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [labelidx]] -[visit_exp labelidx] -[visit_id labelidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_labelidx{labelidx : labelidx}(labelidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` [labelidx]} -[check_dims] funcidx -[visit_exp `FUNC`_externidx(funcidx)] -[visit_exp (funcidx)] -[visit_exp funcidx] -[visit_id funcidx] -[visit_exp $free_funcidx(funcidx)] -[visit_exp funcidx] -[visit_id funcidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{funcidx : funcidx}(`FUNC`_externidx(funcidx)) = $free_funcidx(funcidx) -[check_dims] globalidx -[visit_exp `GLOBAL`_externidx(globalidx)] -[visit_exp (globalidx)] -[visit_exp globalidx] -[visit_id globalidx] -[visit_exp $free_globalidx(globalidx)] -[visit_exp globalidx] -[visit_id globalidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{globalidx : globalidx}(`GLOBAL`_externidx(globalidx)) = $free_globalidx(globalidx) -[check_dims] tableidx -[visit_exp `TABLE`_externidx(tableidx)] -[visit_exp (tableidx)] -[visit_exp tableidx] -[visit_id tableidx] -[visit_exp $free_tableidx(tableidx)] -[visit_exp tableidx] -[visit_id tableidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{tableidx : tableidx}(`TABLE`_externidx(tableidx)) = $free_tableidx(tableidx) -[check_dims] memidx -[visit_exp `MEM`_externidx(memidx)] -[visit_exp (memidx)] -[visit_exp memidx] -[visit_id memidx] -[visit_exp $free_memidx(memidx)] -[visit_exp memidx] -[visit_id memidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{memidx : memidx}(`MEM`_externidx(memidx)) = $free_memidx(memidx) -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter rectype] -[visit_id rectype] not free -[visit_id rectype] no dims -[scope_enter n] -[visit_id n] not free -[visit_id n] no dims -[scope_exit n] -[scope_exit rectype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter n] -[visit_id n] not free -[visit_id n] no dims -[scope_exit n] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter n] -[visit_id n] not free -[visit_id n] no dims -[scope_exit n] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[scope_enter null?] -[visit_id null?] not free -[visit_id null?] no dims -[scope_enter heaptype] -[visit_id heaptype] not free -[visit_id heaptype] no dims -[scope_exit heaptype] -[scope_exit null?] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -DecD ANYREF : reftype -[check_dims] -DecD EQREF : reftype -[check_dims] -DecD I31REF : reftype -[check_dims] -DecD STRUCTREF : reftype -[check_dims] -DecD ARRAYREF : reftype -[check_dims] -DecD FUNCREF : reftype -[check_dims] -DecD EXNREF : reftype -[check_dims] -DecD EXTERNREF : reftype -[check_dims] -DecD NULLREF : reftype -[check_dims] -DecD NULLFUNCREF : reftype -[check_dims] -DecD NULLEXNREF : reftype -[check_dims] -DecD NULLEXTERNREF : reftype -[check_dims] -[visit_exp `REF`_reftype(?(`NULL`_null), `ANY`_heaptype)] -[visit_exp (?(`NULL`_null), `ANY`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `ANY`_heaptype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $ANYREF = `REF`_reftype(?(`NULL`_null), `ANY`_heaptype) -[check_dims] -[visit_exp `REF`_reftype(?(`NULL`_null), `EQ`_heaptype)] -[visit_exp (?(`NULL`_null), `EQ`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `EQ`_heaptype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EQREF = `REF`_reftype(?(`NULL`_null), `EQ`_heaptype) -[check_dims] -[visit_exp `REF`_reftype(?(`NULL`_null), `I31`_heaptype)] -[visit_exp (?(`NULL`_null), `I31`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `I31`_heaptype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $I31REF = `REF`_reftype(?(`NULL`_null), `I31`_heaptype) -[check_dims] -[visit_exp `REF`_reftype(?(`NULL`_null), `STRUCT`_heaptype)] -[visit_exp (?(`NULL`_null), `STRUCT`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `STRUCT`_heaptype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $STRUCTREF = `REF`_reftype(?(`NULL`_null), `STRUCT`_heaptype) -[check_dims] -[visit_exp `REF`_reftype(?(`NULL`_null), `ARRAY`_heaptype)] -[visit_exp (?(`NULL`_null), `ARRAY`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `ARRAY`_heaptype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $ARRAYREF = `REF`_reftype(?(`NULL`_null), `ARRAY`_heaptype) -[check_dims] -[visit_exp `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp (?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `FUNC`_heaptype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $FUNCREF = `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype) -[check_dims] -[visit_exp `REF`_reftype(?(`NULL`_null), `EXN`_heaptype)] -[visit_exp (?(`NULL`_null), `EXN`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `EXN`_heaptype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EXNREF = `REF`_reftype(?(`NULL`_null), `EXN`_heaptype) -[check_dims] -[visit_exp `REF`_reftype(?(`NULL`_null), `EXTERN`_heaptype)] -[visit_exp (?(`NULL`_null), `EXTERN`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `EXTERN`_heaptype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EXTERNREF = `REF`_reftype(?(`NULL`_null), `EXTERN`_heaptype) -[check_dims] -[visit_exp `REF`_reftype(?(`NULL`_null), `NONE`_heaptype)] -[visit_exp (?(`NULL`_null), `NONE`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `NONE`_heaptype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLREF = `REF`_reftype(?(`NULL`_null), `NONE`_heaptype) -[check_dims] -[visit_exp `REF`_reftype(?(`NULL`_null), `NOFUNC`_heaptype)] -[visit_exp (?(`NULL`_null), `NOFUNC`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `NOFUNC`_heaptype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLFUNCREF = `REF`_reftype(?(`NULL`_null), `NOFUNC`_heaptype) -[check_dims] -[visit_exp `REF`_reftype(?(`NULL`_null), `NOEXN`_heaptype)] -[visit_exp (?(`NULL`_null), `NOEXN`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `NOEXN`_heaptype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLEXNREF = `REF`_reftype(?(`NULL`_null), `NOEXN`_heaptype) -[check_dims] -[visit_exp `REF`_reftype(?(`NULL`_null), `NOEXTERN`_heaptype)] -[visit_exp (?(`NULL`_null), `NOEXTERN`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `NOEXTERN`_heaptype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLEXTERNREF = `REF`_reftype(?(`NULL`_null), `NOEXTERN`_heaptype) -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter mut?] -[visit_id mut?] not free -[visit_id mut?] no dims -[scope_enter storagetype] -[visit_id storagetype] not free -[visit_id storagetype] no dims -[scope_exit storagetype] -[scope_exit mut?] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter fieldtype] -[visit_id fieldtype] not free -[visit_id fieldtype] no dims -[scope_exit fieldtype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter resulttype] -[visit_id resulttype] not free -[visit_id resulttype] no dims -[scope_enter resulttype] -[visit_id resulttype] not free -[visit_id resulttype] no dims -[scope_exit resulttype] -[scope_exit resulttype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter final?] -[visit_id final?] not free -[visit_id final?] no dims -[scope_enter typeuse*] -[visit_id typeuse*] not free -[visit_id typeuse*] no dims -[scope_enter comptype] -[visit_id comptype] not free -[visit_id comptype] no dims -[scope_exit comptype] -[scope_exit typeuse*] -[scope_exit final?] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter u64] -[visit_id u64] not free -[visit_id u64] no dims -[scope_enter u64?] -[visit_id u64?] not free -[visit_id u64?] no dims -[scope_exit u64?] -[scope_exit u64] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[scope_enter mut?] -[visit_id mut?] not free -[visit_id mut?] no dims -[scope_enter valtype] -[visit_id valtype] not free -[visit_id valtype] no dims -[scope_exit valtype] -[scope_exit mut?] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter addrtype] -[visit_id addrtype] not free -[visit_id addrtype] no dims -[scope_enter limits] -[visit_id limits] not free -[visit_id limits] no dims -[scope_exit limits] -[scope_exit addrtype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter addrtype] -[visit_id addrtype] not free -[visit_id addrtype] no dims -[scope_enter limits] -[visit_id limits] not free -[visit_id limits] no dims -[scope_enter reftype] -[visit_id reftype] not free -[visit_id reftype] no dims -[scope_exit reftype] -[scope_exit limits] -[scope_exit addrtype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[scope_enter tagtype] -[visit_id tagtype] not free -[visit_id tagtype] no dims -[scope_exit tagtype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter globaltype] -[visit_id globaltype] not free -[visit_id globaltype] no dims -[scope_exit globaltype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter memtype] -[visit_id memtype] not free -[visit_id memtype] no dims -[scope_exit memtype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tabletype] -[visit_id tabletype] not free -[visit_id tabletype] no dims -[scope_exit tabletype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeuse] -[visit_id typeuse] not free -[visit_id typeuse] no dims -[scope_exit typeuse] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter externtype*] -[visit_id externtype*] not free -[visit_id externtype*] no dims -[scope_enter externtype*] -[visit_id externtype*] not free -[visit_id externtype*] no dims -[scope_exit externtype*] -[scope_exit externtype*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] N -DecD IN(N : N) : Inn -[visit_id N] not free -[check_dims] -[visit_exp 32] -[visit_exp `I32`_Inn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $IN(32) = `I32`_Inn -[check_dims] -[visit_exp 64] -[visit_exp `I64`_Inn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $IN(64) = `I64`_Inn -[check_dims] N -DecD FN(N : N) : Fnn -[visit_id N] not free -[check_dims] -[visit_exp 32] -[visit_exp `F32`_Fnn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $FN(32) = `F32`_Fnn -[check_dims] -[visit_exp 64] -[visit_exp `F64`_Fnn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $FN(64) = `F64`_Fnn -[check_dims] N -DecD JN(N : N) : Jnn -[visit_id N] not free -[check_dims] -[visit_exp 8] -[visit_exp `I8`_Jnn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $JN(8) = `I8`_Jnn -[check_dims] -[visit_exp 16] -[visit_exp `I16`_Jnn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $JN(16) = `I16`_Jnn -[check_dims] -[visit_exp 32] -[visit_exp `I32`_Jnn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $JN(32) = `I32`_Jnn -[check_dims] -[visit_exp 64] -[visit_exp `I64`_Jnn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $JN(64) = `I64`_Jnn -[check_dims] numtype -DecD size(numtype : numtype) : nat -[visit_id numtype] not free -[check_dims] vectype -DecD vsize(vectype : vectype) : nat -[visit_id vectype] not free -[check_dims] packtype -DecD psize(packtype : packtype) : nat -[visit_id packtype] not free -[check_dims] lanetype -DecD lsize(lanetype : lanetype) : nat -[visit_id lanetype] not free -[check_dims] storagetype -DecD zsize(storagetype : storagetype) : nat -[visit_id storagetype] not free -[check_dims] Inn -DecD isize(Inn : Inn) : nat -[visit_id Inn] not free -[check_dims] Jnn -DecD jsize(Jnn : Jnn) : nat -[visit_id Jnn] not free -[check_dims] Fnn -DecD fsize(Fnn : Fnn) : nat -[visit_id Fnn] not free -[check_dims] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp 32] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $size(`I32`_numtype) = 32 -[check_dims] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp 64] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $size(`I64`_numtype) = 64 -[check_dims] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp 32] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $size(`F32`_numtype) = 32 -[check_dims] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp 64] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $size(`F64`_numtype) = 64 -[check_dims] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp 128] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $vsize(`V128`_vectype) = 128 -[check_dims] -[visit_exp `I8`_packtype] -[visit_exp ()] -[visit_exp 8] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $psize(`I8`_packtype) = 8 -[check_dims] -[visit_exp `I16`_packtype] -[visit_exp ()] -[visit_exp 16] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $psize(`I16`_packtype) = 16 -[check_dims] numtype -[visit_exp (numtype : numtype <: lanetype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp $size(numtype)] -[visit_exp numtype] -[visit_id numtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $lsize{numtype : numtype}((numtype : numtype <: lanetype)) = $size(numtype) -[check_dims] packtype -[visit_exp (packtype : packtype <: lanetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp $psize(packtype)] -[visit_exp packtype] -[visit_id packtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $lsize{packtype : packtype}((packtype : packtype <: lanetype)) = $psize(packtype) -[check_dims] numtype -[visit_exp (numtype : numtype <: storagetype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp $size(numtype)] -[visit_exp numtype] -[visit_id numtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $zsize{numtype : numtype}((numtype : numtype <: storagetype)) = $size(numtype) -[check_dims] vectype -[visit_exp (vectype : vectype <: storagetype)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp $vsize(vectype)] -[visit_exp vectype] -[visit_id vectype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $zsize{vectype : vectype}((vectype : vectype <: storagetype)) = $vsize(vectype) -[check_dims] packtype -[visit_exp (packtype : packtype <: storagetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp $psize(packtype)] -[visit_exp packtype] -[visit_id packtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $zsize{packtype : packtype}((packtype : packtype <: storagetype)) = $psize(packtype) -[check_dims] Inn -[visit_exp Inn] -[visit_id Inn] -[visit_exp $size((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $isize{Inn : Inn}(Inn) = $size((Inn : Inn <: numtype)) -[check_dims] Fnn -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp $size((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $fsize{Fnn : Fnn}(Fnn) = $size((Fnn : Fnn <: numtype)) -[check_dims] Jnn -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp $lsize((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $jsize{Jnn : Jnn}(Jnn) = $lsize((Jnn : Jnn <: lanetype)) -[check_dims] nat -DecD inv_isize(nat : nat) : Inn -[visit_id nat] not free -[check_dims] nat -DecD inv_jsize(nat : nat) : Jnn -[visit_id nat] not free -[check_dims] nat -DecD inv_fsize(nat : nat) : Fnn -[visit_id nat] not free -[check_dims] -[visit_exp 32] -[visit_exp `I32`_Inn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_isize(32) = `I32`_Inn -[check_dims] -[visit_exp 64] -[visit_exp `I64`_Inn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_isize(64) = `I64`_Inn -[check_dims] -[visit_exp 32] -[visit_exp `F32`_Fnn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_fsize(32) = `F32`_Fnn -[check_dims] -[visit_exp 64] -[visit_exp `F64`_Fnn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_fsize(64) = `F64`_Fnn -[check_dims] -[visit_exp 8] -[visit_exp `I8`_Jnn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_jsize(8) = `I8`_Jnn -[check_dims] -[visit_exp 16] -[visit_exp `I16`_Jnn] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_jsize(16) = `I16`_Jnn -[check_dims] n -[visit_exp n] -[visit_id n] -[visit_exp ($inv_isize(n) : Inn <: Jnn)] -[visit_exp $inv_isize(n)] -[visit_exp n] -[visit_id n] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_jsize{n : n}(n) = ($inv_isize(n) : Inn <: Jnn) -[check_dims] numtype -DecD sizenn(numtype : numtype) : nat -[visit_id numtype] not free -[check_dims] numtype -DecD sizenn1(numtype : numtype) : nat -[visit_id numtype] not free -[check_dims] numtype -DecD sizenn2(numtype : numtype) : nat -[visit_id numtype] not free -[check_dims] nt -[visit_exp nt] -[visit_id nt] -[visit_exp $size(nt)] -[visit_exp nt] -[visit_id nt] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $sizenn{nt : numtype}(nt) = $size(nt) -[check_dims] nt -[visit_exp nt] -[visit_id nt] -[visit_exp $size(nt)] -[visit_exp nt] -[visit_id nt] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $sizenn1{nt : numtype}(nt) = $size(nt) -[check_dims] nt -[visit_exp nt] -[visit_id nt] -[visit_exp $size(nt)] -[visit_exp nt] -[visit_id nt] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $sizenn2{nt : numtype}(nt) = $size(nt) -[check_dims] vectype -DecD vsizenn(vectype : vectype) : nat -[visit_id vectype] not free -[check_dims] vt -[visit_exp vt] -[visit_id vt] -[visit_exp $vsize(vt)] -[visit_exp vt] -[visit_id vt] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $vsizenn{vt : vectype}(vt) = $vsize(vt) -[check_dims] packtype -DecD psizenn(packtype : packtype) : nat -[visit_id packtype] not free -[check_dims] pt -[visit_exp pt] -[visit_id pt] -[visit_exp $psize(pt)] -[visit_exp pt] -[visit_id pt] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $psizenn{pt : packtype}(pt) = $psize(pt) -[check_dims] lanetype -DecD lsizenn(lanetype : lanetype) : nat -[visit_id lanetype] not free -[check_dims] lanetype -DecD lsizenn1(lanetype : lanetype) : nat -[visit_id lanetype] not free -[check_dims] lanetype -DecD lsizenn2(lanetype : lanetype) : nat -[visit_id lanetype] not free -[check_dims] lt -[visit_exp lt] -[visit_id lt] -[visit_exp $lsize(lt)] -[visit_exp lt] -[visit_id lt] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $lsizenn{lt : lanetype}(lt) = $lsize(lt) -[check_dims] lt -[visit_exp lt] -[visit_id lt] -[visit_exp $lsize(lt)] -[visit_exp lt] -[visit_id lt] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $lsizenn1{lt : lanetype}(lt) = $lsize(lt) -[check_dims] lt -[visit_exp lt] -[visit_id lt] -[visit_exp $lsize(lt)] -[visit_exp lt] -[visit_id lt] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $lsizenn2{lt : lanetype}(lt) = $lsize(lt) -[check_dims] Jnn -DecD jsizenn(Jnn : Jnn) : nat -[visit_id Jnn] not free -[check_dims] Jnn -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp $lsize((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $jsizenn{Jnn : Jnn}(Jnn) = $lsize((Jnn : Jnn <: lanetype)) -[check_dims] nat -DecD inv_jsizenn(nat : nat) : Jnn -[visit_id nat] not free -[check_dims] n -[visit_exp n] -[visit_id n] -[visit_exp $inv_jsize(n)] -[visit_exp n] -[visit_id n] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_jsizenn{n : n}(n) = $inv_jsize(n) -[check_dims] lanetype -DecD lunpack(lanetype : lanetype) : numtype -[visit_id lanetype] not free -[check_dims] numtype -[visit_exp (numtype : numtype <: lanetype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp numtype] -[visit_id numtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $lunpack{numtype : numtype}((numtype : numtype <: lanetype)) = numtype -[check_dims] packtype -[visit_exp (packtype : packtype <: lanetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp `I32`_numtype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $lunpack{packtype : packtype}((packtype : packtype <: lanetype)) = `I32`_numtype -[check_dims] storagetype -DecD unpack(storagetype : storagetype) : valtype -[visit_id storagetype] not free -[check_dims] valtype -[visit_exp (valtype : valtype <: storagetype)] -[visit_exp valtype] -[visit_id valtype] -[visit_exp valtype] -[visit_id valtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $unpack{valtype : valtype}((valtype : valtype <: storagetype)) = valtype -[check_dims] packtype -[visit_exp (packtype : packtype <: storagetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp `I32`_valtype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $unpack{packtype : packtype}((packtype : packtype <: storagetype)) = `I32`_valtype -[check_dims] storagetype -DecD nunpack(storagetype : storagetype) : numtype -[visit_id storagetype] not free -[check_dims] numtype -[visit_exp (numtype : numtype <: storagetype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp numtype] -[visit_id numtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $nunpack{numtype : numtype}((numtype : numtype <: storagetype)) = numtype -[check_dims] packtype -[visit_exp (packtype : packtype <: storagetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp `I32`_numtype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $nunpack{packtype : packtype}((packtype : packtype <: storagetype)) = `I32`_numtype -[check_dims] storagetype -DecD vunpack(storagetype : storagetype) : vectype -[visit_id storagetype] not free -[check_dims] vectype -[visit_exp (vectype : vectype <: storagetype)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp vectype] -[visit_id vectype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $vunpack{vectype : vectype}((vectype : vectype <: storagetype)) = vectype -[check_dims] storagetype -DecD cunpack(storagetype : storagetype) : consttype -[visit_id storagetype] not free -[check_dims] consttype -[visit_exp (consttype : consttype <: storagetype)] -[visit_exp consttype] -[visit_id consttype] -[visit_exp consttype] -[visit_id consttype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $cunpack{consttype : consttype}((consttype : consttype <: storagetype)) = consttype -[check_dims] packtype -[visit_exp (packtype : packtype <: storagetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp `I32`_consttype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $cunpack{packtype : packtype}((packtype : packtype <: storagetype)) = `I32`_consttype -[check_dims] lanetype -[visit_exp (lanetype : lanetype <: storagetype)] -[visit_exp lanetype] -[visit_id lanetype] -[visit_exp ($lunpack(lanetype) : numtype <: consttype)] -[visit_exp $lunpack(lanetype)] -[visit_exp lanetype] -[visit_id lanetype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $cunpack{lanetype : lanetype}((lanetype : lanetype <: storagetype)) = ($lunpack(lanetype) : numtype <: consttype) -[check_dims] addrtype -DecD minat(addrtype : addrtype, addrtype : addrtype) : addrtype -[visit_id addrtype] not free -[visit_id addrtype] not free -[check_dims] at_1 at_2 -[visit_exp at_1] -[visit_id at_1] -[visit_exp at_2] -[visit_id at_2] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp ($size((at_1 : addrtype <: numtype)) <= $size((at_2 : addrtype <: numtype)))] -[visit_exp $size((at_1 : addrtype <: numtype))] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp $size((at_2 : addrtype <: numtype))] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $minat{at_1 : addrtype, at_2 : addrtype}(at_1, at_2) = at_1 - -- if ($size((at_1 : addrtype <: numtype)) <= $size((at_2 : addrtype <: numtype))) -[check_dims] at_1 at_2 -[visit_exp at_1] -[visit_id at_1] -[visit_exp at_2] -[visit_id at_2] -[visit_exp at_2] -[visit_id at_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $minat{at_1 : addrtype, at_2 : addrtype}(at_1, at_2) = at_2 - -- otherwise -[check_dims] reftype -DecD diffrt(reftype : reftype, reftype : reftype) : reftype -[visit_id reftype] not free -[visit_id reftype] not free -[check_dims] ht_1 ht_2 null_1 -[visit_exp `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp null_1?{null_1 <- `null_1?`}] -[scope_enter null_1] -[visit_exp null_1] -[visit_id null_1] not free -[visit_id null_1] not free -[scope_exit null_1] -[visit_exp `null_1?`] -[visit_id null_1?] no dims -[visit_id null_1?] -[visit_exp ht_1] -[visit_id ht_1] -[visit_exp `REF`_reftype(?(`NULL`_null), ht_2)] -[visit_exp (?(`NULL`_null), ht_2)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht_2] -[visit_id ht_2] -[visit_exp `REF`_reftype(?(), ht_1)] -[visit_exp (?(), ht_1)] -[visit_exp ?()] -[visit_exp ht_1] -[visit_id ht_1] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $diffrt{`null_1?` : null?, ht_1 : heaptype, ht_2 : heaptype}(`REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(?(`NULL`_null), ht_2)) = `REF`_reftype(?(), ht_1) -[check_dims] ht_1 ht_2 null_1 -[visit_exp `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp null_1?{null_1 <- `null_1?`}] -[scope_enter null_1] -[visit_exp null_1] -[visit_id null_1] not free -[visit_id null_1] not free -[scope_exit null_1] -[visit_exp `null_1?`] -[visit_id null_1?] no dims -[visit_id null_1?] -[visit_exp ht_1] -[visit_id ht_1] -[visit_exp `REF`_reftype(?(), ht_2)] -[visit_exp (?(), ht_2)] -[visit_exp ?()] -[visit_exp ht_2] -[visit_id ht_2] -[visit_exp `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp null_1?{null_1 <- `null_1?`}] -[scope_enter null_1] -[visit_exp null_1] -[visit_id null_1] not free -[visit_id null_1] not free -[scope_exit null_1] -[visit_exp `null_1?`] -[visit_id null_1?] not free -[visit_id null_1?] no dims -[visit_exp ht_1] -[visit_id ht_1] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $diffrt{`null_1?` : null?, ht_1 : heaptype, ht_2 : heaptype}(`REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(?(), ht_2)) = `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1) -[check_dims] typeuse -DecD as_deftype(typeuse : typeuse) : deftype -[visit_id typeuse] not free -[check_dims] dt -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] -[visit_exp dt] -[visit_id dt] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $as_deftype{dt : deftype}((dt : deftype <: typeuse)) = dt -[check_dims] _ -DecD tagsxt(externtype*) : tagtype* -[visit_id _] not free -[check_dims] _ -DecD globalsxt(externtype*) : globaltype* -[visit_id _] not free -[check_dims] _ -DecD memsxt(externtype*) : memtype* -[visit_id _] not free -[check_dims] _ -DecD tablesxt(externtype*) : tabletype* -[visit_id _] not free -[check_dims] _ -DecD funcsxt(externtype*) : deftype* -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $tagsxt([]) = [] -[check_dims] jt xt -[visit_exp [`TAG`_externtype(jt)] ++ xt*{xt <- `xt*`}] -[visit_exp [`TAG`_externtype(jt)]] -[visit_exp `TAG`_externtype(jt)] -[visit_exp (jt)] -[visit_exp jt] -[visit_id jt] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] no dims -[visit_id xt*] -[visit_exp [jt] ++ $tagsxt(xt*{xt <- `xt*`})] -[visit_exp [jt]] -[visit_exp jt] -[visit_id jt] not free -[visit_exp $tagsxt(xt*{xt <- `xt*`})] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] not free -[visit_id xt*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $tagsxt{jt : tagtype, `xt*` : externtype*}([`TAG`_externtype(jt)] ++ xt*{xt <- `xt*`}) = [jt] ++ $tagsxt(xt*{xt <- `xt*`}) -[check_dims] externtype xt -[visit_exp [externtype] ++ xt*{xt <- `xt*`}] -[visit_exp [externtype]] -[visit_exp externtype] -[visit_id externtype] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] no dims -[visit_id xt*] -[visit_exp $tagsxt(xt*{xt <- `xt*`})] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] not free -[visit_id xt*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $tagsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $tagsxt(xt*{xt <- `xt*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $globalsxt([]) = [] -[check_dims] gt xt -[visit_exp [`GLOBAL`_externtype(gt)] ++ xt*{xt <- `xt*`}] -[visit_exp [`GLOBAL`_externtype(gt)]] -[visit_exp `GLOBAL`_externtype(gt)] -[visit_exp (gt)] -[visit_exp gt] -[visit_id gt] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] no dims -[visit_id xt*] -[visit_exp [gt] ++ $globalsxt(xt*{xt <- `xt*`})] -[visit_exp [gt]] -[visit_exp gt] -[visit_id gt] not free -[visit_exp $globalsxt(xt*{xt <- `xt*`})] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] not free -[visit_id xt*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $globalsxt{gt : globaltype, `xt*` : externtype*}([`GLOBAL`_externtype(gt)] ++ xt*{xt <- `xt*`}) = [gt] ++ $globalsxt(xt*{xt <- `xt*`}) -[check_dims] externtype xt -[visit_exp [externtype] ++ xt*{xt <- `xt*`}] -[visit_exp [externtype]] -[visit_exp externtype] -[visit_id externtype] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] no dims -[visit_id xt*] -[visit_exp $globalsxt(xt*{xt <- `xt*`})] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] not free -[visit_id xt*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $globalsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $globalsxt(xt*{xt <- `xt*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $memsxt([]) = [] -[check_dims] mt xt -[visit_exp [`MEM`_externtype(mt)] ++ xt*{xt <- `xt*`}] -[visit_exp [`MEM`_externtype(mt)]] -[visit_exp `MEM`_externtype(mt)] -[visit_exp (mt)] -[visit_exp mt] -[visit_id mt] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] no dims -[visit_id xt*] -[visit_exp [mt] ++ $memsxt(xt*{xt <- `xt*`})] -[visit_exp [mt]] -[visit_exp mt] -[visit_id mt] not free -[visit_exp $memsxt(xt*{xt <- `xt*`})] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] not free -[visit_id xt*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $memsxt{mt : memtype, `xt*` : externtype*}([`MEM`_externtype(mt)] ++ xt*{xt <- `xt*`}) = [mt] ++ $memsxt(xt*{xt <- `xt*`}) -[check_dims] externtype xt -[visit_exp [externtype] ++ xt*{xt <- `xt*`}] -[visit_exp [externtype]] -[visit_exp externtype] -[visit_id externtype] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] no dims -[visit_id xt*] -[visit_exp $memsxt(xt*{xt <- `xt*`})] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] not free -[visit_id xt*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $memsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $memsxt(xt*{xt <- `xt*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $tablesxt([]) = [] -[check_dims] tt xt -[visit_exp [`TABLE`_externtype(tt)] ++ xt*{xt <- `xt*`}] -[visit_exp [`TABLE`_externtype(tt)]] -[visit_exp `TABLE`_externtype(tt)] -[visit_exp (tt)] -[visit_exp tt] -[visit_id tt] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] no dims -[visit_id xt*] -[visit_exp [tt] ++ $tablesxt(xt*{xt <- `xt*`})] -[visit_exp [tt]] -[visit_exp tt] -[visit_id tt] not free -[visit_exp $tablesxt(xt*{xt <- `xt*`})] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] not free -[visit_id xt*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $tablesxt{tt : tabletype, `xt*` : externtype*}([`TABLE`_externtype(tt)] ++ xt*{xt <- `xt*`}) = [tt] ++ $tablesxt(xt*{xt <- `xt*`}) -[check_dims] externtype xt -[visit_exp [externtype] ++ xt*{xt <- `xt*`}] -[visit_exp [externtype]] -[visit_exp externtype] -[visit_id externtype] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] no dims -[visit_id xt*] -[visit_exp $tablesxt(xt*{xt <- `xt*`})] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] not free -[visit_id xt*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $tablesxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $tablesxt(xt*{xt <- `xt*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $funcsxt([]) = [] -[check_dims] dt xt -[visit_exp [`FUNC`_externtype((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}] -[visit_exp [`FUNC`_externtype((dt : deftype <: typeuse))]] -[visit_exp `FUNC`_externtype((dt : deftype <: typeuse))] -[visit_exp ((dt : deftype <: typeuse))] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] no dims -[visit_id xt*] -[visit_exp [dt] ++ $funcsxt(xt*{xt <- `xt*`})] -[visit_exp [dt]] -[visit_exp dt] -[visit_id dt] not free -[visit_exp $funcsxt(xt*{xt <- `xt*`})] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] not free -[visit_id xt*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $funcsxt{dt : deftype, `xt*` : externtype*}([`FUNC`_externtype((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}) = [dt] ++ $funcsxt(xt*{xt <- `xt*`}) -[check_dims] externtype xt -[visit_exp [externtype] ++ xt*{xt <- `xt*`}] -[visit_exp [externtype]] -[visit_exp externtype] -[visit_id externtype] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] no dims -[visit_id xt*] -[visit_exp $funcsxt(xt*{xt <- `xt*`})] -[visit_exp xt*{xt <- `xt*`}] -[scope_enter xt] -[visit_exp xt] -[visit_id xt] not free -[visit_id xt] not free -[scope_exit xt] -[visit_exp `xt*`] -[visit_id xt*] not free -[visit_id xt*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $funcsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $funcsxt(xt*{xt <- `xt*`}) - -- otherwise -[check_dims] _ typevar -DecD subst_typevar(typevar : typevar, typevar*, typeuse*) : typeuse -[visit_id typevar] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ typeuse -DecD subst_typeuse(typeuse : typeuse, typevar*, typeuse*) : typeuse -[visit_id typeuse] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ addrtype -DecD subst_addrtype(addrtype : addrtype, typevar*, typeuse*) : addrtype -[visit_id addrtype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ numtype -DecD subst_numtype(numtype : numtype, typevar*, typeuse*) : numtype -[visit_id numtype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ vectype -DecD subst_vectype(vectype : vectype, typevar*, typeuse*) : vectype -[visit_id vectype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ heaptype -DecD subst_heaptype(heaptype : heaptype, typevar*, typeuse*) : heaptype -[visit_id heaptype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ reftype -DecD subst_reftype(reftype : reftype, typevar*, typeuse*) : reftype -[visit_id reftype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ valtype -DecD subst_valtype(valtype : valtype, typevar*, typeuse*) : valtype -[visit_id valtype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ packtype -DecD subst_packtype(packtype : packtype, typevar*, typeuse*) : packtype -[visit_id packtype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ storagetype -DecD subst_storagetype(storagetype : storagetype, typevar*, typeuse*) : storagetype -[visit_id storagetype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ fieldtype -DecD subst_fieldtype(fieldtype : fieldtype, typevar*, typeuse*) : fieldtype -[visit_id fieldtype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ comptype -DecD subst_comptype(comptype : comptype, typevar*, typeuse*) : comptype -[visit_id comptype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ subtype -DecD subst_subtype(subtype : subtype, typevar*, typeuse*) : subtype -[visit_id subtype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ rectype -DecD subst_rectype(rectype : rectype, typevar*, typeuse*) : rectype -[visit_id rectype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ deftype -DecD subst_deftype(deftype : deftype, typevar*, typeuse*) : deftype -[visit_id deftype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ tagtype -DecD subst_tagtype(tagtype : tagtype, typevar*, typeuse*) : tagtype -[visit_id tagtype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ globaltype -DecD subst_globaltype(globaltype : globaltype, typevar*, typeuse*) : globaltype -[visit_id globaltype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ memtype -DecD subst_memtype(memtype : memtype, typevar*, typeuse*) : memtype -[visit_id memtype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ tabletype -DecD subst_tabletype(tabletype : tabletype, typevar*, typeuse*) : tabletype -[visit_id tabletype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ externtype -DecD subst_externtype(externtype : externtype, typevar*, typeuse*) : externtype -[visit_id externtype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] _ moduletype -DecD subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype -[visit_id moduletype] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] tv -[visit_exp tv] -[visit_id tv] -[visit_exp []] -[visit_exp []] -[visit_exp (tv : typevar <: typeuse)] -[visit_exp tv] -[visit_id tv] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_typevar{tv : typevar}(tv, [], []) = (tv : typevar <: typeuse) -[check_dims] tu' tu_1 tv tv' tv_1 -[visit_exp tv] -[visit_id tv] -[visit_exp [tv_1] ++ tv'*{tv' <- `tv'*`}] -[visit_exp [tv_1]] -[visit_exp tv_1] -[visit_id tv_1] -[visit_exp tv'*{tv' <- `tv'*`}] -[scope_enter tv'] -[visit_exp tv'] -[visit_id tv'] not free -[visit_id tv'] not free -[scope_exit tv'] -[visit_exp `tv'*`] -[visit_id tv'*] no dims -[visit_id tv'*] -[visit_exp [tu_1] ++ tu'*{tu' <- `tu'*`}] -[visit_exp [tu_1]] -[visit_exp tu_1] -[visit_id tu_1] -[visit_exp tu'*{tu' <- `tu'*`}] -[scope_enter tu'] -[visit_exp tu'] -[visit_id tu'] not free -[visit_id tu'] not free -[scope_exit tu'] -[visit_exp `tu'*`] -[visit_id tu'*] no dims -[visit_id tu'*] -[visit_exp tu_1] -[visit_id tu_1] not free -[visit_exp (tv = tv_1)] -[visit_exp tv] -[visit_id tv] not free -[visit_exp tv_1] -[visit_id tv_1] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_typevar{tv : typevar, tv_1 : typevar, `tv'*` : typevar*, tu_1 : typeuse, `tu'*` : typeuse*}(tv, [tv_1] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) = tu_1 - -- if (tv = tv_1) -[check_dims] tu' tu_1 tv tv' tv_1 -[visit_exp tv] -[visit_id tv] -[visit_exp [tv_1] ++ tv'*{tv' <- `tv'*`}] -[visit_exp [tv_1]] -[visit_exp tv_1] -[visit_id tv_1] -[visit_exp tv'*{tv' <- `tv'*`}] -[scope_enter tv'] -[visit_exp tv'] -[visit_id tv'] not free -[visit_id tv'] not free -[scope_exit tv'] -[visit_exp `tv'*`] -[visit_id tv'*] no dims -[visit_id tv'*] -[visit_exp [tu_1] ++ tu'*{tu' <- `tu'*`}] -[visit_exp [tu_1]] -[visit_exp tu_1] -[visit_id tu_1] -[visit_exp tu'*{tu' <- `tu'*`}] -[scope_enter tu'] -[visit_exp tu'] -[visit_id tu'] not free -[visit_id tu'] not free -[scope_exit tu'] -[visit_exp `tu'*`] -[visit_id tu'*] no dims -[visit_id tu'*] -[visit_exp $subst_typevar(tv, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})] -[visit_exp tv] -[visit_id tv] not free -[visit_exp tv'*{tv' <- `tv'*`}] -[scope_enter tv'] -[visit_exp tv'] -[visit_id tv'] not free -[visit_id tv'] not free -[scope_exit tv'] -[visit_exp `tv'*`] -[visit_id tv'*] not free -[visit_id tv'*] no dims -[visit_exp tu'*{tu' <- `tu'*`}] -[scope_enter tu'] -[visit_exp tu'] -[visit_id tu'] not free -[visit_id tu'] not free -[scope_exit tu'] -[visit_exp `tu'*`] -[visit_id tu'*] not free -[visit_id tu'*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_typevar{tv : typevar, tv_1 : typevar, `tv'*` : typevar*, tu_1 : typeuse, `tu'*` : typeuse*}(tv, [tv_1] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) = $subst_typevar(tv, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) - -- otherwise -[check_dims] tu tv tv' -[visit_exp (tv' : typevar <: typeuse)] -[visit_exp tv'] -[visit_id tv'] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp $subst_typevar(tv', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp tv'] -[visit_id tv'] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_typeuse{tv' : typevar, `tv*` : typevar*, `tu*` : typeuse*}((tv' : typevar <: typeuse), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = $subst_typevar(tv', tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) -[check_dims] dt tu tv -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp ($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)] -[visit_exp $subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp dt] -[visit_id dt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_typeuse{dt : deftype, `tv*` : typevar*, `tu*` : typeuse*}((dt : deftype <: typeuse), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse) -[check_dims] at tu tv -[visit_exp at] -[visit_id at] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp at] -[visit_id at] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_addrtype{at : addrtype, `tv*` : typevar*, `tu*` : typeuse*}(at, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = at -[check_dims] nt tu tv -[visit_exp nt] -[visit_id nt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp nt] -[visit_id nt] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_numtype{nt : numtype, `tv*` : typevar*, `tu*` : typeuse*}(nt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = nt -[check_dims] tu tv vt -[visit_exp vt] -[visit_id vt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp vt] -[visit_id vt] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_vectype{vt : vectype, `tv*` : typevar*, `tu*` : typeuse*}(vt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = vt -[check_dims] tu tv tv' -[visit_exp (tv' : typevar <: heaptype)] -[visit_exp tv'] -[visit_id tv'] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp ($subst_typevar(tv', tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : typeuse <: heaptype)] -[visit_exp $subst_typevar(tv', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp tv'] -[visit_id tv'] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_heaptype{tv' : typevar, `tv*` : typevar*, `tu*` : typeuse*}((tv' : typevar <: heaptype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_typevar(tv', tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : typeuse <: heaptype) -[check_dims] dt tu tv -[visit_exp (dt : deftype <: heaptype)] -[visit_exp dt] -[visit_id dt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp ($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: heaptype)] -[visit_exp $subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp dt] -[visit_id dt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_heaptype{dt : deftype, `tv*` : typevar*, `tu*` : typeuse*}((dt : deftype <: heaptype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: heaptype) -[check_dims] ht tu tv -[visit_exp ht] -[visit_id ht] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp ht] -[visit_id ht] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_heaptype{ht : heaptype, `tv*` : typevar*, `tu*` : typeuse*}(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ht - -- otherwise -[check_dims] ht null tu tv -[visit_exp `REF`_reftype(null?{null <- `null?`}, ht)] -[visit_exp (null?{null <- `null?`}, ht)] -[visit_exp null?{null <- `null?`}] -[scope_enter null] -[visit_exp null] -[visit_id null] not free -[visit_id null] not free -[scope_exit null] -[visit_exp `null?`] -[visit_id null?] no dims -[visit_id null?] -[visit_exp ht] -[visit_id ht] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `REF`_reftype(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp (null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp null?{null <- `null?`}] -[scope_enter null] -[visit_exp null] -[visit_id null] not free -[visit_id null] not free -[scope_exit null] -[visit_exp `null?`] -[visit_id null?] not free -[visit_id null?] no dims -[visit_exp $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp ht] -[visit_id ht] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_reftype{`null?` : null?, ht : heaptype, `tv*` : typevar*, `tu*` : typeuse*}(`REF`_reftype(null?{null <- `null?`}, ht), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REF`_reftype(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] nt tu tv -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp ($subst_numtype(nt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : numtype <: valtype)] -[visit_exp $subst_numtype(nt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp nt] -[visit_id nt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_valtype{nt : numtype, `tv*` : typevar*, `tu*` : typeuse*}((nt : numtype <: valtype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_numtype(nt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : numtype <: valtype) -[check_dims] tu tv vt -[visit_exp (vt : vectype <: valtype)] -[visit_exp vt] -[visit_id vt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp ($subst_vectype(vt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : vectype <: valtype)] -[visit_exp $subst_vectype(vt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp vt] -[visit_id vt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_valtype{vt : vectype, `tv*` : typevar*, `tu*` : typeuse*}((vt : vectype <: valtype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_vectype(vt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : vectype <: valtype) -[check_dims] rt tu tv -[visit_exp (rt : reftype <: valtype)] -[visit_exp rt] -[visit_id rt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp ($subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : reftype <: valtype)] -[visit_exp $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp rt] -[visit_id rt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_valtype{rt : reftype, `tv*` : typevar*, `tu*` : typeuse*}((rt : reftype <: valtype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : reftype <: valtype) -[check_dims] tu tv -[visit_exp `BOT`_valtype] -[visit_exp ()] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `BOT`_valtype] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_valtype{`tv*` : typevar*, `tu*` : typeuse*}(`BOT`_valtype, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `BOT`_valtype -[check_dims] pt tu tv -[visit_exp pt] -[visit_id pt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp pt] -[visit_id pt] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_packtype{pt : packtype, `tv*` : typevar*, `tu*` : typeuse*}(pt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = pt -[check_dims] t tu tv -[visit_exp (t : valtype <: storagetype)] -[visit_exp t] -[visit_id t] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp ($subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : valtype <: storagetype)] -[visit_exp $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp t] -[visit_id t] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_storagetype{t : valtype, `tv*` : typevar*, `tu*` : typeuse*}((t : valtype <: storagetype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : valtype <: storagetype) -[check_dims] pt tu tv -[visit_exp (pt : packtype <: storagetype)] -[visit_exp pt] -[visit_id pt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp ($subst_packtype(pt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : packtype <: storagetype)] -[visit_exp $subst_packtype(pt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp pt] -[visit_id pt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_storagetype{pt : packtype, `tv*` : typevar*, `tu*` : typeuse*}((pt : packtype <: storagetype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_packtype(pt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : packtype <: storagetype) -[check_dims] mut tu tv zt -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp (mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_exp $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp zt] -[visit_id zt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_fieldtype{`mut?` : mut?, zt : storagetype, `tv*` : typevar*, `tu*` : typeuse*}(`%%`_fieldtype(mut?{mut <- `mut?`}, zt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_fieldtype(mut?{mut <- `mut?`}, $subst_storagetype(zt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] ft tu tv -[visit_exp `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))] -[visit_exp (`%`_list(ft*{ft <- `ft*`}))] -[visit_exp `%`_list(ft*{ft <- `ft*`})] -[visit_exp (ft*{ft <- `ft*`})] -[visit_exp ft*{ft <- `ft*`}] -[scope_enter ft] -[visit_exp ft] -[visit_id ft] not free -[visit_id ft] not free -[scope_exit ft] -[visit_exp `ft*`] -[visit_id ft*] no dims -[visit_id ft*] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `STRUCT`_comptype(`%`_list($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`}))] -[visit_exp (`%`_list($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`}))] -[visit_exp `%`_list($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})] -[visit_exp ($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})] -[visit_exp $subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`}] -[scope_enter ft] -[visit_exp $subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp ft] -[visit_id ft] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -[visit_id ft] not free -[scope_exit ft] -[visit_exp `ft*`] -[visit_id ft*] not free -[visit_id ft*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_comptype{`ft*` : fieldtype*, `tv*` : typevar*, `tu*` : typeuse*}(`STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `STRUCT`_comptype(`%`_list($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})) -[check_dims] ft tu tv -[visit_exp `ARRAY`_comptype(ft)] -[visit_exp (ft)] -[visit_exp ft] -[visit_id ft] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `ARRAY`_comptype($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp ($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp $subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp ft] -[visit_id ft] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_comptype{ft : fieldtype, `tv*` : typevar*, `tu*` : typeuse*}(`ARRAY`_comptype(ft), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `ARRAY`_comptype($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] t_1 t_2 tu tv -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `FUNC%->%`_comptype(`%`_resulttype($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`})] -[visit_exp ($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`})] -[visit_exp $subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp $subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp t_1] -[visit_id t_1] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `%`_resulttype($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})] -[visit_exp ($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})] -[visit_exp $subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp $subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp t_2] -[visit_id t_2] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_comptype{`t_1*` : valtype*, `t_2*` : valtype*, `tv*` : typevar*, `tu*` : typeuse*}(`FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC%->%`_comptype(`%`_resulttype($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})) -[check_dims] ct final tu tu' tv -[visit_exp `SUB`_subtype(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct)] -[visit_exp (final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct)] -[visit_exp final?{final <- `final?`}] -[scope_enter final] -[visit_exp final] -[visit_id final] not free -[visit_id final] not free -[scope_exit final] -[visit_exp `final?`] -[visit_id final?] no dims -[visit_id final?] -[visit_exp tu'*{tu' <- `tu'*`}] -[scope_enter tu'] -[visit_exp tu'] -[visit_id tu'] not free -[visit_id tu'] not free -[scope_exit tu'] -[visit_exp `tu'*`] -[visit_id tu'*] no dims -[visit_id tu'*] -[visit_exp ct] -[visit_id ct] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `SUB`_subtype(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp (final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp final?{final <- `final?`}] -[scope_enter final] -[visit_exp final] -[visit_id final] not free -[visit_id final] not free -[scope_exit final] -[visit_exp `final?`] -[visit_id final?] not free -[visit_id final?] no dims -[visit_exp $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}] -[scope_enter tu'] -[visit_exp $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp tu'] -[visit_id tu'] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -[visit_id tu'] not free -[scope_exit tu'] -[visit_exp `tu'*`] -[visit_id tu'*] not free -[visit_id tu'*] no dims -[visit_exp $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp ct] -[visit_id ct] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_subtype{`final?` : final?, `tu'*` : typeuse*, ct : comptype, `tv*` : typevar*, `tu*` : typeuse*}(`SUB`_subtype(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `SUB`_subtype(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] _ -DecD minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) -[visit_id _] not free -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] -[visit_exp []] -[visit_exp []] -[visit_exp ([], [])] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $minus_recs([], []) = ([], []) -[check_dims] n tu tu_1 tv -[visit_exp [`REC`_typevar(n)] ++ tv*{tv <- `tv*`}] -[visit_exp [`REC`_typevar(n)]] -[visit_exp `REC`_typevar(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp [tu_1] ++ tu*{tu <- `tu*`}] -[visit_exp [tu_1]] -[visit_exp tu_1] -[visit_id tu_1] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $minus_recs{n : n, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*}([`REC`_typevar(n)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) -[check_dims] tu tu' tu_1 tv tv' x -[visit_exp [`_IDX`_typevar(x)] ++ tv*{tv <- `tv*`}] -[visit_exp [`_IDX`_typevar(x)]] -[visit_exp `_IDX`_typevar(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp [tu_1] ++ tu*{tu <- `tu*`}] -[visit_exp [tu_1]] -[visit_exp tu_1] -[visit_id tu_1] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp ([`_IDX`_typevar(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`})] -[visit_exp [`_IDX`_typevar(x)] ++ tv'*{tv' <- `tv'*`}] -[visit_exp [`_IDX`_typevar(x)]] -[visit_exp `_IDX`_typevar(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp tv'*{tv' <- `tv'*`}] -[scope_enter tv'] -[visit_exp tv'] -[visit_id tv'] not free -[visit_id tv'] not free -[scope_exit tv'] -[visit_exp `tv'*`] -[visit_id tv'*] no dims -[visit_id tv'*] -[visit_exp [tu_1] ++ tu'*{tu' <- `tu'*`}] -[visit_exp [tu_1]] -[visit_exp tu_1] -[visit_id tu_1] not free -[visit_exp tu'*{tu' <- `tu'*`}] -[scope_enter tu'] -[visit_exp tu'] -[visit_id tu'] not free -[visit_id tu'] not free -[scope_exit tu'] -[visit_exp `tu'*`] -[visit_id tu'*] no dims -[visit_id tu'*] -[visit_exp ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp (tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})] -[visit_exp tv'*{tv' <- `tv'*`}] -[scope_enter tv'] -[visit_exp tv'] -[visit_id tv'] not free -[visit_id tv'] not free -[scope_exit tv'] -[visit_exp `tv'*`] -[visit_id tv'*] not free -[visit_id tv'*] no dims -[visit_exp tu'*{tu' <- `tu'*`}] -[scope_enter tu'] -[visit_exp tu'] -[visit_id tu'] not free -[visit_id tu'] not free -[scope_exit tu'] -[visit_exp `tu'*`] -[visit_id tu'*] not free -[visit_id tu'*] no dims -[visit_exp $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $minus_recs{x : idx, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*, `tv'*` : typevar*, `tu'*` : typeuse*}([`_IDX`_typevar(x)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = ([`_IDX`_typevar(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) - -- if ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] st tu tu' tv tv' -[visit_exp `REC`_rectype(`%`_list(st*{st <- `st*`}))] -[visit_exp (`%`_list(st*{st <- `st*`}))] -[visit_exp `%`_list(st*{st <- `st*`})] -[visit_exp (st*{st <- `st*`})] -[visit_exp st*{st <- `st*`}] -[scope_enter st] -[visit_exp st] -[visit_id st] not free -[visit_id st] not free -[scope_exit st] -[visit_exp `st*`] -[visit_id st*] no dims -[visit_id st*] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `REC`_rectype(`%`_list($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`}))] -[visit_exp (`%`_list($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`}))] -[visit_exp `%`_list($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})] -[visit_exp ($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})] -[visit_exp $subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`}] -[scope_enter st] -[visit_exp $subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})] -[visit_exp st] -[visit_id st] not free -[visit_exp tv'*{tv' <- `tv'*`}] -[scope_enter tv'] -[visit_exp tv'] -[visit_id tv'] not free -[visit_id tv'] not free -[scope_exit tv'] -[visit_exp `tv'*`] -[visit_id tv'*] no dims -[visit_id tv'*] -[visit_exp tu'*{tu' <- `tu'*`}] -[scope_enter tu'] -[visit_exp tu'] -[visit_id tu'] not free -[visit_id tu'] not free -[scope_exit tu'] -[visit_exp `tu'*`] -[visit_id tu'*] no dims -[visit_id tu'*] -[visit_id st] not free -[scope_exit st] -[visit_exp `st*`] -[visit_id st*] not free -[visit_id st*] no dims -[visit_exp ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp (tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})] -[visit_exp tv'*{tv' <- `tv'*`}] -[scope_enter tv'] -[visit_exp tv'] -[visit_id tv'] not free -[visit_id tv'] not free -[scope_exit tv'] -[visit_exp `tv'*`] -[visit_id tv'*] not free -[visit_id tv'*] no dims -[visit_exp tu'*{tu' <- `tu'*`}] -[scope_enter tu'] -[visit_exp tu'] -[visit_id tu'] not free -[visit_id tu'] not free -[scope_exit tu'] -[visit_exp `tu'*`] -[visit_id tu'*] not free -[visit_id tu'*] no dims -[visit_exp $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_rectype{`st*` : subtype*, `tv*` : typevar*, `tu*` : typeuse*, `tv'*` : typevar*, `tu'*` : typeuse*}(`REC`_rectype(`%`_list(st*{st <- `st*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REC`_rectype(`%`_list($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})) - -- if ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] i qt tu tv -[visit_exp `_DEF`_deftype(qt, i)] -[visit_exp (qt, i)] -[visit_exp qt] -[visit_id qt] -[visit_exp i] -[visit_id i] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `_DEF`_deftype($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i)] -[visit_exp ($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i)] -[visit_exp $subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp qt] -[visit_id qt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_deftype{qt : rectype, i : n, `tv*` : typevar*, `tu*` : typeuse*}(`_DEF`_deftype(qt, i), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `_DEF`_deftype($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i) -[check_dims] tu tu' tv -[visit_exp tu'] -[visit_id tu'] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp tu'] -[visit_id tu'] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_tagtype{tu' : typeuse, `tv*` : typevar*, `tu*` : typeuse*}(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) -[check_dims] mut t tu tv -[visit_exp `%%`_globaltype(mut?{mut <- `mut?`}, t)] -[visit_exp (mut?{mut <- `mut?`}, t)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp t] -[visit_id t] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `%%`_globaltype(mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp (mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_exp $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp t] -[visit_id t] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_globaltype{`mut?` : mut?, t : valtype, `tv*` : typevar*, `tu*` : typeuse*}(`%%`_globaltype(mut?{mut <- `mut?`}, t), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%`_globaltype(mut?{mut <- `mut?`}, $subst_valtype(t, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] at lim tu tv -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] -[visit_exp lim] -[visit_id lim] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_memtype{at : addrtype, lim : limits, `tv*` : typevar*, `tu*` : typeuse*}(`%%PAGE`_memtype(at, lim), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%PAGE`_memtype(at, lim) -[check_dims] at lim rt tu tv -[visit_exp `%%%`_tabletype(at, lim, rt)] -[visit_exp (at, lim, rt)] -[visit_exp at] -[visit_id at] -[visit_exp lim] -[visit_id lim] -[visit_exp rt] -[visit_id rt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `%%%`_tabletype(at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp (at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] not free -[visit_exp $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp rt] -[visit_id rt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_tabletype{at : addrtype, lim : limits, rt : reftype, `tv*` : typevar*, `tu*` : typeuse*}(`%%%`_tabletype(at, lim, rt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%%%`_tabletype(at, lim, $subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] jt tu tv -[visit_exp `TAG`_externtype(jt)] -[visit_exp (jt)] -[visit_exp jt] -[visit_id jt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `TAG`_externtype($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp ($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp $subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp jt] -[visit_id jt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{jt : tagtype, `tv*` : typevar*, `tu*` : typeuse*}(`TAG`_externtype(jt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TAG`_externtype($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] gt tu tv -[visit_exp `GLOBAL`_externtype(gt)] -[visit_exp (gt)] -[visit_exp gt] -[visit_id gt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `GLOBAL`_externtype($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp ($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp $subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp gt] -[visit_id gt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{gt : globaltype, `tv*` : typevar*, `tu*` : typeuse*}(`GLOBAL`_externtype(gt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `GLOBAL`_externtype($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] tt tu tv -[visit_exp `TABLE`_externtype(tt)] -[visit_exp (tt)] -[visit_exp tt] -[visit_id tt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `TABLE`_externtype($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp ($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp $subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp tt] -[visit_id tt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{tt : tabletype, `tv*` : typevar*, `tu*` : typeuse*}(`TABLE`_externtype(tt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TABLE`_externtype($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] mt tu tv -[visit_exp `MEM`_externtype(mt)] -[visit_exp (mt)] -[visit_exp mt] -[visit_id mt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `MEM`_externtype($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp ($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}))] -[visit_exp $subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp mt] -[visit_id mt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{mt : memtype, `tv*` : typevar*, `tu*` : typeuse*}(`MEM`_externtype(mt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `MEM`_externtype($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) -[check_dims] dt tu tv -[visit_exp `FUNC`_externtype((dt : deftype <: typeuse))] -[visit_exp ((dt : deftype <: typeuse))] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `FUNC`_externtype(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse))] -[visit_exp (($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse))] -[visit_exp ($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)] -[visit_exp $subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp dt] -[visit_id dt] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{dt : deftype, `tv*` : typevar*, `tu*` : typeuse*}(`FUNC`_externtype((dt : deftype <: typeuse)), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC`_externtype(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)) -[check_dims] tu tv xt_1 xt_2 -[visit_exp `%->%`_moduletype(xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`})] -[visit_exp (xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`})] -[visit_exp xt_1*{xt_1 <- `xt_1*`}] -[scope_enter xt_1] -[visit_exp xt_1] -[visit_id xt_1] not free -[visit_id xt_1] not free -[scope_exit xt_1] -[visit_exp `xt_1*`] -[visit_id xt_1*] no dims -[visit_id xt_1*] -[visit_exp xt_2*{xt_2 <- `xt_2*`}] -[scope_enter xt_2] -[visit_exp xt_2] -[visit_id xt_2] not free -[visit_id xt_2] not free -[scope_exit xt_2] -[visit_exp `xt_2*`] -[visit_id xt_2*] no dims -[visit_id xt_2*] -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] no dims -[visit_id tv*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp `%->%`_moduletype($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`})] -[visit_exp ($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`})] -[visit_exp $subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}] -[scope_enter xt_1] -[visit_exp $subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp xt_1] -[visit_id xt_1] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -[visit_id xt_1] not free -[scope_exit xt_1] -[visit_exp `xt_1*`] -[visit_id xt_1*] not free -[visit_id xt_1*] no dims -[visit_exp $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`}] -[scope_enter xt_2] -[visit_exp $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})] -[visit_exp xt_2] -[visit_id xt_2] not free -[visit_exp tv*{tv <- `tv*`}] -[scope_enter tv] -[visit_exp tv] -[visit_id tv] not free -[visit_id tv] not free -[scope_exit tv] -[visit_exp `tv*`] -[visit_id tv*] not free -[visit_id tv*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -[visit_id xt_2] not free -[scope_exit xt_2] -[visit_exp `xt_2*`] -[visit_id xt_2*] not free -[visit_id xt_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_moduletype{`xt_1*` : externtype*, `xt_2*` : externtype*, `tv*` : typevar*, `tu*` : typeuse*}(`%->%`_moduletype(xt_1*{xt_1 <- `xt_1*`}, xt_2*{xt_2 <- `xt_2*`}), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `%->%`_moduletype($subst_externtype(xt_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_1 <- `xt_1*`}, $subst_externtype(xt_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{xt_2 <- `xt_2*`}) -[check_dims] _ valtype -DecD subst_all_valtype(valtype : valtype, typeuse*) : valtype -[visit_id valtype] not free -[visit_id _] not free -[check_dims] _ reftype -DecD subst_all_reftype(reftype : reftype, typeuse*) : reftype -[visit_id reftype] not free -[visit_id _] not free -[check_dims] _ deftype -DecD subst_all_deftype(deftype : deftype, typeuse*) : deftype -[visit_id deftype] not free -[visit_id _] not free -[check_dims] _ tagtype -DecD subst_all_tagtype(tagtype : tagtype, typeuse*) : tagtype -[visit_id tagtype] not free -[visit_id _] not free -[check_dims] _ globaltype -DecD subst_all_globaltype(globaltype : globaltype, typeuse*) : globaltype -[visit_id globaltype] not free -[visit_id _] not free -[check_dims] _ memtype -DecD subst_all_memtype(memtype : memtype, typeuse*) : memtype -[visit_id memtype] not free -[visit_id _] not free -[check_dims] _ tabletype -DecD subst_all_tabletype(tabletype : tabletype, typeuse*) : tabletype -[visit_id tabletype] not free -[visit_id _] not free -[check_dims] _ externtype -DecD subst_all_externtype(externtype : externtype, typeuse*) : externtype -[visit_id externtype] not free -[visit_id _] not free -[check_dims] _ moduletype -DecD subst_all_moduletype(moduletype : moduletype, typeuse*) : moduletype -[visit_id moduletype] not free -[visit_id _] not free -[check_dims] i n t tu -[visit_exp t] -[visit_id t] -[visit_exp tu^n{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp n] -[visit_id n] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp $subst_valtype(t, `_IDX`_typevar(`%`_typeidx(i))^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_valtype{t : valtype, n : n, `tu*` : typeuse*, i : nat}(t, tu^n{tu <- `tu*`}) = $subst_valtype(t, `_IDX`_typevar(`%`_typeidx(i))^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_reftype{rt : reftype, n : n, `tu*` : typeuse*, i : nat}(rt, tu^n{tu <- `tu*`}) = $subst_reftype(rt, `_IDX`_typevar(`%`_typeidx(i))^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_deftype{dt : deftype, n : n, `tu*` : typeuse*, i : nat}(dt, tu^n{tu <- `tu*`}) = $subst_deftype(dt, `_IDX`_typevar(`%`_typeidx(i))^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_tagtype{jt : tagtype, n : n, `tu*` : typeuse*, i : nat}(jt, tu^n{tu <- `tu*`}) = $subst_tagtype(jt, `_IDX`_typevar(`%`_typeidx(i))^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_globaltype{gt : globaltype, n : n, `tu*` : typeuse*, i : nat}(gt, tu^n{tu <- `tu*`}) = $subst_globaltype(gt, `_IDX`_typevar(`%`_typeidx(i))^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_memtype{mt : memtype, n : n, `tu*` : typeuse*, i : nat}(mt, tu^n{tu <- `tu*`}) = $subst_memtype(mt, `_IDX`_typevar(`%`_typeidx(i))^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_tabletype{tt : tabletype, n : n, `tu*` : typeuse*, i : nat}(tt, tu^n{tu <- `tu*`}) = $subst_tabletype(tt, `_IDX`_typevar(`%`_typeidx(i))^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_externtype{xt : externtype, n : n, `tu*` : typeuse*, i : nat}(xt, tu^n{tu <- `tu*`}) = $subst_externtype(xt, `_IDX`_typevar(`%`_typeidx(i))^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_moduletype{mmt : moduletype, n : n, `tu*` : typeuse*, i : nat}(mmt, tu^n{tu <- `tu*`}) = $subst_moduletype(mmt, `_IDX`_typevar(`%`_typeidx(i))^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_deftypes{`tu*` : typeuse*}([], tu*{tu <- `tu*`}) = [] -[check_dims] dt dt_1 tu -[visit_exp [dt_1] ++ dt*{dt <- `dt*`}] -[visit_exp [dt_1]] -[visit_exp dt_1] -[visit_id dt_1] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] no dims -[visit_id tu*] -[visit_exp [$subst_all_deftype(dt_1, tu*{tu <- `tu*`})] ++ $subst_all_deftypes(dt*{dt <- `dt*`}, tu*{tu <- `tu*`})] -[visit_exp [$subst_all_deftype(dt_1, tu*{tu <- `tu*`})]] -[visit_exp $subst_all_deftype(dt_1, tu*{tu <- `tu*`})] -[visit_exp dt_1] -[visit_id dt_1] not free -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -[visit_exp $subst_all_deftypes(dt*{dt <- `dt*`}, tu*{tu <- `tu*`})] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp tu*{tu <- `tu*`}] -[scope_enter tu] -[visit_exp tu] -[visit_id tu] not free -[visit_id tu] not free -[scope_exit tu] -[visit_exp `tu*`] -[visit_id tu*] not free -[visit_id tu*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_deftypes{dt_1 : deftype, `dt*` : deftype*, `tu*` : typeuse*}([dt_1] ++ dt*{dt <- `dt*`}, tu*{tu <- `tu*`}) = [$subst_all_deftype(dt_1, tu*{tu <- `tu*`})] ++ $subst_all_deftypes(dt*{dt <- `dt*`}, tu*{tu <- `tu*`}) -[check_dims] rectype typeidx -DecD rollrt(typeidx : typeidx, rectype : rectype) : rectype -[visit_id typeidx] not free -[visit_id rectype] not free -[check_dims] rectype -DecD unrollrt(rectype : rectype) : rectype -[visit_id rectype] not free -[check_dims] rectype typeidx -DecD rolldt(typeidx : typeidx, rectype : rectype) : deftype* -[visit_id typeidx] not free -[visit_id rectype] not free -[check_dims] deftype -DecD unrolldt(deftype : deftype) : subtype -[visit_id deftype] not free -[check_dims] deftype -DecD expanddt(deftype : deftype) : comptype -[visit_id deftype] not free -[check_dims] i n rectype subtype x -[visit_exp x] -[visit_id x] -[visit_exp rectype] -[visit_id rectype] -[visit_exp `REC`_rectype(`%`_list($subst_subtype(subtype, `_IDX`_typevar(`%`_typeidx((x!`%`_idx.0 + i)))^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $rollrt{x : idx, rectype : rectype, i : nat, n : n, `subtype*` : subtype*}(x, rectype) = `REC`_rectype(`%`_list($subst_subtype(subtype, `_IDX`_typevar(`%`_typeidx((x!`%`_idx.0 + i)))^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $unrollrt{rectype : rectype, i : nat, n : n, `subtype*` : subtype*}(rectype) = `REC`_rectype(`%`_list($subst_subtype(subtype, `REC`_typevar(i)^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $rolldt{x : idx, rectype : rectype, n : n, `subtype*` : subtype*, i : nat}(x, rectype) = `_DEF`_deftype(`REC`_rectype(`%`_list(subtype^n{subtype <- `subtype*`})), i)^(i - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $unrolldt{rectype : rectype, i : n, `subtype*` : subtype*}(`_DEF`_deftype(rectype, i)) = subtype*{subtype <- `subtype*`}[i] - -- if ($unrollrt(rectype) = `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))) -[check_dims] comptype deftype final typeuse -[visit_exp deftype] -[visit_id deftype] -[visit_exp comptype] -[visit_id comptype] -[visit_exp ($unrolldt(deftype) = `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype))] -[visit_exp $unrolldt(deftype)] -[visit_exp deftype] -[visit_id deftype] not free -[visit_exp `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] -[visit_exp (final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] -[visit_exp final?{final <- `final?`}] -[scope_enter final] -[visit_exp final] -[visit_id final] not free -[visit_id final] not free -[scope_exit final] -[visit_exp `final?`] -[visit_id final?] no dims -[visit_id final?] -[visit_exp typeuse*{typeuse <- `typeuse*`}] -[scope_enter typeuse] -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_id typeuse] not free -[scope_exit typeuse] -[visit_exp `typeuse*`] -[visit_id typeuse*] no dims -[visit_id typeuse*] -[visit_exp comptype] -[visit_id comptype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $expanddt{deftype : deftype, comptype : comptype, `final?` : final?, `typeuse*` : typeuse*}(deftype) = comptype - -- if ($unrolldt(deftype) = `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) -[check_dims] numtype -DecD free_addrtype(numtype : numtype) : free -[visit_id numtype] not free -[check_dims] numtype -DecD free_numtype(numtype : numtype) : free -[visit_id numtype] not free -[check_dims] packtype -DecD free_packtype(packtype : packtype) : free -[visit_id packtype] not free -[check_dims] lanetype -DecD free_lanetype(lanetype : lanetype) : free -[visit_id lanetype] not free -[check_dims] vectype -DecD free_vectype(vectype : vectype) : free -[visit_id vectype] not free -[check_dims] consttype -DecD free_consttype(consttype : consttype) : free -[visit_id consttype] not free -[check_dims] absheaptype -DecD free_absheaptype(absheaptype : absheaptype) : free -[visit_id absheaptype] not free -[check_dims] heaptype -DecD free_heaptype(heaptype : heaptype) : free -[visit_id heaptype] not free -[check_dims] reftype -DecD free_reftype(reftype : reftype) : free -[visit_id reftype] not free -[check_dims] typevar -DecD free_typevar(typevar : typevar) : free -[visit_id typevar] not free -[check_dims] typeuse -DecD free_typeuse(typeuse : typeuse) : free -[visit_id typeuse] not free -[check_dims] valtype -DecD free_valtype(valtype : valtype) : free -[visit_id valtype] not free -[check_dims] resulttype -DecD free_resulttype(resulttype : resulttype) : free -[visit_id resulttype] not free -[check_dims] storagetype -DecD free_storagetype(storagetype : storagetype) : free -[visit_id storagetype] not free -[check_dims] fieldtype -DecD free_fieldtype(fieldtype : fieldtype) : free -[visit_id fieldtype] not free -[check_dims] comptype -DecD free_comptype(comptype : comptype) : free -[visit_id comptype] not free -[check_dims] subtype -DecD free_subtype(subtype : subtype) : free -[visit_id subtype] not free -[check_dims] rectype -DecD free_rectype(rectype : rectype) : free -[visit_id rectype] not free -[check_dims] tagtype -DecD free_tagtype(tagtype : tagtype) : free -[visit_id tagtype] not free -[check_dims] globaltype -DecD free_globaltype(globaltype : globaltype) : free -[visit_id globaltype] not free -[check_dims] memtype -DecD free_memtype(memtype : memtype) : free -[visit_id memtype] not free -[check_dims] tabletype -DecD free_tabletype(tabletype : tabletype) : free -[visit_id tabletype] not free -[check_dims] datatype -DecD free_datatype(datatype : datatype) : free -[visit_id datatype] not free -[check_dims] elemtype -DecD free_elemtype(elemtype : elemtype) : free -[visit_id elemtype] not free -[check_dims] externtype -DecD free_externtype(externtype : externtype) : free -[visit_id externtype] not free -[check_dims] moduletype -DecD free_moduletype(moduletype : moduletype) : free -[visit_id moduletype] not free -[check_dims] addrtype -[visit_exp (addrtype : addrtype <: numtype)] -[visit_exp addrtype] -[visit_id addrtype] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_addrtype{addrtype : addrtype}((addrtype : addrtype <: numtype)) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] numtype -[visit_exp numtype] -[visit_id numtype] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_numtype{numtype : numtype}(numtype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] packtype -[visit_exp packtype] -[visit_id packtype] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_packtype{packtype : packtype}(packtype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] numtype -[visit_exp (numtype : numtype <: lanetype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp $free_numtype(numtype)] -[visit_exp numtype] -[visit_id numtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_lanetype{numtype : numtype}((numtype : numtype <: lanetype)) = $free_numtype(numtype) -[check_dims] packtype -[visit_exp (packtype : packtype <: lanetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp $free_packtype(packtype)] -[visit_exp packtype] -[visit_id packtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_lanetype{packtype : packtype}((packtype : packtype <: lanetype)) = $free_packtype(packtype) -[check_dims] vectype -[visit_exp vectype] -[visit_id vectype] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_vectype{vectype : vectype}(vectype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] numtype -[visit_exp (numtype : numtype <: consttype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp $free_numtype(numtype)] -[visit_exp numtype] -[visit_id numtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_consttype{numtype : numtype}((numtype : numtype <: consttype)) = $free_numtype(numtype) -[check_dims] vectype -[visit_exp (vectype : vectype <: consttype)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp $free_vectype(vectype)] -[visit_exp vectype] -[visit_id vectype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_consttype{vectype : vectype}((vectype : vectype <: consttype)) = $free_vectype(vectype) -[check_dims] absheaptype -[visit_exp absheaptype] -[visit_id absheaptype] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_absheaptype{absheaptype : absheaptype}(absheaptype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] deftype -DecD free_deftype(deftype : deftype) : free -[visit_id deftype] not free -[check_dims] n rectype -[visit_exp `_DEF`_deftype(rectype, n)] -[visit_exp (rectype, n)] -[visit_exp rectype] -[visit_id rectype] -[visit_exp n] -[visit_id n] -[visit_exp $free_rectype(rectype)] -[visit_exp rectype] -[visit_id rectype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_deftype{rectype : rectype, n : n}(`_DEF`_deftype(rectype, n)) = $free_rectype(rectype) -[check_dims] typeidx -[visit_exp `_IDX`_typevar(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_typevar{typeidx : typeidx}(`_IDX`_typevar(typeidx)) = $free_typeidx(typeidx) -[check_dims] n -[visit_exp `REC`_typevar(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_typevar{n : n}(`REC`_typevar(n)) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] typevar -[visit_exp (typevar : typevar <: typeuse)] -[visit_exp typevar] -[visit_id typevar] -[visit_exp $free_typevar(typevar)] -[visit_exp typevar] -[visit_id typevar] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_typeuse{typevar : typevar}((typevar : typevar <: typeuse)) = $free_typevar(typevar) -[check_dims] deftype -[visit_exp (deftype : deftype <: typeuse)] -[visit_exp deftype] -[visit_id deftype] -[visit_exp $free_deftype(deftype)] -[visit_exp deftype] -[visit_id deftype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_typeuse{deftype : deftype}((deftype : deftype <: typeuse)) = $free_deftype(deftype) -[check_dims] absheaptype -[visit_exp (absheaptype : absheaptype <: heaptype)] -[visit_exp absheaptype] -[visit_id absheaptype] -[visit_exp $free_absheaptype(absheaptype)] -[visit_exp absheaptype] -[visit_id absheaptype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_heaptype{absheaptype : absheaptype}((absheaptype : absheaptype <: heaptype)) = $free_absheaptype(absheaptype) -[check_dims] typeuse -[visit_exp (typeuse : typeuse <: heaptype)] -[visit_exp typeuse] -[visit_id typeuse] -[visit_exp $free_typeuse(typeuse)] -[visit_exp typeuse] -[visit_id typeuse] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_heaptype{typeuse : typeuse}((typeuse : typeuse <: heaptype)) = $free_typeuse(typeuse) -[check_dims] heaptype null -[visit_exp `REF`_reftype(null?{null <- `null?`}, heaptype)] -[visit_exp (null?{null <- `null?`}, heaptype)] -[visit_exp null?{null <- `null?`}] -[scope_enter null] -[visit_exp null] -[visit_id null] not free -[visit_id null] not free -[scope_exit null] -[visit_exp `null?`] -[visit_id null?] no dims -[visit_id null?] -[visit_exp heaptype] -[visit_id heaptype] -[visit_exp $free_heaptype(heaptype)] -[visit_exp heaptype] -[visit_id heaptype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_reftype{`null?` : null?, heaptype : heaptype}(`REF`_reftype(null?{null <- `null?`}, heaptype)) = $free_heaptype(heaptype) -[check_dims] numtype -[visit_exp (numtype : numtype <: valtype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp $free_numtype(numtype)] -[visit_exp numtype] -[visit_id numtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_valtype{numtype : numtype}((numtype : numtype <: valtype)) = $free_numtype(numtype) -[check_dims] vectype -[visit_exp (vectype : vectype <: valtype)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp $free_vectype(vectype)] -[visit_exp vectype] -[visit_id vectype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_valtype{vectype : vectype}((vectype : vectype <: valtype)) = $free_vectype(vectype) -[check_dims] reftype -[visit_exp (reftype : reftype <: valtype)] -[visit_exp reftype] -[visit_id reftype] -[visit_exp $free_reftype(reftype)] -[visit_exp reftype] -[visit_id reftype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_valtype{reftype : reftype}((reftype : reftype <: valtype)) = $free_reftype(reftype) -[check_dims] -[visit_exp `BOT`_valtype] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_valtype(`BOT`_valtype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] valtype -[visit_exp `%`_resulttype(valtype*{valtype <- `valtype*`})] -[visit_exp (valtype*{valtype <- `valtype*`})] -[visit_exp valtype*{valtype <- `valtype*`}] -[scope_enter valtype] -[visit_exp valtype] -[visit_id valtype] not free -[visit_id valtype] not free -[scope_exit valtype] -[visit_exp `valtype*`] -[visit_id valtype*] no dims -[visit_id valtype*] -[visit_exp $free_list($free_valtype(valtype)*{valtype <- `valtype*`})] -[visit_exp $free_valtype(valtype)*{valtype <- `valtype*`}] -[scope_enter valtype] -[visit_exp $free_valtype(valtype)] -[visit_exp valtype] -[visit_id valtype] not free -[visit_id valtype] not free -[scope_exit valtype] -[visit_exp `valtype*`] -[visit_id valtype*] not free -[visit_id valtype*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_resulttype{`valtype*` : valtype*}(`%`_resulttype(valtype*{valtype <- `valtype*`})) = $free_list($free_valtype(valtype)*{valtype <- `valtype*`}) -[check_dims] valtype -[visit_exp (valtype : valtype <: storagetype)] -[visit_exp valtype] -[visit_id valtype] -[visit_exp $free_valtype(valtype)] -[visit_exp valtype] -[visit_id valtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_storagetype{valtype : valtype}((valtype : valtype <: storagetype)) = $free_valtype(valtype) -[check_dims] packtype -[visit_exp (packtype : packtype <: storagetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp $free_packtype(packtype)] -[visit_exp packtype] -[visit_id packtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_storagetype{packtype : packtype}((packtype : packtype <: storagetype)) = $free_packtype(packtype) -[check_dims] mut storagetype -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, storagetype)] -[visit_exp (mut?{mut <- `mut?`}, storagetype)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp storagetype] -[visit_id storagetype] -[visit_exp $free_storagetype(storagetype)] -[visit_exp storagetype] -[visit_id storagetype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_fieldtype{`mut?` : mut?, storagetype : storagetype}(`%%`_fieldtype(mut?{mut <- `mut?`}, storagetype)) = $free_storagetype(storagetype) -[check_dims] fieldtype -[visit_exp `STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))] -[visit_exp (`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))] -[visit_exp `%`_list(fieldtype*{fieldtype <- `fieldtype*`})] -[visit_exp (fieldtype*{fieldtype <- `fieldtype*`})] -[visit_exp fieldtype*{fieldtype <- `fieldtype*`}] -[scope_enter fieldtype] -[visit_exp fieldtype] -[visit_id fieldtype] not free -[visit_id fieldtype] not free -[scope_exit fieldtype] -[visit_exp `fieldtype*`] -[visit_id fieldtype*] no dims -[visit_id fieldtype*] -[visit_exp $free_list($free_fieldtype(fieldtype)*{fieldtype <- `fieldtype*`})] -[visit_exp $free_fieldtype(fieldtype)*{fieldtype <- `fieldtype*`}] -[scope_enter fieldtype] -[visit_exp $free_fieldtype(fieldtype)] -[visit_exp fieldtype] -[visit_id fieldtype] not free -[visit_id fieldtype] not free -[scope_exit fieldtype] -[visit_exp `fieldtype*`] -[visit_id fieldtype*] not free -[visit_id fieldtype*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_comptype{`fieldtype*` : fieldtype*}(`STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))) = $free_list($free_fieldtype(fieldtype)*{fieldtype <- `fieldtype*`}) -[check_dims] fieldtype -[visit_exp `ARRAY`_comptype(fieldtype)] -[visit_exp (fieldtype)] -[visit_exp fieldtype] -[visit_id fieldtype] -[visit_exp $free_fieldtype(fieldtype)] -[visit_exp fieldtype] -[visit_id fieldtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_comptype{fieldtype : fieldtype}(`ARRAY`_comptype(fieldtype)) = $free_fieldtype(fieldtype) -[check_dims] resulttype_1 resulttype_2 -[visit_exp `FUNC%->%`_comptype(resulttype_1, resulttype_2)] -[visit_exp (resulttype_1, resulttype_2)] -[visit_exp resulttype_1] -[visit_id resulttype_1] -[visit_exp resulttype_2] -[visit_id resulttype_2] -[visit_exp $free_resulttype(resulttype_1) +++ $free_resulttype(resulttype_2)] -[visit_exp $free_resulttype(resulttype_1)] -[visit_exp resulttype_1] -[visit_id resulttype_1] not free -[visit_exp $free_resulttype(resulttype_2)] -[visit_exp resulttype_2] -[visit_id resulttype_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_comptype{resulttype_1 : resulttype, resulttype_2 : resulttype}(`FUNC%->%`_comptype(resulttype_1, resulttype_2)) = $free_resulttype(resulttype_1) +++ $free_resulttype(resulttype_2) -[check_dims] comptype final typeuse -[visit_exp `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] -[visit_exp (final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)] -[visit_exp final?{final <- `final?`}] -[scope_enter final] -[visit_exp final] -[visit_id final] not free -[visit_id final] not free -[scope_exit final] -[visit_exp `final?`] -[visit_id final?] no dims -[visit_id final?] -[visit_exp typeuse*{typeuse <- `typeuse*`}] -[scope_enter typeuse] -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_id typeuse] not free -[scope_exit typeuse] -[visit_exp `typeuse*`] -[visit_id typeuse*] no dims -[visit_id typeuse*] -[visit_exp comptype] -[visit_id comptype] -[visit_exp $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`}) +++ $free_comptype(comptype)] -[visit_exp $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`})] -[visit_exp $free_typeuse(typeuse)*{typeuse <- `typeuse*`}] -[scope_enter typeuse] -[visit_exp $free_typeuse(typeuse)] -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_id typeuse] not free -[scope_exit typeuse] -[visit_exp `typeuse*`] -[visit_id typeuse*] not free -[visit_id typeuse*] no dims -[visit_exp $free_comptype(comptype)] -[visit_exp comptype] -[visit_id comptype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_subtype{`final?` : final?, `typeuse*` : typeuse*, comptype : comptype}(`SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) = $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`}) +++ $free_comptype(comptype) -[check_dims] subtype -[visit_exp `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list(subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list(subtype*{subtype <- `subtype*`})] -[visit_exp (subtype*{subtype <- `subtype*`})] -[visit_exp subtype*{subtype <- `subtype*`}] -[scope_enter subtype] -[visit_exp subtype] -[visit_id subtype] not free -[visit_id subtype] not free -[scope_exit subtype] -[visit_exp `subtype*`] -[visit_id subtype*] no dims -[visit_id subtype*] -[visit_exp $free_list($free_subtype(subtype)*{subtype <- `subtype*`})] -[visit_exp $free_subtype(subtype)*{subtype <- `subtype*`}] -[scope_enter subtype] -[visit_exp $free_subtype(subtype)] -[visit_exp subtype] -[visit_id subtype] not free -[visit_id subtype] not free -[scope_exit subtype] -[visit_exp `subtype*`] -[visit_id subtype*] not free -[visit_id subtype*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_rectype{`subtype*` : subtype*}(`REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))) = $free_list($free_subtype(subtype)*{subtype <- `subtype*`}) -[check_dims] deftype -[visit_exp (deftype : deftype <: typeuse)] -[visit_exp deftype] -[visit_id deftype] -[visit_exp $free_deftype(deftype)] -[visit_exp deftype] -[visit_id deftype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_tagtype{deftype : deftype}((deftype : deftype <: typeuse)) = $free_deftype(deftype) -[check_dims] mut valtype -[visit_exp `%%`_globaltype(mut?{mut <- `mut?`}, valtype)] -[visit_exp (mut?{mut <- `mut?`}, valtype)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp valtype] -[visit_id valtype] -[visit_exp $free_valtype(valtype)] -[visit_exp valtype] -[visit_id valtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_globaltype{`mut?` : mut?, valtype : valtype}(`%%`_globaltype(mut?{mut <- `mut?`}, valtype)) = $free_valtype(valtype) -[check_dims] addrtype limits -[visit_exp `%%PAGE`_memtype(addrtype, limits)] -[visit_exp (addrtype, limits)] -[visit_exp addrtype] -[visit_id addrtype] -[visit_exp limits] -[visit_id limits] -[visit_exp $free_addrtype((addrtype : addrtype <: numtype))] -[visit_exp (addrtype : addrtype <: numtype)] -[visit_exp addrtype] -[visit_id addrtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_memtype{addrtype : addrtype, limits : limits}(`%%PAGE`_memtype(addrtype, limits)) = $free_addrtype((addrtype : addrtype <: numtype)) -[check_dims] addrtype limits reftype -[visit_exp `%%%`_tabletype(addrtype, limits, reftype)] -[visit_exp (addrtype, limits, reftype)] -[visit_exp addrtype] -[visit_id addrtype] -[visit_exp limits] -[visit_id limits] -[visit_exp reftype] -[visit_id reftype] -[visit_exp $free_addrtype((addrtype : addrtype <: numtype)) +++ $free_reftype(reftype)] -[visit_exp $free_addrtype((addrtype : addrtype <: numtype))] -[visit_exp (addrtype : addrtype <: numtype)] -[visit_exp addrtype] -[visit_id addrtype] not free -[visit_exp $free_reftype(reftype)] -[visit_exp reftype] -[visit_id reftype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_tabletype{addrtype : addrtype, limits : limits, reftype : reftype}(`%%%`_tabletype(addrtype, limits, reftype)) = $free_addrtype((addrtype : addrtype <: numtype)) +++ $free_reftype(reftype) -[check_dims] -[visit_exp `OK`_datatype] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_datatype(`OK`_datatype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] reftype -[visit_exp reftype] -[visit_id reftype] -[visit_exp $free_reftype(reftype)] -[visit_exp reftype] -[visit_id reftype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_elemtype{reftype : reftype}(reftype) = $free_reftype(reftype) -[check_dims] tagtype -[visit_exp `TAG`_externtype(tagtype)] -[visit_exp (tagtype)] -[visit_exp tagtype] -[visit_id tagtype] -[visit_exp $free_tagtype(tagtype)] -[visit_exp tagtype] -[visit_id tagtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{tagtype : tagtype}(`TAG`_externtype(tagtype)) = $free_tagtype(tagtype) -[check_dims] globaltype -[visit_exp `GLOBAL`_externtype(globaltype)] -[visit_exp (globaltype)] -[visit_exp globaltype] -[visit_id globaltype] -[visit_exp $free_globaltype(globaltype)] -[visit_exp globaltype] -[visit_id globaltype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{globaltype : globaltype}(`GLOBAL`_externtype(globaltype)) = $free_globaltype(globaltype) -[check_dims] memtype -[visit_exp `MEM`_externtype(memtype)] -[visit_exp (memtype)] -[visit_exp memtype] -[visit_id memtype] -[visit_exp $free_memtype(memtype)] -[visit_exp memtype] -[visit_id memtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{memtype : memtype}(`MEM`_externtype(memtype)) = $free_memtype(memtype) -[check_dims] tabletype -[visit_exp `TABLE`_externtype(tabletype)] -[visit_exp (tabletype)] -[visit_exp tabletype] -[visit_id tabletype] -[visit_exp $free_tabletype(tabletype)] -[visit_exp tabletype] -[visit_id tabletype] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{tabletype : tabletype}(`TABLE`_externtype(tabletype)) = $free_tabletype(tabletype) -[check_dims] typeuse -[visit_exp `FUNC`_externtype(typeuse)] -[visit_exp (typeuse)] -[visit_exp typeuse] -[visit_id typeuse] -[visit_exp $free_typeuse(typeuse)] -[visit_exp typeuse] -[visit_id typeuse] not free -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{typeuse : typeuse}(`FUNC`_externtype(typeuse)) = $free_typeuse(typeuse) -[check_dims] externtype_1 externtype_2 -[visit_exp `%->%`_moduletype(externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})] -[visit_exp (externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})] -[visit_exp externtype_1*{externtype_1 <- `externtype_1*`}] -[scope_enter externtype_1] -[visit_exp externtype_1] -[visit_id externtype_1] not free -[visit_id externtype_1] not free -[scope_exit externtype_1] -[visit_exp `externtype_1*`] -[visit_id externtype_1*] no dims -[visit_id externtype_1*] -[visit_exp externtype_2*{externtype_2 <- `externtype_2*`}] -[scope_enter externtype_2] -[visit_exp externtype_2] -[visit_id externtype_2] not free -[visit_id externtype_2] not free -[scope_exit externtype_2] -[visit_exp `externtype_2*`] -[visit_id externtype_2*] no dims -[visit_id externtype_2*] -[visit_exp $free_list($free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`}) +++ $free_list($free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`})] -[visit_exp $free_list($free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`})] -[visit_exp $free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`}] -[scope_enter externtype_1] -[visit_exp $free_externtype(externtype_1)] -[visit_exp externtype_1] -[visit_id externtype_1] not free -[visit_id externtype_1] not free -[scope_exit externtype_1] -[visit_exp `externtype_1*`] -[visit_id externtype_1*] not free -[visit_id externtype_1*] no dims -[visit_exp $free_list($free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`})] -[visit_exp $free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`}] -[scope_enter externtype_2] -[visit_exp $free_externtype(externtype_2)] -[visit_exp externtype_2] -[visit_id externtype_2] not free -[visit_id externtype_2] not free -[scope_exit externtype_2] -[visit_exp `externtype_2*`] -[visit_id externtype_2*] not free -[visit_id externtype_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_moduletype{`externtype_1*` : externtype*, `externtype_2*` : externtype*}(`%->%`_moduletype(externtype_1*{externtype_1 <- `externtype_1*`}, externtype_2*{externtype_2 <- `externtype_2*`})) = $free_list($free_externtype(externtype_1)*{externtype_1 <- `externtype_1*`}) +++ $free_list($free_externtype(externtype_2)*{externtype_2 <- `externtype_2*`}) -[check_dims] numtype -[visit_id numtype] not free -[check_dims] Inn -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[check_dims] Fnn -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[check_dims] Pnn -[visit_exp Pnn] -[visit_id Pnn] -[check_dims] lanetype -[visit_id lanetype] not free -[check_dims] numtype -[visit_exp (numtype : numtype <: lanetype)] -[visit_exp numtype] -[visit_id numtype] -[check_dims] packtype -[visit_exp (packtype : packtype <: lanetype)] -[visit_exp packtype] -[visit_id packtype] -[check_dims] Jnn -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[check_dims] Vnn -[visit_exp Vnn] -[visit_id Vnn] -[check_dims] storagetype -[visit_id storagetype] not free -[check_dims] numtype -[visit_exp (numtype : numtype <: storagetype)] -[visit_exp numtype] -[visit_id numtype] -[check_dims] vectype -[visit_exp (vectype : vectype <: storagetype)] -[visit_exp vectype] -[visit_id vectype] -[check_dims] packtype -[visit_exp (packtype : packtype <: storagetype)] -[visit_exp packtype] -[visit_id packtype] -[check_dims] -[check_dims] -[visit_exp 8] -[check_dims] -[visit_exp 16] -[check_dims] -[visit_exp 32] -[check_dims] -[visit_exp 64] -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] numtype -[visit_id numtype] not free -[check_dims] Inn -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn -[scope_enter sz] -[visit_id sz] not free -[visit_id sz] no dims -[scope_exit sz] ---- 1 --- -[check_dims] Inn sz ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype)))] -[visit_exp sz!`%`_sz.0] -[visit_exp sz!`%`_sz] -[visit_exp sz] -[visit_id sz] not free -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_id Inn] no dims -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[check_dims] Fnn -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[check_dims] numtype -[visit_id numtype] not free -[check_dims] Inn -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[check_dims] Fnn -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[check_dims] numtype -[visit_id numtype] not free -[check_dims] Inn -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[check_dims] numtype -[visit_id numtype] not free -[check_dims] Inn -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Inn -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Inn ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[check_dims] Fnn -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn ---- 1 --- -[check_dims] Fnn ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[check_dims] numtype_1 numtype_2 -[visit_id numtype_1] not free -[visit_id numtype_2] not free -[check_dims] Inn_1 Inn_2 -[check_dims] Inn_1 Inn_2 -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Inn_1 Inn_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($sizenn1((Inn_1 : Inn <: numtype)) < $sizenn2((Inn_2 : Inn <: numtype)))] -[visit_exp $sizenn1((Inn_1 : Inn <: numtype))] -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] not free -[visit_id Inn_1] no dims -[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] not free -[visit_id Inn_2] no dims -[check_dims] Inn_1 Inn_2 ---- 1 --- -[check_dims] Inn_1 Inn_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($sizenn1((Inn_1 : Inn <: numtype)) > $sizenn2((Inn_2 : Inn <: numtype)))] -[visit_exp $sizenn1((Inn_1 : Inn <: numtype))] -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] not free -[visit_id Inn_1] no dims -[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] not free -[visit_id Inn_2] no dims -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] -[check_dims] Fnn_2 Inn_1 -[check_dims] Fnn_2 Inn_1 -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Fnn_2 Inn_1 ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn_2 Inn_1 ---- 1 --- -[check_dims] Fnn_2 Inn_1 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($sizenn1((Inn_1 : Inn <: numtype)) = $sizenn2((Fnn_2 : Fnn <: numtype)))] -[visit_exp $sizenn1((Inn_1 : Inn <: numtype))] -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] not free -[visit_id Inn_1] no dims -[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_id Fnn_2] no dims -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[check_dims] Fnn_1 Inn_2 -[check_dims] Fnn_1 Inn_2 -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Fnn_1 Inn_2 ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn_1 Inn_2 -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Fnn_1 Inn_2 ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn_1 Inn_2 ---- 1 --- -[check_dims] Fnn_1 Inn_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) = $sizenn2((Inn_2 : Inn <: numtype)))] -[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_id Fnn_1] no dims -[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] not free -[visit_id Inn_2] no dims -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] -[check_dims] Fnn_1 Fnn_2 -[check_dims] Fnn_1 Fnn_2 ---- 1 --- -[check_dims] Fnn_1 Fnn_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) < $sizenn2((Fnn_2 : Fnn <: numtype)))] -[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_id Fnn_1] no dims -[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_id Fnn_2] no dims -[check_dims] Fnn_1 Fnn_2 ---- 1 --- -[check_dims] Fnn_1 Fnn_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) > $sizenn2((Fnn_2 : Fnn <: numtype)))] -[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_id Fnn_1] no dims -[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_id Fnn_2] no dims -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[check_dims] -[check_dims] -[visit_exp 1] -[check_dims] -[visit_exp 2] -[check_dims] -[visit_exp 4] -[check_dims] -[visit_exp 8] -[check_dims] -[visit_exp 16] -[check_dims] -[check_dims] -[scope_enter lanetype] -[visit_id lanetype] not free -[visit_id lanetype] no dims -[scope_enter dim] -[visit_id dim] not free -[visit_id dim] no dims -[scope_exit dim] -[scope_exit lanetype] ---- 1 --- -[check_dims] dim lanetype ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (($lsize(lanetype) * dim!`%`_dim.0) = 128)] -[visit_exp ($lsize(lanetype) * dim!`%`_dim.0)] -[visit_exp $lsize(lanetype)] -[visit_exp lanetype] -[visit_id lanetype] not free -[visit_exp dim!`%`_dim.0] -[visit_exp dim!`%`_dim] -[visit_exp dim] -[visit_id dim] not free -[visit_exp 128] -[check_dims] shape -DecD dim(shape : shape) : dim -[visit_id shape] not free -[check_dims] Lnn N -[visit_exp `%X%`_shape(Lnn, `%`_dim(N))] -[visit_exp (Lnn, `%`_dim(N))] -[visit_exp Lnn] -[visit_id Lnn] -[visit_exp `%`_dim(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp `%`_dim(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $dim{Lnn : Lnn, N : N}(`%X%`_shape(Lnn, `%`_dim(N))) = `%`_dim(N) -[check_dims] shape -DecD lanetype(shape : shape) : lanetype -[visit_id shape] not free -[check_dims] Lnn N -[visit_exp `%X%`_shape(Lnn, `%`_dim(N))] -[visit_exp (Lnn, `%`_dim(N))] -[visit_exp Lnn] -[visit_id Lnn] -[visit_exp `%`_dim(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp Lnn] -[visit_id Lnn] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $lanetype{Lnn : Lnn, N : N}(`%X%`_shape(Lnn, `%`_dim(N))) = Lnn -[check_dims] shape -DecD unpackshape(shape : shape) : numtype -[visit_id shape] not free -[check_dims] Lnn N -[visit_exp `%X%`_shape(Lnn, `%`_dim(N))] -[visit_exp (Lnn, `%`_dim(N))] -[visit_exp Lnn] -[visit_id Lnn] -[visit_exp `%`_dim(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp $lunpack(Lnn)] -[visit_exp Lnn] -[visit_id Lnn] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $unpackshape{Lnn : Lnn, N : N}(`%X%`_shape(Lnn, `%`_dim(N))) = $lunpack(Lnn) -[check_dims] -[check_dims] -[scope_enter shape] -[visit_id shape] not free -[visit_id shape] no dims -[scope_exit shape] ---- 1 --- -[check_dims] Jnn shape ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($lanetype(shape) = (Jnn : Jnn <: lanetype))] -[visit_exp $lanetype(shape)] -[visit_exp shape] -[visit_id shape] not free -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[check_dims] -[check_dims] -[scope_enter shape] -[visit_id shape] not free -[visit_id shape] no dims -[scope_exit shape] ---- 1 --- -[check_dims] shape ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($lanetype(shape) = `I8`_lanetype)] -[visit_exp $lanetype(shape)] -[visit_exp shape] -[visit_id shape] not free -[visit_exp `I8`_lanetype] -[visit_exp ()] -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] shape -[visit_id shape] not free -[check_dims] Jnn M -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) = 8)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_id Jnn] no dims -[visit_exp 8] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[check_dims] Fnn M -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[check_dims] shape -[visit_id shape] not free -[check_dims] Jnn M -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Jnn M -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 16)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_id Jnn] no dims -[visit_exp 16] -[check_dims] Jnn M -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 16)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_id Jnn] no dims -[visit_exp 16] -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) >= 16)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_id Jnn] no dims -[visit_exp 16] -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 16)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_id Jnn] no dims -[visit_exp 16] -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) = 16)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_id Jnn] no dims -[visit_exp 16] -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) = 16)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_id Jnn] no dims -[visit_exp 16] -[check_dims] Jnn M -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 32)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_id Jnn] no dims -[visit_exp 32] -[check_dims] Jnn M -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) <= 32)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_id Jnn] no dims -[visit_exp 32] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[check_dims] Fnn M -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[check_dims] shape -[visit_id shape] not free -[check_dims] Jnn M -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[check_dims] Fnn M -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[check_dims] shape -[visit_id shape] not free -[check_dims] Jnn M -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[check_dims] shape -[visit_id shape] not free -[check_dims] Jnn M -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Jnn M -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Jnn M sx ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx))] -[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) =/= 64)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_id Jnn] no dims -[visit_exp 64] -[visit_exp (sx = `S`_sx)] -[visit_exp sx] -[visit_id sx] not free -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] Jnn M -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Jnn M sx ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx))] -[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) =/= 64)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_id Jnn] no dims -[visit_exp 64] -[visit_exp (sx = `S`_sx)] -[visit_exp sx] -[visit_id sx] not free -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] Jnn M -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Jnn M sx ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx))] -[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) =/= 64)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_id Jnn] no dims -[visit_exp 64] -[visit_exp (sx = `S`_sx)] -[visit_exp sx] -[visit_id sx] not free -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] Jnn M -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Jnn M sx ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx))] -[visit_exp ($lsizenn((Jnn : Jnn <: lanetype)) =/= 64)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_id Jnn] no dims -[visit_exp 64] -[visit_exp (sx = `S`_sx)] -[visit_exp sx] -[visit_id sx] not free -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[check_dims] Fnn M -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Fnn M ---- 1 --- -[check_dims] Fnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[check_dims] ishape -[visit_id ishape] not free -[check_dims] Jnn M -[check_dims] Jnn M ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] Jnn M -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Jnn M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] -[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[check_dims] bshape -[visit_id bshape] not free -[check_dims] M -[check_dims] M ---- 1 --- -[check_dims] M ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] M ---- 1 --- -[check_dims] M ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] -[visit_exp (`I8`_lanetype, `%`_dim(M))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[check_dims] ishape_1 ishape_2 -[visit_id ishape_1] not free -[visit_id ishape_2] not free -[check_dims] Jnn_1 Jnn_2 M_1 M_2 -[check_dims] Jnn_1 Jnn_2 M_1 M_2 -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] Jnn_1 Jnn_2 M_1 M_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ((16 <= (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) <= 32)))] -[visit_exp (16 <= (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))))] -[visit_exp 16] -[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] -[visit_exp 2] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_id Jnn_1] no dims -[visit_exp (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) <= 32))] -[visit_exp ((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] -[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] -[visit_exp 2] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_id Jnn_1] no dims -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) <= 32)] -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp 32] -[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[check_dims] ishape_1 ishape_2 -[visit_id ishape_1] not free -[visit_id ishape_2] not free -[check_dims] Jnn_1 Jnn_2 M_1 M_2 -[check_dims] Jnn_1 Jnn_2 M_1 M_2 -[scope_enter half] -[visit_id half] not free -[visit_id half] no dims -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] -[scope_exit half] ---- 1 --- -[check_dims] Jnn_1 Jnn_2 M_1 M_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) >= 16))] -[visit_exp ((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] -[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] -[visit_exp 2] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_id Jnn_1] no dims -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) >= 16)] -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp 16] -[check_dims] Jnn_1 Jnn_2 M_1 M_2 ---- 1 --- -[check_dims] Jnn_1 Jnn_2 M_1 M_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32))] -[visit_exp ((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] -[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] -[visit_exp 2] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_id Jnn_1] no dims -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)] -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp 32] -[check_dims] Jnn_1 Jnn_2 M_1 M_2 ---- 1 --- -[check_dims] Jnn_1 Jnn_2 M_1 M_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 16))] -[visit_exp ((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] -[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] -[visit_exp 2] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_id Jnn_1] no dims -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 16)] -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp 16] -[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[check_dims] ishape_1 ishape_2 -[visit_id ishape_1] not free -[visit_id ishape_2] not free -[check_dims] Jnn_1 Jnn_2 M_1 M_2 -[check_dims] Jnn_1 Jnn_2 M_1 M_2 ---- 1 --- -[check_dims] Jnn_1 Jnn_2 M_1 M_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (((4 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32))] -[visit_exp ((4 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] -[visit_exp (4 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] -[visit_exp 4] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_id Jnn_1] no dims -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)] -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp 32] -[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[check_dims] shape_1 shape_2 -[visit_id shape_1] not free -[visit_id shape_2] not free -[check_dims] Jnn_1 Jnn_2 M_1 M_2 -[check_dims] Jnn_1 Jnn_2 M_1 M_2 -[scope_enter half] -[visit_id half] not free -[visit_id half] no dims -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] -[scope_exit half] ---- 1 --- -[check_dims] Jnn_1 Jnn_2 M_1 M_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))))] -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] -[visit_exp 2] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_id Jnn_1] no dims -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[check_dims] Fnn_2 Jnn_1 M_1 M_2 -[check_dims] Fnn_2 Jnn_1 M_1 M_2 -[scope_enter half?] -[visit_id half?] not free -[visit_id half?] no dims -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] -[scope_exit half?] ---- 1 --- -[check_dims] Fnn_2 Jnn_1 M_1 M_2 half ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (((($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32)) /\ (half?{half <- `half?`} = ?())) \/ (($sizenn2((Fnn_2 : Fnn <: numtype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (half?{half <- `half?`} = ?(`LOW`_half))))] -[visit_exp ((($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32)) /\ (half?{half <- `half?`} = ?()))] -[visit_exp (($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32))] -[visit_exp ($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype)))] -[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_id Fnn_2] no dims -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_id Jnn_1] no dims -[visit_exp ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32)] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_id Jnn_1] no dims -[visit_exp 32] -[visit_exp (half?{half <- `half?`} = ?())] -[visit_exp half?{half <- `half?`}] -[scope_enter half] -[visit_exp half] -[visit_id half] not free -[visit_id half] not free -[scope_exit half] -[visit_exp `half?`] -[visit_id half?] not free -[visit_id half?] no dims -[visit_exp ?()] -[visit_exp (($sizenn2((Fnn_2 : Fnn <: numtype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (half?{half <- `half?`} = ?(`LOW`_half)))] -[visit_exp ($sizenn2((Fnn_2 : Fnn <: numtype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))))] -[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_id Fnn_2] no dims -[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] -[visit_exp 2] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_id Jnn_1] no dims -[visit_exp (half?{half <- `half?`} = ?(`LOW`_half))] -[visit_exp half?{half <- `half?`}] -[scope_enter half] -[visit_exp half] -[visit_id half] not free -[visit_id half] not free -[scope_exit half] -[visit_exp `half?`] -[visit_id half?] not free -[visit_id half?] no dims -[visit_exp ?(`LOW`_half)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[check_dims] Fnn_1 Jnn_2 M_1 M_2 -[check_dims] Fnn_1 Jnn_2 M_1 M_2 -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_enter zero?] -[visit_id zero?] not free -[visit_id zero?] no dims -[scope_exit zero?] -[scope_exit sx] ---- 1 --- -[check_dims] Fnn_1 Jnn_2 M_1 M_2 zero ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero))))] -[visit_exp ((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?()))] -[visit_exp (($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32))] -[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] -[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_id Fnn_1] no dims -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)] -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp 32] -[visit_exp (zero?{zero <- `zero?`} = ?())] -[visit_exp zero?{zero <- `zero?`}] -[scope_enter zero] -[visit_exp zero] -[visit_id zero] not free -[visit_id zero] not free -[scope_exit zero] -[visit_exp `zero?`] -[visit_id zero?] not free -[visit_id zero?] no dims -[visit_exp ?()] -[visit_exp (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero)))] -[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype))))] -[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_id Fnn_1] no dims -[visit_exp (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))] -[visit_exp 2] -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp (zero?{zero <- `zero?`} = ?(`ZERO`_zero))] -[visit_exp zero?{zero <- `zero?`}] -[scope_enter zero] -[visit_exp zero] -[visit_id zero] not free -[visit_id zero] not free -[scope_exit zero] -[visit_exp `zero?`] -[visit_id zero?] not free -[visit_id zero?] no dims -[visit_exp ?(`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[check_dims] Fnn_1 Jnn_2 M_1 M_2 -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_enter zero?] -[visit_id zero?] not free -[visit_id zero?] no dims -[scope_exit zero?] -[scope_exit sx] ---- 1 --- -[check_dims] Fnn_1 Jnn_2 M_1 M_2 zero ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero))))] -[visit_exp ((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?()))] -[visit_exp (($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32))] -[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype)))] -[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_id Fnn_1] no dims -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)] -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp 32] -[visit_exp (zero?{zero <- `zero?`} = ?())] -[visit_exp zero?{zero <- `zero?`}] -[scope_enter zero] -[visit_exp zero] -[visit_id zero] not free -[visit_id zero] not free -[scope_exit zero] -[visit_exp `zero?`] -[visit_id zero?] not free -[visit_id zero?] no dims -[visit_exp ?()] -[visit_exp (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero)))] -[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype))))] -[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_id Fnn_1] no dims -[visit_exp (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))] -[visit_exp 2] -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_id Jnn_2] no dims -[visit_exp (zero?{zero <- `zero?`} = ?(`ZERO`_zero))] -[visit_exp zero?{zero <- `zero?`}] -[scope_enter zero] -[visit_exp zero] -[visit_id zero] not free -[visit_id zero] not free -[scope_exit zero] -[visit_exp `zero?`] -[visit_id zero?] not free -[visit_id zero?] no dims -[visit_exp ?(`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[check_dims] Fnn_1 Fnn_2 M_1 M_2 -[check_dims] Fnn_1 Fnn_2 M_1 M_2 -[scope_enter zero] -[visit_id zero] not free -[visit_id zero] no dims -[scope_exit zero] ---- 1 --- -[check_dims] Fnn_1 Fnn_2 M_1 M_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $sizenn2((Fnn_2 : Fnn <: numtype))))] -[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_id Fnn_1] no dims -[visit_exp (2 * $sizenn2((Fnn_2 : Fnn <: numtype)))] -[visit_exp 2] -[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_id Fnn_2] no dims -[check_dims] Fnn_1 Fnn_2 M_1 M_2 ---- 1 --- -[check_dims] Fnn_1 Fnn_2 M_1 M_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ((2 * $sizenn1((Fnn_1 : Fnn <: numtype))) = $sizenn2((Fnn_2 : Fnn <: numtype)))] -[visit_exp (2 * $sizenn1((Fnn_1 : Fnn <: numtype)))] -[visit_exp 2] -[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_id Fnn_1] no dims -[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_id Fnn_2] no dims -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[check_dims] -[check_dims] -[scope_enter u32] -[visit_id u32] not free -[visit_id u32] no dims -[scope_exit u32] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter u64] -[visit_id u64] not free -[visit_id u64] no dims -[scope_exit u64] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] numtype -[visit_id numtype] not free -[check_dims] Inn -[check_dims] Inn -[scope_enter sz] -[visit_id sz] not free -[visit_id sz] no dims -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] -[scope_exit sz] ---- 1 --- -[check_dims] Inn sz ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype)))] -[visit_exp sz!`%`_sz.0] -[visit_exp sz!`%`_sz] -[visit_exp sz] -[visit_id sz] not free -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_id Inn] no dims -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[check_dims] numtype -[visit_id numtype] not free -[check_dims] Inn -[check_dims] Inn -[scope_enter sz] -[visit_id sz] not free -[visit_id sz] no dims -[scope_exit sz] ---- 1 --- -[check_dims] Inn sz ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype)))] -[visit_exp sz!`%`_sz.0] -[visit_exp sz!`%`_sz] -[visit_exp sz] -[visit_id sz] not free -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_id Inn] no dims -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[check_dims] vectype -[check_dims] vectype -[scope_enter sz] -[visit_id sz] not free -[visit_id sz] no dims -[scope_enter M] -[visit_id M] not free -[visit_id M] no dims -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] -[scope_exit M] -[scope_exit sz] ---- 1 --- -[check_dims] M sz vectype ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (((sz!`%`_sz.0 * M) : nat <:> rat) = (($vsize(vectype) : nat <:> rat) / (2 : nat <:> rat)))] -[visit_exp ((sz!`%`_sz.0 * M) : nat <:> rat)] -[visit_exp (sz!`%`_sz.0 * M)] -[visit_exp sz!`%`_sz.0] -[visit_exp sz!`%`_sz] -[visit_exp sz] -[visit_id sz] not free -[visit_exp M] -[visit_id M] not free -[visit_exp (($vsize(vectype) : nat <:> rat) / (2 : nat <:> rat))] -[visit_exp ($vsize(vectype) : nat <:> rat)] -[visit_exp $vsize(vectype)] -[visit_exp vectype] -[visit_id vectype] not free -[visit_id vectype] no dims -[visit_exp (2 : nat <:> rat)] -[visit_exp 2] -[check_dims] vectype -[scope_enter sz] -[visit_id sz] not free -[visit_id sz] no dims -[scope_exit sz] ---- 1 --- -[check_dims] vectype ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] vectype -[scope_enter sz] -[visit_id sz] not free -[visit_id sz] no dims -[scope_exit sz] ---- 1 --- -[check_dims] sz vectype ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (sz!`%`_sz.0 >= 32)] -[visit_exp sz!`%`_sz.0] -[visit_exp sz!`%`_sz] -[visit_exp sz] -[visit_id sz] not free -[visit_exp 32] -[visit_exp vectype] -[visit_id vectype] -[check_dims] -[check_dims] -[scope_enter valtype?] -[visit_id valtype?] not free -[visit_id valtype?] no dims -[scope_exit valtype?] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter valtype*?] -[visit_id valtype*?] not free -[visit_id valtype*?] no dims -[scope_exit valtype*?] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter blocktype] -[visit_id blocktype] not free -[visit_id blocktype] no dims -[scope_enter instr*] -[visit_id instr*] not free -[visit_id instr*] no dims -[scope_exit instr*] -[scope_exit blocktype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter blocktype] -[visit_id blocktype] not free -[visit_id blocktype] no dims -[scope_enter instr*] -[visit_id instr*] not free -[visit_id instr*] no dims -[scope_exit instr*] -[scope_exit blocktype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter blocktype] -[visit_id blocktype] not free -[visit_id blocktype] no dims -[scope_enter instr*] -[visit_id instr*] not free -[visit_id instr*] no dims -[scope_enter instr*] -[visit_id instr*] not free -[visit_id instr*] no dims -[scope_exit instr*] -[scope_exit instr*] -[scope_exit blocktype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter labelidx] -[visit_id labelidx] not free -[visit_id labelidx] no dims -[scope_exit labelidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter labelidx] -[visit_id labelidx] not free -[visit_id labelidx] no dims -[scope_exit labelidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter labelidx*] -[visit_id labelidx*] not free -[visit_id labelidx*] no dims -[scope_enter labelidx] -[visit_id labelidx] not free -[visit_id labelidx] no dims -[scope_exit labelidx] -[scope_exit labelidx*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter labelidx] -[visit_id labelidx] not free -[visit_id labelidx] no dims -[scope_exit labelidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter labelidx] -[visit_id labelidx] not free -[visit_id labelidx] no dims -[scope_exit labelidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter labelidx] -[visit_id labelidx] not free -[visit_id labelidx] no dims -[scope_enter reftype] -[visit_id reftype] not free -[visit_id reftype] no dims -[scope_enter reftype] -[visit_id reftype] not free -[visit_id reftype] no dims -[scope_exit reftype] -[scope_exit reftype] -[scope_exit labelidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter labelidx] -[visit_id labelidx] not free -[visit_id labelidx] no dims -[scope_enter reftype] -[visit_id reftype] not free -[visit_id reftype] no dims -[scope_enter reftype] -[visit_id reftype] not free -[visit_id reftype] no dims -[scope_exit reftype] -[scope_exit reftype] -[scope_exit labelidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter funcidx] -[visit_id funcidx] not free -[visit_id funcidx] no dims -[scope_exit funcidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeuse] -[visit_id typeuse] not free -[visit_id typeuse] no dims -[scope_exit typeuse] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tableidx] -[visit_id tableidx] not free -[visit_id tableidx] no dims -[scope_enter typeuse] -[visit_id typeuse] not free -[visit_id typeuse] no dims -[scope_exit typeuse] -[scope_exit tableidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter funcidx] -[visit_id funcidx] not free -[visit_id funcidx] no dims -[scope_exit funcidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeuse] -[visit_id typeuse] not free -[visit_id typeuse] no dims -[scope_exit typeuse] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tableidx] -[visit_id tableidx] not free -[visit_id tableidx] no dims -[scope_enter typeuse] -[visit_id typeuse] not free -[visit_id typeuse] no dims -[scope_exit typeuse] -[scope_exit tableidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter tagidx] -[visit_id tagidx] not free -[visit_id tagidx] no dims -[scope_exit tagidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter blocktype] -[visit_id blocktype] not free -[visit_id blocktype] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter instr*] -[visit_id instr*] not free -[visit_id instr*] no dims -[scope_exit instr*] -[scope_exit _] -[scope_exit blocktype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter tagidx] -[visit_id tagidx] not free -[visit_id tagidx] no dims -[scope_enter labelidx] -[visit_id labelidx] not free -[visit_id labelidx] no dims -[scope_exit labelidx] -[scope_exit tagidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tagidx] -[visit_id tagidx] not free -[visit_id tagidx] no dims -[scope_enter labelidx] -[visit_id labelidx] not free -[visit_id labelidx] no dims -[scope_exit labelidx] -[scope_exit tagidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter labelidx] -[visit_id labelidx] not free -[visit_id labelidx] no dims -[scope_exit labelidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter labelidx] -[visit_id labelidx] not free -[visit_id labelidx] no dims -[scope_exit labelidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter localidx] -[visit_id localidx] not free -[visit_id localidx] no dims -[scope_exit localidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter localidx] -[visit_id localidx] not free -[visit_id localidx] no dims -[scope_exit localidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter localidx] -[visit_id localidx] not free -[visit_id localidx] no dims -[scope_exit localidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter globalidx] -[visit_id globalidx] not free -[visit_id globalidx] no dims -[scope_exit globalidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter globalidx] -[visit_id globalidx] not free -[visit_id globalidx] no dims -[scope_exit globalidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter tableidx] -[visit_id tableidx] not free -[visit_id tableidx] no dims -[scope_exit tableidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tableidx] -[visit_id tableidx] not free -[visit_id tableidx] no dims -[scope_exit tableidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tableidx] -[visit_id tableidx] not free -[visit_id tableidx] no dims -[scope_exit tableidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tableidx] -[visit_id tableidx] not free -[visit_id tableidx] no dims -[scope_exit tableidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tableidx] -[visit_id tableidx] not free -[visit_id tableidx] no dims -[scope_exit tableidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tableidx] -[visit_id tableidx] not free -[visit_id tableidx] no dims -[scope_enter tableidx] -[visit_id tableidx] not free -[visit_id tableidx] no dims -[scope_exit tableidx] -[scope_exit tableidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tableidx] -[visit_id tableidx] not free -[visit_id tableidx] no dims -[scope_enter elemidx] -[visit_id elemidx] not free -[visit_id elemidx] no dims -[scope_exit elemidx] -[scope_exit tableidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter elemidx] -[visit_id elemidx] not free -[visit_id elemidx] no dims -[scope_exit elemidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] numtype -[scope_enter numtype] -[visit_id numtype] not free -[visit_exp numtype] -[visit_id numtype] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_enter memarg] -[visit_id memarg] not free -[visit_id memarg] no dims -[scope_exit memarg] -[scope_exit memidx] -[scope_exit _] -[scope_exit numtype] ---- 1 --- -[check_dims] numtype ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] numtype -[scope_enter numtype] -[visit_id numtype] not free -[visit_exp numtype] -[visit_id numtype] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_enter memarg] -[visit_id memarg] not free -[visit_id memarg] no dims -[scope_exit memarg] -[scope_exit memidx] -[scope_exit _] -[scope_exit numtype] ---- 1 --- -[check_dims] numtype ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] vectype -[scope_enter vectype] -[visit_id vectype] not free -[visit_exp vectype] -[visit_id vectype] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_enter memarg] -[visit_id memarg] not free -[visit_id memarg] no dims -[scope_exit memarg] -[scope_exit memidx] -[scope_exit _] -[scope_exit vectype] ---- 1 --- -[check_dims] vectype ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter vectype] -[visit_id vectype] not free -[visit_id vectype] no dims -[scope_enter sz] -[visit_id sz] not free -[visit_id sz] no dims -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_enter memarg] -[visit_id memarg] not free -[visit_id memarg] no dims -[scope_enter laneidx] -[visit_id laneidx] not free -[visit_id laneidx] no dims -[scope_exit laneidx] -[scope_exit memarg] -[scope_exit memidx] -[scope_exit sz] -[scope_exit vectype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter vectype] -[visit_id vectype] not free -[visit_id vectype] no dims -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_enter memarg] -[visit_id memarg] not free -[visit_id memarg] no dims -[scope_exit memarg] -[scope_exit memidx] -[scope_exit vectype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter vectype] -[visit_id vectype] not free -[visit_id vectype] no dims -[scope_enter sz] -[visit_id sz] not free -[visit_id sz] no dims -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_enter memarg] -[visit_id memarg] not free -[visit_id memarg] no dims -[scope_enter laneidx] -[visit_id laneidx] not free -[visit_id laneidx] no dims -[scope_exit laneidx] -[scope_exit memarg] -[scope_exit memidx] -[scope_exit sz] -[scope_exit vectype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_exit memidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_exit memidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_exit memidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_exit memidx] -[scope_exit memidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_enter dataidx] -[visit_id dataidx] not free -[visit_id dataidx] no dims -[scope_exit dataidx] -[scope_exit memidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter dataidx] -[visit_id dataidx] not free -[visit_id dataidx] no dims -[scope_exit dataidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter heaptype] -[visit_id heaptype] not free -[visit_id heaptype] no dims -[scope_exit heaptype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter reftype] -[visit_id reftype] not free -[visit_id reftype] no dims -[scope_exit reftype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter reftype] -[visit_id reftype] not free -[visit_id reftype] no dims -[scope_exit reftype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter funcidx] -[visit_id funcidx] not free -[visit_id funcidx] no dims -[scope_exit funcidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter sx?] -[visit_id sx?] not free -[visit_id sx?] no dims -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_enter u32] -[visit_id u32] not free -[visit_id u32] no dims -[scope_exit u32] -[scope_exit typeidx] -[scope_exit sx?] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_enter u32] -[visit_id u32] not free -[visit_id u32] no dims -[scope_exit u32] -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_enter u32] -[visit_id u32] not free -[visit_id u32] no dims -[scope_exit u32] -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_enter dataidx] -[visit_id dataidx] not free -[visit_id dataidx] no dims -[scope_exit dataidx] -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_enter elemidx] -[visit_id elemidx] not free -[visit_id elemidx] no dims -[scope_exit elemidx] -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter sx?] -[visit_id sx?] not free -[visit_id sx?] no dims -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_exit typeidx] -[scope_exit sx?] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_exit typeidx] -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_enter dataidx] -[visit_id dataidx] not free -[visit_id dataidx] no dims -[scope_exit dataidx] -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_enter elemidx] -[visit_id elemidx] not free -[visit_id elemidx] no dims -[scope_exit elemidx] -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] numtype -[scope_enter numtype] -[visit_id numtype] not free -[visit_exp numtype] -[visit_id numtype] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit numtype] ---- 1 --- -[check_dims] numtype ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] numtype -[scope_enter numtype] -[visit_id numtype] not free -[visit_exp numtype] -[visit_id numtype] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit numtype] ---- 1 --- -[check_dims] numtype ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] numtype -[scope_enter numtype] -[visit_id numtype] not free -[visit_exp numtype] -[visit_id numtype] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit numtype] ---- 1 --- -[check_dims] numtype ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] numtype -[scope_enter numtype] -[visit_id numtype] not free -[visit_exp numtype] -[visit_id numtype] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit numtype] ---- 1 --- -[check_dims] numtype ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] numtype -[scope_enter numtype] -[visit_id numtype] not free -[visit_exp numtype] -[visit_id numtype] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit numtype] ---- 1 --- -[check_dims] numtype ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] numtype_1 numtype_2 -[scope_enter numtype_1] -[visit_id numtype_1] not free -[scope_enter numtype_2] -[visit_id numtype_2] not free -[visit_exp numtype_2] -[visit_id numtype_2] not free -[visit_exp numtype_1] -[visit_id numtype_1] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit numtype_2] -[scope_exit numtype_1] ---- 1 --- -[check_dims] numtype_1 numtype_2 ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] vectype -[scope_enter vectype] -[visit_id vectype] not free -[visit_exp vectype] -[visit_id vectype] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit vectype] ---- 1 --- -[check_dims] vectype ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter vectype] -[visit_id vectype] not free -[visit_id vectype] no dims -[scope_enter vvunop] -[visit_id vvunop] not free -[visit_id vvunop] no dims -[scope_exit vvunop] -[scope_exit vectype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter vectype] -[visit_id vectype] not free -[visit_id vectype] no dims -[scope_enter vvbinop] -[visit_id vvbinop] not free -[visit_id vvbinop] no dims -[scope_exit vvbinop] -[scope_exit vectype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter vectype] -[visit_id vectype] not free -[visit_id vectype] no dims -[scope_enter vvternop] -[visit_id vvternop] not free -[visit_id vvternop] no dims -[scope_exit vvternop] -[scope_exit vectype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter vectype] -[visit_id vectype] not free -[visit_id vectype] no dims -[scope_enter vvtestop] -[visit_id vvtestop] not free -[visit_id vvtestop] no dims -[scope_exit vvtestop] -[scope_exit vectype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] shape -[scope_enter shape] -[visit_id shape] not free -[visit_exp shape] -[visit_id shape] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit shape] ---- 1 --- -[check_dims] shape ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] shape -[scope_enter shape] -[visit_id shape] not free -[visit_exp shape] -[visit_id shape] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit shape] ---- 1 --- -[check_dims] shape ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] shape -[scope_enter shape] -[visit_id shape] not free -[visit_exp shape] -[visit_id shape] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit shape] ---- 1 --- -[check_dims] shape ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] shape -[scope_enter shape] -[visit_id shape] not free -[visit_exp shape] -[visit_id shape] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit shape] ---- 1 --- -[check_dims] shape ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] shape -[scope_enter shape] -[visit_id shape] not free -[visit_exp shape] -[visit_id shape] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit shape] ---- 1 --- -[check_dims] shape ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ishape -[scope_enter ishape] -[visit_id ishape] not free -[visit_exp ishape] -[visit_id ishape] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit ishape] ---- 1 --- -[check_dims] ishape ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter ishape] -[visit_id ishape] not free -[visit_id ishape] no dims -[scope_exit ishape] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] bshape -[scope_enter bshape] -[visit_id bshape] not free -[visit_exp bshape] -[visit_id bshape] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit bshape] ---- 1 --- -[check_dims] bshape ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter bshape] -[visit_id bshape] not free -[visit_id bshape] no dims -[scope_enter laneidx*] -[visit_id laneidx*] not free -[visit_id laneidx*] no dims -[scope_exit laneidx*] -[scope_exit bshape] ---- 1 --- -[check_dims] bshape laneidx ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (`%`_dim(|laneidx*{laneidx <- `laneidx*`}|) = $dim(bshape!`%`_bshape.0))] -[visit_exp `%`_dim(|laneidx*{laneidx <- `laneidx*`}|)] -[visit_exp (|laneidx*{laneidx <- `laneidx*`}|)] -[visit_exp |laneidx*{laneidx <- `laneidx*`}|] -[visit_exp laneidx*{laneidx <- `laneidx*`}] -[scope_enter laneidx] -[visit_exp laneidx] -[visit_id laneidx] not free -[visit_id laneidx] not free -[scope_exit laneidx] -[visit_exp `laneidx*`] -[visit_id laneidx*] not free -[visit_id laneidx*] no dims -[visit_exp $dim(bshape!`%`_bshape.0)] -[visit_exp bshape!`%`_bshape.0] -[visit_exp bshape!`%`_bshape] -[visit_exp bshape] -[visit_id bshape] not free -[check_dims] ishape_1 ishape_2 -[scope_enter ishape_1] -[visit_id ishape_1] not free -[scope_enter ishape_2] -[visit_id ishape_2] not free -[visit_exp ishape_2] -[visit_id ishape_2] not free -[visit_exp ishape_1] -[visit_id ishape_1] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit ishape_2] -[scope_exit ishape_1] ---- 1 --- -[check_dims] ishape_1 ishape_2 ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ishape_1 ishape_2 -[scope_enter ishape_1] -[visit_id ishape_1] not free -[scope_enter ishape_2] -[visit_id ishape_2] not free -[visit_exp ishape_2] -[visit_id ishape_2] not free -[visit_exp ishape_1] -[visit_id ishape_1] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit ishape_2] -[scope_exit ishape_1] ---- 1 --- -[check_dims] ishape_1 ishape_2 ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ishape_1 ishape_2 -[scope_enter ishape_1] -[visit_id ishape_1] not free -[scope_enter ishape_2] -[visit_id ishape_2] not free -[visit_exp ishape_2] -[visit_id ishape_2] not free -[visit_exp ishape_1] -[visit_id ishape_1] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit ishape_2] -[scope_exit ishape_1] ---- 1 --- -[check_dims] ishape_1 ishape_2 ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter ishape_1] -[visit_id ishape_1] not free -[visit_id ishape_1] no dims -[scope_enter ishape_2] -[visit_id ishape_2] not free -[visit_id ishape_2] no dims -[scope_enter sx] -[visit_id sx] not free -[visit_id sx] no dims -[scope_exit sx] -[scope_exit ishape_2] -[scope_exit ishape_1] ---- 1 --- -[check_dims] ishape_1 ishape_2 ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp (($lsize($lanetype(ishape_2!`%`_ishape.0)) = (2 * $lsize($lanetype(ishape_1!`%`_ishape.0)))) /\ ((2 * $lsize($lanetype(ishape_1!`%`_ishape.0))) <= 32))] -[visit_exp ($lsize($lanetype(ishape_2!`%`_ishape.0)) = (2 * $lsize($lanetype(ishape_1!`%`_ishape.0))))] -[visit_exp $lsize($lanetype(ishape_2!`%`_ishape.0))] -[visit_exp $lanetype(ishape_2!`%`_ishape.0)] -[visit_exp ishape_2!`%`_ishape.0] -[visit_exp ishape_2!`%`_ishape] -[visit_exp ishape_2] -[visit_id ishape_2] not free -[visit_exp (2 * $lsize($lanetype(ishape_1!`%`_ishape.0)))] -[visit_exp 2] -[visit_exp $lsize($lanetype(ishape_1!`%`_ishape.0))] -[visit_exp $lanetype(ishape_1!`%`_ishape.0)] -[visit_exp ishape_1!`%`_ishape.0] -[visit_exp ishape_1!`%`_ishape] -[visit_exp ishape_1] -[visit_id ishape_1] not free -[visit_exp ((2 * $lsize($lanetype(ishape_1!`%`_ishape.0))) <= 32)] -[visit_exp (2 * $lsize($lanetype(ishape_1!`%`_ishape.0)))] -[visit_exp 2] -[visit_exp $lsize($lanetype(ishape_1!`%`_ishape.0))] -[visit_exp $lanetype(ishape_1!`%`_ishape.0)] -[visit_exp ishape_1!`%`_ishape.0] -[visit_exp ishape_1!`%`_ishape] -[visit_exp ishape_1] -[visit_id ishape_1] not free -[visit_exp 32] -[check_dims] shape_1 shape_2 -[scope_enter shape_1] -[visit_id shape_1] not free -[scope_enter shape_2] -[visit_id shape_2] not free -[visit_exp shape_2] -[visit_id shape_2] not free -[visit_exp shape_1] -[visit_id shape_1] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit shape_2] -[scope_exit shape_1] ---- 1 --- -[check_dims] shape_1 shape_2 ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter shape] -[visit_id shape] not free -[visit_id shape] no dims -[scope_exit shape] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter shape] -[visit_id shape] not free -[visit_id shape] no dims -[scope_enter sx?] -[visit_id sx?] not free -[visit_id sx?] no dims -[scope_enter laneidx] -[visit_id laneidx] not free -[visit_id laneidx] no dims -[scope_exit laneidx] -[scope_exit sx?] -[scope_exit shape] ---- 1 --- -[check_dims] shape sx ---- 2 --- ---- 3 --- ---- 4 --- -[visit_exp ((sx?{sx <- `sx?`} = ?()) <=> ($lanetype(shape) <- [`I32`_lanetype `I64`_lanetype `F32`_lanetype `F64`_lanetype]))] -[visit_exp (sx?{sx <- `sx?`} = ?())] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] not free -[visit_id sx?] no dims -[visit_exp ?()] -[visit_exp ($lanetype(shape) <- [`I32`_lanetype `I64`_lanetype `F32`_lanetype `F64`_lanetype])] -[visit_exp $lanetype(shape)] -[visit_exp shape] -[visit_id shape] not free -[visit_exp [`I32`_lanetype `I64`_lanetype `F32`_lanetype `F64`_lanetype]] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[check_dims] -[scope_enter shape] -[visit_id shape] not free -[visit_id shape] no dims -[scope_enter laneidx] -[visit_id laneidx] not free -[visit_id laneidx] no dims -[scope_exit laneidx] -[scope_exit shape] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[check_dims] -DecD memarg0 : memarg -[check_dims] -[visit_exp {`ALIGN` `%`_u32(0), `OFFSET` `%`_u64(0)}] -[visit_exp `%`_u32(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp `%`_u64(0)] -[visit_exp (0)] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $memarg0 = {`ALIGN` `%`_u32(0), `OFFSET` `%`_u64(0)} -[check_dims] consttype lit_ -DecD const(consttype : consttype, lit_ : lit_((consttype : consttype <: storagetype))) : instr -[visit_id consttype] not free -[visit_id lit_] not free -[visit_exp (consttype : consttype <: storagetype)] -[visit_exp consttype] -[visit_id consttype] not free -[check_dims] c numtype -[visit_exp (numtype : numtype <: consttype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp c] -[visit_id c] -[visit_exp `CONST`_instr(numtype, c)] -[visit_exp (numtype, c)] -[visit_exp numtype] -[visit_id numtype] not free -[visit_exp c] -[visit_id c] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $const{numtype : numtype, c : lit_(((numtype : numtype <: consttype) : consttype <: storagetype))}((numtype : numtype <: consttype), c) = `CONST`_instr(numtype, c) -[check_dims] c vectype -[visit_exp (vectype : vectype <: consttype)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp c] -[visit_id c] -[visit_exp `VCONST`_instr(vectype, c)] -[visit_exp (vectype, c)] -[visit_exp vectype] -[visit_id vectype] not free -[visit_exp c] -[visit_id c] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $const{vectype : vectype, c : lit_(((vectype : vectype <: consttype) : consttype <: storagetype))}((vectype : vectype <: consttype), c) = `VCONST`_instr(vectype, c) -[check_dims] shape -DecD free_shape(shape : shape) : free -[visit_id shape] not free -[check_dims] blocktype -DecD free_blocktype(blocktype : blocktype) : free -[visit_id blocktype] not free -[check_dims] instr -DecD free_instr(instr : instr) : free -[visit_id instr] not free -[check_dims] _ -DecD free_block(instr*) : free -[visit_id _] not free -[check_dims] expr -DecD free_expr(expr : expr) : free -[visit_id expr] not free -[check_dims] dim lanetype -[visit_exp `%X%`_shape(lanetype, dim)] -[visit_exp (lanetype, dim)] -[visit_exp lanetype] -[visit_id lanetype] -[visit_exp dim] -[visit_id dim] -[visit_exp $free_lanetype(lanetype)] -[visit_exp lanetype] -[visit_id lanetype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_shape{lanetype : lanetype, dim : dim}(`%X%`_shape(lanetype, dim)) = $free_lanetype(lanetype) -[check_dims] valtype -[visit_exp `_RESULT`_blocktype(valtype?{valtype <- `valtype?`})] -[visit_exp (valtype?{valtype <- `valtype?`})] -[visit_exp valtype?{valtype <- `valtype?`}] -[scope_enter valtype] -[visit_exp valtype] -[visit_id valtype] not free -[visit_id valtype] not free -[scope_exit valtype] -[visit_exp `valtype?`] -[visit_id valtype?] no dims -[visit_id valtype?] -[visit_exp $free_opt($free_valtype(valtype)?{valtype <- `valtype?`})] -[visit_exp $free_valtype(valtype)?{valtype <- `valtype?`}] -[scope_enter valtype] -[visit_exp $free_valtype(valtype)] -[visit_exp valtype] -[visit_id valtype] not free -[visit_id valtype] not free -[scope_exit valtype] -[visit_exp `valtype?`] -[visit_id valtype?] not free -[visit_id valtype?] no dims -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_blocktype{`valtype?` : valtype?}(`_RESULT`_blocktype(valtype?{valtype <- `valtype?`})) = $free_opt($free_valtype(valtype)?{valtype <- `valtype?`}) -[check_dims] typeidx -[visit_exp `_IDX`_blocktype(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_blocktype{typeidx : typeidx}(`_IDX`_blocktype(typeidx)) = $free_typeidx(typeidx) -[check_dims] -[visit_exp `NOP`_instr] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr(`NOP`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] -[visit_exp `UNREACHABLE`_instr] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr(`UNREACHABLE`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] -[visit_exp `DROP`_instr] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr(`DROP`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] valtype -[visit_exp `SELECT`_instr(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})] -[visit_exp (valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})] -[visit_exp valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`}] -[scope_enter valtype*] -[visit_exp valtype*{valtype <- `valtype*`}] -[scope_enter valtype] -[visit_exp valtype] -[visit_id valtype] not free -[visit_id valtype] not free -[scope_exit valtype] -[visit_exp `valtype*`] -[visit_id valtype*] not free -[visit_id valtype*] no dims -[visit_id valtype*] not free -[visit_id valtype*] no dims -[scope_exit valtype*] -[visit_exp `valtype*?`] -[visit_id valtype*?] no dims -[visit_id valtype*?] -[visit_exp $free_opt($free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`})] -[visit_exp $free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`}] -[scope_enter valtype*] -[visit_exp $free_list($free_valtype(valtype)*{valtype <- `valtype*`})] -[visit_exp $free_valtype(valtype)*{valtype <- `valtype*`}] -[scope_enter valtype] -[visit_exp $free_valtype(valtype)] -[visit_exp valtype] -[visit_id valtype] not free -[visit_id valtype] not free -[scope_exit valtype] -[visit_exp `valtype*`] -[visit_id valtype*] not free -[visit_id valtype*] no dims -[visit_id valtype*] not free -[visit_id valtype*] no dims -[scope_exit valtype*] -[visit_exp `valtype*?`] -[visit_id valtype*?] not free -[visit_id valtype*?] no dims -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`valtype*?` : valtype*?}(`SELECT`_instr(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})) = $free_opt($free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`}) -[check_dims] blocktype instr -[visit_exp `BLOCK`_instr(blocktype, instr*{instr <- `instr*`})] -[visit_exp (blocktype, instr*{instr <- `instr*`})] -[visit_exp blocktype] -[visit_id blocktype] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`})] -[visit_exp $free_blocktype(blocktype)] -[visit_exp blocktype] -[visit_id blocktype] not free -[visit_exp $free_block(instr*{instr <- `instr*`})] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{blocktype : blocktype, `instr*` : instr*}(`BLOCK`_instr(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) -[check_dims] blocktype instr -[visit_exp `LOOP`_instr(blocktype, instr*{instr <- `instr*`})] -[visit_exp (blocktype, instr*{instr <- `instr*`})] -[visit_exp blocktype] -[visit_id blocktype] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`})] -[visit_exp $free_blocktype(blocktype)] -[visit_exp blocktype] -[visit_id blocktype] not free -[visit_exp $free_block(instr*{instr <- `instr*`})] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{blocktype : blocktype, `instr*` : instr*}(`LOOP`_instr(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) -[check_dims] blocktype instr_1 instr_2 -[visit_exp `IF%%ELSE%`_instr(blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp (blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp blocktype] -[visit_id blocktype] -[visit_exp instr_1*{instr_1 <- `instr_1*`}] -[scope_enter instr_1] -[visit_exp instr_1] -[visit_id instr_1] not free -[visit_id instr_1] not free -[scope_exit instr_1] -[visit_exp `instr_1*`] -[visit_id instr_1*] no dims -[visit_id instr_1*] -[visit_exp instr_2*{instr_2 <- `instr_2*`}] -[scope_enter instr_2] -[visit_exp instr_2] -[visit_id instr_2] not free -[visit_id instr_2] not free -[scope_exit instr_2] -[visit_exp `instr_2*`] -[visit_id instr_2*] no dims -[visit_id instr_2*] -[visit_exp $free_blocktype(blocktype) +++ $free_block(instr_1*{instr_1 <- `instr_1*`}) +++ $free_block(instr_2*{instr_2 <- `instr_2*`})] -[visit_exp $free_blocktype(blocktype) +++ $free_block(instr_1*{instr_1 <- `instr_1*`})] -[visit_exp $free_blocktype(blocktype)] -[visit_exp blocktype] -[visit_id blocktype] not free -[visit_exp $free_block(instr_1*{instr_1 <- `instr_1*`})] -[visit_exp instr_1*{instr_1 <- `instr_1*`}] -[scope_enter instr_1] -[visit_exp instr_1] -[visit_id instr_1] not free -[visit_id instr_1] not free -[scope_exit instr_1] -[visit_exp `instr_1*`] -[visit_id instr_1*] not free -[visit_id instr_1*] no dims -[visit_exp $free_block(instr_2*{instr_2 <- `instr_2*`})] -[visit_exp instr_2*{instr_2 <- `instr_2*`}] -[scope_enter instr_2] -[visit_exp instr_2] -[visit_id instr_2] not free -[visit_id instr_2] not free -[scope_exit instr_2] -[visit_exp `instr_2*`] -[visit_id instr_2*] not free -[visit_id instr_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{blocktype : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}(`IF%%ELSE%`_instr(blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})) = $free_blocktype(blocktype) +++ $free_block(instr_1*{instr_1 <- `instr_1*`}) +++ $free_block(instr_2*{instr_2 <- `instr_2*`}) -[check_dims] labelidx -[visit_exp `BR`_instr(labelidx)] -[visit_exp (labelidx)] -[visit_exp labelidx] -[visit_id labelidx] -[visit_exp $free_labelidx(labelidx)] -[visit_exp labelidx] -[visit_id labelidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{labelidx : labelidx}(`BR`_instr(labelidx)) = $free_labelidx(labelidx) -[check_dims] labelidx -[visit_exp `BR_IF`_instr(labelidx)] -[visit_exp (labelidx)] -[visit_exp labelidx] -[visit_id labelidx] -[visit_exp $free_labelidx(labelidx)] -[visit_exp labelidx] -[visit_id labelidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{labelidx : labelidx}(`BR_IF`_instr(labelidx)) = $free_labelidx(labelidx) -[check_dims] labelidx labelidx' -[visit_exp `BR_TABLE`_instr(labelidx*{labelidx <- `labelidx*`}, labelidx')] -[visit_exp (labelidx*{labelidx <- `labelidx*`}, labelidx')] -[visit_exp labelidx*{labelidx <- `labelidx*`}] -[scope_enter labelidx] -[visit_exp labelidx] -[visit_id labelidx] not free -[visit_id labelidx] not free -[scope_exit labelidx] -[visit_exp `labelidx*`] -[visit_id labelidx*] no dims -[visit_id labelidx*] -[visit_exp labelidx'] -[visit_id labelidx'] -[visit_exp $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`}) +++ $free_labelidx(labelidx')] -[visit_exp $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`})] -[visit_exp $free_labelidx(labelidx)*{labelidx <- `labelidx*`}] -[scope_enter labelidx] -[visit_exp $free_labelidx(labelidx)] -[visit_exp labelidx] -[visit_id labelidx] not free -[visit_id labelidx] not free -[scope_exit labelidx] -[visit_exp `labelidx*`] -[visit_id labelidx*] not free -[visit_id labelidx*] no dims -[visit_exp $free_labelidx(labelidx')] -[visit_exp labelidx'] -[visit_id labelidx'] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`labelidx*` : labelidx*, labelidx' : labelidx}(`BR_TABLE`_instr(labelidx*{labelidx <- `labelidx*`}, labelidx')) = $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`}) +++ $free_labelidx(labelidx') -[check_dims] labelidx -[visit_exp `BR_ON_NULL`_instr(labelidx)] -[visit_exp (labelidx)] -[visit_exp labelidx] -[visit_id labelidx] -[visit_exp $free_labelidx(labelidx)] -[visit_exp labelidx] -[visit_id labelidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{labelidx : labelidx}(`BR_ON_NULL`_instr(labelidx)) = $free_labelidx(labelidx) -[check_dims] labelidx -[visit_exp `BR_ON_NON_NULL`_instr(labelidx)] -[visit_exp (labelidx)] -[visit_exp labelidx] -[visit_id labelidx] -[visit_exp $free_labelidx(labelidx)] -[visit_exp labelidx] -[visit_id labelidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{labelidx : labelidx}(`BR_ON_NON_NULL`_instr(labelidx)) = $free_labelidx(labelidx) -[check_dims] labelidx reftype_1 reftype_2 -[visit_exp `BR_ON_CAST`_instr(labelidx, reftype_1, reftype_2)] -[visit_exp (labelidx, reftype_1, reftype_2)] -[visit_exp labelidx] -[visit_id labelidx] -[visit_exp reftype_1] -[visit_id reftype_1] -[visit_exp reftype_2] -[visit_id reftype_2] -[visit_exp $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2)] -[visit_exp $free_labelidx(labelidx) +++ $free_reftype(reftype_1)] -[visit_exp $free_labelidx(labelidx)] -[visit_exp labelidx] -[visit_id labelidx] not free -[visit_exp $free_reftype(reftype_1)] -[visit_exp reftype_1] -[visit_id reftype_1] not free -[visit_exp $free_reftype(reftype_2)] -[visit_exp reftype_2] -[visit_id reftype_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST`_instr(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) -[check_dims] labelidx reftype_1 reftype_2 -[visit_exp `BR_ON_CAST_FAIL`_instr(labelidx, reftype_1, reftype_2)] -[visit_exp (labelidx, reftype_1, reftype_2)] -[visit_exp labelidx] -[visit_id labelidx] -[visit_exp reftype_1] -[visit_id reftype_1] -[visit_exp reftype_2] -[visit_id reftype_2] -[visit_exp $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2)] -[visit_exp $free_labelidx(labelidx) +++ $free_reftype(reftype_1)] -[visit_exp $free_labelidx(labelidx)] -[visit_exp labelidx] -[visit_id labelidx] not free -[visit_exp $free_reftype(reftype_1)] -[visit_exp reftype_1] -[visit_id reftype_1] not free -[visit_exp $free_reftype(reftype_2)] -[visit_exp reftype_2] -[visit_id reftype_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST_FAIL`_instr(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) -[check_dims] funcidx -[visit_exp `CALL`_instr(funcidx)] -[visit_exp (funcidx)] -[visit_exp funcidx] -[visit_id funcidx] -[visit_exp $free_funcidx(funcidx)] -[visit_exp funcidx] -[visit_id funcidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{funcidx : funcidx}(`CALL`_instr(funcidx)) = $free_funcidx(funcidx) -[check_dims] typeuse -[visit_exp `CALL_REF`_instr(typeuse)] -[visit_exp (typeuse)] -[visit_exp typeuse] -[visit_id typeuse] -[visit_exp $free_typeuse(typeuse)] -[visit_exp typeuse] -[visit_id typeuse] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeuse : typeuse}(`CALL_REF`_instr(typeuse)) = $free_typeuse(typeuse) -[check_dims] tableidx typeuse -[visit_exp `CALL_INDIRECT`_instr(tableidx, typeuse)] -[visit_exp (tableidx, typeuse)] -[visit_exp tableidx] -[visit_id tableidx] -[visit_exp typeuse] -[visit_id typeuse] -[visit_exp $free_tableidx(tableidx) +++ $free_typeuse(typeuse)] -[visit_exp $free_tableidx(tableidx)] -[visit_exp tableidx] -[visit_id tableidx] not free -[visit_exp $free_typeuse(typeuse)] -[visit_exp typeuse] -[visit_id typeuse] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx : tableidx, typeuse : typeuse}(`CALL_INDIRECT`_instr(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) -[check_dims] -[visit_exp `RETURN`_instr] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr(`RETURN`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] funcidx -[visit_exp `RETURN_CALL`_instr(funcidx)] -[visit_exp (funcidx)] -[visit_exp funcidx] -[visit_id funcidx] -[visit_exp $free_funcidx(funcidx)] -[visit_exp funcidx] -[visit_id funcidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{funcidx : funcidx}(`RETURN_CALL`_instr(funcidx)) = $free_funcidx(funcidx) -[check_dims] typeuse -[visit_exp `RETURN_CALL_REF`_instr(typeuse)] -[visit_exp (typeuse)] -[visit_exp typeuse] -[visit_id typeuse] -[visit_exp $free_typeuse(typeuse)] -[visit_exp typeuse] -[visit_id typeuse] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeuse : typeuse}(`RETURN_CALL_REF`_instr(typeuse)) = $free_typeuse(typeuse) -[check_dims] tableidx typeuse -[visit_exp `RETURN_CALL_INDIRECT`_instr(tableidx, typeuse)] -[visit_exp (tableidx, typeuse)] -[visit_exp tableidx] -[visit_id tableidx] -[visit_exp typeuse] -[visit_id typeuse] -[visit_exp $free_tableidx(tableidx) +++ $free_typeuse(typeuse)] -[visit_exp $free_tableidx(tableidx)] -[visit_exp tableidx] -[visit_id tableidx] not free -[visit_exp $free_typeuse(typeuse)] -[visit_exp typeuse] -[visit_id typeuse] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx : tableidx, typeuse : typeuse}(`RETURN_CALL_INDIRECT`_instr(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) -[check_dims] numlit numtype -[visit_exp `CONST`_instr(numtype, numlit)] -[visit_exp (numtype, numlit)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp numlit] -[visit_id numlit] -[visit_exp $free_numtype(numtype)] -[visit_exp numtype] -[visit_id numtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype : numtype, numlit : num_(numtype)}(`CONST`_instr(numtype, numlit)) = $free_numtype(numtype) -[check_dims] numtype unop -[visit_exp `UNOP`_instr(numtype, unop)] -[visit_exp (numtype, unop)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp unop] -[visit_id unop] -[visit_exp $free_numtype(numtype)] -[visit_exp numtype] -[visit_id numtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype : numtype, unop : unop_(numtype)}(`UNOP`_instr(numtype, unop)) = $free_numtype(numtype) -[check_dims] binop numtype -[visit_exp `BINOP`_instr(numtype, binop)] -[visit_exp (numtype, binop)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp binop] -[visit_id binop] -[visit_exp $free_numtype(numtype)] -[visit_exp numtype] -[visit_id numtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype : numtype, binop : binop_(numtype)}(`BINOP`_instr(numtype, binop)) = $free_numtype(numtype) -[check_dims] numtype testop -[visit_exp `TESTOP`_instr(numtype, testop)] -[visit_exp (numtype, testop)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp testop] -[visit_id testop] -[visit_exp $free_numtype(numtype)] -[visit_exp numtype] -[visit_id numtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype : numtype, testop : testop_(numtype)}(`TESTOP`_instr(numtype, testop)) = $free_numtype(numtype) -[check_dims] numtype relop -[visit_exp `RELOP`_instr(numtype, relop)] -[visit_exp (numtype, relop)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp relop] -[visit_id relop] -[visit_exp $free_numtype(numtype)] -[visit_exp numtype] -[visit_id numtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype : numtype, relop : relop_(numtype)}(`RELOP`_instr(numtype, relop)) = $free_numtype(numtype) -[check_dims] cvtop numtype_1 numtype_2 -[visit_exp `CVTOP`_instr(numtype_1, numtype_2, cvtop)] -[visit_exp (numtype_1, numtype_2, cvtop)] -[visit_exp numtype_1] -[visit_id numtype_1] -[visit_exp numtype_2] -[visit_id numtype_2] -[visit_exp cvtop] -[visit_id cvtop] -[visit_exp $free_numtype(numtype_1) +++ $free_numtype(numtype_2)] -[visit_exp $free_numtype(numtype_1)] -[visit_exp numtype_1] -[visit_id numtype_1] not free -[visit_exp $free_numtype(numtype_2)] -[visit_exp numtype_2] -[visit_id numtype_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype_1 : numtype, numtype_2 : numtype, cvtop : cvtop__(numtype_2, numtype_1)}(`CVTOP`_instr(numtype_1, numtype_2, cvtop)) = $free_numtype(numtype_1) +++ $free_numtype(numtype_2) -[check_dims] veclit vectype -[visit_exp `VCONST`_instr(vectype, veclit)] -[visit_exp (vectype, veclit)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp veclit] -[visit_id veclit] -[visit_exp $free_vectype(vectype)] -[visit_exp vectype] -[visit_id vectype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype : vectype, veclit : vec_(vectype)}(`VCONST`_instr(vectype, veclit)) = $free_vectype(vectype) -[check_dims] vectype vvunop -[visit_exp `VVUNOP`_instr(vectype, vvunop)] -[visit_exp (vectype, vvunop)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp vvunop] -[visit_id vvunop] -[visit_exp $free_vectype(vectype)] -[visit_exp vectype] -[visit_id vectype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype : vectype, vvunop : vvunop}(`VVUNOP`_instr(vectype, vvunop)) = $free_vectype(vectype) -[check_dims] vectype vvbinop -[visit_exp `VVBINOP`_instr(vectype, vvbinop)] -[visit_exp (vectype, vvbinop)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp vvbinop] -[visit_id vvbinop] -[visit_exp $free_vectype(vectype)] -[visit_exp vectype] -[visit_id vectype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype : vectype, vvbinop : vvbinop}(`VVBINOP`_instr(vectype, vvbinop)) = $free_vectype(vectype) -[check_dims] vectype vvternop -[visit_exp `VVTERNOP`_instr(vectype, vvternop)] -[visit_exp (vectype, vvternop)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp vvternop] -[visit_id vvternop] -[visit_exp $free_vectype(vectype)] -[visit_exp vectype] -[visit_id vectype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype : vectype, vvternop : vvternop}(`VVTERNOP`_instr(vectype, vvternop)) = $free_vectype(vectype) -[check_dims] vectype vvtestop -[visit_exp `VVTESTOP`_instr(vectype, vvtestop)] -[visit_exp (vectype, vvtestop)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp vvtestop] -[visit_id vvtestop] -[visit_exp $free_vectype(vectype)] -[visit_exp vectype] -[visit_id vectype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype : vectype, vvtestop : vvtestop}(`VVTESTOP`_instr(vectype, vvtestop)) = $free_vectype(vectype) -[check_dims] shape vunop -[visit_exp `VUNOP`_instr(shape, vunop)] -[visit_exp (shape, vunop)] -[visit_exp shape] -[visit_id shape] -[visit_exp vunop] -[visit_id vunop] -[visit_exp $free_shape(shape)] -[visit_exp shape] -[visit_id shape] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape : shape, vunop : vunop_(shape)}(`VUNOP`_instr(shape, vunop)) = $free_shape(shape) -[check_dims] shape vbinop -[visit_exp `VBINOP`_instr(shape, vbinop)] -[visit_exp (shape, vbinop)] -[visit_exp shape] -[visit_id shape] -[visit_exp vbinop] -[visit_id vbinop] -[visit_exp $free_shape(shape)] -[visit_exp shape] -[visit_id shape] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape : shape, vbinop : vbinop_(shape)}(`VBINOP`_instr(shape, vbinop)) = $free_shape(shape) -[check_dims] shape vternop -[visit_exp `VTERNOP`_instr(shape, vternop)] -[visit_exp (shape, vternop)] -[visit_exp shape] -[visit_id shape] -[visit_exp vternop] -[visit_id vternop] -[visit_exp $free_shape(shape)] -[visit_exp shape] -[visit_id shape] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape : shape, vternop : vternop_(shape)}(`VTERNOP`_instr(shape, vternop)) = $free_shape(shape) -[check_dims] shape vtestop -[visit_exp `VTESTOP`_instr(shape, vtestop)] -[visit_exp (shape, vtestop)] -[visit_exp shape] -[visit_id shape] -[visit_exp vtestop] -[visit_id vtestop] -[visit_exp $free_shape(shape)] -[visit_exp shape] -[visit_id shape] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape : shape, vtestop : vtestop_(shape)}(`VTESTOP`_instr(shape, vtestop)) = $free_shape(shape) -[check_dims] shape vrelop -[visit_exp `VRELOP`_instr(shape, vrelop)] -[visit_exp (shape, vrelop)] -[visit_exp shape] -[visit_id shape] -[visit_exp vrelop] -[visit_id vrelop] -[visit_exp $free_shape(shape)] -[visit_exp shape] -[visit_id shape] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape : shape, vrelop : vrelop_(shape)}(`VRELOP`_instr(shape, vrelop)) = $free_shape(shape) -[check_dims] ishape vshiftop -[visit_exp `VSHIFTOP`_instr(ishape, vshiftop)] -[visit_exp (ishape, vshiftop)] -[visit_exp ishape] -[visit_id ishape] -[visit_exp vshiftop] -[visit_id vshiftop] -[visit_exp $free_shape(ishape!`%`_ishape.0)] -[visit_exp ishape!`%`_ishape.0] -[visit_exp ishape!`%`_ishape] -[visit_exp ishape] -[visit_id ishape] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{ishape : ishape, vshiftop : vshiftop_(ishape)}(`VSHIFTOP`_instr(ishape, vshiftop)) = $free_shape(ishape!`%`_ishape.0) -[check_dims] ishape -[visit_exp `VBITMASK`_instr(ishape)] -[visit_exp (ishape)] -[visit_exp ishape] -[visit_id ishape] -[visit_exp $free_shape(ishape!`%`_ishape.0)] -[visit_exp ishape!`%`_ishape.0] -[visit_exp ishape!`%`_ishape] -[visit_exp ishape] -[visit_id ishape] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{ishape : ishape}(`VBITMASK`_instr(ishape)) = $free_shape(ishape!`%`_ishape.0) -[check_dims] bshape vswizzlop -[visit_exp `VSWIZZLOP`_instr(bshape, vswizzlop)] -[visit_exp (bshape, vswizzlop)] -[visit_exp bshape] -[visit_id bshape] -[visit_exp vswizzlop] -[visit_id vswizzlop] -[visit_exp $free_shape(bshape!`%`_bshape.0)] -[visit_exp bshape!`%`_bshape.0] -[visit_exp bshape!`%`_bshape] -[visit_exp bshape] -[visit_id bshape] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{bshape : bshape, vswizzlop : vswizzlop_(bshape)}(`VSWIZZLOP`_instr(bshape, vswizzlop)) = $free_shape(bshape!`%`_bshape.0) -[check_dims] bshape laneidx -[visit_exp `VSHUFFLE`_instr(bshape, laneidx*{laneidx <- `laneidx*`})] -[visit_exp (bshape, laneidx*{laneidx <- `laneidx*`})] -[visit_exp bshape] -[visit_id bshape] -[visit_exp laneidx*{laneidx <- `laneidx*`}] -[scope_enter laneidx] -[visit_exp laneidx] -[visit_id laneidx] not free -[visit_id laneidx] not free -[scope_exit laneidx] -[visit_exp `laneidx*`] -[visit_id laneidx*] no dims -[visit_id laneidx*] -[visit_exp $free_shape(bshape!`%`_bshape.0)] -[visit_exp bshape!`%`_bshape.0] -[visit_exp bshape!`%`_bshape] -[visit_exp bshape] -[visit_id bshape] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{bshape : bshape, `laneidx*` : laneidx*}(`VSHUFFLE`_instr(bshape, laneidx*{laneidx <- `laneidx*`})) = $free_shape(bshape!`%`_bshape.0) -[check_dims] ishape_1 ishape_2 vextunop -[visit_exp `VEXTUNOP`_instr(ishape_1, ishape_2, vextunop)] -[visit_exp (ishape_1, ishape_2, vextunop)] -[visit_exp ishape_1] -[visit_id ishape_1] -[visit_exp ishape_2] -[visit_id ishape_2] -[visit_exp vextunop] -[visit_id vextunop] -[visit_exp $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0)] -[visit_exp $free_shape(ishape_1!`%`_ishape.0)] -[visit_exp ishape_1!`%`_ishape.0] -[visit_exp ishape_1!`%`_ishape] -[visit_exp ishape_1] -[visit_id ishape_1] not free -[visit_exp $free_shape(ishape_2!`%`_ishape.0)] -[visit_exp ishape_2!`%`_ishape.0] -[visit_exp ishape_2!`%`_ishape] -[visit_exp ishape_2] -[visit_id ishape_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextunop : vextunop__(ishape_2, ishape_1)}(`VEXTUNOP`_instr(ishape_1, ishape_2, vextunop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) -[check_dims] ishape_1 ishape_2 vextbinop -[visit_exp `VEXTBINOP`_instr(ishape_1, ishape_2, vextbinop)] -[visit_exp (ishape_1, ishape_2, vextbinop)] -[visit_exp ishape_1] -[visit_id ishape_1] -[visit_exp ishape_2] -[visit_id ishape_2] -[visit_exp vextbinop] -[visit_id vextbinop] -[visit_exp $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0)] -[visit_exp $free_shape(ishape_1!`%`_ishape.0)] -[visit_exp ishape_1!`%`_ishape.0] -[visit_exp ishape_1!`%`_ishape] -[visit_exp ishape_1] -[visit_id ishape_1] not free -[visit_exp $free_shape(ishape_2!`%`_ishape.0)] -[visit_exp ishape_2!`%`_ishape.0] -[visit_exp ishape_2!`%`_ishape] -[visit_exp ishape_2] -[visit_id ishape_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextbinop : vextbinop__(ishape_2, ishape_1)}(`VEXTBINOP`_instr(ishape_1, ishape_2, vextbinop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) -[check_dims] ishape_1 ishape_2 vextternop -[visit_exp `VEXTTERNOP`_instr(ishape_1, ishape_2, vextternop)] -[visit_exp (ishape_1, ishape_2, vextternop)] -[visit_exp ishape_1] -[visit_id ishape_1] -[visit_exp ishape_2] -[visit_id ishape_2] -[visit_exp vextternop] -[visit_id vextternop] -[visit_exp $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0)] -[visit_exp $free_shape(ishape_1!`%`_ishape.0)] -[visit_exp ishape_1!`%`_ishape.0] -[visit_exp ishape_1!`%`_ishape] -[visit_exp ishape_1] -[visit_id ishape_1] not free -[visit_exp $free_shape(ishape_2!`%`_ishape.0)] -[visit_exp ishape_2!`%`_ishape.0] -[visit_exp ishape_2!`%`_ishape] -[visit_exp ishape_2] -[visit_id ishape_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextternop : vextternop__(ishape_2, ishape_1)}(`VEXTTERNOP`_instr(ishape_1, ishape_2, vextternop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) -[check_dims] ishape_1 ishape_2 sx -[visit_exp `VNARROW`_instr(ishape_1, ishape_2, sx)] -[visit_exp (ishape_1, ishape_2, sx)] -[visit_exp ishape_1] -[visit_id ishape_1] -[visit_exp ishape_2] -[visit_id ishape_2] -[visit_exp sx] -[visit_id sx] -[visit_exp $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0)] -[visit_exp $free_shape(ishape_1!`%`_ishape.0)] -[visit_exp ishape_1!`%`_ishape.0] -[visit_exp ishape_1!`%`_ishape] -[visit_exp ishape_1] -[visit_id ishape_1] not free -[visit_exp $free_shape(ishape_2!`%`_ishape.0)] -[visit_exp ishape_2!`%`_ishape.0] -[visit_exp ishape_2!`%`_ishape] -[visit_exp ishape_2] -[visit_id ishape_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{ishape_1 : ishape, ishape_2 : ishape, sx : sx}(`VNARROW`_instr(ishape_1, ishape_2, sx)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) -[check_dims] shape_1 shape_2 vcvtop -[visit_exp `VCVTOP`_instr(shape_1, shape_2, vcvtop)] -[visit_exp (shape_1, shape_2, vcvtop)] -[visit_exp shape_1] -[visit_id shape_1] -[visit_exp shape_2] -[visit_id shape_2] -[visit_exp vcvtop] -[visit_id vcvtop] -[visit_exp $free_shape(shape_1) +++ $free_shape(shape_2)] -[visit_exp $free_shape(shape_1)] -[visit_exp shape_1] -[visit_id shape_1] not free -[visit_exp $free_shape(shape_2)] -[visit_exp shape_2] -[visit_id shape_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape_1 : shape, shape_2 : shape, vcvtop : vcvtop__(shape_2, shape_1)}(`VCVTOP`_instr(shape_1, shape_2, vcvtop)) = $free_shape(shape_1) +++ $free_shape(shape_2) -[check_dims] shape -[visit_exp `VSPLAT`_instr(shape)] -[visit_exp (shape)] -[visit_exp shape] -[visit_id shape] -[visit_exp $free_shape(shape)] -[visit_exp shape] -[visit_id shape] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape : shape}(`VSPLAT`_instr(shape)) = $free_shape(shape) -[check_dims] laneidx shape sx -[visit_exp `VEXTRACT_LANE`_instr(shape, sx?{sx <- `sx?`}, laneidx)] -[visit_exp (shape, sx?{sx <- `sx?`}, laneidx)] -[visit_exp shape] -[visit_id shape] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] no dims -[visit_id sx?] -[visit_exp laneidx] -[visit_id laneidx] -[visit_exp $free_shape(shape)] -[visit_exp shape] -[visit_id shape] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape : shape, `sx?` : sx?, laneidx : laneidx}(`VEXTRACT_LANE`_instr(shape, sx?{sx <- `sx?`}, laneidx)) = $free_shape(shape) -[check_dims] laneidx shape -[visit_exp `VREPLACE_LANE`_instr(shape, laneidx)] -[visit_exp (shape, laneidx)] -[visit_exp shape] -[visit_id shape] -[visit_exp laneidx] -[visit_id laneidx] -[visit_exp $free_shape(shape)] -[visit_exp shape] -[visit_id shape] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{shape : shape, laneidx : laneidx}(`VREPLACE_LANE`_instr(shape, laneidx)) = $free_shape(shape) -[check_dims] heaptype -[visit_exp `REF.NULL`_instr(heaptype)] -[visit_exp (heaptype)] -[visit_exp heaptype] -[visit_id heaptype] -[visit_exp $free_heaptype(heaptype)] -[visit_exp heaptype] -[visit_id heaptype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{heaptype : heaptype}(`REF.NULL`_instr(heaptype)) = $free_heaptype(heaptype) -[check_dims] -[visit_exp `REF.IS_NULL`_instr] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr(`REF.IS_NULL`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] -[visit_exp `REF.AS_NON_NULL`_instr] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr(`REF.AS_NON_NULL`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] -[visit_exp `REF.EQ`_instr] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr(`REF.EQ`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] reftype -[visit_exp `REF.TEST`_instr(reftype)] -[visit_exp (reftype)] -[visit_exp reftype] -[visit_id reftype] -[visit_exp $free_reftype(reftype)] -[visit_exp reftype] -[visit_id reftype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{reftype : reftype}(`REF.TEST`_instr(reftype)) = $free_reftype(reftype) -[check_dims] reftype -[visit_exp `REF.CAST`_instr(reftype)] -[visit_exp (reftype)] -[visit_exp reftype] -[visit_id reftype] -[visit_exp $free_reftype(reftype)] -[visit_exp reftype] -[visit_id reftype] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{reftype : reftype}(`REF.CAST`_instr(reftype)) = $free_reftype(reftype) -[check_dims] funcidx -[visit_exp `REF.FUNC`_instr(funcidx)] -[visit_exp (funcidx)] -[visit_exp funcidx] -[visit_id funcidx] -[visit_exp $free_funcidx(funcidx)] -[visit_exp funcidx] -[visit_id funcidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{funcidx : funcidx}(`REF.FUNC`_instr(funcidx)) = $free_funcidx(funcidx) -[check_dims] -[visit_exp `REF.I31`_instr] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr(`REF.I31`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] sx -[visit_exp `I31.GET`_instr(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{sx : sx}(`I31.GET`_instr(sx)) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] typeidx -[visit_exp `STRUCT.NEW`_instr(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx : typeidx}(`STRUCT.NEW`_instr(typeidx)) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] typeidx -[visit_exp `STRUCT.NEW_DEFAULT`_instr(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx : typeidx}(`STRUCT.NEW_DEFAULT`_instr(typeidx)) = $free_typeidx(typeidx) -[check_dims] sx typeidx u32 -[visit_exp `STRUCT.GET`_instr(sx?{sx <- `sx?`}, typeidx, u32)] -[visit_exp (sx?{sx <- `sx?`}, typeidx, u32)] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] no dims -[visit_id sx?] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp u32] -[visit_id u32] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`sx?` : sx?, typeidx : typeidx, u32 : u32}(`STRUCT.GET`_instr(sx?{sx <- `sx?`}, typeidx, u32)) = $free_typeidx(typeidx) -[check_dims] typeidx u32 -[visit_exp `STRUCT.SET`_instr(typeidx, u32)] -[visit_exp (typeidx, u32)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp u32] -[visit_id u32] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx : typeidx, u32 : u32}(`STRUCT.SET`_instr(typeidx, u32)) = $free_typeidx(typeidx) -[check_dims] typeidx -[visit_exp `ARRAY.NEW`_instr(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx : typeidx}(`ARRAY.NEW`_instr(typeidx)) = $free_typeidx(typeidx) -[check_dims] typeidx -[visit_exp `ARRAY.NEW_DEFAULT`_instr(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx : typeidx}(`ARRAY.NEW_DEFAULT`_instr(typeidx)) = $free_typeidx(typeidx) -[check_dims] typeidx u32 -[visit_exp `ARRAY.NEW_FIXED`_instr(typeidx, u32)] -[visit_exp (typeidx, u32)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp u32] -[visit_id u32] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx : typeidx, u32 : u32}(`ARRAY.NEW_FIXED`_instr(typeidx, u32)) = $free_typeidx(typeidx) -[check_dims] dataidx typeidx -[visit_exp `ARRAY.NEW_DATA`_instr(typeidx, dataidx)] -[visit_exp (typeidx, dataidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp dataidx] -[visit_id dataidx] -[visit_exp $free_typeidx(typeidx) +++ $free_dataidx(dataidx)] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -[visit_exp $free_dataidx(dataidx)] -[visit_exp dataidx] -[visit_id dataidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx : typeidx, dataidx : dataidx}(`ARRAY.NEW_DATA`_instr(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) -[check_dims] elemidx typeidx -[visit_exp `ARRAY.NEW_ELEM`_instr(typeidx, elemidx)] -[visit_exp (typeidx, elemidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp elemidx] -[visit_id elemidx] -[visit_exp $free_typeidx(typeidx) +++ $free_elemidx(elemidx)] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -[visit_exp $free_elemidx(elemidx)] -[visit_exp elemidx] -[visit_id elemidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx : typeidx, elemidx : elemidx}(`ARRAY.NEW_ELEM`_instr(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) -[check_dims] sx typeidx -[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, typeidx)] -[visit_exp (sx?{sx <- `sx?`}, typeidx)] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] no dims -[visit_id sx?] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{`sx?` : sx?, typeidx : typeidx}(`ARRAY.GET`_instr(sx?{sx <- `sx?`}, typeidx)) = $free_typeidx(typeidx) -[check_dims] typeidx -[visit_exp `ARRAY.SET`_instr(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx : typeidx}(`ARRAY.SET`_instr(typeidx)) = $free_typeidx(typeidx) -[check_dims] -[visit_exp `ARRAY.LEN`_instr] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr(`ARRAY.LEN`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] typeidx -[visit_exp `ARRAY.FILL`_instr(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx : typeidx}(`ARRAY.FILL`_instr(typeidx)) = $free_typeidx(typeidx) -[check_dims] typeidx_1 typeidx_2 -[visit_exp `ARRAY.COPY`_instr(typeidx_1, typeidx_2)] -[visit_exp (typeidx_1, typeidx_2)] -[visit_exp typeidx_1] -[visit_id typeidx_1] -[visit_exp typeidx_2] -[visit_id typeidx_2] -[visit_exp $free_typeidx(typeidx_1) +++ $free_typeidx(typeidx_2)] -[visit_exp $free_typeidx(typeidx_1)] -[visit_exp typeidx_1] -[visit_id typeidx_1] not free -[visit_exp $free_typeidx(typeidx_2)] -[visit_exp typeidx_2] -[visit_id typeidx_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx_1 : typeidx, typeidx_2 : typeidx}(`ARRAY.COPY`_instr(typeidx_1, typeidx_2)) = $free_typeidx(typeidx_1) +++ $free_typeidx(typeidx_2) -[check_dims] dataidx typeidx -[visit_exp `ARRAY.INIT_DATA`_instr(typeidx, dataidx)] -[visit_exp (typeidx, dataidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp dataidx] -[visit_id dataidx] -[visit_exp $free_typeidx(typeidx) +++ $free_dataidx(dataidx)] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -[visit_exp $free_dataidx(dataidx)] -[visit_exp dataidx] -[visit_id dataidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx : typeidx, dataidx : dataidx}(`ARRAY.INIT_DATA`_instr(typeidx, dataidx)) = $free_typeidx(typeidx) +++ $free_dataidx(dataidx) -[check_dims] elemidx typeidx -[visit_exp `ARRAY.INIT_ELEM`_instr(typeidx, elemidx)] -[visit_exp (typeidx, elemidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp elemidx] -[visit_id elemidx] -[visit_exp $free_typeidx(typeidx) +++ $free_elemidx(elemidx)] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -[visit_exp $free_elemidx(elemidx)] -[visit_exp elemidx] -[visit_id elemidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{typeidx : typeidx, elemidx : elemidx}(`ARRAY.INIT_ELEM`_instr(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) -[check_dims] -[visit_exp `EXTERN.CONVERT_ANY`_instr] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr(`EXTERN.CONVERT_ANY`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] -[visit_exp `ANY.CONVERT_EXTERN`_instr] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr(`ANY.CONVERT_EXTERN`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] localidx -[visit_exp `LOCAL.GET`_instr(localidx)] -[visit_exp (localidx)] -[visit_exp localidx] -[visit_id localidx] -[visit_exp $free_localidx(localidx)] -[visit_exp localidx] -[visit_id localidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{localidx : localidx}(`LOCAL.GET`_instr(localidx)) = $free_localidx(localidx) -[check_dims] localidx -[visit_exp `LOCAL.SET`_instr(localidx)] -[visit_exp (localidx)] -[visit_exp localidx] -[visit_id localidx] -[visit_exp $free_localidx(localidx)] -[visit_exp localidx] -[visit_id localidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{localidx : localidx}(`LOCAL.SET`_instr(localidx)) = $free_localidx(localidx) -[check_dims] localidx -[visit_exp `LOCAL.TEE`_instr(localidx)] -[visit_exp (localidx)] -[visit_exp localidx] -[visit_id localidx] -[visit_exp $free_localidx(localidx)] -[visit_exp localidx] -[visit_id localidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{localidx : localidx}(`LOCAL.TEE`_instr(localidx)) = $free_localidx(localidx) -[check_dims] globalidx -[visit_exp `GLOBAL.GET`_instr(globalidx)] -[visit_exp (globalidx)] -[visit_exp globalidx] -[visit_id globalidx] -[visit_exp $free_globalidx(globalidx)] -[visit_exp globalidx] -[visit_id globalidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{globalidx : globalidx}(`GLOBAL.GET`_instr(globalidx)) = $free_globalidx(globalidx) -[check_dims] globalidx -[visit_exp `GLOBAL.SET`_instr(globalidx)] -[visit_exp (globalidx)] -[visit_exp globalidx] -[visit_id globalidx] -[visit_exp $free_globalidx(globalidx)] -[visit_exp globalidx] -[visit_id globalidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{globalidx : globalidx}(`GLOBAL.SET`_instr(globalidx)) = $free_globalidx(globalidx) -[check_dims] tableidx -[visit_exp `TABLE.GET`_instr(tableidx)] -[visit_exp (tableidx)] -[visit_exp tableidx] -[visit_id tableidx] -[visit_exp $free_tableidx(tableidx)] -[visit_exp tableidx] -[visit_id tableidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx : tableidx}(`TABLE.GET`_instr(tableidx)) = $free_tableidx(tableidx) -[check_dims] tableidx -[visit_exp `TABLE.SET`_instr(tableidx)] -[visit_exp (tableidx)] -[visit_exp tableidx] -[visit_id tableidx] -[visit_exp $free_tableidx(tableidx)] -[visit_exp tableidx] -[visit_id tableidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx : tableidx}(`TABLE.SET`_instr(tableidx)) = $free_tableidx(tableidx) -[check_dims] tableidx -[visit_exp `TABLE.SIZE`_instr(tableidx)] -[visit_exp (tableidx)] -[visit_exp tableidx] -[visit_id tableidx] -[visit_exp $free_tableidx(tableidx)] -[visit_exp tableidx] -[visit_id tableidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx : tableidx}(`TABLE.SIZE`_instr(tableidx)) = $free_tableidx(tableidx) -[check_dims] tableidx -[visit_exp `TABLE.GROW`_instr(tableidx)] -[visit_exp (tableidx)] -[visit_exp tableidx] -[visit_id tableidx] -[visit_exp $free_tableidx(tableidx)] -[visit_exp tableidx] -[visit_id tableidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx : tableidx}(`TABLE.GROW`_instr(tableidx)) = $free_tableidx(tableidx) -[check_dims] tableidx -[visit_exp `TABLE.FILL`_instr(tableidx)] -[visit_exp (tableidx)] -[visit_exp tableidx] -[visit_id tableidx] -[visit_exp $free_tableidx(tableidx)] -[visit_exp tableidx] -[visit_id tableidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx : tableidx}(`TABLE.FILL`_instr(tableidx)) = $free_tableidx(tableidx) -[check_dims] tableidx_1 tableidx_2 -[visit_exp `TABLE.COPY`_instr(tableidx_1, tableidx_2)] -[visit_exp (tableidx_1, tableidx_2)] -[visit_exp tableidx_1] -[visit_id tableidx_1] -[visit_exp tableidx_2] -[visit_id tableidx_2] -[visit_exp $free_tableidx(tableidx_1) +++ $free_tableidx(tableidx_2)] -[visit_exp $free_tableidx(tableidx_1)] -[visit_exp tableidx_1] -[visit_id tableidx_1] not free -[visit_exp $free_tableidx(tableidx_2)] -[visit_exp tableidx_2] -[visit_id tableidx_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx_1 : tableidx, tableidx_2 : tableidx}(`TABLE.COPY`_instr(tableidx_1, tableidx_2)) = $free_tableidx(tableidx_1) +++ $free_tableidx(tableidx_2) -[check_dims] elemidx tableidx -[visit_exp `TABLE.INIT`_instr(tableidx, elemidx)] -[visit_exp (tableidx, elemidx)] -[visit_exp tableidx] -[visit_id tableidx] -[visit_exp elemidx] -[visit_id elemidx] -[visit_exp $free_tableidx(tableidx) +++ $free_elemidx(elemidx)] -[visit_exp $free_tableidx(tableidx)] -[visit_exp tableidx] -[visit_id tableidx] not free -[visit_exp $free_elemidx(elemidx)] -[visit_exp elemidx] -[visit_id elemidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{tableidx : tableidx, elemidx : elemidx}(`TABLE.INIT`_instr(tableidx, elemidx)) = $free_tableidx(tableidx) +++ $free_elemidx(elemidx) -[check_dims] elemidx -[visit_exp `ELEM.DROP`_instr(elemidx)] -[visit_exp (elemidx)] -[visit_exp elemidx] -[visit_id elemidx] -[visit_exp $free_elemidx(elemidx)] -[visit_exp elemidx] -[visit_id elemidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{elemidx : elemidx}(`ELEM.DROP`_instr(elemidx)) = $free_elemidx(elemidx) -[check_dims] loadop memarg memidx numtype -[visit_exp `LOAD`_instr(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)] -[visit_exp (numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp loadop?{loadop <- `loadop?`}] -[scope_enter loadop] -[visit_exp loadop] -[visit_id loadop] not free -[visit_id loadop] not free -[scope_exit loadop] -[visit_exp `loadop?`] -[visit_id loadop?] no dims -[visit_id loadop?] -[visit_exp memidx] -[visit_id memidx] -[visit_exp memarg] -[visit_id memarg] -[visit_exp $free_numtype(numtype) +++ $free_memidx(memidx)] -[visit_exp $free_numtype(numtype)] -[visit_exp numtype] -[visit_id numtype] not free -[visit_exp $free_memidx(memidx)] -[visit_exp memidx] -[visit_id memidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype : numtype, `loadop?` : loadop_(numtype)?, memidx : memidx, memarg : memarg}(`LOAD`_instr(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) -[check_dims] memarg memidx numtype storeop -[visit_exp `STORE`_instr(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)] -[visit_exp (numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp storeop?{storeop <- `storeop?`}] -[scope_enter storeop] -[visit_exp storeop] -[visit_id storeop] not free -[visit_id storeop] not free -[scope_exit storeop] -[visit_exp `storeop?`] -[visit_id storeop?] no dims -[visit_id storeop?] -[visit_exp memidx] -[visit_id memidx] -[visit_exp memarg] -[visit_id memarg] -[visit_exp $free_numtype(numtype) +++ $free_memidx(memidx)] -[visit_exp $free_numtype(numtype)] -[visit_exp numtype] -[visit_id numtype] not free -[visit_exp $free_memidx(memidx)] -[visit_exp memidx] -[visit_id memidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{numtype : numtype, `storeop?` : storeop_(numtype)?, memidx : memidx, memarg : memarg}(`STORE`_instr(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) -[check_dims] memarg memidx vectype vloadop -[visit_exp `VLOAD`_instr(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)] -[visit_exp (vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp vloadop?{vloadop <- `vloadop?`}] -[scope_enter vloadop] -[visit_exp vloadop] -[visit_id vloadop] not free -[visit_id vloadop] not free -[scope_exit vloadop] -[visit_exp `vloadop?`] -[visit_id vloadop?] no dims -[visit_id vloadop?] -[visit_exp memidx] -[visit_id memidx] -[visit_exp memarg] -[visit_id memarg] -[visit_exp $free_vectype(vectype) +++ $free_memidx(memidx)] -[visit_exp $free_vectype(vectype)] -[visit_exp vectype] -[visit_id vectype] not free -[visit_exp $free_memidx(memidx)] -[visit_exp memidx] -[visit_id memidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype : vectype, `vloadop?` : vloadop_(vectype)?, memidx : memidx, memarg : memarg}(`VLOAD`_instr(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) -[check_dims] laneidx memarg memidx sz vectype -[visit_exp `VLOAD_LANE`_instr(vectype, sz, memidx, memarg, laneidx)] -[visit_exp (vectype, sz, memidx, memarg, laneidx)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp sz] -[visit_id sz] -[visit_exp memidx] -[visit_id memidx] -[visit_exp memarg] -[visit_id memarg] -[visit_exp laneidx] -[visit_id laneidx] -[visit_exp $free_vectype(vectype) +++ $free_memidx(memidx)] -[visit_exp $free_vectype(vectype)] -[visit_exp vectype] -[visit_id vectype] not free -[visit_exp $free_memidx(memidx)] -[visit_exp memidx] -[visit_id memidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VLOAD_LANE`_instr(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) -[check_dims] memarg memidx vectype -[visit_exp `VSTORE`_instr(vectype, memidx, memarg)] -[visit_exp (vectype, memidx, memarg)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp memidx] -[visit_id memidx] -[visit_exp memarg] -[visit_id memarg] -[visit_exp $free_vectype(vectype) +++ $free_memidx(memidx)] -[visit_exp $free_vectype(vectype)] -[visit_exp vectype] -[visit_id vectype] not free -[visit_exp $free_memidx(memidx)] -[visit_exp memidx] -[visit_id memidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype : vectype, memidx : memidx, memarg : memarg}(`VSTORE`_instr(vectype, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) -[check_dims] laneidx memarg memidx sz vectype -[visit_exp `VSTORE_LANE`_instr(vectype, sz, memidx, memarg, laneidx)] -[visit_exp (vectype, sz, memidx, memarg, laneidx)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp sz] -[visit_id sz] -[visit_exp memidx] -[visit_id memidx] -[visit_exp memarg] -[visit_id memarg] -[visit_exp laneidx] -[visit_id laneidx] -[visit_exp $free_vectype(vectype) +++ $free_memidx(memidx)] -[visit_exp $free_vectype(vectype)] -[visit_exp vectype] -[visit_id vectype] not free -[visit_exp $free_memidx(memidx)] -[visit_exp memidx] -[visit_id memidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VSTORE_LANE`_instr(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) -[check_dims] memidx -[visit_exp `MEMORY.SIZE`_instr(memidx)] -[visit_exp (memidx)] -[visit_exp memidx] -[visit_id memidx] -[visit_exp $free_memidx(memidx)] -[visit_exp memidx] -[visit_id memidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{memidx : memidx}(`MEMORY.SIZE`_instr(memidx)) = $free_memidx(memidx) -[check_dims] memidx -[visit_exp `MEMORY.GROW`_instr(memidx)] -[visit_exp (memidx)] -[visit_exp memidx] -[visit_id memidx] -[visit_exp $free_memidx(memidx)] -[visit_exp memidx] -[visit_id memidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{memidx : memidx}(`MEMORY.GROW`_instr(memidx)) = $free_memidx(memidx) -[check_dims] memidx -[visit_exp `MEMORY.FILL`_instr(memidx)] -[visit_exp (memidx)] -[visit_exp memidx] -[visit_id memidx] -[visit_exp $free_memidx(memidx)] -[visit_exp memidx] -[visit_id memidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{memidx : memidx}(`MEMORY.FILL`_instr(memidx)) = $free_memidx(memidx) -[check_dims] memidx_1 memidx_2 -[visit_exp `MEMORY.COPY`_instr(memidx_1, memidx_2)] -[visit_exp (memidx_1, memidx_2)] -[visit_exp memidx_1] -[visit_id memidx_1] -[visit_exp memidx_2] -[visit_id memidx_2] -[visit_exp $free_memidx(memidx_1) +++ $free_memidx(memidx_2)] -[visit_exp $free_memidx(memidx_1)] -[visit_exp memidx_1] -[visit_id memidx_1] not free -[visit_exp $free_memidx(memidx_2)] -[visit_exp memidx_2] -[visit_id memidx_2] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{memidx_1 : memidx, memidx_2 : memidx}(`MEMORY.COPY`_instr(memidx_1, memidx_2)) = $free_memidx(memidx_1) +++ $free_memidx(memidx_2) -[check_dims] dataidx memidx -[visit_exp `MEMORY.INIT`_instr(memidx, dataidx)] -[visit_exp (memidx, dataidx)] -[visit_exp memidx] -[visit_id memidx] -[visit_exp dataidx] -[visit_id dataidx] -[visit_exp $free_memidx(memidx) +++ $free_dataidx(dataidx)] -[visit_exp $free_memidx(memidx)] -[visit_exp memidx] -[visit_id memidx] not free -[visit_exp $free_dataidx(dataidx)] -[visit_exp dataidx] -[visit_id dataidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{memidx : memidx, dataidx : dataidx}(`MEMORY.INIT`_instr(memidx, dataidx)) = $free_memidx(memidx) +++ $free_dataidx(dataidx) -[check_dims] dataidx -[visit_exp `DATA.DROP`_instr(dataidx)] -[visit_exp (dataidx)] -[visit_exp dataidx] -[visit_id dataidx] -[visit_exp $free_dataidx(dataidx)] -[visit_exp dataidx] -[visit_id dataidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_instr{dataidx : dataidx}(`DATA.DROP`_instr(dataidx)) = $free_dataidx(dataidx) -[check_dims] _ -DecD shift_labelidxs(labelidx*) : labelidx* -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $shift_labelidxs([]) = [] -[check_dims] labelidx' -[visit_exp [`%`_labelidx(0)] ++ labelidx'*{labelidx' <- `labelidx'*`}] -[visit_exp [`%`_labelidx(0)]] -[visit_exp `%`_labelidx(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp labelidx'*{labelidx' <- `labelidx'*`}] -[scope_enter labelidx'] -[visit_exp labelidx'] -[visit_id labelidx'] not free -[visit_id labelidx'] not free -[scope_exit labelidx'] -[visit_exp `labelidx'*`] -[visit_id labelidx'*] no dims -[visit_id labelidx'*] -[visit_exp $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`})] -[visit_exp labelidx'*{labelidx' <- `labelidx'*`}] -[scope_enter labelidx'] -[visit_exp labelidx'] -[visit_id labelidx'] not free -[visit_id labelidx'] not free -[scope_exit labelidx'] -[visit_exp `labelidx'*`] -[visit_id labelidx'*] not free -[visit_id labelidx'*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $shift_labelidxs{`labelidx'*` : labelidx*}([`%`_labelidx(0)] ++ labelidx'*{labelidx' <- `labelidx'*`}) = $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) -[check_dims] labelidx labelidx' -[visit_exp [labelidx] ++ labelidx'*{labelidx' <- `labelidx'*`}] -[visit_exp [labelidx]] -[visit_exp labelidx] -[visit_id labelidx] -[visit_exp labelidx'*{labelidx' <- `labelidx'*`}] -[scope_enter labelidx'] -[visit_exp labelidx'] -[visit_id labelidx'] not free -[visit_id labelidx'] not free -[scope_exit labelidx'] -[visit_exp `labelidx'*`] -[visit_id labelidx'*] no dims -[visit_id labelidx'*] -[visit_exp [`%`_labelidx((((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] ++ $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`})] -[visit_exp [`%`_labelidx((((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))]] -[visit_exp `%`_labelidx((((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int))] -[visit_exp (labelidx!`%`_labelidx.0 : nat <:> int)] -[visit_exp labelidx!`%`_labelidx.0] -[visit_exp labelidx!`%`_labelidx] -[visit_exp labelidx] -[visit_id labelidx] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`})] -[visit_exp labelidx'*{labelidx' <- `labelidx'*`}] -[scope_enter labelidx'] -[visit_exp labelidx'] -[visit_id labelidx'] not free -[visit_id labelidx'] not free -[scope_exit labelidx'] -[visit_exp `labelidx'*`] -[visit_id labelidx'*] not free -[visit_id labelidx'*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $shift_labelidxs{labelidx : labelidx, `labelidx'*` : labelidx*}([labelidx] ++ labelidx'*{labelidx' <- `labelidx'*`}) = [`%`_labelidx((((labelidx!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] ++ $shift_labelidxs(labelidx'*{labelidx' <- `labelidx'*`}) -[check_dims] free instr -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp free[`LABELS`_free = $shift_labelidxs(free.`LABELS`_free)]] -[visit_exp free] -[visit_id free] -[visit_exp $shift_labelidxs(free.`LABELS`_free)] -[visit_exp free.`LABELS`_free] -[visit_exp free] -[visit_id free] not free -[visit_exp (free = $free_list($free_instr(instr)*{instr <- `instr*`}))] -[visit_exp free] -[visit_id free] not free -[visit_exp $free_list($free_instr(instr)*{instr <- `instr*`})] -[visit_exp $free_instr(instr)*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp $free_instr(instr)] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_block{`instr*` : instr*, free : free}(instr*{instr <- `instr*`}) = free[`LABELS`_free = $shift_labelidxs(free.`LABELS`_free)] - -- if (free = $free_list($free_instr(instr)*{instr <- `instr*`})) -[check_dims] instr -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp $free_list($free_instr(instr)*{instr <- `instr*`})] -[visit_exp $free_instr(instr)*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp $free_instr(instr)] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_expr{`instr*` : instr*}(instr*{instr <- `instr*`}) = $free_list($free_instr(instr)*{instr <- `instr*`}) -[check_dims] -[check_dims] -[scope_enter tableidx] -[visit_id tableidx] not free -[visit_id tableidx] no dims -[scope_enter expr] -[visit_id expr] not free -[visit_id expr] no dims -[scope_exit expr] -[scope_exit tableidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter memidx] -[visit_id memidx] not free -[visit_id memidx] no dims -[scope_enter expr] -[visit_id expr] not free -[visit_id expr] no dims -[scope_exit expr] -[scope_exit memidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter rectype] -[visit_id rectype] not free -[visit_id rectype] no dims -[scope_exit rectype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter tagtype] -[visit_id tagtype] not free -[visit_id tagtype] no dims -[scope_exit tagtype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter globaltype] -[visit_id globaltype] not free -[visit_id globaltype] no dims -[scope_enter expr] -[visit_id expr] not free -[visit_id expr] no dims -[scope_exit expr] -[scope_exit globaltype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter memtype] -[visit_id memtype] not free -[visit_id memtype] no dims -[scope_exit memtype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter tabletype] -[visit_id tabletype] not free -[visit_id tabletype] no dims -[scope_enter expr] -[visit_id expr] not free -[visit_id expr] no dims -[scope_exit expr] -[scope_exit tabletype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter byte*] -[visit_id byte*] not free -[visit_id byte*] no dims -[scope_enter datamode] -[visit_id datamode] not free -[visit_id datamode] no dims -[scope_exit datamode] -[scope_exit byte*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter valtype] -[visit_id valtype] not free -[visit_id valtype] no dims -[scope_exit valtype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_enter local*] -[visit_id local*] not free -[visit_id local*] no dims -[scope_enter expr] -[visit_id expr] not free -[visit_id expr] no dims -[scope_exit expr] -[scope_exit local*] -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter reftype] -[visit_id reftype] not free -[visit_id reftype] no dims -[scope_enter expr*] -[visit_id expr*] not free -[visit_id expr*] no dims -[scope_enter elemmode] -[visit_id elemmode] not free -[visit_id elemmode] no dims -[scope_exit elemmode] -[scope_exit expr*] -[scope_exit reftype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter funcidx] -[visit_id funcidx] not free -[visit_id funcidx] no dims -[scope_exit funcidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter name] -[visit_id name] not free -[visit_id name] no dims -[scope_enter name] -[visit_id name] not free -[visit_id name] no dims -[scope_enter externtype] -[visit_id externtype] not free -[visit_id externtype] no dims -[scope_exit externtype] -[scope_exit name] -[scope_exit name] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter name] -[visit_id name] not free -[visit_id name] no dims -[scope_enter externidx] -[visit_id externidx] not free -[visit_id externidx] no dims -[scope_exit externidx] -[scope_exit name] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter type*] -[visit_id type*] not free -[visit_id type*] no dims -[scope_enter import*] -[visit_id import*] not free -[visit_id import*] no dims -[scope_enter tag*] -[visit_id tag*] not free -[visit_id tag*] no dims -[scope_enter global*] -[visit_id global*] not free -[visit_id global*] no dims -[scope_enter mem*] -[visit_id mem*] not free -[visit_id mem*] no dims -[scope_enter table*] -[visit_id table*] not free -[visit_id table*] no dims -[scope_enter func*] -[visit_id func*] not free -[visit_id func*] no dims -[scope_enter data*] -[visit_id data*] not free -[visit_id data*] no dims -[scope_enter elem*] -[visit_id elem*] not free -[visit_id elem*] no dims -[scope_enter start?] -[visit_id start?] not free -[visit_id start?] no dims -[scope_enter export*] -[visit_id export*] not free -[visit_id export*] no dims -[scope_exit export*] -[scope_exit start?] -[scope_exit elem*] -[scope_exit data*] -[scope_exit func*] -[scope_exit table*] -[scope_exit mem*] -[scope_exit global*] -[scope_exit tag*] -[scope_exit import*] -[scope_exit type*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] type -DecD free_type(type : type) : free -[visit_id type] not free -[check_dims] tag -DecD free_tag(tag : tag) : free -[visit_id tag] not free -[check_dims] global -DecD free_global(global : global) : free -[visit_id global] not free -[check_dims] mem -DecD free_mem(mem : mem) : free -[visit_id mem] not free -[check_dims] table -DecD free_table(table : table) : free -[visit_id table] not free -[check_dims] local -DecD free_local(local : local) : free -[visit_id local] not free -[check_dims] func -DecD free_func(func : func) : free -[visit_id func] not free -[check_dims] data -DecD free_data(data : data) : free -[visit_id data] not free -[check_dims] elem -DecD free_elem(elem : elem) : free -[visit_id elem] not free -[check_dims] datamode -DecD free_datamode(datamode : datamode) : free -[visit_id datamode] not free -[check_dims] elemmode -DecD free_elemmode(elemmode : elemmode) : free -[visit_id elemmode] not free -[check_dims] start -DecD free_start(start : start) : free -[visit_id start] not free -[check_dims] import -DecD free_import(import : import) : free -[visit_id import] not free -[check_dims] export -DecD free_export(export : export) : free -[visit_id export] not free -[check_dims] module -DecD free_module(module : module) : free -[visit_id module] not free -[check_dims] rectype -[visit_exp `TYPE`_type(rectype)] -[visit_exp (rectype)] -[visit_exp rectype] -[visit_id rectype] -[visit_exp $free_rectype(rectype)] -[visit_exp rectype] -[visit_id rectype] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_type{rectype : rectype}(`TYPE`_type(rectype)) = $free_rectype(rectype) -[check_dims] tagtype -[visit_exp `TAG`_tag(tagtype)] -[visit_exp (tagtype)] -[visit_exp tagtype] -[visit_id tagtype] -[visit_exp $free_tagtype(tagtype)] -[visit_exp tagtype] -[visit_id tagtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_tag{tagtype : tagtype}(`TAG`_tag(tagtype)) = $free_tagtype(tagtype) -[check_dims] expr globaltype -[visit_exp `GLOBAL`_global(globaltype, expr)] -[visit_exp (globaltype, expr)] -[visit_exp globaltype] -[visit_id globaltype] -[visit_exp expr] -[visit_id expr] -[visit_exp $free_globaltype(globaltype) +++ $free_expr(expr)] -[visit_exp $free_globaltype(globaltype)] -[visit_exp globaltype] -[visit_id globaltype] not free -[visit_exp $free_expr(expr)] -[visit_exp expr] -[visit_id expr] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_global{globaltype : globaltype, expr : expr}(`GLOBAL`_global(globaltype, expr)) = $free_globaltype(globaltype) +++ $free_expr(expr) -[check_dims] memtype -[visit_exp `MEMORY`_mem(memtype)] -[visit_exp (memtype)] -[visit_exp memtype] -[visit_id memtype] -[visit_exp $free_memtype(memtype)] -[visit_exp memtype] -[visit_id memtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_mem{memtype : memtype}(`MEMORY`_mem(memtype)) = $free_memtype(memtype) -[check_dims] expr tabletype -[visit_exp `TABLE`_table(tabletype, expr)] -[visit_exp (tabletype, expr)] -[visit_exp tabletype] -[visit_id tabletype] -[visit_exp expr] -[visit_id expr] -[visit_exp $free_tabletype(tabletype) +++ $free_expr(expr)] -[visit_exp $free_tabletype(tabletype)] -[visit_exp tabletype] -[visit_id tabletype] not free -[visit_exp $free_expr(expr)] -[visit_exp expr] -[visit_id expr] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_table{tabletype : tabletype, expr : expr}(`TABLE`_table(tabletype, expr)) = $free_tabletype(tabletype) +++ $free_expr(expr) -[check_dims] t -[visit_exp `LOCAL`_local(t)] -[visit_exp (t)] -[visit_exp t] -[visit_id t] -[visit_exp $free_valtype(t)] -[visit_exp t] -[visit_id t] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_local{t : valtype}(`LOCAL`_local(t)) = $free_valtype(t) -[check_dims] expr local typeidx -[visit_exp `FUNC`_func(typeidx, local*{local <- `local*`}, expr)] -[visit_exp (typeidx, local*{local <- `local*`}, expr)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp local*{local <- `local*`}] -[scope_enter local] -[visit_exp local] -[visit_id local] not free -[visit_id local] not free -[scope_exit local] -[visit_exp `local*`] -[visit_id local*] no dims -[visit_id local*] -[visit_exp expr] -[visit_id expr] -[visit_exp $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[`LOCALS`_free = []]] -[visit_exp $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`})] -[visit_exp $free_typeidx(typeidx)] -[visit_exp typeidx] -[visit_id typeidx] not free -[visit_exp $free_list($free_local(local)*{local <- `local*`})] -[visit_exp $free_local(local)*{local <- `local*`}] -[scope_enter local] -[visit_exp $free_local(local)] -[visit_exp local] -[visit_id local] not free -[visit_id local] not free -[scope_exit local] -[visit_exp `local*`] -[visit_id local*] not free -[visit_id local*] no dims -[visit_exp $free_block(expr)[`LOCALS`_free = []]] -[visit_exp $free_block(expr)] -[visit_exp expr] -[visit_id expr] not free -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_func{typeidx : typeidx, `local*` : local*, expr : expr}(`FUNC`_func(typeidx, local*{local <- `local*`}, expr)) = $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[`LOCALS`_free = []] -[check_dims] byte datamode -[visit_exp `DATA`_data(byte*{byte <- `byte*`}, datamode)] -[visit_exp (byte*{byte <- `byte*`}, datamode)] -[visit_exp byte*{byte <- `byte*`}] -[scope_enter byte] -[visit_exp byte] -[visit_id byte] not free -[visit_id byte] not free -[scope_exit byte] -[visit_exp `byte*`] -[visit_id byte*] no dims -[visit_id byte*] -[visit_exp datamode] -[visit_id datamode] -[visit_exp $free_datamode(datamode)] -[visit_exp datamode] -[visit_id datamode] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_data{`byte*` : byte*, datamode : datamode}(`DATA`_data(byte*{byte <- `byte*`}, datamode)) = $free_datamode(datamode) -[check_dims] elemmode expr reftype -[visit_exp `ELEM`_elem(reftype, expr*{expr <- `expr*`}, elemmode)] -[visit_exp (reftype, expr*{expr <- `expr*`}, elemmode)] -[visit_exp reftype] -[visit_id reftype] -[visit_exp expr*{expr <- `expr*`}] -[scope_enter expr] -[visit_exp expr] -[visit_id expr] not free -[visit_id expr] not free -[scope_exit expr] -[visit_exp `expr*`] -[visit_id expr*] no dims -[visit_id expr*] -[visit_exp elemmode] -[visit_id elemmode] -[visit_exp $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`}) +++ $free_elemmode(elemmode)] -[visit_exp $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`})] -[visit_exp $free_reftype(reftype)] -[visit_exp reftype] -[visit_id reftype] not free -[visit_exp $free_list($free_expr(expr)*{expr <- `expr*`})] -[visit_exp $free_expr(expr)*{expr <- `expr*`}] -[scope_enter expr] -[visit_exp $free_expr(expr)] -[visit_exp expr] -[visit_id expr] not free -[visit_id expr] not free -[scope_exit expr] -[visit_exp `expr*`] -[visit_id expr*] not free -[visit_id expr*] no dims -[visit_exp $free_elemmode(elemmode)] -[visit_exp elemmode] -[visit_id elemmode] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elem{reftype : reftype, `expr*` : expr*, elemmode : elemmode}(`ELEM`_elem(reftype, expr*{expr <- `expr*`}, elemmode)) = $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`}) +++ $free_elemmode(elemmode) -[check_dims] expr tableidx -[visit_exp `ACTIVE`_elemmode(tableidx, expr)] -[visit_exp (tableidx, expr)] -[visit_exp tableidx] -[visit_id tableidx] -[visit_exp expr] -[visit_id expr] -[visit_exp $free_tableidx(tableidx) +++ $free_expr(expr)] -[visit_exp $free_tableidx(tableidx)] -[visit_exp tableidx] -[visit_id tableidx] not free -[visit_exp $free_expr(expr)] -[visit_exp expr] -[visit_id expr] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode{tableidx : tableidx, expr : expr}(`ACTIVE`_elemmode(tableidx, expr)) = $free_tableidx(tableidx) +++ $free_expr(expr) -[check_dims] -[visit_exp `PASSIVE`_elemmode] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode(`PASSIVE`_elemmode) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] -[visit_exp `DECLARE`_elemmode] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode(`DECLARE`_elemmode) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] expr memidx -[visit_exp `ACTIVE`_datamode(memidx, expr)] -[visit_exp (memidx, expr)] -[visit_exp memidx] -[visit_id memidx] -[visit_exp expr] -[visit_id expr] -[visit_exp $free_memidx(memidx) +++ $free_expr(expr)] -[visit_exp $free_memidx(memidx)] -[visit_exp memidx] -[visit_id memidx] not free -[visit_exp $free_expr(expr)] -[visit_exp expr] -[visit_id expr] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_datamode{memidx : memidx, expr : expr}(`ACTIVE`_datamode(memidx, expr)) = $free_memidx(memidx) +++ $free_expr(expr) -[check_dims] -[visit_exp `PASSIVE`_datamode] -[visit_exp ()] -[visit_exp {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_datamode(`PASSIVE`_datamode) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} -[check_dims] funcidx -[visit_exp `START`_start(funcidx)] -[visit_exp (funcidx)] -[visit_exp funcidx] -[visit_id funcidx] -[visit_exp $free_funcidx(funcidx)] -[visit_exp funcidx] -[visit_id funcidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_start{funcidx : funcidx}(`START`_start(funcidx)) = $free_funcidx(funcidx) -[check_dims] externtype name_1 name_2 -[visit_exp `IMPORT`_import(name_1, name_2, externtype)] -[visit_exp (name_1, name_2, externtype)] -[visit_exp name_1] -[visit_id name_1] -[visit_exp name_2] -[visit_id name_2] -[visit_exp externtype] -[visit_id externtype] -[visit_exp $free_externtype(externtype)] -[visit_exp externtype] -[visit_id externtype] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_import{name_1 : name, name_2 : name, externtype : externtype}(`IMPORT`_import(name_1, name_2, externtype)) = $free_externtype(externtype) -[check_dims] externidx name -[visit_exp `EXPORT`_export(name, externidx)] -[visit_exp (name, externidx)] -[visit_exp name] -[visit_id name] -[visit_exp externidx] -[visit_id externidx] -[visit_exp $free_externidx(externidx)] -[visit_exp externidx] -[visit_id externidx] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_export{name : name, externidx : externidx}(`EXPORT`_export(name, externidx)) = $free_externidx(externidx) -[check_dims] data elem export func global import mem start table tag type -[visit_exp `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp type*{type <- `type*`}] -[scope_enter type] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] no dims -[visit_id type*] -[visit_exp import*{import <- `import*`}] -[scope_enter import] -[visit_exp import] -[visit_id import] not free -[visit_id import] not free -[scope_exit import] -[visit_exp `import*`] -[visit_id import*] no dims -[visit_id import*] -[visit_exp tag*{tag <- `tag*`}] -[scope_enter tag] -[visit_exp tag] -[visit_id tag] not free -[visit_id tag] not free -[scope_exit tag] -[visit_exp `tag*`] -[visit_id tag*] no dims -[visit_id tag*] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] no dims -[visit_id global*] -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] no dims -[visit_id mem*] -[visit_exp table*{table <- `table*`}] -[scope_enter table] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] no dims -[visit_id table*] -[visit_exp func*{func <- `func*`}] -[scope_enter func] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] no dims -[visit_id func*] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] no dims -[visit_id data*] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] no dims -[visit_id elem*] -[visit_exp start?{start <- `start?`}] -[scope_enter start] -[visit_exp start] -[visit_id start] not free -[visit_id start] not free -[scope_exit start] -[visit_exp `start?`] -[visit_id start?] no dims -[visit_id start?] -[visit_exp export*{export <- `export*`}] -[scope_enter export] -[visit_exp export] -[visit_id export] not free -[visit_id export] not free -[scope_exit export] -[visit_exp `export*`] -[visit_id export*] no dims -[visit_id export*] -[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`}) +++ $free_list($free_export(export)*{export <- `export*`})] -[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`})] -[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`})] -[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`})] -[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`})] -[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`})] -[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`})] -[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`})] -[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`})] -[visit_exp $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`})] -[visit_exp $free_list($free_type(type)*{type <- `type*`})] -[visit_exp $free_type(type)*{type <- `type*`}] -[scope_enter type] -[visit_exp $free_type(type)] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] not free -[visit_id type*] no dims -[visit_exp $free_list($free_tag(tag)*{tag <- `tag*`})] -[visit_exp $free_tag(tag)*{tag <- `tag*`}] -[scope_enter tag] -[visit_exp $free_tag(tag)] -[visit_exp tag] -[visit_id tag] not free -[visit_id tag] not free -[scope_exit tag] -[visit_exp `tag*`] -[visit_id tag*] not free -[visit_id tag*] no dims -[visit_exp $free_list($free_global(global)*{global <- `global*`})] -[visit_exp $free_global(global)*{global <- `global*`}] -[scope_enter global] -[visit_exp $free_global(global)] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] not free -[visit_id global*] no dims -[visit_exp $free_list($free_mem(mem)*{mem <- `mem*`})] -[visit_exp $free_mem(mem)*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp $free_mem(mem)] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] not free -[visit_id mem*] no dims -[visit_exp $free_list($free_table(table)*{table <- `table*`})] -[visit_exp $free_table(table)*{table <- `table*`}] -[scope_enter table] -[visit_exp $free_table(table)] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] not free -[visit_id table*] no dims -[visit_exp $free_list($free_func(func)*{func <- `func*`})] -[visit_exp $free_func(func)*{func <- `func*`}] -[scope_enter func] -[visit_exp $free_func(func)] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] not free -[visit_id func*] no dims -[visit_exp $free_list($free_data(data)*{data <- `data*`})] -[visit_exp $free_data(data)*{data <- `data*`}] -[scope_enter data] -[visit_exp $free_data(data)] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] not free -[visit_id data*] no dims -[visit_exp $free_list($free_elem(elem)*{elem <- `elem*`})] -[visit_exp $free_elem(elem)*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp $free_elem(elem)] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] not free -[visit_id elem*] no dims -[visit_exp $free_opt($free_start(start)?{start <- `start?`})] -[visit_exp $free_start(start)?{start <- `start?`}] -[scope_enter start] -[visit_exp $free_start(start)] -[visit_exp start] -[visit_id start] not free -[visit_id start] not free -[scope_exit start] -[visit_exp `start?`] -[visit_id start?] not free -[visit_id start?] no dims -[visit_exp $free_list($free_import(import)*{import <- `import*`})] -[visit_exp $free_import(import)*{import <- `import*`}] -[scope_enter import] -[visit_exp $free_import(import)] -[visit_exp import] -[visit_id import] not free -[visit_id import] not free -[scope_exit import] -[visit_exp `import*`] -[visit_id import*] not free -[visit_id import*] no dims -[visit_exp $free_list($free_export(export)*{export <- `export*`})] -[visit_exp $free_export(export)*{export <- `export*`}] -[scope_enter export] -[visit_exp $free_export(export)] -[visit_exp export] -[visit_id export] not free -[visit_id export] not free -[scope_exit export] -[visit_exp `export*`] -[visit_id export*] not free -[visit_id export*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_module{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*}(`MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) = $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`}) +++ $free_list($free_export(export)*{export <- `export*`}) -[check_dims] module -DecD funcidx_module(module : module) : funcidx* -[visit_id module] not free -[check_dims] module -[visit_exp module] -[visit_id module] -[visit_exp $free_module(module).`FUNCS`_free] -[visit_exp $free_module(module)] -[visit_exp module] -[visit_id module] not free -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $funcidx_module{module : module}(module) = $free_module(module).`FUNCS`_free -[check_dims] _ -DecD dataidx_funcs(func*) : dataidx* -[visit_id _] not free -[check_dims] func -[visit_exp func*{func <- `func*`}] -[scope_enter func] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] no dims -[visit_id func*] -[visit_exp $free_list($free_func(func)*{func <- `func*`}).`DATAS`_free] -[visit_exp $free_list($free_func(func)*{func <- `func*`})] -[visit_exp $free_func(func)*{func <- `func*`}] -[scope_enter func] -[visit_exp $free_func(func)] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] not free -[visit_id func*] no dims -=> - ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $dataidx_funcs{`func*` : func*}(func*{func <- `func*`}) = $free_list($free_func(func)*{func <- `func*`}).`DATAS`_free -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter init] -[visit_id init] not free -[visit_id init] no dims -[scope_enter valtype] -[visit_id valtype] not free -[visit_id valtype] no dims -[scope_exit valtype] -[scope_exit init] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter resulttype] -[visit_id resulttype] not free -[visit_id resulttype] no dims -[scope_enter localidx*] -[visit_id localidx*] not free -[visit_id localidx*] no dims -[scope_enter resulttype] -[visit_id resulttype] not free -[visit_id resulttype] no dims -[scope_exit resulttype] -[scope_exit localidx*] -[scope_exit resulttype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[scope_enter deftype*] -[visit_id deftype*] not free -[visit_id deftype*] no dims -[scope_exit deftype*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter subtype*] -[visit_id subtype*] not free -[visit_id subtype*] no dims -[scope_exit subtype*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tagtype*] -[visit_id tagtype*] not free -[visit_id tagtype*] no dims -[scope_exit tagtype*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter globaltype*] -[visit_id globaltype*] not free -[visit_id globaltype*] no dims -[scope_exit globaltype*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter memtype*] -[visit_id memtype*] not free -[visit_id memtype*] no dims -[scope_exit memtype*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tabletype*] -[visit_id tabletype*] not free -[visit_id tabletype*] no dims -[scope_exit tabletype*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter deftype*] -[visit_id deftype*] not free -[visit_id deftype*] no dims -[scope_exit deftype*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter datatype*] -[visit_id datatype*] not free -[visit_id datatype*] no dims -[scope_exit datatype*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter elemtype*] -[visit_id elemtype*] not free -[visit_id elemtype*] no dims -[scope_exit elemtype*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter localtype*] -[visit_id localtype*] not free -[visit_id localtype*] no dims -[scope_exit localtype*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter resulttype*] -[visit_id resulttype*] not free -[visit_id resulttype*] no dims -[scope_exit resulttype*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter resulttype?] -[visit_id resulttype?] not free -[visit_id resulttype?] no dims -[scope_exit resulttype?] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter funcidx*] -[visit_id funcidx*] not free -[visit_id funcidx*] no dims -[scope_exit funcidx*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] _ context -DecD with_locals(context : context, localidx*, localtype*) : context -[visit_id context] not free -[visit_id _] not free -[visit_id _] not free -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp []] -[visit_exp []] -[visit_exp C] -[visit_id C] not free -=> - ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $with_locals{C : context}(C, [], []) = C -[check_dims] C lct lct_1 x x_1 -[visit_exp C] -[visit_id C] -[visit_exp [x_1] ++ x*{x <- `x*`}] -[visit_exp [x_1]] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp [lct_1] ++ lct*{lct <- `lct*`}] -[visit_exp [lct_1]] -[visit_exp lct_1] -[visit_id lct_1] -[visit_exp lct*{lct <- `lct*`}] -[scope_enter lct] -[visit_exp lct] -[visit_id lct] not free -[visit_id lct] not free -[scope_exit lct] -[visit_exp `lct*`] -[visit_id lct*] no dims -[visit_id lct*] -[visit_exp $with_locals(C[`LOCALS`_context[x_1!`%`_idx.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`})] -[visit_exp C[`LOCALS`_context[x_1!`%`_idx.0] = lct_1]] -[visit_exp C] -[visit_id C] not free -[visit_exp x_1!`%`_idx.0] -[visit_exp x_1!`%`_idx] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp lct_1] -[visit_id lct_1] not free -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[visit_exp lct*{lct <- `lct*`}] -[scope_enter lct] -[visit_exp lct] -[visit_id lct] not free -[visit_id lct] not free -[scope_exit lct] -[visit_exp `lct*`] -[visit_id lct*] not free -[visit_id lct*] no dims -=> - ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $with_locals{C : context, x_1 : idx, `x*` : idx*, lct_1 : localtype, `lct*` : localtype*}(C, [x_1] ++ x*{x <- `x*`}, [lct_1] ++ lct*{lct <- `lct*`}) = $with_locals(C[`LOCALS`_context[x_1!`%`_idx.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`}) -[check_dims] context valtype -DecD clos_valtype(context : context, valtype : valtype) : valtype -[visit_id context] not free -[visit_id valtype] not free -[check_dims] context deftype -DecD clos_deftype(context : context, deftype : deftype) : deftype -[visit_id context] not free -[visit_id deftype] not free -[check_dims] context tagtype -DecD clos_tagtype(context : context, tagtype : tagtype) : tagtype -[visit_id context] not free -[visit_id tagtype] not free -[check_dims] context externtype -DecD clos_externtype(context : context, externtype : externtype) : externtype -[visit_id context] not free -[visit_id externtype] not free -[check_dims] context moduletype -DecD clos_moduletype(context : context, moduletype : moduletype) : moduletype -[visit_id context] not free -[visit_id moduletype] not free -[check_dims] _ -DecD clos_deftypes(deftype*) : deftype* -[visit_id _] not free -[check_dims] C dt t -[visit_exp C] -[visit_id C] -[visit_exp t] -[visit_id t] -[visit_exp $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp t] -[visit_id t] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context))] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp $clos_deftypes(C.`TYPES`_context)] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -=> - ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_valtype{C : context, t : valtype, `dt*` : deftype*}(C, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) -[check_dims] C dt dt' -[visit_exp C] -[visit_id C] -[visit_exp dt] -[visit_id dt] -[visit_exp $subst_all_deftype(dt, (dt' : deftype <: typeuse)*{dt' <- `dt'*`})] -[visit_exp dt] -[visit_id dt] not free -[visit_exp (dt' : deftype <: typeuse)*{dt' <- `dt'*`}] -[scope_enter dt'] -[visit_exp (dt' : deftype <: typeuse)] -[visit_exp dt'] -[visit_id dt'] not free -[visit_id dt'] not free -[scope_exit dt'] -[visit_exp `dt'*`] -[visit_id dt'*] no dims -[visit_id dt'*] -[visit_exp (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.`TYPES`_context))] -[visit_exp dt'*{dt' <- `dt'*`}] -[scope_enter dt'] -[visit_exp dt'] -[visit_id dt'] not free -[visit_id dt'] not free -[scope_exit dt'] -[visit_exp `dt'*`] -[visit_id dt'*] not free -[visit_id dt'*] no dims -[visit_exp $clos_deftypes(C.`TYPES`_context)] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -=> - ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_deftype{C : context, dt : deftype, `dt'*` : deftype*}(C, dt) = $subst_all_deftype(dt, (dt' : deftype <: typeuse)*{dt' <- `dt'*`}) - -- if (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.`TYPES`_context)) -[check_dims] C dt jt -[visit_exp C] -[visit_id C] -[visit_exp jt] -[visit_id jt] -[visit_exp $subst_all_tagtype(jt, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp jt] -[visit_id jt] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context))] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp $clos_deftypes(C.`TYPES`_context)] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -=> - ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_tagtype{C : context, jt : tagtype, `dt*` : deftype*}(C, jt) = $subst_all_tagtype(jt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) -[check_dims] C dt xt -[visit_exp C] -[visit_id C] -[visit_exp xt] -[visit_id xt] -[visit_exp $subst_all_externtype(xt, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp xt] -[visit_id xt] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context))] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp $clos_deftypes(C.`TYPES`_context)] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -=> - ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_externtype{C : context, xt : externtype, `dt*` : deftype*}(C, xt) = $subst_all_externtype(xt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) -[check_dims] C dt mmt -[visit_exp C] -[visit_id C] -[visit_exp mmt] -[visit_id mmt] -[visit_exp $subst_all_moduletype(mmt, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp mmt] -[visit_id mmt] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context))] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp $clos_deftypes(C.`TYPES`_context)] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -=> - ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_moduletype{C : context, mmt : moduletype, `dt*` : deftype*}(C, mmt) = $subst_all_moduletype(mmt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_deftypes([]) = [] -[check_dims] dt dt' dt_n -[visit_exp dt*{dt <- `dt*`} ++ [dt_n]] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp [dt_n]] -[visit_exp dt_n] -[visit_id dt_n] -[visit_exp dt'*{dt' <- `dt'*`} ++ [$subst_all_deftype(dt_n, (dt' : deftype <: typeuse)*{dt' <- `dt'*`})]] -[visit_exp dt'*{dt' <- `dt'*`}] -[scope_enter dt'] -[visit_exp dt'] -[visit_id dt'] not free -[visit_id dt'] not free -[scope_exit dt'] -[visit_exp `dt'*`] -[visit_id dt'*] no dims -[visit_id dt'*] -[visit_exp [$subst_all_deftype(dt_n, (dt' : deftype <: typeuse)*{dt' <- `dt'*`})]] -[visit_exp $subst_all_deftype(dt_n, (dt' : deftype <: typeuse)*{dt' <- `dt'*`})] -[visit_exp dt_n] -[visit_id dt_n] not free -[visit_exp (dt' : deftype <: typeuse)*{dt' <- `dt'*`}] -[scope_enter dt'] -[visit_exp (dt' : deftype <: typeuse)] -[visit_exp dt'] -[visit_id dt'] not free -[visit_id dt'] not free -[scope_exit dt'] -[visit_exp `dt'*`] -[visit_id dt'*] not free -[visit_id dt'*] no dims -[visit_exp (dt'*{dt' <- `dt'*`} = $clos_deftypes(dt*{dt <- `dt*`}))] -[visit_exp dt'*{dt' <- `dt'*`}] -[scope_enter dt'] -[visit_exp dt'] -[visit_id dt'] not free -[visit_id dt'] not free -[scope_exit dt'] -[visit_exp `dt'*`] -[visit_id dt'*] not free -[visit_id dt'*] no dims -[visit_exp $clos_deftypes(dt*{dt <- `dt*`})] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -=> - ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec - def $clos_deftypes{`dt*` : deftype*, dt_n : deftype, `dt'*` : deftype*}(dt*{dt <- `dt*`} ++ [dt_n]) = dt'*{dt' <- `dt'*`} ++ [$subst_all_deftype(dt_n, (dt' : deftype <: typeuse)*{dt' <- `dt'*`})] - -- if (dt'*{dt' <- `dt'*`} = $clos_deftypes(dt*{dt <- `dt*`})) -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] C numtype -[visit_exp C] -[visit_id C] -[visit_exp numtype] -[visit_id numtype] -[check_dims] C vectype -[visit_exp C] -[visit_id C] -[visit_exp vectype] -[visit_id vectype] -[check_dims] C absheaptype -[visit_exp C] -[visit_id C] -[visit_exp (absheaptype : absheaptype <: heaptype)] -[visit_exp absheaptype] -[visit_id absheaptype] -[check_dims] C typeuse -[visit_exp C] -[visit_id C] -[visit_exp (typeuse : typeuse <: heaptype)] -[visit_exp typeuse] -[visit_id typeuse] -[visit_exp (C, typeuse)] -[visit_exp C] -[visit_id C] not free -[visit_exp typeuse] -[visit_id typeuse] not free -[check_dims] C heaptype -[visit_exp C] -[visit_id C] -[visit_exp `REF`_reftype(`NULL`_null?{}, heaptype)] -[visit_exp (`NULL`_null?{}, heaptype)] -[visit_exp `NULL`_null?{}] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp heaptype] -[visit_id heaptype] -[visit_exp (C, heaptype)] -[visit_exp C] -[visit_id C] not free -[visit_exp heaptype] -[visit_id heaptype] not free -[check_dims] C numtype -[visit_exp C] -[visit_id C] -[visit_exp (numtype : numtype <: valtype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp (C, numtype)] -[visit_exp C] -[visit_id C] not free -[visit_exp numtype] -[visit_id numtype] not free -[check_dims] C vectype -[visit_exp C] -[visit_id C] -[visit_exp (vectype : vectype <: valtype)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp (C, vectype)] -[visit_exp C] -[visit_id C] not free -[visit_exp vectype] -[visit_id vectype] not free -[check_dims] C reftype -[visit_exp C] -[visit_id C] -[visit_exp (reftype : reftype <: valtype)] -[visit_exp reftype] -[visit_id reftype] -[visit_exp (C, reftype)] -[visit_exp C] -[visit_id C] not free -[visit_exp reftype] -[visit_id reftype] not free -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp `BOT`_valtype] -[visit_exp ()] -[check_dims] -[check_dims] -[check_dims] C t -[visit_exp C] -[visit_id C] -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[scope_enter t] -[visit_exp (C, t)] -[visit_exp C] -[visit_id C] not free -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[check_dims] C lct t_1 t_2 x -[visit_exp C] -[visit_id C] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C, `%`_resulttype(t_1*{t_1 <- `t_1*`}))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp (C, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[scope_enter lct] -[scope_enter x] -[visit_exp (C.`LOCALS`_context[x!`%`_idx.0] = lct)] -[visit_exp C.`LOCALS`_context[x!`%`_idx.0]] -[visit_exp C.`LOCALS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp lct] -[visit_id lct] not free -[visit_id lct] not free -[visit_id x] not free -[scope_exit x] -[scope_exit lct] -[visit_exp `lct*`] -[visit_id lct*] no dims -[visit_id lct*] -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[check_dims] -[check_dims] -[check_dims] comptype deftype -[visit_exp deftype] -[visit_id deftype] -[visit_exp comptype] -[visit_id comptype] -[visit_exp ($expanddt(deftype) = comptype)] -[visit_exp $expanddt(deftype)] -[visit_exp deftype] -[visit_id deftype] not free -[visit_exp comptype] -[visit_id comptype] not free -[check_dims] C comptype deftype -[visit_exp (deftype : deftype <: typeuse)] -[visit_exp deftype] -[visit_id deftype] -[visit_exp C] -[visit_id C] -[visit_exp comptype] -[visit_id comptype] -[visit_exp (deftype, comptype)] -[visit_exp deftype] -[visit_id deftype] not free -[visit_exp comptype] -[visit_id comptype] not free -[check_dims] C comptype typeidx -[visit_exp `_IDX`_typeuse(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp C] -[visit_id C] -[visit_exp comptype] -[visit_id comptype] -[visit_exp (C.`TYPES`_context[typeidx!`%`_typeidx.0], comptype)] -[visit_exp C.`TYPES`_context[typeidx!`%`_typeidx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp typeidx!`%`_typeidx.0] -[visit_exp typeidx!`%`_typeidx] -[visit_exp typeidx] -[visit_id typeidx] not free -[visit_exp comptype] -[visit_id comptype] not free -[check_dims] -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter typeidx] -[visit_id typeidx] not free -[visit_id typeidx] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit typeidx] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] C dt typeidx -[visit_exp C] -[visit_id C] -[visit_exp `_IDX`_typeuse(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp (C.`TYPES`_context[typeidx!`%`_typeidx.0] = dt)] -[visit_exp C.`TYPES`_context[typeidx!`%`_typeidx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp typeidx!`%`_typeidx.0] -[visit_exp typeidx!`%`_typeidx] -[visit_exp typeidx] -[visit_id typeidx] not free -[visit_exp dt] -[visit_id dt] -[check_dims] C i st -[visit_exp C] -[visit_id C] -[visit_exp `REC`_typeuse(i)] -[visit_exp (i)] -[visit_exp i] -[visit_id i] -[visit_exp (C.`RECS`_context[i] = st)] -[visit_exp C.`RECS`_context[i]] -[visit_exp C.`RECS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp i] -[visit_id i] not free -[visit_exp st] -[visit_id st] -[check_dims] C deftype -[visit_exp C] -[visit_id C] -[visit_exp (deftype : deftype <: typeuse)] -[visit_exp deftype] -[visit_id deftype] -[visit_exp (C, deftype)] -[visit_exp C] -[visit_id C] not free -[visit_exp deftype] -[visit_id deftype] not free -[check_dims] C packtype -[visit_exp C] -[visit_id C] -[visit_exp packtype] -[visit_id packtype] -[check_dims] C valtype -[visit_exp C] -[visit_id C] -[visit_exp (valtype : valtype <: storagetype)] -[visit_exp valtype] -[visit_id valtype] -[visit_exp (C, valtype)] -[visit_exp C] -[visit_id C] not free -[visit_exp valtype] -[visit_id valtype] not free -[check_dims] C packtype -[visit_exp C] -[visit_id C] -[visit_exp (packtype : packtype <: storagetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp (C, packtype)] -[visit_exp C] -[visit_id C] not free -[visit_exp packtype] -[visit_id packtype] not free -[check_dims] C storagetype -[visit_exp C] -[visit_id C] -[visit_exp `%%`_fieldtype(`MUT`_mut?{}, storagetype)] -[visit_exp (`MUT`_mut?{}, storagetype)] -[visit_exp `MUT`_mut?{}] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp storagetype] -[visit_id storagetype] -[visit_exp (C, storagetype)] -[visit_exp C] -[visit_id C] not free -[visit_exp storagetype] -[visit_id storagetype] not free -[check_dims] C fieldtype -[visit_exp C] -[visit_id C] -[visit_exp `STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))] -[visit_exp (`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))] -[visit_exp `%`_list(fieldtype*{fieldtype <- `fieldtype*`})] -[visit_exp (fieldtype*{fieldtype <- `fieldtype*`})] -[visit_exp fieldtype*{fieldtype <- `fieldtype*`}] -[scope_enter fieldtype] -[visit_exp fieldtype] -[visit_id fieldtype] not free -[visit_id fieldtype] not free -[scope_exit fieldtype] -[visit_exp `fieldtype*`] -[visit_id fieldtype*] no dims -[visit_id fieldtype*] -[scope_enter fieldtype] -[visit_exp (C, fieldtype)] -[visit_exp C] -[visit_id C] not free -[visit_exp fieldtype] -[visit_id fieldtype] not free -[visit_id fieldtype] not free -[scope_exit fieldtype] -[visit_exp `fieldtype*`] -[visit_id fieldtype*] not free -[visit_id fieldtype*] no dims -[check_dims] C fieldtype -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY`_comptype(fieldtype)] -[visit_exp (fieldtype)] -[visit_exp fieldtype] -[visit_id fieldtype] -[visit_exp (C, fieldtype)] -[visit_exp C] -[visit_id C] not free -[visit_exp fieldtype] -[visit_id fieldtype] not free -[check_dims] C t_1 t_2 -[visit_exp C] -[visit_id C] -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C, `%`_resulttype(t_1*{t_1 <- `t_1*`}))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp (C, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C comptype comptype' x x' x_0 -[visit_exp C] -[visit_id C] -[visit_exp `SUB`_subtype(`FINAL`_final?{}, `_IDX`_typeuse(x)*{x <- `x*`}, comptype)] -[visit_exp (`FINAL`_final?{}, `_IDX`_typeuse(x)*{x <- `x*`}, comptype)] -[visit_exp `FINAL`_final?{}] -[visit_exp `FINAL`_final] -[visit_exp ()] -[visit_exp `_IDX`_typeuse(x)*{x <- `x*`}] -[scope_enter x] -[visit_exp `_IDX`_typeuse(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp comptype] -[visit_id comptype] -[visit_exp `OK`_oktypeidx(x_0)] -[visit_exp (x_0)] -[visit_exp x_0] -[visit_id x_0] -[visit_exp (|x*{x <- `x*`}| <= 1)] -[visit_exp |x*{x <- `x*`}|] -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[visit_exp 1] -[scope_enter x] -[visit_exp (x!`%`_idx.0 < x_0!`%`_idx.0)] -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp x_0!`%`_idx.0] -[visit_exp x_0!`%`_idx] -[visit_exp x_0] -[visit_id x_0] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[scope_enter comptype'] -[scope_enter x] -[scope_enter x'*] -[visit_exp ($unrolldt(C.`TYPES`_context[x!`%`_idx.0]) = `SUB`_subtype(?(), `_IDX`_typeuse(x')*{x' <- `x'*`}, comptype'))] -[visit_exp $unrolldt(C.`TYPES`_context[x!`%`_idx.0])] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `SUB`_subtype(?(), `_IDX`_typeuse(x')*{x' <- `x'*`}, comptype')] -[visit_exp (?(), `_IDX`_typeuse(x')*{x' <- `x'*`}, comptype')] -[visit_exp ?()] -[visit_exp `_IDX`_typeuse(x')*{x' <- `x'*`}] -[scope_enter x'] -[visit_exp `_IDX`_typeuse(x')] -[visit_exp (x')] -[visit_exp x'] -[visit_id x'] not free -[visit_id x'] not free -[scope_exit x'] -[visit_exp `x'*`] -[visit_id x'*] not free -[visit_id x'*] no dims -[visit_exp comptype'] -[visit_id comptype'] not free -[visit_id comptype'] not free -[visit_id x] not free -[visit_id x'*] not free -[visit_id x'*] no dims -[scope_exit x'*] -[scope_exit x] -[scope_exit comptype'] -[visit_exp `comptype'*`] -[visit_id comptype'*] no dims -[visit_id comptype'*] -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[visit_exp `x'**`] -[visit_id x'**] no dims -[visit_id x'**] -[visit_exp (C, comptype)] -[visit_exp C] -[visit_id C] not free -[visit_exp comptype] -[visit_id comptype] not free -[scope_enter comptype'] -[visit_exp (C, comptype, comptype')] -[visit_exp C] -[visit_id C] not free -[visit_exp comptype] -[visit_id comptype] not free -[visit_exp comptype'] -[visit_id comptype'] not free -[visit_id comptype'] not free -[scope_exit comptype'] -[visit_exp `comptype'*`] -[visit_id comptype'*] not free -[visit_id comptype'*] no dims -[check_dims] nat typeidx typeuse -DecD before(typeuse : typeuse, typeidx : typeidx, nat : nat) : bool -[visit_id typeuse] not free -[visit_id typeidx] not free -[visit_id nat] not free -[check_dims] deftype i x -[visit_exp (deftype : deftype <: typeuse)] -[visit_exp deftype] -[visit_id deftype] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp true] -=> - ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $before{deftype : deftype, x : idx, i : nat}((deftype : deftype <: typeuse), x, i) = true -[check_dims] i typeidx x -[visit_exp `_IDX`_typeuse(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp (typeidx!`%`_typeidx.0 < x!`%`_idx.0)] -[visit_exp typeidx!`%`_typeidx.0] -[visit_exp typeidx!`%`_typeidx] -[visit_exp typeidx] -[visit_id typeidx] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $before{typeidx : typeidx, x : idx, i : nat}(`_IDX`_typeuse(typeidx), x, i) = (typeidx!`%`_typeidx.0 < x!`%`_idx.0) -[check_dims] i j x -[visit_exp `REC`_typeuse(j)] -[visit_exp (j)] -[visit_exp j] -[visit_id j] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp (j < i)] -[visit_exp j] -[visit_id j] not free -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $before{j : n, x : idx, i : nat}(`REC`_typeuse(j), x, i) = (j < i) -[check_dims] context heaptype -DecD unrollht(context : context, heaptype : heaptype) : subtype -[visit_id context] not free -[visit_id heaptype] not free -[check_dims] C deftype -[visit_exp C] -[visit_id C] -[visit_exp (deftype : deftype <: heaptype)] -[visit_exp deftype] -[visit_id deftype] -[visit_exp $unrolldt(deftype)] -[visit_exp deftype] -[visit_id deftype] not free -=> - ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $unrollht{C : context, deftype : deftype}(C, (deftype : deftype <: heaptype)) = $unrolldt(deftype) -[check_dims] C typeidx -[visit_exp C] -[visit_id C] -[visit_exp `_IDX`_heaptype(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp $unrolldt(C.`TYPES`_context[typeidx!`%`_typeidx.0])] -[visit_exp C.`TYPES`_context[typeidx!`%`_typeidx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp typeidx!`%`_typeidx.0] -[visit_exp typeidx!`%`_typeidx] -[visit_exp typeidx] -[visit_id typeidx] not free -=> - ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $unrollht{C : context, typeidx : typeidx}(C, `_IDX`_heaptype(typeidx)) = $unrolldt(C.`TYPES`_context[typeidx!`%`_typeidx.0]) -[check_dims] C i -[visit_exp C] -[visit_id C] -[visit_exp `REC`_heaptype(i)] -[visit_exp (i)] -[visit_exp i] -[visit_id i] -[visit_exp C.`RECS`_context[i]] -[visit_exp C.`RECS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $unrollht{C : context, i : n}(C, `REC`_heaptype(i)) = C.`RECS`_context[i] -[check_dims] C compttype comptype comptype' i typeuse typeuse' x -[visit_exp C] -[visit_id C] -[visit_exp `SUB`_subtype(`FINAL`_final?{}, typeuse*{typeuse <- `typeuse*`}, compttype)] -[visit_exp (`FINAL`_final?{}, typeuse*{typeuse <- `typeuse*`}, compttype)] -[visit_exp `FINAL`_final?{}] -[visit_exp `FINAL`_final] -[visit_exp ()] -[visit_exp typeuse*{typeuse <- `typeuse*`}] -[scope_enter typeuse] -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_id typeuse] not free -[scope_exit typeuse] -[visit_exp `typeuse*`] -[visit_id typeuse*] no dims -[visit_id typeuse*] -[visit_exp compttype] -[visit_id compttype] -[visit_exp `OK`_oktypeidxnat(x, i)] -[visit_exp (x, i)] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp (|typeuse*{typeuse <- `typeuse*`}| <= 1)] -[visit_exp |typeuse*{typeuse <- `typeuse*`}|] -[visit_exp typeuse*{typeuse <- `typeuse*`}] -[scope_enter typeuse] -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_id typeuse] not free -[scope_exit typeuse] -[visit_exp `typeuse*`] -[visit_id typeuse*] not free -[visit_id typeuse*] no dims -[visit_exp 1] -[scope_enter typeuse] -[visit_exp $before(typeuse, x, i)] -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_exp x] -[visit_id x] not free -[visit_exp i] -[visit_id i] not free -[visit_id typeuse] not free -[scope_exit typeuse] -[visit_exp `typeuse*`] -[visit_id typeuse*] not free -[visit_id typeuse*] no dims -[scope_enter comptype'] -[scope_enter typeuse] -[scope_enter typeuse'*] -[visit_exp ($unrollht(C, (typeuse : typeuse <: heaptype)) = `SUB`_subtype(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype'))] -[visit_exp $unrollht(C, (typeuse : typeuse <: heaptype))] -[visit_exp C] -[visit_id C] not free -[visit_exp (typeuse : typeuse <: heaptype)] -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_exp `SUB`_subtype(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype')] -[visit_exp (?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype')] -[visit_exp ?()] -[visit_exp typeuse'*{typeuse' <- `typeuse'*`}] -[scope_enter typeuse'] -[visit_exp typeuse'] -[visit_id typeuse'] not free -[visit_id typeuse'] not free -[scope_exit typeuse'] -[visit_exp `typeuse'*`] -[visit_id typeuse'*] not free -[visit_id typeuse'*] no dims -[visit_exp comptype'] -[visit_id comptype'] not free -[visit_id comptype'] not free -[visit_id typeuse] not free -[visit_id typeuse'*] not free -[visit_id typeuse'*] no dims -[scope_exit typeuse'*] -[scope_exit typeuse] -[scope_exit comptype'] -[visit_exp `comptype'*`] -[visit_id comptype'*] no dims -[visit_id comptype'*] -[visit_exp `typeuse*`] -[visit_id typeuse*] not free -[visit_id typeuse*] no dims -[visit_exp `typeuse'**`] -[visit_id typeuse'**] no dims -[visit_id typeuse'**] -[visit_exp (C, comptype)] -[visit_exp C] -[visit_id C] not free -[visit_exp comptype] -[visit_id comptype] -[scope_enter comptype'] -[visit_exp (C, comptype, comptype')] -[visit_exp C] -[visit_id C] not free -[visit_exp comptype] -[visit_id comptype] not free -[visit_exp comptype'] -[visit_id comptype'] not free -[visit_id comptype'] not free -[scope_exit comptype'] -[visit_exp `comptype'*`] -[visit_id comptype'*] not free -[visit_id comptype'*] no dims -[check_dims] C x -[visit_exp C] -[visit_id C] -[visit_exp `REC`_rectype(`%`_list([]))] -[visit_exp (`%`_list([]))] -[visit_exp `%`_list([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp `OK`_oktypeidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[check_dims] C subtype subtype_1 x -[visit_exp C] -[visit_id C] -[visit_exp `REC`_rectype(`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`})] -[visit_exp ([subtype_1] ++ subtype*{subtype <- `subtype*`})] -[visit_exp [subtype_1] ++ subtype*{subtype <- `subtype*`}] -[visit_exp [subtype_1]] -[visit_exp subtype_1] -[visit_id subtype_1] -[visit_exp subtype*{subtype <- `subtype*`}] -[scope_enter subtype] -[visit_exp subtype] -[visit_id subtype] not free -[visit_id subtype] not free -[scope_exit subtype] -[visit_exp `subtype*`] -[visit_id subtype*] no dims -[visit_id subtype*] -[visit_exp `OK`_oktypeidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp (C, subtype_1, `OK`_oktypeidx(x))] -[visit_exp C] -[visit_id C] not free -[visit_exp subtype_1] -[visit_id subtype_1] not free -[visit_exp `OK`_oktypeidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp (C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidx(`%`_typeidx((x!`%`_idx.0 + 1))))] -[visit_exp C] -[visit_id C] not free -[visit_exp `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list(subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list(subtype*{subtype <- `subtype*`})] -[visit_exp (subtype*{subtype <- `subtype*`})] -[visit_exp subtype*{subtype <- `subtype*`}] -[scope_enter subtype] -[visit_exp subtype] -[visit_id subtype] not free -[visit_id subtype] not free -[scope_exit subtype] -[visit_exp `subtype*`] -[visit_id subtype*] not free -[visit_id subtype*] no dims -[visit_exp `OK`_oktypeidx(`%`_typeidx((x!`%`_idx.0 + 1)))] -[visit_exp (`%`_typeidx((x!`%`_idx.0 + 1)))] -[visit_exp `%`_typeidx((x!`%`_idx.0 + 1))] -[visit_exp ((x!`%`_idx.0 + 1))] -[visit_exp (x!`%`_idx.0 + 1)] -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp 1] -[check_dims] C subtype x -[visit_exp C] -[visit_id C] -[visit_exp `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list(subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list(subtype*{subtype <- `subtype*`})] -[visit_exp (subtype*{subtype <- `subtype*`})] -[visit_exp subtype*{subtype <- `subtype*`}] -[scope_enter subtype] -[visit_exp subtype] -[visit_id subtype] not free -[visit_id subtype] not free -[scope_exit subtype] -[visit_exp `subtype*`] -[visit_id subtype*] no dims -[visit_id subtype*] -[visit_exp `OK`_oktypeidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp ({`TYPES` [], `RECS` subtype*{subtype <- `subtype*`}, `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []} +++ C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat(x, 0))] -[visit_exp {`TYPES` [], `RECS` subtype*{subtype <- `subtype*`}, `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []} +++ C] -[visit_exp {`TYPES` [], `RECS` subtype*{subtype <- `subtype*`}, `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp subtype*{subtype <- `subtype*`}] -[scope_enter subtype] -[visit_exp subtype] -[visit_id subtype] not free -[visit_id subtype] not free -[scope_exit subtype] -[visit_exp `subtype*`] -[visit_id subtype*] not free -[visit_id subtype*] no dims -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp C] -[visit_id C] not free -[visit_exp `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list(subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list(subtype*{subtype <- `subtype*`})] -[visit_exp (subtype*{subtype <- `subtype*`})] -[visit_exp subtype*{subtype <- `subtype*`}] -[scope_enter subtype] -[visit_exp subtype] -[visit_id subtype] not free -[visit_id subtype] not free -[scope_exit subtype] -[visit_exp `subtype*`] -[visit_id subtype*] not free -[visit_id subtype*] no dims -[visit_exp `OK`_oktypeidxnat(x, 0)] -[visit_exp (x, 0)] -[visit_exp x] -[visit_id x] not free -[visit_exp 0] -[check_dims] C i x -[visit_exp C] -[visit_id C] -[visit_exp `REC`_rectype(`%`_list([]))] -[visit_exp (`%`_list([]))] -[visit_exp `%`_list([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp `OK`_oktypeidxnat(x, i)] -[visit_exp (x, i)] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[check_dims] C i subtype subtype_1 x -[visit_exp C] -[visit_id C] -[visit_exp `REC`_rectype(`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`})] -[visit_exp ([subtype_1] ++ subtype*{subtype <- `subtype*`})] -[visit_exp [subtype_1] ++ subtype*{subtype <- `subtype*`}] -[visit_exp [subtype_1]] -[visit_exp subtype_1] -[visit_id subtype_1] -[visit_exp subtype*{subtype <- `subtype*`}] -[scope_enter subtype] -[visit_exp subtype] -[visit_id subtype] not free -[visit_id subtype] not free -[scope_exit subtype] -[visit_exp `subtype*`] -[visit_id subtype*] no dims -[visit_id subtype*] -[visit_exp `OK`_oktypeidxnat(x, i)] -[visit_exp (x, i)] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp (C, subtype_1, `OK`_oktypeidxnat(x, i))] -[visit_exp C] -[visit_id C] not free -[visit_exp subtype_1] -[visit_id subtype_1] not free -[visit_exp `OK`_oktypeidxnat(x, i)] -[visit_exp (x, i)] -[visit_exp x] -[visit_id x] not free -[visit_exp i] -[visit_id i] not free -[visit_exp (C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat(`%`_typeidx((x!`%`_idx.0 + 1)), (i + 1)))] -[visit_exp C] -[visit_id C] not free -[visit_exp `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))] -[visit_exp (`%`_list(subtype*{subtype <- `subtype*`}))] -[visit_exp `%`_list(subtype*{subtype <- `subtype*`})] -[visit_exp (subtype*{subtype <- `subtype*`})] -[visit_exp subtype*{subtype <- `subtype*`}] -[scope_enter subtype] -[visit_exp subtype] -[visit_id subtype] not free -[visit_id subtype] not free -[scope_exit subtype] -[visit_exp `subtype*`] -[visit_id subtype*] not free -[visit_id subtype*] no dims -[visit_exp `OK`_oktypeidxnat(`%`_typeidx((x!`%`_idx.0 + 1)), (i + 1))] -[visit_exp (`%`_typeidx((x!`%`_idx.0 + 1)), (i + 1))] -[visit_exp `%`_typeidx((x!`%`_idx.0 + 1))] -[visit_exp ((x!`%`_idx.0 + 1))] -[visit_exp (x!`%`_idx.0 + 1)] -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp 1] -[visit_exp (i + 1)] -[visit_exp i] -[visit_id i] not free -[visit_exp 1] -[check_dims] C i n rectype subtype x -[visit_exp C] -[visit_id C] -[visit_exp `_DEF`_deftype(rectype, i)] -[visit_exp (rectype, i)] -[visit_exp rectype] -[visit_id rectype] -[visit_exp i] -[visit_id i] -[visit_exp (C, rectype, `OK`_oktypeidx(x))] -[visit_exp C] -[visit_id C] not free -[visit_exp rectype] -[visit_id rectype] not free -[visit_exp `OK`_oktypeidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp (rectype = `REC`_rectype(`%`_list(subtype^n{subtype <- `subtype*`})))] -[visit_exp rectype] -[visit_id rectype] not free -[visit_exp `REC`_rectype(`%`_list(subtype^n{subtype <- `subtype*`}))] -[visit_exp (`%`_list(subtype^n{subtype <- `subtype*`}))] -[visit_exp `%`_list(subtype^n{subtype <- `subtype*`})] -[visit_exp (subtype^n{subtype <- `subtype*`})] -[visit_exp subtype^n{subtype <- `subtype*`}] -[scope_enter subtype] -[visit_exp subtype] -[visit_id subtype] not free -[visit_id subtype] not free -[scope_exit subtype] -[visit_exp n] -[visit_id n] -[visit_exp `subtype*`] -[visit_id subtype*] no dims -[visit_id subtype*] -[visit_exp (i < n)] -[visit_exp i] -[visit_id i] not free -[visit_exp n] -[visit_id n] not free -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] C k m n -[visit_exp C] -[visit_id C] -[visit_exp `[%..%]`_limits(`%`_u64(n), `%`_u64(m)?{m <- `m?`})] -[visit_exp (`%`_u64(n), `%`_u64(m)?{m <- `m?`})] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `%`_u64(m)?{m <- `m?`}] -[scope_enter m] -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] not free -[visit_id m] not free -[scope_exit m] -[visit_exp `m?`] -[visit_id m?] no dims -[visit_id m?] -[visit_exp k] -[visit_id k] -[visit_exp (n <= k)] -[visit_exp n] -[visit_id n] not free -[visit_exp k] -[visit_id k] not free -[scope_enter m] -[visit_exp ((n <= m) /\ (m <= k))] -[visit_exp (n <= m)] -[visit_exp n] -[visit_id n] not free -[visit_exp m] -[visit_id m] not free -[visit_exp (m <= k)] -[visit_exp m] -[visit_id m] not free -[visit_exp k] -[visit_id k] not free -[visit_id m] not free -[scope_exit m] -[visit_exp `m?`] -[visit_id m?] not free -[visit_id m?] no dims -[check_dims] C t_1 t_2 typeuse -[visit_exp C] -[visit_id C] -[visit_exp typeuse] -[visit_id typeuse] -[visit_exp (C, typeuse)] -[visit_exp C] -[visit_id C] not free -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_exp (typeuse, C, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_exp C] -[visit_id C] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[check_dims] C t -[visit_exp C] -[visit_id C] -[visit_exp `%%`_globaltype(`MUT`_mut?{}, t)] -[visit_exp (`MUT`_mut?{}, t)] -[visit_exp `MUT`_mut?{}] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp t] -[visit_id t] -[visit_exp (C, t)] -[visit_exp C] -[visit_id C] not free -[visit_exp t] -[visit_id t] not free -[check_dims] C addrtype limits -[visit_exp C] -[visit_id C] -[visit_exp `%%PAGE`_memtype(addrtype, limits)] -[visit_exp (addrtype, limits)] -[visit_exp addrtype] -[visit_id addrtype] -[visit_exp limits] -[visit_id limits] -[visit_exp (C, limits, (2 ^ 16))] -[visit_exp C] -[visit_id C] not free -[visit_exp limits] -[visit_id limits] not free -[visit_exp (2 ^ 16)] -[visit_exp 2] -[visit_exp 16] -[check_dims] C addrtype limits reftype -[visit_exp C] -[visit_id C] -[visit_exp `%%%`_tabletype(addrtype, limits, reftype)] -[visit_exp (addrtype, limits, reftype)] -[visit_exp addrtype] -[visit_id addrtype] -[visit_exp limits] -[visit_id limits] -[visit_exp reftype] -[visit_id reftype] -[visit_exp (C, limits, ((((2 ^ 32) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp C] -[visit_id C] not free -[visit_exp limits] -[visit_id limits] not free -[visit_exp ((((2 ^ 32) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((2 ^ 32) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((2 ^ 32) : nat <:> int)] -[visit_exp (2 ^ 32)] -[visit_exp 2] -[visit_exp 32] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp (C, reftype)] -[visit_exp C] -[visit_id C] not free -[visit_exp reftype] -[visit_id reftype] not free -[check_dims] C tagtype -[visit_exp C] -[visit_id C] -[visit_exp `TAG`_externtype(tagtype)] -[visit_exp (tagtype)] -[visit_exp tagtype] -[visit_id tagtype] -[visit_exp (C, tagtype)] -[visit_exp C] -[visit_id C] not free -[visit_exp tagtype] -[visit_id tagtype] not free -[check_dims] C globaltype -[visit_exp C] -[visit_id C] -[visit_exp `GLOBAL`_externtype(globaltype)] -[visit_exp (globaltype)] -[visit_exp globaltype] -[visit_id globaltype] -[visit_exp (C, globaltype)] -[visit_exp C] -[visit_id C] not free -[visit_exp globaltype] -[visit_id globaltype] not free -[check_dims] C memtype -[visit_exp C] -[visit_id C] -[visit_exp `MEM`_externtype(memtype)] -[visit_exp (memtype)] -[visit_exp memtype] -[visit_id memtype] -[visit_exp (C, memtype)] -[visit_exp C] -[visit_id C] not free -[visit_exp memtype] -[visit_id memtype] not free -[check_dims] C tabletype -[visit_exp C] -[visit_id C] -[visit_exp `TABLE`_externtype(tabletype)] -[visit_exp (tabletype)] -[visit_exp tabletype] -[visit_id tabletype] -[visit_exp (C, tabletype)] -[visit_exp C] -[visit_id C] not free -[visit_exp tabletype] -[visit_id tabletype] not free -[check_dims] C t_1 t_2 typeuse -[visit_exp C] -[visit_id C] -[visit_exp `FUNC`_externtype(typeuse)] -[visit_exp (typeuse)] -[visit_exp typeuse] -[visit_id typeuse] -[visit_exp (C, typeuse)] -[visit_exp C] -[visit_id C] not free -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_exp (typeuse, C, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_exp C] -[visit_id C] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] C numtype -[visit_exp C] -[visit_id C] -[visit_exp numtype] -[visit_id numtype] -[visit_exp numtype] -[visit_id numtype] not free -[check_dims] C vectype -[visit_exp C] -[visit_id C] -[visit_exp vectype] -[visit_id vectype] -[visit_exp vectype] -[visit_id vectype] not free -[check_dims] C heaptype -[visit_exp C] -[visit_id C] -[visit_exp heaptype] -[visit_id heaptype] -[visit_exp heaptype] -[visit_id heaptype] not free -[check_dims] C heaptype' heaptype_1 heaptype_2 -[visit_exp C] -[visit_id C] -[visit_exp heaptype_1] -[visit_id heaptype_1] -[visit_exp heaptype_2] -[visit_id heaptype_2] -[visit_exp (C, heaptype')] -[visit_exp C] -[visit_id C] not free -[visit_exp heaptype'] -[visit_id heaptype'] -[visit_exp (C, heaptype_1, heaptype')] -[visit_exp C] -[visit_id C] not free -[visit_exp heaptype_1] -[visit_id heaptype_1] not free -[visit_exp heaptype'] -[visit_id heaptype'] not free -[visit_exp (C, heaptype', heaptype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp heaptype'] -[visit_id heaptype'] not free -[visit_exp heaptype_2] -[visit_id heaptype_2] not free -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp `EQ`_heaptype] -[visit_exp ()] -[visit_exp `ANY`_heaptype] -[visit_exp ()] -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp `I31`_heaptype] -[visit_exp ()] -[visit_exp `EQ`_heaptype] -[visit_exp ()] -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp `STRUCT`_heaptype] -[visit_exp ()] -[visit_exp `EQ`_heaptype] -[visit_exp ()] -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY`_heaptype] -[visit_exp ()] -[visit_exp `EQ`_heaptype] -[visit_exp ()] -[check_dims] C deftype fieldtype -[visit_exp C] -[visit_id C] -[visit_exp (deftype : deftype <: heaptype)] -[visit_exp deftype] -[visit_id deftype] -[visit_exp `STRUCT`_heaptype] -[visit_exp ()] -[visit_exp (deftype, `STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`})))] -[visit_exp deftype] -[visit_id deftype] not free -[visit_exp `STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))] -[visit_exp (`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))] -[visit_exp `%`_list(fieldtype*{fieldtype <- `fieldtype*`})] -[visit_exp (fieldtype*{fieldtype <- `fieldtype*`})] -[visit_exp fieldtype*{fieldtype <- `fieldtype*`}] -[scope_enter fieldtype] -[visit_exp fieldtype] -[visit_id fieldtype] not free -[visit_id fieldtype] not free -[scope_exit fieldtype] -[visit_exp `fieldtype*`] -[visit_id fieldtype*] no dims -[visit_id fieldtype*] -[check_dims] C deftype fieldtype -[visit_exp C] -[visit_id C] -[visit_exp (deftype : deftype <: heaptype)] -[visit_exp deftype] -[visit_id deftype] -[visit_exp `ARRAY`_heaptype] -[visit_exp ()] -[visit_exp (deftype, `ARRAY`_comptype(fieldtype))] -[visit_exp deftype] -[visit_id deftype] not free -[visit_exp `ARRAY`_comptype(fieldtype)] -[visit_exp (fieldtype)] -[visit_exp fieldtype] -[visit_id fieldtype] -[check_dims] C deftype t_1 t_2 -[visit_exp C] -[visit_id C] -[visit_exp (deftype : deftype <: heaptype)] -[visit_exp deftype] -[visit_id deftype] -[visit_exp `FUNC`_heaptype] -[visit_exp ()] -[visit_exp (deftype, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp deftype] -[visit_id deftype] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[check_dims] C deftype_1 deftype_2 -[visit_exp C] -[visit_id C] -[visit_exp (deftype_1 : deftype <: heaptype)] -[visit_exp deftype_1] -[visit_id deftype_1] -[visit_exp (deftype_2 : deftype <: heaptype)] -[visit_exp deftype_2] -[visit_id deftype_2] -[visit_exp (C, deftype_1, deftype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp deftype_1] -[visit_id deftype_1] not free -[visit_exp deftype_2] -[visit_id deftype_2] not free -[check_dims] C heaptype typeidx -[visit_exp C] -[visit_id C] -[visit_exp `_IDX`_heaptype(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp heaptype] -[visit_id heaptype] -[visit_exp (C, (C.`TYPES`_context[typeidx!`%`_typeidx.0] : deftype <: heaptype), heaptype)] -[visit_exp C] -[visit_id C] not free -[visit_exp (C.`TYPES`_context[typeidx!`%`_typeidx.0] : deftype <: heaptype)] -[visit_exp C.`TYPES`_context[typeidx!`%`_typeidx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp typeidx!`%`_typeidx.0] -[visit_exp typeidx!`%`_typeidx] -[visit_exp typeidx] -[visit_id typeidx] not free -[visit_exp heaptype] -[visit_id heaptype] not free -[check_dims] C heaptype typeidx -[visit_exp C] -[visit_id C] -[visit_exp heaptype] -[visit_id heaptype] -[visit_exp `_IDX`_heaptype(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp (C, heaptype, (C.`TYPES`_context[typeidx!`%`_typeidx.0] : deftype <: heaptype))] -[visit_exp C] -[visit_id C] not free -[visit_exp heaptype] -[visit_id heaptype] not free -[visit_exp (C.`TYPES`_context[typeidx!`%`_typeidx.0] : deftype <: heaptype)] -[visit_exp C.`TYPES`_context[typeidx!`%`_typeidx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp typeidx!`%`_typeidx.0] -[visit_exp typeidx!`%`_typeidx] -[visit_exp typeidx] -[visit_id typeidx] not free -[check_dims] C ct final i j typeuse -[visit_exp C] -[visit_id C] -[visit_exp `REC`_heaptype(i)] -[visit_exp (i)] -[visit_exp i] -[visit_id i] -[visit_exp (typeuse*{typeuse <- `typeuse*`}[j] : typeuse <: heaptype)] -[visit_exp typeuse*{typeuse <- `typeuse*`}[j]] -[visit_exp typeuse*{typeuse <- `typeuse*`}] -[scope_enter typeuse] -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_id typeuse] not free -[scope_exit typeuse] -[visit_exp `typeuse*`] -[visit_id typeuse*] no dims -[visit_id typeuse*] -[visit_exp j] -[visit_id j] -[visit_exp (C.`RECS`_context[i] = `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct))] -[visit_exp C.`RECS`_context[i]] -[visit_exp C.`RECS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp i] -[visit_id i] not free -[visit_exp `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] -[visit_exp (final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] -[visit_exp final?{final <- `final?`}] -[scope_enter final] -[visit_exp final] -[visit_id final] not free -[visit_id final] not free -[scope_exit final] -[visit_exp `final?`] -[visit_id final?] no dims -[visit_id final?] -[visit_exp typeuse*{typeuse <- `typeuse*`}] -[scope_enter typeuse] -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_id typeuse] not free -[scope_exit typeuse] -[visit_exp `typeuse*`] -[visit_id typeuse*] not free -[visit_id typeuse*] no dims -[visit_exp ct] -[visit_id ct] -[check_dims] C heaptype -[visit_exp C] -[visit_id C] -[visit_exp `NONE`_heaptype] -[visit_exp ()] -[visit_exp heaptype] -[visit_id heaptype] -[visit_exp (C, heaptype, `ANY`_heaptype)] -[visit_exp C] -[visit_id C] not free -[visit_exp heaptype] -[visit_id heaptype] not free -[visit_exp `ANY`_heaptype] -[visit_exp ()] -[check_dims] C heaptype -[visit_exp C] -[visit_id C] -[visit_exp `NOFUNC`_heaptype] -[visit_exp ()] -[visit_exp heaptype] -[visit_id heaptype] -[visit_exp (C, heaptype, `FUNC`_heaptype)] -[visit_exp C] -[visit_id C] not free -[visit_exp heaptype] -[visit_id heaptype] not free -[visit_exp `FUNC`_heaptype] -[visit_exp ()] -[check_dims] C heaptype -[visit_exp C] -[visit_id C] -[visit_exp `NOEXN`_heaptype] -[visit_exp ()] -[visit_exp heaptype] -[visit_id heaptype] -[visit_exp (C, heaptype, `EXN`_heaptype)] -[visit_exp C] -[visit_id C] not free -[visit_exp heaptype] -[visit_id heaptype] not free -[visit_exp `EXN`_heaptype] -[visit_exp ()] -[check_dims] C heaptype -[visit_exp C] -[visit_id C] -[visit_exp `NOEXTERN`_heaptype] -[visit_exp ()] -[visit_exp heaptype] -[visit_id heaptype] -[visit_exp (C, heaptype, `EXTERN`_heaptype)] -[visit_exp C] -[visit_id C] not free -[visit_exp heaptype] -[visit_id heaptype] not free -[visit_exp `EXTERN`_heaptype] -[visit_exp ()] -[check_dims] C heaptype -[visit_exp C] -[visit_id C] -[visit_exp `BOT`_heaptype] -[visit_exp ()] -[visit_exp heaptype] -[visit_id heaptype] -[check_dims] C ht_1 ht_2 -[visit_exp C] -[visit_id C] -[visit_exp `REF`_reftype(?(), ht_1)] -[visit_exp (?(), ht_1)] -[visit_exp ?()] -[visit_exp ht_1] -[visit_id ht_1] -[visit_exp `REF`_reftype(?(), ht_2)] -[visit_exp (?(), ht_2)] -[visit_exp ?()] -[visit_exp ht_2] -[visit_id ht_2] -[visit_exp (C, ht_1, ht_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp ht_1] -[visit_id ht_1] not free -[visit_exp ht_2] -[visit_id ht_2] not free -[check_dims] C ht_1 ht_2 -[visit_exp C] -[visit_id C] -[visit_exp `REF`_reftype(`NULL`_null?{}, ht_1)] -[visit_exp (`NULL`_null?{}, ht_1)] -[visit_exp `NULL`_null?{}] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht_1] -[visit_id ht_1] -[visit_exp `REF`_reftype(?(`NULL`_null), ht_2)] -[visit_exp (?(`NULL`_null), ht_2)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht_2] -[visit_id ht_2] -[visit_exp (C, ht_1, ht_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp ht_1] -[visit_id ht_1] not free -[visit_exp ht_2] -[visit_id ht_2] not free -[check_dims] C numtype_1 numtype_2 -[visit_exp C] -[visit_id C] -[visit_exp (numtype_1 : numtype <: valtype)] -[visit_exp numtype_1] -[visit_id numtype_1] -[visit_exp (numtype_2 : numtype <: valtype)] -[visit_exp numtype_2] -[visit_id numtype_2] -[visit_exp (C, numtype_1, numtype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp numtype_1] -[visit_id numtype_1] not free -[visit_exp numtype_2] -[visit_id numtype_2] not free -[check_dims] C vectype_1 vectype_2 -[visit_exp C] -[visit_id C] -[visit_exp (vectype_1 : vectype <: valtype)] -[visit_exp vectype_1] -[visit_id vectype_1] -[visit_exp (vectype_2 : vectype <: valtype)] -[visit_exp vectype_2] -[visit_id vectype_2] -[visit_exp (C, vectype_1, vectype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp vectype_1] -[visit_id vectype_1] not free -[visit_exp vectype_2] -[visit_id vectype_2] not free -[check_dims] C reftype_1 reftype_2 -[visit_exp C] -[visit_id C] -[visit_exp (reftype_1 : reftype <: valtype)] -[visit_exp reftype_1] -[visit_id reftype_1] -[visit_exp (reftype_2 : reftype <: valtype)] -[visit_exp reftype_2] -[visit_id reftype_2] -[visit_exp (C, reftype_1, reftype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp reftype_1] -[visit_id reftype_1] not free -[visit_exp reftype_2] -[visit_id reftype_2] not free -[check_dims] C valtype -[visit_exp C] -[visit_id C] -[visit_exp `BOT`_valtype] -[visit_exp ()] -[visit_exp valtype] -[visit_id valtype] -[check_dims] -[check_dims] -[check_dims] C t_1 t_2 -[visit_exp C] -[visit_id C] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[scope_enter t_1] -[scope_enter t_2] -[visit_exp (C, t_1, t_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp t_1] -[visit_id t_1] not free -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_1] not free -[visit_id t_2] not free -[scope_exit t_2] -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C t t_11 t_12 t_21 t_22 x x_1 x_2 -[visit_exp C] -[visit_id C] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_11*{t_11 <- `t_11*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_12*{t_12 <- `t_12*`}))] -[visit_exp (`%`_resulttype(t_11*{t_11 <- `t_11*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_12*{t_12 <- `t_12*`}))] -[visit_exp `%`_resulttype(t_11*{t_11 <- `t_11*`})] -[visit_exp (t_11*{t_11 <- `t_11*`})] -[visit_exp t_11*{t_11 <- `t_11*`}] -[scope_enter t_11] -[visit_exp t_11] -[visit_id t_11] not free -[visit_id t_11] not free -[scope_exit t_11] -[visit_exp `t_11*`] -[visit_id t_11*] no dims -[visit_id t_11*] -[visit_exp x_1*{x_1 <- `x_1*`}] -[scope_enter x_1] -[visit_exp x_1] -[visit_id x_1] not free -[visit_id x_1] not free -[scope_exit x_1] -[visit_exp `x_1*`] -[visit_id x_1*] no dims -[visit_id x_1*] -[visit_exp `%`_resulttype(t_12*{t_12 <- `t_12*`})] -[visit_exp (t_12*{t_12 <- `t_12*`})] -[visit_exp t_12*{t_12 <- `t_12*`}] -[scope_enter t_12] -[visit_exp t_12] -[visit_id t_12] not free -[visit_id t_12] not free -[scope_exit t_12] -[visit_exp `t_12*`] -[visit_id t_12*] no dims -[visit_id t_12*] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_21*{t_21 <- `t_21*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_22*{t_22 <- `t_22*`}))] -[visit_exp (`%`_resulttype(t_21*{t_21 <- `t_21*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_22*{t_22 <- `t_22*`}))] -[visit_exp `%`_resulttype(t_21*{t_21 <- `t_21*`})] -[visit_exp (t_21*{t_21 <- `t_21*`})] -[visit_exp t_21*{t_21 <- `t_21*`}] -[scope_enter t_21] -[visit_exp t_21] -[visit_id t_21] not free -[visit_id t_21] not free -[scope_exit t_21] -[visit_exp `t_21*`] -[visit_id t_21*] no dims -[visit_id t_21*] -[visit_exp x_2*{x_2 <- `x_2*`}] -[scope_enter x_2] -[visit_exp x_2] -[visit_id x_2] not free -[visit_id x_2] not free -[scope_exit x_2] -[visit_exp `x_2*`] -[visit_id x_2*] no dims -[visit_id x_2*] -[visit_exp `%`_resulttype(t_22*{t_22 <- `t_22*`})] -[visit_exp (t_22*{t_22 <- `t_22*`})] -[visit_exp t_22*{t_22 <- `t_22*`}] -[scope_enter t_22] -[visit_exp t_22] -[visit_id t_22] not free -[visit_id t_22] not free -[scope_exit t_22] -[visit_exp `t_22*`] -[visit_id t_22*] no dims -[visit_id t_22*] -[visit_exp (C, `%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_11*{t_11 <- `t_11*`}))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t_21*{t_21 <- `t_21*`})] -[visit_exp (t_21*{t_21 <- `t_21*`})] -[visit_exp t_21*{t_21 <- `t_21*`}] -[scope_enter t_21] -[visit_exp t_21] -[visit_id t_21] not free -[visit_id t_21] not free -[scope_exit t_21] -[visit_exp `t_21*`] -[visit_id t_21*] not free -[visit_id t_21*] no dims -[visit_exp `%`_resulttype(t_11*{t_11 <- `t_11*`})] -[visit_exp (t_11*{t_11 <- `t_11*`})] -[visit_exp t_11*{t_11 <- `t_11*`}] -[scope_enter t_11] -[visit_exp t_11] -[visit_id t_11] not free -[visit_id t_11] not free -[scope_exit t_11] -[visit_exp `t_11*`] -[visit_id t_11*] not free -[visit_id t_11*] no dims -[visit_exp (C, `%`_resulttype(t_12*{t_12 <- `t_12*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`}))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t_12*{t_12 <- `t_12*`})] -[visit_exp (t_12*{t_12 <- `t_12*`})] -[visit_exp t_12*{t_12 <- `t_12*`}] -[scope_enter t_12] -[visit_exp t_12] -[visit_id t_12] not free -[visit_id t_12] not free -[scope_exit t_12] -[visit_exp `t_12*`] -[visit_id t_12*] not free -[visit_id t_12*] no dims -[visit_exp `%`_resulttype(t_22*{t_22 <- `t_22*`})] -[visit_exp (t_22*{t_22 <- `t_22*`})] -[visit_exp t_22*{t_22 <- `t_22*`}] -[scope_enter t_22] -[visit_exp t_22] -[visit_id t_22] not free -[visit_id t_22] not free -[scope_exit t_22] -[visit_exp `t_22*`] -[visit_id t_22*] not free -[visit_id t_22*] no dims -[visit_exp (x*{x <- `x*`} = $setminus_(syntax localidx, x_2*{x_2 <- `x_2*`}, x_1*{x_1 <- `x_1*`}))] -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp $setminus_(syntax localidx, x_2*{x_2 <- `x_2*`}, x_1*{x_1 <- `x_1*`})] -[visit_exp x_2*{x_2 <- `x_2*`}] -[scope_enter x_2] -[visit_exp x_2] -[visit_id x_2] not free -[visit_id x_2] not free -[scope_exit x_2] -[visit_exp `x_2*`] -[visit_id x_2*] not free -[visit_id x_2*] no dims -[visit_exp x_1*{x_1 <- `x_1*`}] -[scope_enter x_1] -[visit_exp x_1] -[visit_id x_1] not free -[visit_id x_1] not free -[scope_exit x_1] -[visit_exp `x_1*`] -[visit_id x_1*] not free -[visit_id x_1*] no dims -[scope_enter t] -[scope_enter x] -[visit_exp (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(`SET`_init, t))] -[visit_exp C.`LOCALS`_context[x!`%`_idx.0]] -[visit_exp C.`LOCALS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%`_localtype(`SET`_init, t)] -[visit_exp (`SET`_init, t)] -[visit_exp `SET`_init] -[visit_exp ()] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[visit_id x] not free -[scope_exit x] -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[check_dims] -[check_dims] -[check_dims] -[check_dims] C packtype -[visit_exp C] -[visit_id C] -[visit_exp packtype] -[visit_id packtype] -[visit_exp packtype] -[visit_id packtype] not free -[check_dims] C valtype_1 valtype_2 -[visit_exp C] -[visit_id C] -[visit_exp (valtype_1 : valtype <: storagetype)] -[visit_exp valtype_1] -[visit_id valtype_1] -[visit_exp (valtype_2 : valtype <: storagetype)] -[visit_exp valtype_2] -[visit_id valtype_2] -[visit_exp (C, valtype_1, valtype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp valtype_1] -[visit_id valtype_1] not free -[visit_exp valtype_2] -[visit_id valtype_2] not free -[check_dims] C packtype_1 packtype_2 -[visit_exp C] -[visit_id C] -[visit_exp (packtype_1 : packtype <: storagetype)] -[visit_exp packtype_1] -[visit_id packtype_1] -[visit_exp (packtype_2 : packtype <: storagetype)] -[visit_exp packtype_2] -[visit_id packtype_2] -[visit_exp (C, packtype_1, packtype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp packtype_1] -[visit_id packtype_1] not free -[visit_exp packtype_2] -[visit_id packtype_2] not free -[check_dims] C zt_1 zt_2 -[visit_exp C] -[visit_id C] -[visit_exp `%%`_fieldtype(?(), zt_1)] -[visit_exp (?(), zt_1)] -[visit_exp ?()] -[visit_exp zt_1] -[visit_id zt_1] -[visit_exp `%%`_fieldtype(?(), zt_2)] -[visit_exp (?(), zt_2)] -[visit_exp ?()] -[visit_exp zt_2] -[visit_id zt_2] -[visit_exp (C, zt_1, zt_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp zt_1] -[visit_id zt_1] not free -[visit_exp zt_2] -[visit_id zt_2] not free -[check_dims] C zt_1 zt_2 -[visit_exp C] -[visit_id C] -[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt_1)] -[visit_exp (?(`MUT`_mut), zt_1)] -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp zt_1] -[visit_id zt_1] -[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt_2)] -[visit_exp (?(`MUT`_mut), zt_2)] -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp zt_2] -[visit_id zt_2] -[visit_exp (C, zt_1, zt_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp zt_1] -[visit_id zt_1] not free -[visit_exp zt_2] -[visit_id zt_2] not free -[visit_exp (C, zt_2, zt_1)] -[visit_exp C] -[visit_id C] not free -[visit_exp zt_2] -[visit_id zt_2] not free -[visit_exp zt_1] -[visit_id zt_1] not free -[check_dims] C ft'_1 ft_1 ft_2 -[visit_exp C] -[visit_id C] -[visit_exp `STRUCT`_comptype(`%`_list(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`}))] -[visit_exp (`%`_list(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`}))] -[visit_exp `%`_list(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`})] -[visit_exp (ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`})] -[visit_exp ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`}] -[visit_exp ft_1*{ft_1 <- `ft_1*`}] -[scope_enter ft_1] -[visit_exp ft_1] -[visit_id ft_1] not free -[visit_id ft_1] not free -[scope_exit ft_1] -[visit_exp `ft_1*`] -[visit_id ft_1*] no dims -[visit_id ft_1*] -[visit_exp ft'_1*{ft'_1 <- `ft'_1*`}] -[scope_enter ft'_1] -[visit_exp ft'_1] -[visit_id ft'_1] not free -[visit_id ft'_1] not free -[scope_exit ft'_1] -[visit_exp `ft'_1*`] -[visit_id ft'_1*] no dims -[visit_id ft'_1*] -[visit_exp `STRUCT`_comptype(`%`_list(ft_2*{ft_2 <- `ft_2*`}))] -[visit_exp (`%`_list(ft_2*{ft_2 <- `ft_2*`}))] -[visit_exp `%`_list(ft_2*{ft_2 <- `ft_2*`})] -[visit_exp (ft_2*{ft_2 <- `ft_2*`})] -[visit_exp ft_2*{ft_2 <- `ft_2*`}] -[scope_enter ft_2] -[visit_exp ft_2] -[visit_id ft_2] not free -[visit_id ft_2] not free -[scope_exit ft_2] -[visit_exp `ft_2*`] -[visit_id ft_2*] no dims -[visit_id ft_2*] -[scope_enter ft_1] -[scope_enter ft_2] -[visit_exp (C, ft_1, ft_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp ft_1] -[visit_id ft_1] not free -[visit_exp ft_2] -[visit_id ft_2] not free -[visit_id ft_1] not free -[visit_id ft_2] not free -[scope_exit ft_2] -[scope_exit ft_1] -[visit_exp `ft_1*`] -[visit_id ft_1*] not free -[visit_id ft_1*] no dims -[visit_exp `ft_2*`] -[visit_id ft_2*] not free -[visit_id ft_2*] no dims -[check_dims] C ft_1 ft_2 -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY`_comptype(ft_1)] -[visit_exp (ft_1)] -[visit_exp ft_1] -[visit_id ft_1] -[visit_exp `ARRAY`_comptype(ft_2)] -[visit_exp (ft_2)] -[visit_exp ft_2] -[visit_id ft_2] -[visit_exp (C, ft_1, ft_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp ft_1] -[visit_id ft_1] not free -[visit_exp ft_2] -[visit_id ft_2] not free -[check_dims] C t_11 t_12 t_21 t_22 -[visit_exp C] -[visit_id C] -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_11*{t_11 <- `t_11*`}), `%`_resulttype(t_12*{t_12 <- `t_12*`}))] -[visit_exp (`%`_resulttype(t_11*{t_11 <- `t_11*`}), `%`_resulttype(t_12*{t_12 <- `t_12*`}))] -[visit_exp `%`_resulttype(t_11*{t_11 <- `t_11*`})] -[visit_exp (t_11*{t_11 <- `t_11*`})] -[visit_exp t_11*{t_11 <- `t_11*`}] -[scope_enter t_11] -[visit_exp t_11] -[visit_id t_11] not free -[visit_id t_11] not free -[scope_exit t_11] -[visit_exp `t_11*`] -[visit_id t_11*] no dims -[visit_id t_11*] -[visit_exp `%`_resulttype(t_12*{t_12 <- `t_12*`})] -[visit_exp (t_12*{t_12 <- `t_12*`})] -[visit_exp t_12*{t_12 <- `t_12*`}] -[scope_enter t_12] -[visit_exp t_12] -[visit_id t_12] not free -[visit_id t_12] not free -[scope_exit t_12] -[visit_exp `t_12*`] -[visit_id t_12*] no dims -[visit_id t_12*] -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`}))] -[visit_exp (`%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`}))] -[visit_exp `%`_resulttype(t_21*{t_21 <- `t_21*`})] -[visit_exp (t_21*{t_21 <- `t_21*`})] -[visit_exp t_21*{t_21 <- `t_21*`}] -[scope_enter t_21] -[visit_exp t_21] -[visit_id t_21] not free -[visit_id t_21] not free -[scope_exit t_21] -[visit_exp `t_21*`] -[visit_id t_21*] no dims -[visit_id t_21*] -[visit_exp `%`_resulttype(t_22*{t_22 <- `t_22*`})] -[visit_exp (t_22*{t_22 <- `t_22*`})] -[visit_exp t_22*{t_22 <- `t_22*`}] -[scope_enter t_22] -[visit_exp t_22] -[visit_id t_22] not free -[visit_id t_22] not free -[scope_exit t_22] -[visit_exp `t_22*`] -[visit_id t_22*] no dims -[visit_id t_22*] -[visit_exp (C, `%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_11*{t_11 <- `t_11*`}))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t_21*{t_21 <- `t_21*`})] -[visit_exp (t_21*{t_21 <- `t_21*`})] -[visit_exp t_21*{t_21 <- `t_21*`}] -[scope_enter t_21] -[visit_exp t_21] -[visit_id t_21] not free -[visit_id t_21] not free -[scope_exit t_21] -[visit_exp `t_21*`] -[visit_id t_21*] not free -[visit_id t_21*] no dims -[visit_exp `%`_resulttype(t_11*{t_11 <- `t_11*`})] -[visit_exp (t_11*{t_11 <- `t_11*`})] -[visit_exp t_11*{t_11 <- `t_11*`}] -[scope_enter t_11] -[visit_exp t_11] -[visit_id t_11] not free -[visit_id t_11] not free -[scope_exit t_11] -[visit_exp `t_11*`] -[visit_id t_11*] not free -[visit_id t_11*] no dims -[visit_exp (C, `%`_resulttype(t_12*{t_12 <- `t_12*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`}))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t_12*{t_12 <- `t_12*`})] -[visit_exp (t_12*{t_12 <- `t_12*`})] -[visit_exp t_12*{t_12 <- `t_12*`}] -[scope_enter t_12] -[visit_exp t_12] -[visit_id t_12] not free -[visit_id t_12] not free -[scope_exit t_12] -[visit_exp `t_12*`] -[visit_id t_12*] not free -[visit_id t_12*] no dims -[visit_exp `%`_resulttype(t_22*{t_22 <- `t_22*`})] -[visit_exp (t_22*{t_22 <- `t_22*`})] -[visit_exp t_22*{t_22 <- `t_22*`}] -[scope_enter t_22] -[visit_exp t_22] -[visit_id t_22] not free -[visit_id t_22] not free -[scope_exit t_22] -[visit_exp `t_22*`] -[visit_id t_22*] not free -[visit_id t_22*] no dims -[check_dims] C deftype_1 deftype_2 -[visit_exp C] -[visit_id C] -[visit_exp deftype_1] -[visit_id deftype_1] -[visit_exp deftype_2] -[visit_id deftype_2] -[visit_exp ($clos_deftype(C, deftype_1) = $clos_deftype(C, deftype_2))] -[visit_exp $clos_deftype(C, deftype_1)] -[visit_exp C] -[visit_id C] not free -[visit_exp deftype_1] -[visit_id deftype_1] not free -[visit_exp $clos_deftype(C, deftype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp deftype_2] -[visit_id deftype_2] not free -[check_dims] C ct deftype_1 deftype_2 final i typeuse -[visit_exp C] -[visit_id C] -[visit_exp deftype_1] -[visit_id deftype_1] -[visit_exp deftype_2] -[visit_id deftype_2] -[visit_exp ($unrolldt(deftype_1) = `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct))] -[visit_exp $unrolldt(deftype_1)] -[visit_exp deftype_1] -[visit_id deftype_1] not free -[visit_exp `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] -[visit_exp (final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)] -[visit_exp final?{final <- `final?`}] -[scope_enter final] -[visit_exp final] -[visit_id final] not free -[visit_id final] not free -[scope_exit final] -[visit_exp `final?`] -[visit_id final?] no dims -[visit_id final?] -[visit_exp typeuse*{typeuse <- `typeuse*`}] -[scope_enter typeuse] -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_id typeuse] not free -[scope_exit typeuse] -[visit_exp `typeuse*`] -[visit_id typeuse*] no dims -[visit_id typeuse*] -[visit_exp ct] -[visit_id ct] -[visit_exp (C, (typeuse*{typeuse <- `typeuse*`}[i] : typeuse <: heaptype), (deftype_2 : deftype <: heaptype))] -[visit_exp C] -[visit_id C] not free -[visit_exp (typeuse*{typeuse <- `typeuse*`}[i] : typeuse <: heaptype)] -[visit_exp typeuse*{typeuse <- `typeuse*`}[i]] -[visit_exp typeuse*{typeuse <- `typeuse*`}] -[scope_enter typeuse] -[visit_exp typeuse] -[visit_id typeuse] not free -[visit_id typeuse] not free -[scope_exit typeuse] -[visit_exp `typeuse*`] -[visit_id typeuse*] not free -[visit_id typeuse*] no dims -[visit_exp i] -[visit_id i] -[visit_exp (deftype_2 : deftype <: heaptype)] -[visit_exp deftype_2] -[visit_id deftype_2] not free -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] C m_1 m_2 n_1 n_2 -[visit_exp C] -[visit_id C] -[visit_exp `[%..%]`_limits(`%`_u64(n_1), ?(`%`_u64(m_1)))] -[visit_exp (`%`_u64(n_1), ?(`%`_u64(m_1)))] -[visit_exp `%`_u64(n_1)] -[visit_exp (n_1)] -[visit_exp n_1] -[visit_id n_1] -[visit_exp ?(`%`_u64(m_1))] -[visit_exp `%`_u64(m_1)] -[visit_exp (m_1)] -[visit_exp m_1] -[visit_id m_1] -[visit_exp `[%..%]`_limits(`%`_u64(n_2), `%`_u64(m_2)?{m_2 <- `m_2?`})] -[visit_exp (`%`_u64(n_2), `%`_u64(m_2)?{m_2 <- `m_2?`})] -[visit_exp `%`_u64(n_2)] -[visit_exp (n_2)] -[visit_exp n_2] -[visit_id n_2] -[visit_exp `%`_u64(m_2)?{m_2 <- `m_2?`}] -[scope_enter m_2] -[visit_exp `%`_u64(m_2)] -[visit_exp (m_2)] -[visit_exp m_2] -[visit_id m_2] not free -[visit_id m_2] not free -[scope_exit m_2] -[visit_exp `m_2?`] -[visit_id m_2?] no dims -[visit_id m_2?] -[visit_exp (n_1 >= n_2)] -[visit_exp n_1] -[visit_id n_1] not free -[visit_exp n_2] -[visit_id n_2] not free -[scope_enter m_2] -[visit_exp (m_1 <= m_2)] -[visit_exp m_1] -[visit_id m_1] not free -[visit_exp m_2] -[visit_id m_2] not free -[visit_id m_2] not free -[scope_exit m_2] -[visit_exp `m_2?`] -[visit_id m_2?] not free -[visit_id m_2?] no dims -[check_dims] C n_1 n_2 -[visit_exp C] -[visit_id C] -[visit_exp `[%..%]`_limits(`%`_u64(n_1), ?())] -[visit_exp (`%`_u64(n_1), ?())] -[visit_exp `%`_u64(n_1)] -[visit_exp (n_1)] -[visit_exp n_1] -[visit_id n_1] -[visit_exp ?()] -[visit_exp `[%..%]`_limits(`%`_u64(n_2), ?())] -[visit_exp (`%`_u64(n_2), ?())] -[visit_exp `%`_u64(n_2)] -[visit_exp (n_2)] -[visit_exp n_2] -[visit_id n_2] -[visit_exp ?()] -[visit_exp (n_1 >= n_2)] -[visit_exp n_1] -[visit_id n_1] not free -[visit_exp n_2] -[visit_id n_2] not free -[check_dims] C deftype_1 deftype_2 -[visit_exp C] -[visit_id C] -[visit_exp (deftype_1 : deftype <: typeuse)] -[visit_exp deftype_1] -[visit_id deftype_1] -[visit_exp (deftype_2 : deftype <: typeuse)] -[visit_exp deftype_2] -[visit_id deftype_2] -[visit_exp (C, deftype_1, deftype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp deftype_1] -[visit_id deftype_1] not free -[visit_exp deftype_2] -[visit_id deftype_2] not free -[visit_exp (C, deftype_2, deftype_1)] -[visit_exp C] -[visit_id C] not free -[visit_exp deftype_2] -[visit_id deftype_2] not free -[visit_exp deftype_1] -[visit_id deftype_1] not free -[check_dims] C valtype_1 valtype_2 -[visit_exp C] -[visit_id C] -[visit_exp `%%`_globaltype(?(), valtype_1)] -[visit_exp (?(), valtype_1)] -[visit_exp ?()] -[visit_exp valtype_1] -[visit_id valtype_1] -[visit_exp `%%`_globaltype(?(), valtype_2)] -[visit_exp (?(), valtype_2)] -[visit_exp ?()] -[visit_exp valtype_2] -[visit_id valtype_2] -[visit_exp (C, valtype_1, valtype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp valtype_1] -[visit_id valtype_1] not free -[visit_exp valtype_2] -[visit_id valtype_2] not free -[check_dims] C valtype_1 valtype_2 -[visit_exp C] -[visit_id C] -[visit_exp `%%`_globaltype(?(`MUT`_mut), valtype_1)] -[visit_exp (?(`MUT`_mut), valtype_1)] -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp valtype_1] -[visit_id valtype_1] -[visit_exp `%%`_globaltype(?(`MUT`_mut), valtype_2)] -[visit_exp (?(`MUT`_mut), valtype_2)] -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp valtype_2] -[visit_id valtype_2] -[visit_exp (C, valtype_1, valtype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp valtype_1] -[visit_id valtype_1] not free -[visit_exp valtype_2] -[visit_id valtype_2] not free -[visit_exp (C, valtype_2, valtype_1)] -[visit_exp C] -[visit_id C] not free -[visit_exp valtype_2] -[visit_id valtype_2] not free -[visit_exp valtype_1] -[visit_id valtype_1] not free -[check_dims] C addrtype limits_1 limits_2 -[visit_exp C] -[visit_id C] -[visit_exp `%%PAGE`_memtype(addrtype, limits_1)] -[visit_exp (addrtype, limits_1)] -[visit_exp addrtype] -[visit_id addrtype] -[visit_exp limits_1] -[visit_id limits_1] -[visit_exp `%%PAGE`_memtype(addrtype, limits_2)] -[visit_exp (addrtype, limits_2)] -[visit_exp addrtype] -[visit_id addrtype] not free -[visit_exp limits_2] -[visit_id limits_2] -[visit_exp (C, limits_1, limits_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp limits_1] -[visit_id limits_1] not free -[visit_exp limits_2] -[visit_id limits_2] not free -[check_dims] C addrtype limits_1 limits_2 reftype_1 reftype_2 -[visit_exp C] -[visit_id C] -[visit_exp `%%%`_tabletype(addrtype, limits_1, reftype_1)] -[visit_exp (addrtype, limits_1, reftype_1)] -[visit_exp addrtype] -[visit_id addrtype] -[visit_exp limits_1] -[visit_id limits_1] -[visit_exp reftype_1] -[visit_id reftype_1] -[visit_exp `%%%`_tabletype(addrtype, limits_2, reftype_2)] -[visit_exp (addrtype, limits_2, reftype_2)] -[visit_exp addrtype] -[visit_id addrtype] not free -[visit_exp limits_2] -[visit_id limits_2] -[visit_exp reftype_2] -[visit_id reftype_2] -[visit_exp (C, limits_1, limits_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp limits_1] -[visit_id limits_1] not free -[visit_exp limits_2] -[visit_id limits_2] not free -[visit_exp (C, reftype_1, reftype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp reftype_1] -[visit_id reftype_1] not free -[visit_exp reftype_2] -[visit_id reftype_2] not free -[visit_exp (C, reftype_2, reftype_1)] -[visit_exp C] -[visit_id C] not free -[visit_exp reftype_2] -[visit_id reftype_2] not free -[visit_exp reftype_1] -[visit_id reftype_1] not free -[check_dims] C tagtype_1 tagtype_2 -[visit_exp C] -[visit_id C] -[visit_exp `TAG`_externtype(tagtype_1)] -[visit_exp (tagtype_1)] -[visit_exp tagtype_1] -[visit_id tagtype_1] -[visit_exp `TAG`_externtype(tagtype_2)] -[visit_exp (tagtype_2)] -[visit_exp tagtype_2] -[visit_id tagtype_2] -[visit_exp (C, tagtype_1, tagtype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp tagtype_1] -[visit_id tagtype_1] not free -[visit_exp tagtype_2] -[visit_id tagtype_2] not free -[check_dims] C globaltype_1 globaltype_2 -[visit_exp C] -[visit_id C] -[visit_exp `GLOBAL`_externtype(globaltype_1)] -[visit_exp (globaltype_1)] -[visit_exp globaltype_1] -[visit_id globaltype_1] -[visit_exp `GLOBAL`_externtype(globaltype_2)] -[visit_exp (globaltype_2)] -[visit_exp globaltype_2] -[visit_id globaltype_2] -[visit_exp (C, globaltype_1, globaltype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp globaltype_1] -[visit_id globaltype_1] not free -[visit_exp globaltype_2] -[visit_id globaltype_2] not free -[check_dims] C memtype_1 memtype_2 -[visit_exp C] -[visit_id C] -[visit_exp `MEM`_externtype(memtype_1)] -[visit_exp (memtype_1)] -[visit_exp memtype_1] -[visit_id memtype_1] -[visit_exp `MEM`_externtype(memtype_2)] -[visit_exp (memtype_2)] -[visit_exp memtype_2] -[visit_id memtype_2] -[visit_exp (C, memtype_1, memtype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp memtype_1] -[visit_id memtype_1] not free -[visit_exp memtype_2] -[visit_id memtype_2] not free -[check_dims] C tabletype_1 tabletype_2 -[visit_exp C] -[visit_id C] -[visit_exp `TABLE`_externtype(tabletype_1)] -[visit_exp (tabletype_1)] -[visit_exp tabletype_1] -[visit_id tabletype_1] -[visit_exp `TABLE`_externtype(tabletype_2)] -[visit_exp (tabletype_2)] -[visit_exp tabletype_2] -[visit_id tabletype_2] -[visit_exp (C, tabletype_1, tabletype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp tabletype_1] -[visit_id tabletype_1] not free -[visit_exp tabletype_2] -[visit_id tabletype_2] not free -[check_dims] C deftype_1 deftype_2 -[visit_exp C] -[visit_id C] -[visit_exp `FUNC`_externtype((deftype_1 : deftype <: typeuse))] -[visit_exp ((deftype_1 : deftype <: typeuse))] -[visit_exp (deftype_1 : deftype <: typeuse)] -[visit_exp deftype_1] -[visit_id deftype_1] -[visit_exp `FUNC`_externtype((deftype_2 : deftype <: typeuse))] -[visit_exp ((deftype_2 : deftype <: typeuse))] -[visit_exp (deftype_2 : deftype <: typeuse)] -[visit_exp deftype_2] -[visit_id deftype_2] -[visit_exp (C, deftype_1, deftype_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp deftype_1] -[visit_id deftype_1] not free -[visit_exp deftype_2] -[visit_id deftype_2] not free -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp `NOP`_instr] -[visit_exp ()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[check_dims] C t_1 t_2 -[visit_exp C] -[visit_id C] -[visit_exp `UNREACHABLE`_instr] -[visit_exp ()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C t -[visit_exp C] -[visit_id C] -[visit_exp `DROP`_instr] -[visit_exp ()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([t]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([t]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([t])] -[visit_exp ([t])] -[visit_exp [t]] -[visit_exp t] -[visit_id t] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C, t)] -[visit_exp C] -[visit_id C] not free -[visit_exp t] -[visit_id t] not free -[check_dims] C t -[visit_exp C] -[visit_id C] -[visit_exp `SELECT`_instr(?([t]))] -[visit_exp (?([t]))] -[visit_exp ?([t])] -[visit_exp [t]] -[visit_exp t] -[visit_id t] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([t t `I32`_valtype]), [], `%`_resulttype([t]))] -[visit_exp (`%`_resulttype([t t `I32`_valtype]), [], `%`_resulttype([t]))] -[visit_exp `%`_resulttype([t t `I32`_valtype])] -[visit_exp ([t t `I32`_valtype])] -[visit_exp [t t `I32`_valtype]] -[visit_exp t] -[visit_id t] not free -[visit_exp t] -[visit_id t] not free -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([t])] -[visit_exp ([t])] -[visit_exp [t]] -[visit_exp t] -[visit_id t] not free -[visit_exp (C, t)] -[visit_exp C] -[visit_id C] not free -[visit_exp t] -[visit_id t] not free -[check_dims] C numtype t t' vectype -[visit_exp C] -[visit_id C] -[visit_exp `SELECT`_instr(?())] -[visit_exp (?())] -[visit_exp ?()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([t t `I32`_valtype]), [], `%`_resulttype([t]))] -[visit_exp (`%`_resulttype([t t `I32`_valtype]), [], `%`_resulttype([t]))] -[visit_exp `%`_resulttype([t t `I32`_valtype])] -[visit_exp ([t t `I32`_valtype])] -[visit_exp [t t `I32`_valtype]] -[visit_exp t] -[visit_id t] -[visit_exp t] -[visit_id t] not free -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([t])] -[visit_exp ([t])] -[visit_exp [t]] -[visit_exp t] -[visit_id t] not free -[visit_exp (C, t)] -[visit_exp C] -[visit_id C] not free -[visit_exp t] -[visit_id t] not free -[visit_exp (C, t, t')] -[visit_exp C] -[visit_id C] not free -[visit_exp t] -[visit_id t] not free -[visit_exp t'] -[visit_id t'] -[visit_exp ((t' = (numtype : numtype <: valtype)) \/ (t' = (vectype : vectype <: valtype)))] -[visit_exp (t' = (numtype : numtype <: valtype))] -[visit_exp t'] -[visit_id t'] not free -[visit_exp (numtype : numtype <: valtype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp (t' = (vectype : vectype <: valtype))] -[visit_exp t'] -[visit_id t'] not free -[visit_exp (vectype : vectype <: valtype)] -[visit_exp vectype] -[visit_id vectype] -[check_dims] -[check_dims] C valtype -[visit_exp C] -[visit_id C] -[visit_exp `_RESULT`_blocktype(valtype?{valtype <- `valtype?`})] -[visit_exp (valtype?{valtype <- `valtype?`})] -[visit_exp valtype?{valtype <- `valtype?`}] -[scope_enter valtype] -[visit_exp valtype] -[visit_id valtype] not free -[visit_id valtype] not free -[scope_exit valtype] -[visit_exp `valtype?`] -[visit_id valtype?] no dims -[visit_id valtype?] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(valtype?{valtype <- `valtype?`})))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype(lift(valtype?{valtype <- `valtype?`})))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype(lift(valtype?{valtype <- `valtype?`}))] -[visit_exp (lift(valtype?{valtype <- `valtype?`}))] -[visit_exp lift(valtype?{valtype <- `valtype?`})] -[visit_exp valtype?{valtype <- `valtype?`}] -[scope_enter valtype] -[visit_exp valtype] -[visit_id valtype] not free -[visit_id valtype] not free -[scope_exit valtype] -[visit_exp `valtype?`] -[visit_id valtype?] not free -[visit_id valtype?] no dims -[scope_enter valtype] -[visit_exp (C, valtype)] -[visit_exp C] -[visit_id C] not free -[visit_exp valtype] -[visit_id valtype] not free -[visit_id valtype] not free -[scope_exit valtype] -[visit_exp `valtype?`] -[visit_id valtype?] not free -[visit_id valtype?] no dims -[check_dims] C t_1 t_2 typeidx -[visit_exp C] -[visit_id C] -[visit_exp `_IDX`_blocktype(typeidx)] -[visit_exp (typeidx)] -[visit_exp typeidx] -[visit_id typeidx] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C.`TYPES`_context[typeidx!`%`_typeidx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`TYPES`_context[typeidx!`%`_typeidx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp typeidx!`%`_typeidx.0] -[visit_exp typeidx!`%`_typeidx] -[visit_exp typeidx] -[visit_id typeidx] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C bt instr t_1 t_2 x -[visit_exp C] -[visit_id C] -[visit_exp `BLOCK`_instr(bt, instr*{instr <- `instr*`})] -[visit_exp (bt, instr*{instr <- `instr*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp bt] -[visit_id bt] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [`%`_resulttype(t_2*{t_2 <- `t_2*`})]] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp ?()] -[visit_exp []] -[visit_exp C] -[visit_id C] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C bt instr t_1 t_2 x -[visit_exp C] -[visit_id C] -[visit_exp `LOOP`_instr(bt, instr*{instr <- `instr*`})] -[visit_exp (bt, instr*{instr <- `instr*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp bt] -[visit_id bt] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_1*{t_1 <- `t_1*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_1*{t_1 <- `t_1*`})], `RETURN` ?(), `REFS` []} +++ C] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_1*{t_1 <- `t_1*`})], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [`%`_resulttype(t_1*{t_1 <- `t_1*`})]] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp ?()] -[visit_exp []] -[visit_exp C] -[visit_id C] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C bt instr_1 instr_2 t_1 t_2 x_1 x_2 -[visit_exp C] -[visit_id C] -[visit_exp `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp (bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp instr_1*{instr_1 <- `instr_1*`}] -[scope_enter instr_1] -[visit_exp instr_1] -[visit_id instr_1] not free -[visit_id instr_1] not free -[scope_exit instr_1] -[visit_exp `instr_1*`] -[visit_id instr_1*] no dims -[visit_id instr_1*] -[visit_exp instr_2*{instr_2 <- `instr_2*`}] -[scope_enter instr_2] -[visit_exp instr_2] -[visit_id instr_2] not free -[visit_id instr_2] not free -[scope_exit instr_2] -[visit_exp `instr_2*`] -[visit_id instr_2*] no dims -[visit_id instr_2*] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype])] -[visit_exp (t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype])] -[visit_exp t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp bt] -[visit_id bt] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr_1*{instr_1 <- `instr_1*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [`%`_resulttype(t_2*{t_2 <- `t_2*`})]] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp ?()] -[visit_exp []] -[visit_exp C] -[visit_id C] not free -[visit_exp instr_1*{instr_1 <- `instr_1*`}] -[scope_enter instr_1] -[visit_exp instr_1] -[visit_id instr_1] not free -[visit_id instr_1] not free -[scope_exit instr_1] -[visit_exp `instr_1*`] -[visit_id instr_1*] not free -[visit_id instr_1*] no dims -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp x_1*{x_1 <- `x_1*`}] -[scope_enter x_1] -[visit_exp x_1] -[visit_id x_1] not free -[visit_id x_1] not free -[scope_exit x_1] -[visit_exp `x_1*`] -[visit_id x_1*] no dims -[visit_id x_1*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [`%`_resulttype(t_2*{t_2 <- `t_2*`})]] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp ?()] -[visit_exp []] -[visit_exp C] -[visit_id C] not free -[visit_exp instr_2*{instr_2 <- `instr_2*`}] -[scope_enter instr_2] -[visit_exp instr_2] -[visit_id instr_2] not free -[visit_id instr_2] not free -[scope_exit instr_2] -[visit_exp `instr_2*`] -[visit_id instr_2*] not free -[visit_id instr_2*] no dims -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp x_2*{x_2 <- `x_2*`}] -[scope_enter x_2] -[visit_exp x_2] -[visit_id x_2] not free -[visit_id x_2] not free -[scope_exit x_2] -[visit_exp `x_2*`] -[visit_id x_2*] no dims -[visit_id x_2*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C l t t_1 t_2 -[visit_exp C] -[visit_id C] -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] -[visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] -[visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`})] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] -[visit_exp C.`LABELS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C l t -[visit_exp C] -[visit_id C] -[visit_exp `BR_IF`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t*{t <- `t*`}))] -[visit_exp (`%`_resulttype(t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t*{t <- `t*`}))] -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [`I32`_valtype])] -[visit_exp (t*{t <- `t*`} ++ [`I32`_valtype])] -[visit_exp t*{t <- `t*`} ++ [`I32`_valtype]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp (C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`})] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] -[visit_exp C.`LABELS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[check_dims] C l l' t t_1 t_2 -[visit_exp C] -[visit_id C] -[visit_exp `BR_TABLE`_instr(l*{l <- `l*`}, l')] -[visit_exp (l*{l <- `l*`}, l')] -[visit_exp l*{l <- `l*`}] -[scope_enter l] -[visit_exp l] -[visit_id l] not free -[visit_id l] not free -[scope_exit l] -[visit_exp `l*`] -[visit_id l*] no dims -[visit_id l*] -[visit_exp l'] -[visit_id l'] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] -[visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] -[visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp t*{t <- `t*`} ++ [`I32`_valtype]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[scope_enter l] -[visit_exp (C, `%`_resulttype(t*{t <- `t*`}), C.`LABELS`_context[l!`%`_labelidx.0])] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] -[visit_exp C.`LABELS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[visit_id l] not free -[scope_exit l] -[visit_exp `l*`] -[visit_id l*] not free -[visit_id l*] no dims -[visit_exp (C, `%`_resulttype(t*{t <- `t*`}), C.`LABELS`_context[l'!`%`_labelidx.0])] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp C.`LABELS`_context[l'!`%`_labelidx.0]] -[visit_exp C.`LABELS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp l'!`%`_labelidx.0] -[visit_exp l'!`%`_labelidx] -[visit_exp l'] -[visit_id l'] not free -[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] -[visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype])] -[visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp t*{t <- `t*`} ++ [`I32`_valtype]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C ht l t -[visit_exp C] -[visit_id C] -[visit_exp `BR_ON_NULL`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), ht)]))] -[visit_exp (`%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), ht)]))] -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)])] -[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)])] -[visit_exp t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp [`REF`_valtype(?(`NULL`_null), ht)]] -[visit_exp `REF`_valtype(?(`NULL`_null), ht)] -[visit_exp (?(`NULL`_null), ht)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht] -[visit_id ht] -[visit_exp []] -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), ht)])] -[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype(?(), ht)])] -[visit_exp t*{t <- `t*`} ++ [`REF`_valtype(?(), ht)]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp [`REF`_valtype(?(), ht)]] -[visit_exp `REF`_valtype(?(), ht)] -[visit_exp (?(), ht)] -[visit_exp ?()] -[visit_exp ht] -[visit_id ht] not free -[visit_exp (C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`})] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] -[visit_exp C.`LABELS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp (C, ht)] -[visit_exp C] -[visit_id C] not free -[visit_exp ht] -[visit_id ht] not free -[check_dims] C ht l t -[visit_exp C] -[visit_id C] -[visit_exp `BR_ON_NON_NULL`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype(t*{t <- `t*`}))] -[visit_exp (`%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype(t*{t <- `t*`}))] -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)])] -[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)])] -[visit_exp t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp [`REF`_valtype(?(`NULL`_null), ht)]] -[visit_exp `REF`_valtype(?(`NULL`_null), ht)] -[visit_exp (?(`NULL`_null), ht)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht] -[visit_id ht] -[visit_exp []] -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp (C.`LABELS`_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(`NULL`_null?{}, ht)]))] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] -[visit_exp C.`LABELS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(`NULL`_null?{}, ht)])] -[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype(`NULL`_null?{}, ht)])] -[visit_exp t*{t <- `t*`} ++ [`REF`_valtype(`NULL`_null?{}, ht)]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp [`REF`_valtype(`NULL`_null?{}, ht)]] -[visit_exp `REF`_valtype(`NULL`_null?{}, ht)] -[visit_exp (`NULL`_null?{}, ht)] -[visit_exp `NULL`_null?{}] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht] -[visit_id ht] not free -[check_dims] C l rt rt_1 rt_2 t -[visit_exp C] -[visit_id C] -[visit_exp `BR_ON_CAST`_instr(l, rt_1, rt_2)] -[visit_exp (l, rt_1, rt_2)] -[visit_exp l] -[visit_id l] -[visit_exp rt_1] -[visit_id rt_1] -[visit_exp rt_2] -[visit_id rt_2] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))] -[visit_exp (`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))] -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] -[visit_exp (t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] -[visit_exp t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp [(rt_1 : reftype <: valtype)]] -[visit_exp (rt_1 : reftype <: valtype)] -[visit_exp rt_1] -[visit_id rt_1] not free -[visit_exp []] -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)])] -[visit_exp (t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)])] -[visit_exp t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp [($diffrt(rt_1, rt_2) : reftype <: valtype)]] -[visit_exp ($diffrt(rt_1, rt_2) : reftype <: valtype)] -[visit_exp $diffrt(rt_1, rt_2)] -[visit_exp rt_1] -[visit_id rt_1] not free -[visit_exp rt_2] -[visit_id rt_2] not free -[visit_exp (C.`LABELS`_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)]))] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] -[visit_exp C.`LABELS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] -[visit_exp (t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] -[visit_exp t*{t <- `t*`} ++ [(rt : reftype <: valtype)]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp [(rt : reftype <: valtype)]] -[visit_exp (rt : reftype <: valtype)] -[visit_exp rt] -[visit_id rt] -[visit_exp (C, rt_1)] -[visit_exp C] -[visit_id C] not free -[visit_exp rt_1] -[visit_id rt_1] not free -[visit_exp (C, rt_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp rt_2] -[visit_id rt_2] not free -[visit_exp (C, rt_2, rt_1)] -[visit_exp C] -[visit_id C] not free -[visit_exp rt_2] -[visit_id rt_2] not free -[visit_exp rt_1] -[visit_id rt_1] not free -[visit_exp (C, rt_2, rt)] -[visit_exp C] -[visit_id C] not free -[visit_exp rt_2] -[visit_id rt_2] not free -[visit_exp rt] -[visit_id rt] not free -[check_dims] C l rt rt_1 rt_2 t -[visit_exp C] -[visit_id C] -[visit_exp `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)] -[visit_exp (l, rt_1, rt_2)] -[visit_exp l] -[visit_id l] -[visit_exp rt_1] -[visit_id rt_1] -[visit_exp rt_2] -[visit_id rt_2] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))] -[visit_exp (`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))] -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] -[visit_exp (t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)])] -[visit_exp t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp [(rt_1 : reftype <: valtype)]] -[visit_exp (rt_1 : reftype <: valtype)] -[visit_exp rt_1] -[visit_id rt_1] not free -[visit_exp []] -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)])] -[visit_exp (t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)])] -[visit_exp t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp [(rt_2 : reftype <: valtype)]] -[visit_exp (rt_2 : reftype <: valtype)] -[visit_exp rt_2] -[visit_id rt_2] not free -[visit_exp (C.`LABELS`_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)]))] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] -[visit_exp C.`LABELS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] -[visit_exp (t*{t <- `t*`} ++ [(rt : reftype <: valtype)])] -[visit_exp t*{t <- `t*`} ++ [(rt : reftype <: valtype)]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp [(rt : reftype <: valtype)]] -[visit_exp (rt : reftype <: valtype)] -[visit_exp rt] -[visit_id rt] -[visit_exp (C, rt_1)] -[visit_exp C] -[visit_id C] not free -[visit_exp rt_1] -[visit_id rt_1] not free -[visit_exp (C, rt_2)] -[visit_exp C] -[visit_id C] not free -[visit_exp rt_2] -[visit_id rt_2] not free -[visit_exp (C, rt_2, rt_1)] -[visit_exp C] -[visit_id C] not free -[visit_exp rt_2] -[visit_id rt_2] not free -[visit_exp rt_1] -[visit_id rt_1] not free -[visit_exp (C, $diffrt(rt_1, rt_2), rt)] -[visit_exp C] -[visit_id C] not free -[visit_exp $diffrt(rt_1, rt_2)] -[visit_exp rt_1] -[visit_id rt_1] not free -[visit_exp rt_2] -[visit_id rt_2] not free -[visit_exp rt] -[visit_id rt] not free -[check_dims] C t_1 t_2 x -[visit_exp C] -[visit_id C] -[visit_exp `CALL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C.`FUNCS`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`FUNCS`_context[x!`%`_idx.0]] -[visit_exp C.`FUNCS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C t_1 t_2 x -[visit_exp C] -[visit_id C] -[visit_exp `CALL_REF`_instr(`_IDX`_typeuse(x))] -[visit_exp (`_IDX`_typeuse(x))] -[visit_exp `_IDX`_typeuse(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))])] -[visit_exp (t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))])] -[visit_exp t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]] -[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C at lim rt t_1 t_2 x y -[visit_exp C] -[visit_id C] -[visit_exp `CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y))] -[visit_exp (x, `_IDX`_typeuse(y))] -[visit_exp x] -[visit_id x] -[visit_exp `_IDX`_typeuse(y)] -[visit_exp (y)] -[visit_exp y] -[visit_id y] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] -[visit_exp (t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] -[visit_exp t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp [(at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] -[visit_exp C.`TABLES`_context[x!`%`_idx.0]] -[visit_exp C.`TABLES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%%`_tabletype(at, lim, rt)] -[visit_exp (at, lim, rt)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp rt] -[visit_id rt] -[visit_exp (C, rt, `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype))] -[visit_exp C] -[visit_id C] not free -[visit_exp rt] -[visit_id rt] not free -[visit_exp `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp (?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `FUNC`_heaptype] -[visit_exp ()] -[visit_exp (C.`TYPES`_context[y!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`TYPES`_context[y!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp y!`%`_idx.0] -[visit_exp y!`%`_idx] -[visit_exp y] -[visit_id y] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C t t_1 t_2 -[visit_exp C] -[visit_id C] -[visit_exp `RETURN`_instr] -[visit_exp ()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] -[visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] -[visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C.`RETURN`_context = ?(`%`_resulttype(t*{t <- `t*`})))] -[visit_exp C.`RETURN`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp ?(`%`_resulttype(t*{t <- `t*`}))] -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C t'_2 t_1 t_2 t_3 t_4 x -[visit_exp C] -[visit_id C] -[visit_exp `RETURN_CALL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] -[visit_exp (`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] -[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`})] -[visit_exp (t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`})] -[visit_exp t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}] -[visit_exp t_3*{t_3 <- `t_3*`}] -[scope_enter t_3] -[visit_exp t_3] -[visit_id t_3] not free -[visit_id t_3] not free -[scope_exit t_3] -[visit_exp `t_3*`] -[visit_id t_3*] no dims -[visit_id t_3*] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp []] -[visit_exp `%`_resulttype(t_4*{t_4 <- `t_4*`})] -[visit_exp (t_4*{t_4 <- `t_4*`})] -[visit_exp t_4*{t_4 <- `t_4*`}] -[scope_enter t_4] -[visit_exp t_4] -[visit_id t_4] not free -[visit_id t_4] not free -[scope_exit t_4] -[visit_exp `t_4*`] -[visit_id t_4*] no dims -[visit_id t_4*] -[visit_exp (C.`FUNCS`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`FUNCS`_context[x!`%`_idx.0]] -[visit_exp C.`FUNCS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C.`RETURN`_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`})))] -[visit_exp C.`RETURN`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))] -[visit_exp `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})] -[visit_exp (t'_2*{t'_2 <- `t'_2*`})] -[visit_exp t'_2*{t'_2 <- `t'_2*`}] -[scope_enter t'_2] -[visit_exp t'_2] -[visit_id t'_2] not free -[visit_id t'_2] not free -[scope_exit t'_2] -[visit_exp `t'_2*`] -[visit_id t'_2*] no dims -[visit_id t'_2*] -[visit_exp (C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})] -[visit_exp (t'_2*{t'_2 <- `t'_2*`})] -[visit_exp t'_2*{t'_2 <- `t'_2*`}] -[scope_enter t'_2] -[visit_exp t'_2] -[visit_id t'_2] not free -[visit_id t'_2] not free -[scope_exit t'_2] -[visit_exp `t'_2*`] -[visit_id t'_2*] not free -[visit_id t'_2*] no dims -[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] -[visit_exp (`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] -[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`})] -[visit_exp (t_3*{t_3 <- `t_3*`})] -[visit_exp t_3*{t_3 <- `t_3*`}] -[scope_enter t_3] -[visit_exp t_3] -[visit_id t_3] not free -[visit_id t_3] not free -[scope_exit t_3] -[visit_exp `t_3*`] -[visit_id t_3*] not free -[visit_id t_3*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_4*{t_4 <- `t_4*`})] -[visit_exp (t_4*{t_4 <- `t_4*`})] -[visit_exp t_4*{t_4 <- `t_4*`}] -[scope_enter t_4] -[visit_exp t_4] -[visit_id t_4] not free -[visit_id t_4] not free -[scope_exit t_4] -[visit_exp `t_4*`] -[visit_id t_4*] not free -[visit_id t_4*] no dims -[check_dims] C t'_2 t_1 t_2 t_3 t_4 x -[visit_exp C] -[visit_id C] -[visit_exp `RETURN_CALL_REF`_instr(`_IDX`_typeuse(x))] -[visit_exp (`_IDX`_typeuse(x))] -[visit_exp `_IDX`_typeuse(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] -[visit_exp (`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] -[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))])] -[visit_exp (t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))])] -[visit_exp t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]] -[visit_exp t_3*{t_3 <- `t_3*`}] -[scope_enter t_3] -[visit_exp t_3] -[visit_id t_3] not free -[visit_id t_3] not free -[scope_exit t_3] -[visit_exp `t_3*`] -[visit_id t_3*] no dims -[visit_id t_3*] -[visit_exp t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]] -[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp []] -[visit_exp `%`_resulttype(t_4*{t_4 <- `t_4*`})] -[visit_exp (t_4*{t_4 <- `t_4*`})] -[visit_exp t_4*{t_4 <- `t_4*`}] -[scope_enter t_4] -[visit_exp t_4] -[visit_id t_4] not free -[visit_id t_4] not free -[scope_exit t_4] -[visit_exp `t_4*`] -[visit_id t_4*] no dims -[visit_id t_4*] -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C.`RETURN`_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`})))] -[visit_exp C.`RETURN`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))] -[visit_exp `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})] -[visit_exp (t'_2*{t'_2 <- `t'_2*`})] -[visit_exp t'_2*{t'_2 <- `t'_2*`}] -[scope_enter t'_2] -[visit_exp t'_2] -[visit_id t'_2] not free -[visit_id t'_2] not free -[scope_exit t'_2] -[visit_exp `t'_2*`] -[visit_id t'_2*] no dims -[visit_id t'_2*] -[visit_exp (C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})] -[visit_exp (t'_2*{t'_2 <- `t'_2*`})] -[visit_exp t'_2*{t'_2 <- `t'_2*`}] -[scope_enter t'_2] -[visit_exp t'_2] -[visit_id t'_2] not free -[visit_id t'_2] not free -[scope_exit t'_2] -[visit_exp `t'_2*`] -[visit_id t'_2*] not free -[visit_id t'_2*] no dims -[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] -[visit_exp (`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] -[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`})] -[visit_exp (t_3*{t_3 <- `t_3*`})] -[visit_exp t_3*{t_3 <- `t_3*`}] -[scope_enter t_3] -[visit_exp t_3] -[visit_id t_3] not free -[visit_id t_3] not free -[scope_exit t_3] -[visit_exp `t_3*`] -[visit_id t_3*] not free -[visit_id t_3*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_4*{t_4 <- `t_4*`})] -[visit_exp (t_4*{t_4 <- `t_4*`})] -[visit_exp t_4*{t_4 <- `t_4*`}] -[scope_enter t_4] -[visit_exp t_4] -[visit_id t_4] not free -[visit_id t_4] not free -[scope_exit t_4] -[visit_exp `t_4*`] -[visit_id t_4*] not free -[visit_id t_4*] no dims -[check_dims] C at lim rt t'_2 t_1 t_2 t_3 t_4 x y -[visit_exp C] -[visit_id C] -[visit_exp `RETURN_CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y))] -[visit_exp (x, `_IDX`_typeuse(y))] -[visit_exp x] -[visit_id x] -[visit_exp `_IDX`_typeuse(y)] -[visit_exp (y)] -[visit_exp y] -[visit_id y] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] -[visit_exp (`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] -[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] -[visit_exp (t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)])] -[visit_exp t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]] -[visit_exp t_3*{t_3 <- `t_3*`}] -[scope_enter t_3] -[visit_exp t_3] -[visit_id t_3] not free -[visit_id t_3] not free -[scope_exit t_3] -[visit_exp `t_3*`] -[visit_id t_3*] no dims -[visit_id t_3*] -[visit_exp t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp [(at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp []] -[visit_exp `%`_resulttype(t_4*{t_4 <- `t_4*`})] -[visit_exp (t_4*{t_4 <- `t_4*`})] -[visit_exp t_4*{t_4 <- `t_4*`}] -[scope_enter t_4] -[visit_exp t_4] -[visit_id t_4] not free -[visit_id t_4] not free -[scope_exit t_4] -[visit_exp `t_4*`] -[visit_id t_4*] no dims -[visit_id t_4*] -[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] -[visit_exp C.`TABLES`_context[x!`%`_idx.0]] -[visit_exp C.`TABLES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%%`_tabletype(at, lim, rt)] -[visit_exp (at, lim, rt)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp rt] -[visit_id rt] -[visit_exp (C, rt, `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype))] -[visit_exp C] -[visit_id C] not free -[visit_exp rt] -[visit_id rt] not free -[visit_exp `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp (?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `FUNC`_heaptype] -[visit_exp ()] -[visit_exp (C.`TYPES`_context[y!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`TYPES`_context[y!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp y!`%`_idx.0] -[visit_exp y!`%`_idx] -[visit_exp y] -[visit_id y] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C.`RETURN`_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`})))] -[visit_exp C.`RETURN`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))] -[visit_exp `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})] -[visit_exp (t'_2*{t'_2 <- `t'_2*`})] -[visit_exp t'_2*{t'_2 <- `t'_2*`}] -[scope_enter t'_2] -[visit_exp t'_2] -[visit_id t'_2] not free -[visit_id t'_2] not free -[scope_exit t'_2] -[visit_exp `t'_2*`] -[visit_id t'_2*] no dims -[visit_id t'_2*] -[visit_exp (C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})] -[visit_exp (t'_2*{t'_2 <- `t'_2*`})] -[visit_exp t'_2*{t'_2 <- `t'_2*`}] -[scope_enter t'_2] -[visit_exp t'_2] -[visit_id t'_2] not free -[visit_id t'_2] not free -[scope_exit t'_2] -[visit_exp `t'_2*`] -[visit_id t'_2*] not free -[visit_id t'_2*] no dims -[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] -[visit_exp (`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))] -[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`})] -[visit_exp (t_3*{t_3 <- `t_3*`})] -[visit_exp t_3*{t_3 <- `t_3*`}] -[scope_enter t_3] -[visit_exp t_3] -[visit_id t_3] not free -[visit_id t_3] not free -[scope_exit t_3] -[visit_exp `t_3*`] -[visit_id t_3*] not free -[visit_id t_3*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_4*{t_4 <- `t_4*`})] -[visit_exp (t_4*{t_4 <- `t_4*`})] -[visit_exp t_4*{t_4 <- `t_4*`}] -[scope_enter t_4] -[visit_exp t_4] -[visit_id t_4] not free -[visit_id t_4] not free -[scope_exit t_4] -[visit_exp `t_4*`] -[visit_id t_4*] not free -[visit_id t_4*] no dims -[check_dims] -[check_dims] C t t_1 t_2 x -[visit_exp C] -[visit_id C] -[visit_exp `THROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] -[visit_exp (t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`})] -[visit_exp t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp ($as_deftype(C.`TAGS`_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([])))] -[visit_exp $as_deftype(C.`TAGS`_context[x!`%`_idx.0])] -[visit_exp C.`TAGS`_context[x!`%`_idx.0]] -[visit_exp C.`TAGS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))] -[visit_exp (`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))] -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C t_1 t_2 -[visit_exp C] -[visit_id C] -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)])] -[visit_exp (t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)])] -[visit_exp t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)]] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)]] -[visit_exp `REF`_valtype(?(`NULL`_null), `EXN`_heaptype)] -[visit_exp (?(`NULL`_null), `EXN`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `EXN`_heaptype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C bt catch instr t_1 t_2 x -[visit_exp C] -[visit_id C] -[visit_exp `TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] -[visit_exp (bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp `%`_list(catch*{catch <- `catch*`})] -[visit_exp (catch*{catch <- `catch*`})] -[visit_exp catch*{catch <- `catch*`}] -[scope_enter catch] -[visit_exp catch] -[visit_id catch] not free -[visit_id catch] not free -[scope_exit catch] -[visit_exp `catch*`] -[visit_id catch*] no dims -[visit_id catch*] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp bt] -[visit_id bt] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [`%`_resulttype(t_2*{t_2 <- `t_2*`})]] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp ?()] -[visit_exp []] -[visit_exp C] -[visit_id C] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[scope_enter catch] -[visit_exp (C, catch)] -[visit_exp C] -[visit_id C] not free -[visit_exp catch] -[visit_id catch] not free -[visit_id catch] not free -[scope_exit catch] -[visit_exp `catch*`] -[visit_id catch*] not free -[visit_id catch*] no dims -[check_dims] C l t x -[visit_exp C] -[visit_id C] -[visit_exp `CATCH`_catch(x, l)] -[visit_exp (x, l)] -[visit_exp x] -[visit_id x] -[visit_exp l] -[visit_id l] -[visit_exp ($as_deftype(C.`TAGS`_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([])))] -[visit_exp $as_deftype(C.`TAGS`_context[x!`%`_idx.0])] -[visit_exp C.`TAGS`_context[x!`%`_idx.0]] -[visit_exp C.`TAGS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))] -[visit_exp (`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))] -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C, `%`_resulttype(t*{t <- `t*`}), C.`LABELS`_context[l!`%`_labelidx.0])] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] -[visit_exp C.`LABELS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] C l t x -[visit_exp C] -[visit_id C] -[visit_exp `CATCH_REF`_catch(x, l)] -[visit_exp (x, l)] -[visit_exp x] -[visit_id x] -[visit_exp l] -[visit_id l] -[visit_exp ($as_deftype(C.`TAGS`_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([])))] -[visit_exp $as_deftype(C.`TAGS`_context[x!`%`_idx.0])] -[visit_exp C.`TAGS`_context[x!`%`_idx.0]] -[visit_exp C.`TAGS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))] -[visit_exp (`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))] -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C, `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), `EXN`_heaptype)]), C.`LABELS`_context[l!`%`_labelidx.0])] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), `EXN`_heaptype)])] -[visit_exp (t*{t <- `t*`} ++ [`REF`_valtype(?(), `EXN`_heaptype)])] -[visit_exp t*{t <- `t*`} ++ [`REF`_valtype(?(), `EXN`_heaptype)]] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp [`REF`_valtype(?(), `EXN`_heaptype)]] -[visit_exp `REF`_valtype(?(), `EXN`_heaptype)] -[visit_exp (?(), `EXN`_heaptype)] -[visit_exp ?()] -[visit_exp `EXN`_heaptype] -[visit_exp ()] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] -[visit_exp C.`LABELS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] C l -[visit_exp C] -[visit_id C] -[visit_exp `CATCH_ALL`_catch(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp (C, `%`_resulttype([]), C.`LABELS`_context[l!`%`_labelidx.0])] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] -[visit_exp C.`LABELS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] C l -[visit_exp C] -[visit_id C] -[visit_exp `CATCH_ALL_REF`_catch(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp (C, `%`_resulttype([`REF`_valtype(?(), `EXN`_heaptype)]), C.`LABELS`_context[l!`%`_labelidx.0])] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype([`REF`_valtype(?(), `EXN`_heaptype)])] -[visit_exp ([`REF`_valtype(?(), `EXN`_heaptype)])] -[visit_exp [`REF`_valtype(?(), `EXN`_heaptype)]] -[visit_exp `REF`_valtype(?(), `EXN`_heaptype)] -[visit_exp (?(), `EXN`_heaptype)] -[visit_exp ?()] -[visit_exp `EXN`_heaptype] -[visit_exp ()] -[visit_exp C.`LABELS`_context[l!`%`_labelidx.0]] -[visit_exp C.`LABELS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] C ht -[visit_exp C] -[visit_id C] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), ht)])] -[visit_exp [`REF`_valtype(?(`NULL`_null), ht)]] -[visit_exp `REF`_valtype(?(`NULL`_null), ht)] -[visit_exp (?(`NULL`_null), ht)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht] -[visit_id ht] not free -[visit_exp (C, ht)] -[visit_exp C] -[visit_id C] not free -[visit_exp ht] -[visit_id ht] not free -[check_dims] C dt x -[visit_exp C] -[visit_id C] -[visit_exp `REF.FUNC`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(), (dt : deftype <: heaptype))]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(), (dt : deftype <: heaptype))]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([`REF`_valtype(?(), (dt : deftype <: heaptype))])] -[visit_exp ([`REF`_valtype(?(), (dt : deftype <: heaptype))])] -[visit_exp [`REF`_valtype(?(), (dt : deftype <: heaptype))]] -[visit_exp `REF`_valtype(?(), (dt : deftype <: heaptype))] -[visit_exp (?(), (dt : deftype <: heaptype))] -[visit_exp ?()] -[visit_exp (dt : deftype <: heaptype)] -[visit_exp dt] -[visit_id dt] -[visit_exp (C.`FUNCS`_context[x!`%`_idx.0] = dt)] -[visit_exp C.`FUNCS`_context[x!`%`_idx.0]] -[visit_exp C.`FUNCS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp dt] -[visit_id dt] not free -[visit_exp (x <- C.`REFS`_context)] -[visit_exp x] -[visit_id x] not free -[visit_exp C.`REFS`_context] -[visit_exp C] -[visit_id C] not free -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp `REF.I31`_instr] -[visit_exp ()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `I31`_heaptype)]))] -[visit_exp (`%`_resulttype([`I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `I31`_heaptype)]))] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`REF`_valtype(?(), `I31`_heaptype)])] -[visit_exp ([`REF`_valtype(?(), `I31`_heaptype)])] -[visit_exp [`REF`_valtype(?(), `I31`_heaptype)]] -[visit_exp `REF`_valtype(?(), `I31`_heaptype)] -[visit_exp (?(), `I31`_heaptype)] -[visit_exp ?()] -[visit_exp `I31`_heaptype] -[visit_exp ()] -[check_dims] C ht -[visit_exp C] -[visit_id C] -[visit_exp `REF.IS_NULL`_instr] -[visit_exp ()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), ht)])] -[visit_exp [`REF`_valtype(?(`NULL`_null), ht)]] -[visit_exp `REF`_valtype(?(`NULL`_null), ht)] -[visit_exp (?(`NULL`_null), ht)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht] -[visit_id ht] -[visit_exp []] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp (C, ht)] -[visit_exp C] -[visit_id C] not free -[visit_exp ht] -[visit_id ht] not free -[check_dims] C ht -[visit_exp C] -[visit_id C] -[visit_exp `REF.AS_NON_NULL`_instr] -[visit_exp ()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype([`REF`_valtype(?(), ht)]))] -[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype([`REF`_valtype(?(), ht)]))] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), ht)])] -[visit_exp [`REF`_valtype(?(`NULL`_null), ht)]] -[visit_exp `REF`_valtype(?(`NULL`_null), ht)] -[visit_exp (?(`NULL`_null), ht)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht] -[visit_id ht] -[visit_exp []] -[visit_exp `%`_resulttype([`REF`_valtype(?(), ht)])] -[visit_exp ([`REF`_valtype(?(), ht)])] -[visit_exp [`REF`_valtype(?(), ht)]] -[visit_exp `REF`_valtype(?(), ht)] -[visit_exp (?(), ht)] -[visit_exp ?()] -[visit_exp ht] -[visit_id ht] not free -[visit_exp (C, ht)] -[visit_exp C] -[visit_id C] not free -[visit_exp ht] -[visit_id ht] not free -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp `REF.EQ`_instr] -[visit_exp ()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)])] -[visit_exp [`REF`_valtype(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)]] -[visit_exp `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)] -[visit_exp (?(`NULL`_null), `EQ`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `EQ`_heaptype] -[visit_exp ()] -[visit_exp `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)] -[visit_exp (?(`NULL`_null), `EQ`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `EQ`_heaptype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[check_dims] C rt rt' -[visit_exp C] -[visit_id C] -[visit_exp `REF.TEST`_instr(rt)] -[visit_exp (rt)] -[visit_exp rt] -[visit_id rt] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp (`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp `%`_resulttype([(rt' : reftype <: valtype)])] -[visit_exp ([(rt' : reftype <: valtype)])] -[visit_exp [(rt' : reftype <: valtype)]] -[visit_exp (rt' : reftype <: valtype)] -[visit_exp rt'] -[visit_id rt'] -[visit_exp []] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp (C, rt)] -[visit_exp C] -[visit_id C] not free -[visit_exp rt] -[visit_id rt] not free -[visit_exp (C, rt')] -[visit_exp C] -[visit_id C] not free -[visit_exp rt'] -[visit_id rt'] not free -[visit_exp (C, rt, rt')] -[visit_exp C] -[visit_id C] not free -[visit_exp rt] -[visit_id rt] not free -[visit_exp rt'] -[visit_id rt'] not free -[check_dims] C rt rt' -[visit_exp C] -[visit_id C] -[visit_exp `REF.CAST`_instr(rt)] -[visit_exp (rt)] -[visit_exp rt] -[visit_id rt] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))] -[visit_exp (`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))] -[visit_exp `%`_resulttype([(rt' : reftype <: valtype)])] -[visit_exp ([(rt' : reftype <: valtype)])] -[visit_exp [(rt' : reftype <: valtype)]] -[visit_exp (rt' : reftype <: valtype)] -[visit_exp rt'] -[visit_id rt'] -[visit_exp []] -[visit_exp `%`_resulttype([(rt : reftype <: valtype)])] -[visit_exp ([(rt : reftype <: valtype)])] -[visit_exp [(rt : reftype <: valtype)]] -[visit_exp (rt : reftype <: valtype)] -[visit_exp rt] -[visit_id rt] not free -[visit_exp (C, rt)] -[visit_exp C] -[visit_id C] not free -[visit_exp rt] -[visit_id rt] not free -[visit_exp (C, rt')] -[visit_exp C] -[visit_id C] not free -[visit_exp rt'] -[visit_id rt'] not free -[visit_exp (C, rt, rt')] -[visit_exp C] -[visit_id C] not free -[visit_exp rt] -[visit_id rt] not free -[visit_exp rt'] -[visit_id rt'] not free -[check_dims] C sx -[visit_exp C] -[visit_id C] -[visit_exp `I31.GET`_instr(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `I31`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `I31`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `I31`_heaptype)])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), `I31`_heaptype)])] -[visit_exp [`REF`_valtype(?(`NULL`_null), `I31`_heaptype)]] -[visit_exp `REF`_valtype(?(`NULL`_null), `I31`_heaptype)] -[visit_exp (?(`NULL`_null), `I31`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `I31`_heaptype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[check_dims] C mut x zt -[visit_exp C] -[visit_id C] -[visit_exp `STRUCT.NEW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp (`%`_resulttype($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp `%`_resulttype($unpack(zt)*{zt <- `zt*`})] -[visit_exp ($unpack(zt)*{zt <- `zt*`})] -[visit_exp $unpack(zt)*{zt <- `zt*`}] -[scope_enter zt] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_id zt] not free -[scope_exit zt] -[visit_exp `zt*`] -[visit_id zt*] no dims -[visit_id zt*] -[visit_exp []] -[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] -[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] -[visit_exp (?(), `_IDX`_heaptype(x))] -[visit_exp ?()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] -[visit_exp (`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] -[visit_exp `%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}] -[scope_enter mut?] -[scope_enter zt] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_exp zt] -[visit_id zt] not free -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_id zt] not free -[scope_exit zt] -[scope_exit mut?] -[visit_exp `mut?*`] -[visit_id mut?*] no dims -[visit_id mut?*] -[visit_exp `zt*`] -[visit_id zt*] not free -[visit_id zt*] no dims -[check_dims] C mut x zt -[visit_exp C] -[visit_id C] -[visit_exp `STRUCT.NEW_DEFAULT`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] -[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] -[visit_exp (?(), `_IDX`_heaptype(x))] -[visit_exp ?()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] -[visit_exp (`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] -[visit_exp `%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}] -[scope_enter mut?] -[scope_enter zt] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_exp zt] -[visit_id zt] not free -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_id zt] not free -[scope_exit zt] -[scope_exit mut?] -[visit_exp `mut?*`] -[visit_id mut?*] no dims -[visit_id mut?*] -[visit_exp `zt*`] -[visit_id zt*] no dims -[visit_id zt*] -[scope_enter zt] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_id zt] not free -[scope_exit zt] -[visit_exp `zt*`] -[visit_id zt*] not free -[visit_id zt*] no dims -[check_dims] storagetype -DecD is_packtype(storagetype : storagetype) : bool -[visit_id storagetype] not free -[check_dims] zt -[visit_exp zt] -[visit_id zt] -[visit_exp (zt = ($unpack(zt) : valtype <: storagetype))] -[visit_exp zt] -[visit_id zt] not free -[visit_exp ($unpack(zt) : valtype <: storagetype)] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] not free -=> - ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - def $is_packtype{zt : storagetype}(zt) = (zt = ($unpack(zt) : valtype <: storagetype)) -[check_dims] C ft i mut sx x zt -[visit_exp C] -[visit_id C] -[visit_exp `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)] -[visit_exp (sx?{sx <- `sx?`}, x, i)] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] no dims -[visit_id sx?] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype([$unpack(zt)]))] -[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype([$unpack(zt)]))] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))])] -[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]] -[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp []] -[visit_exp `%`_resulttype([$unpack(zt)])] -[visit_exp ([$unpack(zt)])] -[visit_exp [$unpack(zt)]] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))] -[visit_exp (`%`_list(ft*{ft <- `ft*`}))] -[visit_exp `%`_list(ft*{ft <- `ft*`})] -[visit_exp (ft*{ft <- `ft*`})] -[visit_exp ft*{ft <- `ft*`}] -[scope_enter ft] -[visit_exp ft] -[visit_id ft] not free -[visit_id ft] not free -[scope_exit ft] -[visit_exp `ft*`] -[visit_id ft*] no dims -[visit_id ft*] -[visit_exp (ft*{ft <- `ft*`}[i!`%`_u32.0] = `%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp ft*{ft <- `ft*`}[i!`%`_u32.0]] -[visit_exp ft*{ft <- `ft*`}] -[scope_enter ft] -[visit_exp ft] -[visit_id ft] not free -[visit_id ft] not free -[scope_exit ft] -[visit_exp `ft*`] -[visit_id ft*] not free -[visit_id ft*] no dims -[visit_exp i!`%`_u32.0] -[visit_exp i!`%`_u32] -[visit_exp i] -[visit_id i] not free -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] not free -[visit_exp ((sx?{sx <- `sx?`} = ?()) <=> $is_packtype(zt))] -[visit_exp (sx?{sx <- `sx?`} = ?())] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] not free -[visit_id sx?] no dims -[visit_exp ?()] -[visit_exp $is_packtype(zt)] -[visit_exp zt] -[visit_id zt] not free -[check_dims] C ft i x zt -[visit_exp C] -[visit_id C] -[visit_exp `STRUCT.SET`_instr(x, i)] -[visit_exp (x, i)] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) $unpack(zt)]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) $unpack(zt)]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) $unpack(zt)])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) $unpack(zt)])] -[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) $unpack(zt)]] -[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))] -[visit_exp (`%`_list(ft*{ft <- `ft*`}))] -[visit_exp `%`_list(ft*{ft <- `ft*`})] -[visit_exp (ft*{ft <- `ft*`})] -[visit_exp ft*{ft <- `ft*`}] -[scope_enter ft] -[visit_exp ft] -[visit_id ft] not free -[visit_id ft] not free -[scope_exit ft] -[visit_exp `ft*`] -[visit_id ft*] no dims -[visit_id ft*] -[visit_exp (ft*{ft <- `ft*`}[i!`%`_u32.0] = `%%`_fieldtype(?(`MUT`_mut), zt))] -[visit_exp ft*{ft <- `ft*`}[i!`%`_u32.0]] -[visit_exp ft*{ft <- `ft*`}] -[scope_enter ft] -[visit_exp ft] -[visit_id ft] not free -[visit_id ft] not free -[scope_exit ft] -[visit_exp `ft*`] -[visit_id ft*] not free -[visit_id ft*] no dims -[visit_exp i!`%`_u32.0] -[visit_exp i!`%`_u32] -[visit_exp i] -[visit_id i] not free -[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt)] -[visit_exp (?(`MUT`_mut), zt)] -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp zt] -[visit_id zt] not free -[check_dims] C mut x zt -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.NEW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([$unpack(zt) `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp (`%`_resulttype([$unpack(zt) `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp `%`_resulttype([$unpack(zt) `I32`_valtype])] -[visit_exp ([$unpack(zt) `I32`_valtype])] -[visit_exp [$unpack(zt) `I32`_valtype]] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] -[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] -[visit_exp (?(), `_IDX`_heaptype(x))] -[visit_exp ?()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] not free -[check_dims] C mut x zt -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.NEW_DEFAULT`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp (`%`_resulttype([`I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] -[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] -[visit_exp (?(), `_IDX`_heaptype(x))] -[visit_exp ?()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] not free -[check_dims] C mut n x zt -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] -[visit_exp (x, `%`_u32(n))] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `%->_%%`_instrtype(`%`_resulttype($unpack(zt)^n{}), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp (`%`_resulttype($unpack(zt)^n{}), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp `%`_resulttype($unpack(zt)^n{})] -[visit_exp ($unpack(zt)^n{})] -[visit_exp $unpack(zt)^n{}] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] -[visit_exp n] -[visit_id n] not free -[visit_exp []] -[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] -[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] -[visit_exp (?(), `_IDX`_heaptype(x))] -[visit_exp ?()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] not free -[check_dims] C mut rt x y -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.NEW_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp (`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp `%`_resulttype([`I32`_valtype `I32`_valtype])] -[visit_exp ([`I32`_valtype `I32`_valtype])] -[visit_exp [`I32`_valtype `I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] -[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] -[visit_exp (?(), `_IDX`_heaptype(x))] -[visit_exp ?()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, (rt : reftype <: storagetype))))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, (rt : reftype <: storagetype))] -[visit_exp (mut?{mut <- `mut?`}, (rt : reftype <: storagetype))] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp (rt : reftype <: storagetype)] -[visit_exp rt] -[visit_id rt] -[visit_exp (C, C.`ELEMS`_context[y!`%`_idx.0], rt)] -[visit_exp C] -[visit_id C] not free -[visit_exp C.`ELEMS`_context[y!`%`_idx.0]] -[visit_exp C.`ELEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp y!`%`_idx.0] -[visit_exp y!`%`_idx] -[visit_exp y] -[visit_id y] not free -[visit_exp rt] -[visit_id rt] not free -[check_dims] C mut numtype vectype x y zt -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.NEW_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp (`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))] -[visit_exp `%`_resulttype([`I32`_valtype `I32`_valtype])] -[visit_exp ([`I32`_valtype `I32`_valtype])] -[visit_exp [`I32`_valtype `I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp ([`REF`_valtype(?(), `_IDX`_heaptype(x))])] -[visit_exp [`REF`_valtype(?(), `_IDX`_heaptype(x))]] -[visit_exp `REF`_valtype(?(), `_IDX`_heaptype(x))] -[visit_exp (?(), `_IDX`_heaptype(x))] -[visit_exp ?()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] -[visit_exp (($unpack(zt) = (numtype : numtype <: valtype)) \/ ($unpack(zt) = (vectype : vectype <: valtype)))] -[visit_exp ($unpack(zt) = (numtype : numtype <: valtype))] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp (numtype : numtype <: valtype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp ($unpack(zt) = (vectype : vectype <: valtype))] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp (vectype : vectype <: valtype)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp (C.`DATAS`_context[y!`%`_idx.0] = `OK`_datatype)] -[visit_exp C.`DATAS`_context[y!`%`_idx.0]] -[visit_exp C.`DATAS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp y!`%`_idx.0] -[visit_exp y!`%`_idx] -[visit_exp y] -[visit_id y] not free -[visit_exp `OK`_datatype] -[visit_exp ()] -[check_dims] C mut sx x zt -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)] -[visit_exp (sx?{sx <- `sx?`}, x)] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] no dims -[visit_id sx?] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype]), [], `%`_resulttype([$unpack(zt)]))] -[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype]), [], `%`_resulttype([$unpack(zt)]))] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype])] -[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype]] -[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([$unpack(zt)])] -[visit_exp ([$unpack(zt)])] -[visit_exp [$unpack(zt)]] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] not free -[visit_exp ((sx?{sx <- `sx?`} = ?()) <=> $is_packtype(zt))] -[visit_exp (sx?{sx <- `sx?`} = ?())] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] not free -[visit_id sx?] no dims -[visit_exp ?()] -[visit_exp $is_packtype(zt)] -[visit_exp zt] -[visit_id zt] not free -[check_dims] C x zt -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt)]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt)]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt)])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt)])] -[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt)]] -[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt)))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))] -[visit_exp (`%%`_fieldtype(?(`MUT`_mut), zt))] -[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt)] -[visit_exp (?(`MUT`_mut), zt)] -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp zt] -[visit_id zt] not free -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.LEN`_instr] -[visit_exp ()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)])] -[visit_exp [`REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)]] -[visit_exp `REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)] -[visit_exp (?(`NULL`_null), `ARRAY`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `ARRAY`_heaptype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[check_dims] C x zt -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt) `I32`_valtype]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt) `I32`_valtype]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt) `I32`_valtype])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt) `I32`_valtype])] -[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt) `I32`_valtype]] -[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt)))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))] -[visit_exp (`%%`_fieldtype(?(`MUT`_mut), zt))] -[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt)] -[visit_exp (?(`MUT`_mut), zt)] -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp zt] -[visit_id zt] not free -[check_dims] C mut x_1 x_2 zt_1 zt_2 -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1)) `I32`_valtype `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2)) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1)) `I32`_valtype `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2)) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1)) `I32`_valtype `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2)) `I32`_valtype `I32`_valtype])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1)) `I32`_valtype `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2)) `I32`_valtype `I32`_valtype])] -[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1)) `I32`_valtype `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2)) `I32`_valtype `I32`_valtype]] -[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1))] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x_1))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `_IDX`_heaptype(x_1)] -[visit_exp (x_1)] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2))] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x_2))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `_IDX`_heaptype(x_2)] -[visit_exp (x_2)] -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`TYPES`_context[x_1!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt_1)))] -[visit_exp C.`TYPES`_context[x_1!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x_1!`%`_idx.0] -[visit_exp x_1!`%`_idx] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt_1))] -[visit_exp (`%%`_fieldtype(?(`MUT`_mut), zt_1))] -[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt_1)] -[visit_exp (?(`MUT`_mut), zt_1)] -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp zt_1] -[visit_id zt_1] -[visit_exp (C.`TYPES`_context[x_2!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2)))] -[visit_exp C.`TYPES`_context[x_2!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x_2!`%`_idx.0] -[visit_exp x_2!`%`_idx] -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt_2)] -[visit_exp (mut?{mut <- `mut?`}, zt_2)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt_2] -[visit_id zt_2] -[visit_exp (C, zt_2, zt_1)] -[visit_exp C] -[visit_id C] not free -[visit_exp zt_2] -[visit_id zt_2] not free -[visit_exp zt_1] -[visit_id zt_1] not free -[check_dims] C x y zt -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] -[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]] -[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt)))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))] -[visit_exp (`%%`_fieldtype(?(`MUT`_mut), zt))] -[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt)] -[visit_exp (?(`MUT`_mut), zt)] -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp zt] -[visit_id zt] -[visit_exp (C, (C.`ELEMS`_context[y!`%`_idx.0] : reftype <: storagetype), zt)] -[visit_exp C] -[visit_id C] not free -[visit_exp (C.`ELEMS`_context[y!`%`_idx.0] : reftype <: storagetype)] -[visit_exp C.`ELEMS`_context[y!`%`_idx.0]] -[visit_exp C.`ELEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp y!`%`_idx.0] -[visit_exp y!`%`_idx] -[visit_exp y] -[visit_id y] not free -[visit_exp zt] -[visit_id zt] not free -[check_dims] C numtype vectype x y zt -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] -[visit_exp ([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype])] -[visit_exp [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]] -[visit_exp `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp (?(`NULL`_null), `_IDX`_heaptype(x))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt)))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))] -[visit_exp (`%%`_fieldtype(?(`MUT`_mut), zt))] -[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt)] -[visit_exp (?(`MUT`_mut), zt)] -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp zt] -[visit_id zt] -[visit_exp (($unpack(zt) = (numtype : numtype <: valtype)) \/ ($unpack(zt) = (vectype : vectype <: valtype)))] -[visit_exp ($unpack(zt) = (numtype : numtype <: valtype))] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp (numtype : numtype <: valtype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp ($unpack(zt) = (vectype : vectype <: valtype))] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp (vectype : vectype <: valtype)] -[visit_exp vectype] -[visit_id vectype] -[visit_exp (C.`DATAS`_context[y!`%`_idx.0] = `OK`_datatype)] -[visit_exp C.`DATAS`_context[y!`%`_idx.0]] -[visit_exp C.`DATAS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp y!`%`_idx.0] -[visit_exp y!`%`_idx] -[visit_exp y] -[visit_id y] not free -[visit_exp `OK`_datatype] -[visit_exp ()] -[check_dims] C null_1 null_2 -[visit_exp C] -[visit_id C] -[visit_exp `EXTERN.CONVERT_ANY`_instr] -[visit_exp ()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]), [], `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]))] -[visit_exp (`%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]), [], `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]))] -[visit_exp `%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)])] -[visit_exp ([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)])] -[visit_exp [`REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]] -[visit_exp `REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)] -[visit_exp (null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)] -[visit_exp null_1?{null_1 <- `null_1?`}] -[scope_enter null_1] -[visit_exp null_1] -[visit_id null_1] not free -[visit_id null_1] not free -[scope_exit null_1] -[visit_exp `null_1?`] -[visit_id null_1?] no dims -[visit_id null_1?] -[visit_exp `ANY`_heaptype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)])] -[visit_exp ([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)])] -[visit_exp [`REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]] -[visit_exp `REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)] -[visit_exp (null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)] -[visit_exp null_2?{null_2 <- `null_2?`}] -[scope_enter null_2] -[visit_exp null_2] -[visit_id null_2] not free -[visit_id null_2] not free -[scope_exit null_2] -[visit_exp `null_2?`] -[visit_id null_2?] no dims -[visit_id null_2?] -[visit_exp `EXTERN`_heaptype] -[visit_exp ()] -[visit_exp (null_1?{null_1 <- `null_1?`} = null_2?{null_2 <- `null_2?`})] -[visit_exp null_1?{null_1 <- `null_1?`}] -[scope_enter null_1] -[visit_exp null_1] -[visit_id null_1] not free -[visit_id null_1] not free -[scope_exit null_1] -[visit_exp `null_1?`] -[visit_id null_1?] not free -[visit_id null_1?] no dims -[visit_exp null_2?{null_2 <- `null_2?`}] -[scope_enter null_2] -[visit_exp null_2] -[visit_id null_2] not free -[visit_id null_2] not free -[scope_exit null_2] -[visit_exp `null_2?`] -[visit_id null_2?] not free -[visit_id null_2?] no dims -[check_dims] C null_1 null_2 -[visit_exp C] -[visit_id C] -[visit_exp `ANY.CONVERT_EXTERN`_instr] -[visit_exp ()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]), [], `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]))] -[visit_exp (`%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]), [], `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]))] -[visit_exp `%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)])] -[visit_exp ([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)])] -[visit_exp [`REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]] -[visit_exp `REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)] -[visit_exp (null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)] -[visit_exp null_1?{null_1 <- `null_1?`}] -[scope_enter null_1] -[visit_exp null_1] -[visit_id null_1] not free -[visit_id null_1] not free -[scope_exit null_1] -[visit_exp `null_1?`] -[visit_id null_1?] no dims -[visit_id null_1?] -[visit_exp `EXTERN`_heaptype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)])] -[visit_exp ([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)])] -[visit_exp [`REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]] -[visit_exp `REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)] -[visit_exp (null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)] -[visit_exp null_2?{null_2 <- `null_2?`}] -[scope_enter null_2] -[visit_exp null_2] -[visit_id null_2] not free -[visit_id null_2] not free -[scope_exit null_2] -[visit_exp `null_2?`] -[visit_id null_2?] no dims -[visit_id null_2?] -[visit_exp `ANY`_heaptype] -[visit_exp ()] -[visit_exp (null_1?{null_1 <- `null_1?`} = null_2?{null_2 <- `null_2?`})] -[visit_exp null_1?{null_1 <- `null_1?`}] -[scope_enter null_1] -[visit_exp null_1] -[visit_id null_1] not free -[visit_id null_1] not free -[scope_exit null_1] -[visit_exp `null_1?`] -[visit_id null_1?] not free -[visit_id null_1?] no dims -[visit_exp null_2?{null_2 <- `null_2?`}] -[scope_enter null_2] -[visit_exp null_2] -[visit_id null_2] not free -[visit_id null_2] not free -[scope_exit null_2] -[visit_exp `null_2?`] -[visit_id null_2?] not free -[visit_id null_2?] no dims -[check_dims] C t x -[visit_exp C] -[visit_id C] -[visit_exp `LOCAL.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([t]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([t])] -[visit_exp ([t])] -[visit_exp [t]] -[visit_exp t] -[visit_id t] -[visit_exp (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(`SET`_init, t))] -[visit_exp C.`LOCALS`_context[x!`%`_idx.0]] -[visit_exp C.`LOCALS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%`_localtype(`SET`_init, t)] -[visit_exp (`SET`_init, t)] -[visit_exp `SET`_init] -[visit_exp ()] -[visit_exp t] -[visit_id t] not free -[check_dims] C init t x -[visit_exp C] -[visit_id C] -[visit_exp `LOCAL.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([t]), [x], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([t]), [x], `%`_resulttype([]))] -[visit_exp `%`_resulttype([t])] -[visit_exp ([t])] -[visit_exp [t]] -[visit_exp t] -[visit_id t] -[visit_exp [x]] -[visit_exp x] -[visit_id x] not free -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(init, t))] -[visit_exp C.`LOCALS`_context[x!`%`_idx.0]] -[visit_exp C.`LOCALS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%`_localtype(init, t)] -[visit_exp (init, t)] -[visit_exp init] -[visit_id init] -[visit_exp t] -[visit_id t] not free -[check_dims] C init t x -[visit_exp C] -[visit_id C] -[visit_exp `LOCAL.TEE`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([t]), [x], `%`_resulttype([t]))] -[visit_exp (`%`_resulttype([t]), [x], `%`_resulttype([t]))] -[visit_exp `%`_resulttype([t])] -[visit_exp ([t])] -[visit_exp [t]] -[visit_exp t] -[visit_id t] -[visit_exp [x]] -[visit_exp x] -[visit_id x] not free -[visit_exp `%`_resulttype([t])] -[visit_exp ([t])] -[visit_exp [t]] -[visit_exp t] -[visit_id t] not free -[visit_exp (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(init, t))] -[visit_exp C.`LOCALS`_context[x!`%`_idx.0]] -[visit_exp C.`LOCALS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%`_localtype(init, t)] -[visit_exp (init, t)] -[visit_exp init] -[visit_id init] -[visit_exp t] -[visit_id t] not free -[check_dims] C mut t x -[visit_exp C] -[visit_id C] -[visit_exp `GLOBAL.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([t]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([t])] -[visit_exp ([t])] -[visit_exp [t]] -[visit_exp t] -[visit_id t] -[visit_exp (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(mut?{mut <- `mut?`}, t))] -[visit_exp C.`GLOBALS`_context[x!`%`_idx.0]] -[visit_exp C.`GLOBALS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%`_globaltype(mut?{mut <- `mut?`}, t)] -[visit_exp (mut?{mut <- `mut?`}, t)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp t] -[visit_id t] not free -[check_dims] C t x -[visit_exp C] -[visit_id C] -[visit_exp `GLOBAL.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([t]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([t]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([t])] -[visit_exp ([t])] -[visit_exp [t]] -[visit_exp t] -[visit_id t] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(?(`MUT`_mut), t))] -[visit_exp C.`GLOBALS`_context[x!`%`_idx.0]] -[visit_exp C.`GLOBALS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%`_globaltype(?(`MUT`_mut), t)] -[visit_exp (?(`MUT`_mut), t)] -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp t] -[visit_id t] not free -[check_dims] C at lim rt x -[visit_exp C] -[visit_id C] -[visit_exp `TABLE.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp []] -[visit_exp `%`_resulttype([(rt : reftype <: valtype)])] -[visit_exp ([(rt : reftype <: valtype)])] -[visit_exp [(rt : reftype <: valtype)]] -[visit_exp (rt : reftype <: valtype)] -[visit_exp rt] -[visit_id rt] -[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] -[visit_exp C.`TABLES`_context[x!`%`_idx.0]] -[visit_exp C.`TABLES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%%`_tabletype(at, lim, rt)] -[visit_exp (at, lim, rt)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp rt] -[visit_id rt] not free -[check_dims] C at lim rt x -[visit_exp C] -[visit_id C] -[visit_exp `TABLE.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype)]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype)]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype) (rt : reftype <: valtype)])] -[visit_exp [(at : addrtype <: valtype) (rt : reftype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp (rt : reftype <: valtype)] -[visit_exp rt] -[visit_id rt] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] -[visit_exp C.`TABLES`_context[x!`%`_idx.0]] -[visit_exp C.`TABLES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%%`_tabletype(at, lim, rt)] -[visit_exp (at, lim, rt)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp rt] -[visit_id rt] not free -[check_dims] C at lim rt x -[visit_exp C] -[visit_id C] -[visit_exp `TABLE.SIZE`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] -[visit_exp C.`TABLES`_context[x!`%`_idx.0]] -[visit_exp C.`TABLES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%%`_tabletype(at, lim, rt)] -[visit_exp (at, lim, rt)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp rt] -[visit_id rt] -[check_dims] C at lim rt x -[visit_exp C] -[visit_id C] -[visit_exp `TABLE.GROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp (`%`_resulttype([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp `%`_resulttype([(rt : reftype <: valtype) (at : addrtype <: valtype)])] -[visit_exp ([(rt : reftype <: valtype) (at : addrtype <: valtype)])] -[visit_exp [(rt : reftype <: valtype) (at : addrtype <: valtype)]] -[visit_exp (rt : reftype <: valtype)] -[visit_exp rt] -[visit_id rt] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp []] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] -[visit_exp C.`TABLES`_context[x!`%`_idx.0]] -[visit_exp C.`TABLES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%%`_tabletype(at, lim, rt)] -[visit_exp (at, lim, rt)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp rt] -[visit_id rt] not free -[check_dims] C at lim rt x -[visit_exp C] -[visit_id C] -[visit_exp `TABLE.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp (rt : reftype <: valtype)] -[visit_exp rt] -[visit_id rt] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt))] -[visit_exp C.`TABLES`_context[x!`%`_idx.0]] -[visit_exp C.`TABLES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%%`_tabletype(at, lim, rt)] -[visit_exp (at, lim, rt)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp rt] -[visit_id rt] not free -[check_dims] C at_1 at_2 lim_1 lim_2 rt_1 rt_2 x_1 x_2 -[visit_exp C] -[visit_id C] -[visit_exp `TABLE.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] -[visit_exp ([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] -[visit_exp [(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]] -[visit_exp (at_1 : addrtype <: valtype)] -[visit_exp at_1] -[visit_id at_1] -[visit_exp (at_2 : addrtype <: valtype)] -[visit_exp at_2] -[visit_id at_2] -[visit_exp ($minat(at_1, at_2) : addrtype <: valtype)] -[visit_exp $minat(at_1, at_2)] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp at_2] -[visit_id at_2] not free -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`TABLES`_context[x_1!`%`_idx.0] = `%%%`_tabletype(at_1, lim_1, rt_1))] -[visit_exp C.`TABLES`_context[x_1!`%`_idx.0]] -[visit_exp C.`TABLES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x_1!`%`_idx.0] -[visit_exp x_1!`%`_idx] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp `%%%`_tabletype(at_1, lim_1, rt_1)] -[visit_exp (at_1, lim_1, rt_1)] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp lim_1] -[visit_id lim_1] -[visit_exp rt_1] -[visit_id rt_1] -[visit_exp (C.`TABLES`_context[x_2!`%`_idx.0] = `%%%`_tabletype(at_2, lim_2, rt_2))] -[visit_exp C.`TABLES`_context[x_2!`%`_idx.0]] -[visit_exp C.`TABLES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x_2!`%`_idx.0] -[visit_exp x_2!`%`_idx] -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp `%%%`_tabletype(at_2, lim_2, rt_2)] -[visit_exp (at_2, lim_2, rt_2)] -[visit_exp at_2] -[visit_id at_2] not free -[visit_exp lim_2] -[visit_id lim_2] -[visit_exp rt_2] -[visit_id rt_2] -[visit_exp (C, rt_2, rt_1)] -[visit_exp C] -[visit_id C] not free -[visit_exp rt_2] -[visit_id rt_2] not free -[visit_exp rt_1] -[visit_id rt_1] not free -[check_dims] C at lim rt_1 rt_2 x y -[visit_exp C] -[visit_id C] -[visit_exp `TABLE.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] -[visit_exp ([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] -[visit_exp [(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt_1))] -[visit_exp C.`TABLES`_context[x!`%`_idx.0]] -[visit_exp C.`TABLES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%%`_tabletype(at, lim, rt_1)] -[visit_exp (at, lim, rt_1)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp rt_1] -[visit_id rt_1] -[visit_exp (C.`ELEMS`_context[y!`%`_idx.0] = rt_2)] -[visit_exp C.`ELEMS`_context[y!`%`_idx.0]] -[visit_exp C.`ELEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp y!`%`_idx.0] -[visit_exp y!`%`_idx] -[visit_exp y] -[visit_id y] not free -[visit_exp rt_2] -[visit_id rt_2] -[visit_exp (C, rt_2, rt_1)] -[visit_exp C] -[visit_id C] not free -[visit_exp rt_2] -[visit_id rt_2] not free -[visit_exp rt_1] -[visit_id rt_1] not free -[check_dims] C rt x -[visit_exp C] -[visit_id C] -[visit_exp `ELEM.DROP`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`ELEMS`_context[x!`%`_idx.0] = rt)] -[visit_exp C.`ELEMS`_context[x!`%`_idx.0]] -[visit_exp C.`ELEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp rt] -[visit_id rt] -[check_dims] -[check_dims] N at m n -[visit_exp {`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)}] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] -[visit_exp at] -[visit_id at] -[visit_exp N] -[visit_id N] -[visit_exp (((2 ^ n) : nat <:> rat) <= ((N : nat <:> rat) / (8 : nat <:> rat)))] -[visit_exp ((2 ^ n) : nat <:> rat)] -[visit_exp (2 ^ n)] -[visit_exp 2] -[visit_exp n] -[visit_id n] not free -[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp (m < (2 ^ $size((at : addrtype <: numtype))))] -[visit_exp m] -[visit_id m] not free -[visit_exp (2 ^ $size((at : addrtype <: numtype)))] -[visit_exp 2] -[visit_exp $size((at : addrtype <: numtype))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[check_dims] C at lim x -[visit_exp C] -[visit_id C] -[visit_exp `MEMORY.SIZE`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[check_dims] C at lim x -[visit_exp C] -[visit_id C] -[visit_exp `MEMORY.GROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(at : addrtype <: valtype)]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(at : addrtype <: valtype)]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp []] -[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[check_dims] C at lim x -[visit_exp C] -[visit_id C] -[visit_exp `MEMORY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[check_dims] C at_1 at_2 lim_1 lim_2 x_1 x_2 -[visit_exp C] -[visit_id C] -[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] -[visit_exp ([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)])] -[visit_exp [(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]] -[visit_exp (at_1 : addrtype <: valtype)] -[visit_exp at_1] -[visit_id at_1] -[visit_exp (at_2 : addrtype <: valtype)] -[visit_exp at_2] -[visit_id at_2] -[visit_exp ($minat(at_1, at_2) : addrtype <: valtype)] -[visit_exp $minat(at_1, at_2)] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp at_2] -[visit_id at_2] not free -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`MEMS`_context[x_1!`%`_idx.0] = `%%PAGE`_memtype(at_1, lim_1))] -[visit_exp C.`MEMS`_context[x_1!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x_1!`%`_idx.0] -[visit_exp x_1!`%`_idx] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp `%%PAGE`_memtype(at_1, lim_1)] -[visit_exp (at_1, lim_1)] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp lim_1] -[visit_id lim_1] -[visit_exp (C.`MEMS`_context[x_2!`%`_idx.0] = `%%PAGE`_memtype(at_2, lim_2))] -[visit_exp C.`MEMS`_context[x_2!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x_2!`%`_idx.0] -[visit_exp x_2!`%`_idx] -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp `%%PAGE`_memtype(at_2, lim_2)] -[visit_exp (at_2, lim_2)] -[visit_exp at_2] -[visit_id at_2] not free -[visit_exp lim_2] -[visit_id lim_2] -[check_dims] C at lim x y -[visit_exp C] -[visit_id C] -[visit_exp `MEMORY.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] -[visit_exp ([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype])] -[visit_exp [(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp (C.`DATAS`_context[y!`%`_idx.0] = `OK`_datatype)] -[visit_exp C.`DATAS`_context[y!`%`_idx.0]] -[visit_exp C.`DATAS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp y!`%`_idx.0] -[visit_exp y!`%`_idx] -[visit_exp y] -[visit_id y] not free -[visit_exp `OK`_datatype] -[visit_exp ()] -[check_dims] C x -[visit_exp C] -[visit_id C] -[visit_exp `DATA.DROP`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`DATAS`_context[x!`%`_idx.0] = `OK`_datatype)] -[visit_exp C.`DATAS`_context[x!`%`_idx.0]] -[visit_exp C.`DATAS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `OK`_datatype] -[visit_exp ()] -[check_dims] C at lim memarg nt x -[visit_exp C] -[visit_id C] -[visit_exp `LOAD`_instr(nt, ?(), x, memarg)] -[visit_exp (nt, ?(), x, memarg)] -[visit_exp nt] -[visit_id nt] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp memarg] -[visit_id memarg] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp []] -[visit_exp `%`_resulttype([(nt : numtype <: valtype)])] -[visit_exp ([(nt : numtype <: valtype)])] -[visit_exp [(nt : numtype <: valtype)]] -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp (memarg, at, $size(nt))] -[visit_exp memarg] -[visit_id memarg] not free -[visit_exp at] -[visit_id at] not free -[visit_exp $size(nt)] -[visit_exp nt] -[visit_id nt] not free -[check_dims] C Inn M at lim memarg sx x -[visit_exp C] -[visit_id C] -[visit_exp `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(M), sx)), x, memarg)] -[visit_exp ((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(M), sx)), x, memarg)] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp ?(`%_%`_loadop_(`%`_sz(M), sx))] -[visit_exp `%_%`_loadop_(`%`_sz(M), sx)] -[visit_exp (`%`_sz(M), sx)] -[visit_exp `%`_sz(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp sx] -[visit_id sx] -[visit_exp x] -[visit_id x] -[visit_exp memarg] -[visit_id memarg] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(Inn : Inn <: valtype)]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(Inn : Inn <: valtype)]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp []] -[visit_exp `%`_resulttype([(Inn : Inn <: valtype)])] -[visit_exp ([(Inn : Inn <: valtype)])] -[visit_exp [(Inn : Inn <: valtype)]] -[visit_exp (Inn : Inn <: valtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp (memarg, at, M)] -[visit_exp memarg] -[visit_id memarg] not free -[visit_exp at] -[visit_id at] not free -[visit_exp M] -[visit_id M] not free -[check_dims] C at lim memarg nt x -[visit_exp C] -[visit_id C] -[visit_exp `STORE`_instr(nt, ?(), x, memarg)] -[visit_exp (nt, ?(), x, memarg)] -[visit_exp nt] -[visit_id nt] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp memarg] -[visit_id memarg] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype) (nt : numtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype) (nt : numtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype) (nt : numtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp (memarg, at, $size(nt))] -[visit_exp memarg] -[visit_id memarg] not free -[visit_exp at] -[visit_id at] not free -[visit_exp $size(nt)] -[visit_exp nt] -[visit_id nt] not free -[check_dims] C Inn M at lim memarg x -[visit_exp C] -[visit_id C] -[visit_exp `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(M))), x, memarg)] -[visit_exp ((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(M))), x, memarg)] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp ?(`%`_storeop_(`%`_sz(M)))] -[visit_exp `%`_storeop_(`%`_sz(M))] -[visit_exp (`%`_sz(M))] -[visit_exp `%`_sz(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp x] -[visit_id x] -[visit_exp memarg] -[visit_id memarg] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype) (Inn : Inn <: valtype)])] -[visit_exp ([(at : addrtype <: valtype) (Inn : Inn <: valtype)])] -[visit_exp [(at : addrtype <: valtype) (Inn : Inn <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp (Inn : Inn <: valtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp (memarg, at, M)] -[visit_exp memarg] -[visit_id memarg] not free -[visit_exp at] -[visit_id at] not free -[visit_exp M] -[visit_id M] not free -[check_dims] C at lim memarg x -[visit_exp C] -[visit_id C] -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(), x, memarg)] -[visit_exp (`V128`_vectype, ?(), x, memarg)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp memarg] -[visit_id memarg] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp (memarg, at, $vsize(`V128`_vectype))] -[visit_exp memarg] -[visit_id memarg] not free -[visit_exp at] -[visit_id at] not free -[visit_exp $vsize(`V128`_vectype)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[check_dims] C M N at lim memarg sx x -[visit_exp C] -[visit_id C] -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), N, sx)), x, memarg)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), N, sx)), x, memarg)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), N, sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(M), N, sx)] -[visit_exp (`%`_sz(M), N, sx)] -[visit_exp `%`_sz(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp N] -[visit_id N] -[visit_exp sx] -[visit_id sx] -[visit_exp x] -[visit_id x] -[visit_exp memarg] -[visit_id memarg] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp (memarg, at, (M * N))] -[visit_exp memarg] -[visit_id memarg] not free -[visit_exp at] -[visit_id at] not free -[visit_exp (M * N)] -[visit_exp M] -[visit_id M] not free -[visit_exp N] -[visit_id N] not free -[check_dims] C N at lim memarg x -[visit_exp C] -[visit_id C] -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, memarg)] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, memarg)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(N)))] -[visit_exp `SPLAT`_vloadop_(`%`_sz(N))] -[visit_exp (`%`_sz(N))] -[visit_exp `%`_sz(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp x] -[visit_id x] -[visit_exp memarg] -[visit_id memarg] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp (memarg, at, N)] -[visit_exp memarg] -[visit_id memarg] not free -[visit_exp at] -[visit_id at] not free -[visit_exp N] -[visit_id N] not free -[check_dims] C N at lim memarg x -[visit_exp C] -[visit_id C] -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, memarg)] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, memarg)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_(`%`_sz(N)))] -[visit_exp `ZERO`_vloadop_(`%`_sz(N))] -[visit_exp (`%`_sz(N))] -[visit_exp `%`_sz(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp x] -[visit_id x] -[visit_exp memarg] -[visit_id memarg] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype)])] -[visit_exp ([(at : addrtype <: valtype)])] -[visit_exp [(at : addrtype <: valtype)]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp (memarg, at, N)] -[visit_exp memarg] -[visit_id memarg] not free -[visit_exp at] -[visit_id at] not free -[visit_exp N] -[visit_id N] not free -[check_dims] C N at i lim memarg x -[visit_exp C] -[visit_id C] -[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, memarg, i)] -[visit_exp (`V128`_vectype, `%`_sz(N), x, memarg, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp x] -[visit_id x] -[visit_exp memarg] -[visit_id memarg] -[visit_exp i] -[visit_id i] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype) `V128`_valtype])] -[visit_exp ([(at : addrtype <: valtype) `V128`_valtype])] -[visit_exp [(at : addrtype <: valtype) `V128`_valtype]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp (memarg, at, N)] -[visit_exp memarg] -[visit_id memarg] not free -[visit_exp at] -[visit_id at] not free -[visit_exp N] -[visit_id N] not free -[visit_exp ((i!`%`_laneidx.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat)))] -[visit_exp (i!`%`_laneidx.0 : nat <:> rat)] -[visit_exp i!`%`_laneidx.0] -[visit_exp i!`%`_laneidx] -[visit_exp i] -[visit_id i] not free -[visit_exp ((128 : nat <:> rat) / (N : nat <:> rat))] -[visit_exp (128 : nat <:> rat)] -[visit_exp 128] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[check_dims] C at lim memarg x -[visit_exp C] -[visit_id C] -[visit_exp `VSTORE`_instr(`V128`_vectype, x, memarg)] -[visit_exp (`V128`_vectype, x, memarg)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp memarg] -[visit_id memarg] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype) `V128`_valtype])] -[visit_exp ([(at : addrtype <: valtype) `V128`_valtype])] -[visit_exp [(at : addrtype <: valtype) `V128`_valtype]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp (memarg, at, $vsize(`V128`_vectype))] -[visit_exp memarg] -[visit_id memarg] not free -[visit_exp at] -[visit_id at] not free -[visit_exp $vsize(`V128`_vectype)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[check_dims] C N at i lim memarg x -[visit_exp C] -[visit_id C] -[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, memarg, i)] -[visit_exp (`V128`_vectype, `%`_sz(N), x, memarg, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp x] -[visit_id x] -[visit_exp memarg] -[visit_id memarg] -[visit_exp i] -[visit_id i] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([(at : addrtype <: valtype) `V128`_valtype])] -[visit_exp ([(at : addrtype <: valtype) `V128`_valtype])] -[visit_exp [(at : addrtype <: valtype) `V128`_valtype]] -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp (memarg, at, N)] -[visit_exp memarg] -[visit_id memarg] not free -[visit_exp at] -[visit_id at] not free -[visit_exp N] -[visit_id N] not free -[visit_exp ((i!`%`_laneidx.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat)))] -[visit_exp (i!`%`_laneidx.0 : nat <:> rat)] -[visit_exp i!`%`_laneidx.0] -[visit_exp i!`%`_laneidx] -[visit_exp i] -[visit_id i] not free -[visit_exp ((128 : nat <:> rat) / (N : nat <:> rat))] -[visit_exp (128 : nat <:> rat)] -[visit_exp 128] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[check_dims] C c_nt nt -[visit_exp C] -[visit_id C] -[visit_exp `CONST`_instr(nt, c_nt)] -[visit_exp (nt, c_nt)] -[visit_exp nt] -[visit_id nt] -[visit_exp c_nt] -[visit_id c_nt] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(nt : numtype <: valtype)]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([(nt : numtype <: valtype)]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([(nt : numtype <: valtype)])] -[visit_exp ([(nt : numtype <: valtype)])] -[visit_exp [(nt : numtype <: valtype)]] -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] not free -[check_dims] C nt unop_nt -[visit_exp C] -[visit_id C] -[visit_exp `UNOP`_instr(nt, unop_nt)] -[visit_exp (nt, unop_nt)] -[visit_exp nt] -[visit_id nt] -[visit_exp unop_nt] -[visit_id unop_nt] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))] -[visit_exp (`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))] -[visit_exp `%`_resulttype([(nt : numtype <: valtype)])] -[visit_exp ([(nt : numtype <: valtype)])] -[visit_exp [(nt : numtype <: valtype)]] -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp []] -[visit_exp `%`_resulttype([(nt : numtype <: valtype)])] -[visit_exp ([(nt : numtype <: valtype)])] -[visit_exp [(nt : numtype <: valtype)]] -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] not free -[check_dims] C binop_nt nt -[visit_exp C] -[visit_id C] -[visit_exp `BINOP`_instr(nt, binop_nt)] -[visit_exp (nt, binop_nt)] -[visit_exp nt] -[visit_id nt] -[visit_exp binop_nt] -[visit_id binop_nt] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))] -[visit_exp (`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))] -[visit_exp `%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)])] -[visit_exp ([(nt : numtype <: valtype) (nt : numtype <: valtype)])] -[visit_exp [(nt : numtype <: valtype) (nt : numtype <: valtype)]] -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp []] -[visit_exp `%`_resulttype([(nt : numtype <: valtype)])] -[visit_exp ([(nt : numtype <: valtype)])] -[visit_exp [(nt : numtype <: valtype)]] -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] not free -[check_dims] C nt testop_nt -[visit_exp C] -[visit_id C] -[visit_exp `TESTOP`_instr(nt, testop_nt)] -[visit_exp (nt, testop_nt)] -[visit_exp nt] -[visit_id nt] -[visit_exp testop_nt] -[visit_id testop_nt] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp (`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp `%`_resulttype([(nt : numtype <: valtype)])] -[visit_exp ([(nt : numtype <: valtype)])] -[visit_exp [(nt : numtype <: valtype)]] -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp []] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[check_dims] C nt relop_nt -[visit_exp C] -[visit_id C] -[visit_exp `RELOP`_instr(nt, relop_nt)] -[visit_exp (nt, relop_nt)] -[visit_exp nt] -[visit_id nt] -[visit_exp relop_nt] -[visit_id relop_nt] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp (`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp `%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)])] -[visit_exp ([(nt : numtype <: valtype) (nt : numtype <: valtype)])] -[visit_exp [(nt : numtype <: valtype) (nt : numtype <: valtype)]] -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp []] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[check_dims] C cvtop nt_1 nt_2 -[visit_exp C] -[visit_id C] -[visit_exp `CVTOP`_instr(nt_1, nt_2, cvtop)] -[visit_exp (nt_1, nt_2, cvtop)] -[visit_exp nt_1] -[visit_id nt_1] -[visit_exp nt_2] -[visit_id nt_2] -[visit_exp cvtop] -[visit_id cvtop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([(nt_2 : numtype <: valtype)]), [], `%`_resulttype([(nt_1 : numtype <: valtype)]))] -[visit_exp (`%`_resulttype([(nt_2 : numtype <: valtype)]), [], `%`_resulttype([(nt_1 : numtype <: valtype)]))] -[visit_exp `%`_resulttype([(nt_2 : numtype <: valtype)])] -[visit_exp ([(nt_2 : numtype <: valtype)])] -[visit_exp [(nt_2 : numtype <: valtype)]] -[visit_exp (nt_2 : numtype <: valtype)] -[visit_exp nt_2] -[visit_id nt_2] not free -[visit_exp []] -[visit_exp `%`_resulttype([(nt_1 : numtype <: valtype)])] -[visit_exp ([(nt_1 : numtype <: valtype)])] -[visit_exp [(nt_1 : numtype <: valtype)]] -[visit_exp (nt_1 : numtype <: valtype)] -[visit_exp nt_1] -[visit_id nt_1] not free -[check_dims] C c -[visit_exp C] -[visit_id C] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C vvunop -[visit_exp C] -[visit_id C] -[visit_exp `VVUNOP`_instr(`V128`_vectype, vvunop)] -[visit_exp (`V128`_vectype, vvunop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp vvunop] -[visit_id vvunop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C vvbinop -[visit_exp C] -[visit_id C] -[visit_exp `VVBINOP`_instr(`V128`_vectype, vvbinop)] -[visit_exp (`V128`_vectype, vvbinop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp vvbinop] -[visit_id vvbinop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] -[visit_exp ([`V128`_valtype `V128`_valtype])] -[visit_exp [`V128`_valtype `V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C vvternop -[visit_exp C] -[visit_id C] -[visit_exp `VVTERNOP`_instr(`V128`_vectype, vvternop)] -[visit_exp (`V128`_vectype, vvternop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp vvternop] -[visit_id vvternop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype])] -[visit_exp ([`V128`_valtype `V128`_valtype `V128`_valtype])] -[visit_exp [`V128`_valtype `V128`_valtype `V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C vvtestop -[visit_exp C] -[visit_id C] -[visit_exp `VVTESTOP`_instr(`V128`_vectype, vvtestop)] -[visit_exp (`V128`_vectype, vvtestop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp vvtestop] -[visit_id vvtestop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[check_dims] C sh vunop -[visit_exp C] -[visit_id C] -[visit_exp `VUNOP`_instr(sh, vunop)] -[visit_exp (sh, vunop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vunop] -[visit_id vunop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C sh vbinop -[visit_exp C] -[visit_id C] -[visit_exp `VBINOP`_instr(sh, vbinop)] -[visit_exp (sh, vbinop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vbinop] -[visit_id vbinop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] -[visit_exp ([`V128`_valtype `V128`_valtype])] -[visit_exp [`V128`_valtype `V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C sh vternop -[visit_exp C] -[visit_id C] -[visit_exp `VTERNOP`_instr(sh, vternop)] -[visit_exp (sh, vternop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vternop] -[visit_id vternop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype])] -[visit_exp ([`V128`_valtype `V128`_valtype `V128`_valtype])] -[visit_exp [`V128`_valtype `V128`_valtype `V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C sh vtestop -[visit_exp C] -[visit_id C] -[visit_exp `VTESTOP`_instr(sh, vtestop)] -[visit_exp (sh, vtestop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vtestop] -[visit_id vtestop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[check_dims] C sh vrelop -[visit_exp C] -[visit_id C] -[visit_exp `VRELOP`_instr(sh, vrelop)] -[visit_exp (sh, vrelop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vrelop] -[visit_id vrelop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] -[visit_exp ([`V128`_valtype `V128`_valtype])] -[visit_exp [`V128`_valtype `V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C sh vshiftop -[visit_exp C] -[visit_id C] -[visit_exp `VSHIFTOP`_instr(sh, vshiftop)] -[visit_exp (sh, vshiftop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vshiftop] -[visit_id vshiftop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `I32`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype `I32`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype `I32`_valtype])] -[visit_exp ([`V128`_valtype `I32`_valtype])] -[visit_exp [`V128`_valtype `I32`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C sh -[visit_exp C] -[visit_id C] -[visit_exp `VBITMASK`_instr(sh)] -[visit_exp (sh)] -[visit_exp sh] -[visit_id sh] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[check_dims] C sh vswizzlop -[visit_exp C] -[visit_id C] -[visit_exp `VSWIZZLOP`_instr(sh, vswizzlop)] -[visit_exp (sh, vswizzlop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vswizzlop] -[visit_id vswizzlop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] -[visit_exp ([`V128`_valtype `V128`_valtype])] -[visit_exp [`V128`_valtype `V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C i sh -[visit_exp C] -[visit_id C] -[visit_exp `VSHUFFLE`_instr(sh, i*{i <- `i*`})] -[visit_exp (sh, i*{i <- `i*`})] -[visit_exp sh] -[visit_id sh] -[visit_exp i*{i <- `i*`}] -[scope_enter i] -[visit_exp i] -[visit_id i] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] no dims -[visit_id i*] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] -[visit_exp ([`V128`_valtype `V128`_valtype])] -[visit_exp [`V128`_valtype `V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[scope_enter i] -[visit_exp (i!`%`_laneidx.0 < (2 * $dim(sh!`%`_bshape.0)!`%`_dim.0))] -[visit_exp i!`%`_laneidx.0] -[visit_exp i!`%`_laneidx] -[visit_exp i] -[visit_id i] not free -[visit_exp (2 * $dim(sh!`%`_bshape.0)!`%`_dim.0)] -[visit_exp 2] -[visit_exp $dim(sh!`%`_bshape.0)!`%`_dim.0] -[visit_exp $dim(sh!`%`_bshape.0)!`%`_dim] -[visit_exp $dim(sh!`%`_bshape.0)] -[visit_exp sh!`%`_bshape.0] -[visit_exp sh!`%`_bshape] -[visit_exp sh] -[visit_id sh] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] not free -[visit_id i*] no dims -[check_dims] C sh -[visit_exp C] -[visit_id C] -[visit_exp `VSPLAT`_instr(sh)] -[visit_exp (sh)] -[visit_exp sh] -[visit_id sh] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([($unpackshape(sh) : numtype <: valtype)])] -[visit_exp ([($unpackshape(sh) : numtype <: valtype)])] -[visit_exp [($unpackshape(sh) : numtype <: valtype)]] -[visit_exp ($unpackshape(sh) : numtype <: valtype)] -[visit_exp $unpackshape(sh)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C i sh sx -[visit_exp C] -[visit_id C] -[visit_exp `VEXTRACT_LANE`_instr(sh, sx?{sx <- `sx?`}, i)] -[visit_exp (sh, sx?{sx <- `sx?`}, i)] -[visit_exp sh] -[visit_id sh] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] no dims -[visit_id sx?] -[visit_exp i] -[visit_id i] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([($unpackshape(sh) : numtype <: valtype)]))] -[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([($unpackshape(sh) : numtype <: valtype)]))] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([($unpackshape(sh) : numtype <: valtype)])] -[visit_exp ([($unpackshape(sh) : numtype <: valtype)])] -[visit_exp [($unpackshape(sh) : numtype <: valtype)]] -[visit_exp ($unpackshape(sh) : numtype <: valtype)] -[visit_exp $unpackshape(sh)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp (i!`%`_laneidx.0 < $dim(sh)!`%`_dim.0)] -[visit_exp i!`%`_laneidx.0] -[visit_exp i!`%`_laneidx] -[visit_exp i] -[visit_id i] not free -[visit_exp $dim(sh)!`%`_dim.0] -[visit_exp $dim(sh)!`%`_dim] -[visit_exp $dim(sh)] -[visit_exp sh] -[visit_id sh] not free -[check_dims] C i sh -[visit_exp C] -[visit_id C] -[visit_exp `VREPLACE_LANE`_instr(sh, i)] -[visit_exp (sh, i)] -[visit_exp sh] -[visit_id sh] -[visit_exp i] -[visit_id i] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)])] -[visit_exp ([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)])] -[visit_exp [`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp ($unpackshape(sh) : numtype <: valtype)] -[visit_exp $unpackshape(sh)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp (i!`%`_laneidx.0 < $dim(sh)!`%`_dim.0)] -[visit_exp i!`%`_laneidx.0] -[visit_exp i!`%`_laneidx] -[visit_exp i] -[visit_id i] not free -[visit_exp $dim(sh)!`%`_dim.0] -[visit_exp $dim(sh)!`%`_dim] -[visit_exp $dim(sh)] -[visit_exp sh] -[visit_id sh] not free -[check_dims] C sh_1 sh_2 vextunop -[visit_exp C] -[visit_id C] -[visit_exp `VEXTUNOP`_instr(sh_1, sh_2, vextunop)] -[visit_exp (sh_1, sh_2, vextunop)] -[visit_exp sh_1] -[visit_id sh_1] -[visit_exp sh_2] -[visit_id sh_2] -[visit_exp vextunop] -[visit_id vextunop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C sh_1 sh_2 vextbinop -[visit_exp C] -[visit_id C] -[visit_exp `VEXTBINOP`_instr(sh_1, sh_2, vextbinop)] -[visit_exp (sh_1, sh_2, vextbinop)] -[visit_exp sh_1] -[visit_id sh_1] -[visit_exp sh_2] -[visit_id sh_2] -[visit_exp vextbinop] -[visit_id vextbinop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] -[visit_exp ([`V128`_valtype `V128`_valtype])] -[visit_exp [`V128`_valtype `V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C sh_1 sh_2 vextternop -[visit_exp C] -[visit_id C] -[visit_exp `VEXTTERNOP`_instr(sh_1, sh_2, vextternop)] -[visit_exp (sh_1, sh_2, vextternop)] -[visit_exp sh_1] -[visit_id sh_1] -[visit_exp sh_2] -[visit_id sh_2] -[visit_exp vextternop] -[visit_id vextternop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype])] -[visit_exp ([`V128`_valtype `V128`_valtype `V128`_valtype])] -[visit_exp [`V128`_valtype `V128`_valtype `V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C sh_1 sh_2 sx -[visit_exp C] -[visit_id C] -[visit_exp `VNARROW`_instr(sh_1, sh_2, sx)] -[visit_exp (sh_1, sh_2, sx)] -[visit_exp sh_1] -[visit_id sh_1] -[visit_exp sh_2] -[visit_id sh_2] -[visit_exp sx] -[visit_id sx] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype `V128`_valtype])] -[visit_exp ([`V128`_valtype `V128`_valtype])] -[visit_exp [`V128`_valtype `V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C sh_1 sh_2 vcvtop -[visit_exp C] -[visit_id C] -[visit_exp `VCVTOP`_instr(sh_1, sh_2, vcvtop)] -[visit_exp (sh_1, sh_2, vcvtop)] -[visit_exp sh_1] -[visit_id sh_1] -[visit_exp sh_2] -[visit_id sh_2] -[visit_exp vcvtop] -[visit_id vcvtop] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp (`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`V128`_valtype])] -[visit_exp ([`V128`_valtype])] -[visit_exp [`V128`_valtype]] -[visit_exp `V128`_valtype] -[visit_exp ()] -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp []] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[check_dims] C init instr_1 instr_2 t t_1 t_2 t_3 x_1 x_2 -[visit_exp C] -[visit_id C] -[visit_exp [instr_1] ++ instr_2*{instr_2 <- `instr_2*`}] -[visit_exp [instr_1]] -[visit_exp instr_1] -[visit_id instr_1] -[visit_exp instr_2*{instr_2 <- `instr_2*`}] -[scope_enter instr_2] -[visit_exp instr_2] -[visit_id instr_2] not free -[visit_id instr_2] not free -[scope_exit instr_2] -[visit_exp `instr_2*`] -[visit_id instr_2*] no dims -[visit_id instr_2*] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}] -[visit_exp x_1*{x_1 <- `x_1*`}] -[scope_enter x_1] -[visit_exp x_1] -[visit_id x_1] not free -[visit_id x_1] not free -[scope_exit x_1] -[visit_exp `x_1*`] -[visit_id x_1*] no dims -[visit_id x_1*] -[visit_exp x_2*{x_2 <- `x_2*`}] -[scope_enter x_2] -[visit_exp x_2] -[visit_id x_2] not free -[visit_id x_2] not free -[scope_exit x_2] -[visit_exp `x_2*`] -[visit_id x_2*] no dims -[visit_id x_2*] -[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`})] -[visit_exp (t_3*{t_3 <- `t_3*`})] -[visit_exp t_3*{t_3 <- `t_3*`}] -[scope_enter t_3] -[visit_exp t_3] -[visit_id t_3] not free -[visit_id t_3] not free -[scope_exit t_3] -[visit_exp `t_3*`] -[visit_id t_3*] no dims -[visit_id t_3*] -[visit_exp (C, instr_1, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp instr_1] -[visit_id instr_1] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp x_1*{x_1 <- `x_1*`}] -[scope_enter x_1] -[visit_exp x_1] -[visit_id x_1] not free -[visit_id x_1] not free -[scope_exit x_1] -[visit_exp `x_1*`] -[visit_id x_1*] not free -[visit_id x_1*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[scope_enter init] -[scope_enter t] -[scope_enter x_1] -[visit_exp (C.`LOCALS`_context[x_1!`%`_idx.0] = `%%`_localtype(init, t))] -[visit_exp C.`LOCALS`_context[x_1!`%`_idx.0]] -[visit_exp C.`LOCALS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x_1!`%`_idx.0] -[visit_exp x_1!`%`_idx] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp `%%`_localtype(init, t)] -[visit_exp (init, t)] -[visit_exp init] -[visit_id init] not free -[visit_exp t] -[visit_id t] not free -[visit_id init] not free -[visit_id t] not free -[visit_id x_1] not free -[scope_exit x_1] -[scope_exit t] -[scope_exit init] -[visit_exp `init*`] -[visit_id init*] no dims -[visit_id init*] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp `x_1*`] -[visit_id x_1*] not free -[visit_id x_1*] no dims -[visit_exp ($with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype(`SET`_init, t)*{t <- `t*`}), instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`})))] -[visit_exp $with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype(`SET`_init, t)*{t <- `t*`})] -[visit_exp C] -[visit_id C] not free -[visit_exp x_1*{x_1 <- `x_1*`}] -[scope_enter x_1] -[visit_exp x_1] -[visit_id x_1] not free -[visit_id x_1] not free -[scope_exit x_1] -[visit_exp `x_1*`] -[visit_id x_1*] not free -[visit_id x_1*] no dims -[visit_exp `%%`_localtype(`SET`_init, t)*{t <- `t*`}] -[scope_enter t] -[visit_exp `%%`_localtype(`SET`_init, t)] -[visit_exp (`SET`_init, t)] -[visit_exp `SET`_init] -[visit_exp ()] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp instr_2*{instr_2 <- `instr_2*`}] -[scope_enter instr_2] -[visit_exp instr_2] -[visit_id instr_2] not free -[visit_id instr_2] not free -[scope_exit instr_2] -[visit_exp `instr_2*`] -[visit_id instr_2*] not free -[visit_id instr_2*] no dims -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))] -[visit_exp (`%`_resulttype(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp x_2*{x_2 <- `x_2*`}] -[scope_enter x_2] -[visit_exp x_2] -[visit_id x_2] not free -[visit_id x_2] not free -[scope_exit x_2] -[visit_exp `x_2*`] -[visit_id x_2*] not free -[visit_id x_2*] no dims -[visit_exp `%`_resulttype(t_3*{t_3 <- `t_3*`})] -[visit_exp (t_3*{t_3 <- `t_3*`})] -[visit_exp t_3*{t_3 <- `t_3*`}] -[scope_enter t_3] -[visit_exp t_3] -[visit_id t_3] not free -[visit_id t_3] not free -[scope_exit t_3] -[visit_exp `t_3*`] -[visit_id t_3*] not free -[visit_id t_3*] no dims -[check_dims] C instr it it' -[visit_exp C] -[visit_id C] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp it'] -[visit_id it'] -[visit_exp (C, instr*{instr <- `instr*`}, it)] -[visit_exp C] -[visit_id C] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp it] -[visit_id it] -[visit_exp (C, it, it')] -[visit_exp C] -[visit_id C] not free -[visit_exp it] -[visit_id it] not free -[visit_exp it'] -[visit_id it'] not free -[visit_exp (C, it')] -[visit_exp C] -[visit_id C] not free -[visit_exp it'] -[visit_id it'] not free -[check_dims] C instr t t_1 t_2 x -[visit_exp C] -[visit_id C] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`})] -[visit_exp (t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`})] -[visit_exp t*{t <- `t*`} ++ t_1*{t_1 <- `t_1*`}] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp `%`_resulttype(t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`})] -[visit_exp (t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`})] -[visit_exp t*{t <- `t*`} ++ t_2*{t_2 <- `t_2*`}] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp (C, `%`_resulttype(t*{t <- `t*`}))] -[visit_exp C] -[visit_id C] not free -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[check_dims] C instr t -[visit_exp C] -[visit_id C] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp (C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(t*{t <- `t*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(t*{t <- `t*`}))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype(t*{t <- `t*`}))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[check_dims] -[check_dims] -[check_dims] -[check_dims] C c_nt nt -[visit_exp C] -[visit_id C] -[visit_exp `CONST`_instr(nt, c_nt)] -[visit_exp (nt, c_nt)] -[visit_exp nt] -[visit_id nt] -[visit_exp c_nt] -[visit_id c_nt] -[check_dims] C c_vt vt -[visit_exp C] -[visit_id C] -[visit_exp `VCONST`_instr(vt, c_vt)] -[visit_exp (vt, c_vt)] -[visit_exp vt] -[visit_id vt] -[visit_exp c_vt] -[visit_id c_vt] -[check_dims] C ht -[visit_exp C] -[visit_id C] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp `REF.I31`_instr] -[visit_exp ()] -[check_dims] C x -[visit_exp C] -[visit_id C] -[visit_exp `REF.FUNC`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[check_dims] C x -[visit_exp C] -[visit_id C] -[visit_exp `STRUCT.NEW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[check_dims] C x -[visit_exp C] -[visit_id C] -[visit_exp `STRUCT.NEW_DEFAULT`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[check_dims] C x -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.NEW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[check_dims] C x -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.NEW_DEFAULT`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[check_dims] C n x -[visit_exp C] -[visit_id C] -[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] -[visit_exp (x, `%`_u32(n))] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp `ANY.CONVERT_EXTERN`_instr] -[visit_exp ()] -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp `EXTERN.CONVERT_ANY`_instr] -[visit_exp ()] -[check_dims] C t x -[visit_exp C] -[visit_id C] -[visit_exp `GLOBAL.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(?(), t))] -[visit_exp C.`GLOBALS`_context[x!`%`_idx.0]] -[visit_exp C.`GLOBALS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%`_globaltype(?(), t)] -[visit_exp (?(), t)] -[visit_exp ?()] -[visit_exp t] -[visit_id t] -[check_dims] C Inn binop -[visit_exp C] -[visit_id C] -[visit_exp `BINOP`_instr((Inn : Inn <: numtype), binop)] -[visit_exp ((Inn : Inn <: numtype), binop)] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp binop] -[visit_id binop] -[visit_exp (Inn <- [`I32`_Inn `I64`_Inn])] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp [`I32`_Inn `I64`_Inn]] -[visit_exp `I32`_Inn] -[visit_exp ()] -[visit_exp `I64`_Inn] -[visit_exp ()] -[visit_exp (binop <- [`ADD`_binop_ `SUB`_binop_ `MUL`_binop_])] -[visit_exp binop] -[visit_id binop] not free -[visit_exp [`ADD`_binop_ `SUB`_binop_ `MUL`_binop_]] -[visit_exp `ADD`_binop_] -[visit_exp ()] -[visit_exp `SUB`_binop_] -[visit_exp ()] -[visit_exp `MUL`_binop_] -[visit_exp ()] -[check_dims] C instr -[visit_exp C] -[visit_id C] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[scope_enter instr] -[visit_exp (C, instr)] -[visit_exp C] -[visit_id C] not free -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[check_dims] C expr t -[visit_exp C] -[visit_id C] -[visit_exp expr] -[visit_id expr] -[visit_exp t] -[visit_id t] -[visit_exp (C, expr, `%`_resulttype([t]))] -[visit_exp C] -[visit_id C] not free -[visit_exp expr] -[visit_id expr] not free -[visit_exp `%`_resulttype([t])] -[visit_exp ([t])] -[visit_exp [t]] -[visit_exp t] -[visit_id t] not free -[visit_exp (C, expr)] -[visit_exp C] -[visit_id C] not free -[visit_exp expr] -[visit_id expr] not free -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] C dt rectype x -[visit_exp C] -[visit_id C] -[visit_exp `TYPE`_type(rectype)] -[visit_exp (rectype)] -[visit_exp rectype] -[visit_id rectype] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp (x!`%`_idx.0 = |C.`TYPES`_context|)] -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] -[visit_exp |C.`TYPES`_context|] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp (dt*{dt <- `dt*`} = $rolldt(x, rectype))] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp $rolldt(x, rectype)] -[visit_exp x] -[visit_id x] not free -[visit_exp rectype] -[visit_id rectype] not free -[visit_exp (C +++ {`TYPES` dt*{dt <- `dt*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rectype, `OK`_oktypeidx(x))] -[visit_exp C +++ {`TYPES` dt*{dt <- `dt*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp C] -[visit_id C] not free -[visit_exp {`TYPES` dt*{dt <- `dt*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp rectype] -[visit_id rectype] not free -[visit_exp `OK`_oktypeidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[check_dims] C tagtype -[visit_exp C] -[visit_id C] -[visit_exp `TAG`_tag(tagtype)] -[visit_exp (tagtype)] -[visit_exp tagtype] -[visit_id tagtype] -[visit_exp $clos_tagtype(C, tagtype)] -[visit_exp C] -[visit_id C] not free -[visit_exp tagtype] -[visit_id tagtype] not free -[visit_exp (C, tagtype)] -[visit_exp C] -[visit_id C] not free -[visit_exp tagtype] -[visit_id tagtype] not free -[check_dims] C expr globaltype t -[visit_exp C] -[visit_id C] -[visit_exp `GLOBAL`_global(globaltype, expr)] -[visit_exp (globaltype, expr)] -[visit_exp globaltype] -[visit_id globaltype] -[visit_exp expr] -[visit_id expr] -[visit_exp globaltype] -[visit_id globaltype] not free -[visit_exp (C, globaltype)] -[visit_exp C] -[visit_id C] not free -[visit_exp globaltype] -[visit_id globaltype] not free -[visit_exp (globaltype = `%%`_globaltype(`MUT`_mut?{}, t))] -[visit_exp globaltype] -[visit_id globaltype] not free -[visit_exp `%%`_globaltype(`MUT`_mut?{}, t)] -[visit_exp (`MUT`_mut?{}, t)] -[visit_exp `MUT`_mut?{}] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp t] -[visit_id t] -[visit_exp (C, expr, t)] -[visit_exp C] -[visit_id C] not free -[visit_exp expr] -[visit_id expr] not free -[visit_exp t] -[visit_id t] not free -[check_dims] C memtype -[visit_exp C] -[visit_id C] -[visit_exp `MEMORY`_mem(memtype)] -[visit_exp (memtype)] -[visit_exp memtype] -[visit_id memtype] -[visit_exp memtype] -[visit_id memtype] not free -[visit_exp (C, memtype)] -[visit_exp C] -[visit_id C] not free -[visit_exp memtype] -[visit_id memtype] not free -[check_dims] C at expr lim rt tabletype -[visit_exp C] -[visit_id C] -[visit_exp `TABLE`_table(tabletype, expr)] -[visit_exp (tabletype, expr)] -[visit_exp tabletype] -[visit_id tabletype] -[visit_exp expr] -[visit_id expr] -[visit_exp tabletype] -[visit_id tabletype] not free -[visit_exp (C, tabletype)] -[visit_exp C] -[visit_id C] not free -[visit_exp tabletype] -[visit_id tabletype] not free -[visit_exp (tabletype = `%%%`_tabletype(at, lim, rt))] -[visit_exp tabletype] -[visit_id tabletype] not free -[visit_exp `%%%`_tabletype(at, lim, rt)] -[visit_exp (at, lim, rt)] -[visit_exp at] -[visit_id at] -[visit_exp lim] -[visit_id lim] -[visit_exp rt] -[visit_id rt] -[visit_exp (C, expr, (rt : reftype <: valtype))] -[visit_exp C] -[visit_id C] not free -[visit_exp expr] -[visit_id expr] not free -[visit_exp (rt : reftype <: valtype)] -[visit_exp rt] -[visit_id rt] not free -[check_dims] C t -[visit_exp C] -[visit_id C] -[visit_exp `LOCAL`_local(t)] -[visit_exp (t)] -[visit_exp t] -[visit_id t] -[visit_exp `%%`_localtype(`SET`_init, t)] -[visit_exp (`SET`_init, t)] -[visit_exp `SET`_init] -[visit_exp ()] -[visit_exp t] -[visit_id t] not free -[visit_exp t] -[visit_id t] not free -[check_dims] C t -[visit_exp C] -[visit_id C] -[visit_exp `LOCAL`_local(t)] -[visit_exp (t)] -[visit_exp t] -[visit_id t] -[visit_exp `%%`_localtype(`UNSET`_init, t)] -[visit_exp (`UNSET`_init, t)] -[visit_exp `UNSET`_init] -[visit_exp ()] -[visit_exp t] -[visit_id t] not free -[visit_exp t] -[visit_id t] not free -[check_dims] C expr lct local t_1 t_2 x -[visit_exp C] -[visit_id C] -[visit_exp `FUNC`_func(x, local*{local <- `local*`}, expr)] -[visit_exp (x, local*{local <- `local*`}, expr)] -[visit_exp x] -[visit_id x] -[visit_exp local*{local <- `local*`}] -[scope_enter local] -[visit_exp local] -[visit_id local] not free -[visit_id local] not free -[scope_exit local] -[visit_exp `local*`] -[visit_id local*] no dims -[visit_id local*] -[visit_exp expr] -[visit_id expr] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp (C.`TYPES`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C.`TYPES`_context[x!`%`_idx.0]] -[visit_exp C.`TYPES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[scope_enter lct] -[scope_enter local] -[visit_exp (C, local, lct)] -[visit_exp C] -[visit_id C] not free -[visit_exp local] -[visit_id local] not free -[visit_exp lct] -[visit_id lct] not free -[visit_id lct] not free -[visit_id local] not free -[scope_exit local] -[scope_exit lct] -[visit_exp `lct*`] -[visit_id lct*] no dims -[visit_id lct*] -[visit_exp `local*`] -[visit_id local*] not free -[visit_id local*] no dims -[visit_exp (C +++ {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` `%%`_localtype(`SET`_init, t_1)*{t_1 <- `t_1*`} ++ lct*{lct <- `lct*`}, `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(`%`_resulttype(t_2*{t_2 <- `t_2*`})), `REFS` []}, expr, `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp C +++ {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` `%%`_localtype(`SET`_init, t_1)*{t_1 <- `t_1*`} ++ lct*{lct <- `lct*`}, `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(`%`_resulttype(t_2*{t_2 <- `t_2*`})), `REFS` []}] -[visit_exp C] -[visit_id C] not free -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` `%%`_localtype(`SET`_init, t_1)*{t_1 <- `t_1*`} ++ lct*{lct <- `lct*`}, `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(`%`_resulttype(t_2*{t_2 <- `t_2*`})), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp `%%`_localtype(`SET`_init, t_1)*{t_1 <- `t_1*`} ++ lct*{lct <- `lct*`}] -[visit_exp `%%`_localtype(`SET`_init, t_1)*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp `%%`_localtype(`SET`_init, t_1)] -[visit_exp (`SET`_init, t_1)] -[visit_exp `SET`_init] -[visit_exp ()] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp lct*{lct <- `lct*`}] -[scope_enter lct] -[visit_exp lct] -[visit_id lct] not free -[visit_id lct] not free -[scope_exit lct] -[visit_exp `lct*`] -[visit_id lct*] not free -[visit_id lct*] no dims -[visit_exp [`%`_resulttype(t_2*{t_2 <- `t_2*`})]] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp ?(`%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp []] -[visit_exp expr] -[visit_id expr] not free -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] C b datamode -[visit_exp C] -[visit_id C] -[visit_exp `DATA`_data(b*{b <- `b*`}, datamode)] -[visit_exp (b*{b <- `b*`}, datamode)] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp datamode] -[visit_id datamode] -[visit_exp `OK`_datatype] -[visit_exp ()] -[visit_exp (C, datamode, `OK`_datatype)] -[visit_exp C] -[visit_id C] not free -[visit_exp datamode] -[visit_id datamode] not free -[visit_exp `OK`_datatype] -[visit_exp ()] -[check_dims] C elemmode elemtype expr -[visit_exp C] -[visit_id C] -[visit_exp `ELEM`_elem(elemtype, expr*{expr <- `expr*`}, elemmode)] -[visit_exp (elemtype, expr*{expr <- `expr*`}, elemmode)] -[visit_exp elemtype] -[visit_id elemtype] -[visit_exp expr*{expr <- `expr*`}] -[scope_enter expr] -[visit_exp expr] -[visit_id expr] not free -[visit_id expr] not free -[scope_exit expr] -[visit_exp `expr*`] -[visit_id expr*] no dims -[visit_id expr*] -[visit_exp elemmode] -[visit_id elemmode] -[visit_exp elemtype] -[visit_id elemtype] not free -[visit_exp (C, elemtype)] -[visit_exp C] -[visit_id C] not free -[visit_exp elemtype] -[visit_id elemtype] not free -[scope_enter expr] -[visit_exp (C, expr, (elemtype : reftype <: valtype))] -[visit_exp C] -[visit_id C] not free -[visit_exp expr] -[visit_id expr] not free -[visit_exp (elemtype : reftype <: valtype)] -[visit_exp elemtype] -[visit_id elemtype] not free -[visit_id expr] not free -[scope_exit expr] -[visit_exp `expr*`] -[visit_id expr*] not free -[visit_id expr*] no dims -[visit_exp (C, elemmode, elemtype)] -[visit_exp C] -[visit_id C] not free -[visit_exp elemmode] -[visit_id elemmode] not free -[visit_exp elemtype] -[visit_id elemtype] not free -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp `PASSIVE`_datamode] -[visit_exp ()] -[visit_exp `OK`_datatype] -[visit_exp ()] -[check_dims] C at expr lim x -[visit_exp C] -[visit_id C] -[visit_exp `ACTIVE`_datamode(x, expr)] -[visit_exp (x, expr)] -[visit_exp x] -[visit_id x] -[visit_exp expr] -[visit_id expr] -[visit_exp `OK`_datatype] -[visit_exp ()] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim))] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] -[visit_exp lim] -[visit_id lim] -[visit_exp (C, expr, (at : addrtype <: valtype))] -[visit_exp C] -[visit_id C] not free -[visit_exp expr] -[visit_id expr] not free -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] not free -[check_dims] C rt -[visit_exp C] -[visit_id C] -[visit_exp `PASSIVE`_elemmode] -[visit_exp ()] -[visit_exp rt] -[visit_id rt] -[check_dims] C rt -[visit_exp C] -[visit_id C] -[visit_exp `DECLARE`_elemmode] -[visit_exp ()] -[visit_exp rt] -[visit_id rt] -[check_dims] C at expr lim rt rt' x -[visit_exp C] -[visit_id C] -[visit_exp `ACTIVE`_elemmode(x, expr)] -[visit_exp (x, expr)] -[visit_exp x] -[visit_id x] -[visit_exp expr] -[visit_id expr] -[visit_exp rt] -[visit_id rt] -[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt'))] -[visit_exp C.`TABLES`_context[x!`%`_idx.0]] -[visit_exp C.`TABLES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%%`_tabletype(at, lim, rt')] -[visit_exp (at, lim, rt')] -[visit_exp at] -[visit_id at] -[visit_exp lim] -[visit_id lim] -[visit_exp rt'] -[visit_id rt'] -[visit_exp (C, rt, rt')] -[visit_exp C] -[visit_id C] not free -[visit_exp rt] -[visit_id rt] not free -[visit_exp rt'] -[visit_id rt'] not free -[visit_exp (C, expr, (at : addrtype <: valtype))] -[visit_exp C] -[visit_id C] not free -[visit_exp expr] -[visit_id expr] not free -[visit_exp (at : addrtype <: valtype)] -[visit_exp at] -[visit_id at] not free -[check_dims] C x -[visit_exp C] -[visit_id C] -[visit_exp `START`_start(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp (C.`FUNCS`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype([]), `%`_resulttype([])))] -[visit_exp C.`FUNCS`_context[x!`%`_idx.0]] -[visit_exp C.`FUNCS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype([]), `%`_resulttype([]))] -[visit_exp (`%`_resulttype([]), `%`_resulttype([]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[check_dims] -[check_dims] -[check_dims] -[check_dims] C name_1 name_2 xt -[visit_exp C] -[visit_id C] -[visit_exp `IMPORT`_import(name_1, name_2, xt)] -[visit_exp (name_1, name_2, xt)] -[visit_exp name_1] -[visit_id name_1] -[visit_exp name_2] -[visit_id name_2] -[visit_exp xt] -[visit_id xt] -[visit_exp $clos_externtype(C, xt)] -[visit_exp C] -[visit_id C] not free -[visit_exp xt] -[visit_id xt] not free -[visit_exp (C, xt)] -[visit_exp C] -[visit_id C] not free -[visit_exp xt] -[visit_id xt] not free -[check_dims] C externidx name xt -[visit_exp C] -[visit_id C] -[visit_exp `EXPORT`_export(name, externidx)] -[visit_exp (name, externidx)] -[visit_exp name] -[visit_id name] -[visit_exp externidx] -[visit_id externidx] -[visit_exp name] -[visit_id name] not free -[visit_exp xt] -[visit_id xt] -[visit_exp (C, externidx, xt)] -[visit_exp C] -[visit_id C] not free -[visit_exp externidx] -[visit_id externidx] not free -[visit_exp xt] -[visit_id xt] not free -[check_dims] C jt x -[visit_exp C] -[visit_id C] -[visit_exp `TAG`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `TAG`_externtype(jt)] -[visit_exp (jt)] -[visit_exp jt] -[visit_id jt] -[visit_exp (C.`TAGS`_context[x!`%`_idx.0] = jt)] -[visit_exp C.`TAGS`_context[x!`%`_idx.0]] -[visit_exp C.`TAGS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp jt] -[visit_id jt] not free -[check_dims] C gt x -[visit_exp C] -[visit_id C] -[visit_exp `GLOBAL`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `GLOBAL`_externtype(gt)] -[visit_exp (gt)] -[visit_exp gt] -[visit_id gt] -[visit_exp (C.`GLOBALS`_context[x!`%`_idx.0] = gt)] -[visit_exp C.`GLOBALS`_context[x!`%`_idx.0]] -[visit_exp C.`GLOBALS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp gt] -[visit_id gt] not free -[check_dims] C mt x -[visit_exp C] -[visit_id C] -[visit_exp `MEM`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `MEM`_externtype(mt)] -[visit_exp (mt)] -[visit_exp mt] -[visit_id mt] -[visit_exp (C.`MEMS`_context[x!`%`_idx.0] = mt)] -[visit_exp C.`MEMS`_context[x!`%`_idx.0]] -[visit_exp C.`MEMS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp mt] -[visit_id mt] not free -[check_dims] C tt x -[visit_exp C] -[visit_id C] -[visit_exp `TABLE`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `TABLE`_externtype(tt)] -[visit_exp (tt)] -[visit_exp tt] -[visit_id tt] -[visit_exp (C.`TABLES`_context[x!`%`_idx.0] = tt)] -[visit_exp C.`TABLES`_context[x!`%`_idx.0]] -[visit_exp C.`TABLES`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp tt] -[visit_id tt] not free -[check_dims] C dt x -[visit_exp C] -[visit_id C] -[visit_exp `FUNC`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `FUNC`_externtype((dt : deftype <: typeuse))] -[visit_exp ((dt : deftype <: typeuse))] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] -[visit_exp (C.`FUNCS`_context[x!`%`_idx.0] = dt)] -[visit_exp C.`FUNCS`_context[x!`%`_idx.0]] -[visit_exp C.`FUNCS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp dt] -[visit_id dt] not free -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[scope_enter global*] -[visit_id global*] not free -[visit_id global*] no dims -[scope_enter mem*] -[visit_id mem*] not free -[visit_id mem*] no dims -[scope_enter table*] -[visit_id table*] not free -[visit_id table*] no dims -[scope_enter elem*] -[visit_id elem*] not free -[visit_id elem*] no dims -[scope_exit elem*] -[scope_exit table*] -[scope_exit mem*] -[scope_exit global*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] nonfuncs -DecD funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* -[visit_id nonfuncs] not free -[check_dims] elem global mem table -[visit_exp `%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] -[visit_exp (global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] no dims -[visit_id global*] -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] no dims -[visit_id mem*] -[visit_exp table*{table <- `table*`}] -[scope_enter table] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] no dims -[visit_id table*] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] no dims -[visit_id elem*] -[visit_exp $funcidx_module(`MODULE`_module([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), []))] -[visit_exp `MODULE`_module([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])] -[visit_exp ([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] not free -[visit_id global*] no dims -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] not free -[visit_id mem*] no dims -[visit_exp table*{table <- `table*`}] -[scope_enter table] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] not free -[visit_id table*] no dims -[visit_exp []] -[visit_exp []] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] not free -[visit_id elem*] no dims -[visit_exp ?()] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - def $funcidx_nonfuncs{`global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*}(`%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})) = $funcidx_module(`MODULE`_module([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])) -[check_dims] C C' data dt dt' dt_I elem export func global gt gt_I import jt jt_I mem mt mt_I nm ok rt start table tag tt tt_I type x xt_E xt_I -[visit_exp `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp type*{type <- `type*`}] -[scope_enter type] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] no dims -[visit_id type*] -[visit_exp import*{import <- `import*`}] -[scope_enter import] -[visit_exp import] -[visit_id import] not free -[visit_id import] not free -[scope_exit import] -[visit_exp `import*`] -[visit_id import*] no dims -[visit_id import*] -[visit_exp tag*{tag <- `tag*`}] -[scope_enter tag] -[visit_exp tag] -[visit_id tag] not free -[visit_id tag] not free -[scope_exit tag] -[visit_exp `tag*`] -[visit_id tag*] no dims -[visit_id tag*] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] no dims -[visit_id global*] -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] no dims -[visit_id mem*] -[visit_exp table*{table <- `table*`}] -[scope_enter table] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] no dims -[visit_id table*] -[visit_exp func*{func <- `func*`}] -[scope_enter func] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] no dims -[visit_id func*] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] no dims -[visit_id data*] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] no dims -[visit_id elem*] -[visit_exp start?{start <- `start?`}] -[scope_enter start] -[visit_exp start] -[visit_id start] not free -[visit_id start] not free -[scope_exit start] -[visit_exp `start?`] -[visit_id start?] no dims -[visit_id start?] -[visit_exp export*{export <- `export*`}] -[scope_enter export] -[visit_exp export] -[visit_id export] not free -[visit_id export] not free -[scope_exit export] -[visit_exp `export*`] -[visit_id export*] no dims -[visit_id export*] -[visit_exp $clos_moduletype(C, `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))] -[visit_exp C] -[visit_id C] -[visit_exp `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] -[visit_exp (xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] -[visit_exp xt_I*{xt_I <- `xt_I*`}] -[scope_enter xt_I] -[visit_exp xt_I] -[visit_id xt_I] not free -[visit_id xt_I] not free -[scope_exit xt_I] -[visit_exp `xt_I*`] -[visit_id xt_I*] no dims -[visit_id xt_I*] -[visit_exp xt_E*{xt_E <- `xt_E*`}] -[scope_enter xt_E] -[visit_exp xt_E] -[visit_id xt_E] not free -[visit_id xt_E] not free -[scope_exit xt_E] -[visit_exp `xt_E*`] -[visit_id xt_E*] no dims -[visit_id xt_E*] -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, type*{type <- `type*`}, dt'*{dt' <- `dt'*`})] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp type*{type <- `type*`}] -[scope_enter type] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] not free -[visit_id type*] no dims -[visit_exp dt'*{dt' <- `dt'*`}] -[scope_enter dt'] -[visit_exp dt'] -[visit_id dt'] not free -[visit_id dt'] not free -[scope_exit dt'] -[visit_exp `dt'*`] -[visit_id dt'*] no dims -[visit_id dt'*] -[scope_enter import] -[scope_enter xt_I] -[visit_exp ({`TYPES` dt'*{dt' <- `dt'*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, import, xt_I)] -[visit_exp {`TYPES` dt'*{dt' <- `dt'*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp dt'*{dt' <- `dt'*`}] -[scope_enter dt'] -[visit_exp dt'] -[visit_id dt'] not free -[visit_id dt'] not free -[scope_exit dt'] -[visit_exp `dt'*`] -[visit_id dt'*] not free -[visit_id dt'*] no dims -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp import] -[visit_id import] not free -[visit_exp xt_I] -[visit_id xt_I] not free -[visit_id import] not free -[visit_id xt_I] not free -[scope_exit xt_I] -[scope_exit import] -[visit_exp `import*`] -[visit_id import*] not free -[visit_id import*] no dims -[visit_exp `xt_I*`] -[visit_id xt_I*] not free -[visit_id xt_I*] no dims -[scope_enter jt] -[scope_enter tag] -[visit_exp (C', tag, jt)] -[visit_exp C'] -[visit_id C'] -[visit_exp tag] -[visit_id tag] not free -[visit_exp jt] -[visit_id jt] not free -[visit_id jt] not free -[visit_id tag] not free -[scope_exit tag] -[scope_exit jt] -[visit_exp `jt*`] -[visit_id jt*] no dims -[visit_id jt*] -[visit_exp `tag*`] -[visit_id tag*] not free -[visit_id tag*] no dims -[visit_exp (C', global*{global <- `global*`}, gt*{gt <- `gt*`})] -[visit_exp C'] -[visit_id C'] not free -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] not free -[visit_id global*] no dims -[visit_exp gt*{gt <- `gt*`}] -[scope_enter gt] -[visit_exp gt] -[visit_id gt] not free -[visit_id gt] not free -[scope_exit gt] -[visit_exp `gt*`] -[visit_id gt*] no dims -[visit_id gt*] -[scope_enter mem] -[scope_enter mt] -[visit_exp (C', mem, mt)] -[visit_exp C'] -[visit_id C'] not free -[visit_exp mem] -[visit_id mem] not free -[visit_exp mt] -[visit_id mt] not free -[visit_id mem] not free -[visit_id mt] not free -[scope_exit mt] -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] not free -[visit_id mem*] no dims -[visit_exp `mt*`] -[visit_id mt*] no dims -[visit_id mt*] -[scope_enter table] -[scope_enter tt] -[visit_exp (C', table, tt)] -[visit_exp C'] -[visit_id C'] not free -[visit_exp table] -[visit_id table] not free -[visit_exp tt] -[visit_id tt] not free -[visit_id table] not free -[visit_id tt] not free -[scope_exit tt] -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] not free -[visit_id table*] no dims -[visit_exp `tt*`] -[visit_id tt*] no dims -[visit_id tt*] -[scope_enter dt] -[scope_enter func] -[visit_exp (C, func, dt)] -[visit_exp C] -[visit_id C] not free -[visit_exp func] -[visit_id func] not free -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[visit_id func] not free -[scope_exit func] -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp `func*`] -[visit_id func*] not free -[visit_id func*] no dims -[scope_enter data] -[scope_enter ok] -[visit_exp (C, data, ok)] -[visit_exp C] -[visit_id C] not free -[visit_exp data] -[visit_id data] not free -[visit_exp ok] -[visit_id ok] not free -[visit_id data] not free -[visit_id ok] not free -[scope_exit ok] -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] not free -[visit_id data*] no dims -[visit_exp `ok*`] -[visit_id ok*] no dims -[visit_id ok*] -[scope_enter elem] -[scope_enter rt] -[visit_exp (C, elem, rt)] -[visit_exp C] -[visit_id C] not free -[visit_exp elem] -[visit_id elem] not free -[visit_exp rt] -[visit_id rt] not free -[visit_id elem] not free -[visit_id rt] not free -[scope_exit rt] -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] not free -[visit_id elem*] no dims -[visit_exp `rt*`] -[visit_id rt*] no dims -[visit_id rt*] -[scope_enter start] -[visit_exp (C, start)] -[visit_exp C] -[visit_id C] not free -[visit_exp start] -[visit_id start] not free -[visit_id start] not free -[scope_exit start] -[visit_exp `start?`] -[visit_id start?] not free -[visit_id start?] no dims -[scope_enter export] -[scope_enter nm] -[scope_enter xt_E] -[visit_exp (C, export, nm, xt_E)] -[visit_exp C] -[visit_id C] not free -[visit_exp export] -[visit_id export] not free -[visit_exp nm] -[visit_id nm] not free -[visit_exp xt_E] -[visit_id xt_E] not free -[visit_id export] not free -[visit_id nm] not free -[visit_id xt_E] not free -[scope_exit xt_E] -[scope_exit nm] -[scope_exit export] -[visit_exp `export*`] -[visit_id export*] not free -[visit_id export*] no dims -[visit_exp `nm*`] -[visit_id nm*] no dims -[visit_id nm*] -[visit_exp `xt_E*`] -[visit_id xt_E*] not free -[visit_id xt_E*] no dims -[visit_exp $disjoint_(syntax name, nm*{nm <- `nm*`})] -[visit_exp nm*{nm <- `nm*`}] -[scope_enter nm] -[visit_exp nm] -[visit_id nm] not free -[visit_id nm] not free -[scope_exit nm] -[visit_exp `nm*`] -[visit_id nm*] not free -[visit_id nm*] no dims -[visit_exp (C = C' +++ {`TYPES` [], `RECS` [], `TAGS` jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS` gt*{gt <- `gt*`}, `MEMS` mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES` tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS` [], `DATAS` ok*{ok <- `ok*`}, `ELEMS` rt*{rt <- `rt*`}, `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []})] -[visit_exp C] -[visit_id C] not free -[visit_exp C' +++ {`TYPES` [], `RECS` [], `TAGS` jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS` gt*{gt <- `gt*`}, `MEMS` mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES` tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS` [], `DATAS` ok*{ok <- `ok*`}, `ELEMS` rt*{rt <- `rt*`}, `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp C'] -[visit_id C'] not free -[visit_exp {`TYPES` [], `RECS` [], `TAGS` jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS` gt*{gt <- `gt*`}, `MEMS` mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES` tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS` [], `DATAS` ok*{ok <- `ok*`}, `ELEMS` rt*{rt <- `rt*`}, `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}] -[visit_exp jt_I*{jt_I <- `jt_I*`}] -[scope_enter jt_I] -[visit_exp jt_I] -[visit_id jt_I] not free -[visit_id jt_I] not free -[scope_exit jt_I] -[visit_exp `jt_I*`] -[visit_id jt_I*] no dims -[visit_id jt_I*] -[visit_exp jt*{jt <- `jt*`}] -[scope_enter jt] -[visit_exp jt] -[visit_id jt] not free -[visit_id jt] not free -[scope_exit jt] -[visit_exp `jt*`] -[visit_id jt*] not free -[visit_id jt*] no dims -[visit_exp gt*{gt <- `gt*`}] -[scope_enter gt] -[visit_exp gt] -[visit_id gt] not free -[visit_id gt] not free -[scope_exit gt] -[visit_exp `gt*`] -[visit_id gt*] not free -[visit_id gt*] no dims -[visit_exp mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}] -[visit_exp mt_I*{mt_I <- `mt_I*`}] -[scope_enter mt_I] -[visit_exp mt_I] -[visit_id mt_I] not free -[visit_id mt_I] not free -[scope_exit mt_I] -[visit_exp `mt_I*`] -[visit_id mt_I*] no dims -[visit_id mt_I*] -[visit_exp mt*{mt <- `mt*`}] -[scope_enter mt] -[visit_exp mt] -[visit_id mt] not free -[visit_id mt] not free -[scope_exit mt] -[visit_exp `mt*`] -[visit_id mt*] not free -[visit_id mt*] no dims -[visit_exp tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}] -[visit_exp tt_I*{tt_I <- `tt_I*`}] -[scope_enter tt_I] -[visit_exp tt_I] -[visit_id tt_I] not free -[visit_id tt_I] not free -[scope_exit tt_I] -[visit_exp `tt_I*`] -[visit_id tt_I*] no dims -[visit_id tt_I*] -[visit_exp tt*{tt <- `tt*`}] -[scope_enter tt] -[visit_exp tt] -[visit_id tt] not free -[visit_id tt] not free -[scope_exit tt] -[visit_exp `tt*`] -[visit_id tt*] not free -[visit_id tt*] no dims -[visit_exp []] -[visit_exp ok*{ok <- `ok*`}] -[scope_enter ok] -[visit_exp ok] -[visit_id ok] not free -[visit_id ok] not free -[scope_exit ok] -[visit_exp `ok*`] -[visit_id ok*] not free -[visit_id ok*] no dims -[visit_exp rt*{rt <- `rt*`}] -[scope_enter rt] -[visit_exp rt] -[visit_id rt] not free -[visit_id rt] not free -[scope_exit rt] -[visit_exp `rt*`] -[visit_id rt*] not free -[visit_id rt*] no dims -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp (C' = {`TYPES` dt'*{dt' <- `dt'*`}, `RECS` [], `TAGS` [], `GLOBALS` gt_I*{gt_I <- `gt_I*`}, `MEMS` [], `TABLES` [], `FUNCS` dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` x*{x <- `x*`}})] -[visit_exp C'] -[visit_id C'] not free -[visit_exp {`TYPES` dt'*{dt' <- `dt'*`}, `RECS` [], `TAGS` [], `GLOBALS` gt_I*{gt_I <- `gt_I*`}, `MEMS` [], `TABLES` [], `FUNCS` dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` x*{x <- `x*`}}] -[visit_exp dt'*{dt' <- `dt'*`}] -[scope_enter dt'] -[visit_exp dt'] -[visit_id dt'] not free -[visit_id dt'] not free -[scope_exit dt'] -[visit_exp `dt'*`] -[visit_id dt'*] not free -[visit_id dt'*] no dims -[visit_exp []] -[visit_exp []] -[visit_exp gt_I*{gt_I <- `gt_I*`}] -[scope_enter gt_I] -[visit_exp gt_I] -[visit_id gt_I] not free -[visit_id gt_I] not free -[scope_exit gt_I] -[visit_exp `gt_I*`] -[visit_id gt_I*] no dims -[visit_id gt_I*] -[visit_exp []] -[visit_exp []] -[visit_exp dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}] -[visit_exp dt_I*{dt_I <- `dt_I*`}] -[scope_enter dt_I] -[visit_exp dt_I] -[visit_id dt_I] not free -[visit_id dt_I] not free -[scope_exit dt_I] -[visit_exp `dt_I*`] -[visit_id dt_I*] no dims -[visit_id dt_I*] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp (x*{x <- `x*`} = $funcidx_nonfuncs(`%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})))] -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[visit_exp $funcidx_nonfuncs(`%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`}))] -[visit_exp `%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] -[visit_exp (global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] not free -[visit_id global*] no dims -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] not free -[visit_id mem*] no dims -[visit_exp table*{table <- `table*`}] -[scope_enter table] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] not free -[visit_id table*] no dims -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] not free -[visit_id elem*] no dims -[visit_exp (jt_I*{jt_I <- `jt_I*`} = $tagsxt(xt_I*{xt_I <- `xt_I*`}))] -[visit_exp jt_I*{jt_I <- `jt_I*`}] -[scope_enter jt_I] -[visit_exp jt_I] -[visit_id jt_I] not free -[visit_id jt_I] not free -[scope_exit jt_I] -[visit_exp `jt_I*`] -[visit_id jt_I*] not free -[visit_id jt_I*] no dims -[visit_exp $tagsxt(xt_I*{xt_I <- `xt_I*`})] -[visit_exp xt_I*{xt_I <- `xt_I*`}] -[scope_enter xt_I] -[visit_exp xt_I] -[visit_id xt_I] not free -[visit_id xt_I] not free -[scope_exit xt_I] -[visit_exp `xt_I*`] -[visit_id xt_I*] not free -[visit_id xt_I*] no dims -[visit_exp (gt_I*{gt_I <- `gt_I*`} = $globalsxt(xt_I*{xt_I <- `xt_I*`}))] -[visit_exp gt_I*{gt_I <- `gt_I*`}] -[scope_enter gt_I] -[visit_exp gt_I] -[visit_id gt_I] not free -[visit_id gt_I] not free -[scope_exit gt_I] -[visit_exp `gt_I*`] -[visit_id gt_I*] not free -[visit_id gt_I*] no dims -[visit_exp $globalsxt(xt_I*{xt_I <- `xt_I*`})] -[visit_exp xt_I*{xt_I <- `xt_I*`}] -[scope_enter xt_I] -[visit_exp xt_I] -[visit_id xt_I] not free -[visit_id xt_I] not free -[scope_exit xt_I] -[visit_exp `xt_I*`] -[visit_id xt_I*] not free -[visit_id xt_I*] no dims -[visit_exp (mt_I*{mt_I <- `mt_I*`} = $memsxt(xt_I*{xt_I <- `xt_I*`}))] -[visit_exp mt_I*{mt_I <- `mt_I*`}] -[scope_enter mt_I] -[visit_exp mt_I] -[visit_id mt_I] not free -[visit_id mt_I] not free -[scope_exit mt_I] -[visit_exp `mt_I*`] -[visit_id mt_I*] not free -[visit_id mt_I*] no dims -[visit_exp $memsxt(xt_I*{xt_I <- `xt_I*`})] -[visit_exp xt_I*{xt_I <- `xt_I*`}] -[scope_enter xt_I] -[visit_exp xt_I] -[visit_id xt_I] not free -[visit_id xt_I] not free -[scope_exit xt_I] -[visit_exp `xt_I*`] -[visit_id xt_I*] not free -[visit_id xt_I*] no dims -[visit_exp (tt_I*{tt_I <- `tt_I*`} = $tablesxt(xt_I*{xt_I <- `xt_I*`}))] -[visit_exp tt_I*{tt_I <- `tt_I*`}] -[scope_enter tt_I] -[visit_exp tt_I] -[visit_id tt_I] not free -[visit_id tt_I] not free -[scope_exit tt_I] -[visit_exp `tt_I*`] -[visit_id tt_I*] not free -[visit_id tt_I*] no dims -[visit_exp $tablesxt(xt_I*{xt_I <- `xt_I*`})] -[visit_exp xt_I*{xt_I <- `xt_I*`}] -[scope_enter xt_I] -[visit_exp xt_I] -[visit_id xt_I] not free -[visit_id xt_I] not free -[scope_exit xt_I] -[visit_exp `xt_I*`] -[visit_id xt_I*] not free -[visit_id xt_I*] no dims -[visit_exp (dt_I*{dt_I <- `dt_I*`} = $funcsxt(xt_I*{xt_I <- `xt_I*`}))] -[visit_exp dt_I*{dt_I <- `dt_I*`}] -[scope_enter dt_I] -[visit_exp dt_I] -[visit_id dt_I] not free -[visit_id dt_I] not free -[scope_exit dt_I] -[visit_exp `dt_I*`] -[visit_id dt_I*] not free -[visit_id dt_I*] no dims -[visit_exp $funcsxt(xt_I*{xt_I <- `xt_I*`})] -[visit_exp xt_I*{xt_I <- `xt_I*`}] -[scope_enter xt_I] -[visit_exp xt_I] -[visit_id xt_I] not free -[visit_id xt_I] not free -[scope_exit xt_I] -[visit_exp `xt_I*`] -[visit_id xt_I*] not free -[visit_id xt_I*] no dims -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp []] -[visit_exp []] -[check_dims] C dt dt_1 type type_1 -[visit_exp C] -[visit_id C] -[visit_exp [type_1] ++ type*{type <- `type*`}] -[visit_exp [type_1]] -[visit_exp type_1] -[visit_id type_1] -[visit_exp type*{type <- `type*`}] -[scope_enter type] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] no dims -[visit_id type*] -[visit_exp dt_1*{dt_1 <- `dt_1*`} ++ dt*{dt <- `dt*`}] -[visit_exp dt_1*{dt_1 <- `dt_1*`}] -[scope_enter dt_1] -[visit_exp dt_1] -[visit_id dt_1] not free -[visit_id dt_1] not free -[scope_exit dt_1] -[visit_exp `dt_1*`] -[visit_id dt_1*] no dims -[visit_id dt_1*] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp (C, type_1, dt_1*{dt_1 <- `dt_1*`})] -[visit_exp C] -[visit_id C] not free -[visit_exp type_1] -[visit_id type_1] not free -[visit_exp dt_1*{dt_1 <- `dt_1*`}] -[scope_enter dt_1] -[visit_exp dt_1] -[visit_id dt_1] not free -[visit_id dt_1] not free -[scope_exit dt_1] -[visit_exp `dt_1*`] -[visit_id dt_1*] not free -[visit_id dt_1*] no dims -[visit_exp (C +++ {`TYPES` dt_1*{dt_1 <- `dt_1*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, type*{type <- `type*`}, dt*{dt <- `dt*`})] -[visit_exp C +++ {`TYPES` dt_1*{dt_1 <- `dt_1*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp C] -[visit_id C] not free -[visit_exp {`TYPES` dt_1*{dt_1 <- `dt_1*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp dt_1*{dt_1 <- `dt_1*`}] -[scope_enter dt_1] -[visit_exp dt_1] -[visit_id dt_1] not free -[visit_id dt_1] not free -[scope_exit dt_1] -[visit_exp `dt_1*`] -[visit_id dt_1*] not free -[visit_id dt_1*] no dims -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp type*{type <- `type*`}] -[scope_enter type] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] not free -[visit_id type*] no dims -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp []] -[visit_exp []] -[check_dims] C global global_1 gt gt_1 -[visit_exp C] -[visit_id C] -[visit_exp [global_1] ++ global*{global <- `global*`}] -[visit_exp [global_1]] -[visit_exp global_1] -[visit_id global_1] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] no dims -[visit_id global*] -[visit_exp [gt_1] ++ gt*{gt <- `gt*`}] -[visit_exp [gt_1]] -[visit_exp gt_1] -[visit_id gt_1] -[visit_exp gt*{gt <- `gt*`}] -[scope_enter gt] -[visit_exp gt] -[visit_id gt] not free -[visit_id gt] not free -[scope_exit gt] -[visit_exp `gt*`] -[visit_id gt*] no dims -[visit_id gt*] -[visit_exp (C, global_1, gt_1)] -[visit_exp C] -[visit_id C] not free -[visit_exp global_1] -[visit_id global_1] not free -[visit_exp gt_1] -[visit_id gt_1] not free -[visit_exp (C +++ {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [gt_1], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, global*{global <- `global*`}, gt*{gt <- `gt*`})] -[visit_exp C +++ {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [gt_1], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp C] -[visit_id C] not free -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [gt_1], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [gt_1]] -[visit_exp gt_1] -[visit_id gt_1] not free -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] not free -[visit_id global*] no dims -[visit_exp gt*{gt <- `gt*`}] -[scope_enter gt] -[visit_exp gt] -[visit_id gt] not free -[visit_id gt] not free -[scope_exit gt] -[visit_exp `gt*`] -[visit_id gt*] not free -[visit_id gt*] no dims -[check_dims] -[check_dims] -[visit_exp 0] -[check_dims] -[visit_exp 1] -[check_dims] -[check_dims] -[visit_exp 0] -[check_dims] -[visit_exp 1] -[check_dims] -[visit_exp 2] -[check_dims] -[visit_exp 3] -[check_dims] X relaxed2 -DecD relaxed2(relaxed2 : relaxed2, syntax X, X : X, X : X) : X -[visit_id relaxed2] not free -[visit_id X] not free -[visit_id X] not free -[check_dims] X relaxed4 -DecD relaxed4(relaxed4 : relaxed4, syntax X, X : X, X : X, X : X, X : X) : X -[visit_id relaxed4] not free -[visit_id X] not free -[visit_id X] not free -[visit_id X] not free -[visit_id X] not free -[check_dims] X_1 X_2 i -[visit_exp i] -[visit_id i] -[visit_exp X_1] -[visit_id X_1] -[visit_exp X_2] -[visit_id X_2] -[visit_exp [X_1 X_2][i!`%`_relaxed2.0]] -[visit_exp [X_1 X_2]] -[visit_exp X_1] -[visit_id X_1] not free -[visit_exp X_2] -[visit_id X_2] not free -[visit_exp i!`%`_relaxed2.0] -[visit_exp i!`%`_relaxed2] -[visit_exp i] -[visit_id i] not free -[visit_exp $ND] -=> - ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec - def $relaxed2{i : relaxed2, syntax X, X_1 : X, X_2 : X}(i, syntax X, X_1, X_2) = [X_1 X_2][i!`%`_relaxed2.0] - -- if $ND -[check_dims] X_1 X_2 i -[visit_exp i] -[visit_id i] -[visit_exp X_1] -[visit_id X_1] -[visit_exp X_2] -[visit_id X_2] -[visit_exp [X_1 X_2][0]] -[visit_exp [X_1 X_2]] -[visit_exp X_1] -[visit_id X_1] not free -[visit_exp X_2] -[visit_id X_2] not free -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec - def $relaxed2{i : relaxed2, syntax X, X_1 : X, X_2 : X}(i, syntax X, X_1, X_2) = [X_1 X_2][0] - -- otherwise -[check_dims] X_1 X_2 X_3 X_4 i -[visit_exp i] -[visit_id i] -[visit_exp X_1] -[visit_id X_1] -[visit_exp X_2] -[visit_id X_2] -[visit_exp X_3] -[visit_id X_3] -[visit_exp X_4] -[visit_id X_4] -[visit_exp [X_1 X_2 X_3 X_4][i!`%`_relaxed4.0]] -[visit_exp [X_1 X_2 X_3 X_4]] -[visit_exp X_1] -[visit_id X_1] not free -[visit_exp X_2] -[visit_id X_2] not free -[visit_exp X_3] -[visit_id X_3] not free -[visit_exp X_4] -[visit_id X_4] not free -[visit_exp i!`%`_relaxed4.0] -[visit_exp i!`%`_relaxed4] -[visit_exp i] -[visit_id i] not free -[visit_exp $ND] -=> - ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec - def $relaxed4{i : relaxed4, syntax X, X_1 : X, X_2 : X, X_3 : X, X_4 : X}(i, syntax X, X_1, X_2, X_3, X_4) = [X_1 X_2 X_3 X_4][i!`%`_relaxed4.0] - -- if $ND -[check_dims] X_1 X_2 X_3 X_4 i -[visit_exp i] -[visit_id i] -[visit_exp X_1] -[visit_id X_1] -[visit_exp X_2] -[visit_id X_2] -[visit_exp X_3] -[visit_id X_3] -[visit_exp X_4] -[visit_id X_4] -[visit_exp [X_1 X_2 X_3 X_4][0]] -[visit_exp [X_1 X_2 X_3 X_4]] -[visit_exp X_1] -[visit_id X_1] not free -[visit_exp X_2] -[visit_id X_2] not free -[visit_exp X_3] -[visit_id X_3] not free -[visit_exp X_4] -[visit_id X_4] not free -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/3.0-numerics.relaxed.spectec - def $relaxed4{i : relaxed4, syntax X, X_1 : X, X_2 : X, X_3 : X, X_4 : X}(i, syntax X, X_1, X_2, X_3, X_4) = [X_1 X_2 X_3 X_4][0] - -- otherwise -[check_dims] -DecD R_fmadd : relaxed2 -[check_dims] -DecD R_fmin : relaxed4 -[check_dims] -DecD R_fmax : relaxed4 -[check_dims] -DecD R_idot : relaxed2 -[check_dims] -DecD R_iq15mulr : relaxed2 -[check_dims] -DecD R_trunc_u : relaxed4 -[check_dims] -DecD R_trunc_s : relaxed2 -[check_dims] -DecD R_swizzle : relaxed2 -[check_dims] -DecD R_laneselect : relaxed2 -[check_dims] s33 -DecD s33_to_u32(s33 : s33) : u32 -[visit_id s33] not free -[check_dims] N iN -DecD ibits_(N : N, iN : iN(N)) : bit* -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fbits_(N : N, fN : fN(N)) : bit* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD ibytes_(N : N, iN : iN(N)) : byte* -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fbytes_(N : N, fN : fN(N)) : byte* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] num_ numtype -DecD nbytes_(numtype : numtype, num_ : num_(numtype)) : byte* -[visit_id numtype] not free -[visit_id num_] not free -[visit_exp numtype] -[visit_id numtype] not free -[check_dims] vec_ vectype -DecD vbytes_(vectype : vectype, vec_ : vec_(vectype)) : byte* -[visit_id vectype] not free -[visit_id vec_] not free -[visit_exp vectype] -[visit_id vectype] not free -[check_dims] lit_ storagetype -DecD zbytes_(storagetype : storagetype, lit_ : lit_(storagetype)) : byte* -[visit_id storagetype] not free -[visit_id lit_] not free -[visit_exp storagetype] -[visit_id storagetype] not free -[check_dims] Cnn lit_ -DecD cbytes_(Cnn : Cnn, lit_ : lit_((Cnn : Cnn <: storagetype))) : byte* -[visit_id Cnn] not free -[visit_id lit_] not free -[visit_exp (Cnn : Cnn <: storagetype)] -[visit_exp Cnn] -[visit_id Cnn] not free -[check_dims] N _ -DecD inv_ibits_(N : N, bit*) : iN(N) -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N _ -DecD inv_fbits_(N : N, bit*) : fN(N) -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N _ -DecD inv_ibytes_(N : N, byte*) : iN(N) -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N _ -DecD inv_fbytes_(N : N, byte*) : fN(N) -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[check_dims] _ numtype -DecD inv_nbytes_(numtype : numtype, byte*) : num_(numtype) -[visit_id numtype] not free -[visit_id _] not free -[visit_exp numtype] -[visit_id numtype] not free -[check_dims] _ vectype -DecD inv_vbytes_(vectype : vectype, byte*) : vec_(vectype) -[visit_id vectype] not free -[visit_id _] not free -[visit_exp vectype] -[visit_id vectype] not free -[check_dims] _ storagetype -DecD inv_zbytes_(storagetype : storagetype, byte*) : lit_(storagetype) -[visit_id storagetype] not free -[visit_id _] not free -[visit_exp storagetype] -[visit_id storagetype] not free -[check_dims] Cnn _ -DecD inv_cbytes_(Cnn : Cnn, byte*) : lit_((Cnn : Cnn <: storagetype)) -[visit_id Cnn] not free -[visit_id _] not free -[visit_exp (Cnn : Cnn <: storagetype)] -[visit_exp Cnn] -[visit_id Cnn] not free -[check_dims] N nat -DecD signed_(N : N, nat : nat) : int -[visit_id N] not free -[visit_id nat] not free -[check_dims] N i -[visit_exp N] -[visit_id N] -[visit_exp i] -[visit_id i] -[visit_exp (i : nat <:> int)] -[visit_exp i] -[visit_id i] not free -[visit_exp (i < (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp i] -[visit_id i] not free -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $signed_{N : N, i : nat}(N, i) = (i : nat <:> int) - -- if (i < (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) -[check_dims] N i -[visit_exp N] -[visit_id N] -[visit_exp i] -[visit_id i] -[visit_exp ((i : nat <:> int) - ((2 ^ N) : nat <:> int))] -[visit_exp (i : nat <:> int)] -[visit_exp i] -[visit_id i] not free -[visit_exp ((2 ^ N) : nat <:> int)] -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -[visit_exp (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) <= i) /\ (i < (2 ^ N)))] -[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) <= i)] -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp i] -[visit_id i] not free -[visit_exp (i < (2 ^ N))] -[visit_exp i] -[visit_id i] not free -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $signed_{N : N, i : nat}(N, i) = ((i : nat <:> int) - ((2 ^ N) : nat <:> int)) - -- if (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) <= i) /\ (i < (2 ^ N))) -[check_dims] N int -DecD inv_signed_(N : N, int : int) : nat -[visit_id N] not free -[visit_id int] not free -[check_dims] N i -[visit_exp N] -[visit_id N] -[visit_exp i] -[visit_id i] -[visit_exp (i : int <:> nat)] -[visit_exp i] -[visit_id i] not free -[visit_exp (((0 : nat <:> int) <= i) /\ (i < ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)))] -[visit_exp ((0 : nat <:> int) <= i)] -[visit_exp (0 : nat <:> int)] -[visit_exp 0] -[visit_exp i] -[visit_id i] not free -[visit_exp (i < ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))] -[visit_exp i] -[visit_id i] not free -[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $inv_signed_{N : N, i : int}(N, i) = (i : int <:> nat) - -- if (((0 : nat <:> int) <= i) /\ (i < ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))) -[check_dims] N i -[visit_exp N] -[visit_id N] -[visit_exp i] -[visit_id i] -[visit_exp ((i + ((2 ^ N) : nat <:> int)) : int <:> nat)] -[visit_exp (i + ((2 ^ N) : nat <:> int))] -[visit_exp i] -[visit_id i] not free -[visit_exp ((2 ^ N) : nat <:> int)] -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -[visit_exp ((- ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) <= i) /\ (i < (0 : nat <:> int)))] -[visit_exp (- ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) <= i)] -[visit_exp - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp i] -[visit_id i] not free -[visit_exp (i < (0 : nat <:> int))] -[visit_exp i] -[visit_id i] not free -[visit_exp (0 : nat <:> int)] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $inv_signed_{N : N, i : int}(N, i) = ((i + ((2 ^ N) : nat <:> int)) : int <:> nat) - -- if ((- ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) <= i) /\ (i < (0 : nat <:> int))) -[check_dims] storagetype -DecD sx(storagetype : storagetype) : sx? -[visit_id storagetype] not free -[check_dims] consttype -[visit_exp (consttype : consttype <: storagetype)] -[visit_exp consttype] -[visit_id consttype] -[visit_exp ?()] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $sx{consttype : consttype}((consttype : consttype <: storagetype)) = ?() -[check_dims] packtype -[visit_exp (packtype : packtype <: storagetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp ?(`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $sx{packtype : packtype}((packtype : packtype <: storagetype)) = ?(`S`_sx) -[check_dims] lanetype -DecD zero(lanetype : lanetype) : lane_(lanetype) -[visit_id lanetype] not free -[visit_exp lanetype] -[visit_id lanetype] not free -[check_dims] Jnn -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_lane_(0)] -[visit_exp (0)] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $zero{Jnn : Jnn}((Jnn : Jnn <: lanetype)) = `%`_lane_(0) -[check_dims] Fnn -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp $fzero($size((Fnn : Fnn <: numtype)))] -[visit_exp $size((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $zero{Fnn : Fnn}((Fnn : Fnn <: lanetype)) = $fzero($size((Fnn : Fnn <: numtype))) -[check_dims] bool -DecD bool(bool : bool) : nat -[visit_id bool] not free -[check_dims] -[visit_exp false] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $bool(false) = 0 -[check_dims] -[visit_exp true] -[visit_exp 1] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $bool(true) = 1 -[check_dims] rat -DecD truncz(rat : rat) : int -[visit_id rat] not free -[check_dims] rat -DecD ceilz(rat : rat) : int -[visit_id rat] not free -[check_dims] N int -DecD sat_u_(N : N, int : int) : nat -[visit_id N] not free -[visit_id int] not free -[check_dims] N i -[visit_exp N] -[visit_id N] -[visit_exp i] -[visit_id i] -[visit_exp 0] -[visit_exp (i < (0 : nat <:> int))] -[visit_exp i] -[visit_id i] not free -[visit_exp (0 : nat <:> int)] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $sat_u_{N : N, i : int}(N, i) = 0 - -- if (i < (0 : nat <:> int)) -[check_dims] N i -[visit_exp N] -[visit_id N] -[visit_exp i] -[visit_id i] -[visit_exp ((((2 ^ N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((2 ^ N) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((2 ^ N) : nat <:> int)] -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp (i > (((2 ^ N) : nat <:> int) - (1 : nat <:> int)))] -[visit_exp i] -[visit_id i] not free -[visit_exp (((2 ^ N) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((2 ^ N) : nat <:> int)] -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $sat_u_{N : N, i : int}(N, i) = ((((2 ^ N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat) - -- if (i > (((2 ^ N) : nat <:> int) - (1 : nat <:> int))) -[check_dims] N i -[visit_exp N] -[visit_id N] -[visit_exp i] -[visit_id i] -[visit_exp (i : int <:> nat)] -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $sat_u_{N : N, i : int}(N, i) = (i : int <:> nat) - -- otherwise -[check_dims] N int -DecD sat_s_(N : N, int : int) : int -[visit_id N] not free -[visit_id int] not free -[check_dims] N i -[visit_exp N] -[visit_id N] -[visit_exp i] -[visit_id i] -[visit_exp - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp (i < - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))] -[visit_exp i] -[visit_id i] not free -[visit_exp - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $sat_s_{N : N, i : int}(N, i) = - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - -- if (i < - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) -[check_dims] N i -[visit_exp N] -[visit_id N] -[visit_exp i] -[visit_id i] -[visit_exp (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp (i > (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int)))] -[visit_exp i] -[visit_id i] not free -[visit_exp (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $sat_s_{N : N, i : int}(N, i) = (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int)) - -- if (i > (((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))) -[check_dims] N i -[visit_exp N] -[visit_id N] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $sat_s_{N : N, i : int}(N, i) = i - -- otherwise -[check_dims] N iN -DecD ineg_(N : N, iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD iabs_(N : N, iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD iclz_(N : N, iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD ictz_(N : N, iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD ipopcnt_(N : N, iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] M N iN sx -DecD iextend_(N : N, M : M, sx : sx, iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id M] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD iadd_(N : N, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD isub_(N : N, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD imul_(N : N, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx -DecD idiv_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)? -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx -DecD irem_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)? -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx -DecD imin_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx -DecD imax_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx -DecD iadd_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx -DecD isub_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx -DecD iq15mulr_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx -DecD irelaxed_q15mulr_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)* -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx -DecD iavgr_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD inot_(N : N, iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD irev_(N : N, iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD iand_(N : N, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD iandnot_(N : N, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD ior_(N : N, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD ixor_(N : N, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN u32 -DecD ishl_(N : N, iN : iN(N), u32 : u32) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id u32] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx u32 -DecD ishr_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N) -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id u32] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD irotl_(N : N, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD irotr_(N : N, iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD ibitselect_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD irelaxed_laneselect_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)* -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD ieqz_(N : N, iN : iN(N)) : u32 -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD inez_(N : N, iN : iN(N)) : u32 -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD ieq_(N : N, iN : iN(N), iN : iN(N)) : u32 -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN -DecD ine_(N : N, iN : iN(N), iN : iN(N)) : u32 -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx -DecD ilt_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx -DecD igt_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx -DecD ile_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N iN sx -DecD ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N i_1 -[visit_exp N] -[visit_id N] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `%`_iN((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] -[visit_exp ((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] -[visit_exp (((((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)] -[visit_exp ((((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int))] -[visit_exp (((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int))] -[visit_exp ((2 ^ N) : nat <:> int)] -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -[visit_exp (i_1!`%`_iN.0 : nat <:> int)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp ((2 ^ N) : nat <:> int)] -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ineg_{N : N, i_1 : iN(N)}(N, i_1) = `%`_iN((((((2 ^ N) : nat <:> int) - (i_1!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) -[check_dims] N i_1 -[visit_exp N] -[visit_id N] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp ($signed_(N, i_1!`%`_iN.0) >= (0 : nat <:> int))] -[visit_exp $signed_(N, i_1!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp (0 : nat <:> int)] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iabs_{N : N, i_1 : iN(N)}(N, i_1) = i_1 - -- if ($signed_(N, i_1!`%`_iN.0) >= (0 : nat <:> int)) -[check_dims] N i_1 -[visit_exp N] -[visit_id N] -[visit_exp i_1] -[visit_id i_1] -[visit_exp $ineg_(N, i_1)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1] -[visit_id i_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iabs_{N : N, i_1 : iN(N)}(N, i_1) = $ineg_(N, i_1) - -- otherwise -[check_dims] M N i -[visit_exp N] -[visit_id N] -[visit_exp M] -[visit_id M] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `%`_iN((i!`%`_iN.0 \ (2 ^ M)))] -[visit_exp ((i!`%`_iN.0 \ (2 ^ M)))] -[visit_exp (i!`%`_iN.0 \ (2 ^ M))] -[visit_exp i!`%`_iN.0] -[visit_exp i!`%`_iN] -[visit_exp i] -[visit_id i] not free -[visit_exp (2 ^ M)] -[visit_exp 2] -[visit_exp M] -[visit_id M] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iextend_{N : N, M : M, i : iN(N)}(N, M, `U`_sx, i) = `%`_iN((i!`%`_iN.0 \ (2 ^ M))) -[check_dims] M N i -[visit_exp N] -[visit_id N] -[visit_exp M] -[visit_id M] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `%`_iN($inv_signed_(N, $signed_(M, (i!`%`_iN.0 \ (2 ^ M)))))] -[visit_exp ($inv_signed_(N, $signed_(M, (i!`%`_iN.0 \ (2 ^ M)))))] -[visit_exp $inv_signed_(N, $signed_(M, (i!`%`_iN.0 \ (2 ^ M))))] -[visit_exp N] -[visit_id N] not free -[visit_exp $signed_(M, (i!`%`_iN.0 \ (2 ^ M)))] -[visit_exp M] -[visit_id M] not free -[visit_exp (i!`%`_iN.0 \ (2 ^ M))] -[visit_exp i!`%`_iN.0] -[visit_exp i!`%`_iN] -[visit_exp i] -[visit_id i] not free -[visit_exp (2 ^ M)] -[visit_exp 2] -[visit_exp M] -[visit_id M] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iextend_{N : N, M : M, i : iN(N)}(N, M, `S`_sx, i) = `%`_iN($inv_signed_(N, $signed_(M, (i!`%`_iN.0 \ (2 ^ M))))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_iN(((i_1!`%`_iN.0 + i_2!`%`_iN.0) \ (2 ^ N)))] -[visit_exp (((i_1!`%`_iN.0 + i_2!`%`_iN.0) \ (2 ^ N)))] -[visit_exp ((i_1!`%`_iN.0 + i_2!`%`_iN.0) \ (2 ^ N))] -[visit_exp (i_1!`%`_iN.0 + i_2!`%`_iN.0)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_iN(((i_1!`%`_iN.0 + i_2!`%`_iN.0) \ (2 ^ N))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_iN(((((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] -[visit_exp (((((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat))] -[visit_exp ((((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)] -[visit_exp (((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int))] -[visit_exp ((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int))] -[visit_exp (((2 ^ N) + i_1!`%`_iN.0) : nat <:> int)] -[visit_exp ((2 ^ N) + i_1!`%`_iN.0)] -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp (i_2!`%`_iN.0 : nat <:> int)] -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp ((2 ^ N) : nat <:> int)] -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_iN(((((((2 ^ N) + i_1!`%`_iN.0) : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)) \ ((2 ^ N) : nat <:> int)) : int <:> nat)) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_iN(((i_1!`%`_iN.0 * i_2!`%`_iN.0) \ (2 ^ N)))] -[visit_exp (((i_1!`%`_iN.0 * i_2!`%`_iN.0) \ (2 ^ N)))] -[visit_exp ((i_1!`%`_iN.0 * i_2!`%`_iN.0) \ (2 ^ N))] -[visit_exp (i_1!`%`_iN.0 * i_2!`%`_iN.0)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imul_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_iN(((i_1!`%`_iN.0 * i_2!`%`_iN.0) \ (2 ^ N))) -[check_dims] N i_1 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `%`_iN(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp ?()] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N)}(N, `U`_sx, i_1, `%`_iN(0)) = ?() -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp ?(`%`_iN(($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)))] -[visit_exp `%`_iN(($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat))] -[visit_exp (($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat))] -[visit_exp ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)] -[visit_exp $truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat)))] -[visit_exp ((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))] -[visit_exp (i_1!`%`_iN.0 : nat <:> rat)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp (i_2!`%`_iN.0 : nat <:> rat)] -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = ?(`%`_iN(($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat))) -[check_dims] N i_1 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `%`_iN(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp ?()] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N)}(N, `S`_sx, i_1, `%`_iN(0)) = ?() -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp ?()] -[visit_exp ((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)) = ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat))] -[visit_exp (($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat))] -[visit_exp ($signed_(N, i_1!`%`_iN.0) : int <:> rat)] -[visit_exp $signed_(N, i_1!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp ($signed_(N, i_2!`%`_iN.0) : int <:> rat)] -[visit_exp $signed_(N, i_2!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat)] -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = ?() - -- if ((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)) = ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat)) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp ?(`%`_iN($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat))))))] -[visit_exp `%`_iN($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)))))] -[visit_exp ($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)))))] -[visit_exp $inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat))))] -[visit_exp N] -[visit_id N] not free -[visit_exp $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)))] -[visit_exp (($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat))] -[visit_exp ($signed_(N, i_1!`%`_iN.0) : int <:> rat)] -[visit_exp $signed_(N, i_1!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp ($signed_(N, i_2!`%`_iN.0) : int <:> rat)] -[visit_exp $signed_(N, i_2!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = ?(`%`_iN($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)))))) -[check_dims] N i_1 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `%`_iN(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp ?()] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N)}(N, `U`_sx, i_1, `%`_iN(0)) = ?() -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp ?(`%`_iN((((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat)))] -[visit_exp `%`_iN((((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))] -[visit_exp ((((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))] -[visit_exp (((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat)] -[visit_exp ((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int))] -[visit_exp (i_1!`%`_iN.0 : nat <:> int)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)] -[visit_exp (i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat))] -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)] -[visit_exp $truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat)))] -[visit_exp ((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))] -[visit_exp (i_1!`%`_iN.0 : nat <:> rat)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp (i_2!`%`_iN.0 : nat <:> rat)] -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = ?(`%`_iN((((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))) -[check_dims] N i_1 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `%`_iN(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp ?()] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N)}(N, `S`_sx, i_1, `%`_iN(0)) = ?() -[check_dims] N i_1 i_2 j_1 j_2 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp ?(`%`_iN($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat))))))))] -[visit_exp `%`_iN($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))] -[visit_exp ($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))] -[visit_exp $inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat))))))] -[visit_exp N] -[visit_id N] not free -[visit_exp (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))] -[visit_exp j_1] -[visit_id j_1] -[visit_exp (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat))))] -[visit_exp j_2] -[visit_id j_2] -[visit_exp $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))] -[visit_exp ((j_1 : int <:> rat) / (j_2 : int <:> rat))] -[visit_exp (j_1 : int <:> rat)] -[visit_exp j_1] -[visit_id j_1] not free -[visit_exp (j_2 : int <:> rat)] -[visit_exp j_2] -[visit_id j_2] not free -[visit_exp ((j_1 = $signed_(N, i_1!`%`_iN.0)) /\ (j_2 = $signed_(N, i_2!`%`_iN.0)))] -[visit_exp (j_1 = $signed_(N, i_1!`%`_iN.0))] -[visit_exp j_1] -[visit_id j_1] not free -[visit_exp $signed_(N, i_1!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp (j_2 = $signed_(N, i_2!`%`_iN.0))] -[visit_exp j_2] -[visit_id j_2] not free -[visit_exp $signed_(N, i_2!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), j_1 : int, j_2 : int}(N, `S`_sx, i_1, i_2) = ?(`%`_iN($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))) - -- if ((j_1 = $signed_(N, i_1!`%`_iN.0)) /\ (j_2 = $signed_(N, i_2!`%`_iN.0))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp (i_1!`%`_iN.0 <= i_2!`%`_iN.0)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_1 - -- if (i_1!`%`_iN.0 <= i_2!`%`_iN.0) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp (i_1!`%`_iN.0 > i_2!`%`_iN.0)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_2 - -- if (i_1!`%`_iN.0 > i_2!`%`_iN.0) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp ($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0))] -[visit_exp $signed_(N, i_1!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp $signed_(N, i_2!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_1 - -- if ($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0)) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_2 - -- otherwise -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp (i_1!`%`_iN.0 >= i_2!`%`_iN.0)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_1 - -- if (i_1!`%`_iN.0 >= i_2!`%`_iN.0) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp (i_1!`%`_iN.0 < i_2!`%`_iN.0)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_2 - -- if (i_1!`%`_iN.0 < i_2!`%`_iN.0) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp ($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0))] -[visit_exp $signed_(N, i_1!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp $signed_(N, i_2!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_1 - -- if ($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0)) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_2 - -- otherwise -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int)))] -[visit_exp ($sat_u_(N, ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int)))] -[visit_exp $sat_u_(N, ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int))] -[visit_exp N] -[visit_id N] not free -[visit_exp ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int)] -[visit_exp (i_1!`%`_iN.0 + i_2!`%`_iN.0)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0)))))] -[visit_exp ($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0)))))] -[visit_exp $inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0))))] -[visit_exp N] -[visit_id N] not free -[visit_exp $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0)))] -[visit_exp N] -[visit_id N] not free -[visit_exp ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0))] -[visit_exp $signed_(N, i_1!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp $signed_(N, i_2!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0))))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int))))] -[visit_exp ($sat_u_(N, ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int))))] -[visit_exp $sat_u_(N, ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)))] -[visit_exp N] -[visit_id N] not free -[visit_exp ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int))] -[visit_exp (i_1!`%`_iN.0 : nat <:> int)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp (i_2!`%`_iN.0 : nat <:> int)] -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0)))))] -[visit_exp ($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0)))))] -[visit_exp $inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0))))] -[visit_exp N] -[visit_id N] not free -[visit_exp $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0)))] -[visit_exp N] -[visit_id N] not free -[visit_exp ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0))] -[visit_exp $signed_(N, i_1!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp $signed_(N, i_2!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0))))) -[check_dims] N i_1 -[visit_exp N] -[visit_id N] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `%`_u32($bool((i_1!`%`_iN.0 = 0)))] -[visit_exp ($bool((i_1!`%`_iN.0 = 0)))] -[visit_exp $bool((i_1!`%`_iN.0 = 0))] -[visit_exp (i_1!`%`_iN.0 = 0)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ieqz_{N : N, i_1 : iN(N)}(N, i_1) = `%`_u32($bool((i_1!`%`_iN.0 = 0))) -[check_dims] N i_1 -[visit_exp N] -[visit_id N] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `%`_u32($bool((i_1!`%`_iN.0 =/= 0)))] -[visit_exp ($bool((i_1!`%`_iN.0 =/= 0)))] -[visit_exp $bool((i_1!`%`_iN.0 =/= 0))] -[visit_exp (i_1!`%`_iN.0 =/= 0)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $inez_{N : N, i_1 : iN(N)}(N, i_1) = `%`_u32($bool((i_1!`%`_iN.0 =/= 0))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_u32($bool((i_1 = i_2)))] -[visit_exp ($bool((i_1 = i_2)))] -[visit_exp $bool((i_1 = i_2))] -[visit_exp (i_1 = i_2)] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ieq_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_u32($bool((i_1 = i_2))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_u32($bool((i_1 =/= i_2)))] -[visit_exp ($bool((i_1 =/= i_2)))] -[visit_exp $bool((i_1 =/= i_2))] -[visit_exp (i_1 =/= i_2)] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ine_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, i_1, i_2) = `%`_u32($bool((i_1 =/= i_2))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_u32($bool((i_1!`%`_iN.0 < i_2!`%`_iN.0)))] -[visit_exp ($bool((i_1!`%`_iN.0 < i_2!`%`_iN.0)))] -[visit_exp $bool((i_1!`%`_iN.0 < i_2!`%`_iN.0))] -[visit_exp (i_1!`%`_iN.0 < i_2!`%`_iN.0)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 < i_2!`%`_iN.0))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0))))] -[visit_exp ($bool(($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0))))] -[visit_exp $bool(($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0)))] -[visit_exp ($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0))] -[visit_exp $signed_(N, i_1!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp $signed_(N, i_2!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0)))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_u32($bool((i_1!`%`_iN.0 > i_2!`%`_iN.0)))] -[visit_exp ($bool((i_1!`%`_iN.0 > i_2!`%`_iN.0)))] -[visit_exp $bool((i_1!`%`_iN.0 > i_2!`%`_iN.0))] -[visit_exp (i_1!`%`_iN.0 > i_2!`%`_iN.0)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $igt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 > i_2!`%`_iN.0))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0))))] -[visit_exp ($bool(($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0))))] -[visit_exp $bool(($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0)))] -[visit_exp ($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0))] -[visit_exp $signed_(N, i_1!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp $signed_(N, i_2!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $igt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0)))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_u32($bool((i_1!`%`_iN.0 <= i_2!`%`_iN.0)))] -[visit_exp ($bool((i_1!`%`_iN.0 <= i_2!`%`_iN.0)))] -[visit_exp $bool((i_1!`%`_iN.0 <= i_2!`%`_iN.0))] -[visit_exp (i_1!`%`_iN.0 <= i_2!`%`_iN.0)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ile_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 <= i_2!`%`_iN.0))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0))))] -[visit_exp ($bool(($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0))))] -[visit_exp $bool(($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0)))] -[visit_exp ($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0))] -[visit_exp $signed_(N, i_1!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp $signed_(N, i_2!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ile_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0)))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_u32($bool((i_1!`%`_iN.0 >= i_2!`%`_iN.0)))] -[visit_exp ($bool((i_1!`%`_iN.0 >= i_2!`%`_iN.0)))] -[visit_exp $bool((i_1!`%`_iN.0 >= i_2!`%`_iN.0))] -[visit_exp (i_1!`%`_iN.0 >= i_2!`%`_iN.0)] -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ige_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 >= i_2!`%`_iN.0))) -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0))))] -[visit_exp ($bool(($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0))))] -[visit_exp $bool(($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0)))] -[visit_exp ($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0))] -[visit_exp $signed_(N, i_1!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1!`%`_iN.0] -[visit_exp i_1!`%`_iN] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp $signed_(N, i_2!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_2!`%`_iN.0] -[visit_exp i_2!`%`_iN] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ige_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0)))) -[check_dims] N fN -DecD fabs_(N : N, fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fneg_(N : N, fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fsqrt_(N : N, fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fceil_(N : N, fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD ffloor_(N : N, fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD ftrunc_(N : N, fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fnearest_(N : N, fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fadd_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fsub_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fmul_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fdiv_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fmin_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fmax_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fpmin_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fpmax_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD frelaxed_min_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD frelaxed_max_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fcopysign_(N : N, fN : fN(N), fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD feq_(N : N, fN : fN(N), fN : fN(N)) : u32 -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fne_(N : N, fN : fN(N), fN : fN(N)) : u32 -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD flt_(N : N, fN : fN(N), fN : fN(N)) : u32 -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fgt_(N : N, fN : fN(N), fN : fN(N)) : u32 -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fle_(N : N, fN : fN(N), fN : fN(N)) : u32 -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD fge_(N : N, fN : fN(N), fN : fN(N)) : u32 -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD frelaxed_madd_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N fN -DecD frelaxed_nmadd_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)* -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] M N iN -DecD wrap__(M : M, N : N, iN : iN(M)) : iN(N) -[visit_id M] not free -[visit_id N] not free -[visit_id iN] not free -[visit_exp M] -[visit_id M] not free -[visit_exp N] -[visit_id N] not free -[check_dims] M N iN sx -DecD extend__(M : M, N : N, sx : sx, iN : iN(M)) : iN(N) -[visit_id M] not free -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp M] -[visit_id M] not free -[visit_exp N] -[visit_id N] not free -[check_dims] M N fN sx -DecD trunc__(M : M, N : N, sx : sx, fN : fN(M)) : iN(N)? -[visit_id M] not free -[visit_id N] not free -[visit_id sx] not free -[visit_id fN] not free -[visit_exp M] -[visit_id M] not free -[visit_exp N] -[visit_id N] not free -[check_dims] M N fN sx -DecD trunc_sat__(M : M, N : N, sx : sx, fN : fN(M)) : iN(N)? -[visit_id M] not free -[visit_id N] not free -[visit_id sx] not free -[visit_id fN] not free -[visit_exp M] -[visit_id M] not free -[visit_exp N] -[visit_id N] not free -[check_dims] M N fN sx -DecD relaxed_trunc__(M : M, N : N, sx : sx, fN : fN(M)) : iN(N)? -[visit_id M] not free -[visit_id N] not free -[visit_id sx] not free -[visit_id fN] not free -[visit_exp M] -[visit_id M] not free -[visit_exp N] -[visit_id N] not free -[check_dims] M N fN -DecD demote__(M : M, N : N, fN : fN(M)) : fN(N)* -[visit_id M] not free -[visit_id N] not free -[visit_id fN] not free -[visit_exp M] -[visit_id M] not free -[visit_exp N] -[visit_id N] not free -[check_dims] M N fN -DecD promote__(M : M, N : N, fN : fN(M)) : fN(N)* -[visit_id M] not free -[visit_id N] not free -[visit_id fN] not free -[visit_exp M] -[visit_id M] not free -[visit_exp N] -[visit_id N] not free -[check_dims] M N iN sx -DecD convert__(M : M, N : N, sx : sx, iN : iN(M)) : fN(N) -[visit_id M] not free -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp M] -[visit_id M] not free -[visit_exp N] -[visit_id N] not free -[check_dims] M N iN sx -DecD narrow__(M : M, N : N, sx : sx, iN : iN(M)) : iN(N) -[visit_id M] not free -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp M] -[visit_id M] not free -[visit_exp N] -[visit_id N] not free -[check_dims] num_ numtype_1 numtype_2 -DecD reinterpret__(numtype_1 : numtype, numtype_2 : numtype, num_ : num_(numtype_1)) : num_(numtype_2) -[visit_id numtype_1] not free -[visit_id numtype_2] not free -[visit_id num_] not free -[visit_exp numtype_1] -[visit_id numtype_1] not free -[visit_exp numtype_2] -[visit_id numtype_2] not free -[check_dims] lanetype num_ -DecD lpacknum_(lanetype : lanetype, num_ : num_($lunpack(lanetype))) : lane_(lanetype) -[visit_id lanetype] not free -[visit_id num_] not free -[visit_exp $lunpack(lanetype)] -[visit_exp lanetype] -[visit_id lanetype] not free -[visit_exp lanetype] -[visit_id lanetype] not free -[check_dims] lit_ storagetype -DecD cpacknum_(storagetype : storagetype, lit_ : lit_(($cunpack(storagetype) : consttype <: storagetype))) : lit_(storagetype) -[visit_id storagetype] not free -[visit_id lit_] not free -[visit_exp ($cunpack(storagetype) : consttype <: storagetype)] -[visit_exp $cunpack(storagetype)] -[visit_exp storagetype] -[visit_id storagetype] not free -[visit_exp storagetype] -[visit_id storagetype] not free -[check_dims] c numtype -[visit_exp (numtype : numtype <: lanetype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp c] -[visit_id c] -[visit_exp c] -[visit_id c] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $lpacknum_{numtype : numtype, c : num_($lunpack((numtype : numtype <: lanetype)))}((numtype : numtype <: lanetype), c) = c -[check_dims] c packtype -[visit_exp (packtype : packtype <: lanetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp c] -[visit_id c] -[visit_exp $wrap__($size($lunpack((packtype : packtype <: lanetype))), $psize(packtype), c)] -[visit_exp $size($lunpack((packtype : packtype <: lanetype)))] -[visit_exp $lunpack((packtype : packtype <: lanetype))] -[visit_exp (packtype : packtype <: lanetype)] -[visit_exp packtype] -[visit_id packtype] not free -[visit_exp $psize(packtype)] -[visit_exp packtype] -[visit_id packtype] not free -[visit_exp c] -[visit_id c] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $lpacknum_{packtype : packtype, c : num_($lunpack((packtype : packtype <: lanetype)))}((packtype : packtype <: lanetype), c) = $wrap__($size($lunpack((packtype : packtype <: lanetype))), $psize(packtype), c) -[check_dims] c consttype -[visit_exp (consttype : consttype <: storagetype)] -[visit_exp consttype] -[visit_id consttype] -[visit_exp c] -[visit_id c] -[visit_exp c] -[visit_id c] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cpacknum_{consttype : consttype, c : lit_(($cunpack((consttype : consttype <: storagetype)) : consttype <: storagetype))}((consttype : consttype <: storagetype), c) = c -[check_dims] c packtype -[visit_exp (packtype : packtype <: storagetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp c] -[visit_id c] -[visit_exp $wrap__($size($lunpack((packtype : packtype <: lanetype))), $psize(packtype), c)] -[visit_exp $size($lunpack((packtype : packtype <: lanetype)))] -[visit_exp $lunpack((packtype : packtype <: lanetype))] -[visit_exp (packtype : packtype <: lanetype)] -[visit_exp packtype] -[visit_id packtype] not free -[visit_exp $psize(packtype)] -[visit_exp packtype] -[visit_id packtype] not free -[visit_exp c] -[visit_id c] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cpacknum_{packtype : packtype, c : lit_(($cunpack((packtype : packtype <: storagetype)) : consttype <: storagetype))}((packtype : packtype <: storagetype), c) = $wrap__($size($lunpack((packtype : packtype <: lanetype))), $psize(packtype), c) -[check_dims] lane_ lanetype -DecD lunpacknum_(lanetype : lanetype, lane_ : lane_(lanetype)) : num_($lunpack(lanetype)) -[visit_id lanetype] not free -[visit_id lane_] not free -[visit_exp lanetype] -[visit_id lanetype] not free -[visit_exp $lunpack(lanetype)] -[visit_exp lanetype] -[visit_id lanetype] not free -[check_dims] lit_ storagetype -DecD cunpacknum_(storagetype : storagetype, lit_ : lit_(storagetype)) : lit_(($cunpack(storagetype) : consttype <: storagetype)) -[visit_id storagetype] not free -[visit_id lit_] not free -[visit_exp storagetype] -[visit_id storagetype] not free -[visit_exp ($cunpack(storagetype) : consttype <: storagetype)] -[visit_exp $cunpack(storagetype)] -[visit_exp storagetype] -[visit_id storagetype] not free -[check_dims] c numtype -[visit_exp (numtype : numtype <: lanetype)] -[visit_exp numtype] -[visit_id numtype] -[visit_exp c] -[visit_id c] -[visit_exp c] -[visit_id c] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $lunpacknum_{numtype : numtype, c : lane_((numtype : numtype <: lanetype))}((numtype : numtype <: lanetype), c) = c -[check_dims] c packtype -[visit_exp (packtype : packtype <: lanetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp c] -[visit_id c] -[visit_exp $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), `U`_sx, c)] -[visit_exp $psize(packtype)] -[visit_exp packtype] -[visit_id packtype] not free -[visit_exp $size($lunpack((packtype : packtype <: lanetype)))] -[visit_exp $lunpack((packtype : packtype <: lanetype))] -[visit_exp (packtype : packtype <: lanetype)] -[visit_exp packtype] -[visit_id packtype] not free -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp c] -[visit_id c] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $lunpacknum_{packtype : packtype, c : lane_((packtype : packtype <: lanetype))}((packtype : packtype <: lanetype), c) = $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), `U`_sx, c) -[check_dims] c consttype -[visit_exp (consttype : consttype <: storagetype)] -[visit_exp consttype] -[visit_id consttype] -[visit_exp c] -[visit_id c] -[visit_exp c] -[visit_id c] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cunpacknum_{consttype : consttype, c : lit_((consttype : consttype <: storagetype))}((consttype : consttype <: storagetype), c) = c -[check_dims] c packtype -[visit_exp (packtype : packtype <: storagetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp c] -[visit_id c] -[visit_exp $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), `U`_sx, c)] -[visit_exp $psize(packtype)] -[visit_exp packtype] -[visit_id packtype] not free -[visit_exp $size($lunpack((packtype : packtype <: lanetype)))] -[visit_exp $lunpack((packtype : packtype <: lanetype))] -[visit_exp (packtype : packtype <: lanetype)] -[visit_exp packtype] -[visit_id packtype] not free -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp c] -[visit_id c] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cunpacknum_{packtype : packtype, c : lit_((packtype : packtype <: storagetype))}((packtype : packtype <: storagetype), c) = $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), `U`_sx, c) -[check_dims] num_ numtype unop_ -DecD unop_(numtype : numtype, unop_ : unop_(numtype), num_ : num_(numtype)) : num_(numtype)* -[visit_id numtype] not free -[visit_id unop_] not free -[visit_exp numtype] -[visit_id numtype] not free -[visit_id num_] not free -[visit_exp numtype] -[visit_id numtype] not free -[visit_exp numtype] -[visit_id numtype] not free -[check_dims] binop_ num_ numtype -DecD binop_(numtype : numtype, binop_ : binop_(numtype), num_ : num_(numtype), num_ : num_(numtype)) : num_(numtype)* -[visit_id numtype] not free -[visit_id binop_] not free -[visit_exp numtype] -[visit_id numtype] not free -[visit_id num_] not free -[visit_exp numtype] -[visit_id numtype] not free -[visit_id num_] not free -[visit_exp numtype] -[visit_id numtype] not free -[visit_exp numtype] -[visit_id numtype] not free -[check_dims] num_ numtype testop_ -DecD testop_(numtype : numtype, testop_ : testop_(numtype), num_ : num_(numtype)) : u32 -[visit_id numtype] not free -[visit_id testop_] not free -[visit_exp numtype] -[visit_id numtype] not free -[visit_id num_] not free -[visit_exp numtype] -[visit_id numtype] not free -[check_dims] num_ numtype relop_ -DecD relop_(numtype : numtype, relop_ : relop_(numtype), num_ : num_(numtype), num_ : num_(numtype)) : u32 -[visit_id numtype] not free -[visit_id relop_] not free -[visit_exp numtype] -[visit_id numtype] not free -[visit_id num_] not free -[visit_exp numtype] -[visit_id numtype] not free -[visit_id num_] not free -[visit_exp numtype] -[visit_id numtype] not free -[check_dims] cvtop__ num_ numtype_1 numtype_2 -DecD cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype_1, numtype_2), num_ : num_(numtype_1)) : num_(numtype_2)* -[visit_id numtype_1] not free -[visit_id numtype_2] not free -[visit_id cvtop__] not free -[visit_exp numtype_1] -[visit_id numtype_1] not free -[visit_exp numtype_2] -[visit_id numtype_2] not free -[visit_id num_] not free -[visit_exp numtype_1] -[visit_id numtype_1] not free -[visit_exp numtype_2] -[visit_id numtype_2] not free -[check_dims] Inn i -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `CLZ`_unop_] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp [$iclz_($sizenn((Inn : Inn <: numtype)), i)]] -[visit_exp $iclz_($sizenn((Inn : Inn <: numtype)), i)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `CLZ`_unop_, i) = [$iclz_($sizenn((Inn : Inn <: numtype)), i)] -[check_dims] Inn i -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `CTZ`_unop_] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp [$ictz_($sizenn((Inn : Inn <: numtype)), i)]] -[visit_exp $ictz_($sizenn((Inn : Inn <: numtype)), i)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `CTZ`_unop_, i) = [$ictz_($sizenn((Inn : Inn <: numtype)), i)] -[check_dims] Inn i -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `POPCNT`_unop_] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp [$ipopcnt_($sizenn((Inn : Inn <: numtype)), i)]] -[visit_exp $ipopcnt_($sizenn((Inn : Inn <: numtype)), i)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `POPCNT`_unop_, i) = [$ipopcnt_($sizenn((Inn : Inn <: numtype)), i)] -[check_dims] Inn M i -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `EXTEND`_unop_(`%`_sz(M))] -[visit_exp (`%`_sz(M))] -[visit_exp `%`_sz(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp i] -[visit_id i] -[visit_exp [$iextend_($sizenn((Inn : Inn <: numtype)), M, `S`_sx, i)]] -[visit_exp $iextend_($sizenn((Inn : Inn <: numtype)), M, `S`_sx, i)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp M] -[visit_id M] not free -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, M : M, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EXTEND`_unop_(`%`_sz(M)), i) = [$iextend_($sizenn((Inn : Inn <: numtype)), M, `S`_sx, i)] -[check_dims] Fnn f -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `ABS`_unop_] -[visit_exp ()] -[visit_exp f] -[visit_id f] -[visit_exp $fabs_($sizenn((Fnn : Fnn <: numtype)), f)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `ABS`_unop_, f) = $fabs_($sizenn((Fnn : Fnn <: numtype)), f) -[check_dims] Fnn f -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `NEG`_unop_] -[visit_exp ()] -[visit_exp f] -[visit_id f] -[visit_exp $fneg_($sizenn((Fnn : Fnn <: numtype)), f)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `NEG`_unop_, f) = $fneg_($sizenn((Fnn : Fnn <: numtype)), f) -[check_dims] Fnn f -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `SQRT`_unop_] -[visit_exp ()] -[visit_exp f] -[visit_id f] -[visit_exp $fsqrt_($sizenn((Fnn : Fnn <: numtype)), f)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `SQRT`_unop_, f) = $fsqrt_($sizenn((Fnn : Fnn <: numtype)), f) -[check_dims] Fnn f -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `CEIL`_unop_] -[visit_exp ()] -[visit_exp f] -[visit_id f] -[visit_exp $fceil_($sizenn((Fnn : Fnn <: numtype)), f)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `CEIL`_unop_, f) = $fceil_($sizenn((Fnn : Fnn <: numtype)), f) -[check_dims] Fnn f -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `FLOOR`_unop_] -[visit_exp ()] -[visit_exp f] -[visit_id f] -[visit_exp $ffloor_($sizenn((Fnn : Fnn <: numtype)), f)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `FLOOR`_unop_, f) = $ffloor_($sizenn((Fnn : Fnn <: numtype)), f) -[check_dims] Fnn f -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `TRUNC`_unop_] -[visit_exp ()] -[visit_exp f] -[visit_id f] -[visit_exp $ftrunc_($sizenn((Fnn : Fnn <: numtype)), f)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `TRUNC`_unop_, f) = $ftrunc_($sizenn((Fnn : Fnn <: numtype)), f) -[check_dims] Fnn f -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `NEAREST`_unop_] -[visit_exp ()] -[visit_exp f] -[visit_id f] -[visit_exp $fnearest_($sizenn((Fnn : Fnn <: numtype)), f)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `NEAREST`_unop_, f) = $fnearest_($sizenn((Fnn : Fnn <: numtype)), f) -[check_dims] Inn i_1 i_2 -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `ADD`_binop_] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp [$iadd_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] -[visit_exp $iadd_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `ADD`_binop_, i_1, i_2) = [$iadd_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[check_dims] Inn i_1 i_2 -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `SUB`_binop_] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp [$isub_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] -[visit_exp $isub_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `SUB`_binop_, i_1, i_2) = [$isub_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[check_dims] Inn i_1 i_2 -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `MUL`_binop_] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp [$imul_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] -[visit_exp $imul_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `MUL`_binop_, i_1, i_2) = [$imul_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[check_dims] Inn i_1 i_2 sx -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `DIV`_binop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp lift($idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2))] -[visit_exp $idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `DIV`_binop_(sx), i_1, i_2) = lift($idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) -[check_dims] Inn i_1 i_2 sx -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `REM`_binop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp lift($irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2))] -[visit_exp $irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `REM`_binop_(sx), i_1, i_2) = lift($irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) -[check_dims] Inn i_1 i_2 -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `AND`_binop_] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp [$iand_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] -[visit_exp $iand_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `AND`_binop_, i_1, i_2) = [$iand_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[check_dims] Inn i_1 i_2 -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `OR`_binop_] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp [$ior_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] -[visit_exp $ior_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `OR`_binop_, i_1, i_2) = [$ior_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[check_dims] Inn i_1 i_2 -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `XOR`_binop_] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp [$ixor_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] -[visit_exp $ixor_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `XOR`_binop_, i_1, i_2) = [$ixor_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[check_dims] Inn i_1 i_2 -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `SHL`_binop_] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32(i_2!`%`_num_.0))]] -[visit_exp $ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32(i_2!`%`_num_.0))] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp `%`_u32(i_2!`%`_num_.0)] -[visit_exp (i_2!`%`_num_.0)] -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `SHL`_binop_, i_1, i_2) = [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32(i_2!`%`_num_.0))] -[check_dims] Inn i_1 i_2 sx -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `SHR`_binop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32(i_2!`%`_num_.0))]] -[visit_exp $ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32(i_2!`%`_num_.0))] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp `%`_u32(i_2!`%`_num_.0)] -[visit_exp (i_2!`%`_num_.0)] -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `SHR`_binop_(sx), i_1, i_2) = [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32(i_2!`%`_num_.0))] -[check_dims] Inn i_1 i_2 -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `ROTL`_binop_] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp [$irotl_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] -[visit_exp $irotl_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `ROTL`_binop_, i_1, i_2) = [$irotl_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[check_dims] Inn i_1 i_2 -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `ROTR`_binop_] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp [$irotr_($sizenn((Inn : Inn <: numtype)), i_1, i_2)]] -[visit_exp $irotr_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `ROTR`_binop_, i_1, i_2) = [$irotr_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[check_dims] Fnn f_1 f_2 -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `ADD`_binop_] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp f_2] -[visit_id f_2] -[visit_exp $fadd_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp f_2] -[visit_id f_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `ADD`_binop_, f_1, f_2) = $fadd_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Fnn f_1 f_2 -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `SUB`_binop_] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp f_2] -[visit_id f_2] -[visit_exp $fsub_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp f_2] -[visit_id f_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `SUB`_binop_, f_1, f_2) = $fsub_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Fnn f_1 f_2 -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `MUL`_binop_] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp f_2] -[visit_id f_2] -[visit_exp $fmul_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp f_2] -[visit_id f_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `MUL`_binop_, f_1, f_2) = $fmul_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Fnn f_1 f_2 -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `DIV`_binop_] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp f_2] -[visit_id f_2] -[visit_exp $fdiv_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp f_2] -[visit_id f_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `DIV`_binop_, f_1, f_2) = $fdiv_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Fnn f_1 f_2 -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `MIN`_binop_] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp f_2] -[visit_id f_2] -[visit_exp $fmin_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp f_2] -[visit_id f_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `MIN`_binop_, f_1, f_2) = $fmin_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Fnn f_1 f_2 -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `MAX`_binop_] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp f_2] -[visit_id f_2] -[visit_exp $fmax_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp f_2] -[visit_id f_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `MAX`_binop_, f_1, f_2) = $fmax_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Fnn f_1 f_2 -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `COPYSIGN`_binop_] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp f_2] -[visit_id f_2] -[visit_exp $fcopysign_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp f_2] -[visit_id f_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `COPYSIGN`_binop_, f_1, f_2) = $fcopysign_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Inn i -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `EQZ`_testop_] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp $ieqz_($sizenn((Inn : Inn <: numtype)), i)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $testop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EQZ`_testop_, i) = $ieqz_($sizenn((Inn : Inn <: numtype)), i) -[check_dims] Inn i_1 i_2 -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `EQ`_relop_] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp $ieq_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EQ`_relop_, i_1, i_2) = $ieq_($sizenn((Inn : Inn <: numtype)), i_1, i_2) -[check_dims] Inn i_1 i_2 -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `NE`_relop_] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp $ine_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `NE`_relop_, i_1, i_2) = $ine_($sizenn((Inn : Inn <: numtype)), i_1, i_2) -[check_dims] Inn i_1 i_2 sx -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `LT`_relop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp $ilt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LT`_relop_(sx), i_1, i_2) = $ilt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) -[check_dims] Inn i_1 i_2 sx -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `GT`_relop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp $igt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GT`_relop_(sx), i_1, i_2) = $igt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) -[check_dims] Inn i_1 i_2 sx -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `LE`_relop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp $ile_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LE`_relop_(sx), i_1, i_2) = $ile_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) -[check_dims] Inn i_1 i_2 sx -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `GE`_relop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp i_1] -[visit_id i_1] -[visit_exp i_2] -[visit_id i_2] -[visit_exp $ige_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)] -[visit_exp $sizenn((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GE`_relop_(sx), i_1, i_2) = $ige_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) -[check_dims] Fnn f_1 f_2 -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `EQ`_relop_] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp f_2] -[visit_id f_2] -[visit_exp $feq_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp f_2] -[visit_id f_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `EQ`_relop_, f_1, f_2) = $feq_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Fnn f_1 f_2 -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `NE`_relop_] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp f_2] -[visit_id f_2] -[visit_exp $fne_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp f_2] -[visit_id f_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `NE`_relop_, f_1, f_2) = $fne_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Fnn f_1 f_2 -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `LT`_relop_] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp f_2] -[visit_id f_2] -[visit_exp $flt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp f_2] -[visit_id f_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `LT`_relop_, f_1, f_2) = $flt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Fnn f_1 f_2 -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `GT`_relop_] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp f_2] -[visit_id f_2] -[visit_exp $fgt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp f_2] -[visit_id f_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `GT`_relop_, f_1, f_2) = $fgt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Fnn f_1 f_2 -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `LE`_relop_] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp f_2] -[visit_id f_2] -[visit_exp $fle_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp f_2] -[visit_id f_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `LE`_relop_, f_1, f_2) = $fle_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Fnn f_1 f_2 -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `GE`_relop_] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp f_2] -[visit_id f_2] -[visit_exp $fge_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp f_2] -[visit_id f_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `GE`_relop_, f_1, f_2) = $fge_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) -[check_dims] Inn_1 Inn_2 i_1 sx -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] -[visit_exp `EXTEND`_cvtop__(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp i_1] -[visit_id i_1] -[visit_exp [$extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)]] -[visit_exp $extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)] -[visit_exp $sizenn1((Inn_1 : Inn <: numtype))] -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] not free -[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp i_1] -[visit_id i_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `EXTEND`_cvtop__(sx), i_1) = [$extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)] -[check_dims] Inn_1 Inn_2 i_1 -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] -[visit_exp `WRAP`_cvtop__] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp [$wrap__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), i_1)]] -[visit_exp $wrap__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), i_1)] -[visit_exp $sizenn1((Inn_1 : Inn <: numtype))] -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] not free -[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] not free -[visit_exp i_1] -[visit_id i_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `WRAP`_cvtop__, i_1) = [$wrap__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), i_1)] -[check_dims] Fnn_1 Inn_2 f_1 sx -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] -[visit_exp `TRUNC`_cvtop__(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp f_1] -[visit_id f_1] -[visit_exp lift($trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1))] -[visit_exp $trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)] -[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp f_1] -[visit_id f_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC`_cvtop__(sx), f_1) = lift($trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) -[check_dims] Fnn_1 Inn_2 f_1 sx -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] -[visit_exp `TRUNC_SAT`_cvtop__(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp f_1] -[visit_id f_1] -[visit_exp lift($trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1))] -[visit_exp $trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)] -[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_exp $sizenn2((Inn_2 : Inn <: numtype))] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp f_1] -[visit_id f_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC_SAT`_cvtop__(sx), f_1) = lift($trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) -[check_dims] Fnn_2 Inn_1 i_1 sx -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `CONVERT`_cvtop__(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp i_1] -[visit_id i_1] -[visit_exp [$convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)]] -[visit_exp $convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)] -[visit_exp $sizenn1((Inn_1 : Inn <: numtype))] -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] not free -[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp i_1] -[visit_id i_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), `CONVERT`_cvtop__(sx), i_1) = [$convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)] -[check_dims] Fnn_1 Fnn_2 f_1 -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `PROMOTE`_cvtop__] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp $promote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1)] -[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_exp f_1] -[visit_id f_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype), `PROMOTE`_cvtop__, f_1) = $promote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1) -[check_dims] Fnn_1 Fnn_2 f_1 -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `DEMOTE`_cvtop__] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp $demote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1)] -[visit_exp $sizenn1((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_exp $sizenn2((Fnn_2 : Fnn <: numtype))] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_exp f_1] -[visit_id f_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype), `DEMOTE`_cvtop__, f_1) = $demote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1) -[check_dims] Fnn_2 Inn_1 i_1 -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `REINTERPRET`_cvtop__] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp [$reinterpret__((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), i_1)]] -[visit_exp $reinterpret__((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), i_1)] -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] not free -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp ($size((Inn_1 : Inn <: numtype)) = $size((Fnn_2 : Fnn <: numtype)))] -[visit_exp $size((Inn_1 : Inn <: numtype))] -[visit_exp (Inn_1 : Inn <: numtype)] -[visit_exp Inn_1] -[visit_id Inn_1] not free -[visit_exp $size((Fnn_2 : Fnn <: numtype))] -[visit_exp (Fnn_2 : Fnn <: numtype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), `REINTERPRET`_cvtop__, i_1) = [$reinterpret__((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), i_1)] - -- if ($size((Inn_1 : Inn <: numtype)) = $size((Fnn_2 : Fnn <: numtype))) -[check_dims] Fnn_1 Inn_2 f_1 -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] -[visit_exp `REINTERPRET`_cvtop__] -[visit_exp ()] -[visit_exp f_1] -[visit_id f_1] -[visit_exp [$reinterpret__((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), f_1)]] -[visit_exp $reinterpret__((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), f_1)] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] not free -[visit_exp f_1] -[visit_id f_1] not free -[visit_exp ($size((Fnn_1 : Fnn <: numtype)) = $size((Inn_2 : Inn <: numtype)))] -[visit_exp $size((Fnn_1 : Fnn <: numtype))] -[visit_exp (Fnn_1 : Fnn <: numtype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_exp $size((Inn_2 : Inn <: numtype))] -[visit_exp (Inn_2 : Inn <: numtype)] -[visit_exp Inn_2] -[visit_id Inn_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `REINTERPRET`_cvtop__, f_1) = [$reinterpret__((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), f_1)] - -- if ($size((Fnn_1 : Fnn <: numtype)) = $size((Inn_2 : Inn <: numtype))) -[check_dims] shape vec_ -DecD lanes_(shape : shape, vec_ : vec_(`V128`_Vnn)) : lane_($lanetype(shape))* -[visit_id shape] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp $lanetype(shape)] -[visit_exp shape] -[visit_id shape] not free -[check_dims] _ shape -DecD inv_lanes_(shape : shape, lane_($lanetype(shape))*) : vec_(`V128`_Vnn) -[visit_id shape] not free -[visit_id _] not free -[visit_exp $lanetype(shape)] -[visit_exp shape] -[visit_id shape] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] shape_1 shape_2 vcvtop__ -DecD zeroop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2)) : zero? -[visit_id shape_1] not free -[visit_id shape_2] not free -[visit_id vcvtop__] not free -[visit_exp shape_1] -[visit_id shape_1] not free -[visit_exp shape_2] -[visit_id shape_2] not free -[check_dims] Jnn_1 Jnn_2 M_1 M_2 half sx -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `EXTEND`_vcvtop__(half, sx)] -[visit_exp (half, sx)] -[visit_exp half] -[visit_id half] -[visit_exp sx] -[visit_id sx] -[visit_exp ?()] -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `EXTEND`_vcvtop__(half, sx)) = ?() -[check_dims] Fnn_2 Jnn_1 M_1 M_2 half sx -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)] -[visit_exp (half?{half <- `half?`}, sx)] -[visit_exp half?{half <- `half?`}] -[scope_enter half] -[visit_exp half] -[visit_id half] not free -[visit_id half] not free -[scope_exit half] -[visit_exp `half?`] -[visit_id half?] no dims -[visit_id half?] -[visit_exp sx] -[visit_id sx] -[visit_exp ?()] -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)) = ?() -[check_dims] Fnn_1 Jnn_2 M_1 M_2 sx zero -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})] -[visit_exp (sx, zero?{zero <- `zero?`})] -[visit_exp sx] -[visit_id sx] -[visit_exp zero?{zero <- `zero?`}] -[scope_enter zero] -[visit_exp zero] -[visit_id zero] not free -[visit_id zero] not free -[scope_exit zero] -[visit_exp `zero?`] -[visit_id zero?] no dims -[visit_id zero?] -[visit_exp zero?{zero <- `zero?`}] -[scope_enter zero] -[visit_exp zero] -[visit_id zero] not free -[visit_id zero] not free -[scope_exit zero] -[visit_exp `zero?`] -[visit_id zero?] not free -[visit_id zero?] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} -[check_dims] Fnn_1 Jnn_2 M_1 M_2 sx zero -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})] -[visit_exp (sx, zero?{zero <- `zero?`})] -[visit_exp sx] -[visit_id sx] -[visit_exp zero?{zero <- `zero?`}] -[scope_enter zero] -[visit_exp zero] -[visit_id zero] not free -[visit_id zero] not free -[scope_exit zero] -[visit_exp `zero?`] -[visit_id zero?] no dims -[visit_id zero?] -[visit_exp zero?{zero <- `zero?`}] -[scope_enter zero] -[visit_exp zero] -[visit_id zero] not free -[visit_id zero] not free -[scope_exit zero] -[visit_exp `zero?`] -[visit_id zero?] not free -[visit_id zero?] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} -[check_dims] Fnn_1 Fnn_2 M_1 M_2 zero -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `DEMOTE`_vcvtop__(zero)] -[visit_exp (zero)] -[visit_exp zero] -[visit_id zero] -[visit_exp ?(zero)] -[visit_exp zero] -[visit_id zero] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, zero : zero}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `DEMOTE`_vcvtop__(zero)) = ?(zero) -[check_dims] Fnn_1 Fnn_2 M_1 M_2 -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `PROMOTELOW`_vcvtop__] -[visit_exp ()] -[visit_exp ?()] -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__) = ?() -[check_dims] shape_1 shape_2 vcvtop__ -DecD halfop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2)) : half? -[visit_id shape_1] not free -[visit_id shape_2] not free -[visit_id vcvtop__] not free -[visit_exp shape_1] -[visit_id shape_1] not free -[visit_exp shape_2] -[visit_id shape_2] not free -[check_dims] Jnn_1 Jnn_2 M_1 M_2 half sx -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `EXTEND`_vcvtop__(half, sx)] -[visit_exp (half, sx)] -[visit_exp half] -[visit_id half] -[visit_exp sx] -[visit_id sx] -[visit_exp ?(half)] -[visit_exp half] -[visit_id half] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `EXTEND`_vcvtop__(half, sx)) = ?(half) -[check_dims] Fnn_2 Jnn_1 M_1 M_2 half sx -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)] -[visit_exp (half?{half <- `half?`}, sx)] -[visit_exp half?{half <- `half?`}] -[scope_enter half] -[visit_exp half] -[visit_id half] not free -[visit_id half] not free -[scope_exit half] -[visit_exp `half?`] -[visit_id half?] no dims -[visit_id half?] -[visit_exp sx] -[visit_id sx] -[visit_exp half?{half <- `half?`}] -[scope_enter half] -[visit_exp half] -[visit_id half] not free -[visit_id half] not free -[scope_exit half] -[visit_exp `half?`] -[visit_id half?] not free -[visit_id half?] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)) = half?{half <- `half?`} -[check_dims] Fnn_1 Jnn_2 M_1 M_2 sx zero -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})] -[visit_exp (sx, zero?{zero <- `zero?`})] -[visit_exp sx] -[visit_id sx] -[visit_exp zero?{zero <- `zero?`}] -[scope_enter zero] -[visit_exp zero] -[visit_id zero] not free -[visit_id zero] not free -[scope_exit zero] -[visit_exp `zero?`] -[visit_id zero?] no dims -[visit_id zero?] -[visit_exp ?()] -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})) = ?() -[check_dims] Fnn_1 Jnn_2 M_1 M_2 sx zero -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})] -[visit_exp (sx, zero?{zero <- `zero?`})] -[visit_exp sx] -[visit_id sx] -[visit_exp zero?{zero <- `zero?`}] -[scope_enter zero] -[visit_exp zero] -[visit_id zero] not free -[visit_id zero] not free -[scope_exit zero] -[visit_exp `zero?`] -[visit_id zero?] no dims -[visit_id zero?] -[visit_exp ?()] -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})) = ?() -[check_dims] Fnn_1 Fnn_2 M_1 M_2 zero -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `DEMOTE`_vcvtop__(zero)] -[visit_exp (zero)] -[visit_exp zero] -[visit_id zero] -[visit_exp ?()] -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, zero : zero}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `DEMOTE`_vcvtop__(zero)) = ?() -[check_dims] Fnn_1 Fnn_2 M_1 M_2 -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `PROMOTELOW`_vcvtop__] -[visit_exp ()] -[visit_exp ?(`LOW`_half)] -[visit_exp `LOW`_half] -[visit_exp ()] -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__) = ?(`LOW`_half) -[check_dims] half nat -DecD half(half : half, nat : nat, nat : nat) : nat -[visit_id half] not free -[visit_id nat] not free -[visit_id nat] not free -[check_dims] i j -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp j] -[visit_id j] -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $half{i : nat, j : nat}(`LOW`_half, i, j) = i -[check_dims] i j -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp j] -[visit_id j] -[visit_exp j] -[visit_id j] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $half{i : nat, j : nat}(`HIGH`_half, i, j) = j -[check_dims] N _ iN -DecD iswizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N _ iN -DecD irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N c i -[visit_exp N] -[visit_id N] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp i] -[visit_id i] -[visit_exp c*{c <- `c*`}[i!`%`_iN.0]] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp i!`%`_iN.0] -[visit_exp i!`%`_iN] -[visit_exp i] -[visit_id i] not free -[visit_exp (i!`%`_iN.0 < |c*{c <- `c*`}|)] -[visit_exp i!`%`_iN.0] -[visit_exp i!`%`_iN] -[visit_exp i] -[visit_id i] not free -[visit_exp |c*{c <- `c*`}|] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN.0] - -- if (i!`%`_iN.0 < |c*{c <- `c*`}|) -[check_dims] N c i -[visit_exp N] -[visit_id N] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp i] -[visit_id i] -[visit_exp `%`_iN(0)] -[visit_exp (0)] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $iswizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = `%`_iN(0) - -- otherwise -[check_dims] N c i -[visit_exp N] -[visit_id N] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp i] -[visit_id i] -[visit_exp c*{c <- `c*`}[i!`%`_iN.0]] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp i!`%`_iN.0] -[visit_exp i!`%`_iN] -[visit_exp i] -[visit_id i] not free -[visit_exp (i!`%`_iN.0 < |c*{c <- `c*`}|)] -[visit_exp i!`%`_iN.0] -[visit_exp i!`%`_iN] -[visit_exp i] -[visit_id i] not free -[visit_exp |c*{c <- `c*`}|] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = c*{c <- `c*`}[i!`%`_iN.0] - -- if (i!`%`_iN.0 < |c*{c <- `c*`}|) -[check_dims] N c i -[visit_exp N] -[visit_id N] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp i] -[visit_id i] -[visit_exp `%`_iN(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp ($signed_(N, i!`%`_iN.0) < (0 : nat <:> int))] -[visit_exp $signed_(N, i!`%`_iN.0)] -[visit_exp N] -[visit_id N] not free -[visit_exp i!`%`_iN.0] -[visit_exp i!`%`_iN] -[visit_exp i] -[visit_id i] not free -[visit_exp (0 : nat <:> int)] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = `%`_iN(0) - -- if ($signed_(N, i!`%`_iN.0) < (0 : nat <:> int)) -[check_dims] N c i -[visit_exp N] -[visit_id N] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp i] -[visit_id i] -[visit_exp $relaxed2($R_swizzle, syntax iN(N), `%`_iN(0), c*{c <- `c*`}[(i!`%`_iN.0 \ |c*{c <- `c*`}|)])] -[visit_exp $R_swizzle] -[visit_exp N] -[visit_id N] not free -[visit_exp `%`_iN(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp c*{c <- `c*`}[(i!`%`_iN.0 \ |c*{c <- `c*`}|)]] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp (i!`%`_iN.0 \ |c*{c <- `c*`}|)] -[visit_exp i!`%`_iN.0] -[visit_exp i!`%`_iN] -[visit_exp i] -[visit_id i] not free -[visit_exp |c*{c <- `c*`}|] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $irelaxed_swizzle_lane_{N : N, `c*` : iN(N)*, i : iN(N)}(N, c*{c <- `c*`}, i) = $relaxed2($R_swizzle, syntax iN(N), `%`_iN(0), c*{c <- `c*`}[(i!`%`_iN.0 \ |c*{c <- `c*`}|)]) - -- otherwise -[check_dims] N iN shape vec_ -DecD ivunop_(shape : shape, def $f_(N : N, iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* -[visit_id shape] not free -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] N fN shape vec_ -DecD fvunop_(shape : shape, def $f_(N : N, fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* -[visit_id shape] not free -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] N iN shape vec_ -DecD ivbinop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* -[visit_id shape] not free -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] N iN shape sx vec_ -DecD ivbinopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* -[visit_id shape] not free -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[visit_id sx] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] N iN shape sx vec_ -DecD ivbinopsxnd_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* -[visit_id shape] not free -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[visit_id sx] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] N fN shape vec_ -DecD fvbinop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* -[visit_id shape] not free -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] N iN shape vec_ -DecD ivternopnd_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* -[visit_id shape] not free -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] N fN shape vec_ -DecD fvternop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* -[visit_id shape] not free -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] N iN shape vec_ -DecD ivrelop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id shape] not free -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] N iN shape sx vec_ -DecD ivrelopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id shape] not free -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id sx] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] N fN shape vec_ -DecD fvrelop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id shape] not free -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id fN] not free -[visit_exp N] -[visit_id N] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] N iN shape u32 vec_ -DecD ivshiftop_(shape : shape, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) -[visit_id shape] not free -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id u32] not free -[visit_exp N] -[visit_id N] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id u32] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] N iN shape sx u32 vec_ -DecD ivshiftopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) -[visit_id shape] not free -[visit_id N] not free -[visit_id sx] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_id u32] not free -[visit_exp N] -[visit_id N] not free -[visit_id sx] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id u32] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] shape vec_ -DecD ivbitmaskop_(shape : shape, vec_ : vec_(`V128`_Vnn)) : u32 -[visit_id shape] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] N _ iN shape vec_ -DecD ivswizzlop_(shape : shape, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id shape] not free -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[visit_id iN] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] _ shape vec_ -DecD ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id shape] not free -[visit_id _] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] Jnn M c c_1 v_1 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp v_1] -[visit_id v_1] -[visit_exp [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})]] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1)*{c_1 <- `c_1*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1)*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivunop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1)*{c_1 <- `c_1*`}) -[check_dims] Fnn M c c_1 v_1 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp v_1] -[visit_id v_1] -[visit_exp $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] no dims -[visit_id c**] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1)*{c_1 <- `c_1*`}))] -[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] not free -[visit_id c**] no dims -[visit_exp $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1)*{c_1 <- `c_1*`})] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1)*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvunop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1)*{c_1 <- `c_1*`})) -[check_dims] Jnn M c c_1 c_2 v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})]] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] no dims -[visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}] -[scope_enter c_1] -[scope_enter c_2] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_1] not free -[visit_id c_2] not free -[scope_exit c_2] -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp `c_2*`] -[visit_id c_2*] not free -[visit_id c_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}) -[check_dims] Jnn M c c_1 c_2 sx v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})]] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] no dims -[visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}] -[scope_enter c_1] -[scope_enter c_2] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_1] not free -[visit_id c_2] not free -[scope_exit c_2] -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp `c_2*`] -[visit_id c_2*] not free -[visit_id c_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}) -[check_dims] Jnn M c c_1 c_2 sx v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] no dims -[visit_id c**] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] no dims -[visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}))] -[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] not free -[visit_id c**] no dims -[visit_exp $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}] -[scope_enter c_1] -[scope_enter c_2] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_1] not free -[visit_id c_2] not free -[scope_exit c_2] -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp `c_2*`] -[visit_id c_2*] not free -[visit_id c_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinopsxnd_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})) -[check_dims] Fnn M c c_1 c_2 v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] no dims -[visit_id c**] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2))] -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] no dims -[visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}))] -[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] not free -[visit_id c**] no dims -[visit_exp $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}] -[scope_enter c_1] -[scope_enter c_2] -[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_1] not free -[visit_id c_2] not free -[scope_exit c_2] -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp `c_2*`] -[visit_id c_2*] not free -[visit_id c_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvbinop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})) -[check_dims] Jnn M c c_1 c_2 c_3 v_1 v_2 v_3 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp v_3] -[visit_id v_3] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] no dims -[visit_id c**] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] no dims -[visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_3))] -[visit_exp c_3*{c_3 <- `c_3*`}] -[scope_enter c_3] -[visit_exp c_3] -[visit_id c_3] not free -[visit_id c_3] not free -[scope_exit c_3] -[visit_exp `c_3*`] -[visit_id c_3*] no dims -[visit_id c_3*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_3)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_3] -[visit_id v_3] not free -[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`}))] -[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] not free -[visit_id c**] no dims -[visit_exp $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`}] -[scope_enter c_1] -[scope_enter c_2] -[scope_enter c_3] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_exp c_3] -[visit_id c_3] not free -[visit_id c_1] not free -[visit_id c_2] not free -[visit_id c_3] not free -[scope_exit c_3] -[scope_exit c_2] -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp `c_2*`] -[visit_id c_2*] not free -[visit_id c_2*] no dims -[visit_exp `c_3*`] -[visit_id c_3*] not free -[visit_id c_3*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivternopnd_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_3)) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})) -[check_dims] Fnn M c c_1 c_2 c_3 v_1 v_2 v_3 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp v_3] -[visit_id v_3] -[visit_exp $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] no dims -[visit_id c**] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2))] -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] no dims -[visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_3))] -[visit_exp c_3*{c_3 <- `c_3*`}] -[scope_enter c_3] -[visit_exp c_3] -[visit_id c_3] not free -[visit_id c_3] not free -[scope_exit c_3] -[visit_exp `c_3*`] -[visit_id c_3*] no dims -[visit_id c_3*] -[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_3)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_3] -[visit_id v_3] not free -[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`}))] -[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] not free -[visit_id c**] no dims -[visit_exp $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`}] -[scope_enter c_1] -[scope_enter c_2] -[scope_enter c_3] -[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_exp c_3] -[visit_id c_3] not free -[visit_id c_1] not free -[visit_id c_2] not free -[visit_id c_3] not free -[scope_exit c_3] -[scope_exit c_2] -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp `c_2*`] -[visit_id c_2*] not free -[visit_id c_2*] no dims -[visit_exp `c_3*`] -[visit_id c_3*] not free -[visit_id c_3*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvternop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_3)) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})) -[check_dims] Jnn M c c_1 c_2 v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] no dims -[visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}] -[scope_enter c_1] -[scope_enter c_2] -[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0))] -[visit_exp 1] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0)] -[visit_exp ($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0)] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_1] not free -[visit_id c_2] not free -[scope_exit c_2] -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp `c_2*`] -[visit_id c_2*] not free -[visit_id c_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivrelop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) -[check_dims] Jnn M c c_1 c_2 sx v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] no dims -[visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}] -[scope_enter c_1] -[scope_enter c_2] -[visit_exp $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0))] -[visit_exp 1] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0)] -[visit_exp ($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0)] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_1] not free -[visit_id c_2] not free -[scope_exit c_2] -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp `c_2*`] -[visit_id c_2*] not free -[visit_id c_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivrelopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) -[check_dims] Fnn Inn M c c_1 c_2 v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape((Inn : Inn <: lanetype), `%`_dim(M)), `%`_lane_(c!`%`_iN.0)*{c <- `c*`})] -[visit_exp `%X%`_shape((Inn : Inn <: lanetype), `%`_dim(M))] -[visit_exp ((Inn : Inn <: lanetype), `%`_dim(M))] -[visit_exp (Inn : Inn <: lanetype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp `%`_lane_(c!`%`_iN.0)*{c <- `c*`}] -[scope_enter c] -[visit_exp `%`_lane_(c!`%`_iN.0)] -[visit_exp (c!`%`_iN.0)] -[visit_exp c!`%`_iN.0] -[visit_exp c!`%`_iN] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2))] -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] no dims -[visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}] -[scope_enter c_1] -[scope_enter c_2] -[visit_exp $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0))] -[visit_exp 1] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0)] -[visit_exp ($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0)] -[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0] -[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32] -[visit_exp $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)] -[visit_exp $sizenn((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_1] not free -[visit_id c_2] not free -[scope_exit c_2] -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp `c_2*`] -[visit_id c_2*] not free -[visit_id c_2*] no dims -[visit_exp ($isize(Inn) = $fsize(Fnn))] -[visit_exp $isize(Inn)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp $fsize(Fnn)] -[visit_exp Fnn] -[visit_id Fnn] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvrelop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), Inn : Inn, `c*` : iN($sizenn((Fnn : Fnn <: numtype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Inn : Inn <: lanetype), `%`_dim(M)), `%`_lane_(c!`%`_iN.0)*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) - -- if ($isize(Inn) = $fsize(Fnn)) -[check_dims] Jnn M c c_1 i v_1 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp v_1] -[visit_id v_1] -[visit_exp i] -[visit_id i] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, i)*{c_1 <- `c_1*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, i)*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, i)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp i] -[visit_id i] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshiftop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), v_1 : vec_(`V128`_Vnn), i : u32, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, i) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, i)*{c_1 <- `c_1*`}) -[check_dims] Jnn M c c_1 i sx v_1 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp i] -[visit_id i] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, i)*{c_1 <- `c_1*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, i)*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, i)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp i] -[visit_id i] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshiftopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), i : u32, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, i) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, i)*{c_1 <- `c_1*`}) -[check_dims] Jnn M c c_1 v_1 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp v_1] -[visit_id v_1] -[visit_exp $irev_(32, c)] -[visit_exp 32] -[visit_exp c] -[visit_id c] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp ($ibits_(32, c) = `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)*{c_1 <- `c_1*`} ++ `%`_bit(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){})] -[visit_exp $ibits_(32, c)] -[visit_exp 32] -[visit_exp c] -[visit_id c] not free -[visit_exp `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)*{c_1 <- `c_1*`} ++ `%`_bit(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){}] -[visit_exp `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)] -[visit_exp ($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)] -[visit_exp $ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0] -[visit_exp $ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32] -[visit_exp $ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp `%`_iN(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp `%`_bit(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){}] -[visit_exp `%`_bit(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp (((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat)] -[visit_exp ((32 : nat <:> int) - (M : nat <:> int))] -[visit_exp (32 : nat <:> int)] -[visit_exp 32] -[visit_exp (M : nat <:> int)] -[visit_exp M] -[visit_id M] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbitmaskop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), c : iN(32), `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1) = $irev_(32, c) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if ($ibits_(32, c) = `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)*{c_1 <- `c_1*`} ++ `%`_bit(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){}) -[check_dims] Jnn M c c_1 c_2 v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] no dims -[visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1*{c_1 <- `c_1*`}, c_2)*{c_2 <- `c_2*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1*{c_1 <- `c_1*`}, c_2)*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1*{c_1 <- `c_1*`}, c_2)] -[visit_exp $lsizenn((Jnn : Jnn <: lanetype))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] not free -[visit_id c_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivswizzlop_{Jnn : Jnn, M : M, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1*{c_1 <- `c_1*`}, c_2)*{c_2 <- `c_2*`}) -[check_dims] Jnn M c c_1 c_2 i v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp i*{i <- `i*`}] -[scope_enter i] -[visit_exp i] -[visit_id i] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] no dims -[visit_id i*] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2))] -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] no dims -[visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp (c*{c <- `c*`} = c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx.0]*{i <- `i*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx.0]*{i <- `i*`}] -[scope_enter i] -[visit_exp c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx.0]] -[visit_exp c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] not free -[visit_id c_2*] no dims -[visit_exp i!`%`_laneidx.0] -[visit_exp i!`%`_laneidx] -[visit_exp i] -[visit_id i] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] not free -[visit_id i*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshufflop_{Jnn : Jnn, M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), i*{i <- `i*`}, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx.0]*{i <- `i*`}) -[check_dims] vec_ vectype vvunop -DecD vvunop_(vectype : vectype, vvunop : vvunop, vec_ : vec_(vectype)) : vec_(vectype)* -[visit_id vectype] not free -[visit_id vvunop] not free -[visit_id vec_] not free -[visit_exp vectype] -[visit_id vectype] not free -[visit_exp vectype] -[visit_id vectype] not free -[check_dims] vec_ vectype vvbinop -DecD vvbinop_(vectype : vectype, vvbinop : vvbinop, vec_ : vec_(vectype), vec_ : vec_(vectype)) : vec_(vectype)* -[visit_id vectype] not free -[visit_id vvbinop] not free -[visit_id vec_] not free -[visit_exp vectype] -[visit_id vectype] not free -[visit_id vec_] not free -[visit_exp vectype] -[visit_id vectype] not free -[visit_exp vectype] -[visit_id vectype] not free -[check_dims] vec_ vectype vvternop -DecD vvternop_(vectype : vectype, vvternop : vvternop, vec_ : vec_(vectype), vec_ : vec_(vectype), vec_ : vec_(vectype)) : vec_(vectype)* -[visit_id vectype] not free -[visit_id vvternop] not free -[visit_id vec_] not free -[visit_exp vectype] -[visit_id vectype] not free -[visit_id vec_] not free -[visit_exp vectype] -[visit_id vectype] not free -[visit_id vec_] not free -[visit_exp vectype] -[visit_id vectype] not free -[visit_exp vectype] -[visit_id vectype] not free -[check_dims] shape vec_ vunop_ -DecD vunop_(shape : shape, vunop_ : vunop_(shape), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* -[visit_id shape] not free -[visit_id vunop_] not free -[visit_exp shape] -[visit_id shape] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] shape vbinop_ vec_ -DecD vbinop_(shape : shape, vbinop_ : vbinop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* -[visit_id shape] not free -[visit_id vbinop_] not free -[visit_exp shape] -[visit_id shape] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] shape vec_ vternop_ -DecD vternop_(shape : shape, vternop_ : vternop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* -[visit_id shape] not free -[visit_id vternop_] not free -[visit_exp shape] -[visit_id shape] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] shape vec_ vrelop_ -DecD vrelop_(shape : shape, vrelop_ : vrelop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id shape] not free -[visit_id vrelop_] not free -[visit_exp shape] -[visit_id shape] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] lane_ shape_1 shape_2 vcvtop__ -DecD lcvtop__(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2), lane_ : lane_($lanetype(shape_1))) : lane_($lanetype(shape_2))* -[visit_id shape_1] not free -[visit_id shape_2] not free -[visit_id vcvtop__] not free -[visit_exp shape_1] -[visit_id shape_1] not free -[visit_exp shape_2] -[visit_id shape_2] not free -[visit_id lane_] not free -[visit_exp $lanetype(shape_1)] -[visit_exp shape_1] -[visit_id shape_1] not free -[visit_exp $lanetype(shape_2)] -[visit_exp shape_2] -[visit_id shape_2] not free -[check_dims] shape_1 shape_2 vcvtop__ vec_ -DecD vcvtop__(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id shape_1] not free -[visit_id shape_2] not free -[visit_id vcvtop__] not free -[visit_exp shape_1] -[visit_id shape_1] not free -[visit_exp shape_2] -[visit_id shape_2] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] ishape u32 vec_ vshiftop_ -DecD vshiftop_(ishape : ishape, vshiftop_ : vshiftop_(ishape), vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) -[visit_id ishape] not free -[visit_id vshiftop_] not free -[visit_exp ishape] -[visit_id ishape] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id u32] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] ishape vec_ -DecD vbitmaskop_(ishape : ishape, vec_ : vec_(`V128`_Vnn)) : u32 -[visit_id ishape] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] bshape vec_ vswizzlop_ -DecD vswizzlop_(bshape : bshape, vswizzlop_ : vswizzlop_(bshape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id bshape] not free -[visit_id vswizzlop_] not free -[visit_exp bshape] -[visit_id bshape] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] _ bshape vec_ -DecD vshufflop_(bshape : bshape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id bshape] not free -[visit_id _] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] shape_1 shape_2 sx vec_ -DecD vnarrowop__(shape_1 : shape, shape_2 : shape, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id shape_1] not free -[visit_id shape_2] not free -[visit_id sx] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] ishape_1 ishape_2 vec_ vextunop__ -DecD vextunop__(ishape_1 : ishape, ishape_2 : ishape, vextunop__ : vextunop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id ishape_1] not free -[visit_id ishape_2] not free -[visit_id vextunop__] not free -[visit_exp ishape_1] -[visit_id ishape_1] not free -[visit_exp ishape_2] -[visit_id ishape_2] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] ishape_1 ishape_2 vec_ vextbinop__ -DecD vextbinop__(ishape_1 : ishape, ishape_2 : ishape, vextbinop__ : vextbinop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id ishape_1] not free -[visit_id ishape_2] not free -[visit_id vextbinop__] not free -[visit_exp ishape_1] -[visit_id ishape_1] not free -[visit_exp ishape_2] -[visit_id ishape_2] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] ishape_1 ishape_2 vec_ vextternop__ -DecD vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextternop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id ishape_1] not free -[visit_id ishape_2] not free -[visit_id vextternop__] not free -[visit_exp ishape_1] -[visit_id ishape_1] not free -[visit_exp ishape_2] -[visit_id ishape_2] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] Vnn v -[visit_exp Vnn] -[visit_id Vnn] -[visit_exp `NOT`_vvunop] -[visit_exp ()] -[visit_exp v] -[visit_id v] -[visit_exp [$inot_($vsizenn(Vnn), v)]] -[visit_exp $inot_($vsizenn(Vnn), v)] -[visit_exp $vsizenn(Vnn)] -[visit_exp Vnn] -[visit_id Vnn] not free -[visit_exp v] -[visit_id v] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvunop_{Vnn : Vnn, v : vec_(Vnn)}(Vnn, `NOT`_vvunop, v) = [$inot_($vsizenn(Vnn), v)] -[check_dims] Vnn v_1 v_2 -[visit_exp Vnn] -[visit_id Vnn] -[visit_exp `AND`_vvbinop] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp [$iand_($vsizenn(Vnn), v_1, v_2)]] -[visit_exp $iand_($vsizenn(Vnn), v_1, v_2)] -[visit_exp $vsizenn(Vnn)] -[visit_exp Vnn] -[visit_id Vnn] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `AND`_vvbinop, v_1, v_2) = [$iand_($vsizenn(Vnn), v_1, v_2)] -[check_dims] Vnn v_1 v_2 -[visit_exp Vnn] -[visit_id Vnn] -[visit_exp `ANDNOT`_vvbinop] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp [$iandnot_($vsizenn(Vnn), v_1, v_2)]] -[visit_exp $iandnot_($vsizenn(Vnn), v_1, v_2)] -[visit_exp $vsizenn(Vnn)] -[visit_exp Vnn] -[visit_id Vnn] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `ANDNOT`_vvbinop, v_1, v_2) = [$iandnot_($vsizenn(Vnn), v_1, v_2)] -[check_dims] Vnn v_1 v_2 -[visit_exp Vnn] -[visit_id Vnn] -[visit_exp `OR`_vvbinop] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp [$ior_($vsizenn(Vnn), v_1, v_2)]] -[visit_exp $ior_($vsizenn(Vnn), v_1, v_2)] -[visit_exp $vsizenn(Vnn)] -[visit_exp Vnn] -[visit_id Vnn] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `OR`_vvbinop, v_1, v_2) = [$ior_($vsizenn(Vnn), v_1, v_2)] -[check_dims] Vnn v_1 v_2 -[visit_exp Vnn] -[visit_id Vnn] -[visit_exp `XOR`_vvbinop] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp [$ixor_($vsizenn(Vnn), v_1, v_2)]] -[visit_exp $ixor_($vsizenn(Vnn), v_1, v_2)] -[visit_exp $vsizenn(Vnn)] -[visit_exp Vnn] -[visit_id Vnn] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `XOR`_vvbinop, v_1, v_2) = [$ixor_($vsizenn(Vnn), v_1, v_2)] -[check_dims] Vnn v_1 v_2 v_3 -[visit_exp Vnn] -[visit_id Vnn] -[visit_exp `BITSELECT`_vvternop] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp v_3] -[visit_id v_3] -[visit_exp [$ibitselect_($vsizenn(Vnn), v_1, v_2, v_3)]] -[visit_exp $ibitselect_($vsizenn(Vnn), v_1, v_2, v_3)] -[visit_exp $vsizenn(Vnn)] -[visit_exp Vnn] -[visit_id Vnn] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp v_3] -[visit_id v_3] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvternop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn), v_3 : vec_(Vnn)}(Vnn, `BITSELECT`_vvternop, v_1, v_2, v_3) = [$ibitselect_($vsizenn(Vnn), v_1, v_2, v_3)] -[check_dims] Fnn M v -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[visit_exp v] -[visit_id v] -[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fabs_, v)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v] -[visit_id v] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `ABS`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fabs_, v) -[check_dims] Fnn M v -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[visit_exp v] -[visit_id v] -[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fneg_, v)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v] -[visit_id v] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `NEG`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fneg_, v) -[check_dims] Fnn M v -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `SQRT`_vunop_] -[visit_exp ()] -[visit_exp v] -[visit_id v] -[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsqrt_, v)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v] -[visit_id v] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `SQRT`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsqrt_, v) -[check_dims] Fnn M v -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `CEIL`_vunop_] -[visit_exp ()] -[visit_exp v] -[visit_id v] -[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fceil_, v)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v] -[visit_id v] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `CEIL`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fceil_, v) -[check_dims] Fnn M v -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `FLOOR`_vunop_] -[visit_exp ()] -[visit_exp v] -[visit_id v] -[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ffloor_, v)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v] -[visit_id v] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `FLOOR`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ffloor_, v) -[check_dims] Fnn M v -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `TRUNC`_vunop_] -[visit_exp ()] -[visit_exp v] -[visit_id v] -[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ftrunc_, v)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v] -[visit_id v] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `TRUNC`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ftrunc_, v) -[check_dims] Fnn M v -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `NEAREST`_vunop_] -[visit_exp ()] -[visit_exp v] -[visit_id v] -[visit_exp $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fnearest_, v)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v] -[visit_id v] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `NEAREST`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fnearest_, v) -[check_dims] Jnn M v -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[visit_exp v] -[visit_id v] -[visit_exp $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iabs_, v)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v] -[visit_id v] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ABS`_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iabs_, v) -[check_dims] Jnn M v -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[visit_exp v] -[visit_id v] -[visit_exp $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ineg_, v)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v] -[visit_id v] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `NEG`_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ineg_, v) -[check_dims] Jnn M v -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `POPCNT`_vunop_] -[visit_exp ()] -[visit_exp v] -[visit_id v] -[visit_exp $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ipopcnt_, v)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v] -[visit_id v] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `POPCNT`_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ipopcnt_, v) -[check_dims] Jnn M v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ADD`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_, v_1, v_2) -[check_dims] Jnn M v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `SUB`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_, v_1, v_2) -[check_dims] Jnn M v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `MUL`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imul_, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `MUL`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imul_, v_1, v_2) -[check_dims] Jnn M sx v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `ADD_SAT`_vbinop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_sat_, sx, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ADD_SAT`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_sat_, sx, v_1, v_2) -[check_dims] Jnn M sx v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `SUB_SAT`_vbinop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_sat_, sx, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `SUB_SAT`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_sat_, sx, v_1, v_2) -[check_dims] Jnn M sx v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `MIN`_vbinop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imin_, sx, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `MIN`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imin_, sx, v_1, v_2) -[check_dims] Jnn M sx v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `MAX`_vbinop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imax_, sx, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `MAX`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imax_, sx, v_1, v_2) -[check_dims] Jnn M v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `AVGRU`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iavgr_, `U`_sx, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `AVGRU`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iavgr_, `U`_sx, v_1, v_2) -[check_dims] Jnn M v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `Q15MULR_SATS`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iq15mulr_sat_, `S`_sx, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `Q15MULR_SATS`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iq15mulr_sat_, `S`_sx, v_1, v_2) -[check_dims] Jnn M v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `RELAXED_Q15MULRS`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivbinopsxnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_q15mulr_, `S`_sx, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `RELAXED_Q15MULRS`_vbinop_, v_1, v_2) = $ivbinopsxnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_q15mulr_, `S`_sx, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fadd_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `ADD`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fadd_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsub_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `SUB`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsub_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `MUL`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmul_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `MUL`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmul_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `DIV`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fdiv_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `DIV`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fdiv_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `MIN`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmin_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmin_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `MAX`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmax_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmax_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `PMIN`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmin_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `PMIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmin_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `PMAX`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmax_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `PMAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmax_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `RELAXED_MIN`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_min_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_min_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `RELAXED_MAX`_vbinop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_max_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_max_, v_1, v_2) -[check_dims] Jnn M v_1 v_2 v_3 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `RELAXED_LANESELECT`_vternop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp v_3] -[visit_id v_3] -[visit_exp $ivternopnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_laneselect_, v_1, v_2, v_3)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp v_3] -[visit_id v_3] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `RELAXED_LANESELECT`_vternop_, v_1, v_2, v_3) = $ivternopnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_laneselect_, v_1, v_2, v_3) -[check_dims] Fnn M v_1 v_2 v_3 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `RELAXED_MADD`_vternop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp v_3] -[visit_id v_3] -[visit_exp $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_madd_, v_1, v_2, v_3)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp v_3] -[visit_id v_3] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_MADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_madd_, v_1, v_2, v_3) -[check_dims] Fnn M v_1 v_2 v_3 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `RELAXED_NMADD`_vternop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp v_3] -[visit_id v_3] -[visit_exp $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_nmadd_, v_1, v_2, v_3)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp v_3] -[visit_id v_3] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_NMADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_nmadd_, v_1, v_2, v_3) -[check_dims] Jnn M v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ieq_, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `EQ`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ieq_, v_1, v_2) -[check_dims] Jnn M v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ine_, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `NE`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ine_, v_1, v_2) -[check_dims] Jnn M sx v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `LT`_vrelop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ilt_, sx, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `LT`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ilt_, sx, v_1, v_2) -[check_dims] Jnn M sx v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `GT`_vrelop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $igt_, sx, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `GT`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $igt_, sx, v_1, v_2) -[check_dims] Jnn M sx v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `LE`_vrelop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ile_, sx, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `LE`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ile_, sx, v_1, v_2) -[check_dims] Jnn M sx v_1 v_2 -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `GE`_vrelop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ige_, sx, v_1, v_2)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `GE`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ige_, sx, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $feq_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `EQ`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $feq_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fne_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `NE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fne_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `LT`_vrelop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $flt_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `LT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $flt_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `GT`_vrelop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fgt_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `GT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fgt_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `LE`_vrelop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fle_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `LE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fle_, v_1, v_2) -[check_dims] Fnn M v_1 v_2 -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `GE`_vrelop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fge_, v_1, v_2)] -[visit_exp `%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp ((Fnn : Fnn <: lanetype), `%`_dim(M))] -[visit_exp (Fnn : Fnn <: lanetype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `GE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fge_, v_1, v_2) -[check_dims] Jnn M i v -[visit_exp `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] -[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `SHL`_vshiftop_] -[visit_exp ()] -[visit_exp v] -[visit_id v] -[visit_exp i] -[visit_id i] -[visit_exp $ivshiftop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishl_, v, i)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v] -[visit_id v] not free -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshiftop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn), i : u32}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `SHL`_vshiftop_, v, i) = $ivshiftop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishl_, v, i) -[check_dims] Jnn M i sx v -[visit_exp `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] -[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `SHR`_vshiftop_(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp v] -[visit_id v] -[visit_exp i] -[visit_id i] -[visit_exp $ivshiftopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishr_, sx, v, i)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp v] -[visit_id v] not free -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshiftop_{Jnn : Jnn, M : M, sx : sx, v : vec_(`V128`_Vnn), i : u32}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `SHR`_vshiftop_(sx), v, i) = $ivshiftopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishr_, sx, v, i) -[check_dims] Jnn M v -[visit_exp `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] -[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp v] -[visit_id v] -[visit_exp $ivbitmaskop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v] -[visit_id v] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbitmaskop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), v) = $ivbitmaskop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v) -[check_dims] M v_1 v_2 -[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] -[visit_exp (`I8`_lanetype, `%`_dim(M))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `SWIZZLE`_vswizzlop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivswizzlop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), def $iswizzle_lane_, v_1, v_2)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] -[visit_exp (`I8`_lanetype, `%`_dim(M))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vswizzlop_{M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M))), `SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), def $iswizzle_lane_, v_1, v_2) -[check_dims] M v_1 v_2 -[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] -[visit_exp (`I8`_lanetype, `%`_dim(M))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `RELAXED_SWIZZLE`_vswizzlop_] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivswizzlop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), def $irelaxed_swizzle_lane_, v_1, v_2)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] -[visit_exp (`I8`_lanetype, `%`_dim(M))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vswizzlop_{M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M))), `RELAXED_SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), def $irelaxed_swizzle_lane_, v_1, v_2) -[check_dims] M i v_1 v_2 -[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(M)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] -[visit_exp (`I8`_lanetype, `%`_dim(M))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp i*{i <- `i*`}] -[scope_enter i] -[visit_exp i] -[visit_id i] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] no dims -[visit_id i*] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivshufflop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), i*{i <- `i*`}, v_1, v_2)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(M))] -[visit_exp (`I8`_lanetype, `%`_dim(M))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp i*{i <- `i*`}] -[scope_enter i] -[visit_exp i] -[visit_id i] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] not free -[visit_id i*] no dims -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshufflop_{M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M))), i*{i <- `i*`}, v_1, v_2) = $ivshufflop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), i*{i <- `i*`}, v_1, v_2) -[check_dims] Jnn_1 Jnn_2 M_1 M_2 c c_1 half sx -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `EXTEND`_vcvtop__(half, sx)] -[visit_exp (half, sx)] -[visit_exp half] -[visit_id half] -[visit_exp sx] -[visit_id sx] -[visit_exp c_1] -[visit_id c_1] -[visit_exp [c]] -[visit_exp c] -[visit_id c] -[visit_exp (c = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1))] -[visit_exp c] -[visit_id c] not free -[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp c_1] -[visit_id c_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx, c_1 : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))), c : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `EXTEND`_vcvtop__(half, sx), c_1) = [c] - -- if (c = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)) -[check_dims] Fnn_2 Jnn_1 M_1 M_2 c c_1 half sx -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)] -[visit_exp (half?{half <- `half?`}, sx)] -[visit_exp half?{half <- `half?`}] -[scope_enter half] -[visit_exp half] -[visit_id half] not free -[visit_id half] not free -[scope_exit half] -[visit_exp `half?`] -[visit_id half?] no dims -[visit_id half?] -[visit_exp sx] -[visit_id sx] -[visit_exp c_1] -[visit_id c_1] -[visit_exp [c]] -[visit_exp c] -[visit_id c] -[visit_exp (c = $convert__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), sx, c_1))] -[visit_exp c] -[visit_id c] not free -[visit_exp $convert__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), sx, c_1)] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp $lsizenn2((Fnn_2 : Fnn <: lanetype))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp c_1] -[visit_id c_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx, c_1 : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))), c : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `CONVERT`_vcvtop__(half?{half <- `half?`}, sx), c_1) = [c] - -- if (c = $convert__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), sx, c_1)) -[check_dims] Fnn_1 Inn_2 M_1 M_2 c c_1 sx zero -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Inn_2 : Inn <: lanetype), `%`_dim(M_2))] -[visit_exp (Inn_2 : Inn <: lanetype)] -[visit_exp Inn_2] -[visit_id Inn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})] -[visit_exp (sx, zero?{zero <- `zero?`})] -[visit_exp sx] -[visit_id sx] -[visit_exp zero?{zero <- `zero?`}] -[scope_enter zero] -[visit_exp zero] -[visit_id zero] not free -[visit_id zero] not free -[scope_exit zero] -[visit_exp `zero?`] -[visit_id zero?] no dims -[visit_id zero?] -[visit_exp c_1] -[visit_id c_1] -[visit_exp lift(c?{c <- `c?`})] -[visit_exp c?{c <- `c?`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c?`] -[visit_id c?] no dims -[visit_id c?] -[visit_exp (c?{c <- `c?`} = $trunc_sat__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1))] -[visit_exp c?{c <- `c?`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c?`] -[visit_id c?] not free -[visit_id c?] no dims -[visit_exp $trunc_sat__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)] -[visit_exp $lsizenn1((Fnn_1 : Fnn <: lanetype))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_exp $lsizenn2((Inn_2 : Inn <: lanetype))] -[visit_exp (Inn_2 : Inn <: lanetype)] -[visit_exp Inn_2] -[visit_id Inn_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp c_1] -[visit_id c_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Inn_2 : Inn, M_2 : M, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2)), `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) - -- if (c?{c <- `c?`} = $trunc_sat__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)) -[check_dims] Fnn_1 Inn_2 M_1 M_2 c c_1 sx zero -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Inn_2 : Inn <: lanetype), `%`_dim(M_2))] -[visit_exp (Inn_2 : Inn <: lanetype)] -[visit_exp Inn_2] -[visit_id Inn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})] -[visit_exp (sx, zero?{zero <- `zero?`})] -[visit_exp sx] -[visit_id sx] -[visit_exp zero?{zero <- `zero?`}] -[scope_enter zero] -[visit_exp zero] -[visit_id zero] not free -[visit_id zero] not free -[scope_exit zero] -[visit_exp `zero?`] -[visit_id zero?] no dims -[visit_id zero?] -[visit_exp c_1] -[visit_id c_1] -[visit_exp lift(c?{c <- `c?`})] -[visit_exp c?{c <- `c?`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c?`] -[visit_id c?] no dims -[visit_id c?] -[visit_exp (c?{c <- `c?`} = $relaxed_trunc__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1))] -[visit_exp c?{c <- `c?`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c?`] -[visit_id c?] not free -[visit_id c?] no dims -[visit_exp $relaxed_trunc__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)] -[visit_exp $lsizenn1((Fnn_1 : Fnn <: lanetype))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_exp $lsizenn2((Inn_2 : Inn <: lanetype))] -[visit_exp (Inn_2 : Inn <: lanetype)] -[visit_exp Inn_2] -[visit_id Inn_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp c_1] -[visit_id c_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Inn_2 : Inn, M_2 : M, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2)), `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) - -- if (c?{c <- `c?`} = $relaxed_trunc__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)) -[check_dims] Fnn_1 Fnn_2 M_1 M_2 c c_1 -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `DEMOTE`_vcvtop__(`ZERO`_zero)] -[visit_exp (`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c*{c <- `c*`} = $demote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1))] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp $demote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)] -[visit_exp $lsizenn1((Fnn_1 : Fnn <: lanetype))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_exp $lsizenn2((Fnn_2 : Fnn <: lanetype))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_exp c_1] -[visit_id c_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `DEMOTE`_vcvtop__(`ZERO`_zero), c_1) = c*{c <- `c*`} - -- if (c*{c <- `c*`} = $demote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)) -[check_dims] Fnn_1 Fnn_2 M_1 M_2 c c_1 -[visit_exp `%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `PROMOTELOW`_vcvtop__] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c*{c <- `c*`} = $promote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1))] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp $promote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)] -[visit_exp $lsizenn1((Fnn_1 : Fnn <: lanetype))] -[visit_exp (Fnn_1 : Fnn <: lanetype)] -[visit_exp Fnn_1] -[visit_id Fnn_1] not free -[visit_exp $lsizenn2((Fnn_2 : Fnn <: lanetype))] -[visit_exp (Fnn_2 : Fnn <: lanetype)] -[visit_exp Fnn_2] -[visit_id Fnn_2] not free -[visit_exp c_1] -[visit_id c_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__, c_1) = c*{c <- `c*`} - -- if (c*{c <- `c*`} = $promote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)) -[check_dims] Lnn_1 Lnn_2 M c c_1 v v_1 vcvtop -[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M))] -[visit_exp (Lnn_1, `%`_dim(M))] -[visit_exp Lnn_1] -[visit_id Lnn_1] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M))] -[visit_exp (Lnn_2, `%`_dim(M))] -[visit_exp Lnn_2] -[visit_id Lnn_2] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp vcvtop] -[visit_id vcvtop] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v] -[visit_id v] -[visit_exp (($halfop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?()) /\ ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?()))] -[visit_exp ($halfop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?())] -[visit_exp $halfop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop)] -[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M))] -[visit_exp (Lnn_1, `%`_dim(M))] -[visit_exp Lnn_1] -[visit_id Lnn_1] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M))] -[visit_exp (Lnn_2, `%`_dim(M))] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp vcvtop] -[visit_id vcvtop] not free -[visit_exp ?()] -[visit_exp ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?())] -[visit_exp $zeroop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop)] -[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M))] -[visit_exp (Lnn_1, `%`_dim(M))] -[visit_exp Lnn_1] -[visit_id Lnn_1] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M))] -[visit_exp (Lnn_2, `%`_dim(M))] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp vcvtop] -[visit_id vcvtop] not free -[visit_exp ?()] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M)), v_1)] -[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M))] -[visit_exp (Lnn_1, `%`_dim(M))] -[visit_exp Lnn_1] -[visit_id Lnn_1] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, c_1)*{c_1 <- `c_1*`}))] -[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] no dims -[visit_id c**] -[visit_exp $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, c_1)*{c_1 <- `c_1*`})] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, c_1)*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, c_1)] -[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M))] -[visit_exp (Lnn_1, `%`_dim(M))] -[visit_exp Lnn_1] -[visit_id Lnn_1] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M))] -[visit_exp (Lnn_2, `%`_dim(M))] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp vcvtop] -[visit_id vcvtop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`})] -[visit_exp v] -[visit_id v] not free -[visit_exp $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M)), c*{c <- `c*`})] -[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M))] -[visit_exp (Lnn_2, `%`_dim(M))] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] not free -[visit_id c**] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{Lnn_1 : Lnn, M : M, Lnn_2 : Lnn, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, v_1) = v - -- if (($halfop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?()) /\ ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?())) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M)), v_1)) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, c_1)*{c_1 <- `c_1*`})) - -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}) -[check_dims] Lnn_1 Lnn_2 M_1 M_2 c c_1 half v v_1 vcvtop -[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] -[visit_exp (Lnn_1, `%`_dim(M_1))] -[visit_exp Lnn_1] -[visit_id Lnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] -[visit_exp (Lnn_2, `%`_dim(M_2))] -[visit_exp Lnn_2] -[visit_id Lnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp vcvtop] -[visit_id vcvtop] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v] -[visit_id v] -[visit_exp ($halfop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(half))] -[visit_exp $halfop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop)] -[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] -[visit_exp (Lnn_1, `%`_dim(M_1))] -[visit_exp Lnn_1] -[visit_id Lnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] -[visit_exp (Lnn_2, `%`_dim(M_2))] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp vcvtop] -[visit_id vcvtop] not free -[visit_exp ?(half)] -[visit_exp half] -[visit_id half] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)[$half(half, 0, M_2) : M_2])] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)[$half(half, 0, M_2) : M_2]] -[visit_exp $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)] -[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] -[visit_exp (Lnn_1, `%`_dim(M_1))] -[visit_exp Lnn_1] -[visit_id Lnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp $half(half, 0, M_2)] -[visit_exp half] -[visit_id half] not free -[visit_exp 0] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`}))] -[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] no dims -[visit_id c**] -[visit_exp $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`})] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)] -[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] -[visit_exp (Lnn_1, `%`_dim(M_1))] -[visit_exp Lnn_1] -[visit_id Lnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] -[visit_exp (Lnn_2, `%`_dim(M_2))] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp vcvtop] -[visit_id vcvtop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`})] -[visit_exp v] -[visit_id v] not free -[visit_exp $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})] -[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] -[visit_exp (Lnn_2, `%`_dim(M_2))] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] not free -[visit_id c**] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{Lnn_1 : Lnn, M_1 : M, Lnn_2 : Lnn, M_2 : M, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), half : half, `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, v_1) = v - -- if ($halfop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(half)) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)[$half(half, 0, M_2) : M_2]) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`})) - -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}) -[check_dims] Lnn_1 Lnn_2 M_1 M_2 c c_1 v v_1 vcvtop -[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] -[visit_exp (Lnn_1, `%`_dim(M_1))] -[visit_exp Lnn_1] -[visit_id Lnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] -[visit_exp (Lnn_2, `%`_dim(M_2))] -[visit_exp Lnn_2] -[visit_id Lnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp vcvtop] -[visit_id vcvtop] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v] -[visit_id v] -[visit_exp ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(`ZERO`_zero))] -[visit_exp $zeroop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop)] -[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] -[visit_exp (Lnn_1, `%`_dim(M_1))] -[visit_exp Lnn_1] -[visit_id Lnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] -[visit_exp (Lnn_2, `%`_dim(M_2))] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp vcvtop] -[visit_id vcvtop] not free -[visit_exp ?(`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)] -[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] -[visit_exp (Lnn_1, `%`_dim(M_1))] -[visit_exp Lnn_1] -[visit_id Lnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`} ++ [$zero(Lnn_2)]^M_1{}))] -[visit_exp c*{c <- `c*`}*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] no dims -[visit_id c**] -[visit_exp $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`} ++ [$zero(Lnn_2)]^M_1{})] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`} ++ [$zero(Lnn_2)]^M_1{}] -[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)] -[visit_exp `%X%`_shape(Lnn_1, `%`_dim(M_1))] -[visit_exp (Lnn_1, `%`_dim(M_1))] -[visit_exp Lnn_1] -[visit_id Lnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] -[visit_exp (Lnn_2, `%`_dim(M_2))] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp vcvtop] -[visit_id vcvtop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp [$zero(Lnn_2)]^M_1{}] -[visit_exp [$zero(Lnn_2)]] -[visit_exp $zero(Lnn_2)] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`})] -[visit_exp v] -[visit_id v] not free -[visit_exp $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}] -[scope_enter c*] -[visit_exp $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})] -[visit_exp `%X%`_shape(Lnn_2, `%`_dim(M_2))] -[visit_exp (Lnn_2, `%`_dim(M_2))] -[visit_exp Lnn_2] -[visit_id Lnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_id c*] not free -[visit_id c*] no dims -[scope_exit c*] -[visit_exp `c**`] -[visit_id c**] not free -[visit_id c**] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{Lnn_1 : Lnn, M_1 : M, Lnn_2 : Lnn, M_2 : M, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, v_1) = v - -- if ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(`ZERO`_zero)) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)) - -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`} ++ [$zero(Lnn_2)]^M_1{})) - -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}) -[check_dims] Jnn_1 Jnn_2 M_1 M_2 c'_1 c'_2 c_1 c_2 sx v v_1 v_2 -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp v] -[visit_id v] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2))] -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] no dims -[visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp (c'_1*{c'_1 <- `c'_1*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`})] -[visit_exp c'_1*{c'_1 <- `c'_1*`}] -[scope_enter c'_1] -[visit_exp c'_1] -[visit_id c'_1] not free -[visit_id c'_1] not free -[scope_exit c'_1] -[visit_exp `c'_1*`] -[visit_id c'_1*] no dims -[visit_id c'_1*] -[visit_exp $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_1)] -[visit_exp $lsize((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp $lsize((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp (c'_2*{c'_2 <- `c'_2*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_2)*{c_2 <- `c_2*`})] -[visit_exp c'_2*{c'_2 <- `c'_2*`}] -[scope_enter c'_2] -[visit_exp c'_2] -[visit_id c'_2] not free -[visit_id c'_2] not free -[scope_exit c'_2] -[visit_exp `c'_2*`] -[visit_id c'_2*] no dims -[visit_id c'_2*] -[visit_exp $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_2)*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_2)] -[visit_exp $lsize((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp $lsize((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] not free -[visit_id c_2*] no dims -[visit_exp (v = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`}))] -[visit_exp v] -[visit_id v] not free -[visit_exp $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`})] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`}] -[visit_exp c'_1*{c'_1 <- `c'_1*`}] -[scope_enter c'_1] -[visit_exp c'_1] -[visit_id c'_1] not free -[visit_id c'_1] not free -[scope_exit c'_1] -[visit_exp `c'_1*`] -[visit_id c'_1*] not free -[visit_id c'_1*] no dims -[visit_exp c'_2*{c'_2 <- `c'_2*`}] -[scope_enter c'_2] -[visit_exp c'_2] -[visit_id c'_2] not free -[visit_id c'_2] not free -[scope_exit c'_2] -[visit_exp `c'_2*`] -[visit_id c'_2*] not free -[visit_id c'_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vnarrowop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), sx, v_1, v_2) = v - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)) - -- if (c'_1*{c'_1 <- `c'_1*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}) - -- if (c'_2*{c'_2 <- `c'_2*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_2)*{c_2 <- `c_2*`}) - -- if (v = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c'_1*{c'_1 <- `c'_1*`} ++ c'_2*{c'_2 <- `c'_2*`})) -[check_dims] N _ shape_1 shape_2 sx vec_ -DecD ivextunop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id shape_1] not free -[visit_id shape_2] not free -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[visit_id sx] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] Jnn_1 Jnn_2 M_1 M_2 c c'_1 c_1 sx v_1 -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1))] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`})] -[visit_exp c'_1*{c'_1 <- `c'_1*`}] -[scope_enter c'_1] -[visit_exp c'_1] -[visit_id c'_1] not free -[visit_id c'_1] not free -[scope_exit c'_1] -[visit_exp `c'_1*`] -[visit_id c'_1*] no dims -[visit_id c'_1*] -[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`}))] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`})] -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp c'_1*{c'_1 <- `c'_1*`}] -[scope_enter c'_1] -[visit_exp c'_1] -[visit_id c'_1] not free -[visit_id c'_1] not free -[scope_exit c'_1] -[visit_exp `c'_1*`] -[visit_id c'_1*] not free -[visit_id c'_1*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $f_, sx, v_1) = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)) - -- if (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}) - -- if (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`})) -[check_dims] N _ laneidx shape_1 shape_2 sx vec_ -DecD ivextbinop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx : sx, sx : sx, laneidx : laneidx, laneidx : laneidx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) -[visit_id shape_1] not free -[visit_id shape_2] not free -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[visit_id sx] not free -[visit_id sx] not free -[visit_id laneidx] not free -[visit_id laneidx] not free -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_id vec_] not free -[visit_exp `V128`_Vnn] -[visit_exp ()] -[visit_exp `V128`_Vnn] -[visit_exp ()] -[check_dims] Jnn_1 Jnn_2 M_1 M_2 c c'_1 c'_2 c_1 c_2 i k sx_1 sx_2 v_1 v_2 -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp sx_1] -[visit_id sx_1] -[visit_exp sx_2] -[visit_id sx_2] -[visit_exp i] -[visit_id i] -[visit_exp k] -[visit_id k] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`})] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)[i!`%`_laneidx.0 : k!`%`_laneidx.0])] -[visit_exp c_1*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] no dims -[visit_id c_1*] -[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)[i!`%`_laneidx.0 : k!`%`_laneidx.0]] -[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp i!`%`_laneidx.0] -[visit_exp i!`%`_laneidx] -[visit_exp i] -[visit_id i] not free -[visit_exp k!`%`_laneidx.0] -[visit_exp k!`%`_laneidx] -[visit_exp k] -[visit_id k] not free -[visit_exp (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)[i!`%`_laneidx.0 : k!`%`_laneidx.0])] -[visit_exp c_2*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] no dims -[visit_id c_2*] -[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)[i!`%`_laneidx.0 : k!`%`_laneidx.0]] -[visit_exp $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp v_2] -[visit_id v_2] not free -[visit_exp i!`%`_laneidx.0] -[visit_exp i!`%`_laneidx] -[visit_exp i] -[visit_id i] not free -[visit_exp k!`%`_laneidx.0] -[visit_exp k!`%`_laneidx] -[visit_exp k] -[visit_id k] not free -[visit_exp (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_1, c_1)*{c_1 <- `c_1*`})] -[visit_exp c'_1*{c'_1 <- `c'_1*`}] -[scope_enter c'_1] -[visit_exp c'_1] -[visit_id c'_1] not free -[visit_id c'_1] not free -[scope_exit c'_1] -[visit_exp `c'_1*`] -[visit_id c'_1*] no dims -[visit_id c'_1*] -[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_1, c_1)*{c_1 <- `c_1*`}] -[scope_enter c_1] -[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_1, c_1)] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp sx_1] -[visit_id sx_1] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_id c_1] not free -[scope_exit c_1] -[visit_exp `c_1*`] -[visit_id c_1*] not free -[visit_id c_1*] no dims -[visit_exp (c'_2*{c'_2 <- `c'_2*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_2, c_2)*{c_2 <- `c_2*`})] -[visit_exp c'_2*{c'_2 <- `c'_2*`}] -[scope_enter c'_2] -[visit_exp c'_2] -[visit_id c'_2] not free -[visit_id c'_2] not free -[scope_exit c'_2] -[visit_exp `c'_2*`] -[visit_id c'_2*] no dims -[visit_id c'_2*] -[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_2, c_2)*{c_2 <- `c_2*`}] -[scope_enter c_2] -[visit_exp $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_2, c_2)] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp sx_2] -[visit_id sx_2] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_id c_2] not free -[scope_exit c_2] -[visit_exp `c_2*`] -[visit_id c_2*] not free -[visit_id c_2*] no dims -[visit_exp (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`}, c'_2*{c'_2 <- `c'_2*`}))] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`}, c'_2*{c'_2 <- `c'_2*`})] -[visit_exp $lsizenn2((Jnn_2 : Jnn <: lanetype))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp c'_1*{c'_1 <- `c'_1*`}] -[scope_enter c'_1] -[visit_exp c'_1] -[visit_id c'_1] not free -[visit_id c'_1] not free -[scope_exit c'_1] -[visit_exp `c'_1*`] -[visit_id c'_1*] not free -[visit_id c'_1*] no dims -[visit_exp c'_2*{c'_2 <- `c'_2*`}] -[scope_enter c'_2] -[visit_exp c'_2] -[visit_id c'_2] not free -[visit_id c'_2] not free -[scope_exit c'_2] -[visit_exp `c'_2*`] -[visit_id c'_2*] not free -[visit_id c'_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx_1 : sx, sx_2 : sx, i : laneidx, k : laneidx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $f_, sx_1, sx_2, i, k, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`}) - -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)[i!`%`_laneidx.0 : k!`%`_laneidx.0]) - -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)[i!`%`_laneidx.0 : k!`%`_laneidx.0]) - -- if (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_1, c_1)*{c_1 <- `c_1*`}) - -- if (c'_2*{c'_2 <- `c'_2*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_2, c_2)*{c_2 <- `c_2*`}) - -- if (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`}, c'_2*{c'_2 <- `c'_2*`})) -[check_dims] N _ -DecD ivadd_pairwise_(N : N, iN(N)*) : iN(N)* -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N i j_1 j_2 -[visit_exp N] -[visit_id N] -[visit_exp i*{i <- `i*`}] -[scope_enter i] -[visit_exp i] -[visit_id i] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] no dims -[visit_id i*] -[visit_exp $iadd_(N, `%`_iN(j_1), `%`_iN(j_2))*{j_1 <- `j_1*`, j_2 <- `j_2*`}] -[scope_enter j_1] -[scope_enter j_2] -[visit_exp $iadd_(N, `%`_iN(j_1), `%`_iN(j_2))] -[visit_exp N] -[visit_id N] not free -[visit_exp `%`_iN(j_1)] -[visit_exp (j_1)] -[visit_exp j_1] -[visit_id j_1] not free -[visit_exp `%`_iN(j_2)] -[visit_exp (j_2)] -[visit_exp j_2] -[visit_id j_2] not free -[visit_id j_1] not free -[visit_id j_2] not free -[scope_exit j_2] -[scope_exit j_1] -[visit_exp `j_1*`] -[visit_id j_1*] no dims -[visit_id j_1*] -[visit_exp `j_2*`] -[visit_id j_2*] no dims -[visit_id j_2*] -[visit_exp ($concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = i!`%`_iN.0*{i <- `i*`})] -[visit_exp $concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`})] -[visit_exp [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}] -[scope_enter j_1] -[scope_enter j_2] -[visit_exp [j_1 j_2]] -[visit_exp j_1] -[visit_id j_1] not free -[visit_exp j_2] -[visit_id j_2] not free -[visit_id j_1] not free -[visit_id j_2] not free -[scope_exit j_2] -[scope_exit j_1] -[visit_exp `j_1*`] -[visit_id j_1*] not free -[visit_id j_1*] no dims -[visit_exp `j_2*`] -[visit_id j_2*] not free -[visit_id j_2*] no dims -[visit_exp i!`%`_iN.0*{i <- `i*`}] -[scope_enter i] -[visit_exp i!`%`_iN.0] -[visit_exp i!`%`_iN] -[visit_exp i] -[visit_id i] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] not free -[visit_id i*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivadd_pairwise_{N : N, `i*` : iN(N)*, `j_1*` : N*, `j_2*` : N*}(N, i*{i <- `i*`}) = $iadd_(N, `%`_iN(j_1), `%`_iN(j_2))*{j_1 <- `j_1*`, j_2 <- `j_2*`} - -- if ($concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = i!`%`_iN.0*{i <- `i*`}) -[check_dims] N _ -DecD ivmul_(N : N, iN(N)*, iN(N)*) : iN(N)* -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N i_1 i_2 -[visit_exp N] -[visit_id N] -[visit_exp i_1*{i_1 <- `i_1*`}] -[scope_enter i_1] -[visit_exp i_1] -[visit_id i_1] not free -[visit_id i_1] not free -[scope_exit i_1] -[visit_exp `i_1*`] -[visit_id i_1*] no dims -[visit_id i_1*] -[visit_exp i_2*{i_2 <- `i_2*`}] -[scope_enter i_2] -[visit_exp i_2] -[visit_id i_2] not free -[visit_id i_2] not free -[scope_exit i_2] -[visit_exp `i_2*`] -[visit_id i_2*] no dims -[visit_id i_2*] -[visit_exp $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`}] -[scope_enter i_1] -[scope_enter i_2] -[visit_exp $imul_(N, i_1, i_2)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -[visit_id i_1] not free -[visit_id i_2] not free -[scope_exit i_2] -[scope_exit i_1] -[visit_exp `i_1*`] -[visit_id i_1*] not free -[visit_id i_1*] no dims -[visit_exp `i_2*`] -[visit_id i_2*] not free -[visit_id i_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivmul_{N : N, `i_1*` : iN(N)*, `i_2*` : iN(N)*}(N, i_1*{i_1 <- `i_1*`}, i_2*{i_2 <- `i_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`} -[check_dims] N _ -DecD ivdot_(N : N, iN(N)*, iN(N)*) : iN(N)* -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N i_1 i_2 j_1 j_2 -[visit_exp N] -[visit_id N] -[visit_exp i_1*{i_1 <- `i_1*`}] -[scope_enter i_1] -[visit_exp i_1] -[visit_id i_1] not free -[visit_id i_1] not free -[scope_exit i_1] -[visit_exp `i_1*`] -[visit_id i_1*] no dims -[visit_id i_1*] -[visit_exp i_2*{i_2 <- `i_2*`}] -[scope_enter i_2] -[visit_exp i_2] -[visit_id i_2] not free -[visit_id i_2] not free -[scope_exit i_2] -[visit_exp `i_2*`] -[visit_id i_2*] no dims -[visit_id i_2*] -[visit_exp $iadd_(N, j_1, j_2)*{j_1 <- `j_1*`, j_2 <- `j_2*`}] -[scope_enter j_1] -[scope_enter j_2] -[visit_exp $iadd_(N, j_1, j_2)] -[visit_exp N] -[visit_id N] not free -[visit_exp j_1] -[visit_id j_1] not free -[visit_exp j_2] -[visit_id j_2] not free -[visit_id j_1] not free -[visit_id j_2] not free -[scope_exit j_2] -[scope_exit j_1] -[visit_exp `j_1*`] -[visit_id j_1*] no dims -[visit_id j_1*] -[visit_exp `j_2*`] -[visit_id j_2*] no dims -[visit_id j_2*] -[visit_exp ($concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`})] -[visit_exp $concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`})] -[visit_exp N] -[visit_id N] not free -[visit_exp [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}] -[scope_enter j_1] -[scope_enter j_2] -[visit_exp [j_1 j_2]] -[visit_exp j_1] -[visit_id j_1] not free -[visit_exp j_2] -[visit_id j_2] not free -[visit_id j_1] not free -[visit_id j_2] not free -[scope_exit j_2] -[scope_exit j_1] -[visit_exp `j_1*`] -[visit_id j_1*] not free -[visit_id j_1*] no dims -[visit_exp `j_2*`] -[visit_id j_2*] not free -[visit_id j_2*] no dims -[visit_exp $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`}] -[scope_enter i_1] -[scope_enter i_2] -[visit_exp $imul_(N, i_1, i_2)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -[visit_id i_1] not free -[visit_id i_2] not free -[scope_exit i_2] -[scope_exit i_1] -[visit_exp `i_1*`] -[visit_id i_1*] not free -[visit_id i_1*] no dims -[visit_exp `i_2*`] -[visit_id i_2*] not free -[visit_id i_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivdot_{N : N, `i_1*` : iN(N)*, `i_2*` : iN(N)*, `j_1*` : iN(N)*, `j_2*` : iN(N)*}(N, i_1*{i_1 <- `i_1*`}, i_2*{i_2 <- `i_2*`}) = $iadd_(N, j_1, j_2)*{j_1 <- `j_1*`, j_2 <- `j_2*`} - -- if ($concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`}) -[check_dims] N _ -DecD ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[visit_id _] not free -[visit_exp N] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -[check_dims] N i_1 i_2 j_1 j_2 -[visit_exp N] -[visit_id N] -[visit_exp i_1*{i_1 <- `i_1*`}] -[scope_enter i_1] -[visit_exp i_1] -[visit_id i_1] not free -[visit_id i_1] not free -[scope_exit i_1] -[visit_exp `i_1*`] -[visit_id i_1*] no dims -[visit_id i_1*] -[visit_exp i_2*{i_2 <- `i_2*`}] -[scope_enter i_2] -[visit_exp i_2] -[visit_id i_2] not free -[visit_id i_2] not free -[scope_exit i_2] -[visit_exp `i_2*`] -[visit_id i_2*] no dims -[visit_id i_2*] -[visit_exp $iadd_sat_(N, `S`_sx, j_1, j_2)*{j_1 <- `j_1*`, j_2 <- `j_2*`}] -[scope_enter j_1] -[scope_enter j_2] -[visit_exp $iadd_sat_(N, `S`_sx, j_1, j_2)] -[visit_exp N] -[visit_id N] not free -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp j_1] -[visit_id j_1] not free -[visit_exp j_2] -[visit_id j_2] not free -[visit_id j_1] not free -[visit_id j_2] not free -[scope_exit j_2] -[scope_exit j_1] -[visit_exp `j_1*`] -[visit_id j_1*] no dims -[visit_id j_1*] -[visit_exp `j_2*`] -[visit_id j_2*] no dims -[visit_id j_2*] -[visit_exp ($concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`})] -[visit_exp $concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`})] -[visit_exp N] -[visit_id N] not free -[visit_exp [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}] -[scope_enter j_1] -[scope_enter j_2] -[visit_exp [j_1 j_2]] -[visit_exp j_1] -[visit_id j_1] not free -[visit_exp j_2] -[visit_id j_2] not free -[visit_id j_1] not free -[visit_id j_2] not free -[scope_exit j_2] -[scope_exit j_1] -[visit_exp `j_1*`] -[visit_id j_1*] not free -[visit_id j_1*] no dims -[visit_exp `j_2*`] -[visit_id j_2*] not free -[visit_id j_2*] no dims -[visit_exp $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`}] -[scope_enter i_1] -[scope_enter i_2] -[visit_exp $imul_(N, i_1, i_2)] -[visit_exp N] -[visit_id N] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2] -[visit_id i_2] not free -[visit_id i_1] not free -[visit_id i_2] not free -[scope_exit i_2] -[scope_exit i_1] -[visit_exp `i_1*`] -[visit_id i_1*] not free -[visit_id i_1*] no dims -[visit_exp `i_2*`] -[visit_id i_2*] not free -[visit_id i_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivdot_sat_{N : N, `i_1*` : iN(N)*, `i_2*` : iN(N)*, `j_1*` : iN(N)*, `j_2*` : iN(N)*}(N, i_1*{i_1 <- `i_1*`}, i_2*{i_2 <- `i_2*`}) = $iadd_sat_(N, `S`_sx, j_1, j_2)*{j_1 <- `j_1*`, j_2 <- `j_2*`} - -- if ($concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`}) -[check_dims] Jnn_1 Jnn_2 M_1 M_2 sx v_1 -[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `EXTADD_PAIRWISE`_vextunop__(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp $ivextunop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivadd_pairwise_, sx, v_1)] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp v_1] -[visit_id v_1] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, v_1 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTADD_PAIRWISE`_vextunop__(sx), v_1) = $ivextunop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivadd_pairwise_, sx, v_1) -[check_dims] Jnn_1 Jnn_2 M_1 M_2 half sx v_1 v_2 -[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `EXTMUL`_vextbinop__(half, sx)] -[visit_exp (half, sx)] -[visit_exp half] -[visit_id half] -[visit_exp sx] -[visit_id sx] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivmul_, sx, sx, `%`_laneidx($half(half, 0, M_2)), `%`_laneidx(M_2), v_1, v_2)] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp `%`_laneidx($half(half, 0, M_2))] -[visit_exp ($half(half, 0, M_2))] -[visit_exp $half(half, 0, M_2)] -[visit_exp half] -[visit_id half] not free -[visit_exp 0] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp `%`_laneidx(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTMUL`_vextbinop__(half, sx), v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivmul_, sx, sx, `%`_laneidx($half(half, 0, M_2)), `%`_laneidx(M_2), v_1, v_2) -[check_dims] Jnn_1 Jnn_2 M_1 M_2 v_1 v_2 -[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `DOTS`_vextbinop__] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_, `S`_sx, `S`_sx, `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2)] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_laneidx(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp `%`_laneidx(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_, `S`_sx, `S`_sx, `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2) -[check_dims] Jnn_1 Jnn_2 M_1 M_2 v_1 v_2 -[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `RELAXED_DOTS`_vextbinop__] -[visit_exp ()] -[visit_exp v_1] -[visit_id v_1] -[visit_exp v_2] -[visit_id v_2] -[visit_exp $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_sat_, `S`_sx, $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx), `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2)] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx)] -[visit_exp $R_idot] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_laneidx(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp `%`_laneidx(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp v_1] -[visit_id v_1] not free -[visit_exp v_2] -[visit_id v_2] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `RELAXED_DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_sat_, `S`_sx, $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx), `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2) -[check_dims] Jnn Jnn_1 Jnn_2 M M_1 M_2 c c' c'' c_1 c_2 c_3 -[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] -[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] -[visit_exp `RELAXED_DOT_ADDS`_vextternop__] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp c_2] -[visit_id c_2] -[visit_exp c_3] -[visit_id c_3] -[visit_exp c] -[visit_id c] -[visit_exp ($jsizenn(Jnn) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))))] -[visit_exp $jsizenn(Jnn)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))] -[visit_exp 2] -[visit_exp $lsizenn1((Jnn_1 : Jnn <: lanetype))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp (M = (2 * M_2))] -[visit_exp M] -[visit_id M] -[visit_exp (2 * M_2)] -[visit_exp 2] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp (c' = $vextbinop__(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2))] -[visit_exp c'] -[visit_id c'] -[visit_exp $vextbinop__(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2)] -[visit_exp `%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp (`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))] -[visit_exp `%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp ((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))] -[visit_exp (Jnn_1 : Jnn <: lanetype)] -[visit_exp Jnn_1] -[visit_id Jnn_1] not free -[visit_exp `%`_dim(M_1)] -[visit_exp (M_1)] -[visit_exp M_1] -[visit_id M_1] not free -[visit_exp `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] -[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp `RELAXED_DOTS`_vextbinop__] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_exp (c'' = $vextunop__(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx), c'))] -[visit_exp c''] -[visit_id c''] -[visit_exp $vextunop__(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx), c')] -[visit_exp `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] -[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp (`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp `EXTADD_PAIRWISE`_vextunop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp c'] -[visit_id c'] not free -[visit_exp (c <- $vbinop_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `ADD`_vbinop_, c'', c_3))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vbinop_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `ADD`_vbinop_, c'', c_3)] -[visit_exp `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp ((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))] -[visit_exp (Jnn_2 : Jnn <: lanetype)] -[visit_exp Jnn_2] -[visit_id Jnn_2] not free -[visit_exp `%`_dim(M_2)] -[visit_exp (M_2)] -[visit_exp M_2] -[visit_id M_2] not free -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[visit_exp c''] -[visit_id c''] not free -[visit_exp c_3] -[visit_id c_3] not free -=> - ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextternop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), c : vec_(`V128`_Vnn), Jnn : Jnn, M : M, c' : vec_(`V128`_Vnn), c'' : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `RELAXED_DOT_ADDS`_vextternop__, c_1, c_2, c_3) = c - -- if ($jsizenn(Jnn) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) - -- if (M = (2 * M_2)) - -- if (c' = $vextbinop__(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2)) - -- if (c'' = $vextunop__(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx), c')) - -- if (c <- $vbinop_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `ADD`_vbinop_, c'', c_3)) -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[scope_enter tagaddr] -[visit_id tagaddr] not free -[visit_id tagaddr] no dims -[scope_exit tagaddr] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter globaladdr] -[visit_id globaladdr] not free -[visit_id globaladdr] no dims -[scope_exit globaladdr] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter memaddr] -[visit_id memaddr] not free -[visit_id memaddr] no dims -[scope_exit memaddr] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tableaddr] -[visit_id tableaddr] not free -[visit_id tableaddr] no dims -[scope_exit tableaddr] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter funcaddr] -[visit_id funcaddr] not free -[visit_id funcaddr] no dims -[scope_exit funcaddr] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[check_dims] numtype -[scope_enter numtype] -[visit_id numtype] not free -[visit_exp numtype] -[visit_id numtype] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit numtype] ---- 1 --- -[check_dims] numtype ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] vectype -[scope_enter vectype] -[visit_id vectype] not free -[visit_exp vectype] -[visit_id vectype] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit vectype] ---- 1 --- -[check_dims] vectype ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter u31] -[visit_id u31] not free -[visit_id u31] no dims -[scope_exit u31] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter structaddr] -[visit_id structaddr] not free -[visit_id structaddr] no dims -[scope_exit structaddr] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter arrayaddr] -[visit_id arrayaddr] not free -[visit_id arrayaddr] no dims -[scope_exit arrayaddr] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter funcaddr] -[visit_id funcaddr] not free -[visit_id funcaddr] no dims -[scope_exit funcaddr] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter exnaddr] -[visit_id exnaddr] not free -[visit_id exnaddr] no dims -[scope_exit exnaddr] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter hostaddr] -[visit_id hostaddr] not free -[visit_id hostaddr] no dims -[scope_exit hostaddr] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter addrref] -[visit_id addrref] not free -[visit_id addrref] no dims -[scope_exit addrref] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter heaptype] -[visit_id heaptype] not free -[visit_id heaptype] no dims -[scope_exit heaptype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[scope_enter val*] -[visit_id val*] not free -[visit_id val*] no dims -[scope_exit val*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter exnaddr] -[visit_id exnaddr] not free -[visit_id exnaddr] no dims -[scope_exit exnaddr] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[scope_enter tagtype] -[visit_id tagtype] not free -[visit_id tagtype] no dims -[scope_exit tagtype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter globaltype] -[visit_id globaltype] not free -[visit_id globaltype] no dims -[scope_exit globaltype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter val] -[visit_id val] not free -[visit_id val] no dims -[scope_exit val] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter memtype] -[visit_id memtype] not free -[visit_id memtype] no dims -[scope_exit memtype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter byte*] -[visit_id byte*] not free -[visit_id byte*] no dims -[scope_exit byte*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter tabletype] -[visit_id tabletype] not free -[visit_id tabletype] no dims -[scope_exit tabletype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter ref*] -[visit_id ref*] not free -[visit_id ref*] no dims -[scope_exit ref*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter deftype] -[visit_id deftype] not free -[visit_id deftype] no dims -[scope_exit deftype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter moduleinst] -[visit_id moduleinst] not free -[visit_id moduleinst] no dims -[scope_exit moduleinst] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter funccode] -[visit_id funccode] not free -[visit_id funccode] no dims -[scope_exit funccode] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter byte*] -[visit_id byte*] not free -[visit_id byte*] no dims -[scope_exit byte*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter elemtype] -[visit_id elemtype] not free -[visit_id elemtype] no dims -[scope_exit elemtype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter ref*] -[visit_id ref*] not free -[visit_id ref*] no dims -[scope_exit ref*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter name] -[visit_id name] not free -[visit_id name] no dims -[scope_exit name] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter externaddr] -[visit_id externaddr] not free -[visit_id externaddr] no dims -[scope_exit externaddr] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] packtype -[scope_enter packtype] -[visit_id packtype] not free -[visit_exp $psizenn(packtype)] -[visit_exp packtype] -[visit_id packtype] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit packtype] ---- 1 --- -[check_dims] packtype ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[scope_enter deftype] -[visit_id deftype] not free -[visit_id deftype] no dims -[scope_exit deftype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter fieldval*] -[visit_id fieldval*] not free -[visit_id fieldval*] no dims -[scope_exit fieldval*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter deftype] -[visit_id deftype] not free -[visit_id deftype] no dims -[scope_exit deftype] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter fieldval*] -[visit_id fieldval*] not free -[visit_id fieldval*] no dims -[scope_exit fieldval*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter tagaddr] -[visit_id tagaddr] not free -[visit_id tagaddr] no dims -[scope_exit tagaddr] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter val*] -[visit_id val*] not free -[visit_id val*] no dims -[scope_exit val*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter deftype*] -[visit_id deftype*] not free -[visit_id deftype*] no dims -[scope_exit deftype*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tagaddr*] -[visit_id tagaddr*] not free -[visit_id tagaddr*] no dims -[scope_exit tagaddr*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter globaladdr*] -[visit_id globaladdr*] not free -[visit_id globaladdr*] no dims -[scope_exit globaladdr*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter memaddr*] -[visit_id memaddr*] not free -[visit_id memaddr*] no dims -[scope_exit memaddr*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tableaddr*] -[visit_id tableaddr*] not free -[visit_id tableaddr*] no dims -[scope_exit tableaddr*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter funcaddr*] -[visit_id funcaddr*] not free -[visit_id funcaddr*] no dims -[scope_exit funcaddr*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter dataaddr*] -[visit_id dataaddr*] not free -[visit_id dataaddr*] no dims -[scope_exit dataaddr*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter elemaddr*] -[visit_id elemaddr*] not free -[visit_id elemaddr*] no dims -[scope_exit elemaddr*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter exportinst*] -[visit_id exportinst*] not free -[visit_id exportinst*] no dims -[scope_exit exportinst*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter taginst*] -[visit_id taginst*] not free -[visit_id taginst*] no dims -[scope_exit taginst*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter globalinst*] -[visit_id globalinst*] not free -[visit_id globalinst*] no dims -[scope_exit globalinst*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter meminst*] -[visit_id meminst*] not free -[visit_id meminst*] no dims -[scope_exit meminst*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter tableinst*] -[visit_id tableinst*] not free -[visit_id tableinst*] no dims -[scope_exit tableinst*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter funcinst*] -[visit_id funcinst*] not free -[visit_id funcinst*] no dims -[scope_exit funcinst*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter datainst*] -[visit_id datainst*] not free -[visit_id datainst*] no dims -[scope_exit datainst*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter eleminst*] -[visit_id eleminst*] not free -[visit_id eleminst*] no dims -[scope_exit eleminst*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter structinst*] -[visit_id structinst*] not free -[visit_id structinst*] no dims -[scope_exit structinst*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter arrayinst*] -[visit_id arrayinst*] not free -[visit_id arrayinst*] no dims -[scope_exit arrayinst*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter exninst*] -[visit_id exninst*] not free -[visit_id exninst*] no dims -[scope_exit exninst*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter val?*] -[visit_id val?*] not free -[visit_id val?*] no dims -[scope_exit val?*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter moduleinst] -[visit_id moduleinst] not free -[visit_id moduleinst] no dims -[scope_exit moduleinst] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter n] -[visit_id n] not free -[visit_id n] no dims -[scope_enter instr*] -[visit_id instr*] not free -[visit_id instr*] no dims -[scope_enter instr*] -[visit_id instr*] not free -[visit_id instr*] no dims -[scope_exit instr*] -[scope_exit instr*] -[scope_exit n] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter n] -[visit_id n] not free -[visit_id n] no dims -[scope_enter frame] -[visit_id frame] not free -[visit_id frame] no dims -[scope_enter instr*] -[visit_id instr*] not free -[visit_id instr*] no dims -[scope_exit instr*] -[scope_exit frame] -[scope_exit n] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter n] -[visit_id n] not free -[visit_id n] no dims -[scope_enter catch*] -[visit_id catch*] not free -[visit_id catch*] no dims -[scope_enter instr*] -[visit_id instr*] not free -[visit_id instr*] no dims -[scope_exit instr*] -[scope_exit catch*] -[scope_exit n] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter store] -[visit_id store] not free -[visit_id store] no dims -[scope_enter frame] -[visit_id frame] not free -[visit_id frame] no dims -[scope_exit frame] -[scope_exit store] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter state] -[visit_id state] not free -[visit_id state] no dims -[scope_enter instr*] -[visit_id instr*] not free -[visit_id instr*] no dims -[scope_exit instr*] -[scope_exit state] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -DecD Ki : nat -[check_dims] -[visit_exp 1024] -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $Ki = 1024 -[check_dims] storagetype val -DecD packfield_(storagetype : storagetype, val : val) : fieldval -[visit_id storagetype] not free -[visit_id val] not free -[check_dims] _ fieldval storagetype -DecD unpackfield_(storagetype : storagetype, sx?, fieldval : fieldval) : val -[visit_id storagetype] not free -[visit_id _] not free -[visit_id fieldval] not free -[check_dims] val valtype -[visit_exp (valtype : valtype <: storagetype)] -[visit_exp valtype] -[visit_id valtype] -[visit_exp val] -[visit_id val] -[visit_exp (val : val <: fieldval)] -[visit_exp val] -[visit_id val] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $packfield_{valtype : valtype, val : val}((valtype : valtype <: storagetype), val) = (val : val <: fieldval) -[check_dims] i packtype -[visit_exp (packtype : packtype <: storagetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp `CONST`_val(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `PACK`_fieldval(packtype, $wrap__(32, $psize(packtype), i))] -[visit_exp (packtype, $wrap__(32, $psize(packtype), i))] -[visit_exp packtype] -[visit_id packtype] not free -[visit_exp $wrap__(32, $psize(packtype), i)] -[visit_exp 32] -[visit_exp $psize(packtype)] -[visit_exp packtype] -[visit_id packtype] not free -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $packfield_{packtype : packtype, i : num_(`I32`_numtype)}((packtype : packtype <: storagetype), `CONST`_val(`I32`_numtype, i)) = `PACK`_fieldval(packtype, $wrap__(32, $psize(packtype), i)) -[check_dims] val valtype -[visit_exp (valtype : valtype <: storagetype)] -[visit_exp valtype] -[visit_id valtype] -[visit_exp ?()] -[visit_exp (val : val <: fieldval)] -[visit_exp val] -[visit_id val] -[visit_exp val] -[visit_id val] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $unpackfield_{valtype : valtype, val : val}((valtype : valtype <: storagetype), ?(), (val : val <: fieldval)) = val -[check_dims] i packtype sx -[visit_exp (packtype : packtype <: storagetype)] -[visit_exp packtype] -[visit_id packtype] -[visit_exp ?(sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp `PACK`_fieldval(packtype, i)] -[visit_exp (packtype, i)] -[visit_exp packtype] -[visit_id packtype] not free -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_val(`I32`_numtype, $extend__($psize(packtype), 32, sx, i))] -[visit_exp (`I32`_numtype, $extend__($psize(packtype), 32, sx, i))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp $extend__($psize(packtype), 32, sx, i)] -[visit_exp $psize(packtype)] -[visit_exp packtype] -[visit_id packtype] not free -[visit_exp 32] -[visit_exp sx] -[visit_id sx] not free -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $unpackfield_{packtype : packtype, sx : sx, i : iN($psizenn(packtype))}((packtype : packtype <: storagetype), ?(sx), `PACK`_fieldval(packtype, i)) = `CONST`_val(`I32`_numtype, $extend__($psize(packtype), 32, sx, i)) -[check_dims] _ -DecD tagsxa(externaddr*) : tagaddr* -[visit_id _] not free -[check_dims] _ -DecD globalsxa(externaddr*) : globaladdr* -[visit_id _] not free -[check_dims] _ -DecD memsxa(externaddr*) : memaddr* -[visit_id _] not free -[check_dims] _ -DecD tablesxa(externaddr*) : tableaddr* -[visit_id _] not free -[check_dims] _ -DecD funcsxa(externaddr*) : funcaddr* -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tagsxa([]) = [] -[check_dims] a xa -[visit_exp [`TAG`_externaddr(a)] ++ xa*{xa <- `xa*`}] -[visit_exp [`TAG`_externaddr(a)]] -[visit_exp `TAG`_externaddr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] no dims -[visit_id xa*] -[visit_exp [a] ++ $tagsxa(xa*{xa <- `xa*`})] -[visit_exp [a]] -[visit_exp a] -[visit_id a] not free -[visit_exp $tagsxa(xa*{xa <- `xa*`})] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] not free -[visit_id xa*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tagsxa{a : addr, `xa*` : externaddr*}([`TAG`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tagsxa(xa*{xa <- `xa*`}) -[check_dims] externaddr xa -[visit_exp [externaddr] ++ xa*{xa <- `xa*`}] -[visit_exp [externaddr]] -[visit_exp externaddr] -[visit_id externaddr] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] no dims -[visit_id xa*] -[visit_exp $tagsxa(xa*{xa <- `xa*`})] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] not free -[visit_id xa*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tagsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $tagsxa(xa*{xa <- `xa*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $globalsxa([]) = [] -[check_dims] a xa -[visit_exp [`GLOBAL`_externaddr(a)] ++ xa*{xa <- `xa*`}] -[visit_exp [`GLOBAL`_externaddr(a)]] -[visit_exp `GLOBAL`_externaddr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] no dims -[visit_id xa*] -[visit_exp [a] ++ $globalsxa(xa*{xa <- `xa*`})] -[visit_exp [a]] -[visit_exp a] -[visit_id a] not free -[visit_exp $globalsxa(xa*{xa <- `xa*`})] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] not free -[visit_id xa*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $globalsxa{a : addr, `xa*` : externaddr*}([`GLOBAL`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $globalsxa(xa*{xa <- `xa*`}) -[check_dims] externaddr xa -[visit_exp [externaddr] ++ xa*{xa <- `xa*`}] -[visit_exp [externaddr]] -[visit_exp externaddr] -[visit_id externaddr] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] no dims -[visit_id xa*] -[visit_exp $globalsxa(xa*{xa <- `xa*`})] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] not free -[visit_id xa*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $globalsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $globalsxa(xa*{xa <- `xa*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $memsxa([]) = [] -[check_dims] a xa -[visit_exp [`MEM`_externaddr(a)] ++ xa*{xa <- `xa*`}] -[visit_exp [`MEM`_externaddr(a)]] -[visit_exp `MEM`_externaddr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] no dims -[visit_id xa*] -[visit_exp [a] ++ $memsxa(xa*{xa <- `xa*`})] -[visit_exp [a]] -[visit_exp a] -[visit_id a] not free -[visit_exp $memsxa(xa*{xa <- `xa*`})] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] not free -[visit_id xa*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $memsxa{a : addr, `xa*` : externaddr*}([`MEM`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $memsxa(xa*{xa <- `xa*`}) -[check_dims] externaddr xa -[visit_exp [externaddr] ++ xa*{xa <- `xa*`}] -[visit_exp [externaddr]] -[visit_exp externaddr] -[visit_id externaddr] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] no dims -[visit_id xa*] -[visit_exp $memsxa(xa*{xa <- `xa*`})] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] not free -[visit_id xa*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $memsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $memsxa(xa*{xa <- `xa*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tablesxa([]) = [] -[check_dims] a xa -[visit_exp [`TABLE`_externaddr(a)] ++ xa*{xa <- `xa*`}] -[visit_exp [`TABLE`_externaddr(a)]] -[visit_exp `TABLE`_externaddr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] no dims -[visit_id xa*] -[visit_exp [a] ++ $tablesxa(xa*{xa <- `xa*`})] -[visit_exp [a]] -[visit_exp a] -[visit_id a] not free -[visit_exp $tablesxa(xa*{xa <- `xa*`})] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] not free -[visit_id xa*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tablesxa{a : addr, `xa*` : externaddr*}([`TABLE`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tablesxa(xa*{xa <- `xa*`}) -[check_dims] externaddr xa -[visit_exp [externaddr] ++ xa*{xa <- `xa*`}] -[visit_exp [externaddr]] -[visit_exp externaddr] -[visit_id externaddr] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] no dims -[visit_id xa*] -[visit_exp $tablesxa(xa*{xa <- `xa*`})] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] not free -[visit_id xa*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tablesxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $tablesxa(xa*{xa <- `xa*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $funcsxa([]) = [] -[check_dims] a xa -[visit_exp [`FUNC`_externaddr(a)] ++ xa*{xa <- `xa*`}] -[visit_exp [`FUNC`_externaddr(a)]] -[visit_exp `FUNC`_externaddr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] no dims -[visit_id xa*] -[visit_exp [a] ++ $funcsxa(xa*{xa <- `xa*`})] -[visit_exp [a]] -[visit_exp a] -[visit_id a] not free -[visit_exp $funcsxa(xa*{xa <- `xa*`})] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] not free -[visit_id xa*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $funcsxa{a : addr, `xa*` : externaddr*}([`FUNC`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $funcsxa(xa*{xa <- `xa*`}) -[check_dims] externaddr xa -[visit_exp [externaddr] ++ xa*{xa <- `xa*`}] -[visit_exp [externaddr]] -[visit_exp externaddr] -[visit_id externaddr] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] no dims -[visit_id xa*] -[visit_exp $funcsxa(xa*{xa <- `xa*`})] -[visit_exp xa*{xa <- `xa*`}] -[scope_enter xa] -[visit_exp xa] -[visit_id xa] not free -[visit_id xa] not free -[scope_exit xa] -[visit_exp `xa*`] -[visit_id xa*] not free -[visit_id xa*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $funcsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $funcsxa(xa*{xa <- `xa*`}) - -- otherwise -[check_dims] state -DecD store(state : state) : store -[visit_id state] not free -[check_dims] state -DecD frame(state : state) : frame -[visit_id state] not free -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp s] -[visit_id s] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $store{s : store, f : frame}(`%;%`_state(s, f)) = s -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $frame{s : store, f : frame}(`%;%`_state(s, f)) = f -[check_dims] state -DecD tagaddr(state : state) : tagaddr* -[visit_id state] not free -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp f.`MODULE`_frame.`TAGS`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tagaddr{s : store, f : frame}(`%;%`_state(s, f)) = f.`MODULE`_frame.`TAGS`_moduleinst -[check_dims] state -DecD moduleinst(state : state) : moduleinst -[visit_id state] not free -[check_dims] state -DecD taginst(state : state) : taginst* -[visit_id state] not free -[check_dims] state -DecD globalinst(state : state) : globalinst* -[visit_id state] not free -[check_dims] state -DecD meminst(state : state) : meminst* -[visit_id state] not free -[check_dims] state -DecD tableinst(state : state) : tableinst* -[visit_id state] not free -[check_dims] state -DecD funcinst(state : state) : funcinst* -[visit_id state] not free -[check_dims] state -DecD datainst(state : state) : datainst* -[visit_id state] not free -[check_dims] state -DecD eleminst(state : state) : eleminst* -[visit_id state] not free -[check_dims] state -DecD structinst(state : state) : structinst* -[visit_id state] not free -[check_dims] state -DecD arrayinst(state : state) : arrayinst* -[visit_id state] not free -[check_dims] state -DecD exninst(state : state) : exninst* -[visit_id state] not free -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $moduleinst{s : store, f : frame}(`%;%`_state(s, f)) = f.`MODULE`_frame -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp s.`TAGS`_store] -[visit_exp s] -[visit_id s] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $taginst{s : store, f : frame}(`%;%`_state(s, f)) = s.`TAGS`_store -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp s.`GLOBALS`_store] -[visit_exp s] -[visit_id s] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $globalinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`GLOBALS`_store -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp s.`MEMS`_store] -[visit_exp s] -[visit_id s] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $meminst{s : store, f : frame}(`%;%`_state(s, f)) = s.`MEMS`_store -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp s.`TABLES`_store] -[visit_exp s] -[visit_id s] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tableinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`TABLES`_store -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp s.`FUNCS`_store] -[visit_exp s] -[visit_id s] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $funcinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`FUNCS`_store -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp s.`DATAS`_store] -[visit_exp s] -[visit_id s] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $datainst{s : store, f : frame}(`%;%`_state(s, f)) = s.`DATAS`_store -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp s.`ELEMS`_store] -[visit_exp s] -[visit_id s] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $eleminst{s : store, f : frame}(`%;%`_state(s, f)) = s.`ELEMS`_store -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp s.`STRUCTS`_store] -[visit_exp s] -[visit_id s] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $structinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`STRUCTS`_store -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp s.`ARRAYS`_store] -[visit_exp s] -[visit_id s] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $arrayinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`ARRAYS`_store -[check_dims] f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp s.`EXNS`_store] -[visit_exp s] -[visit_id s] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $exninst{s : store, f : frame}(`%;%`_state(s, f)) = s.`EXNS`_store -[check_dims] state typeidx -DecD type(state : state, typeidx : typeidx) : deftype -[visit_id state] not free -[visit_id typeidx] not free -[check_dims] state tagidx -DecD tag(state : state, tagidx : tagidx) : taginst -[visit_id state] not free -[visit_id tagidx] not free -[check_dims] globalidx state -DecD global(state : state, globalidx : globalidx) : globalinst -[visit_id state] not free -[visit_id globalidx] not free -[check_dims] memidx state -DecD mem(state : state, memidx : memidx) : meminst -[visit_id state] not free -[visit_id memidx] not free -[check_dims] state tableidx -DecD table(state : state, tableidx : tableidx) : tableinst -[visit_id state] not free -[visit_id tableidx] not free -[check_dims] funcidx state -DecD func(state : state, funcidx : funcidx) : funcinst -[visit_id state] not free -[visit_id funcidx] not free -[check_dims] dataidx state -DecD data(state : state, dataidx : dataidx) : datainst -[visit_id state] not free -[visit_id dataidx] not free -[check_dims] state tableidx -DecD elem(state : state, tableidx : tableidx) : eleminst -[visit_id state] not free -[visit_id tableidx] not free -[check_dims] localidx state -DecD local(state : state, localidx : localidx) : val? -[visit_id state] not free -[visit_id localidx] not free -[check_dims] f s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp f.`MODULE`_frame.`TYPES`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`TYPES`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $type{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = f.`MODULE`_frame.`TYPES`_moduleinst[x!`%`_idx.0] -[check_dims] f s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp s.`TAGS`_store[f.`MODULE`_frame.`TAGS`_moduleinst[x!`%`_idx.0]]] -[visit_exp s.`TAGS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`TAGS`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`TAGS`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tag{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`TAGS`_store[f.`MODULE`_frame.`TAGS`_moduleinst[x!`%`_idx.0]] -[check_dims] f s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp s.`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]]] -[visit_exp s.`GLOBALS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`GLOBALS`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $global{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]] -[check_dims] f s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp s.`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]]] -[visit_exp s.`MEMS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`MEMS`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $mem{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] -[check_dims] f s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp s.`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]]] -[visit_exp s.`TABLES`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`TABLES`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $table{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] -[check_dims] f s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp s.`FUNCS`_store[f.`MODULE`_frame.`FUNCS`_moduleinst[x!`%`_idx.0]]] -[visit_exp s.`FUNCS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`FUNCS`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`FUNCS`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $func{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`FUNCS`_store[f.`MODULE`_frame.`FUNCS`_moduleinst[x!`%`_idx.0]] -[check_dims] f s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp s.`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]]] -[visit_exp s.`DATAS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`DATAS`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $data{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]] -[check_dims] f s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp s.`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]]] -[visit_exp s.`ELEMS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`ELEMS`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $elem{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]] -[check_dims] f s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp f.`LOCALS`_frame[x!`%`_idx.0]] -[visit_exp f.`LOCALS`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $local{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = f.`LOCALS`_frame[x!`%`_idx.0] -[check_dims] localidx state val -DecD with_local(state : state, localidx : localidx, val : val) : state -[visit_id state] not free -[visit_id localidx] not free -[visit_id val] not free -[check_dims] globalidx state val -DecD with_global(state : state, globalidx : globalidx, val : val) : state -[visit_id state] not free -[visit_id globalidx] not free -[visit_id val] not free -[check_dims] nat ref state tableidx -DecD with_table(state : state, tableidx : tableidx, nat : nat, ref : ref) : state -[visit_id state] not free -[visit_id tableidx] not free -[visit_id nat] not free -[visit_id ref] not free -[check_dims] state tableidx tableinst -DecD with_tableinst(state : state, tableidx : tableidx, tableinst : tableinst) : state -[visit_id state] not free -[visit_id tableidx] not free -[visit_id tableinst] not free -[check_dims] _ memidx nat state -DecD with_mem(state : state, memidx : memidx, nat : nat, nat : nat, byte*) : state -[visit_id state] not free -[visit_id memidx] not free -[visit_id nat] not free -[visit_id nat] not free -[visit_id _] not free -[check_dims] memidx meminst state -DecD with_meminst(state : state, memidx : memidx, meminst : meminst) : state -[visit_id state] not free -[visit_id memidx] not free -[visit_id meminst] not free -[check_dims] _ elemidx state -DecD with_elem(state : state, elemidx : elemidx, ref*) : state -[visit_id state] not free -[visit_id elemidx] not free -[visit_id _] not free -[check_dims] _ dataidx state -DecD with_data(state : state, dataidx : dataidx, byte*) : state -[visit_id state] not free -[visit_id dataidx] not free -[visit_id _] not free -[check_dims] fieldval nat state structaddr -DecD with_struct(state : state, structaddr : structaddr, nat : nat, fieldval : fieldval) : state -[visit_id state] not free -[visit_id structaddr] not free -[visit_id nat] not free -[visit_id fieldval] not free -[check_dims] arrayaddr fieldval nat state -DecD with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fieldval) : state -[visit_id state] not free -[visit_id arrayaddr] not free -[visit_id nat] not free -[visit_id fieldval] not free -[check_dims] f s v x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp v] -[visit_id v] -[visit_exp `%;%`_state(s, f[`LOCALS`_frame[x!`%`_idx.0] = ?(v)])] -[visit_exp (s, f[`LOCALS`_frame[x!`%`_idx.0] = ?(v)])] -[visit_exp s] -[visit_id s] not free -[visit_exp f[`LOCALS`_frame[x!`%`_idx.0] = ?(v)]] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp ?(v)] -[visit_exp v] -[visit_id v] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_local{s : store, f : frame, x : idx, v : val}(`%;%`_state(s, f), x, v) = `%;%`_state(s, f[`LOCALS`_frame[x!`%`_idx.0] = ?(v)]) -[check_dims] f s v x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp v] -[visit_id v] -[visit_exp `%;%`_state(s[`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]].`VALUE`_globalinst = v], f)] -[visit_exp (s[`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]].`VALUE`_globalinst = v], f)] -[visit_exp s[`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]].`VALUE`_globalinst = v]] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`GLOBALS`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp v] -[visit_id v] not free -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_global{s : store, f : frame, x : idx, v : val}(`%;%`_state(s, f), x, v) = `%;%`_state(s[`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]].`VALUE`_globalinst = v], f) -[check_dims] f i r s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp r] -[visit_id r] -[visit_exp `%;%`_state(s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]].`REFS`_tableinst[i] = r], f)] -[visit_exp (s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]].`REFS`_tableinst[i] = r], f)] -[visit_exp s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]].`REFS`_tableinst[i] = r]] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`TABLES`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp i] -[visit_id i] not free -[visit_exp r] -[visit_id r] not free -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_table{s : store, f : frame, x : idx, i : nat, r : ref}(`%;%`_state(s, f), x, i, r) = `%;%`_state(s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]].`REFS`_tableinst[i] = r], f) -[check_dims] f s ti x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp ti] -[visit_id ti] -[visit_exp `%;%`_state(s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] = ti], f)] -[visit_exp (s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] = ti], f)] -[visit_exp s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] = ti]] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`TABLES`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp ti] -[visit_id ti] not free -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_tableinst{s : store, f : frame, x : idx, ti : tableinst}(`%;%`_state(s, f), x, ti) = `%;%`_state(s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] = ti], f) -[check_dims] b f i j s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp j] -[visit_id j] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp `%;%`_state(s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]].`BYTES`_meminst[i : j] = b*{b <- `b*`}], f)] -[visit_exp (s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]].`BYTES`_meminst[i : j] = b*{b <- `b*`}], f)] -[visit_exp s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]].`BYTES`_meminst[i : j] = b*{b <- `b*`}]] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`MEMS`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp i] -[visit_id i] not free -[visit_exp j] -[visit_id j] not free -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_mem{s : store, f : frame, x : idx, i : nat, j : nat, `b*` : byte*}(`%;%`_state(s, f), x, i, j, b*{b <- `b*`}) = `%;%`_state(s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]].`BYTES`_meminst[i : j] = b*{b <- `b*`}], f) -[check_dims] f mi s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp mi] -[visit_id mi] -[visit_exp `%;%`_state(s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] = mi], f)] -[visit_exp (s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] = mi], f)] -[visit_exp s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] = mi]] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`MEMS`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp mi] -[visit_id mi] not free -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_meminst{s : store, f : frame, x : idx, mi : meminst}(`%;%`_state(s, f), x, mi) = `%;%`_state(s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] = mi], f) -[check_dims] f r s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp r*{r <- `r*`}] -[scope_enter r] -[visit_exp r] -[visit_id r] not free -[visit_id r] not free -[scope_exit r] -[visit_exp `r*`] -[visit_id r*] no dims -[visit_id r*] -[visit_exp `%;%`_state(s[`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]].`REFS`_eleminst = r*{r <- `r*`}], f)] -[visit_exp (s[`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]].`REFS`_eleminst = r*{r <- `r*`}], f)] -[visit_exp s[`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]].`REFS`_eleminst = r*{r <- `r*`}]] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`ELEMS`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp r*{r <- `r*`}] -[scope_enter r] -[visit_exp r] -[visit_id r] not free -[visit_id r] not free -[scope_exit r] -[visit_exp `r*`] -[visit_id r*] not free -[visit_id r*] no dims -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_elem{s : store, f : frame, x : idx, `r*` : ref*}(`%;%`_state(s, f), x, r*{r <- `r*`}) = `%;%`_state(s[`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]].`REFS`_eleminst = r*{r <- `r*`}], f) -[check_dims] b f s x -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp x] -[visit_id x] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp `%;%`_state(s[`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]].`BYTES`_datainst = b*{b <- `b*`}], f)] -[visit_exp (s[`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]].`BYTES`_datainst = b*{b <- `b*`}], f)] -[visit_exp s[`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]].`BYTES`_datainst = b*{b <- `b*`}]] -[visit_exp s] -[visit_id s] not free -[visit_exp f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]] -[visit_exp f.`MODULE`_frame.`DATAS`_moduleinst] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_data{s : store, f : frame, x : idx, `b*` : byte*}(`%;%`_state(s, f), x, b*{b <- `b*`}) = `%;%`_state(s[`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]].`BYTES`_datainst = b*{b <- `b*`}], f) -[check_dims] a f fv i s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp a] -[visit_id a] -[visit_exp i] -[visit_id i] -[visit_exp fv] -[visit_id fv] -[visit_exp `%;%`_state(s[`STRUCTS`_store[a].`FIELDS`_structinst[i] = fv], f)] -[visit_exp (s[`STRUCTS`_store[a].`FIELDS`_structinst[i] = fv], f)] -[visit_exp s[`STRUCTS`_store[a].`FIELDS`_structinst[i] = fv]] -[visit_exp s] -[visit_id s] not free -[visit_exp a] -[visit_id a] not free -[visit_exp i] -[visit_id i] not free -[visit_exp fv] -[visit_id fv] not free -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_struct{s : store, f : frame, a : addr, i : nat, fv : fieldval}(`%;%`_state(s, f), a, i, fv) = `%;%`_state(s[`STRUCTS`_store[a].`FIELDS`_structinst[i] = fv], f) -[check_dims] a f fv i s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp a] -[visit_id a] -[visit_exp i] -[visit_id i] -[visit_exp fv] -[visit_id fv] -[visit_exp `%;%`_state(s[`ARRAYS`_store[a].`FIELDS`_arrayinst[i] = fv], f)] -[visit_exp (s[`ARRAYS`_store[a].`FIELDS`_arrayinst[i] = fv], f)] -[visit_exp s[`ARRAYS`_store[a].`FIELDS`_arrayinst[i] = fv]] -[visit_exp s] -[visit_id s] not free -[visit_exp a] -[visit_id a] not free -[visit_exp i] -[visit_id i] not free -[visit_exp fv] -[visit_id fv] not free -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_array{s : store, f : frame, a : addr, i : nat, fv : fieldval}(`%;%`_state(s, f), a, i, fv) = `%;%`_state(s[`ARRAYS`_store[a].`FIELDS`_arrayinst[i] = fv], f) -[check_dims] _ state -DecD add_structinst(state : state, structinst*) : state -[visit_id state] not free -[visit_id _] not free -[check_dims] _ state -DecD add_arrayinst(state : state, arrayinst*) : state -[visit_id state] not free -[visit_id _] not free -[check_dims] _ state -DecD add_exninst(state : state, exninst*) : state -[visit_id state] not free -[visit_id _] not free -[check_dims] f s si -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp si*{si <- `si*`}] -[scope_enter si] -[visit_exp si] -[visit_id si] not free -[visit_id si] not free -[scope_exit si] -[visit_exp `si*`] -[visit_id si*] no dims -[visit_id si*] -[visit_exp `%;%`_state(s[`STRUCTS`_store =++ si*{si <- `si*`}], f)] -[visit_exp (s[`STRUCTS`_store =++ si*{si <- `si*`}], f)] -[visit_exp s[`STRUCTS`_store =++ si*{si <- `si*`}]] -[visit_exp s] -[visit_id s] not free -[visit_exp si*{si <- `si*`}] -[scope_enter si] -[visit_exp si] -[visit_id si] not free -[visit_id si] not free -[scope_exit si] -[visit_exp `si*`] -[visit_id si*] not free -[visit_id si*] no dims -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_structinst{s : store, f : frame, `si*` : structinst*}(`%;%`_state(s, f), si*{si <- `si*`}) = `%;%`_state(s[`STRUCTS`_store =++ si*{si <- `si*`}], f) -[check_dims] ai f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp ai*{ai <- `ai*`}] -[scope_enter ai] -[visit_exp ai] -[visit_id ai] not free -[visit_id ai] not free -[scope_exit ai] -[visit_exp `ai*`] -[visit_id ai*] no dims -[visit_id ai*] -[visit_exp `%;%`_state(s[`ARRAYS`_store =++ ai*{ai <- `ai*`}], f)] -[visit_exp (s[`ARRAYS`_store =++ ai*{ai <- `ai*`}], f)] -[visit_exp s[`ARRAYS`_store =++ ai*{ai <- `ai*`}]] -[visit_exp s] -[visit_id s] not free -[visit_exp ai*{ai <- `ai*`}] -[scope_enter ai] -[visit_exp ai] -[visit_id ai] not free -[visit_id ai] not free -[scope_exit ai] -[visit_exp `ai*`] -[visit_id ai*] not free -[visit_id ai*] no dims -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_arrayinst{s : store, f : frame, `ai*` : arrayinst*}(`%;%`_state(s, f), ai*{ai <- `ai*`}) = `%;%`_state(s[`ARRAYS`_store =++ ai*{ai <- `ai*`}], f) -[check_dims] exn f s -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp exn*{exn <- `exn*`}] -[scope_enter exn] -[visit_exp exn] -[visit_id exn] not free -[visit_id exn] not free -[scope_exit exn] -[visit_exp `exn*`] -[visit_id exn*] no dims -[visit_id exn*] -[visit_exp `%;%`_state(s[`EXNS`_store =++ exn*{exn <- `exn*`}], f)] -[visit_exp (s[`EXNS`_store =++ exn*{exn <- `exn*`}], f)] -[visit_exp s[`EXNS`_store =++ exn*{exn <- `exn*`}]] -[visit_exp s] -[visit_id s] not free -[visit_exp exn*{exn <- `exn*`}] -[scope_enter exn] -[visit_exp exn] -[visit_id exn] not free -[visit_id exn] not free -[scope_exit exn] -[visit_exp `exn*`] -[visit_id exn*] not free -[visit_id exn*] no dims -[visit_exp f] -[visit_id f] not free -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_exninst{s : store, f : frame, `exn*` : exninst*}(`%;%`_state(s, f), exn*{exn <- `exn*`}) = `%;%`_state(s[`EXNS`_store =++ exn*{exn <- `exn*`}], f) -[check_dims] nat ref tableinst -DecD growtable(tableinst : tableinst, nat : nat, ref : ref) : tableinst -[visit_id tableinst] not free -[visit_id nat] not free -[visit_id ref] not free -[check_dims] meminst nat -DecD growmem(meminst : meminst, nat : nat) : meminst -[visit_id meminst] not free -[visit_id nat] not free -[check_dims] at i i' j n r r' rt tableinst tableinst' -[visit_exp tableinst] -[visit_id tableinst] -[visit_exp n] -[visit_id n] -[visit_exp r] -[visit_id r] -[visit_exp tableinst'] -[visit_id tableinst'] -[visit_exp (tableinst = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`}})] -[visit_exp tableinst] -[visit_id tableinst] not free -[visit_exp {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`}}] -[visit_exp `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt)] -[visit_exp (at, `[%..%]`_limits(i, j?{j <- `j?`}), rt)] -[visit_exp at] -[visit_id at] -[visit_exp `[%..%]`_limits(i, j?{j <- `j?`})] -[visit_exp (i, j?{j <- `j?`})] -[visit_exp i] -[visit_id i] -[visit_exp j?{j <- `j?`}] -[scope_enter j] -[visit_exp j] -[visit_id j] not free -[visit_id j] not free -[scope_exit j] -[visit_exp `j?`] -[visit_id j?] no dims -[visit_id j?] -[visit_exp rt] -[visit_id rt] -[visit_exp r'*{r' <- `r'*`}] -[scope_enter r'] -[visit_exp r'] -[visit_id r'] not free -[visit_id r'] not free -[scope_exit r'] -[visit_exp `r'*`] -[visit_id r'*] no dims -[visit_id r'*] -[visit_exp (tableinst' = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i', j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`} ++ r^n{}})] -[visit_exp tableinst'] -[visit_id tableinst'] not free -[visit_exp {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i', j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`} ++ r^n{}}] -[visit_exp `%%%`_tabletype(at, `[%..%]`_limits(i', j?{j <- `j?`}), rt)] -[visit_exp (at, `[%..%]`_limits(i', j?{j <- `j?`}), rt)] -[visit_exp at] -[visit_id at] not free -[visit_exp `[%..%]`_limits(i', j?{j <- `j?`})] -[visit_exp (i', j?{j <- `j?`})] -[visit_exp i'] -[visit_id i'] -[visit_exp j?{j <- `j?`}] -[scope_enter j] -[visit_exp j] -[visit_id j] not free -[visit_id j] not free -[scope_exit j] -[visit_exp `j?`] -[visit_id j?] not free -[visit_id j?] no dims -[visit_exp rt] -[visit_id rt] not free -[visit_exp r'*{r' <- `r'*`} ++ r^n{}] -[visit_exp r'*{r' <- `r'*`}] -[scope_enter r'] -[visit_exp r'] -[visit_id r'] not free -[visit_id r'] not free -[scope_exit r'] -[visit_exp `r'*`] -[visit_id r'*] not free -[visit_id r'*] no dims -[visit_exp r^n{}] -[visit_exp r] -[visit_id r] not free -[visit_exp n] -[visit_id n] not free -[visit_exp (i'!`%`_u64.0 = (|r'*{r' <- `r'*`}| + n))] -[visit_exp i'!`%`_u64.0] -[visit_exp i'!`%`_u64] -[visit_exp i'] -[visit_id i'] not free -[visit_exp (|r'*{r' <- `r'*`}| + n)] -[visit_exp |r'*{r' <- `r'*`}|] -[visit_exp r'*{r' <- `r'*`}] -[scope_enter r'] -[visit_exp r'] -[visit_id r'] not free -[visit_id r'] not free -[scope_exit r'] -[visit_exp `r'*`] -[visit_id r'*] not free -[visit_id r'*] no dims -[visit_exp n] -[visit_id n] not free -[scope_enter j] -[visit_exp (i'!`%`_u64.0 <= j!`%`_u64.0)] -[visit_exp i'!`%`_u64.0] -[visit_exp i'!`%`_u64] -[visit_exp i'] -[visit_id i'] not free -[visit_exp j!`%`_u64.0] -[visit_exp j!`%`_u64] -[visit_exp j] -[visit_id j] not free -[visit_id j] not free -[scope_exit j] -[visit_exp `j?`] -[visit_id j?] not free -[visit_id j?] no dims -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $growtable{tableinst : tableinst, n : n, r : ref, tableinst' : tableinst, at : addrtype, i : u64, `j?` : u64?, rt : reftype, `r'*` : ref*, i' : u64}(tableinst, n, r) = tableinst' - -- if (tableinst = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`}}) - -- if (tableinst' = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i', j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`} ++ r^n{}}) - -- if (i'!`%`_u64.0 = (|r'*{r' <- `r'*`}| + n)) - -- (if (i'!`%`_u64.0 <= j!`%`_u64.0))?{j <- `j?`} -[check_dims] at b i i' j meminst meminst' n -[visit_exp meminst] -[visit_id meminst] -[visit_exp n] -[visit_id n] -[visit_exp meminst'] -[visit_id meminst'] -[visit_exp (meminst = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` b*{b <- `b*`}})] -[visit_exp meminst] -[visit_id meminst] not free -[visit_exp {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` b*{b <- `b*`}}] -[visit_exp `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`}))] -[visit_exp (at, `[%..%]`_limits(i, j?{j <- `j?`}))] -[visit_exp at] -[visit_id at] -[visit_exp `[%..%]`_limits(i, j?{j <- `j?`})] -[visit_exp (i, j?{j <- `j?`})] -[visit_exp i] -[visit_id i] -[visit_exp j?{j <- `j?`}] -[scope_enter j] -[visit_exp j] -[visit_id j] not free -[visit_id j] not free -[scope_exit j] -[visit_exp `j?`] -[visit_id j?] no dims -[visit_id j?] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp (meminst' = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i', j?{j <- `j?`})), `BYTES` b*{b <- `b*`} ++ `%`_byte(0)^(n * (64 * $Ki)){}})] -[visit_exp meminst'] -[visit_id meminst'] not free -[visit_exp {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i', j?{j <- `j?`})), `BYTES` b*{b <- `b*`} ++ `%`_byte(0)^(n * (64 * $Ki)){}}] -[visit_exp `%%PAGE`_memtype(at, `[%..%]`_limits(i', j?{j <- `j?`}))] -[visit_exp (at, `[%..%]`_limits(i', j?{j <- `j?`}))] -[visit_exp at] -[visit_id at] not free -[visit_exp `[%..%]`_limits(i', j?{j <- `j?`})] -[visit_exp (i', j?{j <- `j?`})] -[visit_exp i'] -[visit_id i'] -[visit_exp j?{j <- `j?`}] -[scope_enter j] -[visit_exp j] -[visit_id j] not free -[visit_id j] not free -[scope_exit j] -[visit_exp `j?`] -[visit_id j?] not free -[visit_id j?] no dims -[visit_exp b*{b <- `b*`} ++ `%`_byte(0)^(n * (64 * $Ki)){}] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_exp `%`_byte(0)^(n * (64 * $Ki)){}] -[visit_exp `%`_byte(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp (n * (64 * $Ki))] -[visit_exp n] -[visit_id n] not free -[visit_exp (64 * $Ki)] -[visit_exp 64] -[visit_exp $Ki] -[visit_exp ((i'!`%`_u64.0 : nat <:> rat) = (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat)))] -[visit_exp (i'!`%`_u64.0 : nat <:> rat)] -[visit_exp i'!`%`_u64.0] -[visit_exp i'!`%`_u64] -[visit_exp i'] -[visit_id i'] not free -[visit_exp (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat))] -[visit_exp ((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat))] -[visit_exp (|b*{b <- `b*`}| : nat <:> rat)] -[visit_exp |b*{b <- `b*`}|] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_exp ((64 * $Ki) : nat <:> rat)] -[visit_exp (64 * $Ki)] -[visit_exp 64] -[visit_exp $Ki] -[visit_exp (n : nat <:> rat)] -[visit_exp n] -[visit_id n] not free -[scope_enter j] -[visit_exp (i'!`%`_u64.0 <= j!`%`_u64.0)] -[visit_exp i'!`%`_u64.0] -[visit_exp i'!`%`_u64] -[visit_exp i'] -[visit_id i'] not free -[visit_exp j!`%`_u64.0] -[visit_exp j!`%`_u64] -[visit_exp j] -[visit_id j] not free -[visit_id j] not free -[scope_exit j] -[visit_exp `j?`] -[visit_id j?] not free -[visit_id j?] no dims -=> - ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $growmem{meminst : meminst, n : n, meminst' : meminst, at : addrtype, i : u64, `j?` : u64?, `b*` : byte*, i' : u64}(meminst, n) = meminst' - -- if (meminst = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` b*{b <- `b*`}}) - -- if (meminst' = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i', j?{j <- `j?`})), `BYTES` b*{b <- `b*`} ++ `%`_byte(0)^(n * (64 * $Ki)){}}) - -- if ((i'!`%`_u64.0 : nat <:> rat) = (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat))) - -- (if (i'!`%`_u64.0 <= j!`%`_u64.0))?{j <- `j?`} -[check_dims] valtype -DecD default_(valtype : valtype) : val? -[visit_id valtype] not free -[check_dims] Inn -[visit_exp (Inn : Inn <: valtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp ?(`CONST`_val((Inn : Inn <: numtype), `%`_num_(0)))] -[visit_exp `CONST`_val((Inn : Inn <: numtype), `%`_num_(0))] -[visit_exp ((Inn : Inn <: numtype), `%`_num_(0))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp `%`_num_(0)] -[visit_exp (0)] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Inn : Inn}((Inn : Inn <: valtype)) = ?(`CONST`_val((Inn : Inn <: numtype), `%`_num_(0))) -[check_dims] Fnn -[visit_exp (Fnn : Fnn <: valtype)] -[visit_exp Fnn] -[visit_id Fnn] -[visit_exp ?(`CONST`_val((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype)))))] -[visit_exp `CONST`_val((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))] -[visit_exp ((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -[visit_exp $fzero($size((Fnn : Fnn <: numtype)))] -[visit_exp $size((Fnn : Fnn <: numtype))] -[visit_exp (Fnn : Fnn <: numtype)] -[visit_exp Fnn] -[visit_id Fnn] not free -=> - ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Fnn : Fnn}((Fnn : Fnn <: valtype)) = ?(`CONST`_val((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))) -[check_dims] Vnn -[visit_exp (Vnn : Vnn <: valtype)] -[visit_exp Vnn] -[visit_id Vnn] -[visit_exp ?(`VCONST`_val(Vnn, `%`_vec_(0)))] -[visit_exp `VCONST`_val(Vnn, `%`_vec_(0))] -[visit_exp (Vnn, `%`_vec_(0))] -[visit_exp Vnn] -[visit_id Vnn] not free -[visit_exp `%`_vec_(0)] -[visit_exp (0)] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Vnn : Vnn}((Vnn : Vnn <: valtype)) = ?(`VCONST`_val(Vnn, `%`_vec_(0))) -[check_dims] ht -[visit_exp `REF`_valtype(?(`NULL`_null), ht)] -[visit_exp (?(`NULL`_null), ht)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht] -[visit_id ht] -[visit_exp ?(`REF.NULL`_val(ht))] -[visit_exp `REF.NULL`_val(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] not free -=> - ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{ht : heaptype}(`REF`_valtype(?(`NULL`_null), ht)) = ?(`REF.NULL`_val(ht)) -[check_dims] ht -[visit_exp `REF`_valtype(?(), ht)] -[visit_exp (?(), ht)] -[visit_exp ?()] -[visit_exp ht] -[visit_id ht] -[visit_exp ?()] -=> - ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{ht : heaptype}(`REF`_valtype(?(), ht)) = ?() -[check_dims] t -[visit_exp t] -[visit_id t] -[visit_exp ($default_(t) =/= ?())] -[visit_exp $default_(t)] -[visit_exp t] -[visit_id t] not free -[visit_exp ?()] -[check_dims] t -[visit_exp t] -[visit_id t] -[visit_exp ($default_(t) = ?())] -[visit_exp $default_(t)] -[visit_exp t] -[visit_id t] not free -[visit_exp ?()] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] c nt s -[visit_exp s] -[visit_id s] -[visit_exp `CONST`_num(nt, c)] -[visit_exp (nt, c)] -[visit_exp nt] -[visit_id nt] -[visit_exp c] -[visit_id c] -[visit_exp nt] -[visit_id nt] not free -[check_dims] c s vt -[visit_exp s] -[visit_id s] -[visit_exp `VCONST`_vec(vt, c)] -[visit_exp (vt, c)] -[visit_exp vt] -[visit_id vt] -[visit_exp c] -[visit_id c] -[visit_exp vt] -[visit_id vt] not free -[check_dims] ht ht' s -[visit_exp s] -[visit_id s] -[visit_exp `REF.NULL`_ref(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `REF`_reftype(?(`NULL`_null), ht')] -[visit_exp (?(`NULL`_null), ht')] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht'] -[visit_id ht'] -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, ht', ht)] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp ht'] -[visit_id ht'] not free -[visit_exp ht] -[visit_id ht] not free -[check_dims] i s -[visit_exp s] -[visit_id s] -[visit_exp `REF.I31_NUM`_ref(i)] -[visit_exp (i)] -[visit_exp i] -[visit_id i] -[visit_exp `REF`_reftype(?(), `I31`_heaptype)] -[visit_exp (?(), `I31`_heaptype)] -[visit_exp ?()] -[visit_exp `I31`_heaptype] -[visit_exp ()] -[check_dims] a dt s -[visit_exp s] -[visit_id s] -[visit_exp `REF.STRUCT_ADDR`_ref(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `REF`_reftype(?(), (dt : deftype <: heaptype))] -[visit_exp (?(), (dt : deftype <: heaptype))] -[visit_exp ?()] -[visit_exp (dt : deftype <: heaptype)] -[visit_exp dt] -[visit_id dt] -[visit_exp (s.`STRUCTS`_store[a].`TYPE`_structinst = dt)] -[visit_exp s.`STRUCTS`_store[a].`TYPE`_structinst] -[visit_exp s.`STRUCTS`_store[a]] -[visit_exp s.`STRUCTS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp a] -[visit_id a] not free -[visit_exp dt] -[visit_id dt] not free -[check_dims] a dt s -[visit_exp s] -[visit_id s] -[visit_exp `REF.ARRAY_ADDR`_ref(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `REF`_reftype(?(), (dt : deftype <: heaptype))] -[visit_exp (?(), (dt : deftype <: heaptype))] -[visit_exp ?()] -[visit_exp (dt : deftype <: heaptype)] -[visit_exp dt] -[visit_id dt] -[visit_exp (s.`ARRAYS`_store[a].`TYPE`_arrayinst = dt)] -[visit_exp s.`ARRAYS`_store[a].`TYPE`_arrayinst] -[visit_exp s.`ARRAYS`_store[a]] -[visit_exp s.`ARRAYS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp a] -[visit_id a] not free -[visit_exp dt] -[visit_id dt] not free -[check_dims] a dt s -[visit_exp s] -[visit_id s] -[visit_exp `REF.FUNC_ADDR`_ref(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `REF`_reftype(?(), (dt : deftype <: heaptype))] -[visit_exp (?(), (dt : deftype <: heaptype))] -[visit_exp ?()] -[visit_exp (dt : deftype <: heaptype)] -[visit_exp dt] -[visit_id dt] -[visit_exp (s.`FUNCS`_store[a].`TYPE`_funcinst = dt)] -[visit_exp s.`FUNCS`_store[a].`TYPE`_funcinst] -[visit_exp s.`FUNCS`_store[a]] -[visit_exp s.`FUNCS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp a] -[visit_id a] not free -[visit_exp dt] -[visit_id dt] not free -[check_dims] a exn s -[visit_exp s] -[visit_id s] -[visit_exp `REF.EXN_ADDR`_ref(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `REF`_reftype(?(), `EXN`_heaptype)] -[visit_exp (?(), `EXN`_heaptype)] -[visit_exp ?()] -[visit_exp `EXN`_heaptype] -[visit_exp ()] -[visit_exp (s.`EXNS`_store[a] = exn)] -[visit_exp s.`EXNS`_store[a]] -[visit_exp s.`EXNS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp a] -[visit_id a] not free -[visit_exp exn] -[visit_id exn] -[check_dims] a s -[visit_exp s] -[visit_id s] -[visit_exp `REF.HOST_ADDR`_ref(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `REF`_reftype(?(), `ANY`_heaptype)] -[visit_exp (?(), `ANY`_heaptype)] -[visit_exp ?()] -[visit_exp `ANY`_heaptype] -[visit_exp ()] -[check_dims] addrref s -[visit_exp s] -[visit_id s] -[visit_exp `REF.EXTERN`_ref(addrref)] -[visit_exp (addrref)] -[visit_exp addrref] -[visit_id addrref] -[visit_exp `REF`_reftype(?(), `EXTERN`_heaptype)] -[visit_exp (?(), `EXTERN`_heaptype)] -[visit_exp ?()] -[visit_exp `EXTERN`_heaptype] -[visit_exp ()] -[visit_exp (s, (addrref : addrref <: ref), `REF`_reftype(?(), `ANY`_heaptype))] -[visit_exp s] -[visit_id s] not free -[visit_exp (addrref : addrref <: ref)] -[visit_exp addrref] -[visit_id addrref] not free -[visit_exp `REF`_reftype(?(), `ANY`_heaptype)] -[visit_exp (?(), `ANY`_heaptype)] -[visit_exp ?()] -[visit_exp `ANY`_heaptype] -[visit_exp ()] -[check_dims] ref rt rt' s -[visit_exp s] -[visit_id s] -[visit_exp ref] -[visit_id ref] -[visit_exp rt] -[visit_id rt] -[visit_exp (s, ref, rt')] -[visit_exp s] -[visit_id s] not free -[visit_exp ref] -[visit_id ref] not free -[visit_exp rt'] -[visit_id rt'] -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt', rt)] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp rt'] -[visit_id rt'] not free -[visit_exp rt] -[visit_id rt] not free -[check_dims] nt num s -[visit_exp s] -[visit_id s] -[visit_exp (num : num <: val)] -[visit_exp num] -[visit_id num] -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] -[visit_exp (s, num, nt)] -[visit_exp s] -[visit_id s] not free -[visit_exp num] -[visit_id num] not free -[visit_exp nt] -[visit_id nt] not free -[check_dims] s vec vt -[visit_exp s] -[visit_id s] -[visit_exp (vec : vec <: val)] -[visit_exp vec] -[visit_id vec] -[visit_exp (vt : vectype <: valtype)] -[visit_exp vt] -[visit_id vt] -[visit_exp (s, vec, vt)] -[visit_exp s] -[visit_id s] not free -[visit_exp vec] -[visit_id vec] not free -[visit_exp vt] -[visit_id vt] not free -[check_dims] ref rt s -[visit_exp s] -[visit_id s] -[visit_exp (ref : ref <: val)] -[visit_exp ref] -[visit_id ref] -[visit_exp (rt : reftype <: valtype)] -[visit_exp rt] -[visit_id rt] -[visit_exp (s, ref, rt)] -[visit_exp s] -[visit_id s] not free -[visit_exp ref] -[visit_id ref] not free -[visit_exp rt] -[visit_id rt] not free -[check_dims] -[check_dims] a s taginst -[visit_exp s] -[visit_id s] -[visit_exp `TAG`_externaddr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `TAG`_externtype(taginst.`TYPE`_taginst)] -[visit_exp (taginst.`TYPE`_taginst)] -[visit_exp taginst.`TYPE`_taginst] -[visit_exp taginst] -[visit_id taginst] -[visit_exp (s.`TAGS`_store[a] = taginst)] -[visit_exp s.`TAGS`_store[a]] -[visit_exp s.`TAGS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp a] -[visit_id a] not free -[visit_exp taginst] -[visit_id taginst] not free -[check_dims] a globalinst s -[visit_exp s] -[visit_id s] -[visit_exp `GLOBAL`_externaddr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `GLOBAL`_externtype(globalinst.`TYPE`_globalinst)] -[visit_exp (globalinst.`TYPE`_globalinst)] -[visit_exp globalinst.`TYPE`_globalinst] -[visit_exp globalinst] -[visit_id globalinst] -[visit_exp (s.`GLOBALS`_store[a] = globalinst)] -[visit_exp s.`GLOBALS`_store[a]] -[visit_exp s.`GLOBALS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp a] -[visit_id a] not free -[visit_exp globalinst] -[visit_id globalinst] not free -[check_dims] a meminst s -[visit_exp s] -[visit_id s] -[visit_exp `MEM`_externaddr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `MEM`_externtype(meminst.`TYPE`_meminst)] -[visit_exp (meminst.`TYPE`_meminst)] -[visit_exp meminst.`TYPE`_meminst] -[visit_exp meminst] -[visit_id meminst] -[visit_exp (s.`MEMS`_store[a] = meminst)] -[visit_exp s.`MEMS`_store[a]] -[visit_exp s.`MEMS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp a] -[visit_id a] not free -[visit_exp meminst] -[visit_id meminst] not free -[check_dims] a s tableinst -[visit_exp s] -[visit_id s] -[visit_exp `TABLE`_externaddr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `TABLE`_externtype(tableinst.`TYPE`_tableinst)] -[visit_exp (tableinst.`TYPE`_tableinst)] -[visit_exp tableinst.`TYPE`_tableinst] -[visit_exp tableinst] -[visit_id tableinst] -[visit_exp (s.`TABLES`_store[a] = tableinst)] -[visit_exp s.`TABLES`_store[a]] -[visit_exp s.`TABLES`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp a] -[visit_id a] not free -[visit_exp tableinst] -[visit_id tableinst] not free -[check_dims] a funcinst s -[visit_exp s] -[visit_id s] -[visit_exp `FUNC`_externaddr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `FUNC`_externtype((funcinst.`TYPE`_funcinst : deftype <: typeuse))] -[visit_exp ((funcinst.`TYPE`_funcinst : deftype <: typeuse))] -[visit_exp (funcinst.`TYPE`_funcinst : deftype <: typeuse)] -[visit_exp funcinst.`TYPE`_funcinst] -[visit_exp funcinst] -[visit_id funcinst] -[visit_exp (s.`FUNCS`_store[a] = funcinst)] -[visit_exp s.`FUNCS`_store[a]] -[visit_exp s.`FUNCS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp a] -[visit_id a] not free -[visit_exp funcinst] -[visit_id funcinst] not free -[check_dims] externaddr s xt xt' -[visit_exp s] -[visit_id s] -[visit_exp externaddr] -[visit_id externaddr] -[visit_exp xt] -[visit_id xt] -[visit_exp (s, externaddr, xt')] -[visit_exp s] -[visit_id s] not free -[visit_exp externaddr] -[visit_id externaddr] not free -[visit_exp xt'] -[visit_id xt'] -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, xt', xt)] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp xt'] -[visit_id xt'] not free -[visit_exp xt] -[visit_id xt] not free -[check_dims] moduleinst valtype -DecD inst_valtype(moduleinst : moduleinst, valtype : valtype) : valtype -[visit_id moduleinst] not free -[visit_id valtype] not free -[check_dims] moduleinst reftype -DecD inst_reftype(moduleinst : moduleinst, reftype : reftype) : reftype -[visit_id moduleinst] not free -[visit_id reftype] not free -[check_dims] globaltype moduleinst -DecD inst_globaltype(moduleinst : moduleinst, globaltype : globaltype) : globaltype -[visit_id moduleinst] not free -[visit_id globaltype] not free -[check_dims] memtype moduleinst -DecD inst_memtype(moduleinst : moduleinst, memtype : memtype) : memtype -[visit_id moduleinst] not free -[visit_id memtype] not free -[check_dims] moduleinst tabletype -DecD inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype -[visit_id moduleinst] not free -[visit_id tabletype] not free -[check_dims] dt moduleinst t -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp t] -[visit_id t] -[visit_exp $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp t] -[visit_id t] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst)] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp moduleinst.`TYPES`_moduleinst] -[visit_exp moduleinst] -[visit_id moduleinst] not free -=> - ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_valtype{moduleinst : moduleinst, t : valtype, `dt*` : deftype*}(moduleinst, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) -[check_dims] dt moduleinst rt -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp rt] -[visit_id rt] -[visit_exp $subst_all_reftype(rt, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp rt] -[visit_id rt] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst)] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp moduleinst.`TYPES`_moduleinst] -[visit_exp moduleinst] -[visit_id moduleinst] not free -=> - ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_reftype{moduleinst : moduleinst, rt : reftype, `dt*` : deftype*}(moduleinst, rt) = $subst_all_reftype(rt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) -[check_dims] dt gt moduleinst -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp gt] -[visit_id gt] -[visit_exp $subst_all_globaltype(gt, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp gt] -[visit_id gt] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst)] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp moduleinst.`TYPES`_moduleinst] -[visit_exp moduleinst] -[visit_id moduleinst] not free -=> - ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_globaltype{moduleinst : moduleinst, gt : globaltype, `dt*` : deftype*}(moduleinst, gt) = $subst_all_globaltype(gt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) -[check_dims] dt moduleinst mt -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp mt] -[visit_id mt] -[visit_exp $subst_all_memtype(mt, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp mt] -[visit_id mt] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst)] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp moduleinst.`TYPES`_moduleinst] -[visit_exp moduleinst] -[visit_id moduleinst] not free -=> - ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_memtype{moduleinst : moduleinst, mt : memtype, `dt*` : deftype*}(moduleinst, mt) = $subst_all_memtype(mt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) -[check_dims] dt moduleinst tt -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp tt] -[visit_id tt] -[visit_exp $subst_all_tabletype(tt, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp tt] -[visit_id tt] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst)] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp moduleinst.`TYPES`_moduleinst] -[visit_exp moduleinst] -[visit_id moduleinst] not free -=> - ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec - def $inst_tabletype{moduleinst : moduleinst, tt : tabletype, `dt*` : deftype*}(moduleinst, tt) = $subst_all_tabletype(tt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] instr instr' z -[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] -[visit_exp (z, instr*{instr <- `instr*`})] -[visit_exp z] -[visit_id z] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp `%;%`_config(z, instr'*{instr' <- `instr'*`})] -[visit_exp (z, instr'*{instr' <- `instr'*`})] -[visit_exp z] -[visit_id z] not free -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] no dims -[visit_id instr'*] -[visit_exp (instr*{instr <- `instr*`}, instr'*{instr' <- `instr'*`})] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] not free -[visit_id instr'*] no dims -[check_dims] instr instr' z -[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] -[visit_exp (z, instr*{instr <- `instr*`})] -[visit_exp z] -[visit_id z] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp `%;%`_config(z, instr'*{instr' <- `instr'*`})] -[visit_exp (z, instr'*{instr' <- `instr'*`})] -[visit_exp z] -[visit_id z] not free -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] no dims -[visit_id instr'*] -[visit_exp (`%;%`_config(z, instr*{instr <- `instr*`}), instr'*{instr' <- `instr'*`})] -[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] -[visit_exp (z, instr*{instr <- `instr*`})] -[visit_exp z] -[visit_id z] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] not free -[visit_id instr'*] no dims -[check_dims] instr z -[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] -[visit_exp (z, instr*{instr <- `instr*`})] -[visit_exp z] -[visit_id z] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] -[visit_exp (z, instr*{instr <- `instr*`})] -[visit_exp z] -[visit_id z] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[check_dims] instr instr' instr'' z z' z'' -[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] -[visit_exp (z, instr*{instr <- `instr*`})] -[visit_exp z] -[visit_id z] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp `%;%`_config(z'', instr''*{instr'' <- `instr''*`})] -[visit_exp (z'', instr''*{instr'' <- `instr''*`})] -[visit_exp z''] -[visit_id z''] -[visit_exp instr''*{instr'' <- `instr''*`}] -[scope_enter instr''] -[visit_exp instr''] -[visit_id instr''] not free -[visit_id instr''] not free -[scope_exit instr''] -[visit_exp `instr''*`] -[visit_id instr''*] no dims -[visit_id instr''*] -[visit_exp (`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', instr'*{instr' <- `instr'*`}))] -[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] -[visit_exp (z, instr*{instr <- `instr*`})] -[visit_exp z] -[visit_id z] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp `%;%`_config(z', instr'*{instr' <- `instr'*`})] -[visit_exp (z', instr'*{instr' <- `instr'*`})] -[visit_exp z'] -[visit_id z'] -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] no dims -[visit_id instr'*] -[visit_exp (`%;%`_config(z', instr'*{instr' <- `instr'*`}), `%;%`_config(z'', instr''*{instr'' <- `instr''*`}))] -[visit_exp `%;%`_config(z', instr'*{instr' <- `instr'*`})] -[visit_exp (z', instr'*{instr' <- `instr'*`})] -[visit_exp z'] -[visit_id z'] not free -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] not free -[visit_id instr'*] no dims -[visit_exp `%;%`_config(z'', instr''*{instr'' <- `instr''*`})] -[visit_exp (z'', instr''*{instr'' <- `instr''*`})] -[visit_exp z''] -[visit_id z''] not free -[visit_exp instr''*{instr'' <- `instr''*`}] -[scope_enter instr''] -[visit_exp instr''] -[visit_id instr''] not free -[visit_id instr''] not free -[scope_exit instr''] -[visit_exp `instr''*`] -[visit_id instr''*] not free -[visit_id instr''*] no dims -[check_dims] instr instr' instr_1 val z z' -[visit_exp `%;%`_config(z, (val : val <: instr)*{val <- `val*`} ++ instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`})] -[visit_exp (z, (val : val <: instr)*{val <- `val*`} ++ instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`})] -[visit_exp z] -[visit_id z] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`}] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp instr*{instr <- `instr*`} ++ instr_1*{instr_1 <- `instr_1*`}] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp instr_1*{instr_1 <- `instr_1*`}] -[scope_enter instr_1] -[visit_exp instr_1] -[visit_id instr_1] not free -[visit_id instr_1] not free -[scope_exit instr_1] -[visit_exp `instr_1*`] -[visit_id instr_1*] no dims -[visit_id instr_1*] -[visit_exp `%;%`_config(z', (val : val <: instr)*{val <- `val*`} ++ instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`})] -[visit_exp (z', (val : val <: instr)*{val <- `val*`} ++ instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`})] -[visit_exp z'] -[visit_id z'] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`}] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp instr'*{instr' <- `instr'*`} ++ instr_1*{instr_1 <- `instr_1*`}] -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] no dims -[visit_id instr'*] -[visit_exp instr_1*{instr_1 <- `instr_1*`}] -[scope_enter instr_1] -[visit_exp instr_1] -[visit_id instr_1] not free -[visit_id instr_1] not free -[scope_exit instr_1] -[visit_exp `instr_1*`] -[visit_id instr_1*] not free -[visit_id instr_1*] no dims -[visit_exp (`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', instr'*{instr' <- `instr'*`}))] -[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] -[visit_exp (z, instr*{instr <- `instr*`})] -[visit_exp z] -[visit_id z] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp `%;%`_config(z', instr'*{instr' <- `instr'*`})] -[visit_exp (z', instr'*{instr' <- `instr'*`})] -[visit_exp z'] -[visit_id z'] not free -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] not free -[visit_id instr'*] no dims -[visit_exp ((val*{val <- `val*`} =/= []) \/ (instr_1*{instr_1 <- `instr_1*`} =/= []))] -[visit_exp (val*{val <- `val*`} =/= [])] -[visit_exp val*{val <- `val*`}] -[scope_enter val] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp []] -[visit_exp (instr_1*{instr_1 <- `instr_1*`} =/= [])] -[visit_exp instr_1*{instr_1 <- `instr_1*`}] -[scope_enter instr_1] -[visit_exp instr_1] -[visit_id instr_1] not free -[visit_id instr_1] not free -[scope_exit instr_1] -[visit_exp `instr_1*`] -[visit_id instr_1*] not free -[visit_id instr_1*] no dims -[visit_exp []] -[check_dims] instr instr' instr_0 n z z' -[visit_exp `%;%`_config(z, [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})])] -[visit_exp (z, [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})])] -[visit_exp z] -[visit_id z] -[visit_exp [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})] -[visit_exp (n, instr_0*{instr_0 <- `instr_0*`}, instr*{instr <- `instr*`})] -[visit_exp n] -[visit_id n] -[visit_exp instr_0*{instr_0 <- `instr_0*`}] -[scope_enter instr_0] -[visit_exp instr_0] -[visit_id instr_0] not free -[visit_id instr_0] not free -[scope_exit instr_0] -[visit_exp `instr_0*`] -[visit_id instr_0*] no dims -[visit_id instr_0*] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp `%;%`_config(z', [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})])] -[visit_exp (z', [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})])] -[visit_exp z'] -[visit_id z'] -[visit_exp [`LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})]] -[visit_exp `LABEL_%{%}%`_instr(n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})] -[visit_exp (n, instr_0*{instr_0 <- `instr_0*`}, instr'*{instr' <- `instr'*`})] -[visit_exp n] -[visit_id n] not free -[visit_exp instr_0*{instr_0 <- `instr_0*`}] -[scope_enter instr_0] -[visit_exp instr_0] -[visit_id instr_0] not free -[visit_id instr_0] not free -[scope_exit instr_0] -[visit_exp `instr_0*`] -[visit_id instr_0*] not free -[visit_id instr_0*] no dims -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] no dims -[visit_id instr'*] -[visit_exp (`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', instr'*{instr' <- `instr'*`}))] -[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] -[visit_exp (z, instr*{instr <- `instr*`})] -[visit_exp z] -[visit_id z] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp `%;%`_config(z', instr'*{instr' <- `instr'*`})] -[visit_exp (z', instr'*{instr' <- `instr'*`})] -[visit_exp z'] -[visit_id z'] not free -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] not free -[visit_id instr'*] no dims -[check_dims] f f' f'' instr instr' n s s' -[visit_exp `%;%`_config(`%;%`_state(s, f), [`FRAME_%{%}%`_instr(n, f', instr*{instr <- `instr*`})])] -[visit_exp (`%;%`_state(s, f), [`FRAME_%{%}%`_instr(n, f', instr*{instr <- `instr*`})])] -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp [`FRAME_%{%}%`_instr(n, f', instr*{instr <- `instr*`})]] -[visit_exp `FRAME_%{%}%`_instr(n, f', instr*{instr <- `instr*`})] -[visit_exp (n, f', instr*{instr <- `instr*`})] -[visit_exp n] -[visit_id n] -[visit_exp f'] -[visit_id f'] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp `%;%`_config(`%;%`_state(s', f), [`FRAME_%{%}%`_instr(n, f'', instr'*{instr' <- `instr'*`})])] -[visit_exp (`%;%`_state(s', f), [`FRAME_%{%}%`_instr(n, f'', instr'*{instr' <- `instr'*`})])] -[visit_exp `%;%`_state(s', f)] -[visit_exp (s', f)] -[visit_exp s'] -[visit_id s'] -[visit_exp f] -[visit_id f] not free -[visit_exp [`FRAME_%{%}%`_instr(n, f'', instr'*{instr' <- `instr'*`})]] -[visit_exp `FRAME_%{%}%`_instr(n, f'', instr'*{instr' <- `instr'*`})] -[visit_exp (n, f'', instr'*{instr' <- `instr'*`})] -[visit_exp n] -[visit_id n] not free -[visit_exp f''] -[visit_id f''] -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] no dims -[visit_id instr'*] -[visit_exp (`%;%`_config(`%;%`_state(s, f'), instr*{instr <- `instr*`}), `%;%`_config(`%;%`_state(s', f''), instr'*{instr' <- `instr'*`}))] -[visit_exp `%;%`_config(`%;%`_state(s, f'), instr*{instr <- `instr*`})] -[visit_exp (`%;%`_state(s, f'), instr*{instr <- `instr*`})] -[visit_exp `%;%`_state(s, f')] -[visit_exp (s, f')] -[visit_exp s] -[visit_id s] not free -[visit_exp f'] -[visit_id f'] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp `%;%`_config(`%;%`_state(s', f''), instr'*{instr' <- `instr'*`})] -[visit_exp (`%;%`_state(s', f''), instr'*{instr' <- `instr'*`})] -[visit_exp `%;%`_state(s', f'')] -[visit_exp (s', f'')] -[visit_exp s'] -[visit_id s'] not free -[visit_exp f''] -[visit_id f''] not free -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] not free -[visit_id instr'*] no dims -[check_dims] -[visit_exp [`UNREACHABLE`_instr]] -[visit_exp `UNREACHABLE`_instr] -[visit_exp ()] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] -[visit_exp [`NOP`_instr]] -[visit_exp `NOP`_instr] -[visit_exp ()] -[visit_exp []] -[check_dims] val -[visit_exp [(val : val <: instr) `DROP`_instr]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `DROP`_instr] -[visit_exp ()] -[visit_exp []] -[check_dims] c t val_1 val_2 -[visit_exp [(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr(`I32`_numtype, c) `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})]] -[visit_exp (val_1 : val <: instr)] -[visit_exp val_1] -[visit_id val_1] -[visit_exp (val_2 : val <: instr)] -[visit_exp val_2] -[visit_id val_2] -[visit_exp `CONST`_instr(`I32`_numtype, c)] -[visit_exp (`I32`_numtype, c)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})] -[visit_exp (t*{t <- `t*`}?{`t*` <- `t*?`})] -[visit_exp t*{t <- `t*`}?{`t*` <- `t*?`}] -[scope_enter t*] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_id t*] not free -[visit_id t*] no dims -[scope_exit t*] -[visit_exp `t*?`] -[visit_id t*?] no dims -[visit_id t*?] -[visit_exp [(val_1 : val <: instr)]] -[visit_exp (val_1 : val <: instr)] -[visit_exp val_1] -[visit_id val_1] not free -[visit_exp (c!`%`_num_.0 =/= 0)] -[visit_exp c!`%`_num_.0] -[visit_exp c!`%`_num_] -[visit_exp c] -[visit_id c] not free -[visit_exp 0] -[check_dims] c t val_1 val_2 -[visit_exp [(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr(`I32`_numtype, c) `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})]] -[visit_exp (val_1 : val <: instr)] -[visit_exp val_1] -[visit_id val_1] -[visit_exp (val_2 : val <: instr)] -[visit_exp val_2] -[visit_id val_2] -[visit_exp `CONST`_instr(`I32`_numtype, c)] -[visit_exp (`I32`_numtype, c)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})] -[visit_exp (t*{t <- `t*`}?{`t*` <- `t*?`})] -[visit_exp t*{t <- `t*`}?{`t*` <- `t*?`}] -[scope_enter t*] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_id t*] not free -[visit_id t*] no dims -[scope_exit t*] -[visit_exp `t*?`] -[visit_id t*?] no dims -[visit_id t*?] -[visit_exp [(val_2 : val <: instr)]] -[visit_exp (val_2 : val <: instr)] -[visit_exp val_2] -[visit_id val_2] not free -[visit_exp (c!`%`_num_.0 = 0)] -[visit_exp c!`%`_num_.0] -[visit_exp c!`%`_num_] -[visit_exp c] -[visit_id c] not free -[visit_exp 0] -[check_dims] blocktype state -DecD blocktype_(state : state, blocktype : blocktype) : instrtype -[visit_id state] not free -[visit_id blocktype] not free -[check_dims] t_1 t_2 x z -[visit_exp z] -[visit_id z] -[visit_exp `_IDX`_blocktype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp ($type(z, x), `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - def $blocktype_{z : state, x : idx, `t_1*` : valtype*, `t_2*` : valtype*}(z, `_IDX`_blocktype(x)) = `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})) - -- Expand: `%~~%`($type(z, x), `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -[check_dims] t z -[visit_exp z] -[visit_id z] -[visit_exp `_RESULT`_blocktype(t?{t <- `t?`})] -[visit_exp (t?{t <- `t?`})] -[visit_exp t?{t <- `t?`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t?`] -[visit_id t?] no dims -[visit_id t?] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(t?{t <- `t?`})))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype(lift(t?{t <- `t?`})))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype(lift(t?{t <- `t?`}))] -[visit_exp (lift(t?{t <- `t?`}))] -[visit_exp lift(t?{t <- `t?`})] -[visit_exp t?{t <- `t?`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t?`] -[visit_id t?] not free -[visit_id t?] no dims -=> - ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - def $blocktype_{z : state, `t?` : valtype?}(z, `_RESULT`_blocktype(t?{t <- `t?`})) = `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(t?{t <- `t?`}))) -[check_dims] bt instr m n t_1 t_2 val z -[visit_exp `%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr(bt, instr*{instr <- `instr*`})])] -[visit_exp (z, (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr(bt, instr*{instr <- `instr*`})])] -[visit_exp z] -[visit_id z] -[visit_exp (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr(bt, instr*{instr <- `instr*`})]] -[visit_exp (val : val <: instr)^m{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp m] -[visit_id m] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`BLOCK`_instr(bt, instr*{instr <- `instr*`})]] -[visit_exp `BLOCK`_instr(bt, instr*{instr <- `instr*`})] -[visit_exp (bt, instr*{instr <- `instr*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] -[visit_exp (n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] -[visit_exp n] -[visit_id n] -[visit_exp []] -[visit_exp (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)^m{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp m] -[visit_id m] not free -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`})))] -[visit_exp $blocktype_(z, bt)] -[visit_exp z] -[visit_id z] not free -[visit_exp bt] -[visit_id bt] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1^m{t_1 <- `t_1*`})] -[visit_exp (t_1^m{t_1 <- `t_1*`})] -[visit_exp t_1^m{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp m] -[visit_id m] not free -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2^n{t_2 <- `t_2*`})] -[visit_exp (t_2^n{t_2 <- `t_2*`})] -[visit_exp t_2^n{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp n] -[visit_id n] not free -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[check_dims] bt instr m n t_1 t_2 val z -[visit_exp `%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr(bt, instr*{instr <- `instr*`})])] -[visit_exp (z, (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr(bt, instr*{instr <- `instr*`})])] -[visit_exp z] -[visit_id z] -[visit_exp (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr(bt, instr*{instr <- `instr*`})]] -[visit_exp (val : val <: instr)^m{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp m] -[visit_id m] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`LOOP`_instr(bt, instr*{instr <- `instr*`})]] -[visit_exp `LOOP`_instr(bt, instr*{instr <- `instr*`})] -[visit_exp (bt, instr*{instr <- `instr*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp [`LABEL_%{%}%`_instr(m, [`LOOP`_instr(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr(m, [`LOOP`_instr(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] -[visit_exp (m, [`LOOP`_instr(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] -[visit_exp m] -[visit_id m] not free -[visit_exp [`LOOP`_instr(bt, instr*{instr <- `instr*`})]] -[visit_exp `LOOP`_instr(bt, instr*{instr <- `instr*`})] -[visit_exp (bt, instr*{instr <- `instr*`})] -[visit_exp bt] -[visit_id bt] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)^m{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp m] -[visit_id m] not free -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`})))] -[visit_exp $blocktype_(z, bt)] -[visit_exp z] -[visit_id z] not free -[visit_exp bt] -[visit_id bt] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1^m{t_1 <- `t_1*`})] -[visit_exp (t_1^m{t_1 <- `t_1*`})] -[visit_exp t_1^m{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp m] -[visit_id m] not free -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2^n{t_2 <- `t_2*`})] -[visit_exp (t_2^n{t_2 <- `t_2*`})] -[visit_exp t_2^n{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp n] -[visit_id n] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[check_dims] bt c instr_1 instr_2 -[visit_exp [`CONST`_instr(`I32`_numtype, c) `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})]] -[visit_exp `CONST`_instr(`I32`_numtype, c)] -[visit_exp (`I32`_numtype, c)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp (bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp instr_1*{instr_1 <- `instr_1*`}] -[scope_enter instr_1] -[visit_exp instr_1] -[visit_id instr_1] not free -[visit_id instr_1] not free -[scope_exit instr_1] -[visit_exp `instr_1*`] -[visit_id instr_1*] no dims -[visit_id instr_1*] -[visit_exp instr_2*{instr_2 <- `instr_2*`}] -[scope_enter instr_2] -[visit_exp instr_2] -[visit_id instr_2] not free -[visit_id instr_2] not free -[scope_exit instr_2] -[visit_exp `instr_2*`] -[visit_id instr_2*] no dims -[visit_id instr_2*] -[visit_exp [`BLOCK`_instr(bt, instr_1*{instr_1 <- `instr_1*`})]] -[visit_exp `BLOCK`_instr(bt, instr_1*{instr_1 <- `instr_1*`})] -[visit_exp (bt, instr_1*{instr_1 <- `instr_1*`})] -[visit_exp bt] -[visit_id bt] not free -[visit_exp instr_1*{instr_1 <- `instr_1*`}] -[scope_enter instr_1] -[visit_exp instr_1] -[visit_id instr_1] not free -[visit_id instr_1] not free -[scope_exit instr_1] -[visit_exp `instr_1*`] -[visit_id instr_1*] not free -[visit_id instr_1*] no dims -[visit_exp (c!`%`_num_.0 =/= 0)] -[visit_exp c!`%`_num_.0] -[visit_exp c!`%`_num_] -[visit_exp c] -[visit_id c] not free -[visit_exp 0] -[check_dims] bt c instr_1 instr_2 -[visit_exp [`CONST`_instr(`I32`_numtype, c) `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})]] -[visit_exp `CONST`_instr(`I32`_numtype, c)] -[visit_exp (`I32`_numtype, c)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp (bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp instr_1*{instr_1 <- `instr_1*`}] -[scope_enter instr_1] -[visit_exp instr_1] -[visit_id instr_1] not free -[visit_id instr_1] not free -[scope_exit instr_1] -[visit_exp `instr_1*`] -[visit_id instr_1*] no dims -[visit_id instr_1*] -[visit_exp instr_2*{instr_2 <- `instr_2*`}] -[scope_enter instr_2] -[visit_exp instr_2] -[visit_id instr_2] not free -[visit_id instr_2] not free -[scope_exit instr_2] -[visit_exp `instr_2*`] -[visit_id instr_2*] no dims -[visit_id instr_2*] -[visit_exp [`BLOCK`_instr(bt, instr_2*{instr_2 <- `instr_2*`})]] -[visit_exp `BLOCK`_instr(bt, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp (bt, instr_2*{instr_2 <- `instr_2*`})] -[visit_exp bt] -[visit_id bt] not free -[visit_exp instr_2*{instr_2 <- `instr_2*`}] -[scope_enter instr_2] -[visit_exp instr_2] -[visit_id instr_2] not free -[visit_id instr_2] not free -[scope_exit instr_2] -[visit_exp `instr_2*`] -[visit_id instr_2*] not free -[visit_id instr_2*] no dims -[visit_exp (c!`%`_num_.0 = 0)] -[visit_exp c!`%`_num_.0] -[visit_exp c!`%`_num_] -[visit_exp c] -[visit_id c] not free -[visit_exp 0] -[check_dims] instr n val -[visit_exp [`LABEL_%{%}%`_instr(n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})]] -[visit_exp `LABEL_%{%}%`_instr(n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})] -[visit_exp (n, instr*{instr <- `instr*`}, (val : val <: instr)*{val <- `val*`})] -[visit_exp n] -[visit_id n] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[check_dims] instr instr' l n val val' -[visit_exp [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})] -[visit_exp (n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})] -[visit_exp n] -[visit_id n] -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] no dims -[visit_id instr'*] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`}] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr(l)]] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`}] -[visit_exp (val' : val <: instr)*{val' <- `val'*`}] -[scope_enter val'] -[visit_exp (val' : val <: instr)] -[visit_exp val'] -[visit_id val'] not free -[visit_id val'] not free -[scope_exit val'] -[visit_exp `val'*`] -[visit_id val'*] no dims -[visit_id val'*] -[visit_exp (val : val <: instr)^n{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] not free -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`BR`_instr(l)]] -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp (val : val <: instr)^n{val <- `val*`} ++ instr'*{instr' <- `instr'*`}] -[visit_exp (val : val <: instr)^n{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] not free -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] not free -[visit_id instr'*] no dims -[visit_exp (l!`%`_labelidx.0 = 0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[visit_exp 0] -[check_dims] instr instr' l n val -[visit_exp [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})] -[visit_exp (n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})] -[visit_exp n] -[visit_id n] -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] no dims -[visit_id instr'*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`BR`_instr(l)]] -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(`%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp [`BR`_instr(`%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]] -[visit_exp `BR`_instr(`%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (`%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp `%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int))] -[visit_exp (l!`%`_labelidx.0 : nat <:> int)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp (l!`%`_labelidx.0 > 0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[visit_exp 0] -[check_dims] catch instr l n val -[visit_exp [`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})]] -[visit_exp `HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})] -[visit_exp (n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})] -[visit_exp n] -[visit_id n] -[visit_exp catch*{catch <- `catch*`}] -[scope_enter catch] -[visit_exp catch] -[visit_id catch] not free -[visit_id catch] not free -[scope_exit catch] -[visit_exp `catch*`] -[visit_id catch*] no dims -[visit_id catch*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`BR`_instr(l)]] -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp [`BR`_instr(l)]] -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] not free -[check_dims] c l -[visit_exp [`CONST`_instr(`I32`_numtype, c) `BR_IF`_instr(l)]] -[visit_exp `CONST`_instr(`I32`_numtype, c)] -[visit_exp (`I32`_numtype, c)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp `BR_IF`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp [`BR`_instr(l)]] -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] not free -[visit_exp (c!`%`_num_.0 =/= 0)] -[visit_exp c!`%`_num_.0] -[visit_exp c!`%`_num_] -[visit_exp c] -[visit_id c] not free -[visit_exp 0] -[check_dims] c l -[visit_exp [`CONST`_instr(`I32`_numtype, c) `BR_IF`_instr(l)]] -[visit_exp `CONST`_instr(`I32`_numtype, c)] -[visit_exp (`I32`_numtype, c)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp `BR_IF`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp []] -[visit_exp (c!`%`_num_.0 = 0)] -[visit_exp c!`%`_num_.0] -[visit_exp c!`%`_num_] -[visit_exp c] -[visit_id c] not free -[visit_exp 0] -[check_dims] i l l' -[visit_exp [`CONST`_instr(`I32`_numtype, i) `BR_TABLE`_instr(l*{l <- `l*`}, l')]] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `BR_TABLE`_instr(l*{l <- `l*`}, l')] -[visit_exp (l*{l <- `l*`}, l')] -[visit_exp l*{l <- `l*`}] -[scope_enter l] -[visit_exp l] -[visit_id l] not free -[visit_id l] not free -[scope_exit l] -[visit_exp `l*`] -[visit_id l*] no dims -[visit_id l*] -[visit_exp l'] -[visit_id l'] -[visit_exp [`BR`_instr(l*{l <- `l*`}[i!`%`_num_.0])]] -[visit_exp `BR`_instr(l*{l <- `l*`}[i!`%`_num_.0])] -[visit_exp (l*{l <- `l*`}[i!`%`_num_.0])] -[visit_exp l*{l <- `l*`}[i!`%`_num_.0]] -[visit_exp l*{l <- `l*`}] -[scope_enter l] -[visit_exp l] -[visit_id l] not free -[visit_id l] not free -[scope_exit l] -[visit_exp `l*`] -[visit_id l*] not free -[visit_id l*] no dims -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp (i!`%`_num_.0 < |l*{l <- `l*`}|)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp |l*{l <- `l*`}|] -[visit_exp l*{l <- `l*`}] -[scope_enter l] -[visit_exp l] -[visit_id l] not free -[visit_id l] not free -[scope_exit l] -[visit_exp `l*`] -[visit_id l*] not free -[visit_id l*] no dims -[check_dims] i l l' -[visit_exp [`CONST`_instr(`I32`_numtype, i) `BR_TABLE`_instr(l*{l <- `l*`}, l')]] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `BR_TABLE`_instr(l*{l <- `l*`}, l')] -[visit_exp (l*{l <- `l*`}, l')] -[visit_exp l*{l <- `l*`}] -[scope_enter l] -[visit_exp l] -[visit_id l] not free -[visit_id l] not free -[scope_exit l] -[visit_exp `l*`] -[visit_id l*] no dims -[visit_id l*] -[visit_exp l'] -[visit_id l'] -[visit_exp [`BR`_instr(l')]] -[visit_exp `BR`_instr(l')] -[visit_exp (l')] -[visit_exp l'] -[visit_id l'] not free -[visit_exp (i!`%`_num_.0 >= |l*{l <- `l*`}|)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp |l*{l <- `l*`}|] -[visit_exp l*{l <- `l*`}] -[scope_enter l] -[visit_exp l] -[visit_id l] not free -[visit_id l] not free -[scope_exit l] -[visit_exp `l*`] -[visit_id l*] not free -[visit_id l*] no dims -[check_dims] ht l val -[visit_exp [(val : val <: instr) `BR_ON_NULL`_instr(l)]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `BR_ON_NULL`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp [`BR`_instr(l)]] -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] not free -[visit_exp (val = `REF.NULL`_val(ht))] -[visit_exp val] -[visit_id val] not free -[visit_exp `REF.NULL`_val(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[check_dims] l val -[visit_exp [(val : val <: instr) `BR_ON_NULL`_instr(l)]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `BR_ON_NULL`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp [(val : val <: instr)]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[check_dims] ht l val -[visit_exp [(val : val <: instr) `BR_ON_NON_NULL`_instr(l)]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `BR_ON_NON_NULL`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp []] -[visit_exp (val = `REF.NULL`_val(ht))] -[visit_exp val] -[visit_id val] not free -[visit_exp `REF.NULL`_val(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[check_dims] l val -[visit_exp [(val : val <: instr) `BR_ON_NON_NULL`_instr(l)]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `BR_ON_NON_NULL`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp [(val : val <: instr) `BR`_instr(l)]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] not free -[check_dims] f l ref rt rt_1 rt_2 s -[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)])] -[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)])] -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `BR_ON_CAST`_instr(l, rt_1, rt_2)] -[visit_exp (l, rt_1, rt_2)] -[visit_exp l] -[visit_id l] -[visit_exp rt_1] -[visit_id rt_1] -[visit_exp rt_2] -[visit_id rt_2] -[visit_exp [(ref : ref <: instr) `BR`_instr(l)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] not free -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] not free -[visit_exp (s, ref, rt)] -[visit_exp s] -[visit_id s] not free -[visit_exp ref] -[visit_id ref] not free -[visit_exp rt] -[visit_id rt] -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt, $inst_reftype(f.`MODULE`_frame, rt_2))] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp rt] -[visit_id rt] not free -[visit_exp $inst_reftype(f.`MODULE`_frame, rt_2)] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp rt_2] -[visit_id rt_2] not free -[check_dims] f l ref rt_1 rt_2 s -[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)])] -[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)])] -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `BR_ON_CAST`_instr(l, rt_1, rt_2)] -[visit_exp (l, rt_1, rt_2)] -[visit_exp l] -[visit_id l] -[visit_exp rt_1] -[visit_id rt_1] -[visit_exp rt_2] -[visit_id rt_2] -[visit_exp [(ref : ref <: instr)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] not free -[check_dims] f l ref rt rt_1 rt_2 s -[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)])] -[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)])] -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)] -[visit_exp (l, rt_1, rt_2)] -[visit_exp l] -[visit_id l] -[visit_exp rt_1] -[visit_id rt_1] -[visit_exp rt_2] -[visit_id rt_2] -[visit_exp [(ref : ref <: instr)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] not free -[visit_exp (s, ref, rt)] -[visit_exp s] -[visit_id s] not free -[visit_exp ref] -[visit_id ref] not free -[visit_exp rt] -[visit_id rt] -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt, $inst_reftype(f.`MODULE`_frame, rt_2))] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp rt] -[visit_id rt] not free -[visit_exp $inst_reftype(f.`MODULE`_frame, rt_2)] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp rt_2] -[visit_id rt_2] not free -[check_dims] f l ref rt_1 rt_2 s -[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)])] -[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)])] -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)] -[visit_exp (l, rt_1, rt_2)] -[visit_exp l] -[visit_id l] -[visit_exp rt_1] -[visit_id rt_1] -[visit_exp rt_2] -[visit_id rt_2] -[visit_exp [(ref : ref <: instr) `BR`_instr(l)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] not free -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] not free -[check_dims] a x z -[visit_exp `%;%`_config(z, [`CALL`_instr(x)])] -[visit_exp (z, [`CALL`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CALL`_instr(x)]] -[visit_exp `CALL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))]] -[visit_exp `REF.FUNC_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CALL_REF`_instr(($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))] -[visit_exp (($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))] -[visit_exp ($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse)] -[visit_exp $funcinst(z)[a].`TYPE`_funcinst] -[visit_exp $funcinst(z)[a]] -[visit_exp $funcinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[visit_exp ($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0] = a)] -[visit_exp $moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0]] -[visit_exp $moduleinst(z).`FUNCS`_moduleinst] -[visit_exp $moduleinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp a] -[visit_id a] not free -[check_dims] ht yy z -[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `CALL_REF`_instr(yy)])] -[visit_exp (z, [`REF.NULL`_instr(ht) `CALL_REF`_instr(yy)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.NULL`_instr(ht) `CALL_REF`_instr(yy)]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `CALL_REF`_instr(yy)] -[visit_exp (yy)] -[visit_exp yy] -[visit_id yy] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] a f fi instr m n t t_1 t_2 val x yy z -[visit_exp `%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)])] -[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)])] -[visit_exp z] -[visit_id z] -[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)]] -[visit_exp (val : val <: instr)^n{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)]] -[visit_exp `REF.FUNC_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CALL_REF`_instr(yy)] -[visit_exp (yy)] -[visit_exp yy] -[visit_id yy] -[visit_exp [`FRAME_%{%}%`_instr(m, f, [`LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})])]] -[visit_exp `FRAME_%{%}%`_instr(m, f, [`LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})])] -[visit_exp (m, f, [`LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})])] -[visit_exp m] -[visit_id m] -[visit_exp f] -[visit_id f] -[visit_exp [`LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})] -[visit_exp (m, [], instr*{instr <- `instr*`})] -[visit_exp m] -[visit_id m] not free -[visit_exp []] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp ($funcinst(z)[a] = fi)] -[visit_exp $funcinst(z)[a]] -[visit_exp $funcinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[visit_exp fi] -[visit_id fi] -[visit_exp (fi.`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`})))] -[visit_exp fi.`TYPE`_funcinst] -[visit_exp fi] -[visit_id fi] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1^n{t_1 <- `t_1*`})] -[visit_exp (t_1^n{t_1 <- `t_1*`})] -[visit_exp t_1^n{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp n] -[visit_id n] not free -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp `%`_resulttype(t_2^m{t_2 <- `t_2*`})] -[visit_exp (t_2^m{t_2 <- `t_2*`})] -[visit_exp t_2^m{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp m] -[visit_id m] not free -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (fi.`CODE`_funcinst = `FUNC`_funccode(x, `LOCAL`_local(t)*{t <- `t*`}, instr*{instr <- `instr*`}))] -[visit_exp fi.`CODE`_funcinst] -[visit_exp fi] -[visit_id fi] not free -[visit_exp `FUNC`_funccode(x, `LOCAL`_local(t)*{t <- `t*`}, instr*{instr <- `instr*`})] -[visit_exp (x, `LOCAL`_local(t)*{t <- `t*`}, instr*{instr <- `instr*`})] -[visit_exp x] -[visit_id x] -[visit_exp `LOCAL`_local(t)*{t <- `t*`}] -[scope_enter t] -[visit_exp `LOCAL`_local(t)] -[visit_exp (t)] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp (f = {`LOCALS` ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, `MODULE` fi.`MODULE`_funcinst})] -[visit_exp f] -[visit_id f] not free -[visit_exp {`LOCALS` ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, `MODULE` fi.`MODULE`_funcinst}] -[visit_exp ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}] -[visit_exp ?(val)^n{val <- `val*`}] -[scope_enter val] -[visit_exp ?(val)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] not free -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp $default_(t)*{t <- `t*`}] -[scope_enter t] -[visit_exp $default_(t)] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp fi.`MODULE`_funcinst] -[visit_exp fi] -[visit_id fi] not free -[check_dims] a x z -[visit_exp `%;%`_config(z, [`RETURN_CALL`_instr(x)])] -[visit_exp (z, [`RETURN_CALL`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`RETURN_CALL`_instr(x)]] -[visit_exp `RETURN_CALL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`REF.FUNC_ADDR`_instr(a) `RETURN_CALL_REF`_instr(($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))]] -[visit_exp `REF.FUNC_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `RETURN_CALL_REF`_instr(($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))] -[visit_exp (($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))] -[visit_exp ($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse)] -[visit_exp $funcinst(z)[a].`TYPE`_funcinst] -[visit_exp $funcinst(z)[a]] -[visit_exp $funcinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[visit_exp ($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0] = a)] -[visit_exp $moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0]] -[visit_exp $moduleinst(z).`FUNCS`_moduleinst] -[visit_exp $moduleinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp a] -[visit_id a] not free -[check_dims] instr instr' k val yy z -[visit_exp `%;%`_config(z, [`LABEL_%{%}%`_instr(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] -[visit_exp (z, [`LABEL_%{%}%`_instr(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] -[visit_exp z] -[visit_id z] -[visit_exp [`LABEL_%{%}%`_instr(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] -[visit_exp (k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] -[visit_exp k] -[visit_id k] -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] no dims -[visit_id instr'*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`RETURN_CALL_REF`_instr(yy)]] -[visit_exp `RETURN_CALL_REF`_instr(yy)] -[visit_exp (yy)] -[visit_exp yy] -[visit_id yy] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp [`RETURN_CALL_REF`_instr(yy)]] -[visit_exp `RETURN_CALL_REF`_instr(yy)] -[visit_exp (yy)] -[visit_exp yy] -[visit_id yy] not free -[check_dims] catch instr k val yy z -[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] -[visit_exp (z, [`HANDLER_%{%}%`_instr(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] -[visit_exp z] -[visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]] -[visit_exp `HANDLER_%{%}%`_instr(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] -[visit_exp (k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] -[visit_exp k] -[visit_id k] -[visit_exp catch*{catch <- `catch*`}] -[scope_enter catch] -[visit_exp catch] -[visit_id catch] not free -[visit_id catch] not free -[scope_exit catch] -[visit_exp `catch*`] -[visit_id catch*] no dims -[visit_id catch*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`RETURN_CALL_REF`_instr(yy)]] -[visit_exp `RETURN_CALL_REF`_instr(yy)] -[visit_exp (yy)] -[visit_exp yy] -[visit_id yy] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp [`RETURN_CALL_REF`_instr(yy)]] -[visit_exp `RETURN_CALL_REF`_instr(yy)] -[visit_exp (yy)] -[visit_exp yy] -[visit_id yy] not free -[check_dims] f ht instr k val yy z -[visit_exp `%;%`_config(z, [`FRAME_%{%}%`_instr(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] -[visit_exp (z, [`FRAME_%{%}%`_instr(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] -[visit_exp z] -[visit_id z] -[visit_exp [`FRAME_%{%}%`_instr(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]] -[visit_exp `FRAME_%{%}%`_instr(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] -[visit_exp (k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] -[visit_exp k] -[visit_id k] -[visit_exp f] -[visit_id f] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)]] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`REF.NULL`_instr(ht)]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp [`RETURN_CALL_REF`_instr(yy)]] -[visit_exp `RETURN_CALL_REF`_instr(yy)] -[visit_exp (yy)] -[visit_exp yy] -[visit_id yy] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] a f instr k m n t_1 t_2 val val' yy z -[visit_exp `%;%`_config(z, [`FRAME_%{%}%`_instr(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] -[visit_exp (z, [`FRAME_%{%}%`_instr(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})])] -[visit_exp z] -[visit_id z] -[visit_exp [`FRAME_%{%}%`_instr(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]] -[visit_exp `FRAME_%{%}%`_instr(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] -[visit_exp (k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})] -[visit_exp k] -[visit_id k] -[visit_exp f] -[visit_id f] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`}] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)]] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)]] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`}] -[visit_exp (val' : val <: instr)*{val' <- `val'*`}] -[scope_enter val'] -[visit_exp (val' : val <: instr)] -[visit_exp val'] -[visit_id val'] not free -[visit_id val'] not free -[scope_exit val'] -[visit_exp `val'*`] -[visit_id val'*] no dims -[visit_id val'*] -[visit_exp (val : val <: instr)^n{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`REF.FUNC_ADDR`_instr(a)]] -[visit_exp `REF.FUNC_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp [`RETURN_CALL_REF`_instr(yy)]] -[visit_exp `RETURN_CALL_REF`_instr(yy)] -[visit_exp (yy)] -[visit_exp yy] -[visit_id yy] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)]] -[visit_exp (val : val <: instr)^n{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] not free -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)]] -[visit_exp `REF.FUNC_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `CALL_REF`_instr(yy)] -[visit_exp (yy)] -[visit_exp yy] -[visit_id yy] not free -[visit_exp ($funcinst(z)[a].`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`})))] -[visit_exp $funcinst(z)[a].`TYPE`_funcinst] -[visit_exp $funcinst(z)[a]] -[visit_exp $funcinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1^n{t_1 <- `t_1*`})] -[visit_exp (t_1^n{t_1 <- `t_1*`})] -[visit_exp t_1^n{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp n] -[visit_id n] not free -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp `%`_resulttype(t_2^m{t_2 <- `t_2*`})] -[visit_exp (t_2^m{t_2 <- `t_2*`})] -[visit_exp t_2^m{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp m] -[visit_id m] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[check_dims] x yy -[visit_exp [`CALL_INDIRECT`_instr(x, yy)]] -[visit_exp `CALL_INDIRECT`_instr(x, yy)] -[visit_exp (x, yy)] -[visit_exp x] -[visit_id x] -[visit_exp yy] -[visit_id yy] -[visit_exp [`TABLE.GET`_instr(x) `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype))) `CALL_REF`_instr(yy)]] -[visit_exp `TABLE.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype)))] -[visit_exp (`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype)))] -[visit_exp `REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype))] -[visit_exp (?(`NULL`_null), (yy : typeuse <: heaptype))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp (yy : typeuse <: heaptype)] -[visit_exp yy] -[visit_id yy] not free -[visit_exp `CALL_REF`_instr(yy)] -[visit_exp (yy)] -[visit_exp yy] -[visit_id yy] not free -[check_dims] x yy -[visit_exp [`RETURN_CALL_INDIRECT`_instr(x, yy)]] -[visit_exp `RETURN_CALL_INDIRECT`_instr(x, yy)] -[visit_exp (x, yy)] -[visit_exp x] -[visit_id x] -[visit_exp yy] -[visit_id yy] -[visit_exp [`TABLE.GET`_instr(x) `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype))) `RETURN_CALL_REF`_instr(yy)]] -[visit_exp `TABLE.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype)))] -[visit_exp (`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype)))] -[visit_exp `REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype))] -[visit_exp (?(`NULL`_null), (yy : typeuse <: heaptype))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp (yy : typeuse <: heaptype)] -[visit_exp yy] -[visit_id yy] not free -[visit_exp `RETURN_CALL_REF`_instr(yy)] -[visit_exp (yy)] -[visit_exp yy] -[visit_id yy] not free -[check_dims] f n val -[visit_exp [`FRAME_%{%}%`_instr(n, f, (val : val <: instr)^n{val <- `val*`})]] -[visit_exp `FRAME_%{%}%`_instr(n, f, (val : val <: instr)^n{val <- `val*`})] -[visit_exp (n, f, (val : val <: instr)^n{val <- `val*`})] -[visit_exp n] -[visit_id n] -[visit_exp f] -[visit_id f] -[visit_exp (val : val <: instr)^n{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] not free -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp (val : val <: instr)^n{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] not free -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[check_dims] f instr n val val' -[visit_exp [`FRAME_%{%}%`_instr(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})]] -[visit_exp `FRAME_%{%}%`_instr(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] -[visit_exp (n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] -[visit_exp n] -[visit_id n] -[visit_exp f] -[visit_id f] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`}] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr]] -[visit_exp (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`}] -[visit_exp (val' : val <: instr)*{val' <- `val'*`}] -[scope_enter val'] -[visit_exp (val' : val <: instr)] -[visit_exp val'] -[visit_id val'] not free -[visit_id val'] not free -[scope_exit val'] -[visit_exp `val'*`] -[visit_id val'*] no dims -[visit_id val'*] -[visit_exp (val : val <: instr)^n{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] not free -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`RETURN`_instr]] -[visit_exp `RETURN`_instr] -[visit_exp ()] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp (val : val <: instr)^n{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] not free -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[check_dims] instr instr' n val -[visit_exp [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] -[visit_exp (n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] -[visit_exp n] -[visit_id n] -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] no dims -[visit_id instr'*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`RETURN`_instr]] -[visit_exp `RETURN`_instr] -[visit_exp ()] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp [`RETURN`_instr]] -[visit_exp `RETURN`_instr] -[visit_exp ()] -[check_dims] catch instr n val -[visit_exp [`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})]] -[visit_exp `HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] -[visit_exp (n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})] -[visit_exp n] -[visit_id n] -[visit_exp catch*{catch <- `catch*`}] -[scope_enter catch] -[visit_exp catch] -[visit_id catch] not free -[visit_id catch] not free -[scope_exit catch] -[visit_exp `catch*`] -[visit_id catch*] no dims -[visit_id catch*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`RETURN`_instr]] -[visit_exp `RETURN`_instr] -[visit_exp ()] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp [`RETURN`_instr]] -[visit_exp `RETURN`_instr] -[visit_exp ()] -[check_dims] a exn n t val x z -[visit_exp `%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr(x)])] -[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr(x)]] -[visit_exp (val : val <: instr)^n{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`THROW`_instr(x)]] -[visit_exp `THROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config($add_exninst(z, [exn]), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp ($add_exninst(z, [exn]), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp $add_exninst(z, [exn])] -[visit_exp z] -[visit_id z] not free -[visit_exp [exn]] -[visit_exp exn] -[visit_id exn] -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_exp ($as_deftype($tag(z, x).`TYPE`_taginst), `FUNC%->%`_comptype(`%`_resulttype(t^n{t <- `t*`}), `%`_resulttype([])))] -[visit_exp $as_deftype($tag(z, x).`TYPE`_taginst)] -[visit_exp $tag(z, x).`TYPE`_taginst] -[visit_exp $tag(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t^n{t <- `t*`}), `%`_resulttype([]))] -[visit_exp (`%`_resulttype(t^n{t <- `t*`}), `%`_resulttype([]))] -[visit_exp `%`_resulttype(t^n{t <- `t*`})] -[visit_exp (t^n{t <- `t*`})] -[visit_exp t^n{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp n] -[visit_id n] not free -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp (a = |$exninst(z)|)] -[visit_exp a] -[visit_id a] not free -[visit_exp |$exninst(z)|] -[visit_exp $exninst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp (exn = {`TAG` $tagaddr(z)[x!`%`_idx.0], `FIELDS` val^n{val <- `val*`}})] -[visit_exp exn] -[visit_id exn] not free -[visit_exp {`TAG` $tagaddr(z)[x!`%`_idx.0], `FIELDS` val^n{val <- `val*`}}] -[visit_exp $tagaddr(z)[x!`%`_idx.0]] -[visit_exp $tagaddr(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp val^n{val <- `val*`}] -[scope_enter val] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] not free -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[check_dims] ht z -[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `THROW_REF`_instr])] -[visit_exp (z, [`REF.NULL`_instr(ht) `THROW_REF`_instr])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.NULL`_instr(ht) `THROW_REF`_instr]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] a instr val z -[visit_exp `%;%`_config(z, (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`})] -[visit_exp (z, (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`})] -[visit_exp z] -[visit_id z] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`REF.EXN_ADDR`_instr(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}] -[visit_exp [`REF.EXN_ADDR`_instr(a)]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}] -[visit_exp [`THROW_REF`_instr]] -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_exp ((val*{val <- `val*`} =/= []) \/ (instr*{instr <- `instr*`} =/= []))] -[visit_exp (val*{val <- `val*`} =/= [])] -[visit_exp val*{val <- `val*`}] -[scope_enter val] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp []] -[visit_exp (instr*{instr <- `instr*`} =/= [])] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp []] -[check_dims] a instr' n z -[visit_exp `%;%`_config(z, [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp (z, [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp z] -[visit_id z] -[visit_exp [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] -[visit_exp `LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp (n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp n] -[visit_id n] -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] no dims -[visit_id instr'*] -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[check_dims] a f n z -[visit_exp `%;%`_config(z, [`FRAME_%{%}%`_instr(n, f, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp (z, [`FRAME_%{%}%`_instr(n, f, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp z] -[visit_id z] -[visit_exp [`FRAME_%{%}%`_instr(n, f, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] -[visit_exp `FRAME_%{%}%`_instr(n, f, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp (n, f, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp n] -[visit_id n] -[visit_exp f] -[visit_id f] -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[check_dims] a n z -[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [], [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp (z, [`HANDLER_%{%}%`_instr(n, [], [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp z] -[visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr(n, [], [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr(n, [], [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp (n, [], [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp n] -[visit_id n] -[visit_exp []] -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[check_dims] a catch' l n val x z -[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp (z, [`HANDLER_%{%}%`_instr(n, [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp z] -[visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr(n, [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr(n, [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp (n, [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp n] -[visit_id n] -[visit_exp [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}] -[visit_exp [`CATCH`_catch(x, l)]] -[visit_exp `CATCH`_catch(x, l)] -[visit_exp (x, l)] -[visit_exp x] -[visit_id x] -[visit_exp l] -[visit_id l] -[visit_exp catch'*{catch' <- `catch'*`}] -[scope_enter catch'] -[visit_exp catch'] -[visit_id catch'] not free -[visit_id catch'] not free -[scope_exit catch'] -[visit_exp `catch'*`] -[visit_id catch'*] no dims -[visit_id catch'*] -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`BR`_instr(l)]] -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] not free -[visit_exp ($exninst(z)[a].`TAG`_exninst = $tagaddr(z)[x!`%`_idx.0])] -[visit_exp $exninst(z)[a].`TAG`_exninst] -[visit_exp $exninst(z)[a]] -[visit_exp $exninst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[visit_exp $tagaddr(z)[x!`%`_idx.0]] -[visit_exp $tagaddr(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst)] -[visit_exp val*{val <- `val*`}] -[scope_enter val] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp $exninst(z)[a].`FIELDS`_exninst] -[visit_exp $exninst(z)[a]] -[visit_exp $exninst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[check_dims] a catch' l n val x z -[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp (z, [`HANDLER_%{%}%`_instr(n, [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp z] -[visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr(n, [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr(n, [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp (n, [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp n] -[visit_id n] -[visit_exp [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}] -[visit_exp [`CATCH_REF`_catch(x, l)]] -[visit_exp `CATCH_REF`_catch(x, l)] -[visit_exp (x, l)] -[visit_exp x] -[visit_id x] -[visit_exp l] -[visit_id l] -[visit_exp catch'*{catch' <- `catch'*`}] -[scope_enter catch'] -[visit_exp catch'] -[visit_id catch'] not free -[visit_id catch'] not free -[scope_exit catch'] -[visit_exp `catch'*`] -[visit_id catch'*] no dims -[visit_id catch'*] -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a) `BR`_instr(l)]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`REF.EXN_ADDR`_instr(a) `BR`_instr(l)]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] not free -[visit_exp ($exninst(z)[a].`TAG`_exninst = $tagaddr(z)[x!`%`_idx.0])] -[visit_exp $exninst(z)[a].`TAG`_exninst] -[visit_exp $exninst(z)[a]] -[visit_exp $exninst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[visit_exp $tagaddr(z)[x!`%`_idx.0]] -[visit_exp $tagaddr(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst)] -[visit_exp val*{val <- `val*`}] -[scope_enter val] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp $exninst(z)[a].`FIELDS`_exninst] -[visit_exp $exninst(z)[a]] -[visit_exp $exninst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[check_dims] a catch' l n z -[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp (z, [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp z] -[visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr(n, [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp (n, [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp n] -[visit_id n] -[visit_exp [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}] -[visit_exp [`CATCH_ALL`_catch(l)]] -[visit_exp `CATCH_ALL`_catch(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp catch'*{catch' <- `catch'*`}] -[scope_enter catch'] -[visit_exp catch'] -[visit_id catch'] not free -[visit_id catch'] not free -[scope_exit catch'] -[visit_exp `catch'*`] -[visit_id catch'*] no dims -[visit_id catch'*] -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_exp [`BR`_instr(l)]] -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] not free -[check_dims] a catch' l n z -[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp (z, [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp z] -[visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr(n, [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp (n, [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp n] -[visit_id n] -[visit_exp [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}] -[visit_exp [`CATCH_ALL_REF`_catch(l)]] -[visit_exp `CATCH_ALL_REF`_catch(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp catch'*{catch' <- `catch'*`}] -[scope_enter catch'] -[visit_exp catch'] -[visit_id catch'] not free -[visit_id catch'] not free -[scope_exit catch'] -[visit_exp `catch'*`] -[visit_id catch'*] no dims -[visit_id catch'*] -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_exp [`REF.EXN_ADDR`_instr(a) `BR`_instr(l)]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] not free -[check_dims] a catch catch' n z -[visit_exp `%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp (z, [`HANDLER_%{%}%`_instr(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])])] -[visit_exp z] -[visit_id z] -[visit_exp [`HANDLER_%{%}%`_instr(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp (n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp n] -[visit_id n] -[visit_exp [catch] ++ catch'*{catch' <- `catch'*`}] -[visit_exp [catch]] -[visit_exp catch] -[visit_id catch] -[visit_exp catch'*{catch' <- `catch'*`}] -[scope_enter catch'] -[visit_exp catch'] -[visit_id catch'] not free -[visit_id catch'] not free -[scope_exit catch'] -[visit_exp `catch'*`] -[visit_id catch'*] no dims -[visit_id catch'*] -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_exp [`HANDLER_%{%}%`_instr(n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]] -[visit_exp `HANDLER_%{%}%`_instr(n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp (n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])] -[visit_exp n] -[visit_id n] not free -[visit_exp catch'*{catch' <- `catch'*`}] -[scope_enter catch'] -[visit_exp catch'] -[visit_id catch'] not free -[visit_id catch'] not free -[scope_exit catch'] -[visit_exp `catch'*`] -[visit_id catch'*] not free -[visit_id catch'*] no dims -[visit_exp [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]] -[visit_exp `REF.EXN_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[check_dims] bt catch instr m n t_1 t_2 val z -[visit_exp `%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})])] -[visit_exp (z, (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})])] -[visit_exp z] -[visit_id z] -[visit_exp (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]] -[visit_exp (val : val <: instr)^m{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp m] -[visit_id m] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]] -[visit_exp `TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] -[visit_exp (bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp `%`_list(catch*{catch <- `catch*`})] -[visit_exp (catch*{catch <- `catch*`})] -[visit_exp catch*{catch <- `catch*`}] -[scope_enter catch] -[visit_exp catch] -[visit_id catch] not free -[visit_id catch] not free -[scope_exit catch] -[visit_exp `catch*`] -[visit_id catch*] no dims -[visit_id catch*] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp [`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])]] -[visit_exp `HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])] -[visit_exp (n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])] -[visit_exp n] -[visit_id n] -[visit_exp catch*{catch <- `catch*`}] -[scope_enter catch] -[visit_exp catch] -[visit_id catch] not free -[visit_id catch] not free -[scope_exit catch] -[visit_exp `catch*`] -[visit_id catch*] not free -[visit_id catch*] no dims -[visit_exp [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]] -[visit_exp `LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] -[visit_exp (n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})] -[visit_exp n] -[visit_id n] not free -[visit_exp []] -[visit_exp (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)^m{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp m] -[visit_id m] not free -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`})))] -[visit_exp $blocktype_(z, bt)] -[visit_exp z] -[visit_id z] not free -[visit_exp bt] -[visit_id bt] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1^m{t_1 <- `t_1*`})] -[visit_exp (t_1^m{t_1 <- `t_1*`})] -[visit_exp t_1^m{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp m] -[visit_id m] not free -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2^n{t_2 <- `t_2*`})] -[visit_exp (t_2^n{t_2 <- `t_2*`})] -[visit_exp t_2^n{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp n] -[visit_id n] not free -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[check_dims] catch n val -[visit_exp [`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})]] -[visit_exp `HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})] -[visit_exp (n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`})] -[visit_exp n] -[visit_id n] -[visit_exp catch*{catch <- `catch*`}] -[scope_enter catch] -[visit_exp catch] -[visit_id catch] not free -[visit_id catch] not free -[scope_exit catch] -[visit_exp `catch*`] -[visit_id catch*] no dims -[visit_id catch*] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[check_dims] instr val -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`TRAP`_instr] ++ instr*{instr <- `instr*`}] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`TRAP`_instr] ++ instr*{instr <- `instr*`}] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ((val*{val <- `val*`} =/= []) \/ (instr*{instr <- `instr*`} =/= []))] -[visit_exp (val*{val <- `val*`} =/= [])] -[visit_exp val*{val <- `val*`}] -[scope_enter val] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp []] -[visit_exp (instr*{instr <- `instr*`} =/= [])] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp []] -[check_dims] instr' n -[visit_exp [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])]] -[visit_exp `LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])] -[visit_exp (n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])] -[visit_exp n] -[visit_id n] -[visit_exp instr'*{instr' <- `instr'*`}] -[scope_enter instr'] -[visit_exp instr'] -[visit_id instr'] not free -[visit_id instr'] not free -[scope_exit instr'] -[visit_exp `instr'*`] -[visit_id instr'*] no dims -[visit_id instr'*] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] f n -[visit_exp [`FRAME_%{%}%`_instr(n, f, [`TRAP`_instr])]] -[visit_exp `FRAME_%{%}%`_instr(n, f, [`TRAP`_instr])] -[visit_exp (n, f, [`TRAP`_instr])] -[visit_exp n] -[visit_id n] -[visit_exp f] -[visit_id f] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] val x z -[visit_exp `%;%`_config(z, [`LOCAL.GET`_instr(x)])] -[visit_exp (z, [`LOCAL.GET`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`LOCAL.GET`_instr(x)]] -[visit_exp `LOCAL.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [(val : val <: instr)]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp ($local(z, x) = ?(val))] -[visit_exp $local(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp ?(val)] -[visit_exp val] -[visit_id val] not free -[check_dims] val x z -[visit_exp `%;%`_config(z, [(val : val <: instr) `LOCAL.SET`_instr(x)])] -[visit_exp (z, [(val : val <: instr) `LOCAL.SET`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [(val : val <: instr) `LOCAL.SET`_instr(x)]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `LOCAL.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config($with_local(z, x, val), [])] -[visit_exp ($with_local(z, x, val), [])] -[visit_exp $with_local(z, x, val)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp val] -[visit_id val] not free -[visit_exp []] -[check_dims] val x -[visit_exp [(val : val <: instr) `LOCAL.TEE`_instr(x)]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `LOCAL.TEE`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [(val : val <: instr) (val : val <: instr) `LOCAL.SET`_instr(x)]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_exp `LOCAL.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[check_dims] val x z -[visit_exp `%;%`_config(z, [`GLOBAL.GET`_instr(x)])] -[visit_exp (z, [`GLOBAL.GET`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`GLOBAL.GET`_instr(x)]] -[visit_exp `GLOBAL.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [(val : val <: instr)]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp ($global(z, x).`VALUE`_globalinst = val)] -[visit_exp $global(z, x).`VALUE`_globalinst] -[visit_exp $global(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp val] -[visit_id val] not free -[check_dims] val x z -[visit_exp `%;%`_config(z, [(val : val <: instr) `GLOBAL.SET`_instr(x)])] -[visit_exp (z, [(val : val <: instr) `GLOBAL.SET`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [(val : val <: instr) `GLOBAL.SET`_instr(x)]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `GLOBAL.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config($with_global(z, x, val), [])] -[visit_exp ($with_global(z, x, val), [])] -[visit_exp $with_global(z, x, val)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp val] -[visit_id val] not free -[visit_exp []] -[check_dims] at i x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `TABLE.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (i!`%`_num_.0 >= |$table(z, x).`REFS`_tableinst|)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp |$table(z, x).`REFS`_tableinst|] -[visit_exp $table(z, x).`REFS`_tableinst] -[visit_exp $table(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] at i x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `TABLE.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [($table(z, x).`REFS`_tableinst[i!`%`_num_.0] : ref <: instr)]] -[visit_exp ($table(z, x).`REFS`_tableinst[i!`%`_num_.0] : ref <: instr)] -[visit_exp $table(z, x).`REFS`_tableinst[i!`%`_num_.0]] -[visit_exp $table(z, x).`REFS`_tableinst] -[visit_exp $table(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp (i!`%`_num_.0 < |$table(z, x).`REFS`_tableinst|)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp |$table(z, x).`REFS`_tableinst|] -[visit_exp $table(z, x).`REFS`_tableinst] -[visit_exp $table(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] at i ref x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `TABLE.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config(z, [`TRAP`_instr])] -[visit_exp (z, [`TRAP`_instr])] -[visit_exp z] -[visit_id z] not free -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (i!`%`_num_.0 >= |$table(z, x).`REFS`_tableinst|)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp |$table(z, x).`REFS`_tableinst|] -[visit_exp $table(z, x).`REFS`_tableinst] -[visit_exp $table(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] at i ref x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `TABLE.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config($with_table(z, x, i!`%`_num_.0, ref), [])] -[visit_exp ($with_table(z, x, i!`%`_num_.0, ref), [])] -[visit_exp $with_table(z, x, i!`%`_num_.0, ref)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ref] -[visit_id ref] not free -[visit_exp []] -[visit_exp (i!`%`_num_.0 < |$table(z, x).`REFS`_tableinst|)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp |$table(z, x).`REFS`_tableinst|] -[visit_exp $table(z, x).`REFS`_tableinst] -[visit_exp $table(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] at lim n rt x z -[visit_exp `%;%`_config(z, [`TABLE.SIZE`_instr(x)])] -[visit_exp (z, [`TABLE.SIZE`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`TABLE.SIZE`_instr(x)]] -[visit_exp `TABLE.SIZE`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n))]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp (|$table(z, x).`REFS`_tableinst| = n)] -[visit_exp |$table(z, x).`REFS`_tableinst|] -[visit_exp $table(z, x).`REFS`_tableinst] -[visit_exp $table(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp n] -[visit_id n] not free -[visit_exp ($table(z, x).`TYPE`_tableinst = `%%%`_tabletype(at, lim, rt))] -[visit_exp $table(z, x).`TYPE`_tableinst] -[visit_exp $table(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `%%%`_tabletype(at, lim, rt)] -[visit_exp (at, lim, rt)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[visit_exp rt] -[visit_id rt] -[check_dims] at n ref ti x z -[visit_exp `%;%`_config(z, [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)])] -[visit_exp (z, [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `TABLE.GROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config($with_tableinst(z, x, ti), [`CONST`_instr((at : addrtype <: numtype), `%`_num_(|$table(z, x).`REFS`_tableinst|))])] -[visit_exp ($with_tableinst(z, x, ti), [`CONST`_instr((at : addrtype <: numtype), `%`_num_(|$table(z, x).`REFS`_tableinst|))])] -[visit_exp $with_tableinst(z, x, ti)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp ti] -[visit_id ti] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_(|$table(z, x).`REFS`_tableinst|))]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(|$table(z, x).`REFS`_tableinst|))] -[visit_exp ((at : addrtype <: numtype), `%`_num_(|$table(z, x).`REFS`_tableinst|))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_(|$table(z, x).`REFS`_tableinst|)] -[visit_exp (|$table(z, x).`REFS`_tableinst|)] -[visit_exp |$table(z, x).`REFS`_tableinst|] -[visit_exp $table(z, x).`REFS`_tableinst] -[visit_exp $table(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp (ti = $growtable($table(z, x), n, ref))] -[visit_exp ti] -[visit_id ti] not free -[visit_exp $growtable($table(z, x), n, ref)] -[visit_exp $table(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp n] -[visit_id n] not free -[visit_exp ref] -[visit_id ref] not free -[check_dims] at n ref x z -[visit_exp `%;%`_config(z, [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)])] -[visit_exp (z, [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `TABLE.GROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] -[visit_exp z] -[visit_id z] not free -[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] -[visit_exp ((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] -[visit_exp ($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] -[visit_exp $inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))] -[visit_exp $size((at : addrtype <: numtype))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[check_dims] at i n val x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `TABLE.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ((i!`%`_num_.0 + n) > |$table(z, x).`REFS`_tableinst|)] -[visit_exp (i!`%`_num_.0 + n)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$table(z, x).`REFS`_tableinst|] -[visit_exp $table(z, x).`REFS`_tableinst] -[visit_exp $table(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] at i n val x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `TABLE.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp []] -[visit_exp (n = 0)] -[visit_exp n] -[visit_id n] not free -[visit_exp 0] -[check_dims] at i n val x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `TABLE.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `TABLE.SET`_instr(x) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.FILL`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp i] -[visit_id i] not free -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_exp `TABLE.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp ((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_((i!`%`_num_.0 + 1))] -[visit_exp ((i!`%`_num_.0 + 1))] -[visit_exp (i!`%`_num_.0 + 1)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp 1] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp ((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `TABLE.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[check_dims] at' at_1 at_2 i_1 i_2 n x_1 x_2 z -[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x_1, x_2)])] -[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x_1, x_2)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x_1, x_2)]] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] -[visit_exp ((at_1 : addrtype <: numtype), i_1)] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] -[visit_exp ((at_2 : addrtype <: numtype), i_2)] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at' : addrtype <: numtype)] -[visit_exp at'] -[visit_id at'] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `TABLE.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i_1!`%`_num_.0 + n) > |$table(z, x_1).`REFS`_tableinst|) \/ ((i_2!`%`_num_.0 + n) > |$table(z, x_2).`REFS`_tableinst|))] -[visit_exp ((i_1!`%`_num_.0 + n) > |$table(z, x_1).`REFS`_tableinst|)] -[visit_exp (i_1!`%`_num_.0 + n)] -[visit_exp i_1!`%`_num_.0] -[visit_exp i_1!`%`_num_] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$table(z, x_1).`REFS`_tableinst|] -[visit_exp $table(z, x_1).`REFS`_tableinst] -[visit_exp $table(z, x_1)] -[visit_exp z] -[visit_id z] not free -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp ((i_2!`%`_num_.0 + n) > |$table(z, x_2).`REFS`_tableinst|)] -[visit_exp (i_2!`%`_num_.0 + n)] -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$table(z, x_2).`REFS`_tableinst|] -[visit_exp $table(z, x_2).`REFS`_tableinst] -[visit_exp $table(z, x_2)] -[visit_exp z] -[visit_id z] not free -[visit_exp x_2] -[visit_id x_2] not free -[check_dims] at' at_1 at_2 i_1 i_2 n x y z -[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)])] -[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] -[visit_exp ((at_1 : addrtype <: numtype), i_1)] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] -[visit_exp ((at_2 : addrtype <: numtype), i_2)] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at' : addrtype <: numtype)] -[visit_exp at'] -[visit_id at'] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `TABLE.COPY`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp []] -[visit_exp (n = 0)] -[visit_exp n] -[visit_id n] not free -[visit_exp 0] -[check_dims] at' at_1 at_2 i_1 i_2 n x y z -[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)])] -[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] -[visit_exp ((at_1 : addrtype <: numtype), i_1)] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] -[visit_exp ((at_2 : addrtype <: numtype), i_2)] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at' : addrtype <: numtype)] -[visit_exp at'] -[visit_id at'] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `TABLE.COPY`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `TABLE.GET`_instr(y) `TABLE.SET`_instr(x) `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1))) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr(x, y)]] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] -[visit_exp ((at_1 : addrtype <: numtype), i_1)] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] -[visit_exp ((at_2 : addrtype <: numtype), i_2)] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] not free -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp `TABLE.GET`_instr(y)] -[visit_exp (y)] -[visit_exp y] -[visit_id y] not free -[visit_exp `TABLE.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1)))] -[visit_exp ((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1)))] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp `%`_num_((i_1!`%`_num_.0 + 1))] -[visit_exp ((i_1!`%`_num_.0 + 1))] -[visit_exp (i_1!`%`_num_.0 + 1)] -[visit_exp i_1!`%`_num_.0] -[visit_exp i_1!`%`_num_] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp 1] -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1)))] -[visit_exp ((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1)))] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] not free -[visit_exp `%`_num_((i_2!`%`_num_.0 + 1))] -[visit_exp ((i_2!`%`_num_.0 + 1))] -[visit_exp (i_2!`%`_num_.0 + 1)] -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp 1] -[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp ((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (at' : addrtype <: numtype)] -[visit_exp at'] -[visit_id at'] not free -[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `TABLE.COPY`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] not free -[visit_exp y] -[visit_id y] not free -[visit_exp (i_1!`%`_num_.0 <= i_2!`%`_num_.0)] -[visit_exp i_1!`%`_num_.0] -[visit_exp i_1!`%`_num_] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -[check_dims] at' at_1 at_2 i_1 i_2 n x y z -[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)])] -[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] -[visit_exp ((at_1 : addrtype <: numtype), i_1)] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] -[visit_exp ((at_2 : addrtype <: numtype), i_2)] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at' : addrtype <: numtype)] -[visit_exp at'] -[visit_id at'] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `TABLE.COPY`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.GET`_instr(y) `TABLE.SET`_instr(x) `CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr(x, y)]] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp ((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((i_1!`%`_num_.0 + n) : nat <:> int)] -[visit_exp (i_1!`%`_num_.0 + n)] -[visit_exp i_1!`%`_num_.0] -[visit_exp i_1!`%`_num_] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp ((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] not free -[visit_exp `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((i_2!`%`_num_.0 + n) : nat <:> int)] -[visit_exp (i_2!`%`_num_.0 + n)] -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `TABLE.GET`_instr(y)] -[visit_exp (y)] -[visit_exp y] -[visit_id y] not free -[visit_exp `TABLE.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] -[visit_exp ((at_1 : addrtype <: numtype), i_1)] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] -[visit_exp ((at_2 : addrtype <: numtype), i_2)] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] not free -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp ((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (at' : addrtype <: numtype)] -[visit_exp at'] -[visit_id at'] not free -[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `TABLE.COPY`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] not free -[visit_exp y] -[visit_id y] not free -[check_dims] at i j n x y z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `TABLE.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i!`%`_num_.0 + n) > |$table(z, x).`REFS`_tableinst|) \/ ((j!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|))] -[visit_exp ((i!`%`_num_.0 + n) > |$table(z, x).`REFS`_tableinst|)] -[visit_exp (i!`%`_num_.0 + n)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$table(z, x).`REFS`_tableinst|] -[visit_exp $table(z, x).`REFS`_tableinst] -[visit_exp $table(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp ((j!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|)] -[visit_exp (j!`%`_num_.0 + n)] -[visit_exp j!`%`_num_.0] -[visit_exp j!`%`_num_] -[visit_exp j] -[visit_id j] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$elem(z, y).`REFS`_eleminst|] -[visit_exp $elem(z, y).`REFS`_eleminst] -[visit_exp $elem(z, y)] -[visit_exp z] -[visit_id z] not free -[visit_exp y] -[visit_id y] not free -[check_dims] at i j n x y z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `TABLE.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp []] -[visit_exp (n = 0)] -[visit_exp n] -[visit_id n] not free -[visit_exp 0] -[check_dims] at i j n x y z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `TABLE.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) ($elem(z, y).`REFS`_eleminst[j!`%`_num_.0] : ref <: instr) `TABLE.SET`_instr(x) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.INIT`_instr(x, y)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp i] -[visit_id i] not free -[visit_exp ($elem(z, y).`REFS`_eleminst[j!`%`_num_.0] : ref <: instr)] -[visit_exp $elem(z, y).`REFS`_eleminst[j!`%`_num_.0]] -[visit_exp $elem(z, y).`REFS`_eleminst] -[visit_exp $elem(z, y)] -[visit_exp z] -[visit_id z] not free -[visit_exp y] -[visit_id y] not free -[visit_exp j!`%`_num_.0] -[visit_exp j!`%`_num_] -[visit_exp j] -[visit_id j] not free -[visit_exp `TABLE.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp ((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_((i!`%`_num_.0 + 1))] -[visit_exp ((i!`%`_num_.0 + 1))] -[visit_exp (i!`%`_num_.0 + 1)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp 1] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1)))] -[visit_exp (`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((j!`%`_num_.0 + 1))] -[visit_exp ((j!`%`_num_.0 + 1))] -[visit_exp (j!`%`_num_.0 + 1)] -[visit_exp j!`%`_num_.0] -[visit_exp j!`%`_num_] -[visit_exp j] -[visit_id j] not free -[visit_exp 1] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `TABLE.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] not free -[visit_exp y] -[visit_id y] not free -[check_dims] x z -[visit_exp `%;%`_config(z, [`ELEM.DROP`_instr(x)])] -[visit_exp (z, [`ELEM.DROP`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`ELEM.DROP`_instr(x)]] -[visit_exp `ELEM.DROP`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config($with_elem(z, x, []), [])] -[visit_exp ($with_elem(z, x, []), [])] -[visit_exp $with_elem(z, x, [])] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp []] -[visit_exp []] -[check_dims] ao at i nt x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `LOAD`_instr(nt, ?(), x, ao)] -[visit_exp (nt, ?(), x, ao)] -[visit_exp nt] -[visit_id nt] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] -[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (($size(nt) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ($size(nt) : nat <:> rat)] -[visit_exp $size(nt)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] ao at c i nt x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `LOAD`_instr(nt, ?(), x, ao)] -[visit_exp (nt, ?(), x, ao)] -[visit_exp nt] -[visit_id nt] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp [`CONST`_instr(nt, c)]] -[visit_exp `CONST`_instr(nt, c)] -[visit_exp (nt, c)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp c] -[visit_id c] -[visit_exp ($nbytes_(nt, c) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] -[visit_exp $nbytes_(nt, c)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp c] -[visit_id c] not free -[visit_exp $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (($size(nt) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ($size(nt) : nat <:> rat)] -[visit_exp $size(nt)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[check_dims] Inn ao at i n sx x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)] -[visit_exp ((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp ?(`%_%`_loadop_(`%`_sz(n), sx))] -[visit_exp `%_%`_loadop_(`%`_sz(n), sx)] -[visit_exp (`%`_sz(n), sx)] -[visit_exp `%`_sz(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp sx] -[visit_id sx] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] -[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp ((n : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (n : nat <:> rat)] -[visit_exp n] -[visit_id n] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] Inn ao at c i n sx x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)] -[visit_exp ((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp ?(`%_%`_loadop_(`%`_sz(n), sx))] -[visit_exp `%_%`_loadop_(`%`_sz(n), sx)] -[visit_exp (`%`_sz(n), sx)] -[visit_exp `%`_sz(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp sx] -[visit_id sx] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp [`CONST`_instr((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))]] -[visit_exp `CONST`_instr((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))] -[visit_exp ((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp $extend__(n, $size((Inn : Inn <: numtype)), sx, c)] -[visit_exp n] -[visit_id n] not free -[visit_exp $size((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp c] -[visit_id c] -[visit_exp ($ibytes_(n, c) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] -[visit_exp $ibytes_(n, c)] -[visit_exp n] -[visit_id n] not free -[visit_exp c] -[visit_id c] not free -[visit_exp $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp ((n : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (n : nat <:> rat)] -[visit_exp n] -[visit_id n] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[check_dims] ao at i x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(), x, ao)] -[visit_exp (`V128`_vectype, ?(), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] -[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] -[visit_exp $vsize(`V128`_vectype)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] ao at c i x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(), x, ao)] -[visit_exp (`V128`_vectype, ?(), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp ($vbytes_(`V128`_vectype, c) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] -[visit_exp $vbytes_(`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] not free -[visit_exp $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] -[visit_exp $vsize(`V128`_vectype)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[check_dims] K M ao at i sx x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)] -[visit_exp (`%`_sz(M), K, sx)] -[visit_exp `%`_sz(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp K] -[visit_id K] -[visit_exp sx] -[visit_id sx] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] -[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (((M * K) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ((M * K) : nat <:> rat)] -[visit_exp (M * K)] -[visit_exp M] -[visit_id M] not free -[visit_exp K] -[visit_id K] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] Jnn K M ao at c i j k sx x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)] -[visit_exp (`%`_sz(M), K, sx)] -[visit_exp `%`_sz(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp K] -[visit_id K] -[visit_exp sx] -[visit_id sx] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[scope_enter k] -[scope_enter j] -[visit_exp ($ibytes_(M, j) = $mem(z, x).`BYTES`_meminst[((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] -[visit_exp $ibytes_(M, j)] -[visit_exp M] -[visit_id M] not free -[visit_exp j] -[visit_id j] not free -[visit_exp $mem(z, x).`BYTES`_meminst[((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (((k * M) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ((k * M) : nat <:> rat)] -[visit_exp (k * M)] -[visit_exp k] -[visit_id k] -[visit_exp M] -[visit_id M] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp ((M : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (M : nat <:> rat)] -[visit_exp M] -[visit_id M] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_id k] not free -[visit_id j] not free -[scope_exit j] -[scope_exit k] -[visit_exp K] -[visit_id K] not free -[visit_exp `j*`] -[visit_id j*] no dims -[visit_id j*] -[visit_exp ((c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(K)), $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`})) /\ ($jsizenn(Jnn) = (M * 2)))] -[visit_exp (c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(K)), $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`}))] -[visit_exp c] -[visit_id c] not free -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(K)), $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`})] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(K))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(K))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(K)] -[visit_exp (K)] -[visit_exp K] -[visit_id K] not free -[visit_exp $extend__(M, $jsizenn(Jnn), sx, j)^K{j <- `j*`}] -[scope_enter j] -[visit_exp $extend__(M, $jsizenn(Jnn), sx, j)] -[visit_exp M] -[visit_id M] not free -[visit_exp $jsizenn(Jnn)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp j] -[visit_id j] not free -[visit_id j] not free -[scope_exit j] -[visit_exp K] -[visit_id K] not free -[visit_exp `j*`] -[visit_id j*] not free -[visit_id j*] no dims -[visit_exp ($jsizenn(Jnn) = (M * 2))] -[visit_exp $jsizenn(Jnn)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp (M * 2)] -[visit_exp M] -[visit_id M] not free -[visit_exp 2] -[check_dims] N ao at i x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(N)))] -[visit_exp `SPLAT`_vloadop_(`%`_sz(N))] -[visit_exp (`%`_sz(N))] -[visit_exp `%`_sz(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] -[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] Jnn M N ao at c i j x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(N)))] -[visit_exp `SPLAT`_vloadop_(`%`_sz(N))] -[visit_exp (`%`_sz(N))] -[visit_exp `%`_sz(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] -[visit_exp $ibytes_(N, j)] -[visit_exp N] -[visit_id N] not free -[visit_exp j] -[visit_id j] -[visit_exp $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp (N = $jsize(Jnn))] -[visit_exp N] -[visit_id N] not free -[visit_exp $jsize(Jnn)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp ((M : nat <:> rat) = ((128 : nat <:> rat) / (N : nat <:> rat)))] -[visit_exp (M : nat <:> rat)] -[visit_exp M] -[visit_id M] -[visit_exp ((128 : nat <:> rat) / (N : nat <:> rat))] -[visit_exp (128 : nat <:> rat)] -[visit_exp 128] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[visit_exp (c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `%`_lane_(j!`%`_iN.0)^M{}))] -[visit_exp c] -[visit_id c] not free -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `%`_lane_(j!`%`_iN.0)^M{})] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp `%`_lane_(j!`%`_iN.0)^M{}] -[visit_exp `%`_lane_(j!`%`_iN.0)] -[visit_exp (j!`%`_iN.0)] -[visit_exp j!`%`_iN.0] -[visit_exp j!`%`_iN] -[visit_exp j] -[visit_id j] not free -[visit_exp M] -[visit_id M] not free -[check_dims] N ao at i x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_(`%`_sz(N)))] -[visit_exp `ZERO`_vloadop_(`%`_sz(N))] -[visit_exp (`%`_sz(N))] -[visit_exp `%`_sz(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] -[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] N ao at c i j x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_(`%`_sz(N)))] -[visit_exp `ZERO`_vloadop_(`%`_sz(N))] -[visit_exp (`%`_sz(N))] -[visit_exp `%`_sz(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] -[visit_exp $ibytes_(N, j)] -[visit_exp N] -[visit_id N] not free -[visit_exp j] -[visit_id j] -[visit_exp $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp (c = $extend__(N, 128, `U`_sx, j))] -[visit_exp c] -[visit_id c] not free -[visit_exp $extend__(N, 128, `U`_sx, j)] -[visit_exp N] -[visit_id N] not free -[visit_exp 128] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp j] -[visit_id j] not free -[check_dims] N ao at c_1 i j x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)] -[visit_exp (`V128`_vectype, `%`_sz(N), x, ao, j)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp j] -[visit_id j] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] -[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] Jnn M N ao at c c_1 i j k x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)] -[visit_exp (`V128`_vectype, `%`_sz(N), x, ao, j)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp j] -[visit_id j] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp ($ibytes_(N, k) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] -[visit_exp $ibytes_(N, k)] -[visit_exp N] -[visit_id N] not free -[visit_exp k] -[visit_id k] -[visit_exp $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp (N = $jsize(Jnn))] -[visit_exp N] -[visit_id N] not free -[visit_exp $jsize(Jnn)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp ((M : nat <:> rat) = (($vsize(`V128`_vectype) : nat <:> rat) / (N : nat <:> rat)))] -[visit_exp (M : nat <:> rat)] -[visit_exp M] -[visit_id M] -[visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (N : nat <:> rat))] -[visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] -[visit_exp $vsize(`V128`_vectype)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[visit_exp (c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)[[j!`%`_laneidx.0] = `%`_lane_(k!`%`_iN.0)]))] -[visit_exp c] -[visit_id c] not free -[visit_exp $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)[[j!`%`_laneidx.0] = `%`_lane_(k!`%`_iN.0)])] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)[[j!`%`_laneidx.0] = `%`_lane_(k!`%`_iN.0)]] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp j!`%`_laneidx.0] -[visit_exp j!`%`_laneidx] -[visit_exp j] -[visit_id j] not free -[visit_exp `%`_lane_(k!`%`_iN.0)] -[visit_exp (k!`%`_iN.0)] -[visit_exp k!`%`_iN.0] -[visit_exp k!`%`_iN] -[visit_exp k] -[visit_id k] not free -[check_dims] ao at c i nt x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(nt, c)] -[visit_exp (nt, c)] -[visit_exp nt] -[visit_id nt] -[visit_exp c] -[visit_id c] -[visit_exp `STORE`_instr(nt, ?(), x, ao)] -[visit_exp (nt, ?(), x, ao)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%;%`_config(z, [`TRAP`_instr])] -[visit_exp (z, [`TRAP`_instr])] -[visit_exp z] -[visit_id z] not free -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] -[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (($size(nt) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ($size(nt) : nat <:> rat)] -[visit_exp $size(nt)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] ao at b c i nt x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(nt, c)] -[visit_exp (nt, c)] -[visit_exp nt] -[visit_id nt] -[visit_exp c] -[visit_id c] -[visit_exp `STORE`_instr(nt, ?(), x, ao)] -[visit_exp (nt, ?(), x, ao)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp ($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp $with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (($size(nt) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ($size(nt) : nat <:> rat)] -[visit_exp $size(nt)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp []] -[visit_exp (b*{b <- `b*`} = $nbytes_(nt, c))] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_exp $nbytes_(nt, c)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp c] -[visit_id c] not free -[check_dims] Inn ao at c i n x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr((Inn : Inn <: numtype), c)] -[visit_exp ((Inn : Inn <: numtype), c)] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp c] -[visit_id c] -[visit_exp `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)] -[visit_exp ((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp ?(`%`_storeop_(`%`_sz(n)))] -[visit_exp `%`_storeop_(`%`_sz(n))] -[visit_exp (`%`_sz(n))] -[visit_exp `%`_sz(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%;%`_config(z, [`TRAP`_instr])] -[visit_exp (z, [`TRAP`_instr])] -[visit_exp z] -[visit_id z] not free -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] -[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp ((n : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (n : nat <:> rat)] -[visit_exp n] -[visit_id n] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] Inn ao at b c i n x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr((Inn : Inn <: numtype), c)] -[visit_exp ((Inn : Inn <: numtype), c)] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] -[visit_exp c] -[visit_id c] -[visit_exp `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)] -[visit_exp ((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp ?(`%`_storeop_(`%`_sz(n)))] -[visit_exp `%`_storeop_(`%`_sz(n))] -[visit_exp (`%`_sz(n))] -[visit_exp `%`_sz(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp ($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp $with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp ((n : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (n : nat <:> rat)] -[visit_exp n] -[visit_id n] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp []] -[visit_exp (b*{b <- `b*`} = $ibytes_(n, $wrap__($size((Inn : Inn <: numtype)), n, c)))] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_exp $ibytes_(n, $wrap__($size((Inn : Inn <: numtype)), n, c))] -[visit_exp n] -[visit_id n] not free -[visit_exp $wrap__($size((Inn : Inn <: numtype)), n, c)] -[visit_exp $size((Inn : Inn <: numtype))] -[visit_exp (Inn : Inn <: numtype)] -[visit_exp Inn] -[visit_id Inn] not free -[visit_exp n] -[visit_id n] not free -[visit_exp c] -[visit_id c] not free -[check_dims] ao at c i x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp `VSTORE`_instr(`V128`_vectype, x, ao)] -[visit_exp (`V128`_vectype, x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%;%`_config(z, [`TRAP`_instr])] -[visit_exp (z, [`TRAP`_instr])] -[visit_exp z] -[visit_id z] not free -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|)] -[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] -[visit_exp $vsize(`V128`_vectype)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] ao at b c i x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp `VSTORE`_instr(`V128`_vectype, x, ao)] -[visit_exp (`V128`_vectype, x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp ($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp $with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ($vsize(`V128`_vectype) : nat <:> rat)] -[visit_exp $vsize(`V128`_vectype)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp []] -[visit_exp (b*{b <- `b*`} = $vbytes_(`V128`_vectype, c))] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_exp $vbytes_(`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] not free -[check_dims] N ao at c i j x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)] -[visit_exp (`V128`_vectype, `%`_sz(N), x, ao, j)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp j] -[visit_id j] -[visit_exp `%;%`_config(z, [`TRAP`_instr])] -[visit_exp (z, [`TRAP`_instr])] -[visit_exp z] -[visit_id z] not free -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + N) > |$mem(z, x).`BYTES`_meminst|)] -[visit_exp ((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + N)] -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp N] -[visit_id N] not free -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] Jnn M N ao at b c i j x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)] -[visit_exp (`V128`_vectype, `%`_sz(N), x, ao, j)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp j] -[visit_id j] -[visit_exp `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp ($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])] -[visit_exp $with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`})] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ao.`OFFSET`_memarg!`%`_u64.0] -[visit_exp ao.`OFFSET`_memarg!`%`_u64] -[visit_exp ao.`OFFSET`_memarg] -[visit_exp ao] -[visit_id ao] not free -[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp []] -[visit_exp (N = $jsize(Jnn))] -[visit_exp N] -[visit_id N] not free -[visit_exp $jsize(Jnn)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp ((M : nat <:> rat) = ((128 : nat <:> rat) / (N : nat <:> rat)))] -[visit_exp (M : nat <:> rat)] -[visit_exp M] -[visit_id M] -[visit_exp ((128 : nat <:> rat) / (N : nat <:> rat))] -[visit_exp (128 : nat <:> rat)] -[visit_exp 128] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[visit_exp (b*{b <- `b*`} = $ibytes_(N, `%`_iN($lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_.0)))] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_exp $ibytes_(N, `%`_iN($lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_.0))] -[visit_exp N] -[visit_id N] not free -[visit_exp `%`_iN($lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_.0)] -[visit_exp ($lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_.0)] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_.0] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c] -[visit_id c] not free -[visit_exp j!`%`_laneidx.0] -[visit_exp j!`%`_laneidx] -[visit_exp j] -[visit_id j] not free -[check_dims] at lim n x z -[visit_exp `%;%`_config(z, [`MEMORY.SIZE`_instr(x)])] -[visit_exp (z, [`MEMORY.SIZE`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`MEMORY.SIZE`_instr(x)]] -[visit_exp `MEMORY.SIZE`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n))]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp ((n * (64 * $Ki)) = |$mem(z, x).`BYTES`_meminst|)] -[visit_exp (n * (64 * $Ki))] -[visit_exp n] -[visit_id n] not free -[visit_exp (64 * $Ki)] -[visit_exp 64] -[visit_exp $Ki] -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp ($mem(z, x).`TYPE`_meminst = `%%PAGE`_memtype(at, lim))] -[visit_exp $mem(z, x).`TYPE`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] -[check_dims] at mi n x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `MEMORY.GROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config($with_meminst(z, x, mi), [`CONST`_instr((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])] -[visit_exp ($with_meminst(z, x, mi), [`CONST`_instr((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])] -[visit_exp $with_meminst(z, x, mi)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp mi] -[visit_id mi] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))] -[visit_exp ((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat))] -[visit_exp ((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat))] -[visit_exp (((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)] -[visit_exp ((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat))] -[visit_exp (|$mem(z, x).`BYTES`_meminst| : nat <:> rat)] -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp ((64 * $Ki) : nat <:> rat)] -[visit_exp (64 * $Ki)] -[visit_exp 64] -[visit_exp $Ki] -[visit_exp (mi = $growmem($mem(z, x), n))] -[visit_exp mi] -[visit_id mi] not free -[visit_exp $growmem($mem(z, x), n)] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp n] -[visit_id n] not free -[check_dims] at n x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `MEMORY.GROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])] -[visit_exp z] -[visit_id z] not free -[visit_exp [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] -[visit_exp ((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] -[visit_exp ($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int)))] -[visit_exp $inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))] -[visit_exp $size((at : addrtype <: numtype))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[check_dims] at i n val x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `MEMORY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ((i!`%`_num_.0 + n) > |$mem(z, x).`BYTES`_meminst|)] -[visit_exp (i!`%`_num_.0 + n)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] at i n val x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `MEMORY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp []] -[visit_exp (n = 0)] -[visit_exp n] -[visit_id n] not free -[visit_exp 0] -[check_dims] at i n val x z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `MEMORY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.FILL`_instr(x)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp i] -[visit_id i] not free -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0)] -[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(8)))] -[visit_exp `%`_storeop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x] -[visit_id x] not free -[visit_exp $memarg0] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp ((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_((i!`%`_num_.0 + 1))] -[visit_exp ((i!`%`_num_.0 + 1))] -[visit_exp (i!`%`_num_.0 + 1)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp 1] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp ((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `MEMORY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[check_dims] at' at_1 at_2 i_1 i_2 n x_1 x_2 z -[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] -[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] -[visit_exp ((at_1 : addrtype <: numtype), i_1)] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] -[visit_exp ((at_2 : addrtype <: numtype), i_2)] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at' : addrtype <: numtype)] -[visit_exp at'] -[visit_id at'] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i_1!`%`_num_.0 + n) > |$mem(z, x_1).`BYTES`_meminst|) \/ ((i_2!`%`_num_.0 + n) > |$mem(z, x_2).`BYTES`_meminst|))] -[visit_exp ((i_1!`%`_num_.0 + n) > |$mem(z, x_1).`BYTES`_meminst|)] -[visit_exp (i_1!`%`_num_.0 + n)] -[visit_exp i_1!`%`_num_.0] -[visit_exp i_1!`%`_num_] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$mem(z, x_1).`BYTES`_meminst|] -[visit_exp $mem(z, x_1).`BYTES`_meminst] -[visit_exp $mem(z, x_1)] -[visit_exp z] -[visit_id z] not free -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp ((i_2!`%`_num_.0 + n) > |$mem(z, x_2).`BYTES`_meminst|)] -[visit_exp (i_2!`%`_num_.0 + n)] -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$mem(z, x_2).`BYTES`_meminst|] -[visit_exp $mem(z, x_2).`BYTES`_meminst] -[visit_exp $mem(z, x_2)] -[visit_exp z] -[visit_id z] not free -[visit_exp x_2] -[visit_id x_2] not free -[check_dims] at' at_1 at_2 i_1 i_2 n x_1 x_2 z -[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] -[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] -[visit_exp ((at_1 : addrtype <: numtype), i_1)] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] -[visit_exp ((at_2 : addrtype <: numtype), i_2)] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at' : addrtype <: numtype)] -[visit_exp at'] -[visit_id at'] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp []] -[visit_exp (n = 0)] -[visit_exp n] -[visit_id n] not free -[visit_exp 0] -[check_dims] at' at_1 at_2 i_1 i_2 n x_1 x_2 z -[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] -[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] -[visit_exp ((at_1 : addrtype <: numtype), i_1)] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] -[visit_exp ((at_2 : addrtype <: numtype), i_2)] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at' : addrtype <: numtype)] -[visit_exp at'] -[visit_id at'] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0) `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1))) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr(x_1, x_2)]] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] -[visit_exp ((at_1 : addrtype <: numtype), i_1)] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] -[visit_exp ((at_2 : addrtype <: numtype), i_2)] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] not free -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0)] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `U`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(8), `U`_sx)] -[visit_exp (`%`_sz(8), `U`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp $memarg0] -[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0)] -[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(8)))] -[visit_exp `%`_storeop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp $memarg0] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1)))] -[visit_exp ((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1)))] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp `%`_num_((i_1!`%`_num_.0 + 1))] -[visit_exp ((i_1!`%`_num_.0 + 1))] -[visit_exp (i_1!`%`_num_.0 + 1)] -[visit_exp i_1!`%`_num_.0] -[visit_exp i_1!`%`_num_] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp 1] -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1)))] -[visit_exp ((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1)))] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] not free -[visit_exp `%`_num_((i_2!`%`_num_.0 + 1))] -[visit_exp ((i_2!`%`_num_.0 + 1))] -[visit_exp (i_2!`%`_num_.0 + 1)] -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp 1] -[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp ((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (at' : addrtype <: numtype)] -[visit_exp at'] -[visit_id at'] not free -[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp (i_1!`%`_num_.0 <= i_2!`%`_num_.0)] -[visit_exp i_1!`%`_num_.0] -[visit_exp i_1!`%`_num_] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -[check_dims] at' at_1 at_2 i_1 i_2 n x_1 x_2 z -[visit_exp `%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] -[visit_exp (z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] -[visit_exp ((at_1 : addrtype <: numtype), i_1)] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] -[visit_exp ((at_2 : addrtype <: numtype), i_2)] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp ((at' : addrtype <: numtype), `%`_num_(n))] -[visit_exp (at' : addrtype <: numtype)] -[visit_exp at'] -[visit_id at'] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp [`CONST`_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0) `CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr(x_1, x_2)]] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp ((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((i_1!`%`_num_.0 + n) : nat <:> int)] -[visit_exp (i_1!`%`_num_.0 + n)] -[visit_exp i_1!`%`_num_.0] -[visit_exp i_1!`%`_num_] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp ((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] not free -[visit_exp `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((i_2!`%`_num_.0 + n) : nat <:> int)] -[visit_exp (i_2!`%`_num_.0 + n)] -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0)] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `U`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(8), `U`_sx)] -[visit_exp (`%`_sz(8), `U`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp $memarg0] -[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0)] -[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(8)))] -[visit_exp `%`_storeop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp $memarg0] -[visit_exp `CONST`_instr((at_1 : addrtype <: numtype), i_1)] -[visit_exp ((at_1 : addrtype <: numtype), i_1)] -[visit_exp (at_1 : addrtype <: numtype)] -[visit_exp at_1] -[visit_id at_1] not free -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp `CONST`_instr((at_2 : addrtype <: numtype), i_2)] -[visit_exp ((at_2 : addrtype <: numtype), i_2)] -[visit_exp (at_2 : addrtype <: numtype)] -[visit_exp at_2] -[visit_id at_2] not free -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp ((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (at' : addrtype <: numtype)] -[visit_exp at'] -[visit_id at'] not free -[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp x_2] -[visit_id x_2] not free -[check_dims] at i j n x y z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `MEMORY.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (((i!`%`_num_.0 + n) > |$mem(z, x).`BYTES`_meminst|) \/ ((j!`%`_num_.0 + n) > |$data(z, y).`BYTES`_datainst|))] -[visit_exp ((i!`%`_num_.0 + n) > |$mem(z, x).`BYTES`_meminst|)] -[visit_exp (i!`%`_num_.0 + n)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$mem(z, x).`BYTES`_meminst|] -[visit_exp $mem(z, x).`BYTES`_meminst] -[visit_exp $mem(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp ((j!`%`_num_.0 + n) > |$data(z, y).`BYTES`_datainst|)] -[visit_exp (j!`%`_num_.0 + n)] -[visit_exp j!`%`_num_.0] -[visit_exp j!`%`_num_] -[visit_exp j] -[visit_id j] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$data(z, y).`BYTES`_datainst|] -[visit_exp $data(z, y).`BYTES`_datainst] -[visit_exp $data(z, y)] -[visit_exp z] -[visit_id z] not free -[visit_exp y] -[visit_id y] not free -[check_dims] at i j n x y z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `MEMORY.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp []] -[visit_exp (n = 0)] -[visit_exp n] -[visit_id n] not free -[visit_exp 0] -[check_dims] at i j n x y z -[visit_exp `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)])] -[visit_exp (z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `MEMORY.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, `%`_num_($data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0)) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.INIT`_instr(x, y)]] -[visit_exp `CONST`_instr((at : addrtype <: numtype), i)] -[visit_exp ((at : addrtype <: numtype), i)] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp i] -[visit_id i] not free -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_($data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0))] -[visit_exp (`I32`_numtype, `%`_num_($data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_($data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0)] -[visit_exp ($data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0)] -[visit_exp $data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0] -[visit_exp $data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte] -[visit_exp $data(z, y).`BYTES`_datainst[j!`%`_num_.0]] -[visit_exp $data(z, y).`BYTES`_datainst] -[visit_exp $data(z, y)] -[visit_exp z] -[visit_id z] not free -[visit_exp y] -[visit_id y] not free -[visit_exp j!`%`_num_.0] -[visit_exp j!`%`_num_] -[visit_exp j] -[visit_id j] not free -[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0)] -[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(8)))] -[visit_exp `%`_storeop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x] -[visit_id x] not free -[visit_exp $memarg0] -[visit_exp `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp ((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp (at : addrtype <: numtype)] -[visit_exp at] -[visit_id at] not free -[visit_exp `%`_num_((i!`%`_num_.0 + 1))] -[visit_exp ((i!`%`_num_.0 + 1))] -[visit_exp (i!`%`_num_.0 + 1)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp 1] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1)))] -[visit_exp (`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((j!`%`_num_.0 + 1))] -[visit_exp ((j!`%`_num_.0 + 1))] -[visit_exp (j!`%`_num_.0 + 1)] -[visit_exp j!`%`_num_.0] -[visit_exp j!`%`_num_] -[visit_exp j] -[visit_id j] not free -[visit_exp 1] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `MEMORY.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] not free -[visit_exp y] -[visit_id y] not free -[check_dims] x z -[visit_exp `%;%`_config(z, [`DATA.DROP`_instr(x)])] -[visit_exp (z, [`DATA.DROP`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`DATA.DROP`_instr(x)]] -[visit_exp `DATA.DROP`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config($with_data(z, x, []), [])] -[visit_exp ($with_data(z, x, []), [])] -[visit_exp $with_data(z, x, [])] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp []] -[visit_exp []] -[check_dims] x z -[visit_exp `%;%`_config(z, [`REF.NULL`_instr(`_IDX`_heaptype(x))])] -[visit_exp (z, [`REF.NULL`_instr(`_IDX`_heaptype(x))])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.NULL`_instr(`_IDX`_heaptype(x))]] -[visit_exp `REF.NULL`_instr(`_IDX`_heaptype(x))] -[visit_exp (`_IDX`_heaptype(x))] -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`REF.NULL`_instr(($type(z, x) : deftype <: heaptype))]] -[visit_exp `REF.NULL`_instr(($type(z, x) : deftype <: heaptype))] -[visit_exp (($type(z, x) : deftype <: heaptype))] -[visit_exp ($type(z, x) : deftype <: heaptype)] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[check_dims] x z -[visit_exp `%;%`_config(z, [`REF.FUNC`_instr(x)])] -[visit_exp (z, [`REF.FUNC`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.FUNC`_instr(x)]] -[visit_exp `REF.FUNC`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`REF.FUNC_ADDR`_instr($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0])]] -[visit_exp `REF.FUNC_ADDR`_instr($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0])] -[visit_exp ($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0])] -[visit_exp $moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0]] -[visit_exp $moduleinst(z).`FUNCS`_moduleinst] -[visit_exp $moduleinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[check_dims] i -[visit_exp [`CONST`_instr(`I32`_numtype, i) `REF.I31`_instr]] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `REF.I31`_instr] -[visit_exp ()] -[visit_exp [`REF.I31_NUM`_instr($wrap__(32, 31, i))]] -[visit_exp `REF.I31_NUM`_instr($wrap__(32, 31, i))] -[visit_exp ($wrap__(32, 31, i))] -[visit_exp $wrap__(32, 31, i)] -[visit_exp 32] -[visit_exp 31] -[visit_exp i] -[visit_id i] not free -[check_dims] ht ref -[visit_exp [(ref : ref <: instr) `REF.IS_NULL`_instr]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `REF.IS_NULL`_instr] -[visit_exp ()] -[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(1))]] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(1))] -[visit_exp (`I32`_numtype, `%`_num_(1))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(1)] -[visit_exp (1)] -[visit_exp 1] -[visit_exp (ref = `REF.NULL`_ref(ht))] -[visit_exp ref] -[visit_id ref] not free -[visit_exp `REF.NULL`_ref(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[check_dims] ref -[visit_exp [(ref : ref <: instr) `REF.IS_NULL`_instr]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `REF.IS_NULL`_instr] -[visit_exp ()] -[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(0))]] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(0))] -[visit_exp (`I32`_numtype, `%`_num_(0))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(0)] -[visit_exp (0)] -[visit_exp 0] -[check_dims] ht ref -[visit_exp [(ref : ref <: instr) `REF.AS_NON_NULL`_instr]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `REF.AS_NON_NULL`_instr] -[visit_exp ()] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (ref = `REF.NULL`_ref(ht))] -[visit_exp ref] -[visit_id ref] not free -[visit_exp `REF.NULL`_ref(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[check_dims] ref -[visit_exp [(ref : ref <: instr) `REF.AS_NON_NULL`_instr]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `REF.AS_NON_NULL`_instr] -[visit_exp ()] -[visit_exp [(ref : ref <: instr)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] not free -[check_dims] ht_1 ht_2 ref_1 ref_2 -[visit_exp [(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr]] -[visit_exp (ref_1 : ref <: instr)] -[visit_exp ref_1] -[visit_id ref_1] -[visit_exp (ref_2 : ref <: instr)] -[visit_exp ref_2] -[visit_id ref_2] -[visit_exp `REF.EQ`_instr] -[visit_exp ()] -[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(1))]] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(1))] -[visit_exp (`I32`_numtype, `%`_num_(1))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(1)] -[visit_exp (1)] -[visit_exp 1] -[visit_exp ((ref_1 = `REF.NULL`_ref(ht_1)) /\ (ref_2 = `REF.NULL`_ref(ht_2)))] -[visit_exp (ref_1 = `REF.NULL`_ref(ht_1))] -[visit_exp ref_1] -[visit_id ref_1] not free -[visit_exp `REF.NULL`_ref(ht_1)] -[visit_exp (ht_1)] -[visit_exp ht_1] -[visit_id ht_1] -[visit_exp (ref_2 = `REF.NULL`_ref(ht_2))] -[visit_exp ref_2] -[visit_id ref_2] not free -[visit_exp `REF.NULL`_ref(ht_2)] -[visit_exp (ht_2)] -[visit_exp ht_2] -[visit_id ht_2] -[check_dims] ref_1 ref_2 -[visit_exp [(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr]] -[visit_exp (ref_1 : ref <: instr)] -[visit_exp ref_1] -[visit_id ref_1] -[visit_exp (ref_2 : ref <: instr)] -[visit_exp ref_2] -[visit_id ref_2] -[visit_exp `REF.EQ`_instr] -[visit_exp ()] -[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(1))]] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(1))] -[visit_exp (`I32`_numtype, `%`_num_(1))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(1)] -[visit_exp (1)] -[visit_exp 1] -[visit_exp (ref_1 = ref_2)] -[visit_exp ref_1] -[visit_id ref_1] not free -[visit_exp ref_2] -[visit_id ref_2] not free -[check_dims] ref_1 ref_2 -[visit_exp [(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr]] -[visit_exp (ref_1 : ref <: instr)] -[visit_exp ref_1] -[visit_id ref_1] -[visit_exp (ref_2 : ref <: instr)] -[visit_exp ref_2] -[visit_id ref_2] -[visit_exp `REF.EQ`_instr] -[visit_exp ()] -[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(0))]] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(0))] -[visit_exp (`I32`_numtype, `%`_num_(0))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(0)] -[visit_exp (0)] -[visit_exp 0] -[check_dims] f ref rt rt' s -[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)])] -[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)])] -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp [(ref : ref <: instr) `REF.TEST`_instr(rt)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `REF.TEST`_instr(rt)] -[visit_exp (rt)] -[visit_exp rt] -[visit_id rt] -[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(1))]] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(1))] -[visit_exp (`I32`_numtype, `%`_num_(1))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(1)] -[visit_exp (1)] -[visit_exp 1] -[visit_exp (s, ref, rt')] -[visit_exp s] -[visit_id s] not free -[visit_exp ref] -[visit_id ref] not free -[visit_exp rt'] -[visit_id rt'] -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt', $inst_reftype(f.`MODULE`_frame, rt))] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp rt'] -[visit_id rt'] not free -[visit_exp $inst_reftype(f.`MODULE`_frame, rt)] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp rt] -[visit_id rt] not free -[check_dims] f ref rt s -[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)])] -[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)])] -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp [(ref : ref <: instr) `REF.TEST`_instr(rt)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `REF.TEST`_instr(rt)] -[visit_exp (rt)] -[visit_exp rt] -[visit_id rt] -[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(0))]] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(0))] -[visit_exp (`I32`_numtype, `%`_num_(0))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(0)] -[visit_exp (0)] -[visit_exp 0] -[check_dims] f ref rt rt' s -[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.CAST`_instr(rt)])] -[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `REF.CAST`_instr(rt)])] -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp [(ref : ref <: instr) `REF.CAST`_instr(rt)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `REF.CAST`_instr(rt)] -[visit_exp (rt)] -[visit_exp rt] -[visit_id rt] -[visit_exp [(ref : ref <: instr)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] not free -[visit_exp (s, ref, rt')] -[visit_exp s] -[visit_id s] not free -[visit_exp ref] -[visit_id ref] not free -[visit_exp rt'] -[visit_id rt'] -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt', $inst_reftype(f.`MODULE`_frame, rt))] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?()] -[visit_exp []] -[visit_exp rt'] -[visit_id rt'] not free -[visit_exp $inst_reftype(f.`MODULE`_frame, rt)] -[visit_exp f.`MODULE`_frame] -[visit_exp f] -[visit_id f] not free -[visit_exp rt] -[visit_id rt] not free -[check_dims] f ref rt s -[visit_exp `%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.CAST`_instr(rt)])] -[visit_exp (`%;%`_state(s, f), [(ref : ref <: instr) `REF.CAST`_instr(rt)])] -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp [(ref : ref <: instr) `REF.CAST`_instr(rt)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `REF.CAST`_instr(rt)] -[visit_exp (rt)] -[visit_exp rt] -[visit_id rt] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] ht sx -[visit_exp [`REF.NULL`_instr(ht) `I31.GET`_instr(sx)]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `I31.GET`_instr(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] i sx -[visit_exp [`REF.I31_NUM`_instr(i) `I31.GET`_instr(sx)]] -[visit_exp `REF.I31_NUM`_instr(i)] -[visit_exp (i)] -[visit_exp i] -[visit_id i] -[visit_exp `I31.GET`_instr(sx)] -[visit_exp (sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp [`CONST`_instr(`I32`_numtype, $extend__(31, 32, sx, i))]] -[visit_exp `CONST`_instr(`I32`_numtype, $extend__(31, 32, sx, i))] -[visit_exp (`I32`_numtype, $extend__(31, 32, sx, i))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp $extend__(31, 32, sx, i)] -[visit_exp 31] -[visit_exp 32] -[visit_exp sx] -[visit_id sx] not free -[visit_exp i] -[visit_id i] not free -[check_dims] a mut n si val x z zt -[visit_exp `%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr(x)])] -[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr(x)]] -[visit_exp (val : val <: instr)^n{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`STRUCT.NEW`_instr(x)]] -[visit_exp `STRUCT.NEW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config($add_structinst(z, [si]), [`REF.STRUCT_ADDR`_instr(a)])] -[visit_exp ($add_structinst(z, [si]), [`REF.STRUCT_ADDR`_instr(a)])] -[visit_exp $add_structinst(z, [si])] -[visit_exp z] -[visit_id z] not free -[visit_exp [si]] -[visit_exp si] -[visit_id si] -[visit_exp [`REF.STRUCT_ADDR`_instr(a)]] -[visit_exp `REF.STRUCT_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`})))] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`}))] -[visit_exp (`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`}))] -[visit_exp `%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`})] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`})] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`}] -[scope_enter mut?] -[scope_enter zt] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_exp zt] -[visit_id zt] not free -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_id zt] not free -[scope_exit zt] -[scope_exit mut?] -[visit_exp n] -[visit_id n] not free -[visit_exp `mut?*`] -[visit_id mut?*] no dims -[visit_id mut?*] -[visit_exp `zt*`] -[visit_id zt*] no dims -[visit_id zt*] -[visit_exp (a = |$structinst(z)|)] -[visit_exp a] -[visit_id a] not free -[visit_exp |$structinst(z)|] -[visit_exp $structinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp (si = {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}})] -[visit_exp si] -[visit_id si] not free -[visit_exp {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}}] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}] -[scope_enter val] -[scope_enter zt] -[visit_exp $packfield_(zt, val)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[visit_id zt] not free -[scope_exit zt] -[scope_exit val] -[visit_exp n] -[visit_id n] not free -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp `zt*`] -[visit_id zt*] not free -[visit_id zt*] no dims -[check_dims] mut val x z zt -[visit_exp `%;%`_config(z, [`STRUCT.NEW_DEFAULT`_instr(x)])] -[visit_exp (z, [`STRUCT.NEW_DEFAULT`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`STRUCT.NEW_DEFAULT`_instr(x)]] -[visit_exp `STRUCT.NEW_DEFAULT`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`STRUCT.NEW`_instr(x)]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`STRUCT.NEW`_instr(x)]] -[visit_exp `STRUCT.NEW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})))] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] -[visit_exp (`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] -[visit_exp `%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}] -[scope_enter mut?] -[scope_enter zt] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_exp zt] -[visit_id zt] not free -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_id zt] not free -[scope_exit zt] -[scope_exit mut?] -[visit_exp `mut?*`] -[visit_id mut?*] no dims -[visit_id mut?*] -[visit_exp `zt*`] -[visit_id zt*] no dims -[visit_id zt*] -[scope_enter val] -[scope_enter zt] -[visit_exp ($default_($unpack(zt)) = ?(val))] -[visit_exp $default_($unpack(zt))] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp ?(val)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[visit_id zt] not free -[scope_exit zt] -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp `zt*`] -[visit_id zt*] not free -[visit_id zt*] no dims -[check_dims] ht i sx x z -[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)])] -[visit_exp (z, [`REF.NULL`_instr(ht) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.NULL`_instr(ht) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)] -[visit_exp (sx?{sx <- `sx?`}, x, i)] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] no dims -[visit_id sx?] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] a i mut sx x z zt -[visit_exp `%;%`_config(z, [`REF.STRUCT_ADDR`_instr(a) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)])] -[visit_exp (z, [`REF.STRUCT_ADDR`_instr(a) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.STRUCT_ADDR`_instr(a) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)]] -[visit_exp `REF.STRUCT_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)] -[visit_exp (sx?{sx <- `sx?`}, x, i)] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] no dims -[visit_id sx?] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp [($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst[i!`%`_u32.0]) : val <: instr)]] -[visit_exp ($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst[i!`%`_u32.0]) : val <: instr)] -[visit_exp $unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst[i!`%`_u32.0])] -[visit_exp zt*{zt <- `zt*`}[i!`%`_u32.0]] -[visit_exp zt*{zt <- `zt*`}] -[scope_enter zt] -[visit_exp zt] -[visit_id zt] not free -[visit_id zt] not free -[scope_exit zt] -[visit_exp `zt*`] -[visit_id zt*] no dims -[visit_id zt*] -[visit_exp i!`%`_u32.0] -[visit_exp i!`%`_u32] -[visit_exp i] -[visit_id i] not free -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] not free -[visit_id sx?] no dims -[visit_exp $structinst(z)[a].`FIELDS`_structinst[i!`%`_u32.0]] -[visit_exp $structinst(z)[a].`FIELDS`_structinst] -[visit_exp $structinst(z)[a]] -[visit_exp $structinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[visit_exp i!`%`_u32.0] -[visit_exp i!`%`_u32] -[visit_exp i] -[visit_id i] not free -[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})))] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] -[visit_exp (`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] -[visit_exp `%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}] -[scope_enter mut?] -[scope_enter zt] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_exp zt] -[visit_id zt] not free -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_id zt] not free -[scope_exit zt] -[scope_exit mut?] -[visit_exp `mut?*`] -[visit_id mut?*] no dims -[visit_id mut?*] -[visit_exp `zt*`] -[visit_id zt*] not free -[visit_id zt*] no dims -[check_dims] ht i val x z -[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) (val : val <: instr) `STRUCT.SET`_instr(x, i)])] -[visit_exp (z, [`REF.NULL`_instr(ht) (val : val <: instr) `STRUCT.SET`_instr(x, i)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.NULL`_instr(ht) (val : val <: instr) `STRUCT.SET`_instr(x, i)]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `STRUCT.SET`_instr(x, i)] -[visit_exp (x, i)] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp `%;%`_config(z, [`TRAP`_instr])] -[visit_exp (z, [`TRAP`_instr])] -[visit_exp z] -[visit_id z] not free -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] a i mut val x z zt -[visit_exp `%;%`_config(z, [`REF.STRUCT_ADDR`_instr(a) (val : val <: instr) `STRUCT.SET`_instr(x, i)])] -[visit_exp (z, [`REF.STRUCT_ADDR`_instr(a) (val : val <: instr) `STRUCT.SET`_instr(x, i)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.STRUCT_ADDR`_instr(a) (val : val <: instr) `STRUCT.SET`_instr(x, i)]] -[visit_exp `REF.STRUCT_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `STRUCT.SET`_instr(x, i)] -[visit_exp (x, i)] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp `%;%`_config($with_struct(z, a, i!`%`_u32.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], val)), [])] -[visit_exp ($with_struct(z, a, i!`%`_u32.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], val)), [])] -[visit_exp $with_struct(z, a, i!`%`_u32.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], val))] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[visit_exp i!`%`_u32.0] -[visit_exp i!`%`_u32] -[visit_exp i] -[visit_id i] not free -[visit_exp $packfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], val)] -[visit_exp zt*{zt <- `zt*`}[i!`%`_u32.0]] -[visit_exp zt*{zt <- `zt*`}] -[scope_enter zt] -[visit_exp zt] -[visit_id zt] not free -[visit_id zt] not free -[scope_exit zt] -[visit_exp `zt*`] -[visit_id zt*] no dims -[visit_id zt*] -[visit_exp i!`%`_u32.0] -[visit_exp i!`%`_u32] -[visit_exp i] -[visit_id i] not free -[visit_exp val] -[visit_id val] not free -[visit_exp []] -[visit_exp ($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})))] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] -[visit_exp (`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))] -[visit_exp `%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`})] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}] -[scope_enter mut?] -[scope_enter zt] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_exp zt] -[visit_id zt] not free -[visit_id mut?] not free -[visit_id mut?] no dims -[visit_id zt] not free -[scope_exit zt] -[scope_exit mut?] -[visit_exp `mut?*`] -[visit_id mut?*] no dims -[visit_id mut?*] -[visit_exp `zt*`] -[visit_id zt*] not free -[visit_id zt*] no dims -[check_dims] n val x -[visit_exp [(val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW`_instr(x)]] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.NEW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] -[visit_exp (val : val <: instr)^n{}] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_exp n] -[visit_id n] not free -[visit_exp [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] -[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] -[visit_exp (x, `%`_u32(n))] -[visit_exp x] -[visit_id x] not free -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[check_dims] mut n val x z zt -[visit_exp `%;%`_config(z, [`CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DEFAULT`_instr(x)])] -[visit_exp (z, [`CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DEFAULT`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DEFAULT`_instr(x)]] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.NEW_DEFAULT`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] -[visit_exp (val : val <: instr)^n{}] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp n] -[visit_id n] not free -[visit_exp [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] -[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] -[visit_exp (x, `%`_u32(n))] -[visit_exp x] -[visit_id x] not free -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] -[visit_exp ($default_($unpack(zt)) = ?(val))] -[visit_exp $default_($unpack(zt))] -[visit_exp $unpack(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp ?(val)] -[visit_exp val] -[visit_id val] not free -[check_dims] a ai mut n val x z zt -[visit_exp `%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))])] -[visit_exp (z, (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))])] -[visit_exp z] -[visit_id z] -[visit_exp (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] -[visit_exp (val : val <: instr)^n{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] -[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] -[visit_exp (x, `%`_u32(n))] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp `%;%`_config($add_arrayinst(z, [ai]), [`REF.ARRAY_ADDR`_instr(a)])] -[visit_exp ($add_arrayinst(z, [ai]), [`REF.ARRAY_ADDR`_instr(a)])] -[visit_exp $add_arrayinst(z, [ai])] -[visit_exp z] -[visit_id z] not free -[visit_exp [ai]] -[visit_exp ai] -[visit_id ai] -[visit_exp [`REF.ARRAY_ADDR`_instr(a)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] -[visit_exp ((a = |$arrayinst(z)|) /\ (ai = {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`}}))] -[visit_exp (a = |$arrayinst(z)|)] -[visit_exp a] -[visit_id a] not free -[visit_exp |$arrayinst(z)|] -[visit_exp $arrayinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp (ai = {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`}})] -[visit_exp ai] -[visit_id ai] not free -[visit_exp {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`}}] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp $packfield_(zt, val)^n{val <- `val*`}] -[scope_enter val] -[visit_exp $packfield_(zt, val)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp n] -[visit_id n] not free -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[check_dims] i n x y z -[visit_exp `%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)])] -[visit_exp (z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)]] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.NEW_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ((i!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|)] -[visit_exp (i!`%`_num_.0 + n)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$elem(z, y).`REFS`_eleminst|] -[visit_exp $elem(z, y).`REFS`_eleminst] -[visit_exp $elem(z, y)] -[visit_exp z] -[visit_id z] not free -[visit_exp y] -[visit_id y] not free -[check_dims] i n ref x y z -[visit_exp `%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)])] -[visit_exp (z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)]] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.NEW_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp (ref : ref <: instr)^n{ref <- `ref*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] -[visit_exp (ref : ref <: instr)^n{ref <- `ref*`}] -[scope_enter ref] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] not free -[visit_id ref] not free -[scope_exit ref] -[visit_exp n] -[visit_id n] not free -[visit_exp `ref*`] -[visit_id ref*] no dims -[visit_id ref*] -[visit_exp [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] -[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] -[visit_exp (x, `%`_u32(n))] -[visit_exp x] -[visit_id x] not free -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp (ref^n{ref <- `ref*`} = $elem(z, y).`REFS`_eleminst[i!`%`_num_.0 : n])] -[visit_exp ref^n{ref <- `ref*`}] -[scope_enter ref] -[visit_exp ref] -[visit_id ref] not free -[visit_id ref] not free -[scope_exit ref] -[visit_exp n] -[visit_id n] not free -[visit_exp `ref*`] -[visit_id ref*] not free -[visit_id ref*] no dims -[visit_exp $elem(z, y).`REFS`_eleminst[i!`%`_num_.0 : n]] -[visit_exp $elem(z, y).`REFS`_eleminst] -[visit_exp $elem(z, y)] -[visit_exp z] -[visit_id z] not free -[visit_exp y] -[visit_id y] not free -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp n] -[visit_id n] not free -[check_dims] i mut n x y z zt -[visit_exp `%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)])] -[visit_exp (z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)]] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.NEW_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] -[visit_exp ((i!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst|)] -[visit_exp (i!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ((n * $zsize(zt)) : nat <:> rat)] -[visit_exp (n * $zsize(zt))] -[visit_exp n] -[visit_id n] not free -[visit_exp $zsize(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp |$data(z, y).`BYTES`_datainst|] -[visit_exp $data(z, y).`BYTES`_datainst] -[visit_exp $data(z, y)] -[visit_exp z] -[visit_id z] not free -[visit_exp y] -[visit_id y] not free -[check_dims] c i mut n x y z zt -[visit_exp `%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)])] -[visit_exp (z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)]] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.NEW_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp $const($cunpack(zt), $cunpacknum_(zt, c))^n{c <- `c*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] -[visit_exp $const($cunpack(zt), $cunpacknum_(zt, c))^n{c <- `c*`}] -[scope_enter c] -[visit_exp $const($cunpack(zt), $cunpacknum_(zt, c))] -[visit_exp $cunpack(zt)] -[visit_exp zt] -[visit_id zt] -[visit_exp $cunpacknum_(zt, c)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp n] -[visit_id n] not free -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]] -[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] -[visit_exp (x, `%`_u32(n))] -[visit_exp x] -[visit_id x] not free -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] not free -[visit_exp ($concatn_(syntax byte, $zbytes_(zt, c)^n{c <- `c*`}, ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) = $data(z, y).`BYTES`_datainst[i!`%`_num_.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] -[visit_exp $concatn_(syntax byte, $zbytes_(zt, c)^n{c <- `c*`}, ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp $zbytes_(zt, c)^n{c <- `c*`}] -[scope_enter c] -[visit_exp $zbytes_(zt, c)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp n] -[visit_id n] not free -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (($zsize(zt) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ($zsize(zt) : nat <:> rat)] -[visit_exp $zsize(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp $data(z, y).`BYTES`_datainst[i!`%`_num_.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $data(z, y).`BYTES`_datainst] -[visit_exp $data(z, y)] -[visit_exp z] -[visit_id z] not free -[visit_exp y] -[visit_id y] not free -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ((n * $zsize(zt)) : nat <:> rat)] -[visit_exp (n * $zsize(zt))] -[visit_exp n] -[visit_id n] not free -[visit_exp $zsize(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[check_dims] ht i sx x z -[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)])] -[visit_exp (z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)] -[visit_exp (sx?{sx <- `sx?`}, x)] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] no dims -[visit_id sx?] -[visit_exp x] -[visit_id x] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] a i sx x z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)] -[visit_exp (sx?{sx <- `sx?`}, x)] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] no dims -[visit_id sx?] -[visit_exp x] -[visit_id x] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (i!`%`_num_.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst|)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst|] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] -[visit_exp $arrayinst(z)[a]] -[visit_exp $arrayinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[check_dims] a i mut sx x z zt -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)] -[visit_exp (sx?{sx <- `sx?`}, x)] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] no dims -[visit_id sx?] -[visit_exp x] -[visit_id x] -[visit_exp [($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst[i!`%`_num_.0]) : val <: instr)]] -[visit_exp ($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst[i!`%`_num_.0]) : val <: instr)] -[visit_exp $unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst[i!`%`_num_.0])] -[visit_exp zt] -[visit_id zt] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] not free -[visit_id sx?] no dims -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst[i!`%`_num_.0]] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] -[visit_exp $arrayinst(z)[a]] -[visit_exp $arrayinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] not free -[check_dims] ht i val x z -[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)])] -[visit_exp (z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `ARRAY.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config(z, [`TRAP`_instr])] -[visit_exp (z, [`TRAP`_instr])] -[visit_exp z] -[visit_id z] not free -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] a i val x z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `ARRAY.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config(z, [`TRAP`_instr])] -[visit_exp (z, [`TRAP`_instr])] -[visit_exp z] -[visit_id z] not free -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp (i!`%`_num_.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst|)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst|] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] -[visit_exp $arrayinst(z)[a]] -[visit_exp $arrayinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[check_dims] a i mut val x z zt -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `ARRAY.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%;%`_config($with_array(z, a, i!`%`_num_.0, $packfield_(zt, val)), [])] -[visit_exp ($with_array(z, a, i!`%`_num_.0, $packfield_(zt, val)), [])] -[visit_exp $with_array(z, a, i!`%`_num_.0, $packfield_(zt, val))] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp $packfield_(zt, val)] -[visit_exp zt] -[visit_id zt] -[visit_exp val] -[visit_id val] not free -[visit_exp []] -[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] not free -[check_dims] ht z -[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `ARRAY.LEN`_instr])] -[visit_exp (z, [`REF.NULL`_instr(ht) `ARRAY.LEN`_instr])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.NULL`_instr(ht) `ARRAY.LEN`_instr]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `ARRAY.LEN`_instr] -[visit_exp ()] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] a z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `ARRAY.LEN`_instr])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `ARRAY.LEN`_instr])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `ARRAY.LEN`_instr]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `ARRAY.LEN`_instr] -[visit_exp ()] -[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(|$arrayinst(z)[a].`FIELDS`_arrayinst|))]] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(|$arrayinst(z)[a].`FIELDS`_arrayinst|))] -[visit_exp (`I32`_numtype, `%`_num_(|$arrayinst(z)[a].`FIELDS`_arrayinst|))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(|$arrayinst(z)[a].`FIELDS`_arrayinst|)] -[visit_exp (|$arrayinst(z)[a].`FIELDS`_arrayinst|)] -[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst|] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] -[visit_exp $arrayinst(z)[a]] -[visit_exp $arrayinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[check_dims] ht i n val x z -[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] -[visit_exp (z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] a i n val x z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst|)] -[visit_exp (i!`%`_num_.0 + n)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst|] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] -[visit_exp $arrayinst(z)[a]] -[visit_exp $arrayinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[check_dims] a i n val x z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp []] -[visit_exp (n = 0)] -[visit_exp n] -[visit_id n] not free -[visit_exp 0] -[check_dims] a i n val x z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.FILL`_instr(x)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] not free -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_exp `ARRAY.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp (`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((i!`%`_num_.0 + 1))] -[visit_exp ((i!`%`_num_.0 + 1))] -[visit_exp (i!`%`_num_.0 + 1)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp 1] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `ARRAY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[check_dims] ht_1 i_1 i_2 n ref x_1 x_2 z -[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht_1) `CONST`_instr(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp (z, [`REF.NULL`_instr(ht_1) `CONST`_instr(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.NULL`_instr(ht_1) `CONST`_instr(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] -[visit_exp `REF.NULL`_instr(ht_1)] -[visit_exp (ht_1)] -[visit_exp ht_1] -[visit_id ht_1] -[visit_exp `CONST`_instr(`I32`_numtype, i_1)] -[visit_exp (`I32`_numtype, i_1)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `CONST`_instr(`I32`_numtype, i_2)] -[visit_exp (`I32`_numtype, i_2)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] ht_2 i_1 i_2 n ref x_1 x_2 z -[visit_exp `%;%`_config(z, [(ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_1) `REF.NULL`_instr(ht_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp (z, [(ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_1) `REF.NULL`_instr(ht_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp z] -[visit_id z] -[visit_exp [(ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_1) `REF.NULL`_instr(ht_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `CONST`_instr(`I32`_numtype, i_1)] -[visit_exp (`I32`_numtype, i_1)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `REF.NULL`_instr(ht_2)] -[visit_exp (ht_2)] -[visit_exp ht_2] -[visit_id ht_2] -[visit_exp `CONST`_instr(`I32`_numtype, i_2)] -[visit_exp (`I32`_numtype, i_2)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] a_1 a_2 i_1 i_2 n x_1 x_2 z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] -[visit_exp (a_1)] -[visit_exp a_1] -[visit_id a_1] -[visit_exp `CONST`_instr(`I32`_numtype, i_1)] -[visit_exp (`I32`_numtype, i_1)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] -[visit_exp (a_2)] -[visit_exp a_2] -[visit_id a_2] -[visit_exp `CONST`_instr(`I32`_numtype, i_2)] -[visit_exp (`I32`_numtype, i_2)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ((i_1!`%`_num_.0 + n) > |$arrayinst(z)[a_1].`FIELDS`_arrayinst|)] -[visit_exp (i_1!`%`_num_.0 + n)] -[visit_exp i_1!`%`_num_.0] -[visit_exp i_1!`%`_num_] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$arrayinst(z)[a_1].`FIELDS`_arrayinst|] -[visit_exp $arrayinst(z)[a_1].`FIELDS`_arrayinst] -[visit_exp $arrayinst(z)[a_1]] -[visit_exp $arrayinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a_1] -[visit_id a_1] not free -[check_dims] a_1 a_2 i_1 i_2 n x_1 x_2 z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] -[visit_exp (a_1)] -[visit_exp a_1] -[visit_id a_1] -[visit_exp `CONST`_instr(`I32`_numtype, i_1)] -[visit_exp (`I32`_numtype, i_1)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] -[visit_exp (a_2)] -[visit_exp a_2] -[visit_id a_2] -[visit_exp `CONST`_instr(`I32`_numtype, i_2)] -[visit_exp (`I32`_numtype, i_2)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ((i_2!`%`_num_.0 + n) > |$arrayinst(z)[a_2].`FIELDS`_arrayinst|)] -[visit_exp (i_2!`%`_num_.0 + n)] -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$arrayinst(z)[a_2].`FIELDS`_arrayinst|] -[visit_exp $arrayinst(z)[a_2].`FIELDS`_arrayinst] -[visit_exp $arrayinst(z)[a_2]] -[visit_exp $arrayinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a_2] -[visit_id a_2] not free -[check_dims] a_1 a_2 i_1 i_2 n x_1 x_2 z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] -[visit_exp (a_1)] -[visit_exp a_1] -[visit_id a_1] -[visit_exp `CONST`_instr(`I32`_numtype, i_1)] -[visit_exp (`I32`_numtype, i_1)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] -[visit_exp (a_2)] -[visit_exp a_2] -[visit_id a_2] -[visit_exp `CONST`_instr(`I32`_numtype, i_2)] -[visit_exp (`I32`_numtype, i_2)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp []] -[visit_exp (n = 0)] -[visit_exp n] -[visit_id n] not free -[visit_exp 0] -[check_dims] a_1 a_2 i_1 i_2 mut n sx x_1 x_2 z zt_2 -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] -[visit_exp (a_1)] -[visit_exp a_1] -[visit_id a_1] -[visit_exp `CONST`_instr(`I32`_numtype, i_1)] -[visit_exp (`I32`_numtype, i_1)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] -[visit_exp (a_2)] -[visit_exp a_2] -[visit_id a_2] -[visit_exp `CONST`_instr(`I32`_numtype, i_2)] -[visit_exp (`I32`_numtype, i_2)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr(x_1) `REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, `%`_num_((i_1!`%`_num_.0 + 1))) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, `%`_num_((i_2!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] -[visit_exp (a_1)] -[visit_exp a_1] -[visit_id a_1] not free -[visit_exp `CONST`_instr(`I32`_numtype, i_1)] -[visit_exp (`I32`_numtype, i_1)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] -[visit_exp (a_2)] -[visit_exp a_2] -[visit_id a_2] not free -[visit_exp `CONST`_instr(`I32`_numtype, i_2)] -[visit_exp (`I32`_numtype, i_2)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2)] -[visit_exp (sx?{sx <- `sx?`}, x_2)] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] no dims -[visit_id sx?] -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp `ARRAY.SET`_instr(x_1)] -[visit_exp (x_1)] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] -[visit_exp (a_1)] -[visit_exp a_1] -[visit_id a_1] not free -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((i_1!`%`_num_.0 + 1)))] -[visit_exp (`I32`_numtype, `%`_num_((i_1!`%`_num_.0 + 1)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((i_1!`%`_num_.0 + 1))] -[visit_exp ((i_1!`%`_num_.0 + 1))] -[visit_exp (i_1!`%`_num_.0 + 1)] -[visit_exp i_1!`%`_num_.0] -[visit_exp i_1!`%`_num_] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp 1] -[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] -[visit_exp (a_2)] -[visit_exp a_2] -[visit_id a_2] not free -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((i_2!`%`_num_.0 + 1)))] -[visit_exp (`I32`_numtype, `%`_num_((i_2!`%`_num_.0 + 1)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((i_2!`%`_num_.0 + 1))] -[visit_exp ((i_2!`%`_num_.0 + 1))] -[visit_exp (i_2!`%`_num_.0 + 1)] -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp 1] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp ($type(z, x_2), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2)))] -[visit_exp $type(z, x_2)] -[visit_exp z] -[visit_id z] not free -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt_2)] -[visit_exp (mut?{mut <- `mut?`}, zt_2)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt_2] -[visit_id zt_2] -[visit_exp ((i_1!`%`_num_.0 <= i_2!`%`_num_.0) /\ (sx?{sx <- `sx?`} = $sx(zt_2)))] -[visit_exp (i_1!`%`_num_.0 <= i_2!`%`_num_.0)] -[visit_exp i_1!`%`_num_.0] -[visit_exp i_1!`%`_num_] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp (sx?{sx <- `sx?`} = $sx(zt_2))] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] not free -[visit_id sx?] no dims -[visit_exp $sx(zt_2)] -[visit_exp zt_2] -[visit_id zt_2] not free -[check_dims] a_1 a_2 i_1 i_2 mut n sx x_1 x_2 z zt_2 -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] -[visit_exp (a_1)] -[visit_exp a_1] -[visit_id a_1] -[visit_exp `CONST`_instr(`I32`_numtype, i_1)] -[visit_exp (`I32`_numtype, i_1)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] -[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] -[visit_exp (a_2)] -[visit_exp a_2] -[visit_id a_2] -[visit_exp `CONST`_instr(`I32`_numtype, i_2)] -[visit_exp (`I32`_numtype, i_2)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_2] -[visit_id i_2] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr(x_1) `REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr(x_1, x_2)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] -[visit_exp (a_1)] -[visit_exp a_1] -[visit_id a_1] not free -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (`I32`_numtype, `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((i_1!`%`_num_.0 + n) : nat <:> int)] -[visit_exp (i_1!`%`_num_.0 + n)] -[visit_exp i_1!`%`_num_.0] -[visit_exp i_1!`%`_num_] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] -[visit_exp (a_2)] -[visit_exp a_2] -[visit_id a_2] not free -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (`I32`_numtype, `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp (((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int))] -[visit_exp ((i_2!`%`_num_.0 + n) : nat <:> int)] -[visit_exp (i_2!`%`_num_.0 + n)] -[visit_exp i_2!`%`_num_.0] -[visit_exp i_2!`%`_num_] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2)] -[visit_exp (sx?{sx <- `sx?`}, x_2)] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] no dims -[visit_id sx?] -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp `ARRAY.SET`_instr(x_1)] -[visit_exp (x_1)] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp `REF.ARRAY_ADDR`_instr(a_1)] -[visit_exp (a_1)] -[visit_exp a_1] -[visit_id a_1] not free -[visit_exp `CONST`_instr(`I32`_numtype, i_1)] -[visit_exp (`I32`_numtype, i_1)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_1] -[visit_id i_1] not free -[visit_exp `REF.ARRAY_ADDR`_instr(a_2)] -[visit_exp (a_2)] -[visit_exp a_2] -[visit_id a_2] not free -[visit_exp `CONST`_instr(`I32`_numtype, i_2)] -[visit_exp (`I32`_numtype, i_2)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i_2] -[visit_id i_2] not free -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp ($type(z, x_2), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2)))] -[visit_exp $type(z, x_2)] -[visit_exp z] -[visit_id z] not free -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt_2)] -[visit_exp (mut?{mut <- `mut?`}, zt_2)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt_2] -[visit_id zt_2] -[visit_exp (sx?{sx <- `sx?`} = $sx(zt_2))] -[visit_exp sx?{sx <- `sx?`}] -[scope_enter sx] -[visit_exp sx] -[visit_id sx] not free -[visit_id sx] not free -[scope_exit sx] -[visit_exp `sx?`] -[visit_id sx?] not free -[visit_id sx?] no dims -[visit_exp $sx(zt_2)] -[visit_exp zt_2] -[visit_id zt_2] not free -[check_dims] ht i j n x y z -[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] -[visit_exp (z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] a i j n x y z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst|)] -[visit_exp (i!`%`_num_.0 + n)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst|] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] -[visit_exp $arrayinst(z)[a]] -[visit_exp $arrayinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[check_dims] a i j n x y z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ((j!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|)] -[visit_exp (j!`%`_num_.0 + n)] -[visit_exp j!`%`_num_.0] -[visit_exp j!`%`_num_] -[visit_exp j] -[visit_id j] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$elem(z, y).`REFS`_eleminst|] -[visit_exp $elem(z, y).`REFS`_eleminst] -[visit_exp $elem(z, y)] -[visit_exp z] -[visit_id z] not free -[visit_exp y] -[visit_id y] not free -[check_dims] a i j n x y z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp []] -[visit_exp (n = 0)] -[visit_exp n] -[visit_id n] not free -[visit_exp 0] -[check_dims] a i j n ref x y z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (ref : ref <: instr) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_ELEM`_instr(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] not free -[visit_exp (ref : ref <: instr)] -[visit_exp ref] -[visit_id ref] -[visit_exp `ARRAY.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp (`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((i!`%`_num_.0 + 1))] -[visit_exp ((i!`%`_num_.0 + 1))] -[visit_exp (i!`%`_num_.0 + 1)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp 1] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1)))] -[visit_exp (`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((j!`%`_num_.0 + 1))] -[visit_exp ((j!`%`_num_.0 + 1))] -[visit_exp (j!`%`_num_.0 + 1)] -[visit_exp j!`%`_num_.0] -[visit_exp j!`%`_num_] -[visit_exp j] -[visit_id j] not free -[visit_exp 1] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] not free -[visit_exp y] -[visit_id y] not free -[visit_exp (ref = $elem(z, y).`REFS`_eleminst[j!`%`_num_.0])] -[visit_exp ref] -[visit_id ref] not free -[visit_exp $elem(z, y).`REFS`_eleminst[j!`%`_num_.0]] -[visit_exp $elem(z, y).`REFS`_eleminst] -[visit_exp $elem(z, y)] -[visit_exp z] -[visit_id z] not free -[visit_exp y] -[visit_id y] not free -[visit_exp j!`%`_num_.0] -[visit_exp j!`%`_num_] -[visit_exp j] -[visit_id j] not free -[check_dims] ht i j n x y z -[visit_exp `%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] -[visit_exp (z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[check_dims] a i j n x y z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst|)] -[visit_exp (i!`%`_num_.0 + n)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp n] -[visit_id n] not free -[visit_exp |$arrayinst(z)[a].`FIELDS`_arrayinst|] -[visit_exp $arrayinst(z)[a].`FIELDS`_arrayinst] -[visit_exp $arrayinst(z)[a]] -[visit_exp $arrayinst(z)] -[visit_exp z] -[visit_id z] not free -[visit_exp a] -[visit_id a] not free -[check_dims] a i j mut n x y z zt -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] -[visit_exp ((j!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst|)] -[visit_exp (j!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp j!`%`_num_.0] -[visit_exp j!`%`_num_] -[visit_exp j] -[visit_id j] not free -[visit_exp ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ((n * $zsize(zt)) : nat <:> rat)] -[visit_exp (n * $zsize(zt))] -[visit_exp n] -[visit_id n] not free -[visit_exp $zsize(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp |$data(z, y).`BYTES`_datainst|] -[visit_exp $data(z, y).`BYTES`_datainst] -[visit_exp $data(z, y)] -[visit_exp z] -[visit_id z] not free -[visit_exp y] -[visit_id y] not free -[check_dims] a i j n x y z -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp []] -[visit_exp (n = 0)] -[visit_exp n] -[visit_id n] not free -[visit_exp 0] -[check_dims] a c i j mut n x y z zt -[visit_exp `%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] -[visit_exp (z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)])] -[visit_exp z] -[visit_id z] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `CONST`_instr(`I32`_numtype, j)] -[visit_exp (`I32`_numtype, j)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp j] -[visit_id j] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) $const($cunpack(zt), $cunpacknum_(zt, c)) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_DATA`_instr(x, y)]] -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] not free -[visit_exp $const($cunpack(zt), $cunpacknum_(zt, c))] -[visit_exp $cunpack(zt)] -[visit_exp zt] -[visit_id zt] -[visit_exp $cunpacknum_(zt, c)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp c] -[visit_id c] -[visit_exp `ARRAY.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_exp `REF.ARRAY_ADDR`_instr(a)] -[visit_exp (a)] -[visit_exp a] -[visit_id a] not free -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp (`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((i!`%`_num_.0 + 1))] -[visit_exp ((i!`%`_num_.0 + 1))] -[visit_exp (i!`%`_num_.0 + 1)] -[visit_exp i!`%`_num_.0] -[visit_exp i!`%`_num_] -[visit_exp i] -[visit_id i] not free -[visit_exp 1] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))))] -[visit_exp (`I32`_numtype, `%`_num_((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))] -[visit_exp ((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))] -[visit_exp (j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat))] -[visit_exp j!`%`_num_.0] -[visit_exp j!`%`_num_] -[visit_exp j] -[visit_id j] not free -[visit_exp ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (($zsize(zt) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ($zsize(zt) : nat <:> rat)] -[visit_exp $zsize(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp (`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - (1 : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] not free -[visit_exp y] -[visit_id y] not free -[visit_exp ($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)))] -[visit_exp $type(z, x)] -[visit_exp z] -[visit_id z] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp (`%%`_fieldtype(mut?{mut <- `mut?`}, zt))] -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] not free -[visit_exp ($zbytes_(zt, c) = $data(z, y).`BYTES`_datainst[j!`%`_num_.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)])] -[visit_exp $zbytes_(zt, c)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp c] -[visit_id c] not free -[visit_exp $data(z, y).`BYTES`_datainst[j!`%`_num_.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]] -[visit_exp $data(z, y).`BYTES`_datainst] -[visit_exp $data(z, y)] -[visit_exp z] -[visit_id z] not free -[visit_exp y] -[visit_id y] not free -[visit_exp j!`%`_num_.0] -[visit_exp j!`%`_num_] -[visit_exp j] -[visit_id j] not free -[visit_exp ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp (($zsize(zt) : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp ($zsize(zt) : nat <:> rat)] -[visit_exp $zsize(zt)] -[visit_exp zt] -[visit_id zt] not free -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[check_dims] ht -[visit_exp [`REF.NULL`_instr(ht) `EXTERN.CONVERT_ANY`_instr]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `EXTERN.CONVERT_ANY`_instr] -[visit_exp ()] -[visit_exp [`REF.NULL`_instr(`EXTERN`_heaptype)]] -[visit_exp `REF.NULL`_instr(`EXTERN`_heaptype)] -[visit_exp (`EXTERN`_heaptype)] -[visit_exp `EXTERN`_heaptype] -[visit_exp ()] -[check_dims] addrref -[visit_exp [(addrref : addrref <: instr) `EXTERN.CONVERT_ANY`_instr]] -[visit_exp (addrref : addrref <: instr)] -[visit_exp addrref] -[visit_id addrref] -[visit_exp `EXTERN.CONVERT_ANY`_instr] -[visit_exp ()] -[visit_exp [`REF.EXTERN`_instr(addrref)]] -[visit_exp `REF.EXTERN`_instr(addrref)] -[visit_exp (addrref)] -[visit_exp addrref] -[visit_id addrref] not free -[check_dims] ht -[visit_exp [`REF.NULL`_instr(ht) `ANY.CONVERT_EXTERN`_instr]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp `ANY.CONVERT_EXTERN`_instr] -[visit_exp ()] -[visit_exp [`REF.NULL`_instr(`ANY`_heaptype)]] -[visit_exp `REF.NULL`_instr(`ANY`_heaptype)] -[visit_exp (`ANY`_heaptype)] -[visit_exp `ANY`_heaptype] -[visit_exp ()] -[check_dims] addrref -[visit_exp [`REF.EXTERN`_instr(addrref) `ANY.CONVERT_EXTERN`_instr]] -[visit_exp `REF.EXTERN`_instr(addrref)] -[visit_exp (addrref)] -[visit_exp addrref] -[visit_id addrref] -[visit_exp `ANY.CONVERT_EXTERN`_instr] -[visit_exp ()] -[visit_exp [(addrref : addrref <: instr)]] -[visit_exp (addrref : addrref <: instr)] -[visit_exp addrref] -[visit_id addrref] not free -[check_dims] c c_1 nt unop -[visit_exp [`CONST`_instr(nt, c_1) `UNOP`_instr(nt, unop)]] -[visit_exp `CONST`_instr(nt, c_1)] -[visit_exp (nt, c_1)] -[visit_exp nt] -[visit_id nt] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `UNOP`_instr(nt, unop)] -[visit_exp (nt, unop)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp unop] -[visit_id unop] -[visit_exp [`CONST`_instr(nt, c)]] -[visit_exp `CONST`_instr(nt, c)] -[visit_exp (nt, c)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp c] -[visit_id c] -[visit_exp (c <- $unop_(nt, unop, c_1))] -[visit_exp c] -[visit_id c] not free -[visit_exp $unop_(nt, unop, c_1)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp unop] -[visit_id unop] not free -[visit_exp c_1] -[visit_id c_1] not free -[check_dims] c_1 nt unop -[visit_exp [`CONST`_instr(nt, c_1) `UNOP`_instr(nt, unop)]] -[visit_exp `CONST`_instr(nt, c_1)] -[visit_exp (nt, c_1)] -[visit_exp nt] -[visit_id nt] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `UNOP`_instr(nt, unop)] -[visit_exp (nt, unop)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp unop] -[visit_id unop] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ($unop_(nt, unop, c_1) = [])] -[visit_exp $unop_(nt, unop, c_1)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp unop] -[visit_id unop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp []] -[check_dims] binop c c_1 c_2 nt -[visit_exp [`CONST`_instr(nt, c_1) `CONST`_instr(nt, c_2) `BINOP`_instr(nt, binop)]] -[visit_exp `CONST`_instr(nt, c_1)] -[visit_exp (nt, c_1)] -[visit_exp nt] -[visit_id nt] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `CONST`_instr(nt, c_2)] -[visit_exp (nt, c_2)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp c_2] -[visit_id c_2] -[visit_exp `BINOP`_instr(nt, binop)] -[visit_exp (nt, binop)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp binop] -[visit_id binop] -[visit_exp [`CONST`_instr(nt, c)]] -[visit_exp `CONST`_instr(nt, c)] -[visit_exp (nt, c)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp c] -[visit_id c] -[visit_exp (c <- $binop_(nt, binop, c_1, c_2))] -[visit_exp c] -[visit_id c] not free -[visit_exp $binop_(nt, binop, c_1, c_2)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp binop] -[visit_id binop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[check_dims] binop c_1 c_2 nt -[visit_exp [`CONST`_instr(nt, c_1) `CONST`_instr(nt, c_2) `BINOP`_instr(nt, binop)]] -[visit_exp `CONST`_instr(nt, c_1)] -[visit_exp (nt, c_1)] -[visit_exp nt] -[visit_id nt] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `CONST`_instr(nt, c_2)] -[visit_exp (nt, c_2)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp c_2] -[visit_id c_2] -[visit_exp `BINOP`_instr(nt, binop)] -[visit_exp (nt, binop)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp binop] -[visit_id binop] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ($binop_(nt, binop, c_1, c_2) = [])] -[visit_exp $binop_(nt, binop, c_1, c_2)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp binop] -[visit_id binop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_exp []] -[check_dims] c c_1 nt testop -[visit_exp [`CONST`_instr(nt, c_1) `TESTOP`_instr(nt, testop)]] -[visit_exp `CONST`_instr(nt, c_1)] -[visit_exp (nt, c_1)] -[visit_exp nt] -[visit_id nt] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `TESTOP`_instr(nt, testop)] -[visit_exp (nt, testop)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp testop] -[visit_id testop] -[visit_exp [`CONST`_instr(`I32`_numtype, c)]] -[visit_exp `CONST`_instr(`I32`_numtype, c)] -[visit_exp (`I32`_numtype, c)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c = $testop_(nt, testop, c_1))] -[visit_exp c] -[visit_id c] not free -[visit_exp $testop_(nt, testop, c_1)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp testop] -[visit_id testop] not free -[visit_exp c_1] -[visit_id c_1] not free -[check_dims] c c_1 c_2 nt relop -[visit_exp [`CONST`_instr(nt, c_1) `CONST`_instr(nt, c_2) `RELOP`_instr(nt, relop)]] -[visit_exp `CONST`_instr(nt, c_1)] -[visit_exp (nt, c_1)] -[visit_exp nt] -[visit_id nt] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `CONST`_instr(nt, c_2)] -[visit_exp (nt, c_2)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp c_2] -[visit_id c_2] -[visit_exp `RELOP`_instr(nt, relop)] -[visit_exp (nt, relop)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp relop] -[visit_id relop] -[visit_exp [`CONST`_instr(`I32`_numtype, c)]] -[visit_exp `CONST`_instr(`I32`_numtype, c)] -[visit_exp (`I32`_numtype, c)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c = $relop_(nt, relop, c_1, c_2))] -[visit_exp c] -[visit_id c] not free -[visit_exp $relop_(nt, relop, c_1, c_2)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp relop] -[visit_id relop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[check_dims] c c_1 cvtop nt_1 nt_2 -[visit_exp [`CONST`_instr(nt_1, c_1) `CVTOP`_instr(nt_2, nt_1, cvtop)]] -[visit_exp `CONST`_instr(nt_1, c_1)] -[visit_exp (nt_1, c_1)] -[visit_exp nt_1] -[visit_id nt_1] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `CVTOP`_instr(nt_2, nt_1, cvtop)] -[visit_exp (nt_2, nt_1, cvtop)] -[visit_exp nt_2] -[visit_id nt_2] -[visit_exp nt_1] -[visit_id nt_1] not free -[visit_exp cvtop] -[visit_id cvtop] -[visit_exp [`CONST`_instr(nt_2, c)]] -[visit_exp `CONST`_instr(nt_2, c)] -[visit_exp (nt_2, c)] -[visit_exp nt_2] -[visit_id nt_2] not free -[visit_exp c] -[visit_id c] -[visit_exp (c <- $cvtop__(nt_1, nt_2, cvtop, c_1))] -[visit_exp c] -[visit_id c] not free -[visit_exp $cvtop__(nt_1, nt_2, cvtop, c_1)] -[visit_exp nt_1] -[visit_id nt_1] not free -[visit_exp nt_2] -[visit_id nt_2] not free -[visit_exp cvtop] -[visit_id cvtop] not free -[visit_exp c_1] -[visit_id c_1] not free -[check_dims] c_1 cvtop nt_1 nt_2 -[visit_exp [`CONST`_instr(nt_1, c_1) `CVTOP`_instr(nt_2, nt_1, cvtop)]] -[visit_exp `CONST`_instr(nt_1, c_1)] -[visit_exp (nt_1, c_1)] -[visit_exp nt_1] -[visit_id nt_1] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `CVTOP`_instr(nt_2, nt_1, cvtop)] -[visit_exp (nt_2, nt_1, cvtop)] -[visit_exp nt_2] -[visit_id nt_2] -[visit_exp nt_1] -[visit_id nt_1] not free -[visit_exp cvtop] -[visit_id cvtop] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ($cvtop__(nt_1, nt_2, cvtop, c_1) = [])] -[visit_exp $cvtop__(nt_1, nt_2, cvtop, c_1)] -[visit_exp nt_1] -[visit_id nt_1] not free -[visit_exp nt_2] -[visit_id nt_2] not free -[visit_exp cvtop] -[visit_id cvtop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp []] -[check_dims] c c_1 vvunop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VVUNOP`_instr(`V128`_vectype, vvunop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VVUNOP`_instr(`V128`_vectype, vvunop)] -[visit_exp (`V128`_vectype, vvunop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp vvunop] -[visit_id vvunop] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c <- $vvunop_(`V128`_vectype, vvunop, c_1))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vvunop_(`V128`_vectype, vvunop, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp vvunop] -[visit_id vvunop] not free -[visit_exp c_1] -[visit_id c_1] not free -[check_dims] c c_1 c_2 vvbinop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VVBINOP`_instr(`V128`_vectype, vvbinop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] -[visit_exp (`V128`_vectype, c_2)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_2] -[visit_id c_2] -[visit_exp `VVBINOP`_instr(`V128`_vectype, vvbinop)] -[visit_exp (`V128`_vectype, vvbinop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp vvbinop] -[visit_id vvbinop] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c <- $vvbinop_(`V128`_vectype, vvbinop, c_1, c_2))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vvbinop_(`V128`_vectype, vvbinop, c_1, c_2)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp vvbinop] -[visit_id vvbinop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[check_dims] c c_1 c_2 c_3 vvternop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VVTERNOP`_instr(`V128`_vectype, vvternop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] -[visit_exp (`V128`_vectype, c_2)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_2] -[visit_id c_2] -[visit_exp `VCONST`_instr(`V128`_vectype, c_3)] -[visit_exp (`V128`_vectype, c_3)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_3] -[visit_id c_3] -[visit_exp `VVTERNOP`_instr(`V128`_vectype, vvternop)] -[visit_exp (`V128`_vectype, vvternop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp vvternop] -[visit_id vvternop] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c <- $vvternop_(`V128`_vectype, vvternop, c_1, c_2, c_3))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vvternop_(`V128`_vectype, vvternop, c_1, c_2, c_3)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp vvternop] -[visit_id vvternop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_exp c_3] -[visit_id c_3] not free -[check_dims] c c_1 -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop)] -[visit_exp (`V128`_vectype, `ANY_TRUE`_vvtestop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `ANY_TRUE`_vvtestop] -[visit_exp ()] -[visit_exp [`CONST`_instr(`I32`_numtype, c)]] -[visit_exp `CONST`_instr(`I32`_numtype, c)] -[visit_exp (`I32`_numtype, c)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c = $inez_($vsize(`V128`_vectype), c_1))] -[visit_exp c] -[visit_id c] not free -[visit_exp $inez_($vsize(`V128`_vectype), c_1)] -[visit_exp $vsize(`V128`_vectype)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] not free -[check_dims] c c_1 sh vunop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VUNOP`_instr(sh, vunop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VUNOP`_instr(sh, vunop)] -[visit_exp (sh, vunop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vunop] -[visit_id vunop] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c <- $vunop_(sh, vunop, c_1))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vunop_(sh, vunop, c_1)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp vunop] -[visit_id vunop] not free -[visit_exp c_1] -[visit_id c_1] not free -[check_dims] c_1 sh vunop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VUNOP`_instr(sh, vunop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VUNOP`_instr(sh, vunop)] -[visit_exp (sh, vunop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vunop] -[visit_id vunop] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ($vunop_(sh, vunop, c_1) = [])] -[visit_exp $vunop_(sh, vunop, c_1)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp vunop] -[visit_id vunop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp []] -[check_dims] c c_1 c_2 sh vbinop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VBINOP`_instr(sh, vbinop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] -[visit_exp (`V128`_vectype, c_2)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_2] -[visit_id c_2] -[visit_exp `VBINOP`_instr(sh, vbinop)] -[visit_exp (sh, vbinop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vbinop] -[visit_id vbinop] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c <- $vbinop_(sh, vbinop, c_1, c_2))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vbinop_(sh, vbinop, c_1, c_2)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp vbinop] -[visit_id vbinop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[check_dims] c_1 c_2 sh vbinop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VBINOP`_instr(sh, vbinop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] -[visit_exp (`V128`_vectype, c_2)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_2] -[visit_id c_2] -[visit_exp `VBINOP`_instr(sh, vbinop)] -[visit_exp (sh, vbinop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vbinop] -[visit_id vbinop] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ($vbinop_(sh, vbinop, c_1, c_2) = [])] -[visit_exp $vbinop_(sh, vbinop, c_1, c_2)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp vbinop] -[visit_id vbinop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_exp []] -[check_dims] c c_1 c_2 c_3 sh vternop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VTERNOP`_instr(sh, vternop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] -[visit_exp (`V128`_vectype, c_2)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_2] -[visit_id c_2] -[visit_exp `VCONST`_instr(`V128`_vectype, c_3)] -[visit_exp (`V128`_vectype, c_3)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_3] -[visit_id c_3] -[visit_exp `VTERNOP`_instr(sh, vternop)] -[visit_exp (sh, vternop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vternop] -[visit_id vternop] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c <- $vternop_(sh, vternop, c_1, c_2, c_3))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vternop_(sh, vternop, c_1, c_2, c_3)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp vternop] -[visit_id vternop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_exp c_3] -[visit_id c_3] not free -[check_dims] c_1 c_2 c_3 sh vternop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VTERNOP`_instr(sh, vternop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] -[visit_exp (`V128`_vectype, c_2)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_2] -[visit_id c_2] -[visit_exp `VCONST`_instr(`V128`_vectype, c_3)] -[visit_exp (`V128`_vectype, c_3)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_3] -[visit_id c_3] -[visit_exp `VTERNOP`_instr(sh, vternop)] -[visit_exp (sh, vternop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vternop] -[visit_id vternop] -[visit_exp [`TRAP`_instr]] -[visit_exp `TRAP`_instr] -[visit_exp ()] -[visit_exp ($vternop_(sh, vternop, c_1, c_2, c_3) = [])] -[visit_exp $vternop_(sh, vternop, c_1, c_2, c_3)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp vternop] -[visit_id vternop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_exp c_3] -[visit_id c_3] not free -[visit_exp []] -[check_dims] Jnn M c c_1 i -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VTESTOP`_instr(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ALL_TRUE`_vtestop_)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VTESTOP`_instr(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ALL_TRUE`_vtestop_)] -[visit_exp (`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp `ALL_TRUE`_vtestop_] -[visit_exp ()] -[visit_exp [`CONST`_instr(`I32`_numtype, c)]] -[visit_exp `CONST`_instr(`I32`_numtype, c)] -[visit_exp (`I32`_numtype, c)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (i*{i <- `i*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1))] -[visit_exp i*{i <- `i*`}] -[scope_enter i] -[visit_exp i] -[visit_id i] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] no dims -[visit_id i*] -[visit_exp $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)] -[visit_exp `%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp ((Jnn : Jnn <: lanetype), `%`_dim(M))] -[visit_exp (Jnn : Jnn <: lanetype)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp (c!`%`_num_.0 = $prod($inez_($jsizenn(Jnn), i)!`%`_u32.0*{i <- `i*`}))] -[visit_exp c!`%`_num_.0] -[visit_exp c!`%`_num_] -[visit_exp c] -[visit_id c] not free -[visit_exp $prod($inez_($jsizenn(Jnn), i)!`%`_u32.0*{i <- `i*`})] -[visit_exp $inez_($jsizenn(Jnn), i)!`%`_u32.0*{i <- `i*`}] -[scope_enter i] -[visit_exp $inez_($jsizenn(Jnn), i)!`%`_u32.0] -[visit_exp $inez_($jsizenn(Jnn), i)!`%`_u32] -[visit_exp $inez_($jsizenn(Jnn), i)] -[visit_exp $jsizenn(Jnn)] -[visit_exp Jnn] -[visit_id Jnn] not free -[visit_exp i] -[visit_id i] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] not free -[visit_id i*] no dims -[check_dims] c c_1 c_2 sh vrelop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VRELOP`_instr(sh, vrelop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] -[visit_exp (`V128`_vectype, c_2)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_2] -[visit_id c_2] -[visit_exp `VRELOP`_instr(sh, vrelop)] -[visit_exp (sh, vrelop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vrelop] -[visit_id vrelop] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c = $vrelop_(sh, vrelop, c_1, c_2))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vrelop_(sh, vrelop, c_1, c_2)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp vrelop] -[visit_id vrelop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[check_dims] c c_1 i sh vshiftop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `CONST`_instr(`I32`_numtype, i) `VSHIFTOP`_instr(sh, vshiftop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp `VSHIFTOP`_instr(sh, vshiftop)] -[visit_exp (sh, vshiftop)] -[visit_exp sh] -[visit_id sh] -[visit_exp vshiftop] -[visit_id vshiftop] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c = $vshiftop_(sh, vshiftop, c_1, i))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vshiftop_(sh, vshiftop, c_1, i)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp vshiftop] -[visit_id vshiftop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp i] -[visit_id i] not free -[check_dims] c c_1 sh -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VBITMASK`_instr(sh)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VBITMASK`_instr(sh)] -[visit_exp (sh)] -[visit_exp sh] -[visit_id sh] -[visit_exp [`CONST`_instr(`I32`_numtype, c)]] -[visit_exp `CONST`_instr(`I32`_numtype, c)] -[visit_exp (`I32`_numtype, c)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c = $vbitmaskop_(sh, c_1))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vbitmaskop_(sh, c_1)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp c_1] -[visit_id c_1] not free -[check_dims] c c_1 c_2 sh swizzlop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VSWIZZLOP`_instr(sh, swizzlop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] -[visit_exp (`V128`_vectype, c_2)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_2] -[visit_id c_2] -[visit_exp `VSWIZZLOP`_instr(sh, swizzlop)] -[visit_exp (sh, swizzlop)] -[visit_exp sh] -[visit_id sh] -[visit_exp swizzlop] -[visit_id swizzlop] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c = $vswizzlop_(sh, swizzlop, c_1, c_2))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vswizzlop_(sh, swizzlop, c_1, c_2)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp swizzlop] -[visit_id swizzlop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[check_dims] c c_1 c_2 i sh -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VSHUFFLE`_instr(sh, i*{i <- `i*`})]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] -[visit_exp (`V128`_vectype, c_2)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_2] -[visit_id c_2] -[visit_exp `VSHUFFLE`_instr(sh, i*{i <- `i*`})] -[visit_exp (sh, i*{i <- `i*`})] -[visit_exp sh] -[visit_id sh] -[visit_exp i*{i <- `i*`}] -[scope_enter i] -[visit_exp i] -[visit_id i] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] no dims -[visit_id i*] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c = $vshufflop_(sh, i*{i <- `i*`}, c_1, c_2))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vshufflop_(sh, i*{i <- `i*`}, c_1, c_2)] -[visit_exp sh] -[visit_id sh] not free -[visit_exp i*{i <- `i*`}] -[scope_enter i] -[visit_exp i] -[visit_id i] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] not free -[visit_id i*] no dims -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[check_dims] Lnn M c c_1 -[visit_exp [`CONST`_instr($lunpack(Lnn), c_1) `VSPLAT`_instr(`%X%`_shape(Lnn, `%`_dim(M)))]] -[visit_exp `CONST`_instr($lunpack(Lnn), c_1)] -[visit_exp ($lunpack(Lnn), c_1)] -[visit_exp $lunpack(Lnn)] -[visit_exp Lnn] -[visit_id Lnn] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VSPLAT`_instr(`%X%`_shape(Lnn, `%`_dim(M)))] -[visit_exp (`%X%`_shape(Lnn, `%`_dim(M)))] -[visit_exp `%X%`_shape(Lnn, `%`_dim(M))] -[visit_exp (Lnn, `%`_dim(M))] -[visit_exp Lnn] -[visit_id Lnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c = $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lpacknum_(Lnn, c_1)^M{}))] -[visit_exp c] -[visit_id c] not free -[visit_exp $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lpacknum_(Lnn, c_1)^M{})] -[visit_exp `%X%`_shape(Lnn, `%`_dim(M))] -[visit_exp (Lnn, `%`_dim(M))] -[visit_exp Lnn] -[visit_id Lnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp $lpacknum_(Lnn, c_1)^M{}] -[visit_exp $lpacknum_(Lnn, c_1)] -[visit_exp Lnn] -[visit_id Lnn] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp M] -[visit_id M] not free -[check_dims] M c_1 c_2 i nt -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), ?(), i)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), ?(), i)] -[visit_exp (`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), ?(), i)] -[visit_exp `%X%`_shape((nt : numtype <: lanetype), `%`_dim(M))] -[visit_exp ((nt : numtype <: lanetype), `%`_dim(M))] -[visit_exp (nt : numtype <: lanetype)] -[visit_exp nt] -[visit_id nt] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp ?()] -[visit_exp i] -[visit_id i] -[visit_exp [`CONST`_instr(nt, c_2)]] -[visit_exp `CONST`_instr(nt, c_2)] -[visit_exp (nt, c_2)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp c_2] -[visit_id c_2] -[visit_exp (c_2 = $lanes_(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0])] -[visit_exp c_2] -[visit_id c_2] not free -[visit_exp $lanes_(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0]] -[visit_exp $lanes_(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), c_1)] -[visit_exp `%X%`_shape((nt : numtype <: lanetype), `%`_dim(M))] -[visit_exp ((nt : numtype <: lanetype), `%`_dim(M))] -[visit_exp (nt : numtype <: lanetype)] -[visit_exp nt] -[visit_id nt] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp i!`%`_laneidx.0] -[visit_exp i!`%`_laneidx] -[visit_exp i] -[visit_id i] not free -[check_dims] M c_1 c_2 i pt sx -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), ?(sx), i)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), ?(sx), i)] -[visit_exp (`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), ?(sx), i)] -[visit_exp `%X%`_shape((pt : packtype <: lanetype), `%`_dim(M))] -[visit_exp ((pt : packtype <: lanetype), `%`_dim(M))] -[visit_exp (pt : packtype <: lanetype)] -[visit_exp pt] -[visit_id pt] -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp ?(sx)] -[visit_exp sx] -[visit_id sx] -[visit_exp i] -[visit_id i] -[visit_exp [`CONST`_instr(`I32`_numtype, c_2)]] -[visit_exp `CONST`_instr(`I32`_numtype, c_2)] -[visit_exp (`I32`_numtype, c_2)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp c_2] -[visit_id c_2] -[visit_exp (c_2 = $extend__($psize(pt), 32, sx, $lanes_(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0]))] -[visit_exp c_2] -[visit_id c_2] not free -[visit_exp $extend__($psize(pt), 32, sx, $lanes_(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0])] -[visit_exp $psize(pt)] -[visit_exp pt] -[visit_id pt] not free -[visit_exp 32] -[visit_exp sx] -[visit_id sx] not free -[visit_exp $lanes_(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0]] -[visit_exp $lanes_(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), c_1)] -[visit_exp `%X%`_shape((pt : packtype <: lanetype), `%`_dim(M))] -[visit_exp ((pt : packtype <: lanetype), `%`_dim(M))] -[visit_exp (pt : packtype <: lanetype)] -[visit_exp pt] -[visit_id pt] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp i!`%`_laneidx.0] -[visit_exp i!`%`_laneidx] -[visit_exp i] -[visit_id i] not free -[check_dims] Lnn M c c_1 c_2 i -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `CONST`_instr($lunpack(Lnn), c_2) `VREPLACE_LANE`_instr(`%X%`_shape(Lnn, `%`_dim(M)), i)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `CONST`_instr($lunpack(Lnn), c_2)] -[visit_exp ($lunpack(Lnn), c_2)] -[visit_exp $lunpack(Lnn)] -[visit_exp Lnn] -[visit_id Lnn] -[visit_exp c_2] -[visit_id c_2] -[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(Lnn, `%`_dim(M)), i)] -[visit_exp (`%X%`_shape(Lnn, `%`_dim(M)), i)] -[visit_exp `%X%`_shape(Lnn, `%`_dim(M))] -[visit_exp (Lnn, `%`_dim(M))] -[visit_exp Lnn] -[visit_id Lnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] -[visit_exp i] -[visit_id i] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c = $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lanes_(`%X%`_shape(Lnn, `%`_dim(M)), c_1)[[i!`%`_laneidx.0] = $lpacknum_(Lnn, c_2)]))] -[visit_exp c] -[visit_id c] not free -[visit_exp $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lanes_(`%X%`_shape(Lnn, `%`_dim(M)), c_1)[[i!`%`_laneidx.0] = $lpacknum_(Lnn, c_2)])] -[visit_exp `%X%`_shape(Lnn, `%`_dim(M))] -[visit_exp (Lnn, `%`_dim(M))] -[visit_exp Lnn] -[visit_id Lnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp $lanes_(`%X%`_shape(Lnn, `%`_dim(M)), c_1)[[i!`%`_laneidx.0] = $lpacknum_(Lnn, c_2)]] -[visit_exp $lanes_(`%X%`_shape(Lnn, `%`_dim(M)), c_1)] -[visit_exp `%X%`_shape(Lnn, `%`_dim(M))] -[visit_exp (Lnn, `%`_dim(M))] -[visit_exp Lnn] -[visit_id Lnn] not free -[visit_exp `%`_dim(M)] -[visit_exp (M)] -[visit_exp M] -[visit_id M] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp i!`%`_laneidx.0] -[visit_exp i!`%`_laneidx] -[visit_exp i] -[visit_id i] not free -[visit_exp $lpacknum_(Lnn, c_2)] -[visit_exp Lnn] -[visit_id Lnn] not free -[visit_exp c_2] -[visit_id c_2] not free -[check_dims] c c_1 sh_1 sh_2 vextunop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VEXTUNOP`_instr(sh_2, sh_1, vextunop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VEXTUNOP`_instr(sh_2, sh_1, vextunop)] -[visit_exp (sh_2, sh_1, vextunop)] -[visit_exp sh_2] -[visit_id sh_2] -[visit_exp sh_1] -[visit_id sh_1] -[visit_exp vextunop] -[visit_id vextunop] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp ($vextunop__(sh_1, sh_2, vextunop, c_1) = c)] -[visit_exp $vextunop__(sh_1, sh_2, vextunop, c_1)] -[visit_exp sh_1] -[visit_id sh_1] not free -[visit_exp sh_2] -[visit_id sh_2] not free -[visit_exp vextunop] -[visit_id vextunop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c] -[visit_id c] not free -[check_dims] c c_1 c_2 sh_1 sh_2 vextbinop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VEXTBINOP`_instr(sh_2, sh_1, vextbinop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] -[visit_exp (`V128`_vectype, c_2)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_2] -[visit_id c_2] -[visit_exp `VEXTBINOP`_instr(sh_2, sh_1, vextbinop)] -[visit_exp (sh_2, sh_1, vextbinop)] -[visit_exp sh_2] -[visit_id sh_2] -[visit_exp sh_1] -[visit_id sh_1] -[visit_exp vextbinop] -[visit_id vextbinop] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp ($vextbinop__(sh_1, sh_2, vextbinop, c_1, c_2) = c)] -[visit_exp $vextbinop__(sh_1, sh_2, vextbinop, c_1, c_2)] -[visit_exp sh_1] -[visit_id sh_1] not free -[visit_exp sh_2] -[visit_id sh_2] not free -[visit_exp vextbinop] -[visit_id vextbinop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_exp c] -[visit_id c] not free -[check_dims] c c_1 c_2 c_3 sh_1 sh_2 vextternop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VEXTTERNOP`_instr(sh_2, sh_1, vextternop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] -[visit_exp (`V128`_vectype, c_2)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_2] -[visit_id c_2] -[visit_exp `VCONST`_instr(`V128`_vectype, c_3)] -[visit_exp (`V128`_vectype, c_3)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_3] -[visit_id c_3] -[visit_exp `VEXTTERNOP`_instr(sh_2, sh_1, vextternop)] -[visit_exp (sh_2, sh_1, vextternop)] -[visit_exp sh_2] -[visit_id sh_2] -[visit_exp sh_1] -[visit_id sh_1] -[visit_exp vextternop] -[visit_id vextternop] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp ($vextternop__(sh_1, sh_2, vextternop, c_1, c_2, c_3) = c)] -[visit_exp $vextternop__(sh_1, sh_2, vextternop, c_1, c_2, c_3)] -[visit_exp sh_1] -[visit_id sh_1] not free -[visit_exp sh_2] -[visit_id sh_2] not free -[visit_exp vextternop] -[visit_id vextternop] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[visit_exp c_3] -[visit_id c_3] not free -[visit_exp c] -[visit_id c] not free -[check_dims] c c_1 c_2 sh_1 sh_2 sx -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VNARROW`_instr(sh_2, sh_1, sx)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VCONST`_instr(`V128`_vectype, c_2)] -[visit_exp (`V128`_vectype, c_2)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_2] -[visit_id c_2] -[visit_exp `VNARROW`_instr(sh_2, sh_1, sx)] -[visit_exp (sh_2, sh_1, sx)] -[visit_exp sh_2] -[visit_id sh_2] -[visit_exp sh_1] -[visit_id sh_1] -[visit_exp sx] -[visit_id sx] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c = $vnarrowop__(sh_1!`%`_ishape.0, sh_2!`%`_ishape.0, sx, c_1, c_2))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vnarrowop__(sh_1!`%`_ishape.0, sh_2!`%`_ishape.0, sx, c_1, c_2)] -[visit_exp sh_1!`%`_ishape.0] -[visit_exp sh_1!`%`_ishape] -[visit_exp sh_1] -[visit_id sh_1] not free -[visit_exp sh_2!`%`_ishape.0] -[visit_exp sh_2!`%`_ishape] -[visit_exp sh_2] -[visit_id sh_2] not free -[visit_exp sx] -[visit_id sx] not free -[visit_exp c_1] -[visit_id c_1] not free -[visit_exp c_2] -[visit_id c_2] not free -[check_dims] c c_1 sh_1 sh_2 vcvtop -[visit_exp [`VCONST`_instr(`V128`_vectype, c_1) `VCVTOP`_instr(sh_2, sh_1, vcvtop)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c_1)] -[visit_exp (`V128`_vectype, c_1)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c_1] -[visit_id c_1] -[visit_exp `VCVTOP`_instr(sh_2, sh_1, vcvtop)] -[visit_exp (sh_2, sh_1, vcvtop)] -[visit_exp sh_2] -[visit_id sh_2] -[visit_exp sh_1] -[visit_id sh_1] -[visit_exp vcvtop] -[visit_id vcvtop] -[visit_exp [`VCONST`_instr(`V128`_vectype, c)]] -[visit_exp `VCONST`_instr(`V128`_vectype, c)] -[visit_exp (`V128`_vectype, c)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp (c = $vcvtop__(sh_1, sh_2, vcvtop, c_1))] -[visit_exp c] -[visit_id c] not free -[visit_exp $vcvtop__(sh_1, sh_2, vcvtop, c_1)] -[visit_exp sh_1] -[visit_id sh_1] not free -[visit_exp sh_2] -[visit_id sh_2] not free -[visit_exp vcvtop] -[visit_id vcvtop] not free -[visit_exp c_1] -[visit_id c_1] not free -[check_dims] -[check_dims] instr val z z' -[visit_exp z] -[visit_id z] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp z'] -[visit_id z'] -[visit_exp val*{val <- `val*`}] -[scope_enter val] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp (`%;%`_config(z, instr*{instr <- `instr*`}), `%;%`_config(z', (val : val <: instr)*{val <- `val*`}))] -[visit_exp `%;%`_config(z, instr*{instr <- `instr*`})] -[visit_exp (z, instr*{instr <- `instr*`})] -[visit_exp z] -[visit_id z] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp `%;%`_config(z', (val : val <: instr)*{val <- `val*`})] -[visit_exp (z', (val : val <: instr)*{val <- `val*`})] -[visit_exp z'] -[visit_id z'] not free -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[check_dims] _ -DecD alloctypes(type*) : deftype* -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctypes([]) = [] -[check_dims] deftype deftype' rectype type type' x -[visit_exp type'*{type' <- `type'*`} ++ [type]] -[visit_exp type'*{type' <- `type'*`}] -[scope_enter type'] -[visit_exp type'] -[visit_id type'] not free -[visit_id type'] not free -[scope_exit type'] -[visit_exp `type'*`] -[visit_id type'*] no dims -[visit_id type'*] -[visit_exp [type]] -[visit_exp type] -[visit_id type] -[visit_exp deftype'*{deftype' <- `deftype'*`} ++ deftype*{deftype <- `deftype*`}] -[visit_exp deftype'*{deftype' <- `deftype'*`}] -[scope_enter deftype'] -[visit_exp deftype'] -[visit_id deftype'] not free -[visit_id deftype'] not free -[scope_exit deftype'] -[visit_exp `deftype'*`] -[visit_id deftype'*] no dims -[visit_id deftype'*] -[visit_exp deftype*{deftype <- `deftype*`}] -[scope_enter deftype] -[visit_exp deftype] -[visit_id deftype] not free -[visit_id deftype] not free -[scope_exit deftype] -[visit_exp `deftype*`] -[visit_id deftype*] no dims -[visit_id deftype*] -[visit_exp (deftype'*{deftype' <- `deftype'*`} = $alloctypes(type'*{type' <- `type'*`}))] -[visit_exp deftype'*{deftype' <- `deftype'*`}] -[scope_enter deftype'] -[visit_exp deftype'] -[visit_id deftype'] not free -[visit_id deftype'] not free -[scope_exit deftype'] -[visit_exp `deftype'*`] -[visit_id deftype'*] not free -[visit_id deftype'*] no dims -[visit_exp $alloctypes(type'*{type' <- `type'*`})] -[visit_exp type'*{type' <- `type'*`}] -[scope_enter type'] -[visit_exp type'] -[visit_id type'] not free -[visit_id type'] not free -[scope_exit type'] -[visit_exp `type'*`] -[visit_id type'*] not free -[visit_id type'*] no dims -[visit_exp (type = `TYPE`_type(rectype))] -[visit_exp type] -[visit_id type] not free -[visit_exp `TYPE`_type(rectype)] -[visit_exp (rectype)] -[visit_exp rectype] -[visit_id rectype] -[visit_exp (deftype*{deftype <- `deftype*`} = $subst_all_deftypes($rolldt(x, rectype), (deftype' : deftype <: typeuse)*{deftype' <- `deftype'*`}))] -[visit_exp deftype*{deftype <- `deftype*`}] -[scope_enter deftype] -[visit_exp deftype] -[visit_id deftype] not free -[visit_id deftype] not free -[scope_exit deftype] -[visit_exp `deftype*`] -[visit_id deftype*] not free -[visit_id deftype*] no dims -[visit_exp $subst_all_deftypes($rolldt(x, rectype), (deftype' : deftype <: typeuse)*{deftype' <- `deftype'*`})] -[visit_exp $rolldt(x, rectype)] -[visit_exp x] -[visit_id x] -[visit_exp rectype] -[visit_id rectype] not free -[visit_exp (deftype' : deftype <: typeuse)*{deftype' <- `deftype'*`}] -[scope_enter deftype'] -[visit_exp (deftype' : deftype <: typeuse)] -[visit_exp deftype'] -[visit_id deftype'] not free -[visit_id deftype'] not free -[scope_exit deftype'] -[visit_exp `deftype'*`] -[visit_id deftype'*] not free -[visit_id deftype'*] no dims -[visit_exp (x!`%`_idx.0 = |deftype'*{deftype' <- `deftype'*`}|)] -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp |deftype'*{deftype' <- `deftype'*`}|] -[visit_exp deftype'*{deftype' <- `deftype'*`}] -[scope_enter deftype'] -[visit_exp deftype'] -[visit_id deftype'] not free -[visit_id deftype'] not free -[scope_exit deftype'] -[visit_exp `deftype'*`] -[visit_id deftype'*] not free -[visit_id deftype'*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctypes{`type'*` : type*, type : type, `deftype'*` : deftype*, `deftype*` : deftype*, rectype : rectype, x : idx}(type'*{type' <- `type'*`} ++ [type]) = deftype'*{deftype' <- `deftype'*`} ++ deftype*{deftype <- `deftype*`} - -- if (deftype'*{deftype' <- `deftype'*`} = $alloctypes(type'*{type' <- `type'*`})) - -- if (type = `TYPE`_type(rectype)) - -- if (deftype*{deftype <- `deftype*`} = $subst_all_deftypes($rolldt(x, rectype), (deftype' : deftype <: typeuse)*{deftype' <- `deftype'*`})) - -- if (x!`%`_idx.0 = |deftype'*{deftype' <- `deftype'*`}|) -[check_dims] _ store tagtype -DecD alloctag(store : store, tagtype : tagtype) : (store, tagaddr) -[visit_id store] not free -[visit_id tagtype] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] s taginst tagtype -[visit_exp s] -[visit_id s] -[visit_exp tagtype] -[visit_id tagtype] -[visit_exp (s +++ {`TAGS` [taginst], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`TAGS`_store|)] -[visit_exp s +++ {`TAGS` [taginst], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp s] -[visit_id s] not free -[visit_exp {`TAGS` [taginst], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp [taginst]] -[visit_exp taginst] -[visit_id taginst] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp |s.`TAGS`_store|] -[visit_exp s.`TAGS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp (taginst = {`TYPE` tagtype})] -[visit_exp taginst] -[visit_id taginst] not free -[visit_exp {`TYPE` tagtype}] -[visit_exp tagtype] -[visit_id tagtype] not free -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctag{s : store, tagtype : tagtype, taginst : taginst}(s, tagtype) = (s +++ {`TAGS` [taginst], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`TAGS`_store|) - -- if (taginst = {`TYPE` tagtype}) -[check_dims] _ store -DecD alloctags(store : store, tagtype*) : (store, tagaddr*) -[visit_id store] not free -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] s -[visit_exp s] -[visit_id s] -[visit_exp []] -[visit_exp (s, [])] -[visit_exp s] -[visit_id s] not free -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctags{s : store}(s, []) = (s, []) -[check_dims] ja ja' s s_1 s_2 tagtype tagtype' -[visit_exp s] -[visit_id s] -[visit_exp [tagtype] ++ tagtype'*{tagtype' <- `tagtype'*`}] -[visit_exp [tagtype]] -[visit_exp tagtype] -[visit_id tagtype] -[visit_exp tagtype'*{tagtype' <- `tagtype'*`}] -[scope_enter tagtype'] -[visit_exp tagtype'] -[visit_id tagtype'] not free -[visit_id tagtype'] not free -[scope_exit tagtype'] -[visit_exp `tagtype'*`] -[visit_id tagtype'*] no dims -[visit_id tagtype'*] -[visit_exp (s_2, [ja] ++ ja'*{ja' <- `ja'*`})] -[visit_exp s_2] -[visit_id s_2] -[visit_exp [ja] ++ ja'*{ja' <- `ja'*`}] -[visit_exp [ja]] -[visit_exp ja] -[visit_id ja] -[visit_exp ja'*{ja' <- `ja'*`}] -[scope_enter ja'] -[visit_exp ja'] -[visit_id ja'] not free -[visit_id ja'] not free -[scope_exit ja'] -[visit_exp `ja'*`] -[visit_id ja'*] no dims -[visit_id ja'*] -[visit_exp ((s_1, ja) = $alloctag(s, tagtype))] -[visit_exp (s_1, ja)] -[visit_exp s_1] -[visit_id s_1] -[visit_exp ja] -[visit_id ja] not free -[visit_exp $alloctag(s, tagtype)] -[visit_exp s] -[visit_id s] not free -[visit_exp tagtype] -[visit_id tagtype] not free -[visit_exp ((s_2, ja'*{ja' <- `ja'*`}) = $alloctags(s_1, tagtype'*{tagtype' <- `tagtype'*`}))] -[visit_exp (s_2, ja'*{ja' <- `ja'*`})] -[visit_exp s_2] -[visit_id s_2] not free -[visit_exp ja'*{ja' <- `ja'*`}] -[scope_enter ja'] -[visit_exp ja'] -[visit_id ja'] not free -[visit_id ja'] not free -[scope_exit ja'] -[visit_exp `ja'*`] -[visit_id ja'*] not free -[visit_id ja'*] no dims -[visit_exp $alloctags(s_1, tagtype'*{tagtype' <- `tagtype'*`})] -[visit_exp s_1] -[visit_id s_1] not free -[visit_exp tagtype'*{tagtype' <- `tagtype'*`}] -[scope_enter tagtype'] -[visit_exp tagtype'] -[visit_id tagtype'] not free -[visit_id tagtype'] not free -[scope_exit tagtype'] -[visit_exp `tagtype'*`] -[visit_id tagtype'*] not free -[visit_id tagtype'*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctags{s : store, tagtype : tagtype, `tagtype'*` : tagtype*, s_2 : store, ja : tagaddr, `ja'*` : tagaddr*, s_1 : store}(s, [tagtype] ++ tagtype'*{tagtype' <- `tagtype'*`}) = (s_2, [ja] ++ ja'*{ja' <- `ja'*`}) - -- if ((s_1, ja) = $alloctag(s, tagtype)) - -- if ((s_2, ja'*{ja' <- `ja'*`}) = $alloctags(s_1, tagtype'*{tagtype' <- `tagtype'*`})) -[check_dims] _ globaltype store val -DecD allocglobal(store : store, globaltype : globaltype, val : val) : (store, globaladdr) -[visit_id store] not free -[visit_id globaltype] not free -[visit_id val] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] globalinst globaltype s val -[visit_exp s] -[visit_id s] -[visit_exp globaltype] -[visit_id globaltype] -[visit_exp val] -[visit_id val] -[visit_exp (s +++ {`TAGS` [], `GLOBALS` [globalinst], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`GLOBALS`_store|)] -[visit_exp s +++ {`TAGS` [], `GLOBALS` [globalinst], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp s] -[visit_id s] not free -[visit_exp {`TAGS` [], `GLOBALS` [globalinst], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp []] -[visit_exp [globalinst]] -[visit_exp globalinst] -[visit_id globalinst] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp |s.`GLOBALS`_store|] -[visit_exp s.`GLOBALS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp (globalinst = {`TYPE` globaltype, `VALUE` val})] -[visit_exp globalinst] -[visit_id globalinst] not free -[visit_exp {`TYPE` globaltype, `VALUE` val}] -[visit_exp globaltype] -[visit_id globaltype] not free -[visit_exp val] -[visit_id val] not free -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocglobal{s : store, globaltype : globaltype, val : val, globalinst : globalinst}(s, globaltype, val) = (s +++ {`TAGS` [], `GLOBALS` [globalinst], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`GLOBALS`_store|) - -- if (globalinst = {`TYPE` globaltype, `VALUE` val}) -[check_dims] _ store -DecD allocglobals(store : store, globaltype*, val*) : (store, globaladdr*) -[visit_id store] not free -[visit_id _] not free -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] s -[visit_exp s] -[visit_id s] -[visit_exp []] -[visit_exp []] -[visit_exp (s, [])] -[visit_exp s] -[visit_id s] not free -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocglobals{s : store}(s, [], []) = (s, []) -[check_dims] ga ga' globaltype globaltype' s s_1 s_2 val val' -[visit_exp s] -[visit_id s] -[visit_exp [globaltype] ++ globaltype'*{globaltype' <- `globaltype'*`}] -[visit_exp [globaltype]] -[visit_exp globaltype] -[visit_id globaltype] -[visit_exp globaltype'*{globaltype' <- `globaltype'*`}] -[scope_enter globaltype'] -[visit_exp globaltype'] -[visit_id globaltype'] not free -[visit_id globaltype'] not free -[scope_exit globaltype'] -[visit_exp `globaltype'*`] -[visit_id globaltype'*] no dims -[visit_id globaltype'*] -[visit_exp [val] ++ val'*{val' <- `val'*`}] -[visit_exp [val]] -[visit_exp val] -[visit_id val] -[visit_exp val'*{val' <- `val'*`}] -[scope_enter val'] -[visit_exp val'] -[visit_id val'] not free -[visit_id val'] not free -[scope_exit val'] -[visit_exp `val'*`] -[visit_id val'*] no dims -[visit_id val'*] -[visit_exp (s_2, [ga] ++ ga'*{ga' <- `ga'*`})] -[visit_exp s_2] -[visit_id s_2] -[visit_exp [ga] ++ ga'*{ga' <- `ga'*`}] -[visit_exp [ga]] -[visit_exp ga] -[visit_id ga] -[visit_exp ga'*{ga' <- `ga'*`}] -[scope_enter ga'] -[visit_exp ga'] -[visit_id ga'] not free -[visit_id ga'] not free -[scope_exit ga'] -[visit_exp `ga'*`] -[visit_id ga'*] no dims -[visit_id ga'*] -[visit_exp ((s_1, ga) = $allocglobal(s, globaltype, val))] -[visit_exp (s_1, ga)] -[visit_exp s_1] -[visit_id s_1] -[visit_exp ga] -[visit_id ga] not free -[visit_exp $allocglobal(s, globaltype, val)] -[visit_exp s] -[visit_id s] not free -[visit_exp globaltype] -[visit_id globaltype] not free -[visit_exp val] -[visit_id val] not free -[visit_exp ((s_2, ga'*{ga' <- `ga'*`}) = $allocglobals(s_1, globaltype'*{globaltype' <- `globaltype'*`}, val'*{val' <- `val'*`}))] -[visit_exp (s_2, ga'*{ga' <- `ga'*`})] -[visit_exp s_2] -[visit_id s_2] not free -[visit_exp ga'*{ga' <- `ga'*`}] -[scope_enter ga'] -[visit_exp ga'] -[visit_id ga'] not free -[visit_id ga'] not free -[scope_exit ga'] -[visit_exp `ga'*`] -[visit_id ga'*] not free -[visit_id ga'*] no dims -[visit_exp $allocglobals(s_1, globaltype'*{globaltype' <- `globaltype'*`}, val'*{val' <- `val'*`})] -[visit_exp s_1] -[visit_id s_1] not free -[visit_exp globaltype'*{globaltype' <- `globaltype'*`}] -[scope_enter globaltype'] -[visit_exp globaltype'] -[visit_id globaltype'] not free -[visit_id globaltype'] not free -[scope_exit globaltype'] -[visit_exp `globaltype'*`] -[visit_id globaltype'*] not free -[visit_id globaltype'*] no dims -[visit_exp val'*{val' <- `val'*`}] -[scope_enter val'] -[visit_exp val'] -[visit_id val'] not free -[visit_id val'] not free -[scope_exit val'] -[visit_exp `val'*`] -[visit_id val'*] not free -[visit_id val'*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocglobals{s : store, globaltype : globaltype, `globaltype'*` : globaltype*, val : val, `val'*` : val*, s_2 : store, ga : globaladdr, `ga'*` : globaladdr*, s_1 : store}(s, [globaltype] ++ globaltype'*{globaltype' <- `globaltype'*`}, [val] ++ val'*{val' <- `val'*`}) = (s_2, [ga] ++ ga'*{ga' <- `ga'*`}) - -- if ((s_1, ga) = $allocglobal(s, globaltype, val)) - -- if ((s_2, ga'*{ga' <- `ga'*`}) = $allocglobals(s_1, globaltype'*{globaltype' <- `globaltype'*`}, val'*{val' <- `val'*`})) -[check_dims] _ memtype store -DecD allocmem(store : store, memtype : memtype) : (store, memaddr) -[visit_id store] not free -[visit_id memtype] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] at i j meminst s -[visit_exp s] -[visit_id s] -[visit_exp `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`}))] -[visit_exp (at, `[%..%]`_limits(i, j?{j <- `j?`}))] -[visit_exp at] -[visit_id at] -[visit_exp `[%..%]`_limits(i, j?{j <- `j?`})] -[visit_exp (i, j?{j <- `j?`})] -[visit_exp i] -[visit_id i] -[visit_exp j?{j <- `j?`}] -[scope_enter j] -[visit_exp j] -[visit_id j] not free -[visit_id j] not free -[scope_exit j] -[visit_exp `j?`] -[visit_id j?] no dims -[visit_id j?] -[visit_exp (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [meminst], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`MEMS`_store|)] -[visit_exp s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [meminst], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp s] -[visit_id s] not free -[visit_exp {`TAGS` [], `GLOBALS` [], `MEMS` [meminst], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp [meminst]] -[visit_exp meminst] -[visit_id meminst] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp |s.`MEMS`_store|] -[visit_exp s.`MEMS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp (meminst = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` `%`_byte(0)^(i!`%`_u64.0 * (64 * $Ki)){}})] -[visit_exp meminst] -[visit_id meminst] not free -[visit_exp {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` `%`_byte(0)^(i!`%`_u64.0 * (64 * $Ki)){}}] -[visit_exp `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`}))] -[visit_exp (at, `[%..%]`_limits(i, j?{j <- `j?`}))] -[visit_exp at] -[visit_id at] not free -[visit_exp `[%..%]`_limits(i, j?{j <- `j?`})] -[visit_exp (i, j?{j <- `j?`})] -[visit_exp i] -[visit_id i] not free -[visit_exp j?{j <- `j?`}] -[scope_enter j] -[visit_exp j] -[visit_id j] not free -[visit_id j] not free -[scope_exit j] -[visit_exp `j?`] -[visit_id j?] not free -[visit_id j?] no dims -[visit_exp `%`_byte(0)^(i!`%`_u64.0 * (64 * $Ki)){}] -[visit_exp `%`_byte(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp (i!`%`_u64.0 * (64 * $Ki))] -[visit_exp i!`%`_u64.0] -[visit_exp i!`%`_u64] -[visit_exp i] -[visit_id i] not free -[visit_exp (64 * $Ki)] -[visit_exp 64] -[visit_exp $Ki] -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocmem{s : store, at : addrtype, i : u64, `j?` : u64?, meminst : meminst}(s, `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`}))) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [meminst], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`MEMS`_store|) - -- if (meminst = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` `%`_byte(0)^(i!`%`_u64.0 * (64 * $Ki)){}}) -[check_dims] _ store -DecD allocmems(store : store, memtype*) : (store, memaddr*) -[visit_id store] not free -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] s -[visit_exp s] -[visit_id s] -[visit_exp []] -[visit_exp (s, [])] -[visit_exp s] -[visit_id s] not free -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocmems{s : store}(s, []) = (s, []) -[check_dims] ma ma' memtype memtype' s s_1 s_2 -[visit_exp s] -[visit_id s] -[visit_exp [memtype] ++ memtype'*{memtype' <- `memtype'*`}] -[visit_exp [memtype]] -[visit_exp memtype] -[visit_id memtype] -[visit_exp memtype'*{memtype' <- `memtype'*`}] -[scope_enter memtype'] -[visit_exp memtype'] -[visit_id memtype'] not free -[visit_id memtype'] not free -[scope_exit memtype'] -[visit_exp `memtype'*`] -[visit_id memtype'*] no dims -[visit_id memtype'*] -[visit_exp (s_2, [ma] ++ ma'*{ma' <- `ma'*`})] -[visit_exp s_2] -[visit_id s_2] -[visit_exp [ma] ++ ma'*{ma' <- `ma'*`}] -[visit_exp [ma]] -[visit_exp ma] -[visit_id ma] -[visit_exp ma'*{ma' <- `ma'*`}] -[scope_enter ma'] -[visit_exp ma'] -[visit_id ma'] not free -[visit_id ma'] not free -[scope_exit ma'] -[visit_exp `ma'*`] -[visit_id ma'*] no dims -[visit_id ma'*] -[visit_exp ((s_1, ma) = $allocmem(s, memtype))] -[visit_exp (s_1, ma)] -[visit_exp s_1] -[visit_id s_1] -[visit_exp ma] -[visit_id ma] not free -[visit_exp $allocmem(s, memtype)] -[visit_exp s] -[visit_id s] not free -[visit_exp memtype] -[visit_id memtype] not free -[visit_exp ((s_2, ma'*{ma' <- `ma'*`}) = $allocmems(s_1, memtype'*{memtype' <- `memtype'*`}))] -[visit_exp (s_2, ma'*{ma' <- `ma'*`})] -[visit_exp s_2] -[visit_id s_2] not free -[visit_exp ma'*{ma' <- `ma'*`}] -[scope_enter ma'] -[visit_exp ma'] -[visit_id ma'] not free -[visit_id ma'] not free -[scope_exit ma'] -[visit_exp `ma'*`] -[visit_id ma'*] not free -[visit_id ma'*] no dims -[visit_exp $allocmems(s_1, memtype'*{memtype' <- `memtype'*`})] -[visit_exp s_1] -[visit_id s_1] not free -[visit_exp memtype'*{memtype' <- `memtype'*`}] -[scope_enter memtype'] -[visit_exp memtype'] -[visit_id memtype'] not free -[visit_id memtype'] not free -[scope_exit memtype'] -[visit_exp `memtype'*`] -[visit_id memtype'*] not free -[visit_id memtype'*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocmems{s : store, memtype : memtype, `memtype'*` : memtype*, s_2 : store, ma : memaddr, `ma'*` : memaddr*, s_1 : store}(s, [memtype] ++ memtype'*{memtype' <- `memtype'*`}) = (s_2, [ma] ++ ma'*{ma' <- `ma'*`}) - -- if ((s_1, ma) = $allocmem(s, memtype)) - -- if ((s_2, ma'*{ma' <- `ma'*`}) = $allocmems(s_1, memtype'*{memtype' <- `memtype'*`})) -[check_dims] _ ref store tabletype -DecD alloctable(store : store, tabletype : tabletype, ref : ref) : (store, tableaddr) -[visit_id store] not free -[visit_id tabletype] not free -[visit_id ref] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] at i j ref rt s tableinst -[visit_exp s] -[visit_id s] -[visit_exp `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt)] -[visit_exp (at, `[%..%]`_limits(i, j?{j <- `j?`}), rt)] -[visit_exp at] -[visit_id at] -[visit_exp `[%..%]`_limits(i, j?{j <- `j?`})] -[visit_exp (i, j?{j <- `j?`})] -[visit_exp i] -[visit_id i] -[visit_exp j?{j <- `j?`}] -[scope_enter j] -[visit_exp j] -[visit_id j] not free -[visit_id j] not free -[scope_exit j] -[visit_exp `j?`] -[visit_id j?] no dims -[visit_id j?] -[visit_exp rt] -[visit_id rt] -[visit_exp ref] -[visit_id ref] -[visit_exp (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [tableinst], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`TABLES`_store|)] -[visit_exp s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [tableinst], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp s] -[visit_id s] not free -[visit_exp {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [tableinst], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [tableinst]] -[visit_exp tableinst] -[visit_id tableinst] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp |s.`TABLES`_store|] -[visit_exp s.`TABLES`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp (tableinst = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` ref^i!`%`_u64.0{}})] -[visit_exp tableinst] -[visit_id tableinst] not free -[visit_exp {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` ref^i!`%`_u64.0{}}] -[visit_exp `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt)] -[visit_exp (at, `[%..%]`_limits(i, j?{j <- `j?`}), rt)] -[visit_exp at] -[visit_id at] not free -[visit_exp `[%..%]`_limits(i, j?{j <- `j?`})] -[visit_exp (i, j?{j <- `j?`})] -[visit_exp i] -[visit_id i] not free -[visit_exp j?{j <- `j?`}] -[scope_enter j] -[visit_exp j] -[visit_id j] not free -[visit_id j] not free -[scope_exit j] -[visit_exp `j?`] -[visit_id j?] not free -[visit_id j?] no dims -[visit_exp rt] -[visit_id rt] not free -[visit_exp ref^i!`%`_u64.0{}] -[visit_exp ref] -[visit_id ref] not free -[visit_exp i!`%`_u64.0] -[visit_exp i!`%`_u64] -[visit_exp i] -[visit_id i] not free -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctable{s : store, at : addrtype, i : u64, `j?` : u64?, rt : reftype, ref : ref, tableinst : tableinst}(s, `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), ref) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [tableinst], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`TABLES`_store|) - -- if (tableinst = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` ref^i!`%`_u64.0{}}) -[check_dims] _ store -DecD alloctables(store : store, tabletype*, ref*) : (store, tableaddr*) -[visit_id store] not free -[visit_id _] not free -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] s -[visit_exp s] -[visit_id s] -[visit_exp []] -[visit_exp []] -[visit_exp (s, [])] -[visit_exp s] -[visit_id s] not free -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctables{s : store}(s, [], []) = (s, []) -[check_dims] ref ref' s s_1 s_2 ta ta' tabletype tabletype' -[visit_exp s] -[visit_id s] -[visit_exp [tabletype] ++ tabletype'*{tabletype' <- `tabletype'*`}] -[visit_exp [tabletype]] -[visit_exp tabletype] -[visit_id tabletype] -[visit_exp tabletype'*{tabletype' <- `tabletype'*`}] -[scope_enter tabletype'] -[visit_exp tabletype'] -[visit_id tabletype'] not free -[visit_id tabletype'] not free -[scope_exit tabletype'] -[visit_exp `tabletype'*`] -[visit_id tabletype'*] no dims -[visit_id tabletype'*] -[visit_exp [ref] ++ ref'*{ref' <- `ref'*`}] -[visit_exp [ref]] -[visit_exp ref] -[visit_id ref] -[visit_exp ref'*{ref' <- `ref'*`}] -[scope_enter ref'] -[visit_exp ref'] -[visit_id ref'] not free -[visit_id ref'] not free -[scope_exit ref'] -[visit_exp `ref'*`] -[visit_id ref'*] no dims -[visit_id ref'*] -[visit_exp (s_2, [ta] ++ ta'*{ta' <- `ta'*`})] -[visit_exp s_2] -[visit_id s_2] -[visit_exp [ta] ++ ta'*{ta' <- `ta'*`}] -[visit_exp [ta]] -[visit_exp ta] -[visit_id ta] -[visit_exp ta'*{ta' <- `ta'*`}] -[scope_enter ta'] -[visit_exp ta'] -[visit_id ta'] not free -[visit_id ta'] not free -[scope_exit ta'] -[visit_exp `ta'*`] -[visit_id ta'*] no dims -[visit_id ta'*] -[visit_exp ((s_1, ta) = $alloctable(s, tabletype, ref))] -[visit_exp (s_1, ta)] -[visit_exp s_1] -[visit_id s_1] -[visit_exp ta] -[visit_id ta] not free -[visit_exp $alloctable(s, tabletype, ref)] -[visit_exp s] -[visit_id s] not free -[visit_exp tabletype] -[visit_id tabletype] not free -[visit_exp ref] -[visit_id ref] not free -[visit_exp ((s_2, ta'*{ta' <- `ta'*`}) = $alloctables(s_1, tabletype'*{tabletype' <- `tabletype'*`}, ref'*{ref' <- `ref'*`}))] -[visit_exp (s_2, ta'*{ta' <- `ta'*`})] -[visit_exp s_2] -[visit_id s_2] not free -[visit_exp ta'*{ta' <- `ta'*`}] -[scope_enter ta'] -[visit_exp ta'] -[visit_id ta'] not free -[visit_id ta'] not free -[scope_exit ta'] -[visit_exp `ta'*`] -[visit_id ta'*] not free -[visit_id ta'*] no dims -[visit_exp $alloctables(s_1, tabletype'*{tabletype' <- `tabletype'*`}, ref'*{ref' <- `ref'*`})] -[visit_exp s_1] -[visit_id s_1] not free -[visit_exp tabletype'*{tabletype' <- `tabletype'*`}] -[scope_enter tabletype'] -[visit_exp tabletype'] -[visit_id tabletype'] not free -[visit_id tabletype'] not free -[scope_exit tabletype'] -[visit_exp `tabletype'*`] -[visit_id tabletype'*] not free -[visit_id tabletype'*] no dims -[visit_exp ref'*{ref' <- `ref'*`}] -[scope_enter ref'] -[visit_exp ref'] -[visit_id ref'] not free -[visit_id ref'] not free -[scope_exit ref'] -[visit_exp `ref'*`] -[visit_id ref'*] not free -[visit_id ref'*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctables{s : store, tabletype : tabletype, `tabletype'*` : tabletype*, ref : ref, `ref'*` : ref*, s_2 : store, ta : tableaddr, `ta'*` : tableaddr*, s_1 : store}(s, [tabletype] ++ tabletype'*{tabletype' <- `tabletype'*`}, [ref] ++ ref'*{ref' <- `ref'*`}) = (s_2, [ta] ++ ta'*{ta' <- `ta'*`}) - -- if ((s_1, ta) = $alloctable(s, tabletype, ref)) - -- if ((s_2, ta'*{ta' <- `ta'*`}) = $alloctables(s_1, tabletype'*{tabletype' <- `tabletype'*`}, ref'*{ref' <- `ref'*`})) -[check_dims] _ deftype funccode moduleinst store -DecD allocfunc(store : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst) : (store, funcaddr) -[visit_id store] not free -[visit_id deftype] not free -[visit_id funccode] not free -[visit_id moduleinst] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] deftype funccode funcinst moduleinst s -[visit_exp s] -[visit_id s] -[visit_exp deftype] -[visit_id deftype] -[visit_exp funccode] -[visit_id funccode] -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [funcinst], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`FUNCS`_store|)] -[visit_exp s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [funcinst], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp s] -[visit_id s] not free -[visit_exp {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [funcinst], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [funcinst]] -[visit_exp funcinst] -[visit_id funcinst] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp |s.`FUNCS`_store|] -[visit_exp s.`FUNCS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp (funcinst = {`TYPE` deftype, `MODULE` moduleinst, `CODE` funccode})] -[visit_exp funcinst] -[visit_id funcinst] not free -[visit_exp {`TYPE` deftype, `MODULE` moduleinst, `CODE` funccode}] -[visit_exp deftype] -[visit_id deftype] not free -[visit_exp moduleinst] -[visit_id moduleinst] not free -[visit_exp funccode] -[visit_id funccode] not free -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocfunc{s : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst, funcinst : funcinst}(s, deftype, funccode, moduleinst) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [funcinst], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`FUNCS`_store|) - -- if (funcinst = {`TYPE` deftype, `MODULE` moduleinst, `CODE` funccode}) -[check_dims] _ store -DecD allocfuncs(store : store, deftype*, funccode*, moduleinst*) : (store, funcaddr*) -[visit_id store] not free -[visit_id _] not free -[visit_id _] not free -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] s -[visit_exp s] -[visit_id s] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp (s, [])] -[visit_exp s] -[visit_id s] not free -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocfuncs{s : store}(s, [], [], []) = (s, []) -[check_dims] dt dt' fa fa' funccode funccode' moduleinst moduleinst' s s_1 s_2 -[visit_exp s] -[visit_id s] -[visit_exp [dt] ++ dt'*{dt' <- `dt'*`}] -[visit_exp [dt]] -[visit_exp dt] -[visit_id dt] -[visit_exp dt'*{dt' <- `dt'*`}] -[scope_enter dt'] -[visit_exp dt'] -[visit_id dt'] not free -[visit_id dt'] not free -[scope_exit dt'] -[visit_exp `dt'*`] -[visit_id dt'*] no dims -[visit_id dt'*] -[visit_exp [funccode] ++ funccode'*{funccode' <- `funccode'*`}] -[visit_exp [funccode]] -[visit_exp funccode] -[visit_id funccode] -[visit_exp funccode'*{funccode' <- `funccode'*`}] -[scope_enter funccode'] -[visit_exp funccode'] -[visit_id funccode'] not free -[visit_id funccode'] not free -[scope_exit funccode'] -[visit_exp `funccode'*`] -[visit_id funccode'*] no dims -[visit_id funccode'*] -[visit_exp [moduleinst] ++ moduleinst'*{moduleinst' <- `moduleinst'*`}] -[visit_exp [moduleinst]] -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp moduleinst'*{moduleinst' <- `moduleinst'*`}] -[scope_enter moduleinst'] -[visit_exp moduleinst'] -[visit_id moduleinst'] not free -[visit_id moduleinst'] not free -[scope_exit moduleinst'] -[visit_exp `moduleinst'*`] -[visit_id moduleinst'*] no dims -[visit_id moduleinst'*] -[visit_exp (s_2, [fa] ++ fa'*{fa' <- `fa'*`})] -[visit_exp s_2] -[visit_id s_2] -[visit_exp [fa] ++ fa'*{fa' <- `fa'*`}] -[visit_exp [fa]] -[visit_exp fa] -[visit_id fa] -[visit_exp fa'*{fa' <- `fa'*`}] -[scope_enter fa'] -[visit_exp fa'] -[visit_id fa'] not free -[visit_id fa'] not free -[scope_exit fa'] -[visit_exp `fa'*`] -[visit_id fa'*] no dims -[visit_id fa'*] -[visit_exp ((s_1, fa) = $allocfunc(s, dt, funccode, moduleinst))] -[visit_exp (s_1, fa)] -[visit_exp s_1] -[visit_id s_1] -[visit_exp fa] -[visit_id fa] not free -[visit_exp $allocfunc(s, dt, funccode, moduleinst)] -[visit_exp s] -[visit_id s] not free -[visit_exp dt] -[visit_id dt] not free -[visit_exp funccode] -[visit_id funccode] not free -[visit_exp moduleinst] -[visit_id moduleinst] not free -[visit_exp ((s_2, fa'*{fa' <- `fa'*`}) = $allocfuncs(s_1, dt'*{dt' <- `dt'*`}, funccode'*{funccode' <- `funccode'*`}, moduleinst'*{moduleinst' <- `moduleinst'*`}))] -[visit_exp (s_2, fa'*{fa' <- `fa'*`})] -[visit_exp s_2] -[visit_id s_2] not free -[visit_exp fa'*{fa' <- `fa'*`}] -[scope_enter fa'] -[visit_exp fa'] -[visit_id fa'] not free -[visit_id fa'] not free -[scope_exit fa'] -[visit_exp `fa'*`] -[visit_id fa'*] not free -[visit_id fa'*] no dims -[visit_exp $allocfuncs(s_1, dt'*{dt' <- `dt'*`}, funccode'*{funccode' <- `funccode'*`}, moduleinst'*{moduleinst' <- `moduleinst'*`})] -[visit_exp s_1] -[visit_id s_1] not free -[visit_exp dt'*{dt' <- `dt'*`}] -[scope_enter dt'] -[visit_exp dt'] -[visit_id dt'] not free -[visit_id dt'] not free -[scope_exit dt'] -[visit_exp `dt'*`] -[visit_id dt'*] not free -[visit_id dt'*] no dims -[visit_exp funccode'*{funccode' <- `funccode'*`}] -[scope_enter funccode'] -[visit_exp funccode'] -[visit_id funccode'] not free -[visit_id funccode'] not free -[scope_exit funccode'] -[visit_exp `funccode'*`] -[visit_id funccode'*] not free -[visit_id funccode'*] no dims -[visit_exp moduleinst'*{moduleinst' <- `moduleinst'*`}] -[scope_enter moduleinst'] -[visit_exp moduleinst'] -[visit_id moduleinst'] not free -[visit_id moduleinst'] not free -[scope_exit moduleinst'] -[visit_exp `moduleinst'*`] -[visit_id moduleinst'*] not free -[visit_id moduleinst'*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocfuncs{s : store, dt : deftype, `dt'*` : deftype*, funccode : funccode, `funccode'*` : funccode*, moduleinst : moduleinst, `moduleinst'*` : moduleinst*, s_2 : store, fa : funcaddr, `fa'*` : funcaddr*, s_1 : store}(s, [dt] ++ dt'*{dt' <- `dt'*`}, [funccode] ++ funccode'*{funccode' <- `funccode'*`}, [moduleinst] ++ moduleinst'*{moduleinst' <- `moduleinst'*`}) = (s_2, [fa] ++ fa'*{fa' <- `fa'*`}) - -- if ((s_1, fa) = $allocfunc(s, dt, funccode, moduleinst)) - -- if ((s_2, fa'*{fa' <- `fa'*`}) = $allocfuncs(s_1, dt'*{dt' <- `dt'*`}, funccode'*{funccode' <- `funccode'*`}, moduleinst'*{moduleinst' <- `moduleinst'*`})) -[check_dims] _ datatype store -DecD allocdata(store : store, datatype : datatype, byte*) : (store, dataaddr) -[visit_id store] not free -[visit_id datatype] not free -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] byte datainst s -[visit_exp s] -[visit_id s] -[visit_exp `OK`_datatype] -[visit_exp ()] -[visit_exp byte*{byte <- `byte*`}] -[scope_enter byte] -[visit_exp byte] -[visit_id byte] not free -[visit_id byte] not free -[scope_exit byte] -[visit_exp `byte*`] -[visit_id byte*] no dims -[visit_id byte*] -[visit_exp (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [datainst], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`DATAS`_store|)] -[visit_exp s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [datainst], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp s] -[visit_id s] not free -[visit_exp {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [datainst], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [datainst]] -[visit_exp datainst] -[visit_id datainst] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp |s.`DATAS`_store|] -[visit_exp s.`DATAS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp (datainst = {`BYTES` byte*{byte <- `byte*`}})] -[visit_exp datainst] -[visit_id datainst] not free -[visit_exp {`BYTES` byte*{byte <- `byte*`}}] -[visit_exp byte*{byte <- `byte*`}] -[scope_enter byte] -[visit_exp byte] -[visit_id byte] not free -[visit_id byte] not free -[scope_exit byte] -[visit_exp `byte*`] -[visit_id byte*] not free -[visit_id byte*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocdata{s : store, `byte*` : byte*, datainst : datainst}(s, `OK`_datatype, byte*{byte <- `byte*`}) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [datainst], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`DATAS`_store|) - -- if (datainst = {`BYTES` byte*{byte <- `byte*`}}) -[check_dims] _ store -DecD allocdatas(store : store, datatype*, byte**) : (store, dataaddr*) -[visit_id store] not free -[visit_id _] not free -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] s -[visit_exp s] -[visit_id s] -[visit_exp []] -[visit_exp []] -[visit_exp (s, [])] -[visit_exp s] -[visit_id s] not free -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocdatas{s : store}(s, [], []) = (s, []) -[check_dims] b b' da da' ok ok' s s_1 s_2 -[visit_exp s] -[visit_id s] -[visit_exp [ok] ++ ok'*{ok' <- `ok'*`}] -[visit_exp [ok]] -[visit_exp ok] -[visit_id ok] -[visit_exp ok'*{ok' <- `ok'*`}] -[scope_enter ok'] -[visit_exp ok'] -[visit_id ok'] not free -[visit_id ok'] not free -[scope_exit ok'] -[visit_exp `ok'*`] -[visit_id ok'*] no dims -[visit_id ok'*] -[visit_exp [b*{b <- `b*`}] ++ b'*{b' <- `b'*`}*{`b'*` <- `b'**`}] -[visit_exp [b*{b <- `b*`}]] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp b'*{b' <- `b'*`}*{`b'*` <- `b'**`}] -[scope_enter b'*] -[visit_exp b'*{b' <- `b'*`}] -[scope_enter b'] -[visit_exp b'] -[visit_id b'] not free -[visit_id b'] not free -[scope_exit b'] -[visit_exp `b'*`] -[visit_id b'*] not free -[visit_id b'*] no dims -[visit_id b'*] not free -[visit_id b'*] no dims -[scope_exit b'*] -[visit_exp `b'**`] -[visit_id b'**] no dims -[visit_id b'**] -[visit_exp (s_2, [da] ++ da'*{da' <- `da'*`})] -[visit_exp s_2] -[visit_id s_2] -[visit_exp [da] ++ da'*{da' <- `da'*`}] -[visit_exp [da]] -[visit_exp da] -[visit_id da] -[visit_exp da'*{da' <- `da'*`}] -[scope_enter da'] -[visit_exp da'] -[visit_id da'] not free -[visit_id da'] not free -[scope_exit da'] -[visit_exp `da'*`] -[visit_id da'*] no dims -[visit_id da'*] -[visit_exp ((s_1, da) = $allocdata(s, ok, b*{b <- `b*`}))] -[visit_exp (s_1, da)] -[visit_exp s_1] -[visit_id s_1] -[visit_exp da] -[visit_id da] not free -[visit_exp $allocdata(s, ok, b*{b <- `b*`})] -[visit_exp s] -[visit_id s] not free -[visit_exp ok] -[visit_id ok] not free -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_exp ((s_2, da'*{da' <- `da'*`}) = $allocdatas(s_1, ok'*{ok' <- `ok'*`}, b'*{b' <- `b'*`}*{`b'*` <- `b'**`}))] -[visit_exp (s_2, da'*{da' <- `da'*`})] -[visit_exp s_2] -[visit_id s_2] not free -[visit_exp da'*{da' <- `da'*`}] -[scope_enter da'] -[visit_exp da'] -[visit_id da'] not free -[visit_id da'] not free -[scope_exit da'] -[visit_exp `da'*`] -[visit_id da'*] not free -[visit_id da'*] no dims -[visit_exp $allocdatas(s_1, ok'*{ok' <- `ok'*`}, b'*{b' <- `b'*`}*{`b'*` <- `b'**`})] -[visit_exp s_1] -[visit_id s_1] not free -[visit_exp ok'*{ok' <- `ok'*`}] -[scope_enter ok'] -[visit_exp ok'] -[visit_id ok'] not free -[visit_id ok'] not free -[scope_exit ok'] -[visit_exp `ok'*`] -[visit_id ok'*] not free -[visit_id ok'*] no dims -[visit_exp b'*{b' <- `b'*`}*{`b'*` <- `b'**`}] -[scope_enter b'*] -[visit_exp b'*{b' <- `b'*`}] -[scope_enter b'] -[visit_exp b'] -[visit_id b'] not free -[visit_id b'] not free -[scope_exit b'] -[visit_exp `b'*`] -[visit_id b'*] not free -[visit_id b'*] no dims -[visit_id b'*] not free -[visit_id b'*] no dims -[scope_exit b'*] -[visit_exp `b'**`] -[visit_id b'**] not free -[visit_id b'**] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocdatas{s : store, ok : datatype, `ok'*` : datatype*, `b*` : byte*, `b'**` : byte**, s_2 : store, da : dataaddr, `da'*` : dataaddr*, s_1 : store}(s, [ok] ++ ok'*{ok' <- `ok'*`}, [b*{b <- `b*`}] ++ b'*{b' <- `b'*`}*{`b'*` <- `b'**`}) = (s_2, [da] ++ da'*{da' <- `da'*`}) - -- if ((s_1, da) = $allocdata(s, ok, b*{b <- `b*`})) - -- if ((s_2, da'*{da' <- `da'*`}) = $allocdatas(s_1, ok'*{ok' <- `ok'*`}, b'*{b' <- `b'*`}*{`b'*` <- `b'**`})) -[check_dims] _ elemtype store -DecD allocelem(store : store, elemtype : elemtype, ref*) : (store, elemaddr) -[visit_id store] not free -[visit_id elemtype] not free -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] eleminst elemtype ref s -[visit_exp s] -[visit_id s] -[visit_exp elemtype] -[visit_id elemtype] -[visit_exp ref*{ref <- `ref*`}] -[scope_enter ref] -[visit_exp ref] -[visit_id ref] not free -[visit_id ref] not free -[scope_exit ref] -[visit_exp `ref*`] -[visit_id ref*] no dims -[visit_id ref*] -[visit_exp (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [eleminst], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`ELEMS`_store|)] -[visit_exp s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [eleminst], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp s] -[visit_id s] not free -[visit_exp {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [eleminst], `STRUCTS` [], `ARRAYS` [], `EXNS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [eleminst]] -[visit_exp eleminst] -[visit_id eleminst] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp |s.`ELEMS`_store|] -[visit_exp s.`ELEMS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp (eleminst = {`TYPE` elemtype, `REFS` ref*{ref <- `ref*`}})] -[visit_exp eleminst] -[visit_id eleminst] not free -[visit_exp {`TYPE` elemtype, `REFS` ref*{ref <- `ref*`}}] -[visit_exp elemtype] -[visit_id elemtype] not free -[visit_exp ref*{ref <- `ref*`}] -[scope_enter ref] -[visit_exp ref] -[visit_id ref] not free -[visit_id ref] not free -[scope_exit ref] -[visit_exp `ref*`] -[visit_id ref*] not free -[visit_id ref*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocelem{s : store, elemtype : elemtype, `ref*` : ref*, eleminst : eleminst}(s, elemtype, ref*{ref <- `ref*`}) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [eleminst], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`ELEMS`_store|) - -- if (eleminst = {`TYPE` elemtype, `REFS` ref*{ref <- `ref*`}}) -[check_dims] _ store -DecD allocelems(store : store, elemtype*, ref**) : (store, elemaddr*) -[visit_id store] not free -[visit_id _] not free -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] s -[visit_exp s] -[visit_id s] -[visit_exp []] -[visit_exp []] -[visit_exp (s, [])] -[visit_exp s] -[visit_id s] not free -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocelems{s : store}(s, [], []) = (s, []) -[check_dims] ea ea' ref ref' rt rt' s s_1 s_2 -[visit_exp s] -[visit_id s] -[visit_exp [rt] ++ rt'*{rt' <- `rt'*`}] -[visit_exp [rt]] -[visit_exp rt] -[visit_id rt] -[visit_exp rt'*{rt' <- `rt'*`}] -[scope_enter rt'] -[visit_exp rt'] -[visit_id rt'] not free -[visit_id rt'] not free -[scope_exit rt'] -[visit_exp `rt'*`] -[visit_id rt'*] no dims -[visit_id rt'*] -[visit_exp [ref*{ref <- `ref*`}] ++ ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`}] -[visit_exp [ref*{ref <- `ref*`}]] -[visit_exp ref*{ref <- `ref*`}] -[scope_enter ref] -[visit_exp ref] -[visit_id ref] not free -[visit_id ref] not free -[scope_exit ref] -[visit_exp `ref*`] -[visit_id ref*] no dims -[visit_id ref*] -[visit_exp ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`}] -[scope_enter ref'*] -[visit_exp ref'*{ref' <- `ref'*`}] -[scope_enter ref'] -[visit_exp ref'] -[visit_id ref'] not free -[visit_id ref'] not free -[scope_exit ref'] -[visit_exp `ref'*`] -[visit_id ref'*] not free -[visit_id ref'*] no dims -[visit_id ref'*] not free -[visit_id ref'*] no dims -[scope_exit ref'*] -[visit_exp `ref'**`] -[visit_id ref'**] no dims -[visit_id ref'**] -[visit_exp (s_2, [ea] ++ ea'*{ea' <- `ea'*`})] -[visit_exp s_2] -[visit_id s_2] -[visit_exp [ea] ++ ea'*{ea' <- `ea'*`}] -[visit_exp [ea]] -[visit_exp ea] -[visit_id ea] -[visit_exp ea'*{ea' <- `ea'*`}] -[scope_enter ea'] -[visit_exp ea'] -[visit_id ea'] not free -[visit_id ea'] not free -[scope_exit ea'] -[visit_exp `ea'*`] -[visit_id ea'*] no dims -[visit_id ea'*] -[visit_exp ((s_1, ea) = $allocelem(s, rt, ref*{ref <- `ref*`}))] -[visit_exp (s_1, ea)] -[visit_exp s_1] -[visit_id s_1] -[visit_exp ea] -[visit_id ea] not free -[visit_exp $allocelem(s, rt, ref*{ref <- `ref*`})] -[visit_exp s] -[visit_id s] not free -[visit_exp rt] -[visit_id rt] not free -[visit_exp ref*{ref <- `ref*`}] -[scope_enter ref] -[visit_exp ref] -[visit_id ref] not free -[visit_id ref] not free -[scope_exit ref] -[visit_exp `ref*`] -[visit_id ref*] not free -[visit_id ref*] no dims -[visit_exp ((s_2, ea'*{ea' <- `ea'*`}) = $allocelems(s_1, rt'*{rt' <- `rt'*`}, ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`}))] -[visit_exp (s_2, ea'*{ea' <- `ea'*`})] -[visit_exp s_2] -[visit_id s_2] not free -[visit_exp ea'*{ea' <- `ea'*`}] -[scope_enter ea'] -[visit_exp ea'] -[visit_id ea'] not free -[visit_id ea'] not free -[scope_exit ea'] -[visit_exp `ea'*`] -[visit_id ea'*] not free -[visit_id ea'*] no dims -[visit_exp $allocelems(s_1, rt'*{rt' <- `rt'*`}, ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`})] -[visit_exp s_1] -[visit_id s_1] not free -[visit_exp rt'*{rt' <- `rt'*`}] -[scope_enter rt'] -[visit_exp rt'] -[visit_id rt'] not free -[visit_id rt'] not free -[scope_exit rt'] -[visit_exp `rt'*`] -[visit_id rt'*] not free -[visit_id rt'*] no dims -[visit_exp ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`}] -[scope_enter ref'*] -[visit_exp ref'*{ref' <- `ref'*`}] -[scope_enter ref'] -[visit_exp ref'] -[visit_id ref'] not free -[visit_id ref'] not free -[scope_exit ref'] -[visit_exp `ref'*`] -[visit_id ref'*] not free -[visit_id ref'*] no dims -[visit_id ref'*] not free -[visit_id ref'*] no dims -[scope_exit ref'*] -[visit_exp `ref'**`] -[visit_id ref'**] not free -[visit_id ref'**] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocelems{s : store, rt : reftype, `rt'*` : reftype*, `ref*` : ref*, `ref'**` : ref**, s_2 : store, ea : elemaddr, `ea'*` : elemaddr*, s_1 : store}(s, [rt] ++ rt'*{rt' <- `rt'*`}, [ref*{ref <- `ref*`}] ++ ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`}) = (s_2, [ea] ++ ea'*{ea' <- `ea'*`}) - -- if ((s_1, ea) = $allocelem(s, rt, ref*{ref <- `ref*`})) - -- if ((s_2, ea'*{ea' <- `ea'*`}) = $allocelems(s_1, rt'*{rt' <- `rt'*`}, ref'*{ref' <- `ref'*`}*{`ref'*` <- `ref'**`})) -[check_dims] export moduleinst -DecD allocexport(moduleinst : moduleinst, export : export) : exportinst -[visit_id moduleinst] not free -[visit_id export] not free -[check_dims] moduleinst name x -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp `EXPORT`_export(name, `TAG`_externidx(x))] -[visit_exp (name, `TAG`_externidx(x))] -[visit_exp name] -[visit_id name] -[visit_exp `TAG`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp {`NAME` name, `ADDR` `TAG`_externaddr(moduleinst.`TAGS`_moduleinst[x!`%`_idx.0])}] -[visit_exp name] -[visit_id name] not free -[visit_exp `TAG`_externaddr(moduleinst.`TAGS`_moduleinst[x!`%`_idx.0])] -[visit_exp (moduleinst.`TAGS`_moduleinst[x!`%`_idx.0])] -[visit_exp moduleinst.`TAGS`_moduleinst[x!`%`_idx.0]] -[visit_exp moduleinst.`TAGS`_moduleinst] -[visit_exp moduleinst] -[visit_id moduleinst] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `TAG`_externidx(x))) = {`NAME` name, `ADDR` `TAG`_externaddr(moduleinst.`TAGS`_moduleinst[x!`%`_idx.0])} -[check_dims] moduleinst name x -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp `EXPORT`_export(name, `GLOBAL`_externidx(x))] -[visit_exp (name, `GLOBAL`_externidx(x))] -[visit_exp name] -[visit_id name] -[visit_exp `GLOBAL`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp {`NAME` name, `ADDR` `GLOBAL`_externaddr(moduleinst.`GLOBALS`_moduleinst[x!`%`_idx.0])}] -[visit_exp name] -[visit_id name] not free -[visit_exp `GLOBAL`_externaddr(moduleinst.`GLOBALS`_moduleinst[x!`%`_idx.0])] -[visit_exp (moduleinst.`GLOBALS`_moduleinst[x!`%`_idx.0])] -[visit_exp moduleinst.`GLOBALS`_moduleinst[x!`%`_idx.0]] -[visit_exp moduleinst.`GLOBALS`_moduleinst] -[visit_exp moduleinst] -[visit_id moduleinst] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `GLOBAL`_externidx(x))) = {`NAME` name, `ADDR` `GLOBAL`_externaddr(moduleinst.`GLOBALS`_moduleinst[x!`%`_idx.0])} -[check_dims] moduleinst name x -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp `EXPORT`_export(name, `MEM`_externidx(x))] -[visit_exp (name, `MEM`_externidx(x))] -[visit_exp name] -[visit_id name] -[visit_exp `MEM`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp {`NAME` name, `ADDR` `MEM`_externaddr(moduleinst.`MEMS`_moduleinst[x!`%`_idx.0])}] -[visit_exp name] -[visit_id name] not free -[visit_exp `MEM`_externaddr(moduleinst.`MEMS`_moduleinst[x!`%`_idx.0])] -[visit_exp (moduleinst.`MEMS`_moduleinst[x!`%`_idx.0])] -[visit_exp moduleinst.`MEMS`_moduleinst[x!`%`_idx.0]] -[visit_exp moduleinst.`MEMS`_moduleinst] -[visit_exp moduleinst] -[visit_id moduleinst] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `MEM`_externidx(x))) = {`NAME` name, `ADDR` `MEM`_externaddr(moduleinst.`MEMS`_moduleinst[x!`%`_idx.0])} -[check_dims] moduleinst name x -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp `EXPORT`_export(name, `TABLE`_externidx(x))] -[visit_exp (name, `TABLE`_externidx(x))] -[visit_exp name] -[visit_id name] -[visit_exp `TABLE`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp {`NAME` name, `ADDR` `TABLE`_externaddr(moduleinst.`TABLES`_moduleinst[x!`%`_idx.0])}] -[visit_exp name] -[visit_id name] not free -[visit_exp `TABLE`_externaddr(moduleinst.`TABLES`_moduleinst[x!`%`_idx.0])] -[visit_exp (moduleinst.`TABLES`_moduleinst[x!`%`_idx.0])] -[visit_exp moduleinst.`TABLES`_moduleinst[x!`%`_idx.0]] -[visit_exp moduleinst.`TABLES`_moduleinst] -[visit_exp moduleinst] -[visit_id moduleinst] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `TABLE`_externidx(x))) = {`NAME` name, `ADDR` `TABLE`_externaddr(moduleinst.`TABLES`_moduleinst[x!`%`_idx.0])} -[check_dims] moduleinst name x -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp `EXPORT`_export(name, `FUNC`_externidx(x))] -[visit_exp (name, `FUNC`_externidx(x))] -[visit_exp name] -[visit_id name] -[visit_exp `FUNC`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp {`NAME` name, `ADDR` `FUNC`_externaddr(moduleinst.`FUNCS`_moduleinst[x!`%`_idx.0])}] -[visit_exp name] -[visit_id name] not free -[visit_exp `FUNC`_externaddr(moduleinst.`FUNCS`_moduleinst[x!`%`_idx.0])] -[visit_exp (moduleinst.`FUNCS`_moduleinst[x!`%`_idx.0])] -[visit_exp moduleinst.`FUNCS`_moduleinst[x!`%`_idx.0]] -[visit_exp moduleinst.`FUNCS`_moduleinst] -[visit_exp moduleinst] -[visit_id moduleinst] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `FUNC`_externidx(x))) = {`NAME` name, `ADDR` `FUNC`_externaddr(moduleinst.`FUNCS`_moduleinst[x!`%`_idx.0])} -[check_dims] _ moduleinst -DecD allocexports(moduleinst : moduleinst, export*) : exportinst* -[visit_id moduleinst] not free -[visit_id _] not free -[check_dims] export moduleinst -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp export*{export <- `export*`}] -[scope_enter export] -[visit_exp export] -[visit_id export] not free -[visit_id export] not free -[scope_exit export] -[visit_exp `export*`] -[visit_id export*] no dims -[visit_id export*] -[visit_exp $allocexport(moduleinst, export)*{export <- `export*`}] -[scope_enter export] -[visit_exp $allocexport(moduleinst, export)] -[visit_exp moduleinst] -[visit_id moduleinst] not free -[visit_exp export] -[visit_id export] not free -[visit_id export] not free -[scope_exit export] -[visit_exp `export*`] -[visit_id export*] not free -[visit_id export*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexports{moduleinst : moduleinst, `export*` : export*}(moduleinst, export*{export <- `export*`}) = $allocexport(moduleinst, export)*{export <- `export*`} -[check_dims] _ module store -DecD allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) : (store, moduleinst) -[visit_id store] not free -[visit_id module] not free -[visit_id _] not free -[visit_id _] not free -[visit_id _] not free -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] aa aa_I byte da data datamode dt ea elem elemmode elemtype export expr_E expr_F expr_G expr_T externaddr fa fa_I func ga ga_I global globaltype i_F import local ma ma_I mem memtype module moduleinst ref_E ref_T s s_1 s_2 s_3 s_4 s_5 s_6 s_7 start ta ta_I table tabletype tag tagtype type val_G x xi -[visit_exp s] -[visit_id s] -[visit_exp module] -[visit_id module] -[visit_exp externaddr*{externaddr <- `externaddr*`}] -[scope_enter externaddr] -[visit_exp externaddr] -[visit_id externaddr] not free -[visit_id externaddr] not free -[scope_exit externaddr] -[visit_exp `externaddr*`] -[visit_id externaddr*] no dims -[visit_id externaddr*] -[visit_exp val_G*{val_G <- `val_G*`}] -[scope_enter val_G] -[visit_exp val_G] -[visit_id val_G] not free -[visit_id val_G] not free -[scope_exit val_G] -[visit_exp `val_G*`] -[visit_id val_G*] no dims -[visit_id val_G*] -[visit_exp ref_T*{ref_T <- `ref_T*`}] -[scope_enter ref_T] -[visit_exp ref_T] -[visit_id ref_T] not free -[visit_id ref_T] not free -[scope_exit ref_T] -[visit_exp `ref_T*`] -[visit_id ref_T*] no dims -[visit_id ref_T*] -[visit_exp ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}] -[scope_enter ref_E*] -[visit_exp ref_E*{ref_E <- `ref_E*`}] -[scope_enter ref_E] -[visit_exp ref_E] -[visit_id ref_E] not free -[visit_id ref_E] not free -[scope_exit ref_E] -[visit_exp `ref_E*`] -[visit_id ref_E*] not free -[visit_id ref_E*] no dims -[visit_id ref_E*] not free -[visit_id ref_E*] no dims -[scope_exit ref_E*] -[visit_exp `ref_E**`] -[visit_id ref_E**] no dims -[visit_id ref_E**] -[visit_exp (s_7, moduleinst)] -[visit_exp s_7] -[visit_id s_7] -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp (module = `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}))] -[visit_exp module] -[visit_id module] not free -[visit_exp `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp type*{type <- `type*`}] -[scope_enter type] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] no dims -[visit_id type*] -[visit_exp import*{import <- `import*`}] -[scope_enter import] -[visit_exp import] -[visit_id import] not free -[visit_id import] not free -[scope_exit import] -[visit_exp `import*`] -[visit_id import*] no dims -[visit_id import*] -[visit_exp tag*{tag <- `tag*`}] -[scope_enter tag] -[visit_exp tag] -[visit_id tag] not free -[visit_id tag] not free -[scope_exit tag] -[visit_exp `tag*`] -[visit_id tag*] no dims -[visit_id tag*] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] no dims -[visit_id global*] -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] no dims -[visit_id mem*] -[visit_exp table*{table <- `table*`}] -[scope_enter table] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] no dims -[visit_id table*] -[visit_exp func*{func <- `func*`}] -[scope_enter func] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] no dims -[visit_id func*] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] no dims -[visit_id data*] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] no dims -[visit_id elem*] -[visit_exp start?{start <- `start?`}] -[scope_enter start] -[visit_exp start] -[visit_id start] not free -[visit_id start] not free -[scope_exit start] -[visit_exp `start?`] -[visit_id start?] no dims -[visit_id start?] -[visit_exp export*{export <- `export*`}] -[scope_enter export] -[visit_exp export] -[visit_id export] not free -[visit_id export] not free -[scope_exit export] -[visit_exp `export*`] -[visit_id export*] no dims -[visit_id export*] -[visit_exp (tag*{tag <- `tag*`} = `TAG`_tag(tagtype)*{tagtype <- `tagtype*`})] -[visit_exp tag*{tag <- `tag*`}] -[scope_enter tag] -[visit_exp tag] -[visit_id tag] not free -[visit_id tag] not free -[scope_exit tag] -[visit_exp `tag*`] -[visit_id tag*] not free -[visit_id tag*] no dims -[visit_exp `TAG`_tag(tagtype)*{tagtype <- `tagtype*`}] -[scope_enter tagtype] -[visit_exp `TAG`_tag(tagtype)] -[visit_exp (tagtype)] -[visit_exp tagtype] -[visit_id tagtype] not free -[visit_id tagtype] not free -[scope_exit tagtype] -[visit_exp `tagtype*`] -[visit_id tagtype*] no dims -[visit_id tagtype*] -[visit_exp (global*{global <- `global*`} = `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`})] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] not free -[visit_id global*] no dims -[visit_exp `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}] -[scope_enter expr_G] -[scope_enter globaltype] -[visit_exp `GLOBAL`_global(globaltype, expr_G)] -[visit_exp (globaltype, expr_G)] -[visit_exp globaltype] -[visit_id globaltype] not free -[visit_exp expr_G] -[visit_id expr_G] not free -[visit_id expr_G] not free -[visit_id globaltype] not free -[scope_exit globaltype] -[scope_exit expr_G] -[visit_exp `expr_G*`] -[visit_id expr_G*] no dims -[visit_id expr_G*] -[visit_exp `globaltype*`] -[visit_id globaltype*] no dims -[visit_id globaltype*] -[visit_exp (mem*{mem <- `mem*`} = `MEMORY`_mem(memtype)*{memtype <- `memtype*`})] -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] not free -[visit_id mem*] no dims -[visit_exp `MEMORY`_mem(memtype)*{memtype <- `memtype*`}] -[scope_enter memtype] -[visit_exp `MEMORY`_mem(memtype)] -[visit_exp (memtype)] -[visit_exp memtype] -[visit_id memtype] not free -[visit_id memtype] not free -[scope_exit memtype] -[visit_exp `memtype*`] -[visit_id memtype*] no dims -[visit_id memtype*] -[visit_exp (table*{table <- `table*`} = `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`})] -[visit_exp table*{table <- `table*`}] -[scope_enter table] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] not free -[visit_id table*] no dims -[visit_exp `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}] -[scope_enter expr_T] -[scope_enter tabletype] -[visit_exp `TABLE`_table(tabletype, expr_T)] -[visit_exp (tabletype, expr_T)] -[visit_exp tabletype] -[visit_id tabletype] not free -[visit_exp expr_T] -[visit_id expr_T] not free -[visit_id expr_T] not free -[visit_id tabletype] not free -[scope_exit tabletype] -[scope_exit expr_T] -[visit_exp `expr_T*`] -[visit_id expr_T*] no dims -[visit_id expr_T*] -[visit_exp `tabletype*`] -[visit_id tabletype*] no dims -[visit_id tabletype*] -[visit_exp (func*{func <- `func*`} = `FUNC`_func(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`})] -[visit_exp func*{func <- `func*`}] -[scope_enter func] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] not free -[visit_id func*] no dims -[visit_exp `FUNC`_func(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}] -[scope_enter expr_F] -[scope_enter local*] -[scope_enter x] -[visit_exp `FUNC`_func(x, local*{local <- `local*`}, expr_F)] -[visit_exp (x, local*{local <- `local*`}, expr_F)] -[visit_exp x] -[visit_id x] not free -[visit_exp local*{local <- `local*`}] -[scope_enter local] -[visit_exp local] -[visit_id local] not free -[visit_id local] not free -[scope_exit local] -[visit_exp `local*`] -[visit_id local*] not free -[visit_id local*] no dims -[visit_exp expr_F] -[visit_id expr_F] not free -[visit_id expr_F] not free -[visit_id local*] not free -[visit_id local*] no dims -[visit_id x] not free -[scope_exit x] -[scope_exit local*] -[scope_exit expr_F] -[visit_exp `expr_F*`] -[visit_id expr_F*] no dims -[visit_id expr_F*] -[visit_exp `local**`] -[visit_id local**] no dims -[visit_id local**] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp (data*{data <- `data*`} = `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`})] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] not free -[visit_id data*] no dims -[visit_exp `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}] -[scope_enter byte*] -[scope_enter datamode] -[visit_exp `DATA`_data(byte*{byte <- `byte*`}, datamode)] -[visit_exp (byte*{byte <- `byte*`}, datamode)] -[visit_exp byte*{byte <- `byte*`}] -[scope_enter byte] -[visit_exp byte] -[visit_id byte] not free -[visit_id byte] not free -[scope_exit byte] -[visit_exp `byte*`] -[visit_id byte*] not free -[visit_id byte*] no dims -[visit_exp datamode] -[visit_id datamode] not free -[visit_id byte*] not free -[visit_id byte*] no dims -[visit_id datamode] not free -[scope_exit datamode] -[scope_exit byte*] -[visit_exp `byte**`] -[visit_id byte**] no dims -[visit_id byte**] -[visit_exp `datamode*`] -[visit_id datamode*] no dims -[visit_id datamode*] -[visit_exp (elem*{elem <- `elem*`} = `ELEM`_elem(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemtype <- `elemtype*`, `expr_E*` <- `expr_E**`})] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] not free -[visit_id elem*] no dims -[visit_exp `ELEM`_elem(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemtype <- `elemtype*`, `expr_E*` <- `expr_E**`}] -[scope_enter elemmode] -[scope_enter elemtype] -[scope_enter expr_E*] -[visit_exp `ELEM`_elem(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)] -[visit_exp (elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)] -[visit_exp elemtype] -[visit_id elemtype] not free -[visit_exp expr_E*{expr_E <- `expr_E*`}] -[scope_enter expr_E] -[visit_exp expr_E] -[visit_id expr_E] not free -[visit_id expr_E] not free -[scope_exit expr_E] -[visit_exp `expr_E*`] -[visit_id expr_E*] not free -[visit_id expr_E*] no dims -[visit_exp elemmode] -[visit_id elemmode] not free -[visit_id elemmode] not free -[visit_id elemtype] not free -[visit_id expr_E*] not free -[visit_id expr_E*] no dims -[scope_exit expr_E*] -[scope_exit elemtype] -[scope_exit elemmode] -[visit_exp `elemmode*`] -[visit_id elemmode*] no dims -[visit_id elemmode*] -[visit_exp `elemtype*`] -[visit_id elemtype*] no dims -[visit_id elemtype*] -[visit_exp `expr_E**`] -[visit_id expr_E**] no dims -[visit_id expr_E**] -[visit_exp (aa_I*{aa_I <- `aa_I*`} = $tagsxa(externaddr*{externaddr <- `externaddr*`}))] -[visit_exp aa_I*{aa_I <- `aa_I*`}] -[scope_enter aa_I] -[visit_exp aa_I] -[visit_id aa_I] not free -[visit_id aa_I] not free -[scope_exit aa_I] -[visit_exp `aa_I*`] -[visit_id aa_I*] no dims -[visit_id aa_I*] -[visit_exp $tagsxa(externaddr*{externaddr <- `externaddr*`})] -[visit_exp externaddr*{externaddr <- `externaddr*`}] -[scope_enter externaddr] -[visit_exp externaddr] -[visit_id externaddr] not free -[visit_id externaddr] not free -[scope_exit externaddr] -[visit_exp `externaddr*`] -[visit_id externaddr*] not free -[visit_id externaddr*] no dims -[visit_exp (ga_I*{ga_I <- `ga_I*`} = $globalsxa(externaddr*{externaddr <- `externaddr*`}))] -[visit_exp ga_I*{ga_I <- `ga_I*`}] -[scope_enter ga_I] -[visit_exp ga_I] -[visit_id ga_I] not free -[visit_id ga_I] not free -[scope_exit ga_I] -[visit_exp `ga_I*`] -[visit_id ga_I*] no dims -[visit_id ga_I*] -[visit_exp $globalsxa(externaddr*{externaddr <- `externaddr*`})] -[visit_exp externaddr*{externaddr <- `externaddr*`}] -[scope_enter externaddr] -[visit_exp externaddr] -[visit_id externaddr] not free -[visit_id externaddr] not free -[scope_exit externaddr] -[visit_exp `externaddr*`] -[visit_id externaddr*] not free -[visit_id externaddr*] no dims -[visit_exp (ma_I*{ma_I <- `ma_I*`} = $memsxa(externaddr*{externaddr <- `externaddr*`}))] -[visit_exp ma_I*{ma_I <- `ma_I*`}] -[scope_enter ma_I] -[visit_exp ma_I] -[visit_id ma_I] not free -[visit_id ma_I] not free -[scope_exit ma_I] -[visit_exp `ma_I*`] -[visit_id ma_I*] no dims -[visit_id ma_I*] -[visit_exp $memsxa(externaddr*{externaddr <- `externaddr*`})] -[visit_exp externaddr*{externaddr <- `externaddr*`}] -[scope_enter externaddr] -[visit_exp externaddr] -[visit_id externaddr] not free -[visit_id externaddr] not free -[scope_exit externaddr] -[visit_exp `externaddr*`] -[visit_id externaddr*] not free -[visit_id externaddr*] no dims -[visit_exp (ta_I*{ta_I <- `ta_I*`} = $tablesxa(externaddr*{externaddr <- `externaddr*`}))] -[visit_exp ta_I*{ta_I <- `ta_I*`}] -[scope_enter ta_I] -[visit_exp ta_I] -[visit_id ta_I] not free -[visit_id ta_I] not free -[scope_exit ta_I] -[visit_exp `ta_I*`] -[visit_id ta_I*] no dims -[visit_id ta_I*] -[visit_exp $tablesxa(externaddr*{externaddr <- `externaddr*`})] -[visit_exp externaddr*{externaddr <- `externaddr*`}] -[scope_enter externaddr] -[visit_exp externaddr] -[visit_id externaddr] not free -[visit_id externaddr] not free -[scope_exit externaddr] -[visit_exp `externaddr*`] -[visit_id externaddr*] not free -[visit_id externaddr*] no dims -[visit_exp (fa_I*{fa_I <- `fa_I*`} = $funcsxa(externaddr*{externaddr <- `externaddr*`}))] -[visit_exp fa_I*{fa_I <- `fa_I*`}] -[scope_enter fa_I] -[visit_exp fa_I] -[visit_id fa_I] not free -[visit_id fa_I] not free -[scope_exit fa_I] -[visit_exp `fa_I*`] -[visit_id fa_I*] no dims -[visit_id fa_I*] -[visit_exp $funcsxa(externaddr*{externaddr <- `externaddr*`})] -[visit_exp externaddr*{externaddr <- `externaddr*`}] -[scope_enter externaddr] -[visit_exp externaddr] -[visit_id externaddr] not free -[visit_id externaddr] not free -[scope_exit externaddr] -[visit_exp `externaddr*`] -[visit_id externaddr*] not free -[visit_id externaddr*] no dims -[visit_exp (dt*{dt <- `dt*`} = $alloctypes(type*{type <- `type*`}))] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] no dims -[visit_id dt*] -[visit_exp $alloctypes(type*{type <- `type*`})] -[visit_exp type*{type <- `type*`}] -[scope_enter type] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] not free -[visit_id type*] no dims -[visit_exp (fa*{fa <- `fa*`} = (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){})] -[visit_exp fa*{fa <- `fa*`}] -[scope_enter fa] -[visit_exp fa] -[visit_id fa] not free -[visit_id fa] not free -[scope_exit fa] -[visit_exp `fa*`] -[visit_id fa*] no dims -[visit_id fa*] -[visit_exp (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}] -[scope_enter i_F] -[visit_exp (|s.`FUNCS`_store| + i_F)] -[visit_exp |s.`FUNCS`_store|] -[visit_exp s.`FUNCS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp i_F] -[visit_id i_F] -[visit_id i_F] not free -[scope_exit i_F] -[visit_exp |func*{func <- `func*`}|] -[visit_exp func*{func <- `func*`}] -[scope_enter func] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] not free -[visit_id func*] no dims -[visit_exp ((s_1, aa*{aa <- `aa*`}) = $alloctags(s, $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tagtype <- `tagtype*`}))] -[visit_exp (s_1, aa*{aa <- `aa*`})] -[visit_exp s_1] -[visit_id s_1] -[visit_exp aa*{aa <- `aa*`}] -[scope_enter aa] -[visit_exp aa] -[visit_id aa] not free -[visit_id aa] not free -[scope_exit aa] -[visit_exp `aa*`] -[visit_id aa*] no dims -[visit_id aa*] -[visit_exp $alloctags(s, $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tagtype <- `tagtype*`})] -[visit_exp s] -[visit_id s] not free -[visit_exp $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tagtype <- `tagtype*`}] -[scope_enter tagtype] -[visit_exp $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp tagtype] -[visit_id tagtype] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_id tagtype] not free -[scope_exit tagtype] -[visit_exp `tagtype*`] -[visit_id tagtype*] not free -[visit_id tagtype*] no dims -[visit_exp ((s_2, ga*{ga <- `ga*`}) = $allocglobals(s_1, $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{globaltype <- `globaltype*`}, val_G*{val_G <- `val_G*`}))] -[visit_exp (s_2, ga*{ga <- `ga*`})] -[visit_exp s_2] -[visit_id s_2] -[visit_exp ga*{ga <- `ga*`}] -[scope_enter ga] -[visit_exp ga] -[visit_id ga] not free -[visit_id ga] not free -[scope_exit ga] -[visit_exp `ga*`] -[visit_id ga*] no dims -[visit_id ga*] -[visit_exp $allocglobals(s_1, $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{globaltype <- `globaltype*`}, val_G*{val_G <- `val_G*`})] -[visit_exp s_1] -[visit_id s_1] not free -[visit_exp $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{globaltype <- `globaltype*`}] -[scope_enter globaltype] -[visit_exp $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp globaltype] -[visit_id globaltype] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_id globaltype] not free -[scope_exit globaltype] -[visit_exp `globaltype*`] -[visit_id globaltype*] not free -[visit_id globaltype*] no dims -[visit_exp val_G*{val_G <- `val_G*`}] -[scope_enter val_G] -[visit_exp val_G] -[visit_id val_G] not free -[visit_id val_G] not free -[scope_exit val_G] -[visit_exp `val_G*`] -[visit_id val_G*] not free -[visit_id val_G*] no dims -[visit_exp ((s_3, ma*{ma <- `ma*`}) = $allocmems(s_2, $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{memtype <- `memtype*`}))] -[visit_exp (s_3, ma*{ma <- `ma*`})] -[visit_exp s_3] -[visit_id s_3] -[visit_exp ma*{ma <- `ma*`}] -[scope_enter ma] -[visit_exp ma] -[visit_id ma] not free -[visit_id ma] not free -[scope_exit ma] -[visit_exp `ma*`] -[visit_id ma*] no dims -[visit_id ma*] -[visit_exp $allocmems(s_2, $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{memtype <- `memtype*`})] -[visit_exp s_2] -[visit_id s_2] not free -[visit_exp $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{memtype <- `memtype*`}] -[scope_enter memtype] -[visit_exp $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp memtype] -[visit_id memtype] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_id memtype] not free -[scope_exit memtype] -[visit_exp `memtype*`] -[visit_id memtype*] not free -[visit_id memtype*] no dims -[visit_exp ((s_4, ta*{ta <- `ta*`}) = $alloctables(s_3, $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tabletype <- `tabletype*`}, ref_T*{ref_T <- `ref_T*`}))] -[visit_exp (s_4, ta*{ta <- `ta*`})] -[visit_exp s_4] -[visit_id s_4] -[visit_exp ta*{ta <- `ta*`}] -[scope_enter ta] -[visit_exp ta] -[visit_id ta] not free -[visit_id ta] not free -[scope_exit ta] -[visit_exp `ta*`] -[visit_id ta*] no dims -[visit_id ta*] -[visit_exp $alloctables(s_3, $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tabletype <- `tabletype*`}, ref_T*{ref_T <- `ref_T*`})] -[visit_exp s_3] -[visit_id s_3] not free -[visit_exp $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tabletype <- `tabletype*`}] -[scope_enter tabletype] -[visit_exp $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp tabletype] -[visit_id tabletype] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_id tabletype] not free -[scope_exit tabletype] -[visit_exp `tabletype*`] -[visit_id tabletype*] not free -[visit_id tabletype*] no dims -[visit_exp ref_T*{ref_T <- `ref_T*`}] -[scope_enter ref_T] -[visit_exp ref_T] -[visit_id ref_T] not free -[visit_id ref_T] not free -[scope_exit ref_T] -[visit_exp `ref_T*`] -[visit_id ref_T*] not free -[visit_id ref_T*] no dims -[visit_exp ((s_5, da*{da <- `da*`}) = $allocdatas(s_4, `OK`_datatype^|data*{data <- `data*`}|{}, byte*{byte <- `byte*`}*{`byte*` <- `byte**`}))] -[visit_exp (s_5, da*{da <- `da*`})] -[visit_exp s_5] -[visit_id s_5] -[visit_exp da*{da <- `da*`}] -[scope_enter da] -[visit_exp da] -[visit_id da] not free -[visit_id da] not free -[scope_exit da] -[visit_exp `da*`] -[visit_id da*] no dims -[visit_id da*] -[visit_exp $allocdatas(s_4, `OK`_datatype^|data*{data <- `data*`}|{}, byte*{byte <- `byte*`}*{`byte*` <- `byte**`})] -[visit_exp s_4] -[visit_id s_4] not free -[visit_exp `OK`_datatype^|data*{data <- `data*`}|{}] -[visit_exp `OK`_datatype] -[visit_exp ()] -[visit_exp |data*{data <- `data*`}|] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] not free -[visit_id data*] no dims -[visit_exp byte*{byte <- `byte*`}*{`byte*` <- `byte**`}] -[scope_enter byte*] -[visit_exp byte*{byte <- `byte*`}] -[scope_enter byte] -[visit_exp byte] -[visit_id byte] not free -[visit_id byte] not free -[scope_exit byte] -[visit_exp `byte*`] -[visit_id byte*] not free -[visit_id byte*] no dims -[visit_id byte*] not free -[visit_id byte*] no dims -[scope_exit byte*] -[visit_exp `byte**`] -[visit_id byte**] not free -[visit_id byte**] no dims -[visit_exp ((s_6, ea*{ea <- `ea*`}) = $allocelems(s_5, $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{elemtype <- `elemtype*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}))] -[visit_exp (s_6, ea*{ea <- `ea*`})] -[visit_exp s_6] -[visit_id s_6] -[visit_exp ea*{ea <- `ea*`}] -[scope_enter ea] -[visit_exp ea] -[visit_id ea] not free -[visit_id ea] not free -[scope_exit ea] -[visit_exp `ea*`] -[visit_id ea*] no dims -[visit_id ea*] -[visit_exp $allocelems(s_5, $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{elemtype <- `elemtype*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})] -[visit_exp s_5] -[visit_id s_5] not free -[visit_exp $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{elemtype <- `elemtype*`}] -[scope_enter elemtype] -[visit_exp $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})] -[visit_exp elemtype] -[visit_id elemtype] not free -[visit_exp (dt : deftype <: typeuse)*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp (dt : deftype <: typeuse)] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_id elemtype] not free -[scope_exit elemtype] -[visit_exp `elemtype*`] -[visit_id elemtype*] not free -[visit_id elemtype*] no dims -[visit_exp ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}] -[scope_enter ref_E*] -[visit_exp ref_E*{ref_E <- `ref_E*`}] -[scope_enter ref_E] -[visit_exp ref_E] -[visit_id ref_E] not free -[visit_id ref_E] not free -[scope_exit ref_E] -[visit_exp `ref_E*`] -[visit_id ref_E*] not free -[visit_id ref_E*] no dims -[visit_id ref_E*] not free -[visit_id ref_E*] no dims -[scope_exit ref_E*] -[visit_exp `ref_E**`] -[visit_id ref_E**] not free -[visit_id ref_E**] no dims -[visit_exp ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx.0]*{x <- `x*`}, `FUNC`_funccode(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{}))] -[visit_exp (s_7, fa*{fa <- `fa*`})] -[visit_exp s_7] -[visit_id s_7] not free -[visit_exp fa*{fa <- `fa*`}] -[scope_enter fa] -[visit_exp fa] -[visit_id fa] not free -[visit_id fa] not free -[scope_exit fa] -[visit_exp `fa*`] -[visit_id fa*] not free -[visit_id fa*] no dims -[visit_exp $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx.0]*{x <- `x*`}, `FUNC`_funccode(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})] -[visit_exp s_6] -[visit_id s_6] not free -[visit_exp dt*{dt <- `dt*`}[x!`%`_idx.0]*{x <- `x*`}] -[scope_enter x] -[visit_exp dt*{dt <- `dt*`}[x!`%`_idx.0]] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[visit_exp `FUNC`_funccode(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}] -[scope_enter expr_F] -[scope_enter local*] -[scope_enter x] -[visit_exp `FUNC`_funccode(x, local*{local <- `local*`}, expr_F)] -[visit_exp (x, local*{local <- `local*`}, expr_F)] -[visit_exp x] -[visit_id x] not free -[visit_exp local*{local <- `local*`}] -[scope_enter local] -[visit_exp local] -[visit_id local] not free -[visit_id local] not free -[scope_exit local] -[visit_exp `local*`] -[visit_id local*] not free -[visit_id local*] no dims -[visit_exp expr_F] -[visit_id expr_F] not free -[visit_id expr_F] not free -[visit_id local*] not free -[visit_id local*] no dims -[visit_id x] not free -[scope_exit x] -[scope_exit local*] -[scope_exit expr_F] -[visit_exp `expr_F*`] -[visit_id expr_F*] not free -[visit_id expr_F*] no dims -[visit_exp `local**`] -[visit_id local**] not free -[visit_id local**] no dims -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[visit_exp moduleinst^|func*{func <- `func*`}|{}] -[visit_exp moduleinst] -[visit_id moduleinst] not free -[visit_exp |func*{func <- `func*`}|] -[visit_exp func*{func <- `func*`}] -[scope_enter func] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] not free -[visit_id func*] no dims -[visit_exp (xi*{xi <- `xi*`} = $allocexports({`TYPES` [], `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` [], `ELEMS` [], `EXPORTS` []}, export*{export <- `export*`}))] -[visit_exp xi*{xi <- `xi*`}] -[scope_enter xi] -[visit_exp xi] -[visit_id xi] not free -[visit_id xi] not free -[scope_exit xi] -[visit_exp `xi*`] -[visit_id xi*] no dims -[visit_id xi*] -[visit_exp $allocexports({`TYPES` [], `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` [], `ELEMS` [], `EXPORTS` []}, export*{export <- `export*`})] -[visit_exp {`TYPES` [], `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` [], `ELEMS` [], `EXPORTS` []}] -[visit_exp []] -[visit_exp aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}] -[visit_exp aa_I*{aa_I <- `aa_I*`}] -[scope_enter aa_I] -[visit_exp aa_I] -[visit_id aa_I] not free -[visit_id aa_I] not free -[scope_exit aa_I] -[visit_exp `aa_I*`] -[visit_id aa_I*] not free -[visit_id aa_I*] no dims -[visit_exp aa*{aa <- `aa*`}] -[scope_enter aa] -[visit_exp aa] -[visit_id aa] not free -[visit_id aa] not free -[scope_exit aa] -[visit_exp `aa*`] -[visit_id aa*] not free -[visit_id aa*] no dims -[visit_exp ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}] -[visit_exp ga_I*{ga_I <- `ga_I*`}] -[scope_enter ga_I] -[visit_exp ga_I] -[visit_id ga_I] not free -[visit_id ga_I] not free -[scope_exit ga_I] -[visit_exp `ga_I*`] -[visit_id ga_I*] not free -[visit_id ga_I*] no dims -[visit_exp ga*{ga <- `ga*`}] -[scope_enter ga] -[visit_exp ga] -[visit_id ga] not free -[visit_id ga] not free -[scope_exit ga] -[visit_exp `ga*`] -[visit_id ga*] not free -[visit_id ga*] no dims -[visit_exp ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}] -[visit_exp ma_I*{ma_I <- `ma_I*`}] -[scope_enter ma_I] -[visit_exp ma_I] -[visit_id ma_I] not free -[visit_id ma_I] not free -[scope_exit ma_I] -[visit_exp `ma_I*`] -[visit_id ma_I*] not free -[visit_id ma_I*] no dims -[visit_exp ma*{ma <- `ma*`}] -[scope_enter ma] -[visit_exp ma] -[visit_id ma] not free -[visit_id ma] not free -[scope_exit ma] -[visit_exp `ma*`] -[visit_id ma*] not free -[visit_id ma*] no dims -[visit_exp ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}] -[visit_exp ta_I*{ta_I <- `ta_I*`}] -[scope_enter ta_I] -[visit_exp ta_I] -[visit_id ta_I] not free -[visit_id ta_I] not free -[scope_exit ta_I] -[visit_exp `ta_I*`] -[visit_id ta_I*] not free -[visit_id ta_I*] no dims -[visit_exp ta*{ta <- `ta*`}] -[scope_enter ta] -[visit_exp ta] -[visit_id ta] not free -[visit_id ta] not free -[scope_exit ta] -[visit_exp `ta*`] -[visit_id ta*] not free -[visit_id ta*] no dims -[visit_exp fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}] -[visit_exp fa_I*{fa_I <- `fa_I*`}] -[scope_enter fa_I] -[visit_exp fa_I] -[visit_id fa_I] not free -[visit_id fa_I] not free -[scope_exit fa_I] -[visit_exp `fa_I*`] -[visit_id fa_I*] not free -[visit_id fa_I*] no dims -[visit_exp fa*{fa <- `fa*`}] -[scope_enter fa] -[visit_exp fa] -[visit_id fa] not free -[visit_id fa] not free -[scope_exit fa] -[visit_exp `fa*`] -[visit_id fa*] not free -[visit_id fa*] no dims -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp export*{export <- `export*`}] -[scope_enter export] -[visit_exp export] -[visit_id export] not free -[visit_id export] not free -[scope_exit export] -[visit_exp `export*`] -[visit_id export*] not free -[visit_id export*] no dims -[visit_exp (moduleinst = {`TYPES` dt*{dt <- `dt*`}, `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` da*{da <- `da*`}, `ELEMS` ea*{ea <- `ea*`}, `EXPORTS` xi*{xi <- `xi*`}})] -[visit_exp moduleinst] -[visit_id moduleinst] not free -[visit_exp {`TYPES` dt*{dt <- `dt*`}, `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` da*{da <- `da*`}, `ELEMS` ea*{ea <- `ea*`}, `EXPORTS` xi*{xi <- `xi*`}}] -[visit_exp dt*{dt <- `dt*`}] -[scope_enter dt] -[visit_exp dt] -[visit_id dt] not free -[visit_id dt] not free -[scope_exit dt] -[visit_exp `dt*`] -[visit_id dt*] not free -[visit_id dt*] no dims -[visit_exp aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}] -[visit_exp aa_I*{aa_I <- `aa_I*`}] -[scope_enter aa_I] -[visit_exp aa_I] -[visit_id aa_I] not free -[visit_id aa_I] not free -[scope_exit aa_I] -[visit_exp `aa_I*`] -[visit_id aa_I*] not free -[visit_id aa_I*] no dims -[visit_exp aa*{aa <- `aa*`}] -[scope_enter aa] -[visit_exp aa] -[visit_id aa] not free -[visit_id aa] not free -[scope_exit aa] -[visit_exp `aa*`] -[visit_id aa*] not free -[visit_id aa*] no dims -[visit_exp ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}] -[visit_exp ga_I*{ga_I <- `ga_I*`}] -[scope_enter ga_I] -[visit_exp ga_I] -[visit_id ga_I] not free -[visit_id ga_I] not free -[scope_exit ga_I] -[visit_exp `ga_I*`] -[visit_id ga_I*] not free -[visit_id ga_I*] no dims -[visit_exp ga*{ga <- `ga*`}] -[scope_enter ga] -[visit_exp ga] -[visit_id ga] not free -[visit_id ga] not free -[scope_exit ga] -[visit_exp `ga*`] -[visit_id ga*] not free -[visit_id ga*] no dims -[visit_exp ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}] -[visit_exp ma_I*{ma_I <- `ma_I*`}] -[scope_enter ma_I] -[visit_exp ma_I] -[visit_id ma_I] not free -[visit_id ma_I] not free -[scope_exit ma_I] -[visit_exp `ma_I*`] -[visit_id ma_I*] not free -[visit_id ma_I*] no dims -[visit_exp ma*{ma <- `ma*`}] -[scope_enter ma] -[visit_exp ma] -[visit_id ma] not free -[visit_id ma] not free -[scope_exit ma] -[visit_exp `ma*`] -[visit_id ma*] not free -[visit_id ma*] no dims -[visit_exp ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}] -[visit_exp ta_I*{ta_I <- `ta_I*`}] -[scope_enter ta_I] -[visit_exp ta_I] -[visit_id ta_I] not free -[visit_id ta_I] not free -[scope_exit ta_I] -[visit_exp `ta_I*`] -[visit_id ta_I*] not free -[visit_id ta_I*] no dims -[visit_exp ta*{ta <- `ta*`}] -[scope_enter ta] -[visit_exp ta] -[visit_id ta] not free -[visit_id ta] not free -[scope_exit ta] -[visit_exp `ta*`] -[visit_id ta*] not free -[visit_id ta*] no dims -[visit_exp fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}] -[visit_exp fa_I*{fa_I <- `fa_I*`}] -[scope_enter fa_I] -[visit_exp fa_I] -[visit_id fa_I] not free -[visit_id fa_I] not free -[scope_exit fa_I] -[visit_exp `fa_I*`] -[visit_id fa_I*] not free -[visit_id fa_I*] no dims -[visit_exp fa*{fa <- `fa*`}] -[scope_enter fa] -[visit_exp fa] -[visit_id fa] not free -[visit_id fa] not free -[scope_exit fa] -[visit_exp `fa*`] -[visit_id fa*] not free -[visit_id fa*] no dims -[visit_exp da*{da <- `da*`}] -[scope_enter da] -[visit_exp da] -[visit_id da] not free -[visit_id da] not free -[scope_exit da] -[visit_exp `da*`] -[visit_id da*] not free -[visit_id da*] no dims -[visit_exp ea*{ea <- `ea*`}] -[scope_enter ea] -[visit_exp ea] -[visit_id ea] not free -[visit_id ea] not free -[scope_exit ea] -[visit_exp `ea*`] -[visit_id ea*] not free -[visit_id ea*] no dims -[visit_exp xi*{xi <- `xi*`}] -[scope_enter xi] -[visit_exp xi] -[visit_id xi] not free -[visit_id xi] not free -[scope_exit xi] -[visit_exp `xi*`] -[visit_id xi*] not free -[visit_id xi*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocmodule{s : store, module : module, `externaddr*` : externaddr*, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, s_7 : store, moduleinst : moduleinst, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `tagtype*` : tagtype*, `expr_G*` : expr*, `globaltype*` : globaltype*, `memtype*` : memtype*, `expr_T*` : expr*, `tabletype*` : tabletype*, `expr_F*` : expr*, `local**` : local**, `x*` : idx*, `byte**` : byte**, `datamode*` : datamode*, `elemmode*` : elemmode*, `elemtype*` : elemtype*, `expr_E**` : expr**, `aa_I*` : tagaddr*, `ga_I*` : globaladdr*, `ma_I*` : memaddr*, `ta_I*` : tableaddr*, `fa_I*` : funcaddr*, `dt*` : deftype*, `fa*` : nat*, i_F : nat, s_1 : store, `aa*` : tagaddr*, s_2 : store, `ga*` : globaladdr*, s_3 : store, `ma*` : memaddr*, s_4 : store, `ta*` : tableaddr*, s_5 : store, `da*` : dataaddr*, s_6 : store, `ea*` : elemaddr*, `xi*` : exportinst*}(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}) = (s_7, moduleinst) - -- if (module = `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) - -- if (tag*{tag <- `tag*`} = `TAG`_tag(tagtype)*{tagtype <- `tagtype*`}) - -- if (global*{global <- `global*`} = `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}) - -- if (mem*{mem <- `mem*`} = `MEMORY`_mem(memtype)*{memtype <- `memtype*`}) - -- if (table*{table <- `table*`} = `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}) - -- if (func*{func <- `func*`} = `FUNC`_func(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}) - -- if (data*{data <- `data*`} = `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}) - -- if (elem*{elem <- `elem*`} = `ELEM`_elem(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemtype <- `elemtype*`, `expr_E*` <- `expr_E**`}) - -- if (aa_I*{aa_I <- `aa_I*`} = $tagsxa(externaddr*{externaddr <- `externaddr*`})) - -- if (ga_I*{ga_I <- `ga_I*`} = $globalsxa(externaddr*{externaddr <- `externaddr*`})) - -- if (ma_I*{ma_I <- `ma_I*`} = $memsxa(externaddr*{externaddr <- `externaddr*`})) - -- if (ta_I*{ta_I <- `ta_I*`} = $tablesxa(externaddr*{externaddr <- `externaddr*`})) - -- if (fa_I*{fa_I <- `fa_I*`} = $funcsxa(externaddr*{externaddr <- `externaddr*`})) - -- if (dt*{dt <- `dt*`} = $alloctypes(type*{type <- `type*`})) - -- if (fa*{fa <- `fa*`} = (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}) - -- if ((s_1, aa*{aa <- `aa*`}) = $alloctags(s, $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tagtype <- `tagtype*`})) - -- if ((s_2, ga*{ga <- `ga*`}) = $allocglobals(s_1, $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{globaltype <- `globaltype*`}, val_G*{val_G <- `val_G*`})) - -- if ((s_3, ma*{ma <- `ma*`}) = $allocmems(s_2, $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{memtype <- `memtype*`})) - -- if ((s_4, ta*{ta <- `ta*`}) = $alloctables(s_3, $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tabletype <- `tabletype*`}, ref_T*{ref_T <- `ref_T*`})) - -- if ((s_5, da*{da <- `da*`}) = $allocdatas(s_4, `OK`_datatype^|data*{data <- `data*`}|{}, byte*{byte <- `byte*`}*{`byte*` <- `byte**`})) - -- if ((s_6, ea*{ea <- `ea*`}) = $allocelems(s_5, $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{elemtype <- `elemtype*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})) - -- if ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx.0]*{x <- `x*`}, `FUNC`_funccode(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})) - -- if (xi*{xi <- `xi*`} = $allocexports({`TYPES` [], `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` [], `ELEMS` [], `EXPORTS` []}, export*{export <- `export*`})) - -- if (moduleinst = {`TYPES` dt*{dt <- `dt*`}, `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` da*{da <- `da*`}, `ELEMS` ea*{ea <- `ea*`}, `EXPORTS` xi*{xi <- `xi*`}}) -[check_dims] data dataidx -DecD rundata_(dataidx : dataidx, data : data) : instr* -[visit_id dataidx] not free -[visit_id data] not free -[check_dims] b n x -[visit_exp x] -[visit_id x] -[visit_exp `DATA`_data(b^n{b <- `b*`}, `PASSIVE`_datamode)] -[visit_exp (b^n{b <- `b*`}, `PASSIVE`_datamode)] -[visit_exp b^n{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp n] -[visit_id n] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp `PASSIVE`_datamode] -[visit_exp ()] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $rundata_{x : idx, n : n, `b*` : byte*}(x, `DATA`_data(b^n{b <- `b*`}, `PASSIVE`_datamode)) = [] -[check_dims] b instr n x y -[visit_exp x] -[visit_id x] -[visit_exp `DATA`_data(b^n{b <- `b*`}, `ACTIVE`_datamode(y, instr*{instr <- `instr*`}))] -[visit_exp (b^n{b <- `b*`}, `ACTIVE`_datamode(y, instr*{instr <- `instr*`}))] -[visit_exp b^n{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp n] -[visit_id n] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp `ACTIVE`_datamode(y, instr*{instr <- `instr*`})] -[visit_exp (y, instr*{instr <- `instr*`})] -[visit_exp y] -[visit_id y] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp instr*{instr <- `instr*`} ++ [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(y, x) `DATA.DROP`_instr(x)]] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(y, x) `DATA.DROP`_instr(x)]] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(0))] -[visit_exp (`I32`_numtype, `%`_num_(0))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp `MEMORY.INIT`_instr(y, x)] -[visit_exp (y, x)] -[visit_exp y] -[visit_id y] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `DATA.DROP`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $rundata_{x : idx, n : n, `b*` : byte*, y : idx, `instr*` : instr*}(x, `DATA`_data(b^n{b <- `b*`}, `ACTIVE`_datamode(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(y, x) `DATA.DROP`_instr(x)] -[check_dims] elem elemidx -DecD runelem_(elemidx : elemidx, elem : elem) : instr* -[visit_id elemidx] not free -[visit_id elem] not free -[check_dims] e n rt x -[visit_exp x] -[visit_id x] -[visit_exp `ELEM`_elem(rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)] -[visit_exp (rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)] -[visit_exp rt] -[visit_id rt] -[visit_exp e^n{e <- `e*`}] -[scope_enter e] -[visit_exp e] -[visit_id e] not free -[visit_id e] not free -[scope_exit e] -[visit_exp n] -[visit_id n] -[visit_exp `e*`] -[visit_id e*] no dims -[visit_id e*] -[visit_exp `PASSIVE`_elemmode] -[visit_exp ()] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*}(x, `ELEM`_elem(rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)) = [] -[check_dims] e n rt x -[visit_exp x] -[visit_id x] -[visit_exp `ELEM`_elem(rt, e^n{e <- `e*`}, `DECLARE`_elemmode)] -[visit_exp (rt, e^n{e <- `e*`}, `DECLARE`_elemmode)] -[visit_exp rt] -[visit_id rt] -[visit_exp e^n{e <- `e*`}] -[scope_enter e] -[visit_exp e] -[visit_id e] not free -[visit_id e] not free -[scope_exit e] -[visit_exp n] -[visit_id n] -[visit_exp `e*`] -[visit_id e*] no dims -[visit_id e*] -[visit_exp `DECLARE`_elemmode] -[visit_exp ()] -[visit_exp [`ELEM.DROP`_instr(x)]] -[visit_exp `ELEM.DROP`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*}(x, `ELEM`_elem(rt, e^n{e <- `e*`}, `DECLARE`_elemmode)) = [`ELEM.DROP`_instr(x)] -[check_dims] e instr n rt x y -[visit_exp x] -[visit_id x] -[visit_exp `ELEM`_elem(rt, e^n{e <- `e*`}, `ACTIVE`_elemmode(y, instr*{instr <- `instr*`}))] -[visit_exp (rt, e^n{e <- `e*`}, `ACTIVE`_elemmode(y, instr*{instr <- `instr*`}))] -[visit_exp rt] -[visit_id rt] -[visit_exp e^n{e <- `e*`}] -[scope_enter e] -[visit_exp e] -[visit_id e] not free -[visit_id e] not free -[scope_exit e] -[visit_exp n] -[visit_id n] -[visit_exp `e*`] -[visit_id e*] no dims -[visit_id e*] -[visit_exp `ACTIVE`_elemmode(y, instr*{instr <- `instr*`})] -[visit_exp (y, instr*{instr <- `instr*`})] -[visit_exp y] -[visit_id y] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp instr*{instr <- `instr*`} ++ [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(y, x) `ELEM.DROP`_instr(x)]] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(y, x) `ELEM.DROP`_instr(x)]] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(0))] -[visit_exp (`I32`_numtype, `%`_num_(0))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp `CONST`_instr(`I32`_numtype, `%`_num_(n))] -[visit_exp (`I32`_numtype, `%`_num_(n))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `%`_num_(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp `TABLE.INIT`_instr(y, x)] -[visit_exp (y, x)] -[visit_exp y] -[visit_id y] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `ELEM.DROP`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*, y : idx, `instr*` : instr*}(x, `ELEM`_elem(rt, e^n{e <- `e*`}, `ACTIVE`_elemmode(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(y, x) `ELEM.DROP`_instr(x)] -[check_dims] _ state -DecD evalglobals(state : state, globaltype*, expr*) : (state, val*) -[visit_id state] not free -[visit_id _] not free -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] z -[visit_exp z] -[visit_id z] -[visit_exp []] -[visit_exp []] -[visit_exp (z, [])] -[visit_exp z] -[visit_id z] not free -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $evalglobals{z : state}(z, [], []) = (z, []) -[check_dims] a expr expr' f gt gt' s s' val val' z z' -[visit_exp z] -[visit_id z] -[visit_exp [gt] ++ gt'*{gt' <- `gt'*`}] -[visit_exp [gt]] -[visit_exp gt] -[visit_id gt] -[visit_exp gt'*{gt' <- `gt'*`}] -[scope_enter gt'] -[visit_exp gt'] -[visit_id gt'] not free -[visit_id gt'] not free -[scope_exit gt'] -[visit_exp `gt'*`] -[visit_id gt'*] no dims -[visit_id gt'*] -[visit_exp [expr] ++ expr'*{expr' <- `expr'*`}] -[visit_exp [expr]] -[visit_exp expr] -[visit_id expr] -[visit_exp expr'*{expr' <- `expr'*`}] -[scope_enter expr'] -[visit_exp expr'] -[visit_id expr'] not free -[visit_id expr'] not free -[scope_exit expr'] -[visit_exp `expr'*`] -[visit_id expr'*] no dims -[visit_id expr'*] -[visit_exp (z', [val] ++ val'*{val' <- `val'*`})] -[visit_exp z'] -[visit_id z'] -[visit_exp [val] ++ val'*{val' <- `val'*`}] -[visit_exp [val]] -[visit_exp val] -[visit_id val] -[visit_exp val'*{val' <- `val'*`}] -[scope_enter val'] -[visit_exp val'] -[visit_id val'] not free -[visit_id val'] not free -[scope_exit val'] -[visit_exp `val'*`] -[visit_id val'*] no dims -[visit_id val'*] -[visit_exp (z, expr, z, [val])] -[visit_exp z] -[visit_id z] not free -[visit_exp expr] -[visit_id expr] not free -[visit_exp z] -[visit_id z] not free -[visit_exp [val]] -[visit_exp val] -[visit_id val] not free -[visit_exp (z = `%;%`_state(s, f))] -[visit_exp z] -[visit_id z] not free -[visit_exp `%;%`_state(s, f)] -[visit_exp (s, f)] -[visit_exp s] -[visit_id s] -[visit_exp f] -[visit_id f] -[visit_exp ((s', a) = $allocglobal(s, gt, val))] -[visit_exp (s', a)] -[visit_exp s'] -[visit_id s'] -[visit_exp a] -[visit_id a] -[visit_exp $allocglobal(s, gt, val)] -[visit_exp s] -[visit_id s] not free -[visit_exp gt] -[visit_id gt] not free -[visit_exp val] -[visit_id val] not free -[visit_exp ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state(s', f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`}))] -[visit_exp (z', val'*{val' <- `val'*`})] -[visit_exp z'] -[visit_id z'] not free -[visit_exp val'*{val' <- `val'*`}] -[scope_enter val'] -[visit_exp val'] -[visit_id val'] not free -[visit_id val'] not free -[scope_exit val'] -[visit_exp `val'*`] -[visit_id val'*] not free -[visit_id val'*] no dims -[visit_exp $evalglobals(`%;%`_state(s', f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})] -[visit_exp `%;%`_state(s', f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]])] -[visit_exp (s', f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]])] -[visit_exp s'] -[visit_id s'] not free -[visit_exp f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]]] -[visit_exp f] -[visit_id f] not free -[visit_exp [a]] -[visit_exp a] -[visit_id a] not free -[visit_exp gt'*{gt' <- `gt'*`}] -[scope_enter gt'] -[visit_exp gt'] -[visit_id gt'] not free -[visit_id gt'] not free -[scope_exit gt'] -[visit_exp `gt'*`] -[visit_id gt'*] not free -[visit_id gt'*] no dims -[visit_exp expr'*{expr' <- `expr'*`}] -[scope_enter expr'] -[visit_exp expr'] -[visit_id expr'] not free -[visit_id expr'] not free -[scope_exit expr'] -[visit_exp `expr'*`] -[visit_id expr'*] not free -[visit_id expr'*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $evalglobals{z : state, gt : globaltype, `gt'*` : globaltype*, expr : expr, `expr'*` : expr*, z' : state, val : val, `val'*` : val*, s : store, f : frame, s' : store, a : addr}(z, [gt] ++ gt'*{gt' <- `gt'*`}, [expr] ++ expr'*{expr' <- `expr'*`}) = (z', [val] ++ val'*{val' <- `val'*`}) - -- Eval_expr: `%;%~>*%;%`(z, expr, z, [val]) - -- if (z = `%;%`_state(s, f)) - -- if ((s', a) = $allocglobal(s, gt, val)) - -- if ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state(s', f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})) -[check_dims] _ module store -DecD instantiate(store : store, module : module, externaddr*) : config -[visit_id store] not free -[visit_id module] not free -[visit_id _] not free -[check_dims] byte data datamode elem elemmode export expr_E expr_G expr_T externaddr func global globaltype i_D i_E i_F import instr_D instr_E instr_S mem module moduleinst moduleinst_0 ref_E ref_T reftype s s' start table tabletype tag type val_G x xt_E xt_I z z' -[visit_exp s] -[visit_id s] -[visit_exp module] -[visit_id module] -[visit_exp externaddr*{externaddr <- `externaddr*`}] -[scope_enter externaddr] -[visit_exp externaddr] -[visit_id externaddr] not free -[visit_id externaddr] not free -[scope_exit externaddr] -[visit_exp `externaddr*`] -[visit_id externaddr*] no dims -[visit_id externaddr*] -[visit_exp `%;%`_config(`%;%`_state(s', {`LOCALS` [], `MODULE` moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`}))] -[visit_exp (`%;%`_state(s', {`LOCALS` [], `MODULE` moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`}))] -[visit_exp `%;%`_state(s', {`LOCALS` [], `MODULE` moduleinst})] -[visit_exp (s', {`LOCALS` [], `MODULE` moduleinst})] -[visit_exp s'] -[visit_id s'] -[visit_exp {`LOCALS` [], `MODULE` moduleinst}] -[visit_exp []] -[visit_exp moduleinst] -[visit_id moduleinst] -[visit_exp instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})] -[visit_exp instr_E*{instr_E <- `instr_E*`}] -[scope_enter instr_E] -[visit_exp instr_E] -[visit_id instr_E] not free -[visit_id instr_E] not free -[scope_exit instr_E] -[visit_exp `instr_E*`] -[visit_id instr_E*] no dims -[visit_id instr_E*] -[visit_exp instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})] -[visit_exp instr_D*{instr_D <- `instr_D*`}] -[scope_enter instr_D] -[visit_exp instr_D] -[visit_id instr_D] not free -[visit_id instr_D] not free -[scope_exit instr_D] -[visit_exp `instr_D*`] -[visit_id instr_D*] no dims -[visit_id instr_D*] -[visit_exp lift(instr_S?{instr_S <- `instr_S?`})] -[visit_exp instr_S?{instr_S <- `instr_S?`}] -[scope_enter instr_S] -[visit_exp instr_S] -[visit_id instr_S] not free -[visit_id instr_S] not free -[scope_exit instr_S] -[visit_exp `instr_S?`] -[visit_id instr_S?] no dims -[visit_id instr_S?] -[visit_exp (module, `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))] -[visit_exp module] -[visit_id module] not free -[visit_exp `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] -[visit_exp (xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})] -[visit_exp xt_I*{xt_I <- `xt_I*`}] -[scope_enter xt_I] -[visit_exp xt_I] -[visit_id xt_I] not free -[visit_id xt_I] not free -[scope_exit xt_I] -[visit_exp `xt_I*`] -[visit_id xt_I*] no dims -[visit_id xt_I*] -[visit_exp xt_E*{xt_E <- `xt_E*`}] -[scope_enter xt_E] -[visit_exp xt_E] -[visit_id xt_E] not free -[visit_id xt_E] not free -[scope_exit xt_E] -[visit_exp `xt_E*`] -[visit_id xt_E*] no dims -[visit_id xt_E*] -[scope_enter externaddr] -[scope_enter xt_I] -[visit_exp (s, externaddr, xt_I)] -[visit_exp s] -[visit_id s] not free -[visit_exp externaddr] -[visit_id externaddr] not free -[visit_exp xt_I] -[visit_id xt_I] not free -[visit_id externaddr] not free -[visit_id xt_I] not free -[scope_exit xt_I] -[scope_exit externaddr] -[visit_exp `externaddr*`] -[visit_id externaddr*] not free -[visit_id externaddr*] no dims -[visit_exp `xt_I*`] -[visit_id xt_I*] not free -[visit_id xt_I*] no dims -[visit_exp (module = `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}))] -[visit_exp module] -[visit_id module] not free -[visit_exp `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp type*{type <- `type*`}] -[scope_enter type] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] no dims -[visit_id type*] -[visit_exp import*{import <- `import*`}] -[scope_enter import] -[visit_exp import] -[visit_id import] not free -[visit_id import] not free -[scope_exit import] -[visit_exp `import*`] -[visit_id import*] no dims -[visit_id import*] -[visit_exp tag*{tag <- `tag*`}] -[scope_enter tag] -[visit_exp tag] -[visit_id tag] not free -[visit_id tag] not free -[scope_exit tag] -[visit_exp `tag*`] -[visit_id tag*] no dims -[visit_id tag*] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] no dims -[visit_id global*] -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] no dims -[visit_id mem*] -[visit_exp table*{table <- `table*`}] -[scope_enter table] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] no dims -[visit_id table*] -[visit_exp func*{func <- `func*`}] -[scope_enter func] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] no dims -[visit_id func*] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] no dims -[visit_id data*] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] no dims -[visit_id elem*] -[visit_exp start?{start <- `start?`}] -[scope_enter start] -[visit_exp start] -[visit_id start] not free -[visit_id start] not free -[scope_exit start] -[visit_exp `start?`] -[visit_id start?] no dims -[visit_id start?] -[visit_exp export*{export <- `export*`}] -[scope_enter export] -[visit_exp export] -[visit_id export] not free -[visit_id export] not free -[scope_exit export] -[visit_exp `export*`] -[visit_id export*] no dims -[visit_id export*] -[visit_exp (global*{global <- `global*`} = `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`})] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] not free -[visit_id global*] no dims -[visit_exp `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}] -[scope_enter expr_G] -[scope_enter globaltype] -[visit_exp `GLOBAL`_global(globaltype, expr_G)] -[visit_exp (globaltype, expr_G)] -[visit_exp globaltype] -[visit_id globaltype] not free -[visit_exp expr_G] -[visit_id expr_G] not free -[visit_id expr_G] not free -[visit_id globaltype] not free -[scope_exit globaltype] -[scope_exit expr_G] -[visit_exp `expr_G*`] -[visit_id expr_G*] no dims -[visit_id expr_G*] -[visit_exp `globaltype*`] -[visit_id globaltype*] no dims -[visit_id globaltype*] -[visit_exp (table*{table <- `table*`} = `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`})] -[visit_exp table*{table <- `table*`}] -[scope_enter table] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] not free -[visit_id table*] no dims -[visit_exp `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}] -[scope_enter expr_T] -[scope_enter tabletype] -[visit_exp `TABLE`_table(tabletype, expr_T)] -[visit_exp (tabletype, expr_T)] -[visit_exp tabletype] -[visit_id tabletype] not free -[visit_exp expr_T] -[visit_id expr_T] not free -[visit_id expr_T] not free -[visit_id tabletype] not free -[scope_exit tabletype] -[scope_exit expr_T] -[visit_exp `expr_T*`] -[visit_id expr_T*] no dims -[visit_id expr_T*] -[visit_exp `tabletype*`] -[visit_id tabletype*] no dims -[visit_id tabletype*] -[visit_exp (data*{data <- `data*`} = `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`})] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] not free -[visit_id data*] no dims -[visit_exp `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}] -[scope_enter byte*] -[scope_enter datamode] -[visit_exp `DATA`_data(byte*{byte <- `byte*`}, datamode)] -[visit_exp (byte*{byte <- `byte*`}, datamode)] -[visit_exp byte*{byte <- `byte*`}] -[scope_enter byte] -[visit_exp byte] -[visit_id byte] not free -[visit_id byte] not free -[scope_exit byte] -[visit_exp `byte*`] -[visit_id byte*] not free -[visit_id byte*] no dims -[visit_exp datamode] -[visit_id datamode] not free -[visit_id byte*] not free -[visit_id byte*] no dims -[visit_id datamode] not free -[scope_exit datamode] -[scope_exit byte*] -[visit_exp `byte**`] -[visit_id byte**] no dims -[visit_id byte**] -[visit_exp `datamode*`] -[visit_id datamode*] no dims -[visit_id datamode*] -[visit_exp (elem*{elem <- `elem*`} = `ELEM`_elem(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`})] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] not free -[visit_id elem*] no dims -[visit_exp `ELEM`_elem(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`}] -[scope_enter elemmode] -[scope_enter expr_E*] -[scope_enter reftype] -[visit_exp `ELEM`_elem(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)] -[visit_exp (reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)] -[visit_exp reftype] -[visit_id reftype] not free -[visit_exp expr_E*{expr_E <- `expr_E*`}] -[scope_enter expr_E] -[visit_exp expr_E] -[visit_id expr_E] not free -[visit_id expr_E] not free -[scope_exit expr_E] -[visit_exp `expr_E*`] -[visit_id expr_E*] not free -[visit_id expr_E*] no dims -[visit_exp elemmode] -[visit_id elemmode] not free -[visit_id elemmode] not free -[visit_id expr_E*] not free -[visit_id expr_E*] no dims -[visit_id reftype] not free -[scope_exit reftype] -[scope_exit expr_E*] -[scope_exit elemmode] -[visit_exp `elemmode*`] -[visit_id elemmode*] no dims -[visit_id elemmode*] -[visit_exp `expr_E**`] -[visit_id expr_E**] no dims -[visit_id expr_E**] -[visit_exp `reftype*`] -[visit_id reftype*] no dims -[visit_id reftype*] -[visit_exp (start?{start <- `start?`} = `START`_start(x)?{x <- `x?`})] -[visit_exp start?{start <- `start?`}] -[scope_enter start] -[visit_exp start] -[visit_id start] not free -[visit_id start] not free -[scope_exit start] -[visit_exp `start?`] -[visit_id start?] not free -[visit_id start?] no dims -[visit_exp `START`_start(x)?{x <- `x?`}] -[scope_enter x] -[visit_exp `START`_start(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x?`] -[visit_id x?] no dims -[visit_id x?] -[visit_exp (moduleinst_0 = {`TYPES` $alloctypes(type*{type <- `type*`}), `TAGS` [], `GLOBALS` $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS` [], `TABLES` [], `FUNCS` $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}, `DATAS` [], `ELEMS` [], `EXPORTS` []})] -[visit_exp moduleinst_0] -[visit_id moduleinst_0] -[visit_exp {`TYPES` $alloctypes(type*{type <- `type*`}), `TAGS` [], `GLOBALS` $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS` [], `TABLES` [], `FUNCS` $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}, `DATAS` [], `ELEMS` [], `EXPORTS` []}] -[visit_exp $alloctypes(type*{type <- `type*`})] -[visit_exp type*{type <- `type*`}] -[scope_enter type] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] not free -[visit_id type*] no dims -[visit_exp []] -[visit_exp $globalsxa(externaddr*{externaddr <- `externaddr*`})] -[visit_exp externaddr*{externaddr <- `externaddr*`}] -[scope_enter externaddr] -[visit_exp externaddr] -[visit_id externaddr] not free -[visit_id externaddr] not free -[scope_exit externaddr] -[visit_exp `externaddr*`] -[visit_id externaddr*] not free -[visit_id externaddr*] no dims -[visit_exp []] -[visit_exp []] -[visit_exp $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}] -[visit_exp $funcsxa(externaddr*{externaddr <- `externaddr*`})] -[visit_exp externaddr*{externaddr <- `externaddr*`}] -[scope_enter externaddr] -[visit_exp externaddr] -[visit_id externaddr] not free -[visit_id externaddr] not free -[scope_exit externaddr] -[visit_exp `externaddr*`] -[visit_id externaddr*] not free -[visit_id externaddr*] no dims -[visit_exp (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}] -[scope_enter i_F] -[visit_exp (|s.`FUNCS`_store| + i_F)] -[visit_exp |s.`FUNCS`_store|] -[visit_exp s.`FUNCS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp i_F] -[visit_id i_F] -[visit_id i_F] not free -[scope_exit i_F] -[visit_exp |func*{func <- `func*`}|] -[visit_exp func*{func <- `func*`}] -[scope_enter func] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] not free -[visit_id func*] no dims -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp (z = `%;%`_state(s, {`LOCALS` [], `MODULE` moduleinst_0}))] -[visit_exp z] -[visit_id z] -[visit_exp `%;%`_state(s, {`LOCALS` [], `MODULE` moduleinst_0})] -[visit_exp (s, {`LOCALS` [], `MODULE` moduleinst_0})] -[visit_exp s] -[visit_id s] not free -[visit_exp {`LOCALS` [], `MODULE` moduleinst_0}] -[visit_exp []] -[visit_exp moduleinst_0] -[visit_id moduleinst_0] not free -[visit_exp ((z', val_G*{val_G <- `val_G*`}) = $evalglobals(z, globaltype*{globaltype <- `globaltype*`}, expr_G*{expr_G <- `expr_G*`}))] -[visit_exp (z', val_G*{val_G <- `val_G*`})] -[visit_exp z'] -[visit_id z'] -[visit_exp val_G*{val_G <- `val_G*`}] -[scope_enter val_G] -[visit_exp val_G] -[visit_id val_G] not free -[visit_id val_G] not free -[scope_exit val_G] -[visit_exp `val_G*`] -[visit_id val_G*] no dims -[visit_id val_G*] -[visit_exp $evalglobals(z, globaltype*{globaltype <- `globaltype*`}, expr_G*{expr_G <- `expr_G*`})] -[visit_exp z] -[visit_id z] not free -[visit_exp globaltype*{globaltype <- `globaltype*`}] -[scope_enter globaltype] -[visit_exp globaltype] -[visit_id globaltype] not free -[visit_id globaltype] not free -[scope_exit globaltype] -[visit_exp `globaltype*`] -[visit_id globaltype*] not free -[visit_id globaltype*] no dims -[visit_exp expr_G*{expr_G <- `expr_G*`}] -[scope_enter expr_G] -[visit_exp expr_G] -[visit_id expr_G] not free -[visit_id expr_G] not free -[scope_exit expr_G] -[visit_exp `expr_G*`] -[visit_id expr_G*] not free -[visit_id expr_G*] no dims -[scope_enter expr_T] -[scope_enter ref_T] -[visit_exp (z', expr_T, z', [(ref_T : ref <: val)])] -[visit_exp z'] -[visit_id z'] not free -[visit_exp expr_T] -[visit_id expr_T] not free -[visit_exp z'] -[visit_id z'] not free -[visit_exp [(ref_T : ref <: val)]] -[visit_exp (ref_T : ref <: val)] -[visit_exp ref_T] -[visit_id ref_T] not free -[visit_id expr_T] not free -[visit_id ref_T] not free -[scope_exit ref_T] -[scope_exit expr_T] -[visit_exp `expr_T*`] -[visit_id expr_T*] not free -[visit_id expr_T*] no dims -[visit_exp `ref_T*`] -[visit_id ref_T*] no dims -[visit_id ref_T*] -[scope_enter expr_E*] -[scope_enter ref_E*] -[scope_enter expr_E] -[scope_enter ref_E] -[visit_exp (z', expr_E, z', [(ref_E : ref <: val)])] -[visit_exp z'] -[visit_id z'] not free -[visit_exp expr_E] -[visit_id expr_E] not free -[visit_exp z'] -[visit_id z'] not free -[visit_exp [(ref_E : ref <: val)]] -[visit_exp (ref_E : ref <: val)] -[visit_exp ref_E] -[visit_id ref_E] not free -[visit_id expr_E] not free -[visit_id ref_E] not free -[scope_exit ref_E] -[scope_exit expr_E] -[visit_exp `expr_E*`] -[visit_id expr_E*] not free -[visit_id expr_E*] no dims -[visit_exp `ref_E*`] -[visit_id ref_E*] not free -[visit_id ref_E*] no dims -[visit_id expr_E*] not free -[visit_id expr_E*] no dims -[visit_id ref_E*] not free -[visit_id ref_E*] no dims -[scope_exit ref_E*] -[scope_exit expr_E*] -[visit_exp `expr_E**`] -[visit_id expr_E**] not free -[visit_id expr_E**] no dims -[visit_exp `ref_E**`] -[visit_id ref_E**] no dims -[visit_id ref_E**] -[visit_exp ((s', moduleinst) = $allocmodule(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}))] -[visit_exp (s', moduleinst)] -[visit_exp s'] -[visit_id s'] not free -[visit_exp moduleinst] -[visit_id moduleinst] not free -[visit_exp $allocmodule(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})] -[visit_exp s] -[visit_id s] not free -[visit_exp module] -[visit_id module] not free -[visit_exp externaddr*{externaddr <- `externaddr*`}] -[scope_enter externaddr] -[visit_exp externaddr] -[visit_id externaddr] not free -[visit_id externaddr] not free -[scope_exit externaddr] -[visit_exp `externaddr*`] -[visit_id externaddr*] not free -[visit_id externaddr*] no dims -[visit_exp val_G*{val_G <- `val_G*`}] -[scope_enter val_G] -[visit_exp val_G] -[visit_id val_G] not free -[visit_id val_G] not free -[scope_exit val_G] -[visit_exp `val_G*`] -[visit_id val_G*] not free -[visit_id val_G*] no dims -[visit_exp ref_T*{ref_T <- `ref_T*`}] -[scope_enter ref_T] -[visit_exp ref_T] -[visit_id ref_T] not free -[visit_id ref_T] not free -[scope_exit ref_T] -[visit_exp `ref_T*`] -[visit_id ref_T*] not free -[visit_id ref_T*] no dims -[visit_exp ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}] -[scope_enter ref_E*] -[visit_exp ref_E*{ref_E <- `ref_E*`}] -[scope_enter ref_E] -[visit_exp ref_E] -[visit_id ref_E] not free -[visit_id ref_E] not free -[scope_exit ref_E] -[visit_exp `ref_E*`] -[visit_id ref_E*] not free -[visit_id ref_E*] no dims -[visit_id ref_E*] not free -[visit_id ref_E*] no dims -[scope_exit ref_E*] -[visit_exp `ref_E**`] -[visit_id ref_E**] not free -[visit_id ref_E**] no dims -[visit_exp (instr_D*{instr_D <- `instr_D*`} = $concat_(syntax instr, $rundata_(`%`_dataidx(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){}))] -[visit_exp instr_D*{instr_D <- `instr_D*`}] -[scope_enter instr_D] -[visit_exp instr_D] -[visit_id instr_D] not free -[visit_id instr_D] not free -[scope_exit instr_D] -[visit_exp `instr_D*`] -[visit_id instr_D*] not free -[visit_id instr_D*] no dims -[visit_exp $concat_(syntax instr, $rundata_(`%`_dataidx(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){})] -[visit_exp $rundata_(`%`_dataidx(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){}] -[scope_enter i_D] -[visit_exp $rundata_(`%`_dataidx(i_D), data*{data <- `data*`}[i_D])] -[visit_exp `%`_dataidx(i_D)] -[visit_exp (i_D)] -[visit_exp i_D] -[visit_id i_D] -[visit_exp data*{data <- `data*`}[i_D]] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] not free -[visit_id data*] no dims -[visit_exp i_D] -[visit_id i_D] not free -[visit_id i_D] not free -[scope_exit i_D] -[visit_exp |data*{data <- `data*`}|] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] not free -[visit_id data*] no dims -[visit_exp (instr_E*{instr_E <- `instr_E*`} = $concat_(syntax instr, $runelem_(`%`_elemidx(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){}))] -[visit_exp instr_E*{instr_E <- `instr_E*`}] -[scope_enter instr_E] -[visit_exp instr_E] -[visit_id instr_E] not free -[visit_id instr_E] not free -[scope_exit instr_E] -[visit_exp `instr_E*`] -[visit_id instr_E*] not free -[visit_id instr_E*] no dims -[visit_exp $concat_(syntax instr, $runelem_(`%`_elemidx(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){})] -[visit_exp $runelem_(`%`_elemidx(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){}] -[scope_enter i_E] -[visit_exp $runelem_(`%`_elemidx(i_E), elem*{elem <- `elem*`}[i_E])] -[visit_exp `%`_elemidx(i_E)] -[visit_exp (i_E)] -[visit_exp i_E] -[visit_id i_E] -[visit_exp elem*{elem <- `elem*`}[i_E]] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] not free -[visit_id elem*] no dims -[visit_exp i_E] -[visit_id i_E] not free -[visit_id i_E] not free -[scope_exit i_E] -[visit_exp |elem*{elem <- `elem*`}|] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] not free -[visit_id elem*] no dims -[visit_exp (instr_S?{instr_S <- `instr_S?`} = `CALL`_instr(x)?{x <- `x?`})] -[visit_exp instr_S?{instr_S <- `instr_S?`}] -[scope_enter instr_S] -[visit_exp instr_S] -[visit_id instr_S] not free -[visit_id instr_S] not free -[scope_exit instr_S] -[visit_exp `instr_S?`] -[visit_id instr_S?] not free -[visit_id instr_S?] no dims -[visit_exp `CALL`_instr(x)?{x <- `x?`}] -[scope_enter x] -[visit_exp `CALL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x?`] -[visit_id x?] not free -[visit_id x?] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $instantiate{s : store, module : module, `externaddr*` : externaddr*, s' : store, moduleinst : moduleinst, `instr_E*` : instr*, `instr_D*` : instr*, `instr_S?` : instr?, `xt_I*` : externtype*, `xt_E*` : externtype*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `expr_G*` : expr*, `globaltype*` : globaltype*, `expr_T*` : expr*, `tabletype*` : tabletype*, `byte**` : byte**, `datamode*` : datamode*, `elemmode*` : elemmode*, `expr_E**` : expr**, `reftype*` : reftype*, `x?` : idx?, moduleinst_0 : moduleinst, i_F : nat, z : state, z' : state, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, i_D : nat, i_E : nat}(s, module, externaddr*{externaddr <- `externaddr*`}) = `%;%`_config(`%;%`_state(s', {`LOCALS` [], `MODULE` moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})) - -- Module_ok: `|-%:%`(module, `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})) - -- (Externaddr_ok: `%|-%:%`(s, externaddr, xt_I))*{externaddr <- `externaddr*`, xt_I <- `xt_I*`} - -- if (module = `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) - -- if (global*{global <- `global*`} = `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}) - -- if (table*{table <- `table*`} = `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}) - -- if (data*{data <- `data*`} = `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}) - -- if (elem*{elem <- `elem*`} = `ELEM`_elem(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`}) - -- if (start?{start <- `start?`} = `START`_start(x)?{x <- `x?`}) - -- if (moduleinst_0 = {`TYPES` $alloctypes(type*{type <- `type*`}), `TAGS` [], `GLOBALS` $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS` [], `TABLES` [], `FUNCS` $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}, `DATAS` [], `ELEMS` [], `EXPORTS` []}) - -- if (z = `%;%`_state(s, {`LOCALS` [], `MODULE` moduleinst_0})) - -- if ((z', val_G*{val_G <- `val_G*`}) = $evalglobals(z, globaltype*{globaltype <- `globaltype*`}, expr_G*{expr_G <- `expr_G*`})) - -- (Eval_expr: `%;%~>*%;%`(z', expr_T, z', [(ref_T : ref <: val)]))*{expr_T <- `expr_T*`, ref_T <- `ref_T*`} - -- (Eval_expr: `%;%~>*%;%`(z', expr_E, z', [(ref_E : ref <: val)]))*{expr_E <- `expr_E*`, ref_E <- `ref_E*`}*{`expr_E*` <- `expr_E**`, `ref_E*` <- `ref_E**`} - -- if ((s', moduleinst) = $allocmodule(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})) - -- if (instr_D*{instr_D <- `instr_D*`} = $concat_(syntax instr, $rundata_(`%`_dataidx(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){})) - -- if (instr_E*{instr_E <- `instr_E*`} = $concat_(syntax instr, $runelem_(`%`_elemidx(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){})) - -- if (instr_S?{instr_S <- `instr_S?`} = `CALL`_instr(x)?{x <- `x?`}) -[check_dims] _ funcaddr store -DecD invoke(store : store, funcaddr : funcaddr, val*) : config -[visit_id store] not free -[visit_id funcaddr] not free -[visit_id _] not free -[check_dims] funcaddr s t_1 t_2 val -[visit_exp s] -[visit_id s] -[visit_exp funcaddr] -[visit_id funcaddr] -[visit_exp val*{val <- `val*`}] -[scope_enter val] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] no dims -[visit_id val*] -[visit_exp `%;%`_config(`%;%`_state(s, {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(funcaddr) `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))])] -[visit_exp (`%;%`_state(s, {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(funcaddr) `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))])] -[visit_exp `%;%`_state(s, {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}})] -[visit_exp (s, {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}})] -[visit_exp s] -[visit_id s] not free -[visit_exp {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}}] -[visit_exp []] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(funcaddr) `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))]] -[visit_exp (val : val <: instr)*{val <- `val*`}] -[scope_enter val] -[visit_exp (val : val <: instr)] -[visit_exp val] -[visit_id val] not free -[visit_id val] not free -[scope_exit val] -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -[visit_exp [`REF.FUNC_ADDR`_instr(funcaddr) `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))]] -[visit_exp `REF.FUNC_ADDR`_instr(funcaddr)] -[visit_exp (funcaddr)] -[visit_exp funcaddr] -[visit_id funcaddr] not free -[visit_exp `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))] -[visit_exp ((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))] -[visit_exp (s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse)] -[visit_exp s.`FUNCS`_store[funcaddr].`TYPE`_funcinst] -[visit_exp s.`FUNCS`_store[funcaddr]] -[visit_exp s.`FUNCS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp funcaddr] -[visit_id funcaddr] not free -[visit_exp (s.`FUNCS`_store[funcaddr].`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp s.`FUNCS`_store[funcaddr].`TYPE`_funcinst] -[visit_exp s.`FUNCS`_store[funcaddr]] -[visit_exp s.`FUNCS`_store] -[visit_exp s] -[visit_id s] not free -[visit_exp funcaddr] -[visit_id funcaddr] not free -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[scope_enter t_1] -[scope_enter val] -[visit_exp (s, val, t_1)] -[visit_exp s] -[visit_id s] not free -[visit_exp val] -[visit_id val] not free -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[visit_id val] not free -[scope_exit val] -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `val*`] -[visit_id val*] not free -[visit_id val*] no dims -=> - ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $invoke{s : store, funcaddr : funcaddr, `val*` : val*, `t_1*` : valtype*, `t_2*` : valtype*}(s, funcaddr, val*{val <- `val*`}) = `%;%`_config(`%;%`_state(s, {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(funcaddr) `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))]) - -- Expand: `%~~%`(s.`FUNCS`_store[funcaddr].`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- (Val_ok: `%|-%:%`(s, val, t_1))*{t_1 <- `t_1*`, val <- `val*`} -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `%`_byte(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = (N : N) -[check_dims] N -[check_dims] N n -dims \ N = n -[visit_exp `%`_uN(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `%`_byte(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp ((n < (2 ^ 7)) /\ (n < (2 ^ N)))] -[visit_exp (n < (2 ^ 7))] -[visit_exp n] -[visit_id n] not free -[visit_exp (2 ^ 7)] -[visit_exp 2] -[visit_exp 7] -[visit_exp (n < (2 ^ N))] -[visit_exp n] -[visit_id n] not free -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[check_dims] N m n -dims \ N = m, n -[visit_exp `%`_uN((((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)))] -[visit_exp ((((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)))] -[visit_exp (((2 ^ 7) * m) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat))] -[visit_exp ((2 ^ 7) * m)] -[visit_exp (2 ^ 7)] -[visit_exp 2] -[visit_exp 7] -[visit_exp m] -[visit_id m] -[visit_exp (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - ((2 ^ 7) : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp ((2 ^ 7) : nat <:> int)] -[visit_exp (2 ^ 7)] -[visit_exp 2] -[visit_exp 7] -[visit_exp `%`_byte(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp `%`_uN(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] not free -[visit_exp (((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (7 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp ((n >= (2 ^ 7)) /\ (N > 7))] -[visit_exp (n >= (2 ^ 7))] -[visit_exp n] -[visit_id n] not free -[visit_exp (2 ^ 7)] -[visit_exp 2] -[visit_exp 7] -[visit_exp (N > 7)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp 7] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -ps' = (N : N) -[check_dims] N -[check_dims] N n -dims \ N = n -[visit_exp `%`_sN((n : nat <:> int))] -[visit_exp ((n : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp `%`_byte(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp ((n < (2 ^ 6)) /\ (n < (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))))] -[visit_exp (n < (2 ^ 6))] -[visit_exp n] -[visit_id n] not free -[visit_exp (2 ^ 6)] -[visit_exp 2] -[visit_exp 6] -[visit_exp (n < (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))] -[visit_exp n] -[visit_id n] not free -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[check_dims] N n -dims \ N = n -[visit_exp `%`_sN(((n : nat <:> int) - ((2 ^ 7) : nat <:> int)))] -[visit_exp (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)))] -[visit_exp ((n : nat <:> int) - ((2 ^ 7) : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp ((2 ^ 7) : nat <:> int)] -[visit_exp (2 ^ 7)] -[visit_exp 2] -[visit_exp 7] -[visit_exp `%`_byte(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp ((((2 ^ 6) <= n) /\ (n < (2 ^ 7))) /\ ((n : nat <:> int) >= (((2 ^ 7) : nat <:> int) - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))))] -[visit_exp (((2 ^ 6) <= n) /\ (n < (2 ^ 7)))] -[visit_exp ((2 ^ 6) <= n)] -[visit_exp (2 ^ 6)] -[visit_exp 2] -[visit_exp 6] -[visit_exp n] -[visit_id n] not free -[visit_exp (n < (2 ^ 7))] -[visit_exp n] -[visit_id n] not free -[visit_exp (2 ^ 7)] -[visit_exp 2] -[visit_exp 7] -[visit_exp ((n : nat <:> int) >= (((2 ^ 7) : nat <:> int) - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp (((2 ^ 7) : nat <:> int) - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))] -[visit_exp ((2 ^ 7) : nat <:> int)] -[visit_exp (2 ^ 7)] -[visit_exp 2] -[visit_exp 7] -[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[check_dims] N i n -dims \ N = i, n -[visit_exp `%`_sN(((((2 ^ 7) * (i!`%`_sN.0 : int <:> nat)) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int))] -[visit_exp (((((2 ^ 7) * (i!`%`_sN.0 : int <:> nat)) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int))] -[visit_exp ((((2 ^ 7) * (i!`%`_sN.0 : int <:> nat)) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (((2 ^ 7) * (i!`%`_sN.0 : int <:> nat)) + (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat))] -[visit_exp ((2 ^ 7) * (i!`%`_sN.0 : int <:> nat))] -[visit_exp (2 ^ 7)] -[visit_exp 2] -[visit_exp 7] -[visit_exp (i!`%`_sN.0 : int <:> nat)] -[visit_exp i!`%`_sN.0] -[visit_exp i!`%`_sN] -[visit_exp i] -[visit_id i] -[visit_exp (((n : nat <:> int) - ((2 ^ 7) : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - ((2 ^ 7) : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp ((2 ^ 7) : nat <:> int)] -[visit_exp (2 ^ 7)] -[visit_exp 2] -[visit_exp 7] -[visit_exp `%`_byte(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp i] -[visit_id i] not free -[visit_exp (((N : nat <:> int) - (7 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (7 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (7 : nat <:> int)] -[visit_exp 7] -[visit_exp ((n >= (2 ^ 7)) /\ (N > 7))] -[visit_exp (n >= (2 ^ 7))] -[visit_exp n] -[visit_id n] not free -[visit_exp (2 ^ 7)] -[visit_exp 2] -[visit_exp 7] -[visit_exp (N > 7)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp 7] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -ps' = (N : N) -[check_dims] N -[check_dims] N i -dims \ N = i -[visit_exp `%`_iN($inv_signed_(N, i!`%`_sN.0))] -[visit_exp ($inv_signed_(N, i!`%`_sN.0))] -[visit_exp $inv_signed_(N, i!`%`_sN.0)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp i!`%`_sN.0] -[visit_exp i!`%`_sN] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -ps' = (N : N) -[check_dims] N -[check_dims] N b -dims \ N = b -[visit_exp $inv_fbytes_(N, b*{b <- `b*`})] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_exp (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)] -[visit_exp ((N : nat <:> rat) / (8 : nat <:> rat))] -[visit_exp (N : nat <:> rat)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (8 : nat <:> rat)] -[visit_exp 8] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 32] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 64] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 33] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 32] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 64] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 32] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 64] -ps' = (syntax el, grammar BX : el) -[check_dims] el -[check_dims] el n -dims \ = el, n -[visit_exp el^n{el <- `el*`}] -[scope_enter el] -[visit_exp el] -[visit_id el] not free -[visit_id el] not free -[scope_exit el] -[visit_exp n] -[visit_id n] -[visit_exp `el*`] -[visit_id el*] no dims -[visit_id el*] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[scope_enter el] -[visit_exp el] -[visit_id el] not free -[visit_id el] not free -[scope_exit el] -[visit_exp n] -[visit_id n] not free -[visit_exp `el*`] -[visit_id el*] not free -[visit_id el*] no dims -[check_dims] -[check_dims] byte -DecD cont(byte : byte) : nat -[visit_id byte] not free -[check_dims] b -[visit_exp b] -[visit_id b] -[visit_exp (((b!`%`_byte.0 : nat <:> int) - (128 : nat <:> int)) : int <:> nat)] -[visit_exp ((b!`%`_byte.0 : nat <:> int) - (128 : nat <:> int))] -[visit_exp (b!`%`_byte.0 : nat <:> int)] -[visit_exp b!`%`_byte.0] -[visit_exp b!`%`_byte] -[visit_exp b] -[visit_id b] not free -[visit_exp (128 : nat <:> int)] -[visit_exp 128] -[visit_exp ((128 < b!`%`_byte.0) /\ (b!`%`_byte.0 < 192))] -[visit_exp (128 < b!`%`_byte.0)] -[visit_exp 128] -[visit_exp b!`%`_byte.0] -[visit_exp b!`%`_byte] -[visit_exp b] -[visit_id b] not free -[visit_exp (b!`%`_byte.0 < 192)] -[visit_exp b!`%`_byte.0] -[visit_exp b!`%`_byte] -[visit_exp b] -[visit_id b] not free -[visit_exp 192] -=> - ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - def $cont{b : byte}(b) = (((b!`%`_byte.0 : nat <:> int) - (128 : nat <:> int)) : int <:> nat) - -- if ((128 < b!`%`_byte.0) /\ (b!`%`_byte.0 < 192)) -[check_dims] ch -[visit_exp ch*{ch <- `ch*`}] -[scope_enter ch] -[visit_exp ch] -[visit_id ch] not free -[visit_id ch] not free -[scope_exit ch] -[visit_exp `ch*`] -[visit_id ch*] no dims -[visit_id ch*] -[visit_exp $concat_(syntax byte, $utf8([ch])*{ch <- `ch*`})] -[visit_exp $utf8([ch])*{ch <- `ch*`}] -[scope_enter ch] -[visit_exp $utf8([ch])] -[visit_exp [ch]] -[visit_exp ch] -[visit_id ch] not free -[visit_id ch] not free -[scope_exit ch] -[visit_exp `ch*`] -[visit_id ch*] not free -[visit_id ch*] no dims -=> - ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - def $utf8{`ch*` : char*}(ch*{ch <- `ch*`}) = $concat_(syntax byte, $utf8([ch])*{ch <- `ch*`}) -[check_dims] b ch -[visit_exp [ch]] -[visit_exp ch] -[visit_id ch] -[visit_exp [b]] -[visit_exp b] -[visit_id b] -[visit_exp (ch!`%`_char.0 < 128)] -[visit_exp ch!`%`_char.0] -[visit_exp ch!`%`_char] -[visit_exp ch] -[visit_id ch] not free -[visit_exp 128] -[visit_exp (`%`_byte(ch!`%`_char.0) = b)] -[visit_exp `%`_byte(ch!`%`_char.0)] -[visit_exp (ch!`%`_char.0)] -[visit_exp ch!`%`_char.0] -[visit_exp ch!`%`_char] -[visit_exp ch] -[visit_id ch] not free -[visit_exp b] -[visit_id b] not free -=> - ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - def $utf8{ch : char, b : byte}([ch]) = [b] - -- if (ch!`%`_char.0 < 128) - -- if (`%`_byte(ch!`%`_char.0) = b) -[check_dims] b_1 b_2 ch -[visit_exp [ch]] -[visit_exp ch] -[visit_id ch] -[visit_exp [b_1 b_2]] -[visit_exp b_1] -[visit_id b_1] -[visit_exp b_2] -[visit_id b_2] -[visit_exp ((128 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 2048))] -[visit_exp (128 <= ch!`%`_char.0)] -[visit_exp 128] -[visit_exp ch!`%`_char.0] -[visit_exp ch!`%`_char] -[visit_exp ch] -[visit_id ch] not free -[visit_exp (ch!`%`_char.0 < 2048)] -[visit_exp ch!`%`_char.0] -[visit_exp ch!`%`_char] -[visit_exp ch] -[visit_id ch] not free -[visit_exp 2048] -[visit_exp (ch!`%`_char.0 = (((2 ^ 6) * (((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2)))] -[visit_exp ch!`%`_char.0] -[visit_exp ch!`%`_char] -[visit_exp ch] -[visit_id ch] not free -[visit_exp (((2 ^ 6) * (((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2))] -[visit_exp ((2 ^ 6) * (((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat))] -[visit_exp (2 ^ 6)] -[visit_exp 2] -[visit_exp 6] -[visit_exp (((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)] -[visit_exp ((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int))] -[visit_exp (b_1!`%`_byte.0 : nat <:> int)] -[visit_exp b_1!`%`_byte.0] -[visit_exp b_1!`%`_byte] -[visit_exp b_1] -[visit_id b_1] not free -[visit_exp (192 : nat <:> int)] -[visit_exp 192] -[visit_exp $cont(b_2)] -[visit_exp b_2] -[visit_id b_2] not free -=> - ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - def $utf8{ch : char, b_1 : byte, b_2 : byte}([ch]) = [b_1 b_2] - -- if ((128 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 2048)) - -- if (ch!`%`_char.0 = (((2 ^ 6) * (((b_1!`%`_byte.0 : nat <:> int) - (192 : nat <:> int)) : int <:> nat)) + $cont(b_2))) -[check_dims] b_1 b_2 b_3 ch -[visit_exp [ch]] -[visit_exp ch] -[visit_id ch] -[visit_exp [b_1 b_2 b_3]] -[visit_exp b_1] -[visit_id b_1] -[visit_exp b_2] -[visit_id b_2] -[visit_exp b_3] -[visit_id b_3] -[visit_exp (((2048 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 55296)) \/ ((57344 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 65536)))] -[visit_exp ((2048 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 55296))] -[visit_exp (2048 <= ch!`%`_char.0)] -[visit_exp 2048] -[visit_exp ch!`%`_char.0] -[visit_exp ch!`%`_char] -[visit_exp ch] -[visit_id ch] not free -[visit_exp (ch!`%`_char.0 < 55296)] -[visit_exp ch!`%`_char.0] -[visit_exp ch!`%`_char] -[visit_exp ch] -[visit_id ch] not free -[visit_exp 55296] -[visit_exp ((57344 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 65536))] -[visit_exp (57344 <= ch!`%`_char.0)] -[visit_exp 57344] -[visit_exp ch!`%`_char.0] -[visit_exp ch!`%`_char] -[visit_exp ch] -[visit_id ch] not free -[visit_exp (ch!`%`_char.0 < 65536)] -[visit_exp ch!`%`_char.0] -[visit_exp ch!`%`_char] -[visit_exp ch] -[visit_id ch] not free -[visit_exp 65536] -[visit_exp (ch!`%`_char.0 = ((((2 ^ 12) * (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3)))] -[visit_exp ch!`%`_char.0] -[visit_exp ch!`%`_char] -[visit_exp ch] -[visit_id ch] not free -[visit_exp ((((2 ^ 12) * (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3))] -[visit_exp (((2 ^ 12) * (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2)))] -[visit_exp ((2 ^ 12) * (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat))] -[visit_exp (2 ^ 12)] -[visit_exp 2] -[visit_exp 12] -[visit_exp (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)] -[visit_exp ((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int))] -[visit_exp (b_1!`%`_byte.0 : nat <:> int)] -[visit_exp b_1!`%`_byte.0] -[visit_exp b_1!`%`_byte] -[visit_exp b_1] -[visit_id b_1] not free -[visit_exp (224 : nat <:> int)] -[visit_exp 224] -[visit_exp ((2 ^ 6) * $cont(b_2))] -[visit_exp (2 ^ 6)] -[visit_exp 2] -[visit_exp 6] -[visit_exp $cont(b_2)] -[visit_exp b_2] -[visit_id b_2] not free -[visit_exp $cont(b_3)] -[visit_exp b_3] -[visit_id b_3] not free -=> - ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte}([ch]) = [b_1 b_2 b_3] - -- if (((2048 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 55296)) \/ ((57344 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 65536))) - -- if (ch!`%`_char.0 = ((((2 ^ 12) * (((b_1!`%`_byte.0 : nat <:> int) - (224 : nat <:> int)) : int <:> nat)) + ((2 ^ 6) * $cont(b_2))) + $cont(b_3))) -[check_dims] b_1 b_2 b_3 b_4 ch -[visit_exp [ch]] -[visit_exp ch] -[visit_id ch] -[visit_exp [b_1 b_2 b_3 b_4]] -[visit_exp b_1] -[visit_id b_1] -[visit_exp b_2] -[visit_id b_2] -[visit_exp b_3] -[visit_id b_3] -[visit_exp b_4] -[visit_id b_4] -[visit_exp ((65536 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 69632))] -[visit_exp (65536 <= ch!`%`_char.0)] -[visit_exp 65536] -[visit_exp ch!`%`_char.0] -[visit_exp ch!`%`_char] -[visit_exp ch] -[visit_id ch] not free -[visit_exp (ch!`%`_char.0 < 69632)] -[visit_exp ch!`%`_char.0] -[visit_exp ch!`%`_char] -[visit_exp ch] -[visit_id ch] not free -[visit_exp 69632] -[visit_exp (ch!`%`_char.0 = (((((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4)))] -[visit_exp ch!`%`_char.0] -[visit_exp ch!`%`_char] -[visit_exp ch] -[visit_id ch] not free -[visit_exp (((((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4))] -[visit_exp ((((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3)))] -[visit_exp (((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2)))] -[visit_exp ((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat))] -[visit_exp (2 ^ 18)] -[visit_exp 2] -[visit_exp 18] -[visit_exp (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)] -[visit_exp ((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int))] -[visit_exp (b_1!`%`_byte.0 : nat <:> int)] -[visit_exp b_1!`%`_byte.0] -[visit_exp b_1!`%`_byte] -[visit_exp b_1] -[visit_id b_1] not free -[visit_exp (240 : nat <:> int)] -[visit_exp 240] -[visit_exp ((2 ^ 12) * $cont(b_2))] -[visit_exp (2 ^ 12)] -[visit_exp 2] -[visit_exp 12] -[visit_exp $cont(b_2)] -[visit_exp b_2] -[visit_id b_2] not free -[visit_exp ((2 ^ 6) * $cont(b_3))] -[visit_exp (2 ^ 6)] -[visit_exp 2] -[visit_exp 6] -[visit_exp $cont(b_3)] -[visit_exp b_3] -[visit_id b_3] not free -[visit_exp $cont(b_4)] -[visit_exp b_4] -[visit_id b_4] not free -=> - ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - def $utf8{ch : char, b_1 : byte, b_2 : byte, b_3 : byte, b_4 : byte}([ch]) = [b_1 b_2 b_3 b_4] - -- if ((65536 <= ch!`%`_char.0) /\ (ch!`%`_char.0 < 69632)) - -- if (ch!`%`_char.0 = (((((2 ^ 18) * (((b_1!`%`_byte.0 : nat <:> int) - (240 : nat <:> int)) : int <:> nat)) + ((2 ^ 12) * $cont(b_2))) + ((2 ^ 6) * $cont(b_3))) + $cont(b_4))) -ps' = -[check_dims] -[check_dims] b name -dims \ = b, name -[visit_exp name] -[visit_id name] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp ($utf8(name!`%`_name.0) = b*{b <- `b*`})] -[visit_exp $utf8(name!`%`_name.0)] -[visit_exp name!`%`_name.0] -[visit_exp name!`%`_name] -[visit_exp name] -[visit_id name] not free -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] l -dims \ = l -[visit_exp l] -[visit_id l] -[visit_exp l] -[visit_id l] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp `FUNC`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `TABLE`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `MEM`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `GLOBAL`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `TAG`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `F64`_numtype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `F32`_numtype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `I64`_numtype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `I32`_numtype] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `V128`_vectype] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `EXN`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `ARRAY`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `STRUCT`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `I31`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `EQ`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `ANY`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `EXTERN`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `FUNC`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `NONE`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `NOEXTERN`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `NOFUNC`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `NOEXN`_heaptype] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] ht -dims \ = ht -[visit_exp ht] -[visit_id ht] -[visit_exp ht] -[visit_id ht] not free -[check_dims] x33 -dims \ = x33 -[visit_exp `_IDX`_heaptype($s33_to_u32(x33))] -[visit_exp ($s33_to_u32(x33))] -[visit_exp $s33_to_u32(x33)] -[visit_exp x33] -[visit_id x33] -[visit_exp x33] -[visit_id x33] not free -[visit_exp (x33!`%`_s33.0 >= (0 : nat <:> int))] -[visit_exp x33!`%`_s33.0] -[visit_exp x33!`%`_s33] -[visit_exp x33] -[visit_id x33] not free -[visit_exp (0 : nat <:> int)] -[visit_exp 0] -ps' = -[check_dims] -[check_dims] ht -dims \ = ht -[visit_exp `REF`_reftype(?(`NULL`_null), ht)] -[visit_exp (?(`NULL`_null), ht)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht] -[visit_id ht] -[visit_exp ht] -[visit_id ht] not free -[check_dims] ht -dims \ = ht -[visit_exp `REF`_reftype(?(), ht)] -[visit_exp (?(), ht)] -[visit_exp ?()] -[visit_exp ht] -[visit_id ht] -[visit_exp ht] -[visit_id ht] not free -[check_dims] ht -dims \ = ht -[visit_exp `REF`_reftype(?(`NULL`_null), ht)] -[visit_exp (?(`NULL`_null), ht)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht] -[visit_id ht] -[visit_exp ht] -[visit_id ht] not free -ps' = -[check_dims] -[check_dims] nt -dims \ = nt -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] -[visit_exp nt] -[visit_id nt] not free -[check_dims] vt -dims \ = vt -[visit_exp (vt : vectype <: valtype)] -[visit_exp vt] -[visit_id vt] -[visit_exp vt] -[visit_id vt] not free -[check_dims] rt -dims \ = rt -[visit_exp (rt : reftype <: valtype)] -[visit_exp rt] -[visit_id rt] -[visit_exp rt] -[visit_id rt] not free -ps' = -[check_dims] -[check_dims] t -dims \ = t -[visit_exp `%`_resulttype(t*{t <- `t*`})] -[visit_exp (t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ?()] -[check_dims] -dims \ = -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `I16`_packtype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `I8`_packtype] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] t -dims \ = t -[visit_exp (t : valtype <: storagetype)] -[visit_exp t] -[visit_id t] -[visit_exp t] -[visit_id t] not free -[check_dims] pt -dims \ = pt -[visit_exp (pt : packtype <: storagetype)] -[visit_exp pt] -[visit_id pt] -[visit_exp pt] -[visit_id pt] not free -ps' = -[check_dims] -[check_dims] mut zt -dims \ = mut, zt -[visit_exp `%%`_fieldtype(mut?{mut <- `mut?`}, zt)] -[visit_exp (mut?{mut <- `mut?`}, zt)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp zt] -[visit_id zt] -[visit_exp zt] -[visit_id zt] not free -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] not free -[visit_id mut?] no dims -ps' = -[check_dims] -[check_dims] ft -dims \ = ft -[visit_exp `ARRAY`_comptype(ft)] -[visit_exp (ft)] -[visit_exp ft] -[visit_id ft] -[visit_exp ft] -[visit_id ft] not free -[check_dims] ft -dims \ = ft -[visit_exp `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))] -[visit_exp (`%`_list(ft*{ft <- `ft*`}))] -[visit_exp `%`_list(ft*{ft <- `ft*`})] -[visit_exp (ft*{ft <- `ft*`})] -[visit_exp ft*{ft <- `ft*`}] -[scope_enter ft] -[visit_exp ft] -[visit_id ft] not free -[visit_id ft] not free -[scope_exit ft] -[visit_exp `ft*`] -[visit_id ft*] no dims -[visit_id ft*] -[visit_exp ft*{ft <- `ft*`}] -[scope_enter ft] -[visit_exp ft] -[visit_id ft] not free -[visit_id ft] not free -[scope_exit ft] -[visit_exp `ft*`] -[visit_id ft*] not free -[visit_id ft*] no dims -[check_dims] t_1 t_2 -dims \ = t_1, t_2 -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -ps' = -[check_dims] -[check_dims] ct x -dims \ = ct, x -[visit_exp `SUB`_subtype(?(`FINAL`_final), `_IDX`_typeuse(x)*{x <- `x*`}, ct)] -[visit_exp (?(`FINAL`_final), `_IDX`_typeuse(x)*{x <- `x*`}, ct)] -[visit_exp ?(`FINAL`_final)] -[visit_exp `FINAL`_final] -[visit_exp ()] -[visit_exp `_IDX`_typeuse(x)*{x <- `x*`}] -[scope_enter x] -[visit_exp `_IDX`_typeuse(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp ct] -[visit_id ct] -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[visit_exp ct] -[visit_id ct] not free -[check_dims] ct x -dims \ = ct, x -[visit_exp `SUB`_subtype(?(), `_IDX`_typeuse(x)*{x <- `x*`}, ct)] -[visit_exp (?(), `_IDX`_typeuse(x)*{x <- `x*`}, ct)] -[visit_exp ?()] -[visit_exp `_IDX`_typeuse(x)*{x <- `x*`}] -[scope_enter x] -[visit_exp `_IDX`_typeuse(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp ct] -[visit_id ct] -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[visit_exp ct] -[visit_id ct] not free -[check_dims] ct -dims \ = ct -[visit_exp `SUB`_subtype(?(`FINAL`_final), [], ct)] -[visit_exp (?(`FINAL`_final), [], ct)] -[visit_exp ?(`FINAL`_final)] -[visit_exp `FINAL`_final] -[visit_exp ()] -[visit_exp []] -[visit_exp ct] -[visit_id ct] -[visit_exp ct] -[visit_id ct] not free -ps' = -[check_dims] -[check_dims] st -dims \ = st -[visit_exp `REC`_rectype(`%`_list(st*{st <- `st*`}))] -[visit_exp (`%`_list(st*{st <- `st*`}))] -[visit_exp `%`_list(st*{st <- `st*`})] -[visit_exp (st*{st <- `st*`})] -[visit_exp st*{st <- `st*`}] -[scope_enter st] -[visit_exp st] -[visit_id st] not free -[visit_id st] not free -[scope_exit st] -[visit_exp `st*`] -[visit_id st*] no dims -[visit_id st*] -[visit_exp st*{st <- `st*`}] -[scope_enter st] -[visit_exp st] -[visit_id st] not free -[visit_id st] not free -[scope_exit st] -[visit_exp `st*`] -[visit_id st*] not free -[visit_id st*] no dims -[check_dims] st -dims \ = st -[visit_exp `REC`_rectype(`%`_list([st]))] -[visit_exp (`%`_list([st]))] -[visit_exp `%`_list([st])] -[visit_exp ([st])] -[visit_exp [st]] -[visit_exp st] -[visit_id st] -[visit_exp st] -[visit_id st] not free -ps' = -[check_dims] _ -[check_dims] n -dims \ = n -[visit_exp (`I32`_addrtype, `[%..%]`_limits(`%`_u64(n), ?()))] -[visit_exp `I32`_addrtype] -[visit_exp ()] -[visit_exp `[%..%]`_limits(`%`_u64(n), ?())] -[visit_exp (`%`_u64(n), ?())] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp ?()] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[check_dims] m n -dims \ = m, n -[visit_exp (`I32`_addrtype, `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m))))] -[visit_exp `I32`_addrtype] -[visit_exp ()] -[visit_exp `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))] -[visit_exp (`%`_u64(n), ?(`%`_u64(m)))] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp ?(`%`_u64(m))] -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] not free -[check_dims] n -dims \ = n -[visit_exp (`I64`_addrtype, `[%..%]`_limits(`%`_u64(n), ?()))] -[visit_exp `I64`_addrtype] -[visit_exp ()] -[visit_exp `[%..%]`_limits(`%`_u64(n), ?())] -[visit_exp (`%`_u64(n), ?())] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp ?()] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[check_dims] m n -dims \ = m, n -[visit_exp (`I64`_addrtype, `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m))))] -[visit_exp `I64`_addrtype] -[visit_exp ()] -[visit_exp `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))] -[visit_exp (`%`_u64(n), ?(`%`_u64(m)))] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp ?(`%`_u64(m))] -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp `_IDX`_tagtype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] mut t -dims \ = mut, t -[visit_exp `%%`_globaltype(mut?{mut <- `mut?`}, t)] -[visit_exp (mut?{mut <- `mut?`}, t)] -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] no dims -[visit_id mut?] -[visit_exp t] -[visit_id t] -[visit_exp t] -[visit_id t] not free -[visit_exp mut?{mut <- `mut?`}] -[scope_enter mut] -[visit_exp mut] -[visit_id mut] not free -[visit_id mut] not free -[scope_exit mut] -[visit_exp `mut?`] -[visit_id mut?] not free -[visit_id mut?] no dims -ps' = -[check_dims] -[check_dims] at lim -dims \ = at, lim -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] -[visit_exp lim] -[visit_id lim] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] not free -ps' = -[check_dims] -[check_dims] at lim rt -dims \ = at, lim, rt -[visit_exp `%%%`_tabletype(at, lim, rt)] -[visit_exp (at, lim, rt)] -[visit_exp at] -[visit_id at] -[visit_exp lim] -[visit_id lim] -[visit_exp rt] -[visit_id rt] -[visit_exp rt] -[visit_id rt] not free -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp `FUNC`_externtype(`_IDX`_typeuse(x))] -[visit_exp (`_IDX`_typeuse(x))] -[visit_exp `_IDX`_typeuse(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] tt -dims \ = tt -[visit_exp `TABLE`_externtype(tt)] -[visit_exp (tt)] -[visit_exp tt] -[visit_id tt] -[visit_exp tt] -[visit_id tt] not free -[check_dims] mt -dims \ = mt -[visit_exp `MEM`_externtype(mt)] -[visit_exp (mt)] -[visit_exp mt] -[visit_id mt] -[visit_exp mt] -[visit_id mt] not free -[check_dims] gt -dims \ = gt -[visit_exp `GLOBAL`_externtype(gt)] -[visit_exp (gt)] -[visit_exp gt] -[visit_id gt] -[visit_exp gt] -[visit_id gt] not free -[check_dims] jt -dims \ = jt -[visit_exp `TAG`_externtype(jt)] -[visit_exp (jt)] -[visit_exp jt] -[visit_id jt] -[visit_exp jt] -[visit_id jt] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `UNREACHABLE`_instr] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `NOP`_instr] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `DROP`_instr] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `SELECT`_instr(?())] -[visit_exp (?())] -[visit_exp ?()] -[check_dims] t -dims \ = t -[visit_exp `SELECT`_instr(?(t*{t <- `t*`}))] -[visit_exp (?(t*{t <- `t*`}))] -[visit_exp ?(t*{t <- `t*`})] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] no dims -[visit_id t*] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[check_dims] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (?(), ?())] -[visit_exp ?()] -[visit_exp ?()] -[check_dims] -dims \ = -[visit_exp (?(`NULL`_null), ?())] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ?()] -[check_dims] -dims \ = -[visit_exp (?(), ?(`NULL`_null))] -[visit_exp ?()] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp (?(`NULL`_null), ?(`NULL`_null))] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `_RESULT`_blocktype(?())] -[visit_exp (?())] -[visit_exp ?()] -[check_dims] t -dims \ = t -[visit_exp `_RESULT`_blocktype(?(t))] -[visit_exp (?(t))] -[visit_exp ?(t)] -[visit_exp t] -[visit_id t] -[visit_exp t] -[visit_id t] not free -[check_dims] i -dims \ = i -[visit_exp `_IDX`_blocktype(`%`_typeidx((i!`%`_s33.0 : int <:> nat)))] -[visit_exp (`%`_typeidx((i!`%`_s33.0 : int <:> nat)))] -[visit_exp `%`_typeidx((i!`%`_s33.0 : int <:> nat))] -[visit_exp ((i!`%`_s33.0 : int <:> nat))] -[visit_exp (i!`%`_s33.0 : int <:> nat)] -[visit_exp i!`%`_s33.0] -[visit_exp i!`%`_s33] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[visit_exp (i!`%`_s33.0 >= (0 : nat <:> int))] -[visit_exp i!`%`_s33.0] -[visit_exp i!`%`_s33] -[visit_exp i] -[visit_id i] not free -[visit_exp (0 : nat <:> int)] -[visit_exp 0] -ps' = -[check_dims] -[check_dims] bt in -dims \ = bt, in -[visit_exp `BLOCK`_instr(bt, in*{in <- `in*`})] -[visit_exp (bt, in*{in <- `in*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] no dims -[visit_id in*] -[visit_exp bt] -[visit_id bt] not free -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] not free -[visit_id in*] no dims -[check_dims] bt in -dims \ = bt, in -[visit_exp `LOOP`_instr(bt, in*{in <- `in*`})] -[visit_exp (bt, in*{in <- `in*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] no dims -[visit_id in*] -[visit_exp bt] -[visit_id bt] not free -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] not free -[visit_id in*] no dims -[check_dims] bt in -dims \ = bt, in -[visit_exp `IF%%ELSE%`_instr(bt, in*{in <- `in*`}, [])] -[visit_exp (bt, in*{in <- `in*`}, [])] -[visit_exp bt] -[visit_id bt] -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] no dims -[visit_id in*] -[visit_exp []] -[visit_exp bt] -[visit_id bt] not free -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] not free -[visit_id in*] no dims -[check_dims] bt in_1 in_2 -dims \ = bt, in_1, in_2 -[visit_exp `IF%%ELSE%`_instr(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] -[visit_exp (bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp in_1*{in_1 <- `in_1*`}] -[scope_enter in_1] -[visit_exp in_1] -[visit_id in_1] not free -[visit_id in_1] not free -[scope_exit in_1] -[visit_exp `in_1*`] -[visit_id in_1*] no dims -[visit_id in_1*] -[visit_exp in_2*{in_2 <- `in_2*`}] -[scope_enter in_2] -[visit_exp in_2] -[visit_id in_2] not free -[visit_id in_2] not free -[scope_exit in_2] -[visit_exp `in_2*`] -[visit_id in_2*] no dims -[visit_id in_2*] -[visit_exp bt] -[visit_id bt] not free -[scope_enter in_1] -[visit_exp in_1] -[visit_id in_1] not free -[visit_id in_1] not free -[scope_exit in_1] -[visit_exp `in_1*`] -[visit_id in_1*] not free -[visit_id in_1*] no dims -[scope_enter in_2] -[visit_exp in_2] -[visit_id in_2] not free -[visit_id in_2] not free -[scope_exit in_2] -[visit_exp `in_2*`] -[visit_id in_2*] not free -[visit_id in_2*] no dims -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp `THROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] -dims \ = -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[check_dims] l -dims \ = l -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `BR_IF`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp l] -[visit_id l] not free -[check_dims] l l_n -dims \ = l, l_n -[visit_exp `BR_TABLE`_instr(l*{l <- `l*`}, l_n)] -[visit_exp (l*{l <- `l*`}, l_n)] -[visit_exp l*{l <- `l*`}] -[scope_enter l] -[visit_exp l] -[visit_id l] not free -[visit_id l] not free -[scope_exit l] -[visit_exp `l*`] -[visit_id l*] no dims -[visit_id l*] -[visit_exp l_n] -[visit_id l_n] -[visit_exp l*{l <- `l*`}] -[scope_enter l] -[visit_exp l] -[visit_id l] not free -[visit_id l] not free -[scope_exit l] -[visit_exp `l*`] -[visit_id l*] not free -[visit_id l*] no dims -[visit_exp l_n] -[visit_id l_n] not free -[check_dims] -dims \ = -[visit_exp `RETURN`_instr] -[visit_exp ()] -[check_dims] x -dims \ = x -[visit_exp `CALL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x y -dims \ = x, y -[visit_exp `CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y))] -[visit_exp (x, `_IDX`_typeuse(y))] -[visit_exp x] -[visit_id x] -[visit_exp `_IDX`_typeuse(y)] -[visit_exp (y)] -[visit_exp y] -[visit_id y] -[visit_exp y] -[visit_id y] not free -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `RETURN_CALL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x y -dims \ = x, y -[visit_exp `RETURN_CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y))] -[visit_exp (x, `_IDX`_typeuse(y))] -[visit_exp x] -[visit_id x] -[visit_exp `_IDX`_typeuse(y)] -[visit_exp (y)] -[visit_exp y] -[visit_id y] -[visit_exp y] -[visit_id y] not free -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `CALL_REF`_instr(`_IDX`_typeuse(x))] -[visit_exp (`_IDX`_typeuse(x))] -[visit_exp `_IDX`_typeuse(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `RETURN_CALL_REF`_instr(`_IDX`_typeuse(x))] -[visit_exp (`_IDX`_typeuse(x))] -[visit_exp `_IDX`_typeuse(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] bt c in -dims \ = bt, c, in -[visit_exp `TRY_TABLE`_instr(bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`})] -[visit_exp (bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp `%`_list(c*{c <- `c*`})] -[visit_exp (c*{c <- `c*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] no dims -[visit_id in*] -[visit_exp bt] -[visit_id bt] not free -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] not free -[visit_id in*] no dims -[check_dims] l -dims \ = l -[visit_exp `BR_ON_NULL`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `BR_ON_NON_NULL`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp l] -[visit_id l] not free -[check_dims] ht_1 ht_2 l null_1 null_2 -dims \ = ht_1, ht_2, l, null_1, null_2 -[visit_exp `BR_ON_CAST`_instr(l, `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2))] -[visit_exp (l, `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2))] -[visit_exp l] -[visit_id l] -[visit_exp `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp null_1?{null_1 <- `null_1?`}] -[scope_enter null_1] -[visit_exp null_1] -[visit_id null_1] not free -[visit_id null_1] not free -[scope_exit null_1] -[visit_exp `null_1?`] -[visit_id null_1?] no dims -[visit_id null_1?] -[visit_exp ht_1] -[visit_id ht_1] -[visit_exp `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2)] -[visit_exp (null_2?{null_2 <- `null_2?`}, ht_2)] -[visit_exp null_2?{null_2 <- `null_2?`}] -[scope_enter null_2] -[visit_exp null_2] -[visit_id null_2] not free -[visit_id null_2] not free -[scope_exit null_2] -[visit_exp `null_2?`] -[visit_id null_2?] no dims -[visit_id null_2?] -[visit_exp ht_2] -[visit_id ht_2] -[visit_exp `%`_u32(24)] -[visit_exp (24)] -[visit_exp 24] -[visit_exp (null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`})] -[visit_exp null_1?{null_1 <- `null_1?`}] -[scope_enter null_1] -[visit_exp null_1] -[visit_id null_1] not free -[visit_id null_1] not free -[scope_exit null_1] -[visit_exp `null_1?`] -[visit_id null_1?] not free -[visit_id null_1?] no dims -[visit_exp null_2?{null_2 <- `null_2?`}] -[scope_enter null_2] -[visit_exp null_2] -[visit_id null_2] not free -[visit_id null_2] not free -[scope_exit null_2] -[visit_exp `null_2?`] -[visit_id null_2?] not free -[visit_id null_2?] no dims -[visit_exp l] -[visit_id l] not free -[visit_exp ht_1] -[visit_id ht_1] not free -[visit_exp ht_2] -[visit_id ht_2] not free -[check_dims] ht_1 ht_2 l null_1 null_2 -dims \ = ht_1, ht_2, l, null_1, null_2 -[visit_exp `BR_ON_CAST_FAIL`_instr(l, `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2))] -[visit_exp (l, `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2))] -[visit_exp l] -[visit_id l] -[visit_exp `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp (null_1?{null_1 <- `null_1?`}, ht_1)] -[visit_exp null_1?{null_1 <- `null_1?`}] -[scope_enter null_1] -[visit_exp null_1] -[visit_id null_1] not free -[visit_id null_1] not free -[scope_exit null_1] -[visit_exp `null_1?`] -[visit_id null_1?] no dims -[visit_id null_1?] -[visit_exp ht_1] -[visit_id ht_1] -[visit_exp `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2)] -[visit_exp (null_2?{null_2 <- `null_2?`}, ht_2)] -[visit_exp null_2?{null_2 <- `null_2?`}] -[scope_enter null_2] -[visit_exp null_2] -[visit_id null_2] not free -[visit_id null_2] not free -[scope_exit null_2] -[visit_exp `null_2?`] -[visit_id null_2?] no dims -[visit_id null_2?] -[visit_exp ht_2] -[visit_id ht_2] -[visit_exp `%`_u32(25)] -[visit_exp (25)] -[visit_exp 25] -[visit_exp (null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`})] -[visit_exp null_1?{null_1 <- `null_1?`}] -[scope_enter null_1] -[visit_exp null_1] -[visit_id null_1] not free -[visit_id null_1] not free -[scope_exit null_1] -[visit_exp `null_1?`] -[visit_id null_1?] not free -[visit_id null_1?] no dims -[visit_exp null_2?{null_2 <- `null_2?`}] -[scope_enter null_2] -[visit_exp null_2] -[visit_id null_2] not free -[visit_id null_2] not free -[scope_exit null_2] -[visit_exp `null_2?`] -[visit_id null_2?] not free -[visit_id null_2?] no dims -[visit_exp l] -[visit_id l] not free -[visit_exp ht_1] -[visit_id ht_1] not free -[visit_exp ht_2] -[visit_id ht_2] not free -ps' = -[check_dims] -[check_dims] l x -dims \ = l, x -[visit_exp `CATCH`_catch(x, l)] -[visit_exp (x, l)] -[visit_exp x] -[visit_id x] -[visit_exp l] -[visit_id l] -[visit_exp x] -[visit_id x] not free -[visit_exp l] -[visit_id l] not free -[check_dims] l x -dims \ = l, x -[visit_exp `CATCH_REF`_catch(x, l)] -[visit_exp (x, l)] -[visit_exp x] -[visit_id x] -[visit_exp l] -[visit_id l] -[visit_exp x] -[visit_id x] not free -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `CATCH_ALL`_catch(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `CATCH_ALL_REF`_catch(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp l] -[visit_id l] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp `LOCAL.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `LOCAL.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `LOCAL.TEE`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp `GLOBAL.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `GLOBAL.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp `TABLE.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `TABLE.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x y -dims \ = x, y -[visit_exp `TABLE.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp `%`_u32(12)] -[visit_exp (12)] -[visit_exp 12] -[visit_exp y] -[visit_id y] not free -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `ELEM.DROP`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(13)] -[visit_exp (13)] -[visit_exp 13] -[visit_exp x] -[visit_id x] not free -[check_dims] x_1 x_2 -dims \ = x_1, x_2 -[visit_exp `TABLE.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp `%`_u32(14)] -[visit_exp (14)] -[visit_exp 14] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp x_2] -[visit_id x_2] not free -[check_dims] x -dims \ = x -[visit_exp `TABLE.GROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(15)] -[visit_exp (15)] -[visit_exp 15] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `TABLE.SIZE`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `TABLE.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(17)] -[visit_exp (17)] -[visit_exp 17] -[visit_exp x] -[visit_id x] not free -[check_dims] -ps' = -[check_dims] -[check_dims] m n -dims \ = m, n -[visit_exp (`%`_memidx(0), {`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)})] -[visit_exp `%`_memidx(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp {`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)}] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] not free -[visit_exp (n < (2 ^ 6))] -[visit_exp n] -[visit_id n] not free -[visit_exp (2 ^ 6)] -[visit_exp 2] -[visit_exp 6] -[check_dims] m n x -dims \ = m, n, x -[visit_exp (x, {`ALIGN` `%`_u32((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), `OFFSET` `%`_u64(m)})] -[visit_exp x] -[visit_id x] -[visit_exp {`ALIGN` `%`_u32((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), `OFFSET` `%`_u64(m)}] -[visit_exp `%`_u32((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat))] -[visit_exp ((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat))] -[visit_exp (((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)] -[visit_exp ((n : nat <:> int) - ((2 ^ 6) : nat <:> int))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp ((2 ^ 6) : nat <:> int)] -[visit_exp (2 ^ 6)] -[visit_exp 2] -[visit_exp 6] -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp x] -[visit_id x] not free -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] not free -[visit_exp (((2 ^ 6) <= n) /\ (n < (2 ^ 7)))] -[visit_exp ((2 ^ 6) <= n)] -[visit_exp (2 ^ 6)] -[visit_exp 2] -[visit_exp 6] -[visit_exp n] -[visit_id n] not free -[visit_exp (n < (2 ^ 7))] -[visit_exp n] -[visit_id n] not free -[visit_exp (2 ^ 7)] -[visit_exp 2] -[visit_exp 7] -ps' = -[check_dims] -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`I32`_numtype, ?(), x, ao)] -[visit_exp (`I32`_numtype, ?(), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(), x, ao)] -[visit_exp (`I64`_numtype, ?(), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`F32`_numtype, ?(), x, ao)] -[visit_exp (`F32`_numtype, ?(), x, ao)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`F64`_numtype, ?(), x, ao)] -[visit_exp (`F64`_numtype, ?(), x, ao)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `S`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(8), `S`_sx)] -[visit_exp (`%`_sz(8), `S`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `U`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(8), `U`_sx)] -[visit_exp (`%`_sz(8), `U`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `S`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(16), `S`_sx)] -[visit_exp (`%`_sz(16), `S`_sx)] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `U`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(16), `U`_sx)] -[visit_exp (`%`_sz(16), `U`_sx)] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `S`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(8), `S`_sx)] -[visit_exp (`%`_sz(8), `S`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `U`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(8), `U`_sx)] -[visit_exp (`%`_sz(8), `U`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `S`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(16), `S`_sx)] -[visit_exp (`%`_sz(16), `S`_sx)] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `U`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(16), `U`_sx)] -[visit_exp (`%`_sz(16), `U`_sx)] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `S`_sx)), x, ao)] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `S`_sx)), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(32), `S`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(32), `S`_sx)] -[visit_exp (`%`_sz(32), `S`_sx)] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `U`_sx)), x, ao)] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `U`_sx)), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(32), `U`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(32), `U`_sx)] -[visit_exp (`%`_sz(32), `U`_sx)] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `STORE`_instr(`I32`_numtype, ?(), x, ao)] -[visit_exp (`I32`_numtype, ?(), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `STORE`_instr(`I64`_numtype, ?(), x, ao)] -[visit_exp (`I64`_numtype, ?(), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `STORE`_instr(`F32`_numtype, ?(), x, ao)] -[visit_exp (`F32`_numtype, ?(), x, ao)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `STORE`_instr(`F64`_numtype, ?(), x, ao)] -[visit_exp (`F64`_numtype, ?(), x, ao)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] -[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(8)))] -[visit_exp `%`_storeop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] -[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(16)))] -[visit_exp `%`_storeop_(`%`_sz(16))] -[visit_exp (`%`_sz(16))] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] -[visit_exp (`I64`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(8)))] -[visit_exp `%`_storeop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] -[visit_exp (`I64`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(16)))] -[visit_exp `%`_storeop_(`%`_sz(16))] -[visit_exp (`%`_sz(16))] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao)] -[visit_exp (`I64`_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(32)))] -[visit_exp `%`_storeop_(`%`_sz(32))] -[visit_exp (`%`_sz(32))] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] x -dims \ = x -[visit_exp `MEMORY.SIZE`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `MEMORY.GROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] x y -dims \ = x, y -[visit_exp `MEMORY.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp `%`_u32(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp y] -[visit_id y] not free -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `DATA.DROP`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(9)] -[visit_exp (9)] -[visit_exp 9] -[visit_exp x] -[visit_id x] not free -[check_dims] x_1 x_2 -dims \ = x_1, x_2 -[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp `%`_u32(10)] -[visit_exp (10)] -[visit_exp 10] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp x_2] -[visit_id x_2] not free -[check_dims] x -dims \ = x -[visit_exp `MEMORY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(11)] -[visit_exp (11)] -[visit_exp 11] -[visit_exp x] -[visit_id x] not free -ps' = -[check_dims] -[check_dims] ht -dims \ = ht -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp ht] -[visit_id ht] not free -[check_dims] -dims \ = -[visit_exp `REF.IS_NULL`_instr] -[visit_exp ()] -[check_dims] x -dims \ = x -[visit_exp `REF.FUNC`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] -dims \ = -[visit_exp `REF.EQ`_instr] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `REF.AS_NON_NULL`_instr] -[visit_exp ()] -[check_dims] ht -dims \ = ht -[visit_exp `REF.TEST`_instr(`REF`_reftype(?(), ht))] -[visit_exp (`REF`_reftype(?(), ht))] -[visit_exp `REF`_reftype(?(), ht)] -[visit_exp (?(), ht)] -[visit_exp ?()] -[visit_exp ht] -[visit_id ht] -[visit_exp `%`_u32(20)] -[visit_exp (20)] -[visit_exp 20] -[visit_exp ht] -[visit_id ht] not free -[check_dims] ht -dims \ = ht -[visit_exp `REF.TEST`_instr(`REF`_reftype(?(`NULL`_null), ht))] -[visit_exp (`REF`_reftype(?(`NULL`_null), ht))] -[visit_exp `REF`_reftype(?(`NULL`_null), ht)] -[visit_exp (?(`NULL`_null), ht)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht] -[visit_id ht] -[visit_exp `%`_u32(21)] -[visit_exp (21)] -[visit_exp 21] -[visit_exp ht] -[visit_id ht] not free -[check_dims] ht -dims \ = ht -[visit_exp `REF.CAST`_instr(`REF`_reftype(?(), ht))] -[visit_exp (`REF`_reftype(?(), ht))] -[visit_exp `REF`_reftype(?(), ht)] -[visit_exp (?(), ht)] -[visit_exp ?()] -[visit_exp ht] -[visit_id ht] -[visit_exp `%`_u32(22)] -[visit_exp (22)] -[visit_exp 22] -[visit_exp ht] -[visit_id ht] not free -[check_dims] ht -dims \ = ht -[visit_exp `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), ht))] -[visit_exp (`REF`_reftype(?(`NULL`_null), ht))] -[visit_exp `REF`_reftype(?(`NULL`_null), ht)] -[visit_exp (?(`NULL`_null), ht)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht] -[visit_id ht] -[visit_exp `%`_u32(23)] -[visit_exp (23)] -[visit_exp 23] -[visit_exp ht] -[visit_id ht] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp `STRUCT.NEW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `STRUCT.NEW_DEFAULT`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(1)] -[visit_exp (1)] -[visit_exp 1] -[visit_exp x] -[visit_id x] not free -[check_dims] i x -dims \ = i, x -[visit_exp `STRUCT.GET`_instr(?(), x, i)] -[visit_exp (?(), x, i)] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp `%`_u32(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp x] -[visit_id x] not free -[visit_exp i] -[visit_id i] not free -[check_dims] i x -dims \ = i, x -[visit_exp `STRUCT.GET`_instr(?(`S`_sx), x, i)] -[visit_exp (?(`S`_sx), x, i)] -[visit_exp ?(`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp `%`_u32(3)] -[visit_exp (3)] -[visit_exp 3] -[visit_exp x] -[visit_id x] not free -[visit_exp i] -[visit_id i] not free -[check_dims] i x -dims \ = i, x -[visit_exp `STRUCT.GET`_instr(?(`U`_sx), x, i)] -[visit_exp (?(`U`_sx), x, i)] -[visit_exp ?(`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp `%`_u32(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp x] -[visit_id x] not free -[visit_exp i] -[visit_id i] not free -[check_dims] i x -dims \ = i, x -[visit_exp `STRUCT.SET`_instr(x, i)] -[visit_exp (x, i)] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp `%`_u32(5)] -[visit_exp (5)] -[visit_exp 5] -[visit_exp x] -[visit_id x] not free -[visit_exp i] -[visit_id i] not free -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp `ARRAY.NEW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(6)] -[visit_exp (6)] -[visit_exp 6] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `ARRAY.NEW_DEFAULT`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(7)] -[visit_exp (7)] -[visit_exp 7] -[visit_exp x] -[visit_id x] not free -[check_dims] n x -dims \ = n, x -[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] -[visit_exp (x, `%`_u32(n))] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `%`_u32(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x] -[visit_id x] not free -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[check_dims] x y -dims \ = x, y -[visit_exp `ARRAY.NEW_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp `%`_u32(9)] -[visit_exp (9)] -[visit_exp 9] -[visit_exp x] -[visit_id x] not free -[visit_exp y] -[visit_id y] not free -[check_dims] x y -dims \ = x, y -[visit_exp `ARRAY.NEW_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp `%`_u32(10)] -[visit_exp (10)] -[visit_exp 10] -[visit_exp x] -[visit_id x] not free -[visit_exp y] -[visit_id y] not free -[check_dims] x -dims \ = x -[visit_exp `ARRAY.GET`_instr(?(), x)] -[visit_exp (?(), x)] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(11)] -[visit_exp (11)] -[visit_exp 11] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `ARRAY.GET`_instr(?(`S`_sx), x)] -[visit_exp (?(`S`_sx), x)] -[visit_exp ?(`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(12)] -[visit_exp (12)] -[visit_exp 12] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `ARRAY.GET`_instr(?(`U`_sx), x)] -[visit_exp (?(`U`_sx), x)] -[visit_exp ?(`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(13)] -[visit_exp (13)] -[visit_exp 13] -[visit_exp x] -[visit_id x] not free -[check_dims] x -dims \ = x -[visit_exp `ARRAY.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(14)] -[visit_exp (14)] -[visit_exp 14] -[visit_exp x] -[visit_id x] not free -[check_dims] -dims \ = -[visit_exp `ARRAY.LEN`_instr] -[visit_exp ()] -[visit_exp `%`_u32(15)] -[visit_exp (15)] -[visit_exp 15] -[check_dims] x -dims \ = x -[visit_exp `ARRAY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp x] -[visit_id x] not free -[check_dims] x_1 x_2 -dims \ = x_1, x_2 -[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp `%`_u32(17)] -[visit_exp (17)] -[visit_exp 17] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp x_2] -[visit_id x_2] not free -[check_dims] x y -dims \ = x, y -[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp `%`_u32(18)] -[visit_exp (18)] -[visit_exp 18] -[visit_exp x] -[visit_id x] not free -[visit_exp y] -[visit_id y] not free -[check_dims] x y -dims \ = x, y -[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp `%`_u32(19)] -[visit_exp (19)] -[visit_exp 19] -[visit_exp x] -[visit_id x] not free -[visit_exp y] -[visit_id y] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `ANY.CONVERT_EXTERN`_instr] -[visit_exp ()] -[visit_exp `%`_u32(26)] -[visit_exp (26)] -[visit_exp 26] -[check_dims] -dims \ = -[visit_exp `EXTERN.CONVERT_ANY`_instr] -[visit_exp ()] -[visit_exp `%`_u32(27)] -[visit_exp (27)] -[visit_exp 27] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `REF.I31`_instr] -[visit_exp ()] -[visit_exp `%`_u32(28)] -[visit_exp (28)] -[visit_exp 28] -[check_dims] -dims \ = -[visit_exp `I31.GET`_instr(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(29)] -[visit_exp (29)] -[visit_exp 29] -[check_dims] -dims \ = -[visit_exp `I31.GET`_instr(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(30)] -[visit_exp (30)] -[visit_exp 30] -ps' = -[check_dims] -[check_dims] i -dims \ = i -[visit_exp `CONST`_instr(`I32`_numtype, i)] -[visit_exp (`I32`_numtype, i)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] i -dims \ = i -[visit_exp `CONST`_instr(`I64`_numtype, i)] -[visit_exp (`I64`_numtype, i)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] p -dims \ = p -[visit_exp `CONST`_instr(`F32`_numtype, p)] -[visit_exp (`F32`_numtype, p)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp p] -[visit_id p] -[visit_exp p] -[visit_id p] not free -[check_dims] p -dims \ = p -[visit_exp `CONST`_instr(`F64`_numtype, p)] -[visit_exp (`F64`_numtype, p)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp p] -[visit_id p] -[visit_exp p] -[visit_id p] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `TESTOP`_instr(`I32`_numtype, `EQZ`_testop_)] -[visit_exp (`I32`_numtype, `EQZ`_testop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `EQZ`_testop_] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I32`_numtype, `EQ`_relop_)] -[visit_exp (`I32`_numtype, `EQ`_relop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `EQ`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I32`_numtype, `NE`_relop_)] -[visit_exp (`I32`_numtype, `NE`_relop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `NE`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I32`_numtype, `LT`_relop_(`S`_sx))] -[visit_exp (`I32`_numtype, `LT`_relop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `LT`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I32`_numtype, `LT`_relop_(`U`_sx))] -[visit_exp (`I32`_numtype, `LT`_relop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `LT`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I32`_numtype, `GT`_relop_(`S`_sx))] -[visit_exp (`I32`_numtype, `GT`_relop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `GT`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I32`_numtype, `GT`_relop_(`U`_sx))] -[visit_exp (`I32`_numtype, `GT`_relop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `GT`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I32`_numtype, `LE`_relop_(`S`_sx))] -[visit_exp (`I32`_numtype, `LE`_relop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `LE`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I32`_numtype, `LE`_relop_(`U`_sx))] -[visit_exp (`I32`_numtype, `LE`_relop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `LE`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I32`_numtype, `GE`_relop_(`S`_sx))] -[visit_exp (`I32`_numtype, `GE`_relop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `GE`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I32`_numtype, `GE`_relop_(`U`_sx))] -[visit_exp (`I32`_numtype, `GE`_relop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `GE`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `TESTOP`_instr(`I64`_numtype, `EQZ`_testop_)] -[visit_exp (`I64`_numtype, `EQZ`_testop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `EQZ`_testop_] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I64`_numtype, `EQ`_relop_)] -[visit_exp (`I64`_numtype, `EQ`_relop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `EQ`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I64`_numtype, `NE`_relop_)] -[visit_exp (`I64`_numtype, `NE`_relop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `NE`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I64`_numtype, `LT`_relop_(`S`_sx))] -[visit_exp (`I64`_numtype, `LT`_relop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `LT`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I64`_numtype, `LT`_relop_(`U`_sx))] -[visit_exp (`I64`_numtype, `LT`_relop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `LT`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I64`_numtype, `GT`_relop_(`S`_sx))] -[visit_exp (`I64`_numtype, `GT`_relop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `GT`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I64`_numtype, `GT`_relop_(`U`_sx))] -[visit_exp (`I64`_numtype, `GT`_relop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `GT`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I64`_numtype, `LE`_relop_(`S`_sx))] -[visit_exp (`I64`_numtype, `LE`_relop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `LE`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I64`_numtype, `LE`_relop_(`U`_sx))] -[visit_exp (`I64`_numtype, `LE`_relop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `LE`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I64`_numtype, `GE`_relop_(`S`_sx))] -[visit_exp (`I64`_numtype, `GE`_relop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `GE`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`I64`_numtype, `GE`_relop_(`U`_sx))] -[visit_exp (`I64`_numtype, `GE`_relop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `GE`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`F32`_numtype, `EQ`_relop_)] -[visit_exp (`F32`_numtype, `EQ`_relop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `EQ`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`F32`_numtype, `NE`_relop_)] -[visit_exp (`F32`_numtype, `NE`_relop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `NE`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`F32`_numtype, `LT`_relop_)] -[visit_exp (`F32`_numtype, `LT`_relop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `LT`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`F32`_numtype, `GT`_relop_)] -[visit_exp (`F32`_numtype, `GT`_relop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `GT`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`F32`_numtype, `LE`_relop_)] -[visit_exp (`F32`_numtype, `LE`_relop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `LE`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`F32`_numtype, `GE`_relop_)] -[visit_exp (`F32`_numtype, `GE`_relop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `GE`_relop_] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`F64`_numtype, `EQ`_relop_)] -[visit_exp (`F64`_numtype, `EQ`_relop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `EQ`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`F64`_numtype, `NE`_relop_)] -[visit_exp (`F64`_numtype, `NE`_relop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `NE`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`F64`_numtype, `LT`_relop_)] -[visit_exp (`F64`_numtype, `LT`_relop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `LT`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`F64`_numtype, `GT`_relop_)] -[visit_exp (`F64`_numtype, `GT`_relop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `GT`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`F64`_numtype, `LE`_relop_)] -[visit_exp (`F64`_numtype, `LE`_relop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `LE`_relop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `RELOP`_instr(`F64`_numtype, `GE`_relop_)] -[visit_exp (`F64`_numtype, `GE`_relop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `GE`_relop_] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`I32`_numtype, `CLZ`_unop_)] -[visit_exp (`I32`_numtype, `CLZ`_unop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `CLZ`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`I32`_numtype, `CTZ`_unop_)] -[visit_exp (`I32`_numtype, `CTZ`_unop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `CTZ`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`I32`_numtype, `POPCNT`_unop_)] -[visit_exp (`I32`_numtype, `POPCNT`_unop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `POPCNT`_unop_] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `ADD`_binop_)] -[visit_exp (`I32`_numtype, `ADD`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `ADD`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `SUB`_binop_)] -[visit_exp (`I32`_numtype, `SUB`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `SUB`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `MUL`_binop_)] -[visit_exp (`I32`_numtype, `MUL`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `MUL`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`S`_sx))] -[visit_exp (`I32`_numtype, `DIV`_binop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `DIV`_binop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`U`_sx))] -[visit_exp (`I32`_numtype, `DIV`_binop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `DIV`_binop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `REM`_binop_(`S`_sx))] -[visit_exp (`I32`_numtype, `REM`_binop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `REM`_binop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `REM`_binop_(`U`_sx))] -[visit_exp (`I32`_numtype, `REM`_binop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `REM`_binop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `AND`_binop_)] -[visit_exp (`I32`_numtype, `AND`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `AND`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `OR`_binop_)] -[visit_exp (`I32`_numtype, `OR`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `OR`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `XOR`_binop_)] -[visit_exp (`I32`_numtype, `XOR`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `XOR`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `SHL`_binop_)] -[visit_exp (`I32`_numtype, `SHL`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `SHL`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`S`_sx))] -[visit_exp (`I32`_numtype, `SHR`_binop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `SHR`_binop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`U`_sx))] -[visit_exp (`I32`_numtype, `SHR`_binop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `SHR`_binop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `ROTL`_binop_)] -[visit_exp (`I32`_numtype, `ROTL`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `ROTL`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I32`_numtype, `ROTR`_binop_)] -[visit_exp (`I32`_numtype, `ROTR`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `ROTR`_binop_] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`I64`_numtype, `CLZ`_unop_)] -[visit_exp (`I64`_numtype, `CLZ`_unop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `CLZ`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`I64`_numtype, `CTZ`_unop_)] -[visit_exp (`I64`_numtype, `CTZ`_unop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `CTZ`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`I64`_numtype, `POPCNT`_unop_)] -[visit_exp (`I64`_numtype, `POPCNT`_unop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `POPCNT`_unop_] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(8)))] -[visit_exp (`I32`_numtype, `EXTEND`_unop_(`%`_sz(8)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_unop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(16)))] -[visit_exp (`I32`_numtype, `EXTEND`_unop_(`%`_sz(16)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_unop_(`%`_sz(16))] -[visit_exp (`%`_sz(16))] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(8)))] -[visit_exp (`I64`_numtype, `EXTEND`_unop_(`%`_sz(8)))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_unop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(16)))] -[visit_exp (`I64`_numtype, `EXTEND`_unop_(`%`_sz(16)))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_unop_(`%`_sz(16))] -[visit_exp (`%`_sz(16))] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(32)))] -[visit_exp (`I64`_numtype, `EXTEND`_unop_(`%`_sz(32)))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_unop_(`%`_sz(32))] -[visit_exp (`%`_sz(32))] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `ADD`_binop_)] -[visit_exp (`I64`_numtype, `ADD`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `ADD`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `SUB`_binop_)] -[visit_exp (`I64`_numtype, `SUB`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `SUB`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `MUL`_binop_)] -[visit_exp (`I64`_numtype, `MUL`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `MUL`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`S`_sx))] -[visit_exp (`I64`_numtype, `DIV`_binop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `DIV`_binop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`U`_sx))] -[visit_exp (`I64`_numtype, `DIV`_binop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `DIV`_binop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `REM`_binop_(`S`_sx))] -[visit_exp (`I64`_numtype, `REM`_binop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `REM`_binop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `REM`_binop_(`U`_sx))] -[visit_exp (`I64`_numtype, `REM`_binop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `REM`_binop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `AND`_binop_)] -[visit_exp (`I64`_numtype, `AND`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `AND`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `OR`_binop_)] -[visit_exp (`I64`_numtype, `OR`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `OR`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `XOR`_binop_)] -[visit_exp (`I64`_numtype, `XOR`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `XOR`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `SHL`_binop_)] -[visit_exp (`I64`_numtype, `SHL`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `SHL`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`S`_sx))] -[visit_exp (`I64`_numtype, `SHR`_binop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `SHR`_binop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`U`_sx))] -[visit_exp (`I64`_numtype, `SHR`_binop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `SHR`_binop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `ROTL`_binop_)] -[visit_exp (`I64`_numtype, `ROTL`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `ROTL`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`I64`_numtype, `ROTR`_binop_)] -[visit_exp (`I64`_numtype, `ROTR`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `ROTR`_binop_] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F32`_numtype, `ABS`_unop_)] -[visit_exp (`F32`_numtype, `ABS`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `ABS`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F32`_numtype, `NEG`_unop_)] -[visit_exp (`F32`_numtype, `NEG`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `NEG`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F32`_numtype, `CEIL`_unop_)] -[visit_exp (`F32`_numtype, `CEIL`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `CEIL`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F32`_numtype, `FLOOR`_unop_)] -[visit_exp (`F32`_numtype, `FLOOR`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `FLOOR`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F32`_numtype, `TRUNC`_unop_)] -[visit_exp (`F32`_numtype, `TRUNC`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F32`_numtype, `NEAREST`_unop_)] -[visit_exp (`F32`_numtype, `NEAREST`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `NEAREST`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F32`_numtype, `SQRT`_unop_)] -[visit_exp (`F32`_numtype, `SQRT`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `SQRT`_unop_] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F32`_numtype, `ADD`_binop_)] -[visit_exp (`F32`_numtype, `ADD`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `ADD`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F32`_numtype, `SUB`_binop_)] -[visit_exp (`F32`_numtype, `SUB`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `SUB`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F32`_numtype, `MUL`_binop_)] -[visit_exp (`F32`_numtype, `MUL`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `MUL`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F32`_numtype, `DIV`_binop_)] -[visit_exp (`F32`_numtype, `DIV`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `DIV`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F32`_numtype, `MIN`_binop_)] -[visit_exp (`F32`_numtype, `MIN`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `MIN`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F32`_numtype, `MAX`_binop_)] -[visit_exp (`F32`_numtype, `MAX`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `MAX`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F32`_numtype, `COPYSIGN`_binop_)] -[visit_exp (`F32`_numtype, `COPYSIGN`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `COPYSIGN`_binop_] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F64`_numtype, `ABS`_unop_)] -[visit_exp (`F64`_numtype, `ABS`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `ABS`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F64`_numtype, `NEG`_unop_)] -[visit_exp (`F64`_numtype, `NEG`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `NEG`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F64`_numtype, `CEIL`_unop_)] -[visit_exp (`F64`_numtype, `CEIL`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `CEIL`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F64`_numtype, `FLOOR`_unop_)] -[visit_exp (`F64`_numtype, `FLOOR`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `FLOOR`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F64`_numtype, `TRUNC`_unop_)] -[visit_exp (`F64`_numtype, `TRUNC`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F64`_numtype, `NEAREST`_unop_)] -[visit_exp (`F64`_numtype, `NEAREST`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `NEAREST`_unop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `UNOP`_instr(`F64`_numtype, `SQRT`_unop_)] -[visit_exp (`F64`_numtype, `SQRT`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `SQRT`_unop_] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F64`_numtype, `ADD`_binop_)] -[visit_exp (`F64`_numtype, `ADD`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `ADD`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F64`_numtype, `SUB`_binop_)] -[visit_exp (`F64`_numtype, `SUB`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `SUB`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F64`_numtype, `MUL`_binop_)] -[visit_exp (`F64`_numtype, `MUL`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `MUL`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F64`_numtype, `DIV`_binop_)] -[visit_exp (`F64`_numtype, `DIV`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `DIV`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F64`_numtype, `MIN`_binop_)] -[visit_exp (`F64`_numtype, `MIN`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `MIN`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F64`_numtype, `MAX`_binop_)] -[visit_exp (`F64`_numtype, `MAX`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `MAX`_binop_] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `BINOP`_instr(`F64`_numtype, `COPYSIGN`_binop_)] -[visit_exp (`F64`_numtype, `COPYSIGN`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `COPYSIGN`_binop_] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] -[visit_exp (`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `WRAP`_cvtop__] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__(`S`_sx))] -[visit_exp (`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__(`U`_sx))] -[visit_exp (`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] -[visit_exp (`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `DEMOTE`_cvtop__] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] -[visit_exp (`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `PROMOTE`_cvtop__] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp (`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `REINTERPRET`_cvtop__] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp (`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `REINTERPRET`_cvtop__] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp (`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `REINTERPRET`_cvtop__] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp (`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `REINTERPRET`_cvtop__] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(0)] -[visit_exp (0)] -[visit_exp 0] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(1)] -[visit_exp (1)] -[visit_exp 1] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(2)] -[visit_exp (2)] -[visit_exp 2] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(3)] -[visit_exp (3)] -[visit_exp 3] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(4)] -[visit_exp (4)] -[visit_exp 4] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(5)] -[visit_exp (5)] -[visit_exp 5] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(6)] -[visit_exp (6)] -[visit_exp 6] -[check_dims] -dims \ = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(7)] -[visit_exp (7)] -[visit_exp 7] -ps' = -[check_dims] -[check_dims] l -dims \ = l -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_byte(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -ps' = -[check_dims] -[check_dims] ao x -dims \ = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(), x, ao)] -[visit_exp (`V128`_vectype, ?(), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)] -[visit_exp (`%`_sz(8), 8, `S`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp 8] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(1)] -[visit_exp (1)] -[visit_exp 1] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)] -[visit_exp (`%`_sz(8), 8, `U`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp 8] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)] -[visit_exp (`%`_sz(16), 4, `S`_sx)] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp 4] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(3)] -[visit_exp (3)] -[visit_exp 3] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)] -[visit_exp (`%`_sz(16), 4, `U`_sx)] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp 4] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)] -[visit_exp (`%`_sz(32), 2, `S`_sx)] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp 2] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(5)] -[visit_exp (5)] -[visit_exp 5] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)] -[visit_exp (`%`_sz(32), 2, `U`_sx)] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp 2] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(6)] -[visit_exp (6)] -[visit_exp 6] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(8))), x, ao)] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(8))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(8)))] -[visit_exp `SPLAT`_vloadop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(7)] -[visit_exp (7)] -[visit_exp 7] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(16))), x, ao)] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(16))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(16)))] -[visit_exp `SPLAT`_vloadop_(`%`_sz(16))] -[visit_exp (`%`_sz(16))] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(32))), x, ao)] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(32))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(32)))] -[visit_exp `SPLAT`_vloadop_(`%`_sz(32))] -[visit_exp (`%`_sz(32))] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(9)] -[visit_exp (9)] -[visit_exp 9] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(64))), x, ao)] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(64))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(64)))] -[visit_exp `SPLAT`_vloadop_(`%`_sz(64))] -[visit_exp (`%`_sz(64))] -[visit_exp `%`_sz(64)] -[visit_exp (64)] -[visit_exp 64] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(10)] -[visit_exp (10)] -[visit_exp 10] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `VSTORE`_instr(`V128`_vectype, x, ao)] -[visit_exp (`V128`_vectype, x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(11)] -[visit_exp (11)] -[visit_exp 11] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao i x -dims \ = ao, i, x -[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(8), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp `%`_u32(84)] -[visit_exp (84)] -[visit_exp 84] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[visit_exp i] -[visit_id i] not free -[check_dims] ao i x -dims \ = ao, i, x -[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(16), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp `%`_u32(85)] -[visit_exp (85)] -[visit_exp 85] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[visit_exp i] -[visit_id i] not free -[check_dims] ao i x -dims \ = ao, i, x -[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(32), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp `%`_u32(86)] -[visit_exp (86)] -[visit_exp 86] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[visit_exp i] -[visit_id i] not free -[check_dims] ao i x -dims \ = ao, i, x -[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(64), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(64)] -[visit_exp (64)] -[visit_exp 64] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp `%`_u32(87)] -[visit_exp (87)] -[visit_exp 87] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[visit_exp i] -[visit_id i] not free -[check_dims] ao i x -dims \ = ao, i, x -[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(8), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp `%`_u32(88)] -[visit_exp (88)] -[visit_exp 88] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[visit_exp i] -[visit_id i] not free -[check_dims] ao i x -dims \ = ao, i, x -[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(16), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp `%`_u32(89)] -[visit_exp (89)] -[visit_exp 89] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[visit_exp i] -[visit_id i] not free -[check_dims] ao i x -dims \ = ao, i, x -[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(32), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp `%`_u32(90)] -[visit_exp (90)] -[visit_exp 90] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[visit_exp i] -[visit_id i] not free -[check_dims] ao i x -dims \ = ao, i, x -[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(64), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(64)] -[visit_exp (64)] -[visit_exp 64] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp `%`_u32(91)] -[visit_exp (91)] -[visit_exp 91] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[visit_exp i] -[visit_id i] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(32))), x, ao)] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(32))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_(`%`_sz(32)))] -[visit_exp `ZERO`_vloadop_(`%`_sz(32))] -[visit_exp (`%`_sz(32))] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(92)] -[visit_exp (92)] -[visit_exp 92] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -[check_dims] ao x -dims \ = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(64))), x, ao)] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(64))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_(`%`_sz(64)))] -[visit_exp `ZERO`_vloadop_(`%`_sz(64))] -[visit_exp (`%`_sz(64))] -[visit_exp `%`_sz(64)] -[visit_exp (64)] -[visit_exp 64] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp `%`_u32(93)] -[visit_exp (93)] -[visit_exp 93] -[visit_exp (x, ao)] -[visit_exp x] -[visit_id x] not free -[visit_exp ao] -[visit_id ao] not free -ps' = -[check_dims] -[check_dims] b -dims \ = b -[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, b^16{b <- `b*`}))] -[visit_exp (`V128`_vectype, $inv_ibytes_(128, b^16{b <- `b*`}))] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp $inv_ibytes_(128, b^16{b <- `b*`})] -[visit_exp 128] -[visit_exp b^16{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp 16] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp `%`_u32(12)] -[visit_exp (12)] -[visit_exp 12] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp 16] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -ps' = -[check_dims] -[check_dims] l -dims \ = l -[visit_exp `VSHUFFLE`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_laneidx(l!`%`_labelidx.0)^16{l <- `l*`})] -[visit_exp (`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_laneidx(l!`%`_labelidx.0)^16{l <- `l*`})] -[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)^16{l <- `l*`}] -[scope_enter l] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[visit_id l] not free -[scope_exit l] -[visit_exp 16] -[visit_exp `l*`] -[visit_id l*] no dims -[visit_id l*] -[visit_exp `%`_u32(13)] -[visit_exp (13)] -[visit_exp 13] -[scope_enter l] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[visit_id l] not free -[scope_exit l] -[visit_exp 16] -[visit_exp `l*`] -[visit_id l*] not free -[visit_id l*] no dims -[check_dims] -dims \ = -[visit_exp `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SWIZZLE`_vswizzlop_)] -[visit_exp (`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SWIZZLE`_vswizzlop_)] -[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SWIZZLE`_vswizzlop_] -[visit_exp ()] -[visit_exp `%`_u32(14)] -[visit_exp (14)] -[visit_exp 14] -[check_dims] -dims \ = -[visit_exp `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_SWIZZLE`_vswizzlop_)] -[visit_exp (`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_SWIZZLE`_vswizzlop_)] -[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `RELAXED_SWIZZLE`_vswizzlop_] -[visit_exp ()] -[visit_exp `%`_u32(256)] -[visit_exp (256)] -[visit_exp 256] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VSPLAT`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `%`_u32(15)] -[visit_exp (15)] -[visit_exp 15] -[check_dims] -dims \ = -[visit_exp `VSPLAT`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_u32(16)] -[visit_exp (16)] -[visit_exp 16] -[check_dims] -dims \ = -[visit_exp `VSPLAT`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_u32(17)] -[visit_exp (17)] -[visit_exp 17] -[check_dims] -dims \ = -[visit_exp `VSPLAT`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%`_u32(18)] -[visit_exp (18)] -[visit_exp 18] -[check_dims] -dims \ = -[visit_exp `VSPLAT`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_u32(19)] -[visit_exp (19)] -[visit_exp 19] -[check_dims] -dims \ = -[visit_exp `VSPLAT`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%`_u32(20)] -[visit_exp (20)] -[visit_exp 20] -ps' = -[check_dims] -[check_dims] l -dims \ = l -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`S`_sx), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`S`_sx), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp ?(`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(21)] -[visit_exp (21)] -[visit_exp 21] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`U`_sx), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`U`_sx), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp ?(`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(22)] -[visit_exp (22)] -[visit_exp 22] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(23)] -[visit_exp (23)] -[visit_exp 23] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`S`_sx), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`S`_sx), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp ?(`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(24)] -[visit_exp (24)] -[visit_exp 24] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`U`_sx), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`U`_sx), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp ?(`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(25)] -[visit_exp (25)] -[visit_exp 25] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(26)] -[visit_exp (26)] -[visit_exp 26] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp ?()] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(27)] -[visit_exp (27)] -[visit_exp 27] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(28)] -[visit_exp (28)] -[visit_exp 28] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp ?()] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(29)] -[visit_exp (29)] -[visit_exp 29] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(30)] -[visit_exp (30)] -[visit_exp 30] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp ?()] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(31)] -[visit_exp (31)] -[visit_exp 31] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp ?()] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(33)] -[visit_exp (33)] -[visit_exp 33] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -[check_dims] l -dims \ = l -[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0))] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] -[visit_exp `%`_u32(34)] -[visit_exp (34)] -[visit_exp 34] -[visit_exp `%`_laneidx(l!`%`_labelidx.0)] -[visit_exp (l!`%`_labelidx.0)] -[visit_exp l!`%`_labelidx.0] -[visit_exp l!`%`_labelidx] -[visit_exp l] -[visit_id l] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EQ`_vrelop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(35)] -[visit_exp (35)] -[visit_exp 35] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NE`_vrelop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NE`_vrelop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(36)] -[visit_exp (36)] -[visit_exp 36] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `LT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(37)] -[visit_exp (37)] -[visit_exp 37] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `LT`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(38)] -[visit_exp (38)] -[visit_exp 38] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `GT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(39)] -[visit_exp (39)] -[visit_exp 39] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `GT`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(40)] -[visit_exp (40)] -[visit_exp 40] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `LE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(41)] -[visit_exp (41)] -[visit_exp 41] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `LE`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(42)] -[visit_exp (42)] -[visit_exp 42] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `GE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(43)] -[visit_exp (43)] -[visit_exp 43] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `GE`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(44)] -[visit_exp (44)] -[visit_exp 44] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EQ`_vrelop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(45)] -[visit_exp (45)] -[visit_exp 45] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NE`_vrelop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NE`_vrelop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(46)] -[visit_exp (46)] -[visit_exp 46] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `LT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(47)] -[visit_exp (47)] -[visit_exp 47] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `LT`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(48)] -[visit_exp (48)] -[visit_exp 48] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `GT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(49)] -[visit_exp (49)] -[visit_exp 49] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `GT`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(50)] -[visit_exp (50)] -[visit_exp 50] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `LE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(51)] -[visit_exp (51)] -[visit_exp 51] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `LE`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(52)] -[visit_exp (52)] -[visit_exp 52] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `GE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(53)] -[visit_exp (53)] -[visit_exp 53] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `GE`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(54)] -[visit_exp (54)] -[visit_exp 54] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(55)] -[visit_exp (55)] -[visit_exp 55] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(56)] -[visit_exp (56)] -[visit_exp 56] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `LT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(57)] -[visit_exp (57)] -[visit_exp 57] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `LT`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(58)] -[visit_exp (58)] -[visit_exp 58] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `GT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(59)] -[visit_exp (59)] -[visit_exp 59] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `GT`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(60)] -[visit_exp (60)] -[visit_exp 60] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `LE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(61)] -[visit_exp (61)] -[visit_exp 61] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `LE`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(62)] -[visit_exp (62)] -[visit_exp 62] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `GE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(63)] -[visit_exp (63)] -[visit_exp 63] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `GE`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(64)] -[visit_exp (64)] -[visit_exp 64] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(65)] -[visit_exp (65)] -[visit_exp 65] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(66)] -[visit_exp (66)] -[visit_exp 66] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LT`_vrelop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LT`_vrelop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `LT`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(67)] -[visit_exp (67)] -[visit_exp 67] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GT`_vrelop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GT`_vrelop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `GT`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(68)] -[visit_exp (68)] -[visit_exp 68] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LE`_vrelop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LE`_vrelop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `LE`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(69)] -[visit_exp (69)] -[visit_exp 69] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GE`_vrelop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GE`_vrelop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `GE`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(70)] -[visit_exp (70)] -[visit_exp 70] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(71)] -[visit_exp (71)] -[visit_exp 71] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(72)] -[visit_exp (72)] -[visit_exp 72] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LT`_vrelop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LT`_vrelop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `LT`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(73)] -[visit_exp (73)] -[visit_exp 73] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GT`_vrelop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GT`_vrelop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `GT`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(74)] -[visit_exp (74)] -[visit_exp 74] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LE`_vrelop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LE`_vrelop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `LE`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(75)] -[visit_exp (75)] -[visit_exp 75] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GE`_vrelop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GE`_vrelop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `GE`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(76)] -[visit_exp (76)] -[visit_exp 76] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VVUNOP`_instr(`V128`_vectype, `NOT`_vvunop)] -[visit_exp (`V128`_vectype, `NOT`_vvunop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `NOT`_vvunop] -[visit_exp ()] -[visit_exp `%`_u32(77)] -[visit_exp (77)] -[visit_exp 77] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VVBINOP`_instr(`V128`_vectype, `AND`_vvbinop)] -[visit_exp (`V128`_vectype, `AND`_vvbinop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `AND`_vvbinop] -[visit_exp ()] -[visit_exp `%`_u32(78)] -[visit_exp (78)] -[visit_exp 78] -[check_dims] -dims \ = -[visit_exp `VVBINOP`_instr(`V128`_vectype, `ANDNOT`_vvbinop)] -[visit_exp (`V128`_vectype, `ANDNOT`_vvbinop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `ANDNOT`_vvbinop] -[visit_exp ()] -[visit_exp `%`_u32(79)] -[visit_exp (79)] -[visit_exp 79] -[check_dims] -dims \ = -[visit_exp `VVBINOP`_instr(`V128`_vectype, `OR`_vvbinop)] -[visit_exp (`V128`_vectype, `OR`_vvbinop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `OR`_vvbinop] -[visit_exp ()] -[visit_exp `%`_u32(80)] -[visit_exp (80)] -[visit_exp 80] -[check_dims] -dims \ = -[visit_exp `VVBINOP`_instr(`V128`_vectype, `XOR`_vvbinop)] -[visit_exp (`V128`_vectype, `XOR`_vvbinop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `XOR`_vvbinop] -[visit_exp ()] -[visit_exp `%`_u32(81)] -[visit_exp (81)] -[visit_exp 81] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VVTERNOP`_instr(`V128`_vectype, `BITSELECT`_vvternop)] -[visit_exp (`V128`_vectype, `BITSELECT`_vvternop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `BITSELECT`_vvternop] -[visit_exp ()] -[visit_exp `%`_u32(82)] -[visit_exp (82)] -[visit_exp 82] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop)] -[visit_exp (`V128`_vectype, `ANY_TRUE`_vvtestop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `ANY_TRUE`_vvtestop] -[visit_exp ()] -[visit_exp `%`_u32(83)] -[visit_exp (83)] -[visit_exp 83] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ABS`_vunop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ABS`_vunop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(96)] -[visit_exp (96)] -[visit_exp 96] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NEG`_vunop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NEG`_vunop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(97)] -[visit_exp (97)] -[visit_exp 97] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `POPCNT`_vunop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `POPCNT`_vunop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `POPCNT`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(98)] -[visit_exp (98)] -[visit_exp 98] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VTESTOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ALL_TRUE`_vtestop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `ALL_TRUE`_vtestop_] -[visit_exp ()] -[visit_exp `%`_u32(99)] -[visit_exp (99)] -[visit_exp 99] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))))] -[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))))] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `%`_u32(100)] -[visit_exp (100)] -[visit_exp 100] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `S`_sx)] -[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `S`_sx)] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(101)] -[visit_exp (101)] -[visit_exp 101] -[check_dims] -dims \ = -[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `U`_sx)] -[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `U`_sx)] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(102)] -[visit_exp (102)] -[visit_exp 102] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHL`_vshiftop_)] -[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SHL`_vshiftop_] -[visit_exp ()] -[visit_exp `%`_u32(107)] -[visit_exp (107)] -[visit_exp 107] -[check_dims] -dims \ = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SHR`_vshiftop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(108)] -[visit_exp (108)] -[visit_exp 108] -[check_dims] -dims \ = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SHR`_vshiftop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(109)] -[visit_exp (109)] -[visit_exp 109] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD`_vbinop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(110)] -[visit_exp (110)] -[visit_exp 110] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `ADD_SAT`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(111)] -[visit_exp (111)] -[visit_exp 111] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `ADD_SAT`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(112)] -[visit_exp (112)] -[visit_exp 112] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB`_vbinop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(113)] -[visit_exp (113)] -[visit_exp 113] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SUB_SAT`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(114)] -[visit_exp (114)] -[visit_exp 114] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SUB_SAT`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(115)] -[visit_exp (115)] -[visit_exp 115] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `MIN`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(118)] -[visit_exp (118)] -[visit_exp 118] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `MIN`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(119)] -[visit_exp (119)] -[visit_exp 119] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `MAX`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(120)] -[visit_exp (120)] -[visit_exp 120] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `MAX`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(121)] -[visit_exp (121)] -[visit_exp 121] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `AVGRU`_vbinop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `AVGRU`_vbinop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `AVGRU`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(123)] -[visit_exp (123)] -[visit_exp 123] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTADD_PAIRWISE`_vextunop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(124)] -[visit_exp (124)] -[visit_exp 124] -[check_dims] -dims \ = -[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTADD_PAIRWISE`_vextunop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(125)] -[visit_exp (125)] -[visit_exp 125] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ABS`_vunop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ABS`_vunop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(128)] -[visit_exp (128)] -[visit_exp 128] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NEG`_vunop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NEG`_vunop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(129)] -[visit_exp (129)] -[visit_exp 129] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `Q15MULR_SATS`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(130)] -[visit_exp (130)] -[visit_exp 130] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD`_vbinop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(142)] -[visit_exp (142)] -[visit_exp 142] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `ADD_SAT`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(143)] -[visit_exp (143)] -[visit_exp 143] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `ADD_SAT`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(144)] -[visit_exp (144)] -[visit_exp 144] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB`_vbinop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(145)] -[visit_exp (145)] -[visit_exp 145] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `SUB_SAT`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(146)] -[visit_exp (146)] -[visit_exp 146] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `SUB_SAT`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(147)] -[visit_exp (147)] -[visit_exp 147] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MUL`_vbinop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `MUL`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(149)] -[visit_exp (149)] -[visit_exp 149] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `MIN`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(150)] -[visit_exp (150)] -[visit_exp 150] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `MIN`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(151)] -[visit_exp (151)] -[visit_exp 151] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `MAX`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(152)] -[visit_exp (152)] -[visit_exp 152] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `MAX`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(153)] -[visit_exp (153)] -[visit_exp 153] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `AVGRU`_vbinop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `AVGRU`_vbinop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `AVGRU`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(155)] -[visit_exp (155)] -[visit_exp 155] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `RELAXED_Q15MULRS`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(273)] -[visit_exp (273)] -[visit_exp 273] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VTESTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ALL_TRUE`_vtestop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `ALL_TRUE`_vtestop_] -[visit_exp ()] -[visit_exp `%`_u32(131)] -[visit_exp (131)] -[visit_exp 131] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_u32(132)] -[visit_exp (132)] -[visit_exp 132] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `S`_sx)] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `S`_sx)] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(133)] -[visit_exp (133)] -[visit_exp 133] -[check_dims] -dims \ = -[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `U`_sx)] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `U`_sx)] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(134)] -[visit_exp (134)] -[visit_exp 134] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)] -[visit_exp (`LOW`_half, `S`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(135)] -[visit_exp (135)] -[visit_exp 135] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)] -[visit_exp (`HIGH`_half, `S`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(136)] -[visit_exp (136)] -[visit_exp 136] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)] -[visit_exp (`LOW`_half, `U`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(137)] -[visit_exp (137)] -[visit_exp 137] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)] -[visit_exp (`HIGH`_half, `U`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(138)] -[visit_exp (138)] -[visit_exp 138] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHL`_vshiftop_)] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `SHL`_vshiftop_] -[visit_exp ()] -[visit_exp `%`_u32(139)] -[visit_exp (139)] -[visit_exp 139] -[check_dims] -dims \ = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `SHR`_vshiftop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(140)] -[visit_exp (140)] -[visit_exp 140] -[check_dims] -dims \ = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `SHR`_vshiftop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(141)] -[visit_exp (141)] -[visit_exp 141] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)] -[visit_exp (`LOW`_half, `S`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(156)] -[visit_exp (156)] -[visit_exp 156] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)] -[visit_exp (`HIGH`_half, `S`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(157)] -[visit_exp (157)] -[visit_exp 157] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)] -[visit_exp (`LOW`_half, `U`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(158)] -[visit_exp (158)] -[visit_exp 158] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)] -[visit_exp (`HIGH`_half, `U`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(159)] -[visit_exp (159)] -[visit_exp 159] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_DOTS`_vextbinop__)] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_DOTS`_vextbinop__)] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `RELAXED_DOTS`_vextbinop__] -[visit_exp ()] -[visit_exp `%`_u32(274)] -[visit_exp (274)] -[visit_exp 274] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTADD_PAIRWISE`_vextunop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(126)] -[visit_exp (126)] -[visit_exp 126] -[check_dims] -dims \ = -[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTADD_PAIRWISE`_vextunop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(127)] -[visit_exp (127)] -[visit_exp 127] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(160)] -[visit_exp (160)] -[visit_exp 160] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(161)] -[visit_exp (161)] -[visit_exp 161] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VTESTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ALL_TRUE`_vtestop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `ALL_TRUE`_vtestop_] -[visit_exp ()] -[visit_exp `%`_u32(163)] -[visit_exp (163)] -[visit_exp 163] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_u32(164)] -[visit_exp (164)] -[visit_exp 164] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)] -[visit_exp (`LOW`_half, `S`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(167)] -[visit_exp (167)] -[visit_exp 167] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)] -[visit_exp (`HIGH`_half, `S`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(168)] -[visit_exp (168)] -[visit_exp 168] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)] -[visit_exp (`LOW`_half, `U`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(169)] -[visit_exp (169)] -[visit_exp 169] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)] -[visit_exp (`HIGH`_half, `U`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(170)] -[visit_exp (170)] -[visit_exp 170] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHL`_vshiftop_)] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `SHL`_vshiftop_] -[visit_exp ()] -[visit_exp `%`_u32(171)] -[visit_exp (171)] -[visit_exp 171] -[check_dims] -dims \ = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `SHR`_vshiftop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(172)] -[visit_exp (172)] -[visit_exp 172] -[check_dims] -dims \ = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `SHR`_vshiftop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(173)] -[visit_exp (173)] -[visit_exp 173] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(174)] -[visit_exp (174)] -[visit_exp 174] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(177)] -[visit_exp (177)] -[visit_exp 177] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MUL`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(181)] -[visit_exp (181)] -[visit_exp 181] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MIN`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(182)] -[visit_exp (182)] -[visit_exp 182] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MIN`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(183)] -[visit_exp (183)] -[visit_exp 183] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MAX`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(184)] -[visit_exp (184)] -[visit_exp 184] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MAX`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(185)] -[visit_exp (185)] -[visit_exp 185] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `DOTS`_vextbinop__)] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `DOTS`_vextbinop__)] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `DOTS`_vextbinop__] -[visit_exp ()] -[visit_exp `%`_u32(186)] -[visit_exp (186)] -[visit_exp 186] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)] -[visit_exp (`LOW`_half, `S`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(188)] -[visit_exp (188)] -[visit_exp 188] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)] -[visit_exp (`HIGH`_half, `S`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(189)] -[visit_exp (189)] -[visit_exp 189] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)] -[visit_exp (`LOW`_half, `U`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(190)] -[visit_exp (190)] -[visit_exp 190] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)] -[visit_exp (`HIGH`_half, `U`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(191)] -[visit_exp (191)] -[visit_exp 191] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VEXTTERNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `RELAXED_DOT_ADDS`_vextternop__)] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `RELAXED_DOT_ADDS`_vextternop__)] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `RELAXED_DOT_ADDS`_vextternop__] -[visit_exp ()] -[visit_exp `%`_u32(275)] -[visit_exp (275)] -[visit_exp 275] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(192)] -[visit_exp (192)] -[visit_exp 192] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(193)] -[visit_exp (193)] -[visit_exp 193] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VTESTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ALL_TRUE`_vtestop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `ALL_TRUE`_vtestop_] -[visit_exp ()] -[visit_exp `%`_u32(195)] -[visit_exp (195)] -[visit_exp 195] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%`_u32(196)] -[visit_exp (196)] -[visit_exp 196] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)] -[visit_exp (`LOW`_half, `S`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(199)] -[visit_exp (199)] -[visit_exp 199] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)] -[visit_exp (`HIGH`_half, `S`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(200)] -[visit_exp (200)] -[visit_exp 200] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)] -[visit_exp (`LOW`_half, `U`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(201)] -[visit_exp (201)] -[visit_exp 201] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)] -[visit_exp (`HIGH`_half, `U`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(202)] -[visit_exp (202)] -[visit_exp 202] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHL`_vshiftop_)] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `SHL`_vshiftop_] -[visit_exp ()] -[visit_exp `%`_u32(203)] -[visit_exp (203)] -[visit_exp 203] -[check_dims] -dims \ = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `SHR`_vshiftop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(204)] -[visit_exp (204)] -[visit_exp 204] -[check_dims] -dims \ = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `SHR`_vshiftop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(205)] -[visit_exp (205)] -[visit_exp 205] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(206)] -[visit_exp (206)] -[visit_exp 206] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(209)] -[visit_exp (209)] -[visit_exp 209] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `MUL`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(213)] -[visit_exp (213)] -[visit_exp 213] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(214)] -[visit_exp (214)] -[visit_exp 214] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[visit_exp `%`_u32(215)] -[visit_exp (215)] -[visit_exp 215] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `LT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(216)] -[visit_exp (216)] -[visit_exp 216] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `GT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(217)] -[visit_exp (217)] -[visit_exp 217] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `LE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(218)] -[visit_exp (218)] -[visit_exp 218] -[check_dims] -dims \ = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `GE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(219)] -[visit_exp (219)] -[visit_exp 219] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)] -[visit_exp (`LOW`_half, `S`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(220)] -[visit_exp (220)] -[visit_exp 220] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)] -[visit_exp (`HIGH`_half, `S`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(221)] -[visit_exp (221)] -[visit_exp 221] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)] -[visit_exp (`LOW`_half, `U`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(222)] -[visit_exp (222)] -[visit_exp 222] -[check_dims] -dims \ = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)] -[visit_exp (`HIGH`_half, `U`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(223)] -[visit_exp (223)] -[visit_exp 223] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `CEIL`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `CEIL`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `CEIL`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(103)] -[visit_exp (103)] -[visit_exp 103] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `FLOOR`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `FLOOR`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `FLOOR`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(104)] -[visit_exp (104)] -[visit_exp 104] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `TRUNC`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(105)] -[visit_exp (105)] -[visit_exp 105] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEAREST`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEAREST`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `NEAREST`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(106)] -[visit_exp (106)] -[visit_exp 106] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(224)] -[visit_exp (224)] -[visit_exp 224] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(225)] -[visit_exp (225)] -[visit_exp 225] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SQRT`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SQRT`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `SQRT`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(227)] -[visit_exp (227)] -[visit_exp 227] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(228)] -[visit_exp (228)] -[visit_exp 228] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(229)] -[visit_exp (229)] -[visit_exp 229] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MUL`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(230)] -[visit_exp (230)] -[visit_exp 230] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `DIV`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `DIV`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `DIV`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(231)] -[visit_exp (231)] -[visit_exp 231] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MIN`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MIN`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MIN`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(232)] -[visit_exp (232)] -[visit_exp 232] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MAX`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MAX`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MAX`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(233)] -[visit_exp (233)] -[visit_exp 233] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMIN`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMIN`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `PMIN`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(234)] -[visit_exp (234)] -[visit_exp 234] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMAX`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMAX`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `PMAX`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(235)] -[visit_exp (235)] -[visit_exp 235] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MIN`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MIN`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_MIN`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(269)] -[visit_exp (269)] -[visit_exp 269] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MAX`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MAX`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_MAX`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(270)] -[visit_exp (270)] -[visit_exp 270] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MADD`_vternop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MADD`_vternop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_MADD`_vternop_] -[visit_exp ()] -[visit_exp `%`_u32(261)] -[visit_exp (261)] -[visit_exp 261] -[check_dims] -dims \ = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_NMADD`_vternop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_NMADD`_vternop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_NMADD`_vternop_] -[visit_exp ()] -[visit_exp `%`_u32(262)] -[visit_exp (262)] -[visit_exp 262] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `CEIL`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `CEIL`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `CEIL`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(116)] -[visit_exp (116)] -[visit_exp 116] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `FLOOR`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `FLOOR`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `FLOOR`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(117)] -[visit_exp (117)] -[visit_exp 117] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `TRUNC`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(122)] -[visit_exp (122)] -[visit_exp 122] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEAREST`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEAREST`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `NEAREST`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(148)] -[visit_exp (148)] -[visit_exp 148] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(236)] -[visit_exp (236)] -[visit_exp 236] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(237)] -[visit_exp (237)] -[visit_exp 237] -[check_dims] -dims \ = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SQRT`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SQRT`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `SQRT`_vunop_] -[visit_exp ()] -[visit_exp `%`_u32(239)] -[visit_exp (239)] -[visit_exp 239] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(240)] -[visit_exp (240)] -[visit_exp 240] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(241)] -[visit_exp (241)] -[visit_exp 241] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `MUL`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(242)] -[visit_exp (242)] -[visit_exp 242] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DIV`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DIV`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `DIV`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(243)] -[visit_exp (243)] -[visit_exp 243] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MIN`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MIN`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `MIN`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(244)] -[visit_exp (244)] -[visit_exp 244] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MAX`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MAX`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `MAX`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(245)] -[visit_exp (245)] -[visit_exp 245] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMIN`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMIN`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `PMIN`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(246)] -[visit_exp (246)] -[visit_exp 246] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMAX`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMAX`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `PMAX`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(247)] -[visit_exp (247)] -[visit_exp 247] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MIN`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MIN`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_MIN`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(271)] -[visit_exp (271)] -[visit_exp 271] -[check_dims] -dims \ = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MAX`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MAX`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_MAX`_vbinop_] -[visit_exp ()] -[visit_exp `%`_u32(272)] -[visit_exp (272)] -[visit_exp 272] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MADD`_vternop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MADD`_vternop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_MADD`_vternop_] -[visit_exp ()] -[visit_exp `%`_u32(263)] -[visit_exp (263)] -[visit_exp 263] -[check_dims] -dims \ = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_NMADD`_vternop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_NMADD`_vternop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_NMADD`_vternop_] -[visit_exp ()] -[visit_exp `%`_u32(264)] -[visit_exp (264)] -[visit_exp 264] -[check_dims] -dims \ = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `RELAXED_LANESELECT`_vternop_] -[visit_exp ()] -[visit_exp `%`_u32(265)] -[visit_exp (265)] -[visit_exp 265] -[check_dims] -dims \ = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `RELAXED_LANESELECT`_vternop_] -[visit_exp ()] -[visit_exp `%`_u32(266)] -[visit_exp (266)] -[visit_exp 266] -[check_dims] -dims \ = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_LANESELECT`_vternop_] -[visit_exp ()] -[visit_exp `%`_u32(267)] -[visit_exp (267)] -[visit_exp 267] -[check_dims] -dims \ = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_LANESELECT`_vternop_] -[visit_exp ()] -[visit_exp `%`_u32(268)] -[visit_exp (268)] -[visit_exp 268] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DEMOTE`_vcvtop__(`ZERO`_zero))] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DEMOTE`_vcvtop__(`ZERO`_zero))] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `DEMOTE`_vcvtop__(`ZERO`_zero)] -[visit_exp (`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[visit_exp `%`_u32(94)] -[visit_exp (94)] -[visit_exp 94] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `PROMOTELOW`_vcvtop__] -[visit_exp ()] -[visit_exp `%`_u32(95)] -[visit_exp (95)] -[visit_exp 95] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?()))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?()))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `TRUNC_SAT`_vcvtop__(`S`_sx, ?())] -[visit_exp (`S`_sx, ?())] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp ?()] -[visit_exp `%`_u32(248)] -[visit_exp (248)] -[visit_exp 248] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?()))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?()))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `TRUNC_SAT`_vcvtop__(`U`_sx, ?())] -[visit_exp (`U`_sx, ?())] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp ?()] -[visit_exp `%`_u32(249)] -[visit_exp (249)] -[visit_exp 249] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `S`_sx))] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `S`_sx))] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `CONVERT`_vcvtop__(?(), `S`_sx)] -[visit_exp (?(), `S`_sx)] -[visit_exp ?()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(250)] -[visit_exp (250)] -[visit_exp 250] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `U`_sx))] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `U`_sx))] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `CONVERT`_vcvtop__(?(), `U`_sx)] -[visit_exp (?(), `U`_sx)] -[visit_exp ?()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(251)] -[visit_exp (251)] -[visit_exp 251] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero))] -[visit_exp (`S`_sx, ?(`ZERO`_zero))] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp ?(`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[visit_exp `%`_u32(252)] -[visit_exp (252)] -[visit_exp 252] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero))] -[visit_exp (`U`_sx, ?(`ZERO`_zero))] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp ?(`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[visit_exp `%`_u32(253)] -[visit_exp (253)] -[visit_exp 253] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx))] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx))] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx)] -[visit_exp (?(`LOW`_half), `S`_sx)] -[visit_exp ?(`LOW`_half)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp `%`_u32(254)] -[visit_exp (254)] -[visit_exp 254] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx))] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx))] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx)] -[visit_exp (?(`LOW`_half), `U`_sx)] -[visit_exp ?(`LOW`_half)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp `%`_u32(255)] -[visit_exp (255)] -[visit_exp 255] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?()))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?()))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?())] -[visit_exp (`S`_sx, ?())] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp ?()] -[visit_exp `%`_u32(257)] -[visit_exp (257)] -[visit_exp 257] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?()))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?()))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?())] -[visit_exp (`U`_sx, ?())] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp ?()] -[visit_exp `%`_u32(258)] -[visit_exp (258)] -[visit_exp 258] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero))] -[visit_exp (`S`_sx, ?(`ZERO`_zero))] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp ?(`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[visit_exp `%`_u32(259)] -[visit_exp (259)] -[visit_exp 259] -[check_dims] -dims \ = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero))] -[visit_exp (`U`_sx, ?(`ZERO`_zero))] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp ?(`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[visit_exp `%`_u32(260)] -[visit_exp (260)] -[visit_exp 260] -ps' = -[check_dims] -[check_dims] in -dims \ = in -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] no dims -[visit_id in*] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] not free -[visit_id in*] no dims -[check_dims] -ps' = (N : N, syntax en, grammar BX : en*) -[check_dims] N en -[check_dims] N en len -dims \ N = en, len -[visit_exp en*{en <- `en*`}] -[scope_enter en] -[visit_exp en] -[visit_id en] not free -[visit_id en] not free -[scope_exit en] -[visit_exp `en*`] -[visit_id en*] no dims -[visit_id en*] -[visit_exp `%`_byte(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp `%`_u32(len)] -[visit_exp (len)] -[visit_exp len] -[visit_id len] -[visit_exp en*{en <- `en*`}] -[scope_enter en] -[visit_exp en] -[visit_id en] not free -[visit_id en] not free -[scope_exit en] -[visit_exp `en*`] -[visit_id en*] not free -[visit_id en*] no dims -[visit_exp (len = 0)] -[visit_exp len] -[visit_id len] not free -[visit_exp 0] -[check_dims] N -dims \ N = -[visit_exp []] -[visit_id N] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp []] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ((), ()).1] -[visit_exp ((), ())] -[visit_exp ()] -[visit_exp ()] -[visit_exp 0] -ps' = -[check_dims] -[check_dims] qt -dims \ = qt -[visit_exp `TYPE`_type(qt)] -[visit_exp (qt)] -[visit_exp qt] -[visit_id qt] -[visit_exp qt] -[visit_id qt] not free -ps' = -[check_dims] -[check_dims] ty -dims \ = ty -[visit_exp ty*{ty <- `ty*`}] -[scope_enter ty] -[visit_exp ty] -[visit_id ty] not free -[visit_id ty] not free -[scope_exit ty] -[visit_exp `ty*`] -[visit_id ty*] no dims -[visit_id ty*] -[visit_exp ty*{ty <- `ty*`}] -[scope_enter ty] -[visit_exp ty] -[visit_id ty] not free -[visit_id ty] not free -[scope_exit ty] -[visit_exp `ty*`] -[visit_id ty*] not free -[visit_id ty*] no dims -[visit_exp 1] -ps' = -[check_dims] -[check_dims] nm_1 nm_2 xt -dims \ = nm_1, nm_2, xt -[visit_exp `IMPORT`_import(nm_1, nm_2, xt)] -[visit_exp (nm_1, nm_2, xt)] -[visit_exp nm_1] -[visit_id nm_1] -[visit_exp nm_2] -[visit_id nm_2] -[visit_exp xt] -[visit_id xt] -[visit_exp nm_1] -[visit_id nm_1] not free -[visit_exp nm_2] -[visit_id nm_2] not free -[visit_exp xt] -[visit_id xt] not free -ps' = -[check_dims] -[check_dims] im -dims \ = im -[visit_exp im*{im <- `im*`}] -[scope_enter im] -[visit_exp im] -[visit_id im] not free -[visit_id im] not free -[scope_exit im] -[visit_exp `im*`] -[visit_id im*] no dims -[visit_id im*] -[visit_exp im*{im <- `im*`}] -[scope_enter im] -[visit_exp im] -[visit_id im] not free -[visit_id im] not free -[scope_exit im] -[visit_exp `im*`] -[visit_id im*] not free -[visit_id im*] no dims -[visit_exp 2] -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[visit_exp 3] -ps' = -[check_dims] -[check_dims] at ht lim tt -dims \ = at, ht, lim, tt -[visit_exp `TABLE`_table(tt, [`REF.NULL`_instr(ht)])] -[visit_exp (tt, [`REF.NULL`_instr(ht)])] -[visit_exp tt] -[visit_id tt] -[visit_exp [`REF.NULL`_instr(ht)]] -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp tt] -[visit_id tt] not free -[visit_exp (tt = `%%%`_tabletype(at, lim, `REF`_reftype(`NULL`_null?{}, ht)))] -[visit_exp tt] -[visit_id tt] not free -[visit_exp `%%%`_tabletype(at, lim, `REF`_reftype(`NULL`_null?{}, ht))] -[visit_exp (at, lim, `REF`_reftype(`NULL`_null?{}, ht))] -[visit_exp at] -[visit_id at] -[visit_exp lim] -[visit_id lim] -[visit_exp `REF`_reftype(`NULL`_null?{}, ht)] -[visit_exp (`NULL`_null?{}, ht)] -[visit_exp `NULL`_null?{}] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp ht] -[visit_id ht] not free -[check_dims] e tt -dims \ = e, tt -[visit_exp `TABLE`_table(tt, e)] -[visit_exp (tt, e)] -[visit_exp tt] -[visit_id tt] -[visit_exp e] -[visit_id e] -[visit_exp tt] -[visit_id tt] not free -[visit_exp e] -[visit_id e] not free -ps' = -[check_dims] -[check_dims] tab -dims \ = tab -[visit_exp tab*{tab <- `tab*`}] -[scope_enter tab] -[visit_exp tab] -[visit_id tab] not free -[visit_id tab] not free -[scope_exit tab] -[visit_exp `tab*`] -[visit_id tab*] no dims -[visit_id tab*] -[visit_exp tab*{tab <- `tab*`}] -[scope_enter tab] -[visit_exp tab] -[visit_id tab] not free -[visit_id tab] not free -[scope_exit tab] -[visit_exp `tab*`] -[visit_id tab*] not free -[visit_id tab*] no dims -[visit_exp 4] -ps' = -[check_dims] -[check_dims] mt -dims \ = mt -[visit_exp `MEMORY`_mem(mt)] -[visit_exp (mt)] -[visit_exp mt] -[visit_id mt] -[visit_exp mt] -[visit_id mt] not free -ps' = -[check_dims] -[check_dims] mem -dims \ = mem -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] no dims -[visit_id mem*] -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] not free -[visit_id mem*] no dims -[visit_exp 5] -ps' = -[check_dims] -[check_dims] e gt -dims \ = e, gt -[visit_exp `GLOBAL`_global(gt, e)] -[visit_exp (gt, e)] -[visit_exp gt] -[visit_id gt] -[visit_exp e] -[visit_id e] -[visit_exp gt] -[visit_id gt] not free -[visit_exp e] -[visit_id e] not free -ps' = -[check_dims] -[check_dims] glob -dims \ = glob -[visit_exp glob*{glob <- `glob*`}] -[scope_enter glob] -[visit_exp glob] -[visit_id glob] not free -[visit_id glob] not free -[scope_exit glob] -[visit_exp `glob*`] -[visit_id glob*] no dims -[visit_id glob*] -[visit_exp glob*{glob <- `glob*`}] -[scope_enter glob] -[visit_exp glob] -[visit_id glob] not free -[visit_id glob] not free -[scope_exit glob] -[visit_exp `glob*`] -[visit_id glob*] not free -[visit_id glob*] no dims -[visit_exp 6] -ps' = -[check_dims] -[check_dims] nm xx -dims \ = nm, xx -[visit_exp `EXPORT`_export(nm, xx)] -[visit_exp (nm, xx)] -[visit_exp nm] -[visit_id nm] -[visit_exp xx] -[visit_id xx] -[visit_exp nm] -[visit_id nm] not free -[visit_exp xx] -[visit_id xx] not free -ps' = -[check_dims] -[check_dims] ex -dims \ = ex -[visit_exp ex*{ex <- `ex*`}] -[scope_enter ex] -[visit_exp ex] -[visit_id ex] not free -[visit_id ex] not free -[scope_exit ex] -[visit_exp `ex*`] -[visit_id ex*] no dims -[visit_id ex*] -[visit_exp ex*{ex <- `ex*`}] -[scope_enter ex] -[visit_exp ex] -[visit_id ex] not free -[visit_id ex] not free -[scope_exit ex] -[visit_exp `ex*`] -[visit_id ex*] not free -[visit_id ex*] no dims -[visit_exp 7] -ps' = -[check_dims] -[check_dims] x -dims \ = x -[visit_exp [`START`_start(x)]] -[visit_exp `START`_start(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] -ps' = -[check_dims] -[check_dims] startopt -dims \ = startopt -[visit_exp $opt_(syntax start, startopt)] -[visit_exp startopt] -[visit_id startopt] -[visit_exp startopt] -[visit_id startopt] not free -[visit_exp 8] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp (?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `FUNC`_heaptype] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] e_o y -dims \ = e_o, y -[visit_exp `ELEM`_elem(`REF`_reftype(?(), `FUNC`_heaptype), [`REF.FUNC`_instr(y)*{y <- `y*`}], `ACTIVE`_elemmode(`%`_tableidx(0), e_o))] -[visit_exp (`REF`_reftype(?(), `FUNC`_heaptype), [`REF.FUNC`_instr(y)*{y <- `y*`}], `ACTIVE`_elemmode(`%`_tableidx(0), e_o))] -[visit_exp `REF`_reftype(?(), `FUNC`_heaptype)] -[visit_exp (?(), `FUNC`_heaptype)] -[visit_exp ?()] -[visit_exp `FUNC`_heaptype] -[visit_exp ()] -[visit_exp [`REF.FUNC`_instr(y)*{y <- `y*`}]] -[visit_exp `REF.FUNC`_instr(y)*{y <- `y*`}] -[scope_enter y] -[visit_exp `REF.FUNC`_instr(y)] -[visit_exp (y)] -[visit_exp y] -[visit_id y] not free -[visit_id y] not free -[scope_exit y] -[visit_exp `y*`] -[visit_id y*] no dims -[visit_id y*] -[visit_exp `ACTIVE`_elemmode(`%`_tableidx(0), e_o)] -[visit_exp (`%`_tableidx(0), e_o)] -[visit_exp `%`_tableidx(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp e_o] -[visit_id e_o] -[visit_exp `%`_u32(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp e_o] -[visit_id e_o] not free -[visit_exp y*{y <- `y*`}] -[scope_enter y] -[visit_exp y] -[visit_id y] not free -[visit_id y] not free -[scope_exit y] -[visit_exp `y*`] -[visit_id y*] not free -[visit_id y*] no dims -[check_dims] rt y -dims \ = rt, y -[visit_exp `ELEM`_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `PASSIVE`_elemmode)] -[visit_exp (rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `PASSIVE`_elemmode)] -[visit_exp rt] -[visit_id rt] -[visit_exp [`REF.FUNC`_instr(y)*{y <- `y*`}]] -[visit_exp `REF.FUNC`_instr(y)*{y <- `y*`}] -[scope_enter y] -[visit_exp `REF.FUNC`_instr(y)] -[visit_exp (y)] -[visit_exp y] -[visit_id y] not free -[visit_id y] not free -[scope_exit y] -[visit_exp `y*`] -[visit_id y*] no dims -[visit_id y*] -[visit_exp `PASSIVE`_elemmode] -[visit_exp ()] -[visit_exp `%`_u32(1)] -[visit_exp (1)] -[visit_exp 1] -[visit_exp rt] -[visit_id rt] not free -[visit_exp y*{y <- `y*`}] -[scope_enter y] -[visit_exp y] -[visit_id y] not free -[visit_id y] not free -[scope_exit y] -[visit_exp `y*`] -[visit_id y*] not free -[visit_id y*] no dims -[check_dims] e rt x y -dims \ = e, rt, x, y -[visit_exp `ELEM`_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `ACTIVE`_elemmode(x, e))] -[visit_exp (rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `ACTIVE`_elemmode(x, e))] -[visit_exp rt] -[visit_id rt] -[visit_exp [`REF.FUNC`_instr(y)*{y <- `y*`}]] -[visit_exp `REF.FUNC`_instr(y)*{y <- `y*`}] -[scope_enter y] -[visit_exp `REF.FUNC`_instr(y)] -[visit_exp (y)] -[visit_exp y] -[visit_id y] not free -[visit_id y] not free -[scope_exit y] -[visit_exp `y*`] -[visit_id y*] no dims -[visit_id y*] -[visit_exp `ACTIVE`_elemmode(x, e)] -[visit_exp (x, e)] -[visit_exp x] -[visit_id x] -[visit_exp e] -[visit_id e] -[visit_exp `%`_u32(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp x] -[visit_id x] not free -[visit_exp e] -[visit_id e] not free -[visit_exp rt] -[visit_id rt] not free -[visit_exp y*{y <- `y*`}] -[scope_enter y] -[visit_exp y] -[visit_id y] not free -[visit_id y] not free -[scope_exit y] -[visit_exp `y*`] -[visit_id y*] not free -[visit_id y*] no dims -[check_dims] rt y -dims \ = rt, y -[visit_exp `ELEM`_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `DECLARE`_elemmode)] -[visit_exp (rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `DECLARE`_elemmode)] -[visit_exp rt] -[visit_id rt] -[visit_exp [`REF.FUNC`_instr(y)*{y <- `y*`}]] -[visit_exp `REF.FUNC`_instr(y)*{y <- `y*`}] -[scope_enter y] -[visit_exp `REF.FUNC`_instr(y)] -[visit_exp (y)] -[visit_exp y] -[visit_id y] not free -[visit_id y] not free -[scope_exit y] -[visit_exp `y*`] -[visit_id y*] no dims -[visit_id y*] -[visit_exp `DECLARE`_elemmode] -[visit_exp ()] -[visit_exp `%`_u32(3)] -[visit_exp (3)] -[visit_exp 3] -[visit_exp rt] -[visit_id rt] not free -[visit_exp y*{y <- `y*`}] -[scope_enter y] -[visit_exp y] -[visit_id y] not free -[visit_id y] not free -[scope_exit y] -[visit_exp `y*`] -[visit_id y*] not free -[visit_id y*] no dims -[check_dims] e e_O -dims \ = e, e_O -[visit_exp `ELEM`_elem(`REF`_reftype(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode(`%`_tableidx(0), e_O))] -[visit_exp (`REF`_reftype(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode(`%`_tableidx(0), e_O))] -[visit_exp `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp (?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `FUNC`_heaptype] -[visit_exp ()] -[visit_exp e*{e <- `e*`}] -[scope_enter e] -[visit_exp e] -[visit_id e] not free -[visit_id e] not free -[scope_exit e] -[visit_exp `e*`] -[visit_id e*] no dims -[visit_id e*] -[visit_exp `ACTIVE`_elemmode(`%`_tableidx(0), e_O)] -[visit_exp (`%`_tableidx(0), e_O)] -[visit_exp `%`_tableidx(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp e_O] -[visit_id e_O] -[visit_exp `%`_u32(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp e_O] -[visit_id e_O] not free -[visit_exp e*{e <- `e*`}] -[scope_enter e] -[visit_exp e] -[visit_id e] not free -[visit_id e] not free -[scope_exit e] -[visit_exp `e*`] -[visit_id e*] not free -[visit_id e*] no dims -[check_dims] e rt -dims \ = e, rt -[visit_exp `ELEM`_elem(rt, e*{e <- `e*`}, `PASSIVE`_elemmode)] -[visit_exp (rt, e*{e <- `e*`}, `PASSIVE`_elemmode)] -[visit_exp rt] -[visit_id rt] -[visit_exp e*{e <- `e*`}] -[scope_enter e] -[visit_exp e] -[visit_id e] not free -[visit_id e] not free -[scope_exit e] -[visit_exp `e*`] -[visit_id e*] no dims -[visit_id e*] -[visit_exp `PASSIVE`_elemmode] -[visit_exp ()] -[visit_exp `%`_u32(5)] -[visit_exp (5)] -[visit_exp 5] -[visit_exp rt] -[visit_id rt] not free -[visit_exp e*{e <- `e*`}] -[scope_enter e] -[visit_exp e] -[visit_id e] not free -[visit_id e] not free -[scope_exit e] -[visit_exp `e*`] -[visit_id e*] not free -[visit_id e*] no dims -[check_dims] e e_O x -dims \ = e, e_O, x -[visit_exp `ELEM`_elem(`REF`_reftype(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode(x, e_O))] -[visit_exp (`REF`_reftype(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode(x, e_O))] -[visit_exp `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp (?(`NULL`_null), `FUNC`_heaptype)] -[visit_exp ?(`NULL`_null)] -[visit_exp `NULL`_null] -[visit_exp ()] -[visit_exp `FUNC`_heaptype] -[visit_exp ()] -[visit_exp e*{e <- `e*`}] -[scope_enter e] -[visit_exp e] -[visit_id e] not free -[visit_id e] not free -[scope_exit e] -[visit_exp `e*`] -[visit_id e*] no dims -[visit_id e*] -[visit_exp `ACTIVE`_elemmode(x, e_O)] -[visit_exp (x, e_O)] -[visit_exp x] -[visit_id x] -[visit_exp e_O] -[visit_id e_O] -[visit_exp `%`_u32(6)] -[visit_exp (6)] -[visit_exp 6] -[visit_exp x] -[visit_id x] not free -[visit_exp e_O] -[visit_id e_O] not free -[visit_exp e*{e <- `e*`}] -[scope_enter e] -[visit_exp e] -[visit_id e] not free -[visit_id e] not free -[scope_exit e] -[visit_exp `e*`] -[visit_id e*] not free -[visit_id e*] no dims -[check_dims] e rt -dims \ = e, rt -[visit_exp `ELEM`_elem(rt, e*{e <- `e*`}, `DECLARE`_elemmode)] -[visit_exp (rt, e*{e <- `e*`}, `DECLARE`_elemmode)] -[visit_exp rt] -[visit_id rt] -[visit_exp e*{e <- `e*`}] -[scope_enter e] -[visit_exp e] -[visit_id e] not free -[visit_id e] not free -[scope_exit e] -[visit_exp `e*`] -[visit_id e*] no dims -[visit_id e*] -[visit_exp `DECLARE`_elemmode] -[visit_exp ()] -[visit_exp `%`_u32(7)] -[visit_exp (7)] -[visit_exp 7] -[visit_exp rt] -[visit_id rt] not free -[visit_exp e*{e <- `e*`}] -[scope_enter e] -[visit_exp e] -[visit_id e] not free -[visit_id e] not free -[scope_exit e] -[visit_exp `e*`] -[visit_id e*] not free -[visit_id e*] no dims -ps' = -[check_dims] -[check_dims] elem -dims \ = elem -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] no dims -[visit_id elem*] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] not free -[visit_id elem*] no dims -[visit_exp 9] -[check_dims] -ps' = -[check_dims] -[check_dims] n t -dims \ = n, t -[visit_exp `LOCAL`_local(t)^n{}] -[visit_exp `LOCAL`_local(t)] -[visit_exp (t)] -[visit_exp t] -[visit_id t] -[visit_exp n] -[visit_id n] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp t] -[visit_id t] not free -ps' = -[check_dims] -[check_dims] e loc -dims \ = e, loc -[visit_exp ($concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`}), e)] -[visit_exp $concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`})] -[visit_exp loc*{loc <- `loc*`}*{`loc*` <- `loc**`}] -[scope_enter loc*] -[visit_exp loc*{loc <- `loc*`}] -[scope_enter loc] -[visit_exp loc] -[visit_id loc] not free -[visit_id loc] not free -[scope_exit loc] -[visit_exp `loc*`] -[visit_id loc*] not free -[visit_id loc*] no dims -[visit_id loc*] not free -[visit_id loc*] no dims -[scope_exit loc*] -[visit_exp `loc**`] -[visit_id loc**] no dims -[visit_id loc**] -[visit_exp e] -[visit_id e] -[visit_exp loc*{loc <- `loc*`}*{`loc*` <- `loc**`}] -[scope_enter loc*] -[visit_exp loc*{loc <- `loc*`}] -[scope_enter loc] -[visit_exp loc] -[visit_id loc] not free -[visit_id loc] not free -[scope_exit loc] -[visit_exp `loc*`] -[visit_id loc*] not free -[visit_id loc*] no dims -[visit_id loc*] not free -[visit_id loc*] no dims -[scope_exit loc*] -[visit_exp `loc**`] -[visit_id loc**] not free -[visit_id loc**] no dims -[visit_exp e] -[visit_id e] not free -[visit_exp (|$concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`})| < (2 ^ 32))] -[visit_exp |$concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`})|] -[visit_exp $concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`})] -[visit_exp loc*{loc <- `loc*`}*{`loc*` <- `loc**`}] -[scope_enter loc*] -[visit_exp loc*{loc <- `loc*`}] -[scope_enter loc] -[visit_exp loc] -[visit_id loc] not free -[visit_id loc] not free -[scope_exit loc] -[visit_exp `loc*`] -[visit_id loc*] not free -[visit_id loc*] no dims -[visit_id loc*] not free -[visit_id loc*] no dims -[scope_exit loc*] -[visit_exp `loc**`] -[visit_id loc**] not free -[visit_id loc**] no dims -[visit_exp (2 ^ 32)] -[visit_exp 2] -[visit_exp 32] -ps' = -[check_dims] -[check_dims] code len -dims \ = code, len -[visit_exp code] -[visit_id code] -[visit_exp `%`_u32(len)] -[visit_exp (len)] -[visit_exp len] -[visit_id len] -[visit_exp code] -[visit_id code] not free -[visit_exp (len = 0)] -[visit_exp len] -[visit_id len] not free -[visit_exp 0] -ps' = -[check_dims] -[check_dims] code -dims \ = code -[visit_exp code*{code <- `code*`}] -[scope_enter code] -[visit_exp code] -[visit_id code] not free -[visit_id code] not free -[scope_exit code] -[visit_exp `code*`] -[visit_id code*] no dims -[visit_id code*] -[visit_exp code*{code <- `code*`}] -[scope_enter code] -[visit_exp code] -[visit_id code] not free -[visit_id code] not free -[scope_exit code] -[visit_exp `code*`] -[visit_id code*] not free -[visit_id code*] no dims -[visit_exp 10] -ps' = -[check_dims] -[check_dims] b e -dims \ = b, e -[visit_exp `DATA`_data(b*{b <- `b*`}, `ACTIVE`_datamode(`%`_memidx(0), e))] -[visit_exp (b*{b <- `b*`}, `ACTIVE`_datamode(`%`_memidx(0), e))] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp `ACTIVE`_datamode(`%`_memidx(0), e)] -[visit_exp (`%`_memidx(0), e)] -[visit_exp `%`_memidx(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp e] -[visit_id e] -[visit_exp `%`_u32(0)] -[visit_exp (0)] -[visit_exp 0] -[visit_exp e] -[visit_id e] not free -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[check_dims] b -dims \ = b -[visit_exp `DATA`_data(b*{b <- `b*`}, `PASSIVE`_datamode)] -[visit_exp (b*{b <- `b*`}, `PASSIVE`_datamode)] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp `PASSIVE`_datamode] -[visit_exp ()] -[visit_exp `%`_u32(1)] -[visit_exp (1)] -[visit_exp 1] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[check_dims] b e x -dims \ = b, e, x -[visit_exp `DATA`_data(b*{b <- `b*`}, `ACTIVE`_datamode(x, e))] -[visit_exp (b*{b <- `b*`}, `ACTIVE`_datamode(x, e))] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp `ACTIVE`_datamode(x, e)] -[visit_exp (x, e)] -[visit_exp x] -[visit_id x] -[visit_exp e] -[visit_id e] -[visit_exp `%`_u32(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp x] -[visit_id x] not free -[visit_exp e] -[visit_id e] not free -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -ps' = -[check_dims] -[check_dims] data -dims \ = data -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] no dims -[visit_id data*] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] not free -[visit_id data*] no dims -[visit_exp 11] -ps' = -[check_dims] -[check_dims] n -dims \ = n -[visit_exp [`%`_u32(n)]] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[check_dims] -ps' = -[check_dims] -[check_dims] nopt -dims \ = nopt -[visit_exp $opt_(syntax u32, nopt)] -[visit_exp nopt] -[visit_id nopt] -[visit_exp nopt] -[visit_id nopt] not free -[visit_exp 12] -ps' = -[check_dims] -[check_dims] jt -dims \ = jt -[visit_exp `TAG`_tag(jt)] -[visit_exp (jt)] -[visit_exp jt] -[visit_id jt] -[visit_exp jt] -[visit_id jt] not free -ps' = -[check_dims] -[check_dims] tag -dims \ = tag -[visit_exp tag*{tag <- `tag*`}] -[scope_enter tag] -[visit_exp tag] -[visit_id tag] not free -[visit_id tag] not free -[scope_exit tag] -[visit_exp `tag*`] -[visit_id tag*] no dims -[visit_id tag*] -[visit_exp tag*{tag <- `tag*`}] -[scope_enter tag] -[visit_exp tag] -[visit_id tag] not free -[visit_id tag] not free -[scope_exit tag] -[visit_exp `tag*`] -[visit_id tag*] not free -[visit_id tag*] no dims -[visit_exp 13] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ((), ()).1] -[visit_exp ((), ())] -[visit_exp ()] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ((), ()).1] -[visit_exp ((), ())] -[visit_exp ()] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] data elem export expr func global import local mem n start table tag type typeidx -dims \ = data, elem, export, expr, func, global, import, local, mem, n, start, table, tag, type, typeidx -[visit_exp `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp type*{type <- `type*`}] -[scope_enter type] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] no dims -[visit_id type*] -[visit_exp import*{import <- `import*`}] -[scope_enter import] -[visit_exp import] -[visit_id import] not free -[visit_id import] not free -[scope_exit import] -[visit_exp `import*`] -[visit_id import*] no dims -[visit_id import*] -[visit_exp tag*{tag <- `tag*`}] -[scope_enter tag] -[visit_exp tag] -[visit_id tag] not free -[visit_id tag] not free -[scope_exit tag] -[visit_exp `tag*`] -[visit_id tag*] no dims -[visit_id tag*] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] no dims -[visit_id global*] -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] no dims -[visit_id mem*] -[visit_exp table*{table <- `table*`}] -[scope_enter table] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] no dims -[visit_id table*] -[visit_exp func*{func <- `func*`}] -[scope_enter func] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] no dims -[visit_id func*] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] no dims -[visit_id data*] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] no dims -[visit_id elem*] -[visit_exp start?{start <- `start?`}] -[scope_enter start] -[visit_exp start] -[visit_id start] not free -[visit_id start] not free -[scope_exit start] -[visit_exp `start?`] -[visit_id start?] no dims -[visit_id start?] -[visit_exp export*{export <- `export*`}] -[scope_enter export] -[visit_exp export] -[visit_id export] not free -[visit_id export] not free -[scope_exit export] -[visit_exp `export*`] -[visit_id export*] no dims -[visit_id export*] -[visit_exp type*{type <- `type*`}] -[scope_enter type] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] not free -[visit_id type*] no dims -[visit_exp import*{import <- `import*`}] -[scope_enter import] -[visit_exp import] -[visit_id import] not free -[visit_id import] not free -[scope_exit import] -[visit_exp `import*`] -[visit_id import*] not free -[visit_id import*] no dims -[visit_exp typeidx*{typeidx <- `typeidx*`}] -[scope_enter typeidx] -[visit_exp typeidx] -[visit_id typeidx] not free -[visit_id typeidx] not free -[scope_exit typeidx] -[visit_exp `typeidx*`] -[visit_id typeidx*] no dims -[visit_id typeidx*] -[visit_exp table*{table <- `table*`}] -[scope_enter table] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] not free -[visit_id table*] no dims -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] not free -[visit_id mem*] no dims -[visit_exp tag*{tag <- `tag*`}] -[scope_enter tag] -[visit_exp tag] -[visit_id tag] not free -[visit_id tag] not free -[scope_exit tag] -[visit_exp `tag*`] -[visit_id tag*] not free -[visit_id tag*] no dims -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] not free -[visit_id global*] no dims -[visit_exp export*{export <- `export*`}] -[scope_enter export] -[visit_exp export] -[visit_id export] not free -[visit_id export] not free -[scope_exit export] -[visit_exp `export*`] -[visit_id export*] not free -[visit_id export*] no dims -[visit_exp start?{start <- `start?`}] -[scope_enter start] -[visit_exp start] -[visit_id start] not free -[visit_id start] not free -[scope_exit start] -[visit_exp `start?`] -[visit_id start?] not free -[visit_id start?] no dims -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] not free -[visit_id elem*] no dims -[visit_exp `%`_u32(n)?{n <- `n?`}] -[scope_enter n] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_id n] not free -[scope_exit n] -[visit_exp `n?`] -[visit_id n?] no dims -[visit_id n?] -[visit_exp (local*{local <- `local*`}, expr)*{expr <- `expr*`, `local*` <- `local**`}] -[scope_enter expr] -[scope_enter local*] -[visit_exp (local*{local <- `local*`}, expr)] -[visit_exp local*{local <- `local*`}] -[scope_enter local] -[visit_exp local] -[visit_id local] not free -[visit_id local] not free -[scope_exit local] -[visit_exp `local*`] -[visit_id local*] not free -[visit_id local*] no dims -[visit_exp expr] -[visit_id expr] not free -[visit_id expr] not free -[visit_id local*] not free -[visit_id local*] no dims -[scope_exit local*] -[scope_exit expr] -[visit_exp `expr*`] -[visit_id expr*] no dims -[visit_id expr*] -[visit_exp `local**`] -[visit_id local**] no dims -[visit_id local**] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] not free -[visit_id data*] no dims -[scope_enter n] -[visit_exp (n = |data*{data <- `data*`}|)] -[visit_exp n] -[visit_id n] not free -[visit_exp |data*{data <- `data*`}|] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] not free -[visit_id data*] no dims -[visit_id n] not free -[scope_exit n] -[visit_exp `n?`] -[visit_id n?] not free -[visit_id n?] no dims -[visit_exp ((n?{n <- `n?`} =/= ?()) \/ ($dataidx_funcs(func*{func <- `func*`}) = []))] -[visit_exp (n?{n <- `n?`} =/= ?())] -[visit_exp n?{n <- `n?`}] -[scope_enter n] -[visit_exp n] -[visit_id n] not free -[visit_id n] not free -[scope_exit n] -[visit_exp `n?`] -[visit_id n?] not free -[visit_id n?] no dims -[visit_exp ?()] -[visit_exp ($dataidx_funcs(func*{func <- `func*`}) = [])] -[visit_exp $dataidx_funcs(func*{func <- `func*`})] -[visit_exp func*{func <- `func*`}] -[scope_enter func] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] not free -[visit_id func*] no dims -[visit_exp []] -[scope_enter expr] -[scope_enter func] -[scope_enter local*] -[scope_enter typeidx] -[visit_exp (func = `FUNC`_func(typeidx, local*{local <- `local*`}, expr))] -[visit_exp func] -[visit_id func] not free -[visit_exp `FUNC`_func(typeidx, local*{local <- `local*`}, expr)] -[visit_exp (typeidx, local*{local <- `local*`}, expr)] -[visit_exp typeidx] -[visit_id typeidx] not free -[visit_exp local*{local <- `local*`}] -[scope_enter local] -[visit_exp local] -[visit_id local] not free -[visit_id local] not free -[scope_exit local] -[visit_exp `local*`] -[visit_id local*] not free -[visit_id local*] no dims -[visit_exp expr] -[visit_id expr] not free -[visit_id expr] not free -[visit_id func] not free -[visit_id local*] not free -[visit_id local*] no dims -[visit_id typeidx] not free -[scope_exit typeidx] -[scope_exit local*] -[scope_exit func] -[scope_exit expr] -[visit_exp `expr*`] -[visit_id expr*] not free -[visit_id expr*] no dims -[visit_exp `func*`] -[visit_id func*] not free -[visit_id func*] no dims -[visit_exp `local**`] -[visit_id local**] not free -[visit_id local**] no dims -[visit_exp `typeidx*`] -[visit_id typeidx*] not free -[visit_id typeidx*] no dims -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp [``]] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp [``]] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp [``]] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp [``]] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] c -dims \ = , c -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp c] -[visit_id c] -[visit_exp ((c!`%`_char.0 =/= 10) /\ (c!`%`_char.0 =/= 13))] -[visit_exp (c!`%`_char.0 =/= 10)] -[visit_exp c!`%`_char.0] -[visit_exp c!`%`_char] -[visit_exp c] -[visit_id c] not free -[visit_exp 10] -[visit_exp (c!`%`_char.0 =/= 13)] -[visit_exp c!`%`_char.0] -[visit_exp c!`%`_char] -[visit_exp c] -[visit_id c] not free -[visit_exp 13] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] c -dims \ = , c -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp c] -[visit_id c] -[visit_exp ((c =/= `%`_char(59)) /\ (c =/= `%`_char(40)))] -[visit_exp (c =/= `%`_char(59))] -[visit_exp c] -[visit_id c] not free -[visit_exp `%`_char(59)] -[visit_exp (59)] -[visit_exp 59] -[visit_exp (c =/= `%`_char(40))] -[visit_exp c] -[visit_id c] not free -[visit_exp `%`_char(40)] -[visit_exp (40)] -[visit_exp 40] -[check_dims] c -dims \ = , c -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp c] -[visit_id c] -[visit_exp ((c =/= `%`_char(59)) /\ (c =/= `%`_char(41)))] -[visit_exp (c =/= `%`_char(59))] -[visit_exp c] -[visit_id c] not free -[visit_exp `%`_char(59)] -[visit_exp (59)] -[visit_exp 59] -[visit_exp (c =/= `%`_char(41))] -[visit_exp c] -[visit_id c] not free -[visit_exp `%`_char(41)] -[visit_exp (41)] -[visit_exp 41] -[check_dims] c -dims \ = , c -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp c] -[visit_id c] -[visit_exp ((c =/= `%`_char(59)) /\ (c =/= `%`_char(40)))] -[visit_exp (c =/= `%`_char(59))] -[visit_exp c] -[visit_id c] not free -[visit_exp `%`_char(59)] -[visit_exp (59)] -[visit_exp 59] -[visit_exp (c =/= `%`_char(40))] -[visit_exp c] -[visit_id c] not free -[visit_exp `%`_char(40)] -[visit_exp (40)] -[visit_exp 40] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp [``]] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp + (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[check_dims] -dims \ = -[visit_exp + (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[check_dims] -dims \ = -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -ps' = -[check_dims] -[check_dims] -[visit_exp 0] -[visit_exp 9] -ps' = -[check_dims] -[check_dims] d -dims \ = d -[visit_exp d] -[visit_id d] -[visit_exp d] -[visit_id d] not free -[check_dims] -[visit_exp 10] -[visit_exp 15] -[check_dims] -[visit_exp 10] -[visit_exp 15] -ps' = -[check_dims] -[check_dims] d -dims \ = d -[visit_exp d] -[visit_id d] -[visit_exp d] -[visit_id d] not free -[check_dims] d n -dims \ = d, n -[visit_exp ((10 * n) + d)] -[visit_exp (10 * n)] -[visit_exp 10] -[visit_exp n] -[visit_id n] -[visit_exp d] -[visit_id d] -[visit_exp n] -[visit_id n] not free -[visit_exp d] -[visit_id d] not free -ps' = -[check_dims] -[check_dims] h -dims \ = h -[visit_exp h] -[visit_id h] -[visit_exp h] -[visit_id h] not free -[check_dims] h n -dims \ = h, n -[visit_exp ((16 * n) + h)] -[visit_exp (16 * n)] -[visit_exp 16] -[visit_exp n] -[visit_id n] -[visit_exp h] -[visit_id h] -[visit_exp n] -[visit_id n] not free -[visit_exp h] -[visit_id h] not free -ps' = (N : N) -[check_dims] N -[check_dims] N n -dims \ N = n -[visit_exp `%`_uN(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp n] -[visit_id n] not free -[visit_exp (n < (2 ^ N))] -[visit_exp n] -[visit_id n] not free -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[check_dims] N n -dims \ N = n -[visit_exp `%`_uN(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp n] -[visit_id n] not free -[visit_exp (n < (2 ^ N))] -[visit_exp n] -[visit_id n] not free -[visit_exp (2 ^ N)] -[visit_exp 2] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -ps' = (N : N) -[check_dims] N -[check_dims] N n s -dims \ N = n, s -[visit_exp `%`_sN((s * (n : nat <:> int)))] -[visit_exp ((s * (n : nat <:> int)))] -[visit_exp (s * (n : nat <:> int))] -[visit_exp s] -[visit_id s] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] -[visit_exp s] -[visit_id s] not free -[visit_exp `%`_uN(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp ((- ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) <= (s * (n : nat <:> int))) /\ ((s * (n : nat <:> int)) < ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)))] -[visit_exp (- ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) <= (s * (n : nat <:> int)))] -[visit_exp - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp (s * (n : nat <:> int))] -[visit_exp s] -[visit_id s] not free -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp ((s * (n : nat <:> int)) < ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int))] -[visit_exp (s * (n : nat <:> int))] -[visit_exp s] -[visit_id s] not free -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)] -[visit_exp (2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)] -[visit_exp ((N : nat <:> int) - (1 : nat <:> int))] -[visit_exp (N : nat <:> int)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -ps' = (N : N) -[check_dims] N -[check_dims] N n -dims \ N = n -[visit_exp `%`_iN(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `%`_uN(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[check_dims] N i -dims \ N = i -[visit_exp `%`_iN($inv_signed_(N, i!`%`_sN.0))] -[visit_exp ($inv_signed_(N, i!`%`_sN.0))] -[visit_exp $inv_signed_(N, i!`%`_sN.0)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp i!`%`_sN.0] -[visit_exp i!`%`_sN] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -ps' = -[check_dims] -[check_dims] d -dims \ = d -[visit_exp ((d : nat <:> rat) / (10 : nat <:> rat))] -[visit_exp (d : nat <:> rat)] -[visit_exp d] -[visit_id d] -[visit_exp (10 : nat <:> rat)] -[visit_exp 10] -[visit_exp d] -[visit_id d] not free -[check_dims] d p -dims \ = d, p -[visit_exp (((d + ((p / (10 : nat <:> rat)) : rat <:> nat)) : nat <:> rat) / (10 : nat <:> rat))] -[visit_exp ((d + ((p / (10 : nat <:> rat)) : rat <:> nat)) : nat <:> rat)] -[visit_exp (d + ((p / (10 : nat <:> rat)) : rat <:> nat))] -[visit_exp d] -[visit_id d] -[visit_exp ((p / (10 : nat <:> rat)) : rat <:> nat)] -[visit_exp (p / (10 : nat <:> rat))] -[visit_exp p] -[visit_id p] -[visit_exp (10 : nat <:> rat)] -[visit_exp 10] -[visit_exp (10 : nat <:> rat)] -[visit_exp 10] -[visit_exp d] -[visit_id d] not free -[visit_exp p] -[visit_id p] not free -ps' = -[check_dims] -[check_dims] h -dims \ = h -[visit_exp ((h : nat <:> rat) / (16 : nat <:> rat))] -[visit_exp (h : nat <:> rat)] -[visit_exp h] -[visit_id h] -[visit_exp (16 : nat <:> rat)] -[visit_exp 16] -[visit_exp h] -[visit_id h] not free -[check_dims] h p -dims \ = h, p -[visit_exp (((h + ((p / (16 : nat <:> rat)) : rat <:> nat)) : nat <:> rat) / (16 : nat <:> rat))] -[visit_exp ((h + ((p / (16 : nat <:> rat)) : rat <:> nat)) : nat <:> rat)] -[visit_exp (h + ((p / (16 : nat <:> rat)) : rat <:> nat))] -[visit_exp h] -[visit_id h] -[visit_exp ((p / (16 : nat <:> rat)) : rat <:> nat)] -[visit_exp (p / (16 : nat <:> rat))] -[visit_exp p] -[visit_id p] -[visit_exp (16 : nat <:> rat)] -[visit_exp 16] -[visit_exp (16 : nat <:> rat)] -[visit_exp 16] -[visit_exp h] -[visit_id h] not free -[visit_exp p] -[visit_id p] not free -ps' = -[check_dims] -[check_dims] p -dims \ = p -[visit_exp (p : nat <:> rat)] -[visit_exp p] -[visit_id p] -[visit_exp p] -[visit_id p] not free -[check_dims] p q -dims \ = p, q -[visit_exp ((p + (q : rat <:> nat)) : nat <:> rat)] -[visit_exp (p + (q : rat <:> nat))] -[visit_exp p] -[visit_id p] -[visit_exp (q : rat <:> nat)] -[visit_exp q] -[visit_id q] -[visit_exp p] -[visit_id p] not free -[visit_exp q] -[visit_id q] not free -ps' = -[check_dims] -[check_dims] p -dims \ = p -[visit_exp (p : nat <:> rat)] -[visit_exp p] -[visit_id p] -[visit_exp p] -[visit_id p] not free -[check_dims] p q -dims \ = p, q -[visit_exp ((p + (q : rat <:> nat)) : nat <:> rat)] -[visit_exp (p + (q : rat <:> nat))] -[visit_exp p] -[visit_id p] -[visit_exp (q : rat <:> nat)] -[visit_exp q] -[visit_id q] -[visit_exp p] -[visit_id p] not free -[visit_exp q] -[visit_id q] not free -[check_dims] N rat -DecD ieee_(N : N, rat : rat) : fNmag(N) -[visit_id N] not free -[visit_id rat] not free -[visit_exp N] -[visit_id N] not free -[check_dims] -ps' = -[check_dims] -[check_dims] ee p s -dims \ = ee, p, s -[visit_exp (p * ((10 ^ ((s * (ee : nat <:> int)) : int <:> nat)) : nat <:> rat))] -[visit_exp p] -[visit_id p] -[visit_exp ((10 ^ ((s * (ee : nat <:> int)) : int <:> nat)) : nat <:> rat)] -[visit_exp (10 ^ ((s * (ee : nat <:> int)) : int <:> nat))] -[visit_exp 10] -[visit_exp ((s * (ee : nat <:> int)) : int <:> nat)] -[visit_exp (s * (ee : nat <:> int))] -[visit_exp s] -[visit_id s] -[visit_exp (ee : nat <:> int)] -[visit_exp ee] -[visit_id ee] -[visit_exp p] -[visit_id p] not free -[visit_exp s] -[visit_id s] not free -[visit_exp ee] -[visit_id ee] not free -ps' = -[check_dims] -[check_dims] ee p s -dims \ = ee, p, s -[visit_exp (p * ((2 ^ ((s * (ee : nat <:> int)) : int <:> nat)) : nat <:> rat))] -[visit_exp p] -[visit_id p] -[visit_exp ((2 ^ ((s * (ee : nat <:> int)) : int <:> nat)) : nat <:> rat)] -[visit_exp (2 ^ ((s * (ee : nat <:> int)) : int <:> nat))] -[visit_exp 2] -[visit_exp ((s * (ee : nat <:> int)) : int <:> nat)] -[visit_exp (s * (ee : nat <:> int))] -[visit_exp s] -[visit_id s] -[visit_exp (ee : nat <:> int)] -[visit_exp ee] -[visit_id ee] -[visit_exp p] -[visit_id p] not free -[visit_exp s] -[visit_id s] not free -[visit_exp ee] -[visit_id ee] not free -ps' = (N : N) -[check_dims] N -[check_dims] N q -dims \ N = q -[visit_exp $ieee_(N, q)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp q] -[visit_id q] -[visit_exp q] -[visit_id q] not free -[visit_exp ($ieee_(N, q) =/= `INF`_fNmag)] -[visit_exp $ieee_(N, q)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp q] -[visit_id q] not free -[visit_exp `INF`_fNmag] -[visit_exp ()] -[check_dims] N q -dims \ N = q -[visit_exp $ieee_(N, q)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp q] -[visit_id q] -[visit_exp q] -[visit_id q] not free -[visit_exp ($ieee_(N, q) =/= `INF`_fNmag)] -[visit_exp $ieee_(N, q)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_exp q] -[visit_id q] not free -[visit_exp `INF`_fNmag] -[visit_exp ()] -[check_dims] N -dims \ N = -[visit_exp `INF`_fNmag] -[visit_exp ()] -[check_dims] N -dims \ N = -[visit_exp `NAN`_fNmag($canon_(N))] -[visit_exp ($canon_(N))] -[visit_exp $canon_(N)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[check_dims] N n -dims \ N = n -[visit_exp `NAN`_fNmag(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp n] -[visit_id n] not free -[visit_exp ((1 <= n) /\ (n < (2 ^ $signif(N))))] -[visit_exp (1 <= n)] -[visit_exp 1] -[visit_exp n] -[visit_id n] not free -[visit_exp (n < (2 ^ $signif(N)))] -[visit_exp n] -[visit_id n] not free -[visit_exp (2 ^ $signif(N))] -[visit_exp 2] -[visit_exp $signif(N)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -ps' = (N : N) -[check_dims] N -[check_dims] N q -dims \ N = q -[visit_exp `POS`_fN(q)] -[visit_exp (q)] -[visit_exp q] -[visit_id q] -[visit_exp + (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp q] -[visit_id q] not free -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[check_dims] N q -dims \ N = q -[visit_exp `NEG`_fN(q)] -[visit_exp (q)] -[visit_exp q] -[visit_id q] -[visit_exp - (1 : nat <:> int)] -[visit_exp (1 : nat <:> int)] -[visit_exp 1] -[visit_exp q] -[visit_id q] not free -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_id N] not free -[visit_exp N] -[visit_id N] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 8] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 32] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 64] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 8] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 16] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 32] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 64] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 32] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp 64] -ps' = -[check_dims] -[check_dims] c -dims \ = c -[visit_exp c] -[visit_id c] -[visit_exp c] -[visit_id c] not free -[visit_exp ((((c!`%`_char.0 >= 32) /\ (c!`%`_char.0 =/= 127)) /\ (c =/= `%`_char(34))) /\ (c =/= `%`_char(92)))] -[visit_exp (((c!`%`_char.0 >= 32) /\ (c!`%`_char.0 =/= 127)) /\ (c =/= `%`_char(34)))] -[visit_exp ((c!`%`_char.0 >= 32) /\ (c!`%`_char.0 =/= 127))] -[visit_exp (c!`%`_char.0 >= 32)] -[visit_exp c!`%`_char.0] -[visit_exp c!`%`_char] -[visit_exp c] -[visit_id c] not free -[visit_exp 32] -[visit_exp (c!`%`_char.0 =/= 127)] -[visit_exp c!`%`_char.0] -[visit_exp c!`%`_char] -[visit_exp c] -[visit_id c] not free -[visit_exp 127] -[visit_exp (c =/= `%`_char(34))] -[visit_exp c] -[visit_id c] not free -[visit_exp `%`_char(34)] -[visit_exp (34)] -[visit_exp 34] -[visit_exp (c =/= `%`_char(92))] -[visit_exp c] -[visit_id c] not free -[visit_exp `%`_char(92)] -[visit_exp (92)] -[visit_exp 92] -[check_dims] -dims \ = -[visit_exp `%`_char(9)] -[visit_exp (9)] -[visit_exp 9] -[check_dims] -dims \ = -[visit_exp `%`_char(10)] -[visit_exp (10)] -[visit_exp 10] -[check_dims] -dims \ = -[visit_exp `%`_char(13)] -[visit_exp (13)] -[visit_exp 13] -[check_dims] -dims \ = -[visit_exp `%`_char(34)] -[visit_exp (34)] -[visit_exp 34] -[check_dims] -dims \ = -[visit_exp `%`_char(39)] -[visit_exp (39)] -[visit_exp 39] -[check_dims] -dims \ = -[visit_exp `%`_char(92)] -[visit_exp (92)] -[visit_exp 92] -[check_dims] n -dims \ = n -[visit_exp `%`_char(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp n] -[visit_id n] not free -[visit_exp ((n < 55296) \/ ((59392 <= n) /\ (n < 1114112)))] -[visit_exp (n < 55296)] -[visit_exp n] -[visit_id n] not free -[visit_exp 55296] -[visit_exp ((59392 <= n) /\ (n < 1114112))] -[visit_exp (59392 <= n)] -[visit_exp 59392] -[visit_exp n] -[visit_id n] not free -[visit_exp (n < 1114112)] -[visit_exp n] -[visit_id n] not free -[visit_exp 1114112] -ps' = -[check_dims] -[check_dims] c -dims \ = c -[visit_exp $utf8([c])] -[visit_exp [c]] -[visit_exp c] -[visit_id c] -[visit_exp c] -[visit_id c] not free -[check_dims] h_1 h_2 -dims \ = h_1, h_2 -[visit_exp [`%`_byte(((16 * h_1) + h_2))]] -[visit_exp `%`_byte(((16 * h_1) + h_2))] -[visit_exp (((16 * h_1) + h_2))] -[visit_exp ((16 * h_1) + h_2)] -[visit_exp (16 * h_1)] -[visit_exp 16] -[visit_exp h_1] -[visit_id h_1] -[visit_exp h_2] -[visit_id h_2] -[visit_exp h_1] -[visit_id h_1] not free -[visit_exp h_2] -[visit_id h_2] not free -ps' = -[check_dims] -[check_dims] b -dims \ = b -[visit_exp $concat_(syntax byte, b*{b <- `b*`}*{`b*` <- `b**`})] -[visit_exp b*{b <- `b*`}*{`b*` <- `b**`}] -[scope_enter b*] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_id b*] not free -[visit_id b*] no dims -[scope_exit b*] -[visit_exp `b**`] -[visit_id b**] no dims -[visit_id b**] -[scope_enter b*] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_id b*] not free -[visit_id b*] no dims -[scope_exit b*] -[visit_exp `b**`] -[visit_id b**] not free -[visit_id b**] no dims -[visit_exp (|$concat_(syntax byte, b*{b <- `b*`}*{`b*` <- `b**`})| < (2 ^ 32))] -[visit_exp |$concat_(syntax byte, b*{b <- `b*`}*{`b*` <- `b**`})|] -[visit_exp $concat_(syntax byte, b*{b <- `b*`}*{`b*` <- `b**`})] -[visit_exp b*{b <- `b*`}*{`b*` <- `b**`}] -[scope_enter b*] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_id b*] not free -[visit_id b*] no dims -[scope_exit b*] -[visit_exp `b**`] -[visit_id b**] not free -[visit_id b**] no dims -[visit_exp (2 ^ 32)] -[visit_exp 2] -[visit_exp 32] -ps' = (syntax el, grammar TX : el) -[check_dims] el -[check_dims] el -dims \ = el -[visit_exp el*{el <- `el*`}] -[scope_enter el] -[visit_exp el] -[visit_id el] not free -[visit_id el] not free -[scope_exit el] -[visit_exp `el*`] -[visit_id el*] no dims -[visit_id el*] -[scope_enter el] -[visit_exp el] -[visit_id el] not free -[visit_id el] not free -[scope_exit el] -[visit_exp `el*`] -[visit_id el*] not free -[visit_id el*] no dims -[visit_exp (|el*{el <- `el*`}| < (2 ^ 32))] -[visit_exp |el*{el <- `el*`}|] -[visit_exp el*{el <- `el*`}] -[scope_enter el] -[visit_exp el] -[visit_id el] not free -[visit_id el] not free -[scope_exit el] -[visit_exp `el*`] -[visit_id el*] not free -[visit_id el*] no dims -[visit_exp (2 ^ 32)] -[visit_exp 2] -[visit_exp 32] -ps' = -[check_dims] -[check_dims] b c -dims \ = b, c -[visit_exp `%`_name(c*{c <- `c*`})] -[visit_exp (c*{c <- `c*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp (b*{b <- `b*`} = $utf8(c*{c <- `c*`}))] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_exp $utf8(c*{c <- `c*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[check_dims] -dims \ = -[visit_exp `%`_char(``)] -[visit_exp (``)] -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] c -dims \ = c -[visit_exp `%`_name(c*{c <- `c*`})] -[visit_exp (c*{c <- `c*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[check_dims] c -dims \ = c -[visit_exp `%`_name(c*{c <- `c*`})] -[visit_exp (c*{c <- `c*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp `%`_name(c*{c <- `c*`})] -[visit_exp (c*{c <- `c*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp (|c*{c <- `c*`}| > 0)] -[visit_exp |c*{c <- `c*`}|] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp 0] -[check_dims] -[check_dims] -[scope_enter name?*] -[visit_id name?*] not free -[visit_id name?*] no dims -[scope_exit name?*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter name?*] -[visit_id name?*] not free -[visit_id name?*] no dims -[scope_exit name?*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter name?*] -[visit_id name?*] not free -[visit_id name?*] no dims -[scope_exit name?*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter name?*] -[visit_id name?*] not free -[visit_id name?*] no dims -[scope_exit name?*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter name?*] -[visit_id name?*] not free -[visit_id name?*] no dims -[scope_exit name?*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter name?*] -[visit_id name?*] not free -[visit_id name?*] no dims -[scope_exit name?*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter name?*] -[visit_id name?*] not free -[visit_id name?*] no dims -[scope_exit name?*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter name?*] -[visit_id name?*] not free -[visit_id name?*] no dims -[scope_exit name?*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter name?*] -[visit_id name?*] not free -[visit_id name?*] no dims -[scope_exit name?*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter name?*] -[visit_id name?*] not free -[visit_id name?*] no dims -[scope_exit name?*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter name?**] -[visit_id name?**] not free -[visit_id name?**] no dims -[scope_exit name?**] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter deftype?*] -[visit_id deftype?*] not free -[visit_id deftype?*] no dims -[scope_exit deftype?*] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] _ -DecD concat_idctxt(idctxt*) : idctxt -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - def $concat_idctxt([]) = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []} -[check_dims] I I' -[visit_exp [I] ++ I'*{I' <- `I'*`}] -[visit_exp [I]] -[visit_exp I] -[visit_id I] -[visit_exp I'*{I' <- `I'*`}] -[scope_enter I'] -[visit_exp I'] -[visit_id I'] not free -[visit_id I'] not free -[scope_exit I'] -[visit_exp `I'*`] -[visit_id I'*] no dims -[visit_id I'*] -[visit_exp I +++ $concat_idctxt(I'*{I' <- `I'*`})] -[visit_exp I] -[visit_id I] not free -[visit_exp $concat_idctxt(I'*{I' <- `I'*`})] -[visit_exp I'*{I' <- `I'*`}] -[scope_enter I'] -[visit_exp I'] -[visit_id I'] not free -[visit_id I'] not free -[scope_exit I'] -[visit_exp `I'*`] -[visit_id I'*] not free -[visit_id I'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - def $concat_idctxt{I : I, `I'*` : I*}([I] ++ I'*{I' <- `I'*`}) = I +++ $concat_idctxt(I'*{I' <- `I'*`}) -[check_dims] -[check_dims] I field -[visit_exp I] -[visit_id I] -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`TYPES`_I))] -[visit_exp $concatopt_(syntax name, I.`TYPES`_I)] -[visit_exp I.`TYPES`_I] -[visit_exp I] -[visit_id I] not free -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`TAGS`_I))] -[visit_exp $concatopt_(syntax name, I.`TAGS`_I)] -[visit_exp I.`TAGS`_I] -[visit_exp I] -[visit_id I] not free -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`GLOBALS`_I))] -[visit_exp $concatopt_(syntax name, I.`GLOBALS`_I)] -[visit_exp I.`GLOBALS`_I] -[visit_exp I] -[visit_id I] not free -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`MEMS`_I))] -[visit_exp $concatopt_(syntax name, I.`MEMS`_I)] -[visit_exp I.`MEMS`_I] -[visit_exp I] -[visit_id I] not free -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`TABLES`_I))] -[visit_exp $concatopt_(syntax name, I.`TABLES`_I)] -[visit_exp I.`TABLES`_I] -[visit_exp I] -[visit_id I] not free -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`FUNCS`_I))] -[visit_exp $concatopt_(syntax name, I.`FUNCS`_I)] -[visit_exp I.`FUNCS`_I] -[visit_exp I] -[visit_id I] not free -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`DATAS`_I))] -[visit_exp $concatopt_(syntax name, I.`DATAS`_I)] -[visit_exp I.`DATAS`_I] -[visit_exp I] -[visit_id I] not free -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`ELEMS`_I))] -[visit_exp $concatopt_(syntax name, I.`ELEMS`_I)] -[visit_exp I.`ELEMS`_I] -[visit_exp I] -[visit_id I] not free -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`LOCALS`_I))] -[visit_exp $concatopt_(syntax name, I.`LOCALS`_I)] -[visit_exp I.`LOCALS`_I] -[visit_exp I] -[visit_id I] not free -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, I.`LABELS`_I))] -[visit_exp $concatopt_(syntax name, I.`LABELS`_I)] -[visit_exp I.`LABELS`_I] -[visit_exp I] -[visit_id I] not free -[scope_enter field*] -[visit_exp $disjoint_(syntax name, $concatopt_(syntax name, [?(`%`_name(field*{field <- `field*`}))]))] -[visit_exp $concatopt_(syntax name, [?(`%`_name(field*{field <- `field*`}))])] -[visit_exp [?(`%`_name(field*{field <- `field*`}))]] -[visit_exp ?(`%`_name(field*{field <- `field*`}))] -[visit_exp `%`_name(field*{field <- `field*`})] -[visit_exp (field*{field <- `field*`})] -[visit_exp field*{field <- `field*`}] -[scope_enter field] -[visit_exp field] -[visit_id field] not free -[visit_id field] not free -[scope_exit field] -[visit_exp `field*`] -[visit_id field*] not free -[visit_id field*] no dims -[visit_id field*] not free -[visit_id field*] no dims -[scope_exit field*] -[visit_exp `field**`] -[visit_id field**] no dims -[visit_id field**] -[visit_exp ([?(`%`_name(field*{field <- `field*`}))*{`field*` <- `field**`}] = I.`FIELDS`_I)] -[visit_exp [?(`%`_name(field*{field <- `field*`}))*{`field*` <- `field**`}]] -[visit_exp ?(`%`_name(field*{field <- `field*`}))*{`field*` <- `field**`}] -[scope_enter field*] -[visit_exp ?(`%`_name(field*{field <- `field*`}))] -[visit_exp `%`_name(field*{field <- `field*`})] -[visit_exp (field*{field <- `field*`})] -[visit_exp field*{field <- `field*`}] -[scope_enter field] -[visit_exp field] -[visit_id field] not free -[visit_id field] not free -[scope_exit field] -[visit_exp `field*`] -[visit_id field*] not free -[visit_id field*] no dims -[visit_id field*] not free -[visit_id field*] no dims -[scope_exit field*] -[visit_exp `field**`] -[visit_id field**] not free -[visit_id field**] no dims -[visit_exp I.`FIELDS`_I] -[visit_exp I] -[visit_id I] not free -ps' = (ids : name?*) -[check_dims] ids -[check_dims] ids x -dims \ ids = x -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[check_dims] id ids x -dims \ ids = id, x -[visit_exp x] -[visit_id x] -[visit_exp id] -[visit_id id] -[visit_exp (ids[x!`%`_idx.0] = ?(id))] -[visit_exp ids[x!`%`_idx.0]] -[visit_exp ids] -[visit_id ids] not free -[visit_id ids] no dims -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp ?(id)] -[visit_exp id] -[visit_id id] not free -[visit_id ids] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp I.`TYPES`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp I.`TAGS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp I.`GLOBALS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp I.`MEMS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp I.`TABLES`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp I.`FUNCS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp I.`DATAS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp I.`ELEMS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp I.`LOCALS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp I.`LABELS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I, x : idx) -[check_dims] I x -[check_dims] I x -dims \ I x = -[visit_exp ``] -[visit_id ] -[visit_exp ``] -[visit_id ] not free -[visit_exp I.`FIELDS`_I[x!`%`_idx.0]] -[visit_exp I.`FIELDS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_id x] no dims -[visit_id I] not free -[visit_id x] not free -ps' = (I : I) -[check_dims] I -[check_dims] I x -dims \ I = x -[visit_exp `TAG`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `GLOBAL`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `MEM`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `TABLE`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `FUNC`_externidx(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `I32`_numtype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `I64`_numtype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `F32`_numtype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `F64`_numtype] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `V128`_vectype] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `ANY`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `EQ`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `I31`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `STRUCT`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `ARRAY`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `NONE`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `FUNC`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `NOFUNC`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `EXN`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `NOEXN`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `EXTERN`_heaptype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `NOEXTERN`_heaptype] -[visit_exp ()] -ps' = (I : I) -[check_dims] I -[check_dims] I ht -dims \ I = ht -[visit_exp ht] -[visit_id ht] -[visit_exp ht] -[visit_id ht] not free -[check_dims] I x -dims \ I = x -[visit_exp `_IDX`_heaptype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `NULL`_null] -[visit_exp ()] -ps' = (I : I) -[check_dims] I -[check_dims] I ht null -dims \ I = ht, null -[visit_exp `REF`_reftype(null?{null <- `null?`}, ht)] -[visit_exp (null?{null <- `null?`}, ht)] -[visit_exp null?{null <- `null?`}] -[scope_enter null] -[visit_exp null] -[visit_id null] not free -[visit_id null] not free -[scope_exit null] -[visit_exp `null?`] -[visit_id null?] no dims -[visit_id null?] -[visit_exp ht] -[visit_id ht] -[visit_exp null?{null <- `null?`}] -[scope_enter null] -[visit_exp null] -[visit_id null] not free -[visit_id null] not free -[scope_exit null] -[visit_exp `null?`] -[visit_id null?] not free -[visit_id null?] no dims -[visit_exp ht] -[visit_id ht] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I nt -dims \ I = nt -[visit_exp (nt : numtype <: valtype)] -[visit_exp nt] -[visit_id nt] -[visit_exp nt] -[visit_id nt] not free -[check_dims] I vt -dims \ I = vt -[visit_exp (vt : vectype <: valtype)] -[visit_exp vt] -[visit_id vt] -[visit_exp vt] -[visit_id vt] not free -[check_dims] I rt -dims \ I = rt -[visit_exp (rt : reftype <: valtype)] -[visit_exp rt] -[visit_id rt] -[visit_exp rt] -[visit_id rt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `I8`_packtype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `I16`_packtype] -[visit_exp ()] -ps' = (I : I) -[check_dims] I -[check_dims] I t -dims \ I = t -[visit_exp (t : valtype <: storagetype)] -[visit_exp t] -[visit_id t] -[visit_exp t] -[visit_id t] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I pt -dims \ I = pt -[visit_exp (pt : packtype <: storagetype)] -[visit_exp pt] -[visit_id pt] -[visit_exp pt] -[visit_id pt] not free -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I zt -dims \ I = zt -[visit_exp `%%`_fieldtype(?(), zt)] -[visit_exp (?(), zt)] -[visit_exp ?()] -[visit_exp zt] -[visit_id zt] -[visit_exp zt] -[visit_id zt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I zt -dims \ I = zt -[visit_exp `%%`_fieldtype(?(`MUT`_mut), zt)] -[visit_exp (?(`MUT`_mut), zt)] -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp zt] -[visit_id zt] -[visit_exp zt] -[visit_id zt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I _ -[check_dims] I ft id -dims \ I = ft, id -[visit_exp (ft, ?(`%`_name(lift(id?{id <- `id?`}))))] -[visit_exp ft] -[visit_id ft] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp ft] -[visit_id ft] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = (I : I) -[check_dims] I _ -[check_dims] I -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = (I : I) -[check_dims] I _ -[check_dims] I id t -dims \ I = id, t -[visit_exp (t, ?(`%`_name(lift(id?{id <- `id?`}))))] -[visit_exp t] -[visit_id t] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp t] -[visit_id t] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = (I : I) -[check_dims] I _ -[check_dims] I -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = (I : I) -[check_dims] I -[check_dims] I t -dims \ I = t -[visit_exp t] -[visit_id t] -[visit_exp t] -[visit_id t] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I _ -[check_dims] I _ ft id -dims \ I = _, ft, id -[visit_exp (`STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}], `TYPEDEFS` []})] -[visit_exp `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))] -[visit_exp (`%`_list(ft*{ft <- `ft*`}))] -[visit_exp `%`_list(ft*{ft <- `ft*`})] -[visit_exp (ft*{ft <- `ft*`})] -[visit_exp ft*{ft <- `ft*`}] -[scope_enter ft] -[visit_exp ft] -[visit_id ft] not free -[visit_id ft] not free -[scope_exit ft] -[visit_exp `ft*`] -[visit_id ft*] no dims -[visit_id ft*] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}]] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}] -[scope_enter id?] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_id id?] not free -[visit_id id?] no dims -[scope_exit id?] -[visit_exp `id?*`] -[visit_id id?*] no dims -[visit_id id?*] -[visit_exp []] -[visit_exp (ft, ?(`%`_name(lift(id?{id <- `id?`}))))*{ft <- `ft*`, `id?` <- `id?*`}] -[scope_enter ft] -[scope_enter id?] -[visit_exp (ft, ?(`%`_name(lift(id?{id <- `id?`}))))] -[visit_exp ft] -[visit_id ft] not free -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_id ft] not free -[visit_id id?] not free -[visit_id id?] no dims -[scope_exit id?] -[scope_exit ft] -[visit_exp `ft*`] -[visit_id ft*] not free -[visit_id ft*] no dims -[visit_exp `id?*`] -[visit_id id?*] not free -[visit_id id?*] no dims -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I ft -dims \ I = ft -[visit_exp (`ARRAY`_comptype(ft), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] -[visit_exp `ARRAY`_comptype(ft)] -[visit_exp (ft)] -[visit_exp ft] -[visit_id ft] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ft] -[visit_id ft] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I _ id t_1 t_2 -dims \ I = _, id, t_1, t_2 -[visit_exp (`FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp (t_1, ?(`%`_name(lift(id?{id <- `id?`}))))*{`id?` <- `id?*`, t_1 <- `t_1*`}] -[scope_enter id?] -[scope_enter t_1] -[visit_exp (t_1, ?(`%`_name(lift(id?{id <- `id?`}))))] -[visit_exp t_1] -[visit_id t_1] not free -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_id id?] not free -[visit_id id?] no dims -[visit_id t_1] not free -[scope_exit t_1] -[scope_exit id?] -[visit_exp `id?*`] -[visit_id id?*] no dims -[visit_id id?*] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `FINAL`_final] -[visit_exp ()] -ps' = (I : I) -[check_dims] I _ -[check_dims] I I' ct fin x -dims \ I = I', ct, fin, x -[visit_exp (`SUB`_subtype(fin?{fin <- `fin?`}, `_IDX`_typeuse(x)*{x <- `x*`}, ct), I')] -[visit_exp `SUB`_subtype(fin?{fin <- `fin?`}, `_IDX`_typeuse(x)*{x <- `x*`}, ct)] -[visit_exp (fin?{fin <- `fin?`}, `_IDX`_typeuse(x)*{x <- `x*`}, ct)] -[visit_exp fin?{fin <- `fin?`}] -[scope_enter fin] -[visit_exp fin] -[visit_id fin] not free -[visit_id fin] not free -[scope_exit fin] -[visit_exp `fin?`] -[visit_id fin?] no dims -[visit_id fin?] -[visit_exp `_IDX`_typeuse(x)*{x <- `x*`}] -[scope_enter x] -[visit_exp `_IDX`_typeuse(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] no dims -[visit_id x*] -[visit_exp ct] -[visit_id ct] -[visit_exp I'] -[visit_id I'] -[visit_exp fin?{fin <- `fin?`}] -[scope_enter fin] -[visit_exp fin] -[visit_id fin] not free -[visit_id fin] not free -[scope_exit fin] -[visit_exp `fin?`] -[visit_id fin?] not free -[visit_id fin?] no dims -[visit_exp x*{x <- `x*`}] -[scope_enter x] -[visit_exp x] -[visit_id x] not free -[visit_id x] not free -[scope_exit x] -[visit_exp `x*`] -[visit_id x*] not free -[visit_id x*] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp (ct, I')] -[visit_exp ct] -[visit_id ct] not free -[visit_exp I'] -[visit_id I'] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = (I : I) -[check_dims] I _ -[check_dims] I -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = (I : I) -[check_dims] I _ -[check_dims] I I' id st -dims \ I = I', id, st -[visit_exp (st, I' +++ {`TYPES` [?(`%`_name(lift(id?{id <- `id?`})))], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] -[visit_exp st] -[visit_id st] -[visit_exp I' +++ {`TYPES` [?(`%`_name(lift(id?{id <- `id?`})))], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp I'] -[visit_id I'] -[visit_exp {`TYPES` [?(`%`_name(lift(id?{id <- `id?`})))], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))]] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp (st, I')] -[visit_exp st] -[visit_id st] not free -[visit_exp I'] -[visit_id I'] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = (I : I) -[check_dims] I _ -[check_dims] I I' _ st -dims \ I = I', _, st -[visit_exp (`REC`_rectype(`%`_list(st*{st <- `st*`})), $concat_idctxt(I'*{I' <- `I'*`}))] -[visit_exp `REC`_rectype(`%`_list(st*{st <- `st*`}))] -[visit_exp (`%`_list(st*{st <- `st*`}))] -[visit_exp `%`_list(st*{st <- `st*`})] -[visit_exp (st*{st <- `st*`})] -[visit_exp st*{st <- `st*`}] -[scope_enter st] -[visit_exp st] -[visit_id st] not free -[visit_id st] not free -[scope_exit st] -[visit_exp `st*`] -[visit_id st*] no dims -[visit_id st*] -[visit_exp $concat_idctxt(I'*{I' <- `I'*`})] -[visit_exp I'*{I' <- `I'*`}] -[scope_enter I'] -[visit_exp I'] -[visit_id I'] not free -[visit_id I'] not free -[scope_exit I'] -[visit_exp `I'*`] -[visit_id I'*] no dims -[visit_id I'*] -[visit_exp (st, I')*{I' <- `I'*`, st <- `st*`}] -[scope_enter I'] -[scope_enter st] -[visit_exp (st, I')] -[visit_exp st] -[visit_id st] not free -[visit_exp I'] -[visit_id I'] not free -[visit_id I'] not free -[visit_id st] not free -[scope_exit st] -[scope_exit I'] -[visit_exp `I'*`] -[visit_id I'*] not free -[visit_id I'*] no dims -[visit_exp `st*`] -[visit_id st*] not free -[visit_id st*] no dims -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = (I : I) -[check_dims] I _ -[check_dims] I -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp `I32`_addrtype] -[visit_exp ()] -[check_dims] -dims \ = -[visit_exp `I64`_addrtype] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -ps' = -[check_dims] -[check_dims] n -dims \ = n -[visit_exp `[%..%]`_limits(`%`_u64(n), ?())] -[visit_exp (`%`_u64(n), ?())] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp ?()] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[check_dims] m n -dims \ = m, n -[visit_exp `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))] -[visit_exp (`%`_u64(n), ?(`%`_u64(m)))] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp ?(`%`_u64(m))] -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] not free -ps' = (I : I) -[check_dims] I -[check_dims] I I' x -dims \ I = I', x -[visit_exp `_IDX`_tagtype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp (x, I')] -[visit_exp x] -[visit_id x] not free -[visit_exp I'] -[visit_id I'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I t -dims \ I = t -[visit_exp `%%`_globaltype(?(), t)] -[visit_exp (?(), t)] -[visit_exp ?()] -[visit_exp t] -[visit_id t] -[visit_exp t] -[visit_id t] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I t -dims \ I = t -[visit_exp `%%`_globaltype(?(`MUT`_mut), t)] -[visit_exp (?(`MUT`_mut), t)] -[visit_exp ?(`MUT`_mut)] -[visit_exp `MUT`_mut] -[visit_exp ()] -[visit_exp t] -[visit_id t] -[visit_exp t] -[visit_id t] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I at lim -dims \ I = at, lim -[visit_exp `%%PAGE`_memtype(at, lim)] -[visit_exp (at, lim)] -[visit_exp at] -[visit_id at] -[visit_exp lim] -[visit_id lim] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] not free -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I at lim rt -dims \ I = at, lim, rt -[visit_exp `%%%`_tabletype(at, lim, rt)] -[visit_exp (at, lim, rt)] -[visit_exp at] -[visit_id at] -[visit_exp lim] -[visit_id lim] -[visit_exp rt] -[visit_id rt] -[visit_exp at] -[visit_id at] not free -[visit_exp lim] -[visit_id lim] not free -[visit_exp rt] -[visit_id rt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I _ -[check_dims] I id jt -dims \ I = id, jt -[visit_exp (`TAG`_externtype(jt), {`TYPES` [], `TAGS` [?(`%`_name(lift(id?{id <- `id?`})))], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] -[visit_exp `TAG`_externtype(jt)] -[visit_exp (jt)] -[visit_exp jt] -[visit_id jt] -[visit_exp {`TYPES` [], `TAGS` [?(`%`_name(lift(id?{id <- `id?`})))], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))]] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp jt] -[visit_id jt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I gt id -dims \ I = gt, id -[visit_exp (`GLOBAL`_externtype(gt), {`TYPES` [], `TAGS` [], `GLOBALS` [?(`%`_name(lift(id?{id <- `id?`})))], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] -[visit_exp `GLOBAL`_externtype(gt)] -[visit_exp (gt)] -[visit_exp gt] -[visit_id gt] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [?(`%`_name(lift(id?{id <- `id?`})))], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))]] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp gt] -[visit_id gt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I id mt -dims \ I = id, mt -[visit_exp (`MEM`_externtype(mt), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] -[visit_exp `MEM`_externtype(mt)] -[visit_exp (mt)] -[visit_exp mt] -[visit_id mt] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))]] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp mt] -[visit_id mt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I id tt -dims \ I = id, tt -[visit_exp (`TABLE`_externtype(tt), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [?(`%`_name(lift(id?{id <- `id?`})))], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] -[visit_exp `TABLE`_externtype(tt)] -[visit_exp (tt)] -[visit_exp tt] -[visit_id tt] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [?(`%`_name(lift(id?{id <- `id?`})))], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))]] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp tt] -[visit_id tt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I I' id x -dims \ I = I', id, x -[visit_exp (`FUNC`_externtype(`_IDX`_typeuse(x)), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [?(`%`_name(lift(id?{id <- `id?`})))], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] -[visit_exp `FUNC`_externtype(`_IDX`_typeuse(x))] -[visit_exp (`_IDX`_typeuse(x))] -[visit_exp `_IDX`_typeuse(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [?(`%`_name(lift(id?{id <- `id?`})))], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [?(`%`_name(lift(id?{id <- `id?`})))]] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp (x, I')] -[visit_exp x] -[visit_id x] not free -[visit_exp I'] -[visit_id I'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = (I : I) -[check_dims] I _ -[check_dims] I I' i st t_1 t_2 x -dims \ I = I', i, st, t_1, t_2, x -[visit_exp (x, I')] -[visit_exp x] -[visit_id x] -[visit_exp I'] -[visit_id I'] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp (I.`TYPEDEFS`_I[x!`%`_idx.0] = ?(`_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i)))] -[visit_exp I.`TYPEDEFS`_I[x!`%`_idx.0]] -[visit_exp I.`TYPEDEFS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp ?(`_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i))] -[visit_exp `_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i)] -[visit_exp (`REC`_rectype(`%`_list(st*{st <- `st*`})), i)] -[visit_exp `REC`_rectype(`%`_list(st*{st <- `st*`}))] -[visit_exp (`%`_list(st*{st <- `st*`}))] -[visit_exp `%`_list(st*{st <- `st*`})] -[visit_exp (st*{st <- `st*`})] -[visit_exp st*{st <- `st*`}] -[scope_enter st] -[visit_exp st] -[visit_id st] not free -[visit_id st] not free -[scope_exit st] -[visit_exp `st*`] -[visit_id st*] no dims -[visit_id st*] -[visit_exp i] -[visit_id i] -[visit_exp (st*{st <- `st*`}[i] = `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))))] -[visit_exp st*{st <- `st*`}[i]] -[visit_exp st*{st <- `st*`}] -[scope_enter st] -[visit_exp st] -[visit_id st] not free -[visit_id st] not free -[scope_exit st] -[visit_exp `st*`] -[visit_id st*] not free -[visit_id st*] no dims -[visit_exp i] -[visit_id i] not free -[visit_exp `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp ?(`FINAL`_final)] -[visit_exp `FINAL`_final] -[visit_exp ()] -[visit_exp []] -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))^|t_1*{t_1 <- `t_1*`}|{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] -[visit_exp I'] -[visit_id I'] not free -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))^|t_1*{t_1 <- `t_1*`}|{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?(`%`_name([]))^|t_1*{t_1 <- `t_1*`}|{}] -[visit_exp ?(`%`_name([]))] -[visit_exp `%`_name([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp |t_1*{t_1 <- `t_1*`}|] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp []] -[visit_exp []] -[visit_exp []] -[check_dims] I I' i id st t_1 t_2 x -dims \ I = I', i, id, st, t_1, t_2, x -[visit_exp (x, I')] -[visit_exp x] -[visit_id x] -[visit_exp I'] -[visit_id I'] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp (t_1, ?(`%`_name(lift(id?{id <- `id?`}))))*{`id?` <- `id?*`, t_1 <- `t_1*`}] -[scope_enter id?] -[scope_enter t_1] -[visit_exp (t_1, ?(`%`_name(lift(id?{id <- `id?`}))))] -[visit_exp t_1] -[visit_id t_1] not free -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_id id?] not free -[visit_id id?] no dims -[visit_id t_1] not free -[scope_exit t_1] -[scope_exit id?] -[visit_exp `id?*`] -[visit_id id?*] no dims -[visit_id id?*] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp (I.`TYPEDEFS`_I[x!`%`_idx.0] = ?(`_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i)))] -[visit_exp I.`TYPEDEFS`_I[x!`%`_idx.0]] -[visit_exp I.`TYPEDEFS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp ?(`_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i))] -[visit_exp `_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i)] -[visit_exp (`REC`_rectype(`%`_list(st*{st <- `st*`})), i)] -[visit_exp `REC`_rectype(`%`_list(st*{st <- `st*`}))] -[visit_exp (`%`_list(st*{st <- `st*`}))] -[visit_exp `%`_list(st*{st <- `st*`})] -[visit_exp (st*{st <- `st*`})] -[visit_exp st*{st <- `st*`}] -[scope_enter st] -[visit_exp st] -[visit_id st] not free -[visit_id st] not free -[scope_exit st] -[visit_exp `st*`] -[visit_id st*] no dims -[visit_id st*] -[visit_exp i] -[visit_id i] -[visit_exp (st*{st <- `st*`}[i] = `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))))] -[visit_exp st*{st <- `st*`}[i]] -[visit_exp st*{st <- `st*`}] -[scope_enter st] -[visit_exp st] -[visit_id st] not free -[visit_id st] not free -[scope_exit st] -[visit_exp `st*`] -[visit_id st*] not free -[visit_id st*] no dims -[visit_exp i] -[visit_id i] not free -[visit_exp `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp ?(`FINAL`_final)] -[visit_exp `FINAL`_final] -[visit_exp ()] -[visit_exp []] -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] -[visit_exp I'] -[visit_id I'] not free -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}] -[scope_enter id?] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_id id?] not free -[visit_id id?] no dims -[scope_exit id?] -[visit_exp `id?*`] -[visit_id id?*] not free -[visit_id id?*] no dims -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp I'] -[visit_id I'] not free -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = (I : I) -[check_dims] I _ -[check_dims] I i id t_1 t_2 x -[visit_exp (t_1, ?(`%`_name(lift(id?{id <- `id?`}))))*{`id?` <- `id?*`, t_1 <- `t_1*`}] -[scope_enter id?] -[scope_enter t_1] -[visit_exp (t_1, ?(`%`_name(lift(id?{id <- `id?`}))))] -[visit_exp t_1] -[visit_id t_1] not free -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_id id?] not free -[visit_id id?] no dims -[visit_id t_1] not free -[scope_exit t_1] -[scope_exit id?] -[visit_exp `id?*`] -[visit_id id?*] no dims -[visit_id id?*] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x] -[visit_id x] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp (I.`TYPEDEFS`_I[x!`%`_idx.0] = ?(`_DEF`_deftype(`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0)))] -[visit_exp I.`TYPEDEFS`_I[x!`%`_idx.0]] -[visit_exp I.`TYPEDEFS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp ?(`_DEF`_deftype(`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0))] -[visit_exp `_DEF`_deftype(`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0)] -[visit_exp (`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0)] -[visit_exp `REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))]))] -[visit_exp (`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))]))] -[visit_exp `%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])] -[visit_exp ([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])] -[visit_exp [`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))]] -[visit_exp `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp ?(`FINAL`_final)] -[visit_exp `FINAL`_final] -[visit_exp ()] -[visit_exp []] -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp 0] -[scope_enter i] -[visit_exp (I.`TYPEDEFS`_I[i] =/= ?(`_DEF`_deftype(`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0)))] -[visit_exp I.`TYPEDEFS`_I[i]] -[visit_exp I.`TYPEDEFS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp i] -[visit_id i] -[visit_exp ?(`_DEF`_deftype(`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0))] -[visit_exp `_DEF`_deftype(`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0)] -[visit_exp (`REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])), 0)] -[visit_exp `REC`_rectype(`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))]))] -[visit_exp (`%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))]))] -[visit_exp `%`_list([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])] -[visit_exp ([`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))])] -[visit_exp [`SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))]] -[visit_exp `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp (?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp ?(`FINAL`_final)] -[visit_exp `FINAL`_final] -[visit_exp ()] -[visit_exp []] -[visit_exp `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp 0] -[visit_id i] not free -[scope_exit i] -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = (I : I) -[check_dims] I _ -[check_dims] I -dims \ I = -[visit_exp (?(), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []} +++ I)] -[visit_exp ?()] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []} +++ I] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I id -dims \ I = id -[visit_exp (?(id), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []} +++ I)] -[visit_exp ?(id)] -[visit_exp id] -[visit_id id] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []} +++ I] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [?(id)]] -[visit_exp ?(id)] -[visit_exp id] -[visit_id id] not free -[visit_exp []] -[visit_exp []] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp id] -[visit_id id] not free -[visit_exp ~ (?(id) <- I.`LABELS`_I)] -[visit_exp (?(id) <- I.`LABELS`_I)] -[visit_exp ?(id)] -[visit_exp id] -[visit_id id] not free -[visit_exp I.`LABELS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I id x -dims \ I = id, x -[visit_exp (?(id), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []} +++ I[`LABELS`_I[x!`%`_idx.0] = ?()])] -[visit_exp ?(id)] -[visit_exp id] -[visit_id id] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []} +++ I[`LABELS`_I[x!`%`_idx.0] = ?()]] -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [?(id)]] -[visit_exp ?(id)] -[visit_exp id] -[visit_id id] not free -[visit_exp []] -[visit_exp []] -[visit_exp I[`LABELS`_I[x!`%`_idx.0] = ?()]] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] -[visit_exp ?()] -[visit_exp id] -[visit_id id] not free -[visit_exp (?(id) = I.`LABELS`_I[x!`%`_idx.0])] -[visit_exp ?(id)] -[visit_exp id] -[visit_id id] not free -[visit_exp I.`LABELS`_I[x!`%`_idx.0]] -[visit_exp I.`LABELS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = (I : I) -[check_dims] I -[check_dims] I in -dims \ I = in -[visit_exp in] -[visit_id in] -[visit_exp in] -[visit_id in] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I in -dims \ I = in -[visit_exp in] -[visit_id in] -[visit_exp in] -[visit_id in] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I in -dims \ I = in -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] no dims -[visit_id in*] -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] not free -[visit_id in*] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I in -dims \ I = in -[visit_exp $concat_(syntax instr, in*{in <- `in*`}*{`in*` <- `in**`})] -[visit_exp in*{in <- `in*`}*{`in*` <- `in**`}] -[scope_enter in*] -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] not free -[visit_id in*] no dims -[visit_id in*] not free -[visit_id in*] no dims -[scope_exit in*] -[visit_exp `in**`] -[visit_id in**] no dims -[visit_id in**] -[visit_exp in*{in <- `in*`}*{`in*` <- `in**`}] -[scope_enter in*] -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] not free -[visit_id in*] no dims -[visit_id in*] not free -[visit_id in*] no dims -[scope_exit in*] -[visit_exp `in**`] -[visit_id in**] not free -[visit_id in**] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I I' -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I'] -[visit_id I'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I'] -[visit_id I'] not free -[check_dims] I I' -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I'] -[visit_id I'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I'] -[visit_id I'] not free -[check_dims] I I' in_1 in_2 -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp in_1*{in_1 <- `in_1*`}] -[scope_enter in_1] -[visit_exp in_1] -[visit_id in_1] not free -[visit_id in_1] not free -[scope_exit in_1] -[visit_exp `in_1*`] -[visit_id in_1*] no dims -[visit_id in_1*] -[visit_exp I'] -[visit_id I'] -[scope_enter in_2*] -[visit_exp in_2*{in_2 <- `in_2*`}] -[scope_enter in_2] -[visit_exp in_2] -[visit_id in_2] not free -[visit_id in_2] not free -[scope_exit in_2] -[visit_exp `in_2*`] -[visit_id in_2*] not free -[visit_id in_2*] no dims -[visit_exp I'] -[visit_id I'] not free -[visit_id in_2*] not free -[visit_id in_2*] no dims -[scope_exit in_2*] -[visit_exp `in_2*?`] -[visit_id in_2*?] no dims -[visit_id in_2*?] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp in_1*{in_1 <- `in_1*`}] -[scope_enter in_1] -[visit_exp in_1] -[visit_id in_1] not free -[visit_id in_1] not free -[scope_exit in_1] -[visit_exp `in_1*`] -[visit_id in_1*] not free -[visit_id in_1*] no dims -[visit_exp I'] -[visit_id I'] not free -[scope_enter in_2*] -[visit_exp in_2*{in_2 <- `in_2*`}] -[scope_enter in_2] -[visit_exp in_2] -[visit_id in_2] not free -[visit_id in_2] not free -[scope_exit in_2] -[visit_exp `in_2*`] -[visit_id in_2*] not free -[visit_id in_2*] no dims -[visit_exp I'] -[visit_id I'] not free -[visit_id in_2*] not free -[visit_id in_2*] no dims -[scope_exit in_2*] -[visit_exp `in_2*?`] -[visit_id in_2*?] not free -[visit_id in_2*?] no dims -[check_dims] I I' -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I'] -[visit_id I'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I'] -[visit_id I'] not free -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `UNREACHABLE`_instr] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `NOP`_instr] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `DROP`_instr] -[visit_exp ()] -[check_dims] I t -dims \ I = t -[visit_exp `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})] -[visit_exp (t*{t <- `t*`}?{`t*` <- `t*?`})] -[visit_exp t*{t <- `t*`}?{`t*` <- `t*?`}] -[scope_enter t*] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_id t*] not free -[visit_id t*] no dims -[scope_exit t*] -[visit_exp `t*?`] -[visit_id t*?] no dims -[visit_id t*?] -[scope_enter t*] -[visit_exp t*{t <- `t*`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t*`] -[visit_id t*] not free -[visit_id t*] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id t*] not free -[visit_id t*] no dims -[scope_exit t*] -[visit_exp `t*?`] -[visit_id t*?] not free -[visit_id t*?] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I t -dims \ I = t -[visit_exp `_RESULT`_blocktype(t?{t <- `t?`})] -[visit_exp (t?{t <- `t?`})] -[visit_exp t?{t <- `t?`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t?`] -[visit_id t?] no dims -[visit_id t?] -[visit_exp t?{t <- `t?`}] -[scope_enter t] -[visit_exp t] -[visit_id t] not free -[visit_id t] not free -[scope_exit t] -[visit_exp `t?`] -[visit_id t?] not free -[visit_id t?] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I I' x -dims \ I = I', x -[visit_exp `_IDX`_blocktype(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp (x, I')] -[visit_exp x] -[visit_id x] not free -[visit_exp I'] -[visit_id I'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] -[visit_exp I'] -[visit_id I'] not free -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?(`%`_name([]))*{}] -[visit_exp ?(`%`_name([]))] -[visit_exp `%`_name([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I I' bt id id' in -dims \ I = I', bt, id, id', in -[visit_exp `BLOCK`_instr(bt, in*{in <- `in*`})] -[visit_exp (bt, in*{in <- `in*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] no dims -[visit_id in*] -[visit_exp (?(`%`_name(lift(id?{id <- `id?`}))), I')] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp I'] -[visit_id I'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp bt] -[visit_id bt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] not free -[visit_id in*] no dims -[visit_exp I'] -[visit_id I'] not free -[visit_exp ?(`%`_name(lift(id'?{id' <- `id'?`})))] -[visit_exp `%`_name(lift(id'?{id' <- `id'?`}))] -[visit_exp (lift(id'?{id' <- `id'?`}))] -[visit_exp lift(id'?{id' <- `id'?`})] -[visit_exp id'?{id' <- `id'?`}] -[scope_enter id'] -[visit_exp id'] -[visit_id id'] not free -[visit_id id'] not free -[scope_exit id'] -[visit_exp `id'?`] -[visit_id id'?] no dims -[visit_id id'?] -[visit_exp ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`}))] -[visit_exp (id'?{id' <- `id'?`} = ?())] -[visit_exp id'?{id' <- `id'?`}] -[scope_enter id'] -[visit_exp id'] -[visit_id id'] not free -[visit_id id'] not free -[scope_exit id'] -[visit_exp `id'?`] -[visit_id id'?] not free -[visit_id id'?] no dims -[visit_exp ?()] -[visit_exp (id'?{id' <- `id'?`} = id?{id <- `id?`})] -[visit_exp id'?{id' <- `id'?`}] -[scope_enter id'] -[visit_exp id'] -[visit_id id'] not free -[visit_id id'] not free -[scope_exit id'] -[visit_exp `id'?`] -[visit_id id'?] not free -[visit_id id'?] no dims -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[check_dims] I I' bt id id' in -dims \ I = I', bt, id, id', in -[visit_exp `LOOP`_instr(bt, in*{in <- `in*`})] -[visit_exp (bt, in*{in <- `in*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] no dims -[visit_id in*] -[visit_exp (?(`%`_name(lift(id?{id <- `id?`}))), I')] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp I'] -[visit_id I'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp bt] -[visit_id bt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] not free -[visit_id in*] no dims -[visit_exp I'] -[visit_id I'] not free -[visit_exp ?(`%`_name(lift(id'?{id' <- `id'?`})))] -[visit_exp `%`_name(lift(id'?{id' <- `id'?`}))] -[visit_exp (lift(id'?{id' <- `id'?`}))] -[visit_exp lift(id'?{id' <- `id'?`})] -[visit_exp id'?{id' <- `id'?`}] -[scope_enter id'] -[visit_exp id'] -[visit_id id'] not free -[visit_id id'] not free -[scope_exit id'] -[visit_exp `id'?`] -[visit_id id'?] no dims -[visit_id id'?] -[visit_exp ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`}))] -[visit_exp (id'?{id' <- `id'?`} = ?())] -[visit_exp id'?{id' <- `id'?`}] -[scope_enter id'] -[visit_exp id'] -[visit_id id'] not free -[visit_id id'] not free -[scope_exit id'] -[visit_exp `id'?`] -[visit_id id'?] not free -[visit_id id'?] no dims -[visit_exp ?()] -[visit_exp (id'?{id' <- `id'?`} = id?{id <- `id?`})] -[visit_exp id'?{id' <- `id'?`}] -[scope_enter id'] -[visit_exp id'] -[visit_id id'] not free -[visit_id id'] not free -[scope_exit id'] -[visit_exp `id'?`] -[visit_id id'?] not free -[visit_id id'?] no dims -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[check_dims] I I' bt id id_1 id_2 in_1 in_2 -dims \ I = I', bt, id, id_1, id_2, in_1, in_2 -[visit_exp `IF%%ELSE%`_instr(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] -[visit_exp (bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp in_1*{in_1 <- `in_1*`}] -[scope_enter in_1] -[visit_exp in_1] -[visit_id in_1] not free -[visit_id in_1] not free -[scope_exit in_1] -[visit_exp `in_1*`] -[visit_id in_1*] no dims -[visit_id in_1*] -[visit_exp in_2*{in_2 <- `in_2*`}] -[scope_enter in_2] -[visit_exp in_2] -[visit_id in_2] not free -[visit_id in_2] not free -[scope_exit in_2] -[visit_exp `in_2*`] -[visit_id in_2*] no dims -[visit_id in_2*] -[visit_exp (?(`%`_name(lift(id?{id <- `id?`}))), I')] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp I'] -[visit_id I'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp bt] -[visit_id bt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp in_1*{in_1 <- `in_1*`}] -[scope_enter in_1] -[visit_exp in_1] -[visit_id in_1] not free -[visit_id in_1] not free -[scope_exit in_1] -[visit_exp `in_1*`] -[visit_id in_1*] not free -[visit_id in_1*] no dims -[visit_exp I'] -[visit_id I'] not free -[visit_exp ?(`%`_name(lift(id_1?{id_1 <- `id_1?`})))] -[visit_exp `%`_name(lift(id_1?{id_1 <- `id_1?`}))] -[visit_exp (lift(id_1?{id_1 <- `id_1?`}))] -[visit_exp lift(id_1?{id_1 <- `id_1?`})] -[visit_exp id_1?{id_1 <- `id_1?`}] -[scope_enter id_1] -[visit_exp id_1] -[visit_id id_1] not free -[visit_id id_1] not free -[scope_exit id_1] -[visit_exp `id_1?`] -[visit_id id_1?] no dims -[visit_id id_1?] -[visit_exp in_2*{in_2 <- `in_2*`}] -[scope_enter in_2] -[visit_exp in_2] -[visit_id in_2] not free -[visit_id in_2] not free -[scope_exit in_2] -[visit_exp `in_2*`] -[visit_id in_2*] not free -[visit_id in_2*] no dims -[visit_exp I'] -[visit_id I'] not free -[visit_exp ?(`%`_name(lift(id_2?{id_2 <- `id_2?`})))] -[visit_exp `%`_name(lift(id_2?{id_2 <- `id_2?`}))] -[visit_exp (lift(id_2?{id_2 <- `id_2?`}))] -[visit_exp lift(id_2?{id_2 <- `id_2?`})] -[visit_exp id_2?{id_2 <- `id_2?`}] -[scope_enter id_2] -[visit_exp id_2] -[visit_id id_2] not free -[visit_id id_2] not free -[scope_exit id_2] -[visit_exp `id_2?`] -[visit_id id_2?] no dims -[visit_id id_2?] -[visit_exp (((id_1?{id_1 <- `id_1?`} = ?()) \/ (id_1?{id_1 <- `id_1?`} = id?{id <- `id?`})) /\ ((id_2?{id_2 <- `id_2?`} = ?()) \/ (id_2?{id_2 <- `id_2?`} = id?{id <- `id?`})))] -[visit_exp ((id_1?{id_1 <- `id_1?`} = ?()) \/ (id_1?{id_1 <- `id_1?`} = id?{id <- `id?`}))] -[visit_exp (id_1?{id_1 <- `id_1?`} = ?())] -[visit_exp id_1?{id_1 <- `id_1?`}] -[scope_enter id_1] -[visit_exp id_1] -[visit_id id_1] not free -[visit_id id_1] not free -[scope_exit id_1] -[visit_exp `id_1?`] -[visit_id id_1?] not free -[visit_id id_1?] no dims -[visit_exp ?()] -[visit_exp (id_1?{id_1 <- `id_1?`} = id?{id <- `id?`})] -[visit_exp id_1?{id_1 <- `id_1?`}] -[scope_enter id_1] -[visit_exp id_1] -[visit_id id_1] not free -[visit_id id_1] not free -[scope_exit id_1] -[visit_exp `id_1?`] -[visit_id id_1?] not free -[visit_id id_1?] no dims -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp ((id_2?{id_2 <- `id_2?`} = ?()) \/ (id_2?{id_2 <- `id_2?`} = id?{id <- `id?`}))] -[visit_exp (id_2?{id_2 <- `id_2?`} = ?())] -[visit_exp id_2?{id_2 <- `id_2?`}] -[scope_enter id_2] -[visit_exp id_2] -[visit_id id_2] not free -[visit_id id_2] not free -[scope_exit id_2] -[visit_exp `id_2?`] -[visit_id id_2?] not free -[visit_id id_2?] no dims -[visit_exp ?()] -[visit_exp (id_2?{id_2 <- `id_2?`} = id?{id <- `id?`})] -[visit_exp id_2?{id_2 <- `id_2?`}] -[scope_enter id_2] -[visit_exp id_2] -[visit_id id_2] not free -[visit_id id_2] not free -[scope_exit id_2] -[visit_exp `id_2?`] -[visit_id id_2?] not free -[visit_id id_2?] no dims -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[check_dims] I I' bt c id id' in -dims \ I = I', bt, c, id, id', in -[visit_exp `TRY_TABLE`_instr(bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`})] -[visit_exp (bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`})] -[visit_exp bt] -[visit_id bt] -[visit_exp `%`_list(c*{c <- `c*`})] -[visit_exp (c*{c <- `c*`})] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] no dims -[visit_id in*] -[visit_exp (?(`%`_name(lift(id?{id <- `id?`}))), I')] -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp I'] -[visit_id I'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp bt] -[visit_id bt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] not free -[visit_id in*] no dims -[visit_exp I'] -[visit_id I'] not free -[visit_exp ?(`%`_name(lift(id'?{id' <- `id'?`})))] -[visit_exp `%`_name(lift(id'?{id' <- `id'?`}))] -[visit_exp (lift(id'?{id' <- `id'?`}))] -[visit_exp lift(id'?{id' <- `id'?`})] -[visit_exp id'?{id' <- `id'?`}] -[scope_enter id'] -[visit_exp id'] -[visit_id id'] not free -[visit_id id'] not free -[scope_exit id'] -[visit_exp `id'?`] -[visit_id id'?] no dims -[visit_id id'?] -[visit_exp ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`}))] -[visit_exp (id'?{id' <- `id'?`} = ?())] -[visit_exp id'?{id' <- `id'?`}] -[scope_enter id'] -[visit_exp id'] -[visit_id id'] not free -[visit_id id'] not free -[scope_exit id'] -[visit_exp `id'?`] -[visit_id id'?] not free -[visit_id id'?] no dims -[visit_exp ?()] -[visit_exp (id'?{id' <- `id'?`} = id?{id <- `id?`})] -[visit_exp id'?{id' <- `id'?`}] -[scope_enter id'] -[visit_exp id'] -[visit_id id'] not free -[visit_id id'] not free -[scope_exit id'] -[visit_exp `id'?`] -[visit_id id'?] not free -[visit_id id'?] no dims -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I l x -dims \ I = l, x -[visit_exp `CATCH`_catch(x, l)] -[visit_exp (x, l)] -[visit_exp x] -[visit_id x] -[visit_exp l] -[visit_id l] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp l] -[visit_id l] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I l x -dims \ I = l, x -[visit_exp `CATCH_REF`_catch(x, l)] -[visit_exp (x, l)] -[visit_exp x] -[visit_id x] -[visit_exp l] -[visit_id l] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp l] -[visit_id l] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I l -dims \ I = l -[visit_exp `CATCH_ALL`_catch(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp l] -[visit_id l] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I l -dims \ I = l -[visit_exp `CATCH_ALL_REF`_catch(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp l] -[visit_id l] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I l -dims \ I = l -[visit_exp `BR`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp l] -[visit_id l] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I l -dims \ I = l -[visit_exp `BR_IF`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp l] -[visit_id l] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I l l' -dims \ I = l, l' -[visit_exp `BR_TABLE`_instr(l*{l <- `l*`}, l')] -[visit_exp (l*{l <- `l*`}, l')] -[visit_exp l*{l <- `l*`}] -[scope_enter l] -[visit_exp l] -[visit_id l] not free -[visit_id l] not free -[scope_exit l] -[visit_exp `l*`] -[visit_id l*] no dims -[visit_id l*] -[visit_exp l'] -[visit_id l'] -[visit_exp l*{l <- `l*`}] -[scope_enter l] -[visit_exp l] -[visit_id l] not free -[visit_id l] not free -[scope_exit l] -[visit_exp `l*`] -[visit_id l*] not free -[visit_id l*] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp l'] -[visit_id l'] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I l -dims \ I = l -[visit_exp `BR_ON_NULL`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp l] -[visit_id l] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I l -dims \ I = l -[visit_exp `BR_ON_NON_NULL`_instr(l)] -[visit_exp (l)] -[visit_exp l] -[visit_id l] -[visit_exp l] -[visit_id l] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I l rt_1 rt_2 -dims \ I = l, rt_1, rt_2 -[visit_exp `BR_ON_CAST`_instr(l, rt_1, rt_2)] -[visit_exp (l, rt_1, rt_2)] -[visit_exp l] -[visit_id l] -[visit_exp rt_1] -[visit_id rt_1] -[visit_exp rt_2] -[visit_id rt_2] -[visit_exp l] -[visit_id l] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp rt_1] -[visit_id rt_1] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp rt_2] -[visit_id rt_2] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I l rt_1 rt_2 -dims \ I = l, rt_1, rt_2 -[visit_exp `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)] -[visit_exp (l, rt_1, rt_2)] -[visit_exp l] -[visit_id l] -[visit_exp rt_1] -[visit_id rt_1] -[visit_exp rt_2] -[visit_id rt_2] -[visit_exp l] -[visit_id l] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp rt_1] -[visit_id rt_1] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp rt_2] -[visit_id rt_2] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I x -dims \ I = x -[visit_exp `CALL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `CALL_REF`_instr(`_IDX`_typeuse(x))] -[visit_exp (`_IDX`_typeuse(x))] -[visit_exp `_IDX`_typeuse(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I I' x y -dims \ I = I', x, y -[visit_exp `CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y))] -[visit_exp (x, `_IDX`_typeuse(y))] -[visit_exp x] -[visit_id x] -[visit_exp `_IDX`_typeuse(y)] -[visit_exp (y)] -[visit_exp y] -[visit_id y] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp (y, I')] -[visit_exp y] -[visit_id y] not free -[visit_exp I'] -[visit_id I'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] -[visit_exp I'] -[visit_id I'] not free -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?(`%`_name([]))*{}] -[visit_exp ?(`%`_name([]))] -[visit_exp `%`_name([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[check_dims] I -dims \ I = -[visit_exp `RETURN`_instr] -[visit_exp ()] -[check_dims] I x -dims \ I = x -[visit_exp `RETURN_CALL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `RETURN_CALL_REF`_instr(`_IDX`_typeuse(x))] -[visit_exp (`_IDX`_typeuse(x))] -[visit_exp `_IDX`_typeuse(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I I' x y -dims \ I = I', x, y -[visit_exp `RETURN_CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y))] -[visit_exp (x, `_IDX`_typeuse(y))] -[visit_exp x] -[visit_id x] -[visit_exp `_IDX`_typeuse(y)] -[visit_exp (y)] -[visit_exp y] -[visit_id y] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp (y, I')] -[visit_exp y] -[visit_id y] not free -[visit_exp I'] -[visit_id I'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []})] -[visit_exp I'] -[visit_id I'] not free -[visit_exp {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp ?(`%`_name([]))*{}] -[visit_exp ?(`%`_name([]))] -[visit_exp `%`_name([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I x -dims \ I = x -[visit_exp `THROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I -dims \ I = -[visit_exp `THROW_REF`_instr] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I x -dims \ I = x -[visit_exp `LOCAL.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `LOCAL.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `LOCAL.TEE`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I x -dims \ I = x -[visit_exp `GLOBAL.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `GLOBAL.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I x -dims \ I = x -[visit_exp `TABLE.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `TABLE.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `TABLE.SIZE`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `TABLE.GROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `TABLE.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x_1 x_2 -dims \ I = x_1, x_2 -[visit_exp `TABLE.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x y -dims \ I = x, y -[visit_exp `TABLE.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp y] -[visit_id y] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I x -dims \ I = x -[visit_exp `ELEM.DROP`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (N : N) -[check_dims] N -[check_dims] N m n -dims \ N = m, n -[visit_exp {`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)}] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] not free -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_id N] not free -ps' = -[check_dims] -[check_dims] n -dims \ = n -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[check_dims] -dims \ = -[visit_exp `%`_u64(0)] -[visit_exp (0)] -[visit_exp 0] -ps' = (N : N) -[check_dims] N -[check_dims] N m n -dims \ N = m, n -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] -[visit_exp `%`_u64(m)] -[visit_exp (m)] -[visit_exp m] -[visit_id m] not free -[visit_exp (m = (2 ^ n))] -[visit_exp m] -[visit_id m] not free -[visit_exp (2 ^ n)] -[visit_exp 2] -[visit_exp n] -[visit_id n] -[check_dims] N -dims \ N = -[visit_exp `%`_u64(N)] -[visit_exp (N)] -[visit_exp N] -[visit_id N] not free -[visit_id N] no dims -[visit_id N] not free -ps' = -[check_dims] -[check_dims] i -dims \ = i -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -ps' = (I : I) -[check_dims] I -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`I32`_numtype, ?(), x, ao)] -[visit_exp (`I32`_numtype, ?(), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 4] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(), x, ao)] -[visit_exp (`I64`_numtype, ?(), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`F32`_numtype, ?(), x, ao)] -[visit_exp (`F32`_numtype, ?(), x, ao)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 4] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`F64`_numtype, ?(), x, ao)] -[visit_exp (`F64`_numtype, ?(), x, ao)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `S`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(8), `S`_sx)] -[visit_exp (`%`_sz(8), `S`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 1] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `U`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(8), `U`_sx)] -[visit_exp (`%`_sz(8), `U`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 1] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `S`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(16), `S`_sx)] -[visit_exp (`%`_sz(16), `S`_sx)] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 2] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] -[visit_exp (`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `U`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(16), `U`_sx)] -[visit_exp (`%`_sz(16), `U`_sx)] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 2] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `S`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(8), `S`_sx)] -[visit_exp (`%`_sz(8), `S`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 1] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(8), `U`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(8), `U`_sx)] -[visit_exp (`%`_sz(8), `U`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 1] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `S`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(16), `S`_sx)] -[visit_exp (`%`_sz(16), `S`_sx)] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 2] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(16), `U`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(16), `U`_sx)] -[visit_exp (`%`_sz(16), `U`_sx)] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 2] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `S`_sx)), x, ao)] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `S`_sx)), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(32), `S`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(32), `S`_sx)] -[visit_exp (`%`_sz(32), `S`_sx)] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 4] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `U`_sx)), x, ao)] -[visit_exp (`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `U`_sx)), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%_%`_loadop_(`%`_sz(32), `U`_sx))] -[visit_exp `%_%`_loadop_(`%`_sz(32), `U`_sx)] -[visit_exp (`%`_sz(32), `U`_sx)] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 4] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(), x, ao)] -[visit_exp (`V128`_vectype, ?(), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 16] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)] -[visit_exp (`%`_sz(8), 8, `S`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp 8] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)] -[visit_exp (`%`_sz(8), 8, `U`_sx)] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp 8] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)] -[visit_exp (`%`_sz(16), 4, `S`_sx)] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp 4] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)] -[visit_exp (`%`_sz(16), 4, `U`_sx)] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp 4] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)] -[visit_exp (`%`_sz(32), 2, `S`_sx)] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp 2] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)), x, ao)] -[visit_exp (`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx))] -[visit_exp `SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)] -[visit_exp (`%`_sz(32), 2, `U`_sx)] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp 2] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(8))), x, ao)] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(8))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(8)))] -[visit_exp `SPLAT`_vloadop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 1] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(16))), x, ao)] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(16))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(16)))] -[visit_exp `SPLAT`_vloadop_(`%`_sz(16))] -[visit_exp (`%`_sz(16))] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 2] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(32))), x, ao)] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(32))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(32)))] -[visit_exp `SPLAT`_vloadop_(`%`_sz(32))] -[visit_exp (`%`_sz(32))] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 4] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(64))), x, ao)] -[visit_exp (`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(64))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`SPLAT`_vloadop_(`%`_sz(64)))] -[visit_exp `SPLAT`_vloadop_(`%`_sz(64))] -[visit_exp (`%`_sz(64))] -[visit_exp `%`_sz(64)] -[visit_exp (64)] -[visit_exp 64] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(32))), x, ao)] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(32))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_(`%`_sz(32)))] -[visit_exp `ZERO`_vloadop_(`%`_sz(32))] -[visit_exp (`%`_sz(32))] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 4] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(64))), x, ao)] -[visit_exp (`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(64))), x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp ?(`ZERO`_vloadop_(`%`_sz(64)))] -[visit_exp `ZERO`_vloadop_(`%`_sz(64))] -[visit_exp (`%`_sz(64))] -[visit_exp `%`_sz(64)] -[visit_exp (64)] -[visit_exp 64] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[check_dims] I ao i x -dims \ I = ao, i, x -[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(8), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 1] -[visit_exp i] -[visit_id i] not free -[check_dims] I ao i x -dims \ I = ao, i, x -[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(16), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 2] -[visit_exp i] -[visit_id i] not free -[check_dims] I ao i x -dims \ I = ao, i, x -[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(32), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 4] -[visit_exp i] -[visit_id i] not free -[check_dims] I ao i x -dims \ I = ao, i, x -[visit_exp `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(64), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(64)] -[visit_exp (64)] -[visit_exp 64] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[visit_exp i] -[visit_id i] not free -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `STORE`_instr(`I32`_numtype, ?(), x, ao)] -[visit_exp (`I32`_numtype, ?(), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 4] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `STORE`_instr(`I64`_numtype, ?(), x, ao)] -[visit_exp (`I64`_numtype, ?(), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `STORE`_instr(`F32`_numtype, ?(), x, ao)] -[visit_exp (`F32`_numtype, ?(), x, ao)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 4] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `STORE`_instr(`F64`_numtype, ?(), x, ao)] -[visit_exp (`F64`_numtype, ?(), x, ao)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] -[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(8)))] -[visit_exp `%`_storeop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 1] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] -[visit_exp (`I32`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(16)))] -[visit_exp `%`_storeop_(`%`_sz(16))] -[visit_exp (`%`_sz(16))] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 2] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] -[visit_exp (`I64`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(8)))] -[visit_exp `%`_storeop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 1] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] -[visit_exp (`I64`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(16)))] -[visit_exp `%`_storeop_(`%`_sz(16))] -[visit_exp (`%`_sz(16))] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 2] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao)] -[visit_exp (`I64`_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp ?(`%`_storeop_(`%`_sz(32)))] -[visit_exp `%`_storeop_(`%`_sz(32))] -[visit_exp (`%`_sz(32))] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 4] -[check_dims] I ao x -dims \ I = ao, x -[visit_exp `VSTORE`_instr(`V128`_vectype, x, ao)] -[visit_exp (`V128`_vectype, x, ao)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 16] -[check_dims] I ao i x -dims \ I = ao, i, x -[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(8), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 1] -[visit_exp i] -[visit_id i] not free -[check_dims] I ao i x -dims \ I = ao, i, x -[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(16), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 2] -[visit_exp i] -[visit_id i] not free -[check_dims] I ao i x -dims \ I = ao, i, x -[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(32), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 4] -[visit_exp i] -[visit_id i] not free -[check_dims] I ao i x -dims \ I = ao, i, x -[visit_exp `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i)] -[visit_exp (`V128`_vectype, `%`_sz(64), x, ao, i)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `%`_sz(64)] -[visit_exp (64)] -[visit_exp 64] -[visit_exp x] -[visit_id x] -[visit_exp ao] -[visit_id ao] -[visit_exp i] -[visit_id i] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ao] -[visit_id ao] not free -[visit_exp 8] -[visit_exp i] -[visit_id i] not free -[check_dims] I x -dims \ I = x -[visit_exp `MEMORY.SIZE`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `MEMORY.GROW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `MEMORY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x_1 x_2 -dims \ I = x_1, x_2 -[visit_exp `MEMORY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x y -dims \ I = x, y -[visit_exp `MEMORY.INIT`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp y] -[visit_id y] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -[visit_exp 4] -[visit_exp 4] -[check_dims] I -[visit_exp 8] -[visit_exp 8] -[check_dims] I -[visit_exp 4] -[visit_exp 4] -[check_dims] I -[visit_exp 8] -[visit_exp 8] -[check_dims] I -[visit_exp 1] -[visit_exp 1] -[check_dims] I -[visit_exp 1] -[visit_exp 1] -[check_dims] I -[visit_exp 2] -[visit_exp 2] -[check_dims] I -[visit_exp 2] -[visit_exp 2] -[check_dims] I -[visit_exp 1] -[visit_exp 1] -[check_dims] I -[visit_exp 1] -[visit_exp 1] -[check_dims] I -[visit_exp 2] -[visit_exp 2] -[check_dims] I -[visit_exp 2] -[visit_exp 2] -[check_dims] I -[visit_exp 4] -[visit_exp 4] -[check_dims] I -[visit_exp 4] -[visit_exp 4] -[check_dims] I -[visit_exp 16] -[visit_exp 16] -[check_dims] I -[visit_exp 8] -[visit_exp 8] -[check_dims] I -[visit_exp 8] -[visit_exp 8] -[check_dims] I -[visit_exp 8] -[visit_exp 8] -[check_dims] I -[visit_exp 8] -[visit_exp 8] -[check_dims] I -[visit_exp 8] -[visit_exp 8] -[check_dims] I -[visit_exp 8] -[visit_exp 8] -[check_dims] I -[visit_exp 1] -[visit_exp 1] -[check_dims] I -[visit_exp 2] -[visit_exp 2] -[check_dims] I -[visit_exp 4] -[visit_exp 4] -[check_dims] I -[visit_exp 8] -[visit_exp 8] -[check_dims] I -[visit_exp 4] -[visit_exp 4] -[check_dims] I -[visit_exp 8] -[visit_exp 8] -[check_dims] I -[visit_exp 1] -[visit_exp 1] -[check_dims] I -[visit_exp 2] -[visit_exp 2] -[check_dims] I -[visit_exp 4] -[visit_exp 4] -[check_dims] I -[visit_exp 8] -[visit_exp 8] -[check_dims] I -[visit_exp 4] -[visit_exp 4] -[check_dims] I -[visit_exp 8] -[visit_exp 8] -[check_dims] I -[visit_exp 4] -[visit_exp 4] -[check_dims] I -[visit_exp 8] -[visit_exp 8] -[check_dims] I -[visit_exp 1] -[visit_exp 1] -[check_dims] I -[visit_exp 2] -[visit_exp 2] -[check_dims] I -[visit_exp 1] -[visit_exp 1] -[check_dims] I -[visit_exp 2] -[visit_exp 2] -[check_dims] I -[visit_exp 4] -[visit_exp 4] -[check_dims] I -[visit_exp 16] -[visit_exp 16] -[check_dims] I -[visit_exp 1] -[visit_exp 1] -[check_dims] I -[visit_exp 2] -[visit_exp 1] -[check_dims] I -[visit_exp 4] -[visit_exp 1] -[check_dims] I -[visit_exp 8] -[visit_exp 1] -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[check_dims] I -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I x -dims \ I = x -[visit_exp `DATA.DROP`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I ht -dims \ I = ht -[visit_exp `REF.NULL`_instr(ht)] -[visit_exp (ht)] -[visit_exp ht] -[visit_id ht] -[visit_exp ht] -[visit_id ht] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `REF.FUNC`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I -dims \ I = -[visit_exp `REF.IS_NULL`_instr] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `REF.AS_NON_NULL`_instr] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `REF.EQ`_instr] -[visit_exp ()] -[check_dims] I rt -dims \ I = rt -[visit_exp `REF.TEST`_instr(rt)] -[visit_exp (rt)] -[visit_exp rt] -[visit_id rt] -[visit_exp rt] -[visit_id rt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I rt -dims \ I = rt -[visit_exp `REF.CAST`_instr(rt)] -[visit_exp (rt)] -[visit_exp rt] -[visit_id rt] -[visit_exp rt] -[visit_id rt] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `REF.I31`_instr] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `I31.GET`_instr(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `I31.GET`_instr(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I x -dims \ I = x -[visit_exp `STRUCT.NEW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `STRUCT.NEW_DEFAULT`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I i x -dims \ I = i, x -[visit_exp `STRUCT.GET`_instr(?(), x, i)] -[visit_exp (?(), x, i)] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp i] -[visit_id i] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x] -[visit_id x] not free -[check_dims] I i x -dims \ I = i, x -[visit_exp `STRUCT.GET`_instr(?(`S`_sx), x, i)] -[visit_exp (?(`S`_sx), x, i)] -[visit_exp ?(`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp i] -[visit_id i] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x] -[visit_id x] not free -[check_dims] I i x -dims \ I = i, x -[visit_exp `STRUCT.GET`_instr(?(`U`_sx), x, i)] -[visit_exp (?(`U`_sx), x, i)] -[visit_exp ?(`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp i] -[visit_id i] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x] -[visit_id x] not free -[check_dims] I i x -dims \ I = i, x -[visit_exp `STRUCT.SET`_instr(x, i)] -[visit_exp (x, i)] -[visit_exp x] -[visit_id x] -[visit_exp i] -[visit_id i] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp i] -[visit_id i] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x] -[visit_id x] not free -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I x -dims \ I = x -[visit_exp `ARRAY.NEW`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `ARRAY.NEW_DEFAULT`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I n x -dims \ I = n, x -[visit_exp `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))] -[visit_exp (x, `%`_u32(n))] -[visit_exp x] -[visit_id x] -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp `%`_u32(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[check_dims] I x y -dims \ I = x, y -[visit_exp `ARRAY.NEW_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp y] -[visit_id y] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x y -dims \ I = x, y -[visit_exp `ARRAY.NEW_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp y] -[visit_id y] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `ARRAY.GET`_instr(?(), x)] -[visit_exp (?(), x)] -[visit_exp ?()] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `ARRAY.GET`_instr(?(`S`_sx), x)] -[visit_exp (?(`S`_sx), x)] -[visit_exp ?(`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `ARRAY.GET`_instr(?(`U`_sx), x)] -[visit_exp (?(`U`_sx), x)] -[visit_exp ?(`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x -dims \ I = x -[visit_exp `ARRAY.SET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I -dims \ I = -[visit_exp `ARRAY.LEN`_instr] -[visit_exp ()] -[check_dims] I x -dims \ I = x -[visit_exp `ARRAY.FILL`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x_1 x_2 -dims \ I = x_1, x_2 -[visit_exp `ARRAY.COPY`_instr(x_1, x_2)] -[visit_exp (x_1, x_2)] -[visit_exp x_1] -[visit_id x_1] -[visit_exp x_2] -[visit_id x_2] -[visit_exp x_1] -[visit_id x_1] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp x_2] -[visit_id x_2] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x y -dims \ I = x, y -[visit_exp `ARRAY.INIT_DATA`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp y] -[visit_id y] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I x y -dims \ I = x, y -[visit_exp `ARRAY.INIT_ELEM`_instr(x, y)] -[visit_exp (x, y)] -[visit_exp x] -[visit_id x] -[visit_exp y] -[visit_id y] -[visit_exp x] -[visit_id x] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp y] -[visit_id y] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `ANY.CONVERT_EXTERN`_instr] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `EXTERN.CONVERT_ANY`_instr] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I c -dims \ I = c -[visit_exp `CONST`_instr(`I32`_numtype, c)] -[visit_exp (`I32`_numtype, c)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp c] -[visit_id c] not free -[check_dims] I c -dims \ I = c -[visit_exp `CONST`_instr(`I64`_numtype, c)] -[visit_exp (`I64`_numtype, c)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp c] -[visit_id c] not free -[check_dims] I c -dims \ I = c -[visit_exp `CONST`_instr(`F32`_numtype, c)] -[visit_exp (`F32`_numtype, c)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp c] -[visit_id c] not free -[check_dims] I c -dims \ I = c -[visit_exp `CONST`_instr(`F64`_numtype, c)] -[visit_exp (`F64`_numtype, c)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp c] -[visit_id c] -[visit_exp c] -[visit_id c] not free -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `TESTOP`_instr(`I32`_numtype, `EQZ`_testop_)] -[visit_exp (`I32`_numtype, `EQZ`_testop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `EQZ`_testop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `TESTOP`_instr(`I64`_numtype, `EQZ`_testop_)] -[visit_exp (`I64`_numtype, `EQZ`_testop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `EQZ`_testop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I32`_numtype, `EQ`_relop_)] -[visit_exp (`I32`_numtype, `EQ`_relop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `EQ`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I32`_numtype, `NE`_relop_)] -[visit_exp (`I32`_numtype, `NE`_relop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `NE`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I32`_numtype, `LT`_relop_(`S`_sx))] -[visit_exp (`I32`_numtype, `LT`_relop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `LT`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I32`_numtype, `LT`_relop_(`U`_sx))] -[visit_exp (`I32`_numtype, `LT`_relop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `LT`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I32`_numtype, `GT`_relop_(`S`_sx))] -[visit_exp (`I32`_numtype, `GT`_relop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `GT`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I32`_numtype, `GT`_relop_(`U`_sx))] -[visit_exp (`I32`_numtype, `GT`_relop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `GT`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I32`_numtype, `LE`_relop_(`S`_sx))] -[visit_exp (`I32`_numtype, `LE`_relop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `LE`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I32`_numtype, `LE`_relop_(`U`_sx))] -[visit_exp (`I32`_numtype, `LE`_relop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `LE`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I32`_numtype, `GE`_relop_(`S`_sx))] -[visit_exp (`I32`_numtype, `GE`_relop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `GE`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I32`_numtype, `GE`_relop_(`U`_sx))] -[visit_exp (`I32`_numtype, `GE`_relop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `GE`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I64`_numtype, `EQ`_relop_)] -[visit_exp (`I64`_numtype, `EQ`_relop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `EQ`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I64`_numtype, `NE`_relop_)] -[visit_exp (`I64`_numtype, `NE`_relop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `NE`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I64`_numtype, `LT`_relop_(`S`_sx))] -[visit_exp (`I64`_numtype, `LT`_relop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `LT`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I64`_numtype, `LT`_relop_(`U`_sx))] -[visit_exp (`I64`_numtype, `LT`_relop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `LT`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I64`_numtype, `GT`_relop_(`S`_sx))] -[visit_exp (`I64`_numtype, `GT`_relop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `GT`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I64`_numtype, `GT`_relop_(`U`_sx))] -[visit_exp (`I64`_numtype, `GT`_relop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `GT`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I64`_numtype, `LE`_relop_(`S`_sx))] -[visit_exp (`I64`_numtype, `LE`_relop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `LE`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I64`_numtype, `LE`_relop_(`U`_sx))] -[visit_exp (`I64`_numtype, `LE`_relop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `LE`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I64`_numtype, `GE`_relop_(`S`_sx))] -[visit_exp (`I64`_numtype, `GE`_relop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `GE`_relop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`I64`_numtype, `GE`_relop_(`U`_sx))] -[visit_exp (`I64`_numtype, `GE`_relop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `GE`_relop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`F32`_numtype, `EQ`_relop_)] -[visit_exp (`F32`_numtype, `EQ`_relop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `EQ`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`F32`_numtype, `NE`_relop_)] -[visit_exp (`F32`_numtype, `NE`_relop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `NE`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`F32`_numtype, `LT`_relop_)] -[visit_exp (`F32`_numtype, `LT`_relop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `LT`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`F32`_numtype, `GT`_relop_)] -[visit_exp (`F32`_numtype, `GT`_relop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `GT`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`F32`_numtype, `LE`_relop_)] -[visit_exp (`F32`_numtype, `LE`_relop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `LE`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`F32`_numtype, `GE`_relop_)] -[visit_exp (`F32`_numtype, `GE`_relop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `GE`_relop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`F64`_numtype, `EQ`_relop_)] -[visit_exp (`F64`_numtype, `EQ`_relop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `EQ`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`F64`_numtype, `NE`_relop_)] -[visit_exp (`F64`_numtype, `NE`_relop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `NE`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`F64`_numtype, `LT`_relop_)] -[visit_exp (`F64`_numtype, `LT`_relop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `LT`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`F64`_numtype, `GT`_relop_)] -[visit_exp (`F64`_numtype, `GT`_relop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `GT`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`F64`_numtype, `LE`_relop_)] -[visit_exp (`F64`_numtype, `LE`_relop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `LE`_relop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `RELOP`_instr(`F64`_numtype, `GE`_relop_)] -[visit_exp (`F64`_numtype, `GE`_relop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `GE`_relop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`I32`_numtype, `CLZ`_unop_)] -[visit_exp (`I32`_numtype, `CLZ`_unop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `CLZ`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`I32`_numtype, `CTZ`_unop_)] -[visit_exp (`I32`_numtype, `CTZ`_unop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `CTZ`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`I32`_numtype, `POPCNT`_unop_)] -[visit_exp (`I32`_numtype, `POPCNT`_unop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `POPCNT`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(8)))] -[visit_exp (`I32`_numtype, `EXTEND`_unop_(`%`_sz(8)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_unop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(16)))] -[visit_exp (`I32`_numtype, `EXTEND`_unop_(`%`_sz(16)))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_unop_(`%`_sz(16))] -[visit_exp (`%`_sz(16))] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`I64`_numtype, `CLZ`_unop_)] -[visit_exp (`I64`_numtype, `CLZ`_unop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `CLZ`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`I64`_numtype, `CTZ`_unop_)] -[visit_exp (`I64`_numtype, `CTZ`_unop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `CTZ`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`I64`_numtype, `POPCNT`_unop_)] -[visit_exp (`I64`_numtype, `POPCNT`_unop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `POPCNT`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(8)))] -[visit_exp (`I64`_numtype, `EXTEND`_unop_(`%`_sz(8)))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_unop_(`%`_sz(8))] -[visit_exp (`%`_sz(8))] -[visit_exp `%`_sz(8)] -[visit_exp (8)] -[visit_exp 8] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(16)))] -[visit_exp (`I64`_numtype, `EXTEND`_unop_(`%`_sz(16)))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_unop_(`%`_sz(16))] -[visit_exp (`%`_sz(16))] -[visit_exp `%`_sz(16)] -[visit_exp (16)] -[visit_exp 16] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(32)))] -[visit_exp (`I64`_numtype, `EXTEND`_unop_(`%`_sz(32)))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_unop_(`%`_sz(32))] -[visit_exp (`%`_sz(32))] -[visit_exp `%`_sz(32)] -[visit_exp (32)] -[visit_exp 32] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F32`_numtype, `ABS`_unop_)] -[visit_exp (`F32`_numtype, `ABS`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `ABS`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F32`_numtype, `NEG`_unop_)] -[visit_exp (`F32`_numtype, `NEG`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `NEG`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F32`_numtype, `SQRT`_unop_)] -[visit_exp (`F32`_numtype, `SQRT`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `SQRT`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F32`_numtype, `CEIL`_unop_)] -[visit_exp (`F32`_numtype, `CEIL`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `CEIL`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F32`_numtype, `FLOOR`_unop_)] -[visit_exp (`F32`_numtype, `FLOOR`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `FLOOR`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F32`_numtype, `TRUNC`_unop_)] -[visit_exp (`F32`_numtype, `TRUNC`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F32`_numtype, `NEAREST`_unop_)] -[visit_exp (`F32`_numtype, `NEAREST`_unop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `NEAREST`_unop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F64`_numtype, `ABS`_unop_)] -[visit_exp (`F64`_numtype, `ABS`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `ABS`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F64`_numtype, `NEG`_unop_)] -[visit_exp (`F64`_numtype, `NEG`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `NEG`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F64`_numtype, `SQRT`_unop_)] -[visit_exp (`F64`_numtype, `SQRT`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `SQRT`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F64`_numtype, `CEIL`_unop_)] -[visit_exp (`F64`_numtype, `CEIL`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `CEIL`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F64`_numtype, `FLOOR`_unop_)] -[visit_exp (`F64`_numtype, `FLOOR`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `FLOOR`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F64`_numtype, `TRUNC`_unop_)] -[visit_exp (`F64`_numtype, `TRUNC`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_unop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `UNOP`_instr(`F64`_numtype, `NEAREST`_unop_)] -[visit_exp (`F64`_numtype, `NEAREST`_unop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `NEAREST`_unop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `ADD`_binop_)] -[visit_exp (`I32`_numtype, `ADD`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `ADD`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `SUB`_binop_)] -[visit_exp (`I32`_numtype, `SUB`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `SUB`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `MUL`_binop_)] -[visit_exp (`I32`_numtype, `MUL`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `MUL`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`S`_sx))] -[visit_exp (`I32`_numtype, `DIV`_binop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `DIV`_binop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`U`_sx))] -[visit_exp (`I32`_numtype, `DIV`_binop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `DIV`_binop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `REM`_binop_(`S`_sx))] -[visit_exp (`I32`_numtype, `REM`_binop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `REM`_binop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `REM`_binop_(`U`_sx))] -[visit_exp (`I32`_numtype, `REM`_binop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `REM`_binop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `AND`_binop_)] -[visit_exp (`I32`_numtype, `AND`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `AND`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `OR`_binop_)] -[visit_exp (`I32`_numtype, `OR`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `OR`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `XOR`_binop_)] -[visit_exp (`I32`_numtype, `XOR`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `XOR`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `SHL`_binop_)] -[visit_exp (`I32`_numtype, `SHL`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `SHL`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`S`_sx))] -[visit_exp (`I32`_numtype, `SHR`_binop_(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `SHR`_binop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`U`_sx))] -[visit_exp (`I32`_numtype, `SHR`_binop_(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `SHR`_binop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `ROTL`_binop_)] -[visit_exp (`I32`_numtype, `ROTL`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `ROTL`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I32`_numtype, `ROTR`_binop_)] -[visit_exp (`I32`_numtype, `ROTR`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `ROTR`_binop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `ADD`_binop_)] -[visit_exp (`I64`_numtype, `ADD`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `ADD`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `SUB`_binop_)] -[visit_exp (`I64`_numtype, `SUB`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `SUB`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `MUL`_binop_)] -[visit_exp (`I64`_numtype, `MUL`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `MUL`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`S`_sx))] -[visit_exp (`I64`_numtype, `DIV`_binop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `DIV`_binop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`U`_sx))] -[visit_exp (`I64`_numtype, `DIV`_binop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `DIV`_binop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `REM`_binop_(`S`_sx))] -[visit_exp (`I64`_numtype, `REM`_binop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `REM`_binop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `REM`_binop_(`U`_sx))] -[visit_exp (`I64`_numtype, `REM`_binop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `REM`_binop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `AND`_binop_)] -[visit_exp (`I64`_numtype, `AND`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `AND`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `OR`_binop_)] -[visit_exp (`I64`_numtype, `OR`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `OR`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `XOR`_binop_)] -[visit_exp (`I64`_numtype, `XOR`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `XOR`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `SHL`_binop_)] -[visit_exp (`I64`_numtype, `SHL`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `SHL`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`S`_sx))] -[visit_exp (`I64`_numtype, `SHR`_binop_(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `SHR`_binop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`U`_sx))] -[visit_exp (`I64`_numtype, `SHR`_binop_(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `SHR`_binop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `ROTL`_binop_)] -[visit_exp (`I64`_numtype, `ROTL`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `ROTL`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`I64`_numtype, `ROTR`_binop_)] -[visit_exp (`I64`_numtype, `ROTR`_binop_)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `ROTR`_binop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F32`_numtype, `ADD`_binop_)] -[visit_exp (`F32`_numtype, `ADD`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `ADD`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F32`_numtype, `SUB`_binop_)] -[visit_exp (`F32`_numtype, `SUB`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `SUB`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F32`_numtype, `MUL`_binop_)] -[visit_exp (`F32`_numtype, `MUL`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `MUL`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F32`_numtype, `DIV`_binop_)] -[visit_exp (`F32`_numtype, `DIV`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `DIV`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F32`_numtype, `MIN`_binop_)] -[visit_exp (`F32`_numtype, `MIN`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `MIN`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F32`_numtype, `MAX`_binop_)] -[visit_exp (`F32`_numtype, `MAX`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `MAX`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F32`_numtype, `COPYSIGN`_binop_)] -[visit_exp (`F32`_numtype, `COPYSIGN`_binop_)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `COPYSIGN`_binop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F64`_numtype, `ADD`_binop_)] -[visit_exp (`F64`_numtype, `ADD`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `ADD`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F64`_numtype, `SUB`_binop_)] -[visit_exp (`F64`_numtype, `SUB`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `SUB`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F64`_numtype, `MUL`_binop_)] -[visit_exp (`F64`_numtype, `MUL`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `MUL`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F64`_numtype, `DIV`_binop_)] -[visit_exp (`F64`_numtype, `DIV`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `DIV`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F64`_numtype, `MIN`_binop_)] -[visit_exp (`F64`_numtype, `MIN`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `MIN`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F64`_numtype, `MAX`_binop_)] -[visit_exp (`F64`_numtype, `MAX`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `MAX`_binop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `BINOP`_instr(`F64`_numtype, `COPYSIGN`_binop_)] -[visit_exp (`F64`_numtype, `COPYSIGN`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `COPYSIGN`_binop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] -[visit_exp (`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `WRAP`_cvtop__] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp (`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp (`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__(`S`_sx))] -[visit_exp (`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__(`U`_sx))] -[visit_exp (`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `EXTEND`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp (`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp (`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx))] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `TRUNC_SAT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] -[visit_exp (`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `DEMOTE`_cvtop__] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp (`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp (`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] -[visit_exp (`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `PROMOTE`_cvtop__] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp (`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx))] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp (`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx))] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `CONVERT`_cvtop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp (`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `REINTERPRET`_cvtop__] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp (`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `REINTERPRET`_cvtop__] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp (`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp `F32`_numtype] -[visit_exp ()] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `REINTERPRET`_cvtop__] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp (`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `I64`_numtype] -[visit_exp ()] -[visit_exp `REINTERPRET`_cvtop__] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I c -dims \ I = c -[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`})))] -[visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`})))] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`}))] -[visit_exp 128] -[visit_exp $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`})] -[visit_exp $ibytes_(8, c)*{c <- `c*`}] -[scope_enter c] -[visit_exp $ibytes_(8, c)] -[visit_exp 8] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp 16] -[check_dims] I c -dims \ I = c -[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`})))] -[visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`})))] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`}))] -[visit_exp 128] -[visit_exp $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`})] -[visit_exp $ibytes_(16, c)*{c <- `c*`}] -[scope_enter c] -[visit_exp $ibytes_(16, c)] -[visit_exp 16] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp 8] -[check_dims] I c -dims \ I = c -[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`})))] -[visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`})))] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`}))] -[visit_exp 128] -[visit_exp $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`})] -[visit_exp $ibytes_(32, c)*{c <- `c*`}] -[scope_enter c] -[visit_exp $ibytes_(32, c)] -[visit_exp 32] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp 4] -[check_dims] I c -dims \ I = c -[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`})))] -[visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`})))] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`}))] -[visit_exp 128] -[visit_exp $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`})] -[visit_exp $ibytes_(64, c)*{c <- `c*`}] -[scope_enter c] -[visit_exp $ibytes_(64, c)] -[visit_exp 64] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp 2] -[check_dims] I c -dims \ I = c -[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`})))] -[visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`})))] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`}))] -[visit_exp 128] -[visit_exp $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`})] -[visit_exp $fbytes_(32, c)*{c <- `c*`}] -[scope_enter c] -[visit_exp $fbytes_(32, c)] -[visit_exp 32] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp 4] -[check_dims] I c -dims \ I = c -[visit_exp `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`})))] -[visit_exp (`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`})))] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`}))] -[visit_exp 128] -[visit_exp $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`})] -[visit_exp $fbytes_(64, c)*{c <- `c*`}] -[scope_enter c] -[visit_exp $fbytes_(64, c)] -[visit_exp 64] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] no dims -[visit_id c*] -[visit_exp c*{c <- `c*`}] -[scope_enter c] -[visit_exp c] -[visit_id c] not free -[visit_id c] not free -[scope_exit c] -[visit_exp `c*`] -[visit_id c*] not free -[visit_id c*] no dims -[visit_exp 2] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I i -dims \ I = i -[visit_exp `VSHUFFLE`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), i*{i <- `i*`})] -[visit_exp (`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), i*{i <- `i*`})] -[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp i*{i <- `i*`}] -[scope_enter i] -[visit_exp i] -[visit_id i] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] no dims -[visit_id i*] -[visit_exp i*{i <- `i*`}] -[scope_enter i] -[visit_exp i] -[visit_id i] not free -[visit_id i] not free -[scope_exit i] -[visit_exp `i*`] -[visit_id i*] not free -[visit_id i*] no dims -[visit_exp 16] -[check_dims] I -dims \ I = -[visit_exp `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SWIZZLE`_vswizzlop_)] -[visit_exp (`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SWIZZLE`_vswizzlop_)] -[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SWIZZLE`_vswizzlop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_SWIZZLE`_vswizzlop_)] -[visit_exp (`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_SWIZZLE`_vswizzlop_)] -[visit_exp `%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `RELAXED_SWIZZLE`_vswizzlop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VSPLAT`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[check_dims] I -dims \ I = -[visit_exp `VSPLAT`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[check_dims] I -dims \ I = -[visit_exp `VSPLAT`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[check_dims] I -dims \ I = -[visit_exp `VSPLAT`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[check_dims] I -dims \ I = -[visit_exp `VSPLAT`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[check_dims] I -dims \ I = -[visit_exp `VSPLAT`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I i -dims \ I = i -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`S`_sx), i)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`S`_sx), i)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp ?(`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] I i -dims \ I = i -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`U`_sx), i)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`U`_sx), i)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp ?(`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] I i -dims \ I = i -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`S`_sx), i)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`S`_sx), i)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp ?(`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] I i -dims \ I = i -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`U`_sx), i)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`U`_sx), i)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp ?(`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] I i -dims \ I = i -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), ?(), i)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), ?(), i)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp ?()] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] I i -dims \ I = i -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), ?(), i)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), ?(), i)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp ?()] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] I i -dims \ I = i -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), ?(), i)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), ?(), i)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp ?()] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] I i -dims \ I = i -[visit_exp `VEXTRACT_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), ?(), i)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), ?(), i)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp ?()] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] I i -dims \ I = i -[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), i)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), i)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] I i -dims \ I = i -[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), i)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), i)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] I i -dims \ I = i -[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), i)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), i)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] I i -dims \ I = i -[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), i)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), i)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] I i -dims \ I = i -[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), i)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), i)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[check_dims] I i -dims \ I = i -[visit_exp `VREPLACE_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), i)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), i)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp i] -[visit_id i] -[visit_exp i] -[visit_id i] not free -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop)] -[visit_exp (`V128`_vectype, `ANY_TRUE`_vvtestop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `ANY_TRUE`_vvtestop] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VTESTOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ALL_TRUE`_vtestop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `ALL_TRUE`_vtestop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VTESTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ALL_TRUE`_vtestop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `ALL_TRUE`_vtestop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VTESTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ALL_TRUE`_vtestop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `ALL_TRUE`_vtestop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VTESTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ALL_TRUE`_vtestop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ALL_TRUE`_vtestop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `ALL_TRUE`_vtestop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EQ`_vrelop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NE`_vrelop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NE`_vrelop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `LT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `LT`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `GT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `GT`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `LE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `LE`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `GE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `GE`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EQ`_vrelop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NE`_vrelop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NE`_vrelop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `LT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `LT`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `GT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `GT`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `LE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `LE`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `GE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `GE`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `LT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `LT`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `GT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `GT`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `LE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `LE`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `GE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `GE`_vrelop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `LT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GT`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GT`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `GT`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `LE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GE`_vrelop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GE`_vrelop_(`S`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `GE`_vrelop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NE`_vrelop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LT`_vrelop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LT`_vrelop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `LT`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GT`_vrelop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GT`_vrelop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `GT`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LE`_vrelop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LE`_vrelop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `LE`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GE`_vrelop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GE`_vrelop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `GE`_vrelop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `EQ`_vrelop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `EQ`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NE`_vrelop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `NE`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LT`_vrelop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LT`_vrelop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `LT`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GT`_vrelop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GT`_vrelop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `GT`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LE`_vrelop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LE`_vrelop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `LE`_vrelop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GE`_vrelop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GE`_vrelop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `GE`_vrelop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VVUNOP`_instr(`V128`_vectype, `NOT`_vvunop)] -[visit_exp (`V128`_vectype, `NOT`_vvunop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `NOT`_vvunop] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ABS`_vunop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ABS`_vunop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NEG`_vunop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NEG`_vunop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `POPCNT`_vunop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `POPCNT`_vunop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `POPCNT`_vunop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ABS`_vunop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ABS`_vunop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NEG`_vunop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NEG`_vunop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ABS`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEG`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SQRT`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SQRT`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `SQRT`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `CEIL`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `CEIL`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `CEIL`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `FLOOR`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `FLOOR`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `FLOOR`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `TRUNC`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEAREST`_vunop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEAREST`_vunop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `NEAREST`_vunop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ABS`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `ABS`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEG`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `NEG`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SQRT`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SQRT`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `SQRT`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `CEIL`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `CEIL`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `CEIL`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `FLOOR`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `FLOOR`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `FLOOR`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `TRUNC`_vunop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEAREST`_vunop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEAREST`_vunop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `NEAREST`_vunop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VVBINOP`_instr(`V128`_vectype, `AND`_vvbinop)] -[visit_exp (`V128`_vectype, `AND`_vvbinop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `AND`_vvbinop] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VVBINOP`_instr(`V128`_vectype, `ANDNOT`_vvbinop)] -[visit_exp (`V128`_vectype, `ANDNOT`_vvbinop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `ANDNOT`_vvbinop] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VVBINOP`_instr(`V128`_vectype, `OR`_vvbinop)] -[visit_exp (`V128`_vectype, `OR`_vvbinop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `OR`_vvbinop] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VVBINOP`_instr(`V128`_vectype, `XOR`_vvbinop)] -[visit_exp (`V128`_vectype, `XOR`_vvbinop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `XOR`_vvbinop] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD`_vbinop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `ADD_SAT`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `ADD_SAT`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB`_vbinop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SUB_SAT`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SUB_SAT`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `MIN`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `MIN`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `MAX`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `MAX`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `AVGRU`_vbinop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `AVGRU`_vbinop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `AVGRU`_vbinop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD`_vbinop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `ADD_SAT`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `ADD_SAT`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB`_vbinop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `SUB_SAT`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `SUB_SAT`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MUL`_vbinop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `MUL`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `MIN`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `MIN`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `MAX`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `MAX`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `AVGRU`_vbinop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `AVGRU`_vbinop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `AVGRU`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `Q15MULR_SATS`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `RELAXED_Q15MULRS`_vbinop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MUL`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MIN`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MIN`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MAX`_vbinop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MAX`_vbinop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `MUL`_vbinop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MUL`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `DIV`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `DIV`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `DIV`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MIN`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MIN`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MIN`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MAX`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MAX`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `MAX`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMIN`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMIN`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `PMIN`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMAX`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMAX`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `PMAX`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MIN`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MIN`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_MIN`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MAX`_vbinop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MAX`_vbinop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_MAX`_vbinop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ADD`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `ADD`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SUB`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `SUB`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MUL`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `MUL`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DIV`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DIV`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `DIV`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MIN`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MIN`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `MIN`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MAX`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MAX`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `MAX`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMIN`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMIN`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `PMIN`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMAX`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMAX`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `PMAX`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MIN`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MIN`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_MIN`_vbinop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MAX`_vbinop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MAX`_vbinop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_MAX`_vbinop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VVTERNOP`_instr(`V128`_vectype, `BITSELECT`_vvternop)] -[visit_exp (`V128`_vectype, `BITSELECT`_vvternop)] -[visit_exp `V128`_vectype] -[visit_exp ()] -[visit_exp `BITSELECT`_vvternop] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `RELAXED_LANESELECT`_vternop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `RELAXED_LANESELECT`_vternop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_LANESELECT`_vternop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `RELAXED_LANESELECT`_vternop_)] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_LANESELECT`_vternop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MADD`_vternop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MADD`_vternop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_MADD`_vternop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_NMADD`_vternop_)] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_NMADD`_vternop_)] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_NMADD`_vternop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MADD`_vternop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MADD`_vternop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_MADD`_vternop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_NMADD`_vternop_)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_NMADD`_vternop_)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_NMADD`_vternop_] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHL`_vshiftop_)] -[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SHL`_vshiftop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SHR`_vshiftop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `SHR`_vshiftop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHL`_vshiftop_)] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `SHL`_vshiftop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `SHR`_vshiftop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `SHR`_vshiftop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHL`_vshiftop_)] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `SHL`_vshiftop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `SHR`_vshiftop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `SHR`_vshiftop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHL`_vshiftop_)] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHL`_vshiftop_)] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `SHL`_vshiftop_] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `SHR`_vshiftop_(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `SHR`_vshiftop_(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))))] -[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))))] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `S`_sx)] -[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `S`_sx)] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `U`_sx)] -[visit_exp (`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `U`_sx)] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `S`_sx)] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `S`_sx)] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `U`_sx)] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `U`_sx)] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)] -[visit_exp (`LOW`_half, `S`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)] -[visit_exp (`LOW`_half, `U`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)] -[visit_exp (`HIGH`_half, `S`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)] -[visit_exp (`HIGH`_half, `U`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)] -[visit_exp (`LOW`_half, `S`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)] -[visit_exp (`LOW`_half, `U`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)] -[visit_exp (`HIGH`_half, `S`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)] -[visit_exp (`HIGH`_half, `U`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?()))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?()))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `TRUNC_SAT`_vcvtop__(`S`_sx, ?())] -[visit_exp (`S`_sx, ?())] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp ?()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?()))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?()))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `TRUNC_SAT`_vcvtop__(`U`_sx, ?())] -[visit_exp (`U`_sx, ?())] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp ?()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero))] -[visit_exp (`S`_sx, ?(`ZERO`_zero))] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp ?(`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero))] -[visit_exp (`U`_sx, ?(`ZERO`_zero))] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp ?(`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?()))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?()))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?())] -[visit_exp (`S`_sx, ?())] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp ?()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?()))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?()))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?())] -[visit_exp (`U`_sx, ?())] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp ?()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero))] -[visit_exp (`S`_sx, ?(`ZERO`_zero))] -[visit_exp `S`_sx] -[visit_exp ()] -[visit_exp ?(`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero))] -[visit_exp (`U`_sx, ?(`ZERO`_zero))] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_exp ?(`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)] -[visit_exp (`LOW`_half, `S`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)] -[visit_exp (`LOW`_half, `U`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)] -[visit_exp (`HIGH`_half, `S`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)] -[visit_exp (`HIGH`_half, `U`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DEMOTE`_vcvtop__(`ZERO`_zero))] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DEMOTE`_vcvtop__(`ZERO`_zero))] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `DEMOTE`_vcvtop__(`ZERO`_zero)] -[visit_exp (`ZERO`_zero)] -[visit_exp `ZERO`_zero] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `S`_sx))] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `S`_sx))] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `CONVERT`_vcvtop__(?(), `S`_sx)] -[visit_exp (?(), `S`_sx)] -[visit_exp ?()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `U`_sx))] -[visit_exp (`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `U`_sx))] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `CONVERT`_vcvtop__(?(), `U`_sx)] -[visit_exp (?(), `U`_sx)] -[visit_exp ?()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__)] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__)] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`F32`_lanetype, `%`_dim(4))] -[visit_exp (`F32`_lanetype, `%`_dim(4))] -[visit_exp `F32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `PROMOTELOW`_vcvtop__] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx))] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx))] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx)] -[visit_exp (?(`LOW`_half), `S`_sx)] -[visit_exp ?(`LOW`_half)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx))] -[visit_exp (`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx))] -[visit_exp `%X%`_shape(`F64`_lanetype, `%`_dim(2))] -[visit_exp (`F64`_lanetype, `%`_dim(2))] -[visit_exp `F64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx)] -[visit_exp (?(`LOW`_half), `U`_sx)] -[visit_exp ?(`LOW`_half)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTADD_PAIRWISE`_vextunop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTADD_PAIRWISE`_vextunop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTADD_PAIRWISE`_vextunop__(`S`_sx)] -[visit_exp (`S`_sx)] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTADD_PAIRWISE`_vextunop__(`U`_sx)] -[visit_exp (`U`_sx)] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)] -[visit_exp (`LOW`_half, `S`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)] -[visit_exp (`LOW`_half, `U`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)] -[visit_exp (`HIGH`_half, `S`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp (`%X%`_shape(`I8`_lanetype, `%`_dim(16)))] -[visit_exp `%X%`_shape(`I8`_lanetype, `%`_dim(16))] -[visit_exp (`I8`_lanetype, `%`_dim(16))] -[visit_exp `I8`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(16)] -[visit_exp (16)] -[visit_exp 16] -[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)] -[visit_exp (`HIGH`_half, `U`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)] -[visit_exp (`LOW`_half, `S`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)] -[visit_exp (`LOW`_half, `U`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)] -[visit_exp (`HIGH`_half, `S`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)] -[visit_exp (`HIGH`_half, `U`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `DOTS`_vextbinop__)] -[visit_exp (`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `DOTS`_vextbinop__)] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp (`%X%`_shape(`I16`_lanetype, `%`_dim(8)))] -[visit_exp `%X%`_shape(`I16`_lanetype, `%`_dim(8))] -[visit_exp (`I16`_lanetype, `%`_dim(8))] -[visit_exp `I16`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(8)] -[visit_exp (8)] -[visit_exp 8] -[visit_exp `DOTS`_vextbinop__] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)] -[visit_exp (`LOW`_half, `S`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)] -[visit_exp (`LOW`_half, `U`_sx)] -[visit_exp `LOW`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)] -[visit_exp (`HIGH`_half, `S`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `S`_sx] -[visit_exp ()] -[check_dims] I -dims \ I = -[visit_exp `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] -[visit_exp (`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx))] -[visit_exp `%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp (`%X%`_shape(`I64`_lanetype, `%`_dim(2)))] -[visit_exp `%X%`_shape(`I64`_lanetype, `%`_dim(2))] -[visit_exp (`I64`_lanetype, `%`_dim(2))] -[visit_exp `I64`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(2)] -[visit_exp (2)] -[visit_exp 2] -[visit_exp `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp (`%X%`_shape(`I32`_lanetype, `%`_dim(4)))] -[visit_exp `%X%`_shape(`I32`_lanetype, `%`_dim(4))] -[visit_exp (`I32`_lanetype, `%`_dim(4))] -[visit_exp `I32`_lanetype] -[visit_exp ()] -[visit_exp `%`_dim(4)] -[visit_exp (4)] -[visit_exp 4] -[visit_exp `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)] -[visit_exp (`HIGH`_half, `U`_sx)] -[visit_exp `HIGH`_half] -[visit_exp ()] -[visit_exp `U`_sx] -[visit_exp ()] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I in -dims \ I = in -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] no dims -[visit_id in*] -[visit_exp in*{in <- `in*`}] -[scope_enter in] -[visit_exp in] -[visit_id in] not free -[visit_id in] not free -[scope_exit in] -[visit_exp `in*`] -[visit_id in*] not free -[visit_id in*] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I _ -[check_dims] I I' I'' i n qt st -dims \ I = I', I'', i, n, qt, st -[visit_exp (`TYPE`_type(qt), I' +++ I'')] -[visit_exp `TYPE`_type(qt)] -[visit_exp (qt)] -[visit_exp qt] -[visit_id qt] -[visit_exp I' +++ I''] -[visit_exp I'] -[visit_id I'] -[visit_exp I''] -[visit_id I''] -[visit_exp (qt, I')] -[visit_exp qt] -[visit_id qt] not free -[visit_exp I'] -[visit_id I'] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp (qt = `REC`_rectype(`%`_list(st^n{st <- `st*`})))] -[visit_exp qt] -[visit_id qt] not free -[visit_exp `REC`_rectype(`%`_list(st^n{st <- `st*`}))] -[visit_exp (`%`_list(st^n{st <- `st*`}))] -[visit_exp `%`_list(st^n{st <- `st*`})] -[visit_exp (st^n{st <- `st*`})] -[visit_exp st^n{st <- `st*`}] -[scope_enter st] -[visit_exp st] -[visit_id st] not free -[visit_id st] not free -[scope_exit st] -[visit_exp n] -[visit_id n] -[visit_exp `st*`] -[visit_id st*] no dims -[visit_id st*] -[visit_exp (I'' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` ?(`_DEF`_deftype(qt, i))^(i -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] -DecD dots : () -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I -dims \ I = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I -dims \ I = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I -dims \ I = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] I -dims \ I = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I -dims \ I = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I -dims \ I = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I -dims \ I = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I -dims \ I = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I id id' -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp id'] -[visit_id id'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TAGS`_I)))] -[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp id'] -[visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TAGS`_I))] -[visit_exp (id?{id <- `id?`} = ?())] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp ?()] -[visit_exp ~ (?(id') <- I.`TAGS`_I)] -[visit_exp (?(id') <- I.`TAGS`_I)] -[visit_exp ?(id')] -[visit_exp id'] -[visit_id id'] not free -[visit_exp I.`TAGS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I id id' -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp id'] -[visit_id id'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`GLOBALS`_I)))] -[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp id'] -[visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`GLOBALS`_I))] -[visit_exp (id?{id <- `id?`} = ?())] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp ?()] -[visit_exp ~ (?(id') <- I.`GLOBALS`_I)] -[visit_exp (?(id') <- I.`GLOBALS`_I)] -[visit_exp ?(id')] -[visit_exp id'] -[visit_id id'] not free -[visit_exp I.`GLOBALS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I id id' -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp id'] -[visit_id id'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I)))] -[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp id'] -[visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I))] -[visit_exp (id?{id <- `id?`} = ?())] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp ?()] -[visit_exp ~ (?(id') <- I.`MEMS`_I)] -[visit_exp (?(id') <- I.`MEMS`_I)] -[visit_exp ?(id')] -[visit_exp id'] -[visit_id id'] not free -[visit_exp I.`MEMS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I id id' -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp id'] -[visit_id id'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I)))] -[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp id'] -[visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I))] -[visit_exp (id?{id <- `id?`} = ?())] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp ?()] -[visit_exp ~ (?(id') <- I.`TABLES`_I)] -[visit_exp (?(id') <- I.`TABLES`_I)] -[visit_exp ?(id')] -[visit_exp id'] -[visit_id id'] not free -[visit_exp I.`TABLES`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I id id' -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp id'] -[visit_id id'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`FUNCS`_I)))] -[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp id'] -[visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`FUNCS`_I))] -[visit_exp (id?{id <- `id?`} = ?())] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp ?()] -[visit_exp ~ (?(id') <- I.`FUNCS`_I)] -[visit_exp (?(id') <- I.`FUNCS`_I)] -[visit_exp ?(id')] -[visit_exp id'] -[visit_id id'] not free -[visit_exp I.`FUNCS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I at at' b id id' n -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp at?{at <- `at?`}] -[scope_enter at] -[visit_exp at] -[visit_id at] not free -[visit_id at] not free -[scope_exit at] -[visit_exp `at?`] -[visit_id at?] no dims -[visit_id at?] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] no dims -[visit_id b*] -[visit_exp id'] -[visit_id id'] -[visit_exp at?{at <- `at?`}] -[scope_enter at] -[visit_exp at] -[visit_id at] not free -[visit_id at] not free -[scope_exit at] -[visit_exp `at?`] -[visit_id at?] not free -[visit_id at?] no dims -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp id'] -[visit_id id'] not free -[visit_exp at'] -[visit_id at'] -[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I)))] -[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp id'] -[visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`MEMS`_I))] -[visit_exp (id?{id <- `id?`} = ?())] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp ?()] -[visit_exp ~ (?(id') <- I.`MEMS`_I)] -[visit_exp (?(id') <- I.`MEMS`_I)] -[visit_exp ?(id')] -[visit_exp id'] -[visit_id id'] not free -[visit_exp I.`MEMS`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ((at?{at <- `at?`} = ?(at')) \/ ((at?{at <- `at?`} = ?()) /\ (at' = `I32`_addrtype)))] -[visit_exp (at?{at <- `at?`} = ?(at'))] -[visit_exp at?{at <- `at?`}] -[scope_enter at] -[visit_exp at] -[visit_id at] not free -[visit_id at] not free -[scope_exit at] -[visit_exp `at?`] -[visit_id at?] not free -[visit_id at?] no dims -[visit_exp ?(at')] -[visit_exp at'] -[visit_id at'] not free -[visit_exp ((at?{at <- `at?`} = ?()) /\ (at' = `I32`_addrtype))] -[visit_exp (at?{at <- `at?`} = ?())] -[visit_exp at?{at <- `at?`}] -[scope_enter at] -[visit_exp at] -[visit_id at] not free -[visit_id at] not free -[scope_exit at] -[visit_exp `at?`] -[visit_id at?] not free -[visit_id at?] no dims -[visit_exp ?()] -[visit_exp (at' = `I32`_addrtype)] -[visit_exp at'] -[visit_id at'] not free -[visit_exp `I32`_addrtype] -[visit_exp ()] -[visit_exp ((n : nat <:> int) = $ceilz((((|b*{b <- `b*`}| : nat <:> rat) / (64 : nat <:> rat)) * ($Ki : nat <:> rat))))] -[visit_exp (n : nat <:> int)] -[visit_exp n] -[visit_id n] not free -[visit_exp $ceilz((((|b*{b <- `b*`}| : nat <:> rat) / (64 : nat <:> rat)) * ($Ki : nat <:> rat)))] -[visit_exp (((|b*{b <- `b*`}| : nat <:> rat) / (64 : nat <:> rat)) * ($Ki : nat <:> rat))] -[visit_exp ((|b*{b <- `b*`}| : nat <:> rat) / (64 : nat <:> rat))] -[visit_exp (|b*{b <- `b*`}| : nat <:> rat)] -[visit_exp |b*{b <- `b*`}|] -[visit_exp b*{b <- `b*`}] -[scope_enter b] -[visit_exp b] -[visit_id b] not free -[visit_id b] not free -[scope_exit b] -[visit_exp `b*`] -[visit_id b*] not free -[visit_id b*] no dims -[visit_exp (64 : nat <:> rat)] -[visit_exp 64] -[visit_exp ($Ki : nat <:> rat)] -[visit_exp $Ki] -[visit_id I] not free -ps' = (I : I) -[check_dims] I -[check_dims] I at at' e id id' n rt -[visit_exp ?(`%`_name(lift(id?{id <- `id?`})))] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] no dims -[visit_id id?] -[visit_exp at?{at <- `at?`}] -[scope_enter at] -[visit_exp at] -[visit_id at] not free -[visit_id at] not free -[scope_exit at] -[visit_exp `at?`] -[visit_id at?] no dims -[visit_id at?] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp (rt, e*{e <- `e*`})] -[visit_exp rt] -[visit_id rt] -[visit_exp e*{e <- `e*`}] -[scope_enter e] -[visit_exp e] -[visit_id e] not free -[visit_id e] not free -[scope_exit e] -[visit_exp `e*`] -[visit_id e*] no dims -[visit_id e*] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp id'] -[visit_id id'] -[visit_exp at?{at <- `at?`}] -[scope_enter at] -[visit_exp at] -[visit_id at] not free -[visit_id at] not free -[scope_exit at] -[visit_exp `at?`] -[visit_id at?] not free -[visit_id at?] no dims -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] -[visit_exp `%`_u64(n)] -[visit_exp (n)] -[visit_exp n] -[visit_id n] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp id'] -[visit_id id'] not free -[visit_exp at'] -[visit_id at'] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ((`%`_name(lift(id?{id <- `id?`})) = id') \/ ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I)))] -[visit_exp (`%`_name(lift(id?{id <- `id?`})) = id')] -[visit_exp `%`_name(lift(id?{id <- `id?`}))] -[visit_exp (lift(id?{id <- `id?`}))] -[visit_exp lift(id?{id <- `id?`})] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp id'] -[visit_id id'] not free -[visit_exp ((id?{id <- `id?`} = ?()) /\ ~ (?(id') <- I.`TABLES`_I))] -[visit_exp (id?{id <- `id?`} = ?())] -[visit_exp id?{id <- `id?`}] -[scope_enter id] -[visit_exp id] -[visit_id id] not free -[visit_id id] not free -[scope_exit id] -[visit_exp `id?`] -[visit_id id?] not free -[visit_id id?] no dims -[visit_exp ?()] -[visit_exp ~ (?(id') <- I.`TABLES`_I)] -[visit_exp (?(id') <- I.`TABLES`_I)] -[visit_exp ?(id')] -[visit_exp id'] -[visit_id id'] not free -[visit_exp I.`TABLES`_I] -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_exp ((at?{at <- `at?`} = ?(at')) \/ ((at?{at <- `at?`} = ?()) /\ (at' = `I32`_addrtype)))] -[visit_exp (at?{at <- `at?`} = ?(at'))] -[visit_exp at?{at <- `at?`}] -[scope_enter at] -[visit_exp at] -[visit_id at] not free -[visit_id at] not free -[scope_exit at] -[visit_exp `at?`] -[visit_id at?] not free -[visit_id at?] no dims -[visit_exp ?(at')] -[visit_exp at'] -[visit_id at'] not free -[visit_exp ((at?{at <- `at?`} = ?()) /\ (at' = `I32`_addrtype))] -[visit_exp (at?{at <- `at?`} = ?())] -[visit_exp at?{at <- `at?`}] -[scope_enter at] -[visit_exp at] -[visit_id at] not free -[visit_id at] not free -[scope_exit at] -[visit_exp `at?`] -[visit_id at?] not free -[visit_id at?] no dims -[visit_exp ?()] -[visit_exp (at' = `I32`_addrtype)] -[visit_exp at'] -[visit_id at'] not free -[visit_exp `I32`_addrtype] -[visit_exp ()] -[visit_exp (n = |e*{e <- `e*`}|)] -[visit_exp n] -[visit_id n] not free -[visit_exp |e*{e <- `e*`}|] -[visit_exp e*{e <- `e*`}] -[scope_enter e] -[visit_exp e] -[visit_id e] not free -[visit_id e] not free -[scope_exit e] -[visit_exp `e*`] -[visit_id e*] not free -[visit_id e*] no dims -[visit_id I] not free -[check_dims] -[check_dims] _ -DecD typesd(decl*) : type* -[visit_id _] not free -[check_dims] _ -DecD importsd(decl*) : import* -[visit_id _] not free -[check_dims] _ -DecD tagsd(decl*) : tag* -[visit_id _] not free -[check_dims] _ -DecD globalsd(decl*) : global* -[visit_id _] not free -[check_dims] _ -DecD memsd(decl*) : mem* -[visit_id _] not free -[check_dims] _ -DecD tablesd(decl*) : table* -[visit_id _] not free -[check_dims] _ -DecD funcsd(decl*) : func* -[visit_id _] not free -[check_dims] _ -DecD datasd(decl*) : data* -[visit_id _] not free -[check_dims] _ -DecD elemsd(decl*) : elem* -[visit_id _] not free -[check_dims] _ -DecD startsd(decl*) : start* -[visit_id _] not free -[check_dims] _ -DecD exportsd(decl*) : export* -[visit_id _] not free -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $typesd([]) = [] -[check_dims] decl' type -[visit_exp [(type : type <: decl)] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [(type : type <: decl)]] -[visit_exp (type : type <: decl)] -[visit_exp type] -[visit_id type] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp [type] ++ $typesd(decl'*{decl' <- `decl'*`})] -[visit_exp [type]] -[visit_exp type] -[visit_id type] not free -[visit_exp $typesd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $typesd{type : type, `decl'*` : decl*}([(type : type <: decl)] ++ decl'*{decl' <- `decl'*`}) = [type] ++ $typesd(decl'*{decl' <- `decl'*`}) -[check_dims] decl decl' -[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [decl]] -[visit_exp decl] -[visit_id decl] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp $typesd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $typesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $typesd(decl'*{decl' <- `decl'*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $importsd([]) = [] -[check_dims] decl' import -[visit_exp [(import : import <: decl)] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [(import : import <: decl)]] -[visit_exp (import : import <: decl)] -[visit_exp import] -[visit_id import] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp [import] ++ $importsd(decl'*{decl' <- `decl'*`})] -[visit_exp [import]] -[visit_exp import] -[visit_id import] not free -[visit_exp $importsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $importsd{import : import, `decl'*` : decl*}([(import : import <: decl)] ++ decl'*{decl' <- `decl'*`}) = [import] ++ $importsd(decl'*{decl' <- `decl'*`}) -[check_dims] decl decl' -[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [decl]] -[visit_exp decl] -[visit_id decl] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp $importsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $importsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $importsd(decl'*{decl' <- `decl'*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $tagsd([]) = [] -[check_dims] decl' tag -[visit_exp [(tag : tag <: decl)] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [(tag : tag <: decl)]] -[visit_exp (tag : tag <: decl)] -[visit_exp tag] -[visit_id tag] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp [tag] ++ $tagsd(decl'*{decl' <- `decl'*`})] -[visit_exp [tag]] -[visit_exp tag] -[visit_id tag] not free -[visit_exp $tagsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $tagsd{tag : tag, `decl'*` : decl*}([(tag : tag <: decl)] ++ decl'*{decl' <- `decl'*`}) = [tag] ++ $tagsd(decl'*{decl' <- `decl'*`}) -[check_dims] decl decl' -[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [decl]] -[visit_exp decl] -[visit_id decl] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp $tagsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $tagsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tagsd(decl'*{decl' <- `decl'*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $globalsd([]) = [] -[check_dims] decl' global -[visit_exp [(global : global <: decl)] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [(global : global <: decl)]] -[visit_exp (global : global <: decl)] -[visit_exp global] -[visit_id global] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp [global] ++ $globalsd(decl'*{decl' <- `decl'*`})] -[visit_exp [global]] -[visit_exp global] -[visit_id global] not free -[visit_exp $globalsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $globalsd{global : global, `decl'*` : decl*}([(global : global <: decl)] ++ decl'*{decl' <- `decl'*`}) = [global] ++ $globalsd(decl'*{decl' <- `decl'*`}) -[check_dims] decl decl' -[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [decl]] -[visit_exp decl] -[visit_id decl] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp $globalsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $globalsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $globalsd(decl'*{decl' <- `decl'*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $memsd([]) = [] -[check_dims] decl' mem -[visit_exp [(mem : mem <: decl)] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [(mem : mem <: decl)]] -[visit_exp (mem : mem <: decl)] -[visit_exp mem] -[visit_id mem] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp [mem] ++ $memsd(decl'*{decl' <- `decl'*`})] -[visit_exp [mem]] -[visit_exp mem] -[visit_id mem] not free -[visit_exp $memsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $memsd{mem : mem, `decl'*` : decl*}([(mem : mem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [mem] ++ $memsd(decl'*{decl' <- `decl'*`}) -[check_dims] decl decl' -[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [decl]] -[visit_exp decl] -[visit_id decl] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp $memsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $memsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $memsd(decl'*{decl' <- `decl'*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $tablesd([]) = [] -[check_dims] decl' table -[visit_exp [(table : table <: decl)] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [(table : table <: decl)]] -[visit_exp (table : table <: decl)] -[visit_exp table] -[visit_id table] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp [table] ++ $tablesd(decl'*{decl' <- `decl'*`})] -[visit_exp [table]] -[visit_exp table] -[visit_id table] not free -[visit_exp $tablesd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $tablesd{table : table, `decl'*` : decl*}([(table : table <: decl)] ++ decl'*{decl' <- `decl'*`}) = [table] ++ $tablesd(decl'*{decl' <- `decl'*`}) -[check_dims] decl decl' -[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [decl]] -[visit_exp decl] -[visit_id decl] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp $tablesd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $tablesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tablesd(decl'*{decl' <- `decl'*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $funcsd([]) = [] -[check_dims] decl' func -[visit_exp [(func : func <: decl)] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [(func : func <: decl)]] -[visit_exp (func : func <: decl)] -[visit_exp func] -[visit_id func] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp [func] ++ $funcsd(decl'*{decl' <- `decl'*`})] -[visit_exp [func]] -[visit_exp func] -[visit_id func] not free -[visit_exp $funcsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $funcsd{func : func, `decl'*` : decl*}([(func : func <: decl)] ++ decl'*{decl' <- `decl'*`}) = [func] ++ $funcsd(decl'*{decl' <- `decl'*`}) -[check_dims] decl decl' -[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [decl]] -[visit_exp decl] -[visit_id decl] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp $funcsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $funcsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $funcsd(decl'*{decl' <- `decl'*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $datasd([]) = [] -[check_dims] data decl' -[visit_exp [(data : data <: decl)] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [(data : data <: decl)]] -[visit_exp (data : data <: decl)] -[visit_exp data] -[visit_id data] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp [data] ++ $datasd(decl'*{decl' <- `decl'*`})] -[visit_exp [data]] -[visit_exp data] -[visit_id data] not free -[visit_exp $datasd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $datasd{data : data, `decl'*` : decl*}([(data : data <: decl)] ++ decl'*{decl' <- `decl'*`}) = [data] ++ $datasd(decl'*{decl' <- `decl'*`}) -[check_dims] decl decl' -[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [decl]] -[visit_exp decl] -[visit_id decl] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp $datasd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $datasd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $datasd(decl'*{decl' <- `decl'*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $elemsd([]) = [] -[check_dims] decl' elem -[visit_exp [(elem : elem <: decl)] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [(elem : elem <: decl)]] -[visit_exp (elem : elem <: decl)] -[visit_exp elem] -[visit_id elem] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp [elem] ++ $elemsd(decl'*{decl' <- `decl'*`})] -[visit_exp [elem]] -[visit_exp elem] -[visit_id elem] not free -[visit_exp $elemsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $elemsd{elem : elem, `decl'*` : decl*}([(elem : elem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [elem] ++ $elemsd(decl'*{decl' <- `decl'*`}) -[check_dims] decl decl' -[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [decl]] -[visit_exp decl] -[visit_id decl] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp $elemsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $elemsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $elemsd(decl'*{decl' <- `decl'*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $startsd([]) = [] -[check_dims] decl' start -[visit_exp [(start : start <: decl)] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [(start : start <: decl)]] -[visit_exp (start : start <: decl)] -[visit_exp start] -[visit_id start] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp [start] ++ $startsd(decl'*{decl' <- `decl'*`})] -[visit_exp [start]] -[visit_exp start] -[visit_id start] not free -[visit_exp $startsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $startsd{start : start, `decl'*` : decl*}([(start : start <: decl)] ++ decl'*{decl' <- `decl'*`}) = [start] ++ $startsd(decl'*{decl' <- `decl'*`}) -[check_dims] decl decl' -[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [decl]] -[visit_exp decl] -[visit_id decl] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp $startsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $startsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $startsd(decl'*{decl' <- `decl'*`}) - -- otherwise -[check_dims] -[visit_exp []] -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $exportsd([]) = [] -[check_dims] decl' export -[visit_exp [(export : export <: decl)] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [(export : export <: decl)]] -[visit_exp (export : export <: decl)] -[visit_exp export] -[visit_id export] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp [export] ++ $exportsd(decl'*{decl' <- `decl'*`})] -[visit_exp [export]] -[visit_exp export] -[visit_id export] not free -[visit_exp $exportsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $exportsd{export : export, `decl'*` : decl*}([(export : export <: decl)] ++ decl'*{decl' <- `decl'*`}) = [export] ++ $exportsd(decl'*{decl' <- `decl'*`}) -[check_dims] decl decl' -[visit_exp [decl] ++ decl'*{decl' <- `decl'*`}] -[visit_exp [decl]] -[visit_exp decl] -[visit_id decl] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp $exportsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $exportsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $exportsd(decl'*{decl' <- `decl'*`}) - -- otherwise -[check_dims] _ -DecD ordered(decl*) : bool -[visit_id _] not free -[check_dims] decl' -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] no dims -[visit_id decl'*] -[visit_exp true] -[visit_exp ($importsd(decl'*{decl' <- `decl'*`}) = [])] -[visit_exp $importsd(decl'*{decl' <- `decl'*`})] -[visit_exp decl'*{decl' <- `decl'*`}] -[scope_enter decl'] -[visit_exp decl'] -[visit_id decl'] not free -[visit_id decl'] not free -[scope_exit decl'] -[visit_exp `decl'*`] -[visit_id decl'*] not free -[visit_id decl'*] no dims -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $ordered{`decl'*` : decl*}(decl'*{decl' <- `decl'*`}) = true - -- if ($importsd(decl'*{decl' <- `decl'*`}) = []) -[check_dims] decl_1 decl_2 import -[visit_exp decl_1*{decl_1 <- `decl_1*`} ++ [(import : import <: decl)] ++ decl_2*{decl_2 <- `decl_2*`}] -[visit_exp decl_1*{decl_1 <- `decl_1*`}] -[scope_enter decl_1] -[visit_exp decl_1] -[visit_id decl_1] not free -[visit_id decl_1] not free -[scope_exit decl_1] -[visit_exp `decl_1*`] -[visit_id decl_1*] no dims -[visit_id decl_1*] -[visit_exp [(import : import <: decl)] ++ decl_2*{decl_2 <- `decl_2*`}] -[visit_exp [(import : import <: decl)]] -[visit_exp (import : import <: decl)] -[visit_exp import] -[visit_id import] -[visit_exp decl_2*{decl_2 <- `decl_2*`}] -[scope_enter decl_2] -[visit_exp decl_2] -[visit_id decl_2] not free -[visit_id decl_2] not free -[scope_exit decl_2] -[visit_exp `decl_2*`] -[visit_id decl_2*] no dims -[visit_id decl_2*] -[visit_exp (((((($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($memsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($tablesd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($funcsd(decl_1*{decl_1 <- `decl_1*`}) = []))] -[visit_exp ((((($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($memsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($tablesd(decl_1*{decl_1 <- `decl_1*`}) = []))] -[visit_exp (((($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($memsd(decl_1*{decl_1 <- `decl_1*`}) = []))] -[visit_exp ((($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = []))] -[visit_exp (($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = []))] -[visit_exp ($importsd(decl_1*{decl_1 <- `decl_1*`}) = [])] -[visit_exp $importsd(decl_1*{decl_1 <- `decl_1*`})] -[visit_exp decl_1*{decl_1 <- `decl_1*`}] -[scope_enter decl_1] -[visit_exp decl_1] -[visit_id decl_1] not free -[visit_id decl_1] not free -[scope_exit decl_1] -[visit_exp `decl_1*`] -[visit_id decl_1*] not free -[visit_id decl_1*] no dims -[visit_exp []] -[visit_exp ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])] -[visit_exp $tagsd(decl_1*{decl_1 <- `decl_1*`})] -[visit_exp decl_1*{decl_1 <- `decl_1*`}] -[scope_enter decl_1] -[visit_exp decl_1] -[visit_id decl_1] not free -[visit_id decl_1] not free -[scope_exit decl_1] -[visit_exp `decl_1*`] -[visit_id decl_1*] not free -[visit_id decl_1*] no dims -[visit_exp []] -[visit_exp ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = [])] -[visit_exp $globalsd(decl_1*{decl_1 <- `decl_1*`})] -[visit_exp decl_1*{decl_1 <- `decl_1*`}] -[scope_enter decl_1] -[visit_exp decl_1] -[visit_id decl_1] not free -[visit_id decl_1] not free -[scope_exit decl_1] -[visit_exp `decl_1*`] -[visit_id decl_1*] not free -[visit_id decl_1*] no dims -[visit_exp []] -[visit_exp ($memsd(decl_1*{decl_1 <- `decl_1*`}) = [])] -[visit_exp $memsd(decl_1*{decl_1 <- `decl_1*`})] -[visit_exp decl_1*{decl_1 <- `decl_1*`}] -[scope_enter decl_1] -[visit_exp decl_1] -[visit_id decl_1] not free -[visit_id decl_1] not free -[scope_exit decl_1] -[visit_exp `decl_1*`] -[visit_id decl_1*] not free -[visit_id decl_1*] no dims -[visit_exp []] -[visit_exp ($tablesd(decl_1*{decl_1 <- `decl_1*`}) = [])] -[visit_exp $tablesd(decl_1*{decl_1 <- `decl_1*`})] -[visit_exp decl_1*{decl_1 <- `decl_1*`}] -[scope_enter decl_1] -[visit_exp decl_1] -[visit_id decl_1] not free -[visit_id decl_1] not free -[scope_exit decl_1] -[visit_exp `decl_1*`] -[visit_id decl_1*] not free -[visit_id decl_1*] no dims -[visit_exp []] -[visit_exp ($funcsd(decl_1*{decl_1 <- `decl_1*`}) = [])] -[visit_exp $funcsd(decl_1*{decl_1 <- `decl_1*`})] -[visit_exp decl_1*{decl_1 <- `decl_1*`}] -[scope_enter decl_1] -[visit_exp decl_1] -[visit_id decl_1] not free -[visit_id decl_1] not free -[scope_exit decl_1] -[visit_exp `decl_1*`] -[visit_id decl_1*] not free -[visit_id decl_1*] no dims -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - def $ordered{`decl_1*` : decl*, import : import, `decl_2*` : decl*}(decl_1*{decl_1 <- `decl_1*`} ++ [(import : import <: decl)] ++ decl_2*{decl_2 <- `decl_2*`}) = (((((($importsd(decl_1*{decl_1 <- `decl_1*`}) = []) /\ ($tagsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($globalsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($memsd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($tablesd(decl_1*{decl_1 <- `decl_1*`}) = [])) /\ ($funcsd(decl_1*{decl_1 <- `decl_1*`}) = [])) -ps' = (I : I) -[check_dims] I _ -[check_dims] I _ -dims \ I = , _ -[visit_exp (`` : (type, idctxt) <: (decl, idctxt))] -[visit_exp ``] -[visit_id ] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I _ -dims \ I = , _ -[visit_exp (`` : (import, idctxt) <: (decl, idctxt))] -[visit_exp ``] -[visit_id ] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I _ -dims \ I = , _ -[visit_exp (`` : (tag, idctxt) <: (decl, idctxt))] -[visit_exp ``] -[visit_id ] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I _ -dims \ I = , _ -[visit_exp (`` : (global, idctxt) <: (decl, idctxt))] -[visit_exp ``] -[visit_id ] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I _ -dims \ I = , _ -[visit_exp (`` : (mem, idctxt) <: (decl, idctxt))] -[visit_exp ``] -[visit_id ] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I _ -dims \ I = , _ -[visit_exp (`` : (table, idctxt) <: (decl, idctxt))] -[visit_exp ``] -[visit_id ] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I _ -dims \ I = , _ -[visit_exp (`` : (func, idctxt) <: (decl, idctxt))] -[visit_exp ``] -[visit_id ] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I _ -dims \ I = , _ -[visit_exp (`` : (data, idctxt) <: (decl, idctxt))] -[visit_exp ``] -[visit_id ] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I _ -dims \ I = , _ -[visit_exp (`` : (elem, idctxt) <: (decl, idctxt))] -[visit_exp ``] -[visit_id ] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I _ -dims \ I = , _ -[visit_exp (`` : (start, idctxt) <: (decl, idctxt))] -[visit_exp ``] -[visit_id ] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[check_dims] I _ -dims \ I = , _ -[visit_exp (`` : (export, idctxt) <: (decl, idctxt))] -[visit_exp ``] -[visit_id ] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -ps' = -[check_dims] -[check_dims] I I' data decl elem export func global import mem start table tag type -dims \ = I, I', data, decl, elem, export, func, global, import, mem, start, table, tag, type -[visit_exp `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp (type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})] -[visit_exp type*{type <- `type*`}] -[scope_enter type] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] no dims -[visit_id type*] -[visit_exp import*{import <- `import*`}] -[scope_enter import] -[visit_exp import] -[visit_id import] not free -[visit_id import] not free -[scope_exit import] -[visit_exp `import*`] -[visit_id import*] no dims -[visit_id import*] -[visit_exp tag*{tag <- `tag*`}] -[scope_enter tag] -[visit_exp tag] -[visit_id tag] not free -[visit_id tag] not free -[scope_exit tag] -[visit_exp `tag*`] -[visit_id tag*] no dims -[visit_id tag*] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] no dims -[visit_id global*] -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] no dims -[visit_id mem*] -[visit_exp table*{table <- `table*`}] -[scope_enter table] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] no dims -[visit_id table*] -[visit_exp func*{func <- `func*`}] -[scope_enter func] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] no dims -[visit_id func*] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] no dims -[visit_id data*] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] no dims -[visit_id elem*] -[visit_exp start?{start <- `start?`}] -[scope_enter start] -[visit_exp start] -[visit_id start] not free -[visit_id start] not free -[scope_exit start] -[visit_exp `start?`] -[visit_id start?] no dims -[visit_id start?] -[visit_exp export*{export <- `export*`}] -[scope_enter export] -[visit_exp export] -[visit_id export] not free -[visit_id export] not free -[scope_exit export] -[visit_exp `export*`] -[visit_id export*] no dims -[visit_id export*] -[visit_exp (decl, I)*{I <- `I*`, decl <- `decl*`}] -[scope_enter I] -[scope_enter decl] -[visit_exp (decl, I)] -[visit_exp decl] -[visit_id decl] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] not free -[visit_id decl] not free -[scope_exit decl] -[scope_exit I] -[visit_exp `I*`] -[visit_id I*] no dims -[visit_id I*] -[visit_exp `decl*`] -[visit_id decl*] no dims -[visit_id decl*] -[visit_exp I'] -[visit_id I'] -[visit_exp (I' = $concat_idctxt(I*{I <- `I*`}))] -[visit_exp I'] -[visit_id I'] not free -[visit_exp $concat_idctxt(I*{I <- `I*`})] -[visit_exp I*{I <- `I*`}] -[scope_enter I] -[visit_exp I] -[visit_id I] not free -[visit_id I] not free -[scope_exit I] -[visit_exp `I*`] -[visit_id I*] not free -[visit_id I*] no dims -[visit_exp I'] -[visit_id I'] not free -[visit_exp (type*{type <- `type*`} = $typesd(decl*{decl <- `decl*`}))] -[visit_exp type*{type <- `type*`}] -[scope_enter type] -[visit_exp type] -[visit_id type] not free -[visit_id type] not free -[scope_exit type] -[visit_exp `type*`] -[visit_id type*] not free -[visit_id type*] no dims -[visit_exp $typesd(decl*{decl <- `decl*`})] -[visit_exp decl*{decl <- `decl*`}] -[scope_enter decl] -[visit_exp decl] -[visit_id decl] not free -[visit_id decl] not free -[scope_exit decl] -[visit_exp `decl*`] -[visit_id decl*] not free -[visit_id decl*] no dims -[visit_exp (import*{import <- `import*`} = $importsd(decl*{decl <- `decl*`}))] -[visit_exp import*{import <- `import*`}] -[scope_enter import] -[visit_exp import] -[visit_id import] not free -[visit_id import] not free -[scope_exit import] -[visit_exp `import*`] -[visit_id import*] not free -[visit_id import*] no dims -[visit_exp $importsd(decl*{decl <- `decl*`})] -[visit_exp decl*{decl <- `decl*`}] -[scope_enter decl] -[visit_exp decl] -[visit_id decl] not free -[visit_id decl] not free -[scope_exit decl] -[visit_exp `decl*`] -[visit_id decl*] not free -[visit_id decl*] no dims -[visit_exp (tag*{tag <- `tag*`} = $tagsd(decl*{decl <- `decl*`}))] -[visit_exp tag*{tag <- `tag*`}] -[scope_enter tag] -[visit_exp tag] -[visit_id tag] not free -[visit_id tag] not free -[scope_exit tag] -[visit_exp `tag*`] -[visit_id tag*] not free -[visit_id tag*] no dims -[visit_exp $tagsd(decl*{decl <- `decl*`})] -[visit_exp decl*{decl <- `decl*`}] -[scope_enter decl] -[visit_exp decl] -[visit_id decl] not free -[visit_id decl] not free -[scope_exit decl] -[visit_exp `decl*`] -[visit_id decl*] not free -[visit_id decl*] no dims -[visit_exp (global*{global <- `global*`} = $globalsd(decl*{decl <- `decl*`}))] -[visit_exp global*{global <- `global*`}] -[scope_enter global] -[visit_exp global] -[visit_id global] not free -[visit_id global] not free -[scope_exit global] -[visit_exp `global*`] -[visit_id global*] not free -[visit_id global*] no dims -[visit_exp $globalsd(decl*{decl <- `decl*`})] -[visit_exp decl*{decl <- `decl*`}] -[scope_enter decl] -[visit_exp decl] -[visit_id decl] not free -[visit_id decl] not free -[scope_exit decl] -[visit_exp `decl*`] -[visit_id decl*] not free -[visit_id decl*] no dims -[visit_exp (mem*{mem <- `mem*`} = $memsd(decl*{decl <- `decl*`}))] -[visit_exp mem*{mem <- `mem*`}] -[scope_enter mem] -[visit_exp mem] -[visit_id mem] not free -[visit_id mem] not free -[scope_exit mem] -[visit_exp `mem*`] -[visit_id mem*] not free -[visit_id mem*] no dims -[visit_exp $memsd(decl*{decl <- `decl*`})] -[visit_exp decl*{decl <- `decl*`}] -[scope_enter decl] -[visit_exp decl] -[visit_id decl] not free -[visit_id decl] not free -[scope_exit decl] -[visit_exp `decl*`] -[visit_id decl*] not free -[visit_id decl*] no dims -[visit_exp (table*{table <- `table*`} = $tablesd(decl*{decl <- `decl*`}))] -[visit_exp table*{table <- `table*`}] -[scope_enter table] -[visit_exp table] -[visit_id table] not free -[visit_id table] not free -[scope_exit table] -[visit_exp `table*`] -[visit_id table*] not free -[visit_id table*] no dims -[visit_exp $tablesd(decl*{decl <- `decl*`})] -[visit_exp decl*{decl <- `decl*`}] -[scope_enter decl] -[visit_exp decl] -[visit_id decl] not free -[visit_id decl] not free -[scope_exit decl] -[visit_exp `decl*`] -[visit_id decl*] not free -[visit_id decl*] no dims -[visit_exp (func*{func <- `func*`} = $funcsd(decl*{decl <- `decl*`}))] -[visit_exp func*{func <- `func*`}] -[scope_enter func] -[visit_exp func] -[visit_id func] not free -[visit_id func] not free -[scope_exit func] -[visit_exp `func*`] -[visit_id func*] not free -[visit_id func*] no dims -[visit_exp $funcsd(decl*{decl <- `decl*`})] -[visit_exp decl*{decl <- `decl*`}] -[scope_enter decl] -[visit_exp decl] -[visit_id decl] not free -[visit_id decl] not free -[scope_exit decl] -[visit_exp `decl*`] -[visit_id decl*] not free -[visit_id decl*] no dims -[visit_exp (data*{data <- `data*`} = $datasd(decl*{decl <- `decl*`}))] -[visit_exp data*{data <- `data*`}] -[scope_enter data] -[visit_exp data] -[visit_id data] not free -[visit_id data] not free -[scope_exit data] -[visit_exp `data*`] -[visit_id data*] not free -[visit_id data*] no dims -[visit_exp $datasd(decl*{decl <- `decl*`})] -[visit_exp decl*{decl <- `decl*`}] -[scope_enter decl] -[visit_exp decl] -[visit_id decl] not free -[visit_id decl] not free -[scope_exit decl] -[visit_exp `decl*`] -[visit_id decl*] not free -[visit_id decl*] no dims -[visit_exp (elem*{elem <- `elem*`} = $elemsd(decl*{decl <- `decl*`}))] -[visit_exp elem*{elem <- `elem*`}] -[scope_enter elem] -[visit_exp elem] -[visit_id elem] not free -[visit_id elem] not free -[scope_exit elem] -[visit_exp `elem*`] -[visit_id elem*] not free -[visit_id elem*] no dims -[visit_exp $elemsd(decl*{decl <- `decl*`})] -[visit_exp decl*{decl <- `decl*`}] -[scope_enter decl] -[visit_exp decl] -[visit_id decl] not free -[visit_id decl] not free -[scope_exit decl] -[visit_exp `decl*`] -[visit_id decl*] not free -[visit_id decl*] no dims -[visit_exp (lift(start?{start <- `start?`}) = $startsd(decl*{decl <- `decl*`}))] -[visit_exp lift(start?{start <- `start?`})] -[visit_exp start?{start <- `start?`}] -[scope_enter start] -[visit_exp start] -[visit_id start] not free -[visit_id start] not free -[scope_exit start] -[visit_exp `start?`] -[visit_id start?] not free -[visit_id start?] no dims -[visit_exp $startsd(decl*{decl <- `decl*`})] -[visit_exp decl*{decl <- `decl*`}] -[scope_enter decl] -[visit_exp decl] -[visit_id decl] not free -[visit_id decl] not free -[scope_exit decl] -[visit_exp `decl*`] -[visit_id decl*] not free -[visit_id decl*] no dims -[visit_exp (export*{export <- `export*`} = $exportsd(decl*{decl <- `decl*`}))] -[visit_exp export*{export <- `export*`}] -[scope_enter export] -[visit_exp export] -[visit_id export] not free -[visit_id export] not free -[scope_exit export] -[visit_exp `export*`] -[visit_id export*] not free -[visit_id export*] no dims -[visit_exp $exportsd(decl*{decl <- `decl*`})] -[visit_exp decl*{decl <- `decl*`}] -[scope_enter decl] -[visit_exp decl] -[visit_id decl] not free -[visit_id decl] not free -[scope_exit decl] -[visit_exp `decl*`] -[visit_id decl*] not free -[visit_id decl*] no dims -[visit_exp $ordered(decl*{decl <- `decl*`})] -[visit_exp decl*{decl <- `decl*`}] -[scope_enter decl] -[visit_exp decl] -[visit_id decl] not free -[visit_id decl] not free -[scope_exit decl] -[visit_exp `decl*`] -[visit_id decl*] not free -[visit_id decl*] no dims -ps' = -[check_dims] -[check_dims] I -[scope_enter I] -[visit_exp I] -[visit_id I] not free -[visit_id I] not free -[scope_exit I] -[visit_exp `I*`] -[visit_id I*] no dims -[visit_id I*] -[scope_enter I] -[visit_exp I] -[visit_id I] not free -[visit_id I] not free -[scope_exit I] -[visit_exp `I*`] -[visit_id I*] not free -[visit_id I*] no dims -ps' = (I : I) -[check_dims] I _ -[check_dims] I -dims \ I = -[visit_exp [``]] -[visit_exp ``] -[visit_id ] -[visit_exp [``]] -[visit_exp ``] -[visit_id ] not free -[visit_exp I] -[visit_id I] not free -[visit_id I] no dims -[visit_id I] not free -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_enter _] -[visit_id _] not free -[visit_id _] no dims -[scope_exit _] -[scope_exit _] -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[scope_enter A_1] -[visit_id A_1] not free -[visit_id A_1] no dims -[scope_exit A_1] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter A_n] -[visit_id A_n] not free -[visit_id A_n] no dims -[scope_exit A_n] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter A_1] -[visit_id A_1] not free -[visit_id A_1] no dims -[scope_exit A_1] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter A_2] -[visit_id A_2] not free -[visit_id A_2] no dims -[scope_exit A_2] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[scope_enter A_1] -[visit_id A_1] not free -[visit_id A_1] no dims -[scope_exit A_1] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter A_2] -[visit_id A_2] not free -[visit_id A_2] no dims -[scope_exit A_2] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[scope_enter recorddots] -[visit_id recorddots] not free -[visit_id recorddots] no dims -[scope_exit recorddots] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[check_dims] -[check_dims] -[check_dims] conclusion premise_1 premise_2 premise_n -[visit_exp conclusion] -[visit_id conclusion] -[visit_exp premise_1] -[visit_id premise_1] -[visit_exp premise_2] -[visit_id premise_2] -[visit_exp ()] -[visit_exp premise_n] -[visit_id premise_n] -[check_dims] -[check_dims] C -[visit_exp C] -[visit_id C] -[visit_exp [`BINOP`_instr(`I32`_numtype, `ADD`_binop_)]] -[visit_exp `BINOP`_instr(`I32`_numtype, `ADD`_binop_)] -[visit_exp (`I32`_numtype, `ADD`_binop_)] -[visit_exp `I32`_numtype] -[visit_exp ()] -[visit_exp `ADD`_binop_] -[visit_exp ()] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp (`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`I32`_valtype]))] -[visit_exp `%`_resulttype([`I32`_valtype `I32`_valtype])] -[visit_exp ([`I32`_valtype `I32`_valtype])] -[visit_exp [`I32`_valtype `I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp `I32`_valtype] -[visit_exp ()] -[visit_exp []] -[visit_exp `%`_resulttype([`I32`_valtype])] -[visit_exp ([`I32`_valtype])] -[visit_exp [`I32`_valtype]] -[visit_exp `I32`_valtype] -[visit_exp ()] -[check_dims] C mut t x -[visit_exp C] -[visit_id C] -[visit_exp [`GLOBAL.GET`_instr(x)]] -[visit_exp `GLOBAL.GET`_instr(x)] -[visit_exp (x)] -[visit_exp x] -[visit_id x] -[visit_exp `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))] -[visit_exp (`%`_resulttype([]), [], `%`_resulttype([t]))] -[visit_exp `%`_resulttype([])] -[visit_exp ([])] -[visit_exp []] -[visit_exp []] -[visit_exp `%`_resulttype([t])] -[visit_exp ([t])] -[visit_exp [t]] -[visit_exp t] -[visit_id t] -[visit_exp (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(?(mut), t))] -[visit_exp C.`GLOBALS`_context[x!`%`_idx.0]] -[visit_exp C.`GLOBALS`_context] -[visit_exp C] -[visit_id C] not free -[visit_exp x!`%`_idx.0] -[visit_exp x!`%`_idx] -[visit_exp x] -[visit_id x] not free -[visit_exp `%%`_globaltype(?(mut), t)] -[visit_exp (?(mut), t)] -[visit_exp ?(mut)] -[visit_exp mut] -[visit_id mut] -[visit_exp t] -[visit_id t] not free -[check_dims] C blocktype instr t_1 t_2 -[visit_exp C] -[visit_id C] -[visit_exp [`BLOCK`_instr(blocktype, instr*{instr <- `instr*`})]] -[visit_exp `BLOCK`_instr(blocktype, instr*{instr <- `instr*`})] -[visit_exp (blocktype, instr*{instr <- `instr*`})] -[visit_exp blocktype] -[visit_id blocktype] -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] no dims -[visit_id instr*] -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] no dims -[visit_id t_1*] -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] no dims -[visit_id t_2*] -[visit_exp (C, blocktype, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp C] -[visit_id C] not free -[visit_exp blocktype] -[visit_id blocktype] not free -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp ({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})))] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C] -[visit_exp {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []}] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp []] -[visit_exp [`%`_resulttype(t_2*{t_2 <- `t_2*`})]] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[visit_exp ?()] -[visit_exp []] -[visit_exp C] -[visit_id C] not free -[visit_exp instr*{instr <- `instr*`}] -[scope_enter instr] -[visit_exp instr] -[visit_id instr] not free -[visit_id instr] not free -[scope_exit instr] -[visit_exp `instr*`] -[visit_id instr*] not free -[visit_id instr*] no dims -[visit_exp `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp (`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))] -[visit_exp `%`_resulttype(t_1*{t_1 <- `t_1*`})] -[visit_exp (t_1*{t_1 <- `t_1*`})] -[visit_exp t_1*{t_1 <- `t_1*`}] -[scope_enter t_1] -[visit_exp t_1] -[visit_id t_1] not free -[visit_id t_1] not free -[scope_exit t_1] -[visit_exp `t_1*`] -[visit_id t_1*] not free -[visit_id t_1*] no dims -[visit_exp []] -[visit_exp `%`_resulttype(t_2*{t_2 <- `t_2*`})] -[visit_exp (t_2*{t_2 <- `t_2*`})] -[visit_exp t_2*{t_2 <- `t_2*`}] -[scope_enter t_2] -[visit_exp t_2] -[visit_id t_2] not free -[visit_id t_2] not free -[scope_exit t_2] -[visit_exp `t_2*`] -[visit_id t_2*] not free -[visit_id t_2*] no dims -[check_dims] -[check_dims] q_1 q_3 q_4 -[visit_exp [`CONST`_instr(`F64`_numtype, q_1) `CONST`_instr(`F64`_numtype, q_4) `CONST`_instr(`F64`_numtype, q_3) `BINOP`_instr(`F64`_numtype, `ADD`_binop_) `BINOP`_instr(`F64`_numtype, `MUL`_binop_)]] -[visit_exp `CONST`_instr(`F64`_numtype, q_1)] -[visit_exp (`F64`_numtype, q_1)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp q_1] -[visit_id q_1] -[visit_exp `CONST`_instr(`F64`_numtype, q_4)] -[visit_exp (`F64`_numtype, q_4)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp q_4] -[visit_id q_4] -[visit_exp `CONST`_instr(`F64`_numtype, q_3)] -[visit_exp (`F64`_numtype, q_3)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp q_3] -[visit_id q_3] -[visit_exp `BINOP`_instr(`F64`_numtype, `ADD`_binop_)] -[visit_exp (`F64`_numtype, `ADD`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `ADD`_binop_] -[visit_exp ()] -[visit_exp `BINOP`_instr(`F64`_numtype, `MUL`_binop_)] -[visit_exp (`F64`_numtype, `MUL`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `MUL`_binop_] -[visit_exp ()] -[check_dims] q_1 q_5 -[visit_exp [`CONST`_instr(`F64`_numtype, q_1) `CONST`_instr(`F64`_numtype, q_5) `BINOP`_instr(`F64`_numtype, `MUL`_binop_)]] -[visit_exp `CONST`_instr(`F64`_numtype, q_1)] -[visit_exp (`F64`_numtype, q_1)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp q_1] -[visit_id q_1] -[visit_exp `CONST`_instr(`F64`_numtype, q_5)] -[visit_exp (`F64`_numtype, q_5)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp q_5] -[visit_id q_5] -[visit_exp `BINOP`_instr(`F64`_numtype, `MUL`_binop_)] -[visit_exp (`F64`_numtype, `MUL`_binop_)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp `MUL`_binop_] -[visit_exp ()] -[check_dims] q_6 -[visit_exp [`CONST`_instr(`F64`_numtype, q_6)]] -[visit_exp `CONST`_instr(`F64`_numtype, q_6)] -[visit_exp (`F64`_numtype, q_6)] -[visit_exp `F64`_numtype] -[visit_exp ()] -[visit_exp q_6] -[visit_id q_6] -[check_dims] -DecD instrdots : instr* -[check_dims] -[check_dims] -[scope_enter n] -[visit_id n] not free -[visit_id n] no dims -[scope_enter instr*] -[visit_id instr*] not free -[visit_id instr*] no dims -[scope_exit instr*] -[scope_exit n] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] -[scope_enter n] -[visit_id n] not free -[visit_id n] no dims -[scope_enter frame] -[visit_id frame] not free -[visit_id frame] no dims -[scope_exit frame] -[scope_exit n] ---- 1 --- -[check_dims] ---- 2 --- ---- 3 --- ---- 4 --- -[check_dims] -[check_dims] X Y _ store -DecD allocX(syntax X, syntax Y, store : store, X : X, Y : Y) : (store, addr) -[visit_id store] not free -[visit_id X] not free -[visit_id Y] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] X Y _ store -DecD allocXs(syntax X, syntax Y, store : store, X*, Y*) : (store, addr*) -[visit_id store] not free -[visit_id _] not free -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_enter _] -[visit_id _] not free -[scope_exit _] -[scope_exit _] -[check_dims] s -[visit_exp s] -[visit_id s] -[visit_exp []] -[visit_exp []] -[visit_exp (s, [])] -[visit_exp s] -[visit_id s] not free -[visit_exp []] -=> - ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec - def $allocXs{syntax X, syntax Y, s : store}(syntax X, syntax Y, s, [], []) = (s, []) -[check_dims] X X' Y Y' a a' s s_1 s_2 -[visit_exp s] -[visit_id s] -[visit_exp [X] ++ X'*{X' <- `X'*`}] -[visit_exp [X]] -[visit_exp X] -[visit_id X] -[visit_exp X'*{X' <- `X'*`}] -[scope_enter X'] -[visit_exp X'] -[visit_id X'] not free -[visit_id X'] not free -[scope_exit X'] -[visit_exp `X'*`] -[visit_id X'*] no dims -[visit_id X'*] -[visit_exp [Y] ++ Y'*{Y' <- `Y'*`}] -[visit_exp [Y]] -[visit_exp Y] -[visit_id Y] -[visit_exp Y'*{Y' <- `Y'*`}] -[scope_enter Y'] -[visit_exp Y'] -[visit_id Y'] not free -[visit_id Y'] not free -[scope_exit Y'] -[visit_exp `Y'*`] -[visit_id Y'*] no dims -[visit_id Y'*] -[visit_exp (s_2, [a] ++ a'*{a' <- `a'*`})] -[visit_exp s_2] -[visit_id s_2] -[visit_exp [a] ++ a'*{a' <- `a'*`}] -[visit_exp [a]] -[visit_exp a] -[visit_id a] -[visit_exp a'*{a' <- `a'*`}] -[scope_enter a'] -[visit_exp a'] -[visit_id a'] not free -[visit_id a'] not free -[scope_exit a'] -[visit_exp `a'*`] -[visit_id a'*] no dims -[visit_id a'*] -[visit_exp ((s_1, a) = $allocX(syntax X, syntax Y, s, X, Y))] -[visit_exp (s_1, a)] -[visit_exp s_1] -[visit_id s_1] -[visit_exp a] -[visit_id a] not free -[visit_exp $allocX(syntax X, syntax Y, s, X, Y)] -[visit_exp s] -[visit_id s] not free -[visit_exp X] -[visit_id X] not free -[visit_exp Y] -[visit_id Y] not free -[visit_exp ((s_2, a'*{a' <- `a'*`}) = $allocXs(syntax X, syntax Y, s_1, X'*{X' <- `X'*`}, Y'*{Y' <- `Y'*`}))] -[visit_exp (s_2, a'*{a' <- `a'*`})] -[visit_exp s_2] -[visit_id s_2] not free -[visit_exp a'*{a' <- `a'*`}] -[scope_enter a'] -[visit_exp a'] -[visit_id a'] not free -[visit_id a'] not free -[scope_exit a'] -[visit_exp `a'*`] -[visit_id a'*] not free -[visit_id a'*] no dims -[visit_exp $allocXs(syntax X, syntax Y, s_1, X'*{X' <- `X'*`}, Y'*{Y' <- `Y'*`})] -[visit_exp s_1] -[visit_id s_1] not free -[visit_exp X'*{X' <- `X'*`}] -[scope_enter X'] -[visit_exp X'] -[visit_id X'] not free -[visit_id X'] not free -[scope_exit X'] -[visit_exp `X'*`] -[visit_id X'*] not free -[visit_id X'*] no dims -[visit_exp Y'*{Y' <- `Y'*`}] -[scope_enter Y'] -[visit_exp Y'] -[visit_id Y'] not free -[visit_id Y'] not free -[scope_exit Y'] -[visit_exp `Y'*`] -[visit_id Y'*] not free -[visit_id Y'*] no dims -=> - ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec - def $allocXs{syntax X, syntax Y, s : store, X : X, `X'*` : X*, Y : Y, `Y'*` : Y*, s_2 : store, a : addr, `a'*` : addr*, s_1 : store}(syntax X, syntax Y, s, [X] ++ X'*{X' <- `X'*`}, [Y] ++ Y'*{Y' <- `Y'*`}) = (s_2, [a] ++ a'*{a' <- `a'*`}) - -- if ((s_1, a) = $allocX(syntax X, syntax Y, s, X, Y)) - -- if ((s_2, a'*{a' <- `a'*`}) = $allocXs(syntax X, syntax Y, s_1, X'*{X' <- `X'*`}, Y'*{Y' <- `Y'*`})) -[check_dims] -[check_dims] -[visit_exp 0] -[check_dims] X -DecD var(syntax X) : nat -[check_dims] -[visit_exp 0] -=> - ;; ../../../../specification/wasm-3.0/X.4-notation.binary.spectec - def $var{syntax X}(syntax X) = 0 -ps' = (syntax X) -[check_dims] X -[check_dims] -dims \ = -[visit_exp ((), ()).1] -[visit_exp ((), ())] -[visit_exp ()] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp $var(syntax A)] -[check_dims] -dims \ = -[visit_exp $var(syntax A)] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = (syntax X) -[check_dims] X -[check_dims] -dims \ = -[visit_exp ((), ()).1] -[visit_exp ((), ())] -[visit_exp ()] -[visit_exp ()] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp $var(syntax A)] -[check_dims] -dims \ = -[visit_exp $var(syntax A)] -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -ps' = -[check_dims] -[check_dims] -dims \ = -[visit_exp (``, ()).1] -[visit_exp (``, ())] -[visit_exp ``] -[visit_id ] -[visit_exp ()] -[visit_exp ``] -[visit_id ] not free -[check_dims] -[check_dims] -[check_dims] -ps' = -[check_dims] -[check_dims] ;; ../../../../specification/wasm-3.0/0.1-aux.vars.spectec syntax N = nat @@ -86993,17 +187,17 @@ syntax byte = -- if ((i >= 0) /\ (i <= 255)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax uN(N : N)(N) = +syntax uN{N : N}(N) = | `%`(i : nat) -- if ((i >= 0) /\ (i <= ((((2 ^ N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax sN(N : N)(N) = +syntax sN{N : N}(N) = | `%`(i : int) -- if ((((i >= - ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) /\ (i <= - (1 : nat <:> int))) \/ (i = (0 : nat <:> int))) \/ ((i >= + (1 : nat <:> int)) /\ (i <= (+ ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax iN(N : N)(N) = uN(N) +syntax iN{N : N}(N) = uN(N) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax u8 = uN(8) @@ -87060,19 +254,19 @@ def $E(N : N) : nat syntax exp = int ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax fNmag(N : N)(N) = - | `NORM`(m : m, exp : exp) +syntax fNmag{N : N}(N) = + | NORM(m : m, exp : exp) -- if ((m < (2 ^ $M(N))) /\ ((((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) <= exp) /\ (exp <= (((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int) - (1 : nat <:> int))))) - | `SUBNORM`(m : m){exp : exp} + | SUBNORM(m : m) {exp : exp} -- if ((m < (2 ^ $M(N))) /\ (((2 : nat <:> int) - ((2 ^ ((($E(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> int)) = exp)) - | `INF` - | `NAN`(m : m) + | INF + | NAN(m : m) -- if ((1 <= m) /\ (m < (2 ^ $M(N)))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax fN(N : N)(N) = - | `POS`(fNmag(N)) - | `NEG`(fNmag(N)) +syntax fN{N : N}(N) = + | POS(fNmag(N)) + | NEG(fNmag(N)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax f32 = fN(32) @@ -87083,17 +277,17 @@ syntax f64 = fN(64) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $fzero(N : N) : fN(N) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fzero{N : N}(N) = `POS`_fN(`SUBNORM`_fNmag(0)) + def $fzero{N : N}(N) = POS_fN(SUBNORM_fNmag(0)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $fnat(N : N, nat : nat) : fN(N) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fnat{N : N, n : n}(N, n) = `POS`_fN(`NORM`_fNmag(n, (0 : nat <:> int))) + def $fnat{N : N, n : n}(N, n) = POS_fN(NORM_fNmag(n, (0 : nat <:> int))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $fone(N : N) : fN(N) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $fone{N : N}(N) = `POS`_fN(`NORM`_fNmag(1, (0 : nat <:> int))) + def $fone{N : N}(N) = POS_fN(NORM_fNmag(1, (0 : nat <:> int))) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $canon_(N : N) : nat @@ -87101,13 +295,13 @@ def $canon_(N : N) : nat def $canon_{N : N}(N) = (2 ^ ((($signif(N) : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax vN(N : N)(N) = uN(N) +syntax vN{N : N}(N) = uN(N) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax v128 = vN(128) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec -syntax list(syntax X)(syntax X) = +syntax list{syntax X}(syntax X) = | `%`(`X*` : X*) -- if (|X*{X <- `X*`}| < (2 ^ 32)) @@ -87193,11 +387,11 @@ syntax fieldidx = idx ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax externidx = - | `FUNC`(funcidx : funcidx) - | `GLOBAL`(globalidx : globalidx) - | `TABLE`(tableidx : tableidx) - | `MEM`(memidx : memidx) - | `TAG`(tagidx : tagidx) + | FUNC(funcidx : funcidx) + | GLOBAL(globalidx : globalidx) + | TABLE(tableidx : tableidx) + | MEM(memidx : memidx) + | TAG(tagidx : tagidx) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec rec { @@ -87207,7 +401,7 @@ def $funcsxx(externidx*) : typeidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:135.1-135.24 def $funcsxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:136.1-136.45 - def $funcsxx{x : idx, `xx*` : externidx*}([`FUNC`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $funcsxx(xx*{xx <- `xx*`}) + def $funcsxx{x : idx, `xx*` : externidx*}([FUNC_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $funcsxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:137.1-137.58 def $funcsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $funcsxx(xx*{xx <- `xx*`}) -- otherwise @@ -87221,7 +415,7 @@ def $globalsxx(externidx*) : globalidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:139.1-139.26 def $globalsxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:140.1-140.51 - def $globalsxx{x : idx, `xx*` : externidx*}([`GLOBAL`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $globalsxx(xx*{xx <- `xx*`}) + def $globalsxx{x : idx, `xx*` : externidx*}([GLOBAL_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $globalsxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:141.1-141.62 def $globalsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $globalsxx(xx*{xx <- `xx*`}) -- otherwise @@ -87235,7 +429,7 @@ def $tablesxx(externidx*) : tableidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:143.1-143.25 def $tablesxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:144.1-144.48 - def $tablesxx{x : idx, `xx*` : externidx*}([`TABLE`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tablesxx(xx*{xx <- `xx*`}) + def $tablesxx{x : idx, `xx*` : externidx*}([TABLE_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tablesxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:145.1-145.60 def $tablesxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $tablesxx(xx*{xx <- `xx*`}) -- otherwise @@ -87249,7 +443,7 @@ def $memsxx(externidx*) : memidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:147.1-147.23 def $memsxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:148.1-148.42 - def $memsxx{x : idx, `xx*` : externidx*}([`MEM`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $memsxx(xx*{xx <- `xx*`}) + def $memsxx{x : idx, `xx*` : externidx*}([MEM_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $memsxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:149.1-149.56 def $memsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $memsxx(xx*{xx <- `xx*`}) -- otherwise @@ -87263,7 +457,7 @@ def $tagsxx(externidx*) : tagidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:151.1-151.23 def $tagsxx([]) = [] ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:152.1-152.42 - def $tagsxx{x : idx, `xx*` : externidx*}([`TAG`_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tagsxx(xx*{xx <- `xx*`}) + def $tagsxx{x : idx, `xx*` : externidx*}([TAG_externidx(x)] ++ xx*{xx <- `xx*`}) = [x] ++ $tagsxx(xx*{xx <- `xx*`}) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:153.1-153.56 def $tagsxx{externidx : externidx, `xx*` : externidx*}([externidx] ++ xx*{xx <- `xx*`}) = $tagsxx(xx*{xx <- `xx*`}) -- otherwise @@ -87272,21 +466,21 @@ def $tagsxx(externidx*) : tagidx* ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec syntax free = { - `TYPES` typeidx* , - `FUNCS` funcidx* , - `GLOBALS` globalidx* , - `TABLES` tableidx* , - `MEMS` memidx* , - `ELEMS` elemidx* , - `DATAS` dataidx* , - `LOCALS` localidx* , - `LABELS` labelidx* + TYPES typeidx*, + FUNCS funcidx*, + GLOBALS globalidx*, + TABLES tableidx*, + MEMS memidx*, + ELEMS elemidx*, + DATAS dataidx*, + LOCALS localidx*, + LABELS labelidx* } ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_opt(free?) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_opt(?()) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_opt(?()) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_opt{free : free}(?(free)) = free @@ -87296,7 +490,7 @@ rec { ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:172.1-172.29 def $free_list(free*) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:177.1-177.25 - def $free_list([]) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_list([]) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec:178.1-178.57 def $free_list{free : free, `free'*` : free*}([free] ++ free'*{free' <- `free'*`}) = free +++ $free_list(free'*{free' <- `free'*`}) } @@ -87304,160 +498,160 @@ def $free_list(free*) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_typeidx(typeidx : typeidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_typeidx{typeidx : typeidx}(typeidx) = {`TYPES` [typeidx], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_typeidx{typeidx : typeidx}(typeidx) = {TYPES [typeidx], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_funcidx(funcidx : funcidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_funcidx{funcidx : funcidx}(funcidx) = {`TYPES` [], `FUNCS` [funcidx], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_funcidx{funcidx : funcidx}(funcidx) = {TYPES [], FUNCS [funcidx], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_globalidx(globalidx : globalidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_globalidx{globalidx : globalidx}(globalidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [globalidx], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_globalidx{globalidx : globalidx}(globalidx) = {TYPES [], FUNCS [], GLOBALS [globalidx], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_tableidx(tableidx : tableidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_tableidx{tableidx : tableidx}(tableidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [tableidx], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_tableidx{tableidx : tableidx}(tableidx) = {TYPES [], FUNCS [], GLOBALS [], TABLES [tableidx], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_memidx(memidx : memidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_memidx{memidx : memidx}(memidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [memidx], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_memidx{memidx : memidx}(memidx) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [memidx], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_elemidx(elemidx : elemidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_elemidx{elemidx : elemidx}(elemidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [elemidx], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_elemidx{elemidx : elemidx}(elemidx) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [elemidx], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_dataidx(dataidx : dataidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_dataidx{dataidx : dataidx}(dataidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [dataidx], `LOCALS` [], `LABELS` []} + def $free_dataidx{dataidx : dataidx}(dataidx) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [dataidx], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_localidx(localidx : localidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_localidx{localidx : localidx}(localidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [localidx], `LABELS` []} + def $free_localidx{localidx : localidx}(localidx) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [localidx], LABELS []} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_labelidx(labelidx : labelidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_labelidx{labelidx : labelidx}(labelidx) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` [labelidx]} + def $free_labelidx{labelidx : labelidx}(labelidx) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS [labelidx]} ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec def $free_externidx(externidx : externidx) : free ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{funcidx : funcidx}(`FUNC`_externidx(funcidx)) = $free_funcidx(funcidx) + def $free_externidx{funcidx : funcidx}(FUNC_externidx(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{globalidx : globalidx}(`GLOBAL`_externidx(globalidx)) = $free_globalidx(globalidx) + def $free_externidx{globalidx : globalidx}(GLOBAL_externidx(globalidx)) = $free_globalidx(globalidx) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{tableidx : tableidx}(`TABLE`_externidx(tableidx)) = $free_tableidx(tableidx) + def $free_externidx{tableidx : tableidx}(TABLE_externidx(tableidx)) = $free_tableidx(tableidx) ;; ../../../../specification/wasm-3.0/1.1-syntax.values.spectec - def $free_externidx{memidx : memidx}(`MEM`_externidx(memidx)) = $free_memidx(memidx) + def $free_externidx{memidx : memidx}(MEM_externidx(memidx)) = $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax null = - | `NULL` + | NULL ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax addrtype = - | `I32` - | `I64` + | I32 + | I64 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax numtype = - | `I32` - | `I64` - | `F32` - | `F64` + | I32 + | I64 + | F32 + | F64 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax vectype = - | `V128` + | V128 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax consttype = - | `I32` - | `I64` - | `F32` - | `F64` - | `V128` + | I32 + | I64 + | F32 + | F64 + | V128 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax absheaptype = - | `ANY` - | `EQ` - | `I31` - | `STRUCT` - | `ARRAY` - | `NONE` - | `FUNC` - | `NOFUNC` - | `EXN` - | `NOEXN` - | `EXTERN` - | `NOEXTERN` - | `BOT` + | ANY + | EQ + | I31 + | STRUCT + | ARRAY + | NONE + | FUNC + | NOFUNC + | EXN + | NOEXN + | EXTERN + | NOEXTERN + | BOT ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax mut = - | `MUT` + | MUT ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax final = - | `FINAL` + | FINAL ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec rec { ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:37.1-38.43 syntax typeuse = - | `_IDX`(typeidx : typeidx) - | `_DEF`(rectype : rectype, n : n) - | `REC`(n : n) + | _IDX(typeidx : typeidx) + | _DEF(rectype : rectype, n : n) + | REC(n : n) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:43.1-44.26 syntax heaptype = - | `ANY` - | `EQ` - | `I31` - | `STRUCT` - | `ARRAY` - | `NONE` - | `FUNC` - | `NOFUNC` - | `EXN` - | `NOEXN` - | `EXTERN` - | `NOEXTERN` - | `BOT` - | `_IDX`(typeidx : typeidx) - | `_DEF`(rectype : rectype, n : n) - | `REC`(n : n) + | ANY + | EQ + | I31 + | STRUCT + | ARRAY + | NONE + | FUNC + | NOFUNC + | EXN + | NOEXN + | EXTERN + | NOEXTERN + | BOT + | _IDX(typeidx : typeidx) + | _DEF(rectype : rectype, n : n) + | REC(n : n) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:51.1-52.14 syntax valtype = - | `I32` - | `I64` - | `F32` - | `F64` - | `V128` - | `REF`(`null?` : null?, heaptype : heaptype) - | `BOT` + | I32 + | I64 + | F32 + | F64 + | V128 + | REF(`null?` : null?, heaptype : heaptype) + | BOT ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:92.1-92.66 syntax storagetype = - | `I32` - | `I64` - | `F32` - | `F64` - | `V128` - | `REF`(`null?` : null?, heaptype : heaptype) - | `BOT` - | `I8` - | `I16` + | I32 + | I64 + | F32 + | F64 + | V128 + | REF(`null?` : null?, heaptype : heaptype) + | BOT + | I8 + | I16 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:102.1-103.16 syntax resulttype = list(syntax valtype) @@ -87468,146 +662,146 @@ syntax fieldtype = ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:114.1-117.34 syntax comptype = - | `STRUCT`(list(syntax fieldtype)) - | `ARRAY`(fieldtype : fieldtype) + | STRUCT(list(syntax fieldtype)) + | ARRAY(fieldtype : fieldtype) | `FUNC%->%`(resulttype : resulttype, resulttype : resulttype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:119.1-120.33 syntax subtype = - | `SUB`(`final?` : final?, `typeuse*` : typeuse*, comptype : comptype) + | SUB(`final?` : final?, `typeuse*` : typeuse*, comptype : comptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:122.1-123.22 syntax rectype = - | `REC`(list(syntax subtype)) + | REC(list(syntax subtype)) } ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax deftype = - | `_DEF`(rectype : rectype, n : n) + | _DEF(rectype : rectype, n : n) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax typevar = - | `_IDX`(typeidx : typeidx) - | `REC`(n : n) + | _IDX(typeidx : typeidx) + | REC(n : n) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax reftype = - | `REF`(`null?` : null?, heaptype : heaptype) + | REF(`null?` : null?, heaptype : heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Inn = - | `I32` - | `I64` + | I32 + | I64 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Fnn = - | `F32` - | `F64` + | F32 + | F64 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Vnn = - | `V128` + | V128 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Cnn = - | `I32` - | `I64` - | `F32` - | `F64` - | `V128` + | I32 + | I64 + | F32 + | F64 + | V128 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $ANYREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $ANYREF = `REF`_reftype(?(`NULL`_null), `ANY`_heaptype) + def $ANYREF = REF_reftype(?(NULL_null), ANY_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $EQREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EQREF = `REF`_reftype(?(`NULL`_null), `EQ`_heaptype) + def $EQREF = REF_reftype(?(NULL_null), EQ_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $I31REF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $I31REF = `REF`_reftype(?(`NULL`_null), `I31`_heaptype) + def $I31REF = REF_reftype(?(NULL_null), I31_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $STRUCTREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $STRUCTREF = `REF`_reftype(?(`NULL`_null), `STRUCT`_heaptype) + def $STRUCTREF = REF_reftype(?(NULL_null), STRUCT_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $ARRAYREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $ARRAYREF = `REF`_reftype(?(`NULL`_null), `ARRAY`_heaptype) + def $ARRAYREF = REF_reftype(?(NULL_null), ARRAY_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $FUNCREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $FUNCREF = `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype) + def $FUNCREF = REF_reftype(?(NULL_null), FUNC_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $EXNREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EXNREF = `REF`_reftype(?(`NULL`_null), `EXN`_heaptype) + def $EXNREF = REF_reftype(?(NULL_null), EXN_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $EXTERNREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $EXTERNREF = `REF`_reftype(?(`NULL`_null), `EXTERN`_heaptype) + def $EXTERNREF = REF_reftype(?(NULL_null), EXTERN_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $NULLREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLREF = `REF`_reftype(?(`NULL`_null), `NONE`_heaptype) + def $NULLREF = REF_reftype(?(NULL_null), NONE_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $NULLFUNCREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLFUNCREF = `REF`_reftype(?(`NULL`_null), `NOFUNC`_heaptype) + def $NULLFUNCREF = REF_reftype(?(NULL_null), NOFUNC_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $NULLEXNREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLEXNREF = `REF`_reftype(?(`NULL`_null), `NOEXN`_heaptype) + def $NULLEXNREF = REF_reftype(?(NULL_null), NOEXN_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $NULLEXTERNREF : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $NULLEXTERNREF = `REF`_reftype(?(`NULL`_null), `NOEXTERN`_heaptype) + def $NULLEXTERNREF = REF_reftype(?(NULL_null), NOEXTERN_heaptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax packtype = - | `I8` - | `I16` + | I8 + | I16 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax lanetype = - | `I32` - | `I64` - | `F32` - | `F64` - | `I8` - | `I16` + | I32 + | I64 + | F32 + | F64 + | I8 + | I16 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Pnn = packtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Jnn = - | `I32` - | `I64` - | `I8` - | `I16` + | I32 + | I64 + | I8 + | I16 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax Lnn = - | `I32` - | `I64` - | `F32` - | `F64` - | `I8` - | `I16` + | I32 + | I64 + | F32 + | F64 + | I8 + | I16 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax limits = @@ -87630,18 +824,18 @@ syntax tabletype = ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax datatype = - | `OK` + | OK ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax elemtype = reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax externtype = - | `TAG`(tagtype : tagtype) - | `GLOBAL`(globaltype : globaltype) - | `MEM`(memtype : memtype) - | `TABLE`(tabletype : tabletype) - | `FUNC`(typeuse : typeuse) + | TAG(tagtype : tagtype) + | GLOBAL(globaltype : globaltype) + | MEM(memtype : memtype) + | TABLE(tabletype : tabletype) + | FUNC(typeuse : typeuse) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec syntax moduletype = @@ -87650,50 +844,50 @@ syntax moduletype = ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $IN(N : N) : Inn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $IN(32) = `I32`_Inn + def $IN(32) = I32_Inn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $IN(64) = `I64`_Inn + def $IN(64) = I64_Inn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $FN(N : N) : Fnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $FN(32) = `F32`_Fnn + def $FN(32) = F32_Fnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $FN(64) = `F64`_Fnn + def $FN(64) = F64_Fnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $JN(N : N) : Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $JN(8) = `I8`_Jnn + def $JN(8) = I8_Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $JN(16) = `I16`_Jnn + def $JN(16) = I16_Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $JN(32) = `I32`_Jnn + def $JN(32) = I32_Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $JN(64) = `I64`_Jnn + def $JN(64) = I64_Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $size(numtype : numtype) : nat ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $size(`I32`_numtype) = 32 + def $size(I32_numtype) = 32 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $size(`I64`_numtype) = 64 + def $size(I64_numtype) = 64 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $size(`F32`_numtype) = 32 + def $size(F32_numtype) = 32 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $size(`F64`_numtype) = 64 + def $size(F64_numtype) = 64 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $vsize(vectype : vectype) : nat ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $vsize(`V128`_vectype) = 128 + def $vsize(V128_vectype) = 128 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $psize(packtype : packtype) : nat ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $psize(`I8`_packtype) = 8 + def $psize(I8_packtype) = 8 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $psize(`I16`_packtype) = 16 + def $psize(I16_packtype) = 16 ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $lsize(lanetype : lanetype) : nat @@ -87729,25 +923,25 @@ def $fsize(Fnn : Fnn) : nat ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $inv_isize(nat : nat) : Inn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_isize(32) = `I32`_Inn + def $inv_isize(32) = I32_Inn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_isize(64) = `I64`_Inn + def $inv_isize(64) = I64_Inn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $inv_jsize(nat : nat) : Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_jsize(8) = `I8`_Jnn + def $inv_jsize(8) = I8_Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_jsize(16) = `I16`_Jnn + def $inv_jsize(16) = I16_Jnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $inv_jsize{n : n}(n) = ($inv_isize(n) : Inn <: Jnn) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $inv_fsize(nat : nat) : Fnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_fsize(32) = `F32`_Fnn + def $inv_fsize(32) = F32_Fnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $inv_fsize(64) = `F64`_Fnn + def $inv_fsize(64) = F64_Fnn ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $sizenn(numtype : numtype) : nat @@ -87804,21 +998,21 @@ def $lunpack(lanetype : lanetype) : numtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $lunpack{numtype : numtype}((numtype : numtype <: lanetype)) = numtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $lunpack{packtype : packtype}((packtype : packtype <: lanetype)) = `I32`_numtype + def $lunpack{packtype : packtype}((packtype : packtype <: lanetype)) = I32_numtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $unpack(storagetype : storagetype) : valtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $unpack{valtype : valtype}((valtype : valtype <: storagetype)) = valtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $unpack{packtype : packtype}((packtype : packtype <: storagetype)) = `I32`_valtype + def $unpack{packtype : packtype}((packtype : packtype <: storagetype)) = I32_valtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $nunpack(storagetype : storagetype) : numtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $nunpack{numtype : numtype}((numtype : numtype <: storagetype)) = numtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $nunpack{packtype : packtype}((packtype : packtype <: storagetype)) = `I32`_numtype + def $nunpack{packtype : packtype}((packtype : packtype <: storagetype)) = I32_numtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $vunpack(storagetype : storagetype) : vectype @@ -87830,7 +1024,7 @@ def $cunpack(storagetype : storagetype) : consttype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $cunpack{consttype : consttype}((consttype : consttype <: storagetype)) = consttype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $cunpack{packtype : packtype}((packtype : packtype <: storagetype)) = `I32`_consttype + def $cunpack{packtype : packtype}((packtype : packtype <: storagetype)) = I32_consttype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $cunpack{lanetype : lanetype}((lanetype : lanetype <: storagetype)) = ($lunpack(lanetype) : numtype <: consttype) @@ -87846,9 +1040,9 @@ def $minat(addrtype : addrtype, addrtype : addrtype) : addrtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $diffrt(reftype : reftype, reftype : reftype) : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $diffrt{`null_1?` : null?, ht_1 : heaptype, ht_2 : heaptype}(`REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(?(`NULL`_null), ht_2)) = `REF`_reftype(?(), ht_1) + def $diffrt{`null_1?` : null?, ht_1 : heaptype, ht_2 : heaptype}(REF_reftype(null_1?{null_1 <- `null_1?`}, ht_1), REF_reftype(?(NULL_null), ht_2)) = REF_reftype(?(), ht_1) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $diffrt{`null_1?` : null?, ht_1 : heaptype, ht_2 : heaptype}(`REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(?(), ht_2)) = `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1) + def $diffrt{`null_1?` : null?, ht_1 : heaptype, ht_2 : heaptype}(REF_reftype(null_1?{null_1 <- `null_1?`}, ht_1), REF_reftype(?(), ht_2)) = REF_reftype(null_1?{null_1 <- `null_1?`}, ht_1) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $as_deftype(typeuse : typeuse) : deftype @@ -87863,7 +1057,7 @@ def $tagsxt(externtype*) : tagtype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:314.1-314.23 def $tagsxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:315.1-315.44 - def $tagsxt{jt : tagtype, `xt*` : externtype*}([`TAG`_externtype(jt)] ++ xt*{xt <- `xt*`}) = [jt] ++ $tagsxt(xt*{xt <- `xt*`}) + def $tagsxt{jt : tagtype, `xt*` : externtype*}([TAG_externtype(jt)] ++ xt*{xt <- `xt*`}) = [jt] ++ $tagsxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:316.1-316.57 def $tagsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $tagsxt(xt*{xt <- `xt*`}) -- otherwise @@ -87877,7 +1071,7 @@ def $globalsxt(externtype*) : globaltype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:318.1-318.26 def $globalsxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:319.1-319.53 - def $globalsxt{gt : globaltype, `xt*` : externtype*}([`GLOBAL`_externtype(gt)] ++ xt*{xt <- `xt*`}) = [gt] ++ $globalsxt(xt*{xt <- `xt*`}) + def $globalsxt{gt : globaltype, `xt*` : externtype*}([GLOBAL_externtype(gt)] ++ xt*{xt <- `xt*`}) = [gt] ++ $globalsxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:320.1-320.63 def $globalsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $globalsxt(xt*{xt <- `xt*`}) -- otherwise @@ -87891,7 +1085,7 @@ def $memsxt(externtype*) : memtype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:322.1-322.23 def $memsxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:323.1-323.44 - def $memsxt{mt : memtype, `xt*` : externtype*}([`MEM`_externtype(mt)] ++ xt*{xt <- `xt*`}) = [mt] ++ $memsxt(xt*{xt <- `xt*`}) + def $memsxt{mt : memtype, `xt*` : externtype*}([MEM_externtype(mt)] ++ xt*{xt <- `xt*`}) = [mt] ++ $memsxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:324.1-324.57 def $memsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $memsxt(xt*{xt <- `xt*`}) -- otherwise @@ -87905,7 +1099,7 @@ def $tablesxt(externtype*) : tabletype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:326.1-326.25 def $tablesxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:327.1-327.50 - def $tablesxt{tt : tabletype, `xt*` : externtype*}([`TABLE`_externtype(tt)] ++ xt*{xt <- `xt*`}) = [tt] ++ $tablesxt(xt*{xt <- `xt*`}) + def $tablesxt{tt : tabletype, `xt*` : externtype*}([TABLE_externtype(tt)] ++ xt*{xt <- `xt*`}) = [tt] ++ $tablesxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:328.1-328.61 def $tablesxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $tablesxt(xt*{xt <- `xt*`}) -- otherwise @@ -87919,7 +1113,7 @@ def $funcsxt(externtype*) : deftype* ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:330.1-330.24 def $funcsxt([]) = [] ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:331.1-331.47 - def $funcsxt{dt : deftype, `xt*` : externtype*}([`FUNC`_externtype((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}) = [dt] ++ $funcsxt(xt*{xt <- `xt*`}) + def $funcsxt{dt : deftype, `xt*` : externtype*}([FUNC_externtype((dt : deftype <: typeuse))] ++ xt*{xt <- `xt*`}) = [dt] ++ $funcsxt(xt*{xt <- `xt*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:332.1-332.59 def $funcsxt{externtype : externtype, `xt*` : externtype*}([externtype] ++ xt*{xt <- `xt*`}) = $funcsxt(xt*{xt <- `xt*`}) -- otherwise @@ -87948,9 +1142,9 @@ def $minus_recs(typevar*, typeuse*) : (typevar*, typeuse*) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:402.1-402.39 def $minus_recs([], []) = ([], []) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:403.1-403.63 - def $minus_recs{n : n, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*}([`REC`_typevar(n)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) + def $minus_recs{n : n, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*}([REC_typevar(n)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:404.1-405.45 - def $minus_recs{x : idx, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*, `tv'*` : typevar*, `tu'*` : typeuse*}([`_IDX`_typevar(x)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = ([`_IDX`_typevar(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) + def $minus_recs{x : idx, `tv*` : typevar*, tu_1 : typeuse, `tu*` : typeuse*, `tv'*` : typevar*, `tu'*` : typeuse*}([_IDX_typevar(x)] ++ tv*{tv <- `tv*`}, [tu_1] ++ tu*{tu <- `tu*`}) = ([_IDX_typevar(x)] ++ tv'*{tv' <- `tv'*`}, [tu_1] ++ tu'*{tu' <- `tu'*`}) -- if ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) } @@ -87992,7 +1186,7 @@ def $subst_heaptype(heaptype : heaptype, typevar*, typeuse*) : heaptype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:344.1-344.112 def $subst_reftype(reftype : reftype, typevar*, typeuse*) : reftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:380.1-380.87 - def $subst_reftype{`null?` : null?, ht : heaptype, `tv*` : typevar*, `tu*` : typeuse*}(`REF`_reftype(null?{null <- `null?`}, ht), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REF`_reftype(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_reftype{`null?` : null?, ht : heaptype, `tv*` : typevar*, `tu*` : typeuse*}(REF_reftype(null?{null <- `null?`}, ht), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = REF_reftype(null?{null <- `null?`}, $subst_heaptype(ht, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:345.1-345.112 def $subst_valtype(valtype : valtype, typevar*, typeuse*) : valtype @@ -88003,7 +1197,7 @@ def $subst_valtype(valtype : valtype, typevar*, typeuse*) : valtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:384.1-384.64 def $subst_valtype{rt : reftype, `tv*` : typevar*, `tu*` : typeuse*}((rt : reftype <: valtype), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ($subst_reftype(rt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : reftype <: valtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:385.1-385.40 - def $subst_valtype{`tv*` : typevar*, `tu*` : typeuse*}(`BOT`_valtype, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `BOT`_valtype + def $subst_valtype{`tv*` : typevar*, `tu*` : typeuse*}(BOT_valtype, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = BOT_valtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:348.1-348.112 def $subst_storagetype(storagetype : storagetype, typevar*, typeuse*) : storagetype @@ -88020,27 +1214,27 @@ def $subst_fieldtype(fieldtype : fieldtype, typevar*, typeuse*) : fieldtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:351.1-351.112 def $subst_comptype(comptype : comptype, typevar*, typeuse*) : comptype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:394.1-394.85 - def $subst_comptype{`ft*` : fieldtype*, `tv*` : typevar*, `tu*` : typeuse*}(`STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `STRUCT`_comptype(`%`_list($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})) + def $subst_comptype{`ft*` : fieldtype*, `tv*` : typevar*, `tu*` : typeuse*}(STRUCT_comptype(`%`_list(ft*{ft <- `ft*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = STRUCT_comptype(`%`_list($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{ft <- `ft*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:395.1-395.81 - def $subst_comptype{ft : fieldtype, `tv*` : typevar*, `tu*` : typeuse*}(`ARRAY`_comptype(ft), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `ARRAY`_comptype($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_comptype{ft : fieldtype, `tv*` : typevar*, `tu*` : typeuse*}(ARRAY_comptype(ft), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = ARRAY_comptype($subst_fieldtype(ft, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:396.1-396.123 def $subst_comptype{`t_1*` : valtype*, `t_2*` : valtype*, `tv*` : typevar*, `tu*` : typeuse*}(`FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC%->%`_comptype(`%`_resulttype($subst_valtype(t_1, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_1 <- `t_1*`}), `%`_resulttype($subst_valtype(t_2, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{t_2 <- `t_2*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:352.1-352.112 def $subst_subtype(subtype : subtype, typevar*, typeuse*) : subtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:398.1-399.74 - def $subst_subtype{`final?` : final?, `tu'*` : typeuse*, ct : comptype, `tv*` : typevar*, `tu*` : typeuse*}(`SUB`_subtype(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `SUB`_subtype(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_subtype{`final?` : final?, `tu'*` : typeuse*, ct : comptype, `tv*` : typevar*, `tu*` : typeuse*}(SUB_subtype(final?{final <- `final?`}, tu'*{tu' <- `tu'*`}, ct), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = SUB_subtype(final?{final <- `final?`}, $subst_typeuse(tu', tv*{tv <- `tv*`}, tu*{tu <- `tu*`})*{tu' <- `tu'*`}, $subst_comptype(ct, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:353.1-353.112 def $subst_rectype(rectype : rectype, typevar*, typeuse*) : rectype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:407.1-408.45 - def $subst_rectype{`st*` : subtype*, `tv*` : typevar*, `tu*` : typeuse*, `tv'*` : typevar*, `tu'*` : typeuse*}(`REC`_rectype(`%`_list(st*{st <- `st*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `REC`_rectype(`%`_list($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})) + def $subst_rectype{`st*` : subtype*, `tv*` : typevar*, `tu*` : typeuse*, `tv'*` : typevar*, `tu'*` : typeuse*}(REC_rectype(`%`_list(st*{st <- `st*`})), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = REC_rectype(`%`_list($subst_subtype(st, tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`})*{st <- `st*`})) -- if ((tv'*{tv' <- `tv'*`}, tu'*{tu' <- `tu'*`}) = $minus_recs(tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:354.1-354.112 def $subst_deftype(deftype : deftype, typevar*, typeuse*) : deftype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:413.1-413.80 - def $subst_deftype{qt : rectype, i : n, `tv*` : typevar*, `tu*` : typeuse*}(`_DEF`_deftype(qt, i), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `_DEF`_deftype($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i) + def $subst_deftype{qt : rectype, i : n, `tv*` : typevar*, `tu*` : typeuse*}(_DEF_deftype(qt, i), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = _DEF_deftype($subst_rectype(qt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}), i) } ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec @@ -88071,15 +1265,15 @@ def $subst_tabletype(tabletype : tabletype, typevar*, typeuse*) : tabletype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_externtype(externtype : externtype, typevar*, typeuse*) : externtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{jt : tagtype, `tv*` : typevar*, `tu*` : typeuse*}(`TAG`_externtype(jt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TAG`_externtype($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_externtype{jt : tagtype, `tv*` : typevar*, `tu*` : typeuse*}(TAG_externtype(jt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = TAG_externtype($subst_tagtype(jt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{gt : globaltype, `tv*` : typevar*, `tu*` : typeuse*}(`GLOBAL`_externtype(gt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `GLOBAL`_externtype($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_externtype{gt : globaltype, `tv*` : typevar*, `tu*` : typeuse*}(GLOBAL_externtype(gt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = GLOBAL_externtype($subst_globaltype(gt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{tt : tabletype, `tv*` : typevar*, `tu*` : typeuse*}(`TABLE`_externtype(tt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `TABLE`_externtype($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_externtype{tt : tabletype, `tv*` : typevar*, `tu*` : typeuse*}(TABLE_externtype(tt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = TABLE_externtype($subst_tabletype(tt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{mt : memtype, `tv*` : typevar*, `tu*` : typeuse*}(`MEM`_externtype(mt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `MEM`_externtype($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) + def $subst_externtype{mt : memtype, `tv*` : typevar*, `tu*` : typeuse*}(MEM_externtype(mt), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = MEM_externtype($subst_memtype(mt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`})) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_externtype{dt : deftype, `tv*` : typevar*, `tu*` : typeuse*}(`FUNC`_externtype((dt : deftype <: typeuse)), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = `FUNC`_externtype(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)) + def $subst_externtype{dt : deftype, `tv*` : typevar*, `tu*` : typeuse*}(FUNC_externtype((dt : deftype <: typeuse)), tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) = FUNC_externtype(($subst_deftype(dt, tv*{tv <- `tv*`}, tu*{tu <- `tu*`}) : deftype <: typeuse)) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype @@ -88089,47 +1283,47 @@ def $subst_moduletype(moduletype : moduletype, typevar*, typeuse*) : moduletype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $subst_all_valtype(valtype : valtype, typeuse*) : valtype ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $subst_all_valtype{t : valtype, n : n, `tu*` : typeuse*, i : nat}(t, tu^n{tu <- `tu*`}) = $subst_valtype(t, `_IDX`_typevar(`%`_typeidx(i))^(i%`_comptype(resulttype_1, resulttype_2)) = $free_resulttype(resulttype_1) +++ $free_resulttype(resulttype_2) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:494.1-494.34 def $free_subtype(subtype : subtype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:553.1-554.66 - def $free_subtype{`final?` : final?, `typeuse*` : typeuse*, comptype : comptype}(`SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) = $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`}) +++ $free_comptype(comptype) + def $free_subtype{`final?` : final?, `typeuse*` : typeuse*, comptype : comptype}(SUB_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, comptype)) = $free_list($free_typeuse(typeuse)*{typeuse <- `typeuse*`}) +++ $free_comptype(comptype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:495.1-495.34 def $free_rectype(rectype : rectype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:556.1-556.70 - def $free_rectype{`subtype*` : subtype*}(`REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`}))) = $free_list($free_subtype(subtype)*{subtype <- `subtype*`}) + def $free_rectype{`subtype*` : subtype*}(REC_rectype(`%`_list(subtype*{subtype <- `subtype*`}))) = $free_list($free_subtype(subtype)*{subtype <- `subtype*`}) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:523.1-523.34 def $free_deftype(deftype : deftype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec:524.1-524.59 - def $free_deftype{rectype : rectype, n : n}(`_DEF`_deftype(rectype, n)) = $free_rectype(rectype) + def $free_deftype{rectype : rectype, n : n}(_DEF_deftype(rectype, n)) = $free_rectype(rectype) } ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec @@ -88316,7 +1510,7 @@ def $free_tabletype(tabletype : tabletype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_datatype(datatype : datatype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_datatype(`OK`_datatype) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_datatype(OK_datatype) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_elemtype(elemtype : elemtype) : free @@ -88326,15 +1520,15 @@ def $free_elemtype(elemtype : elemtype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_externtype(externtype : externtype) : free ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{tagtype : tagtype}(`TAG`_externtype(tagtype)) = $free_tagtype(tagtype) + def $free_externtype{tagtype : tagtype}(TAG_externtype(tagtype)) = $free_tagtype(tagtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{globaltype : globaltype}(`GLOBAL`_externtype(globaltype)) = $free_globaltype(globaltype) + def $free_externtype{globaltype : globaltype}(GLOBAL_externtype(globaltype)) = $free_globaltype(globaltype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{memtype : memtype}(`MEM`_externtype(memtype)) = $free_memtype(memtype) + def $free_externtype{memtype : memtype}(MEM_externtype(memtype)) = $free_memtype(memtype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{tabletype : tabletype}(`TABLE`_externtype(tabletype)) = $free_tabletype(tabletype) + def $free_externtype{tabletype : tabletype}(TABLE_externtype(tabletype)) = $free_tabletype(tabletype) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec - def $free_externtype{typeuse : typeuse}(`FUNC`_externtype(typeuse)) = $free_typeuse(typeuse) + def $free_externtype{typeuse : typeuse}(FUNC_externtype(typeuse)) = $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.2-syntax.types.spectec def $free_moduletype(moduletype : moduletype) : free @@ -88352,7 +1546,7 @@ syntax num_(numtype : numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax pack_(Pnn : Pnn)(Pnn) = iN($psizenn(Pnn)) +syntax pack_{Pnn : Pnn}(Pnn) = iN($psizenn(Pnn)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax lane_(lanetype : lanetype) @@ -88369,7 +1563,7 @@ syntax lane_(lanetype : lanetype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vec_(Vnn : Vnn)(Vnn) = vN($vsize(Vnn)) +syntax vec_{Vnn : Vnn}(Vnn) = vN($vsize(Vnn)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax lit_(storagetype : storagetype) @@ -88392,116 +1586,116 @@ syntax sz = ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax sx = - | `U` - | `S` + | U + | S ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax unop_(numtype : numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax unop_{Inn : Inn}((Inn : Inn <: numtype)) = - | `CLZ` - | `CTZ` - | `POPCNT` - | `EXTEND`(sz : sz) + | CLZ + | CTZ + | POPCNT + | EXTEND(sz : sz) -- if (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax unop_{Fnn : Fnn}((Fnn : Fnn <: numtype)) = - | `ABS` - | `NEG` - | `SQRT` - | `CEIL` - | `FLOOR` - | `TRUNC` - | `NEAREST` + | ABS + | NEG + | SQRT + | CEIL + | FLOOR + | TRUNC + | NEAREST ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax binop_(numtype : numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax binop_{Inn : Inn}((Inn : Inn <: numtype)) = - | `ADD` - | `SUB` - | `MUL` - | `DIV`(sx : sx) - | `REM`(sx : sx) - | `AND` - | `OR` - | `XOR` - | `SHL` - | `SHR`(sx : sx) - | `ROTL` - | `ROTR` + | ADD + | SUB + | MUL + | DIV(sx : sx) + | REM(sx : sx) + | AND + | OR + | XOR + | SHL + | SHR(sx : sx) + | ROTL + | ROTR ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax binop_{Fnn : Fnn}((Fnn : Fnn <: numtype)) = - | `ADD` - | `SUB` - | `MUL` - | `DIV` - | `MIN` - | `MAX` - | `COPYSIGN` + | ADD + | SUB + | MUL + | DIV + | MIN + | MAX + | COPYSIGN ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax testop_(Inn : Inn)((Inn : Inn <: numtype)) = - | `EQZ` +syntax testop_{Inn : Inn}((Inn : Inn <: numtype)) = + | EQZ ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax relop_(numtype : numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax relop_{Inn : Inn}((Inn : Inn <: numtype)) = - | `EQ` - | `NE` - | `LT`(sx : sx) - | `GT`(sx : sx) - | `LE`(sx : sx) - | `GE`(sx : sx) + | EQ + | NE + | LT(sx : sx) + | GT(sx : sx) + | LE(sx : sx) + | GE(sx : sx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax relop_{Fnn : Fnn}((Fnn : Fnn <: numtype)) = - | `EQ` - | `NE` - | `LT` - | `GT` - | `LE` - | `GE` + | EQ + | NE + | LT + | GT + | LE + | GE ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax cvtop__(numtype_1 : numtype, numtype_2 : numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax cvtop__{Inn_1 : Inn, Inn_2 : Inn}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype)) = - | `EXTEND`(sx : sx) + | EXTEND(sx : sx) -- if ($sizenn1((Inn_1 : Inn <: numtype)) < $sizenn2((Inn_2 : Inn <: numtype))) - | `WRAP` + | WRAP -- if ($sizenn1((Inn_1 : Inn <: numtype)) > $sizenn2((Inn_2 : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax cvtop__{Inn_1 : Inn, Fnn_2 : Fnn}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype)) = - | `CONVERT`(sx : sx) - | `REINTERPRET` + | CONVERT(sx : sx) + | REINTERPRET -- if ($sizenn1((Inn_1 : Inn <: numtype)) = $sizenn2((Fnn_2 : Fnn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax cvtop__{Fnn_1 : Fnn, Inn_2 : Inn}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype)) = - | `TRUNC`(sx : sx) - | `TRUNC_SAT`(sx : sx) - | `REINTERPRET` + | TRUNC(sx : sx) + | TRUNC_SAT(sx : sx) + | REINTERPRET -- if ($sizenn1((Fnn_1 : Fnn <: numtype)) = $sizenn2((Inn_2 : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype)) = - | `PROMOTE` + | PROMOTE -- if ($sizenn1((Fnn_1 : Fnn <: numtype)) < $sizenn2((Fnn_2 : Fnn <: numtype))) - | `DEMOTE` + | DEMOTE -- if ($sizenn1((Fnn_1 : Fnn <: numtype)) > $sizenn2((Fnn_2 : Fnn <: numtype))) @@ -88532,232 +1726,232 @@ def $unpackshape(shape : shape) : numtype ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax ishape = - | `%`(shape : shape){Jnn : Jnn} + | `%`(shape : shape) {Jnn : Jnn} -- if ($lanetype(shape) = (Jnn : Jnn <: lanetype)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax bshape = | `%`(shape : shape) - -- if ($lanetype(shape) = `I8`_lanetype) + -- if ($lanetype(shape) = I8_lanetype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax zero = - | `ZERO` + | ZERO ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax half = - | `LOW` - | `HIGH` + | LOW + | HIGH ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vvunop = - | `NOT` + | NOT ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vvbinop = - | `AND` - | `ANDNOT` - | `OR` - | `XOR` + | AND + | ANDNOT + | OR + | XOR ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vvternop = - | `BITSELECT` + | BITSELECT ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vvtestop = - | `ANY_TRUE` + | ANY_TRUE ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vunop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vunop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = - | `ABS` - | `NEG` - | `POPCNT` + | ABS + | NEG + | POPCNT -- if ($lsizenn((Jnn : Jnn <: lanetype)) = 8) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vunop_{Fnn : Fnn, M : M}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))) = - | `ABS` - | `NEG` - | `SQRT` - | `CEIL` - | `FLOOR` - | `TRUNC` - | `NEAREST` + | ABS + | NEG + | SQRT + | CEIL + | FLOOR + | TRUNC + | NEAREST ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vbinop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vbinop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = - | `ADD` - | `SUB` - | `ADD_SAT`(sx : sx) + | ADD + | SUB + | ADD_SAT(sx : sx) -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 16) - | `SUB_SAT`(sx : sx) + | SUB_SAT(sx : sx) -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 16) - | `MUL` + | MUL -- if ($lsizenn((Jnn : Jnn <: lanetype)) >= 16) - | `AVGRU` + | AVGRU -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 16) - | `Q15MULR_SATS` + | Q15MULR_SATS -- if ($lsizenn((Jnn : Jnn <: lanetype)) = 16) - | `RELAXED_Q15MULRS` + | RELAXED_Q15MULRS -- if ($lsizenn((Jnn : Jnn <: lanetype)) = 16) - | `MIN`(sx : sx) + | MIN(sx : sx) -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 32) - | `MAX`(sx : sx) + | MAX(sx : sx) -- if ($lsizenn((Jnn : Jnn <: lanetype)) <= 32) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vbinop_{Fnn : Fnn, M : M}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))) = - | `ADD` - | `SUB` - | `MUL` - | `DIV` - | `MIN` - | `MAX` - | `PMIN` - | `PMAX` - | `RELAXED_MIN` - | `RELAXED_MAX` + | ADD + | SUB + | MUL + | DIV + | MIN + | MAX + | PMIN + | PMAX + | RELAXED_MIN + | RELAXED_MAX ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vternop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vternop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = - | `RELAXED_LANESELECT` + | RELAXED_LANESELECT ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vternop_{Fnn : Fnn, M : M}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))) = - | `RELAXED_MADD` - | `RELAXED_NMADD` + | RELAXED_MADD + | RELAXED_NMADD ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vtestop_(Jnn : Jnn, M : M)(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = - | `ALL_TRUE` +syntax vtestop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = + | ALL_TRUE ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vrelop_(shape : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vrelop_{Jnn : Jnn, M : M}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))) = - | `EQ` - | `NE` - | `LT`(sx : sx) - -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx)) - | `GT`(sx : sx) - -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx)) - | `LE`(sx : sx) - -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx)) - | `GE`(sx : sx) - -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = `S`_sx)) + | EQ + | NE + | LT(sx : sx) + -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = S_sx)) + | GT(sx : sx) + -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = S_sx)) + | LE(sx : sx) + -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = S_sx)) + | GE(sx : sx) + -- if (($lsizenn((Jnn : Jnn <: lanetype)) =/= 64) \/ (sx = S_sx)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vrelop_{Fnn : Fnn, M : M}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))) = - | `EQ` - | `NE` - | `LT` - | `GT` - | `LE` - | `GE` + | EQ + | NE + | LT + | GT + | LE + | GE ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vshiftop_(Jnn : Jnn, M : M)(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))) = - | `SHL` - | `SHR`(sx : sx) +syntax vshiftop_{Jnn : Jnn, M : M}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)))) = + | SHL + | SHR(sx : sx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vswizzlop_(M : M)(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M)))) = - | `SWIZZLE` - | `RELAXED_SWIZZLE` +syntax vswizzlop_{M : M}(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(M)))) = + | SWIZZLE + | RELAXED_SWIZZLE ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vextunop__(Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M)(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))) = - | `EXTADD_PAIRWISE`(sx : sx) +syntax vextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))) = + | EXTADD_PAIRWISE(sx : sx) -- if ((16 <= (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) <= 32))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vextbinop__(Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M)(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))) = - | `EXTMUL`(half : half, sx : sx) +syntax vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))) = + | EXTMUL(half : half, sx : sx) -- if (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) >= 16)) - | `DOTS` + | DOTS -- if (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) - | `RELAXED_DOTS` + | RELAXED_DOTS -- if (((2 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 16)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vextternop__(Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M)(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))) = - | `RELAXED_DOT_ADDS` +syntax vextternop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)))) = + | RELAXED_DOT_ADDS -- if (((4 * $lsizenn1((Jnn_1 : Jnn <: lanetype))) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vcvtop__(shape_1 : shape, shape_2 : shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vcvtop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))) = - | `EXTEND`(half : half, sx : sx) + | EXTEND(half : half, sx : sx) -- if ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vcvtop__{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))) = - | `CONVERT`(`half?` : half?, sx : sx) - -- if (((($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32)) /\ (half?{half <- `half?`} = ?())) \/ (($sizenn2((Fnn_2 : Fnn <: numtype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (half?{half <- `half?`} = ?(`LOW`_half)))) + | CONVERT(`half?` : half?, sx : sx) + -- if (((($sizenn2((Fnn_2 : Fnn <: numtype)) = $lsizenn1((Jnn_1 : Jnn <: lanetype))) /\ ($lsizenn1((Jnn_1 : Jnn <: lanetype)) = 32)) /\ (half?{half <- `half?`} = ?())) \/ (($sizenn2((Fnn_2 : Fnn <: numtype)) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) /\ (half?{half <- `half?`} = ?(LOW_half)))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vcvtop__{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))) = - | `TRUNC_SAT`(sx : sx, `zero?` : zero?) - -- if (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero)))) - | `RELAXED_TRUNC`(sx : sx, `zero?` : zero?) - -- if (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(`ZERO`_zero)))) + | TRUNC_SAT(sx : sx, `zero?` : zero?) + -- if (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(ZERO_zero)))) + | RELAXED_TRUNC(sx : sx, `zero?` : zero?) + -- if (((($sizenn1((Fnn_1 : Fnn <: numtype)) = $lsizenn2((Jnn_2 : Jnn <: lanetype))) /\ ($lsizenn2((Jnn_2 : Jnn <: lanetype)) = 32)) /\ (zero?{zero <- `zero?`} = ?())) \/ (($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $lsizenn2((Jnn_2 : Jnn <: lanetype)))) /\ (zero?{zero <- `zero?`} = ?(ZERO_zero)))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax vcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))) = - | `DEMOTE`(zero : zero) + | DEMOTE(zero : zero) -- if ($sizenn1((Fnn_1 : Fnn <: numtype)) = (2 * $sizenn2((Fnn_2 : Fnn <: numtype)))) - | `PROMOTELOW` + | PROMOTELOW -- if ((2 * $sizenn1((Fnn_1 : Fnn <: numtype))) = $sizenn2((Fnn_2 : Fnn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax memarg = { - `ALIGN` u32 , - `OFFSET` u64 + ALIGN u32, + OFFSET u64 } ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax loadop_(Inn : Inn)((Inn : Inn <: numtype)) = +syntax loadop_{Inn : Inn}((Inn : Inn <: numtype)) = | `%_%`(sz : sz, sx : sx) -- if (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax storeop_(Inn : Inn)((Inn : Inn <: numtype)) = +syntax storeop_{Inn : Inn}((Inn : Inn <: numtype)) = | `%`(sz : sz) -- if (sz!`%`_sz.0 < $sizenn((Inn : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec -syntax vloadop_(vectype : vectype)(vectype) = +syntax vloadop_{vectype : vectype}(vectype) = | `SHAPE%X%_%`(sz : sz, M : M, sx : sx) -- if (((sz!`%`_sz.0 * M) : nat <:> rat) = (($vsize(vectype) : nat <:> rat) / (2 : nat <:> rat))) - | `SPLAT`(sz : sz) - | `ZERO`(sz : sz) + | SPLAT(sz : sz) + | ZERO(sz : sz) -- if (sz!`%`_sz.0 >= 32) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax blocktype = - | `_RESULT`(`valtype?` : valtype?) - | `_IDX`(typeidx : typeidx) + | _RESULT(`valtype?` : valtype?) + | _IDX(typeidx : typeidx) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax addr = nat @@ -88793,10 +1987,10 @@ syntax addrref = ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec syntax catch = - | `CATCH`(tagidx : tagidx, labelidx : labelidx) - | `CATCH_REF`(tagidx : tagidx, labelidx : labelidx) - | `CATCH_ALL`(labelidx : labelidx) - | `CATCH_ALL_REF`(labelidx : labelidx) + | CATCH(tagidx : tagidx, labelidx : labelidx) + | CATCH_REF(tagidx : tagidx, labelidx : labelidx) + | CATCH_ALL(labelidx : labelidx) + | CATCH_ALL_REF(labelidx : labelidx) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax dataaddr = addr @@ -88818,37 +2012,37 @@ syntax tagaddr = addr ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax externaddr = - | `TAG`(tagaddr : tagaddr) - | `GLOBAL`(globaladdr : globaladdr) - | `MEM`(memaddr : memaddr) - | `TABLE`(tableaddr : tableaddr) - | `FUNC`(funcaddr : funcaddr) + | TAG(tagaddr : tagaddr) + | GLOBAL(globaladdr : globaladdr) + | MEM(memaddr : memaddr) + | TABLE(tableaddr : tableaddr) + | FUNC(funcaddr : funcaddr) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax exportinst = { - `NAME` name , - `ADDR` externaddr + NAME name, + ADDR externaddr } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax moduleinst = { - `TYPES` deftype* , - `TAGS` tagaddr* , - `GLOBALS` globaladdr* , - `MEMS` memaddr* , - `TABLES` tableaddr* , - `FUNCS` funcaddr* , - `DATAS` dataaddr* , - `ELEMS` elemaddr* , - `EXPORTS` exportinst* + TYPES deftype*, + TAGS tagaddr*, + GLOBALS globaladdr*, + MEMS memaddr*, + TABLES tableaddr*, + FUNCS funcaddr*, + DATAS dataaddr*, + ELEMS elemaddr*, + EXPORTS exportinst* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax val = - | `CONST`(numtype : numtype, num_(numtype)) - | `VCONST`(vectype : vectype, vec_(vectype)) + | CONST(numtype : numtype, num_(numtype)) + | VCONST(vectype : vectype, vec_(vectype)) | `REF.I31_NUM`(u31 : u31) | `REF.STRUCT_ADDR`(structaddr : structaddr) | `REF.ARRAY_ADDR`(arrayaddr : arrayaddr) @@ -88861,8 +2055,8 @@ syntax val = ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax frame = { - `LOCALS` val?* , - `MODULE` moduleinst + LOCALS val?*, + MODULE moduleinst } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec @@ -88870,30 +2064,30 @@ rec { ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:136.1-142.9 syntax instr = - | `NOP` - | `UNREACHABLE` - | `DROP` - | `SELECT`(`valtype*?` : valtype*?) - | `BLOCK`(blocktype : blocktype, `instr*` : instr*) - | `LOOP`(blocktype : blocktype, `instr*` : instr*) + | NOP + | UNREACHABLE + | DROP + | SELECT(`valtype*?` : valtype*?) + | BLOCK(blocktype : blocktype, `instr*` : instr*) + | LOOP(blocktype : blocktype, `instr*` : instr*) | `IF%%ELSE%`(blocktype : blocktype, `instr*` : instr*, `instr*` : instr*) - | `BR`(labelidx : labelidx) - | `BR_IF`(labelidx : labelidx) - | `BR_TABLE`(`labelidx*` : labelidx*, labelidx : labelidx) - | `BR_ON_NULL`(labelidx : labelidx) - | `BR_ON_NON_NULL`(labelidx : labelidx) - | `BR_ON_CAST`(labelidx : labelidx, reftype : reftype, reftype : reftype) - | `BR_ON_CAST_FAIL`(labelidx : labelidx, reftype : reftype, reftype : reftype) - | `CALL`(funcidx : funcidx) - | `CALL_REF`(typeuse : typeuse) - | `CALL_INDIRECT`(tableidx : tableidx, typeuse : typeuse) - | `RETURN` - | `RETURN_CALL`(funcidx : funcidx) - | `RETURN_CALL_REF`(typeuse : typeuse) - | `RETURN_CALL_INDIRECT`(tableidx : tableidx, typeuse : typeuse) - | `THROW`(tagidx : tagidx) - | `THROW_REF` - | `TRY_TABLE`(blocktype : blocktype, list(syntax catch), `instr*` : instr*) + | BR(labelidx : labelidx) + | BR_IF(labelidx : labelidx) + | BR_TABLE(`labelidx*` : labelidx*, labelidx : labelidx) + | BR_ON_NULL(labelidx : labelidx) + | BR_ON_NON_NULL(labelidx : labelidx) + | BR_ON_CAST(labelidx : labelidx, reftype : reftype, reftype : reftype) + | BR_ON_CAST_FAIL(labelidx : labelidx, reftype : reftype, reftype : reftype) + | CALL(funcidx : funcidx) + | CALL_REF(typeuse : typeuse) + | CALL_INDIRECT(tableidx : tableidx, typeuse : typeuse) + | RETURN + | RETURN_CALL(funcidx : funcidx) + | RETURN_CALL_REF(typeuse : typeuse) + | RETURN_CALL_INDIRECT(tableidx : tableidx, typeuse : typeuse) + | THROW(tagidx : tagidx) + | THROW_REF + | TRY_TABLE(blocktype : blocktype, list(syntax catch), `instr*` : instr*) | `LOCAL.GET`(localidx : localidx) | `LOCAL.SET`(localidx : localidx) | `LOCAL.TEE`(localidx : localidx) @@ -88907,12 +2101,12 @@ syntax instr = | `TABLE.COPY`(tableidx : tableidx, tableidx : tableidx) | `TABLE.INIT`(tableidx : tableidx, elemidx : elemidx) | `ELEM.DROP`(elemidx : elemidx) - | `LOAD`(numtype : numtype, loadop_(numtype)?, memidx : memidx, memarg : memarg) - | `STORE`(numtype : numtype, storeop_(numtype)?, memidx : memidx, memarg : memarg) - | `VLOAD`(vectype : vectype, vloadop_(vectype)?, memidx : memidx, memarg : memarg) - | `VLOAD_LANE`(vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx) - | `VSTORE`(vectype : vectype, memidx : memidx, memarg : memarg) - | `VSTORE_LANE`(vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx) + | LOAD(numtype : numtype, loadop_(numtype)?, memidx : memidx, memarg : memarg) + | STORE(numtype : numtype, storeop_(numtype)?, memidx : memidx, memarg : memarg) + | VLOAD(vectype : vectype, vloadop_(vectype)?, memidx : memidx, memarg : memarg) + | VLOAD_LANE(vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx) + | VSTORE(vectype : vectype, memidx : memidx, memarg : memarg) + | VSTORE_LANE(vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx) | `MEMORY.SIZE`(memidx : memidx) | `MEMORY.GROW`(memidx : memidx) | `MEMORY.FILL`(memidx : memidx) @@ -88946,37 +2140,37 @@ syntax instr = | `ARRAY.INIT_ELEM`(typeidx : typeidx, elemidx : elemidx) | `EXTERN.CONVERT_ANY` | `ANY.CONVERT_EXTERN` - | `CONST`(numtype : numtype, num_(numtype)) - | `UNOP`(numtype : numtype, unop_(numtype)) - | `BINOP`(numtype : numtype, binop_(numtype)) - | `TESTOP`(numtype : numtype, testop_(numtype)) - | `RELOP`(numtype : numtype, relop_(numtype)) - | `CVTOP`(numtype_1 : numtype, numtype_2 : numtype, cvtop__(numtype_2, numtype_1)) - | `VCONST`(vectype : vectype, vec_(vectype)) - | `VVUNOP`(vectype : vectype, vvunop : vvunop) - | `VVBINOP`(vectype : vectype, vvbinop : vvbinop) - | `VVTERNOP`(vectype : vectype, vvternop : vvternop) - | `VVTESTOP`(vectype : vectype, vvtestop : vvtestop) - | `VUNOP`(shape : shape, vunop_(shape)) - | `VBINOP`(shape : shape, vbinop_(shape)) - | `VTERNOP`(shape : shape, vternop_(shape)) - | `VTESTOP`(shape : shape, vtestop_(shape)) - | `VRELOP`(shape : shape, vrelop_(shape)) - | `VSHIFTOP`(ishape : ishape, vshiftop_(ishape)) - | `VBITMASK`(ishape : ishape) - | `VSWIZZLOP`(bshape : bshape, vswizzlop_(bshape)) - | `VSHUFFLE`(bshape : bshape, `laneidx*` : laneidx*) + | CONST(numtype : numtype, num_(numtype)) + | UNOP(numtype : numtype, unop_(numtype)) + | BINOP(numtype : numtype, binop_(numtype)) + | TESTOP(numtype : numtype, testop_(numtype)) + | RELOP(numtype : numtype, relop_(numtype)) + | CVTOP(numtype_1 : numtype, numtype_2 : numtype, cvtop__(numtype_2, numtype_1)) + | VCONST(vectype : vectype, vec_(vectype)) + | VVUNOP(vectype : vectype, vvunop : vvunop) + | VVBINOP(vectype : vectype, vvbinop : vvbinop) + | VVTERNOP(vectype : vectype, vvternop : vvternop) + | VVTESTOP(vectype : vectype, vvtestop : vvtestop) + | VUNOP(shape : shape, vunop_(shape)) + | VBINOP(shape : shape, vbinop_(shape)) + | VTERNOP(shape : shape, vternop_(shape)) + | VTESTOP(shape : shape, vtestop_(shape)) + | VRELOP(shape : shape, vrelop_(shape)) + | VSHIFTOP(ishape : ishape, vshiftop_(ishape)) + | VBITMASK(ishape : ishape) + | VSWIZZLOP(bshape : bshape, vswizzlop_(bshape)) + | VSHUFFLE(bshape : bshape, `laneidx*` : laneidx*) -- if (`%`_dim(|laneidx*{laneidx <- `laneidx*`}|) = $dim(bshape!`%`_bshape.0)) - | `VEXTUNOP`(ishape_1 : ishape, ishape_2 : ishape, vextunop__(ishape_2, ishape_1)) - | `VEXTBINOP`(ishape_1 : ishape, ishape_2 : ishape, vextbinop__(ishape_2, ishape_1)) - | `VEXTTERNOP`(ishape_1 : ishape, ishape_2 : ishape, vextternop__(ishape_2, ishape_1)) - | `VNARROW`(ishape_1 : ishape, ishape_2 : ishape, sx : sx) + | VEXTUNOP(ishape_1 : ishape, ishape_2 : ishape, vextunop__(ishape_2, ishape_1)) + | VEXTBINOP(ishape_1 : ishape, ishape_2 : ishape, vextbinop__(ishape_2, ishape_1)) + | VEXTTERNOP(ishape_1 : ishape, ishape_2 : ishape, vextternop__(ishape_2, ishape_1)) + | VNARROW(ishape_1 : ishape, ishape_2 : ishape, sx : sx) -- if (($lsize($lanetype(ishape_2!`%`_ishape.0)) = (2 * $lsize($lanetype(ishape_1!`%`_ishape.0)))) /\ ((2 * $lsize($lanetype(ishape_1!`%`_ishape.0))) <= 32)) - | `VCVTOP`(shape_1 : shape, shape_2 : shape, vcvtop__(shape_2, shape_1)) - | `VSPLAT`(shape : shape) - | `VEXTRACT_LANE`(shape : shape, `sx?` : sx?, laneidx : laneidx) - -- if ((sx?{sx <- `sx?`} = ?()) <=> ($lanetype(shape) <- [`I32`_lanetype `I64`_lanetype `F32`_lanetype `F64`_lanetype])) - | `VREPLACE_LANE`(shape : shape, laneidx : laneidx) + | VCVTOP(shape_1 : shape, shape_2 : shape, vcvtop__(shape_2, shape_1)) + | VSPLAT(shape : shape) + | VEXTRACT_LANE(shape : shape, `sx?` : sx?, laneidx : laneidx) + -- if ((sx?{sx <- `sx?`} = ?()) <=> ($lanetype(shape) <- [I32_lanetype I64_lanetype F32_lanetype F64_lanetype])) + | VREPLACE_LANE(shape : shape, laneidx : laneidx) | `REF.I31_NUM`(u31 : u31) | `REF.STRUCT_ADDR`(structaddr : structaddr) | `REF.ARRAY_ADDR`(arrayaddr : arrayaddr) @@ -88987,7 +2181,7 @@ syntax instr = | `LABEL_%{%}%`(n : n, `instr*` : instr*, `instr*` : instr*) | `FRAME_%{%}%`(n : n, frame : frame, `instr*` : instr*) | `HANDLER_%{%}%`(n : n, `catch*` : catch*, `instr*` : instr*) - | `TRAP` + | TRAP } ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec @@ -88996,14 +2190,14 @@ syntax expr = instr* ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $memarg0 : memarg ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $memarg0 = {`ALIGN` `%`_u32(0), `OFFSET` `%`_u64(0)} + def $memarg0 = {ALIGN `%`_u32(0), OFFSET `%`_u64(0)} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $const(consttype : consttype, lit_ : lit_((consttype : consttype <: storagetype))) : instr ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $const{numtype : numtype, c : lit_(((numtype : numtype <: consttype) : consttype <: storagetype))}((numtype : numtype <: consttype), c) = `CONST`_instr(numtype, c) + def $const{numtype : numtype, c : lit_(((numtype : numtype <: consttype) : consttype <: storagetype))}((numtype : numtype <: consttype), c) = CONST_instr(numtype, c) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $const{vectype : vectype, c : lit_(((vectype : vectype <: consttype) : consttype <: storagetype))}((vectype : vectype <: consttype), c) = `VCONST`_instr(vectype, c) + def $const{vectype : vectype, c : lit_(((vectype : vectype <: consttype) : consttype <: storagetype))}((vectype : vectype <: consttype), c) = VCONST_instr(vectype, c) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $free_shape(shape : shape) : free @@ -89013,9 +2207,9 @@ def $free_shape(shape : shape) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec def $free_blocktype(blocktype : blocktype) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_blocktype{`valtype?` : valtype?}(`_RESULT`_blocktype(valtype?{valtype <- `valtype?`})) = $free_opt($free_valtype(valtype)?{valtype <- `valtype?`}) + def $free_blocktype{`valtype?` : valtype?}(_RESULT_blocktype(valtype?{valtype <- `valtype?`})) = $free_opt($free_valtype(valtype)?{valtype <- `valtype?`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec - def $free_blocktype{typeidx : typeidx}(`_IDX`_blocktype(typeidx)) = $free_typeidx(typeidx) + def $free_blocktype{typeidx : typeidx}(_IDX_blocktype(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec rec { @@ -89036,111 +2230,111 @@ rec { ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:417.1-417.30 def $free_instr(instr : instr) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:428.1-428.26 - def $free_instr(`NOP`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_instr(NOP_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:429.1-429.34 - def $free_instr(`UNREACHABLE`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_instr(UNREACHABLE_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:430.1-430.27 - def $free_instr(`DROP`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_instr(DROP_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:431.1-431.86 - def $free_instr{`valtype*?` : valtype*?}(`SELECT`_instr(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})) = $free_opt($free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`}) + def $free_instr{`valtype*?` : valtype*?}(SELECT_instr(valtype*{valtype <- `valtype*`}?{`valtype*` <- `valtype*?`})) = $free_opt($free_list($free_valtype(valtype)*{valtype <- `valtype*`})?{`valtype*` <- `valtype*?`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:433.1-433.92 - def $free_instr{blocktype : blocktype, `instr*` : instr*}(`BLOCK`_instr(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) + def $free_instr{blocktype : blocktype, `instr*` : instr*}(BLOCK_instr(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:434.1-434.91 - def $free_instr{blocktype : blocktype, `instr*` : instr*}(`LOOP`_instr(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) + def $free_instr{blocktype : blocktype, `instr*` : instr*}(LOOP_instr(blocktype, instr*{instr <- `instr*`})) = $free_blocktype(blocktype) +++ $free_block(instr*{instr <- `instr*`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:435.1-436.79 def $free_instr{blocktype : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}(`IF%%ELSE%`_instr(blocktype, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})) = $free_blocktype(blocktype) +++ $free_block(instr_1*{instr_1 <- `instr_1*`}) +++ $free_block(instr_2*{instr_2 <- `instr_2*`}) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:438.1-438.56 - def $free_instr{labelidx : labelidx}(`BR`_instr(labelidx)) = $free_labelidx(labelidx) + def $free_instr{labelidx : labelidx}(BR_instr(labelidx)) = $free_labelidx(labelidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:439.1-439.59 - def $free_instr{labelidx : labelidx}(`BR_IF`_instr(labelidx)) = $free_labelidx(labelidx) + def $free_instr{labelidx : labelidx}(BR_IF_instr(labelidx)) = $free_labelidx(labelidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:440.1-441.69 - def $free_instr{`labelidx*` : labelidx*, labelidx' : labelidx}(`BR_TABLE`_instr(labelidx*{labelidx <- `labelidx*`}, labelidx')) = $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`}) +++ $free_labelidx(labelidx') + def $free_instr{`labelidx*` : labelidx*, labelidx' : labelidx}(BR_TABLE_instr(labelidx*{labelidx <- `labelidx*`}, labelidx')) = $free_list($free_labelidx(labelidx)*{labelidx <- `labelidx*`}) +++ $free_labelidx(labelidx') ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:442.1-442.64 - def $free_instr{labelidx : labelidx}(`BR_ON_NULL`_instr(labelidx)) = $free_labelidx(labelidx) + def $free_instr{labelidx : labelidx}(BR_ON_NULL_instr(labelidx)) = $free_labelidx(labelidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:443.1-443.68 - def $free_instr{labelidx : labelidx}(`BR_ON_NON_NULL`_instr(labelidx)) = $free_labelidx(labelidx) + def $free_instr{labelidx : labelidx}(BR_ON_NON_NULL_instr(labelidx)) = $free_labelidx(labelidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:444.1-445.83 - def $free_instr{labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST`_instr(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) + def $free_instr{labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(BR_ON_CAST_instr(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:446.1-447.83 - def $free_instr{labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(`BR_ON_CAST_FAIL`_instr(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) + def $free_instr{labelidx : labelidx, reftype_1 : reftype, reftype_2 : reftype}(BR_ON_CAST_FAIL_instr(labelidx, reftype_1, reftype_2)) = $free_labelidx(labelidx) +++ $free_reftype(reftype_1) +++ $free_reftype(reftype_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:449.1-449.55 - def $free_instr{funcidx : funcidx}(`CALL`_instr(funcidx)) = $free_funcidx(funcidx) + def $free_instr{funcidx : funcidx}(CALL_instr(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:450.1-450.59 - def $free_instr{typeuse : typeuse}(`CALL_REF`_instr(typeuse)) = $free_typeuse(typeuse) + def $free_instr{typeuse : typeuse}(CALL_REF_instr(typeuse)) = $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:451.1-452.53 - def $free_instr{tableidx : tableidx, typeuse : typeuse}(`CALL_INDIRECT`_instr(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) + def $free_instr{tableidx : tableidx, typeuse : typeuse}(CALL_INDIRECT_instr(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:453.1-453.29 - def $free_instr(`RETURN`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_instr(RETURN_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:454.1-454.62 - def $free_instr{funcidx : funcidx}(`RETURN_CALL`_instr(funcidx)) = $free_funcidx(funcidx) + def $free_instr{funcidx : funcidx}(RETURN_CALL_instr(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:455.1-455.66 - def $free_instr{typeuse : typeuse}(`RETURN_CALL_REF`_instr(typeuse)) = $free_typeuse(typeuse) + def $free_instr{typeuse : typeuse}(RETURN_CALL_REF_instr(typeuse)) = $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:456.1-457.53 - def $free_instr{tableidx : tableidx, typeuse : typeuse}(`RETURN_CALL_INDIRECT`_instr(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) + def $free_instr{tableidx : tableidx, typeuse : typeuse}(RETURN_CALL_INDIRECT_instr(tableidx, typeuse)) = $free_tableidx(tableidx) +++ $free_typeuse(typeuse) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:459.1-459.63 - def $free_instr{numtype : numtype, numlit : num_(numtype)}(`CONST`_instr(numtype, numlit)) = $free_numtype(numtype) + def $free_instr{numtype : numtype, numlit : num_(numtype)}(CONST_instr(numtype, numlit)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:460.1-460.60 - def $free_instr{numtype : numtype, unop : unop_(numtype)}(`UNOP`_instr(numtype, unop)) = $free_numtype(numtype) + def $free_instr{numtype : numtype, unop : unop_(numtype)}(UNOP_instr(numtype, unop)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:461.1-461.62 - def $free_instr{numtype : numtype, binop : binop_(numtype)}(`BINOP`_instr(numtype, binop)) = $free_numtype(numtype) + def $free_instr{numtype : numtype, binop : binop_(numtype)}(BINOP_instr(numtype, binop)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:462.1-462.64 - def $free_instr{numtype : numtype, testop : testop_(numtype)}(`TESTOP`_instr(numtype, testop)) = $free_numtype(numtype) + def $free_instr{numtype : numtype, testop : testop_(numtype)}(TESTOP_instr(numtype, testop)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:463.1-463.62 - def $free_instr{numtype : numtype, relop : relop_(numtype)}(`RELOP`_instr(numtype, relop)) = $free_numtype(numtype) + def $free_instr{numtype : numtype, relop : relop_(numtype)}(RELOP_instr(numtype, relop)) = $free_numtype(numtype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:464.1-465.55 - def $free_instr{numtype_1 : numtype, numtype_2 : numtype, cvtop : cvtop__(numtype_2, numtype_1)}(`CVTOP`_instr(numtype_1, numtype_2, cvtop)) = $free_numtype(numtype_1) +++ $free_numtype(numtype_2) + def $free_instr{numtype_1 : numtype, numtype_2 : numtype, cvtop : cvtop__(numtype_2, numtype_1)}(CVTOP_instr(numtype_1, numtype_2, cvtop)) = $free_numtype(numtype_1) +++ $free_numtype(numtype_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:467.1-467.64 - def $free_instr{vectype : vectype, veclit : vec_(vectype)}(`VCONST`_instr(vectype, veclit)) = $free_vectype(vectype) + def $free_instr{vectype : vectype, veclit : vec_(vectype)}(VCONST_instr(vectype, veclit)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:468.1-468.64 - def $free_instr{vectype : vectype, vvunop : vvunop}(`VVUNOP`_instr(vectype, vvunop)) = $free_vectype(vectype) + def $free_instr{vectype : vectype, vvunop : vvunop}(VVUNOP_instr(vectype, vvunop)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:469.1-469.66 - def $free_instr{vectype : vectype, vvbinop : vvbinop}(`VVBINOP`_instr(vectype, vvbinop)) = $free_vectype(vectype) + def $free_instr{vectype : vectype, vvbinop : vvbinop}(VVBINOP_instr(vectype, vvbinop)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:470.1-470.68 - def $free_instr{vectype : vectype, vvternop : vvternop}(`VVTERNOP`_instr(vectype, vvternop)) = $free_vectype(vectype) + def $free_instr{vectype : vectype, vvternop : vvternop}(VVTERNOP_instr(vectype, vvternop)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:471.1-471.68 - def $free_instr{vectype : vectype, vvtestop : vvtestop}(`VVTESTOP`_instr(vectype, vvtestop)) = $free_vectype(vectype) + def $free_instr{vectype : vectype, vvtestop : vvtestop}(VVTESTOP_instr(vectype, vvtestop)) = $free_vectype(vectype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:472.1-472.56 - def $free_instr{shape : shape, vunop : vunop_(shape)}(`VUNOP`_instr(shape, vunop)) = $free_shape(shape) + def $free_instr{shape : shape, vunop : vunop_(shape)}(VUNOP_instr(shape, vunop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:473.1-473.58 - def $free_instr{shape : shape, vbinop : vbinop_(shape)}(`VBINOP`_instr(shape, vbinop)) = $free_shape(shape) + def $free_instr{shape : shape, vbinop : vbinop_(shape)}(VBINOP_instr(shape, vbinop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:474.1-474.60 - def $free_instr{shape : shape, vternop : vternop_(shape)}(`VTERNOP`_instr(shape, vternop)) = $free_shape(shape) + def $free_instr{shape : shape, vternop : vternop_(shape)}(VTERNOP_instr(shape, vternop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:475.1-475.60 - def $free_instr{shape : shape, vtestop : vtestop_(shape)}(`VTESTOP`_instr(shape, vtestop)) = $free_shape(shape) + def $free_instr{shape : shape, vtestop : vtestop_(shape)}(VTESTOP_instr(shape, vtestop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:476.1-476.58 - def $free_instr{shape : shape, vrelop : vrelop_(shape)}(`VRELOP`_instr(shape, vrelop)) = $free_shape(shape) + def $free_instr{shape : shape, vrelop : vrelop_(shape)}(VRELOP_instr(shape, vrelop)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:477.1-477.64 - def $free_instr{ishape : ishape, vshiftop : vshiftop_(ishape)}(`VSHIFTOP`_instr(ishape, vshiftop)) = $free_shape(ishape!`%`_ishape.0) + def $free_instr{ishape : ishape, vshiftop : vshiftop_(ishape)}(VSHIFTOP_instr(ishape, vshiftop)) = $free_shape(ishape!`%`_ishape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:478.1-478.55 - def $free_instr{ishape : ishape}(`VBITMASK`_instr(ishape)) = $free_shape(ishape!`%`_ishape.0) + def $free_instr{ishape : ishape}(VBITMASK_instr(ishape)) = $free_shape(ishape!`%`_ishape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:479.1-479.66 - def $free_instr{bshape : bshape, vswizzlop : vswizzlop_(bshape)}(`VSWIZZLOP`_instr(bshape, vswizzlop)) = $free_shape(bshape!`%`_bshape.0) + def $free_instr{bshape : bshape, vswizzlop : vswizzlop_(bshape)}(VSWIZZLOP_instr(bshape, vswizzlop)) = $free_shape(bshape!`%`_bshape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:480.1-480.64 - def $free_instr{bshape : bshape, `laneidx*` : laneidx*}(`VSHUFFLE`_instr(bshape, laneidx*{laneidx <- `laneidx*`})) = $free_shape(bshape!`%`_bshape.0) + def $free_instr{bshape : bshape, `laneidx*` : laneidx*}(VSHUFFLE_instr(bshape, laneidx*{laneidx <- `laneidx*`})) = $free_shape(bshape!`%`_bshape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:481.1-482.49 - def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextunop : vextunop__(ishape_2, ishape_1)}(`VEXTUNOP`_instr(ishape_1, ishape_2, vextunop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) + def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextunop : vextunop__(ishape_2, ishape_1)}(VEXTUNOP_instr(ishape_1, ishape_2, vextunop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:483.1-484.49 - def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextbinop : vextbinop__(ishape_2, ishape_1)}(`VEXTBINOP`_instr(ishape_1, ishape_2, vextbinop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) + def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextbinop : vextbinop__(ishape_2, ishape_1)}(VEXTBINOP_instr(ishape_1, ishape_2, vextbinop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:485.1-486.49 - def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextternop : vextternop__(ishape_2, ishape_1)}(`VEXTTERNOP`_instr(ishape_1, ishape_2, vextternop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) + def $free_instr{ishape_1 : ishape, ishape_2 : ishape, vextternop : vextternop__(ishape_2, ishape_1)}(VEXTTERNOP_instr(ishape_1, ishape_2, vextternop)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:487.1-488.49 - def $free_instr{ishape_1 : ishape, ishape_2 : ishape, sx : sx}(`VNARROW`_instr(ishape_1, ishape_2, sx)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) + def $free_instr{ishape_1 : ishape, ishape_2 : ishape, sx : sx}(VNARROW_instr(ishape_1, ishape_2, sx)) = $free_shape(ishape_1!`%`_ishape.0) +++ $free_shape(ishape_2!`%`_ishape.0) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:489.1-490.47 - def $free_instr{shape_1 : shape, shape_2 : shape, vcvtop : vcvtop__(shape_2, shape_1)}(`VCVTOP`_instr(shape_1, shape_2, vcvtop)) = $free_shape(shape_1) +++ $free_shape(shape_2) + def $free_instr{shape_1 : shape, shape_2 : shape, vcvtop : vcvtop__(shape_2, shape_1)}(VCVTOP_instr(shape_1, shape_2, vcvtop)) = $free_shape(shape_1) +++ $free_shape(shape_2) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:491.1-491.51 - def $free_instr{shape : shape}(`VSPLAT`_instr(shape)) = $free_shape(shape) + def $free_instr{shape : shape}(VSPLAT_instr(shape)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:492.1-492.70 - def $free_instr{shape : shape, `sx?` : sx?, laneidx : laneidx}(`VEXTRACT_LANE`_instr(shape, sx?{sx <- `sx?`}, laneidx)) = $free_shape(shape) + def $free_instr{shape : shape, `sx?` : sx?, laneidx : laneidx}(VEXTRACT_LANE_instr(shape, sx?{sx <- `sx?`}, laneidx)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:493.1-493.66 - def $free_instr{shape : shape, laneidx : laneidx}(`VREPLACE_LANE`_instr(shape, laneidx)) = $free_shape(shape) + def $free_instr{shape : shape, laneidx : laneidx}(VREPLACE_LANE_instr(shape, laneidx)) = $free_shape(shape) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:495.1-495.62 def $free_instr{heaptype : heaptype}(`REF.NULL`_instr(heaptype)) = $free_heaptype(heaptype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:496.1-496.34 - def $free_instr(`REF.IS_NULL`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_instr(`REF.IS_NULL`_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:497.1-497.38 - def $free_instr(`REF.AS_NON_NULL`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_instr(`REF.AS_NON_NULL`_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:498.1-498.29 - def $free_instr(`REF.EQ`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_instr(`REF.EQ`_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:499.1-499.59 def $free_instr{reftype : reftype}(`REF.TEST`_instr(reftype)) = $free_reftype(reftype) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:500.1-500.59 @@ -89148,11 +2342,11 @@ def $free_instr(instr : instr) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:501.1-501.59 def $free_instr{funcidx : funcidx}(`REF.FUNC`_instr(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:502.1-502.30 - def $free_instr(`REF.I31`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_instr(`REF.I31`_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:504.1-504.33 - def $free_instr{sx : sx}(`I31.GET`_instr(sx)) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_instr{sx : sx}(`I31.GET`_instr(sx)) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:506.1-506.41 - def $free_instr{typeidx : typeidx}(`STRUCT.NEW`_instr(typeidx)) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_instr{typeidx : typeidx}(`STRUCT.NEW`_instr(typeidx)) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:507.1-507.69 def $free_instr{typeidx : typeidx}(`STRUCT.NEW_DEFAULT`_instr(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:508.1-508.69 @@ -89174,7 +2368,7 @@ def $free_instr(instr : instr) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:519.1-519.60 def $free_instr{typeidx : typeidx}(`ARRAY.SET`_instr(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:520.1-520.32 - def $free_instr(`ARRAY.LEN`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_instr(`ARRAY.LEN`_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:521.1-521.61 def $free_instr{typeidx : typeidx}(`ARRAY.FILL`_instr(typeidx)) = $free_typeidx(typeidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:522.1-523.55 @@ -89184,9 +2378,9 @@ def $free_instr(instr : instr) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:526.1-527.51 def $free_instr{typeidx : typeidx, elemidx : elemidx}(`ARRAY.INIT_ELEM`_instr(typeidx, elemidx)) = $free_typeidx(typeidx) +++ $free_elemidx(elemidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:529.1-529.41 - def $free_instr(`EXTERN.CONVERT_ANY`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_instr(`EXTERN.CONVERT_ANY`_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:530.1-530.41 - def $free_instr(`ANY.CONVERT_EXTERN`_instr) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_instr(`ANY.CONVERT_EXTERN`_instr) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:532.1-532.63 def $free_instr{localidx : localidx}(`LOCAL.GET`_instr(localidx)) = $free_localidx(localidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:533.1-533.63 @@ -89214,17 +2408,17 @@ def $free_instr(instr : instr) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:548.1-548.60 def $free_instr{elemidx : elemidx}(`ELEM.DROP`_instr(elemidx)) = $free_elemidx(elemidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:550.1-551.49 - def $free_instr{numtype : numtype, `loadop?` : loadop_(numtype)?, memidx : memidx, memarg : memarg}(`LOAD`_instr(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) + def $free_instr{numtype : numtype, `loadop?` : loadop_(numtype)?, memidx : memidx, memarg : memarg}(LOAD_instr(numtype, loadop?{loadop <- `loadop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:552.1-553.49 - def $free_instr{numtype : numtype, `storeop?` : storeop_(numtype)?, memidx : memidx, memarg : memarg}(`STORE`_instr(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) + def $free_instr{numtype : numtype, `storeop?` : storeop_(numtype)?, memidx : memidx, memarg : memarg}(STORE_instr(numtype, storeop?{storeop <- `storeop?`}, memidx, memarg)) = $free_numtype(numtype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:554.1-555.49 - def $free_instr{vectype : vectype, `vloadop?` : vloadop_(vectype)?, memidx : memidx, memarg : memarg}(`VLOAD`_instr(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) + def $free_instr{vectype : vectype, `vloadop?` : vloadop_(vectype)?, memidx : memidx, memarg : memarg}(VLOAD_instr(vectype, vloadop?{vloadop <- `vloadop?`}, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:556.1-557.49 - def $free_instr{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VLOAD_LANE`_instr(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) + def $free_instr{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(VLOAD_LANE_instr(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:558.1-559.49 - def $free_instr{vectype : vectype, memidx : memidx, memarg : memarg}(`VSTORE`_instr(vectype, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) + def $free_instr{vectype : vectype, memidx : memidx, memarg : memarg}(VSTORE_instr(vectype, memidx, memarg)) = $free_vectype(vectype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:560.1-561.49 - def $free_instr{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(`VSTORE_LANE`_instr(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) + def $free_instr{vectype : vectype, sz : sz, memidx : memidx, memarg : memarg, laneidx : laneidx}(VSTORE_LANE_instr(vectype, sz, memidx, memarg, laneidx)) = $free_vectype(vectype) +++ $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:562.1-562.59 def $free_instr{memidx : memidx}(`MEMORY.SIZE`_instr(memidx)) = $free_memidx(memidx) ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:563.1-563.59 @@ -89241,7 +2435,7 @@ def $free_instr(instr : instr) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:418.1-418.31 def $free_block(instr*) : free ;; ../../../../specification/wasm-3.0/1.3-syntax.instructions.spectec:577.1-578.47 - def $free_block{`instr*` : instr*, free : free}(instr*{instr <- `instr*`}) = free[`LABELS`_free = $shift_labelidxs(free.`LABELS`_free)] + def $free_block{`instr*` : instr*, free : free}(instr*{instr <- `instr*`}) = free[LABELS_free = $shift_labelidxs(free.LABELS_free)] -- if (free = $free_list($free_instr(instr)*{instr <- `instr*`})) } @@ -89252,162 +2446,162 @@ def $free_expr(expr : expr) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax elemmode = - | `ACTIVE`(tableidx : tableidx, expr : expr) - | `PASSIVE` - | `DECLARE` + | ACTIVE(tableidx : tableidx, expr : expr) + | PASSIVE + | DECLARE ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax datamode = - | `ACTIVE`(memidx : memidx, expr : expr) - | `PASSIVE` + | ACTIVE(memidx : memidx, expr : expr) + | PASSIVE ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax type = - | `TYPE`(rectype : rectype) + | TYPE(rectype : rectype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax tag = - | `TAG`(tagtype : tagtype) + | TAG(tagtype : tagtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax global = - | `GLOBAL`(globaltype : globaltype, expr : expr) + | GLOBAL(globaltype : globaltype, expr : expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax mem = - | `MEMORY`(memtype : memtype) + | MEMORY(memtype : memtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax table = - | `TABLE`(tabletype : tabletype, expr : expr) + | TABLE(tabletype : tabletype, expr : expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax data = - | `DATA`(`byte*` : byte*, datamode : datamode) + | DATA(`byte*` : byte*, datamode : datamode) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax local = - | `LOCAL`(valtype : valtype) + | LOCAL(valtype : valtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax func = - | `FUNC`(typeidx : typeidx, `local*` : local*, expr : expr) + | FUNC(typeidx : typeidx, `local*` : local*, expr : expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax elem = - | `ELEM`(reftype : reftype, `expr*` : expr*, elemmode : elemmode) + | ELEM(reftype : reftype, `expr*` : expr*, elemmode : elemmode) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax start = - | `START`(funcidx : funcidx) + | START(funcidx : funcidx) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax import = - | `IMPORT`(name : name, name : name, externtype : externtype) + | IMPORT(name : name, name : name, externtype : externtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax export = - | `EXPORT`(name : name, externidx : externidx) + | EXPORT(name : name, externidx : externidx) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec syntax module = - | `MODULE`(`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*) + | MODULE(`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_type(type : type) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_type{rectype : rectype}(`TYPE`_type(rectype)) = $free_rectype(rectype) + def $free_type{rectype : rectype}(TYPE_type(rectype)) = $free_rectype(rectype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_tag(tag : tag) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_tag{tagtype : tagtype}(`TAG`_tag(tagtype)) = $free_tagtype(tagtype) + def $free_tag{tagtype : tagtype}(TAG_tag(tagtype)) = $free_tagtype(tagtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_global(global : global) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_global{globaltype : globaltype, expr : expr}(`GLOBAL`_global(globaltype, expr)) = $free_globaltype(globaltype) +++ $free_expr(expr) + def $free_global{globaltype : globaltype, expr : expr}(GLOBAL_global(globaltype, expr)) = $free_globaltype(globaltype) +++ $free_expr(expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_mem(mem : mem) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_mem{memtype : memtype}(`MEMORY`_mem(memtype)) = $free_memtype(memtype) + def $free_mem{memtype : memtype}(MEMORY_mem(memtype)) = $free_memtype(memtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_table(table : table) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_table{tabletype : tabletype, expr : expr}(`TABLE`_table(tabletype, expr)) = $free_tabletype(tabletype) +++ $free_expr(expr) + def $free_table{tabletype : tabletype, expr : expr}(TABLE_table(tabletype, expr)) = $free_tabletype(tabletype) +++ $free_expr(expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_local(local : local) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_local{t : valtype}(`LOCAL`_local(t)) = $free_valtype(t) + def $free_local{t : valtype}(LOCAL_local(t)) = $free_valtype(t) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_func(func : func) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_func{typeidx : typeidx, `local*` : local*, expr : expr}(`FUNC`_func(typeidx, local*{local <- `local*`}, expr)) = $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[`LOCALS`_free = []] + def $free_func{typeidx : typeidx, `local*` : local*, expr : expr}(FUNC_func(typeidx, local*{local <- `local*`}, expr)) = $free_typeidx(typeidx) +++ $free_list($free_local(local)*{local <- `local*`}) +++ $free_block(expr)[LOCALS_free = []] ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_datamode(datamode : datamode) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_datamode{memidx : memidx, expr : expr}(`ACTIVE`_datamode(memidx, expr)) = $free_memidx(memidx) +++ $free_expr(expr) + def $free_datamode{memidx : memidx, expr : expr}(ACTIVE_datamode(memidx, expr)) = $free_memidx(memidx) +++ $free_expr(expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_datamode(`PASSIVE`_datamode) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_datamode(PASSIVE_datamode) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_data(data : data) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_data{`byte*` : byte*, datamode : datamode}(`DATA`_data(byte*{byte <- `byte*`}, datamode)) = $free_datamode(datamode) + def $free_data{`byte*` : byte*, datamode : datamode}(DATA_data(byte*{byte <- `byte*`}, datamode)) = $free_datamode(datamode) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_elemmode(elemmode : elemmode) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode{tableidx : tableidx, expr : expr}(`ACTIVE`_elemmode(tableidx, expr)) = $free_tableidx(tableidx) +++ $free_expr(expr) + def $free_elemmode{tableidx : tableidx, expr : expr}(ACTIVE_elemmode(tableidx, expr)) = $free_tableidx(tableidx) +++ $free_expr(expr) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode(`PASSIVE`_elemmode) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_elemmode(PASSIVE_elemmode) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elemmode(`DECLARE`_elemmode) = {`TYPES` [], `FUNCS` [], `GLOBALS` [], `TABLES` [], `MEMS` [], `ELEMS` [], `DATAS` [], `LOCALS` [], `LABELS` []} + def $free_elemmode(DECLARE_elemmode) = {TYPES [], FUNCS [], GLOBALS [], TABLES [], MEMS [], ELEMS [], DATAS [], LOCALS [], LABELS []} ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_elem(elem : elem) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_elem{reftype : reftype, `expr*` : expr*, elemmode : elemmode}(`ELEM`_elem(reftype, expr*{expr <- `expr*`}, elemmode)) = $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`}) +++ $free_elemmode(elemmode) + def $free_elem{reftype : reftype, `expr*` : expr*, elemmode : elemmode}(ELEM_elem(reftype, expr*{expr <- `expr*`}, elemmode)) = $free_reftype(reftype) +++ $free_list($free_expr(expr)*{expr <- `expr*`}) +++ $free_elemmode(elemmode) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_start(start : start) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_start{funcidx : funcidx}(`START`_start(funcidx)) = $free_funcidx(funcidx) + def $free_start{funcidx : funcidx}(START_start(funcidx)) = $free_funcidx(funcidx) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_import(import : import) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_import{name_1 : name, name_2 : name, externtype : externtype}(`IMPORT`_import(name_1, name_2, externtype)) = $free_externtype(externtype) + def $free_import{name_1 : name, name_2 : name, externtype : externtype}(IMPORT_import(name_1, name_2, externtype)) = $free_externtype(externtype) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_export(export : export) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_export{name : name, externidx : externidx}(`EXPORT`_export(name, externidx)) = $free_externidx(externidx) + def $free_export{name : name, externidx : externidx}(EXPORT_export(name, externidx)) = $free_externidx(externidx) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $free_module(module : module) : free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $free_module{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*}(`MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) = $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`}) +++ $free_list($free_export(export)*{export <- `export*`}) + def $free_module{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*}(MODULE_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) = $free_list($free_type(type)*{type <- `type*`}) +++ $free_list($free_tag(tag)*{tag <- `tag*`}) +++ $free_list($free_global(global)*{global <- `global*`}) +++ $free_list($free_mem(mem)*{mem <- `mem*`}) +++ $free_list($free_table(table)*{table <- `table*`}) +++ $free_list($free_func(func)*{func <- `func*`}) +++ $free_list($free_data(data)*{data <- `data*`}) +++ $free_list($free_elem(elem)*{elem <- `elem*`}) +++ $free_opt($free_start(start)?{start <- `start?`}) +++ $free_list($free_import(import)*{import <- `import*`}) +++ $free_list($free_export(export)*{export <- `export*`}) ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $funcidx_module(module : module) : funcidx* ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $funcidx_module{module : module}(module) = $free_module(module).`FUNCS`_free + def $funcidx_module{module : module}(module) = $free_module(module).FUNCS_free ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec def $dataidx_funcs(func*) : dataidx* ;; ../../../../specification/wasm-3.0/1.4-syntax.modules.spectec - def $dataidx_funcs{`func*` : func*}(func*{func <- `func*`}) = $free_list($free_func(func)*{func <- `func*`}).`DATAS`_free + def $dataidx_funcs{`func*` : func*}(func*{func <- `func*`}) = $free_list($free_func(func)*{func <- `func*`}).DATAS_free ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec syntax init = - | `SET` - | `UNSET` + | SET + | UNSET ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec syntax localtype = @@ -89420,19 +2614,19 @@ syntax instrtype = ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec syntax context = { - `TYPES` deftype* , - `RECS` subtype* , - `TAGS` tagtype* , - `GLOBALS` globaltype* , - `MEMS` memtype* , - `TABLES` tabletype* , - `FUNCS` deftype* , - `DATAS` datatype* , - `ELEMS` elemtype* , - `LOCALS` localtype* , - `LABELS` resulttype* , - `RETURN` resulttype? , - `REFS` funcidx* + TYPES deftype*, + RECS subtype*, + TAGS tagtype*, + GLOBALS globaltype*, + MEMS memtype*, + TABLES tabletype*, + FUNCS deftype*, + DATAS datatype*, + ELEMS elemtype*, + LOCALS localtype*, + LABELS resulttype*, + RETURN resulttype?, + REFS funcidx* } ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec @@ -89443,7 +2637,7 @@ def $with_locals(context : context, localidx*, localtype*) : context ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec:48.1-48.34 def $with_locals{C : context}(C, [], []) = C ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec:49.1-49.90 - def $with_locals{C : context, x_1 : idx, `x*` : idx*, lct_1 : localtype, `lct*` : localtype*}(C, [x_1] ++ x*{x <- `x*`}, [lct_1] ++ lct*{lct <- `lct*`}) = $with_locals(C[`LOCALS`_context[x_1!`%`_idx.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`}) + def $with_locals{C : context, x_1 : idx, `x*` : idx*, lct_1 : localtype, `lct*` : localtype*}(C, [x_1] ++ x*{x <- `x*`}, [lct_1] ++ lct*{lct <- `lct*`}) = $with_locals(C[LOCALS_context[x_1!`%`_idx.0] = lct_1], x*{x <- `x*`}, lct*{lct <- `lct*`}) } ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec @@ -89462,31 +2656,31 @@ def $clos_deftypes(deftype*) : deftype* def $clos_valtype(context : context, valtype : valtype) : valtype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_valtype{C : context, t : valtype, `dt*` : deftype*}(C, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.TYPES_context)) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_deftype(context : context, deftype : deftype) : deftype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_deftype{C : context, dt : deftype, `dt'*` : deftype*}(C, dt) = $subst_all_deftype(dt, (dt' : deftype <: typeuse)*{dt' <- `dt'*`}) - -- if (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.`TYPES`_context)) + -- if (dt'*{dt' <- `dt'*`} = $clos_deftypes(C.TYPES_context)) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_tagtype(context : context, tagtype : tagtype) : tagtype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_tagtype{C : context, jt : tagtype, `dt*` : deftype*}(C, jt) = $subst_all_tagtype(jt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.TYPES_context)) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_externtype(context : context, externtype : externtype) : externtype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_externtype{C : context, xt : externtype, `dt*` : deftype*}(C, xt) = $subst_all_externtype(xt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.TYPES_context)) ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_moduletype(context : context, moduletype : moduletype) : moduletype ;; ../../../../specification/wasm-3.0/2.0-validation.contexts.spectec def $clos_moduletype{C : context, mmt : moduletype, `dt*` : deftype*}(C, mmt) = $subst_all_moduletype(mmt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.`TYPES`_context)) + -- if (dt*{dt <- `dt*`} = $clos_deftypes(C.TYPES_context)) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Numtype_ok: `%|-%:OK`(context, numtype) @@ -89502,11 +2696,11 @@ relation Vectype_ok: `%|-%:OK`(context, vectype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec syntax oktypeidx = - | `OK`(typeidx : typeidx) + | OK(typeidx : typeidx) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec syntax oktypeidxnat = - | `OK`(typeidx : typeidx, nat) + | OK(typeidx : typeidx, nat) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Packtype_ok: `%|-%:OK`(context, packtype) @@ -89544,18 +2738,18 @@ def $before(typeuse : typeuse, typeidx : typeidx, nat : nat) : bool ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec def $before{deftype : deftype, x : idx, i : nat}((deftype : deftype <: typeuse), x, i) = true ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $before{typeidx : typeidx, x : idx, i : nat}(`_IDX`_typeuse(typeidx), x, i) = (typeidx!`%`_typeidx.0 < x!`%`_idx.0) + def $before{typeidx : typeidx, x : idx, i : nat}(_IDX_typeuse(typeidx), x, i) = (typeidx!`%`_typeidx.0 < x!`%`_idx.0) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $before{j : n, x : idx, i : nat}(`REC`_typeuse(j), x, i) = (j < i) + def $before{j : n, x : idx, i : nat}(REC_typeuse(j), x, i) = (j < i) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec def $unrollht(context : context, heaptype : heaptype) : subtype ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec def $unrollht{C : context, deftype : deftype}(C, (deftype : deftype <: heaptype)) = $unrolldt(deftype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $unrollht{C : context, typeidx : typeidx}(C, `_IDX`_heaptype(typeidx)) = $unrolldt(C.`TYPES`_context[typeidx!`%`_typeidx.0]) + def $unrollht{C : context, typeidx : typeidx}(C, _IDX_heaptype(typeidx)) = $unrolldt(C.TYPES_context[typeidx!`%`_typeidx.0]) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec - def $unrollht{C : context, i : n}(C, `REC`_heaptype(i)) = C.`RECS`_context[i] + def $unrollht{C : context, i : n}(C, REC_heaptype(i)) = C.RECS_context[i] ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec rec { @@ -89575,7 +2769,7 @@ relation Heaptype_ok: `%|-%:OK`(context, heaptype) relation Reftype_ok: `%|-%:OK`(context, reftype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:27.1-29.37 rule _{C : context, heaptype : heaptype}: - `%|-%:OK`(C, `REF`_reftype(`NULL`_null?{}, heaptype)) + `%|-%:OK`(C, REF_reftype(NULL_null?{}, heaptype)) -- Heaptype_ok: `%|-%:OK`(C, heaptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:11.1-11.91 @@ -89597,19 +2791,19 @@ relation Valtype_ok: `%|-%:OK`(context, valtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:43.1-44.16 rule bot{C : context}: - `%|-%:OK`(C, `BOT`_valtype) + `%|-%:OK`(C, BOT_valtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:12.1-12.94 relation Typeuse_ok: `%|-%:OK`(context, typeuse) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:99.1-101.30 rule typeidx{C : context, typeidx : typeidx, dt : deftype}: - `%|-%:OK`(C, `_IDX`_typeuse(typeidx)) - -- if (C.`TYPES`_context[typeidx!`%`_typeidx.0] = dt) + `%|-%:OK`(C, _IDX_typeuse(typeidx)) + -- if (C.TYPES_context[typeidx!`%`_typeidx.0] = dt) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:103.1-105.23 rule rec{C : context, i : n, st : subtype}: - `%|-%:OK`(C, `REC`_typeuse(i)) - -- if (C.`RECS`_context[i] = st) + `%|-%:OK`(C, REC_typeuse(i)) + -- if (C.RECS_context[i] = st) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:107.1-109.35 rule deftype{C : context, deftype : deftype}: @@ -89627,7 +2821,7 @@ relation Resulttype_ok: `%|-%:OK`(context, resulttype) relation Fieldtype_ok: `%|-%:OK`(context, fieldtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:123.1-125.43 rule _{C : context, storagetype : storagetype}: - `%|-%:OK`(C, `%%`_fieldtype(`MUT`_mut?{}, storagetype)) + `%|-%:OK`(C, `%%`_fieldtype(MUT_mut?{}, storagetype)) -- Storagetype_ok: `%|-%:OK`(C, storagetype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:86.1-86.106 @@ -89646,12 +2840,12 @@ relation Storagetype_ok: `%|-%:OK`(context, storagetype) relation Comptype_ok: `%|-%:OK`(context, comptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:128.1-130.42 rule struct{C : context, `fieldtype*` : fieldtype*}: - `%|-%:OK`(C, `STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))) + `%|-%:OK`(C, STRUCT_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))) -- (Fieldtype_ok: `%|-%:OK`(C, fieldtype))*{fieldtype <- `fieldtype*`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:132.1-134.39 rule array{C : context, fieldtype : fieldtype}: - `%|-%:OK`(C, `ARRAY`_comptype(fieldtype)) + `%|-%:OK`(C, ARRAY_comptype(fieldtype)) -- Fieldtype_ok: `%|-%:OK`(C, fieldtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:136.1-139.35 @@ -89664,10 +2858,10 @@ relation Comptype_ok: `%|-%:OK`(context, comptype) relation Subtype_ok: `%|-%:%`(context, subtype, oktypeidx) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:142.1-149.49 rule _{C : context, `x*` : idx*, comptype : comptype, x_0 : idx, `comptype'*` : comptype*, `x'**` : idx**}: - `%|-%:%`(C, `SUB`_subtype(`FINAL`_final?{}, `_IDX`_typeuse(x)*{x <- `x*`}, comptype), `OK`_oktypeidx(x_0)) + `%|-%:%`(C, SUB_subtype(FINAL_final?{}, _IDX_typeuse(x)*{x <- `x*`}, comptype), OK_oktypeidx(x_0)) -- if (|x*{x <- `x*`}| <= 1) -- (if (x!`%`_idx.0 < x_0!`%`_idx.0))*{x <- `x*`} - -- (if ($unrolldt(C.`TYPES`_context[x!`%`_idx.0]) = `SUB`_subtype(?(), `_IDX`_typeuse(x')*{x' <- `x'*`}, comptype')))*{comptype' <- `comptype'*`, x <- `x*`, `x'*` <- `x'**`} + -- (if ($unrolldt(C.TYPES_context[x!`%`_idx.0]) = SUB_subtype(?(), _IDX_typeuse(x')*{x' <- `x'*`}, comptype')))*{comptype' <- `comptype'*`, x <- `x*`, `x'*` <- `x'**`} -- Comptype_ok: `%|-%:OK`(C, comptype) -- (Comptype_sub: `%|-%<:%`(C, comptype, comptype'))*{comptype' <- `comptype'*`} @@ -89675,27 +2869,27 @@ relation Subtype_ok: `%|-%:%`(context, subtype, oktypeidx) relation Rectype_ok: `%|-%:%`(context, rectype, oktypeidx) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:171.1-172.23 rule empty{C : context, x : idx}: - `%|-%:%`(C, `REC`_rectype(`%`_list([])), `OK`_oktypeidx(x)) + `%|-%:%`(C, REC_rectype(`%`_list([])), OK_oktypeidx(x)) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:174.1-177.48 rule cons{C : context, subtype_1 : subtype, `subtype*` : subtype*, x : idx}: - `%|-%:%`(C, `REC`_rectype(`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`})), `OK`_oktypeidx(x)) - -- Subtype_ok: `%|-%:%`(C, subtype_1, `OK`_oktypeidx(x)) - -- Rectype_ok: `%|-%:%`(C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidx(`%`_typeidx((x!`%`_idx.0 + 1)))) + `%|-%:%`(C, REC_rectype(`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`})), OK_oktypeidx(x)) + -- Subtype_ok: `%|-%:%`(C, subtype_1, OK_oktypeidx(x)) + -- Rectype_ok: `%|-%:%`(C, REC_rectype(`%`_list(subtype*{subtype <- `subtype*`})), OK_oktypeidx(`%`_typeidx((x!`%`_idx.0 + 1)))) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:179.1-181.60 rule _rec2{C : context, `subtype*` : subtype*, x : idx}: - `%|-%:%`(C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidx(x)) - -- Rectype_ok2: `%|-%:%`({`TYPES` [], `RECS` subtype*{subtype <- `subtype*`}, `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []} +++ C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat(x, 0)) + `%|-%:%`(C, REC_rectype(`%`_list(subtype*{subtype <- `subtype*`})), OK_oktypeidx(x)) + -- Rectype_ok2: `%|-%:%`({TYPES [], RECS subtype*{subtype <- `subtype*`}, TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []} +++ C, REC_rectype(`%`_list(subtype*{subtype <- `subtype*`})), OK_oktypeidxnat(x, 0)) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:90.1-90.126 relation Subtype_ok2: `%|-%:%`(context, subtype, oktypeidxnat) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:161.1-168.49 rule _{C : context, `typeuse*` : typeuse*, compttype : comptype, x : idx, i : nat, `comptype'*` : comptype*, `typeuse'**` : typeuse**, comptype : comptype}: - `%|-%:%`(C, `SUB`_subtype(`FINAL`_final?{}, typeuse*{typeuse <- `typeuse*`}, compttype), `OK`_oktypeidxnat(x, i)) + `%|-%:%`(C, SUB_subtype(FINAL_final?{}, typeuse*{typeuse <- `typeuse*`}, compttype), OK_oktypeidxnat(x, i)) -- if (|typeuse*{typeuse <- `typeuse*`}| <= 1) -- (if $before(typeuse, x, i))*{typeuse <- `typeuse*`} - -- (if ($unrollht(C, (typeuse : typeuse <: heaptype)) = `SUB`_subtype(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype')))*{comptype' <- `comptype'*`, typeuse <- `typeuse*`, `typeuse'*` <- `typeuse'**`} + -- (if ($unrollht(C, (typeuse : typeuse <: heaptype)) = SUB_subtype(?(), typeuse'*{typeuse' <- `typeuse'*`}, comptype')))*{comptype' <- `comptype'*`, typeuse <- `typeuse*`, `typeuse'*` <- `typeuse'**`} -- Comptype_ok: `%|-%:OK`(C, comptype) -- (Comptype_sub: `%|-%<:%`(C, comptype, comptype'))*{comptype' <- `comptype'*`} @@ -89703,33 +2897,33 @@ relation Subtype_ok2: `%|-%:%`(context, subtype, oktypeidxnat) relation Rectype_ok2: `%|-%:%`(context, rectype, oktypeidxnat) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:183.1-184.24 rule empty{C : context, x : idx, i : nat}: - `%|-%:%`(C, `REC`_rectype(`%`_list([])), `OK`_oktypeidxnat(x, i)) + `%|-%:%`(C, REC_rectype(`%`_list([])), OK_oktypeidxnat(x, i)) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:186.1-189.55 rule cons{C : context, subtype_1 : subtype, `subtype*` : subtype*, x : idx, i : nat}: - `%|-%:%`(C, `REC`_rectype(`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat(x, i)) - -- Subtype_ok2: `%|-%:%`(C, subtype_1, `OK`_oktypeidxnat(x, i)) - -- Rectype_ok2: `%|-%:%`(C, `REC`_rectype(`%`_list(subtype*{subtype <- `subtype*`})), `OK`_oktypeidxnat(`%`_typeidx((x!`%`_idx.0 + 1)), (i + 1))) + `%|-%:%`(C, REC_rectype(`%`_list([subtype_1] ++ subtype*{subtype <- `subtype*`})), OK_oktypeidxnat(x, i)) + -- Subtype_ok2: `%|-%:%`(C, subtype_1, OK_oktypeidxnat(x, i)) + -- Rectype_ok2: `%|-%:%`(C, REC_rectype(`%`_list(subtype*{subtype <- `subtype*`})), OK_oktypeidxnat(`%`_typeidx((x!`%`_idx.0 + 1)), (i + 1))) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:92.1-92.102 relation Deftype_ok: `%|-%:OK`(context, deftype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:192.1-196.14 rule _{C : context, rectype : rectype, i : n, x : idx, n : n, `subtype*` : subtype*}: - `%|-%:OK`(C, `_DEF`_deftype(rectype, i)) - -- Rectype_ok: `%|-%:%`(C, rectype, `OK`_oktypeidx(x)) - -- if (rectype = `REC`_rectype(`%`_list(subtype^n{subtype <- `subtype*`}))) + `%|-%:OK`(C, _DEF_deftype(rectype, i)) + -- Rectype_ok: `%|-%:%`(C, rectype, OK_oktypeidx(x)) + -- if (rectype = REC_rectype(`%`_list(subtype^n{subtype <- `subtype*`}))) -- if (i < n) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec:95.1-95.108 relation Comptype_sub: `%|-%<:%`(context, comptype, comptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:165.1-167.41 rule struct{C : context, `ft_1*` : fieldtype*, `ft'_1*` : fieldtype*, `ft_2*` : fieldtype*}: - `%|-%<:%`(C, `STRUCT`_comptype(`%`_list(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`})), `STRUCT`_comptype(`%`_list(ft_2*{ft_2 <- `ft_2*`}))) + `%|-%<:%`(C, STRUCT_comptype(`%`_list(ft_1*{ft_1 <- `ft_1*`} ++ ft'_1*{ft'_1 <- `ft'_1*`})), STRUCT_comptype(`%`_list(ft_2*{ft_2 <- `ft_2*`}))) -- (Fieldtype_sub: `%|-%<:%`(C, ft_1, ft_2))*{ft_1 <- `ft_1*`, ft_2 <- `ft_2*`} ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:169.1-171.38 rule array{C : context, ft_1 : fieldtype, ft_2 : fieldtype}: - `%|-%<:%`(C, `ARRAY`_comptype(ft_1), `ARRAY`_comptype(ft_2)) + `%|-%<:%`(C, ARRAY_comptype(ft_1), ARRAY_comptype(ft_2)) -- Fieldtype_sub: `%|-%<:%`(C, ft_1, ft_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:173.1-176.41 @@ -89748,7 +2942,7 @@ relation Deftype_sub: `%|-%<:%`(context, deftype, deftype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:183.1-186.49 rule super{C : context, deftype_1 : deftype, deftype_2 : deftype, `final?` : final?, `typeuse*` : typeuse*, ct : comptype, i : nat}: `%|-%<:%`(C, deftype_1, deftype_2) - -- if ($unrolldt(deftype_1) = `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)) + -- if ($unrolldt(deftype_1) = SUB_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)) -- Heaptype_sub: `%|-%<:%`(C, (typeuse*{typeuse <- `typeuse*`}[i] : typeuse <: heaptype), (deftype_2 : deftype <: heaptype)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:9.1-9.104 @@ -89766,33 +2960,33 @@ relation Heaptype_sub: `%|-%<:%`(context, heaptype, heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:29.1-30.17 rule `eq-any`{C : context}: - `%|-%<:%`(C, `EQ`_heaptype, `ANY`_heaptype) + `%|-%<:%`(C, EQ_heaptype, ANY_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:32.1-33.17 rule `i31-eq`{C : context}: - `%|-%<:%`(C, `I31`_heaptype, `EQ`_heaptype) + `%|-%<:%`(C, I31_heaptype, EQ_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:35.1-36.20 rule `struct-eq`{C : context}: - `%|-%<:%`(C, `STRUCT`_heaptype, `EQ`_heaptype) + `%|-%<:%`(C, STRUCT_heaptype, EQ_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:38.1-39.19 rule `array-eq`{C : context}: - `%|-%<:%`(C, `ARRAY`_heaptype, `EQ`_heaptype) + `%|-%<:%`(C, ARRAY_heaptype, EQ_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:41.1-43.42 rule struct{C : context, deftype : deftype, `fieldtype*` : fieldtype*}: - `%|-%<:%`(C, (deftype : deftype <: heaptype), `STRUCT`_heaptype) - -- Expand: `%~~%`(deftype, `STRUCT`_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))) + `%|-%<:%`(C, (deftype : deftype <: heaptype), STRUCT_heaptype) + -- Expand: `%~~%`(deftype, STRUCT_comptype(`%`_list(fieldtype*{fieldtype <- `fieldtype*`}))) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:45.1-47.40 rule array{C : context, deftype : deftype, fieldtype : fieldtype}: - `%|-%<:%`(C, (deftype : deftype <: heaptype), `ARRAY`_heaptype) - -- Expand: `%~~%`(deftype, `ARRAY`_comptype(fieldtype)) + `%|-%<:%`(C, (deftype : deftype <: heaptype), ARRAY_heaptype) + -- Expand: `%~~%`(deftype, ARRAY_comptype(fieldtype)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:49.1-51.42 rule func{C : context, deftype : deftype, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%<:%`(C, (deftype : deftype <: heaptype), `FUNC`_heaptype) + `%|-%<:%`(C, (deftype : deftype <: heaptype), FUNC_heaptype) -- Expand: `%~~%`(deftype, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:53.1-55.46 @@ -89802,53 +2996,53 @@ relation Heaptype_sub: `%|-%<:%`(context, heaptype, heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:57.1-59.53 rule `typeidx-l`{C : context, typeidx : typeidx, heaptype : heaptype}: - `%|-%<:%`(C, `_IDX`_heaptype(typeidx), heaptype) - -- Heaptype_sub: `%|-%<:%`(C, (C.`TYPES`_context[typeidx!`%`_typeidx.0] : deftype <: heaptype), heaptype) + `%|-%<:%`(C, _IDX_heaptype(typeidx), heaptype) + -- Heaptype_sub: `%|-%<:%`(C, (C.TYPES_context[typeidx!`%`_typeidx.0] : deftype <: heaptype), heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:61.1-63.53 rule `typeidx-r`{C : context, heaptype : heaptype, typeidx : typeidx}: - `%|-%<:%`(C, heaptype, `_IDX`_heaptype(typeidx)) - -- Heaptype_sub: `%|-%<:%`(C, heaptype, (C.`TYPES`_context[typeidx!`%`_typeidx.0] : deftype <: heaptype)) + `%|-%<:%`(C, heaptype, _IDX_heaptype(typeidx)) + -- Heaptype_sub: `%|-%<:%`(C, heaptype, (C.TYPES_context[typeidx!`%`_typeidx.0] : deftype <: heaptype)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:65.1-67.43 rule rec{C : context, i : n, `typeuse*` : typeuse*, j : nat, `final?` : final?, ct : comptype}: - `%|-%<:%`(C, `REC`_heaptype(i), (typeuse*{typeuse <- `typeuse*`}[j] : typeuse <: heaptype)) - -- if (C.`RECS`_context[i] = `SUB`_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)) + `%|-%<:%`(C, REC_heaptype(i), (typeuse*{typeuse <- `typeuse*`}[j] : typeuse <: heaptype)) + -- if (C.RECS_context[i] = SUB_subtype(final?{final <- `final?`}, typeuse*{typeuse <- `typeuse*`}, ct)) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:69.1-71.40 rule none{C : context, heaptype : heaptype}: - `%|-%<:%`(C, `NONE`_heaptype, heaptype) - -- Heaptype_sub: `%|-%<:%`(C, heaptype, `ANY`_heaptype) + `%|-%<:%`(C, NONE_heaptype, heaptype) + -- Heaptype_sub: `%|-%<:%`(C, heaptype, ANY_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:73.1-75.41 rule nofunc{C : context, heaptype : heaptype}: - `%|-%<:%`(C, `NOFUNC`_heaptype, heaptype) - -- Heaptype_sub: `%|-%<:%`(C, heaptype, `FUNC`_heaptype) + `%|-%<:%`(C, NOFUNC_heaptype, heaptype) + -- Heaptype_sub: `%|-%<:%`(C, heaptype, FUNC_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:77.1-79.40 rule noexn{C : context, heaptype : heaptype}: - `%|-%<:%`(C, `NOEXN`_heaptype, heaptype) - -- Heaptype_sub: `%|-%<:%`(C, heaptype, `EXN`_heaptype) + `%|-%<:%`(C, NOEXN_heaptype, heaptype) + -- Heaptype_sub: `%|-%<:%`(C, heaptype, EXN_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:81.1-83.43 rule noextern{C : context, heaptype : heaptype}: - `%|-%<:%`(C, `NOEXTERN`_heaptype, heaptype) - -- Heaptype_sub: `%|-%<:%`(C, heaptype, `EXTERN`_heaptype) + `%|-%<:%`(C, NOEXTERN_heaptype, heaptype) + -- Heaptype_sub: `%|-%<:%`(C, heaptype, EXTERN_heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:85.1-86.23 rule bot{C : context, heaptype : heaptype}: - `%|-%<:%`(C, `BOT`_heaptype, heaptype) + `%|-%<:%`(C, BOT_heaptype, heaptype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:10.1-10.103 relation Reftype_sub: `%|-%<:%`(context, reftype, reftype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:89.1-91.37 rule nonnull{C : context, ht_1 : heaptype, ht_2 : heaptype}: - `%|-%<:%`(C, `REF`_reftype(?(), ht_1), `REF`_reftype(?(), ht_2)) + `%|-%<:%`(C, REF_reftype(?(), ht_1), REF_reftype(?(), ht_2)) -- Heaptype_sub: `%|-%<:%`(C, ht_1, ht_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:93.1-95.37 rule null{C : context, ht_1 : heaptype, ht_2 : heaptype}: - `%|-%<:%`(C, `REF`_reftype(`NULL`_null?{}, ht_1), `REF`_reftype(?(`NULL`_null), ht_2)) + `%|-%<:%`(C, REF_reftype(NULL_null?{}, ht_1), REF_reftype(?(NULL_null), ht_2)) -- Heaptype_sub: `%|-%<:%`(C, ht_1, ht_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:11.1-11.103 @@ -89870,7 +3064,7 @@ relation Valtype_sub: `%|-%<:%`(context, valtype, valtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:110.1-111.22 rule bot{C : context, valtype : valtype}: - `%|-%<:%`(C, `BOT`_valtype, valtype) + `%|-%<:%`(C, BOT_valtype, valtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:116.1-116.115 relation Resulttype_sub: `%|-%<:%`(context, resulttype, resulttype) @@ -89900,7 +3094,7 @@ relation Fieldtype_sub: `%|-%<:%`(context, fieldtype, fieldtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec:159.1-162.40 rule var{C : context, zt_1 : storagetype, zt_2 : storagetype}: - `%|-%<:%`(C, `%%`_fieldtype(?(`MUT`_mut), zt_1), `%%`_fieldtype(?(`MUT`_mut), zt_2)) + `%|-%<:%`(C, `%%`_fieldtype(?(MUT_mut), zt_1), `%%`_fieldtype(?(MUT_mut), zt_2)) -- Storagetype_sub: `%|-%<:%`(C, zt_1, zt_2) -- Storagetype_sub: `%|-%<:%`(C, zt_2, zt_1) } @@ -89912,7 +3106,7 @@ relation Instrtype_ok: `%|-%:OK`(context, instrtype) `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype(t_1*{t_1 <- `t_1*`})) -- Resulttype_ok: `%|-%:OK`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`})) - -- (if (C.`LOCALS`_context[x!`%`_idx.0] = lct))*{lct <- `lct*`, x <- `x*`} + -- (if (C.LOCALS_context[x!`%`_idx.0] = lct))*{lct <- `lct*`, x <- `x*`} ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Expand_use: `%~~_%%`(typeuse, context, comptype) @@ -89923,8 +3117,8 @@ relation Expand_use: `%~~_%%`(typeuse, context, comptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec rule typeidx{typeidx : typeidx, C : context, comptype : comptype}: - `%~~_%%`(`_IDX`_typeuse(typeidx), C, comptype) - -- Expand: `%~~%`(C.`TYPES`_context[typeidx!`%`_typeidx.0], comptype) + `%~~_%%`(_IDX_typeuse(typeidx), C, comptype) + -- Expand: `%~~%`(C.TYPES_context[typeidx!`%`_typeidx.0], comptype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec relation Limits_ok: `%|-%:%`(context, limits, nat) @@ -89946,7 +3140,7 @@ relation Tagtype_ok: `%|-%:OK`(context, tagtype) relation Globaltype_ok: `%|-%:OK`(context, globaltype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec rule _{C : context, t : valtype}: - `%|-%:OK`(C, `%%`_globaltype(`MUT`_mut?{}, t)) + `%|-%:OK`(C, `%%`_globaltype(MUT_mut?{}, t)) -- Valtype_ok: `%|-%:OK`(C, t) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec @@ -89968,27 +3162,27 @@ relation Tabletype_ok: `%|-%:OK`(context, tabletype) relation Externtype_ok: `%|-%:OK`(context, externtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec rule tag{C : context, tagtype : tagtype}: - `%|-%:OK`(C, `TAG`_externtype(tagtype)) + `%|-%:OK`(C, TAG_externtype(tagtype)) -- Tagtype_ok: `%|-%:OK`(C, tagtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec rule global{C : context, globaltype : globaltype}: - `%|-%:OK`(C, `GLOBAL`_externtype(globaltype)) + `%|-%:OK`(C, GLOBAL_externtype(globaltype)) -- Globaltype_ok: `%|-%:OK`(C, globaltype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec rule mem{C : context, memtype : memtype}: - `%|-%:OK`(C, `MEM`_externtype(memtype)) + `%|-%:OK`(C, MEM_externtype(memtype)) -- Memtype_ok: `%|-%:OK`(C, memtype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec rule table{C : context, tabletype : tabletype}: - `%|-%:OK`(C, `TABLE`_externtype(tabletype)) + `%|-%:OK`(C, TABLE_externtype(tabletype)) -- Tabletype_ok: `%|-%:OK`(C, tabletype) ;; ../../../../specification/wasm-3.0/2.1-validation.types.spectec rule func{C : context, typeuse : typeuse, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:OK`(C, `FUNC`_externtype(typeuse)) + `%|-%:OK`(C, FUNC_externtype(typeuse)) -- Typeuse_ok: `%|-%:OK`(C, typeuse) -- Expand_use: `%~~_%%`(typeuse, C, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) @@ -90000,7 +3194,7 @@ relation Instrtype_sub: `%|-%<:%`(context, instrtype, instrtype) -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_21*{t_21 <- `t_21*`}), `%`_resulttype(t_11*{t_11 <- `t_11*`})) -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_12*{t_12 <- `t_12*`}), `%`_resulttype(t_22*{t_22 <- `t_22*`})) -- if (x*{x <- `x*`} = $setminus_(syntax localidx, x_2*{x_2 <- `x_2*`}, x_1*{x_1 <- `x_1*`})) - -- (if (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(`SET`_init, t)))*{t <- `t*`, x <- `x*`} + -- (if (C.LOCALS_context[x!`%`_idx.0] = `%%`_localtype(SET_init, t)))*{t <- `t*`, x <- `x*`} ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec relation Limits_sub: `%|-%<:%`(context, limits, limits) @@ -90032,7 +3226,7 @@ relation Globaltype_sub: `%|-%<:%`(context, globaltype, globaltype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec rule var{C : context, valtype_1 : valtype, valtype_2 : valtype}: - `%|-%<:%`(C, `%%`_globaltype(?(`MUT`_mut), valtype_1), `%%`_globaltype(?(`MUT`_mut), valtype_2)) + `%|-%<:%`(C, `%%`_globaltype(?(MUT_mut), valtype_1), `%%`_globaltype(?(MUT_mut), valtype_2)) -- Valtype_sub: `%|-%<:%`(C, valtype_1, valtype_2) -- Valtype_sub: `%|-%<:%`(C, valtype_2, valtype_1) @@ -90056,77 +3250,77 @@ relation Tabletype_sub: `%|-%<:%`(context, tabletype, tabletype) relation Externtype_sub: `%|-%<:%`(context, externtype, externtype) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec rule tag{C : context, tagtype_1 : tagtype, tagtype_2 : tagtype}: - `%|-%<:%`(C, `TAG`_externtype(tagtype_1), `TAG`_externtype(tagtype_2)) + `%|-%<:%`(C, TAG_externtype(tagtype_1), TAG_externtype(tagtype_2)) -- Tagtype_sub: `%|-%<:%`(C, tagtype_1, tagtype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec rule global{C : context, globaltype_1 : globaltype, globaltype_2 : globaltype}: - `%|-%<:%`(C, `GLOBAL`_externtype(globaltype_1), `GLOBAL`_externtype(globaltype_2)) + `%|-%<:%`(C, GLOBAL_externtype(globaltype_1), GLOBAL_externtype(globaltype_2)) -- Globaltype_sub: `%|-%<:%`(C, globaltype_1, globaltype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec rule mem{C : context, memtype_1 : memtype, memtype_2 : memtype}: - `%|-%<:%`(C, `MEM`_externtype(memtype_1), `MEM`_externtype(memtype_2)) + `%|-%<:%`(C, MEM_externtype(memtype_1), MEM_externtype(memtype_2)) -- Memtype_sub: `%|-%<:%`(C, memtype_1, memtype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec rule table{C : context, tabletype_1 : tabletype, tabletype_2 : tabletype}: - `%|-%<:%`(C, `TABLE`_externtype(tabletype_1), `TABLE`_externtype(tabletype_2)) + `%|-%<:%`(C, TABLE_externtype(tabletype_1), TABLE_externtype(tabletype_2)) -- Tabletype_sub: `%|-%<:%`(C, tabletype_1, tabletype_2) ;; ../../../../specification/wasm-3.0/2.2-validation.subtyping.spectec rule func{C : context, deftype_1 : deftype, deftype_2 : deftype}: - `%|-%<:%`(C, `FUNC`_externtype((deftype_1 : deftype <: typeuse)), `FUNC`_externtype((deftype_2 : deftype <: typeuse))) + `%|-%<:%`(C, FUNC_externtype((deftype_1 : deftype <: typeuse)), FUNC_externtype((deftype_2 : deftype <: typeuse))) -- Deftype_sub: `%|-%<:%`(C, deftype_1, deftype_2) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Blocktype_ok: `%|-%:%`(context, blocktype, instrtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule valtype{C : context, `valtype?` : valtype?}: - `%|-%:%`(C, `_RESULT`_blocktype(valtype?{valtype <- `valtype?`}), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(valtype?{valtype <- `valtype?`})))) + `%|-%:%`(C, _RESULT_blocktype(valtype?{valtype <- `valtype?`}), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(valtype?{valtype <- `valtype?`})))) -- (Valtype_ok: `%|-%:OK`(C, valtype))?{valtype <- `valtype?`} ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule typeidx{C : context, typeidx : typeidx, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, `_IDX`_blocktype(typeidx), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Expand: `%~~%`(C.`TYPES`_context[typeidx!`%`_typeidx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + `%|-%:%`(C, _IDX_blocktype(typeidx), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Expand: `%~~%`(C.TYPES_context[typeidx!`%`_typeidx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Catch_ok: `%|-%:OK`(context, catch) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule catch{C : context, x : idx, l : labelidx, `t*` : valtype*}: - `%|-%:OK`(C, `CATCH`_catch(x, l)) - -- Expand: `%~~%`($as_deftype(C.`TAGS`_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`}), C.`LABELS`_context[l!`%`_labelidx.0]) + `%|-%:OK`(C, CATCH_catch(x, l)) + -- Expand: `%~~%`($as_deftype(C.TAGS_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`}), C.LABELS_context[l!`%`_labelidx.0]) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule catch_ref{C : context, x : idx, l : labelidx, `t*` : valtype*}: - `%|-%:OK`(C, `CATCH_REF`_catch(x, l)) - -- Expand: `%~~%`($as_deftype(C.`TAGS`_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), `EXN`_heaptype)]), C.`LABELS`_context[l!`%`_labelidx.0]) + `%|-%:OK`(C, CATCH_REF_catch(x, l)) + -- Expand: `%~~%`($as_deftype(C.TAGS_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`} ++ [REF_valtype(?(), EXN_heaptype)]), C.LABELS_context[l!`%`_labelidx.0]) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule catch_all{C : context, l : labelidx}: - `%|-%:OK`(C, `CATCH_ALL`_catch(l)) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype([]), C.`LABELS`_context[l!`%`_labelidx.0]) + `%|-%:OK`(C, CATCH_ALL_catch(l)) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype([]), C.LABELS_context[l!`%`_labelidx.0]) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule catch_all_ref{C : context, l : labelidx}: - `%|-%:OK`(C, `CATCH_ALL_REF`_catch(l)) - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype([`REF`_valtype(?(), `EXN`_heaptype)]), C.`LABELS`_context[l!`%`_labelidx.0]) + `%|-%:OK`(C, CATCH_ALL_REF_catch(l)) + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype([REF_valtype(?(), EXN_heaptype)]), C.LABELS_context[l!`%`_labelidx.0]) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec def $default_(valtype : valtype) : val? ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Inn : Inn}((Inn : Inn <: valtype)) = ?(`CONST`_val((Inn : Inn <: numtype), `%`_num_(0))) + def $default_{Inn : Inn}((Inn : Inn <: valtype)) = ?(CONST_val((Inn : Inn <: numtype), `%`_num_(0))) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Fnn : Fnn}((Fnn : Fnn <: valtype)) = ?(`CONST`_val((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))) + def $default_{Fnn : Fnn}((Fnn : Fnn <: valtype)) = ?(CONST_val((Fnn : Fnn <: numtype), $fzero($size((Fnn : Fnn <: numtype))))) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{Vnn : Vnn}((Vnn : Vnn <: valtype)) = ?(`VCONST`_val(Vnn, `%`_vec_(0))) + def $default_{Vnn : Vnn}((Vnn : Vnn <: valtype)) = ?(VCONST_val(Vnn, `%`_vec_(0))) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{ht : heaptype}(`REF`_valtype(?(`NULL`_null), ht)) = ?(`REF.NULL`_val(ht)) + def $default_{ht : heaptype}(REF_valtype(?(NULL_null), ht)) = ?(`REF.NULL`_val(ht)) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec - def $default_{ht : heaptype}(`REF`_valtype(?(), ht)) = ?() + def $default_{ht : heaptype}(REF_valtype(?(), ht)) = ?() ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Defaultable: `|-%DEFAULTABLE`(valtype) @@ -90139,7 +3333,7 @@ relation Defaultable: `|-%DEFAULTABLE`(valtype) relation Memarg_ok: `|-%:%->%`(memarg, addrtype, N) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule _{n : n, m : m, at : addrtype, N : N}: - `|-%:%->%`({`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)}, at, N) + `|-%:%->%`({ALIGN `%`_u32(n), OFFSET `%`_u64(m)}, at, N) -- if (((2 ^ n) : nat <:> rat) <= ((N : nat <:> rat) / (8 : nat <:> rat))) -- if (m < (2 ^ $size((at : addrtype <: numtype)))) @@ -90155,82 +3349,82 @@ rec { relation Instr_ok: `%|-%:%`(context, instr, instrtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:18.1-19.24 rule nop{C : context}: - `%|-%:%`(C, `NOP`_instr, `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))) + `%|-%:%`(C, NOP_instr, `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:21.1-23.42 rule unreachable{C : context, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, `UNREACHABLE`_instr, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + `%|-%:%`(C, UNREACHABLE_instr, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:25.1-27.29 rule drop{C : context, t : valtype}: - `%|-%:%`(C, `DROP`_instr, `%->_%%`_instrtype(`%`_resulttype([t]), [], `%`_resulttype([]))) + `%|-%:%`(C, DROP_instr, `%->_%%`_instrtype(`%`_resulttype([t]), [], `%`_resulttype([]))) -- Valtype_ok: `%|-%:OK`(C, t) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:29.1-31.29 rule `select-expl`{C : context, t : valtype}: - `%|-%:%`(C, `SELECT`_instr(?([t])), `%->_%%`_instrtype(`%`_resulttype([t t `I32`_valtype]), [], `%`_resulttype([t]))) + `%|-%:%`(C, SELECT_instr(?([t])), `%->_%%`_instrtype(`%`_resulttype([t t I32_valtype]), [], `%`_resulttype([t]))) -- Valtype_ok: `%|-%:OK`(C, t) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:33.1-37.37 rule `select-impl`{C : context, t : valtype, t' : valtype, numtype : numtype, vectype : vectype}: - `%|-%:%`(C, `SELECT`_instr(?()), `%->_%%`_instrtype(`%`_resulttype([t t `I32`_valtype]), [], `%`_resulttype([t]))) + `%|-%:%`(C, SELECT_instr(?()), `%->_%%`_instrtype(`%`_resulttype([t t I32_valtype]), [], `%`_resulttype([t]))) -- Valtype_ok: `%|-%:OK`(C, t) -- Valtype_sub: `%|-%<:%`(C, t, t') -- if ((t' = (numtype : numtype <: valtype)) \/ (t' = (vectype : vectype <: valtype))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:53.1-56.67 rule block{C : context, bt : blocktype, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, `x*` : idx*}: - `%|-%:%`(C, `BLOCK`_instr(bt, instr*{instr <- `instr*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + `%|-%:%`(C, BLOCK_instr(bt, instr*{instr <- `instr*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [`%`_resulttype(t_2*{t_2 <- `t_2*`})], RETURN ?(), REFS []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:58.1-61.67 rule loop{C : context, bt : blocktype, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, `x*` : idx*}: - `%|-%:%`(C, `LOOP`_instr(bt, instr*{instr <- `instr*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + `%|-%:%`(C, LOOP_instr(bt, instr*{instr <- `instr*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_1*{t_1 <- `t_1*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [`%`_resulttype(t_1*{t_1 <- `t_1*`})], RETURN ?(), REFS []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:63.1-67.71 rule if{C : context, bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, `x_1*` : idx*, `x_2*` : idx*}: - `%|-%:%`(C, `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + `%|-%:%`(C, `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [I32_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr_1*{instr_1 <- `instr_1*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [`%`_resulttype(t_2*{t_2 <- `t_2*`})], RETURN ?(), REFS []} +++ C, instr_1*{instr_1 <- `instr_1*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [`%`_resulttype(t_2*{t_2 <- `t_2*`})], RETURN ?(), REFS []} +++ C, instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:72.1-75.42 rule br{C : context, l : labelidx, `t_1*` : valtype*, `t*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, `BR`_instr(l), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- if (C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`}) + `%|-%:%`(C, BR_instr(l), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- if (C.LABELS_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`}) -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:77.1-79.25 rule br_if{C : context, l : labelidx, `t*` : valtype*}: - `%|-%:%`(C, `BR_IF`_instr(l), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t*{t <- `t*`}))) - -- if (C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`}) + `%|-%:%`(C, BR_IF_instr(l), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [I32_valtype]), [], `%`_resulttype(t*{t <- `t*`}))) + -- if (C.LABELS_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`}) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:81.1-85.49 rule br_table{C : context, `l*` : labelidx*, l' : labelidx, `t_1*` : valtype*, `t*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, `BR_TABLE`_instr(l*{l <- `l*`}, l'), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- (Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`}), C.`LABELS`_context[l!`%`_labelidx.0]))*{l <- `l*`} - -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`}), C.`LABELS`_context[l'!`%`_labelidx.0]) - -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [`I32`_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + `%|-%:%`(C, BR_TABLE_instr(l*{l <- `l*`}, l'), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [I32_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- (Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`}), C.LABELS_context[l!`%`_labelidx.0]))*{l <- `l*`} + -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t*{t <- `t*`}), C.LABELS_context[l'!`%`_labelidx.0]) + -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`} ++ [I32_valtype]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:87.1-90.31 rule br_on_null{C : context, l : labelidx, `t*` : valtype*, ht : heaptype}: - `%|-%:%`(C, `BR_ON_NULL`_instr(l), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(), ht)]))) - -- if (C.`LABELS`_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`}) + `%|-%:%`(C, BR_ON_NULL_instr(l), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [REF_valtype(?(NULL_null), ht)]), [], `%`_resulttype(t*{t <- `t*`} ++ [REF_valtype(?(), ht)]))) + -- if (C.LABELS_context[l!`%`_labelidx.0]!`%`_resulttype.0 = t*{t <- `t*`}) -- Heaptype_ok: `%|-%:OK`(C, ht) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:92.1-94.40 rule br_on_non_null{C : context, l : labelidx, `t*` : valtype*, ht : heaptype}: - `%|-%:%`(C, `BR_ON_NON_NULL`_instr(l), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype(t*{t <- `t*`}))) - -- if (C.`LABELS`_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [`REF`_valtype(`NULL`_null?{}, ht)])) + `%|-%:%`(C, BR_ON_NON_NULL_instr(l), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [REF_valtype(?(NULL_null), ht)]), [], `%`_resulttype(t*{t <- `t*`}))) + -- if (C.LABELS_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [REF_valtype(NULL_null?{}, ht)])) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:96.1-102.34 rule br_on_cast{C : context, l : labelidx, rt_1 : reftype, rt_2 : reftype, `t*` : valtype*, rt : reftype}: - `%|-%:%`(C, `BR_ON_CAST`_instr(l, rt_1, rt_2), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))) - -- if (C.`LABELS`_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])) + `%|-%:%`(C, BR_ON_CAST_instr(l, rt_1, rt_2), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [($diffrt(rt_1, rt_2) : reftype <: valtype)]))) + -- if (C.LABELS_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])) -- Reftype_ok: `%|-%:OK`(C, rt_1) -- Reftype_ok: `%|-%:OK`(C, rt_2) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt_1) @@ -90238,8 +3432,8 @@ relation Instr_ok: `%|-%:%`(context, instr, instrtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:104.1-110.49 rule br_on_cast_fail{C : context, l : labelidx, rt_1 : reftype, rt_2 : reftype, `t*` : valtype*, rt : reftype}: - `%|-%:%`(C, `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))) - -- if (C.`LABELS`_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])) + `%|-%:%`(C, BR_ON_CAST_FAIL_instr(l, rt_1, rt_2), `%->_%%`_instrtype(`%`_resulttype(t*{t <- `t*`} ++ [(rt_1 : reftype <: valtype)]), [], `%`_resulttype(t*{t <- `t*`} ++ [(rt_2 : reftype <: valtype)]))) + -- if (C.LABELS_context[l!`%`_labelidx.0] = `%`_resulttype(t*{t <- `t*`} ++ [(rt : reftype <: valtype)])) -- Reftype_ok: `%|-%:OK`(C, rt_1) -- Reftype_ok: `%|-%:OK`(C, rt_2) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt_1) @@ -90247,504 +3441,504 @@ relation Instr_ok: `%|-%:%`(context, instr, instrtype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:115.1-117.45 rule call{C : context, x : idx, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, `CALL`_instr(x), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Expand: `%~~%`(C.`FUNCS`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + `%|-%:%`(C, CALL_instr(x), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Expand: `%~~%`(C.FUNCS_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:119.1-121.45 rule call_ref{C : context, x : idx, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, `CALL_REF`_instr(`_IDX`_typeuse(x)), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + `%|-%:%`(C, CALL_REF_instr(_IDX_typeuse(x)), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [REF_valtype(?(NULL_null), _IDX_heaptype(x))]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:123.1-127.45 rule call_indirect{C : context, x : idx, y : idx, `t_1*` : valtype*, at : addrtype, `t_2*` : valtype*, lim : limits, rt : reftype}: - `%|-%:%`(C, `CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y)), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) - -- Reftype_sub: `%|-%<:%`(C, rt, `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)) - -- Expand: `%~~%`(C.`TYPES`_context[y!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + `%|-%:%`(C, CALL_INDIRECT_instr(x, _IDX_typeuse(y)), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + -- Reftype_sub: `%|-%<:%`(C, rt, REF_reftype(?(NULL_null), FUNC_heaptype)) + -- Expand: `%~~%`(C.TYPES_context[y!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:129.1-132.42 rule return{C : context, `t_1*` : valtype*, `t*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, `RETURN`_instr, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- if (C.`RETURN`_context = ?(`%`_resulttype(t*{t <- `t*`}))) + `%|-%:%`(C, RETURN_instr, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- if (C.RETURN_context = ?(`%`_resulttype(t*{t <- `t*`}))) -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:135.1-140.42 rule return_call{C : context, x : idx, `t_3*` : valtype*, `t_1*` : valtype*, `t_4*` : valtype*, `t_2*` : valtype*, `t'_2*` : valtype*}: - `%|-%:%`(C, `RETURN_CALL`_instr(x), `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) - -- Expand: `%~~%`(C.`FUNCS`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- if (C.`RETURN`_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))) + `%|-%:%`(C, RETURN_CALL_instr(x), `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) + -- Expand: `%~~%`(C.FUNCS_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- if (C.RETURN_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))) -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})) -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:143.1-148.42 rule return_call_ref{C : context, x : idx, `t_3*` : valtype*, `t_1*` : valtype*, `t_4*` : valtype*, `t_2*` : valtype*, `t'_2*` : valtype*}: - `%|-%:%`(C, `RETURN_CALL_REF`_instr(`_IDX`_typeuse(x)), `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- if (C.`RETURN`_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))) + `%|-%:%`(C, RETURN_CALL_REF_instr(_IDX_typeuse(x)), `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [REF_valtype(?(NULL_null), _IDX_heaptype(x))]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- if (C.RETURN_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))) -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})) -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:151.1-159.42 rule return_call_indirect{C : context, x : idx, y : idx, `t_3*` : valtype*, `t_1*` : valtype*, at : addrtype, `t_4*` : valtype*, lim : limits, rt : reftype, `t_2*` : valtype*, `t'_2*` : valtype*}: - `%|-%:%`(C, `RETURN_CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y)), `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) - -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) - -- Reftype_sub: `%|-%<:%`(C, rt, `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype)) - -- Expand: `%~~%`(C.`TYPES`_context[y!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- if (C.`RETURN`_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))) + `%|-%:%`(C, RETURN_CALL_INDIRECT_instr(x, _IDX_typeuse(y)), `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`} ++ t_1*{t_1 <- `t_1*`} ++ [(at : addrtype <: valtype)]), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) + -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + -- Reftype_sub: `%|-%<:%`(C, rt, REF_reftype(?(NULL_null), FUNC_heaptype)) + -- Expand: `%~~%`(C.TYPES_context[y!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- if (C.RETURN_context = ?(`%`_resulttype(t'_2*{t'_2 <- `t'_2*`}))) -- Resulttype_sub: `%|-%<:%`(C, `%`_resulttype(t_2*{t_2 <- `t_2*`}), `%`_resulttype(t'_2*{t'_2 <- `t'_2*`})) -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_3*{t_3 <- `t_3*`}), [], `%`_resulttype(t_4*{t_4 <- `t_4*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:166.1-169.42 rule throw{C : context, x : idx, `t_1*` : valtype*, `t*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, `THROW`_instr(x), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Expand: `%~~%`($as_deftype(C.`TAGS`_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))) + `%|-%:%`(C, THROW_instr(x), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ t*{t <- `t*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Expand: `%~~%`($as_deftype(C.TAGS_context[x!`%`_idx.0]), `FUNC%->%`_comptype(`%`_resulttype(t*{t <- `t*`}), `%`_resulttype([]))) -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:171.1-173.42 rule throw_ref{C : context, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, `THROW_REF`_instr, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [`REF`_valtype(?(`NULL`_null), `EXN`_heaptype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + `%|-%:%`(C, THROW_REF_instr, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`} ++ [REF_valtype(?(NULL_null), EXN_heaptype)]), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- Instrtype_ok: `%|-%:OK`(C, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:175.1-179.34 rule try_table{C : context, bt : blocktype, `catch*` : catch*, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*, `x*` : idx*}: - `%|-%:%`(C, `TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + `%|-%:%`(C, TRY_TABLE_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`}), `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- Blocktype_ok: `%|-%:%`(C, bt, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- Instrs_ok: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- Instrs_ok: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [`%`_resulttype(t_2*{t_2 <- `t_2*`})], RETURN ?(), REFS []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x*{x <- `x*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- (Catch_ok: `%|-%:OK`(C, catch))*{catch <- `catch*`} ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:202.1-204.31 - rule ref.null{C : context, ht : heaptype}: - `%|-%:%`(C, `REF.NULL`_instr(ht), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]))) + rule `ref.null`{C : context, ht : heaptype}: + `%|-%:%`(C, `REF.NULL`_instr(ht), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([REF_valtype(?(NULL_null), ht)]))) -- Heaptype_ok: `%|-%:OK`(C, ht) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:206.1-209.20 - rule ref.func{C : context, x : idx, dt : deftype}: - `%|-%:%`(C, `REF.FUNC`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(), (dt : deftype <: heaptype))]))) - -- if (C.`FUNCS`_context[x!`%`_idx.0] = dt) - -- if (x <- C.`REFS`_context) + rule `ref.func`{C : context, x : idx, dt : deftype}: + `%|-%:%`(C, `REF.FUNC`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([REF_valtype(?(), (dt : deftype <: heaptype))]))) + -- if (C.FUNCS_context[x!`%`_idx.0] = dt) + -- if (x <- C.REFS_context) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:211.1-212.34 - rule ref.i31{C : context}: - `%|-%:%`(C, `REF.I31`_instr, `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `I31`_heaptype)]))) + rule `ref.i31`{C : context}: + `%|-%:%`(C, `REF.I31`_instr, `%->_%%`_instrtype(`%`_resulttype([I32_valtype]), [], `%`_resulttype([REF_valtype(?(), I31_heaptype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:214.1-216.31 - rule ref.is_null{C : context, ht : heaptype}: - `%|-%:%`(C, `REF.IS_NULL`_instr, `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype([`I32`_valtype]))) + rule `ref.is_null`{C : context, ht : heaptype}: + `%|-%:%`(C, `REF.IS_NULL`_instr, `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), ht)]), [], `%`_resulttype([I32_valtype]))) -- Heaptype_ok: `%|-%:OK`(C, ht) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:218.1-220.31 - rule ref.as_non_null{C : context, ht : heaptype}: - `%|-%:%`(C, `REF.AS_NON_NULL`_instr, `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), ht)]), [], `%`_resulttype([`REF`_valtype(?(), ht)]))) + rule `ref.as_non_null`{C : context, ht : heaptype}: + `%|-%:%`(C, `REF.AS_NON_NULL`_instr, `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), ht)]), [], `%`_resulttype([REF_valtype(?(), ht)]))) -- Heaptype_ok: `%|-%:OK`(C, ht) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:222.1-223.51 - rule ref.eq{C : context}: - `%|-%:%`(C, `REF.EQ`_instr, `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `EQ`_heaptype) `REF`_valtype(?(`NULL`_null), `EQ`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))) + rule `ref.eq`{C : context}: + `%|-%:%`(C, `REF.EQ`_instr, `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), EQ_heaptype) REF_valtype(?(NULL_null), EQ_heaptype)]), [], `%`_resulttype([I32_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:225.1-229.33 - rule ref.test{C : context, rt : reftype, rt' : reftype}: - `%|-%:%`(C, `REF.TEST`_instr(rt), `%->_%%`_instrtype(`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))) + rule `ref.test`{C : context, rt : reftype, rt' : reftype}: + `%|-%:%`(C, `REF.TEST`_instr(rt), `%->_%%`_instrtype(`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([I32_valtype]))) -- Reftype_ok: `%|-%:OK`(C, rt) -- Reftype_ok: `%|-%:OK`(C, rt') -- Reftype_sub: `%|-%<:%`(C, rt, rt') ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:231.1-235.33 - rule ref.cast{C : context, rt : reftype, rt' : reftype}: + rule `ref.cast`{C : context, rt : reftype, rt' : reftype}: `%|-%:%`(C, `REF.CAST`_instr(rt), `%->_%%`_instrtype(`%`_resulttype([(rt' : reftype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))) -- Reftype_ok: `%|-%:OK`(C, rt) -- Reftype_ok: `%|-%:OK`(C, rt') -- Reftype_sub: `%|-%<:%`(C, rt, rt') ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:240.1-241.42 - rule i31.get{C : context, sx : sx}: - `%|-%:%`(C, `I31.GET`_instr(sx), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `I31`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))) + rule `i31.get`{C : context, sx : sx}: + `%|-%:%`(C, `I31.GET`_instr(sx), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), I31_heaptype)]), [], `%`_resulttype([I32_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:246.1-248.45 - rule struct.new{C : context, x : idx, `zt*` : storagetype*, `mut?*` : mut?*}: - `%|-%:%`(C, `STRUCT.NEW`_instr(x), `%->_%%`_instrtype(`%`_resulttype($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) + rule `struct.new`{C : context, x : idx, `zt*` : storagetype*, `mut?*` : mut?*}: + `%|-%:%`(C, `STRUCT.NEW`_instr(x), `%->_%%`_instrtype(`%`_resulttype($unpack(zt)*{zt <- `zt*`}), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], STRUCT_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:250.1-253.48 - rule struct.new_default{C : context, x : idx, `mut?*` : mut?*, `zt*` : storagetype*}: - `%|-%:%`(C, `STRUCT.NEW_DEFAULT`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) + rule `struct.new_default`{C : context, x : idx, `mut?*` : mut?*, `zt*` : storagetype*}: + `%|-%:%`(C, `STRUCT.NEW_DEFAULT`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], STRUCT_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) -- (Defaultable: `|-%DEFAULTABLE`($unpack(zt)))*{zt <- `zt*`} ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:258.1-262.39 - rule struct.get{C : context, `sx?` : sx?, x : idx, i : u32, zt : storagetype, `ft*` : fieldtype*, `mut?` : mut?}: - `%|-%:%`(C, `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x))]), [], `%`_resulttype([$unpack(zt)]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))) + rule `struct.get`{C : context, `sx?` : sx?, x : idx, i : u32, zt : storagetype, `ft*` : fieldtype*, `mut?` : mut?}: + `%|-%:%`(C, `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x))]), [], `%`_resulttype([$unpack(zt)]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], STRUCT_comptype(`%`_list(ft*{ft <- `ft*`}))) -- if (ft*{ft <- `ft*`}[i!`%`_u32.0] = `%%`_fieldtype(mut?{mut <- `mut?`}, zt)) -- if ((sx?{sx <- `sx?`} = ?()) <=> $is_packtype(zt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:264.1-267.24 - rule struct.set{C : context, x : idx, i : u32, zt : storagetype, `ft*` : fieldtype*}: - `%|-%:%`(C, `STRUCT.SET`_instr(x, i), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) $unpack(zt)]), [], `%`_resulttype([]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`}))) - -- if (ft*{ft <- `ft*`}[i!`%`_u32.0] = `%%`_fieldtype(?(`MUT`_mut), zt)) + rule `struct.set`{C : context, x : idx, i : u32, zt : storagetype, `ft*` : fieldtype*}: + `%|-%:%`(C, `STRUCT.SET`_instr(x, i), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x)) $unpack(zt)]), [], `%`_resulttype([]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], STRUCT_comptype(`%`_list(ft*{ft <- `ft*`}))) + -- if (ft*{ft <- `ft*`}[i!`%`_u32.0] = `%%`_fieldtype(?(MUT_mut), zt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:272.1-274.43 - rule array.new{C : context, x : idx, zt : storagetype, `mut?` : mut?}: - `%|-%:%`(C, `ARRAY.NEW`_instr(x), `%->_%%`_instrtype(`%`_resulttype([$unpack(zt) `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule `array.new`{C : context, x : idx, zt : storagetype, `mut?` : mut?}: + `%|-%:%`(C, `ARRAY.NEW`_instr(x), `%->_%%`_instrtype(`%`_resulttype([$unpack(zt) I32_valtype]), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:276.1-279.45 - rule array.new_default{C : context, x : idx, `mut?` : mut?, zt : storagetype}: - `%|-%:%`(C, `ARRAY.NEW_DEFAULT`_instr(x), `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule `array.new_default`{C : context, x : idx, `mut?` : mut?, zt : storagetype}: + `%|-%:%`(C, `ARRAY.NEW_DEFAULT`_instr(x), `%->_%%`_instrtype(`%`_resulttype([I32_valtype]), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) -- Defaultable: `|-%DEFAULTABLE`($unpack(zt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:281.1-283.43 - rule array.new_fixed{C : context, x : idx, n : n, zt : storagetype, `mut?` : mut?}: - `%|-%:%`(C, `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n)), `%->_%%`_instrtype(`%`_resulttype($unpack(zt)^n{}), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule `array.new_fixed`{C : context, x : idx, n : n, zt : storagetype, `mut?` : mut?}: + `%|-%:%`(C, `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n)), `%->_%%`_instrtype(`%`_resulttype($unpack(zt)^n{}), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:285.1-288.40 - rule array.new_elem{C : context, x : idx, y : idx, `mut?` : mut?, rt : reftype}: - `%|-%:%`(C, `ARRAY.NEW_ELEM`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))) - -- Reftype_sub: `%|-%<:%`(C, C.`ELEMS`_context[y!`%`_idx.0], rt) + rule `array.new_elem`{C : context, x : idx, y : idx, `mut?` : mut?, rt : reftype}: + `%|-%:%`(C, `ARRAY.NEW_ELEM`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([I32_valtype I32_valtype]), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, (rt : reftype <: storagetype)))) + -- Reftype_sub: `%|-%<:%`(C, C.ELEMS_context[y!`%`_idx.0], rt) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:290.1-294.24 - rule array.new_data{C : context, x : idx, y : idx, `mut?` : mut?, zt : storagetype, numtype : numtype, vectype : vectype}: - `%|-%:%`(C, `ARRAY.NEW_DATA`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`REF`_valtype(?(), `_IDX`_heaptype(x))]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule `array.new_data`{C : context, x : idx, y : idx, `mut?` : mut?, zt : storagetype, numtype : numtype, vectype : vectype}: + `%|-%:%`(C, `ARRAY.NEW_DATA`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([I32_valtype I32_valtype]), [], `%`_resulttype([REF_valtype(?(), _IDX_heaptype(x))]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) -- if (($unpack(zt) = (numtype : numtype <: valtype)) \/ ($unpack(zt) = (vectype : vectype <: valtype))) - -- if (C.`DATAS`_context[y!`%`_idx.0] = `OK`_datatype) + -- if (C.DATAS_context[y!`%`_idx.0] = OK_datatype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:296.1-299.39 - rule array.get{C : context, `sx?` : sx?, x : idx, zt : storagetype, `mut?` : mut?}: - `%|-%:%`(C, `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype]), [], `%`_resulttype([$unpack(zt)]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule `array.get`{C : context, `sx?` : sx?, x : idx, zt : storagetype, `mut?` : mut?}: + `%|-%:%`(C, `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x)) I32_valtype]), [], `%`_resulttype([$unpack(zt)]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) -- if ((sx?{sx <- `sx?`} = ?()) <=> $is_packtype(zt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:301.1-303.42 - rule array.set{C : context, x : idx, zt : storagetype}: - `%|-%:%`(C, `ARRAY.SET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt)]), [], `%`_resulttype([]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))) + rule `array.set`{C : context, x : idx, zt : storagetype}: + `%|-%:%`(C, `ARRAY.SET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x)) I32_valtype $unpack(zt)]), [], `%`_resulttype([]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(?(MUT_mut), zt))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:305.1-306.43 - rule array.len{C : context}: - `%|-%:%`(C, `ARRAY.LEN`_instr, `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `ARRAY`_heaptype)]), [], `%`_resulttype([`I32`_valtype]))) + rule `array.len`{C : context}: + `%|-%:%`(C, `ARRAY.LEN`_instr, `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), ARRAY_heaptype)]), [], `%`_resulttype([I32_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:308.1-310.42 - rule array.fill{C : context, x : idx, zt : storagetype}: - `%|-%:%`(C, `ARRAY.FILL`_instr(x), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype $unpack(zt) `I32`_valtype]), [], `%`_resulttype([]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))) + rule `array.fill`{C : context, x : idx, zt : storagetype}: + `%|-%:%`(C, `ARRAY.FILL`_instr(x), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x)) I32_valtype $unpack(zt) I32_valtype]), [], `%`_resulttype([]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(?(MUT_mut), zt))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:312.1-316.40 - rule array.copy{C : context, x_1 : idx, x_2 : idx, zt_1 : storagetype, `mut?` : mut?, zt_2 : storagetype}: - `%|-%:%`(C, `ARRAY.COPY`_instr(x_1, x_2), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_1)) `I32`_valtype `REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x_2)) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))) - -- Expand: `%~~%`(C.`TYPES`_context[x_1!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt_1))) - -- Expand: `%~~%`(C.`TYPES`_context[x_2!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))) + rule `array.copy`{C : context, x_1 : idx, x_2 : idx, zt_1 : storagetype, `mut?` : mut?, zt_2 : storagetype}: + `%|-%:%`(C, `ARRAY.COPY`_instr(x_1, x_2), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x_1)) I32_valtype REF_valtype(?(NULL_null), _IDX_heaptype(x_2)) I32_valtype I32_valtype]), [], `%`_resulttype([]))) + -- Expand: `%~~%`(C.TYPES_context[x_1!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(?(MUT_mut), zt_1))) + -- Expand: `%~~%`(C.TYPES_context[x_2!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))) -- Storagetype_sub: `%|-%<:%`(C, zt_2, zt_1) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:318.1-321.44 - rule array.init_elem{C : context, x : idx, y : idx, zt : storagetype}: - `%|-%:%`(C, `ARRAY.INIT_ELEM`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))) - -- Storagetype_sub: `%|-%<:%`(C, (C.`ELEMS`_context[y!`%`_idx.0] : reftype <: storagetype), zt) + rule `array.init_elem`{C : context, x : idx, y : idx, zt : storagetype}: + `%|-%:%`(C, `ARRAY.INIT_ELEM`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x)) I32_valtype I32_valtype I32_valtype]), [], `%`_resulttype([]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(?(MUT_mut), zt))) + -- Storagetype_sub: `%|-%<:%`(C, (C.ELEMS_context[y!`%`_idx.0] : reftype <: storagetype), zt) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:323.1-327.24 - rule array.init_data{C : context, x : idx, y : idx, zt : storagetype, numtype : numtype, vectype : vectype}: - `%|-%:%`(C, `ARRAY.INIT_DATA`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(?(`NULL`_null), `_IDX`_heaptype(x)) `I32`_valtype `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `ARRAY`_comptype(`%%`_fieldtype(?(`MUT`_mut), zt))) + rule `array.init_data`{C : context, x : idx, y : idx, zt : storagetype, numtype : numtype, vectype : vectype}: + `%|-%:%`(C, `ARRAY.INIT_DATA`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([REF_valtype(?(NULL_null), _IDX_heaptype(x)) I32_valtype I32_valtype I32_valtype]), [], `%`_resulttype([]))) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], ARRAY_comptype(`%%`_fieldtype(?(MUT_mut), zt))) -- if (($unpack(zt) = (numtype : numtype <: valtype)) \/ ($unpack(zt) = (vectype : vectype <: valtype))) - -- if (C.`DATAS`_context[y!`%`_idx.0] = `OK`_datatype) + -- if (C.DATAS_context[y!`%`_idx.0] = OK_datatype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:332.1-334.26 - rule extern.convert_any{C : context, `null_1?` : null?, `null_2?` : null?}: - `%|-%:%`(C, `EXTERN.CONVERT_ANY`_instr, `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `ANY`_heaptype)]), [], `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `EXTERN`_heaptype)]))) + rule `extern.convert_any`{C : context, `null_1?` : null?, `null_2?` : null?}: + `%|-%:%`(C, `EXTERN.CONVERT_ANY`_instr, `%->_%%`_instrtype(`%`_resulttype([REF_valtype(null_1?{null_1 <- `null_1?`}, ANY_heaptype)]), [], `%`_resulttype([REF_valtype(null_2?{null_2 <- `null_2?`}, EXTERN_heaptype)]))) -- if (null_1?{null_1 <- `null_1?`} = null_2?{null_2 <- `null_2?`}) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:336.1-338.26 - rule any.convert_extern{C : context, `null_1?` : null?, `null_2?` : null?}: - `%|-%:%`(C, `ANY.CONVERT_EXTERN`_instr, `%->_%%`_instrtype(`%`_resulttype([`REF`_valtype(null_1?{null_1 <- `null_1?`}, `EXTERN`_heaptype)]), [], `%`_resulttype([`REF`_valtype(null_2?{null_2 <- `null_2?`}, `ANY`_heaptype)]))) + rule `any.convert_extern`{C : context, `null_1?` : null?, `null_2?` : null?}: + `%|-%:%`(C, `ANY.CONVERT_EXTERN`_instr, `%->_%%`_instrtype(`%`_resulttype([REF_valtype(null_1?{null_1 <- `null_1?`}, EXTERN_heaptype)]), [], `%`_resulttype([REF_valtype(null_2?{null_2 <- `null_2?`}, ANY_heaptype)]))) -- if (null_1?{null_1 <- `null_1?`} = null_2?{null_2 <- `null_2?`}) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:343.1-345.28 - rule local.get{C : context, x : idx, t : valtype}: + rule `local.get`{C : context, x : idx, t : valtype}: `%|-%:%`(C, `LOCAL.GET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))) - -- if (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(`SET`_init, t)) + -- if (C.LOCALS_context[x!`%`_idx.0] = `%%`_localtype(SET_init, t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:347.1-349.29 - rule local.set{C : context, x : idx, t : valtype, init : init}: + rule `local.set`{C : context, x : idx, t : valtype, init : init}: `%|-%:%`(C, `LOCAL.SET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([t]), [x], `%`_resulttype([]))) - -- if (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(init, t)) + -- if (C.LOCALS_context[x!`%`_idx.0] = `%%`_localtype(init, t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:351.1-353.29 - rule local.tee{C : context, x : idx, t : valtype, init : init}: + rule `local.tee`{C : context, x : idx, t : valtype, init : init}: `%|-%:%`(C, `LOCAL.TEE`_instr(x), `%->_%%`_instrtype(`%`_resulttype([t]), [x], `%`_resulttype([t]))) - -- if (C.`LOCALS`_context[x!`%`_idx.0] = `%%`_localtype(init, t)) + -- if (C.LOCALS_context[x!`%`_idx.0] = `%%`_localtype(init, t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:358.1-360.30 - rule global.get{C : context, x : idx, t : valtype, `mut?` : mut?}: + rule `global.get`{C : context, x : idx, t : valtype, `mut?` : mut?}: `%|-%:%`(C, `GLOBAL.GET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))) - -- if (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(mut?{mut <- `mut?`}, t)) + -- if (C.GLOBALS_context[x!`%`_idx.0] = `%%`_globaltype(mut?{mut <- `mut?`}, t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:362.1-364.29 - rule global.set{C : context, x : idx, t : valtype}: + rule `global.set`{C : context, x : idx, t : valtype}: `%|-%:%`(C, `GLOBAL.SET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([t]), [], `%`_resulttype([]))) - -- if (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(?(`MUT`_mut), t)) + -- if (C.GLOBALS_context[x!`%`_idx.0] = `%%`_globaltype(?(MUT_mut), t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:369.1-371.32 - rule table.get{C : context, x : idx, at : addrtype, rt : reftype, lim : limits}: + rule `table.get`{C : context, x : idx, at : addrtype, rt : reftype, lim : limits}: `%|-%:%`(C, `TABLE.GET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(rt : reftype <: valtype)]))) - -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:373.1-375.32 - rule table.set{C : context, x : idx, at : addrtype, rt : reftype, lim : limits}: + rule `table.set`{C : context, x : idx, at : addrtype, rt : reftype, lim : limits}: `%|-%:%`(C, `TABLE.SET`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype)]), [], `%`_resulttype([]))) - -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:377.1-379.32 - rule table.size{C : context, x : idx, at : addrtype, lim : limits, rt : reftype}: + rule `table.size`{C : context, x : idx, at : addrtype, lim : limits, rt : reftype}: `%|-%:%`(C, `TABLE.SIZE`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))) - -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:381.1-383.32 - rule table.grow{C : context, x : idx, rt : reftype, at : addrtype, lim : limits}: - `%|-%:%`(C, `TABLE.GROW`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))) - -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + rule `table.grow`{C : context, x : idx, rt : reftype, at : addrtype, lim : limits}: + `%|-%:%`(C, `TABLE.GROW`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([I32_valtype]))) + -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:385.1-387.32 - rule table.fill{C : context, x : idx, at : addrtype, rt : reftype, lim : limits}: + rule `table.fill`{C : context, x : idx, at : addrtype, rt : reftype, lim : limits}: `%|-%:%`(C, `TABLE.FILL`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (rt : reftype <: valtype) (at : addrtype <: valtype)]), [], `%`_resulttype([]))) - -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) + -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:389.1-393.36 - rule table.copy{C : context, x_1 : idx, x_2 : idx, at_1 : addrtype, at_2 : addrtype, lim_1 : limits, rt_1 : reftype, lim_2 : limits, rt_2 : reftype}: + rule `table.copy`{C : context, x_1 : idx, x_2 : idx, at_1 : addrtype, at_2 : addrtype, lim_1 : limits, rt_1 : reftype, lim_2 : limits, rt_2 : reftype}: `%|-%:%`(C, `TABLE.COPY`_instr(x_1, x_2), `%->_%%`_instrtype(`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))) - -- if (C.`TABLES`_context[x_1!`%`_idx.0] = `%%%`_tabletype(at_1, lim_1, rt_1)) - -- if (C.`TABLES`_context[x_2!`%`_idx.0] = `%%%`_tabletype(at_2, lim_2, rt_2)) + -- if (C.TABLES_context[x_1!`%`_idx.0] = `%%%`_tabletype(at_1, lim_1, rt_1)) + -- if (C.TABLES_context[x_2!`%`_idx.0] = `%%%`_tabletype(at_2, lim_2, rt_2)) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt_1) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:395.1-399.36 - rule table.init{C : context, x : idx, y : idx, at : addrtype, lim : limits, rt_1 : reftype, rt_2 : reftype}: - `%|-%:%`(C, `TABLE.INIT`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))) - -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt_1)) - -- if (C.`ELEMS`_context[y!`%`_idx.0] = rt_2) + rule `table.init`{C : context, x : idx, y : idx, at : addrtype, lim : limits, rt_1 : reftype, rt_2 : reftype}: + `%|-%:%`(C, `TABLE.INIT`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) I32_valtype I32_valtype]), [], `%`_resulttype([]))) + -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt_1)) + -- if (C.ELEMS_context[y!`%`_idx.0] = rt_2) -- Reftype_sub: `%|-%<:%`(C, rt_2, rt_1) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:401.1-403.24 - rule elem.drop{C : context, x : idx, rt : reftype}: + rule `elem.drop`{C : context, x : idx, rt : reftype}: `%|-%:%`(C, `ELEM.DROP`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))) - -- if (C.`ELEMS`_context[x!`%`_idx.0] = rt) + -- if (C.ELEMS_context[x!`%`_idx.0] = rt) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:416.1-418.32 - rule memory.size{C : context, x : idx, at : addrtype, lim : limits}: + rule `memory.size`{C : context, x : idx, at : addrtype, lim : limits}: `%|-%:%`(C, `MEMORY.SIZE`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(at : addrtype <: valtype)]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:420.1-422.32 - rule memory.grow{C : context, x : idx, at : addrtype, lim : limits}: + rule `memory.grow`{C : context, x : idx, at : addrtype, lim : limits}: `%|-%:%`(C, `MEMORY.GROW`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(at : addrtype <: valtype)]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:424.1-426.32 - rule memory.fill{C : context, x : idx, at : addrtype, lim : limits}: - `%|-%:%`(C, `MEMORY.FILL`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype (at : addrtype <: valtype)]), [], `%`_resulttype([]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + rule `memory.fill`{C : context, x : idx, at : addrtype, lim : limits}: + `%|-%:%`(C, `MEMORY.FILL`_instr(x), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) I32_valtype (at : addrtype <: valtype)]), [], `%`_resulttype([]))) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:428.1-431.38 - rule memory.copy{C : context, x_1 : idx, x_2 : idx, at_1 : addrtype, at_2 : addrtype, lim_1 : limits, lim_2 : limits}: + rule `memory.copy`{C : context, x_1 : idx, x_2 : idx, at_1 : addrtype, at_2 : addrtype, lim_1 : limits, lim_2 : limits}: `%|-%:%`(C, `MEMORY.COPY`_instr(x_1, x_2), `%->_%%`_instrtype(`%`_resulttype([(at_1 : addrtype <: valtype) (at_2 : addrtype <: valtype) ($minat(at_1, at_2) : addrtype <: valtype)]), [], `%`_resulttype([]))) - -- if (C.`MEMS`_context[x_1!`%`_idx.0] = `%%PAGE`_memtype(at_1, lim_1)) - -- if (C.`MEMS`_context[x_2!`%`_idx.0] = `%%PAGE`_memtype(at_2, lim_2)) + -- if (C.MEMS_context[x_1!`%`_idx.0] = `%%PAGE`_memtype(at_1, lim_1)) + -- if (C.MEMS_context[x_2!`%`_idx.0] = `%%PAGE`_memtype(at_2, lim_2)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:433.1-436.24 - rule memory.init{C : context, x : idx, y : idx, at : addrtype, lim : limits}: - `%|-%:%`(C, `MEMORY.INIT`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `I32`_valtype `I32`_valtype]), [], `%`_resulttype([]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) - -- if (C.`DATAS`_context[y!`%`_idx.0] = `OK`_datatype) + rule `memory.init`{C : context, x : idx, y : idx, at : addrtype, lim : limits}: + `%|-%:%`(C, `MEMORY.INIT`_instr(x, y), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) I32_valtype I32_valtype]), [], `%`_resulttype([]))) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + -- if (C.DATAS_context[y!`%`_idx.0] = OK_datatype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:438.1-440.24 - rule data.drop{C : context, x : idx}: + rule `data.drop`{C : context, x : idx}: `%|-%:%`(C, `DATA.DROP`_instr(x), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([]))) - -- if (C.`DATAS`_context[x!`%`_idx.0] = `OK`_datatype) + -- if (C.DATAS_context[x!`%`_idx.0] = OK_datatype) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:451.1-454.44 rule `load-val`{C : context, nt : numtype, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, `LOAD`_instr(nt, ?(), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + `%|-%:%`(C, LOAD_instr(nt, ?(), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, $size(nt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:456.1-459.36 rule `load-pack`{C : context, Inn : Inn, M : M, sx : sx, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(M), sx)), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(Inn : Inn <: valtype)]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + `%|-%:%`(C, LOAD_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(M), sx)), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([(Inn : Inn <: valtype)]))) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, M) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:470.1-473.44 rule `store-val`{C : context, nt : numtype, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, `STORE`_instr(nt, ?(), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + `%|-%:%`(C, STORE_instr(nt, ?(), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([]))) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, $size(nt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:475.1-478.36 rule `store-pack`{C : context, Inn : Inn, M : M, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(M))), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype([]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + `%|-%:%`(C, STORE_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(M))), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) (Inn : Inn <: valtype)]), [], `%`_resulttype([]))) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, M) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:480.1-483.47 rule `vload-val`{C : context, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, `VLOAD`_instr(`V128`_vectype, ?(), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) - -- Memarg_ok: `|-%:%->%`(memarg, at, $vsize(`V128`_vectype)) + `%|-%:%`(C, VLOAD_instr(V128_vectype, ?(), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([V128_valtype]))) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + -- Memarg_ok: `|-%:%->%`(memarg, at, $vsize(V128_vectype)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:485.1-488.41 rule `vload-pack`{C : context, M : M, N : N, sx : sx, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), N, sx)), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + `%|-%:%`(C, VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), N, sx)), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([V128_valtype]))) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, (M * N)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:490.1-493.36 rule `vload-splat`{C : context, N : N, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + `%|-%:%`(C, VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(N))), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([V128_valtype]))) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, N) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:495.1-498.36 rule `vload-zero`{C : context, N : N, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + `%|-%:%`(C, VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(N))), x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype)]), [], `%`_resulttype([V128_valtype]))) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, N) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:500.1-504.21 rule vload_lane{C : context, N : N, x : idx, memarg : memarg, i : laneidx, at : addrtype, lim : limits}: - `%|-%:%`(C, `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, memarg, i), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + `%|-%:%`(C, VLOAD_LANE_instr(V128_vectype, `%`_sz(N), x, memarg, i), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) V128_valtype]), [], `%`_resulttype([V128_valtype]))) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, N) -- if ((i!`%`_laneidx.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:506.1-509.47 rule vstore{C : context, x : idx, memarg : memarg, at : addrtype, lim : limits}: - `%|-%:%`(C, `VSTORE`_instr(`V128`_vectype, x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) - -- Memarg_ok: `|-%:%->%`(memarg, at, $vsize(`V128`_vectype)) + `%|-%:%`(C, VSTORE_instr(V128_vectype, x, memarg), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) V128_valtype]), [], `%`_resulttype([]))) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + -- Memarg_ok: `|-%:%->%`(memarg, at, $vsize(V128_vectype)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:511.1-515.21 rule vstore_lane{C : context, N : N, x : idx, memarg : memarg, i : laneidx, at : addrtype, lim : limits}: - `%|-%:%`(C, `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, memarg, i), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) `V128`_valtype]), [], `%`_resulttype([]))) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + `%|-%:%`(C, VSTORE_LANE_instr(V128_vectype, `%`_sz(N), x, memarg, i), `%->_%%`_instrtype(`%`_resulttype([(at : addrtype <: valtype) V128_valtype]), [], `%`_resulttype([]))) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Memarg_ok: `|-%:%->%`(memarg, at, N) -- if ((i!`%`_laneidx.0 : nat <:> rat) < ((128 : nat <:> rat) / (N : nat <:> rat))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:520.1-521.33 rule const{C : context, nt : numtype, c_nt : num_(nt)}: - `%|-%:%`(C, `CONST`_instr(nt, c_nt), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(nt : numtype <: valtype)]))) + `%|-%:%`(C, CONST_instr(nt, c_nt), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([(nt : numtype <: valtype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:523.1-524.34 rule unop{C : context, nt : numtype, unop_nt : unop_(nt)}: - `%|-%:%`(C, `UNOP`_instr(nt, unop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))) + `%|-%:%`(C, UNOP_instr(nt, unop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:526.1-527.39 rule binop{C : context, nt : numtype, binop_nt : binop_(nt)}: - `%|-%:%`(C, `BINOP`_instr(nt, binop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))) + `%|-%:%`(C, BINOP_instr(nt, binop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([(nt : numtype <: valtype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:529.1-530.39 rule testop{C : context, nt : numtype, testop_nt : testop_(nt)}: - `%|-%:%`(C, `TESTOP`_instr(nt, testop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))) + `%|-%:%`(C, TESTOP_instr(nt, testop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype)]), [], `%`_resulttype([I32_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:532.1-533.40 rule relop{C : context, nt : numtype, relop_nt : relop_(nt)}: - `%|-%:%`(C, `RELOP`_instr(nt, relop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([`I32`_valtype]))) + `%|-%:%`(C, RELOP_instr(nt, relop_nt), `%->_%%`_instrtype(`%`_resulttype([(nt : numtype <: valtype) (nt : numtype <: valtype)]), [], `%`_resulttype([I32_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:535.1-536.44 rule cvtop{C : context, nt_1 : numtype, nt_2 : numtype, cvtop : cvtop__(nt_2, nt_1)}: - `%|-%:%`(C, `CVTOP`_instr(nt_1, nt_2, cvtop), `%->_%%`_instrtype(`%`_resulttype([(nt_2 : numtype <: valtype)]), [], `%`_resulttype([(nt_1 : numtype <: valtype)]))) + `%|-%:%`(C, CVTOP_instr(nt_1, nt_2, cvtop), `%->_%%`_instrtype(`%`_resulttype([(nt_2 : numtype <: valtype)]), [], `%`_resulttype([(nt_1 : numtype <: valtype)]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:541.1-542.35 - rule vconst{C : context, c : vec_(`V128`_Vnn)}: - `%|-%:%`(C, `VCONST`_instr(`V128`_vectype, c), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([`V128`_valtype]))) + rule vconst{C : context, c : vec_(V128_Vnn)}: + `%|-%:%`(C, VCONST_instr(V128_vectype, c), `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:544.1-545.41 rule vvunop{C : context, vvunop : vvunop}: - `%|-%:%`(C, `VVUNOP`_instr(`V128`_vectype, vvunop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VVUNOP_instr(V128_vectype, vvunop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:547.1-548.48 rule vvbinop{C : context, vvbinop : vvbinop}: - `%|-%:%`(C, `VVBINOP`_instr(`V128`_vectype, vvbinop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VVBINOP_instr(V128_vectype, vvbinop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:550.1-551.55 rule vvternop{C : context, vvternop : vvternop}: - `%|-%:%`(C, `VVTERNOP`_instr(`V128`_vectype, vvternop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VVTERNOP_instr(V128_vectype, vvternop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:553.1-554.44 rule vvtestop{C : context, vvtestop : vvtestop}: - `%|-%:%`(C, `VVTESTOP`_instr(`V128`_vectype, vvtestop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))) + `%|-%:%`(C, VVTESTOP_instr(V128_vectype, vvtestop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([I32_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:556.1-557.37 rule vunop{C : context, sh : shape, vunop : vunop_(sh)}: - `%|-%:%`(C, `VUNOP`_instr(sh, vunop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VUNOP_instr(sh, vunop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:559.1-560.44 rule vbinop{C : context, sh : shape, vbinop : vbinop_(sh)}: - `%|-%:%`(C, `VBINOP`_instr(sh, vbinop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VBINOP_instr(sh, vbinop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:562.1-563.51 rule vternop{C : context, sh : shape, vternop : vternop_(sh)}: - `%|-%:%`(C, `VTERNOP`_instr(sh, vternop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VTERNOP_instr(sh, vternop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:565.1-566.40 rule vtestop{C : context, sh : shape, vtestop : vtestop_(sh)}: - `%|-%:%`(C, `VTESTOP`_instr(sh, vtestop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))) + `%|-%:%`(C, VTESTOP_instr(sh, vtestop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([I32_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:568.1-569.44 rule vrelop{C : context, sh : shape, vrelop : vrelop_(sh)}: - `%|-%:%`(C, `VRELOP`_instr(sh, vrelop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VRELOP_instr(sh, vrelop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:571.1-572.47 rule vshiftop{C : context, sh : ishape, vshiftop : vshiftop_(sh)}: - `%|-%:%`(C, `VSHIFTOP`_instr(sh, vshiftop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `I32`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VSHIFTOP_instr(sh, vshiftop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype I32_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:574.1-575.33 rule vbitmask{C : context, sh : ishape}: - `%|-%:%`(C, `VBITMASK`_instr(sh), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`I32`_valtype]))) + `%|-%:%`(C, VBITMASK_instr(sh), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([I32_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:577.1-578.50 rule vswizzlop{C : context, sh : bshape, vswizzlop : vswizzlop_(sh)}: - `%|-%:%`(C, `VSWIZZLOP`_instr(sh, vswizzlop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VSWIZZLOP_instr(sh, vswizzlop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:580.1-582.29 rule vshuffle{C : context, sh : bshape, `i*` : laneidx*}: - `%|-%:%`(C, `VSHUFFLE`_instr(sh, i*{i <- `i*`}), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VSHUFFLE_instr(sh, i*{i <- `i*`}), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) -- (if (i!`%`_laneidx.0 < (2 * $dim(sh!`%`_bshape.0)!`%`_dim.0)))*{i <- `i*`} ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:584.1-585.44 rule vsplat{C : context, sh : shape}: - `%|-%:%`(C, `VSPLAT`_instr(sh), `%->_%%`_instrtype(`%`_resulttype([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VSPLAT_instr(sh), `%->_%%`_instrtype(`%`_resulttype([($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:587.1-589.21 rule vextract_lane{C : context, sh : shape, `sx?` : sx?, i : laneidx}: - `%|-%:%`(C, `VEXTRACT_LANE`_instr(sh, sx?{sx <- `sx?`}, i), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([($unpackshape(sh) : numtype <: valtype)]))) + `%|-%:%`(C, VEXTRACT_LANE_instr(sh, sx?{sx <- `sx?`}, i), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([($unpackshape(sh) : numtype <: valtype)]))) -- if (i!`%`_laneidx.0 < $dim(sh)!`%`_dim.0) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:591.1-593.21 rule vreplace_lane{C : context, sh : shape, i : laneidx}: - `%|-%:%`(C, `VREPLACE_LANE`_instr(sh, i), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VREPLACE_LANE_instr(sh, i), `%->_%%`_instrtype(`%`_resulttype([V128_valtype ($unpackshape(sh) : numtype <: valtype)]), [], `%`_resulttype([V128_valtype]))) -- if (i!`%`_laneidx.0 < $dim(sh)!`%`_dim.0) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:595.1-596.50 rule vextunop{C : context, sh_1 : ishape, sh_2 : ishape, vextunop : vextunop__(sh_2, sh_1)}: - `%|-%:%`(C, `VEXTUNOP`_instr(sh_1, sh_2, vextunop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VEXTUNOP_instr(sh_1, sh_2, vextunop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:598.1-599.57 rule vextbinop{C : context, sh_1 : ishape, sh_2 : ishape, vextbinop : vextbinop__(sh_2, sh_1)}: - `%|-%:%`(C, `VEXTBINOP`_instr(sh_1, sh_2, vextbinop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VEXTBINOP_instr(sh_1, sh_2, vextbinop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:601.1-602.64 rule vextternop{C : context, sh_1 : ishape, sh_2 : ishape, vextternop : vextternop__(sh_2, sh_1)}: - `%|-%:%`(C, `VEXTTERNOP`_instr(sh_1, sh_2, vextternop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VEXTTERNOP_instr(sh_1, sh_2, vextternop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:604.1-605.48 rule vnarrow{C : context, sh_1 : ishape, sh_2 : ishape, sx : sx}: - `%|-%:%`(C, `VNARROW`_instr(sh_1, sh_2, sx), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype `V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VNARROW_instr(sh_1, sh_2, sx), `%->_%%`_instrtype(`%`_resulttype([V128_valtype V128_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:607.1-608.46 rule vcvtop{C : context, sh_1 : shape, sh_2 : shape, vcvtop : vcvtop__(sh_2, sh_1)}: - `%|-%:%`(C, `VCVTOP`_instr(sh_1, sh_2, vcvtop), `%->_%%`_instrtype(`%`_resulttype([`V128`_valtype]), [], `%`_resulttype([`V128`_valtype]))) + `%|-%:%`(C, VCVTOP_instr(sh_1, sh_2, vcvtop), `%->_%%`_instrtype(`%`_resulttype([V128_valtype]), [], `%`_resulttype([V128_valtype]))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:6.1-6.96 relation Instrs_ok: `%|-%:%`(context, instr*, instrtype) @@ -90756,8 +3950,8 @@ relation Instrs_ok: `%|-%:%`(context, instr*, instrtype) rule seq{C : context, instr_1 : instr, `instr_2*` : instr*, `t_1*` : valtype*, `x_1*` : idx*, `x_2*` : idx*, `t_3*` : valtype*, `t_2*` : valtype*, `init*` : init*, `t*` : valtype*}: `%|-%:%`(C, [instr_1] ++ instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`} ++ x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))) -- Instr_ok: `%|-%:%`(C, instr_1, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), x_1*{x_1 <- `x_1*`}, `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- (if (C.`LOCALS`_context[x_1!`%`_idx.0] = `%%`_localtype(init, t)))*{init <- `init*`, t <- `t*`, x_1 <- `x_1*`} - -- Instrs_ok: `%|-%:%`($with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype(`SET`_init, t)*{t <- `t*`}), instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))) + -- (if (C.LOCALS_context[x_1!`%`_idx.0] = `%%`_localtype(init, t)))*{init <- `init*`, t <- `t*`, x_1 <- `x_1*`} + -- Instrs_ok: `%|-%:%`($with_locals(C, x_1*{x_1 <- `x_1*`}, `%%`_localtype(SET_init, t)*{t <- `t*`}), instr_2*{instr_2 <- `instr_2*`}, `%->_%%`_instrtype(`%`_resulttype(t_2*{t_2 <- `t_2*`}), x_2*{x_2 <- `x_2*`}, `%`_resulttype(t_3*{t_3 <- `t_3*`}))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec:623.1-627.33 rule sub{C : context, `instr*` : instr*, it' : instrtype, it : instrtype}: @@ -90791,62 +3985,62 @@ relation Nondefaultable: `|-%NONDEFAULTABLE`(valtype) relation Instr_const: `%|-%CONST`(context, instr) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule const{C : context, nt : numtype, c_nt : num_(nt)}: - `%|-%CONST`(C, `CONST`_instr(nt, c_nt)) + `%|-%CONST`(C, CONST_instr(nt, c_nt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule vconst{C : context, vt : vectype, c_vt : vec_(vt)}: - `%|-%CONST`(C, `VCONST`_instr(vt, c_vt)) + `%|-%CONST`(C, VCONST_instr(vt, c_vt)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule ref.null{C : context, ht : heaptype}: + rule `ref.null`{C : context, ht : heaptype}: `%|-%CONST`(C, `REF.NULL`_instr(ht)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule ref.i31{C : context}: + rule `ref.i31`{C : context}: `%|-%CONST`(C, `REF.I31`_instr) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule ref.func{C : context, x : idx}: + rule `ref.func`{C : context, x : idx}: `%|-%CONST`(C, `REF.FUNC`_instr(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule struct.new{C : context, x : idx}: + rule `struct.new`{C : context, x : idx}: `%|-%CONST`(C, `STRUCT.NEW`_instr(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule struct.new_default{C : context, x : idx}: + rule `struct.new_default`{C : context, x : idx}: `%|-%CONST`(C, `STRUCT.NEW_DEFAULT`_instr(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule array.new{C : context, x : idx}: + rule `array.new`{C : context, x : idx}: `%|-%CONST`(C, `ARRAY.NEW`_instr(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule array.new_default{C : context, x : idx}: + rule `array.new_default`{C : context, x : idx}: `%|-%CONST`(C, `ARRAY.NEW_DEFAULT`_instr(x)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule array.new_fixed{C : context, x : idx, n : n}: + rule `array.new_fixed`{C : context, x : idx, n : n}: `%|-%CONST`(C, `ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule any.convert_extern{C : context}: + rule `any.convert_extern`{C : context}: `%|-%CONST`(C, `ANY.CONVERT_EXTERN`_instr) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule extern.convert_any{C : context}: + rule `extern.convert_any`{C : context}: `%|-%CONST`(C, `EXTERN.CONVERT_ANY`_instr) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec - rule global.get{C : context, x : idx, t : valtype}: + rule `global.get`{C : context, x : idx, t : valtype}: `%|-%CONST`(C, `GLOBAL.GET`_instr(x)) - -- if (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(?(), t)) + -- if (C.GLOBALS_context[x!`%`_idx.0] = `%%`_globaltype(?(), t)) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec rule binop{C : context, Inn : Inn, binop : binop_((Inn : Inn <: numtype))}: - `%|-%CONST`(C, `BINOP`_instr((Inn : Inn <: numtype), binop)) - -- if (Inn <- [`I32`_Inn `I64`_Inn]) - -- if (binop <- [`ADD`_binop_ `SUB`_binop_ `MUL`_binop_]) + `%|-%CONST`(C, BINOP_instr((Inn : Inn <: numtype), binop)) + -- if (Inn <- [I32_Inn I64_Inn]) + -- if (binop <- [ADD_binop_ SUB_binop_ MUL_binop_]) ;; ../../../../specification/wasm-3.0/2.3-validation.instructions.spectec relation Expr_const: `%|-%CONST`(context, expr) @@ -90867,39 +4061,39 @@ relation Expr_ok_const: `%|-%:%CONST`(context, expr, valtype) relation Type_ok: `%|-%:%`(context, type, deftype*) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule _{C : context, rectype : rectype, `dt*` : deftype*, x : idx}: - `%|-%:%`(C, `TYPE`_type(rectype), dt*{dt <- `dt*`}) - -- if (x!`%`_idx.0 = |C.`TYPES`_context|) + `%|-%:%`(C, TYPE_type(rectype), dt*{dt <- `dt*`}) + -- if (x!`%`_idx.0 = |C.TYPES_context|) -- if (dt*{dt <- `dt*`} = $rolldt(x, rectype)) - -- Rectype_ok: `%|-%:%`(C +++ {`TYPES` dt*{dt <- `dt*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rectype, `OK`_oktypeidx(x)) + -- Rectype_ok: `%|-%:%`(C +++ {TYPES dt*{dt <- `dt*`}, RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, rectype, OK_oktypeidx(x)) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Tag_ok: `%|-%:%`(context, tag, tagtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule _{C : context, tagtype : tagtype}: - `%|-%:%`(C, `TAG`_tag(tagtype), $clos_tagtype(C, tagtype)) + `%|-%:%`(C, TAG_tag(tagtype), $clos_tagtype(C, tagtype)) -- Tagtype_ok: `%|-%:OK`(C, tagtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Global_ok: `%|-%:%`(context, global, globaltype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule _{C : context, globaltype : globaltype, expr : expr, t : valtype}: - `%|-%:%`(C, `GLOBAL`_global(globaltype, expr), globaltype) + `%|-%:%`(C, GLOBAL_global(globaltype, expr), globaltype) -- Globaltype_ok: `%|-%:OK`(C, globaltype) - -- if (globaltype = `%%`_globaltype(`MUT`_mut?{}, t)) + -- if (globaltype = `%%`_globaltype(MUT_mut?{}, t)) -- Expr_ok_const: `%|-%:%CONST`(C, expr, t) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Mem_ok: `%|-%:%`(context, mem, memtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule _{C : context, memtype : memtype}: - `%|-%:%`(C, `MEMORY`_mem(memtype), memtype) + `%|-%:%`(C, MEMORY_mem(memtype), memtype) -- Memtype_ok: `%|-%:OK`(C, memtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Table_ok: `%|-%:%`(context, table, tabletype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule _{C : context, tabletype : tabletype, expr : expr, at : addrtype, lim : limits, rt : reftype}: - `%|-%:%`(C, `TABLE`_table(tabletype, expr), tabletype) + `%|-%:%`(C, TABLE_table(tabletype, expr), tabletype) -- Tabletype_ok: `%|-%:OK`(C, tabletype) -- if (tabletype = `%%%`_tabletype(at, lim, rt)) -- Expr_ok_const: `%|-%:%CONST`(C, expr, (rt : reftype <: valtype)) @@ -90908,56 +4102,56 @@ relation Table_ok: `%|-%:%`(context, table, tabletype) relation Local_ok: `%|-%:%`(context, local, localtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule set{C : context, t : valtype}: - `%|-%:%`(C, `LOCAL`_local(t), `%%`_localtype(`SET`_init, t)) + `%|-%:%`(C, LOCAL_local(t), `%%`_localtype(SET_init, t)) -- Defaultable: `|-%DEFAULTABLE`(t) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule unset{C : context, t : valtype}: - `%|-%:%`(C, `LOCAL`_local(t), `%%`_localtype(`UNSET`_init, t)) + `%|-%:%`(C, LOCAL_local(t), `%%`_localtype(UNSET_init, t)) -- Nondefaultable: `|-%NONDEFAULTABLE`(t) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Func_ok: `%|-%:%`(context, func, deftype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule _{C : context, x : idx, `local*` : local*, expr : expr, `t_1*` : valtype*, `t_2*` : valtype*, `lct*` : localtype*}: - `%|-%:%`(C, `FUNC`_func(x, local*{local <- `local*`}, expr), C.`TYPES`_context[x!`%`_idx.0]) - -- Expand: `%~~%`(C.`TYPES`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + `%|-%:%`(C, FUNC_func(x, local*{local <- `local*`}, expr), C.TYPES_context[x!`%`_idx.0]) + -- Expand: `%~~%`(C.TYPES_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- (Local_ok: `%|-%:%`(C, local, lct))*{lct <- `lct*`, local <- `local*`} - -- Expr_ok: `%|-%:%`(C +++ {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` `%%`_localtype(`SET`_init, t_1)*{t_1 <- `t_1*`} ++ lct*{lct <- `lct*`}, `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(`%`_resulttype(t_2*{t_2 <- `t_2*`})), `REFS` []}, expr, `%`_resulttype(t_2*{t_2 <- `t_2*`})) + -- Expr_ok: `%|-%:%`(C +++ {TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS `%%`_localtype(SET_init, t_1)*{t_1 <- `t_1*`} ++ lct*{lct <- `lct*`}, LABELS [`%`_resulttype(t_2*{t_2 <- `t_2*`})], RETURN ?(`%`_resulttype(t_2*{t_2 <- `t_2*`})), REFS []}, expr, `%`_resulttype(t_2*{t_2 <- `t_2*`})) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Datamode_ok: `%|-%:%`(context, datamode, datatype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule passive{C : context}: - `%|-%:%`(C, `PASSIVE`_datamode, `OK`_datatype) + `%|-%:%`(C, PASSIVE_datamode, OK_datatype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule active{C : context, x : idx, expr : expr, at : addrtype, lim : limits}: - `%|-%:%`(C, `ACTIVE`_datamode(x, expr), `OK`_datatype) - -- if (C.`MEMS`_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) + `%|-%:%`(C, ACTIVE_datamode(x, expr), OK_datatype) + -- if (C.MEMS_context[x!`%`_idx.0] = `%%PAGE`_memtype(at, lim)) -- Expr_ok_const: `%|-%:%CONST`(C, expr, (at : addrtype <: valtype)) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Data_ok: `%|-%:%`(context, data, datatype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule _{C : context, `b*` : byte*, datamode : datamode}: - `%|-%:%`(C, `DATA`_data(b*{b <- `b*`}, datamode), `OK`_datatype) - -- Datamode_ok: `%|-%:%`(C, datamode, `OK`_datatype) + `%|-%:%`(C, DATA_data(b*{b <- `b*`}, datamode), OK_datatype) + -- Datamode_ok: `%|-%:%`(C, datamode, OK_datatype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Elemmode_ok: `%|-%:%`(context, elemmode, elemtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule passive{C : context, rt : reftype}: - `%|-%:%`(C, `PASSIVE`_elemmode, rt) + `%|-%:%`(C, PASSIVE_elemmode, rt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule declare{C : context, rt : reftype}: - `%|-%:%`(C, `DECLARE`_elemmode, rt) + `%|-%:%`(C, DECLARE_elemmode, rt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule active{C : context, x : idx, expr : expr, rt : reftype, at : addrtype, lim : limits, rt' : reftype}: - `%|-%:%`(C, `ACTIVE`_elemmode(x, expr), rt) - -- if (C.`TABLES`_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt')) + `%|-%:%`(C, ACTIVE_elemmode(x, expr), rt) + -- if (C.TABLES_context[x!`%`_idx.0] = `%%%`_tabletype(at, lim, rt')) -- Reftype_sub: `%|-%<:%`(C, rt, rt') -- Expr_ok_const: `%|-%:%CONST`(C, expr, (at : addrtype <: valtype)) @@ -90965,7 +4159,7 @@ relation Elemmode_ok: `%|-%:%`(context, elemmode, elemtype) relation Elem_ok: `%|-%:%`(context, elem, elemtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule _{C : context, elemtype : elemtype, `expr*` : expr*, elemmode : elemmode}: - `%|-%:%`(C, `ELEM`_elem(elemtype, expr*{expr <- `expr*`}, elemmode), elemtype) + `%|-%:%`(C, ELEM_elem(elemtype, expr*{expr <- `expr*`}, elemmode), elemtype) -- Reftype_ok: `%|-%:OK`(C, elemtype) -- (Expr_ok_const: `%|-%:%CONST`(C, expr, (elemtype : reftype <: valtype)))*{expr <- `expr*`} -- Elemmode_ok: `%|-%:%`(C, elemmode, elemtype) @@ -90974,48 +4168,48 @@ relation Elem_ok: `%|-%:%`(context, elem, elemtype) relation Start_ok: `%|-%:OK`(context, start) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule _{C : context, x : idx}: - `%|-%:OK`(C, `START`_start(x)) - -- Expand: `%~~%`(C.`FUNCS`_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype([]), `%`_resulttype([]))) + `%|-%:OK`(C, START_start(x)) + -- Expand: `%~~%`(C.FUNCS_context[x!`%`_idx.0], `FUNC%->%`_comptype(`%`_resulttype([]), `%`_resulttype([]))) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Import_ok: `%|-%:%`(context, import, externtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule _{C : context, name_1 : name, name_2 : name, xt : externtype}: - `%|-%:%`(C, `IMPORT`_import(name_1, name_2, xt), $clos_externtype(C, xt)) + `%|-%:%`(C, IMPORT_import(name_1, name_2, xt), $clos_externtype(C, xt)) -- Externtype_ok: `%|-%:OK`(C, xt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Externidx_ok: `%|-%:%`(context, externidx, externtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule tag{C : context, x : idx, jt : tagtype}: - `%|-%:%`(C, `TAG`_externidx(x), `TAG`_externtype(jt)) - -- if (C.`TAGS`_context[x!`%`_idx.0] = jt) + `%|-%:%`(C, TAG_externidx(x), TAG_externtype(jt)) + -- if (C.TAGS_context[x!`%`_idx.0] = jt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule global{C : context, x : idx, gt : globaltype}: - `%|-%:%`(C, `GLOBAL`_externidx(x), `GLOBAL`_externtype(gt)) - -- if (C.`GLOBALS`_context[x!`%`_idx.0] = gt) + `%|-%:%`(C, GLOBAL_externidx(x), GLOBAL_externtype(gt)) + -- if (C.GLOBALS_context[x!`%`_idx.0] = gt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule mem{C : context, x : idx, mt : memtype}: - `%|-%:%`(C, `MEM`_externidx(x), `MEM`_externtype(mt)) - -- if (C.`MEMS`_context[x!`%`_idx.0] = mt) + `%|-%:%`(C, MEM_externidx(x), MEM_externtype(mt)) + -- if (C.MEMS_context[x!`%`_idx.0] = mt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule table{C : context, x : idx, tt : tabletype}: - `%|-%:%`(C, `TABLE`_externidx(x), `TABLE`_externtype(tt)) - -- if (C.`TABLES`_context[x!`%`_idx.0] = tt) + `%|-%:%`(C, TABLE_externidx(x), TABLE_externtype(tt)) + -- if (C.TABLES_context[x!`%`_idx.0] = tt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule func{C : context, x : idx, dt : deftype}: - `%|-%:%`(C, `FUNC`_externidx(x), `FUNC`_externtype((dt : deftype <: typeuse))) - -- if (C.`FUNCS`_context[x!`%`_idx.0] = dt) + `%|-%:%`(C, FUNC_externidx(x), FUNC_externtype((dt : deftype <: typeuse))) + -- if (C.FUNCS_context[x!`%`_idx.0] = dt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Export_ok: `%|-%:%%`(context, export, name, externtype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule _{C : context, name : name, externidx : externidx, xt : externtype}: - `%|-%:%%`(C, `EXPORT`_export(name, externidx), name, xt) + `%|-%:%%`(C, EXPORT_export(name, externidx), name, xt) -- Externidx_ok: `%|-%:%`(C, externidx, xt) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec @@ -91031,7 +4225,7 @@ relation Globals_ok: `%|-%:%`(context, global*, globaltype*) rule cons{C : context, global_1 : global, `global*` : global*, gt_1 : globaltype, `gt*` : globaltype*}: `%|-%:%`(C, [global_1] ++ global*{global <- `global*`}, [gt_1] ++ gt*{gt <- `gt*`}) -- Global_ok: `%|-%:%`(C, global_1, gt_1) - -- Globals_ok: `%|-%:%`(C +++ {`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [gt_1], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, global*{global <- `global*`}, gt*{gt <- `gt*`}) + -- Globals_ok: `%|-%:%`(C +++ {TYPES [], RECS [], TAGS [], GLOBALS [gt_1], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, global*{global <- `global*`}, gt*{gt <- `gt*`}) } ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec @@ -91047,7 +4241,7 @@ relation Types_ok: `%|-%:%`(context, type*, deftype*) rule cons{C : context, type_1 : type, `type*` : type*, `dt_1*` : deftype*, `dt*` : deftype*}: `%|-%:%`(C, [type_1] ++ type*{type <- `type*`}, dt_1*{dt_1 <- `dt_1*`} ++ dt*{dt <- `dt*`}) -- Type_ok: `%|-%:%`(C, type_1, dt_1*{dt_1 <- `dt_1*`}) - -- Types_ok: `%|-%:%`(C +++ {`TYPES` dt_1*{dt_1 <- `dt_1*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, type*{type <- `type*`}, dt*{dt <- `dt*`}) + -- Types_ok: `%|-%:%`(C +++ {TYPES dt_1*{dt_1 <- `dt_1*`}, RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, type*{type <- `type*`}, dt*{dt <- `dt*`}) } ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec @@ -91057,15 +4251,15 @@ syntax nonfuncs = ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec def $funcidx_nonfuncs(nonfuncs : nonfuncs) : funcidx* ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec - def $funcidx_nonfuncs{`global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*}(`%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})) = $funcidx_module(`MODULE`_module([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])) + def $funcidx_nonfuncs{`global*` : global*, `mem*` : mem*, `table*` : table*, `elem*` : elem*}(`%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`})) = $funcidx_module(MODULE_module([], [], [], global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, [], [], elem*{elem <- `elem*`}, ?(), [])) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec relation Module_ok: `|-%:%`(module, moduletype) ;; ../../../../specification/wasm-3.0/2.4-validation.modules.spectec rule _{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, C : context, `xt_I*` : externtype*, `xt_E*` : externtype*, `dt'*` : deftype*, C' : context, `jt*` : tagtype*, `gt*` : globaltype*, `mt*` : memtype*, `tt*` : tabletype*, `dt*` : deftype*, `ok*` : datatype*, `rt*` : reftype*, `nm*` : name*, `jt_I*` : tagtype*, `mt_I*` : memtype*, `tt_I*` : tabletype*, `gt_I*` : globaltype*, `dt_I*` : deftype*, `x*` : idx*}: - `|-%:%`(`MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}), $clos_moduletype(C, `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))) - -- Types_ok: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, type*{type <- `type*`}, dt'*{dt' <- `dt'*`}) - -- (Import_ok: `%|-%:%`({`TYPES` dt'*{dt' <- `dt'*`}, `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, import, xt_I))*{import <- `import*`, xt_I <- `xt_I*`} + `|-%:%`(MODULE_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}), $clos_moduletype(C, `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`}))) + -- Types_ok: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, type*{type <- `type*`}, dt'*{dt' <- `dt'*`}) + -- (Import_ok: `%|-%:%`({TYPES dt'*{dt' <- `dt'*`}, RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, import, xt_I))*{import <- `import*`, xt_I <- `xt_I*`} -- (Tag_ok: `%|-%:%`(C', tag, jt))*{jt <- `jt*`, tag <- `tag*`} -- Globals_ok: `%|-%:%`(C', global*{global <- `global*`}, gt*{gt <- `gt*`}) -- (Mem_ok: `%|-%:%`(C', mem, mt))*{mem <- `mem*`, mt <- `mt*`} @@ -91076,8 +4270,8 @@ relation Module_ok: `|-%:%`(module, moduletype) -- (Start_ok: `%|-%:OK`(C, start))?{start <- `start?`} -- (Export_ok: `%|-%:%%`(C, export, nm, xt_E))*{export <- `export*`, nm <- `nm*`, xt_E <- `xt_E*`} -- if $disjoint_(syntax name, nm*{nm <- `nm*`}) - -- if (C = C' +++ {`TYPES` [], `RECS` [], `TAGS` jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, `GLOBALS` gt*{gt <- `gt*`}, `MEMS` mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, `TABLES` tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, `FUNCS` [], `DATAS` ok*{ok <- `ok*`}, `ELEMS` rt*{rt <- `rt*`}, `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}) - -- if (C' = {`TYPES` dt'*{dt' <- `dt'*`}, `RECS` [], `TAGS` [], `GLOBALS` gt_I*{gt_I <- `gt_I*`}, `MEMS` [], `TABLES` [], `FUNCS` dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` x*{x <- `x*`}}) + -- if (C = C' +++ {TYPES [], RECS [], TAGS jt_I*{jt_I <- `jt_I*`} ++ jt*{jt <- `jt*`}, GLOBALS gt*{gt <- `gt*`}, MEMS mt_I*{mt_I <- `mt_I*`} ++ mt*{mt <- `mt*`}, TABLES tt_I*{tt_I <- `tt_I*`} ++ tt*{tt <- `tt*`}, FUNCS [], DATAS ok*{ok <- `ok*`}, ELEMS rt*{rt <- `rt*`}, LOCALS [], LABELS [], RETURN ?(), REFS []}) + -- if (C' = {TYPES dt'*{dt' <- `dt'*`}, RECS [], TAGS [], GLOBALS gt_I*{gt_I <- `gt_I*`}, MEMS [], TABLES [], FUNCS dt_I*{dt_I <- `dt_I*`} ++ dt*{dt <- `dt*`}, DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS x*{x <- `x*`}}) -- if (x*{x <- `x*`} = $funcidx_nonfuncs(`%%%%`_nonfuncs(global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, elem*{elem <- `elem*`}))) -- if (jt_I*{jt_I <- `jt_I*`} = $tagsxt(xt_I*{xt_I <- `xt_I*`})) -- if (gt_I*{gt_I <- `gt_I*`} = $globalsxt(xt_I*{xt_I <- `xt_I*`})) @@ -91214,7 +4408,7 @@ def $sx(storagetype : storagetype) : sx? ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $sx{consttype : consttype}((consttype : consttype <: storagetype)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $sx{packtype : packtype}((packtype : packtype <: storagetype)) = ?(`S`_sx) + def $sx{packtype : packtype}((packtype : packtype <: storagetype)) = ?(S_sx) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $zero(lanetype : lanetype) : lane_(lanetype) @@ -91286,9 +4480,9 @@ def $ipopcnt_(N : N, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iextend_(N : N, M : M, sx : sx, iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iextend_{N : N, M : M, i : iN(N)}(N, M, `U`_sx, i) = `%`_iN((i!`%`_iN.0 \ (2 ^ M))) + def $iextend_{N : N, M : M, i : iN(N)}(N, M, U_sx, i) = `%`_iN((i!`%`_iN.0 \ (2 ^ M))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iextend_{N : N, M : M, i : iN(N)}(N, M, `S`_sx, i) = `%`_iN($inv_signed_(N, $signed_(M, (i!`%`_iN.0 \ (2 ^ M))))) + def $iextend_{N : N, M : M, i : iN(N)}(N, M, S_sx, i) = `%`_iN($inv_signed_(N, $signed_(M, (i!`%`_iN.0 \ (2 ^ M))))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iadd_(N : N, iN : iN(N), iN : iN(N)) : iN(N) @@ -91308,72 +4502,72 @@ def $imul_(N : N, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $idiv_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)? ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N)}(N, `U`_sx, i_1, `%`_iN(0)) = ?() + def $idiv_{N : N, i_1 : iN(N)}(N, U_sx, i_1, `%`_iN(0)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = ?(`%`_iN(($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat))) + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = ?(`%`_iN(($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N)}(N, `S`_sx, i_1, `%`_iN(0)) = ?() + def $idiv_{N : N, i_1 : iN(N)}(N, S_sx, i_1, `%`_iN(0)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = ?() + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = ?() -- if ((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)) = ((2 ^ (((N : nat <:> int) - (1 : nat <:> int)) : int <:> nat)) : nat <:> rat)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = ?(`%`_iN($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)))))) + def $idiv_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = ?(`%`_iN($inv_signed_(N, $truncz((($signed_(N, i_1!`%`_iN.0) : int <:> rat) / ($signed_(N, i_2!`%`_iN.0) : int <:> rat)))))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $irem_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)? ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N)}(N, `U`_sx, i_1, `%`_iN(0)) = ?() + def $irem_{N : N, i_1 : iN(N)}(N, U_sx, i_1, `%`_iN(0)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = ?(`%`_iN((((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))) + def $irem_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = ?(`%`_iN((((i_1!`%`_iN.0 : nat <:> int) - ((i_2!`%`_iN.0 * ($truncz(((i_1!`%`_iN.0 : nat <:> rat) / (i_2!`%`_iN.0 : nat <:> rat))) : int <:> nat)) : nat <:> int)) : int <:> nat))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N)}(N, `S`_sx, i_1, `%`_iN(0)) = ?() + def $irem_{N : N, i_1 : iN(N)}(N, S_sx, i_1, `%`_iN(0)) = ?() ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), j_1 : int, j_2 : int}(N, `S`_sx, i_1, i_2) = ?(`%`_iN($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))) + def $irem_{N : N, i_1 : iN(N), i_2 : iN(N), j_1 : int, j_2 : int}(N, S_sx, i_1, i_2) = ?(`%`_iN($inv_signed_(N, (j_1 - (j_2 * $truncz(((j_1 : int <:> rat) / (j_2 : int <:> rat)))))))) -- if ((j_1 = $signed_(N, i_1!`%`_iN.0)) /\ (j_2 = $signed_(N, i_2!`%`_iN.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $imin_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_1 + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = i_1 -- if (i_1!`%`_iN.0 <= i_2!`%`_iN.0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_2 + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = i_2 -- if (i_1!`%`_iN.0 > i_2!`%`_iN.0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_1 + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = i_1 -- if ($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_2 + def $imin_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = i_2 -- otherwise ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $imax_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_1 + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = i_1 -- if (i_1!`%`_iN.0 >= i_2!`%`_iN.0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = i_2 + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = i_2 -- if (i_1!`%`_iN.0 < i_2!`%`_iN.0) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_1 + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = i_1 -- if ($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = i_2 + def $imax_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = i_2 -- otherwise ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iadd_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int))) + def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 + i_2!`%`_iN.0) : nat <:> int))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0))))) + def $iadd_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) + $signed_(N, i_2!`%`_iN.0))))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $isub_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)))) + def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = `%`_iN($sat_u_(N, ((i_1!`%`_iN.0 : nat <:> int) - (i_2!`%`_iN.0 : nat <:> int)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0))))) + def $isub_sat_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = `%`_iN($inv_signed_(N, $sat_s_(N, ($signed_(N, i_1!`%`_iN.0) - $signed_(N, i_2!`%`_iN.0))))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $iq15mulr_sat_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N) @@ -91443,30 +4637,30 @@ def $ine_(N : N, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ilt_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 < i_2!`%`_iN.0))) + def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 < i_2!`%`_iN.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0)))) + def $ilt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) < $signed_(N, i_2!`%`_iN.0)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $igt_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $igt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 > i_2!`%`_iN.0))) + def $igt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 > i_2!`%`_iN.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $igt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0)))) + def $igt_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) > $signed_(N, i_2!`%`_iN.0)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ile_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ile_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 <= i_2!`%`_iN.0))) + def $ile_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 <= i_2!`%`_iN.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ile_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0)))) + def $ile_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) <= $signed_(N, i_2!`%`_iN.0)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $ige_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ige_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `U`_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 >= i_2!`%`_iN.0))) + def $ige_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, U_sx, i_1, i_2) = `%`_u32($bool((i_1!`%`_iN.0 >= i_2!`%`_iN.0))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $ige_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, `S`_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0)))) + def $ige_{N : N, i_1 : iN(N), i_2 : iN(N)}(N, S_sx, i_1, i_2) = `%`_u32($bool(($signed_(N, i_1!`%`_iN.0) >= $signed_(N, i_2!`%`_iN.0)))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $fabs_(N : N, fN : fN(N)) : fN(N)* @@ -91595,178 +4789,178 @@ def $lunpacknum_(lanetype : lanetype, lane_ : lane_(lanetype)) : num_($lunpack(l ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $lunpacknum_{numtype : numtype, c : lane_((numtype : numtype <: lanetype))}((numtype : numtype <: lanetype), c) = c ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $lunpacknum_{packtype : packtype, c : lane_((packtype : packtype <: lanetype))}((packtype : packtype <: lanetype), c) = $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), `U`_sx, c) + def $lunpacknum_{packtype : packtype, c : lane_((packtype : packtype <: lanetype))}((packtype : packtype <: lanetype), c) = $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), U_sx, c) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $cunpacknum_(storagetype : storagetype, lit_ : lit_(storagetype)) : lit_(($cunpack(storagetype) : consttype <: storagetype)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $cunpacknum_{consttype : consttype, c : lit_((consttype : consttype <: storagetype))}((consttype : consttype <: storagetype), c) = c ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cunpacknum_{packtype : packtype, c : lit_((packtype : packtype <: storagetype))}((packtype : packtype <: storagetype), c) = $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), `U`_sx, c) + def $cunpacknum_{packtype : packtype, c : lit_((packtype : packtype <: storagetype))}((packtype : packtype <: storagetype), c) = $extend__($psize(packtype), $size($lunpack((packtype : packtype <: lanetype))), U_sx, c) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $unop_(numtype : numtype, unop_ : unop_(numtype), num_ : num_(numtype)) : num_(numtype)* ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `CLZ`_unop_, i) = [$iclz_($sizenn((Inn : Inn <: numtype)), i)] + def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), CLZ_unop_, i) = [$iclz_($sizenn((Inn : Inn <: numtype)), i)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `CTZ`_unop_, i) = [$ictz_($sizenn((Inn : Inn <: numtype)), i)] + def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), CTZ_unop_, i) = [$ictz_($sizenn((Inn : Inn <: numtype)), i)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `POPCNT`_unop_, i) = [$ipopcnt_($sizenn((Inn : Inn <: numtype)), i)] + def $unop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), POPCNT_unop_, i) = [$ipopcnt_($sizenn((Inn : Inn <: numtype)), i)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Inn : Inn, M : M, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EXTEND`_unop_(`%`_sz(M)), i) = [$iextend_($sizenn((Inn : Inn <: numtype)), M, `S`_sx, i)] + def $unop_{Inn : Inn, M : M, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), EXTEND_unop_(`%`_sz(M)), i) = [$iextend_($sizenn((Inn : Inn <: numtype)), M, S_sx, i)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `ABS`_unop_, f) = $fabs_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), ABS_unop_, f) = $fabs_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `NEG`_unop_, f) = $fneg_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), NEG_unop_, f) = $fneg_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `SQRT`_unop_, f) = $fsqrt_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), SQRT_unop_, f) = $fsqrt_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `CEIL`_unop_, f) = $fceil_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), CEIL_unop_, f) = $fceil_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `FLOOR`_unop_, f) = $ffloor_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), FLOOR_unop_, f) = $ffloor_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `TRUNC`_unop_, f) = $ftrunc_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), TRUNC_unop_, f) = $ftrunc_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `NEAREST`_unop_, f) = $fnearest_($sizenn((Fnn : Fnn <: numtype)), f) + def $unop_{Fnn : Fnn, f : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), NEAREST_unop_, f) = $fnearest_($sizenn((Fnn : Fnn <: numtype)), f) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $binop_(numtype : numtype, binop_ : binop_(numtype), num_ : num_(numtype), num_ : num_(numtype)) : num_(numtype)* ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `ADD`_binop_, i_1, i_2) = [$iadd_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), ADD_binop_, i_1, i_2) = [$iadd_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `SUB`_binop_, i_1, i_2) = [$isub_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), SUB_binop_, i_1, i_2) = [$isub_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `MUL`_binop_, i_1, i_2) = [$imul_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), MUL_binop_, i_1, i_2) = [$imul_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `DIV`_binop_(sx), i_1, i_2) = lift($idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) + def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), DIV_binop_(sx), i_1, i_2) = lift($idiv_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `REM`_binop_(sx), i_1, i_2) = lift($irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) + def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), REM_binop_(sx), i_1, i_2) = lift($irem_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `AND`_binop_, i_1, i_2) = [$iand_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), AND_binop_, i_1, i_2) = [$iand_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `OR`_binop_, i_1, i_2) = [$ior_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), OR_binop_, i_1, i_2) = [$ior_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `XOR`_binop_, i_1, i_2) = [$ixor_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), XOR_binop_, i_1, i_2) = [$ixor_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `SHL`_binop_, i_1, i_2) = [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32(i_2!`%`_num_.0))] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), SHL_binop_, i_1, i_2) = [$ishl_($sizenn((Inn : Inn <: numtype)), i_1, `%`_u32(i_2!`%`_num_.0))] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `SHR`_binop_(sx), i_1, i_2) = [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32(i_2!`%`_num_.0))] + def $binop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), SHR_binop_(sx), i_1, i_2) = [$ishr_($sizenn((Inn : Inn <: numtype)), sx, i_1, `%`_u32(i_2!`%`_num_.0))] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `ROTL`_binop_, i_1, i_2) = [$irotl_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), ROTL_binop_, i_1, i_2) = [$irotl_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `ROTR`_binop_, i_1, i_2) = [$irotr_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] + def $binop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), ROTR_binop_, i_1, i_2) = [$irotr_($sizenn((Inn : Inn <: numtype)), i_1, i_2)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `ADD`_binop_, f_1, f_2) = $fadd_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), ADD_binop_, f_1, f_2) = $fadd_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `SUB`_binop_, f_1, f_2) = $fsub_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), SUB_binop_, f_1, f_2) = $fsub_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `MUL`_binop_, f_1, f_2) = $fmul_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), MUL_binop_, f_1, f_2) = $fmul_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `DIV`_binop_, f_1, f_2) = $fdiv_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), DIV_binop_, f_1, f_2) = $fdiv_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `MIN`_binop_, f_1, f_2) = $fmin_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), MIN_binop_, f_1, f_2) = $fmin_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `MAX`_binop_, f_1, f_2) = $fmax_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), MAX_binop_, f_1, f_2) = $fmax_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `COPYSIGN`_binop_, f_1, f_2) = $fcopysign_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $binop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), COPYSIGN_binop_, f_1, f_2) = $fcopysign_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $testop_(numtype : numtype, testop_ : testop_(numtype), num_ : num_(numtype)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $testop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EQZ`_testop_, i) = $ieqz_($sizenn((Inn : Inn <: numtype)), i) + def $testop_{Inn : Inn, i : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), EQZ_testop_, i) = $ieqz_($sizenn((Inn : Inn <: numtype)), i) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $relop_(numtype : numtype, relop_ : relop_(numtype), num_ : num_(numtype), num_ : num_(numtype)) : u32 ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `EQ`_relop_, i_1, i_2) = $ieq_($sizenn((Inn : Inn <: numtype)), i_1, i_2) + def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), EQ_relop_, i_1, i_2) = $ieq_($sizenn((Inn : Inn <: numtype)), i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `NE`_relop_, i_1, i_2) = $ine_($sizenn((Inn : Inn <: numtype)), i_1, i_2) + def $relop_{Inn : Inn, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), NE_relop_, i_1, i_2) = $ine_($sizenn((Inn : Inn <: numtype)), i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LT`_relop_(sx), i_1, i_2) = $ilt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) + def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), LT_relop_(sx), i_1, i_2) = $ilt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GT`_relop_(sx), i_1, i_2) = $igt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) + def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), GT_relop_(sx), i_1, i_2) = $igt_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `LE`_relop_(sx), i_1, i_2) = $ile_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) + def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), LE_relop_(sx), i_1, i_2) = $ile_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), `GE`_relop_(sx), i_1, i_2) = $ige_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) + def $relop_{Inn : Inn, sx : sx, i_1 : num_((Inn : Inn <: numtype)), i_2 : num_((Inn : Inn <: numtype))}((Inn : Inn <: numtype), GE_relop_(sx), i_1, i_2) = $ige_($sizenn((Inn : Inn <: numtype)), sx, i_1, i_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `EQ`_relop_, f_1, f_2) = $feq_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), EQ_relop_, f_1, f_2) = $feq_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `NE`_relop_, f_1, f_2) = $fne_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), NE_relop_, f_1, f_2) = $fne_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `LT`_relop_, f_1, f_2) = $flt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), LT_relop_, f_1, f_2) = $flt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `GT`_relop_, f_1, f_2) = $fgt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), GT_relop_, f_1, f_2) = $fgt_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `LE`_relop_, f_1, f_2) = $fle_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), LE_relop_, f_1, f_2) = $fle_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), `GE`_relop_, f_1, f_2) = $fge_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) + def $relop_{Fnn : Fnn, f_1 : num_((Fnn : Fnn <: numtype)), f_2 : num_((Fnn : Fnn <: numtype))}((Fnn : Fnn <: numtype), GE_relop_, f_1, f_2) = $fge_($sizenn((Fnn : Fnn <: numtype)), f_1, f_2) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec def $cvtop__(numtype_1 : numtype, numtype_2 : numtype, cvtop__ : cvtop__(numtype_1, numtype_2), num_ : num_(numtype_1)) : num_(numtype_2)* ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `EXTEND`_cvtop__(sx), i_1) = [$extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)] + def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), EXTEND_cvtop__(sx), i_1) = [$extend__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, i_1)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), `WRAP`_cvtop__, i_1) = [$wrap__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), i_1)] + def $cvtop__{Inn_1 : Inn, Inn_2 : Inn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Inn_2 : Inn <: numtype), WRAP_cvtop__, i_1) = [$wrap__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), i_1)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC`_cvtop__(sx), f_1) = lift($trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) + def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), TRUNC_cvtop__(sx), f_1) = lift($trunc__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `TRUNC_SAT`_cvtop__(sx), f_1) = lift($trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) + def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, sx : sx, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), TRUNC_SAT_cvtop__(sx), f_1) = lift($trunc_sat__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Inn_2 : Inn <: numtype)), sx, f_1)) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), `CONVERT`_cvtop__(sx), i_1) = [$convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)] + def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, sx : sx, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), CONVERT_cvtop__(sx), i_1) = [$convert__($sizenn1((Inn_1 : Inn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), sx, i_1)] ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype), `PROMOTE`_cvtop__, f_1) = $promote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1) + def $cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype), PROMOTE_cvtop__, f_1) = $promote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype), `DEMOTE`_cvtop__, f_1) = $demote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1) + def $cvtop__{Fnn_1 : Fnn, Fnn_2 : Fnn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Fnn_2 : Fnn <: numtype), DEMOTE_cvtop__, f_1) = $demote__($sizenn1((Fnn_1 : Fnn <: numtype)), $sizenn2((Fnn_2 : Fnn <: numtype)), f_1) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), `REINTERPRET`_cvtop__, i_1) = [$reinterpret__((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), i_1)] + def $cvtop__{Inn_1 : Inn, Fnn_2 : Fnn, i_1 : num_((Inn_1 : Inn <: numtype))}((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), REINTERPRET_cvtop__, i_1) = [$reinterpret__((Inn_1 : Inn <: numtype), (Fnn_2 : Fnn <: numtype), i_1)] -- if ($size((Inn_1 : Inn <: numtype)) = $size((Fnn_2 : Fnn <: numtype))) ;; ../../../../specification/wasm-3.0/3.1-numerics.scalar.spectec - def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), `REINTERPRET`_cvtop__, f_1) = [$reinterpret__((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), f_1)] + def $cvtop__{Fnn_1 : Fnn, Inn_2 : Inn, f_1 : num_((Fnn_1 : Fnn <: numtype))}((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), REINTERPRET_cvtop__, f_1) = [$reinterpret__((Fnn_1 : Fnn <: numtype), (Inn_2 : Inn <: numtype), f_1)] -- if ($size((Fnn_1 : Fnn <: numtype)) = $size((Inn_2 : Inn <: numtype))) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $lanes_(shape : shape, vec_ : vec_(`V128`_Vnn)) : lane_($lanetype(shape))* +def $lanes_(shape : shape, vec_ : vec_(V128_Vnn)) : lane_($lanetype(shape))* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $inv_lanes_(shape : shape, lane_($lanetype(shape))*) : vec_(`V128`_Vnn) +def $inv_lanes_(shape : shape, lane_($lanetype(shape))*) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $zeroop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2)) : zero? ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `EXTEND`_vcvtop__(half, sx)) = ?() + def $zeroop{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), EXTEND_vcvtop__(half, sx)) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)) = ?() + def $zeroop{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), CONVERT_vcvtop__(half?{half <- `half?`}, sx)) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} + def $zeroop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), TRUNC_SAT_vcvtop__(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} + def $zeroop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), RELAXED_TRUNC_vcvtop__(sx, zero?{zero <- `zero?`})) = zero?{zero <- `zero?`} ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, zero : zero}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `DEMOTE`_vcvtop__(zero)) = ?(zero) + def $zeroop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, zero : zero}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), DEMOTE_vcvtop__(zero)) = ?(zero) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $zeroop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__) = ?() + def $zeroop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), PROMOTELOW_vcvtop__) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $halfop(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2)) : half? ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `EXTEND`_vcvtop__(half, sx)) = ?(half) + def $halfop{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), EXTEND_vcvtop__(half, sx)) = ?(half) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `CONVERT`_vcvtop__(half?{half <- `half?`}, sx)) = half?{half <- `half?`} + def $halfop{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), CONVERT_vcvtop__(half?{half <- `half?`}, sx)) = half?{half <- `half?`} ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`})) = ?() + def $halfop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), TRUNC_SAT_vcvtop__(sx, zero?{zero <- `zero?`})) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`})) = ?() + def $halfop{Fnn_1 : Fnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, `zero?` : zero?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), RELAXED_TRUNC_vcvtop__(sx, zero?{zero <- `zero?`})) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, zero : zero}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `DEMOTE`_vcvtop__(zero)) = ?() + def $halfop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, zero : zero}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), DEMOTE_vcvtop__(zero)) = ?() ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $halfop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__) = ?(`LOW`_half) + def $halfop{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), PROMOTELOW_vcvtop__) = ?(LOW_half) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $half(half : half, nat : nat, nat : nat) : nat ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $half{i : nat, j : nat}(`LOW`_half, i, j) = i + def $half{i : nat, j : nat}(LOW_half, i, j) = i ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $half{i : nat, j : nat}(`HIGH`_half, i, j) = j + def $half{i : nat, j : nat}(HIGH_half, i, j) = j ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $iswizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) @@ -91790,127 +4984,127 @@ def $irelaxed_swizzle_lane_(N : N, iN(N)*, iN : iN(N)) : iN(N) -- otherwise ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivunop_(shape : shape, def $f_(N : N, iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +def $ivunop_(shape : shape, def $f_(N : N, iN : iN(N)) : iN(N), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivunop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] + def $ivunop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N)) : iN(N), v_1 : vec_(V128_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1)*{c_1 <- `c_1*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $fvunop_(shape : shape, def $f_(N : N, fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +def $fvunop_(shape : shape, def $f_(N : N, fN : fN(N)) : fN(N)*, vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvunop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + def $fvunop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N)) : fN(N)*, v_1 : vec_(V128_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1)*{c_1 <- `c_1*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivbinop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +def $ivbinop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] + def $ivbinop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : iN(N), v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivbinopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +def $ivbinopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] + def $ivbinopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N), sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = [$inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})] -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivbinopsxnd_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +def $ivbinopsxnd_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbinopsxnd_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + def $ivbinopsxnd_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : iN(N)*, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $fvbinop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +def $fvbinop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvbinop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + def $fvbinop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)*{c_1 <- `c_1*`, c_2 <- `c_2*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivternopnd_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +def $ivternopnd_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivternopnd_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + def $ivternopnd_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N), iN : iN(N)) : iN(N)*, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), v_3 : vec_(V128_Vnn), `c**` : lane_((Jnn : Jnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_3)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Jnn : Jnn <: lanetype)), $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $fvternop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +def $fvternop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvternop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} + def $fvternop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N), fN : fN(N)) : fN(N)*, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), v_3 : vec_(V128_Vnn), `c**` : lane_((Fnn : Fnn <: lanetype))**, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_3*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2, v_3) = $inv_lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`} -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) -- if (c_3*{c_3 <- `c_3*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_3)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_((Fnn : Fnn <: lanetype)), $f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2, c_3)*{c_1 <- `c_1*`, c_2 <- `c_2*`, c_3 <- `c_3*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivrelop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $ivrelop_(shape : shape, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivrelop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + def $ivrelop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), iN : iN(N)) : u32, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) + -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), S_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivrelopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $ivrelopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivrelopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + def $ivrelopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), iN : iN(N)) : u32, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) + -- if (c*{c <- `c*`} = $extend__(1, $lsizenn((Jnn : Jnn <: lanetype)), S_sx, `%`_iN($f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $fvrelop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $fvrelop_(shape : shape, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $fvrelop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), Inn : Inn, `c*` : iN($sizenn((Fnn : Fnn <: numtype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Inn : Inn <: lanetype), `%`_dim(M)), `%`_lane_(c!`%`_iN.0)*{c <- `c*`}) + def $fvrelop_{Fnn : Fnn, M : M, def $f_(N : N, fN : fN(N), fN : fN(N)) : u32, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), Inn : Inn, `c*` : iN($sizenn((Fnn : Fnn <: numtype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Inn : Inn <: lanetype), `%`_dim(M)), `%`_lane_(c!`%`_iN.0)*{c <- `c*`}) -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_1)) -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), v_2)) - -- if (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), `S`_sx, `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) + -- if (c*{c <- `c*`} = $extend__(1, $sizenn((Fnn : Fnn <: numtype)), S_sx, `%`_iN($f_($sizenn((Fnn : Fnn <: numtype)), c_1, c_2)!`%`_u32.0))*{c_1 <- `c_1*`, c_2 <- `c_2*`}) -- if ($isize(Inn) = $fsize(Fnn)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivshiftop_(shape : shape, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) +def $ivshiftop_(shape : shape, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), vec_ : vec_(V128_Vnn), u32 : u32) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshiftop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), v_1 : vec_(`V128`_Vnn), i : u32, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, i) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + def $ivshiftop_{Jnn : Jnn, M : M, def $f_(N : N, iN : iN(N), u32 : u32) : iN(N), v_1 : vec_(V128_Vnn), i : u32, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, i) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1, i)*{c_1 <- `c_1*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivshiftopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) +def $ivshiftopsx_(shape : shape, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, vec_ : vec_(V128_Vnn), u32 : u32) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshiftopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, v_1 : vec_(`V128`_Vnn), i : u32, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, i) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + def $ivshiftopsx_{Jnn : Jnn, M : M, def $f_(N : N, sx : sx, iN : iN(N), u32 : u32) : iN(N), sx : sx, v_1 : vec_(V128_Vnn), i : u32, `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, sx, v_1, i) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), sx, c_1, i)*{c_1 <- `c_1*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivbitmaskop_(shape : shape, vec_ : vec_(`V128`_Vnn)) : u32 +def $ivbitmaskop_(shape : shape, vec_ : vec_(V128_Vnn)) : u32 ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivbitmaskop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), c : iN(32), `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1) = $irev_(32, c) + def $ivbitmaskop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), c : iN(32), `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1) = $irev_(32, c) -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) - -- if ($ibits_(32, c) = `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), `S`_sx, c_1, `%`_iN(0))!`%`_u32.0)*{c_1 <- `c_1*`} ++ `%`_bit(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){}) + -- if ($ibits_(32, c) = `%`_bit($ilt_($lsizenn((Jnn : Jnn <: lanetype)), S_sx, c_1, `%`_iN(0))!`%`_u32.0)*{c_1 <- `c_1*`} ++ `%`_bit(0)^(((32 : nat <:> int) - (M : nat <:> int)) : int <:> nat){}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivswizzlop_(shape : shape, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $ivswizzlop_(shape : shape, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivswizzlop_{Jnn : Jnn, M : M, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + def $ivswizzlop_{Jnn : Jnn, M : M, def $f_(N : N, iN(N)*, iN : iN(N)) : iN(N), v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : iN($lsizenn((Jnn : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $f_, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`} = $f_($lsizenn((Jnn : Jnn <: lanetype)), c_1*{c_1 <- `c_1*`}, c_2)*{c_2 <- `c_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $ivshufflop_(shape : shape, laneidx*, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivshufflop_{Jnn : Jnn, M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), i*{i <- `i*`}, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) + def $ivshufflop_{Jnn : Jnn, M : M, `i*` : laneidx*, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), i*{i <- `i*`}, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c*{c <- `c*`}) -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_1)) -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v_2)) -- if (c*{c <- `c*`} = c_1*{c_1 <- `c_1*`} ++ c_2*{c_2 <- `c_2*`}[i!`%`_laneidx.0]*{i <- `i*`}) @@ -91918,196 +5112,196 @@ def $ivshufflop_(shape : shape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(` ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vvunop_(vectype : vectype, vvunop : vvunop, vec_ : vec_(vectype)) : vec_(vectype)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvunop_{Vnn : Vnn, v : vec_(Vnn)}(Vnn, `NOT`_vvunop, v) = [$inot_($vsizenn(Vnn), v)] + def $vvunop_{Vnn : Vnn, v : vec_(Vnn)}(Vnn, NOT_vvunop, v) = [$inot_($vsizenn(Vnn), v)] ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vvbinop_(vectype : vectype, vvbinop : vvbinop, vec_ : vec_(vectype), vec_ : vec_(vectype)) : vec_(vectype)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `AND`_vvbinop, v_1, v_2) = [$iand_($vsizenn(Vnn), v_1, v_2)] + def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, AND_vvbinop, v_1, v_2) = [$iand_($vsizenn(Vnn), v_1, v_2)] ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `ANDNOT`_vvbinop, v_1, v_2) = [$iandnot_($vsizenn(Vnn), v_1, v_2)] + def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, ANDNOT_vvbinop, v_1, v_2) = [$iandnot_($vsizenn(Vnn), v_1, v_2)] ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `OR`_vvbinop, v_1, v_2) = [$ior_($vsizenn(Vnn), v_1, v_2)] + def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, OR_vvbinop, v_1, v_2) = [$ior_($vsizenn(Vnn), v_1, v_2)] ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, `XOR`_vvbinop, v_1, v_2) = [$ixor_($vsizenn(Vnn), v_1, v_2)] + def $vvbinop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn)}(Vnn, XOR_vvbinop, v_1, v_2) = [$ixor_($vsizenn(Vnn), v_1, v_2)] ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $vvternop_(vectype : vectype, vvternop : vvternop, vec_ : vec_(vectype), vec_ : vec_(vectype), vec_ : vec_(vectype)) : vec_(vectype)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vvternop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn), v_3 : vec_(Vnn)}(Vnn, `BITSELECT`_vvternop, v_1, v_2, v_3) = [$ibitselect_($vsizenn(Vnn), v_1, v_2, v_3)] + def $vvternop_{Vnn : Vnn, v_1 : vec_(Vnn), v_2 : vec_(Vnn), v_3 : vec_(Vnn)}(Vnn, BITSELECT_vvternop, v_1, v_2, v_3) = [$ibitselect_($vsizenn(Vnn), v_1, v_2, v_3)] ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vunop_(shape : shape, vunop_ : vunop_(shape), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +def $vunop_(shape : shape, vunop_ : vunop_(shape), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `ABS`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fabs_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), ABS_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fabs_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `NEG`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fneg_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), NEG_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fneg_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `SQRT`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsqrt_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), SQRT_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsqrt_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `CEIL`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fceil_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), CEIL_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fceil_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `FLOOR`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ffloor_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), FLOOR_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ffloor_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `TRUNC`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ftrunc_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), TRUNC_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $ftrunc_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Fnn : Fnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `NEAREST`_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fnearest_, v) + def $vunop_{Fnn : Fnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), NEAREST_vunop_, v) = $fvunop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fnearest_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ABS`_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iabs_, v) + def $vunop_{Jnn : Jnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), ABS_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iabs_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `NEG`_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ineg_, v) + def $vunop_{Jnn : Jnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), NEG_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ineg_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vunop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `POPCNT`_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ipopcnt_, v) + def $vunop_{Jnn : Jnn, M : M, v : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), POPCNT_vunop_, v) = $ivunop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ipopcnt_, v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vbinop_(shape : shape, vbinop_ : vbinop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +def $vbinop_(shape : shape, vbinop_ : vbinop_(shape), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ADD`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), ADD_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `SUB`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), SUB_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `MUL`_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imul_, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), MUL_vbinop_, v_1, v_2) = $ivbinop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imul_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ADD_SAT`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_sat_, sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), ADD_SAT_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iadd_sat_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `SUB_SAT`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_sat_, sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), SUB_SAT_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $isub_sat_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `MIN`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imin_, sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), MIN_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imin_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `MAX`_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imax_, sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), MAX_vbinop_(sx), v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $imax_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `AVGRU`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iavgr_, `U`_sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), AVGRU_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iavgr_, U_sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `Q15MULR_SATS`_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iq15mulr_sat_, `S`_sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), Q15MULR_SATS_vbinop_, v_1, v_2) = $ivbinopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $iq15mulr_sat_, S_sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `RELAXED_Q15MULRS`_vbinop_, v_1, v_2) = $ivbinopsxnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_q15mulr_, `S`_sx, v_1, v_2) + def $vbinop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), RELAXED_Q15MULRS_vbinop_, v_1, v_2) = $ivbinopsxnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_q15mulr_, S_sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `ADD`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fadd_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), ADD_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fadd_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `SUB`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsub_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), SUB_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fsub_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `MUL`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmul_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), MUL_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmul_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `DIV`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fdiv_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), DIV_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fdiv_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmin_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), MIN_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmin_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmax_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), MAX_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fmax_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `PMIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmin_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), PMIN_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmin_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `PMAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmax_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), PMAX_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fpmax_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_MIN`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_min_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), RELAXED_MIN_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_min_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_MAX`_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_max_, v_1, v_2) + def $vbinop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), RELAXED_MAX_vbinop_, v_1, v_2) = $fvbinop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_max_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vternop_(shape : shape, vternop_ : vternop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn)* +def $vternop_(shape : shape, vternop_ : vternop_(shape), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `RELAXED_LANESELECT`_vternop_, v_1, v_2, v_3) = $ivternopnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_laneselect_, v_1, v_2, v_3) + def $vternop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), v_3 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), RELAXED_LANESELECT_vternop_, v_1, v_2, v_3) = $ivternopnd_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $irelaxed_laneselect_, v_1, v_2, v_3) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_MADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_madd_, v_1, v_2, v_3) + def $vternop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), v_3 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), RELAXED_MADD_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_madd_, v_1, v_2, v_3) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vternop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v_3 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `RELAXED_NMADD`_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_nmadd_, v_1, v_2, v_3) + def $vternop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), v_3 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), RELAXED_NMADD_vternop_, v_1, v_2, v_3) = $fvternop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $frelaxed_nmadd_, v_1, v_2, v_3) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vrelop_(shape : shape, vrelop_ : vrelop_(shape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $vrelop_(shape : shape, vrelop_ : vrelop_(shape), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `EQ`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ieq_, v_1, v_2) + def $vrelop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), EQ_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ieq_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `NE`_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ine_, v_1, v_2) + def $vrelop_{Jnn : Jnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), NE_vrelop_, v_1, v_2) = $ivrelop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ine_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `LT`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ilt_, sx, v_1, v_2) + def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), LT_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ilt_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `GT`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $igt_, sx, v_1, v_2) + def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), GT_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $igt_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `LE`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ile_, sx, v_1, v_2) + def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), LE_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ile_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `GE`_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ige_, sx, v_1, v_2) + def $vrelop_{Jnn : Jnn, M : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), GE_vrelop_(sx), v_1, v_2) = $ivrelopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ige_, sx, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `EQ`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $feq_, v_1, v_2) + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), EQ_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $feq_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `NE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fne_, v_1, v_2) + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), NE_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fne_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `LT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $flt_, v_1, v_2) + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), LT_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $flt_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `GT`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fgt_, v_1, v_2) + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), GT_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fgt_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `LE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fle_, v_1, v_2) + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), LE_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fle_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), `GE`_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fge_, v_1, v_2) + def $vrelop_{Fnn : Fnn, M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), GE_vrelop_, v_1, v_2) = $fvrelop_(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M)), def $fge_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $lcvtop__(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2), lane_ : lane_($lanetype(shape_1))) : lane_($lanetype(shape_2))* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx, c_1 : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))), c : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `EXTEND`_vcvtop__(half, sx), c_1) = [c] + def $lcvtop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx, c_1 : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))), c : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), EXTEND_vcvtop__(half, sx), c_1) = [c] -- if (c = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx, c_1 : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))), c : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `CONVERT`_vcvtop__(half?{half <- `half?`}, sx), c_1) = [c] + def $lcvtop__{Jnn_1 : Jnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, `half?` : half?, sx : sx, c_1 : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)))), c : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), CONVERT_vcvtop__(half?{half <- `half?`}, sx), c_1) = [c] -- if (c = $convert__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), sx, c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Inn_2 : Inn, M_2 : M, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2)), `TRUNC_SAT`_vcvtop__(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) + def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Inn_2 : Inn, M_2 : M, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2)), TRUNC_SAT_vcvtop__(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) -- if (c?{c <- `c?`} = $trunc_sat__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Inn_2 : Inn, M_2 : M, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2)), `RELAXED_TRUNC`_vcvtop__(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) + def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Inn_2 : Inn, M_2 : M, sx : sx, `zero?` : zero?, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c?` : iN($lsizenn2((Inn_2 : Inn <: lanetype)))?}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2)), RELAXED_TRUNC_vcvtop__(sx, zero?{zero <- `zero?`}), c_1) = lift(c?{c <- `c?`}) -- if (c?{c <- `c?`} = $relaxed_trunc__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Inn_2 : Inn <: lanetype)), sx, c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `DEMOTE`_vcvtop__(`ZERO`_zero), c_1) = c*{c <- `c*`} + def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), DEMOTE_vcvtop__(ZERO_zero), c_1) = c*{c <- `c*`} -- if (c*{c <- `c*`} = $demote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), `PROMOTELOW`_vcvtop__, c_1) = c*{c <- `c*`} + def $lcvtop__{Fnn_1 : Fnn, M_1 : M, Fnn_2 : Fnn, M_2 : M, c_1 : lane_($lanetype(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)))), `c*` : fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))*}(`%X%`_shape((Fnn_1 : Fnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2)), PROMOTELOW_vcvtop__, c_1) = c*{c <- `c*`} -- if (c*{c <- `c*`} = $promote__($lsizenn1((Fnn_1 : Fnn <: lanetype)), $lsizenn2((Fnn_2 : Fnn <: lanetype)), c_1)) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vcvtop__(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $vcvtop__(shape_1 : shape, shape_2 : shape, vcvtop__ : vcvtop__(shape_1, shape_2), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{Lnn_1 : Lnn, M : M, Lnn_2 : Lnn, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, v_1) = v + def $vcvtop__{Lnn_1 : Lnn, M : M, Lnn_2 : Lnn, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M))), v_1 : vec_(V128_Vnn), v : vec_(V128_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, v_1) = v -- if (($halfop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?()) /\ ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop) = ?())) -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M)), v_1)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M)), `%X%`_shape(Lnn_2, `%`_dim(M)), vcvtop, c_1)*{c_1 <- `c_1*`})) -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M)), c*{c <- `c*`})*{`c*` <- `c**`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{Lnn_1 : Lnn, M_1 : M, Lnn_2 : Lnn, M_2 : M, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), half : half, `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, v_1) = v + def $vcvtop__{Lnn_1 : Lnn, M_1 : M, Lnn_2 : Lnn, M_2 : M, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2))), v_1 : vec_(V128_Vnn), v : vec_(V128_Vnn), half : half, `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, v_1) = v -- if ($halfop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(half)) -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)[$half(half, 0, M_2) : M_2]) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`})) -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vcvtop__{Lnn_1 : Lnn, M_1 : M, Lnn_2 : Lnn, M_2 : M, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2))), v_1 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, v_1) = v - -- if ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(`ZERO`_zero)) + def $vcvtop__{Lnn_1 : Lnn, M_1 : M, Lnn_2 : Lnn, M_2 : M, vcvtop : vcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2))), v_1 : vec_(V128_Vnn), v : vec_(V128_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))*, `c**` : lane_(Lnn_2)**}(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, v_1) = v + -- if ($zeroop(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop) = ?(ZERO_zero)) -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape(Lnn_1, `%`_dim(M_1)), v_1)) -- if (c*{c <- `c*`}*{`c*` <- `c**`} = $setproduct_(syntax lane_(Lnn_2), $lcvtop__(`%X%`_shape(Lnn_1, `%`_dim(M_1)), `%X%`_shape(Lnn_2, `%`_dim(M_2)), vcvtop, c_1)*{c_1 <- `c_1*`} ++ [$zero(Lnn_2)]^M_1{})) -- if (v <- $inv_lanes_(`%X%`_shape(Lnn_2, `%`_dim(M_2)), c*{c <- `c*`})*{`c*` <- `c**`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vshiftop_(ishape : ishape, vshiftop_ : vshiftop_(ishape), vec_ : vec_(`V128`_Vnn), u32 : u32) : vec_(`V128`_Vnn) +def $vshiftop_(ishape : ishape, vshiftop_ : vshiftop_(ishape), vec_ : vec_(V128_Vnn), u32 : u32) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshiftop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn), i : u32}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `SHL`_vshiftop_, v, i) = $ivshiftop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishl_, v, i) + def $vshiftop_{Jnn : Jnn, M : M, v : vec_(V128_Vnn), i : u32}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), SHL_vshiftop_, v, i) = $ivshiftop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishl_, v, i) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshiftop_{Jnn : Jnn, M : M, sx : sx, v : vec_(`V128`_Vnn), i : u32}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `SHR`_vshiftop_(sx), v, i) = $ivshiftopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishr_, sx, v, i) + def $vshiftop_{Jnn : Jnn, M : M, sx : sx, v : vec_(V128_Vnn), i : u32}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), SHR_vshiftop_(sx), v, i) = $ivshiftopsx_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), def $ishr_, sx, v, i) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vbitmaskop_(ishape : ishape, vec_ : vec_(`V128`_Vnn)) : u32 +def $vbitmaskop_(ishape : ishape, vec_ : vec_(V128_Vnn)) : u32 ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vbitmaskop_{Jnn : Jnn, M : M, v : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), v) = $ivbitmaskop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v) + def $vbitmaskop_{Jnn : Jnn, M : M, v : vec_(V128_Vnn)}(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), v) = $ivbitmaskop_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), v) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vswizzlop_(bshape : bshape, vswizzlop_ : vswizzlop_(bshape), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $vswizzlop_(bshape : bshape, vswizzlop_ : vswizzlop_(bshape), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vswizzlop_{M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M))), `SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), def $iswizzle_lane_, v_1, v_2) + def $vswizzlop_{M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(M))), SWIZZLE_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape(I8_lanetype, `%`_dim(M)), def $iswizzle_lane_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vswizzlop_{M : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M))), `RELAXED_SWIZZLE`_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), def $irelaxed_swizzle_lane_, v_1, v_2) + def $vswizzlop_{M : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(M))), RELAXED_SWIZZLE_vswizzlop_, v_1, v_2) = $ivswizzlop_(`%X%`_shape(I8_lanetype, `%`_dim(M)), def $irelaxed_swizzle_lane_, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vshufflop_(bshape : bshape, laneidx*, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $vshufflop_(bshape : bshape, laneidx*, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vshufflop_{M : M, `i*` : laneidx*, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(M))), i*{i <- `i*`}, v_1, v_2) = $ivshufflop_(`%X%`_shape(`I8`_lanetype, `%`_dim(M)), i*{i <- `i*`}, v_1, v_2) + def $vshufflop_{M : M, `i*` : laneidx*, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(M))), i*{i <- `i*`}, v_1, v_2) = $ivshufflop_(`%X%`_shape(I8_lanetype, `%`_dim(M)), i*{i <- `i*`}, v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vnarrowop__(shape_1 : shape, shape_2 : shape, sx : sx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $vnarrowop__(shape_1 : shape, shape_2 : shape, sx : sx, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vnarrowop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), v : vec_(`V128`_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), sx, v_1, v_2) = v + def $vnarrowop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), v : vec_(V128_Vnn), `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsize((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), sx, v_1, v_2) = v -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)) -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)) -- if (c'_1*{c'_1 <- `c'_1*`} = $narrow__($lsize((Jnn_1 : Jnn <: lanetype)), $lsize((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}) @@ -92121,17 +5315,17 @@ def $ivadd_pairwise_(N : N, iN(N)*) : iN(N)* -- if ($concat_(syntax N, [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = i!`%`_iN.0*{i <- `i*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivextunop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $ivextunop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, v_1 : vec_(`V128`_Vnn), `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $f_, sx, v_1) = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`}) + def $ivextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, def $f_(N : N, iN(N)*) : iN(N)*, sx : sx, v_1 : vec_(V128_Vnn), `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $f_, sx, v_1) = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`}) -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)) -- if (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx, c_1)*{c_1 <- `c_1*`}) -- if (c*{c <- `c*`} = $f_($lsizenn2((Jnn_2 : Jnn <: lanetype)), c'_1*{c'_1 <- `c'_1*`})) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vextunop__(ishape_1 : ishape, ishape_2 : ishape, vextunop__ : vextunop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $vextunop__(ishape_1 : ishape, ishape_2 : ishape, vextunop__ : vextunop__(ishape_1, ishape_2), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, v_1 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTADD_PAIRWISE`_vextunop__(sx), v_1) = $ivextunop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivadd_pairwise_, sx, v_1) + def $vextunop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, sx : sx, v_1 : vec_(V128_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), EXTADD_PAIRWISE_vextunop__(sx), v_1) = $ivextunop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivadd_pairwise_, sx, v_1) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivdot_(N : N, iN(N)*, iN(N)*) : iN(N)* @@ -92142,13 +5336,13 @@ def $ivdot_(N : N, iN(N)*, iN(N)*) : iN(N)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec def $ivdot_sat_(N : N, iN(N)*, iN(N)*) : iN(N)* ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivdot_sat_{N : N, `i_1*` : iN(N)*, `i_2*` : iN(N)*, `j_1*` : iN(N)*, `j_2*` : iN(N)*}(N, i_1*{i_1 <- `i_1*`}, i_2*{i_2 <- `i_2*`}) = $iadd_sat_(N, `S`_sx, j_1, j_2)*{j_1 <- `j_1*`, j_2 <- `j_2*`} + def $ivdot_sat_{N : N, `i_1*` : iN(N)*, `i_2*` : iN(N)*, `j_1*` : iN(N)*, `j_2*` : iN(N)*}(N, i_1*{i_1 <- `i_1*`}, i_2*{i_2 <- `i_2*`}) = $iadd_sat_(N, S_sx, j_1, j_2)*{j_1 <- `j_1*`, j_2 <- `j_2*`} -- if ($concat_(syntax iN(N), [j_1 j_2]*{j_1 <- `j_1*`, j_2 <- `j_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`}) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $ivextbinop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx : sx, sx : sx, laneidx : laneidx, laneidx : laneidx, vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $ivextbinop__(shape_1 : shape, shape_2 : shape, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx : sx, sx : sx, laneidx : laneidx, laneidx : laneidx, vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $ivextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx_1 : sx, sx_2 : sx, i : laneidx, k : laneidx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn), `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $f_, sx_1, sx_2, i, k, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`}) + def $ivextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, def $f_(N : N, iN(N)*, iN(N)*) : iN(N)*, sx_1 : sx, sx_2 : sx, i : laneidx, k : laneidx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn), `c*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c_1*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c_2*` : lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))*, `c'_1*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*, `c'_2*` : iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))*}(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $f_, sx_1, sx_2, i, k, v_1, v_2) = $inv_lanes_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), c*{c <- `c*`}) -- if (c_1*{c_1 <- `c_1*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_1)[i!`%`_laneidx.0 : k!`%`_laneidx.0]) -- if (c_2*{c_2 <- `c_2*`} = $lanes_(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), v_2)[i!`%`_laneidx.0 : k!`%`_laneidx.0]) -- if (c'_1*{c'_1 <- `c'_1*`} = $extend__($lsizenn1((Jnn_1 : Jnn <: lanetype)), $lsizenn2((Jnn_2 : Jnn <: lanetype)), sx_1, c_1)*{c_1 <- `c_1*`}) @@ -92161,31 +5355,31 @@ def $ivmul_(N : N, iN(N)*, iN(N)*) : iN(N)* def $ivmul_{N : N, `i_1*` : iN(N)*, `i_2*` : iN(N)*}(N, i_1*{i_1 <- `i_1*`}, i_2*{i_2 <- `i_2*`}) = $imul_(N, i_1, i_2)*{i_1 <- `i_1*`, i_2 <- `i_2*`} ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vextbinop__(ishape_1 : ishape, ishape_2 : ishape, vextbinop__ : vextbinop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $vextbinop__(ishape_1 : ishape, ishape_2 : ishape, vextbinop__ : vextbinop__(ishape_1, ishape_2), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTMUL`_vextbinop__(half, sx), v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivmul_, sx, sx, `%`_laneidx($half(half, 0, M_2)), `%`_laneidx(M_2), v_1, v_2) + def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, half : half, sx : sx, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), EXTMUL_vextbinop__(half, sx), v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivmul_, sx, sx, `%`_laneidx($half(half, 0, M_2)), `%`_laneidx(M_2), v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_, `S`_sx, `S`_sx, `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2) + def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), DOTS_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_, S_sx, S_sx, `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, v_1 : vec_(`V128`_Vnn), v_2 : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `RELAXED_DOTS`_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_sat_, `S`_sx, $relaxed2($R_idot, syntax sx, `S`_sx, `U`_sx), `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2) + def $vextbinop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, v_1 : vec_(V128_Vnn), v_2 : vec_(V128_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), RELAXED_DOTS_vextbinop__, v_1, v_2) = $ivextbinop__(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1)), `%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), def $ivdot_sat_, S_sx, $relaxed2($R_idot, syntax sx, S_sx, U_sx), `%`_laneidx(0), `%`_laneidx(M_1), v_1, v_2) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec -def $vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextternop__(ishape_1, ishape_2), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn), vec_ : vec_(`V128`_Vnn)) : vec_(`V128`_Vnn) +def $vextternop__(ishape_1 : ishape, ishape_2 : ishape, vextternop__ : vextternop__(ishape_1, ishape_2), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn), vec_ : vec_(V128_Vnn)) : vec_(V128_Vnn) ;; ../../../../specification/wasm-3.0/3.2-numerics.vector.spectec - def $vextternop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), c : vec_(`V128`_Vnn), Jnn : Jnn, M : M, c' : vec_(`V128`_Vnn), c'' : vec_(`V128`_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `RELAXED_DOT_ADDS`_vextternop__, c_1, c_2, c_3) = c + def $vextternop__{Jnn_1 : Jnn, M_1 : M, Jnn_2 : Jnn, M_2 : M, c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), c_3 : vec_(V128_Vnn), c : vec_(V128_Vnn), Jnn : Jnn, M : M, c' : vec_(V128_Vnn), c'' : vec_(V128_Vnn)}(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), RELAXED_DOT_ADDS_vextternop__, c_1, c_2, c_3) = c -- if ($jsizenn(Jnn) = (2 * $lsizenn1((Jnn_1 : Jnn <: lanetype)))) -- if (M = (2 * M_2)) - -- if (c' = $vextbinop__(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `RELAXED_DOTS`_vextbinop__, c_1, c_2)) - -- if (c'' = $vextunop__(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx), c')) - -- if (c <- $vbinop_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), `ADD`_vbinop_, c'', c_3)) + -- if (c' = $vextbinop__(`%`_ishape(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))), `%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), RELAXED_DOTS_vextbinop__, c_1, c_2)) + -- if (c'' = $vextunop__(`%`_ishape(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))), `%`_ishape(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))), EXTADD_PAIRWISE_vextunop__(S_sx), c')) + -- if (c <- $vbinop_(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2)), ADD_vbinop_, c'', c_3)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax num = - | `CONST`(numtype : numtype, num_(numtype)) + | CONST(numtype : numtype, num_(numtype)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax vec = - | `VCONST`(vectype : vectype, vec_(vectype)) + | VCONST(vectype : vectype, vec_(vectype)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax ref = @@ -92200,9 +5394,9 @@ syntax ref = ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax result = - | `_VALS`(`val*` : val*) + | _VALS(`val*` : val*) | `(REF.EXN_ADDR%)THROW_REF`(exnaddr : exnaddr) - | `TRAP` + | TRAP ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax hostfunc = @@ -92210,65 +5404,65 @@ syntax hostfunc = ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax funccode = - | `FUNC`(typeidx : typeidx, `local*` : local*, expr : expr) + | FUNC(typeidx : typeidx, `local*` : local*, expr : expr) | `...` ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax taginst = { - `TYPE` tagtype + TYPE tagtype } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax globalinst = { - `TYPE` globaltype , - `VALUE` val + TYPE globaltype, + VALUE val } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax meminst = { - `TYPE` memtype , - `BYTES` byte* + TYPE memtype, + BYTES byte* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax tableinst = { - `TYPE` tabletype , - `REFS` ref* + TYPE tabletype, + REFS ref* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax funcinst = { - `TYPE` deftype , - `MODULE` moduleinst , - `CODE` funccode + TYPE deftype, + MODULE moduleinst, + CODE funccode } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax datainst = { - `BYTES` byte* + BYTES byte* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax eleminst = { - `TYPE` elemtype , - `REFS` ref* + TYPE elemtype, + REFS ref* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax packval = - | `PACK`(packtype : packtype, iN($psizenn(packtype))) + | PACK(packtype : packtype, iN($psizenn(packtype))) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax fieldval = - | `CONST`(numtype : numtype, num_(numtype)) - | `VCONST`(vectype : vectype, vec_(vectype)) + | CONST(numtype : numtype, num_(numtype)) + | VCONST(vectype : vectype, vec_(vectype)) | `REF.I31_NUM`(u31 : u31) | `REF.STRUCT_ADDR`(structaddr : structaddr) | `REF.ARRAY_ADDR`(arrayaddr : arrayaddr) @@ -92277,42 +5471,42 @@ syntax fieldval = | `REF.HOST_ADDR`(hostaddr : hostaddr) | `REF.EXTERN`(addrref : addrref) | `REF.NULL`(heaptype : heaptype) - | `PACK`(packtype : packtype, iN($psizenn(packtype))) + | PACK(packtype : packtype, iN($psizenn(packtype))) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax structinst = { - `TYPE` deftype , - `FIELDS` fieldval* + TYPE deftype, + FIELDS fieldval* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax arrayinst = { - `TYPE` deftype , - `FIELDS` fieldval* + TYPE deftype, + FIELDS fieldval* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax exninst = { - `TAG` tagaddr , - `FIELDS` val* + TAG tagaddr, + FIELDS val* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec syntax store = { - `TAGS` taginst* , - `GLOBALS` globalinst* , - `MEMS` meminst* , - `TABLES` tableinst* , - `FUNCS` funcinst* , - `DATAS` datainst* , - `ELEMS` eleminst* , - `STRUCTS` structinst* , - `ARRAYS` arrayinst* , - `EXNS` exninst* + TAGS taginst*, + GLOBALS globalinst*, + MEMS meminst*, + TABLES tableinst*, + FUNCS funcinst*, + DATAS datainst*, + ELEMS eleminst*, + STRUCTS structinst*, + ARRAYS arrayinst*, + EXNS exninst* } ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec @@ -92333,14 +5527,14 @@ def $packfield_(storagetype : storagetype, val : val) : fieldval ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $packfield_{valtype : valtype, val : val}((valtype : valtype <: storagetype), val) = (val : val <: fieldval) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $packfield_{packtype : packtype, i : num_(`I32`_numtype)}((packtype : packtype <: storagetype), `CONST`_val(`I32`_numtype, i)) = `PACK`_fieldval(packtype, $wrap__(32, $psize(packtype), i)) + def $packfield_{packtype : packtype, i : num_(I32_numtype)}((packtype : packtype <: storagetype), CONST_val(I32_numtype, i)) = PACK_fieldval(packtype, $wrap__(32, $psize(packtype), i)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $unpackfield_(storagetype : storagetype, sx?, fieldval : fieldval) : val ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $unpackfield_{valtype : valtype, val : val}((valtype : valtype <: storagetype), ?(), (val : val <: fieldval)) = val ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $unpackfield_{packtype : packtype, sx : sx, i : iN($psizenn(packtype))}((packtype : packtype <: storagetype), ?(sx), `PACK`_fieldval(packtype, i)) = `CONST`_val(`I32`_numtype, $extend__($psize(packtype), 32, sx, i)) + def $unpackfield_{packtype : packtype, sx : sx, i : iN($psizenn(packtype))}((packtype : packtype <: storagetype), ?(sx), PACK_fieldval(packtype, i)) = CONST_val(I32_numtype, $extend__($psize(packtype), 32, sx, i)) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec rec { @@ -92350,7 +5544,7 @@ def $tagsxa(externaddr*) : tagaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:199.1-199.23 def $tagsxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:200.1-200.42 - def $tagsxa{a : addr, `xa*` : externaddr*}([`TAG`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tagsxa(xa*{xa <- `xa*`}) + def $tagsxa{a : addr, `xa*` : externaddr*}([TAG_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tagsxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:201.1-201.57 def $tagsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $tagsxa(xa*{xa <- `xa*`}) -- otherwise @@ -92364,7 +5558,7 @@ def $globalsxa(externaddr*) : globaladdr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:203.1-203.26 def $globalsxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:204.1-204.51 - def $globalsxa{a : addr, `xa*` : externaddr*}([`GLOBAL`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $globalsxa(xa*{xa <- `xa*`}) + def $globalsxa{a : addr, `xa*` : externaddr*}([GLOBAL_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $globalsxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:205.1-205.63 def $globalsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $globalsxa(xa*{xa <- `xa*`}) -- otherwise @@ -92378,7 +5572,7 @@ def $memsxa(externaddr*) : memaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:207.1-207.23 def $memsxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:208.1-208.42 - def $memsxa{a : addr, `xa*` : externaddr*}([`MEM`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $memsxa(xa*{xa <- `xa*`}) + def $memsxa{a : addr, `xa*` : externaddr*}([MEM_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $memsxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:209.1-209.57 def $memsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $memsxa(xa*{xa <- `xa*`}) -- otherwise @@ -92392,7 +5586,7 @@ def $tablesxa(externaddr*) : tableaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:211.1-211.25 def $tablesxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:212.1-212.48 - def $tablesxa{a : addr, `xa*` : externaddr*}([`TABLE`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tablesxa(xa*{xa <- `xa*`}) + def $tablesxa{a : addr, `xa*` : externaddr*}([TABLE_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $tablesxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:213.1-213.61 def $tablesxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $tablesxa(xa*{xa <- `xa*`}) -- otherwise @@ -92406,7 +5600,7 @@ def $funcsxa(externaddr*) : funcaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:215.1-215.24 def $funcsxa([]) = [] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:216.1-216.45 - def $funcsxa{a : addr, `xa*` : externaddr*}([`FUNC`_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $funcsxa(xa*{xa <- `xa*`}) + def $funcsxa{a : addr, `xa*` : externaddr*}([FUNC_externaddr(a)] ++ xa*{xa <- `xa*`}) = [a] ++ $funcsxa(xa*{xa <- `xa*`}) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec:217.1-217.59 def $funcsxa{externaddr : externaddr, `xa*` : externaddr*}([externaddr] ++ xa*{xa <- `xa*`}) = $funcsxa(xa*{xa <- `xa*`}) -- otherwise @@ -92425,179 +5619,179 @@ def $frame(state : state) : frame ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $tagaddr(state : state) : tagaddr* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tagaddr{s : store, f : frame}(`%;%`_state(s, f)) = f.`MODULE`_frame.`TAGS`_moduleinst + def $tagaddr{s : store, f : frame}(`%;%`_state(s, f)) = f.MODULE_frame.TAGS_moduleinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $moduleinst(state : state) : moduleinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $moduleinst{s : store, f : frame}(`%;%`_state(s, f)) = f.`MODULE`_frame + def $moduleinst{s : store, f : frame}(`%;%`_state(s, f)) = f.MODULE_frame ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $taginst(state : state) : taginst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $taginst{s : store, f : frame}(`%;%`_state(s, f)) = s.`TAGS`_store + def $taginst{s : store, f : frame}(`%;%`_state(s, f)) = s.TAGS_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $globalinst(state : state) : globalinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $globalinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`GLOBALS`_store + def $globalinst{s : store, f : frame}(`%;%`_state(s, f)) = s.GLOBALS_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $meminst(state : state) : meminst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $meminst{s : store, f : frame}(`%;%`_state(s, f)) = s.`MEMS`_store + def $meminst{s : store, f : frame}(`%;%`_state(s, f)) = s.MEMS_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $tableinst(state : state) : tableinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tableinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`TABLES`_store + def $tableinst{s : store, f : frame}(`%;%`_state(s, f)) = s.TABLES_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $funcinst(state : state) : funcinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $funcinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`FUNCS`_store + def $funcinst{s : store, f : frame}(`%;%`_state(s, f)) = s.FUNCS_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $datainst(state : state) : datainst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $datainst{s : store, f : frame}(`%;%`_state(s, f)) = s.`DATAS`_store + def $datainst{s : store, f : frame}(`%;%`_state(s, f)) = s.DATAS_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $eleminst(state : state) : eleminst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $eleminst{s : store, f : frame}(`%;%`_state(s, f)) = s.`ELEMS`_store + def $eleminst{s : store, f : frame}(`%;%`_state(s, f)) = s.ELEMS_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $structinst(state : state) : structinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $structinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`STRUCTS`_store + def $structinst{s : store, f : frame}(`%;%`_state(s, f)) = s.STRUCTS_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $arrayinst(state : state) : arrayinst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $arrayinst{s : store, f : frame}(`%;%`_state(s, f)) = s.`ARRAYS`_store + def $arrayinst{s : store, f : frame}(`%;%`_state(s, f)) = s.ARRAYS_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $exninst(state : state) : exninst* ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $exninst{s : store, f : frame}(`%;%`_state(s, f)) = s.`EXNS`_store + def $exninst{s : store, f : frame}(`%;%`_state(s, f)) = s.EXNS_store ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $type(state : state, typeidx : typeidx) : deftype ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $type{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = f.`MODULE`_frame.`TYPES`_moduleinst[x!`%`_idx.0] + def $type{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = f.MODULE_frame.TYPES_moduleinst[x!`%`_idx.0] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $tag(state : state, tagidx : tagidx) : taginst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $tag{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`TAGS`_store[f.`MODULE`_frame.`TAGS`_moduleinst[x!`%`_idx.0]] + def $tag{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.TAGS_store[f.MODULE_frame.TAGS_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $global(state : state, globalidx : globalidx) : globalinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $global{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]] + def $global{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.GLOBALS_store[f.MODULE_frame.GLOBALS_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $mem(state : state, memidx : memidx) : meminst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $mem{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] + def $mem{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.MEMS_store[f.MODULE_frame.MEMS_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $table(state : state, tableidx : tableidx) : tableinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $table{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] + def $table{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.TABLES_store[f.MODULE_frame.TABLES_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $func(state : state, funcidx : funcidx) : funcinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $func{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`FUNCS`_store[f.`MODULE`_frame.`FUNCS`_moduleinst[x!`%`_idx.0]] + def $func{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.FUNCS_store[f.MODULE_frame.FUNCS_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $data(state : state, dataidx : dataidx) : datainst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $data{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]] + def $data{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.DATAS_store[f.MODULE_frame.DATAS_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $elem(state : state, tableidx : tableidx) : eleminst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $elem{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]] + def $elem{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = s.ELEMS_store[f.MODULE_frame.ELEMS_moduleinst[x!`%`_idx.0]] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $local(state : state, localidx : localidx) : val? ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $local{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = f.`LOCALS`_frame[x!`%`_idx.0] + def $local{s : store, f : frame, x : idx}(`%;%`_state(s, f), x) = f.LOCALS_frame[x!`%`_idx.0] ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_local(state : state, localidx : localidx, val : val) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_local{s : store, f : frame, x : idx, v : val}(`%;%`_state(s, f), x, v) = `%;%`_state(s, f[`LOCALS`_frame[x!`%`_idx.0] = ?(v)]) + def $with_local{s : store, f : frame, x : idx, v : val}(`%;%`_state(s, f), x, v) = `%;%`_state(s, f[LOCALS_frame[x!`%`_idx.0] = ?(v)]) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_global(state : state, globalidx : globalidx, val : val) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_global{s : store, f : frame, x : idx, v : val}(`%;%`_state(s, f), x, v) = `%;%`_state(s[`GLOBALS`_store[f.`MODULE`_frame.`GLOBALS`_moduleinst[x!`%`_idx.0]].`VALUE`_globalinst = v], f) + def $with_global{s : store, f : frame, x : idx, v : val}(`%;%`_state(s, f), x, v) = `%;%`_state(s[GLOBALS_store[f.MODULE_frame.GLOBALS_moduleinst[x!`%`_idx.0]].VALUE_globalinst = v], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_table(state : state, tableidx : tableidx, nat : nat, ref : ref) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_table{s : store, f : frame, x : idx, i : nat, r : ref}(`%;%`_state(s, f), x, i, r) = `%;%`_state(s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]].`REFS`_tableinst[i] = r], f) + def $with_table{s : store, f : frame, x : idx, i : nat, r : ref}(`%;%`_state(s, f), x, i, r) = `%;%`_state(s[TABLES_store[f.MODULE_frame.TABLES_moduleinst[x!`%`_idx.0]].REFS_tableinst[i] = r], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_tableinst(state : state, tableidx : tableidx, tableinst : tableinst) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_tableinst{s : store, f : frame, x : idx, ti : tableinst}(`%;%`_state(s, f), x, ti) = `%;%`_state(s[`TABLES`_store[f.`MODULE`_frame.`TABLES`_moduleinst[x!`%`_idx.0]] = ti], f) + def $with_tableinst{s : store, f : frame, x : idx, ti : tableinst}(`%;%`_state(s, f), x, ti) = `%;%`_state(s[TABLES_store[f.MODULE_frame.TABLES_moduleinst[x!`%`_idx.0]] = ti], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_mem(state : state, memidx : memidx, nat : nat, nat : nat, byte*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_mem{s : store, f : frame, x : idx, i : nat, j : nat, `b*` : byte*}(`%;%`_state(s, f), x, i, j, b*{b <- `b*`}) = `%;%`_state(s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]].`BYTES`_meminst[i : j] = b*{b <- `b*`}], f) + def $with_mem{s : store, f : frame, x : idx, i : nat, j : nat, `b*` : byte*}(`%;%`_state(s, f), x, i, j, b*{b <- `b*`}) = `%;%`_state(s[MEMS_store[f.MODULE_frame.MEMS_moduleinst[x!`%`_idx.0]].BYTES_meminst[i : j] = b*{b <- `b*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_meminst(state : state, memidx : memidx, meminst : meminst) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_meminst{s : store, f : frame, x : idx, mi : meminst}(`%;%`_state(s, f), x, mi) = `%;%`_state(s[`MEMS`_store[f.`MODULE`_frame.`MEMS`_moduleinst[x!`%`_idx.0]] = mi], f) + def $with_meminst{s : store, f : frame, x : idx, mi : meminst}(`%;%`_state(s, f), x, mi) = `%;%`_state(s[MEMS_store[f.MODULE_frame.MEMS_moduleinst[x!`%`_idx.0]] = mi], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_elem(state : state, elemidx : elemidx, ref*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_elem{s : store, f : frame, x : idx, `r*` : ref*}(`%;%`_state(s, f), x, r*{r <- `r*`}) = `%;%`_state(s[`ELEMS`_store[f.`MODULE`_frame.`ELEMS`_moduleinst[x!`%`_idx.0]].`REFS`_eleminst = r*{r <- `r*`}], f) + def $with_elem{s : store, f : frame, x : idx, `r*` : ref*}(`%;%`_state(s, f), x, r*{r <- `r*`}) = `%;%`_state(s[ELEMS_store[f.MODULE_frame.ELEMS_moduleinst[x!`%`_idx.0]].REFS_eleminst = r*{r <- `r*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_data(state : state, dataidx : dataidx, byte*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_data{s : store, f : frame, x : idx, `b*` : byte*}(`%;%`_state(s, f), x, b*{b <- `b*`}) = `%;%`_state(s[`DATAS`_store[f.`MODULE`_frame.`DATAS`_moduleinst[x!`%`_idx.0]].`BYTES`_datainst = b*{b <- `b*`}], f) + def $with_data{s : store, f : frame, x : idx, `b*` : byte*}(`%;%`_state(s, f), x, b*{b <- `b*`}) = `%;%`_state(s[DATAS_store[f.MODULE_frame.DATAS_moduleinst[x!`%`_idx.0]].BYTES_datainst = b*{b <- `b*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_struct(state : state, structaddr : structaddr, nat : nat, fieldval : fieldval) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_struct{s : store, f : frame, a : addr, i : nat, fv : fieldval}(`%;%`_state(s, f), a, i, fv) = `%;%`_state(s[`STRUCTS`_store[a].`FIELDS`_structinst[i] = fv], f) + def $with_struct{s : store, f : frame, a : addr, i : nat, fv : fieldval}(`%;%`_state(s, f), a, i, fv) = `%;%`_state(s[STRUCTS_store[a].FIELDS_structinst[i] = fv], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $with_array(state : state, arrayaddr : arrayaddr, nat : nat, fieldval : fieldval) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $with_array{s : store, f : frame, a : addr, i : nat, fv : fieldval}(`%;%`_state(s, f), a, i, fv) = `%;%`_state(s[`ARRAYS`_store[a].`FIELDS`_arrayinst[i] = fv], f) + def $with_array{s : store, f : frame, a : addr, i : nat, fv : fieldval}(`%;%`_state(s, f), a, i, fv) = `%;%`_state(s[ARRAYS_store[a].FIELDS_arrayinst[i] = fv], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $add_structinst(state : state, structinst*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_structinst{s : store, f : frame, `si*` : structinst*}(`%;%`_state(s, f), si*{si <- `si*`}) = `%;%`_state(s[`STRUCTS`_store =++ si*{si <- `si*`}], f) + def $add_structinst{s : store, f : frame, `si*` : structinst*}(`%;%`_state(s, f), si*{si <- `si*`}) = `%;%`_state(s[STRUCTS_store =++ si*{si <- `si*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $add_arrayinst(state : state, arrayinst*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_arrayinst{s : store, f : frame, `ai*` : arrayinst*}(`%;%`_state(s, f), ai*{ai <- `ai*`}) = `%;%`_state(s[`ARRAYS`_store =++ ai*{ai <- `ai*`}], f) + def $add_arrayinst{s : store, f : frame, `ai*` : arrayinst*}(`%;%`_state(s, f), ai*{ai <- `ai*`}) = `%;%`_state(s[ARRAYS_store =++ ai*{ai <- `ai*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $add_exninst(state : state, exninst*) : state ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec - def $add_exninst{s : store, f : frame, `exn*` : exninst*}(`%;%`_state(s, f), exn*{exn <- `exn*`}) = `%;%`_state(s[`EXNS`_store =++ exn*{exn <- `exn*`}], f) + def $add_exninst{s : store, f : frame, `exn*` : exninst*}(`%;%`_state(s, f), exn*{exn <- `exn*`}) = `%;%`_state(s[EXNS_store =++ exn*{exn <- `exn*`}], f) ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $growtable(tableinst : tableinst, nat : nat, ref : ref) : tableinst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $growtable{tableinst : tableinst, n : n, r : ref, tableinst' : tableinst, at : addrtype, i : u64, `j?` : u64?, rt : reftype, `r'*` : ref*, i' : u64}(tableinst, n, r) = tableinst' - -- if (tableinst = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`}}) - -- if (tableinst' = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i', j?{j <- `j?`}), rt), `REFS` r'*{r' <- `r'*`} ++ r^n{}}) + -- if (tableinst = {TYPE `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), REFS r'*{r' <- `r'*`}}) + -- if (tableinst' = {TYPE `%%%`_tabletype(at, `[%..%]`_limits(i', j?{j <- `j?`}), rt), REFS r'*{r' <- `r'*`} ++ r^n{}}) -- if (i'!`%`_u64.0 = (|r'*{r' <- `r'*`}| + n)) -- (if (i'!`%`_u64.0 <= j!`%`_u64.0))?{j <- `j?`} @@ -92605,8 +5799,8 @@ def $growtable(tableinst : tableinst, nat : nat, ref : ref) : tableinst def $growmem(meminst : meminst, nat : nat) : meminst ;; ../../../../specification/wasm-3.0/4.0-execution.configurations.spectec def $growmem{meminst : meminst, n : n, meminst' : meminst, at : addrtype, i : u64, `j?` : u64?, `b*` : byte*, i' : u64}(meminst, n) = meminst' - -- if (meminst = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` b*{b <- `b*`}}) - -- if (meminst' = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i', j?{j <- `j?`})), `BYTES` b*{b <- `b*`} ++ `%`_byte(0)^(n * (64 * $Ki)){}}) + -- if (meminst = {TYPE `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), BYTES b*{b <- `b*`}}) + -- if (meminst' = {TYPE `%%PAGE`_memtype(at, `[%..%]`_limits(i', j?{j <- `j?`})), BYTES b*{b <- `b*`} ++ `%`_byte(0)^(n * (64 * $Ki)){}}) -- if ((i'!`%`_u64.0 : nat <:> rat) = (((|b*{b <- `b*`}| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) + (n : nat <:> rat))) -- (if (i'!`%`_u64.0 <= j!`%`_u64.0))?{j <- `j?`} @@ -92614,13 +5808,13 @@ def $growmem(meminst : meminst, nat : nat) : meminst relation Num_ok: `%|-%:%`(store, num, numtype) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec rule _{s : store, nt : numtype, c : num_(nt)}: - `%|-%:%`(s, `CONST`_num(nt, c), nt) + `%|-%:%`(s, CONST_num(nt, c), nt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec relation Vec_ok: `%|-%:%`(store, vec, vectype) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec rule _{s : store, vt : vectype, c : vec_(vt)}: - `%|-%:%`(s, `VCONST`_vec(vt, c), vt) + `%|-%:%`(s, VCONST_vec(vt, c), vt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec rec { @@ -92629,47 +5823,47 @@ rec { relation Ref_ok: `%|-%:%`(store, ref, reftype) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:35.1-37.35 rule null{s : store, ht : heaptype, ht' : heaptype}: - `%|-%:%`(s, `REF.NULL`_ref(ht), `REF`_reftype(?(`NULL`_null), ht')) - -- Heaptype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, ht', ht) + `%|-%:%`(s, `REF.NULL`_ref(ht), REF_reftype(?(NULL_null), ht')) + -- Heaptype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, ht', ht) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:39.1-40.33 rule i31{s : store, i : u31}: - `%|-%:%`(s, `REF.I31_NUM`_ref(i), `REF`_reftype(?(), `I31`_heaptype)) + `%|-%:%`(s, `REF.I31_NUM`_ref(i), REF_reftype(?(), I31_heaptype)) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:42.1-44.31 rule struct{s : store, a : addr, dt : deftype}: - `%|-%:%`(s, `REF.STRUCT_ADDR`_ref(a), `REF`_reftype(?(), (dt : deftype <: heaptype))) - -- if (s.`STRUCTS`_store[a].`TYPE`_structinst = dt) + `%|-%:%`(s, `REF.STRUCT_ADDR`_ref(a), REF_reftype(?(), (dt : deftype <: heaptype))) + -- if (s.STRUCTS_store[a].TYPE_structinst = dt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:46.1-48.30 rule array{s : store, a : addr, dt : deftype}: - `%|-%:%`(s, `REF.ARRAY_ADDR`_ref(a), `REF`_reftype(?(), (dt : deftype <: heaptype))) - -- if (s.`ARRAYS`_store[a].`TYPE`_arrayinst = dt) + `%|-%:%`(s, `REF.ARRAY_ADDR`_ref(a), REF_reftype(?(), (dt : deftype <: heaptype))) + -- if (s.ARRAYS_store[a].TYPE_arrayinst = dt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:50.1-52.29 rule func{s : store, a : addr, dt : deftype}: - `%|-%:%`(s, `REF.FUNC_ADDR`_ref(a), `REF`_reftype(?(), (dt : deftype <: heaptype))) - -- if (s.`FUNCS`_store[a].`TYPE`_funcinst = dt) + `%|-%:%`(s, `REF.FUNC_ADDR`_ref(a), REF_reftype(?(), (dt : deftype <: heaptype))) + -- if (s.FUNCS_store[a].TYPE_funcinst = dt) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:54.1-56.24 rule exn{s : store, a : addr, exn : exninst}: - `%|-%:%`(s, `REF.EXN_ADDR`_ref(a), `REF`_reftype(?(), `EXN`_heaptype)) - -- if (s.`EXNS`_store[a] = exn) + `%|-%:%`(s, `REF.EXN_ADDR`_ref(a), REF_reftype(?(), EXN_heaptype)) + -- if (s.EXNS_store[a] = exn) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:58.1-59.35 rule host{s : store, a : addr}: - `%|-%:%`(s, `REF.HOST_ADDR`_ref(a), `REF`_reftype(?(), `ANY`_heaptype)) + `%|-%:%`(s, `REF.HOST_ADDR`_ref(a), REF_reftype(?(), ANY_heaptype)) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:61.1-63.38 rule extern{s : store, addrref : addrref}: - `%|-%:%`(s, `REF.EXTERN`_ref(addrref), `REF`_reftype(?(), `EXTERN`_heaptype)) - -- Ref_ok: `%|-%:%`(s, (addrref : addrref <: ref), `REF`_reftype(?(), `ANY`_heaptype)) + `%|-%:%`(s, `REF.EXTERN`_ref(addrref), REF_reftype(?(), EXTERN_heaptype)) + -- Ref_ok: `%|-%:%`(s, (addrref : addrref <: ref), REF_reftype(?(), ANY_heaptype)) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:65.1-68.34 rule sub{s : store, ref : ref, rt : reftype, rt' : reftype}: `%|-%:%`(s, ref, rt) -- Ref_ok: `%|-%:%`(s, ref, rt') - -- Reftype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt', rt) + -- Reftype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, rt', rt) } ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec @@ -92696,98 +5890,98 @@ rec { relation Externaddr_ok: `%|-%:%`(store, externaddr, externtype) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:88.1-90.28 rule tag{s : store, a : addr, taginst : taginst}: - `%|-%:%`(s, `TAG`_externaddr(a), `TAG`_externtype(taginst.`TYPE`_taginst)) - -- if (s.`TAGS`_store[a] = taginst) + `%|-%:%`(s, TAG_externaddr(a), TAG_externtype(taginst.TYPE_taginst)) + -- if (s.TAGS_store[a] = taginst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:92.1-94.34 rule global{s : store, a : addr, globalinst : globalinst}: - `%|-%:%`(s, `GLOBAL`_externaddr(a), `GLOBAL`_externtype(globalinst.`TYPE`_globalinst)) - -- if (s.`GLOBALS`_store[a] = globalinst) + `%|-%:%`(s, GLOBAL_externaddr(a), GLOBAL_externtype(globalinst.TYPE_globalinst)) + -- if (s.GLOBALS_store[a] = globalinst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:96.1-98.28 rule mem{s : store, a : addr, meminst : meminst}: - `%|-%:%`(s, `MEM`_externaddr(a), `MEM`_externtype(meminst.`TYPE`_meminst)) - -- if (s.`MEMS`_store[a] = meminst) + `%|-%:%`(s, MEM_externaddr(a), MEM_externtype(meminst.TYPE_meminst)) + -- if (s.MEMS_store[a] = meminst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:100.1-102.32 rule table{s : store, a : addr, tableinst : tableinst}: - `%|-%:%`(s, `TABLE`_externaddr(a), `TABLE`_externtype(tableinst.`TYPE`_tableinst)) - -- if (s.`TABLES`_store[a] = tableinst) + `%|-%:%`(s, TABLE_externaddr(a), TABLE_externtype(tableinst.TYPE_tableinst)) + -- if (s.TABLES_store[a] = tableinst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:104.1-106.30 rule func{s : store, a : addr, funcinst : funcinst}: - `%|-%:%`(s, `FUNC`_externaddr(a), `FUNC`_externtype((funcinst.`TYPE`_funcinst : deftype <: typeuse))) - -- if (s.`FUNCS`_store[a] = funcinst) + `%|-%:%`(s, FUNC_externaddr(a), FUNC_externtype((funcinst.TYPE_funcinst : deftype <: typeuse))) + -- if (s.FUNCS_store[a] = funcinst) ;; ../../../../specification/wasm-3.0/4.1-execution.values.spectec:108.1-111.37 rule sub{s : store, externaddr : externaddr, xt : externtype, xt' : externtype}: `%|-%:%`(s, externaddr, xt) -- Externaddr_ok: `%|-%:%`(s, externaddr, xt') - -- Externtype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, xt', xt) + -- Externtype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, xt', xt) } ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_valtype(moduleinst : moduleinst, valtype : valtype) : valtype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_valtype{moduleinst : moduleinst, t : valtype, `dt*` : deftype*}(moduleinst, t) = $subst_all_valtype(t, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) + -- if (dt*{dt <- `dt*`} = moduleinst.TYPES_moduleinst) ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_reftype(moduleinst : moduleinst, reftype : reftype) : reftype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_reftype{moduleinst : moduleinst, rt : reftype, `dt*` : deftype*}(moduleinst, rt) = $subst_all_reftype(rt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) + -- if (dt*{dt <- `dt*`} = moduleinst.TYPES_moduleinst) ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_globaltype(moduleinst : moduleinst, globaltype : globaltype) : globaltype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_globaltype{moduleinst : moduleinst, gt : globaltype, `dt*` : deftype*}(moduleinst, gt) = $subst_all_globaltype(gt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) + -- if (dt*{dt <- `dt*`} = moduleinst.TYPES_moduleinst) ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_memtype(moduleinst : moduleinst, memtype : memtype) : memtype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_memtype{moduleinst : moduleinst, mt : memtype, `dt*` : deftype*}(moduleinst, mt) = $subst_all_memtype(mt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) + -- if (dt*{dt <- `dt*`} = moduleinst.TYPES_moduleinst) ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_tabletype(moduleinst : moduleinst, tabletype : tabletype) : tabletype ;; ../../../../specification/wasm-3.0/4.2-execution.types.spectec def $inst_tabletype{moduleinst : moduleinst, tt : tabletype, `dt*` : deftype*}(moduleinst, tt) = $subst_all_tabletype(tt, (dt : deftype <: typeuse)*{dt <- `dt*`}) - -- if (dt*{dt <- `dt*`} = moduleinst.`TYPES`_moduleinst) + -- if (dt*{dt <- `dt*`} = moduleinst.TYPES_moduleinst) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec relation Step_pure: `%~>%`(instr*, instr*) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule unreachable: - `%~>%`([`UNREACHABLE`_instr], [`TRAP`_instr]) + `%~>%`([UNREACHABLE_instr], [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule nop: - `%~>%`([`NOP`_instr], []) + `%~>%`([NOP_instr], []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule drop{val : val}: - `%~>%`([(val : val <: instr) `DROP`_instr], []) + `%~>%`([(val : val <: instr) DROP_instr], []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `select-true`{val_1 : val, val_2 : val, c : num_(`I32`_numtype), `t*?` : valtype*?}: - `%~>%`([(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr(`I32`_numtype, c) `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})], [(val_1 : val <: instr)]) + rule `select-true`{val_1 : val, val_2 : val, c : num_(I32_numtype), `t*?` : valtype*?}: + `%~>%`([(val_1 : val <: instr) (val_2 : val <: instr) CONST_instr(I32_numtype, c) SELECT_instr(t*{t <- `t*`}?{`t*` <- `t*?`})], [(val_1 : val <: instr)]) -- if (c!`%`_num_.0 =/= 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `select-false`{val_1 : val, val_2 : val, c : num_(`I32`_numtype), `t*?` : valtype*?}: - `%~>%`([(val_1 : val <: instr) (val_2 : val <: instr) `CONST`_instr(`I32`_numtype, c) `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`})], [(val_2 : val <: instr)]) + rule `select-false`{val_1 : val, val_2 : val, c : num_(I32_numtype), `t*?` : valtype*?}: + `%~>%`([(val_1 : val <: instr) (val_2 : val <: instr) CONST_instr(I32_numtype, c) SELECT_instr(t*{t <- `t*`}?{`t*` <- `t*?`})], [(val_2 : val <: instr)]) -- if (c!`%`_num_.0 = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `if-true`{c : num_(`I32`_numtype), bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}: - `%~>%`([`CONST`_instr(`I32`_numtype, c) `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})], [`BLOCK`_instr(bt, instr_1*{instr_1 <- `instr_1*`})]) + rule `if-true`{c : num_(I32_numtype), bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}: + `%~>%`([CONST_instr(I32_numtype, c) `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})], [BLOCK_instr(bt, instr_1*{instr_1 <- `instr_1*`})]) -- if (c!`%`_num_.0 =/= 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `if-false`{c : num_(`I32`_numtype), bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}: - `%~>%`([`CONST`_instr(`I32`_numtype, c) `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})], [`BLOCK`_instr(bt, instr_2*{instr_2 <- `instr_2*`})]) + rule `if-false`{c : num_(I32_numtype), bt : blocktype, `instr_1*` : instr*, `instr_2*` : instr*}: + `%~>%`([CONST_instr(I32_numtype, c) `IF%%ELSE%`_instr(bt, instr_1*{instr_1 <- `instr_1*`}, instr_2*{instr_2 <- `instr_2*`})], [BLOCK_instr(bt, instr_2*{instr_2 <- `instr_2*`})]) -- if (c!`%`_num_.0 = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec @@ -92796,65 +5990,65 @@ relation Step_pure: `%~>%`(instr*, instr*) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `br-label-zero`{n : n, `instr'*` : instr*, `val'*` : val*, `val*` : val*, l : labelidx, `instr*` : instr*}: - `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)^n{val <- `val*`} ++ instr'*{instr' <- `instr'*`}) + `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [BR_instr(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)^n{val <- `val*`} ++ instr'*{instr' <- `instr'*`}) -- if (l!`%`_labelidx.0 = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `br-label-succ`{n : n, `instr'*` : instr*, `val*` : val*, l : labelidx, `instr*` : instr*}: - `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(`%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]) + `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [BR_instr(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [BR_instr(`%`_labelidx((((l!`%`_labelidx.0 : nat <:> int) - (1 : nat <:> int)) : int <:> nat)))]) -- if (l!`%`_labelidx.0 > 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `br-handler`{n : n, `catch*` : catch*, `val*` : val*, l : labelidx, `instr*` : instr*}: - `%~>%`([`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)]) + `%~>%`([`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [BR_instr(l)] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [BR_instr(l)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_if-true`{c : num_(`I32`_numtype), l : labelidx}: - `%~>%`([`CONST`_instr(`I32`_numtype, c) `BR_IF`_instr(l)], [`BR`_instr(l)]) + rule `br_if-true`{c : num_(I32_numtype), l : labelidx}: + `%~>%`([CONST_instr(I32_numtype, c) BR_IF_instr(l)], [BR_instr(l)]) -- if (c!`%`_num_.0 =/= 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_if-false`{c : num_(`I32`_numtype), l : labelidx}: - `%~>%`([`CONST`_instr(`I32`_numtype, c) `BR_IF`_instr(l)], []) + rule `br_if-false`{c : num_(I32_numtype), l : labelidx}: + `%~>%`([CONST_instr(I32_numtype, c) BR_IF_instr(l)], []) -- if (c!`%`_num_.0 = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_table-lt`{i : num_(`I32`_numtype), `l*` : labelidx*, l' : labelidx}: - `%~>%`([`CONST`_instr(`I32`_numtype, i) `BR_TABLE`_instr(l*{l <- `l*`}, l')], [`BR`_instr(l*{l <- `l*`}[i!`%`_num_.0])]) + rule `br_table-lt`{i : num_(I32_numtype), `l*` : labelidx*, l' : labelidx}: + `%~>%`([CONST_instr(I32_numtype, i) BR_TABLE_instr(l*{l <- `l*`}, l')], [BR_instr(l*{l <- `l*`}[i!`%`_num_.0])]) -- if (i!`%`_num_.0 < |l*{l <- `l*`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `br_table-ge`{i : num_(`I32`_numtype), `l*` : labelidx*, l' : labelidx}: - `%~>%`([`CONST`_instr(`I32`_numtype, i) `BR_TABLE`_instr(l*{l <- `l*`}, l')], [`BR`_instr(l')]) + rule `br_table-ge`{i : num_(I32_numtype), `l*` : labelidx*, l' : labelidx}: + `%~>%`([CONST_instr(I32_numtype, i) BR_TABLE_instr(l*{l <- `l*`}, l')], [BR_instr(l')]) -- if (i!`%`_num_.0 >= |l*{l <- `l*`}|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `br_on_null-null`{val : val, l : labelidx, ht : heaptype}: - `%~>%`([(val : val <: instr) `BR_ON_NULL`_instr(l)], [`BR`_instr(l)]) + `%~>%`([(val : val <: instr) BR_ON_NULL_instr(l)], [BR_instr(l)]) -- if (val = `REF.NULL`_val(ht)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `br_on_null-addr`{val : val, l : labelidx}: - `%~>%`([(val : val <: instr) `BR_ON_NULL`_instr(l)], [(val : val <: instr)]) + `%~>%`([(val : val <: instr) BR_ON_NULL_instr(l)], [(val : val <: instr)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `br_on_non_null-null`{val : val, l : labelidx, ht : heaptype}: - `%~>%`([(val : val <: instr) `BR_ON_NON_NULL`_instr(l)], []) + `%~>%`([(val : val <: instr) BR_ON_NON_NULL_instr(l)], []) -- if (val = `REF.NULL`_val(ht)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `br_on_non_null-addr`{val : val, l : labelidx}: - `%~>%`([(val : val <: instr) `BR_ON_NON_NULL`_instr(l)], [(val : val <: instr) `BR`_instr(l)]) + `%~>%`([(val : val <: instr) BR_ON_NON_NULL_instr(l)], [(val : val <: instr) BR_instr(l)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule call_indirect{x : idx, yy : typeuse}: - `%~>%`([`CALL_INDIRECT`_instr(x, yy)], [`TABLE.GET`_instr(x) `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype))) `CALL_REF`_instr(yy)]) + `%~>%`([CALL_INDIRECT_instr(x, yy)], [`TABLE.GET`_instr(x) `REF.CAST`_instr(REF_reftype(?(NULL_null), (yy : typeuse <: heaptype))) CALL_REF_instr(yy)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule return_call_indirect{x : idx, yy : typeuse}: - `%~>%`([`RETURN_CALL_INDIRECT`_instr(x, yy)], [`TABLE.GET`_instr(x) `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), (yy : typeuse <: heaptype))) `RETURN_CALL_REF`_instr(yy)]) + `%~>%`([RETURN_CALL_INDIRECT_instr(x, yy)], [`TABLE.GET`_instr(x) `REF.CAST`_instr(REF_reftype(?(NULL_null), (yy : typeuse <: heaptype))) RETURN_CALL_REF_instr(yy)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `frame-vals`{n : n, f : frame, `val*` : val*}: @@ -92862,15 +6056,15 @@ relation Step_pure: `%~>%`(instr*, instr*) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `return-frame`{n : n, f : frame, `val'*` : val*, `val*` : val*, `instr*` : instr*}: - `%~>%`([`FRAME_%{%}%`_instr(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)^n{val <- `val*`}) + `%~>%`([`FRAME_%{%}%`_instr(n, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [RETURN_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)^n{val <- `val*`}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `return-label`{n : n, `instr'*` : instr*, `val*` : val*, `instr*` : instr*}: - `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]) + `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [RETURN_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [RETURN_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `return-handler`{n : n, `catch*` : catch*, `val*` : val*, `instr*` : instr*}: - `%~>%`([`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [`RETURN`_instr]) + `%~>%`([`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [RETURN_instr] ++ instr*{instr <- `instr*`})], (val : val <: instr)*{val <- `val*`} ++ [RETURN_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `handler-vals`{n : n, `catch*` : catch*, `val*` : val*}: @@ -92878,38 +6072,38 @@ relation Step_pure: `%~>%`(instr*, instr*) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `trap-instrs`{`val*` : val*, `instr*` : instr*}: - `%~>%`((val : val <: instr)*{val <- `val*`} ++ [`TRAP`_instr] ++ instr*{instr <- `instr*`}, [`TRAP`_instr]) + `%~>%`((val : val <: instr)*{val <- `val*`} ++ [TRAP_instr] ++ instr*{instr <- `instr*`}, [TRAP_instr]) -- if ((val*{val <- `val*`} =/= []) \/ (instr*{instr <- `instr*`} =/= [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `trap-label`{n : n, `instr'*` : instr*}: - `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`TRAP`_instr])], [`TRAP`_instr]) + `%~>%`([`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [TRAP_instr])], [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `trap-frame`{n : n, f : frame}: - `%~>%`([`FRAME_%{%}%`_instr(n, f, [`TRAP`_instr])], [`TRAP`_instr]) + `%~>%`([`FRAME_%{%}%`_instr(n, f, [TRAP_instr])], [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule local.tee{val : val, x : idx}: + rule `local.tee`{val : val, x : idx}: `%~>%`([(val : val <: instr) `LOCAL.TEE`_instr(x)], [(val : val <: instr) (val : val <: instr) `LOCAL.SET`_instr(x)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule ref.i31{i : num_(`I32`_numtype)}: - `%~>%`([`CONST`_instr(`I32`_numtype, i) `REF.I31`_instr], [`REF.I31_NUM`_instr($wrap__(32, 31, i))]) + rule `ref.i31`{i : num_(I32_numtype)}: + `%~>%`([CONST_instr(I32_numtype, i) `REF.I31`_instr], [`REF.I31_NUM`_instr($wrap__(32, 31, i))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `ref.is_null-true`{ref : ref, ht : heaptype}: - `%~>%`([(ref : ref <: instr) `REF.IS_NULL`_instr], [`CONST`_instr(`I32`_numtype, `%`_num_(1))]) + `%~>%`([(ref : ref <: instr) `REF.IS_NULL`_instr], [CONST_instr(I32_numtype, `%`_num_(1))]) -- if (ref = `REF.NULL`_ref(ht)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `ref.is_null-false`{ref : ref}: - `%~>%`([(ref : ref <: instr) `REF.IS_NULL`_instr], [`CONST`_instr(`I32`_numtype, `%`_num_(0))]) + `%~>%`([(ref : ref <: instr) `REF.IS_NULL`_instr], [CONST_instr(I32_numtype, `%`_num_(0))]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `ref.as_non_null-null`{ref : ref, ht : heaptype}: - `%~>%`([(ref : ref <: instr) `REF.AS_NON_NULL`_instr], [`TRAP`_instr]) + `%~>%`([(ref : ref <: instr) `REF.AS_NON_NULL`_instr], [TRAP_instr]) -- if (ref = `REF.NULL`_ref(ht)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec @@ -92919,35 +6113,35 @@ relation Step_pure: `%~>%`(instr*, instr*) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `ref.eq-null`{ref_1 : ref, ref_2 : ref, ht_1 : heaptype, ht_2 : heaptype}: - `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [`CONST`_instr(`I32`_numtype, `%`_num_(1))]) + `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [CONST_instr(I32_numtype, `%`_num_(1))]) -- if ((ref_1 = `REF.NULL`_ref(ht_1)) /\ (ref_2 = `REF.NULL`_ref(ht_2))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `ref.eq-true`{ref_1 : ref, ref_2 : ref}: - `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [`CONST`_instr(`I32`_numtype, `%`_num_(1))]) + `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [CONST_instr(I32_numtype, `%`_num_(1))]) -- otherwise -- if (ref_1 = ref_2) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `ref.eq-false`{ref_1 : ref, ref_2 : ref}: - `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [`CONST`_instr(`I32`_numtype, `%`_num_(0))]) + `%~>%`([(ref_1 : ref <: instr) (ref_2 : ref <: instr) `REF.EQ`_instr], [CONST_instr(I32_numtype, `%`_num_(0))]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `i31.get-null`{ht : heaptype, sx : sx}: - `%~>%`([`REF.NULL`_instr(ht) `I31.GET`_instr(sx)], [`TRAP`_instr]) + `%~>%`([`REF.NULL`_instr(ht) `I31.GET`_instr(sx)], [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `i31.get-num`{i : u31, sx : sx}: - `%~>%`([`REF.I31_NUM`_instr(i) `I31.GET`_instr(sx)], [`CONST`_instr(`I32`_numtype, $extend__(31, 32, sx, i))]) + `%~>%`([`REF.I31_NUM`_instr(i) `I31.GET`_instr(sx)], [CONST_instr(I32_numtype, $extend__(31, 32, sx, i))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule array.new{val : val, n : n, x : idx}: - `%~>%`([(val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW`_instr(x)], (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]) + rule `array.new`{val : val, n : n, x : idx}: + `%~>%`([(val : val <: instr) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.NEW`_instr(x)], (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `extern.convert_any-null`{ht : heaptype}: - `%~>%`([`REF.NULL`_instr(ht) `EXTERN.CONVERT_ANY`_instr], [`REF.NULL`_instr(`EXTERN`_heaptype)]) + `%~>%`([`REF.NULL`_instr(ht) `EXTERN.CONVERT_ANY`_instr], [`REF.NULL`_instr(EXTERN_heaptype)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `extern.convert_any-addr`{addrref : addrref}: @@ -92955,7 +6149,7 @@ relation Step_pure: `%~>%`(instr*, instr*) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `any.convert_extern-null`{ht : heaptype}: - `%~>%`([`REF.NULL`_instr(ht) `ANY.CONVERT_EXTERN`_instr], [`REF.NULL`_instr(`ANY`_heaptype)]) + `%~>%`([`REF.NULL`_instr(ht) `ANY.CONVERT_EXTERN`_instr], [`REF.NULL`_instr(ANY_heaptype)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `any.convert_extern-addr`{addrref : addrref}: @@ -92963,726 +6157,726 @@ relation Step_pure: `%~>%`(instr*, instr*) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `unop-val`{nt : numtype, c_1 : num_(nt), unop : unop_(nt), c : num_(nt)}: - `%~>%`([`CONST`_instr(nt, c_1) `UNOP`_instr(nt, unop)], [`CONST`_instr(nt, c)]) + `%~>%`([CONST_instr(nt, c_1) UNOP_instr(nt, unop)], [CONST_instr(nt, c)]) -- if (c <- $unop_(nt, unop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `unop-trap`{nt : numtype, c_1 : num_(nt), unop : unop_(nt)}: - `%~>%`([`CONST`_instr(nt, c_1) `UNOP`_instr(nt, unop)], [`TRAP`_instr]) + `%~>%`([CONST_instr(nt, c_1) UNOP_instr(nt, unop)], [TRAP_instr]) -- if ($unop_(nt, unop, c_1) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `binop-val`{nt : numtype, c_1 : num_(nt), c_2 : num_(nt), binop : binop_(nt), c : num_(nt)}: - `%~>%`([`CONST`_instr(nt, c_1) `CONST`_instr(nt, c_2) `BINOP`_instr(nt, binop)], [`CONST`_instr(nt, c)]) + `%~>%`([CONST_instr(nt, c_1) CONST_instr(nt, c_2) BINOP_instr(nt, binop)], [CONST_instr(nt, c)]) -- if (c <- $binop_(nt, binop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `binop-trap`{nt : numtype, c_1 : num_(nt), c_2 : num_(nt), binop : binop_(nt)}: - `%~>%`([`CONST`_instr(nt, c_1) `CONST`_instr(nt, c_2) `BINOP`_instr(nt, binop)], [`TRAP`_instr]) + `%~>%`([CONST_instr(nt, c_1) CONST_instr(nt, c_2) BINOP_instr(nt, binop)], [TRAP_instr]) -- if ($binop_(nt, binop, c_1, c_2) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule testop{nt : numtype, c_1 : num_(nt), testop : testop_(nt), c : num_(`I32`_numtype)}: - `%~>%`([`CONST`_instr(nt, c_1) `TESTOP`_instr(nt, testop)], [`CONST`_instr(`I32`_numtype, c)]) + rule testop{nt : numtype, c_1 : num_(nt), testop : testop_(nt), c : num_(I32_numtype)}: + `%~>%`([CONST_instr(nt, c_1) TESTOP_instr(nt, testop)], [CONST_instr(I32_numtype, c)]) -- if (c = $testop_(nt, testop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule relop{nt : numtype, c_1 : num_(nt), c_2 : num_(nt), relop : relop_(nt), c : num_(`I32`_numtype)}: - `%~>%`([`CONST`_instr(nt, c_1) `CONST`_instr(nt, c_2) `RELOP`_instr(nt, relop)], [`CONST`_instr(`I32`_numtype, c)]) + rule relop{nt : numtype, c_1 : num_(nt), c_2 : num_(nt), relop : relop_(nt), c : num_(I32_numtype)}: + `%~>%`([CONST_instr(nt, c_1) CONST_instr(nt, c_2) RELOP_instr(nt, relop)], [CONST_instr(I32_numtype, c)]) -- if (c = $relop_(nt, relop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `cvtop-val`{nt_1 : numtype, c_1 : num_(nt_1), nt_2 : numtype, cvtop : cvtop__(nt_1, nt_2), c : num_(nt_2)}: - `%~>%`([`CONST`_instr(nt_1, c_1) `CVTOP`_instr(nt_2, nt_1, cvtop)], [`CONST`_instr(nt_2, c)]) + `%~>%`([CONST_instr(nt_1, c_1) CVTOP_instr(nt_2, nt_1, cvtop)], [CONST_instr(nt_2, c)]) -- if (c <- $cvtop__(nt_1, nt_2, cvtop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `cvtop-trap`{nt_1 : numtype, c_1 : num_(nt_1), nt_2 : numtype, cvtop : cvtop__(nt_1, nt_2)}: - `%~>%`([`CONST`_instr(nt_1, c_1) `CVTOP`_instr(nt_2, nt_1, cvtop)], [`TRAP`_instr]) + `%~>%`([CONST_instr(nt_1, c_1) CVTOP_instr(nt_2, nt_1, cvtop)], [TRAP_instr]) -- if ($cvtop__(nt_1, nt_2, cvtop, c_1) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vvunop{c_1 : vec_(`V128`_Vnn), vvunop : vvunop, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VVUNOP`_instr(`V128`_vectype, vvunop)], [`VCONST`_instr(`V128`_vectype, c)]) - -- if (c <- $vvunop_(`V128`_vectype, vvunop, c_1)) + rule vvunop{c_1 : vec_(V128_Vnn), vvunop : vvunop, c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VVUNOP_instr(V128_vectype, vvunop)], [VCONST_instr(V128_vectype, c)]) + -- if (c <- $vvunop_(V128_vectype, vvunop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vvbinop{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), vvbinop : vvbinop, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VVBINOP`_instr(`V128`_vectype, vvbinop)], [`VCONST`_instr(`V128`_vectype, c)]) - -- if (c <- $vvbinop_(`V128`_vectype, vvbinop, c_1, c_2)) + rule vvbinop{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), vvbinop : vvbinop, c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VVBINOP_instr(V128_vectype, vvbinop)], [VCONST_instr(V128_vectype, c)]) + -- if (c <- $vvbinop_(V128_vectype, vvbinop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vvternop{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), vvternop : vvternop, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VVTERNOP`_instr(`V128`_vectype, vvternop)], [`VCONST`_instr(`V128`_vectype, c)]) - -- if (c <- $vvternop_(`V128`_vectype, vvternop, c_1, c_2, c_3)) + rule vvternop{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), c_3 : vec_(V128_Vnn), vvternop : vvternop, c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VCONST_instr(V128_vectype, c_3) VVTERNOP_instr(V128_vectype, vvternop)], [VCONST_instr(V128_vectype, c)]) + -- if (c <- $vvternop_(V128_vectype, vvternop, c_1, c_2, c_3)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vvtestop{c_1 : vec_(`V128`_Vnn), c : num_(`I32`_numtype)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop)], [`CONST`_instr(`I32`_numtype, c)]) - -- if (c = $inez_($vsize(`V128`_vectype), c_1)) + rule vvtestop{c_1 : vec_(V128_Vnn), c : num_(I32_numtype)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VVTESTOP_instr(V128_vectype, ANY_TRUE_vvtestop)], [CONST_instr(I32_numtype, c)]) + -- if (c = $inez_($vsize(V128_vectype), c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vunop-val`{c_1 : vec_(`V128`_Vnn), sh : shape, vunop : vunop_(sh), c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VUNOP`_instr(sh, vunop)], [`VCONST`_instr(`V128`_vectype, c)]) + rule `vunop-val`{c_1 : vec_(V128_Vnn), sh : shape, vunop : vunop_(sh), c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VUNOP_instr(sh, vunop)], [VCONST_instr(V128_vectype, c)]) -- if (c <- $vunop_(sh, vunop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vunop-trap`{c_1 : vec_(`V128`_Vnn), sh : shape, vunop : vunop_(sh)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VUNOP`_instr(sh, vunop)], [`TRAP`_instr]) + rule `vunop-trap`{c_1 : vec_(V128_Vnn), sh : shape, vunop : vunop_(sh)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VUNOP_instr(sh, vunop)], [TRAP_instr]) -- if ($vunop_(sh, vunop, c_1) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vbinop-val`{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh : shape, vbinop : vbinop_(sh), c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VBINOP`_instr(sh, vbinop)], [`VCONST`_instr(`V128`_vectype, c)]) + rule `vbinop-val`{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh : shape, vbinop : vbinop_(sh), c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VBINOP_instr(sh, vbinop)], [VCONST_instr(V128_vectype, c)]) -- if (c <- $vbinop_(sh, vbinop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vbinop-trap`{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh : shape, vbinop : vbinop_(sh)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VBINOP`_instr(sh, vbinop)], [`TRAP`_instr]) + rule `vbinop-trap`{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh : shape, vbinop : vbinop_(sh)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VBINOP_instr(sh, vbinop)], [TRAP_instr]) -- if ($vbinop_(sh, vbinop, c_1, c_2) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vternop-val`{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), sh : shape, vternop : vternop_(sh), c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VTERNOP`_instr(sh, vternop)], [`VCONST`_instr(`V128`_vectype, c)]) + rule `vternop-val`{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), c_3 : vec_(V128_Vnn), sh : shape, vternop : vternop_(sh), c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VCONST_instr(V128_vectype, c_3) VTERNOP_instr(sh, vternop)], [VCONST_instr(V128_vectype, c)]) -- if (c <- $vternop_(sh, vternop, c_1, c_2, c_3)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vternop-trap`{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), sh : shape, vternop : vternop_(sh)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VTERNOP`_instr(sh, vternop)], [`TRAP`_instr]) + rule `vternop-trap`{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), c_3 : vec_(V128_Vnn), sh : shape, vternop : vternop_(sh)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VCONST_instr(V128_vectype, c_3) VTERNOP_instr(sh, vternop)], [TRAP_instr]) -- if ($vternop_(sh, vternop, c_1, c_2, c_3) = []) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vtestop{c_1 : vec_(`V128`_Vnn), Jnn : Jnn, M : M, c : num_(`I32`_numtype), `i*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VTESTOP`_instr(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `ALL_TRUE`_vtestop_)], [`CONST`_instr(`I32`_numtype, c)]) + rule vtestop{c_1 : vec_(V128_Vnn), Jnn : Jnn, M : M, c : num_(I32_numtype), `i*` : lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))*}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VTESTOP_instr(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), ALL_TRUE_vtestop_)], [CONST_instr(I32_numtype, c)]) -- if (i*{i <- `i*`} = $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)) -- if (c!`%`_num_.0 = $prod($inez_($jsizenn(Jnn), i)!`%`_u32.0*{i <- `i*`})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vrelop{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh : shape, vrelop : vrelop_(sh), c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VRELOP`_instr(sh, vrelop)], [`VCONST`_instr(`V128`_vectype, c)]) + rule vrelop{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh : shape, vrelop : vrelop_(sh), c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VRELOP_instr(sh, vrelop)], [VCONST_instr(V128_vectype, c)]) -- if (c = $vrelop_(sh, vrelop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vshiftop{c_1 : vec_(`V128`_Vnn), i : num_(`I32`_numtype), sh : ishape, vshiftop : vshiftop_(sh), c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `CONST`_instr(`I32`_numtype, i) `VSHIFTOP`_instr(sh, vshiftop)], [`VCONST`_instr(`V128`_vectype, c)]) + rule vshiftop{c_1 : vec_(V128_Vnn), i : num_(I32_numtype), sh : ishape, vshiftop : vshiftop_(sh), c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) CONST_instr(I32_numtype, i) VSHIFTOP_instr(sh, vshiftop)], [VCONST_instr(V128_vectype, c)]) -- if (c = $vshiftop_(sh, vshiftop, c_1, i)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vbitmask{c_1 : vec_(`V128`_Vnn), sh : ishape, c : num_(`I32`_numtype)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VBITMASK`_instr(sh)], [`CONST`_instr(`I32`_numtype, c)]) + rule vbitmask{c_1 : vec_(V128_Vnn), sh : ishape, c : num_(I32_numtype)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VBITMASK_instr(sh)], [CONST_instr(I32_numtype, c)]) -- if (c = $vbitmaskop_(sh, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vswizzlop{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh : bshape, swizzlop : vswizzlop_(sh), c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VSWIZZLOP`_instr(sh, swizzlop)], [`VCONST`_instr(`V128`_vectype, c)]) + rule vswizzlop{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh : bshape, swizzlop : vswizzlop_(sh), c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VSWIZZLOP_instr(sh, swizzlop)], [VCONST_instr(V128_vectype, c)]) -- if (c = $vswizzlop_(sh, swizzlop, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vshuffle{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh : bshape, `i*` : laneidx*, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VSHUFFLE`_instr(sh, i*{i <- `i*`})], [`VCONST`_instr(`V128`_vectype, c)]) + rule vshuffle{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh : bshape, `i*` : laneidx*, c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VSHUFFLE_instr(sh, i*{i <- `i*`})], [VCONST_instr(V128_vectype, c)]) -- if (c = $vshufflop_(sh, i*{i <- `i*`}, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vsplat{Lnn : Lnn, c_1 : num_($lunpack(Lnn)), M : M, c : vec_(`V128`_Vnn)}: - `%~>%`([`CONST`_instr($lunpack(Lnn), c_1) `VSPLAT`_instr(`%X%`_shape(Lnn, `%`_dim(M)))], [`VCONST`_instr(`V128`_vectype, c)]) + rule vsplat{Lnn : Lnn, c_1 : num_($lunpack(Lnn)), M : M, c : vec_(V128_Vnn)}: + `%~>%`([CONST_instr($lunpack(Lnn), c_1) VSPLAT_instr(`%X%`_shape(Lnn, `%`_dim(M)))], [VCONST_instr(V128_vectype, c)]) -- if (c = $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lpacknum_(Lnn, c_1)^M{})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vextract_lane-num`{c_1 : vec_(`V128`_Vnn), nt : numtype, M : M, i : laneidx, c_2 : num_(nt)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), ?(), i)], [`CONST`_instr(nt, c_2)]) + rule `vextract_lane-num`{c_1 : vec_(V128_Vnn), nt : numtype, M : M, i : laneidx, c_2 : num_(nt)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VEXTRACT_LANE_instr(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), ?(), i)], [CONST_instr(nt, c_2)]) -- if (c_2 = $lanes_(`%X%`_shape((nt : numtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vextract_lane-pack`{c_1 : vec_(`V128`_Vnn), pt : packtype, M : M, sx : sx, i : laneidx, c_2 : num_(`I32`_numtype)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VEXTRACT_LANE`_instr(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), ?(sx), i)], [`CONST`_instr(`I32`_numtype, c_2)]) + rule `vextract_lane-pack`{c_1 : vec_(V128_Vnn), pt : packtype, M : M, sx : sx, i : laneidx, c_2 : num_(I32_numtype)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VEXTRACT_LANE_instr(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), ?(sx), i)], [CONST_instr(I32_numtype, c_2)]) -- if (c_2 = $extend__($psize(pt), 32, sx, $lanes_(`%X%`_shape((pt : packtype <: lanetype), `%`_dim(M)), c_1)[i!`%`_laneidx.0])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vreplace_lane{c_1 : vec_(`V128`_Vnn), Lnn : Lnn, c_2 : num_($lunpack(Lnn)), M : M, i : laneidx, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `CONST`_instr($lunpack(Lnn), c_2) `VREPLACE_LANE`_instr(`%X%`_shape(Lnn, `%`_dim(M)), i)], [`VCONST`_instr(`V128`_vectype, c)]) + rule vreplace_lane{c_1 : vec_(V128_Vnn), Lnn : Lnn, c_2 : num_($lunpack(Lnn)), M : M, i : laneidx, c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) CONST_instr($lunpack(Lnn), c_2) VREPLACE_LANE_instr(`%X%`_shape(Lnn, `%`_dim(M)), i)], [VCONST_instr(V128_vectype, c)]) -- if (c = $inv_lanes_(`%X%`_shape(Lnn, `%`_dim(M)), $lanes_(`%X%`_shape(Lnn, `%`_dim(M)), c_1)[[i!`%`_laneidx.0] = $lpacknum_(Lnn, c_2)])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vextunop{c_1 : vec_(`V128`_Vnn), sh_2 : ishape, sh_1 : ishape, vextunop : vextunop__(sh_1, sh_2), c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VEXTUNOP`_instr(sh_2, sh_1, vextunop)], [`VCONST`_instr(`V128`_vectype, c)]) + rule vextunop{c_1 : vec_(V128_Vnn), sh_2 : ishape, sh_1 : ishape, vextunop : vextunop__(sh_1, sh_2), c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VEXTUNOP_instr(sh_2, sh_1, vextunop)], [VCONST_instr(V128_vectype, c)]) -- if ($vextunop__(sh_1, sh_2, vextunop, c_1) = c) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vextbinop{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh_2 : ishape, sh_1 : ishape, vextbinop : vextbinop__(sh_1, sh_2), c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VEXTBINOP`_instr(sh_2, sh_1, vextbinop)], [`VCONST`_instr(`V128`_vectype, c)]) + rule vextbinop{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh_2 : ishape, sh_1 : ishape, vextbinop : vextbinop__(sh_1, sh_2), c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VEXTBINOP_instr(sh_2, sh_1, vextbinop)], [VCONST_instr(V128_vectype, c)]) -- if ($vextbinop__(sh_1, sh_2, vextbinop, c_1, c_2) = c) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vextternop{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), c_3 : vec_(`V128`_Vnn), sh_2 : ishape, sh_1 : ishape, vextternop : vextternop__(sh_1, sh_2), c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VCONST`_instr(`V128`_vectype, c_3) `VEXTTERNOP`_instr(sh_2, sh_1, vextternop)], [`VCONST`_instr(`V128`_vectype, c)]) + rule vextternop{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), c_3 : vec_(V128_Vnn), sh_2 : ishape, sh_1 : ishape, vextternop : vextternop__(sh_1, sh_2), c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VCONST_instr(V128_vectype, c_3) VEXTTERNOP_instr(sh_2, sh_1, vextternop)], [VCONST_instr(V128_vectype, c)]) -- if ($vextternop__(sh_1, sh_2, vextternop, c_1, c_2, c_3) = c) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vnarrow{c_1 : vec_(`V128`_Vnn), c_2 : vec_(`V128`_Vnn), sh_2 : ishape, sh_1 : ishape, sx : sx, c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCONST`_instr(`V128`_vectype, c_2) `VNARROW`_instr(sh_2, sh_1, sx)], [`VCONST`_instr(`V128`_vectype, c)]) + rule vnarrow{c_1 : vec_(V128_Vnn), c_2 : vec_(V128_Vnn), sh_2 : ishape, sh_1 : ishape, sx : sx, c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VCONST_instr(V128_vectype, c_2) VNARROW_instr(sh_2, sh_1, sx)], [VCONST_instr(V128_vectype, c)]) -- if (c = $vnarrowop__(sh_1!`%`_ishape.0, sh_2!`%`_ishape.0, sx, c_1, c_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule vcvtop{c_1 : vec_(`V128`_Vnn), sh_2 : shape, sh_1 : shape, vcvtop : vcvtop__(sh_1, sh_2), c : vec_(`V128`_Vnn)}: - `%~>%`([`VCONST`_instr(`V128`_vectype, c_1) `VCVTOP`_instr(sh_2, sh_1, vcvtop)], [`VCONST`_instr(`V128`_vectype, c)]) + rule vcvtop{c_1 : vec_(V128_Vnn), sh_2 : shape, sh_1 : shape, vcvtop : vcvtop__(sh_1, sh_2), c : vec_(V128_Vnn)}: + `%~>%`([VCONST_instr(V128_vectype, c_1) VCVTOP_instr(sh_2, sh_1, vcvtop)], [VCONST_instr(V128_vectype, c)]) -- if (c = $vcvtop__(sh_1, sh_2, vcvtop, c_1)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec def $blocktype_(state : state, blocktype : blocktype) : instrtype ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - def $blocktype_{z : state, x : idx, `t_1*` : valtype*, `t_2*` : valtype*}(z, `_IDX`_blocktype(x)) = `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})) + def $blocktype_{z : state, x : idx, `t_1*` : valtype*, `t_2*` : valtype*}(z, _IDX_blocktype(x)) = `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`})) -- Expand: `%~~%`($type(z, x), `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - def $blocktype_{z : state, `t?` : valtype?}(z, `_RESULT`_blocktype(t?{t <- `t?`})) = `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(t?{t <- `t?`}))) + def $blocktype_{z : state, `t?` : valtype?}(z, _RESULT_blocktype(t?{t <- `t?`})) = `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype(lift(t?{t <- `t?`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec relation Step_read: `%~>%`(config, instr*) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule block{z : state, m : m, `val*` : val*, bt : blocktype, `instr*` : instr*, n : n, `t_1*` : valtype*, `t_2*` : valtype*}: - `%~>%`(`%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [`BLOCK`_instr(bt, instr*{instr <- `instr*`})]), [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]) + `%~>%`(`%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [BLOCK_instr(bt, instr*{instr <- `instr*`})]), [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]) -- if ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule loop{z : state, m : m, `val*` : val*, bt : blocktype, `instr*` : instr*, `t_1*` : valtype*, n : n, `t_2*` : valtype*}: - `%~>%`(`%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [`LOOP`_instr(bt, instr*{instr <- `instr*`})]), [`LABEL_%{%}%`_instr(m, [`LOOP`_instr(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]) + `%~>%`(`%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [LOOP_instr(bt, instr*{instr <- `instr*`})]), [`LABEL_%{%}%`_instr(m, [LOOP_instr(bt, instr*{instr <- `instr*`})], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})]) -- if ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `br_on_cast-succeed`{s : store, f : frame, ref : ref, l : labelidx, rt_1 : reftype, rt_2 : reftype, rt : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)]), [(ref : ref <: instr) `BR`_instr(l)]) + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) BR_ON_CAST_instr(l, rt_1, rt_2)]), [(ref : ref <: instr) BR_instr(l)]) -- Ref_ok: `%|-%:%`(s, ref, rt) - -- Reftype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt, $inst_reftype(f.`MODULE`_frame, rt_2)) + -- Reftype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, rt, $inst_reftype(f.MODULE_frame, rt_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `br_on_cast-fail`{s : store, f : frame, ref : ref, l : labelidx, rt_1 : reftype, rt_2 : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST`_instr(l, rt_1, rt_2)]), [(ref : ref <: instr)]) + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) BR_ON_CAST_instr(l, rt_1, rt_2)]), [(ref : ref <: instr)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `br_on_cast_fail-succeed`{s : store, f : frame, ref : ref, l : labelidx, rt_1 : reftype, rt_2 : reftype, rt : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)]), [(ref : ref <: instr)]) + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) BR_ON_CAST_FAIL_instr(l, rt_1, rt_2)]), [(ref : ref <: instr)]) -- Ref_ok: `%|-%:%`(s, ref, rt) - -- Reftype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt, $inst_reftype(f.`MODULE`_frame, rt_2)) + -- Reftype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, rt, $inst_reftype(f.MODULE_frame, rt_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `br_on_cast_fail-fail`{s : store, f : frame, ref : ref, l : labelidx, rt_1 : reftype, rt_2 : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2)]), [(ref : ref <: instr) `BR`_instr(l)]) + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) BR_ON_CAST_FAIL_instr(l, rt_1, rt_2)]), [(ref : ref <: instr) BR_instr(l)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule call{z : state, x : idx, a : addr}: - `%~>%`(`%;%`_config(z, [`CALL`_instr(x)]), [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))]) - -- if ($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0] = a) + `%~>%`(`%;%`_config(z, [CALL_instr(x)]), [`REF.FUNC_ADDR`_instr(a) CALL_REF_instr(($funcinst(z)[a].TYPE_funcinst : deftype <: typeuse))]) + -- if ($moduleinst(z).FUNCS_moduleinst[x!`%`_idx.0] = a) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `call_ref-null`{z : state, ht : heaptype, yy : typeuse}: - `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `CALL_REF`_instr(yy)]), [`TRAP`_instr]) + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) CALL_REF_instr(yy)]), [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `call_ref-func`{z : state, n : n, `val*` : val*, a : addr, yy : typeuse, m : m, f : frame, `instr*` : instr*, fi : funcinst, `t_1*` : valtype*, `t_2*` : valtype*, x : idx, `t*` : valtype*}: - `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)]), [`FRAME_%{%}%`_instr(m, f, [`LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})])]) + `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) CALL_REF_instr(yy)]), [`FRAME_%{%}%`_instr(m, f, [`LABEL_%{%}%`_instr(m, [], instr*{instr <- `instr*`})])]) -- if ($funcinst(z)[a] = fi) - -- Expand: `%~~%`(fi.`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))) - -- if (fi.`CODE`_funcinst = `FUNC`_funccode(x, `LOCAL`_local(t)*{t <- `t*`}, instr*{instr <- `instr*`})) - -- if (f = {`LOCALS` ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, `MODULE` fi.`MODULE`_funcinst}) + -- Expand: `%~~%`(fi.TYPE_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))) + -- if (fi.CODE_funcinst = FUNC_funccode(x, LOCAL_local(t)*{t <- `t*`}, instr*{instr <- `instr*`})) + -- if (f = {LOCALS ?(val)^n{val <- `val*`} ++ $default_(t)*{t <- `t*`}, MODULE fi.MODULE_funcinst}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule return_call{z : state, x : idx, a : addr}: - `%~>%`(`%;%`_config(z, [`RETURN_CALL`_instr(x)]), [`REF.FUNC_ADDR`_instr(a) `RETURN_CALL_REF`_instr(($funcinst(z)[a].`TYPE`_funcinst : deftype <: typeuse))]) - -- if ($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0] = a) + `%~>%`(`%;%`_config(z, [RETURN_CALL_instr(x)]), [`REF.FUNC_ADDR`_instr(a) RETURN_CALL_REF_instr(($funcinst(z)[a].TYPE_funcinst : deftype <: typeuse))]) + -- if ($moduleinst(z).FUNCS_moduleinst[x!`%`_idx.0] = a) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `return_call_ref-label`{z : state, k : n, `instr'*` : instr*, `val*` : val*, yy : typeuse, `instr*` : instr*}: - `%~>%`(`%;%`_config(z, [`LABEL_%{%}%`_instr(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)]) + `%~>%`(`%;%`_config(z, [`LABEL_%{%}%`_instr(k, instr'*{instr' <- `instr'*`}, (val : val <: instr)*{val <- `val*`} ++ [RETURN_CALL_REF_instr(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)*{val <- `val*`} ++ [RETURN_CALL_REF_instr(yy)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `return_call_ref-handler`{z : state, k : n, `catch*` : catch*, `val*` : val*, yy : typeuse, `instr*` : instr*}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)*{val <- `val*`} ++ [`RETURN_CALL_REF`_instr(yy)]) + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(k, catch*{catch <- `catch*`}, (val : val <: instr)*{val <- `val*`} ++ [RETURN_CALL_REF_instr(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)*{val <- `val*`} ++ [RETURN_CALL_REF_instr(yy)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `return_call_ref-frame-null`{z : state, k : n, f : frame, `val*` : val*, ht : heaptype, yy : typeuse, `instr*` : instr*}: - `%~>%`(`%;%`_config(z, [`FRAME_%{%}%`_instr(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]), [`TRAP`_instr]) + `%~>%`(`%;%`_config(z, [`FRAME_%{%}%`_instr(k, f, (val : val <: instr)*{val <- `val*`} ++ [`REF.NULL`_instr(ht)] ++ [RETURN_CALL_REF_instr(yy)] ++ instr*{instr <- `instr*`})]), [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `return_call_ref-frame-addr`{z : state, k : n, f : frame, `val'*` : val*, n : n, `val*` : val*, a : addr, yy : typeuse, `instr*` : instr*, `t_1*` : valtype*, m : m, `t_2*` : valtype*}: - `%~>%`(`%;%`_config(z, [`FRAME_%{%}%`_instr(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [`RETURN_CALL_REF`_instr(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) `CALL_REF`_instr(yy)]) - -- Expand: `%~~%`($funcinst(z)[a].`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))) + `%~>%`(`%;%`_config(z, [`FRAME_%{%}%`_instr(k, f, (val' : val <: instr)*{val' <- `val'*`} ++ (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a)] ++ [RETURN_CALL_REF_instr(yy)] ++ instr*{instr <- `instr*`})]), (val : val <: instr)^n{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(a) CALL_REF_instr(yy)]) + -- Expand: `%~~%`($funcinst(z)[a].TYPE_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1^n{t_1 <- `t_1*`}), `%`_resulttype(t_2^m{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `throw_ref-null`{z : state, ht : heaptype}: - `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `THROW_REF`_instr]), [`TRAP`_instr]) + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) THROW_REF_instr]), [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `throw_ref-instrs`{z : state, `val*` : val*, a : addr, `instr*` : instr*}: - `%~>%`(`%;%`_config(z, (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a)] ++ [`THROW_REF`_instr] ++ instr*{instr <- `instr*`}), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]) + `%~>%`(`%;%`_config(z, (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a)] ++ [THROW_REF_instr] ++ instr*{instr <- `instr*`}), [`REF.EXN_ADDR`_instr(a) THROW_REF_instr]) -- if ((val*{val <- `val*`} =/= []) \/ (instr*{instr <- `instr*`} =/= [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `throw_ref-label`{z : state, n : n, `instr'*` : instr*, a : addr}: - `%~>%`(`%;%`_config(z, [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]) + `%~>%`(`%;%`_config(z, [`LABEL_%{%}%`_instr(n, instr'*{instr' <- `instr'*`}, [`REF.EXN_ADDR`_instr(a) THROW_REF_instr])]), [`REF.EXN_ADDR`_instr(a) THROW_REF_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `throw_ref-frame`{z : state, n : n, f : frame, a : addr}: - `%~>%`(`%;%`_config(z, [`FRAME_%{%}%`_instr(n, f, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]) + `%~>%`(`%;%`_config(z, [`FRAME_%{%}%`_instr(n, f, [`REF.EXN_ADDR`_instr(a) THROW_REF_instr])]), [`REF.EXN_ADDR`_instr(a) THROW_REF_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `throw_ref-handler-empty`{z : state, n : n, a : addr}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [], [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr]) + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [], [`REF.EXN_ADDR`_instr(a) THROW_REF_instr])]), [`REF.EXN_ADDR`_instr(a) THROW_REF_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `throw_ref-handler-catch`{z : state, n : n, x : idx, l : labelidx, `catch'*` : catch*, a : addr, `val*` : val*}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), (val : val <: instr)*{val <- `val*`} ++ [`BR`_instr(l)]) - -- if ($exninst(z)[a].`TAG`_exninst = $tagaddr(z)[x!`%`_idx.0]) - -- if (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst) + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [CATCH_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) THROW_REF_instr])]), (val : val <: instr)*{val <- `val*`} ++ [BR_instr(l)]) + -- if ($exninst(z)[a].TAG_exninst = $tagaddr(z)[x!`%`_idx.0]) + -- if (val*{val <- `val*`} = $exninst(z)[a].FIELDS_exninst) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `throw_ref-handler-catch_ref`{z : state, n : n, x : idx, l : labelidx, `catch'*` : catch*, a : addr, `val*` : val*}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH_REF`_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a) `BR`_instr(l)]) - -- if ($exninst(z)[a].`TAG`_exninst = $tagaddr(z)[x!`%`_idx.0]) - -- if (val*{val <- `val*`} = $exninst(z)[a].`FIELDS`_exninst) + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [CATCH_REF_catch(x, l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) THROW_REF_instr])]), (val : val <: instr)*{val <- `val*`} ++ [`REF.EXN_ADDR`_instr(a) BR_instr(l)]) + -- if ($exninst(z)[a].TAG_exninst = $tagaddr(z)[x!`%`_idx.0]) + -- if (val*{val <- `val*`} = $exninst(z)[a].FIELDS_exninst) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `throw_ref-handler-catch_all`{z : state, n : n, l : labelidx, `catch'*` : catch*, a : addr}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), [`BR`_instr(l)]) + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [CATCH_ALL_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) THROW_REF_instr])]), [BR_instr(l)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `throw_ref-handler-catch_all_ref`{z : state, n : n, l : labelidx, `catch'*` : catch*, a : addr}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [`CATCH_ALL_REF`_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), [`REF.EXN_ADDR`_instr(a) `BR`_instr(l)]) + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [CATCH_ALL_REF_catch(l)] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) THROW_REF_instr])]), [`REF.EXN_ADDR`_instr(a) BR_instr(l)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `throw_ref-handler-next`{z : state, n : n, catch : catch, `catch'*` : catch*, a : addr}: - `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]), [`HANDLER_%{%}%`_instr(n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])]) + `%~>%`(`%;%`_config(z, [`HANDLER_%{%}%`_instr(n, [catch] ++ catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) THROW_REF_instr])]), [`HANDLER_%{%}%`_instr(n, catch'*{catch' <- `catch'*`}, [`REF.EXN_ADDR`_instr(a) THROW_REF_instr])]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule try_table{z : state, m : m, `val*` : val*, bt : blocktype, `catch*` : catch*, `instr*` : instr*, n : n, `t_1*` : valtype*, `t_2*` : valtype*}: - `%~>%`(`%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [`TRY_TABLE`_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]), [`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])]) + `%~>%`(`%;%`_config(z, (val : val <: instr)^m{val <- `val*`} ++ [TRY_TABLE_instr(bt, `%`_list(catch*{catch <- `catch*`}), instr*{instr <- `instr*`})]), [`HANDLER_%{%}%`_instr(n, catch*{catch <- `catch*`}, [`LABEL_%{%}%`_instr(n, [], (val : val <: instr)^m{val <- `val*`} ++ instr*{instr <- `instr*`})])]) -- if ($blocktype_(z, bt) = `%->_%%`_instrtype(`%`_resulttype(t_1^m{t_1 <- `t_1*`}), [], `%`_resulttype(t_2^n{t_2 <- `t_2*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule local.get{z : state, x : idx, val : val}: + rule `local.get`{z : state, x : idx, val : val}: `%~>%`(`%;%`_config(z, [`LOCAL.GET`_instr(x)]), [(val : val <: instr)]) -- if ($local(z, x) = ?(val)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule global.get{z : state, x : idx, val : val}: + rule `global.get`{z : state, x : idx, val : val}: `%~>%`(`%;%`_config(z, [`GLOBAL.GET`_instr(x)]), [(val : val <: instr)]) - -- if ($global(z, x).`VALUE`_globalinst = val) + -- if ($global(z, x).VALUE_globalinst = val) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `table.get-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), x : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)]), [`TRAP`_instr]) - -- if (i!`%`_num_.0 >= |$table(z, x).`REFS`_tableinst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)]), [TRAP_instr]) + -- if (i!`%`_num_.0 >= |$table(z, x).REFS_tableinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `table.get-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), x : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)]), [($table(z, x).`REFS`_tableinst[i!`%`_num_.0] : ref <: instr)]) - -- if (i!`%`_num_.0 < |$table(z, x).`REFS`_tableinst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) `TABLE.GET`_instr(x)]), [($table(z, x).REFS_tableinst[i!`%`_num_.0] : ref <: instr)]) + -- if (i!`%`_num_.0 < |$table(z, x).REFS_tableinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule table.size{z : state, x : idx, at : addrtype, n : n, lim : limits, rt : reftype}: - `%~>%`(`%;%`_config(z, [`TABLE.SIZE`_instr(x)]), [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n))]) - -- if (|$table(z, x).`REFS`_tableinst| = n) - -- if ($table(z, x).`TYPE`_tableinst = `%%%`_tabletype(at, lim, rt)) + rule `table.size`{z : state, x : idx, at : addrtype, n : n, lim : limits, rt : reftype}: + `%~>%`(`%;%`_config(z, [`TABLE.SIZE`_instr(x)]), [CONST_instr((at : addrtype <: numtype), `%`_num_(n))]) + -- if (|$table(z, x).REFS_tableinst| = n) + -- if ($table(z, x).TYPE_tableinst = `%%%`_tabletype(at, lim, rt)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `table.fill-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]), [`TRAP`_instr]) - -- if ((i!`%`_num_.0 + n) > |$table(z, x).`REFS`_tableinst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]), [TRAP_instr]) + -- if ((i!`%`_num_.0 + n) > |$table(z, x).REFS_tableinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `table.fill-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]), []) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `table.fill-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]), [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `TABLE.SET`_instr(x) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.FILL`_instr(x)]) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.FILL`_instr(x)]), [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) `TABLE.SET`_instr(x) CONST_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.FILL`_instr(x)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `table.copy-oob`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x_1, x_2)]), [`TRAP`_instr]) - -- if (((i_1!`%`_num_.0 + n) > |$table(z, x_1).`REFS`_tableinst|) \/ ((i_2!`%`_num_.0 + n) > |$table(z, x_2).`REFS`_tableinst|)) + `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x_1, x_2)]), [TRAP_instr]) + -- if (((i_1!`%`_num_.0 + n) > |$table(z, x_1).REFS_tableinst|) \/ ((i_2!`%`_num_.0 + n) > |$table(z, x_2).REFS_tableinst|)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `table.copy-zero`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]), []) + `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `table.copy-le`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]), [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `TABLE.GET`_instr(y) `TABLE.SET`_instr(x) `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1))) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr(x, y)]) + `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]), [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) `TABLE.GET`_instr(y) `TABLE.SET`_instr(x) CONST_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1))) CONST_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1))) CONST_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr(x, y)]) -- otherwise -- if (i_1!`%`_num_.0 <= i_2!`%`_num_.0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `table.copy-gt`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]), [`CONST`_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.GET`_instr(y) `TABLE.SET`_instr(x) `CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr(x, y)]) + `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) `TABLE.COPY`_instr(x, y)]), [CONST_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) CONST_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.GET`_instr(y) `TABLE.SET`_instr(x) CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.COPY`_instr(x, y)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.init-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]), [`TRAP`_instr]) - -- if (((i!`%`_num_.0 + n) > |$table(z, x).`REFS`_tableinst|) \/ ((j!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|)) + rule `table.init-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]), [TRAP_instr]) + -- if (((i!`%`_num_.0 + n) > |$table(z, x).REFS_tableinst|) \/ ((j!`%`_num_.0 + n) > |$elem(z, y).REFS_eleminst|)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.init-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]), []) + rule `table.init-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `table.init-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]), [`CONST`_instr((at : addrtype <: numtype), i) ($elem(z, y).`REFS`_eleminst[j!`%`_num_.0] : ref <: instr) `TABLE.SET`_instr(x) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.INIT`_instr(x, y)]) + rule `table.init-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `TABLE.INIT`_instr(x, y)]), [CONST_instr((at : addrtype <: numtype), i) ($elem(z, y).REFS_eleminst[j!`%`_num_.0] : ref <: instr) `TABLE.SET`_instr(x) CONST_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((j!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `TABLE.INIT`_instr(x, y)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `load-num-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), nt : numtype, x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)]), [`TRAP`_instr]) - -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) LOAD_instr(nt, ?(), x, ao)]), [TRAP_instr]) + -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `load-num-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), nt : numtype, x : idx, ao : memarg, c : num_(nt)}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr(nt, ?(), x, ao)]), [`CONST`_instr(nt, c)]) - -- if ($nbytes_(nt, c) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) LOAD_instr(nt, ?(), x, ao)]), [CONST_instr(nt, c)]) + -- if ($nbytes_(nt, c) = $mem(z, x).BYTES_meminst[(i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) : ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `load-pack-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), Inn : Inn, n : n, sx : sx, x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)]), [`TRAP`_instr]) - -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) LOAD_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)]), [TRAP_instr]) + -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `load-pack-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), Inn : Inn, n : n, sx : sx, x : idx, ao : memarg, c : iN(n)}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `LOAD`_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)]), [`CONST`_instr((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))]) - -- if ($ibytes_(n, c) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) LOAD_instr((Inn : Inn <: numtype), ?(`%_%`_loadop_(`%`_sz(n), sx)), x, ao)]), [CONST_instr((Inn : Inn <: numtype), $extend__(n, $size((Inn : Inn <: numtype)), sx, c))]) + -- if ($ibytes_(n, c) = $mem(z, x).BYTES_meminst[(i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) : (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `vload-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)]), [`TRAP`_instr]) - -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(), x, ao)]), [TRAP_instr]) + -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + ((($vsize(V128_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), x : idx, ao : memarg, c : vec_(`V128`_Vnn)}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(), x, ao)]), [`VCONST`_instr(`V128`_vectype, c)]) - -- if ($vbytes_(`V128`_vectype, c) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `vload-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), x : idx, ao : memarg, c : vec_(V128_Vnn)}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(), x, ao)]), [VCONST_instr(V128_vectype, c)]) + -- if ($vbytes_(V128_vectype, c) = $mem(z, x).BYTES_meminst[(i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) : ((($vsize(V128_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `vload-pack-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), M : M, K : K, sx : sx, x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)]), [`TRAP`_instr]) - -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)]), [TRAP_instr]) + -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + ((((M * K) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-pack-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), M : M, K : K, sx : sx, x : idx, ao : memarg, c : vec_(`V128`_Vnn), k : nat, `j*` : iN(M)*, Jnn : Jnn}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)]), [`VCONST`_instr(`V128`_vectype, c)]) - -- (if ($ibytes_(M, j) = $mem(z, x).`BYTES`_meminst[((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]))^(k%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(M), K, sx)), x, ao)]), [VCONST_instr(V128_vectype, c)]) + -- (if ($ibytes_(M, j) = $mem(z, x).BYTES_meminst[((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + ((((k * M) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) : (((M : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]))^(k%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)]), [`TRAP`_instr]) - -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(N))), x, ao)]), [TRAP_instr]) + -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-splat-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), N : N, x : idx, ao : memarg, c : vec_(`V128`_Vnn), j : iN(N), Jnn : Jnn, M : M}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(N))), x, ao)]), [`VCONST`_instr(`V128`_vectype, c)]) - -- if ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `vload-splat-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), N : N, x : idx, ao : memarg, c : vec_(V128_Vnn), j : iN(N), Jnn : Jnn, M : M}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(N))), x, ao)]), [VCONST_instr(V128_vectype, c)]) + -- if ($ibytes_(N, j) = $mem(z, x).BYTES_meminst[(i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) -- if (N = $jsize(Jnn)) -- if ((M : nat <:> rat) = ((128 : nat <:> rat) / (N : nat <:> rat))) -- if (c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), `%`_lane_(j!`%`_iN.0)^M{})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `vload-zero-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), N : N, x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)]), [`TRAP`_instr]) - -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(N))), x, ao)]), [TRAP_instr]) + -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload-zero-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), N : N, x : idx, ao : memarg, c : vec_(`V128`_Vnn), j : iN(N)}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(N))), x, ao)]), [`VCONST`_instr(`V128`_vectype, c)]) - -- if ($ibytes_(N, j) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) - -- if (c = $extend__(N, 128, `U`_sx, j)) + rule `vload-zero-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), N : N, x : idx, ao : memarg, c : vec_(V128_Vnn), j : iN(N)}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(N))), x, ao)]), [VCONST_instr(V128_vectype, c)]) + -- if ($ibytes_(N, j) = $mem(z, x).BYTES_meminst[(i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + -- if (c = $extend__(N, 128, U_sx, j)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload_lane-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c_1 : vec_(`V128`_Vnn), N : N, x : idx, ao : memarg, j : laneidx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]), [`TRAP`_instr]) - -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) + rule `vload_lane-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c_1 : vec_(V128_Vnn), N : N, x : idx, ao : memarg, j : laneidx}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VCONST_instr(V128_vectype, c_1) VLOAD_LANE_instr(V128_vectype, `%`_sz(N), x, ao, j)]), [TRAP_instr]) + -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `vload_lane-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c_1 : vec_(`V128`_Vnn), N : N, x : idx, ao : memarg, j : laneidx, c : vec_(`V128`_Vnn), k : iN(N), Jnn : Jnn, M : M}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c_1) `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]), [`VCONST`_instr(`V128`_vectype, c)]) - -- if ($ibytes_(N, k) = $mem(z, x).`BYTES`_meminst[(i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `vload_lane-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c_1 : vec_(V128_Vnn), N : N, x : idx, ao : memarg, j : laneidx, c : vec_(V128_Vnn), k : iN(N), Jnn : Jnn, M : M}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VCONST_instr(V128_vectype, c_1) VLOAD_LANE_instr(V128_vectype, `%`_sz(N), x, ao, j)]), [VCONST_instr(V128_vectype, c)]) + -- if ($ibytes_(N, k) = $mem(z, x).BYTES_meminst[(i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) : (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) -- if (N = $jsize(Jnn)) - -- if ((M : nat <:> rat) = (($vsize(`V128`_vectype) : nat <:> rat) / (N : nat <:> rat))) + -- if ((M : nat <:> rat) = (($vsize(V128_vectype) : nat <:> rat) / (N : nat <:> rat))) -- if (c = $inv_lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), $lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c_1)[[j!`%`_laneidx.0] = `%`_lane_(k!`%`_iN.0)])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule memory.size{z : state, x : idx, at : addrtype, n : n, lim : limits}: - `%~>%`(`%;%`_config(z, [`MEMORY.SIZE`_instr(x)]), [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n))]) - -- if ((n * (64 * $Ki)) = |$mem(z, x).`BYTES`_meminst|) - -- if ($mem(z, x).`TYPE`_meminst = `%%PAGE`_memtype(at, lim)) + rule `memory.size`{z : state, x : idx, at : addrtype, n : n, lim : limits}: + `%~>%`(`%;%`_config(z, [`MEMORY.SIZE`_instr(x)]), [CONST_instr((at : addrtype <: numtype), `%`_num_(n))]) + -- if ((n * (64 * $Ki)) = |$mem(z, x).BYTES_meminst|) + -- if ($mem(z, x).TYPE_meminst = `%%PAGE`_memtype(at, lim)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `memory.fill-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]), [`TRAP`_instr]) - -- if ((i!`%`_num_.0 + n) > |$mem(z, x).`BYTES`_meminst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]), [TRAP_instr]) + -- if ((i!`%`_num_.0 + n) > |$mem(z, x).BYTES_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `memory.fill-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]), []) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `memory.fill-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]), [`CONST`_instr((at : addrtype <: numtype), i) (val : val <: instr) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.FILL`_instr(x)]) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.FILL`_instr(x)]), [CONST_instr((at : addrtype <: numtype), i) (val : val <: instr) STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0) CONST_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.FILL`_instr(x)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `memory.copy-oob`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]), [`TRAP`_instr]) - -- if (((i_1!`%`_num_.0 + n) > |$mem(z, x_1).`BYTES`_meminst|) \/ ((i_2!`%`_num_.0 + n) > |$mem(z, x_2).`BYTES`_meminst|)) + `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]), [TRAP_instr]) + -- if (((i_1!`%`_num_.0 + n) > |$mem(z, x_1).BYTES_meminst|) \/ ((i_2!`%`_num_.0 + n) > |$mem(z, x_2).BYTES_meminst|)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `memory.copy-zero`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]), []) + `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `memory.copy-le`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]), [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0) `CONST`_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1))) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr(x_1, x_2)]) + `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]), [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(8), U_sx)), x_2, $memarg0) STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0) CONST_instr((at_1 : addrtype <: numtype), `%`_num_((i_1!`%`_num_.0 + 1))) CONST_instr((at_2 : addrtype <: numtype), `%`_num_((i_2!`%`_num_.0 + 1))) CONST_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr(x_1, x_2)]) -- otherwise -- if (i_1!`%`_num_.0 <= i_2!`%`_num_.0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `memory.copy-gt`{z : state, at_1 : addrtype, i_1 : num_((at_1 : addrtype <: numtype)), at_2 : addrtype, i_2 : num_((at_2 : addrtype <: numtype)), at' : addrtype, n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]), [`CONST`_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `CONST`_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x_2, $memarg0) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0) `CONST`_instr((at_1 : addrtype <: numtype), i_1) `CONST`_instr((at_2 : addrtype <: numtype), i_2) `CONST`_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr(x_1, x_2)]) + `%~>%`(`%;%`_config(z, [CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_(n)) `MEMORY.COPY`_instr(x_1, x_2)]), [CONST_instr((at_1 : addrtype <: numtype), `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) CONST_instr((at_2 : addrtype <: numtype), `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(8), U_sx)), x_2, $memarg0) STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(8))), x_1, $memarg0) CONST_instr((at_1 : addrtype <: numtype), i_1) CONST_instr((at_2 : addrtype <: numtype), i_2) CONST_instr((at' : addrtype <: numtype), `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.COPY`_instr(x_1, x_2)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.init-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]), [`TRAP`_instr]) - -- if (((i!`%`_num_.0 + n) > |$mem(z, x).`BYTES`_meminst|) \/ ((j!`%`_num_.0 + n) > |$data(z, y).`BYTES`_datainst|)) + rule `memory.init-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]), [TRAP_instr]) + -- if (((i!`%`_num_.0 + n) > |$mem(z, x).BYTES_meminst|) \/ ((j!`%`_num_.0 + n) > |$data(z, y).BYTES_datainst|)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.init-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]), []) + rule `memory.init-zero`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `memory.init-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]), [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(`I32`_numtype, `%`_num_($data(z, y).`BYTES`_datainst[j!`%`_num_.0]!`%`_byte.0)) `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0) `CONST`_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.INIT`_instr(x, y)]) + rule `memory.init-succ`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), j : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(x, y)]), [CONST_instr((at : addrtype <: numtype), i) CONST_instr(I32_numtype, `%`_num_($data(z, y).BYTES_datainst[j!`%`_num_.0]!`%`_byte.0)) STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(8))), x, $memarg0) CONST_instr((at : addrtype <: numtype), `%`_num_((i!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((j!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `MEMORY.INIT`_instr(x, y)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `ref.null-idx`{z : state, x : idx}: - `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(`_IDX`_heaptype(x))]), [`REF.NULL`_instr(($type(z, x) : deftype <: heaptype))]) + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(_IDX_heaptype(x))]), [`REF.NULL`_instr(($type(z, x) : deftype <: heaptype))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule ref.func{z : state, x : idx}: - `%~>%`(`%;%`_config(z, [`REF.FUNC`_instr(x)]), [`REF.FUNC_ADDR`_instr($moduleinst(z).`FUNCS`_moduleinst[x!`%`_idx.0])]) + rule `ref.func`{z : state, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.FUNC`_instr(x)]), [`REF.FUNC_ADDR`_instr($moduleinst(z).FUNCS_moduleinst[x!`%`_idx.0])]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `ref.test-true`{s : store, f : frame, ref : ref, rt : reftype, rt' : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)]), [`CONST`_instr(`I32`_numtype, `%`_num_(1))]) + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)]), [CONST_instr(I32_numtype, `%`_num_(1))]) -- Ref_ok: `%|-%:%`(s, ref, rt') - -- Reftype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt', $inst_reftype(f.`MODULE`_frame, rt)) + -- Reftype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, rt', $inst_reftype(f.MODULE_frame, rt)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `ref.test-false`{s : store, f : frame, ref : ref, rt : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)]), [`CONST`_instr(`I32`_numtype, `%`_num_(0))]) + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.TEST`_instr(rt)]), [CONST_instr(I32_numtype, `%`_num_(0))]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `ref.cast-succeed`{s : store, f : frame, ref : ref, rt : reftype, rt' : reftype}: `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.CAST`_instr(rt)]), [(ref : ref <: instr)]) -- Ref_ok: `%|-%:%`(s, ref, rt') - -- Reftype_sub: `%|-%<:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `RETURN` ?(), `REFS` []}, rt', $inst_reftype(f.`MODULE`_frame, rt)) + -- Reftype_sub: `%|-%<:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], RETURN ?(), REFS []}, rt', $inst_reftype(f.MODULE_frame, rt)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `ref.cast-fail`{s : store, f : frame, ref : ref, rt : reftype}: - `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.CAST`_instr(rt)]), [`TRAP`_instr]) + `%~>%`(`%;%`_config(`%;%`_state(s, f), [(ref : ref <: instr) `REF.CAST`_instr(rt)]), [TRAP_instr]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule struct.new_default{z : state, x : idx, `val*` : val*, `mut?*` : mut?*, `zt*` : storagetype*}: + rule `struct.new_default`{z : state, x : idx, `val*` : val*, `mut?*` : mut?*, `zt*` : storagetype*}: `%~>%`(`%;%`_config(z, [`STRUCT.NEW_DEFAULT`_instr(x)]), (val : val <: instr)*{val <- `val*`} ++ [`STRUCT.NEW`_instr(x)]) - -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) + -- Expand: `%~~%`($type(z, x), STRUCT_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) -- (if ($default_($unpack(zt)) = ?(val)))*{val <- `val*`, zt <- `zt*`} ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `struct.get-null`{z : state, ht : heaptype, `sx?` : sx?, x : idx, i : u32}: - `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)]), [`TRAP`_instr]) + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)]), [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `struct.get-struct`{z : state, a : addr, `sx?` : sx?, x : idx, i : u32, `zt*` : storagetype*, `mut?*` : mut?*}: - `%~>%`(`%;%`_config(z, [`REF.STRUCT_ADDR`_instr(a) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)]), [($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], sx?{sx <- `sx?`}, $structinst(z)[a].`FIELDS`_structinst[i!`%`_u32.0]) : val <: instr)]) - -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) + `%~>%`(`%;%`_config(z, [`REF.STRUCT_ADDR`_instr(a) `STRUCT.GET`_instr(sx?{sx <- `sx?`}, x, i)]), [($unpackfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], sx?{sx <- `sx?`}, $structinst(z)[a].FIELDS_structinst[i!`%`_u32.0]) : val <: instr)]) + -- Expand: `%~~%`($type(z, x), STRUCT_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule array.new_default{z : state, n : n, x : idx, val : val, `mut?` : mut?, zt : storagetype}: - `%~>%`(`%;%`_config(z, [`CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DEFAULT`_instr(x)]), (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule `array.new_default`{z : state, n : n, x : idx, val : val, `mut?` : mut?, zt : storagetype}: + `%~>%`(`%;%`_config(z, [CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.NEW_DEFAULT`_instr(x)]), (val : val <: instr)^n{} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]) + -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) -- if ($default_($unpack(zt)) = ?(val)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.new_elem-oob`{z : state, i : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)]), [`TRAP`_instr]) - -- if ((i!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|) + rule `array.new_elem-oob`{z : state, i : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)]), [TRAP_instr]) + -- if ((i!`%`_num_.0 + n) > |$elem(z, y).REFS_eleminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.new_elem-alloc`{z : state, i : num_(`I32`_numtype), n : n, x : idx, y : idx, `ref*` : ref*}: - `%~>%`(`%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)]), (ref : ref <: instr)^n{ref <- `ref*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]) - -- if (ref^n{ref <- `ref*`} = $elem(z, y).`REFS`_eleminst[i!`%`_num_.0 : n]) + rule `array.new_elem-alloc`{z : state, i : num_(I32_numtype), n : n, x : idx, y : idx, `ref*` : ref*}: + `%~>%`(`%;%`_config(z, [CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.NEW_ELEM`_instr(x, y)]), (ref : ref <: instr)^n{ref <- `ref*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]) + -- if (ref^n{ref <- `ref*`} = $elem(z, y).REFS_eleminst[i!`%`_num_.0 : n]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.new_data-oob`{z : state, i : num_(`I32`_numtype), n : n, x : idx, y : idx, `mut?` : mut?, zt : storagetype}: - `%~>%`(`%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)]), [`TRAP`_instr]) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) - -- if ((i!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst|) + rule `array.new_data-oob`{z : state, i : num_(I32_numtype), n : n, x : idx, y : idx, `mut?` : mut?, zt : storagetype}: + `%~>%`(`%;%`_config(z, [CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)]), [TRAP_instr]) + -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + -- if ((i!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).BYTES_datainst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.new_data-num`{z : state, i : num_(`I32`_numtype), n : n, x : idx, y : idx, zt : storagetype, `c*` : lit_(zt)*, `mut?` : mut?}: - `%~>%`(`%;%`_config(z, [`CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)]), $const($cunpack(zt), $cunpacknum_(zt, c))^n{c <- `c*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) - -- if ($concatn_(syntax byte, $zbytes_(zt, c)^n{c <- `c*`}, ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) = $data(z, y).`BYTES`_datainst[i!`%`_num_.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + rule `array.new_data-num`{z : state, i : num_(I32_numtype), n : n, x : idx, y : idx, zt : storagetype, `c*` : lit_(zt)*, `mut?` : mut?}: + `%~>%`(`%;%`_config(z, [CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.NEW_DATA`_instr(x, y)]), $const($cunpack(zt), $cunpacknum_(zt, c))^n{c <- `c*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]) + -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + -- if ($concatn_(syntax byte, $zbytes_(zt, c)^n{c <- `c*`}, ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) = $data(z, y).BYTES_datainst[i!`%`_num_.0 : ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.get-null`{z : state, ht : heaptype, i : num_(`I32`_numtype), `sx?` : sx?, x : idx}: - `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]), [`TRAP`_instr]) + rule `array.get-null`{z : state, ht : heaptype, i : num_(I32_numtype), `sx?` : sx?, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) CONST_instr(I32_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]), [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.get-oob`{z : state, a : addr, i : num_(`I32`_numtype), `sx?` : sx?, x : idx}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]), [`TRAP`_instr]) - -- if (i!`%`_num_.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst|) + rule `array.get-oob`{z : state, a : addr, i : num_(I32_numtype), `sx?` : sx?, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]), [TRAP_instr]) + -- if (i!`%`_num_.0 >= |$arrayinst(z)[a].FIELDS_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.get-array`{z : state, a : addr, i : num_(`I32`_numtype), `sx?` : sx?, x : idx, zt : storagetype, `mut?` : mut?}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]), [($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].`FIELDS`_arrayinst[i!`%`_num_.0]) : val <: instr)]) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule `array.get-array`{z : state, a : addr, i : num_(I32_numtype), `sx?` : sx?, x : idx, zt : storagetype, `mut?` : mut?}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x)]), [($unpackfield_(zt, sx?{sx <- `sx?`}, $arrayinst(z)[a].FIELDS_arrayinst[i!`%`_num_.0]) : val <: instr)]) + -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `array.len-null`{z : state, ht : heaptype}: - `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `ARRAY.LEN`_instr]), [`TRAP`_instr]) + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `ARRAY.LEN`_instr]), [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rule `array.len-array`{z : state, a : addr}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `ARRAY.LEN`_instr]), [`CONST`_instr(`I32`_numtype, `%`_num_(|$arrayinst(z)[a].`FIELDS`_arrayinst|))]) + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `ARRAY.LEN`_instr]), [CONST_instr(I32_numtype, `%`_num_(|$arrayinst(z)[a].FIELDS_arrayinst|))]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.fill-null`{z : state, ht : heaptype, i : num_(`I32`_numtype), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]), [`TRAP`_instr]) + rule `array.fill-null`{z : state, ht : heaptype, i : num_(I32_numtype), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) CONST_instr(I32_numtype, i) (val : val <: instr) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]), [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.fill-oob`{z : state, a : addr, i : num_(`I32`_numtype), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]), [`TRAP`_instr]) - -- if ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst|) + rule `array.fill-oob`{z : state, a : addr, i : num_(I32_numtype), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) (val : val <: instr) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]), [TRAP_instr]) + -- if ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].FIELDS_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.fill-zero`{z : state, a : addr, i : num_(`I32`_numtype), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]), []) + rule `array.fill-zero`{z : state, a : addr, i : num_(I32_numtype), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) (val : val <: instr) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.fill-succ`{z : state, a : addr, i : num_(`I32`_numtype), val : val, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]), [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.FILL`_instr(x)]) + rule `array.fill-succ`{z : state, a : addr, i : num_(I32_numtype), val : val, n : n, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) (val : val <: instr) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.FILL`_instr(x)]), [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, `%`_num_((i!`%`_num_.0 + 1))) (val : val <: instr) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.FILL`_instr(x)]) -- otherwise ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-null1`{z : state, ht_1 : heaptype, i_1 : num_(`I32`_numtype), ref : ref, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht_1) `CONST`_instr(`I32`_numtype, i_1) (ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`TRAP`_instr]) + rule `array.copy-null1`{z : state, ht_1 : heaptype, i_1 : num_(I32_numtype), ref : ref, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht_1) CONST_instr(I32_numtype, i_1) (ref : ref <: instr) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-null2`{z : state, ref : ref, i_1 : num_(`I32`_numtype), ht_2 : heaptype, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [(ref : ref <: instr) `CONST`_instr(`I32`_numtype, i_1) `REF.NULL`_instr(ht_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`TRAP`_instr]) + rule `array.copy-null2`{z : state, ref : ref, i_1 : num_(I32_numtype), ht_2 : heaptype, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [(ref : ref <: instr) CONST_instr(I32_numtype, i_1) `REF.NULL`_instr(ht_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-oob1`{z : state, a_1 : addr, i_1 : num_(`I32`_numtype), a_2 : addr, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`TRAP`_instr]) - -- if ((i_1!`%`_num_.0 + n) > |$arrayinst(z)[a_1].`FIELDS`_arrayinst|) + rule `array.copy-oob1`{z : state, a_1 : addr, i_1 : num_(I32_numtype), a_2 : addr, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) CONST_instr(I32_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [TRAP_instr]) + -- if ((i_1!`%`_num_.0 + n) > |$arrayinst(z)[a_1].FIELDS_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-oob2`{z : state, a_1 : addr, i_1 : num_(`I32`_numtype), a_2 : addr, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`TRAP`_instr]) - -- if ((i_2!`%`_num_.0 + n) > |$arrayinst(z)[a_2].`FIELDS`_arrayinst|) + rule `array.copy-oob2`{z : state, a_1 : addr, i_1 : num_(I32_numtype), a_2 : addr, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) CONST_instr(I32_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [TRAP_instr]) + -- if ((i_2!`%`_num_.0 + n) > |$arrayinst(z)[a_2].FIELDS_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-zero`{z : state, a_1 : addr, i_1 : num_(`I32`_numtype), a_2 : addr, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), []) + rule `array.copy-zero`{z : state, a_1 : addr, i_1 : num_(I32_numtype), a_2 : addr, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) CONST_instr(I32_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-le`{z : state, a_1 : addr, i_1 : num_(`I32`_numtype), a_2 : addr, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx, `sx?` : sx?, `mut?` : mut?, zt_2 : storagetype}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr(x_1) `REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, `%`_num_((i_1!`%`_num_.0 + 1))) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, `%`_num_((i_2!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr(x_1, x_2)]) + rule `array.copy-le`{z : state, a_1 : addr, i_1 : num_(I32_numtype), a_2 : addr, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx, `sx?` : sx?, `mut?` : mut?, zt_2 : storagetype}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) CONST_instr(I32_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`REF.ARRAY_ADDR`_instr(a_1) CONST_instr(I32_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) CONST_instr(I32_numtype, i_2) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr(x_1) `REF.ARRAY_ADDR`_instr(a_1) CONST_instr(I32_numtype, `%`_num_((i_1!`%`_num_.0 + 1))) `REF.ARRAY_ADDR`_instr(a_2) CONST_instr(I32_numtype, `%`_num_((i_2!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr(x_1, x_2)]) -- otherwise - -- Expand: `%~~%`($type(z, x_2), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))) + -- Expand: `%~~%`($type(z, x_2), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))) -- if ((i_1!`%`_num_.0 <= i_2!`%`_num_.0) /\ (sx?{sx <- `sx?`} = $sx(zt_2))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.copy-gt`{z : state, a_1 : addr, i_1 : num_(`I32`_numtype), a_2 : addr, i_2 : num_(`I32`_numtype), n : n, x_1 : idx, x_2 : idx, `sx?` : sx?, `mut?` : mut?, zt_2 : storagetype}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr(x_1) `REF.ARRAY_ADDR`_instr(a_1) `CONST`_instr(`I32`_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) `CONST`_instr(`I32`_numtype, i_2) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr(x_1, x_2)]) + rule `array.copy-gt`{z : state, a_1 : addr, i_1 : num_(I32_numtype), a_2 : addr, i_2 : num_(I32_numtype), n : n, x_1 : idx, x_2 : idx, `sx?` : sx?, `mut?` : mut?, zt_2 : storagetype}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a_1) CONST_instr(I32_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.COPY`_instr(x_1, x_2)]), [`REF.ARRAY_ADDR`_instr(a_1) CONST_instr(I32_numtype, `%`_num_(((((i_1!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `REF.ARRAY_ADDR`_instr(a_2) CONST_instr(I32_numtype, `%`_num_(((((i_2!`%`_num_.0 + n) : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.GET`_instr(sx?{sx <- `sx?`}, x_2) `ARRAY.SET`_instr(x_1) `REF.ARRAY_ADDR`_instr(a_1) CONST_instr(I32_numtype, i_1) `REF.ARRAY_ADDR`_instr(a_2) CONST_instr(I32_numtype, i_2) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.COPY`_instr(x_1, x_2)]) -- otherwise - -- Expand: `%~~%`($type(z, x_2), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))) + -- Expand: `%~~%`($type(z, x_2), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt_2))) -- if (sx?{sx <- `sx?`} = $sx(zt_2)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-null`{z : state, ht : heaptype, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), [`TRAP`_instr]) + rule `array.init_elem-null`{z : state, ht : heaptype, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-oob1`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), [`TRAP`_instr]) - -- if ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst|) + rule `array.init_elem-oob1`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), [TRAP_instr]) + -- if ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].FIELDS_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-oob2`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), [`TRAP`_instr]) - -- if ((j!`%`_num_.0 + n) > |$elem(z, y).`REFS`_eleminst|) + rule `array.init_elem-oob2`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), [TRAP_instr]) + -- if ((j!`%`_num_.0 + n) > |$elem(z, y).REFS_eleminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-zero`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), []) + rule `array.init_elem-zero`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_elem-succ`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx, ref : ref}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (ref : ref <: instr) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_ELEM`_instr(x, y)]) + rule `array.init_elem-succ`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx, ref : ref}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.INIT_ELEM`_instr(x, y)]), [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) (ref : ref <: instr) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, `%`_num_((i!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((j!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_ELEM`_instr(x, y)]) -- otherwise - -- if (ref = $elem(z, y).`REFS`_eleminst[j!`%`_num_.0]) + -- if (ref = $elem(z, y).REFS_eleminst[j!`%`_num_.0]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-null`{z : state, ht : heaptype, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), [`TRAP`_instr]) + rule `array.init_data-null`{z : state, ht : heaptype, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), [TRAP_instr]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-oob1`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), [`TRAP`_instr]) - -- if ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].`FIELDS`_arrayinst|) + rule `array.init_data-oob1`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), [TRAP_instr]) + -- if ((i!`%`_num_.0 + n) > |$arrayinst(z)[a].FIELDS_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-oob2`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx, `mut?` : mut?, zt : storagetype}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), [`TRAP`_instr]) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) - -- if ((j!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).`BYTES`_datainst|) + rule `array.init_data-oob2`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx, `mut?` : mut?, zt : storagetype}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), [TRAP_instr]) + -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + -- if ((j!`%`_num_.0 + ((((n * $zsize(zt)) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$data(z, y).BYTES_datainst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-zero`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), []) + rule `array.init_data-zero`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), []) -- otherwise -- if (n = 0) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec - rule `array.init_data-num`{z : state, a : addr, i : num_(`I32`_numtype), j : num_(`I32`_numtype), n : n, x : idx, y : idx, zt : storagetype, c : lit_(zt), `mut?` : mut?}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) `CONST`_instr(`I32`_numtype, j) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) $const($cunpack(zt), $cunpacknum_(zt, c)) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, `%`_num_((i!`%`_num_.0 + 1))) `CONST`_instr(`I32`_numtype, `%`_num_((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))) `CONST`_instr(`I32`_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_DATA`_instr(x, y)]) + rule `array.init_data-num`{z : state, a : addr, i : num_(I32_numtype), j : num_(I32_numtype), n : n, x : idx, y : idx, zt : storagetype, c : lit_(zt), `mut?` : mut?}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) CONST_instr(I32_numtype, j) CONST_instr(I32_numtype, `%`_num_(n)) `ARRAY.INIT_DATA`_instr(x, y)]), [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) $const($cunpack(zt), $cunpacknum_(zt, c)) `ARRAY.SET`_instr(x) `REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, `%`_num_((i!`%`_num_.0 + 1))) CONST_instr(I32_numtype, `%`_num_((j!`%`_num_.0 + ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)))) CONST_instr(I32_numtype, `%`_num_((((n : nat <:> int) - (1 : nat <:> int)) : int <:> nat))) `ARRAY.INIT_DATA`_instr(x, y)]) -- otherwise - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) - -- if ($zbytes_(zt, c) = $data(z, y).`BYTES`_datainst[j!`%`_num_.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) + -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + -- if ($zbytes_(zt, c) = $data(z, y).BYTES_datainst[j!`%`_num_.0 : ((($zsize(zt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)]) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec rec { @@ -93717,132 +6911,132 @@ relation Step: `%~>%`(config, config) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:227.1-231.49 rule throw{z : state, n : n, `val*` : val*, x : idx, exn : exninst, a : addr, `t*` : valtype*}: - `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`THROW`_instr(x)]), `%;%`_config($add_exninst(z, [exn]), [`REF.EXN_ADDR`_instr(a) `THROW_REF`_instr])) - -- Expand: `%~~%`($as_deftype($tag(z, x).`TYPE`_taginst), `FUNC%->%`_comptype(`%`_resulttype(t^n{t <- `t*`}), `%`_resulttype([]))) + `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [THROW_instr(x)]), `%;%`_config($add_exninst(z, [exn]), [`REF.EXN_ADDR`_instr(a) THROW_REF_instr])) + -- Expand: `%~~%`($as_deftype($tag(z, x).TYPE_taginst), `FUNC%->%`_comptype(`%`_resulttype(t^n{t <- `t*`}), `%`_resulttype([]))) -- if (a = |$exninst(z)|) - -- if (exn = {`TAG` $tagaddr(z)[x!`%`_idx.0], `FIELDS` val^n{val <- `val*`}}) + -- if (exn = {TAG $tagaddr(z)[x!`%`_idx.0], FIELDS val^n{val <- `val*`}}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:302.1-303.56 - rule local.set{z : state, val : val, x : idx}: + rule `local.set`{z : state, val : val, x : idx}: `%~>%`(`%;%`_config(z, [(val : val <: instr) `LOCAL.SET`_instr(x)]), `%;%`_config($with_local(z, x, val), [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:315.1-316.58 - rule global.set{z : state, val : val, x : idx}: + rule `global.set`{z : state, val : val, x : idx}: `%~>%`(`%;%`_config(z, [(val : val <: instr) `GLOBAL.SET`_instr(x)]), `%;%`_config($with_global(z, x, val), [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:329.1-331.33 rule `table.set-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), ref : ref, x : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)]), `%;%`_config(z, [`TRAP`_instr])) - -- if (i!`%`_num_.0 >= |$table(z, x).`REFS`_tableinst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)]), `%;%`_config(z, [TRAP_instr])) + -- if (i!`%`_num_.0 >= |$table(z, x).REFS_tableinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:333.1-335.32 rule `table.set-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), ref : ref, x : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)]), `%;%`_config($with_table(z, x, i!`%`_num_.0, ref), [])) - -- if (i!`%`_num_.0 < |$table(z, x).`REFS`_tableinst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) (ref : ref <: instr) `TABLE.SET`_instr(x)]), `%;%`_config($with_table(z, x, i!`%`_num_.0, ref), [])) + -- if (i!`%`_num_.0 < |$table(z, x).REFS_tableinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:344.1-347.46 rule `table.grow-succeed`{z : state, ref : ref, at : addrtype, n : n, x : idx, ti : tableinst}: - `%~>%`(`%;%`_config(z, [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)]), `%;%`_config($with_tableinst(z, x, ti), [`CONST`_instr((at : addrtype <: numtype), `%`_num_(|$table(z, x).`REFS`_tableinst|))])) + `%~>%`(`%;%`_config(z, [(ref : ref <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)]), `%;%`_config($with_tableinst(z, x, ti), [CONST_instr((at : addrtype <: numtype), `%`_num_(|$table(z, x).REFS_tableinst|))])) -- if (ti = $growtable($table(z, x), n, ref)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:349.1-350.87 rule `table.grow-fail`{z : state, ref : ref, at : addrtype, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [(ref : ref <: instr) `CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)]), `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])) + `%~>%`(`%;%`_config(z, [(ref : ref <: instr) CONST_instr((at : addrtype <: numtype), `%`_num_(n)) `TABLE.GROW`_instr(x)]), `%;%`_config(z, [CONST_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:410.1-411.51 - rule elem.drop{z : state, x : idx}: + rule `elem.drop`{z : state, x : idx}: `%~>%`(`%;%`_config(z, [`ELEM.DROP`_instr(x)]), `%;%`_config($with_elem(z, x, []), [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:494.1-497.60 rule `store-num-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), nt : numtype, c : num_(nt), x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)]), `%;%`_config(z, [`TRAP`_instr])) - -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(nt, c) STORE_instr(nt, ?(), x, ao)]), `%;%`_config(z, [TRAP_instr])) + -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:499.1-503.29 rule `store-num-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), nt : numtype, c : num_(nt), x : idx, ao : memarg, `b*` : byte*}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr(nt, c) `STORE`_instr(nt, ?(), x, ao)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr(nt, c) STORE_instr(nt, ?(), x, ao)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0), ((($size(nt) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) -- if (b*{b <- `b*`} = $nbytes_(nt, c)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:505.1-508.52 rule `store-pack-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), Inn : Inn, c : num_((Inn : Inn <: numtype)), n : n, x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)]), `%;%`_config(z, [`TRAP`_instr])) - -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr((Inn : Inn <: numtype), c) STORE_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)]), `%;%`_config(z, [TRAP_instr])) + -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:510.1-514.52 rule `store-pack-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), Inn : Inn, c : num_((Inn : Inn <: numtype)), n : n, x : idx, ao : memarg, `b*` : byte*}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `CONST`_instr((Inn : Inn <: numtype), c) `STORE`_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) CONST_instr((Inn : Inn <: numtype), c) STORE_instr((Inn : Inn <: numtype), ?(`%`_storeop_(`%`_sz(n))), x, ao)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0), (((n : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) -- if (b*{b <- `b*`} = $ibytes_(n, $wrap__($size((Inn : Inn <: numtype)), n, c))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:516.1-519.63 - rule `vstore-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(`V128`_Vnn), x : idx, ao : memarg}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)]), `%;%`_config(z, [`TRAP`_instr])) - -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).`BYTES`_meminst|) + rule `vstore-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(V128_Vnn), x : idx, ao : memarg}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VCONST_instr(V128_vectype, c) VSTORE_instr(V128_vectype, x, ao)]), `%;%`_config(z, [TRAP_instr])) + -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + ((($vsize(V128_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat)) > |$mem(z, x).BYTES_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:521.1-524.31 - rule `vstore-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(`V128`_Vnn), x : idx, ao : memarg, `b*` : byte*}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE`_instr(`V128`_vectype, x, ao)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), ((($vsize(`V128`_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) - -- if (b*{b <- `b*`} = $vbytes_(`V128`_vectype, c)) + rule `vstore-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(V128_Vnn), x : idx, ao : memarg, `b*` : byte*}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VCONST_instr(V128_vectype, c) VSTORE_instr(V128_vectype, x, ao)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0), ((($vsize(V128_vectype) : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) + -- if (b*{b <- `b*`} = $vbytes_(V128_vectype, c)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:527.1-530.50 - rule `vstore_lane-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(`V128`_Vnn), N : N, x : idx, ao : memarg, j : laneidx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]), `%;%`_config(z, [`TRAP`_instr])) - -- if (((i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0) + N) > |$mem(z, x).`BYTES`_meminst|) + rule `vstore_lane-oob`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(V128_Vnn), N : N, x : idx, ao : memarg, j : laneidx}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VCONST_instr(V128_vectype, c) VSTORE_LANE_instr(V128_vectype, `%`_sz(N), x, ao, j)]), `%;%`_config(z, [TRAP_instr])) + -- if (((i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0) + N) > |$mem(z, x).BYTES_meminst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:532.1-537.49 - rule `vstore_lane-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(`V128`_Vnn), N : N, x : idx, ao : memarg, j : laneidx, `b*` : byte*, Jnn : Jnn, M : M}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), i) `VCONST`_instr(`V128`_vectype, c) `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(N), x, ao, j)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.`OFFSET`_memarg!`%`_u64.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) + rule `vstore_lane-val`{z : state, at : addrtype, i : num_((at : addrtype <: numtype)), c : vec_(V128_Vnn), N : N, x : idx, ao : memarg, j : laneidx, `b*` : byte*, Jnn : Jnn, M : M}: + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), i) VCONST_instr(V128_vectype, c) VSTORE_LANE_instr(V128_vectype, `%`_sz(N), x, ao, j)]), `%;%`_config($with_mem(z, x, (i!`%`_num_.0 + ao.OFFSET_memarg!`%`_u64.0), (((N : nat <:> rat) / (8 : nat <:> rat)) : rat <:> nat), b*{b <- `b*`}), [])) -- if (N = $jsize(Jnn)) -- if ((M : nat <:> rat) = ((128 : nat <:> rat) / (N : nat <:> rat))) -- if (b*{b <- `b*`} = $ibytes_(N, `%`_iN($lanes_(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M)), c)[j!`%`_laneidx.0]!`%`_lane_.0))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:546.1-549.37 rule `memory.grow-succeed`{z : state, at : addrtype, n : n, x : idx, mi : meminst}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)]), `%;%`_config($with_meminst(z, x, mi), [`CONST`_instr((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).`BYTES`_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)]), `%;%`_config($with_meminst(z, x, mi), [CONST_instr((at : addrtype <: numtype), `%`_num_((((|$mem(z, x).BYTES_meminst| : nat <:> rat) / ((64 * $Ki) : nat <:> rat)) : rat <:> nat)))])) -- if (mi = $growmem($mem(z, x), n)) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:551.1-552.84 rule `memory.grow-fail`{z : state, at : addrtype, n : n, x : idx}: - `%~>%`(`%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)]), `%;%`_config(z, [`CONST`_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])) + `%~>%`(`%;%`_config(z, [CONST_instr((at : addrtype <: numtype), `%`_num_(n)) `MEMORY.GROW`_instr(x)]), `%;%`_config(z, [CONST_instr((at : addrtype <: numtype), `%`_num_($inv_signed_($size((at : addrtype <: numtype)), - (1 : nat <:> int))))])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:612.1-613.51 - rule data.drop{z : state, x : idx}: + rule `data.drop`{z : state, x : idx}: `%~>%`(`%;%`_config(z, [`DATA.DROP`_instr(x)]), `%;%`_config($with_data(z, x, []), [])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:693.1-697.65 - rule struct.new{z : state, n : n, `val*` : val*, x : idx, si : structinst, a : addr, `mut?*` : mut?*, `zt*` : storagetype*}: + rule `struct.new`{z : state, n : n, `val*` : val*, x : idx, si : structinst, a : addr, `mut?*` : mut?*, `zt*` : storagetype*}: `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`STRUCT.NEW`_instr(x)]), `%;%`_config($add_structinst(z, [si]), [`REF.STRUCT_ADDR`_instr(a)])) - -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`}))) + -- Expand: `%~~%`($type(z, x), STRUCT_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)^n{`mut?` <- `mut?*`, zt <- `zt*`}))) -- if (a = |$structinst(z)|) - -- if (si = {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}}) + -- if (si = {TYPE $type(z, x), FIELDS $packfield_(zt, val)^n{val <- `val*`, zt <- `zt*`}}) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:714.1-715.53 rule `struct.set-null`{z : state, ht : heaptype, val : val, x : idx, i : u32}: - `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) (val : val <: instr) `STRUCT.SET`_instr(x, i)]), `%;%`_config(z, [`TRAP`_instr])) + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) (val : val <: instr) `STRUCT.SET`_instr(x, i)]), `%;%`_config(z, [TRAP_instr])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:717.1-720.46 rule `struct.set-struct`{z : state, a : addr, val : val, x : idx, i : u32, `zt*` : storagetype*, `mut?*` : mut?*}: `%~>%`(`%;%`_config(z, [`REF.STRUCT_ADDR`_instr(a) (val : val <: instr) `STRUCT.SET`_instr(x, i)]), `%;%`_config($with_struct(z, a, i!`%`_u32.0, $packfield_(zt*{zt <- `zt*`}[i!`%`_u32.0], val)), [])) - -- Expand: `%~~%`($type(z, x), `STRUCT`_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) + -- Expand: `%~~%`($type(z, x), STRUCT_comptype(`%`_list(`%%`_fieldtype(mut?{mut <- `mut?`}, zt)*{`mut?` <- `mut?*`, zt <- `zt*`}))) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:733.1-738.65 - rule array.new_fixed{z : state, n : n, `val*` : val*, x : idx, ai : arrayinst, a : addr, `mut?` : mut?, zt : storagetype}: + rule `array.new_fixed`{z : state, n : n, `val*` : val*, x : idx, ai : arrayinst, a : addr, `mut?` : mut?, zt : storagetype}: `%~>%`(`%;%`_config(z, (val : val <: instr)^n{val <- `val*`} ++ [`ARRAY.NEW_FIXED`_instr(x, `%`_u32(n))]), `%;%`_config($add_arrayinst(z, [ai]), [`REF.ARRAY_ADDR`_instr(a)])) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) - -- if ((a = |$arrayinst(z)|) /\ (ai = {`TYPE` $type(z, x), `FIELDS` $packfield_(zt, val)^n{val <- `val*`}})) + -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + -- if ((a = |$arrayinst(z)|) /\ (ai = {TYPE $type(z, x), FIELDS $packfield_(zt, val)^n{val <- `val*`}})) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:778.1-779.64 - rule `array.set-null`{z : state, ht : heaptype, i : num_(`I32`_numtype), val : val, x : idx}: - `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]), `%;%`_config(z, [`TRAP`_instr])) + rule `array.set-null`{z : state, ht : heaptype, i : num_(I32_numtype), val : val, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.NULL`_instr(ht) CONST_instr(I32_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]), `%;%`_config(z, [TRAP_instr])) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:781.1-783.39 - rule `array.set-oob`{z : state, a : addr, i : num_(`I32`_numtype), val : val, x : idx}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]), `%;%`_config(z, [`TRAP`_instr])) - -- if (i!`%`_num_.0 >= |$arrayinst(z)[a].`FIELDS`_arrayinst|) + rule `array.set-oob`{z : state, a : addr, i : num_(I32_numtype), val : val, x : idx}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]), `%;%`_config(z, [TRAP_instr])) + -- if (i!`%`_num_.0 >= |$arrayinst(z)[a].FIELDS_arrayinst|) ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec:785.1-788.44 - rule `array.set-array`{z : state, a : addr, i : num_(`I32`_numtype), val : val, x : idx, zt : storagetype, `mut?` : mut?}: - `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) `CONST`_instr(`I32`_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]), `%;%`_config($with_array(z, a, i!`%`_num_.0, $packfield_(zt, val)), [])) - -- Expand: `%~~%`($type(z, x), `ARRAY`_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) + rule `array.set-array`{z : state, a : addr, i : num_(I32_numtype), val : val, x : idx, zt : storagetype, `mut?` : mut?}: + `%~>%`(`%;%`_config(z, [`REF.ARRAY_ADDR`_instr(a) CONST_instr(I32_numtype, i) (val : val <: instr) `ARRAY.SET`_instr(x)]), `%;%`_config($with_array(z, a, i!`%`_num_.0, $packfield_(zt, val)), [])) + -- Expand: `%~~%`($type(z, x), ARRAY_comptype(`%%`_fieldtype(mut?{mut <- `mut?`}, zt))) } ;; ../../../../specification/wasm-3.0/4.3-execution.instructions.spectec @@ -93878,7 +7072,7 @@ def $alloctypes(type*) : deftype* ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec:9.1-13.24 def $alloctypes{`type'*` : type*, type : type, `deftype'*` : deftype*, `deftype*` : deftype*, rectype : rectype, x : idx}(type'*{type' <- `type'*`} ++ [type]) = deftype'*{deftype' <- `deftype'*`} ++ deftype*{deftype <- `deftype*`} -- if (deftype'*{deftype' <- `deftype'*`} = $alloctypes(type'*{type' <- `type'*`})) - -- if (type = `TYPE`_type(rectype)) + -- if (type = TYPE_type(rectype)) -- if (deftype*{deftype <- `deftype*`} = $subst_all_deftypes($rolldt(x, rectype), (deftype' : deftype <: typeuse)*{deftype' <- `deftype'*`})) -- if (x!`%`_idx.0 = |deftype'*{deftype' <- `deftype'*`}|) } @@ -93886,8 +7080,8 @@ def $alloctypes(type*) : deftype* ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $alloctag(store : store, tagtype : tagtype) : (store, tagaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctag{s : store, tagtype : tagtype, taginst : taginst}(s, tagtype) = (s +++ {`TAGS` [taginst], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`TAGS`_store|) - -- if (taginst = {`TYPE` tagtype}) + def $alloctag{s : store, tagtype : tagtype, taginst : taginst}(s, tagtype) = (s +++ {TAGS [taginst], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], STRUCTS [], ARRAYS [], EXNS []}, |s.TAGS_store|) + -- if (taginst = {TYPE tagtype}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -93905,8 +7099,8 @@ def $alloctags(store : store, tagtype*) : (store, tagaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocglobal(store : store, globaltype : globaltype, val : val) : (store, globaladdr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocglobal{s : store, globaltype : globaltype, val : val, globalinst : globalinst}(s, globaltype, val) = (s +++ {`TAGS` [], `GLOBALS` [globalinst], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`GLOBALS`_store|) - -- if (globalinst = {`TYPE` globaltype, `VALUE` val}) + def $allocglobal{s : store, globaltype : globaltype, val : val, globalinst : globalinst}(s, globaltype, val) = (s +++ {TAGS [], GLOBALS [globalinst], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], STRUCTS [], ARRAYS [], EXNS []}, |s.GLOBALS_store|) + -- if (globalinst = {TYPE globaltype, VALUE val}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -93924,8 +7118,8 @@ def $allocglobals(store : store, globaltype*, val*) : (store, globaladdr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocmem(store : store, memtype : memtype) : (store, memaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocmem{s : store, at : addrtype, i : u64, `j?` : u64?, meminst : meminst}(s, `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`}))) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [meminst], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`MEMS`_store|) - -- if (meminst = {`TYPE` `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), `BYTES` `%`_byte(0)^(i!`%`_u64.0 * (64 * $Ki)){}}) + def $allocmem{s : store, at : addrtype, i : u64, `j?` : u64?, meminst : meminst}(s, `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`}))) = (s +++ {TAGS [], GLOBALS [], MEMS [meminst], TABLES [], FUNCS [], DATAS [], ELEMS [], STRUCTS [], ARRAYS [], EXNS []}, |s.MEMS_store|) + -- if (meminst = {TYPE `%%PAGE`_memtype(at, `[%..%]`_limits(i, j?{j <- `j?`})), BYTES `%`_byte(0)^(i!`%`_u64.0 * (64 * $Ki)){}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -93943,8 +7137,8 @@ def $allocmems(store : store, memtype*) : (store, memaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $alloctable(store : store, tabletype : tabletype, ref : ref) : (store, tableaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $alloctable{s : store, at : addrtype, i : u64, `j?` : u64?, rt : reftype, ref : ref, tableinst : tableinst}(s, `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), ref) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [tableinst], `FUNCS` [], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`TABLES`_store|) - -- if (tableinst = {`TYPE` `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), `REFS` ref^i!`%`_u64.0{}}) + def $alloctable{s : store, at : addrtype, i : u64, `j?` : u64?, rt : reftype, ref : ref, tableinst : tableinst}(s, `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), ref) = (s +++ {TAGS [], GLOBALS [], MEMS [], TABLES [tableinst], FUNCS [], DATAS [], ELEMS [], STRUCTS [], ARRAYS [], EXNS []}, |s.TABLES_store|) + -- if (tableinst = {TYPE `%%%`_tabletype(at, `[%..%]`_limits(i, j?{j <- `j?`}), rt), REFS ref^i!`%`_u64.0{}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -93962,8 +7156,8 @@ def $alloctables(store : store, tabletype*, ref*) : (store, tableaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocfunc(store : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst) : (store, funcaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocfunc{s : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst, funcinst : funcinst}(s, deftype, funccode, moduleinst) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [funcinst], `DATAS` [], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`FUNCS`_store|) - -- if (funcinst = {`TYPE` deftype, `MODULE` moduleinst, `CODE` funccode}) + def $allocfunc{s : store, deftype : deftype, funccode : funccode, moduleinst : moduleinst, funcinst : funcinst}(s, deftype, funccode, moduleinst) = (s +++ {TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [funcinst], DATAS [], ELEMS [], STRUCTS [], ARRAYS [], EXNS []}, |s.FUNCS_store|) + -- if (funcinst = {TYPE deftype, MODULE moduleinst, CODE funccode}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -93981,8 +7175,8 @@ def $allocfuncs(store : store, deftype*, funccode*, moduleinst*) : (store, funca ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocdata(store : store, datatype : datatype, byte*) : (store, dataaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocdata{s : store, `byte*` : byte*, datainst : datainst}(s, `OK`_datatype, byte*{byte <- `byte*`}) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [datainst], `ELEMS` [], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`DATAS`_store|) - -- if (datainst = {`BYTES` byte*{byte <- `byte*`}}) + def $allocdata{s : store, `byte*` : byte*, datainst : datainst}(s, OK_datatype, byte*{byte <- `byte*`}) = (s +++ {TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [datainst], ELEMS [], STRUCTS [], ARRAYS [], EXNS []}, |s.DATAS_store|) + -- if (datainst = {BYTES byte*{byte <- `byte*`}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -94000,8 +7194,8 @@ def $allocdatas(store : store, datatype*, byte**) : (store, dataaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocelem(store : store, elemtype : elemtype, ref*) : (store, elemaddr) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocelem{s : store, elemtype : elemtype, `ref*` : ref*, eleminst : eleminst}(s, elemtype, ref*{ref <- `ref*`}) = (s +++ {`TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [eleminst], `STRUCTS` [], `ARRAYS` [], `EXNS` []}, |s.`ELEMS`_store|) - -- if (eleminst = {`TYPE` elemtype, `REFS` ref*{ref <- `ref*`}}) + def $allocelem{s : store, elemtype : elemtype, `ref*` : ref*, eleminst : eleminst}(s, elemtype, ref*{ref <- `ref*`}) = (s +++ {TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [eleminst], STRUCTS [], ARRAYS [], EXNS []}, |s.ELEMS_store|) + -- if (eleminst = {TYPE elemtype, REFS ref*{ref <- `ref*`}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -94019,15 +7213,15 @@ def $allocelems(store : store, elemtype*, ref**) : (store, elemaddr*) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocexport(moduleinst : moduleinst, export : export) : exportinst ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `TAG`_externidx(x))) = {`NAME` name, `ADDR` `TAG`_externaddr(moduleinst.`TAGS`_moduleinst[x!`%`_idx.0])} + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, EXPORT_export(name, TAG_externidx(x))) = {NAME name, ADDR TAG_externaddr(moduleinst.TAGS_moduleinst[x!`%`_idx.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `GLOBAL`_externidx(x))) = {`NAME` name, `ADDR` `GLOBAL`_externaddr(moduleinst.`GLOBALS`_moduleinst[x!`%`_idx.0])} + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, EXPORT_export(name, GLOBAL_externidx(x))) = {NAME name, ADDR GLOBAL_externaddr(moduleinst.GLOBALS_moduleinst[x!`%`_idx.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `MEM`_externidx(x))) = {`NAME` name, `ADDR` `MEM`_externaddr(moduleinst.`MEMS`_moduleinst[x!`%`_idx.0])} + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, EXPORT_export(name, MEM_externidx(x))) = {NAME name, ADDR MEM_externaddr(moduleinst.MEMS_moduleinst[x!`%`_idx.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `TABLE`_externidx(x))) = {`NAME` name, `ADDR` `TABLE`_externaddr(moduleinst.`TABLES`_moduleinst[x!`%`_idx.0])} + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, EXPORT_export(name, TABLE_externidx(x))) = {NAME name, ADDR TABLE_externaddr(moduleinst.TABLES_moduleinst[x!`%`_idx.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, `EXPORT`_export(name, `FUNC`_externidx(x))) = {`NAME` name, `ADDR` `FUNC`_externaddr(moduleinst.`FUNCS`_moduleinst[x!`%`_idx.0])} + def $allocexport{moduleinst : moduleinst, name : name, x : idx}(moduleinst, EXPORT_export(name, FUNC_externidx(x))) = {NAME name, ADDR FUNC_externaddr(moduleinst.FUNCS_moduleinst[x!`%`_idx.0])} ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocexports(moduleinst : moduleinst, export*) : exportinst* @@ -94037,47 +7231,47 @@ def $allocexports(moduleinst : moduleinst, export*) : exportinst* ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $allocmodule(store : store, module : module, externaddr*, val*, ref*, ref**) : (store, moduleinst) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $allocmodule{s : store, module : module, `externaddr*` : externaddr*, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, s_7 : store, moduleinst : moduleinst, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `tagtype*` : tagtype*, `expr_G*` : expr*, `globaltype*` : globaltype*, `memtype*` : memtype*, `expr_T*` : expr*, `tabletype*` : tabletype*, `expr_F*` : expr*, `local**` : local**, `x*` : idx*, `byte**` : byte**, `datamode*` : datamode*, `elemmode*` : elemmode*, `elemtype*` : elemtype*, `expr_E**` : expr**, `aa_I*` : tagaddr*, `ga_I*` : globaladdr*, `ma_I*` : memaddr*, `ta_I*` : tableaddr*, `fa_I*` : funcaddr*, `dt*` : deftype*, `fa*` : nat*, i_F : nat, s_1 : store, `aa*` : tagaddr*, s_2 : store, `ga*` : globaladdr*, s_3 : store, `ma*` : memaddr*, s_4 : store, `ta*` : tableaddr*, s_5 : store, `da*` : dataaddr*, s_6 : store, `ea*` : elemaddr*, `xi*` : exportinst*}(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}) = (s_7, moduleinst) - -- if (module = `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) - -- if (tag*{tag <- `tag*`} = `TAG`_tag(tagtype)*{tagtype <- `tagtype*`}) - -- if (global*{global <- `global*`} = `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}) - -- if (mem*{mem <- `mem*`} = `MEMORY`_mem(memtype)*{memtype <- `memtype*`}) - -- if (table*{table <- `table*`} = `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}) - -- if (func*{func <- `func*`} = `FUNC`_func(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}) - -- if (data*{data <- `data*`} = `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}) - -- if (elem*{elem <- `elem*`} = `ELEM`_elem(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemtype <- `elemtype*`, `expr_E*` <- `expr_E**`}) + def $allocmodule{s : store, module : module, `externaddr*` : externaddr*, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, s_7 : store, moduleinst : moduleinst, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `tagtype*` : tagtype*, `expr_G*` : expr*, `globaltype*` : globaltype*, `memtype*` : memtype*, `expr_T*` : expr*, `tabletype*` : tabletype*, `expr_F*` : expr*, `local**` : local**, `x*` : idx*, `byte**` : byte**, `datamode*` : datamode*, `elemmode*` : elemmode*, `elemtype*` : elemtype*, `expr_E**` : expr**, `aa_I*` : tagaddr*, `ga_I*` : globaladdr*, `ma_I*` : memaddr*, `ta_I*` : tableaddr*, `fa_I*` : funcaddr*, `dt*` : deftype*, `fa*` : nat*, s_1 : store, `aa*` : tagaddr*, s_2 : store, `ga*` : globaladdr*, s_3 : store, `ma*` : memaddr*, s_4 : store, `ta*` : tableaddr*, s_5 : store, `da*` : dataaddr*, s_6 : store, `ea*` : elemaddr*, `xi*` : exportinst*}(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`}) = (s_7, moduleinst) + -- if (module = MODULE_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) + -- if (tag*{tag <- `tag*`} = TAG_tag(tagtype)*{tagtype <- `tagtype*`}) + -- if (global*{global <- `global*`} = GLOBAL_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}) + -- if (mem*{mem <- `mem*`} = MEMORY_mem(memtype)*{memtype <- `memtype*`}) + -- if (table*{table <- `table*`} = TABLE_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}) + -- if (func*{func <- `func*`} = FUNC_func(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}) + -- if (data*{data <- `data*`} = DATA_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}) + -- if (elem*{elem <- `elem*`} = ELEM_elem(elemtype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, elemtype <- `elemtype*`, `expr_E*` <- `expr_E**`}) -- if (aa_I*{aa_I <- `aa_I*`} = $tagsxa(externaddr*{externaddr <- `externaddr*`})) -- if (ga_I*{ga_I <- `ga_I*`} = $globalsxa(externaddr*{externaddr <- `externaddr*`})) -- if (ma_I*{ma_I <- `ma_I*`} = $memsxa(externaddr*{externaddr <- `externaddr*`})) -- if (ta_I*{ta_I <- `ta_I*`} = $tablesxa(externaddr*{externaddr <- `externaddr*`})) -- if (fa_I*{fa_I <- `fa_I*`} = $funcsxa(externaddr*{externaddr <- `externaddr*`})) -- if (dt*{dt <- `dt*`} = $alloctypes(type*{type <- `type*`})) - -- if (fa*{fa <- `fa*`} = (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}) + -- if (fa*{fa <- `fa*`} = (|s.FUNCS_store| + i_F)^(i_F<|func*{func <- `func*`}|){}) -- if ((s_1, aa*{aa <- `aa*`}) = $alloctags(s, $subst_all_tagtype(tagtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tagtype <- `tagtype*`})) -- if ((s_2, ga*{ga <- `ga*`}) = $allocglobals(s_1, $subst_all_globaltype(globaltype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{globaltype <- `globaltype*`}, val_G*{val_G <- `val_G*`})) -- if ((s_3, ma*{ma <- `ma*`}) = $allocmems(s_2, $subst_all_memtype(memtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{memtype <- `memtype*`})) -- if ((s_4, ta*{ta <- `ta*`}) = $alloctables(s_3, $subst_all_tabletype(tabletype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{tabletype <- `tabletype*`}, ref_T*{ref_T <- `ref_T*`})) - -- if ((s_5, da*{da <- `da*`}) = $allocdatas(s_4, `OK`_datatype^|data*{data <- `data*`}|{}, byte*{byte <- `byte*`}*{`byte*` <- `byte**`})) + -- if ((s_5, da*{da <- `da*`}) = $allocdatas(s_4, OK_datatype^|data*{data <- `data*`}|{}, byte*{byte <- `byte*`}*{`byte*` <- `byte**`})) -- if ((s_6, ea*{ea <- `ea*`}) = $allocelems(s_5, $subst_all_reftype(elemtype, (dt : deftype <: typeuse)*{dt <- `dt*`})*{elemtype <- `elemtype*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})) - -- if ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx.0]*{x <- `x*`}, `FUNC`_funccode(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})) - -- if (xi*{xi <- `xi*`} = $allocexports({`TYPES` [], `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` [], `ELEMS` [], `EXPORTS` []}, export*{export <- `export*`})) - -- if (moduleinst = {`TYPES` dt*{dt <- `dt*`}, `TAGS` aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, `GLOBALS` ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, `MEMS` ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, `TABLES` ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, `FUNCS` fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, `DATAS` da*{da <- `da*`}, `ELEMS` ea*{ea <- `ea*`}, `EXPORTS` xi*{xi <- `xi*`}}) + -- if ((s_7, fa*{fa <- `fa*`}) = $allocfuncs(s_6, dt*{dt <- `dt*`}[x!`%`_idx.0]*{x <- `x*`}, FUNC_funccode(x, local*{local <- `local*`}, expr_F)*{expr_F <- `expr_F*`, `local*` <- `local**`, x <- `x*`}, moduleinst^|func*{func <- `func*`}|{})) + -- if (xi*{xi <- `xi*`} = $allocexports({TYPES [], TAGS aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, GLOBALS ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, MEMS ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, TABLES ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, FUNCS fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, DATAS [], ELEMS [], EXPORTS []}, export*{export <- `export*`})) + -- if (moduleinst = {TYPES dt*{dt <- `dt*`}, TAGS aa_I*{aa_I <- `aa_I*`} ++ aa*{aa <- `aa*`}, GLOBALS ga_I*{ga_I <- `ga_I*`} ++ ga*{ga <- `ga*`}, MEMS ma_I*{ma_I <- `ma_I*`} ++ ma*{ma <- `ma*`}, TABLES ta_I*{ta_I <- `ta_I*`} ++ ta*{ta <- `ta*`}, FUNCS fa_I*{fa_I <- `fa_I*`} ++ fa*{fa <- `fa*`}, DATAS da*{da <- `da*`}, ELEMS ea*{ea <- `ea*`}, EXPORTS xi*{xi <- `xi*`}}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $rundata_(dataidx : dataidx, data : data) : instr* ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $rundata_{x : idx, n : n, `b*` : byte*}(x, `DATA`_data(b^n{b <- `b*`}, `PASSIVE`_datamode)) = [] + def $rundata_{x : idx, n : n, `b*` : byte*}(x, DATA_data(b^n{b <- `b*`}, PASSIVE_datamode)) = [] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $rundata_{x : idx, n : n, `b*` : byte*, y : idx, `instr*` : instr*}(x, `DATA`_data(b^n{b <- `b*`}, `ACTIVE`_datamode(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(y, x) `DATA.DROP`_instr(x)] + def $rundata_{x : idx, n : n, `b*` : byte*, y : idx, `instr*` : instr*}(x, DATA_data(b^n{b <- `b*`}, ACTIVE_datamode(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [CONST_instr(I32_numtype, `%`_num_(0)) CONST_instr(I32_numtype, `%`_num_(n)) `MEMORY.INIT`_instr(y, x) `DATA.DROP`_instr(x)] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $runelem_(elemidx : elemidx, elem : elem) : instr* ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*}(x, `ELEM`_elem(rt, e^n{e <- `e*`}, `PASSIVE`_elemmode)) = [] + def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*}(x, ELEM_elem(rt, e^n{e <- `e*`}, PASSIVE_elemmode)) = [] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*}(x, `ELEM`_elem(rt, e^n{e <- `e*`}, `DECLARE`_elemmode)) = [`ELEM.DROP`_instr(x)] + def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*}(x, ELEM_elem(rt, e^n{e <- `e*`}, DECLARE_elemmode)) = [`ELEM.DROP`_instr(x)] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*, y : idx, `instr*` : instr*}(x, `ELEM`_elem(rt, e^n{e <- `e*`}, `ACTIVE`_elemmode(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [`CONST`_instr(`I32`_numtype, `%`_num_(0)) `CONST`_instr(`I32`_numtype, `%`_num_(n)) `TABLE.INIT`_instr(y, x) `ELEM.DROP`_instr(x)] + def $runelem_{x : idx, rt : reftype, n : n, `e*` : expr*, y : idx, `instr*` : instr*}(x, ELEM_elem(rt, e^n{e <- `e*`}, ACTIVE_elemmode(y, instr*{instr <- `instr*`}))) = instr*{instr <- `instr*`} ++ [CONST_instr(I32_numtype, `%`_num_(0)) CONST_instr(I32_numtype, `%`_num_(n)) `TABLE.INIT`_instr(y, x) `ELEM.DROP`_instr(x)] ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec rec { @@ -94091,36 +7285,36 @@ def $evalglobals(state : state, globaltype*, expr*) : (state, val*) -- Eval_expr: `%;%~>*%;%`(z, expr, z, [val]) -- if (z = `%;%`_state(s, f)) -- if ((s', a) = $allocglobal(s, gt, val)) - -- if ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state(s', f[`MODULE`_frame.`GLOBALS`_moduleinst =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})) + -- if ((z', val'*{val' <- `val'*`}) = $evalglobals(`%;%`_state(s', f[MODULE_frame.GLOBALS_moduleinst =++ [a]]), gt'*{gt' <- `gt'*`}, expr'*{expr' <- `expr'*`})) } ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $instantiate(store : store, module : module, externaddr*) : config ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $instantiate{s : store, module : module, `externaddr*` : externaddr*, s' : store, moduleinst : moduleinst, `instr_E*` : instr*, `instr_D*` : instr*, `instr_S?` : instr?, `xt_I*` : externtype*, `xt_E*` : externtype*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `expr_G*` : expr*, `globaltype*` : globaltype*, `expr_T*` : expr*, `tabletype*` : tabletype*, `byte**` : byte**, `datamode*` : datamode*, `elemmode*` : elemmode*, `expr_E**` : expr**, `reftype*` : reftype*, `x?` : idx?, moduleinst_0 : moduleinst, i_F : nat, z : state, z' : state, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, i_D : nat, i_E : nat}(s, module, externaddr*{externaddr <- `externaddr*`}) = `%;%`_config(`%;%`_state(s', {`LOCALS` [], `MODULE` moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})) + def $instantiate{s : store, module : module, `externaddr*` : externaddr*, s' : store, moduleinst : moduleinst, `instr_E*` : instr*, `instr_D*` : instr*, `instr_S?` : instr?, `xt_I*` : externtype*, `xt_E*` : externtype*, `type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `expr_G*` : expr*, `globaltype*` : globaltype*, `expr_T*` : expr*, `tabletype*` : tabletype*, `byte**` : byte**, `datamode*` : datamode*, `elemmode*` : elemmode*, `expr_E**` : expr**, `reftype*` : reftype*, `x?` : idx?, moduleinst_0 : moduleinst, z : state, z' : state, `val_G*` : val*, `ref_T*` : ref*, `ref_E**` : ref**, i_D : nat, i_E : nat}(s, module, externaddr*{externaddr <- `externaddr*`}) = `%;%`_config(`%;%`_state(s', {LOCALS [], MODULE moduleinst}), instr_E*{instr_E <- `instr_E*`} ++ instr_D*{instr_D <- `instr_D*`} ++ lift(instr_S?{instr_S <- `instr_S?`})) -- Module_ok: `|-%:%`(module, `%->%`_moduletype(xt_I*{xt_I <- `xt_I*`}, xt_E*{xt_E <- `xt_E*`})) -- (Externaddr_ok: `%|-%:%`(s, externaddr, xt_I))*{externaddr <- `externaddr*`, xt_I <- `xt_I*`} - -- if (module = `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) - -- if (global*{global <- `global*`} = `GLOBAL`_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}) - -- if (table*{table <- `table*`} = `TABLE`_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}) - -- if (data*{data <- `data*`} = `DATA`_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}) - -- if (elem*{elem <- `elem*`} = `ELEM`_elem(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`}) - -- if (start?{start <- `start?`} = `START`_start(x)?{x <- `x?`}) - -- if (moduleinst_0 = {`TYPES` $alloctypes(type*{type <- `type*`}), `TAGS` [], `GLOBALS` $globalsxa(externaddr*{externaddr <- `externaddr*`}), `MEMS` [], `TABLES` [], `FUNCS` $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.`FUNCS`_store| + i_F)^(i_F<|func*{func <- `func*`}|){}, `DATAS` [], `ELEMS` [], `EXPORTS` []}) - -- if (z = `%;%`_state(s, {`LOCALS` [], `MODULE` moduleinst_0})) + -- if (module = MODULE_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`})) + -- if (global*{global <- `global*`} = GLOBAL_global(globaltype, expr_G)*{expr_G <- `expr_G*`, globaltype <- `globaltype*`}) + -- if (table*{table <- `table*`} = TABLE_table(tabletype, expr_T)*{expr_T <- `expr_T*`, tabletype <- `tabletype*`}) + -- if (data*{data <- `data*`} = DATA_data(byte*{byte <- `byte*`}, datamode)*{`byte*` <- `byte**`, datamode <- `datamode*`}) + -- if (elem*{elem <- `elem*`} = ELEM_elem(reftype, expr_E*{expr_E <- `expr_E*`}, elemmode)*{elemmode <- `elemmode*`, `expr_E*` <- `expr_E**`, reftype <- `reftype*`}) + -- if (start?{start <- `start?`} = START_start(x)?{x <- `x?`}) + -- if (moduleinst_0 = {TYPES $alloctypes(type*{type <- `type*`}), TAGS [], GLOBALS $globalsxa(externaddr*{externaddr <- `externaddr*`}), MEMS [], TABLES [], FUNCS $funcsxa(externaddr*{externaddr <- `externaddr*`}) ++ (|s.FUNCS_store| + i_F)^(i_F<|func*{func <- `func*`}|){}, DATAS [], ELEMS [], EXPORTS []}) + -- if (z = `%;%`_state(s, {LOCALS [], MODULE moduleinst_0})) -- if ((z', val_G*{val_G <- `val_G*`}) = $evalglobals(z, globaltype*{globaltype <- `globaltype*`}, expr_G*{expr_G <- `expr_G*`})) -- (Eval_expr: `%;%~>*%;%`(z', expr_T, z', [(ref_T : ref <: val)]))*{expr_T <- `expr_T*`, ref_T <- `ref_T*`} -- (Eval_expr: `%;%~>*%;%`(z', expr_E, z', [(ref_E : ref <: val)]))*{expr_E <- `expr_E*`, ref_E <- `ref_E*`}*{`expr_E*` <- `expr_E**`, `ref_E*` <- `ref_E**`} -- if ((s', moduleinst) = $allocmodule(s, module, externaddr*{externaddr <- `externaddr*`}, val_G*{val_G <- `val_G*`}, ref_T*{ref_T <- `ref_T*`}, ref_E*{ref_E <- `ref_E*`}*{`ref_E*` <- `ref_E**`})) -- if (instr_D*{instr_D <- `instr_D*`} = $concat_(syntax instr, $rundata_(`%`_dataidx(i_D), data*{data <- `data*`}[i_D])^(i_D<|data*{data <- `data*`}|){})) -- if (instr_E*{instr_E <- `instr_E*`} = $concat_(syntax instr, $runelem_(`%`_elemidx(i_E), elem*{elem <- `elem*`}[i_E])^(i_E<|elem*{elem <- `elem*`}|){})) - -- if (instr_S?{instr_S <- `instr_S?`} = `CALL`_instr(x)?{x <- `x?`}) + -- if (instr_S?{instr_S <- `instr_S?`} = CALL_instr(x)?{x <- `x?`}) ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec def $invoke(store : store, funcaddr : funcaddr, val*) : config ;; ../../../../specification/wasm-3.0/4.4-execution.modules.spectec - def $invoke{s : store, funcaddr : funcaddr, `val*` : val*, `t_1*` : valtype*, `t_2*` : valtype*}(s, funcaddr, val*{val <- `val*`}) = `%;%`_config(`%;%`_state(s, {`LOCALS` [], `MODULE` {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `EXPORTS` []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(funcaddr) `CALL_REF`_instr((s.`FUNCS`_store[funcaddr].`TYPE`_funcinst : deftype <: typeuse))]) - -- Expand: `%~~%`(s.`FUNCS`_store[funcaddr].`TYPE`_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + def $invoke{s : store, funcaddr : funcaddr, `val*` : val*, `t_1*` : valtype*, `t_2*` : valtype*}(s, funcaddr, val*{val <- `val*`}) = `%;%`_config(`%;%`_state(s, {LOCALS [], MODULE {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], EXPORTS []}}), (val : val <: instr)*{val <- `val*`} ++ [`REF.FUNC_ADDR`_instr(funcaddr) CALL_REF_instr((s.FUNCS_store[funcaddr].TYPE_funcinst : deftype <: typeuse))]) + -- Expand: `%~~%`(s.FUNCS_store[funcaddr].TYPE_funcinst, `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- (Val_ok: `%|-%:%`(s, val, t_1))*{t_1 <- `t_1*`, val <- `val*`} ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec @@ -94266,75 +7460,75 @@ grammar Blabelidx : labelidx ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec grammar Bexternidx : externidx ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{x : idx} {{0x00} {x:Bfuncidx}} => `FUNC`_externidx(x) + prod{x : idx} {{0x00} {x:Bfuncidx}} => FUNC_externidx(x) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{x : idx} {{0x01} {x:Btableidx}} => `TABLE`_externidx(x) + prod{x : idx} {{0x01} {x:Btableidx}} => TABLE_externidx(x) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{x : idx} {{0x02} {x:Bmemidx}} => `MEM`_externidx(x) + prod{x : idx} {{0x02} {x:Bmemidx}} => MEM_externidx(x) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{x : idx} {{0x03} {x:Bglobalidx}} => `GLOBAL`_externidx(x) + prod{x : idx} {{0x03} {x:Bglobalidx}} => GLOBAL_externidx(x) ;; ../../../../specification/wasm-3.0/5.1-binary.values.spectec - prod{x : idx} {{0x04} {x:Btagidx}} => `TAG`_externidx(x) + prod{x : idx} {{0x04} {x:Btagidx}} => TAG_externidx(x) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bnumtype : numtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x7C => `F64`_numtype + prod 0x7C => F64_numtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x7D => `F32`_numtype + prod 0x7D => F32_numtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x7E => `I64`_numtype + prod 0x7E => I64_numtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x7F => `I32`_numtype + prod 0x7F => I32_numtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bvectype : vectype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x7B => `V128`_vectype + prod 0x7B => V128_vectype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Babsheaptype : heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x69 => `EXN`_heaptype + prod 0x69 => EXN_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x6A => `ARRAY`_heaptype + prod 0x6A => ARRAY_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x6B => `STRUCT`_heaptype + prod 0x6B => STRUCT_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x6C => `I31`_heaptype + prod 0x6C => I31_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x6D => `EQ`_heaptype + prod 0x6D => EQ_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x6E => `ANY`_heaptype + prod 0x6E => ANY_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x6F => `EXTERN`_heaptype + prod 0x6F => EXTERN_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x70 => `FUNC`_heaptype + prod 0x70 => FUNC_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x71 => `NONE`_heaptype + prod 0x71 => NONE_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x72 => `NOEXTERN`_heaptype + prod 0x72 => NOEXTERN_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x73 => `NOFUNC`_heaptype + prod 0x73 => NOFUNC_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x74 => `NOEXN`_heaptype + prod 0x74 => NOEXN_heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bheaptype : heaptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec prod{ht : heaptype} ht:Babsheaptype => ht ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{x33 : s33} x33:Bs33 => `_IDX`_heaptype($s33_to_u32(x33)) + prod{x33 : s33} x33:Bs33 => _IDX_heaptype($s33_to_u32(x33)) -- if (x33!`%`_s33.0 >= (0 : nat <:> int)) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Breftype : reftype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{ht : heaptype} {{0x63} {ht:Bheaptype}} => `REF`_reftype(?(`NULL`_null), ht) + prod{ht : heaptype} {{0x63} {ht:Bheaptype}} => REF_reftype(?(NULL_null), ht) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{ht : heaptype} {{0x64} {ht:Bheaptype}} => `REF`_reftype(?(), ht) + prod{ht : heaptype} {{0x64} {ht:Bheaptype}} => REF_reftype(?(), ht) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{ht : heaptype} ht:Babsheaptype => `REF`_reftype(?(`NULL`_null), ht) + prod{ht : heaptype} ht:Babsheaptype => REF_reftype(?(NULL_null), ht) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bvaltype : valtype @@ -94355,14 +7549,14 @@ grammar Bmut : mut? ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec prod 0x00 => ?() ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x01 => ?(`MUT`_mut) + prod 0x01 => ?(MUT_mut) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bpacktype : packtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x77 => `I16`_packtype + prod 0x77 => I16_packtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod 0x78 => `I8`_packtype + prod 0x78 => I8_packtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bstoragetype : storagetype @@ -94379,43 +7573,43 @@ grammar Bfieldtype : fieldtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bcomptype : comptype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{ft : fieldtype} {{0x5E} {ft:Bfieldtype}} => `ARRAY`_comptype(ft) + prod{ft : fieldtype} {{0x5E} {ft:Bfieldtype}} => ARRAY_comptype(ft) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`ft*` : fieldtype*} {{0x5F} {ft*{ft <- `ft*`}:Blist(syntax fieldtype, grammar Bfieldtype)}} => `STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})) + prod{`ft*` : fieldtype*} {{0x5F} {ft*{ft <- `ft*`}:Blist(syntax fieldtype, grammar Bfieldtype)}} => STRUCT_comptype(`%`_list(ft*{ft <- `ft*`})) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec prod{`t_1*` : valtype*, `t_2*` : valtype*} {{0x60} {`%`_resulttype(t_1*{t_1 <- `t_1*`}):Bresulttype} {`%`_resulttype(t_2*{t_2 <- `t_2*`}):Bresulttype}} => `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bsubtype : subtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`x*` : idx*, ct : comptype} {{0x4F} {x*{x <- `x*`}:Blist(syntax typeidx, grammar Btypeidx)} {ct:Bcomptype}} => `SUB`_subtype(?(`FINAL`_final), `_IDX`_typeuse(x)*{x <- `x*`}, ct) + prod{`x*` : idx*, ct : comptype} {{0x4F} {x*{x <- `x*`}:Blist(syntax typeidx, grammar Btypeidx)} {ct:Bcomptype}} => SUB_subtype(?(FINAL_final), _IDX_typeuse(x)*{x <- `x*`}, ct) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`x*` : idx*, ct : comptype} {{0x50} {x*{x <- `x*`}:Blist(syntax typeidx, grammar Btypeidx)} {ct:Bcomptype}} => `SUB`_subtype(?(), `_IDX`_typeuse(x)*{x <- `x*`}, ct) + prod{`x*` : idx*, ct : comptype} {{0x50} {x*{x <- `x*`}:Blist(syntax typeidx, grammar Btypeidx)} {ct:Bcomptype}} => SUB_subtype(?(), _IDX_typeuse(x)*{x <- `x*`}, ct) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{ct : comptype} ct:Bcomptype => `SUB`_subtype(?(`FINAL`_final), [], ct) + prod{ct : comptype} ct:Bcomptype => SUB_subtype(?(FINAL_final), [], ct) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Brectype : rectype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{`st*` : subtype*} {{0x4E} {st*{st <- `st*`}:Blist(syntax subtype, grammar Bsubtype)}} => `REC`_rectype(`%`_list(st*{st <- `st*`})) + prod{`st*` : subtype*} {{0x4E} {st*{st <- `st*`}:Blist(syntax subtype, grammar Bsubtype)}} => REC_rectype(`%`_list(st*{st <- `st*`})) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{st : subtype} st:Bsubtype => `REC`_rectype(`%`_list([st])) + prod{st : subtype} st:Bsubtype => REC_rectype(`%`_list([st])) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Blimits : (addrtype, limits) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{n : n} {{0x00} {`%`_u64(n):Bu64}} => (`I32`_addrtype, `[%..%]`_limits(`%`_u64(n), ?())) + prod{n : n} {{0x00} {`%`_u64(n):Bu64}} => (I32_addrtype, `[%..%]`_limits(`%`_u64(n), ?())) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{n : n, m : m} {{0x01} {`%`_u64(n):Bu64} {`%`_u64(m):Bu64}} => (`I32`_addrtype, `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))) + prod{n : n, m : m} {{0x01} {`%`_u64(n):Bu64} {`%`_u64(m):Bu64}} => (I32_addrtype, `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{n : n} {{0x04} {`%`_u64(n):Bu64}} => (`I64`_addrtype, `[%..%]`_limits(`%`_u64(n), ?())) + prod{n : n} {{0x04} {`%`_u64(n):Bu64}} => (I64_addrtype, `[%..%]`_limits(`%`_u64(n), ?())) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{n : n, m : m} {{0x05} {`%`_u64(n):Bu64} {`%`_u64(m):Bu64}} => (`I64`_addrtype, `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))) + prod{n : n, m : m} {{0x05} {`%`_u64(n):Bu64} {`%`_u64(m):Bu64}} => (I64_addrtype, `[%..%]`_limits(`%`_u64(n), ?(`%`_u64(m)))) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Btagtype : tagtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{x : idx} {{0x00} {x:Btypeidx}} => `_IDX`_tagtype(x) + prod{x : idx} {{0x00} {x:Btypeidx}} => _IDX_tagtype(x) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bglobaltype : globaltype @@ -94435,15 +7629,15 @@ grammar Btabletype : tabletype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec grammar Bexterntype : externtype ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{x : idx} {{0x00} {x:Btypeidx}} => `FUNC`_externtype(`_IDX`_typeuse(x)) + prod{x : idx} {{0x00} {x:Btypeidx}} => FUNC_externtype(_IDX_typeuse(x)) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{tt : tabletype} {{0x01} {tt:Btabletype}} => `TABLE`_externtype(tt) + prod{tt : tabletype} {{0x01} {tt:Btabletype}} => TABLE_externtype(tt) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{mt : memtype} {{0x02} {mt:Bmemtype}} => `MEM`_externtype(mt) + prod{mt : memtype} {{0x02} {mt:Bmemtype}} => MEM_externtype(mt) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{gt : globaltype} {{0x03} {gt:Bglobaltype}} => `GLOBAL`_externtype(gt) + prod{gt : globaltype} {{0x03} {gt:Bglobaltype}} => GLOBAL_externtype(gt) ;; ../../../../specification/wasm-3.0/5.2-binary.types.spectec - prod{jt : tagtype} {{0x04} {jt:Btagtype}} => `TAG`_externtype(jt) + prod{jt : tagtype} {{0x04} {jt:Btagtype}} => TAG_externtype(jt) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec syntax castop = (null?, null?) @@ -94453,32 +7647,32 @@ grammar Bcastop : castop ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec prod 0x00 => (?(), ?()) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod 0x01 => (?(`NULL`_null), ?()) + prod 0x01 => (?(NULL_null), ?()) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod 0x02 => (?(), ?(`NULL`_null)) + prod 0x02 => (?(), ?(NULL_null)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod 0x03 => (?(`NULL`_null), ?(`NULL`_null)) + prod 0x03 => (?(NULL_null), ?(NULL_null)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec grammar Bblocktype : blocktype ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod 0x40 => `_RESULT`_blocktype(?()) + prod 0x40 => _RESULT_blocktype(?()) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{t : valtype} t:Bvaltype => `_RESULT`_blocktype(?(t)) + prod{t : valtype} t:Bvaltype => _RESULT_blocktype(?(t)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{i : s33} i:Bs33 => `_IDX`_blocktype(`%`_typeidx((i!`%`_s33.0 : int <:> nat))) + prod{i : s33} i:Bs33 => _IDX_blocktype(`%`_typeidx((i!`%`_s33.0 : int <:> nat))) -- if (i!`%`_s33.0 >= (0 : nat <:> int)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec grammar Bcatch : catch ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{x : idx, l : labelidx} {{0x00} {x:Btagidx} {l:Blabelidx}} => `CATCH`_catch(x, l) + prod{x : idx, l : labelidx} {{0x00} {x:Btagidx} {l:Blabelidx}} => CATCH_catch(x, l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{x : idx, l : labelidx} {{0x01} {x:Btagidx} {l:Blabelidx}} => `CATCH_REF`_catch(x, l) + prod{x : idx, l : labelidx} {{0x01} {x:Btagidx} {l:Blabelidx}} => CATCH_REF_catch(x, l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{l : labelidx} {{0x02} {l:Blabelidx}} => `CATCH_ALL`_catch(l) + prod{l : labelidx} {{0x02} {l:Blabelidx}} => CATCH_ALL_catch(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{l : labelidx} {{0x03} {l:Blabelidx}} => `CATCH_ALL_REF`_catch(l) + prod{l : labelidx} {{0x03} {l:Blabelidx}} => CATCH_ALL_REF_catch(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec syntax memidxop = (memidx, memarg) @@ -94486,10 +7680,10 @@ syntax memidxop = (memidx, memarg) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec grammar Bmemarg : memidxop ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{n : n, m : m} {{`%`_u32(n):Bu32} {`%`_u64(m):Bu64}} => (`%`_memidx(0), {`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)}) + prod{n : n, m : m} {{`%`_u32(n):Bu32} {`%`_u64(m):Bu64}} => (`%`_memidx(0), {ALIGN `%`_u32(n), OFFSET `%`_u64(m)}) -- if (n < (2 ^ 6)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec - prod{x : idx, n : n, m : m} {{`%`_u32(n):Bu32} {x:Bmemidx} {`%`_u64(m):Bu64}} => (x, {`ALIGN` `%`_u32((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), `OFFSET` `%`_u64(m)}) + prod{x : idx, n : n, m : m} {{`%`_u32(n):Bu32} {x:Bmemidx} {`%`_u64(m):Bu64}} => (x, {ALIGN `%`_u32((((n : nat <:> int) - ((2 ^ 6) : nat <:> int)) : int <:> nat)), OFFSET `%`_u64(m)}) -- if (((2 ^ 6) <= n) /\ (n < (2 ^ 7))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec @@ -94503,57 +7697,57 @@ rec { ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:793.1-807.71 grammar Binstr : instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:8.5-8.24 - prod 0x00 => `UNREACHABLE`_instr + prod 0x00 => UNREACHABLE_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:9.5-9.16 - prod 0x01 => `NOP`_instr + prod 0x01 => NOP_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:10.5-10.17 - prod 0x1A => `DROP`_instr + prod 0x1A => DROP_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:11.5-11.19 - prod 0x1B => `SELECT`_instr(?()) + prod 0x1B => SELECT_instr(?()) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:12.5-12.41 - prod{`t*` : valtype*} {{0x1C} {t*{t <- `t*`}:Blist(syntax valtype, grammar Bvaltype)}} => `SELECT`_instr(?(t*{t <- `t*`})) + prod{`t*` : valtype*} {{0x1C} {t*{t <- `t*`}:Blist(syntax valtype, grammar Bvaltype)}} => SELECT_instr(?(t*{t <- `t*`})) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:32.5-32.57 - prod{bt : blocktype, `in*` : instr*} {{0x02} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => `BLOCK`_instr(bt, in*{in <- `in*`}) + prod{bt : blocktype, `in*` : instr*} {{0x02} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => BLOCK_instr(bt, in*{in <- `in*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:33.5-33.56 - prod{bt : blocktype, `in*` : instr*} {{0x03} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => `LOOP`_instr(bt, in*{in <- `in*`}) + prod{bt : blocktype, `in*` : instr*} {{0x03} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => LOOP_instr(bt, in*{in <- `in*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:34.5-34.63 prod{bt : blocktype, `in*` : instr*} {{0x04} {bt:Bblocktype} {in:Binstr*{in <- `in*`}} {0x0B}} => `IF%%ELSE%`_instr(bt, in*{in <- `in*`}, []) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:35.5-36.55 prod{bt : blocktype, `in_1*` : instr*, `in_2*` : instr*} {{0x04} {bt:Bblocktype} {in_1:Binstr*{in_1 <- `in_1*`}} {0x05} {in_2:Binstr*{in_2 <- `in_2*`}} {0x0B}} => `IF%%ELSE%`_instr(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:40.5-40.30 - prod{x : idx} {{0x08} {x:Btagidx}} => `THROW`_instr(x) + prod{x : idx} {{0x08} {x:Btagidx}} => THROW_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:41.5-41.22 - prod 0x0A => `THROW_REF`_instr + prod 0x0A => THROW_REF_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:42.5-42.29 - prod{l : labelidx} {{0x0C} {l:Blabelidx}} => `BR`_instr(l) + prod{l : labelidx} {{0x0C} {l:Blabelidx}} => BR_instr(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:43.5-43.32 - prod{l : labelidx} {{0x0D} {l:Blabelidx}} => `BR_IF`_instr(l) + prod{l : labelidx} {{0x0D} {l:Blabelidx}} => BR_IF_instr(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:44.5-44.62 - prod{`l*` : labelidx*, l_n : labelidx} {{0x0E} {l*{l <- `l*`}:Blist(syntax labelidx, grammar Blabelidx)} {l_n:Blabelidx}} => `BR_TABLE`_instr(l*{l <- `l*`}, l_n) + prod{`l*` : labelidx*, l_n : labelidx} {{0x0E} {l*{l <- `l*`}:Blist(syntax labelidx, grammar Blabelidx)} {l_n:Blabelidx}} => BR_TABLE_instr(l*{l <- `l*`}, l_n) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:45.5-45.19 - prod 0x0F => `RETURN`_instr + prod 0x0F => RETURN_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:46.5-46.30 - prod{x : idx} {{0x10} {x:Bfuncidx}} => `CALL`_instr(x) + prod{x : idx} {{0x10} {x:Bfuncidx}} => CALL_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:47.5-47.60 - prod{x : idx, y : idx} {{0x11} {y:Btypeidx} {x:Btableidx}} => `CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y)) + prod{x : idx, y : idx} {{0x11} {y:Btypeidx} {x:Btableidx}} => CALL_INDIRECT_instr(x, _IDX_typeuse(y)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:48.5-48.37 - prod{x : idx} {{0x12} {x:Bfuncidx}} => `RETURN_CALL`_instr(x) + prod{x : idx} {{0x12} {x:Bfuncidx}} => RETURN_CALL_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:49.5-49.67 - prod{x : idx, y : idx} {{0x13} {y:Btypeidx} {x:Btableidx}} => `RETURN_CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y)) + prod{x : idx, y : idx} {{0x13} {y:Btypeidx} {x:Btableidx}} => RETURN_CALL_INDIRECT_instr(x, _IDX_typeuse(y)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:50.5-50.41 - prod{x : idx} {{0x14} {x:Btypeidx}} => `CALL_REF`_instr(`_IDX`_typeuse(x)) + prod{x : idx} {{0x14} {x:Btypeidx}} => CALL_REF_instr(_IDX_typeuse(x)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:51.5-51.48 - prod{x : idx} {{0x15} {x:Btypeidx}} => `RETURN_CALL_REF`_instr(`_IDX`_typeuse(x)) + prod{x : idx} {{0x15} {x:Btypeidx}} => RETURN_CALL_REF_instr(_IDX_typeuse(x)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:52.5-52.81 - prod{bt : blocktype, `c*` : catch*, `in*` : instr*} {{0x1F} {bt:Bblocktype} {c*{c <- `c*`}:Blist(syntax catch, grammar Bcatch)} {in:Binstr*{in <- `in*`}} {0x0B}} => `TRY_TABLE`_instr(bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`}) + prod{bt : blocktype, `c*` : catch*, `in*` : instr*} {{0x1F} {bt:Bblocktype} {c*{c <- `c*`}:Blist(syntax catch, grammar Bcatch)} {in:Binstr*{in <- `in*`}} {0x0B}} => TRY_TABLE_instr(bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:53.5-53.37 - prod{l : labelidx} {{0xD5} {l:Blabelidx}} => `BR_ON_NULL`_instr(l) + prod{l : labelidx} {{0xD5} {l:Blabelidx}} => BR_ON_NULL_instr(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:54.5-54.41 - prod{l : labelidx} {{0xD6} {l:Blabelidx}} => `BR_ON_NON_NULL`_instr(l) + prod{l : labelidx} {{0xD6} {l:Blabelidx}} => BR_ON_NON_NULL_instr(l) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:55.5-56.100 - prod{l : labelidx, `null_1?` : null?, ht_1 : heaptype, `null_2?` : null?, ht_2 : heaptype} {{0xFB} {`%`_u32(24):Bu32} {(null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`}):Bcastop} {l:Blabelidx} {ht_1:Bheaptype} {ht_2:Bheaptype}} => `BR_ON_CAST`_instr(l, `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2)) + prod{l : labelidx, `null_1?` : null?, ht_1 : heaptype, `null_2?` : null?, ht_2 : heaptype} {{0xFB} {`%`_u32(24):Bu32} {(null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`}):Bcastop} {l:Blabelidx} {ht_1:Bheaptype} {ht_2:Bheaptype}} => BR_ON_CAST_instr(l, REF_reftype(null_1?{null_1 <- `null_1?`}, ht_1), REF_reftype(null_2?{null_2 <- `null_2?`}, ht_2)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:57.5-58.105 - prod{l : labelidx, `null_1?` : null?, ht_1 : heaptype, `null_2?` : null?, ht_2 : heaptype} {{0xFB} {`%`_u32(25):Bu32} {(null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`}):Bcastop} {l:Blabelidx} {ht_1:Bheaptype} {ht_2:Bheaptype}} => `BR_ON_CAST_FAIL`_instr(l, `REF`_reftype(null_1?{null_1 <- `null_1?`}, ht_1), `REF`_reftype(null_2?{null_2 <- `null_2?`}, ht_2)) + prod{l : labelidx, `null_1?` : null?, ht_1 : heaptype, `null_2?` : null?, ht_2 : heaptype} {{0xFB} {`%`_u32(25):Bu32} {(null_1?{null_1 <- `null_1?`}, null_2?{null_2 <- `null_2?`}):Bcastop} {l:Blabelidx} {ht_1:Bheaptype} {ht_2:Bheaptype}} => BR_ON_CAST_FAIL_instr(l, REF_reftype(null_1?{null_1 <- `null_1?`}, ht_1), REF_reftype(null_2?{null_2 <- `null_2?`}, ht_2)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:71.5-71.36 prod{x : idx} {{0x20} {x:Blocalidx}} => `LOCAL.GET`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:72.5-72.36 @@ -94581,51 +7775,51 @@ grammar Binstr : instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:92.5-92.45 prod{x : idx} {{0xFC} {`%`_u32(17):Bu32} {x:Btableidx}} => `TABLE.FILL`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:105.5-105.41 - prod{x : idx, ao : memarg} {{0x28} {(x, ao):Bmemarg}} => `LOAD`_instr(`I32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x28} {(x, ao):Bmemarg}} => LOAD_instr(I32_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:106.5-106.41 - prod{x : idx, ao : memarg} {{0x29} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x29} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:107.5-107.41 - prod{x : idx, ao : memarg} {{0x2A} {(x, ao):Bmemarg}} => `LOAD`_instr(`F32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x2A} {(x, ao):Bmemarg}} => LOAD_instr(F32_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:108.5-108.41 - prod{x : idx, ao : memarg} {{0x2B} {(x, ao):Bmemarg}} => `LOAD`_instr(`F64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x2B} {(x, ao):Bmemarg}} => LOAD_instr(F64_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:109.5-109.50 - prod{x : idx, ao : memarg} {{0x2C} {(x, ao):Bmemarg}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x2C} {(x, ao):Bmemarg}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(8), S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:110.5-110.50 - prod{x : idx, ao : memarg} {{0x2D} {(x, ao):Bmemarg}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x2D} {(x, ao):Bmemarg}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(8), U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:111.5-111.51 - prod{x : idx, ao : memarg} {{0x2E} {(x, ao):Bmemarg}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x2E} {(x, ao):Bmemarg}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(16), S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:112.5-112.51 - prod{x : idx, ao : memarg} {{0x2F} {(x, ao):Bmemarg}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x2F} {(x, ao):Bmemarg}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(16), U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:113.5-113.50 - prod{x : idx, ao : memarg} {{0x30} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x30} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(8), S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:114.5-114.50 - prod{x : idx, ao : memarg} {{0x31} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x31} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(8), U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:115.5-115.51 - prod{x : idx, ao : memarg} {{0x32} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x32} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(16), S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:116.5-116.51 - prod{x : idx, ao : memarg} {{0x33} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x33} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(16), U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:117.5-117.51 - prod{x : idx, ao : memarg} {{0x34} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x34} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(32), S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:118.5-118.51 - prod{x : idx, ao : memarg} {{0x35} {(x, ao):Bmemarg}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0x35} {(x, ao):Bmemarg}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(32), U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:119.5-119.42 - prod{x : idx, ao : memarg} {{0x36} {(x, ao):Bmemarg}} => `STORE`_instr(`I32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x36} {(x, ao):Bmemarg}} => STORE_instr(I32_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:120.5-120.42 - prod{x : idx, ao : memarg} {{0x37} {(x, ao):Bmemarg}} => `STORE`_instr(`I64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x37} {(x, ao):Bmemarg}} => STORE_instr(I64_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:121.5-121.42 - prod{x : idx, ao : memarg} {{0x38} {(x, ao):Bmemarg}} => `STORE`_instr(`F32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x38} {(x, ao):Bmemarg}} => STORE_instr(F32_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:122.5-122.42 - prod{x : idx, ao : memarg} {{0x39} {(x, ao):Bmemarg}} => `STORE`_instr(`F64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0x39} {(x, ao):Bmemarg}} => STORE_instr(F64_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:123.5-123.45 - prod{x : idx, ao : memarg} {{0x3A} {(x, ao):Bmemarg}} => `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) + prod{x : idx, ao : memarg} {{0x3A} {(x, ao):Bmemarg}} => STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:124.5-124.46 - prod{x : idx, ao : memarg} {{0x3B} {(x, ao):Bmemarg}} => `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) + prod{x : idx, ao : memarg} {{0x3B} {(x, ao):Bmemarg}} => STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:125.5-125.45 - prod{x : idx, ao : memarg} {{0x3C} {(x, ao):Bmemarg}} => `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) + prod{x : idx, ao : memarg} {{0x3C} {(x, ao):Bmemarg}} => STORE_instr(I64_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:126.5-126.46 - prod{x : idx, ao : memarg} {{0x3D} {(x, ao):Bmemarg}} => `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) + prod{x : idx, ao : memarg} {{0x3D} {(x, ao):Bmemarg}} => STORE_instr(I64_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:127.5-127.46 - prod{x : idx, ao : memarg} {{0x3E} {(x, ao):Bmemarg}} => `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao) + prod{x : idx, ao : memarg} {{0x3E} {(x, ao):Bmemarg}} => STORE_instr(I64_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:128.5-128.36 prod{x : idx} {{0x3F} {x:Bmemidx}} => `MEMORY.SIZE`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:129.5-129.36 @@ -94649,13 +7843,13 @@ grammar Binstr : instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:144.5-144.28 prod 0xD4 => `REF.AS_NON_NULL`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:145.5-145.51 - prod{ht : heaptype} {{0xFB} {`%`_u32(20):Bu32} {ht:Bheaptype}} => `REF.TEST`_instr(`REF`_reftype(?(), ht)) + prod{ht : heaptype} {{0xFB} {`%`_u32(20):Bu32} {ht:Bheaptype}} => `REF.TEST`_instr(REF_reftype(?(), ht)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:146.5-146.56 - prod{ht : heaptype} {{0xFB} {`%`_u32(21):Bu32} {ht:Bheaptype}} => `REF.TEST`_instr(`REF`_reftype(?(`NULL`_null), ht)) + prod{ht : heaptype} {{0xFB} {`%`_u32(21):Bu32} {ht:Bheaptype}} => `REF.TEST`_instr(REF_reftype(?(NULL_null), ht)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:147.5-147.51 - prod{ht : heaptype} {{0xFB} {`%`_u32(22):Bu32} {ht:Bheaptype}} => `REF.CAST`_instr(`REF`_reftype(?(), ht)) + prod{ht : heaptype} {{0xFB} {`%`_u32(22):Bu32} {ht:Bheaptype}} => `REF.CAST`_instr(REF_reftype(?(), ht)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:148.5-148.56 - prod{ht : heaptype} {{0xFB} {`%`_u32(23):Bu32} {ht:Bheaptype}} => `REF.CAST`_instr(`REF`_reftype(?(`NULL`_null), ht)) + prod{ht : heaptype} {{0xFB} {`%`_u32(23):Bu32} {ht:Bheaptype}} => `REF.CAST`_instr(REF_reftype(?(NULL_null), ht)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:152.5-152.43 prod{x : idx} {{0xFB} {`%`_u32(0):Bu32} {x:Btypeidx}} => `STRUCT.NEW`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:153.5-153.51 @@ -94663,9 +7857,9 @@ grammar Binstr : instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:154.5-154.52 prod{x : idx, i : u32} {{0xFB} {`%`_u32(2):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr(?(), x, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:155.5-155.54 - prod{x : idx, i : u32} {{0xFB} {`%`_u32(3):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr(?(`S`_sx), x, i) + prod{x : idx, i : u32} {{0xFB} {`%`_u32(3):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr(?(S_sx), x, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:156.5-156.54 - prod{x : idx, i : u32} {{0xFB} {`%`_u32(4):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr(?(`U`_sx), x, i) + prod{x : idx, i : u32} {{0xFB} {`%`_u32(4):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.GET`_instr(?(U_sx), x, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:157.5-157.52 prod{x : idx, i : u32} {{0xFB} {`%`_u32(5):Bu32} {x:Btypeidx} {i:Bu32}} => `STRUCT.SET`_instr(x, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:161.5-161.42 @@ -94681,9 +7875,9 @@ grammar Binstr : instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:166.5-166.43 prod{x : idx} {{0xFB} {`%`_u32(11):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr(?(), x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:167.5-167.45 - prod{x : idx} {{0xFB} {`%`_u32(12):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr(?(`S`_sx), x) + prod{x : idx} {{0xFB} {`%`_u32(12):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr(?(S_sx), x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:168.5-168.45 - prod{x : idx} {{0xFB} {`%`_u32(13):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr(?(`U`_sx), x) + prod{x : idx} {{0xFB} {`%`_u32(13):Bu32} {x:Btypeidx}} => `ARRAY.GET`_instr(?(U_sx), x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:169.5-169.43 prod{x : idx} {{0xFB} {`%`_u32(14):Bu32} {x:Btypeidx}} => `ARRAY.SET`_instr(x) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:170.5-170.30 @@ -94703,801 +7897,801 @@ grammar Binstr : instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:183.5-183.28 prod {{0xFB} {`%`_u32(28):Bu32}} => `REF.I31`_instr ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:184.5-184.30 - prod {{0xFB} {`%`_u32(29):Bu32}} => `I31.GET`_instr(`S`_sx) + prod {{0xFB} {`%`_u32(29):Bu32}} => `I31.GET`_instr(S_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:185.5-185.30 - prod {{0xFB} {`%`_u32(30):Bu32}} => `I31.GET`_instr(`U`_sx) + prod {{0xFB} {`%`_u32(30):Bu32}} => `I31.GET`_instr(U_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:192.5-192.31 - prod{i : i32} {{0x41} {i:Bi32}} => `CONST`_instr(`I32`_numtype, i) + prod{i : i32} {{0x41} {i:Bi32}} => CONST_instr(I32_numtype, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:193.5-193.31 - prod{i : i64} {{0x42} {i:Bi64}} => `CONST`_instr(`I64`_numtype, i) + prod{i : i64} {{0x42} {i:Bi64}} => CONST_instr(I64_numtype, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:194.5-194.31 - prod{p : f32} {{0x43} {p:Bf32}} => `CONST`_instr(`F32`_numtype, p) + prod{p : f32} {{0x43} {p:Bf32}} => CONST_instr(F32_numtype, p) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:195.5-195.31 - prod{p : f64} {{0x44} {p:Bf64}} => `CONST`_instr(`F64`_numtype, p) + prod{p : f64} {{0x44} {p:Bf64}} => CONST_instr(F64_numtype, p) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:199.5-199.27 - prod 0x45 => `TESTOP`_instr(`I32`_numtype, `EQZ`_testop_) + prod 0x45 => TESTOP_instr(I32_numtype, EQZ_testop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:203.5-203.25 - prod 0x46 => `RELOP`_instr(`I32`_numtype, `EQ`_relop_) + prod 0x46 => RELOP_instr(I32_numtype, EQ_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:204.5-204.25 - prod 0x47 => `RELOP`_instr(`I32`_numtype, `NE`_relop_) + prod 0x47 => RELOP_instr(I32_numtype, NE_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:205.5-205.27 - prod 0x48 => `RELOP`_instr(`I32`_numtype, `LT`_relop_(`S`_sx)) + prod 0x48 => RELOP_instr(I32_numtype, LT_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:206.5-206.27 - prod 0x49 => `RELOP`_instr(`I32`_numtype, `LT`_relop_(`U`_sx)) + prod 0x49 => RELOP_instr(I32_numtype, LT_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:207.5-207.27 - prod 0x4A => `RELOP`_instr(`I32`_numtype, `GT`_relop_(`S`_sx)) + prod 0x4A => RELOP_instr(I32_numtype, GT_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:208.5-208.27 - prod 0x4B => `RELOP`_instr(`I32`_numtype, `GT`_relop_(`U`_sx)) + prod 0x4B => RELOP_instr(I32_numtype, GT_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:209.5-209.27 - prod 0x4C => `RELOP`_instr(`I32`_numtype, `LE`_relop_(`S`_sx)) + prod 0x4C => RELOP_instr(I32_numtype, LE_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:210.5-210.27 - prod 0x4D => `RELOP`_instr(`I32`_numtype, `LE`_relop_(`U`_sx)) + prod 0x4D => RELOP_instr(I32_numtype, LE_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:211.5-211.27 - prod 0x4E => `RELOP`_instr(`I32`_numtype, `GE`_relop_(`S`_sx)) + prod 0x4E => RELOP_instr(I32_numtype, GE_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:212.5-212.27 - prod 0x4F => `RELOP`_instr(`I32`_numtype, `GE`_relop_(`U`_sx)) + prod 0x4F => RELOP_instr(I32_numtype, GE_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:216.5-216.27 - prod 0x50 => `TESTOP`_instr(`I64`_numtype, `EQZ`_testop_) + prod 0x50 => TESTOP_instr(I64_numtype, EQZ_testop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:220.5-220.25 - prod 0x51 => `RELOP`_instr(`I64`_numtype, `EQ`_relop_) + prod 0x51 => RELOP_instr(I64_numtype, EQ_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:221.5-221.25 - prod 0x52 => `RELOP`_instr(`I64`_numtype, `NE`_relop_) + prod 0x52 => RELOP_instr(I64_numtype, NE_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:222.5-222.27 - prod 0x53 => `RELOP`_instr(`I64`_numtype, `LT`_relop_(`S`_sx)) + prod 0x53 => RELOP_instr(I64_numtype, LT_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:223.5-223.27 - prod 0x54 => `RELOP`_instr(`I64`_numtype, `LT`_relop_(`U`_sx)) + prod 0x54 => RELOP_instr(I64_numtype, LT_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:224.5-224.27 - prod 0x55 => `RELOP`_instr(`I64`_numtype, `GT`_relop_(`S`_sx)) + prod 0x55 => RELOP_instr(I64_numtype, GT_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:225.5-225.27 - prod 0x56 => `RELOP`_instr(`I64`_numtype, `GT`_relop_(`U`_sx)) + prod 0x56 => RELOP_instr(I64_numtype, GT_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:226.5-226.27 - prod 0x57 => `RELOP`_instr(`I64`_numtype, `LE`_relop_(`S`_sx)) + prod 0x57 => RELOP_instr(I64_numtype, LE_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:227.5-227.27 - prod 0x58 => `RELOP`_instr(`I64`_numtype, `LE`_relop_(`U`_sx)) + prod 0x58 => RELOP_instr(I64_numtype, LE_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:228.5-228.27 - prod 0x59 => `RELOP`_instr(`I64`_numtype, `GE`_relop_(`S`_sx)) + prod 0x59 => RELOP_instr(I64_numtype, GE_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:229.5-229.27 - prod 0x5A => `RELOP`_instr(`I64`_numtype, `GE`_relop_(`U`_sx)) + prod 0x5A => RELOP_instr(I64_numtype, GE_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:233.5-233.25 - prod 0x5B => `RELOP`_instr(`F32`_numtype, `EQ`_relop_) + prod 0x5B => RELOP_instr(F32_numtype, EQ_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:234.5-234.25 - prod 0x5C => `RELOP`_instr(`F32`_numtype, `NE`_relop_) + prod 0x5C => RELOP_instr(F32_numtype, NE_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:235.5-235.25 - prod 0x5D => `RELOP`_instr(`F32`_numtype, `LT`_relop_) + prod 0x5D => RELOP_instr(F32_numtype, LT_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:236.5-236.25 - prod 0x5E => `RELOP`_instr(`F32`_numtype, `GT`_relop_) + prod 0x5E => RELOP_instr(F32_numtype, GT_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:237.5-237.25 - prod 0x5F => `RELOP`_instr(`F32`_numtype, `LE`_relop_) + prod 0x5F => RELOP_instr(F32_numtype, LE_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:238.5-238.25 - prod 0x60 => `RELOP`_instr(`F32`_numtype, `GE`_relop_) + prod 0x60 => RELOP_instr(F32_numtype, GE_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:242.5-242.25 - prod 0x61 => `RELOP`_instr(`F64`_numtype, `EQ`_relop_) + prod 0x61 => RELOP_instr(F64_numtype, EQ_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:243.5-243.25 - prod 0x62 => `RELOP`_instr(`F64`_numtype, `NE`_relop_) + prod 0x62 => RELOP_instr(F64_numtype, NE_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:244.5-244.25 - prod 0x63 => `RELOP`_instr(`F64`_numtype, `LT`_relop_) + prod 0x63 => RELOP_instr(F64_numtype, LT_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:245.5-245.25 - prod 0x64 => `RELOP`_instr(`F64`_numtype, `GT`_relop_) + prod 0x64 => RELOP_instr(F64_numtype, GT_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:246.5-246.25 - prod 0x65 => `RELOP`_instr(`F64`_numtype, `LE`_relop_) + prod 0x65 => RELOP_instr(F64_numtype, LE_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:247.5-247.25 - prod 0x66 => `RELOP`_instr(`F64`_numtype, `GE`_relop_) + prod 0x66 => RELOP_instr(F64_numtype, GE_relop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:251.5-251.25 - prod 0x67 => `UNOP`_instr(`I32`_numtype, `CLZ`_unop_) + prod 0x67 => UNOP_instr(I32_numtype, CLZ_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:252.5-252.25 - prod 0x68 => `UNOP`_instr(`I32`_numtype, `CTZ`_unop_) + prod 0x68 => UNOP_instr(I32_numtype, CTZ_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:253.5-253.28 - prod 0x69 => `UNOP`_instr(`I32`_numtype, `POPCNT`_unop_) + prod 0x69 => UNOP_instr(I32_numtype, POPCNT_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:257.5-257.26 - prod 0x6A => `BINOP`_instr(`I32`_numtype, `ADD`_binop_) + prod 0x6A => BINOP_instr(I32_numtype, ADD_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:258.5-258.26 - prod 0x6B => `BINOP`_instr(`I32`_numtype, `SUB`_binop_) + prod 0x6B => BINOP_instr(I32_numtype, SUB_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:259.5-259.26 - prod 0x6C => `BINOP`_instr(`I32`_numtype, `MUL`_binop_) + prod 0x6C => BINOP_instr(I32_numtype, MUL_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:260.5-260.28 - prod 0x6D => `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`S`_sx)) + prod 0x6D => BINOP_instr(I32_numtype, DIV_binop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:261.5-261.28 - prod 0x6E => `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`U`_sx)) + prod 0x6E => BINOP_instr(I32_numtype, DIV_binop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:262.5-262.28 - prod 0x6F => `BINOP`_instr(`I32`_numtype, `REM`_binop_(`S`_sx)) + prod 0x6F => BINOP_instr(I32_numtype, REM_binop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:263.5-263.28 - prod 0x70 => `BINOP`_instr(`I32`_numtype, `REM`_binop_(`U`_sx)) + prod 0x70 => BINOP_instr(I32_numtype, REM_binop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:264.5-264.26 - prod 0x71 => `BINOP`_instr(`I32`_numtype, `AND`_binop_) + prod 0x71 => BINOP_instr(I32_numtype, AND_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:265.5-265.25 - prod 0x72 => `BINOP`_instr(`I32`_numtype, `OR`_binop_) + prod 0x72 => BINOP_instr(I32_numtype, OR_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:266.5-266.26 - prod 0x73 => `BINOP`_instr(`I32`_numtype, `XOR`_binop_) + prod 0x73 => BINOP_instr(I32_numtype, XOR_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:267.5-267.26 - prod 0x74 => `BINOP`_instr(`I32`_numtype, `SHL`_binop_) + prod 0x74 => BINOP_instr(I32_numtype, SHL_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:268.5-268.28 - prod 0x75 => `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`S`_sx)) + prod 0x75 => BINOP_instr(I32_numtype, SHR_binop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:269.5-269.28 - prod 0x76 => `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`U`_sx)) + prod 0x76 => BINOP_instr(I32_numtype, SHR_binop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:270.5-270.27 - prod 0x77 => `BINOP`_instr(`I32`_numtype, `ROTL`_binop_) + prod 0x77 => BINOP_instr(I32_numtype, ROTL_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:271.5-271.27 - prod 0x78 => `BINOP`_instr(`I32`_numtype, `ROTR`_binop_) + prod 0x78 => BINOP_instr(I32_numtype, ROTR_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:275.5-275.25 - prod 0x79 => `UNOP`_instr(`I64`_numtype, `CLZ`_unop_) + prod 0x79 => UNOP_instr(I64_numtype, CLZ_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:276.5-276.25 - prod 0x7A => `UNOP`_instr(`I64`_numtype, `CTZ`_unop_) + prod 0x7A => UNOP_instr(I64_numtype, CTZ_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:277.5-277.28 - prod 0x7B => `UNOP`_instr(`I64`_numtype, `POPCNT`_unop_) + prod 0x7B => UNOP_instr(I64_numtype, POPCNT_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:281.5-281.31 - prod 0xC0 => `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(8))) + prod 0xC0 => UNOP_instr(I32_numtype, EXTEND_unop_(`%`_sz(8))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:282.5-282.32 - prod 0xC1 => `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(16))) + prod 0xC1 => UNOP_instr(I32_numtype, EXTEND_unop_(`%`_sz(16))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:286.5-286.31 - prod 0xC2 => `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(8))) + prod 0xC2 => UNOP_instr(I64_numtype, EXTEND_unop_(`%`_sz(8))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:287.5-287.32 - prod 0xC3 => `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(16))) + prod 0xC3 => UNOP_instr(I64_numtype, EXTEND_unop_(`%`_sz(16))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:288.5-288.32 - prod 0xC4 => `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(32))) + prod 0xC4 => UNOP_instr(I64_numtype, EXTEND_unop_(`%`_sz(32))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:292.5-292.26 - prod 0x7C => `BINOP`_instr(`I64`_numtype, `ADD`_binop_) + prod 0x7C => BINOP_instr(I64_numtype, ADD_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:293.5-293.26 - prod 0x7D => `BINOP`_instr(`I64`_numtype, `SUB`_binop_) + prod 0x7D => BINOP_instr(I64_numtype, SUB_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:294.5-294.26 - prod 0x7E => `BINOP`_instr(`I64`_numtype, `MUL`_binop_) + prod 0x7E => BINOP_instr(I64_numtype, MUL_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:295.5-295.28 - prod 0x7F => `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`S`_sx)) + prod 0x7F => BINOP_instr(I64_numtype, DIV_binop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:296.5-296.28 - prod 0x80 => `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`U`_sx)) + prod 0x80 => BINOP_instr(I64_numtype, DIV_binop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:297.5-297.28 - prod 0x81 => `BINOP`_instr(`I64`_numtype, `REM`_binop_(`S`_sx)) + prod 0x81 => BINOP_instr(I64_numtype, REM_binop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:298.5-298.28 - prod 0x82 => `BINOP`_instr(`I64`_numtype, `REM`_binop_(`U`_sx)) + prod 0x82 => BINOP_instr(I64_numtype, REM_binop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:299.5-299.26 - prod 0x83 => `BINOP`_instr(`I64`_numtype, `AND`_binop_) + prod 0x83 => BINOP_instr(I64_numtype, AND_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:300.5-300.25 - prod 0x84 => `BINOP`_instr(`I64`_numtype, `OR`_binop_) + prod 0x84 => BINOP_instr(I64_numtype, OR_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:301.5-301.26 - prod 0x85 => `BINOP`_instr(`I64`_numtype, `XOR`_binop_) + prod 0x85 => BINOP_instr(I64_numtype, XOR_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:302.5-302.26 - prod 0x86 => `BINOP`_instr(`I64`_numtype, `SHL`_binop_) + prod 0x86 => BINOP_instr(I64_numtype, SHL_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:303.5-303.28 - prod 0x87 => `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`S`_sx)) + prod 0x87 => BINOP_instr(I64_numtype, SHR_binop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:304.5-304.28 - prod 0x88 => `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`U`_sx)) + prod 0x88 => BINOP_instr(I64_numtype, SHR_binop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:305.5-305.27 - prod 0x89 => `BINOP`_instr(`I64`_numtype, `ROTL`_binop_) + prod 0x89 => BINOP_instr(I64_numtype, ROTL_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:306.5-306.27 - prod 0x8A => `BINOP`_instr(`I64`_numtype, `ROTR`_binop_) + prod 0x8A => BINOP_instr(I64_numtype, ROTR_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:310.5-310.25 - prod 0x8B => `UNOP`_instr(`F32`_numtype, `ABS`_unop_) + prod 0x8B => UNOP_instr(F32_numtype, ABS_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:311.5-311.25 - prod 0x8C => `UNOP`_instr(`F32`_numtype, `NEG`_unop_) + prod 0x8C => UNOP_instr(F32_numtype, NEG_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:312.5-312.26 - prod 0x8D => `UNOP`_instr(`F32`_numtype, `CEIL`_unop_) + prod 0x8D => UNOP_instr(F32_numtype, CEIL_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:313.5-313.27 - prod 0x8E => `UNOP`_instr(`F32`_numtype, `FLOOR`_unop_) + prod 0x8E => UNOP_instr(F32_numtype, FLOOR_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:314.5-314.27 - prod 0x8F => `UNOP`_instr(`F32`_numtype, `TRUNC`_unop_) + prod 0x8F => UNOP_instr(F32_numtype, TRUNC_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:315.5-315.29 - prod 0x90 => `UNOP`_instr(`F32`_numtype, `NEAREST`_unop_) + prod 0x90 => UNOP_instr(F32_numtype, NEAREST_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:316.5-316.26 - prod 0x91 => `UNOP`_instr(`F32`_numtype, `SQRT`_unop_) + prod 0x91 => UNOP_instr(F32_numtype, SQRT_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:320.5-320.26 - prod 0x92 => `BINOP`_instr(`F32`_numtype, `ADD`_binop_) + prod 0x92 => BINOP_instr(F32_numtype, ADD_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:321.5-321.26 - prod 0x93 => `BINOP`_instr(`F32`_numtype, `SUB`_binop_) + prod 0x93 => BINOP_instr(F32_numtype, SUB_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:322.5-322.26 - prod 0x94 => `BINOP`_instr(`F32`_numtype, `MUL`_binop_) + prod 0x94 => BINOP_instr(F32_numtype, MUL_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:323.5-323.26 - prod 0x95 => `BINOP`_instr(`F32`_numtype, `DIV`_binop_) + prod 0x95 => BINOP_instr(F32_numtype, DIV_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:324.5-324.26 - prod 0x96 => `BINOP`_instr(`F32`_numtype, `MIN`_binop_) + prod 0x96 => BINOP_instr(F32_numtype, MIN_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:325.5-325.26 - prod 0x97 => `BINOP`_instr(`F32`_numtype, `MAX`_binop_) + prod 0x97 => BINOP_instr(F32_numtype, MAX_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:326.5-326.31 - prod 0x98 => `BINOP`_instr(`F32`_numtype, `COPYSIGN`_binop_) + prod 0x98 => BINOP_instr(F32_numtype, COPYSIGN_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:330.5-330.25 - prod 0x99 => `UNOP`_instr(`F64`_numtype, `ABS`_unop_) + prod 0x99 => UNOP_instr(F64_numtype, ABS_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:331.5-331.25 - prod 0x9A => `UNOP`_instr(`F64`_numtype, `NEG`_unop_) + prod 0x9A => UNOP_instr(F64_numtype, NEG_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:332.5-332.26 - prod 0x9B => `UNOP`_instr(`F64`_numtype, `CEIL`_unop_) + prod 0x9B => UNOP_instr(F64_numtype, CEIL_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:333.5-333.27 - prod 0x9C => `UNOP`_instr(`F64`_numtype, `FLOOR`_unop_) + prod 0x9C => UNOP_instr(F64_numtype, FLOOR_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:334.5-334.27 - prod 0x9D => `UNOP`_instr(`F64`_numtype, `TRUNC`_unop_) + prod 0x9D => UNOP_instr(F64_numtype, TRUNC_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:335.5-335.29 - prod 0x9E => `UNOP`_instr(`F64`_numtype, `NEAREST`_unop_) + prod 0x9E => UNOP_instr(F64_numtype, NEAREST_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:336.5-336.26 - prod 0x9F => `UNOP`_instr(`F64`_numtype, `SQRT`_unop_) + prod 0x9F => UNOP_instr(F64_numtype, SQRT_unop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:340.5-340.26 - prod 0xA0 => `BINOP`_instr(`F64`_numtype, `ADD`_binop_) + prod 0xA0 => BINOP_instr(F64_numtype, ADD_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:341.5-341.26 - prod 0xA1 => `BINOP`_instr(`F64`_numtype, `SUB`_binop_) + prod 0xA1 => BINOP_instr(F64_numtype, SUB_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:342.5-342.26 - prod 0xA2 => `BINOP`_instr(`F64`_numtype, `MUL`_binop_) + prod 0xA2 => BINOP_instr(F64_numtype, MUL_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:343.5-343.26 - prod 0xA3 => `BINOP`_instr(`F64`_numtype, `DIV`_binop_) + prod 0xA3 => BINOP_instr(F64_numtype, DIV_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:344.5-344.26 - prod 0xA4 => `BINOP`_instr(`F64`_numtype, `MIN`_binop_) + prod 0xA4 => BINOP_instr(F64_numtype, MIN_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:345.5-345.26 - prod 0xA5 => `BINOP`_instr(`F64`_numtype, `MAX`_binop_) + prod 0xA5 => BINOP_instr(F64_numtype, MAX_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:346.5-346.31 - prod 0xA6 => `BINOP`_instr(`F64`_numtype, `COPYSIGN`_binop_) + prod 0xA6 => BINOP_instr(F64_numtype, COPYSIGN_binop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:351.5-351.31 - prod 0xA7 => `CVTOP`_instr(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__) + prod 0xA7 => CVTOP_instr(I32_numtype, I64_numtype, WRAP_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:352.5-352.34 - prod 0xA8 => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx)) + prod 0xA8 => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:353.5-353.34 - prod 0xA9 => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx)) + prod 0xA9 => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:354.5-354.34 - prod 0xAA => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx)) + prod 0xAA => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:355.5-355.34 - prod 0xAB => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx)) + prod 0xAB => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:356.5-356.35 - prod 0xAC => `CVTOP`_instr(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__(`S`_sx)) + prod 0xAC => CVTOP_instr(I64_numtype, I32_numtype, EXTEND_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:357.5-357.35 - prod 0xAD => `CVTOP`_instr(`I64`_numtype, `I32`_numtype, `EXTEND`_cvtop__(`U`_sx)) + prod 0xAD => CVTOP_instr(I64_numtype, I32_numtype, EXTEND_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:358.5-358.34 - prod 0xAE => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx)) + prod 0xAE => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:359.5-359.34 - prod 0xAF => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx)) + prod 0xAF => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:360.5-360.34 - prod 0xB0 => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx)) + prod 0xB0 => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:361.5-361.34 - prod 0xB1 => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx)) + prod 0xB1 => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:362.5-362.36 - prod 0xB2 => `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx)) + prod 0xB2 => CVTOP_instr(F32_numtype, I32_numtype, CONVERT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:363.5-363.36 - prod 0xB3 => `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx)) + prod 0xB3 => CVTOP_instr(F32_numtype, I32_numtype, CONVERT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:364.5-364.36 - prod 0xB4 => `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx)) + prod 0xB4 => CVTOP_instr(F32_numtype, I64_numtype, CONVERT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:365.5-365.36 - prod 0xB5 => `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx)) + prod 0xB5 => CVTOP_instr(F32_numtype, I64_numtype, CONVERT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:366.5-366.33 - prod 0xB6 => `CVTOP`_instr(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__) + prod 0xB6 => CVTOP_instr(F32_numtype, F64_numtype, DEMOTE_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:367.5-367.36 - prod 0xB7 => `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx)) + prod 0xB7 => CVTOP_instr(F64_numtype, I32_numtype, CONVERT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:368.5-368.36 - prod 0xB8 => `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx)) + prod 0xB8 => CVTOP_instr(F64_numtype, I32_numtype, CONVERT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:369.5-369.36 - prod 0xB9 => `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx)) + prod 0xB9 => CVTOP_instr(F64_numtype, I64_numtype, CONVERT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:370.5-370.36 - prod 0xBA => `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx)) + prod 0xBA => CVTOP_instr(F64_numtype, I64_numtype, CONVERT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:371.5-371.34 - prod 0xBB => `CVTOP`_instr(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__) + prod 0xBB => CVTOP_instr(F64_numtype, F32_numtype, PROMOTE_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:372.5-372.38 - prod 0xBC => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__) + prod 0xBC => CVTOP_instr(I32_numtype, F32_numtype, REINTERPRET_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:373.5-373.38 - prod 0xBD => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__) + prod 0xBD => CVTOP_instr(I64_numtype, F64_numtype, REINTERPRET_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:374.5-374.38 - prod 0xBE => `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__) + prod 0xBE => CVTOP_instr(F32_numtype, I32_numtype, REINTERPRET_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:375.5-375.38 - prod 0xBF => `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__) + prod 0xBF => CVTOP_instr(F64_numtype, I64_numtype, REINTERPRET_cvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:379.5-379.45 - prod {{0xFC} {`%`_u32(0):Bu32}} => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) + prod {{0xFC} {`%`_u32(0):Bu32}} => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_SAT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:380.5-380.45 - prod {{0xFC} {`%`_u32(1):Bu32}} => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) + prod {{0xFC} {`%`_u32(1):Bu32}} => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_SAT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:381.5-381.45 - prod {{0xFC} {`%`_u32(2):Bu32}} => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) + prod {{0xFC} {`%`_u32(2):Bu32}} => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_SAT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:382.5-382.45 - prod {{0xFC} {`%`_u32(3):Bu32}} => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) + prod {{0xFC} {`%`_u32(3):Bu32}} => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_SAT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:383.5-383.45 - prod {{0xFC} {`%`_u32(4):Bu32}} => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) + prod {{0xFC} {`%`_u32(4):Bu32}} => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_SAT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:384.5-384.45 - prod {{0xFC} {`%`_u32(5):Bu32}} => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) + prod {{0xFC} {`%`_u32(5):Bu32}} => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_SAT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:385.5-385.45 - prod {{0xFC} {`%`_u32(6):Bu32}} => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) + prod {{0xFC} {`%`_u32(6):Bu32}} => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_SAT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:386.5-386.45 - prod {{0xFC} {`%`_u32(7):Bu32}} => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) + prod {{0xFC} {`%`_u32(7):Bu32}} => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_SAT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:396.5-396.50 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(0):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(0):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:397.5-397.70 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(1):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(1):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:398.5-398.70 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(2):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(2):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:399.5-399.71 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(3):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(3):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:400.5-400.71 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(4):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(4):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:401.5-401.71 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(5):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(5):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:402.5-402.71 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(6):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(6):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:403.5-403.61 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(7):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(8))), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(7):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(8))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:404.5-404.62 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(8):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(16))), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(8):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(16))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:405.5-405.62 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(9):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(32))), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(9):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(32))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:406.5-406.63 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(10):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(64))), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(10):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(64))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:407.5-407.52 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(11):Bu32} {(x, ao):Bmemarg}} => `VSTORE`_instr(`V128`_vectype, x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(11):Bu32} {(x, ao):Bmemarg}} => VSTORE_instr(V128_vectype, x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:408.5-408.72 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(84):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(84):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(8), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:409.5-409.73 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(85):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(85):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(16), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:410.5-410.73 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(86):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(86):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(32), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:411.5-411.73 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(87):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(87):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(64), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:412.5-412.73 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(88):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(88):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(8), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:413.5-413.74 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(89):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(89):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(16), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:414.5-414.74 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(90):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(90):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(32), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:415.5-415.74 - prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(91):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{0xFD} {`%`_u32(91):Bu32} {(x, ao):Bmemarg} {i:Blaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(64), x, ao, i) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:416.5-416.62 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(92):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(32))), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(92):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(32))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:417.5-417.62 - prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(93):Bu32} {(x, ao):Bmemarg}} => `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(64))), x, ao) + prod{x : idx, ao : memarg} {{0xFD} {`%`_u32(93):Bu32} {(x, ao):Bmemarg}} => VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(64))), x, ao) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:421.5-421.72 - prod{`b*` : byte*} {{0xFD} {`%`_u32(12):Bu32} {b:Bbyte^16{b <- `b*`}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, b^16{b <- `b*`})) + prod{`b*` : byte*} {{0xFD} {`%`_u32(12):Bu32} {b:Bbyte^16{b <- `b*`}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, b^16{b <- `b*`})) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:425.5-425.61 - prod{`l*` : labelidx*} {{0xFD} {`%`_u32(13):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx^16{l <- `l*`}}} => `VSHUFFLE`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_laneidx(l!`%`_labelidx.0)^16{l <- `l*`}) + prod{`l*` : labelidx*} {{0xFD} {`%`_u32(13):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx^16{l <- `l*`}}} => VSHUFFLE_instr(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(16))), `%`_laneidx(l!`%`_labelidx.0)^16{l <- `l*`}) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:426.5-426.49 - prod {{0xFD} {`%`_u32(14):Bu32}} => `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SWIZZLE`_vswizzlop_) + prod {{0xFD} {`%`_u32(14):Bu32}} => VSWIZZLOP_instr(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SWIZZLE_vswizzlop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:427.5-427.58 - prod {{0xFD} {`%`_u32(256):Bu32}} => `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_SWIZZLE`_vswizzlop_) + prod {{0xFD} {`%`_u32(256):Bu32}} => VSWIZZLOP_instr(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(16))), RELAXED_SWIZZLE_vswizzlop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:431.5-431.38 - prod {{0xFD} {`%`_u32(15):Bu32}} => `VSPLAT`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16))) + prod {{0xFD} {`%`_u32(15):Bu32}} => VSPLAT_instr(`%X%`_shape(I8_lanetype, `%`_dim(16))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:432.5-432.38 - prod {{0xFD} {`%`_u32(16):Bu32}} => `VSPLAT`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8))) + prod {{0xFD} {`%`_u32(16):Bu32}} => VSPLAT_instr(`%X%`_shape(I16_lanetype, `%`_dim(8))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:433.5-433.38 - prod {{0xFD} {`%`_u32(17):Bu32}} => `VSPLAT`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4))) + prod {{0xFD} {`%`_u32(17):Bu32}} => VSPLAT_instr(`%X%`_shape(I32_lanetype, `%`_dim(4))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:434.5-434.38 - prod {{0xFD} {`%`_u32(18):Bu32}} => `VSPLAT`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2))) + prod {{0xFD} {`%`_u32(18):Bu32}} => VSPLAT_instr(`%X%`_shape(I64_lanetype, `%`_dim(2))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:435.5-435.38 - prod {{0xFD} {`%`_u32(19):Bu32}} => `VSPLAT`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4))) + prod {{0xFD} {`%`_u32(19):Bu32}} => VSPLAT_instr(`%X%`_shape(F32_lanetype, `%`_dim(4))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:436.5-436.38 - prod {{0xFD} {`%`_u32(20):Bu32}} => `VSPLAT`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2))) + prod {{0xFD} {`%`_u32(20):Bu32}} => VSPLAT_instr(`%X%`_shape(F64_lanetype, `%`_dim(2))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:440.5-440.60 - prod{l : labelidx} {{0xFD} {`%`_u32(21):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`S`_sx), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(21):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ?(S_sx), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:441.5-441.60 - prod{l : labelidx} {{0xFD} {`%`_u32(22):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`U`_sx), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(22):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ?(U_sx), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:442.5-442.58 - prod{l : labelidx} {{0xFD} {`%`_u32(23):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(23):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:443.5-443.60 - prod{l : labelidx} {{0xFD} {`%`_u32(24):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`S`_sx), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(24):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ?(S_sx), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:444.5-444.60 - prod{l : labelidx} {{0xFD} {`%`_u32(25):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`U`_sx), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(25):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ?(U_sx), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:445.5-445.58 - prod{l : labelidx} {{0xFD} {`%`_u32(26):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(26):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:446.5-446.58 - prod{l : labelidx} {{0xFD} {`%`_u32(27):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(27):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:447.5-447.58 - prod{l : labelidx} {{0xFD} {`%`_u32(28):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(28):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:448.5-448.58 - prod{l : labelidx} {{0xFD} {`%`_u32(29):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(29):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:449.5-449.58 - prod{l : labelidx} {{0xFD} {`%`_u32(30):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(30):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:450.5-450.58 - prod{l : labelidx} {{0xFD} {`%`_u32(31):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(31):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), ?(), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:451.5-451.58 - prod{l : labelidx} {{0xFD} {`%`_u32(32):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(32):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:452.5-452.58 - prod{l : labelidx} {{0xFD} {`%`_u32(33):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(33):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), ?(), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:453.5-453.58 - prod{l : labelidx} {{0xFD} {`%`_u32(34):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0)) + prod{l : labelidx} {{0xFD} {`%`_u32(34):Bu32} {`%`_laneidx(l!`%`_labelidx.0):Blaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%`_laneidx(l!`%`_labelidx.0)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:457.5-457.41 - prod {{0xFD} {`%`_u32(35):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EQ`_vrelop_) + prod {{0xFD} {`%`_u32(35):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), EQ_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:458.5-458.41 - prod {{0xFD} {`%`_u32(36):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NE`_vrelop_) + prod {{0xFD} {`%`_u32(36):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), NE_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:459.5-459.43 - prod {{0xFD} {`%`_u32(37):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(37):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:460.5-460.43 - prod {{0xFD} {`%`_u32(38):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`U`_sx)) + prod {{0xFD} {`%`_u32(38):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LT_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:461.5-461.43 - prod {{0xFD} {`%`_u32(39):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(39):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:462.5-462.43 - prod {{0xFD} {`%`_u32(40):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`U`_sx)) + prod {{0xFD} {`%`_u32(40):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GT_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:463.5-463.43 - prod {{0xFD} {`%`_u32(41):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(41):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:464.5-464.43 - prod {{0xFD} {`%`_u32(42):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`U`_sx)) + prod {{0xFD} {`%`_u32(42):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LE_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:465.5-465.43 - prod {{0xFD} {`%`_u32(43):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(43):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:466.5-466.43 - prod {{0xFD} {`%`_u32(44):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`U`_sx)) + prod {{0xFD} {`%`_u32(44):Bu32}} => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GE_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:470.5-470.41 - prod {{0xFD} {`%`_u32(45):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EQ`_vrelop_) + prod {{0xFD} {`%`_u32(45):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), EQ_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:471.5-471.41 - prod {{0xFD} {`%`_u32(46):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NE`_vrelop_) + prod {{0xFD} {`%`_u32(46):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), NE_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:472.5-472.43 - prod {{0xFD} {`%`_u32(47):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(47):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:473.5-473.43 - prod {{0xFD} {`%`_u32(48):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`U`_sx)) + prod {{0xFD} {`%`_u32(48):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LT_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:474.5-474.43 - prod {{0xFD} {`%`_u32(49):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(49):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:475.5-475.43 - prod {{0xFD} {`%`_u32(50):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`U`_sx)) + prod {{0xFD} {`%`_u32(50):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GT_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:476.5-476.43 - prod {{0xFD} {`%`_u32(51):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(51):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:477.5-477.43 - prod {{0xFD} {`%`_u32(52):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`U`_sx)) + prod {{0xFD} {`%`_u32(52):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LE_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:478.5-478.43 - prod {{0xFD} {`%`_u32(53):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(53):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:479.5-479.43 - prod {{0xFD} {`%`_u32(54):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`U`_sx)) + prod {{0xFD} {`%`_u32(54):Bu32}} => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GE_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:483.5-483.41 - prod {{0xFD} {`%`_u32(55):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EQ`_vrelop_) + prod {{0xFD} {`%`_u32(55):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), EQ_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:484.5-484.41 - prod {{0xFD} {`%`_u32(56):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NE`_vrelop_) + prod {{0xFD} {`%`_u32(56):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), NE_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:485.5-485.43 - prod {{0xFD} {`%`_u32(57):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(57):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:486.5-486.43 - prod {{0xFD} {`%`_u32(58):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`U`_sx)) + prod {{0xFD} {`%`_u32(58):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LT_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:487.5-487.43 - prod {{0xFD} {`%`_u32(59):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(59):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:488.5-488.43 - prod {{0xFD} {`%`_u32(60):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`U`_sx)) + prod {{0xFD} {`%`_u32(60):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GT_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:489.5-489.43 - prod {{0xFD} {`%`_u32(61):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(61):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:490.5-490.43 - prod {{0xFD} {`%`_u32(62):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`U`_sx)) + prod {{0xFD} {`%`_u32(62):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LE_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:491.5-491.43 - prod {{0xFD} {`%`_u32(63):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(63):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:492.5-492.43 - prod {{0xFD} {`%`_u32(64):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`U`_sx)) + prod {{0xFD} {`%`_u32(64):Bu32}} => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GE_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:496.5-496.41 - prod {{0xFD} {`%`_u32(65):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `EQ`_vrelop_) + prod {{0xFD} {`%`_u32(65):Bu32}} => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), EQ_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:497.5-497.41 - prod {{0xFD} {`%`_u32(66):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NE`_vrelop_) + prod {{0xFD} {`%`_u32(66):Bu32}} => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), NE_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:498.5-498.41 - prod {{0xFD} {`%`_u32(67):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LT`_vrelop_) + prod {{0xFD} {`%`_u32(67):Bu32}} => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), LT_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:499.5-499.41 - prod {{0xFD} {`%`_u32(68):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GT`_vrelop_) + prod {{0xFD} {`%`_u32(68):Bu32}} => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), GT_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:500.5-500.41 - prod {{0xFD} {`%`_u32(69):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LE`_vrelop_) + prod {{0xFD} {`%`_u32(69):Bu32}} => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), LE_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:501.5-501.41 - prod {{0xFD} {`%`_u32(70):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GE`_vrelop_) + prod {{0xFD} {`%`_u32(70):Bu32}} => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), GE_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:505.5-505.41 - prod {{0xFD} {`%`_u32(71):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `EQ`_vrelop_) + prod {{0xFD} {`%`_u32(71):Bu32}} => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), EQ_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:506.5-506.41 - prod {{0xFD} {`%`_u32(72):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NE`_vrelop_) + prod {{0xFD} {`%`_u32(72):Bu32}} => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), NE_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:507.5-507.41 - prod {{0xFD} {`%`_u32(73):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LT`_vrelop_) + prod {{0xFD} {`%`_u32(73):Bu32}} => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), LT_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:508.5-508.41 - prod {{0xFD} {`%`_u32(74):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GT`_vrelop_) + prod {{0xFD} {`%`_u32(74):Bu32}} => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), GT_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:509.5-509.41 - prod {{0xFD} {`%`_u32(75):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LE`_vrelop_) + prod {{0xFD} {`%`_u32(75):Bu32}} => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), LE_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:510.5-510.41 - prod {{0xFD} {`%`_u32(76):Bu32}} => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GE`_vrelop_) + prod {{0xFD} {`%`_u32(76):Bu32}} => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), GE_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:514.5-514.36 - prod {{0xFD} {`%`_u32(77):Bu32}} => `VVUNOP`_instr(`V128`_vectype, `NOT`_vvunop) + prod {{0xFD} {`%`_u32(77):Bu32}} => VVUNOP_instr(V128_vectype, NOT_vvunop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:518.5-518.37 - prod {{0xFD} {`%`_u32(78):Bu32}} => `VVBINOP`_instr(`V128`_vectype, `AND`_vvbinop) + prod {{0xFD} {`%`_u32(78):Bu32}} => VVBINOP_instr(V128_vectype, AND_vvbinop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:519.5-519.40 - prod {{0xFD} {`%`_u32(79):Bu32}} => `VVBINOP`_instr(`V128`_vectype, `ANDNOT`_vvbinop) + prod {{0xFD} {`%`_u32(79):Bu32}} => VVBINOP_instr(V128_vectype, ANDNOT_vvbinop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:520.5-520.36 - prod {{0xFD} {`%`_u32(80):Bu32}} => `VVBINOP`_instr(`V128`_vectype, `OR`_vvbinop) + prod {{0xFD} {`%`_u32(80):Bu32}} => VVBINOP_instr(V128_vectype, OR_vvbinop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:521.5-521.37 - prod {{0xFD} {`%`_u32(81):Bu32}} => `VVBINOP`_instr(`V128`_vectype, `XOR`_vvbinop) + prod {{0xFD} {`%`_u32(81):Bu32}} => VVBINOP_instr(V128_vectype, XOR_vvbinop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:525.5-525.44 - prod {{0xFD} {`%`_u32(82):Bu32}} => `VVTERNOP`_instr(`V128`_vectype, `BITSELECT`_vvternop) + prod {{0xFD} {`%`_u32(82):Bu32}} => VVTERNOP_instr(V128_vectype, BITSELECT_vvternop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:529.5-529.43 - prod {{0xFD} {`%`_u32(83):Bu32}} => `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop) + prod {{0xFD} {`%`_u32(83):Bu32}} => VVTESTOP_instr(V128_vectype, ANY_TRUE_vvtestop) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:533.5-533.41 - prod {{0xFD} {`%`_u32(96):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ABS`_vunop_) + prod {{0xFD} {`%`_u32(96):Bu32}} => VUNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ABS_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:534.5-534.41 - prod {{0xFD} {`%`_u32(97):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NEG`_vunop_) + prod {{0xFD} {`%`_u32(97):Bu32}} => VUNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), NEG_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:535.5-535.44 - prod {{0xFD} {`%`_u32(98):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `POPCNT`_vunop_) + prod {{0xFD} {`%`_u32(98):Bu32}} => VUNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), POPCNT_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:539.5-539.48 - prod {{0xFD} {`%`_u32(99):Bu32}} => `VTESTOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ALL_TRUE`_vtestop_) + prod {{0xFD} {`%`_u32(99):Bu32}} => VTESTOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ALL_TRUE_vtestop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:543.5-543.41 - prod {{0xFD} {`%`_u32(100):Bu32}} => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))) + prod {{0xFD} {`%`_u32(100):Bu32}} => VBITMASK_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16)))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:547.5-547.53 - prod {{0xFD} {`%`_u32(101):Bu32}} => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `S`_sx) + prod {{0xFD} {`%`_u32(101):Bu32}} => VNARROW_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), S_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:548.5-548.53 - prod {{0xFD} {`%`_u32(102):Bu32}} => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `U`_sx) + prod {{0xFD} {`%`_u32(102):Bu32}} => VNARROW_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), U_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:552.5-552.45 - prod {{0xFD} {`%`_u32(107):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHL`_vshiftop_) + prod {{0xFD} {`%`_u32(107):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SHL_vshiftop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:553.5-553.47 - prod {{0xFD} {`%`_u32(108):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`S`_sx)) + prod {{0xFD} {`%`_u32(108):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SHR_vshiftop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:554.5-554.47 - prod {{0xFD} {`%`_u32(109):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`U`_sx)) + prod {{0xFD} {`%`_u32(109):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SHR_vshiftop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:558.5-558.43 - prod {{0xFD} {`%`_u32(110):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD`_vbinop_) + prod {{0xFD} {`%`_u32(110):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ADD_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:559.5-559.49 - prod {{0xFD} {`%`_u32(111):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`S`_sx)) + prod {{0xFD} {`%`_u32(111):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ADD_SAT_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:560.5-560.49 - prod {{0xFD} {`%`_u32(112):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`U`_sx)) + prod {{0xFD} {`%`_u32(112):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ADD_SAT_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:561.5-561.43 - prod {{0xFD} {`%`_u32(113):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB`_vbinop_) + prod {{0xFD} {`%`_u32(113):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), SUB_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:562.5-562.49 - prod {{0xFD} {`%`_u32(114):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`S`_sx)) + prod {{0xFD} {`%`_u32(114):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), SUB_SAT_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:563.5-563.49 - prod {{0xFD} {`%`_u32(115):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`U`_sx)) + prod {{0xFD} {`%`_u32(115):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), SUB_SAT_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:564.5-564.45 - prod {{0xFD} {`%`_u32(118):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`S`_sx)) + prod {{0xFD} {`%`_u32(118):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MIN_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:565.5-565.45 - prod {{0xFD} {`%`_u32(119):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`U`_sx)) + prod {{0xFD} {`%`_u32(119):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MIN_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:566.5-566.45 - prod {{0xFD} {`%`_u32(120):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`S`_sx)) + prod {{0xFD} {`%`_u32(120):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MAX_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:567.5-567.45 - prod {{0xFD} {`%`_u32(121):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`U`_sx)) + prod {{0xFD} {`%`_u32(121):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MAX_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:568.5-568.46 - prod {{0xFD} {`%`_u32(123):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `AVGRU`_vbinop_) + prod {{0xFD} {`%`_u32(123):Bu32}} => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), AVGRU_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:572.5-572.70 - prod {{0xFD} {`%`_u32(124):Bu32}} => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx)) + prod {{0xFD} {`%`_u32(124):Bu32}} => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTADD_PAIRWISE_vextunop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:573.5-573.70 - prod {{0xFD} {`%`_u32(125):Bu32}} => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx)) + prod {{0xFD} {`%`_u32(125):Bu32}} => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTADD_PAIRWISE_vextunop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:577.5-577.42 - prod {{0xFD} {`%`_u32(128):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ABS`_vunop_) + prod {{0xFD} {`%`_u32(128):Bu32}} => VUNOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ABS_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:578.5-578.42 - prod {{0xFD} {`%`_u32(129):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NEG`_vunop_) + prod {{0xFD} {`%`_u32(129):Bu32}} => VUNOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), NEG_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:582.5-582.53 - prod {{0xFD} {`%`_u32(130):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_) + prod {{0xFD} {`%`_u32(130):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), Q15MULR_SATS_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:583.5-583.43 - prod {{0xFD} {`%`_u32(142):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD`_vbinop_) + prod {{0xFD} {`%`_u32(142):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ADD_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:584.5-584.49 - prod {{0xFD} {`%`_u32(143):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`S`_sx)) + prod {{0xFD} {`%`_u32(143):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ADD_SAT_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:585.5-585.49 - prod {{0xFD} {`%`_u32(144):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`U`_sx)) + prod {{0xFD} {`%`_u32(144):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ADD_SAT_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:586.5-586.43 - prod {{0xFD} {`%`_u32(145):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB`_vbinop_) + prod {{0xFD} {`%`_u32(145):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), SUB_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:587.5-587.49 - prod {{0xFD} {`%`_u32(146):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`S`_sx)) + prod {{0xFD} {`%`_u32(146):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), SUB_SAT_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:588.5-588.49 - prod {{0xFD} {`%`_u32(147):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`U`_sx)) + prod {{0xFD} {`%`_u32(147):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), SUB_SAT_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:589.5-589.43 - prod {{0xFD} {`%`_u32(149):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MUL`_vbinop_) + prod {{0xFD} {`%`_u32(149):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MUL_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:590.5-590.45 - prod {{0xFD} {`%`_u32(150):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`S`_sx)) + prod {{0xFD} {`%`_u32(150):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MIN_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:591.5-591.45 - prod {{0xFD} {`%`_u32(151):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`U`_sx)) + prod {{0xFD} {`%`_u32(151):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MIN_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:592.5-592.45 - prod {{0xFD} {`%`_u32(152):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`S`_sx)) + prod {{0xFD} {`%`_u32(152):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MAX_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:593.5-593.45 - prod {{0xFD} {`%`_u32(153):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`U`_sx)) + prod {{0xFD} {`%`_u32(153):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MAX_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:594.5-594.46 - prod {{0xFD} {`%`_u32(155):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `AVGRU`_vbinop_) + prod {{0xFD} {`%`_u32(155):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), AVGRU_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:595.5-595.57 - prod {{0xFD} {`%`_u32(273):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_) + prod {{0xFD} {`%`_u32(273):Bu32}} => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), RELAXED_Q15MULRS_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:599.5-599.49 - prod {{0xFD} {`%`_u32(131):Bu32}} => `VTESTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ALL_TRUE`_vtestop_) + prod {{0xFD} {`%`_u32(131):Bu32}} => VTESTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ALL_TRUE_vtestop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:603.5-603.41 - prod {{0xFD} {`%`_u32(132):Bu32}} => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))) + prod {{0xFD} {`%`_u32(132):Bu32}} => VBITMASK_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8)))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:607.5-607.53 - prod {{0xFD} {`%`_u32(133):Bu32}} => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `S`_sx) + prod {{0xFD} {`%`_u32(133):Bu32}} => VNARROW_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), S_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:608.5-608.53 - prod {{0xFD} {`%`_u32(134):Bu32}} => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `U`_sx) + prod {{0xFD} {`%`_u32(134):Bu32}} => VNARROW_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), U_sx) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:612.5-612.63 - prod {{0xFD} {`%`_u32(135):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(135):Bu32}} => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(LOW_half, S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:613.5-613.64 - prod {{0xFD} {`%`_u32(136):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(136):Bu32}} => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(HIGH_half, S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:614.5-614.63 - prod {{0xFD} {`%`_u32(137):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(137):Bu32}} => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(LOW_half, U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:615.5-615.64 - prod {{0xFD} {`%`_u32(138):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(138):Bu32}} => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(HIGH_half, U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:619.5-619.45 - prod {{0xFD} {`%`_u32(139):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHL`_vshiftop_) + prod {{0xFD} {`%`_u32(139):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), SHL_vshiftop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:620.5-620.47 - prod {{0xFD} {`%`_u32(140):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`S`_sx)) + prod {{0xFD} {`%`_u32(140):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), SHR_vshiftop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:621.5-621.47 - prod {{0xFD} {`%`_u32(141):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`U`_sx)) + prod {{0xFD} {`%`_u32(141):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), SHR_vshiftop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:625.5-625.66 - prod {{0xFD} {`%`_u32(156):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(156):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(LOW_half, S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:626.5-626.67 - prod {{0xFD} {`%`_u32(157):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(157):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(HIGH_half, S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:627.5-627.66 - prod {{0xFD} {`%`_u32(158):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(158):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(LOW_half, U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:628.5-628.67 - prod {{0xFD} {`%`_u32(159):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(159):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(HIGH_half, U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:629.5-629.67 - prod {{0xFD} {`%`_u32(274):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_DOTS`_vextbinop__) + prod {{0xFD} {`%`_u32(274):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), RELAXED_DOTS_vextbinop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:633.5-633.70 - prod {{0xFD} {`%`_u32(126):Bu32}} => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx)) + prod {{0xFD} {`%`_u32(126):Bu32}} => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTADD_PAIRWISE_vextunop__(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:634.5-634.70 - prod {{0xFD} {`%`_u32(127):Bu32}} => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx)) + prod {{0xFD} {`%`_u32(127):Bu32}} => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTADD_PAIRWISE_vextunop__(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:638.5-638.42 - prod {{0xFD} {`%`_u32(160):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ABS`_vunop_) + prod {{0xFD} {`%`_u32(160):Bu32}} => VUNOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ABS_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:639.5-639.42 - prod {{0xFD} {`%`_u32(161):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NEG`_vunop_) + prod {{0xFD} {`%`_u32(161):Bu32}} => VUNOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), NEG_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:643.5-643.49 - prod {{0xFD} {`%`_u32(163):Bu32}} => `VTESTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ALL_TRUE`_vtestop_) + prod {{0xFD} {`%`_u32(163):Bu32}} => VTESTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ALL_TRUE_vtestop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:647.5-647.41 - prod {{0xFD} {`%`_u32(164):Bu32}} => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))) + prod {{0xFD} {`%`_u32(164):Bu32}} => VBITMASK_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4)))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:651.5-651.63 - prod {{0xFD} {`%`_u32(167):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(167):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(LOW_half, S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:652.5-652.64 - prod {{0xFD} {`%`_u32(168):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(168):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(HIGH_half, S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:653.5-653.63 - prod {{0xFD} {`%`_u32(169):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(169):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(LOW_half, U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:654.5-654.64 - prod {{0xFD} {`%`_u32(170):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(170):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(HIGH_half, U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:658.5-658.45 - prod {{0xFD} {`%`_u32(171):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHL`_vshiftop_) + prod {{0xFD} {`%`_u32(171):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), SHL_vshiftop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:659.5-659.49 - prod {{0xFD} {`%`_u32(172):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`S`_sx)) + prod {{0xFD} {`%`_u32(172):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), SHR_vshiftop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:660.5-660.49 - prod {{0xFD} {`%`_u32(173):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`U`_sx)) + prod {{0xFD} {`%`_u32(173):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), SHR_vshiftop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:664.5-664.43 - prod {{0xFD} {`%`_u32(174):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ADD`_vbinop_) + prod {{0xFD} {`%`_u32(174):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ADD_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:665.5-665.43 - prod {{0xFD} {`%`_u32(177):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `SUB`_vbinop_) + prod {{0xFD} {`%`_u32(177):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), SUB_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:666.5-666.43 - prod {{0xFD} {`%`_u32(181):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MUL`_vbinop_) + prod {{0xFD} {`%`_u32(181):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MUL_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:667.5-667.45 - prod {{0xFD} {`%`_u32(182):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`S`_sx)) + prod {{0xFD} {`%`_u32(182):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MIN_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:668.5-668.45 - prod {{0xFD} {`%`_u32(183):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`U`_sx)) + prod {{0xFD} {`%`_u32(183):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MIN_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:669.5-669.45 - prod {{0xFD} {`%`_u32(184):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`S`_sx)) + prod {{0xFD} {`%`_u32(184):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MAX_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:670.5-670.45 - prod {{0xFD} {`%`_u32(185):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`U`_sx)) + prod {{0xFD} {`%`_u32(185):Bu32}} => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MAX_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:674.5-674.59 - prod {{0xFD} {`%`_u32(186):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `DOTS`_vextbinop__) + prod {{0xFD} {`%`_u32(186):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), DOTS_vextbinop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:675.5-675.66 - prod {{0xFD} {`%`_u32(188):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(188):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(LOW_half, S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:676.5-676.67 - prod {{0xFD} {`%`_u32(189):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(189):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(HIGH_half, S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:677.5-677.66 - prod {{0xFD} {`%`_u32(190):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(190):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(LOW_half, U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:678.5-678.67 - prod {{0xFD} {`%`_u32(191):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(191):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(HIGH_half, U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:682.5-682.72 - prod {{0xFD} {`%`_u32(275):Bu32}} => `VEXTTERNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `RELAXED_DOT_ADDS`_vextternop__) + prod {{0xFD} {`%`_u32(275):Bu32}} => VEXTTERNOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), RELAXED_DOT_ADDS_vextternop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:686.5-686.42 - prod {{0xFD} {`%`_u32(192):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ABS`_vunop_) + prod {{0xFD} {`%`_u32(192):Bu32}} => VUNOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ABS_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:687.5-687.42 - prod {{0xFD} {`%`_u32(193):Bu32}} => `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NEG`_vunop_) + prod {{0xFD} {`%`_u32(193):Bu32}} => VUNOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), NEG_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:691.5-691.49 - prod {{0xFD} {`%`_u32(195):Bu32}} => `VTESTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ALL_TRUE`_vtestop_) + prod {{0xFD} {`%`_u32(195):Bu32}} => VTESTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ALL_TRUE_vtestop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:695.5-695.41 - prod {{0xFD} {`%`_u32(196):Bu32}} => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))) + prod {{0xFD} {`%`_u32(196):Bu32}} => VBITMASK_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2)))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:699.5-699.63 - prod {{0xFD} {`%`_u32(199):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(199):Bu32}} => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(LOW_half, S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:700.5-700.64 - prod {{0xFD} {`%`_u32(200):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(200):Bu32}} => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(HIGH_half, S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:701.5-701.63 - prod {{0xFD} {`%`_u32(201):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(201):Bu32}} => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(LOW_half, U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:702.5-702.64 - prod {{0xFD} {`%`_u32(202):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(202):Bu32}} => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(HIGH_half, U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:706.5-706.45 - prod {{0xFD} {`%`_u32(203):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHL`_vshiftop_) + prod {{0xFD} {`%`_u32(203):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), SHL_vshiftop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:707.5-707.49 - prod {{0xFD} {`%`_u32(204):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`S`_sx)) + prod {{0xFD} {`%`_u32(204):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), SHR_vshiftop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:708.5-708.49 - prod {{0xFD} {`%`_u32(205):Bu32}} => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`U`_sx)) + prod {{0xFD} {`%`_u32(205):Bu32}} => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), SHR_vshiftop_(U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:712.5-712.43 - prod {{0xFD} {`%`_u32(206):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ADD`_vbinop_) + prod {{0xFD} {`%`_u32(206):Bu32}} => VBINOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ADD_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:713.5-713.43 - prod {{0xFD} {`%`_u32(209):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `SUB`_vbinop_) + prod {{0xFD} {`%`_u32(209):Bu32}} => VBINOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), SUB_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:714.5-714.43 - prod {{0xFD} {`%`_u32(213):Bu32}} => `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `MUL`_vbinop_) + prod {{0xFD} {`%`_u32(213):Bu32}} => VBINOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), MUL_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:718.5-718.42 - prod {{0xFD} {`%`_u32(214):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `EQ`_vrelop_) + prod {{0xFD} {`%`_u32(214):Bu32}} => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), EQ_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:719.5-719.42 - prod {{0xFD} {`%`_u32(215):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NE`_vrelop_) + prod {{0xFD} {`%`_u32(215):Bu32}} => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), NE_vrelop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:720.5-720.46 - prod {{0xFD} {`%`_u32(216):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LT`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(216):Bu32}} => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), LT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:721.5-721.46 - prod {{0xFD} {`%`_u32(217):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GT`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(217):Bu32}} => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), GT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:722.5-722.46 - prod {{0xFD} {`%`_u32(218):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LE`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(218):Bu32}} => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), LE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:723.5-723.46 - prod {{0xFD} {`%`_u32(219):Bu32}} => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GE`_vrelop_(`S`_sx)) + prod {{0xFD} {`%`_u32(219):Bu32}} => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), GE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:727.5-727.66 - prod {{0xFD} {`%`_u32(220):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(220):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(LOW_half, S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:728.5-728.67 - prod {{0xFD} {`%`_u32(221):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)) + prod {{0xFD} {`%`_u32(221):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(HIGH_half, S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:729.5-729.66 - prod {{0xFD} {`%`_u32(222):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(222):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(LOW_half, U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:730.5-730.67 - prod {{0xFD} {`%`_u32(223):Bu32}} => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)) + prod {{0xFD} {`%`_u32(223):Bu32}} => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(HIGH_half, U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:734.5-734.43 - prod {{0xFD} {`%`_u32(103):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `CEIL`_vunop_) + prod {{0xFD} {`%`_u32(103):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), CEIL_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:735.5-735.44 - prod {{0xFD} {`%`_u32(104):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `FLOOR`_vunop_) + prod {{0xFD} {`%`_u32(104):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), FLOOR_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:736.5-736.44 - prod {{0xFD} {`%`_u32(105):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC`_vunop_) + prod {{0xFD} {`%`_u32(105):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), TRUNC_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:737.5-737.46 - prod {{0xFD} {`%`_u32(106):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEAREST`_vunop_) + prod {{0xFD} {`%`_u32(106):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), NEAREST_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:738.5-738.42 - prod {{0xFD} {`%`_u32(224):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ABS`_vunop_) + prod {{0xFD} {`%`_u32(224):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), ABS_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:739.5-739.42 - prod {{0xFD} {`%`_u32(225):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEG`_vunop_) + prod {{0xFD} {`%`_u32(225):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), NEG_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:740.5-740.43 - prod {{0xFD} {`%`_u32(227):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SQRT`_vunop_) + prod {{0xFD} {`%`_u32(227):Bu32}} => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), SQRT_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:744.5-744.43 - prod {{0xFD} {`%`_u32(228):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ADD`_vbinop_) + prod {{0xFD} {`%`_u32(228):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), ADD_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:745.5-745.43 - prod {{0xFD} {`%`_u32(229):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SUB`_vbinop_) + prod {{0xFD} {`%`_u32(229):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), SUB_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:746.5-746.43 - prod {{0xFD} {`%`_u32(230):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MUL`_vbinop_) + prod {{0xFD} {`%`_u32(230):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), MUL_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:747.5-747.43 - prod {{0xFD} {`%`_u32(231):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `DIV`_vbinop_) + prod {{0xFD} {`%`_u32(231):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), DIV_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:748.5-748.43 - prod {{0xFD} {`%`_u32(232):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MIN`_vbinop_) + prod {{0xFD} {`%`_u32(232):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), MIN_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:749.5-749.43 - prod {{0xFD} {`%`_u32(233):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MAX`_vbinop_) + prod {{0xFD} {`%`_u32(233):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), MAX_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:750.5-750.44 - prod {{0xFD} {`%`_u32(234):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMIN`_vbinop_) + prod {{0xFD} {`%`_u32(234):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), PMIN_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:751.5-751.44 - prod {{0xFD} {`%`_u32(235):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMAX`_vbinop_) + prod {{0xFD} {`%`_u32(235):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), PMAX_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:752.5-752.51 - prod {{0xFD} {`%`_u32(269):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MIN`_vbinop_) + prod {{0xFD} {`%`_u32(269):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_MIN_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:753.5-753.51 - prod {{0xFD} {`%`_u32(270):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MAX`_vbinop_) + prod {{0xFD} {`%`_u32(270):Bu32}} => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_MAX_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:757.5-757.53 - prod {{0xFD} {`%`_u32(261):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MADD`_vternop_) + prod {{0xFD} {`%`_u32(261):Bu32}} => VTERNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_MADD_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:758.5-758.54 - prod {{0xFD} {`%`_u32(262):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_NMADD`_vternop_) + prod {{0xFD} {`%`_u32(262):Bu32}} => VTERNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_NMADD_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:762.5-762.43 - prod {{0xFD} {`%`_u32(116):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `CEIL`_vunop_) + prod {{0xFD} {`%`_u32(116):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), CEIL_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:763.5-763.44 - prod {{0xFD} {`%`_u32(117):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `FLOOR`_vunop_) + prod {{0xFD} {`%`_u32(117):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), FLOOR_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:764.5-764.44 - prod {{0xFD} {`%`_u32(122):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC`_vunop_) + prod {{0xFD} {`%`_u32(122):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), TRUNC_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:765.5-765.46 - prod {{0xFD} {`%`_u32(148):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEAREST`_vunop_) + prod {{0xFD} {`%`_u32(148):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), NEAREST_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:766.5-766.42 - prod {{0xFD} {`%`_u32(236):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ABS`_vunop_) + prod {{0xFD} {`%`_u32(236):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), ABS_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:767.5-767.42 - prod {{0xFD} {`%`_u32(237):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEG`_vunop_) + prod {{0xFD} {`%`_u32(237):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), NEG_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:768.5-768.43 - prod {{0xFD} {`%`_u32(239):Bu32}} => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SQRT`_vunop_) + prod {{0xFD} {`%`_u32(239):Bu32}} => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), SQRT_vunop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:772.5-772.43 - prod {{0xFD} {`%`_u32(240):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ADD`_vbinop_) + prod {{0xFD} {`%`_u32(240):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), ADD_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:773.5-773.43 - prod {{0xFD} {`%`_u32(241):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SUB`_vbinop_) + prod {{0xFD} {`%`_u32(241):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), SUB_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:774.5-774.43 - prod {{0xFD} {`%`_u32(242):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MUL`_vbinop_) + prod {{0xFD} {`%`_u32(242):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), MUL_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:775.5-775.43 - prod {{0xFD} {`%`_u32(243):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DIV`_vbinop_) + prod {{0xFD} {`%`_u32(243):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), DIV_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:776.5-776.43 - prod {{0xFD} {`%`_u32(244):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MIN`_vbinop_) + prod {{0xFD} {`%`_u32(244):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), MIN_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:777.5-777.43 - prod {{0xFD} {`%`_u32(245):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MAX`_vbinop_) + prod {{0xFD} {`%`_u32(245):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), MAX_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:778.5-778.44 - prod {{0xFD} {`%`_u32(246):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMIN`_vbinop_) + prod {{0xFD} {`%`_u32(246):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), PMIN_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:779.5-779.44 - prod {{0xFD} {`%`_u32(247):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMAX`_vbinop_) + prod {{0xFD} {`%`_u32(247):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), PMAX_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:780.5-780.51 - prod {{0xFD} {`%`_u32(271):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MIN`_vbinop_) + prod {{0xFD} {`%`_u32(271):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_MIN_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:781.5-781.51 - prod {{0xFD} {`%`_u32(272):Bu32}} => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MAX`_vbinop_) + prod {{0xFD} {`%`_u32(272):Bu32}} => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_MAX_vbinop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:785.5-785.53 - prod {{0xFD} {`%`_u32(263):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MADD`_vternop_) + prod {{0xFD} {`%`_u32(263):Bu32}} => VTERNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_MADD_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:786.5-786.54 - prod {{0xFD} {`%`_u32(264):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_NMADD`_vternop_) + prod {{0xFD} {`%`_u32(264):Bu32}} => VTERNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_NMADD_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:787.5-787.59 - prod {{0xFD} {`%`_u32(265):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `RELAXED_LANESELECT`_vternop_) + prod {{0xFD} {`%`_u32(265):Bu32}} => VTERNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), RELAXED_LANESELECT_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:788.5-788.59 - prod {{0xFD} {`%`_u32(266):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_LANESELECT`_vternop_) + prod {{0xFD} {`%`_u32(266):Bu32}} => VTERNOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), RELAXED_LANESELECT_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:789.5-789.59 - prod {{0xFD} {`%`_u32(267):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `RELAXED_LANESELECT`_vternop_) + prod {{0xFD} {`%`_u32(267):Bu32}} => VTERNOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), RELAXED_LANESELECT_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:790.5-790.59 - prod {{0xFD} {`%`_u32(268):Bu32}} => `VTERNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `RELAXED_LANESELECT`_vternop_) + prod {{0xFD} {`%`_u32(268):Bu32}} => VTERNOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), RELAXED_LANESELECT_vternop_) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:794.5-794.61 - prod {{0xFD} {`%`_u32(94):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DEMOTE`_vcvtop__(`ZERO`_zero)) + prod {{0xFD} {`%`_u32(94):Bu32}} => VCVTOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), DEMOTE_vcvtop__(ZERO_zero)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:795.5-795.61 - prod {{0xFD} {`%`_u32(95):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__) + prod {{0xFD} {`%`_u32(95):Bu32}} => VCVTOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%X%`_shape(F32_lanetype, `%`_dim(4)), PROMOTELOW_vcvtop__) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:796.5-796.62 - prod {{0xFD} {`%`_u32(248):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?())) + prod {{0xFD} {`%`_u32(248):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), TRUNC_SAT_vcvtop__(S_sx, ?())) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:797.5-797.62 - prod {{0xFD} {`%`_u32(249):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?())) + prod {{0xFD} {`%`_u32(249):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), TRUNC_SAT_vcvtop__(U_sx, ?())) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:798.5-798.60 - prod {{0xFD} {`%`_u32(250):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `S`_sx)) + prod {{0xFD} {`%`_u32(250):Bu32}} => VCVTOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(), S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:799.5-799.60 - prod {{0xFD} {`%`_u32(251):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `U`_sx)) + prod {{0xFD} {`%`_u32(251):Bu32}} => VCVTOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(), U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:800.5-800.67 - prod {{0xFD} {`%`_u32(252):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero))) + prod {{0xFD} {`%`_u32(252):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), TRUNC_SAT_vcvtop__(S_sx, ?(ZERO_zero))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:801.5-801.67 - prod {{0xFD} {`%`_u32(253):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero))) + prod {{0xFD} {`%`_u32(253):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), TRUNC_SAT_vcvtop__(U_sx, ?(ZERO_zero))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:802.5-802.64 - prod {{0xFD} {`%`_u32(254):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx)) + prod {{0xFD} {`%`_u32(254):Bu32}} => VCVTOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(LOW_half), S_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:803.5-803.64 - prod {{0xFD} {`%`_u32(255):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx)) + prod {{0xFD} {`%`_u32(255):Bu32}} => VCVTOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(LOW_half), U_sx)) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:804.5-804.66 - prod {{0xFD} {`%`_u32(257):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?())) + prod {{0xFD} {`%`_u32(257):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_TRUNC_vcvtop__(S_sx, ?())) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:805.5-805.66 - prod {{0xFD} {`%`_u32(258):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?())) + prod {{0xFD} {`%`_u32(258):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_TRUNC_vcvtop__(U_sx, ?())) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:806.5-806.71 - prod {{0xFD} {`%`_u32(259):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero))) + prod {{0xFD} {`%`_u32(259):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_TRUNC_vcvtop__(S_sx, ?(ZERO_zero))) ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec:807.5-807.71 - prod {{0xFD} {`%`_u32(260):Bu32}} => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero))) + prod {{0xFD} {`%`_u32(260):Bu32}} => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_TRUNC_vcvtop__(U_sx, ?(ZERO_zero))) } ;; ../../../../specification/wasm-3.0/5.3-binary.instructions.spectec @@ -95526,7 +8720,7 @@ grammar Bcustomsec : () ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btype : type ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{qt : rectype} qt:Brectype => `TYPE`_type(qt) + prod{qt : rectype} qt:Brectype => TYPE_type(qt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btypesec : type* @@ -95536,7 +8730,7 @@ grammar Btypesec : type* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bimport : import ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {nm_2:Bname} {xt:Bexterntype}} => `IMPORT`_import(nm_1, nm_2, xt) + prod{nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {nm_2:Bname} {xt:Bexterntype}} => IMPORT_import(nm_1, nm_2, xt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bimportsec : import* @@ -95551,10 +8745,10 @@ grammar Bfuncsec : typeidx* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btable : table ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{tt : tabletype, ht : heaptype, at : addrtype, lim : limits} tt:Btabletype => `TABLE`_table(tt, [`REF.NULL`_instr(ht)]) - -- if (tt = `%%%`_tabletype(at, lim, `REF`_reftype(`NULL`_null?{}, ht))) + prod{tt : tabletype, ht : heaptype, at : addrtype, lim : limits} tt:Btabletype => TABLE_table(tt, [`REF.NULL`_instr(ht)]) + -- if (tt = `%%%`_tabletype(at, lim, REF_reftype(NULL_null?{}, ht))) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{tt : tabletype, e : expr} {{0x40} {0x00} {tt:Btabletype} {e:Bexpr}} => `TABLE`_table(tt, e) + prod{tt : tabletype, e : expr} {{0x40} {0x00} {tt:Btabletype} {e:Bexpr}} => TABLE_table(tt, e) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btablesec : table* @@ -95564,7 +8758,7 @@ grammar Btablesec : table* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bmem : mem ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{mt : memtype} mt:Bmemtype => `MEMORY`_mem(mt) + prod{mt : memtype} mt:Bmemtype => MEMORY_mem(mt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bmemsec : mem* @@ -95574,7 +8768,7 @@ grammar Bmemsec : mem* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bglobal : global ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{gt : globaltype, e : expr} {{gt:Bglobaltype} {e:Bexpr}} => `GLOBAL`_global(gt, e) + prod{gt : globaltype, e : expr} {{gt:Bglobaltype} {e:Bexpr}} => GLOBAL_global(gt, e) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bglobalsec : global* @@ -95584,7 +8778,7 @@ grammar Bglobalsec : global* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bexport : export ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{nm : name, xx : externidx} {{nm:Bname} {xx:Bexternidx}} => `EXPORT`_export(nm, xx) + prod{nm : name, xx : externidx} {{nm:Bname} {xx:Bexternidx}} => EXPORT_export(nm, xx) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bexportsec : export* @@ -95594,7 +8788,7 @@ grammar Bexportsec : export* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bstart : start* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{x : idx} x:Bfuncidx => [`START`_start(x)] + prod{x : idx} x:Bfuncidx => [START_start(x)] ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec syntax startopt = start* @@ -95607,26 +8801,26 @@ grammar Bstartsec : start? ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Belemkind : reftype ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod 0x00 => `REF`_reftype(?(`NULL`_null), `FUNC`_heaptype) + prod 0x00 => REF_reftype(?(NULL_null), FUNC_heaptype) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Belem : elem ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`y*` : idx*, e_o : expr} {{`%`_u32(0):Bu32} {e_o:Bexpr} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem(`REF`_reftype(?(), `FUNC`_heaptype), [`REF.FUNC`_instr(y)*{y <- `y*`}], `ACTIVE`_elemmode(`%`_tableidx(0), e_o)) + prod{`y*` : idx*, e_o : expr} {{`%`_u32(0):Bu32} {e_o:Bexpr} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => ELEM_elem(REF_reftype(?(), FUNC_heaptype), [`REF.FUNC`_instr(y)*{y <- `y*`}], ACTIVE_elemmode(`%`_tableidx(0), e_o)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{rt : reftype, `y*` : idx*} {{`%`_u32(1):Bu32} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `PASSIVE`_elemmode) + prod{rt : reftype, `y*` : idx*} {{`%`_u32(1):Bu32} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => ELEM_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], PASSIVE_elemmode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{rt : reftype, `y*` : idx*, x : idx, e : expr} {{`%`_u32(2):Bu32} {x:Btableidx} {e:Bexpr} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `ACTIVE`_elemmode(x, e)) + prod{rt : reftype, `y*` : idx*, x : idx, e : expr} {{`%`_u32(2):Bu32} {x:Btableidx} {e:Bexpr} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => ELEM_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], ACTIVE_elemmode(x, e)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{rt : reftype, `y*` : idx*} {{`%`_u32(3):Bu32} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => `ELEM`_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], `DECLARE`_elemmode) + prod{rt : reftype, `y*` : idx*} {{`%`_u32(3):Bu32} {rt:Belemkind} {y*{y <- `y*`}:Blist(syntax funcidx, grammar Bfuncidx)}} => ELEM_elem(rt, [`REF.FUNC`_instr(y)*{y <- `y*`}], DECLARE_elemmode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`e*` : expr*, e_O : expr} {{`%`_u32(4):Bu32} {e_O:Bexpr} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem(`REF`_reftype(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode(`%`_tableidx(0), e_O)) + prod{`e*` : expr*, e_O : expr} {{`%`_u32(4):Bu32} {e_O:Bexpr} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => ELEM_elem(REF_reftype(?(NULL_null), FUNC_heaptype), e*{e <- `e*`}, ACTIVE_elemmode(`%`_tableidx(0), e_O)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{rt : reftype, `e*` : expr*} {{`%`_u32(5):Bu32} {rt:Breftype} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem(rt, e*{e <- `e*`}, `PASSIVE`_elemmode) + prod{rt : reftype, `e*` : expr*} {{`%`_u32(5):Bu32} {rt:Breftype} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => ELEM_elem(rt, e*{e <- `e*`}, PASSIVE_elemmode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`e*` : expr*, x : idx, e_O : expr} {{`%`_u32(6):Bu32} {x:Btableidx} {e_O:Bexpr} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem(`REF`_reftype(?(`NULL`_null), `FUNC`_heaptype), e*{e <- `e*`}, `ACTIVE`_elemmode(x, e_O)) + prod{`e*` : expr*, x : idx, e_O : expr} {{`%`_u32(6):Bu32} {x:Btableidx} {e_O:Bexpr} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => ELEM_elem(REF_reftype(?(NULL_null), FUNC_heaptype), e*{e <- `e*`}, ACTIVE_elemmode(x, e_O)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{rt : reftype, `e*` : expr*} {{`%`_u32(7):Bu32} {rt:Breftype} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => `ELEM`_elem(rt, e*{e <- `e*`}, `DECLARE`_elemmode) + prod{rt : reftype, `e*` : expr*} {{`%`_u32(7):Bu32} {rt:Breftype} {e*{e <- `e*`}:Blist(syntax expr, grammar Bexpr)}} => ELEM_elem(rt, e*{e <- `e*`}, DECLARE_elemmode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Belemsec : elem* @@ -95639,7 +8833,7 @@ syntax code = (local*, expr) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Blocals : local* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{t : valtype, n : n} {{`%`_u32(n):Bu32} {t:Bvaltype}} => `LOCAL`_local(t)^n{} + prod{t : valtype, n : n} {{`%`_u32(n):Bu32} {t:Bvaltype}} => LOCAL_local(t)^n{} ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bfunc : code @@ -95661,11 +8855,11 @@ grammar Bcodesec : code* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bdata : data ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`b*` : byte*, e : expr} {{`%`_u32(0):Bu32} {e:Bexpr} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => `DATA`_data(b*{b <- `b*`}, `ACTIVE`_datamode(`%`_memidx(0), e)) + prod{`b*` : byte*, e : expr} {{`%`_u32(0):Bu32} {e:Bexpr} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => DATA_data(b*{b <- `b*`}, ACTIVE_datamode(`%`_memidx(0), e)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`b*` : byte*} {{`%`_u32(1):Bu32} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => `DATA`_data(b*{b <- `b*`}, `PASSIVE`_datamode) + prod{`b*` : byte*} {{`%`_u32(1):Bu32} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => DATA_data(b*{b <- `b*`}, PASSIVE_datamode) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`b*` : byte*, x : idx, e : expr} {{`%`_u32(2):Bu32} {x:Bmemidx} {e:Bexpr} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => `DATA`_data(b*{b <- `b*`}, `ACTIVE`_datamode(x, e)) + prod{`b*` : byte*, x : idx, e : expr} {{`%`_u32(2):Bu32} {x:Bmemidx} {e:Bexpr} {b*{b <- `b*`}:Blist(syntax byte, grammar Bbyte)}} => DATA_data(b*{b <- `b*`}, ACTIVE_datamode(x, e)) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bdatasec : data* @@ -95688,7 +8882,7 @@ grammar Bdatacntsec : u32? ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btag : tag ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{jt : tagtype} jt:Btagtype => `TAG`_tag(jt) + prod{jt : tagtype} jt:Btagtype => TAG_tag(jt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Btagsec : tag* @@ -95708,10 +8902,10 @@ grammar Bversion : () ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bmodule : module ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `typeidx*` : typeidx*, `n?` : n?, `expr*` : expr*, `local**` : local**} {Bmagic Bversion {Bcustomsec*{}} {type*{type <- `type*`}:Btypesec} {Bcustomsec*{}} {import*{import <- `import*`}:Bimportsec} {Bcustomsec*{}} {typeidx*{typeidx <- `typeidx*`}:Bfuncsec} {Bcustomsec*{}} {table*{table <- `table*`}:Btablesec} {Bcustomsec*{}} {mem*{mem <- `mem*`}:Bmemsec} {Bcustomsec*{}} {tag*{tag <- `tag*`}:Btagsec} {Bcustomsec*{}} {global*{global <- `global*`}:Bglobalsec} {Bcustomsec*{}} {export*{export <- `export*`}:Bexportsec} {Bcustomsec*{}} {start?{start <- `start?`}:Bstartsec} {Bcustomsec*{}} {elem*{elem <- `elem*`}:Belemsec} {Bcustomsec*{}} {`%`_u32(n)?{n <- `n?`}:Bdatacntsec} {Bcustomsec*{}} {(local*{local <- `local*`}, expr)*{expr <- `expr*`, `local*` <- `local**`}:Bcodesec} {Bcustomsec*{}} {data*{data <- `data*`}:Bdatasec} {Bcustomsec*{}}} => `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}) + prod{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `typeidx*` : typeidx*, `n?` : n?, `expr*` : expr*, `local**` : local**} {Bmagic Bversion {Bcustomsec*{}} {type*{type <- `type*`}:Btypesec} {Bcustomsec*{}} {import*{import <- `import*`}:Bimportsec} {Bcustomsec*{}} {typeidx*{typeidx <- `typeidx*`}:Bfuncsec} {Bcustomsec*{}} {table*{table <- `table*`}:Btablesec} {Bcustomsec*{}} {mem*{mem <- `mem*`}:Bmemsec} {Bcustomsec*{}} {tag*{tag <- `tag*`}:Btagsec} {Bcustomsec*{}} {global*{global <- `global*`}:Bglobalsec} {Bcustomsec*{}} {export*{export <- `export*`}:Bexportsec} {Bcustomsec*{}} {start?{start <- `start?`}:Bstartsec} {Bcustomsec*{}} {elem*{elem <- `elem*`}:Belemsec} {Bcustomsec*{}} {`%`_u32(n)?{n <- `n?`}:Bdatacntsec} {Bcustomsec*{}} {(local*{local <- `local*`}, expr)*{expr <- `expr*`, `local*` <- `local**`}:Bcodesec} {Bcustomsec*{}} {data*{data <- `data*`}:Bdatasec} {Bcustomsec*{}}} => MODULE_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}) -- (if (n = |data*{data <- `data*`}|))?{n <- `n?`} -- if ((n?{n <- `n?`} =/= ?()) \/ ($dataidx_funcs(func*{func <- `func*`}) = [])) - -- (if (func = `FUNC`_func(typeidx, local*{local <- `local*`}, expr)))*{expr <- `expr*`, func <- `func*`, `local*` <- `local**`, typeidx <- `typeidx*`} + -- (if (func = FUNC_func(typeidx, local*{local <- `local*`}, expr)))*{expr <- `expr*`, func <- `func*`, `local*` <- `local**`, typeidx <- `typeidx*`} ;; ../../../../specification/wasm-3.0/6.0-text.lexical.spectec grammar Tchar : char @@ -96115,24 +9309,24 @@ grammar Thexfloat : rat grammar TfNmag(N : N) : fNmag(N) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec prod{q : rat} q:Tfloat => $ieee_(N, q) - -- if ($ieee_(N, q) =/= `INF`_fNmag) + -- if ($ieee_(N, q) =/= INF_fNmag) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec prod{q : rat} q:Thexfloat => $ieee_(N, q) - -- if ($ieee_(N, q) =/= `INF`_fNmag) + -- if ($ieee_(N, q) =/= INF_fNmag) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod "inf" => `INF`_fNmag + prod "inf" => INF_fNmag ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod "nan" => `NAN`_fNmag($canon_(N)) + prod "nan" => NAN_fNmag($canon_(N)) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{n : n} {{"nan:0x"} {n:Thexnum}} => `NAN`_fNmag(n) + prod{n : n} {{"nan:0x"} {n:Thexnum}} => NAN_fNmag(n) -- if ((1 <= n) /\ (n < (2 ^ $signif(N)))) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar TfN(N : N) : fN(N) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{q : fNmag(N)} {{+ (1 : nat <:> int):Tsign} {q:TfNmag(N)}} => `POS`_fN(q) + prod{q : fNmag(N)} {{+ (1 : nat <:> int):Tsign} {q:TfNmag(N)}} => POS_fN(q) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{q : fNmag(N)} {{- (1 : nat <:> int):Tsign} {q:TfNmag(N)}} => `NEG`_fN(q) + prod{q : fNmag(N)} {{- (1 : nat <:> int):Tsign} {q:TfNmag(N)}} => NEG_fN(q) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tu8 : u8 @@ -96188,18 +9382,18 @@ grammar Tlist(syntax el, grammar TX : el) : el* ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec syntax idctxt = { - `TYPES` name?* , - `TAGS` name?* , - `GLOBALS` name?* , - `MEMS` name?* , - `TABLES` name?* , - `FUNCS` name?* , - `DATAS` name?* , - `ELEMS` name?* , - `LOCALS` name?* , - `LABELS` name?* , - `FIELDS` name?** , - `TYPEDEFS` deftype?* + TYPES name?*, + TAGS name?*, + GLOBALS name?*, + MEMS name?*, + TABLES name?*, + FUNCS name?*, + DATAS name?*, + ELEMS name?*, + LOCALS name?*, + LABELS name?*, + FIELDS name?**, + TYPEDEFS deftype?* } ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec @@ -96211,7 +9405,7 @@ rec { ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec:154.1-154.56 def $concat_idctxt(idctxt*) : idctxt ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec:155.1-155.29 - def $concat_idctxt([]) = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []} + def $concat_idctxt([]) = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []} ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec:156.1-156.53 def $concat_idctxt{I : I, `I'*` : I*}([I] ++ I'*{I' <- `I'*`}) = I +++ $concat_idctxt(I'*{I' <- `I'*`}) } @@ -96221,18 +9415,18 @@ relation Idctxt_ok: `|-%:OK`(idctxt) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec rule _{I : I, `field**` : char**}: `|-%:OK`(I) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`TYPES`_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`TAGS`_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`GLOBALS`_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`MEMS`_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`TABLES`_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`FUNCS`_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`DATAS`_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`ELEMS`_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`LOCALS`_I)) - -- if $disjoint_(syntax name, $concatopt_(syntax name, I.`LABELS`_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.TYPES_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.TAGS_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.GLOBALS_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.MEMS_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.TABLES_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.FUNCS_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.DATAS_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.ELEMS_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.LOCALS_I)) + -- if $disjoint_(syntax name, $concatopt_(syntax name, I.LABELS_I)) -- (if $disjoint_(syntax name, $concatopt_(syntax name, [?(`%`_name(field*{field <- `field*`}))])))*{`field*` <- `field**`} - -- if ([?(`%`_name(field*{field <- `field*`}))*{`field*` <- `field**`}] = I.`FIELDS`_I) + -- if ([?(`%`_name(field*{field <- `field*`}))*{`field*` <- `field**`}] = I.FIELDS_I) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tidx_(ids : name?*) : idx @@ -96245,130 +9439,130 @@ grammar Tidx_(ids : name?*) : idx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Ttypeidx_(I : I) : typeidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.`TYPES`_I) => `` + prod{`` : idx} ``:Tidx_(I.TYPES_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Ttagidx_(I : I) : tagidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.`TAGS`_I) => `` + prod{`` : idx} ``:Tidx_(I.TAGS_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tglobalidx_(I : I) : globalidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.`GLOBALS`_I) => `` + prod{`` : idx} ``:Tidx_(I.GLOBALS_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tmemidx_(I : I) : memidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.`MEMS`_I) => `` + prod{`` : idx} ``:Tidx_(I.MEMS_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Ttableidx_(I : I) : tableidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.`TABLES`_I) => `` + prod{`` : idx} ``:Tidx_(I.TABLES_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tfuncidx_(I : I) : funcidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.`FUNCS`_I) => `` + prod{`` : idx} ``:Tidx_(I.FUNCS_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tdataidx_(I : I) : dataidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.`DATAS`_I) => `` + prod{`` : idx} ``:Tidx_(I.DATAS_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Telemidx_(I : I) : elemidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.`ELEMS`_I) => `` + prod{`` : idx} ``:Tidx_(I.ELEMS_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tlocalidx_(I : I) : localidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.`LOCALS`_I) => `` + prod{`` : idx} ``:Tidx_(I.LOCALS_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tlabelidx_(I : I) : labelidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.`LABELS`_I) => `` + prod{`` : idx} ``:Tidx_(I.LABELS_I) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Tfieldidx__(I : I, x : idx) : fieldidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{`` : idx} ``:Tidx_(I.`FIELDS`_I[x!`%`_idx.0]) => `` + prod{`` : idx} ``:Tidx_(I.FIELDS_I[x!`%`_idx.0]) => `` ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec grammar Texternidx_(I : I) : externidx ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{x : idx} {{"("} {"tag"} {x:Ttagidx_(I)} {")"}} => `TAG`_externidx(x) + prod{x : idx} {{"("} {"tag"} {x:Ttagidx_(I)} {")"}} => TAG_externidx(x) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{x : idx} {{"("} {"global"} {x:Tglobalidx_(I)} {")"}} => `GLOBAL`_externidx(x) + prod{x : idx} {{"("} {"global"} {x:Tglobalidx_(I)} {")"}} => GLOBAL_externidx(x) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{x : idx} {{"("} {"memory"} {x:Tmemidx_(I)} {")"}} => `MEM`_externidx(x) + prod{x : idx} {{"("} {"memory"} {x:Tmemidx_(I)} {")"}} => MEM_externidx(x) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{x : idx} {{"("} {"table"} {x:Ttableidx_(I)} {")"}} => `TABLE`_externidx(x) + prod{x : idx} {{"("} {"table"} {x:Ttableidx_(I)} {")"}} => TABLE_externidx(x) ;; ../../../../specification/wasm-3.0/6.1-text.values.spectec - prod{x : idx} {{"("} {"func"} {x:Tfuncidx_(I)} {")"}} => `FUNC`_externidx(x) + prod{x : idx} {{"("} {"func"} {x:Tfuncidx_(I)} {")"}} => FUNC_externidx(x) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tnumtype : numtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i32" => `I32`_numtype + prod "i32" => I32_numtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i64" => `I64`_numtype + prod "i64" => I64_numtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "f32" => `F32`_numtype + prod "f32" => F32_numtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "f64" => `F64`_numtype + prod "f64" => F64_numtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tvectype : vectype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "v128" => `V128`_vectype + prod "v128" => V128_vectype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tabsheaptype : heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "any" => `ANY`_heaptype + prod "any" => ANY_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "eq" => `EQ`_heaptype + prod "eq" => EQ_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i31" => `I31`_heaptype + prod "i31" => I31_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "struct" => `STRUCT`_heaptype + prod "struct" => STRUCT_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "array" => `ARRAY`_heaptype + prod "array" => ARRAY_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "none" => `NONE`_heaptype + prod "none" => NONE_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "func" => `FUNC`_heaptype + prod "func" => FUNC_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "nofunc" => `NOFUNC`_heaptype + prod "nofunc" => NOFUNC_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "exn" => `EXN`_heaptype + prod "exn" => EXN_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "noexn" => `NOEXN`_heaptype + prod "noexn" => NOEXN_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "extern" => `EXTERN`_heaptype + prod "extern" => EXTERN_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "noextern" => `NOEXTERN`_heaptype + prod "noextern" => NOEXTERN_heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Theaptype_(I : I) : heaptype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec prod{ht : heaptype} ht:Tabsheaptype => ht ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{x : idx} x:Ttypeidx_(I) => `_IDX`_heaptype(x) + prod{x : idx} x:Ttypeidx_(I) => _IDX_heaptype(x) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tnull : null ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "null" => `NULL`_null + prod "null" => NULL_null ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Treftype_(I : I) : reftype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`null?` : null?, ht : heaptype} {{"("} {"ref"} {null?{null <- `null?`}:Tnull?{}} {ht:Theaptype_(I)} {")"}} => `REF`_reftype(null?{null <- `null?`}, ht) + prod{`null?` : null?, ht : heaptype} {{"("} {"ref"} {null?{null <- `null?`}:Tnull?{}} {ht:Theaptype_(I)} {")"}} => REF_reftype(null?{null <- `null?`}, ht) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tvaltype_(I : I) : valtype @@ -96382,9 +9576,9 @@ grammar Tvaltype_(I : I) : valtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tpacktype : packtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i8" => `I8`_packtype + prod "i8" => I8_packtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i16" => `I16`_packtype + prod "i16" => I16_packtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tstoragetype_(I : I) : storagetype @@ -96398,7 +9592,7 @@ grammar Tfieldtype_(I : I) : fieldtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec prod{zt : storagetype} zt:Tstoragetype_(I) => `%%`_fieldtype(?(), zt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{zt : storagetype} {{"("} {"mut"} {zt:Tstoragetype_(I)} {")"}} => `%%`_fieldtype(?(`MUT`_mut), zt) + prod{zt : storagetype} {{"("} {"mut"} {zt:Tstoragetype_(I)} {")"}} => `%%`_fieldtype(?(MUT_mut), zt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tfield_(I : I) : (fieldtype, name?) @@ -96418,38 +9612,38 @@ grammar Tresult_(I : I) : valtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tcomptype_(I : I) : (comptype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`ft*` : fieldtype*, `id?*` : char?*} {{"("} {"struct"} {(ft, ?(`%`_name(lift(id?{id <- `id?`}))))*{ft <- `ft*`, `id?` <- `id?*`}:Tlist(syntax (fieldtype, name?), grammar Tfield_(I))} {")"}} => (`STRUCT`_comptype(`%`_list(ft*{ft <- `ft*`})), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}], `TYPEDEFS` []}) + prod{`ft*` : fieldtype*, `id?*` : char?*} {{"("} {"struct"} {(ft, ?(`%`_name(lift(id?{id <- `id?`}))))*{ft <- `ft*`, `id?` <- `id?*`}:Tlist(syntax (fieldtype, name?), grammar Tfield_(I))} {")"}} => (STRUCT_comptype(`%`_list(ft*{ft <- `ft*`})), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{ft : fieldtype} {{"("} {"array"} {ft:Tfieldtype_(I)} {")"}} => (`ARRAY`_comptype(ft), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{ft : fieldtype} {{"("} {"array"} {ft:Tfieldtype_(I)} {")"}} => (ARRAY_comptype(ft), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`t_1*` : valtype*, `t_2*` : valtype*, `id?*` : char?*} {{"("} {"func"} {(t_1, ?(`%`_name(lift(id?{id <- `id?`}))))*{`id?` <- `id?*`, t_1 <- `t_1*`}:Tlist(syntax (valtype, name?), grammar Tparam_(I))} {t_2*{t_2 <- `t_2*`}:Tlist(syntax valtype, grammar Tresult_(I))} {")"}} => (`FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{`t_1*` : valtype*, `t_2*` : valtype*, `id?*` : char?*} {{"("} {"func"} {(t_1, ?(`%`_name(lift(id?{id <- `id?`}))))*{`id?` <- `id?*`, t_1 <- `t_1*`}:Tlist(syntax (valtype, name?), grammar Tparam_(I))} {t_2*{t_2 <- `t_2*`}:Tlist(syntax valtype, grammar Tresult_(I))} {")"}} => (`FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tfinal : final ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "final" => `FINAL`_final + prod "final" => FINAL_final ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tsubtype_(I : I) : (subtype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`fin?` : final?, `x*` : idx*, ct : comptype, I' : I} {{"("} {"sub"} {fin?{fin <- `fin?`}:Tfinal?{}} {x*{x <- `x*`}:Tlist(syntax typeidx, grammar Ttypeidx_(I))} {(ct, I'):Tcomptype_(I)} {")"}} => (`SUB`_subtype(fin?{fin <- `fin?`}, `_IDX`_typeuse(x)*{x <- `x*`}, ct), I') + prod{`fin?` : final?, `x*` : idx*, ct : comptype, I' : I} {{"("} {"sub"} {fin?{fin <- `fin?`}:Tfinal?{}} {x*{x <- `x*`}:Tlist(syntax typeidx, grammar Ttypeidx_(I))} {(ct, I'):Tcomptype_(I)} {")"}} => (SUB_subtype(fin?{fin <- `fin?`}, _IDX_typeuse(x)*{x <- `x*`}, ct), I') ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Ttypedef_(I : I) : (subtype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{st : subtype, I' : I, `id?` : char?} {{"("} {"type"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(st, I'):Tsubtype_(I)} {")"}} => (st, I' +++ {`TYPES` [?(`%`_name(lift(id?{id <- `id?`})))], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{st : subtype, I' : I, `id?` : char?} {{"("} {"type"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(st, I'):Tsubtype_(I)} {")"}} => (st, I' +++ {TYPES [?(`%`_name(lift(id?{id <- `id?`})))], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Trectype_(I : I) : (rectype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{`st*` : subtype*, `I'*` : I*} {{"("} {"rec"} {(st, I')*{I' <- `I'*`, st <- `st*`}:Tlist(syntax (subtype, idctxt), grammar Ttypedef_(I))} {")"}} => (`REC`_rectype(`%`_list(st*{st <- `st*`})), $concat_idctxt(I'*{I' <- `I'*`})) + prod{`st*` : subtype*, `I'*` : I*} {{"("} {"rec"} {(st, I')*{I' <- `I'*`, st <- `st*`}:Tlist(syntax (subtype, idctxt), grammar Ttypedef_(I))} {")"}} => (REC_rectype(`%`_list(st*{st <- `st*`})), $concat_idctxt(I'*{I' <- `I'*`})) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Taddrtype : addrtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i32" => `I32`_addrtype + prod "i32" => I32_addrtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod "i64" => `I64`_addrtype + prod "i64" => I64_addrtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tlimits : limits @@ -96462,27 +9656,27 @@ grammar Tlimits : limits grammar Ttypeuse_(I : I) : (typeidx, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec prod{x : idx, I' : I, `st*` : subtype*, i : n, `t_1*` : valtype*, `t_2*` : valtype*} {{"("} {"type"} {x:Ttypeidx_(I)} {")"}} => (x, I') - -- if (I.`TYPEDEFS`_I[x!`%`_idx.0] = ?(`_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i))) - -- if (st*{st <- `st*`}[i] = `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))) - -- if (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))^|t_1*{t_1 <- `t_1*`}|{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + -- if (I.TYPEDEFS_I[x!`%`_idx.0] = ?(_DEF_deftype(REC_rectype(`%`_list(st*{st <- `st*`})), i))) + -- if (st*{st <- `st*`}[i] = SUB_subtype(?(FINAL_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))) + -- if (I' = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS ?(`%`_name([]))^|t_1*{t_1 <- `t_1*`}|{}, LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec prod{x : idx, I' : I, `id?*` : char?*, `t_1*` : valtype*, `t_2*` : valtype*, `st*` : subtype*, i : n} {{"("} {"type"} {x:Ttypeidx_(I)} {")"} {(t_1, ?(`%`_name(lift(id?{id <- `id?`}))))*{`id?` <- `id?*`, t_1 <- `t_1*`}:Tparam_(I)*{}} {t_2*{t_2 <- `t_2*`}:Tresult_(I)*{}}} => (x, I') - -- if (I.`TYPEDEFS`_I[x!`%`_idx.0] = ?(`_DEF`_deftype(`REC`_rectype(`%`_list(st*{st <- `st*`})), i))) - -- if (st*{st <- `st*`}[i] = `SUB`_subtype(?(`FINAL`_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))) - -- if (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + -- if (I.TYPEDEFS_I[x!`%`_idx.0] = ?(_DEF_deftype(REC_rectype(`%`_list(st*{st <- `st*`})), i))) + -- if (st*{st <- `st*`}[i] = SUB_subtype(?(FINAL_final), [], `FUNC%->%`_comptype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), `%`_resulttype(t_2*{t_2 <- `t_2*`})))) + -- if (I' = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS ?(`%`_name(lift(id?{id <- `id?`})))*{`id?` <- `id?*`}, LABELS [], FIELDS [], TYPEDEFS []}) -- Idctxt_ok: `|-%:OK`(I') ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Ttagtype_(I : I) : tagtype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{x : idx, I' : I} (x, I'):Ttypeuse_(I) => `_IDX`_tagtype(x) + prod{x : idx, I' : I} (x, I'):Ttypeuse_(I) => _IDX_tagtype(x) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tglobaltype_(I : I) : globaltype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec prod{t : valtype} t:Tvaltype_(I) => `%%`_globaltype(?(), t) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{t : valtype} {{"("} {"mut"} {t:Tvaltype_(I)} {")"}} => `%%`_globaltype(?(`MUT`_mut), t) + prod{t : valtype} {{"("} {"mut"} {t:Tvaltype_(I)} {")"}} => `%%`_globaltype(?(MUT_mut), t) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Tmemtype_(I : I) : memtype @@ -96497,45 +9691,45 @@ grammar Ttabletype_(I : I) : tabletype ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec grammar Texterntype_(I : I) : (externtype, idctxt) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{jt : tagtype, `id?` : char?} {{"("} {"tag"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {jt:Ttagtype_(I)} {")"}} => (`TAG`_externtype(jt), {`TYPES` [], `TAGS` [?(`%`_name(lift(id?{id <- `id?`})))], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{jt : tagtype, `id?` : char?} {{"("} {"tag"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {jt:Ttagtype_(I)} {")"}} => (TAG_externtype(jt), {TYPES [], TAGS [?(`%`_name(lift(id?{id <- `id?`})))], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{gt : globaltype, `id?` : char?} {{"("} {"global"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {gt:Tglobaltype_(I)} {")"}} => (`GLOBAL`_externtype(gt), {`TYPES` [], `TAGS` [], `GLOBALS` [?(`%`_name(lift(id?{id <- `id?`})))], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{gt : globaltype, `id?` : char?} {{"("} {"global"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {gt:Tglobaltype_(I)} {")"}} => (GLOBAL_externtype(gt), {TYPES [], TAGS [], GLOBALS [?(`%`_name(lift(id?{id <- `id?`})))], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{mt : memtype, `id?` : char?} {{"("} {"memory"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {mt:Tmemtype_(I)} {")"}} => (`MEM`_externtype(mt), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{mt : memtype, `id?` : char?} {{"("} {"memory"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {mt:Tmemtype_(I)} {")"}} => (MEM_externtype(mt), {TYPES [], TAGS [], GLOBALS [], MEMS [?(`%`_name(lift(id?{id <- `id?`})))], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{tt : tabletype, `id?` : char?} {{"("} {"table"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {tt:Ttabletype_(I)} {")"}} => (`TABLE`_externtype(tt), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [?(`%`_name(lift(id?{id <- `id?`})))], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{tt : tabletype, `id?` : char?} {{"("} {"table"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {tt:Ttabletype_(I)} {")"}} => (TABLE_externtype(tt), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [?(`%`_name(lift(id?{id <- `id?`})))], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.2-text.types.spectec - prod{x : idx, `id?` : char?, I' : I} {{"("} {"func"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(x, I'):Ttypeuse_(I)} {")"}} => (`FUNC`_externtype(`_IDX`_typeuse(x)), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [?(`%`_name(lift(id?{id <- `id?`})))], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{x : idx, `id?` : char?, I' : I} {{"("} {"func"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(x, I'):Ttypeuse_(I)} {")"}} => (FUNC_externtype(_IDX_typeuse(x)), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [?(`%`_name(lift(id?{id <- `id?`})))], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tlabel_(I : I) : (name?, I) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod eps => (?(), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []} +++ I) + prod eps => (?(), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []} +++ I) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{id : name} id:Tid => (?(id), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []} +++ I) - -- if ~ (?(id) <- I.`LABELS`_I) + prod{id : name} id:Tid => (?(id), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [?(id)], FIELDS [], TYPEDEFS []} +++ I) + -- if ~ (?(id) <- I.LABELS_I) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{id : name, x : idx} id:Tid => (?(id), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [?(id)], `FIELDS` [], `TYPEDEFS` []} +++ I[`LABELS`_I[x!`%`_idx.0] = ?()]) - -- if (?(id) = I.`LABELS`_I[x!`%`_idx.0]) + prod{id : name, x : idx} id:Tid => (?(id), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [?(id)], FIELDS [], TYPEDEFS []} +++ I[LABELS_I[x!`%`_idx.0] = ?()]) + -- if (?(id) = I.LABELS_I[x!`%`_idx.0]) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tblocktype_(I : I) : blocktype ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`t?` : valtype?} t?{t <- `t?`}:Tresult_(I)?{} => `_RESULT`_blocktype(t?{t <- `t?`}) + prod{`t?` : valtype?} t?{t <- `t?`}:Tresult_(I)?{} => _RESULT_blocktype(t?{t <- `t?`}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, I' : I} (x, I'):Ttypeuse_(I) => `_IDX`_blocktype(x) - -- if (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{x : idx, I' : I} (x, I'):Ttypeuse_(I) => _IDX_blocktype(x) + -- if (I' = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS ?(`%`_name([]))*{}, LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tcatch_(I : I) : catch ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, l : labelidx} {{"("} {"catch"} {x:Ttagidx_(I)} {l:Tlabelidx_(I)} {")"}} => `CATCH`_catch(x, l) + prod{x : idx, l : labelidx} {{"("} {"catch"} {x:Ttagidx_(I)} {l:Tlabelidx_(I)} {")"}} => CATCH_catch(x, l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, l : labelidx} {{"("} {"catch_ref"} {x:Ttagidx_(I)} {l:Tlabelidx_(I)} {")"}} => `CATCH_REF`_catch(x, l) + prod{x : idx, l : labelidx} {{"("} {"catch_ref"} {x:Ttagidx_(I)} {l:Tlabelidx_(I)} {")"}} => CATCH_REF_catch(x, l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx} {{"("} {"catch_all"} {l:Tlabelidx_(I)} {")"}} => `CATCH_ALL`_catch(l) + prod{l : labelidx} {{"("} {"catch_all"} {l:Tlabelidx_(I)} {")"}} => CATCH_ALL_catch(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx} {{"("} {"catch_all_ref"} {l:Tlabelidx_(I)} {")"}} => `CATCH_ALL_REF`_catch(l) + prod{l : labelidx} {{"("} {"catch_all_ref"} {l:Tlabelidx_(I)} {")"}} => CATCH_ALL_REF_catch(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tfoldedinstr_(I : I) : instr* @@ -96563,52 +9757,52 @@ grammar Toffset : u64 ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tmemarg_(N : N) : memarg ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{n : n, m : m} {{`%`_u64(n):Toffset} {`%`_u64(m):Talign_(N)}} => {`ALIGN` `%`_u32(n), `OFFSET` `%`_u64(m)} + prod{n : n, m : m} {{`%`_u64(n):Toffset} {`%`_u64(m):Talign_(N)}} => {ALIGN `%`_u32(n), OFFSET `%`_u64(m)} ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec grammar Tplaininstr_(I : I) : instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "unreachable" => `UNREACHABLE`_instr + prod "unreachable" => UNREACHABLE_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "nop" => `NOP`_instr + prod "nop" => NOP_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "drop" => `DROP`_instr + prod "drop" => DROP_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`t*?` : valtype*?} {{"select"} {t*{t <- `t*`}:Tresult_(I)*{}?{`t*` <- `t*?`}}} => `SELECT`_instr(t*{t <- `t*`}?{`t*` <- `t*?`}) + prod{`t*?` : valtype*?} {{"select"} {t*{t <- `t*`}:Tresult_(I)*{}?{`t*` <- `t*?`}}} => SELECT_instr(t*{t <- `t*`}?{`t*` <- `t*?`}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx} {{"br"} {l:Tlabelidx_(I)}} => `BR`_instr(l) + prod{l : labelidx} {{"br"} {l:Tlabelidx_(I)}} => BR_instr(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx} {{"br_if"} {l:Tlabelidx_(I)}} => `BR_IF`_instr(l) + prod{l : labelidx} {{"br_if"} {l:Tlabelidx_(I)}} => BR_IF_instr(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`l*` : labelidx*, l' : labelidx} {{"br_table"} {l*{l <- `l*`}:Tlabelidx_(I)*{}} {l':Tlabelidx_(I)}} => `BR_TABLE`_instr(l*{l <- `l*`}, l') + prod{`l*` : labelidx*, l' : labelidx} {{"br_table"} {l*{l <- `l*`}:Tlabelidx_(I)*{}} {l':Tlabelidx_(I)}} => BR_TABLE_instr(l*{l <- `l*`}, l') ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx} {{"br_on_null"} {l:Tlabelidx_(I)}} => `BR_ON_NULL`_instr(l) + prod{l : labelidx} {{"br_on_null"} {l:Tlabelidx_(I)}} => BR_ON_NULL_instr(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx} {{"br_on_non_null"} {l:Tlabelidx_(I)}} => `BR_ON_NON_NULL`_instr(l) + prod{l : labelidx} {{"br_on_non_null"} {l:Tlabelidx_(I)}} => BR_ON_NON_NULL_instr(l) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx, rt_1 : reftype, rt_2 : reftype} {{"br_on_cast"} {l:Tlabelidx_(I)} {rt_1:Treftype_(I)} {rt_2:Treftype_(I)}} => `BR_ON_CAST`_instr(l, rt_1, rt_2) + prod{l : labelidx, rt_1 : reftype, rt_2 : reftype} {{"br_on_cast"} {l:Tlabelidx_(I)} {rt_1:Treftype_(I)} {rt_2:Treftype_(I)}} => BR_ON_CAST_instr(l, rt_1, rt_2) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{l : labelidx, rt_1 : reftype, rt_2 : reftype} {{"br_on_cast_fail"} {l:Tlabelidx_(I)} {rt_1:Treftype_(I)} {rt_2:Treftype_(I)}} => `BR_ON_CAST_FAIL`_instr(l, rt_1, rt_2) + prod{l : labelidx, rt_1 : reftype, rt_2 : reftype} {{"br_on_cast_fail"} {l:Tlabelidx_(I)} {rt_1:Treftype_(I)} {rt_2:Treftype_(I)}} => BR_ON_CAST_FAIL_instr(l, rt_1, rt_2) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"call"} {x:Tfuncidx_(I)}} => `CALL`_instr(x) + prod{x : idx} {{"call"} {x:Tfuncidx_(I)}} => CALL_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"call_ref"} {x:Ttypeidx_(I)}} => `CALL_REF`_instr(`_IDX`_typeuse(x)) + prod{x : idx} {{"call_ref"} {x:Ttypeidx_(I)}} => CALL_REF_instr(_IDX_typeuse(x)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, y : idx, I' : I} {{"call_indirect"} {x:Ttableidx_(I)} {(y, I'):Ttypeuse_(I)}} => `CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y)) - -- if (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{x : idx, y : idx, I' : I} {{"call_indirect"} {x:Ttableidx_(I)} {(y, I'):Ttypeuse_(I)}} => CALL_INDIRECT_instr(x, _IDX_typeuse(y)) + -- if (I' = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS ?(`%`_name([]))*{}, LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "return" => `RETURN`_instr + prod "return" => RETURN_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"return_call"} {x:Tfuncidx_(I)}} => `RETURN_CALL`_instr(x) + prod{x : idx} {{"return_call"} {x:Tfuncidx_(I)}} => RETURN_CALL_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"return_call_ref"} {x:Ttypeidx_(I)}} => `RETURN_CALL_REF`_instr(`_IDX`_typeuse(x)) + prod{x : idx} {{"return_call_ref"} {x:Ttypeidx_(I)}} => RETURN_CALL_REF_instr(_IDX_typeuse(x)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, y : idx, I' : I} {{"return_call_indirect"} {x:Ttableidx_(I)} {(y, I'):Ttypeuse_(I)}} => `RETURN_CALL_INDIRECT`_instr(x, `_IDX`_typeuse(y)) - -- if (I' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` ?(`%`_name([]))*{}, `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{x : idx, y : idx, I' : I} {{"return_call_indirect"} {x:Ttableidx_(I)} {(y, I'):Ttypeuse_(I)}} => RETURN_CALL_INDIRECT_instr(x, _IDX_typeuse(y)) + -- if (I' = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS ?(`%`_name([]))*{}, LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"throw"} {x:Ttagidx_(I)}} => `THROW`_instr(x) + prod{x : idx} {{"throw"} {x:Ttagidx_(I)}} => THROW_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "throw_ref" => `THROW_REF`_instr + prod "throw_ref" => THROW_REF_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod{x : idx} {{"local.get"} {x:Tlocalidx_(I)}} => `LOCAL.GET`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec @@ -96636,95 +9830,95 @@ grammar Tplaininstr_(I : I) : instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod{x : idx} {{"elem.drop"} {x:Telemidx_(I)}} => `ELEM.DROP`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr(`I32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"i32.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => LOAD_instr(I32_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `LOAD`_instr(`I64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"i64.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => LOAD_instr(I64_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"f32.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr(`F32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"f32.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => LOAD_instr(F32_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"f64.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `LOAD`_instr(`F64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"f64.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => LOAD_instr(F64_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.load8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i32.load8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(8), S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.load8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i32.load8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(8), U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.load16_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i32.load16_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(16), S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.load16_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr(`I32`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i32.load16_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => LOAD_instr(I32_numtype, ?(`%_%`_loadop_(`%`_sz(16), U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i64.load8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(8), S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(8), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i64.load8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(8), U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load16_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i64.load16_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(16), S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load16_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(16), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i64.load16_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(16), U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load32_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i64.load32_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(32), S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.load32_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `LOAD`_instr(`I64`_numtype, ?(`%_%`_loadop_(`%`_sz(32), `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"i64.load32_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => LOAD_instr(I64_numtype, ?(`%_%`_loadop_(`%`_sz(32), U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(16)}} => `VLOAD`_instr(`V128`_vectype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"v128.load"} {x:Tmemidx_(I)} {ao:Tmemarg_(16)}} => VLOAD_instr(V128_vectype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load8x8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"v128.load8x8_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load8x8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"v128.load8x8_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(8), 8, U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load16x4_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"v128.load16x4_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load16x4_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"v128.load16x4_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(16), 4, U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load32x2_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `S`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"v128.load32x2_s"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, S_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load32x2_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, `U`_sx)), x, ao) + prod{x : idx, ao : memarg} {{"v128.load32x2_u"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(`SHAPE%X%_%`_vloadop_(`%`_sz(32), 2, U_sx)), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load8_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(8))), x, ao) + prod{x : idx, ao : memarg} {{"v128.load8_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(8))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load16_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(16))), x, ao) + prod{x : idx, ao : memarg} {{"v128.load16_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(16))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load32_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(32))), x, ao) + prod{x : idx, ao : memarg} {{"v128.load32_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(32))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load64_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`SPLAT`_vloadop_(`%`_sz(64))), x, ao) + prod{x : idx, ao : memarg} {{"v128.load64_splat"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(SPLAT_vloadop_(`%`_sz(64))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load32_zero"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(32))), x, ao) + prod{x : idx, ao : memarg} {{"v128.load32_zero"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(32))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.load64_zero"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `VLOAD`_instr(`V128`_vectype, ?(`ZERO`_vloadop_(`%`_sz(64))), x, ao) + prod{x : idx, ao : memarg} {{"v128.load64_zero"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => VLOAD_instr(V128_vectype, ?(ZERO_vloadop_(`%`_sz(64))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.load8_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)} {i:Tlaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.load8_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)} {i:Tlaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(8), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.load16_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)} {i:Tlaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.load16_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)} {i:Tlaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(16), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.load32_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)} {i:Tlaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.load32_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)} {i:Tlaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(32), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.load64_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)} {i:Tlaneidx}} => `VLOAD_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.load64_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)} {i:Tlaneidx}} => VLOAD_LANE_instr(V128_vectype, `%`_sz(64), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `STORE`_instr(`I32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"i32.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => STORE_instr(I32_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `STORE`_instr(`I64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"i64.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => STORE_instr(I64_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"f32.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `STORE`_instr(`F32`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"f32.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => STORE_instr(F32_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"f64.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => `STORE`_instr(`F64`_numtype, ?(), x, ao) + prod{x : idx, ao : memarg} {{"f64.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)}} => STORE_instr(F64_numtype, ?(), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.store8"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) + prod{x : idx, ao : memarg} {{"i32.store8"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i32.store16"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `STORE`_instr(`I32`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) + prod{x : idx, ao : memarg} {{"i32.store16"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => STORE_instr(I32_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.store8"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) + prod{x : idx, ao : memarg} {{"i64.store8"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)}} => STORE_instr(I64_numtype, ?(`%`_storeop_(`%`_sz(8))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.store16"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) + prod{x : idx, ao : memarg} {{"i64.store16"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)}} => STORE_instr(I64_numtype, ?(`%`_storeop_(`%`_sz(16))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"i64.store32"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => `STORE`_instr(`I64`_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao) + prod{x : idx, ao : memarg} {{"i64.store32"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)}} => STORE_instr(I64_numtype, ?(`%`_storeop_(`%`_sz(32))), x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg} {{"v128.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(16)}} => `VSTORE`_instr(`V128`_vectype, x, ao) + prod{x : idx, ao : memarg} {{"v128.store"} {x:Tmemidx_(I)} {ao:Tmemarg_(16)}} => VSTORE_instr(V128_vectype, x, ao) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.store8_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)} {i:Tlaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(8), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.store8_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(1)} {i:Tlaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(8), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.store16_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)} {i:Tlaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(16), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.store16_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(2)} {i:Tlaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(16), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.store32_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)} {i:Tlaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(32), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.store32_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(4)} {i:Tlaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(32), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, ao : memarg, i : laneidx} {{"v128.store64_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)} {i:Tlaneidx}} => `VSTORE_LANE`_instr(`V128`_vectype, `%`_sz(64), x, ao, i) + prod{x : idx, ao : memarg, i : laneidx} {{"v128.store64_lane"} {x:Tmemidx_(I)} {ao:Tmemarg_(8)} {i:Tlaneidx}} => VSTORE_LANE_instr(V128_vectype, `%`_sz(64), x, ao, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod{x : idx} {{"memory.size"} {x:Tmemidx_(I)}} => `MEMORY.SIZE`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec @@ -96754,9 +9948,9 @@ grammar Tplaininstr_(I : I) : instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod "ref.i31" => `REF.I31`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i31.get_s" => `I31.GET`_instr(`S`_sx) + prod "i31.get_s" => `I31.GET`_instr(S_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i31.get_u" => `I31.GET`_instr(`U`_sx) + prod "i31.get_u" => `I31.GET`_instr(U_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod{x : idx} {{"struct.new"} {x:Ttypeidx_(I)}} => `STRUCT.NEW`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec @@ -96764,9 +9958,9 @@ grammar Tplaininstr_(I : I) : instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod{x : idx, i : fieldidx} {{"struct.get"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr(?(), x, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, i : fieldidx} {{"struct.get_s"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr(?(`S`_sx), x, i) + prod{x : idx, i : fieldidx} {{"struct.get_s"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr(?(S_sx), x, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx, i : fieldidx} {{"struct.get_u"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr(?(`U`_sx), x, i) + prod{x : idx, i : fieldidx} {{"struct.get_u"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.GET`_instr(?(U_sx), x, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod{x : idx, i : fieldidx} {{"struct.set"} {x:Ttypeidx_(I)} {i:Tfieldidx__(I, x)}} => `STRUCT.SET`_instr(x, i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec @@ -96782,9 +9976,9 @@ grammar Tplaininstr_(I : I) : instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod{x : idx} {{"array.get"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr(?(), x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"array.get_s"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr(?(`S`_sx), x) + prod{x : idx} {{"array.get_s"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr(?(S_sx), x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{x : idx} {{"array.get_u"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr(?(`U`_sx), x) + prod{x : idx} {{"array.get_u"} {x:Ttypeidx_(I)}} => `ARRAY.GET`_instr(?(U_sx), x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod{x : idx} {{"array.set"} {x:Ttypeidx_(I)}} => `ARRAY.SET`_instr(x) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec @@ -96802,759 +9996,759 @@ grammar Tplaininstr_(I : I) : instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec prod "extern.convert_any" => `EXTERN.CONVERT_ANY`_instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{c : u32} {{"i32.const"} {c:Ti32}} => `CONST`_instr(`I32`_numtype, c) + prod{c : u32} {{"i32.const"} {c:Ti32}} => CONST_instr(I32_numtype, c) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{c : u64} {{"i64.const"} {c:Ti64}} => `CONST`_instr(`I64`_numtype, c) + prod{c : u64} {{"i64.const"} {c:Ti64}} => CONST_instr(I64_numtype, c) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{c : f32} {{"f32.const"} {c:Tf32}} => `CONST`_instr(`F32`_numtype, c) + prod{c : f32} {{"f32.const"} {c:Tf32}} => CONST_instr(F32_numtype, c) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{c : f64} {{"f64.const"} {c:Tf64}} => `CONST`_instr(`F64`_numtype, c) + prod{c : f64} {{"f64.const"} {c:Tf64}} => CONST_instr(F64_numtype, c) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.eqz" => `TESTOP`_instr(`I32`_numtype, `EQZ`_testop_) + prod "i32.eqz" => TESTOP_instr(I32_numtype, EQZ_testop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.eqz" => `TESTOP`_instr(`I64`_numtype, `EQZ`_testop_) + prod "i64.eqz" => TESTOP_instr(I64_numtype, EQZ_testop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.eq" => `RELOP`_instr(`I32`_numtype, `EQ`_relop_) + prod "i32.eq" => RELOP_instr(I32_numtype, EQ_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.ne" => `RELOP`_instr(`I32`_numtype, `NE`_relop_) + prod "i32.ne" => RELOP_instr(I32_numtype, NE_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.lt_s" => `RELOP`_instr(`I32`_numtype, `LT`_relop_(`S`_sx)) + prod "i32.lt_s" => RELOP_instr(I32_numtype, LT_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.lt_u" => `RELOP`_instr(`I32`_numtype, `LT`_relop_(`U`_sx)) + prod "i32.lt_u" => RELOP_instr(I32_numtype, LT_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.gt_s" => `RELOP`_instr(`I32`_numtype, `GT`_relop_(`S`_sx)) + prod "i32.gt_s" => RELOP_instr(I32_numtype, GT_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.gt_u" => `RELOP`_instr(`I32`_numtype, `GT`_relop_(`U`_sx)) + prod "i32.gt_u" => RELOP_instr(I32_numtype, GT_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.le_s" => `RELOP`_instr(`I32`_numtype, `LE`_relop_(`S`_sx)) + prod "i32.le_s" => RELOP_instr(I32_numtype, LE_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.le_u" => `RELOP`_instr(`I32`_numtype, `LE`_relop_(`U`_sx)) + prod "i32.le_u" => RELOP_instr(I32_numtype, LE_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.ge_s" => `RELOP`_instr(`I32`_numtype, `GE`_relop_(`S`_sx)) + prod "i32.ge_s" => RELOP_instr(I32_numtype, GE_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.ge_u" => `RELOP`_instr(`I32`_numtype, `GE`_relop_(`U`_sx)) + prod "i32.ge_u" => RELOP_instr(I32_numtype, GE_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.eq" => `RELOP`_instr(`I64`_numtype, `EQ`_relop_) + prod "i64.eq" => RELOP_instr(I64_numtype, EQ_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.ne" => `RELOP`_instr(`I64`_numtype, `NE`_relop_) + prod "i64.ne" => RELOP_instr(I64_numtype, NE_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.lt_s" => `RELOP`_instr(`I64`_numtype, `LT`_relop_(`S`_sx)) + prod "i64.lt_s" => RELOP_instr(I64_numtype, LT_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.lt_u" => `RELOP`_instr(`I64`_numtype, `LT`_relop_(`U`_sx)) + prod "i64.lt_u" => RELOP_instr(I64_numtype, LT_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.gt_s" => `RELOP`_instr(`I64`_numtype, `GT`_relop_(`S`_sx)) + prod "i64.gt_s" => RELOP_instr(I64_numtype, GT_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.gt_u" => `RELOP`_instr(`I64`_numtype, `GT`_relop_(`U`_sx)) + prod "i64.gt_u" => RELOP_instr(I64_numtype, GT_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.le_s" => `RELOP`_instr(`I64`_numtype, `LE`_relop_(`S`_sx)) + prod "i64.le_s" => RELOP_instr(I64_numtype, LE_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.le_u" => `RELOP`_instr(`I64`_numtype, `LE`_relop_(`U`_sx)) + prod "i64.le_u" => RELOP_instr(I64_numtype, LE_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.ge_s" => `RELOP`_instr(`I64`_numtype, `GE`_relop_(`S`_sx)) + prod "i64.ge_s" => RELOP_instr(I64_numtype, GE_relop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.ge_u" => `RELOP`_instr(`I64`_numtype, `GE`_relop_(`U`_sx)) + prod "i64.ge_u" => RELOP_instr(I64_numtype, GE_relop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.eq" => `RELOP`_instr(`F32`_numtype, `EQ`_relop_) + prod "f32.eq" => RELOP_instr(F32_numtype, EQ_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.ne" => `RELOP`_instr(`F32`_numtype, `NE`_relop_) + prod "f32.ne" => RELOP_instr(F32_numtype, NE_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.lt" => `RELOP`_instr(`F32`_numtype, `LT`_relop_) + prod "f32.lt" => RELOP_instr(F32_numtype, LT_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.gt" => `RELOP`_instr(`F32`_numtype, `GT`_relop_) + prod "f32.gt" => RELOP_instr(F32_numtype, GT_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.le" => `RELOP`_instr(`F32`_numtype, `LE`_relop_) + prod "f32.le" => RELOP_instr(F32_numtype, LE_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.ge" => `RELOP`_instr(`F32`_numtype, `GE`_relop_) + prod "f32.ge" => RELOP_instr(F32_numtype, GE_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.eq" => `RELOP`_instr(`F64`_numtype, `EQ`_relop_) + prod "f64.eq" => RELOP_instr(F64_numtype, EQ_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.ne" => `RELOP`_instr(`F64`_numtype, `NE`_relop_) + prod "f64.ne" => RELOP_instr(F64_numtype, NE_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.lt" => `RELOP`_instr(`F64`_numtype, `LT`_relop_) + prod "f64.lt" => RELOP_instr(F64_numtype, LT_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.gt" => `RELOP`_instr(`F64`_numtype, `GT`_relop_) + prod "f64.gt" => RELOP_instr(F64_numtype, GT_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.le" => `RELOP`_instr(`F64`_numtype, `LE`_relop_) + prod "f64.le" => RELOP_instr(F64_numtype, LE_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.ge" => `RELOP`_instr(`F64`_numtype, `GE`_relop_) + prod "f64.ge" => RELOP_instr(F64_numtype, GE_relop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.clz" => `UNOP`_instr(`I32`_numtype, `CLZ`_unop_) + prod "i32.clz" => UNOP_instr(I32_numtype, CLZ_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.ctz" => `UNOP`_instr(`I32`_numtype, `CTZ`_unop_) + prod "i32.ctz" => UNOP_instr(I32_numtype, CTZ_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.popcnt" => `UNOP`_instr(`I32`_numtype, `POPCNT`_unop_) + prod "i32.popcnt" => UNOP_instr(I32_numtype, POPCNT_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.extend8_s" => `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(8))) + prod "i32.extend8_s" => UNOP_instr(I32_numtype, EXTEND_unop_(`%`_sz(8))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.extend16_s" => `UNOP`_instr(`I32`_numtype, `EXTEND`_unop_(`%`_sz(16))) + prod "i32.extend16_s" => UNOP_instr(I32_numtype, EXTEND_unop_(`%`_sz(16))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.clz" => `UNOP`_instr(`I64`_numtype, `CLZ`_unop_) + prod "i64.clz" => UNOP_instr(I64_numtype, CLZ_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.ctz" => `UNOP`_instr(`I64`_numtype, `CTZ`_unop_) + prod "i64.ctz" => UNOP_instr(I64_numtype, CTZ_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.popcnt" => `UNOP`_instr(`I64`_numtype, `POPCNT`_unop_) + prod "i64.popcnt" => UNOP_instr(I64_numtype, POPCNT_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.extend8_s" => `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(8))) + prod "i64.extend8_s" => UNOP_instr(I64_numtype, EXTEND_unop_(`%`_sz(8))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.extend16_s" => `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(16))) + prod "i64.extend16_s" => UNOP_instr(I64_numtype, EXTEND_unop_(`%`_sz(16))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.extend32_s" => `UNOP`_instr(`I64`_numtype, `EXTEND`_unop_(`%`_sz(32))) + prod "i64.extend32_s" => UNOP_instr(I64_numtype, EXTEND_unop_(`%`_sz(32))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.abs" => `UNOP`_instr(`F32`_numtype, `ABS`_unop_) + prod "f32.abs" => UNOP_instr(F32_numtype, ABS_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.neg" => `UNOP`_instr(`F32`_numtype, `NEG`_unop_) + prod "f32.neg" => UNOP_instr(F32_numtype, NEG_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.sqrt" => `UNOP`_instr(`F32`_numtype, `SQRT`_unop_) + prod "f32.sqrt" => UNOP_instr(F32_numtype, SQRT_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.ceil" => `UNOP`_instr(`F32`_numtype, `CEIL`_unop_) + prod "f32.ceil" => UNOP_instr(F32_numtype, CEIL_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.floor" => `UNOP`_instr(`F32`_numtype, `FLOOR`_unop_) + prod "f32.floor" => UNOP_instr(F32_numtype, FLOOR_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.trunc" => `UNOP`_instr(`F32`_numtype, `TRUNC`_unop_) + prod "f32.trunc" => UNOP_instr(F32_numtype, TRUNC_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.nearest" => `UNOP`_instr(`F32`_numtype, `NEAREST`_unop_) + prod "f32.nearest" => UNOP_instr(F32_numtype, NEAREST_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.abs" => `UNOP`_instr(`F64`_numtype, `ABS`_unop_) + prod "f64.abs" => UNOP_instr(F64_numtype, ABS_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.neg" => `UNOP`_instr(`F64`_numtype, `NEG`_unop_) + prod "f64.neg" => UNOP_instr(F64_numtype, NEG_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.sqrt" => `UNOP`_instr(`F64`_numtype, `SQRT`_unop_) + prod "f64.sqrt" => UNOP_instr(F64_numtype, SQRT_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.ceil" => `UNOP`_instr(`F64`_numtype, `CEIL`_unop_) + prod "f64.ceil" => UNOP_instr(F64_numtype, CEIL_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.floor" => `UNOP`_instr(`F64`_numtype, `FLOOR`_unop_) + prod "f64.floor" => UNOP_instr(F64_numtype, FLOOR_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.trunc" => `UNOP`_instr(`F64`_numtype, `TRUNC`_unop_) + prod "f64.trunc" => UNOP_instr(F64_numtype, TRUNC_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.nearest" => `UNOP`_instr(`F64`_numtype, `NEAREST`_unop_) + prod "f64.nearest" => UNOP_instr(F64_numtype, NEAREST_unop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.add" => `BINOP`_instr(`I32`_numtype, `ADD`_binop_) + prod "i32.add" => BINOP_instr(I32_numtype, ADD_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.sub" => `BINOP`_instr(`I32`_numtype, `SUB`_binop_) + prod "i32.sub" => BINOP_instr(I32_numtype, SUB_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.mul" => `BINOP`_instr(`I32`_numtype, `MUL`_binop_) + prod "i32.mul" => BINOP_instr(I32_numtype, MUL_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.div_s" => `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`S`_sx)) + prod "i32.div_s" => BINOP_instr(I32_numtype, DIV_binop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.div_u" => `BINOP`_instr(`I32`_numtype, `DIV`_binop_(`U`_sx)) + prod "i32.div_u" => BINOP_instr(I32_numtype, DIV_binop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.rem_s" => `BINOP`_instr(`I32`_numtype, `REM`_binop_(`S`_sx)) + prod "i32.rem_s" => BINOP_instr(I32_numtype, REM_binop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.rem_u" => `BINOP`_instr(`I32`_numtype, `REM`_binop_(`U`_sx)) + prod "i32.rem_u" => BINOP_instr(I32_numtype, REM_binop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.and" => `BINOP`_instr(`I32`_numtype, `AND`_binop_) + prod "i32.and" => BINOP_instr(I32_numtype, AND_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.or" => `BINOP`_instr(`I32`_numtype, `OR`_binop_) + prod "i32.or" => BINOP_instr(I32_numtype, OR_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.xor" => `BINOP`_instr(`I32`_numtype, `XOR`_binop_) + prod "i32.xor" => BINOP_instr(I32_numtype, XOR_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.shl" => `BINOP`_instr(`I32`_numtype, `SHL`_binop_) + prod "i32.shl" => BINOP_instr(I32_numtype, SHL_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.shr_s" => `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`S`_sx)) + prod "i32.shr_s" => BINOP_instr(I32_numtype, SHR_binop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.shr_u" => `BINOP`_instr(`I32`_numtype, `SHR`_binop_(`U`_sx)) + prod "i32.shr_u" => BINOP_instr(I32_numtype, SHR_binop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.rotl" => `BINOP`_instr(`I32`_numtype, `ROTL`_binop_) + prod "i32.rotl" => BINOP_instr(I32_numtype, ROTL_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.rotr" => `BINOP`_instr(`I32`_numtype, `ROTR`_binop_) + prod "i32.rotr" => BINOP_instr(I32_numtype, ROTR_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.add" => `BINOP`_instr(`I64`_numtype, `ADD`_binop_) + prod "i64.add" => BINOP_instr(I64_numtype, ADD_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.sub" => `BINOP`_instr(`I64`_numtype, `SUB`_binop_) + prod "i64.sub" => BINOP_instr(I64_numtype, SUB_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.mul" => `BINOP`_instr(`I64`_numtype, `MUL`_binop_) + prod "i64.mul" => BINOP_instr(I64_numtype, MUL_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.div_s" => `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`S`_sx)) + prod "i64.div_s" => BINOP_instr(I64_numtype, DIV_binop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.div_u" => `BINOP`_instr(`I64`_numtype, `DIV`_binop_(`U`_sx)) + prod "i64.div_u" => BINOP_instr(I64_numtype, DIV_binop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.rem_s" => `BINOP`_instr(`I64`_numtype, `REM`_binop_(`S`_sx)) + prod "i64.rem_s" => BINOP_instr(I64_numtype, REM_binop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.rem_u" => `BINOP`_instr(`I64`_numtype, `REM`_binop_(`U`_sx)) + prod "i64.rem_u" => BINOP_instr(I64_numtype, REM_binop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.and" => `BINOP`_instr(`I64`_numtype, `AND`_binop_) + prod "i64.and" => BINOP_instr(I64_numtype, AND_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.or" => `BINOP`_instr(`I64`_numtype, `OR`_binop_) + prod "i64.or" => BINOP_instr(I64_numtype, OR_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.xor" => `BINOP`_instr(`I64`_numtype, `XOR`_binop_) + prod "i64.xor" => BINOP_instr(I64_numtype, XOR_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.shl" => `BINOP`_instr(`I64`_numtype, `SHL`_binop_) + prod "i64.shl" => BINOP_instr(I64_numtype, SHL_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.shr_s" => `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`S`_sx)) + prod "i64.shr_s" => BINOP_instr(I64_numtype, SHR_binop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.shr_u" => `BINOP`_instr(`I64`_numtype, `SHR`_binop_(`U`_sx)) + prod "i64.shr_u" => BINOP_instr(I64_numtype, SHR_binop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.rotl" => `BINOP`_instr(`I64`_numtype, `ROTL`_binop_) + prod "i64.rotl" => BINOP_instr(I64_numtype, ROTL_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.rotr" => `BINOP`_instr(`I64`_numtype, `ROTR`_binop_) + prod "i64.rotr" => BINOP_instr(I64_numtype, ROTR_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.add" => `BINOP`_instr(`F32`_numtype, `ADD`_binop_) + prod "f32.add" => BINOP_instr(F32_numtype, ADD_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.sub" => `BINOP`_instr(`F32`_numtype, `SUB`_binop_) + prod "f32.sub" => BINOP_instr(F32_numtype, SUB_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.mul" => `BINOP`_instr(`F32`_numtype, `MUL`_binop_) + prod "f32.mul" => BINOP_instr(F32_numtype, MUL_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.div" => `BINOP`_instr(`F32`_numtype, `DIV`_binop_) + prod "f32.div" => BINOP_instr(F32_numtype, DIV_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.min" => `BINOP`_instr(`F32`_numtype, `MIN`_binop_) + prod "f32.min" => BINOP_instr(F32_numtype, MIN_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.max" => `BINOP`_instr(`F32`_numtype, `MAX`_binop_) + prod "f32.max" => BINOP_instr(F32_numtype, MAX_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.copysign" => `BINOP`_instr(`F32`_numtype, `COPYSIGN`_binop_) + prod "f32.copysign" => BINOP_instr(F32_numtype, COPYSIGN_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.add" => `BINOP`_instr(`F64`_numtype, `ADD`_binop_) + prod "f64.add" => BINOP_instr(F64_numtype, ADD_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.sub" => `BINOP`_instr(`F64`_numtype, `SUB`_binop_) + prod "f64.sub" => BINOP_instr(F64_numtype, SUB_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.mul" => `BINOP`_instr(`F64`_numtype, `MUL`_binop_) + prod "f64.mul" => BINOP_instr(F64_numtype, MUL_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.div" => `BINOP`_instr(`F64`_numtype, `DIV`_binop_) + prod "f64.div" => BINOP_instr(F64_numtype, DIV_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.min" => `BINOP`_instr(`F64`_numtype, `MIN`_binop_) + prod "f64.min" => BINOP_instr(F64_numtype, MIN_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.max" => `BINOP`_instr(`F64`_numtype, `MAX`_binop_) + prod "f64.max" => BINOP_instr(F64_numtype, MAX_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.copysign" => `BINOP`_instr(`F64`_numtype, `COPYSIGN`_binop_) + prod "f64.copysign" => BINOP_instr(F64_numtype, COPYSIGN_binop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.wrap_i64" => `CVTOP`_instr(`I32`_numtype, `I64`_numtype, `WRAP`_cvtop__) + prod "i32.wrap_i64" => CVTOP_instr(I32_numtype, I64_numtype, WRAP_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_f32_s" => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx)) + prod "i32.trunc_f32_s" => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_f32_u" => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx)) + prod "i32.trunc_f32_u" => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_f64_s" => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx)) + prod "i32.trunc_f64_s" => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_f64_u" => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx)) + prod "i32.trunc_f64_u" => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_sat_f32_s" => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) + prod "i32.trunc_sat_f32_s" => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_SAT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_sat_f32_u" => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) + prod "i32.trunc_sat_f32_u" => CVTOP_instr(I32_numtype, F32_numtype, TRUNC_SAT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_sat_f64_s" => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) + prod "i32.trunc_sat_f64_s" => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_SAT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.trunc_sat_f64_u" => `CVTOP`_instr(`I32`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) + prod "i32.trunc_sat_f64_u" => CVTOP_instr(I32_numtype, F64_numtype, TRUNC_SAT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.extend_i64_s" => `CVTOP`_instr(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__(`S`_sx)) + prod "i64.extend_i64_s" => CVTOP_instr(I64_numtype, I64_numtype, EXTEND_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.extend_i64_u" => `CVTOP`_instr(`I64`_numtype, `I64`_numtype, `EXTEND`_cvtop__(`U`_sx)) + prod "i64.extend_i64_u" => CVTOP_instr(I64_numtype, I64_numtype, EXTEND_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_f32_s" => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`S`_sx)) + prod "i64.trunc_f32_s" => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_f32_u" => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC`_cvtop__(`U`_sx)) + prod "i64.trunc_f32_u" => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_f64_s" => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`S`_sx)) + prod "i64.trunc_f64_s" => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_f64_u" => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC`_cvtop__(`U`_sx)) + prod "i64.trunc_f64_u" => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_sat_f32_s" => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) + prod "i64.trunc_sat_f32_s" => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_SAT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_sat_f32_u" => `CVTOP`_instr(`I64`_numtype, `F32`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) + prod "i64.trunc_sat_f32_u" => CVTOP_instr(I64_numtype, F32_numtype, TRUNC_SAT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_sat_f64_s" => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`S`_sx)) + prod "i64.trunc_sat_f64_s" => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_SAT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.trunc_sat_f64_u" => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `TRUNC_SAT`_cvtop__(`U`_sx)) + prod "i64.trunc_sat_f64_u" => CVTOP_instr(I64_numtype, F64_numtype, TRUNC_SAT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.demote_f64" => `CVTOP`_instr(`F32`_numtype, `F64`_numtype, `DEMOTE`_cvtop__) + prod "f32.demote_f64" => CVTOP_instr(F32_numtype, F64_numtype, DEMOTE_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.convert_i32_s" => `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx)) + prod "f32.convert_i32_s" => CVTOP_instr(F32_numtype, I32_numtype, CONVERT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.convert_i32_u" => `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx)) + prod "f32.convert_i32_u" => CVTOP_instr(F32_numtype, I32_numtype, CONVERT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.convert_i64_s" => `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx)) + prod "f32.convert_i64_s" => CVTOP_instr(F32_numtype, I64_numtype, CONVERT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.convert_i64_u" => `CVTOP`_instr(`F32`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx)) + prod "f32.convert_i64_u" => CVTOP_instr(F32_numtype, I64_numtype, CONVERT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.promote_f32" => `CVTOP`_instr(`F64`_numtype, `F32`_numtype, `PROMOTE`_cvtop__) + prod "f64.promote_f32" => CVTOP_instr(F64_numtype, F32_numtype, PROMOTE_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.convert_i32_s" => `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`S`_sx)) + prod "f64.convert_i32_s" => CVTOP_instr(F64_numtype, I32_numtype, CONVERT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.convert_i32_u" => `CVTOP`_instr(`F64`_numtype, `I32`_numtype, `CONVERT`_cvtop__(`U`_sx)) + prod "f64.convert_i32_u" => CVTOP_instr(F64_numtype, I32_numtype, CONVERT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.convert_i64_s" => `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`S`_sx)) + prod "f64.convert_i64_s" => CVTOP_instr(F64_numtype, I64_numtype, CONVERT_cvtop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.convert_i64_u" => `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `CONVERT`_cvtop__(`U`_sx)) + prod "f64.convert_i64_u" => CVTOP_instr(F64_numtype, I64_numtype, CONVERT_cvtop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32.reinterpret_f32" => `CVTOP`_instr(`I32`_numtype, `F32`_numtype, `REINTERPRET`_cvtop__) + prod "i32.reinterpret_f32" => CVTOP_instr(I32_numtype, F32_numtype, REINTERPRET_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64.reinterpret_f64" => `CVTOP`_instr(`I64`_numtype, `F64`_numtype, `REINTERPRET`_cvtop__) + prod "i64.reinterpret_f64" => CVTOP_instr(I64_numtype, F64_numtype, REINTERPRET_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32.reinterpret_i32" => `CVTOP`_instr(`F32`_numtype, `I32`_numtype, `REINTERPRET`_cvtop__) + prod "f32.reinterpret_i32" => CVTOP_instr(F32_numtype, I32_numtype, REINTERPRET_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64.reinterpret_i64" => `CVTOP`_instr(`F64`_numtype, `I64`_numtype, `REINTERPRET`_cvtop__) + prod "f64.reinterpret_i64" => CVTOP_instr(F64_numtype, I64_numtype, REINTERPRET_cvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`c*` : u8*} {{"v128.const"} {"i8x16"} {c*{c <- `c*`}:Ti8^16{}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`}))) + prod{`c*` : u8*} {{"v128.const"} {"i8x16"} {c*{c <- `c*`}:Ti8^16{}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(8, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`c*` : u16*} {{"v128.const"} {"i16x8"} {c*{c <- `c*`}:Ti16^8{}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`}))) + prod{`c*` : u16*} {{"v128.const"} {"i16x8"} {c*{c <- `c*`}:Ti16^8{}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(16, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`c*` : u32*} {{"v128.const"} {"i32x4"} {c*{c <- `c*`}:Ti32^4{}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`}))) + prod{`c*` : u32*} {{"v128.const"} {"i32x4"} {c*{c <- `c*`}:Ti32^4{}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(32, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`c*` : u64*} {{"v128.const"} {"i64x2"} {c*{c <- `c*`}:Ti64^2{}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`}))) + prod{`c*` : u64*} {{"v128.const"} {"i64x2"} {c*{c <- `c*`}:Ti64^2{}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, $concat_(syntax byte, $ibytes_(64, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`c*` : f32*} {{"v128.const"} {"f32x4"} {c*{c <- `c*`}:Tf32^4{}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`}))) + prod{`c*` : f32*} {{"v128.const"} {"f32x4"} {c*{c <- `c*`}:Tf32^4{}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(32, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`c*` : f64*} {{"v128.const"} {"f64x2"} {c*{c <- `c*`}:Tf64^2{}}} => `VCONST`_instr(`V128`_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`}))) + prod{`c*` : f64*} {{"v128.const"} {"f64x2"} {c*{c <- `c*`}:Tf64^2{}}} => VCONST_instr(V128_vectype, $inv_ibytes_(128, $concat_(syntax byte, $fbytes_(64, c)*{c <- `c*`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{`i*` : laneidx*} {{"i8x16.shuffle"} {i*{i <- `i*`}:Tlaneidx^16{}}} => `VSHUFFLE`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), i*{i <- `i*`}) + prod{`i*` : laneidx*} {{"i8x16.shuffle"} {i*{i <- `i*`}:Tlaneidx^16{}}} => VSHUFFLE_instr(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(16))), i*{i <- `i*`}) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.swizzle" => `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SWIZZLE`_vswizzlop_) + prod "i8x16.swizzle" => VSWIZZLOP_instr(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SWIZZLE_vswizzlop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.relaxed_swizzle" => `VSWIZZLOP`_instr(`%`_bshape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `RELAXED_SWIZZLE`_vswizzlop_) + prod "i8x16.relaxed_swizzle" => VSWIZZLOP_instr(`%`_bshape(`%X%`_shape(I8_lanetype, `%`_dim(16))), RELAXED_SWIZZLE_vswizzlop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.splat" => `VSPLAT`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16))) + prod "i8x16.splat" => VSPLAT_instr(`%X%`_shape(I8_lanetype, `%`_dim(16))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.splat" => `VSPLAT`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8))) + prod "i16x8.splat" => VSPLAT_instr(`%X%`_shape(I16_lanetype, `%`_dim(8))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.splat" => `VSPLAT`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4))) + prod "i32x4.splat" => VSPLAT_instr(`%X%`_shape(I32_lanetype, `%`_dim(4))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.splat" => `VSPLAT`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2))) + prod "i64x2.splat" => VSPLAT_instr(`%X%`_shape(I64_lanetype, `%`_dim(2))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.splat" => `VSPLAT`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4))) + prod "f32x4.splat" => VSPLAT_instr(`%X%`_shape(F32_lanetype, `%`_dim(4))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.splat" => `VSPLAT`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2))) + prod "f64x2.splat" => VSPLAT_instr(`%X%`_shape(F64_lanetype, `%`_dim(2))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i8x16.extract_lane_s"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`S`_sx), i) + prod{i : laneidx} {{"i8x16.extract_lane_s"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ?(S_sx), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i8x16.extract_lane_u"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), ?(`U`_sx), i) + prod{i : laneidx} {{"i8x16.extract_lane_u"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ?(U_sx), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i16x8.extract_lane_s"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`S`_sx), i) + prod{i : laneidx} {{"i16x8.extract_lane_s"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ?(S_sx), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i16x8.extract_lane_u"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), ?(`U`_sx), i) + prod{i : laneidx} {{"i16x8.extract_lane_u"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ?(U_sx), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i32x4.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), ?(), i) + prod{i : laneidx} {{"i32x4.extract_lane"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ?(), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i64x2.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), ?(), i) + prod{i : laneidx} {{"i64x2.extract_lane"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ?(), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"f32x4.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), ?(), i) + prod{i : laneidx} {{"f32x4.extract_lane"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), ?(), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"f64x2.extract_lane"} {i:Tlaneidx}} => `VEXTRACT_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), ?(), i) + prod{i : laneidx} {{"f64x2.extract_lane"} {i:Tlaneidx}} => VEXTRACT_LANE_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), ?(), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i8x16.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), i) + prod{i : laneidx} {{"i8x16.replace_lane"} {i:Tlaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i16x8.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), i) + prod{i : laneidx} {{"i16x8.replace_lane"} {i:Tlaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i32x4.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), i) + prod{i : laneidx} {{"i32x4.replace_lane"} {i:Tlaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"i64x2.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), i) + prod{i : laneidx} {{"i64x2.replace_lane"} {i:Tlaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"f32x4.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), i) + prod{i : laneidx} {{"f32x4.replace_lane"} {i:Tlaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod{i : laneidx} {{"f64x2.replace_lane"} {i:Tlaneidx}} => `VREPLACE_LANE`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), i) + prod{i : laneidx} {{"f64x2.replace_lane"} {i:Tlaneidx}} => VREPLACE_LANE_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), i) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.any_true" => `VVTESTOP`_instr(`V128`_vectype, `ANY_TRUE`_vvtestop) + prod "v128.any_true" => VVTESTOP_instr(V128_vectype, ANY_TRUE_vvtestop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.all_true" => `VTESTOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ALL_TRUE`_vtestop_) + prod "i8x16.all_true" => VTESTOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ALL_TRUE_vtestop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.all_true" => `VTESTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ALL_TRUE`_vtestop_) + prod "i16x8.all_true" => VTESTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ALL_TRUE_vtestop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.all_true" => `VTESTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ALL_TRUE`_vtestop_) + prod "i32x4.all_true" => VTESTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ALL_TRUE_vtestop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.all_true" => `VTESTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ALL_TRUE`_vtestop_) + prod "i64x2.all_true" => VTESTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ALL_TRUE_vtestop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.eq" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EQ`_vrelop_) + prod "i8x16.eq" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), EQ_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.ne" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NE`_vrelop_) + prod "i8x16.ne" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), NE_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.lt_s" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`S`_sx)) + prod "i8x16.lt_s" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.lt_u" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LT`_vrelop_(`U`_sx)) + prod "i8x16.lt_u" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LT_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.gt_s" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`S`_sx)) + prod "i8x16.gt_s" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.gt_u" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GT`_vrelop_(`U`_sx)) + prod "i8x16.gt_u" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GT_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.le_s" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`S`_sx)) + prod "i8x16.le_s" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.le_u" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `LE`_vrelop_(`U`_sx)) + prod "i8x16.le_u" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), LE_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.ge_s" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`S`_sx)) + prod "i8x16.ge_s" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.ge_u" => `VRELOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `GE`_vrelop_(`U`_sx)) + prod "i8x16.ge_u" => VRELOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), GE_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.eq" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EQ`_vrelop_) + prod "i16x8.eq" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), EQ_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.ne" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NE`_vrelop_) + prod "i16x8.ne" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), NE_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.lt_s" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`S`_sx)) + prod "i16x8.lt_s" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.lt_u" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LT`_vrelop_(`U`_sx)) + prod "i16x8.lt_u" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LT_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.gt_s" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`S`_sx)) + prod "i16x8.gt_s" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.gt_u" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GT`_vrelop_(`U`_sx)) + prod "i16x8.gt_u" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GT_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.le_s" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`S`_sx)) + prod "i16x8.le_s" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.le_u" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `LE`_vrelop_(`U`_sx)) + prod "i16x8.le_u" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), LE_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.ge_s" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`S`_sx)) + prod "i16x8.ge_s" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.ge_u" => `VRELOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `GE`_vrelop_(`U`_sx)) + prod "i16x8.ge_u" => VRELOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), GE_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.eq" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EQ`_vrelop_) + prod "i32x4.eq" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), EQ_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.ne" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NE`_vrelop_) + prod "i32x4.ne" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), NE_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.lt_s" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`S`_sx)) + prod "i32x4.lt_s" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.lt_u" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LT`_vrelop_(`U`_sx)) + prod "i32x4.lt_u" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LT_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.gt_s" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`S`_sx)) + prod "i32x4.gt_s" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.gt_u" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GT`_vrelop_(`U`_sx)) + prod "i32x4.gt_u" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GT_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.le_s" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`S`_sx)) + prod "i32x4.le_s" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.le_u" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `LE`_vrelop_(`U`_sx)) + prod "i32x4.le_u" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), LE_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.ge_s" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`S`_sx)) + prod "i32x4.ge_s" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.ge_u" => `VRELOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `GE`_vrelop_(`U`_sx)) + prod "i32x4.ge_u" => VRELOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), GE_vrelop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.eq" => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `EQ`_vrelop_) + prod "i64x2.eq" => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), EQ_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.ne" => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NE`_vrelop_) + prod "i64x2.ne" => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), NE_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.lt_s" => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LT`_vrelop_(`S`_sx)) + prod "i64x2.lt_s" => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), LT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.gt_s" => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GT`_vrelop_(`S`_sx)) + prod "i64x2.gt_s" => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), GT_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.le_s" => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `LE`_vrelop_(`S`_sx)) + prod "i64x2.le_s" => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), LE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.ge_s" => `VRELOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `GE`_vrelop_(`S`_sx)) + prod "i64x2.ge_s" => VRELOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), GE_vrelop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.eq" => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `EQ`_vrelop_) + prod "f32x4.eq" => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), EQ_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.ne" => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NE`_vrelop_) + prod "f32x4.ne" => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), NE_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.lt" => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LT`_vrelop_) + prod "f32x4.lt" => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), LT_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.gt" => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GT`_vrelop_) + prod "f32x4.gt" => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), GT_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.le" => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `LE`_vrelop_) + prod "f32x4.le" => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), LE_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.ge" => `VRELOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `GE`_vrelop_) + prod "f32x4.ge" => VRELOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), GE_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.eq" => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `EQ`_vrelop_) + prod "f64x2.eq" => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), EQ_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.ne" => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NE`_vrelop_) + prod "f64x2.ne" => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), NE_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.lt" => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LT`_vrelop_) + prod "f64x2.lt" => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), LT_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.gt" => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GT`_vrelop_) + prod "f64x2.gt" => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), GT_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.le" => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `LE`_vrelop_) + prod "f64x2.le" => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), LE_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.ge" => `VRELOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `GE`_vrelop_) + prod "f64x2.ge" => VRELOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), GE_vrelop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.not" => `VVUNOP`_instr(`V128`_vectype, `NOT`_vvunop) + prod "v128.not" => VVUNOP_instr(V128_vectype, NOT_vvunop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.abs" => `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ABS`_vunop_) + prod "i8x16.abs" => VUNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ABS_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.neg" => `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `NEG`_vunop_) + prod "i8x16.neg" => VUNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), NEG_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.popcnt" => `VUNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `POPCNT`_vunop_) + prod "i8x16.popcnt" => VUNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), POPCNT_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.abs" => `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ABS`_vunop_) + prod "i16x8.abs" => VUNOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ABS_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.neg" => `VUNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `NEG`_vunop_) + prod "i16x8.neg" => VUNOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), NEG_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.abs" => `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ABS`_vunop_) + prod "i32x4.abs" => VUNOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ABS_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.neg" => `VUNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `NEG`_vunop_) + prod "i32x4.neg" => VUNOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), NEG_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.abs" => `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ABS`_vunop_) + prod "i64x2.abs" => VUNOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ABS_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.neg" => `VUNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `NEG`_vunop_) + prod "i64x2.neg" => VUNOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), NEG_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.abs" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ABS`_vunop_) + prod "f32x4.abs" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), ABS_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.neg" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEG`_vunop_) + prod "f32x4.neg" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), NEG_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.sqrt" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SQRT`_vunop_) + prod "f32x4.sqrt" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), SQRT_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.ceil" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `CEIL`_vunop_) + prod "f32x4.ceil" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), CEIL_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.floor" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `FLOOR`_vunop_) + prod "f32x4.floor" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), FLOOR_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.trunc" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC`_vunop_) + prod "f32x4.trunc" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), TRUNC_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.nearest" => `VUNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `NEAREST`_vunop_) + prod "f32x4.nearest" => VUNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), NEAREST_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.abs" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ABS`_vunop_) + prod "f64x2.abs" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), ABS_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.neg" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEG`_vunop_) + prod "f64x2.neg" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), NEG_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.sqrt" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SQRT`_vunop_) + prod "f64x2.sqrt" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), SQRT_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.ceil" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `CEIL`_vunop_) + prod "f64x2.ceil" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), CEIL_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.floor" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `FLOOR`_vunop_) + prod "f64x2.floor" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), FLOOR_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.trunc" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC`_vunop_) + prod "f64x2.trunc" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), TRUNC_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.nearest" => `VUNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `NEAREST`_vunop_) + prod "f64x2.nearest" => VUNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), NEAREST_vunop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.and" => `VVBINOP`_instr(`V128`_vectype, `AND`_vvbinop) + prod "v128.and" => VVBINOP_instr(V128_vectype, AND_vvbinop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.andnot" => `VVBINOP`_instr(`V128`_vectype, `ANDNOT`_vvbinop) + prod "v128.andnot" => VVBINOP_instr(V128_vectype, ANDNOT_vvbinop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.or" => `VVBINOP`_instr(`V128`_vectype, `OR`_vvbinop) + prod "v128.or" => VVBINOP_instr(V128_vectype, OR_vvbinop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.xor" => `VVBINOP`_instr(`V128`_vectype, `XOR`_vvbinop) + prod "v128.xor" => VVBINOP_instr(V128_vectype, XOR_vvbinop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.add" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD`_vbinop_) + prod "i8x16.add" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ADD_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.add_sat_s" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`S`_sx)) + prod "i8x16.add_sat_s" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ADD_SAT_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.add_sat_u" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `ADD_SAT`_vbinop_(`U`_sx)) + prod "i8x16.add_sat_u" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), ADD_SAT_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.sub" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB`_vbinop_) + prod "i8x16.sub" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), SUB_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.sub_sat_s" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`S`_sx)) + prod "i8x16.sub_sat_s" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), SUB_SAT_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.sub_sat_u" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `SUB_SAT`_vbinop_(`U`_sx)) + prod "i8x16.sub_sat_u" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), SUB_SAT_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.min_s" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`S`_sx)) + prod "i8x16.min_s" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MIN_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.min_u" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MIN`_vbinop_(`U`_sx)) + prod "i8x16.min_u" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MIN_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.max_s" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`S`_sx)) + prod "i8x16.max_s" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MAX_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.max_u" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `MAX`_vbinop_(`U`_sx)) + prod "i8x16.max_u" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), MAX_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.avgr_u" => `VBINOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `AVGRU`_vbinop_) + prod "i8x16.avgr_u" => VBINOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), AVGRU_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.add" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD`_vbinop_) + prod "i16x8.add" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ADD_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.add_sat_s" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`S`_sx)) + prod "i16x8.add_sat_s" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ADD_SAT_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.add_sat_u" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `ADD_SAT`_vbinop_(`U`_sx)) + prod "i16x8.add_sat_u" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), ADD_SAT_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.sub" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB`_vbinop_) + prod "i16x8.sub" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), SUB_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.sub_sat_s" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`S`_sx)) + prod "i16x8.sub_sat_s" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), SUB_SAT_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.sub_sat_u" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `SUB_SAT`_vbinop_(`U`_sx)) + prod "i16x8.sub_sat_u" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), SUB_SAT_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.mul" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MUL`_vbinop_) + prod "i16x8.mul" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MUL_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.min_s" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`S`_sx)) + prod "i16x8.min_s" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MIN_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.min_u" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MIN`_vbinop_(`U`_sx)) + prod "i16x8.min_u" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MIN_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.max_s" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`S`_sx)) + prod "i16x8.max_s" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MAX_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.max_u" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `MAX`_vbinop_(`U`_sx)) + prod "i16x8.max_u" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), MAX_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.avgr_u" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `AVGRU`_vbinop_) + prod "i16x8.avgr_u" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), AVGRU_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.q15mulr_sat_s" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `Q15MULR_SATS`_vbinop_) + prod "i16x8.q15mulr_sat_s" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), Q15MULR_SATS_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.relaxed_q15mulr_s" => `VBINOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_Q15MULRS`_vbinop_) + prod "i16x8.relaxed_q15mulr_s" => VBINOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), RELAXED_Q15MULRS_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.add" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `ADD`_vbinop_) + prod "i32x4.add" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), ADD_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.sub" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `SUB`_vbinop_) + prod "i32x4.sub" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), SUB_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.mul" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MUL`_vbinop_) + prod "i32x4.mul" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MUL_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.min_s" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`S`_sx)) + prod "i32x4.min_s" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MIN_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.min_u" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MIN`_vbinop_(`U`_sx)) + prod "i32x4.min_u" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MIN_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.max_s" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`S`_sx)) + prod "i32x4.max_s" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MAX_vbinop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.max_u" => `VBINOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `MAX`_vbinop_(`U`_sx)) + prod "i32x4.max_u" => VBINOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), MAX_vbinop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.add" => `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `ADD`_vbinop_) + prod "i64x2.add" => VBINOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), ADD_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.sub" => `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `SUB`_vbinop_) + prod "i64x2.sub" => VBINOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), SUB_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.mul" => `VBINOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `MUL`_vbinop_) + prod "i64x2.mul" => VBINOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), MUL_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.add" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `ADD`_vbinop_) + prod "f32x4.add" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), ADD_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.sub" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `SUB`_vbinop_) + prod "f32x4.sub" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), SUB_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.mul" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MUL`_vbinop_) + prod "f32x4.mul" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), MUL_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.div" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `DIV`_vbinop_) + prod "f32x4.div" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), DIV_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.min" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MIN`_vbinop_) + prod "f32x4.min" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), MIN_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.max" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `MAX`_vbinop_) + prod "f32x4.max" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), MAX_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.pmin" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMIN`_vbinop_) + prod "f32x4.pmin" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), PMIN_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.pmax" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PMAX`_vbinop_) + prod "f32x4.pmax" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), PMAX_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.relaxed_min" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MIN`_vbinop_) + prod "f32x4.relaxed_min" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_MIN_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.relaxed_max" => `VBINOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MAX`_vbinop_) + prod "f32x4.relaxed_max" => VBINOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_MAX_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.add" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `ADD`_vbinop_) + prod "f64x2.add" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), ADD_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.sub" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `SUB`_vbinop_) + prod "f64x2.sub" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), SUB_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.mul" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MUL`_vbinop_) + prod "f64x2.mul" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), MUL_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.div" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DIV`_vbinop_) + prod "f64x2.div" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), DIV_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.min" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MIN`_vbinop_) + prod "f64x2.min" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), MIN_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.max" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `MAX`_vbinop_) + prod "f64x2.max" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), MAX_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.pmin" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMIN`_vbinop_) + prod "f64x2.pmin" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), PMIN_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.pmax" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `PMAX`_vbinop_) + prod "f64x2.pmax" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), PMAX_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.relaxed_min" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MIN`_vbinop_) + prod "f64x2.relaxed_min" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_MIN_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.relaxed_max" => `VBINOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MAX`_vbinop_) + prod "f64x2.relaxed_max" => VBINOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_MAX_vbinop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "v128.bitselect" => `VVTERNOP`_instr(`V128`_vectype, `BITSELECT`_vvternop) + prod "v128.bitselect" => VVTERNOP_instr(V128_vectype, BITSELECT_vvternop) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.relaxed_laneselect" => `VTERNOP`_instr(`%X%`_shape(`I8`_lanetype, `%`_dim(16)), `RELAXED_LANESELECT`_vternop_) + prod "i8x16.relaxed_laneselect" => VTERNOP_instr(`%X%`_shape(I8_lanetype, `%`_dim(16)), RELAXED_LANESELECT_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.relaxed_laneselect" => `VTERNOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `RELAXED_LANESELECT`_vternop_) + prod "i16x8.relaxed_laneselect" => VTERNOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), RELAXED_LANESELECT_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.relaxed_laneselect" => `VTERNOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `RELAXED_LANESELECT`_vternop_) + prod "i32x4.relaxed_laneselect" => VTERNOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), RELAXED_LANESELECT_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.relaxed_laneselect" => `VTERNOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `RELAXED_LANESELECT`_vternop_) + prod "i64x2.relaxed_laneselect" => VTERNOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), RELAXED_LANESELECT_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.relaxed_madd" => `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_MADD`_vternop_) + prod "f32x4.relaxed_madd" => VTERNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_MADD_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.relaxed_nmadd" => `VTERNOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_NMADD`_vternop_) + prod "f32x4.relaxed_nmadd" => VTERNOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_NMADD_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.relaxed_madd" => `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_MADD`_vternop_) + prod "f64x2.relaxed_madd" => VTERNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_MADD_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.relaxed_nmadd" => `VTERNOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_NMADD`_vternop_) + prod "f64x2.relaxed_nmadd" => VTERNOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_NMADD_vternop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.shl" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHL`_vshiftop_) + prod "i8x16.shl" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SHL_vshiftop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.shr_s" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`S`_sx)) + prod "i8x16.shr_s" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SHR_vshiftop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.shr_u" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `SHR`_vshiftop_(`U`_sx)) + prod "i8x16.shr_u" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), SHR_vshiftop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.shl" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHL`_vshiftop_) + prod "i16x8.shl" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), SHL_vshiftop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.shr_s" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`S`_sx)) + prod "i16x8.shr_s" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), SHR_vshiftop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.shr_u" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `SHR`_vshiftop_(`U`_sx)) + prod "i16x8.shr_u" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), SHR_vshiftop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.shl" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHL`_vshiftop_) + prod "i32x4.shl" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), SHL_vshiftop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.shr_s" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`S`_sx)) + prod "i32x4.shr_s" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), SHR_vshiftop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.shr_u" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `SHR`_vshiftop_(`U`_sx)) + prod "i32x4.shr_u" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), SHR_vshiftop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.shl" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHL`_vshiftop_) + prod "i64x2.shl" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), SHL_vshiftop_) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.shr_s" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`S`_sx)) + prod "i64x2.shr_s" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), SHR_vshiftop_(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.shr_u" => `VSHIFTOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `SHR`_vshiftop_(`U`_sx)) + prod "i64x2.shr_u" => VSHIFTOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), SHR_vshiftop_(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.bitmask" => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16)))) + prod "i8x16.bitmask" => VBITMASK_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16)))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.bitmask" => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8)))) + prod "i16x8.bitmask" => VBITMASK_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8)))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.bitmask" => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4)))) + prod "i32x4.bitmask" => VBITMASK_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4)))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.bitmask" => `VBITMASK`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2)))) + prod "i64x2.bitmask" => VBITMASK_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2)))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.narrow_i16x8_s" => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `S`_sx) + prod "i8x16.narrow_i16x8_s" => VNARROW_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), S_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i8x16.narrow_i16x8_u" => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `U`_sx) + prod "i8x16.narrow_i16x8_u" => VNARROW_instr(`%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), U_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.narrow_i32x4_s" => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `S`_sx) + prod "i16x8.narrow_i32x4_s" => VNARROW_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), S_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.narrow_i32x4_u" => `VNARROW`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `U`_sx) + prod "i16x8.narrow_i32x4_u" => VNARROW_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), U_sx) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extend_low_i8x16_s" => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)) + prod "i16x8.extend_low_i8x16_s" => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(LOW_half, S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extend_low_i8x16_u" => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)) + prod "i16x8.extend_low_i8x16_u" => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(LOW_half, U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extend_high_i8x16_s" => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)) + prod "i16x8.extend_high_i8x16_s" => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(HIGH_half, S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extend_high_i8x16_u" => `VCVTOP`_instr(`%X%`_shape(`I16`_lanetype, `%`_dim(8)), `%X%`_shape(`I8`_lanetype, `%`_dim(16)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)) + prod "i16x8.extend_high_i8x16_u" => VCVTOP_instr(`%X%`_shape(I16_lanetype, `%`_dim(8)), `%X%`_shape(I8_lanetype, `%`_dim(16)), EXTEND_vcvtop__(HIGH_half, U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extend_low_i16x8_s" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)) + prod "i32x4.extend_low_i16x8_s" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(LOW_half, S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extend_low_i16x8_u" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)) + prod "i32x4.extend_low_i16x8_u" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(LOW_half, U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extend_high_i16x8_s" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)) + prod "i32x4.extend_high_i16x8_s" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(HIGH_half, S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extend_high_i16x8_u" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`I16`_lanetype, `%`_dim(8)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)) + prod "i32x4.extend_high_i16x8_u" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(I16_lanetype, `%`_dim(8)), EXTEND_vcvtop__(HIGH_half, U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.trunc_sat_f32x4_s" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?())) + prod "i32x4.trunc_sat_f32x4_s" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), TRUNC_SAT_vcvtop__(S_sx, ?())) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.trunc_sat_f32x4_u" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?())) + prod "i32x4.trunc_sat_f32x4_u" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), TRUNC_SAT_vcvtop__(U_sx, ?())) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.trunc_sat_f64x2_s_zero" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`S`_sx, ?(`ZERO`_zero))) + prod "i32x4.trunc_sat_f64x2_s_zero" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), TRUNC_SAT_vcvtop__(S_sx, ?(ZERO_zero))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.trunc_sat_f64x2_u_zero" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `TRUNC_SAT`_vcvtop__(`U`_sx, ?(`ZERO`_zero))) + prod "i32x4.trunc_sat_f64x2_u_zero" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), TRUNC_SAT_vcvtop__(U_sx, ?(ZERO_zero))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.relaxed_trunc_f32x4_s" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?())) + prod "i32x4.relaxed_trunc_f32x4_s" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_TRUNC_vcvtop__(S_sx, ?())) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.relaxed_trunc_f32x4_u" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?())) + prod "i32x4.relaxed_trunc_f32x4_u" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F32_lanetype, `%`_dim(4)), RELAXED_TRUNC_vcvtop__(U_sx, ?())) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.relaxed_trunc_f64x2_s_zero" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`S`_sx, ?(`ZERO`_zero))) + prod "i32x4.relaxed_trunc_f64x2_s_zero" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_TRUNC_vcvtop__(S_sx, ?(ZERO_zero))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.relaxed_trunc_f64x2_u_zero" => `VCVTOP`_instr(`%X%`_shape(`I32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `RELAXED_TRUNC`_vcvtop__(`U`_sx, ?(`ZERO`_zero))) + prod "i32x4.relaxed_trunc_f64x2_u_zero" => VCVTOP_instr(`%X%`_shape(I32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), RELAXED_TRUNC_vcvtop__(U_sx, ?(ZERO_zero))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extend_low_i32x4_s" => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `S`_sx)) + prod "i64x2.extend_low_i32x4_s" => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(LOW_half, S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extend_low_i32x4_u" => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`LOW`_half, `U`_sx)) + prod "i64x2.extend_low_i32x4_u" => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(LOW_half, U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extend_high_i32x4_s" => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `S`_sx)) + prod "i64x2.extend_high_i32x4_s" => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(HIGH_half, S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extend_high_i32x4_u" => `VCVTOP`_instr(`%X%`_shape(`I64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `EXTEND`_vcvtop__(`HIGH`_half, `U`_sx)) + prod "i64x2.extend_high_i32x4_u" => VCVTOP_instr(`%X%`_shape(I64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), EXTEND_vcvtop__(HIGH_half, U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.demote_f64x2_zero" => `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`F64`_lanetype, `%`_dim(2)), `DEMOTE`_vcvtop__(`ZERO`_zero)) + prod "f32x4.demote_f64x2_zero" => VCVTOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%X%`_shape(F64_lanetype, `%`_dim(2)), DEMOTE_vcvtop__(ZERO_zero)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.convert_i32x4_s" => `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `S`_sx)) + prod "f32x4.convert_i32x4_s" => VCVTOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(), S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f32x4.convert_i32x4_u" => `VCVTOP`_instr(`%X%`_shape(`F32`_lanetype, `%`_dim(4)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(), `U`_sx)) + prod "f32x4.convert_i32x4_u" => VCVTOP_instr(`%X%`_shape(F32_lanetype, `%`_dim(4)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(), U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.promote_low_f32x4" => `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`F32`_lanetype, `%`_dim(4)), `PROMOTELOW`_vcvtop__) + prod "f64x2.promote_low_f32x4" => VCVTOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%X%`_shape(F32_lanetype, `%`_dim(4)), PROMOTELOW_vcvtop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.convert_low_i32x4_s" => `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `S`_sx)) + prod "f64x2.convert_low_i32x4_s" => VCVTOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(LOW_half), S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "f64x2.convert_low_i32x4_u" => `VCVTOP`_instr(`%X%`_shape(`F64`_lanetype, `%`_dim(2)), `%X%`_shape(`I32`_lanetype, `%`_dim(4)), `CONVERT`_vcvtop__(?(`LOW`_half), `U`_sx)) + prod "f64x2.convert_low_i32x4_u" => VCVTOP_instr(`%X%`_shape(F64_lanetype, `%`_dim(2)), `%X%`_shape(I32_lanetype, `%`_dim(4)), CONVERT_vcvtop__(?(LOW_half), U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extadd_pairwise_i8x16_s" => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx)) + prod "i16x8.extadd_pairwise_i8x16_s" => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTADD_PAIRWISE_vextunop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extadd_pairwise_i8x16_u" => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx)) + prod "i16x8.extadd_pairwise_i8x16_u" => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTADD_PAIRWISE_vextunop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extadd_pairwise_i16x8_s" => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`S`_sx)) + prod "i32x4.extadd_pairwise_i16x8_s" => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTADD_PAIRWISE_vextunop__(S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extadd_pairwise_i16x8_u" => `VEXTUNOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTADD_PAIRWISE`_vextunop__(`U`_sx)) + prod "i32x4.extadd_pairwise_i16x8_u" => VEXTUNOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTADD_PAIRWISE_vextunop__(U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extmul_low_i8x16_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)) + prod "i16x8.extmul_low_i8x16_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(LOW_half, S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extmul_low_i8x16_u" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)) + prod "i16x8.extmul_low_i8x16_u" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(LOW_half, U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extmul_high_i8x16_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)) + prod "i16x8.extmul_high_i8x16_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(HIGH_half, S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i16x8.extmul_high_i8x16_u" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(`I8`_lanetype, `%`_dim(16))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)) + prod "i16x8.extmul_high_i8x16_u" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), `%`_ishape(`%X%`_shape(I8_lanetype, `%`_dim(16))), EXTMUL_vextbinop__(HIGH_half, U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extmul_low_i16x8_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)) + prod "i32x4.extmul_low_i16x8_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(LOW_half, S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extmul_low_i16x8_u" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)) + prod "i32x4.extmul_low_i16x8_u" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(LOW_half, U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extmul_high_i16x8_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)) + prod "i32x4.extmul_high_i16x8_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(HIGH_half, S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.extmul_high_i16x8_u" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)) + prod "i32x4.extmul_high_i16x8_u" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), EXTMUL_vextbinop__(HIGH_half, U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i32x4.dot_i16x8_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(`I16`_lanetype, `%`_dim(8))), `DOTS`_vextbinop__) + prod "i32x4.dot_i16x8_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), `%`_ishape(`%X%`_shape(I16_lanetype, `%`_dim(8))), DOTS_vextbinop__) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extmul_low_i32x4_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `S`_sx)) + prod "i64x2.extmul_low_i32x4_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(LOW_half, S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extmul_low_i32x4_u" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`LOW`_half, `U`_sx)) + prod "i64x2.extmul_low_i32x4_u" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(LOW_half, U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extmul_high_i32x4_s" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `S`_sx)) + prod "i64x2.extmul_high_i32x4_s" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(HIGH_half, S_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec - prod "i64x2.extmul_high_i32x4_u" => `VEXTBINOP`_instr(`%`_ishape(`%X%`_shape(`I64`_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(`I32`_lanetype, `%`_dim(4))), `EXTMUL`_vextbinop__(`HIGH`_half, `U`_sx)) + prod "i64x2.extmul_high_i32x4_u" => VEXTBINOP_instr(`%`_ishape(`%X%`_shape(I64_lanetype, `%`_dim(2))), `%`_ishape(`%X%`_shape(I32_lanetype, `%`_dim(4))), EXTMUL_vextbinop__(HIGH_half, U_sx)) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec rec { @@ -97576,16 +10770,16 @@ grammar Tinstrs_(I : I) : instr* ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:88.1-90.65 grammar Tblockinstr_(I : I) : instr ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:63.5-67.35 - prod{bt : blocktype, `in*` : instr*, `id?` : char?, I' : I, `id'?` : char?} {{"block"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id'?{id' <- `id'?`}))):Tid?{}}} => `BLOCK`_instr(bt, in*{in <- `in*`}) + prod{bt : blocktype, `in*` : instr*, `id?` : char?, I' : I, `id'?` : char?} {{"block"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id'?{id' <- `id'?`}))):Tid?{}}} => BLOCK_instr(bt, in*{in <- `in*`}) -- if ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`})) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:68.5-72.35 - prod{bt : blocktype, `in*` : instr*, `id?` : char?, I' : I, `id'?` : char?} {{"loop"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id'?{id' <- `id'?`}))):Tid?{}}} => `LOOP`_instr(bt, in*{in <- `in*`}) + prod{bt : blocktype, `in*` : instr*, `id?` : char?, I' : I, `id'?` : char?} {{"loop"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id'?{id' <- `id'?`}))):Tid?{}}} => LOOP_instr(bt, in*{in <- `in*`}) -- if ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`})) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:73.5-79.71 prod{bt : blocktype, `in_1*` : instr*, `in_2*` : instr*, `id?` : char?, I' : I, `id_1?` : char?, `id_2?` : char?} {{"if"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {in_1*{in_1 <- `in_1*`}:Tinstrs_(I')} {"else"} {?(`%`_name(lift(id_1?{id_1 <- `id_1?`}))):Tid?{}} {in_2*{in_2 <- `in_2*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id_2?{id_2 <- `id_2?`}))):Tid?{}}} => `IF%%ELSE%`_instr(bt, in_1*{in_1 <- `in_1*`}, in_2*{in_2 <- `in_2*`}) -- if (((id_1?{id_1 <- `id_1?`} = ?()) \/ (id_1?{id_1 <- `id_1?`} = id?{id <- `id?`})) /\ ((id_2?{id_2 <- `id_2?`} = ?()) \/ (id_2?{id_2 <- `id_2?`} = id?{id <- `id?`}))) ;; ../../../../specification/wasm-3.0/6.3-text.instructions.spectec:80.5-85.35 - prod{bt : blocktype, `c*` : catch*, `in*` : instr*, `id?` : char?, I' : I, `id'?` : char?} {{"try_table"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {c*{c <- `c*`}:Tcatch_(I)*{}} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id'?{id' <- `id'?`}))):Tid?{}}} => `TRY_TABLE`_instr(bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`}) + prod{bt : blocktype, `c*` : catch*, `in*` : instr*, `id?` : char?, I' : I, `id'?` : char?} {{"try_table"} {(?(`%`_name(lift(id?{id <- `id?`}))), I'):Tlabel_(I)} {bt:Tblocktype_(I)} {c*{c <- `c*`}:Tcatch_(I)*{}} {in*{in <- `in*`}:Tinstrs_(I')} {"end"} {?(`%`_name(lift(id'?{id' <- `id'?`}))):Tid?{}}} => TRY_TABLE_instr(bt, `%`_list(c*{c <- `c*`}), in*{in <- `in*`}) -- if ((id'?{id' <- `id'?`} = ?()) \/ (id'?{id' <- `id'?`} = id?{id <- `id?`})) } @@ -97597,39 +10791,39 @@ grammar Texpr_(I : I) : expr ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Ttype_(I : I) : (type, idctxt) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{qt : rectype, I' : I, I'' : I, n : n, `st*` : subtype*, i : nat} (qt, I'):Trectype_(I) => (`TYPE`_type(qt), I' +++ I'') - -- if (qt = `REC`_rectype(`%`_list(st^n{st <- `st*`}))) - -- if (I'' = {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` ?(`_DEF`_deftype(qt, i))^(i (TYPE_type(qt), I' +++ I'') + -- if (qt = REC_rectype(`%`_list(st^n{st <- `st*`}))) + -- if (I'' = {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS ?(_DEF_deftype(qt, i))^(i (`TAG`_tag(jt), {`TYPES` [], `TAGS` [?(`%`_name(lift(id?{id <- `id?`})))], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{jt : tagtype, `id?` : char?} {{"("} {"tag"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {jt:Ttagtype_(I)} {")"}} => (TAG_tag(jt), {TYPES [], TAGS [?(`%`_name(lift(id?{id <- `id?`})))], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tglobal_(I : I) : (global, idctxt) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{gt : globaltype, e : expr, `id?` : char?} {{"("} {"global"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {gt:Tglobaltype_(I)} {e:Texpr_(I)} {")"}} => (`GLOBAL`_global(gt, e), {`TYPES` [], `TAGS` [], `GLOBALS` [?(`%`_name(lift(id?{id <- `id?`})))], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{gt : globaltype, e : expr, `id?` : char?} {{"("} {"global"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {gt:Tglobaltype_(I)} {e:Texpr_(I)} {")"}} => (GLOBAL_global(gt, e), {TYPES [], TAGS [], GLOBALS [?(`%`_name(lift(id?{id <- `id?`})))], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tmem_(I : I) : (mem, idctxt) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{mt : memtype, `id?` : char?} {{"("} {"memory"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {mt:Tmemtype_(I)} {")"}} => (`MEMORY`_mem(mt), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{mt : memtype, `id?` : char?} {{"("} {"memory"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {mt:Tmemtype_(I)} {")"}} => (MEMORY_mem(mt), {TYPES [], TAGS [], GLOBALS [], MEMS [?(`%`_name(lift(id?{id <- `id?`})))], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Ttable_(I : I) : (table, idctxt) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{tt : tabletype, e : expr, `id?` : char?} {{"("} {"table"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {tt:Ttabletype_(I)} {e:Texpr_(I)} {")"}} => (`TABLE`_table(tt, e), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [?(`%`_name(lift(id?{id <- `id?`})))], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{tt : tabletype, e : expr, `id?` : char?} {{"("} {"table"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {tt:Ttabletype_(I)} {e:Texpr_(I)} {")"}} => (TABLE_table(tt, e), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [?(`%`_name(lift(id?{id <- `id?`})))], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tlocal_(I : I) : (local*, idctxt) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{t : valtype, `id?` : char?} {{"("} {"local"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {t:Tvaltype_(I)} {")"}} => ([`LOCAL`_local(t)], {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [?(`%`_name(lift(id?{id <- `id?`})))], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{t : valtype, `id?` : char?} {{"("} {"local"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {t:Tvaltype_(I)} {")"}} => ([LOCAL_local(t)], {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [?(`%`_name(lift(id?{id <- `id?`})))], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tfunc_(I : I) : (func, idctxt) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{x : idx, `loc**` : local**, e : expr, `id?` : char?, I_1 : I, `I_2*` : I*, I' : I} {{"("} {"func"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(x, I_1):Ttypeuse_(I)} {(loc*{loc <- `loc*`}, I_2):Tlocal_(I)*{I_2 <- `I_2*`, `loc*` <- `loc**`}} {e:Texpr_(I')} {")"}} => (`FUNC`_func(x, $concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`}), e), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [?(`%`_name(lift(id?{id <- `id?`})))], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{x : idx, `loc**` : local**, e : expr, `id?` : char?, I_1 : I, `I_2*` : I*, I' : I} {{"("} {"func"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(x, I_1):Ttypeuse_(I)} {(loc*{loc <- `loc*`}, I_2):Tlocal_(I)*{I_2 <- `I_2*`, `loc*` <- `loc**`}} {e:Texpr_(I')} {")"}} => (FUNC_func(x, $concat_(syntax local, loc*{loc <- `loc*`}*{`loc*` <- `loc**`}), e), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [?(`%`_name(lift(id?{id <- `id?`})))], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) -- if (I' = I +++ I_1 +++ $concat_idctxt(I_2*{I_2 <- `I_2*`})) -- Idctxt_ok: `|-%:OK`(I') @@ -97651,9 +10845,9 @@ grammar Toffset_(I : I) : expr ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tdata_(I : I) : (data, idctxt) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{`b*` : byte*, `id?` : char?} {{"("} {"data"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {b*{b <- `b*`}:Tdatastring} {")"}} => (`DATA`_data(b*{b <- `b*`}, `PASSIVE`_datamode), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [?(`%`_name(lift(id?{id <- `id?`})))], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{`b*` : byte*, `id?` : char?} {{"("} {"data"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {b*{b <- `b*`}:Tdatastring} {")"}} => (DATA_data(b*{b <- `b*`}, PASSIVE_datamode), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [?(`%`_name(lift(id?{id <- `id?`})))], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{`b*` : byte*, x : idx, e : expr, `id?` : char?} {{"("} {"data"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {x:Tmemuse_(I)} {e:Toffset_(I)} {b*{b <- `b*`}:Tdatastring} {")"}} => (`DATA`_data(b*{b <- `b*`}, `ACTIVE`_datamode(x, e)), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [?(`%`_name(lift(id?{id <- `id?`})))], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{`b*` : byte*, x : idx, e : expr, `id?` : char?} {{"("} {"data"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {x:Tmemuse_(I)} {e:Toffset_(I)} {b*{b <- `b*`}:Tdatastring} {")"}} => (DATA_data(b*{b <- `b*`}, ACTIVE_datamode(x, e)), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [?(`%`_name(lift(id?{id <- `id?`})))], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Telemlist_(I : I) : (reftype, expr*) @@ -97668,11 +10862,11 @@ grammar Ttableuse_(I : I) : tableidx ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Telem_(I : I) : (elem, idctxt) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{rt : reftype, `e*` : expr*, `id?` : char?} {{"("} {"elem"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (`ELEM`_elem(rt, e*{e <- `e*`}, `PASSIVE`_elemmode), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{rt : reftype, `e*` : expr*, `id?` : char?} {{"("} {"elem"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (ELEM_elem(rt, e*{e <- `e*`}, PASSIVE_elemmode), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [?(`%`_name(lift(id?{id <- `id?`})))], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{rt : reftype, `e*` : expr*, x : idx, e' : expr, `id?` : char?} {{"("} {"elem"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {x:Ttableuse_(I)} {e':Toffset_(I)} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (`ELEM`_elem(rt, e*{e <- `e*`}, `ACTIVE`_elemmode(x, e')), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{rt : reftype, `e*` : expr*, x : idx, e' : expr, `id?` : char?} {{"("} {"elem"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {x:Ttableuse_(I)} {e':Toffset_(I)} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (ELEM_elem(rt, e*{e <- `e*`}, ACTIVE_elemmode(x, e')), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [?(`%`_name(lift(id?{id <- `id?`})))], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{rt : reftype, `e*` : expr*, `id?` : char?} {{"("} {"elem"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {"declare"} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (`ELEM`_elem(rt, e*{e <- `e*`}, `DECLARE`_elemmode), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [?(`%`_name(lift(id?{id <- `id?`})))], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{rt : reftype, `e*` : expr*, `id?` : char?} {{"("} {"elem"} {?(`%`_name(lift(id?{id <- `id?`}))):Tid?{}} {"declare"} {(rt, e*{e <- `e*`}):Telemlist_(I)} {")"}} => (ELEM_elem(rt, e*{e <- `e*`}, DECLARE_elemmode), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [?(`%`_name(lift(id?{id <- `id?`})))], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Telemexpr_(I : I) : expr @@ -97682,17 +10876,17 @@ grammar Telemexpr_(I : I) : expr ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tstart_(I : I) : (start, idctxt) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{x : idx} {{"("} {"start"} {x:Tfuncidx_(I)} {")"}} => (`START`_start(x), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{x : idx} {{"("} {"start"} {x:Tfuncidx_(I)} {")"}} => (START_start(x), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Timport_(I : I) : (import, idctxt) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{nm_1 : name, nm_2 : name, xt : externtype, I' : I} {{"("} {"import"} {nm_1:Tname} {nm_2:Tname} {(xt, I'):Texterntype_(I)} {")"}} => (`IMPORT`_import(nm_1, nm_2, xt), I') + prod{nm_1 : name, nm_2 : name, xt : externtype, I' : I} {{"("} {"import"} {nm_1:Tname} {nm_2:Tname} {(xt, I'):Texterntype_(I)} {")"}} => (IMPORT_import(nm_1, nm_2, xt), I') ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texport_(I : I) : (export, idctxt) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{nm : name, xx : externidx} {{"("} {"export"} {nm:Tname} {xx:Texternidx_(I)} {")"}} => (`EXPORT`_export(nm, xx), {`TYPES` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [], `FIELDS` [], `TYPEDEFS` []}) + prod{nm : name, xx : externidx} {{"("} {"export"} {nm:Tname} {xx:Texternidx_(I)} {")"}} => (EXPORT_export(nm, xx), {TYPES [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [], FIELDS [], TYPEDEFS []}) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Texportdots : () @@ -97769,17 +10963,17 @@ grammar Telemtable_(I : I) : () ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec syntax decl = - | `TYPE`(rectype : rectype) - | `IMPORT`(name : name, name : name, externtype : externtype) - | `TAG`(tagtype : tagtype) - | `GLOBAL`(globaltype : globaltype, expr : expr) - | `MEMORY`(memtype : memtype) - | `TABLE`(tabletype : tabletype, expr : expr) - | `FUNC`(typeidx : typeidx, `local*` : local*, expr : expr) - | `DATA`(`byte*` : byte*, datamode : datamode) - | `ELEM`(reftype : reftype, `expr*` : expr*, elemmode : elemmode) - | `START`(funcidx : funcidx) - | `EXPORT`(name : name, externidx : externidx) + | TYPE(rectype : rectype) + | IMPORT(name : name, name : name, externtype : externtype) + | TAG(tagtype : tagtype) + | GLOBAL(globaltype : globaltype, expr : expr) + | MEMORY(memtype : memtype) + | TABLE(tabletype : tabletype, expr : expr) + | FUNC(typeidx : typeidx, `local*` : local*, expr : expr) + | DATA(`byte*` : byte*, datamode : datamode) + | ELEM(reftype : reftype, `expr*` : expr*, elemmode : elemmode) + | START(funcidx : funcidx) + | EXPORT(name : name, externidx : externidx) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec rec { @@ -97971,7 +11165,7 @@ grammar Tdecl_(I : I) : (decl, idctxt) ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec grammar Tmodule : module ;; ../../../../specification/wasm-3.0/6.4-text.modules.spectec - prod{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `I*` : I*, `decl*` : decl*, I' : I} {{"("} {"module"} {Tid?{}} {(decl, I)*{I <- `I*`, decl <- `decl*`}:Tdecl_(I')*{}} {")"}} => `MODULE`_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}) + prod{`type*` : type*, `import*` : import*, `tag*` : tag*, `global*` : global*, `mem*` : mem*, `table*` : table*, `func*` : func*, `data*` : data*, `elem*` : elem*, `start?` : start?, `export*` : export*, `I*` : I*, `decl*` : decl*, I' : I} {{"("} {"module"} {Tid?{}} {(decl, I)*{I <- `I*`, decl <- `decl*`}:Tdecl_(I')*{}} {")"}} => MODULE_module(type*{type <- `type*`}, import*{import <- `import*`}, tag*{tag <- `tag*`}, global*{global <- `global*`}, mem*{mem <- `mem*`}, table*{table <- `table*`}, func*{func <- `func*`}, data*{data <- `data*`}, elem*{elem <- `elem*`}, start?{start <- `start?`}, export*{export <- `export*`}) -- if (I' = $concat_idctxt(I*{I <- `I*`})) -- Idctxt_ok: `|-%:OK`(I') -- if (type*{type <- `type*`} = $typesd(decl*{decl <- `decl*`})) @@ -98000,14 +11194,14 @@ syntax B = nat ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax sym = - | `_FIRST`(A_1 : A) - | `_DOTS` - | `_LAST`(A_n : A) + | _FIRST(A_1 : A) + | _DOTS + | _LAST(A_n : A) ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax symsplit = - | `_FIRST`(A_1 : A) - | `_LAST`(A_2 : A) + | _FIRST(A_1 : A) + | _LAST(A_2 : A) ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax recorddots = () @@ -98015,14 +11209,14 @@ syntax recorddots = () ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax record = { - `FIELD_1` A , - `FIELD_2` A , + FIELD_1 A, + FIELD_2 A, `...` recorddots } ;; ../../../../specification/wasm-3.0/X.1-notation.syntax.spectec syntax pth = - | `PTHSYNTAX` + | PTHSYNTAX ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec syntax T = nat @@ -98049,34 +11243,34 @@ rec { ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec:20.1-20.83 relation NotationTypingInstrScheme: `%|-%:%`(context, instr*, instrtype) ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec:22.1-23.38 - rule i32.add{C : context}: - `%|-%:%`(C, [`BINOP`_instr(`I32`_numtype, `ADD`_binop_)], `%->_%%`_instrtype(`%`_resulttype([`I32`_valtype `I32`_valtype]), [], `%`_resulttype([`I32`_valtype]))) + rule `i32.add`{C : context}: + `%|-%:%`(C, [BINOP_instr(I32_numtype, ADD_binop_)], `%->_%%`_instrtype(`%`_resulttype([I32_valtype I32_valtype]), [], `%`_resulttype([I32_valtype]))) ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec:25.1-27.29 - rule global.get{C : context, x : idx, t : valtype, mut : mut}: + rule `global.get`{C : context, x : idx, t : valtype, mut : mut}: `%|-%:%`(C, [`GLOBAL.GET`_instr(x)], `%->_%%`_instrtype(`%`_resulttype([]), [], `%`_resulttype([t]))) - -- if (C.`GLOBALS`_context[x!`%`_idx.0] = `%%`_globaltype(?(mut), t)) + -- if (C.GLOBALS_context[x!`%`_idx.0] = `%%`_globaltype(?(mut), t)) ;; ../../../../specification/wasm-3.0/X.2-notation.typing.spectec:29.1-32.78 rule block{C : context, blocktype : blocktype, `instr*` : instr*, `t_1*` : valtype*, `t_2*` : valtype*}: - `%|-%:%`(C, [`BLOCK`_instr(blocktype, instr*{instr <- `instr*`})], `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + `%|-%:%`(C, [BLOCK_instr(blocktype, instr*{instr <- `instr*`})], `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) -- Blocktype_ok: `%|-%:%`(C, blocktype, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) - -- NotationTypingInstrScheme: `%|-%:%`({`TYPES` [], `RECS` [], `TAGS` [], `GLOBALS` [], `MEMS` [], `TABLES` [], `FUNCS` [], `DATAS` [], `ELEMS` [], `LOCALS` [], `LABELS` [`%`_resulttype(t_2*{t_2 <- `t_2*`})], `RETURN` ?(), `REFS` []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) + -- NotationTypingInstrScheme: `%|-%:%`({TYPES [], RECS [], TAGS [], GLOBALS [], MEMS [], TABLES [], FUNCS [], DATAS [], ELEMS [], LOCALS [], LABELS [`%`_resulttype(t_2*{t_2 <- `t_2*`})], RETURN ?(), REFS []} +++ C, instr*{instr <- `instr*`}, `%->_%%`_instrtype(`%`_resulttype(t_1*{t_1 <- `t_1*`}), [], `%`_resulttype(t_2*{t_2 <- `t_2*`}))) } ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec relation NotationReduct: `~>%`(instr*) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec - rule 2{q_1 : num_(`F64`_numtype), q_4 : num_(`F64`_numtype), q_3 : num_(`F64`_numtype)}: - `~>%`([`CONST`_instr(`F64`_numtype, q_1) `CONST`_instr(`F64`_numtype, q_4) `CONST`_instr(`F64`_numtype, q_3) `BINOP`_instr(`F64`_numtype, `ADD`_binop_) `BINOP`_instr(`F64`_numtype, `MUL`_binop_)]) + rule 2{q_1 : num_(F64_numtype), q_4 : num_(F64_numtype), q_3 : num_(F64_numtype)}: + `~>%`([CONST_instr(F64_numtype, q_1) CONST_instr(F64_numtype, q_4) CONST_instr(F64_numtype, q_3) BINOP_instr(F64_numtype, ADD_binop_) BINOP_instr(F64_numtype, MUL_binop_)]) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec - rule 3{q_1 : num_(`F64`_numtype), q_5 : num_(`F64`_numtype)}: - `~>%`([`CONST`_instr(`F64`_numtype, q_1) `CONST`_instr(`F64`_numtype, q_5) `BINOP`_instr(`F64`_numtype, `MUL`_binop_)]) + rule 3{q_1 : num_(F64_numtype), q_5 : num_(F64_numtype)}: + `~>%`([CONST_instr(F64_numtype, q_1) CONST_instr(F64_numtype, q_5) BINOP_instr(F64_numtype, MUL_binop_)]) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec - rule 4{q_6 : num_(`F64`_numtype)}: - `~>%`([`CONST`_instr(`F64`_numtype, q_6)]) + rule 4{q_6 : num_(F64_numtype)}: + `~>%`([CONST_instr(F64_numtype, q_6)]) ;; ../../../../specification/wasm-3.0/X.3-notation.execution.spectec def $instrdots : instr* @@ -98166,2266 +11360,5 @@ syntax syntax = () grammar Tabbrev : () == IL Validation... -[] n* nat* -[] n* nat* -[] n* nat* -[] n* nat* -[] X* X* -[] X** X** -[] X* X* -[] X* X* -[] X** X** -[] X* X* -[] X* X^n -[] X** X^n* -[] X* X^n -[] X* X^n -[] X** X^n* -[] X* X^n -[] X? X? -[] X?* X?* -[] X? X? -[] X? X? -[] X?* X?* -[] X? X? -[] X* X* -[] X* X* -[] X* X* -[] X* X* -[] X* X* -[] X* X* -[] X* X* -[] X* X* -[] X* X* -[] X* X* -[] X* X* -[] X* X* -[] X* X* -[] X* X* -[] X** X** -[] X* X* -[] X* X* -[] X** X** -[] X* X* -[] X** X** -[] X* X* -[] X* X* -[] X** X** -[] X* X* -[] X** X** -[] X* X* -[] X* X* -[] X** X** -[] X* X* -[] X* X* -[] X** X** -[] X* X* -[] X* X* -[] X** X** -[] X* X* -[] X* X* -[] X* X* -[] char* char* -[] char* char* -[] char* char* -[] char* char* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] externidx* externidx* -[] free* free* -[] free* free* -[] null? null? -[] null? null? -[] null? null? -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] null? null? -[] typevar* typevar* -[] typeuse* typeuse* -[] null? null? -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] mut? mut? -[] typevar* typevar* -[] typeuse* typeuse* -[] mut? mut? -[] typevar* typevar* -[] typeuse* typeuse* -[] fieldtype* fieldtype* -[] typevar* typevar* -[] typeuse* typeuse* -[] fieldtype* fieldtype* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] valtype* valtype* -[] valtype* valtype* -[] typevar* typevar* -[] typeuse* typeuse* -[] valtype* valtype* -[] typevar* typevar* -[] typeuse* typeuse* -[] valtype* valtype* -[] typevar* typevar* -[] typeuse* typeuse* -[] final? final? -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] final? final? -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] subtype* subtype* -[] typevar* typevar* -[] typeuse* typeuse* -[] subtype* subtype* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] mut? mut? -[] typevar* typevar* -[] typeuse* typeuse* -[] mut? mut? -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] typevar* typevar* -[] typeuse* typeuse* -[] externtype* externtype* -[] externtype* externtype* -[] typevar* typevar* -[] typeuse* typeuse* -[] externtype* externtype* -[] typevar* typevar* -[] typeuse* typeuse* -[] externtype* externtype* -[] typevar* typevar* -[] typeuse* typeuse* -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse^n -[] typeuse* typeuse* -[] deftype* deftype* -[] typeuse* typeuse* -[] typeuse* typeuse* -[] deftype* deftype* -[] typeuse* typeuse* -[] subtype* subtype^n -[] subtype* subtype^n -[] subtype* subtype^n -[] subtype* subtype^n -[] subtype* subtype^n -[] subtype* subtype^n -[] subtype* subtype* -[] subtype* subtype* -[] subtype* subtype* -[] final? final? -[] typeuse* typeuse* -[] null? null? -[] valtype* valtype* -[] valtype* valtype* -[] mut? mut? -[] fieldtype* fieldtype* -[] fieldtype* fieldtype* -[] final? final? -[] typeuse* typeuse* -[] typeuse* typeuse* -[] subtype* subtype* -[] subtype* subtype* -[] mut? mut? -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] externtype* externtype* -[] half? half? -[] half? half? -[] half? half? -[] half? half? -[] zero? zero? -[] zero? zero? -[] zero? zero? -[] zero? zero? -[] zero? zero? -[] zero? zero? -[] zero? zero? -[] zero? zero? -[] laneidx* laneidx* -[] laneidx* laneidx* -[] sx? sx? -[] sx? sx? -[] valtype? valtype? -[] valtype? valtype? -[] labelidx* labelidx* -[] labelidx* labelidx* -[] labelidx* labelidx* -[] labelidx* labelidx* -[] valtype*? valtype*? -[] valtype* valtype* -[] valtype*? valtype*? -[] valtype* valtype* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] labelidx* labelidx* -[] labelidx* labelidx* -[] laneidx* laneidx* -[] sx? sx? -[] sx? sx? -[] sx? sx? -[] loadop_(numtype)? loadop_(numtype)? -[] storeop_(numtype)? storeop_(numtype)? -[] vloadop_(vectype)? vloadop_(vectype)? -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] local* local* -[] local* local* -[] byte* byte* -[] expr* expr* -[] expr* expr* -[] type* type* -[] import* import* -[] tag* tag* -[] global* global* -[] mem* mem* -[] table* table* -[] func* func* -[] data* data* -[] elem* elem* -[] start? start? -[] export* export* -[] type* type* -[] tag* tag* -[] global* global* -[] mem* mem* -[] table* table* -[] func* func* -[] data* data* -[] elem* elem* -[] start? start? -[] import* import* -[] export* export* -[] func* func* -[] func* func* -[] func* func* -[] idx* localidx* -[] localtype* localtype* -[] idx* localidx* -[] localtype* localtype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] valtype* valtype* -[] valtype* valtype* -[] fieldtype* fieldtype* -[] fieldtype* fieldtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] idx* typeidx* -[] idx* idx* -[] idx* idx* -[] idx* idx* -[] comptype* comptype* -[] idx* idx* -[] idx** typeidx** -[] idx* typeidx* -[] comptype* comptype* -[] subtype* subtype* -[] subtype* subtype* -[] subtype* subtype* -[] subtype* subtype* -[] subtype* subtype* -[] typeuse* typeuse* -[] typeuse* typeuse* -[] typeuse* typeuse* -[] typeuse* typeuse* -[] comptype* comptype* -[] typeuse* typeuse* -[] typeuse** typeuse** -[] typeuse* typeuse* -[] comptype* comptype* -[] subtype* subtype* -[] subtype* subtype* -[] subtype* subtype^n -[] fieldtype* fieldtype* -[] fieldtype* fieldtype* -[] fieldtype* fieldtype* -[] fieldtype* fieldtype* -[] fieldtype* fieldtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] final? final? -[] typeuse* typeuse* -[] typeuse* typeuse* -[] typeuse* typeuse* -[] fieldtype* fieldtype* -[] valtype* valtype* -[] valtype* valtype* -[] typeuse* typeuse* -[] typeuse* typeuse* -[] final? final? -[] typeuse* typeuse* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] idx* localidx* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] localtype* localtype* -[] idx* idx* -[] m? nat? -[] m? nat? -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] idx* localidx* -[] valtype* valtype* -[] valtype* valtype* -[] idx* localidx* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] idx* localidx* -[] idx* localidx* -[] idx* localidx* -[] idx* localidx* -[] valtype* valtype* -[] idx* idx* -[] m? nat? -[] m? nat? -[] valtype? valtype? -[] valtype? valtype? -[] valtype? valtype? -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] instr* instr* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] instr* instr* -[] valtype* valtype* -[] idx* localidx* -[] valtype* valtype* -[] instr* instr* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] instr* instr* -[] valtype* valtype* -[] idx* localidx* -[] valtype* valtype* -[] instr* instr* -[] instr* instr* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] instr* instr* -[] valtype* valtype* -[] idx* localidx* -[] valtype* valtype* -[] valtype* valtype* -[] instr* instr* -[] valtype* valtype* -[] idx* localidx* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] labelidx* labelidx* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] labelidx* labelidx* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] catch* catch* -[] instr* instr* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] instr* instr* -[] valtype* valtype* -[] idx* localidx* -[] valtype* valtype* -[] catch* catch* -[] storagetype* storagetype* -[] mut?* mut?* -[] storagetype* storagetype* -[] mut? mut? -[] mut?* mut?* -[] storagetype* storagetype* -[] mut? mut? -[] storagetype* storagetype* -[] sx? sx? -[] fieldtype* fieldtype* -[] fieldtype* fieldtype* -[] fieldtype* fieldtype* -[] fieldtype* fieldtype* -[] mut? mut? -[] sx? sx? -[] sx? sx? -[] fieldtype* fieldtype* -[] fieldtype* fieldtype* -[] fieldtype* fieldtype* -[] fieldtype* fieldtype* -[] mut? mut? -[] mut? mut? -[] mut? mut? -[] mut? mut? -[] mut? mut? -[] sx? sx? -[] mut? mut? -[] sx? sx? -[] sx? sx? -[] mut? mut? -[] null? null? -[] null? null? -[] null? null? -[] null? null? -[] null? null? -[] null? null? -[] null? null? -[] null? null? -[] null? null? -[] null? null? -[] mut? mut? -[] laneidx* laneidx* -[] laneidx* laneidx* -[] sx? sx? -[] instr* instr* -[] valtype* valtype* -[] idx* localidx* -[] idx* localidx* -[] valtype* valtype* -[] valtype* valtype* -[] idx* localidx* -[] valtype* valtype* -[] init* init* -[] valtype* valtype* -[] idx* idx* -[] idx* localidx* -[] valtype* valtype* -[] instr* instr* -[] valtype* valtype* -[] idx* localidx* -[] valtype* valtype* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] valtype* valtype* -[] valtype* valtype* -[] idx* localidx* -[] valtype* valtype* -[] valtype* valtype* -[] instr* instr* -[] valtype* valtype* -[] idx* localidx* -[] valtype* valtype* -[] valtype* valtype* -[] instr* instr* -[] valtype* valtype* -[] instr* instr* -[] valtype* valtype* -[] instr* instr* -[] instr* instr* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] local* local* -[] valtype* valtype* -[] valtype* valtype* -[] localtype* localtype* -[] local* local* -[] valtype* valtype* -[] localtype* localtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] byte* byte* -[] expr* expr* -[] expr* expr* -[] global* global* -[] globaltype* globaltype* -[] global* global* -[] globaltype* globaltype* -[] type* type* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] type* type* -[] deftype* deftype* -[] global* global* -[] mem* mem* -[] table* table* -[] elem* elem* -[] global* global* -[] mem* mem* -[] table* table* -[] elem* elem* -[] type* type* -[] import* import* -[] tag* tag* -[] global* global* -[] mem* mem* -[] table* table* -[] func* func* -[] data* data* -[] elem* elem* -[] start? start? -[] export* export* -[] externtype* externtype* -[] externtype* externtype* -[] type* type* -[] deftype* deftype* -[] import* import* -[] externtype* externtype* -[] deftype* deftype* -[] tagtype* tagtype* -[] tag* tag* -[] global* global* -[] globaltype* globaltype* -[] mem* mem* -[] memtype* memtype* -[] table* table* -[] tabletype* tabletype* -[] deftype* deftype* -[] func* func* -[] data* data* -[] datatype* datatype* -[] elem* elem* -[] reftype* elemtype* -[] start? start? -[] export* export* -[] name* name* -[] externtype* externtype* -[] name* name* -[] tagtype* tagtype* -[] tagtype* tagtype* -[] globaltype* globaltype* -[] memtype* memtype* -[] memtype* memtype* -[] tabletype* tabletype* -[] tabletype* tabletype* -[] datatype* datatype* -[] reftype* elemtype* -[] deftype* deftype* -[] globaltype* globaltype* -[] deftype* deftype* -[] deftype* deftype* -[] idx* funcidx* -[] idx* funcidx* -[] idx* funcidx* -[] global* global* -[] mem* mem* -[] table* table* -[] elem* elem* -[] tagtype* tagtype* -[] tagtype* tagtype* -[] externtype* externtype* -[] globaltype* globaltype* -[] globaltype* globaltype* -[] externtype* externtype* -[] memtype* memtype* -[] memtype* memtype* -[] externtype* externtype* -[] tabletype* tabletype* -[] tabletype* tabletype* -[] externtype* externtype* -[] deftype* deftype* -[] deftype* deftype* -[] externtype* externtype* -[] half? half? -[] zero? zero? -[] zero? zero? -[] zero? zero? -[] zero? zero? -[] half? half? -[] half? half? -[] zero? zero? -[] zero? zero? -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_((Fnn : Fnn <: lanetype))** lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))** -[] lane_((Fnn : Fnn <: lanetype))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** -[] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* -[] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** -[] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_((Jnn : Jnn <: lanetype))** lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))** -[] lane_((Jnn : Jnn <: lanetype))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_((Jnn : Jnn <: lanetype))** lane_((Jnn : Jnn <: lanetype))** -[] lane_((Jnn : Jnn <: lanetype))* lane_((Jnn : Jnn <: lanetype))* -[] lane_((Jnn : Jnn <: lanetype))** lane_((Jnn : Jnn <: lanetype))** -[] lane_((Jnn : Jnn <: lanetype))* lane_((Jnn : Jnn <: lanetype))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_((Fnn : Fnn <: lanetype))** lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))** -[] lane_((Fnn : Fnn <: lanetype))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** -[] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* -[] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** -[] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] lane_((Jnn : Jnn <: lanetype))** lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))** -[] lane_((Jnn : Jnn <: lanetype))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_((Jnn : Jnn <: lanetype))** lane_((Jnn : Jnn <: lanetype))** -[] lane_((Jnn : Jnn <: lanetype))* lane_((Jnn : Jnn <: lanetype))* -[] lane_((Jnn : Jnn <: lanetype))** lane_((Jnn : Jnn <: lanetype))** -[] lane_((Jnn : Jnn <: lanetype))* lane_((Jnn : Jnn <: lanetype))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_((Fnn : Fnn <: lanetype))** lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))** -[] lane_((Fnn : Fnn <: lanetype))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** -[] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* -[] lane_((Fnn : Fnn <: lanetype))** lane_((Fnn : Fnn <: lanetype))** -[] lane_((Fnn : Fnn <: lanetype))* lane_((Fnn : Fnn <: lanetype))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($sizenn((Fnn : Fnn <: numtype)))* iN($sizenn((Fnn : Fnn <: numtype)))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* -[] iN($sizenn((Fnn : Fnn <: numtype)))* iN($sizenn((Fnn : Fnn <: numtype)))* -[] iN($sizenn((Fnn : Fnn <: numtype)))* iN($sizenn((Fnn : Fnn <: numtype)))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] lane_($lanetype(`%X%`_shape((Fnn : Fnn <: lanetype), `%`_dim(M))))* fN($sizenn((Fnn : Fnn <: numtype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] iN($lsizenn((Jnn : Jnn <: lanetype)))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($lsizenn((Jnn : Jnn <: lanetype)))* -[] laneidx* laneidx* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] laneidx* laneidx* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] half? half? -[] zero? zero? -[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? lane_($lanetype(`%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2))))? -[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? iN($lsizenn2((Inn_2 : Inn <: lanetype)))? -[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? iN($lsizenn2((Inn_2 : Inn <: lanetype)))? -[] zero? zero? -[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? lane_($lanetype(`%X%`_shape((Inn_2 : Inn <: lanetype), `%`_dim(M_2))))? -[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? iN($lsizenn2((Inn_2 : Inn <: lanetype)))? -[] iN($lsizenn2((Inn_2 : Inn <: lanetype)))? iN($lsizenn2((Inn_2 : Inn <: lanetype)))? -[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))))* -[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* -[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* -[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Fnn_2 : Fnn <: lanetype), `%`_dim(M_2))))* -[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* -[] fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* fN($lsizenn2((Fnn_2 : Fnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))* -[] lane_(Lnn_2)** lane_(Lnn_2)** -[] lane_(Lnn_2)* lane_(Lnn_2)* -[] lane_(Lnn_2)** lane_(Lnn_2)** -[] lane_(Lnn_2)* lane_(Lnn_2)* -[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M))))* -[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M))))** -[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M))))* -[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M))))** -[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* -[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* -[] lane_(Lnn_2)** lane_(Lnn_2)** -[] lane_(Lnn_2)* lane_(Lnn_2)* -[] lane_(Lnn_2)** lane_(Lnn_2)** -[] lane_(Lnn_2)* lane_(Lnn_2)* -[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* -[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))** -[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))* -[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))** -[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))* -[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* -[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* -[] lane_(Lnn_2)** lane_(Lnn_2)** -[] lane_(Lnn_2)* lane_(Lnn_2)* -[] lane_(Lnn_2)** lane_(Lnn_2)** -[] lane_(Lnn_2)* lane_(Lnn_2)* -[] lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape(Lnn_1, `%`_dim(M_1))))* -[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))** -[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))* -[] lane_(Lnn_2)** lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))** -[] lane_(Lnn_2)* lane_($lanetype(`%X%`_shape(Lnn_2, `%`_dim(M_2))))* -[] laneidx* laneidx* -[] laneidx* laneidx* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* -[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* iN($lsize((Jnn_2 : Jnn <: lanetype)))* -[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* iN($lsize((Jnn_2 : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* iN($lsize((Jnn_1 : Jnn <: lanetype)))* -[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* iN($lsize((Jnn_2 : Jnn <: lanetype)))* -[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* iN($lsize((Jnn_2 : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* iN($lsize((Jnn_1 : Jnn <: lanetype)))* -[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))))* -[] iN($lsize((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))))* -[] iN(N)* iN(N)* -[] N* nat* -[] N* nat* -[] N* N* -[] N* N* -[] N* N* -[] N* N* -[] iN(N)* iN(N)* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* iN($lsizenn1((Jnn_1 : Jnn <: lanetype)))* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* lane_($lanetype(`%X%`_shape((Jnn_2 : Jnn <: lanetype), `%`_dim(M_2))))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* iN($lsizenn1((Jnn_1 : Jnn <: lanetype)))* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] lane_($lanetype(`%X%`_shape((Jnn_1 : Jnn <: lanetype), `%`_dim(M_1))))* iN($lsizenn1((Jnn_1 : Jnn <: lanetype)))* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* iN($lsizenn2((Jnn_2 : Jnn <: lanetype)))* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] iN(N)* iN(N)* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] byte* byte* -[] byte* byte* -[] ref* ref* -[] ref* ref* -[] byte* byte* -[] byte* byte* -[] structinst* structinst* -[] structinst* structinst* -[] arrayinst* arrayinst* -[] arrayinst* arrayinst* -[] exninst* exninst* -[] exninst* exninst* -[] u64? u64? -[] ref* ref* -[] u64? u64? -[] ref* ref* -[] ref* ref* -[] ref* ref* -[] u64? u64? -[] u64? u64? -[] byte* byte* -[] u64? u64? -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] u64? u64? -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] valtype*? valtype*? -[] valtype* valtype* -[] valtype*? valtype*? -[] valtype* valtype* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] val* val* -[] val* val* -[] instr* instr* -[] val* val* -[] val* val^n -[] instr* instr* -[] val* val^n -[] instr* instr* -[] instr* instr* -[] val* val* -[] instr* instr* -[] val* val* -[] catch* catch* -[] val* val* -[] instr* instr* -[] val* val* -[] labelidx* labelidx* -[] labelidx* labelidx* -[] labelidx* labelidx* -[] labelidx* labelidx* -[] labelidx* labelidx* -[] labelidx* labelidx* -[] labelidx* labelidx* -[] labelidx* labelidx* -[] val* val^n -[] val* val^n -[] val* val* -[] val* val^n -[] instr* instr* -[] val* val^n -[] instr* instr* -[] val* val* -[] instr* instr* -[] val* val* -[] catch* catch* -[] val* val* -[] instr* instr* -[] val* val* -[] catch* catch* -[] val* val* -[] val* val* -[] val* val* -[] instr* instr* -[] val* val* -[] val* val* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* -[] lane_($lanetype(`%X%`_shape((Jnn : Jnn <: lanetype), `%`_dim(M))))* iN($jsizenn(Jnn))* -[] laneidx* laneidx* -[] laneidx* laneidx* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype? valtype? -[] valtype? valtype? -[] val* val^m -[] instr* instr* -[] val* val^m -[] instr* instr* -[] valtype* valtype^m -[] valtype* valtype^n -[] val* val^m -[] instr* instr* -[] instr* instr* -[] val* val^m -[] instr* instr* -[] valtype* valtype^m -[] valtype* valtype^n -[] val* val^n -[] instr* instr* -[] valtype* valtype^n -[] valtype* valtype^m -[] valtype* valtype* -[] instr* instr* -[] val* val^n -[] valtype* valtype* -[] instr* instr* -[] val* val* -[] instr* instr* -[] val* val* -[] catch* catch* -[] val* val* -[] instr* instr* -[] val* val* -[] val* val* -[] instr* instr* -[] val* val* -[] val* val^n -[] instr* instr* -[] val* val^n -[] valtype* valtype^n -[] valtype* valtype^m -[] val* val* -[] instr* instr* -[] val* val* -[] val* val* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] catch* catch* -[] val* val* -[] val* val* -[] val* val* -[] catch* catch* -[] val* val* -[] val* val* -[] val* val* -[] catch* catch* -[] catch* catch* -[] catch* catch* -[] catch* catch* -[] val* val^m -[] catch* catch* -[] instr* instr* -[] catch* catch* -[] val* val^m -[] instr* instr* -[] valtype* valtype^m -[] valtype* valtype^n -[] iN(M)* iN(M)^K -[] iN(M)* iN(M)^K -[] val* val* -[] mut?* mut?* -[] storagetype* storagetype* -[] mut? mut? -[] val* val* -[] storagetype* storagetype* -[] sx? sx? -[] sx? sx? -[] storagetype* storagetype* -[] storagetype* storagetype* -[] sx? sx? -[] mut?* mut?* -[] storagetype* storagetype* -[] mut? mut? -[] mut? mut? -[] ref* ref^n -[] ref* ref^n -[] ref* ref^n -[] mut? mut? -[] lit_(zt)* lit_(zt)^n -[] mut? mut? -[] lit_(zt)* lit_(zt)^n -[] lit_(zt)* lit_(zt)^n -[] sx? sx? -[] sx? sx? -[] sx? sx? -[] sx? sx? -[] mut? mut? -[] sx? sx? -[] mut? mut? -[] sx? sx? -[] sx? sx? -[] sx? sx? -[] mut? mut? -[] sx? sx? -[] sx? sx? -[] mut? mut? -[] mut? mut? -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] val* val* -[] instr* instr* -[] instr* instr* -[] val* val* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] val* val* -[] val* val* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] val* val^n -[] valtype* valtype^n -[] val* val^n -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] val* val^n -[] mut?* mut?^n -[] storagetype* storagetype^n -[] mut? mut? -[] val* val^n -[] storagetype* storagetype^n -[] storagetype* storagetype* -[] storagetype* storagetype* -[] mut?* mut?* -[] storagetype* storagetype* -[] mut? mut? -[] val* val^n -[] mut? mut? -[] val* val^n -[] mut? mut? -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] val* val* -[] instr* instr* -[] val* val* -[] type* type* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] type* type* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] deftype* deftype* -[] tagtype* tagtype* -[] tagaddr* tagaddr* -[] tagaddr* tagaddr* -[] tagaddr* tagaddr* -[] tagtype* tagtype* -[] globaltype* globaltype* -[] val* val* -[] globaladdr* globaladdr* -[] globaladdr* globaladdr* -[] globaladdr* globaladdr* -[] globaltype* globaltype* -[] val* val* -[] u64? u64? -[] u64? u64? -[] memtype* memtype* -[] memaddr* memaddr* -[] memaddr* memaddr* -[] memaddr* memaddr* -[] memtype* memtype* -[] u64? u64? -[] u64? u64? -[] tabletype* tabletype* -[] ref* ref* -[] tableaddr* tableaddr* -[] tableaddr* tableaddr* -[] tableaddr* tableaddr* -[] tabletype* tabletype* -[] ref* ref* -[] deftype* deftype* -[] funccode* funccode* -[] moduleinst* moduleinst* -[] funcaddr* funcaddr* -[] funcaddr* funcaddr* -[] funcaddr* funcaddr* -[] deftype* deftype* -[] funccode* funccode* -[] moduleinst* moduleinst* -[] byte* byte* -[] byte* byte* -[] datatype* datatype* -[] byte* byte* -[] byte** byte** -[] byte* byte* -[] dataaddr* dataaddr* -[] byte* byte* -[] dataaddr* dataaddr* -[] dataaddr* dataaddr* -[] datatype* datatype* -[] byte** byte** -[] byte* byte* -[] ref* ref* -[] ref* ref* -[] reftype* elemtype* -[] ref* ref* -[] ref** ref** -[] ref* ref* -[] elemaddr* elemaddr* -[] ref* ref* -[] elemaddr* elemaddr* -[] elemaddr* elemaddr* -[] reftype* elemtype* -[] ref** ref** -[] ref* ref* -[] export* export* -[] export* export* -[] externaddr* externaddr* -[] val* val* -[] ref* ref* -[] ref** ref** -[] ref* ref* -[] type* type* -[] import* import* -[] tag* tag* -[] global* global* -[] mem* mem* -[] table* table* -[] func* func* -[] data* data* -[] elem* elem* -[] start? start? -[] export* export* -[] tag* tag* -[] tag* tag* -[] tagtype* tagtype* -[] global* global* -[] global* global* -[] expr* expr* -[] globaltype* globaltype* -[] mem* mem* -[] mem* mem* -[] memtype* memtype* -[] table* table* -[] table* table* -[] expr* expr* -[] tabletype* tabletype* -[] func* func* -[] func* func* -[] expr* expr* -[] local** local** -[] idx* typeidx* -[] local* local* -[] data* data* -[] data* data* -[] byte** byte** -[] datamode* datamode* -[] byte* byte* -[] elem* elem* -[] elem* elem* -[] elemmode* elemmode* -[] elemtype* reftype* -[] expr** expr** -[] expr* expr* -[] tagaddr* tagaddr* -[] tagaddr* tagaddr* -[] externaddr* externaddr* -[] globaladdr* globaladdr* -[] globaladdr* globaladdr* -[] externaddr* externaddr* -[] memaddr* memaddr* -[] memaddr* memaddr* -[] externaddr* externaddr* -[] tableaddr* tableaddr* -[] tableaddr* tableaddr* -[] externaddr* externaddr* -[] funcaddr* funcaddr* -[] funcaddr* funcaddr* -[] externaddr* externaddr* -[] deftype* deftype* -[] deftype* deftype* -[] type* type* -[] nat* nat* -[] nat* nat* -[] func* func* -[] func* func* -[] tagaddr* tagaddr* -[] tagaddr* tagaddr* -[] tagtype* tagtype* -[] deftype* deftype* -[] globaladdr* globaladdr* -[] globaladdr* globaladdr* -[] globaltype* globaltype* -[] deftype* deftype* -[] val* val* -[] memaddr* memaddr* -[] memaddr* memaddr* -[] memtype* memtype* -[] deftype* deftype* -[] tableaddr* tableaddr* -[] tableaddr* tableaddr* -[] tabletype* tabletype* -[] deftype* deftype* -[] ref* ref* -[] dataaddr* dataaddr* -[] dataaddr* dataaddr* -[] data* data* -[] data* data* -[] byte** byte** -[] byte* byte* -[] elemaddr* elemaddr* -[] elemaddr* elemaddr* -[] elemtype* reftype* -[] deftype* deftype* -[] ref** ref** -[] ref* ref* -[] nat* funcaddr* -[] nat* funcaddr* -[] idx* idx* -[] deftype* deftype* -[] deftype* deftype* -[] expr* expr* -[] local** local** -[] idx* typeidx* -[] local* local* -[] func* func* -[] func* func* -[] exportinst* exportinst* -[] exportinst* exportinst* -[] tagaddr* tagaddr* -[] tagaddr* tagaddr* -[] globaladdr* globaladdr* -[] globaladdr* globaladdr* -[] memaddr* memaddr* -[] memaddr* memaddr* -[] tableaddr* tableaddr* -[] tableaddr* tableaddr* -[] funcaddr* funcaddr* -[] nat* funcaddr* -[] export* export* -[] deftype* deftype* -[] tagaddr* tagaddr* -[] tagaddr* tagaddr* -[] globaladdr* globaladdr* -[] globaladdr* globaladdr* -[] memaddr* memaddr* -[] memaddr* memaddr* -[] tableaddr* tableaddr* -[] tableaddr* tableaddr* -[] funcaddr* funcaddr* -[] nat* funcaddr* -[] dataaddr* dataaddr* -[] elemaddr* elemaddr* -[] exportinst* exportinst* -[] byte* byte^n -[] byte* byte^n -[] instr* instr* -[] instr* instr* -[] expr* expr^n -[] expr* expr^n -[] expr* expr^n -[] instr* instr* -[] instr* instr* -[] globaltype* globaltype* -[] expr* expr* -[] val* val* -[] val* val* -[] val* val* -[] globaltype* globaltype* -[] expr* expr* -[] externaddr* externaddr* -[] instr* instr* -[] instr* instr* -[] instr? instr? -[] externtype* externtype* -[] externtype* externtype* -[] externaddr* externaddr* -[] externtype* externtype* -[] type* type* -[] import* import* -[] tag* tag* -[] global* global* -[] mem* mem* -[] table* table* -[] func* func* -[] data* data* -[] elem* elem* -[] start? start? -[] export* export* -[] global* global* -[] global* global* -[] expr* expr* -[] globaltype* globaltype* -[] table* table* -[] table* table* -[] expr* expr* -[] tabletype* tabletype* -[] data* data* -[] data* data* -[] byte** byte** -[] datamode* datamode* -[] byte* byte* -[] elem* elem* -[] elem* elem* -[] elemmode* elemmode* -[] expr** expr** -[] reftype* reftype* -[] expr* expr* -[] start? start? -[] start? start? -[] idx? funcidx? -[] type* type* -[] externaddr* externaddr* -[] externaddr* externaddr* -[] func* func* -[] func* func* -[] val* val* -[] val* val* -[] globaltype* globaltype* -[] expr* expr* -[] expr* expr* -[] ref* ref* -[] expr** expr** -[] ref** ref** -[] expr* expr* -[] ref* ref* -[] externaddr* externaddr* -[] val* val* -[] ref* ref* -[] ref** ref** -[] ref* ref* -[] instr* instr* -[] instr* instr* -[] data* data* -[] data* data* -[] data* data* -[] data* data* -[] instr* instr* -[] instr* instr* -[] elem* elem* -[] elem* elem* -[] elem* elem* -[] elem* elem* -[] instr? instr? -[] instr? instr? -[] idx? funcidx? -[] val* val* -[] val* val* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] val* val* -[] byte* byte* -[] byte* byte* -[] el* el^n -[] el* el^n -[] byte* byte* -[] byte* byte* -[] valtype* valtype* -[] valtype* valtype* -[] mut? mut? -[] mut? mut? -[] fieldtype* fieldtype* -[] fieldtype* fieldtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] idx* typeidx* -[] idx* typeidx* -[] idx* typeidx* -[] idx* typeidx* -[] subtype* subtype* -[] subtype* subtype* -[] mut? mut? -[] mut? mut? -[] valtype* valtype* -[] valtype* valtype* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] instr* instr* -[] labelidx* labelidx* -[] labelidx* labelidx* -[] catch* catch* -[] instr* instr* -[] catch* catch* -[] instr* instr* -[] null? null? -[] null? null? -[] null? null? -[] null? null? -[] null? null? -[] null? null? -[] null? null? -[] null? null? -[] byte* byte^16 -[] byte* byte^16 -[] labelidx* labelidx^16 -[] labelidx* labelidx^16 -[] instr* instr* -[] instr* instr* -[] en* en* -[] en* en* -[] type* type* -[] type* type* -[] import* import* -[] import* import* -[] idx* typeidx* -[] idx* typeidx* -[] table* table* -[] table* table* -[] mem* mem* -[] mem* mem* -[] global* global* -[] global* global* -[] export* export* -[] export* export* -[] idx* funcidx* -[] idx* funcidx* -[] idx* funcidx* -[] idx* funcidx* -[] idx* funcidx* -[] idx* funcidx* -[] idx* funcidx* -[] idx* funcidx* -[] expr* expr* -[] expr* expr* -[] expr* expr* -[] expr* expr* -[] expr* expr* -[] expr* expr* -[] expr* expr* -[] expr* expr* -[] elem* elem* -[] elem* elem* -[] local** local** -[] local* local* -[] local** local** -[] local* local* -[] local** local** -[] local* local* -[] local** local** -[] local* local* -[] code* code* -[] code* code* -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] byte* byte* -[] data* data* -[] data* data* -[] tag* tag* -[] tag* tag* -[] type* type* -[] import* import* -[] typeidx* typeidx* -[] table* table* -[] mem* mem* -[] tag* tag* -[] global* global* -[] export* export* -[] start? start? -[] elem* elem* -[] n? nat? -[] expr* expr* -[] local** local** -[] local* local* -[] data* data* -[] type* type* -[] import* import* -[] tag* tag* -[] global* global* -[] mem* mem* -[] table* table* -[] func* func* -[] data* data* -[] elem* elem* -[] start? start? -[] export* export* -[] n? nat? -[] data* data* -[] data* data* -[] n? n? -[] n? n? -[] func* func* -[] func* func* -[] expr* expr* -[] func* func* -[] local** local** -[] typeidx* typeidx* -[] local* local* -[] byte** byte** -[] byte* byte* -[] byte** byte** -[] byte* byte* -[] byte** byte** -[] byte* byte* -[] byte** byte** -[] byte* byte* -[] byte* byte* -[] char* char* -[] byte* byte* -[] byte* byte* -[] char* char* -[] char* char* -[] char* char* -[] char* char* -[] char* char* -[] char* char* -[] char* char* -[] el* el* -[] el* el* -[] el* el* -[] el* el* -[] I* idctxt* -[] I* idctxt* -[] char** char** -[] char* char* -[] char** char** -[] char** char** -[] char* char* -[] null? null? -[] null? null? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] fieldtype* fieldtype* -[] char?* char?* -[] char? char? -[] fieldtype* fieldtype* -[] char?* char?* -[] char? char? -[] char?* char?* -[] valtype* valtype* -[] char? char? -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] final? final? -[] idx* typeidx* -[] final? final? -[] idx* typeidx* -[] char? char? -[] char? char? -[] I* idctxt* -[] subtype* subtype* -[] subtype* subtype* -[] I* idctxt* -[] subtype* subtype* -[] subtype* subtype* -[] subtype* subtype* -[] subtype* subtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] char?* char?* -[] valtype* valtype* -[] char? char? -[] valtype* valtype* -[] subtype* subtype* -[] subtype* subtype* -[] subtype* subtype* -[] subtype* subtype* -[] valtype* valtype* -[] valtype* valtype* -[] char?* char?* -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] valtype? valtype? -[] valtype? valtype? -[] valtype*? valtype*? -[] valtype* valtype* -[] valtype*? valtype*? -[] valtype* valtype* -[] labelidx* labelidx* -[] labelidx* labelidx* -[] u8* u8* -[] u8* iN(8)* -[] u16* u16* -[] u16* iN(16)* -[] u32* u32* -[] u32* iN(32)* -[] u64* u64* -[] u64* iN(64)* -[] f32* f32* -[] f32* fN(32)* -[] f64* f64* -[] f64* fN(64)* -[] laneidx* laneidx* -[] laneidx* laneidx* -[] instr* instr* -[] instr* instr* -[] instr** instr** -[] instr* instr* -[] instr** instr** -[] instr* instr* -[] char? char? -[] instr* instr* -[] char? char? -[] instr* instr* -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] instr* instr* -[] char? char? -[] instr* instr* -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] instr* instr* -[] char? char? -[] instr* instr* -[] char? char? -[] instr* instr* -[] instr* instr* -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] catch* catch* -[] instr* instr* -[] char? char? -[] catch* catch* -[] instr* instr* -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] instr* instr* -[] instr* instr* -[] subtype* subtype^n -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] char? char? -[] I* idctxt* -[] local** local** -[] local* local* -[] local** local** -[] local* local* -[] char? char? -[] I* idctxt* -[] byte** byte** -[] byte* byte* -[] byte** byte** -[] byte* byte* -[] char? char? -[] byte* byte* -[] byte* byte* -[] char? char? -[] char? char? -[] byte* byte* -[] byte* byte* -[] char? char? -[] expr* expr* -[] expr* expr* -[] char? char? -[] expr* expr* -[] expr* expr* -[] char? char? -[] char? char? -[] expr* expr* -[] expr* expr* -[] char? char? -[] char? char? -[] expr* expr* -[] expr* expr* -[] char? char? -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] decl* decl* -[] I* idctxt* -[] decl* decl* -[] type* type* -[] import* import* -[] tag* tag* -[] global* global* -[] mem* mem* -[] table* table* -[] func* func* -[] data* data* -[] elem* elem* -[] start? start? -[] export* export* -[] I* idctxt* -[] type* type* -[] type* type* -[] decl* decl* -[] import* import* -[] import* import* -[] decl* decl* -[] tag* tag* -[] tag* tag* -[] decl* decl* -[] global* global* -[] global* global* -[] decl* decl* -[] mem* mem* -[] mem* mem* -[] decl* decl* -[] table* table* -[] table* table* -[] decl* decl* -[] func* func* -[] func* func* -[] decl* decl* -[] data* data* -[] data* data* -[] decl* decl* -[] elem* elem* -[] elem* elem* -[] decl* decl* -[] start? start? -[] start? start? -[] decl* decl* -[] export* export* -[] export* export* -[] decl* decl* -[] decl* decl* -[] instr* instr* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] valtype* valtype* -[] instr* instr* -[] valtype* valtype* -[] valtype* valtype* -[] X* X* -[] Y* Y* -[] addr* addr* -[] addr* addr* -[] addr* addr* -[] X* X* -[] Y* Y* == Complete. ``` From aedc92d6a9b9b58da4d6c1d9b66accdf88ef5fce Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Tue, 20 Jan 2026 15:12:11 +0100 Subject: [PATCH 18/23] Remove obsolete modules --- spectec/src/el/debug.ml | 15 - spectec/src/el/free.ml | 136 +---- spectec/src/el/free.mli | 18 - spectec/src/frontend/det.mli | 10 + spectec/src/frontend/dune | 2 +- spectec/src/frontend/elab.ml | 15 +- spectec/src/frontend/eval.ml | 898 ---------------------------------- spectec/src/frontend/eval.mli | 29 -- spectec/src/il/valid.ml | 11 - 9 files changed, 23 insertions(+), 1111 deletions(-) delete mode 100644 spectec/src/frontend/eval.ml delete mode 100644 spectec/src/frontend/eval.mli diff --git a/spectec/src/el/debug.ml b/spectec/src/el/debug.ml index 770913cb9c..d6691d4c14 100644 --- a/spectec/src/el/debug.ml +++ b/spectec/src/el/debug.ml @@ -19,18 +19,3 @@ let el_params = list el_param let el_def = string_of_def let nl_list f xs = list f (Convert.filter_nl xs) - -let el_free s = String.concat " " - Free.[ - set s.typid; - set s.varid; - set s.gramid; - set s.defid; - ] -let el_subst s = String.concat " " - Subst.[ - mapping el_typ s.typid; - mapping el_exp s.varid; - mapping el_sym s.gramid; - mapping el_id s.defid; - ] diff --git a/spectec/src/el/free.ml b/spectec/src/el/free.ml index 7af8432c95..793da3250d 100644 --- a/spectec/src/el/free.ml +++ b/spectec/src/el/free.ml @@ -1,6 +1,5 @@ open Util.Source open Ast -open Xl include Xl.Gen_free @@ -20,7 +19,6 @@ let free_typid id = | _ -> empty let free_op op = {empty with varid = Set.singleton op} -let bound_op op = free_op op (* Iterations *) @@ -42,11 +40,11 @@ and free_typ t = | IterT (t1, iter) -> free_typ t1 ++ free_iter iter | StrT (_, ts, tfs, _) -> free_nl_list free_typ ts ++ - free_nl_list (fun tf -> free_typfield tf -- det_typfield tf) tfs + free_nl_list (fun tf -> free_typfield tf) tfs | CaseT (_, ts, tcs, _) -> free_nl_list free_typ ts ++ - free_nl_list (fun tc -> free_typcase tc -- det_typcase tc) tcs - | ConT tc -> free_typcon tc -- det_typcon tc + free_nl_list (fun tc -> free_typcase tc) tcs + | ConT tc -> free_typcon tc | RangeT tes -> free_nl_list free_typenum tes | AtomT _ -> empty | SeqT ts -> free_list free_typ ts @@ -59,14 +57,6 @@ and free_typcon ((t, prems), _) = free_typ t ++ free_prems prems and free_typenum (e, eo) = free_exp e ++ free_opt free_exp eo -(* Variables can be determined by types through implicit binders *) -and det_typ t = det_exp (Convert.pat_of_typ t) - -and det_typfield (_, (t, prems), _) = det_typ t ++ det_prems prems -and det_typcase (_, (t, prems), _) = det_typ t ++ det_prems prems -and det_typcon ((t, prems), _) = det_typ t ++ det_prems prems - - (* Expressions *) and free_unop = function @@ -103,76 +93,6 @@ and free_path p = | DotP (p1, _) -> free_path p1 -and det_unop = - function - | #signop -> - bound_op (Print.string_of_unop `PlusMinusOp) ++ - bound_op (Print.string_of_unop `MinusPlusOp) - | _ -> empty - -and det_exp e = - match e.it with - | VarE (id, []) -> bound_varid id - | VarE _ -> assert false - | UnE (#signop as op, e1) -> det_unop op ++ det_exp e1 - | CvtE (e1, _) | UnE (#Num.unop, e1) - | ParenE e1 | BrackE (_, e1, _) | ArithE e1 -> det_exp e1 - (* We consider arithmetic expressions determinate, - * since we sometimes need to use invertible formulas. *) - | BinE (e1, #Num.binop, e2) - | InfixE (e1, _, e2) -> det_exp e1 ++ det_exp e2 - | SeqE es | ListE es | TupE es -> free_list det_exp es - | StrE efs -> free_nl_list det_expfield efs - | IterE (e1, iter) -> det_exp e1 ++ det_iter iter - (* As a special hack to work with bijective functions, - * we treat last position of a call as a pattern, too. *) - | CallE (_, []) -> empty - | CallE (_, as_) -> - free_list idx_arg as_ ++ det_arg (Util.Lib.List.last as_) - | TypE (e1, _) -> det_exp e1 - | AtomE _ | BoolE _ | NumE _ | TextE _ | EpsE -> empty - | UnE _ | BinE _ | CmpE _ - | IdxE _ | SliceE _ | UpdE _ | ExtE _ | CommaE _ | CatE _ | MemE _ - | DotE _ | LenE _ | SizeE _ -> idx_exp e - | HoleE _ | FuseE _ | UnparenE _ | LatexE _ -> assert false - -and det_expfield (_, e) = det_exp e - -and det_iter iter = - match iter with - | Opt | List | List1 -> empty - | ListN (e, id_opt) -> det_exp e ++ free_opt bound_varid id_opt - -and idx_exp e = - match e.it with - | VarE _ -> empty - | ParenE e1 | BrackE (_, e1, _) | ArithE e1 -> idx_exp e1 - | InfixE (e1, _, e2) -> idx_exp e1 ++ idx_exp e2 - | SeqE es | ListE es | TupE es -> free_list idx_exp es - | StrE efs -> free_nl_list idx_expfield efs - | IterE (e1, iter) -> idx_exp e1 ++ idx_iter iter - | CallE (_, as_) -> free_list idx_arg as_ - | TypE (e1, _) -> idx_exp e1 - | IdxE (_, e2) -> det_exp e2 - | _ -> empty - -and idx_expfield (_, e) = idx_exp e - -and idx_iter iter = - match iter with - | Opt | List | List1 -> empty - | ListN (e, id_opt) -> idx_exp e ++ free_opt bound_varid id_opt - -and det_cond_exp e = - match e.it with - | UnE (#Bool.unop, e1) -> det_cond_exp e1 - | BinE (e1, #Bool.binop, e2) -> det_cond_exp e1 ++ det_cond_exp e2 - | CmpE (e1, `EqOp, e2) -> det_exp e1 ++ det_exp e2 - | MemE (e1, _) -> det_exp e1 - | ParenE e1 | ArithE e1 -> det_cond_exp e1 - | _ -> empty - - (* Grammars *) and free_sym g = @@ -187,18 +107,6 @@ and free_sym g = | ArithG e -> free_exp e | AttrG (e, g1) -> free_exp e ++ free_sym g1 -and det_sym g = - match g.it with - | VarG _ | NumG _ | TextG _ | EpsG -> empty - | SeqG gs | AltG gs -> free_nl_list det_sym gs - | RangeG (g1, g2) -> det_sym g1 ++ det_sym g2 - | ParenG g1 -> det_sym g1 - | TupG gs -> free_list det_sym gs - | IterG (g1, iter) -> det_sym g1 ++ det_iter iter - | ArithG e -> det_exp e - | AttrG (e, g1) -> det_exp e ++ det_sym g1 - | FuseG _ | UnparenG _ -> assert false - and free_prod prod = match prod.it with | SynthP (g, e, prems) -> free_sym g ++ free_exp e ++ free_prems prems @@ -206,12 +114,6 @@ and free_prod prod = free_sym g1 ++ free_exp e1 ++ free_sym g2 ++ free_exp e2 | EquivP (g1, g2, prems) -> free_sym g1 ++ free_sym g2 ++ free_prems prems -and det_prod prod = - match prod.it with - | SynthP (g, _e, prems) -> det_sym g ++ det_prems prems - | RangeP (g1, _e1, g2, _e2) -> det_sym g1 ++ det_sym g2 - | EquivP (g1, _g2, prems) -> det_sym g1 ++ det_prems prems - and free_gram gram = let (_dots1, prods, _dots2) = gram.it in let s = free_nl_list free_prod prods in @@ -228,16 +130,7 @@ and free_prem prem = | ElsePr -> empty | IterPr (prem1, iter) -> free_prem prem1 ++ free_iter iter -and det_prem prem = - match prem.it with - | VarPr (_id, _t) -> empty - | RulePr (_id, e) -> det_exp e - | IfPr e -> det_cond_exp e - | ElsePr -> empty - | IterPr (prem1, iter) -> det_prem prem1 ++ det_iter iter - and free_prems prems = free_nl_list free_prem prems -and det_prems prems = free_nl_list det_prem prems (* Definitions *) @@ -249,20 +142,6 @@ and free_arg a = | GramA g -> free_sym g | DefA id -> free_defid id -and det_arg a = - match !(a.it) with - | ExpA e -> det_exp e - | TypA t -> free_typ t (* must be an id *) - | GramA g -> free_sym g (* must be an id *) - | DefA id -> free_defid id - -and idx_arg a = - match !(a.it) with - | ExpA e -> idx_exp e - | TypA _ -> empty - | GramA _ -> empty - | DefA _ -> empty - and free_param p = match p.it with | ExpP (_, t) -> free_typ t @@ -280,8 +159,6 @@ and bound_param p = | DefP (id, _, _) -> bound_defid id and free_args as_ = free_list free_arg as_ -and det_args as_ = free_list det_arg as_ - and free_params ps = free_list_dep free_param bound_param ps and bound_params ps = bound_list bound_param ps @@ -303,10 +180,3 @@ let free_def d = | DefD (id, as_, e, prems) -> free_defid id ++ free_args as_ ++ free_exp e ++ free_prems prems | HintD _ -> empty - -let det_def d = - match d.it with - | FamD _ | GramD _ | VarD _ | SepD | RelD _ | DecD _ | HintD _ -> empty - | TypD (_id1, _id2, as_, _t, _hints) -> det_args as_ - | RuleD (_id1, _id2, e, prems) -> det_exp e ++ det_prems prems - | DefD (_id, as_, e, prems) -> det_args as_ ++ idx_exp e ++ det_prems prems diff --git a/spectec/src/el/free.mli b/spectec/src/el/free.mli index fb8bad9d3d..fcd9d6d1d4 100644 --- a/spectec/src/el/free.mli +++ b/spectec/src/el/free.mli @@ -21,21 +21,3 @@ val free_def : def -> sets val free_prems : prem nl_list -> sets val free_args : arg list -> sets val free_params : param list -> sets - -(* A free variable is "determinate" if: - - it occurs as an iteration variable - - it occurs in destructuring position on the lhs - - it occurs in destructuring position on either side of an equational premise - - it occurs in destructuring position as an indexing operand - - it occurs in destructuring position as the last call arg - (this case is to handle function inverses) - This is a pragmatic criterium, intended only for sanity checks. -*) -val det_typ : typ -> sets -val det_exp : exp -> sets -val det_sym : sym -> sets -val det_prems : prem nl_list -> sets -val det_prod : prod -> sets -val det_def : def -> sets - -val bound_params : param list -> sets diff --git a/spectec/src/frontend/det.mli b/spectec/src/frontend/det.mli index fe6c7f0f76..907161e5eb 100644 --- a/spectec/src/frontend/det.mli +++ b/spectec/src/frontend/det.mli @@ -2,6 +2,16 @@ open Il.Ast include module type of Xl.Gen_free +(* A free variable is "determinate" if: + - it occurs as an iteration variable + - it occurs in destructuring position on the lhs + - it occurs in destructuring position on either side of an equational premise + - it occurs in destructuring position as an indexing operand + - it occurs in destructuring position as the last call arg + (this case is to handle function inverses) + This is a pragmatic criterium, intended only for sanity checks. +*) + val det_typ : typ -> sets val det_exp : exp -> sets val det_sym : sym -> sets diff --git a/spectec/src/frontend/dune b/spectec/src/frontend/dune index 4f21e18c8a..a77e8551e9 100644 --- a/spectec/src/frontend/dune +++ b/spectec/src/frontend/dune @@ -1,7 +1,7 @@ (library (name frontend) (libraries util el il xl) - (modules lexer id parser parse dim det eval elab) + (modules lexer id parser parse dim det elab) ) (ocamllex diff --git a/spectec/src/frontend/elab.ml b/spectec/src/frontend/elab.ml index eeba3f4362..867dd2e839 100644 --- a/spectec/src/frontend/elab.ml +++ b/spectec/src/frontend/elab.ml @@ -8,7 +8,7 @@ open Print module Il = struct include Il include Ast include Print end -module Set = Free.Set +module Set = Il.Free.Set module Map = Map.Make (String) module Debug = struct include El.Debug include Il.Debug end @@ -182,9 +182,9 @@ let find_case_atom tcs atom at t = | Some tc -> tc | None -> error_atom at atom t "unknown case" -let bound_env' env' = Map.fold (fun id _ s -> Free.Set.add id s) env' Free.Set.empty +let bound_env' env' = Map.fold (fun id _ s -> Il.Free.Set.add id s) env' Il.Free.Set.empty let bound_env env = - Free.{ + Il.Free.{ varid = bound_env' env.vars; typid = bound_env' env.typs; relid = bound_env' env.rels; @@ -295,7 +295,7 @@ let make_quants_iter_arg env (free : Il.Free.sets) dims : Il.quant list ref * (m if Il.Free.(Set.mem id.it !left.gramid) then ( let ps, t, _gram, _prods' = find "grammar" env.grams id in acc := !acc @ [Il.GramP (id, ps, t) $ id.at]; - left := Free.{!left with varid = Set.remove id.it !left.gramid}; + left := Il.Free.{!left with varid = Set.remove id.it !left.gramid}; ) let visit_defid id = @@ -343,7 +343,7 @@ let infer_quants env env' dims det ps' as' ts' es' gs' prs' at : Il.quant list = -- bound -- bound_list bound_param ps' -- det ) in - if free <> Free.empty then + if free <> Il.Free.empty then error at ("definition contains indeterminate variable(s) " ^ String.concat ", " (List.map quote (Il.Free.Set.elements free.varid))); @@ -2133,7 +2133,7 @@ and elab_prod env outer_dims (prod : prod) (t : Il.typ) : Il.prod list = let free = Il.Free.(free_prod prod' -- bound_env env') in if free <> Il.Free.empty then error prod.at ("grammar rule contains indeterminate variable(s) " ^ - String.concat ", " (List.map quote (Free.Set.elements free.varid))); + String.concat ", " (List.map quote (Il.Free.Set.elements free.varid))); if not env'.pm then [prod'] else @@ -2332,10 +2332,12 @@ and elab_param env (p : param) : Il.param list = else env.vars <- bind "variable" env.vars x t'; [Il.ExpP (x, t') $ p.at] + | TypP x -> env.typs <- bind "syntax type" env.typs x ([], Opaque); env.gvars <- bind "variable" env.gvars (strip_var_sub x) (Il.VarT (x, []) $ x.at); [Il.TypP x $ p.at] + | GramP (x, ps, t) -> let env' = local_env env in let ps' = elab_params env' ps in @@ -2359,6 +2361,7 @@ and elab_param env (p : param) : Il.param list = let t' = elab_typ env' t in env.grams <- bind "grammar" env.grams x ([], t', [], None); ps_implicit' @ [Il.GramP (x, ps', t') $ p.at] + | DefP (x, ps, t) -> let env' = local_env env in let ps' = elab_params env' ps in diff --git a/spectec/src/frontend/eval.ml b/spectec/src/frontend/eval.ml deleted file mode 100644 index ff76a99aaa..0000000000 --- a/spectec/src/frontend/eval.ml +++ /dev/null @@ -1,898 +0,0 @@ -open Util -open Source -open El -open Xl -open Ast - - -(* Environment *) - -module Set = Set.Make(String) -module Map = Map.Make(String) - -type typ_def = (arg list * typ) list -type def_def = (arg list * exp * prem list) list -type gram_def = unit -type env = {vars : typ Map.t; typs : typ_def Map.t; defs : def_def Map.t; grams : gram_def Map.t} -type subst = Subst.t - - -(* Helpers *) - -(* This exception indicates that a an application cannot be reduced because a pattern - * match cannot be decided. - * When assume_coherent_matches is set, that case is treated as a non-match. - *) -exception Irred - -let assume_coherent_matches = ref true - -let (let*) = Option.bind - - -let of_bool_exp = function - | BoolE b -> Some b - | _ -> None - -let of_num_exp = function - | NumE (_, n) -> Some n - | _ -> None - -let to_bool_exp b = BoolE b -let to_num_exp n = NumE (`DecOp, n) - - -(* Matching Lists *) - -let rec match_list match_x env s xs1 xs2 : subst option = - match xs1, xs2 with - | [], [] -> Some s - | x1::xs1', x2::xs2' -> - let* s' = match_x env s x1 x2 in - match_list match_x env (Subst.union s s') xs1' xs2' - | _, _ -> None - -let match_nl_list match_x env s xs1 xs2 = - match_list match_x env s (Convert.filter_nl xs1) (Convert.filter_nl xs2) - - -let equiv_list equiv_x env xs1 xs2 = - List.length xs1 = List.length xs2 && List.for_all2 (equiv_x env) xs1 xs2 -let equiv_nl_list equiv_x env xs1 xs2 = - equiv_list equiv_x env (El.Convert.filter_nl xs1) (El.Convert.filter_nl xs2) -let equiv_opt equiv_x env xo1 xo2 = - match xo1, xo2 with - | None, None -> true - | Some x1, Some x2 -> equiv_x env x1 x2 - | _, _ -> false - -let disj_list disj_x env xs1 xs2 = - List.length xs1 <> List.length xs2 || List.exists2 (disj_x env) xs1 xs2 - - -(* Type Reduction (weak-head) *) - -let rec reduce_typ env t : typ = - Debug.(log_if "el.reduce_typ" (t.it <> NumT `NatT) - (fun _ -> fmt "%s" (el_typ t)) - (fun r -> fmt "%s" (el_typ r)) - ) @@ fun _ -> - match t.it with - | VarT (id, args) -> - let args' = List.map (reduce_arg env) args in - let id' = El.Convert.strip_var_suffix id in - if id'.it <> id.it && args = [] then reduce_typ env (El.Convert.typ_of_varid id') else - (match reduce_typ_app env id args' t.at (Map.find id'.it env.typs) with - | Some t' -> -(* TODO(2, rossberg): reenable? - if id'.it <> id.it then - Error.error id.at "syntax" "identifer suffix encountered during reduction"; -*) - t' - | None -> VarT (id, args') $ t.at - ) - | ParenT t1 -> reduce_typ env t1 - | CaseT (dots1, ts, tcs, _dots2) -> - assert (dots1 = NoDots); -(* TODO(3, rossberg): unclosed case types are not checked early enough for this - assert (dots2 = NoDots); -*) - let tcs' = Convert.concat_map_nl_list (reduce_casetyp env) ts in - CaseT (NoDots, [], tcs' @ tcs, NoDots) $ t.at - | _ -> t - -and reduce_casetyp env t : typcase nl_list = - match (reduce_typ env t).it with - | CaseT (NoDots, [], tcs, NoDots) -> tcs - | _ -> assert false - -and reduce_typ_app env id args at = function - | [] -> - if !assume_coherent_matches then None else - let args = if args = [] then "" else - "(" ^ String.concat ", " (List.map Print.string_of_arg args) ^ ")" in - Error.error at "type" - ("undefined instance of partial syntax type definition: `" ^ id.it ^ args ^ "`") - | (args', t)::insts' -> - Debug.(log "el.reduce_typ_app" - (fun _ -> fmt "%s(%s) =: %s(%s)" id.it (el_args args) id.it (el_args args')) - (fun r -> fmt "%s" (opt (Fun.const "!") r)) - ) @@ fun _ -> - (* HACK: check for forward reference to yet undefined type (should throw?) *) - if Eq.eq_typ t (VarT (id, args') $ id.at) then None else - match match_list match_arg env Subst.empty args args' with - | exception Irred -> - if not !assume_coherent_matches then None else - reduce_typ_app env id args at insts' - | None -> reduce_typ_app env id args at insts' - | Some s -> Some (reduce_typ env (Subst.subst_typ s t)) - - -(* Expression Reduction *) - -and is_head_normal_exp e = - match e.it with - | AtomE _ | BoolE _ | NumE _ | TextE _ - | SeqE _ | TupE _ | InfixE _ | BrackE _ | StrE _ -> true - | _ -> false - -and is_normal_exp e = - match e.it with - | AtomE _ | BoolE _ | NumE _ | TextE _ -> true - | SeqE es | TupE es -> List.for_all is_normal_exp es - | BrackE (_, e, _) -> is_normal_exp e - | InfixE (e1, _, e2) -> is_normal_exp e1 && is_normal_exp e2 - | StrE efs -> Convert.forall_nl_list (fun (_, e) -> is_normal_exp e) efs - | _ -> false - -and reduce_exp env e : exp = - Debug.(log "el.reduce_exp" - (fun _ -> fmt "%s" (el_exp e)) - (fun r -> fmt "%s" (el_exp r)) - ) @@ fun _ -> - match e.it with - | VarE _ | AtomE _ | BoolE _ | TextE _ | SizeE _ -> e - | NumE (numop, n) -> NumE (numop, Num.narrow n) $ e.at - | CvtE (e1, nt) -> - let e1' = reduce_exp env e1 in - (match e1'.it with - | NumE (numop, n) -> - (match Num.cvt nt n with - | Some n' -> NumE (numop, n') $ e.at - | None -> e1' - ) - | _ -> e1' - ) - | UnE (op, e1) -> - let e1' = reduce_exp env e1 in - (match op, e1'.it with - | #Bool.unop as op', BoolE b1 -> BoolE (Bool.un op' b1) $ e.at - | #Num.unop as op', NumE (numop, n1) -> - (match Num.un op' n1 with - | Some n -> NumE (numop, n) - | None -> UnE (op, e1') - ) $ e.at - | `NotOp, UnE (`NotOp, e11') -> e11' - | `MinusOp, UnE (`MinusOp, e11') -> e11' - | `PlusOp, _ -> e1' - | _ -> UnE (op, e1') $ e.at - ) - | BinE (e1, op, e2) -> - let e1' = reduce_exp env e1 in - let e2' = reduce_exp env e2 in - (match op with - | #Bool.binop as op' -> - (match Bool.bin_partial op' e1'.it e2'.it of_bool_exp to_bool_exp with - | None -> BinE (e1', op, e2') - | Some e' -> e' - ) - | #Num.binop as op' -> - let e1'', e2'' = - match e1'.it, e2'.it with - | NumE (numop1, n1), NumE (numop2, n2) -> - let n1', n2' = Num.widen n1 n2 in - NumE (numop1, n1'), NumE (numop2, n2') - | _, _ -> e1'.it, e2'.it - in - (match Num.bin_partial op' e1'' e2'' of_num_exp to_num_exp with - | None -> BinE (e1', op, e2') - | Some e' -> e' - ) - ) $ e.at - | CmpE (e1, op, e2) -> - let e1' = reduce_exp env e1 in - let e2' = reduce_exp env e2 in - (match op, e1'.it, e2'.it with - | `EqOp, _, _ when Eq.eq_exp e1' e2' -> BoolE true - | `NeOp, _, _ when Eq.eq_exp e1' e2' -> BoolE false - | `EqOp, _, _ when is_normal_exp e1' && is_normal_exp e2' -> BoolE false - | `NeOp, _, _ when is_normal_exp e1' && is_normal_exp e2' -> BoolE true - | #Num.cmpop as op', NumE (_, n1), NumE (_, n2) -> - (match Num.cmp op' n1 n2 with - | Some b -> BoolE b - | None -> CmpE (e1', op, e2') - ) - | _ -> CmpE (e1', op, e2') - ) $ e.at - | EpsE -> SeqE [] $ e.at - | SeqE es -> SeqE (List.map (reduce_exp env) es) $ e.at - | ListE es -> SeqE (List.map (reduce_exp env) es) $ e.at - | IdxE (e1, e2) -> - let e1' = reduce_exp env e1 in - let e2' = reduce_exp env e2 in - (match e1'.it, e2'.it with - | SeqE es, NumE (_, `Nat i) when i < Z.of_int (List.length es) -> List.nth es (Z.to_int i) - | _ -> IdxE (e1', e2') $ e.at - ) - | SliceE (e1, e2, e3) -> - let e1' = reduce_exp env e1 in - let e2' = reduce_exp env e2 in - let e3' = reduce_exp env e3 in - (match e1'.it, e2'.it, e3'.it with - | SeqE es, NumE (_, `Nat i), NumE (_, `Nat n) when Z.(i + n) < Z.of_int (List.length es) -> - SeqE (Lib.List.take (Z.to_int n) (Lib.List.drop (Z.to_int i) es)) - | _ -> SliceE (e1', e2', e3') - ) $ e.at - | UpdE (e1, p, e2) -> - let e1' = reduce_exp env e1 in - let e2' = reduce_exp env e2 in - reduce_path env e1' p - (fun e' p' -> if p'.it = RootP then e2' else UpdE (e', p', e2') $ e.at) - | ExtE (e1, p, e2) -> - let e1' = reduce_exp env e1 in - let e2' = reduce_exp env e2 in - reduce_path env e1' p - (fun e' p' -> - if p'.it = RootP - then reduce_exp env (SeqE [e'; e2'] $ e.at) - else ExtE (e', p', e2') $ e.at - ) - | StrE efs -> StrE (Convert.map_nl_list (reduce_expfield env) efs) $ e.at - | DotE (e1, atom) -> - let e1' = reduce_exp env e1 in - (match e1'.it with - | StrE efs -> - snd (Option.get (El.Convert.find_nl_list (fun (atomN, _) -> Atom.eq atomN atom) efs)) - | _ -> DotE (e1', atom) $ e.at - ) - | CommaE (e1, e2) -> - let e1' = reduce_exp env e1 in - let e2' = reduce_exp env e2 in - (match e2'.it with - | SeqE ({it = AtomE atom; _} :: es2') -> - let e21' = match es2' with [e21'] -> e21' | _ -> SeqE es2' $ e2.at in - reduce_exp env (CatE (e1', StrE [Elem (atom, e21')] $ e2.at) $ e.at) - | _ -> CommaE (e1', e2') $ e.at - ) - | CatE (e1, e2) -> - let e1' = reduce_exp env e1 in - let e2' = reduce_exp env e2 in - (match e1'.it, e2'.it with - | SeqE es1, SeqE es2 -> SeqE (es1 @ es2) - | SeqE [], _ -> e2'.it - | _, SeqE [] -> e1'.it - | StrE efs1, StrE efs2 -> - let rec merge efs1 efs2 = - match efs1, efs2 with - | [], _ -> efs2 - | _, [] -> efs1 - | Nl::efs1', _ -> merge efs1' efs2 - | _, Nl::efs2' -> merge efs1 efs2' - | Elem (atom1, e1) :: efs1', Elem (atom2, e2) :: efs2' -> - (* Assume that both lists are sorted in same order *) - if Atom.eq atom1 atom2 then - let e' = reduce_exp env (CatE (e1, e2) $ e.at) in - Elem (atom1, e') :: merge efs1' efs2' - else if El.Convert.exists_nl_list (fun (atom, _) -> Atom.eq atom atom2) efs1 then - Elem (atom1, e1) :: merge efs1' efs2 - else - Elem (atom2, e2) :: merge efs1 efs2' - in StrE (merge efs1 efs2) - | _ -> CatE (e1', e2') - ) $ e.at - | MemE (e1, e2) -> - let e1' = reduce_exp env e1 in - let e2' = reduce_exp env e2 in - (match e2'.it with - | SeqE [] -> BoolE false - | SeqE es2' when List.exists (Eq.eq_exp e1') es2' -> BoolE true - | SeqE es2' when is_normal_exp e1' && List.for_all is_normal_exp es2' -> BoolE false - | _ -> MemE (e1', e2') - ) $ e.at - | LenE e1 -> - let e1' = reduce_exp env e1 in - (match e1'.it with - | SeqE es -> NumE (`DecOp, `Nat (Z.of_int (List.length es))) - | _ -> LenE e1' - ) $ e.at - | ParenE e1 | ArithE e1 | TypE (e1, _) -> reduce_exp env e1 - | TupE es -> TupE (List.map (reduce_exp env) es) $ e.at - | InfixE (e1, atom, e2) -> - let e1' = reduce_exp env e1 in - let e2' = reduce_exp env e2 in - InfixE (e1', atom, e2') $ e.at - | BrackE (atom1, e1, atom2) -> - let e1' = reduce_exp env e1 in - BrackE (atom1, e1', atom2) $ e.at - | CallE (id, args) -> - let args' = List.map (reduce_arg env) args in - let clauses = Map.find id.it env.defs in - (* Allow for uninterpreted functions *) - if not !assume_coherent_matches && clauses = [] then CallE (id, args') $ e.at else - (match reduce_exp_call env id args' e.at clauses with - | None -> CallE (id, args') $ e.at - | Some e -> e - ) - | IterE (e1, iter) -> - let e1' = reduce_exp env e1 in - IterE (e1', iter) $ e.at (* TODO(2, rossberg): simplify? *) - | HoleE _ | FuseE _ | UnparenE _ | LatexE _ -> assert false - -and reduce_expfield env (atom, e) : expfield = (atom, reduce_exp env e) - -and reduce_path env e p f = - match p.it with - | RootP -> f e p - | IdxP (p1, e1) -> - let e1' = reduce_exp env e1 in - let f' e' p1' = - match e'.it, e1'.it with - | SeqE es, NumE (_, `Nat i) when i < Z.of_int (List.length es) -> - SeqE (List.mapi (fun j eJ -> if Z.of_int j = i then f eJ p1' else eJ) es) $ e'.at - | _ -> - f e' (IdxP (p1', e1') $ p.at) - in - reduce_path env e p1 f' - | SliceP (p1, e1, e2) -> - let e1' = reduce_exp env e1 in - let e2' = reduce_exp env e2 in - let f' e' p1' = - match e'.it, e1'.it, e2'.it with - | SeqE es, NumE (_, `Nat i), NumE (_, `Nat n) when Z.(i + n) < Z.of_int (List.length es) -> - let e1' = SeqE Lib.List.(take (Z.to_int i) es) $ e'.at in - let e2' = SeqE Lib.List.(take (Z.to_int n) (drop (Z.to_int i) es)) $ e'.at in - let e3' = SeqE Lib.List.(drop Z.(to_int (i + n)) es) $ e'.at in - reduce_exp env (SeqE [e1'; f e2' p1'; e3'] $ e'.at) - | _ -> - f e' (SliceP (p1', e1', e2') $ p.at) - in - reduce_path env e p1 f' - | DotP (p1, atom) -> - let f' e' p1' = - match e'.it with - | StrE efs -> - StrE (Convert.map_nl_list (fun (atomI, eI) -> - if atomI = atom then (atomI, f eI p1') else (atomI, eI)) efs) $ e'.at - | _ -> - f e' (DotP (p1', atom) $ p.at) - in - reduce_path env e p1 f' - -and reduce_arg env a : arg = - match !(a.it) with - | ExpA e -> ref (ExpA (reduce_exp env e)) $ a.at - | TypA _t -> a (* types are reduced on demand *) - | GramA _g -> a - | DefA _id -> a - -and reduce_exp_call env id args at = function - | [] -> - if !assume_coherent_matches then None else - let args = if args = [] then "" else - "(" ^ String.concat ", " (List.map Print.string_of_arg args) ^ ")" in - Error.error at "type" - ("undefined call to partial function: `$" ^ id.it ^ args ^ "`") - | (args', e, prems)::clauses' -> - match match_list match_arg env Subst.empty args args' with - | exception Irred -> - if not !assume_coherent_matches then None else - reduce_exp_call env id args at clauses' - | None -> reduce_exp_call env id args at clauses' - | Some s -> - match reduce_prems env Subst.(subst_list subst_prem s prems) with - | None -> None - | Some false -> reduce_exp_call env id args at clauses' - | Some true -> Some (reduce_exp env (Subst.subst_exp s e)) - -and reduce_prems env = function - | [] -> Some true - | prem::prems -> - match reduce_prem env prem with - | Some true -> reduce_prems env prems - | other -> other - -and reduce_prem env prem : bool option = - match prem.it with - | VarPr _ - | ElsePr -> Some true - | RulePr _ -> None - | IfPr e -> - (match (reduce_exp env e).it with - | BoolE b -> Some b - | _ -> None - ) - | IterPr (_prem, _iter) -> None (* TODO(2, rossberg): implement *) - - -(* Matching *) - -(* Iteration *) - -and match_iter env s iter1 iter2 : subst option = - match iter1, iter2 with - | Opt, Opt -> Some s - | List, List -> Some s - | List1, List1 -> Some s - | ListN (e1, _ido1), ListN (e2, _ido2) -> match_exp env s e1 e2 - | _, _ -> None - - -(* Types *) - -and match_typ env s t1 t2 : subst option = - match t1.it, t2.it with - | ParenT t11, _ -> match_typ env s t11 t2 - | _, ParenT t21 -> match_typ env s t1 t21 - | _, VarT (id, []) when Subst.mem_typid s id -> - match_typ env s t1 (Subst.subst_typ s t2) - | _, VarT (id, []) when not (Map.mem id.it env.typs) -> - (* An unbound type is treated as a pattern variable *) - Some (Subst.add_typid s id t1) - | VarT (id1, args1), VarT (id2, args2) when id1.it = id2.it -> - (* Optimization for the common case where args are absent or equivalent. *) - (match match_list match_arg env s args1 args2 with - | Some s -> Some s - | None -> - (* If that fails, fall back to reduction. *) - let t1' = reduce_typ env t1 in - let t2' = reduce_typ env t2 in - if Eq.(eq_typ t1 t1' && eq_typ t2 t2') then None else - match_typ env s t1' t2' - ) - | VarT _, _ -> - let t1' = reduce_typ env t1 in - if Eq.eq_typ t1 t1' then None else - match_typ env s t1' t2 - | _, VarT _ -> - let t2' = reduce_typ env t2 in - if Eq.eq_typ t2 t2' then None else - match_typ env s t1 t2' - | TupT ts1, TupT ts2 -> match_list match_typ env s ts1 ts2 - | IterT (t11, iter1), IterT (t21, iter2) -> - let* s' = match_typ env s t11 t21 in match_iter env s' iter1 iter2 - | _, _ -> None - - -(* Expressions *) - -(* Matching can produce one of several results: - - Some s: matches producing substitutions - - None: does not match - - exception Irred: lacking normal form, can't decide between Some or None - - exception Error: some inner application was undefined, i.e., non-exhaustive -*) - -and match_exp env s e1 e2 : subst option = - Debug.(log "el.match_exp" - (fun _ -> fmt "%s =: %s" (el_exp e1) (el_exp e2)) - (fun r -> fmt "%s" (opt el_subst r)) - ) @@ fun _ -> - match e1.it, (reduce_exp env (Subst.subst_exp s e2)).it with -(* - | (ParenE e11 | TypE (e11, _)), _ -> match_exp env s e11 e2 - | _, (ParenE e21 | TypE (e21, _)) -> match_exp env s e1 e21 - | _, VarE (id, []) when Subst.mem_varid s id -> - match_exp env s e1 (Subst.subst_exp s e2) - | VarE (id1, args1), VarE (id2, args2) when id1.it = id2.it -> - match_list match_arg env s args1 args2 -*) - | _, VarE (id2, []) when Subst.mem_varid s id2 -> - (* A pattern variable already in the substitution is non-linear *) - let e2' = Subst.subst_exp s e2 in - if equiv_exp env e1 e2' then - Some s - else if is_head_normal_exp e1 && is_head_normal_exp e2' then - None - else - raise Irred - | _, VarE (id2, []) -> - (* Treat as a fresh pattern variable. If declared, need to check domain. *) - let find_var id = - match Map.find_opt id.it env.vars with - | None -> - (* Implicitly bound *) - Map.find_opt (El.Convert.strip_var_suffix id).it env.vars (* TODO(2, rossberg): should be gvars *) - | some -> some - in - if - match Map.find_opt (El.Convert.strip_var_suffix id2).it env.vars (* gvars *) with - | None -> true (* undeclared pattern variable always matches *) - | Some t2 -> - let t2' = reduce_typ env t2 in - match e1.it, t2'.it with - | BoolE _, BoolT - | TextE _, TextT -> true - | NumE (_, n), NumT t -> t >= Num.to_typ (Num.narrow n) - | UnE ((`MinusOp | `PlusOp), _), NumT t1 -> t1 >= `IntT - | NumE (_, `Nat n), RangeT tes -> - List.exists (function - | ({it = NumE (_, `Nat n1); _}, None) -> n1 = n - | ({it = NumE (_, `Nat n1); _}, Some {it = NumE (_, `Nat n2); _}) -> n1 <= n && n <= n2 - | _ -> false - ) (Convert.filter_nl tes) - | (AtomE atom | SeqE ({it = AtomE atom; _}::_)), CaseT (_, _, tcs, _) -> - (match El.Convert.find_nl_list (fun (atomN, _, _) -> atomN.it = atom.it) tcs with - | Some (_, (tN, _), _) -> - match_exp env s e1 (Convert.exp_of_typ tN) <> None - | None -> false - ) - | VarE (id1, []), _ -> - (match find_var id1 with - | None -> raise Irred - | Some t1 -> sub_typ env t1 t2' || - if disj_typ env t1 t2' then false else raise Irred - ) - | _, (StrT _ | CaseT _ | ConT _ | RangeT _) -> raise Irred - | _, _ -> true - then - if id2.it = "_" then Some s else - Some (Subst.add_varid s id2 e1) - else None - | AtomE atom1, AtomE atom2 when atom1.it = atom2.it -> Some s - | BoolE b1, BoolE b2 when b1 = b2 -> Some s - | NumE (_, n1), NumE (_, n2) when n1 = n2 -> Some s - | TextE s1, TextE s2 when s1 = s2 -> Some s - | NumE (_, n1), UnE (`PlusOp, e21) when not (Num.is_neg n1) -> - match_exp env s e1 e21 - | NumE (numop, n1), UnE (`MinusOp, e21) when Num.is_neg n1 -> - match_exp env s (reduce_exp env {e1 with it = NumE (numop, Num.abs n1)}) e21 - | NumE (_, n1), UnE (#signop as op, _) -> - let pm, mp = - if Num.is_neg n1 = (op = `MinusPlusOp) - then `PlusOp, `MinusOp else `MinusOp, `PlusOp - in - match_exp env - (Subst.add_unop (Subst.add_unop s `PlusMinusOp pm) `MinusPlusOp mp) e1 e2 -(* - | UnE (op1, e11), UnE (op2, e21) when op1 = op2 -> match_exp env s e11 e21 - | BinE (e11, op1, e12), BinE (e21, op2, e22) when op1 = op2 -> - let* s' = match_exp env s e11 e21 in match_exp env s' e12 e22 - | CmpE (e11, op1, e12), CmpE (e21, op2, e22) when op1 = op2 -> - let* s' = match_exp env s e11 e21 in match_exp env s' e12 e22 - | (EpsE | SeqE []), (EpsE | SeqE []) -> Some s -*) - | SeqE es1, SeqE es2 - | TupE es1, TupE es2 -> match_list match_exp env s es1 es2 -(* - | IdxE (e11, e12), IdxE (e21, e22) - | CommaE (e11, e12), CommaE (e21, e22) - | CatE (e11, e12), CatE (e21, e22) -> - let* s' = match_exp env s e11 e21 in match_exp env s' e12 e22 - | SliceE (e11, e12, e13), SliceE (e21, e22, e23) -> - let* s' = match_exp env s e11 e21 in - let* s'' = match_exp env s' e12 e22 in - match_exp env s'' e13 e23 - | UpdE (e11, p1, e12), UpdE (e21, p2, e22) - | ExtE (e11, p1, e12), ExtE (e21, p2, e22) -> - let* s' = match_exp env s e11 e21 in - let* s'' = match_path env s' p1 p2 in - match_exp env s'' e12 e22 -*) - | StrE efs1, StrE efs2 -> match_nl_list match_expfield env s efs1 efs2 -(* - | DotE (e11, atom1), DotE (e21, atom2) when atom1 = atom2 -> - match_exp env s e11 e21 - | LenE e11, LenE e21 -> match_exp env s e11 e21 - | SizeE id1, SizeE id2 when id1.it = id2.it -> Some s -*) - | InfixE (e11, atom1, e12), InfixE (e21, atom2, e22) when atom1 = atom2 -> - let* s' = match_exp env s e11 e21 in match_exp env s' e12 e22 - | BrackE (atom11, e11, atom12), BrackE (atom21, e21, atom22) - when atom11 = atom21 && atom12 = atom22 -> - match_exp env s e11 e21 -(* - | CallE (id1, args1), CallE (id2, args2) when id1.it = id2.it -> - match_list match_arg env s args1 args2 -*) - | IterE (e11, iter1), IterE (e21, iter2) -> - let* s' = match_exp env s e11 e21 in match_iter env s' iter1 iter2 - | (HoleE _ | FuseE _ | UnparenE _), _ - | _, (HoleE _ | FuseE _ | UnparenE _) -> assert false - | _, _ when is_head_normal_exp e1 -> None - | _, _ -> raise Irred - -and match_expfield env s (atom1, e1) (atom2, e2) = - if atom1 <> atom2 then None else - match_exp env s e1 e2 - -(* -and match_path env s p1 p2 = - match p1.it, p2.it with - | RootP, RootP -> Some s - | IdxP (p11, e1), IdxP (p21, e2) -> - let* s' = match_path env s p11 p21 in - match_exp env s' e1 e2 - | SliceP (p11, e11, e12), SliceP (p21, e21, e22) -> - let* s' = match_path env s p11 p21 in - let* s'' = match_exp env s' e11 e21 in - match_exp env s'' e12 e22 - | DotP (p11, atom1), DotP (p21, atom2) when atom1 = atom2 -> - match_path env s p11 p21 - | _, _ -> None -*) - - -(* Grammars *) - -and match_sym env s g1 g2 : subst option = - Debug.(log "el.match_sym" - (fun _ -> fmt "%s =: %s" (el_sym g1) (el_sym g2)) - (fun r -> fmt "%s" (opt el_subst r)) - ) @@ fun _ -> - match g1.it, g2.it with - | ParenG g11, _ -> match_sym env s g11 g2 - | _, ParenG g21 -> match_sym env s g1 g21 - | _, VarG (id, []) when Subst.mem_gramid s id -> - match_sym env s g1 (Subst.subst_sym s g2) - | _, VarG (id, []) when not (Map.mem id.it env.grams) -> - (* An unbound id is treated as a pattern variable *) - Some (Subst.add_gramid s id g1) - | VarG (id1, args1), VarG (id2, args2) when id1.it = id2.it -> - match_list match_arg env s args1 args2 - | TupG gs1, TupG gs2 -> match_list match_sym env s gs1 gs2 - | IterG (g11, iter1), IterG (g21, iter2) -> - let* s' = match_sym env s g11 g21 in match_iter env s' iter1 iter2 - | _, _ -> None - - -(* Parameters *) - -and match_arg env s a1 a2 : subst option = - Debug.(log "el.match_arg" - (fun _ -> fmt "%s =: %s" (el_arg a1) (el_arg a2)) - (fun r -> fmt "%s" (opt el_subst r)) - ) @@ fun _ -> - match !(a1.it), !(a2.it) with - | ExpA e1, ExpA e2 -> match_exp env s e1 e2 - | TypA t1, TypA t2 -> match_typ env s t1 t2 - | GramA g1, GramA g2 -> match_sym env s g1 g2 - | DefA id1, DefA id2 -> - if id2.it = "_" then Some s else - Some (Subst.add_defid s id2 id1) - | _, _ -> assert false - - -(* Type Equivalence *) - -and equiv_typ env t1 t2 = - Debug.(log "el.equiv_typ" - (fun _ -> fmt "%s == %s" (el_typ t1) (el_typ t2)) Bool.to_string - ) @@ fun _ -> - match t1.it, t2.it with - | VarT (id1, args1), VarT (id2, args2) -> - (El.Convert.strip_var_suffix id1).it = (El.Convert.strip_var_suffix id2).it && - equiv_list equiv_arg env args1 args2 || (* optimization *) - let t1' = reduce_typ env t1 in - let t2' = reduce_typ env t2 in - (t1' <> t1 || t2' <> t2) && equiv_typ env t1' t2' - | VarT _, _ -> - let t1' = reduce_typ env t1 in - t1' <> t1 && equiv_typ env t1' t2 - | _, VarT _ -> - let t2' = reduce_typ env t2 in - t2' <> t2 && equiv_typ env t1 t2' - | ParenT t11, _ -> equiv_typ env t11 t2 - | _, ParenT t21 -> equiv_typ env t1 t21 - | TupT ts1, TupT ts2 | SeqT ts1, SeqT ts2 -> equiv_list equiv_typ env ts1 ts2 - | IterT (t11, iter1), IterT (t21, iter2) -> - equiv_typ env t11 t21 && Eq.eq_iter iter1 iter2 - | AtomT atom1, AtomT atom2 -> atom1.it = atom2.it - | InfixT (t11, atom1, t12), InfixT (t21, atom2, t22) -> - equiv_typ env t11 t21 && atom1.it = atom2.it && equiv_typ env t12 t22 - | BrackT (atom11, t11, atom12), BrackT (atom21, t21, atom22) -> - atom11.it = atom21.it && equiv_typ env t11 t21 && atom12 = atom22 - | StrT (NoDots, [], tfs1, NoDots), StrT (NoDots, [], tfs2, NoDots) -> - equiv_nl_list equiv_typfield env tfs1 tfs2 - | CaseT (NoDots, [], tcs1, NoDots), CaseT (NoDots, [], tcs2, NoDots) -> - equiv_nl_list equiv_typcase env tcs1 tcs2 - | ConT tc1, ConT tc2 -> equiv_typcon env tc1 tc2 - | RangeT tes1, RangeT tes2 -> equiv_nl_list equiv_typenum env tes1 tes2 - | _, _ -> t1.it = t2.it - -and equiv_typfield env (atom1, (t1, prems1), _) (atom2, (t2, prems2), _) = - atom1.it = atom2.it && equiv_typ env t1 t2 && Eq.(eq_nl_list eq_prem prems1 prems2) -and equiv_typcase env (atom1, (t1, prems1), _) (atom2, (t2, prems2), _) = - atom1.it = atom2.it && equiv_typ env t1 t2 && Eq.(eq_nl_list eq_prem prems1 prems2) -and equiv_typcon env ((t1, prems1), _) ((t2, prems2), _) = - equiv_typ env t1 t2 && Eq.(eq_nl_list eq_prem prems1 prems2) -and equiv_typenum env (e11, e12o) (e21, e22o) = - equiv_exp env e11 e21 && equiv_opt equiv_exp env e12o e22o - -and equiv_exp env e1 e2 = - Debug.(log "el.equiv_exp" - (fun _ -> fmt "%s == %s" (el_exp e1) (el_exp e2)) Bool.to_string - ) @@ fun _ -> - (* TODO(3, rossberg): this does not reduce inner type arguments *) - Eq.eq_exp (reduce_exp env e1) (reduce_exp env e2) - -and equiv_arg env a1 a2 = - Debug.(log "el.equiv_arg" - (fun _ -> fmt "%s == %s" (el_arg a1) (el_arg a2)) Bool.to_string - ) @@ fun _ -> - match !(a1.it), !(a2.it) with - | ExpA e1, ExpA e2 -> equiv_exp env e1 e2 - | TypA t1, TypA t2 -> equiv_typ env t1 t2 - | GramA g1, GramA g2 -> Eq.eq_sym g1 g2 - | DefA id1, DefA id2 -> id1.it = id2.it - | _, _ -> false - - -and equiv_functyp env (ps1, t1) (ps2, t2) = - List.length ps1 = List.length ps2 && - match equiv_params env ps1 ps2 with - | None -> false - | Some s -> equiv_typ env t1 (Subst.subst_typ s t2) - -and equiv_params env ps1 ps2 = - List.fold_left2 (fun s_opt p1 p2 -> - let* s = s_opt in - match p1.it, (Subst.subst_param s p2).it with - | ExpP (id1, t1), ExpP (id2, t2) -> - if not (equiv_typ env t1 t2) then None else - Some (Subst.add_varid s id2 (VarE (id1, []) $ p1.at)) - | TypP _, TypP _ -> Some s - | GramP (id1, ps1, t1), GramP (id2, ps2, t2) -> - if not (equiv_functyp env (ps1, t1) (ps2, t2)) then None else - Some (Subst.add_gramid s id2 (VarG (id1, []) $ p1.at)) - | DefP (id1, ps1, t1), DefP (id2, ps2, t2) -> - if not (equiv_functyp env (ps1, t1) (ps2, t2)) then None else - Some (Subst.add_defid s id2 id1) - | _, _ -> None - ) (Some Subst.empty) ps1 ps2 - - -(* Subtyping *) - -and sub_prems _env prems1 prems2 = - Debug.(log "el.sub_prems" - (fun _ -> fmt "%s <: %s" (nl_list el_prem prems1) (nl_list el_prem prems2)) - Bool.to_string - ) @@ fun _ -> - let open Convert in - forall_nl_list (fun prem2 -> exists_nl_list (Eq.eq_prem prem2) prems1) prems2 - -and sub_typ env t1 t2 = - Debug.(log "el.sub_typ" - (fun _ -> fmt "%s <: %s" (el_typ t1) (el_typ t2)) Bool.to_string - ) @@ fun _ -> - let t1 = reduce_typ env t1 in - let t2 = reduce_typ env t2 in - match t1.it, t2.it with -(*| NumT nt1, NumT nt2 -> Num.sub nt1 nt2*) - | StrT (NoDots, [], tfs1, NoDots), StrT (NoDots, [], tfs2, NoDots) -> - El.Convert.forall_nl_list (fun (atom, (t2, prems2), _) -> - match find_field tfs1 atom with - | Some (t1, prems1) -> - equiv_typ env t1 t2 && sub_prems env prems1 prems2 - | None -> false - ) tfs2 - | CaseT (NoDots, [], tcs1, NoDots), CaseT (NoDots, [], tcs2, NoDots) -> - El.Convert.forall_nl_list (fun (atom, (t1, prems1), _) -> - match find_case tcs2 atom with - | Some (t2, prems2) -> - equiv_typ env t1 t2 && sub_prems env prems1 prems2 - | None -> false - ) tcs1 - | ConT ((t11, prems1), _), ConT ((t21, prems2), _) -> - sub_typ env t11 t21 && sub_prems env prems1 prems2 || - equiv_typ env t1 t2 -(* - | ConT ((t11, _), _), _ -> sub_typ env t11 t2 - | _, ConT ((t21, _), _) -> sub_typ env t1 t21 - | RangeT [], NumT _ -> true - | RangeT (Elem (e1, _)::tes1), NumT t2' -> - (match (reduce_exp env e1).it with - | NumE _ -> true - | UnE (`MinusOp, _) -> t2' <= `IntT - | _ -> assert false - ) && sub_typ env (RangeT tes1 $ t1.at) t2 - | NumT _, RangeT [] -> true - | NumT t1', RangeT (Elem (e2, _)::tes2) -> - (match (reduce_exp env e2).it with - | NumE (_, `Nat _) -> t1' = `NatT - | UnE (`MinusOp, _) -> true - | _ -> assert false - ) && sub_typ env t1 (RangeT tes2 $ t2.at) -*) - | TupT ts1, TupT ts2 - | SeqT ts1, SeqT ts2 -> - List.length ts1 = List.length ts2 && List.for_all2 (sub_typ env) ts1 ts2 - | _, _ -> equiv_typ env t1 t2 - -and find_field tfs atom = - El.Convert.find_nl_list (fun (atom', _, _) -> atom'.it = atom.it) tfs - |> Option.map Lib.snd3 - -and find_case tcs atom = - El.Convert.find_nl_list (fun (atom', _, _) -> atom'.it = atom.it) tcs - |> Option.map Lib.snd3 - - -(* Type Disjointness *) - -and disj_typ env t1 t2 = - Debug.(log "el.disj_typ" - (fun _ -> fmt "%s ## %s" (el_typ t1) (el_typ t2)) Bool.to_string - ) @@ fun _ -> - match t1.it, t2.it with - | VarT (id1, args1), VarT (id2, args2) -> - let t1' = reduce_typ env t1 in - let t2' = reduce_typ env t2 in - if t1' <> t1 || t2' <> t2 then - disj_typ env t1' t2' - else - (El.Convert.strip_var_suffix id1).it <> (El.Convert.strip_var_suffix id2).it || - disj_list disj_arg env args1 args2 - | VarT _, _ -> - let t1' = reduce_typ env t1 in - t1' <> t1 && disj_typ env t1' t2 - | _, VarT _ -> - let t2' = reduce_typ env t2 in - t2' <> t2 && disj_typ env t1 t2' - | ParenT t11, _ -> disj_typ env t11 t2 - | _, ParenT t21 -> disj_typ env t1 t21 - | TupT ts1, TupT ts2 | SeqT ts1, SeqT ts2 -> disj_list disj_typ env ts1 ts2 - | IterT (t11, iter1), IterT (t21, iter2) -> - disj_typ env t11 t21 || not (Eq.eq_iter iter1 iter2) - | AtomT atom1, AtomT atom2 -> atom1.it <> atom2.it - | InfixT (t11, atom1, t12), InfixT (t21, atom2, t22) -> - disj_typ env t11 t21 || atom1.it <> atom2.it || disj_typ env t12 t22 - | BrackT (atom11, t11, atom12), BrackT (atom21, t21, atom22) -> - atom11.it <> atom21.it || disj_typ env t11 t21 || atom12 = atom22 - | StrT (NoDots, [], tfs1, NoDots), StrT (NoDots, [], tfs2, NoDots) -> - unordered (atoms tfs1) (atoms tfs2) || - El.Convert.exists_nl_list (fun (atom, (t2, _prems2), _) -> - match find_field tfs1 atom with - | Some (t1, _prems1) -> disj_typ env t1 t2 - | None -> true - ) tfs2 - | CaseT (NoDots, [], tcs1, NoDots), CaseT (NoDots, [], tcs2, NoDots) -> - Set.disjoint (atoms tcs1) (atoms tcs2) || - El.Convert.exists_nl_list (fun (atom, (t1, _prems1), _) -> - match find_case tcs2 atom with - | Some (t2, _prems2) -> disj_typ env t1 t2 - | None -> false - ) tcs1 - | ConT ((t11, _), _), ConT ((t21, _), _) -> disj_typ env t11 t21 - | RangeT _, RangeT _ -> false (* approximation *) - | _, _ -> t1.it <> t2.it - -and narrow_typ env t1 t2 = - Debug.(log "el.narrow_typ" - (fun _ -> fmt "%s <: %s" (el_typ t1) (el_typ t2)) Bool.to_string - ) @@ fun _ -> - let t1 = reduce_typ env t1 in - let t2 = reduce_typ env t2 in - match t1.it, t2.it with - | NumT nt1, NumT nt2 -> Num.sub nt1 nt2 - | _, _ -> equiv_typ env t1 t2 - -and atoms xs = - Set.of_list (List.map Print.string_of_atom - (El.Convert.map_filter_nl_list Lib.fst3 xs)) - -and unordered s1 s2 = not Set.(subset s1 s2 || subset s2 s1) - -and disj_exp env e1 e2 = - (* TODO(3, rossberg): this does not reduce inner type arguments *) - let e1' = reduce_exp env e1 in - let e2' = reduce_exp env e2 in - is_normal_exp e1' && is_normal_exp e2' && not (Eq.eq_exp e1' e2') - -and disj_arg env a1 a2 = - match !(a1.it), !(a2.it) with - | ExpA e1, ExpA e2 -> disj_exp env e1 e2 - | TypA t1, TypA t2 -> disj_typ env t1 t2 - | GramA _, GramA _ -> false - | DefA _, DefA _ -> false - | _, _ -> false diff --git a/spectec/src/frontend/eval.mli b/spectec/src/frontend/eval.mli deleted file mode 100644 index 90baf0eeea..0000000000 --- a/spectec/src/frontend/eval.mli +++ /dev/null @@ -1,29 +0,0 @@ -open El.Ast - -module Map : module type of Map.Make(String) - -type typ_def = (arg list * typ) list -type def_def = (arg list * exp * prem list) list -type gram_def = unit -type env = {vars : typ Map.t; typs : typ_def Map.t; defs : def_def Map.t; grams : gram_def Map.t} -type subst = El.Subst.t - -val (let*) : subst option -> (subst -> subst option) -> subst option - -val reduce_exp : env -> exp -> exp -val reduce_typ : env -> typ -> typ -val reduce_arg : env -> arg -> arg - -val equiv_functyp : env -> param list * typ -> param list * typ -> bool -val equiv_typ : env -> typ -> typ -> bool -val sub_typ : env -> typ -> typ -> bool -val narrow_typ : env -> typ -> typ -> bool - -val match_iter : env -> subst -> iter -> iter -> subst option -val match_exp : env -> subst -> exp -> exp -> subst option -val match_typ : env -> subst -> typ -> typ -> subst option -val match_arg : env -> subst -> arg -> arg -> subst option - -val match_list : - (env -> subst -> 'a -> 'a -> subst option) -> - env -> subst -> 'a list -> 'a list -> subst option diff --git a/spectec/src/il/valid.ml b/spectec/src/il/valid.ml index 6f057560a6..936464d768 100644 --- a/spectec/src/il/valid.ml +++ b/spectec/src/il/valid.ml @@ -85,17 +85,6 @@ let rec as_comp_typ phrase env dir t at = | _ -> error at (phrase ^ "'s type `" ^ string_of_typ t ^ "` is not composable") -(* -let rec inst_tup_typ env s xts : (id * typ) list = - match xts with - | [] -> [] - | (xI, tI)::xts' -> - let xI' = Fresh.refresh_varid xI in - let tI' = Subst.subst_typ s tI in - let s' = Subst.add_varid s xI (VarE xI' $$ xI.at % tI') in - (xI', tI') :: inst_tup_typ env s' xts' -*) - let proj_tup_typ i xts e at = let rec loop i xts s = match i, xts with From 03fc8b0b313dfbbfac0efa98bcf0d31c8dcf2279 Mon Sep 17 00:00:00 2001 From: DJ Date: Thu, 22 Jan 2026 14:14:23 +0900 Subject: [PATCH 19/23] Change mixop of constructed function --- spectec/src/backend-interpreter/construct.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spectec/src/backend-interpreter/construct.ml b/spectec/src/backend-interpreter/construct.ml index d5d9538dfc..488a86b5b7 100644 --- a/spectec/src/backend-interpreter/construct.ml +++ b/spectec/src/backend-interpreter/construct.ml @@ -126,7 +126,7 @@ and al_to_comptype: value -> comptype = function | CaseV ("ARRAY", [ ft ]) -> ArrayT (al_to_fieldtype ft) | CaseV ("FUNC", [ CaseV ("->", [ rt1; rt2 ]) ]) when !version <= 2 -> FuncT (al_to_resulttype rt1, (al_to_resulttype rt2)) - | CaseV ("FUNC", [ rt1; rt2 ]) -> + | CaseV ("->", [ rt1; rt2 ]) -> FuncT (al_to_resulttype rt1, (al_to_resulttype rt2)) | v -> error_value "comptype" v @@ -1143,7 +1143,7 @@ and al_of_comptype = function if !version <= 2 then CaseV ("FUNC", [ CaseV ("->", [ al_of_resulttype rt1; al_of_resulttype rt2 ])]) else - CaseV ("FUNC", [ al_of_resulttype rt1; al_of_resulttype rt2 ]) + CaseV ("->", [ al_of_resulttype rt1; al_of_resulttype rt2 ]) and al_of_subtype = function | SubT (fin, tul, st) -> From 30466a72633e06d6b07f05ced31a012903306674 Mon Sep 17 00:00:00 2001 From: DJ Date: Thu, 22 Jan 2026 15:51:13 +0900 Subject: [PATCH 20/23] Handle case where IterE's ListN's itered variable does not appar in the xes --- spectec/src/backend-interpreter/interpreter.ml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/spectec/src/backend-interpreter/interpreter.ml b/spectec/src/backend-interpreter/interpreter.ml index d069883cba..395b048cab 100644 --- a/spectec/src/backend-interpreter/interpreter.ml +++ b/spectec/src/backend-interpreter/interpreter.ml @@ -370,6 +370,12 @@ and eval_expr env expr = raise Exception.OutOfMemory else Array.make i v |> listV + (* HARDCODE: The case where itered variable does not appear in xes. + --> Insert itered variable. This was instroduced due to the change of IrerE's ListN. *) + | IterE (e1, (ListN (e2, Some x), [])) -> + let dummy_expr =VarE "_" $$ no_region % (Il.Ast.VarT ("_" $ no_region, []) $ no_region) in + let expr' = {expr with it = IterE (e1, (ListN (e2, Some x), [(x, dummy_expr)]))} in + eval_expr env expr' | IterE (inner_e, (iter, xes)) -> let vs = env From df6d77e285535aee9fde0b2867a08b5be300e0bb Mon Sep 17 00:00:00 2001 From: DJ Date: Thu, 22 Jan 2026 16:16:53 +0900 Subject: [PATCH 21/23] More adaptation to change of Mixop of comptype (functype) --- spectec/src/backend-interpreter/construct.ml | 13 +++---------- spectec/src/backend-interpreter/host.ml | 2 +- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/spectec/src/backend-interpreter/construct.ml b/spectec/src/backend-interpreter/construct.ml index 488a86b5b7..fd5484d89c 100644 --- a/spectec/src/backend-interpreter/construct.ml +++ b/spectec/src/backend-interpreter/construct.ml @@ -124,10 +124,7 @@ and al_to_resulttype: value -> resulttype = function and al_to_comptype: value -> comptype = function | CaseV ("STRUCT", [ ftl ]) -> StructT (al_to_list al_to_fieldtype ftl) | CaseV ("ARRAY", [ ft ]) -> ArrayT (al_to_fieldtype ft) - | CaseV ("FUNC", [ CaseV ("->", [ rt1; rt2 ]) ]) when !version <= 2 -> - FuncT (al_to_resulttype rt1, (al_to_resulttype rt2)) - | CaseV ("->", [ rt1; rt2 ]) -> - FuncT (al_to_resulttype rt1, (al_to_resulttype rt2)) + | CaseV ("->", [ rt1; rt2 ]) -> FuncT (al_to_resulttype rt1, (al_to_resulttype rt2)) | v -> error_value "comptype" v and al_to_subtype: value -> subtype = function @@ -1139,11 +1136,7 @@ and al_of_resulttype rt = al_of_list al_of_valtype rt and al_of_comptype = function | StructT ftl -> CaseV ("STRUCT", [ al_of_list al_of_fieldtype ftl ]) | ArrayT ft -> CaseV ("ARRAY", [ al_of_fieldtype ft ]) - | FuncT (rt1, rt2) -> - if !version <= 2 then - CaseV ("FUNC", [ CaseV ("->", [ al_of_resulttype rt1; al_of_resulttype rt2 ])]) - else - CaseV ("->", [ al_of_resulttype rt1; al_of_resulttype rt2 ]) + | FuncT (rt1, rt2) -> CaseV ("->", [ al_of_resulttype rt1; al_of_resulttype rt2 ]) and al_of_subtype = function | SubT (fin, tul, st) -> @@ -1900,7 +1893,7 @@ let al_of_type ty = match subtypes with | [ subtype ] -> - let rt = subtype |> arg_of_case "SUB" 2 |> arg_of_case "FUNC" 0 in + let rt = subtype |> arg_of_case "SUB" 2 in CaseV ("TYPE", [ rt ]) | _ -> failwith ("Rectype is not supported in Wasm " ^ (string_of_int !version)) else diff --git a/spectec/src/backend-interpreter/host.ml b/spectec/src/backend-interpreter/host.ml index fad576a6ba..4d59c5d926 100644 --- a/spectec/src/backend-interpreter/host.ml +++ b/spectec/src/backend-interpreter/host.ml @@ -22,7 +22,7 @@ let spectest () = let code = nullary winstr_tag in let ptype = Array.map nullary type_tags in let arrow = CaseV ("->", [ listV ptype; listV [||] ]) in - let ftype = CaseV ("FUNC", [ listV ptype; listV [||] ]) in + let ftype = CaseV ("->", [ listV ptype; listV [||] ]) in let dtype = CaseV ("_DEF", [ CaseV ("REC", [ From d0981034fb61054c2afe00132a71a2e6ca38eb61 Mon Sep 17 00:00:00 2001 From: DJ Date: Thu, 22 Jan 2026 19:28:50 +0900 Subject: [PATCH 22/23] Handle case where IterE's ListN's itered variable does not appear in the xes, during il2al --- spectec/src/backend-interpreter/interpreter.ml | 2 +- spectec/src/il2al/translate.ml | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/spectec/src/backend-interpreter/interpreter.ml b/spectec/src/backend-interpreter/interpreter.ml index 395b048cab..16878b2572 100644 --- a/spectec/src/backend-interpreter/interpreter.ml +++ b/spectec/src/backend-interpreter/interpreter.ml @@ -373,7 +373,7 @@ and eval_expr env expr = (* HARDCODE: The case where itered variable does not appear in xes. --> Insert itered variable. This was instroduced due to the change of IrerE's ListN. *) | IterE (e1, (ListN (e2, Some x), [])) -> - let dummy_expr =VarE "_" $$ no_region % (Il.Ast.VarT ("_" $ no_region, []) $ no_region) in + let dummy_expr = VarE "_" $$ no_region % (Il.Ast.VarT ("_" $ no_region, []) $ no_region) in let expr' = {expr with it = IterE (e1, (ListN (e2, Some x), [(x, dummy_expr)]))} in eval_expr env expr' | IterE (inner_e, (iter, xes)) -> diff --git a/spectec/src/il2al/translate.ml b/spectec/src/il2al/translate.ml index e04c6763e2..f1719b2639 100644 --- a/spectec/src/il2al/translate.ml +++ b/spectec/src/il2al/translate.ml @@ -928,6 +928,15 @@ let rec translate_iterpr pr (iter, xes) = let iter' = translate_iter iter in let lhs_iter = match iter' with | ListN (e, _) -> ListN (e, None) | _ -> iter' in + (* HARDCODE: Handle the case where iterated variable of ListN is not in xes *) + let xes = + match iter with + | ListN (_, Some x) when List.for_all (fun (x', _) -> x.it <> x'.it) xes -> + let dummy_expr = Il.Ast.VarE ("_" $ no_region) $$ no_region % (Il.Ast.VarT ("_" $ no_region, []) $ no_region) in + (x, dummy_expr) :: xes + | _ -> xes + in + let handle_iter_ty ty = match iter' with | Opt -> iterT ty Il.Opt From 97614db32d70f3035ce1151d9307def7429a2554 Mon Sep 17 00:00:00 2001 From: DJ Date: Thu, 22 Jan 2026 19:34:50 +0900 Subject: [PATCH 23/23] Remove obsolte assumption on IterE's xes (that is, at least one variable should exist. This is not necessarily true if Iter is ListN) --- spectec/src/middlend/sideconditions.ml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/spectec/src/middlend/sideconditions.ml b/spectec/src/middlend/sideconditions.ml index 51252340e3..7d9c3f1146 100644 --- a/spectec/src/middlend/sideconditions.ml +++ b/spectec/src/middlend/sideconditions.ml @@ -32,9 +32,7 @@ let iterPr (pr, (iter, vars)) = let vars' = List.filter (fun (id, _) -> Set.mem id.it frees.varid ) vars in - (* Must keep at least one variable to keep the iteration well-formed *) - let vars'' = if vars' <> [] then vars' else [List.hd vars] in - IterPr (pr, (iter, vars'')) + IterPr (pr, (iter, vars')) let is_null e = CmpE (`EqOp, `BoolT, e, OptE None $$ e.at % e.note) $$ e.at % (BoolT $ e.at) let iffE e1 e2 = IfPr (BinE (`EquivOp, `BoolT, e1, e2) $$ e1.at % (BoolT $ e1.at)) $ e1.at